,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2.3 静态图象压缩标准JPEG,主讲人:,黄一华,2.3 静态图象压缩标准JPEG主讲人:黄一华,1,看下面这两幅图片:,你能分辨哪一幅是,Bmp,格式,哪一幅是,JPEG,格式吗?,图片1 图片2,Bmp,格式(900,K),JPEG,格式(40,K),看下面这两幅图片:你能分辨哪一幅是Bmp格式,哪一幅是JPE,2,为什么会有如此大的差距呢?,JPEG采用了,图象压缩,的技术,为什么会有如此大的差距呢?JPEG采用了图象压缩的技术,3,本节重点内容,JPEG标准的基本系统中压缩过程有哪几步,以及各步的工作原理是什么?,本节重点内容JPEG标准的基本系统中压缩过程有哪几步,以及各,4,2.3.1 JPEG标准的主要内容,JPEG标准选定ADCT作为静态图象压缩的标准化算法,本标准有两大分类。,2.3.1 JPEG标准的主要内容JPEG标准选定ADCT作,5,第一类方式以DCT为基础,缺点:含有量化过程、非可逆,优点:变换系数较少,还原质量高,第二类方式以二维空间DPCM为基础,缺点:压缩率低,优点:可完全复原,第一类方式以DCT为基础,6,2.3.2 JPEG静态图象压缩算法,JPEG定义两种相互独立的基本压缩算法。,1.一种是基于DCT的有失真压缩算法。,2.另一种是基于空间线性预测技术,(DPCM)的无失真压缩算法。,2.3.2 JPEG静态图象压缩算法JPEG定义两种相互独,7,1.基于DPCM的无失真编码,为了满足无失真压缩的需要,JPEG选择的一种简单的预测编码方式。,优点:硬件容易实现,图象重建质量好,缺点:压缩比太低(2:1),1.基于DPCM的无失真编码为了满足无失真压缩的需要,,8,2.基于DCT的有失真压缩编码(重点),包括两种不同的系统,基本系统和增强系统,增强系统是基本系统的扩充。,基于DCT编码器的工作原理框图见图2.9。,2.基于DCT的有失真压缩编码(重点)包括两种不同的系统,基,9,FDCT,表说明,熵编码器,量化器,表说明,源图象数据(8*8),压缩图象数据,编码器,图2.9 基于,DCT,编码过程,FDCT表说明熵编码器量化器表说明源图象数据(8*8)压缩图,10,1.原始图象分割成8*8子块,2.离散余弦变换,3.量化处理,4.DC系数的编码和AC系数的行程编码,5.熵编码,基于DCT的有失真压缩编码,五个步骤:,1.原始图象分割成8*8子块基于DCT的有失真压缩编码五,11,(1).分成8*8子块,原始图象顺序分割成,8*8,子块,(共,64,小块,其中每一块可以作为一个整体对待),(1).分成8*8子块原始图象顺序分割成8*8子块,12,(2).离散余弦变换,离散余弦正变换(FDCT),采样精度为P位(二进制),把0,2,p,-1,范围的无符号数变成-2,p-1,2,p-1,的有符号数,作为离散余弦正变换(forward DCT,FDCT)的输入,输出,:经FDCT后输出64个基信号的幅值,即DCT系数。,(2).离散余弦变换离散余弦正变换(FDCT),13,(3).量化处理,输入:,对,FDCT,输出的,DCT,系数进行量化处理,关键,:找最小量化失真(误差)的量化器。,作用,:在一定主观保真度图象质量前提下,丢掉那些对视觉影响不大的信息,通过量化可调节数据压缩比。,输出,:,DC,系数(直流)和,AC,系数(交流),(3).量化处理输入:对FDCT输出的DCT系数进行量化处理,14,JPEG采用线性均匀量化器,定义为对64个DCT系数除以量化步长,再四舍五入取整。,F,Q,(u,v)=Integer Round F(u,v)/Q(u,v),Q(u,v):量化器步长,是量化表的元素。,JPEG采用线性均匀量化器,定义为对64个DCT,15,量化表,量化表系数随DCT系数的位置和彩色分量不同有不同的值,尺寸为8*8,与64个变换系数一一对应。,例子参见教材P28表2.2和2.3表。,量化表,16,(3).DC系数的编码和AC系数的行程编码,输入,:量化后的DC系数和AC系数。,输出,:经DPCM编码后的DC系数,和经行程编码后的AC系数。,(3).DC系数的编码和AC系数的行程编码输入:量化后的DC,17,(3),直流分量DC,(1).64个变换系数经量化后,坐标 u=v=0 的 F(0,0)称 DC 系数,即直流分量。是64个空域图象采样值的平均值。,(2).JPEG的量化后的DC系数采用DPCM编码,即对DIFF=DC,i,DC,i-1,编码。,如图:教材29页,图2.11。,(3).采用这种编码方式的原因:相邻8*8块之间DC系数有较强相关性。,(3)直流分量DC,18,(3),交流分量,其余63个交流系数(AC)采用行程编码。(Z字型扫描)可增加行程中连续0的个数。如图:,DC,AC,01,AC,77,(3)交流分量 DCAC01AC,19,(3),例2.3假设AC系数扫描结果中包含“,3,0,0,0,0,0,12,0,0,0”数据,则对它的行程编码的结果为“,(5,4),(12),”,其中(5,4)占用一个字节存放,(12)占用4位存放。,(3)例2.3假设AC系数扫描结果中包含“,3,0,0,20,(4).熵编码,为了进一步压缩数据,需对DC码和AC行程编码的码字再做基于统计特性的熵编码。,JPEG建议的熵编码是Huffman编码和自适应二进制编码。,输入,:DC码和AC行程编码的码字。,输出,:压缩后的数据。,(4).熵编码为了进一步压缩数据,需对DC码和AC行程编码的,21,熵编码可分成两步进行,(1)先把DC码和形成编码转换成中间符号序列。,(2)然后给这些符号赋予变长码字。,熵编码可分成两步进行,22,(1).熵编码的中间格式,符号1:,(行程,尺寸),符号2:(幅值),行程:前后两个非零AC系数之间连续0 的个数,尺寸:后一个非零AC系数幅值编码所需 比特数,幅值:用以表示非零AC系数的幅值。,范围:,(1).熵编码的中间格式,23,直流分量DC也有类似于AC系数的编码格式:,符号1:,(尺寸),符号2:(幅值),尺寸:DC差值的幅值编码所需比特数。,幅值:DC的幅值,范围:,直流分量DC也有类似于AC系数的编码格式:,24,(2)可变长度熵编码,将63个AC系数表示为符号1和符号2的序列,其中行程长度超过15时,有多个符号1,块结束(EOB)时仅有以个符号1(0,0)。,可变长度熵编码就是对上述序列进行变长编码。,(2)可变长度熵编码,25,五个步骤的关系,前一个步骤的输出是下一个步骤的输入。,过程,:,原始图象,分成8*8块,DCT系数,量化后的DCT系数,编码的DC系数和行程编码的AC系数,熵编码,五个步骤的关系前一个步骤的输出是下一个步骤的输入。,26,(5).压缩比和图象质量,(5).压缩比和图象质量,27,3.基于DCT的累进操作方式编码,以累进的方式对图像进行多次的扫描压缩。,3.基于DCT的累进操作方式编码以累进的方式对图像进行多次的,28,两种累进方式,(1).频谱选择法,一次扫描中只对64个DCT变换系数中某些频带的系数进行编码。,(2).按位逼近法,沿着DCT量化系数有效位方向分段累进编码。,两种累进方式(1).频谱选择法,29,4.基于DCT的分层操作方式,用于:,在必须使用低分辨率的设备来存取或观察高分辨率图象的应用中,这种方式非常有效。,4.基于DCT的分层操作方式用于:,30,课后作业,1。教材第69页,第5题,2。思考:JPEG还有哪些可以改进的地方?,课后作业1。教材第69页,第5题,31,The End,谢谢大家!,The End谢谢大家!,32,