vp9 1pass-vbr: Adjust gf setting for nonzero-lag case.
authorMarco <marpan@google.com>
Fri, 22 Jul 2016 18:44:58 +0000 (11:44 -0700)
committerMarco <marpan@google.com>
Fri, 22 Jul 2016 18:48:09 +0000 (11:48 -0700)
Change-Id: I230c586c6d5ae56ee9a6d37b7d9452351bb4bd80

vp9/encoder/vp9_ratectrl.c

index 939916f..2103898 100644 (file)
@@ -2185,7 +2185,10 @@ 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;
-      rc->baseline_gf_interval = VPXMAX(5, rc->baseline_gf_interval >> 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);
     }
     // Check for constraining gf_interval for up-coming scene/content changes,
     // or for up-coming key frame, whichever is closer.