shithub: libvpx

Download patch

ref: c6fd0a5dd65f0723dbabed2f17f12c87b37aab7a
parent: 7e9a519fbbf1b67965537da91e712f846be6c48e
author: Deb Mukherjee <debargha@google.com>
date: Tue Sep 4 08:09:05 EDT 2012

Adjusting thresholds in mfqe post-processing

Adjusts some of the qualification thresholds in mfqe to eliminate
artifacts due to wrong decisions. Besides, a new qualification
criteria is used to disable mfqe if the quality of the previous
frame is itself not too good.

Change-Id: I4097c20b7fd4fcc60cc3003c1e33e8faae2ff066

--- a/vp8/common/mfqe.c
+++ b/vp8/common/mfqe.c
@@ -185,8 +185,8 @@
 
     actrisk = (actd > act * 5);
 
-    /* thr = qdiff/8 + log2(act) + log4(qprev) */
-    thr = (qdiff >> 3);
+    /* thr = qdiff/16 + log2(act) + log4(qprev) */
+    thr = (qdiff >> 4);
     while (actd >>= 1) thr++;
     while (qprev >>= 2) thr++;
 
--- a/vp8/common/postproc.c
+++ b/vp8/common/postproc.c
@@ -742,7 +742,8 @@
     if ((flags & VP8D_MFQE) &&
          oci->postproc_state.last_frame_valid &&
          oci->current_video_frame >= 2 &&
-         oci->base_qindex - oci->postproc_state.last_base_qindex >= 10)
+         oci->postproc_state.last_base_qindex < 60 &&
+         oci->base_qindex - oci->postproc_state.last_base_qindex >= 20)
     {
         vp8_multiframe_quality_enhance(oci);
         if (((flags & VP8D_DEBLOCK) || (flags & VP8D_DEMACROBLOCK)) &&
--