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

该博客介绍了DPCM(差分预测编码调制)的原理,展示了如何将bmp图像转换为yuv并进行8比特量化的DPCM编解码。实验结果显示,DPCM编码在不同类型的图像上表现出不同的压缩效果,特别是在具有平坦区域的图像上,压缩比可能较大。而对于像素相关性低的图像,压缩比可能接近或小于1。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验原理

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;
                }
                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
原图
预测误差图像
重建图像Y分量

Camman256B.bmp
原图
预测误差图像
重建图像Y分量

Clown256B.bmp
原图
预测误差图像
重建图像Y分量

Fruit256B.bmp
原图
预测误差图像
重建图像Y分量

Lena256B.bmp
原图
预测误差图像
重建图像Y分量

Noise256B.bmp
原图
预测误差图像
重建图像Y分量

Odie256B.bmp
原图
预测误差图像
重建图像Y分量

Zone256B.bmp
原图
预测误差图像
重建图像Y分量

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

这里写图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值