ref: 7f2993f5e439cdfe76b5708058b4569b4e7d47d1
parent: ab27b68693acd40d784146b3580fc4cd8ed9e5d5
parent: 7a178a56318e502b3d47c240fa1d53988af612a1
author: Johann Koenig <johannkoenig@google.com>
date: Tue Aug 22 16:03:02 EDT 2017
Merge "quantize: capture skip block early"
--- a/vp9/encoder/vp9_quantize.c
+++ b/vp9/encoder/vp9_quantize.c
@@ -164,22 +164,28 @@
MACROBLOCKD *const xd = &x->e_mbd;
struct macroblock_plane *p = &x->plane[plane];
struct macroblockd_plane *pd = &xd->plane[plane];
+ tran_low_t *qcoeff = BLOCK_OFFSET(p->qcoeff, block),
+ *dqcoeff = BLOCK_OFFSET(pd->dqcoeff, block);
+ const int n_coeffs = 4 * 4;
+ if (x->skip_block) {
+ memset(qcoeff, 0, n_coeffs * sizeof(*qcoeff));
+ memset(dqcoeff, 0, n_coeffs * sizeof(*dqcoeff));
+ return;
+ }
+
#if CONFIG_VP9_HIGHBITDEPTH
if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {
- vpx_highbd_quantize_b(BLOCK_OFFSET(p->coeff, block), 16, x->skip_block,
- p->zbin, p->round, p->quant, p->quant_shift,
- BLOCK_OFFSET(p->qcoeff, block),
- BLOCK_OFFSET(pd->dqcoeff, block), pd->dequant,
+ vpx_highbd_quantize_b(BLOCK_OFFSET(p->coeff, block), n_coeffs,
+ x->skip_block, p->zbin, p->round, p->quant,
+ p->quant_shift, qcoeff, dqcoeff, pd->dequant,
&p->eobs[block], scan, iscan);
return;
}
#endif
- vpx_quantize_b(BLOCK_OFFSET(p->coeff, block), 16, x->skip_block, p->zbin,
- p->round, p->quant, p->quant_shift,
- BLOCK_OFFSET(p->qcoeff, block),
- BLOCK_OFFSET(pd->dqcoeff, block), pd->dequant, &p->eobs[block],
- scan, iscan);
+ vpx_quantize_b(BLOCK_OFFSET(p->coeff, block), n_coeffs, x->skip_block,
+ p->zbin, p->round, p->quant, p->quant_shift, qcoeff, dqcoeff,
+ pd->dequant, &p->eobs[block], scan, iscan);
}
static void invert_quant(int16_t *quant, int16_t *shift, int d) {