shithub: libvpx

Download patch

ref: 5cf74bf10cd26c4568c9cfbdd5902dca78d3d200
parent: 37e68aba55d48fd950e153086ade1d91a3797367
parent: 962fc2e1e79eb0289dcf798e946a5b0fe8f206dc
author: Alex Converse <aconverse@google.com>
date: Mon Dec 2 10:08:22 EST 2013

Merge "Disable partitioning in the dominant subsampling direction."

--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -1567,10 +1567,14 @@
   // Override skipping rectangular partition operations for edge blocks
   const int force_horz_split = (mi_row + ms >= cm->mi_rows);
   const int force_vert_split = (mi_col + ms >= cm->mi_cols);
+  const int xss = x->e_mbd.plane[1].subsampling_x;
+  const int yss = x->e_mbd.plane[1].subsampling_y;
 
   int partition_none_allowed = !force_horz_split && !force_vert_split;
-  int partition_horz_allowed = !force_vert_split && bsize >= BLOCK_8X8;
-  int partition_vert_allowed = !force_horz_split && bsize >= BLOCK_8X8;
+  int partition_horz_allowed = !force_vert_split && yss <= xss &&
+                               bsize >= BLOCK_8X8;
+  int partition_vert_allowed = !force_horz_split && xss <= yss &&
+                               bsize >= BLOCK_8X8;
 
   int partition_split_done = 0;
   (void) *tp_orig;
--