From: Guillaume Martres Date: Sat, 5 Apr 2014 23:07:53 +0000 (+0200) Subject: vp9_ratectrl: change ARF overlays rate correction factor X-Git-Tag: v1.4.0~1877^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4664b219a298387c009b393de2c2a023adfaa741;p=libvpx vp9_ratectrl: change ARF overlays rate correction factor 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 --- diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c index 26e89addf..c033b2fb6 100644 --- a/vp9/encoder/vp9_ratectrl.c +++ b/vp9/encoder/vp9_ratectrl.c @@ -272,6 +272,7 @@ static double get_rate_correction_factor(const VP9_COMP *cpi) { return cpi->rc.key_frame_rate_correction_factor; } else { if ((cpi->refresh_alt_ref_frame || cpi->refresh_golden_frame) && + !cpi->rc.is_src_frame_alt_ref && !(cpi->use_svc && cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER)) return cpi->rc.gf_rate_correction_factor; else @@ -284,6 +285,7 @@ static void set_rate_correction_factor(VP9_COMP *cpi, double factor) { cpi->rc.key_frame_rate_correction_factor = factor; } else { if ((cpi->refresh_alt_ref_frame || cpi->refresh_golden_frame) && + !cpi->rc.is_src_frame_alt_ref && !(cpi->use_svc && cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER)) cpi->rc.gf_rate_correction_factor = factor; else