Sei sulla pagina 1di 6

CAPITOLO 2 - IMMAGINI

Coni e bastoncelli: coni sono sensibili al colore. Ce ne sono 3 tipi: blu, verdi e rossi, ognuno dei quali risponde a particolari lunghezze donda. Limmagine proiettata nel cervello proviene dalla risposta di 3 coni diversi allo spettro osservato. I 3 colori formano uno spazio vettoriale tridimensionale. Lo spazio di colori CIE XYZ definito a partire dallo spazio RGB. La Y rappresenta la funzione di efficienza rispetto la luminosit degli occhi umani. Il modello di colori LAB si basa sulla percezione umana del colore. I valori numerici dello spazio Lab descrivono tutti i colori percepiti da una persona con una visione normale. Un'immagine a colori un array 2-D di (R, G, B) triplette di interi. Queste triplette codificano quanto il fosforo corrispondente dovrebbe essere eccitato nei dispositivi. Ciano, magenta e giallo (CMY) sono i colori complementari di RGB. Nel CMYK la K indica il nero. La gamma dei colori tutti i colori che pu essere riprodotto utilizzando i tre colori primari. La gamma Lab copre tutti i colori dello spettro visibile. La gamma RGB pi piccolo, quindi, alcuni colori visibili (ad esempio puro giallo, ciano puro) non pu essere visto sui monitor. La gamma CMYK il pi piccolo (ma non un sottoinsieme rettilineo della gamma RGB). Il modello Y'UV definisce lo spazio dei colori in termini di 1 componente di luminosit (luma, Y') e 2 di crominanza (UV).Il modello Y'UV usato negli standard video a colori NTSC, PAL e composito SECAM. U rappresenta la differenza cromatica R-Y e V la differenza B-Y. In unimmagine in b/n U=V=0. La componente Y rappresenta l'informazione di luminanza, ed il componente usato solo dalle televisioni in bianco e nero. I e Q rappresentano le informazioni di crominanza, rispettivamente quella arancione-blu e viola-verde. Gli assi I e Q sono scalati e ruotati R - Y e B - Y (con 33 gradi in senso orario). Non una scala adattata alla percezione umana.

Y' il componente di luma mentre Cb e Cr indicano i componenti di crominanza. Il simbolo primo dopo la Y serve a distinguere il luma dalla luminanza. Lo Y'CbCr talvolta confuso con lo spazio colore YUV, e gli stessi termini YCbCr e YUV sono a volte usati come sinonimi, dando origine a un po' di confusione. Quando ci si riferisce a segnali di tipo video o in forma digitale, "YUV" significa probabilmente "Y'CbCr" nella maggior parte dei casi. Lo Y'CbCr non uno spazio colore assoluto. un modo di codificare l'informazione RGB, e i colori realmente visualizzati dipendono dai coloranti usati dal mezzo di visualizzazione. Di conseguenza, un valore espresso come prevedibile solo se sono usati coloranti RGB standard. E usato nelle compressioni Jpeg e Mpeg. La sintesi additiva dei colori quella usata dall'occhio che sintetizzano i colori affiancando punti colorati diversamente. In pratica un'immagine scomposta in tanti puntini (pixel) alternativamente rossi, verdi, blu. La sintesi sottrattiva dei colori ha natura diversa e in certa misura opposta a quella additiva. I tre colori fondamentali in sottrattivo sono i complementari dei tre colori fondamentali della sintesi

additiva: il giallo complementare del blu, il magenta complementare del verde, l'azzurro-ciano complementare del rosso. In inglese Yellow, Magenta, Cyan spesso sintetizzati dalla sigla YMC. La psicologia della Gestalt detta anche psicologia della forma, una corrente psicologica riguardante la percezione e l'esperienza. Con particolare riferimento alla percezioni visive, le regole principali di organizzazione dei dati percepiti sono: 1. Buona forma (la struttura percepita sempre la pi semplice) 2. Vicinanza (gli elementi sono raggruppati in funzione delle distanze) 3. Somiglianza (tendenza a raggruppare gli elementi simili). 4. Buona continuit (tutti gli elementi sono percepiti come appartenenti ad un insieme coerente e continuo). 5. Chiusura, le linee delimitanti una superficie chiusa si percepiscono come unit pi facilmente di quelle che non si chiudono, a parit di altre condizioni. 6. Esperienza, lesperienza modella le nostre impressioni. Se limmagine bitmap monocromatica, comunemente in bianco e nero, la sua memorizzazione allinterno del computer avviene in modo molto semplice, memorizzando una serie di bit corrispondenti ai vari pixel; se il pixel bianco il bit corrispondente 0; se il pixel nero il bit corrispondente 1. In questo caso sufficiente un bit per ogni pixel dellimmagine. Se limmagine bitmap a scala di grigio e prevede (come normalmente avviene) 256 possibili livelli di grigio, ad ogni pixel viene associato un valore che va da 0 (bianco) a 255 (nero); un valore intermedio, per esempio 127, indica che il pixel grigio al 50%. In tal caso, naturalmente, non sufficiente un bit per rappresentare un pixel, ma sono necssari 8 bit, cio un byte. Se limmagine bitmap in colore RGB, ogni pixel viene rappresentato con le relative percentuali di rosso, verde, blu (R, G, B, i primari additivi). Se, come comune, sono possibili 256 livelli per ognuno dei tre primari additivi, ogni pixel verr rappresentato con tre numeri ognuno da 0 a 255 e quindi con tre byte. Consideriamo un pixel di una immagine a colori RGB. Questo pixel pu assumere un determinato colore. Il colore del pixel a sua volta prodotto dalla sintesi additiva dei tre primari R, G e B che compongono il pixel. Normalmente sono possibili 256 colori per ogni primario R, G e B; quindi 256 possibili livelli di R, 256 livelli e G e 256 livelli B. Poich per memorizzare un livello tra 256 livelli sono necessari 8 bit, in questo caso la profondit di colore (bit depth) per ogni primario di 8 bit. Quindi, quando parliamo di profondit di colore, ci riferiamo al numero di bit con cui viene descritto il valore di luminosit del singolo primario. La visualizzazione di una immagine bitmap su monitor diretta perch limmagine ha una struttura raster esattamente come il monitor. Se invece si tratta di una immagine a color RGB, ogni tre byte in memoria corrisponderanno ad un pixel sul monitor; i tre valori diventeranno le luminosit dei primari. Contrariamente alle immagini bitmap, le immagini vettoriali vengono rappresentate in memoria con equazioni matematiche. Ogni programma utilizza un proprio metodo privato per memorizzare le formule dei diversi oggetti dellimmagine. Poich esistono moltissime curve diverse, e un programma non pu gestirle tutte, in computer grafica vettoriale viene normalmente utilizzato un tipo di curva, studiato per la prima volta nel 1972 dal matematico Pierre Bezir.Le coordinate x, y di un punto sono scritte in funzione del parametro t, al variare del quale le coordinate variano e descrivono una curva.Inoltre, uguali incrementi nel parametro producono circa uguali incrementi nella curva. Poich x e y sono immediatamente disponibili in termini di t, il programma non deve risolvere complicate equazioni.C comunque una difficolt: dato un punto sulla curva, non ovvio quale valore di t lo genera. Una difficolt correlata che non possiamo verificare facilmente se un dato punto nel piano giace sulla curva.Se dobbiamo scrivere x, y come funzioni di un parametro,

naturale scegliere funzioni che siano abbastanza semplici. Le funzioni pi semplici sono i polinomi, e quelli pi usati sono di terzo grado. I coefficienti del polinomio vengono scelti in modo che producano la curvatura desiderata. Normalmente t varia tra 0 e 1. Ma questa formula ha lo svantaggio che non chiaro cosa rappresentano i coefficienti. Bezir nel 1972 ha introdotto una variante a questa formula, scrivendola in modo diverso ognuno dei coefficienti nellespressione ha un significato relativo alla forma della curva. Lentropia di una sorgente dinformazione S definita come H(S)=i pi log2 (1/ pi), dove pi la probabilit di trovare il simbolo Si in S. Nella formula il logaritmo di 1/p rappresenta la quantit di informazione contenuta in Si. L'entropia misura la quantit di incertezza o informazione presente in un segnale aleatorio. La codifica di Shannon-Fano assegna a caratteri pi frequenti un codice costituito da pochi bit e a quelli meno frequenti un codice pi lungo. Il codice di Shannon-Fano e univocamente decodificabile e dipende dalla probabilit di apparizione delle varie stringhe. Maggiore e questa probabilit, minore la lunghezza della stringa codificata. L'algoritmo di Shannon-Fano funziona in questo modo: 1. Ordina i caratteri di un alfabeto A in modo non decrescente rispetto alla loro frequenza. 2. Suddivide A in due gruppi quasi equiprobabili; ai caratteri del primo gruppo viene assegnato come primo simbolo della codifica 0, a quelli del secondo gruppo 1. 3. Continua il processo in maniera ricorsiva, quindi ciascun gruppo viene suddiviso in due gruppi quasi equiprobabili e in modo analogo viene assegnato il secondo bit della codifica e cosi via. La codifica di Huffman e basata sul metodo per la costruzione di codici con minima-ridondanza. L'algoritmo costruisce un codice prefisso ottimo a lunghezza variabile, detto codice di Huffman. Utilizzando un codice a lunghezza fissa per rappresentare ciascuno di n caratteri con una stringa binaria servono log2n bit. 1. Inizializzazione: Metti tutti i nodi di una lista aperta, da mantenere sempre ordinata. 2. Ripetere finch la lista ha un solo nodo mancante: (a) selezionare dalla lista i due nodi che hanno le frequenze/probabilit pi basse, creare un nodo genitore di loro. (b) Assegnare la somma delle frequenze/probabilit dei nodi figli al nodo genitore e inserirlo nella lista. (c) Assegnare il codice 0, 1 per i due rami dell'albero, ed eliminare i nodi figli. Il codice di Huffman e un codice prefisso univocamente decodificabile. Un codice prefisso e contraddistinto dalla seguente proprieta: nessuna parola del codice e anche un prefisso di un'altra parola del codice. La decodifica invece avviene in questo modo: la parola iniziale del codice viene identificata senza alcuna ambiguita, siccome si tratta di un codice prefisso; viene quindi trasformata nel carattere originario, rimossa dal file codificato e viene ripetuto il procedimento di decodifica sulla parte rimanente del file codificato. La codifica di Huffman presenta comunque degli inconvenienti per cui, nonostante il codice venga definito ottimo siccome assegna codici pi brevi a sequenze pi probabili, questi ne limitano l'uso. In primo luogo, il primo passo prevede di passare in rassegna dall'inizio alla fine il messaggio che si vuole comprimere per stabilire quali sequenze appaiono pi frequentemente per creare la tabella

delle frequenze. Questo a sua volta porta a dover analizzare due volte i dati: la prima per calcolare le probabilit delle varie sequenze e elaborare il codice, e la seconda per codificare il messaggio. Questa ridondanza nell'elaborazione e causa di una perdita di velocit nella compressione. L'ideale sarebbe poter comprimere il messaggio man mano che viene letto, in modo da ottenere dei risultati in forma immediata. Questo e cio che fa l'algoritmo di Huffman adattativo. La codifica LZW (Lempel-Ziv-Welch) si fonda sulla ripetizione di stringhe di caratteri. L'algoritmo prevede la costruzione di un dizionario delle stringhe di simboli ricorrenti in un file, costruito in modo tale che ad ogni nuovo termine aggiunto al dizionario sia accoppiata in modo esclusivo un'unica stringa. Mappe Huffman simboli di lunghezza fissa per codici a lunghezza variabile. Ottimale solo quando le probabilit simbolo sono potenze di 2. Lempel-Ziv-Welch un metodo di compressione basata su dizionario. E le mappe un numero variabile di simboli di un codice di lunghezza fissa. Algoritmi adattati non hanno bisogno di una stima delle probabilit a priori, sono pi utili in applicazioni reali.

Compressione semplice: Enconding Troncamento si cancellano i bit meno significativi per ogni pixel Il troncamento influir molto sui contorni, l'immagine diventa simile ad un cartone animato. CLUT (Color Lookup Table) valori dei pixel nella bitmap rappresentano un indice in una tabella di colori (di solito 8bpp, cos l'immagine limitata a 256 colori). Run-length encoding blocchi di pixel ripetuti vengono sostituiti con un unico valore maggiorato di un conteggio. Tecniche dinterpolazione Codifica interpolativa a livello di pixel attraverso la trasmissione di un sottoinsieme dei pixel e mediante interpolazione per ricostruire i pixel adiacenti. Tecniche predittive Basate sul fatto che siamo in grado di memorizzare un elemento che usiamo per costruire lelemento successivo, che ci permette di trasmettere solo la parte dellinformazione che cambiata. DPCM Confronta i pixel adiacenti e trasmettere la loro differenza, perch i pixel adiacenti sono probabilmente simili al valore differenza che ha un'alta probabilit di essere piccolo e pu essere tranquillamente trasmesso con meno bit. ADPCM DPCM adattiva Tecniche di codifica trasformativa Sono processi di trasformazione (reversibile) che convertono un insieme di dati in un altro pi conveniente per alcune applicazioni.

