Sie sind auf Seite 1von 49

Komprimierungen von Multimediadaten

Version: Datum:

1.0 2005-02-17

Otto Liebminger Jahrgang 7/8ABELT Schuljahr 2004/2005

Datenkompressionen

Inhaltsverzeichnis
1 Abstract_______________________________________________3 2 Einleitung______________________________________________3 3 Datenkompressions-Technologien_________________________4
3.1 Ausrichtung auf den Inhalt________________________________________4 3.2 Datenkompressionen____________________________________________4 3.2.1 Datenkompressionsrate_____________________________________5 3.2.2 Vorgegebene Transferraten__________________________________5 3.3 Kodierung, Enkodierung, Dekodierung_______________________________6 3.4 Basistechniken_________________________________________________6 3.4.1 Run-Length Encoding ( RLE )________________________________8 3.4.2 Lempel-Ziv-Kodierungen (LZ)________________________________11 3.4.3 Huffman-Kodierung_______________________________________14 3.4.4 arithmetische Kodierung____________________________________18 3.4.5 Shannon-Fano-Kodierung__________________________________23 3.5 bersichten___________________________________________________25

4 Methoden der Grafikkodierung___________________________27


4.1 Es gibt zwei grundstzliche Arten von Graphiken:_____________________28 4.1.1 Rastergraphik ___________________________________________28 4.1.2 Vektorgraphik____________________________________________30

5 JPEG Graphikformat fr Einzelbilder_____________________31


5.1 Eigenschaften von JPEG________________________________________31 5.2 Einsatzbereiche_______________________________________________32 5.3 Kodierungschritte______________________________________________32 5.3.1 Bildaufbereitung (Farbkonversion und Sampling)________________33 5.3.2 Transformation (DCT: Diskrete Kosinustransformation)____________35 5.3.3 Quantisierung(Gewichtung der Inhalte)________________________37 5.3.4 Entropiekodierung (Huffman-Kodierung)_______________________38 5.4 JPEG2000____________________________________________________39

6 MPEG Datenformat fr Videosignale_____________________40


6.1 MPEG - bersicht______________________________________________40 6.2 MPEG - Formate_______________________________________________40 6.3 Aufbau vom MPEG_____________________________________________41 6.3.1 Es gibt 3 Arten von Bildern__________________________________43 6.3.2 Aufgaben und Eigenschaften der unterschiedlichen Frame-Typen___44 6.4 MPEG-1_____________________________________________________45 6.5 MPEG-2_____________________________________________________46 6.6 MPEG-4_____________________________________________________47

7 Literaturverzeichnis____________________________________48

Otto Liebminger

21.12.2011

Seite 2 von 49

Datenkompressionen

1 Abstract
For this paper an insight shall be given into JPEG and MPEG, the two compression procedures. The introduction shows a rough summary of the human vision. In my opinion this is necessary to understand the following compression procedures. The JPEG procedure is described in detail since it also represents the basis for the following MPEG procedure. In addition, some basic principles like resolution, color depth as well as vector and grid graphics are described. I tried to find pictures matching all topics since these contribute to a better understanding as experience has shown. Concerning MPEG, there is mainly explained the basic concept. The disadvantages of MPEG 1 as well as the improvements in the MPEG 2 standard are shown. The new MPEG 4 standard is, however, mentioned only briefly since it represents a completely new form of multimedia coding.

2 Einleitung
Die Entwicklung von Kompressionsverfahren reicht bis zum Erscheinen der ersten frei programmierbaren Computer zurck. Stets sind die verfgbaren Resourcen, wie Speicherplatz oder Datenbertragungswege, beschrnkt gewesen bzw. erforderten entsprechende Investitionen. Dieser Umstand hat sich bis zum heutigen Tage erhalten und durch den Einsatz von immer aufwendigeren Inhalten noch weiter verstrkt. Nahezu alle multimedialen Daten, wie z.B. Bild- oder Videodaten, werden heutzutage in komprimierter Form verwendet. Begnstigt wird diese Entwicklung durch die steigende Leistungsfhigkeit der erhltlichen Hardware. Mittlerweile steht eine Vielzahl von Verfahren zur Verfgung; entwickelt mit dem Ziel, die stark voneinander abweichenden Anforderungen zu erfllen. Die Auswahl von geeigneten Verfahren stellt einen Kompromiss dar, der sich widersprechenden Eigenschaften in Einklang zu bringen sucht. Die verschiedenen medienspezifischen Komprimierungsverfahren sind ein wesentlicher Faktor fr die digitale Speicherung, Verarbeitung und bertragung von medialen Daten und ihre integrierte Verwendung in multimedialen Systemen. Die groe Bandbreite existierender Verfahren erlaubt den gezielten Einsatz fr einen gegeben Anwendungsfall.

Otto Liebminger

21.12.2011

Seite 3 von 49

Datenkompressionen

3 Datenkompressions-Technologien
3.1 Ausrichtung auf den Inhalt
Sofern vor dem Einsatz eines Systems zur Datenkompression bekannt ist, welchen Typs der zu bearbeitende Inhalt ist, kann ein entsprechend geeignetes Verfahren eingesetzt werden. Damit lassen sich spezifische Gegebenheiten ausnutzen, die nur bei den betreffenden Inhalten auftreten. Nachstehend sind exemplarisch Beispiele aufgefhrt, die in der Praxis Verwendung finden: Text Die Buchstaben des Alphabets treten in Texten mit unterschiedlicher Hufigkeit auf. Stellt man Buchstaben mit besonders hoher Auftrittswahrscheinlichkeit durch kurze Zeichen dar, so wird eine Reduktion des Datenvolumens erreicht. Bilder Die Bereiche eines Bildes unterscheiden sich hinsichtlich der Komplexitt der dargestellten Inhalte. Insbesondere bei einfarbigen Flchen oder gleichmigen Mustern ist diese besonders gering. Derartige Bereiche knnen mit erheblich weniger Aufwand dargestellt werden, als Bereiche mit detaillierteren Bildinhalten. Audio Audiodaten variieren ebenfalls hinsichtlich ihrer Komplexitt. Wenn sie lediglich einen gleich bleibenden Ton reprsentieren, bentigt man fr die Kodierung ein sehr viel geringeres Datenvolumen, als bei einer komplexen und vielschichtigen Orchesteraufnahme. Video Der graphische Anteil von Videodaten besteht aus aufeinander folgenden Einzelbildern. Dabei ndern sich von Bild zu Bild nur ein bestimmter Anteil des Bildes, whrend der Rest unverndert bleibt. Bei einem Sprecher, der im Studio vor einem unvernderten Hintergrund sitzt, brauchen lediglich die sich ndernden Bereich im Gesicht bertragen zu werden. Fr alle anderen Bereiche ist die einmalige bertragung ausreichend, bis ein Umschnitt erfolgt.

3.2 Datenkompressionen
In der Informationstheorie unterscheidet man zwischen zwei Arten von Datenkompression: Bei der ersten Art handelt es sich um die sogenannte verlustlose Datenkompression. Die verlustlose Datenkompression wandelt eine Eingangsdatei in eine komprimierte Datei um, welche in der Regel kleiner als die Eingangsdatei ist. Aus der komprimierten Datei wird mit Hilfe der Dekompression auch Datenexpansion genannt eine dekomprimierte Datei erstellt. Die dekomprimierte Datei entspricht hierbei exakt der ursprnglichen Eingangsdatei. Bei der zweiten Art von Datenkompression handelt es sich um die sogenannte verlustbehaftete Datenkompression. Bei dieser Art wird ebenfalls eine Eingangsdatei in eine komprimierte Datei transformiert. Bei der Dekompression kann sich jedoch die dekomprimierte Datei von der ursprnglichen Eingangsdatei unterscheiden und mehr oder weniger groe Abweichungen aufweisen.
Otto Liebminger 21.12.2011 Seite 4 von 49

Datenkompressionen

Der Vorteil der Verlustbehafteten gegenber der verlustlosen Datenkompression liegt in den deutlich besseren Kompressionsraten. Einsatz findet die verlustbehaftete Datenkompression vorwiegend bei digitalisierten Analogsignalen im Bereich von Audiound Videobearbeitung. Zum einen haben digitalisierte Analogsignale aufgrund ihrer Entstehung bereits einen Digitalisierungsfehler; zum anderen empfindet der Mensch zwei digitalisierte Audio- oder Videoaufnahmen als gleich, sofern deren Abweichungen klein genug sind. Die verlustfreie Datenkompression ist im Gegensatz hierzu universell einsetzbar, da die Datenintegritt erhalten bleibt, was in vielen Einsatzbereichen wichtig ist, wie beispielsweise im Finanzwesen oder im wissenschaftlichen Bereich.

3.2.1 Datenkompressionsrate
Als Datenkompressionsrate bezeichnet man bei beiden Arten das Verhltnis der Gre der Ausgangsdatei zu der Gre der Eingangsdatei. Die beiden wichtigsten Ziele der Datenkompression sind hierbei die Minimierung der Datenkompressionsrate sowie die Maximierung der Verarbeitungsgeschwindigkeit bei der Kompression und Dekompression. Sofern es der Datentyp erlaubt, wie z.B. bei Bild- oder Audio-Daten, kann die Kompressionsrate so variiert werden, dass die komprimierte Datei einen bestimmten Umfang nicht berschreitet. Dabei muss ein entsprechender Qualittsverlust in Kauf genommen werden, der mit steigender Kompressionsrate in der Regel expotentiell ansteigt. Darber hinaus bietet aber auch die Auswahl des Verfahrens bzw. der eingesetzte Kodierungsaufwand die Mglichkeit das Datenvolumen zu beeinflussen. So ergeben photorealistische Bilder im jpg-Format bei gleicher Bildqualitt wesentlich kleinere Dateien, als Bitmapformate mit einfacheren Algorithmen. Noch wesentlich bessere Ergebnisse lassen sich mit FIF (Fractal Image Format) der Firma Iterated Systems erreichen. Im Gegenzug steigt allerdings der Kodierungsaufwand teilweise massiv an.

3.2.2 Vorgegebene Transferraten


Zur bertragung von Videodaten ber unterschiedliche Medien, wie z.B. Funk, Kabel oder Datentrger, steht normalerweise nur eine bestimmte bertragungsrate zur Verfgung, die wesentlich kleiner ist als die unkomprimierten Originaldaten. Um dennoch eine akzeptable Qualitt zu erhalten, muss das Kompressionsverfahren an diese Gegebenheiten angepasst werden. Dabei knnen Verfahren zum Einsatz kommen, die mit konstanter Datenbertragungsrate arbeiten (z.B. MPEG-1 Full Motion Video mit 150 KByte/s). Bei aufwendigeren Verfahren, wie der mpeg-2-Kodierung fr DVD-Video, sind in einem vordefinierten Rahmen Schwankungen zugelassen. Es ist ein Mittelwert (z.B. 4 MBit/s) festgelegt, der im Fall besonders komplexer Inhalte bis auf einen zulssigen Maximalwert (z.B. 10 MBit/s) ansteigen kann. Darber hinaus legt die Spezifikation fest, wie lange die Abweichung ber den Mittelwert hinaus andauern kann, damit die Hardware dafr ausgelegt werden kann.

Otto Liebminger

21.12.2011

Seite 5 von 49

Datenkompressionen

3.3 Kodierung, Enkodierung, Dekodierung


Mit dem Begriff Kodierung wird allgemein die Umsetzung von Zeichen aus einem Zeichenvorrat in einen anderen bezeichnet. Dabei findet eine entsprechende Kodierungsvorschrift bzw. ein Kode Anwendung. Betrachtet man die Verarbeitungsschritte von bestimmten Ausgangsdaten, so lst sich zwischen Enkodierung und Dekodierung differenzieren. Die Enkodierung bezieht sich auf die Kodierung der Ausgangsdaten in ein bestimmtes Zielformat, z.B. die Erstellung einer JPEG-Datei aus einem Bitmap-Format heraus. Die Dekodierung bezeichnet den umgekehrten Prozess aus diesem Format heraus; im Beispiel die Umwandlung der JPEG-Daten zurck in ein geeignetes Format. En- und Dekodierung beziehen sich dabei immer auf einen gemeinsamen Nenner, in diesem Fall das JPEG-Format. Bei verlustloser Datenkompression sind die Inhalte nach En- und Dekodierung wieder identisch mit den Originalinhalten, die Kodierung ist reversibel. Bei anderen Verfahren ist dies nicht der Fall. So knnen beispielsweise in GIF lediglich 256 unterschiedliche Farben kodiert werden. Alle darber hinausgehenden Farbinformationen verfallen im Zuge der Kodierung.

