Come funziona la compressione dei file?
Abbiamo tutti sentito parlare della compressione dei file. Chi scarica regolarmente file dal web ha familiarità con formati come ZIP e RAR e chiunque modifichi file multimediali sa che è necessaria la compressione per condividere immagini, musica e video sul Web senza utilizzare tutta la larghezza di banda. La compressione dei file è al centro di come funziona il web, si potrebbe obiettare, perché ci consente di condividere file che altrimenti richiederebbero troppo tempo per essere trasferiti. Ma come funziona?
Non è niente di magico, ma è il risultato di un sacco di duro lavoro da parte di molte persone molto intelligenti. Esploriamo come funziona la compressione dei file esaminando i due principali tipi di compressione: lossless e lossy.
Solo un avvertimento - ho intenzione di semplificare eccessivamente le cose qui nel tentativo di renderle leggibili da non esperti di matematica. Dai un'occhiata agli articoli di Wikipedia collegati per maggiori informazioni e alle fonti di Wikipedia per saperne di più.
Compressione senza perdite
La compressione senza perdite funziona fondamentalmente rimuovendo la ridondanza. Cosa significa? Semplifichiamo le cose. Questa pila di mattoni rappresenterà i nostri dati:
Come puoi vedere, abbiamo due mattoni rossi, cinque gialli e tre blu. Il modo più semplice per rappresentarlo è come vedi sopra: i mattoni stessi. Ma non è l'unico modo in cui posso rappresentarlo. Potrei anche fare questo:
Nell'immagine sopra puoi vedere esattamente le stesse informazioni - due rosso, cinque giallo e tre blu - ma occupa molto meno spazio. Ho rappresentato mattoni ridondanti usando numeri, il che significa che ho bisogno solo di tre mattoni per rappresentare dieci.
Questo ti dà un'idea approssimativa di come sia possibile una compressione senza perdite. Le informazioni ridondanti vengono sostituite con istruzioni che indicano al computer la quantità di dati identici che si ripetono. Un altro esempio semplificato:
fffffffuuuuuuuuuuuu
Può essere “compresso” a:
f7u12
Questo è solo un metodo di compressione senza perdita, ovviamente, ma indica come ciò sia possibile. Vengono utilizzati altri trucchi matematici, ma la cosa principale da ricordare sulla compressione senza perdita di dati è che mentre lo spazio viene temporaneamente salvato, è possibile ricostruire il file originale interamente da quello compresso. Se vedi tre mattoncini con i numeri sai esattamente come fare la pila. Nessuna informazione viene persa, proprio come implica il nome lossless.
Programmi come WinZip si basano sulla compressione senza perdita di dati. Rimuovono queste informazioni ridondanti quando si comprime (o “cerniera lampo”) il file e ripristinarlo quando si decomprime (o “Unzip”). Niente è perso.
Nel mondo dell'immagine, i file PNG utilizzano anche la compressione senza perdita di dati. Questo è il motivo per cui offrono una dimensione file più piccola per le immagini con molto spazio uniforme: le informazioni ridondanti sono rappresentate utilizzando le istruzioni.
Naturalmente, questa è una semplificazione eccessiva, ma ha il punto di partenza. Maggiori informazioni sulla compressione senza perdita su Wikipedia, se sei interessato.
Compressione lossy
Naturalmente, c'è solo così tanto che puoi realizzare usando solo metodi lossless. Fortunatamente non sono l'unica opzione: puoi anche semplicemente rimuovere le informazioni. Questa è chiamata compressione con perdita e non è così folle come sembra; in effetti, probabilmente hai molti file sul tuo computer creati usando la compressione con perdita.
Un MP3, per esempio. Se sei come la maggior parte delle persone, il tuo computer ne memorizza migliaia, ma sai che non contengono tutte le informazioni audio della registrazione originale? Alcuni suoni, che gli umani non possono o possono a malapena udire, vengono rimossi come parte della compressione. Più comprimi un file e più informazioni vengono rimosse, motivo per cui un file troppo compresso inizierà a sembrare fangoso.
La compressione con perdita di dati tende principalmente a essere utilizzata per i file multimediali: immagini, suoni e video. L'utilizzo della compressione con perdita per un file di testo sarebbe problematico, in quanto le informazioni risultanti sarebbero confuse. Tuttavia, non è sempre necessario che i file multimediali includano tutte le informazioni.
Un altro esempio di compressione con perdita è l'immagine JPEG. Generalmente le immagini viste sul web non devono essere di alta qualità come le immagini destinate alla stampa. Come tale, è possibile rimuovere molte informazioni ridondanti in un'immagine Web, anche se così facendo apparirebbe terribilmente stampato.
Ovviamente, la compressione ripetuta di un file con metodi con perdita riduce la qualità: ogni volta che lo si esegue, si perdono più dati. Di seguito una foto che ho compresso tre volte per dimostrarlo:
Puoi vedere da sinistra a destra come diminuisce la qualità. Potrebbe non essere importante, a seconda di cosa verrà usata l'immagine, ed è per questo che esiste una compressione con perdite.
È importante ricordare che i file compressi con metodi lossy perdono effettivamente i dati, il che significa che non è possibile ricreare il file originale da uno compresso utilizzando metodi lossy. È ovvio quando ci pensi, ma molti progetti di stampa sono stati rovinati per mancanza di comprensione di questo punto chiave.
Qui ho solo graffiato la superficie, quindi per favore: leggi di più sulla compressione con perdita su Wikipedia. È un po 'affascinante.
Conclusione
La compressione ha contribuito a rendere il Web quello che è. Nei giorni di dialup le immagini compresse hanno portato foto al nostro browser, almeno non ad una velocità accettabile. I video compressi rendono possibili siti come YouTube, e chiunque usi le reti di condivisione file ha familiarità con i file ZIP e RAR.
Hai qualcosa da aggiungere? Sono sicuro di aver perso alcuni punti chiave per educare me (e gli altri lettori) nei commenti qui sotto.
Immagine di credito: immagine di primavera tramite Shutterstock
Scopri di più su: Compressione dei file.