ref: a80dd52b6ea410ff20835bd12220dd77934f011a
parent: ff99a3c750bc4eecf3b6b276023b2dbca59d1d6c
parent: c0923d4d3aa61cb0a4ad7a4143ef3f06e15b4f2a
author: Marco <[email protected]>
date: Thu Jan 29 04:10:30 EST 2015
Merge "Fix to vp9 denoiser."
--- a/vp9/encoder/vp9_denoiser.c
+++ b/vp9/encoder/vp9_denoiser.c
@@ -403,10 +403,7 @@
void vp9_denoiser_reset_frame_stats(PICK_MODE_CONTEXT *ctx) {
ctx->zeromv_sse = UINT_MAX;
- // This should be initialized as zero since mode search stage might skip
- // NEWMV mode if inferred motion vector modes provide sufficiently good
- // prediction quality.
- ctx->newmv_sse = 0;
+ ctx->newmv_sse = UINT_MAX;
}
void vp9_denoiser_update_frame_stats(MB_MODE_INFO *mbmi, unsigned int sse,
@@ -418,7 +415,7 @@
ctx->best_zeromv_reference_frame = mbmi->ref_frame[0];
}
- if (mode == NEWMV) {
+ if (mbmi->mv[0].as_int != 0 && sse < ctx->newmv_sse) {
ctx->newmv_sse = sse;
ctx->best_sse_inter_mode = mode;
ctx->best_sse_mv = mbmi->mv[0];