Verlustfreie Kompressionsverfahren RLE, LZW, Huffmann, CCITT, ZIP
Run-Length-Encoding (RLE) Sinnvoll beim Auftreten von stark redundanten Datenmustern, wie z. B. flächige Farben Verwendung eines Kennzeichens zur Unterscheidung von Wiederholungsfaktor und Datenwort (z. B. 0). Einfachwiederholung zur Darstellung des Kennzeichen als Datenwort. Beispiel: Originaldaten: 12341114222278555557888888888966666603744 RLE-Kodierung: 12340314042780557098906601037024 wobei die ''0'' das Wiederholungskennzeichen ist. Formate: TIFF, PCX Kompression Verlustfreie Verfahren Folie 26
Lempel-Ziv-Welch (LZW ) Urprungsformat 1977 von Abraham Lempel und Jakob Ziv»LZ77«Verwendung in Textverarbeitungsprogrammen, dem UNIX-Programm»compress«, in den Paketen»zoo«,»lha«,»pkzip«, und»arj«. Modifizierter»LZ78«Algorithmus für Binärdateien und Bitmaps. 1984 Modifikation des»lz78«durch Terry Welch bei Unisys für»high-performance disc controller«in den heute bekannten»lzw«algorithmus. Stufenweise Erstellung eines Wörterbuches (Übersetzungstabelle) aus dem Datenstrom (substitutions- oder wörterbuchbasierender Algorithmus) Algorithmus war bis 2007 patentgeschützt (Compuserve/Unisys) Kompression Verlustfreie Verfahren Folie 27
LZW-Algorithmus Kompression: Dekompression: set w = NIL loop read a character k if wk exists in the dictionary w = wk else output the code for w add wk to the dictionary w = k endloop read a character k output dictionary entry for k w = k loop read a character k entry = dictionary entry for k output entry add dictionary entry for w + first char of entry to the dictionary w = index of entry endloop Kompression Verlustfreie Verfahren Folie 28
LZW Beispiel Beispiel: Originaldaten: ABACABA... LZW-Kodierung: 010240... Vorteil: Tabelle muss nicht mit übertragen werden Index Substring 0 A 1 B 2 C 3 D 4 AB 5 BA 6 AC 7 CA 8 ABA Formate: GIF, TIFF, PostScript Level 2, V.42bis Modemkompression http://www2-fs.informatik.uni-tuebingen.de/ ~reinhard/datkom/lzw_applet.html Kompression Verlustfreie Verfahren Folie 29
Huffman-Kodierung David A. Huffman 1952 Erstellung einer Tabelle mit variabler Wortlänge (Kodierung auf Bitebene, Entropiecodierung!) Häufige Werte erhalten kurze Tabellenworte Aufteilung eines Dokumentes in mehrere Blöcke Nachteil : Tabelle der Kodierung muss übermittelt werden Beispiele: JPEG, PNG, MP3, MPEG Kompression Verlustfreie Verfahren Folie 30
Huffman-Kodierung Erstelle einen Wald mit "Bäumen", ein "Baum" für jedes Zeichen. Jeder dieser "Bäume" enthält nur einen einzigen Knoten: das Zeichen. Suche die beiden "Bäume", die die geringste Häufigkeit haben. Entferne diese 2 Bäume aus dem Wald und ersetze sie durch einen neuen "Baum", der die beiden entfernten "Bäume" zusammenfasst. Benutze die Gesamtwahrscheinlichkeit dieses neu eingefügten Baumes zur weiteren Analyse. Wiederhole Schritt 2 so oft, bis nur noch ein Baum übrig ist. http://www.tillwiebke.de/tools/hsf/ Kompression Verlustfreie Verfahren Folie 31
CCITT (International Telegraph and Telephone Consultative Committee) Kommunikationsprotokolle für die Übermittlung von Schwarzweiß - Bildern»CCITT T.4«entspricht»CCITT Group 3«-Kompression (Fax)»CCITT T.6«entspricht»CCITT Group 4«-Kompression (1-Bit-Bildformate) Vorgegebene Codetabelle, die durch die CCITT aus einer Sammlung von Referenzdokumenten mit Bildern und Texten gewonnen wurde CCITT-Kodierung ist eine Art Spezialfall der»huffman-kompression«kompressionsverhältnis von 5:1 bis 8:1 bei»group 3«bei Auflösung von 200dpi (204x196dpi) auf DIN-A4 Seiten»Group 4«erzielt um das doppelte verbesserte Ergebnisse Beispiele: Fax, TIFF Kompression Verlustfreie Verfahren Folie 32
ZIP Archivierungs- und Kompressionsformat Containerformat Zugriff auf einzelne Dateien und Pfade möglich 9 verschiedene Stufen/Kompressionen möglich Verbreitet ist der DEFLATE-Algorithmus Kombination von LZW-Kompression und Huffman-Codierung Beispiele: PKzip, GZIP, Acrobat, TIFF, OpenDocument Kompression Verlustfreie Verfahren Folie 33
Verlustbehaftete Kompressionsverfahren Beispiel: JPEG-Verfahren, Wavelet-Verfahren
JPEG»Joint Photographic Experts Group«ist ein Standardisierungskomitee der»international Standard Organization«(ISO) und der»international Telecommunication Union«(ITU). JPEG ist ein Zusammenschluß der ISO-PEG (»Photographic Experts Group«)»Entwicklung von Methoden zur effizienten Transmission von Text und Standbildern über ISDN-Verbindungen«(1987) und einer Untergruppe der CCITT (umbenannt in ITU)»Entwicklung von Kompression für Grauwertbildern bei FAX-Übertragungen«(1986) Kompression Verlustbehaftete Verfahren Folie 35
JPEG JPEG ist keine eigenständige Kompressionsmethode Bibliothek parametrisierbarer Algorithmen, die den Grad der Kompression und den Grad der entstehenden Verluste steuern (Qualitätsfaktor Q=1 hoher Verlust; Q = 100 geringer Verlust) JPEG Kompression für Fotomotive geeignet JPEG-Kompression entworfen für farbige oder grauwertbehaftete Abbildungen von natürlichen Objekten (typisch Fotos) Bilder mit mindestens vier oder fünf Bit Auflösung pro Pixel. JPEG benötigt Bilder, bei denen sich benachbarte Pixel nicht allzu stark unterscheiden.»psychovisuelle Kompression«Kleine Änderungen im Farbton registriert das menschliche Auge nicht so sehr wie kleine Helligkeitsänderungen. Dadurch Reduktion der Farben möglich. Kompression Verlustbehaftete Verfahren Folie 36
JPEG Die JPEG-Kompression zerfällt in 5 Einzelschritte: 1. Transformation des Bildes aus RGB in einen geeigneten Farbraum (Standard: YUV ) 2. Herunterskalieren der Farbtonkomponenten durch Mittelung über mehrere Pixel 3. Anwendung der diskreten Cosinustransformation (DCT) 4. Gewichtung (Quantisierung) der Koeffizienten der DCT 5. Codierung der gewichteten Koeffizienten mit variabler Wortlänge (Huffman) Kompression Verlustbehaftete Verfahren Folie 37
1. Farbraumtransformation (optional) 1 Kanal für Helligkeit Y = Luminanz = 0,299 R + 0,587 G + 0,114 B 2 Kanäle für Farbinformationen U = Chrominanz B = B - Y V = Chrominanz R = R - Y Kompression Verlustbehaftete Verfahren Folie 38
2. Reduzierung der Farbinformation (optional) Herunterskalieren der Farbtonkomponenten durch Mittelung über mehrere Pixel Zusammenfassung benachbarter, nahezu gleichfarbiger Pixelwerte (»Psychovisuelle Kompression«) Kompression Verlustbehaftete Verfahren Folie 39
3. Diskrete Cosinustransformation (DCT) Zerlegung der jeweils drei Kanäle ( YUV oder YIQ oder RGB) in Blöcke von 8 x 8 Pixeln Kompression Verlustbehaftete Verfahren Folie 40
3. Diskrete Cosinustransformation (DCT) DCT Funktion wandelt Intensitätswerte in Frequenzwerte (verlustfrei!!!) Frequenzwert beschreibt die Änderung der Details eines Macro-Blocks Hohe Detailänderung = hohe Frequenz = Werte im Bereich 0 Geringe Detailänderung = niedrige Frequenz = große Werte Kompression Verlustbehaftete Verfahren Folie 41
3. Diskrete Cosinustransformation (DCT) Ermittlung von jeweils 64 Koeffizienten anhand von 64 Basisfunktionen der DCT F(x) Kompression Verlustbehaftete Verfahren Folie 42
4. Quantisierung der DCT Koeffizienten Division der 64 Koeffizienten durch die Quantisierungstabelle und ganzzahlige Rundung Die Quantisierungstabelle berücksichtigt die Farb- und Helligkeitsempfindlichkeit des Auges Verkleinerung des Wertebereiches, viele Koeffizienten werden Null Qualitätsfaktor wird mit der Quantisierungstabelle multipliziert DIV = quantisation matrix Kompression Verlustbehaftete Verfahren Folie 43
5. Codierung der gewichteten Koeffizienten Blockübergreifende Codierung der Koeffizienten Verwendung von Huffmann Codes mit variabler Wortlänge Kompression Verlustbehaftete Verfahren Folie 44
JPEG (Übertragungs-)Modi Sequentiell Auch Baseline Modus genannt Progressiv Zunächst werden die wichtigsten Bits aller AC Koeffizienten übertragen (approximative Übertragung) Hierarchisch Bild wird zunächst in grober Auflösung codiert, die nächstfeinere Auflösung wiederum wird nur als Differenz zur gröberen übertragen usw. Kompression Verlustbehaftete Verfahren Folie 45
JPEG im Dialog Kompression Verlustbehaftete Verfahren Folie 46
JPEG im Folie 47
JPEG Die JPEG-Standardisierung ist kein»starres«kompressionsverfahren sondern definiert nur die algorithmischen Grundprinzipien Die konkrete Implementierung bleibt flexibel (Farbmodell, Quantisierungstabellen, Koeffizientenkodierung, usw.) JPEG 2000 (www.jpeg.org/jpeg2000.htm) Ergänzung zum JPEG-Format Wavelet Transformation an Stelle der DCT (keine Block-Artefakte mehr) Verlustfreie Kompression möglich Compound Documents (verschiedene Auflösungen innerhalb eines Bildes) Verschlüsselung und Zusatzinformationen Alpha-Kanäle Kompression Verlustbehaftete Verfahren Folie 48