diff --git a/vp10/decoder/decodeframe.c b/vp10/decoder/decodeframe.c
index f2f8ebbab7d0bce4881bcd254c666bae2c12abce..4c2054a624fda3378530fc9496ded34c118ab04a 100644
--- a/vp10/decoder/decodeframe.c
+++ b/vp10/decoder/decodeframe.c
@@ -3387,11 +3387,11 @@ static void read_global_motion_params(Global_Motion_Params *params,
     case GLOBAL_AFFINE:
       params->motion_params.wmmat[4] =
           (vp10_read_primitive_symmetric(r, GM_ABS_ALPHA_BITS) *
-           GM_ALPHA_DECODE_FACTOR) +
-          (1 << WARPEDMODEL_PREC_BITS);
+           GM_ALPHA_DECODE_FACTOR);
       params->motion_params.wmmat[5] =
           vp10_read_primitive_symmetric(r, GM_ABS_ALPHA_BITS) *
-          GM_ALPHA_DECODE_FACTOR;
+          GM_ALPHA_DECODE_FACTOR +
+          (1 << WARPEDMODEL_PREC_BITS);
     // fallthrough intended
     case GLOBAL_ROTZOOM:
       params->motion_params.wmmat[2] =
diff --git a/vp10/encoder/bitstream.c b/vp10/encoder/bitstream.c
index d5bf02c349b0ac0a4638f5347da454066422673e..81d8991f66e6144acbb7fad91246d67d7cf3da5f 100644
--- a/vp10/encoder/bitstream.c
+++ b/vp10/encoder/bitstream.c
@@ -3155,11 +3155,11 @@ static void write_global_motion_params(Global_Motion_Params *params,
     case GLOBAL_ZERO: break;
     case GLOBAL_AFFINE:
       vp10_write_primitive_symmetric(
-          w, (params->motion_params.wmmat[4] * GM_ALPHA_ENCODE_FACTOR) -
-                 (1 << GM_ALPHA_PREC_BITS),
+          w, params->motion_params.wmmat[4] * GM_ALPHA_ENCODE_FACTOR,
           GM_ABS_ALPHA_BITS);
       vp10_write_primitive_symmetric(
-          w, params->motion_params.wmmat[5] * GM_ALPHA_ENCODE_FACTOR,
+          w, (params->motion_params.wmmat[5] * GM_ALPHA_ENCODE_FACTOR) -
+                 (1 << GM_ALPHA_PREC_BITS),
           GM_ABS_ALPHA_BITS);
     // fallthrough intended
     case GLOBAL_ROTZOOM: