Che cos'è e come funziona la compressione

Che cos'è e come funziona la compressione

FiL

Definizione

La compressione permette la memorizzazione di informazioni tramite l'uso del numero minore possibile di bit rispetto a quelli di partenza.

La compressione può essere di due tipi: "lossless" o "lossy".

Nella compressione lossless si cerca di ridurre il numero di bit identificando la loro ridondanza statisticamente. In questo tipo di compressione non c'è perdita di dati.

Ogni singolo bit che era presente nel file originale prima delle compressione risulterà anche dopo che il file sarà decompresso.

Nella compressione lossy, invece, si riduce il numero di dati eliminando quelli non necessari o che contengono informazioni meno importanti.

In questo caso, dopo la decompressione, non tutti i bit originali saranno presenti.

La differenza sostanziale nei due tipi compressione sta nel fatto che nella lossless tutti i dati dopo la decompressione risulteranno gli stessi, a discapito del peso finale del file; mentre nella lossy alcuni dati andranno persi a favore di un peso finale ridotto.

Ovviamente il primo tipo è quello più usato da programmi come WinRar, WinZip etc.

Da questa introduzione, si può dedurre che la compressione dati è molto utile in quanto riduce le risorse necessarie per immagazzinare o trasferire i dati.

Come funziona?

Prendiamo come esempio la seguente sequenza di lettere:

aaabbbaaabbaaabbaaabbaaa

Questa sequenza è composta da 24 caratteri. Si può notare che in essa è presente un'ampia ripetizione della lettera "a". Questa situazione è nota anche come ridondanza statistica, quindi, conoscendo i due metodi di compressione più usati, sappiamo che il migliore da utilizzare in questo caso è quello lossless.

Andiamo quindi ad individuare le più lunghe sequenze comuni di "a" che si ripetono e cerchiamo di rappresentarle nuovamente ma usando un minor numero di bit. In questo caso la ripetizione più lunga è "aaa". Una volta determinato ciò decidiamo di sostituire la sequenza in questione con un altro carattere o simbolo, ad esempio "%".

Otterremo quindi che:

% = aaa

e a questo punto che la sequenza iniziale venga ridotta a:

%bbb%bb%bb%bb%

Con l'aggiunta del carattere "%" in sostituzione alla ripetizione "aaa" abbiamo creato un informazione di lettura chiamata dizionario. Questo, per l'appunto, dice che se vogliamo comprimere la sequenza sopracitata dobbiamo sostituire ad ogni "aaa" il carattere "%". Questo avviene in modo inverso nella decompressione.

Andando ora a contare il numero di caratteri totali, notiamo che abbiamo bisogno solo di 5 + 9 = 14 caratteri per rappresentare le informazioni della sequenza iniziale.

Conclusioni

Se ti è mai capitato di usare programmi di compressione come WinRar o WinZip, avrai anche notato che al termine delle operazioni di compressione, il peso di alcuni file risulterà minore di quello di altri. Questo perché la compressione diventa davvero efficace quando sono presenti molti schemi di ripetizioni; la famosa ridondanza statistica di cui parlavamo prima.

Report Page