Profilazione monitor con Argyll e Spyder3

Ultimo aggiornamento: 04/12/2010
Scarica in formato PDF Scarica in formato PDF
Torna alla pagina principale degli articoli

Introduzione

Questo articolo ha due scopi: vuole essere una guida per chi volesse usare Argyll come software di profilazione del monitor (sulla base delle mie prime esperienze con questo programma) e fornire tutta una serie di nozioni generali sull'argomento, sempre valide indipendentemente dallo strumento o dal software utilizzato. L'articolo punto di partenza di tutto questo è stato "Ancora un monitor così... all'improvviso! Eizo S2231W", da PhotoActivity. Eccellente, e grazie infinite a Daniele Pennati.

Lo strumento utilizzato è stato lo Spyder3Pro di Datacolor. I risultati di queste prime prove sono stati buoni ma non eccellenti, e durante l'analisi dei risultati ho trovato alcuni spunti per un futuro miglioramento. Ho deciso di non aspettare il rifacimento della procedura di profilazione con i parametri perfetti ma di riportare proprio questo primo tentativo, perchè mi pare molto più didattico, sia per il lettore che per me stesso. Inoltre, ogni difficoltà incontrata mi ha portato ad approfondire certi aspetti, ed ho scoperto (solo parzialmente, per ora) che la gestione del colore è un mondo di dettagli e sottigliezze.

Prima che i guru mi mangino, ammetto che conosco abbastanza poco Argyll, e che nella stesura di questo articolo mi sono addentrato in parecchi meandri della colorimetria che sinceramente non padroneggio. Confido di non aver sparso inesattezze o errori nei contenuti di questo articolo, che spero di tenere aggiornato con nuove osservazione e esperienze. Nel caso, mandatemi una email e correggerò.

Come sempre, buona lettura.

Indice

La gestione del colore

Beh, se siete arrivati a quest'articolo, vuol dire che già avete una vaga idea di cosa sia la gestione del colore, e perchè si debba profilare un monitor. Se non è così, prima di andare oltre vi consiglio di leggervi "La gestione del colore".

Solo due parole riassuntive. Lo scopo della gestione del colore (color management, in inglese) è quella di mantenere inalterati (per quanto possibile) i colori lungo tutta la catena di processamento di un'immagine, dalla fotocamera al monitor alla stampante. Tale scopo ci pare molto allettante, visto che . Tutta questa aleatorietà dei colori è deleteria, perchè fa' vivere le nostre foto in un limbo fumoso, in cui escono (sotto forma di stampe o visualizzazioni) con risultati quasi casuali.

Vediamo meglio. Di seguito vi elenco i problemi tipici della gestione del colore.

Primo problema: ogni periferica (fotocamera, monitor, stampante) è limitata, e può riprodurre solo alcuni dei colori esistenti (l'insieme dei colori riproducibili da una periferica si chiama gamut).

Secondo problema: le periferiche di cui parliamo (fotocamera, monitor, stampante) hanno dei gamut molto diversi. Non solo più piccolo o più grandi, ma esistono ad esempio colori visualizzabili sul monitor ma non stampabili e viceversa colori che posso stampare ma non vedere sul monitor.

Terzo problema: le periferiche, anche della stessa marca e stesso modello (figuriamoci quelle totalmente diverse) possono avere caratteristiche e settaggi totalmente diversi fra loro, quindi con risultati finali molto variabili.

Quarto problema: ogni periferica è soggetta ad una variabilità nel tempo, sia per invecchiamento, sia per cambiamento della situazione ambientale, sia per cambiamento della calibrazione iniziale.

Un bel casino, ma è sotto gli occhi di tutti noi, che abbiamo sperimentato di persona almeno una volta situazioni del tipo "ho mandato a stampare ma le foto sono venute tutte rossastre" oppure "la stessa foto vista a casa è diversa che vista in ufficio". La gestione del colore cerca di mettere ordine in questo marasma ed evitare, per quanto possibile, errori e tentativi inutili. Ecco alcune considerazioni impostanti sull'argomento

La gestione del colore non è un "programma" particolare o un driver o qualcos'altro: è un insieme di azioni, una strategia che l'utente deve mettere in atto al fine di mettere ordine e coerenza nel mondo dei colori.

La gestione del colore "tocca" tanti elementi: i programmi, i drivers, il sistema operativo, le periferiche (fotocamera, scanner, monitor, stampante. Ma anche l'ambiente di lavoro e.. la testa dell'utente di tutto ciò che deve impegnarsi a d attuare tutto con precisione e meticolosità.

La gestione del colore non fa' miracoli: i colori che non riuscivo a stampare prima, non riuscirò a stamparli neanche dopo averla attivata. In questi casi però evidenzia il problema, in modo che l'utente possa decidere cosa fare.

La gestione del colore ha avuto una nascita travagliata, ma alla fine è prevalso il "modello ICC" dal nome dell'International Color Consortium. Tale modello si basa sui cosiddetti profili ICC, dei files che descrivono il comportamento di ogni periferica coinvolta. Grazie a queste preziose informazioni, nel nostro PC un programma apposito denominato CMM (Color Management Module) compie acrobazie matematiche per modificare i "numeri" allo scopo di lasciare inalterati i colori (che in un sistema digitale come un PC sono appunto indicati con numeri, tipo una terna RGB).

Per risolvere il problema dei colori cha appartengono ad un gamut di una periferica ma non al gamut di un'altra (vedi l'esempio sopra di monitor e stampante), la gestione del colore mette a disposizione i cosiddetti intenti di rendering (sono 4: percettivo, saturazione, colorimetrico relativo e colorimetrico assoluto) per lasciare all'utente la scelta di quale strategia utilizzare per controllare i colori fuori del gamut.

Scendiamo un po' più in dettaglio. Ogni periferica digitale riproduce o cattura colori che indica con numeri. Ad esempio, un monitor riproduce colori che normalmente sono descritti da tre numeri, uno per ogni canale RGB (rosso, verde, blu). La stampante (in realtà non è proprio così, però poco importa) invece riproduce colori che sono descritti da quattro numeri, uno per ogni primario CMYK (ciano, magenta, giallo e nero). Comunque sia, numeri. Alla fine, tutto su PC è numero (meglio, bits).

Il problema è un numero non identifica univocamente un colore. Se mando gli stessi tre numeri RGB in pasto a tre monitor diversi, ottengo colori diversi, perchè come detto sopra si tratta di oggetti diversi ognuno con le sue caratteristiche.

Stessi numeri, colori diversi (acc...)!

E' come se un tedesco volesse parlare con un francese, non si capiscono. La soluzione è che entrambi... sappiano parlare inglese. Infatti, il problema nasconde dentro di se la soluzione: dobbiamo trovare una specie di "vocabolario" (uno per ogni periferica) che traduca i numeri in colori, e i colori in numeri. Se ho il colore "verde acquamarina", dal "vocabolario" del monitor scopro che equivale ai numeri (57,180,162) ma nel "vocabolario" della stampante invece è indicato dai numeri (67,205,155).

Numeri diversi, stessi colori (molto meglio)!

Come avete capito, i "vocabolari" di cui sto parlando sono proprio i profili ICC. I numeri sono indicati come "device-dipendent", perchè ogni periferica reagisce in modo diverso agli stessi numeri. I colori ovviamente cono sono indicati con nomignoli tipo "verde acquamarina", ma con altri numeri speciali detti coordinate colorimetriche: a differenza di quelli precedenti, ogni serie di numeri corrisponde ad un colore ben definito e specifico. Tali coordinate servono proprio da tramite nelle trasformazioni dei colori da una periferica ad un'altra, sono la "lingua comune". Le coordinate colorimetriche vivono nel cosiddetto PCS (Profile Connection Space), che è proprio lo "spazio di connessione" tra i numeri di una periferica ed un'altra, sotto le indicazioni dei profili ICC.

Come già accennato, tutte le operazioni di conversione di coordinate vengono eseguite da un apposito programma chiamato CMM ("color management module", modulo di gestione del colore), invocato alla bisogna dai tutti programmi che gestiscono ilo colore e che ne richiedono i servigi. Si tratta di un programma nascosto, che fa un lavoro sporco dietro le quinte. I sistemi operativi di solito ne mettono a disposizione uno, ma può succedere che certe applicazioni ne installino un altro di maggiore gradimento.

In genere vengono utilizzati due PCS: XYZ oppure LAB. Senza essere troppo fiscali, XYZ (più precisamente CIEXYZ) è un modello matematico che descrive l'insieme dei colori percepibili dall'essere umano tipo. E' il "pollicione" che vedete riprodotto molte volte quando si parla di grafici bidimensionali dei profili. LAB (più precisamente CIELAB) invece è uno spazio molto simpatico, costruito su tre assi: L, a, b. La cosa carina è che L è l'asse della chiarezza (per noi profani, della luminosità), ed in pratica tutti i punti che giacciono sull'asse L sono dei grigi, dal bianco al nero. E' molto interessante avere uno spazio colore in cui ci sia un asse dedicato interamente ai grigi, vista l'importanza del bianco e nero nella fotografia e vista l'estrema sensibilità del nostro occhio a percepire anche lievissime dominanti nelle immagini monocromatiche.

Tirando le somme: se tutte le periferiche che utilizziamo sono descritte da un profilo ICC corretto (poi vedremo cosa vuol dire), il CMM riesce a far bene il suo lavoro, cioè "cambiare i numeri per non cambiare i colori".

La gestione del colore secondo ICC.

Esistono dei profili ICC che non descrivono periferiche reali ma i cosiddetti "spazi di lavoro" (working space, in inglese): sono dei contenitori di colori, descritti matematicamente, che servono per racchiudere i colori in insiemi standard e ben conosciuti da tutti. In questo modo, possono essere utilizzati per "trasportare" un'immagine digitale senza ambiguità sui colori. Esempi tipici sono sRGB, AdobeRGB, ProPhotoRGB. Quando fornisco ad un centro stampa un file JPEG con profilo incorporato sRGB, sono sicuro che ho fornito tutte le informazioni necessarie e comprensibili.

Come si ottiene un profilo ICC

La procedura completa per ottenere il profilo ICC di un monitor (ma in generale di qualsiasi periferica) consiste di quattro passi fondamentali:

Se volete saperne di più, nel solito blog di Mauro Boscarol trovate "Calibrare e profilare un monitor", "Fasi di creazione del profilo del monitor", "Requisiti per poter calibrare un monitor LCD".

1) La calibrazione

La calibrazione (in Argyll è compito del comando dispcal) consiste nel portare il monitor (e la scheda video, vedremo dopo) in uno stato iniziale ben definito, da cui partire per la caratterizzazione e profilazione.
Due sono i concetti base:

Per un monitor la calibrazione iniziale consiste nell'"inseguimento" di quattro parametri importanti:

Del gamma e della temperatura del bianco ne parliamo più estensivamente in due capitoli qui sotto.

La luminosità massima è un termine... che si spiega da se: quanto è luminoso il bianco massimo (che si porta dietro di conseguenza tutti i grigi). I valori sono espressi in "candele per metro quadro", in cd/m2. Sappiate che i monitors di fabbrica escono tutti abbastanza sparati, con luminosità attorno ai 300-400 cm/m2. I valori consigliati sono invece dai 100 ai 140 cd/m2, quindi durante il processo di calibrazione dovrete abbassare di molto la luminosità. Molti preferiscono valori bassi (sui 100 cd/m2) perchè ritengono che siano più simili alla visione di una stampa nelle normali condizioni di luce. Altro preferiscono valori più elevati (fino a 140 cd/m2) per non "castrare" (scusate il termine) troppo il monitor, che se impostato per luminosità troppo basse produce un bianco troppo... grigiastro. Inoltre, visto che i monitor (sopprattuto quelli di fascia bassa) sono progettati per abbronzarvi, limitare troppo la luminosità potrebbe portare ad effetti collaterali sgradevoli tipo scalini nei gradienti.

Il livello del nero è appunto il livello del nero massimo (R=0, G=0, B=0), solitamente espresso come "luminanza minima", sempre in cd/m2. Sarebbe molto bello che fosse 0, in realtà è qualcosa di più a causa dei difetti degli LCD reali. E' un parametro che probabilmente aveva senso impostare nei monitor CRT, ma per gli LCD si lascia il livello del nero "nativo".

Questi quattro parametri saranno dati in pasto al programma, verranno misurati in tempo reale dal colorimetro e mediante il menù OSD del nostro monitor cambieremo luminosità, contrasto e valori RGB per avvicinarsi il più possibile ai target (cioè ai valori desiderati). Dopo questa fase avverrà una pre-caratterizzazione (una lunga serie di misure con il colorimetro) che serviranno a creare la tabella di calibrazione da scrivere nella LUT della scheda video del vostro PC.

Che è 'sta LUT della scheda video? E' un'altro grado di libertà per "centrare" i quattro parametri di cui sopra. Oltre ai controlli del monitor, possiamo (anzi, dobbiamo) infatti modificare la LUT della scheda video per avvicinarsi al gamma impostato. La LUT è una "tabella" interna alla scheda video che ci permette di "distorcere" la curva naturale del monitor per avvicinarla alla curva gamma desiderata. Le tabelle in realtà sono tre, una per canale, anche se qualche portatile ne ha una, comune a tutti canali (il che costringe a calibrare per un bianco nativo, sennò compaiono fastidiose dominanti). Appena acceso il PC la LUT è resettata e quindi non fa' niente (è una retta a 45°), ma ci sarà un programma apposito che si occuperà di caricare i nuovi valori. Tale programma è installato in modo silente dai programmi commerciali (tipo quello fornito con lo Spyder3Pro), oppure lo dovrete configurare voi manualmente nel caso di Argyll. La LUT è indispensabile: in alcuni vecchi portatili non c'è, mi dispiace, non è possibile profilare il display con risultati decenti. Come si fa a capire se la LUT è presente e se ha le tre tabelle una per canale RGB? Si può utilizzare il programmino Calibration Tester, descritto più avanti.

Si noti che lo standard di qualsiasi dispositivo... che non ha una gestione del colore è di fatto lo spazio colore sRGB, il che vuol dire approssimativamente temperatura del bianco 6500°K e gamma 2.2. Windows e tutti i gli applicativi senza color management assumono che abbiate un monitor che si comporti in questo modo, e i produttori di monitor progettano i display in modo che siano vicini a sRGB, in modo da non creare strani effetti collaterali. Anche i produttori di monitor a gamut esteso come il mio HP LP2475w hanno sempre delle preimpostazioni per simulare un sRGB. Lo stesso dicasi per il web e i browser: tutto e sempre sRGB. Anche quasi tutti i lab di stampa vogliono solamente sRGB. Quindi, anche noi si vorrebbe essere conformi alla massa e ci uniformiamo, anche per evitare che le foto da noi ritoccate (su monitor profilati) siano viste da altri in modo troppo diverso (su monitor non profilati ma simil-sRGB).

