Digitalizzione e Immagini - Dipartimento di Ingegneria dell
Transcript
Digitalizzione e Immagini - Dipartimento di Ingegneria dell
Corso di Laurea Cultura e Stilismo della Moda Esperti di linguaggi multimediali e tendenze moda Parte II Rappresentazione Informazione Multimediale e Formati Immagine Corso: Sistemi di Elaborazione Dati Docente: Ing. Ivan Bruno E-mail: [email protected] Parleremo di… ] Tecnologia dei dispositivi I/O \ \ \ \ \ \ Il tubo a raggi catodici (CRT) B/N e colore Il video controller vettoriale e raster Tecnologia LCD a matrice attiva (TFT) La stampante laser La stampante a getto d’inchiostro Lo scanner 12/02/2007 Sistemi di Elaborazione Dati 2 1 Parleremo di… ] Colorimetria \ Modelli di colore \ RGB, CMYK e HSV ] Codifica Digitale delle Immagini \ \ \ \ \ Segnali analogici e digitali Digitalizzazione Il teorema del campionamento Digitalizzazione di immagini Riduzione del numero di colori e look-up table 12/02/2007 Sistemi di Elaborazione Dati 3 E ancora di… ] Compressione delle Immagini \ Il processo di compressione \ Metodi logici e fisici di compressione \ Lossless compression [ Run Length Encoding [ Tecniche Statistiche \ Lossy compression [ JPEG ] Formato Immagini \ BMP, GIF, TIFF, PS, PDF 12/02/2007 Sistemi di Elaborazione Dati 4 2 Tecnologia dei dispositivi I/O Caratteristiche Monitor •Pollici: unità di misura della dimensione dello schermo (Pollice (Inch, in) = cm 2,5399). • Pixel: il più piccolo elemento che viene visualizzato sullo schermo. • Risoluzione: numero di pixel che possono essere visualizzati contemporaneamente. • Dot pitch: distanza fra due pixel. • Refresh: (si misura in Hz) indica il numero di volte che l’immagine sullo schermo viene rinfrescata in un secondo. 12/02/2007 Sistemi di Elaborazione Dati 6 3 Il tubo a raggi catodici (CRT) ] La tecnologia più diffusa per la costruzione di monitor per computer è il tubo a vuoto a raggi catodici (Catodic Ray Tube) ] Sono derivati dalla tecnologia televisiva, a parte la procedura di generazione dell’immagine i dispositivi sono gli stessi della televisione di casa ] Si ha perciò una larga disponibilità commerciale (alti numeri di produzione), quindi basso costo 12/02/2007 Sistemi di Elaborazione Dati 7 Il tubo a raggi catodici (CRT) ] La proprietà su cui si basa il funzionamento del CRT è quella di alcuni materiali di essere elettroluminescenti ] In particolare il materiale usato è il fosforo che, a seconda della composizione (drogaggio), colpito da fasci di onde elettromagnetiche riemette onde nello spettro della luce visibile in una particolare finestra che determina il colore percepito. 12/02/2007 Sistemi di Elaborazione Dati 8 4 Il tubo a raggi catodici (CRT) ] Lo spettro del visibile si situa tra i 380 e i 780 nanometri: alla lunghezza d'onda minore corrisponde la gamma cromatica del bluvioletto, alla lunghezza d'onda maggiore corrisponde invece la gamma dei rossi. ] Una radiazione della lunghezza d'onda di 700 nanometri, percepita dall'occhio umano in condizioni normali come rossa, è un'onda in cui due creste successive (o due avvallamenti successivi) distano tra loro 700 x 10-9 metri: per capire quanto sia piccola in termini umani questa distanza, si tenga presente che occorre un milione di nanometri per fare un solo millimetro! 12/02/2007 Sistemi di Elaborazione Dati 9 Il tubo a raggi catodici (CRT) Resistenza Cannone elettronico Sistema di collimazione Catodo Rivestimento metallico interno ad alto voltaggio positivo Rivestimento di fosforo Griglia di controllo Bobine di deflessione 12/02/2007 Schermo ] CRT Bianco e Nero ] Il tubo è sostanzialmente un dipolo ] Ad un estremo del tubo (il cui interno è teoricamente a vuoto) è posizionato un cannone elettronico (il catodo del dispositivo) che emette dei fasci di elettroni Sistemi di Elaborazione Dati 10 5 Il tubo a raggi catodici (CRT) Resistenza Cannone elettronico Sistema di collimazione Catodo Rivestimento metallico interno ad alto voltaggio positivo Rivestimento di fosforo Griglia di controllo Bobine di deflessione ] Il fascio nel suo viaggio viene accelerato dalla presenza di una forte carica positiva sullo schermo posto dall’altra parte del tubo (l’anodo) Schermo 12/02/2007 Sistemi di Elaborazione Dati 11 Il tubo a raggi catodici (CRT) Resistenza Cannone elettronico Sistema di collimazione Catodo Rivestimento metallico interno ad alto voltaggio positivo Rivestimento di fosforo Griglia di controllo Bobine di deflessione 12/02/2007 Schermo ] Il fascio nel suo percorso dal catodo all’anodo può venire deflesso da campi elettromagnetici variabili generati da avvolgimenti (Bobine di deflessione) ] Questo consente al raggio di colpire qualsiasi punto della superficie dello schermo Sistemi di Elaborazione Dati 12 6 Il tubo a raggi catodici (CRT) Resistenza Cannone elettronico Sistema di collimazione Catodo Rivestimento metallico interno ad alto voltaggio positivo Rivestimento di fosforo Griglia di controllo Bobine di deflessione ] Lo schermo è ricoperto internamente da uno strato di fosforo, materiale elettroluminescente ] Quando il raggio colpisce la porzione di fosforo su cui è collimato lo carica elettricamente ed il fosforo emette luce visibile Schermo 12/02/2007 Sistemi di Elaborazione Dati 13 Il tubo a raggi catodici (CRT) Resistenza Cannone elettronico Sistema di collimazione Catodo Rivestimento metallico interno ad alto voltaggio positivo Rivestimento di fosforo Griglia di controllo Bobine di deflessione 12/02/2007 Schermo ] Si può effettuare un’ulteriore regolazione in intensità sul fascio di elettroni che colpisce lo schermo ] Aumentando il voltaggio della tensione sulla griglia di controllo posta di fronte al cannone si aumenta la percentuale di elettroni che vengono catturati e non proseguono verso lo schermo Sistemi di Elaborazione Dati 14 7 Il tubo a raggi catodici (CRT) Resistenza Cannone elettronico Sistema di collimazione Catodo Rivestimento metallico interno ad alto voltaggio positivo Rivestimento di fosforo Griglia di controllo Bobine di deflessione 12/02/2007 Schermo ] Più alto è il voltaggio della griglia meno elettroni arriveranno a colpire lo schermo, permettendo, quindi, di ottenere una intensità di grigio tra la massima (bianco) con griglia totalmente disattiva e la minima (nero) con griglia che assorbe tutti gli elettroni Sistemi di Elaborazione Dati 15 Il tubo a raggi catodici (CRT) ] Quando il fascio colpisce lo schermo, la porzione colpita s’illumina per un intervallo di tempo variabile che dipende dal tipo di fosforo utilizzato ] Per dispositivi grafici standard questo intervallo varia tra 10 e 60 microsecondi ] Il tempo è così breve da far sì che questo bombardamento debba essere ripetuto più volte al secondo ] La frequenza base è la medesima di quella della rete elettrica: 50 Hz per lo standard europeo e 60 Hz per quello USA ] Dispositivi elettronici all’interno del monitor possono tagliare la frequenza ed innalzarla fino a 100-120 Hz 12/02/2007 Sistemi di Elaborazione Dati 16 8 Il tubo a raggi catodici (CRT) ] Questo parametro del sistema è noto come frequenza di refresh ] È questa possibilità del sistema di accendere e spegnere i fosfori così frequentemente a consentire di raggiungere l’interattività voluta: l’immagine può infatti variare sino a 100120 volte al secondo 12/02/2007 Sistemi di Elaborazione Dati 17 Il tubo a raggi catodici (CRT) ] Ci si potrebbe chiedere come sia possibile che l’occhio umano percepisca una sequenza continua di immagini (che danno la sensazione del movimento) osservando i fosfori accesi per un tempo così breve ] Questo si ha a causa del fenomeno fisiologico della persistenza dell’immagine sulla retina: il cervello reagisce a stimoli visivi ad intervalli ben più ampi di decine di microsecondi per cui integra temporalmente tra diversi istanti, in questo caso quelli in cui il fosforo si illumina 12/02/2007 Sistemi di Elaborazione Dati 18 9 Il tubo a raggi catodici (CRT) ] La frequenza di refresh deve essere alta per evitare che l’occhio percepisca il cosiddetto flickering (sfarfallio) dell’immagine sullo schermo ] Osservando lo schermo se l’occhio non riesce più ad integrare temporalmente tra un picco d’illuminazione ed il seguente (ovvero se la frequenza di refresh diventa minore del tempo fisiologico di persistenza) l’effetto di sfarfallio deteriora notevolmente la qualità dell’immagine ] Attenzione che anche in un’immagine che appare stabile, i punti dello schermo sono comunque più a lungo spenti che accesi (120 Hz e 60 microsecondi porta ad un rapporto spento/acceso di circa 139, 50 Hz e 10 microsecondi a un rapporto di 2000) 12/02/2007 Sistemi di Elaborazione Dati 19 Il video controller ] Il componente hardware che, all’interno dell’ambiente computer-monitor, è responsabile di guidare il fascio elettronico, è il video controller che trasforma informazioni grafiche (digitali) in impulsi elettrici (analogici) ] La tecnologia del video controller può essere di due tipi: vettoriale o raster 12/02/2007 Sistemi di Elaborazione Dati 20 10 Tecnologia vettoriale ] Partiamo da un esempio di immagine monocromatica (b/n) ] In grafica vettoriale il controller traduce primitive geometriche direttamente in istruzioni per il cannone elettronico 12/02/2007 Sistemi di Elaborazione Dati 21 Tecnologia vettoriale ] Un segmento di estremi A e B, ad esempio, sarà disegnato spostando il cannone, spento, in A, accendendolo e quindi spostandolo, acceso, in B 12/02/2007 Sistemi di Elaborazione Dati 22 11 Tecnologia vettoriale beam off moveto 230,560 beam on moveto 230, 890 moveto 450, 890 beam off . . . 12/02/2007 ] Le informazioni contenute nella tabella di descrizione del video controller sono quindi percorsi di movimento del cannone elettronico sullo schermo Sistemi di Elaborazione Dati 23 Tecnologia raster ] L’approccio raster è completamente diverso ] Un’immagine viene descritta da un frame buffer in cui ogni cella contiene un bit di informazione (on-off, bianco-nero) 12/02/2007 Sistemi di Elaborazione Dati 24 12 Tecnologia raster ] È come se, con carta e penna, facessimo dei disegni utilizzando fogli a quadretti con la regola che i quadretti possono o restare bianchi od essere totalmente riempiti 12/02/2007 Sistemi di Elaborazione Dati 25 Tecnologia raster ] Si considera lo schermo del monitor come suddiviso in aree elementari d’informazione pittorica dette pixel (picture element) 12/02/2007 Sistemi di Elaborazione Dati 26 13 Tecnologia raster ] Ad ogni pixel è associata una cella di una matrice a due dimensioni: il frame buffer (o refresh buffer) ] Le immagini sono composte come insiemi di punti (pixel) 12/02/2007 Sistemi di Elaborazione Dati 27 Tecnologia raster ] È necessario rasterizzare le immagini prima di poterle disegnare ] Si possono generare indifferentemente figure poligonali o piene 12/02/2007 Sistemi di Elaborazione Dati 28 14 Tecnologia raster 456 457 458 459 460 461 . . 12/02/2007 230 231 232 233 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 ] Le informazioni contenute nella tabella di descrizione del video controller (frame buffer) sono quindi valori da un insieme predefinito . Sistemi di Elaborazione Dati 29 Comparazione ] L’approccio vettoriale semplifica molto le operazioni per passare le informazioni al video controller ] Le scene hanno una complessità dipendente dai dati ☺ 12/02/2007 ] In grafica raster la complessità di una scena è data dal numero di pixel che la compongono ] È un parametro costante del monitor ] Necessità di rasterizzare le immagini ☺ ☺ Sistemi di Elaborazione Dati 30 15 Dal B/N al colore ] Mentre utilizzando la tecnologia vettoriale è praticamente impossibile ottenere immagini a colori, usando la tecnologia raster cambia poco rispetto al bianco e nero ] Una scena a toni di grigio viene rappresentata con un frame buffer (una porzione di memoria a bordo della scheda grafica) in cui ogni cella contiene un byte di informazione 12/02/2007 Sistemi di Elaborazione Dati 31 Dal B/N al colore 456 457 458 459 460 461 . . 12/02/2007 230 0 12 23 45 56 67 231 232 233 12 23 45 23 45 78 45 67 34 67 23 223 2 2 56 54 126 234 . ] Se, nel video controller, ad ogni pixel sono associati 8 bit di informazione, potrà avere 28=256 intensità di illuminazione distinte ] Ad ognuna di esse sarà associata una diversa intensità del fascio che colpisce lo schermo Sistemi di Elaborazione Dati 32 16 Monitor CRT a colori ] Per avere sullo schermo immagini a colori, dobbiamo codificare, nel frame buffer, l’informazione colore e dobbiamo avere a disposizione un monitor in grado di utilizzare questa informazione ] La teoria fisiologica su cui si basa la tecnologia dei monitor a colori è la cosiddetta teoria del tristimolo secondo la quale all’interno dell’occhio umano si hanno tre diversi tipi di recettori del colore (detti coni) sensibili al rosso, al verde ed al blu come frequenze fondamentali 12/02/2007 Sistemi di Elaborazione Dati 33 Monitor CRT a colori ] Attraverso la fusione di informazioni recepite da coni vicini tra di loro sulla retina, una miscela di questi tre colori primari viene interpretata come colore ] Dobbiamo quindi pensare ad un meccanismo che consenta di produrre, usando piccole aree illuminate di colore rosso, verde e blu, i vari colori che l’occhio percepisce 12/02/2007 Sistemi di Elaborazione Dati 34 17 Monitor CRT a colori Cannoni elettronici Blu Fosfori spalmati sul vetro Verde Rosso Griglia metallica 12/02/2007 ] Nel monitor a colori ogni singolo pixel è composto da tre piccole porzioni di tre tipi diversi di fosforo che, colpiti dal fascio elettronico, emettono luce visibile con picchi di frequenza nel rosso, nel verde e nel blu Sistemi di Elaborazione Dati 35 Monitor CRT a colori Cannoni elettronici Fosfori spalmati sul vetro Blu Verde Rosso Griglia metallica 12/02/2007 ] Nel tubo si hanno anche tre diversi cannoni, ognuno dei quali attiva i fosfori associati ad uno dei tre colori principali Sistemi di Elaborazione Dati 36 18 Monitor CRT a colori Cannoni elettronici Fosfori spalmati sul vetro Blu Verde Rosso Griglia metallica 12/02/2007 ] Per evitare interferenze tra i fasci una maschera forata posta di fronte alla parte interna dello schermo li collima più finemente che in un monitor monocromatico Sistemi di Elaborazione Dati 37 Immagine a colori 230 231 232 233 . 456 123 34 3 111 457 231 56 164 172 458 85 98 99 54 459 173 145 103 23 230 231 232 233 . 460 12 145 112 461 456 176 34 144 . 457 234 210 11 22 . 458 256 254 459 256 222 11 22 230 231 232 233 460 0 12 23 45 461 456 12 23 45 78 . 457 23 45 67 34 . 458 459 45 67 23 223 460 56 2 2 56 461 67 54 126 234 . . 12/02/2007 . ] Nel video controller ogni pixel è descritto da tre diverse informazioni: una per ogni componente primaria rosso, verde e blu Sistemi di Elaborazione Dati 38 19 Immagine a colori 230 231 232 233 . 456 123 34 3 111 457 231 56 164 172 458 85 98 99 54 459 173 145 103 23 230 231 232 233 . 460 12 145 112 461 456 176 34 144 . 457 234 210 11 22 . 458 256 254 459 256 222 11 22 230 231 232 233 460 456 0 12 23 45 461 12 23 45 78 . 457 23 45 67 34 . 458 459 45 67 23 223 460 56 2 2 56 461 67 54 126 234 . . 12/02/2007 . ] Ognuna delle tre informazioni serve, trasformata in analogico, ad attivare il corrispondente cannone nel CRT Sistemi di Elaborazione Dati 39 Schermo TFT a colori ] Gli schermi TFT o CTFT (Color Thin Film Transistor) sono basati sulla proprietà dei cristalli liquidi di allinearsi in una direzione dipendente da un campo elettrico ] Sono quindi dei tipi particolari di LCD Liquid Crystal Display detti a matrice attiva per la presenza di transistor che comandano l’accensione di ogni pixel 12/02/2007 Sistemi di Elaborazione Dati 40 20 Schermo TFT a colori Sorgente luminosa 12/02/2007 ] Al contrario dei CRT la sorgente luminosa non è sulla superficie dello schermo (i fosfori) ma è un piano fluorescente posto al fondo dello schermo Sistemi di Elaborazione Dati 41 Schermo TFT a colori Filtro polarizzatore orizzontale 12/02/2007 ] Un primo filtro polarizzatore allinea e collima, per ogni pixel, tre fasci luminosi orizzontali, uno per il rosso, un per il verde e uno per il blu Sistemi di Elaborazione Dati 42 21 Schermo TFT a colori Transistor 12/02/2007 ] La luce polarizzata entra quindi nella matrice attiva, uno strato di cristalli liquidi guidati da un array di triplette di transistor che torcono i cristalli (e quindi ruotano la direzione dominante del fascio che li attraversa) di un angolo tra 0 e 90 gradi Sistemi di Elaborazione Dati 43 Schermo TFT a colori Filtri colorati Filtro polarizzatore verticale 12/02/2007 ] I fasci luminosi attraversano quindi dei filtri colorati (rosso, verde e blu) ] Un secondo filtro polarizzatore, è posto perpendicolare al primo e quindi lascia passare solo onde verticali Sistemi di Elaborazione Dati 44 22 Schermo TFT a colori Schermo 12/02/2007 ] In questo modo la tensione al transistor, tra 0 ed il massimo, si traduce in un intensità luminosa corrispondente sullo schermo ] I tre pixel colorati si fondono per dare il colore voluto Sistemi di Elaborazione Dati 45 Stampanti laser ] Il principio teorico di funzionamento della stampante laser è il medesimo di uno schermo CRT monocromatico ] La differenza, a parte l’uso di carta e toner anziché elettroni e fosforo, è nella risoluzione: per le stampanti correnti si hanno 300 dpi (dots per inch, punti per pollice) o 600 dpi, per i monitor da 72 a 100 dpi 12/02/2007 Sistemi di Elaborazione Dati 46 23 Stampanti laser ] Il corrispondente del video controller è il driver della stampante, che trasforma in una matrice di bit la pagina da stampare oppure (quasi sempre) invia al processore dedicato a bordo della stampante la descrizione ad alto livello della pagina (es. PostScript) ] Nel secondo caso il processore effettua la trasformazione 12/02/2007 Sistemi di Elaborazione Dati 47 Stampanti laser ] Un raggio laser, tramite specchi che lo deflettono, scandisce per righe successive un tamburo e ne carica elettricamente solo i punti che dovranno corrispondere ai pixel da stampare ] Contemporaneamente un foglio di carta passa vicino ad un filo percorso da corrente e si carica elettrostaticamente 12/02/2007 Sistemi di Elaborazione Dati 48 24 Stampanti laser ] Il tamburo, ruotando, pesca toner da una 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 12/02/2007 Sistemi di Elaborazione Dati 49 Stampanti laser ] Il tamburo, continuando a ruotare, passa vicino al cosiddetto filo corona 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 12/02/2007 Sistemi di Elaborazione Dati 50 25 Stampanti inkjet ] La testina di stampa è caratterizzata da un dispositivo piezoelettrico (un cristallo che ha una deformazione di entità proporzionale all’intensità della corrente elettrica applicata) 12/02/2007 Sistemi di Elaborazione Dati 51 Stampanti inkjet ] L’impulso elettrico si trasforma in movimenti di estensione o contrazione degli strati, determinando la deformazione della piastra vibrante posta tra l’elemento piezoelettrico e la camera di inchiostro 12/02/2007 Sistemi di Elaborazione Dati 52 26 Stampanti inkjet ] La variazione di pressione esercitata dal movimento della piastra vibrante sulla camera di inchiostro determina la spinta o il risucchio dell’inchiostro stesso negli iniettori, da cui deriva l’accurata espulsione delle gocce sul foglio 12/02/2007 Sistemi di Elaborazione Dati 53 Lo scanner ] Esistono diversi tipi di scanner: \ Flatbed: i più comuni, sono quelli da tavolo, generalmente scandiscono fino all’A4. \ Sheet-fed: simili a stampanti portatili, si muove il foglio mentre la testa di scansione rimane ferma. \ Hand held: portatili, bassa qualità di scansione 12/02/2007 Sistemi di Elaborazione Dati 54 27 Lo scanner \ Drum scanner: qualità industriale, il documento viene avvolto attorno ad un cilindro di vetro, la luce riflessa viene scomposta da un sensore all’interno del tubo ed inviata a tre sensori dove viene amplificata e convertita in segnale elettrico. 12/02/2007 Sistemi di Elaborazione Dati 55 Lo scanner Flatbed ] Il cuore di uno scanner flatbed è il CCD: Chargecoupled device. ] Il CCD è un dispositivo caratterizzato da una matrice di microscopiche regioni (fotodiodi) di forma quadrata o rettangolare, disposte a scacchiera sulla superficie di un cristallo di silicio, opportunamente trattato e integrato in un microchip. 12/02/2007 Sistemi di Elaborazione Dati 56 28 Lo scanner Flatbed ] Tali regioni, molto sensibili alla luce, denominate pixel (picture elements), sono ricavate direttamente nel silicio, disposte come mattonelle di un pavimento, troppo piccole per essere osservabili ad occhio nudo. ] Converte il segnale luminoso in elettrico, maggiore è la luce incidente maggiore la carica elettrica che si accumula sul fotodiodo. ] http://www.castfvg.it/notiziar/1998/ccd.htm 12/02/2007 Sistemi di Elaborazione Dati 57 Lo scanner Flatbed ] L’immagine raggiunge il CCD tramite un complesso di specchi, lenti e filtri tipicamente montati sulla testa mobile dello scanner. ] I fogli sono illuminati da una lampada: fluorescente (vecchi), Cold Cathode Fluorescent Lamp (CCFL) o allo Xenon. ] CCFL non riscalda ed è molto piccola 12/02/2007 Sistemi di Elaborazione Dati 58 29 Lo scanner Flatbed ] La qualità delle immagini che si ottengono, in particolare la risoluzione, deriva dalla capacità di muovere con precisione e senza scosse la testa servono buoni motori elettrici passo-passo 12/02/2007 Sistemi di Elaborazione Dati 59 Lo scanner Flatbed ] Motore e cinghia di trasmissione per la traslazione 12/02/2007 Sistemi di Elaborazione Dati 60 30 Lo scanner Flatbed ] 2 o 3 specchi sono usati per focalizzare l’immagine sulla lente che a sua volta focalizza sul CCD ] 3 filtri colorati vengono interposti alternativamente tra lente e il CCD per campionare i 3 colori. \ Alcuni scanner usano 3 passi di scansione diversi, uno per filtro \ Normalmente viene usato un solo passo: la lente divide l’immagine in tre, ed ogni immagine passa attraverso un filtro 12/02/2007 Sistemi di Elaborazione Dati 61 Lo scanner ] Gli scanner meno cari usano una tecnologia diversa: contact image sensor (CIS). ] Al posto del CCD hanno LED R,G,B per illuminare il documento di luce bianca e sensori attaccati lungo tutto il vetro per catturare l’immagine 12/02/2007 Sistemi di Elaborazione Dati 62 31 Lo scanner ] Gli scanner variano in risoluzione e nitidezza \ Una tipica risoluzione hardware è 300x300 dots per inch (dpi). \ Il numero di dpi è dato dal numero di sensori di ogni riga (x-direction sampling rate) del CCD o del CIS per la precisione del motore passopasso (y-direction sampling rate). 12/02/2007 Sistemi di Elaborazione Dati 63 Lo scanner ] La nitidezza dipende dalla qualità dell’ottica e dalla luminosità della lampada: le classiche lampade fluorescenti sono peggiori delle lampade allo Xenon o CCFL. ] Molti scanner proclamano risoluzioni 4,800x4,800 o anche 9,600x9,600 ] Basta fare i conti sul numero di sensori per vedere che dovrebbero essercene moltissimi ! ] Si tratta di risoluzioni dovute ad interpolazione 12/02/2007 Sistemi di Elaborazione Dati 64 32 Lo scanner: interpolazione ] L’interpolazione è un’elaborazione effettuata dal software dello scanner per aumentare la risoluzione percepita di un’immagine ] Vengono creati dei pixel partendo dai dati dei pixel ottenuti dal CCD 12/02/2007 Sistemi di Elaborazione Dati 65 Lo scanner: il colore ] Altro elemento importante degli scanner è la profondità di colore: bit depth ] Indica il numero di colori riproducibili dallo scanner ] Il true color richiede 24 bit, molti scanner sono in grado di elaborare 30/36 bit di colore tra i quali però scelgono i colori più adatti 12/02/2007 Sistemi di Elaborazione Dati 66 33 Lo scanner ] La nitidezza dipende dalla qualità dell’ottica e dalla luminosità della lampada: le classiche lampade fluorescenti sono peggiori delle lampade allo Xenon o CCFL. ] Molti scanner proclamano risoluzioni 4,800x4,800 o anche 9,600x9,600 ] Basta fare i conti sul numero di sensori per vedere che dovrebbero essercene moltissimi ! ] Si tratta di risoluzioni dovute ad interpolazione 12/02/2007 Sistemi di Elaborazione Dati 67 Lo scanner Flatbed Scanner DRUM SCANNER Monochrome Book Scanner ELAR PlanScan 7000 Wide Format Scanner 12/02/2007 Sistemi di Elaborazione Dati 68 34 Le telecamere CCD ] Matrice di rivelatori a semiconduttore (es. 780x480) denominata “charge-coupled devices” ] Elementi di rivelazione (11x11micron) al silicio sensibili alla radiazione e.m. tipicamente dai 400nm (blu) a 1100nm (vicino IR) ] La matrice è in genere rettangolare (es. 8.8 x 6.6 mm). 12/02/2007 Sistemi di Elaborazione Dati 69 Le telecamere CCD ] Ogni elemento della matrice riceve una porzione dell’immagine: “pixel” 12/02/2007 Sistemi di Elaborazione Dati 70 35 Le telecamere CCD ] Difficile trasmettere un segnale (tensione) per ogni singolo “pixel” ] Per ottenere l’informazione dei ogni “pixel” si procede ad una scansione” orizzontale per ogni riga (es. pari e dispari: “interllacciato”) e l’informazione per ogni linea consiste in un segnale analogico (tensione <1Volt) in funzione del tempo ] Un insieme di righe pari o dispari è detto “field” (campo) e due campi consecutivi “frame” che è visualizzabile sullo schermo in un tempo tipico ad es. 30 ms. 12/02/2007 Sistemi di Elaborazione Dati 71 Le telecamere CCD ] Analogia idraulica: 12/02/2007 Sistemi di Elaborazione Dati 72 36 Rasterizzare ] Trasformare le informazioni contenute all’interno del modello dell’applicazione passando da una rappresentazione concettuale legata al formalismo della geometria descrittiva ad una rappresentazione in cui tutte le entità devono essere descritte in termini di punti colorati, i pixel 12/02/2007 Sistemi di Elaborazione Dati 73 Rasterizzare ] È un pò come avere a disposizione un piano rettangolare con tanti fori disposti in maniera regolare e chiodini colorati da potervi infilare dentro 12/02/2007 Sistemi di Elaborazione Dati 74 37 Rasterizzare ] Se il piano è sufficientemente grande (risoluzione) risoluzione e si hanno abbastanza tonalità di colore (Color depth) depth a disposizione l’immagine finale che ne risulta non è troppo diversa dall’originale 12/02/2007 Sistemi di Elaborazione Dati 75 Algoritmi raster 2D ] Gli algoritmi che consentono di passare dalla descrizione geometrica a quella raster si chiamano algoritmi di rasterizzazione ] Dato che le righe di pixel che compongono l’immagine raster si chiamano scan-line, questi algoritmi si dicono anche di scan- conversion 12/02/2007 Sistemi di Elaborazione Dati 76 38 Scan conversion ] Il cannone elettronico percorre lo schermo per righe orizzontale, dette scan-line (linee di scansione) da cui il termine scan conversion 12/02/2007 Sistemi di Elaborazione Dati 77 Rasterizzazione di segmenti ] La rasterizzazione di un segmento di retta deve generare le coordinate dei pixel che giacciono sulla linea ideale o che sono il più vicino possibile ad essa 12/02/2007 Sistemi di Elaborazione Dati 78 39 Rasterizzazione di segmenti ] Vogliamo avere la sequenza di pixel che \ approssima al meglio il segmento ] e quindi \ sia il più in linea retta possibile 12/02/2007 Sistemi di Elaborazione Dati 79 Rasterizzazione di segmenti ] Particolarmente semplice sarà il caso di linee orizzontali o verticali la cui rasterizzazione giace su una riga o su una colonna di pixel 12/02/2007 Sistemi di Elaborazione Dati 80 40 Rasterizzazione di circonferenze ] Così come per i segmenti l’algoritmo di rasterizzazione di una circonferenza o di un arco deve calcolare le coordinate dei pixel che giacciono il più possibile vicino ad essa 12/02/2007 Sistemi di Elaborazione Dati 81 Modelli di colore 41 Teoria del Colore di Küppers ] Il riconoscimento dei colori da parte dell'uomo è basato sulla luce, sugli oggetti che riflettono la luce e sugli occhi e il cervello dell'osservatore. ] La luce viene definita come il mezzo che consente di percepire gli oggetti che essa illumina. È una radiazione di energia costituita da vibrazioni elettromagnetiche che si differenziano tra loro in base alla diversa lunghezza d'onda. ] I raggi di luce sono radiazioni d'energia incolori. La luce non contiene alcun colore. 12/02/2007 Sistemi di Elaborazione Dati 83 Il colore Lospettro spettrodel delvisibile visibilesisisitua situatra trai i380 380eei i780 780 Lo nanometri:alla allalunghezza lunghezzad'onda d'ondaminore minorecorrisponde corrispondelala nanometri: gammacromatica cromaticadel delblu-violetto, blu-violetto,alla allalunghezza lunghezzad'onda d'onda gamma maggiorecorrisponde corrispondeinvece invecelalagamma gammadei deirossi. rossi. maggiore È noto che la materia è composta da atomi. Gli atomi si legano tra loro creando le molecole più diverse e danno in questo modo origine a materiali diversi. A seconda della struttura molecolare, la materia è in grado di assorbire una parte della luce che la colpisce. La parte di luce/energia non assorbita viene riflessa/riemessa e denominata quindi luce residua. ] La luce residua (stimolo del colore) che entra nell'occhio viene convertita in segnali nervosi nella retina e inviata al cervello attraverso il nervo ottico. L'occhio reagisce ai tre colori primari additivi rosso, verde e blu (Tristimolo), e il cervello percepisce i colori come una combinazione di questi tre segnali. 12/02/2007 Sistemi di Elaborazione Dati 84 42 Modelli di colore ] Gli spazi colore o modelli colore sono dei sistemi particolari di coordinate che consentono di definire all’interno di un sottoinsieme di colori (detto gamut) un particolare elemento ] A noi interessano gli spazi: RGB (monitor, sintesi additiva), CMYK (stampe, sintesi sottrattiva), HSV (intuitivo) 12/02/2007 Sistemi di Elaborazione Dati 85 RGB ] Il gamut dei monitor a raggi catodici (CRT), è definito dalle primarie rosso, verde e blu o RGB (dall’inglese Red, Green, Blue) dette primarie additive ] I monitor sintetizzano i colori eccitando tre tipi di fosfori (RGB), per cui un colore è ottenuto miscelando (addizionando) parti diverse di queste tre primarie 12/02/2007 Sistemi di Elaborazione Dati 86 43 RGB ] L'occhio umano percepisce le lunghezze d'onda di 400-500 nm (nanometeri) come blu, 500-600 nm come verde e 600-700 nm come rosso. ] Tutti i colori trovati in natura possono essere riprodotti combinando la luce di queste tre lunghezze d'onda in varie intensità. La riproduzione dei colori ottenuta sommando i tre colori RGB primari in varie proporzioni è chiamata miscelazione o sintesi additiva. 12/02/2007 Sistemi di Elaborazione Dati 87 RGB Verde Ciano Giallo Nero Rosso Blu Magenta 12/02/2007 ] La rappresentazione tipica dello spazio RGB è in forma di cubo ] Sui vertici si trovano il bianco, il nero, le primarie e i complementari (al bianco) Sistemi di Elaborazione Dati 88 44 RGB ] I colori ciano, magenta e giallo sono detti complementari dei colori primari ] Ad esempio, il ciano è il complementare del rosso poiché deriva dalla sottrazione del rosso (1,0,0) dal bianco (1,1,1): bianco (1,1,1) − rosso (1,0,0) = ciano (0,1,1) 12/02/2007 Sistemi di Elaborazione Dati 89 RGB Verde Ciano Giallo Nero Rosso Blu ] L’intervallo di variazione si può definire a piacere ] I più comuni sono: \ da 0.0 (intensità minima) a 1.0 (intensità massima) \ da 0 (intensità minima) a 255 (intensità massima) Magenta 12/02/2007 Sistemi di Elaborazione Dati 90 45 RGB Verde Ciano Giallo Nero Rosso Blu ] Il colore nero di un pixel si otterrà spegnendo tutti e tre i fosfori (cioè R=0, G=0, B=0), il colore bianco accendendo i fosfori al massimo (cioè R=1, G=1, B=1) Magenta 12/02/2007 Sistemi di Elaborazione Dati 91 Esempio ] In RGB il colore rosso è dato dalla tripletta (R=1, G=0, B=0); variando R da 0 a 1 (mantenendo costanti G e B a 0) si ottengono tutti i rossi puri di diversa luminosità (da poco a molto luminoso) Nero (0,0,0) 12/02/2007 Rosso (1,0,0) Sistemi di Elaborazione Dati 92 46 RGB Verde Ciano Giallo Nero Rosso Blu ] La diagonale che unisce il nero con il bianco è detta linea dei grigi ] Infatti un grigio ha la caratteristica di avere tutte le tre componenti uguali, ad esempio, (0.5,0.5,0.5) è un grigio Magenta 12/02/2007 Sistemi di Elaborazione Dati 93 CMY(K) ] Ciano, Magenta e Giallo (Cyan, Magenta, Yellow CMY) sono i colori complementari di Rosso, Verde e Blu e sono chiamati primarie sottrattive ] Il nome è dato dal fatto che vengono usati come filtri (ad es. come inchiostri per stampare su fogli bianchi) per sottrarre frequenze riflesse al bianco ] L'espressione dei colori per sottrazione di un componente dalla luce bianca è chiamata miscelazione o sintesi sottrattiva. 12/02/2007 Sistemi di Elaborazione Dati 94 47 CMY(K) Verde Ciano Giallo Bianco Rosso Blu Magenta 12/02/2007 ] Il modello CMY dal punto di vista geometrico è lo stesso di RGB con la differenza che, in questo caso, il bianco è l’origine (al posto del nero) e i colori sono definiti per sottrazione dal bianco (tutte le frequenze), anziché per addizione al nero (nessuna frequenza) Sistemi di Elaborazione Dati 95 CMY(K) ] Il modello CMY è usato nei dispositivi di stampa a colori (stampanti laser, ink-jet, a sublimazione, elettrostatiche) dove l’inchiostro colorato funziona come un filtro che sottrae alcune frequenze dal bianco del foglio 12/02/2007 Sistemi di Elaborazione Dati 96 48 CMY(K) ] Qualsiasi strato filtrante colorato ha il compito di assorbire luce in un settore spettrale determinato ed in questo modo di attivare la sensazione del relativo colore. Il tasso di energia luminosa assorbito dal relativo strato filtrante dipende dalla quantità di colorante per punto di immagine. Lo strato filtrante Giallo (Y) assorbe nell'ambito delle onde corte, quello Rosso Magenta nell'ambito delle onde medie e lo strato Blu Cyan è responsabile per quello delle onde lunghe. Di conseguenza, lo strato di colore Giallo controlla la forza di sensazione del colore Blu Violetto (B), quello Rosso Magenta (M) la forza di sensazione del colore Verde (G) ed infine lo strato Blu Cyan (C) la sensazione del colore Rosso Arancio (R). 12/02/2007 Sistemi di Elaborazione Dati 97 CMY(K) ] La parte non assorbita attraversa il filtro. Le radiazioni luminose di un punto d'immagine oltrepassano in sequenza i 3 strati filtranti di colore trasparente e considerata la trasparenza degli strati, in ognuno di loro ha luogo l'assorbimento delle radiazioni in base alla quantità di colorante presente. La parte di luce residua dopo l'attraversamento dei 3 strati, colpisce in modo diretto l'occhio di colui che osserva come stimolo di colore oppure viene riflessa nell'occhio attraverso una superficie bianca di carta. Se si considera che il tasso d'assorbimento di ogni strato può variare da 0 al 100%, anche in questo caso è possibile fare in modo che l'organo visivo produca le sensazioni di molteplici colori. 12/02/2007 Sistemi di Elaborazione Dati 98 49 CMY(K) ] Ad esempio, un inchiostro ciano depositato su un foglio bianco riflette tutti i colori ad eccezione del rosso (in termini di primarie, ciano è dato da bianco − rosso o da verde + blu) 12/02/2007 Sistemi di Elaborazione Dati 99 CMY(K) ] Aree in cui si sovrappongono ciano e magenta riflettono tutti i colori ad eccezione del rosso e del verde: quindi appaiono blu! 12/02/2007 Sistemi di Elaborazione Dati 100 50 CMY(K) ] La relazione esistente tra CMY e RGB è definita dalle semplici formule C=1−R M=1−G Y=1−B ] Usando questo modello per ottenere una superficie nera dobbiamo evitare che rifletta tutti i primari (rosso, verde e blu), dobbiamo quindi colorarla di ciano, magenta e giallo alla massima intensità 12/02/2007 Sistemi di Elaborazione Dati 101 CMY(K) ] Nei dispositivi di stampa a colori si è pensato di aggiungere ai tre inchiostri CMY del vero e proprio inchiostro nero (detto colore K) per due motivi: \ mettendo insieme C, M e Y non si ottiene un nero puro poiché i tre inchiostri non sono filtri perfetti \ l’inchiostro nero costa meno di quelli colorati! 12/02/2007 Sistemi di Elaborazione Dati 102 51 CMY(K) ] Quindi, anziché usare parti uguali di C, M e Y si usa K ] Si ha così il cosiddetto modello CMYK ] Si passa da CMY a CMYK con le formule: K=min(C,M,Y) C=C−K M=M−K Y=Y−K 12/02/2007 Sistemi di Elaborazione Dati 103 CMY(K) Per poter riprodurre immagini naturali con sfumature continue, un'immagine a colori deve essere scomposta in quattro lastre di stampa, una per ciascun colore CMYK. Il principio della separazione dei colori usa la relazione complementare dei colori RGB additivi e dei colori CMY sottrattivi. Ad esempio, per poter estrarre il componente giallo di un'immagine quando si scattano fotografie, si applica un filtro blu (blu è il complementare del giallo) all'obiettivo. 12/02/2007 Sistemi di Elaborazione Dati 104 52 I tre attributi del colore Tonalità Si riferisce all'attributo dei colori che permette loro di essere classificati come rosso, giallo, verde, blu, o un valore intermedio tra qualsiasi coppia contigua di tali colori. Le differenze di tonalità dipendono principalmente dalle variazioni nella lunghezza d'onda della luce che colpisce l'occhio. Luminosità Si riferisce alla quantità di chiaro o scuro del colore. Essa è determinata dal grado di riflettività della superficie fisica che riceve la luce. Tanto più alta è la luminosità, tanto più chiaro è il colore. Saturazione Si riferisce alla vividezza del colore. Essa viene misurata nei termini della differenza di un colore rispetto a un grigio senza colore (neutrale) con lo stesso livello di luminosità. Tanto più bassa è la saturazione, tanto più grigio è il colore. Quando la saturazione è zero, il colore è grigio. 12/02/2007 Sistemi di Elaborazione Dati 105 Colori cromatici e colori acromatici. ] I colori acromatici sono bianco, nero e grigio. Essi non hanno gli attributi di tonalità e saturazione. I colori cromatici sono quelli che normalmente percepiamo come "colore": tutto ciò che non è bianco, nero o grigio. Legenda A: Tonalità B: Luminosità C: Saturazione 12/02/2007 Sistemi di Elaborazione Dati 106 53 Temperatura del colore ] Il colore ha una stretta relazione con la temperatura. Quando una fiamma brucia a una temperatura alta, il colore è blu; a una temperatura bassa, il colore è rosso. Il criterio di misurazione "temperatura del colore" viene usato per assegnare valori numerici oggettivi alla condizione di luce quando guardiamo un colore. ] La temperatura del colore è espressa in Kelvin. Ad esempio il sole a mezzogiorno è circa 5000 gradi Kelvin; così come al mattino o alla sera è circa 4000 gradi Kelvin. Una lampada fluorescente è 6500 gradi Kelvin, e anche lo schermo di un computer spesso è impostato a 6500 gradi Kelvin. 12/02/2007 Sistemi di Elaborazione Dati 107 Temperatura del colore ] Tanto più basso è il numero, tanto più il colore si avvicina al rosso; tanto più alto è il numero, tanto più il colore si avvicina al blu. Questo spiega perché lo stesso oggetto di abbigliamento rosso apparirà differente alla luce esterna o sotto una lampada fluorescente. 12/02/2007 Sistemi di Elaborazione Dati 108 54 HSV ] Sia RGB che CMYK sono modelli hardwareoriented, destinati a semplificare la descrizione dei colore utilizzando dispositivi di visualizzazione o stampa ] Per un operatore umano non esperto selezionare un rosa, un viola o un marrone (in questi spazi) è un’impresa molto faticosa e necessita di numerosi tentativi 12/02/2007 Sistemi di Elaborazione Dati 109 HSV ] Per ovviare a questo problema si introduce il modello HSV (Hue, Saturation, Value) ] Il modello nasce dall’idea di cercare di riprodurre il modo con cui un pittore prepara un suo colore sulla tavolozza: prende un colore puro o tonalità (hue) e aggiunge del bianco per cambiarne la saturazione (saturation); poi aggiunge del nero per cambiare la luminosità (value) ed ottiene il colore finale voluto 12/02/2007 Sistemi di Elaborazione Dati 110 55 HSV ] La sua tipica rappresentazione geometrica è su un sistema di coordinate non cartesiano come un cono (o un prisma a base esagonale) con il vertice rivolto verso il basso ] Togliendo a tutti i colori la luminosità, infatti, si arriva comunque al nero 12/02/2007 Sistemi di Elaborazione Dati 111 HSV V 12/02/2007 ] La coordinata V (Value) corrisponde alla luminosità e assume, ad esempio, valori nell’intervallo da 0.0 (scuro) a 1.0 (chiaro) ] V si mappa sull’asse verticale Sistemi di Elaborazione Dati 112 56 HSV 120 0 H 12/02/2007 240 ] La coordinata H (Hue) corrisponde al colore ed è la misura angolare del sistema di coordinate ] Di solito il rosso vale 0°, il verde vale 120° e il blu 240° Sistemi di Elaborazione Dati 113 HSV 120 0 H 12/02/2007 240 ] I colori primari sono alla massima distanza possibile tra loro (120°) ] I colori complementari sono opposti (+180°) ai primari Sistemi di Elaborazione Dati 114 57 HSV S 12/02/2007 ] La coordinata S (Saturation) corrisponde al livello di saturazione ed è rappresentato da un asse orizzontale avente angolo H ] S può variare da 0.0 (bianco o completamente desaturo) a 1.0 (colore puro o completamente saturo) Sistemi di Elaborazione Dati 115 HSV S 12/02/2007 ] La coordinata S (Saturation) corrisponde al livello di saturazione ed è rappresentato da un asse orizzontale avente angolo H ] S può variare da 0.0 (bianco o completamente desaturo) a 1.0 (colore puro o completamente saturo) Sistemi di Elaborazione Dati 116 58 Analogico e Digitale Segnale ] Un segnale è una funzione matematica che codifica un qualche tipo di informazione ] Ad esempio: \ Il segnale radio è un’onda elettromagnetica ad alta frequenza che trasporta dell'informazione audio \ L'elettrocardiogramma è un segnale elettrico che trasporta “il suono del cuore” \ Il segnale televisivo è un’onda elettromagnetica che convoglia sequenze di immagini e informazione audio 12/02/2007 Sistemi di Elaborazione Dati 118 59 Segnale ] Il caso più frequente di segnale è quello di una funzione monodimensionale del tempo f(t) ] Un’immagine in bianco e nero, invece, è una funzione (bidimensionale) rappresentante la variazione della luminosità nello spazio della figura: un segnale spaziale 12/02/2007 Sistemi di Elaborazione Dati 119 Segnale ] La Teoria dei Segnali è il settore a cavallo tra l’ingegneria e l’informatica che si occupa dello studio di queste entità fisiche ] Nella teoria dei segnali i segnali temporali e i segnali spaziali sono trattati concettualmente nella stessa maniera 12/02/2007 Sistemi di Elaborazione Dati 120 60 Rumore ] Se il segnale non è perfettamente pulito l’informazione trasportata dal segnale può essere alterata da disturbi che modificano il segnale stesso ] L’insieme di questi disturbi si definisce come rumore che degrada la qualità del segnale 12/02/2007 Sistemi di Elaborazione Dati 121 Rumore ] Una caratteristica importante di un sistema di trasmissione di segnali è il cosiddetto rapporto segnale/rumore, definito come il rapporto tra l’ampiezza del segnale e l’ampiezza del rumore ] Più alto è il rapporto segnale/rumore e migliore risulta l’intelligibilità dell’informazione trasmessa 12/02/2007 Sistemi di Elaborazione Dati 122 61 Segnale analogico ] Si dice analogico un segnale che varia con continuità e che, nella sua variazione, assume tutti gli infiniti valori che esistono tra due punti qualunque che esso attraversa 12/02/2007 4 3 2 1 0 Sistemi di Elaborazione Dati 123 Segnale digitale ] Un segnale digitale è invece discontinuo e assume valori in un insieme finito ] Le transazioni da un valore all’altro avvengono ad intervalli regolari della variabile in ascissa (tempo o spazio) in un tempo teoricamente nullo 12/02/2007 4 3 2 1 0 Sistemi di Elaborazione Dati 124 62 Il processo di digitalizzazione Digitalizzazione ] In natura le funzioni identificabili come segnali sono analogiche, per utilizzare i segnali con macchine digitali come i computer dobbiamo trasformarli ] Il processo che consente di passare da un segnale analogico ad uno digitale è detto digitalizzazione e si compone di due passi: \ Campionamento \ Quantizzazione 12/02/2007 Sistemi di Elaborazione Dati 126 63 Campionamento ] Il segnale analogico viene misurato ad intervalli regolari e, per poterlo digitalizzare, si assume che il segnale in uscita mantenga costante il valore misurato fino al successivo intervallo ] Questa operazione viene detta campionamento 12/02/2007 Sistemi di Elaborazione Dati 127 Campionamento ] Il segnale analogico viene misurato ad intervalli regolari (T, 2T, 3T,…) ] Il segnale trasformato rimane costante fino al successivo campionamento 12/02/2007 Segnale campionato 4 3 2 Segnale originale 1 0 T Sistemi di Elaborazione Dati 2T 3T 4T 5T 6T 7T 128 64 Quantizzazione ] Ad ogni valore campionato viene poi associato l’elemento più vicino tra quelli che appartengono ad un insieme predefinito e finito di valori ] Questa fase è detta quantizzazione 12/02/2007 Sistemi di Elaborazione Dati 129 Quantizzazione ] Esempio: L’insieme dei valori di quantizzazione è costituito dai numeri 0, 1 ,2 ,3 e 4 Segnale quantizzato 4 3 2 1 0 12/02/2007 T Sistemi di Elaborazione Dati 2T 3T 4T 5T 6T 7T 130 65 Digitalizzazione ] Il segnale digitale è diverso da quello di partenza, nel processo di digitalizzazione è stata introdotta una distorsione del segnale analogico ] In effetti abbiamo scartato parte dell’informazione che caratterizzava il segnale analogico: tutti i valori presenti sono stati ridotti ad un insieme limitato 12/02/2007 Sistemi di Elaborazione Dati 131 Digitalizzazione ] Un segnale digitale non avendo la stessa forma del segnale analogico da cui proviene non può trasportare la stessa quantità di informazione, ma ne trasporta un’approssimazione, più o meno buona a seconda dei valori dei parametri di campionamento e quantizzazione ] Abbiamo introdotto quello che si chiama un aliasing. Nelle Immagini si presenta come: \ Effetti di seghettatura \ Perdita di dettaglio \ Disintegrazione di textures 12/02/2007 Sistemi di Elaborazione Dati 132 66 Digitalizzazione ] Perché, allora, si usa un segnale digitalizzato anziché l’originale analogico? ] Il processo di digitalizzazione consente di trasformare segnali analogici in sequenze di bit che, come tali, possono essere facilmente inviate nei canali di trasmissione, elaborate con computer e archiviate su supporti di memorizzazione 12/02/2007 Sistemi di Elaborazione Dati 133 Digitalizzazione ] Inoltre i segnali digitali possono essere riprodotti a piacere con la sicurezza di non avere perdita di informazioni poiché è molto semplice distinguere tra i vari valori di quantizzazione in un processo di rilevazione e correzione di errori ] Si pensi alla differenza che esiste tra la riproduzione di un segnale video analogico e di uno digitale 12/02/2007 Sistemi di Elaborazione Dati 134 67 Digitalizzazione ] Nel primo caso, ad esempio la copiatura di una videocassetta, il procedimento di riproduzione introduce una quantità non nulla di rumore nel segnale, la ripetizione di questo procedimento a catena porta a diminuire gradatamente il rapporto segnale/rumore sino ad avere un segnale molto diverso da quello originale, più sporco 12/02/2007 Sistemi di Elaborazione Dati 135 Digitalizzazione ] Nel secondo caso, ad esempio la copiatura di un file che contiene un filmato video codificato, a meno di malfunzionamenti la copiatura del file mantiene sempre lo stesso segnale, senza introdurre rumore ] La trasmissione e riproduzione digitale non introduce rumore 12/02/2007 Sistemi di Elaborazione Dati 136 68 Digitalizzazione ] I parametri su cui agire per avere una buona digitalizzazione sono due e vanno definiti assieme, poiché ognuno influisce su aspetti diversi del processo: \ Frequenza di campionamento \ Cardinalità (numero degli elementi) dell’insieme dei valori di quantizzazione 12/02/2007 Sistemi di Elaborazione Dati 137 Digitalizzazione ] La digitalizzazione sarà, ovviamente, tanto migliore quanto più alti saranno i valori di entrambi i parametri ] Altrettanto ovviamente all’aumentare dei parametri si avrà un aumento della dimensione del segnale digitale (bit al secondo nel caso di segnale variabile nel tempo) 12/02/2007 Sistemi di Elaborazione Dati 138 69 Digitalizzazione Campionamento e quantizzazione iniziali Campionamento e quantizzazione triplicati 4 4 3 3 2 2 1 1 0 T 12/02/2007 2T 3T 4T 5T 6T 7T 0 3T 6T 9T 12T 15T 18T 21T Sistemi di Elaborazione Dati 139 Il teorema del campionamento 70 Il teorema del campionamento ] Esiste una frequenza giusta (la minima frequenza che genera un segnale indistinguibile dall’originale) a cui campionare un segnale dato? ] Si può dimostrare che qualunque segnale può essere sempre pensato come composto dalla somma di sinusoidi aventi diversa ampiezza e frequenza trasformando il segnale dallo spazio lineare allo spazio delle frequenze 12/02/2007 Sistemi di Elaborazione Dati 141 Il teorema del campionamento ] Esistono varie teorie matematiche che formano la base per la definizione della scomposizione di funzioni in somme di sinusoidi: l’analisi in frequenza dei segnali ] Le trasformate di Fourier, ad esempio, consentono di valutare lo spettro in frequenza del segnale, cioè di evidenziare quali frequenze lo compongono 12/02/2007 Sistemi di Elaborazione Dati 142 71 Esempio di segnale in frequenza 12/02/2007 Sistemi di Elaborazione Dati 143 Il teorema del campionamento ] La maggior parte dei segnali che dobbiamo digitalizzare sono del tipo passa-basso, hanno cioè uno spettro tutto nelle basse frequenze che non si sviluppa al di sopra di un certo valore massimo f0 di frequenza 12/02/2007 Sistemi di Elaborazione Dati 144 72 Il teorema del campionamento ] Una funzione continua di una variabile può essere completamente rappresentata da un insieme di campioni prelevati ad intervalli regolari se l’ampiezza di tali intervalli è almeno la metà del periodo della componente in frequenza più alta della funzione campionata 12/02/2007 Sistemi di Elaborazione Dati 145 Il teorema del campionamento ] Dette f0 la frequenza più alta della funzione e fC la frequenza di campionamento, si può enunciare come: Una funzione continua di una variabile può essere completamente rappresentata da un insieme di campioni prelevati ad intervalli regolari se fc ≥ 2 × f0 12/02/2007 Sistemi di Elaborazione Dati 146 73 Un esempio: il CD audio ] L'orecchio umano ha una banda passante (f0) di circa 18-20 KHz, per il teorema del campionamento per ottenere un segnale digitale senza perdita di informazione apparente occorre che: f c > 2 × 20 ⇒ 12/02/2007 f c > 40 KHz Sistemi di Elaborazione Dati 147 Un esempio: il CD audio ] È per questo che la frequenza di campionamento di un CD è stata fissata a 44.1 Khz (si prendono, quindi, poco più di 44,000 campioni al secondo) ] Per definire l’insieme di quantizzazione si sono utilizzati 16 bit per campione, cioè vuol dire che abbiamo a disposizione 65,536 diversi valori 12/02/2007 Sistemi di Elaborazione Dati 148 74 Un esempio: il CD audio ] Tenendo conto che \ un CD audio è suddiviso in settori \ ogni settore include la registrazione di 1/75 di secondo di suono \ ad ogni istante di campionamento sono prelevati due campioni (segnale stereo) è possibile calcolare lo spazio necessario per memorizzare un settore: Ls = 12/02/2007 1 × 44,100 × 2byte × 2canali = 2,352byte 75 Sistemi di Elaborazione Dati 149 Un esempio: il CD audio ] Poiché il numero totale di settori presenti su un disco è 333,000, un CD contiene 333,000 × 2,352 = 747Mbyte per un totale di 1 ⎞ ⎛ ⎜ 333,000 × ⎟ 75 ⎠ ⎝ = 74 60 minuti massimi di registrazione 12/02/2007 Sistemi di Elaborazione Dati 150 75 Digitalizzare le immagini Digitalizzare le immagini ] Un’immagine (sia una fotografia, un disegno, etc) è un particolare tipo di segnale analogico spaziale la cui funzione associa ad ogni punto del piano un valore di crominanza (informazione sul colore) ] Un’immagine digitalizzata può nascere a partire da un modello analogico che viene campionato e quantizzato 12/02/2007 Sistemi di Elaborazione Dati 152 76 Digitalizzare le immagini ] Si può assimilare il processo di campionamento di un’immagine alla sovrapposizione di una griglia all’immagine rettangolare suddivisa in quadratini, e che ad ogni campione dell’immagine digitalizzata (un pixel) venga quindi attribuito il colore del suo centro 12/02/2007 Sistemi di Elaborazione Dati 153 Digitalizzare le immagini 12/02/2007 Sistemi di Elaborazione Dati 154 77 Digitalizzare le immagini ] La quantizzazione definisce quanti e quali valori vengono utilizzati per codificare l’informazione colore (o solo la luminosità, in caso di immagine B/N) ] Anche nel caso di immagini il segnale digitalizzato risulta essere un’approssimazione di quello analogico ] Più fitta sarà la griglia di campionamento e più grande l’insieme di quantizzazione e migliore risulterà l’immagine digitalizzata 12/02/2007 Sistemi di Elaborazione Dati 155 Quantizzazione del colore ] Il processo di quantizzazione del segnale colore è legato al numero di bit a disposizione per ogni pixel dell’immagine ] Se abbiamo a disposizione 3 bit per R, 3 bit per G e 2 bit per B possiamo generare 8 livelli di rosso, 8 livelli di verde e 4 livelli di blu che, in tutte le loro possibili combinazioni, formerebbero un totale di 8×8×4=256 colori 12/02/2007 Sistemi di Elaborazione Dati 156 78 Quantizzazione del colore ] Se utilizziamo un modello di rappresentazione true color (24 bit per pixel, 8 per il rosso, 8 per il verde e 8 per il blu) possiamo sostenere che il processo di quantizzazione non trasforma il segnale in maniera apparente, dato che il nostro occhio comunque non è in grado di discriminare tra tutti i colori rappresentabili 12/02/2007 Sistemi di Elaborazione Dati 157 Riduzione del numero di colori ] Anche se si quantizza l’immagine a 24 bit non sempre la si può riprodurre a questa qualità ] Per diminuire il numero di bit che codificano il colore di ogni pixel è possibile operare una riduzione del numero di colori totali che compaiono nell’immagine cercando di comprometterne il meno possibile la qualità 12/02/2007 Sistemi di Elaborazione Dati 158 79 Riduzione del numero di colori ] Vogliamo quindi risolvere il seguente problema: data un’immagine avente n colori differenti, selezionare gli m colori (m<n) più importanti per rappresentarla 12/02/2007 Sistemi di Elaborazione Dati 159 Riduzione del numero di colori ] Una volta risolto questo problema potremo utilizzare una look-up table (LUT) di m posizioni (es. 256) per memorizzarvi gli m colori selezionati ] Ogni pixel dell’immagine può avere come codifica il valore della cella della LUT dove è memorizzato il colore anziché il colore stesso ] Nell’esempio di LUT a 256 posizioni con elementi di 24 bit la dimensione dell’immagine si riduce ad un terzo più la dimensione della LUT 12/02/2007 Sistemi di Elaborazione Dati 160 80 Riduzione del numero di colori ] L’importanza di un colore è un attributo legato alla qualità dell'immagine: se si elimina un colore importante, la qualità dell'immagine risulterà peggiorata ] L’importanza di un colore può essere determinata intuitivamente rispondendo a questa semplice domanda: “Se possiamo scegliere tra usare solamente uno tra questi due colori, quale fornirà l’immagine migliore?” 12/02/2007 Sistemi di Elaborazione Dati 161 Riduzione del numero di colori ] L’obiettivo è quindi quello di ottenere immagini il più possibile simili all’originale impiegando un numero di colori predefinito ] Questo può essere fatto tenendo conto che in alcune zone di un’immagine esistono delle gradazioni di tinta la cui eliminazione (o meglio, sostituzione con un unico colore) non altera in pratica l’informazione contenuta nell'immagine 12/02/2007 Sistemi di Elaborazione Dati 162 81 Look-up Table ] Utilizzando algoritmi di riduzione dei colori si riesce molto spesso a definire un insieme di colori (per esempio 256), che rappresentano un’immagine bene ] Si può quindi ridurre il numero di bit per pixel ad 8 ed introdurre una look-up table 12/02/2007 Sistemi di Elaborazione Dati 163 Look-up Table ] Ogni cella della LUT conterrà una descrizione RGB del colore data da 3 byte ] Il frame buffer, però, invece di contenere dei valori RGB, conterrà un puntatore alla LUT, cioè un indice che indica una riga della tabella 12/02/2007 Sistemi di Elaborazione Dati 164 82 True color puro: esempio Pixels = 1024*768 = 786432 7 6 8 True color a 24bit (3 byte) Size = 2359296 byte ~2.25 MB 1024 12/02/2007 = (211,45,175) in RGB Sistemi di Elaborazione Dati 165 LUT: esempio LUT 0: 123, 34, 234 7 6 8 1: 10,125,23 …… 200: 211,45,175 1024 12/02/2007 = 200 …… 255: 222,23,111 Sistemi di Elaborazione Dati 166 83 LUT: esempio Pixels = 1024*768 = 786432 1 0 2 4 Ogni pixel ha associato 1 byte per indicizzare la tabella di 256 colori Ogni colore occupa 3 byte, in totale la tabella occupa 3 x 256 = 768 byte Size = 786432 x 1byte + 768byte 768,75 KByte 1024 12/02/2007 Sistemi di Elaborazione Dati Immagine true color 12/02/2007 167 Immagine con LUT di 256 elementi Sistemi di Elaborazione Dati 168 84 L’ISTOGRAMMA ] L’istogramma trasforma l’immagine in un vettore. ] Ogni elemento i del vettore contiene il numero delle volte che il valore i è presente nell’immagine stessa (o se il vettore è normalizzato la sua frequenza). ] Da un punto di vista implementativo data una immagine I(i,j) e il vettore istogramma H è necessario scandire l’immagine e per ogni pixel incrementare H(I(i,j)). ] Per normalizzare il vettore al termine basta dividere per il prodotto righe per colonne. ] Per immagini multispettrali (per esempio a colori RGB) si opera un istogramma per ogni componente. 12/02/2007 Sistemi di Elaborazione Dati 169 Immagine originale ] Immagine originale ] Istogramma 12/02/2007 0 Sistemi di Elaborazione Dati 255 170 85 Immagine Normalizzata ] Se l’immagine acquisita ha valori in un intervallo limitato [min, max] la trasformazione: O(i, j) = 255 I(i, j) − min max − min amplifica la dinamica dei grigi utlizzati, estendendola a tutta la banda possibile [0, 255]. 0 12/02/2007 a b Sistemi di Elaborazione Dati 255 171 Lineare a Banda Ristretta ] O Applicando l’intera dinamica [0, 255] nell’intevallo [a, b]: \ per I(i, j)<a O(i, j)=0 \ per I(i, j)>b O(i, j)=255 \ per a ≤ I(i, j) ≤ b: I(i,j) -a O(i,j) = 255 ———— b-a si evidenzia con il massimo di contrasto una frazione della banda dei grigi. 255 0 I a 12/02/2007 b 255 0 Sistemi di Elaborazione Dati 255 172 86 Immagine Sottoesposte ] Caratteristiche non lineari: O(i,j) = √ 255 I(i,j) 12/02/2007 0 Sistemi di Elaborazione Dati 255 173 Immagine Sovraesposte ] Caratteristiche non lineari: I(i,j)2 O(i,j) = ———— 255 12/02/2007 0 Sistemi di Elaborazione Dati 255 174 87 Immagine Equalizzata ] Caratteristiche non lineari: nel processo di equalizzazione si concentrano i livelli in funzione della frequenza relativa: I(i,j) ∑ h(s) O(i,j) = 255 s=0 255 ∑ h(s) s=0 12/02/2007 0 Sistemi di Elaborazione Dati 255 175 Segmentazione ] Segmentare una immagine significa suddividerla in componenti. ] Il processo di segmentazione viene effettuato sulla base di qualche criterio di omogeneità (cromatico, morfologico, di moto, di distanza, ecc.) ] Dal punto di vista operativo si distinguono tre approcci: \ Ricerca di contorni \ Accrescimento di regioni \ Inseguimento di contorni 12/02/2007 Sistemi di Elaborazione Dati 176 88 Immagini Binarie ] La segmentazione conduce alla identificazione del singolo oggetto rispetto al resto (sfondo) quindi è un processo di binarizzazione. ] Vi sono applicazioni che per loro natura possono essere considerate binarie: stampati, dattiloscritti, parti meccaniche piatte di superficie omogenea, immagini microscopiche di cellule, cromosomi ... ] Spesso appaiono numerosi livelli di grigio a causa di: \ Rumore elettrico generato dalla telecamera \ Illuminazione non omogenea della scena \ Ineguale sensibilità dell'obiettivo al centro e ai bordi 12/02/2007 Sistemi di Elaborazione Dati 177 Distribuzione Bimodale ] Un metodo per segmentare consiste nell’applicare una soglia sui livelli di grigio. È la soluzione più semplice Istogramma bimodale \ O(i, j) = 0 se I(i, j) < S \ O(i, j) = 255 altrimenti ] Si tratta di determinare il valore di tale soglia S. ] Operando sull’istogramma ci sono due possibili approcci: \ Ricerca del minimo | Valore Medio Oggetto | | Valore Medio Sfondo | \ Criteri statistici 12/02/2007 Sistemi di Elaborazione Dati 178 89 Esempio pezzo Istogramma bimodale Immagine Originale 12/02/2007 Immagine Binaria Sistemi di Elaborazione Dati 179 Esempio Vela Istogramma Immagine Originale 12/02/2007 Soglia = 140 Sistemi di Elaborazione Dati Immagine Binaria 180 90 Il processo di compressione Il processo di compressione ] Per ovviare all’aumento delle moli di dati da memorizzare e/o trasmettere sono state sviluppate una serie di tecniche che consentono di trasformare segnali digitali (ovvero i file in cui sono memorizzati) in segnali compressi che codificano la medesima informazione occupando minor spazio 12/02/2007 Sistemi di Elaborazione Dati 182 91 Il processo di compressione ] Un algoritmo di compressione (o processo di codifica) trasforma i dati originali di ingresso per produrre in uscita un flusso di dati codificati ] Nel verso opposto, un algoritmo di decompressione (o processo di decodifica) trasforma i dati compressi per produrre un flusso di dati decompressi 12/02/2007 Sistemi di Elaborazione Dati 183 Il processo di compressione ΦO Dati originali ΦD Dati decompressi 12/02/2007 Data Compression Data Decompression Sistemi di Elaborazione Dati Dati codificati ΦC Dati compressi 184 92 Il processo di compressione ] I due parametri usati per misurare l’efficacia della compressione sono il fattore di compressione e la figura di merito ] Il fattore di compressione (C) è definito come il rapporto tra la dimensione dei dati originali e la dimensione dei dati compressi: si ha compressione se e solo se C>1 C= 12/02/2007 l (Φ O ) l (Φ C ) Sistemi di Elaborazione Dati 185 Il processo di compressione ] La figura di merito (F) è il reciproco del fattore di compressione ] Si ha quindi una compressione se F<1 F= 12/02/2007 l (Φ C ) 1 = l (Φ O ) C Sistemi di Elaborazione Dati 186 93 Il processo di compressione ] La compressione è tanto più efficiente quanto maggiore è il valore di C ] Il fattore di compressione dipende sia dai dati che dall’algoritmo di compressione ] Buoni algoritmi di compressione di dati generici possono raggiungere un fattore C>2, algoritmi molto buoni possono raggiungere C>3 12/02/2007 Sistemi di Elaborazione Dati 187 Il processo di compressione ] Le tecniche di compressione possono essere basate su criteri dipendenti o indipendenti dall’analisi preliminare dei dati che si stanno trattando ] Possiamo classificare le tecniche in due categorie: \ logica (dipendente dall’analisi preliminare) \ fisica (indipendente dall’analisi preliminare) 12/02/2007 Sistemi di Elaborazione Dati 188 94 Compressione logica ] Si effettua una compressione logica quando a priori, cioè in fase di progetto del meccanismo di codifica, si strutturano i dati in modo da eliminare inutili ripetizioni o usando forme di abbreviazione ] Ad esempio è una compressione logica: 18 settembre 1996 ⇒ 18/09/96 12/02/2007 Sistemi di Elaborazione Dati 189 Compressione logica ] Nell’esempio 18 settembre 1996 ⇒ 18/09/96 il fattore di compressione si calcola come rapporto tra i numeri di caratteri delle due stringhe: C = 17/8 = 2,125 12/02/2007 Sistemi di Elaborazione Dati 190 95 Compressione logica ] Un altro esempio di eliminazione di ripetizioni inutili è dato dall’utilizzo di relazioni in un database relazionale ] Quando dividiamo le informazioni in più tabelle strutturate codifichiamo una sola volta una serie di informazioni accessorie con l’inserimento di puntatore nelle altre tabelle 12/02/2007 Sistemi di Elaborazione Dati 191 Compressione logica (30 char) Cognome e Nome Rossi Mario Verdi Carlo Bianchi Luisa Melis Gaspare … (30 char) Professione lavapiatti geometra casalinga geometra … (30 char) Cognome e Nome Rossi Mario Verdi Carlo Bianchi Luisa Melis Gaspare … 12/02/2007 5(char) Ptr. 07123 18412 11176 18412 … Sistemi di Elaborazione Dati (30 char) Professione … lavapiatti … casalinga … geometra 192 96 Compressione logica ] Supponendo che le persone inserite nel database siano 1.800.000 e che 20.000 sia il numero delle professioni, la dimensione del database senza relazioni è: DIM1 = (30+30)×1,800,000 = 108,000,000 char ] Se dividiamo le informazioni in due tabelle: DIM2 = (30+5) ×1,800,000+20,000×30 = 63,600,000 char con C dato dal rapporto DIM1/DIM2 (circa 1.7) 12/02/2007 Sistemi di Elaborazione Dati 193 Compressione logica ] Tutti i metodi di compressione logica sono comunque data depending, dipendono dalla struttura logica dei dati che si stanno comprimendo e dall’organizzazione dei dati ] Dato che normalmente si ha la necessità di operare su dati la cui produzione non è sotto il nostro controllo non è possibile influire su questi fattori e quindi adottare tecniche di compressione di questo tipo ] Le tecniche di compressione logica non sono tecniche di compressione nel senso stretto del termine 12/02/2007 Sistemi di Elaborazione Dati 194 97 Compressione fisica ] Per compressione fisica, o solo compressione, intendiamo invece il processo di riduzione della quantità di dati già codificati prima che questi vengano immessi sul canale di trasmissione o vengano archiviati ] L’espansione corrispondente dei dati avviene alla loro ricezione (nel caso della trasmissione) o quando vengono utilizzati (nel caso dell’archiviazione) 12/02/2007 Sistemi di Elaborazione Dati 195 Compressione fisica ] L’approccio più elementare alla compressione si basa sulla constatazione che, considerando i dati come un flusso di singole unità elementari, (siano essi caratteri o, a livello ancora più fine, byte o bit) possono essere rilevate ripetizioni di gruppi da codificate con un numero minore di simboli 12/02/2007 Sistemi di Elaborazione Dati 196 98 Compressione fisica ] Se ad esempio si considera la seguente stringa: L'ATTENZIONE NAZIONALE SULL'AZIONE DEL GOVERNO DIM = 46 char tramite l’associazione: L'A = © ZION = ® la stringa originale diviene: ©TTEN®E NA®ALE SUL©®E DEL GOVERNO DIM = 33 char ] Il fattore di compressione è circa 1.39 12/02/2007 Sistemi di Elaborazione Dati 197 Compressione fisica ] I benefici della compressione, dati dalla riduzione della quantità di informazione archiviata e/o trasferita, sono controbilanciati dal rallentamento delle applicazioni ] Occorre infatti sempre decodificare l’informazione prima di poterla utilizzare 12/02/2007 Sistemi di Elaborazione Dati 198 99 Compressione lossy vs lossless ] Il processo di codifica dell’informazione può essere reversibile o irreversibile ] Quando si comprimono informazioni per le quali è assolutamente necessario poter ricostruire esattamente i dati di partenza (ad es. dati bancari, libri paga, cartelle cliniche, testi scritti come libri o articoli), si devono utilizzare metodi reversibili o lossless (senza perdita, sottinteso di informazione) 12/02/2007 Sistemi di Elaborazione Dati 199 Compressione lossy vs lossless ] Quando invece, come nel caso della compressione di immagini o audio, una perdita accettabile di informazione non ne pregiudica il significato ci si può permettere di utilizzare dei metodi lossy (con perdita), che consentono di ottenere buoni valori di C 12/02/2007 Sistemi di Elaborazione Dati 200 100 LossLess Compression Run Length Encoding ] La tecnica Run Length Encoding (RLE) è un metodo di compressione dei dati che riduce fisicamente qualunque tipo di ripetizione di componenti elementari ] L’operazione di codifica impiega un carattere speciale per indicare sui dati di uscita la presenza di compressione delle ripetizioni 12/02/2007 Sistemi di Elaborazione Dati 202 101 Run Length Encoding ] Ogni ripetizione di uno stesso carattere c, detta run, viene sostituita in uscita con il carattere speciale di inizio compressione, seguito da c stesso (per indicare su quale carattere è il run) e dal numero di occorrenze di c 12/02/2007 Sistemi di Elaborazione Dati 203 Run Length Encoding ] Se ad esempio decidiamo di usare come carattere speciale & la stringa: abbccccccdddddddd ] La stringa di ingresso contiene quattro run: [a], [bb], [cccccc] e [dddddddd] e verrà codificata da: abb&c6&d8 12/02/2007 Sistemi di Elaborazione Dati 204 102 Run Length Encoding ] Quando la lunghezza del run è inferiore a 4 non conviene usare la compressione altrimenti si avrebbe un effetto, non voluto, di espansione (C<1) dato che per codificare un run occorrono tre caratteri 12/02/2007 abbccccccdddddddd abb&c6&d8 Sistemi di Elaborazione Dati 205 Run Length Encoding ] Per questo motivo i primi due run (di a e b) rimangono invariati nella codifica ] Il run di 6 c viene invece codificato con &c6, che va letto “6 occorrenze del simbolo c”, la stessa codifica viene applicata al run di d 12/02/2007 abbccccccdddddddd Sistemi di Elaborazione Dati abb&c6&d8 206 103 Run Length Encoding ] Altrettanto semplice è la procedura di decodifica ] Si scandisce la stringa codificata e per ogni carattere si verifica se sia uguale o diverso da &: nel caso che sia diverso si copia nella stringa decodificata, altrimenti si scrivono nella stringa tanti caratteri che seguono & quanti sono specificati dal numero ancora successivo 12/02/2007 Sistemi di Elaborazione Dati 207 Tecniche statistiche ] La compressione RLE non fa alcuna distinzione tra i componenti elementari del segnale da comprimere, come abbiamo visto tutti i caratteri sono uguali di fronte all’algoritmo di compressione ] I metodi di compressione statistica si basano sulla considerazione che le probabilità di occorrenza di ogni carattere o gruppo di caratteri non sono sempre uguali 12/02/2007 Sistemi di Elaborazione Dati 208 104 Tecniche statistiche ] Nella lingua italiana, ad esempio, la lettera “i” appare in un qualsiasi documento molto più frequentemente della lettera “q” ] Se si modifica la codifica dei vari caratteri in modo tale da assegnare rappresentazioni più corte ai caratteri (o gruppi di caratteri) più frequenti si può riuscire a risparmiare notevolmente nella compressione 12/02/2007 Sistemi di Elaborazione Dati 209 Tecniche statistiche ] Un esempio di processo di codifica statistica è il codice Morse dove un singolo punto è usato per codificare la lettera “e” (la più frequente nell’alfabeto inglese), mentre sequenze di punti e linee più lunghe sono impiegati per indicare i caratteri meno frequenti (es. x = –••–) 12/02/2007 Sistemi di Elaborazione Dati 210 105 Algoritmo di tipo LZW (Lempel Ziv Welch) Idea: sostituire gruppi di pixel con un codice che punta a un “dizionario” dove è definito un tale gruppo Dizionario 0x1 Immagine di partenza 0xA 0xF Immagine codificata 0x1;0xA;0x1;0x1;0x1;0xF;0xA;0xF;0xA 12/02/2007 Sistemi di Elaborazione Dati 211 LZW : Realizzazione Si inizia con un dizionario di 256 termini (per una immagine a 256 livelli) Il dizionario cresce fino a un numero di elementi pari al numero di bit dei codici 12/02/2007 Si cercano pattern (dim. fissa o variabile) che si ripetono, quando ciò si verifica il dizionario è aggiornato. Nella variante lossy blocchi “simili” (non necessariamente identici) hanno stesso codice Se il dizionario è pieno e un blocco non è codificato, si usa un “overload code” cui seguono i pixel-values Sistemi di Elaborazione Dati Il dizionario è incollato ai codici 212 106 Formati per immagini digitali Formati Grafici ] Un formato di dati grafico è una specifica che descrive come memorizzare le caratteristiche di un’immagine su file e può o non può prevedere che si ricorra anche a tecniche di compressione ] La maggior parte dei formati grafici include delle tecniche di compressione per memorizzare le immagini, per cui si tende, nel parlare comune, a confondere tra formati grafici e compressioni di immagini 12/02/2007 Sistemi di Elaborazione Dati 214 107 Formati Grafici Raster ] intestazione (header) + dati ] header \ \ \ \ \ \ \ dim immagine pixel x × pixel y data creazione programma creatore autore disegno disposizione dei (successivi) dati dei pixel uso (eventuale) di tavolozze colori (palette) uso (eventuale) di tecniche di compressione ] dati \ colori dei pixel 12/02/2007 Sistemi di Elaborazione Dati 215 Formati Grafici Raster ] Loseless compression \ \ \ \ GIF Graphic Interchange Format BMP bitmap PNG Portable Network Graphics TIFF Tagged Image File Format ] Lossy compression \ JPEG JFIF \ Joint Photographic Experts Group – JPEG File Interchange Format 12/02/2007 Sistemi di Elaborazione Dati 216 108 Graphics Interchange Format ] formato proprietario Compuserve Inc. \ programmi che usano GIF pagano i diritti diffuso su Internet definito nel 1987, revisionato nel 1989 comprime dati con l’algoritmo LZW max 8 bit per pixel (256 colori) colori possono essere specificati una una palette (in coda all’intestazione): Lookup Table ] header contiene versione (87a o 89a) ] un file può contenere più GIF (“GIF animate”) ] consente la definizione di un colore trasparente ] ] ] ] ] 12/02/2007 Sistemi di Elaborazione Dati 217 GIF ] Lo schema sottostante rappresenta come è fatto un file GIF89: GIF Signature Screen Descriptor Global Color Map Image Descriptor Local Color Map Raster Data ripetuto da 1 a n volte GIF Terminator 12/02/2007 Sistemi di Elaborazione Dati 218 109 GIF ] GIF Signature 6 byte che contengono i caratteri “GIF89a” ] Screen Descriptor 8 byte che forniscono le seguenti informazioni: \ Larghezza dell'immagine \ Altezza dell'immagine \ Flag M (1 bit) che indica l’esistenza della Global Color Map \ cr (3 bit) che indica la color resolution, es. cr=7 -> 256 colori \ pixel aspect ratio \ background color 12/02/2007 GIF Signature Screen Descriptor Global Color Map Image Descriptor Local Color Map Raster Data ripetuto da 1 a n volte GIF Terminator Sistemi di Elaborazione Dati 219 GIF ] Global color map contiene i valori RGB di ogni colore della palette (esiste solo se abilitata dal flag M) ] Image Descriptor è un campo che contiene il numero di colonna (espresso in pixel) del lato sinistro dell’immagine, il numero di riga del lato in alto, la larghezza e l’altezza dell’immagine, un altro flag M per indicare l’uso di una palette locale e un flag I per indicare se l’immagine è interlacciata 12/02/2007 GIF Signature Screen Descriptor Global Color Map Image Descriptor Local Color Map Raster Data ripetuto da 1 a n volte GIF Terminator Sistemi di Elaborazione Dati 220 110 GIF ] Local color map contiene una sequenza di valori RGB nello stesso formato della Global color map Se presente, la Local color map diventa la tabella attiva dei colori (per l’immagine raster sottostante) al posto della Global color map ] Raster Data contiene l’immagine memorizzata riga per riga, da sinistra verso destra Un’eccezione a questo ordinamento si ha se il flag I nell’Image Descriptor è settato a 1, in tal caso l'immagine è memorizzata tramite un processo di interlacciamento a quattro passi 12/02/2007 GIF Signature Screen Descriptor Global Color Map Image Descriptor Local Color Map Raster Data ripetuto da 1 a n volte GIF Terminator Sistemi di Elaborazione Dati 221 GIF ] Il formato GIF riduce l’occupazione su disco di un’immagine limitando il numero di colori che compaiono in essa -> vengono scelti quelli più frequenti, alcune sfumature vengono perse e sostituite dalle sfumature più vicine fra quelle mantenute. ] Naturalmente più si limita il numero di colori più l’immagine sarà piccola; il numero può andare da un minimo di 2 ad unmassimo di 256. ] L’insieme dei colori utilizzati viene salvato insieme all’immagine come palette di colori. ] Il formato GIF è adatto ad immagini geometriche, possibilmente con un numero di colori non elevato. 12/02/2007 Sistemi di Elaborazione Dati 222 111 BMP Bitmap ] Formato raster per eccellenza ] DIB = device-independent bitmap -> la bitmap specifica il colore del pixel in una forma independente dal metodo usato dal dispositivo di visualizzazione per rappresentare il colore. ] supporta colori a 1, 4, 8 o 24 bit \ 4 e 8 bit usano una palette o tavola dei colori ] pixel organizzati per righe \ inizio: in basso a sx ] consente compressione Run Lenght Encoding per 4 e 8 bits di colore (opzionale) 12/02/2007 Sistemi di Elaborazione Dati 223 BMP Bitmap: Struttura ] Un file BMP può essere descritto in modo astratto dalla seguente struttura: BITMAPFILEHEADER bmfh; BITMAPINFOHEADER bmih; RGBQUAD aColors[]; BYTE aBitmapBits[]; 12/02/2007 Sistemi di Elaborazione Dati 224 112 BMP Bitmap: Struttura ] BITMAPFILEHEADER è il bitmap-file header e contiene informazioni su: tipo, dimensioni, e layout della DIB bmp. ] BITMAPINFOHEADER specifica: dimensioni, tipo di compressione, e formato del colore. ] RGBQUAD (tavola dei colori). Non è presente per bitmaps a 24 bits red-green-blue (RGB). I colori appaiono nella tabella in ordine di importanza così da facilitare il display driver nel disegno su un dispositivo che non può visualizzare tutti i colori presenti. ] BYTE è al sequenza de bitmap bits e segue immediatamente dopo la tavola dei colori. Rappresenta le righe consecutive, "scan lines”, della bitmap ottenute “bottom to up”. Ogni scan line consiste in byte consecutivi relativi ai pixels nella scan line (in left-to-right order). Il numero di bytes per una scan line dipende dal formato del colore e dalla larghezza, in pixels. 12/02/2007 Sistemi di Elaborazione Dati 225 The following example is a text dump of a 16-color bitmap (4 bits per pixel): Win3DIBFile BitmapFileHeader Type 19778 Size 3118 Reserved1 0 Reserved2 0 OffsetBits 118 BitmapInfoHeader Size 40 Width 80 Height 75 Planes 1 BitCount 4 BMP Bitmap: Struttura ;può valere 1 (Monochrome), 4, 8 o 24 bits per colore Compression 0 SizeImage 3000 ;può essere RLE8 a 256 colori o RLE4 a 16 colori [00000000] [00000001] [00000002] [00000003] [00000004] [00000005] [00000006] [00000007] [00000008] [00000009] [0000000A] [0000000B] [0000000C] [0000000D] [0000000E] [0000000F] . . . 12/02/2007 XPelsPerMeter 0 YPelsPerMeter 0 ColorsUsed 16 ColorsImportant 16 Win3ColorTable Blue Green Red Unused 84 252 84 0 252 252 84 0 84 84 252 0 252 84 252 0 84 252 252 0 252 252 252 0 0 0 0 0 168 0 0 0 0 168 0 0 168 168 0 0 0 0 168 0 168 0 168 0 0 168 168 0 168 168 168 0 84 84 84 0 252 84 84 0 Image Bitmap data Sistemi di Elaborazione Dati 226 113 PNG ] nasce con l’intento di soppiantare GIF (ma non supporta “PNG animate”) ed è gratuito \ pronuncia: ping ] supporta la compressione \ dal 5% al 25% meglio di GIF ] fino a 48 bit per pixel (true color) \ supporta la calibrazione del colore a 24 bit ] supporta trasparenza a gradazione ] supporta correzione gamma (per mantenere il corretto rapporto di intensità tra parti di immagine) 12/02/2007 Sistemi di Elaborazione Dati 227 TIFF - Tag(ged) Image File Format ] Sviluppato per gli scanner nel 1986 da Microsoft e Aldus (Adobe) ] immagini raster per uso professionale ] supporta colori fino a 24 bit ] Permette di rappresentare immagini con diversi spazi di colore: scale di grigio, RGB, CMYK e CIELab ] dati organizzati ad accesso casuale ] supporta 5 metodi di compressione \ 3 per i fax e 2 per le immagini di qualità \ se ne possono specificare altri 12/02/2007 Sistemi di Elaborazione Dati 228 114 Lossy Compression Lossy Compression ] Queste tecniche di compressione, come già spiegato, vengono usate essenzialmente per immagini o dati audio, cioè quel tipo di segnali in cui è possibile “tagliare” parte dell’informazione senza perdita di significato 12/02/2007 Sistemi di Elaborazione Dati 230 115 Lossy Compression ] Per meglio comprendere come ciò sia possibile, basta pensare alle normali comunicazioni telefoniche: nonostante l’udito umano possa percepire tutti i suoni da 1 Hz a circa 18 KHz, la banda passante del segnale telefonico è di appena 2 KHz, senza che ciò pregiudichi la comprensione delle conversazioni 12/02/2007 Sistemi di Elaborazione Dati 231 JPEG ] JPEG (Joint Photographic Experts Group) è progettato per la compressione di immagini fullcolor o a toni di grigio ] La tecnica funziona in modo ottimale per l’archiviazione di fotografie, opere artistiche e similari mentre non è adatta per testi scritti, disegni tecnici o al tratto ] JPEG codifica esclusivamente immagini fisse, mentre esiste uno standard simile per sequenze animate (MPEG) 12/02/2007 Sistemi di Elaborazione Dati 232 116 JPEG ] JPEG sfrutta i noti limiti del sistema visivo umano che non percepisce piccoli cambiamenti di colore, mentre è molto sensibile a variazioni di luminosità ] In altre parole, JPEG tende ad alterare l’informazione cromatica (traendo da questo beneficio in compressione), ma lascia il più possibile inalterata la luminosità 12/02/2007 Sistemi di Elaborazione Dati 233 JPEG ] Un altra proprietà importante di JPEG è la possibilità di tarare il “grado di perdita” (qualità dell’immagine) tramite un opportuno parametro ] La dimensione del file codificato e la qualità dell’immagine sono due fattori contrastanti: si può rendere estremamente piccolo un file, ottenendo però un’immagine di scarsa qualità, oppure, viceversa, ottenere immagini di grande qualità, memorizzate su file di dimensioni maggiori 12/02/2007 Sistemi di Elaborazione Dati 234 117 Esempio GIF89a lossless C=4.85 12/02/2007 Sistemi di Elaborazione Dati 235 Esempio JPEG Q=100 C=2.97 12/02/2007 Sistemi di Elaborazione Dati 236 118 Esempio JPEG Q=75 C=15.68 12/02/2007 Sistemi di Elaborazione Dati 237 Esempio JPEG Q=50 C=26.34 12/02/2007 Sistemi di Elaborazione Dati 238 119 Esempio JPEG Q=25 C=44.09 12/02/2007 Sistemi di Elaborazione Dati 239 Esempio JPEG Q=5 C=104.24 12/02/2007 Sistemi di Elaborazione Dati 240 120 JPEG vs GIF - Conclusioni •Il formato JPEG riduce l’occupazione su disco di un’immagine diminuendo la qualità di visualizzazione -> consente di usare tutta la gamma RGB. • Mentre il formato GIF è adatto ad immagini geometriche, possibilmente con un numero di colori non elevato, il formato JPEG è adatto ad immagini di tipo fotografico, dove la perdita di qualità si nota di meno, o in generale ad immagini dove un limite sul numero di colori produrrebbe differenze troppo significative 12/02/2007 Sistemi di Elaborazione Dati 241 Formati grafici - Conclusioni •Per inserire immagini in una pagina web i soli formati disponibili sono jpeg, png e gif: gli altri non verrebbero visualizzati. •Per le foto si può optare per il formato tiff o png, ma se vogliamo risparmiare spazio è ottimo il formato jpeg che consente una riduzione del file anche ad un decimo della dimensione iniziale, a fronte di una perdita qualitativa trascurabile. •Per le immagini o disegni con pochi colori si può utilizzare il png o il formato gif, non è adatto invece lo jpeg che in questi casi degrada molto l'immagine. Per ridurre ulteriormente la dimensione dei file utilizzando il formato png si può prima trasformare l'immagine in scala di colori e poi salvarlo. •Per immagini di alta qualità da stampare o da conservare senza il rischio di perdere il minimo dettaglio il tiff è ottimo. 12/02/2007 Sistemi di Elaborazione Dati 242 121 Schema riassuntivo Compressione Traspa- Es. DimenUtilizzi renza sione foto Formato Colori Max Nativo Milioni Lossless Si 1,5 MB Jpeg Milioni Lossy No 0,1 MB Png Milioni Lossless Si 1,1 MB Gif 256 Lossless Si N/D Tiff Milioni Lossless Si 1,5 MB Bmp Milioni Lossless No 1,5 MB Tutti, non per internet Foto, anche da pubblicare in rete Tutti, compresi disegni foto anche per il web Disegni, loghi, immagini con pochi colori, animazioni, trasparenze Tutti, stampa Meno lo usate meglio è, se proprio volete va bene un po' per tutto, ma non per il web 122