NEW_MULTISYMBOL: support RECT_TX_EXT.

Change-Id: I0b6f56d2bf0482cfbf45525828d6daa6aea187e5
diff --git a/av1/common/entropy.c b/av1/common/entropy.c
index 01d5452..3ac9c82 100644
--- a/av1/common/entropy.c
+++ b/av1/common/entropy.c
@@ -2309,6 +2309,9 @@
 #if CONFIG_NEW_MULTISYMBOL
   AVERAGE_TILE_CDFS(palette_y_mode_cdf)
   AVERAGE_TILE_CDFS(palette_uv_mode_cdf)
+#if CONFIG_RECT_TX_EXT && (CONFIG_EXT_TX || CONFIG_VAR_TX)
+  AVERAGE_TILE_CDFS(quarter_tx_size_cdf)
+#endif
 #endif
 }
 
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index f646a45..0cdbc13 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -2484,6 +2484,11 @@
 
 #if CONFIG_RECT_TX_EXT && (CONFIG_EXT_TX || CONFIG_VAR_TX)
 static const aom_prob default_quarter_tx_size_prob = 192;
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob default_quarter_tx_size_cdf[CDF_SIZE(2)] = {
+  AOM_ICDF(192 * 128), AOM_ICDF(32768), 0
+};
+#endif
 #endif
 
 #if CONFIG_LOOP_RESTORATION
@@ -5583,6 +5588,9 @@
 #endif  // CONFIG_COMPOUND_SINGLEREF
 #if CONFIG_RECT_TX_EXT && (CONFIG_EXT_TX || CONFIG_VAR_TX)
   fc->quarter_tx_size_prob = default_quarter_tx_size_prob;
+#if CONFIG_NEW_MULTISYMBOL
+  av1_copy(fc->quarter_tx_size_cdf, default_quarter_tx_size_cdf);
+#endif  // CONFIG_NEW_MULTISYMBOL
 #endif
 #if CONFIG_VAR_TX
   av1_copy(fc->txfm_partition_prob, default_txfm_partition_probs);
diff --git a/av1/common/entropymode.h b/av1/common/entropymode.h
index fbebf15..8233001 100644
--- a/av1/common/entropymode.h
+++ b/av1/common/entropymode.h
@@ -309,6 +309,9 @@
 #endif  // CONFIG_COMPOUND_SINGLEREF
 #if CONFIG_RECT_TX_EXT && (CONFIG_EXT_TX || CONFIG_VAR_TX)
   aom_prob quarter_tx_size_prob;
+#if CONFIG_NEW_MULTISYMBOL
+  aom_cdf_prob quarter_tx_size_cdf[CDF_SIZE(2)];
+#endif
 #endif
 #if CONFIG_VAR_TX
   aom_prob txfm_partition_prob[TXFM_PARTITION_CONTEXTS];
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index ba15a8c..70cadf0 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -551,10 +551,14 @@
           int quarter_tx;
 
           if (quarter_txsize_lookup[bsize] != max_txsize_lookup[bsize]) {
+#if CONFIG_NEW_MULTISYMBOL
+            quarter_tx =
+                aom_read_symbol(r, cm->fc->quarter_tx_size_cdf, 2, ACCT_STR);
+#else
             quarter_tx = aom_read(r, cm->fc->quarter_tx_size_prob, ACCT_STR);
             FRAME_COUNTS *counts = xd->counts;
-
             if (counts) ++counts->quarter_tx_size[quarter_tx];
+#endif
           } else {
             quarter_tx = 1;
           }
@@ -2970,8 +2974,13 @@
         int quarter_tx;
 
         if (quarter_txsize_lookup[bsize] != max_tx_size) {
+#if CONFIG_NEW_MULTISYMBOL
+          quarter_tx =
+              aom_read_symbol(r, cm->fc->quarter_tx_size_cdf, 2, ACCT_STR);
+#else
           quarter_tx = aom_read(r, cm->fc->quarter_tx_size_prob, ACCT_STR);
           if (xd->counts) ++xd->counts->quarter_tx_size[quarter_tx];
+#endif
         } else {
           quarter_tx = 1;
         }
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 9ec5e1f..42d92cc 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -381,9 +381,14 @@
                      tx_size_cat + 2);
 #if CONFIG_RECT_TX_EXT && (CONFIG_EXT_TX || CONFIG_VAR_TX)
     if (is_quarter_tx_allowed(xd, mbmi, is_inter) && tx_size != coded_tx_size)
+#if CONFIG_NEW_MULTISYMBOL
+      aom_write_symbol(w, tx_size == quarter_txsize_lookup[bsize],
+                       cm->fc->quarter_tx_size_cdf, 2);
+#else
       aom_write(w, tx_size == quarter_txsize_lookup[bsize],
                 cm->fc->quarter_tx_size_prob);
 #endif
+#endif
   }
 }
 
@@ -1791,8 +1796,13 @@
           quarter_txsize_lookup[bsize] != max_tx_size &&
           (mbmi->tx_size == quarter_txsize_lookup[bsize] ||
            mbmi->tx_size == max_tx_size)) {
+#if CONFIG_NEW_MULTISYMBOL
+        aom_write_symbol(w, mbmi->tx_size != max_tx_size,
+                         cm->fc->quarter_tx_size_cdf, 2);
+#else
         aom_write(w, mbmi->tx_size != max_tx_size,
                   cm->fc->quarter_tx_size_prob);
+#endif
       }
 #endif
     } else {