Sappiamo rappresentare in formato digitale testi scritti e numeri. Ma come la mettiamo con le immagini e i suoni? Chiara Epifanio Le immagini In questo caso la situazione sembra del tutto diversa. Il testo scritto è costruito combinando tra loro unità discrete (i singoli caratteri) scelte all’interno di un alfabeto limitato. Ma immagini e suoni sono fenomeni che sembrano analogici, nei quali, cioè abbiamo a che fare con sfumature continue (di colori, di tonalità, di frequenze, …) Chiara Epifanio Se si ha a che fare con un numero finito, prefissato e non troppo grande di entità discrete, la codifica numerica è facile: basta contare le diverse entità discrete che possono presentarsi, e attribuire a ciascuna un numero che la rappresenti nella codifica. Le immagini Le immagini Ma come la mettiamo con le innumerevoli differenze e sfumature di un’immagine o un suono? Chiara Epifanio Le immagini Immagini Chiara Epifanio Le immagini Caratteristiche e rappresentazione delle immagini ? Le immagini sono gli elementi grafici presi direttamente dal mondo esterno mediante la macchina fotografica digitale e lo scanner. Esse, rispetto ai disegni creati per mezzo di programmi del computer presentano la caratteristica di avere un numero di colori e di tonalità nettamente superiore. Cifre binarie OK Impulsi elettrici Chiara Epifanio Le immagini Chiara Epifanio Le immagini 1 La digitalizzazione La digitalizzazione è il meccanismo di trasformazione delle immagini in forma numerica o digitale. Ogni immagine viene ripresa dallo scanner e dalla macchina fotografica digitale mediante un procedimento chiamato campionamento. Esso consiste nella 1) scomposizione dell’immagine in tanti piccoli punti, 2) lettura e memorizzazione del colore di ognuno di essi. Più questi punti sono numerosi e migliore è la qualità dell’immagine ottenuta. Chiara Epifanio Le immagini Un’immagine digitale è una funzione definita su un sottospazio finito R, detto retina digitale, dello spazio discreto binario Z2. Quando R è un reticolo rettangolare, le immagini possono essere viste come matrici a 2 dimensioni i cui elementi sono detti pixel (picture elements). Nell’immagine vista alla sua grandezza normale, i pixel appaiono fusi in toni continui, ma, ingrandendo una piccola parte dell’immagine, si possono distinguere chiaramente i pixel che la costituiscono. Questo tipo di rappresentazione è molto simile a quello che si ha nei mosaici. Chiara Epifanio Le immagini La rappresentazione delle immagini • Per scomporre un’immagine in pixel, possiamo pensare di sovrapporre all’immagine una griglia con quadrati tutti della stessa dimensione (retina digitale). Chiara Epifanio Le immagini Chiara Epifanio Le immagini • Diminuendo la dimensione dei pixel aumenta la definizione dell’immagine. • Possiamo quindi colorare ogni quadratino della griglia con il colore maggiormente diffuso al suo interno. Chiara Epifanio Le immagini Chiara Epifanio Le immagini 2 • Se ad ogni pixel associamo un numero corrispondente al colore, otteniamo una tabella detta matrice di rappresentazione dell’immagine. • Ogni pixel della retina digitale corrisponde ad un elemento (entrata) della matrice. • La matrice avrà la stessa dimensione, in righe e colonne, dell’immagine che rappresenta. La rappresentazione delle immagini in bianco e nero • Se consideriamo l’immagine digitalizzata di dimensione 15x10, associando il valore 0 al colore bianco e il valore 1 al colore nero, otteniamo la seguente matrice di rappresentazione di dimensione 10x15. • Si chiama dimensione dell’immagine il numero di colonne dell’immagine moltiplicato per il numero delle righe. Quindi un’immagine di dimensione nxm ha n colonne ed m righe. Chiara Epifanio Le immagini Chiara Epifanio Le immagini • Per rappresentare 0 o 1 è necessario un bit. • Un’immagine in bianco e nero di dimensione nxm occupa nxm bit. Ossia (nxm/8) byte di memoria. • Si chiama profondità di colore di un’immagine il numero di bit necessari per memorizzare il colore di un pixel, ossia la lunghezza del numero binario che rappresenta ogni colore dell’immagine. E per immagini a più livelli di grigio? • Quindi la profondità di colore di un’immagine in bianco e nero è di un bit. Chiara Epifanio Le immagini Chiara Epifanio Per la rappresentazione in forma digitale di immagini con varie tonalità di grigio, bisogna associare un numero ad ognuna delle tonalità presenti. Così, per esempio, in una scala con 256 diverse gradazioni di grigio, al bianco si può far corrispondere il numero 0, ad un grigio molto chiaro il numero 1, ad un grigio leggermente più scuro il numero 2 e così via fino al 255, cui si può far corrispondere il nero. Chiara Epifanio Le immagini Le immagini 256 colori 2 colori Chiara Epifanio Le immagini 3 • Il colore associato ad ogni cella della retina (pixel) è la tonalità media di grigio presente nella cella. Le immagini a colori • Per rappresentare le 256 gradazioni di grigio sono necessari 8 bit (infatti 28=256), ossia un byte. • Quindi la profondità di colore delle immagini a scala di grigi è di 8 bit. • Inoltre un’immagine a scala di grigi di dimensione nxm occupa nxm byte di memoria. Un’immagine a colori richiede più informazioni di una in bianco e nero o a livelli di grigio. L’informazione sarà tanto maggiore quanto maggiore è il numero di colori (sfumature) possibili. • Un’immagine a scala di grigi è più definita di un’immagine in bianco e nero, tuttavia, come sempre, aumentando la qualità aumenta anche lo spazio occupato in memoria. Chiara Epifanio Le immagini • Se dobbiamo rappresentare un’immagine a colori bisogna associare ad ogni pixel un colore. • Possiamo ripetere quanto detto per la rappresentazione a scala di grigio e associare ad ogni colore un numero distinto partendo dallo 0 (bianco) fino a 255 (nero). L’insieme dei colori così codificati si chiama palette. • Quindi ad ogni punto dell’immagine sarà associato un numero intero compreso tra 0 e 255. Chiara Epifanio Le immagini Chiara Epifanio • Anche in questo caso per rappresentare i 256 colori sono necessari 8 bit (infatti 28=256), ossia un byte. • Pertanto un’immagine a 256 colori di dimensione nxm occupa nxm byte di memoria. • Anche in questo caso la profondità di colore delle immagini a 256 colori è di 8 bit. • Tuttavia l’occhio umano riesce a distinguere molto più di 256 colori distinti, quindi un’immagine rappresentata con soli 256 colori non è molto fedele alla realtà. Chiara Epifanio Chiara Epifanio Le immagini Le immagini La sintesi additiva dei colori è quella usata dall'occhio umano e da molti dispositivi che imitano l'occhio umano, come le fotocamere digitali, le telecamere e i monitor, che sintetizzano i colori affiancando punti colorati diversamente. In pratica una immagine è scomposta in pixel alternativamente rossi, verdi, blu. • Per aumentare il numero dei colori rappresentabili possiamo operare in maniera diversa. • Sappiamo che qualsiasi colore è la sintesi (additiva) di tre colori additivi fondamentali: rosso, verde e blu (Red, Green, Blu - RGB), quindi per determinare il colore di un pixel possiamo codificare l’intensità di ognuno di questi colori fondamentali presenti nel singolo pixel. Le immagini Dithering Si ha sintesi additiva anche quando si sovrappongono le luci provenienti da diversi fari, come avviene a teatro. Chiara Epifanio Le immagini 4 Perché Rosso, Verde, Blu? L'occhio umano è in grado di distinguere i colori grazie ai coni che sono di tre tipi: il primo sensibile soprattutto alla luce rossa, il secondo alla luce verde, il terzo alla luce blu. • Abbiamo detto che ogni punto dell’immagine deve essere composto da tre pixel (uno rosso, uno verde e uno blu), e ognuno di questi pixel avrà una propria intensità di colore. • Il colore reale del punto dell’immagine sarà dato dalla somma delle tre intensità. • Quindi ad ogni punto dell’immagine si deve associare una terna di numeri interi che vanno da 0 a 255, di cui il primo rappresenta l’intensità del rosso, il secondo rappresenta l’intensità del verde e il terzo quella del blu. Chiara Epifanio Le immagini • In alternativa possiamo rappresentare utilizzando tre matrici distinte. Le immagini l’immagine • La prima matrice conterrà le intensità del rosso, la seconda conterrà le intensità del verde e la terza quelle del blu. • In ogni caso lo spazio necessario per memorizzare l’immagine triplica rispetto alla stessa immagine rappresentata con 256 colori. • Ancora una volta la qualità è direttamente proporzionale allo spazio occupato in memoria. Chiara Epifanio Chiara Epifanio Le immagini • Poiché per codificare ogni colore primario (R-G-B) è necessario un byte, per codificare un qualsiasi colore sono necessari 3 byte, ossia 24 bit (true color). • Pertanto la profondità di colore di un’immagine RGB è di 24 bit. • Con la rappresentazione RGB riusciamo a riprodurre 224=16.777.216 diverse sfumature di colore che sono molte di più di quanto l’occhio umano riesce a distinguere. Chiara Epifanio Ritornando alla palette… Le immagini Esempi Numero colori Bit per pixel Un'immagine 800x600 richiede bytes 16 4 240.000 256 8 480.000 65.536 16 960.000 16.777.216 24 1.440.000 True Color Chiara Epifanio Le immagini Chiara Epifanio Le immagini 5 La qualità delle immagini Ogni immagine digitalizzata ha caratteristiche che la possono rendere più o meno fedele all’originale da cui è stata presa. Queste qualità dipendono principalmente da due fattori: la risoluzione e il numero dei colori che può assumere un singolo pixel dell’immagine. La risoluzione indica la nitidezza dell’immagine e quindi la possibilità di distinguere i suoi particolari più piccoli. La grandezza che misura la risoluzione è detta dpi o ppi (dots per inch o pixels per inch, 1 inch = 2,54 cm.). Un campionamento fatto con un numero elevato di dpi consente di ottenere immagini ad alta risoluzione, molto nitide. La risoluzione è determinata dalle dimensioni dei pixel o il numero di pixels lungo l’immagine. Chiara Epifanio Le immagini Chiara Epifanio Le immagini Chiara Epifanio Le immagini Chiara Epifanio Le immagini L’altro elemento che influenza la qualità dell’immagine è il numero dei colori che può assumere ogni singolo pixel: più è alto il loro numero e più fedele sarà la riproduzione dell’immagine. Infatti ci si rende facilmente conto che, se si hanno pochi colori, c’è più difficoltà a rappresentare tutte le innumerevoli sfumature e tonalità presenti in ogni immagine presa dal mondo reale. Chiara Epifanio Le immagini Chiara Epifanio Le immagini 6 16,8 milioni di colori 24 bit = 3byte 688 KB 256 colori 8 bit 123 KB 24 bit = 8 bit per ognuno dei 3 colori fondamentali Chiara Epifanio Le immagini Chiara Epifanio Le immagini La quantità di memoria necessaria La quantità di memoria necessaria La quantità di memoria occupata dalle immagini è determinata da vari elementi. • Innanzi tutto le dimensioni dell’immagine. È chiaro che più queste sono grandi e più alto sarà il numero di punti necessari per la rappresentazione in forma digitale. Di conseguenza crescerà la quantità di memoria da utilizzare per contenere le informazioni relative al colore di ogni suo punto. • Un altro importante elemento è la risoluzione. Quanto più questa è alta, tanto maggiore sarà il numero dei punti letti dallo scanner o dalla macchina fotografica digitale. Le informazioni relative a questi punti dovranno poi essere memorizzate. Così, a parità di dimensioni, un’immagine con una risoluzione più alta occuperà più memoria. • Infine l’ultimo elemento da prendere in considerazione è il numero dei colori disponibili per la rappresentazione di un’immagine o un disegno: più questo numero è alto e maggiore sarà la quantità di memoria occupata. Chiara Epifanio Le immagini Chiara Epifanio Le immagini Dimensione dell’immagine 256 colori 11·10 ·8 bit = 880 bit Risoluzione Profondità del colore 2 colori 11·10 bit = 110 bit Dimensione del file Chiara Epifanio Le immagini Chiara Epifanio Le immagini 7 I disegni Come ridurre la quantità di memoria? • • • • Ridurre i colori, diminuire la risoluzione, diminuire la dimensione, comprimere il file ... Chiara Epifanio Le immagini bitmap vettoriale Un’immagine è una matrice di pixel di vari colori Le immagini vengono memorizzate mediante un insieme di oggetti grafici, come linee, rettangoli, ellissi, archi e curve, chiamati primitive. Questi elementi vengono memorizzati come coordinate numeriche o formule matematiche specificando la loro forma e posizione nell’immagine. Chiara Epifanio La grafica vettoriale I disegni bitmap I disegni vengono memorizzati mediante successioni di cifre binarie alle quali corrisponde il colore di ognuno dei punti che formano il disegno (Bit mapping). In questo caso, i singoli elementi che compongono il disegno, man mano che vengono costruiti e messi nella posizione voluta, diventano un tutt’uno con gli altri già presenti. Per questo motivo è difficile fare modifiche su singoli elementi senza alterare gli altri che sono a contatto con essi. Chiara Epifanio Le immagini bitmap vettoriale Il programma deve memorizzare, uno a uno, i colori di tutti i punti che formano il disegno, compresi quelli dello sfondo. Sono sufficienti: 1) le coordinate cartesiane del punto iniziale del segmento, 2) quelle del punto finale, 3) lo spessore della linea, 4) il colore della linea. Chiara Epifanio Le immagini • I disegni vengono riprodotti a schermo o sulla carta con un procedimento simile a quello dei disegni bitmap. • La loro rappresentazione in memoria e la loro creazione seguono però criteri del tutto diversi. In questo caso, infatti, non vengono memorizzate le informazioni relative al colore di tutti i punti presenti, ma alcune informazioni in base alle quali il programma riesce a effettuare la ricostruzione di ognuno degli elementi che compongono il disegno. Chiara Epifanio Le immagini bitmap Le immagini vettoriale Segmento (1,5) (5,1), spessore 1, colore 1 Chiara Epifanio Le immagini 8 bitmap vettoriale La quantità di memoria occupata dipende solo dalle dimensioni, dalla risoluzione e dal numero di colori. La quantità di memoria occupata dipende dal numero di elementi che compongono il disegno. La quantità di memoria occupata è indipendente dalla complessità del disegno. Meno il disegno è complesso meno memoria occupa. I singoli elementi che compongono il disegno si fondono e formano un’unica struttura. Risulta difficile modificare solo alcuni elementi. Chiara Epifanio bitmap I singoli elementi che compongono il disegno, anche se messi a contatto non si fondono. Se si vogliono fare delle modifiche è possibile selezionare e modificare gli elementi che interessano. Le immagini vettoriale Chiara Epifanio Le immagini Quindi... I programmi di grafica vettoriale permettono: • un controllo più accurato delle linee e dei colori; • la possibilità di ruotare gli oggetti per vederli da diverse angolature e prospettive; • la possibilità di ridurre o ingrandire un oggetto secondo le esigenze; • la possibilità di stampare sempre le immagini alla migliore risoluzione, indipendentemente dalle loro dimensioni; • la possibilità di modificare facilmente le combinazioni di colori e le sfumature di colore. Chiara Epifanio Le immagini Chiara Epifanio Le immagini E allora perché non utilizzare solo disegni vettoriali? Nella realtà, invece, il limite delle Immagini Vettoriali è il fatto che ancora oggi non esiste uno standard industriale per la trasmissione di immagini vettoriali attraverso la rete. Alcune aziende come Micrografx, con il programma Quicksilver (ed il relativo plug-in) e Macromedia con Flash (per le animazioni vettoriali), stanno tentando di introdurre sul mercato la trasmissione di immagini vettoriali via rete per utilizzo nella grafica web. Comunque ancora oggi per visualizzare i vettoriali in Internet occorre un plug-in costruito dalla casa proprietaria del formato da visualizzare. Chiara Epifanio Le immagini Inoltre la Grafica Bitmap si presta meglio alla visualizzazione su video in quanto lo stesso monitor è formato da una griglia, mentre la Grafica Vettoriale per essere visualizzata o stampata deve passare necessariamente attraverso un processo di Rasterizzazione. Chiara Epifanio Le immagini 9 I dispositivi di input delle immagini I dispositivi di input e di output delle immagini Chiara Epifanio Le immagini La risoluzione dei dispositivi di input • La risoluzione di uno scanner si misura in dpi (dot per inch) e coincide con il numero massimo di pixel con cui lo scanner può acquisire l’unità di superficie dell’immagine. • La risoluzione di una fotocamera o di una videocamera si misura in megapixel (milioni di pixel) e coincide con il numero massimo di pixel con cui la fotocamera può acquisire un’immagine. • L’interpolazione è un procedimento software col quale il computer inserisce opportuni pixel nell’immagine per conferirle una risoluzione maggiore di quella reale, al fine di aumentarne la definizione. Chiara Epifanio Le immagini • I principali dispositivi di input delle immagini sono: Lo scanner La fotocamera digitale La videocamera digitale • La risoluzione ottica dei dispositivi di input è il numero di punti con cui viene acquisita un’immagine e coincide con il numero di sensori ottici del dispositivo. Chiara Epifanio I dispositivi di output delle immagini • I principali dispositivi di output delle immagini sono: Il monitor La stampante • La risoluzione ottica dei dispositivi di output è il numero di punti con cui viene visualizzata un’immagine. • La profondità di colore dei dispositivi di output è il numero di colori riproducibili dal dispositivo. Chiara Epifanio Le immagini • Risoluzione ottica del monitor di 72 dpi significa che vengono visualizzati 72 pixel in un pollice quadrato. Il monitor • Il monitor si basa sulla sintesi additiva dei colori. • Il monitor è formato da tanti punti colorati dei tre colori fondamentali (RGB) che si illuminano opportunamente per generare il colore desiderato. • Ogni pixel dell’immagine è formato da tre punti di tre colori diversi (rosso, verde e blu) che possono essere illuminati con varie intensità. • La dimensione dell’immagine visualizzata dipende dalla risoluzione del monitor e dalla dimensione dei punti del monitor. • La dimensione dei punti del monitor si chiama dot pitch e rappresenta la distanza tra i centri di due pixel successivi. Il dot pitch medio dei monitor è di 0,26 mm. pixel Chiara Epifanio Le immagini dot pitch Le immagini Chiara Epifanio Le immagini 10 • Standard di risoluzione: VGA (Video Graphics Array): 640x480 SVGA (Super VGA): 800x600 XGA (Extended Graphics Array): 1024x768 WXGA (Wide XGA): 1280x800 SXGA (Super XGA): 1280x1024 SXGA+: 1400x1050 WXGA+: 1440x900 UXGA (Ultra XGA): 1600x1200 WSXGA+: 1680x1050 WUXGA: 1920x1200 WQXGA: 2560 x 1600 WQUXGA: 3840x2400 La stampante • La stampante si basa sulla sintesi sottrattiva dei colori. • I tre colori sottrattivi fondamentali sono: il ciano, il magenta e il giallo (Cyan, Magenta, Yellow – CMY). Ad essi si aggiunge il BlacK, da cui la sigla CMYK. • Qualsiasi colore si può ottenere sovrapponendo punti di due o più colori sottrattivi fondamentali. … • Aumentando la risoluzione diminuisce la dimensione dei pixel, quindi si deve aumentare la dimensione del monitor per evitare l’eccessivo rimpicciolimento delle immagini. Chiara Epifanio Le immagini • Le varie tonalità di colore si ottengono variando la dimensione o l’intensità dei punti dei colori fondamentali. Chiara Epifanio Le immagini La sintesi sottrattiva dei colori • La sintesi sottrattiva dei colori si ha ogni volta che si ottengono colori per sovrapposizione di colori solidi. • Le varie tonalità di uno stesso colore si ottengono lasciando dei punti bianchi (non stampati) attraverso tecniche di diffusione dei punti chiamate dithering. • La risoluzione di una stampante si misura in dpi e indica il numero di punti che riesce a stampare in un pollice quadrato (2,54 cm2) • Il bianco si ottiene dal colore della carta lasciando i punti non colorati. Chiara Epifanio Le immagini Chiara Epifanio Le immagini • BMP : è un formato standard non compresso per i sistemi operativi Alcuni formati di file bitmap Windows di Microsoft e OS/2 dell’IBM. Può visualizzare fino a 16.8 milioni di colori diversi (24 bit per pixel). Ciò che gli ha dato successo è stato il suo modo di associare il colore ad ogni pixel. Infatti ogni file bitmap contiene una palette di colori indicizzati e così il colore di ogni singolo pixel può essere definito memorizzando il suo numero-indice nella palette. Estensione: .bmp • PCX : è un formato largamente utilizzato con i programmi di tipo paint e di editoria elettronica. Anche questo può avere fino a 16.8 milioni di colori. Estensione: .pcx • TIFF (Tagged Image File Format) : offre le immagini di qualità più alta e può visualizzare 16.8 milioni di colori. L’unico svantaggio è che le dimensioni dei file sono molto grandi. Estensione: .tif, .tiff Chiara Epifanio Le immagini Chiara Epifanio Le immagini 11 • GIF (Graphic Interchange Format) : può visualizzare fino a 256 colori diversi (8 bit per pixel). È molto diffuso nel WEB perché essendo un formato compresso consente di trasferire i file più velocemente di altri formati. Supporta animazioni. Il successo di questo formato è dovuto alla combinazione vincente dell’indicizzazione della palette e della compressione lossless LZW. Con i file GIF, il dizionario LZW può essere automaticamente inizializzato con 256 simboli. Le GIF possono essere compresse fino al 40% e oltre. Oltre alle dimensioni minime dei file, questo formato permette di visualizzare le immagini in un effetto veneziana, il che consente di interpretare l’intera immagine anche solo dopo che il 50% di essa sia stato scaricato. Ma nel Dicembre 1994 intervennero dei problemi di licenza per l’uso di LZW e nacque un formato del tutto simile a GIF, il PNG (portable Network Graphics). Estensione: .gif Chiara Epifanio Le immagini • JPEG (Joint Picture Experts Group) : può avere fino a 16.8 milioni di colori. Ciò che rende JPEG totalmente diverso è l’uso di un algoritmo di compressione lossy. Il trucco è di rendere la perdita dovuta alla compressione il più impercettibile possibile. Ciò avviene in 5 fasi di cui le più importanti sono: 1) l’immagine viene suddivisa in frammenti 8x8 che sono trasformati mediante un Discrete Cosine Transformation (DCT) in un’equazione matematica che rappresenta i valori essenziali di luminosità e colore; 2) i coefficienti ottenuti mediante le trasformazioni effettuate sull’immagine vengono compressi tramite la codifica lossless di Huffman. Il risultato finale è un tasso di compressione fino a 25:1 con una perdita impercettibile di qualità. Estensione: .jpg, .jpeg Chiara Epifanio Le immagini •JPEG 2000 : è uno standard di compressione per immagini true color. La sua capacità è quella di ridurre ulteriormente la dimensione dei file compressi rispetto a quanto farebbe JPEG. Utilizza per la compressione una tecnica matematica chiamata wavelets. Estensione: .j2k o .jp2 Chiara Epifanio Le immagini • Postscript: PostScript è un linguaggio di programmazione specializzato per la computer grafica vettoriale (ma può trattare anche grafica bitmap). Essendo PostScript un linguaggio, un file PostScript è un file di testo che contiene un programma (dati e istruzioni) che viene eseguito su un processore collegato con (o incorporato in) una stampante. Estensione: .ps Alcuni formati di grafica vettoriale Chiara Epifanio Le immagini • Portable Document Format : è un formato grafico derivato dal PostScript con il quale condivide il modo di descrivere gli oggetti grafici: le pagine, i colori, le coordinate, il testo, i bitmap. Non è un programma come un file PostScript, ma un elenco di oggetti grafici ottenuti interpretando (eseguendo) un file PostScript. Un file PDF ha il concetto della propria struttura e agisce come un database. Estensione: .pdf • Encapsulated Postscript: è un programma PostScript formattato in modo particolare. Può contenere una singola immagine in una singola pagina (mentre un normale programma PostScript può contenere numerose immagini in numerose pagine) e di questa immagine viene dato il posizionamento nella pagina in un commento. EPS è uno standard pensato per l’esportazione e l’importazione di file PostScript in qualunque ambiente. Può contenere ogni combinazione di testo, grafica vettoriale e grafica bitmap, il tutto descritto in PostScript. Estensione: .eps Chiara Epifanio Le immagini Chiara Epifanio Le immagini 12