GuideHardwareInformaticaMondo Linux

Profilazione del monitor da linea di comando con Argyll CMS

 Se si possiede un colorimetro e vogliamo profilare il nostro monitor si può usare DisplayCAL che è una GUI per Argyll CMS. È facile da usare anche senza sapere troppo su come funziona il Color Management System (CMS). Però DisplayCAL è poco mantenuto e non completamente affidabile in Linux. Qui propongo un tutorial di come usare Argyll da linea di comando. Sono pochi passaggi e in teoria può essere sufficente fare un copia/incolla dei comandi presentati, ma vi avverto, il Color Management è difficile da gestire bene. Si rischia di rendere inutile tutto il processo di calibrazione, che è molto lungo, ottenendo risultati peggiori di quelli di partenza. Consiglio quindi di approfondire il suo funzionamento, tramite i molti tutorial in rete, per arrivare alla documentazione di Argyll che è completa ma anche complicata.
Cominciamo, ma vi avverto che sarà un tutorial piuttosto lungo.

1- Lasciare acceso il monitor per almeno mezz’ora per stabilizzare i colori. Portare a default (factory reset) tutte le impostazioni che offre e tutte le regolazioni che abbiamo fatto tramite menù OSD. Particolarmente importante e togliere i controlli dinamici del gamma, di riduzione del rumore e della nitidezza. Sono tutte azioni che alterano il segnale e influenzano la successiva fase di calibrazione. Vedere nelle specifiche tecniche del monitor quale temperatura di colore supporta, qual’é la sua luminanza in Cd/m2 (candele al metro quadro), gli spazi colore supportati e il tipo di illuminazione backlight. In genere sono a white LED, raramente GB-LED e ormai quasi estinti quelli a CCFL, cioè neon fluorescenti. Cercare di mettere in penombra la stanza e di evitare variazioni luminose (io per es. spengo l’illuminazione della tastiera…)

2- Togliere eventuali profili colore caricati nel sistema, per esempio tramite colord o Gnome-color-manager. Dare anche il comando di Argyll:

$ dispwin -c

che elimina le LUT caricate sostituendole con una lineare, ottima base di partenza per la profilazione.

3- Se il monitor presenta la possibilità di regolazione tramite OSD, dobbiamo scegliere due possibili strade di calibrazione:
i) Regolare il monitor prima di iniziare la calibrazione, magari aiutandoci anche con qualche schermata test per monitor LCD. Scrivere i valori impostati in modo da ricordarli in successive profilazioni. Durante la calibrazione non toccheremo più il menù OSD. È la strada che farò io, per non complicare e allungare le spiegazioni. nel mio caso sono arrivato al valore di 70% per la luminosità e di 98%; 96% e 98% per i colori di Gain RGB. Attenzione, modifiare solo il Gain e non Hue/saturation. Se il monitor non ha questi parametri lasciare tutto inalterato.
ii) Lasciare il monitor a default e poi fare le regolazioni durante la fase di calibrazione. Questa può essere un’operazione facile e veloce oppure lenta e complicata. Se acquisiamo una buona esperienza nel farla, potrebbe portare a risultati migliori, ma se non la sappiamo gestire potrebbe portare a complicazioni.

4- Scaricare i dati spettrali (file .ccss) o le matrici di colore (.ccmx) del colorimetro da noi usato. Per esempio gli X-Rite fanno scaricare il loro software i1ProfilerSetup.exe e Datacolor il loro Spyder5Pro_5.5_Setup.exe.
Come potete vedere sono eseguibili per MS Windows (e MacOS) e non per Linux. Non importa, Argyll possiede un comando che estrae da questi exe i dati spettrali che ci servono. Consideriamo di usare una cartella “cal” dove mettiamo l’eseguibile e anche tutti i prodotti della calibrazione:

$ oeminst -v /home/USER/cal/i1ProfilerSetup.exe

Adesso ci troviamo i nostri file ccss o ccmx in ~/.local/share/Argyll e ci resteranno finché non disinstalliamo Argyll.

5- Colleghiamo la sonda ad una presa USB e lasciamola tappata, senza metterla nello schermo. Diamo il comando:

$ dispcal -?

Per avere tutte le opzioni del comando. Il parametro -c indicherà il dispositivo collegato; nel mio caso 1 rappresenta lo Spyder5 e quindi userò -c1.  Il parametro -y indicherà tuti i file ccss o ccmx che il nostro colorimetro supporta. Per scegliere quello adatto al nostro monitor (con la sua tipica backlight) dovremo cercare notizie su internet, per esempio nel sito di Argyll o DisplayCAL o del produttore della sonda. Nel mio caso occorre il file indicato con 2 e quindi userò anche -y2.

6- Iniziamo la fase di calibrazione, dove alcune patch colorate a schermo (chiamate anche Tatget) verrano analizzate per scoprire come vengono lette dal colorimetro. In questo modo il monitor verrà “caratterizzato” e ogni segnale di colore/luminosità che gli arriva verrà riprodotto a schermo secondo le tabelle di corrispondenza colore create in questa fase. Portiamoci dentro la cartella ~/cal e diamo il comando:

$ dispcal -v -c1 -y2 -t 6500 -b 120 -qh -gs -X ~/.local/share/ArgyllCMS/file.ccss  monitor_colorspace_data

