diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index d9edeae3e46089e32e46b9d2950eeb51acd81cee..f8db5643669048b12c299a8fb125969b0da96a2f 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -141,7 +141,7 @@ static void full_pixel_motion_search(VP9_COMP *cpi, MACROBLOCK *x, // TODO(jingning) exploiting adaptive motion search control in non-RD // mode decision too. - step_param = 6; + step_param = cpi->sf.mv.fullpel_search_step_param; for (i = LAST_FRAME; i <= LAST_FRAME && cpi->common.show_frame; ++i) { if ((x->pred_mv_sad[ref] >> 3) > x->pred_mv_sad[i]) { diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c index f25091b06ebdcad3f59d2c2487d44c0f30a93982..1eac02f99411407e670aced75f0f20c5e935110e 100644 --- a/vp9/encoder/vp9_speed_features.c +++ b/vp9/encoder/vp9_speed_features.c @@ -283,6 +283,7 @@ static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf, } if (speed >= 7) { sf->use_quant_fp = cm->frame_type == KEY_FRAME ? 0 : 1; + sf->mv.fullpel_search_step_param = 10; sf->lpf_pick = LPF_PICK_MINIMAL_LPF; sf->encode_breakout_thresh = (MIN(cm->width, cm->height) >= 720) ? 800 : 300; @@ -312,6 +313,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) { 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; sf->use_lastframe_partitioning = LAST_FRAME_PARTITION_OFF; @@ -359,7 +361,6 @@ void vp9_set_speed_features(VP9_COMP *cpi) { sf->search_type_check_frequency = 50; sf->encode_breakout_thresh = 0; sf->elevate_newmv_thresh = 0; - // Recode loop tolerence %. sf->recode_tolerance = 25; diff --git a/vp9/encoder/vp9_speed_features.h b/vp9/encoder/vp9_speed_features.h index 74ec8c43c59f9a07a8e831a055c1369f1f2b06d9..4ccb77a255de7b1e204f0b737bed0ebf4806b669 100644 --- a/vp9/encoder/vp9_speed_features.h +++ b/vp9/encoder/vp9_speed_features.h @@ -162,6 +162,9 @@ typedef struct MV_SPEED_FEATURES { // Control when to stop subpel search int subpel_force_stop; + + // This variable sets the step_param used in full pel motion search. + int fullpel_search_step_param; } MV_SPEED_FEATURES; typedef struct SPEED_FEATURES {