summaryrefslogtreecommitdiff
path: root/vp10/decoder/detokenize.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp10/decoder/detokenize.c')
-rw-r--r--vp10/decoder/detokenize.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/vp10/decoder/detokenize.c b/vp10/decoder/detokenize.c
index 2902ece7c..d39e3dc06 100644
--- a/vp10/decoder/detokenize.c
+++ b/vp10/decoder/detokenize.c
@@ -163,26 +163,33 @@ static int decode_coefs(const MACROBLOCKD *xd,
case CATEGORY5_TOKEN:
val = CAT5_MIN_VAL + read_coeff(cat5_prob, 5, r);
break;
- case CATEGORY6_TOKEN:
+ case CATEGORY6_TOKEN: {
+#if CONFIG_MISC_FIXES
+ const int skip_bits = TX_SIZES - 1 - tx_size;
+#else
+ const int skip_bits = 0;
+#endif
+ const uint8_t *cat6p = cat6_prob + skip_bits;
#if CONFIG_VP9_HIGHBITDEPTH
switch (xd->bd) {
case VPX_BITS_8:
- val = CAT6_MIN_VAL + read_coeff(cat6_prob, 14, r);
+ val = CAT6_MIN_VAL + read_coeff(cat6p, 14 - skip_bits, r);
break;
case VPX_BITS_10:
- val = CAT6_MIN_VAL + read_coeff(cat6_prob, 16, r);
+ val = CAT6_MIN_VAL + read_coeff(cat6p, 16 - skip_bits, r);
break;
case VPX_BITS_12:
- val = CAT6_MIN_VAL + read_coeff(cat6_prob, 18, r);
+ val = CAT6_MIN_VAL + read_coeff(cat6p, 18 - skip_bits, r);
break;
default:
assert(0);
return -1;
}
#else
- val = CAT6_MIN_VAL + read_coeff(cat6_prob, 14, r);
+ val = CAT6_MIN_VAL + read_coeff(cat6p, 14 - skip_bits, r);
#endif
break;
+ }
}
}
v = (val * dqv) >> dq_shift;