update_txk_array: always store tx_type as 16x16 units

This aligns it with the related fix in av1_read_coeffs_txb_facade() for decoder in commit 9760eebfc8538590db43dde829fa53b6ca1a1a75.

For issue https://gitlab.com/AOMediaCodec/avm/-/issues/459
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 4f1543a..7b537ed 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -3450,22 +3450,14 @@
 static INLINE void update_txk_array(MACROBLOCKD *const xd, int blk_row,
                                     int blk_col, TX_SIZE tx_size,
                                     TX_TYPE tx_type) {
-  const int stride = xd->tx_type_map_stride;
-  xd->tx_type_map[blk_row * stride + blk_col] = tx_type;
-
   const int txw = tx_size_wide_unit[tx_size];
   const int txh = tx_size_high_unit[tx_size];
-  // The 16x16 unit is due to the constraint from tx_64x64 which sets the
-  // maximum tx size for chroma as 32x32. Coupled with 4x1 transform block
-  // size, the constraint takes effect in 32x16 / 16x32 size too. To solve
-  // the intricacy, cover all the 16x16 units inside a 64 level transform.
-  if (txw == tx_size_wide_unit[TX_64X64] ||
-      txh == tx_size_high_unit[TX_64X64]) {
-    const int tx_unit = tx_size_wide_unit[TX_16X16];
-    for (int idy = 0; idy < txh; idy += tx_unit) {
-      for (int idx = 0; idx < txw; idx += tx_unit) {
-        xd->tx_type_map[(blk_row + idy) * stride + blk_col + idx] = tx_type;
-      }
+  // This covers all the 16x16 units copy inside a 64 or 32 level transform.
+  const int tx_unit = tx_size_wide_unit[TX_16X16];
+  const int stride = xd->tx_type_map_stride;
+  for (int idy = 0; idy < txh; idy += tx_unit) {
+    for (int idx = 0; idx < txw; idx += tx_unit) {
+      xd->tx_type_map[(blk_row + idy) * stride + blk_col + idx] = tx_type;
     }
   }
 }
diff --git a/av1/decoder/decodetxb.c b/av1/decoder/decodetxb.c
index 7c7e7f6..d19d293 100644
--- a/av1/decoder/decodetxb.c
+++ b/av1/decoder/decodetxb.c
@@ -1328,21 +1328,10 @@
   }
   av1_set_entropy_contexts(xd, pd, plane, plane_bsize, tx_size, cul_level, col,
                            row);
-  if (is_inter_block(mbmi, xd->tree_type)) {
+  if (is_inter_block(mbmi, xd->tree_type) && (plane == 0)) {
     const TX_TYPE tx_type_inter = av1_get_tx_type(
         xd, plane_type, row, col, tx_size, cm->features.reduced_tx_set_used);
-    if (plane == 0) {
-      const int txw = tx_size_wide_unit[tx_size];
-      const int txh = tx_size_high_unit[tx_size];
-      // This covers all the 16x16 units copy inside a 64 or 32 level transform.
-      const int tx_unit = tx_size_wide_unit[TX_16X16];
-      const int stride = xd->tx_type_map_stride;
-      for (int idy = 0; idy < txh; idy += tx_unit) {
-        for (int idx = 0; idx < txw; idx += tx_unit) {
-          xd->tx_type_map[(row + idy) * stride + col + idx] = tx_type_inter;
-        }
-      }
-    }
+    update_txk_array(xd, row, col, tx_size, tx_type_inter);
   }
 
 #if TXCOEFF_TIMER