JPG-JPEG(JFIF)文件解码—文件结构

转载请注明:转自 http://blog.csdn.net/ymlbright  [email protected]

一、总体结构

JPEG文件使用的数据存储方式有多种。最常用的格式称为JPEG文件交换格式(JPEG File Interchange Format,JFIF)。而JPEG文件大体上由一个个数据段组成,数据段包含:标记码(Tag)、数据长度、数据。

           标记码(Tag)  2 Bytes
        数据长度(大端序) 2Bytes
数据 n-2 Bytes
……
下一个数据段

标记码由两个字节构成,其前一个字节是固定值0xFF,后一个字节则根据不同意义有不同数值。在每个标记码之前还可以添加数目不限的无意义的0xFF填充,也就说连续的多个0xFF可以被理解为一个0xFF,并表示一个标记码的开始。而在一个完整的两字节的标记码后,就是该标记码对应的压缩数据流,记录了关于文件的诸种信息。

常用的标记有SOI、APP0、DQT、SOF0、DHT、DRI、SOS、EOI

注意,SOI等都是标记的名称。在文件中,标记是以标记码形式出现的。例如SOI的标记代码为0xFFD8,即在JPEG文件中的如果出现数据0xFFD8,则表示此处为一个SOI标记。

JPG(JFIF)一般结构
SOI (0xFFD8)
APP0(0xFFE0)
APPn(0xFFEn)
DQT(0xFFDB)
SOFx(0xFFCx)
DHT(0xFFC4)
SOS(0xFFDA)
scanData
EOI(0xFFD9)


二、常用标记码数据段

1.SOI

代表JFIF图像数据的开始

2 Bytes  | 标记码 0xFFD8

2.APP0

应用程序标记 0

2 Bytes          | 标记码 0xFFE0
2 Bytes          | 数据段长度,包含本字段,但不包括标记码
5 Bytes          | 固定值 0x4A46494600,字符串 “JIF0”
1 Bytes          | 版本号
1 Bytes          | 版本号
1 Bytes          | 图像密度单位 (0:无单位 1:点数/英寸 2:点数/厘米)
2 Bytes          |
  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值