Tilo Strutz Bilddatenkompression
Aus dem Programm Informations- und Kommunikationstechnik Telekommunikation von D. Conrads Einführung in die Digitale Bildverarbeitung von A. Erhardt Digitale Signalverarbeitung von K.-D. Kammeyer und K. Kroschel Nachrichtenübertragung von K.-D. Kammeyer Satellitenortung und Navigation von W. Mansfeld Grundlagen der Informationstechnik vonm.meyer Kommunikationstechnik vonm.meyer Signalverarbeitung vonm.meyer Digitale Sprachsignalverarbeitung von P. Vary, U. Heute und W. Hess Information und Codierung von M. Werner Digitale Signalverarbeitung mit MATLAB von M. Werner Digitale Signalverarbeitung mit MATLAB -Praktikum von M. Werner Nachrichtentechnik von M. Werner Nachrichten-Übertragungstechnik von M. Werner Digitale Audiosignalverarbeitung von U. Zölzer www.viewegteubner.de
Tilo Strutz Bilddatenkompression Grundlagen, Codierung, Wavelets, JPEG, MPEG, H.264 4., überarbeitete und ergänzte Auflage Mit 189 Abbildungen und 72 Tabellen STUDIUM
Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar. Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor übernimmt infolgedessen keine Verantwortung und wird keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. Höchste inhaltliche und technische Qualität unserer Produkte ist unser Ziel. Bei der Produktion und Auslieferung unserer Bücher wollen wir die Umwelt schonen: Dieses Buch ist auf säurefreiem und chlorfrei gebleichtem Papier gedruckt. Die Einschweißfolie besteht aus Polyäthylen und damit aus organischen Grundstoffen, die weder bei der Herstellung noch bei der Verbrennung Schadstoffe freisetzen. 1. Auflage 2000 2., aktualisierte und erweiterte Auflage 2002 3., aktualisierte und erweiterte Auflage 2005 4., überarbeitete und ergänzte Auflage 2009 Alle Rechte vorbehalten Vieweg+Teubner GWV Fachverlage GmbH, Wiesbaden 2009 Lektorat: Reinhard Dapper Walburga Himmel Vieweg+Teubner ist Teil der Fachverlagsgruppe Springer Science+Business Media. www.viewegteubner.de Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Umschlaggestaltung: KünkelLopka Medienentwicklung, Heidelberg Technische Redaktion: FROMM MediaDesign, Selters/Ts. Druck und buchbinderische Verarbeitung: Krips b.v., Meppel Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier. Printed in the Netherlands ISBN 978-3-8348-0472-3
V Vorwort zur vierten Auflage Das Entwickeln und Anwenden eines Systems zur Kompression von Daten sind wie das Kochen einer Mahlzeit. Folgende Dinge sind mindestens zu beachten: Für wen wird gekocht (Applikation)? Welche Zutaten werden benötigt (Methoden, Techniken)? Was kosten die Zutaten (Komplexität der Algorithmen, Hardwarekosten)? Wie groß ist der Vorbereitungsaufwand (Entwicklungskosten)? Wie lange muss gekocht werden (Dauer der Kompression eines Signals)? Welchen optischen Eindruck wird das angerichtete Essen machen (Signalqualität)? Wie gut wird das Essen schmecken (Kompressionsverhältnis)? Es ist leicht einzusehen, dass der Aufwand für die Zubereitung möglichst klein sein sollte, der Genuss beim Essen aber möglichst groß. Für manche Anlässe kommt es auch nur auf den maximalen Genuss an, für andere ist es in erster Linie wichtig, dass das Essen schnell auf den Tisch kommt. Das Buch Bilddatenkompression enthält alle Zutaten, die für das Entwickeln eines Kompressionssystems hilfreich sind, sortiert sie nach Einsatzgebiet und beschreibt ihre Wirkungsweise. Außerdem findet der Leser einige Rezepte, wie die Ingredienzen erfolgreich miteinander kombiniert werden können. Die vierte Auflage wurde wieder um einige Zutaten bereichert, andere wurden ausführlicher erläutert. Neben den 28 neuen Abbildungen und Tabellen sowie den vielen kleinen Änderungen und Verbesserungen, die teilweise durch meine Studenten angeregt wurden, fällt vor allem auf, dass den meisten Kapiteln ein Abschnitt mit Testfragen und Aufgaben nachgestellt wurde. Dies ermöglicht dem Leser, das Verständnis für den dargebotenen Stoff besser zu prüfen. Für ausgewählte Aufgaben sind die Lösungen am Ende des Buches aufgelistet. Die wichtigsten inhaltlichen Erweiterungen sind mit Angabe der Kapitel: Beispiele für die Bildkompression mit Vektorquantisierung (3), bessere Strukturierung des Abschnitts zur Codierungsadaptation (4), wesentliche Erweiterung der Ausführungen zu den informationstheoretischen Grundlagen (Markow-Modell, Verbund- und bedingte Wahrscheinlichkeit) (5), ergänzende Angaben zur Prädiktion von Signalwerten (6), Beschreibung des Wavelet-Filterentwurfs anhand von Pol-Nullstellen-Plänen (6), wesentliche Erweiterung des Abschnitts zum Lifting-Schema (6), Beschreibung der ganzzahligen Wavelet-Transformation (6), leichte Modifikationen am WaveQA-Algorithmus (Quelltexte, 9/7-Wavelet-Transformation u.a.) (7, Anhang D), wichtige Ergänzungen zur optimalen Anpassung der Quantisierungsintervalle an die Zerlegungsstufen der Wavelet-Transformation (7), erweiterte Ausführungen zum YCbCr-Farbraum, um den Varianten in verschiedenen Standards gerecht zu werden (8), neue Farbraumtransformationen (YCgCo und YCgCo-R) (8),
VI Abbildungen (auch farbig) zur besseren Erläuterung der verschiedenen Farbraumtransformationen (8), wesentliche Ergänzungen zur DCT-basierten Kompression im JPEG-Standard (Basisbilder, Codetabellen, Syntax, ausführliches Decodierungsbeispiel im Anhang) (9), JPEG 2000: vollständige Liste der Teile des Standards, Überblick über Part 2 (9), Codierungsbeispiel (Anhang C), Erläuterungen zu den aktuellenformaten für das hochauflösende Fernsehen (HDTV) (10), Lösungen zu ausgewählten Aufgaben (Anhang E), Aktualisierung von Sachwortregister und Formelzeichenliste und Anpassen der Terminologie an international übliche Schreibweisen. Die Erweiterungen der Ausführungen zum DCT-basierten JPEG-Standard sind der Tatsache geschuldet, dass auch nach neun Jahren JPEG 2000 der alte JPEG-Standard immer noch die dominierende Rolle in digitalen Geräten und im Internet spielt. Das vorliegende Buch ist im Einzelnen wie folgt gegliedert: Kapitel 1 führt den Leser in die Problematik der Übertragung von Daten und in die Notwendigkeit der Kompression ein. Anschließend werden im zweiten Kapitel die Grundlagen der Datenkompression behandelt. Es wird begründet, warum Kompression möglich ist und wie man die Leistungsfähigkeit eines Kompressionsalgorithmus bewerten kann. Kapitel 3 beschäftigt sich mit der Datenreduktion, also dem Weglassen von (irrelevanten) Informationen. Es werden die Abtastratenumsetzung und Verfahren zur Quantisierung diskutiert. Die Kapitel 4 und 5 befassen sich mit den Codierungsverfahren. Anhand von einfachen Beispielen wird zunächst die Codierung einzelner Symbole und die Anpassung an die statistischen Eigenschaften des zu verarbeitenden Signals beschrieben. Anschließend werden Verfahren erläutert, welche die Beziehungen zwischen den Symbolen eines Signals zur Steigerung der Kompression ausnutzen. Die Ausführungen im Kapitel 6 beinhalten drei wesentliche Methoden zur Dekorrelation von Signalwerten. Den Beginn machen Techniken zur Prädiktion von Signalwerten. Danach werden die Grundlagen diskreter Transformationen erläutert und verschiedene Transformationsarten vorgestellt. Eine besondere Stellung nehmen dabei die Wavelet- Transformation und die fraktale Transformation ein. Im dritten Teil dieses Kapitels werden die Grundlagen von Filterbänken behandelt. Die wichtigen Eigenschaften von Wavelet-Filterbänken und die Probleme bei der Implementierung der diskreten Wavelet- Transformation werden anhand von Quelltextbeispielen diskutiert. Kapitel 7 widmet sich ausschließlich den Aspekten der waveletbasierten Kompression. Anhand von Quelltexten eines lauffähigen C-Programms wird eine mögliche Variante zur Codierung auf Basis der diskreten Wavelet-Transformation vorgestellt. Kapitel 8 beschreibt die Eigenschaften des menschlichen Auges, das Helligkeits- und das Farbsehen. Das Verständnis der visuellen Wahrnehmung ist eine Voraussetzung für die sinnvolle Entwicklung von Algorithmen zur Bilddatenkompression. Es werden alle modernen Farbräume und die entsprechenden Transformationen erläutert.
VII Das Kapitel 9 befasst sich mit den Standards zur Einzelbildkompression JPEG, JPEG-LS und JPEG 2000. Es wird gezeigt, wie Verfahren und Methoden der Datenkompression zu leistungsfähigen Systemen kombiniert werden können. Ziel ist dabei nicht die vollständige Darlegung der Standards, sondern die Darstellung der Konzepte unter Bezugnahme auf die in den vorangegangenen Kapiteln beschriebenen Grundlagen. Kapitel 10 stellt grundlegende Verfahren zur Bildsequenzkompression vor. Dabei geht es im Wesentlichen um die Verringerung der zeitlichen Korrelation durch Methoden der Bewegungskompensation. Das letzte Kapitel behandelt die Standards zur Kompression von Videodaten. Es beschreibt die Besonderheiten bei der Verarbeitung von Bildsequenzen und zeigt die Entwicklung der Methoden beginnend mit MPEG-1 bis hin zum neuen Standard H.264. Im Anhang des Buches finden sich die verwendeten Testbilder, ein vollständiges Beispiel für die Decodierung eines JPEG-Bitstroms, ein Beispiel zur Codierung in JPEG 2000, die Quelltexte der beschriebenen Algorithmen und Lösungen zu ausgewählten Testfragen. Leipzig, im Mai 2009 Tilo Strutz
VIII Vorwort zur ersten Auflage (Auszug) Die digitale Kommunikationstechnik hat in den letzten Jahrzehnten eine enorme Entwicklung erfahren und ist dabei, nach und nach jene Verfahren zu verdrängen, die zeitund wertekontinuierliche Signale verarbeiten. Digitales Telefonieren ist mittlerweile der Standard, digitales Fernsehen wird bereits praktiziert. Auch das Radio erreicht den Hörer unter anderem durch das Internet in digitaler Form. Für den zunehmenden Einsatz von Digitaltechnik gibt es gute Gründe. Erstens ist dadurch meist eine bessere Qualität der Signale realisierbar, vor allem weil die digitale Übertragung einen besseren Schutz gegen Übertragungsfehler ermöglicht. Zweitens ist die Verarbeitung digitaler Signale oft auch einfacher als die von analogen Signalen. Diese Vorteile müssen allerdings durch einen Nachteil erkauft werden: digitale Signalquellen produzieren sehr große Datenmengen. Trotz der rasanten Entwicklung von Speichermedien (Festplatten im mehrstelligen Gigabyte-Bereich) und Übertragungsmedien mit Bandbreiten von vielen Megabit pro Sekunde stößt man in der Praxis ständig an Leistungsgrenzen, da die Datenflut in gleichem Maße steigt. Oft ist die modernste Technik nicht jedem Nutzer zugänglich. Aber auch die Bedürfnisse der Technikbenutzer sind dem technisch Machbaren stets einen Schritt voraus. Dies ist der Grund, warum Informationstechnologien zur effizienten Datenkompression für die Speicherung und Übertragung von Signalen immer wichtiger werden. Insbesondere die Bild- und Video-Codierung hat eine wachsende Bedeutung, da hier zwei- und sogar mehrdimensionale Signale verarbeitet werden müssen. Typische Anwendungen der Datenkompression sind: Archivierung von Daten jeglicher Art, digitales Fernsehen, Videoaufzeichnung, Bildtelefon, Videokonferenz, digitale Fotografie, Videoüberwachung, Telemedizin u.v.a.m. Dieses Buch wendet sich an Ingenieure der Nachrichten-, Informations- und Medientechnik, Informatiker und Physiker sowie an Studierende in einem entsprechenden Hauptstudium. Aber auch der interessierte Leser mit einer adäquaten technischen Vorbildung findet hier einen geeigneten Lesestoff. Das Buch vermittelt allgemeine informationstheoretischen Grundlagen für die Datenkompression, erläutert Algorithmen verschiedener Codierungsmethoden und beschreibt spezielle Verfahren und Methoden für die Bild- und Videokompression. Insbesondere wird auf die modernen Verfahren der waveletbasierten Kompression und die damit verbundenen Problemstellungen eingegangen. Besonderer Wert wurde auf die Anreicherung der theoretischen Basis mit Beispielen gelegt, die eine Diskussion der Effekte und Ergebnisse ermöglichen. Desweiteren sind die Quelltexte einiger Algorithmen, wie zum Beispiel der arithmetischen Codierung, im Anhang abgedruckt. Das Lehrbuch ist somit als vorlesungsbegleitendes Material, für das Selbststudium und als Nachschlagewerk geeignet. Rostock, im Oktober 2000 Tilo Strutz
IX Inhaltsverzeichnis 1 Einführung 1 2 Grundlagen der Datenkompression 5 2.1 Informationsgehalt und Entropie....................... 5 2.2 Kriterien zur Kompressionsbewertung.................... 10 2.2.1 Kompressionsverhältnis........................ 10 2.2.2 Signalqualität.............................. 10 2.2.3 Rate-Distortion-Funktion....................... 13 2.2.4 Merkmale eines Kompressionsalgorithmus..... 14 2.3 Redundanz und Irrelevanz........................... 15 2.3.1 Redundanz............................... 15 2.3.2 Irrelevanz................................ 16 2.4 Testfragen.................................... 17 3 Datenreduktion 18 3.1 Modifikation der Abtastrate.......................... 18 3.1.1 Unterabtastung............................. 18 3.1.2 Überabtastung............................. 20 3.2 Quantisierung.................................. 21 3.2.1 Skalare Quantisierung......................... 21 3.2.2 Vektorquantisierung.......................... 26 3.3 Praktische Anwendung............................. 28 3.4 Testfragen.................................... 30 4 Entropiecodierung 31 4.1 Codierungstheorie............................... 31 4.2 Morse-Code................................... 33 4.3 Shannon-Fano-Codierung........................... 34 4.4 Huffman-Codierung............................... 35 4.5 Golomb- und Rice-Codes............................ 38 4.5.1 Golomb-Codes............................. 38 4.5.2 Rice-Codes............................... 40 4.5.3 Exponentielle Golomb-Codes..................... 41 4.6 Universelle Präfixcodes............................. 42 4.7 Decodierung von Präfixcodes......................... 44
X Inhaltsverzeichnis 4.8 Arithmetische Codierung........................... 47 4.8.1 Festkomma-Implementierung..................... 49 4.8.2 Beschleunigte Implementierung.... 55 4.8.3 Binäre arithmetische Codierung.................... 59 4.9 Codierungsadaptation............................. 60 4.9.1 Semi-adaptive Anpassung von Präfixcodes.............. 60 4.9.2 Kontextbasierte Codierung...................... 61 4.9.3 Anpassung durch Sortieren...................... 63 4.9.4 Voll-adaptive Anpassung von Präfixcodes.............. 63 4.9.5 Adaptation der arithmetischen Codierung.............. 63 4.10 Codierung von sehr großen Symbolalphabeten................ 64 4.11 Testfragen.................................... 68 5 Präcodierung 69 5.1 Informationstheoretische Grundlagen..................... 69 5.1.1 Markow-Modell............................. 70 5.1.2 Verbundwahrscheinlichkeit....................... 71 5.1.3 Verbundentropie und bedingte Entropie............... 73 5.1.4 Praktische Implikationen....................... 76 5.2 Lauflängencodierung.............................. 78 5.2.1 Allgemeine Codierung mehrwertiger Signale............. 78 5.2.2 Signale mit Vorzugsamplitude..................... 80 5.2.3 Verarbeitung binärer Signale..................... 81 5.3 Phrasen-Codierung............................... 82 5.3.1 Der LZ77-Algorithmus......................... 82 5.3.2 Der LZ78-Algorithmus......................... 83 5.3.3 Der LZW-Algorithmus......................... 83 5.4 Blocksortierung................................. 86 5.5 Bit-Markierung................................. 89 5.6 Viererbaum-Codierung............................. 89 5.7 Maximalwert-Codierung............................ 93 5.8 Minimalwert-Bäume.............................. 94 5.9 Testfragen.................................... 96 6 Techniken zur Dekorrelation 99 6.1 Prädiktion von Signalwerten.......................... 99 6.1.1 Einfache lineare Prädiktion...................... 100 6.1.2 Lineare Prädiktion höherer Ordnung................. 102 6.1.3 Prädiktion mit Quantisierung..................... 103 6.1.4 2D-Prädiktion............................. 103
Inhaltsverzeichnis XI 6.1.5 Nichtlineare Prädiktion........................ 104 6.1.6 Der Wertebereich von Prädiktionsfehlern.............. 106 6.1.7 Anmerkungen.............................. 107 6.2 Transformationen................................ 108 6.2.1 Diskrete Transformationen...................... 108 6.2.2 Orthogonale Transformation..................... 109 6.2.3 Biorthogonale Transformation..................... 111 6.2.4 Diskrete Fourier-Transformation (DFT)......111 6.2.5 Karhunen-Loève-Transformation(KLT)...112 6.2.6 Diskrete Kosinus-Transformation (DCT)......112 6.2.7 Diskrete Walsh-Hadamard-Transformation (WHT)......... 113 6.2.8 Diskrete Wavelet-Transformation (DWT)......115 6.2.9 Fraktale Transformation........................ 120 6.3 Filterbänke................................... 126 6.3.1 Zwei-Kanal-Filterbänke........................ 127 6.3.2 Oktavfilterbänke............................ 136 6.3.3 2D-Filterung.............................. 140 6.3.4 Beste Basen Wavelet-Pakete.................... 142 6.3.5 Implementierung von Filterbänken.................. 145 6.3.6 Das Lifting-Schema.......................... 148 6.4 Kompressionssysteme............................. 154 6.5 Testfragen.................................... 156 7 Waveletbasierte Bildkompression 158 7.1 Überblick.................................... 158 7.2 Encoder..................................... 158 7.2.1 Transformation............................. 159 7.2.2 Quantisierung.............................. 160 7.2.3 Präcodierung.............................. 162 7.2.4 Entropiecodierung........................... 164 7.3 Decoder..................................... 165 7.3.1 Decodierung des Bitstroms...................... 165 7.3.2 Rekonstruktion der Transformationskoeffizienten.......... 165 7.3.3 Rücktransformation.......................... 166 7.4 Kompressionsergebnisse.....166 8 Wahrnehmung und Farbe 173 8.1 Visuelle Wahrnehmung............................. 173 8.1.1 Netzhaut und Sehnerven........................ 173 8.1.2 Die Lichtempfindung.......................... 174
XII Inhaltsverzeichnis 8.2 Farbsysteme................................... 177 8.2.1 Was ist Farbe?............................. 177 8.2.2 CIE-Normfarbtafel........................... 178 8.2.3 Der RGB-Farbraum.......................... 179 8.2.4 Der CYM-Farbraum.......................... 180 8.2.5 Der HLS-Farbraum........................... 181 8.2.6 Die Yxx-Farbräume.......................... 182 8.2.7 Farbpaletten...189 8.3 Testfragen.................................... 191 9 Standards zur Einzelbildkompression (JPEG) 192 9.1 Historie..................................... 192 9.2 JPEG...................................... 194 9.2.1 DCT-basierte Kompression...................... 194 9.2.2 Die Arbeitsmethoden......................... 204 9.2.3 JPEG-Syntax und Organisation der Daten............. 209 9.2.4 Kompressionsergebnisse........................ 218 9.3 JPEG-LS Verlustlose Kompression..................... 225 9.3.1 Der Kompressionsalgorithmus..... 225 9.3.2 Encodierungsprozeduren........................ 226 9.3.3 Das Datenformat............................ 232 9.3.4 Resultate der verlustlosen Kompression...... 235 9.4 JPEG 2000 Waveletbasierte Kompression...239 9.4.1 Das Kompressionsverfahren...................... 240 9.4.2 Die Datenstruktur........................... 248 9.4.3 Dateiformat-Syntax (JP2)....................... 256 9.4.4 Erweiterungen im Part 2........................ 257 9.4.5 Kompressionsergebnisse im Vergleich...258 9.5 Testfragen.................................... 258 10 Grundlegende Verfahren zur Bildsequenzkompression 261 10.1 Struktur eines Video-Codecs.......................... 261 10.2 Bewegungsschätzung und -kompensation................... 263 10.2.1 Bewegungsarten und Schätzverfahren................ 263 10.2.2 Block-Matching............................. 264 10.2.3 Warping................................. 271 10.3 Testfragen.................................... 272 11 Standards zur Bildsequenzkompression 273 11.1 Einführung................................... 273
Inhaltsverzeichnis XIII 11.2 Bildformate................................... 275 11.3 MPEG-Systemschicht............................. 277 11.4 Kompressionsverfahren (MPEG-1/2)..................... 278 11.4.1 Struktur von Video-Elementarströmen................ 278 11.4.2 Verarbeitung von I-Bildern...................... 281 11.4.3 Verarbeitung von P- und B-Bildern.................. 282 11.4.4 Bewegungskompensation........................ 283 11.4.5 Bitratensteuerung........................... 283 11.4.6 Besonderheiten von MPEG-2..................... 284 11.5 H.263 und MPEG-4.............................. 288 11.5.1 H.263.................................. 288 11.5.2 MPEG-4................................ 289 11.6 H.264...................................... 294 11.6.1 Grundkonzept............................. 294 11.6.2 Dekorrelation.............................. 296 11.6.3 Quantisierung.............................. 305 11.6.4 Codierung................................ 306 11.6.5 Filter zur Unterdrückung von Blockartefakten............ 308 11.6.6 Profile und Levels........................... 310 11.6.7 Erweiterungen............................. 310 11.7 Testfragen.................................... 311 A Testbilder...................................... 313 B JPEG Decodier-Beispiel........................... 317 C JPEG 2000 Codier-Beispiel........................... 338 D Quelltexte...................................... 341 ELösungen zu ausgewählten Aufgaben..................... 366 Formelzeichen und Abkürzungen......................... 369 Literatur......................................... 373 Sachwortverzeichnis................................ 387