ref: 91fc730d831a46751fe5adb96f4897085b483313
parent: 299ef2f8ebad1c831097f1aedd3b0b477350de15
author: Marco <[email protected]>
date: Mon Jan 9 11:38:49 EST 2017
vp9: 1 pass cbr: Adjustments to usage of gf_cbr_boost and aq=3 mode. When aq=3 mode is on and the gf_cbr_boost is set: make sure golden frame is always refreshed, and don't incorporate segement cost in qp setting on the boosted golden frame. Better performance on RTC set with gf_cbr_boost on, for example with gf_cbr_boost=50, gains from ~0.5-3%. Change-Id: Ie811f5e4d444ff3320bd6e2c1745b2c4c09a8460
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -3247,7 +3247,8 @@
// golden reference, for non-SVC 1 pass CBR.
if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ && cm->frame_type != KEY_FRAME &&
!cpi->use_svc && cpi->ext_refresh_frame_flags_pending == 0 &&
- (cpi->oxcf.pass == 0 && cpi->oxcf.rc_mode == VPX_CBR))
+ (cpi->oxcf.pass == 0 && cpi->oxcf.rc_mode == VPX_CBR &&
+ !cpi->oxcf.gf_cbr_boost_pct))
vp9_cyclic_refresh_check_golden_update(cpi);
// Update the skip mb flag probabilities based on the distribution
--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -537,7 +537,8 @@
do {
if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ && cm->seg.enabled &&
- cpi->svc.temporal_layer_id == 0) {
+ cpi->svc.temporal_layer_id == 0 &&
+ (!cpi->oxcf.gf_cbr_boost_pct || !cpi->refresh_golden_frame)) {
bits_per_mb_at_this_q =
(int)vp9_cyclic_refresh_rc_bits_per_mb(cpi, i, correction_factor);
} else {