try to enable raw video features

Change-Id: Ibf622db3b05b3876c3c76c35f50585ffc17305d6
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index c65d6d4..88675e1 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -60,6 +60,13 @@
 #include "av1/encoder/tokenize.h"
 #include "av1/encoder/tx_prune_model_weights.h"
 
+// Set this macro as 1 to collect data about tx size selection.
+#define COLLECT_TX_SIZE_DATA 0
+
+#if COLLECT_TX_SIZE_DATA
+static const char av1_tx_size_data_output_file[] = "tx_size_data.txt";
+#endif
+
 typedef void (*model_rd_for_sb_type)(
     const AV1_COMP *const cpi, BLOCK_SIZE bsize, MACROBLOCK *x, MACROBLOCKD *xd,
     int plane_from, int plane_to, int mi_row, int mi_col, int *out_rate_sum,
@@ -3191,6 +3198,45 @@
     }
 #endif  // CONFIG_COLLECT_RD_STATS == 1
 
+#if COLLECT_TX_SIZE_DATA
+    const int mi_row = -xd->mb_to_top_edge >> (3 + MI_SIZE_LOG2);
+    const int mi_col = -xd->mb_to_left_edge >> (3 + MI_SIZE_LOG2);
+    const int within_border =
+        mi_row >= xd->tile.mi_row_start &&
+        (mi_row + mi_size_high[plane_bsize] < xd->tile.mi_row_end) &&
+        mi_col >= xd->tile.mi_col_start &&
+        (mi_col + mi_size_wide[plane_bsize] < xd->tile.mi_col_end);
+
+    FILE *fp = NULL;
+
+    if (within_border) {
+      fp = fopen(av1_tx_size_data_output_file, "a");
+    }
+
+    if (fp) {
+      // Transform info and RD
+      const int txb_w = tx_size_wide[tx_size];
+      const int txb_h = tx_size_high[tx_size];
+
+      // Residue signal.
+      const int diff_stride = block_size_wide[plane_bsize];
+      struct macroblock_plane *const p = &x->plane[plane];
+      const int16_t *src_diff =
+          &p->src_diff[(blk_row * diff_stride + blk_col) * 4];
+
+      for (int r = 0; r < txb_h; ++r) {
+        for (int c = 0; c < txb_w; ++c) {
+          fprintf(fp, "%d,", src_diff[c]);
+        }
+        src_diff += diff_stride;
+      }
+
+      fprintf(fp, "%d,%d,%d,%" PRId64, txb_w, txb_h, tx_type, rd);
+      fprintf(fp, "\n");
+      fclose(fp);
+    }
+#endif  // COLLECT_TX_SIZE_DATA
+
     if (cpi->sf.adaptive_txb_search_level) {
       if ((best_rd - (best_rd >> cpi->sf.adaptive_txb_search_level)) >
           ref_best_rd) {