Reduce number of fullpx steps taken by tpl in spd 5 Performance: RES | AVG_PSNR | OVR_PSNR | SSIM | AVG_SPD | OVR_SPD LOWRES | +0.009% | -0.001% | +0.185% | +1.044% | +0.699% MIDRES | +0.026% | +0.013% | +0.228% | +2.001% | +1.081% HDRES | +0.062% | +0.051% | +0.216% | +3.969% | +2.617% STATS_CHANGED Change-Id: I52854ab356ab01553bda833c8baed80d39b6336a
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c index b1c5eae..76ec863 100644 --- a/av1/encoder/speed_features.c +++ b/av1/encoder/speed_features.c
@@ -494,6 +494,7 @@ sf->disable_smooth_interintra = 1; sf->disable_onesided_comp = 1; sf->tpl_sf.prune_intra_modes = 1; + sf->tpl_sf.reduce_first_step_size = 6; } } @@ -924,6 +925,7 @@ // TODO(any) Cleanup this speed feature sf->prune_single_motion_modes_by_simple_trans = 0; sf->tpl_sf.prune_intra_modes = 0; + sf->tpl_sf.reduce_first_step_size = 0; // Set decoder side speed feature to use less dual sgr modes sf->dual_sgr_penalty_level = 0;
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h index bbf358f..636a136 100644 --- a/av1/encoder/speed_features.h +++ b/av1/encoder/speed_features.h
@@ -252,6 +252,9 @@ // modes from DC_PRED to PAETH_PRED. If set to one, we only search DC_PRED and // the direction modes int prune_intra_modes; + + // This parameter controls which step in the n-step process we start at. + int reduce_first_step_size; } TPL_SPEED_FEATURES; #define MAX_MESH_STEP 4
diff --git a/av1/encoder/tpl_model.c b/av1/encoder/tpl_model.c index 7c5fabf..95bd703 100644 --- a/av1/encoder/tpl_model.c +++ b/av1/encoder/tpl_model.c
@@ -111,6 +111,7 @@ AV1_COMMON *cm = &cpi->common; MACROBLOCKD *const xd = &x->e_mbd; MV_SPEED_FEATURES *const mv_sf = &cpi->sf.mv; + TPL_SPEED_FEATURES *tpl_sf = &cpi->sf.tpl_sf; const SEARCH_METHODS search_method = NSTEP; int step_param; int sadpb = x->sadperbit16; @@ -137,7 +138,7 @@ xd->plane[0].pre[0].buf = ref_frame_buf; xd->plane[0].pre[0].stride = stride_ref; - step_param = mv_sf->reduce_first_step_size; + step_param = mv_sf->reduce_first_step_size + tpl_sf->reduce_first_step_size; step_param = AOMMIN(step_param, MAX_MVSEARCH_STEPS - 2); av1_set_mv_search_range(&x->mv_limits, &best_ref_mv1);