-v indica la modalità ‘verbose’; -c1 e -y2, come già detto, caratterizzano il mio colorimetro. -X /path/to/ccss indica ad argyll dove prendere il file ccss da caricare; -t 6500 indica la T colore ed in genere prendiamo la luce diurna D65 che ha proprio una temperatura colore di 6500K. -b indica la luminanza in candele per metro quadro e buoni valori sono 120 per video e 80 per stampe fotografiche. -qh indica di usare una alta qualità nelle letture e -gs indica lo spazio colore sRGB. Si possono usare anche -g709 per Rec 709; -g240, ecc. Infine monitor_colorspace_data indica il nome da noi scelto per il file di calibrazione .cal prodotto (chiamato cabfile). Per es. per me potrebbe essere Dell_sRGB_10_07_2022. Ma naturalmente la scelta del nome è libera.
Nel terminale apparirà la scritta di posizionare la sonda sulla patch grigia che è comparsa al centro dello schermo, poi premiamo un tasto qualsiasi per proseguire; io userò sempre SPACE. A terminale compare una lista di 8 azioni da compiere, la maggior parte serve a regolare il monitor (soprattutto le opzioni 2,3 e 4), ma visto che noi lo abbiamo già fatto in precedenza, salteremo tutto e proseguiremo scegliendo 7). Questa fase può durare da mezz’ora a più di un’ora e alla fine produrrà un file monitor_colorspace_data.cal collocato in ~/cal.

7- Adesso dobbiamo creare i target colorati che sono alla base della profilazione successiva. Il comando è semplice e veloce:

$ targen -v -G -d3 monitor_colorspace_data

-G crea un prodotto di qualità a scapito del tempo, ma visto che comunque è un’operazione veloce, conviene usarlo. -d3 indica l’uso delle patch, il numero 3 corrisponde a finalità di video, come serve a noi, 2 serve se la destinazione fossero stampe RGB, 4 se sono stampe CMYK, ecc. monitor_colorspace_data è il cabfile creato precedentemente e va messo senza estensione. Di default vengono create 836 patch, che garantiscono una buona qualità; ottima da 1000 in su. Possiamo indicarle con il parametro -f1000. Io ho scelto la quantità std e non c’è bisogno di indicarla. In pochi secondi, un minuto al massimo verrà creato in ~/cal un file con estensione .t1d, per esempio monitor_colorspace_data.t1d.

8- La calibrazione continua con il comando dispread in cui vengono letti i target e cofrontati i loro valori RGB assoluti con quelli visualizzati dallo schermo. Si crea così un file di calibrazione che caratterizza il nostro monitor. Al valore assoluto del colore facciamo corrispondere il valore visualizzato dal nostro monitor, che non è detto sia esattamente uguale al valore assoluto. In realtà viene caratterizzata la coppia Monitor/scheda video perché entrambe contribuiscono al segnale video. Se si cambia una delle due componenti dovremo fare una nuova profilazione.

$ dispread -v -H -c1 -y2 -F -k monitor_colorspace_data.cal  -X ~/.local/share/ArgyllCMS/file.ccss monitor_colorspace_data

l’opzione -H serve a fare letture dei target ad alta risoluzione, ma il mio Spyder5 non le supporta e quindi si può omettere. -F scurisce tutto il background del display per evitare luci spurie. -c1 -y2 e -X /path/ si sono già viste precedentemente. -k cabfile.cal indica il file di calibrazione creato precedentemente, per es. moitor_colorspace_data.cal; notare che qui occorre mettere l’estensione. Infine si mette il nome del file prodotto dal comando, che avra estensione .t3d. Io uso ancora il nome monitor_colorspace_data (senza estensione). Se avevamo tolto il colorimetro dallo schermo (ma non scollegarlo mai dalla USB!) si deve posizionarlo nuovamente e premere SPACE. Questa fase è la più lunga e con 836 target può arrivare alle 2 ore.

9- Infine arriviamo alla fase di profilazioe dove otterremo il profilo colore .icc.

$ colprof -v -qh -as -O monitor_colorspace_data.icc monitor_colorspace_data

-qh indica un altà qualità di misurazione (si può usare anche -qu(ltra) ma è troppo lento). -as indica l’algoritmo usato per ottenere il profilo colore; -as indica la formazione di una curva+matrix, se il monitor le supporta si può usare -aX che oltre alla curva+matrix produce anche una LUT. L’esecuzione del comando è piuttosto veloce e, a terminale, dobbiamo cercare il valore dell’errore medio (DeltaE o AvgErr). Più è piccolo il suo valore e meglio è: sotto 1,0 è ottimo, sopra 2,0 è inaccettabile. finalmente abbiamo ottenuto il nostro profilo colore, per es. monitor_colorspace_data.icc. Adesso si può scollegare la sonda dall’USB.

10- È consigliabile fare una verifica del profilo colore ottenuto creando un log dove andare a leggere tutte le matrici di conversione colori (inutile e complicato) ma anche il valore medio del DeltaE (molto utile).

$ profcheck -v2 -k -w monitor_colorspace_data.ti3 monitor_colorspace_data.icc > monitor_colorspace_data.log

Notare che in questo comando sono state scritte tutte le estensioni. -v2 indica il livello di verbosità; -k il cabfile e -w crea un ulteriore file di visualizzazione di tipo X3DOM.

11- Infine possiamo caricare il profilo da colord/gnome-color-manager oppure da dentro Argyll con il comando:

$ dispwin -I monitor_colorspace_data.icc

seguito da:

$ dispwin -L

Se abbiamo creato anche una LUT.
Siate sicuri che il sistema o i vari programmi che supportano i profili icc ne carichino soltanto uno, altrimenti avremo riproduzioni falsate nei colori e soprattutto nella gamma.

Ecco, è tutto. Adesso avete un monitor profilato. È solo una piccola parte di un Color Management, ma almeno siamo sicuri che sul nostro schermo verranno riprodotti fedelmente i colori provenienti da diverse fonti esterne.

Marco Giannini

Quello del pacco / fondatore di Marco’s Box