diff options
author | Marco Paniconi <marpan@google.com> | 2016-08-04 17:50:55 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-08-04 17:50:55 +0000 |
commit | 9fdeeaf41106894ea1a3564cb081207c3a9a5938 (patch) | |
tree | 684d4322b787d5262f1f22bc5c6b016fb32c5b8e | |
parent | 7a79fa136228b349b202b9d5bae2b4f95d1ef517 (diff) | |
parent | ff0a87ce3885597ea577b9547ef4162707db8476 (diff) | |
download | libvpx-9fdeeaf41106894ea1a3564cb081207c3a9a5938.tar libvpx-9fdeeaf41106894ea1a3564cb081207c3a9a5938.tar.gz libvpx-9fdeeaf41106894ea1a3564cb081207c3a9a5938.tar.bz2 libvpx-9fdeeaf41106894ea1a3564cb081207c3a9a5938.zip |
Merge "vp9 1pass vbr: Adjustment to gf interval."
-rw-r--r-- | vp9/encoder/vp9_ratectrl.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c index c60f22c8e..6105f81f2 100644 --- a/vp9/encoder/vp9_ratectrl.c +++ b/vp9/encoder/vp9_ratectrl.c @@ -1522,7 +1522,7 @@ void vp9_rc_get_one_pass_vbr_params(VP9_COMP *cpi) { VPXMIN(15, (3 * rc->baseline_gf_interval) >> 1); } else if (rc->avg_frame_low_motion < 20) { // Decrease gf interval for high motion case. - rc->baseline_gf_interval = VPXMAX(5, rc->baseline_gf_interval >> 1); + rc->baseline_gf_interval = VPXMAX(6, rc->baseline_gf_interval >> 1); } // Adjust boost and af_ratio based on avg_frame_low_motion, which varies // between 0 and 100 (stationary, 100% zero/small motion). @@ -2115,10 +2115,9 @@ void adjust_gf_boost_lag_one_pass_vbr(VP9_COMP *cpi, uint64_t avg_sad_current) { VPXMIN(15, (3 * rc->baseline_gf_interval) >> 1); } else if (high_content) { rc->gfu_boost = DEFAULT_GF_BOOST >> 1; - if (rate_err > 3.0) - rc->baseline_gf_interval = VPXMAX(10, rc->baseline_gf_interval >> 1); - else - rc->baseline_gf_interval = VPXMAX(5, rc->baseline_gf_interval >> 1); + rc->baseline_gf_interval = (rate_err > 3.0) ? + VPXMAX(10, rc->baseline_gf_interval >> 1) : + VPXMAX(6, rc->baseline_gf_interval >> 1); } // Check for constraining gf_interval for up-coming scene/content changes, // or for up-coming key frame, whichever is closer. @@ -2126,8 +2125,7 @@ void adjust_gf_boost_lag_one_pass_vbr(VP9_COMP *cpi, uint64_t avg_sad_current) { if (rc->high_source_sad_lagindex > 0 && frame_constraint > rc->high_source_sad_lagindex) frame_constraint = rc->high_source_sad_lagindex; - if (steady_sad_lagindex > 0 && steady_sad_lagindex > 2 && - frame_constraint > steady_sad_lagindex) + if (steady_sad_lagindex > 3 && frame_constraint > steady_sad_lagindex) frame_constraint = steady_sad_lagindex; adjust_gfint_frame_constraint(cpi, frame_constraint); rc->frames_till_gf_update_due = rc->baseline_gf_interval; |