La trasformata discreta del coseno DCT E la pi diffusa funzione che provvede alla compressione spaziale, capace di rilevare le variazioni di informazione tra un'area e quella contigua trascurando le ripetizioni; la funzione che supporta la compressione temporale affidata invece ad un apposito "vettore movimento", che individua le componenti dinamiche tralasciando quelle statiche. Codifica statistica Utilizza la distribuzione statistica dei valori dei pixel in un'immagine, o dei dati creati da una delle tecniche gi descritte. Conosciuto anche come codifica dell'entropia Pu essere utilizzato come parte dell'algoritmo di compressione. Compensazione del movimento Confronta i frame per le differenze. Fissa un valore di soglia per il movimento. Utilizza l'approccio DPCM per codificare i dati. Usa una struttura a blocchi per determinare il movimento di parti dellimmagine (simile all'approccio trasformativo). Nei sistemi di compressione sofisticati, i vettori di movimento possono essere sviluppati al fine di garantire la fedelt di riproduzione. Classificazione degli algoritmi di compressione: Lossy Limmagine presenta imperfezioni rispetto loriginale. Si raggiungono alti tassi di compressione (fino a 200:1). Lobiettivo raggiungere alti tassi di compressione lasciando la qualit dellimmagine inalterata (virtualmente lossless). Lossless Limmagine matematicamente equivalente alloriginale. Compressione modesta (fino a 5:1). Formati grafici TIFF Formato grafico con compressione lossless. Tag Image File Format il pi usato, pi flessibile ed affidabile metodo per memorizzare immagini bitmap in bianco e nero, a scala di grigio, a scala di colore, a colori RGB, CMYK, YCbCr, Lab. Un file TIFF pu essere di ogni dimensione (in pixel) e di ogni profondit di bit. Pu essere salvato con o senza compressione. Oltre ai dati dei pixel TIFF pu contenere qualunque metainformazione in locazioni di memoria chiamate tag. Le pi comuni sono la risoluzione, la compressione, il tracciato di scontorno, il modello di colore, il profilo ICC. PS PostScript un linguaggio di programmazione specializzato per la computer grafica vettoriale (ma pu trattare anche grafica bitmap). Essendo PostScript un linguaggio, un file PostScript (suffisso .ps) un file di testo che contiene un programma (dati e istruzioni) che viene eseguito su un processore collegato con (o incorporato in) una stampante. Questo processore detto RIP (Raster Image Processor) ed composto di tre parti: un interprete , una parte che realizza la rasterizzazione e una terza parte che realizza la retinatura. Encapsulated PostScript (EPS) un programma PostScript formattato in modo particolare e soggetto ad alcuni vincoli (deve rispettare la Adobe Document Structuring Convention, DSC, vedi pi sotto, pi altre regole). Pu contenere una singola immagine in una singola pagina e di questa immagine viene dato il bounding box (posizionamento nella pagina) in un commento. DSC

