Table des matières

, , ,

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.

Ce tutoriel se base sur la version 1.0.4 d'Argyll CMS. En 2022, la version disponible est 2.3.0. Cette documentation sera ainsi sujette à modifications. Toute contribution et/ou correction est la bienvenue.

Installer Argyll CMS

Il existe un logiciel permettant de calibrer votre écran avec Argyl en mode graphique (sans console) : DisplayCAL.

Cependant, la dépréciation de Python 2.7 en janvier 2020, rend DisplayCAL indisponible dans les dépôts d'Ubuntu 20.04 et plus.

DisplayCAL reste néanmoins disponible, depuis le 31 mars 2021 au format Flatpak, ici. Ce Flatpak embarque Argyll 2.1.2, donc, si vous optez pour cette solution, nul besoin d'installer Argyll sur votre système.

À partir des dépôts

Pour installer Argyll CMS, Installez le paquet argyll

Les dépôts d'Ubuntu 20.04LTS ne proposent que la version 2.0.1 d'Argyll, un peu ancienne pour supporter les derniers calibreurs. Il est donc conseillé d'installer Argyll à partir du site officiel (paragraphe suivant).

À partir d'Ubuntu 22.04 LTS, une version d'Argyll (2.2.0) est dans les dépôts. Cette dernière reconnaît les calibreurs plus récents.

Sur le site d'Argyll

Une version actualisée d'Argyll est disponible pour les systèmes linux sur le site d'Argyll.

Pour installer la dernière version d'Argyll, télécharger sur le site d'Argyll et décompresser l'archive Argyll_V[version]_linux_x86_[32 ou 64]_bin.tgz.

Copiez ensuite le contenu du répertoire Argyll_V[version]/bin (En mars 2022 : Argyll_V2.3.0/bin) dans usr/local/bin.

sudo cp Argyll_V[version]/bin/* /usr/local/bin

Il n'existe malheureusement pas de système de mise à jour pour ce type d'installation.

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. Cette commande n'est pas permanente. Elle doit être répétée à chaque utilisation de la sonde. 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:

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.

à confirmer: Si vous avez un gamma différent de 2,2 sur votre écran (ex: 2,4), et qu'il n'est pas possible de régler ce paramètre avec l'OSD, une solution consiste à faire des essais en modifiant le contraste de votre écran. Ce qui impliquera également un nouveau réglage pour la luminance.

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.

A noter que si vous sélectionnez certains types d'écran comme 'rétroéclairage par LED', ceci peut entraîner une erreur et un échec de la calibration : c'est le cas avec la sonde Spyder3, peut-être parce que le driver de cette sonde ne peut pas prendre en compte ce paramètre…

Avec DisplayCAL

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
En pratique on pourra créer un petit script qui se lancera au démarrage de la session Ubuntu pour appliquer le profil ICC avec 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.
Dans le cas d'un dualscreen, on peut choisir l'écran auquel sera appliqué le profil avec l'option "-d 1" pour l’écran principal, ou "-d 2" pour l'ecran secondaire… Ce qui donnera:
dispwin -d 2 /chemin du répertoire/NomDuProfil.icc

Les fonctions d'Argyll en détail

Ce tutoriel se base sur la version 1.0.4 d'Argyll CMS. La dernière version mise à disposition est la 2.3.0 et certaines modifications sont à noter. Notamment l'option -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:

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, SpyderX 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:

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.