summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_pickmode.c
diff options
context:
space:
mode:
authorMarco Paniconi <marpan@google.com>2019-04-10 21:34:36 -0700
committerMarco Paniconi <marpan@google.com>2019-04-10 21:39:19 -0700
commitc46694c1d93ccfa40cb1c3b7c04c167be59fded4 (patch)
treefdb1fb55003fadefb9f93ce5a71a79a87479daa4 /vp9/encoder/vp9_pickmode.c
parentb0ab51dc2bc9c84a25e5b0408b89f3d45bcde9ea (diff)
downloadlibvpx-c46694c1d93ccfa40cb1c3b7c04c167be59fded4.tar
libvpx-c46694c1d93ccfa40cb1c3b7c04c167be59fded4.tar.gz
libvpx-c46694c1d93ccfa40cb1c3b7c04c167be59fded4.tar.bz2
libvpx-c46694c1d93ccfa40cb1c3b7c04c167be59fded4.zip
vp9-rtc: Fix to re-eval zero-mv for denoising
Change-Id: I3bb0646661efa06c8d1d688c746e41855c99f408
Diffstat (limited to 'vp9/encoder/vp9_pickmode.c')
-rw-r--r--vp9/encoder/vp9_pickmode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c
index 2b401eccf..9ad85e355 100644
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -1334,6 +1334,7 @@ static void recheck_zeromv_after_denoising(
cpi->svc.number_spatial_layers == 1 &&
decision == FILTER_ZEROMV_BLOCK))) {
// Check if we should pick ZEROMV on denoised signal.
+ VP9_COMMON *const cm = &cpi->common;
int rate = 0;
int64_t dist = 0;
uint32_t var_y = UINT_MAX;
@@ -1342,6 +1343,7 @@ static void recheck_zeromv_after_denoising(
mi->mode = ZEROMV;
mi->ref_frame[0] = LAST_FRAME;
mi->ref_frame[1] = NONE;
+ set_ref_ptrs(cm, xd, mi->ref_frame[0], NONE);
mi->mv[0].as_int = 0;
mi->interp_filter = EIGHTTAP;
if (cpi->sf.default_interp_filter == BILINEAR) mi->interp_filter = BILINEAR;
@@ -1359,6 +1361,7 @@ static void recheck_zeromv_after_denoising(
this_rdc = *best_rdc;
mi->mode = ctx_den->best_mode;
mi->ref_frame[0] = ctx_den->best_ref_frame;
+ set_ref_ptrs(cm, xd, mi->ref_frame[0], NONE);
mi->interp_filter = ctx_den->best_pred_filter;
if (ctx_den->best_ref_frame == INTRA_FRAME) {
mi->mv[0].as_int = INVALID_MV;
@@ -1638,9 +1641,7 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data,
? &(tile_data->row_base_thresh_freq_fact[thresh_freq_fact_idx])
: tile_data->thresh_freq_fact[bsize];
#if CONFIG_VP9_TEMPORAL_DENOISING
- // TODO(marpan/jianj): Re-enable this feature (re-evaluate ZEROMV mode
- // on denoised signal) when mismatch issue is resolved.
- const int denoise_recheck_zeromv = 0;
+ const int denoise_recheck_zeromv = 1;
#endif
INTERP_FILTER filter_ref;
int pred_filter_search = cm->interp_filter == SWITCHABLE;