Post on 06-Apr-2016
1
JPEG / JFIF
Ein Referat von Robert Becker
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 2
JPEG JFIF• JPEG (Joint Photographic Experts Group) Komitee, setzt sich aus
den Organisationen ISO und CCITT zusammen.
• Traten erstmals 1986 zusammen.
• 1992 dann der JPEG Standard
• JPEG 2000 ist der neueste Standard
• JFIF (JPEG File Interchange Format) ist das eigentliche Grafikformat, die Implementierung des Standards
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 3
JPEG JFIF• Ziele:
• Kompressionsverfahren ohne Datenverlust
(lossless mode)
• Kompressionsverfahren mit Datenverlust,
aber einstellbarer Kompressionsrate
• Vertretbare Komplexität
• Auf alle unbewegten Bilder anwendbar,
ohne Beschränkung der Farbtiefe
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 4
Kompression mit Verlusten
1. Konvertierung des Bildes in den YUV-Farbraum
2. Farb-Subsampling, Aufteilung in Blöcke
3. Diskrete Cosinustransformation (DCT)
4. Quantisierung der DCT-Koeffizienten
5. Serialisierung der Koeffizienten in ZickZack-Anordnung
6. Codierung der Koeffizienten1. Huffmancodierung
2. Arithmetische Codierung
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 5
Der YUV-Farbraum
• Normalerweise in RGB, CYM, ...
3 Basen im Farbenraum Farbmodell
• Auge kann Helligkeitsunterschiede besser erkennen als Farbunterschiede Helligkeit-Farbigkeit-Modell
• JPEG lässt die Wahl
des Modells frei
• In JFIF ist das Helligkeit-
Farbigkeit-Modell YUV festgelegt
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 6
Das YUV-Modell
• Y ist die Luminanz
• U die Farbabweichung in Richtung Rot (Chrominanz)• V die Farbabweichung in Richtung Blau (Chrominanz)
Um Farbwerte in RGB-Darstellung
in YUV umzurechnen,
braucht man folgende Formel:
Die Formel für die
Rücktransformation
Ist wie folgt:
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 7
• Kleine Unterschiede in U und V sind für das Auge nur schwer wahrzunehmen
Farbsubsampling = Werte für U und V werden in 2x2 Blöcken gespeichert
• Weiterhin werden die Pixelwerte in 8x8 Blöcke aufgeteilt und getrennt bearbeitet
Farbsubsampling / Aufteilen in Blöcke
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 8
• DCT verwandt mit der Fourier Transformation• DCT:
• IDCT (Inverse DCT):
Diskrete Cosinus Transformation (DCT)
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 9
• 8x8 Block = diskretes Signal von 64 Werten• Werte sind abhängig von den 2 räumlichen Dimensionen x und y
Diskrete Cosinus Transformation (DCT)
Pixel(IDCT)
DCT
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 10
• Werte werden in ihr Spektrum transformiert, auf eine Basis von 64 orthogonalen, diskreten Signalen
• Koeffizienten bilden die Ausgabewerte
Diskrete Cosinus Transformation (DCT)
DC - Wert
AC - Werte
Der DC (Direct Current) Wert ist der Durchschnitt der 64 Werte mal 8(Gleichstromkoeffizient)
Die AC (Alternating Current) Werte speichern die Veränderungen zum DC(Wechselstromkoeffizient)
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 11
• Beispiele
Diskrete Cosinus Transformation (DCT)
700 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0
87 87 87 87 87 87 87 8787 87 87 87 87 87 87 8787 87 87 87 87 87 87 8787 87 87 87 87 87 87 8787 87 87 87 87 87 87 8787 87 87 87 87 87 87 8787 87 87 87 87 87 87 8787 87 87 87 87 87 87 87
DCT IDCT
Resultat
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 12
• Beispiele
Diskrete Cosinus Transformation (DCT)
DCT IDCT
Resultat
700 100 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0
105 102 97 91 84 78 73 70105 102 97 91 84 78 73 70105 102 97 91 84 78 73 70105 102 97 91 84 78 73 70105 102 97 91 84 78 73 70105 102 97 91 84 78 73 70105 102 97 91 84 78 73 70105 102 97 91 84 78 73 70
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 13
• Beispiele
Diskrete Cosinus Transformation (DCT)
DCT IDCT
Resultat
104 94 81 71 71 81 94 104104 94 81 71 71 81 94 104104 94 81 71 71 81 94 104104 94 81 71 71 81 94 104104 94 81 71 71 81 94 104104 94 81 71 71 81 94 104104 94 81 71 71 81 94 104104 94 81 71 71 81 94 104
700 0 100 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 14
• Beispiele
Diskrete Cosinus Transformation (DCT)
DCT IDCT
Resultat
700 100 100 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0
121 109 91 75 68 71 80 86121 109 91 75 68 71 80 86121 109 91 75 68 71 80 86121 109 91 75 68 71 80 86121 109 91 75 68 71 80 86121 109 91 75 68 71 80 86121 109 91 75 68 71 80 86121 109 91 75 68 71 80 86
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 15
• Beispiele
Diskrete Cosinus Transformation (DCT)
DCT IDCT
Resultat
700 100 100 0 0 0 0 0200 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0
156 144 125 109 102 106 114 121151 138 120 104 97 100 109 116141 129 110 94 87 91 99 106128 116 97 82 75 78 86 93114 102 84 68 61 64 73 80102 89 71 55 48 51 60 6792 80 61 45 38 42 50 5786 74 56 40 33 36 45 52
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 16
• Beispiele
Diskrete Cosinus Transformation (DCT)
DCT IDCT
Resultat
950 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 500
124 105 139 95 143 98 132 114105 157 61 187 51 176 80 132139 61 205 17 221 32 176 9895 187 17 239 0 221 51 143143 51 221 0 239 17 187 9598 176 32 221 17 205 61 139132 80 176 51 187 61 157 105114 132 98 143 95 139 105 124
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 17
• DCT-Werte werden durch einen Wert aus der Quantisierungsmatrix geteilt und danach gerundet
• Rückwärts muss der DCT-Wert nur mit dem Wert aus der Quantisierungsmatrixmultipliziert werden
Hier entsteht Verlust!• Individuelle Einstellung der Q-Werte
Möglich
Quantisierung
Quantisierungsmatrix
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 18
• Beispiel
Quantisierung
Quantisierungsmatrix
DCT Werte vor Quantisierung
DCT Werte nach Quantisierung
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 19
• Daten werden im Zick-Zack Muster serialisiert
• Der DC Wert wird als Differenz zum DC-Wert des vorherigen 8x8 Blocks gespeichert
• Der lineare Datenstrom kann danach noch Lauflängen codiert werden
Serialisierung
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 20
Huffman-Codierung vs. Arithmetische Codierung• HC erstellt eine HuffmanCodeTabelle,
Die mit übertragen werden muss• AC erzielt 5 – 10 % bessere Ergebnisse
bei der Komprimierung• AC ist jedoch komplexer als HC und
benötigt so mehr Rechenleistung• Für AC fallen in vielen Fällen
Lizenzgebühren an
JFIF benutzt Huffman-Codierung
Codierung
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 21
• Sequential Mode• Die Bilddaten werden sequentiell von links oben bis
rechts unten codiert• beste Komprimierung & am einfachsten zu implementieren
• Progressive Mode• Bilddaten werden in mehreren Durchgängen codiert• Koeffizienten mit den niedrigsten Frequenzen zuerst• Koeffizienten immer genauer
• Hierarchical Mode• Bilder stehen in gröberen Auflösungen zur Verfügung• Bilder werden hierarchisch mit immer besser Auflösung geladen
Operationsmodi
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 22
Codierung – Decodierung
Zusammenfassung
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 23
• plattformunabhängig • YUV - Farbmodell• Besteht aus JPEG-Daten +
Informationen zum Entpacken• Einzelne Teile werden durch
Makierungen eingeleitet• Jede Makierung hat 2 Byte –
das erste Byte ist immer FF – das Zweite immer größer 0
JFIF (JPEG File Interchange Format)
(0xFFD8)
(0xFFE0)
(0xFF**)
(0xFFDA)
(0xFFD9)
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 24
SOI - Start Of Image (0xFFD8)
Markiert den Anfang der Datei, vorhergehende Bits werden ignoriert
APP0 - APPlication (0xFFE0)
JFIF (JPEG File Interchange Format)
z.B. JFIF0
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 25
Optionale Beschreibungsblöcke
DQT - Define Quantisation Table (0xFFDB)
• Für jede Quantisierungstabelle muss ein eigener Eintrag
gemacht werden
• Die 4 Bit nach der Präzision bestimmen dann die Nummer
des Eintrags
JFIF (JPEG File Interchange Format)
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 26
Optionale Beschreibungsblöcke
DHT - Define Huffman Table (0xFFC4)
• Für jede Huffmantabelle muss ein eigener Eintrag gemacht
werden
• Zählwerte geben an, wieviele Codes mit i Bit vorkommen
JFIF (JPEG File Interchange Format)
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 27
Optionale Beschreibungsblöcke
SOF - Start Of Frame (0xFFC)
• Rahmendaten über das Bild
• Index in der Markierung ist
eine Identifikation des
Bildrahmens
• Teilt unter anderem den
Modus mit in dem codiert
wird (Möglichkeiten: 1-3, 5-7,
9-11, 13-15)
JFIF (JPEG File Interchange Format)
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 28
SOS - Start Of Scan (0xFFDA)
• Hier beginnt der Bit-Strom
JFIF (JPEG File Interchange Format)
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 29
EOI - End Of Image (0xFFD9)
Markiert das Ende der Datei, nachfolgende Bits werden ignoriert
Aufbau:
1. SOI
2. APP0 Länge, Kennung, ...
3. DQT Länge, Präzision, ...
4. SOF0 Länge, Genauigkeit, ...
5. DHT Länge, Index, ...
6. SOS Länge, Bitstrom, ...
7. EOI
JFIF (JPEG File Interchange Format)
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 30
- Variable Kompressionsstufen
- Wird vom Programm bereit
gestellt
- Andere mögliche Optionen:
- Feinere Kompressionsstufen
- Vorschaubild
- Progressive Mode (Mehrere
Durchgänge)
JPEGs (JFIFs) erstellen
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 31
JPEGs (JFIFs) erstellenMit Vorschaubild und feineren Kompressionsstufen
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 32
JPEG Vergleich
Beispiele
Hohe Kompression26 KB
Mittlere Kompression13 KB
Niedrige Kompression11 KB
Doppelte Kompression12 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 33
JPEG – GIF Vergleich
Beispiele
JPEG (Hoch)14 KB
GIF (53 Farben)11 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 34
JPEG – GIF Vergleich
Beispiele
JPEG (Hoch)17 KB
JPEG (Niedrig)14 KB
GIF (64)13 KB
GIF (16)9 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 35
JPEG – GIF Vergleich
Beispiele
JPEG (Mittel)6 KB
GIF (256)14 KB
GIF (64)8 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 36
JPEG – GIF Vergleich
Beispiele
GIF (256)6 KB
JPEG (Hoch)26 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 37
JPEG – GIF Vergleich
Beispiele
JPEG (Mittel)9 KB
JPEG (Niedrig)7 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 38
JPEG – GIF Vergleich
Beispiele
JPEG (Mittel)9 KB
JPEG (Niedrig)7 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 39
JPEG – GIF Vergleich
Beispiele
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 40
JPEG – GIF Vergleich
Beispiele
JPEG15 KB
GIF23 KB
JPEG18 KB
GIF4 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 41
JPEG – GIF Vergleich
Vergleich
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 42
JPEG – GIF – PNG Vergleich
Beispiele
JPEG (Mittel)26 KB
GIF (256)10 KB
PNG8 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 43
JPEG – GIF – PNG Vergleich
Beispiele
JPEG (Mittel)26 KB
GIF (256)10 KB
PNG8 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 44
JPEG – GIF – PNG Vergleich
Beispiele
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 45
• Wavelets (Diskrete Wavelet Transformation)• 4 verschiedene Progressive Modes (Qualität, Auflösung,
Position, Farbe)• Skalierte Quantisierung• Arithmetische Codierung• Unterteilt Bild nicht mehr in Blöcke
keine Artefakte mehr• Automatische Fehlerkorrektur für Datenübertragung• Notwendigkeit für JPEG2000 besteht nicht unbedingt
fraglich ob es sich durchsetzt
JPEG 2000 – Ein Ausblick
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 46
Wavelets – Ein Rückblick
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 47
Wavelets – Ein Rückblick
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 48
JPEG 2000 – Beispiele
JPEG – 16 KB JPEG2000 – 16 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 49
JPEG 2000 – Beispiele
JPEG – 16 KB JPEG2000 – 16 KB
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 50
JPEG 2000 – Beispiele
Original JPEG – 1:10 JPEG – 1:20
JPEG2000 – 1:20JPEG2000 – 1:10
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 51
JPEG 2000 – Beispiele
JPEG – 1:50
JPEG2000 – 1:100JPEG2000 – 1:50
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 52
JPEG 2000 – Beispiele
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 53
JPEG 2000 – Beispiele
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 54
JPEG 2000 – Beispiele
Robert Becker – Vortrag: JPEG – Seminar Multimediadatenformate – WS 02/03 – Informatik FU Berlin 55
Literatur
• http://141.22.17.5/~lehnart/Bildverarbeitung/tis_jpeg/html/tis_010.html
• http://www.faqs.org/faqs/compression-faq/• http://www.aware.com/products/compression/jpeg2000.
html• http://www.inf.fu-berlin.de/inst/zdm/lect/digvideo/
BMP_JPEG_MPEG/index.htm
Und viele mehr... (http://www.google.de)