diff --git a/av1/common/mv.h b/av1/common/mv.h
index 2878005..e04b45f 100644
--- a/av1/common/mv.h
+++ b/av1/common/mv.h
@@ -379,7 +379,7 @@
 
 #define SUBEXPFIN_K 3
 
-#if CONFIG_EXTENDED_WARP_PREDICTION
+#if CONFIG_EXTENDED_WARP_PREDICTION || CONFIG_IMPROVED_GLOBAL_MOTION
 #define GM_TRANS_PREC_BITS 3
 #define GM_ABS_TRANS_BITS 14
 #define GM_ABS_TRANS_ONLY_BITS (GM_ABS_TRANS_BITS - GM_TRANS_PREC_BITS + 3)
@@ -392,7 +392,11 @@
 #if CONFIG_EXT_WARP_FILTER
 #define GM_ABS_ALPHA_BITS 9
 #else
+#if CONFIG_IMPROVED_GLOBAL_MOTION
+#define GM_ABS_ALPHA_BITS 8
+#else
 #define GM_ABS_ALPHA_BITS 7
+#endif  // CONFIG_IMPROVED_GLOBAL_MOTION
 #endif  // CONFIG_EXT_WARP_FILTER
 #define GM_ALPHA_PREC_DIFF (WARPEDMODEL_PREC_BITS - GM_ALPHA_PREC_BITS)
 #define GM_ALPHA_DECODE_FACTOR (1 << GM_ALPHA_PREC_DIFF)
@@ -409,7 +413,7 @@
 #define GM_ABS_ALPHA_BITS 12
 #define GM_ALPHA_PREC_DIFF (WARPEDMODEL_PREC_BITS - GM_ALPHA_PREC_BITS)
 #define GM_ALPHA_DECODE_FACTOR (1 << GM_ALPHA_PREC_DIFF)
-#endif  // CONFIG_EXTENDED_WARP_PREDICTION
+#endif  // CONFIG_EXTENDED_WARP_PREDICTION || CONFIG_IMPROVED_GLOBAL_MOTION
 
 #define GM_ROW3HOMO_PREC_BITS 16
 #define GM_ABS_ROW3HOMO_BITS 11
@@ -417,7 +421,11 @@
   (WARPEDMODEL_ROW3HOMO_PREC_BITS - GM_ROW3HOMO_PREC_BITS)
 #define GM_ROW3HOMO_DECODE_FACTOR (1 << GM_ROW3HOMO_PREC_DIFF)
 
+#if CONFIG_IMPROVED_GLOBAL_MOTION
+#define GM_TRANS_MAX ((1 << GM_ABS_TRANS_BITS) - 1)
+#else
 #define GM_TRANS_MAX (1 << GM_ABS_TRANS_BITS)
