JPEGファイルをデコードしようとしていますが、これまでのところ重要なデータをほとんど取り出すことができました(量子化テーブル、ハフマンテーブル、画像情報)。しかし、私はSOSマーカーに続くエントロピーコーディングセクションで立ち往生しています。私がParsing JPEG file format: Format of entropy-coded segments (ECS)?を見たのと同様の質問があり、SOSヘッダーの直後のバイトがJPEGデータそのものであることを理解しています。JPEGの複数チャネルのエントロピー符号化データのフォーマット
私はSOSヘッダのフォーマットを理解し、それが今、私は本当にハフマン圧縮MCUの生データ部分であることを理解していないものを、この
FF DA // SOS header
00 0A // Header length
03 // 3 channels
01 00 02 11 03 11 // channel 1 QT 0 HT 0, channel 2&3 QT 1 HT 1
00 3F 00 // Other important stuff
XX XX XX XX XX XX XX ... // Huffman-compressed MCU raw data
...
FF D9 // EOI
のようなものです。まず、なぜ2つのハフマンテーブルがあるのか混乱しています。次に、複数のチャンネルからどのようにデータを取得するのですか?それはY Cb Crのオーダーですか?またはYYYY ... YYY CbCb .... CbCb CrCr ... CrCr?
いくつかのJPEGデコーダのソースコードを見てきましたが、実際には読みにくいです。私はこれが効率的である必要はありません、私はちょうど最終的にイメージを再現できるようにしたいです。
私が取り組んでいる特定のファイルについては、2つのハフマンツリーが存在します。スキャン構造の構造を理解するにはどうすればよいですか?それは私が逃した他のヘッダーの1つにありますか?私は主にこのページを使用してファイル構造を理解しています。 http://vip.sugovica.hu/Sardi/kepnezo/JPEG%20File%20Layout%20and%20Format.htmしかし、私はエントロピーデータのヘッダーの詳細を見つけることができません。 – CJX3711
私はこの本を使ってhttps://www.amazon.com/Compressed-Image-File-Formats-JPEG/dp/0201604434/を見つけました。 – user3344003