Tutti sappiamo, più o meno, come comprimere un file. Pochi conoscono il processo e le tecniche nascoste dietro questa operazione. Scopriamole assieme

Chiunque abbia usato un computer per un po’ di tempo ha avuto inevitabilmente a che fare con la compressione dei file. Che si navighi in Internet, si ascolti una traccia musicale, si guardi un video o si scorrano delle immagini, la compressione gioca sempre e comunque un ruolo fondamentale. Si potrebbe addirittura dire chel’intera infrastruttura della Rete si regge sulla compressione dei file, grazie alla quale è possibile scambiare dati e informazioni in maniera più semplice e veloce.

D’altronde, tutti o quasi sanno come comprimere un file in formato ZIP o RAR utilizzando uno dei tanti programmi disponibili. Pochi (o nessuno) sanno però come funziona il processo alla base della compressione.

Cos’è la compressione dei file

Quando si parla di compressione in ambito informatico si intende il processo che permette di ridurre le dimensioni di un file grazie all’utilizzo di specifici algoritmi. Utilizzando metodi statistici è infatti possibile eliminare le informazioni ridondanti all’interno di un’immagine, un video o una traccia musicale ed ottenere un nuovo file di dimensioni ridotte. Inutile dire che la compressione ha una lunga serie di vantaggi, primo fra tutti la riduzione dell’utilizzo di risorse informatiche come lo spazio sul disco rigido e il consumo di banda di trasmissione dati nel caso di connessione alla Rete.

Per comprimere i file possono essere utilizzate due differenti strategie: la prima, chiamata lossless, permette che nel processo di compressione non vada persa alcuna informazione; la seconda, chiamata lossy, permette di ridurre le dimensioni dei file eliminando informazioni ritenute superflue.

Come funziona la compressione lossless

Nel comprimere un file utilizzando una tecnica lossless (senza perdita in italiano), l’algoritmo utilizza tecniche statistiche per eliminare parte delle informazioni che si ripetono (e quindi ridondanti) sostituendole con delle istruzioni che dicono al computer come ‘ricomporre’ il file al momento della decompressione.

Le immagini che seguono possono aiutarci a capire meglio come funziona questo processo.

Nella prima abbiamo un totale di dieci mattoncini, di cui due rossi, cinque gialli e tre blu.

Come comprimere un file con tecnica lossless

Nella seconda, a seguito del processo di compressione, abbiamo solamente tre mattoncini – uno per ogni colore – ognuno dei quali porta con sé le istruzioni necessarie alla decompressione.

Come comprimere un file con tecnica lossless

In questo caso abbiamo a che fare con una tecnica lossless: l’algoritmo utilizzato, infatti, ha ridotto le dimensioni occupate dai mattoncini sostituendo alle ridondanze (i mattoncini dello stesso colore che si ripetevano) le istruzioni.

La stringa ffffffffuuuuuuuuuuuuu potrebbe essere compressa con tecnica losslessnella stringa f8u13, dove i numeri indicano il numero di volte che le lettere si ripetono nella stringa originale. Programmi come WinZip, WinRar e 7Zip utilizzano tecniche di questo tipo: grazie ad algoritmi molto sofisticati, riescono ad individuare informazioni o schemi che si ripetono all’interno del file e li sostituiscono con porzioni di codice meno pesanti.

Tecniche lossless, però, trovano ampio utilizzo in ambito multimediale. Il formato immagine PNG e il formato audio FLAC, ad esempio, sono file compressi che mantengono intatto il loro contenuto informativo.

Come funziona la compressione lossy

La gran parte dei file multimediali utilizza tecniche lossy (con perdita in italiano). Ciò accade perché un file multimediale (immagine, video o audio che sia) non contiene moltissimo contenuto ridondante e l’utilizzo di tecniche lossless per comprimere file di questo genere porterebbe a risultati piuttosto scarsi. Gli algoritmi di compressione lossy, invece, agiscono su porzioni di informazioni ritenute non necessarie, eliminandole. In questo modo, il file risultante è più piccolo del file nativo ma di qualità inferiore.

Un file immagine formato JPEG e un file audio formato MP3 sono i due esempi più noti di compressione con perdita. Nel caso delle immagini, l’algoritmo agisce più o meno in questa maniera. In una foto con sfondo dello stesso colore ma dalle tonalità non uniformi, l’algoritmo andrà a selezionare il colore predominante e lo sostituirà, quando possibile, alle altre sfumature. Così facendo la dimensione del file sarà ridotta – dovranno essere conservate meno informazioni e quindi meno bit – ma il risultato sarà comunque accettabile.

Stessa immagine con diversi livelli di compressione

Nel caso delle tracce audio, invece, la compressione agirà a livello di bitrate: il flusso dei dati verrà compresso a favore della dimensione del file e a discapito della qualità audio. Per l’orecchio umano, comunque, le differenze saranno minime.

Il grande problema della compressione lossy è dato dal fatto che non prevede un percorso “inverso”. Mentre un file lossless può essere decompresso e riportato alle sue dimensioni – e qualità – originarie, ciò non accade per un file compresso con perdita. Per questo è consigliabile utilizzare sempre tecniche di compressione senza perdita quando è necessario comprimere un file e, allo stesso tempo, conservare intatto il suo contenuto informatico.

[sgmb id=”1″]