lempel-ziv-welch veszteségmentes tömörítési...

Post on 29-May-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Lempel-Ziv-Welch

veszteségmentes tömörítési algoritmus

� Adott egy szöveg, és egy ABC.

� A szöveget szeretnénk kódolni.

� Az LZW-vel nem csak karaktereket tudunk kódolni, hanem a szótár bővíthető a szóban szereplő szótöredékekkel is.

� Ezáltal tömöríteni is képes.

� A dekódoláshoz elégséges pusztán az alap ABC ismerete, a módszer szinte ugyanaz, mint maga a kódolás folyamata.

� Adott egy szöveg: ababcbababaaaaaaa

� Adott ez ABC: a,b,c

� Az alap kódóló szótár:a=1b=2c=3

T = ababcbababaaaaaaaSzótár:a=1b=2c=3

T = ababcbababaaaaaaaSzótár:a=1b=2c=3ab=4

T = 1

T = ababcbababaaaaaaaSzótár:a=1b=2c=3ab=4ba=5

T = 12

T = ababcbababaaaaaaaSzótár:a=1b=2c=3ab=4ba=5abc=6

T = 124

T = ababcbababaaaaaaaSzótár:a=1b=2c=3ab=4ba=5abc=6cb=7

T = 1243

T = ababcbababaaaaaaaSzótár:a=1b=2c=3ab=4ba=5abc=6cb=7bab=8

T = 12435

T = ababcbababaaaaaaaSzótár:a=1b=2c=3ab=4ba=5abc=6cb=7bab=8baba=9

T = 124358

T = ababcbababaaaaaaaSzótár:a=1b=2c=3ab=4ba=5abc=6cb=7bab=8baba=9aa=10

T = 1243581

T = ababcbababaaaaaaaszótár:a=1b=2c=3ab=4ba=5abc=6cb=7bab=8baba=9aa=10aaa=11

T = 1243581 10

T = ababcbababaaaaaaaszótár:a=1b=2c=3ab=4ba=5abc=6cb=7bab=8baba=9aa=10aaa=11aaaa=12

T = 1243581 10 11

T = ababcbababaaaaaaaszótár:a=1b=2c=3ab=4ba=5abc=6cb=7bab=8baba=9aa=10aaa=11aaaa=12

T = 1243581 10 11 1

T = ababcbababaaaaaaaszótár:a=1b=2c=3ab=4ba=5abc=6cb=7bab=8baba=9aa=10aaa=11aaaa=12

T = 1 2 4 3 5 8 1 10 11 1

� Az eredeti szöveget: ababcbababaaaaaaa

� Erre kódoltuk át: 1 2 4 3 5 8 1 10 11 1

� Ha azt szeretnénk, hogy a kódolt szöveg tömörebb is legyen, mint az eredeti, akkor szükségünk van egy kis „optimalizációra”.

� Nézzük meg:

� Feleltessünk megy egy bináris kódot minden egyes kódnak, így kapunk egy új szótárat:

1 0

2 1

3 2

4 3

5 4

8 5

10 6

11 7

� Látható tehát, hogy így bináris alakban egy kódszó tárolható 3 biten.

� A kódolt szöveg: 1 2 4 3 5 8 1 10 11 1� Tehát 10*3 bit szükséges, összesen 3.� Az eredeti szöveg 17 hosszú, és 2 bit

szükséges egy kódszó tárolásához, így 34 bit kell összesen neki.

� Végeredményben tehát a kódolás után rövidebb az eredményünk

� A LZW algoritmus titkosításhoz is használható, ha az ABC és a kódolt üzenet külön kerül tárolásra.

� A dekódolás folyamata majdnem megegyezik a kódolással, csak az ellenkező irányba haladva.

top related