summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_ratectrl.c
AgeCommit message (Collapse)Author
2014-05-01Merge "Moving #defines to *.c from *.h."Dmitry Kovalev
2014-04-30[svc rc] RC improvement for key frames in upper layers for spatial svc.Minghai Shang
Change-Id: Id6ab59e505be28cd4eb9f1fe114feb47debe0539
2014-04-30Moving #defines to *.c from *.h.Dmitry Kovalev
Change-Id: I7cc6f441f414ca1b4d95dad3f789fff6faf8c3c4
2014-04-24Remove key_frame_frequency variable from VP9_COMPAdrian Grange
This member of VP9_COMP seemed unnecessary since it only shadowed VP9EncoderConfig.key_freq that is accessible through VP9_COMP. Change-Id: Ib751bb1cf1b0b3c50a2a527d7c34f6829dd6fee3
2014-04-21Change naming of end_usage parameter.Paul Wilkins
The end_useage parameter is confusingly named since it now actually defines the rate control method used. Change-Id: I98912caabfe556b7af0b939a645d1336409e4d71
2014-04-21Merge "Merge two new VBR adjustment schemes."Yaowu Xu
2014-04-21Merge "Add experimental VBR adaptation method."Yaowu Xu
2014-04-18Renaming VP9_CONFIG to VP9EncoderConfig.Dmitry Kovalev
Change-Id: Id48edd12c6f649c82113128491ef6ea7410e93b2
2014-04-17Removing cq_target_quality from VP9_COMP.Dmitry Kovalev
Use cq_level (which is identical) from VP9_CONFIG instead. Change-Id: I1aaf2fcef3d2dbd4577f613d27693ff8a68989fd
2014-04-17Merge two new VBR adjustment schemes.Paul Wilkins
To make direct side by side testing this patch combines two VBR corrections schemes to allow more direct side by side testing. (The other patch was by Debargha chg id I0cd1f7...) Change-Id: I271c45e5c4ccf8de8305589000218b80d9dc3a25
2014-04-16Add experimental VBR adaptation method.Paul Wilkins
Add code to monitor over and under spend and apply limited correction to the data rate of subsequent frames. To prevent the problem of starvation or overspend on individual frames (especially near the end of a clip) the maximum adjustment on a single frame is limited to a % of its un-modified allocation. Change-Id: I6e1ca035ab8afb0c98eac4392115d0752d9cbd7f
2014-04-16Merge "Fix rate control bug."Paul Wilkins
2014-04-16Fix rate control bug.Paul Wilkins
Fix rate control bug whereby the rate factor heuristics were being updated on arf overlays causing a rate surge for a few frames followed by a corrective drop. This fix eliminates many of the overshoot problems that we were seeing on hard clips (even without applying stricter vbr rate control) and also helps quality on almost all clips with some hard clips improving by >5%. Overall quality results measured at speed 2. Derf +1.78% opsnr , +2.44% SSIM Stdhd +2.41% opsnr, +2.85% SSIM Change-Id: I2369df6295c2705963fa6307877f6acb304bcc39
2014-04-15Renaming av_per_frame_bandwidth to avg_frame_bandwidth.Dmitry Kovalev
Just to be consistent with min_frame_bandwidth & max_frame_bandwidth names. Change-Id: I36702c708cba9ad1a5c36393f37758a2edeadb90
2014-04-15Merge "Cleaning up vp9_rc_compute_frame_size_bounds()."Dmitry Kovalev
2014-04-15Merge "Moving frame_frags field from VP9Common to VP9_COMP."Dmitry Kovalev
2014-04-11Adding vp9_rc_update_framerate() function.Dmitry Kovalev
Change-Id: Ie0c905b6f32a37e4360bbb44ceeae77c42ad1dc5
2014-04-11vp9_rc_postencode_update() cleanup.Dmitry Kovalev
Change-Id: Idb1289aa0eadff8f75dcf995547ab3a1b9e27375
2014-04-11Adjust active minQ calculation for normal frames.Paul Wilkins
This increases the range of Q values available to normal inter frames to allow encoder a better chance to hit the target rate. Change-Id: I33cd96469a46577fdcea631e26d3355710909e6d
2014-04-11Change Qlimit for arf kf.Paul Wilkins
The limits applied under the flag "LIMIT_QRANGE_FOR_ALTREF_AND_KEY" behaved in an undesirable way if the gap between active_worst_quality and active_best_quality was changed. In this patch, the adjustment is made using the vp9_compute_qdelta_by_rate() function and fixed rate multiplier values. Hence it is not impacted by the relative value of active_best_quality. Change-Id: I93b3308e04ade1e4eb5af63edf64f91cd3700249
2014-04-10Moving last_frame_type update out from vp9_rc_postencode_update.Dmitry Kovalev
Change-Id: Ib00a694b9cf8e0c276dfefddab8cb36b8693e022
2014-04-10Remove the unneeded output_framerate from svc.Marco Paniconi
And change a parameter setting in vpx_temporal_scalable_patterns. Change-Id: I7c208296ebcecbc8f73de032f6cdb26a1fc1442b
2014-04-10Cleaning up vp9_rc_compute_frame_size_bounds().Dmitry Kovalev
Change-Id: Ibc040bee99908e4dc5793d7a9f6e8bf2d15610e7
2014-04-09Moving frame_frags field from VP9Common to VP9_COMP.Dmitry Kovalev
Change-Id: I0f4a5c50561a2653d22c366c214a937272ecfa2c
2014-04-09Fix coding format in vp9_rc_regulate_qJingning Han
Change-Id: I08aa0c213df34c084eb7a3c51b6b3306e49c7757
2014-04-08Merge "Cleaning up vp9_ratectrl.c file."Dmitry Kovalev
2014-04-08Merge "Moving init_rate_control() to vp9_ratectrl.{c, h}."Dmitry Kovalev
2014-04-08Cleaning up vp9_ratectrl.c file.Dmitry Kovalev
Change-Id: If8044d9c71afe02ed1e6c94487344e143bdfcd74
2014-04-08Merge "vp9_ratectrl: change ARF overlays rate correction factor"Yaowu Xu
2014-04-08Merge "Replace imprecise 32 bits calculations by 64 bits calculations"Yaowu Xu
2014-04-08Merge "vp9_firstpass: Get rid of magic number in bits per MB calculation"Yaowu Xu
2014-04-07Moving compute_qdelta functions into vp9_ratectrl.{h, c}.Dmitry Kovalev
Change-Id: I512f2a287dd8765879a2d1144e2f028dc65f71ff
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-07vp9_ratectrl: change ARF overlays rate correction factorGuillaume Martres
ARF overlays now use the same rate correction factor as regular inter frames, further testing would be needed to see if it makes sense to use a completely separate rate correction factor for ARF overlays. $ vpxenc --cpu-used=5 --fps=50/1 --target-bitrate=2000 parkjoy.y4m -o out.webm => Before: 3356 kb/s => After: 2271 kb/s Change-Id: I73e4defa615ba7a8a2bdb845864f4b1721cbbffe
2014-04-07Replace imprecise 32 bits calculations by 64 bits calculationsGuillaume Martres
Change-Id: If1b0a2d6603ce24f5dd99855e8dfe459e7a2835a
2014-04-07vp9_firstpass: Get rid of magic number in bits per MB calculationGuillaume Martres
Change-Id: Ib3886cb7cafc211581f4f9e7f76782d9d1984434
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