Multimedia Kodierung und Komprimierung Kodierung und Komprimierung von Bilddaten



Ähnliche Dokumente
10%, 7,57 kb 20%, 5,3 kb 30%, 4,33 kb 40%, 3,71 kb 50%, 3,34 kb. 60%, 2,97 kb 70%, 2,59 kb 80%, 2,15 kb 90%, 1,62 kb 99%, 1,09 kb

Im Original veränderbare Word-Dateien

Bildbearbeitung: Grafikformate II und Farbmodelle

Digitale Bilddateien

Woraus besteht ein Bild? (c) Winfried Heinkele

Bilddateien. Für die Speicherung von Bilddaten existieren zwei grundsätzlich unterschiedliche Verfahren. Bilder können als

Kodierung und Komprimierung von Bilddaten

Digital Imaging Einführung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Run Length Coding und Variable Length Coding

Grafikformate. Grafikformate. Digitale Bildverarbeitung Bildkompression

Kompression und Datenformate. Grundlagen der Bildspeicherung, Kompressionsverfahren, Datenformate

10.1 Auflösung, Drucken und Scannen

Primzahlen und RSA-Verschlüsselung

Komprimieren von Bildern

Format Kompression Farbtiefe Speicherbedarf Eigenschaften bmp. Windows Bilder Bitmap. Bis 16,7 Mio Austauschformat zwischen Welten

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Einführung. So funktioniert das virtuelle Druckstudio von

Zahlensysteme: Oktal- und Hexadezimalsystem

Pixel oder Vektor? Die Vor- und Nachteile der verschiedenen Dateiformate. Langner Marketing Unternehmensplanung Metzgerstraße Reutlingen

1 Mathematische Grundlagen

Zeichen bei Zahlen entschlüsseln

15 Optimales Kodieren

Kapiteltests zum Leitprogramm Binäre Suchbäume

Basisinformationstechnologie II

ACDSee 2009 Tutorials: Rote-Augen-Korrektur

WORKSHOP für das Programm XnView

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:


Herstellen von Symbolen mit Corel Draw ab Version 9

Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein)

Bilder zum Upload verkleinern

Plotten von Linien ( nach Jack Bresenham, 1962 )

Gimp Kurzanleitung. Offizielle Gimp Seite:

Advanced Rendering Interior Szene

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Konzepte der Informatik

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Theoretische Grundlagen der Informatik WS 09/10

Farbdarstellung. aber mit einem ausgeprägten Empfindlichkeitsmaximum im roten, grünen bzw. blauen Bereich.

Einfügen von Bildern innerhalb eines Beitrages

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Bedingungen. Bedingungen. Bedingungen

Comic Life 2.x. Fortbildung zum Mediencurriculum

Bildbearbeitung mit GIMP: Erste Schritte Eine kurze Anleitung optimiert für Version

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

JPEG, PDF & Co. JPEG, PDF & Co. Theorie und Praxis zu Bildern auf Computern und Druckern

Farbtypen. Bedeutung von Farben 1. Drucken. Arbeiten mit Farben. Papierhandhabung. Wartung. Problemlösung. Verwaltung. Index

Lineare Gleichungssysteme

Professionelle Seminare im Bereich MS-Office

Zahlen auf einen Blick

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Grundlagen der Informatik

A1.7: Entropie natürlicher Texte

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Einführung in. Logische Schaltungen

Foto und Grafik. Arbeitsheft für den Informatikunterricht. Fotos, Pixel und Vektoren sowie Bildbearbeitung am PC. Name. ... Klasse ...

Bilder Schärfen und Rauschen entfernen

Schnellanleitung: Bilder für das Internet optimieren

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

Berechnungen in Access Teil I

Tevalo Handbuch v 1.1 vom

GEVITAS Farben-Reaktionstest

Grundwissen Informatik 6. Jahrgangsstufe

Bilddatenformate BMP GIF JPG. Digitale Bildverarbeitung Liedtke 7.1. Bezeichnung: Microsoft Windows Bitmap, BMP, DIB

Bilder und Grafiken für das WEB optimieren

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Auflösung und Farbmodus von Zertifikaten, Bewerbungsfoto und Signaturen

Hilfe zur Urlaubsplanung und Zeiterfassung

Grundlagen der Theoretischen Informatik, SoSe 2008

Kapitel 3 Frames Seite 1

2 Darstellung von Zahlen und Zeichen

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Eine Logikschaltung zur Addition zweier Zahlen

Addendum Option Dynam. HD-Text-/Grafikoptimierung Xerox EX Print Server, Powered by Fiery, für Druckmaschine Xerox igen 150, Version 1.

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Scannen / Bildbearbeitung

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

19. Mai 2015 L A TEX. Grafiken. Prof. Dr. Alexander Braun // Wissenschaftliche Texte mit LaTeX // WS 2014/15

Kapitel 3 Bilder farblich verändern - Arbeiten mit Objekten

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Digitale Bildverarbeitung (DBV)

5. Bildauflösung ICT-Komp 10

Guide DynDNS und Portforwarding

Artikel Schnittstelle über CSV

Ich möchte eine Bildergalerie ins Internet stellen

Task: Nmap Skripte ausführen

1 topologisches Sortieren

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Lineare Gleichungssysteme

Internet Kurs. Suchmaschinen

SICHERN DER FAVORITEN

Ebenenmasken Grundlagen

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

1. Arbeiten mit dem Touchscreen

Transkript:

Multimedia Kodierung und Komprimierung Kodierung und Komprimierung von Bilddaten Seminararbeit im Seminar Neue Technologien in Internet und WWW Wintersemester 2003/04 Universität Jena vorgelegt von Dennis Heimann Januar 2004

Abstract In der folgenden Seminararbeit wird auf die Kodierung und die Komprimierung häufig eingesetzter Grafikformate im Internet eingegangen. Dabei werden unter anderem Methoden der Grafikkodierung vorgestellt, sowie das menschliche visuelle System erklärt. Ausserdem werden noch neue Grafikformate für das Internet betrachtet. 1

Inhaltsverzeichnis 1 Einleitung 3 2 Methoden der Grafikkodierung 3 2.1. Die Rastergrafik...... 3 2.2. Die Vektorgrafik..... 6 3 Das Menschliche visuelle System 6 3.1. Funktionsweise des Auges...... 6 3.2. Farben und Farbräume.... 8 3.2.1. Das RGB-Modell... 9 3.2.2. Das CMYK-Modell... 9 3.2.2. Das HSB-Modell.... 10 4 Grundlegende Kodier-/ Komprimierverfahren 12 4.1. Arten der Komprimierung.......12 4.1.1. Logische und physikalische Komprimierung... 12 4.1.2. Symmetrische und asymmetrische Komprimierung...12 4.1.3. Adaptive, semi-adaptive, nicht-adaptive Komprimierung.13 4.1.4. Verlustfreie und verlustbehaftete Komprimierung... 13 4.2. Lauflängenkodierung.. 14 4.3. Huffmann-Kodierung...... 14 4.4. LZW-Komprimierung. 15 5 Grafikformate 16 5.1. GIF.. 16 5.2. PNG 17 5.3. JPEG... 20 6 Neue Grafikformate 26 6.1. JPEG2000... 26 6.2. DjVu 27 6.3. Fraktale Kompression..... 28 7 Zusammenfassung 29 A Glossar 30 B Abkürzungen und Akronyme 30 Literaturverzeichnis 31 Index 32 2

