Inhaltsverzeichnis - TGM - Technisches Gewerbemuseum

Werbung
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 __________________________ 28
4.1 Es gibt zwei grundsätzliche Arten von Graphiken: ____________________ 28
4.1.1 Rastergraphik __________________________________________ 28
4.1.2 Vektorgraphik __________________________________________ 30
5 JPEG – Graphikformat für 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 für Videosignale ____________________ 40
6.1 MPEG - Übersicht ____________________________________________
6.2 MPEG - Formate _____________________________________________
6.3 Aufbau vom MPEG ___________________________________________
6.3.1 Es gibt 3 Arten von Bildern ________________________________
6.3.2 Aufgaben und Eigenschaften der unterschiedlichen Frame-Typen __
6.4 MPEG-1 ____________________________________________________
6.5 MPEG-2 ____________________________________________________
6.6 MPEG-4 ____________________________________________________
40
40
41
43
44
45
46
47
7 Literaturverzeichnis ___________________________________ 48
Otto Liebminger
14.05.2016
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 zurück. Stets sind die verfügbaren Resourcen, wie
Speicherplatz oder Datenübertragungswege, beschränkt gewesen bzw. erforderten
entsprechende Investitionen.
Dieser Umstand hat sich bis zum heutigen Tage erhalten und durch den Einsatz von
immer aufwendigeren Inhalten noch weiter verstärkt. Nahezu alle multimedialen Daten,
wie z.B. Bild- oder Videodaten, werden heutzutage in komprimierter Form verwendet.
Begünstigt wird diese Entwicklung durch die steigende Leistungsfähigkeit der
erhältlichen Hardware.
Mittlerweile steht eine Vielzahl von Verfahren zur Verfügung; entwickelt mit dem Ziel, die
stark voneinander abweichenden Anforderungen zu erfüllen. 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 für die digitale Speicherung, Verarbeitung und Übertragung von medialen Daten
und ihre integrierte Verwendung in multimedialen Systemen. Die große Bandbreite
existierender Verfahren erlaubt den gezielten Einsatz für einen gegeben
Anwendungsfall.
Otto Liebminger
14.05.2016
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
aufgeführt, die in der Praxis Verwendung finden:
Text
Die Buchstaben des Alphabets treten in Texten mit unterschiedlicher Häufigkeit
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 Komplexität der
dargestellten Inhalte. Insbesondere bei einfarbigen Flächen oder gleichmäßigen
Mustern ist diese besonders gering. Derartige Bereiche können mit erheblich
weniger Aufwand dargestellt werden, als Bereiche mit detaillierteren Bildinhalten.
Audio
Audiodaten variieren ebenfalls hinsichtlich ihrer Komplexität. Wenn sie lediglich
einen gleich bleibenden Ton repräsentieren, benötigt man für 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, während der Rest unverändert bleibt. Bei einem Sprecher, der im Studio
vor einem unveränderten Hintergrund sitzt, brauchen lediglich die sich ändernden
Bereich im Gesicht übertragen zu werden. Für 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
ursprünglichen 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 ursprünglichen Eingangsdatei unterscheiden und mehr
oder weniger große Abweichungen aufweisen.
Otto Liebminger
14.05.2016
Seite 4 von 49
Datenkompressionen
Der Vorteil der Verlustbehafteten gegenüber 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
Datenintegrität 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 Verhältnis der
Größe der Ausgangsdatei zu der Größe 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 Qualitätsverlust in Kauf
genommen werden, der mit steigender Kompressionsrate in der Regel expotentiell
ansteigt.
Darüber hinaus bietet aber auch die Auswahl des Verfahrens bzw. der eingesetzte
Kodierungsaufwand die Möglichkeit das Datenvolumen zu beeinflussen. So ergeben
photorealistische Bilder im jpg-Format bei gleicher Bildqualität 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 Datenträger, steht normalerweise nur eine bestimmte Übertragungsrate zur
Verfügung, die wesentlich kleiner ist als die unkomprimierten Originaldaten. Um
dennoch eine akzeptable Qualität zu erhalten, muss das Kompressionsverfahren an
diese Gegebenheiten angepasst werden.
Dabei können Verfahren zum Einsatz kommen, die mit konstanter Datenübertragungsrate arbeiten (z.B. MPEG-1 Full Motion Video mit 150 KByte/s). Bei aufwendigeren
Verfahren, wie der mpeg-2-Kodierung für 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 zulässigen Maximalwert (z.B. 10
MBit/s) ansteigen kann. Darüber hinaus legt die Spezifikation fest, wie lange die
Abweichung über den Mittelwert hinaus andauern kann, damit die Hardware dafür
ausgelegt werden kann.
Otto Liebminger
14.05.2016
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 läst 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 zurück 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 können beispielsweise in GIF lediglich 256 unterschiedliche
Farben kodiert werden. Alle darüber 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
 Lauflängenkodierung ( Run-Length Encoding - RLE )sowie
 Lempel-Ziv-Methoden ( LZ )[16].
Bei statistischen Verfahren gibt ein Datenmodell die Wahrscheinlichkeiten für das
jeweils nächste Zeichen an, und ein Kodierer erzeugt eine möglichst kurze Bitfolge aus
diesen Wahrscheinlichkeiten.
Beispiele für statistische Verfahren sind die
 Huffman-Kodierung und die
 arithmetische Kodierung [23].
