From bbe68fbd2a6c2c300568c19a09fb33b019502368 Mon Sep 17 00:00:00 2001 From: Jingning Han Date: Fri, 15 Nov 2013 20:32:03 -0800 Subject: [PATCH] Constrain encoder motion search range Explicitly constrain the upper limit of motion search range (in the unit of full pixel) to be [-1023, +1023]. It is intended to control the effective motion search range for 4K sequences. Change-Id: I645539c70885eec0f155781f439d97d333336e88 --- vp9/encoder/vp9_firstpass.c | 2 -- vp9/encoder/vp9_mcomp.c | 3 --- vp9/encoder/vp9_mcomp.h | 5 +++-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/vp9/encoder/vp9_firstpass.c b/vp9/encoder/vp9_firstpass.c index cbd321b..70d711c 100644 --- a/vp9/encoder/vp9_firstpass.c +++ b/vp9/encoder/vp9_firstpass.c @@ -406,8 +406,6 @@ static void first_pass_motion_search(VP9_COMP *cpi, MACROBLOCK *x, // for first pass test while ((quart_frm << sr) < MAX_FULL_PEL_VAL) sr++; - if (sr) - sr--; step_param += sr; further_steps -= sr; diff --git a/vp9/encoder/vp9_mcomp.c b/vp9/encoder/vp9_mcomp.c index a52f5b1..a383164 100644 --- a/vp9/encoder/vp9_mcomp.c +++ b/vp9/encoder/vp9_mcomp.c @@ -51,9 +51,6 @@ int vp9_init_search_range(VP9_COMP *cpi, int size) { while ((size << sr) < MAX_FULL_PEL_VAL) sr++; - if (sr) - sr--; - sr += cpi->sf.reduce_first_step_size; sr = MIN(sr, (cpi->sf.max_step_search_steps - 2)); return sr; diff --git a/vp9/encoder/vp9_mcomp.h b/vp9/encoder/vp9_mcomp.h index bcab679..10c2e4f 100644 --- a/vp9/encoder/vp9_mcomp.h +++ b/vp9/encoder/vp9_mcomp.h @@ -18,8 +18,9 @@ // The maximum number of steps in a step search given the largest // allowed initial step #define MAX_MVSEARCH_STEPS 11 -// Max full pel mv specified in 1 pel units -#define MAX_FULL_PEL_VAL ((1 << (MAX_MVSEARCH_STEPS)) - 1) +// Max full pel mv specified in the unit of full pixel +// Enable the use of motion vector in range [-1023, 1023]. +#define MAX_FULL_PEL_VAL ((1 << (MAX_MVSEARCH_STEPS - 1)) - 1) // Maximum size of the first step in full pel units #define MAX_FIRST_STEP (1 << (MAX_MVSEARCH_STEPS-1)) // Allowed motion vector pixel distance outside image border -- 2.7.4