ref: 962fc2e1e79eb0289dcf798e946a5b0fe8f206dc
parent: 862c22cf7ddd6deb570593936bf466474c62df5a
author: Alex Converse <aconverse@google.com>
date: Mon Dec 2 07:54:21 EST 2013
Disable partitioning in the dominant subsampling direction. E.g. disable vertical partioning for 4:2:2. Until we come up with something better to do with the chroma block size, this prevents an assert error. Change-Id: I9394fb3f14ec1343abc3ad4769de208e6278f285
--- 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;
--
⑨