Some RD fixes
Change-Id: Ie6b41ac068846da3c87bdcaa94180777edb27d1f
diff --git a/av1/encoder/rd.h b/av1/encoder/rd.h
index 8a0ac76..f50331f 100644
--- a/av1/encoder/rd.h
+++ b/av1/encoder/rd.h
@@ -387,6 +387,7 @@
rd_stats_dst->rate += rd_stats_src->rate;
rd_stats_dst->dist += rd_stats_src->dist;
rd_stats_dst->sse += rd_stats_src->sse;
+ rd_stats_dst->zero_rate += rd_stats_src->zero_rate;
rd_stats_dst->skip &= rd_stats_src->skip;
rd_stats_dst->invalid_rate &= rd_stats_src->invalid_rate;
#if CONFIG_RD_DEBUG
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index a381098..8b4e23d 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -4183,16 +4183,16 @@
return;
}
av1_merge_rd_stats(rd_stats, &pn_rd_stats);
- this_rd += AOMMIN(RDCOST(x->rdmult, pn_rd_stats.rate, pn_rd_stats.dist),
- RDCOST(x->rdmult, 0, pn_rd_stats.sse));
+ this_rd +=
+ AOMMIN(RDCOST(x->rdmult, pn_rd_stats.rate, pn_rd_stats.dist),
+ RDCOST(x->rdmult, pn_rd_stats.zero_rate, pn_rd_stats.sse));
block += step;
if (rd_info_tree != NULL) rd_info_tree += 1;
}
}
}
-
this_rd = AOMMIN(RDCOST(x->rdmult, rd_stats->rate, rd_stats->dist),
- RDCOST(x->rdmult, 0, rd_stats->sse));
+ RDCOST(x->rdmult, rd_stats->zero_rate, rd_stats->sse));
if (this_rd > ref_best_rd) is_cost_valid = 0;
if (!is_cost_valid) {