Refactor to use block_size_wide/high[] consistently Replace the computation of block size in pixels with lookup table directly. Change-Id: I39589b2bc1d20372969ff5ad0f60639e64a19b41
diff --git a/av1/common/common_data.h b/av1/common/common_data.h index 1e6b619..c51df89 100644 --- a/av1/common/common_data.h +++ b/av1/common/common_data.h
@@ -45,9 +45,11 @@ static const uint8_t block_size_wide[BLOCK_SIZES] = { 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, IF_EXT_PARTITION(64, 128, 128) }; + static const uint8_t block_size_high[BLOCK_SIZES] = { 4, 8, 4, 8, 16, 8, 16, 32, 16, 32, 64, 32, 64, IF_EXT_PARTITION(128, 64, 128) }; + static const uint8_t num_4x4_blocks_wide_lookup[BLOCK_SIZES] = { 1, 1, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16, IF_EXT_PARTITION(16, 32, 32) };
diff --git a/av1/common/mvref_common.c b/av1/common/mvref_common.c index d47ce10..36e916f 100644 --- a/av1/common/mvref_common.c +++ b/av1/common/mvref_common.c
@@ -914,8 +914,8 @@ mi_step = AOMMIN(xd->n8_w, num_8x8_blocks_wide_lookup[mbmi->sb_type]); if (mbmi->ref_frame[0] == ref_frame && mbmi->ref_frame[1] == NONE) { - int bw = num_4x4_blocks_wide_lookup[mbmi->sb_type] * 4; - int bh = num_4x4_blocks_high_lookup[mbmi->sb_type] * 4; + int bw = block_size_wide[mbmi->sb_type]; + int bh = block_size_high[mbmi->sb_type]; int mv_row = mbmi->mv[0].as_mv.row; int mv_col = mbmi->mv[0].as_mv.col; int cr_offset = -AOMMAX(bh, 8) / 2 - 1; @@ -969,8 +969,8 @@ mi_step = AOMMIN(xd->n8_h, num_8x8_blocks_high_lookup[mbmi->sb_type]); if (mbmi->ref_frame[0] == ref_frame && mbmi->ref_frame[1] == NONE) { - int bw = num_4x4_blocks_wide_lookup[mbmi->sb_type] * 4; - int bh = num_4x4_blocks_high_lookup[mbmi->sb_type] * 4; + int bw = block_size_wide[mbmi->sb_type]; + int bh = block_size_high[mbmi->sb_type]; int mv_row = mbmi->mv[0].as_mv.row; int mv_col = mbmi->mv[0].as_mv.col; int cr_offset = i * 8 + AOMMAX(bh, 8) / 2 - 1; @@ -1020,8 +1020,8 @@ MB_MODE_INFO *mbmi = &mi->mbmi; if (mbmi->ref_frame[0] == ref_frame && mbmi->ref_frame[1] == NONE) { - int bw = num_4x4_blocks_wide_lookup[mbmi->sb_type] * 4; - int bh = num_4x4_blocks_high_lookup[mbmi->sb_type] * 4; + int bw = block_size_wide[mbmi->sb_type]; + int bh = block_size_high[mbmi->sb_type]; int mv_row = mbmi->mv[0].as_mv.row; int mv_col = mbmi->mv[0].as_mv.col; int cr_offset = -AOMMAX(bh, 8) / 2 - 1; @@ -1070,8 +1070,8 @@ } else { MODE_INFO *mi = xd->mi[0]; MB_MODE_INFO *mbmi = &mi->mbmi; - int bw = num_4x4_blocks_wide_lookup[mbmi->sb_type] * 4; - int bh = num_4x4_blocks_high_lookup[mbmi->sb_type] * 4; + int bw = block_size_wide[mbmi->sb_type]; + int bh = block_size_high[mbmi->sb_type]; int mv_row = mbmi->mv[0].as_mv.row; int mv_col = mbmi->mv[0].as_mv.col; int cr_offset = AOMMAX(bh, 8) / 2 - 1;
diff --git a/av1/common/reconinter.c b/av1/common/reconinter.c index 21921a8..04fbe9b 100644 --- a/av1/common/reconinter.c +++ b/av1/common/reconinter.c
@@ -293,8 +293,8 @@ BLOCK_SIZE sb_type; memset(wedge_signflip_lookup, 0, sizeof(wedge_signflip_lookup)); for (sb_type = BLOCK_4X4; sb_type < BLOCK_SIZES; ++sb_type) { - const int bw = 4 * num_4x4_blocks_wide_lookup[sb_type]; - const int bh = 4 * num_4x4_blocks_high_lookup[sb_type]; + const int bw = block_size_wide[sb_type]; + const int bh = block_size_high[sb_type]; const wedge_params_type wedge_params = wedge_params_lookup[sb_type]; const int wbits = wedge_params.bits; const int wtypes = 1 << wbits; @@ -317,8 +317,8 @@ memset(wedge_masks, 0, sizeof(wedge_masks)); for (bsize = BLOCK_4X4; bsize < BLOCK_SIZES; ++bsize) { const uint8_t *mask; - const int bw = 4 * num_4x4_blocks_wide_lookup[bsize]; - const int bh = 4 * num_4x4_blocks_high_lookup[bsize]; + const int bw = block_size_wide[bsize]; + const int bh = block_size_high[bsize]; const wedge_params_type *wedge_params = &wedge_params_lookup[bsize]; const int wbits = wedge_params->bits; const int wtypes = 1 << wbits; @@ -390,8 +390,7 @@ const uint8_t *mask = av1_get_contiguous_soft_mask(wedge_index, wedge_sign, sb_type); aom_blend_a64_mask(dst, dst_stride, src0, src0_stride, src1, src1_stride, - mask, 4 * num_4x4_blocks_wide_lookup[sb_type], h, w, subh, - subw); + mask, block_size_wide[sb_type], h, w, subh, subw); } #if CONFIG_AOM_HIGHBITDEPTH @@ -405,9 +404,9 @@ const int subw = (2 << b_width_log2_lookup[sb_type]) == w; const uint8_t *mask = av1_get_contiguous_soft_mask(wedge_index, wedge_sign, sb_type); - aom_highbd_blend_a64_mask( - dst_8, dst_stride, src0_8, src0_stride, src1_8, src1_stride, mask, - 4 * num_4x4_blocks_wide_lookup[sb_type], h, w, subh, subw, bd); + aom_highbd_blend_a64_mask(dst_8, dst_stride, src0_8, src0_stride, src1_8, + src1_stride, mask, block_size_wide[sb_type], h, w, + subh, subw, bd); } #endif // CONFIG_AOM_HIGHBITDEPTH @@ -732,9 +731,8 @@ struct macroblockd_plane *const pd = &xd->plane[plane]; MODE_INFO *const mi = xd->mi[0]; const BLOCK_SIZE plane_bsize = get_plane_block_size(mi->mbmi.sb_type, pd); - const int width = 4 * num_4x4_blocks_wide_lookup[plane_bsize]; - const int height = 4 * num_4x4_blocks_high_lookup[plane_bsize]; - + const int width = block_size_wide[plane_bsize]; + const int height = block_size_high[plane_bsize]; uint8_t *const dst = &pd->dst.buf[(ir * pd->dst.stride + ic) << 2]; int ref; const int is_compound = has_second_ref(&mi->mbmi); @@ -774,8 +772,8 @@ const int mi_y = mi_row * MI_SIZE; for (plane = plane_from; plane <= plane_to; ++plane) { const struct macroblockd_plane *pd = &xd->plane[plane]; - const int bw = 4 * num_4x4_blocks_wide_lookup[bsize] >> pd->subsampling_x; - const int bh = 4 * num_4x4_blocks_high_lookup[bsize] >> pd->subsampling_y; + const int bw = block_size_wide[bsize] >> pd->subsampling_x; + const int bh = block_size_high[bsize] >> pd->subsampling_y; if (xd->mi[0]->mbmi.sb_type < BLOCK_8X8) { const PARTITION_TYPE bp = bsize - xd->mi[0]->mbmi.sb_type; @@ -1102,8 +1100,8 @@ get_plane_block_size(bsize, &xd->plane[plane]); const int num_4x4_w = num_4x4_blocks_wide_lookup[plane_bsize]; const int num_4x4_h = num_4x4_blocks_high_lookup[plane_bsize]; - const int bw = 4 * num_4x4_w; - const int bh = 4 * num_4x4_h; + const int bw = block_size_wide[plane_bsize]; + const int bh = block_size_high[plane_bsize]; if (xd->mi[0]->mbmi.sb_type < BLOCK_8X8) { int x, y; @@ -1610,8 +1608,8 @@ uint8_t *comppred, int compstride, const uint8_t *interpred, int interstride, const uint8_t *intrapred, int intrastride) { - const int bw = 4 * num_4x4_blocks_wide_lookup[plane_bsize]; - const int bh = 4 * num_4x4_blocks_high_lookup[plane_bsize]; + const int bw = block_size_wide[plane_bsize]; + const int bh = block_size_high[plane_bsize]; const int size_scale = ii_size_scales[plane_bsize]; int i, j; @@ -1621,9 +1619,9 @@ av1_get_contiguous_soft_mask(wedge_index, wedge_sign, bsize); const int subw = 2 * num_4x4_blocks_wide_lookup[bsize] == bw; const int subh = 2 * num_4x4_blocks_high_lookup[bsize] == bh; - aom_blend_a64_mask( - comppred, compstride, intrapred, intrastride, interpred, interstride, - mask, 4 * num_4x4_blocks_wide_lookup[bsize], bh, bw, subh, subw); + aom_blend_a64_mask(comppred, compstride, intrapred, intrastride, + interpred, interstride, mask, block_size_wide[bsize], + bh, bw, subh, subw); } return; } @@ -1722,8 +1720,8 @@ int wedge_sign, BLOCK_SIZE bsize, BLOCK_SIZE plane_bsize, uint8_t *comppred8, int compstride, const uint8_t *interpred8, int interstride, const uint8_t *intrapred8, int intrastride, int bd) { - const int bw = 4 * num_4x4_blocks_wide_lookup[plane_bsize]; - const int bh = 4 * num_4x4_blocks_high_lookup[plane_bsize]; + const int bw = block_size_wide[plane_bsize]; + const int bh = block_size_high[plane_bsize]; const int size_scale = ii_size_scales[plane_bsize]; int i, j; @@ -2055,8 +2053,8 @@ get_plane_block_size(bsize, &xd->plane[plane]); const int num_4x4_w = num_4x4_blocks_wide_lookup[plane_bsize]; const int num_4x4_h = num_4x4_blocks_high_lookup[plane_bsize]; - const int bw = 4 * num_4x4_w; - const int bh = 4 * num_4x4_h; + const int bw = block_size_wide; + const int bh = block_size_high; if (xd->mi[0]->mbmi.sb_type < BLOCK_8X8) { int x, y;
diff --git a/av1/decoder/detokenize.c b/av1/decoder/detokenize.c index c42b95e..2df8cd2 100644 --- a/av1/decoder/detokenize.c +++ b/av1/decoder/detokenize.c
@@ -311,10 +311,10 @@ const MODE_INFO *const mi = xd->mi[0]; const MB_MODE_INFO *const mbmi = &mi->mbmi; const BLOCK_SIZE bsize = mbmi->sb_type; - const int rows = (4 * num_4x4_blocks_high_lookup[bsize]) >> - (xd->plane[plane != 0].subsampling_y); - const int cols = (4 * num_4x4_blocks_wide_lookup[bsize]) >> - (xd->plane[plane != 0].subsampling_x); + const int rows = + (block_size_high[bsize]) >> (xd->plane[plane != 0].subsampling_y); + const int cols = + (block_size_wide[bsize]) >> (xd->plane[plane != 0].subsampling_x); uint8_t color_order[PALETTE_MAX_SIZE]; const int n = mbmi->palette_mode_info.palette_size[plane != 0]; int i, j;
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index e4d8db0..4915f78 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c
@@ -1871,10 +1871,10 @@ #if CONFIG_PALETTE for (plane = 0; plane <= 1; ++plane) { if (m->mbmi.palette_mode_info.palette_size[plane] > 0) { - const int rows = (4 * num_4x4_blocks_high_lookup[m->mbmi.sb_type]) >> - (xd->plane[plane].subsampling_y); - const int cols = (4 * num_4x4_blocks_wide_lookup[m->mbmi.sb_type]) >> - (xd->plane[plane].subsampling_x); + const int rows = + block_size_high[m->mbmi.sb_type] >> (xd->plane[plane].subsampling_y); + const int cols = + block_size_wide[m->mbmi.sb_type] >> (xd->plane[plane].subsampling_x); assert(*tok < tok_end); pack_palette_tokens(w, tok, m->mbmi.palette_mode_info.palette_size[plane], rows * cols - 1);
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c index 8540cc4..a768c1c 100644 --- a/av1/encoder/encodeframe.c +++ b/av1/encoder/encodeframe.c
@@ -676,7 +676,7 @@ if (bsize > leaf_size) { const BLOCK_SIZE subsize = get_subsize(bsize, PARTITION_SPLIT); - const int px = num_4x4_blocks_wide_lookup[subsize] * 4; + const int px = block_size_wide[subsize]; init_variance_tree(vt->split[0], #if CONFIG_AOM_HIGHBITDEPTH
diff --git a/av1/encoder/encodemb.c b/av1/encoder/encodemb.c index a0452e5..0319db6 100644 --- a/av1/encoder/encodemb.c +++ b/av1/encoder/encodemb.c
@@ -38,8 +38,8 @@ struct macroblock_plane *const p = &x->plane[plane]; const struct macroblockd_plane *const pd = &x->e_mbd.plane[plane]; const BLOCK_SIZE plane_bsize = get_plane_block_size(bsize, pd); - const int bw = 4 * num_4x4_blocks_wide_lookup[plane_bsize]; - const int bh = 4 * num_4x4_blocks_high_lookup[plane_bsize]; + const int bw = block_size_wide[plane_bsize]; + const int bh = block_size_high[plane_bsize]; #if CONFIG_AOM_HIGHBITDEPTH if (x->e_mbd.cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { @@ -482,7 +482,7 @@ tran_low_t *const qcoeff = BLOCK_OFFSET(p->qcoeff, block); tran_low_t *const dqcoeff = BLOCK_OFFSET(pd->dqcoeff, block); uint16_t *const eob = &p->eobs[block]; - const int diff_stride = 4 * num_4x4_blocks_wide_lookup[plane_bsize]; + const int diff_stride = block_size_wide[plane_bsize]; #if CONFIG_AOM_QM int seg_id = xd->mi[0]->mbmi.segment_id; const qm_val_t *qmatrix = pd->seg_qmatrix[seg_id][!is_inter][tx_size];
diff --git a/av1/encoder/mcomp.c b/av1/encoder/mcomp.c index 4b54a2c..2956447 100644 --- a/av1/encoder/mcomp.c +++ b/av1/encoder/mcomp.c
@@ -2562,8 +2562,8 @@ int idx, best_idx = -1; unsigned int cost_array[5]; int kr, kc; - const int w = 4 * num_4x4_blocks_wide_lookup[mbmi->sb_type]; - const int h = 4 * num_4x4_blocks_high_lookup[mbmi->sb_type]; + const int w = block_size_wide[mbmi->sb_type]; + const int h = block_size_high[mbmi->sb_type]; int offset; int y_stride; const uint8_t *y; @@ -3064,8 +3064,8 @@ int idx, best_idx = -1; unsigned int cost_array[5]; int kr, kc; - const int w = 4 * num_4x4_blocks_wide_lookup[mbmi->sb_type]; - const int h = 4 * num_4x4_blocks_high_lookup[mbmi->sb_type]; + const int w = block_size_wide[mbmi->sb_type]; + const int h = block_size_high[mbmi->sb_type]; int offset; int y_stride; const uint8_t *y;
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c index e1bfdf4..190e07e 100644 --- a/av1/encoder/rd.c +++ b/av1/encoder/rd.c
@@ -717,7 +717,7 @@ int16_t *av1_raster_block_offset_int16(BLOCK_SIZE plane_bsize, int raster_block, int16_t *base) { - const int stride = 4 * num_4x4_blocks_wide_lookup[plane_bsize]; + const int stride = block_size_wide[plane_bsize]; return base + av1_raster_block_offset(plane_bsize, raster_block, stride); }
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c index 6fd0926..0f5db59 100644 --- a/av1/encoder/rdopt.c +++ b/av1/encoder/rdopt.c
@@ -1853,8 +1853,8 @@ int rate_overhead = 0; MACROBLOCKD *const xd = &x->e_mbd; MODE_INFO *const mic = xd->mi[0]; - const int rows = 4 * num_4x4_blocks_high_lookup[bsize]; - const int cols = 4 * num_4x4_blocks_wide_lookup[bsize]; + const int rows = block_size_high[bsize]; + const int cols = block_size_wide[bsize]; int this_rate, colors, n; RD_STATS tokenonly_rd_stats; int64_t this_rd; @@ -2816,8 +2816,8 @@ int64_t this_distortion, this_rd; TX_SIZE best_tx = TX_4X4; #if CONFIG_EXT_INTRA || CONFIG_PALETTE - const int rows = 4 * num_4x4_blocks_high_lookup[bsize]; - const int cols = 4 * num_4x4_blocks_wide_lookup[bsize]; + const int rows = block_size_high[bsize]; + const int cols = block_size_wide[bsize]; #endif // CONFIG_EXT_INTRA || CONFIG_PALETTE #if CONFIG_EXT_INTRA const int intra_filter_ctx = av1_get_pred_context_intra_interp(xd); @@ -3737,10 +3737,8 @@ MACROBLOCKD *const xd = &x->e_mbd; MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi; const BLOCK_SIZE bsize = mbmi->sb_type; - const int rows = - (4 * num_4x4_blocks_high_lookup[bsize]) >> (xd->plane[1].subsampling_y); - const int cols = - (4 * num_4x4_blocks_wide_lookup[bsize]) >> (xd->plane[1].subsampling_x); + const int rows = block_size_high[bsize] >> (xd->plane[1].subsampling_y); + const int cols = block_size_wide[bsize] >> (xd->plane[1].subsampling_x); int this_rate; int64_t this_rd; int colors_u, colors_v, colors; @@ -4057,10 +4055,8 @@ od_encode_checkpoint(&x->daala_enc, &buf); #endif #if CONFIG_PALETTE - const int rows = - (4 * num_4x4_blocks_high_lookup[bsize]) >> (xd->plane[1].subsampling_y); - const int cols = - (4 * num_4x4_blocks_wide_lookup[bsize]) >> (xd->plane[1].subsampling_x); + const int rows = block_size_high[bsize] >> (xd->plane[1].subsampling_y); + const int cols = block_size_wide[bsize] >> (xd->plane[1].subsampling_x); PALETTE_MODE_INFO palette_mode_info; PALETTE_MODE_INFO *const pmi = &xd->mi[0]->mbmi.palette_mode_info; uint8_t *best_palette_color_map = NULL; @@ -4847,8 +4843,8 @@ int_mv single_newmv[TOTAL_REFS_PER_FRAME], int *rate_mv, const int block) { const AV1_COMMON *const cm = &cpi->common; - const int pw = 4 * num_4x4_blocks_wide_lookup[bsize]; - const int ph = 4 * num_4x4_blocks_high_lookup[bsize]; + const int pw = block_size_wide[bsize]; + const int ph = block_size_high[bsize]; MACROBLOCKD *xd = &x->e_mbd; MB_MODE_INFO *mbmi = &xd->mi[0]->mbmi; const int refs[2] = { mbmi->ref_frame[0], @@ -5445,8 +5441,8 @@ const int try_second = x->second_best_mv.as_int != INVALID_MV && x->second_best_mv.as_int != x->best_mv.as_int; - const int pw = 4 * num_4x4_blocks_wide_lookup[bsize]; - const int ph = 4 * num_4x4_blocks_high_lookup[bsize]; + const int pw = block_size_wide[bsize]; + const int ph = block_size_high[bsize]; // Use up-sampled reference frames. struct buf_2d backup_pred = pd->pre[0]; const YV12_BUFFER_CONFIG *upsampled_ref = @@ -6244,8 +6240,8 @@ int best_mv_var; const int try_second = x->second_best_mv.as_int != INVALID_MV && x->second_best_mv.as_int != x->best_mv.as_int; - const int pw = 4 * num_4x4_blocks_wide_lookup[bsize]; - const int ph = 4 * num_4x4_blocks_high_lookup[bsize]; + const int pw = block_size_wide[bsize]; + const int ph = block_size_high[bsize]; // Use up-sampled reference frames. struct macroblockd_plane *const pd = &xd->plane[0]; struct buf_2d backup_pred = pd->pre[ref_idx]; @@ -6481,7 +6477,7 @@ MB_MODE_INFO *mbmi = &xd->mi[0]->mbmi; BLOCK_SIZE sb_type = mbmi->sb_type; const uint8_t *mask; - const int mask_stride = 4 * num_4x4_blocks_wide_lookup[bsize]; + const int mask_stride = block_size_wide[bsize]; mask = av1_get_contiguous_soft_mask(wedge_index, wedge_sign, sb_type); if (which == 0 || which == 2) @@ -6684,8 +6680,8 @@ int *const best_wedge_index) { const MACROBLOCKD *const xd = &x->e_mbd; const struct buf_2d *const src = &x->plane[0].src; - const int bw = 4 * num_4x4_blocks_wide_lookup[bsize]; - const int bh = 4 * num_4x4_blocks_high_lookup[bsize]; + const int bw = block_size_wide[bsize]; + const int bh = block_size_high[bsize]; const int N = bw * bh; int rate; int64_t dist; @@ -6759,8 +6755,8 @@ const int wedge_sign, int *const best_wedge_index) { const MACROBLOCKD *const xd = &x->e_mbd; const struct buf_2d *const src = &x->plane[0].src; - const int bw = 4 * num_4x4_blocks_wide_lookup[bsize]; - const int bh = 4 * num_4x4_blocks_high_lookup[bsize]; + const int bw = block_size_wide[bsize]; + const int bh = block_size_high[bsize]; const int N = bw * bh; int rate; int64_t dist; @@ -6816,7 +6812,7 @@ const uint8_t *const p1) { const MACROBLOCKD *const xd = &x->e_mbd; MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi; - const int bw = 4 * num_4x4_blocks_wide_lookup[bsize]; + const int bw = block_size_wide[bsize]; int64_t rd; int wedge_index = -1; @@ -6890,7 +6886,7 @@ int rate_mv = 0; #if CONFIG_EXT_INTER int pred_exists = 1; - const int bw = 4 * num_4x4_blocks_wide_lookup[bsize]; + const int bw = block_size_wide[bsize]; int mv_idx = (this_mode == NEWFROMNEARMV) ? 1 : 0; int_mv single_newmv[TOTAL_REFS_PER_FRAME]; const unsigned int *const interintra_mode_cost = @@ -8156,10 +8152,8 @@ MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi; PALETTE_MODE_INFO *const pmi = &mbmi->palette_mode_info; const BLOCK_SIZE bsize = mbmi->sb_type; - const int rows = - (4 * num_4x4_blocks_high_lookup[bsize]) >> (xd->plane[1].subsampling_y); - const int cols = - (4 * num_4x4_blocks_wide_lookup[bsize]) >> (xd->plane[1].subsampling_x); + const int rows = block_size_high[bsize] >> (xd->plane[1].subsampling_y); + const int cols = block_size_wide[bsize] >> (xd->plane[1].subsampling_x); int src_stride = x->plane[1].src.stride; const uint8_t *const src_u = x->plane[1].src.buf; const uint8_t *const src_v = x->plane[2].src.buf; @@ -8494,8 +8488,8 @@ #endif #if CONFIG_PALETTE || CONFIG_EXT_INTRA - const int rows = 4 * num_4x4_blocks_high_lookup[bsize]; - const int cols = 4 * num_4x4_blocks_wide_lookup[bsize]; + const int rows = block_size_high[bsize]; + const int cols = block_size_wide[bsize]; #endif // CONFIG_PALETTE || CONFIG_EXT_INTRA #if CONFIG_PALETTE int palette_ctx = 0;
diff --git a/av1/encoder/tokenize.c b/av1/encoder/tokenize.c index 0e6b815..136cdf2 100644 --- a/av1/encoder/tokenize.c +++ b/av1/encoder/tokenize.c
@@ -394,10 +394,10 @@ int i, j; int this_rate = 0; uint8_t color_order[PALETTE_MAX_SIZE]; - const int rows = (4 * num_4x4_blocks_high_lookup[bsize]) >> - (xd->plane[plane != 0].subsampling_y); - const int cols = (4 * num_4x4_blocks_wide_lookup[bsize]) >> - (xd->plane[plane != 0].subsampling_x); + const int rows = + block_size_high[bsize] >> (xd->plane[plane != 0].subsampling_y); + const int cols = + block_size_wide[bsize] >> (xd->plane[plane != 0].subsampling_x); const aom_prob(*const probs)[PALETTE_COLOR_CONTEXTS][PALETTE_COLORS - 1] = plane == 0 ? av1_default_palette_y_color_prob : av1_default_palette_uv_color_prob;