Commit 48b1cb35 authored by Jingning Han's avatar Jingning Han

Support filter-intra in cb4x4 mode

This commit resolves an enc/dec mismatch issue when both filter-intra
and cb4x4 modes are enabled.

BUG=aomedia:253

Change-Id: I4026d93c00a819f2ce69aedba9d34a774319acbf
parent 54294194
......@@ -1168,6 +1168,20 @@ static void highbd_dr_predictor(uint16_t *dst, ptrdiff_t stride, int bs,
#if CONFIG_FILTER_INTRA
int av1_filter_intra_taps_4[TX_SIZES][INTRA_MODES][4] = {
#if CONFIG_CB4X4
{
{ 735, 881, -537, -54 },
{ 1005, 519, -488, -11 },
{ 383, 990, -343, -6 },
{ 442, 805, -542, 319 },
{ 658, 616, -133, -116 },
{ 875, 442, -141, -151 },
{ 386, 741, -23, -80 },
{ 390, 1027, -446, 51 },
{ 679, 606, -523, 262 },
{ 903, 922, -778, -23 },
},
#endif
{
{ 735, 881, -537, -54 },
{ 1005, 519, -488, -11 },
......
......@@ -908,7 +908,8 @@ static void read_intra_frame_mode_info(AV1_COMMON *const cm,
#if CONFIG_FILTER_INTRA
mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 0;
mbmi->filter_intra_mode_info.use_filter_intra_mode[1] = 0;
if (bsize >= BLOCK_8X8) read_filter_intra_mode_info(cm, xd, r);
if (bsize >= BLOCK_8X8 || CONFIG_CB4X4)
read_filter_intra_mode_info(cm, xd, r);
#endif // CONFIG_FILTER_INTRA
read_tx_type(cm, xd, mbmi,
......@@ -1209,7 +1210,8 @@ static void read_intra_block_mode_info(AV1_COMMON *const cm,
#if CONFIG_FILTER_INTRA
mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 0;
mbmi->filter_intra_mode_info.use_filter_intra_mode[1] = 0;
if (bsize >= BLOCK_8X8) read_filter_intra_mode_info(cm, xd, r);
if (bsize >= BLOCK_8X8 || CONFIG_CB4X4)
read_filter_intra_mode_info(cm, xd, r);
#endif // CONFIG_FILTER_INTRA
}
......
......@@ -1410,7 +1410,8 @@ static void pack_inter_mode_mvs(AV1_COMP *cpi, const MODE_INFO *mi,
write_palette_mode_info(cm, xd, mi, w);
#endif // CONFIG_PALETTE
#if CONFIG_FILTER_INTRA
if (bsize >= BLOCK_8X8) write_filter_intra_mode_info(cm, mbmi, w);
if (bsize >= BLOCK_8X8 || unify_bsize)
write_filter_intra_mode_info(cm, mbmi, w);
#endif // CONFIG_FILTER_INTRA
} else {
int16_t mode_ctx;
......@@ -1755,7 +1756,8 @@ static void write_mb_modes_kf(AV1_COMMON *cm, const MACROBLOCKD *xd,
write_palette_mode_info(cm, xd, mi, w);
#endif // CONFIG_PALETTE
#if CONFIG_FILTER_INTRA
if (bsize >= BLOCK_8X8) write_filter_intra_mode_info(cm, mbmi, w);
if (bsize >= BLOCK_8X8 || unify_bsize)
write_filter_intra_mode_info(cm, mbmi, w);
#endif // CONFIG_FILTER_INTRA
write_tx_type(cm, xd, mbmi,
......
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