Reduce baseline inter enumerator in av1_rc_bits_per_mb() Reduce the baseline inter enumerator used to estimate bits per MB in the rate control heuristics. This value is now separate from the calculation used to estimate maxq in the two pass code. The impact of this change will be to slightly lower the initial q estimate for a given target bitrate. Small metrics gains on all sets (av psnr, ov psnr, ssim, psnr-hvs) low res -0.017 -0.017 -0.034 -0.034 ugc 360 -0.012 -0.014 -0.042 -0.005 mid res -0.016 0.002 -0.064 0.038 hd res -0.078 -0.082 -0.094 -0.044 STATS_CHANGED Change-Id: I889b9348243fee627375dfc2830e151e81d67594
diff --git a/av1/encoder/ratectrl.c b/av1/encoder/ratectrl.c index 754da2b..490d9ef 100644 --- a/av1/encoder/ratectrl.c +++ b/av1/encoder/ratectrl.c
@@ -155,7 +155,7 @@ int av1_rc_bits_per_mb(FRAME_TYPE frame_type, int qindex, double correction_factor, aom_bit_depth_t bit_depth) { const double q = av1_convert_qindex_to_q(qindex, bit_depth); - int enumerator = frame_type == KEY_FRAME ? 2000000 : 1800000; + int enumerator = frame_type == KEY_FRAME ? 2000000 : 1440000; assert(correction_factor <= MAX_BPB_FACTOR && correction_factor >= MIN_BPB_FACTOR);
diff --git a/test/datarate_test.cc b/test/datarate_test.cc index d6c8c00..2f68121 100644 --- a/test/datarate_test.cc +++ b/test/datarate_test.cc
@@ -279,9 +279,9 @@ ResetModel(); ASSERT_NO_FATAL_FAILURE(RunLoop(&video)); - ASSERT_GE(effective_datarate_, cfg_.rc_target_bitrate * 0.85) + ASSERT_GE(effective_datarate_, cfg_.rc_target_bitrate * 0.83) << " The datarate for the file is lower than target by too much!"; - ASSERT_LE(effective_datarate_, cfg_.rc_target_bitrate * 1.16) + ASSERT_LE(effective_datarate_, cfg_.rc_target_bitrate * 1.17) << " The datarate for the file is greater than target by too much!"; } };