Motivation Übersicht, Informationstheorie, Modellierung Verlustfreie : Huffman-Codierung, Arithmetische Codierung,... Verlustbehaftete : Fourier-Analyse, JPEG, MPEG,... Datenorganisation 6 Seite Motivation Datenmengen Bildschirmseite Text: Bildwiederholspeicher: 64 * 48 Pixel, je Zeichen 8*8 Pixel liefert: (64/8) * (48/8) = 4.8 Kbyte Bildschirmseite Vektorbilder: ca. 5 Geraden mit Start- und Endpunkt (x-koordinate: bit; y-koordinate: 9 bit) + 8 bit Attribut liefert: 5 * 46 / 8 = 8 KByte Bildschirmseite Pixelbilder: 56 Farben ( Byte/Pixel) liefert: 4 * 768 = 768 KByte; RGB (3 Byte/Pixel) liefert.5 MByte Datenorganisation 6 Seite
Motivation Datenmengen Sprache: Sprache in Telefonqualität wird mit 8 khz abgetastet und mit 8 bit quantisiert (Datenstrom 64 Kbit/s) liefert: 8 KByte/s Stereo-Audio-Signal in CD-Qualität: wird mit 44. khz je Kanal abgetastet und mit 6 bit quantisiert und liefert: * 44/s * 6 bit / 8 bit/byte = 7 KByte/s Videosequenz: 5 Vollbilder/s, Luminanz (3.5 MHz) und Chrominanz (* 6.75 MHz) brauchen 3 Byte/Pixel; liefert.5 MByte/s Datenorganisation 6 Seite 3 Motivation Datenmengen Speichervolumen: Arbeitsspeicher z.b. 56 MByte CD-ROM (64 MByte): knapp 3 s Video DVD (4.7 GByte): knapp.5 min Video ISDN (64 Kbit/s): kleine, unscharfe, rucklige Bilder; Qualitätsverlust Hauptsätze der EDV-Hardware: Speichern von Daten ist teuer Rechnen ist billig schnelle Massenspeicher sind teuer gegenüber Prozessoren Übertragen von Daten ist teuer Rechnen ist billig Breitband-Leitungen sind teuer gegenüber Prozessoren Datenorganisation 6 Seite 4
Motivation Datenkomprimierung Erkennen "innerer Gesetzmäßigkeiten" einer Datenmenge Beschreibung durch eine universelle Formel am elegantesten "zufällige" Zahlenreihen sind nicht (verlustfrei) komprimierbar Datenorganisation 6 Seite 5 Datenkomprimierung Erkennen gemeinsamer Merkmale Personen mit je 4 Merkmalen Nationalität <56 UN-Staaten 8 bit Geschlecht bit Alter in Jahren <8 7 bit Größe in cm < 56 8 bit Summe: 4 bit = 3 Byte Anzahl möglicher Ausprägungen 6.777.6 aus 4 bit Personen erzeugen 3. Byte Ansatzpunkte für Komprimierung:??? Datenorganisation 6 Seite 6
Datenkomprimierung Eine universelle Formel Fourier-Analyse: periodische Vorgänge entstehen durch Überlagerung von harmonischen Schwingungen: f(t) = a + a cos (πt) + b sin (πt) +... +a k cos (πt) + b k sin (πt) +... Approximation einer Funktion: a k,b k : Amplitude (Lautstärke) k: Frequenz (Tonhöhen) t: Zeit (auch beliebige andere Skala) Datenorganisation 6 Seite 7 Bewertung von Kompressionsverfahren Kompressionsrate Zeitaufwand für Kompression und Dekompression Aufwand für Hardware und Software Verbreitung des Verfahrens, Standardisierung Datenorganisation 6 Seite 8
Struktur der Sender Empfänger Modell Modell Quelle Codierer Kanal (Netz / Speichermedium) Decodierer Senke Datenorganisation 6 Seite 9 Informationstheorie Gegeben: Quelle S mit Symbolen s, s,..., s n mit Wahrscheinlichkeiten ihres Auftretens P(s k ) = p k (alle p k und p + p +... + p n = Informationsgehalt eines Symbols s k : I(s k ) = log (/p k ) Entropie (gewichteter Durchschnitt der Informationsgehalte aller Symbole = mittlerer Informationsgehalt einer Zeichenfolge): n n H(S) = Σ p k * I(s k ) = Σ p k * log (/p k ) k= k= Annahmen: Quelle stationär und gedächtnislos; d.h. Wahrscheinlichkeit eines Symbols ändert sich nicht im Laufe der Nachricht und ist nicht von früheren Symbolen abhängig Datenorganisation 6 Seite
Modellierung Unterscheidung: Modellierung = Schätzung der Wahrscheinlichkeiten Codierung = Nutzung der Wahrscheinlichkeiten Modellgenauigkeit: Abweichungen führen zu schlechterer Kompression, insbesondere bei sehr ungleichmäßigen Verteilungen Modell n-ter Ordnung: nutzt n Vorgängersymbole zur Schätzung der Wahrscheinlichkeit Adaptivität: Anpassung an Nachrichten Umformen der Quelle: Folgen von Symbolen zusammenfassen Differenzenbildung zwischen Prognose des nächsten Wertes und tatsächlichem Wert Datenorganisation 6 Seite Kategorien Entropie-Codierung: verlustfrei medien-unabhängig Daten: Sequenz digitaler Datenwerte ohne Bedeutung Beispiele: Lauflängen-Codierung, Huffman-Codierung, Arithmetische Codierung Quellen-Codierung: verlustbehaftet verwendet Semantik der zu codierenden Informationen Kompressionsgrad ist abhängig vom Medium Hybride Codierung: Kombination von Quellen- und Entropie-Codierung JPEG Einzelbilder H.6 (px64) Videosequenzen mit geringer Auflösung MPEG Bewegtbilder plus Audio DVI Einzelbilder und kontinuierliche Medien MP3 Sound Datenorganisation 6 Seite
Grundlegende Verfahren Lauflängen-Codierung: mehr als drei identische aufeinanderfolgende Bytes werden ersetzt durch Markierungsbyte, Byte und Anzahl Null-Unterdrückung: Nullen (Anzahl > 3) werden mit Markierungsbyte und Anzahl codiert Pattern Substitution: einzelne Byte ersetzen häufig vorkommende Quellmuster (z.b. Schlüsselworte BEGIN, IF, THEN, ELSE, END,... In Programmtexten) durch Markierungsbyte + Index Datenorganisation 6 Seite 3 Shannon-Fano-Codierung von Fano (949) vorgeschlagen Prinzip: Code mit variabler Länge: häufige Symbole - kurzer Code seltene Symbole - langer Code Algorithmus:. Sortiere alle Symbole des betrachteten Alphabets nach absteigender Wahrscheinlichkeit. Teile die Symbole in zwei Gruppen, die eine möglichst gleiche Gruppenwahrscheinlichkeit haben 3. Weise der linken Gruppe eine und der rechten eine zu 4. Setze für jede Teilgruppe, die mehr als ein Symbol enthält bei. fort 5. Reihe die Einsen und Nullen in der Reihenfolge ihrer Zuweisung zu Codewörtern aneinander Datenorganisation 6 Seite 4
Shannon-Fano-Codierung Beispiel Zeichen relative Häufigkeit a d b c.4.3... - a.4.6 - - d.3.3 b.. c Datenorganisation 6 Seite 5 Huffman-Codierung Weiterentwicklung der Shannon-Fano-Codierung durch David Huffman (95) Algorithmus:. Betrachte alle Symbole als Blätter eines Codebaumes und trage ihre Wahrscheinlichkeiten ein. Fasse die beiden geringsten Wahrscheinlichkeiten zu einem Knoten zusammen und weise ihre Summe dem neuen Knoten zu 3. Beschrifte die neuen Zweige mit bzw. 4. Wenn die Wurzel des Baumes mit der Wahrscheinlichkeit p=. erreicht ist, beende die Konstruktion 5. Setze bei. fort optimal: wenn alle Wahrscheinlichkeiten ganzzahlige Potenzen von Datenorganisation 6 Seite 6
Huffman-Codierung Beispiel Zeichen Häufigkeit Huffman-Code _ E N R I S T U D A 8 6 A D 4 4 4 E 6 U T S 4 I R _ N Kompressionsrate: unkomprimiert: 4 Zeichen * 8 bit = 9 bit komprimiert: 4 * bit + * 4 bit = 68 bit Kompressionsrate = 68/9 =.6458 Datenorganisation 6 Seite 7 Huffman-Codierung Beispiel: Erzeugung des Huffman-Codes _ 8 _ 8 _ 8 _ 8 _ 8 _ 8 _ 8 ADUTE SIRN_ 4 E 6 E 6 E 6 E 6 E 6 E 6 SIRN 6 _ 8 ADUTE N AD UT SI RN 4 ADUT 4 E 6 SIRN 6 R N AD UT SI RN 4 ADUT 4 I R N AD UT SI S I R N AD T S I R U T S D U A AD UT SI RN ADUT SIRN ADUTE SIRN_ AD...N_ A D U T S I R N AD UT SI RN ADUT E SIRN _ ADUTE SIRN_ Datenorganisation 6 Seite 8
Arithmetische Codierung Prinzip: Nachricht wird durch ein Intervall von reellen Zahlen zwischen und absolut redundanzfreie Kompression (abgesehen von Rechengenauigkeit) Datenorganisation 6 Seite 9 Modellalphabet: Arithmetische Codierung Beispiel - Encoding Symbol a e i o u! Wahrscheinlichkeit..3.... Intervall [.,.) [.,.5) [.5,.6) [.6,.8) [.8,.9) [.9,.) Arithmetische Codierung der Nachricht eaii!!.5 e a i i!.6.36.336.336!!!!! u u u u u u o o o o o o i i i i i i e e e e e e a a a a a a...3.33.3354 nach Sehen von e a i i! Intervall [.,.) [.,.5) [., [.3, [.33, [.3354.6).36).336),.336) Datenorganisation 6 Seite
Arithmetische Codierung Beispiel - Decoding Empfänger kennt Auftrittswahrscheinlichkeiten und Lage des endgültigen Intervalls Decodierung:. Zeichen: e weil endgültiges Intervall voll in e-intervall enthalten Simulation des Rechenganges zum Vercodieren beim Sender liefert. Zeichen: a weil dieses ein Intervall, das vollständig das Endintervall umschließt, produziert hätte Fortsetzung der Simulation des Rechenganges beim Sender liefert die vollständige Nachricht Datenorganisation 6 Seite Arithmetische Codierung Einschätzung Schlussfolgerungen: eine einzige Zahl aus dem Endintervall reicht zum Decodieren numerische Operationen müssen bei Sender und Empfänger identisch implementiert sein 3-bit-Arithmetik bei Textübertragung notwendig, 6 bit sind zu wenig Ende-Erkennung notwendig Text muss immer vollständig vom Anfang beginnend decodiert werden; wahlfreier Zugriff nicht möglich Genaueres: Witten, I.H., R.M. Neal und J.G. Cleary: Arithmetic Coding for Data Compression. CACM 3(987) 6, 5-54 (incl. C-Programm) Strutz, T.: Bilddatenkompression. Vieweg-Verlag Datenorganisation 6 Seite
Phrasen-Codierung Symbol- oder Zeichenfolgen werden (als Phrasen) im Laufe der Codierung in einem Wörterbuch abgelegt (dictionary-based compression) von Lempel und Ziv (977) entwickelt: Algorithmus LZ77; 978 verbessert zu LZ78, 984 durch den von Welch angegebenen Algorithmus in die Praxis überführt als LZW Datenorganisation 6 Seite 3 LZ78-Algorithmus LZ78-Algorithmus zum Senden:. Die aktuelle Phrase P := P[n] ist ein leerer String. Hänge das nächste Symbol s[n+] an die Phrase und aktualisiere P[n+] := P s[n+]. 3. Falls P[n+] im Wörterbuch steht: Definiere P := P[n+] und fahre fort mit Schritt 4. P[n+] steht nicht im Wörterbuch: Sende die Phrase P gefolgt vom neuen Symbol s[n+] 5. Falls s[n+] das letzte Symbol ist, beende die Codierung 6. Trage die neue Phrase P[n+] ins Wörterbuch ein, wenn noch Platz vorhanden ist 7. Fahre fort mit Schritt. Datenorganisation 6 Seite 4
LZ78, Variante LZW Beispiel Kompression der Zeichenkette (in Klammern Codenummer) abaabacdabaacdabaacd Ausgabe Eintrag Ausgabe Eintrag Ausgabe Eintrag a (97) - a (97) aba (59) ac (6) abaa (63) b (98) ab (56) c (99) ac (6) da (6) acd (64) a (97) ba (57) d () cd (6) ba (57) dab (65) ab (56) aa (58) aba (59) da (6) acd (64) baa (66) Kompressionsrate: 6 Zeichen á 8 bit (8 bit) Zeichen á 9 bit (8 bit) Datenorganisation 6 Seite 5 Kompression von Bildern Bildaufbereitung Bildverarbeitung Quantisierung Entropie-Codierung komprimiertes Bild Datenorganisation 6 Seite 6
Anforderungen an Kompressionsverfahren kein / wenig Qualitätsverlust geringe Komplexität der Verfahrens Berücksichtigung von Zeitschranken wahlfreier Zugriff auf bestimmte Informationen Unabhängigkeit von Bildschirmgröße und Bildwiederholfrequenz Synchronisation von Audio und Video Realisierung als Software systemunabhängig Datenorganisation 6 Seite 7 JPEG Allgemeines JPEG = Joint Photographic Expert Group; 984-987 von ISO und CCITT gegründet; Aufgabe: Kompressionsverfahren für Bilder mit Faktor entwickeln geeignet für Einzelbilder; 99 ISO-Standard; nur ein Teil ist kommerziell erhältlich Genaueres: ISO IEC JTC : Information Technology - Digital Compression and Coding of Continious-Tone Still Images. International Standard ISO/IEC IS 98; 99 Steimetz, R.: Multimedia-Technologie - Einführung und Grundlagen. Springer-Verlag 993 Held, G.: Data and Image Compression Tools and Techniques. Wiley 996 Datenorganisation 6 Seite 8
JPEG Entwicklungskriterien Verfahren unabhängig von Bildgröße, Format und Auflösung Unabhängigkeit zwischen Farbraum und Farbvielfalt Komplexität und statisches Verhalten der Bilddaten sollten bei Kompression berücksichtigt werden möglichst hohe Kompressionsrate und hohe Bildqualität Software sollte portabel sein und später mit spezieller Hardware vereinfacht werden Decodierung sowohl sequentiell als auch progressiv (Bild wird als Ganzes immer feiner) Datenorganisation 6 Seite 9 JPEG Übersicht Austauschformat: Bilddaten Parameter und Tabellen des Codierprozesses Schritte im JPEG-Kompressionsverfahren Originalbild Quantisierung Bildaufbereitung Blockung 8*8 Pixel Bildverarbeitung Prädikator FDCT Entropiecodierung Lauflänge Huffman Arithmetisch Bitstrom Kombinationen der verschiedenen Möglichkeiten ergeben unterschiedliche Modi Datenorganisation 6 Seite 3
JPEG Verlustbehafteter Modus (JPEG Baseline Codec) Ablauf: Konvertierung des Bildes in den YC b C r -Farbraum, Farb-Subsampling Diskrete Cosinus-Transformation (DCT) Quantisierung der DCT-Koeffizienten Codierung der Koeffizienten, Kompression FDCT Quantisierung Codierung... Tabellen Tabellen IDCT Dequantisierung Decodierung... 3 Operationsmodi im JPEG Baseline Codec: Sequential Mode / Progressive Mode / Hierarchical Mode Datenorganisation 6 Seite 3 JPEG Bildaufbereitung Bild besteht aus min. bis max. 55 Bildebenen JPEG verwendet YC b C r -Farbmodell: Y =.99*R +.587*G +.4*B Luminanz C b = -.687*R -.333*G +.5*B Color blueness C r =.5*R -.487*G -.83*B Color redness wegen geringer Empfindlichkeit des Auges für Farbunterschiede werden bei C b und C r Gebiete von * Pixeln zusammengefasst Datenorganisation 6 Seite 3
JPEG Bildaufbereitung Abtastwerte C n Yi Xi C C C i - Bildebenen mit gleicher oder unterschiedlicher Auflösung Abtastwerte werden mit p bit/pixel dargestellt (p = 8 bit) Datenorganisation 6 Seite 33 JPEG Bildaufbereitung Nichtverschachtelte Abtastung 3 4 5 3 Verschachtelte Abtastung bei unterschiedlicher Auflösung Datenorganisation 6 Seite 34
JPEG Baseline Codec; Sequential Mode Bildverarbeitung Blockung des Bildes in 8*8 Pixel-Quadrate, Wertebereich der Pixel wird in das um den Nullpunkt symmetrische Intervall (-8, 7) verschoben (s yx ) anschließend Diskrete Forward-Cosinus-Transformation (FDCT) für jede Komponente mit 7 7 s vu = ¼*c u *c v [ Σ Σ s yx *cos ((x+)uπ/6)*cos ((y+)vπ/6) ] x= y= c u, c v = { / für u,v = sonst } Ergebnis: 64 Koeffizienten s vu Datenorganisation 6 Seite 35 JPEG Baseline Codec; Sequential Mode Bildverarbeitung Koeffizienten haben Bedeutung: S DC-Koeffizient (Gleichspannungsanteil), bestimmt Grundfarbton der gesamten Dateneinheit S ij alle übrigen Koeffizienten = AC-Koeffizienten (in Anlehnung an Wechselspannungsanteil) S 7 höchste Frequenz in waagerechter Richtung S 7 höchste Frequenz in senkrechter Richtung S 77 höchste in beiden Richtungen auftretende Frequenz hohe Frequenz = Kante AC = - Fläche Datenorganisation 6 Seite 36
JPEG Baseline Codec; Sequential Mode Quantisierung verlustbehaftet JPEG stellt Quantisierungsliste mit 64 Einträgen (Q vu, 8 bit) zur Verfügung; separate Einstellung der Koeffizientenbewertung möglich Quantisierung: s qvu = round (s vu / Q vu ) Dequantisierung mit gleicher Liste: R vu = s qvu * Q vu Datenorganisation 6 Seite 37 JPEG Baseline Codec; Sequential Mode Entropie-Codierung Vorbereitung: DC-Koeffizienten werden als Differenz zum Vorgängerblock dargestellt (sehr kleine Werte bei gleicher Farbe) Abtastung der AC-Koeffizienten diagonal von kleineren Frequenzen (höhere Werte) zu größeren Frequenzen (viele Null-Werte) DC AC AC 7 AC 7 AC 77 Datenorganisation 6 Seite 38
JPEG Baseline Codec; Sequential Mode Entropie-Codierung Lauflängen-Codierung von Null-Werten und Abbildung der AC- Koeffizienten in bis bit, der DC-Koeffizienten in bis bit Darstellung als ISO-Intermediate-Symbol-Sequence-Format: Anzahl folgender Null-Koeffizienten benutzte Anzahl bit für nächsten Koeffizienten Wert des Koeffizienten Huffman-Codierung DC- und AC-Koeffizienten mit je zwei unterschiedlichen Tabellen (nicht von JPEG standardisiert) Datenorganisation 6 Seite 39 JPEG Ein Beispiel Originalwerte DCT-Koeffizienten 39 44 49 53 55 55 55 55 35.6 -. -. -5.. -.7 -.7 -.3 44 5 53 59 -.6-7.5-6. -3. -.9 -..4 -. 5 55 6 63 58 -.9-9.3 -.6.5. -.9 -.6 -. 59 6 6 6 6 59 59 59-7. -.9..5.9 -...3 59 6 6 6 6 55 55 55 -.6 -.8.5.6 -. -.7.6.3 6 6 6 6 6 57 57 57 -.8 -..6 -.3 -.8.5. -. 6 6 6 63 6 57 57 57 -.3 -.4 -.3 -.5 -.5.7. -.8 6 6 6 6 6 63 58 58 -.6.6-3.8 -.8.9. -.6 -.4 Quantisierungstabelle Quantisierte Koeffizienten 6 6 4 4 5 6 5-4 9 6 58 6 55 - - 4 3 6 4 4 57 69 56 - - 4 7 9 5 87 8 6 8 37 56 68 9 3 77 4 35 55 64 8 4 3 9 49 64 78 87 3 7 9 95 98 3 99 Datenorganisation 6 Seite 4
JPEG Ein Beispiel Quantisierungstabelle Quantisierte Koeffizienten 6 6 4 4 5 6 5-4 9 6 58 6 55 - - 4 3 6 4 4 57 69 56 - - 4 7 9 5 87 8 6 8 37 56 68 9 3 77 4 35 55 64 8 4 3 9 49 64 78 87 3 7 9 95 98 3 99 Rekonstruierte Koeffizienten Rekonstruierte Originalwerte 4-44 46 49 5 54-4 - 48 5 5 54-4 -3 55 6 63 63 6 58 6 63 64 6 59 57 6 64 64 6 6 58 58 57 55 39 44 49 53 55 6 6 6 57 55 44 5 53 59 63 6 6 58 5 55 6 63 58 64 6 6 58 57 59 6 6 6 6 6 6 6 59 58 59 6 6 6 6 6 6 6 59 58 6 6 6 6 6 55 59 55 57 55 59 55 57 55 59 55 57 6 6 6 6 6 6 Datenorganisation 6 63 6 57 57 Seite 4 6 6 63 58 57 58 MPEG Allgemeines Bewegtbilder + Audio Datenrate.4 Mbit/s angestrebt sowohl für symmetrische wie für asymmetrische Codierung geeignet (asymmetrisch erfordert höheren Aufwand beim Codieren, weniger Aufwand beim Decodieren) Datenorganisation 6 Seite 4