Commit a036d86f authored by Sarah Parker's avatar Sarah Parker
Browse files

Disable neighbor warping for gm + obmc

Adds an option to disable warp when obmc is used with a
global motion neighbor.

Change in BDRATE on cam_lowres
gm + obmc enabled: 0.035%
gm + obmc + wm enabled: -0.005%

Change-Id: I1d6de75c7ead325cec31ed3748b5532f3658d8a7
parent c670e82f
...@@ -24,6 +24,10 @@ ...@@ -24,6 +24,10 @@
#define WARP_NEIGHBORS_WITH_OBMC 0 #define WARP_NEIGHBORS_WITH_OBMC 0
#endif // CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION #endif // CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
#if CONFIG_MOTION_VAR && CONFIG_GLOBAL_MOTION
#define WARP_NEIGHBORS_WITH_GM 0
#endif // CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
...@@ -281,7 +285,11 @@ static INLINE void av1_make_inter_predictor( ...@@ -281,7 +285,11 @@ static INLINE void av1_make_inter_predictor(
int xs, int ys, const MACROBLOCKD *xd) { int xs, int ys, const MACROBLOCKD *xd) {
(void)xd; (void)xd;
#if CONFIG_GLOBAL_MOTION #if CONFIG_GLOBAL_MOTION
if (is_global) { if (is_global
#if CONFIG_MOTION_VAR
&& (WARP_NEIGHBORS_WITH_GM || (mi_col_offset == 0 && mi_row_offset == 0))
#endif // CONFIG_MOTION_VAR
) {
#if CONFIG_MOTION_VAR #if CONFIG_MOTION_VAR
const MODE_INFO *mi = xd->mi[mi_col_offset + xd->mi_stride * mi_row_offset]; const MODE_INFO *mi = xd->mi[mi_col_offset + xd->mi_stride * mi_row_offset];
#else #else
......
...@@ -3685,9 +3685,13 @@ static void fix_interp_filter(AV1_COMMON *cm, FRAME_COUNTS *counts) { ...@@ -3685,9 +3685,13 @@ static void fix_interp_filter(AV1_COMMON *cm, FRAME_COUNTS *counts) {
// Only one filter is used. So set the filter at frame level // Only one filter is used. So set the filter at frame level
for (i = 0; i < SWITCHABLE_FILTERS; ++i) { for (i = 0; i < SWITCHABLE_FILTERS; ++i) {
if (count[i]) { if (count[i]) {
#if CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION #if CONFIG_MOTION_VAR && (CONFIG_WARPED_MOTION || CONFIG_GLOBAL_MOTION)
#if CONFIG_WARPED_MOTION
if (i == EIGHTTAP_REGULAR || WARP_NEIGHBORS_WITH_OBMC) if (i == EIGHTTAP_REGULAR || WARP_NEIGHBORS_WITH_OBMC)
#endif // CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION #else
if (i == EIGHTTAP_REGULAR || WARP_NEIGHBORS_WITH_GM)
#endif // CONFIG_WARPED_MOTION
#endif // CONFIG_MOTION_VAR && (CONFIG_WARPED_MOTION || CONFIG_GLOBAL_MOTION)
cm->interp_filter = i; cm->interp_filter = i;
break; break;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment