2017-03-03 8 views
0

Ich versuche eine JPEG-Datei zu entschlüsseln, um den Spaß daran zu haben, und bis jetzt habe ich es geschafft, die meisten wichtigen Daten zu entfernen (Quantisierungstabellen, Huffman-Tabellen, Bildinformationen). Aber ich stecke in dem entropiecodierten Abschnitt fest, der dem SOS-Marker folgt. Es gibt eine ähnliche Frage hier, die ich Parsing JPEG file format: Format of entropy-coded segments (ECS)? gesehen habe, und ich verstehe, dass die Bytes unmittelbar nach dem SOS-Header die JPEG-Daten selbst sind.Format von Entropie-kodierten Daten für mehrere Kanäle in JPEG

Ich verstehe das Format des Headers SOS, und es geht so etwas wie diese

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 

Nun, was ich wirklich nicht verstehe, ist der Huffman-komprimierte MCU Rohdaten Teil. Erstens bin ich verwirrt, warum es zwei Huffman-Tabellen gibt. Zweitens, wie bekomme ich die Daten von den verschiedenen Kanälen? Ist es in der Reihenfolge von Y Cb Cr? Oder YYYY ... YYY CbCb .... CbCb CrCr ... CrCr?

Ich habe mir den Quellcode einiger JPEG-Decoder angeschaut, aber sie sind wirklich schwer zu lesen. Ich brauche das nicht, um effizient zu sein, ich möchte nur in der Lage sein, das Bild schließlich neu zu erstellen.

Antwort

0

Das Format der komprimierten Daten ist komplex und hängt von der Art des SOF-Marktes ab.

Es kann eine beliebige Anzahl von Huffman-Tabellen geben. Normalerweise sind es zwei (für Y und die andere für Cb und Cr) oder 3 (für jede Komponente).

Je nach Scan-Struktur kann ein Scan 1 Komponente oder alle Komponenten enthalten (Interleaved Scan).

+0

Also für die bestimmte Datei, an der ich arbeite, hat es zufällig 2 Huffman-Bäume. Wie finde ich die Struktur der Scan-Struktur heraus? Ist es in einem der anderen Header, die ich verpasst habe? Ich benutze hauptsächlich diese Seite, um die Dateistruktur zu verstehen. http://vip.sugovica.hu/Sardi/kepnezo/JPEG%20File%20Layout%20and%20Format.htm, aber ich kann keine Details in den Headern auf den Entropiedaten finden. – CJX3711

+0

Ich habe dieses Buch verwendet, um es herauszufinden https://www.amazon.com/Compressed-Image-File-Formats-JPEG/dp/0201604434/ – user3344003