Remove redundant data in RD_STATS
Change-Id: Ief23c2c5ed99f5f54d1f733655a2e4be36abf6e2
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 91ef3df..babc99e 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -187,9 +187,7 @@
int64_t rdcost;
int64_t sse;
int skip; // sse should equal to dist when skip == 1
- int64_t ref_rdcost;
int zero_rate;
- uint8_t invalid_rate;
#if CONFIG_RD_DEBUG
int txb_coeff_cost[MAX_MB_PLANE];
int txb_coeff_cost_map[MAX_MB_PLANE][TXB_COEFF_COST_MAP_SIZE]
diff --git a/av1/encoder/rd.h b/av1/encoder/rd.h
index a256ec1..78f0052 100644
--- a/av1/encoder/rd.h
+++ b/av1/encoder/rd.h
@@ -303,8 +303,6 @@
rd_stats->sse = 0;
rd_stats->skip = 1;
rd_stats->zero_rate = 0;
- rd_stats->invalid_rate = 0;
- rd_stats->ref_rdcost = INT64_MAX;
#if CONFIG_RD_DEBUG
// This may run into problems when monochrome video is
// encoded, as there will only be 1 plane
@@ -330,8 +328,6 @@
rd_stats->sse = INT64_MAX;
rd_stats->skip = 0;
rd_stats->zero_rate = 0;
- rd_stats->invalid_rate = 1;
- rd_stats->ref_rdcost = INT64_MAX;
#if CONFIG_RD_DEBUG
// This may run into problems when monochrome video is
// encoded, as there will only be 1 plane
@@ -349,20 +345,17 @@
static INLINE void av1_merge_rd_stats(RD_STATS *rd_stats_dst,
const RD_STATS *rd_stats_src) {
-#if CONFIG_RD_DEBUG
- int plane;
-#endif
+ assert(rd_stats_dst->rate != INT_MAX && rd_stats_src->rate != INT_MAX);
rd_stats_dst->rate += rd_stats_src->rate;
if (!rd_stats_dst->zero_rate)
rd_stats_dst->zero_rate = rd_stats_src->zero_rate;
rd_stats_dst->dist += rd_stats_src->dist;
rd_stats_dst->sse += rd_stats_src->sse;
rd_stats_dst->skip &= rd_stats_src->skip;
- rd_stats_dst->invalid_rate &= rd_stats_src->invalid_rate;
#if CONFIG_RD_DEBUG
// This may run into problems when monochrome video is
// encoded, as there will only be 1 plane
- for (plane = 0; plane < MAX_MB_PLANE; ++plane) {
+ for (int plane = 0; plane < MAX_MB_PLANE; ++plane) {
rd_stats_dst->txb_coeff_cost[plane] += rd_stats_src->txb_coeff_cost[plane];
{
// TODO(angiebird): optimize this part
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index d6e2233..6a66f32 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -5182,8 +5182,6 @@
get_txb_ctx(plane_bsize, tx_size, 0, pta, ptl, &txb_ctx);
const int zero_blk_rate = x->coeff_costs[txs_ctx][PLANE_TYPE_Y]
.txb_skip_cost[txb_ctx.txb_skip_ctx][1];
-
- rd_stats->ref_rdcost = ref_best_rd;
rd_stats->zero_rate = zero_blk_rate;
const int index = av1_get_txb_size_index(plane_bsize, blk_row, blk_col);
mbmi->inter_tx_size[index] = tx_size;
@@ -5522,7 +5520,6 @@
const int zero_blk_rate = x->coeff_costs[txs_ctx][get_plane_type(0)]
.txb_skip_cost[txb_ctx.txb_skip_ctx][1];
rd_stats->zero_rate = zero_blk_rate;
- rd_stats->ref_rdcost = ref_best_rd;
tx_type_rd(cpi, x, tx_size, blk_row, blk_col, 0, block, plane_bsize,
&txb_ctx, rd_stats, ftxs_mode, ref_best_rd, NULL);
const int mi_width = block_size_wide[plane_bsize] >> tx_size_wide_log2[0];
@@ -6057,7 +6054,7 @@
if (plane == 0) {
pick_tx_size_type_yrd(cpi, x, &rd_stats, bsize, mi_row, mi_col,
INT64_MAX);
- if (rd_stats.invalid_rate) {
+ if (rd_stats.rate == INT_MAX) {
rate = 0;
dist = sse << 4;
} else {