Remove template for collect rd stats; it is always on
Change-Id: I86afd811ef4270672d015b69140433de9c2ee41a
diff --git a/av1/encoder/block.h b/av1/encoder/block.h
index b95ad89..87761e9 100644
--- a/av1/encoder/block.h
+++ b/av1/encoder/block.h
@@ -199,9 +199,7 @@
int is_global[2];
} COMP_RD_STATS;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
struct inter_modes_info;
-#endif
typedef struct macroblock MACROBLOCK;
struct macroblock {
struct macroblock_plane plane[MAX_MB_PLANE];
@@ -300,9 +298,7 @@
// to the accurate tile context.
FRAME_CONTEXT *tile_pb_ctx;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
struct inter_modes_info *inter_modes_info;
-#endif
// buffer for hash value calculation of a block
// used only in av1_get_block_hash_value()
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index 9563ba3..ea82493 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -5669,13 +5669,11 @@
sb_size, BLOCK_4X4, &dummy_rdc, INT64_MAX, pc_root,
NULL);
}
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
// TODO(angiebird): Let inter_mode_rd_model_estimation support multi-tile.
if (cpi->sf.inter_mode_rd_model_estimation == 1 && cm->tile_cols == 1 &&
cm->tile_rows == 1) {
av1_inter_mode_data_fit(tile_data, x->rdmult);
}
-#endif
if (tile_data->allow_update_cdf && (cpi->row_mt == 1) &&
(tile_info->mi_row_end > (mi_row + mib_size))) {
if (sb_cols_in_tile == 1)
@@ -5831,9 +5829,7 @@
const TileInfo *const tile_info = &this_tile->tile_info;
int mi_row;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
av1_inter_mode_data_init(this_tile);
-#endif
av1_zero_above_context(cm, &td->mb.e_mbd, tile_info->mi_col_start,
tile_info->mi_col_end, tile_row);
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 96a20d5..9428a92 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -573,10 +573,8 @@
aom_free(cpi->td.mb.wsrc_buf);
cpi->td.mb.wsrc_buf = NULL;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
aom_free(cpi->td.mb.inter_modes_info);
cpi->td.mb.inter_modes_info = NULL;
-#endif
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++) {
@@ -2747,11 +2745,9 @@
(int32_t *)aom_memalign(
16, MAX_SB_SQUARE * sizeof(*cpi->td.mb.wsrc_buf)));
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
CHECK_MEM_ERROR(
cm, cpi->td.mb.inter_modes_info,
(InterModesInfo *)aom_malloc(sizeof(*cpi->td.mb.inter_modes_info)));
-#endif
for (int x = 0; x < 2; x++)
for (int y = 0; y < 2; y++)
@@ -3137,9 +3133,7 @@
aom_free(thread_data->td->left_pred_buf);
aom_free(thread_data->td->wsrc_buf);
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
aom_free(thread_data->td->inter_modes_info);
-#endif
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
aom_free(thread_data->td->hash_value_buffer[x][y]);
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 7b4c02a..dec531f 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -454,7 +454,6 @@
[SWITCHABLE_FILTERS];
} FRAME_COUNTS;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
#define INTER_MODE_RD_DATA_OVERALL_SIZE 6400
typedef struct {
@@ -489,7 +488,6 @@
int64_t est_rd_arr[MAX_INTER_MODES];
RdIdxPair rd_idx_pair_arr[MAX_INTER_MODES];
} InterModesInfo;
-#endif
// Encoder row synchronization
typedef struct AV1RowMTSyncData {
@@ -518,9 +516,7 @@
DECLARE_ALIGNED(16, FRAME_CONTEXT, tctx);
FRAME_CONTEXT *row_ctx;
uint8_t allow_update_cdf;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
InterModeRdModel inter_mode_rd_models[BLOCK_SIZES_ALL];
-#endif
AV1RowMTSync row_mt_sync;
AV1RowMTInfo row_mt_info;
} TileDataEnc;
@@ -555,9 +551,7 @@
tran_low_t *tree_coeff_buf[MAX_MB_PLANE];
tran_low_t *tree_qcoeff_buf[MAX_MB_PLANE];
tran_low_t *tree_dqcoeff_buf[MAX_MB_PLANE];
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
InterModesInfo *inter_modes_info;
-#endif
uint32_t *hash_value_buffer[2][2];
int32_t *wsrc_buf;
int32_t *mask_buf;
diff --git a/av1/encoder/ethread.c b/av1/encoder/ethread.c
index ceb76c1..77fb811 100644
--- a/av1/encoder/ethread.c
+++ b/av1/encoder/ethread.c
@@ -421,11 +421,9 @@
(int32_t *)aom_memalign(
16, MAX_SB_SQUARE * sizeof(*thread_data->td->wsrc_buf)));
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
CHECK_MEM_ERROR(cm, thread_data->td->inter_modes_info,
(InterModesInfo *)aom_malloc(
sizeof(*thread_data->td->inter_modes_info)));
-#endif
for (int x = 0; x < 2; x++)
for (int y = 0; y < 2; y++)
@@ -544,9 +542,7 @@
thread_data->td->mb.left_pred_buf = thread_data->td->left_pred_buf;
thread_data->td->mb.wsrc_buf = thread_data->td->wsrc_buf;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
thread_data->td->mb.inter_modes_info = thread_data->td->inter_modes_info;
-#endif
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
memcpy(thread_data->td->hash_value_buffer[x][y],
@@ -662,9 +658,7 @@
this_tile->row_mt_info.current_mi_row = this_tile->tile_info.mi_row_start;
this_tile->row_mt_info.num_threads_working = 0;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
av1_inter_mode_data_init(this_tile);
-#endif
av1_zero_above_context(cm, &cpi->td.mb.e_mbd,
this_tile->tile_info.mi_col_start,
this_tile->tile_info.mi_col_end, tile_row);
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 71394e5..0be76e4 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -740,7 +740,6 @@
MV_REFERENCE_FRAME single_rd_order[2][SINGLE_INTER_MODE_NUM][FWD_REFS];
} InterModeSearchState;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
static int inter_mode_data_block_idx(BLOCK_SIZE bsize) {
if (bsize == BLOCK_4X4 || bsize == BLOCK_4X8 || bsize == BLOCK_8X4 ||
bsize == BLOCK_4X16 || bsize == BLOCK_16X4) {
@@ -900,7 +899,6 @@
qsort(rd_idx_pair_arr, inter_modes_info->num, sizeof(rd_idx_pair_arr[0]),
compare_rd_idx_pair);
}
-#endif // CONFIG_COLLECT_INTER_MODE_RD_STATS
static INLINE int write_uniform_cost(int n, int v) {
const int l = get_unsigned_bits(n);
@@ -1974,7 +1972,6 @@
*dist <<= 4;
}
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
static int64_t get_sse(const AV1_COMP *cpi, const MACROBLOCK *x) {
const AV1_COMMON *cm = &cpi->common;
const int num_planes = av1_num_planes(cm);
@@ -1997,7 +1994,6 @@
total_sse <<= 4;
return total_sse;
}
-#endif
static void model_rd_for_sb(const AV1_COMP *const cpi, BLOCK_SIZE bsize,
MACROBLOCK *x, MACROBLOCKD *xd, int plane_from,
@@ -2573,12 +2569,10 @@
if (rd_stats->invalid_rate) return;
if (rd_stats->rate == INT_MAX || rd_stats->dist == INT64_MAX) return;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
if (cpi->sf.inter_mode_rd_model_estimation == 1 &&
(tile_data == NULL ||
!tile_data->inter_mode_rd_models[plane_bsize].ready))
return;
-#endif
(void)tile_data;
// Generate small sample to restrict output size.
static unsigned int seed = 95014;
@@ -2683,7 +2677,6 @@
fprintf(fout, " %g %g %g %g %g %g %g %g", hdist[0], hdist[1], hdist[2],
hdist[3], vdist[0], vdist[1], vdist[2], vdist[3]);
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
if (cpi->sf.inter_mode_rd_model_estimation == 1) {
assert(tile_data->inter_mode_rd_models[plane_bsize].ready);
const int64_t overall_sse = get_sse(cpi, x);
@@ -2698,7 +2691,6 @@
fprintf(fout, " %g %g %g", est_residue_cost_norm, est_dist_norm,
est_rdcost_norm);
}
-#endif
fprintf(fout, "\n");
fclose(fout);
@@ -9194,12 +9186,8 @@
BLOCK_SIZE bsize, RD_STATS *rd_stats, RD_STATS *rd_stats_y,
RD_STATS *rd_stats_uv, int *disable_skip, int mi_row, int mi_col,
HandleInterModeArgs *const args, int64_t ref_best_rd, const int *refs,
- int *rate_mv, const BUFFER_SET *orig_dst
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
- ,
- int64_t *best_est_rd, int do_tx_search, InterModesInfo *inter_modes_info
-#endif
-) {
+ int *rate_mv, const BUFFER_SET *orig_dst, int64_t *best_est_rd,
+ int do_tx_search, InterModesInfo *inter_modes_info) {
const AV1_COMMON *const cm = &cpi->common;
const int num_planes = av1_num_planes(cm);
MACROBLOCKD *xd = &x->e_mbd;
@@ -9427,11 +9415,7 @@
}
}
- if (cpi->sf.model_based_motion_mode_rd_breakout
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
- && do_tx_search
-#endif // CONFIG_COLLECT_INTER_MODE_RD_STATS
- ) {
+ if (cpi->sf.model_based_motion_mode_rd_breakout && do_tx_search) {
int model_rate;
int64_t model_dist;
model_rd_sb_fn[MODELRD_TYPE_MOTION_MODE_RD](
@@ -9445,7 +9429,6 @@
}
}
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
if (!do_tx_search) {
int64_t curr_sse;
int est_residue_cost = 0;
@@ -9482,7 +9465,6 @@
rd_stats->rdcost, mbmi);
}
} else {
-#endif // CONFIG_COLLECT_INTER_MODE_RD_STATS
if (!txfm_search(cpi, tile_data, x, bsize, mi_row, mi_col, rd_stats,
rd_stats_y, rd_stats_uv, rd_stats->rate, ref_best_rd)) {
if (rd_stats_y->rate == INT_MAX && mode_index == 0) {
@@ -9495,7 +9477,6 @@
const int64_t curr_rd = RDCOST(x->rdmult, rd_stats->rate, rd_stats->dist);
ref_best_rd = AOMMIN(ref_best_rd, curr_rd);
*disable_skip = 0;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
if (cpi->sf.inter_mode_rd_model_estimation == 1) {
const int skip_ctx = av1_get_skip_context(xd);
inter_mode_data_push(tile_data, mbmi->sb_type, rd_stats->sse,
@@ -9504,7 +9485,6 @@
x->skip_cost[skip_ctx][mbmi->skip]);
}
}
-#endif // CONFIG_COLLECT_INTER_MODE_RD_STATS
if (this_mode == GLOBALMV || this_mode == GLOBAL_GLOBALMV) {
if (is_nontrans_global_motion(xd, xd->mi[0])) {
@@ -9918,20 +9898,13 @@
int_mv mv;
} inter_mode_info;
-static int64_t handle_inter_mode(const AV1_COMP *const cpi,
- TileDataEnc *tile_data, MACROBLOCK *x,
- BLOCK_SIZE bsize, RD_STATS *rd_stats,
- RD_STATS *rd_stats_y, RD_STATS *rd_stats_uv,
- int *disable_skip, int mi_row, int mi_col,
- HandleInterModeArgs *args, int64_t ref_best_rd,
- uint8_t *const tmp_buf,
- CompoundTypeRdBuffers *rd_buffers
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
- ,
- int64_t *best_est_rd, const int do_tx_search,
- InterModesInfo *inter_modes_info
-#endif
-) {
+static int64_t handle_inter_mode(
+ const AV1_COMP *const cpi, TileDataEnc *tile_data, MACROBLOCK *x,
+ BLOCK_SIZE bsize, RD_STATS *rd_stats, RD_STATS *rd_stats_y,
+ RD_STATS *rd_stats_uv, int *disable_skip, int mi_row, int mi_col,
+ HandleInterModeArgs *args, int64_t ref_best_rd, uint8_t *const tmp_buf,
+ CompoundTypeRdBuffers *rd_buffers, int64_t *best_est_rd,
+ const int do_tx_search, InterModesInfo *inter_modes_info) {
const AV1_COMMON *cm = &cpi->common;
const int num_planes = av1_num_planes(cm);
MACROBLOCKD *xd = &x->e_mbd;
@@ -10278,16 +10251,10 @@
rd_stats_y->dist = plane_dist[0];
rd_stats_uv->dist = plane_dist[1] + plane_dist[2];
} else {
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
ret_val = motion_mode_rd(cpi, tile_data, x, bsize, rd_stats, rd_stats_y,
rd_stats_uv, disable_skip, mi_row, mi_col,
args, ref_best_rd, refs, &rate_mv, &orig_dst,
best_est_rd, do_tx_search, inter_modes_info);
-#else
- ret_val = motion_mode_rd(cpi, tile_data, x, bsize, rd_stats, rd_stats_y,
- rd_stats_uv, disable_skip, mi_row, mi_col,
- args, ref_best_rd, refs, &rate_mv, &orig_dst);
-#endif
}
mode_info[ref_mv_idx].mv.as_int = mbmi->mv[0].as_int;
mode_info[ref_mv_idx].rate_mv = rate_mv;
@@ -12215,7 +12182,6 @@
&mode_skip_mask, ctx->skip_ref_frame_mask,
ref_costs_single, ref_costs_comp, yv12_mb);
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
int64_t best_est_rd = INT64_MAX;
// TODO(angiebird): Turn this on when this speed feature is well tested
const InterModeRdModel *md = &tile_data->inter_mode_rd_models[bsize];
@@ -12225,7 +12191,6 @@
x->source_variance < 512));
InterModesInfo *inter_modes_info = x->inter_modes_info;
inter_modes_info->num = 0;
-#endif
int intra_mode_num = 0;
int intra_mode_idx_ls[MAX_MODES];
@@ -12384,17 +12349,10 @@
if (midx < MAX_SINGLE_REF_MODES) {
args.simple_rd_state = x->simple_rd_state[midx];
}
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
this_rd = handle_inter_mode(
cpi, tile_data, x, bsize, &rd_stats, &rd_stats_y, &rd_stats_uv,
&disable_skip, mi_row, mi_col, &args, ref_best_rd, tmp_buf,
&rd_buffers, &best_est_rd, do_tx_search, inter_modes_info);
-#else
- this_rd =
- handle_inter_mode(cpi, tile_data, x, bsize, &rd_stats, &rd_stats_y,
- &rd_stats_uv, &disable_skip, mi_row, mi_col,
- &args, ref_best_rd, tmp_buf, &rd_buffers);
-#endif
rate2 = rd_stats.rate;
skippable = rd_stats.skip;
distortion2 = rd_stats.dist;
@@ -12447,7 +12405,6 @@
search_state.best_mbmode = *mbmi;
search_state.best_skip2 = this_skip2;
search_state.best_mode_skippable = skippable;
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
if (do_tx_search) {
// When do_tx_search == 0, handle_inter_mode won't provide correct
// rate_y and rate_uv because txfm_search process is replaced by
@@ -12465,17 +12422,6 @@
temp_y_rd_1, temp_y_rd_2, temp_y_rd_3);
#endif
}
-#else // CONFIG_COLLECT_INTER_MODE_RD_STATS
- search_state.best_rate_y =
- rate_y +
- x->skip_cost[av1_get_skip_context(xd)][this_skip2 || skippable];
- search_state.best_rate_uv = rate_uv;
-#if CONFIG_ONE_PASS_SVM
- av1_set_reg_stat(rd_cost, temp_y_eob, temp_y_eob_0, temp_y_eob_1,
- temp_y_eob_2, temp_y_eob_3, temp_y_rd, temp_y_rd_0,
- temp_y_rd_1, temp_y_rd_2, temp_y_rd_3);
-#endif
-#endif // CONFIG_COLLECT_INTER_MODE_RD_STATS
memcpy(ctx->blk_skip, x->blk_skip,
sizeof(x->blk_skip[0]) * ctx->num_4x4_blk);
}
@@ -12516,7 +12462,6 @@
release_compound_type_rd_buffers(&rd_buffers);
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
if (!do_tx_search) {
inter_modes_info_sort(inter_modes_info, inter_modes_info->rd_idx_pair_arr);
search_state.best_rd = INT64_MAX;
@@ -12589,7 +12534,6 @@
}
}
}
-#endif
for (int j = 0; j < intra_mode_num; ++j) {
const int mode_index = intra_mode_idx_ls[j];
diff --git a/av1/encoder/rdopt.h b/av1/encoder/rdopt.h
index 5ff2df3..983d385 100644
--- a/av1/encoder/rdopt.h
+++ b/av1/encoder/rdopt.h
@@ -151,10 +151,8 @@
sobel_xy sobel(const uint8_t *input, int stride, int i, int j, bool high_bd);
-#if CONFIG_COLLECT_INTER_MODE_RD_STATS
void av1_inter_mode_data_init(struct TileDataEnc *tile_data);
void av1_inter_mode_data_fit(TileDataEnc *tile_data, int rdmult);
-#endif
#ifdef __cplusplus
} // extern "C"
diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake
index a51a4f1..47aba55 100644
--- a/build/cmake/aom_config_defaults.cmake
+++ b/build/cmake/aom_config_defaults.cmake
@@ -116,8 +116,6 @@
set_aom_config_var(DECODE_WIDTH_LIMIT 0 NUMBER "Set limit for decode width.")
# AV1 experiment flags.
-set_aom_config_var(CONFIG_COLLECT_INTER_MODE_RD_STATS 1 NUMBER
- "AV1 experiment flag.")
set_aom_config_var(CONFIG_SPEED_STATS 0 NUMBER "AV1 experiment flag.")
set_aom_config_var(CONFIG_COLLECT_RD_STATS 0 NUMBER "AV1 experiment flag.")
set_aom_config_var(CONFIG_DIST_8X8 0 NUMBER "AV1 experiment flag.")