12.12.2012 Views

4 Creare contenuti per il web - Andrea Giachetti

4 Creare contenuti per il web - Andrea Giachetti

4 Creare contenuti per il web - Andrea Giachetti

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!