JPEG压缩编码统一标准.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9.4 JPEG压缩编码标准 JPEG是联合图象教授组(Joint Picture Expert Group)英文缩写,是国际标准化组织(ISO)和CCITT联合制订静态图象压缩编码标准。和相同图象质量其它常见文件格式(如GIF,TIFF,PCX)相比,JPEG是现在静态图象中压缩比最高。我们给出具体数据来对比一下。例图采取Windows95目录下Clouds.bmp,原图大小为640*480,256色。用工具SEA(version1.3)将其分别转成24位色BMP、24位色JPEG、GIF(只能转成256色)压缩格式、24位色TIFF压缩格式、24位色TGA压缩格式。得到文件大小(以字节为单位)分别为:921,654,17,707,177,152,923,044,768,136。可见JPEG比其它多个压缩比要高得多,而图象质量全部差不多(JPEG处理颜色只有真彩和灰度图)。 正是因为JPEG高压缩比,使得它广泛地应用于多媒体和网络程序中,比如HTML语法中选择图象格式之一就是JPEG(另一个是GIF)。这是显然,因为网络带宽很宝贵,选择一个高压缩比文件格式是十分必需。 JPEG有多个模式,其中最常见是基于DCT变换次序型模式,又称为基线系统(Baseline),以下将针对这种格式进行讨论。 1.???????? JPEG压缩原理 JPEG压缩原理其实上面介绍那些原理综合,博采众家之长,这也正是JPEG有高压缩比原因。其编码器步骤为: 图9.3???? JPEG编码器步骤 解码器基础上为上述过程逆过程: 图9.4???? 解码器步骤 8×8图象经过DCT变换后,其低频分量全部集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域低通滤波器)。因为该低频分量包含了图象关键信息(如亮度),而高频和之相比,就不那么关键了,所以我们能够忽略高频分量,从而达成压缩目标。怎样将高频分量去掉,这就要用到量化,它是产生信息损失根源。这里量化操作,就是将某一个值除以量化表中对应值。因为量化表左上角值较小,右上角值较大,这么就起到了保持低频分量,抑制高频分量目标。JPEG使用颜色是YUV格式。我们提到过,Y分量代表了亮度信息,UV分量代表了色差信息。相比而言,Y分量更关键部分。我们能够对Y采取细量化,对UV采取粗量化,可深入提升压缩比。所以上面所说量化表通常有两张,一张是针对Y;一张是针对UV。 上面讲了,经过DCT变换后,低频分量集中在左上角,其中F(0,0)(即第一行第一列元素)代表了直流(DC)系数,即8×8子块平均值,要对它单独编码。因为两个相邻8×8子块DC系数相差很小,所以对它们采取差分编码DPCM,能够提升压缩比,也就是说对相邻子块DC系数差值进行编码。8×8其它63个元素是交流(AC)系数,采取行程编码。这里出现一个问题:这63个系数应该根据怎么样次序排列?为了确保低频分量先出现,高频分量后出现,以增加行程中连续“0”个数,这63个元素采取了“之”字型(Zig-Zag)排列方法,图9.5所表示。 图9.5???? Zig-Zag 这63个AC系数行程编码码字用两个字节表示,图9.6所表示。 图9.6???? 行程编码 上面,我们得到了DC码字和 AC行程码字。为了深入提升压缩比,需要对其再进行熵编码,这里选择Huffman编码,分成两步: (1)熵编码中间格式表示 对于AC系数,有两个符号。符号1为行程和尺寸,即上面(RunLength,Size)。(0,0)和(15,0)是两个比较特殊情况。(0,0)表示块结束标志(EOB),(15,0)表示ZRL,当行程长度超出15时,用增加ZRL个数来处理,所以最多有三个ZRL(3×16+15=63)。符号2为幅度值(Amplitude)。 对于DC系数,也有两个符号。符号1为尺寸(Size);符号2为幅度值(Amplitude)。 (2)熵编码 对于AC系数,符号1和符号2分别进行编码。零行程长度超出15个时,有一个符号(15,0),块结束时只有一个符号(0,0)。 对符号1进行Hufffman编码(亮度,色差Huffman码表不一样)。对符号2进行变长整数VLI编码。举例来说:Size=6时,Amplitude范围是-63~-32,和32~63,对绝对值相同,符号相反码字之间为反码关系。所以AC系数为32码字为100000,33码字为100001,-32码字为011111,-33码字为011110。符号2码字紧接于符号1码字以后。 对于DC系数,Y和UVHuffman码表也不一样。 掉了这么半天书包,你可能已经晕了,呵呵。举个例子来说明上述过程就轻易明白了。 下面为8×8亮度(Y)图象子块经过量化后系数。 15??? 0???? -1??? 0???? 0???? 0???? 0?

文档评论(0)

159****1748 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档