Remove av1_is_interp_search_needed()
Remove av1_is_interp_search_needed(), which always returns 1.
Also, skipping interp filter search for full MV is already considered
in calc_interp_skip_pred_flag().
Change-Id: I5eb653db44a3f9eaebdfc8cc13bc3047e74e881a
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 3351b7e..e742aa0 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -9093,9 +9093,8 @@
const int num_planes = av1_num_planes(cm);
MACROBLOCKD *const xd = &x->e_mbd;
MB_MODE_INFO *const mbmi = xd->mi[0];
- const int need_search = av1_is_interp_needed(xd) &&
- av1_is_interp_search_needed(xd) &&
- !cpi->sf.skip_interp_filter_search;
+ const int need_search =
+ av1_is_interp_needed(xd) && !cpi->sf.skip_interp_filter_search;
const int ref_frame = xd->mi[0]->ref_frame[0];
RD_STATS rd_stats_luma, rd_stats;
@@ -10928,8 +10927,7 @@
int skip_build_pred = 0;
if (is_comp_pred) {
// Find matching interp filter or set to default interp filter
- const int need_search =
- av1_is_interp_needed(xd) && av1_is_interp_search_needed(xd);
+ const int need_search = av1_is_interp_needed(xd);
const InterpFilter assign_filter = cm->interp_filter;
int is_luma_interp_done = 0;
find_interp_filter_match(x, cpi, assign_filter, need_search);
@@ -14097,7 +14095,7 @@
best_filter = cm->interp_filter;
} else {
best_filter = EIGHTTAP_REGULAR;
- if (av1_is_interp_needed(xd) && av1_is_interp_search_needed(xd) &&
+ if (av1_is_interp_needed(xd) &&
x->source_variance >= cpi->sf.disable_filter_search_var_thresh) {
int rs;
int best_rs = INT_MAX;
diff --git a/av1/encoder/reconinter_enc.h b/av1/encoder/reconinter_enc.h
index a2c580ef..ddca4cb 100644
--- a/av1/encoder/reconinter_enc.h
+++ b/av1/encoder/reconinter_enc.h
@@ -33,48 +33,6 @@
int dst_stride, const MV *src_mv, int x, int y,
InterPredParams *inter_pred_params);
-// Detect if the block have sub-pixel level motion vectors
-// per component.
-#define CHECK_SUBPEL 0
-static INLINE int has_subpel_mv_component(const MB_MODE_INFO *const mbmi,
- const MACROBLOCKD *const xd,
- int dir) {
-#if CHECK_SUBPEL
- const BLOCK_SIZE bsize = mbmi->sb_type;
- int plane;
- int ref = (dir >> 1);
-
- if (dir & 0x01) {
- if (mbmi->mv[ref].as_mv.col & SUBPEL_MASK) return 1;
- } else {
- if (mbmi->mv[ref].as_mv.row & SUBPEL_MASK) return 1;
- }
-
- return 0;
-#else
- (void)mbmi;
- (void)xd;
- (void)dir;
- return 1;
-#endif
-}
-
-static INLINE int av1_is_interp_search_needed(const MACROBLOCKD *const xd) {
- MB_MODE_INFO *const mi = xd->mi[0];
- const int is_compound = has_second_ref(mi);
- int ref;
- for (ref = 0; ref < 1 + is_compound; ++ref) {
- int row_col;
- for (row_col = 0; row_col < 2; ++row_col) {
- const int dir = (ref << 1) + row_col;
- if (has_subpel_mv_component(mi, xd, dir)) {
- return 1;
- }
- }
- }
- return 0;
-}
-
void av1_build_prediction_by_above_preds(const AV1_COMMON *cm, MACROBLOCKD *xd,
int mi_row, int mi_col,
uint8_t *tmp_buf[MAX_MB_PLANE],