Sample selection in warped motion
Added a sample selection process in warped motion.
1. Gather more samples including multiple rows on the top, multiple
columns on the left, and the upper-right block.
2. Sort samples by the MV difference between the neighbour's MV and
the current block's MV. Trim the samples with considerably large MV
difference.
Borg test result:
avg_psnr ovr_psnr ssim
cam_lowres: -0.241 -0.243 -0.376
lowres: -0.104 -0.110 -0.179
The changes are wrapped in WARPED_MOTION_SORT_SAMPLES macro.
Change-Id: I2730bb31a0a3ad28215ccd16fd6da0ea8b2ed404
diff --git a/av1/common/mv.h b/av1/common/mv.h
index a6bb6b8..dabfc0e 100644
--- a/av1/common/mv.h
+++ b/av1/common/mv.h
@@ -35,6 +35,10 @@
int32_t col;
} MV32;
+#if CONFIG_WARPED_MOTION
+#define WARPED_MOTION_SORT_SAMPLES 1
+#endif // CONFIG_WARPED_MOTION
+
#if CONFIG_GLOBAL_MOTION || CONFIG_WARPED_MOTION
// Bits of precision used for the model
#define WARPEDMODEL_PREC_BITS 16