Add a speed feature to avoid extensive intrabc search Disable the extensive intrabc search in VoD setting in higher speed settings. BUG=b/275118259 STATS_CHANGED Change-Id: I944572ab8de56944133752948cf9479dfe9b063f
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c index 80bd9b3..c17fbcc 100644 --- a/av1/encoder/rdopt.c +++ b/av1/encoder/rdopt.c
@@ -3118,7 +3118,7 @@ int64_t best_rd) { const AV1_COMMON *const cm = &cpi->common; if (!av1_allow_intrabc(cm) || !cpi->oxcf.kf_cfg.enable_intrabc || - cpi->sf.rt_sf.use_nonrd_pick_mode) + !cpi->sf.mv_sf.use_intrabc || cpi->sf.rt_sf.use_nonrd_pick_mode) return INT64_MAX; const int num_planes = av1_num_planes(cm);
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c index feb50e7..218c11b 100644 --- a/av1/encoder/speed_features.c +++ b/av1/encoder/speed_features.c
@@ -1115,6 +1115,7 @@ sf->mv_sf.search_method = DIAMOND; sf->mv_sf.disable_second_mv = 2; sf->mv_sf.prune_mesh_search = PRUNE_MESH_SEARCH_LVL_1; + sf->mv_sf.use_intrabc = 0; sf->inter_sf.disable_interinter_wedge_newmv_search = boosted ? 0 : 1; sf->inter_sf.mv_cost_upd_level = INTERNAL_COST_UPD_SBROW; @@ -2005,6 +2006,7 @@ mv_sf->skip_fullpel_search_using_startmv = 0; mv_sf->warp_search_method = WARP_SEARCH_SQUARE; mv_sf->warp_search_iters = 8; + mv_sf->use_intrabc = 1; } static AOM_INLINE void init_inter_sf(INTER_MODE_SPEED_FEATURES *inter_sf) {
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h index e3f7d9f..337488b 100644 --- a/av1/encoder/speed_features.h +++ b/av1/encoder/speed_features.h
@@ -855,6 +855,9 @@ // Accurate full pixel motion search based on TPL stats. int full_pixel_search_level; + // Allow intrabc motion search + int use_intrabc; + // Whether to downsample the rows in sad calculation during motion search. // This is only active when there are at least 16 rows. When this sf is // active, if there is a large discrepancy in the SAD values for the final