1 / 20

Kompresní algoritmus LZW

Kompresní algoritmus LZW. Dokumentografické informační systémy. Cíl. Co je LZW algoritmus a jak pracuje. Osnova. Historie slovníkové komprese. Co je LZW? Algoritmus LZW komprese. Algoritmus LZW dekomprese. Praktická implementace. Výsledky testů. Histrorie slovníkové komprese.

lynsey
Download Presentation

Kompresní algoritmus LZW

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kompresní algoritmus LZW Dokumentografické informační systémy

  2. Cíl • Co je LZW algoritmus a jak pracuje.

  3. Osnova • Historie slovníkové komprese. • Co je LZW? • Algoritmus LZW komprese. • Algoritmus LZW dekomprese. • Praktická implementace. • Výsledky testů.

  4. Histrorie slovníkové komprese • Autoři: Ziv, Lempel • 1977 - základní princip • Vyvinuty algoritmy ozn. LZ77 • Programy - PKZip, Zip, ARJ, Gzip • 1978 - odlišný přístup • Vyvinuty algoritmy ozn. LZ78 • Programy - compress v Unixu, GIF, V.42 bis

  5. Co je LZW? • Algoritmus pro kompresi textů. • Založen na slovníkové metodě komprese třídy LZ78. • Semiadaptivní komprese.

  6. Algoritmus komprese • Postupné čtení dokumentu D. • Při čtení sestavován slovník frází. • Na počátku obsaženy fráze délky 1. • Současné vytváření výstupního zkomprimovaného souboru.

  7. Kroky komprese • Prohledáván slovník frází. • Nalezení nejdelší fráze shodné s textem na vstupu. • Pořadové číslo fráze uloženo do výstupního souboru. • Nalezená fráze odebrána ze vstupu • Vytváření nové fráze. • = právě použitá fráze + znak na vstupu

  8. Co to znamená • Znak na vstupu • je prvním znakem fráze použitém v příštím kroku. • Nová fráze • se vytváří vždy ze dvou po sobě použitých Fráze kroku m První znak fráze kroku m+1 Nová fráze kroku m+1

  9. Výsledek • Opakováním kroků algoritmu, dokud není přečten celý vstupní soubor, je vytvářen výstupní zkomprimovaný soubor. Tento soubor obsahuje pořadová čísla frází ve slovníku.

  10. Algoritmus dekomprese • Probíhá obdobně jako komprese - vytváří se slovník stejných frází • Na počátku jsou ve slovníku jen fráze délky 1.

  11. Kroky dekomprese • Přečtení čísla fráze ze vstupního souboru. • Odpovídající fráze je uložena do výstupního souboru. • Vytvoření nové fráze a její začlenění do slovníku. • = fráze z předposledního kroku + první znak z posledního kroku. Fráze kroku m První znak fráze kroku m+1 Nová fráze kroku m+1

  12. Začlenění fráze do slovníku je oproti kompresi o krok zpožděno. • Pokud první znak fráze je shodný s prvním znakem fráze použité v předchozím kroku, fráze při dekompresi zatím ve slovníku neexistuje. Na základě toho lze doplnit chybějící frázi. Použitá fráze Znak na vstupu Nová fráze

  13. Praktická implementace • Rychlost komprese - závislá na rychlosti vyhledávání fráze ve slovníku. • Kladen důraz na účelné využití paměti. • Vyhovuje - uložení frází ve stromové struktuře.

  14. Stromová struktura slovníku • Zřetězením znaků od kořene k jednotlivým uzlům stromu získáme všechny fráze. Kořen d 3 c 2 a 0 b 1 c 6 d 12 b 4 a 8 a 5 d 7 a 9 a 11 d 10

  15. Realizace stromu • Pomocí ukazatelů nevýhodné - spotřeba místa, rychlost. • Efektivnější tabulka - použití indexů tabulky. • Nevýhodné - vysoká arita uzlu následníků stromu.

  16. Binarizace n-árního stromu Kořen • V každém uzlu (vyjma kořenového) jen dva ukazatele. • Prvního následníka • Sousední uzel d 3 c 2 a 0 b 1 c 6 d 12 b 4 a 8 a 5 d 7 a 9 a 11 d 10

  17. Obvyklá implementace LZW • Na vstupu - 256 možných znaků. • Na počátku vždy slovník inicializován hodnotami 0-255. • Omezený rozsah slovníku - obvykle 4096 frází. • Je-li slovník vyčerpán, slovník se zruší a znovu inicializuje. • Informace o novém slovníku uložena do výstupního souboru. • Konec komprese uložen do výstupního souboru.

  18. Uložení čísla fráze do výstupního souboru • Číslo fráze ukládáno pomocí 12 bit • K vyjádření čísel 0 - 4095 je zapotřebí 12 bitů • Dokonalejší způsob • 0 - 511 uloženo do 9 bitů • 512 - 1023 uloženo do 10 bitů • 1024 - 2047 uloženo do 11 bitů • 2048 - 4095 uloženo do 12 bitů Nový slovník Nový slovník 11ti bit. 12ti bit. 256 9ti bit. 256 10ti bit.

  19. Závěrečný test komprese • Úspěšnost komprese • 8KB textového souboru - 55% • 12KB JPEG - zvětšen o 34% • 11KB GIF - zvětšen o 28% • 55KB HTML - 53%

  20. Děkuji Vám za pozornost. • Informace o této prezentaci naleznete na: http://home.vsb.cz/pn .

More Related