Gestione del colore su GNU/Linux
NOTA: Questo post è sostanzialmente la traduzione di una pagina su un blog (http://blog.pcode.nl/2012/01/29/color-management-on-linux/). Tradotta al volo con l'ausilio di google translator e corretta-rivista "on the fly", potrebbe contenere ancora degli orrori grammaticali e sintattici.
Edit del 7-3-2011: ho leggermente modificato il post, integrando qualcosa da http://en.wikipedia.org/wiki/Linux_color_management
Edit del 7-3-2011: ho leggermente modificato il post, integrando qualcosa da http://en.wikipedia.org/wiki/Linux_color_management
Sembra che ci sia molta confusione su ciò che è la gestione del colore, che cosa si deve fare, e più in particolare come la si usa su Linux. La maggior parte delle informazioni di seguito è genericamente
applicabile, mentre nei casi in cui devo essere specifico mi concentrerò su
Ubuntu / GNOME / Unity.
La prima cosa da evidenziare è la semplice domanda "che cosa il color management dovrebbe fare per me?". La gestione del colore è usata per ottenere risultati coerenti e affidabili nel flusso di lavoro che prevede il passaggio da dispositivo a dispositivo (fotocamera, monitor, stampante).
Quindi, se prendo una foto con la mia telecamera "gestita" in termini di colori, la
visualizzo sul mio monitor "gestito" dandola in pasto ad un software di image editing (CinePaint, Digikam, GIMP, Krita, Scribus, ecc.) e la stampo con la mia stampante "gestita", dovrebbe apparire quasi la stessa ovunque. Ciò non implica che l'immagine abbia un aspetto migliore (qualunque cosa ciò possa significare...).
Altra cosa che la gestione del colore non può fare è trasformare un'attrezzatura scadente in qualcosa di migliore. Qualsiasi soluzione di gestione del colore deve sempre lavorare entro i limiti delle attrezzature che sta gestendo.
Naturalmente ogni soluzione per la gestione del colore cerca di
compensare i limiti di un dispositivo come meglio può, ma ci sono dei
limiti intrinseci. Quando questi limiti vengono raggiunti, i colori non vengono più riprodotti.
Inoltre il passaggio dai colori prodotti da un dispositivo a quelli prodotti da un altro dispositivo è un'operazione matematica che può essere condotta in vari modi, e che non necessariamente produce risultati che l'occhio umano considera "migliori".
Inoltre il passaggio dai colori prodotti da un dispositivo a quelli prodotti da un altro dispositivo è un'operazione matematica che può essere condotta in vari modi, e che non necessariamente produce risultati che l'occhio umano considera "migliori".
Ora dobbiamo definire un po' di terminologia corretta.
La calibrazione è la modifica delle caratteristiche di un dispositivo per
soddisfare una certa specifica (per esempio cambiando la luminosità di un
display).
La caratterizzazione è la registrazione del comportamento di dispositivi per la correzione via software. Questi termini sono spesso usati in modo intercambiabile erroneamente (anche da me, scusatemi se faccio io). Il risultato finale della caratterizzazione è un profilo (standard) di colore ICC.
Mentre praticamente qualsiasi dispositivo può essere gestione per il
colore, mi concentrerò sui monitor per il resto di questo articolo.
Per gestire un display a colori è necessario un dispositivo in grado
di "leggere" (caratterizzare) le caratteristiche del display. Per caratterizzare il display ci sono due tipi di dispositivi che è possibile utilizzare: colorimetri e spettrofotometri.
I colorimetri sono il dispositivo più comune per caratterizzare display,
in quanto sono abbastanza convenienti (100-200 euro). I colorimetri hanno i loro limiti, sono in sostanza solo una macchina
fotografica digitale con una finalità molto speciale, con solo una manciata di
pixel.
Mentre personalmente non ho mai avuto problemi, ho letto di vecchi
colorimetri che hanno problemi con i nuovi tipi di tecnologia di
display, come gli schermi retroilluminati a LED, e alcuni colorimetri entry
level potrebbero non funzionare anche con display professionali con ampia
gamma (ne riparleremo più avanti).
L'altra opzione è uno spettrofotometro. Questi dispositivi sono
piuttosto cari. Gli spettrofotometri entry level come il ColorMunki Photo,
sono ad un prezzo leggermente al di sotto di 400 euro (se vedete qualsiasi
dispositivo a un prezzo significativamente più basso, è probabile che il
dispositivo non è uno spettrofotometro vero). Gli spettrofotometri effettivamente leggono lo spettro completo della luce
che ricevono, il che significa che producono informazioni molto più
dettagliate. Questo significa che gli spettrofotometri difficilmente saranno ingannati dalle nuove tecnologie.
La maggior parte degli spettrofotometri include anche una sorgente luminosa
di riferimento, il che significa che possono illuminare (per esempio) la
carta, in modo che possano essere utilizzati anche per "profilare" stampanti (in
combinazione con inchiostro e carta).
Ora abbiamo bisogno di spiegare qualche concetto in più.
Quindi, prima dirò quanto è veramente sciocco parlare (per esempio) di RGB 245/0/0. Immaginate di possedere una macchina, e di essere bloccati con il serbatoio vuoto. Utilizzando l'ultima goccia di benzina si cerca di arrivare a un distributore di benzina. Facciamo l'esempio in Europa, per cui dite al benzinaio "metto 40", in modo che lui riempia il serbatoio con 40 litri di benzina.
Se qualcuno che vive negli Stati Uniti dice la stessa cosa ad un
addetto di un distributore di benzina degli Stati Uniti, otterrà
40 galloni di benzina. Quindi verrebbe da dire "beh, hai detto bene, è RGB..."
Ma in realtà RGB non significa nulla. Dal momento che RGB dice solo che si stanno definendo i colori in tre componenti: rosso, blu e verde. Non dice nulla su quanto il rosso è rosso, quanto è verde il verde più verde, né blu il blu più intenso.
Per definire questo, è stato creato il concetto di spazio di colore. Uno
spazio di colore definisce la gamma di colori che un dispositivo è in
grado di riprodurre, questo è anche chiamato il gamut di un dispositivo (la wikipedia inglese è più esaustiva a riguardo: http://en.wikipedia.org/wiki/Gamut). Il modello di colore RGB è definito nel modello di colore CIE 1931 XYZ. Si fa così perché lo spazio di colore XYZ comprende tutti i colori l'occhio umano medio può vedere. Tutti gli spazi di colore RGB sono definiti come un sottoinsieme dello spazio di colore XYZ. Ancora più importante, negli anni '90 due dei più importanti spazi di colore sono stati definiti: sRGB (da Microsoft e HP) [si può vedere anche la voce inglese di wikipedia: http://en.wikipedia.org/wiki/SRGB], e AdobeRGB (da, erhm ... beh ... Adobe) [idem: http://en.wikipedia.org/wiki/Adobe_RGB_color_space]. sRGB era più o meno definito come il medio comun denominatore della maggior parte dei display a prezzi accessibili. In quel tempo qualsiasi cosa non esplicitamente definita in uno spazio colore specifico era "definita" in sRGB.
D'altra parte, AdobeRGB è stato definito per comprendere molti più
colori, con lo scopo principale di coprire quanti più colori le soluzioni di
stampa professionali potessero coprire.
Oltre a definire che l' RGB è in uno spazio di colori, c'è
ancora il problema che l'occhio umano non avverte la luce in modo
lineare, quindi abbiamo bisogno della correzione di gamma [http://en.wikipedia.org/wiki/Gamma_correction] per fare in modo che le immagini non appaiano come un pasticcio torbido. Di questi tempi un valore di gamma pari a 2.2 è universalmente accettato come standard per i display. Ci sono alcune avvertenze però.
Possiedo un netbook con un LCD di basso costo che
sembra avere una gamma nativa di visualizzazione di circa 1,8, il che
significa che manca di contrasto.
E poi c'è la questione del punto di bianco, poiché non vi è nessun bianco "giusto".
Per la maggior parte dei casi, un punto di bianco a 6500K (questo è vero
almeno sia per sRGB che AdobeRGB) è buono come standard bianco
neutro.
L'aumento delle temperature in Kelvin dà un look blu ai display (cosa comune
con i display portatili), e temperature più basse in Kelvin danno al display un aspetto più giallo.
E per ultimo c'è la questione della luminanza, che è un termine sciccoso per la luminosità.
Se nel lavoro il colore è fondamentale, basta mettere lo schermo ad
un livello confortevole (di solito non troppo brillante), se il vostro
lavoro è critico per il colore, è cosa comune calibrare il monitor a 120cd/m2.
Detto questo, ci sono alcuni problemi comuni da affrontare. Come ho detto il risultato di caratterizzazione è un profilo ICC. I profili ICC di solito hanno l'estensione del file .Icc o su Windows .ICM. A seconda del software che ha generato il profilo, i profili possono essere nelle versioni 2 o 4. Almeno su Linux (ma anche per versioni precedenti di software
proprietari), molti programmi non possono applicare correttamente le
versioni 4 dei profili, quindi è meglio al momento procedere con la versione 2. Fortunatamente ArgyllCMS, la suite per il profiling open source genera la versione 2 dei profili di default. Ovviamente i profili ICC sono cross-platform, quindi il profilo generato sotto un sistema operativo può essere iportato senza problemi sotto linux, con l'unica attenzione legata al fatto che i colori dipendono sia dal monitor che dalla scheda video, quindi il profilo è dell'intera sezione grafica, non solo del monitor o della scheda video.
Inoltre, è necessario essere consapevoli che la maggior parte dei
browers web non sono a conoscenza della gestione del colore (Safari e
Firefox dalla versione 3.5 sono l'eccezione se correttamente configurati). Il W3C ha precisato che "il web" dovrebbe essere in sRGB .
Ciò significa che si deve caricare immagini sui siti Web, solo in sRGB. Se
si caricano immagini che non sono sRGB, non possono apparire come dovrebbero ai potenziali visitatori del sito (con risultati variabili a seconda del browser che
usano). Un problema comune è dato dal fatto che la gente è solita caricare le immagini sul web in AdobeRGB, ricevendo reclami relativi al fatto che le immagini sembrano desaturate (in quanto il
browser web sta assumendo che siano sRGB, anche se non lo sono).
Ora torniamo alla creazione dei profili per i display. Ci sono diversi modi per ottenere questo risultato su Linux. E' possibile farlo manualmente con ArgyllCMS , che è una suite di strumenti a riga di comando. Ci sono tuttavia alcuni front-end disponibili. I due più importanti sono dispcalGUI e GNOME Color Manager .
Entrambi gli strumenti hanno il proprio target di destinazione. DispcalGUI si rivolge a utenti avanzati che conoscono davvero la
gestione del colore dentro e fuori. Mentre GNOME Color Manager si rivolge agli utenti entry level, e cerca di rendere tutto il più semplice possibile.
Per essere franchi, se tutto in questo articolo non è veramente ovvio
per voi, la cosa migliore è probabilmente GNOME Color Manager.
GNOME Color Manager fornisce generalmente default sensati, e guida
l'utente attraverso il processo tramite una procedura guidata.
Infine, alcune informazioni sulla anatomia generale dei profili dei display. I profili dei display, in particolare, hanno tre componenti importanti: VCGT, TRC e la matrice XYZ.
Il primo bit, il VCGT, spesso chiamato VideoLUT, è una tabella
di ricerca che è stata progettata per correggere il bianco sullo schermo e le
potenziali aberrazioni tra i canali R, G e B. Il VCGT viene caricato nel driver X11, e funziona solo se il driver è in modalità 24 bit.
Quando il VCGT viene caricato in X11 (di solito nel login manager o
appena dopo l'accesso) si dovrebbe vedere che i colori del display si spostano
un po'.
Il VCGT è la sola parte del profilo che risulta vantaggioso per tutte le
applicazioni (per come viene applicato da X11), mentre le altre due parti devono
essere attivamente applicate dall'applicazione (se configurata
correttamente, ne riparleremo più avanti). Abbiamo quindi il TRC che fondamentalmente modella la curva di gamma dello schermo. E infine la matrice XYZ determina il massimo rosso, blu e verde per il particolare schermo.
E' possibile avere l' XYZLUT in alternativa per ottenere una correzione più
dettagliata, però non è raccomandabile, poiché non tutte le
applicazioni applicano correttamente l' XYZLUT.
Dal momento che le ultime due parti (TRC + XYZ) devono essere applicate
dalle applicazioni di gestione del colore, hanno
bisogno di essere configurate correttamente.
Per facilitare questa operazione c'è una cosa chiamata la specifica
XICC, che consente un profilo "attivo" da caricare anche questo in X11. Questa procedura è ancora
molto rudimentale, in quanto solo il file viene
caricato in _ICC_PROFILE (che è fondamentalmente come una
variabile d'ambiente), in modo che può essere facilmente caricato da
applicazioni di gestione del colore. Invece, le applicazioni normalmente utilizzano la libreria LittleCMS su Linux per applicare TRC e matrice XYZ.
GNOME Color Manager (via GNOME Settings Daemon) assicura che il VCGT di un
profilo viene caricato nel driver video X11, così come l'impostazione
dell'atom _ICC_PROFILE. È possibile verificare se l'atomo _ICC_PROFILE è stato correttamente impostato utilizzando xprop:
# Xprop-display: 0.0 14-len-root _ICC_PROFILE
E' noto che i driver proprietari (nVidia / ATI) possono
causare problemi, e anche configurazioni dual head possono complicare le cose.
Ora, alcune applicazioni fanno la gestione del colore di default
(assumendo che l'atom _ICC_PROFILE sia stato correttamente impostato), ad esempio Eye of GNOME e Darktable. Altre applicazioni sembrano ignorare l'atomo _ICC_PROFILE di default, come Firefox e GIMP.
Per verificare se il profilo viene applicato, è necessaria una buona immagine di test per valutare. Io consiglio vivamente SmugMug per questo.
Nel caso particolare di GIMP, caricare l'immagine in GIMP, e andare in Edit e Preferenze, sezione Color Management.
Poi selezionare la casella "Cerca di utilizzare il profilo del monitor di sistema" guardando l'immagine. Nella maggior parte dei casi si
dovrebbe vedere un cambiamento (se no utilizzare xprop per controllare
l'atom _ICC_PROFILE), e soprattutto si dovrebbe essere in grado di
distinguere le chiazze grigie una dall'altra nella parte superiore.
Per ultima c'è la questione delle immagini che vengono editate su
display non calibrati, cosa probabilmente vera per il 99% di tutte le
immagini sul web.
Se l'autore ha un display a basso contrasto e non gestito, è probabile
che avrà aumentato il contrasto in una particolare immagine.
Quando si dà un'occhiata a quella immagine su un monitor con i colori gestiti (e con il contrasto corretto), l'immagine può sembrare troppo contrastata.
E il rovescio della medaglia, se l'autore aveva un display ad
elevato contrasto non gestito, è che è probabile che abbia diminuito il
contrasto in una particolare immagine.
Quando si dà un'occhiata a quella immagine con un
display profilato opportunamente (con un contrasto appropriato), può sembrare priva di contrasto. Quindi non è strano avere discrepanze tra configurazioni con i profili di colore gestiti o non gestiti.
Con questo testo spero di aver fatto luce sulla gestione del
colore in generale, e su alcune delle questioni specifiche riguardanti il
suo utilizzo su Linux.
Nessun commento:
Posta un commento
Puoi commentare quello che vuoi, ed io sono libero di pubblicarlo o meno.