Gestione immagini digitali ITI OMAR Novara I principali formati di compressione delle immagini Il classico “Bitmap” Il formato standard di codifica digitale delle immagini è quello definito “bitmap”, ovvero a mappa di bit, dove la caratteristica luminosa e cromatica di ogni pixel viene “descritta” tramite una serie di bit che rappresentano il contributo di ciascuna delle componenti in cui viene effettuata la codifica, che può essere di tipo RGB, HSB, CMYK, o altre ancora. Vari tipi di codifica Codifica RGB. La tecnica RGB utilizza una rappresentazione dei pixel in base al valore numerico (che va da 0 a 255) di ciascuna delle componenti primarie di rosso (Red), verde (Green) e azzurro (Blue) del colore nella sintesi detta “additiva”, ovvero quella che attua la nostra vista. L’occhio, infatti, ha una percezione “sintetica” dei colori, in quanto non riesce a distinguere le singole componenti di colore, né se sono sovrapposte (gli stessi punti dell’immagine emettono radiazioni di diversa frequenza), né se sono tropo vicine (l’occhio presenta una risoluzione angolare limitata), né se sono in movimento (l’occhio di fatto “integra” le immagini con una velocità superiore alle 10 componenti al secondo). Gli altri colori vengono ottenuti in maniera analoga, ovvero sommando differenti proporzioni delle singole componenti R,G,B. La tecnica RGB è quella che nella realtà viene utilizzata per ottenere i colori nei televisori, nei monitor e nelle sorgenti di illuminazione. Paolo De Vittor pag. 1 Gestione immagini digitali ITI OMAR Novara Codifica CMYK. Poiché nella stampa delle immagini la resa dei colori è basata sulle propietà di assorbimento della luce da parte degli inchiostri utilizzati, al fine di fornire alle periferiche di stampa un’informazione corretta sul modo di rappresentare i colori si preferisce utilizzare una codifica detta “sottrattiva” dei colori, in quanto il colore che l’occhio vede sulla superficie di un oggetto è in realtà la somma delle radiazioni ottiche che vengono riflesse dall’oggetto, mentre le altre vengono assorbite (e trasformate in calore). La denominazione CMYK deriva dai colori utilizzati per questo tipo di rappresentazione, ovvero il Ciano, il Magenta, il giallo (Yellow) ed il nero (K), che guarda caso sono quelli derivati ciascuno dalla somma di due colori primari RGB (vedi figura). La stessa tecnica CMYK viene fra l’altro applicata non solo nella realizzazione delle stampe su carta, ma anche nella colorazione di tutti i supporti basati sull’assorbimento dei colori, quali ad esempio le emulsioni per i supporti fotografici (foto e diapositive), i tessuti, i vetri e tutti gli oggetti colorati di uso comune. Codifica HSB (o HSL): l’occhio umano, in realtà, utilizza un “criterio” di analisi delle varie componenti dell’immagine basato su tre parametri: tonalità di colore o tinta (Hue), saturazione del colore (Saturation) e sua luminosità (Brightness o anche Luminance), esemplificata dai due diagrammi cromatici qui riportati. Altre codifiche. Esistono altresì altri tecniche per codificare i colori, utilizzate soprattutto nelle stampe professionali ad alta risoluzione, che e si basano su precise codifiche dei vari tipi di colore e delle loro varie tonalità, come ad esempio Pantone, Truematch, Focoltone, ecc.. Nel formato bitmap ciascun valore numerico delle singole componenti suddette viene ottenuto per “digitalizzazione” diretta, ovvero tramite conversione analogico-digitale dei valori rilevati dai sensori d’immagine (CCD oppure CIS) presenti nei dispositivi di cattura delle immagini (fotocamere e videocamere digitali, scanner, fotocopiatrici, ecc.). Paolo De Vittor pag. 2 Gestione immagini digitali ITI OMAR Novara Il formato TIFF Il TIFF (Tagged Image File Format) è uno dei formati con il maggior numero di varianti, al punto che quasi nessun editor grafico è in grado di supportarli tutti, a causa dell’elevata differenza fra i vari sotto-formati. E’ molto diffuso in quanto permette di codificare i file grafici senza perdita di informazione (si tratta di una tecnica lossless) con la possibilità di attuare una certa compressione oppure no, con più varianti. Sviluppato da Aldus Corporation (ora Adobe Systems), esso supporta vari formati grafici, con profondità di colore da 1-bit (B/N formato Fax gruppi 3 e 4 con e senza compressione Huffman) fino a 24-bit (True-color); la maggior compressione (0,8:1) è ottenibile con la tecnica LZW. Esistono altresì alcune recenti versioniche supportano nuove funzionalità, quali ad esempio il formato multipagina (MPF) e con compressione JPEG. Il formato GIF Il formato GIF (Graphic Interchange Format) fu diffuso negli anni Ottanta come metodo efficiente di trasmissione delle immagini su reti di dati. All'inizio degli anni Novanta i webdesigner lo adottarono per l'efficienza che offriva. Oggi la stragrande maggioranza delle immagini sul web è in questo formato. Il formato GIF usa una forma di compressione LZW (Lempel-Zif-Welsh) che mantiene inalterata la qualità dell'immagine, ovvero riduce le dimensioni del file senza pregiudicare la qualità dell'immagine. La profondità dei colori delle immagini GIF è di 8 bit, che consente di usare una tavolozza di 256 colori. Meno colori si usano e maggiori saranno le possibilità di compressione, ovvero minori saranno le dimensioni del file. Lo schema di compressione LZW è più adatto a comprimere immagini con grossi campi di colore omogeneo ed è meno efficiente nella compressione di immagini complicate con molti colori e grane complesse. E' conveniente sfruttare le caratteristiche della compressione LZW per ridurre le dimensioni delle immagini GIF. La strategia consiste nel ridurre il numero di colori in un'immagine GIF al numero minimo necessario e nell'eliminare i colori isolati non necessari per la rappresentazione dell'immagine. Un'immagine GIF può avere al massimo 256 colori, ma può anche averne meno, fino a un minimo di due (bianco e nero). Le immagini con meno colori sono compresse più efficacemente con la compressione LZW. La tecnica LZW consente anche di salvare le immagini in un formato detto “ interlacciato”, che produce una visualizzazione graduale di un'immagine in una serie di passate sempre più definite a mano a mano che i dati arrivano al browser. Ogni nuovo passaggio crea un'immagine più nitida fino al completamento dell'intera immagine. Molti utenti trovano attraente l'effetto "da sfocato a nitido" dell'interallacciamento, ma il vantaggio più importante di questa tecnica è che offre un'anteprima dell'intera area dell'immagine mentre l'immagine viene scaricata sul browser. Si noti che l'interallacciamento non ha effetti significativi sulle dimensioni dei file GIF. Paolo De Vittor pag. 3 Gestione immagini digitali ITI OMAR Novara Il formato GIF consente anche di scegliere nell'immagine un colore che risulterà trasparente nel browser. Nelle aree di colore contrassegnato come trasparente, verrà visualizzato il colore di sfondo della pagina. Purtroppo la proprietà trasparente non è selettiva: se rendiamo trasparente un colore, ogni pixel dell'immagine caratterizzato da tale colore diventerà a sua volta trasparente, e questo può produrre risultati imprevisti. Il formato JPG Un altro formato grafico utilizzato di frequente sul Web per ridurre le dimensioni dei file grafici é lo schema di compressione JPEG (Joint Photographic Expert Group). A differenza delle immagini GIF, le immagini JPEG sono policrome (24 bit, o 16,8 milioni di colori). Questo tipo di immagini ha generato un altissimo interesse tra fotografi, artisti, progettisti grafici, specialisti della composizione di immagini mediche, storici dell'arte e altri utenti per i quali la qualità dell'immagine è d'importanza fondamentale e per i quali non è possibile accettare compromessi sulla fedeltà dei colori tramite retinatura di un'immagine a colori a 8 bit. Immagine JPEG con compressione 80 Una forma più recente di JPEG, chiamata JPEG progressivo, conferisce alle immagini JPEG la stessa gradualità di visualizzazione delle immagini GIF interlacciate; al pari di queste ultime, le immagini JPEG progressive impiegano spesso un tempo maggiore per lo scaricamento sulla pagina rispetto ai JPEG standard, ma offrono al lettore un'anteprima più rapida. La compressione JPEG utilizza una sofisticata tecnica matematica - chiamata “trasformazione discreta del coseno” o DCT - per produrre una compressione delle immagini. E' possibile scegliere il grado di compressione che si desidera applicare, anche se a discapito della qualità dell'immagine: infatti, più si comprime un'immagine, più si riduce la qualità dell'immagine stessa. Con il formato JPEG si possono raggiungere rapporti di compressione incredibili, riducendo le immagini di circa un centinaio di volte rispetto ai file originali; questo è possibile perché l'algoritmo JPEG scarta i dati non necessari durante la compressione dell'immagine e per questo motivo la tecnica di compressione è definita “a perdita” o anche “lossy”. Sta all’utente quindi sperimentare l'impostazione più adatta per creare un file dall'aspetto accettabile. Quando si creano immagini JPEG si ricordi sempre di salvare una copia dell'immagine originale. Infatti il formato JPEG degrada in modo permanente la qualità Paolo De Vittor pag. 4 Gestione immagini digitali ITI OMAR Novara dell'immagine, per cui dopo aver convertito un'immagine in formato JPEG, non è più possibile recuperare la qualità dell'immagine originale La compressione JPEG Il formato JPG può attuare una compressione delle immagini fino ad 1/50 della dimensione originale senza perdite apprezzabili della qualità delle immagini. Esso è stato sviluppato soprattutto per le immagini fotografiche, mentre per i disegni al tratto non offre risultati apprezzabili, anzi in alcuni casi può peggiorare la leggibilità di un immagine. Vi sono due metodi di compressione: uno detto “predittivo” e senza perdita d’informazione (lossless) ed uno basato sulla “trasformata discreta coseno” (DCT) con perdita d’informazione (lossy). Il metodo predittivo è basato sulla rimozione della ridondanza presente tra pixel successivi e sulla quantizzazione del contenuto informativo presente in un pixel che non può essere determinato dalla conoscenza dei pixel ad esso adiacenti. Infatti vengono utilizzati campioni già codificati dell’immagine per avere una "predizione", cioè una stima, del campione ancora da codificare. L’errore risultante dalla sottrazione di tale stima dal valore reale del campione viene quantizzato in un insieme di livelli discreti di ampiezze e poi codificato; poiché il campo di variabilità delle differenze è meno esteso del campo di variabilità dei valori reali, è possibile usare pochi livelli di quantizzazione senza che ciò comporti un alto livello di degradazione nell’immagine ricostruita. Nel sistema ricevente il segnale differenza decodificato viene ricostruito e sommato ad una stima fatta da un dispositivo di predizione identico a quello usato in fase di codifica, per avere una ricostruzione dell’immagine Nel metodo basato sull’applicazione della trasformata DCT l’immagine viene dapprima letta per righe, e poi analizzata in blocchi di 8x8 pixel sui quali viene effettuata una ricerca del grado di “dispersione” (entropia) dei parametri cromatici. In questa operazione, da ogni blocco di pixel vengono estratte informazioni relative alla frequenza con cui compaiono le informazioni cromatiche. Ogni blocco-base (raster) rappresenta le intensità cromatiche (da 0 a 255) per ciascun piano di colore R,G,B. La codifica “comprime” le variazioni (ovvero riduce il numero di variabili necessarie a rappresentarle), in modo da ridurre le dimensioni del file; in fase di decodifica (lettura del file) cerrà applicata la trasformata DCT inversa. Si tenga conto che nella fase di riduzione del numero delle variabili (matematicamente avviene di fatto con un’operazione di arrotondamento) si utilizzano algoritmi che tengono conto anche di studi di “psicovisuale”. Il formato PNG Il formato PNG (Portable Network Graphics) è stato sviluppato appositamente per il Web. Si tratta di un formato che secondo le intenzioni degli autori doveva sostituire il formato GIF. Questo formato - senza perdita di informazioni - comprime le immagini a 8 bit producendo file di dimensioni inferiori rispetto al GIF. Inoltre il formato PNG può essere utilizzato anche per la stampa delle immagini, e pertanto supporta immagini a colori a 8 bit, scale di grigio a Paolo De Vittor pag. 5 Gestione immagini digitali ITI OMAR Novara 16 bit e colori True Color a 24 bit. Anche se il formato PNG supporta il colore a 24 bit, la sua routine di compressione non è in grado di raggiungere l'efficienza del formato JPEG. Il formato PNG supporta le funzionalità di trasparenza e interallacciamento ma non l'animazione, anche se il consorzio W3C ha creato una bozza per il formato MPG (MultipleImage Network Graphics) che supporta l'animazione. Un'utile caratteristica del formato PNG è la capacità di incorporare del testo per offrire la possibilità di eseguire ricerche sulle immagini; è infatti possibile memorizzare nel file dell'immagine una stringa che identifica l'immagine stessa. Purtroppo il formato PNG non è ampiamente supportato e l'implementazione corrente delle immagini PNG in Netscape ed Explorer non supporta completamente tutte le sue funzioni. Il nuovo JPEG2000 Nato nel dicembre 2000 e proposto dallo stesso gruppo di JPEG (oggi formato da oltre 200 aziende), questo nuovo standard mira ad ottimizzare soprattutto la trasmissione delle immagini attraverso i protocolli di comunicazione a pacchetti, primo fra tutti il noto TCP/IP di Internet. Il nucleo del “motore” di Jpeg2000 è basato su di un codec che sfrutta le trasformate “wavelet”, e quindi differente da quello del classico Jpeg, basato sulla trasformata DCT, tale da consentire rapporti di compressione di ben 200:1. Nella tecnica wavelet utilizza - al contrario della DCT - una scala temporale (e quindi in frequenza) variabile, inversamente proporzionale alla risoluzione dei dettagli dell’immagine. Ciò significa che, dove l’immagine presenta una maggior densità di dettagli (maggior frequenza spaziale di variazione dei parametri cromatici) la finestra temporale di analisi e codifica viene “rallentata” in modo da acquisire un maggior numero di campioni. Ne deriva una rappresentazione digitale più precisa soprattutto nelle porzioni di immagine più complesse, con una minor occupazione di spazio grazie alle zone più omogenee dell’immagine, campionate a frequenza più elevata. Un algoritmo di questo tipo però necessita di hardware e software differenti da quelli attuali, che rallenteranno inizialmente l’introduzione del nuovo standard. Si pensa comunque che il nuovo Jpeg2000 posa imporsi anche su prodotti differenti dalle fotocamere digitali, come ad esempio PDA, telefoni cellulari 3G, computer di navigazione sulle auto, applicazioni medicali, consumer, ecc. Paolo De Vittor pag. 6