图像峰值信噪比的计算.docx

上传人:b****0 文档编号:17084984 上传时间:2023-07-21 格式:DOCX 页数:15 大小:417.22KB
下载 相关 举报
图像峰值信噪比的计算.docx_第1页
第1页 / 共15页
图像峰值信噪比的计算.docx_第2页
第2页 / 共15页
图像峰值信噪比的计算.docx_第3页
第3页 / 共15页
图像峰值信噪比的计算.docx_第4页
第4页 / 共15页
图像峰值信噪比的计算.docx_第5页
第5页 / 共15页
图像峰值信噪比的计算.docx_第6页
第6页 / 共15页
图像峰值信噪比的计算.docx_第7页
第7页 / 共15页
图像峰值信噪比的计算.docx_第8页
第8页 / 共15页
图像峰值信噪比的计算.docx_第9页
第9页 / 共15页
图像峰值信噪比的计算.docx_第10页
第10页 / 共15页
图像峰值信噪比的计算.docx_第11页
第11页 / 共15页
图像峰值信噪比的计算.docx_第12页
第12页 / 共15页
图像峰值信噪比的计算.docx_第13页
第13页 / 共15页
图像峰值信噪比的计算.docx_第14页
第14页 / 共15页
图像峰值信噪比的计算.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

图像峰值信噪比的计算.docx

《图像峰值信噪比的计算.docx》由会员分享,可在线阅读,更多相关《图像峰值信噪比的计算.docx(15页珍藏版)》请在冰点文库上搜索。

图像峰值信噪比的计算.docx

图像峰值信噪比的计算

1数字图像处理

数字图像处理是利用计算机(或数字技术)对图像信息进行加工处理,以改善图像质量、压缩图像数据或从图像数据中获取更多信息。

数字图像处理的主要方法可分为两大类:

空域法和变换域法。

a.空域法

把图像看作是平面中各个象素组成的集合,然后直接对这个二维函数进行相应的处理。

b.频域法(变换域法)

首先对图像进行正交变换,得到变换域系数阵列,然后再实行各种处理,处理后再反变换到空间域,得到处理结果。

这类处理包括:

滤波、数据压缩和特征提取等。

1.图像压缩编码基础

图像压缩即去除多余数据。

以数学的观点来看,图像压缩过程实际上就是将二维像素阵列变换为一个在统计上无关联的数据集合。

因此,图像压缩是指以较少的比特有损或无损地表示原来的像素矩阵的技术,也称图像编码。

图像压缩编码的必要性和可能性:

图像压缩编码的目的是以尽量少的比特数表征图像,同时保持复原图像的质量,使它符合预定应用场合的要求。

压缩数据量、提高有效性是图像压缩编码的首要目的。

图像编码是一种信源编码,其信源是各种类型的图像信息。

图像数据可以进行压缩有以下几方面的原因。

首先,原始图像数据是高度相关的,存在很大的冗余度。

如图像内相邻象素之间的空间冗余度。

序列图像前后帧之间的时间冗余度。

多光谱遥感图像各谱间的频率域冗余度。

数据冗余造成比特数浪费,消除这些冗余就可以节约码字,也就达到了数据压缩的目的。

其次,基用相同码长表示不同出现概率的符号也会造成符号冗余度。

如果采用可变长编码技术,对出现概率高的符号用短码字、对出现概率低的符号用长码字表示,就可消除符号冗余度,从而节约码字。

允许图像编码有一定的失真也是图像可以压缩的一个重要原因。

 

2图像压缩编码

图像压缩可以是有损数据压缩也可以是无损数据压缩。

对于如绘制的技术图、图表或者漫画优先使用无损压缩。

这是因为有损压缩方法,尤其是在低的位速条件下将会带来压缩失真。

如医疗图像或者用于存档的扫描图像等这些有价值的内容的压缩也应尽量选择无损压缩方法。

有损方法非常适合于自然的图像,例如一些应用中图像的微小损失是可以接受的(有时是无法感知的),这样就可以大幅度地减小位速。

无损图像压缩方法有:

行程长度编码,熵编码法(如LZW这样的自适应字典算法);有损压缩方法有:

(1)将色彩空间化减到图像中常用的颜色。

(2)色度抽样。

(3)变换编码。

(4)分形压缩(Fractalcompression)。

2.1图像压缩编码方法

图像压缩算法就是要在保证图像一定的重建质量的同时,通过去除冗余数据可以节约文件所占的码字从而极大地降低原始图像数据量,解决图像数据量巨大的问题,以达到对图像压缩的目的。

