From 4fa8e73249de240868ef5b7c74fba79a01c35448 Mon Sep 17 00:00:00 2001 From: Jingning Han Date: Thu, 10 Sep 2015 12:24:06 -0700 Subject: Remove speed features in vp10 Take out speed features that affect the compression performance to simplify the coding route. This commit removes the motion field mode search used in speed 3. Change-Id: Ifdf6862cb1ece8261125a56d9d89bcef60758c00 --- vp10/encoder/rdopt.c | 62 +++++-------------------------------------- vp10/encoder/speed_features.c | 2 -- vp10/encoder/speed_features.h | 2 -- 3 files changed, 6 insertions(+), 60 deletions(-) (limited to 'vp10/encoder') diff --git a/vp10/encoder/rdopt.c b/vp10/encoder/rdopt.c index 24d359ec4..a11cf7306 100644 --- a/vp10/encoder/rdopt.c +++ b/vp10/encoder/rdopt.c @@ -2912,14 +2912,13 @@ int vp10_active_edge_sb(VP10_COMP *cpi, } void vp10_rd_pick_inter_mode_sb(VP10_COMP *cpi, - TileDataEnc *tile_data, - MACROBLOCK *x, - int mi_row, int mi_col, - RD_COST *rd_cost, BLOCK_SIZE bsize, - PICK_MODE_CONTEXT *ctx, - int64_t best_rd_so_far) { + TileDataEnc *tile_data, + MACROBLOCK *x, + int mi_row, int mi_col, + RD_COST *rd_cost, BLOCK_SIZE bsize, + PICK_MODE_CONTEXT *ctx, + int64_t best_rd_so_far) { VP10_COMMON *const cm = &cpi->common; - TileInfo *const tile_info = &tile_data->tile_info; RD_OPT *const rd_opt = &cpi->rd; SPEED_FEATURES *const sf = &cpi->sf; MACROBLOCKD *const xd = &x->e_mbd; @@ -3152,55 +3151,6 @@ void vp10_rd_pick_inter_mode_sb(VP10_COMP *cpi, if (best_rd < mode_threshold[mode_index]) continue; - if (sf->motion_field_mode_search) { - const int mi_width = VPXMIN(num_8x8_blocks_wide_lookup[bsize], - tile_info->mi_col_end - mi_col); - const int mi_height = VPXMIN(num_8x8_blocks_high_lookup[bsize], - tile_info->mi_row_end - mi_row); - const int bsl = mi_width_log2_lookup[bsize]; - int cb_partition_search_ctrl = (((mi_row + mi_col) >> bsl) - + get_chessboard_index(cm->current_video_frame)) & 0x1; - MB_MODE_INFO *ref_mbmi; - int const_motion = 1; - int skip_ref_frame = !cb_partition_search_ctrl; - MV_REFERENCE_FRAME rf = NONE; - int_mv ref_mv; - ref_mv.as_int = INVALID_MV; - - if ((mi_row - 1) >= tile_info->mi_row_start) { - ref_mv = xd->mi[-xd->mi_stride]->mbmi.mv[0]; - rf = xd->mi[-xd->mi_stride]->mbmi.ref_frame[0]; - for (i = 0; i < mi_width; ++i) { - ref_mbmi = &xd->mi[-xd->mi_stride + i]->mbmi; - const_motion &= (ref_mv.as_int == ref_mbmi->mv[0].as_int) && - (ref_frame == ref_mbmi->ref_frame[0]); - skip_ref_frame &= (rf == ref_mbmi->ref_frame[0]); - } - } - - if ((mi_col - 1) >= tile_info->mi_col_start) { - if (ref_mv.as_int == INVALID_MV) - ref_mv = xd->mi[-1]->mbmi.mv[0]; - if (rf == NONE) - rf = xd->mi[-1]->mbmi.ref_frame[0]; - for (i = 0; i < mi_height; ++i) { - ref_mbmi = &xd->mi[i * xd->mi_stride - 1]->mbmi; - const_motion &= (ref_mv.as_int == ref_mbmi->mv[0].as_int) && - (ref_frame == ref_mbmi->ref_frame[0]); - skip_ref_frame &= (rf == ref_mbmi->ref_frame[0]); - } - } - - if (skip_ref_frame && this_mode != NEARESTMV && this_mode != NEWMV) - if (rf > INTRA_FRAME) - if (ref_frame != rf) - continue; - - if (const_motion) - if (this_mode == NEARMV || this_mode == ZEROMV) - continue; - } - comp_pred = second_ref_frame > INTRA_FRAME; if (comp_pred) { if (!cpi->allow_comp_inter_inter) diff --git a/vp10/encoder/speed_features.c b/vp10/encoder/speed_features.c index 156c4eac2..ba1fac7c1 100644 --- a/vp10/encoder/speed_features.c +++ b/vp10/encoder/speed_features.c @@ -192,7 +192,6 @@ static void set_good_speed_feature(VP10_COMP *cpi, VP10_COMMON *cm, sf->use_lp32x32fdct = 1; sf->use_fast_coef_updates = ONE_LOOP_REDUCED; sf->use_fast_coef_costing = 1; - sf->motion_field_mode_search = !boosted; sf->partition_search_breakout_rate_thr = 300; } @@ -457,7 +456,6 @@ void vp10_set_speed_features_framesize_independent(VP10_COMP *cpi) { sf->adaptive_mode_search = 0; sf->cb_pred_filter_search = 0; sf->cb_partition_search = 0; - sf->motion_field_mode_search = 0; sf->alt_ref_search_fp = 0; sf->use_quant_fp = 0; sf->reference_masking = 0; diff --git a/vp10/encoder/speed_features.h b/vp10/encoder/speed_features.h index 08a1893d4..731a8f5e4 100644 --- a/vp10/encoder/speed_features.h +++ b/vp10/encoder/speed_features.h @@ -314,8 +314,6 @@ typedef struct SPEED_FEATURES { int cb_partition_search; - int motion_field_mode_search; - int alt_ref_search_fp; // Fast quantization process path -- cgit v1.2.3