Remove unused square motion search method Change-Id: I321eb27314508c7ef816bc73ca2b291e21cb0287
diff --git a/av1/encoder/mcomp.c b/av1/encoder/mcomp.c index 9ccb2da..480eb55 100644 --- a/av1/encoder/mcomp.c +++ b/av1/encoder/mcomp.c
@@ -576,60 +576,6 @@ cfg->num_search_steps = MAX_PATTERN_SCALES; } -// Search site initialization for SQUARE search method. -static void init_motion_compensation_square(search_site_config *cfg, int stride, - int level) { - (void)level; - cfg->stride = stride; - // All scales have 8 closest points in square shape. - static const int square_num_candidates[MAX_PATTERN_SCALES] = { - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - }; - - // Square search method candidates. - // Note that the largest candidate step at each scale is 2^scale. - /* clang-format off */ - static const FULLPEL_MV - square_candidates[MAX_PATTERN_SCALES][MAX_PATTERN_CANDIDATES] = { - { { -1, -1 }, { 0, -1 }, { 1, -1 }, { 1, 0 }, { 1, 1 }, { 0, 1 }, - { -1, 1 }, { -1, 0 } }, - { { -2, -2 }, { 0, -2 }, { 2, -2 }, { 2, 0 }, { 2, 2 }, { 0, 2 }, - { -2, 2 }, { -2, 0 } }, - { { -4, -4 }, { 0, -4 }, { 4, -4 }, { 4, 0 }, { 4, 4 }, { 0, 4 }, - { -4, 4 }, { -4, 0 } }, - { { -8, -8 }, { 0, -8 }, { 8, -8 }, { 8, 0 }, { 8, 8 }, { 0, 8 }, - { -8, 8 }, { -8, 0 } }, - { { -16, -16 }, { 0, -16 }, { 16, -16 }, { 16, 0 }, { 16, 16 }, - { 0, 16 }, { -16, 16 }, { -16, 0 } }, - { { -32, -32 }, { 0, -32 }, { 32, -32 }, { 32, 0 }, { 32, 32 }, - { 0, 32 }, { -32, 32 }, { -32, 0 } }, - { { -64, -64 }, { 0, -64 }, { 64, -64 }, { 64, 0 }, { 64, 64 }, - { 0, 64 }, { -64, 64 }, { -64, 0 } }, - { { -128, -128 }, { 0, -128 }, { 128, -128 }, { 128, 0 }, - { 128, 128 }, { 0, 128 }, { -128, 128 }, { -128, 0 } }, - { { -256, -256 }, { 0, -256 }, { 256, -256 }, { 256, 0 }, - { 256, 256 }, { 0, 256 }, { -256, 256 }, { -256, 0 } }, - { { -512, -512 }, { 0, -512 }, { 512, -512 }, { 512, 0 }, - { 512, 512 }, { 0, 512 }, { -512, 512 }, { -512, 0 } }, - { { -1024, -1024 }, { 0, -1024 }, { 1024, -1024 }, { 1024, 0 }, - { 1024, 1024 }, { 0, 1024 }, { -1024, 1024 }, { -1024, 0 } }, - }; - - /* clang-format on */ - int radius = 1; - for (int i = 0; i < MAX_PATTERN_SCALES; ++i) { - cfg->searches_per_step[i] = square_num_candidates[i]; - cfg->radius[i] = radius; - for (int j = 0; j < MAX_PATTERN_CANDIDATES; ++j) { - search_site *const site = &cfg->site[i][j]; - site->mv = square_candidates[i][j]; - site->offset = get_offset_from_fullmv(&site->mv, stride); - } - radius *= 2; - } - cfg->num_search_steps = MAX_PATTERN_SCALES; -} - // Search site initialization for HEX / FAST_HEX search methods. static void init_motion_compensation_hex(search_site_config *cfg, int stride, int level) { @@ -683,8 +629,7 @@ av1_init_motion_compensation[NUM_DISTINCT_SEARCH_METHODS] = { init_dsmotion_compensation, init_motion_compensation_nstep, init_motion_compensation_nstep, init_dsmotion_compensation, - init_motion_compensation_hex, init_motion_compensation_bigdia, - init_motion_compensation_square + init_motion_compensation_hex, init_motion_compensation_bigdia }; // Checks whether the mv is within range of the mv_limits @@ -1317,15 +1262,6 @@ cost_list, best_mv, best_mv_stats); } -static int square_search(const FULLPEL_MV start_mv, - const FULLPEL_MOTION_SEARCH_PARAMS *ms_params, - const int search_step, const int do_init_search, - int *cost_list, FULLPEL_MV *best_mv, - FULLPEL_MV_STATS *best_mv_stats) { - return pattern_search(start_mv, ms_params, search_step, do_init_search, - cost_list, best_mv, best_mv_stats); -} - static int fast_hex_search(const FULLPEL_MV start_mv, const FULLPEL_MOTION_SEARCH_PARAMS *ms_params, const int search_step, const int do_init_search, @@ -1887,10 +1823,7 @@ var = hex_search(start_mv, ms_params, step_param, 1, cost_list, best_mv, best_mv_stats); break; - case SQUARE: - var = square_search(start_mv, ms_params, step_param, 1, cost_list, - best_mv, best_mv_stats); - break; + case BIGDIA: var = bigdia_search(start_mv, ms_params, step_param, 1, cost_list, best_mv, best_mv_stats);
diff --git a/av1/encoder/mcomp.h b/av1/encoder/mcomp.h index eb70c29..5747de0 100644 --- a/av1/encoder/mcomp.h +++ b/av1/encoder/mcomp.h
@@ -172,7 +172,6 @@ CLAMPED_DIAMOND, // CLAMPED_DIAMOND HEX, // HEX BIGDIA, // BIGDIA - SQUARE, // SQUARE HEX, // FAST_HEX BIGDIA, // FAST_DIAMOND BIGDIA, // FAST_BIGDIA
diff --git a/av1/encoder/mcomp_structs.h b/av1/encoder/mcomp_structs.h index 2fa2817..9bb03b0 100644 --- a/av1/encoder/mcomp_structs.h +++ b/av1/encoder/mcomp_structs.h
@@ -72,20 +72,18 @@ // up to 11 search stages. First stage consists of 4 search // points and the rest with 8 search points each. BIGDIA = 5, - // Search 8-points in the square grid around center, up to 11 search stages. - SQUARE = 6, // HEX search with up to 2 stages. - FAST_HEX = 7, + FAST_HEX = 6, // BIGDIA search with up to 2 stages. - FAST_DIAMOND = 8, + FAST_DIAMOND = 7, // BIGDIA search with up to 3 stages. - FAST_BIGDIA = 9, + FAST_BIGDIA = 8, // BIGDIA search with up to 1 stage. - VFAST_DIAMOND = 10, + VFAST_DIAMOND = 9, // Total number of search methods. NUM_SEARCH_METHODS, // Number of distinct search methods. - NUM_DISTINCT_SEARCH_METHODS = SQUARE + 1, + NUM_DISTINCT_SEARCH_METHODS = BIGDIA + 1, } UENUM1BYTE(SEARCH_METHODS); typedef struct warp_search_config {
diff --git a/av1/encoder/motion_search_facade.h b/av1/encoder/motion_search_facade.h index 5e7f417..87a18cb 100644 --- a/av1/encoder/motion_search_facade.h +++ b/av1/encoder/motion_search_facade.h
@@ -98,7 +98,7 @@ // Note on search method's accuracy: // 1. NSTEP // 2. DIAMOND - // 3. BIGDIA \approx SQUARE + // 3. BIGDIA // 4. HEX. // 5. FAST_HEX \approx FAST_DIAMOND switch (search_method) { @@ -107,7 +107,6 @@ case DIAMOND: return BIGDIA; case CLAMPED_DIAMOND: return BIGDIA; case BIGDIA: return HEX; - case SQUARE: return HEX; case HEX: return FAST_HEX; case FAST_HEX: return FAST_HEX; case FAST_DIAMOND: return VFAST_DIAMOND;