JPEG - eines der für Photos am besten geeigneten Dateiformate

Ausgangsbild für eine eindimensionale DCT - Bastian Weber
Ausgangsbild für eine eindimensionale DCT - Bastian Weber
JPEG ist das meistgenutzte Verfahren zur Bilddatenkompression - wie funktioniert es und was hat es mit der Diskreten Cosinus-Transformation auf sich?

JPEG ist ein verlustbehaftetes Kompressionsverfahren für digitale Bilder, das am Fraunhofer-Institut entwickelt wurde. Es beruht auf dem Prinzip der Irrelevanzreduktion, was bedeutet, dass unwichtige Informationen herausgefiltert werden, um die Datengröße zu verringern. Worauf es dabei ankommt, ist die Informationen herauszufiltern, deren Fehlen dem Betrachter nicht auffällt. Zusätzlich dazu findet eine Redundanzreduktion statt, d.h. mehrfach vorhandene Daten werden durch mathematische Verfahren reduziert; dies ist reversibel und nondestruktiv.

Zu Beginn wird das Bild in den YUV-Farbraum konvertiert, dieser ermöglicht getrennte Betrachtung von Helligkeits-(Luminanz-) und Farb-(Chrominanz-)Information. Die Farbkanäle werden in geringerer Auflösung gespeichert als der Helligkeitskanal. Dem liegt die Tatsache zu Grunde, dass das menschliche Auge für Farbunterschiede weniger empfindlich ist, als für Helligkeitsunterschiede.

Die diskrete Cosinustransformation

Die DCT ist das Herzstück des JPEG-Algorithmus, sowie der darauf Aufbauenden MPEG-Algorithmen. Die Idee ist folgende: die in Pixelwerten vorliegenden Bildinformationen sollen in eine Überlagerung von Cosinusschwingungen transformiert werden. Die entstehende Funktion hat dann an den entscheidenden Positionen auf der x-Achse den richtigen Helligkeitswert als y-Wert.

Hierzu wird das Bild in 8x8 Pixel-Quadrate unterteilt, die im Folgenden alle einzeln verarbeitet werden. Auch die einzelnen Kanäle werden einzeln als Graustufenbild betrachtet. Jeder dieser Pixel-Blöcke wird nun in 64 verschiedene Cosinusschwingungen transformiert. Die Frequenzen der Schwingungen sind hier immer die gleichen. Nur die Koeffizienten, die die Amplitude der jeweiligen Schwingung festlegen, unterscheiden sich. Diese geben an, wie stark sich dieser Frequenzanteil auf die Ergebnisfunktion auswirkt. Überlagert werden die unterschiedlichen Funktionen via Addition. Das Ergebnis der DCT ist nun, dass man die 64 Pixelwerte in 64 Koeffizienten transformiert hat. Die DCT ist nondestruktiv und beliebig umkehrbar. Der Vorteil ist, dass die Bildinformationen jetzt in Frequenzen unterteilt vorliegen. Dies ermöglicht z.B. einen Hoch- oder Tiefpassfilter durch Setzen der entsprechenden Koeffizienten auf 0.

Die Quantisierung

Nun ist es möglich, hohe Frequenzen, also feine Bilddetails herauszufiltern, denn für den Eindruck des Bildes spielen diese eine geringere Rolle. Wie viel reduziert wird, hängt von der Qualitätseinstellung ab. Dazu werden alle 64 Koeffizienten in einer Matrix speziell angeordnet: die niederfrequentigsten oben links und die höheren Frequenzen unten rechts. Nun wird diese Matrix durch eine Quantisierungsmatrix dividiert. Die Quantisierungsmatrix ist vordefiniert und die Größe der in ihr enthaltenen Werte hängt von der Qualitätsstufe ab. Das Ergebnis der Division ist, dass einige Koeffizienten 0 ergeben, vorzugsweise in der unteren linken Ecke der Matrix. Nun wird die Matrix in einer bestimmten Reihenfolge ausgelesen (beginnend von links oben, in diagonaler Richtung). Alle Koeffizienten die gleich 0 sind und am Ende der Liste stehen, können weggelassen werden. Dadurch kommt die eigentliche Ersparnis zustande.

Vorteile des JPEG-Algorithmus

Dieser Algorithmus hat den Vorteil, dass besonders bei den Bildbereichen, in denen wenig Struktur vorhanden ist (einfarbige Flächen, gleichmäßige Verläufe) viel an Information gespart wird, währenddessen in Bildbereichen mit vielen Details weniger Koeffizienten wegfallen und somit hier Details erhalten bleiben. Eine Weiterentwicklung ist JPEG2000, das deutlich mehr Funktionen bietet als JPEG, sich aber bis heute nicht durchgesetzt hat.