图像经过分块、DCT变化,已经为压缩作好准备了。纳尼!折腾了大半天才算“作好准备”,你大爷逗我吧?客官请息怒,“量化”就正式开始压缩啦,3天瘦20斤,效果显著,无用退款!
JPEG量化:更多地保留低频信息
![02_05 - Video -[00_06_01][20140415-234055-0]](https://i0.wp.com/feichashao.com/wp-content/uploads/2014/04/02_05-Video-00_06_0120140415-234055-0.png?resize=625%2C350&ssl=1)
经过DCT变换后,图像低频部分都集中在左上角,这部分信息对人类理解图像内容非常重要;图像高频部分集中在右下角,这部分记录图像的细微变化,人眼几乎不能察觉。
所以,更多地保留DCT左上方的低频信息,去除DCT右下方的高频信息,既能大大压缩图像大小,同时较好地保证了图像质量。
说得容易,实现方法也很容易,那就是“量化”。
Soga!那…量化是啥?
简单地说,“量化”是将“连续量”转换为“离散量”的过程。“四舍五入”、“向下取整”就是典型的量化。
比如,设量化器(Quantizer)为8,那么,16,21,24,59的量化结果是:
[16/8] * 8 = 16;
[21/8] * 8 = 16;
[24/8] * 8 = 24;
[59/8] * 8 = 56;
( 这里[ ]表示向下取整 )
JPEG量化矩阵
![02_05 - Video -[00_10_34][20140415-234527-3]](https://i0.wp.com/feichashao.com/wp-content/uploads/2014/04/02_05-Video-00_10_3420140415-234527-3.png?resize=625%2C350&ssl=1)
为了尽可能的保留低频信息去除高频信息,JPEG的典型量化矩阵左上方的数都比较小,右下方的数都比较大。量化之后,右下方的信息基本都是0了。
想要得到更好的压缩效果,还可以使用2倍,4倍,8倍甚至32倍的量化矩阵。当然,量化矩阵越大,图像的质量也会越差。
![02_05 - Video -[00_13_35][20140415-234828-4]](https://i0.wp.com/feichashao.com/wp-content/uploads/2014/04/02_05-Video-00_13_3520140415-234828-4.png?resize=960%2C540&ssl=1)
![02_05 - Video -[00_15_57][20140415-235050-5]](https://i0.wp.com/feichashao.com/wp-content/uploads/2014/04/02_05-Video-00_15_5720140415-235050-5.png?resize=960%2C540&ssl=1)
Max-Lloyd优化量化
![02_05 - Video -[00_21_49][20140415-235642-8]](https://i0.wp.com/feichashao.com/wp-content/uploads/2014/04/02_05-Video-00_21_4920140415-235642-8.png?resize=960%2C540&ssl=1)
JPEG使用统一的量化矩阵,它“不用思考”就能得到不错的压缩效果。不过,有没有更优的量化矩阵呢?必须有,那就是Max-Lloyd Optimal Quantizer, 它会根据具体图像的特征,计算出动态的量化矩阵,从而获得比统一量化矩阵更有效的动态量化矩阵。
尽管Lloyd量化可以获得更好的效果,但因为它运算复杂,要保证各种设备(如手机)都能高速地支持JPEG,JPEG还是义无反顾地采用了统一量化矩阵。
Max-Lloyd Optimal Quantizer可参考:
http://en.wikipedia.org/wiki/Quantization_(signal_processing)#Neglecting_the_entropy_constraint:_Lloyd.E2.80.93Max_quantization
评论
《“[Week2.5]图像量化——JPEG在此压缩”》 有 1 条评论
生僧