Che cos'è un algoritmo di compressione?
I file del computer possono richiedere una grande quantità di spazio su un disco rigido e molta larghezza di banda per la trasmissione. Per risparmiare spazio, specialmente con file a cui non si accede spesso e larghezza di banda per i file trasmessi, sono stati sviluppati metodi di archiviazione per salvare i dati in un pacchetto più piccolo comprimendolo in qualche modo. In ogni caso, viene utilizzato un algoritmo di compressione, un metodo per ridurre la dimensione dei dati. Esistono diverse categorie e tipi popolari di algoritmo di compressione, ognuno dei quali funziona in modo diverso e alcuni dei quali hanno risultati che differiscono in modi importanti. Utilizzando vari algoritmi di compressione, è generalmente possibile ridurre un file di testo a meno della metà della sua dimensione originale; per i file grafici, i risultati variano ampiamente. Il file risultante dalla compressione può essere in un formato diverso o un file di archivio, che viene spesso utilizzato per l'archiviazione, la trasmissione e la distribuzione.
Un modo per classificare gli algoritmi di compressione è se utilizzano metodi di dizionario o statistici per comprimere i dati. Il metodo del dizionario si concentra su frasi ripetibili e viene utilizzato nelle immagini GIF e negli archivi JAR e ZIP. Il metodo statistico si basa sulla frequenza d'uso per effettuare una conversione, che viene eseguita in due passaggi. Un esempio è Modified Huffman (mh), utilizzato in alcuni apparecchi fax.
Un secondo modo per classificare gli algoritmi di compressione e quello che i programmatori non professionisti incontrano più spesso è se sono senza perdita o con perdita. Un algoritmo di compressione dei dati senza perdita di dati è uno che comprime i dati in modo tale che quando viene decompresso, è esattamente identico al file originale. Un esempio di algoritmo di compressione dei dati senza perdita di dati è lzw (algoritmo di Lempel-Ziv-Welch). Sviluppato nel 1977 da Lempel e Ziv e migliorato nel 1984 da Welch, viene utilizzato in file come GIF, TIF e PDF, nonché in alcuni modem.
Un algoritmo di compressione dei dati con perdita di dati ha la capacità di ridurre i dati a dimensioni inferiori rispetto alla compressione senza perdita di dati, ma a scapito di alcuni dei dati originali. In altre parole, il ripristino a seguito della compressione con perdita di dati non fornisce una copia identica del file originale. L'algoritmo di compressione è, tuttavia, progettato per limitare le perdite in modo che non siano evidenti all'orecchio o all'occhio. La compressione con perdita di dati viene utilizzata in formati di file come AAC, JPEG, MPEG e MP3.