Articolo pubblicato sul n. 171 di MCmicrocomputer (Edizioni Technimedia Srl - Roma) nel marzo 1997

MCmicrocomputer


Digital Imaging:
Colore... COLORE!!!
(seconda parte)

di Andrea de Prisco

Lo scorso mese, per entrare nella maniera piu' "soft" possibile nel mondo della colorimetria, abbiamo addirittura scomodato l'occhio umano e il suo funzionamento di base. L'abbiamo coraggiosamente paragonato ad una moderna telecamera a coloriCopertina del numero di MCmicrocomputer contenente l'articolo (e' evidente che sarebbe molto piu' sensato il paragone opposto!) e sono stati indicati i concetti base della sintesi cromatica additiva e sottrattiva. Il tutto non mirato (come certamente vi attendete) a stancarvi con noiose elucubrazioni pseudoteoriche, ma per sviscerare quanto piu' possibile uno dei maggiori problemi che si incontrano nel trattamento digitale delle immagini. L'abbiamo gia' introdotto lo stesso mese (e chissa' quante altre volte lo ripeteremo...) ma il problema maggiore, quando si trattano "in digitale" le immagini fotografiche, non e' la risoluzione grafica ma la fedelta' cromatica. E' molto meglio un'immagine in cui sia rispettata quanto piu' possibile la corrispondenza dei colori con l'originale (finanche a scapito della risoluzione reale) piuttosto che contare esclusivamente sul numero di punti effettivamente riconoscibili ovvero sulla definizione globale. Se poi e' possibile ottenere entrambe le cose, tanto meglio, ma se (per qualsiasi motivo) dobbiamo rinunciare ad una delle due caratteristiche, finche' siamo in cerca della tanto attesa qualita' fotografica, dobbiamo metterci in testa che dovremo concentrare maggiormente i nostri sforzi sull'aspetto "fedelta'".
Partendo da un originale fotografico, su carta, su pellicola diapositiva o negativa, il trasferimento dell'immagine sul computer e', come noto, solo il primo elemento della catena fotodigitale. L'immagine, digitalizzata, e' trasferita nella memoria del computer dove puo' essere utilizzata in vario modo. Gia' alla semplice visualizzazione su monitor, se non prendiamo gli opportuni provvedimenti, possiamo avere brutte sorprese. Tinte slavate o colori troppi saturi, basso o eccessivo contrasto, luminosita' esagerata o grigiore congenito... e giu' a imprecare contro il dispositivo di input: "Questo scanner vale la meta' di un tubo!".
Eppure lo scanner, qualunque esso sia, e' responsabile solo per un terzo del complessivo disastro. Sottovalutiamo, infatti, che tra questo e la nostra percezione visiva c'e' ancora di mezzo la scheda video (che ha il compito di trasformare i dati digitali in segnali analogici per la visualizzazione) e il monitor (utilizza questi ultimi per mostrare, realmente, l'immagine ai nostri occhi).
Se vediamo un'immagine poco gradevole, la colpa puo' essere (con pari probabilita') di ognuno dei tre dispositivi implicati nel fattaccio. Provate ora ad immaginare cosa succede se stampiamo la nostra immagine. Con un sistema non calibrato, riuscire ad ottenere nuovamente su carta i colori originali (o quelli che abbiamo generato noi in seguito ad una, auspicabile, fotoelaborazione digitale) equivale a vincere un terno secco al lotto: chi si e' occupato, anche solo marginalmente, di fotografia digitale conosce fin troppo bene la tragicita' del problema. Alla ben nota aleatorieta' dello scanner, della scheda video, della resa cromatica del monitor bisogna aggiungere il comportamento del driver di stampa e della periferica di uscita vera e propria: carta utilizzata, inchiostri, modalita' di utilizzo, ecc. ecc.
Piu' che utenti di personal computer si finisce per diventare veri e propri domatori di dispositivi. Che brutte bestie...

Calibrare si puo'...

Assunto che, tra originale fotografico e risultato finale su carta e' frapposta una complessa catena di dispositivi, ognuno responsabile in parte del trasporto della fedelta' cromatica, ci si pone il problema di come uscire vivi da questo circolo vizioso.
Cominciamo dallo scanner. Qualunque sia il suo formato, la sua fascia di prezzo, la tecnologia utilizzata per la digitalizzazione, una cosa e' certa" avra' un modo "tutto suo" di interpretare (di leggere) i colori. Sbagliato o corretto che sia, e' assolutamente necessario che il sistema, l'intera catena fotodigitale, sia a conoscenza del suo comportamento cromatico. Deve, in altre parole, sapere in che modo vengono codificate le varie tinte. Quel particolare giallo paglierino sara' codificato in questo modo, il rosso scarlatto in quest'altro, il blu cobalto cosi', il rosso pomodoro... pomi'. Naturalmente non e' possibile partire dai colori in genere cosi' come siamo abituati a chiamarli (non penserete mica che esiste un unico blu cobalto!), ma e' necessario partire da tinte campione di cui e' nota la ricetta cromatica. Esistono in commercio delle tabelle di test formate da svariati quadratini colorati, stampate su carta fotografica con la massima cura e testate una per una con appositi spettrofotometri professionali. Con la tabella di test e', normalmente, fornito un dischetto contenente i reali valori letti dallo strumento professionale sicche' e' possibile sapere con esattezza l'effettiva composizione dei colori indicati. Tramite un software di calibrazione, abilitato per utilizzare la tabella test di cui sopra, si sottopone ad "esame cromatico" lo scanner: inserita la matrice di colori sul piano di lettura, il software di calibrazione (che sa esattamente quei colori come sono fatti) analizza il comportamento del dispositivo. Magari scoprendo che la tinta XYZ viene letta come X'Y'Z', e lo stesso (con differenze diverse) avviene praticamente per tutti i colori rilevati. Confrontando, subito dopo, i valori letti dallo scanner con i dati reali contenuti nel dischetto, il software di calibrazione e' in grado di costruire il profilo cromatico dello scanner semplicemente (si fa per dire...) effettuando una sottrazione tra le due tabelle. Ci siamo quasi: digitalizzato ora un originale fotografico qualunque e' possibile "rimappare" la lettura teste' effettuata nei valori calibrati tenendo conto delle differenze rilevate in sede di calibrazione. Naturalmente le tabelle test non contengono tutte le tinte possibili ed immaginabili ma un ristrettissimo sottoinsieme: un centinaio di valori o poco piu'. Un altro compito del software di calibrazione sara', ovviamente, quello di interpolare i dati letti in modo da stimare il comportamento del dispositivo anche per le tinte intermedie non contenute nella cartina di test. Solo cosi' potremo esser certi di non aver letto fischi per fiaschi... e per quanto riguarda lo scanner siamo a posto.
Il secondo problema riguarda la visualizzazione sul monitor. Assunto che la nostra immagine digitale, grazie all'utilizzo del profilo cromatico "vero" del dispositivo utilizzato, sia corrispondente all'originale fotografico, nel momento in cui la visualizziamo a video non dobbiamo permettere che il monitor massacri nuovamente il tutto. Tornando all'esempio di prima, la tinta XYZ (letta dallo scanner come X'Y'Z' ma riconvertita in XYZ dal software di calibrazione) dovra', per quanto possibile, essere visualizzata come l'XYZ originale e non in altro modo (X''Y''Z'', tanto per essere originali). Ovvero, a quel valore digitale cromatico, ottenuto dalla lettura calibrata di una determinata tinta, deve corrispondere anche su monitor (e ricordatevi che c'e' sempre di mezzo la scheda video) la stessa tinta e non "qualcosa che vi assomigli".
La calibrazione del monitor e' un po' piu' dolorosa di quella dello scanner in quanto non e' sufficiente una cartina cromatica e un software ma e' coinvolto nella riuscita del procedimento nientepopodimeno che il sistema operativo della macchina utilizzata ed e' necessario utilizzare un colorimetro esterno per effettuare la calibrazione vera e propria. Oltre a questo, il monitor deve essere stabile, fluttuando
il meno possibile all'interno del suo spazio cromatico, evitando in altre parole di avere comportamenti "troppo diversi" nell'arco della giornata. Il sistema operativo della macchina deve, inoltre, avere una propria coscienza cromatica: deve essere in grado di gestire i profili di calibrazione di monitor e scheda video, pilotando opportunamente quest'ultima per visualizzare i colori correttamente. Anche in questo caso si utilizza un software di calibrazione che visualizza colori campione sul monitor e, contemporaneamente, legge tramite il colorimetro le tinte effettivamente visualizzate. E costruisce anche per il monitor (in realta' per l'accoppiata scheda video+monitor) il profilo cromatico del dispositivo: una nuova tabella di conversione con la quale i colori verranno visualizzati correttamente dal nostro monitor.
Prima di proseguire con la fase di stampa vediamo finora quel che e' successo. Siamo partiti da un originale fotografico e abbiamo ottenuto a video la sua corretta visualizzazione dopo un'altrettanto corretta digitalizzazione tramite scanner. Per semplicita' focalizziamo la nostra attenzione sulla tinta XYZ che, finalmente, vediamo tale anche su monitor. Lo scanner, come detto precedentemente, legge la tinta XYZ come X'Y'Z'. Appena letta l'immagine, il software di gestione del dispositivo, che tiene conto del profilo cromatico costruito dal software di calibrazione con l'utilizzo della cartina test, converte automaticamente il dato X'Y'Z' nel corretto XYZ. Ora l'immagine digitale e' nella memoria del nostro computer pronta per essere visualizzata. Lo stesso avviene in questa fase: visto che la tinta XYZ viene mostrata a video come X''Y''Z'' e' necessario un secondo intervento correttivo (sicuramente diverso dal primo) per riaggiustare nuovamente i colori. Con una nuova trasformazione cromatica, i colori codificati in memoria sono rimappati secondo il profilo cromatico del monitor per ottenere le tinte esatte in visualizzazione.
Posto che sia chiaro tutto il ragionamento, proviamo ad andare avanti. Il terzo problema, come noto, lo ritroviamo in fase di stampa. Se la nostra macchina non e' (al pari dello scanner e del monitor) un dispositivo calibrabile ben difficilmente potremo ottenere, in uscita su carta, risultati soddisfacenti. La calibrazione della stampante e' simile a quella relativa all'accoppiata monitor+scheda video. Tramite un analizzatore colore (simile a quello utilizzato per quest'ultimi ma in grado di leggere le tinte per riflessione) si effettua la lettura di una tabella test, disponibile in questo caso in formato digitale, stampata tramite la periferica d'uscita a colori da calibrare. E, in pratica, succede esattamente la stessa cosa del caso precedente. Il software di calibrazione conosce la natura della tabella, quadratino per quadratino tutti i colori che "dovrebbero" essere stampati, analizza tramite il dispositivo di lettura la tabella stampata e... si rende conto del comportamento cromatico della stampante. Costruisce (ancora una volta) un profilo di calibrazione di quel dispositivo, in pratica un'ormai consueta tabella numerica in cui e' radiografato il suo comportamento. Tramite questa, quando stamperemo un'immagine, il software utilizzato per la stampa dovra' effettuare le necessarie conversioni (rimappatura) per rendere al meglio il risultato su carta.

