A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
LZW84 (Lempel-Ziv-Welch 84) je bezeztrátový kompresní algoritmus vyvinutý Abrahamem Lempelem, Jacobem Zivem a Terry Welchem. Byl publikován v roce 1984 jako vylepšení algoritmů LZ77 a LZ78 publikovaných v letech 1977 a 1978. Je relativně jednoduchý a rychlý, ale nedosahuje zdaleka tak dobré komprese jako náročnější algoritmy jako LZMA, je většinou horší než Deflate a neprovádí analýzu dat. Data prošlá algoritmem LZW84 jsou dále nekomprimovatelná, toto je rozdíl oproti algoritmu LZ77, po kterém lze data dále komprimovat pomocí algoritmu Huffman nebo podobného. Algoritmus byl až do roku 2004 zatížený patentem, dnes je patent prošlý, ale algoritmus byl mezitím překonán. Byl využíván (a je částečně dodnes) v archívech ARC a ZOO, starých verzích ZIPu (PKZIP 0.x a 1.x), unixovém komprimačním programu compress (soubory s příponou „Z“), grafickém formátu GIF a dokumentech PDF.
Popis algoritmu
Algoritmus nepotřebuje žádný slovník. Při kompresi a dekompresi si pouze vytváří pomocný seznam frází. Jedinou další informaci, kterou potřebuje znát, je seznam znaků, ze kterých si má vytvořit jednoznakový seznam frází (typicky 256 znaků ASCII). Algoritmus se tak hodí především pro síťové účely, kde ještě není znám konec přijímaných dat, ale jejich začátek už se může dekomprimovat.
Komprese
Nejdříve se do nalezených frází zapíší všechny znaky abecedy. Pro demonstraci budeme předpokládat, že má abeceda pouze znaky a, b, c a d. Poté se opakují následující kroky, dokud je na vstupu text.
- Na vstupu se najde nejdelší fráze, která je už zapsaná v nových frázích, a její index se zapíše na výstup.
- Nalezená fráze se pak ze vstupu odstraní.
- Jako nová fráze se pak zapíše nalezená fráze + první znak ze vstupu.
krok | text vstupu | nalezená fráze | výstup | nová fráze | index nové fráze |
---|---|---|---|---|---|
a | 0 | ||||
b | 1 | ||||
c | 2 | ||||
d | 3 | ||||
1 | abacdacacadaad | a | 0 | ab | 4 |
2 | bacdacacadaad | b | 1 | ba | 5 |
3 | acdacacadaad | a | 0 | ac | 6 |
4 | cdacacadaad | c | 2 | cd | 7 |
5 | dacacadaad | d | 3 | da | 8 |
6 | acacadaad | ac | 6 | aca | 9 |
7 | acadaad | aca | 9 | acad | 10 |
8 | daad | da | 8 | daa | 11 |
9 | ad | a | 0 | ad | 12 |
10 | d | d | 3 |
Výstupem je pak řetězec 0102369803.
Dekomprese
Opět je nejprve potřeba zapsat do nových frází všechny znaky abecedy. My budeme vycházet opět z abecedy obsahující znaky a, b, c a d. Poté se opakují následující kroky, dokud je na vstupu číslo.
- Ze vstupu se odstraní číslo a na výstup se přidá odpovídající fráze (podle seznamu frází, které už jsou).
- Jako nová fráze se doplní ta z minulého kroku + první znak fráze z tohoto kroku.
krok | vstup | výstup | nová fráze | index nové fráze |
---|---|---|---|---|
a | 0 | |||
b | 1 | |||
c | 2 | |||
d | 3 | |||
1 | 0 | a | ||
2 | 1 | b | ab | 4 |
3 | 0 | a | ba | 5 |
4 | 2 | c | ac | 6 |
5 | 3 | d | cd | 7 |
6 | 6 | ac | da | 8 |
7 | 9 | aca | aca | 9 |
8 | 8 | da | acad | 10 |
9 | 0 | a | daa | 11 |
10 | 3 | d | ad | 12 |
Výstupem je pak řetězec abacdacacadaad.
Tento postup má však jednu výjimku. Pokud je na vstupu větší číslo, než je index poslední nalezené fráze, vloží se znovu na výstup poslední výstup + jeho první znak. To samé se přidá také do nových frází...
Odkazy
Reference
- SOBOTA, Branislav, MILIÁN, Ján: Grafické formáty, nakl. Kopp, ISBN 80-85828-58-8, zejm. str. 37 a 75.
- (česky) Kompresni metoda LZW - navrh implementace
V tomto článku byl použit překlad textu z článku Lempel–Ziv–Welch na anglické Wikipedii.
Související články
Externí odkazy
- Obrázky, zvuky či videa k tématu LZW84 na Wikimedia Commons
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Antény
Chemické zdroje elektriny
Chladenie v elektrotechnike
Elektrická sústava automobilu
Elektrická trakcia
Elektrické prístroje
Elektrické súčiastky
Elektrické spotrebiče
Elektrické stroje
Čítanie (elektrotechnika)
Činný výkon
Štatistická dynamika
Živý vodič
Admitancia
Antiparalelné zapojenie
Asynchrónny motor
Blúdivý prúd
Bočník (elektrotechnika)
Diak (polovodičový prvok)
Displej s kvapalnými kryštálmi
Elektrická inštalácia
Elektrická rezonancia
Elektrická sila
Elektrická vodivosť
Elektrické zariadenie
Elektrický obvod
Elektrický zvonec
Elektroenergetika
Elektromer
Elektrometer
Elektromobil
Elektromotor
Elektromotorické napätie
Elektrotechnický náučný slovník
Elektrotechnika
Elektrotechnológia
Fázor
Faradayova klietka
Frekvencia (fyzika)
Graetzov mostík
Impedancia
Indukčnosť
Induktancia
Istič
Izolácia (elektrotechnika)
Izolant
Jadro vodiča
Jednobran
Jednosmerný prúd
Joulovo teplo
Katóda
Koaxiálny kábel
Kompenzácia účinníka
Konduktometria
Konektor (elektrotechnika)
Korónový výboj
Lanko (elektrotechnika)
Leptanie
Logické hradlo
Magnetická susceptibilita
Magnetizácia (veličina)
Merný elektrický odpor
Mobilné zariadenie
Napájací zdroj
Napäťový chránič
Napäťový násobič
Nortonova veta
Odpínač
Odpojovač
OLED
Olovený akumulátor
Paralelné zapojenie
Peltierov článok
Plošná hustota elektrického prúdu
Poistka (elektrotechnika)
Posuvný prúd
Prúdový chránič
Prenosové médium
Prieletový klystrón
Primárny elektrochemický článok
Reaktancia
Rekuperácia (dopravný prostriedok)
Relé
Reproduktorová výhybka
Rezistancia
Rozhranie (interface)
Sériové zapojenie
Seebeckov jav
Sekundárny elektrochemický článok
Settopbox
Skrat
Sonar
Spínač
Spínaný zdroj
Straty v mikropásikových vedeniach
Striedavý prúd
Stupeň ochrany krytom
Svetelná výbojka
Symetrizačný člen
Technická normalizácia
Tepelné relé
Tepelne vodivostný detektor
Termočlánok
Théveninova veta
Transformátor
Transformátor s fázovou reguláciou
Trojfázová sústava
Tuhá fáza (elektronika)
Tyratrón
Usmerňovač (elektrotechnika)
Uzemnenie
Uzol (vodiče)
Vírivý prúd
Výbojka
Varistor
Ventilátor
Vodič (elektrotechnika)
Voltov stĺp
Vstavaný systém
Zásuvka (elektrotechnika)
Zdroj (elektrotechnika)
Zisk antény
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk