版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
景象匹配与目标识别大作业选题:图像压缩浅析1234背景介绍图像压缩相关基础知识基于DCT变换的JPEG图像压缩算法DCT算法的Matlab仿真实现2023/2/1选题背景:随着信息技术的发展,图像信息被广泛应用于多媒体通信和计算机系统中,但是图像数据的一个显著特点就是信息量大。具有庞大的数据量,如果不经过压缩,不仅超出了计算机的存储和处理能力,而且在现有的通信信道的传输速率下,是无法完成大量多媒体信息实时传输的,因此,为了更有效的存储、处理和传输这些图像数据,必须对其进行压缩,因此有必要对图像压缩编码进行研究。内容简介:首先在第二部分中简单介绍了一些与图像编码有关的基础知识;在第三部分中对基于DCT变换的JPEG图像压缩算法进行了详细的分析,重点介绍了JPEG压缩编码的具体过程和方法,详细介绍了编码中DCT变换、量化、熵编码和霍夫曼编码等模块的原理和数学推导以及各模块的功能分析。最后应用MATLAB进行了实验仿真并分析结果得出结论。1、背景介绍2023/2/12、基础知识1.图像压缩的概念减少表示数字图像时需要的数据量2.图像压缩的基本原理去除多余数据,以数学的观点来看,这一过程实际上就是将二维像素阵列变换为一个在统计上无关联的数据集合。图像压缩是指以较少的比特有损或无损地表示原来的像素矩阵的技术,也称图像编码。图像数据之所以能被压缩,就是因为数据中存在着冗余。2023/2/13.图像数据的冗余主要表现为:(1)图像中相邻像素间的相关性引起的空间冗余;(2)图像序列中不同帧之间存在相关性引起的时间冗余;(3)不同彩色平面或频谱带的相关性引起的频谱冗余。4.数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。
2023/2/15.图像压缩基本方法从压缩编码算法原理上可以分为以下3类:(1)无损压缩编码种类霍夫曼(Huffman)编码,算术编码,行程(RLE)编码,Lempelzev编码。(2)有损压缩编码种类预测编码,DPCM,运动补偿;频率域方法:正交变换编码(如DCT),子带编码;2023/2/1空间域方法:统计分块编码;模型方法:分形编码,模型基编码;基于重要性:滤波,子采样,比特分配,向量量化;(3)混合编码有JBIG,JPEG,H261,MPEG等技术标准。6.图像压缩效果的评估压缩方法的质量经常使用峰值信噪比来衡量,峰值信噪比用来表示图像有损压缩带来的噪声。但是,观察者的主观判断也认为是一个重要的、或许是最重要的衡量标准。2023/2/17、几种常见的连续色调静止图像压缩标准2023/2/13、基于DCT变换的JPEG图像压缩算法1、简化算法流程图原始图像数据分成8*8的小块DCT变换量化器熵编码器压缩数据量化表码表基于DCT编码的JPEG压缩过程简化图2023/2/1
在编码过程中,首先将输入图像颜色空间转换后分解为8×8大小的数据块,然后用正向二维DCT把每个块转变成64个DCT系数值,其中1个数值是直流(DC)系数,即8×8空域图像子块的平均值,其余的63个是交流(AC)系数,接下来对DCT系数进行量化,最后将变换得到的量化的DCT系数进行编码和传送,这样就完成了图像的压缩过程。在解码过程中,形成压缩后的图像格式,先对已编码的量子化的DCT系数进行解码,然后求逆量化并把DCT系数转化为8×8样本像块(使用二维DCT反变换),最后将操作完成后的块组合成一个单一的图像。这样就完成了图像的解压过程。2023/2/12、颜色空间的转换和采样JPEG文件使用的颜色空间为1982年推荐的电视图像数字化标准CCIR601(现为ITU-RBT.601)。在这个色彩空间中,每个分量、每个像素的电平规定为255级,用8位代码表示。JPEG只支持YCbCr颜色模式。其中Y代表亮度,CbCr代表色度。全彩色图像RGB模式转换到YCbCr模式,用下组公式:2023/2/13、DCT变换在傅里叶级数展开式中,如果被展开的函数是实偶函数,那么,其傅里叶级数中只包含余弦项,在将其离散化由此可导出余弦变换,或称之为离散余弦变换(DCT,DiscreteCosineTransform)[7]。二维离散余弦正向变换公式为式中:2023/2/1离散余弦变换(DCT)从本质上是一种变换分析方法,要在变换时最大的去除分析信号的相关性提取其特征,就必须适当的构造一组基函数,这组基函数以某种形式类似于我们所要表示的数据,甚至具有与数据相同的相关结构。在我们日常生活中常遇到的信号在空间域和频域都具有相关性。在空间上相隔较近的样值间的相关性比相隔较远的大的多,而在频域上通常呈带状。为了分析和表示这样的信号,我们需要基函数在空间域和频域是局域性的。由于离散余弦函数的频域分辨率与时域分辨率成反比,刚好与实际信号长时低频、短时高频的特性相吻合。既能精确定位信号的突发跳变,又能把握信号的整体变化率。由此可见,离散余弦变换是一种比较理想的进行信号处理的数学工具。2023/2/1在MATLAB的图像处理工具箱中,可以直接调用dct2和idct2来实现二维离散余弦变换及其反变换。(1)dct2dct2函数实现图像的二维离散余弦变换,其语法为:F=dct2(f)运行下列程序:f=imread('cameraman.tif');f=im2double(f);F=dct2(f);subplot(121),imshow(f,[]);subplot(122),imshow(log(1+20*abs(F)),[]);2023/2/1运行结果如图所示由运行结果可知,DCT变换具有能量集中的性质,数据集中在左上角。因此进行图像压缩时离散余弦变换矩阵可以舍弃右下角的高频数据。2023/2/18×8的图像经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。由于该低频分量包含了图像的主要信息(如亮度),而高频与之相比,就不那么重要了,所以我们可以忽略高频分量,从而达到压缩的目的。将高频分量去掉,这就要用到量化,它是产生信息损失的根源。这里的量化操作,就是将某一个值除以量化表中对应的值。由于量化表左上角的值较小,右下角的值较大,这样就起到了保持低频分量,抑制高频分量的目的。JPEG使用的颜色是YUV格式。我们提到过,Y分量代表了亮度信息,UV分量代表了色差信息。相比而言,Y分量更重要一些。我们可以对Y采用细量化,对UV采用粗量化,可进一步提高压缩比。所以上面所说的量化表通常有两张,一张是针对Y的,一张是针对UV的。2023/2/1JPEG压缩色度和亮度量化表2023/2/1量化之后的效果图2023/2/1注:
由于人眼对低频分量的图像比对高频分量的图像更敏感,因此表中的左上角的量化步距要比右下角的量化步距小。量化会产生误差,上图是综合大量的图像测试的实验结果,对于大部分图像都有很好的结果。表中可以看出,高频部分对应的量化值大,目的就是将高频部分编程接近于0,以便以后处理。JPEG可以在压缩比和图像质量间作取舍。方法就是改变量化值。如果量化值放大一倍,则有更多的系数量化为0,提高了压缩比。2023/2/14、量化系数的编排经过DCT变换和量化之后,低频分量集中在左上角,其中F(0,0)(即第一行第一列元素)代表了直流(DC)系数,即8×8子块的平均值,要对它单独编码。由于两个相邻的8×8子块的DC系数相差很小,所以对它们采用差分编码DPCM,可以提高压缩比,也就是说对相邻的子块DC系数的差值进行编码。8×8的其它63个元素是交流(AC)系数,DCT变换后低频分量多呈圆形辐射状向高频率衰减,因此可以看成按Z字形衰减。所以量化后的系数要重新编排,目的是为了增加连续的“0”系数的个数,就是“0”的游程长度,因此,量化系数按Z字形扫描读数,采用行程编码。2023/2/1亮度量化后的系数注:可见量化后只有左上角的几个点(低频分量)不为零,这样采用行程编码就会很有效。2023/2/1量化后的DCT系数的编排如图所示2023/2/15、系数编码DC系数的编码图像块经过DCT变换之后得到的DC直流系数有两个特点,一是系数的数值比较大,二是相邻8×8图像块的DC系数值变化不大。根据这个特点,JPEG算法使用了差分脉冲调制编码技术。连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5(101)的位数为3,则霍夫曼码值应该是100,两者连接在一起即为100101。这种霍夫曼码值+幅值的表示方法简称SS/VV编码。2023/2/1AC系数的编码量化AC系数的特点是1×64矢量中包含有许多“0”系数,并且许多“0”是连续的,因此使用非常简单和直观的游程长度编码(RLE)对它们进行编码。所谓行程编码(Run-LengthEncoding)就是指仅存储一个像素值以及具有相同颜色的像素数目的图像数据编码方式,或称游程编码。63个AC系数采用行程编码的方式进行编码的格式如下页示意图所示。也即在AC01到AC63中,找出每一个非零的AC值,将其表示成(NN/SS)VV的形式,其中:NN表示该AC值前的0的个数;而SS、VV与DC的定义一样,其中SS表示该非零值占的位数,VV表示其幅值。如果连续的非0超过15个时,增加一个扩展字节:(15/0)表示连续16个0。另外若有一串0延伸到AC63,一律用(0/0)表示结束。2023/2/1对于AC系数,有两个符号。符号1为行程和尺寸,即上面的(RunLength,Size)。符号2为幅度值。(0,0)和(15,0)是两个比较特殊的情况。(0,0)表示块结束标志(EOB),(15,0)表示ZRL,当行程长度超过15时,用增加ZRL的个数来解决。
对于DC系数,也有两个符号。符号1为尺寸(Size);符号2为幅度值(Amplitude)。(NN/SS)VV示意图2023/2/1
第一步,熵编码的中间格式表示。JPEG中为了更进一步节约空间,并不直接保存数据的具体数值,而是将数据按照位数分为16组,保存在表里面。这也就是所谓的变长整数编码VLI。即,第0组中保存的编码位数为0,其编码所代表的数字为0;第1组中保存的编码位数为1,编码所代表的数字为-1或者1......举例来说:Size=6时,Amplitude的范围是-63~-32,以及32~63。对绝对值相同,符号相反的码字之间为反码关系。所以AC系数为32的码字为100000,33的码字为100001,-32的码字为011111,-33的码字为011110。符号2的码字紧接于符号1的码字之后。对于DC系数,Y和UV的Huffman码表也不同。6、熵编码2023/2/1详解:先看DC系数。假设前一个8×8子块DC系数的量化值为12,则本块DC系数与它的差为3,查表得Size=2,Amplitude=3,所以DC中间格式为(2)(3)。下面对AC系数编码。经过Zig-Zag扫描后,遇到的第一个非零系数为-2,其中遇到零的个数为1(即RunLength)查表得Size=2。所以RunLength=1,Size=2,Amplitude=-2,所以AC中间格式为(1,2)(-2)。其余的点类似,可以求得这个8×8子块熵编码的中间格式为(DC)(2)(3),(1,2)(-2),(0,1)(-1),(0,1)(-1),(0,1)(-1),(2,1)(-1),(EOB)(0,0)2023/2/1VLI:DC系数表2023/2/1VLI:AC系数表2023/2/1第二步,熵编码。对符号1进行Huffman编码(亮度,色差的Huffman码表不同)。对符号2进行变长整数VLI编码。对于(2)(3):2查DC亮度Huffman表得到11,3经过VLI编码为011;对于(1,2)(-2):(1,2)查AC亮度Huffman表得到11011,-2是2的反码,为01;对于(0,1)(-1):(0,1)查AC亮度Huffman表得到00,-1是1的反码,为0;.....最后,这一8×8子块亮度信息压缩后的数据流为11011,1101101,000,000,000,111000,1010。总共31比特,其压缩比是64×8/31=16.5,大约每个象素用半个比特(原先需要8个比特)。以上是图像压缩编码的整个过程。2023/2/1
从上面的例子可以看出,压缩比和图像质量是呈反比的,以下是压缩效率与图像质量之间的大致关系,可以根据需要,选择合适的压缩比。压缩比和图像质量的关系如表所示
图:压缩效率与图像质量的关系2023/2/1
综述:JPEG格式是目前网络上最流行的图像格式,是可以把文件压缩到最小的格式,在Photoshop软件中以JPEG格式储存时,提供11级压缩级别,以0—10级表示。其中0级压缩比最高,图像品质最差。即使采用细节几乎无损的10级质量保存时,压缩比也可达5:1(1.6bits/pixel)。以BMP格式保存时得到的4.28MB图像文件,在采用JPG格式保存时,其文件仅为178KB,压缩比达到24:1。一般情况下,采用第8级压缩为存储空间与图像质量兼得的最佳比例。JPEG格式的应用非常广泛,特别是在网络和光盘读物上,都能找到它的身影。目前各类浏览器均支持JPEG这种图像格式,因为JPEG格式的文件尺寸较小,下载速度快。2023/2/14、Matlab的仿真实现
MATLAB为用户提供了专门的函数来从图像格式的文件中读写图像数据。这种方法不像其他编程语言,需要编写复杂的代码,只需要简单地调用MATLAB提供的函数即可。4.1图像的读写(1)图像文件的读取。MATLAB中利用函数imread来实现图像文件的读取操作。其语法格式为:A=imread(filename,fmt)[X,map]=imread(filename,fmt)[…]=imread(filename)Filename:图像文件名;fmt:图像文件格式。2023/2/1(2)图像文件的输出。MATLAB中利用函数imwrite来实现图像文件的输出和保存操作。其语法格式为:Imwrite(A,filename,fmt)Imwrite(X,map,filename,fmt)Imwrite(…,filename)Imwrite(A,filename,fmt)把图像A写入图像文件filename。Imwrite(X,map,filename,fmt)把X和它的相关色彩信息map写入filename。2023/2/1(3)图像文件的显示。在MATLAB中,可以调用image函数来显示图像,其语法格式为:Image(C)Image(C)把矩阵C转成一图像。C可以是一M×N或M×N×3维的矩阵,且可以是包含double,uint8,或uint16数据。image是用来显示附标图像,即显示的图像上有x、y坐标轴的显示,可以看到图像的像素大小。但可以加上axisoff命令即可把坐标去掉。在MATLAB的图像处理工具箱中,还提供了一个应用很广泛的图像显示函数,即imshow函数,其调用格式为:Imshow(I,n)显示一幅n个灰度级的图像I。2023/2/1Imshow(I,[lowhigh])一定灰度范围内显示灰度图像,low和high参数分别为数据数组的最小值和最大值。Imshow(BW)显示二进制图像。Imshow(X,map)显示索引图像,其中X代表索引图像的数据矩阵,map为颜色映射表。imshowfilename显示一幅在当前目录下的合法文件。imshow(RGB)显示RGB图像。RGB是一个m×n×3的数组。对于RGB中的每个像素(r,c),imshow显示数值(r,c,1:3)所描述的颜色。2023/2/14.2程序流程图开始输入图片分成8*8像素块,DCT变换输入量化表,对变换系数量化对量化系数进行扫描熵编码反量化反DCT变换显示所选图像的信噪比结束2023/2/14.3Matlab仿真程序I=imread('cameraman.tif')I=im2double(I)%转换图像矩阵为双精度型。T=dctmtx(8)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度国有股权托管与监管服务协议3篇
- 2025版酒水企业市场拓展与海外市场布局合同3篇
- 世界足球日介绍
- 临床医用呕吐靠枕的设计与应用
- Unit7 On the farm(说课稿)-2023-2024学年译林版(三起)英语三年级下册
- Unit 4 Living with technology Reading 1 说课稿-2024-2025学年高中英语牛津译林版(2020)选择性必修第二册
- 全国粤教版信息技术七年级下册第二章第四节《制作楼道自动感应灯》说课稿
- 湖南省衡阳县第四中学2024-2025学年高二上学期期末考试语文试卷(含答案)
- 第二次月考测评卷 Lesson 4 ~ 6 综合测评卷(含答案)-2024-2025学年科普版(三起)英语四年级上册
- 湖南省永州市2024-2025学年高一上学期期末质量监测政治试题(含答案)
- 2024版Amazon店铺代运营与品牌授权及维权服务合同3篇
- 影视作品价值评估-洞察分析
- 环境因素控制措施
- 2024年下学期学校德育工作总结
- 《电化学储能系统舱大件运输特殊要求》
- 2025年采购部工作计划
- 《防范于心反诈于行》中小学防范电信网络诈骗知识宣传课件
- 江苏某小区园林施工组织设计方案
- 勘察工作质量及保证措施
- 垫江县中医院2018年11月份临床技能中心教学设备招标项目招标文件
- 排放源统计(环统)年报填报指南
评论
0/150
提交评论