- 19 Dec, 2013 1 commit
-
-
Dmitry Kovalev authored
Replacing: intra_inter_count, y_mode_count, y_uv_mode_count. Change-Id: I5d70f73288af6effe6176e26400138067a2ae2a3
-
- 18 Dec, 2013 2 commits
-
-
Jingning Han authored
This commit reworks the prediction filter rate-distortion cost update process consistent for all block sizes. Change-Id: I5874349ab38df380240f96c2d4ef924072bab68d
-
Marco Paniconi authored
Adjustments based on buffer level, frame dropper. Change-Id: Iaa85b570493526a60c4b9fb7ded4c0226b1b3a33
-
- 17 Dec, 2013 2 commits
-
-
Dmitry Kovalev authored
Change-Id: I6ab9fe2326ebbadf0dd10cca9f66cf8277e3f43b Replacing: comp_inter_count, single_ref_count, comp_ref_count.
-
Deb Mukherjee authored
Various cleanups and refactoring. Removes feedback of active worst qaulity and uses last_q instead to make the interface cleaner. Active worst quality is now decided only once for a frame being coded in the beginning based on last_q and other stats. Also, adds other cleaups on last_q to store also the last_q for altref frames, and reduces the altref interval a little. The output does change a little. derfraw300: +0.224% (global psnr) stdhdraw250: +0.442% (global psnr) Change-Id: Ie634cdc032697044c472dd0fe79c109b3e7f9767
-
- 13 Dec, 2013 1 commit
-
-
Jingning Han authored
This commit enables an adaptive prediction filter type selection for sub8x8 block sizes. In speed 1, it re-uses the filter type of collocated 8x8 block if it is tested in the rate-distortion optimization loop, for the sub8x8 blocks. Otherwise, it runs the normal test over all the three filter types. In speed 2, it re-uses the 8x8 block's prediction filter type, if available. Otherwise, force it to be EIGHTTAP. Compression and speed performance wise: speed 1 derf -0.266% yt -0.138% bus at 2000 kbps: 33766ms -> 30451ms (10% speed-up) football at 600 kbps: 48173ms -> 43786ms (9% speed-up) speed 2 derf -0.026% yt +0.134% bus at 2000 kbps: 18973ms -> 17698ms (6% speed-up) football at 600 kbps: 26748ms -> 25096ms (6% speed-up) Change-Id: I77e097533b969fd3472147225fa79fc98095d342
-
- 11 Dec, 2013 2 commits
-
-
Dmitry Kovalev authored
Change-Id: Iadf2fcc9a5bfa5d02fc166f31963be1cc814831c
-
Deb Mukherjee authored
Silences some lint warnings in previous patches Change-Id: I04bf47ebe7e63a95fd322719a3154e589c115d78
-
- 06 Dec, 2013 4 commits
-
-
Dmitry Kovalev authored
Change-Id: Ic3bb862e93aedf6a489a33ea6f7e5097d96855ee
-
Paul Wilkins authored
Removed an adaptive rate correction factor that was having a negative impact on quality in many clips. This factor was influencing the Q range available to each frame independently of the bits allocated to each. Average results with DISABLE_RC_LONG_TERM_MEM. derf +0.199, -0.059. yt +3.957, +3.798 std hd +1.577, +2.140 yt hd +4.127, +4.513 Average results without DISABLE_RC_LONG_TERM_MEM derf -0.628, -0.665 yt +3.432, +3.015 std hd -0.105, +0.153 yt hd +3.432, +3.015 Change-Id: I45bab6b606f49a442e7b27a6d631f3ffd843bbce
-
Deb Mukherjee authored
Includes various cleanups. Streamlines the interfaces so that all rate control state updates happen in the vp9_rc_postencode_update() function. This will hopefully make it easier to support multiple rate control schemes. Removes some unnecessary code, which in rare cases can casue a difference in the constrained quality mode output, but other than that there is no bitstream change yet. Change-Id: I3198cc37249932feea1e3691c0b2650e7b0c22fc
-
Dmitry Kovalev authored
NUM_YV12_BUFFERS => FRAME_BUFFERS ALLOWED_REFS_PER_FRAME => REFS_PER_FRAME NUM_REF_FRAMES_LOG2 => REF_FRAMES_LOG2 NUM_REF_FRAMES => REF_FRAMES NUM_FRAME_CONTEXTS_LOG2 => FRAME_CONTEXTS_LOG2 NUM_FRAME_CONTEXTS => FRAME_CONTEXTS Change-Id: I4e1ada08f25d8fa30fdf03aebe1b1c9df0f87e63
-
- 27 Nov, 2013 1 commit
-
-
Deb Mukherjee authored
Moves all post encode rate control updates to a separate function plus other cleanups. Change-Id: I70e8eccf666c88d8b649b969997fd84d27e4baaa
-
- 26 Nov, 2013 1 commit
-
-
Deb Mukherjee authored
Removes the active_worst_qchanged variable since it is never set to 1. Change-Id: I29a291fd1068fd9b504a2db7768d45644c1eae3e
-
- 25 Nov, 2013 1 commit
-
-
Paul Wilkins authored
The idea here is to allow "in frame" adjustment of the final Q value used to encode each SB64, using segmentation. There is also adjustment of the rd mult in regions of overspend. Activated using aq_mode=2 Change-Id: I2f140cd898c9f877c32cd6d2e667f5e11ada4b1c
-
- 23 Nov, 2013 1 commit
-
-
Dmitry Kovalev authored
List of renames: COMPPREDMODE_TYPE => REFERENCE_MODE SINGLE_PREDICTION_ONLY => SINGLE_REFERENCE COMP_PREDICTION_ONLY => COMPOUND_REFERENCE HYBRID_PREDICTION => REFERENCE_MODE_SELECT (like TX_MODE_SELECT) NB_PREDICTION_TYPES => REFERENCE_MODES Change-Id: If723dabe9435325d0165dcd028142a2c78b417b4
-
- 22 Nov, 2013 2 commits
-
-
Dmitry Kovalev authored
Change-Id: I6c3d47b00acabe7ffba22ffc73741173aa9a0bff
-
Deb Mukherjee authored
Moves all rate control variables to a separate structure, removes some currently unused variables, moves some rate control functions to vp9_ratectrl.c, and splits the encode_frame_to_data_rate function. Change-Id: I4ed54c24764b3b6de2dd676484f01473724ab52b
-
- 21 Nov, 2013 1 commit
-
-
Guillaume Martres authored
Change-Id: I2a08c00e8576099abc84b6ef05cb3567426e29cf
-
- 15 Nov, 2013 1 commit
-
-
Guillaume Martres authored
Change-Id: I57e1ad4bed3487df12893ced77c49093f8755706
-
- 12 Nov, 2013 1 commit
-
-
Jingning Han authored
Allocate memory space of dual buffer sets that store the coeff, qcoeff, dqcoeff, and eobs. Connect the pointers of macroblock_plane and macroblockd_plane to the actual buffer in use accordingly. Change-Id: I2f0b5f482ca879fae39095013eaf8901db20a5a4
-
- 11 Nov, 2013 1 commit
-
-
Jingning Han authored
Make the macroblockd_plane contain dynamic buffer pointers instead static pointers to the memory space allocated therein. The decoder uses the buffer allocated in pbi, while encoder will use a dual buffer approach for rate-distortion optimization search. Change-Id: Ie6f24be2dcda35df7c15b4014e5ccf236fb3f76c
-
- 04 Nov, 2013 2 commits
-
-
Adrian Grange authored
Removed: goldfreq, avg_encode_time, avg_pick_mode_time, cpu_freq, interquantizer member variables from VP9_COMP since they are no longer used in the code. Change-Id: I010a82c217d0da03c3f53d1858d3462190c12dcf
-
Adrian Grange authored
Removed three members from the VP9_COMP data structure: inter_zz_count, gf_bad_count, gf_update_recommended. These were part of the VP8 real-time mode implementation that was removed from the initial VP9 codecbase. Change-Id: I866b083b88ef02c74837277d50ce532ca88492f3
-
- 31 Oct, 2013 1 commit
-
-
Deb Mukherjee authored
The experiment is no longer used and can be removed. Change-Id: I9feab378fc895c120aa375353c68f93cad090609
-
- 30 Oct, 2013 1 commit
-
-
Dmitry Kovalev authored
Change-Id: I9781a62bc1a4cd9176554d1271d87dbcafda9cb0
-
- 25 Oct, 2013 2 commits
-
-
James Zern authored
Change-Id: If5cea3d389bb1135ee490d273e57cc2c43325d01
-
James Zern authored
Change-Id: I969406574c6658936e9f6db5752f1b295025aab5
-
- 19 Oct, 2013 2 commits
-
-
Paul Wilkins authored
This 2-pass rate control setting allocates bits based on first pass stats to each kf group, gf group and individual frame but does not correct the bits left and allocation after each frame. In other words it recommends a bit allocation for each frame but does not try and correct any over or under spend on a frame over the remainder of the clip. This reduces the accuracy of rate control in terms of hitting an average bitrate but prevents problems that may arise because early frames either use to many or too few bits. This mode is currently more inclined to undershoot than overshoot (particularly at higher data rates). Also minor changes to rate of adaption when recode loop is not enabled. This mode is currently enabled by default for VBR. It gives the following % performance gains. derf +0.467, +1.072 yt 2.962, 2.645 stdhd 1.682, 1.595, yt-hd 2.3, 2.174 Change-Id: I3c84a9bf8884e5b345698ff0e19187f792c2f3a0
-
Dmitry Kovalev authored
Renames for consistency with other constants: NUM_FRAME_TYPES -> FRAME_TYPES NUM_PARTITION_CONTEXTS -> PARTITION_CONTEXTS Change-Id: I3db30acb2868eb0a424237c831087b2e264ec47f
-
- 16 Oct, 2013 1 commit
-
-
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
-
- 11 Oct, 2013 1 commit
-
-
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 1 commit
-
-
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
-
- 07 Oct, 2013 1 commit
-
-
Paul Wilkins authored
This flag is for stats generation and testing and should not be checked in as enabled by default. Change-Id: I4ea57dbcf49790f14777f598ddd3dc37dcc7a6bb
-
- 04 Oct, 2013 1 commit
-
-
Paul Wilkins authored
Allow selective masking of individual split modes rather than just a single on / off flag. For speed 2 recovers the large speed loss seen for some derf clips in change Ie6bdfa0a370148dd60bd800961077f7e97e67dd4 and a small quality gain. For speed 1 10 % speed increase observed locally on some derf clips for minimal quality change. Change-Id: If86191087b93cbc05351c26c60c7933e2149e485
-
- 03 Oct, 2013 2 commits
-
-
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
-
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
-
- 02 Oct, 2013 1 commit
-
-
Jingning Han authored
Remove mode_check_freq and mode_test_hit_counts from VP9_COMP. Change-Id: Iabfd9f841444cd9bf19ac761a9795f140082ce0b
-
- 01 Oct, 2013 2 commits
-
-
Jim Bankoski authored
Change-Id: I6c4058aebe834e1a12b7a3fb10484b9ebe60b349
-
Dmitry Kovalev authored
Also renaming mb_row -> mi_row, mb_col -> mi_col arguments and calculate mb_rows/mb_cols values from mi_rows/mi_cols. Change-Id: I6919a279f560648e23bc9a12f507d17c21ffd5d7
-