Formati di compressione
Sul web la banda passante è sempre stata, ed è tuttora, un bene prezioso che è importante non sprecare. Questa esigenza, tanto più sentita quando si ha necessità di trasportare grosse moli di dati (come accade ad esempio per le immagini), ha portato, fin dagli albori della rete, a cercare dei sistemi che riducessero il numero di byte da trasportare per veicolare un certo messaggio.
Alla base l'idea è quella di compattare i dati prima di spedirli e poi, una volta ricevuti, scompattarli per poterli ottenere nuovamente identici. Questo è, infatti, proprio ciò che accade anche quando si utilizzano noti programmi di compressione, come ZIP o RAR.
Cosa si intende per metodo di compressione?
I metodi di compressione sono dei metodi matematici di trattamento dei dati che permettono di manipolare le informazioni in modo tale da ridurre al massimo il numero di byte necessari per immmagazzinarle.
Come funzionano?
Il loro funzionamento dipende in maniera sostanziale dal particolare metodo matematico usato. Per darvi un'idea prendo ad esempio l'algoritmo di compressione usato dal formato GIF, uno dei più famosi.
GIF utilizza il metodo di compressione LZW (iniziali dei suoi inventori Lempel-Ziv e Welch). Questo metodo, tra le varie tecniche che utilizza, si preoccupa anche di memorizzare il colore di una sequenza, quando questa è monocromatica, invece che il colore di ogni singolo byte di cui è composta.
Per esempio, invece di memorizzare la sequenza rosso-rosso-rosso-rosso-rosso-rosso-rosso-rosso-rosso-rosso-verde-verde-blu-
blu-blu-rosso.
Il metodo LZW memorizza i dati riguardanti il colore dicendo:
10 rossi -> 2 verdi -> 3 blu -> 1 rosso
E' facile capire come immagini con vaste aree di colore uniforme possano venire quindi molto compresse dal formato GIF, mentre immagini con sfumature molto graduali vengano ben poco compresse.
Il metodo LZW è molto vecchio: la sua prima versione risale al 1978, e, come sempre accade, la scienza fa passi da gigante e l'informatica la segue a ruota. Più tardi, infatti, ci si è resi conto che alcune informazioni trasportate e riprodotte sono rindondanti o addirittura del tutto inutili.
Questo capita perchè alcuni nostri sensi, come la vista o l'udito, sono imperfetti, e spesso riescono a percepire assai meno informazioni di quelle che gli si possono mettere a disposizione.
Si è quindi pensato che, nei casi in cui si debbano trasportare, per esempio, immagini o suoni, si possano eliminare alcune informazioni senza compromettere per questo la qualità; ovviamente questo non è praticabile se ad essere trasportato dev'essere qualcosa che deve risultare intonso, come un testo o un software.
Da questa idea nel 1991 è nato il formato JPEG, che si basa sulla scoperta che l'occhio umano ha dei recettori di luminanza (bianco e nero) molto più precisi rispetto a quelli di crominanza (colore). Il metodo JPEG infatti separa i due canali dell'immagine (luminosità e colore) e applica algoritmi differenti, più precisi sulla luminosità e più drastici sul colore, ottenendo così compressioni molto buone.
Per questo metodi di compressione si distinguono in due grandi gruppi:
Metodi con perdita (o Lossy)
Metodi senza perdita (o Lossless)
Metodi Lossy
I metodi Lossy sono quei metodi che, proprio per comprimere al massimo i dati, scartano alcune delle informazioni riguardanti l'immagine originale.
Sono metodi molto vantaggiosi per aumentare al massimo la velocità di scaricamento, ma irreversibili:
ogni qual volta una immagine viene salvata in un formato lossy, vengono perse alcune informazioni, che non sono più recuperabili, a meno naturalmente di non averne conservato un altro salvataggio in un formato lossless.
Proprio a causa di questa loro caratteristica, è assai sconsigliabile fare progressive modifiche e salvataggi in questo tipo di formati, perchè ad ogni passaggio la qualità peggiorerà e sarà sempre meno fedele all'originale.
Conviene invece salvare in un formato senza perdita fino a lavoro ultimato, e solo in ultima istanza salvare in un formato con perdita.
L'esempio più classico di formato lossy per quanto riguarda le immagini è il JPEG; un altro esempio di formato lossy assai usato oggi in rete è l'MP3.
Metodi Lossless
I metodi lossless sono invece i metodi che non hanno perdita di informazioni; ovviamente essi risultano sempre meno efficaci nell'ottimizzare lo scaricamento dei dati, ma hanno il grande pregio di mantenere costanti e stabili le informazioni contenute nell'originale.
Formati lossless per le immagini web sono il GIF e il PNG, uno dei tanti formati lossless per l'audio è il WAV.