Change order of warped motion parameters
This makes it easier to interface between global motion and warped motion Change-Id: I850e0a383969a1973f03fb207f100713cda6bb51
This commit is contained in:
parent
096d8ace8e
commit
78ea3b3e3e
@ -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,
|
||||
WARPEDDIFF_PREC_BITS + 1);
|
||||
else
|
||||
*(proj++) = ROUND_POWER_OF_TWO_SIGNED(mat[0] * x + mat[1] * y + mat[4],
|
||||
WARPEDDIFF_PREC_BITS);
|
||||
if (subsampling_y)
|
||||
*(proj++) = ROUND_POWER_OF_TWO_SIGNED(
|
||||
mat[2] * 2 * x + mat[3] * 2 * y + mat[5] +
|
||||
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[2] * x + mat[3] * y + mat[5],
|
||||
*(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[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[4] * x + mat[5] * y + mat[1],
|
||||
WARPEDDIFF_PREC_BITS);
|
||||
points += stride_points - 2;
|
||||
proj += stride_proj - 2;
|
||||
|
@ -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] =
|
||||
vp10_read_primitive_symmetric(r, GM_ABS_TRANS_BITS) *
|
||||
GM_TRANS_DECODE_FACTOR;
|
||||
params->motion_params.wmmat[3] =
|
||||
vp10_read_primitive_symmetric(r, GM_ABS_TRANS_BITS) *
|
||||
GM_TRANS_DECODE_FACTOR;
|
||||
params->motion_params.wmmat[0] =
|
||||
vp10_read_primitive_symmetric(r, GM_ABS_TRANS_BITS) *
|
||||
GM_TRANS_DECODE_FACTOR;
|
||||
params->motion_params.wmmat[1] =
|
||||
vp10_read_primitive_symmetric(r, GM_ABS_TRANS_BITS) *
|
||||
GM_TRANS_DECODE_FACTOR;
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user