2

Jpeg/JFIF ファイルを解析していて、SOI (0xFF D8) の後、EOI (0XFFD9) が見つかるまで、0xFFXX (XX は 16 進数) で始まるさまざまな「ストリーム」を解析していることに気付きました。異なるチャンクの構造は次のとおりです。

APP0 marker     2 Bytes   
Length          2 Bytes

チャンクを解析すると、長さフィールドの 2 バイトに書き込まれた長さに達するまで解析します。その後、すぐに別のマーカーを見つけて、次のチャンクの長さが続くと思いました。常に正しいとは限らない私のパーサーによると、チャンク間にデータが存在する可能性があります。そのデータが何であるか、またそれが画像に関連しているかどうかはわかりませんでした。これが何であるか、およびそれらのバイトをどのように解釈するかについてのヒントはありますか?

私は迷っており、誰かが私を正しい方向に向けることができれば幸いです. 前もって感謝します

4

1 に答える 1

1

これも最近気付きました。私の場合、チャンクの長さを含まない ICC プロファイルである APP2 チャンクです。

実際、私が見る限り、チャンクの長さは最初の 2 バイトである必要はありません (通常はそうですが)。

JFIF では、データ セクションですべての 0xFF バイトが 0xFF 0x00 に置き換えられるため、そこから長さを計算するだけで済みます。別のヘッダーに到達するまで読んだだけですが、(ICC プロファイルで) 0xFF 0x6D などの意味をなさないバイト シーケンスが時々あることに気付きました。

于 2013-01-21T13:52:25.517 に答える