From 065809d28640c7f984cec1892e7938e0c4edbe05 Mon Sep 17 00:00:00 2001 From: Yaowu Xu Date: Thu, 23 Oct 2014 08:27:25 -0700 Subject: [PATCH] Move filter_ref initialization To outside the loop to avoid repeating the operations. Change-Id: I66c1986e98ce0d7594caad3d3b45de655b299bff --- vp9/encoder/vp9_pickmode.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index 6b92af2db..837e6e200 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -493,7 +493,7 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, const int8_t segment_id = mbmi->segment_id; const int *const rd_threshes = cpi->rd.threshes[segment_id][bsize]; const int *const rd_thresh_freq_fact = cpi->rd.thresh_freq_fact[bsize]; - INTERP_FILTER filter_ref = cm->interp_filter; + INTERP_FILTER filter_ref; const int bsl = mi_width_log2_lookup[bsize]; const int pred_filter_search = cm->interp_filter == SWITCHABLE ? (((mi_row + mi_col) >> bsl) + @@ -536,6 +536,13 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, x->skip_encode = cpi->sf.skip_encode_frame && x->q_index < QIDX_SKIP_THRESH; x->skip = 0; + if (xd->up_available) + filter_ref = xd->mi[-xd->mi_stride].src_mi->mbmi.interp_filter; + else if (xd->left_available) + filter_ref = xd->mi[-1].src_mi->mbmi.interp_filter; + else + filter_ref = cm->interp_filter; + // initialize mode decisions vp9_rd_cost_reset(&best_rdc); vp9_rd_cost_reset(&this_rdc); @@ -556,11 +563,6 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, frame_mv[NEWMV][ref_frame].as_int = INVALID_MV; frame_mv[ZEROMV][ref_frame].as_int = 0; - if (xd->up_available) - filter_ref = xd->mi[-xd->mi_stride].src_mi->mbmi.interp_filter; - else if (xd->left_available) - filter_ref = xd->mi[-1].src_mi->mbmi.interp_filter; - if (cpi->ref_frame_flags & flag_list[ref_frame]) { const YV12_BUFFER_CONFIG *yv12 = get_ref_frame_buffer(cpi, ref_frame); int_mv *const candidates = mbmi->ref_mvs[ref_frame];