Datenkompression mit der Burrows-Wheeler-Transformation (BWT)
description
Transcript of Datenkompression mit der Burrows-Wheeler-Transformation (BWT)
![Page 1: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/1.jpg)
Datenkompression mit derBurrows-Wheeler-Transformation
(BWT)
Andreas Junghans, IM2
![Page 2: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/2.jpg)
2Datenkompression mit der Burrows-Wheeler-Transformation
Inhalt
• Verfahren zur Datenkompression• Die Burrows-Wheeler-Transformation (BWT)• Datenkompression mit der BWT• Implementierung• Zusammenfassung und Ausblick
![Page 3: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/3.jpg)
3Datenkompression mit der Burrows-Wheeler-Transformation
Verfahren zur Datenkompression
• verlustfrei und verlustbehaftet
• Wörterbücher und Statistiken– Wörterbücher: schnell– Statistiken: gute Kompression
BWT BWT
Space
/ 0
Tab /
1t /
2e /
3n /
4i /
5r /
6
LF / 7
CR / 8o /
9Res
t
02000400060008000
100001200014000160001800020000
![Page 4: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/4.jpg)
4Datenkompression mit der Burrows-Wheeler-Transformation
Verfahren zur Datenkompression
• adaptiv und statisch
• Ströme und Blöcke
0010110101011010Code-Tabelle/Wörterbuch
0010110101011010
0010110101011010 0010 1101 0101 1010
![Page 5: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/5.jpg)
5Datenkompression mit der Burrows-Wheeler-Transformation
Die Burrows-Wheeler-Transformation
• BWT = Vorsortierung (reversible Transformation)• verlustfrei• statistisch• adaptiv oder statisch• blockorientiert (ab 100 KB)• Geschwindigkeit vergleichbar Wörterbüchern• Effizienz vergleichbar Statistiken
![Page 6: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/6.jpg)
6Datenkompression mit der Burrows-Wheeler-Transformation
Die Burrows-Wheeler-Transformation
Vorwärtstransformation
HelloCello ooHCeellll
H e l l o C e l l oe l l o C e l l o
l l o C e l l o
l o C e l l o
H
H e
H e l
o C e l l o H e l
e l l o H e l
l
l o C
l l o H e l l o C
l o H e l l o C
o H e l l o C
e
e l
e l l
C e l l o H e l l o
0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
L
IH e l l o C e l l oe l l o C e l l ol l o C e l l ol o C e l l o
HH e
H e lo C e l l o H e lC e l l o H e le l l o H e l
ll o
l o Cl l o H e l l o Cl o H e l l o Co H e l l o C
ee l
e l l
0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
![Page 7: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/7.jpg)
7Datenkompression mit der Burrows-Wheeler-Transformation
H oe
l
l
H
e
l
o
e
l
C
l
l
o
e
l
l
C o
0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
L
I
F
N1
N2
N3
N4
N5
N6
N7
N8
N9
H oe
l
l
H
e
l
o
e
l
C
l
l
o
e
l
l
C o
0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
L
I
F
N1
N2 ?N2 ?
Die Burrows-Wheeler-Transformation
Rücktransformation
![Page 8: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/8.jpg)
8Datenkompression mit der Burrows-Wheeler-Transformation
Die Burrows-Wheeler-Transformation
Eigenschaften
– Gruppen gleicherZeichen
– wenige, kurzeUnterbrechungen
a: rray swap(pStarta: rray localIndex =a: rray * (na: rray (i.e. the posita: rray (needed for reca: rray (which must beA: rray = new byte[1];a: rray and outputs thea: rray for * sortina: rray must not be idea: rray of <code>int</ca: rray of MTF codes
![Page 9: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/9.jpg)
9Datenkompression mit der Burrows-Wheeler-Transformation
Datenkompression mit der BWT
Ablauf
BWT MTF RLE + Huffman / AC
MTF: Move-To-Front-Coding(„Nach-vorne-Codierung“)
RLE: Run-Length-Encoding(Lauflängen-Codierung)
AC: Arithmetische Codierung
![Page 10: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/10.jpg)
10Datenkompression mit der Burrows-Wheeler-Transformation
Datenkompression mit der BWT
MTF: Move-To-Front-Coding
0 0
65 „A“
255 255
0 „A“
65 „@“
255 255
66 „B“
67 „C“
1 1 1 0
66 „B“
67 „C“
...
...
...
...
0 „A“
65 „@“
255 255
1 0
66 „B“
67 „C“
...
...
0 „B“
65 „?“
255 255
1 „A“
66 „@“
67 „C“
...
...
„AAB“ 65, 0, 66
![Page 11: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/11.jpg)
11Datenkompression mit der Burrows-Wheeler-Transformation
MTF: Move-To-Front-Coding
Datenkompression mit der BWT
Space
/ 0
Tab /
1t /
2e /
3n /
4i /
5r /
6
LF / 7
CR / 8o /
9Res
t
02000400060008000
100001200014000160001800020000
![Page 12: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/12.jpg)
12Datenkompression mit der Burrows-Wheeler-Transformation
• Speicher sparen (800 GB vs. 4,4 MB)• Effiziente Sortierung• RLE vor BWT (Rekursionstiefe!)• Huffman mit Codes für 0-Reihen• Effizienzvergleich
Implementierung
Datei Original WinZip bzip2 EigenbauSRC-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%)
![Page 13: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)](https://reader036.fdocuments.net/reader036/viewer/2022083013/56815ffb550346895dcefb60/html5/thumbnails/13.jpg)
13Datenkompression mit der Burrows-Wheeler-Transformation
• 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?
Zusammenfassung und Ausblick