3.4 Basistechniken
Bislang haben zumeist sequentielle Verfahren den Bereich der verlustlosen Datenkompression dominiert, unterteilt in referenzierende Verfahren, basierend auf Wiederholungen, sowie statistische Verfahren, bestehend aus einem Kodierer und einem Datenmodell. Typische Vertreter der referenzierenden Verfahren sind die Lauflngenkodierung ( Run-Length Encoding - RLE )sowie Lempel-Ziv-Methoden ( LZ )[16]. Bei statistischen Verfahren gibt ein Datenmodell die Wahrscheinlichkeiten fr das jeweils nchste Zeichen an, und ein Kodierer erzeugt eine mglichst kurze Bitfolge aus diesen Wahrscheinlichkeiten. Beispiele fr statistische Verfahren sind die Huffman-Kodierung und die arithmetische Kodierung [23]. Im Jahre 1994 wurde ein neues Verfahren, welches nicht sequentiell sondern auf ganzen Blcken arbeitet, von David Wheeler und Michael Burrows eingefhrt [7]. Es handelt sich um den sogenannten Burrows-Wheeler-Kompressionsalgorithmus. Das Herz dieses Algorithmus stellt hierbei die Burrows-Wheeler-Transformation dar, welche auch als Blocksortierung bezeichnet wird. Der Algorithmus wurde inzwischen von vielen Autoren aufgegriffen und verbessert. Fenwick hat in seinem BWT-Forschungsbericht aus dem Jahre 1996[10] einige Verbesserungen beschrieben einschlielich der Sortierung von mehreren Zeichen gleichzeitig anstelle eines einzelnen. Zur Berechnung der Burrows-Wheeler-Transformation wurde im Jahre 1997 von Sadakane ein schnelles Verfahren mit Hilfe eines Suffixfeldes vorgestellt [19],
Otto Liebminger 21.12.2011 Seite 6 von 49

Datenkompressionen

welches im Jahre 1999 von Larsson erweitert worden ist [15]. Im Jahre 1998 prsentierte Kurtz fr die Burrows-Wheeler-Transformation einige Implementierungen von Suffixbumen, die weniger Speicher brauchen als bisherige Implementierungen und einen linearen Zeitaufwand besitzen [14]. Itoh und Tanka entwickelten 1999 ein neues Verfahren das sogenannte "Two Stage Suffix Sort" - [12], welches von Kao im Rahmen einer Dissertation aufgegriffen und speziell fr Folgen von sich wiederholenden Zeichen optimiert worden ist [13]. Auch die der Burrows-Wheeler-Transformation nachgeordneten Stufen sind Gegenstand zahlreicher Untersuchungen gewesen. Hierzu zhlen insbesondere die Erweiterungen von Arnavut and Magliveras aus dem Jahre 1997 [2], von Balkenhol und Shtarkov aus dem Jahre 1999 [4], von Deorowicz aus dem Jahre 2000 [8] und 2002 [9] sowie von Abel aus dem Jahre 2003 [1]. DER BURROWS-WHEELER-DATENKOMPRESSIONSALGORITHMUS Der Aufbau des Algorithmus Grundstzlich besteht ein Burrows-Wheeler-Kompressionsalgorithmus aus drei Stufen, denen gegebenenfalls noch weitere Vorverarbeitungsstufen vorgeschaltet sein knnen. Bei den drei Stufen, welche in Abbildung 1 dargestellt sind, handelt es sich um einzelne Transformationen, die nacheinander durchlaufen werden. Hierbei werden die Daten in Form eines eindimensionalen Feldes - Block genannt - verarbeitet und der Block anschlieend an die nchste Stufe weitergegeben. Die Blockgre liegt im Bereich von einem oder mehreren Megabyte, wobei grere Blockgren in der Regel eine bessere Kompression nach sich ziehen, aber neben hherem Speicherbedarf auch eine hhere Verarbeitungsgeschwindigkeit zur Folge haben. Um die komprimierten Daten wieder zu dekomprimieren, werden die Stufen in rckwrtiger Reihenfolge durchlaufen, wobei die einzelnen Transformationen durch die entsprechenden Rcktransformationen ersetzt werden. Die erste Stufe des Algorithmus ist die Burrows-Wheeler-Transformation (BWT). Die BWT ist eine Permutation der Eingabezeichen. Die Hufigkeiten der einzelnen Zeichen werden nicht gendert. Es findet durch die BWT daher keine Kompression statt, diese erfolgt erst in spteren Stufen. Aufgabe der BWT ist es, Zeichen mit hnlichem Kontext nahe beieinander anzuordnen, wodurch die nachfolgenden Stufen die Daten besser verarbeiten knnen. Die zweite Stufe des Algorithmus bildet die sogenannte Global-Structure-Transformation (GST) [1]. In dieser Stufe werden die lokalen Kontexte der BWT-Ausgabe in einen globalen Kontext berfhrt. Fr die GST existieren eine ganze Reihe von unterschiedlichen Verfahren. Meistens wird dabei jedes Zeichen aus der BWT-Ausgabe in einen Index transformiert, wobei hufig vorkommende Zeichen in kleine Indices umgewandelt werden. Die Entropiekodierung (EC) bildet die letzte Stufe des Algorithmus und hat die Aufgabe, die Folge der Indices der GST in eine mglichst kurze Bitfolge umzuwandeln. In dieser Stufe findet die eigentliche Kompression der Daten statt, die anderen Stufen hatten die Aufgabe, die Daten so vorzubereiten, dass sie mglichst gut komprimiert werden knnen. Je nach Implementierung knnen hierzu sowohl Huffmankodierungen [7][20] als auch arithmetische Kodierungen [3][8][10] eingesetzt werden. Huffmankodierungen bieten den Vorteil einer hheren Verarbeitungsgeschwindigkeit, haben jedoch eine deutlich schlechtere Kompressionsrate. In dem vorliegenden Kompressionsschema wird daher der arithmetischen Kodierung mit einem adaptiven Modell der Vorzug gegeben. Die arithmetische Kodierung stellt die Eingabedaten als eine einzige rationale Zahl dar, dargestellt aus einer Folge von binren Nachkommastellen. Zur Erzeugung der Nachkommastellen dienen die Wahrscheinlichkeiten des adaptiven Modells.
Otto Liebminger 21.12.2011 Seite 7 von 49

Datenkompressionen

Abbildung 1: Schema des Burrows-Wheeler-Kompressionsalgorithmus

3.4.1 Run-Length Encoding ( RLE )


Lauflngenkodierungen gehren zu den ltesten und einfachsten Kompressionstechniken. Die Grundidee besteht in einer sequentiellen Durchsuchung der Eingabedaten nach Folgen gleicher Zeichen und dem Ersetzen dieser Folgen durch eine krzere Folge und eine Lauflngeninformation. Da die BWT aufgrund Ihrer Sortierung eine groe Anzahl von Folgen gleicher Zeichen erzeugt, kann eine RLE im Anschluss an die BWT sinnvoll eingesetzt werden. In dem hier vorgestellten Kompressionsschema dient die RLE als Untersttzung der folgenden Weighted-Frequency-Count-Stufe (WFC) [9], da sie zwei Vorteile bietet. Zum einen fhrt die Verkrzung der Folgen zu einer besser zu komprimierenden Indexfolge innerhalb der WFC. Zum anderen ist eine RLE wesentlich schneller als eine WFC, und trgt damit insgesamt zu einer hheren Verarbeitungsgeschwindigkeit bei [1]. Fr die RLE existieren viele unterschiedliche Techniken, welche sich in der Lnge der zu ersetzenden Folgen sowie in der Art und Weise unterscheiden, wie die Lauflngen kodiert werden. Im vorliegenden Fall wurde eine Technik gewhlt, welche eine Folge gleicher Zeichen, die eine Lnge von mehr als einem Zeichen besitzt, durch eine Folge ersetzt, deren Lnge dem binren Logarithmus der ursprnglichen Lnge plus Eins entspricht. Die restlichen Lauflngeninformationen werden nicht - wie bei den meisten RLE-Techniken - als Zahl hinter die verkrzte Folge geschrieben. Stattdessen werden sie als Bitfolge in einen separaten Datenstrom umgeleitet, der direkt zur Entropiekodierung (EC) gefhrt wird, wie in Abbildung 2 ersichtlich ist.

Abbildung 2: Schema der erweiterten Variante des Burrows-Wheeler-Kompressionsalgorithmus

Dadurch behindern die Lauflngeninformationen nicht die Indexbildung der WFC. In frheren Burrows-Wheeler-Kompressionsalgorithmen wurde die RLE nicht direkt nach der BWT sondern erst vor der EC eingesetzt. Hier wurde eine Technik benutzt, die speziell auf Folgen von Nullen (RLE0) abgestimmt war. Dieses Verfahren geht auf Wheeler zurck und wurde von Fenwick in seinem BWT-Forschungsbericht beschrieben [10]. Der Einsatz direkt hinter der BWT geht auf eine Idee von Gringeler zurck und wurde von Abel im Jahre 2003 erstmals erwhnt [1]. Es stellt aus den oben genannten Grnden die bessere Alternative dar.

Otto Liebminger

21.12.2011

Seite 8 von 49

Datenkompressionen

In Abbildung 3 ist ein Beispiel aufgefhrt, bei welchem die Ausgabedaten jeder Stufe fr die Eingabedaten ABRAKADABRAABRAKADABRAABRAKADABRA (a) aufgefhrt sind. Wie man sehen kann, befinden sich in den Ausgabedaten der BWT (b) eine Anzahl von Folgen gleicher Zeichen. Dies ist eine charakteristische Eigenschaft der BWT. Die Folgen gleicher Zeichen werden mit Hilfe der Lauflngenkodierung der RLE auf eine kleinere Lnge reduziert (c). Die Daten werden anschlieend von der WFC in eine Indexfolge mit kleinen Indices umgewandelt (d). Zuletzt erfolgt die Umwandlung der Indexfolge in eine kurze Bitfolge mit Hilfe der Entropiekodierung (e). Fr die BWT-Eingangsdaten ABRAKADABRAABRAKADABRAABRAKADABRA ist in Abbildung 3 (c) die Ausgabe der RLE aufgefhrt.

Abbildung 3: Transformierte Daten nach jeder Stufe der erweiterten Variante fr die Eingabe ABRAKADABRAABRAKADABRAABRAKADABRA in hexadezimal

MS-Windows .bmp RLE4 Die RLE4-Kodierung bezieht sich auf exakt das gleiche Schema, wie die RLE8Kodierung. Der einzige Unterschied besteht in der Kodierung der Farbindizes, die mit 4 Bit in einem Wertebereich von 0 bis 15 (16 Farben) dargestellt werden.

Abbildung 4: Kodierungsschema RLE4 Otto Liebminger 21.12.2011 Seite 9 von 49

Datenkompressionen

Innerhalb eines Runs werden immer zwei Farbindizes zusammengefasst und in einem Byte gespeichert. Sollen Wiederholungen eines Indizes kodiert werden, so mssen jeweils die niederwertigen und den hherwertigen 4 Bit des Bytes die gleichen Inhalte enthalten. Der Zhler bezieht sich dabei auf das Pixel und nicht auf das nachfolgende Byte.
enkodiert 01 0F 02 0F 03 0F 04 0F 04 00 dekodiert 0 0 F 0 F 0 0 F 0 F 0 0 0 0

Wie bei der RLE8-Kodierung auch, mssen im absoluten Mode die Kodierungen ggfls. an der Wortgrenze aufgefllt werden:
enkodiert 00 03 12 00 04 12 00 05 12 00 06 12 00 07 12 00 08 12 30 34 34 34 34 34 dekodiert 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8

50 56 56 56

00 00 70 78

MS-Windows .bmp RLE8 Das RLE8-Kompressionsverfahren ist ausschlielich fr Bitmap-Graphiken vorgesehen, die auf Farbtabellen mit einer Farbtiefe von 8 Bit bzw. 256 Farben beruhen. Die Kodierung erfolgt entsprechend dem nachstehenden Schema:

Abbildung 5: Kodierungsschema RLE8

Otto Liebminger

21.12.2011

Seite 10 von 49

Datenkompressionen

Microsoft unterscheidet zwischen dem "Encoded Mode", der RL-kodierte Sequenzen enthlt und dem "Absolute Mode", der unkodierte Originaldaten beinhaltet. Darber hinaus sind drei Marker vorgesehen.

3.4.2 Lempel-Ziv-Kodierungen (LZ)


Auf den grundlegenden Arbeiten von Abraham Lempel und Jacob Ziv beruht eine Vielzahl von Kodierungsverfahren, die allgemein als LZ-Verfahren bezeichnet werden. Ausgehend von den ursprnglichen Kodierungsverfahren LZ77 und LZ78 ist im Laufe der Zeit eine Vielzahl von Derivaten entstanden.

