MV ref_full;
// Further step/diamond searches as necessary
- int step_param = mv_sf->reduce_first_step_size +
- (cpi->oxcf.speed > 5 ? 1 : 0);
- step_param = MIN(step_param, mv_sf->max_step_search_steps - 2);
+ int step_param = mv_sf->reduce_first_step_size;
+ step_param = MIN(step_param, MAX_MVSEARCH_STEPS - 2);
vp9_set_mv_search_range(x, ref_mv);
while ((size << sr) < MAX_FULL_PEL_VAL)
sr++;
- sr += sf->mv.reduce_first_step_size;
- sr = MIN(sr, (sf->mv.max_step_search_steps - 2));
+ sr = MIN(sr, MAX_MVSEARCH_STEPS - 2);
return sr;
}
break;
case NSTEP:
var = vp9_full_pixel_diamond(cpi, x, mvp_full, step_param, error_per_bit,
- (sf->mv.max_step_search_steps - 1) -
- step_param,
+ MAX_MVSEARCH_STEPS - 1 - step_param,
1, fn_ptr, ref_mv, tmp_mv);
break;
default:
}
cpi->allow_encode_breakout = ENCODE_BREAKOUT_ENABLED;
}
+ if (speed >= 6) {
+ sf->mv.reduce_first_step_size = 1;
+ }
}
static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf,
// Increase mode checking threshold for NEWMV.
sf->elevate_newmv_thresh = 2000;
+
+ sf->mv.reduce_first_step_size = 1;
}
if (speed >= 7) {
sf->use_quant_fp = cm->frame_type == KEY_FRAME ? 0 : 1;
sf->optimize_coefficients = !is_lossless_requested(&cpi->oxcf);
sf->mv.reduce_first_step_size = 0;
sf->mv.auto_mv_step_size = 0;
- sf->mv.max_step_search_steps = MAX_MVSEARCH_STEPS;
sf->mv.fullpel_search_step_param = 6;
sf->comp_inter_joint_search_thresh = BLOCK_4X4;
sf->adaptive_rd_thresh = 0;
// Motion search method (Diamond, NSTEP, Hex, Big Diamond, Square, etc).
SEARCH_METHODS search_method;
- // This parameter controls the number of steps we'll do in a diamond
- // search.
- int max_step_search_steps;
-
// This parameter controls which step in the n-step process we start at.
// It's changed adaptively based on circumstances.
int reduce_first_step_size;
xd->plane[0].pre[0].buf = frame_ptr_buf;
xd->plane[0].pre[0].stride = stride;
- step_param = mv_sf->reduce_first_step_size + (cpi->oxcf.speed > 5 ? 1 : 0);
- step_param = MIN(step_param, mv_sf->max_step_search_steps - 2);
+ step_param = mv_sf->reduce_first_step_size;
+ step_param = MIN(step_param, MAX_MVSEARCH_STEPS - 2);
// Ignore mv costing by sending NULL pointer instead of cost arrays
vp9_hex_search(x, &best_ref_mv1_full, step_param, sadpb, 1,