]> granicus.if.org Git - libvpx/commitdiff
Vizer: Added in experimental max KF boost values.
authorPaul Wilkins <paulwilkins@google.com>
Tue, 9 Mar 2021 15:11:41 +0000 (15:11 +0000)
committerPaul Wilkins <paulwilkins@google.com>
Wed, 10 Mar 2021 14:41:40 +0000 (14:41 +0000)
Added the experimental max per frame KF boost values derived from
the Vizier experiments.

These are still all off by default.

When enabled I expect these to cause significant regression as they
fluctuate wildly and in a way that makes no sense from format to format.

I suspect these values reflect over fitting perhaps from a subset of
training clips with more frequent mid chunk key frames and or short key
frame groups.

Also fixed incorrect value for gf boost for one format.

Experiment to moderate these values and use different values for first
and subsequent KF groups to follow.

Change-Id: Ibeb4268957f2edacdb4549d74930255a22a2fcc5

vp9/encoder/vp9_firstpass.c

index d1044d78150468867a3d31b7d067bf00d464af43..8c771c7ffc87df4671dcf00257e4318071227106 100644 (file)
@@ -3520,7 +3520,7 @@ static void init_vizier_params(TWO_PASS *const twopass, int screen_area) {
       twopass->gf_max_total_boost = MAX_GF_BOOST;
       twopass->kf_err_per_mb = 1854.8255436877148;
       twopass->kf_frame_min_boost = KF_MIN_FRAME_BOOST;
-      twopass->kf_frame_max_boost_first = KF_MAX_FRAME_BOOST;
+      twopass->kf_frame_max_boost_first = 25.5;
       twopass->kf_frame_max_boost_subs = twopass->kf_frame_max_boost_first;
       twopass->kf_max_total_boost = MAX_KF_TOT_BOOST;
       twopass->zm_power_factor = 2.93715229184991;
@@ -3533,7 +3533,7 @@ static void init_vizier_params(TWO_PASS *const twopass, int screen_area) {
       twopass->gf_max_total_boost = MAX_GF_BOOST;
       twopass->kf_err_per_mb = 723.8337508755031;
       twopass->kf_frame_min_boost = KF_MIN_FRAME_BOOST;
-      twopass->kf_frame_max_boost_first = KF_MAX_FRAME_BOOST;
+      twopass->kf_frame_max_boost_first = 185.0;
       twopass->kf_frame_max_boost_subs = twopass->kf_frame_max_boost_first;
       twopass->kf_max_total_boost = MAX_KF_TOT_BOOST;
       twopass->zm_power_factor = 3.5299221493593413;
@@ -3546,7 +3546,7 @@ static void init_vizier_params(TWO_PASS *const twopass, int screen_area) {
       twopass->gf_max_total_boost = MAX_GF_BOOST;
       twopass->kf_err_per_mb = 422.2871502380377;
       twopass->kf_frame_min_boost = KF_MIN_FRAME_BOOST;
-      twopass->kf_frame_max_boost_first = KF_MAX_FRAME_BOOST;
+      twopass->kf_frame_max_boost_first = 224.5;
       twopass->kf_frame_max_boost_subs = twopass->kf_frame_max_boost_first;
       twopass->kf_max_total_boost = MAX_KF_TOT_BOOST;
       twopass->zm_power_factor = 2.265742666649307;
@@ -3559,7 +3559,7 @@ static void init_vizier_params(TWO_PASS *const twopass, int screen_area) {
       twopass->gf_max_total_boost = MAX_GF_BOOST;
       twopass->kf_err_per_mb = 1513.4883914008383;
       twopass->kf_frame_min_boost = KF_MIN_FRAME_BOOST;
-      twopass->kf_frame_max_boost_first = KF_MAX_FRAME_BOOST;
+      twopass->kf_frame_max_boost_first = 28.0;
       twopass->kf_frame_max_boost_subs = twopass->kf_frame_max_boost_first;
       twopass->kf_max_total_boost = MAX_KF_TOT_BOOST;
       twopass->zm_power_factor = 3.552278528517416;
@@ -3568,11 +3568,11 @@ static void init_vizier_params(TWO_PASS *const twopass, int screen_area) {
       twopass->base_err_per_mb = 29527.46375825401;
       twopass->sr_default_decay_limit = 0.5009117586299728;
       twopass->sr_diff_part = 0.005007364627260114;
-      twopass->gf_frame_max_boost = GF_MAX_FRAME_BOOST;
+      twopass->gf_frame_max_boost = 81.00472969483079;
       twopass->gf_max_total_boost = MAX_GF_BOOST;
       twopass->kf_err_per_mb = 998.6342911785146;
       twopass->kf_frame_min_boost = KF_MIN_FRAME_BOOST;
-      twopass->kf_frame_max_boost_first = KF_MAX_FRAME_BOOST;
+      twopass->kf_frame_max_boost_first = 53.0;
       twopass->kf_frame_max_boost_subs = twopass->kf_frame_max_boost_first;
       twopass->kf_max_total_boost = MAX_KF_TOT_BOOST;
       twopass->zm_power_factor = 2.568627575572356;
@@ -3581,11 +3581,11 @@ static void init_vizier_params(TWO_PASS *const twopass, int screen_area) {
       twopass->base_err_per_mb = 34474.723463367416;
       twopass->sr_default_decay_limit = 0.23346886902707745;
       twopass->sr_diff_part = 0.011431716637966029;
-      twopass->gf_frame_max_boost = 81.00472969483079;
+      twopass->gf_frame_max_boost = 213.2940230360479;
       twopass->gf_max_total_boost = MAX_GF_BOOST;
       twopass->kf_err_per_mb = 35931.25734431429;
       twopass->kf_frame_min_boost = KF_MIN_FRAME_BOOST;
-      twopass->kf_frame_max_boost_first = KF_MAX_FRAME_BOOST;
+      twopass->kf_frame_max_boost_first = 419.5;
       twopass->kf_frame_max_boost_subs = twopass->kf_frame_max_boost_first;
       twopass->kf_max_total_boost = MAX_KF_TOT_BOOST;
       twopass->zm_power_factor = 5.5776463538431935;