From: Yaowu Xu Date: Fri, 23 Aug 2013 20:29:32 +0000 (-0700) Subject: Limit mv range to be based on partition size X-Git-Tag: v1.3.0~537 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=13930cf569e8e0459fa2ccd5da08e05c4b0cd11d;p=libvpx Limit mv range to be based on partition size Previous change c4048dbd limits the mv search range assuming max block size of 64x64, this commit change the search range using actual block size instead. Change-Id: Ibe07ab02b62bf64bd9f8675d2b997af20a2c7e11 --- diff --git a/vp9/common/vp9_enums.h b/vp9/common/vp9_enums.h index ef9398d4d..9fab56ff9 100644 --- a/vp9/common/vp9_enums.h +++ b/vp9/common/vp9_enums.h @@ -16,7 +16,6 @@ #define MI_SIZE_LOG2 3 #define MI_BLOCK_SIZE_LOG2 (6 - MI_SIZE_LOG2) // 64 = 2^6 -#define MAX_BLOCK_SIZE (1 << 6) // max block size in pixel #define MI_SIZE (1 << MI_SIZE_LOG2) // pixels per mi-unit #define MI_BLOCK_SIZE (1 << MI_BLOCK_SIZE_LOG2) // mi-units per max block diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index 2f8321254..898573155 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -503,8 +503,8 @@ static void set_offsets(VP9_COMP *cpi, int mi_row, int mi_col, // Set up limit values for MV components // mv beyond the range do not produce new/different prediction block - x->mv_row_min = -((mi_row * MI_SIZE) + MAX_BLOCK_SIZE + VP9_INTERP_EXTEND); - x->mv_col_min = -((mi_col * MI_SIZE) + MAX_BLOCK_SIZE + VP9_INTERP_EXTEND); + x->mv_row_min = -(((mi_row + mi_height) * MI_SIZE) + VP9_INTERP_EXTEND); + x->mv_col_min = -(((mi_col + mi_width) * MI_SIZE) + VP9_INTERP_EXTEND); x->mv_row_max = (cm->mi_rows - mi_row) * MI_SIZE + VP9_INTERP_EXTEND; x->mv_col_max = (cm->mi_cols - mi_col) * MI_SIZE + VP9_INTERP_EXTEND;