aboutsummaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_non_greedy_mv.h
diff options
context:
space:
mode:
authorDan Zhu <zxdan@google.com>2019-08-20 09:16:17 -0700
committerDan Zhu <zxdan@google.com>2019-08-22 14:51:29 -0700
commit0859579d4dfd24ce00e6520558f8e55155475d86 (patch)
tree83ef1bbefe34b0092ea1a83fd38bee1758161b36 /vp9/encoder/vp9_non_greedy_mv.h
parentda7c5beded832b43231ebe961bcfa5afccd4d3cf (diff)
downloadlibvpx-0859579d4dfd24ce00e6520558f8e55155475d86.tar.gz
modify smooth model(float type mv + normalization)
Change-Id: I7441e04190b8a797f3863166e95b3b6c9924ab50
Diffstat (limited to 'vp9/encoder/vp9_non_greedy_mv.h')
-rw-r--r--vp9/encoder/vp9_non_greedy_mv.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/vp9/encoder/vp9_non_greedy_mv.h b/vp9/encoder/vp9_non_greedy_mv.h
index ed6438c11..71c4b7aab 100644
--- a/vp9/encoder/vp9_non_greedy_mv.h
+++ b/vp9/encoder/vp9_non_greedy_mv.h
@@ -39,6 +39,10 @@ typedef struct MotionFieldInfo {
MotionField (*motion_field_array)[3][SQUARE_BLOCK_SIZES];
} MotionFieldInfo;
+typedef struct {
+ float row, col;
+} FloatMV;
+
static INLINE int get_square_block_idx(BLOCK_SIZE bsize) {
if (bsize == BLOCK_4X4) {
return 0;
@@ -88,14 +92,15 @@ int64_t vp9_nb_mvs_inconsistency(const MV *mv, const int_mv *nb_full_mvs,
void vp9_get_smooth_motion_field(const MV *search_mf,
const int (*M)[MF_LOCAL_STRUCTURE_SIZE],
- int rows, int cols, float alpha, int num_iters,
- MV *smooth_mf);
+ int rows, int cols, BLOCK_SIZE bize,
+ float alpha, int num_iters, MV *smooth_mf);
-void vp9_get_local_structure(const YV12_BUFFER_CONFIG *ref_frame,
- const vp9_variance_fn_ptr_t *fn_ptr, int mi_rows,
- int mi_cols, BLOCK_SIZE bsize,
+void vp9_get_local_structure(const YV12_BUFFER_CONFIG *cur_frame,
+ const YV12_BUFFER_CONFIG *ref_frame,
+ const MV *search_mf,
+ const vp9_variance_fn_ptr_t *fn_ptr, int rows,
+ int cols, BLOCK_SIZE bsize,
int (*M)[MF_LOCAL_STRUCTURE_SIZE]);
-
#ifdef __cplusplus
} // extern "C"
#endif