schematische Darstellung
Bei der JPEG-Komprimierung werden mehrere Schritte durchlaufen.
Diese Abbildung zeigt welche Schritte des Komprimierungsverfahrens
durchlaufen werden. Visualsiert wird die Kodierung, d.h. die linke
Seite des Schaubildes vom Originalbild zum JPEG-komprimierten Bild.
Da der JPEG Standard sehr umfangreich ist, wurde nur die gebräuchlichste
Variante implementiert.
- Farbraumkonvertierung
Typischerweise wird hier von der RGBDarstellung in die zur Komprimierung
geeignetere YCrCbDarstellung umgerechnent.
Hier kann die erste verlustbehaftete Komprimierung durch Subsampling auftreten.
- Diskrete Cosinus Transformation
Durch diesen Schritt werden die Daten vom "Zeitraum" in den "Frequenzraum"
umgerecnet. Dadurch wird eine geschickte Verteilung der Werte erreicht.
- Quantisierung
Durch eine Quantisierungsmatrix, einer Faktortabelle, werden die einzelnen Werte gestaucht.
Dies ist die eigentliche verlustbehaftete Stelle.
- ZichZackScan
Die Werte eines 8x8Blockes werden in einer bestimmten, zur Kompression geeigneten
Reihenfolge ausgelesen.
- DPCM und RLEKodierung
Der erste Wert eines Blocks (DCWert) wird in der DPCMKodierung gespeichert.
Falls der gleiche Wert in einem 8x8 Blöck mehrmals hintereinander kommt reicht es,
sich den Wert und die Anzahl zu merken -> RLEKodierung.
- EntropieKodierung
Hier wurde die HuffmanKodierung gewählt, die nach der Häufigkeit der
vorkommenden Symbole die Symbollänge bestimmt. Die lizenzpflichtige "Arithmetische
Kodierung" wurde nicht implementiert.