Zur Bezeichnung dieser Verfahren sind die Anfangsbuchstaben der Personen verwendet worden, die die entsprechenden Erweiterungen vorgestellt haben (z.B. Terry Welch -> LZW). Lempel-Ziv-77 (LZ77) Entwicklung: Jacob Ziv und Abraham Lempel haben 1977 in der Publikation "A Universal Algorithme for Sequential Data Compression" ein einfaches, aber effizientes Verfahren zur Kompression von beliebigen Inhalten vorgestellt. Nach seinen Erfindern und dem Verffentlichungsdatum ist dieser Algorithmus unter dem Krzel LZ77 bekannt. Prinzip: LZ77 ist ein wrterbuchbasierendes Verfahren, dass anstelle der Originaldaten, Rckgriffe auf Sequenzen aus dem bisherigen Inhalt kodiert. Im Prinzip existiert nur eine einfache Kodierungsvorschrift. Alle Daten werden in der Form

Adresse der bereits enthaltenen Sequenz, deren Sequenzlnge und das erste abweichende Zeichen

kodiert. Sind die zu kodierenden Daten noch nicht in den vorangegangenen Daten enthalten, tritt also ein neues Zeichen auf, so wird die Adresse 0, die Sequenzlnge 0 und das betroffene Zeichen kodiert. Beispiel "abrakadabra":
abrakadabra a brakadabra ab rakadabra abr akadabra abrak adabra abrakad abra Adr. 0 0 0 3 2 7 Lnge 0 0 0 1 1 4 abw. Zeichen 'a' 'b' 'r' 'k' 'd' ''

Otto Liebminger

21.12.2011

Seite 11 von 49

Datenkompressionen

Bedingt durch die Ergnzung jeder Sequenz mit dem ersten abweichenden Zeichen erhht sich der Werteumfang der kodierbaren Zeichen, ohne von dem standardisierten Format abzuweichen. Das ermglicht eine einfache Umsetzung des Algorithmus mit minimalen Anforderungen an die Resourcen von Enkoder und Dekoder. Rahmenbedingungen: Damit Rechenzeit und Speicherbedarf fr Enkoder und Dekoder in einem berschaubaren Rahmen gehalten werden knnen, ist die Adresse durch einen Maximalwert begrenzt. ber diesen Bereich hinausgehende bereinstimmungen flieen nicht in die Kodierung ein und finden bei der Dimensionierung der Adressgren keine Bercksichtigung. Kodierungseffizienz: Bei einem linearem Wertebereich fr Adresse und Sequenzlngen von 10 Zeichen und einem Zeichenvorrat von 5 Zeichen sind zur Darstellung einer Kodierung in dem vorangehenden Beispiel 11 Bit erforderlich (4+4+3Bit). Insgesamt lst sich der Beispielstext mit 66 Bit kodierten, im Vergleich zu 33 Bit bei unkodierter Darstellung (11 Zeichen a 3 Bit). Das liegt in dem nahezu leeren Wrterbuch begrndet, signifikante Gewinne lassen sich mit LZ77-Kodierung erst bei greren Datenmengen erzielen. Lempel-Ziv-Storer-Szymanski (LZSS) Das LZSS- Kodierungsverfahren ist nach den beiden Autoren James A. Storer und Thomas G. Szymanski, sowie dem LZ77-Verfahren benannt, auf dem LZSS aufsetzt. Verffentlicht wurden theoretische und praktischen berlegungen 1982 in dem Artikel "Data Compression via Textual Substitution". LZSS kodiert die Quelldaten als String, bestehend aus den Originaldaten und Zeigern auf ein Wrterbuch. Das Wrterbuch bilden wie bei der LZ77-Kodierung die bereits kodierten Quelldaten, auf die in der Form (Adresse + Sequenzlnge) zugegriffen wird. Beispiel:
abrakadabra abrakad(1,4)

Als Zeiger werden nur Sequenzen kodiert, die eine bestimmte Minimallnge berschreiten, d.h. bei der die Substitution sinnvoll ist. Darin besteht der hauptschliche Unterschied zu LZ77, bei dem immer in der Form (Adresse + Lnge + abweichendes Zeichen) kodiert werden muss, auch wenn dies mit Hinblick auf die Kompressionsleistung nicht sinnvoll ist. Zur Differenzierung zwischen Zeigern und Inhalten ist in der praktischen Umsetzung ein Flag oder Steuerzeichen erforderlich, dass seinerseits die Kompressionsleistung negativ beeinflusst. Zur Optimierung des Laufzeitverhaltens werden in der Regel binre Suchbume eingesetzt, die den kodierbaren Inhalt aufnehmen und eine zeitaufwendige lineare Suche ersparen.

Otto Liebminger

21.12.2011

Seite 12 von 49

Datenkompressionen

Lempel-Ziv-78 (LZ78) Ein Jahr nach der Verffentlichung von LZ77 haben Jacob Ziv und Abraham Lempel ein weiteres Kodierungsverfahren vorgestellt ("Compression of Individual Sequences via Variable-Rate Coding"). Dementsprechend bezeichnet man das Verfahren als LZ78. Prinzip: Basis fr LZ78 ist ein explizit gefhrtes Wrterbuch, das zur Laufzeit, sowohl whrend der Enkodierung als auch whrend der Dekodierung, aufgebaut wird. In dieses Wrterbuch werden alle bereits kodierten Zeichenketten eingetragen. Kodiert wird der Inhalt in der Form: Index auf den Eintrag im Wrterbuch erstes abweichendes Zeichen

Im Gegensatz zu LZ77 wird hier keine Kombination aus Adresse und Lnge der Zeichenkette, sondern lediglich der Index auf eine Tabelle gespeichert. Die Architektur mit dem ersten Zeichen, fr das keine bereinstimmung im Wrterbuch gefunden wurde, bleibt erhalten. Beispiel "abrakadabra":
Index 0 0 0 1 1 1 3 abweichendes Zeichen 'a' 'b' 'r' 'k' 'd' 'b' 'a' neuer Eintrag Wrterbuch 1 "a" 2 "b" 3 "r" 4 "ak" 5 "ad" 6 "ab" 7 "ra"

abrakadabra a brakadabra ab rakadabra abr akadabra abrak adabra abrakad abra abrakadab ra

Der Aufbau des Wrterbuchs vollzieht sich verhltnismig langsam, relevante Kompressionsleistungen werden erst bei greren Datenmengen erreicht. Darber hinaus ist die Kompressionsleistung unmittelbar von der Gre des Wrterbuchs abhngig. Allerdings steigt damit der Aufwand fr die Administration, die zur Laufzeit aufgefhrt werden muss. Fr die praktische Implementation wird das Wrterbuch in einer Baumstruktur ausgefhrt, um den Aufwand fr das Durchsuchen der Eintrge zu minimieren. Beginnend mit dem aktuellen Zeichen durchluft der Algorithmus den Baum bis zum Erreichen eines Endknotens. Der Index, der dem betroffenen Knoten zugeordnet ist, wird dann ausgegeben. Weil dekoderseitig keine Suchfunktion erforderlich ist, lst sich der Dekoder mit einer indizierten Tabelle realisieren. Im Zuge der Kodierung wchst das Wrterbuch immer weiter an, so dass die Adresslnge fr die Indizierung, der Speicherplatz- und der Laufzeitbedarf permanent zunimmt. Deshalb muss eine Begrenzung des Wrterbuchs erfolgen. Ist dieses gefllt, so sind Mechanismen zur Aktualisierung erforderlich. Auf LZ78 setzen verschiedene Verfahren auf, u.a. auch das weit verbreitete LZWVerfahren.
Otto Liebminger 21.12.2011 Seite 13 von 49

Datenkompressionen

Lempel-Ziv-Welch (LZW) Das LZW-Kodierungsverfahren stellt eine Abwandlung der von Jacob Ziv und Abraham Lempel vorgestellten Kompressionsmethode LZ78 dar. Publiziert wurde das Verfahren 1984 von Terry A. Welch in dem Artikel "A Technique for High-Performance Data Compression". LZW ist wesentlicher Bestandteil von mehreren Datenformaten, die von groer praktischer Bedeutung sind. So setzen z.B. die Graphikformate gif, tif (optional) und Postscript (optional) LZW zur verlustlosen Datenkompression ein. Prinzip: LZW entwickelt whrend der Kodierung ein Wrterbuch, das die bereits kodierten Zeichen aufnimmt. In den kodierten Daten sind lediglich die Indizes der Eintrge in diesem Wrterbuch enthalten. Die ersten 256 Eintrge werden mit den einzelnen Zeichen vorbesetzt. Alle nachfolgenden Eintrge reprsentieren lngere Zeichenketten. Der von Terry A. Welch vorgestellte Algorithmus definiert den Aufbau des Wrterbuchs und beinhaltet Mechanismen, die sicherstellen, dass die Wrterbcher sowohl bei der Enkodierung als auch bei der Dekodierung identisch sind.

3.4.3 Huffman-Kodierung
Als letzter Schritt der Komprimierung erfolgt beim Layer III eine Huffman-Kodierung. Dieser Algorithmus kommt beispielsweise auch bei Packprogrammen wie ZIP zum Einsatz. Bei Huffman ist die Hufigkeit bestimmter Werte entscheidend. Hufig auftauchende Werte erhalten eine kurze Bitfolge, selten auftretende Werte hingegen eine Lange. Daher ermittelt der Algorithmus zunchst die Verteilung der Werte innerhalb der zu komprimierenden Daten. Der Nachteil der Huffman-Kodierung ist, dass eine Statistik der Daten vorliegen muss, was beispielsweise bei sich dynamisch ndernden Daten oder dynamisch erzeugten Daten (wie Bildern oder Video) in der Regel nicht der Fall ist. Auerdem kann dieses Verfahren sehr viel Overhead erzeugen, beispielsweise wenn Zeichenkombinationen (qu) betrachtet werden, da dann die Tabellen sehr gro werden. Daher wird eine adaptive Huffman-Kodierung verwendet, bei der sich der Codebaum whrend des Durchlaufs durch die Daten aufbaut und sogar verndert werden kann, was gegebenenfalls bedeutet, dass gleiche Daten verschieden kodiert werden knnen, weil sich zwischenzeitlich der Codebaum verndert hat. Die Idee ist, dass bei Kodierung und Dekodierung jeweils der gleiche Codebaumgenerator verwendet wird. Bei der adaptiven Huffman-Kodierung werden jeweils zwei Zeichen, die noch nicht vorhanden sind, zusammengefasst und ihre Zhler verndert; ist ein Zeichen bereits im Codebaum vorhanden, so wird nur sein Zhler inkrementiert. Wird der Zhlerwert grer als ein bereits vorhandener Wert, so wird dieser Knoten mit dem grten Knoten mit dem Zhlerwert Z vertauscht. Auf diese Weise wandert ein in einem gewissen Kontext hufiger auftretendes Zeichen immer hher im Codebaum und wird somit mit immer krzerer Bitfolge kodiert. Dieses Konzept wird bei verschiedenen adaptiven Techniken angewendet.

Otto Liebminger

21.12.2011

Seite 14 von 49

Datenkompressionen

Die einfache Huffman-Kodierung stellt eine algorithmische Umsetzung der informationstheoretischen Regel dar, mglichst gleichwahrscheinliche Teilmengen der zu kodierenden Werte zu verwenden, um eine (sub-) optimale Kodierung zu erhalten. Sie erzeugt einen binren Baum, dessen Bltter den Zeichen entsprechen, und der zu jedem Knoten zwei Nachfolger (0, 1) besitzt. Eine Kodierung verwendet jeweils ein entsprechendes Anfangsstck. Um einen sogenannten Huffman-Baum zu ermitteln, beginnt man mit den beiden seltensten Werten. Ihnen wird eine "0" beziehungsweise eine "1" zugewiesen. Es erfolgt eine Zusammenfassung der beiden Werte, in der Reihenfolge sind sie nun durch die Summe ihrer Hufigkeit reprsentiert. Das gleiche geschieht mit den nchsten beiden seltensten Werten. Dieser Vorgang ist beendet, wenn nur noch ein Wert brig ist. Das Ergebnis dieser Vorgehensweise ist eine Baumstruktur. Anhand dieser Struktur erfolgt die Kodierung. Jede Verzweigung nach links erhlt eine 0, jede Rechtsverzweigung ist durch eine "1" gekennzeichnet. In unserem kleinen Beispiel wre der weniger hufige Wert 4 durch die Bitfolge 010 reprsentiert. Der hufigste Wert 6 bekommt dagegen eine schlichte 1 zugeordnet.

Abbildung 6: Eine lange Bitfolge kennzeichnet einen selten auftretenden Wert, hufige Werte sind durch eine kurze Bitfolge dargestellt.

Noch ein Beispiel zum Algorithmus einer Huffman-Kodierung: 1. Initialisierung: Alle Zeichen werden Knoten zugeordnet und nach ihrer Hufigkeit in einer Liste sortiert. 2. Solange die Liste der Knoten noch mehr als ein Element enthlt: a.) b.) c.) Entnehme die beiden Elemente mit der geringsten Hufigkeit der Liste und erzeuge einen Elternknoten hierfr. Weise die Summe der Hufigkeiten der Kinder dem Elternknoten zu und fge diesen Knoten der Liste zu. Den Zeigern des Elternknoten wird der Code 0, 1 zugeordnet (Reihenfolge im Prinzip beliebig).