图像数据压缩技术就是研究如何利用图像数据的冗余性来减少图像数据量的方法。

因此,进行图像压缩研究的起点是研究图像数据的冗余性。

图像压缩方法主要分成两种类型:

一种是基于空间线性预测技术,即差分脉冲编码调制的无失真压缩算法,另一种是基于DCT的有失真压缩算法,并进一步应用熵编码。

a.无失真预测编码压缩算法

无失真预测编码压缩算法能准确无误地恢复原信息,它只是去掉了信源的冗余部分,却不能提供较高的压缩比。

b.基于DCT的有失真压缩编码算法

基于DCT的有失真压缩编码算法包括基本系统和增强系统两种不同层次的系统。

并定义了顺序工作方式和累进工作方式。

基本系统只采用顺序工作方式,熵编码时只能采用Huffman编码,且只能存储两套码表。

增强系统是基本系统的扩充,可采用累进工作方式,熵编码时可选用Huffman码或算术编码。

有失真压缩能提供较高的压缩比,但由于损失了信源的熵,压缩后的数据是无法准确无误地恢复,而是利用人的视觉特性使解压缩后的图像看起来与原始图像一样。

主要方法有预测编码、变换编码、模型编码、基于重要性的编码以及混合编码方法等。

压缩比随着编码方法的不同差别较大。

二维图像块经过各种正交变换后比较它们的优越性:

DCT、DST、K—L>斜坡变换>哈达码变换、哈尔变换(随图像块尺寸增大而饱和)。

虽然DCT变换在处理过程中需要用乘法电路,但由于LSI技术发展已使乘法器较为容易实现,所以DCT是正交变换编码的主要方式。

基于DCT编码的过程为先进行DCT正变换,再对DCT系数进行量化,并对量化后的直流系数和交流系数分别进行差分编码或行程编码,最后再进行熵编码。

在编码过程中,JPEG算法首先将RGB分量转化为亮度分量和色差分量,然后将图像分解为8×8的像素块,对这个8×8块进行二维离散余弦变换,每个块就产生了64个DCT系数,其中一个是直流(DC)系数,它表示了8×8输入矩阵全部值的平均数,其余63个系数为交流(AC)系数,接下来对DCT系数进行量化,最后将量化的DCT系数进行编码,就形成了压缩后的图像格式。

在解码过程中,先对已编码的量化的系数进行解码,然后求逆量化并利用二维DCT反变换把DCT系数转化为8×8样本像块,最后将反变换后的块组合成一幅图像。

这样就完成了图像的压缩和解压过程。

二维离散余弦正变换的公式如下:

其中:

二维离散余弦反变换公式如下:

2.2无损压缩

无损压缩利用数据的统计特性来进行数据压缩,典型的编码有Huffman编码、行程编码和算术编码。

码无损压缩的压缩率一般为2:

l~5:

1。

Huffman编码

一种用概率匹配方法进行信源编码的熵编码方法,通过利用已变换信号的统计特性,给其分配高效代码来实现数据压缩,用于去除图像数据的统计冗余。

Huffman编码是一种长度不均匀的、平均码率可以接近信息源熵值的一种编码方法。

它有两个明显的特点:

一是哈夫曼码的编码方法保证了概率大的符号对应于短码,概率小的符号对应于长码,充分利用了短码;

二是缩减信源的最后二个码字总是最后一闪不同,从而保证了哈夫曼码是即时码。

编码后使平均码长减小,以达到压缩的目的。

信息熵的计算公式:

哈夫曼码的平均码长计算公式:

其中,

是信源符号

的码长;

是信源符号

的概率。

信息传输速率:

由此可见,哈夫曼码的平均码长最小,消息传输速率最大,编码效率最高。

然后哈弗曼编码方法得到的码并非是唯一的,它们的平均码长相等,编码效率也相等,但是质量不完全相同,可用码方差来表示:

由经验得,进行哈夫曼编码时,为得到码方差最小的码,应使合并的信源符号位于缩减信源序列尽可能高的位置上,以减少再次合并的次数,充分利用短码。

Huffman编码的算法如下:

(1)将n个信源消息符号按其出现的概率大小依次排列,

(2)取两个概率最小的分别分配以0和1两码元,并将这两个概率相加作为一个新的概率,与所分配的二进符号生新排队;

(3)对重排后的两个概率最小符号重复步骤2的过程;

(4)不断继续上述过程,直到最后的两个符号配以0和1为止;

