Clean up tx search related code
Change-Id: Ibb9221de1886015098b5b6fcaba8315da4715d54
diff --git a/av1/encoder/intra_mode_search.c b/av1/encoder/intra_mode_search.c
index 6080388..5b2aae0 100644
--- a/av1/encoder/intra_mode_search.c
+++ b/av1/encoder/intra_mode_search.c
@@ -626,7 +626,7 @@
} else {
av1_init_rd_stats(rd_stats);
av1_txfm_rd_in_plane(x, cpi, rd_stats, INT64_MAX, 0, plane, plane_bsize,
- tx_size, FTXS_NONE, 0);
+ tx_size, FTXS_NONE);
av1_rd_cost_update(x->rdmult, rd_stats);
cfl_cost = rd_stats->rdcost;
}
diff --git a/av1/encoder/tx_search.c b/av1/encoder/tx_search.c
index 334bce1..5bce47d 100644
--- a/av1/encoder/tx_search.c
+++ b/av1/encoder/tx_search.c
@@ -2021,8 +2021,8 @@
int block, int blk_row, int blk_col,
BLOCK_SIZE plane_bsize, TX_SIZE tx_size,
const TXB_CTX *const txb_ctx,
- FAST_TX_SEARCH_MODE ftxs_mode, int skip_trellis,
- int64_t ref_best_rd, RD_STATS *best_rd_stats) {
+ FAST_TX_SEARCH_MODE ftxs_mode, int64_t ref_best_rd,
+ RD_STATS *best_rd_stats) {
const AV1_COMMON *cm = &cpi->common;
MACROBLOCKD *xd = &x->e_mbd;
MB_MODE_INFO *mbmi = xd->mi[0];
@@ -2038,8 +2038,8 @@
plane ? 0 : blk_row * xd->tx_type_map_stride + blk_col;
av1_invalid_rd_stats(best_rd_stats);
- skip_trellis |= !is_trellis_used(cpi->optimize_seg_arr[xd->mi[0]->segment_id],
- DRY_RUN_NORMAL);
+ int skip_trellis = !is_trellis_used(
+ cpi->optimize_seg_arr[xd->mi[0]->segment_id], DRY_RUN_NORMAL);
uint8_t best_txb_ctx = 0;
// txk_allowed = TX_TYPES: >1 tx types are allowed
@@ -2338,9 +2338,8 @@
int64_t ref_rdcost) {
assert(is_inter_block(x->e_mbd.mi[0]));
RD_STATS this_rd_stats;
- const int skip_trellis = 0;
search_tx_type(cpi, x, 0, block, blk_row, blk_col, plane_bsize, tx_size,
- txb_ctx, ftxs_mode, skip_trellis, ref_rdcost, &this_rd_stats);
+ txb_ctx, ftxs_mode, ref_rdcost, &this_rd_stats);
av1_merge_rd_stats(rd_stats, &this_rd_stats);
}
@@ -2740,10 +2739,9 @@
const int64_t skip_txfm_rd =
is_inter_block(mbmi) ? RDCOST(x->rdmult, skip_txfm_rate, 0) : INT64_MAX;
const int64_t no_skip_txfm_rd = RDCOST(x->rdmult, no_skip_txfm_rate, 0);
- const int skip_trellis = 0;
av1_txfm_rd_in_plane(x, cpi, rd_stats, ref_best_rd,
AOMMIN(no_skip_txfm_rd, skip_txfm_rd), AOM_PLANE_Y, bs,
- mbmi->tx_size, FTXS_NONE, skip_trellis);
+ mbmi->tx_size, FTXS_NONE);
}
static inline void choose_smallest_tx_size(const AV1_COMP *const cpi,
@@ -2754,9 +2752,8 @@
mbmi->tx_size = TX_4X4;
// TODO(any) : Pass this_rd based on skip/non-skip cost
- const int skip_trellis = 0;
av1_txfm_rd_in_plane(x, cpi, rd_stats, ref_best_rd, 0, 0, bs, mbmi->tx_size,
- FTXS_NONE, skip_trellis);
+ FTXS_NONE);
}
#if !CONFIG_REALTIME_ONLY
@@ -2840,15 +2837,12 @@
* \param[in] tx_size The given transform size
* \param[in] ftxs_mode Transform search mode specifying desired speed
and quality tradeoff
- * \param[in] skip_trellis Binary flag indicating if trellis optimization
- should be skipped
* \return An int64_t value that is the best RD cost found.
*/
static int64_t uniform_txfm_yrd(const AV1_COMP *const cpi, MACROBLOCK *x,
RD_STATS *rd_stats, int64_t ref_best_rd,
BLOCK_SIZE bs, TX_SIZE tx_size,
- FAST_TX_SEARCH_MODE ftxs_mode,
- int skip_trellis) {
+ FAST_TX_SEARCH_MODE ftxs_mode) {
assert(IMPLIES(is_rect_tx(tx_size), is_rect_tx_allowed_bsize(bs)));
MACROBLOCKD *const xd = &x->e_mbd;
MB_MODE_INFO *const mbmi = xd->mi[0];
@@ -2875,7 +2869,7 @@
mbmi->tx_size = tx_size;
av1_txfm_rd_in_plane(x, cpi, rd_stats, ref_best_rd,
AOMMIN(no_this_rd, skip_txfm_rd), AOM_PLANE_Y, bs,
- tx_size, ftxs_mode, skip_trellis);
+ tx_size, ftxs_mode);
if (rd_stats->rate == INT_MAX) return INT64_MAX;
int64_t rd;
@@ -2940,7 +2934,6 @@
init_depth = MAX_TX_DEPTH;
}
- const int skip_trellis = 0;
uint8_t best_txk_type_map[MAX_MIB_SIZE * MAX_MIB_SIZE];
uint8_t best_blk_skip[MAX_MIB_SIZE * MAX_MIB_SIZE];
TX_SIZE best_tx_size = max_rect_tx_size;
@@ -2977,7 +2970,7 @@
? AOMMIN(ref_best_rd, best_rd)
: ref_best_rd;
rd[depth] = uniform_txfm_yrd(cpi, x, &this_rd_stats, rd_thresh, bs, tx_size,
- FTXS_NONE, skip_trellis);
+ FTXS_NONE);
if (rd[depth] < best_rd) {
av1_copy_array(best_blk_skip, txfm_info->blk_skip, num_blks);
av1_copy_array(best_txk_type_map, xd->tx_type_map, num_blks);
@@ -3049,8 +3042,8 @@
TXB_CTX txb_ctx;
get_txb_ctx(plane_bsize, tx_size, plane, a, l, &txb_ctx);
search_tx_type(cpi, x, plane, block, blk_row, blk_col, plane_bsize, tx_size,
- &txb_ctx, args->ftxs_mode, args->skip_trellis,
- args->best_rd - args->current_rd, &this_rd_stats);
+ &txb_ctx, args->ftxs_mode, args->best_rd - args->current_rd,
+ &this_rd_stats);
#if !CONFIG_REALTIME_ONLY
if (plane == AOM_PLANE_Y && xd->cfl.store_y) {
@@ -3672,7 +3665,6 @@
av1_subtract_plane(x, plane_bsize, plane);
}
- const int skip_trellis = 0;
const TX_SIZE uv_tx_size = av1_get_tx_size(AOM_PLANE_U, xd);
int is_cost_valid = 1;
for (int plane = 1; plane < MAX_MB_PLANE; ++plane) {
@@ -3687,7 +3679,7 @@
chroma_ref_best_rd != INT64_MAX)
chroma_ref_best_rd = ref_best_rd - AOMMIN(this_rd, skip_txfm_rd);
av1_txfm_rd_in_plane(x, cpi, &this_rd_stats, chroma_ref_best_rd, 0, plane,
- plane_bsize, uv_tx_size, FTXS_NONE, skip_trellis);
+ plane_bsize, uv_tx_size, FTXS_NONE);
if (this_rd_stats.rate == INT_MAX) {
is_cost_valid = 0;
break;
@@ -3712,8 +3704,7 @@
void av1_txfm_rd_in_plane(MACROBLOCK *x, const AV1_COMP *cpi,
RD_STATS *rd_stats, int64_t ref_best_rd,
int64_t current_rd, int plane, BLOCK_SIZE plane_bsize,
- TX_SIZE tx_size, FAST_TX_SEARCH_MODE ftxs_mode,
- int skip_trellis) {
+ TX_SIZE tx_size, FAST_TX_SEARCH_MODE ftxs_mode) {
assert(IMPLIES(plane == 0, x->e_mbd.mi[0]->tx_size == tx_size));
if (!cpi->oxcf.txfm_cfg.enable_tx64 &&
@@ -3736,7 +3727,7 @@
args.best_rd = ref_best_rd;
args.current_rd = current_rd;
args.ftxs_mode = ftxs_mode;
- args.skip_trellis = skip_trellis;
+ args.skip_trellis = 0;
av1_init_rd_stats(&args.rd_stats);
av1_get_entropy_contexts(plane_bsize, pd, args.t_above, args.t_left);
diff --git a/av1/encoder/tx_search.h b/av1/encoder/tx_search.h
index 9181304..a16d549 100644
--- a/av1/encoder/tx_search.h
+++ b/av1/encoder/tx_search.h
@@ -152,16 +152,13 @@
* \param[in] tx_size The given transform size
* \param[in] ftxs_mode Transform search mode specifying desired speed
and quality tradeoff
- * \param[in] skip_trellis Binary flag indicating if trellis optimization
- should be skipped
*
* \remark Nothing is returned. The RD results will be saved in rd_stats.
*/
void av1_txfm_rd_in_plane(MACROBLOCK *x, const AV1_COMP *cpi,
RD_STATS *rd_stats, int64_t ref_best_rd,
int64_t current_rd, int plane, BLOCK_SIZE plane_bsize,
- TX_SIZE tx_size, FAST_TX_SEARCH_MODE ftxs_mode,
- int skip_trellis);
+ TX_SIZE tx_size, FAST_TX_SEARCH_MODE ftxs_mode);
/*!\brief Recursive transform size and type search.
*