Jfif / jpeg解析,流之间的字节

时间:2012-12-08 17:12:03

标签: parsing jpeg

我正在解析Jpeg / JFIF文件,我注意到在SOI(0xFF D8)之后,我解析了以0xFFXX开头的不同“流”(其中XX是十六进制数),直到找到EOI(0XFFD9)。现在不同块的结构是:

APP0 marker     2 Bytes   
Length          2 Bytes

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

我迷路了,如果有人能指出我正确的方向,我会很高兴。提前致谢

1 个答案:

答案 0 :(得分:0)

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

事实上,只要我看到块的长度不必是前2个字节(尽管通常是这样)。

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