Nella versione 1.0 il formato DCS consiste di 5 file. I primi 4 contengono i canali C, M, Y, K in alta risoluzione. Il quinto, detto master file, contiene tre cose: una anteprima RGB a bassa risoluzione (per il monitor), una versione composita CMYK a bassa risoluzione (per la stampa) e i puntatori agli altri quattro file. PICT Pict (abbreviazione di Picture) il pi vecchio formato ad oggetti del Mac. La descrizione degli oggetti codificata in QuickDraw, il linguaggio grafico nativo del Mac. Pict supporta otto colori: bianco, nero, ciano, magenta, giallo, rosso, verde e blu. JPEG

La DCT trasforma il dominio (da spazio a frequenza). Viene utilizzata essa anzich la FFT poich riesce ad approssimare segnali lineari in ugual modo ma con meno coefficienti. Lerrore di quantizzazione la principale fonte di perdita di qualit nelle compressioni lossy. La quantizzazione non uniforme poich sfrutta le capacit dellocchio umano, pi sensibile alle basse frequenze e meno sensibile alle alte. Lo scanning a zig-zag trasforma una mappa di 8x8 bit in un vettore di 64 elementi. Differential PCM codifica la differenza con il precedente blocco 8x8. Il vettore di 64 elementi contiene molti zeri, la RLE inserisce degli skip al posto degli zeri e mantiene i valori, in questo modo avremo bisogno di meno spazio per salvare il vettore. Sono 4 i modelli di JPEG: Lossless, Gerarchico Sequenziale Progressivo