]> granicus.if.org Git - libvpx/commitdiff
Change order of warped motion parameters
authorsarahparker <sarahparker@google.com>
Mon, 18 Jul 2016 23:40:06 +0000 (16:40 -0700)
committerSarah Parker <sarahparker@google.com>
Tue, 19 Jul 2016 18:04:29 +0000 (11:04 -0700)
This makes it easier to interface between global motion and warped motion

Change-Id: I850e0a383969a1973f03fb207f100713cda6bb51

vp10/common/warped_motion.c
vp10/decoder/decodeframe.c

index 3b924ea0668e4353c67bb4e2440f00c7ecd53fef..bb61c08baf6eef958e8e5772351ef323e5a6323a 100644 (file)
@@ -116,19 +116,19 @@ void projectPointsRotZoom(int *mat, int *points, int *proj,
     const int x = *(points++), y = *(points++);
     if (subsampling_x)
       *(proj++) = ROUND_POWER_OF_TWO_SIGNED(
-          mat[0] * 2 * x + mat[1] * 2 * y + mat[2] +
-          (mat[0] + mat[1] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
+          mat[2] * 2 * x + mat[3] * 2 * y + mat[0] +
+          (mat[2] + mat[3] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
           WARPEDDIFF_PREC_BITS + 1);
     else
-      *(proj++) = ROUND_POWER_OF_TWO_SIGNED(mat[0] * x + mat[1] * y + mat[2],
+      *(proj++) = ROUND_POWER_OF_TWO_SIGNED(mat[2] * x + mat[3] * y + mat[0],
                                             WARPEDDIFF_PREC_BITS);
     if (subsampling_y)
       *(proj++) = ROUND_POWER_OF_TWO_SIGNED(
-          -mat[1] * 2 * x + mat[0] * 2 * y + mat[3] +
-          (-mat[1] + mat[0] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
+          -mat[3] * 2 * x + mat[2] * 2 * y + mat[1] +
+          (-mat[3] + mat[2] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
           WARPEDDIFF_PREC_BITS + 1);
     else
-      *(proj++) = ROUND_POWER_OF_TWO_SIGNED(-mat[1] * x + mat[0] * y + mat[3],
+      *(proj++) = ROUND_POWER_OF_TWO_SIGNED(-mat[3] * x + mat[2] * y + mat[1],
                                             WARPEDDIFF_PREC_BITS);
     points += stride_points - 2;
     proj += stride_proj - 2;
@@ -146,19 +146,19 @@ static void projectPointsAffine(int *mat, int *points, int *proj,
     const int x = *(points++), y = *(points++);
     if (subsampling_x)
       *(proj++) = ROUND_POWER_OF_TWO_SIGNED(
-          mat[0] * 2 * x + mat[1] * 2 * y + mat[4] +
-          (mat[0] + mat[1] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
+          mat[2] * 2 * x + mat[3] * 2 * y + mat[0] +
+          (mat[2] + mat[3] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
           WARPEDDIFF_PREC_BITS + 1);
     else
-      *(proj++) = ROUND_POWER_OF_TWO_SIGNED(mat[0] * x + mat[1] * y + mat[4],
+      *(proj++) = ROUND_POWER_OF_TWO_SIGNED(mat[2] * x + mat[3] * y + mat[0],
                                             WARPEDDIFF_PREC_BITS);
     if (subsampling_y)
       *(proj++) = ROUND_POWER_OF_TWO_SIGNED(
-          mat[2] * 2 * x + mat[3] * 2 * y + mat[5] +
-          (mat[2] + mat[3] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
+          mat[4] * 2 * x + mat[5] * 2 * y + mat[1] +
+          (mat[4] + mat[5] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
           WARPEDDIFF_PREC_BITS + 1);
     else
-      *(proj++) = ROUND_POWER_OF_TWO_SIGNED(mat[2] * x + mat[3] * y + mat[5],
+      *(proj++) = ROUND_POWER_OF_TWO_SIGNED(mat[4] * x + mat[5] * y + mat[1],
                                             WARPEDDIFF_PREC_BITS);
     points += stride_points - 2;
     proj += stride_proj - 2;
index 66b44a36bdfa58ab6065d97307fe2a1ffe543c85..06b3e07b0c18b3a14b4f57a3f59ac63ad922758b 100644 (file)
@@ -3464,16 +3464,16 @@ static void read_global_motion_params(Global_Motion_Params *params,
       break;
     case GLOBAL_ROTZOOM:
       params->motion_params.wmtype = ROTZOOM;
-      params->motion_params.wmmat[2] =
+      params->motion_params.wmmat[0] =
           vp10_read_primitive_symmetric(r, GM_ABS_TRANS_BITS) *
           GM_TRANS_DECODE_FACTOR;
-      params->motion_params.wmmat[3] =
+      params->motion_params.wmmat[1] =
           vp10_read_primitive_symmetric(r, GM_ABS_TRANS_BITS) *
           GM_TRANS_DECODE_FACTOR;
-      params->motion_params.wmmat[0] =
+      params->motion_params.wmmat[2] =
           (vp10_read_primitive_symmetric(r, GM_ABS_ALPHA_BITS) *
           GM_ALPHA_DECODE_FACTOR) + (1 << WARPEDMODEL_PREC_BITS);
-      params->motion_params.wmmat[1] =
+      params->motion_params.wmmat[3] =
           vp10_read_primitive_symmetric(r, GM_ABS_ALPHA_BITS) *
           GM_ALPHA_DECODE_FACTOR;
       break;