Se volete saperne di più, il blog di Mauro Boscarol vi offre su un piatto d'argento "Quali sono i migliori parametri di calibrazione?".

2) La caratterizzazione

La caratterizzazione (in Argyll è compito del comando dispread) consiste nella misurazione effettiva delle prestazioni del monitor: il programma visualizza una serie di colori, e lo strumento li misura. In generale, più misurazioni vengono effettuate, più la successiva fase di profilazione avrà dati su cui lavorare per produrre un buon profilo. Si tratta di una fase noiosa, in cui bisogna solo... aspettare.

In Argyll in realtà le misurazioni sono due: una per ottenere i dati ci calibrazione da scrivere nella LUT della scheda video, e una per ottenere effettivamente i dati per la profilazione.

3) La profilazione

Anche la profilazione (in Argyll è compito del comando colprof) è una fase poco dinamica: un programma leggerà i dati di calibrazione e i dati di caratterizzazione e da questi magicamente produrrà un profilo ICC. La cosa importante è impostarlo correttamente, indicando le caratteristiche del profilo desiderate.

4) La verifica

Per verificare la bontà di un profilo abbiamo due strade:

Una non esclude l'altra, anzi, sono entrambe importanti. Pensate infatti di avere uno strumento mal tarato: gli errori delle misurazioni non possono essere scoperti... attraverso altre misurazioni con lo stesso strumento!

Approfondimento sui profili ICC

Come abbiamo visto sopra, i profili ICC rivestono un ruolo fondamentale nella gestione del colore. Essi vengono creati attraverso una procedura abbastanza complessa e delicata (questo articolo parla proprio di questo, applicato ad un monitor). Mi pare giusto fare alcune precisazioni.

Come detto sopra, i profili descrivono il comportamento di una periferica dal punto di vista del colore, e si ottengono mediante una procedura basata sulla misurazione mediante un apposito strumento. Da qui partiamo per trovare i limiti di questo approccio.

Per prima cosa, i profili descrivono la periferica misurata in quel momento, in quelle condizioni ambientali e soprattutto con quella calibrazione. Come disse qualcuno: "la mappa non è il territorio". Se cambia qualcosa rispetto al momento della profilazione (e state certi che succede), il profilo comincia a perdere di validità. Nel caso di un monitor, che ha un tempo di warm-up, che è soggetto ad invecchiamento e che è sensibile alle condizioni ambientali (luce ma anche temperatura), vuol dire che un profilo ICC ha una scadenza relativamente breve.

In secondo luogo, visto che partiamo da misurazioni, un profilo si basa su dati che hanno una precisione limitata poiché ottenuti da uno strumento che (poco o tanto) sbaglia. Inoltre, il monitor cambia comportamento anche durante la misura, se non aspettiamo un tempo adeguato dall'accensione affinché si stabilizzi. Quindi, il nostro profilo in realtà non è una fotografia "precisa" del comportamento della periferica, ma sempre e comunque "approssimata". Se gli errori introdotti da questa approssimazione sono contenuti entro certi limiti la gestione del colore sarà efficace, in caso contrario provocherà danni. Gli errori possono essere limitati in vari modi: utilizzando uno strumento di qualità, conoscendo il tempo di warm-up del monitor, utilizzando strumento e software con cognizione di causa, predisponendo delle condizioni ambientali adeguate.

C'è dell'altro, ma ne parliamo dopo aver visto cosa c'è dentro un profilo ICC. Oltre alle varie informazioni accessorie (versione ICC, produttore del profilo, ...), il profilo ICC può descrivere la periferica in due modi.

In entrambi i casi, il software di profilazione (colprof per Argyll) legge i dati di caratterizzazione (che sono relativamente pochi rispetto alle 16 milioni di combinazioni possibili, in questo articolo parliamo di 836 misure) e mediante un algoritmo di fitting produce un profilo (a matrice o a tabella) in modo che sia il più vicino possibile ai dati in ingresso. Detto in altri termini, cerca di minimizzare l'errore.

Per chiarire i concetti, utilizziamo un esempio molto semplice, in cui c'è un dispositivo immaginario il cui comportamento è descritto da un curva rappresentabile su un grafico bidimensionale. In pratica, una specie di monitor monocromatico, come quelli di decenni fa. Si tratta di un esempio distante dalla realtà di un profilo RGB di un monitor (che è un oggetto tridimensionale), ma ci serve solo per sottolineare alcuni concetti generali.

Questa è la curva (in rosso) del nostro dispositivo immaginario: per ogni valore RGB in ingresso ho un valore di luminosità L in uscita. Il caso reale di un monitor è più complicato perchè multidimensionale, però i concetti sono gli stessi.

Si noti che la curva è abbastanza irregolare, e non parte dall'origine, ma anche con valori RGB=0 produce una luminosità minima: rappresenta il livello del nero, che non è mai 0 cd/m2. Durante la fase di caratterizzazione, la curva reale del dispositivo viene misurata ("campionata" in termine tecnico), ottenendo una serie di misure (nel caso di Argyll, faremo poco più di 800 misure).

Durante la fase di caratterizzazione si somministra al dispositivo dei valori RGB e si misura la risposta L, mediante un apposito strumento. Si ottiene una serie di misure (punti blu), di numero limitato (al massimo un migliaio circa).

Da queste misure il programma di profilazione (il comando colprof di Argyll) può generare il profilo ICC del dispositivo. Come detto sopra, abbiamo due possibilità: un profilo a matrice o una a tabella. Il profilo a matrice descrive una curva matematica poco complicata, che poco si presta a modellizzare tutti i comportamenti strani del dispositivo. Inoltre, la curva dall'origine, mentre il dispositivo parte da una luminosità minima. Da questo profilo ci aspettiamo errori non trascurabili.

Il profilo a matrice è molto semplice: descrive una curva (in nero), e si hanno ben poche possibilità di descrivere esaustivamente la curva reale del dispositivo.

Il profilo a tabella può produrre risultati migliori: da tutte le misure si crea una tabella di conversione di poche righe, che corrispondono ai punti verdi nel grafico qui sotto. Il CMM si occupa mediante l'interpolazione di ottenere tutti gli altri possibili punti: semplificando, dal punto di vista grafico crea una curva morbida che passa per i punti verdi i punti nella tabella del profilo).

Il profilo a tabella contiene una serie di punti (indicati in verde), in numero molto limitato rispetto alle misure di caratterizzazione (e rispetto ai milioni di punti necessari per descrivere completamente il dispositivo).

Il profilo a tabella consente errori minori rispetto a quello a matrice, e risolve il problema del livello del nero diverso da 0. Qui sotto potete vedere il confronto di entrambi con la curva reale del dispositivo (in rosso).

Profilo a matrice (in nero)

Profilo a tabella (in verde)

L'algoritmo che dalle misure di caratterizzazione produce i profili è uno degli elementi più importanti di un software di profilazione, perchè dalla sua "intelligenza" e dalla possibilità per l'utente di parametrizzarlo secondo le sue esigenze, si ottiene un profilo più o meno buono. E' anche qui che si vede la differenza tra un programma mediocre e uno di fascia alta.

Anche il CMM produce degli "effetti" sulla qualità della gestione del colore: esegue moltissime operazioni matematiche, ognuna con una sua "precisione" ben definita (purtroppo è così quando si parla di algoritmi che girano nei PC), e può mettere del suo in certe situazioni, quando è richiesta una certa "furbizia". Esistono quindi CMM più o meno prestanti: credo che se Photoshop si porta dietro il su CMM denominato ACE, vuol dire che non si fida troppo di quello di Windows...

Concludendo, ognuna delle due tipologie di profili ha i suoi vantaggi ma anche le sue problematiche, che vanno ad aggiungersi a quanto detto prima. Inoltre, i programmi di profilazione come colprof di Argyll pretendono di decidere svariati parametri, che influenzano la qualità finale del profilo ICC. Lo so, è un mondo difficile. Fare un buon profilo costa fatica, conoscenza, esperienza, tentativi falliti, costanza e precisione.

Se volete saperne di più, il blog di Mauro Boscarol vi propone "Monitor: profilo di display v2", "Profilo a matrice: è una formula", "Profilo a tabella: è un elenco".

Il gamma

