Add macro to remove 1D transforms from TX_16X16
This produces a 0.03% drop in performance but reduces
the tx search space.
Change-Id: I27ae62403f059c4654e9237c39f15bed7f860c15
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 34e3f53..e25fb23 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -761,7 +761,7 @@
// Number of transform types in each set type
static const int av1_num_ext_tx_set[EXT_TX_SET_TYPES] = {
- 1, 2, 5, 7, 12, 16,
+ 1, 2, 5, 7, 10, 12, 16,
};
static const int av1_ext_tx_set_idx_to_type[2][AOMMAX(EXT_TX_SETS_INTRA,
@@ -772,7 +772,12 @@
},
{
// Inter
- EXT_TX_SET_DCTONLY, EXT_TX_SET_ALL16, EXT_TX_SET_DTT9_IDTX_1DDCT,
+ EXT_TX_SET_DCTONLY, EXT_TX_SET_ALL16,
+#if USE_1D_16X16
+ EXT_TX_SET_DTT9_IDTX_1DDCT,
+#else
+ EXT_TX_SET_DTT9_IDTX,
+#endif // USE_1D_16X16
EXT_TX_SET_DCT_IDTX,
}
};
@@ -791,6 +796,9 @@
1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0,
},
{
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+ },
+ {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
},
{
@@ -823,8 +831,12 @@
if (tx_size_sqr_up == TX_32X32)
return is_inter ? EXT_TX_SET_DCT_IDTX : EXT_TX_SET_DCTONLY;
if (is_inter)
+#if USE_1D_16X16
return (tx_size_sqr == TX_16X16 ? EXT_TX_SET_DTT9_IDTX_1DDCT
: EXT_TX_SET_ALL16);
+#else
+ return (tx_size_sqr == TX_16X16 ? EXT_TX_SET_DTT9_IDTX : EXT_TX_SET_ALL16);
+#endif // USE_1D_16X16
else
return (tx_size_sqr == TX_16X16 ? EXT_TX_SET_DTT4_IDTX
: EXT_TX_SET_DTT4_IDTX_1DDCT);
@@ -834,11 +846,17 @@
static const int ext_tx_set_index[2][EXT_TX_SET_TYPES] = {
{
// Intra
- 0, -1, 2, 1, -1, -1,
+ 0, -1, 2, 1, -1, -1, -1,
},
{
// Inter
- 0, 3, -1, -1, 2, 1,
+ 0, 3, -1, -1,
+#if USE_1D_16X16
+ -1, 2,
+#else
+ 2, -1,
+#endif // USE_1D_16X16
+ 1,
},
};