Remove single_filter from interp filter search Single_filter used to store single-ref filter result in interp filter search, which was already done by interp_filter_stats, and wasn't needed anymore. Change-Id: I7be2724894d74f76fc318e47bb21a131cce11e70
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c index e742aa0..f2f76a0 100644 --- a/av1/encoder/rdopt.c +++ b/av1/encoder/rdopt.c
@@ -8289,7 +8289,6 @@ // Pointer to array of predicted rate-distortion // Should point to first of 2 arrays in 2D array int64_t (*modelled_rd)[MAX_REF_MV_SEARCH][REF_FRAMES]; - InterpFilter single_filter[MB_MODE_COUNT][REF_FRAMES]; int ref_frame_cost; int single_comp_cost; int64_t (*simple_rd)[MAX_REF_MV_SEARCH][REF_FRAMES]; @@ -9086,9 +9085,8 @@ MACROBLOCK *const x, const AV1_COMP *const cpi, const TileDataEnc *tile_data, BLOCK_SIZE bsize, int mi_row, int mi_col, const BUFFER_SET *const tmp_dst, const BUFFER_SET *const orig_dst, - InterpFilter (*const single_filter)[REF_FRAMES], int64_t *const rd, - int *const switchable_rate, int *skip_build_pred, HandleInterModeArgs *args, - int64_t ref_best_rd) { + int64_t *const rd, int *const switchable_rate, int *skip_build_pred, + HandleInterModeArgs *args, int64_t ref_best_rd) { const AV1_COMMON *cm = &cpi->common; const int num_planes = av1_num_planes(cm); MACROBLOCKD *const xd = &x->e_mbd; @@ -9102,7 +9100,6 @@ av1_init_rd_stats(&rd_stats_luma); av1_init_rd_stats(&rd_stats); - (void)single_filter; int match_found_idx = -1; const InterpFilter assign_filter = cm->interp_filter; @@ -10971,9 +10968,9 @@ #if CONFIG_COLLECT_COMPONENT_TIMING start_timing(cpi, interpolation_filter_search_time); #endif - ret_val = interpolation_filter_search( - x, cpi, tile_data, bsize, mi_row, mi_col, &tmp_dst, &orig_dst, - args->single_filter, &rd, &rs, &skip_build_pred, args, ref_best_rd); + ret_val = interpolation_filter_search(x, cpi, tile_data, bsize, mi_row, + mi_col, &tmp_dst, &orig_dst, &rd, &rs, + &skip_build_pred, args, ref_best_rd); #if CONFIG_COLLECT_COMPONENT_TIMING end_timing(cpi, interpolation_filter_search_time); #endif @@ -10989,10 +10986,6 @@ continue; } - if (!is_comp_pred) - args->single_filter[this_mode][refs[0]] = - mbmi->interp_filters.as_filters.y_filter; - if (args->modelled_rd != NULL) { if (is_comp_pred) { const int mode0 = compound_ref0_mode(this_mode); @@ -11818,9 +11811,6 @@ MB_MODE_INFO_EXT *const mbmi_ext = x->mbmi_ext; unsigned char segment_id = mbmi->segment_id; - for (int i = 0; i < MB_MODE_COUNT; ++i) - for (int k = 0; k < REF_FRAMES; ++k) args->single_filter[i][k] = SWITCHABLE; - if (is_cur_buf_hbd(xd)) { int len = sizeof(uint16_t); args->above_pred_buf[0] = CONVERT_TO_BYTEPTR(x->above_pred_buf); @@ -12922,16 +12912,22 @@ INTERINTRA_MODES, INTERINTRA_MODES, INTERINTRA_MODES, INTERINTRA_MODES, INTERINTRA_MODES, INTERINTRA_MODES, INTERINTRA_MODES, INTERINTRA_MODES }; - HandleInterModeArgs args = { - { NULL }, { MAX_SB_SIZE, MAX_SB_SIZE, MAX_SB_SIZE }, - { NULL }, { MAX_SB_SIZE >> 1, MAX_SB_SIZE >> 1, MAX_SB_SIZE >> 1 }, - NULL, NULL, - NULL, search_state.modelled_rd, - { { 0 } }, INT_MAX, - INT_MAX, search_state.simple_rd, - 0, interintra_modes, - 1, NULL - }; + HandleInterModeArgs args = { { NULL }, + { MAX_SB_SIZE, MAX_SB_SIZE, MAX_SB_SIZE }, + { NULL }, + { MAX_SB_SIZE >> 1, MAX_SB_SIZE >> 1, + MAX_SB_SIZE >> 1 }, + NULL, + NULL, + NULL, + search_state.modelled_rd, + INT_MAX, + INT_MAX, + search_state.simple_rd, + 0, + interintra_modes, + 1, + NULL }; for (i = 0; i < REF_FRAMES; ++i) x->pred_sse[i] = INT_MAX; av1_invalid_rd_stats(rd_cost); @@ -13477,9 +13473,6 @@ MB_MODE_INFO_EXT *const mbmi_ext = x->mbmi_ext; unsigned char segment_id = mbmi->segment_id; - for (int i = 0; i < MB_MODE_COUNT; ++i) - for (int k = 0; k < REF_FRAMES; ++k) args->single_filter[i][k] = SWITCHABLE; - if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { int len = sizeof(uint16_t); args->above_pred_buf[0] = CONVERT_TO_BYTEPTR(x->above_pred_buf); @@ -13580,16 +13573,22 @@ InterModeSearchState search_state; init_inter_mode_search_state(&search_state, cpi, x, bsize, best_rd_so_far); - HandleInterModeArgs args = { - { NULL }, { MAX_SB_SIZE, MAX_SB_SIZE, MAX_SB_SIZE }, - { NULL }, { MAX_SB_SIZE >> 1, MAX_SB_SIZE >> 1, MAX_SB_SIZE >> 1 }, - NULL, NULL, - NULL, search_state.modelled_rd, - { { 0 } }, INT_MAX, - INT_MAX, search_state.simple_rd, - 0, NULL, - 1, NULL - }; + HandleInterModeArgs args = { { NULL }, + { MAX_SB_SIZE, MAX_SB_SIZE, MAX_SB_SIZE }, + { NULL }, + { MAX_SB_SIZE >> 1, MAX_SB_SIZE >> 1, + MAX_SB_SIZE >> 1 }, + NULL, + NULL, + NULL, + search_state.modelled_rd, + INT_MAX, + INT_MAX, + search_state.simple_rd, + 0, + NULL, + 1, + NULL }; for (i = 0; i < REF_FRAMES; ++i) x->pred_sse[i] = INT_MAX; av1_invalid_rd_stats(rd_cost);