1 Einleitung Grafiken vervollständigen auf eine anschauliche Weise den Text einer Webseite, welche durch diese zusätzlichen visuellen Informationen natürlich ansprechender und moderner wirkt. Außerdem tragen Grafiken zum besseren Verständnis eines komplexen Sachverhalts bei, was allein durch Text oft nicht erreicht wird. Es stellt sich daher die Frage, wie diese Bilder Platz sparend, jedoch mit einem, je nach Verwendungszweck, angemessenen aber geringen Informationsverlust im Rechner kodiert werden können. In der folgenden Arbeit werden zu diesem Thema einige Kodier- und Komprimierverfahren für Grafikdaten vorgestellt. 2 Methoden der Grafikkodierung Um Grafiken mit dem Computer verarbeiten zu können, ist es notwendig, diese zunächst zu digitalisieren. Es sei denn, sie werden direkt mit geeigneten Programmen im Rechner erstellt. In beiden Fällen müssen die Bildinformationen, wie Farbe, Helligkeit oder Größe, als Daten gespeichert werden. Dabei ist die Struktur und die Organisation der abgespeicherten Daten wichtig [Q1]. Hier werden prinzipiell zwei Arten von Bilddaten unterschieden: 2.1. Die Rastergrafik Die erste Möglichkeit für die Speicherung von Bilddaten stellt die Rastergrafik, oder auch Pixelgrafik dar. Bei dieser Methode wird ein kontinuierliches Bild räumlich diskretisiert, das heißt in einzelne kleine Punkte (Pixel) zerlegt. Diesen Vorgang nennt man Rasterung. Die Größe eines Pixels bestimmt dabei die Auflösung des Bildes, das heißt je kleiner der Bereich für einen Pixel gewählt wird, desto höher ist die damit erreichte Auflösung. Dies bedeutet jedoch, dass eine Grafik mit höherer Auflösung auch mehr Speicherplatz benötigt, als eine Grafik mit geringerer Auflösung [Q1]. 3

Abbildung 1: Vergleich unterschiedlich großer Auflösungen Jedem dieser bei der Rasterung entstehenden Punkte wird außerdem gleichzeitig ein diskreter Farbwert zugeordnet, was als Quantisierung bezeichnet wird. Der Wert, den ein Pixel dabei annehmen kann, gibt dann die Farbe oder bei einem Graustufenbild den Grauwert an. Bei einem Graustufenbild ist dieser Wert eine skalare Größe, der die Helligkeit von 0 = schwarz bis 255 = weiß (bei 256 Graustufen) beschreibt. Der Bildpunkt eines Farbbildes beinhaltet zum Beispiel im RGB-Format eine exakte Farbinformation, die sich aus drei verschiedenen Werten zusammensetzt. Der Pixelwert ist hierbei ein dreidimensionaler Vektor, dessen Komponenten die Rot-, Grün- und Blauintensität dieses Pixels angeben. Die Anzahl der Farben, die ein Bildpunkt annehmen kann, legt gleichzeitig die Farbtiefe des Bildes fest. Das heißt, die Farbtiefe ist definiert als der Logarithmus duales von der Anzahl der Farben [Q1]. Zum Beispiel beträgt die Farbtiefe eines Bildes mit 65536 Farben 16 Bit, da 16 = log 2 65536. Abbildung 2: Vergleich unterschiedlicher Farbtiefen Durch die beschriebene Digitalisierung eines Bildes erhält man schließlich eine MxN-Pixelmatrix, wobei M die Anzahl der Zeilen und N die Anzahl der Spalten beschreibt. Eine Rastergrafik besteht dann aus MxN Bildpunkten. Diese Daten werden binär gespeichert. Man stellt fest, dass Rasterung und Quantisierung die zu speichernde Datenmenge eines Bildes bestimmen. Es ist beispielsweise möglich, eine grobe Rasterung, die einen hohen Qualitätsverlust nach sich zieht, durch 4

eine feinere Quantisierung auszugleichen. Dies ist jedoch nicht unbegrenzt durchführbar. Eine zu niedrige Rasterung oder eine falsche Quantisierung können einen Informationsverlust und Störungen zur Folge haben. Dies ist zum Beispiel der Fall bei einer Digitalisierung mit zu grober Rasterung. Dabei nennt man die hier auftretenden periodischen Störungen Aliasing. Diese Störungen entstehen durch zu große Abtastintervalle der abtastenden Frequenz, welche dadurch nicht alle abzutastenden Werte erreicht, siehe Abbildung 3. Störungen im Punktraster werden als Moiree-Effekt bezeichnet. Diese treten auf, wenn die Auflösung zu klein gewählt wird. Die Digitalisierung ist dadurch simuliert, dass die betrachteten Objekte durch ein zweidimensionales Objekt gesehen werden. Durch die Abtastung erscheinen die Gitter mit anderen Gitterkonstanten und in anderer Richtung und es kommt zu einer vollkommenen Verfälschung der Bildinformation, siehe Abbildung 4 [Q1]. Wie diese Effekte verhindert werden können, erklärt das Abtasttheorem von Shannon, was jedoch hier nicht weiter erläutert werden soll. Ganz allgemein besagt es: Die Abtastfrequenz muss mindestens doppelt so groß sein, wie die abzutastende Frequenz [Q2]. Abbildung 3: Aliasing-Effekt 5

Abbildung 4: Moiree-Effekt 2.2. Die Vektorgrafik Bei der Vektorgrafik werden anstelle von einzelnen Bildpunkten Objektbezugspunkte für geometrische Figuren, wie Linien, Kurven oder Polygone, gespeichert. Spezielle Programme rekonstruieren aus diesen Schlüsselpunkten dann die darzustellende Figur. Dadurch ist es möglich, in Vektorgrafiken hinein zu zoomen, ohne dass dabei irgendwelche Qualitätsverluste auftreten. Das bedeutet, sie sind beliebig skalierbar. In diesen Schlüsselpunkten werden zusätzlich noch Attribute, wie Linienfarbe, Linienstärke und die Farbe für die Füllung des Objekts gespeichert. Des Weiteren sind Vektorgrafiken animationsfähig. Anders als bei Pixelgrafiken, bei denen eine Animation aus vielen Einzelbildern aufgebaut wird, werden hier einfach räumliche Bewegungspfade des Objektbezugspunktes geometrisch beschrieben. Aufgrund der beschriebenen Eigenschaften eignet sich das Vektorformat besonders für mathematisch konstruierbare Objekte, Comics und Illustrationen, da diese durch Linien beschrieben werden können. Für komplexe Bilder, wie Fotos oder vielfarbige Darstellungen, bietet es sich allerdings weniger an, weil die Bildinhalte hier nicht mathematisch konstruierbar sind [Q3]. 3 Das menschliche visuelle System 3.1. Funktionsweise des Auges Das menschliche Auge funktioniert auf folgende Weise. Die Lichtstrahlen fallen durch Linse und Pupille ins Auge. Dabei werden sie an der Linse gebrochen. Die Pupille wirkt wie eine Blende, die ihren Durchmesser je nach einfallender Lichtmenge variieren kann. Die Linse 6

bündelt die Lichtstrahlen und bildet das Gesehene auf die Netzhaut ab, welche sich an der Rückwand des Auges befindet. Für das scharfe Fern- und Nahsehen sorgen feine Muskelfasern zwischen Linse und fester, äußerer Haut des Augapfels. Sie können die Dicke der Linse durch Streckung verändern. Die Netzhaut besteht aus einer Schicht feiner lichtempfindlicher Rezeptoren und dünnen Nervenzellen. Hier unterscheidet man Stäbchen und Zapfen. Abbildung 5: Schnitt durch das menschliche Auge Mit den Stäbchen wird die Lichtintensität, das heißt verschiedene Grautöne, unterschieden, sie dienen deshalb dem Sehen in der Dämmerung. Die Zapfen dienen dem Farbsehen, jedoch benötigt man hierfür eine bestimmte Mindesthelligkeit. Es wird angenommen, dass es drei Arten von Zapfen gibt, die jeweils eine charakteristische Empfindlichkeit auf das Farbspektrum aufweisen. Eines für Grün, eines für Gelb-Rot und eines für Blau-Violett. Der aufgenommene Lichteindruck wird durch die Zapfen und Stäbchen ans Gehirn weitergeleitet, wo diese Signale verarbeitet werden, und die Reize der drei verschiedenen Zapfen zu neuen Farben kombiniert werden. Die Zapfen befinden sich im Zentrum der Netzhaut, welches gelber Fleck genannt wird. Hier ist die Netzhaut am empfindlichsten, und die Auflösung mit der wird sehen, am größten. Je weiter man sich vom gelben Fleck entfernt, desto geringer ist die Anzahl der Zapfen, desto mehr wird mit den Stäbchen gesehen. An der Stelle, an der der Sehnerv das Auge verlässt sitzen keine Sehzellen mehr. Diese wird als deshalb als blinder Fleck bezeichnet. 7