Otto Liebminger

21.12.2011

Seite 15 von 49

Datenkompressionen

Abbildung 7: Beispiel eines Hufman-Baums ( ALLER ANFANG IST SCHWER ) ALLER ANFANG IST SCHWER Zeichen Hufigkeit h
3 A E L N R S C F G H I T W 3 2 2 2 2 2 1 1 1 1 1 1 1 23

-log2(h/ )
2,93859946 2,93859946 3,52356196 3,52356196 3,52356196 3,52356196 3,52356196 4,52356196 4,52356196 4,52356196 4,52356196 4,52356196 4,52356196 4,52356196

Code

Anzahl der Bits fr Kodierung

h/ *log2(h/ h*Code-Bits
) 0,38329558 0,38329558 0,30639669 0,30639669 0,30639669 0,30639669 0,30639669 0,19667661 0,19667661 0,19667661 0,19667661 0,19667661 0,19667661 0,19667661 3,67531087 9 9 6 8 8 6 8 4 4 5 5 4 5 5 86

111 110 101 1001 1000 011 0101 0100 0011 00101 00100 0001 00001 00000

3 3 3 4 4 3 4 4 4 5 5 4 5 5 56

Im obigen Beispiel werden 86 Bits zur Kodierung des Textes "ALLER ANFANG IST SCHWER" benutzt, whrend eine Kodierung der 14 verschiedenen Zeichen mit jeweils 4 Bits 234=92 Bits bentigen wrde. Die ideelle Entropie ist 3,6753, whrend die wahre Entropie in diesem Beispiel 86/23 = 3,739 ist, also nahe an der ideellen Entropie liegt. Grundstzlich stellt sich die Frage, ob die Huffman-Kodierung jeweils eine bessere Kodierung ergibt als eine Kodierung mit Hilfe gleichlanger Wrter.
Otto Liebminger 21.12.2011 Seite 16 von 49

Datenkompressionen

Die Antwort ist berraschenderweise ja, solange die absolute Hufigkeit der einzelnen Zeichen bekannt ist. Man kann sich das etwa so plausibel machen, dass man von einem ausgeglichenen Baum ausgeht. Dieses entspricht der Kodierung von 2N Wrtern mit gleichlangen Wrtern. Habe jetzt das Zeichen i eine Hufigkeit hi, die grer ist als die Summe der Hufigkeiten zweier anderer Zeichen j und k: hi>hj+hk, so lsst sich das erste Zeichen mit N-1 Bits kodieren, es rckt im Baum eine Ebene nach oben, whrend sich die anderen mit jeweils N+1 Bits kodieren lassen; sie sacken eine Ebene tiefer. Die Kodierung wird sich fr das Zeichen i um hi Bits verringern, whrend sie sich fr die Zeichen j und k um hj+hk Bits vergrern wird; der Gewinn betrgt also hi-hj-hk Bits und ist somit positiv.

Abbildung 8: Einordnung nach Hufigkeit in der Baumstruktur

Dieses Verfahren lsst sich jetzt verallgemeinert fortsetzen, und man kommt offenbar zu der Huffman-Kodierung, da die Zeichen mit der geringsten Hufigkeit immer tiefer sacken, solange die Summe ihrer Hufigkeiten noch kleiner ist als die eines einzelnen anderen Zeichens. Daraus folgt also, dass eine Huffman-Kodierung niemals schlechter ist als eine Kodierung mit gleichlangen Wrtern. Ein weiterer Vorteil ist, dass die Anzahl verschiedener Zeichen nicht lnger von der Wortlnge abhngt, sondern beliebig gewhlt werden kann. Man knnte also zu jeder Anwendung eine Kodierung konstruieren, die genau die von der jeweiligen Anwendung bentigten Zeichen festlegt. Huffman-Kodierung bei MP3-Dateien Vor der Huffman-Kodierung steht die Anordnung der Subbnder. Die Frequenz gibt die Reihenfolge der Bnder vor. Die Subbnder mit niedrigeren Frequenzen enthalten blicherweise deutlich mehr Werte, als diejenigen der hohen Frequenzen, wo in der Regel 0 oder Werte in der Nhe von 0 erscheinen. Der Encoder unterteilt die Subbnder in drei Bereiche. Jeder Bereich erhlt einen eigenen Huffman-Baum, um den optimalen Kompressionsfaktor zu erreichen.

Otto Liebminger

21.12.2011

Seite 17 von 49

Datenkompressionen

Zunchst klammert der Encoder die Frequenzbnder mit den hohen Frequenzen aus, eine Kodierung ist hier nicht notwendig, da sich ihre Gre aus denen der anderen zwei Regionen ableiten lsst. Die zweite Region enthlt Frequenzbnder, in denen die Werte von -1 bis 1 hufig auftauchen. Der dritte Bereich enthlt alle verbleibenden Werte und wird ein weiteres Mal in drei Regionen unterteilt, von denen jede einen eigenen Huffman-Baum zugewiesen bekommt. Welcher Huffman-Baum zum Einsatz kommt, wird innerhalb der MP3-Datei abgelegt.

3.4.4 arithmetische Kodierung


Die arithmetische Kodierung stellt eines der effizientesten Verfahren dar, um die Kodierung von Zeichen mit unterschiedlicher Auftrittswahrscheinlichkeit umzusetzen. Die Zeichenverteilung spiegelt sich dabei exakt in den Kodelngen wieder, es gibt keine Abweichungen, die z.B. auf Bit-Grenzen zurckzufhren sind. Damit ist die arithmetische Kodierung anderen Verfahren, wie der klassischen Huffman-Kodierung berlegen. Als Bestandteil des jpeg-Kompressionsverfahrens findet die arithmetische Kodierung Anwendung. Alternativ sieht die jpeg-Spezifikation die Huffman-Kodierung vor, die, soweit bekannt, ohne Lizenzen anwendbar ist. arithmetische Kodierung (AC) Ziel der arithmetischen Kodierung (AC - Arithmetic Coding) ist es, ein Verfahren zu definieren, das bei Kenntnis der relativen Wahrscheinlichkeit fr das Auftreten eines Zeichens einen Kode idealer Lnge zur Verfgung stellt. Die AC ordnet dazu jedem Zeichen ein Intervall zu, dessen Gre die Wahrscheinlichkeit fr das Auftreten dieses Zeichens wiederspiegelt. Die Kodierung erfolgt durch Auswahl einer rationalen Zahl, die innerhalb dieses Intervalls liegt. Das gesamte Datenvolumen wird durch eine rationale Zahl dargestellt, die fr jedes Zeichen immer innerhalb von dessen Intervall liegt. Mit zunehmendem Datenbestand wird die Lnge, bzw. die Anzahl von signifikanten Nachkommastellen, der Zahl immer grer. Obwohl die AC in der Regel ein besseres Ergebnis liefert, als die klassische HuffmanKodierung, ist sie nur verhltnismig selten eingesetzt worden. Dies lag zunchst in den Anforderungen an die Rechenleistung begrndet. Spter kamen jedoch patentrechtliche Erwgungen primr zum Tragen. Die Firmen IBM, AT&T und Mitsubishi sollen gltige Patente besitzen. Prinzip der arithmetischen Kodierung Die gesamte zu kodierende Datenmenge wird durch eine rationale Zahl dargestellt, die in einem Bereich von 0 bis 1 liegt. Dieser Bereich wird in Teilintervalle gegliedert, die ihrerseits einzelne Zeichen reprsentieren. Die Anzahl der Teilintervalle ist identisch mit der Anzahl der Zeichen im aktuellen Zeichenvorrat und die Gre ist proportional zur deren Auftrittswahrscheinlichkeit. Fr jedes Zeichen in den Ausgangsdaten erfolgt eine neue Intervallteilung, ausgehend von dem letzten Teilintervall.
Otto Liebminger 21.12.2011 Seite 18 von 49

Datenkompressionen

Beispiel Teilintervalle
Start 'b' 'a' a [0,0; 0,5) [0,50; 0,65) --> [0,500; 0,575) b [0,5; 0,8) --> [0,65; 0,74) [0,575; 0,620) c [0,8; 1,0) [0,74; 0,80) [0,620; 0,650)

Ausgehend von der initialen Intervallteilung wird das Zeichen 'b' mit einer Zahl kodiert, die grer oder gleich 0,5 und kleiner als 0,8 ist. Wrde das Zeichen 'b' fr sich allein stehen, knnte eine beliebige Zahl aus diesem Intervall ausgewhlt werden. Fr das folgende Zeichen geht man von dem aktuellen Intervall [0,5; 0,8) aus und gliedert dieses wieder in Teilintervalle. Ist das zweite Zeichen ein 'a', so wird eine beliebige Zahl aus dem Intervall [0,50; 0,65) kodiert. Mit jedem weiteren Zeichen wird das zuletzt aktuelle Intervall weiter geteilt, die Anzahl von signifikanten Nachkommanstellen der zu kodierenden Zahl wchst immer weiter an. Auch wenn die Genauigkeit der zu kodierenden Zahl immer grer wird, so braucht diese nicht vollstndig bearbeitet zu werden. Mit Hilfe geeigneter Algorithmen lassen sich nicht mehr relevante Anteile eliminieren.

Aufteilung in Intervalle Ausgehend von einem bekannten Alphabet, werden die Auftrittswahrscheinlichkeit aller Zeichen ermittelt und in Intervalle ungesetzt. Die Intervallgre ist linear abhngig von der Wahrscheinlichkeit fr das Auftreten eines Zeichens. Liegt diese beispielsweise bei 50%, so umfasst das zugehrige Teilintervall die Hlfte des aktuellen Intervalls. Fr das erste Zeichen wird das Gesamtintervall in den Grenzen von [0; 1) zugrunde gelegt: Beispiel Intervallteilung [0,0; 1,0)
Zeichen a b c d e Hufigkeit 4 2 2 1 1 Wahrscheinlichkeit Teilintervall 0,4 [0,0; 0,4) 0,2 [0,4; 0,6) 0,2 [0,6; 0,8) 0,1 [0,8; 0,9) 0,1 [0,9; 1,0)

Beispiel Intervallteilung [0,9; 1,0)


Zeichen a b c d e Hufigkeit 4 2 2 1 1 Wahrscheinlichkeit Teilintervall 0,4 [0,90; 0,94) 0,2 [0,94; 0,96) 0,2 [0,96; 0,98) 0,1 [0,98; 0,99) 0,1 [0,99; 1,00)

Otto Liebminger

21.12.2011

Seite 19 von 49

Datenkompressionen

Beispiel Intervallteilung [0,99; 1,00)


Zeichen a b c d e Hufigkeit 4 2 2 1 1 Wahrscheinlichkeit Teilintervall 0,4 [0,990; 0,994) 0,2 [0,994; 0,996) 0,2 [0,996; 0,998) 0,1 [0,998; 0,999) 0,1 [0,999; 1,000)

Eine Zahl im Bereich von 0,999 bis < 1,000 reprsentiert demnach die Zeichenkette "eee". Zuordnung von Intervallen und Kodes
Die Zeichen werden durch eine beliebige Zahl identifiziert, die innerhalb des betreffenden Intervalls liegen muss. So werden alle Werte, die grer oder gleich 0,0 und kleiner als 0,4 sind als Zeichen "a" interpretiert.

Beispiel: Zeichenzuordnung
Zahl 0,1 0,2 0,4 0,55 0,99 Intervall [0,0; 0,4) [0,0; 0,4) [0,4; 0,6) [0,4; 0,6) [0,9; 1,0) Zeichen a a b c e

Alle Intervalle weisen eine abgeschlossene Untergrenze (symbolisiert durch) und eine offene Obergrenze (symbolisiert durch) auf. Der untere Grenzwert ist immer Bestandteil des jeweiligen Intervalls, whrend der obere Grenzwert auerhalb des Intervalls liegt. D.h. der Wert 1 drfte in diesem Kontext niemals kodiert werden. nachfolgende Intervalle Fr alle weiteren Zeichen wird jetzt nicht mehr das Basisintervall [0; 1), sondern das jeweils letzte Teilintervall zugrunde gelegt. Sofern das erste Zeichen im Beispiel ein "a" gewesen ist, ergibt sich fr das nchste Zeichen ein Intervall von [0; 0,4), bei einem "b" entsprechend [0,4; 0,6). Bei konstanter Wahrscheinlichkeit wrden, nach einem "a" als vorhergehendes Zeichen, fr das aktuelle Zeichen die folgenden Grenzen gelten: Beispiel: Intervallteilung "a"
ges.: [0,0; 1,0) P(x) 0,4 0,2 0,2 0,1 0,1 ----Sum. 1,0 Z. a b c d e Teilintervalle [0,0; 0,4) ----[0,4; 0,6) | [0,6; 0,8) | [0,8; 0,9) | [0,9; 1,0) -ges.: [0,0; 0,4) 0,16 0,08 0,08 0,04 0,04 -----0,40 Teilintervalle [0,00; 0,16) [0,16; 0,24) [0,24; 0,32) [0,32; 0,36) [0,36; 0,40)