(5)从最后一级开始,向前返回得到各信源符号所对应的码元序列,即相应的码字。

在计算Huffman表时需要对原始图像数据扫描两遍:

第一遍要精确地统计出原始图像中每个灰度值出现的概率;第二遍是建立哈夫曼树并进行编码。

由于需要建立二叉树并遍历二叉树生成编码,因此数据压缩和还原速度都较慢。

但是该编码方法简单有效,而且编码效率相当高,因而得到了广泛应用。

Huffman编码小变字长编码方法是最佳的,其码字平均长度很接近信息符号的熵值。

Huffman编码的最高压缩效率可达到8∶1。

2.3均方误差

均方误差(MeanSquaredError,MSE)

  在相同测量条件下进行的测量称为等精度测量,例如在同样的条件下,用同一个游标卡尺测量铜棒的直径若干次,这就是等精度测量。

对于等精度测量来说,还有一种更好的表示误差的方法,就是标准误差。

  标准误差定义为各测量值误差的平方和的平均值的平方根,故又称为均方误差。

设n个测量值的误差为ε1、ε2……εn,则这组测量值的标准误差σ等于:

数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为MSE。

2.4峰值信噪比 

PSNR是“PeakSignaltoNoiseRatio”的缩写。

peak的中文意思是顶点。

而radio的意思是比率或比列的。

整个意思就是到达噪音比率的顶点信号,psnr是一般是用于最大值信号和背景噪音之间的一个工程项目。

通常在经过影像压缩之后,输出的影像通常都会有某种程度与原始影像不一样。

为了衡量经过处理后的影像品质,我们通常会参考PSNR值来认定某个处理程序够不够令人满意。

PSNR计算公式如下:

  Peak就是指8bits表示法的最大值255。

MSE指MeanSquareError(均方误差,各值相差的n次方和的平均值的n次平方根(这几个字应该没有)),I(角标n)指原始影像第n个pixel值,P(角标n)指经处理后的影像第n个pixel值。

PSNR的单位为dB。

所以PSNR值越大,就代表失真越少。

  PSNR是最普遍,最广泛使用的评鉴画质的客观量测法,不过许多实验结果都显示,PSNR的分数无法和人眼看到的视觉品质完全一致,有可能PSNR较高者看起来反而比PSNR较低者差,这是因为人眼的视觉对于误差的敏感度并不是绝对的,其感知结果会受到许多因素的影响而产生变化(例如:

人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响)。

2.5DCT系数的量化

为了达到压缩数据的目的,DCT系数需作量化,量化表需针对性地设计。

DCT系数量化是一个十分重要的过程,是造成DCT编解码信息损失(或失真)的根源。

量化过程即经过DCT变换图像的每个系数根据量化表除以各自对应的量化步长,得到量化系数。

量化的作用是在一定的主观保真度图像质量的前提下,丢掉那些对视觉影响不大的信息,以获得较高的压缩比.量化公式:

量化值(i,j)=[f(i,j)/量化矩阵(i,j)]

 

3程序设计

3.1DCT图像压缩的模型

DCT图像压缩模型如图3.1所示

f(i,j)

原图像

FDCT

F(u,v)

量化

压缩图像数据

IDCT

g(i,j)

压缩新图像

图3.1DCT图像压缩的模型

在编码过程中,将图像分解为8×8的象素块,对这个8×8块进行二维离散余弦变换,每个块就产生了64个DCT系数,其中一个DC系数位于左上角,是直流(DC)系数,它表示了8×8输入矩阵全部值的平均数,其余63个系数为交流(AC)系数。

接下来对DCT系数进行量化,相邻的8×8块之间的DC系数有较强的相关性。

最后将量化的DCT系数进行编码和传送,就形成了压缩后的图像格式。

在解码过程中,先对已编码的量化的系数进行解码,然后求逆量化并利用二维DCT反变换把DCT系数转化为8×8样本像块,最后将反变换后的块组合成一幅图像。

这样就完成了图像的压缩和解压过程。

图像块处理的整个过程由函数blkproc自动实现。

函数blkproc的格式为:

B=blkproc(A,[M,N],FUN,P1,P2…)

函数blkproc的参量为:

一幅输入图像A,将被处理的块的大小[M,N],用于处理这些块的函数FUN,以及块处理函数FUN的一些可选输入参数P1,P2,并重新将结果组合到输出图像。

3.2程序流程图

对一幅图像进行DCT压缩编解码的MATLAB程序流程图如图3.2所示。

输入一幅原始图像

开始

分成8x8象素块

根据量化表对变换系数进行量化

