4 Creare contenuti per il web - Andrea Giachetti
4 Creare contenuti per il web - Andrea Giachetti
4 Creare contenuti per il web - Andrea Giachetti
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
104<br />
128 livelli<br />
16 livelli<br />
64 livelli 32 livelli<br />
8 livelli 2 livelli<br />
Figura 47: Stessa immagine con range dinamico (numero di livelli di grigio) variato. Si noti la<br />
comparsa dei cosiddetti “falsi contorni” (posterizzazione).<br />
calcolatore riguarda naturalmente la quantità di memoria richiesta, che ne renderebbe<br />
problematica la memorizzazione sui vari supporti e la trasmissione.<br />
Una foto acquisita con una fotocamera da 8 megapixel, ad esempio, occu<strong>per</strong>à, se codificata con<br />
4 byte <strong>per</strong> pixel, ben 32 Megabyte. Questo vuol dire che, <strong>per</strong> trasferirla con un collegamento<br />
veloce a 4 Megabit/s occorrerebbe comunque più di un minuto!<br />
Per questo motivo sono stati via via adottati vari metodi <strong>per</strong> codificare in maniera più compatta<br />
le immagini. Si parla in tal caso di tecniche di compressione, in quanto appunto comprimono lo<br />
spazio occupato dai f<strong>il</strong>e immagine in memoria. Tutti i principali formati di immagini che<br />
usiamo comunemente sfruttano adeguatamente queste tecniche.<br />
Le tecniche di compressione possono essere di due tipi: lossless, cioè senza <strong>per</strong>dita, tali che <strong>il</strong><br />
f<strong>il</strong>e contenga comunque la stessa informazione ut<strong>il</strong>e (e <strong>per</strong>metta quindi di ricostruire<br />
esattamente lo stesso dato di partenza), o lossy, in cui parte dell'informazione ut<strong>il</strong>e sia<br />
irrimediab<strong>il</strong>mente <strong>per</strong>duta nell'o<strong>per</strong>azione.<br />
Per dare un idea di come possano funzionare tecniche di compressione lossless, possiamo<br />
accennare a due algoritmi molto usati: <strong>il</strong> Run Length Encoding (RLE), che sfrutta l'idea di<br />
codificare sequenze di dati con lo stesso valore mediante <strong>il</strong> valore stesso e la lunghezza della<br />
sequenza, oppure la codifica non uniforme, che usa un codice con numero di bit ridotto <strong>per</strong> i<br />
valori più frequenti nei dati. Naturalmente questi metodi possono ottenere buoni risultati<br />
soltanto <strong>per</strong> tipi di immagini piuttosto semplici e regolari.<br />
I metodi lossy, invece, cercano di eliminare quella parte dell'informazione che non è r<strong>il</strong>evante ai<br />
fini della <strong>per</strong>cezione umana, in modo tale che l'utente non si renda conto della differenza. Un<br />
modo semplice può essere, ad esempio, quello di diminuire lo spazio occupato dalla codifica del<br />
colore. Un'idea spesso ut<strong>il</strong>izzata è, anziché memorizzare <strong>per</strong> ogni pixel la terna RGB, salvare<br />
<strong>per</strong> ogni pixel un indice che corrisponde a un colore specificato su una tavolozza (colormap). Se<br />
l'immagine ha un numero limitato di colori, questo consente di ridurre anche notevolmente lo<br />
spazio necessario <strong>per</strong> la memorizzazione dell'immagine. Riducendo <strong>il</strong> numero di colori della<br />
tavolozza si otterranno via via versioni sempre più “compresse” anche se qualitativamente<br />
deteriorate delle immagini.