Der Wahrnehmung sind aber Grenzen gesetzt. Die Anzahl der Zapfenzellen beträgt 6 Millionen, wovon sich zirka 160.000 pro Quadratmillimeter am gelben Fleck befinden, und die Anzahl der Stäbchenzellen liegt bei 130 Millionen. Außerdem kann der Mensch zirka 100 Grautöne und 7 Millionen Farben unterscheiden. Wie bereits erwähnt, werden Farben über Rezeptoren für farbiges Licht (rot, grün, blau) in der Netzhaut aufgenommen. Dabei ist genetisch bedingt, dass die Empfindlichkeit dieser Rezeptoren für andere Farben bei allen Menschen unterschiedlich ist. Die Wirkung der verschiedenen Farben auf den Menschen ist jedoch verallgemeinerbar. Kalte Farben, wie Blau und Grün, wirken beruhigend und entspannend. Warme Farben, wie Rot, Gelb oder Orange, werden dagegen als anregend und lebhaft empfunden. Hierbei spielt auch die Intensität eine Rolle. Sanfte, weniger intensive Farben vermitteln Geborgenheit und Bequemlichkeit. Starke, intensive Farben machen eher aggressiv [Q4, Q5, Q6]. 3.2. Farben und Farbräume Farben sind Bestandteile des weißen Lichts. Der weiße Lichtstrahl ist ein Gemisch aus allen Wellenlängen. Die Farbe kommt zustande, indem weißes Licht auf ein Objekt trifft, das bestimmte Frequenzen absorbiert und andere nicht. Trifft der weiße Lichtstrahl zum Beispiel auf eine Fläche, die alle Wellenlängen außer rot absorbiert, erscheint diese Fläche rot. Für den Menschen sichtbares Licht ist nur ein kleiner Teil des Wellenspektrums, etwa 380 bis 700 nm. Die Wellenlänge dieses Spektrums bestimmt die Farbe eines Lichtstrahls. Beispielsweise erscheint ein Lichtstrahl mit der Wellenlänge von rund 700 nm rot. Es gibt verschiedene Modelle, um Farben zu beschreiben. Wobei jedes Farbsystem versucht, die Farben so anzuordnen, dass sie geometrisch beschrieben werden können oder als Anleitung zum Mischen neuer Farben dienen. Hierbei unterscheidet man additive und subtraktive Farbmodelle. Bei den additiven Modellen werden zur Grundfarbe Schwarz Farben hinzugemischt, um eine neue Farbe zu erzeugen. Dabei gilt, je mehr Farben hinzugemischt werden, desto mehr tendiert die Farbe zu Weiß. Die hier benutzten Farben sind selbstleuchtend. Bei den subtraktiven Farbmodellen werden zum Mischen neuer Farben von Weiß abgezogen. Hier liefert die Mischung aller Farben die Farbe Schwarz. Die hier verwendeten Farben basieren auf Reflexionen, das heißt die wahrgenommene Farbe ergibt sich aus Reflexionen des Lichts bei den auf Papier gedruckten Farben. Keines der im Folgenden näher erläuterten Farbsysteme arbeitet in der Praxis perfekt [Q5]. 8

3.2.1. Das RGB-Modell Das RGB-Modell zählt zu den additiven Farbmodellen. Es baut auf den drei Grundfarben Rot, Grün und Blau auf, aus denen sich jede andere Farbe mischen lässt. Die Mischung aller drei Grundfarben mit der gleichen Intensität ergibt Weiß. Die meisten Bildsysteme arbeiten mit diesem Modell [Q7]. Abbildung 6: Das RGB-Modell 3.2.2. Das CMYK-Modell (CMY-Modell) Dieses Modell gehört zu den subtraktiven Farbmodellen. Es besteht aus den drei Farben Cyan, Magenta und Gelb als Grundfarben. Hier ergibt die Mischung aller drei Farben theoretisch die Farbe Schwarz, in der Praxis erhält man jedoch nur ein sehr dunkles Braun [Q7]. 9

Abbildung 7: Das CMYK-Modell 3.2.3. Das HSB-Modell Das HSB-Modell besteht aus mehreren Komponenten, dem Farbton (Hue), der Sättigung (Saturation) und der Helligkeit (Brightness). Die Farbton- Komponente beinhaltet die Farbinformation, wobei die Skala hier bis 360 Grad reicht. Die Sättigung gibt das Verhältnis zwischen reiner Farbstärke und unbuntem Anteil an, 0% für Grauwert und 100% für reine Farbe. Die Helligkeit entspricht der Helligkeit von 0% (schwarz) und 100% (weiß) [Q7]. 10

Abbildung 8: Das HSB-Modell In Abbildung 9 ist die Farbe blasses Dunkel-Lila mit den beschriebenen Farbmodellen dargestellt. Abbildung 9: Vergleich der Farbsysteme RGB, CMYK und HSB 11

4. Grundlegende Kodier-/ Komprimierverfahren 4.1. Arten der Komprimierung Um Daten zu komprimieren ist zunächst eine geeignete Kodierung erforderlich. Außerdem gibt es verschiedene Arten der Komprimierung, die jedoch unabhängig von der Art des zu komprimierenden Mediums sind. Die allgemeinen Probleme hierbei liegen im Rechenaufwand für die Kompression und die Dekompression, der Fehleranfälligkeit, falls Redundanz fehlt und im möglichen Informationsverlust [Q8]. 4.1.1. Logische und physikalische Komprimierung Man kann zum einen zwischen logischer (semantischer) und physikalischer (syntaktischer) Komprimierung unterscheiden. Bei der logischen Komprimierung findet eine fortlaufende logische Substitution statt, das heißt ein alphanumerisches oder binäres Symbol wird durch ein anderes ersetzt. Zum Beispiel lässt sich die Zeichenfolge Friedrich Schiller Universität ersetzen durch FSU. Diese Komprimierung ist jedoch nur oberhalb des Abstraktionsniveaus von alphanumerischen Zeichen sinnvoll. Und sie basiert ausschließlich auf Informationen, die in den zu komprimierenden Daten enthalten sind. Die physikalische Komprimierung wird dagegen auf Daten angewendet, ohne dass die in den Daten enthaltenen Informationen genutzt werden. Es wird nur eine Kodierung durch eine kompaktere ausgetauscht. Die Dekodierung, der auf diese Weise komprimierten Daten, erfolgt mechanisch, wobei der Zusammenhang zwischen Ausgangsdaten und komprimierten Daten nicht offensichtlich ist. Bei allen im Folgenden vorgestellten Verfahren handelt es sich um physikalische [Q5]. 4.1.2 Symmetrische und asymmetrische Komprimierung Bei den Arten der Komprimierung kann man des Weiteren zwischen symmetrischer und asymmetrischer Komprimierung unterscheiden. Symmetrische Komprimierung bedeutet, dass der Kodierungs- und der Dekodierungsalgorithmus in etwa dieselbe Komplexität haben. Die asymmetrische Komprimierung liefert hingegen für beide Algorithmen deutlich unterschiedliche Komplexitäten. Diese Art ist vor allem vorteilhaft, wenn die Kodierung sehr aufwendig ist, jedoch während der Kompression nur einmal ausgeführt wird, und die Dekodierung einen viel geringeren 12

