JPEG Ingo Kregel Layout: R G B Lila: 99 41 49 Blau: 0 48 94
Gliederung Einleitung und Überblick Visuelle Wahrnehmung und Farbräume Angewandte Komprimierungsverfahren Die JPEG-Modi Ausblick
Einleitung JPEG: Joint Photographic Experts Group Zusammenschluss von Gruppen der ISO – International Organization for Standardization ITU-T – International Telegraph and Telephone Consultative Committee Erstes Ziel: Kompressionsverfahren für ISDN-Kanäle
Einleitung Ausschreibung eines Wettbewerbs Anforderungen: Parametrisierbarkeit der Qualität Unterstützung verschiedenster Farbräume, Bildgrößen und Inhalte Annehmbare Komplexität in Bezug auf Implementierung und Ausführung Sequenzielle, progressive, verlustlose und hierarchische Modi Gewinner der Ausschreibung: Die Diskrete Kosinustransformation (DCT)
Einleitung 1992: Veröffentlichung des JPEG-Standards Heute: “Information technology – Digital compression and coding of continuous-tone still images: Requirements and guidelines” ISO/IEC 10918-1 CCITT (ITU-T) Recommendation T.81 Heute: Verbreitetstes Grafikformatik der Welt Verwendung im prof. Layoutbereich, Speicherung medizinischer Daten, digitaler Videotechnik (MPEG), WWW… Aus 12 eingereichten Methoden
Ordnungsrahmen
Ordnungsrahmen
Gliederung Einleitung und Überblick Visuelle Wahrnehmung und Farbräume Komprimierungsverfahren Die JPEG-Modi Fazit & Ausblick
Visuelle Wahrnehmung des Menschen Bildkompression auch im menschlichen Gehirn Bsp.: Verhältnis von Rezeptoren zu Nervenfasern im Auge 80:1 Optische Täuschungen: Illusion über Farben, geometrische Formen, Bewegungen… Ruhende Bilder erhalten höhere Auflösung als bewegte Helligkeitsunterschiede werden stärker wahrgenommen als Farbunterschiede Forschungsfeld der Wahrnehmungspsychologie, Psychophysik
Ordnungsrahmen
RGB Rot, Grün, Blau Entspricht der Technik in Farbmonitoren 8 Bit: 0-255 Hexadezimal: 00-ff Bildquelle: Wikipedia
YCbCr Ursprung: Umstieg von S/W auf Farbfernsehen Wikipedia-Zitat: „Diese Darstellung verwendet die Besonderheit des Auges, für grünes Licht besonders empfindlich zu sein. Daher steckt die meiste Information über den Grünanteil (und damit indirekt für dessen Komplementärfarbe Violett) in der Grundhelligkeit Y und man braucht daneben nur noch die Abweichungen beim Rot/Türkis- oder Blau/Gelb-Anteil darzustellen. „
Y Cb Cr YCbCr + Wikipedia-Zitat: „Danach werden diese Werte mit einer bestimmten Auflösung digitalisiert und mit einem Offset versehen, woraus die YCbCr-Werte folgen. Der Offset ist deswegen notwendig, da vor allem bei digitalen Videodaten bestimmte Werte wie 0 und 255 für spezielle Steueraufgaben (Synchronisation) reserviert sind und nicht als Helligkeits- bzw. Farbwert im Datenstrom vorkommen dürfen. Die Werte im Bereich „Reserve oben“ bzw. „Reserve unten“ geben Bereiche an die für die Übersteuerung der Videosignale reserviert sind und normalerweise nicht verwendet werden sollten. „ http://de.wikipedia.org/wiki/YCbCr-Farbmodell +
Tiefpassfilterung „Chroma Subsampling“ Unterabtastung der Chrominanzen Ausnutzung der visuellen Wahrnehmung des Menschen Datenreduktion: 4:4:4 24 Bit volle Informationsdichte 4:2:2 16 Bit Halbierung der Chrominanzen (horizontal) 4:2:0 12 Bit Horizontale und Vertikale Halbierung der Chrom. 4:2:2 Helligkeit nicht gespart, Machsche Bänder, Helligkeitsunterschiede stark sichtbar Tiefpassfilterung: „Als Tiefpass bezeichnet man in der Elektronik Filter, die Signalanteile mit Frequenzen unterhalb ihrer Grenzfrequenz annähernd ungeschwächt passieren lassen, Anteile mit hohen Frequenzen dagegen abschwächen. „ (Wikipedia)
Gliederung Einleitung und Überblick Visuelle Wahrnehmung und Farbräume Angewandte Komprimierungsverfahren Die JPEG-Modi Fazit und Ausblick
Gliederung – Kapitel 3 Die Diskrete Kosinus-Transformation (DCT) Quantisierung Prädiktion Lauflängenkodierung (RLC) Entropiekodierung Huffman-Kodierung Arithmetische Kodierung
Diskrete Kosinus-Transformation 1972 Ahmed, Natarajan und Rao Weiterentwicklung der Fourier-Transformation Aufgrund ihrer guten Kompressionseigenschaften in meisten verlustbehafteten Verfahren zur Bild- und Videokompression eingesetzt Vorbereitung: Aufteilen der Grafik in 8x8-Blöcke Farbige Grafiken entsprechen mehrstufiger Verarbeitung von Graustufenbildern
Diskrete Kosinus-Transformation Berechnungsvorschriften:
Diskrete Kosinus-Transformation Vollständiges Beispiel:
Diskrete Kosinus-Transformation Ausschnitt 1: Koeffizient bei (0; 0)
Diskrete Kosinus-Transformation Ausschnitt 2: Koeffizient bei (1; 1) +
Diskrete Kosinus-Transformation Vollständiges Beispiel:
Quantisierung Division der Bildwerte durch Quantisierungsmatrix Aufstellen solcher Matrizen nach Versuchsreihen Quantisierungswerte unterschiedlich optimal, je nach Anwendungsgebiet und Grafikeigenschaften Genutzte Q-Matrix wird in JPEG-Datei mit gespeichert
Quantisierung Komprimierung: Rekonstruktion: Quantisierung ist die Hauptursache für Qualitätsverluste der DCT-basierten Verfahren
Quantisierung Zusammenhang:
Quantisierung Vergleich von Original- und rekonstruierten Werten:
Prädiktion Unterschiedliche Behandlung der Komponenten jedes 8x8-Blocks DC – Direct Current AC – Alternating Current
Prädiktion DC: Speicherung Mittelwerts des gesamten 8x8-Blocks Ableitung dieses Koeffizienten aus dem Vorgängerblock Speicherung der Differenz, statt absoluten Werts „Üblicherweise werden die Abstände in verschiedene Größenkategorien unterteilt, die in Form von Tabellen im Bild mitgespeichert werden, damit sie im Dekodierungsprozess korrekt zurückübersetzt werden können. „
Lauflängenkodierung Effektiv für Symbolfolgen mit häufigen Wiederholungen Ziel: Ersetzen von Wiederholungen durch Tokens Ein Token besteht aus 3 Elementen: ESC Escape-Zeichen r Lauflänge s Zu ersetzendes Symbol Effizient daher erst ab Folge von 4 Symbolen
Lauflängenkodierung Beispiel: Symbolfolge: 15400000013 Ersetzen der Nullen durch ein Token Escape-Zeichen hier: $ Länge: 6 Ersetztes Symbol: 0 Token: 154$6013
Lauflängenkodierung Anwendung in JPEG: Überführen der DCT-Matrix in eine eindimensionale Symbolfolge durch Zickzack-Abtastung
Lauflängenkodierung Günstige Eigenschaften quantisierter Matrizen:
Entropiekodierung Entropie (Informationstheorie): „Mittlere Informationsdichte“ Entropiekodierung ist verlustfrei! Optimierung des Speicherplatzes einer gegebenen Symbolfolge Reduktion der zu speichernden Symbole ist Aufgabe vorhergehender Komprimierungsmethoden
Gliederung Einleitung und Überblick Visuelle Wahrnehmung und Farbräume Komprimierungsverfahren Die JPEG-Modi Sequenziell vs. Progressiv Hierarchisch Baseline-Kodierung und Erweiterungen Verlustfreie Kompression Rekonstruktion Fazit & Ausblick
Sequenzielle Verarbeitung Nur ein Durchlauf Jeder 8x8-Block nacheinander Es wird nur exakt der Speicher benötigt, den das Bild auch einnimmt Simple Vorgehensweise Schlanke Implementierung und geringe Ausführungszeit
Progressive Verarbeitung Unter Umständen sind andere Eigenschaften von größerem Vorteil Übertragung der Information in mehreren Schritten Erster Durchlauf: sehr grobe Auflösung Verfeinerung des Ergebnisses bei weiteren Durchläufen durch zusätzliche Koeffizienten
Progressive Verarbeitung 2 Unterarten der progressiven Kodierung: Spektrale Selektion: Tieffrequente Koeffizienten werden vor höherfrequenten Koeffizienten übertragen Schrittweise Verfeinerung: Senden der oberen Bits, bevor die niedrigeren Bits das Bild vervollständigen Vorteile dieser Verarbeitungsweise: Bei geringer Bandbreite für den Empfang Vorschaumöglichkeit Betrachter kann das Laden abbrechen Geringere Auflösung kann ggf. genügen
Hierarchische Verarbeitung Sonderform des progressiven Verfahrens Aufbau der Grafik in mehreren Ebenen Erste Ebene erzeugt mehrfach unterabgetastetes, unscharfes Bild Aufwärtstasten auf weitere Ebenen Hochrechnen auf größere Auflösung Werte der Hochrechnung dienen als Prognosewerte nach dem Prädiktionsverfahren Verfahren bei niedrigen Bitraten gut geeignet, Mehraufwand bei höheren Bitraten bis zu 33%
Hierarchische Verarbeitung Schema:
Baseline-Standard & Erweiterungen Baseline-Standard: Mindestbedingungen Diskrete Kosinustransformation, ausschließlich sequenziell 8 Bit pro Bildpunkt Nur Huffman-Kodierung nutzbar Maximal 2 Tabellen für Kodierung der AC- und DC-Koeffizienten Erweiterter Standard: Progressive und sequenzielle Speicherung möglich Auch 12 Bit Entscheidung zwischen Arithmetischer Kodierung und Huffman Maximal 4 Tabellen für Kodierung der AC- und DC-Koeffizienten
Verlustfreie Kompression Unterschiede: Wahl der Bildauflösung von 2-16 Bit Verzicht auf DCT und Quantisierung Ausschließliche Nutzung der Prädiktion
Verlustfreie Kompression
Verlustfreie Kompression Nicht Schwerpunkt der Entwicklungsarbeit Durchschnittlich komplexe farbige Grafiken: 50% Kompression 1994 JPEG-LS-Standard: Speziell verlustfreie Kodierung Bessere Ergebnisse als integrierte Modi in JPEG oder JPEG2000
Rekonstruktion
Gliederung Einleitung und Überblick Visuelle Wahrnehmung und Farbräume Angewandte Komprimierungsverfahren Die JPEG-Modi Ausblick
Ausblick: JPEG2000 2000: ISO 15444, Nachfolger des JPEG-Standards Waveletbasierte Transformation Flexibler Zugriff: Änderungen ohne Rekompression Entnahme von Ausschnitten oder geringerer Auflösung aus einer Datei möglich Verbreitung bisher aufgrund der Zufriedenheit mit JPEG gering JPEG-LS-Standard oder PNG-Format für bestimmte Grafiken effizienter
Literatur Literatur: Eric Hamilton: JPEG File Interchange Format, Version 1.02, World Wide Web Consortium (W3C), 1995. Rainer Röhler: Sehen und Erkennen - Psychophysik des Gesichtssinnes, 1. Auflage, Springer-Verlag, 1995. Tilo Strutz: Bilddatenkompression, 3. Auflage, Vieweg-Verlag, 2005. Gregory K. Wallace: The JPEG Still Picture Compression Standard, überarbeitete Version des Artikels vom April 1991, IEEE Transactions on Consumer Electronics, Dez. 1991.
BACKUP
Machsche Bänder Bildquelle: Rainer Röhler: Sehen und Erkennen - Psychophysik des Gesichtssinnes
YUV Abb. zu einigen beispielhaften Luminanzwerten: Bildquelle: http://acm.jhu.edu/~robocup/wiki/index.php?title=Image:Yuv-figure1.jpg Johns Hopkins Association for Computing Machinery
YUV Umrechnung aus dem RGB-Modell: Wertebereich:
YCbCr Phase-Alternation-Line-System (PAL) Übergang vom Schwarz-Weiß- zum Farbfernsehen, Abwärtskompatibilität gewünscht Entwicklung des YUV-Modells Trennung von Helligkeit und Farbe
Weitere Informationen zu YCbCr Bildquelle: http://telecom0.eng.niigata-u.ac.jp/index.php?Color%2FColorSpace Couleur.org +
YCbCr Umrechnung aus dem RGB-Modell: Wertebereich: + Videotechnik: Reservierung von 0 und 255 für Steueraufgaben (Synchronisation) Weiterer reservierter Bereich: Übersteuerung der Videosignale Wikipedia-Zitat: „Danach werden diese Werte mit einer bestimmten Auflösung digitalisiert und mit einem Offset versehen, woraus die YCbCr-Werte folgen. Der Offset ist deswegen notwendig, da vor allem bei digitalen Videodaten bestimmte Werte wie 0 und 255 für spezielle Steueraufgaben (Synchronisation) reserviert sind und nicht als Helligkeits- bzw. Farbwert im Datenstrom vorkommen dürfen. Die Werte im Bereich „Reserve oben“ bzw. „Reserve unten“ geben Bereiche an die für die Übersteuerung der Videosignale reserviert sind und normalerweise nicht verwendet werden sollten. „ http://de.wikipedia.org/wiki/YCbCr-Farbmodell +
Weitere Informationen zu YCbCr RGB YCbCr 16, 16, 16 16, 128, 128 0, 0, 0 0, 128, 128 255, 172, 255 255, 255, 255 199, 0, 235 0, 255, 255 0, 83, 0 53, 255, 17 255, 0, 0 0, 255, 0 182, 13, 30 199, 0, 0 0, 36, 235 0, 0, 255 255, 128, 128 RGB-YCbCr-Umwandlungsgenerator: http://www.dvd-replica.com/DVD/colorrgb2.php?c=3 YCbCr zu RGB http://www.dvd-replica.com/DVD/coloryuv2.php RGB zu YCbCr -
YCbCr Umstieg auf digitales Fernsehen Wikipedia-Zitat: „Diese Darstellung verwendet die Besonderheit des Auges, für grünes Licht besonders empfindlich zu sein. Daher steckt die meiste Information über den Grünanteil (und damit indirekt für dessen Komplementärfarbe Violett) in der Grundhelligkeit Y und man braucht daneben nur noch die Abweichungen beim Rot/Türkis- oder Blau/Gelb-Anteil darzustellen. „
YCbCr Umstieg auf digitales Fernsehen Wikipedia-Zitat: „Diese Darstellung verwendet die Besonderheit des Auges, für grünes Licht besonders empfindlich zu sein. Daher steckt die meiste Information über den Grünanteil (und damit indirekt für dessen Komplementärfarbe Violett) in der Grundhelligkeit Y und man braucht daneben nur noch die Abweichungen beim Rot/Türkis- oder Blau/Gelb-Anteil darzustellen. „
Quantisierung Empfehlung für Quantisierungs-Matrizen aus dem JPEG-Standard: Luminanz Chrominanz
Quantisierung Beispiel einer Quantisierung und Wiederherstellung:
Entropiekodierung Erster Schritt: Ermittlung der Auftrittshäufigkeit jedes Symbols Zeichen mit hoher Häufigkeit erhalten eine kurze Bitkodierung und umgekehrt Historisches Beispiel: Morse-Code Bildquelle:
Huffman-Kodierung 1952 David Huffman Verbesserung des Shannon-Fano-Verfahrens Beispiel: Alphabet: Wahrscheinlichkeiten:
Huffman-Kodierung
Huffman-Kodierung
Huffman-Kodierung B A C D 101100110
Arithmetische Kodierung Im Gegensatz zu Huffman Suche nach optimalem Codewort für gesamte Symbolfolge Darstellung des Codewortes als reelle Zahl [0; 1) Sukzessive Verkleinerung dieses Intervalls Beispiel mit gleiche Ausgangsdaten: Alphabet: Wahrscheinlichkeiten:
Arithmetische Kodierung
Arithmetische Kodierung Kodierung der Symbolfolge BACD durch binären Wert aus dem Intervall
Vergleich beider Entropiekodierungen Effektivitätsvorteil der A.K.: Sie besitzt nicht die untere Grenze von 1 Bit pro Symbol, da sie die gesamte Folge kodiert Daher: Bessere Annäherung an Signalentropie Nachteile: Speicherung des Signalwortes für Computer aufwändig Übertragung der Symbole kann erst erfolgen, wenn gesamtes Signal dekodiert wurde „In der Praxis wurden mittlerweile Algorithmen entwickelt, die diese Probleme umgehen können, beispielsweise durch eine hinreichende Annäherung mit ganzen Zahlen als Intervallgrenzen. Auch Lösungsvorschläge zur schrittweisen Übertragung der Code-Informationen könnten die Arithmetische Kodierung für ein zukünftiges Datenformat attraktiv machen. „ (Seminararbeit)
Weitere Informationen zu DCT Bildquelle: http://de.wikipedia.org/wiki/Bild:Dctjpeg.png -