From 1aedfc992acf989d5f232aa2915a8aab3c7f67ad Mon Sep 17 00:00:00 2001 From: Dmitry Kovalev Date: Mon, 12 Aug 2013 11:18:28 -0700 Subject: [PATCH] Using MV* instead of int_mv* as argument of vp9_clamp_mv_min_max. Change-Id: I3c45916a9059f11b41e9d798e34ffee052969a44 --- vp9/encoder/vp9_mbgraph.c | 2 +- vp9/encoder/vp9_mcomp.c | 15 +++++++-------- vp9/encoder/vp9_mcomp.h | 2 +- vp9/encoder/vp9_rdopt.c | 4 ++-- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/vp9/encoder/vp9_mbgraph.c b/vp9/encoder/vp9_mbgraph.c index 314e195d2..57fa0106e 100644 --- a/vp9/encoder/vp9_mbgraph.c +++ b/vp9/encoder/vp9_mbgraph.c @@ -40,7 +40,7 @@ static unsigned int do_16x16_motion_iteration(VP9_COMP *cpi, (cpi->speed < 8 ? (cpi->speed > 5 ? 1 : 0) : 2); step_param = MIN(step_param, (cpi->sf.max_step_search_steps - 2)); - vp9_clamp_mv_min_max(x, ref_mv); + vp9_clamp_mv_min_max(x, &ref_mv->as_mv); ref_full.as_mv.col = ref_mv->as_mv.col >> 3; ref_full.as_mv.row = ref_mv->as_mv.row >> 3; diff --git a/vp9/encoder/vp9_mcomp.c b/vp9/encoder/vp9_mcomp.c index ca02df881..b6515e697 100644 --- a/vp9/encoder/vp9_mcomp.c +++ b/vp9/encoder/vp9_mcomp.c @@ -24,15 +24,14 @@ // #define NEW_DIAMOND_SEARCH -void vp9_clamp_mv_min_max(MACROBLOCK *x, int_mv *ref_mv) { - const int col_min = (ref_mv->as_mv.col >> 3) - MAX_FULL_PEL_VAL + - ((ref_mv->as_mv.col & 7) ? 1 : 0); - const int row_min = (ref_mv->as_mv.row >> 3) - MAX_FULL_PEL_VAL + - ((ref_mv->as_mv.row & 7) ? 1 : 0); - const int col_max = (ref_mv->as_mv.col >> 3) + MAX_FULL_PEL_VAL; - const int row_max = (ref_mv->as_mv.row >> 3) + MAX_FULL_PEL_VAL; +void vp9_clamp_mv_min_max(MACROBLOCK *x, MV *mv) { + const int col_min = (mv->col >> 3) - MAX_FULL_PEL_VAL + (mv->col & 7 ? 1 : 0); + const int row_min = (mv->row >> 3) - MAX_FULL_PEL_VAL + (mv->row & 7 ? 1 : 0); + const int col_max = (mv->col >> 3) + MAX_FULL_PEL_VAL; + const int row_max = (mv->row >> 3) + MAX_FULL_PEL_VAL; - /* Get intersection of UMV window and valid MV window to reduce # of checks in diamond search. */ + // Get intersection of UMV window and valid MV window to reduce # of checks + // in diamond search. if (x->mv_col_min < col_min) x->mv_col_min = col_min; if (x->mv_col_max > col_max) diff --git a/vp9/encoder/vp9_mcomp.h b/vp9/encoder/vp9_mcomp.h index 35ef483c6..3598fa09a 100644 --- a/vp9/encoder/vp9_mcomp.h +++ b/vp9/encoder/vp9_mcomp.h @@ -23,7 +23,7 @@ // Maximum size of the first step in full pel units #define MAX_FIRST_STEP (1 << (MAX_MVSEARCH_STEPS-1)) -void vp9_clamp_mv_min_max(MACROBLOCK *x, int_mv *ref_mv); +void vp9_clamp_mv_min_max(MACROBLOCK *x, MV *mv); int vp9_mv_bit_cost(int_mv *mv, int_mv *ref, int *mvjcost, int *mvcost[2], int weight); void vp9_init_dsmotion_compensation(MACROBLOCK *x, int stride); diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index 7321a2f87..fc41648d1 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -2457,7 +2457,7 @@ static void single_motion_search(VP9_COMP *cpi, MACROBLOCK *x, setup_pre_planes(xd, 0, scaled_ref_frame, mi_row, mi_col, NULL); } - vp9_clamp_mv_min_max(x, &ref_mv); + vp9_clamp_mv_min_max(x, &ref_mv.as_mv); // Adjust search parameters based on small partitions' result. if (x->fast_ms) { @@ -2637,7 +2637,7 @@ static void joint_motion_search(VP9_COMP *cpi, MACROBLOCK *x, // Compound motion search on first ref frame. if (id) xd->plane[0].pre[0] = ref_yv12[id]; - vp9_clamp_mv_min_max(x, &ref_mv[id]); + vp9_clamp_mv_min_max(x, &ref_mv[id].as_mv); // Use mv result from single mode as mvp. tmp_mv.as_int = frame_mv[refs[id]].as_int;