datenkompression mit der burrows-wheeler-transformation (bwt)

13
Datenkompression mit der Burrows-Wheeler- Transformation (BWT) Andreas Junghans, IM2

Upload: elyse

Post on 20-Feb-2016

32 views

Category:

Documents


1 download

DESCRIPTION

Datenkompression mit der Burrows-Wheeler-Transformation (BWT). Andreas Junghans, IM2. Inhalt. Verfahren zur Datenkompression Die Burrows-Wheeler-Transformation (BWT) Datenkompression mit der BWT Implementierung Zusammenfassung und Ausblick. Verfahren zur Datenkompression. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)

Datenkompression mit derBurrows-Wheeler-Transformation

(BWT)

Andreas Junghans, IM2

Page 2: Datenkompression mit der Burrows-Wheeler-Transformation (BWT)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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