Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Készítette: Lakos Péter

Hasonló előadás


Az előadások a következő témára: "Készítette: Lakos Péter"— Előadás másolata:

1 Készítette: Lakos Péter
LZW-algoritmus Készítette: Lakos Péter

2 LZW-algoritmus: Veszteségmentes tömörítő eljárás
Abraham Lempel és Jacob Ziv 1978-ban publikálták az LZ78 algoritmust Az LZW ennek továbbfejlesztett változata, amit Terry Welch publikált 1984-ben Az LZW-algoritmust használja a compress / uncompress parancs UNIX rendszereken Az LZW-algoritmus továbbfejlesztéseiből születtek a zip, gzip és bzip tömörítések

3 Feladat: Adott egy T input string és egy S szótár
Az S a T-ben lévő betűkhöz és szavakhoz természetes számokat rendel Készítsük el T kódját S kibővítésével, hogy az output kisebb méretű legyen, mint T!

4 Példa tömörítésre T: a b a b a b a b a b a b Puffer: S: 0 : a 1 : b -
Tegyük a beolvasott karaktereket a pufferba, amíg a puffer tartalma + a következő karakter már nincs benne a szótárban Írjuk ki a puffer tartalmát az outputra és vegyük fel a szótárba a puffer tartalma + következő karaktert Ezután a puffer tartalma legyen ez a következő karakter

5 Példa tömörítésre T: a b a b a b a b a b a b Puffer: S: 0 : a 1 : b a
- Beolvassuk az a-t. Az a-t betesszük a pufferba Ekkor a puffer tartalma + a következő betű (a) már megvan a szótárban, így tovább mehetünk

6 Példa tömörítésre T: a b a b a b a b a b a b Puffer: S: 0 : a 1 : b
Vegyük fel a szótárba a puffer tartalma + következő karaktert (ab) A puffer tartalma legyen ez az új karakter (b) Most a puffer tartalma + következő karakter: „ab”, ami még nincs meg a szótárban A puffer tartalmát (annak kódját) kiírjuk az outputra

7 Példa tömörítésre T: a b a b a b a b a b a b Puffer: S: 0 : a 1 : b
1 És így tovább…

8 Példa tömörítésre T: a b a b a b a b a b a b Puffer: S: 0 : a 1 : b
1 2 „ab” már benne van a szótárban

9 Példa tömörítésre T: a b a b a b a b a b a b Puffer: S: 0 : a 1 : b
1 2 4

10 Példa tömörítésre T: a b a b a b a b a b a b Puffer: S: 0 : a 1 : b
1 2 4 3

11 Példa tömörítésre T: a b a b a b a b a b a b Puffer: S: 0 : a 1 : b
1 2 4 3

12 Példa tömörítésre T: a b a b a b a b a b a b Puffer: S: 0 : a 1 : b
1 2 4 3 6 A kapott kód tehát: Végezetül a puffer tartalmát kiírjuk az outputra

13 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b
A tömörítés logikáját alkalmazzuk visszafelé.

14 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b a
A 0-s kód megvan a szótárban, jelentése: a

15 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b a
A piros nyíl jelzi, hol tartott ekkor a tömörítés.

16 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b 2 : ab a b
Az „ab” ekkor még nem volt benne a szótárban, ezért most bekerült És így tovább…

17 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b 2 : ab 3 : ba a
A 4-es kód ismeretlen, de tudjuk, hogy ezen a ponton egy abx szó került be a szótárba 4-esként

18 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b 2 : ab 3 : ba
4 : abx a b ab abx A 4-es kód ismeretlen, de tudjuk, hogy ezen a ponton egy abx szó került be a szótárba 4-esként

19 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b 2 : ab 3 : ba
4 : abx a b ab aba abx 4 : aba Ezt visszahelyettesítve látjuk, hogy x = a

20 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b 2 : ab 3 : ba

21 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b 2 : ab 3 : ba
6 : bay a b ab aba ba bay A 6-os kód szintén ismeretlen, ugyanúgy járunk el, mint korábban

22 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b 2 : ab 3 : ba
6 : bay a b ab aba ba bab bay 6 : bab

23 Példa visszafejtésre Input: 0 1 2 4 3 6 S: 0 : a 1 : b 2 : ab 3 : ba
Az input végére értünk, a kapott string tehát: abababababab

24 Megjegyzés: A szótárat nem kell elküldeni a címzettnek, a példában látott módon a visszafejtő algoritmus azt megkonstruálja DE a szövegben lévő betűk kódját ismerni kell a visszafejtés elkezdése előtt (lehet közös kódkészlet) További információk, példa:


Letölteni ppt "Készítette: Lakos Péter"

Hasonló előadás


Google Hirdetések