Abraham Lemlel e Jakob Ziv sono i creatori del compressore LZ77, inventato nel 1977 (da qui il suo nome). Questo compressore era allora utilizzato per archiviare (i formati ZIP, ARJ e LHA lo usano).
Nel 1978 Lemel e Ziv crearono il compressore LZ78 specializzato nella compressione di immagini (o tutti i tipi di file binari). Nel 1984, Terry Welch della società Unisys lo modificò per usarlo con dei controller di dischi rigidi, e la sua iniziale venne aggiunta all'abbreviazione LZ dando così LZW.
LZW è un algoritmo molto rapido tanto in compressione quanto in decompressione, basato sulla molteplicità delle occorrenze di sequenze di caratteri nella stringa da codificare. Il suo principio consiste nel sostituire dei motivi con un codice di affettazione (indice) costruendo man mano un dizionario.
Inoltre, esso lavora su dei bit e non su dei byte, senza dipendere quindi dal modo in cui il processore codifica le informazioni. Esso è uno degli algoritmi più famosi, utilizzato soprattutto nei formati TIFF e GIF. Dato che Il metodo di compressione LZW è stato brevettato dalla società Unisys, si usa l'algoritmo LZ77, libero da diritti, per le immagini PNG.
Il dizionario è inizializzato con i 256 valori della tabella ASCII. Il file da comprimere è scomposto in stringhe di byte (quindi per delle immagini monocrome - codificate ad 1 bit - questa compressione è poco efficace), ciascuna delle quali è paragonata al dizionario ed è aggiunga nel caso non sia presente.
L'algoritmo percorre il flusso di informazioni codificandole; se una stringa è più piccola rispetto alla parola più grande del dizionario, allora è trasmessa.
Durante la decompressione, l'algoritmo ricostruisce il dizionario nel senso inverso, quest'ultimo non ha quindi bisogno di essere immagazzinato.
Foto: © Pixabay.