Il gamma è un numero che ha a che fare con una curva. Il monitor infatti è un dispositivo che viene "pilotato" mediante valori RGB provenienti dalla scheda video, che magicamente diventano "luminosità" e arrivano al nostro occhio: la curva di cui si parla (in inglese viene chiamata "tone reproduction curve", TRC) è la rappresentazione grafica della relazione tra valori RGB in ingresso e "luminosità" in uscita (per inciso: userò il termine assolutamente improprio di luminosità per una maggiore comprensione per noi non addetti ai lavori, ma sappiate che dovremmo parlare di "chiarezza, si veda "Luminanza, brillanza, chiarezza"). Gli estremi di questa curva sono il nero RGB=(0,0,0) e il bianco RGB=(255,255,255), ed in mezzo ci sono tutti i toni intermedi. Tale curva potrebbe essere molto complicata, ma solitamente si fa in modo che abbia un andamento simile ad una curva matematicamente molto semplice, di tipo elevamento a potenza, che è possibile descrivere con un semplice numeretto: il gamma.

La relazione tra i numeri RGB in ingresso al monitor e la "luminosità" prodotta e percepita dal nostro occhio può essere descritta da una relazione matematica o in modo più "user-frendly" con una curva. Qui sopra, in rosso un esempio (estremizzato) di curva nativa reale, in nero la sua approssimazione con una curva gamma.

Come notate, non è detto che una curva gamma sia la rappresentazione perfetta della curva reale del monitor, ma qui entra in gioco la calibrazione: il suo scopo è quello di lavorare sui controlli del monitor ma soprattutto sulla tabella LUT della scheda video per compensare queste differenze e ottenere una curva globale scheda video-monitor aderente alla curva gamma prescelta.

Un gamma pari a 1 indica un curva che degenera in una retta a 45°. Una curva con gamma 4 è più panciuta di una curva con gamma 2.2. Al di fuori della gestione del colore (si legga più avanti), un gamma maggiore corrisponde ad un contrasto rafforzato.

In blu la curva con gamma pari a 1, in nero la curva con gamma 2.2 e in verde una curva con gamma 4.

La cosa simpatica del gamma... è che in realtà non dovrebbe avere nessun effetto sulla gestione del colore. Infatti, qualsiasi sia la curva prescelta, il motore CMM ne verrà a conoscenza mediante il profilo ICC del monitor e provvederà subito a compensarla con una curva opposta, in modo la relazione finale tra valori RGB e "luminosità" percepita dall'occhio sia quella corretta, cioè quella in cui ad ogni "raddoppio" dei numeri RGB di un grigio corrisponda un altro grigio che è "doppiamente" più chiaro (il tutto espresso nel modo meno preciso e corretto, lo ammetto). Tale relazione lineare è quella che ci fa' vedere i gradienti in modo corretto, senza compressioni sulle ombre e sulle alte luci.

Strano, mi son detto la prima volta che ho sentito questa concetto, in giro non si parla d'altro che di gamma 2.2 oppure 1.8 oppure L-star, di vantaggi e svantaggi di una e dell'altra soluzione. Se non è importante, perchè ci impegniamo tanto nella scelta di questo numeretto? Ci sono due motivi apparentemente collaterali ma importanti.

La curva nativa del monitor è determinata in gran parte da chi lo ha progettato: poiché nessuno fa le cose a caso, in generale tale curva è in modo approssimato qualcosa che assomiglia alla curva di sRGB (il quale assomiglia ad una curva con un gamma 2.2), che è considerato lo standard implicito per tutto il mondo del "non gestisco il colore" (da Word al DVD sotto al televisore al cellulare). Il tutto deriva da ragioni storiche: i monitor a tubo catodico (CRT) avevano per loro natura fisica una curva di questo tipo. Gli LCD invece non avrebbero niente in comune con questa legge matematica, ma i costruttori di questi dispositivi in un mercato allora dominato dai CRT, e hanno dovuto implementare un'elettronica interna che simulasse la curva nativa di questi. Quindi, gamma 2.2 mi pare la scelta ovvia da effettuare.

Altre possibilità da esplorare? Per il comando dispcal di Argyll potete provare con il gamma di sRGB (in realtà leggermente diversa dal gamma 2.2) e con L-star (indicato anche con "L*"), la curva dell'asse L dello spazio LAB. Si ricorda che tale asse è molto simpatico: accoglie tutti i grigi, dal nero al bianco, ed è percettivamente uniforme, cioè un grigio L=20 è "distante" da un grigio L=30 come un L=30 è distante da un L=40. Sembrerebbe scontato che questo succeda, però LAB è uno dei pochissimi modelli colore in cui questo avviene. Perchè uno dovrebbe scegliere L-star? Primo perchè ha un bel monitor con una LUT interna che gli permette di impostare il gamma che vuole senza problemi, e secondo perchè L-star dovrebbe permettere di vedere meglio i dettagli nelle ombre più scure, perchè proprio lì concentra il massimo della "precisione". Infatti, poiché la scheda video continua a lavorare comunque a 8bit/canale, scegliere L-star consentirebbe di "ridistribuire" i bit, avvantaggiando le ombre a discapito di un leggero peggioramento delle altre tonalità (mezzitoni e luci). Inoltre, per beneficiare al massimo delle potenzialità della calibrazione L-star sarebbe opportuno utilizzare uno spazio di lavoro che si comporti allo stesso modo: oltre a LAB, esistono altri nuovi spazi colore RGB che sono percettivamente uniformi lungo l'asse dei grigi (e quindi si comportano come L*): ECI-RGB V2 (dovrebbe essere uguale a LStar-RGB), ProPhoto-LStar, ProStarRGB (L*). In questo modo, nelle conversioni di colore non si ha perdita di preziose frazioni di bit, cosa che invece avrei se dovessi continuamente convertire da gamma 2.2 a L* e viceversa. Se tutta la catena lavorasse a 16bit/canale, tutto questo non avrebbe molta rilevanza. Si veda questo thread sul forum di PhotoActivity.

Aggiornamento: ho provato la calibrazione L* al momento del test di dispcalGUI: le curve in LUT ora sono molto accentuate, ma i gradienti non sono male. Sicuramente le ombre si aprono, ora riesco a distinguere il grigio "1" dal nero "0" (vedi le immagini di test nella verifica visiva). A perdere (eh, la coperta è sempre corta, non ci sono miracoli) sono le altissime luci, dove ora non riesco a distinguere il "253" dal bianco "255". Poco male. Mi riservo di testare ancora il profilo, per vedere come si comporta conj un pò di lavoro sulle spalle.

Boscarol consiglia se possibile di utilizzare L-star, se è nelle opzioni del programma. Se dovete utilizzare la LUT della scheda video (come il sottoscritto), probabilmente L-star è troppo distante da gamma 2.2, però non ho fatto prove in merito. In Internet ho trovato gente con il mio stesso monitor (senza LUT, quindi) che usa tranquillamente due calibrazioni: L-star per il ritocco, e gamma 2.2 per valutare le foto per la stampa. Mah, da provare.

Qui sotto alcuni links sull'argomento.

La temperatura del bianco

La temperatura del bianco è... il "colore" del bianco massimo (R=255, G=255, B=255) del monitor, ed è espressa in gradi Kelvin. La temperatura del bianco viene decisa prima della calibrazione ed è sempre "effettiva", cioè valida anche per le applicazioni al di fuori della gestione del colore.

Il concetto è lo stesso del bilanciamento del bianco ("white balance" in inglese, WB) delle fotocamere digitali: più il numero è elevato, più il bianco è "freddo". Anche qui c'è una strada maestra, quella dei 6500°K, seguita praticamente da tutti. Tra l'altro, 6500°K è anche la temperatura consigliata dagli standards europei. Un'altra possibilità è 5000°K, che però produce un bianco troppo caldo per i miei gusti. Per ultimo, se avete un monitor LCD di scarsissima qualità tipo un display di un portatile, potreste scegliere la temperatura del bianco "nativa", cioè quella propria del monitor: questa potrebbe essere poco attraente (di solito è troppo alta e quindi troppo fredda, tipo 9000°K), però evita una calibrazione in LUT troppo estrema con fenomeni di irregolarità nei gradienti, ed è anche l'unica cosa da fare se la LUT è unica e non separata per ogni canale.

Da quanto leggo in giro, per chi stampa la soluzione ottimale è ritoccare con un monitor calibrato a 6500°K e osservare le foto con lampade con temperatura del bianco di 5000°K.

Ultima nota importante. Se partite dal monitor con una temperatura 9000°K e passate velocemente durante la calibrazione ad una temperatura di 6500°K, avrete una sensazione iniziale di "bianco troppo caldo": prima di valutare aspettate che il vostro occhio si adatti al nuovo bianco!

Differenze deltaE (dE)

In tutti gli articoli sulla profilazione dei monitor (e non solo) e in tutti i programmi troverete citato in abbondanza il deltaE, o dE. Si tratta di un unità di misura per indicare la distanza tra due colori, ed in genere si utilizza per indicare la distanza tra il colore atteso e quello misurato. Teoricamente, 1dE è il minimo scarto osservabile da un essere umano. Purtroppo esisto molte "versioni" di dE, indicate con gli anni in cui sono stati definiti: di solito 1976 (dE76), 1994 (dE94), 2000 (dE2000). L'ultima definizione dE2000 dovrebbe essere la più attendibile nei confronti della reale percezione umana.

Un osservatore medio non riesce a discriminare facilmente colori con distanze inferiori a 3dE, valori inferiori per i toni del verde per il quale siamo più sensibili. Si legge in giro che un buon profilo è caratterizzato da errori medi inferiori a 3dB e errori massimi inferiori a 6dB.

Supponiamo di rappresentare un profilo come una curva: niente di più sbagliato (un profilo è qualcosa di molto più complicato), ma ci serve per capire i concetti. Uno dei parametri più semplici per capire la qualità di un profilo ICC è verificare l'errore (massimo e medio). Si misura la distanza tra i punti di misura della caratterizzazione e la curva del profilo (a matrice o a tabella). Nel corso di quest'articolo, useremo una nuova serie di misure, per ottenere una verifica strumentale ancora migliore: è scontato che l'algoritmo cerchi dai far passare la curva di un profilo a tabella il più vicino ai punti di caratterizzazione, meno scontato che produca buoni risultati anche con una nuova serie di misure in posizioni diverse. Solitamente vengono riportati sia l'errore massimo sia l'errore medio (e/o RMS, una media più "intelligente").

Ogni profilo è contraddistinto da una serie di errori, che in pratica corrispondono a quanto distante è la curva del profilo (in questo caso quella ottenuta da un profilo a tabella nel capitolo precedente, in verde) dai punti di misura del dispositivo reale (in blu), che sono i nostri unici riferimenti nei confronti del dispositivo reale.

Quando confrontate gli errori, attenzione che si tratti dello stesso standard. Inoltre, i numeri sono da prendere con le pinze, usando il buon senso: inutile disquisire su un errore di 0.85432152dE rispetto a uno di 0.81386227dE, quando il nostro strumento di misura ha una precisione molto inferiore... Ci interessa l'informazione contenuta nel numero, non il valore assoluto.

Colorimetri e spettrofotometri

Come forse vi sarete già accorti, esistono due categorie di strumenti per la profilazione dei monitor: i colorimetri e gli spettrofotometri. Al di là dai pregi e difetti di ogni strumento, sappiate che profilare il monitor con il più economico è millemila volte meglio che profilare "a occhio": quest'ultimo è un capolavoro di ingegneria naturale, ma non va assolutamente bene come strumento di misura...

Links sull'argomento:

I colorimetri

I colorimetri sono gli strumenti più economici e diffusi. Esempi di questa categoria sono gli Spyder3 di Datacolor e l'EyeOne Display2 di X-Rite. Un colorimetro misura la luce emessa dal monitor attraverso 3 sensori, uno per ogni canale RGB. Ogni sensore ha quindi un apposito filtro per "selezionare" la banda di colore da misurare; i filtri sono dimensionati in base alle curve standardizzate da CIE per l'osservatore standard, per meglio approssimare la visione umana media.

Le "color matching functions" dell'osservatore standard secondo CIE 1931.

I colorimetri, essendo i più economici, hanno solitamente le peggiori performance: hanno precisioni di lettura basse, i filtri possono degradare nel tempo, hanno ampie tolleranze di produzione. Purtroppo non è immediato capire se lo strumento non funziona bene, se non eseguendo una verifica visiva dopo la profilazione o confrontadone le misure con uno spettrofotometro, solitamente più affidabile. Gli strumenti più economici sono sensibili alla temperatura (e quindi se il vostro processo di calibrazione/profilazione dura ore, questo crea errori nelle misure) e non è possibile ricalibrarli in fabbrica, nel caso comincino a dare misure errate (amche qui, ce ne si accorge solo confrontantolo con un altro strumento). Hanno due vantaggi sugli spettrofotometri: sono più veloci nella lettura e riescono a leggere bene anche i livelli più vicini al nero.

Gli spettrofotometri

Gli spettrofotometri sono solitamente molto costosi (si parte da 500Euro circa), ma poiché permettono di profilare anche le stampanti, qualche amatore potrebbe pensare di acquistarli. Esempi di questa categoria sono l'EyeOnePro e il ColorMunki di Pantone/X-Rite. Gli spettrofotometri non restituiscono una misura unica, ma "scansionano" lo spettro della luce ottenendo un'indicazione molto più precisa: l'osservatore standard non è più implementato attraverso dei filtri ma nel programma di gestione dello strumento. Nei colorimetri questo passaggio è realizzato direttamente con dei filtri ottici calibrati, che però sono difficili da realizzare e soggetti a degrado. Gli spettrofotometri sono caratterizzati da una "banda", cioè la fetta di lunghezza d'onda che misurano durante la scansione: minore è questa banda, migliore è la precisione di lettura dello spettro, però maggiore è il tempo di lettura. Al contrario dei colorimetri, gli spettrofotometri possono essere utilizzati anche per profilare le stampanti, poiché sono capaci di misurare le tacche colorate stampate sui fogli di carta grazie ad una fonte luminosa interna. Come già detto sopra, gli spettrofotometri sono lenti e hanno problemi di lettura nei livelli vicini al nero.

I colorimetri e i monitor wide-gamut

In Internet ho trovato varie discussioni sulla qualità di questo strumento: molti sono passati a strumenti più prestanti e costosi, insoddisfatti dei risultati (ad esempio, dominanti visibili dopo la profilazione). Cercando in giro, sembra che i primi esemplari non fossero molto performanti, e che il controllo qualità non sia eccellente. Qualcuno vocifera che non siano neanche tarati di fabbrica. In uno scambio di email pubblicato da un acquirente di un costoso monitor NEC professionale, l'assistenza della casa dichiarava lo Spyder3 uno dei pochi colorimetri compatibili, a meno di procurarsi uno strumento recente (e questo confermerebbe quanto detto sopra). Ovviamente in rete si trovano anche molti utenti soddisfatti delle profilazioni ottenute con questo colorimetro, ci mancherebbe.

In secondo luogo, sembra che i colorimetri non siano gli strumenti migliori per calibrare un monitor a gamut esteso (wide-gamut), come il mio HP LP2475w: la scelta migliore sembra essere uno spettrofotometro, oppure un colorimetro di fascia alta, meglio ancora se accoppiato dal produttore al monitor che abbiamo acquistato. In particolare, quelli commercializzati qualche anno fa' (tipo lo Spyder2) non sono assolutamente adatti, perchè non leggono con correttezza i primari RGB dei monitor wide-gamut moderni. Infatti i colorimetri, causa del funzionamento basato sulla misura della luce prodotta dal monitor, devono fare delle assunzioni sulla tipologia di retroilluminazione, il che richiede "matrici di correzione" da realizzare a bordo dello strumento o del software proprietario di profilazione. Se ne legge anche nella pagina iniziale di dispcalGUI, l'interfaccia grafica si Argyll (ne parliamo in questo capitolo). Se così fosse, tutte le misure oggetto di quest'articolo sarebbero fallate, e i profili ICC inutilizzabili.

Le mie considerazioni. Se anche così fosse, quest'articolo è comunque utile, perchè tutti i concetti sono ancora validi, e indipendenti dal tipo di strumento o dalla sua qualità. Inoltre, lo Spyder3 è stato sviluppato da Datacolor proprio considerando i nuovi monitor wide-gamut, che creavano problemi per il precedente Spyder2: quando l'ho acquistato ho ovviamente valutato anche questo aspetto. Lo Spyder3 è supportato anche da programmi di profilazione di terze parti come il prestigioso basICCcolor, e quindi qualcosa vorrà dire. Per ultimo, nella verifica visiva non ho trovato problemi evidenti. Sarebbe ottimo verificare il mio Spyder3 confrontandolo sullo stesso monitor e con lo stesso software (magari Argyll) con uno strumento più performante, magari uno spettrofotometro, però purtroppo non conosco nessuno che ne abbia uno.

Ultim'ora: la discussione su questo tema nella mailing list di Argyll ha prodotto un nuovo documento: "Monitor Wide Gamut e Colorimetri", disponibile sul sito di Argyll e nella release 1.3.0. E' stato creato un nuovo comando che dovrebbe permettere la creazione di matrici di calibrazione del colorimetro, se uno ha uno spettrofotometro in fondo al cassetto.

Profilare il monitor è obbligatorio

Profilare il monitor con uno strumento è praticamente obbligatorio, per chi abbia la minima ambizione di vedere e ritoccare le proprie foto. Punto

Non esistono vie di mezzo. Probabilmente non profilerete mai la fotocamera, a meno che non abbiate pressanti esigenze di fedeltà cromatica da rispettare. In fondo, con qualche fotoritocco arrivate velocemente al contrasto, saturazione e bilanciamento cromatico desiderato, secondo la vostra interpretazione. Probabilmente non profilerete mai una stampante, a meno di non aver investito migliaia di Euro in stampante e spettrofotometro. Ma sicuramente dovrete profilare il monitor, che è il "senso della vista" nei confronti dei byte dei vostri file JPEG. Impossibile giudicare o peggio ritoccare una foto con un paio di occhiali con lenti arancioni, ne converrete. Un monitor non profilato è la causa al 95% di tutti le lamentele del tipo "ho stampato le foto, sono tutte scure" o "il lab mi ha rovinato le foto, sono tutte verdine".

Io steso per molto tempo ho utilizzato sul mio vecchio CRT programmini tipo Adobe Gamma per calibrare alla carlona il gamma del monitor, ma quando ho dovuto affrontare la stampa delle foto di matrimonio di un paio di amici, in cui si parlava di qualche centinaio di Euro, ho sentito la forte spinta a comprarmi uno strumento per garantirmi il risultato (o almeno fare in modo che se ci fossero stati dei problemi in fase di stampa, non era colpa mia).

Devo dire la verità che una volta profilato il mio CRT non sembrava molto cambiato. Anzi, non vedevo quasi nessuna differenza :-) Ma non era così: la prima parte di calibrazione iniziale aveva impostato correttamente la luminosità massima e la temperatura del bianco, e a causa dell'adattamento cromatico del mio occhio non me ne ero accorto. Inoltre, ovviamente, i colori che vedevo dopo la profilazione in Photoshop ora erano sicuramente più corretti, visto il programma dello Spyder3Pro mi aveva fatto modificare i valori dei canali RGB.

Giusto per fare un esempio che vale più di mille parole (già riportato nell'articolo "La gestione del colore"), prendo spunto da una situazione di gestione del colore errata (o del tutto mancante!) trovato nell'ottimo "Color Management", dal sito di Datacolor. Si tratta di un fotoritocco sbagliato a causa di un monitor non profilato.

Gli ingredienti

Come per ogni... ricetta che si rispetti, ecco gli ingredienti.

1) HP LP2475w

Questo è il mio monitor, ormai da un anno. E' relativamente costoso (sui 600Euro), ma corrisponde ai requisiti minimi che mi ero posto per un monitor per ritocco fotografico:

Come ogni mia spesa "fotografica", la valutazione di cosa comprare è stata lunga e sofferta, con svariate ore dedicate alla lettura di recensioni e confronti. L'HP LP2475w è risultato vincitore, con ottime caratteristiche sulla carta e con un buon rapporto qualità-prezzo. I monitor LCD con matrice IPS hanno un'eccellente angolo di visione, indispensabile avere la necessaria fedeltà cromatica anche quando non guardiamo il monitor sulla perpendicolare perfetta: giusto per confronto i monitor dei portatili (che hanno invece la tecnologia TN) sono veramente scarsi, già guardando un angolo i colori e luminosità cambiano. I monitor con superficie lucida sembrano molto attraenti, ma in realtà per uso fotografico sono da evitare come la peste, visto le riflessioni dei vostri vestiti e della stanza dietro di voi inficiano pesantemente l'immagine.

HP LP2475w.

Pro:

Contro:

Recensioni:

Conclusione: ottimo monitor, assolutamente soddisfatto. Forse oggi ci sono altre proposte ugualmente interessanti, però i contro segnalati sopra non scalfiscono le ottime prestazioni di questo monitor.

2) Datacolor Spyder3Pro

Lo Spyder3Pro di Datacolor è il colorimetro di prestazioni decenti (almeno per un fotografo amatoriale) più economico. Sulla carta le caratteristiche dello strumento sono interessanti: la nuova tecnologia del sensore rispetto al precedente Spyder2 dovrebbe essere compatibile con i display wide-gamut (come il mio LW2475w). La versione Pro era la più economica, mi pare oggi esista anche la Express; la versione Elite è la più costosa. Dalle mie informazioni, sembra che lo strumento sia sempre lo stesso e che cambi il software di gestione, che nella versione Elite permette un maggiore controllo di tutti i parametri. Dal punto di vista di questo articolo, tale software non viene utilizzato, e ci teniamo solo lo strumento!

