shithub: libvpx

Download patch

ref: 33593d1f0331b1cffe94496c2df7628bccd8e5e8
parent: d96228a07cc7002ba437b9598c5efdd73cae5b1e
author: Jingning Han <jingning@google.com>
date: Tue Sep 9 08:30:47 EDT 2014

Remove dependency of intra mode search skip check on mode order

This commit refactors the vp9_rd_pick_inter_mode_sb function to
remove the intra mode early termination dependency on the mode
search order.

Change-Id: If6ac49aa7c530c7b9a5bd31b0ab84db83e192bec

--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -2674,14 +2674,6 @@
     }
   }
 
-  if (bsize > cpi->sf.max_intra_bsize) {
-    const int all_intra_modes = (1 << THR_DC) | (1 << THR_TM) |
-        (1 << THR_H_PRED) | (1 << THR_V_PRED) | (1 << THR_D135_PRED) |
-        (1 << THR_D207_PRED) | (1 << THR_D153_PRED) | (1 << THR_D63_PRED) |
-        (1 << THR_D117_PRED) | (1 << THR_D45_PRED);
-    mode_skip_mask |= all_intra_modes;
-  }
-
   for (mode_index = 0; mode_index < MAX_MODES; ++mode_index) {
     int mode_excluded = 0;
     int64_t this_rd = INT64_MAX;
@@ -2729,6 +2721,10 @@
       if (!(ref_frame == ALTREF_FRAME && second_ref_frame == NONE))
         continue;
     }
+
+    if (bsize > cpi->sf.max_intra_bsize)
+      if (ref_frame == INTRA_FRAME)
+        continue;
 
     if (mode_skip_mask & (1 << mode_index))
       continue;