Aufwand hat, aber bei jedem Zugriff auf die komprimierten Daten erfolgt [Q5]. 4.1.3. Adaptive, semi-adaptive und nicht-adaptive Komprimierung Viele Komprimierverfahren dienen ausschließlich der Komprimierung bestimmter Medienformate und verwenden deshalb nur formatspezifische Informationen. Diese Informationen werden in Wörterbüchern gespeichert. Hier kann man drei Methoden der Wörterbuch-Kodierung unterscheiden. Zum einen die nicht-adaptive Komprimierung. Diese benutzt ein statisches Wörterbuch mit vorgegebenen Mustern, die in den zu komprimierenden Informationen sehr häufig vorkommen. Zum Beispiel könnte ein Komprimierverfahren für die deutsche Sprache die Wörter und, oder, der, die, und das enthalten, da diese bekanntermaßen sehr häufig auftreten. Die adaptiven Verfahren benutzen ein dynamisches Wörterbuch. Hier wird bei jeder Anwendung ein eigenes Wörterbuch von oft auftretenden Mustern erstellt. Die semi-adaptive Komprimierung ist eine Mischform aus adaptiver und nicht-adaptiver Komprimierung. Gewöhnlich werden bei diesem Verfahren zwei getrennte Arbeitschritte ausgeführt. Zunächst wird ein Wörterbuch über die zu kodierenden Daten aufgebaut, danach erfolgt die darauf aufbauende Kodierung [Q5]. 4.1.4. Verlustfreie und verlustbehaftete Komprimierung Schließlich lassen sich die Verfahren noch in verlustfrei und verlustbehaftet aufteilen. Die Kodierung und die Dekodierung der Daten beim verlustfreien Komprimieren erfolgt so, dass die ursprünglichen Daten nach beiden Verarbeitungsschritten wieder unverändert vorliegen. Das heißt, die in den Daten enthaltenen Informationen bleiben vollständig erhalten. Die verlustbehaftete Komprimierung zielt auf eine höhere Komprimierungsrate ab. Dies geschieht jedoch auf Kosten von Informationen, welche für den jeweiligen Verwendungszweck als weniger wichtig erscheinen. Für Bilddaten werden heuristische Methoden verwendet, um eine maximale Komprimierung, bei möglichst geringem visuellem Informationsverlust, zu erreichen [Q5]. 13

4.2. Lauflängenkodierung Die Lauflängenkodierung zählt zu den verlustfreien Kodierungen. Die Idee besteht darin, dass gleiche Pixelwerte, die hintereinander auftreten, zusammengefasst werden. Dies kann als Multiplikation der einzelnen Werte aufgefasst werden. Statt alle Pixelwerte einzeln aufzuschreiben, gibt man nur den Wert und seinen Faktor, also die Häufigkeit des Hintereinanderauftretens an [Q5]. Dabei gibt es verschiedene Möglichkeiten: 1) Man zerlegt die Zeichenfolge in 0- und 1-Blöcke und gibt zu jedem Block den Wert (0 oder 1) und seinen Faktor an. Beispiel: 000111100000111111000000011111111 lässt sich kodieren zu (3,0), (4,1), (5,0), (6,1), (7,0), (8,1) Jetzt kann man zusätzlich festlegen, dass sich 0 und 1, schwarz und weiß, immer abwechseln, wodurch eine noch kleinere Darstellung erreicht werden kann: 3 4 5 6 7 8 Hierbei muss sich natürlich der Wert des Startpixels gemerkt werden. Und da die Längenangabe meist begrenzt ist, zum Beispiel auf ein Byte, muss der Block für einen Wert, der 290- mal vorkommt, aufgespalten werden und ein Block der Länge 0 eingeschoben werden. Dies sichert das Abwechseln der 0- und 1- Blöcke: 255 0 35. 2) Eine andere Möglichkeit besteht darin, nur die Position und die Länge der 1-Blöcke zu speichern, die restlichen Blöcke müssen ja dann 0-Blöcke sein. Für obiges Beispiel gilt: (3,4), (12,6), (25,8) Die Lauflängenkodierung eignet sich besonders für die Kodierung von Schwarz-Weiß-Bildern (Binärbildern). Sie ist eher unpraktisch bei hochauflösenden Farbbildern, da diese zu viele Farbwerte enthalten, und es selten vorkommt, dass mehrere identische Pixel hintereinander auftreten [Q8]. 4.3. Huffmann-Kodierung Die Huffmann-Kodierung wurde 1952 von David A. Huffmann entwickelt. Das Ziel dieser Kodierung ist ein optimaler, präfixfreier Code, der eindeutig dekodierbar ist und wobei auf Trennzeichen zwischen den Codes verzichtet wird [Q5]. Zunächst wird für jedes Zeichen die relative Häufigkeit seines Auftretens berechnet. Die Zeichen werden dann nach ihrer Wahrscheinlichkeit 14

geordnet, beginnend mit der größten. Jetzt wird die Kodierung mit minimaler Anzahl benötigter Bits ermittelt. Hierzu werden alle Zeichen als Blätter eines Binärbaumes aufgefasst und jeweils die zwei Knoten mit der geringsten Wahrscheinlichkeit zu Söhnen, des darüberliegenden Knotens (Vater), verbunden. Der Vater erhält als Wert die Summe der Wahrscheinlichkeiten seiner beiden Söhne. Dies wird nun solange wiederholt bis ein vollständiger Binärbaum entstanden ist. Der eigentliche Huffmann-Code für ein Zeichen ergibt sich, indem man, ausgehend von der Wurzel, den Baum bis zum Blatt durchläuft und bei einer Verzweigung in den linken Teilbaum eine 0 hinzufügt und bei einer Verzweigung in den rechten Teilbaum eine 1. Je näher ein Zeichen an der Wurzel liegt, desto größer ist seine Häufigkeit und desto kürzer ist der Code [Q5, Q8]. Beipiel: ABDACAEABDA D = 0101 0 1 0 0 0 1 0 1 A B D C E 5 2 2 1 1 Abbildung 10: Beispiel für Huffmann-Kodierung 1 4.4. LZW-Komprimierung Das LZW-Verfahren wurde nach seinen Entwicklern Abraham Lempel, Jakob Zif und Terry Welch benannt. Zunächst wurde 1977 von Lempel und Zif das LZ-Substitutions-Komprimierverfahren LZ77 entwickelt. Es war besonders zur Komprimierung von Textdateien und zur Archivierung geeignet, und ist in vielen Anwendungen, wie lha, pkzip oder arj enthalten. 1978 wurde das Verfahren LZ78 entwickelt, welches nun zur Komprimierung von Binärdaten, wie Bitmaps, gedacht war. Es wurde schließlich 1984 von Welch zum LZW-Algorithmus modifiziert und ist für jegliche Art von Daten geeignet [Q5]. 15

Es arbeitet sehr schnell beim Kodieren und Dekodieren, da unter anderem auf Fließkommaoperationen verzichtet wird. Die LZW-Komprimierung zählt zu den verlustfreien und adaptiven Verfahren. Das bedeutet, zur Kodierung wird ein Wörterbuch aus Zeichenketten des unkomprimierten Datenstroms aufgebaut. Das auftretende Datenmuster eines Datenstroms wird anschließend den einzelnen Wörterbucheinträgen zugeordnet. Ist das gerade betrachtete Muster noch nicht im Wörterbuch erfasst, wird ein neues Codewort erzeugt und dem Wörterbuch hinzugefügt. Befindet sich das Muster bereits im Wörterbuch, dann erfolgt die Ersetzung des Musters mit dem entsprechenden Code. Und da der Code kürzer ist als das Muster, findet hierdurch eine Komprimierung statt. Die Dekodierung erfolgt in umgekehrter Reihenfolge: Laden des Wörterbuchs und anhand dessen die Rückübersetzung der Codierten Wörter [Q5, Q8]. Beispiel: ABBABABAC mit Wörterbuch: 1 = A, 2 = B, 3 = C Wörterbuch danach: 1 = A, 2 = B, 3 = C, 4 = AB, 5 = BB, 6 = BA, 7 = ABA, 8 = ABAC Kodiert: 1 2 2 4 7 3 Abbildung 11: Beispiel für LZW-Komprimierung 5 Grafikformate 5.1. GIF Gif (Graphic Interchange Format) ist sehr bekannt durch seine weite Verbreitung im Internet. Die Lizenzrechte für dieses Format liegen bei Compuserve Incorporated. Wobei Compuserve den Einsatz von Software erlaubt, welche dieses Format nutzt. Der Entwickler der Software muss lediglich die Urheberrechte an GIF anerkennen. Die beiden gebräuchlichsten Formate GIF87a und die Verbesserung GIF89a werden von der meisten Software unterstützt [Q5]. 16

