From 13930cf569e8e0459fa2ccd5da08e05c4b0cd11d Mon Sep 17 00:00:00 2001 From: Yaowu Xu Date: Fri, 23 Aug 2013 13:29:32 -0700 Subject: [PATCH] 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 --- vp9/common/vp9_enums.h | 1 - vp9/encoder/vp9_encodeframe.c | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) 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; -- 2.40.0