Embed txb_coeff_cost in rd_stats in block_rd_txfm

A helper function av1_update_txb_coeff_cost() is created to do so.

Change-Id: I67be97d8dce36bafde11d2eb27c862945632f0cb
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 7ebecf8..0633116 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -1229,6 +1229,10 @@
   }
 #if !CONFIG_PVQ
   this_rd_stats.rate = rate_block(plane, block, coeff_ctx, tx_size, args);
+#if RD_DEBUG
+  av1_update_txb_coeff_cost(&this_rd_stats, plane, tx_size, blk_row, blk_col,
+                            this_rd_stats.rate);
+#endif
   args->t_above[blk_col] = (x->plane[plane].eobs[block] > 0);
   args->t_left[blk_row] = (x->plane[plane].eobs[block] > 0);
 #else
@@ -3199,19 +3203,8 @@
   rd_stats->rate += txb_coeff_cost;
   rd_stats->skip &= (p->eobs[block] == 0);
 #if CONFIG_RD_DEBUG
-  {
-    int idx, idy;
-    rd_stats->txb_coeff_cost[plane] += txb_coeff_cost;
-
-    for (idy = 0; idy < txb_h; ++idy)
-      for (idx = 0; idx < txb_w; ++idx)
-        rd_stats->txb_coeff_cost_map[plane][blk_row + idy][blk_col + idx] = 0;
-
-    rd_stats->txb_coeff_cost_map[plane][blk_row][blk_col] = txb_coeff_cost;
-
-    assert(blk_row < 16);
-    assert(blk_col < 16);
-  }
+  av1_update_txb_coeff_cost(rd_stats, plane, tx_size, blk_row, blk_col,
+                            txb_coeff_cost);
 #endif
 }
 
@@ -7834,14 +7827,14 @@
 #if CONFIG_VAR_TX
       is_cost_valid_uv =
           inter_block_uvrd(cpi, x, &rd_stats_uv, bsize, ref_best_rd - rdcosty);
-#if CONFIG_RD_DEBUG
-      // record uv planes' transform block coefficient cost
-      if (is_cost_valid_uv) av1_merge_rd_stats(&mbmi->rd_stats, &rd_stats_uv);
-#endif
 #else
       is_cost_valid_uv =
           super_block_uvrd(cpi, x, &rd_stats_uv, bsize, ref_best_rd - rdcosty);
 #endif  // CONFIG_VAR_TX
+#if CONFIG_RD_DEBUG
+      // record uv planes' transform block coefficient cost
+      if (is_cost_valid_uv) av1_merge_rd_stats(&mbmi->rd_stats, &rd_stats_uv);
+#endif
       *rate_uv = rd_stats_uv.rate;
       distortion_uv = rd_stats_uv.dist;
       skippable_uv = rd_stats_uv.skip;
diff --git a/av1/encoder/rdopt.h b/av1/encoder/rdopt.h
index 1b3480d..462274e 100644
--- a/av1/encoder/rdopt.h
+++ b/av1/encoder/rdopt.h
@@ -26,6 +26,27 @@
 struct macroblock;
 struct RD_COST;
 
+#if CONFIG_RD_DEBUG
+static INLINE void av1_update_txb_coeff_cost(RD_STATS *rd_stats, int plane,
+                                             TX_SIZE tx_size, int blk_row,
+                                             int blk_col, int txb_coeff_cost) {
+  const int txb_h = tx_size_high_unit[tx_size];
+  const int txb_w = tx_size_wide_unit[tx_size];
+  int idx, idy;
+
+  rd_stats->txb_coeff_cost[plane] += txb_coeff_cost;
+
+  for (idy = 0; idy < txb_h; ++idy)
+    for (idx = 0; idx < txb_w; ++idx)
+      rd_stats->txb_coeff_cost_map[plane][blk_row + idy][blk_col + idx] = 0;
+
+  rd_stats->txb_coeff_cost_map[plane][blk_row][blk_col] = txb_coeff_cost;
+
+  assert(blk_row < 16);
+  assert(blk_col < 16);
+}
+#endif
+
 static INLINE void av1_init_rd_stats(RD_STATS *rd_stats) {
 #if CONFIG_RD_DEBUG
   int plane;