Fix mismtach with ref-mv and ext-partition-types

Change the list of search offsets searched when ext-partition-types
is on for square block_sizes. This is because the VERTICAL_A and
HORIZONTAL_A partitions are incompatible with the default list.

BUG=AOMEDIA:141

Change-Id: I884c45c3d11039b7dcb72336a928362f926473ed
This commit is contained in:
Debargha Mukherjee 2017-01-26 08:50:48 -08:00
Родитель 086c9db8e0
Коммит ff59b6acb1
1 изменённых файлов: 28 добавлений и 0 удалений

Просмотреть файл

@ -571,10 +571,24 @@ static void find_mv_refs_idx(const AV1_COMMON *cm, const MACROBLOCKD *xd,
mv_ref_search[3].col = -1; mv_ref_search[3].col = -1;
mv_ref_search[4].row = -1; mv_ref_search[4].row = -1;
mv_ref_search[4].col = -1; mv_ref_search[4].col = -1;
#if CONFIG_EXT_PARTITION_TYPES
if (num_8x8_blocks_wide == num_8x8_blocks_high) {
mv_ref_search[5].row = -1;
mv_ref_search[5].col = 0;
mv_ref_search[6].row = 0;
mv_ref_search[6].col = -1;
} else {
mv_ref_search[5].row = -1;
mv_ref_search[5].col = num_8x8_blocks_wide;
mv_ref_search[6].row = num_8x8_blocks_high;
mv_ref_search[6].col = -1;
}
#else
mv_ref_search[5].row = -1; mv_ref_search[5].row = -1;
mv_ref_search[5].col = num_8x8_blocks_wide; mv_ref_search[5].col = num_8x8_blocks_wide;
mv_ref_search[6].row = num_8x8_blocks_high; mv_ref_search[6].row = num_8x8_blocks_high;
mv_ref_search[6].col = -1; mv_ref_search[6].col = -1;
#endif // CONFIG_EXT_PARTITION_TYPES
mv_ref_search[7].row = -1; mv_ref_search[7].row = -1;
mv_ref_search[7].col = -3; mv_ref_search[7].col = -3;
mv_ref_search[8].row = num_8x8_blocks_high - 1; mv_ref_search[8].row = num_8x8_blocks_high - 1;
@ -748,10 +762,24 @@ void av1_update_mv_context(const MACROBLOCKD *xd, MODE_INFO *mi,
mv_ref_search[3].col = -1; mv_ref_search[3].col = -1;
mv_ref_search[4].row = -1; mv_ref_search[4].row = -1;
mv_ref_search[4].col = -1; mv_ref_search[4].col = -1;
#if CONFIG_EXT_PARTITION_TYPES
if (num_8x8_blocks_wide == num_8x8_blocks_high) {
mv_ref_search[5].row = -1;
mv_ref_search[5].col = 0;
mv_ref_search[6].row = 0;
mv_ref_search[6].col = -1;
} else {
mv_ref_search[5].row = -1;
mv_ref_search[5].col = num_8x8_blocks_wide;
mv_ref_search[6].row = num_8x8_blocks_high;
mv_ref_search[6].col = -1;
}
#else
mv_ref_search[5].row = -1; mv_ref_search[5].row = -1;
mv_ref_search[5].col = num_8x8_blocks_wide; mv_ref_search[5].col = num_8x8_blocks_wide;
mv_ref_search[6].row = num_8x8_blocks_high; mv_ref_search[6].row = num_8x8_blocks_high;
mv_ref_search[6].col = -1; mv_ref_search[6].col = -1;
#endif // CONFIG_EXT_PARTITION_TYPES
mv_ref_search[7].row = -1; mv_ref_search[7].row = -1;
mv_ref_search[7].col = -3; mv_ref_search[7].col = -3;
mv_ref_search[8].row = num_8x8_blocks_high - 1; mv_ref_search[8].row = num_8x8_blocks_high - 1;