diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 0cfbece..b8d8533 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -1201,12 +1201,17 @@
 
 void av1_setup_block_planes(MACROBLOCKD *xd, int ss_x, int ss_y);
 
-static INLINE int tx_size_to_depth(TX_SIZE tx_size) {
-  return (int)(tx_size - TX_SIZE_LUMA_MIN);
+static INLINE int tx_size_cat_to_max_depth(int tx_size_cat) {
+  return AOMMIN(tx_size_cat + 1, MAX_TX_DEPTH);
 }
 
-static INLINE TX_SIZE depth_to_tx_size(int depth) {
-  return (TX_SIZE)(depth + TX_SIZE_LUMA_MIN);
+static INLINE int tx_size_to_depth(TX_SIZE tx_size, int tx_size_cat) {
+  return (int)(tx_size_cat + 1 - (int)tx_size);
+}
+
+static INLINE TX_SIZE depth_to_tx_size(int depth, int tx_size_cat) {
+  assert(tx_size_cat + 1 - depth >= 0 && tx_size_cat + 1 - depth < TX_SIZES);
+  return (TX_SIZE)(tx_size_cat + 1 - depth);
 }
 
 static INLINE TX_SIZE av1_get_uv_tx_size(const MB_MODE_INFO *mbmi,
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index 92bc02e..6f4d862 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -1757,15 +1757,31 @@
 #endif
 
 static const aom_cdf_prob
-    default_tx_size_cdf[MAX_TX_DEPTH][TX_SIZE_CONTEXTS][CDF_SIZE(MAX_TX_DEPTH +
-                                                                 1)] = {
-      { { AOM_CDF2(12800) }, { AOM_CDF2(8448) } },
-      { { AOM_CDF3(2560, 20496) }, { AOM_CDF3(1920, 14091) } },
-      { { AOM_CDF4(384, 17588, 19782) }, { AOM_CDF4(640, 7166, 8466) } },
+    default_tx_size_cdf[MAX_TX_CATS][TX_SIZE_CONTEXTS][CDF_SIZE(MAX_TX_DEPTH +
+                                                                1)] = {
+#if MAX_TX_DEPTH == 2
+      { { AOM_CDF2(19968) }, { AOM_CDF2(24320) } },
+      { { AOM_CDF3(12272, 30172) }, { AOM_CDF3(18677, 30848) } },
+      { { AOM_CDF3(12986, 15180) }, { AOM_CDF3(24302, 25602) } },
 #if CONFIG_TX64X64
-      { { AOM_CDF5(128, 8288, 21293, 26986) },
-        { AOM_CDF5(128, 4208, 10009, 15965) } },
-#endif
+      { { AOM_CDF3(5782, 11475) }, { AOM_CDF3(16803, 22759) } },
+#endif  // CONFIG_TX64X64
+#elif MAX_TX_DEPTH == 3
+      { { AOM_CDF2(19968) }, { AOM_CDF2(24320) } },
+      { { AOM_CDF3(12272, 30172) }, { AOM_CDF3(18677, 30848) } },
+      { { AOM_CDF4(12986, 15180, 32384) }, { AOM_CDF4(24302, 25602, 32128) } },
+#if CONFIG_TX64X64
+      { { AOM_CDF4(5782, 11475, 24480) }, { AOM_CDF4(16803, 22759, 28560) } },
+#endif  // CONFIG_TX64X64
+#else
+      { { AOM_CDF2(19968) }, { AOM_CDF2(24320) } },
+      { { AOM_CDF3(12272, 30172) }, { AOM_CDF3(18677, 30848) } },
+      { { AOM_CDF4(12986, 15180, 32384) }, { AOM_CDF4(24302, 25602, 32128) } },
+#if CONFIG_TX64X64
+      { { AOM_CDF5(5782, 11475, 24480, 32640) },
+        { AOM_CDF5(16803, 22759, 28560, 32640) } },
+#endif  // CONFIG_TX64X64
+#endif  // MAX_TX_DEPTH == 2
     };
 
 static const aom_cdf_prob
diff --git a/av1/common/entropymode.h b/av1/common/entropymode.h
index 5cd8a84..618b86d 100644
--- a/av1/common/entropymode.h
+++ b/av1/common/entropymode.h
@@ -326,7 +326,7 @@
                               [CDF_SIZE(2 * MAX_ANGLE_DELTA + 1)];
 #endif  // CONFIG_EXT_INTRA_MOD
 
-  aom_cdf_prob tx_size_cdf[MAX_TX_DEPTH][TX_SIZE_CONTEXTS]
+  aom_cdf_prob tx_size_cdf[MAX_TX_CATS][TX_SIZE_CONTEXTS]
                           [CDF_SIZE(MAX_TX_DEPTH + 1)];
   aom_cdf_prob delta_q_cdf[CDF_SIZE(DELTA_Q_PROBS + 1)];
 #if CONFIG_EXT_DELTA_Q
diff --git a/av1/common/enums.h b/av1/common/enums.h
index e883103..71083e9 100644
--- a/av1/common/enums.h
+++ b/av1/common/enums.h
@@ -246,7 +246,9 @@
    one more than the minimum. */
 #define TX_SIZE_CTX_MIN (TX_SIZE_LUMA_MIN + 1)
 
-#define MAX_TX_DEPTH (TX_SIZES - TX_SIZE_CTX_MIN)
+// Maximum tx_size categories
+#define MAX_TX_CATS (TX_SIZES - TX_SIZE_CTX_MIN)
+#define MAX_TX_DEPTH 2
 
 #define MAX_TX_SIZE_LOG2 (5 + CONFIG_TX64X64)
 #define MAX_TX_SIZE (1 << MAX_TX_SIZE_LOG2)
