- 25 Jul, 2013 - 1 commit
-
-
Yunqing Wang authored
This option exists in VP8, and it was rewritten in VP9 to support skipping on different partition levels. After prediction is done, we can check if the residuals in the partition block will be all quantized to 0. If this is true, the skip flag is set, and only prediction data are needed in reconstruction. Based on DCT's energy conservation property, the skipping check can be estimated in spatial domain. The prediction error is calculated and compared to a threshold. The threshold is determined by the dequant values, and also adjusted by partition sizes. To be precise, the DC and AC parts for Y, U, and V planes are checked to decide skipping or not. Test showed that 1. derf set: when static-thresh = 1, psnr loss is 0.666%; when static-thresh = 500, psnr loss is 1.162%; 2. stdhd set: when static-thresh = 1, psnr loss is 1.249%; when static-thresh = 500, psnr loss is 1.668%; For different clips, encoding speedup range is between several percentage and 20+% when static-thresh <= 500. For example, clip bitrate static-thresh psnr time akiyo(cif) 500 0 48.923 5.635s(50f) akiyo 500 500 48.863 4.402s(50f) parkjoy(1080p) 4000 0 30.380 77.54s(30f) parkjoy 4000 500 30.384 69.59s(30f) sunflower(1080p) 4000 0 44.461 85.2s(30f) sunflower 4000 500 44.418 78.1s(30f) Higher static-thresh values give larger speedup with larger quality loss. Change-Id: I857031ceb466ff314ab580ac5ec5d18542203c53
-
- 19 Jul, 2013 - 16 commits
-
-
Dmitry Kovalev authored
Functions: vp9_get_pred_context_switchable_interp, vp9_get_pred_context_intra_inter, vp9_get_pred_context_single_ref_p1, vp9_get_pred_context_single_ref_p2. Change-Id: I3d6fb8aee23c9062270768e1e6da416dd9bb8f96
-
James Zern authored
-
Paul Wilkins authored
-
Paul Wilkins authored
-
hkuang authored
-
Paul Wilkins authored
Change-Id: I4032dd0442043543954dcb3724df974b7cc7e515
-
Paul Wilkins authored
Change-Id: I9a4df095732d561807de01a41dcb1a1960726a3c
-
Dmitry Kovalev authored
-
Yaowu Xu authored
-
Dmitry Kovalev authored
-
Ronald S. Bultje authored
We would skip the rectangular blocks for sub8x8 partitions because we would conclude that PARTITION_NONE was better than PARTITION_SPLIT, however, that conclusion was made before we actually really tested PARTITION_SPLIT. Change-Id: I8fa91e59894badc1d8cee3ba8a49e40ae4c4a489
-
Yaowu Xu authored
-
Yaowu Xu authored
-
Yaowu Xu authored
-
Yaowu Xu authored
-
Dmitry Kovalev authored
-
- 18 Jul, 2013 - 23 commits
-
-
hkuang authored
Change-Id: Ic32acf3e2939c6d12d9c2bf192a5f5da59705fda
-
James Zern authored
Change-Id: Ifd48f796fa70fe1dc9b87a6f2bdc715bc0ea5ad3
-
Dmitry Kovalev authored
Change-Id: Ide58a74d31ff948319445a6337d2c05e98720e34
-
Ronald S. Bultje authored
-
Dmitry Kovalev authored
-
Dmitry Kovalev authored
-
Ronald S. Bultje authored
Change-Id: I96b8058f6dfecf8aa3e152cdcbfd7e10071fbbc9
-
Ronald S. Bultje authored
This prevents a duplicate memcpy of a 128-byte struct every time set_scale_factors() is called (which is a lot), thus leading to a decrease from 3.7 MB to 1.85 MB of struct copying per 64x64 block RD/partition loop. Overall, this decreases encoding time of the first 50 frames of bus @ 1500kbps (speed 0) from 1min5.9 to 1min4.9, i.e. about a 1.5% overall speedup. We can likely get more gains by removing the copy of the other struct (and replacing it with an indexing) as well. Change-Id: I3dceb7e79f71e6fe911b11cc994cf89a869dde7a
-
Ronald S. Bultje authored
This means we only do UV intra mode selection if we find any intra mode to actually be useful at all; in addition, we only do UV intra mode selection for the transform sizes that were selected, rather than all sizes available in this partition. First 50 frames of bus @ 1500kbps (speed 0) gains about 5% with this change. Change-Id: I7b461eb8b803247f57896c5a9505f745b55502b3
-
Ronald S. Bultje authored
The break statement only breaks out of the nested loop, not the top-level loop, so it doesn't always work as intended. Changing it to a return statement does what's intended. Change-Id: I585419823b39a04ec8826b1c8a216099b1728ba7
-
Ronald S. Bultje authored
The same information already exists in union b_mode_info. Change-Id: Iac5086b99a3c3cc270380138062bb693e58f9e6d
-
Ronald S. Bultje authored
-
Ronald S. Bultje authored
This could happen during golden overlay frame coding from a previous alt-ref frame if the special overlay code was triggered. Change-Id: I3056d0c547cd26903b260ef93c94026e96bd9868
-
Dmitry Kovalev authored
Change-Id: Id5480a4fd56c184ad046c2192b30d190debb3de0
-
Dmitry Kovalev authored
Change-Id: I1558fd969d9ad112bf6480bdd16ef87edd396ab5
-
Johann authored
-
Ami Fischman authored
Allow output of gas syntax assembly directly from obj_int_extract Change-Id: I33a747e87ef1c590a8766dea17f8cb2497e54591
-
Frank Galligan authored
-
Ronald S. Bultje authored
-
Frank Galligan authored
If count was greater than 1 the src pointer would be off on the second loop. Change-Id: I8e09037e68dc4ae92076a8067f7b6dacbbef8263
-
Ronald S. Bultje authored
Change-Id: Id4f454831f3f11099f39c30246adeaa52857d08d
-
Jingning Han authored
Make the use of mv_check_bounds consistent for mvs of both ref_frame[0] and ref_frame[1]. Change-Id: I1ca24865cc7232ca9cbe5db566c53abad1592211
-
Dmitry Kovalev authored
Change-Id: Ie692ed6e5fa1d2122e3a03573914d0fcce842f9e
-