反DCT变换

计算重建图像的峰值信噪比

计算重建图像的均方误差

结束

DCT变换

压缩图像数据

图3.2程序流程图

3.3程序

主程序:

%------------------------压缩图像-----------------------------------

I=imread('1.bmp');

I=im2double(I);

%图像存储类型转换

T=dctmtx(8);

%离散余弦变换矩阵

B=blkproc(I,[88],'P1*x*P2',T,T');%对原图像进行DCT变换,,每个不同8×8块应用矩阵式′P1*x*P2′进行处理,必要时补0,其中P1=T,P2=T′

Mask=[11100000

11000000

10000000

00000000

00000000

00000000

00000000

00000000];%二值掩模,用来压缩DCT的系数,选取10个DCT系数重构图像

B2=blkproc(B,[88],'P1.*x',Mask);

%只保留DCT变换的10个系数,数据压缩,丢弃右下角高频数据

I2=blkproc(B2,[88],'P1*x*P2',T',T);

%进行DCT反变换,得到压缩后的图像

Imshow(I)

Title('原始图像')

figure;

Imshow(I2)

Title('压缩后的图像')

disp('DCTJPEG压缩前后均方误差MSE:

')

mse0=mse(I,I2)

disp('DCTJPEG压缩前后图像峰值信噪比(dB)')

PSNR0=PSNR(I,I2)

程序函数:

functionPSNR=PSNR(A,B)

%计算输入两图像A,B的峰值信噪比PSNR(dB)

A=double(A);%%图像数据类型转换

B=double(B);

[Row,Col]=size(A);%%输入图像的大小

[Row,Col]=size(B);

MSE=sum(sum((A-B).^2))/(Row*Col);%%均方误差MSE

PSNR=10*log10(255^2/MSE);%%峰值信噪比PSNR(dB)

%计算输入两图像A,B的均方误差

functionMSE=MSE(A,B)

A=double(A);

B=double(B);

[Row,Col]=size(A);%%输入图像的大小

[Row,Col]=size(B);

MSE=sum(sum((A-B).^2))/(Row*Col);%%均方误差MSE

3.4MATLAB仿真

经过matlab软件进行仿真,仿真图像如图3.3,图3.4,图3.5所示。

图3.3bmp原图像

图3.4压缩后JPEG图像

图3.5压缩前后msepsnr值

总结分析:

仿真中取了6个DCT系数,占10%比较原图和重构图像,可以发现:

在抛弃90%的DCT系数后,重构图像时并不会因此而带来其画面质量的显著下降,即重构图像的失真不大.当然,采用这种方法来实现压缩算法时,可以通过修改mask变量中的DCT系数来更好地比较仿真结果。

4心得体会

通过这次的课程设计作品的制作让我对单MATLAB的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距。

通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际,避免称为只会纸上谈兵的赵括。

在整个运用MATLAB影像处理工具箱中的相关函数和命令来实现基于DCT的图像压缩编码理论算法的仿真这程中,清晰了DCT图像压缩的方法。

仿真结果较好地反映出DCT图像压缩的特性。

图像DCT变换是目前最佳的图像变换,它有很多优点。

DCT是正交变换,它可以将8×8图像的空间表达式转换为频率域,只需要用少量的数据点表示图像;DCT产生的系数很容易被量化,因此能获得好的块压缩;DCT算法的性能很好,它有快速算法,因此它在硬件和软件中都容易实现;而且DCT算法是对称的,所以利用逆DCT算法可以用来解压缩图像。

在本文中用MATLAB来实现离散余弦变换的图像压缩,具有方法简单、速度快、误差小的优点,免去了大量矩阵计算,大大提高了图像压缩的效率和精度。

我知道了如何运用已掌握的知识,如何学习新的知识,如何去克服遇到的困难。

还有,怎样合理地安排时间,有效地查阅资料,甄选重点的知识。

所以的这些都是此次课程设计留给我的宝贵财富。

 

参考文献

[1]董长虹.MATLAB信号处理与应用.国防工业出版社,2005

[2]陈桂明等.应用MATLAB语言处理数字信号与数字图像.科学出版社,2001

[3]李弼程智能图像处理技术.北京:

电子工业出版社,2004

[4]李秀敏基于MATLAB的DCT变换JPEG图像压缩中的应用.光电与控制,2005,12

[5]娄莉.基于离散余弦变换的图像压缩技术.现代电子技术,2004,19

[6]卞国春基于DCT压缩的JPEG图像的快速检索.2005,7

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2