shithub: libvpx

Download patch

ref: 3d22d3ae0c77dbb529040aa7674a3799e201ba81
parent: 0607abc3dd26e6782ad9577765f9aeef311b0de9
parent: 09830aa0ea00b21abe38aafe1e05a5c7305fe763
author: Deb Mukherjee <debargha@google.com>
date: Tue Sep 10 07:16:47 EDT 2013

Merge "Small tweaks on the constant quality mode"

--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -2811,28 +2811,17 @@
     // TODO(debargha): Refine the logic below
     if (cpi->oxcf.end_usage == USAGE_CONSTANT_QUALITY) {
       if (!cpi->refresh_alt_ref_frame) {
-        if (cpi->gfu_boost > high) {
-          cpi->active_best_quality = cpi->cq_target_quality * 14 / 16;
-        } else if (cpi->gfu_boost < low) {
-          cpi->active_best_quality = cpi->cq_target_quality;
-        } else {
-          const int gap = high - low;
-          const int offset = high - cpi->gfu_boost;
-          const int qdiff = cpi->cq_target_quality * 2 / 16;
-          const int adjustment = ((offset * qdiff) + (gap >> 1)) / gap;
-          cpi->active_best_quality = cpi->cq_target_quality * 14 / 16
-              + adjustment;
-        }
+        cpi->active_best_quality = cpi->cq_target_quality;
       } else {
         if (cpi->frames_since_key > 1) {
           if (cpi->gfu_boost > high) {
             cpi->active_best_quality = cpi->cq_target_quality * 6 / 16;
           } else if (cpi->gfu_boost < low) {
-            cpi->active_best_quality = cpi->cq_target_quality * 10 / 16;
+            cpi->active_best_quality = cpi->cq_target_quality * 11 / 16;
           } else {
             const int gap = high - low;
             const int offset = high - cpi->gfu_boost;
-            const int qdiff = cpi->cq_target_quality * 4 / 16;
+            const int qdiff = cpi->cq_target_quality * 5 / 16;
             const int adjustment = ((offset * qdiff) + (gap >> 1)) / gap;
             cpi->active_best_quality = cpi->cq_target_quality * 6 / 16
                 + adjustment;
@@ -2867,11 +2856,6 @@
           cpi->active_best_quality = cpi->cq_target_quality;
       }
     }
-    /*
-    if (cm->current_video_frame == 1)
-      printf("q/active_best/worst_quality = %d %d %d\n",
-             q, cpi->active_best_quality, cpi->active_worst_quality);
-             */
   }
 
   // Clip the active best and worst quality values to limits
@@ -3394,7 +3378,7 @@
   // in this frame.
   // update_base_skip_probs(cpi);
 
-#if 0  // CONFIG_INTERNAL_STATS
+#if CONFIG_INTERNAL_STATS
   {
     FILE *f = fopen("tmp.stt", cm->current_video_frame ? "a" : "w");
     int recon_err;