实验名称:DPCM压缩系统的实现和分析
实验目的
掌握DPCM编解码系统的基本原理。初步掌握实验用C/C++/Python等语言编程实现DPCM编码器,并分析其压缩效率。
一、实验内容
1.DPCM编解码原理
DPCM是差分预测编码调制的缩写,是比较典型的预测编码系统。在DPCM系统中,需要注意的是预测器的输入是已经解码以后的样本。之所以不用原始样本来做预测,是因为在解码端无法得到原始样本,只能得到存在误差的样本。因此,在DPCM编码器中实际内嵌了一个解码器
在一个DPCM系统中,有两个因素需要设计:预测器和量化器。理想情况下,预测器和量化器应进行联合优化。实际中,采用一种次优的设计方法:分别进行线性预测器和量化器的优化设计
2.DPCM编码系统的设计
在本次实验中,采用固定预测器和均匀量化器。预测器采用左侧预测。量化器采用8比特均匀量化。本实验的目标是验证DPCM编码的编码效率。
首先读取一个256级的灰度图像,采用自己设定的预测方法计算预测误差,并对预测误差进行8比特均匀量化
在DPCM编码器实现的过程中可同时输出预测误差图像和重建图像。
将预测误差图像写入文件并将该文件输入Huffman编码器,得到输出码流、给出概率分布图并计算压缩比。
将原始图像文件输入Huffman编码器,得到输出码流、给出概率分布图并计算压缩比。
最后比较两种系统(1.DPCM+熵编码和2.仅进行熵编码)之间的编码效率(压缩比和图像质量)。压缩质量以PSNR进行计算。
3.PSNR峰值信噪比
计算量化误差时需要计算其均方误差MSE。若图像大小为m×n,I与K分别为原始图像和重建噪声图像,则其均方误差计算公式为:
峰值信噪比(单位为dB)的计算公式为:
其中表示图像点颜色的最大数值,如果每个样点用8位表示
=255
图像高度m-1 图像宽度 n-1
PSNR是最普遍和使用最为广泛的一种图像客观评价指标,然而它是基于对应像素点间的误差,即基于误差敏感的图像质量评价。由于并未考虑到人眼的视觉特性(人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响等),因而经常出现评价结果与人的主观感觉不一致的情况。
- PSNR
40dB说明图像质量极好(即非常接近原始图像)
- 30
PSNR
40dB通常表示图像质量是好的(即失真可以察觉但可以接受)
- 20
PSNR
30dB说明图像质量差
- PSNR
20dB图像质量已无法接受
4. Huffman编码
Huffman是一种无失真信源编码算法,主要目的是根据使用频率来最大化节省字符(编码)的存储空间,编码后可以得到即时的最佳码。
5. 编码效率与压缩量分析
压缩量依据PSNR分析
编码效率(压缩比和图像质量)
压缩比计算公式:
(1)原图像大小/DPCM+熵编码生成的预测误差图像大小
(2)原图像大小/仅进行熵编码生成的预测误差图像大小