Il colorimetro Datacolor Spyder3

Se volete saperne di più sui colorimetri attualmente in commercio, nel solito blog di Mauro Boscarol trovate "Colorimetri per la calibrazione e profilazione del monitor".

3) Il mio PC

Ho un PC abbastanza carrozzato (almeno per gli standard di un anno fa): processore Intel Q9550 (2.83MHz, quadcore) e 8GB di RAM. Il sistema operativo è Vista a 64bit, per poter accedere a tutta la RAM (la versione a 32bit permette di arrivare a soli 3GB). La scheda grafica è di fascia bassa, una NVidia 9600 GT, anche abbastanza rumorosa.

Purtroppo, esigenze di spazio e figli presenti e appena arrivati mi impongono di riservare alla mia passione... ben 1 metro quadro, in un angolo della mia camera da letto matrimoniale, al posto del comodino. Almeno l'ambiente è neutro...

La mia postazione di lavoro, in un angolo della mia camera matrimoniale :-((

Argyll

Argyll è un insieme di programmi a linea di comando per la calibrazione, caratterizzazione e profilazione di monitor, stampanti e scanner. E' un software gratuito, sviluppato da Graeme W. Gill. L'utilizzo è piuttosto scomodo per chi è abituato a lavorare in ambienti grafici, ma le prestazioni sono eccellenti, in linea con i programmi commerciali più blasonati.

Quali sono i vantaggi di Argyll?

Quali sono gli svantaggi di Argyll?

Tenete d'occhio pagina ufficiale di Argyll: l'autore pubblica spesso nuove revisioni del pacchetto, con migliorie e correzioni. La versione oggetto di questo articolo è la 1.2.1, uscita il 9 agosto 2010. Se sapete l'inglese, potete consultare la mailing list, se vi iscrivete potete anche scrivere messaggi. Gente che ne mastica si trova anche nel forum di PhotoActivity, se volte potete chiedere informazioni li, in italiano.

Ecco i links più interessanti del sito di Argyll (purtroppo tutti in inglese):

I programmi di Argyll che utilizzeremo saranno:

Come già detto, di ognuno dei comandi esiste una guida in formato HTML sia sul sito di Argyll: sia nella cartella di installazione (se avete seguito le mie indicazioni di installazione come al capitolo successivo, la guida parte dal link C:\argyll\doc\ArgyllDoc.html).

Installazione di Argyll

L'installazione è banale: dalla pagina ufficiale di Argyll si scarica il file .zip per Windows e lo si scompatta in una cartella del proprio hard-disk. Vi consiglio di estrarre in "C:\argyll", sarà tutto più comodo in seguito. Vi consiglio inoltre di creare una cartella "data" che conterrà tutti i files intermedi della profilazione. Vi dovreste trovare in una situazione simile alla figura qui sotto.

Dopo la scompattazione del file zip di installazione di Argyll in "C:\argyll", ecco la situazione in cui vi dovreste trovare. Notate la certalla "data", creata per contenere i vari files necessari nel processo di profilazione. Notate anche a destra che ho mantenuto la vecchia versione 1.1.1 (non si sa mai...) e ho rinominato la cartella in "C:\argyll_1.1.1".

Nella sottocartella "bin" ci sono tutti i programmi di Argyll (sono quasi 50). Per fare in modo che tali programmi siano eseguibili da qualsiasi percorso (ed in particolare dalla cartella "C:\argyll\data" su cui lavoreremo), bisogna aggiungere i percorso "C:\argyll\bin" al path di sistema. Per Windows Vista, si vada in Pannello di Controllo - Sistema - Impostazioni di sistema avanzate - pulsante Variabili d'ambiente.. e nella finestra successiva nella parte alta selezionare la riga PATH e poi cliccare su Modifica... Nella finestra successiva, sulla riga di testo "Valore variabile", portarsi alla fine di tutto il testo e aggiungere ";C:\argyll\bin". Attenzione a non toccare nient'altro...

Nella sottocartella "doc" c'è la guida di Argyll, che comprende tutte informazioni sull'installazione, sui drivers dei vari strumenti, sulle opzioni dei vari comandi. La guida è in formato HTML, ed la pagina iniziale è C:\argyll\doc\ArgyllDoc.html. La stessa guida è disponibile alla pagina ufficiale di Argyll a questo link.

Aggiornamento del path di sistema.

Fino alla versione 1.2.0 installare i drivers di Argyll per lo Spyder3 sotto Vista 64bit era un casino. Fortunatamente, con la versione 1.2.1 non è più un problema, a patto di disinstallare i drivers originali di Datacolor eliminandoli dal disco sennò Windows li ritrova e li ri-installa (a meno che non abbiate mai installato il software originale Datacolor fornito con lo strumento). Se avevate utilizzato i drivers Argyll prima della 1.2.1, disinstallateli e cancellateli dal disco. Nella guida di Argyll andate nel capitolo "Installing", cliccate su "installing the binary software", poi su "Microsoft Windows" e leggetevi per bene il documento (purtroppo in inglese).

Alla fine del caricamento dei driver Argyll per lo Spyder3, si può verificare la corretta installazione in Gestione dispositivi (in Windows Vista si raggiunge con Pannello di Controllo - Sistema - Impostazioni di sistema avanzate - Hardware - Gestione dispositivi):

Se tutto è andato bene, in Gestione Dispositivi dovrebbe comparire il driver di Argyll per lo Spyder3.

Prima di cominciare

Avvio della shell dei comandi

I programmi verranno lanciati da una shell (in Vista si chiama "prompt di comandi"): per avviarla velocemente basta cliccare sul pulsante Start, scrivere "cmd" nella casella di testo di ricerca e premere Invio. Si aprirà una finestra vecchio stile Dos (per chi l'ha visto) in cui non esiste il mouse ma bisogna scrivere tutto a manina: sembra un vecchiume, ma questo concetto è estremamente potente ed utilizzato (chiedete a chi usa Linux).

Il Prompt dei comandi, per eseguire i vari programmi di Argyll. Sembra scomoda e obsoleta, in realtà ha moltissimi vantaggi.

Conviene portarsi nella cartella di lavoro, con tre comandi: prima "cd \" per portarsi nella root del disco, poi "cd argyll" e "cd data" per portarsi in "c:\argyll\data". Ogni comando viene eseguito dopo aver battuto Invio. Difficile?

Portiamoci nella cartella di lavoro "c:\argyll\data".

Consiglio importante: vi conviene sempre tenere traccia delle vostre prove, visto che il processo di profilazione potrebbe portare ad errori e nuovi tentativi. La mia memoria non funziona neanche per il giorno prima, figurarsi il mese dopo per la prossima profilazione. Io utilizzo un normale file di testo che mi salvo a parte, in cui riporto tutti i log dei comandi, così come appaiono nella shell, preceduti da data e note varie. Per copiare del testo dalla shell, si prema il pulsante destro del mouse sopra di essa e si scelga "Seleziona", poi si seleziona il testo e si batte Invio sulla tastiera. Infine, basta aprire il file di testo e incollare.

Visto che a me piace lavorare in un mondo ordinato, spostate la finestra della shell a destra e allungatela il più possibile. Al centro lasciate spazio per il quadrato di misurazione, a sinistra mettete il menù OSD (quello che vi serve per modificare luminosità, contrasto, ...) del monitor quando vi servirà. In alcuni monitor il menù OSD non si può muovere dal centro: peccato, vuol dire che sposteremo il quadrato di misurazione a sinistra.

Spazio di lavoro: a sinistra il menù OSD (quando servirà), al centro il quadrato di misurazione, a destra il prompt dei comandi.

Potete verificare con il comando dispwin (senza nessun parametro) se Argyll riesce ad accedere alla LUT della scheda video, il che è un prerequisito fondamentale. Sono ormai rarissimi i casi in cui non sia possibile, forse su qualche netbook o simili. In caso non ci siano problemi, vengono visualizzati in sequenza dei quadrati colorati.

C:\argyll\data>dispwin
Setting White
Setting 75% Grey
Setting 50% Grey
Setting 25% Grey
Setting 12.5% Grey
Setting Black
Setting Red
Setting Green
Setting Blue
Setting Cyan
Setting Magenta
Setting Yellow
Darkening screen
Lightening screen
Restoring screen
Normal beep
Good beep
Bad double beep

Primo passo: la calibrazione

Beh, è ora di cominciare. La calibrazione del monitor avviene utilizzando il comando dispcal di Argyll. La guida di Argyll relativa a questo comando è C:/argyll/doc/dispcal.html. Come per tutti gli altri comandi, se scrivete "dispcal" senza nessuna opzione vi verrà fornito un breve help sul comando.

Vi riporto la sintassi e la descrizione delle opzioni più importanti per quanto riguarda i contenuti di questo articolo. Le informazioni complete sono contenute nella guida di Argyll.

dispcal [opzioni] [nomefile]

[Opzioni]

-v

Modo verbose: durante l'esecuzione del programma stampa a video tutte le informazioni disponibili. Sempre attivata, meglio sapere per esteso tutto quello che succede, anche se talvolta le informazioni sono un po' criptiche.

-yl

Tecnologia monitor LCD. Se avete un CRT (il vecchio buon tubo catodico) allora usate -yc.

-t TTTTT

Imposta la temperatura del bianco desiderata. Il numero TTTTT è la temperatura in gradi Kelvin.

Esempio: -t 6500 (imposta temperatura del bianco a 6500°K)

-g G.G

Imposta la temperatura del bianco desiderata. Il numero G.G è la temperatura in gradi Kelvin.

Esempi: -g 2.2 (imposta gamma 2.2) -gs (imposta gamma sRGB) -gl (imposta gamma L*)

-b BBB

Imposta la luminanza del bianco desiderata. Il numero BBB è espresso in candele su metro quadro, cd/m2.

Esempio: -b 120 (imposta luminanza 120cd/m2)

-B KKKK

Imposta il livello del nero, in cd/m2. Se non utilizzata, il programma assume che si voglia tenere la luminanza del nero minima del monitor.

-qh

Imposta la qualità alta (h = high) della calibrazione. Una elevata qualità vuol dire un numero elevato di misurazioni e quindi una elevata durata del procedimento (io ho misurato circa 1 ora e 50 minuti!).

Altre possibilità: -qm (imposta qualità media) -ql (imposta qualità bassa)

[Nomefile]

nomefile

Imposta il nome del file di uscita, da indicare senza estensione (il programma metterà comunque ".cal").

Com'è giusto, il programma dispcal ha come principali opzioni di ingresso le quattro variabili della calibrazione di un monitor: il gamma, la temperatura del bianco, la luminosità massima, il livello del nero. Come uscita, produce un file di estensione .cal (il cui nome è il parametro [Nomefile]) che contiene i dati di calibrazione, che sarà utilizzato dai programmi di caratterizzazione (dispread) e profilazione (colprof).

Il comando che ho impartito per la prima fase di calibrazione in Argyll è stato il seguente:

dispcal -v -yl -t 6500 -b 130 -g 2.2 -qh HPLP2475w_20100814_1

Si noti che ho scelto una temperatura del bianco 6500°K, un gamma 2.2, una luminosità massima di 130cd/m2 e il livello del nero nativo (non avendo indicato nessun parametro -B): tutto conforme a quanto detto prima. Ho impostato anche la qualità massima, che teoricamente porta ai risultati migliori.

L'ultimo parametro HPLP2475w_20100814_1 è il nome del file di uscita (con estensione .cal): come notate è composto dal nome del monitor (HPLP2475w), dalla data scritta in modo inverso annomesegiorno (20100814) e da un numero progressivo (1), perchè in uno stesso giorno potrei eseguire più calibrazioni. E' una scelta personale, qualcuno addirittura nel nome del file indica i parametri di calibrazione.

Una volta avviato il programma (verificare prima di essere nella cartella di lavoro "C:\argyll\data") viene chiesto di posizionare lo strumento sul monitor. come già detto, io preferisco non usare la ventosa ma inclinare il più possibile il monitor verso l'alto, e appoggiare lo strumento eventualmente fissando con un pezzo di scotch di carta il cavetto, in modo che non cada.

C:\argyll\data>dispcal -v -yl -t 6500 -b 130 -g 2.2 -qh C:\argyll\data\HPLP2475w_20100814_1

Setting up the instrument
Instrument Type:   Datacolor Spyder3
Serial Number:     xxxxxxxxxx
Hardware version:  0x0407
Place instrument on test window.
Hit Esc or Q to give up, any other key to continue:

Posizionate lo strumento nel quadrato di misurazione, facendo attenzione che il sensore sia abbastanza centrato. Premete Invio, dopo qualche secondo si ha la presentazione di un menù di 8 voci:

Display type is LCD
Target white = 6500.000000 degrees kelvin Daylight spectrum
Target white brightness = 130.000000 cd/m^2
Target black brightness = native brightness
Target advertised gamma = 2.200000

Press 1 .. 7
1) Black level (CRT: Offset/Brightness)
2) White point (Color temperature, R,G,B, Gain/Contrast)
3) White level (CRT: Gain/Contrast, LCD: Brightness/Backlight)
4) Black point (R,G,B, Offset/Brightness)
5) Check all
6) Measure and set ambient for viewing condition adjustment
7) Continue on to calibration
8) Exit

La voce per noi interessante è la numero 2, che verifica il punto del bianco. Premete quindi 2: dispcal eseguirà delle misure preliminari, quindi vi stamperà le misure sull'ultima riga.

Doing some initial measurements
Red   = XYZ  80.22  38.67   0.00
Green = XYZ  22.95  85.50  15.39
Blue  = XYZ  25.72   8.59 136.94
White = XYZ 128.24 132.21 151.30

Adjust R,G & B gain to get target x,y. Press space when done.
   Target Br 130.00, x 0.3128, y 0.3291
/ Current Br 132.10, x 0.3128, y 0.3288  DE  0.2  R+  G++ B-

La linea indicata con target riporta i valori desiderati di luminosità massima (Br) e di coordinate colorimetriche del bianco (x e y, che esprimono cripticamente la temperatura del bianco). La linea indicata con Current invece indica la misurazione attuale dello strumento. In un mondo ideale i tre numeri Br, x e y dovrebbero essere uguali a quelli appena sopra, nella linea target. Purtroppo non sarà mai così, ed infatti viene riportato anche l'errore espresso in dE94 (DE, vedi il paragrafo qui sopra) e le indicazioni per agire sui canali R, G e B.

Calibrazione iniziale del monitor: a sinistra il menù OSD, al centro il quadrato di misurazione, a destra il prompt dei comandi.

Per il mio monitor HP LP2475w ho settato i seguenti parametri di funzionamento:

Luminosità = 20

Contrasto = 80

Canale R = 255

Canale G = 220

Canale B = 219

