Remove some redundant code in av1_txfm_search() BUG=aomedia:2617 Change-Id: Ie2a903e9cfb042fba235a75daf560d9add9908e8
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c index 036b5ee..3a0ea59 100644 --- a/av1/encoder/rdopt.c +++ b/av1/encoder/rdopt.c
@@ -1530,8 +1530,8 @@ if (!eval_txfm) continue; } - if (!av1_txfm_search(cpi, tile_data, x, bsize, rd_stats, rd_stats_y, - rd_stats_uv, rd_stats->rate, ref_best_rd)) { + if (!av1_txfm_search(cpi, x, bsize, rd_stats, rd_stats_y, rd_stats_uv, + rd_stats->rate, ref_best_rd)) { if (rd_stats_y->rate == INT_MAX && mode_index == 0) { if (cpi->sf.inter_sf.prune_single_motion_modes_by_simple_trans && !is_comp_pred) { @@ -2778,7 +2778,7 @@ dvcost, MV_COST_WEIGHT_SUB); const int rate_mode = x->intrabc_cost[1]; RD_STATS rd_stats_yuv, rd_stats_y, rd_stats_uv; - if (!av1_txfm_search(cpi, NULL, x, bsize, &rd_stats_yuv, &rd_stats_y, + if (!av1_txfm_search(cpi, x, bsize, &rd_stats_yuv, &rd_stats_y, &rd_stats_uv, rate_mode + rate_mv, INT64_MAX)) continue; rd_stats_yuv.rdcost = @@ -4724,8 +4724,8 @@ if (!eval_txfm) continue; } - if (!av1_txfm_search(cpi, tile_data, x, bsize, &rd_stats, &rd_stats_y, - &rd_stats_uv, mode_rate, search_state.best_rd)) { + if (!av1_txfm_search(cpi, x, bsize, &rd_stats, &rd_stats_y, &rd_stats_uv, + mode_rate, search_state.best_rd)) { continue; } else if (cpi->sf.inter_sf.inter_mode_rd_model_estimation == 1) { inter_mode_data_push(tile_data, mbmi->sb_type, rd_stats.sse,
diff --git a/av1/encoder/tx_search.c b/av1/encoder/tx_search.c index 3129b3a..e315b0c 100644 --- a/av1/encoder/tx_search.c +++ b/av1/encoder/tx_search.c
@@ -3467,10 +3467,9 @@ } } -int av1_txfm_search(const AV1_COMP *cpi, const TileDataEnc *tile_data, - MACROBLOCK *x, BLOCK_SIZE bsize, RD_STATS *rd_stats, - RD_STATS *rd_stats_y, RD_STATS *rd_stats_uv, int mode_rate, - int64_t ref_best_rd) { +int av1_txfm_search(const AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, + RD_STATS *rd_stats, RD_STATS *rd_stats_y, + RD_STATS *rd_stats_uv, int mode_rate, int64_t ref_best_rd) { /* * This function combines y and uv planes' transform search processes * together, when the prediction is generated. It first does subtraction to @@ -3482,7 +3481,6 @@ const AV1_COMMON *cm = &cpi->common; MACROBLOCKD *const xd = &x->e_mbd; MB_MODE_INFO *const mbmi = xd->mi[0]; - const int ref_frame_1 = mbmi->ref_frame[1]; const int64_t mode_rd = RDCOST(x->rdmult, mode_rate, 0); const int64_t rd_thresh = ref_best_rd == INT64_MAX ? INT64_MAX : ref_best_rd - mode_rd; @@ -3494,7 +3492,6 @@ // Account for minimum skip and non_skip rd. // Eventually either one of them will be added to mode_rate const int64_t min_header_rd_possible = RDCOST(x->rdmult, min_header_rate, 0); - (void)tile_data; if (min_header_rd_possible > ref_best_rd) { av1_invalid_rd_stats(rd_stats_y); @@ -3520,12 +3517,7 @@ set_blk_skip(x, 0, i, rd_stats_y->skip); } - if (rd_stats_y->rate == INT_MAX) { - // TODO(angiebird): check if we need this - // restore_dst_buf(xd, *orig_dst, num_planes); - mbmi->ref_frame[1] = ref_frame_1; - return 0; - } + if (rd_stats_y->rate == INT_MAX) return 0; av1_merge_rd_stats(rd_stats, rd_stats_y); @@ -3541,9 +3533,9 @@ // Invalidate rd_stats_y to skip the rest of the motion modes search if (tokenonly_rdy - (tokenonly_rdy >> cpi->sf.inter_sf.prune_motion_mode_level) > - rd_thresh) + rd_thresh) { av1_invalid_rd_stats(rd_stats_y); - mbmi->ref_frame[1] = ref_frame_1; + } return 0; } @@ -3559,10 +3551,7 @@ } const int is_cost_valid_uv = av1_super_block_uvrd(cpi, x, rd_stats_uv, bsize, ref_best_chroma_rd); - if (!is_cost_valid_uv) { - mbmi->ref_frame[1] = ref_frame_1; - return 0; - } + if (!is_cost_valid_uv) return 0; av1_merge_rd_stats(rd_stats, rd_stats_uv); } @@ -3578,10 +3567,7 @@ // here mbmi->skip temporarily plays a role as what this_skip2 does const int64_t tmprd = RDCOST(x->rdmult, rd_stats->rate, rd_stats->dist); - if (tmprd > ref_best_rd) { - mbmi->ref_frame[1] = ref_frame_1; - return 0; - } + if (tmprd > ref_best_rd) return 0; } else if (!xd->lossless[mbmi->segment_id] && (RDCOST(x->rdmult, rd_stats_y->rate + rd_stats_uv->rate + skip_flag_cost[0],
diff --git a/av1/encoder/tx_search.h b/av1/encoder/tx_search.h index 66a9b19..669c361 100644 --- a/av1/encoder/tx_search.h +++ b/av1/encoder/tx_search.h
@@ -69,10 +69,9 @@ TX_SIZE tx_size, int use_fast_coef_casting, FAST_TX_SEARCH_MODE ftxs_mode, int skip_trellis); -int av1_txfm_search(const AV1_COMP *cpi, const TileDataEnc *tile_data, - MACROBLOCK *x, BLOCK_SIZE bsize, RD_STATS *rd_stats, - RD_STATS *rd_stats_y, RD_STATS *rd_stats_uv, int mode_rate, - int64_t ref_best_rd); +int av1_txfm_search(const AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, + RD_STATS *rd_stats, RD_STATS *rd_stats_y, + RD_STATS *rd_stats_uv, int mode_rate, int64_t ref_best_rd); #ifdef __cplusplus } // extern "C"