关于量化
是在不降低视觉效果的前提下减少图像编码长度,减少视觉恢复中不必要的信息。
标量量化与矢量量化
- 标量量化:对数据一个一个的进行量化,称为标量量化。标量量化是矢量量化的特殊情况。
- 矢量量化:将数据分组,每组K个数据构成K维矢量,再以矢量为处理单元进行量化。矢量量化是标量量化的多维扩展。
标量量化器
均匀标量量化编码器uqimg_enc
以量化索引比特数确定量化等级数,其输入值范围[0,255],运行参数为:
[ -i infile ][ -o outfile ][ -b num-bits ]
uqimg_enc→设为启动项目
uqimg_enc→属性→配置属性→调试→命令参数
填入(以sena为例):
-i ../images/quantized_img/sena_3bit.quan -o ../images/reconstructed_img/sena_3bit_re.img
均匀标量量化解码器uqimg_dec
运行参数为:
[ -i infile ][ -o outfile ]
uqimg_dec→设为启动项目
uqimg_dec→属性→配置属性→调试→命令参数
填入(以sena为例):
-i ../images/quantized_img/sena_3bit.quan -o ../images/reconstructed_img/sena_3bit_re.img
调试结果
以3比特量化为例
不同量化比特数与PSNR性能结果如下:
量化比特数 | 源文件大小 | 量化后文件大小 | 压缩比 | PSNR |
---|---|---|---|---|
1 | 64kB | 8.02kB | 12.5% | 18.62 |
2 | 64kB | 16.0kB | 25.0% | 21.51 |
3 | 64kB | 24.0kB | 37.5% | 28.39 |
峰值信噪比(英语:Peak signal-to-noise ratio,常缩写为PSNR)是一个表示信号最大可能功率和影响它的表示精度的破坏性噪声功率的比值的工程术语。
- PSNR接近 50dB ,代表压缩后的图像仅有些许非常小的误差。
- PSNR大于 30dB ,人眼很难察觉压缩后和原始影像的差异。
- PSNR介于 20dB 到 30dB 之间,人眼就可以察觉出图像的差异。
- PSNR介于 10dB 到 20dB 之间,人眼还是可以用肉眼看出这个图像原始的结构,且直观上会判断两张图像不存在很大的差异。
- PSNR低于 10dB,人类很难用肉眼去判断两个图像是否为相同,一个图像是否为另一个图像的压缩结果。
矢量量化器
矢量量化的优点
- 只传码字的下标,编码效率高
- 在相同码率下,比标量量化失真小
- 在相同失真下,比标量量化码率低
矢量量化的缺点
- 复杂度随着维数的增加呈指数增加
LBG算法程序trvqsp_img
通过该程序获得初始码书,训练用于图像压缩的矢量量化器码本。
运行参数为:
[infile] [outfile] [-b 要生成的码书的大小][-w 构成矢量的像素块的宽度][-t 构成矢量的像素块的高度][-x 图像每行像素数量][-y 图像每列像素数量]
例如,对于sena图像,将2x2像素块合并为矢量,采用LBG算法将其构成的4维空间划分为16个区域(生成码书大小为16)
../images/sena.img ../images/codebooks/sena22_16.cb -b 16 -w 2 -t 2
矢量量化编码器vqimg_enc
该程序可用来压缩矢量量化的图像。通过trvqsp_img程序获得码书,向量的尺寸和码书的大小在包含码书的文件中指定。向量的索引使用固定长度代码进行编码。
运行参数为:
[-i 输入img图像文件路径] [-o输出量化索引文件路径] [-c码本文件路径]
例如:
-i ../images/sena.img -o ../images/quantized_img/sena22_16.vquan -c ../images/codebooks/sena22_16.cb
矢量量化解码器vqimg_dec
该程序利用码本重建出经过vqimg_enc压缩的图像。
运行参数为:
[-i infile] [-o outfile]
例如:
-i ../images/quantized_img/sena22_16.vquan -o ../images/reconstructed_img/sena22_16_re.img
调试结果
以划分256区域为例:
不同量化等级与PSNR性能结果如下:
量化等级 | 源文件大小 | 量化后文件大小 | 压缩比 | PSNR |
---|---|---|---|---|
16 | 64kB | 8.04kB+76B | 12.7% | 32.48 |
32 | 64kB | 10.0kB+140B | 15.8% | 34.83 |
64 | 64kB | 12.0kB+268B | 19.2% | 36.48 |
128 | 64kB | 14.0kB+524B | 22.7% | 38.18 |
256 | 64kB | 16.0kB+1034B | 26.6% | 39.84 |
总结
由PSNR的数值可知,矢量量化后图像的精度高于标量量化后的图像。矢量量化引入了多个决定输出的因素,利用了像素之间的相关性,故其性能由于标量量化。