Merge "Fix uninitialized blk_skip for VAR TX." into nextgenv2

This commit is contained in:
Debargha Mukherjee
2016-04-21 19:56:17 +00:00
committed by Gerrit Code Review
3 changed files with 19 additions and 5 deletions

View File

@@ -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]);
@@ -4437,7 +4446,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

View File

@@ -432,6 +432,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) {

View File

@@ -2946,8 +2946,9 @@ static void select_tx_block(const VP10_COMP *cpi, MACROBLOCK *x,
const int tx_col = blk_col >> (1 - pd->subsampling_x);
TX_SIZE (*const inter_tx_size)[MAX_MIB_SIZE] =
(TX_SIZE (*)[MAX_MIB_SIZE])&mbmi->inter_tx_size[tx_row][tx_col];
const int bw = num_4x4_blocks_wide_lookup[plane_bsize];
int max_blocks_high = num_4x4_blocks_high_lookup[plane_bsize];
int max_blocks_wide = num_4x4_blocks_wide_lookup[plane_bsize];
int max_blocks_wide = bw;
int64_t this_rd = INT64_MAX;
ENTROPY_CONTEXT *pta = ta + blk_col;
ENTROPY_CONTEXT *ptl = tl + blk_row;
@@ -3018,10 +3019,10 @@ static void select_tx_block(const VP10_COMP *cpi, MACROBLOCK *x,
*rate = zero_blk_rate;
*dist = *bsse;
*skip = 1;
x->blk_skip[plane][blk_row * max_blocks_wide + blk_col] = 1;
x->blk_skip[plane][blk_row * bw + blk_col] = 1;
p->eobs[block] = 0;
} else {
x->blk_skip[plane][blk_row * max_blocks_wide + blk_col] = 0;
x->blk_skip[plane][blk_row * bw + blk_col] = 0;
*skip = 0;
}
@@ -3078,7 +3079,7 @@ static void select_tx_block(const VP10_COMP *cpi, MACROBLOCK *x,
mbmi->tx_size = tx_size;
if (this_rd == INT64_MAX)
*is_cost_valid = 0;
x->blk_skip[plane][blk_row * max_blocks_wide + blk_col] = *skip;
x->blk_skip[plane][blk_row * bw + blk_col] = *skip;
} else {
*rate = sum_rate;
*dist = sum_dist;
@@ -7189,6 +7190,8 @@ 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,
sizeof(uint8_t) * xd->n8_h * xd->n8_w * 4);
}
#else
super_block_yrd(cpi, x, rate_y, &distortion_y, &skippable_y, psse,