Support rectangular tx size in cb4x4 mode
This commit makes ext-tx and rect-tx experiments supported in the
cb4x4 mode. It resolves an enc/dec mismatch issue when all the
transform experiments are enabled.
The coding gains are
ext-tx + rect-tx cb4x4 vartx total
lowres 4.0% 2.3% 0.5% 6.9%
The encoding speed is about the same when cb4x4 and vartx are
further enabled.
BUG=aomedia:139
Change-Id: I3fdabc6d5de23ceb78ac0751a9bf7332ebc0a3ac
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 25c7eac..85fd4ca 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -419,8 +419,8 @@
const TX_MODE tx_mode = cm->tx_mode;
const BLOCK_SIZE bsize = xd->mi[0]->mbmi.sb_type;
if (xd->lossless[xd->mi[0]->mbmi.segment_id]) return TX_4X4;
-#if CONFIG_CB4X4 && CONFIG_VAR_TX
- if ((bsize > BLOCK_4X4 && is_inter) || bsize >= BLOCK_8X8) {
+#if CONFIG_CB4X4 && (CONFIG_VAR_TX || CONFIG_RECT_TX)
+ if (bsize > BLOCK_4X4) {
#else
if (bsize >= BLOCK_8X8) {
#endif // CONFIG_CB4X4 && CONFIG_VAR_TX
@@ -1991,8 +1991,7 @@
if (cm->tx_mode == TX_MODE_SELECT &&
#if CONFIG_CB4X4
- (bsize >= BLOCK_8X8 ||
- (bsize >= BLOCK_4X4 && inter_block && !mbmi->skip)) &&
+ bsize > BLOCK_4X4 &&
#else
bsize >= BLOCK_8X8 &&
#endif