ref: af5c774b5c8a4cdf6d6792e63ce09d2702909de5
parent: dc825f1e2b9885acec0d725d43cb471a31ec2e4f
author: Yaowu Xu <yaowu@google.com>
date: Tue Feb 28 09:19:38 EST 2012
Correct zbinboost lookup for 8x8 quantizer The commit fixed a problem where 8x8 regular quantizer was using the 4x4 zbinboost lookup table that only has 16 entries at each Q. The commit assigned a uniform zbin boost value for all cases that there are more than 16 consective zeros. The change only affects MBs using 8x8 transform. The fix has a slightly positive impact on quality. Test results: http://www.corp.google.com/~yaowu/no_crawl/hd_fixzbinb.html (avg psnr: .26% glb psnr: .21% ssim: .28%) Results on cif size clip are also positive even though gain is smaller http://www.corp.google.com/~yaowu/no_crawl/derf_fixzbinb.html Change-Id: Ibe8f6da181d1fb377fbd0d3b5feb15be0cfa2017
--- a/vp8/encoder/quantize.c
+++ b/vp8/encoder/quantize.c
@@ -609,8 +609,10 @@
//zbin = (zbin_ptr[rc!=0] + *zbin_boost_ptr + zbin_oq_value)/q1st;
zbin = (zbin_ptr[rc!=0] + *zbin_boost_ptr + zbin_oq_value);
+ //TODO: 8x8 zbin boost needs be done properly
+ if(zbin_boost_ptr < &b->zrun_zbin_boost[15])
+ zbin_boost_ptr ++;
- zbin_boost_ptr ++;
sz = (z >> 31); // sign of z
x = (z ^ sz) - sz; // x = abs(z)
@@ -693,7 +695,6 @@
eob = i;
}
}
-
d->eob = eob + 1;
}
--
⑨