Otto Liebminger

21.12.2011

Seite 20 von 49

Datenkompressionen

Fr die reale Umsetzung einer AC sei nochmals ausdrcklich darauf hingewiesen, dass die arithmetische Kodierung patentrechtlichen Einschrnkungen unterliegt und der Erwerb von Lizenzen fr den praktischen Einsatz zwingend erforderlich ist. Flussdiagramm: AC-Enkodierung

Flussdiagramm: AC-Dekodierung

Otto Liebminger

21.12.2011

Seite 21 von 49

Datenkompressionen

Der Algorithmus fr die

Dekodierung weicht nur geringfgig von dem fr die Enkodierung ab. Im Prinzip wird lediglich berprft, innerhalb wessen Teilintervall sich der kodierte Wert gerade befindet. Sowohl bei der En- als auch bei der Dekodierung liegt die Schwierigkeit bei der Umsetzung der Operationen fr das Aus- bzw. Eingliedern neuer signifikanter Stellen, ohne durch Rundungsfehler falsche Intervalle zu identifizieren. Die dafr erforderlichen Algorithmen sind in den Flussdiagrammen nicht enthalten.

Vergleich arithmetische mit Huffman Kodierung

Otto Liebminger

21.12.2011

Seite 22 von 49

Datenkompressionen

Die arithmetische Kodierung versucht quivalent der Huffman-Kodierung die Wahrscheinlichkeit, mit der bestimmte Zeichen auftreten, auszuwerten und danach die Lnge der erforderlichen Kodierung zu optimieren. Bedingt durch die Struktur der klassischen Huffman-Kodierung, die nur ganzzahlige Kodelngen kennt, ist die arithmetische Kodierung in punkto erzielbarer Kompressionsrate immer berlegen. Der primre Nachteil der arithmetischen Kodierung liegt in dem hohen Rechenaufwand begrndet, der sich insbesondere bei lteren Systemen drastisch ausgewirkt hat. Auerdem spielt die Patentproblematik eine entscheidende Rolle. Daten mit hoher Redundanz Besondere Aspekte bietet die arithmetische Kodierung, wenn die zu komprimierenden Daten ein besonders hohes Ma von Redundanz aufweisen. Als Extrembeispiel mag hier eine Datei dienen, die 10.000 Byte umfasst und lediglich den Wert Null (0h) enthlt. Bei der arithmetischen Kodierung reicht es aus, einen beliebigen Wert aus dem resultierenden Intervall zu speichern, in diesem Fall idealerweise 0. In Verbindung mit einer Kennung fr das Dateiende oder die Angabe der Dateigre resultiert daraus eine Gre der enkodierten Daten von 3 Byte. Im Vergleich dazu kann die Huffman-Kodierung lediglich eine Reduktion auf 1.250 Byte (10.000 mal 1 Bit) erzielen, sofern man nur die Kodierung einzelner Zeichen betrachtet. Implementationen Im Rahmen des jpeg-Kompressionsverfahrens kann die arithmetische Kodierung, entsprechende Lizenzen vorausgesetzt, zur abschlieenden Entropiekodierung der DCund AC-Koeffizienten eingesetzt werden. blicherweise wird jedoch die HuffmanKodierung angewendet.

3.4.5 Shannon-Fano-Kodierung
Die Kodierung nach Claude Shannon (MIT) und R.M. Fano (Bell Laboratories) wurde in etwa 1960 entwickelt. Sie sieht eine Kodierung mit unterschiedlichen Zeichenlngen entsprechend der Hufigkeit ihres Auftretens vor. Das Prinzip der Shannon-Fano-Kodierung ist verhltnismig einfach aufgebaut, hat aber vornehmlich akademischen Hintergrund. Eine praktische Bedeutung kommt dem Verfahren selber nicht zu. Die Begrndung dafr liegt in der geringen Effizienz, wie sich im Vergleich mit der Huffman-Kodierung zeigt.

Beispiel Shannon-Fano-Kodierung Um einen Kodebaum nach Shannon und Fano zu definieren wird eine nach Hufigkeit geordnete Tabelle aller auftretenden Zeichen ausgewertet. Diese wird solange geteilt, bis jedem Zeichen ein Blatt des Baums zugeordnet ist.
Otto Liebminger 21.12.2011 Seite 23 von 49

Datenkompressionen

Die Teilung erfolgt immer so, dass die Summe der Hufigkeiten im oberen und unteren Teil mglichst gleich gro ist.
Zeichen Hufig- Kode- Kode Gesamtkeit lnge lnge -----------------------------------------A 24 2 00 48 B 12 2 01 24 C 10 2 10 20 D 8 3 110 24 E 8 3 111 24 -----------------------------------------ges. 62 Zeichen SF-kodiert: 140 Bit linear (3 Bit/Zeichen): 186 Bit

Mit Hilfe des Shannon-Fano-Kodes lassen sich die zugrunde gelegten Originaldaten mit 2,26 Bit kodieren. Fr eine lineare Kodierung sind bei 5 Zeichen 3 Bit pro Zeichen erforderlich. Allerdings muss die Tabelle vorher bekannt oder aus den vorhergehenden Daten heraus entwickelt werden. Interpretation von Kodebumen Ein Kode ergibt sich aus einem binren Baum indem man ihn, beginnend mit der Wurzel, solange durchschreitet, bis der Knoten mit dem gewnschten Inhalt erreicht ist. Jede linksseitige Verknpfung entspricht einer binren 0, jede rechtsseitige Verknpfung entspricht einer binren 1. In dem oben aufgezeigten Beispiel ergibt sich die nachfolgende Kodierung fr die drei kodierten Zeichen "a", "b" und "c":
0 -- a 10 -- b 11 -- c

Otto Liebminger

21.12.2011

Seite 24 von 49

Datenkompressionen

3.5 bersichten
bersicht: gngige Formate und Verfahren
Datentyp Dateien Format zip sit Text Bilder zip gif JPEG Audio Video mp3 MPEG avi hybride Daten pdf lz lzw dct subband, mdct dct zip, jpg
-

Kompression lz

Anmerkungen

gngiger Standard unter Windows gngiger Standard unter MacOS Standard Internet Standard Internet eigentlich: MPEG-1 Audio Layer III

bersicht: Dateien beliebigen Inhalts


Format zip sit arj rar tar ace uc2 lz Kompression Anmerkungen
gngiger Standard unter Windows gngiger Standard unter MacOS -

bersicht: Graphik

Otto Liebminger

21.12.2011

Seite 25 von 49

Datenkompressionen

Format gif jpeg tiff bmp pict eps fif png wi lzw dct

Kompression

Anmerkungen
Standard Internet, max. 256 Farben Standard Internet RLE4 RLE8 Apple -

opt. jpeg, opt. lzw opt. RLE -

bersicht: Audio
Format mp3 mpeg-1 mpeg-2 mpeg-4 AAC AC-3 dpcm adpcm Kompression subband, mdct subband, mdct subband, mdct Anmerkungen
eigentlich: MPEG-1 Audio Layer III Advanced Audio Coding Dolby Real Audio Apple QuickTime Difference Pulse Code Modulation Adaptive Difference Pulse Code Modulation

bersicht: Video
Format MPEG-1 MPEG-2
Otto Liebminger

Kompression dct dct


21.12.2011
-

Anmerkungen

Seite 26 von 49

Datenkompressionen

MPEG-4 avi motion jpeg flc animated gif h.261

Animationen, "flics" Apple QuickTime Real Video -

bersicht: Text
Format zip rar Kompression lzw deutlich bessere Kompression als bei zip

Anmerkungen

bersicht: hybride Formate


Format pdf Kompression zip, jpg Adobe -

Anmerkungen

4 Methoden der Grafikkodierung


Hier sollen einige Grundbegriffe ber Graphik, Auflsung und Farbtiefe kurz beschrieben werden. Graphik ist eine Ansammlung von Daten, die diese Beschreiben.

Otto Liebminger

21.12.2011

Seite 27 von 49

Datenkompressionen

Abbildung 9: Prinzip der Graphikentstehung

Wichtig ist es diese Daten zu strukturieren und zu organisieren.

4.1 Es gibt zwei grundstzliche Arten von Graphiken:


4.1.1 Rastergraphik
Bei der Rastergraphik wird das Bild in eine Pixelmatrix zerlegt. Es entstehen M Zeilen und N Spalten. (M x N Pixelmatrix). Jedes der einzelnen Pixel enthlt Farbwerte.

Abbildung 10: Rastergraphik

Bei der Rastergraphik ist die Speicherung der Bildinformation formatabhngig. Auflsung: Je mehr Bildpunkte vorhanden sind, desto hher ist die Auflsung und desto besser ist die Qualitt des Bildes. Jedoch gilt auch, je hher die Auflsung, desto grer ist der Speicherbedarf. In den folgenden Bildern ist der Begriff der Auflsung bzw. der Qualitt sehr gut Erkennbar. Das linke Bild hat eine Auflsung von 72 dpi und das rechte Bild eine Auflsung von nur 10 dpi.

Otto Liebminger

21.12.2011

Seite 28 von 49

Datenkompressionen

Abbildung 11: Auflsung

Farbtiefe: Hier gilt, je grer die Farbzahl, desto hher ist die Farbtiefe. Jedoch gilt auch hier, je hher die Farbtiefe, desto grer ist der Speicherplatzbedarf.

Abbildung 12: Farbtiefe

Strungen durch geringe Rasterung oder Quantisierung Periodische Strungen Aliasing Abtasttheorem von Shannon Das Abtasttheorem von Shannon sagt aus, dass die Abtastfrequenz mehr als doppelt so gro sein muss, als die maximal auftretende Frequenz. Ein zu groer Abtastintervall htte zur folge, dass die falschen Werte abgetastet werden wrden und somit Abtastwerte mit lngerer Wellenlnge entstehen. Dies wrde einer falschen und somit unbrauchbaren Information entsprechen.

Otto Liebminger

21.12.2011

Seite 29 von 49

Datenkompressionen

Abbildung 13: Abtastheorem von Shannon

Strungen im Punktraster Moiree Effekt Zu digitalisierende Objekte werden durch ein Gitter betrachtet. Durch die Abtastung kommt es nun zu Vernderung der Gitterkonstanten und der Richtung. Es entsteht der sogenannte Moiree Effekt, der einer Strung entspricht.

Abbildung 14: Moiree Effekt

4.1.2 Vektorgraphik
Vektorgraphiken sind nur fr einfache Darstellungen geeignet. Sie sind nicht fr komplexe Graphiken, wie Fotos oder vielfarbige Darstellungen geeignet. In Vektorgraphiken kann man beliebig hineinzoomen, ohne einen Rastereffekt bzw. Qualittsverlust zu erhalten. Es werden Objektbezugspunkte fr geometrische Figuren gespeichert. Die darzustellende Figur wird daraus rekonstruiert. Es werden zustzlich Attribute, wie Farben, Linienstrken und Fllung gespeichert.

Otto Liebminger

21.12.2011

Seite 30 von 49

Datenkompressionen

Diese Graphiken sind auch Animationsfhig und werden daher oft fr Comics verwendet.

Abbildung 15: Vektorgrahiken-Beispiele

5 JPEG Graphikformat fr Einzelbilder


JPEG ist eines der gngigsten Verfahren zur Kompression von Bilddaten, speziell von Photographien oder photorealistischen Darstellungen. Der Name JPEG (zumeist JayPeg ausgesprochen) ist der allgemein gebruchlichen Bezeichnung fr die Arbeitsgruppe entlehnt, die die Entwicklung dieses Datenformats betrieben hat: die Joint Photographic Experts Group. Entwicklung, Beurteilung und Standardisierung haben sich ber einen Zeitraum von 1982 bis 1987 erstreckt; seit 1992 ist JPEG als internationaler Standard festgeschrieben (ISO/IEC IS 10918).

5.1 Eigenschaften von JPEG


Ausgehend von einer Basisimplementierung weist JPEG folgende Eigenschaften auf:

Das Datenformat ist unabhngig von der Auflsung, dem Seitenverhltnis und dem Bildinhalt. Die Qualitt der Abbildung lst sich individuell bestimmen. Ein Absenken der qualitativen Anforderungen resultiert in einer geringeren Dateigre. Bildinhalte mit einfacher Struktur (gleichfarbige Flchen, regelmige Muster, geringer Farbumfang, etc.) fhren automatisch zu kleineren Dateien. Die Reduzierung der Bildqualitt macht sich durch Kompressionsartefakte in Form einer "Rasterung" bemerkbar. Die Gre dieser Strukturen betrgt 8 x 8 Pixel und tritt zunchst in Bereichen mit hohem Komplexittsgrad auf. Eine zuverlssige bertragung von Farben, z.B. bei Hintergrundfarben, ist bei greren Kompressionsraten nicht gewhrleistet. Bei der Kompression von monochromen Graphiken (z.B. s/w-Graphiken, technischen Zeichnungen, etc.) ergeben sich mitunter deutlich wahrnehmbare Kompressionsartefakte. Es ist eine bis zu 24 Bit Farbtiefe mglich

