数据压缩实验4-DPCM编码

来源:互联网 发布:中国广电网络缴费 编辑:程序博客网 时间:2024/05/22 00:38

一、实验原理

1.      预测编码

预测编码是根据离散信号之间存在着一定关联性的特点,利用前面一个或多个信号预测下一个信号进行,然后对实际值和预测值的差(预测误差)进行编码。如果预测比较准确,误差就会很小。在同等精度要求的条件下,就可以用比较少的比特进行编码,达到压缩数据的目的。

2.      DPCM编解码原理


DPCM(Differential Pluse Code Modulation)是差分预测编码调制的缩写,是比较典型的预测编码系统。在DPCM系统中,需要注意的是预测器的输入是已经解码以后的样本。之所以不用原始样本来做预测,是因为在解码端无法得到原始样本,只能得到存在误差的样本。因此,在DPCM编码器中实际内嵌了一个解码器,如上图所示。

DPCM是一个反馈系统,采用这种结构可以避免量化误差的积累,x(k)为输入,x(k)’是重建值,也作为预测器确定下一个预测值的输入,x(k-1)’是对x(k)x的预测,e(k)为预测误差,DPCM系统对e(k)进行量化编码,并将其反馈回去补偿过去编码带来的量化误差。

二、实验内容

在本次实验中,我们采用固定预测器和均匀量化器。预测器采用左侧预测。量化器采用8比特均匀量化。在实验2—BMP2YUV实验基础上进行代码添加,在main函数中,对直接输出的Y数据进行DCPM编码得到重建Y数据和预测误差数据,并将重建Y数据写入最后的YUV文件中。DPCM编码模块如下:


 

为了防止数据溢出造成误差,采用中间变量进行计算。

本实验的目标是验证DPCM编码的编码效率。首先读取一个256级的图像,采用设定的预测方法计算预测误差,并对预测误差进行8比特均匀量化。在DPCM编码器实现的过程中可同时输出预测误差图像和重建图像。

三、实验结果及分析













将预测误差图像写入文件并将该文件输入Huffman编码器,得到输出码流、给出概率分布图并计算压缩比。将原始图像文件输入输入Huffman编码器,得到输出码流、给出概率分布图并计算压缩比。最后比较两种系统(DPCM+熵编码和仅进行熵编码)之间的编码效率(压缩比和图像质量)。

以下9张符号概率分布图均为预测误差信号,与上面的图片按顺序一一对应





统计结果如下:



通过符号概率分布图可以看出,较与原来符号分布概率,预测误差符号分布概率更为集中,差不多的图像质量下,经Huffman编码后也得到了更多的压缩,

而图9和图7这样轮廓不清,符号概率比较平均的图片即使经过DPCM编码也并不能提高压缩比。

 

 

0 0
原创粉丝点击