手机版

Jpeg文件格式简介(12)

发布时间:2021-06-05   来源:未知    
字号:

Jpeg文件格式简介 

些填充用途) 如果你在做 huffman 编码时碰巧产生了一个 0xFF, 那么就用 0xFF 0x00 代替. 就是说在 jpeg 图形解码时碰到 FF00 就把它当作 FF 处理.

另外在 huffman 编码区域结束时, 碰到几个 bit 没有用的时候, 应该用 1 去填充. 然后后面跟 FF.

下面是几个重要的标记

--------------------

SOI = Start Of Image = 'FFD8'

这个标记只在文件开始出现一次

EOI = End Of Image = 'FFD9'

JPG 文件都以 FFD9 结束

RSTi = FFDi ( i = 0..7) [ RST0 = FFD0, RST7=FFD7]

= 复位标记

通常穿插在数据流里, 我想是担心 JPG 解码出问题吧(应该配合 DRI 使用). RST 将 Huffman 的解码数据流复位. DC 也重新从 0 开始计

(SOS --- RST0 --- RST1 -- RST2 --...

...-- RST6 --- RST7 -- RST0 --...)

----

标记

----

下面是必须处理的标记

SOF0 = Start Of Frame 0 = FFC0

SOS = Start Of Scan = FFDA

APP0 = it's the marker used to identify a JPG file which uses the JFIF

specification = FFE0

COM = Comment = FFFE

DNL = Define Number of Lines = FFDC

DRI = Define Restart Interval = FFDD

DQT = Define Quantization Table = FFDB

DHT = Define Huffman Table = FFC4

JPG 文件中 Haffman 表的储存

---------------------------

JPEG 里定义了一张表来描述 Haffman 树. 定义在 DHT 标记后面. 注意: Haffman 代码的长度限制在 16bit 内.

一般一个 JPG 文件里会有 2 类 Haffman 表: 一个用于 DC 一个用于 AC (实际有 4 个表, 亮度的 DC,AC 两个, 色度的 DC,AC 两个)

这张表是这样保存的:

1) 16 字节:

第 i 字节表示了 i 位长的 Huffman 代码的个数 (i= 1 到 16)

2) 这表的长度 (字节数) = 这 16 个数字之和

现在你可以想象这张表怎么存放的吧? 对应字节就是对应 Haffman 代码等价数字. 我 不多解释, 这需要你先了解 Haffman 算法. 这里只举一个例子:

Haffman 表的表头是 0,2,3,1,1,1,0,1,0,0,0,0,0,0,0,0

就是说长度为 1 的代码没有

长度为 2 的代码为 00

Jpeg文件格式简介(12).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)