Otto Liebminger

21.12.2011

Seite 31 von 49

Datenkompressionen

5.2 Einsatzbereiche
Das hauptschliche Einsatzgebiet von JPEG liegt in der Kodierung von Photos oder von photorealistischen Darstellungen, bei der effiziente Kapazittsauslastung (Speicher, Datentransferraten, etc.) im Mittelpunkt steht. Es wir darum auch in der digitalen Fotographie als Standardformat verwendet. Darber hinaus ist die weite Verbreitung, auch im www, eines der charakteristischen Strke von JPEG. Zeichnungen und monochromen Graphiken lassen sich in der Regel besser in anderen Formaten, wie z.B. gif, kodieren. Gleiches gilt, wenn einfache Graphiken oder kleinere Bilder in eine Umgebung mit Hintergrundfarben bzw. -graphiken eingepasst werden soll. In der Basiskonfiguration ist JPEG nur begrenzt fr den professionellen Bereich in der Drucktechnik geeignet. Hufig treten Probleme mit Kompressionsartefakten, den limitierten Farbsystemen oder der Farbverbindlichkeit auf. Professionelle Lsungen sind verfgbar, aber zumeist nicht kompatibel mit den Basislsungen.

5.3 Kodierungschritte
Das Ziel des gebruchlichsten Modus von JPEG ist es, bei der gewnschten Kompressionsleistung ein Optimum an Qualitt zur Verfgung zu stellen. Dazu mssen die Ausgangsdaten in eine Form gebracht werden, die es erlaubt, zwischen wichtigen (relevanten) und weniger wichtigen (irrelevanten) Inhalten zu unterscheiden. Diese Vorgaben werden mit einem mehrstufigen Prozess umgesetzt: 1. Bildaufbereitung (Zerlegung in Bildkomponenten) Das Bild wird in Komponenten gegliedert, die den unterschiedlichen Qualittsanforderungen angepasst sind. 2. Transformation (DCT: Diskrete Kosinustransformation) Jede einzelne Komponente wird in ein Format bertragen, das Rckschlsse ber die Struktur der Bildinhalte erlaubt. Damit ergibt sich die Mglichkeit zwischen grundlegenden und komplexeren Inhalten zu unterscheiden. 3. Quantisierung (Gewichtung der Inhalte) Die transformierten Daten werden quantisiert, also entsprechend ihrer Bedeutung fr den Bildinhalt gewichtet. 4. Entropiekodierung (Huffman-Kodierung) Entfernung von redundanten Informationen. Bei dem skizzierten Verfahren handelt es sich um eine gebruchliche Betriebsart. Darber hinaus sind in groem Umfang weitere Betriebsmodi vorgesehen, u.a. Optionen, die eine verlustfreie Datenkompression erlauben.

Otto Liebminger

21.12.2011

Seite 32 von 49

Datenkompressionen

Die vier Stufen anhand eines Blockschaltbildes dargestellt:

Abbildung 16: Blockschaltbild des Codierprozesses

Das Bild wird in lauter 8 mal 8 Blcke Zerlegt.

5.3.1 Bildaufbereitung (Farbkonversion und Sampling)


Eine JPEG-Datei nimmt die Bildinhalte getrennt in einzelne Komponenten auf, die voneinander unabhngig weiterverarbeitet werden. In Inhalt und Auflsung knnen die Komponenten dabei je nach Anwendung und qualitativen Anforderung differieren. Es erfolgt eine Transformation der RGB- Information in Y(Helligkeit), Cb (Blaukomponente) und Cr (Rotkomponente). YCbCr- Farbmodell Dieses Farbmodell wird auch YUV- Farbmodell genannt. Es werden die Farbkomponenten anteilig in Luminanz und Chrominanz zerlegt. Dies kommt daher, dass die Cb und Cr- Komponenten noch in ihrem Pegel reduziert werden. Der Vorteil des YUV-Farbmodells ist es, dass man die Farbwerte U und V eines Pixels mit niedrigerer Auflsung kodieren kann als den Helligkeitswert Y. Je nach gewnschter Bildqualitt kann die Auflsung der Farbkomponenten beispielsweise um den Faktor 2 oder 4 reduziert werden; d.h. auf vier Helligkeitsinformationen kommen nur zwei bzw. eine Farbinformation. Diese Vorgehensweise resultiert aus der unterschiedlichen Empfindlichkeit des menschlichen Auges fr die Wahrnehmung von Helligkeits- und Farbunterschieden. Der Helligkeit kommt in der Gesamtwahrnehmung eine erheblich grere Bedeutung zu. Demzufolge bietet es sich an, einen greren Anteil des Datenumfangs dafr zur Verfgung zu stellen. Man bezeichnet diese Kodierungsform als 4:2:2- oder 4:1:1Kodierung.

Otto Liebminger

21.12.2011

Seite 33 von 49

Datenkompressionen

Dieses Verfahren wird Sub-Sampling genannt. Bei JPEG verwendet man dieses Verfahren, indem man fr jeweils vier Helligkeitswerte Y nur je ein Chroma-Wert U und V kodiert.

Die vier YBlcke der Gre 8x8 mit einem

Abbildung 17: YUV-Codierung

Abbildung 18: Macroblock-Darstellung Otto Liebminger 21.12.2011 Seite 34 von 49

Datenkompressionen

zugehrigen U-Block der Gre 8x8 und einem V-Block der Gre 8x8 bezeichnet man als Macroblock

5.3.2 Transformation (DCT: Diskrete Kosinustransformation)


Die Anforderungen an ein ideales Format fr die Bilddatenkompression lassen sich wie folgt skizzieren: Die Bildinformationen lassen sich nach ihrer Bedeutung fr den qualitativen Gesamteindruck unterscheiden. Es gibt die Mglichkeit zu unterscheiden, in welchem Mae ein Wegfallen der Information Einfluss auf die Bildqualitt hat. Nur fr relevante Bildinformationen wird auch Datenkapazitt aufgewendet. Enthlt ein Bildabschnitt keine Informationen (z.B. bei einer einfarbigen Flche), so sollte sich dies unmittelbar in dem Aufbau der Daten niederschlagen.

Die punktweise Darstellung, mit der die konventionellen Datenformate arbeiten, erfllen die vorstehend genannten Anforderungen nicht. Deshalb werden die Ausgangsdaten mit Hilfe der sogenannten diskreten Kosinus-Transformation (DCT: Discrete Cosine Transformation) umgewandelt. Damit ergeben sich in Abhngigkeit von den Bildinhalten folgende Eigenschaften: Einfache Strukturen spiegeln sich in niedrigen Werten wieder; komplexe, detailreiche Strukturen in hohen Werten. Die aus der DCT resultierenden Werte spiegeln den geometrischen Aufbau der Bildinhalte wieder. Details (z.B. horizontale oder vertikale Zeichnungen), die nicht im Bild enthalten sind, werden durch den Wert Null dargestellt. Im Extremfall wird eine gleichfarbige Flche durch einen einzelnen Wert reprsentiert. Alle anderen Werte ergeben Null. Normalerweise werden jeweils 8 x 8 Punkte einer jeden Komponente mit Hilfe der nachfolgenden Formel umgesetzt:

Bei diesem Verfahren handelt es sich um eine Transforamtion vom Teitbereich in den Frequenzbereich. Transformation von Intensittsdaten in Frequenzdaten.
Otto Liebminger 21.12.2011 Seite 35 von 49

Datenkompressionen

Es besteht groe hnlichkeit mit der Fourier-Transformation. Der Grundgedanke der DCT ist es, durch Projektion auf eine geeignete Orthonormalbasis neue Koordinaten eines Datenvektors zu bestimmen. Durch geschickte Wahl der Orthonormalbasis sind dann manche Koordinaten relevanter als andere. Die Datenkompremierung wird dadurch erreicht, dass die nicht relevanten Koordinaten durch 0 ersetzt werden. Ein einzelner Bildpunkt(x,y) des 8x8 Blocks hat die Bildinformation f(x,y). 8 mal 8 bedeutet 64 mal anwenden und ergibt daher 64 Koeffizienten in der Frequenzdomne. Um ein Bild mit der DCT zu komprimieren, mssen somit die Koordinaten jede 8x8 Blocks des Bildes bezglich dieser Matrizen-Basis von 64 berechnet werden. Darstellung von Bildern mit Basisbildern Fr die Erklrung soll ein Bild in ein 2x2 Bild zerlegt werden.Es wird ein Grauwertbild in eine Linearkombination aus Basisbildern und Koeffizienten zerlegt.

Neben der oben dargestellten Basis 2x2 Basisbildern, kann man beliebige andere Basen konstruieren.Um einen Bildblock der Gre 8x8 abzudecken, braucht man daher 64 Basisbilder.

Otto Liebminger

Abbildung 19: Bildblock 8x8 21.12.2011

Seite 36 von 49

Datenkompressionen

Groe, regelmig gefrbte Flchen Ergeben niedrige Frequenzen.

Feine Details sowie hohe Kontrastunterschiede ergeben sehr hohe Frequenzen DC (Direct Current) = F(0,0) enthllt die Durchschnittswerte der 8x8 Matrix. AC (Alternating Current) = F(0,1) F(7,7) speichern die Vernderungen zum DC-Wert.

Abbildung 20: Matrix-Tabellen

5.3.3 Quantisierung(Gewichtung der Inhalte)


Als Ergebnis der DCT stehen Werte zur Verfgung, die den Bildinhalt beschreiben. Allerdings haben sie nicht im gleichen Mae Einfluss auf die Bildqualitt. Der Grund dafr liegt in der subjektiven Wahrnehmung von unterschiedlichen Details begrndet. Mit Hilfe der Quantisierung werden relevantere Bildanteile mit einer hheren Genauigkeit dargestellt. Anteile, die subjektiv zu einer geringeren Beeinflussung der Bildwahrnehmung fhren, werden abgewertet und mit niedrigerem Wertebereich abgebildet. Die Quantisierung ist nicht mehr umkehrbar und beeinflusst mageblich die dargestellte Bildqualitt. Dafr werden Quantisierungstabellen angewendet, die in der JPEG-Datei hinterlegt sind. Sie sind fr eine Dekodierung unerlsslich. Die von der DCT erhaltenen Werte F(U,V) werden dann durch die Werte Q(U,V) aus der Quantisierungstabelle dividiert und dann noch ganzzahlig aufgerundet.
Otto Liebminger 21.12.2011 Seite 37 von 49

Datenkompressionen

Die Daten etwa die der Ortsfrequenzen liegen bereits digital vor, jedoch in einer hohen Genauigkeit, die der Bit-Zahl entspricht. Die Anzahl der Quantisierungsstufen variiert mit der Ortsfrequenz was, die genaue Kodierung der zuverlssigeren tiefen Ortsfrequenzen erlaubt. Auch der Abstand der Quantisierungsstufen einer Ortsfrequenz braucht nicht gleichmig zu sein, sondern kann etwa mit zunehmender Amplitude zunehmen, um auf bestimmte Eigenschaften der menschlichen Wahrnehmung (Farb- und Helligkeitsempfinden des Auges) zu reagieren.

Abbildung 21: DCT-Werte vor und nach der Quantisierung

5.3.4 Entropiekodierung (Huffman-Kodierung)


Die Daten, die aus den vorangegangenen Schritten resultieren, sind mit einer unterschiedlichen Menge von Redundanz versehen, die keinerlei Beitrag zur Qualitt der Bilddarstellung liefert. Diese Redundanz wird z.B. mit Hilfe einer Huffman-Kodierung reduziert. Die Basis fr diese Kodierung bildet ein Kodebaum nach Huffman, der hufig auftretende Symbole mit kurzen Kodes und selten auftretende Symbole mit langen Kodes versieht. Neben der Huffman-Kodierung ist ein weiteres Kodierungsverfahren spezifiziert, das allerdings wegen der Patentlage keine praktische Bedeutung hat (arithmetische Kodierung).

Otto Liebminger

21.12.2011

Seite 38 von 49

Datenkompressionen

