Remove interp filter for non-translation global mv
BDRATE results:
lowres: -0.880% (up from -0.844%)
Change-Id: I017c0beddcc687148fed33c1e9963e05f1eaf6ea
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 4f16940..d59bd9e 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1115,11 +1115,29 @@
FRAME_CONTEXT *ec_ctx = cm->fc;
#endif
+#if CONFIG_GLOBAL_MOTION
+ if (is_nontrans_global_motion(xd)) {
#if CONFIG_DUAL_FILTER
- int dir;
+ mbmi->interp_filter[0] =
+ cm->interp_filter == SWITCHABLE ? EIGHTTAP_REGULAR : cm->interp_filter;
+ mbmi->interp_filter[1] =
+ cm->interp_filter == SWITCHABLE ? EIGHTTAP_REGULAR : cm->interp_filter;
+#else
+ mbmi->interp_filter =
+ cm->interp_filter == SWITCHABLE ? EIGHTTAP_REGULAR : cm->interp_filter;
+#endif // CONFIG_DUAL_FILTER
+ return;
+ }
+#endif // CONFIG_GLOBAL_MOTION
+
+#if CONFIG_DUAL_FILTER
if (cm->interp_filter != SWITCHABLE) {
+ int dir;
+
for (dir = 0; dir < 4; ++dir) mbmi->interp_filter[dir] = cm->interp_filter;
} else {
+ int dir;
+
for (dir = 0; dir < 2; ++dir) {
const int ctx = av1_get_pred_context_switchable_interp(xd, dir);
mbmi->interp_filter[dir] = EIGHTTAP_REGULAR;
@@ -1708,7 +1726,7 @@
}
#endif
-#if !CONFIG_DUAL_FILTER && !CONFIG_WARPED_MOTION
+#if !CONFIG_DUAL_FILTER && !CONFIG_WARPED_MOTION && !CONFIG_GLOBAL_MOTION
read_mb_interp_filter(cm, xd, mbmi, r);
#endif // !CONFIG_DUAL_FILTER && !CONFIG_WARPED_MOTION
@@ -1951,7 +1969,7 @@
#if CONFIG_WARPED_MOTION
if (mbmi->motion_mode != WARPED_CAUSAL) {
#endif // CONFIG_WARPED_MOTION
-#if CONFIG_DUAL_FILTER || CONFIG_WARPED_MOTION
+#if CONFIG_DUAL_FILTER || CONFIG_WARPED_MOTION || CONFIG_GLOBAL_MOTION
read_mb_interp_filter(cm, xd, mbmi, r);
#endif // CONFIG_DUAL_FILTER || CONFIG_WARPED_MOTION
#if CONFIG_WARPED_MOTION