Remove unused subpel search function
Removed unused av1_find_best_sub_pixel_tree_pruned_evenmore(), which
was similar to av1_find_best_sub_pixel_tree_pruned_more() and didn't
give any further speedup based on my testing.
Change-Id: Ie8208f73c7c4fa2cbd8ccfcdb19b04addb5f3d7b
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index ffefb09..e8f982b 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -1673,7 +1673,6 @@
* In encoder: av1_find_best_sub_pixel_tree
* av1_find_best_sub_pixel_tree_pruned
* av1_find_best_sub_pixel_tree_pruned_more
- * av1_find_best_sub_pixel_tree_pruned_evenmore
* In MV unit test: av1_return_max_sub_pixel_mv
* av1_return_min_sub_pixel_mv
*/
diff --git a/av1/encoder/mcomp.c b/av1/encoder/mcomp.c
index d2d82af..c636843 100644
--- a/av1/encoder/mcomp.c
+++ b/av1/encoder/mcomp.c
@@ -2789,90 +2789,6 @@
}
}
-int av1_find_best_sub_pixel_tree_pruned_evenmore(
- MACROBLOCKD *xd, const AV1_COMMON *const cm,
- const SUBPEL_MOTION_SEARCH_PARAMS *ms_params, MV start_mv, MV *bestmv,
- int *distortion, unsigned int *sse1, int_mv *last_mv_search_list) {
- (void)cm;
- const int allow_hp = ms_params->allow_hp;
- const int forced_stop = ms_params->forced_stop;
- const int iters_per_step = ms_params->iters_per_step;
- const int *cost_list = ms_params->cost_list;
- const SubpelMvLimits *mv_limits = &ms_params->mv_limits;
- const MV_COST_PARAMS *mv_cost_params = &ms_params->mv_cost_params;
- const SUBPEL_SEARCH_VAR_PARAMS *var_params = &ms_params->var_params;
-
- // The iteration we are current searching for. Iter 0 corresponds to fullpel
- // mv, iter 1 to half pel, and so on
- int iter = 0;
- int hstep = INIT_SUBPEL_STEP_SIZE; // Step size, initialized to 4/8=1/2 pel
- unsigned int besterr = INT_MAX;
- *bestmv = start_mv;
-
- const struct scale_factors *const sf = is_intrabc_block(xd->mi[0])
- ? &cm->sf_identity
- : xd->block_ref_scale_factors[0];
- const int is_scaled = av1_is_scaled(sf);
- besterr = setup_center_error_facade(
- xd, cm, bestmv, var_params, mv_cost_params, sse1, distortion, is_scaled);
-
- // If forced_stop is FULL_PEL, return.
- if (forced_stop == FULL_PEL) return besterr;
-
- if (check_repeated_mv_and_update(last_mv_search_list, *bestmv, iter)) {
- return INT_MAX;
- }
- iter++;
-
- if (cost_list && cost_list[0] != INT_MAX && cost_list[1] != INT_MAX &&
- cost_list[2] != INT_MAX && cost_list[3] != INT_MAX &&
- cost_list[4] != INT_MAX && is_cost_list_wellbehaved(cost_list)) {
- int ir, ic;
- int dummy = 0;
- get_cost_surf_min(cost_list, &ir, &ic, 2);
- if (ir != 0 || ic != 0) {
- const MV this_mv = { start_mv.row + 2 * ir, start_mv.col + 2 * ic };
- check_better_fast(xd, cm, &this_mv, bestmv, mv_limits, var_params,
- mv_cost_params, &besterr, sse1, distortion, &dummy,
- is_scaled);
- }
- } else {
- two_level_checks_fast(xd, cm, start_mv, bestmv, hstep, mv_limits,
- var_params, mv_cost_params, &besterr, sse1,
- distortion, iters_per_step, is_scaled);
-
- // Each subsequent iteration checks at least one point in common with
- // the last iteration could be 2 ( if diag selected) 1/4 pel
- if (forced_stop < HALF_PEL) {
- if (check_repeated_mv_and_update(last_mv_search_list, *bestmv, iter)) {
- return INT_MAX;
- }
- iter++;
-
- hstep >>= 1;
- start_mv = *bestmv;
- two_level_checks_fast(xd, cm, start_mv, bestmv, hstep, mv_limits,
- var_params, mv_cost_params, &besterr, sse1,
- distortion, iters_per_step, is_scaled);
- }
- }
-
- if (allow_hp && forced_stop == EIGHTH_PEL) {
- if (check_repeated_mv_and_update(last_mv_search_list, *bestmv, iter)) {
- return INT_MAX;
- }
- iter++;
-
- hstep >>= 1;
- start_mv = *bestmv;
- two_level_checks_fast(xd, cm, start_mv, bestmv, hstep, mv_limits,
- var_params, mv_cost_params, &besterr, sse1,
- distortion, iters_per_step, is_scaled);
- }
-
- return besterr;
-}
-
int av1_find_best_sub_pixel_tree_pruned_more(
MACROBLOCKD *xd, const AV1_COMMON *const cm,
const SUBPEL_MOTION_SEARCH_PARAMS *ms_params, MV start_mv, MV *bestmv,
diff --git a/av1/encoder/mcomp.h b/av1/encoder/mcomp.h
index 8905e92..8f6085f 100644
--- a/av1/encoder/mcomp.h
+++ b/av1/encoder/mcomp.h
@@ -368,7 +368,6 @@
extern fractional_mv_step_fp av1_find_best_sub_pixel_tree;
extern fractional_mv_step_fp av1_find_best_sub_pixel_tree_pruned;
extern fractional_mv_step_fp av1_find_best_sub_pixel_tree_pruned_more;
-extern fractional_mv_step_fp av1_find_best_sub_pixel_tree_pruned_evenmore;
extern fractional_mv_step_fp av1_return_max_sub_pixel_mv;
extern fractional_mv_step_fp av1_return_min_sub_pixel_mv;
extern fractional_mv_step_fp av1_find_best_obmc_sub_pixel_tree_up;
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 2b03c65..3d728a4 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -1373,9 +1373,6 @@
} else if (sf->mv_sf.subpel_search_method == SUBPEL_TREE_PRUNED_MORE) {
mv_search_params->find_fractional_mv_step =
av1_find_best_sub_pixel_tree_pruned_more;
- } else if (sf->mv_sf.subpel_search_method == SUBPEL_TREE_PRUNED_EVENMORE) {
- mv_search_params->find_fractional_mv_step =
- av1_find_best_sub_pixel_tree_pruned_evenmore;
}
// This is only used in motion vector unit test.
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index 9772a0a..183d8ea 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -136,10 +136,8 @@
enum {
SUBPEL_TREE = 0,
- SUBPEL_TREE_PRUNED = 1, // Prunes 1/2-pel searches
- SUBPEL_TREE_PRUNED_MORE = 2, // Prunes 1/2-pel searches more aggressively
- SUBPEL_TREE_PRUNED_EVENMORE = 3, // Prunes 1/2- and 1/4-pel searches
- // Other methods to come
+ SUBPEL_TREE_PRUNED = 1, // Prunes 1/2-pel searches
+ SUBPEL_TREE_PRUNED_MORE = 2, // Prunes 1/2-pel searches more aggressively
} UENUM1BYTE(SUBPEL_SEARCH_METHODS);
enum {