Bei der Entropie-Kodierung, auch Serialisierung, handelt es sich um die eigentliche Komprimierung bei JPEG. Bei der Serialisierung spielen die DC-Koeffizienten eine wichtige Rolle. Die Codierung erfolgt, indem die Differenzwerte der 8x8 Matrizen zum nchsten Block gespeichert werden. Die DC-Werte geben den Grundfarbton an und sind deshalb von groer Bedeutung. Die restlichen Blcke (F1,0 F7,7) beinhalten die AC-Koeffizienten. Diese Werden in einem Zick-Zack-Muster abgearbeitet. Das Zick-Zack-Auslesen der Koeffizienten ist besser als ein zeilenweises Auslesen, denn nach der Quantisierung kommen in der rechten unteren Matrix viele gleiche Werte nacheinander vor, darunter viele Nullen. Die Zickzack-Anordnung maximiert die Lauflngen fr die Anschlieende EntropieKodierung. Der Lauflngen-Kodierung folgt dann die Huffman-Kodierung. Das folgende Bild zeigt die Zick-Zack-Abarbeitung der AC-Werte.

Abbildung 22: Zick-Zack Abarbeitung der AC-Werte

Bei der Huffmann-Kodierung tritt das Problem auf, dass die Daten nur dann wieder dekodiert werden knnen, wenn der Suchbaum mit abgespeichert wurde. Es wrde die Daten extrem aufblhen, wenn man dies fr jeden Block einzeln tun wrde. Daher teilen sich mehrere Bilder den gleichen Suchbaum. Dies reduziert zwar die Effizienz der Kodierung, weil potentiell ein greres Wertespektrum auftreten kann und die statistische Verteilung der Werte mit zunehmender Datenmenge ungnstiger wird, aber der Vorteil ist dennoch vorhanden.

5.4 JPEG2000
Bei JPEG2000 handelt es sich um eine verbesserte JPEG-Version. Die DCT wird durch die Wavelets-Transformation ersetzt. Damit erreicht man in der Regel eine um 30% bessere Komprimierungsrate als bei JPEG. Ein Nachteil ist, dass die mathematische Komplexitt jedoch 10 mal hher ist als bei DCT. Bei JPEG2000 erzielt man geringere Datenmengen, bei gleicher Qualitt zu JPEG. Es stehen 256 Informationskanle fr diverse Bildbeschreibungen zur Verfgung. Weiters sind sehr komplexe Farbrume verarbeitbar und speicherbar. Die Bilder sind nach Gre, nach Auflsung oder nach Qualitt skaliert darstellbar.
Otto Liebminger 21.12.2011 Seite 39 von 49

Datenkompressionen

Level Of Interest Zugriff ! Die Datei endet mit *.jp2 .

6 MPEG Datenformat fr Videosignale


6.1 MPEG - bersicht
MPEG steht fr Motion Picture Expert Group, der allgemeinen Bezeichnung fr die Arbeitsgruppe, in der die MPEG-Spezifikationen entwickelt worden sind. Zu den MPEGFormaten gehren die Versionen 1, 2 und 4, die sich mit der Kodierung von Audio-/Videoinformationen befassen. MPEG ist ein Datenreduktionsverfahren fr bewegte Bilder und ist eine Weiterentwicklung des JPEG- Verfahrens. wogegen JPEG ein Kompressionsverfahren fr Einzelbilder ist. Durch den Erfolg von JPEG beschloss das internationale Normierungsgremium ISO, auch ein Normierungsprojekt fr bewegte Bilder und Audiokompression zu starten. So wurde die Motion Picture Expert Group ins Leben gerufen, nach der auch die Standards fr die Videokompression benannt sind. Mit MPEG werden Videobilder und die dazugehrigen Audiosignale komprimiert. 1991 wurde der Videokompressionsstandard MPEG-1 eingefhrt, der ca. VHS-Qualitt hat. 1995 wurde der Standard fr MPEG-2 eingefhrt. 1999 kam dann der MPEG-4 Standard, der viele neue Mglichkeiten bietet. Derzeit wird bereits an den neuen Standards wie MPEG-7 und MPEG-21 gearbeitet. MPEG-21 soll Planmig 2009 eingefhrt werden.

6.2 MPEG - Formate


MPEG-1 Audio/Video-Kodierung, Bitrate bis 1.5 Mbps Video-CD (Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s [ISO/IEC 11172-1 bis -5] ) MPEG-2 Audio/Video-Kodierung, Bitrate bis 15Mbps, diverse Profile Digitales Fernsehen, DVD (Generic coding of moving pictures and associated audio information [ISO/IEC 13818-1 bis -11] ) MPEG-4 Audio/Video-Kodierung fr mobile Systeme, objektbasierte Kodierung, extrem geringe Bitraten, vielfltige Optionen Coding of audio-visual objects [ISO/IEC 14496-1 bis -21] )

Otto Liebminger

21.12.2011

Seite 40 von 49

Datenkompressionen

MPEG-7 Meta-Kodierung, Medienbeschreibung und suche MPEG-21 geplantes universelles Multimedia Framework Die ursprnglich in der Nomenklatur vorgesehene Version MPEG-3, die speziell fr die Kodierung von hochauflsenden Videosignalen (z.B. fr HDTV und DVD) ausgelegt werden sollte, ist bereits Bestandteil von MPEG-2. Eine eigenstndige Fassung taucht deshalb nicht mehr auf. MPEG-3 ist im brigen in diesem Kontext nicht identisch mit der Audiokodierung MP3, deren korrekte Bezeichnung eigentlich MPEG-1 Audio Layer 3 lauten msste. ber die dargestellten Formate hinaus gibt es unter den Bezeichnungen MPEG-7, -21 und -A noch weitere Projekte, die sich jedoch nicht unmittelbar mit der Kompression von Audio- und Videodaten beschftigen.

6.3 Aufbau vom MPEG


Der MPEG-Videostrom ist in sechs Schichten aufgebaut. Diese Schichten werden auch als Layer bezeichnet.
-

Sequenz Layer: GOP Layer: Picture Layer: Slice Layer:

dieser steuert die Zwischenspeicherung der Bilddaten hier werden die Frames bertragen enthlt jeweils ein Einzelbild hier werden die Makroblcke mit passender Skalierung gespeichert Makroblock Layer: enthlt die Makroblcke bestehend aus unterschiedlich vielen Einzelblcken. Block Layer: beinhaltet die 8x8, also 64-Pixel groen Einzelblcke

Abbildung 23: Aufbau von MPEG Otto Liebminger 21.12.2011 Seite 41 von 49

Datenkompressionen

Der 8x8-Pixel Block ist die Eingabe in die diskrete Cosinus-Transformation (sowie bei JPEG), wobei vier Blcke jeweils zu einem Makroblock zusammengefasst wird, der die Ergebnisse der DCT in drei Matrizen speichert. Eine Matrize fr Helligkeit und zwei fr die Farben. Wie man erkennt, wird auch bei MPEG das RGB-Farbmodell auf die YUV-Darstellung reduziert. Dieser besagte Makroblock bildet dann als kleinste Einheit im MPEG-Strom die Grundlage fr die Bewegungscodierung.

Abbildung 24: 8x8 Pixel Codierung

Der nun so entstandene Videostrom wird, zusammen mit dem Audiodatenstrom, Elementarstrom genannt. Die zwei Elementarstrme werden dann ber ein Multiplexverfahren zum fertigen MPEG-Strom zusammengefasst.

Abbildung 25: MPEG-Codierung - Blockschaltbild Otto Liebminger 21.12.2011 Seite 42 von 49

Datenkompressionen

So komprimiert MPEG Zwischen aufeinanderfolgenden Bildern eines Filmes besteht eine sehr hohe hnlichkeit, auch Korrelation genannt. Daher kann man bei Videodaten eine deutlich hhere Kompression als bei JPEG erzielen. Weiters kann noch die Tatsache, dass bei einem Film oft Bildpunkte durch gemeinsame Bewegungen oder Kameraschwenks korrelieren, zur Komprimierung gentzt werden. Der MPEG-Algorithmus basiert im wesentlichen auf den gleichen Grundtechniken wie bei JPEG mit YCrCb-Farbraum, 8x8 DCT und Quantisierung. Jedoch wird bei MPEG nur der Huffman-Algorithmus mit fester Codeworttabelle verwendet und nicht wie bei JPEG dem arithmetischen Coder (Seriellisierung). Weiters ist es bei MPEG mglich, pro 8x8 Block zwischen mehreren Quantisierungsstufen zu whlen. Diese variable Quantisierung wird adaptive Quantisation genannt. Durch diese variable Quantisierung ist eine deutlich hhere Komprimierung als bei JPEG mglich. Der Nachteil ist jedoch, dass der Encoder fr die adaptive Quantisierung deutlich komplexer ist.

6.3.1 Es gibt 3 Arten von Bildern


Um das oben beschriebene Verfahren realisieren zu knnen, mssen die einzelnen Bilder der Videosequenz in bestimmte Typen von Einzelbildern (Frames) zerlegt werden. Normalerweise werden die einzelnen Szenen in 9 bis 15 Frames zerlegt. Das Anfangs und Ende einer Szene ist immer ein I-Frame. Die Bildfolge zwischen Anfangs- und Endframe wird Group of Picture (GOP) genannt, wobei die verschiedenen Frametypen unterschiedliche Aufgaben und Eigenschaften haben.

Abbildung 26: Zusammensetzung der Frames

Otto Liebminger

21.12.2011

Seite 43 von 49

Datenkompressionen

6.3.2 Aufgaben und Eigenschaften der unterschiedlichen Frame-Typen


I-Frame: steht fr Intra Coded Picture I-Frames sind Einzelbilder, die vllig eigenstndig codiert sind. Als Kompressionsverfahren wird hier im Normalfall die JPEG-Kompression verwendet, welches den Speicherplatz im Vergleich zum unkomprimierten Bild schon deutlich verringert. Bei den I_Frames wird allerdings die Eigenschaft der hnlichen Bilder nicht genutzt, sondern sie bilden vielmehr die Grundlage um bei den anderen Frames die hnlichkeit ausnutzen zu knnen. Deshalb brauchen die I-Frames den meisten Speicherplatz. Sie dienen der Aktualisierung des Ausgabepuffers. P-Frame: steht fr Predictted Coded Picture Der P-Frame wird aus Vorhersagen, die bezglich des vorangegangenen I- oder PFrame gemacht werden erstellt. Dabei werden nur die Unterschiede zur Vorlage codiert. Somit wird der Speicherplatzbedarf der P-Frames auf ca. ein Drittel reduziert. Wird ein Fehler bei der Vorhersage gemacht, setzt sich dieser Fehler bis zum nchsten I-Frame fort und somit entstehen Bildstrungen. B-Frame: steht fr Bidirectionally Predictted Coded Picture B-Frames sind die Erweiterungen zu den P-Frames. Bei den B-Frames wird auf den vorhergegangenen und den nachfolgenden I- oder PFrames referenziert. So wird also eine Zwischenbild erzeugt, das noch weniger Speicherplatz bentigt, allerdings auch so wenig Bildinformation beinhaltet, dass BFrames niemals als Referenzbilder fr irgendein anderes Frame benutzt werden knnen. Zustzlich gibt es noch bei MPEG-1 die sogenannten D-Frames. Diese D-Frames enthalten nur niederfrequente Bildanteile und werden fr schnellen Vor- und Rcklauf bentigt. Diese Frames haben aber fr die eigentliche Videosequenz keine Bedeutung und treten daher auch in keiner GOP auf. Die Lnge der GOP hngt allein von der Codierung ab. Die Standardeinstellung liegt bei 15 Frames pro GOP, allerdings ist fr bessere Videoqualitt auch die Mglichkeit vorhanden, die GOP auf 9 oder weniger Einzelframes zu reduzieren. Dies fordert jedoch mehr Speicherplatz, da mehr I-Frames notwendig sind. Ebenso wird die erforderliche Rechenleistung erhht.
hoch <------------------------------------------------- niedrig Informationsgehalt | I - Bilder | | P - Bilder | | B - Bilder |

Kompressionsgrad niedrig -------------------------------------------------> hoch

Otto Liebminger

21.12.2011

Seite 44 von 49

Datenkompressionen

