diff options
author | Jingning Han <jingning@google.com> | 2014-09-11 10:34:37 -0700 |
---|---|---|
committer | Jingning Han <jingning@google.com> | 2014-09-11 10:36:48 -0700 |
commit | bdd8eb6fcc696ae6e8b84da6aa02897584e62e4e (patch) | |
tree | aa6059b9b6fe01660e5ee50a208eb34d34403d65 /vp9 | |
parent | 8cefed156818acc47510a4f1527d0f33e3eece77 (diff) | |
download | libvpx-bdd8eb6fcc696ae6e8b84da6aa02897584e62e4e.tar libvpx-bdd8eb6fcc696ae6e8b84da6aa02897584e62e4e.tar.gz libvpx-bdd8eb6fcc696ae6e8b84da6aa02897584e62e4e.tar.bz2 libvpx-bdd8eb6fcc696ae6e8b84da6aa02897584e62e4e.zip |
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
Diffstat (limited to 'vp9')
-rw-r--r-- | vp9/encoder/vp9_rdopt.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index 0804cb547..939351d2d 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -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 |