Se hai mai dovuto inviare per e-mail, caricare o scaricare diversi file o programmi di grandi dimensioni, molto probabilmente hai incontrato i file ZIP. Conosciuti anche come file compressi o archiviati, i file ZIP condensano più file in una singola posizione con l’estensione .zip o .ZIP, riducendo la dimensione complessiva e rendendoli più facili da trasmettere.
Phillip Katz ha inventato il file ZIP nel 1986, ed è stato inizialmente implementato con il programma PKZip per la società di Katz, PKWare, Inc. Alla fine, il metodo di compressione di Katz divenne di uso comune nei sistemi operativi più diffusi. Microsoft Windows e Apple Mac OS includono utility integrate per comprimere e decomprimere i file, e programmi come WinRAR, WinZip e StuffIt possono espanderli.
Ma come funziona tutto questo? Che tipo di magia tecnologica è in gioco che rende i tuoi file più piccoli mantenendo tutte le informazioni per dopo?
Questa “magia” è in realtà un algoritmo abbastanza semplice che prende gli aspetti ridondanti di un file e li spezza in parti più piccole.
Per un esempio facile da capire, prendiamo la frase “Mashable può aiutare a rendere i lettori più intelligenti; i lettori possono aiutare a rendere Mashable più intelligente” e facciamo finta che sia un file.
Ogni parola nella frase di esempio appare due volte. Se ogni carattere e spazio in questa frase costituisse un’unità di memoria, il tutto avrebbe una dimensione di file di 78 unità. Se creassimo un codice numerato – o “dizionario” – per questa frase, potrebbe essere qualcosa del genere:
1. Mashable
2. can
3. help
4. make
5. readers
6. smarter
Questa nuova frase ha solo 24 unità. Pertanto, il file compresso avrebbe solo 24 unità di memoria oltre a un altro file che elenca il nostro codice numerato, in modo che il programma di compressione sappia come applicare ogni unità di informazione. Questa è chiamata “compressione senza perdita”; tutte le informazioni originali vengono conservate.
Il modo in cui un vero programma di compressione funziona è un po’ più complicato dell’esempio precedente – riconoscerebbe i modelli. Un esempio è la lettera “e” e uno spazio dopo “Mashable” e “make”. Ma dato che non ci sono molte istanze in cui questo particolare schema si verifica, il programma molto probabilmente lo sovrascriverebbe con uno schema più evidente. Il programma attuale è in grado di trovare un dizionario e un file compresso molto più efficiente di quanto potremmo fare noi.
Secondo il sito web educativo e istruttivo HowStuffWorks, è comune per le lingue avere modelli ridondanti, che è il motivo per cui i file di testo sono facilmente compressi. Ma il rapporto di riduzione del file dipende da diversi fattori, tra cui il tipo e la dimensione del file e come il programma sceglie di comprimerlo.
Al contrario, le immagini e i file MP3 contengono più informazioni uniche senza molti schemi. È qui che entra in gioco la “compressione lossy” – i programmi di compressione si liberano di ciò che ritengono informazioni non necessarie. Se hai un’immagine scannerizzata, per esempio, con un cielo blu, un programma di compressione potrebbe scegliere un colore di blu usato per ogni pixel. Se lo schema di compressione funziona bene, il cambiamento non sarebbe molto evidente, ma la dimensione del file sarebbe significativamente più piccola.
Il problema con la compressione lossy, però, è che non è possibile ottenere il file originale dal file compresso, rendendolo meno ideale della compressione lossless quando è necessario mantenere tutte le informazioni originali, come quando si scaricano i database e alcune applicazioni.
Mashable composite image courtesy of , tose, Auris.