AV1 RT: Tune VBP thresholds for speed 9 Several clips in RTC et shows significant degradation on speed 9 vs speed 8 and vs VP9 speed 7. The main reason is too big prediction blocks. Retuning this for midres and high quality more. Neutral for VGA and lower, 5% BDRate improvement for 720p Change-Id: I0f4fde1d60beeded3f94f7194d3a717cf6e3ff9b
diff --git a/av1/encoder/var_based_part.c b/av1/encoder/var_based_part.c index 59ee3d3..0b27377 100644 --- a/av1/encoder/var_based_part.c +++ b/av1/encoder/var_based_part.c
@@ -415,8 +415,18 @@ thresholds[2] = (5 * threshold_base) >> 1; } if (cpi->sf.rt_sf.force_large_partition_blocks) { - if (current_qindex > QINDEX_LARGE_BLOCK_THR || - cm->width * cm->height <= 352 * 288) { + if (cm->width * cm->height <= 352 * 288) { + thresholds[1] <<= 2; + thresholds[2] <<= 5; + thresholds[3] = INT32_MAX; + } else if (cm->width * cm->height > 640 * 480) { + thresholds[0] <<= 2; + thresholds[3] = INT32_MAX; + if (current_qindex >= QINDEX_LARGE_BLOCK_THR) { + thresholds[1] <<= 1; + thresholds[2] <<= 1; + } + } else if (current_qindex > QINDEX_LARGE_BLOCK_THR) { thresholds[1] <<= 2; thresholds[2] <<= 5; thresholds[3] = INT32_MAX;
diff --git a/test/svc_datarate_test.cc b/test/svc_datarate_test.cc index 7a8a153..043c45e 100644 --- a/test/svc_datarate_test.cc +++ b/test/svc_datarate_test.cc
@@ -681,7 +681,7 @@ for (int i = 0; i < number_temporal_layers_ * number_spatial_layers_; i++) { ASSERT_GE(effective_datarate_tl[i], target_layer_bitrate_[i] * 0.70) << " The datarate for the file is lower than target by too much!"; - ASSERT_LE(effective_datarate_tl[i], target_layer_bitrate_[i] * 1.4) + ASSERT_LE(effective_datarate_tl[i], target_layer_bitrate_[i] * 1.45) << " The datarate for the file is greater than target by too much!"; } }