LZW (Lempel-Ziv-Welch) tömörítő algoritmus Készítette: Giligor Dávid Neptun : HSYGGS
Történelem: Az informatikában széles körben használt eljárást Terry Welch publikálta 1984-ben az Abraham Lempel és Jacob Ziv által 1978-ban közzétett LZ78 algoritmus továbbfejlesztéseként
Alkalmazása: A gyakorlatban fix szóhosszúságú szótárral használják, a szótár betelése után egyszerű fix szótáras tömörítést végeznek. Az LZW széles körben a Unix operációs rendszercompress segédprogramjának algoritmusaként terjedt el; ma leginkább a GIF képformátum részeként ismert. A GIF-hez használt implementációban a szótár maximális mérete 512, vagyis maximum 9 bit hosszú kódszavakat használ. Amikor a szótár betelik, 10 bites kódszavakra kell áttérni, vagyis a szótár mérete megduplázódik, és így tovább. A TIFF képformátum és a PDF dokumentumformátum tömörítési eljárásai között is szerepel
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
Példa: Adott egy szöveg : ababacbbabcaaa ABC : a, b, c Kódoló szótár :
Input: ababacbbabcaaa Output: 1 2 4 1 3 2 5 2 3 1 13 Kódoló szótár : b=2 bc=11 c=3 ca=12 ab=4 aa=13 ba =5 aba=6 ac =7 cb = 8 bb = 9
Érdekesség: 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