ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:31.13KB ,
资源ID:1474116      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1474116.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JPEG图片资料编解码详解.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JPEG图片资料编解码详解.docx

1、JPEG图片资料编解码详解JPEG文件编/解码详解(1)JPEG(Joint Photographic Experts Group)是联合图像专家小组的英文缩写。它由国际电话与电报咨询委员会CCITT(The International Telegraph and Telephone Consultative Committee)与国际标准化组织ISO于1986年联合成立的一个小组,负责制定静态数字图像的编码标准。小组一直致力于标准化工作,开发研制出连续色调、多级灰度、静止图像的数字图像压缩编码方法,即JPEG算法。JPEG算法被确定为国际通用标准,其适用范围广泛,除用于静态图像编码外,还推广

2、到电视图像序列的帧内图像压缩。而用JPEG算法压缩出来的静态图片文件称为JPEG文件,扩展名通常为*.jpg、*.jpe*.jpeg。JPEG专家组开发了两种基本的压缩算法、两种数据编码方法、四种编码模式。具体如下:压缩算法: 有损的离散余弦变换(Discrete Cosine Transform,DCT); 无损的预测技术压缩。数据编码方法: 哈夫曼编码; 算术编码;编码模式: 基于DCT顺序模式:编/解码通过一次扫描完成; 基于DCT递进模式:编/解码需要多次扫描完成,扫描效果从粗糙到精细,逐级递进; 无损模式:基于DPCM,保证解码后完全精确恢复到原图像采样值; 层次模式:图像在多个空间

3、多种分辨率进行编码,可以根据需要只对低分辨率数据作解码,放弃高分辨率信息。在实际应用中,JPEG图像使用的是离散余弦变换、哈夫曼编码、顺序模式。JPEG压缩编码算法的主要计算步骤如下:(0) 8*8分块。(1) 正向离散余弦变换(FDCT)。(2) 量化(quantization)。(3) Z字形编码(zigzag scan)。(4) 使用差分脉冲编码调制(DPCM)对直流系数(DC)进行编码。(5) 使用行程长度编码(RLE)对交流系数(AC)进行编码。(6) 熵编码。笔者在实践过程中查阅了大量的资料,发现大多数书籍资料和网上资料都是从编码角度分析JPEG的编/解码方式,并且都只是介绍编码过

4、程中的主要方法。所以,本文从解码角度详细分析JPEG的编/解码过程,并且加入许多笔者实践过程中遇到的问题和解决方法,希望从另一个角度说明问题,以更好帮助读者结合其他资料解决问题。不过,介绍解码过程之前,首先要了解JPEG文件中数据的存储格式。一、JPEG文件格式介绍JPEG文件使用的数据存储方式有多种。最常用的格式称为JPEG文件交换格式(JPEG File Interchange Format,JFIF)。而JPEG文件大体上可以分成两个部分:标记码(Tag)和压缩数据。标记码由两个字节构成,其前一个字节是固定值0xFF,后一个字节则根据不同意义有不同数值。在每个标记码之前还可以添加数目不限

5、的无意义的0xFF填充,也就说连续的多个0xFF可以被理解为一个0xFF,并表示一个标记码的开始。而在一个完整的两字节的标记码后,就是该标记码对应的压缩数据流,记录了关于文件的诸种信息。常用的标记有SOI、APP0、DQT、SOF0、DHT、DRI、SOS、EOI。注意,SOI等都是标记的名称。在文件中,标记码是以标记代码形式出现。例如SOI的标记代码为0xFFD8,即在JPEG文件中的如果出现数据0xFFD8,则表示此处为一个SOI标记。本文附录列出一张完整的JPEG定义的标记表,供读者查阅。这里仅列出几个常用标记的标记代码、占用字节长度和表示的意义。 SOI,Start of Image,

6、图像开始 标记代码 2字节 固定值0xFFD8 APP0,Application,应用程序保留标记0 标记代码 2字节 固定值0xFFE0 包含9个具体字段: 数据长度 2字节 9个字段的总长度 即不包括标记代码,但包括本字段 标识符 5字节 固定值0x4A46494600,即字符串“JFIF0” 版本号 2字节 一般是0x0102,表示JFIF的版本号1.2 可能会有其他数值代表其他版本 X和Y的密度单位 1字节 只有三个值可选 0:无单位;1:点数/英寸;2:点数/厘M X方向像素密度 2字节 取值范围未知 Y方向像素密度 2字节 取值范围未知 缩略图水平像素数目 1字节 取值范围未知 缩

7、略图垂直像素数目 1字节 取值范围未知 缩略图RGB位图 长度可能是3的倍数 缩略图RGB位图数据本标记段可以包含图像的一个微缩版本,存为24位的RGB像素。如果没有微缩图像(这种情况更常见),则字段“缩略图水平像素数目”和字段“缩略图垂直像素数目”的值均为0。 APPn,Application,应用程序保留标记n,其中n=115(任选) 标记代码 2字节 固定值0xFFE10xFFF 包含2个具体字段: 数据长度 2字节 2个字段的总长度 即不包括标记代码,但包括本字段 详细信息 数据长度-2字节 内容不定 例如,Adobe Photoshop生成的JPEG图像中就用了APP1和APP13两

8、个标记段分别存储了一幅图像的副本。 DQT,Define Quantization Table,定义量化表 标记代码 2字节 固定值0xFFDB 包含9个具体字段: 数据长度 2字节 字段和多个字段的总长度 即不包括标记代码,但包括本字段 量化表 数据长度-2字节a) 精度及量化表ID 1字节 高4位:精度,只有两个可选值 0:8位;1:16位 低4位:量化表ID,取值范围为03b) 表项 (64(精度+1)字节 例如8位精度的量化表 其表项长度为64(0+1)=64字节本标记段中,字段可以重复出现,表示多个量化表,但最多只能出现4次。 SOF0,Start of Frame,帧图像开始 标记

9、代码 2字节 固定值0xFFC0 包含9个具体字段: 数据长度 2字节 六个字段的总长度 即不包括标记代码,但包括本字段 精度 1字节 每个数据样本的位数 通常是8位,一般软件都不支持 12位和16位 图像高度 2字节 图像高度(单位:像素),如果不支持 DNL 就必须 0 图像宽度 2字节 图像宽度(单位:像素),如果不支持 DNL 就必须 0 颜色分量数 1字节 只有3个数值可选 1:灰度图;3:YCrCb或YIQ;4:CMYK 而JFIF中使用YCrCb,故这里颜色分量数恒为3 颜色分量信息 颜色分量数3字节(通常为9字节)a) 颜色分量ID 1字节 b) 水平/垂直采样因子 1字节 高4位:水平采样因子 低4位:垂直采样因子 (曾经看到某资料把这两者调转了)c) 量化表 1字节 当前分量使用的量化表的ID本标记段中,字段应该重复出现,有多少个颜色分量(字段),就出现多少次(一般为3次)。 DHT,Difine Huffman Table,定义哈夫曼表 标记代码 2字节 固定值0xFFC4 包含2个具体字段:数据长度 2字节 字段和多个字段的总长度 即不包括标记代码,但包括本字段哈夫曼表 数据长度-2字节a) 表ID和表类型 1字节 高4位:类型,只有两个值可选

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1