Rappresentazione delle Immagini Come si rappresenta un’immagine z z z Un’immagine e’ di norma rappresentata come un raster, cioe’ una matrice di elementi discreti, detti pixel, ciascuno di un colore. Memorizzare un raster significa, in prima approssimazione, memorizzare la il colore di ciascun pixel Esistono diversi modi di memorizzare un’immagine raster, corrispondenti a diversi formati di file immagine – z BMP, TIFF, JPEG, GIF, PNG, … I formati differiscono per il modo in cui si memorizzano i colori dei pixel 2 Come si memorizza un’informazione di colore z z La luce e’ un’onda elettromagnetica, che colpisce il fondo della retina attraverso la pupilla Il fondo della retina e’ popolato di coni, che sono particolarmente sensibili a certe frequenze di luce – Ci sono tre tipi di coni, sensibili in intervalli di frequenze differenti (ma non disgiunti) 3 Come si memorizza un’informazione di colore z L’apparato visivo (occhi+cervello) non e’ in grado di distinguere la composizione di luce (metameria) 4 Sintesi Additiva di Colore Blu (0,0,255) z Ciano (0,255,255) Bianco (255,255,255) io (x ,x ,x ) Magenta (255,0,255) rig z I colori rappresentabili su un monitor sono riprodotti mescolando luce rossa, verde, blu (RGB) Per descrivere un dato colore, basta quindi stabilire l’intensita’ di luce dei tre colori che lo compongono Sperimentalmente, si nota che 256 (=28) sfumature di ciascuno dei 3 colori bastano per comporre un numero sufficiente di colori G z Verde (0,255,0) Nero (0,0,0) Rosso (255,0,0) Giallo (255,255,0) 5 Memorizzazione del colore z Diretta (true color) – – z Memorizzo il colore (RGB) di ciascuno dei pixel 24 bit (=3 byte) per pixel Indicizzata (palette) – – Memorizzo una palette di n colori RGB (3 byte/colore) e Per ogni pixel, memorizzo l’indice della riga della palette che gli corrisponde 6 Memorizzazione del colore (2) z Casi particolari – B/N (monocromatica): un bit per stabilire il colore di un pixel (1=bianco, 0=nero) – scala di grigi (grayscale): un numero per rappresentare la percentuale di nero di un pixel (spesso 256 livelli di grigio, 0=bianco, 127=grigio medio, 255=nero). 1 byte per pixel 7 Quanti colori nell’immagine? z Pochi colori (e.g., disegno) – – – Tipico: <=16, 256 colori Palette piccola Indice su pochi bit (4, 8) z Molti colori (e.g., foto) – – – Tipico: >=1000 colori Rappresentazione indicizzata poco (o per niente) conveniente Meglio true color 8 Esempi z Immagine 640x480 pixel, 256 colori – – – – – z colore di ogni pixel rappresentabile su 8 bit (=1 byte) Dimensione dell’immagine: 648x480= 307200 pixel Per la matrice sono necessari 307200 bytes Dimensione della palette: (almeno) 3*256=768 byte (trascurabile) Dimensione probabile del file in memoria: intorno a 308000 bytes. Immagine 512x384 pixel, 65536 colori – – – – – colore di ogni pixel rappresentabile su 16 bit (=2 byte) Dimensione dell’immagine: 512x384 = 196608 pixel Per la matrice sono necessari 393216 bytes Dimensione della palette: (almeno) 3*65536= 196608 byte (confrontabile con la dimensione della matrice) Dimensione probabile del file in memoria: intorno a 589824 bytes. 9 Formati delle immagini z Non compresso – z Compresso – – – z Graphic Interchange Format (GIF) Portable Network Graphics (PNG) Joint Photographic Experts Group (JPEG) Tagged Image File Format (TIFF) – z Bitmap (BMP) Formato “generico”: supporta sia immagini compresse che non compresse Ciascun formato può consentire di memorizzare immagini con n. di colori diverso – Bitmap a 16M colori (true color), a 256 colori, … 10 Formato Bitmap z Consente di salvare immagini – – – z True color Con palette a 16, 256 colori B/N Esempio: immagine 100x100 pixel Bytes per pixel Dimensione (minima) palette Dimensione matrice in byte Dimensione totale file (attesa) Dimensione totale file (osservata) True color 3 - 30000 30000 30054 256 colori 1 768 bytes 10000 10768 11078 16 colori 1/2 48 bytes 5000 5048 5318 B/N 1/8 - 1250 1250 1662 11 Compressione delle immagini z Immagine RxC pixel in true color, con un pixel rosso in alto a sinistra – – Ho davvero bisogno di RxCx3 byte per rappresentare l’informazione associata a questa immagine? Mi costerebbe meno rappresentare l’informazione come: z z “{1; rosso}, {(RxC)-1; bianco}” Run Length Encoding (RLE), usato ad es. nei fax •Formato compresso di rappresentazione: •Meno spazio occupato sul disco •Necessita’ di decomprimere l’immagine per poterla visualizzare C R 12 Due tipi di compressione z Lossless (senza perdita) - - z dall’immagine (dall’informazione) compressa si ricava in modo esatto l’informazione originale (es. RLE) Obbligatorio per tutto cio’ che viene manipolato da un computer, ad esempio programmi o dati (un file di Word) Lossy (con perdita) - – dall’immagine (dall’informazione) compressa si ricava un’informazione simile a quella originale In cio’ che e’ oggetto di percezione umana (musica, immagini) si puo’ tollerare una limitata perdita di informazione 13 Immagini compresse z z La quantita’ di informazione associata all’immagine (la sua dimensione sul disco) dipende da cosa c’e’ nell’immagine stessa (in una BMP non e’ cosi’) I due file, immagini compresse secondo RLE, hanno una dimensione diversa (33% di differenza) 14 Tagged Image File Format z Piu’ flessibile che BMP – – z Consente compressione delle immagini (sia RLE che LZW) Consente di definire un contorno dell’immagine (non necessariamente rettangolare), che puo’ essere salvato insieme all’immagine Maggiore portabilita’ – Supportato da tutte le piattaforme grafiche 15 Formato GIF z Numero limitato di colori N (tipicamente 3, 16 o 256) z Memorizzazione di: – – Palette Immagine compressa secondo l’algoritmo LZW (lossless) z z z LZW e’ concettualmente simile a RLE, anche se piu’ complesso File tanto piu’ piccolo quanto piu’ l’immagine e’ regolare Non si ha perdita di informazione purche’ l’immagine originale abbia meno di N colori – Altrimenti alcuni colori dell’immagine originaria andranno persi 16 Formato GIF (2) z Particolarmente adatto per comprimere immagini con colori pieni – – – z z Banner pubblicitari Disegni, fumetti Immagini create artificialmente Pochi colori Pattern di colore che si ripetono in modo regolare BMP, 116 Kb GIF, 5.89 Kb 17 Formato GIF (3) z Trasparenza – – Si puo’ specificare un colore della palette come “sfondo” I pixel cosi’ marcati prendono il colore di cio’ che sta sotto z Animazione – – In uno stesso file GIF possono essere salvate piu’ immagini che vengono visualizzate in modo temporizzato Effetto di animazione (semplice) 18 Formato PNG z Compressione lossless, simile a GIF – – – – – Risolve alcuni problemi di brevetti (adesso scaduti) sull’algoritmo di compressione LZW Trasparenza Possibili palette con piu’ di 256 colori Non possibili animazioni Meno supportato che GIF 19 Formato JPEG z Compressione lossy – Compressione come trade-off tra dimensione e resa z z z z Minor compressione, file piu’ grande, miglior resa Maggior compressione, file piu’ piccolo, peggior resa Piu’ adatto per fotografie Basa la compressione sulle peculiarita’ della visione umana – – L’occhio e’ piu’ sensibile alle variazioni di luminosita’ che di cromaticita’. variazioni elevate tra pixel vicini tendono ad essere difficilmente percepibili 20 Algoritmo di compressione JPEG 2 1 3 4 Perdite di informazione 5 21 Piani di immagine z Un’immagine RGB puo’ essere scomposta nei suoi 3 piani di immagine R, G, e B R G B 22 Compressione JPEG (1) z Cambio di coordinate nello spazio di colore – – Da RGB a YIQ (o YCrCb, ~equivalente). Y= luminanza I,Q=crominanza supponendo 0↔min, 1↔max: 23 Compressione JPEG (2) z Le immagini I e Q sono piuttosto “statiche” – – z Memorizzo un valore di I e Q (ad esempio) per ogni blocco di 2x2 pixel (standard subsampling) Perdo delle informazioni (ma l’occhio, in genere, non se ne accorge piu’ di tanto) Memorizzo l’informazione di luminanza Y per ogni pixel 25% compression (75% quality), no subsampling (4:4:4), 8096 bytes. 15% compression (85% quality), standard subsampling (4:2:2), 8822 bytes. 24 Compressione JPEG (3) z Discrete Cosine Transform – – Per ogni blocco di 8x8 pixel, calcolo i coefficienti DCT Esprimo la coordinata (Y, I, Q) del blocco come somma pesata di 64 possibili pattern 8x8 block 64 coefficienti DCT ~= (- 415) * + (-30) * 64 blocchi “base” 8x8 +… bassa freq. alta freq. 25 Compressione JPEG (4) z Quantizzazione Divido ciascun coefficiente per un coefficiente di quantizzazione, ed arrotondo all’intero piu’ vicino Coefficienti DCT Matrice di quantizzazione – 26 Compressione JPEG (5) z Entropy coding – – I coefficienti tendono ad essere nulli sulle controdiagonali, man mano che si scende verso il basso. Memorizzo la sequenza a zig-zag dei codici, e comprimo con RLE (e’ molto probabile che avro’ tanti zeri in fila) 27 Decompressione z Il processo inverso a quello visto finora Originale Compresso e decompresso 28 Decompressione (2) z Confronto tra le matrici DCT z Confronto tra i blocchi Y 29 Fattore qualita’ z I programmi che consentono il salvataggio in formato JPEG danno la possibilita’ di impostare la qualita’ della compressione File piu’ piccolo, immagine meno precisa z Bassa (1%) Qualita’ Alta (100%) File piu’ grande, immagine più precisa Il fattore qualita’ e’ (±) inversamente proporzionale al valore dei coefficienti della matrice di quantizzazione 30 Contenuto dell’immagine e compressione Var. luminosita’ lenta Var. luminosita’ veloce z BMP (256 KB) z BMP (256 KB) z JPEG Q=100% (17.5 KB) z JPEG Q=100% (100 KB) 31 Esempio Q=100%, 80 KB Q=50%, 15 KB compressione Q=1%, 1.5 KB Q=10%, 5 KB 32 Esempio (2) z Differenza singoli pixel (imm. originale vs JPEG Q=50%) – Bianco: pixel identici; nero: massima differenza 33 GIF vs. JPEG z GIF – – – – z Piu’ adatta per immagini con colori pieni (e.g., disegni, loghi, etc.) Riduzione del n. di colori poco (o per niente) avvertibile Numero elevato di pixel consecutivi del medesimo colore Fattori di compressione nell’ordine di 10:1 JPEG – – – Piu’ adatta per immagini a colori sfumati (e.g. fotografie) Fattori di compressione nell’ordine di 10:1 ed oltre Il livello di qualita’ puo’ essere variato 34 GIF vs. JPEG (esempio) z JPEG (200x270) 11.9 Kb z GIF (200x270) 14,8 Kb z JPEG, 2,70 Kb z GIF 3 colori 1,29 Kb 35 Modifica del numero di colori z z z Supponiamo di avere una foto in formato BMP true color, con “molti” colori contemporaneamente presenti (migliaia) Cosa succede se la salviamo in formato “bitmap a 256 colori”? Si perde l’informazione associata ai colori mancanti 36 Riduzione del numero di colori (2) z Scelta di un n. di colori N con i quali l’immagine sarà codificata – z Palette standard (ad esempio, web-safe) oppure Analisi dell’immagine, per trovare al suo interno gli N colori piu’ rappresentativi – Possibili diversi criteri: z z z z Frequenza Massima diversita’ di colore Combinazioni dei due precedenti Ogni colore dell’immagine viene modificato in uno degli N scelti – ogni pixel p=(Rp,Gp,Bp), e’ trasformato nel colore j=(Rj,Gj,Bj) tale che D ( p, j ) = (R − R j ) + ( G p − G j ) + ( Bp − B j ) 2 p 2 2 e’ minimo 37 Riduzione del numero di colori (3) z Palette standard vs palette basata sull’immagine Immagine originale Palette 216 col. Web-safe Palette 256 col. ottimizzata 38 Riduzione del numero di colori (4) z Dithering – – – diffondere i colori di zone adiacenti per dare l’illusione della continuita’ Eventualmente riusare altri colori della palette Rischio di creare falsi colori 16 colori, no dithering 256 colori 16 colori, dithering 39 Modifica del numero di punti z Scalatura di un’immagine – Downsampling = verso il basso (meno punti) z – Upsampling = verso l’alto (più punti) z z Scegliere alcuni punti tra quelli che costituiscono l’immagine “inventare” i punti da aggiungere Se la scalatura non viene fatta con lo stesso passo su entrambi gli assi, l’immagine risulta distorta – Ne viene modificata l’aspect ratio 40 Scalatura z Downsampling di un fattore intero k – – z Upsampling di un fattore intero k – – z Scelgo il colore di 1 punto ogni k Scelgo il colore “medio” in un quadrato di lato k “nearest neighbor” da 1 pixel a 1 quadrato di 2x2 pixel Interpolazione (bilineare, bicubica) di pixel Scalatura di un fattore razionale M/L – – Upsampling di un fattore intero M Downsampling di un fattore intero L Esempi per k=2 41 Esempio z Bitmap 284x212, true color 12 Kbyte sul disco scale 25% scale 400% 177 Kbyte sul disco 42 Periferiche Raster z Monitor, stampante, scanner, fotocamera digitale – Informazione grafica rappresentata sotto forma di matrice di pixel (raster) 43 Acquisizione di immagini raster z z z z Tramite periferiche di acquisizione (scanner, macchine fotografiche digitali) Ricavare una matrice di punti colorati (raster) da un’immagine – stampata su un foglio (scanner) – “dal vivo” (macchina fotografica digitale) Risoluzione di scansione – quanto precisamente l’immagine verrà ricostruita – quanto grande sarà il file che la contiene N. di colori dell’immagine File piccolo, immagine poco precisa bassa risoluzione alta File grande, immagine più precisa 44 Scanner e risoluzione z Uno scanner ha almeno due risoluzioni: – – z Ottica: quella del passo di campionamento delle immagini Interpolata: lo scanner “si inventa” dei punti tra un campionamento e l’altro Esempio – – HP Scanjet 4670V Risoluzione z z z Ottica: 2.400 dpi Interpolata: fino a 999.999 dpi (a seconda della quantità di memoria disponibile, dello spazio su disco e di altri fattori di sistema) La risoluzione interpolata non ha nessuna rilevanza pratica – Semplice upsampling via software 45 Effetto Moire’ z z Il passo di retinatura e di scansione danno fenomeni di frange interferenziali (Moire’) Particolarmente visibile quando si effettua scansione di immagini retinate (riviste) con risoluzione simile a quella di stampa Per eliminarlo: -Variare la risoluzione di scansione -Usare appositi filtri nei programmi di elaborazione delle immagini (e.g., Photoshop) o nelle impostazioni dello scanner (deretinatura) 46 Digital Camera z z Non si parla di risoluzione, ma di numero di pixel (oggi >= 5Mpixel) Se si possono fare foto con un numero minore di pixel – – z L’hardware della DC cattura sempre lo stesso numero di pixel (quello massimo) Viene fatto downsampling all’interno della DC. Zoom ottico – “zoom digitale” = upsampling via software 47 Acquisizione e scalatura z z L’acquisizione determina la quantità di informazione associata ad un’immagine (punti e numero di colori) Non si può creare informazione manipolando un’immagine – – Downsampling: riduce la quantità di informazione ad essa associata, e quindi fa perdere dettaglio all’immagine Upsampling di un’immagine già acquisita fa crescere la dimensione del file ad essa associato, ma non migliora la qualità dell’immagine 48 Visualizzazione - Schermo m ito on ar a rd ea 17 di ” u v is z za z i al e ion 16 ” D im e n s io n i m o n ito r (p o llic i) 15 17 21 A re a d i v is u a lizza zio n e (p o llic i) 14 16 20 PARAMETRI • Nitidezza (dimensione dei punti, risoluzione, velocità di aggiornamento) • Tipo di schermo (CRT, LCD) 49 Pixel dot-pitch x y Dimensione dei punti (DOT-PITCH): distanza tra i centri di due pixel adiacenti Esempio: 0,28: 28 centesimi di mm pixel alternativamente N. di pixel per unità di misura lineare (72-100 dpi, dots per inch) (risoluzione) quantità di punti che possono essere visualizzati sullo schermo del monitor Esempio: 640x480 (VGA), 800x600 (SVGA), 1024x768 pixel (XGA) 50 Schermi CRT (Cathode Ray Tube) griglia fosforo pennello cannone elettronico elettronico ­ > tubo a vuoto piatti di deflessione (verticale ed orizziontale) scansione non-interallacciata Frequenza di aggiornamento (verticale): numero di volte al secondo che i pixel vengono aggiornati per conservarne la luminosità (es.: 50-100 volte il secondo) 51 CRT - Frequenze Frequenza di aggiornamento/refresh (verticale): numero di volte al secondo che i pixel vengono aggiornati per conservarne la luminosità (50 – 120 Hz) Frequenza orizzontale: numero di righe orizzontali che possono essere dipinte in un secondo (30-100 KHz) Banda video: il numero di pixel contigui che possono essere colorati con colori diversi in un secondo (ovvero la frequenza con cui è possibile cambiare l’intensità del pennello). Valore tipico 200 MHz 52 CRT a colori z z Tre cannoni luminosi, uno per ognuno dei colori fondamentali (R,G,B) In realtà, un pixel è un agglomerato di 3 puntini molto vicini dei tre colori fondamentali – L’occhio umano “sintetizza”, e ricava l’impressione di un Cannoni unico punto colorato Blu elettronici Fosfori spalmati sul vetro Verde Rosso Griglia metallica 53 Schermi LCD z Cristalli liquidi vengono orientati in modo tale da impedire/consentire il passaggio di luce 54 LCD e CRT z Accensione pixel – – CRT: per la maggior parte del tempo e’ spento. LCD: I pixel restano accesi tra un refresh e l’altro z z z Consumo – z Immagine molto piu’ stabile Qualche problema con immagini in movimento (tempo di risposta (1-10 ms) CRT: alto, LCD: molto basso Affidabilita’ – I CRT sono tuttora piu’ affidabili degli LCD 55 Scheda Video (semplificata) rete di interconnessione (bus di sistema) SCHEDA VIDEO memoria video processore memoria adattatore grafico Sinc. O. Sinc. V. R G B 56 Memoria Video (semplificata) MEMORIA VIDEO (frame buffer) SCHERMO x y xp + (C × yp) (xp,yp) R C bit che specificano il colore del pixel 57 Specifica del colore del pixel z Diretta – – z Celle di memoria di dimensione >= 24 bit Contengono direttamente la quantita’ di R, G, B, che compone il colore Indicizzata – – – Celle di memoria di dimensione < 24 bit Contengono un indice di riga di una Color Lookup Table, La CLT contiene, alla riga j, la quantita’ di R, G, B, che compone il colore j 58 Adattatore Grafico (semplificato) • L’AG legge ad intervalli di tempo regolari le locazioni della MV • Una volta che ha letto il contenuto di una locazione associata ad un certo pixel, l’AG compie le seguenti azioni: 1. Considera i bit letti come la codifica del colore che dovrà caratterizzare il pixel 2. Genera tre segnali corrispondenti ai tre colori fondamentali 3. Trasmette tali segnali al monitor tramite i fili R, G e B 59 Memoria Video: esempio C = Numero dei colori P = Numero di pixel n = bit di indirizzo per la Memoria Video d = dimensione di una parola di Memoria Video n = ⎡⎢log2 P ⎥⎤ d = ⎡⎢log2 C ⎤⎥ N = Numero locazioni della Memoria Video = 2n (N ≥ P) ESEMPIO Modalità Grafica: 640 × 480; COLORI: 256 ⇒ P = 307200 ⇒ n = 19; d = 8 ⇒Memoria Video di 512 Kbyte 60 Pixel logici e pixel fisici rete di interconnessione (bus di sistema) SCHEDA VIDEO memoria video processore memoria adattatore grafico Sinc. O. Sinc. V. R G B 61 Dalla BMP alla visualizzazione z La memoria video contiene, cella per cella, le informazioni di colore da visualizzare in ogni pixel dello schermo – – Celle di VRAM di dimensione maggiore di 24 bit (in pratica sempre): valori di R, G, B su 8 bit ciascuno Celle di VRAM di dimensione minore di 24 bit (in teoria): indice di colore in una color lookup table z Se devo visualizzare un’immagine bitmap, basta che la trasferisca nella memoria video “cosi’ com’e’” z Il formato bitmap e’ il piu’ semplice che si puo’ immaginare per memorizzare un’immagine, ed è quello che richiede meno operazioni per la visualizzazione sullo schermo 62 Visualizzare immagini compresse z Un’immagine compressa (e.g., JPEG) non puo’ essere copiata direttamente nella memoria video Deve prima essere decompressa Trade off tra spazio e tempo (tipico dell’informatica) z Chi fa la decompressione? z z – – Normalmente, la CPU Se la scheda grafica contiene un processore (GPU, o 3d accelerator), e’ possibile che ad esso sia affidata parte del lavoro 63 Schede Video AGP e PCI express z z z L’architettura AGP (Accelerated Graphics Port) permette uno scambio diretto delle informazioni tra CPU e memoria centrale e scheda grafica Incremento della velocita’ di comunicazione tra chipset e scheda grafica; il limite di comunicazione del bus PCI è 132 MB/s, lo standard AGP 3.0 8x arriva a 2.1 GB/s di picco Nuovo standard (~2007): PCI express, consente di – – Raggiungere velocita’ di trasferimento maggiori Inserire anche piu’ di una scheda video 64 Risoluzione nativa e cambio di risoluzione z In un monitor CRT, il numero di fosfori di cui si compone lo schermo e’ fisso – – – z Il pennello, pero’, si muove in maniera continua Se la scheda video invia immagini a risoluzione diversa (minore), il pennello colpisce “di striscio” alcuni fosfori La cosa avviene senza che l’utente se ne accorga In un monitor LCD, il numero di contatti della matrice tramite la quale si polarizzano I cristalli – – Se la scheda video invia immagini a risoluzione diversa (minore), le stesse vengono scalate verso l’alto dal monitor L’effetto visivo e’ terribile 65 Stampanti Differiscono per: z Tecnologia di stampa – – z Capacità cromatica – – z N. di pagine al minuto Risoluzione – z Bianco e nero Colore Velocità di stampa – z Getto di inchiostro Laser 600-4800 dpi Capacità di eseguire compiti complessi – Stampanti “PostScript” 66 Stampanti laser Un raggio laser, tramite specchi che lo deflettono, scandisce per righe successive un tamburo e ne carica elettricamente solo del i punti che dovranno corrispondere ai pixel Vasca Toner da stampare Contemporaneamente un foglio di carta passa vicino ad un filo percorso da corrente e si carica elettrostaticamente Il tamburo, ruotando, pesca toner da una Carta vaschetta Il toner, a carica opposta al tamburo, si fissa ad esso solo nei punti caricati dal raggio laser Quando la carta passa a contatto con il tamburo, dato che la carta è molto più carica, il toner viene attirato dalla carta z z z z z Raggio Laser Filo a corona Lampada di scarica Tamburo Elementi di fusione Fili a corona 67 Stampanti laser z z Il tamburo, continuando a ruotare, passa vicino alla lampada di scarica che lo scarica completamente La carta passa invece da sistema di fusione che, con una combinazione di calore e pressione, fissa in permanenza, fondendolo, il toner alla carta Raggio Laser Vasca del Toner Filo a corona Lampada di scarica Tamburo Elementi di fusione Carta Fili a corona 68 Stampanti Inkjet z z z z Al posto del toner, ci sono cartucce di inchiostro Le cartucce sono montate su una testina ancorata ad un braccio mobile che scandisce orizzontalmente il foglio Viene rilasciato inchiostro su ogni pixel da annerire Il foglio viene fatto avanzare per stampare nuove righe 69 Stampanti a colori Nelle stampanti a colori, ogni colore e’ rappresentato mescolando quattro colori z z z Bianco (255,255,255) Magenta (255,0,255) Nero usato per convenienza e precisione Il processo appena descritto viene ripetuto 4 volte, ogni volta con un inchiostro di colore differente Vale sia per stampanti laser che per stampanti inkjet (x ,x ,x ) Cyan, Magenta, Yellow, BlacK (CMYK) In realta’, basterebbero i primi tre – Ciano (0,255,255) o – Blu (0,0,255) G rig i z Verde (0,255,0) Nero (0,0,0) Giallo (255,255,0) Rosso (255,0,0) C C M M Y Y 70 Il processo di stampa z Come si passa da una pagina (ad esempio) di testo all’insieme di operazioni che devono essere effettuate sulla stampante per ottenere la pagina stampata? – Il software che elabora il documento (e.g. Word) interagisce con il driver della stampante z – Tale interazione avviene secondo criteri standard, che non dipendono dal modello di stampante Il driver invia alla stampante i comandi nella maniera ad essa comprensibile z Tale interazione dipende dal modello di stampante. Infatti stampanti diverse hanno driver diversi 71 Stampanti PostScript z Hanno dei processori (RIP, Raster Image Processor) che eseguono comandi in linguaggio PostScript /Times-Roman findfont 32 scalefont setfont 100 200 translate 45 rotate 2 1 scale newpath 0 0 moveto (Example 4) true charpath 0.5 setlinewidth 0.4 setgray stroke z z Per inviare una pagina di testo, invece che convertirla in una matrice di punti posso darne una descrizione molto più sintetica in PS e lasciare che il RIP la interpreti L’immagine viene creata all’interno della stampante 72 Retinatura (Halftoning) z z Una stampante b/n (a colori) ha inchiostri di un colore (4 colori) Per realizzare (e.g.) il grigio o il magenta chiaro, si usa la retinatura – – Non tutti i pixel adiacenti vengono colorati Il cervello integra nello spazio punti bianchi e colorati vicini 73 Gamut z z Ogni dispositivo e’ in grado di rappresentare un sottoinsieme finito dei colori visibili, detto gamut Dispositivi diversi hanno gamut diversi Spettro di luce visibile Diagramma ufficiale della CIE (Commission Internationale de l’Eclairage), 1931, che rappresenta I colori visibili in coordinate assolute (xyY) 74 Gamut (2) z Il gamut di dispositivi a sintesi additiva (monitor) e sottrattiva (stampanti) e’ notevolmente differente – – Non tutti i colori visibili sono stampabili e viceversa Monitor diversi in cui i tre fosfori sono illuminati con una data intensita’ mostrano colori diversi 75 Stampanti 3d z z 5K $ (Feb 08) Costo del materiale: 1$/in3 (Feb 08) 76 Regole per manipolare i raster z Acquisire una quantità di informazione (colore, n. di pixel) adatta allo scopo finale – Scansione di A4 per produrre un’immagine 5x5 cm z z – z non ha senso lavorare a 1000 dpi abbassare la risoluzione di scansione Scegliere il formato tenendo conto dell’effettivo numero di colori presente nell’immagine. Impiego delle tecniche di compressione (GIF, JPEG) – Evitare di comprimere/decomprimere un JPEG molte volte z – Ad ogni salvataggio, nuove approssimazioni (la parte frazionaria dei coefficienti DCT viene troncata) Manipolare l’immagine in formato non compresso, e comprimere come ultima operazione. 77 Rappresentare disegni tecnici z I disegni tecnici contengono oggetti, figure geometriche, descrivibili mediante curve e superfici (equazioni) z Ruotare (traslare, stirare, etc.) un oggetto significa applicare ad esso una trasformazione descrivibile in termini geometrici z Per conservare la possibilità di ruotare, muovere stirare, singoli oggetti all’interno di un disegno, è necessario rappresentarli tenendo conto delle loro proprietà geometriche – – Posizione relativa ad un riferimento Forma, colore, etc. 78 Rappresentazione Vettoriale z Si parla in tal caso di rappresentazione vettoriale di un’immagine – z Non e’ memorizzato il colore di ogni pixel, ma una descrizione di alto livello (astratta), in un particolare linguaggio, delle proprieta’ geometriche degli oggetti che compongono l’immagine Esempio (inventato) di linguaggio di descrizione: x Image(1024,768,white) Rect(30,30,100,200,black) Circle(100,40,30,red) y 79 Esempio z Un file salvato con AutoCAD è memorizzato in un formato vettoriale (proprietario Autodesk) z Il file salvato su disco contiene una descrizione ad alto livello di figure geometriche (poligoni e solidi contenuti nel progetto) 80 Formati grafici vettoriali z z z Esistono diversi formati grafici vettoriali, corrispondenti a diversi prodotti commerciali di grafica vettoriale, ad esempio: – Autocad (DWG) – Corel Draw (CDR) – Macromedia Freehand (FHx) – Adobe Illustrator (AI) – Microsoft Visio (VSD) – Windows Metafile (WMF) – PostScript ed Encapsulated PostScript (PS, EPS) – Portable Document Format (PDF) – … Ognuno di questi definisce un proprio linguaggio di descrizione degli oggetti A meno che non incorporino dei raster, i file che contengono immagini vettoriali hanno dimensioni molto contenute 81 Periferiche Non-Raster z Plotter a penna (caduti in disuso) – Informazione grafica rappresentata sotto forma di comandi di movimento della penna (funzioni matematiche). 82 Visualizzare un’immagine vettoriale z Per visualizzare su una periferica raster (e.g., lo schermo) una scena descritta in modo vettoriale, e’ necessario creare in memoria video il raster che la contiene – – Processo di rendering Per ogni pixel logico (cella di memoria video), devo decidere un colore, calcolato sulla base della descrizione vettoriale di tutti gli oggetti contenuti in un’immagine Image(1024,768,white) Rect(30,30,100,200,black) Circle(100,40,30,red) 83 Rendering in memoria video … sullo schermo Rapp. Vettoriale… Image(1024,768,white) Rect(30,30,100,200,black) Circle(100,40,30,red) z j 255, 255, 255 j+1 255, 255, 255 j+2 0,0,0 … in memoria video Se ci sono molti oggetti, è necessario fare molti conti per stabilire il colore di ogni singolo pixel 84 Rasterizzazione z In generale, trasformazione di un’immagine vettoriale in un raster – z Ad esempio, salvataggio in un formato di tipo raster (e.g., BMP) di un’immagine memorizzata in un formato vettoriale (e.g., CDR) E’ (grossomodo) la stessa operazione che viene fatta in memoria video per visualizzare l’immagine vettoriale 85 Vettorializzazione z z Processo estremamente complesso, realizzabile solo con programmi avanzati, e per casi molto semplici. Si tratta di analizzare un raster con l’obiettivo di riconoscere “contorni” di forme descrivibili in modo matematico. – Esempio: riconoscimento di caratteri scritti a mano (OCR) A 86 Modificare un’immagine vettoriale z z Un’immagine vettoriale può essere ingrandita o rimpicciolita senza perdita di qualità. Si tratta solo di manipolare equazioni, il che può essere fatto con precisione. formato WMF (Windows Metafile, vettoriale) scale 400% formato BMP (bitmap, raster) scale 400% 87