Abbiamo impostato il monitor in modo che sia il più vicino possibile ai valori desiderati di calibrazione. Una volta premuto Spazio, si ritorna al menù iniziale e adesso possiamo battere 7 per iniziale la procedura di misurazione che fornirà i dati per ottenere la calibrazione da caricare in LUT. Attenzione che queste misurazioni durano parecchio: io ho aspettato quasi 2 ore!

Commencing device calibration
patch 6 of 6
Black = XYZ   0.28   0.28   0.48
Red   = XYZ  78.73  37.94   0.00
Green = XYZ  23.21  86.62 15.64
Blue  = XYZ  24.34   8.12 129.54
White = XYZ 125.54 132.06 144.02
patch 80 of 80
Target white value is XYZ 123.562184 130.000000 141.490941
Adjusted target black XYZ 0.29 0.28 0.48, Lab 1.92 0.72 -1.98
Target black after min adjust: XYZ 0.285 0.276 0.480, Lab 1.918 0.723 -1.976
Gamma curve input offset = 0.000000, output offset = 0.002123, power = 2.211077
Total Iteration 4, Final Samples = 96 Final Repeat threshold = 0.400000
Creating initial calibration curves...
Doing iteration 1 with 12 sample points and repeat threshold of 1.131371 DE
patch 12 of 12
Brightness error = 0.730808 cd/m^2 (is 130.730808, should be 130.000000)
White point error = 0.647192 deltaE
Maximum neutral error (@ 0.725370) = 1.066037 deltaE
Average neutral error = 0.647041 deltaE
Number of measurements taken = 20
Computing update to calibration curves...
Doing iteration 2 with 24 sample points and repeat threshold of 0.800000 DE
patch 24 of 24
Brightness error = 0.721509 cd/m^2 (is 130.721509, should be 130.000000)
White point error = 0.630530 deltaE
Maximum neutral error (@ 0.559535) = 0.779444 deltaE
Average neutral error = 0.432829 deltaE
Number of measurements taken = 47
Computing update to calibration curves...
Doing iteration 3 with 48 sample points and repeat threshold of 0.565685 DE
patch 48 of 48
Brightness error = -0.349150 cd/m^2 (is 129.650850, should be 130.000000)
White point error = 0.120148 deltaE
Maximum neutral error (@ 0.178335) = 0.562096 deltaE
Average neutral error = 0.301271 deltaE
Number of measurements taken = 134
Computing update to calibration curves...
Doing iteration 4 with 96 sample points and repeat threshold of 0.400000 DE patch 96 of 96
Brightness error = 0.954970 cd/m^2 (is 130.954970, should be 130.000000)
White point error = 0.160874 deltaE
Maximum neutral error (@ 0.302540) = 0.722889 deltaE
Average neutral error = 0.318298 deltaE
Failed to meet target 0.400000 delta E, got worst case 0.463846
Number of measurements taken = 341 The instrument can be removed from the screen.
Written calibration file 'C:\argyll\data\HPLP2475w_20100814_1.cal'

Consiglio importante, valido per tutti i comandi di Argyll.

Leggete sempre per bene tutte le righe che Argyll stampa a video durante l'esecuzione del programma: ci possono essere righe che indicano segnalazioni o errori importanti, che inficiano l'intera procedura.

Se ad esempio c'è stato un errore nella fase di calibrazione, tutto il resto della caratterizzazione e profilazione saranno viziate e molto probabilmente produrranno un profilo non corretto.

Come vedete, ci sono state 4 successivi passaggi, ognuno con un numero di misure sempre maggiore e con la ricerca di un errore deltaE sempre minore. Le misure totali sono state 341 ("Number of measurements taken = 341"), per circa 1 ora e 50 minuti. Nel log qui sopra, ho evidenziato due righe importanti. Il programma ha tentato di stare dentro un errore massimo di 0.4dE tra la curva ideale del gamma 2.2 e la curva modificata con la LUT, purtroppo ha sforato ma non di molto ("Failed to meet target 0.400000 delta E, got worst case 0.463846"): amen, non abbiamo sbagliato di molto, però sappiamo che questo è un punto in cui potremmo migliorare qualcosa.

Anche la luminosità è leggermente sbagliata ("Brightness error = 0.954970 cd/m^2 (is 130.954970, should be 130.000000)"), ma non ci importa molto, il monitor di per se ha una deriva nel tempo maggiore (si vedano anche le considerazioni nel paragrafo relativo al programma Calibration Tester di X-Rite).

Secondo passo: la caratterizzazione

Dalla procedura con il comando dispwin precedente abbiamo ereditato un file "HPLP2475w_20100814_1.cal" che contiene i dati per la calibrazione della LUT. Ora dobbiamo eseguire la caratterizzazione vera e propria, cioè misurare come il monitor riproduca i vari colori: i dati ottenuti saranno utilizzati per la successiva creazione del profilo ICC.

Qui si utilizzeranno due comandi Argyll: targen e dispread.

Il programma targen

Il programma targen serve per creare il cosiddetto target: l'elenco di colori (normalmente indicati con "patch", termine che deriva dalle tacche stampate su un foglio per la caratterizzazione delle stampanti) che il successivo comando dispread utilizzerà per eseguire le misure. Il target sarà un file con estensione ".ti1".

Questo è uno dei punti cardine per ottenere un buon profilo ICC: se scegliamo i colori dal target in un numero elevato e posizionati nel "mondo" dei colori in modo intelligente, otterremo un buon risultato finale.

E' escluso infatti di misurare tutti i possibili colori RGB: sono infatti più di 16 milioni, quindi dobbiamo restringere di molto le misure, al massimo a qualche centinaio se non vogliamo eseguire la procedura in una settimana! Un numero limitato di colori da misurare vuol dire che la successiva profilazione non sarà perfetta, ma dovrà creare un profilo avendo sott'occhio solo una fotografia imperfetta e parziale del comportamento reale del monitor: questo è una delle sorgenti di imperfezione purtroppo inevitabile della profilazione del monitor, ma che si presenta per qualsiasi altro programma (e non solo per Argyll) ed anche per la profilazione degli altri dispositivi (stampanti, scanner).

Ad esempio, nel target sarebbe opportuno che ci fossero un bel numero di grigi (i colori disposti lungo l'asse L di LAB), dal bianco al nero, in modo che eseguendo le misure poi ottenga un profilo ICC che, essendo vincolato in qualche modo alle misure precedenti, sia soddisfacente per le tonalità di grigio e quindi per il ritocco delle foto in bianco e nero. Se non facessimo così, Argyll potrebbe permettersi di non essere così preciso su questi "colori" particolari, e quindi potrebbe succedere che ci siano delle deviazioni e quindi delle dominanti nelle foto in bianco e nero.

Vediamo ora come utilizzare il programma targen, riporto solo le opzioni per me più interessanti. Come sempre, nella guida di Argyll trovate tutto e di più.

targen [opzioni] [nomefile]

[Opzioni]

-v

Modo verbose: durante l'esecuzione del programma stampa a video tutte le informazioni disponibili. Sempre attivata, meglio sapere per esteso tutto quello che succede, anche se talvolta le informazioni sono un po' criptiche.

-w

Crea un file di tipo da .wrl secondo lo standard VRML per la visualizzazione dei colori del target in 3D. Se ne parla più avanti in questo paragrafo.

-G

Sceglie il modo "good", cioè privilegia la qualità dal target rispetto ad un numero inferiore di tacche e quindi di successivo tempo di misurazione.

-d N

Se N=3, allora i colori generati sono quelli dello spazio RGB video, quello che ci interessa per un monitor.

[Nomefile]

nomefile

Imposta il nome del file di uscita contenente il target, da indicare senza estensione (il programma metterà comunque ".ti1").

Il comando che ho impartito è stato il seguente:

targen -v -w -G -d3 C:\argyll\data\HPLP2475w_20100814_targen_1

Se non indichiamo altro, targen creerà un target con ben 836 patches. Qui non c'è bisogno dello Spyder3, e tutto si svolge in pochi secondi.

C:\argyll\data>targen -v -w -G -d3 HPLP2475w_20100814_targen_1
RGB test chart
Full spread patches = 836
Adaptation weights: Device = 0.935, Perceptual = 0.065, Curvature = 0.010
Perceptual cache resolution = 11
Acceleration grid res = 10

There are 1 unique fixed points to add (4 non-unique)
There are 832 far spread points to add
Added 833/833
After seeding points: MinPoint = 3.794, Min = 3.258, Avg. = 9.224, Max = 11.867, 0.5 secs
Re-seeding
It 1: Maxmv = 0.078426, MinPoint = 3.291, Min = 2.347, Avg. = 9.213, Max = 12.94 3, 0.5 secs.
Re-seeding
It 2: Maxmv = 0.069190, MinPoint = 1.527, Min = 4.986, Avg. = 9.123, Max = 12.27 9, 0.4 secs.
Re-seeding
It 3: Maxmv = 0.061236, MinPoint = 3.774, Min = 5.306, Avg. = 9.056, Max = 12.72 0, 0.5 secs.
Re-seeding
It 4: Maxmv = 0.063794, MinPoint = 3.727, Min = 5.023, Avg. = 9.026, Max = 12.05 9, 0.5 secs.
Re-seeding
It 5: Maxmv = 0.056074, MinPoint = 5.018, Min = 5.402, Avg. = 8.969, Max = 11.83 4, 0.5 secs.
Re-seeding
It 6: Maxmv = 0.059909, MinPoint = 5.576, Min = 5.404, Avg. = 8.930, Max = 11.24 5, 0.5 secs.
Re-seeding
It 7: Maxmv = 0.043427, MinPoint = 6.652, Min = 5.541, Avg. = 8.888, Max = 11.56 1, 0.4 secs.
Re-seeding
It 8: Maxmv = 0.035040, MinPoint = 7.121, Min = 5.559, Avg. = 8.859, Max = 10.85 6, 0.5 secs.
Re-seeding
It 9: Maxmv = 0.037137, MinPoint = 6.467, Min = 5.473, Avg. = 8.840, Max = 11.10 0, 0.5 secs.
Fixing up veronoi
It 10: Maxmv = 0.031728, MinPoint = 7.310, Min = 5.692, Avg. = 8.817, Max = 10.8 27, 0.3 secs.
Fixing up veronoi
It 11: Maxmv = 0.026910, MinPoint = 8.052, Min = 5.801, Avg. = 8.804, Max = 10.9 13, 0.2 secs.
Fixing up veronoi
It 12: Maxmv = 0.020325, MinPoint = 8.389, Min = 5.906, Avg. = 8.787, Max = 10.6 94, 0.2 secs.
Fixing up veronoi
It 13: Maxmv = 0.017595, MinPoint = 8.099, Min = 5.945, Avg. = 8.779, Max = 10.7 89, 0.2 secs.
Fixing up veronoi
It 14: Maxmv = 0.013129, MinPoint = 7.898, Min = 5.903, Avg. = 8.768, Max = 10.5 11, 0.2 secs.
Fixing up veronoi
It 15: Maxmv = 0.011875, MinPoint = 8.333, Min = 5.928, Avg. = 8.764, Max = 10.5 71, 0.2 secs.
Fixing up veronoi
It 16: Maxmv = 0.009255, MinPoint = 8.111, Min = 5.923, Avg. = 8.762, Max = 10.6 67, 0.2 secs.
Fixing up veronoi
It 17: Maxmv = 0.005582, MinPoint = 8.035, Min = 5.910, Avg. = 8.761, Max = 10.4 31, 0.2 secs.
Fixing up veronoi
It 18: Maxmv = 0.003027, MinPoint = 8.307, Min = 5.902, Avg. = 8.759, Max = 10.4 31, 0.2 secs.
Fixing up veronoi
It 19: Maxmv = 0.001099, MinPoint = 8.290, Min = 5.900, Avg. = 8.759, Max = 10.4 26, 0.2 secs.
Fixing up veronoi
It 20: Maxmv = 0.001119, MinPoint = 8.274, Min = 5.897, Avg. = 8.758, Max = 10.4 18, 0.2 secs.
After optimization: MinPoint = 8.274, Min = 5.897, Avg. = 8.758, Max = 10.418
Total number of patches = 836
Execution time = 6.817000 seconds

Ecco il grafico tridimensionale nello spazio LAB, basato sul file ".wrl" prodotto grazie al parametro -w. Maggiori informazioni in questo paragrafo.

Grafico 3D del target di caratterizzazione da 836 patches.

Abbiamo ottenuto quindi un file "HPLP2475w_20100814_targen_1.ti1" da dare in pasto a dispread.

Il programma dispread

Il programma dispread serve per eseguire la caratterizzazione vera e propria, cioè la misurazione delle patch del target appena creato con targen.

dispread [opzioni] [nomefile]

[Opzioni]

-v

Modo verbose: durante l'esecuzione del programma stampa a video tutte le informazioni disponibili.

-yl

Tecnologia monitor LCD. Se avete un CRT (il vecchio buon tubo catodico) allora usate -yc.

-k [filecalibrazione.cal]

Indica il file di calibrazione (creato in precedenza con dispcal) da caricare.

[Nomefile]

nomefile

Imposta il nome del file di ingresso con estensione ".ti1" contenente il target, e con lo stesso nome verrà creato un file con estensione "ti3" che conterrà i dati delle misurazioni.

Il comando che ho impartito è stato il seguente:

dispread -v -yl -k HPLP2475w_20100814_1.cal HPLP2475w_20100814_targen_1

Come per dispcal, il comando dispread chiede di posizionare lo strumento nel quadrato grigio di misura e di premere Invio. Dopodichè, cominciano le misure, che durano poco meno di un'ora. Qui sotto il log del risultato.

C:\argyll\data>dispread -v -yl -k HPLP2475w_20100814_1.cal HPLP2475w_20100814_targen_1
Number of patches = 836
Setting up the instrument
Instrument Type:   Datacolor Spyder3
Serial Number:     xxxxxxxxxx
Hardware version:  0x0407
Place instrument on test window.
Hit Esc or Q to give up, any other key to continue:
patch 836 of 836
The instrument can be removed from the screen.
Written 'C:\argyll\data\HPLP2475w_20100814_targen_1.ti3'

Benissimo, il grosso è fatto!

Terzo passo: la profilazione

La profilazione è la fase finale per la creazione del profilo ICC. Il comando Argyll da utilizzare è colprof.

Qui non ci sono più misurazioni da effettuare, ma scelte sul tipo di profilo da creare. Ci sono varie possibilità, alcune molto difficili da comprendere. Nulla vieta di creare tutti i tipi di profili desiderati partendo dalle stesse misure di caratterizzazione, anzi, sarà possibile confrontarne in seguito i risultati. Per maggiori informazioni, rileggete il capitolo "Approfondimento sui profili ICC" e la guida online del "comando colprof".

Cominciamo dal più semplice, quello che nella guida di colprof si chiama "matrix profile with three independent gamma curves", che noi abbrevieremo in "gamma/matrix".

colprof [opzioni] [nomefile]

[Opzioni]

-v

Modo verbose: durante l'esecuzione del programma stampa a video tutte le informazioni disponibili.

-qu

Qualità massima (ultra). Altre possibilità: bassa (-ql), media (-qm), valore di default), alta (-qh).

