From 658daf36fa25ff89a4041d398b7a572898b23ead Mon Sep 17 00:00:00 2001 From: Paul Wilkins <paulwilkins@google.com> Date: Tue, 15 Apr 2014 19:15:43 -0700 Subject: [PATCH] Fix rate control bug. 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 --- vp9/encoder/vp9_ratectrl.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c index f2afc46459..806ab93796 100644 --- a/vp9/encoder/vp9_ratectrl.c +++ b/vp9/encoder/vp9_ratectrl.c @@ -308,6 +308,10 @@ void vp9_rc_update_rate_correction_factors(VP9_COMP *cpi, int damp_var) { int projected_size_based_on_q = 0; + // Do not update the rate factors for arf overlay frames. + if (cpi->rc.is_src_frame_alt_ref) + return; + // Clear down mmx registers to allow floating point in what follows vp9_clear_system_state(); -- GitLab