Use more restrictive block radius for 8x8 block MV references.

Change-Id: If02e006aa8a89da9de23da92362bd2e7718ea07c
This commit is contained in:
Ronald S. Bultje 2013-04-30 17:34:02 -07:00
Родитель d068d869b9
Коммит ff2d69573e
1 изменённых файлов: 12 добавлений и 0 удалений

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

@ -13,6 +13,11 @@
#define MVREF_NEIGHBOURS 8
#if CONFIG_SB8X8
static int b_mv_ref_search[MVREF_NEIGHBOURS][2] = {
{0, -1}, {-1, 0}, {-1, -1}, {0, -2},
{-2, 0}, {-1, -2}, {-2, -1}, {-2, -2}
};
static int mb_mv_ref_search[MVREF_NEIGHBOURS][2] = {
{0, -1}, {-1, 0}, {-1, -1}, {0, -3},
{-3, 0}, {-1, -3}, {-3, -1}, {-3, -3}
@ -185,8 +190,15 @@ void vp9_find_mv_refs(VP9_COMMON *cm, MACROBLOCKD *xd, MODE_INFO *here,
mv_ref_search = sb64_mv_ref_search;
} else if (mbmi->sb_type >= BLOCK_SIZE_SB32X32) {
mv_ref_search = sb_mv_ref_search;
#if CONFIG_SB8X8
} else if (mbmi->sb_type >= BLOCK_SIZE_MB16X16) {
mv_ref_search = mb_mv_ref_search;
} else {
mv_ref_search = b_mv_ref_search;
#else
} else {
mv_ref_search = mb_mv_ref_search;
#endif
}
// We first scan for candidate vectors that match the current reference frame