Refactor the ext-tx experiment

Use common structure for inter and intra tx type information when
possible.

Change-Id: I1fd3bc86033871ffbcc2b496a31dca00b7d64b31
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index 00501eb..b19332a 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -2468,10 +2468,12 @@
         const int eset =
             get_ext_tx_set(supertx_size, bsize, 1, cm->reduced_tx_set_used);
         if (eset > 0) {
+          const TxSetType tx_set_type = get_ext_tx_set_type(
+              supertx_size, bsize, 1, cm->reduced_tx_set_used);
           const int packed_sym =
               aom_read_symbol(r, ec_ctx->inter_ext_tx_cdf[eset][supertx_size],
-                              ext_tx_cnt_inter[eset], ACCT_STR);
-          txfm = av1_ext_tx_inter_inv[eset][packed_sym];
+                              av1_num_ext_tx_set[tx_set_type], ACCT_STR);
+          txfm = av1_ext_tx_inv[tx_set_type][packed_sym];
           if (xd->counts) ++xd->counts->inter_ext_tx[eset][supertx_size][txfm];
         }
       }
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index dc8eff7..f293f81 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -985,6 +985,8 @@
         !supertx_enabled &&
 #endif  // CONFIG_SUPERTX
         !segfeature_active(&cm->seg, mbmi->segment_id, SEG_LVL_SKIP)) {
+      const TxSetType tx_set_type = get_ext_tx_set_type(
+          tx_size, mbmi->sb_type, inter_block, cm->reduced_tx_set_used);
       const int eset = get_ext_tx_set(tx_size, mbmi->sb_type, inter_block,
                                       cm->reduced_tx_set_used);
       // eset == 0 should correspond to a set with only DCT_DCT and
@@ -993,14 +995,14 @@
       FRAME_COUNTS *counts = xd->counts;
 
       if (inter_block) {
-        *tx_type = av1_ext_tx_inter_inv[eset][aom_read_symbol(
+        *tx_type = av1_ext_tx_inv[tx_set_type][aom_read_symbol(
             r, ec_ctx->inter_ext_tx_cdf[eset][square_tx_size],
-            ext_tx_cnt_inter[eset], ACCT_STR)];
+            av1_num_ext_tx_set[tx_set_type], ACCT_STR)];
         if (counts) ++counts->inter_ext_tx[eset][square_tx_size][*tx_type];
       } else if (ALLOW_INTRA_EXT_TX) {
-        *tx_type = av1_ext_tx_intra_inv[eset][aom_read_symbol(
+        *tx_type = av1_ext_tx_inv[tx_set_type][aom_read_symbol(
             r, ec_ctx->intra_ext_tx_cdf[eset][square_tx_size][mbmi->mode],
-            ext_tx_cnt_intra[eset], ACCT_STR)];
+            av1_num_ext_tx_set[tx_set_type], ACCT_STR)];
         if (counts)
           ++counts->intra_ext_tx[eset][square_tx_size][mbmi->mode][*tx_type];
       }
diff --git a/av1/decoder/decoder.c b/av1/decoder/decoder.c
index d983a0f..ded933e 100644
--- a/av1/decoder/decoder.c
+++ b/av1/decoder/decoder.c
@@ -55,13 +55,10 @@
     av1_indices_from_tree(av1_switchable_interp_ind, av1_switchable_interp_inv,
                           av1_switchable_interp_tree);
 #if CONFIG_EXT_TX
-    int s;
-    for (s = 1; s < EXT_TX_SETS_INTRA; ++s)
-      av1_indices_from_tree(av1_ext_tx_intra_ind[s], av1_ext_tx_intra_inv[s],
-                            av1_ext_tx_intra_tree[s]);
-    for (s = 1; s < EXT_TX_SETS_INTER; ++s)
-      av1_indices_from_tree(av1_ext_tx_inter_ind[s], av1_ext_tx_inter_inv[s],
-                            av1_ext_tx_inter_tree[s]);
+    for (int s = 1; s < EXT_TX_SET_TYPES; ++s) {
+      av1_indices_from_tree(av1_ext_tx_ind[s], av1_ext_tx_inv[s],
+                            av1_ext_tx_tree[s]);
+    }
 #else
     av1_indices_from_tree(av1_ext_tx_ind, av1_ext_tx_inv, av1_ext_tx_tree);
 #endif