Unify intra mode mask into mode_skip_mask scheme
Integrate intra mode mask speed feature with the mode_skip_mask scheme. Move it outside the mode search loop in the vp9_rd_pick_inter_mode_sb function. Change-Id: I7738fea749bfdc08ad05d7f2524feb8ff67568d9
This commit is contained in:
parent
8cefed1568
commit
bdd8eb6fcc
@ -2592,8 +2592,6 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
const int *const rd_threshes = rd_opt->threshes[segment_id][bsize];
|
||||
const int *const rd_thresh_freq_fact = rd_opt->thresh_freq_fact[bsize];
|
||||
const int mode_search_skip_flags = cpi->sf.mode_search_skip_flags;
|
||||
const int intra_y_mode_mask =
|
||||
cpi->sf.intra_y_mode_mask[max_txsize_lookup[bsize]];
|
||||
vp9_zero(best_mbmode);
|
||||
x->skip_encode = cpi->sf.skip_encode_frame && x->q_index < QIDX_SKIP_THRESH;
|
||||
|
||||
@ -2686,6 +2684,9 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
ref_frame_skip_mask[1] |= (1 << INTRA_FRAME);
|
||||
}
|
||||
|
||||
mode_skip_mask[INTRA_FRAME] |=
|
||||
~(cpi->sf.intra_y_mode_mask[max_txsize_lookup[bsize]]);
|
||||
|
||||
for (mode_index = 0; mode_index < MAX_MODES; ++mode_index) {
|
||||
int mode_excluded = 0;
|
||||
int64_t this_rd = INT64_MAX;
|
||||
@ -2813,8 +2814,6 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
if ((x->source_variance << num_pels_log2_lookup[bsize]) > best_pred_sse)
|
||||
continue;
|
||||
|
||||
if (!(intra_y_mode_mask & (1 << this_mode)))
|
||||
continue;
|
||||
if (this_mode != DC_PRED) {
|
||||
// Disable intra modes other than DC_PRED for blocks with low variance
|
||||
// Threshold for intra skipping based on source variance
|
||||
|
Loading…
Reference in New Issue
Block a user