- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JPEG文件编-解码详解.pdf
JPEG 文件编/解码详解
JPEG(Joint Photographic Experts Group )是联合图像专家小组的英文缩写。
它由国际电话与电报咨询委员会 CCITT (The International Telegraph and Tele
phone Consultative Committee )与国际标准化组织ISO 于 1986 年联合成立的
一个小组,负责制定静态数字图像的编码标准。
小组一直致力于标准化工作,开发研制出连续色调、多级灰度、静止图像
的数字图像压缩编码方法,即JPEG 算法。JPEG 算法被确定为国际通用标准,
其适用范围广泛,除用于静态图像编码外,还推广到电视图像序列的帧内图像
压缩。而用 JPEG 算法压缩出来的静态图片文件称为 JPEG 文件,扩展名通常
为*.jpg、*.jpe*.jpeg。
JPEG 专家组开发了两种基本的压缩算法、两种数据编码方法、四种编码
模式。具体如下:
压缩算法:
有损的离散余弦变换(Discrete Cosine Transform,DCT );
无损的预测技术压缩。
数据编码方法:
哈夫曼编码;
算术编码;
编码模式:
基于 DCT 顺序模式:编/解码通过一次扫描完成;
基于 DCT 递进模式:编/解码需要多次扫描完成,扫描效果从粗糙到精
细,逐级递进;
无损模式:基于 DPCM ,保证解码后完全精确恢复到原图像采样值;
层次模式:图像在多个空间多种分辨率进行编码,可以根据需要只对低
分辨率数据作解码,放弃高分辨率信息。
在实际应用中,JPEG 图像使用的是离散余弦变换、哈夫曼编码、顺序模式。
JPEG 压缩编码算法的主要计算步骤如下:
(0) 8*8 分块。
(1) 正向离散余弦变换(FDCT) 。
(2) 量化(quantization) 。
(3) Z 字形编码(zigzag scan) 。
(4) 使用差分脉冲编码调制(DPCM)对直流系数(DC)进行编码。
(5) 使用行程长度编码(RLE)对交流系数(AC)进行编码。
(6) 熵编码。
笔者在实践过程中查阅了大量的资料,发现大多数书籍资料和网上资料都
是从编码角度分析 JPEG 的编/解码方式,并且都只是介绍编码过程中的主要方
法。所以,本文从解码角度详细分析 JPEG 的编/解码过程,并且加入许多笔者
实践过程中遇到的问题和解决方法,希望从另一个角度说明问题,以更好帮助
读者结合其他资料解决问题。
不过,介绍解码过程之前,首先要了解 JPEG 文件中数据的存储格式。
一、JPEG 文件格式介绍
JPEG 文件使用的数据存储方式有多种。最常用的格式称为 JPEG 文件交换
格式(JPEG File Interchange Format ,JFIF )。而JPEG 文件大体上可以分成
两个部分:标记码(Tag)和压缩数据。
标记码由两个字节构成,其前一个字节是固定值 0xFF,后一个字节则根据
不同意义有不同数值。在每个标记码之前还可以添加数目不限的无意义的0xF
F 填充,也就说连续的多个 0xFF 可以被理解为一个 0xFF,并表示一个标记码
的开始。而在一个完整的两字节的标记码后,就是该标记码对应的压缩数据流,
记录了关于文件的诸种信息。
常用的标记有SOI、APP0 、DQT 、SOF0、DHT 、DRI 、SOS、EOI 。
注意,SOI 等都是标记的名称。在文件中,标记码是以标记代码形式出现。
例如 SOI 的标记代码为0xFFD8,即在JPEG 文件中的如果出现数据 0xFFD8,
则表示此处为一个 SOI 标记。
本文附录列出一张完整的JPEG定义的标记表,供读者查阅。这里仅列出几
个常用标记的标记代码、占用字节长度和表示的意义。
SOI,Start of Image,图像开始
标记代码 2 字节 固定值0xFFD8
APP0 ,Application ,应用程序保留标记 0
标记代码 2 字节 固定值0xFFE0
包含 9 个具体字段:
① 数据长度 2 字节 ①~⑨9个字段的总长度
文档评论(0)