Separate rd_thresh adaption by ref_frame

Only update the rd_thresh factors for modes sharing same reference
frame. This helps overall compression of 6 and 7 by .13% and .19%
respectively without any noticeable speed difference.

Change-Id: Idb3a3879512c5d7d0880034516079949290690c5
This commit is contained in:
Yaowu Xu
2015-03-10 19:06:52 -07:00
parent 3e637a70da
commit d549aa3b17

View File

@@ -1052,6 +1052,7 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
mode_idx[INTRA_FRAME][mbmi->mode]; mode_idx[INTRA_FRAME][mbmi->mode];
PREDICTION_MODE this_mode; PREDICTION_MODE this_mode;
for (ref_frame = LAST_FRAME; ref_frame <= GOLDEN_FRAME; ++ref_frame) { for (ref_frame = LAST_FRAME; ref_frame <= GOLDEN_FRAME; ++ref_frame) {
if (best_ref_frame != ref_frame) continue;
for (this_mode = NEARESTMV; this_mode <= NEWMV; ++this_mode) { for (this_mode = NEARESTMV; this_mode <= NEWMV; ++this_mode) {
THR_MODES thr_mode_idx = mode_idx[ref_frame][INTER_OFFSET(this_mode)]; THR_MODES thr_mode_idx = mode_idx[ref_frame][INTER_OFFSET(this_mode)];
int *freq_fact = &tile_data->thresh_freq_fact[bsize][thr_mode_idx]; int *freq_fact = &tile_data->thresh_freq_fact[bsize][thr_mode_idx];