Title: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)
1Datenkompression mit derBurrows-Wheeler-Transform
ation (BWT)
2Inhalt
- Verfahren zur Datenkompression
- Die Burrows-Wheeler-Transformation (BWT)
- Datenkompression mit der BWT
- Implementierung
- Zusammenfassung und Ausblick
3Verfahren zur Datenkompression
- verlustfrei und verlustbehaftet
- Wörterbücher und Statistiken
- Wörterbücher schnell
- Statistiken gute Kompression
BWT
BWT
4Verfahren zur Datenkompression
- adaptiv und statisch
- Ströme und Blöcke
Code-Tabelle/Wörterbuch
0010110101011010
0010110101011010
0010110101011010
0010
1101
0101
1010
5Die Burrows-Wheeler-Transformation
- BWT Vorsortierung (reversible Transformation)
- verlustfrei
- statistisch
- adaptiv oder statisch
- blockorientiert (ab 100 KB)
- Geschwindigkeit vergleichbar Wörterbüchern
- Effizienz vergleichbar Statistiken
6Die Burrows-Wheeler-Transformation
HelloCello
ooHCeellll
7Die Burrows-Wheeler-Transformation
8Die Burrows-Wheeler-Transformation
- Eigenschaften
- Gruppen gleicherZeichen
- wenige, kurzeUnterbrechungen
a rray swap(pStart a rray localIndex a rray
(n a rray (i.e. the posit a rray (needed for
rec a rray (which must be A rray new
byte1 a rray and outputs the a rray for
sortin a rray must not be ide a rray of
ltcodegtintlt/c a rray of MTF codes
9Datenkompression mit der BWT
BWT
MTF
RLE Huffman / AC
MTF Move-To-Front-Coding (Nach-vorne-Codierung
) RLE Run-Length-Encoding (Lauflängen-Codierung)
AC Arithmetische Codierung
10Datenkompression mit der BWT
0
0
0
A
0
A
0
B
1
1
1
0
1
0
1
A
...
...
...
...
65
A
65
_at_
65
_at_
65
?
66
B
66
B
66
B
66
_at_
AAB
65, 0, 66
67
C
67
C
67
C
67
C
...
...
...
...
255
255
255
255
255
255
255
255
11Datenkompression mit der BWT
12Implementierung
- Speicher sparen (800 GB vs. 4,4 MB)
- Effiziente Sortierung
- RLE vor BWT (Rekursionstiefe!)
- Huffman mit Codes für 0-Reihen
- Effizienzvergleich
Datei
Original
WinZip
bzip2
Eigenbau
SRC-124.pdf
107.864
87.628 (81)
89.355 (83)
90.898 (84)
opngl32p.cpp
873.331
76.600 (9)
52.221 (6)
57.510 (7)
powerpnt.exe
4.247.604
2.151.382 (51)
2.030.911 (48)
2.132.403 (50)
13Zusammenfassung und Ausblick
- BWT ist Vorsortierung von Daten
- Ergebnis läßt sich meist sehr gut komprimieren
- Einsatz von RLE und statistischen Verfahren
- Andere Kompressionsmöglichkeiten?
- Andere Transformationen?
- Verlustbehaftete Kompression?