Make level map coding system support rectangular tx_size
This commit makes the level map coding system support the transform
coefficients from rectangular transform block sizes.
Change-Id: I5cd6c71d12e41938f942adc98cc1e1f286336f12
diff --git a/av1/decoder/decodetxb.c b/av1/decoder/decodetxb.c
index 74693b5..98e4db1 100644
--- a/av1/decoder/decodetxb.c
+++ b/av1/decoder/decodetxb.c
@@ -58,6 +58,7 @@
const int16_t *const dequant = xd->plane[plane].seg_dequant[mbmi->segment_id];
const int shift = av1_get_tx_scale(tx_size);
const int bwl = b_width_log2_lookup[txsize_to_bsize[tx_size]] + 2;
+ const int height = tx_size_high[tx_size];
int cul_level = 0;
unsigned int(*nz_map_count)[SIG_COEF_CONTEXTS][2];
uint8_t txb_mask[32 * 32] = { 0 };
@@ -87,7 +88,7 @@
for (c = 0; c < seg_eob; ++c) {
int is_nz;
- int coeff_ctx = get_nz_map_ctx(tcoeffs, txb_mask, scan[c], bwl);
+ int coeff_ctx = get_nz_map_ctx(tcoeffs, txb_mask, scan[c], bwl, height);
int eob_ctx = get_eob_ctx(tcoeffs, scan[c], txs_ctx);
if (c < seg_eob - 1)
@@ -128,7 +129,7 @@
if (*v <= i) continue;
- ctx = get_base_ctx(tcoeffs, scan[c], bwl, i + 1);
+ ctx = get_base_ctx(tcoeffs, scan[c], bwl, height, i + 1);
if (aom_read(r, coeff_base[ctx], tx_size)) {
*v = i + 1;
@@ -170,7 +171,7 @@
sign = aom_read_bit(r, ACCT_STR);
}
- ctx = get_br_ctx(tcoeffs, scan[c], bwl);
+ ctx = get_br_ctx(tcoeffs, scan[c], bwl, height);
if (cm->fc->coeff_lps[txs_ctx][plane_type][ctx] == 0) exit(0);