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)