数据压缩试验四:使用 DPCM 编码进行图像压缩

本文介绍了使用DPCM(差分脉冲编码调制)进行图像压缩的基本原理和实现过程。通过与左侧像素值取差计算预测误差并量化编码,实现了图像的压缩。实验结果显示,8bit-1bit量化编码后的预测误差值集中在2bits附近,压缩质量可以通过PSNR(峰值信噪比)进行评估。代码实现包括量化编码、DPCM文件操作、统计分析和PSNR计算等功能。
摘要由CSDN通过智能技术生成

使用 DPCM 编码进行图像压缩

基本原理

DPCM,即差分脉冲编码调制(Differential Pulse Code Modulation),通过对图像进行预测编码并缩减图片预测误差的动态范围来实现图像的压缩。本次试验中只对亮度信号 Y 通道进行编码压缩,将图片的第一列像素值作为原始参考值进行预测,通过与左侧的像素值取差计算预测误差,然后进行量化编码。以下为 DPCM 编码端与解码端的原理图
DPCM 编解码器原理图
值得注意的是,在编码端中其实已经内嵌了一个解码端,为的是在编码端用以编码像素的重建值作为下一像素的预测值。

压缩结果

这是未进行 DPCM 编码的原始图像:
在这里插入图片描述
以下依次为 8bit - 1bit量化编码后的重建图像及其各自与原始图像的差值灰度图像:


可以看出,在进行 7、8bit 量化时图片没有太明显的差别,但从 6bit 开始块效应明显,并从 4bit 开始产生明显的偏差,差值灰度图也越来越接近原始图像的灰度图

结果分析

  1. 首先给出不同比特量化后预测误差值的概率分布图(上)与原始图像各亮度值的概率分布图(下)在这里插入图片描述

在这里插入图片描述
可以看到量化后的预测误差值大多集中在 2 b i t s 2^{bits} 2bits 附近,因为对量化预测误差有搬移的过程,因而说明预测误差多数集中在0附近

  1. 通过对原始图像及各预测误差图像进行 Huffman 编码后得到以下压缩比比较(计算方法为原始图像经过 Huffman 编码后的文件比特数除以经过 DPCM 及 Huffman 编码后的文件比特书)在这里插入图片描述

  2. 通过计算 PSNR 来计算压缩质量

什么是PSNR:
  PSNR,即峰值信号噪声比(Peak Signal to Noise Ratio),通过判断 PSNR 的值来衡量压缩质量,一般规则如下:
  · PSNR≥40dB时,图像质量非常好,接近于原图像;
  · 30dB≤PSNR<40dB时,图像有可察觉的失真,但质量仍可接受;
  · 20dB≤PSNR<30dB时,图像质量较差;
  · PSNR<20dB时,图像质量已经无法接受。
具体计算方法如下:

  1. 首先计算均方误差 MSE(Mean Square Error):
    M S E = ∑ i = 0 M ∑ j = 0 N [ f ( I , j ) − f ′ ( I , j ) ] 2 M N MSE = \dfrac{\sum_{i=0}^M \sum_{j=0} ^N\left[f\left(I,j\right)-f'\left(I,j\right)\right]^{2}}{MN} MSE=MNi=0Mj=0N[f(I,j)f(I,j)]2
    其中 M、N 为图像的宽和高,f(i,j)、f’(i,j) 为原图像和重建图像在 (i,j) 的像素值。
  2. 计算 PSNR:
    P S N R = 10 l g ( 2 b i t s − 1 ) 2 M S E PSNR = 10lg\dfrac{\left(2^{bits}-1\right)^{2}}{MSE} PSNR=10lgMSE(2bits1)2</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值