Eine GIF-Datei ist folgendermaßen aufgebaut: Sie beginnt mit einem Header für die GIF-Identifikation. Dieser besteht aus 6 Byte, 3 Byte für die Zeichenfolge GIF und 3 Byte für die Versionsnummer 87a oder 89a. Es folgt der Logical Screen Descriptor, welcher die Größe, das Seitenverhältnis und die Farbtiefe der in der Datei gespeicherten Bilder enthält. Dafür stehen für Breite und Höhe der Bilddatei in Pixeln je zwei Byte zur Verfügung. Dadurch ist allerdings die maximale Bildgröße auf 2 16 = 65.536 Pixel beschränkt. Für die Farbinformation wird ein Byte verwendet, ebenso für den Farbindex, der die Bildhintergrundfarbe enthält. Und schließlich enthält der Logical Screen Descriptor noch ein Byte für das Seitenverhältnis. Dann schließt sich eine globale Farbpalette an, die angibt, aus welchen Farben das in der GIF-Datei gespeicherte Bild bestehen kann. Hier können bis zu 256 = 2 8 aus 16.7 Mio. ausgewählte Farben angegeben werden. Jede einzelne Farbe besteht dabei aus einem 24 Bit RGB-Tripel (rot, gelb, blau). Nach der Farbpalette steht der Datenblock mit den gespeicherten Bildern. Dieser setzt sich aus dem Local Image Descriptor, einer optionalen lokalen Farbpalette, die ebenso, wie die globale Farbpalette kodiert ist, und den mit dem LZW-Verfahren komprimierten Bildern zusammen. Der Local Image Descriptor enthält Seperator-Bytes, welche den Beginn eines neuen Bildes angeben, Bytes für die Position der einzelnen Bilder und deren Breite und Höhe und ein Byte für die Farbinformation, wie im Logical Screen Descriptor. Ein Bit wird dabei als Interlace-Flag verwendet. Wenn dieses Flag gesetzt ist, wird das Bild bei der Übertragung in einer bestimmten Reihenfolge abgespeichert, was das Erkennen des Bildinhalts nach wenigen übertragenen Zeilen ermöglicht. Das Ende der GIF-Datei wird mit einem speziellen Abschlusszeichen angezeigt. In GIF89a sind noch weitere Blöcke enthalten. Zum einen der Graphic Control Extension Block. Dieser enthält zusätzliche Informationen für den Umgang mit den Bilddaten. Zum Beispiel ein Tranzparent-Flag, das angibt, welche Farbe im Bild transparent dargestellt werden soll. Des Weiteren besteht die Möglichkeit, eine Wartezeit zwischen dem Anzeigen der einzelnen Bilder anzugeben, wodurch kleine Animationen möglich sind. Außerdem enthält das GIF89a-Format noch einen Plain Text Extension Block, der das Abspeichern von zusätzlichen alphanumerischen Informationen zum gespeicherten Bild ermöglicht. Dann einen Application Extension Block zum Speichern von Informationen für externe Anwendungsprogramme, damit diese bestimmte Aktionen zu den Bilddaten ausführen können. Und einen Comment Extension Block, der das Speichern von Textdaten, die bei der Bilddarstellung ignoriert werden, erlaubt [Q5]. 17

Der große Nachteil des GIF-Formats ist die Reduktion des Farbraumes auf nur 256 Farben, daher ist es für realitätsnahe Bildinformationen, wie hochauflösende Fotos, nicht unbedingt geeignet. Besonders geeignet ist es dagegen für Bilder, mit weiten Bereichen identischer Information, wie bei computergenerierten Grafiken, wie Logos. Eine solche Grafik enthält meistens nicht die theoretisch verfügbare Zahl von 16 Mio. Farben, sondern nur wenige Dutzend. Sie ist deshalb bereits mit einer Palette mit 256 Einträgen verlustfrei darstellbar. Außerdem führen die normalerweise in solchen Grafiken vorkommenden Folgen von identischen Pixeln zu kompakten Einträgen in der bei der LZW- Komprimierung vorkommenden Präfixtabelle. 5.2. PNG Das Portable Network Graphics Format wurde per E-Post und in Diskussionsforen im Internet entwickelt. 1995 wurde dazu die Spezifikation für ein Portable Bitmap Format PBF durch Thomas Boutell in viele Diskussionsforen gestellt. Ziel war ein neues Grafikformat, das frei von geschützten Algorithmen war und den neuen Anforderungen im Datennetz gewachsen sein sollte. Innerhalb von zwei Monaten wurde dieses neue Format unter dem Name PNG fertig gestellt. Es ist in erster Linie als Ersatz für GIF gedacht und hauptsächlich für die Nutzung in Datennetzen konzipiert. Die besonderen Eigenschaften dieses Formats liegen in der Portabilität und der Erweiterbarkeit, außerdem ist es optimiert für Netzwerk-Anwendungen. Die Portabilität wird durch die hardwareunabhängige Darstellung von Bildern durch Gammaparameter und Parameter für die Definition des Farbraumes erreicht, sofern die Enkoder der jeweiligen Plattformen, diese schwierigen Transformationen durchführen können. Die Erweiterbarkeit liegt darin, dass ein Bild in einer PNG-Datei mittels verschiedener Kompressionsverfahren gespeichert werden kann, jedoch ist bislang nur die Komprimierung mit zlib möglich. Und die En- und Dekoder müssen laut Spezifikation nur den Deflate-Algorithmus beherrschen. Auf das zlib-verfahren wird später noch genauer eingegangen. Des Weiteren können zusätzliche Daten in private Zusatzblöcke gespeichert werden. Die besondere Eignung für den Einsatz in Datennetzen ergibt sich aus der Verwendung einer Prüfsumme und der sich selbst verfeinernden Anzeige, dem so genannten progressive display, während des Ladens aus dem Netz. Der progressive display wird durch die Verschachtelung Adam 7 nach dem Entwickler Adam M Costello erreicht. Die Übertragung findet in sieben Phasen statt. Dabei wird das Bild in 64x64 Pixel-Blöcke aufgeteilt. Der Dekoder kann dadurch während des Ladevorgangs eine grobe Vorschau des Bildes anzeigen, da zum Beispiel beim ersten Durchlauf nur 1/64 des 18

Bildes übertragen wird. Die Übertragung der Vorschau bei PNG ist acht mal schneller als beim GIF. Eine weitere wichtige Eigenschaft ist die Unterstützung von transparenten Farben mit Hilfe von Alpha-Kanälen, welche für jeden Bildpunkt einen Wert für die Stärke der Transparenz festlegen. Die Kodierung eines Pixels erfolgt mit Farben, die aus den drei Werten rot, grün und blau bestehen und zusätzlich einem Alphawert für die Transparenz. Die Pixelgröße liegt dann zwischen einem Bit, bei einem 1- Bit-Graustufenbild, und 32 Bit, für ein 16-Bit-Farbbild mit 16 Bit für den Alphakanal. Wie bereits erwähnt, wird bislang nur die zlib-komprimierung unterstützt. Diese verwendet den Deflate-Algorithmus. Der Deflate-Algorithmus ist eine Variation des LZ77-Algorithmus, der so modifiziert wurde, dass keine Patente oder Lizenzen berührt werden. Der zlib-datenstrom ist folgendermaßen aufgebaut. Er besteht zunächst aus einem Byte für die Kompressionsmethode, darauf folgt ein Byte für zusätzliche Steuerbits und danach die komprimierten Datenblöcke, welche in drei Varianten gespeichert werden können: unkomprimiert, LZ77-komprimiert mit fester Huffmann-Kodierung oder LZ77-komprimiert mit spezifischer Huffmann- Kodierung. Am Ende stehen noch vier Bytes für die Prüfsumme. Mit Hilfe von Filtern ist es möglich die Kompression noch zu verbessern. Hierbei werden Pixelwerte durch ihre Differenz zu einem ähnlichen Wert, zum Beispiel dem Wert des Vorgängers oder dem Mittelwert der Umgebungspixel, ersetzt. Dies hat zur Folge, dass Werte mit geringeren Differenzen zueinander verrechnet werden, wodurch ein Datenstrom mit vielen ähnlichen Werten entsteht, der schließlich besser komprimierbar ist. Der Aufbau einer PNG-Datei sieht wie folgt aus. Zu Beginn steht eine Signatur, die aus acht Byte besteht. Darauf folgen Blockdaten, von denen es zwei Typen gibt. Zum einen kritische Blöcke, critical chunks, die jeder Dekoder auswerten können muss, und zum anderen Zusatzblöcke, ancillary chunks, welche zur Optimierung der Anzeige dienen. Zusatzblöcke können in einer PNG-Datei auftauchen, sie müssen jedoch nicht unbedingt ausgewertet werden. Nach der Signatur muss der Startblock (IHDR) stehen. Er enthält Angaben über Breite, Höhe, Bittiefe und Länge der Bitmuster im IDAT-Block. Außerdem werden hier die verwendete Kompression, die benutzten Filter und das Verschachtelungsschema festgelegt. Dann kommt der Palettenblock (PLTE), der bei indizierten Bildern vorkommen muss. Die Daten des Palettenblocks kennzeichnen die Farbwerte für einzelne Palettenfarben. Alle im Bild vorkommenden Farben müssen und weitere Farben dürfen definiert werden. An den Palettenblock schließt sich der Pixeldatenblock (IDAT) an. Er ist der Kern der PNG-Spezifikation und enthält den verschachtelten, gefilterten und komprimierten Datenstrom der Bildpunkte. 19

