Increase entropy_context buffer size in sub8x8 RD Temporarily increase the buffer size from 2 to 4 in the sub8x8 rate-distortion search for cb4x4. These functions will be deprecated after cb4x4 is fully enabled. Change-Id: I6aecaf55bd21a9416713cf31e75e7b4d9b68f83c
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c index fe7d737..69dc233 100644 --- a/av1/encoder/rdopt.c +++ b/av1/encoder/rdopt.c
@@ -2008,8 +2008,15 @@ const int dst_stride = pd->dst.stride; const uint8_t *src_init = &p->src.buf[row * 4 * src_stride + col * 4]; uint8_t *dst_init = &pd->dst.buf[row * 4 * src_stride + col * 4]; +#if CONFIG_CB4X4 + // TODO(jingning): This is a temporal change. The whole function should be + // out when cb4x4 is enabled. + ENTROPY_CONTEXT ta[4], tempa[4]; + ENTROPY_CONTEXT tl[4], templ[4]; +#else ENTROPY_CONTEXT ta[2], tempa[2]; ENTROPY_CONTEXT tl[2], templ[2]; +#endif const int num_4x4_blocks_wide = num_4x4_blocks_wide_lookup[bsize]; const int num_4x4_blocks_high = num_4x4_blocks_high_lookup[bsize]; int idx, idy; @@ -4700,8 +4707,14 @@ #if CONFIG_EXT_INTER int_mv ref_mv[2]; #endif // CONFIG_EXT_INTER + +#if CONFIG_CB4X4 + ENTROPY_CONTEXT ta[4]; + ENTROPY_CONTEXT tl[4]; +#else ENTROPY_CONTEXT ta[2]; ENTROPY_CONTEXT tl[2]; +#endif } SEG_RDSTAT; typedef struct { @@ -5122,7 +5135,11 @@ const BLOCK_SIZE bsize = mbmi->sb_type; const int num_4x4_blocks_wide = num_4x4_blocks_wide_lookup[bsize]; const int num_4x4_blocks_high = num_4x4_blocks_high_lookup[bsize]; +#if CONFIG_CB4X4 + ENTROPY_CONTEXT t_above[4], t_left[4]; +#else ENTROPY_CONTEXT t_above[2], t_left[2]; +#endif int subpelmv = 1, have_ref = 0; const int has_second_rf = has_second_ref(mbmi); const int inter_mode_mask = cpi->sf.inter_mode_mask[bsize];