一、实验原理
DPCM是差分预测编码调制的缩写,是比较典型的预测编码系统。其编码原理框图和数据含义如下图所示:
由图可知,DPCM是一种有误差的编码方式,误差产生在量化器和反量化器上,量化误差=qn-qn’。量化区间越大,量化比特数越小,则量化误差越大。
送入Huffman编码器进行编码传输的是当前样本和其左侧样本的差值的量化值。
DPCM解码是不断将收到的qn与其左侧样本的预测值相加的过程。
二、实验代码
实验实现了将传入的bmp图像文件进行DPCM编解码。先把bmp文件转换为yuv文件(代码参照实验二),再对yuv文件进行编码。一幅图像第一列的预测值都置为128。
在bmp2yuv的主函数中添加以下代码,即可实现8比特量化的DPCM。
for (i = 0; i < Info_header.biHeight; i++)
{
for(j = 0;j < Info_header.biWidth;j++ )
{
if((i*Info_header.biWidth+j) % Info_header.biWidth ==0)
{
youtBuf[i*Info_header.biWidth+j]=128;
qBuf[i*Info_header.biWidth+j]=0;