-ni

Per profili cLUT, non crea le curve di ingresso.

-np

Per profili cLUT, non crea le curve di distribuzione omogenea dei dati in ingresso.

-no

Per profili cLUT, non crea le curve di uscita.

-ag

Importante: imposta un profilo a matrice, con una curva gamma per ogni canale: "independent gamma curves + matrix".

Altre possibilità interessanti (consultate la guida!):  -as   profilo a matrice con "shaper" indipendenti per ogni canale  -al   profilo a tabella con LAB come PCS  -aX   profilo a tabella con XYZ come PCS

-O [nomeprofilo.icc]

Indica il nome del profilo ICC da creare. L'estensione può essere ".icc" (consigliata) o ".icm".

[Nomefile]

nomefile

Imposta il nome del file di ingresso con estensione ".ti3" contenente i dati della caratterizzazione (dispread).

Riguardo alle opzioni "-ni", -no e "-np" (valide in realtà solo per i profili cLUT), dovrebbero disabilitare la creazione di curve in ingresso e in uscita del profilo ICC. Tali curve sarebbero utilizzate dal CMM prima di ogni conversione. Se da un lato migliorano la precisione per profilo, dall'altro possono introdurre discontinuità nei gradienti, visto che ogni operazione matematica nel mondo digitale introduce artefatti. Sarebbe da provare, e verificare quale sia il compromesso migliore tra basso errore deltaE e uniformità dei gradienti. Tutto questo mi è stato confermato da Alberto di PhotoActivity. Se lo dice lui, per me è legge :-)

Il comando che ho impartito per generare il profilo "gamma/matrix" è stato il seguente:

colprof -v -qu -ni -no -ag -O HPLP2475w_20100814_gm_1.icc HPLP2475w_20100814_targen_1

Il log dell'esecuzione del comando è questo:

C:\argyll\data>colprof -v -qu -ni -no -ag -O HPLP2475w_20100814_gm_1.icc HPLP2475w_20100814_targen_1
No of test patches = 836
Creating matrix and curves...
100%
Find white & black points
Initial white point = 0.948432 0.997331 1.077113
Initial black point = 0.000000 0.000000 0.000000
Display Luminance = 129.522618
White point XYZ = 0.950970 1.000000 1.079995
Black point XYZ = 0.000000 0.000000 0.000000
Fixup matrix for white point
After white point adjust:
Matrix = 0.628699 0.190777 0.144724
         0.301209 0.648237 0.050554
        -0.001489 0.097031 0.729359
Done gamma/shaper and matrix creation
Profile done
Profile check complete, peak err = 6.185964, avg err = 1.032743, RMS = 1.341455

L'ultima riga riporta l'errore massimo e medio del profilo ottenuto nei confronti dei dati di ingresso (le misure della caratterizzazione). Come abbiamo già detto, un profilo è un'approssimazione, perchè non può descrivere in modo completo il comportamento del monitor. In questo caso, il profilo è del tipo a matrice, e quindi l'errore è inevitabilmente non trascurabile, visto che una semplice formula matematica non può modellizzare perfettamente un dispositivo reale come un monitor. Dalla guida di Argyll si legge che errori massimi fino a 15dE e errori medi fino a 5dE sono accettabili: oltre, vuol dire che qualcosa non funziona, probabilmente le misure di caratterizzazione sono viziate da qualche problema.

Come notate, il nome del profilo è scelto in modo intelligente: contiene il modello del monitor, la data di creazione, il tipo ("_gm_" per profilo "gamma/matrix") ed un numero progressivo. Voi potete integrare con altri parametri tipo temperatura del bianco, gamma, ... L'estensione del file del profilo ICC di default è ".icm" per gli ambienti Windows, ".icc" per gli altri, ma in realtà non c'è nessuna differenza se non formale.

Nel file ".ti3" di ingresso, proveniente da dispread, ci sono anche i dati di calibrazione (originariamente creati da dispcal), quindi colprof può immettere nel profilo ICC finale anche questi dati, nell'apposito tag "vcgt". Tali dati saranno indispensabili per il programma che all'avvio di Windows leggerà il profilo ICC e aggiornerà la LUT della scheda video. Da notare che i dati di calibrazione saranno gli stessi per tutti i profili che genereremo in seguito

Generiamo ora un profilo "shaper curve and matrix profile", che chiameremo "shaper/matrix". Dalla guida di colprof si legge che dovrebbe essere migliore del "gamma/matrix". Il parametro di colprof da usare è "-as".

colprof -v -qu -ni -no -as -O HPLP2475w_20100814_sm_1.icc HPLP2475w_20100814_targen_1<

Ecco il log del risultato. L'errore di profilazione (ultima riga) migliora sensibilmente.

C:\argyll\data\2010-08-14>colprof -v -qu -ni -no -as -O HPLP2475w_20100814_sm_1.icc HPLP2475w_20100814_targen_1
No of test patches = 836
Creating matrix and curves...
100%
Find white & black points
Initial white point = 0.946757 0.996150 1.080659
Initial black point = 0.002002 0.001881 0.003293
Display Luminance = 129.369247
White point XYZ = 0.950416 1.000000 1.084835
Black point XYZ = 0.002010 0.001889 0.003306
Fixup matrix for white point
After white point adjust:
Matrix = 0.631520 0.189779 0.142901
         0.301276 0.650701 0.048024
        -0.004826 0.094363 0.735362
Done gamma/shaper and matrix creation
Profile done
Profile check complete, peak err = 3.007419, avg err = 0.623480, RMS = 0.735198

Proviamo ora con un profilo a tabella con LAB come PCS ("cLUT based table profile with a PCS of L*a*b*" nel gergo di Argyll, noi lo chiameremo "CLUT-LAB") utilizzando il parametro "-al". Ecco il comando completo, con un nome del file del profilo ovviamente diverso (notate "_cLUT_"):

colprof -v -qu -ni -no -al -O HPLP2475w_20100814_cLUT_1.icc HPLP2475w_20100814_targen_1

Ecco il corposo log del risultato. Da leggere molto attentamente.

C:\argyll\data>colprof -v -qu -ni -no -al -O HPLP2475w_20100814_cLUT_1.icc HPLP2475w_20100814_targen_1
No of test patches = 836
Estimating white point
Approximate White point XYZ = 0.954010 1.000130 1.083800, Lab = 100.005025 -1.789309 -19.042689
Creating optimised per channel curves
Initial White Point XYZ 0.954010 1.000130 1.083800, Lab 100.005025 -1.789309 -19.042689
About to create grid position input curves
Create final clut from scattered data
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
*********************************************************************
Doing White point fine tune:
Before fine tune, rel WP = XYZ 0.964111 0.999896 0.824981, Lab 99.995995 0.001951 -0.013423
After fine tune, rel WP = XYZ 0.964200 1.000000 0.824900, Lab 100.000000 -0.000000 0.000000
Creating fast inverse input lookups
White point XYZ = 0.953932 1.000029 1.083908, Lab = 100.001139 -1.786098 -19.056652
Find black point
Black point XYZ = 0.001887 0.001866 0.003470, Lab = 1.685861 0.354647 -3.644474Display Luminance = 129.873044
colprof: Warning -
   *** Green primary value can't be encoded in L*a*b* PCS (84.479759 -143.110245 75.459984)
   *** Try switching to XYZ PCS ***
Scene parameters:
Viewing condition Ev = 3
Ref white Wxyz = 0.953904 1.000000 1.083876
Relative liminance of background Yb = 0.200000
Adapting liminance La = 50.000000
Flare Yf = 0.010000
Flare color Fxyz = 0.953904 1.000000 1.083876
Internal parameters:
Surround Impact C = 0.690000
Chromatic Induction Nc = 1.000000
Adaptation Degree F = 1.000000
Pre-computed values
Sharpened cone white rgbW = 0.952599 1.032945 1.083876
Degree of chromatic adaptation D = 0.897811
Chromatic transform values Drgb = 1.044674 0.971365 0.930523
Chromatically transformed white rgbcW = 0.995156 1.003367 1.008571
Hunter-P-E cone response white rgbpW = 0.997496 1.001494 1.008730
Background induction factor n = 0.200000
nn = 0.895218
Lightness contrast factor Fl = 0.629961
Background brightness induction factor Nbb = 1.000304
Chromatic brightness induction factor Ncb = 1.000304
Base exponential nonlinearity z = 1.927214
Post adapted cone response white rgbaW = 11.873083 11.892295 11.926947
Achromatic response of white Aw = 35.940731

Done A to B table creation
Setting up B to A table lookup
Scene parameters:
Viewing condition Ev = 3
Ref white Wxyz = 0.953904 1.000000 1.083876
Relative liminance of background Yb = 0.200000
Adapting liminance La = 50.000000
Flare Yf = 0.010000
Flare color Fxyz = 0.953904 1.000000 1.083876
Internal parameters:
Surround Impact C = 0.690000
Chromatic Induction Nc = 1.000000
Adaptation Degree F = 1.000000
Pre-computed values
Sharpened cone white rgbW = 0.952599 1.032945 1.083876
Degree of chromatic adaptation D = 0.897811
Chromatic transform values Drgb = 1.044674 0.971365 0.930523
Chromatically transformed white rgbcW = 0.995156 1.003367 1.008571
Hunter-P-E cone response white rgbpW = 0.997496 1.001494 1.008730
Background induction factor n = 0.200000
nn = 0.895218
Lightness contrast factor Fl = 0.629961
Background brightness induction factor Nbb = 1.000304
Chromatic brightness induction factor Ncb = 1.000304
Base exponential nonlinearity z = 1.927214
Post adapted cone response white rgbaW = 11.873083 11.892295 11.926947
Achromatic response of white Aw = 35.940731

Creating B to A tables
Rev cache RAM = 1610 Mbytes
There is 1 rev cache instance with 1610 Mbytes limit
There are 2 rev cache instances with 805 Mbytes limit
100%
Done B to A tables
There is 1 rev cache instance with 1610 Mbytes limit
Profile check complete, peak err = 15.291738, avg err = 0.636525, RMS = 1.320440

In alto ho evidenziato in rosso due righe del log che riportando un avvertimento importante (che mi è stato segnalato a suo tempo dal buon Alberto di PhotoActivity, in questo thread): il primario verde è così... verde che esce dallo spazio LAB utilizzato come spazio di collegamento (PCS): non và bene! Infatti l'ultima riga (pure evidenziata) riporta un errore massimo (scarto tra il profilo ottenuto e i dati di caratterizzazione in ingresso) inaccettabile. Alberto mi ha consigliato di utilizzare invece XYZ come PCS (chiameremo questo profilo "cLUT-XYZ"), come anche riportato nella guida di Argyll, mediante il parametro "-aX".

colprof -v -qu -ni -no -aX -O HPLP2475w_20100814_cLUT_XYZ_1.icc HPLP2475w_20100814_targen_1

Il PC lavora un bel po', ecco il risultato.

C:\argyll\data\2010-08-14>colprof -v -qu -ni -no -aX -O HPLP2475w_20100814_cLUT_XYZ_1.icc HPLP2475w_20100814_targen_1
No of test patches = 836
Estimating white point
Approximate White point XYZ = 0.954010 1.000130 1.083800, Lab = 100.005026 -1.789299 -19.042688
Creating optimised per channel curves
Initial White Point XYZ 0.954010 1.000130 1.083800, Lab 100.005026 -1.789299 -19.042688
About to create grid position input curves
Create final clut from scattered data
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
****************************************
Doing White point fine tune:
Before fine tune, rel WP = XYZ 0.964198 0.999997 0.824899, Lab 99.999869 0.000199 -0.000133
After fine tune, rel WP = XYZ 0.964200 1.000000 0.824900, Lab 100.000000 0.000003 0.000002
Creating fast inverse input lookups
White point XYZ = 0.954008 1.000127 1.083799, Lab = 100.004895 -1.789088 -19.042814
Find black point
Black point XYZ = 0.002144 0.002102 0.003667, Lab = 1.898430 0.475844 -3.650428
Display Luminance = 129.885659
Scene parameters:
Viewing condition Ev = 3
Ref white Wxyz = 0.953887 1.000000 1.083661
Relative liminance of background Yb = 0.200000
Adapting liminance La = 50.000000
Flare Yf = 0.010000
Flare color Fxyz = 0.953887 1.000000 1.083661
Internal parameters:
Surround Impact C = 0.690000
Chromatic Induction Nc = 1.000000
Adaptation Degree F = 1.000000
Pre-computed values
Sharpened cone white rgbW = 0.952622 1.032955 1.083661
Degree of chromatic adaptation D = 0.897811
Chromatic transform values Drgb = 1.044652 0.971356 0.930687
Chromatically transformed white rgbcW = 0.995158 1.003368 1.008549
Hunter-P-E cone response white rgbpW = 0.997497 1.001494 1.008708
Background induction factor n = 0.200000
nn = 0.895218
Lightness contrast factor Fl = 0.629961
Background brightness induction factor Nbb = 1.000304
Chromatic brightness induction factor Ncb = 1.000304
Base exponential nonlinearity z = 1.927214
Post adapted cone response white rgbaW = 11.873088 11.892292 11.926841
Achromatic response of white Aw = 35.940733

Done A to B table creation
Setting up B to A table lookup
Scene parameters:
Viewing condition Ev = 3
Ref white Wxyz = 0.953887 1.000000 1.083661
Relative liminance of background Yb = 0.200000
Adapting liminance La = 50.000000
Flare Yf = 0.010000
Flare color Fxyz = 0.953887 1.000000 1.083661
Internal parameters:
Surround Impact C = 0.690000
Chromatic Induction Nc = 1.000000
Adaptation Degree F = 1.000000
Pre-computed values
Sharpened cone white rgbW = 0.952622 1.032955 1.083661
Degree of chromatic adaptation D = 0.897811
Chromatic transform values Drgb = 1.044652 0.971356 0.930687
Chromatically transformed white rgbcW = 0.995158 1.003368 1.008549
Hunter-P-E cone response white rgbpW = 0.997497 1.001494 1.008708
Background induction factor n = 0.200000
nn = 0.895218
Lightness contrast factor Fl = 0.629961
Background brightness induction factor Nbb = 1.000304
Chromatic brightness induction factor Ncb = 1.000304
Base exponential nonlinearity z = 1.927214
Post adapted cone response white rgbaW = 11.873088 11.892292 11.926841
Achromatic response of white Aw = 35.940733