Es folgt der Ende-Block (IEND), der nur einmal am Ende der PNG-Datei vorkommen darf. Daten die hinter diesem Block stehen werden ignoriert [Q3, Q9, Q10]. Signatur Start-Block (Paletten-Block) (optionale Blöcke) Pixeldaten-Block ENDE-Block Abbildung 12 : Schematischer Aufbau einer PNG-Datei 5.3. JPEG JPEG bedeutet Joint Photographic Expert Group, dies ist eine Untergruppe der ISO. Dieses Grafikformat ist sehr gut für die Komprimierung natürlicher, zum Beispiel fotografischer Abbildungen geeignet und kann Bilder mit einer Farbtiefe bis zu 24 Bit darstellen. Es beruht auf einem verlustbehafteten, asymetrischen Komprimierverfahren, dass auf der diskreten Cosinus-Transformation (DCT) und der Huffmann-Kodierung basiert. Das Prinzip liegt darin, dass Farbveränderungen innerhalb des Bildes in der Grafikdatei gespeichert werden. Und es wird ausgenutzt, dass das menschliche Auge sehr empfindlich auf Helligkeitsveränderungen und weniger auf Farbänderungen reagiert. Weichen Farbveränderungen im kodierten JPEG-Bild nur unwesentlich ab, dann werden kodiertes und Ausgangsbild als identisch wahrgenommen. Das JPEG-Verfahren unterscheidet vier Modi: 1. Sequential Mode Das kodierte Bild kann in einem Durchgang von links oben nach rechts unten dekodiert werden. Der Modus liefert gute Kompressionsraten und ist einfach zu implementieren. 2. Progressive Mode Das Bild wird in mehreren aufeinander aufbauenden Durchgängen kodiert und dekodiert. Dabei wird das Bild von Durchgang zu Durchgang schärfer dargestellt. Dieser Modus ist gut für die Datenkommunikation geeignet. 20

3. Hierarchical Mode Das Bild wird zunächst in geringerer Auflösung gespeichert und später in voller. Das kleinere Bild ist sehr schnell dekodierbar und deshalb gut als Vorschau geeignet, zum Beispiel in einer Bilddatenbank. 4. Lossless Mode Das Bild wird verlustfrei kodiert und dekodiert, im Gegensatz zu den anderen Modi. Dies hat natürlich eine geringere Kompressionsrate zur Folge. Dieser Modus findet zum Beispiel Anwendung in automatischen Bildauswertungsverfahren [Q1, Q5]. Abbildung 13: Beispiel für JPEG-Bild Die Komprimierung läuft in vier Stufen ab. Als Erstes erfolgen die Farbkonversion und das Sampling. Bei der Farbkonversion wird jede Farbkomponente (rot, grün, blau) anteilig in ihre Bestandteile Luminanz (Helligkeit) und Chrominanz (Farbinformation) zerlegt. JPEG erlaubt einen höheren Verlust an Farbinformationen, da das menschliche Auge, wie bereits erwähnt, hier weniger sensibel ist. Mit einem in Norm CCIR/ITU 601 festgelegten Verfahren wird die RGB- Information in die Komponenten Y (entspricht der Helligkeit), Cb (eine Blaukomponente) und Cr (eine Rotkomponente) transformiert. Man erhält schließlich ein YCbCr-Farbmodell. Beim anschließenden Bildzerlegungsprozess, dem so genannten Sampling, werden die Anteile Cb und Cr mit einer geringeren Auflösung bestimmt, als die Y-Komponente. Dies wird als Sub-Sampling bezeichnet. Typisch ist zum Beispiel die Auflösung für die Y-Komponente viermal höher zu wählen, als die der beiden anderen Komponenten: 4:1:1. Je niedriger die 21

Samplingauflösung ist, desto höher ist die dadurch bereits erzielte Komprimierung und desto kürzer ist die Gesamtkomprimierzeit. Die zweite Stufe der Komprimierung ist die Diskrete Cosinus Transformation, DCT. Mit Hilfe der DCT werden die Intensitätsdaten in Frequenzdaten transformiert, womit eine Aussage über die Geschwindigkeit der Variation von Intensität von Farbe und Helligkeit im Bild möglich ist. Bei der JPEG- Kodierung wird das Bild in 8x8 Pixelblöcke unterteilt, weiter wird dann jede Bildkomponente (Y, Cb, Cr) separat abgearbeitet, wobei jede eine unterschiedliche Anzahl von Bildblöcken besitzen kann, zum Beispiel wegen der verschieden großen Samplingraten. Der Bildpunkt (x, y) des 8x8 Blocks besitzt die Bildinformation f(x, y). Die DCT erzeugt nun einen neuen 8x8 Block (u, v) über die Transformation:!" # "!$!$ %'& (*)+, %-. " 0/1" + Ergebnis dieser Transformation ist eine Frequenzraummatrix, welche die Frequenz- und die Amplitudenverteilung des betrachteten Raumes angibt. Das heißt, die 64 Funktionswerte der ursprünglichen, von beiden Dimensionen x und y abhängigen Matrix werden in ihr Spektrum transformiert, indem die DCT einen Basiswechsel auf Basis von 64 orthogonalen, diskreten Signalen durchführt. Dabei ergeben große regelmäßig gefärbte Flächen niedrige Frequenzanteile und feine Details hohe Frequenzanteile. F(0, 0) enthält den Durchschnittswert der 8x8-Matrix und wird mit Direct Current (DC) bezeichnet. Die Werte von F(0, 1) bis F(7, 7) speichern die Veränderungen zum DC und werden Alternating Current (AC) genannt. In einem natürlichen Bild sind scharfe Linien und abrupte Farbwechsel eher selten, deshalb liegt die Konzentration des größten Teils des Ausgangssignals auf den niedrigen Frequenzen, daher sind viele Koeffizienten sehr klein, nahezu gleich null. Als nächstes folgt die Quantisierung der Koeffizienten der 8x8-Matrix. Hierbei werden die Werte F(u, v) durch Werte Q(u, v) aus einer vorgegebenen Quantisierungstabelle dividiert und ganzzahlig aufgerundet, es entstehen die Werte S(u, v). 9 3 4:5 7!8 23 465 7!8 = 3 465 7!8 ; 5 < 22

23 Abbildung 14: Transformierung verschieden gefärbter Flächen Die Quantisierungstabelle benutzt eine feinere Quantisierung für Koeffizienten niedrigerer Frequenzen und eine gröbere für höhere Frequenzen. Hohe Frequenzen, die bereits Koeffizienten nahe null besitzen werden zu null quantisiert. Die Dekodierung erfolgt dann mittels Multiplikation von S(u, v) mit den entsprechenden Koeffizienten aus der Quantisierungstabelle Q(u, v). Die ursprünglichen Werte F(u, v) werden dabei natürlich nur annähernd wiederhergestellt, deshalb liegt hier der verlustbehaftete Charakter der JPEG-Komprimierung. >:?:?@?@AB?:?@?C?@?@?@??D?E?E?C?@?@?@??D?E?E?C?@?@?@??D?E?E?C?@?@?@??D?E?E?C?@?@?@??D?E?E?C?@?@?@??D?E?E?C?@?@?@??D?E?E?C?@?@?@? F:G6GCHIG6GCHIG6GJGJGCGJGJG K G6GLG GMGJGCGJGJG G G GMGJGCGJGJG G G GMGJGCGJGJG G G GMGJGCGJGJG G G GMGJGCGJGJG G G GMGJGCGJGJG G G GMGJGCGJGJG N:O:OCO@OCO@OCO@OCO OPO@OCO@OCO@OCO OPO@OCO@OCO@OCO OPO@OCO@OCO@OCO OPO@OCO@OCO@OCO OPO@OCO@OCO@OCO OPO@OCO@OCO@OCO OPO@OCO@OCO@OCO

