JPEG ist ein standardisiertes Bildkompressionsverfahren, das von der Joint Photographic Experts Group entwickelt wurde. Es ist ein zusammengesetztes Verfahren.
Die Komprimierung der Grafikdaten erfolgt in mehreren Schritten:
1. Schritt: Datenreduzierung
Das Auge ist in der Lage mehr Unterschiede in der Helligkeit als Farbdetails zu sehen. Deshalb reduziert man die Farbinformation durch das Weglasssen einzelner Punkte. Dieses Verfahren wird Sampling genannt. Die Reduzierung wird in horizontaler und vertikaler Richtung getrennt vorgenommen. Somit ist es auch möglich unterschiedliche Reduzierungsraten für die verschiedenen Richtungen einzustellen.
2. Schritt: Diskrete Cosinus-Transformation (DCT)
Dieses Codierungsverfahren ist ein wesentlicher Schritt der JPEG-Kompression. Die DCT basiert auf der Fourier-Transformation, die beliebige Signale als Überlagerung von Sinuswellen verschiedener Frequenzen und Amplituden darstellt. Aus der örtlichen Verteilung von Pixelwerten in einem Bild wird nach der Fourier-Transformation eine Frequenz- und Amplitudenverteilung. Große, regelmäßige Flächen im Bild ergeben dabei niedrige Frequenzanteile, feine Details hohe. Der überwiegende Anteil der visuellen Information eines Bildes mit kontinuierlich verteilten Werten liegt im Bereich niedriger Frequenzen. Eine Kompression findet statt, indem höherfrequente Anteile des Bildes geringer gewichtet und Amplituden gleich null gesetzt werden.
3. Schritt: Quantisierung
Die Quantisierung ist die eigentlich verlustbehaftete Methode. Aus dem linearen Verlauf der Werte wird eine stufenartige Anordnung gebildet. Der Quantisierungsfaktor ist wählbar und entscheidet über die zukünftige Dateigröße und über die Qualität des zurückgewonnen Bildes. Als Beispiel: Wird ein Quantisierungsfaktor von 90 gewählt, so werden alle Werte zwischen -45 und +45 durch den Wert Null dargestellt. Werte über 45 bis einschließlich 135 werden durch den Wert 1 abgebildet und so weiter.
4. Schritt: Lauf längen-Codierung
Die ermittelten Werte sind in der Zick-Zack-Reihenfolge angeordnet und werden durch Lauflängen-Codierung zusammengefasst. In den oberen 4 Bit eines Wertes wird abgelegt, wie viele Koeffizienten mit dem Wert Null sich vor diesem Koeffizienten befinden. Die unteren 4 Bit ergeben den Wert.
5. Schritt: Huffman-Codierung
Dies Codierung bildet den Schluss der Bearbeitung. Das Verfahren nutzt die unterschiedlichen, statistischen Wahrscheinlichkeiten des Auftretens eines Quellensymbols aus, um die Datenmenge zu reduzieren.
|