Increase precision of affine parameters Improves results for videos that have a strong global motion. lowres: -0.630% (waterfall: -9.468%; tempete: -6.560%) Change-Id: If9e7c7a5cdf12b607c5ef3392e10606789018f3b
diff --git a/av1/common/mv.h b/av1/common/mv.h index 17ebdea..53b8d63 100644 --- a/av1/common/mv.h +++ b/av1/common/mv.h
@@ -36,8 +36,8 @@ #if CONFIG_GLOBAL_MOTION || CONFIG_WARPED_MOTION // Bits of precision used for the model -#define WARPEDMODEL_PREC_BITS 12 -#define WARPEDMODEL_ROW3HOMO_PREC_BITS 14 +#define WARPEDMODEL_PREC_BITS 16 +#define WARPEDMODEL_ROW3HOMO_PREC_BITS 16 // Bits of subpel precision for warped interpolation #define WARPEDPIXEL_PREC_BITS 6 @@ -105,22 +105,21 @@ // XX_MIN, XX_MAX are also computed to avoid repeated computation #define GM_TRANS_PREC_BITS 3 +#define GM_ABS_TRANS_BITS 9 #define GM_TRANS_PREC_DIFF (WARPEDMODEL_PREC_BITS - GM_TRANS_PREC_BITS) #define GM_TRANS_DECODE_FACTOR (1 << GM_TRANS_PREC_DIFF) -#define GM_ALPHA_PREC_BITS 12 +#define GM_ALPHA_PREC_BITS 15 +#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) -#define GM_ROW3HOMO_PREC_BITS 14 +#define GM_ROW3HOMO_PREC_BITS 16 +#define GM_ABS_ROW3HOMO_BITS 11 #define GM_ROW3HOMO_PREC_DIFF \ (WARPEDMODEL_ROW3HOMO_PREC_BITS - GM_ROW3HOMO_PREC_BITS) #define GM_ROW3HOMO_DECODE_FACTOR (1 << GM_ROW3HOMO_PREC_DIFF) -#define GM_ABS_TRANS_BITS 9 -#define GM_ABS_ALPHA_BITS 9 -#define GM_ABS_ROW3HOMO_BITS 9 - #define GM_TRANS_MAX (1 << GM_ABS_TRANS_BITS) #define GM_ALPHA_MAX (1 << GM_ABS_ALPHA_BITS) #define GM_ROW3HOMO_MAX (1 << GM_ABS_ROW3HOMO_BITS)