ref: c50256c1574fc7754f6bb7147bd42388d8d0092e
parent: fe96932c697cb660e7cc2f5b5a7cff83bc6abc20
parent: 252822e81c1d6f7edb359f4358fe9cec2fbb14a8
author: Jingning Han <[email protected]>
date: Mon Sep 15 17:26:11 EDT 2014
Merge "Remove redundant reference frame check in sub8x8 RD search"
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -3386,8 +3386,8 @@
}
}
- if (ref_frame_skip_mask[0] & (1 << ref_index) &&
- ref_frame_skip_mask[1] & (1 << ref_index))
+ if (ref_frame_skip_mask[0] & (1 << ref_frame) &&
+ ref_frame_skip_mask[1] & (1 << MAX(0, second_ref_frame)))
continue;
// Test best rd so far against threshold for trying this mode.
@@ -3396,16 +3396,10 @@
rd_opt->thresh_freq_fact[bsize][ref_index]))
continue;
- if (ref_frame > INTRA_FRAME &&
- !(cpi->ref_frame_flags & flag_list[ref_frame])) {
- continue;
- }
-
comp_pred = second_ref_frame > INTRA_FRAME;
if (comp_pred) {
if (!cm->allow_comp_inter_inter)
continue;
-
if (!(cpi->ref_frame_flags & flag_list[second_ref_frame]))
continue;
// Do not allow compound prediction if the segment level reference frame
@@ -3412,6 +3406,7 @@
// feature is in use as in this case there can only be one reference.
if (vp9_segfeature_active(seg, segment_id, SEG_LVL_REF_FRAME))
continue;
+
if ((cpi->sf.mode_search_skip_flags & FLAG_SKIP_COMP_BESTINTRA) &&
best_mbmode.ref_frame[0] == INTRA_FRAME)
continue;