intrabc: Allow ext_tx transforms
objective-1-fast results:
sequence PSNR PSNR HVS SSIM CIEDE APSNR MS SSIM VMAF
average -0.02 0.01 -0.02 -0.03 -0.02 0.00 0.06
1080p 0.02 0.01 0.03 0.00 0.01 0.02 0.09
1080p-screen -0.32 -0.28 -0.32 -0.44 -0.31 -0.27 0.00
360p 0.06 0.14 0.10 0.10 0.08 0.11 0.22
720p 0.00 0.04 -0.05 0.01 0.00 -0.01 -0.10
wikipedia_420 -1.04 -0.95 -1.05 -1.30 -1.03 -0.88 -0.29
Change-Id: I30ce8a869daf1c3ed539ffed552786cbb785e7d0
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 78557eb..adf6e60 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -983,10 +983,10 @@
int block, TX_SIZE tx_size) {
const MODE_INFO *const mi = xd->mi[0];
const MB_MODE_INFO *const mbmi = &mi->mbmi;
-#if CONFIG_INTRABC
- // TODO(aconverse@google.com): Revisit this decision
+#if CONFIG_INTRABC && (!CONFIG_EXT_TX || CONFIG_TXK_SEL)
+ // TODO(aconverse@google.com): Handle INTRABC + EXT_TX + TXK_SEL
if (is_intrabc_block(mbmi)) return DCT_DCT;
-#endif // CONFIG_INTRABC
+#endif // CONFIG_INTRABC && (!CONFIG_EXT_TX || CONFIG_TXK_SEL)
#if !CONFIG_TXK_SEL
#if FIXED_TX_TYPE
const int block_raster_idx = av1_block_index_to_raster_order(tx_size, block);
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index b40cad0..a7bd816 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1049,6 +1049,13 @@
av1_find_ref_dv(&dv_ref, mi_row, mi_col);
xd->corrupted |=
!assign_dv(cm, xd, &mbmi->mv[0], &dv_ref, mi_row, mi_col, bsize, r);
+#if CONFIG_EXT_TX && !CONFIG_TXK_SEL
+ av1_read_tx_type(cm, xd,
+#if CONFIG_SUPERTX
+ 0,
+#endif
+ r);
+#endif // CONFIG_EXT_TX && !CONFIG_TXK_SEL
return;
}
}
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 03eb909..1066e07 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -2164,6 +2164,13 @@
int_mv dv_ref;
av1_find_ref_dv(&dv_ref, mi_row, mi_col);
av1_encode_dv(w, &mbmi->mv[0].as_mv, &dv_ref.as_mv, &ec_ctx->ndvc);
+#if CONFIG_EXT_TX && !CONFIG_TXK_SEL
+ av1_write_tx_type(cm, xd,
+#if CONFIG_SUPERTX
+ 0,
+#endif
+ w);
+#endif // CONFIG_EXT_TX && !CONFIG_TXK_SEL
return;
}
}