Move interp_filter_search_mask to cpi
interp_filter_search_mask stores the mask associated to speed feature:
adaptive_interp_filter_search, and shouldn't be in cpi->sf itself.
Moved it to cpi.
Change-Id: I1aae964f95b5cd12d777dfaddceebef4b0f07883
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index ebb0f73..6813da3 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -5013,7 +5013,7 @@
set_size_independent_vars(cpi);
if (cpi->oxcf.pass == 2 && cpi->sf.adaptive_interp_filter_search)
- cpi->sf.interp_filter_search_mask = setup_interp_filter_search_mask(cpi);
+ cpi->interp_filter_search_mask = setup_interp_filter_search_mask(cpi);
cpi->source->buf_8bit_valid = 0;
av1_setup_frame_size(cpi);
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index ce2c5e2..b54e58d 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -1054,6 +1054,9 @@
// Stores the default value of skip flag depending on chroma format
// Set as 1 for monochrome and 3 for other color formats
int default_interp_skip_flags;
+ // Filter mask to allow certain interp_filter type.
+ uint16_t interp_filter_search_mask;
+
int preserve_arf_as_gld;
MultiThreadHandle multi_thread_ctxt;
void (*row_mt_sync_read_ptr)(AV1RowMTSync *const, int, int);
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 2d2aab7..3351b7e 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -8810,7 +8810,7 @@
assert(filter_sets[filter_idx].as_filters.x_filter ==
filter_sets[filter_idx].as_filters.y_filter);
if (cpi->sf.adaptive_interp_filter_search &&
- !(get_interp_filter_allowed_mask(cpi->sf.interp_filter_search_mask,
+ !(get_interp_filter_allowed_mask(cpi->interp_filter_search_mask,
filter_idx))) {
return;
}
@@ -8845,7 +8845,7 @@
set_interp_filter_allowed_mask(&allowed_interp_mask, SHARP_SHARP);
set_interp_filter_allowed_mask(&allowed_interp_mask, SMOOTH_SMOOTH);
if (cpi->sf.adaptive_interp_filter_search)
- allowed_interp_mask &= cpi->sf.interp_filter_search_mask;
+ allowed_interp_mask &= cpi->interp_filter_search_mask;
find_best_interp_rd_facade(x, cpi, tile_data, bsize, mi_row, mi_col,
orig_dst, rd, rd_stats_y, rd_stats,
@@ -8859,7 +8859,7 @@
assert(filter_sets[i].as_filters.x_filter ==
filter_sets[i].as_filters.y_filter);
if (cpi->sf.adaptive_interp_filter_search &&
- !(get_interp_filter_allowed_mask(cpi->sf.interp_filter_search_mask,
+ !(get_interp_filter_allowed_mask(cpi->interp_filter_search_mask,
i))) {
continue;
}
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index eced9d5..c3b6ecb 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -828,7 +828,6 @@
sf->skip_obmc_in_uniform_mv_field = 0;
sf->skip_wm_in_uniform_mv_field = 0;
sf->adaptive_interp_filter_search = 0;
- sf->interp_filter_search_mask = ALLOW_ALL_INTERP_FILT_MASK;
sf->src_var_thresh_intra_skip = 1;
sf->reduce_high_precision_mv_usage = 0;
sf->disable_sb_level_coeff_cost_upd = 0;
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index eaeaa92..bf6cd1e 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -758,9 +758,6 @@
// Use modeled (currently CurvFit model) RDCost for fast non-RD mode
int use_modeled_non_rd_cost;
- // Filter mask to allow certain interp_filter type.
- uint16_t interp_filter_search_mask;
-
// Skip a number of expensive mode evaluations for blocks with very low
// temporal variance.
int short_circuit_low_temp_var;