+#endif  // CONFIG_IMPROVED_GLOBAL_MOTION
 #if CONFIG_EXT_WARP_FILTER
 #define GM_ALPHA_MAX ((1 << GM_ABS_ALPHA_BITS) - 1)
 #else
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index 6836712..0a4a5ea 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -6151,9 +6151,9 @@
 
   if (type >= TRANSLATION) {
 #if CONFIG_IMPROVED_GLOBAL_MOTION
-    const int trans_bits = GM_ABS_TRANS_BITS;
     const int trans_dec_factor = GM_TRANS_DECODE_FACTOR;
     const int trans_prec_diff = GM_TRANS_PREC_DIFF;
+    const int trans_max = GM_TRANS_MAX;
 #else
     const int trans_bits = (type == TRANSLATION)
 #if CONFIG_FLEX_MVRES
@@ -6177,14 +6177,15 @@
                                     ? GM_TRANS_ONLY_PREC_DIFF + !allow_hp
 #endif
                                     : GM_TRANS_PREC_DIFF;
+    const int trans_max = (1 << trans_bits);
 #endif  // CONFIG_IMPROVED_GLOBAL_MOTION
 
     params->wmmat[0] = aom_rb_read_signed_primitive_refsubexpfin(
-                           rb, (1 << trans_bits) + 1, SUBEXPFIN_K,
+                           rb, trans_max + 1, SUBEXPFIN_K,
                            (ref_params->wmmat[0] >> trans_prec_diff)) *
                        trans_dec_factor;
     params->wmmat[1] = aom_rb_read_signed_primitive_refsubexpfin(
-                           rb, (1 << trans_bits) + 1, SUBEXPFIN_K,
+                           rb, trans_max + 1, SUBEXPFIN_K,
                            (ref_params->wmmat[1] >> trans_prec_diff)) *
                        trans_dec_factor;
   }
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index afc3c26..eda9230 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -4548,8 +4548,8 @@
 
   if (type >= TRANSLATION) {
 #if CONFIG_IMPROVED_GLOBAL_MOTION
-    const int trans_bits = GM_ABS_TRANS_BITS;
     const int trans_prec_diff = GM_TRANS_PREC_DIFF;
+    const int trans_max = GM_TRANS_MAX;
 #else
 #if CONFIG_FLEX_MVRES
     const int trans_bits = (type == TRANSLATION)
@@ -4566,14 +4566,15 @@
                                     ? GM_TRANS_ONLY_PREC_DIFF + !allow_hp
                                     : GM_TRANS_PREC_DIFF;
 #endif  // CONFIG_FLEX_MVRES
+    const int trans_max = (1 << trans_bits);
 #endif  // CONFIG_IMPROVED_GLOBAL_MOTION
 
     aom_wb_write_signed_primitive_refsubexpfin(
-        wb, (1 << trans_bits) + 1, SUBEXPFIN_K,
+        wb, trans_max + 1, SUBEXPFIN_K,
         (ref_params->wmmat[0] >> trans_prec_diff),
         (params->wmmat[0] >> trans_prec_diff));
     aom_wb_write_signed_primitive_refsubexpfin(
-        wb, (1 << trans_bits) + 1, SUBEXPFIN_K,
+        wb, trans_max + 1, SUBEXPFIN_K,
         (ref_params->wmmat[1] >> trans_prec_diff),
         (params->wmmat[1] >> trans_prec_diff));
   }
diff --git a/av1/encoder/global_motion_facade.c b/av1/encoder/global_motion_facade.c
index 648ca60..1728311 100644
--- a/av1/encoder/global_motion_facade.c
+++ b/av1/encoder/global_motion_facade.c
@@ -45,6 +45,7 @@
 #if CONFIG_IMPROVED_GLOBAL_MOTION
   const int trans_bits = GM_ABS_TRANS_BITS;
   const int trans_prec_diff = GM_TRANS_PREC_DIFF;
+  const int trans_max = (1 << trans_bits) - 1;
 #else
   const int trans_bits = (gm->wmtype == TRANSLATION)
 #if CONFIG_FLEX_MVRES
@@ -60,6 +61,7 @@
                                   ? GM_TRANS_ONLY_PREC_DIFF + !allow_hp
 #endif
                                   : GM_TRANS_PREC_DIFF;
+  const int trans_max = (1 << trans_bits);
 #endif  // CONFIG_IMPROVED_GLOBAL_MOTION
 
   switch (gm->wmtype) {
@@ -85,12 +87,10 @@
             (gm->wmmat[5] >> GM_ALPHA_PREC_DIFF) - (1 << GM_ALPHA_PREC_BITS));
       }
       params_cost += aom_count_signed_primitive_refsubexpfin(
-          (1 << trans_bits) + 1, SUBEXPFIN_K,
-          (ref_gm->wmmat[0] >> trans_prec_diff),
+          trans_max + 1, SUBEXPFIN_K, (ref_gm->wmmat[0] >> trans_prec_diff),
           (gm->wmmat[0] >> trans_prec_diff));
       params_cost += aom_count_signed_primitive_refsubexpfin(
-          (1 << trans_bits) + 1, SUBEXPFIN_K,
-          (ref_gm->wmmat[1] >> trans_prec_diff),
+          trans_max + 1, SUBEXPFIN_K, (ref_gm->wmmat[1] >> trans_prec_diff),
           (gm->wmmat[1] >> trans_prec_diff));
       AOM_FALLTHROUGH_INTENDED;
     case IDENTITY: break;
