2017-03-03 20 views
0

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デコーダのソースコードを見てきましたが、実際には読みにくいです。私はこれが効率的である必要はありません、私はちょうど最終的にイメージを再現できるようにしたいです。

答えて

0

圧縮データの形式は複雑で、SOF市場の種類によって異なります。

ハフマンテーブルはいくつでもかまいません。通常は2つ(Yの場合はCbとCrの場合)または3(各コンポーネントの場合)です。

スキャン構造に応じて、スキャンには1つのコンポーネントまたはすべてのコンポーネント(インターリーブドスキャン)を含めることができます。

+0

私が取り組んでいる特定のファイルについては、2つのハフマンツリーが存在します。スキャン構造の構造を理解するにはどうすればよいですか?それは私が逃した他のヘッダーの1つにありますか?私は主にこのページを使用してファイル構造を理解しています。 http://vip.sugovica.hu/Sardi/kepnezo/JPEG%20File%20Layout%20and%20Format.htmしかし、私はエントロピーデータのヘッダーの詳細を見つけることができません。 – CJX3711

+0

私はこの本を使ってhttps://www.amazon.com/Compressed-Image-File-Formats-JPEG/dp/0201604434/を見つけました。 – user3344003

関連する問題