Es sollen nun die Unterschiede zwischen JPEG und dessen Nachfolger JPEG2000 dargestellt, und schließlich Gründe für die sehr seltene Verwendung des neueren Standards gefunden werden. Dazu wird zuerst dass Ergebnis einer Konvertierung zum neuen Typ beurteilt, bevor auf die Hintergründe in Teil b) eingegangen wird.
Zur Konvertierung meines bereits in Aufgabe 2.3 gezeigten Bildes habe ich das Kommandozeilenprogramm convert aus dem Paket image-magick1 verwendet. Syntax: "convert -quality 100 bild.jpg bild_2k.jp2" liefert dabei eine getreue Abbildung (Qualität von 100%) von bild.jpg im JPEG2000-Format. Interessanterweise ist das 100%-Bild von JPEG2000 größer als das Original. Ein Zustand der sich bereits in der ersten gezeigten Kompressionsstufe (80%) in einen Gegensatz von 2:1 umkehrt. Allgemein sieht das komprimierte JPEG2000-Bild verwischter aus, hat allerdings eine vergleichbare Qualität mit einem JPEG-Bild gleicher Größe. Bei diesen findet man immer mehr ein schachbrettartiges Muster vor, je größer die Komprimierung wird.
Es sei noch angemerkt dass in diesem Fall eine Besonderheit dadurch vorliegt, dass es sich bei dem gezeigten Bild um eine Schwarz-Weiß-Zeichnung handelt. Bei farbigen Photos (wie zum Beispiel bei meinem Kollegen Matthias Busse2) findet man aber änliche Ergebnisse. Es kann dort jedoch gesagt werden, dass die Verschwommenheit deutlich weniger das Bild prägt als die Kastelung des alten Standards.
Zur Demonstration des Gesagten befindet sich hier nun eine Gegenüberstellung der einzelnen Bilder mit den genauen Daten und einem direkten Größenvergleich (genormt auf 1 als die Größe des kleineren Bildes). Um auch die Qualitätsunterschiede genau zu betrachten, führt ein Klick auf das Bild zu einer genaueren Version (2,4 MByte):
JPEG2000 verwendet im Gegensatz zur Diskreten Cosinustransformation des alten Standards die sogenannte Diskrete Wavelet-Transformation (DWT). Wavelets haben den Vorteil, dass sie eine Lokalisierungseigenschaft haben, so dass sich nicht die gesamte Matrix ändert wenn nur ein Pixel verändert wird. Dies kommt daher, dass als Wavelet nicht eine Kosinusschwingung sondern eine fast beliebige Funktion, deren Mittelwert aber Null sein muss, genommen werden kann. Diese Funktion wird dann gestaucht und passend verschoben um das Signal zu beschreiben3. Hierbei werden die tiefen Frequenzen, deren Koeffizienten bei JPEG im oberen linken Teil der Matrix gespeichert waren, von den hohen getrennt. Dieses Verfahren wird nacheinander für horizontale und vertikale Spektralanteile in der Wavelet-Transformation angewendet, was zu vier Teilbildern führt (Horizontaler Tief-/Hochpass und/oder Vertikaler Tief-/Hochpass, gekennzeichnet somit als TT1, HT1, TH1 und HH1)4.
Das Bild TT1 kann als Verlustreiche Kompression des Originalbildes angesehen werden, welches mit den restlichen Teilen wieder zu alter Qualität zusammengesetzt werden kann. Diese Methode kann dann auch wieder auf TT1 angewendet werden um wieder zu vier neuen Teilbildern (TT2, HT2, TH2 und HH2, welche zusammen TT1 ergeben) zu gelangen. Diese Eigenschaft der "Scalability" (veränderliche Größe) bringt einige Vorteile mit sich: So ist in ihr automatisch ein interlace-ähnliches Verfahren eingebaut, bei dem vor allem beim Aufruf einer Webseite der Benutzer die Qualität sich langsam aufbauen sieht, zum anderen kann so zum Beispiel auf einem Handy bereits nach einigen Wiederaufbauschritten die Dekodierung beendet werden, da das kleine Display die weiteren Informationen eh nicht anzeigen könnte.
Dies stellt bis jetzt aber noch keine Kompression, sondern lediglich eine Umstrukturierung dar. Dies wird nun nachgeholt, indem die Koeffizienten wie bei dem JPEG-Standard quantifiziert werden, sozusagen gerundet. Dabei kann in JPEG2000 eine Funktion namens "Regions Of Interest" (ROI) zur Anwendung kommen, welche es dem Benutzer erlaubt bestimmte Bereiche des Bildes mit höherer Qualität zu bewahren und Qualitätseinbußen so auf unwichtige Gebiete zu verteilen. Danach wird die Codierung durch eine Entropie-Betrachtung optimiert.
Der neue Standard verfügt somit über eine Reihe von interessanten Eigenschaften. Im Folgenden sollen in einer Tabelle diese Eigenschaften mit der Situation bei JPEG, PNG5 und GIF stichpunktartig verglichen werden6:
Format: | JPEG2000 | JPEG | PNG | GIF |
Verlustfreie Komprimierung: | Ja | Beschränkt | Ja | Ja |
Farbauswahl: | 24-Bit Farbe, Grauwerte | 24-Bit Farbe, Grauwerte | 24-Bit Farbe, Grauwerte, 8-Bit Palette | 8-Bit Palette |
Verfahren: | Diskrete Wavelet-Transf. (DWT) | Diskrete Kosinus-Transf. (DCT) | CRC-32 und Deflate (wie auch .zip) | Lempel Ziv Welch (LZW) |
Geeignet für: | Fotographien, weiche Übergänge | Wie JPEG2000 | Scharfe Kanten, Text, Logos | Große einfarbige Flächen mit wenigen Farben |
Vorschau: | Scalability | Interlacing | Interlacing | Interlacing |
Transparenz: | Ja | Nein | Ja | Ja |
Zusätzlich sollte noch erwähnt werden, dass GIF die Eigenschaft besitzt Bilder zu "dithern", daher die beschränkte Farbauswahl von 256 Farben zu umgehen indem nebeneinader liegenden Pixel eine Farbe gegeben wird, die im Auge den Eindruck einer Kombination der Farben hervorruft, wenn aus genügend Entfernung betrachtet. Dies war besonders auf alten Bildschirmen, die nicht mehr Farben darstellen konnten, sinnvoll. Außerdem verfügt GIF über die Möglichkeit mehrere Schichten als Animation zu speichern und wiederzugeben.
Eine besondere Eigenschaft von PNG stellt die Gamma-Korrektur dar, welche das Problem behandelt, dass je nach Hardware die Helligkeitsdarstellungen variieren können. PNG versucht also einen Wert für die Hardware auf dem erstellenden PC/Mac zu finden und speichert ihn in sich, um Decodern die Möglichkeit zu geben sich der individuellen Situation anzupassen
Dieser Paragraph soll sich nun abschließend kurz mit der Frage beschäftigen, warum JPEG2000 so wenig Verbreitung bisher gefunden hat. Wie zu Anfang gezeigt ist der neue Standard bei 100% Qualität größer als der alte, was daran liegt, dass hier auch wirklich kein Informationsverlust vorliegt. Für den einfachen Anwender ist es allerdings schwer den Unterschied zwischen 100% JPEG und 100% JPEG2000 zu kennen, sind sie formal doch gleichwertig.
Abgesehen davon ist JPEG eine etablierte Größe, die gute Arbeit geleistet hat und wahrscheinlich so auch fast "traditionsbewusst" weiterbenutzt wird. Ohne Interesse in die technischen Hintergründe wird gerade bei privaten Intenetnutzern auch nicht so viel auf die optimale Graphikwahl geachtet und wenn, dann oft nur in Form einer alten Faustregel wie "JPEG für Bilder und GIF für Graphiken".
Eine weitere Hürde ist wohl dass sowohl einige Browser als auch Bildbearbeitungsprogramme das neue Format nicht unterstützen. Im Falle des Programmes Gimp ist der Mailing-Liste der Entwickler7 zu entnehmen, dass diese (wie bei GNU auch üblich) versuchen möglichst ohne patentierte und properitäre Software/Technologie/Spezifikation auszukommen. Es gäbe keinen dringenden Bedarf an JPEG2000 und die Ignoration sei eine Art Demonstration gegen unfreie Formate. Dies beziehe sich auf die patentgeschützten verwendeten Algorithmen.