DCT-Werte vor Quantisierung Quantisierungstabelle DCT-Werte nach Quantisierung Abbildung 15: Quantisierung Nach der Quantisierung findet die eigentliche Komprimierung statt. Die F(0, 0)-Koeffizienten der 8x8-Matrizen werden als Differenzwert zum nächsten Block gespeichert. Die restlichen Blöcke werden in Zick-Zack-Anordnung hintereinander geschrieben, wobei gilt, dass niedrige Frequenzen zuerst und zu null quantisierte Anteile hoher Frequenzen am Ende stehen. Dadurch wird eine effizientere Komprimierung erreicht. Darauf wird dann noch eine Huffmann-Kodierung angewendet [Q1, Q5]t. RG Farbkonversion Sampling Y Cb Cr für jede Schicht in 8x8 Block Zick-Zack Kodierun Quantisieru DC Huffmann Kodierun 0 1 1 0 1 Abbildung 16: Übersicht JPEG-Verfahren 24

Das Dateiformat zur Speicherung von JPEG-Bilddaten ist das JFIF (JPEG File Interchange Format). Es enthält die eigentlichen Grafikdaten in der oben beschriebenen Form und Informationen fürs Entpacken dieser. Eine JFIF-Datei besteht aus verschiedenen Markierungsblöcken. Dem Start of Image (SoI), der den Beginn der zum Bild gehörenden Information kennzeichnet und am Dateianfang steht. Dem End of Image (EoI), der das Ende des Bildes angibt und am Dateiende steht. Dann gibt es einen Application Block (APP0), der nach dem SoI-Block folgt und danach 4 Zeichen JFIF. Es schließen sich die Versionsnummer und Angaben über die Bildgröße und die Pixeldichte an. Optional kann noch ein Thumbnailbild mit Größeninformationen folgen. Des Weiteren enthält eine JFIF-Datei die Quantisation Table (QT), die 64 Einträge und Informationen bezüglich der Präzision (8 oder 16 Bit) enthält. Den Block Start of Frame i (SoFi), der den Beginn von Bild i anzeigt und Informationen über Datengenauigkeit, Bilddimensionen und Komponenten einschließt. Die Komponentendaten bestehen aus einer Komponentennummer, einem horizontalen und vertikalen Sampling-Faktor und aus der Nummer der benutzten Quantisierungstabelle. Dann gibt es noch den Define Huffmann Table Block (DHT), der zuerst einen Index für die Huffmann-Tabelle enthält. Danach stehen Zählwerte für die Menge der Codes, die mit einer bestimmten Anzahl von Bits in der Tabelle vorkommen. Und zuletzt kommen die Inhalte. Außerdem ist in der JFIF-Datei der Start of Scan (SoS) vorhanden, der die Anzahl der Komponenten mit den Nummern der zugehörigen Huffmann- Tabellen beinhaltet und den Beginn des Bitstroms der eigentlichen Bilddaten anzeigt [Q5]. SOI (Start of Image) APP0 (Application) Optionale Beschreibungsblöcke QT (Quantisation Table) SoFi (Start of Frame i) DHT (Define Huffmann Table) SoS (Start of Scan) EoI (End of Image Abbildung 17: Schematischer Aufbau einer JFIF-Datei 25

6 Neue Grafikformate Es gibt neben den gerade beschriebenen, etablierten Grafikformaten auch neue Entwicklungen, von denen drei kurz vorgestellt werden sollen. 6.1. JPEG2000 Das JPEG2000-Format ist eine Verbesserung des einfachen JPEG s. Der Hauptunterschied liegt in der Ersetzung der Diskreten Cosinus Transformation durch die Wavelet-Transformation. Diese liefert in der Regel eine um 30% bessere Kompressionsrate als bei JPEG. Die mathematische Komplexität der Wavelets-Kompression ist jedoch rund zehn Mal höher als die der DCT. Die Wavelets-Transformation benutzt als Basisfunktion keine periodische Cosinusfunktion (DCT), sondern örtlich begrenzte "Wavelets (kleine Wellen). Das Grundprinzip besteht darin, die Wavelets pixelweise über das Bild zu schieben und jeweils den Mittelwert der Umgebungspixel zu berechnen. Dadurch erhält man einen Tiefpassfilter. Es folgt das Abziehen des tiefpassgefilterten Bildes vom Ausgangsbild. Es ergeben sich so die hohen Frequenzen, weshalb dies als Hochpassfilter bezeichnet wird. Eine Iterative Anwendung dieses Verfahrens auf Zeilen und Spalten des zu komprimierenden Bildes ergibt dann die Wavelet-Transformation. Wavelets DCT Abbildung 18: Wavelets und Diskrete Cosinus Transformation JPEG2000 ermöglicht außerdem einen progressiven Bildaufbau und eine geringere Datenmenge, bei gleicher Qualität zu JPEG. Dies wird durch eine fortlaufende Kodierung, anstatt der Unterteilung in 8x8 Blöcke bei JPEG, erreicht. Insgesamt gibt es 256 Informationskanäle zur Beschreibung des gespeicherten Bildes. Was es ermöglicht, komplexere Farbräume zu verarbeiten und zu speichern. 26

Die Integration von Metadaten wurde ebenfalls verbessert, wodurch jetzt mehr Informationen über die Herkunft oder über Lizenzrechte des Bildes gespeichert werden können. Durch Übertragung lediglich eines geringen Teiles der Datei können JPEG2000-Bilder nach Größe, nach Auflösung oder nach Qualität skaliert dargestellt werden. Dabei kann der Betrachter die für seine Interessen benötigte Datenmenge selbst festlegen und per Mausklick nachladen ("level-of-interest"-zugriff). Für die Praxis ergibt sich daraus ein weiterer wesentlicher Vorteil. Unterschiedliche Darstellungen eines Bildes lassen sich aus einer einzigen gespeicherten Datei generieren. Für eine Thumbnail-Darstellung eines Bildes in einem elektronischen Katalog wird einfach eine geringe Größe und Auflösung gewählt, aus der durch vom Betrachter gesteuertes Nachladen weiterer Bilddaten eine hochauflösende Full Screen-Darstellung werden kann [Q11, Q12, Q13]. 6.2. DjVu Das DjVu-Format ist abgeleitet vom französischen Ausdruck deja vu, was soviel bedeutet, wie schon mal gesehen und wurde von AT&T entwickelt. Es ist besonders zum Abspeichern von Postern, Büchern oder Landkarten geeignet, da es anderen Grafikformaten im Hinblick auf die Darstellung von Schrift und Zeichnungen auf farbigem Hintergrund weit überlegen ist. Denn DjVu löst das Problem, das JPEG mit filigranen Mustern auf weichen Farbverläufen hat, welches dadurch entsteht, dass die DCT scharfe Kontrastsprünge nur bei geringem Kompressionsgrad schafft. DjVu vermeidet dieses Problem durch eine Separierung der Vorlage in Hintergrund- und Vordergrundinformationen und benutzt spezielle darauf angewandte Kompressionsverfahren. Für den meist kontinuierlichen und unscharf verlaufenden Hintergrund wird die IW44-Wavelet-Kompression verwendet, die ähnlich wie JPEG durch Überführung der Ortsmatrizen in den Frequenzraum versucht, die Bildinformation als Überlagerung weniger Grundschwingungen darzustellen. Scharfkantige, meist einfarbige Vordergrundanteile werden separat kodiert. Insgesamt kommen drei patentierte Verfahren zum Einsatz, die jedoch nur kurz genannt werden sollen. Zum einen JB2, eine Zwei- Ebenen-Bildkompression, dann der ZP-Coder, ein adaptiver arithmetischer Entropie-Kodierer und die EW44 Maskierungstechnik, zum Einsparen von Bits auf dem Teils des Hintergrunds, der durch Text abgedeckt ist [Q3]. 27

Ausschnitt aus JPEG-Bild 45 KB, Kompression 532:1 Ausschnitt aus DJVU-Bild 41 KB, Kompression 584:1 Abbildung 16: Vergleich JPEG mit DjVu 6.3. Fraktale Kompression Viele natürliche Strukturen weisen eine starke Selbstähnlichkeit auf, zum Beispiel Gebirgsformen, Meeresküsten oder Blätter von Pflanzen. Die Fraktale Kompression nutzt nun diese sich wiederholenden Muster, die beim Vergrößern dieses Musters immer wieder auftreten, aus, um ein umfangreiches Gebilde durch ein kleines Erzeugendensystem darzustellen. So genannte iterierte Funktionssysteme sind in der Lage, mit wenigen Regeln komplexe und natürlich aussehende Bilder zu generieren. Die Idee besteht darin, ausgehend von einer gescannten Bildvorlage Regelmäßigkeiten und Selbstähnlichkeiten zu suchen, wodurch dann der Bildinhalt als Fixpunkt einer iterierten Anwendung von Transformationsmatrizen definiert wird. Das Verfahren dazu sieht, stark vereinfacht, folgendermaßen aus. Das Bild wird in Domainblöcke partitioniert und zu jedem Domainblock wird ein Rangeblock gesucht, dessen Abbild dem Inhalt des Domainblocks möglichst nahe kommt. Erforderlich dazu, ist die Wahl einer geeigneten Metrik, die den Abstand von zwei Pixelmengen definiert. Die Dekompression beginnt mit einem zufälligen Bildinhalt, worauf die Transformationsmatrizen solange angewendet werden bis keine Änderung mehr zur Vorgängeriteration besteht. Mathematische Randbedingungen garantieren, dass es einen Fixpunkt gibt auf den das Verfahren konvergiert. 28

Ausgangsbild B Domain-Blöcke D i Rangeblock R Abbildung 17: Beschreibung des Ausgangsbildes B durch vier affine Transformationen Der große Vorteil der Fraktalen Kompression liegt in der Auflösungsunabhängigkeit. Es können Bilder jeder gewünschten Auflösung erzeugt werden, da jedes Bildstück nicht durch endlich viele Pixel beschrieben wird, sondern durch mathematische Beziehungen. Der Nachteil ist der große Komprimierungsaufwand [Q3]. 7 Zusammenfassung Abschließend kann man feststellen, dass es das ideale Grafikformat fürs Internet nicht gibt. Es gibt mehrere weit verbreitete Formate, die für ihre speziellen Verwendungszwecke meist sehr gut geeignet sind, jedoch in anderen Bereichen noch Schwächen aufweisen. Diese Schwächen werden wahrscheinlich in zukünftigen Entwicklungen noch beseitigt. Es gibt dafür auch schon gute Ansätze, wie das DjVu-Format oder die Fraktale Komprimierung, die leider noch zu aufwändig ist. 29

A Glossar Rastergrafik: Eine Art der Grafikdarstellung, bei der die Grafik aus einzelnen Pixeln besteht, daher wird die Rastergrafik auch als Pixelgrafik bezeichnet. Vektorgrafik: Eine Art der Grafikdarstellung, die im Gegensatz zur Rastergrafik nicht aus Pixeln aufgebaut ist, sondern aus Objektbezugspunkten, die geometrische Figuren beschreiben. Farbmodell: Ist ein System, das versucht Farben so anzuordnen, dass diese geometrisch beschrieben werden können oder als Anleitung zum Mischen neuer Farben dienen. Kodierung: Ist ein bestimmtes Verfahren, welches Informationen in, dem Computer verständliche, Zeichen umwandelt. Komprimierung: Ist die Verringerung des Speicherbedarfs von Daten, besser gesagt die Verringerung der Redundanz. Sampling: Bildzerlegungsprozess beim Digitalisieren genannt. Sub-Sampling: Sampling von verschiedenen Komponenten mit unterschiedlichen Auflösungen. B Abkürzungen und Akronyme GIF PNG PBF JPEG DCT JFIF ISO DC AC LZW RGB CMY HSB Graphic Interchange Format Portable Network Graphics Portable Bitmap Format Joint Photographic Expert Group Diskrete Cosinus Transformation JPEG File Interchange Format International Organization for Standardization Direct Current Alternating Current Lempel, Zif, Welch Rot, Grün, Blau Cyan, Magenta, Yellow Hue, Saturation, Brightness 30

Literaturverzeichnis [Q1]: Die JPEG-Komprimierung: http://www.mathematik.de/spurendermathematik/spudema_beitraege /beitraege/rooch/neinleit.html [Q2]: Prof. Dr. W. Rossak: Script Informatik 1 WS2000/01, FSU Jena, Fakultät für Mathematik und Informatik, Lehrstuhl Softwaretechnik, 2001 [Q3]: Richtig im Bilde Grafikformate im Internet: http://www-lehre.informatik.uni-osnabrueck.de/mmii/ paper/paper.html [Q4]: Neil A Campbell: Biologie, Spektrum, 1998. [Q5]: Ch. Meinel, H. Sack: WWW Kommunikation, Internetworking, Web-Technologien, Springer, Berlin 2004. [Q6]: Grundlagen digitaler Bildcodierung: Datenkompression als Schlüsseltechnik der digitalen Bildverarbeitung: www.rcs.ei.tum.de/courses/seminar/ realzeit_bv/mpeg/node1.html [Q7]: Moderne Bild- und Videokomprimierungstechniken, Martin Schmucker, http://www-vs.informatik.uni-ulm.de/lehre/archiv/ Bild_Video_SS97/papers/ [Q8]: Kompression: www.nano-world.org [Q9]: Max Völkel: Proseminar Redundanz Das Grafikformat PNG: http://goethe.ira.uka.de/seminare/redundanz/vortrag12/ [Q10]: PNG : http://rnvs.informatik.tuchemnitz.de/proseminare/www03/doku/grafikformate/ausarbeitung/g liederung.htm [Q11]: M. Bertuch: Grafikstandard, JPEG2000: Grundlagen und erste Anwendungen, ix 8/2001, S. 108, Heinz Heise Verlag [Q12]: Digit online! Know-how: http://www.digit.de/know_how/know_how_jpg2000.html [Q13]: JPEG-Kompression: http://www.tutorial.artems.de/help/dateiformate/jpeg- Kompression.htm 31

Index Abtasttheorem 4 AC 19 Adam7 16 Adaptive Komprimierung 11 Aliasing 4 Alpha-Kanal 16 ancillary chunks 17 Application Block 21 Application Extension Block 15 Asymmetrische Komprimierung 11 Auflösung 3 Auge 6 CMYK-Modell 8 Comment Extension Block 15 critical chunks 17 DC 19 Deflate-Algorithmus 16 Diskrete Cosinus Transformation 18 DjVu 21 Domainblock 23 End of Image 21 Farbtiefe 4 Farben 7 Fraktale Kompression 23 GIF 14 Graphic Control Extension Block 15 Hierarchical Mode 18 HSB-Modell 9 Huffmann-Kodierung 12 IDAT 17 IEND 17 IHDR 17 Interlace-Flag 15 JFIF 20 JPEG 17 JPEG2000 21 Lauflängenkodierung 12 Local Image Descriptor 15 Logical Screen Descriptor 14 Logische Komprimierung 10 Lossless Mode 18 LZW-Komprimierung 13 Moiree-Effekt 4 Nicht-adaptive Komprimierung 11 Physikalische Komprimierung 10 Pixelgrafik 3 Plain Text Extension Block 15 PLTE 17 PNG 15 PBF 15 progressive display 16 Progressive Mode 17 Quantisation Table 21 Quantisierung 20 Rangeblock 23 Rastergrafik 3 RGB-Modell 8 Sampling 18 Semi-Adaptive Komprimierung 11 Sequential Mode 17 Shannon 4 Stäbchen 6 Start of Image 21 Sub-Sampling 18

Symmetrische Komprimierung 11 Transparenz-Flag 15 Vektorgrafik 5 Verlustbehaftete Komprimierung 11 Verlustfreie Komprimierung 11 Wavelet-Transformation 21 Zapfen 6 1