summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_ratectrl.c
AgeCommit message (Collapse)Author
2014-04-07Moving init_rate_control() to vp9_ratectrl.{c, h}.Dmitry Kovalev
Change-Id: Iab3effc39064f265426c82b455ef38d37dcce5a8
2014-04-07Moving {restore, save}_coding_context to vp9_onyx_if.cDmitry Kovalev
These functions do nothing about rate control. Change-Id: I714e80b1c1f4f9aa157a56df705247fce6db138d
2014-04-03Add codec control function for enabling frame_periodic_boost.Marco Paniconi
Change-Id: I6371ef7301c6bc3138552bd349e9bd154dee3e08
2014-04-02Merge "Rate ctrl changes to track target bitrates closer"Deb Mukherjee
2014-04-02Merge "Make frame level quantization change a parameter"Jingning Han
2014-04-02Merge "Adjust rate allocation in non-RD coding mode"Jingning Han
2014-04-02Merge "Add speed feature for recode tolerance."Paul Wilkins
2014-04-02Rate ctrl changes to track target bitrates closerDeb Mukherjee
Turns off the DISABLE_RC_LONG_TERM_MEM macro and makes other changes in the way the bits are updated, to make 2-pass rate control track target bitrates closer. Change-Id: I5f3be4b11c2908e6a9a9a1dd4fcf4e65531c44d8
2014-04-02Merge "Adding local pointer variables referencing REATE_CONTROL struct."Dmitry Kovalev
2014-04-02Merge "Remove the q division by 3 for first frame."Marco Paniconi
2014-04-02Make frame level quantization change a parameterJingning Han
Parameterize the frame level quantization index used in non-RD coding flow with cbr. Change-Id: I79cfbd9c32c0d0fc33ad720d2180432e910baf7a
2014-04-02Adjust rate allocation in non-RD coding modeJingning Han
This commit reduces the frequency of frames using finer quantizer in non-RD coding flow, and slightly tune up the quantizer resolution when used. It provides 1.7% compression gains in speed -5 at no speed difference. Change-Id: I430249a51260a841a0402666e5ec1566e4f7d5a6
2014-04-02Add speed feature for recode tolerance.Paul Wilkins
The new tolerance is a little higher than before (especially for kf/gf/arf) so this change gives an encode speed up for some clips up for speeds 0-2. Change-Id: I63f7d6c9cc11c7f58742f41e250dcd3eab1741eb
2014-04-02Merge "Speed setting correction to max q estimate."Paul Wilkins
2014-04-01Adding local pointer variables referencing REATE_CONTROL struct.Dmitry Kovalev
Change-Id: I1d8c312a599db505a023e5cd0cc4ba2b8f696a2e
2014-04-01Remove the q division by 3 for first frame.Marco Paniconi
This code/setting was actually not used (since speed features were not set on first frame, until a recent change) and should be removed. In CBR mode, the q value for the first frame can be controlled by setting the target size via the parameters rc_buf_initial_sz (and max_intra_size_pct). Change-Id: I65afc64972b36c449bd5a8c25800e65da5389066
2014-04-01Speed setting correction to max q estimate.Paul Wilkins
Use a crude correction factor to correct for lower compression efficiency at higher encode speeds when estimating the max Q for the clip. Change-Id: I5ae377647f4adf5e91d700a8791fb3b8f70efc73
2014-03-31Apply finer quantizer to partition search frames in non-RD flowJingning Han
This commit optimizes the bit allocation for the non-RD coding flow. It applies slightly better quantizer to the frames, where all blocks run a non-RD partition search. Such frames typically have better rate-distortion trade off, thus improving the reconstruction quality for next few frames reference at reasonably low increment in rate cost. The coding performance for rtc set at speed -5 with error-resilient tuned on and rate control set as cbr is improved by 19.58%. It improved the coding speed by about 10% for a portion of local test clips. Change-Id: I9d56696cd4359dc8136ca10aff10fff05aaa2686
2014-03-28[svc] Finalize first version of 2nd pass rcMinghai Shang
Change-Id: I366850015004644c4fc7feabe27a782fdd8d8718
2014-03-25Merge "Moving setup_{key, inter}_frame() to vp9_onyx_if.c."Dmitry Kovalev
2014-03-24Initialization code cleanup.Dmitry Kovalev
Change-Id: I47a8b4bf9a6cc0063d1a6785eaaad641d0659e24
2014-03-24Moving setup_{key, inter}_frame() to vp9_onyx_if.c.Dmitry Kovalev
Change-Id: I044e393438c7b58a6393e20efa38fd03d745ad33
2014-03-19Merge "Removed several unused functions."Yaowu Xu
2014-03-18Merge "Cleaning up calc_active_worst_quality_one_pass_vbr()."Dmitry Kovalev
2014-03-18Cleaning up calc_active_worst_quality_one_pass_vbr().Dmitry Kovalev
Change-Id: Ibfccee5e35c235c02843e1c1fbd3c39034619cf5
2014-03-17Removed several unused functions.Yaowu Xu
Change-Id: Ib9e27298c575afc02a98b593bc6ad60762064d9b
2014-03-17Moving defines from vp9_onyx_int.h to suitable *.c files.Dmitry Kovalev
Change-Id: I0d39bdbb8166ee44561f1008d1a2e76e70b36f30
2014-03-03Avoid gf/altref boost in pick_q under svc cbr mode.Marco Paniconi
Change-Id: Ib719a9f74924718715592e0238bc391ae239d026
2014-02-27Fixing include order in vp9_ratectrl.c.Dmitry Kovalev
Change-Id: Id1ec41275cc35565e522a1b2ac252ea3ec05638f
2014-02-26Merge "Using clamp() for active_{best, worst}_quality."Dmitry Kovalev
2014-02-25Using clamp() for active_{best, worst}_quality.Dmitry Kovalev
Change-Id: Ia79f975f54829b8ae6b568ca5c05f4f1f541706f
2014-02-25Adds variance based fixed size partitioningDeb Mukherjee
Adds a method for determining a fixed size partition based on variance of a 64x64 SB. This method is added to rtc speed 6. Also fixes a bug in rtc_use_partition() and includes some refactoring related to partitioning search, and some cosmetics. Currently compared to speed 5, the coding efficiency of speed 6 is -19% and that of speed 7 is -55%, in cbr mode. Change-Id: I057e04125a8b765906bb7d4bf7a36d1e575de7c6
2014-02-18Remove comment from calls to vp9_clear_system_state.Adrian Grange
Removed the comment "// __asm emms;" from all calls to vp9_clear_system_state. Change-Id: Ib4dae69c1cdf3f185b04184a870cd70c4d703f10
2014-02-14Enforce max-intra-pct in one-pass cbr modeDeb Mukherjee
This was inadvertently left out in a previous refactoring step. Change-Id: Idf3350e95152f876a1a1a4591dd30c8981856c96
2014-02-14vp9_ratectrl - convert buffers to int64 to avoid castingJim Bankoski
Change-Id: Ifd6b2d36d91237b5f38853a3a8a529d8be38ba09
2014-02-13Fix target frame size setting, for 1pass cbr.Marco Paniconi
Only use layered average size if number_temporal_layers > 1. Also removed unneeded commented-out line, and change some parameter setting in vpx_temporal_scalable_patterns.c Change-Id: Ic86e43e7daf0313e8c5a4aba1497299158111955
2014-02-13Merge "static analysis warning in vp9_ratectrl.c"Jim Bankoski
2014-02-12static analysis warning in vp9_ratectrl.cJim Bankoski
Change-Id: I8aa3dd068d9a7225b3e8b24392a7b4a54b9435dd
2014-02-12Merge "Removes active_worst_quality feedback"Deb Mukherjee
2014-02-11Removes active_worst_quality feedbackDeb Mukherjee
Removes certain cases of feedback of active_worst_quality, and removes it from the RATE_CONTROL structure. Now active worst quality is expected to be computed locally in the q picking function during the encode. Making temporal filter strength depend on avg_frame_qindex rather than on active_worst_quality actually improves performance esp. for yt. derf: +0.038% yt: +0.359% Change-Id: I1fe5a343034b55af9322289165321f00ac0827b1
2014-02-11Merge "Use more meaningful names for speed features"Jingning Han
2014-02-10Use more meaningful names for speed featuresJingning Han
Use frame_parameter_update to precisely describe the functionality. Change-Id: Ia9a55ba8efef7b987e30d949dd00ac716189bdb9
2014-02-10Further one-pass vbr rate control changesDeb Mukherjee
Some parameter changes and fixes on one-pass rate control. derfraw300 is now only 10% below 2-pass speed 0 rate control. Change-Id: I1940eef8a5a035dc18e71b880d5e00cabd1f01b9
2014-02-10Some updates and fixes for layered CBR mode.Marco Paniconi
-Properly set the average frame size for each layer. -Allow each layer to update its average/last Q stats after encoding. -Initialize for some layer context variables. Change-Id: Iaa37d144fcf4f30ff4283a4e8db8b9ca8bf4c815
2014-02-07Cleaning up vp9_ratectl.c.Dmitry Kovalev
Change-Id: I13738ef1f307cc5f563126bc7a92beaa01fde3bd
2014-02-06Parameter fixes for one-pass non-cbr modeDeb Mukherjee
Fixes some of the parameters for 1-pass non-cbr mode. Also includes some cleanups, inlcuding refactoring of the recode_loop options. Results on derfraw300 improve by about 5-6%, so that the one-pass mode is now 13% below the 2-pass mode in speed 0. Change-Id: I844cc2638694c7574f3be00d41d60b23dc1016f0
2014-02-06Layer based rate control for CBR mode.Marco Paniconi
This patch adds a buffer-based rate control for temporal layers, under CBR mode. Added vpx_temporal_scalable_patters.c encoder for testing temporal layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns). Updated datarate unittest with tests for temporal layer rate-targeting. Change-Id: I8900a854288b9354d9c697cfeb0243a9fd6790b1
2014-02-05Merge "Clamping active_{best, worst}_quality values."Dmitry Kovalev
2014-02-05One-pass rate control cleanups/fixes/refactoringDeb Mukherjee
Inlcudes a number cleanups: 1. Moves the one-pass pre-encode parameter setting functions to vp9_ratectrl.c 2. Deprecates per_frame_bandwidth in RATE_CONTROL structure 3. Removes target_bandwidth in cpi structure since it is not used. 4. Various renaming of functions There is no bit-stream change in 2-pass, one-pass cbr and one-pass vbr modes. Change-Id: Ifd9916bf4d485b7d04c5f52044ffe6703254ccbd
2014-02-04One-pass rate control fixes and cleanupsDeb Mukherjee
Fixes rate control partially in one-pass non-cbr case to achieve a bitrate close to the one desired. Previous version was way off at the high bitrate end. Also includes several one-pass rate control cleanups and refactoring. On derfraw300, one-pass encoding is now 19% off from two-pass speed 0 encoding, down from 35%. Change-Id: I6f0dcdb7f8aa85a7e7cd3a3155d4f9d2a4d2f4f4