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) {