Allow global motion based translation for sub8x8
Also handle block centers for sub8x8 blocks correctly.
BDRATE: lowres: -1.308%
Change-Id: I6bdb25bdaceb5086a8b951617fd62ed41cd89023
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 6ffaf07..e13dfb9 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1360,12 +1360,12 @@
#if CONFIG_GLOBAL_MOTION
mv[0].as_int = gm_get_motion_vector(&cm->global_motion[ref_frame[0]],
cm->allow_high_precision_mv, bsize,
- mi_col, mi_row)
+ mi_col, mi_row, block)
.as_int;
if (is_compound)
mv[1].as_int = gm_get_motion_vector(&cm->global_motion[ref_frame[1]],
cm->allow_high_precision_mv, bsize,
- mi_col, mi_row)
+ mi_col, mi_row, block)
.as_int;
#else
mv[0].as_int = 0;
@@ -1373,8 +1373,8 @@
#endif // CONFIG_GLOBAL_MOTION
#if CONFIG_REF_MV
- pred_mv[0].as_int = 0;
- if (is_compound) pred_mv[1].as_int = 0;
+ pred_mv[0].as_int = mv[0].as_int;
+ if (is_compound) pred_mv[1].as_int = mv[1].as_int;
#endif
break;
}
@@ -1515,11 +1515,11 @@
#if CONFIG_GLOBAL_MOTION
mv[0].as_int = gm_get_motion_vector(&cm->global_motion[ref_frame[0]],
cm->allow_high_precision_mv, bsize,
- mi_col, mi_row)
+ mi_col, mi_row, block)
.as_int;
mv[1].as_int = gm_get_motion_vector(&cm->global_motion[ref_frame[1]],
cm->allow_high_precision_mv, bsize,
- mi_col, mi_row)
+ mi_col, mi_row, block)
.as_int;
#else
mv[0].as_int = 0;
@@ -1627,12 +1627,12 @@
#if CONFIG_GLOBAL_MOTION
zeromv[0].as_int = gm_get_motion_vector(&cm->global_motion[rf[0]],
cm->allow_high_precision_mv,
- bsize, mi_col, mi_row)
+ bsize, mi_col, mi_row, 0)
.as_int;
zeromv[1].as_int = (rf[1] != NONE_FRAME)
? gm_get_motion_vector(&cm->global_motion[rf[1]],
cm->allow_high_precision_mv,
- bsize, mi_col, mi_row)
+ bsize, mi_col, mi_row, 0)
.as_int
: 0;
#else