Commit 12bc8b00 authored by Jingning Han's avatar Jingning Han
Browse files

Set spatial neighbor search resolution 16x16 for block size 64x64

When the block has width/height above or equal to 64, use 16x16
block search step for reference motion vector search in the non-
immediate rows and columns.

Change-Id: Ica0cb9990bf6c31cfdded255558dafe0743d8062
parent f1176960
...@@ -153,14 +153,18 @@ static uint8_t scan_row_mbmi(const AV1_COMMON *cm, const MACROBLOCKD *xd, ...@@ -153,14 +153,18 @@ static uint8_t scan_row_mbmi(const AV1_COMMON *cm, const MACROBLOCKD *xd,
const MODE_INFO *const candidate_mi = const MODE_INFO *const candidate_mi =
xd->mi[mi_pos.row * xd->mi_stride + mi_pos.col]; xd->mi[mi_pos.row * xd->mi_stride + mi_pos.col];
const MB_MODE_INFO *const candidate_mbmi = &candidate_mi->mbmi; const MB_MODE_INFO *const candidate_mbmi = &candidate_mi->mbmi;
const int len = int len =
AOMMIN(xd->n8_w, num_8x8_blocks_wide_lookup[candidate_mbmi->sb_type]); AOMMIN(xd->n8_w, num_8x8_blocks_wide_lookup[candidate_mbmi->sb_type]);
if (xd->n8_w >= 8) len = AOMMAX(2, len);
newmv_count += add_ref_mv_candidate( newmv_count += add_ref_mv_candidate(
xd, candidate_mi, candidate_mbmi, rf, refmv_count, ref_mv_stack, xd, candidate_mi, candidate_mbmi, rf, refmv_count, ref_mv_stack,
cm->allow_high_precision_mv, len, block, mi_pos.col); cm->allow_high_precision_mv, len, block, mi_pos.col);
i += len; i += len;
} else { } else {
++i; if (xd->n8_w >= 8)
i += 2;
else
++i;
} }
} }
return newmv_count; return newmv_count;
...@@ -183,14 +187,18 @@ static uint8_t scan_col_mbmi(const AV1_COMMON *cm, const MACROBLOCKD *xd, ...@@ -183,14 +187,18 @@ static uint8_t scan_col_mbmi(const AV1_COMMON *cm, const MACROBLOCKD *xd,
const MODE_INFO *const candidate_mi = const MODE_INFO *const candidate_mi =
xd->mi[mi_pos.row * xd->mi_stride + mi_pos.col]; xd->mi[mi_pos.row * xd->mi_stride + mi_pos.col];
const MB_MODE_INFO *const candidate_mbmi = &candidate_mi->mbmi; const MB_MODE_INFO *const candidate_mbmi = &candidate_mi->mbmi;
const int len = int len =
AOMMIN(xd->n8_h, num_8x8_blocks_high_lookup[candidate_mbmi->sb_type]); AOMMIN(xd->n8_h, num_8x8_blocks_high_lookup[candidate_mbmi->sb_type]);
if (xd->n8_h >= 8) len = AOMMAX(2, len);
newmv_count += add_ref_mv_candidate( newmv_count += add_ref_mv_candidate(
xd, candidate_mi, candidate_mbmi, rf, refmv_count, ref_mv_stack, xd, candidate_mi, candidate_mbmi, rf, refmv_count, ref_mv_stack,
cm->allow_high_precision_mv, len, block, mi_pos.col); cm->allow_high_precision_mv, len, block, mi_pos.col);
i += len; i += len;
} else { } else {
++i; if (xd->n8_h >= 8)
i += 2;
else
++i;
} }
} }
return newmv_count; return newmv_count;
......
Supports Markdown
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