Guerra di indipendenza

I lettori piu' smaliziato avranno certamente intravisto, nell'indicazione dei colori tipo XYZ, X'Y'Z', X''Y''Z'' utilizzata precedentemente, la consueta notazione RGB (Red, Green, Blu, rosso, verde, blu) usata da molti programmi di grafica per la codifica cromatica. Ne abbiamo anche parlato brevemente lo scorso mese (in contrapposizione alla codifica CMY o CMYK della stampa) e riguarda principalmente i colori dei monitor e la lettura degli scanner. Normalmente la codifica RGB "contempla" 256 valori per componente, con i quali e' possibile codificare i canonici 16.7 milioni di colori (i famosi 24 bit/pixel). Sappiate, comunque, che 256 livelli per colore (8 bit) sono appena sufficienti per la visualizzazione decente di immagini fotografiche ben equilibrate ma mostrano evidentissimi limiti con le immagini ricche di dettagli nelle zone d'ombra e/o in nei casi in cui e' necessario agire pesantemente sull'equilibrio cromatico complessivo. Gia' con 30 bit/pixel (1024 livelli per componente primaria) le cose migliorano notevolmente, specialmente per quanto riguarda gli scanner che cominciano a fornire risultati interessanti anche con gli originali fotografici piu' difficili. Ma, numero di bit/pixel a parte, la codifica RGB (cosi' come la tricromia CMY e la quadricromia CMYK) ha un inconveniente ancor piu' preoccupante sotto il "profilo" cromatico. Non e' stato infatti mai stabilito, con rigore deterministico, quanto rosso e' il rosso (idem per gli altri due colori) ne' come questo vari in funzione del suo valore. Ad esempio, una tinta visualizzata su un monitor potrebbe essere codificata nel seguente modo:

