实验四 DPCM压缩系统的实现和分析

一、实验原理

DPCM是差分预测编码调制的缩写,是比较典型的预测编码系统。其编码原理框图和数据含义如下图所示:
实验四 DPCM压缩系统的实现和分析_第1张图片
由图可知,DPCM是一种有误差的编码方式,误差产生在量化器和反量化器上,量化误差=qn-qn’。量化区间越大,量化比特数越小,则量化误差越大。
送入Huffman编码器进行编码传输的是当前样本和其左侧样本的差值的量化值。

DPCM解码是不断将收到的qn与其左侧样本的预测值相加的过程。
实验四 DPCM压缩系统的实现和分析_第2张图片

二、实验代码

实验实现了将传入的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;
                }
                else
                {
                    temp=yBuf[i*Info_header.biWidth+j]-youtBuf[i*Info_header.biWidth+j-1];
                    qBuf[i*Info_header.biWidth+j]=temp/2;
                    youtBuf[i*Info_header.biWidth+j]=qBuf[i*Info_header.biWidth+j]*2+youtBuf[i*Info_header.biWidth+j-1];
                }
            }
        }

三、实验结果
birds.yuv
实验四 DPCM压缩系统的实现和分析_第3张图片
实验四 DPCM压缩系统的实现和分析_第4张图片
实验四 DPCM压缩系统的实现和分析_第5张图片

Camman256B.bmp
实验四 DPCM压缩系统的实现和分析_第6张图片
实验四 DPCM压缩系统的实现和分析_第7张图片
实验四 DPCM压缩系统的实现和分析_第8张图片

Clown256B.bmp
实验四 DPCM压缩系统的实现和分析_第9张图片
实验四 DPCM压缩系统的实现和分析_第10张图片
实验四 DPCM压缩系统的实现和分析_第11张图片

Fruit256B.bmp
实验四 DPCM压缩系统的实现和分析_第12张图片
实验四 DPCM压缩系统的实现和分析_第13张图片
实验四 DPCM压缩系统的实现和分析_第14张图片

Lena256B.bmp
实验四 DPCM压缩系统的实现和分析_第15张图片
实验四 DPCM压缩系统的实现和分析_第16张图片
实验四 DPCM压缩系统的实现和分析_第17张图片

Noise256B.bmp
实验四 DPCM压缩系统的实现和分析_第18张图片
实验四 DPCM压缩系统的实现和分析_第19张图片
实验四 DPCM压缩系统的实现和分析_第20张图片

Odie256B.bmp
实验四 DPCM压缩系统的实现和分析_第21张图片
实验四 DPCM压缩系统的实现和分析_第22张图片
实验四 DPCM压缩系统的实现和分析_第23张图片

Zone256B.bmp
实验四 DPCM压缩系统的实现和分析_第24张图片
实验四 DPCM压缩系统的实现和分析_第25张图片
实验四 DPCM压缩系统的实现和分析_第26张图片

从上图中可以发现,误差图像主要勾勒了轮廓等左右色值变化剧烈的地方。像Fruit256B.bmp这样原图比较复杂,但存在许多平坦区域的图像,其待进行Huffman编码的预测误差图像的字符分布概率比较集中,联想Huffman编码实验中得到的结论,推测其压缩比会比较大。而Noise256B.bmp、Zone256B.bmp这样左右像素相关性很低的图像,其预测误差图像的字符概率分布比较平均,Huffman编码后的压缩比很可能在1附近,甚至可能小于1。

这里写图片描述

比较表格中的数据可以验证上述结论。但Odie256B.bmp这幅图像虽然存在大面积平坦背景,其经过DPCM后熵编码的压缩比和直接熵编码的相等。由于压缩比=原文件大小(kB)/压缩后文件大小 (kB) ,当原文件的概率分布已经接近熵编码后的概率分布时,DPCM就比较多余了。

你可能感兴趣的:(实验四 DPCM压缩系统的实现和分析)