diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index 6663c2a338055b7af73f71754429d17f0521760f..4eaf147ea0f2f3a7a8350f0ba59b4e9ba0201f09 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -2045,11 +2045,15 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, int pred_filter_search = cpi->sf.cb_pred_filter_search ? (((mi_row + mi_col) >> bsl)) & 0x01 : 0; - if (pred_filter_search && this_mode != NEWMV) { + if (pred_filter_search) { + INTERP_FILTER af = SWITCHABLE, lf = SWITCHABLE; if (xd->up_available) - best_filter = xd->mi[-xd->mi_stride]->mbmi.interp_filter; - else if (xd->left_available) - best_filter = xd->mi[-1]->mbmi.interp_filter; + af = xd->mi[-xd->mi_stride]->mbmi.interp_filter; + if (xd->left_available) + lf = xd->mi[-1]->mbmi.interp_filter; + + if ((this_mode != NEWMV) || (af == lf)) + best_filter = af; } if (is_comp_pred) {