欢迎来到天天文库
浏览记录
ID:31942911
大小:206.00 KB
页数:19页
时间:2019-01-29
《jpeg图像压缩原理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、可编辑版JPEG编码JPEG是联合图象专家组(JointPictureExpertGroup)的英文缩写,是国际标准化组织(ISO)和CCITT联合制定的静态图象的压缩编码标准。和相同图象质量的其它常用文件格式(如GIF,TIFF,PCX)相比,JPEG是目前静态图象中压缩比最高的。我们给出具体的数据来对比一下。例图采用Windows95目录下的Clouds.bmp,原图大小为640*480,256色。用工具SEA(version1.3)将其分别转成24位色BMP、24位色JPEG、GIF(只能转成256色)
2、压缩格式、24位色TIFF压缩格式、24位色TGA压缩格式。得到的文件大小(以字节为单位)分别为:921,654,17,707,177,152,923,044,768,136。可见JPEG比其它几种压缩比要高得多,而图象质量都差不多(JPEG处理的颜色只有真彩和灰度图)。正是由于JPEG的高压缩比,使得它广泛地应用于多媒体和网络程序中,例如HTML语法中选用的图象格式之一就是JPEG(另一种是GIF)。这是显然的,因为网络的带宽非常宝贵,选用一种高压缩比的文件格式是十分必要的。JPEG有几种模式,其中最常用的
3、是基于DCT变换的顺序型模式,又称为基线系统(Baseline),以下将针对这种格式进行讨论。1.JPEG的压缩原理JPEG的压缩原理其实上面介绍的那些原理的综合,博采众家之长,这也正是JPEG有高压缩比的原因。其编码器的流程为:Word完美格式可编辑版图9.3JPEG编码器流程解码器基本上为上述过程的逆过程:图9.4解码器流程DCT下面对正向离散余弦变换(FDCT)变换作几点说明。 (1)对每个单独的彩色图像分量,把整个分量图像分成8×8的图像块,如图所示,并作为两维离散余弦变换DCT的输入。通过DCT变
4、换,把能量集中在少数几个系数上。 (2)DCT变换使用下式计算: 它的逆变换使用下式计算:Word完美格式可编辑版上面两式中,C(u),C(v)=(2)-1/2,当u,v=0;C(u),C(v)=1,其他。f(i,j)经DCT变换之后,F(0,0)是直流系数,其他为交流系数。(3)在计算两维的DCT变换时,可使用下面的计算式把两维的DCT变换变成一维的DCT变换:量化8×8的图象经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。由于该低频分量包含了图
5、象的主要信息(如亮度),而高频与之相比,就不那么重要了,所以我们可以忽略高频分量,从而达到压缩的目的。如何将高频分量去掉,这就要用到量化,它是产生信息损失的根源。这里的量化操作,就是将某一个值除以量化表中对应的值。由于量化表左上角的值较小,右上角的值较大,这样就起到了保持低频分量,抑制高频分量的目的。JPEGWord完美格式可编辑版使用的颜色是YUV格式。我们提到过,Y分量代表了亮度信息,UV分量代表了色差信息。相比而言,Y分量更重要一些。我们可以对Y采用细量化,对UV采用粗量化,可进一步提高压缩比。所以上面
6、所说的量化表通常有两张,一张是针对Y的;一张是针对UV的。如果不使用这两种表,你也可以把自己的量化表替换它们。亮度量化值表和色度量化值表直流编码、交流编码上面讲了,经过DCT变换后,低频分量集中在左上角,其中F(0,0)(即第一行第一列元素)代表了直流(DC)系数,即8×8子块的平均值,要对它单独编码。由于两个相邻的8×8子块的DC系数相差很小,所以对它们采用差分编码DPCM,可以提高压缩比,也就是说对相邻的子块DCWord完美格式可编辑版系数的差值进行编码。Delta=DC(0,0)k-DC(0,0)k-1
7、8×8的其它63个元素是交流(AC)系数,采用行程编码。这里出现一个问题:这63个系数应该按照怎么样的顺序排列?为了保证低频分量先出现,高频分量后出现,以增加行程中连续“0”的个数,这63个元素采用了“之”字型(Zig-Zag)的排列方法,如图9.5所示。图9.5Zig-Zag量化DCT系数序号015614152725247131626294238121725304143Word完美格式可编辑版9111824314044531019233239455254202233384651556021343747505
8、659613536484957586263这63个AC系数行程编码的码字用两个字节表示,如图9.6所示。图9.6行程编码熵编码上面,我们得到了DC码字和AC行程码字。为了进一步提高压缩比,需要对其再进行熵编码,这里选用Huffman编码,分成两步:(1)熵编码的中间格式表示对于AC系数,有两个符号。符号1为行程和尺寸,即上面的(RunLength,Size)。(0,0)和(15,0)是两个比较特殊的
此文档下载收益归作者所有