|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LZWAlgoritmus LZW patrí do skupiny LZ algoritmov. Je pomenovaný podľa autora jeho modifikácie, Welch (1984). Redukuje druhú zložku (symbol, ktorý nasledoval za nájdenou najdlhšou postupnosťou) algoritmu LZ78, čím ešte viac zvyšuje jeho efektívnosť. Inak povedané, dekóderu sa posielajú iba indexy do slovníka. Vďaka tomu sa zmenil aj počiatočný slovník, ktorý na začiatku obsahuje všetky jednoznakové postupnosti zo zdrojovej postupnosti. Kompresia a dekompresiaPri kompresii, ako pri LZ78, sa hľadá najdlhšia zhoda v slovníku. Index, na ktorom v slovníku nastala zhoda je výstupom algoritmu a zväčšený reťazec (nájdená zhoda nasledujúca ďalším znakom) je pridaný ako nová položka do slovníka. Ako vidíme, kompresia je pomerne jednoduchá, čo pri dekompresii neplatí. Tak, ako to bolo v predchádzajúcich prípadoch, aj tu použijeme na vysvetlenie príklad.
Majme na vstupe reťazec
Pri dekódovaní sa slovník vytvára, dá sa povedať, o jeden krok
dozadu. Po dekódovaní posledného kódového slova bude, z tohto dôvodu,
v slovníku o jeden záznam menej, čo vôbec nevadí, pretože tento záznam
bol do slovníka pridaný ako posledný, a tým pádom nebol nikdy použitý.
Na začiatku má dekóder v slovníku iba prvé 4 znaky. Keď
dostane prvý symbol Záverečné poznámkyAko vidíme, efektivita sa zväčšila vďaka odstránenému druhému symbolu v kódovom slove, takže jeho veľkosť závisí naozaj už len od veľkosti samotného slovníka. Pri kompresii obrázkov našiel algoritmus LZW svoje uplatnenie. Je používaný vo formáte GIF (graphic interchange format). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||