aboutsummaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_non_greedy_mv.h
diff options
context:
space:
mode:
authorAngie Chiang <angiebird@google.com>2019-08-22 17:55:19 -0700
committerAngie Chiang <angiebird@google.com>2019-08-28 13:39:33 -0700
commitf6251cc7a8dbbd01d918d3d9fac04276905fab42 (patch)
tree81935dfe557d02dad4cfec8169ef75ee10b43d58 /vp9/encoder/vp9_non_greedy_mv.h
parentf40c00b206ee6b405ce44a46f6e2adf6906bd41b (diff)
downloadlibvpx-f6251cc7a8dbbd01d918d3d9fac04276905fab42.tar.gz
Move motion field from TplDepFrame to MotionField
Replace get_pyramid_mv by vp9_motion_field_mi_get_mv. The goal is to modularize motion field related operations. Change-Id: I33084e680567ab106659ba9389cc4b507b893c69
Diffstat (limited to 'vp9/encoder/vp9_non_greedy_mv.h')
-rw-r--r--vp9/encoder/vp9_non_greedy_mv.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_non_greedy_mv.h b/vp9/encoder/vp9_non_greedy_mv.h
index f095ddf41..c2bd69722 100644
--- a/vp9/encoder/vp9_non_greedy_mv.h
+++ b/vp9/encoder/vp9_non_greedy_mv.h
@@ -31,8 +31,10 @@ typedef struct MotionField {
BLOCK_SIZE bsize;
int block_rows;
int block_cols;
+ int block_num; // block_num == block_rows * block_cols
int (*local_structure)[MF_LOCAL_STRUCTURE_SIZE];
- MV *mf;
+ int_mv *mf;
+ int *set_mv;
int mv_log_scale;
} MotionField;
@@ -104,6 +106,23 @@ void vp9_get_local_structure(const YV12_BUFFER_CONFIG *cur_frame,
const vp9_variance_fn_ptr_t *fn_ptr, int rows,
int cols, BLOCK_SIZE bsize,
int (*M)[MF_LOCAL_STRUCTURE_SIZE]);
+
+MotionField *vp9_motion_field_info_get_motion_field(
+ MotionFieldInfo *motion_field_info, int frame_idx, int rf_idx,
+ BLOCK_SIZE bsize);
+
+void vp9_motion_field_mi_set_mv(MotionField *motion_field, int mi_row,
+ int mi_col, int_mv mv);
+
+void vp9_motion_field_reset_mvs(MotionField *motion_field);
+
+int_mv vp9_motion_field_get_mv(const MotionField *motion_field, int brow,
+ int bcol);
+int_mv vp9_motion_field_mi_get_mv(const MotionField *motion_field, int mi_row,
+ int mi_col);
+int vp9_motion_field_is_mv_set(const MotionField *motion_field, int brow,
+ int bcol);
+
#ifdef __cplusplus
} // extern "C"
#endif