Creating B to A tables
Rev cache RAM = 1610 Mbytes
There is 1 rev cache instance with 1610 Mbytes limit
There are 2 rev cache instances with 805 Mbytes limit
100%
Done B to A tables
There is 1 rev cache instance with 1610 Mbytes limit
Creating matrix and curves...
100%
Find white & black points
Initial white point = 0.946757 0.996150 1.080659
Initial black point = 0.002002 0.001881 0.003293
Fixup matrix for white point
After white point adjust:
Matrix = 0.631520 0.189779 0.142901
0.301276 0.650701 0.048024
-0.004826 0.094363 0.735362
Done gamma/shaper and matrix creation
Profile done
Profile check complete, peak err = 2.853287, avg err = 0.024810, RMS = 0.160130

Sembra sia andato tutto bene, ora. L'errore riportato è molto basso, quindi siamo tranquilli. Possiamo utilizzare ora il comando profcheck (che useremo in seguito nella verifica strumentale) per fare una primo controllo: confrontiamo i dati di caratterizzazione con il profilo ottenuto. Si tratta di una verifica non molto distante dalle informazioni già ottenute controllando gli errori massimi e minimi restituiti da colprof.

profcheck -v -k -w HPLP2475w_20100814_targen_1.ti3 HPLP2475w_20100814_gm_1.icc

Per il profilo a matrice si ottiene:

No of test patches = 836
Profile check complete, errors(CIEDE2000): max. = 3.794149, avg. = 0.403837, RMS = 0.568732

Possiamo ripetere il tutto anche per gli altri tre profili: "shaper/matrix", "cLUT-LAB" e "cLUT-XTZ". Ottime le prestazioni di quest'ultimo, come atteso (si vedano le considerazioni nel capito di approfondimento sui profili ICC).

[shaper/matrix]
No of test patches = 836
Profile check complete, errors(CIEDE2000): max. = 1.528541, avg. = 0.274320, RMS = 0.327792

[cLUT-LAB]
No of test patches = 836
Profile check complete, errors(CIEDE2000): max. = 2.304972, avg. = 0.223697, RMS = 0.357836

[cLUT-XYZ]
No of test patches = 836
Profile check complete, errors(CIEDE2000): max. = 0.858138, avg. = 0.010081, RMS = 0.050549

Quarto passo: installazione e caricamento del profilo

Ora abbiamo ottenuto il nostro profilo ICC, il file "HPLP2475w_20100814_gm_1.icc". Questo profilo deve ora essere installato nel sistema operativo, nel senso che deve essere copiato nel posto giusto (per i sistemi Windows, la cartella dei profili ICC è "c:\windows\system32\spool\drivers\color"), indicato come profilo del monitor nel registro di sistema (affinché tutte le applicazioni sappiano quale sia automaticamente) e ad ogni avvio qualcuno dovrà caricare i dati di calibrazione nella LUT della scheda video.

Per eseguire tutte queste operazioni utilizziamo il comando dispwin di Argyll. La sintassi per questo scopo è la seguente (per il profilo a matrice):

dispwin -v -I C:\argyll\data\HPLP2475w_20100814_gm_1.icc

Il log del comando è semplice:

C:\argyll\data>dispwin -v -I HPLP2475w_20100814_gm_1.icc
About to open dispwin object on the display
About to install 'C:\argyll\data\2010-08-14\HPLP2475w_20100814_gm_1.icc' as display's default profile
Installed 'C:\argyll\data\2010-08-14\HPLP2475w_20100814_gm_1.icc' and made it the default
About to destroy dispwin object

Se andiamo a controllare nella cartella "c:\windows\system32\spool\drivers\color" dovremmo ritrovare il nostro profilo.

Ad ogni avvio del sistema operativo, bisogna caricare la calibrazione in LUT, visto che almeno per i sistemi Windows non esiste nessun servizio che si occupa di questo. Se abbiamo già installato il profilo, basta lanciare il seguente comando dispwin:

dispwin -L

Io ho creato un file batch (.bat) contenente questo comando e l'ho aggiunto alla cartella "esecuzione automatica", in modo che venga eseguito all'avvio del sistema operativo. Mi dicono poi che Vista abbia un bug per il quale la LUT viene resettata quando il PC va' in stand-by o in sospensione: conviene tenere un link al file .bat anche sul desktop, da richiamare in queste situazioni, giusto per essere sicuri.

Cosa succede se la LUT è viene caricata correttamente? Il vostro profilo non "funziona" più, visto che si basava proprio sulla calibrazione in LUT. Quindi, fate molta attenzione, eventualmente potete anche verificare ogni tanto con i comandi qui sotto.

Per verificare che la LUT sia stata caricata correttamente, possiamo usare il seguente comando (attenzione alle virgolette):

dispwin -V "C:\Windows\System32\spool\drivers\color\HPLP2475w_20100814_gm_1.icc"

Se tutto è andato bene, il risultato a video segnala che non c'è discrepanza (0.0%):

Verify calibration
Verify: 'C:\Windows\System32\spool\drivers\color\HPLP2475w_20100814_gm_1.icc' IS loaded (discrepancy 0.0%)

Se invece c'è stato qualche problema, viene segnalato che c'è una discrepanza:

Verify calibration
Verify: 'C:\Windows\System32\spool\drivers\color\HPLP2475w_20100814_gm_1.icc' is NOT loaded (discrepancy 1.5%)

Per ultimo, se volete resettare la LUT (attenzione, avete eliminato i dati della calibrazione, siete in posizione pericolosa perchè il profilo non è più valido!):

dispwin -c

Anzi, se volete giochicchiare un po' fate così: tenete aperto Photoshop (o Gimp), caricate un'immagine di test come quelle che trovate qui sotto, e contemporaneamente tenete aperto un prompt dei comandi. Alternate il comando dispwin -c che resetta la LUT e annulla la calibrazione al comando dispwin -L che carica la LUT secondo il profilo installato: in questo modo vedrete gli effetti della calibrazione. Nel mio caso, con LUT resettate le immagini in bianco e nero hanno una leggerissima dominante verdastra e cambia l'andamento dei toni nei grigi intermedi.

Provate a vedere cosa succede togliendo la calibrazione...

La verifica strumentale

La verifica strumentale consiste nel rimisurare le prestazioni del monitor, magari con un target diverso, con meno patches, e di raffrontare i risultati con quanto teoricamente previsto dal profilo ICC. Valgono le considerazioni già espresse sopra nel capitolo "Prima di cominciare": è importante lasciare il monitor acceso un bel po' prima di cominciare, soprattutto se le misure avvengono in un giorno diverso da quello di profilazione. Se tutto è ok, gli errori dovrebbero essere contenuti. In caso contrario, qualcosa non ha funzionato in una delle tre fasi: la calibrazione (è ancora valida? la LUT è stata caricata correttamente?) le misurazioni (quelle di caratterizzazione o quelle di verifica?), la profilazione (ci sono stati errori?).

Importantissimo: la verifica strumentale si basa unicamente... sullo strumento. Se è sballato perchè è troppo economico o invecchiato o danneggiato, è possibile che non ce ne accorgiamo, visto che lo stesso strumento che abbiamo usato per profilare il monitor lo stiamo usando per verificare il profilo. Si tratta di una situazione pericolosa, perchè crediamo che sia tutto perfetto, ma così non è. Da qui, l'importanza complementare della verifica visiva.

Come già detto in precedenza è scontato che l'algoritmo cerchi dai far "passare" i punti interni del profilo a tabella (o le curve gamma di un profilo a matrice) il più vicino ai punti di caratterizzazione, meno scontato che produca buoni risultati anche con una nuova serie di misure in posizioni diverse. Solitamente vengono riportati sia l'errore massimo sia l'errore medio (e/o RMS, una media più "intelligente"). E' una verifica che si può eseguire ogni tanto, per controllare che il profilo sia ancora valido.

Per prima cosa creiamo un nuovo target di verifica:

targen -v -w -d3 -e1 -g32 -f320 -r check_monitor_20100814_1

Il nuovo target ha 320 tacche (parametro -f 320), ha una patch di bianco (parametro -e1) e 32 di grigio (parametro -g32). La disposizione delle patch nello spazio dei colori non è ottimizzata come nel comando precedente ma ora è casuale (parametro -r), in modo da misurare colori che non siano correlati con il target utilizzato per costruire il profilo. L'ultimo parametro è il file di uscita (che automaticamente avrà estensione ".ti1"), ora con un nome diverso dal precedente.

Ecco il grafico tridimensionale nello spazio LAB, basato sul file ".wrl" prodotto grazie al parametro -w. Maggiori informazioni in questo paragrafo.

Grafico 3D del target di verifica strumentale da 320 patches.

Come sempre, date un'occhiata alla documentazione di Argyll sul comando targen per informazioni più precise e dettagliate.

Il log di esecuzione del comando è il seguente:

C:\argyll\data>targen -v -d3 -e1 -g32 -f320 -r check_monitor_20100814_1
RGB test chart
Compostie Grey steps = 32
Full spread patches = 320

Added 320/320
Total number of patches = 320
Execution time = 0.031000 seconds

Ora che abbiamo il nuovo target, possiamo passare alle misure mediante il comando dispread:

dispread -v -k HPLP2475w_20100814_1.cal -yl check_monitor_20100814_1

Ecco il log di esecuzione del comando:

C:\argyll\data>dispread -v -k HPLP2475w_20100814_1.cal -yl check_monitor_20100814_1
Number of patches = 320
Setting up the instrument
Instrument Type: Datacolor Spyder3
Serial Number:     xxxxxxxxxx
Hardware version: 0x0407
Place instrument on test window.
Hit Esc or Q to give up, any other key to continue:
patch 320 of 320
The instrument can be removed from the screen.
Written 'check_monitor_20100814_1.ti3'

Ora abbiamo le misurazioni. Il comando profcheck ci permetterà di verificare l'errore massimo e medio delle misure rispetto a quanto predetto dal profilo. Questa serie di dati può essere utilizzata per controllare tutti i profili che abbiamo generato in precedenza. Cominciamo dal profilo "gamma/matrix" (a matrice con gamma indipendente per ogni canale, opzione "-ag" per colprof).

profcheck -v -k -w check_monitor_20100814_1.ti3 HPLP2475w_20100814_gm_1.icc

Se indicate il parametro "-v2" Argyll vi stampa anche tutte le informazioni colorimetriche di ogni patch del target di verifica. Il log di esecuzione del comando contiene il risultato finale del controllo:

C:\argyll\data>profcheck -v -k -w check_monitor_20100814_1.ti3 HPLP2475w_20100814_gm_1.icc
No of test patches = 320
Profile check complete, errors(CIEDE2000): max. = 3.475061, avg. = 0.624180, RMS = 0.737633

Come sopra, ma per il profilo "shaper-matrix" (a matrice con shaper indipendente per ogni canale, opzione "-as" per colprof).

C:\argyll\data>profcheck -v -k -w check_monitor_20100814_1.ti3 HPLP2475w_20100814_sm_1.icc
No of test patches = 320
Profile check complete, errors(CIEDE2000): max. = 1.528541, avg. = 0.274320, RMS = 0.327792

Come sopra, ma per il profilo "cLUT-LAB" (a tabella con PCS in LAB, opzione "-al" per colprof).

C:\argyll\data>profcheck -v -k -w check_monitor_20100814_1.ti3 HPLP2475w_20100814_cLUT_1.icc
No of test patches = 320
Profile check complete, errors(CIEDE2000): max. = 2.304972, avg. = 0.223697, RMS = 0.357836

Come sopra, ma per il profilo "cLUT-XYZ" (a tabella con PCS in XYZ, opzione "-aX" per colprof).

C:\argyll\data>profcheck -v -k -w check_monitor_20100814_1.ti3 HPLP2475w_20100814_cLUT_XYZ_1.icc
No of test patches = 320
Profile check complete, errors(CIEDE2000): max. = 0.858138, avg. = 0.010081, RMS = 0.050549

Beh, tutto secondo le attese. Il peggiore è "gamma/matrix", il migliore è "cLUT-XYZ". Il profilo "shaper/matrix" si difende bene, tralascerei il profilo "cLUT-LAB" perchè viziato da errori durante la generazione. Si vedano le considerazioni nel capito di approfondimento sui profili ICC.

La verifica visiva

Come già detto sopra, lo scopo della verifica visiva è quello di controllare che il profilo si comporti bene proprio per quel che serve, cioè nel visualizzare le immagini in modo corretto, non solo dal punto di vista strumentale.

Attenzione: se visualizzate queste immagini in una applicazione che NON gestisce il colore (ad esempio Word, o i vecchi browser tipo Internet Explorer 6, oppure anche lo sfondo del desktop di Windows) allora state valutando solamente la calibrazione in LUT (sempre attiva, una volta caricata) e non il profilo ICC!

Se invece visualizzate queste immagini in una applicazione che gestisce il colore (ad esempio Photoshop, GIMP) allora state valutando solamente il profilo ICC nella sua interezza, compresa ovviamente la calibrazione in LUT!

Da notare che è questa ultima situazione quella che ci interessa di più: poco ci importa se le foto visualizzate fuori dalla gestione del colore non sono corrette (lo sapevamo già!), ci interessa invece che il profilo funzioni quando ci serve, quindi nel momento della visualizzazione e fotoritocco con i programmi che gestiscono il colore (ovviamente noi dobbiamo impostarli a dovere, quando serve).

Quali sono i principali parametri da controllare mediante le immagini di test? Ecco quelli che ho visto citare in giro e a cui faccio attenzione:

I parametri qui sopra si dovrebbero applicare sia ai colori (in particolare i tre primari rosso, verde, blu) sia ai toni di grigio, per verificare il profilo nei due tipi principali di riprese fotografiche.

La verifica visuale si basa sul fatto che dobbiamo conoscere a menadito le immagini di test che utilizzeremo. Bella affermazione, più difficile metterla in pratica. Secondo me ci sono tre possibili fonti per immagini che soddisfano quanto sopra:

Per quanto riguarda le immagini artificiali, ecco quelle che ho trovato in giro.

Se volete, potete scaricare questo file .zip che contiene le immagini di test qui sotto!

Gradiente lineare continuo

E' il più banale, ma già ci permette di verificare vari possibili problemi. In Internet ne trovate a bizzeffe:

Gradiente lineare continuo.

Ecco le prime valutazioni da eseguire.

Gradiente lineare a gradini

Anche questo è abbastanza banale, ne trovate in giro con un numero variabile di gradini.

Gradiente lineare a 21 gradini.

Gradiente lineare a 51 gradini.

Anche qui da valutare l'omogeneità dell'andamento dei grigi, per verificare che non ci siano compressioni o addensamenti. Chi ha occhio potrebbe anche valutare se l'andamento è corretto oppure se ci sia un andamento non lineare nelle ombre, mezzitoni, luci.

Gradienti lineari circolari

Questi li ho trovati sul sito Northlight Images e successivamente anche nella cartella pubblica del gruppo DigitalBackandWhiteThePrint, utilizzati per la linearizzazione delle stampanti a getto di inchiostro nelle stampe in bianco e nero. Rispetto ai gradienti lineari hanno un vantaggio: ogni minima discontinuità è molto più evidente.

Gradiente circolari.

Gradiente a gradini per le alte luci

