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++);
|
const int x = *(points++), y = *(points++);
|
||||||
if (subsampling_x)
|
if (subsampling_x)
|
||||||
*(proj++) = ROUND_POWER_OF_TWO_SIGNED(
|
*(proj++) = ROUND_POWER_OF_TWO_SIGNED(
|
||||||
mat[0] * 2 * x + mat[1] * 2 * y + mat[2] +
|
mat[2] * 2 * x + mat[3] * 2 * y + mat[0] +
|
||||||
(mat[0] + mat[1] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
|
(mat[2] + mat[3] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
|
||||||
WARPEDDIFF_PREC_BITS + 1);
|
WARPEDDIFF_PREC_BITS + 1);
|
||||||
else
|
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);
|
WARPEDDIFF_PREC_BITS);
|
||||||
if (subsampling_y)
|
if (subsampling_y)
|
||||||
*(proj++) = ROUND_POWER_OF_TWO_SIGNED(
|
*(proj++) = ROUND_POWER_OF_TWO_SIGNED(
|
||||||
-mat[1] * 2 * x + mat[0] * 2 * y + mat[3] +
|
-mat[3] * 2 * x + mat[2] * 2 * y + mat[1] +
|
||||||
(-mat[1] + mat[0] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
|
(-mat[3] + mat[2] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
|
||||||
WARPEDDIFF_PREC_BITS + 1);
|
WARPEDDIFF_PREC_BITS + 1);
|
||||||
else
|
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);
|
WARPEDDIFF_PREC_BITS);
|
||||||
points += stride_points - 2;
|
points += stride_points - 2;
|
||||||
proj += stride_proj - 2;
|
proj += stride_proj - 2;
|
||||||
@ -146,19 +146,19 @@ static void projectPointsAffine(int *mat, int *points, int *proj,
|
|||||||
const int x = *(points++), y = *(points++);
|
const int x = *(points++), y = *(points++);
|
||||||
if (subsampling_x)
|
if (subsampling_x)
|
||||||
*(proj++) = ROUND_POWER_OF_TWO_SIGNED(
|
*(proj++) = ROUND_POWER_OF_TWO_SIGNED(
|
||||||
mat[0] * 2 * x + mat[1] * 2 * y + mat[4] +
|
mat[2] * 2 * x + mat[3] * 2 * y + mat[0] +
|
||||||
(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] + mat[3] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
|
(mat[2] + mat[3] - (1 << WARPEDMODEL_PREC_BITS)) / 2,
|
||||||
WARPEDDIFF_PREC_BITS + 1);
|
WARPEDDIFF_PREC_BITS + 1);
|
||||||
else
|
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);
|
WARPEDDIFF_PREC_BITS);
|
||||||
points += stride_points - 2;
|
points += stride_points - 2;
|
||||||
proj += stride_proj - 2;
|
proj += stride_proj - 2;
|
||||||
|
@ -3464,16 +3464,16 @@ static void read_global_motion_params(Global_Motion_Params *params,
|
|||||||
break;
|
break;
|
||||||
case GLOBAL_ROTZOOM:
|
case GLOBAL_ROTZOOM:
|
||||||
params->motion_params.wmtype = 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] =
|
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) *
|
(vp10_read_primitive_symmetric(r, GM_ABS_ALPHA_BITS) *
|
||||||
GM_ALPHA_DECODE_FACTOR) + (1 << WARPEDMODEL_PREC_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) *
|
vp10_read_primitive_symmetric(r, GM_ABS_ALPHA_BITS) *
|
||||||
GM_ALPHA_DECODE_FACTOR;
|
GM_ALPHA_DECODE_FACTOR;
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user