From: Jingning Han Date: Thu, 30 Oct 2014 02:30:12 +0000 (-0700) Subject: Fix mode index use case in vp9_pick_inter_mode X-Git-Tag: v1.4.0~546^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=64348d9f8d82050f799058c3f2fc75a7a1599c5b;p=libvpx Fix mode index use case in vp9_pick_inter_mode This improves coding performance of speed -5 and -6 by 0.6%, respectively. Change-Id: Ic5a7746a88c73285f0b14333d35dc16b02152c25 --- diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index 9b7663fde..4309b41cf 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -604,6 +604,7 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, for (this_mode = NEARESTMV; this_mode <= NEWMV; ++this_mode) { int rate_mv = 0; int mode_rd_thresh; + int mode_index = mode_idx[ref_frame][INTER_OFFSET(this_mode)]; if (const_motion[ref_frame] && this_mode == NEARMV) continue; @@ -611,10 +612,9 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, if (!(cpi->sf.inter_mode_mask[bsize] & (1 << this_mode))) continue; - mode_rd_thresh = - rd_threshes[mode_idx[ref_frame][INTER_OFFSET(this_mode)]]; + mode_rd_thresh = rd_threshes[mode_index]; if (rd_less_than_thresh(best_rdc.rdcost, mode_rd_thresh, - rd_thresh_freq_fact[this_mode])) + rd_thresh_freq_fact[mode_index])) continue; if (this_mode == NEWMV) { @@ -837,12 +837,12 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, if (is_inter_block(mbmi)) vp9_update_rd_thresh_fact(tile_data->thresh_freq_fact, - cpi->sf.adaptive_rd_thresh, bsize, - mode_idx[ref_frame][INTER_OFFSET(mbmi->mode)]); + cpi->sf.adaptive_rd_thresh, bsize, + mode_idx[best_ref_frame][INTER_OFFSET(mbmi->mode)]); else vp9_update_rd_thresh_fact(tile_data->thresh_freq_fact, cpi->sf.adaptive_rd_thresh, bsize, - mode_idx[ref_frame][mbmi->mode]); + mode_idx[INTRA_FRAME][mbmi->mode]); *rd_cost = best_rdc; }