shithub: libvpx

Download patch

ref: 737179f275cc4384f587af5f391de5968368c63a
parent: 47d545f1669f5fd9e6df7c36b9e3f8aee92fc5b8
author: Yaowu Xu <yaowu@google.com>
date: Fri Feb 17 07:03:34 EST 2012

Reduced bias in picking loop filter level

The bias in picklpf intended to bias toward less greedy in getting
best frame level psnr while maximize overall quality for a clip.
This commit reduced the bias for frames using 8x8 transform to
achieve better compression overall.

The change improve compression by ~.15% consistently on most of the
HD clips tested.

http://www.corp.google.com/~yaowu/no_crawl/LPFBias_FixSkip.html

Change-Id: Ic30932d2b8eaebd52339b0195f569edc48eed7bc

--- a/vp8/encoder/picklpf.c
+++ b/vp8/encoder/picklpf.c
@@ -354,6 +354,12 @@
         if (cpi->twopass.section_intra_rating < 20)
             Bias = Bias * cpi->twopass.section_intra_rating / 20;
 
+#if CONFIG_T8X8
+        // yx, bias less for large block size
+        if(cpi->common.txfm_mode == ALLOW_8X8)
+            Bias >>= 1;
+#endif
+
         filt_high = ((filt_mid + filter_step) > max_filter_level) ? max_filter_level : (filt_mid + filter_step);
         filt_low = ((filt_mid - filter_step) < min_filter_level) ? min_filter_level : (filt_mid - filter_step);
 
@@ -571,6 +577,12 @@
         // jbb chg: 20100118 - in sections with lots of new material coming in don't bias as much to a low filter value
         if (cpi->twopass.section_intra_rating < 20)
             Bias = Bias * cpi->twopass.section_intra_rating / 20;
+
+#if CONFIG_T8X8
+        // yx, bias less for large block size
+        if(cpi->common.txfm_mode == ALLOW_8X8)
+            Bias >>= 1;
+#endif
 
         filt_high = ((filt_mid + filter_step) > max_filter_level) ? max_filter_level : (filt_mid + filter_step);
         filt_low = ((filt_mid - filter_step) < min_filter_level) ? min_filter_level : (filt_mid - filter_step);