Calibrer un écran avec Argyll CMS
Introduction
Argyll CMS est actuellement le logiciel incontournable permettant le calibrage de la chaîne graphique sous Linux en lignes de commande. Nous allons aborder ici la seule question du calibrage d'un écran, mais ce logiciel permet de calibrer également scanners et imprimantes. Avant toute chose, voici quelques questions/réponses présentant les points les plus importants à avoir en tête avant de calibrer son écran:
Sachez aussi qu'Ubuntu intègre un utilitaire graphique permettant de réaliser facilement une calibration et que le projet DisplayCAL propose d'offrir une interface graphique dédiée à Argyll CMS pour le calibrage d'un écran. Dans tous les cas, le processus reste similaire et la difficulté réside essentiellement dans le paramétrage. Sur ce point, les utilitaires graphiques n'offrent pas de simplification réelle et le processus doit être compris pour être utilisé à bon escient. Ce tutoriel présente la démarche à suivre pour un écran LCD. Il faut noter que l'approche est un peu différente pour un écran CRT, notamment au niveau des réglages à effectuer sur l'écran. Pour cette raison vous trouverez certaines remarques spécifiques, indiquant qu'il faut adapter un peu les choses dans ce cas.
Installer Argyll CMS
NOTA préalable : le logiciel displayCAL https://displaycal.net/ permet de calibrer en mode graphique ( pas de console ). Il est aussi disponible dans la logithèque Ubuntu.
De même, l'utilitaire graphique d'Ubuntu vous demandera automatiquement d'installer ArgyllCMS : vous pouvez donc sauter cette étape.
Pour installer Argyll CMS, Installez les paquets argyll
Connecter la sonde
Cas particulier de la sonde Spyder2:
L'utilisation de ce matériel nécessite l'installation du firmware fourni par le constructeur et vendu avec la sonde. Pour ce faire il faut introduire le CD d'installation de la sonde dans le lecteur et lancer les droits d'administrateur la commande spyd2en
préalablement installée:
spyd2en
Attention: Il semblerait que 'spyd2en' ai été remplacé par 'oeminst'.
Si vous n'avez pas de lecteur optique, il faut copier son contenu sur une clé USB avec un autre ordinateur et lancer spyd2en
avec le chemin /chemin_de_la_clé/setup/setup.exe
en argument, par exemple avec les droits d'administrateur :
spyd2en /media/disk/setup/setup.exe
Et ensuite pour toutes les sondes:
Habituellement, la sonde est reconnue automatiquement.
Si vous avez installé Argyll CMS manuellement dans /usr/local/bin
sans passer par les dépôts, le logiciel n'a pas accès par défaut à la sonde, il faut lui donner cette permission en commençant par connecter la sonde (via USB) et en lançant la commande:
lsusb
Puis en repérant le port exact sur lequel est connecté la sonde, lancer avec les droits d'administrateur quelque chose du type:
chmod 666 /dev/bus/usb/002/004
Les 2 derniers numéros dépendant du port USB utilisé. En cas de difficultés notamment pour identifier la position de la sonde avec la commande lsusb
, il est également possible de lancer avec les droits d'administrateur la commande:
chmod 777 -R /dev/bus/usb
c'est moins propre, mais ça marche. Les commandes d'Argyll CMS sont maintenant prêtes à l'emploi.
Calibrer l'écran
Cette première étape consiste à régler physiquement 3 paramètres de l'écran: la température de couleur, la luminance et le gamma. S'assurer en premier lieu que la carte graphique est paramétrée de façon neutre, autrement dit que vous n'avez modifié aucun des paramètres par défaut parfois disponibles à travers le driver de celle-ci. Ensuite il faut se faire une idée des capacités réelles de son écran. La plupart des OSD propose de modifier la luminance et la température de couleur, plus rarement le gamma. Il faut aussi être conscient que les écrans grand public peuvent ne pas supporter de s'éloigner de leur point de fonctionnement natif, c'est à dire de leur réglage par défaut, même s'il est possible de modifier ces réglages à travers l'OSD. Si ce cas est avéré, ou dans le doute, laisser fonctionner l'écran nativement sous peine de dégrader l'affichage. Ce point est essentiel pour la température de couleur, il vaut mieux dans tous les cas utiliser le point de fonctionnement idéal de votre écran, que de le "torturer" et réduire son gamut (ensemble des couleurs que l'écran est capable d'afficher). Concernant la luminance, la problématique est un peu différente, puisque tout les écrans disposent d'une certaine souplesse à ce niveau avec le réglage de la luminosité! Enfin avant de réaliser toute mesure, l'écran doit fonctionner depuis plus de 20 minutes.
Tenant compte des informations précédentes, et suivant les préconisations de Jean Delmas et du site Négatif+, il est conseillé de régler son écran de manière à s'approcher des valeurs suivantes:
- Température = 6500 K
- Luminance = 85 Cd/m²
- Gamma = 2,2
La température de couleur n'est pas très importante pour une utilisation non professionnelle du moment qu'elle se situe entre 5500K et 6500K. La luminance devrait être supérieure à 80 Cd/m² mais ne pas dépasser 90 Cd/m². Le gamma natif de la majorité des écrans actuels est 2,2 mais il est possible d'être à 2,4 pour certains écrans. Dans ce cas il est préférable de revenir à 2,2 si vous en avez la possibilité, sinon ce sera corrigé par le profil ICC mais ce n'est pas l'idéal. Pour mesurer et vérifier ces paramètres sur un écran LCD, connecter la sonde et lancer la commande:
dispcal -yl -R
pour un écran CRT, il faut remplacer -yl
par -yc
et certains réglages supplémentaires sont à priori nécessaires. Si besoin, réaliser plusieurs séquences de réglage/mesure pour s'approcher au mieux des valeurs ci-dessus.
Caractériser l'écran et calcul du profil ICC
Avec l'utilitaire intégré à Ubuntu
Ouvrir 'Paramètres systèmes' et sélectionnez 'Couleur'.
S'affiche ici les différents périphériques concernés par la chaîne graphique, notamment écrans et imprimantes. Sélectionnez votre écran et, si vous avez connecté votre colorimètre, le bouton 'Calibrer…' est actif. En cliquant sur ce bouton la première fois, Ubuntu vous demande d'installer "Gnome-color-manager" ; en acceptant, il vous indique qu'il va aussi installer les paquets ArgyllCMS. Laisser l'installation de ces outils se poursuivre.
A noter que vous avez directement accès à une rubrique spécifique de l'aide d'Ubuntu en cliquant 'Pour en savoir plus' en haut à droite de la fenêtre, avec notamment les sondes de calibrations reconnues.
Vont ensuite apparaître une série de fenêtre vous posant quelques questions et vous informant de la progression. Il faut bien-sûr avoir positionné la sonde de calibration comme indiqué. La calibration démarre et va durer un temps variable suivant le niveau de précision choisi. Le nouveau profil est appliqué immédiatement à votre écran.
Avec DisplayCAL
En ligne de commande
Nous allons lancer une série de mesures qui auront pour but de caractériser les capacités de l'écran sur la base des réglages précédents. Ensuite un profil ICC pourra être calculé. Ici nous l'appellerons NomDuProfil.icc. C'est ce fichier qui sera pris en compte pour corriger l'affichage de l'écran. L'opération prendra environ 40 minutes au total, mais le temps dépend de votre sonde et des paramètres fournis aux fonctions dispcal
et dispread
. Pour commencer lancer:
dispcal -v -yl -m -g2.2 NomDuProfil
comme précédemment pour un écran CRT, il faut remplacer -yl
par -yc
. En supprimant l'option -m
la fonction dispcal
propose un menu permettant d'ajuster certains réglages avec l'OSD avant la caractérisation de l'écran. Cependant son utilisation s'avère en pratique délicate. dispcal
génére un fichier NomDuProfil.cal
dans le répertoire courant. Il sera possible de réutiliser ultérieurement ce fichier pour un prochain calibrage ce qui accélérera le processus de mesure (voir le paragraphe sur dispcal
pour plus de détails). Au lancement de la commande dispcal
une cible grise apparaît à l'écran permettant de positionner la sonde. Une fois celle-ci en place, on continue le processus en appuyant sur une touche autre que <Escape>
(idem avec dispread
). La série de mesures étant terminée, continuer avec:
targen -v -d3 -g50 -f400 NomDuProfil dispread -v -yl -k NomDuProfil.cal NomDuProfil colprof -v -as NomDuProfil
pour un écran CRT, il faut remplacer -yl
par -yc
dans dispread
. Les fonctions targen
et dispread
génèrent respectivement les fichiers NomDuProfil.ti1
et NomDuProfil.ti3
dans le répertoire courant. A partir de NomDuProfil.ti3
la fonction colprof
génére le profil ICC dans NomDuProfil.icc
. Pour finir, la fonction suivante appliquera le précieux profil au système:
dispwin /chemin du répertoire/NomDuProfil.icc
et pour ne plus l'appliquer:
dispwin -c
La fonction xcalib
totalement indépendante du projet Argyll CMS et disponible dans les paquets Debian/Ubuntu permet de réaliser également ces 2 dernières opérations. Elle permet de contourner le bug d'Argyll (toujours présent en date du 10/2017) qui empêche d'appliquer le profil créé avec dispwin.
sudo apt install xcalib xcalib /chemin du répertoire/NomDuProfil.icc
dispwin
comme indiqué ci-dessus. Il faudra également indiquer ce profil aux logiciels de retouche d'image que vous utilisez comme GIMP ou Bibble pour qu'ils en tiennent compte. Il est possible que certains économiseurs d'écran déchargent le profil en cours.
dispwin -d 2 /chemin du répertoire/NomDuProfil.icc
Les fonctions d'Argyll en détail
-p
de dispcal
et dispread
permettant de positionner la fenêtre de tests devient -P
en majuscule.
dispcal
Syntaxe de la commande:
dispcal [-options] inoutfile
Les valeurs cibles du calibrage étant fournies en paramètres, dispcal
exécute une série de tests à l'écran, et utilisant les valeurs mesurées par la sonde colorimétrique, créé une table de correspondance permettant à l'affichage d'atteindre ces valeurs cibles. Au lancement de la commande une cible carrée apparaît à l'écran permettant de positionner la sonde. Une fois celle-ci en place, on continue le processus en appuyant sur une touche autre que <Escape>
. Si l'option -m
n'est pas utilisée, un menu offrant une assistance pour les réglages de l'écran (température de couleur et luminance) sera proposé. L'usage de ce menu pour régler les canaux RGB indépendamment n'est pertinent que si l'on utilise une sonde de type spectrocolorimètre (dans ce cas l'option -H
doit être donnée en paramètre), et peut conduire à des réglages totalement aberrants avec des sondes comme les spyder2 ou EyeOne Display2. Noter aussi que les réglages du point noir sur un écran LCD n'ont rien d'usuel.
Principales options disponibles:
-v [level]
: cette option active le mode verbeux. -v2
permettra d'obtenir un plus haut niveau de verbosité.
-y c|l
: précise le type de l'écran, -yc
= CRT, -yl
= LCD.
-m
: permet de sauter l'étape du menu de réglage de l'écran.
-o [profil.icm]
: créé directement un profil ICC rapide de type matriciel (mais moins précis).
-O "description"
: fourni une "description" à profil.icm
créé avec l'option -o
.
-u
: permet de remettre à jour le fichier de calibrage NomDuProfil.cal
obtenu lors d'un précédent calibrage. Dans ce cas le calibrage sera écourté et reprendra, sauf nouveau paramétrage, les valeurs cibles indiquées initialement.
-q [lmh]
: permet de choisir le niveau de précision du calibrage. Par défaut la qualité moyenne est appliquée (-qm
). On obtiendra un plus haut niveau de précision en passant -qh
, mais il y aura plus de mesures et ce sera plus long. -ql
permettra à l'inverse de gagner du temps si besoin.
-t temp
: température de couleur cible du point blanc en K.
-b bright
: luminance cible du point blanc en cd/m².
-B bkbright
: luminance cible du point noir en cd/m².
-g gamma
: défini la valeur cible du gamma. En cas d'omission la valeur par défaut est 2.4, qui était la valeur usuelle des écrans CRT. Aujourd'hui cette valeur est devenue 2.2 avec les écrans LCD. C'est de plus le gamma des espaces sRGB et L*a*b. Il est donc très important de ne pas omettre ce paramètre est de bien indiquer -g2.2
à dispcal
. On pourra éventuellement remplacer cette option par -gs
pour obtenir directement la courbe de sRGB ou -gl
pour la courbe de L*a*b.
-G
: permet de conserver le gamma natif de l'écran. À utiliser à la place de -g
.
-p h,v,s
: défini la position et la taille de la fenêtre de test à l'écran. h,v: 0.0 = gauche/haut, 0.5 = centre, 1.0 = droite/bas, etc. s: 0.5 = demi-taille, 1.0 = taille normale, 2.0 = taille double, etc.
-H
: active le mode spectral haute résolution si disponible. Il faut disposer d'une sonde de type spectrocolorimètre pour profiter de cette option.
-F
: permet l'affichage de la fenêtre de test sur un fond d'écran noir. Conseillé pour les écrans CRT.
-r
: édite un rapport de mesures de l'écran calibré (prise en compte du profil ICC présent dans la carte graphique) puis fin de la fonction.
-R
: édite un rapport de mesures de l'écran non-calibré (annule le profil ICC appliqué) puis fin de la fonction.
targen
Syntaxe de la commande:
targen [-options] outfile
Génère un fichier .ti1
définissant un ensemble de valeurs cibles à tester. targen
peut être utilisé pour définir des valeurs tests des canaux pour les équipements RGB, CMY, CMYK, N-color ou grayscale. Le paramètre -d
suivi d'un numéro indique à targen
le type d'équipement à tester. Dans le cas d'un écran, il faut passer -d3
en paramètre, 3
spécifiant video RGB
à targen
.
Principales options disponibles:
-v [level]
: cette option active le mode verbeux. -v2
permettra d'obtenir un plus haut niveau de verbosité.
-d col_comb
: indique la configuration utilisée pour la formation des couleurs. Entrer -d3
pour un écran couleur.
-g steps
: nombre de valeurs tests sur la courbe des gris RGB ou CMY.
-f patches
: nombre total de cibles à fournir. Si ce paramètre n'est pas spécifié, la valeur par défaut est 836, ce qui est plutôt élevé pour le calibrage d'un écran.
dispread
Syntaxe de la commande:
dispread [-options] inoutfile
Affiche les fenêtres de tests à l'écran selon le fichier inoutfile.ti1
généré avec targen
, puis à partir des mesures retournées par la sonde colorimètrique fourni une charte de valeurs dans inoutfile.ti3
. Au lancement de la commande une cible carrée apparaît à l'écran permettant de positionner la sonde. Une fois celle-ci en place, on continue le processus en appuyant sur une touche autre que <Escape>
.
Principales options disponibles:
-v
: cette option active le mode verbeux.
-y c|l
: précise le type de l'écran, -yc
= CRT, -yl
= LCD.
-k file.cal
: applique le fichier de calibrage de l'affichage file.cal
pour effectuer les mesures.
-p h,v,s
: défini la position et la taille de la fenêtre de test à l'écran. h,v: 0.0 = gauche/haut, 0.5 = centre, 1.0 = droite/bas, etc. s: 0.5 = demi-taille, 1.0 = taille normale, 2.0 = taille double.
-H
: active le mode spectral haute résolution si disponible. Il faut disposer d'une sonde de type spectrocolorimètre pour profiter de cette option.
-F
: permet l'affichage de la fenêtre de test sur un fond d'écran noir. Conseillé pour les écrans CRT.
colprof
Syntaxe de la commande:
colprof [-options] inoutfile
Créé un profil ICC à partir de la charte de valeurs inoutfile.ti3
.
Principales options disponibles:
-v
: cette option active le mode verbeux.
-A "manufacturer"
: fourni le nom du constructeur du matériel.
-M "model"
: fourni le modèle du matériel.
-D "description"
: fourni une description. Par défaut inoutfile
.
-C "copyright"
: fourni un copyright.
-q lmhu
: niveau de qualité du profil. l
=low, m
=medium (défaut), h
=high, u
=ultra.
-a lxgs
: défini l'algorithme utilisé pour le calcul du profil. l
=Lab clut (défaut), x
=XYZ lut, g
=gamma+matrix, s
=shaper+matrix, G
= single gamma+matrix, S
=single shaper+matrix. Dans le cas d'un écran -as
semble être l'option la plus adaptée. Cependant l'utilisation de l'option par défaut (-al
) qui induit un calcul plus complexe ne pose pas de problème particulier.
dispwin
Syntaxe de la commande:
dispwin [-options] [calfile]
Cette commande a plusieurs fonctions interdépendantes. Lorsque un fichier .icc
, .icm
ou .cal
est donné en argument, dispwin
chargera le profil dans la Video LUT (Video Look Up Table). dispwin
permet également d'installer et de désinstaller le profil dans le système d'exploitation.
Principales options disponibles:
-v
: cette option active le mode verbeux.
-c
: désinstalle tout profil chargé dans le système d'exploitation et dans la Video LUT.
-V
: vérifie si un profil est actuellement chargé dans la Video LUT.
-I
: fourni le profil au système d'exploitation.
-U
: désinstalle le profil du système d'exploitation.
-L
: charge le profil fourni au système d'exploitation dans la Video LUT.
-D
: exécute en mode "deamon loader" pour le serveur X.
la documentation officielle
Le site officiel d'Argyll CMS fourni une documentation très complète, mais en anglais, de toutes les fonctions:
Références
Pour aller plus loin, ou obtenir d'autres informations:
- sur le web:
- livres (plus complet):
- La gestion des couleurs pour le photographe (Jean Delmas / éditions Eyrolles)
- Gestion des couleurs pas à pas (Jean Delmas / éditions Eyrolles)
Un article sur Argyll CMS est également disponible dans le magazine Linux Pratique n°56.
Foire aux questions
Quel bénéfice peut-on escompter en calibrant un écran?
Pour un graphiste ou un photographe professionnel, c'est indispensable pour obtenir un affichage fidèle des couleurs. Ici l'écran, maillon central de la chaîne graphique, permettra d'une part d'afficher les couleurs originales (ex: prise de vue) et d'autre part d'afficher les couleurs réelles du média de sortie (ex: tirage photo). Pour un amateur expérimenté, passionné ou encore rigoureux, un affichage fidèle des couleurs se justifie pleinement également, ne serait-ce que pour éviter de pratiquer un traitement d'image corrigeant les défauts de l'écran. Que ce soit pour une simple galerie web ou l'impression de vos travaux, des corrections hasardeuses sous l'effet d'un affichage non contrôlé, conduiront inévitablement à des résultats aberrants. A l'inverse un utilisateur multimédia conventionnel, ne retraitant pas spécialement d'images ou de photos, peut parfaitement se passer de cette démarche.
Quelle est l'importance de l'écran?
La qualité de l'écran est essentielle. On ne peut pas envisager un travail de retouche sérieux si l'on ne dispose pas d'un écran conçu pour afficher de façon complète et précise les espaces couleur habituels sRGB et AdobeRGB. Pour les écrans à dalle TN, la position de l'utilisateur face à l'écran influe grandement la perception de l'image, ce qui rend aléatoire le travail effectué. Calibrer un écran grand public revient à essayer de faire au mieux avec les limites inhérentes et incontournables du matériel utilisé. Pour éviter cet écueil, tout professionnel ou amateur pointu devra se tourner vers un écran plus haut de gamme. Eizo et Lacie sont actuellement les deux grandes marques du monde des écrans destinés au traitement d'image. A défaut de pouvoir utiliser ce type de matériel, on peut cependant éviter les écrans d'ordinateur portable, qui sont une catastrophe en la matière, et les écrans brillants qui augmentent le pouvoir de nuisance des réflexions. Il faut être conscient aussi que l'environnement dans lequel vous vous trouvez n'est pas complètement négligeable. Voici quelques liens pour en savoir plus:
Quelle sonde utiliser avec Argyll CMS?
Les sondes suivantes sont assez usuelles: Spyder2, Spyder3 et EyeOne Display 2. Argyll CMS supporte toutes ces sondes. La sonde Spyder2 est moins précise que les sondes EyeOne Display et Spyder3 pour les écrans LCD. La sonde spyder2 nécessite l'installation supplémentaire du driver constructeur, mais c'est expliqué dans le tutoriel. Voici la liste de toutes les sondes supportées:
- X-Rite
- Famille de sonde i1 pour professionnel
- Datacolor Colorvision:
- Spyder (1, 2 anciens) 3 , 4 ou 5, moins cher dans les versions express mais offrant moins de paramètres (ne mesurent pas la lumière ambiante)
- Autre:
- Colorimètre HCFR
Pour plus d'info, consulter la documentation d'Argyll.
Quel rôle joue la carte graphique?
La carte graphique est un matériel incontournable entre le système d'exploitation et l'affichage produit par l'écran. Les drivers de celle-ci ainsi que leur configuration impactent directement la colorimétrie de l'écran. Pour cette raison s'assurer en premier lieu que la carte graphique est paramétrée de façon neutre, et qu'elle ne modifie pas de façon inadaptée l'affichage. Appliquant un même profil ICC sur un même écran mais utilisant 2 ordinateurs différents, c'est à dire 2 cartes graphiques différentes ou configurées différemments, le résultat de l'affichage sera vraisemblablement différent. La carte graphique et son driver jouent également un rôle central dans la gestion de la video LUT permettant la correction de l'affichage avec le profil ICC. Les capacités techniques à ce niveau sont déterminées par l'ensemble carte graphique+écran.