From: Geza Lore Date: Fri, 17 Jun 2016 10:28:02 +0000 (+0100) Subject: Make variance based partitioning compatible with SEG_LVL_SKIP X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=169431b84a86d92011d06bab83304f64f6a4a7bb;p=libvpx Make variance based partitioning compatible with SEG_LVL_SKIP Inter blocks that have SEG_LVL_SKIP active must be at least 8x8 in size for bitstream conformance (see read_inter_block_mode_info in decodemv.c). This patch makes the variance based partitioning scheme stop at 8x8 blocks in inter frames. This satisfies the SEG_LVL_SKIP constraint and is more in line with the original implementation of this function (before it got extended for 128x128 superblocks). BUG=webm:1234 Change-Id: I1fdd894569a9c0817713a77daabe4c8b8e1d00c0 --- diff --git a/vp10/encoder/encodeframe.c b/vp10/encoder/encodeframe.c index 014a87479..01de35dfd 100644 --- a/vp10/encoder/encodeframe.c +++ b/vp10/encoder/encodeframe.c @@ -468,6 +468,11 @@ static void set_vt_partitioning(VP10_COMP *cpi, assert(hbh == hbw); + if (vt->bsize == BLOCK_8X8 && cm->frame_type != KEY_FRAME) { + set_block_size(cpi, x, xd, mi_row, mi_col, BLOCK_8X8); + return; + } + if (vt->force_split || (!has_cols && !has_rows)) goto split;