AV1 RT: Adjust VBP thresholds on intra frames This allows to speed up intra frame encoding to 35-40% with overall quality impact of <0.5% (rtc and rtc_derf sets speed 9 and 10) Change-Id: Ic29e2287103c13b79fa241405abfcd00b69685f2
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c index 10be6d6..1cb8414 100644 --- a/av1/encoder/speed_features.c +++ b/av1/encoder/speed_features.c
@@ -1204,8 +1204,6 @@ const int is_480p_or_larger = AOMMIN(cm->width, cm->height) >= 480; const int is_360p_or_larger = AOMMIN(cm->width, cm->height) >= 360; - (void)is_720p_or_larger; // Not used so far - if (!is_360p_or_larger) { if (speed >= 5) sf->rt_sf.prune_inter_modes_wrt_gf_arf_based_on_sad = 1; if (speed >= 6) sf->rt_sf.force_tx_search_off = 1; @@ -1262,6 +1260,11 @@ sf->rt_sf.use_comp_ref_nonrd = 0; } } + if (!is_720p_or_larger) { + if (speed >= 9) { + sf->rt_sf.force_large_partition_blocks_intra = 1; + } + } if (cpi->ppi->use_svc) { sf->rt_sf.use_comp_ref_nonrd = 0; if (cpi->svc.ref_frame_comp[0] || cpi->svc.ref_frame_comp[1] ||
diff --git a/av1/encoder/var_based_part.c b/av1/encoder/var_based_part.c index c46bee2..44597c3 100644 --- a/av1/encoder/var_based_part.c +++ b/av1/encoder/var_based_part.c
@@ -351,7 +351,7 @@ if (is_key_frame) { if (cpi->sf.rt_sf.force_large_partition_blocks_intra) { - threshold_base <<= cpi->oxcf.speed - 7; + threshold_base <<= cpi->oxcf.speed - (cpi->oxcf.mode == ALLINTRA ? 7 : 8); } thresholds[0] = threshold_base; thresholds[1] = threshold_base;