]> granicus.if.org Git - libvpx/commitdiff
Use level defined min gf interval
authorCheng Chen <chengchen@google.com>
Mon, 8 Aug 2022 17:12:39 +0000 (10:12 -0700)
committerCheng Chen <chengchen@google.com>
Tue, 9 Aug 2022 00:35:52 +0000 (17:35 -0700)
Assume the level definition of min_gf_interval is the minimum allowed
gf_interval. We take this level comformant min_gf_interval instead of
+1.

Change-Id: I9c7e62f210c95b356e9716579ee4c19638de8e35

test/vp9_ext_ratectrl_test.cc
vp9/encoder/vp9_ratectrl.c

index 6687f7fec5bdb076d9ba8bcdf286dae66492c54c..16e3248f769c5bce9a3e66cbd6d5b74c01f18f60 100644 (file)
@@ -497,7 +497,7 @@ vpx_rc_status_t rc_get_gop_decision_short(vpx_rc_model_t rate_ctrl_model,
   ToyRateCtrl *toy_rate_ctrl = static_cast<ToyRateCtrl *>(rate_ctrl_model);
   EXPECT_EQ(toy_rate_ctrl->magic_number, kModelMagicNumber);
   EXPECT_EQ(gop_info->lag_in_frames, kMaxLagInFrames - 1);
-  EXPECT_EQ(gop_info->min_gf_interval, kDefaultMinGfInterval + 1);
+  EXPECT_EQ(gop_info->min_gf_interval, kDefaultMinGfInterval);
   EXPECT_EQ(gop_info->max_gf_interval, kDefaultMaxGfInterval);
   EXPECT_EQ(gop_info->allow_alt_ref, 1);
   if (gop_info->is_key_frame) {
@@ -571,7 +571,7 @@ vpx_rc_status_t rc_get_gop_decision_short_no_arf(
   ToyRateCtrl *toy_rate_ctrl = static_cast<ToyRateCtrl *>(rate_ctrl_model);
   EXPECT_EQ(toy_rate_ctrl->magic_number, kModelMagicNumber);
   EXPECT_EQ(gop_info->lag_in_frames, kMaxLagInFrames - 1);
-  EXPECT_EQ(gop_info->min_gf_interval, kDefaultMinGfInterval + 1);
+  EXPECT_EQ(gop_info->min_gf_interval, kDefaultMinGfInterval);
   EXPECT_EQ(gop_info->max_gf_interval, kDefaultMaxGfInterval);
   EXPECT_EQ(gop_info->allow_alt_ref, 1);
   if (gop_info->is_key_frame) {
@@ -800,7 +800,7 @@ class ExtRateCtrlTestGOPShortOverlay
     if (video->frame() == 0) {
       encoder->Control(VP9E_SET_MIN_GF_INTERVAL, kDefaultMinGfInterval);
       encoder->Control(VP9E_SET_MAX_GF_INTERVAL, kDefaultMaxGfInterval);
-      encoder->Control(VP9E_SET_TARGET_LEVEL, vp9::LEVEL_UNKNOWN);
+      encoder->Control(VP9E_SET_TARGET_LEVEL, vp9::LEVEL_AUTO);
 
       vpx_rc_funcs_t rc_funcs;
       rc_funcs.rc_type = VPX_RC_GOP_QP;
index 4f356f9aedb95064459896a496056231a930a22a..1ddf64d41ac09ce85c58cb7be109389b3ea1ce99 100644 (file)
@@ -2589,8 +2589,7 @@ void vp9_rc_set_gf_interval_range(const VP9_COMP *const cpi,
             vp9_level_defs[i].max_luma_picture_breadth >= pic_breadth) {
           if (rc->min_gf_interval <=
               (int)vp9_level_defs[i].min_altref_distance) {
-            rc->min_gf_interval =
-                (int)vp9_level_defs[i].min_altref_distance + 1;
+            rc->min_gf_interval = (int)vp9_level_defs[i].min_altref_distance;
             rc->max_gf_interval =
                 VPXMAX(rc->max_gf_interval, rc->min_gf_interval);
           }