diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c index f5e40ef7b3f81186bd3a2deee6f30b9dbe39cc0d..448c1c4102cc6be8aff4d0797350f9211d65339a 100644 --- a/vp9/encoder/vp9_onyx_if.c +++ b/vp9/encoder/vp9_onyx_if.c @@ -740,7 +740,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) { sf->optimize_coefficients = !cpi->oxcf.lossless; sf->first_step = 0; sf->max_step_search_steps = MAX_MVSEARCH_STEPS; - sf->comp_inter_joint_search = 1; + sf->comp_inter_joint_search_thresh = BLOCK_SIZE_AB4X4; #if CONFIG_MULTIPLE_ARF // Switch segmentation off. sf->static_segmentation = 0; @@ -762,11 +762,12 @@ void vp9_set_speed_features(VP9_COMP *cpi) { sf->static_segmentation = 0; #endif sf->mb16_breakout = 0; + sf->comp_inter_joint_search_thresh = BLOCK_SIZE_SB8X8; if (speed > 0) { + sf->comp_inter_joint_search_thresh = BLOCK_SIZE_TYPES; sf->optimize_coefficients = 0; sf->no_skip_block4x4_search = 0; - sf->comp_inter_joint_search = 0; sf->first_step = 1; } break; diff --git a/vp9/encoder/vp9_onyx_int.h b/vp9/encoder/vp9_onyx_int.h index c63de69f6d666c58d1ca3dd1c4444a47a0fc3cd4..670f41f3b648ff68c066be83129c85fa7d5c027d 100644 --- a/vp9/encoder/vp9_onyx_int.h +++ b/vp9/encoder/vp9_onyx_int.h @@ -217,7 +217,7 @@ typedef struct { int search_best_filter; int mb16_breakout; int static_segmentation; - int comp_inter_joint_search; + int comp_inter_joint_search_thresh; } SPEED_FEATURES; enum BlockSize { diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index c48f34ad75d21adf1e78666a7c6bd73875ba8ec3..a8a29d98abc68464f80cd1dddf06f9c8d7d10e2c 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -1402,7 +1402,7 @@ static void rd_check_segment_txsize(VP9_COMP *cpi, MACROBLOCK *x, // adjust src pointers mi_buf_shift(x, i); - if (cpi->compressor_speed == 0 && cpi->sf.comp_inter_joint_search) { + if (cpi->sf.comp_inter_joint_search_thresh < bsize) { iterative_motion_search(cpi, x, bsize, frame_mv[this_mode], scaled_ref_frame, mi_row, mi_col, seg_mvs[i]); @@ -2114,7 +2114,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, frame_mv[refs[0]].as_int = single_newmv[refs[0]].as_int; frame_mv[refs[1]].as_int = single_newmv[refs[1]].as_int; - if (cpi->sf.comp_inter_joint_search) + if (cpi->sf.comp_inter_joint_search_thresh < bsize) iterative_motion_search(cpi, x, bsize, frame_mv, scaled_ref_frame, mi_row, mi_col, single_newmv);