6.4 MPEG-1
Titel: Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s Die Entwicklung von MPEG-1 hat 1988 begonnen und ist seit Anfang der 90er-Jahre in einer ersten Generation von Produkten zur Anwendung gekommen. Schwerpunkt von MPEG-1 ist die Kodierung bei Datentransferraten, die durch die damals gebruchlichen Parameter fr die CD-ROM (Video) und ISDN (Audio) vorgegeben waren. Mit Ausnahme der MP3-Audio-Kodierung ist MPEG-1 mittlerweile von untergeordneter Bedeutung, da die zugrunde liegenden Annahmen ber maximale Datentransferrate, Speichervolumen der Datentrger und Zwischenspeicherkapazitt berholt sind. Mittlerweile lassen sich auch die wesentlich anspruchsvolleren MPEG-2-Datenstrme softwareseitig auf Standard-PCs dekodieren. Das Datenformat wurde so ausgelegt, dass die normale TV-Auflsung von 720x576 auf ein Viertel der Bildpunkte, also 352x288 Pixel reduziert wird. Es wurde die gleiche Datenrate wie bei Audio-CDs, also 1,5MBit/s festgelegt. Bei MPEG-1 ist daher keine variable Bitrate mglich.Dadurch knnen maximal 396 Makroblcke gespeichert werden. Beim Audiostrom gibt es die Mglichkeit den MPEG-1 Layer III, kurz MP3, also mono oder stereo, mit einer Frequenz von 32-48kHz und einee Datenrate zwischen 64 bis 192 Kbit/s zu speichern. Ein Problem bei MPEG-1 ist die extreme Komprimierung, durch die die Bildqualitt sichtlich leidet. Besonders bei schnellen Bewegungsablufen, wie zum Beispiel bei Aktionsszenen , fllt auf, dass die Bewegungsvoraussage bei der Erstellung der PFrames oft nicht zutrifft und so der Bildfehler bis zum nchsten I-Frame mitgeschleppt wird. Eine weitere Fehlerquelle ist die Aufteilung der Bilder in 8x8 Pixel Blcke und deren Umrechnung mit Hilfe der DCT. Das Bild wirkt auf der einen Seite oft eckig und auf der anderen Seite wieder verwaschen. Dadurch sind die Kanten oft nicht klar und es knnen Artefakte im Bild auftreten. Ein weiterer Nachteil ist, dass dunkle Bilder auf Grund der Helligkeitsanpassung oft zu dunkel werden und nichts mehr erkennbar ist. Ebenso werden sehr hell Bilder oft berbelichtet. Ebenso fehlt durch die fest vorgegebene Auflsung und Datenrate die Mglichkeit professioneller Videobearbeitung. Aufgrund dieser Nachteile wurde der MPEG-2 Standard entwickelt, welcher eine weitaus bessere Qualitt liefert. Anwendungen MPEG-1: MP3-Player (MPEG-1 Audio Layer 3) Die reine Layer-3-Audio-Kodierung von MPEG-1 stellt die bis heute erfolgreichste Anwendung dar. Mittlerweile greifen auch hier Erweiterungen und Weiterentwicklungen (z.B. AAC). Audio On Demand (MPEG-1 Audio Layer 3)
Otto Liebminger 21.12.2011 Seite 45 von 49

Datenkompressionen

Die ersten Projekte fr Audio-On-Demand-Services haben mit zwei parallelen ISDNLeitungen gearbeitet. Dadurch lie sich eine Versorgung der Kunden in Echtzeit realisieren. Diese Rahmenparameter lieferten u.a. die mageblichen Grenzwerte bei der Dimensionierung des dritten Audio-Layers. DCC (Digital Compact Cassette; MPEG-1 Audio Layer 2) Die DCC sollte als digitales Nachfolgesystem zur analogen Kassette dienen. Das lineare Bandsystem arbeitete mit Audio Layer 2 und war bei geeigneter Enkodierung in der Lage CD-hnliche Qualitt zu erreichen. Im Gegensatz zu dem damaligen Konkurrenzsystem MiniDisc (Sony), das anstelle von MPEG-1 ein ATRAC-Format einsetzt, konnte sich die DCC nicht am Markt durchsetzen. CD-I FMV (CD-Interactive Full Motion Video) Die CD-I, ein fr Heimanwendungen vorgesehener interaktiver CD-Player mit multimedialen Funktionen, ist eine der ersten direkten Anwendungen von MPEG-1Video gewesen. Das CD-I-System basierte auf der einfachen Standardgeschwindigkeit fr die Audio-Wiedergabe (75 Frames/s * 2048 Byte/Frame = 153.600 KByte/s bzw. 2324 Byte/Frame = 174.300 Byte/s) und hat damit die Rahmenbedingungen fr die maximale berertragungsrate von MPEG-1 gesetzt. Das CD-I-System konnte sich nicht am Markt etablieren. CD-ROM-XA-Video Um eine ausreichende Rechenkapazitt mit der geforderten Echtzeitfhigkeit zur Verfgung zu stellen sind spezielle Lsungen mit separaten Hardware-Dekodern erschienen. Aufgrund des Preises und der begrenzten Qualitt von MPEG-1 erreichten diese Produkte keine grere Verbreitung. Fr die Vorgaben bezglich der Datentransferrate gelten die gleichen Aussage wie bei der CD-I erwhnt.

6.5 MPEG-2
Titel: Generic coding of moving pictures and associated audio information MPEG-2 orientiert sich an einer qualitativ besseren Ausnutzung der Ressourcen und fhrt Mehrkanal-Verfahren fr die Audio-Kodierung ein. Es sind im Vergleich zu MPEG-1 wesentlich grere Datentransferraten und damit verbunden eine erheblich bessere Bildqualitt mglich. Auerdem sind weiterreichende Funktionen fr die Skalierung von Auflsung, Bildwiederholungsrate und Quantisierung spezifiziert. Die technische Grundlage wurde beim bergang von MPEG-1 auf MPEG-2 im Prinzip nicht verndert. Als einzige Neuigkeit in diesem Bereich wurde die Mglichkeit Szenen auch als Halbbildfolge zu codieren eingefhrt. Die grte Verbesserung bei MPEG-2 lag schlicht und einfach an der um lngen greren Flexibilitt. Statt der fest vorgegebenen Bitrate von 1,5MBit/s ist hier eine variable Bitrate von 4Mbit/s bis maximal 100Mbit/s mglich. Was einer Auflsung zwischen 352x288 und 1920x1152 Pixel erlaubt, welche bei der Codierung frei skalierbar ist.

Otto Liebminger

21.12.2011

Seite 46 von 49

Datenkompressionen

Durch die variable Bitrate ist eine zustzliche Kompression mglich, da sie den Anforderungen des Bildes angepasst werden kann. Das folgende Bild veranschaulicht sehr gut die Anforderungen des Bildes und dazu den Unterschied zwischen konstanter und variabler Bitrate.

Abbildung 27: Feste und variable Bitrate

Somit kann also bei einfachen Bildern die Datenmenge verringert werden. Der dadurch gewonnene Speicherplatz kann fr komplexere Bilder verwendet werden. Zustzlich kann der Audiostrom Fnf-Kanal-Surround-Informationen sowie verschiedene Datenraten und Kompressionsformate wie MPEG Audio Layer I oder III mit zustzlicher AC3-Codierung enthalten. MPEG-2 kommt fr die S-Video CD, Video-DVD, digitale Videobroadcasting und Videoservern von Fernsehanstalten zur Anwendung. Die bekannteste Applikation ist die DVD-Video, die in allen Versionen mit MPEG-2 kodierten Videodaten arbeitet. Bei der Audio-Kodierung ist, zumindest von der Spezifikation her, sowohl MPEG, als auch das AC-3-Format der Firma Dolby vorgesehen.

6.6 MPEG-4
Titel: Coding of audio-visual objects Mit dem neuen Format MPEG-4 wurden ganz neue Ziele gesetzt. Whrend bei MPEG-1 und MPEG-2 das Ziel der Entwicklung allein bei der effektiven Kompression und Speicherung von Videodaten lag, betritt MPEG-4 ein vllig neues Aufgabengebiet. Mit MPEG-4 sind unzhlige neue Anwendungsgebiet abgedeckt, wie zum Beispiel Internet Multimedia, interaktive Videospiele, Videokonferenzen, Videotelefonie, netzwerkbasierende Datendienste oder drahtloses Multimedia. MPEG-4 fokussiert vornehmlich auf komplexen Verfahren, die zur Erlangung von besonders niedrigen Kompressionsraten erforderlich ist. Damit werden insbesondere Echtzeitbedingungen bei reduzierten Systemressourcen angesprochen.

Otto Liebminger

21.12.2011

Seite 47 von 49

Datenkompressionen

7 Literaturverzeichnis
/1/ http://www.fh-jena.de/contrib/fb/et/personal/ansorg/ftp/kodierung/sld019.htm /2/ http://www-ra.informatik.uni-tuebingen.de/lehre/ws03/pro_internet_ausarbeitung/07_MPEG_Datenformate_fuer_Videosignale.pdf /3/ http://www.unibw-muenchen.de/campus/RZ/RZN/AS/mm/Benutzeranleitungen/mm-mpeg.pdf /4/ http://www.minet.uni-jena.de/~sack/WS0304/seminar/arbeiten/heimann/pres.pdf /5/ http://www.medizin.uni-tuebingen.de/medienabteilung/downloads/Wof%FCr%20steht%20MPEG.pdf /6/ http://www.informatik.uni-mannheim.de/pi4/lectures/ws0102/multimedia/mm2b-1.pdf /7/ http://www6.in.tum.de/lehre/seminare/ps_ws0203/dzugan.pdf /8/ http://tech-www.informatik.uni-hamburg.de/lehre/ss2004/vorlesungen/medientechnik/09-mpeg.pdf [1] Abel, J. "Improvements to the Burrows-Wheeler Compression Algorithm: After BWT Stages"; Vorabdruck, eingereicht an das ACM im Mrz 2003, http://www.datacompression.info/JuergenAbel/Preprints/Preprint_After_BWT_Stages.pdf; 2003. [2] Arnavut, Z., Magliveras, S.S.; "Block sorting and compression"; Proceedings of the IEEE Data Compression Conference; 1997. [3] Balkenhol, B., Kurtz, S.; "Universal Data Compression Based on the Burrows-Wheeler Transformation: Theory and Practice"; IEEE Transactions on Computers; 49(10); 2000. [4] Balkenhol, B., Shtarkov, Y.M.; "One attempt of a compression algorithm using the BWT"; Discrete Structures in Mathematics, Mathematische Fakultt, Universitt Bielefeld; 1999. [5] Bell, T.C., Witten, I.H., Cleary, J.G.; Calgary Corpus: "Modeling for text compression"; Computing Surveys 21(4): 557-591; 1989. [6] Bodden, E., Clasen, M., Kneis J.; "Arithmetische Kodierung"; Lehrstuhl fr Informatik IV der RWTH Aachen, 2001. [7] Burrows, M., Wheeler, D.J.; "A block-sorting lossless data compression algorithm"; Technical report, Digital Equipment Corporation, Palo Alto, California; 1994. [8] Deorowicz, S.; "Improvements to Burrows-Wheeler compression algorithm"; Software Practice and Experience, 30(13), 1465-1483;2000. [9] Deorowicz, S.; "Second step algorithms in the Burrows-Wheeler compression algorithm", Software Practice and Experience, 32(4),99-111, 2002. [10] Fenwick, P.M.; "Block-Sorting Text Compression - Final Report"; The University of Auckland, New Zealand, Technical Report130; 1996. [11] Gailly, J.L., Adler, M.; "The GZIP program", Version 1.2.4; 1993. [12] Itoh, H., Tanaka, H.; "An Efficient Method for Construction of Suffix Arrays"; IPSJ Transactions on Databases, Abstract Vol.41,No. SIG01 - 004; 1999. [13] Kao, T.-H; "Improving Suffix-Array Construction Algorithms with Applications". Master's thesis, Department of Computer Science,Gunma University, Japan; 2001. [14] Kurtz, S.; "Reducing the Space Requirement of Suffix Trees"; Report 98-03, Technische Fakultt, Universitt Bielefeld; 1998. [15] Larsson, N.J. "Structures of String Matching and Data Compression". PhD thesis, Department of Computer Science, Lund University, Schweden; 1999. [16] Lempel, A., Ziv, J.; "A Universal Algorithm for Sequential Data Compression"; IEEE Transactions on Information Theory,23(3):337-343, 1977. Otto Liebminger 21.12.2011 Seite 48 von 49

Datenkompressionen [17] Moffat, A.; "Implementing the PPM data compression scheme"; IEEE Transactions on Communications, 38,1917-1921; 1990. [18] Nelson, M.; "Data compression with the Burrows-Wheeler transform"; Dr. Dobbs' Journal; September 1996. [19] Sadakane, K.; "Improvements of Speed and Performance of Data Compression Based on Dictionary and Context Similarity"; Master's thesis, Department of Information Science, Faculty of Science, University of Tokyo, Japan; 1997. [20] Seward, J.; "The BZIP2 program 1.0.2"; http://sources.redhat.com/bzip2; 2001. [21] Shkarin, D; "PPM: One step to practicality"; Proceedings of the IEEE Data Compression Conference 2002, Snowbird, Utah, Storer, J.A. and Cohn, M. Eds. 202-211; 2002. [22] Willems, F.M.J., Shtarkov, Y.M., Tjalkens, T.J.; "The Context Tree Weighting Method: Basic Properties"; IEEE Transactions on Information Theory, Vol. IT-41 (3), 653-664; 1995. [23] Witten, I., Neal, R., Cleary, J.; "Arithmetic Coding for Data Compression", Communication of the ACM, 30(6) 520 -540; 1987. Unterlagen von Prof. Dr. Keller Labor 2004 TGM Wien

Otto Liebminger

21.12.2011

Seite 49 von 49