diff --git a/av1/common/entropy.h b/av1/common/entropy.h
index 87277fa..8c1fa1d 100644
--- a/av1/common/entropy.h
+++ b/av1/common/entropy.h
@@ -201,7 +201,6 @@
    distinct bands). */
 
 #define COEFF_CONTEXTS 6
-#define BLOCKZ_CONTEXTS 3
 #define COEFF_CONTEXTS0 3  // for band 0
 #define BAND_COEFF_CONTEXTS(band) \
   ((band) == 0 ? COEFF_CONTEXTS0 : COEFF_CONTEXTS)
@@ -254,8 +253,6 @@
 
 typedef aom_cdf_prob coeff_cdf_model[REF_TYPES][COEF_BANDS][COEFF_CONTEXTS]
                                     [CDF_SIZE(ENTROPY_TOKENS)];
-typedef aom_prob av1_blockz_probs_model[REF_TYPES][BLOCKZ_CONTEXTS];
-typedef unsigned int av1_blockz_count_model[REF_TYPES][BLOCKZ_CONTEXTS][2];
 extern const aom_cdf_prob av1_pareto8_token_probs[COEFF_PROB_MODELS]
                                                  [ENTROPY_TOKENS - 2];
 extern const aom_cdf_prob av1_pareto8_tail_probs[COEFF_PROB_MODELS]
diff --git a/av1/common/entropymode.h b/av1/common/entropymode.h
index 6651008..02dc5b4 100644
--- a/av1/common/entropymode.h
+++ b/av1/common/entropymode.h
@@ -446,8 +446,6 @@
 #endif  // CONFIG_CTX1D
 #endif  // CONFIG_LV_MAP
 
-  av1_blockz_count_model blockz_count[TX_SIZES][PLANE_TYPES];
-
   unsigned int newmv_mode[NEWMV_MODE_CONTEXTS][2];
   unsigned int zeromv_mode[ZEROMV_MODE_CONTEXTS][2];
   unsigned int refmv_mode[REFMV_MODE_CONTEXTS][2];
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index d33135f..cf7117f 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -5265,8 +5265,6 @@
 #endif
   assert(!memcmp(cm->counts.partition, zero_counts.partition,
                  sizeof(cm->counts.partition)));
-  assert(!memcmp(cm->counts.blockz_count, zero_counts.blockz_count,
-                 sizeof(cm->counts.blockz_count)));
   assert(!memcmp(cm->counts.switchable_interp, zero_counts.switchable_interp,
                  sizeof(cm->counts.switchable_interp)));
 #if CONFIG_EXT_INTER
diff --git a/av1/encoder/tokenize.c b/av1/encoder/tokenize.c
index 0836f6c..a2e24d6 100644
--- a/av1/encoder/tokenize.c
+++ b/av1/encoder/tokenize.c
@@ -526,8 +526,6 @@
   aom_cdf_prob(
       *const coef_tail_cdfs)[COEFF_CONTEXTS][CDF_SIZE(ENTROPY_TOKENS)] =
       ec_ctx->coef_tail_cdfs[txsize_sqr_map[tx_size]][type][ref];
-  unsigned int(*const blockz_count)[2] =
-      td->counts->blockz_count[txsize_sqr_map[tx_size]][type][ref];
   int eob_val;
   int first_val = 1;
   const int seg_eob = av1_get_tx_eob(&cpi->common.seg, segment_id, tx_size);
@@ -550,8 +548,6 @@
     add_token(&t, &coef_tail_cdfs[band[c]][pt], &coef_head_cdfs[band[c]][pt], 1,
               1, 0, BLOCK_Z_TOKEN);
 
-  ++blockz_count[pt][eob != 0];
-
   while (c < eob) {
     int v = qcoeff[scan[c]];
     first_val = (c == 0);
