diff --git a/av1/common/entropy.h b/av1/common/entropy.h
index 94157e4..51803db 100644
--- a/av1/common/entropy.h
+++ b/av1/common/entropy.h
@@ -414,7 +414,11 @@
 #define COEF_MAX_UPDATE_FACTOR_AFTER_KEY 128
 
 #if CONFIG_ADAPT_SCAN
-#define ADAPT_SCAN_UPDATE_RATE_16 (1 << 13)
+#define ADAPT_SCAN_PROB_PRECISION 16
+// 1/8 update rate
+#define ADAPT_SCAN_UPDATE_LOG_RATE 3
+#define ADAPT_SCAN_UPDATE_RATE \
+  (1 << (ADAPT_SCAN_PROB_PRECISION - ADAPT_SCAN_UPDATE_LOG_RATE))
 #endif
 
 static INLINE aom_prob av1_merge_probs(aom_prob pre_prob,
diff --git a/av1/common/scan.c b/av1/common/scan.c
index a0881a9..2076c8b 100644
--- a/av1/common/scan.c
+++ b/av1/common/scan.c
@@ -6605,7 +6605,7 @@
 }
 
 static void update_scan_prob(AV1_COMMON *cm, TX_SIZE tx_size, TX_TYPE tx_type,
-                             int rate_16) {
+                             int rate) {
   FRAME_CONTEXT *pre_fc = cm->pre_fc;
   uint32_t *prev_non_zero_prob = get_non_zero_prob(pre_fc, tx_size, tx_type);
   uint32_t *non_zero_prob = get_non_zero_prob(cm->fc, tx_size, tx_type);
@@ -6615,13 +6615,18 @@
   int i;
   for (i = 0; i < tx2d_size; i++) {
     int64_t curr_prob =
-        block_num == 0 ? 0 : (non_zero_count[i] << 16) / block_num;
+        block_num == 0
+            ? 0
+            : (non_zero_count[i] << ADAPT_SCAN_PROB_PRECISION) / block_num;
     int64_t prev_prob = prev_non_zero_prob[i];
     int64_t pred_prob =
-        (curr_prob * rate_16 + prev_prob * ((1 << 16) - rate_16)) >> 16;
+        (curr_prob * rate +
+         prev_prob * ((1 << ADAPT_SCAN_PROB_PRECISION) - rate)) >>
+        ADAPT_SCAN_PROB_PRECISION;
     // TODO(angiebird): reduce the bit usage of probabilities and remove
     // clamp_64()
-    non_zero_prob[i] = clamp_64(pred_prob, 0, UINT16_MAX);
+    non_zero_prob[i] =
+        clamp_64(pred_prob, 0, (1 << ADAPT_SCAN_PROB_PRECISION) - 1);
   }
 }
 
@@ -6840,7 +6845,7 @@
 #endif  // CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX)
     TX_TYPE tx_type;
     for (tx_type = DCT_DCT; tx_type < TX_TYPES; ++tx_type) {
-      update_scan_prob(cm, tx_size, tx_type, ADAPT_SCAN_UPDATE_RATE_16);
+      update_scan_prob(cm, tx_size, tx_type, ADAPT_SCAN_UPDATE_RATE);
       update_scan_order_facade(cm, tx_size, tx_type);
       update_eob_threshold(cm, tx_size, tx_type);
     }
