2012-12-08 30 views
1

我解析一个Jpeg/JFIF文件,我注意到在SOI(0xFF D8)之后,我解析了以0xFFXX(其中XX是十六进制数字)开始的不同“流”,直到我找到了EOI(0XFFD9)。现在有多种不同的组块的结构是:Jfif/jpeg解析,流之间的字节

APP0 marker  2 Bytes 
Length   2 Bytes 

现在,当我解析块我解析直到我到达写入长度字段的2个字节的长度。之后,我想我会立即找到另一个标记,然后是下一个块的长度。根据我的解析器,这并不总是正确的,大块之间可能有数据。我找不到那些数据是什么,以及它是否与图像相关。你有什么提示这可能是什么,以及如何解释这些字节?

我迷路了,如果有人能指出正确的方向我会很高兴。在此先感谢

回答

0

我最近也注意到了这一点。在我的情况下,它是一个APP2块,它是ICC配置文件,不包含块的长度。

事实上,就我所见,块的长度不必是前2个字节(尽管通常是这样)。

在JFIF中,数据部分中的所有0xFF字节被替换为0xFF 0x00,所以它应该只是一个计算长度的问题。我只是读了,直到我打到另一个标题,但是我注意到有时(在ICC配置文件中)有字节序列没有意义,例如0xFF 0x6D,所以我可能仍然缺少一些东西。