L'immagine qui sotto è composta da barre di bianco puro (RGB=255,255,255) a barre di grigio, dal valore (RGB=254,254,254) al valore (RGB=240,240,240). In un mondo ideale dovreste distinguere la tacca 255 dalla 254, in realtà penso non sia male riuscire ad intravedere per prima la 253.

Gradiente per le alte luci.

Gradiente a gradini per le ombre

Come sopra, ma i grigi più scuri: l'immagine qui sotto è composta da barre di nero puro (RGB=0,0,0) alternate a barre di grigio, dal valore (RGB=1,1,1) al valore (RGB=15,15,15). In un mondo ideale dovreste distinguere la tacca 0 dalla 1, in realtà penso non sia male riuscire ad intravedere per prima la 3.

Gradiente per le ombre.

Dove trovare le immagini di test in Internet

Vi segnalo alcuni links ai quali potrete trovare immagini di test. Alcune hanno come scopo la verifica di profili per la stampa, però possono essere utilizzate anche per i nostri scopi.

Verifica della calibrazione

Mediante il comando dispcal è possibile verificare la calibrazione mediante una serie di misure automatiche da 30 secondi circa.

dispcal -yl -r

Ecco il log dopo pochi minuti dall'accensione (quindi il monitor deve ancora andare a regime, sono presenti evidenti errori).

Place instrument on test window.
Hit Esc or Q to give up, any other key to continue:
Current calibration response:
Black level = 0.29 cd/m^2
White level = 118.02 cd/m^2
Aprox. gamma = 2.24
Contrast ratio = 412:1
White chromaticity coordinates 0.3210, 0.3356
White    Correlated Color Temperature = 6041K, DE 2K to locus = 3.7
White Correlated Daylight Temperature = 6041K, DE 2K to locus = 1.1
White        Visual Color Temperature = 5931K, DE 2K to locus = 3.6
White     Visual Daylight Temperature = 6073K, DE 2K to locus = 1.1
The instrument can be removed from the screen.

La temperatura del bianco è espressa in 4 forme, ma l'importante è vedere che all'inizio il monitor è leggermente "caldo" (temperatura del bianco inferiore) rispetto alla temperatura desiderata di 6500°K. Comunque sia, questo è un comando che potreste utilizzare saltuariamente per verificare la calibrazione. Se volete saperne di più, nell'eccellente blog di Mauro Boscarol trovate "Argyll: calibrazione e profilazione del monitor (Mac OS X)".

L'andamento della luminanza massima nel tempo

Mi sono messo a misurare con lo Spyder3 e Argyll l'andamento della luminanza massima del bianco del mio amato HP LP2475w dal momento dell'avvio di Windows (meglio, da quando ho potuto interagire con il desktop), utilizzando il comando dispcal ne più ne meno come durante la fase iniziale della calibrazione (opzione 2 del menù del comando).

Ecco i risultati.

Tempo

Risultato del comando dispcal

Target Br 130.00, x 0.3128, y 0.3291

0 min.

Current Br 71.94, x 0.3189, y 0.3453 DE 8.3 R- G-- B+

1 min.

Current Br 80.97, x 0.3197, y 0.3440 DE 7.5 R- G-- B+

2 min.

Current Br 94.10, x 0.3199, y 0.3422 DE 6.5 R- G- B++

3 min.

Current Br 98.95, x 0.3201, y 0.3411 DE 5.9 R- G- B++

4 min.

Current Br 102.79, x 0.3203, y 0.3405 DE 5.6 R- G- B++

5 min.

Current Br 105.85, x 0.3198, y 0.3396 DE 5.2 R- G- B++

10 min.

Current Br 116.58, x 0.3192, y 0.3370 DE 4.0 R- G- B++

15 min.

Current Br 122.30, x 0.3187, y 0.3350 DE 3.2 R-- G- B+

20 min.

Current Br 125.50, x 0.3177, y 0.3336 DE 2.6 R-- G- B+

25 min.

Current Br 127.17, x 0.3171, y 0.3325 DE 2.2 R-- G- B+

30 min.

Current Br 128.13, x 0.3164, y 0.3316 DE 1.8 R-- G- B+

40 min.

Current Br 129.34, x 0.3154, y 0.3301 DE 1.5 R-- G+ B+

50 min.

Current Br 129.74, x 0.3145, y 0.3294 DE 1.2 R-- G+ B-

1 ora

Current Br 129.60, x 0.3140, y 0.3290 DE 1.0 R-- G+ B-

1 ora 10 min.

Current Br 129.93, x 0.3132, y 0.3286 DE 0.7 R- G++ B-

1 ora 20 min.

Current Br 130.02, x 0.3129, y 0.3285 DE 0.6 R- G++ B-

Si nota che solo dopo un'ora abbondante si scende sotto 1dE di errore del bianco. Forse tutti gli LCD si comportano allo stesso modo, credo che quelli con la retroilluminazione a LED e quelli con elettronica interna più prestigiosa (con compensazioni automatiche) facciano meglio. Niente di drammatico, ma meglio saperlo.

Grafici tridimensionali

I Grafici tridimensionali dei profili sono molto interessanti, soprattutto se si effettuano confronti tra un profilo ICC e uno spazio colore standard (sRGB e AdobeRGB in particolare) e tra due profili ICC.

Argyll mette a disposizione il programma iccgamut per creare un file VRML tridimensionale del gamut di un profilo ICC. Per visualizzare questo file (con estensione .wrl) è necessario un apposito viewer: vi consiglio "Cortona 3D Viewer", che si integra in un browser (Internet Explorer, Firefox, Opera, ...).

iccgamut -v -w -d5 -ip -pl HPLP2475w_20100814_gm_1.icc

Consultate la guida di Argyll per le varie opzioni. Vi consiglio solo di non abbassare troppo il parametro -d5 che imposta la qualità del rendering tridimensionale (più basso, migliore definizione): potreste aspettare parecchio. Ecco il risultato caricato in Cortona 3D Viewer su Firefox, per il profilo ICC di tipo matrice ("independent gamma curves + matrix").

Plot 3D del gamut del nostro profilo ICC. Nel browser è possibile girarlo in tutte le direzioni, e indagare ogni angolo.

Svariati programmi di Argyll che abbiamo usato possono produrre un file ".wrl" per permettere all'utente di visualizzare graficamente i risultati. In particolare, è possibile caricare il file .wrl prodotto in precedenza da profcheck (se avevate utilizzato il parametro -w). Il grafico tridimensionale è composto da segmenti, ognuno relativo alla patch misurata: più è lungo, più l'errore è elevato. Ecco il risultato, sempre per il profilo ICC di tipo matrice ("independent gamma curves + matrix").

Plot 3D gli errori di verifica del comando profcheck, per il profilo ICC di tipo matrice ("independent gamma curves + matrix"). In alcune zone gli errori sono maggiori, come nella punta esterna dei verdi.

Come potete vedere, gli errori maggiori si hanno negli "angoli" dei prima rosso e verde: probabilmente un profilo di tipo matrice non può modellare bene il comportamento del monitor in quegli estremi, dove ci sono forti scostamenti dall'andamento teorico. Sono colori difficilmente osservabili nella pratica, però se fosse richiesta una maggiore precisione del profilo, sarebbe meglio passare a uno a tabella ("cLUT).

Per visualizzare dei confronti tra il profilo ICC e gli spazi standard o altri profili, vi consiglio due strade: se avete soldini da spendere l'applicazione ColorThinkPro è eccellente (e serve anche a molto altro), se non volete spendere niente allora sul sito ICCView potete caricare i profili e compararli online (sempre in formato VRML). Proprio da quest'ultima fonte possiamo comparare il profilo a matrice con quello a tabella, ottenuti dalla stessa serie di misure.

Plot 3D del profilo ICC a matrice ("independent gamma curves + matrix", wireframe) e a tabella ("cLUT", solido).

Il confronto conferma quanto abbiamo intuito sopra: un profilo di tipo matrice (in wireframe) non può modellare bene il comportamento del monitor quanto un profilo a tabella (in colore solido): per il mio monitor HP LP2475w negli angoli estremi dei primari rosso e verde sembrano esserci forti scostamenti dall'andamento teorico. Il profilo a tabella ha gli angoli tagliati, e rappresenta meglio le caratteristiche reali del monitor, e sicuramente evita gli alti errori in quelle zone. Ci sono delle differenze anche alla base del solido, per le basse luminosità, evidenziate anche queste nel grafico degli errori (anche se in misura minore).

Se specificate l'opzione -w nell'esecuzione di targen, potete visualizzare il file ".wrl" risultante (con lo stesso nome del file ".ti1"). Di seguito il grafico per il target di caratterizzazione, nello spazio LAB.

Grafico 3D del target di caratterizzazione da 836 patches.

Ecco invece il grafico per il target di verifica strumentale. Si notino le patches lungo l'asse del grigio, create grazie al parametro -g32 di targen.

Grafico 3D del target di verifica strumentale da 320 patches.

dispcalGUI

Se non volete rompervi le scatole con righe di comando e logs di testo, vi consiglio caldamente di provare "dispcalGUI" di Florian Höch, un'interfaccia grafica per la calibrazione del monitor mediante Argyll. Il progetto è open-source, quindi completamente gratuito, al pari di Argyll.

L'interfaccia grafica "dispcalGUI".

In pratica, un'amichevole e comoda finestra di configurazione, con svariati vantaggi.

Sinceramente ho preferito sporcarmi le mani direttamente con i comandi Argyll, almeno in un primo tempo. Ad un certo punto ho deciso di aggiornare Argyll (in questo momento siamo alla release 1.3.2) e di provare dispcalGUI (release 0.6.6.7). Ho impostato il profilo Photo, e ho cambiato solo la temperatura del punto del bianco (nativa, contro i 5000°C preimpostati dal profilo) e ho scelto il gamma L*, tanto per provare anche quetsa possibilità. Ho poi deciso di disabilitare l'opzione "Interactive display adjustment" e di lasciare la calibrazione precedente (di qualche mese fa), disinteressandomi della luminosità massima e della temperatura del bianco effettive: in questo modo dovrei limitare i problemi sui gradienti. Il resto è tutto come da profilo Photo.

Beh, che dire? Molto comodo, ha impiegato molto tempo ma ha fatto tutto da solo. La temperatura del bianco è risultata circa 6200°C, e la luminosità circa 117cd/m2. La calibrazione L* ha prodotto una curva molto accentuata nella calibrazione in LUT (vedi il capitolo successivo sul programma Calibration Tester), però i gradienti non sono male. Le considerazioni le ho riportate nel capitolo sul gamma.

I reports prodotti dalla voce "Verify profile" sono in formato HTML e sono molto esaustivi. Tra le varie informazioni, vengono riportate quali siano le tacche (e quindi i colori) più problematiche.

Il report di dispcalGUI, molto professionale.

Calibration Tester di X-Rite

Potete scoprire se la vostra scheda video ha una LUT separata per i tre canali e visualizzare le curve di calibrazione in essa contenuta mediante il programmino gratuito "Calibration Tester" di X-Rite. scomprimete il file zip in una cartella e lanciate il programma "CalibrationTester.exe". Il suo funzionamento è immediato: con il pulsante "Refresh" si visualizza la situazione attuale della LUT, con il pulsante "Reset" si resetta la LUT (come il comando di Argyll dispwin -c).

LUT caricata con i dati di calibrazione (profilo con gamma 2.2). Si noti che le rette dei 3 canali RGB sono leggermente distorte, e che le tre colonne a destra non hanno i numeri perfettamente uguali.

LUT resettata: adesso abbiamo tre rette perfette a 45° e i numeri nella tabella a destra sono uguali per le tre colonne.

Il fatto che i dati di calibrazione per un profilo con gamma 2.2 siano molto vicini a quanto contenuto in una LUT resetta

Dando un'occhiata alle ultime righe della tabella si nota che i valori non arrivano al valore massimo 65535 ma si fermano prima: come avevo sospettato, Argyll (quando abbiamo eseguito il comando dispcal) ha utilizzato la calibrazione anche per limitare leggermente la luminosità massima. Se andiamo a rivedere il log ne abbiamo conferma:

Commencing device calibration ... Brightness error = 0.954970 cd/m^2 (is 130.954970, should be 130.000000) ...

Potremmo quindi migliorare il profile eliminando il vincolo di luminosità (non è fondamentale se è 130cd/m2 o 132cd/m2) e rifacendo l'intera procedura. La prossima volta...

Aggiornamento: qui sotto la curva relativa alla calibrazione L*, ottenuta durante gli esperimenti con dispcalGUI.

LUT caricata con i dati di calibrazione per L*. Si tratta ora di curve abbastanza distanti dalle rette iniziali.

ICC Profile Inspector

Le specifiche Icc sono diventate standard internazionale nel 2005, con la norma ISO 15076. Purtroppo i dati interni dl profilo sono salvati in formato binario, e non sono leggibili direttamente da un normale edito di testo tipo Notepad, ma devono essere "estratti" da appositi programmi.

Per chi volesse analizzare puntigliosamente il contenuto del profilo ICC appena creato e avere conferma di quanto impostato nei vari comandi di Argyll, vi consiglio di provare l'utility gratuita "ICC Profile Inspector" direttamente dal sito ICC.

Ecco i dati interni del nostro profilo tipo "independent gamma curves + matrix", opzione "-ag" del comando colprof di Argyll.

Ecco i dati di un profilo a tabella (tipo "cLUT" in LAB), opzione "-al" del comando colprof di Argyll.

Cosa resta da fare?

Utilizzo questo capitolo per segnarmi alcune note su quello che potrei fare in futuro per migliorare i profili ICC o altre attività collaterali. Se avessi aspettato di aver seguito anche queste nuove direzioni, questo articolo non avrebbe mai una data di pubblicazione...

Ovvio che se volete potete procedere per conto vostro: sarei molto felice di riportare le vostre osservazioni in questo articolo, anche se avete monitor o strumenti diversi. Credo che integrerò l'articolo alla prossima profilazione del monitor. Se avrò tempo :-)

Links utili

PhotoActivity

PhotoActivity è uno dei migliori siti sulla gestione del colore e argomenti correlati. In realtà è un negozio online, ma con una forte propensione alla divulgazione, non esitate a cercare e chiedere nel forum sul sito, troverete gente ben disposta e preparata, non ultimo Alberto, il titolare. Vi segnalo gi articoli più interessanti.

Mauro Boscarol

Il sito più importante nel panorama italiano sulla gestione del colore è senza ombra di dubbio quello di Mauro Boscarol, una divinità del settore. In realtà gestisce vari siti: il suo sito professionale, il suo blog, il forum colore digitale e la WikiColore. Nel blog ci sono svariati micro-articoli, tutti estremamente interessanti: difficilmente non troverete risposte alle vostre domande. Vi indico gli interventi correlati a quest'articolo.

Altri links

Torna alla pagina principale degli articoli
Copyright 2005-2012, Andrea Olivotto
Last modified: 04.03.2012 14:46:48