summaryrefslogtreecommitdiff
path: root/third_party/aom/av1/common/warped_motion.h
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/aom/av1/common/warped_motion.h')
-rw-r--r--third_party/aom/av1/common/warped_motion.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/third_party/aom/av1/common/warped_motion.h b/third_party/aom/av1/common/warped_motion.h
index 78abced479..845eb9a435 100644
--- a/third_party/aom/av1/common/warped_motion.h
+++ b/third_party/aom/av1/common/warped_motion.h
@@ -22,14 +22,22 @@
#include "aom_ports/mem.h"
#include "aom_dsp/aom_dsp_common.h"
#include "av1/common/mv.h"
+#include "av1/common/convolve.h"
#define MAX_PARAMDIM 9
#if CONFIG_WARPED_MOTION
-#define SAMPLES_ARRAY_SIZE ((2 * MAX_MIB_SIZE + 2) * 2)
-
#define LEAST_SQUARES_SAMPLES_MAX_BITS 3
#define LEAST_SQUARES_SAMPLES_MAX (1 << LEAST_SQUARES_SAMPLES_MAX_BITS)
+#if WARPED_MOTION_SORT_SAMPLES
+// #define SAMPLES_ARRAY_SIZE (LEAST_SQUARES_SAMPLES_MAX * 2)
+// Search half bsize on the top and half bsize on the left, 1 upper-left block,
+// 1 upper-right block.
+#define SAMPLES_ARRAY_SIZE ((MAX_MIB_SIZE * MAX_MIB_SIZE + 2) * 2)
+#else
+#define SAMPLES_ARRAY_SIZE (LEAST_SQUARES_SAMPLES_MAX * 2)
+#endif // WARPED_MOTION_SORT_SAMPLES
+
#define DEFAULT_WMTYPE AFFINE
#endif // CONFIG_WARPED_MOTION
@@ -69,10 +77,6 @@ void project_points_homography(const int32_t *mat, int *points, int *proj,
const int stride_proj, const int subsampling_x,
const int subsampling_y);
-void project_points(const WarpedMotionParams *wm_params, int *points, int *proj,
- const int n, const int stride_points, const int stride_proj,
- const int subsampling_x, const int subsampling_y);
-
// Returns the error between the result of applying motion 'wm' to the frame
// described by 'ref' and the frame described by 'dst'.
int64_t av1_warp_error(WarpedMotionParams *wm,
@@ -82,7 +86,8 @@ int64_t av1_warp_error(WarpedMotionParams *wm,
const uint8_t *ref, int width, int height, int stride,
uint8_t *dst, int p_col, int p_row, int p_width,
int p_height, int p_stride, int subsampling_x,
- int subsampling_y, int x_scale, int y_scale);
+ int subsampling_y, int x_scale, int y_scale,
+ int64_t best_error);
// Returns the error between the frame described by 'ref' and the frame
// described by 'dst'.
@@ -90,8 +95,8 @@ int64_t av1_frame_error(
#if CONFIG_HIGHBITDEPTH
int use_hbd, int bd,
#endif // CONFIG_HIGHBITDEPTH
- const uint8_t *ref, int stride, uint8_t *dst, int p_col, int p_row,
- int p_width, int p_height, int p_stride);
+ const uint8_t *ref, int stride, uint8_t *dst, int p_width, int p_height,
+ int p_stride);
void av1_warp_plane(WarpedMotionParams *wm,
#if CONFIG_HIGHBITDEPTH
@@ -100,7 +105,8 @@ void av1_warp_plane(WarpedMotionParams *wm,
const uint8_t *ref, int width, int height, int stride,
uint8_t *pred, int p_col, int p_row, int p_width,
int p_height, int p_stride, int subsampling_x,
- int subsampling_y, int x_scale, int y_scale, int comp_avg);
+ int subsampling_y, int x_scale, int y_scale,
+ ConvolveParams *conv_params);
int find_projection(int np, int *pts1, int *pts2, BLOCK_SIZE bsize, int mvy,
int mvx, WarpedMotionParams *wm_params, int mi_row,