Im Jahre 1994 wurde ein neues Verfahren, welches nicht sequentiell sondern auf
ganzen Blöcken arbeitet, von David Wheeler und Michael Burrows eingeführt [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
einschließlich 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
14.05.2016
Seite 6 von 49
Datenkompressionen
welches im Jahre 1999 von Larsson erweitert worden ist [15]. Im Jahre 1998
präsentierte Kurtz für die Burrows-Wheeler-Transformation einige Implementierungen
von Suffixbäumen, 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 für Folgen von sich wiederholenden
Zeichen optimiert worden ist [13].
Auch die der Burrows-Wheeler-Transformation nachgeordneten Stufen sind
Gegenstand zahlreicher Untersuchungen gewesen. Hierzu zählen 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
Grundsätzlich besteht ein Burrows-Wheeler-Kompressionsalgorithmus aus drei Stufen,
denen gegebenenfalls noch weitere Vorverarbeitungsstufen vorgeschaltet sein können.
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
anschließend an die nächste Stufe weitergegeben. Die Blockgröße liegt im Bereich von
einem oder mehreren Megabyte, wobei größere Blockgrößen in der Regel eine bessere
Kompression nach sich ziehen, aber neben höherem Speicherbedarf auch eine höhere
Verarbeitungsgeschwindigkeit zur Folge haben.
Um die komprimierten Daten wieder zu dekomprimieren, werden die Stufen in
rückwärtiger Reihenfolge durchlaufen, wobei die einzelnen Transformationen durch die
entsprechenden Rücktransformationen ersetzt werden.
Die erste Stufe des Algorithmus ist die Burrows-Wheeler-Transformation (BWT). Die
BWT ist eine Permutation der Eingabezeichen. Die Häufigkeiten der einzelnen Zeichen
werden nicht geändert. Es findet durch die BWT daher keine Kompression statt,
diese erfolgt erst in späteren Stufen. Aufgabe der BWT ist es, Zeichen mit ähnlichem
Kontext nahe beieinander anzuordnen, wodurch die nachfolgenden Stufen die Daten
besser verarbeiten können.
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 überführt. Für die GST existieren eine ganze Reihe von
unterschiedlichen Verfahren. Meistens wird dabei jedes Zeichen aus der BWT-Ausgabe
in einen Index transformiert, wobei häufig 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 möglichst 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 möglichst gut komprimiert werden
können. Je nach Implementierung können hierzu sowohl Huffmankodierungen [7][20]
als auch arithmetische Kodierungen [3][8][10] eingesetzt werden. Huffmankodierungen
bieten den Vorteil einer höheren 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 binären Nachkommastellen. Zur Erzeugung der
Nachkommastellen dienen die Wahrscheinlichkeiten des adaptiven Modells.
Otto Liebminger
14.05.2016
Seite 7 von 49
Datenkompressionen
Abbildung 1: Schema des Burrows-Wheeler-Kompressionsalgorithmus
3.4.1 Run-Length Encoding ( RLE )
Lauflängenkodierungen gehören 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 kürzere Folge und eine Lauflängeninformation.
Da die BWT aufgrund Ihrer Sortierung eine große 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 Unterstützung der folgenden
Weighted-Frequency-Count-Stufe (WFC) [9], da sie zwei Vorteile bietet. Zum einen führt
die Verkürzung der Folgen zu einer besser zu komprimierenden Indexfolge innerhalb
der WFC. Zum anderen ist eine RLE wesentlich schneller als eine WFC, und trägt damit
insgesamt zu einer höheren Verarbeitungsgeschwindigkeit bei [1].
Für die RLE existieren viele unterschiedliche Techniken, welche sich in der Länge der
zu ersetzenden Folgen sowie in der Art und Weise unterscheiden, wie die Lauflängen
kodiert werden. Im vorliegenden Fall wurde eine Technik gewählt, welche eine Folge
gleicher Zeichen, die eine Länge von mehr als einem Zeichen besitzt, durch
eine Folge ersetzt, deren Länge dem binären Logarithmus der ursprünglichen Länge
plus Eins entspricht. Die restlichen Lauflängeninformationen werden nicht - wie bei den
meisten RLE-Techniken - als Zahl hinter die verkürzte Folge geschrieben. Stattdessen
werden sie als Bitfolge in einen separaten Datenstrom umgeleitet, der direkt zur
Entropiekodierung (EC) geführt wird, wie in Abbildung 2 ersichtlich ist.
Abbildung 2: Schema der erweiterten Variante des Burrows-Wheeler-Kompressionsalgorithmus
Dadurch behindern die Lauflängeninformationen nicht die Indexbildung der WFC.
In früheren 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 zurück und wurde von Fenwick in seinem BWT-Forschungsbericht
beschrieben [10]. Der Einsatz direkt hinter der BWT geht auf eine Idee von Gringeler
zurück und wurde von Abel im Jahre 2003 erstmals erwähnt [1]. Es stellt aus den oben
genannten Gründen die bessere Alternative dar.
Otto Liebminger
14.05.2016
Seite 8 von 49
Datenkompressionen
In Abbildung 3 ist ein Beispiel aufgeführt, bei welchem die Ausgabedaten
jeder Stufe für die Eingabedaten ABRAKADABRAABRAKADABRAABRAKADABRA (a)
aufgeführt 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 Lauflängenkodierung der RLE
auf eine kleinere Länge reduziert (c). Die Daten werden anschließend 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).
Für die BWT-Eingangsdaten ABRAKADABRAABRAKADABRAABRAKADABRA ist in
Abbildung 3 (c) die Ausgabe der RLE aufgeführt.
Abbildung 3: Transformierte Daten nach jeder Stufe der erweiterten Variante
für 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
14.05.2016
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 müssen
jeweils die niederwertigen und den höherwertigen 4 Bit des Bytes die gleichen Inhalte
enthalten. Der Zähler 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, müssen im absoluten Mode die Kodierungen ggfls.
an der Wortgrenze aufgefüllt 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
50
56
56
56
00
00
70
78
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
MS-Windows .bmp RLE8
Das RLE8-Kompressionsverfahren ist ausschließlich für 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
14.05.2016
Seite 10 von 49
Datenkompressionen
Microsoft unterscheidet zwischen dem "Encoded Mode", der RL-kodierte Sequenzen
enthält und dem "Absolute Mode", der unkodierte Originaldaten beinhaltet. Darüber
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
ursprünglichen 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
Veröffentlichungsdatum ist dieser Algorithmus unter dem Kürzel LZ77 bekannt.
Prinzip:
LZ77 ist ein wörterbuchbasierendes Verfahren, dass anstelle der Originaldaten,
Rückgriffe 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 Sequenzlänge 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 Sequenzlänge 0
und das betroffene Zeichen kodiert.
Beispiel "abrakadabra":
abrakadabra
a brakadabra
ab rakadabra
abr akadabra
abrak adabra
abrakad abra
Otto Liebminger
Adr.
0
0
0
3
2
7
Länge
0
0
0
1
1
4
abw. Zeichen
'a'
'b'
'r'
'k'
'd'
''
14.05.2016
Seite 11 von 49
Datenkompressionen
Bedingt durch die Ergänzung jeder Sequenz mit dem ersten abweichenden Zeichen
erhöht sich der Werteumfang der kodierbaren Zeichen, ohne von dem standardisierten
Format abzuweichen. Das ermöglicht eine einfache Umsetzung des Algorithmus mit
minimalen Anforderungen an die Resourcen von Enkoder und Dekoder.
Rahmenbedingungen:
Damit Rechenzeit und Speicherbedarf für Enkoder und Dekoder in einem
überschaubaren Rahmen gehalten werden können, ist die Adresse durch einen
Maximalwert begrenzt. Über diesen Bereich hinausgehende Übereinstimmungen fließen
nicht in die Kodierung ein und finden bei der Dimensionierung der Adressgrößen keine
Berücksichtigung.
Kodierungseffizienz:
Bei einem linearem Wertebereich für Adresse und Sequenzlängen 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 läst 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 Wörterbuch begründet, signifikante
Gewinne lassen sich mit LZ77-Kodierung erst bei größeren 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.
Veröffentlicht 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 Wörterbuch. Das Wörterbuch bilden wie bei der LZ77-Kodierung die bereits
kodierten Quelldaten, auf die in der Form (Adresse + Sequenzlänge) zugegriffen wird.
Beispiel:
abrakadabra
abrakad(1,4)
Als Zeiger werden nur Sequenzen kodiert, die eine bestimmte Minimallänge
überschreiten, d.h. bei der die Substitution sinnvoll ist. Darin besteht der hauptsächliche
Unterschied zu LZ77, bei dem immer in der Form (Adresse + Länge + 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 binäre Suchbäume
eingesetzt, die den kodierbaren Inhalt aufnehmen und eine zeitaufwendige lineare
Suche ersparen.
Otto Liebminger
14.05.2016
Seite 12 von 49
Datenkompressionen
Lempel-Ziv-78 (LZ78)
Ein Jahr nach der Veröffentlichung 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 für LZ78 ist ein explizit geführtes Wörterbuch, das zur Laufzeit, sowohl während
der Enkodierung als auch während der Dekodierung, aufgebaut wird. In dieses
Wörterbuch werden alle bereits kodierten Zeichenketten eingetragen. Kodiert wird der
Inhalt in der Form:


Index auf den Eintrag im Wörterbuch
erstes abweichendes Zeichen
Im Gegensatz zu LZ77 wird hier keine Kombination aus Adresse und Länge der
Zeichenkette, sondern lediglich der Index auf eine Tabelle gespeichert. Die Architektur
mit dem ersten Zeichen, für das keine Übereinstimmung im Wörterbuch gefunden
wurde, bleibt erhalten.
Beispiel "abrakadabra":
abrakadabra
a brakadabra
ab rakadabra
abr akadabra
abrak adabra
abrakad abra
abrakadab ra
Index
0
0
0
1
1
1
3
abweichendes
Zeichen
'a'
'b'
'r'
'k'
'd'
'b'
'a'
neuer Eintrag
Wörterbuch
1 "a"
2 "b"
3 "r"
4 "ak"
5 "ad"
6 "ab"
7 "ra"
Der Aufbau des Wörterbuchs vollzieht sich verhältnismäßig langsam, relevante
Kompressionsleistungen werden erst bei größeren Datenmengen erreicht. Darüber
hinaus ist die Kompressionsleistung unmittelbar von der Größe des Wörterbuchs
abhängig. Allerdings steigt damit der Aufwand für die Administration, die zur Laufzeit
aufgeführt werden muss.
Für die praktische Implementation wird das Wörterbuch in einer Baumstruktur
ausgeführt, um den Aufwand für das Durchsuchen der Einträge zu minimieren.
Beginnend mit dem aktuellen Zeichen durchläuft 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, läst sich
der Dekoder mit einer indizierten Tabelle realisieren.
Im Zuge der Kodierung wächst das Wörterbuch immer weiter an, so dass die
Adresslänge für die Indizierung, der Speicherplatz- und der Laufzeitbedarf permanent
zunimmt. Deshalb muss eine Begrenzung des Wörterbuchs erfolgen. Ist dieses gefüllt,
so sind Mechanismen zur Aktualisierung erforderlich.
Auf LZ78 setzen verschiedene Verfahren auf, u.a. auch das weit verbreitete LZWVerfahren.
Otto Liebminger
14.05.2016
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 großer
praktischer Bedeutung sind. So setzen z.B. die Graphikformate gif, tif (optional) und
Postscript (optional) LZW zur verlustlosen Datenkompression ein.
Prinzip:
LZW entwickelt während der Kodierung ein Wörterbuch, das die bereits kodierten
Zeichen aufnimmt. In den kodierten Daten sind lediglich die Indizes der Einträge in
diesem Wörterbuch enthalten. Die ersten 256 Einträge werden mit den einzelnen
Zeichen vorbesetzt. Alle nachfolgenden Einträge repräsentieren längere Zeichenketten.
Der von Terry A. Welch vorgestellte Algorithmus definiert den Aufbau des Wörterbuchs
und beinhaltet Mechanismen, die sicherstellen, dass die Wörterbücher 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 Häufigkeit bestimmter Werte entscheidend. Häufig
auftauchende Werte erhalten eine kurze Bitfolge, selten auftretende Werte hingegen
eine Lange. Daher ermittelt der Algorithmus zunächst 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. Außerdem 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 während des
Durchlaufs durch die Daten aufbaut und sogar verändert werden kann, was
gegebenenfalls bedeutet, dass gleiche Daten verschieden kodiert werden können, weil
sich zwischenzeitlich der Codebaum verändert 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 Zähler verändert;
ist ein Zeichen bereits im Codebaum vorhanden, so wird nur sein Zähler inkrementiert.
Wird der Zählerwert größer als ein bereits vorhandener Wert, so wird dieser Knoten mit
dem größten Knoten mit dem Zählerwert Z vertauscht. Auf diese Weise wandert ein in
einem gewissen Kontext häufiger auftretendes Zeichen immer höher im Codebaum und
wird somit mit immer kürzerer Bitfolge kodiert. Dieses Konzept wird bei verschiedenen
adaptiven Techniken angewendet.
Otto Liebminger
14.05.2016
Seite 14 von 49
Datenkompressionen
Die einfache Huffman-Kodierung stellt eine algorithmische Umsetzung der
informationstheoretischen Regel dar, möglichst gleichwahrscheinliche Teilmengen der
zu kodierenden Werte zu verwenden, um eine (sub-) optimale Kodierung zu erhalten.
Sie erzeugt einen binären Baum, dessen Blätter den Zeichen entsprechen, und der zu
jedem Knoten zwei Nachfolger (0, 1) besitzt. Eine Kodierung verwendet jeweils ein
entsprechendes Anfangsstück.
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 Häufigkeit repräsentiert. Das gleiche geschieht mit den nächsten 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 erhält eine 0, jede Rechtsverzweigung ist
durch eine "1" gekennzeichnet. In unserem kleinen Beispiel wäre der weniger häufige
Wert 4 durch die Bitfolge 010 repräsentiert. Der häufigste Wert 6 bekommt dagegen
eine schlichte 1 zugeordnet.
Abbildung 6: Eine lange Bitfolge kennzeichnet einen selten auftretenden
Wert, häufige 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 Häufigkeit in
einer Liste sortiert.
2. Solange die Liste der Knoten noch mehr als ein Element enthält:
a.)
b.)
c.)
Entnehme die beiden Elemente mit der geringsten Häufigkeit der Liste und
erzeuge einen Elternknoten hierfür.
Weise die Summe der Häufigkeiten der Kinder dem Elternknoten zu und füge
diesen Knoten der Liste zu.
Den Zeigern des Elternknoten wird der Code 0, 1 zugeordnet (Reihenfolge im
Prinzip beliebig).
Otto Liebminger
14.05.2016
Seite 15 von 49
Datenkompressionen
Abbildung 7: Beispiel eines Hufman-Baums ( ALLER ANFANG IST SCHWER )
ALLER ANFANG IST SCHWER
Anzahl der Bits für
h*Code-Bits
h/*log2(h/)
Häufigkeit h
-log2(h/)
Code
3
2,93859946
111
3
0,38329558
9
A
3
2,93859946
110
3
0,38329558
9
E
2
3,52356196
101
3
0,30639669
6
L
2
3,52356196
1001
4
0,30639669
8
N
2
3,52356196
1000
4
0,30639669
8
R
2
3,52356196
011
3
0,30639669
6
S
2
3,52356196
0101
4
0,30639669
8
C
1
4,52356196
0100
4
0,19667661
4
F
1
4,52356196
0011
4
0,19667661
4
G
1
4,52356196
00101
5
0,19667661
5
H
1
4,52356196
00100
5
0,19667661
5
I
1
4,52356196
0001
4
0,19667661
4
T
1
4,52356196
00001
5
0,19667661
5
W
1
4,52356196
00000
5
0,19667661
5
=
23
56
3,67531087
86
Zeichen
Kodierung
Im obigen Beispiel werden 86 Bits zur Kodierung des Textes "ALLER ANFANG IST
SCHWER" benutzt, während eine Kodierung der 14 verschiedenen Zeichen mit jeweils
während die
wahre Entropie in diesem Beispiel 86/23 = 3,739 ist, also nahe an der ideellen Entropie
liegt.
Otto Liebminger
14.05.2016
Seite 16 von 49
Datenkompressionen
Grundsätzlich stellt sich die Frage, ob die Huffman-Kodierung jeweils eine bessere
Kodierung ergibt als eine Kodierung mit Hilfe gleichlanger Wörter.
Die Antwort ist überraschenderweise ja, solange die absolute Häufigkeit 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 Wörtern
mit gleichlangen Wörtern. Habe jetzt das Zeichen i eine Häufigkeit hi, die größer ist als
die Summe der Häufigkeiten zweier anderer Zeichen j und k: hi>hj+hk, so lässt sich das
erste Zeichen mit N-1 Bits kodieren, es rückt im Baum eine Ebene nach oben, während
sich die anderen mit jeweils N+1 Bits kodieren lassen; sie sacken eine Ebene tiefer. Die
Kodierung wird sich für das Zeichen i um hi Bits verringern, während sie sich für die
Zeichen j und k um hj+hk Bits vergrößern wird; der Gewinn beträgt also hi-hj-hk Bits und
ist somit positiv.
Abbildung 8: Einordnung nach Häufigkeit in der Baumstruktur
Dieses Verfahren lässt sich jetzt verallgemeinert fortsetzen, und man kommt offenbar zu
der Huffman-Kodierung, da die Zeichen mit der geringsten Häufigkeit immer tiefer
sacken, solange die Summe ihrer Häufigkeiten noch kleiner ist als die eines einzelnen
anderen Zeichens.
Daraus folgt also, dass eine Huffman-Kodierung niemals schlechter ist als eine
Kodierung mit gleichlangen Wörtern. Ein weiterer Vorteil ist, dass die Anzahl
verschiedener Zeichen nicht länger von der Wortlänge abhängt, sondern beliebig
gewählt werden kann. Man könnte also zu jeder Anwendung eine Kodierung
konstruieren, die genau die von der jeweiligen Anwendung benötigten Zeichen festlegt.
Huffman-Kodierung bei MP3-Dateien
Vor der Huffman-Kodierung steht die Anordnung der Subbänder. Die Frequenz gibt die
Reihenfolge der Bänder vor. Die Subbänder mit niedrigeren Frequenzen enthalten
üblicherweise deutlich mehr Werte, als diejenigen der hohen Frequenzen, wo in der
Regel 0 oder Werte in der Nähe von 0 erscheinen. Der Encoder unterteilt die Subbänder
in drei Bereiche. Jeder Bereich erhält einen eigenen Huffman-Baum, um den optimalen
Otto Liebminger
14.05.2016
Seite 17 von 49
Datenkompressionen
Kompressionsfaktor zu erreichen.
Zunächst klammert der Encoder die Frequenzbänder mit den hohen Frequenzen aus,
eine Kodierung ist hier nicht notwendig, da sich ihre Größe aus denen der anderen zwei
Regionen ableiten lässt. Die zweite Region enthält Frequenzbänder, in denen die Werte
von -1 bis 1 häufig auftauchen.
Der dritte Bereich enthält 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 Kodelängen wieder, es gibt keine
Abweichungen, die z.B. auf Bit-Grenzen zurückzuführen 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 für das Auftreten eines
Zeichens einen Kode idealer Länge zur Verfügung stellt.
Die AC ordnet dazu jedem Zeichen ein Intervall zu, dessen Größe die Wahrscheinlichkeit für 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 für jedes Zeichen immer
innerhalb von dessen Intervall liegt. Mit zunehmendem Datenbestand wird die Länge,
bzw. die Anzahl von signifikanten Nachkommastellen, der Zahl immer größer.
Obwohl die AC in der Regel ein besseres Ergebnis liefert, als die klassische HuffmanKodierung, ist sie nur verhältnismäßig selten eingesetzt worden. Dies lag zunächst in
den Anforderungen an die Rechenleistung begründet. Später kamen jedoch
patentrechtliche Erwägungen primär zum Tragen. Die Firmen IBM, AT&T und Mitsubishi
sollen gültige 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 repräsentieren. Die Anzahl der Teilintervalle ist identisch mit
der Anzahl der Zeichen im aktuellen Zeichenvorrat und die Größe ist proportional zur
Otto Liebminger
14.05.2016
Seite 18 von 49
Datenkompressionen
deren Auftrittswahrscheinlichkeit. Für jedes Zeichen in den Ausgangsdaten erfolgt eine
neue Intervallteilung, ausgehend von dem letzten Teilintervall.
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 größer oder gleich 0,5 und kleiner als 0,8 ist. Würde das Zeichen 'b' für sich allein
stehen, könnte eine beliebige Zahl aus diesem Intervall ausgewählt werden.
Für 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 wächst immer weiter an.
Auch wenn die Genauigkeit der zu kodierenden Zahl immer größer wird, so braucht
diese nicht vollständig 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 Intervallgröße ist linear abhängig von
der Wahrscheinlichkeit für das Auftreten eines Zeichens. Liegt diese beispielsweise bei
50%, so umfasst das zugehörige Teilintervall die Hälfte des aktuellen Intervalls. Für 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
Häufigkeit
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
Häufigkeit
4
2
2
1
Otto Liebminger
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)
14.05.2016
Seite 19 von 49
Datenkompressionen
e
1
0,1
[0,99; 1,00)
Beispiel Intervallteilung [0,99; 1,00)
Zeichen
a
b
c
d
e
Häufigkeit
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 repräsentiert 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 größer 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, während der obere Grenzwert außerhalb des Intervalls liegt.
D.h. der Wert 1 dürfte in diesem Kontext niemals kodiert werden.
nachfolgende Intervalle
Für 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 für das nächste Zeichen ein Intervall von [0; 0,4), bei einem "b"
entsprechend [0,4; 0,6).
Bei konstanter Wahrscheinlichkeit würden, nach einem "a" als vorhergehendes Zeichen,
für das aktuelle Zeichen die folgenden Grenzen gelten:
Beispiel: Intervallteilung "a"
ges.: [0,0; 1,0)
Z.
a
b
c
d
e
P(x)
0,4
0,2
0,2
0,1
0,1
Teilintervalle
[0,0; 0,4) ----[0,4; 0,6)
|
[0,6; 0,8)
|
[0,8; 0,9)
|
[0,9; 1,0)
--
Otto Liebminger
ges.: [0,0; 0,4)
0,16
0,08
0,08
0,04
0,04
Teilintervalle
[0,00; 0,16)
[0,16; 0,24)
[0,24; 0,32)
[0,32; 0,36)
[0,36; 0,40)
14.05.2016
Seite 20 von 49
Datenkompressionen
----Sum. 1,0
-----0,40
Für die reale Umsetzung einer AC sei nochmals ausdrücklich darauf hingewiesen, dass
die arithmetische Kodierung patentrechtlichen Einschränkungen unterliegt und der
Erwerb von Lizenzen für den praktischen Einsatz zwingend erforderlich ist.
Flussdiagramm: AC-Enkodierung
Otto Liebminger
14.05.2016
Seite 21 von 49
Datenkompressionen
Flussdiagramm: AC-Dekodierung
Der Algorithmus für die Dekodierung weicht nur geringfügig von dem für die
Enkodierung ab. Im Prinzip wird lediglich überprüft, 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 für das Aus- bzw. Eingliedern neuer signifikanter Stellen,
ohne durch Rundungsfehler falsche Intervalle zu identifizieren. Die dafür erforderlichen
Algorithmen sind in den Flussdiagrammen nicht enthalten.
Otto Liebminger
14.05.2016
Seite 22 von 49
Datenkompressionen
Vergleich arithmetische mit Huffman Kodierung
Die arithmetische Kodierung versucht äquivalent der Huffman-Kodierung die
Wahrscheinlichkeit, mit der bestimmte Zeichen auftreten, auszuwerten und danach die
Länge der erforderlichen Kodierung zu optimieren. Bedingt durch die Struktur der
klassischen Huffman-Kodierung, die nur ganzzahlige Kodelängen kennt, ist die
arithmetische Kodierung in punkto erzielbarer Kompressionsrate immer überlegen.
Der primäre Nachteil der arithmetischen Kodierung liegt in dem hohen Rechenaufwand
begründet, der sich insbesondere bei älteren Systemen drastisch ausgewirkt hat.
Außerdem 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) enthält. 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 für das Dateiende oder die Angabe der
Dateigröße resultiert daraus eine Größe 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 abschließenden 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 Zeichenlängen
entsprechend der Häufigkeit ihres Auftretens vor.
Das Prinzip der Shannon-Fano-Kodierung ist verhältnismäßig einfach aufgebaut, hat
aber vornehmlich akademischen Hintergrund. Eine praktische Bedeutung kommt dem
Verfahren selber nicht zu. Die Begründung dafür liegt in der geringen Effizienz, wie sich
im Vergleich mit der Huffman-Kodierung zeigt.
Otto Liebminger
14.05.2016
Seite 23 von 49
Datenkompressionen
Beispiel Shannon-Fano-Kodierung
Um einen Kodebaum nach Shannon und Fano zu definieren wird eine nach Häufigkeit
geordnete Tabelle aller auftretenden Zeichen ausgewertet. Diese wird solange geteilt,
bis jedem Zeichen ein Blatt des Baums zugeordnet ist.
Die Teilung erfolgt immer so, dass die Summe der Häufigkeiten im oberen und unteren
Teil möglichst gleich groß ist.
Zeichen
Häufig- Kode- Kode Gesamtkeit
länge
länge
-----------------------------------------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. Für 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 Kodebäumen
Ein Kode ergibt sich aus einem binären
Baum indem man ihn, beginnend mit der
Wurzel, solange durchschreitet, bis der
Knoten mit dem gewünschten Inhalt
erreicht ist. Jede linksseitige
Verknüpfung entspricht einer binären 0,
jede rechtsseitige Verknüpfung
entspricht einer binären 1.
In dem oben aufgezeigten Beispiel ergibt
sich die nachfolgende Kodierung für die
drei kodierten Zeichen "a", "b" und "c":
0 -- a
10 -- b
Otto Liebminger
14.05.2016
Seite 24 von 49
Datenkompressionen
11 -- c
3.5 Übersichten
Übersicht: gängige Formate und Verfahren
Datentyp
Format
Dateien
zip
Kompression
Anmerkungen
gängiger Standard unter Windows
lz
gängiger Standard unter MacOS
sit
Text
zip
lz
-
Bilder
gif
lzw
Standard Internet
JPEG
dct
Standard Internet
Audio
mp3
subband, mdct
eigentlich:
MPEG-1 Audio Layer III
Video
MPEG
dct
avi
-
-
pdf
zip, jpg
-
hybride Daten
Übersicht: Dateien beliebigen Inhalts
Format
Kompression
Anmerkungen
zip
lz
gängiger Standard unter Windows
sit
-
gängiger Standard unter MacOS
arj
-
-
rar
-
-
tar
-
-
ace
-
-
uc2
-
-
Otto Liebminger
14.05.2016
Seite 25 von 49
Datenkompressionen
Übersicht: Graphik
Format
Kompression
Anmerkungen
gif
lzw
Standard Internet, max. 256 Farben
jpeg
dct
Standard Internet
tiff
opt. jpeg, opt. lzw
-
bmp
opt. RLE
RLE4
RLE8
pict
-
Apple
eps
-
-
fif
-
-
png
-
-
wi
-
-
Übersicht: Audio
Format
Kompression
Anmerkungen
mp3
subband, mdct
eigentlich:
MPEG-1 Audio Layer III
mpeg-1
subband, mdct
-
mpeg-2
subband, mdct
-
mpeg-4
-
-
AAC
-
Advanced Audio Coding
AC-3
-
Dolby
-
-
Real Audio
-
-
Apple QuickTime
dpcm
-
Difference Pulse Code Modulation
adpcm
-
Adaptive Difference Pulse Code Modulation
Otto Liebminger
14.05.2016
Seite 26 von 49
Datenkompressionen
Übersicht: Video
Format
Kompression
Anmerkungen
MPEG-1
dct
-
MPEG-2
dct
-
MPEG-4
-
-
avi
-
-
motion jpeg
-
-
flc
-
Animationen, "flics"
animated gif
-
-
-
-
Apple QuickTime
-
-
Real Video
h.261
-
-
Übersicht: Text
Format
Kompression
Anmerkungen
zip
lzw
-
rar
-
deutlich bessere Kompression als bei zip
Übersicht: hybride Formate
Format
Kompression
Anmerkungen
pdf
zip, jpg
Adobe
-
-
-
-
-
-
Otto Liebminger
14.05.2016
Seite 27 von 49
Datenkompressionen
4 Methoden der Grafikkodierung
Hier sollen einige Grundbegriffe über Graphik, Auflösung und Farbtiefe kurz
beschrieben werden.
Graphik ist eine Ansammlung von Daten, die diese Beschreiben.
Abbildung 9: Prinzip der Graphikentstehung
Wichtig ist es diese Daten zu strukturieren und zu organisieren.
4.1 Es gibt zwei grundsätzliche 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 enthält Farbwerte.
Abbildung 10: Rastergraphik
Bei der Rastergraphik ist die Speicherung der Bildinformation formatabhängig.
Auflösung:
Je mehr Bildpunkte vorhanden sind, desto höher ist die Auflösung und desto besser ist
die Qualität des Bildes.
Jedoch gilt auch, je höher die Auflösung, desto größer ist der Speicherbedarf.
In den folgenden Bildern ist der Begriff der Auflösung bzw. der Qualität sehr gut
Erkennbar.
Otto Liebminger
14.05.2016
Seite 28 von 49
Datenkompressionen
Das linke Bild hat eine Auflösung von 72 dpi und das rechte Bild eine Auflösung von nur
10 dpi.
Abbildung 11: Auflösung
Farbtiefe:
Hier gilt, je größer die Farbzahl, desto höher ist die Farbtiefe.
Jedoch gilt auch hier, je höher die Farbtiefe, desto größer ist der Speicherplatzbedarf.
Abbildung 12: Farbtiefe
Störungen durch geringe Rasterung oder Quantisierung
Periodische Störungen „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 großer Abtastintervall hätte zur folge, dass die falschen Werte abgetastet werden
würden und somit Abtastwerte mit längerer Wellenlänge entstehen.
Dies würde einer falschen und somit unbrauchbaren Information entsprechen.
Otto Liebminger
14.05.2016
Seite 29 von 49
Datenkompressionen
Abbildung 13: Abtastheorem von Shannon
Störungen im Punktraster „Moiree Effekt“
Zu digitalisierende Objekte werden durch ein Gitter betrachtet.
Durch die Abtastung kommt es nun zu Veränderung der Gitterkonstanten und der
Richtung.
Es entsteht der sogenannte Moiree Effekt, der einer Störung entspricht.
Abbildung 14: Moiree Effekt
4.1.2 Vektorgraphik
Vektorgraphiken sind nur für einfache Darstellungen geeignet.
Sie sind nicht für komplexe Graphiken, wie Fotos oder vielfarbige Darstellungen
geeignet.
In Vektorgraphiken kann man beliebig hineinzoomen, ohne einen Rastereffekt bzw.
Qualitätsverlust zu erhalten.
Es werden Objektbezugspunkte für geometrische Figuren gespeichert. Die
darzustellende Figur wird daraus rekonstruiert.
Es werden zusätzlich Attribute, wie Farben, Linienstärken und Füllung gespeichert.
Otto Liebminger
14.05.2016
Seite 30 von 49
Datenkompressionen
Diese Graphiken sind auch Animationsfähig und werden daher oft für Comics
verwendet.
Abbildung 15: Vektorgrahiken-Beispiele
5 JPEG – Graphikformat für Einzelbilder
JPEG ist eines der gängigsten Verfahren zur Kompression von Bilddaten, speziell von
Photographien oder photorealistischen Darstellungen. Der Name JPEG (zumeist JayPeg ausgesprochen) ist der allgemein gebräuchlichen Bezeichnung für 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 unabhängig von der Auflösung, dem Seitenverhältnis und
dem Bildinhalt.
Die Qualität der Abbildung läst sich individuell bestimmen. Ein Absenken der
qualitativen Anforderungen resultiert in einer geringeren Dateigröße.
Bildinhalte mit einfacher Struktur (gleichfarbige Flächen, regelmäßige Muster,
geringer Farbumfang, etc.) führen automatisch zu kleineren Dateien.
Die Reduzierung der Bildqualität macht sich durch Kompressionsartefakte in
Form einer "Rasterung" bemerkbar. Die Größe dieser Strukturen beträgt 8 x 8
Pixel und tritt zunächst in Bereichen mit hohem Komplexitätsgrad auf.
Eine zuverlässige Übertragung von Farben, z.B. bei Hintergrundfarben, ist bei
größeren Kompressionsraten nicht gewährleistet.
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 möglich
Otto Liebminger
14.05.2016
Seite 31 von 49
Datenkompressionen
5.2 Einsatzbereiche
Das hauptsächliche Einsatzgebiet von JPEG liegt in der Kodierung von Photos oder von
photorealistischen Darstellungen, bei der effiziente Kapazitätsauslastung (Speicher,
Datentransferraten, etc.) im Mittelpunkt steht. Es wir darum auch in der digitalen
Fotographie als Standardformat verwendet.
Darüber hinaus ist die weite Verbreitung, auch im www, eines der charakteristischen
Stärke 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 für den professionellen Bereich in der
Drucktechnik geeignet. Häufig treten Probleme mit Kompressionsartefakten, den
limitierten Farbsystemen oder der Farbverbindlichkeit auf. Professionelle Lösungen sind
verfügbar, aber zumeist nicht kompatibel mit den Basislösungen.
5.3 Kodierungschritte
Das Ziel des gebräuchlichsten Modus von JPEG ist es, bei der gewünschten
Kompressionsleistung ein Optimum an Qualität zur Verfügung zu stellen. Dazu müssen
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 Qualitätsanforderungen angepasst sind.
2. Transformation (DCT: Diskrete Kosinustransformation)
Jede einzelne Komponente wird in ein Format übertragen, das Rückschlüsse über die
Struktur der Bildinhalte erlaubt. Damit ergibt sich die Möglichkeit zwischen grundlegenden und komplexeren Inhalten zu unterscheiden.
3. Quantisierung (Gewichtung der Inhalte)
Die transformierten Daten werden quantisiert, also entsprechend ihrer Bedeutung für
den Bildinhalt gewichtet.
4. Entropiekodierung (Huffman-Kodierung)
Entfernung von redundanten Informationen.
Bei dem skizzierten Verfahren handelt es sich um eine gebräuchliche Betriebsart.
Darüber hinaus sind in großem Umfang weitere Betriebsmodi vorgesehen, u.a.
Optionen, die eine verlustfreie Datenkompression erlauben.
Otto Liebminger
14.05.2016
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 Blöcke Zerlegt.
5.3.1 Bildaufbereitung (Farbkonversion und Sampling)
Eine JPEG-Datei nimmt die Bildinhalte getrennt in einzelne Komponenten auf, die
voneinander unabhängig weiterverarbeitet werden. In Inhalt und Auflösung können 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 Auflösung kodieren kann als den Helligkeitswert Y.
Je nach gewünschter Bildqualität kann die Auflösung 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 für die Wahrnehmung von Helligkeits- und Farbunterschieden.
Der Helligkeit kommt in der Gesamtwahrnehmung eine erheblich größere Bedeutung
zu. Demzufolge bietet es sich an, einen größeren Anteil des Datenumfangs dafür zur
Verfügung zu stellen. Man bezeichnet diese Kodierungsform als 4:2:2- oder 4:1:1Kodierung.
Otto Liebminger
14.05.2016
Seite 33 von 49
Datenkompressionen
Dieses Verfahren wird Sub-Sampling genannt.
Bei JPEG verwendet man dieses Verfahren, indem man für jeweils vier Helligkeitswerte
Y nur je ein Chroma-Wert U und V kodiert.
Abbildung 17: YUV-Codierung
Die vier Y-Blöcke der Größe 8x8 mit einem zugehörigen U-Block der Größe 8x8 und
einem V-Block der Größe 8x8 bezeichnet man als Macroblock
Abbildung 18: Macroblock-Darstellung
Otto Liebminger
14.05.2016
Seite 34 von 49
Datenkompressionen
5.3.2 Transformation (DCT: Diskrete Kosinustransformation)
Die Anforderungen an ein ideales Format für die Bilddatenkompression lassen sich wie
folgt skizzieren:

Die Bildinformationen lassen sich nach ihrer Bedeutung für den qualitativen
Gesamteindruck unterscheiden.

Es gibt die Möglichkeit zu unterscheiden, in welchem Maße ein Wegfallen der
Information Einfluss auf die Bildqualität hat.

Nur für relevante Bildinformationen wird auch Datenkapazität aufgewendet.
Enthält ein Bildabschnitt keine Informationen (z.B. bei einer einfarbigen Fläche),
so sollte sich dies unmittelbar in dem Aufbau der Daten niederschlagen.
Die punktweise Darstellung, mit der die konventionellen Datenformate arbeiten, erfüllen
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 Abhängigkeit 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 Fläche durch einen einzelnen Wert repräsentiert.
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 Intensitätsdaten in Frequenzdaten.
Es besteht große Ähnlichkeit mit der Fourier-Transformation.
Otto Liebminger
14.05.2016
Seite 35 von 49
Datenkompressionen
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
Frequenzdomäne. Um ein Bild mit der DCT zu komprimieren, müssen somit die
Koordinaten jede 8x8 Blocks des Bildes bezüglich dieser Matrizen-Basis von 64
berechnet werden.
Darstellung von Bildern mit Basisbildern
Für die Erklärung 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 Größe 8x8 abzudecken, braucht man daher
64 Basisbilder.
Abbildung 19: Bildblock 8x8
Otto Liebminger
14.05.2016
Seite 36 von 49
Datenkompressionen
Große, regelmäßig gefärbte Flächen
Ergeben niedrige Frequenzen.
Feine Details sowie hohe Kontrastunterschiede ergeben sehr hohe
Frequenzen
DC (Direct Current) = F(0,0) enthällt
die Durchschnittswerte der 8x8
Matrix.
AC (Alternating Current) =
F(0,1)…F(7,7) speichern die
Veränderungen zum DC-Wert.
Abbildung 20: Matrix-Tabellen
5.3.3 Quantisierung(Gewichtung der Inhalte)
Als Ergebnis der DCT stehen Werte zur Verfügung, die den Bildinhalt beschreiben.
Allerdings haben sie nicht im gleichen Maße Einfluss auf die Bildqualität. Der Grund
dafür liegt in der subjektiven Wahrnehmung von unterschiedlichen Details begründet.
Mit Hilfe der Quantisierung werden relevantere Bildanteile mit einer höheren
Genauigkeit dargestellt. Anteile, die subjektiv zu einer geringeren Beeinflussung der
Bildwahrnehmung führen, werden abgewertet und mit niedrigerem Wertebereich
abgebildet.
Die Quantisierung ist nicht mehr umkehrbar und beeinflusst maßgeblich die dargestellte
Bildqualität. Dafür werden Quantisierungstabellen angewendet, die in der JPEG-Datei
hinterlegt sind. Sie sind für eine Dekodierung unerlässlich. 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.
Die Daten etwa die der Ortsfrequenzen liegen bereits digital vor, jedoch in einer hohen
Genauigkeit, die der Bit-Zahl entspricht.
Otto Liebminger
14.05.2016
Seite 37 von 49
Datenkompressionen
Die Anzahl der Quantisierungsstufen variiert mit der Ortsfrequenz was, die genaue
Kodierung der zuverlässigeren tiefen Ortsfrequenzen erlaubt.
Auch der Abstand der Quantisierungsstufen einer Ortsfrequenz braucht nicht
gleichmäßig 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 Qualität
der Bilddarstellung liefert. Diese Redundanz wird z.B. mit Hilfe einer Huffman-Kodierung
reduziert.
Die Basis für diese Kodierung bildet ein Kodebaum nach Huffman, der häufig
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).
Bei der Entropie-Kodierung, auch Serialisierung, handelt es sich um die eigentliche
Komprimierung bei JPEG.
Otto Liebminger
14.05.2016
Seite 38 von 49
Datenkompressionen
Bei der Serialisierung spielen die DC-Koeffizienten eine wichtige Rolle.
Die Codierung erfolgt, indem die Differenzwerte der 8x8 Matrizen zum nächsten Block
gespeichert werden.
Die DC-Werte geben den Grundfarbton an und sind deshalb von großer Bedeutung.
Die restlichen Blöcke (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 Lauflängen für die Anschließende EntropieKodierung.
Der Lauflängen-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 können, wenn der Suchbaum mit abgespeichert wurde. Es würde die
Daten extrem aufblähen, wenn man dies für jeden Block einzeln tun würde. Daher teilen
sich mehrere Bilder den gleichen Suchbaum. Dies reduziert zwar die Effizienz der
Kodierung, weil potentiell ein größeres Wertespektrum auftreten kann und die
statistische Verteilung der Werte mit zunehmender Datenmenge ungünstiger 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 Komplexität jedoch 10 mal höher ist als bei
DCT.
Bei JPEG2000 erzielt man geringere Datenmengen, bei gleicher Qualität zu JPEG.
Es stehen 256 Informationskanäle für diverse Bildbeschreibungen zur Verfügung.
Weiters sind sehr komplexe Farbräume verarbeitbar und speicherbar.
Die Bilder sind nach Größe, nach Auflösung oder nach Qualität skaliert darstellbar.
“Level Of Interest“ –Zugriff !
Die Datei endet mit *.jp2 .
Otto Liebminger
14.05.2016
Seite 39 von 49
Datenkompressionen
6 MPEG – Datenformat für Videosignale
6.1 MPEG - Übersicht
MPEG steht für Motion Picture Expert Group, der allgemeinen Bezeichnung für die
Arbeitsgruppe, in der die MPEG-Spezifikationen entwickelt worden sind. Zu den MPEGFormaten gehören die Versionen 1, 2 und 4, die sich mit der Kodierung von Audio/Videoinformationen befassen.
MPEG ist ein Datenreduktionsverfahren für bewegte Bilder und ist eine Weiterentwicklung des JPEG- Verfahrens. wogegen JPEG ein Kompressionsverfahren für
Einzelbilder ist.
Durch den Erfolg von JPEG beschloss das internationale Normierungsgremium ISO,
auch ein Normierungsprojekt für bewegte Bilder und Audiokompression zu starten.
So wurde die Motion Picture Expert Group ins Leben gerufen, nach der auch die
Standards für die Videokompression benannt sind.
Mit MPEG werden Videobilder und die dazugehörigen Audiosignale komprimiert.
1991 wurde der Videokompressionsstandard MPEG-1 eingeführt, der ca. VHS-Qualität
hat.
1995 wurde der Standard für MPEG-2 eingeführt.
1999 kam dann der MPEG-4 Standard, der viele neue Möglichkeiten bietet.
Derzeit wird bereits an den neuen Standards wie MPEG-7 und MPEG-21 gearbeitet.
MPEG-21 soll Planmäßig 2009 eingeführt 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 für mobile Systeme, objektbasierte Kodierung,
extrem geringe Bitraten, vielfältige Optionen
Coding of audio-visual objects [ISO/IEC 14496-1 bis -21] )
MPEG-7
Meta-Kodierung, Medienbeschreibung und suche
MPEG-21
geplantes universelles Multimedia Framework
Otto Liebminger
14.05.2016
Seite 40 von 49
Datenkompressionen
Die ursprünglich in der Nomenklatur vorgesehene Version MPEG-3, die speziell für die
Kodierung von hochauflösenden Videosignalen (z.B. für HDTV und DVD) ausgelegt
werden sollte, ist bereits Bestandteil von MPEG-2. Eine eigenständige 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 müsste.
Ü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 beschäftigen.
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
enthält jeweils ein Einzelbild
hier werden die Makroblöcke mit passender Skalierung
gespeichert
Makroblock Layer: enthält die Makroblöcke bestehend aus unterschiedlich
vielen Einzelblöcken.
Block Layer:
beinhaltet die 8x8, also 64-Pixel großen Einzelblöcke
Abbildung 23: Aufbau von MPEG
Der 8x8-Pixel Block ist die Eingabe in die diskrete Cosinus-Transformation (sowie bei
JPEG), wobei vier Blöcke jeweils zu einem Makroblock zusammengefasst wird, der die
Ergebnisse der DCT in drei Matrizen speichert.
Otto Liebminger
14.05.2016
Seite 41 von 49
Datenkompressionen
Eine Matrize für Helligkeit und zwei für 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 für die Bewegungscodierung.
Abbildung 24: 8x8 Pixel Codierung
Der nun so entstandene Videostrom wird, zusammen mit dem Audiodatenstrom,
Elementarstrom genannt.
Die zwei Elementarströme werden dann über ein Multiplexverfahren zum fertigen
MPEG-Strom zusammengefasst.
Abbildung 25: MPEG-Codierung - Blockschaltbild
Otto Liebminger
14.05.2016
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
höhere Kompression als bei JPEG erzielen.
Weiters kann noch die Tatsache, dass bei einem Film oft Bildpunkte durch gemeinsame
Bewegungen oder Kameraschwenks korrelieren, zur Komprimierung genützt 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 möglich, pro 8x8 Block zwischen mehreren
Quantisierungsstufen zu wählen. Diese variable Quantisierung wird „adaptive
Quantisation „ genannt.
Durch diese variable Quantisierung ist eine deutlich höhere Komprimierung als bei
JPEG möglich.
Der Nachteil ist jedoch, dass der Encoder für die adaptive Quantisierung deutlich
komplexer ist.
6.3.1 Es gibt 3 Arten von Bildern
Um das oben beschriebene Verfahren realisieren zu können, müssen 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
14.05.2016
Seite 43 von 49
Datenkompressionen
6.3.2 Aufgaben und Eigenschaften der unterschiedlichen Frame-Typen
I-Frame: steht für Intra Coded Picture
I-Frames sind Einzelbilder, die völlig eigenständig 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 können.
Deshalb brauchen die I-Frames den meisten Speicherplatz. Sie dienen der
Aktualisierung des Ausgabepuffers.
P-Frame: steht für Predictted Coded Picture
Der P-Frame wird aus Vorhersagen, die bezüglich 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 nächsten
I-Frame fort und somit entstehen Bildstörungen.
B-Frame: steht für 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 benötigt, allerdings auch so wenig Bildinformation beinhaltet, dass BFrames niemals als Referenzbilder für irgendein anderes Frame benutzt werden
können.
Zusätzlich gibt es noch bei MPEG-1 die sogenannten D-Frames. Diese D-Frames
enthalten nur niederfrequente Bildanteile und werden für schnellen Vor- und Rücklauf
benötigt. Diese Frames haben aber für die eigentliche Videosequenz keine Bedeutung
und treten daher auch in keiner GOP auf.
Die Länge der GOP hängt allein von der Codierung ab. Die Standardeinstellung liegt bei
15 Frames pro GOP, allerdings ist für bessere Videoqualität auch die Möglichkeit
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 erhöht.
hoch <------------------------------------------------- niedrig
Informationsgehalt
|
I - Bilder
|
|
P - Bilder
|
|
B - Bilder
|
Kompressionsgrad
niedrig -------------------------------------------------> hoch
Otto Liebminger
14.05.2016
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 gebräuchlichen
Parameter für 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 Datenträger und Zwischenspeicherkapazität überholt sind.
Mittlerweile lassen sich auch die wesentlich anspruchsvolleren MPEG-2-Datenströme
softwareseitig auf Standard-PCs dekodieren.
Das Datenformat wurde so ausgelegt, dass die normale TV-Auflösung von 720x576 auf
ein Viertel der Bildpunkte, also 352x288 Pixel reduziert wird.
Es wurde die gleiche Datenrate wie bei Audio-CD’s, also 1,5MBit/s festgelegt.
Bei MPEG-1 ist daher keine variable Bitrate möglich.Dadurch können maximal 396
Makroblöcke gespeichert werden.
Beim Audiostrom gibt es die Möglichkeit 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 Bildqualität
sichtlich leidet. Besonders bei schnellen Bewegungsabläufen, wie zum Beispiel bei
Aktionsszenen , fällt auf, dass die Bewegungsvoraussage bei der Erstellung der PFrames oft nicht zutrifft und so der Bildfehler bis zum nächsten I-Frame mitgeschleppt
wird.
Eine weitere Fehlerquelle ist die Aufteilung der Bilder in 8x8 Pixel Blöcke 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 können
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 Auflösung und Datenrate die Möglichkeit
professioneller Videobearbeitung.
Aufgrund dieser Nachteile wurde der MPEG-2 Standard entwickelt, welcher eine
weitaus bessere Qualität 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
14.05.2016
Seite 45 von 49
Datenkompressionen
Die ersten Projekte für 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 maßgeblichen 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 Qualität 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 für 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
für 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 für die
maximale Überertragungsrate von MPEG-1 gesetzt. Das CD-I-System konnte sich nicht
am Markt etablieren.
CD-ROM-XA-Video
Um eine ausreichende Rechenkapazität mit der geforderten Echtzeitfähigkeit zur
Verfügung zu stellen sind spezielle Lösungen mit separaten Hardware-Dekodern
erschienen. Aufgrund des Preises und der begrenzten Qualität von MPEG-1 erreichten
diese Produkte keine größere Verbreitung. Für die Vorgaben bezüglich der
Datentransferrate gelten die gleichen Aussage wie bei der CD-I erwähnt.
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
führt Mehrkanal-Verfahren für die Audio-Kodierung ein.
Es sind im Vergleich zu MPEG-1 wesentlich größere Datentransferraten und damit
verbunden eine erheblich bessere Bildqualität möglich. Außerdem sind weiterreichende
Funktionen für die Skalierung von Auflösung, Bildwiederholungsrate und Quantisierung
spezifiziert.
Die technische Grundlage wurde beim Übergang von MPEG-1 auf MPEG-2 im Prinzip
nicht verändert.
Als einzige Neuigkeit in diesem Bereich wurde die Möglichkeit „Szenen“ auch als
Halbbildfolge zu codieren eingeführt.
Die größte Verbesserung bei MPEG-2 lag schlicht und einfach an der um längen
größeren Flexibilität.
Statt der fest vorgegebenen Bitrate von 1,5MBit/s ist hier eine variable Bitrate von
4Mbit/s bis maximal 100Mbit/s möglich. Was einer Auflösung zwischen 352x288 und
1920x1152 Pixel erlaubt, welche bei der Codierung frei skalierbar ist.
Otto Liebminger
14.05.2016
Seite 46 von 49
Datenkompressionen
Durch die variable Bitrate ist eine zusätzliche Kompression möglich, 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 für komplexere Bilder verwendet werden.
Zusätzlich kann der Audiostrom Fünf-Kanal-Surround-Informationen sowie
verschiedene Datenraten und Kompressionsformate wie MPEG Audio Layer I oder III
mit zusätzlicher AC3-Codierung enthalten.
MPEG-2 kommt für 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.
Während bei MPEG-1 und MPEG-2 das Ziel der Entwicklung allein bei der effektiven
Kompression und Speicherung von Videodaten lag, betritt MPEG-4 ein völlig neues
Aufgabengebiet.
Mit MPEG-4 sind unzählige 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
14.05.2016
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_Videosignal e.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 März 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 Fakultät, Universität 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 für 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 Fakultät, Universität
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
14.05.2016
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
14.05.2016
Seite 49 von 49
Herunterladen