shithub: libvpx

Download patch

ref: 7f77a1c3c96ec582fa6b8682320d60fb389be94b
parent: 10783d4f3a6188a01f9a993c56ab0013acd97214
parent: bdd8eb6fcc696ae6e8b84da6aa02897584e62e4e
author: Jingning Han <[email protected]>
date: Fri Sep 12 05:06:35 EDT 2014

Merge "Unify intra mode mask into mode_skip_mask scheme"

--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -2592,8 +2592,6 @@
   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 @@
     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 @@
         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