Commit bbe68fbd authored by Jingning Han's avatar Jingning Han

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
parent 7fb5e738
...@@ -406,8 +406,6 @@ static void first_pass_motion_search(VP9_COMP *cpi, MACROBLOCK *x, ...@@ -406,8 +406,6 @@ static void first_pass_motion_search(VP9_COMP *cpi, MACROBLOCK *x,
// for first pass test // for first pass test
while ((quart_frm << sr) < MAX_FULL_PEL_VAL) while ((quart_frm << sr) < MAX_FULL_PEL_VAL)
sr++; sr++;
if (sr)
sr--;
step_param += sr; step_param += sr;
further_steps -= sr; further_steps -= sr;
......
...@@ -51,9 +51,6 @@ int vp9_init_search_range(VP9_COMP *cpi, int size) { ...@@ -51,9 +51,6 @@ int vp9_init_search_range(VP9_COMP *cpi, int size) {
while ((size << sr) < MAX_FULL_PEL_VAL) while ((size << sr) < MAX_FULL_PEL_VAL)
sr++; sr++;
if (sr)
sr--;
sr += cpi->sf.reduce_first_step_size; sr += cpi->sf.reduce_first_step_size;
sr = MIN(sr, (cpi->sf.max_step_search_steps - 2)); sr = MIN(sr, (cpi->sf.max_step_search_steps - 2));
return sr; return sr;
......
...@@ -18,8 +18,9 @@ ...@@ -18,8 +18,9 @@
// The maximum number of steps in a step search given the largest // The maximum number of steps in a step search given the largest
// allowed initial step // allowed initial step
#define MAX_MVSEARCH_STEPS 11 #define MAX_MVSEARCH_STEPS 11
// Max full pel mv specified in 1 pel units // Max full pel mv specified in the unit of full pixel
#define MAX_FULL_PEL_VAL ((1 << (MAX_MVSEARCH_STEPS)) - 1) // 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 // Maximum size of the first step in full pel units
#define MAX_FIRST_STEP (1 << (MAX_MVSEARCH_STEPS-1)) #define MAX_FIRST_STEP (1 << (MAX_MVSEARCH_STEPS-1))
// Allowed motion vector pixel distance outside image border // Allowed motion vector pixel distance outside image border
......
Markdown is supported
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