Replace tx_size_1d with tx_size_wide/high
This prepares the support to both rectangular and 2x2 transform
block sizes.
Change-Id: I3c2d4e317f6b627bb45d2273c278331bd976ee92
diff --git a/av1/common/common_data.h b/av1/common/common_data.h
index f068ee7..62e9937 100644
--- a/av1/common/common_data.h
+++ b/av1/common/common_data.h
@@ -442,7 +442,37 @@
#endif // CONFIG_EXT_TX
};
-static const int tx_size_1d[TX_SIZES] = { 4, 8, 16, 32 };
+// Transform block width in pixels
+static const int tx_size_wide[TX_SIZES_ALL] = {
+ 4, 8, 16, 32,
+#if CONFIG_EXT_TX
+ 4, 8, 8, 16, 16, 32,
+#endif
+};
+
+// Transform block height in pixels
+static const int tx_size_high[TX_SIZES_ALL] = {
+ 4, 8, 16, 32,
+#if CONFIG_EXT_TX
+ 8, 4, 16, 8, 32, 16,
+#endif
+};
+
+// Transform block width in unit
+static const int tx_size_wide_unit[TX_SIZES_ALL] = {
+ 1, 2, 4, 8,
+#if CONFIG_EXT_TX
+ 1, 2, 2, 4, 4, 8,
+#endif
+};
+
+// Transform block height in unit
+static const int tx_size_high_unit[TX_SIZES_ALL] = {
+ 1, 2, 4, 8,
+#if CONFIG_EXT_TX
+ 2, 1, 4, 2, 8, 4,
+#endif
+};
static const int tx_size_2d[TX_SIZES_ALL] = {
16, 64, 256, 1024,
@@ -453,8 +483,6 @@
static const uint8_t tx_size_1d_log2[TX_SIZES] = { 2, 3, 4, 5 };
-static const int tx_size_1d_in_unit[TX_SIZES] = { 1, 2, 4, 8 };
-
// TODO(jingning): Temporary table during the construction.
static const int tx_size_1d_in_unit_log2[TX_SIZES] = { 0, 1, 2, 3 };
diff --git a/av1/common/scan.c b/av1/common/scan.c
index 945c65e..1281843 100644
--- a/av1/common/scan.c
+++ b/av1/common/scan.c
@@ -4305,7 +4305,7 @@
void av1_update_neighbors(int tx_size, const int16_t *scan,
const int16_t *iscan, int16_t *neighbors) {
- const int tx1d_size = tx_size_1d[tx_size];
+ const int tx1d_size = tx_size_wide[tx_size];
const int tx2d_size = tx_size_2d[tx_size];
int scan_idx;
for (scan_idx = 0; scan_idx < tx2d_size; ++scan_idx) {
@@ -4336,7 +4336,7 @@
void av1_update_sort_order(TX_SIZE tx_size, const uint32_t *non_zero_prob,
int16_t *sort_order) {
uint32_t temp[COEFF_IDX_SIZE];
- const int tx1d_size = tx_size_1d[tx_size];
+ const int tx1d_size = tx_size_wide[tx_size];
const int tx2d_size = tx_size_2d[tx_size];
int sort_idx;
assert(tx2d_size <= COEFF_IDX_SIZE);
@@ -4354,7 +4354,7 @@
int coeff_idx;
int scan_idx;
int sort_idx;
- const int tx1d_size = tx_size_1d[tx_size];
+ const int tx1d_size = tx_size_wide[tx_size];
const int tx2d_size = tx_size_2d[tx_size];
for (coeff_idx = 0; coeff_idx < tx2d_size; ++coeff_idx) {