Turn off global motion for sub8x8 blocks
Lowres: 0.03% improvement, 1% improvement on waterfall_cif.y4m
Midres: 0.085% overall improvement, 1.253% improvement on station2_480p25.y4m
Change-Id: I3872934d978bb4ca828c6b9acd2fdb951d9da299
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 0b97099..22686bf 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1359,15 +1359,13 @@
case ZEROMV: {
#if CONFIG_GLOBAL_MOTION
mv[0].as_int = gm_get_motion_vector(&cm->global_motion[ref_frame[0]],
- cm->allow_high_precision_mv,
- block_center_x(mi_col, bsize),
- block_center_y(mi_row, bsize))
+ cm->allow_high_precision_mv, bsize,
+ mi_col, mi_row)
.as_int;
if (is_compound)
mv[1].as_int = gm_get_motion_vector(&cm->global_motion[ref_frame[1]],
- cm->allow_high_precision_mv,
- block_center_x(mi_col, bsize),
- block_center_y(mi_row, bsize))
+ cm->allow_high_precision_mv, bsize,
+ mi_col, mi_row)
.as_int;
#else
mv[0].as_int = 0;
@@ -1516,14 +1514,12 @@
assert(is_compound);
#if CONFIG_GLOBAL_MOTION
mv[0].as_int = gm_get_motion_vector(&cm->global_motion[ref_frame[0]],
- cm->allow_high_precision_mv,
- block_center_x(mi_col, bsize),
- block_center_y(mi_row, bsize))
+ cm->allow_high_precision_mv, bsize,
+ mi_col, mi_row)
.as_int;
mv[1].as_int = gm_get_motion_vector(&cm->global_motion[ref_frame[1]],
- cm->allow_high_precision_mv,
- block_center_x(mi_col, bsize),
- block_center_y(mi_row, bsize))
+ cm->allow_high_precision_mv, bsize,
+ mi_col, mi_row)
.as_int;
#else
mv[0].as_int = 0;
@@ -1631,17 +1627,14 @@
#if CONFIG_GLOBAL_MOTION
zeromv[0].as_int = gm_get_motion_vector(&cm->global_motion[rf[0]],
cm->allow_high_precision_mv,
- block_center_x(mi_col, bsize),
- block_center_y(mi_row, bsize))
+ bsize, mi_col, mi_row)
.as_int;
- zeromv[1].as_int =
- (rf[1] != NONE_FRAME)
- ? gm_get_motion_vector(&cm->global_motion[rf[1]],
- cm->allow_high_precision_mv,
- block_center_x(mi_col, bsize),
- block_center_y(mi_row, bsize))
- .as_int
- : 0;
+ 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)
+ .as_int
+ : 0;
#else
zeromv[0].as_int = zeromv[1].as_int = 0;
#endif