Rosso 120
Verde 200
Blu 80

mentre, su un altro monitor, potrebbe essere codificata da:

Rosso 110
Verde 210
Blu 100

Lo stesso ragionamento vale per gli scanner e, in generale, per tutte le periferiche che utilizzano codifiche di questo tipo. Si usa dire, in questi casi, le la codifica cromatica e' "device dependent" ovvero dipende dal dispositivo. Quel determinato colore viene codificato in quei determinati valori da quel determinato dispositivo. Se utilizziamo un dispositivo diverso, lo stesso colore sara' codificato diversamente. Attenzione: non per l'imprecisione di funzionamento di questo o di quell'apparato, ma solo perche' la codifica RGB non e' assoluta. E' un po' quello che succede con i vestiti e le fantomatiche taglie "XL", "L", "M", "S" (e a ben vedere succede la stessa cosa anche con i valori numerici): non e' mai stato stabilito quanto "extra large" debba essere la taglia XL ne' quanto questa sia piu' grande della L. Ogni produttore fa a modo suo e non possiamo certo addebitargli una colpa (almeno fintantoche' non scopriamo che la sua XL e' piu' piccola della sua L!).

Codifichiamo il colore

Il problema principale, come avrete ormai intuito, e' riuscire a codificare l'informazione colore senza appoggiarci al comportamento specifico di un determinato dispositivo. Gia' ad inizio secolo (quando di dispositivi di questo tipo non se ne parlava nemmeno nei libri di Giulio Verne), Albert H. Mansell ideo' un modello di classificazione cromatico basato sugli attributi tinta, saturazione, luminosita' dei colori. La tinta... e' il colore: rosso, verde, giallo, blu, indaco, ecc. ecc.; la saturazione e' il suo grado di purezza (quanto piu' un colore e' puro, tanto piu' si differenzia dal grigio); la luminosita', banalmente, rappresenta la caratteristica di essere piu' o meno chiaro. Nella sua classificazione, Mansell utilizzo' cinque colori principali alla loro massima saturazione (rosso, giallo, verde, blu, viola) e le cinque tinte intermedie (rosso-giallo, giallo-verde, verde-blu, blu-viola e viola-rosso) disponendole su una circonferenza. Al centro della circonferenza, nella terza dimensione e' posizionato l'asse dei livelli di grigio, dal bianco al nero. Le tinte codificate con questo schema variano la saturazione dall'esterno della circonferenza verso l'interno (al centro la saturazione e' nulla e troviamo l'asse dei livelli di grigio) mentre sono piu' o meno luminose salendo o scendendo nella terza dimensione.
Un sistema attualmente molto utilizzato per codificare i colori e' detto HSB (hue, saturation, brightness) e si ispira fortemente all'atlante cromatico di Munsell. La ruota dei colori e' formata, semplicemente, dai tre colori primari della sintesi additiva (rosso, verde, blu) e dai tre colori primari della sintesi sottrattiva (ciano, magenta, giallo). Ad ogni colore e' contrapposto il suo colore complementare, sicche' la sequenza ciclica della tinta lungo la circonferenza, partendo dal blu e procedendo in senso orario, e' la seguente:
blu, ciano, verde, giallo, rosso, magenta.
Nel modello HSB, come avveniva nell'atlante di Munsell, sul perimetro esterno della circonferenza troviamo i colori alla loro massima saturazione. Man mano che ci spostiamo verso il centro la saturazione diminuisce e ci avviciniamo alle tinte acromatiche (i grigi). I colori possono essere codificati sottraendo la componente luminosita' e individuandoli nella ruota dei colori tramite i valori hue (tinta, posizione lungo la circonferenza) e saturazione (distanza dal centro). In realta' anche il modello HSB non e' assoluto ma dipende dal comportamento del dispositivo che visualizza o comunque tratta i colori codificati in questo modo.
L'unico modo per uscirne vivi e' quello di riferirci all'unico dispositivo universale degno di essere preso in considerazione: l'apparato visivo umano. Per codificare i colori, nel primo dopoguerra gli inglesi Wright e Guild compirono numerosi esperimenti colorimetrici su un vasto campione di osservatori. La macchina utilizzata negli esperimenti aveva un funzionamento piuttosto semplice: il colore da misurare e' illuminato da una sorgente di luce bianca simile all'illuminazione solare. L'osservatore, regolando tre fasci luminosi rosso, verde, blu, doveva trovare la tripletta di valori con i quali si otteneva il colore osservato. In seguito agli esperimenti furono notate due cose piuttosto importanti. La prima riguardava una sufficiente coerenza nei risultati si' da pensare che l'apparato visivo umano avesse un comportamento piuttosto in accordo tra individuo e individuo, la seconda (piu' importante) fece emergere l'impossibilita' di individuare determinati colori semplicemente regolando le tre componenti cromatiche additive. Per alcune tinte, infatti, era necessario aggiungere un colore primario al campione osservato prima di riuscire ad ottenere la tripletta di componenti che lo riproducesse perfettamente. Da questa osservazione, due le possibili cause: o i colori primari utilizzati e tra loro miscelati non erano in grado di generare tutte le tinte, oppure i nostri sensori cromatici dell'occhio avevano per certe lunghezze d'onda un andamento negativo.
Si dovette aspettare fino al 1931(data fatidica per la colorimetria) anno in cui la CIE (Commission Internationale de l'Eclairage) mise a punto una codifica cromatica che comprendesse tutti, ma proprio tutti!, i colori esistenti in natura e, in quanto tali, osservabili dall'occhio umano. Fu definito cosi' l'Osservatore Standard, l'Illuminante Standard ma soprattutto furono "inventati" tre colori primari immaginari ipersaturi (non osservabili), battezzati con notevole sforzo di fantasia X, Y, Z, con i quali era finalmente possibile generare tutti i colori possibili e immaginabili.

Stop!

Anche questo mese siamo costretti ad interrompere "nel bel mezzo" la nostra allegra chiacchierata cromatica. Vi diamo pero' appuntamento alla prossima puntata, dedicata principalmente al diagramma di cromaticita' CIE, al suo utilizzo in qualita' di "carta geografica del colore", alle sue implicazioni ed evoluzioni nel mondo della grafica e del trattamento cromatico. Intanto, pero', sappiate che tutto "il colorato" che vedete pubblicato in queste pagine ha ben poca affinita' col mondo reale in quanto stampato in quadricromia CMYK che, come noto, riesce a riprodurre solo un ristrettissimo sottoinsieme delle tinte reali. Dello stesso diagramma di cromaticita' CIE che vi mostreremo il mese prossimo, non abbiamo timore ad ammetterlo, potrete solo averne un'idea di massima in quanto esso stesso non e' assolutamente stampabili o riproducibile. Almeno con i mezzi attuali... in futuro, chissa'!


Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui