Commit e7b89d88 authored by Geza Lore's avatar Geza Lore
Browse files

Fix uninitialized blk_skip for VAR TX.

x->blk_skip used to be uninitialzied (leftover from encoding the
previous block), if cm->tx_mode != TX_MODE_SELECT (which is used with
higher --cpu-used or --rt options). This resulted in degraded coding
performance when uning cm->tx_mode != TX_MODE_SELECT.

This fixes the VP10/EndToEndTestLarge.EndtoEndPSNRTest/40 unit test.

Change-Id: If39062927446798c626fc93694b4e6a4f35fa5da
parent 3cf1a082
......@@ -3339,6 +3339,15 @@ static void rd_pick_partition(VP10_COMP *cpi, ThreadData *td,
bsize >= BLOCK_8X8;
(void) *tp_orig;
#if CONFIG_VAR_TX
#ifndef NDEBUG
// Nothing should rely on the default value of this array (which is just
// leftover from encoding the previous block. Setting it to magic number
// when debugging.
memset(x->blk_skip[0], 234, sizeof(x->blk_skip[0]));
#endif // NDEBUG
#endif // CONFIG_VAR_TX
assert(num_8x8_blocks_wide_lookup[bsize] ==
num_8x8_blocks_high_lookup[bsize]);
......@@ -4433,7 +4442,6 @@ static void encode_frame_internal(VP10_COMP *cpi) {
x->quant_fp = cpi->sf.use_quant_fp;
vp10_zero(x->skip_txfm);
#if CONFIG_VAR_TX
vp10_zero(x->blk_skip);
#if CONFIG_REF_MV
vp10_zero(x->blk_skip_drl);
#endif
......
......@@ -435,6 +435,9 @@ static void encode_block(int plane, int block, int blk_row, int blk_col,
// return;
// }
// Assert not magic number (uninitialised).
assert(x->blk_skip[plane][(blk_row << bwl) + blk_col] != 234);
#if CONFIG_VAR_TX
if (!x->skip_recode &&
x->blk_skip[plane][(blk_row << bwl) + blk_col] == 0) {
......
......@@ -7166,6 +7166,7 @@ static int64_t handle_inter_mode(VP10_COMP *cpi, MACROBLOCK *x,
for (idy = 0; idy < xd->n8_h; ++idy)
for (idx = 0; idx < xd->n8_w; ++idx)
mbmi->inter_tx_size[idy][idx] = mbmi->tx_size;
memset(x->blk_skip[0], skippable_y, (xd->n8_h * xd->n8_w) * 4);
}
#else
super_block_yrd(cpi, x, rate_y, &distortion_y, &skippable_y, psse,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment