From 0eecccc51eccd4a030c88e0a4f50af4bd6419bdc Mon Sep 17 00:00:00 2001 From: Jingning Han Date: Wed, 12 Feb 2014 12:48:15 -0800 Subject: Remove inactive control parameters Change-Id: Ic5692af975fe6bd2d8ec82bbae103c6f7c2fc13e --- vp9/encoder/vp9_block.h | 2 -- vp9/encoder/vp9_encodeframe.c | 12 ++++-------- vp9/encoder/vp9_rdopt.c | 32 +++++++++----------------------- 3 files changed, 13 insertions(+), 33 deletions(-) (limited to 'vp9/encoder') diff --git a/vp9/encoder/vp9_block.h b/vp9/encoder/vp9_block.h index 713cc5132..7cbdfce52 100644 --- a/vp9/encoder/vp9_block.h +++ b/vp9/encoder/vp9_block.h @@ -172,9 +172,7 @@ struct macroblock { int skip_encode; // Used to store sub partition's choices. - int fast_ms; int_mv pred_mv[MAX_REF_FRAMES]; - int subblock_ref; // TODO(jingning): Need to refactor the structure arrays that buffers the // coding mode decisions of each partition type. diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index 44715d23a..b7da9db9f 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -1253,9 +1253,6 @@ static void rd_use_partition(VP9_COMP *cpi, x->mb_energy = vp9_block_energy(cpi, x, bsize); } - x->fast_ms = 0; - x->subblock_ref = 0; - if (cpi->sf.adjust_partitioning_from_last_frame) { // Check if any of the sub blocks are further split. if (partition == PARTITION_SPLIT && subsize > BLOCK_8X8) { @@ -1796,9 +1793,6 @@ static void rd_pick_partition(VP9_COMP *cpi, const TileInfo *const tile, restore_context(cpi, mi_row, mi_col, a, l, sa, sl, bsize); } - x->fast_ms = 0; - x->subblock_ref = 0; - // PARTITION_HORZ if (partition_horz_allowed && do_rect) { subsize = get_subsize(bsize, PARTITION_HORZ); @@ -2220,6 +2214,7 @@ static void select_tx_mode(VP9_COMP *cpi) { } } } + // Start RTC Exploration typedef enum { BOTH_ZERO = 0, @@ -2251,12 +2246,15 @@ static void set_mode_info(MB_MODE_INFO *mbmi, BLOCK_SIZE bsize, mbmi->sb_type = bsize; mbmi->segment_id = 0; } + static INLINE int get_block_row(int b32i, int b16i, int b8i) { return ((b32i >> 1) << 2) + ((b16i >> 1) << 1) + (b8i >> 1); } + static INLINE int get_block_col(int b32i, int b16i, int b8i) { return ((b32i & 1) << 2) + ((b16i & 1) << 1) + (b8i & 1); } + static void rtc_use_partition(VP9_COMP *cpi, const TileInfo *const tile, MODE_INFO **mi_8x8, @@ -2276,8 +2274,6 @@ static void rtc_use_partition(VP9_COMP *cpi, int row8x8_remaining = tile->mi_row_end - mi_row; int col8x8_remaining = tile->mi_col_end - mi_col; int b32i; - x->fast_ms = 0; - x->subblock_ref = 0; for (b32i = 0; b32i < 4; b32i++) { int b16i; for (b16i = 0; b16i < 4; b16i++) { diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index cae7884fd..327861f49 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -2380,24 +2380,16 @@ static void single_motion_search(VP9_COMP *cpi, MACROBLOCK *x, vp9_set_mv_search_range(x, &ref_mv.as_mv); - // Adjust search parameters based on small partitions' result. - if (x->fast_ms) { - // adjust search range - step_param = 6; - if (x->fast_ms > 1) - step_param = 8; + // Work out the size of the first step in the mv step search. + // 0 here is maximum length first step. 1 is MAX >> 1 etc. + if (cpi->sf.auto_mv_step_size && cpi->common.show_frame) { + // Take wtd average of the step_params based on the last frame's + // max mv magnitude and that based on the best ref mvs of the current + // block for the given reference. + step_param = (vp9_init_search_range(cpi, x->max_mv_context[ref]) + + cpi->mv_step_param) >> 1; } else { - // Work out the size of the first step in the mv step search. - // 0 here is maximum length first step. 1 is MAX >> 1 etc. - if (cpi->sf.auto_mv_step_size && cpi->common.show_frame) { - // Take wtd average of the step_params based on the last frame's - // max mv magnitude and that based on the best ref mvs of the current - // block for the given reference. - step_param = (vp9_init_search_range(cpi, x->max_mv_context[ref]) + - cpi->mv_step_param) >> 1; - } else { - step_param = cpi->mv_step_param; - } + step_param = cpi->mv_step_param; } if (cpi->sf.adaptive_motion_search && bsize < BLOCK_64X64 && @@ -3260,12 +3252,6 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x, vp9_segfeature_active(seg, segment_id, SEG_LVL_REF_FRAME)) continue; - // Skip some checking based on small partitions' result. - if (x->fast_ms > 1 && !ref_frame) - continue; - if (x->fast_ms > 2 && ref_frame != x->subblock_ref) - continue; - mbmi->ref_frame[0] = ref_frame; mbmi->ref_frame[1] = second_ref_frame; -- cgit v1.2.3