- 17 Oct, 2013 1 commit
-
-
Dmitry Kovalev authored
Making this change in order to move allow_high_precision_mv field from MACROBLOCKD structure to VP9_COMMON (because it is a frame level flag). Change-Id: I1d006ba36d938e0caf4d40fa051e2e38df9c1108
-
- 16 Oct, 2013 3 commits
-
-
Guillaume Martres authored
The only case where they were intentionally pointing to different structures was in mbgraph, and this didn't have the expected behavior because both of these pointers are used interchangeably through the code Change-Id: I979251782f90885fe962305bcc845bc05907f80c
-
Dmitry Kovalev authored
Moving code that gets band_translate array from get_scan_and_band() function to get_band_translate() function. Renaming get_scan_and_band() to get_scan(). Change-Id: I43047c205a1ca2a6e24be44db39dc04b7a385008
-
Guillaume Martres authored
This should be similar to what x264 does with --aq-mode 1. It works well with clips like parkjoy and touhou (http://x264.nl/developers/Dark_Shikari/LosslessTouhou.mkv). At low bitrates, the segmentation signaling overhead may negate the benefits of this feature. (PGW) Default changed to feature OFF to allow provisional merge. Change-Id: I938abf9bb487e1d4ad3b0264ea03d9826275c70b
-
- 15 Oct, 2013 2 commits
-
-
Alexander Voronov authored
Updated the encoder to handle frames that are coded intra-only. Intra-only frames must be non-showable, that is, the "show frame" flag must be set to 0 in the frame header. Tested by forcing the ARF frames to be coded intra- only. Note: The rate control code will need to be modified to account for intra-only frames better than they are currently handled. Change-Id: I6a9dd5337deddcecc599d3a44a7431909ed21079
-
Jingning Han authored
Use the zcoeff_blk buffer of PICK_MODE_CONTEXT to store the indexes of all-zero-coeff block of the current best mode. Remove the temporary buffer best_zcoeff_blk defined in the rate-distortion optimization loop. This improves the speed performance by about 0.5% in all speed settings. Change-Id: Ie3e15988ddfa581eafa2e19a8228d3fe4a46095c
-
- 14 Oct, 2013 1 commit
-
-
Jingning Han authored
This commit moves token_cache buffer into macroblock struct, instead of defining as a local variable in cost_coeffs. This avoids repeatedly re-allocating memory space in the rate-distortion optimization loop. The runtime at speed 0 reduces: bus 2000kbps, 161692ms to 159951ms football 600kbps, 229505ms to 225821ms Change-Id: If7da6b0b6d8c5138a16271a33c4548fba33d8840
-
- 11 Oct, 2013 3 commits
-
-
Dmitry Kovalev authored
Renames: vp9_short_iht4x4_add -> vp9_iht4x4_16_add vp9_short_iht8x8_add -> vp9_iht8x8_64_add vp9_short_iht16x16_add_c -> vp9_iht16x16_256_add Change-Id: Ibca7a188fd062b196787ac5efc1ea545e7f166c0
-
Deb Mukherjee authored
Converts the constant rddiv parameter to 128 (from 100) and implements RDCOST with bit-shift rather than multiplication. Other parameters are also adjusted to roughly keep the same balance between Rate and Distortion. There is a slight speed-up of about 0.5-1% (at speed 0) as testted on football_cif. There is a slight change in performance due to small change in the parameters. derfraw300: +0.033% stdhdraw250; +0.102% Change-Id: I70ac69f58fa71c83108f68fe41796cd19d1fc760
-
Yaowu Xu authored
The commit changes to mask available intra prediction modes for test based on prediction block size. With this patch, encoding time of CpuUsed 2 reduces from 10% to 20% for HD clips with a compression drop of 0.2% Change-Id: I65f320f1237c0f5ae3a355bf7caf447f55625455
-
- 10 Oct, 2013 3 commits
-
-
Jingning Han authored
This commit re-designs the per transformed block rate-distortion costs tracking buffers. It removes redundant buffer usage, makes the needed context memory allocation per VP9_COMP instance and reuses the same buffer sets inside the rate-distortion optimization search loop, thereby avoiding repeatedly requiring memory space. It reduces speed 0 runtime: bus at 2000 kbps from 166763ms to 158967ms, football at 600 kbps from 246614ms to 234257ms. Both about 5% speed-up. Local tests suggest about 2% to 5% speed-up for speed 1 and 2 settings. This does not change compression performance. Change-Id: I363514c5276b5cf9a38c7251088ffc6ab7f9a4c3
-
Yaowu Xu authored
Change-Id: Id5e31833a0ef40de9f64c2f5674af7083233bf14
-
Deb Mukherjee authored
Increases these parameters. There is a small efficiency gain. Change-Id: Ie5f0ddb39c907d335e0dafa5eb112365a81f4542 derfraw300: +0.091% stdhdraw250: +0.238%
-
- 09 Oct, 2013 3 commits
-
-
Jingning Han authored
The intra mode distortion adjustment for skip_encode feature was broken in the refactoring cc91851. This commit fixes it and tunes the distortion models used therein. Change-Id: I0d676e82f8e855536a90cf9b3e3fdefafcd886c6
-
Deb Mukherjee authored
Some minor cleanups in preparation for experimentation with some encode parameters and thresholds Change-Id: I449d66da97eae0a7acdf4aae374e2f9111342056
-
Jingning Han authored
Use b_mode_info to store the inter prediction mode of sub8x8 block, in replacement of the use of partition_info. Remove redundant buffer update for partition_info. For bus_cif at 2000 kbps, this seem to make speed 0 about 1% faster. Change-Id: Id1b3be45e75a24fb4b42335ac480c23e440978f6
-
- 08 Oct, 2013 2 commits
-
-
Dmitry Kovalev authored
We already have itxm_add member in MACROBLOCKD structure. Both inv_txm4x4_1_add and inv_txm4x4_add are just its special cases for different eob values. But eob logic is already implemented in vp9_iwht4x4_add and vp9_idct4x4_add (that's why also removing inverse_transform_b_4x4_add). Change-Id: I80bec9b6f7d40c5e5033c613faca5c819c3e6326
-
Jim Bankoski authored
Change-Id: Id093816146de0d100f0c6ae2542aaa427dbab2d8
-
- 07 Oct, 2013 3 commits
-
-
Jingning Han authored
This commit restores the mode skip feature in the sub8x8 rd loop. Change-Id: I5496ee32053f572b8961b549e9ecd4f1360824de
-
Dmitry Kovalev authored
Declaring vp9_pt_energy_class in vp9_entropy.h instead of many external places. Change-Id: I66e8a3fc119a43f88d130d0dae4133c825a047a3
-
Dmitry Kovalev authored
Change-Id: I8de865cd1deca07b5c92c225782f0867367e9a11
-
- 04 Oct, 2013 2 commits
-
-
Paul Wilkins authored
This code serves no purpose in the re-factored sub 8x8 code. Change-Id: I5364986224d1a28b71bcb046ec8557a3d14aaa47
-
Dmitry Kovalev authored
Change-Id: I2cc3684f416a63dc99b9303109f9850f34a470d5
-
- 03 Oct, 2013 7 commits
-
-
Jingning Han authored
This commit removes the redundant second reference frame check in the rate-distortion optimization loop for sub8x8 blocks. Change-Id: I13a57a6f624c4a9bcef02ff2a867fa30d8b44a93
-
Jingning Han authored
Change-Id: Ic23a705e48cadaa7151f2bd8536d56636cb973e3
-
Jingning Han authored
This commit defines b_mode_info as a struct type. This will allow us to further remove the use of PARTITION_INFO in the encoding process. Change-Id: I975b0f7d557b5e0f66545a61b472def76b671cce
-
Jingning Han authored
Remove redundant variable definition/use in rate-distortion search loop for regular and sub8x8 blocks, respectively. Change-Id: Ic0eb3660bb6851ba2eb8d702ba9fd11595000d01
-
Jingning Han authored
This commit separates the rate-distortion optimization loop of superblocks from that of sub8x8 blocks. This allows better design rate-distortion optimization search loop for each setting. It also removes the use of SPLITMV and I4X4_PRED therein. No performance change in speed 0 settings. For bus@CIF at 2000kbps, the speed 1 runtime goes from 48009ms to 43894ms (about 10% faster). The overall compression performance on derf changed by -0.021%. Speed 2 runtime goes from 27114ms to 28700ms (6% slower), while the overall coding efficiency goes up by 1.629% for derf, 1.236% for yt. Change-Id: Ie6bdfa0a370148dd60bd800961077f7e97e67dd4
-
Dmitry Kovalev authored
Change-Id: I9a0d0e9c3459954aa7b9c68f92cc5d56385ebd18
-
Paul Wilkins authored
Substantial reworking of the speed vs quality trade offs for speed 1 and 2. In this patch I am attempting to freeze the "quality" meaning of speeds 1 and 2 relative to speed 0 so that in future we can better evaluate progress. I am targeting : Speed 1 quality ~-5% vs speed 0. Speed 2 quality ~-10% vs speed 0 It is inevitable that quality will still fluctuate a little as we adjust settings and add new features, but we will attempt to keep as close as possible to these values. Above speed 2 things will remain a bit more fluid for now. In this patch speed 1 is approximately 4-5x as fast as speed 0. This is similar to before but the quality hit is a lot less. Likewise speed 2 is approximately 2x as fast as speed 1 but is similar in quality to the previous speed 1 configuration. Also slight change to behavior of FLAG_EARLY_TERMINATE to insure all reference frames get at least one rd test. Important for very low variance regions. WIP :- Added a new speed level with old speed 4 becoming speed 5. Speed 3 and 4 tradeoffs still WIP Change-Id: Ic7a38dd7b5b63ab1501f9352411972f480ac6264
-
- 27 Sep, 2013 1 commit
-
-
Dmitry Kovalev authored
Change-Id: I6be72c8b048d1ccc7ef43764cf84c32360098970
-
- 26 Sep, 2013 2 commits
-
-
Guillaume Martres authored
Don't divide RDMULT and RDDIV by 100 when RDMULT > 1000. This was probably done to avoid overflow when the rd cost was stored in a 32 bits integer but this is not the case anymore. This change will make it easier to support multiple quantizers per frame. derf compression gain at speed 0: 0.037% Change-Id: Ibeeb9b7cfa1a132a7af41bc90fc07a3bba0857f6
-
Dmitry Kovalev authored
Change-Id: I60dee58a4fd24d3c4f3c101a49d30e217309f43a
-
- 25 Sep, 2013 3 commits
-
-
Dmitry Kovalev authored
Change-Id: I9795d0937bc07793c13d067281995e0750f694d9
-
Dmitry Kovalev authored
Change-Id: Ife0dd29fb4ad65c7e12ac5f1db8cea4ed81de488
-
Dmitry Kovalev authored
Renaming txfm_stepdown_count to tx_stepdown_count and max_txfm_size to max_tx_size. Change-Id: Ifc173e22c78240e561a57c4c741b64b1b8fc6fef
-
- 24 Sep, 2013 3 commits
-
-
Dmitry Kovalev authored
Updating fractional_mv_step_fp and fractional_mv_step_comp_fp function types. Change-Id: I601c4378bc39ac3ffd4e295d9cbd8e1f74829d46
-
Yaowu Xu authored
Also removed obselete comment Change-Id: Iae1664777d76383639c637ee786e0d50fc45819a
-
Yaowu Xu authored
INT64_MAX may be assigned as RDCOST when RDCSOST computation is skipped for speed, this commit to prevent INT64_MAX from being used as real RDCOST in transform size decision. Change-Id: I89a945134191bbdea1f1431ade70424ac079eaac
-
- 23 Sep, 2013 1 commit
-
-
Jingning Han authored
This commit enables forcing all coefficients zero per transformed block, when its rate-distortion cost is lower than regular coeff quantization. The overall performance improvement (including its parent patch on calculating rd cost per transformed block) at speed 1: derf: 0.298% yt: 0.452% hd: 0.741% stdhd: 0.006% Change-Id: I66005fe0fd7af192c3eba32e02fd6d77952accb5
-