Kalibrierung und Profilierung: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Autostartdatei)
(Zwischenkorrektur und Verbesserungen)
Zeile 11: Zeile 11:
 
==<font color="maroon"> Einleitung </font>==
 
==<font color="maroon"> Einleitung </font>==
  
Nehmt mal ein Bild aus eurer digitalen Spiegelreflexkamera und schaut es euch an drei verschiedenen Bildschirmen an. Ihr werden denken, drei verschiedene Bearbeitungen vor euch zu haben. Da kommt Freude auf. Es wird sich ein Gefühl einstellen, das einen Überkommt, wenn man in einen Grossmarkt zum Fernsehkaufen geht. 1000 Bildschirme, überall das gleiche verrauschte Programm, und auf jedem der Geräte sieht das Bild anders aus.
+
Nehmt mal ein Bild aus eurer digitalen Spiegelreflexkamera und schaut es euch an drei verschiedenen Bildschirmen an. Ihr werden denken, drei unterschiedliche Bearbeitungen des gleichen Fotos vor euch zu haben. Da kommt Freude auf!
 +
 
 +
Ich kann mir denken, daß sich ein ähnliches Hochgefühl einstellt, wenn wir in einen Grossmarkt fahren, um uns einen neuen Fernseher zu kaufen. 1000 Bildschirme, überall das gleiche verrauschte Programm, und auf jedem der Geräte sieht das Bild anders aus.
 
Befriedigend...
 
Befriedigend...
  
Wir als ambitionierte Hobbyphotoografen können hier aber was dagegen tun. Nein, nicht gegen die 1000 unterschiedlich eingestellten Supermarkt-Fernseher. Wir können unseren Monitor, den wir fürs Ansehen und für die Bearbeitung unserer Fotos verwenden, so einstellen, daß die Farben stimmen und zwar reproduzierbar stimmen.
+
Wir als lernfreudige Benutzer von Linux, die vielleicht sogar ambitionierte Hobbyfotografen sind, können hier etwas tun. Wir können unseren Monitor, den wir fürs Anschauen und für die Bearbeitung unserer Fotos verwenden, so einstellen, daß die Farben stimmen und zwar reproduzierbar stimmen.
  
 
Das Zauberwort heißt Farbmanagement.
 
Das Zauberwort heißt Farbmanagement.
  
Um solch ein Farbmanagement aber auch sinnvoll einsetzen zu können, ist es notwendig, seinen Monitor erstmal vernünftig einzustellen (kalibrieren) und von dem, was er dann zeigt, eine ICC-Datei zu erstellen (Profilieren).
+
Um solch ein Farbmanagement aber sinnvoll einsetzen zu können, ist es notwendig, den Monitor erstmal vernünftig einzustellen (kalibrieren) und eine ICC-Profildatei zu erstellen (Profilieren).
  
 
"Tja nu, wo ist da das Problem?", werdet ihr fragen. "Da gibt es doch Farbmessgeräte, Colorimeter oder so ähnlich heisen die Dinger. Installieren, Programm starten, fertig!"
 
"Tja nu, wo ist da das Problem?", werdet ihr fragen. "Da gibt es doch Farbmessgeräte, Colorimeter oder so ähnlich heisen die Dinger. Installieren, Programm starten, fertig!"
 
Und ich kann nur niedergeschlagen antworten: "Seelig sind die Freunde von Redmond, denn mit ihnen sind die Hardware-Fabrikanten. Seelig sind die,  die von den Herstellern überschüttet werden mit Treibern für ihre Geräte!" Und ich werde hinzufügen: "Ja, ich bin einer von denen auf der anderen Seite, denn bei mir am Computer arbeitet Linux. Ich gebe es zu! Ja, ich habe gefehlt, als ich die Windows-Welt verlassen habe. Aber lasst euch eines sagen, ich habe es noch keine einzige Minute bereut, diesen Schritt getan zu haben!"
 
Und ich kann nur niedergeschlagen antworten: "Seelig sind die Freunde von Redmond, denn mit ihnen sind die Hardware-Fabrikanten. Seelig sind die,  die von den Herstellern überschüttet werden mit Treibern für ihre Geräte!" Und ich werde hinzufügen: "Ja, ich bin einer von denen auf der anderen Seite, denn bei mir am Computer arbeitet Linux. Ich gebe es zu! Ja, ich habe gefehlt, als ich die Windows-Welt verlassen habe. Aber lasst euch eines sagen, ich habe es noch keine einzige Minute bereut, diesen Schritt getan zu haben!"
Und ihr werdet mich ansehen, vorsichtig und vielleicht sogar etwas ängstlich ob dieses Verrückten, der da vor euch steht. Und ich werde zurücksehen und euren Blicken standhalten. Denn ich bin mir bewusst, daß auch ich eine Möglichkeit kenne, Farbmanagement zu benutzen, sogar unter Linux!
+
Und ihr werdet mich ansehen, vorsichtig und vielleicht sogar etwas ängstlich ob dieses Verrückten, der da vor euch steht. Und ich werde zurücksehen und euren Blicken standhalten. Denn ich bin mir bewusst, daß auch ich eine Möglichkeit kenne, Farbmanagement zu benutzen, und das sogar unter Linux!
  
  
Zeile 29: Zeile 31:
 
=== Voraussetzungen ===
 
=== Voraussetzungen ===
  
Linux OpenSuse als Betriebssystem (bei mir OpenSuse 11.2 mit KDE 4)
+
* Linux OpenSuse als Betriebssystem (bei mir OpenSuse 11.2 mit KDE 4)
Eine Grafikkarte, bei der man in die LUT schreiben kann (bei mir nVidia Geforce 6600GT)
+
* Eine Grafikkarte, bei der man in die LUT schreiben kann (bei mir nVidia Geforce 6600GT)
Ein Bildsxchirm, der eine Profilisierung gebrauchen könnte (bei mir BenQ FP937s)
+
* Ein Bildsxchirm, der eine Profilisierung gebrauchen könnte (bei mir BenQ FP937s)
Ein Farbmessgerät (bei mir Gretag-Macbeth Huey)
+
* Ein Farbmessgerät (bei mir Gretag-Macbeth Huey)
Ein Programm, das die Kalibrierung und Profilierung durchführen kann (bei mir ArgyllCMS 1.1.1)
+
* Ein Programm, das die Kalibrierung und Profilierung durchführen kann (bei mir ArgyllCMS 1.1.1)
  
Und natürlich ein bißchen Zeit, um sich in diese Sache reindenken zu können.
+
* Und natürlich ein bißchen Zeit, um sich in diese Sache reinzudenken.
  
  
 
=== Ziel ===
 
=== Ziel ===
  
Das Ziel ist eine speziell auf meinen Monitor zugeschnittene Profildatei (ICC-Datei) und das Einbindes dieser Profildatei in das ICC-Farbmanagement.
+
Das Ziel ist eine speziell auf meinen Monitor zugeschnittene Profildatei (ICC-Datei) und das Einbindes dieser Profildatei in das ICC-Farbmanagement. Und bei der Gelegenheit möchte ich auch gleich meinen Monitor kalibriert haben.
  
  
=== geplantes Vorgehen ===
+
=== Geplantes Vorgehen ===
  
Software herunterladen und installieren
+
* Software herunterladen und installieren
Colorimeter installieren
+
* Colorimeter installieren
Monitor kalibrieren
+
* Monitor kalibrieren
Kalibrierergebnis in der LUT der Grafikkarte verankern, damit alle Anwendungen etwas davon haben
+
* Ein ICC-Profil erstellen
Vom kalibrierten Bildschirm ein ICC-Profil erstellen
+
* ICC-Profil ins Farbmanagement einbinden
ICC-Profil ins Farbmanagement einbinden
 
  
 
Also, los geht's...
 
Also, los geht's...
Zeile 59: Zeile 60:
 
=== Methode 1: Sourcecode ===
 
=== Methode 1: Sourcecode ===
  
Der Sourcecode kann von der Homepage von ArgyllCMS heruntergeladen werden ( http://www.argyllcms.com/ ) und muss dann selbst kompiliert werden. Dazu sollte man aber sein Betriebssystem sehr gut kennen und auch wissen, wie das funktioniert mit dem kompilieren. Es ist keine Hexenkunst, setzt aber doch einiges an Wissen vorraus. Dafür bekommt man eine aktuelle, speziell auf sein System zugeschnittene Programmsammlung.
+
Der Sourcecode kann von der Homepage von ArgyllCMS heruntergeladen werden und muss dann selbst kompiliert werden. Dazu sollte man aber sein Betriebssystem sehr gut kennen und auch wissen, wie das funktioniert mit dem kompilieren. Es ist keine Hexenkunst, setzt aber doch einiges an Vorkenntnis vorraus. Dafür bekommt man eine aktuelle, speziell auf sein System zugeschnittene Programmsammlung.
  
Diese Methode kann ich nur den empfehlen, der weiss, was er tut. Wer neugierig ist, dem sei die Homepage von ArgyllCMS empfohlen. In den Installationsanweisungen für Linux gibt es hier weiterführende Informationen. Ist aber auf Englisch!
+
Diese Methode kann ich nur dem empfehlen, der weiss, was er tut. Wer neugierig ist, dem sei die Homepage von ArgyllCMS empfohlen. In den Installationsanweisungen für Linux gibt es hier weiterführende Informationen. Ist aber auf Englisch!
  
 
=== Methode 2: Fertiges RPM aus dem OpenSuse Build Service ===
 
=== Methode 2: Fertiges RPM aus dem OpenSuse Build Service ===
Zeile 67: Zeile 68:
 
Im OpenSuse Build Service stehen fertig kompilierte RPM-Pakete von ArgyllCMS zur Verfügung. Mit dem 1-Klick-Button kann die Progammsammlung unkompliziert heruntergeladen und installiert werden.
 
Im OpenSuse Build Service stehen fertig kompilierte RPM-Pakete von ArgyllCMS zur Verfügung. Mit dem 1-Klick-Button kann die Progammsammlung unkompliziert heruntergeladen und installiert werden.
  
Ich empfinde diese 1-Klick-Methode nicht als das non-plus-ultra. Denn durch sie wird mir die Kontrolle entzogen. Ich habe dann keinen Überblick, welche Änderungen im System durchgeführt werden. Alles geschieht automatisch und ich kann gegebenenfalls nicht gegensteuern.
+
Ich empfinde diese 1-Klick-Methode nicht als das non-plus-ultra. Denn durch sie wird mir die Kontrolle entzogen. Ich habe dann keinen Überblick mehr, welche Änderungen im System durchgeführt werden. Alles geschieht automatisch und ich kann nicht gegensteuern, falls das notwendig sein sollte.
  
Mir ist es lieber, das notwendige Repository über Yast temporär als zusützliche Paketquelle einzubinden. Dann kann ich in der Installationsübersicht überprüfen, was tatsächlich geschieht. Und wenn mir das nicht gefällt, dann kann ich immer noch nein sagen.
+
Ich behandle RPMs aus dem Build Service so:
  
Wie das mit dem Einbinden zusätzlicher Paketquellen funktioniert, ist an anderer Stelle hier in der Linupedia beschrieben
+
Ich binde das notwendige Repository als zusätzliche Paketquelle ein. Das ist mit Yast leicht durchzuführen. Dann wähle ich die gewünschte Datei zur Installation aus und überprüfe in der Installationsübersicht, was außer dem RPM noch an zusätzlichen Dateien benötigt werden (um Abhängigkeiten aufzulösen). Bin ich mit den Änderungen einverstanden, dann führe ich die Installation durch, andernfalls cancele ich. Zum Schluß deaktiviere das Repository wieder.
  
 
Die RPM's aus dem Build Service sind übrigens bei weitem nicht aktuell. Bei ArgyllCMS hat sich einiges getan, und drum kann ich nur empfehlen, die neueste Programmversion auszuwählen (Version 1,1,1 Stand Juni 2010). Und diese Version bekomme nur mit der oben schon erwähnten eigenen Kompilierung des Sourcecodes oder mit folgender Methode:
 
Die RPM's aus dem Build Service sind übrigens bei weitem nicht aktuell. Bei ArgyllCMS hat sich einiges getan, und drum kann ich nur empfehlen, die neueste Programmversion auszuwählen (Version 1,1,1 Stand Juni 2010). Und diese Version bekomme nur mit der oben schon erwähnten eigenen Kompilierung des Sourcecodes oder mit folgender Methode:
Zeile 94: Zeile 95:
 
  lsusb
 
  lsusb
  
Das Ergebnis wird eine Liste der vom Kernel erkannten USB-Geräte sein und könnte etwa so aussehen:
+
Das Ergebnis könnte etwa so aussehen:
  
 
  Bus 001 Device 010: ID 0971:2005 Gretag-Macbeth AG  
 
  Bus 001 Device 010: ID 0971:2005 Gretag-Macbeth AG  
Zeile 108: Zeile 109:
 
Udev ist ein Programm, mit dessen Hilfe das "Hotplugging" überwacht und geregelt wird. Mit Hotplugging ist gemeint, daß USB-Geräte vom System automatisch erkannt werden. Sie können im Betrieb ein- oder ausgestopselt werden, das Betriebssystem erkennt das. Das erfordert natürlich gewisse Regeln, die in den udev-rules verwaltet werden können. Für manche Geräte, auch wenn sie vom Kernel erkannt werden, sind dort noch keine Regeln abgelegt. Und das wird für unser Colorimeter mit ziemlicher Sicherheit der Fall sein. Das bedeutet, wir müssen für das Gerät eine solche Regel anlegen (Ausnahme: Installation über RPM, da erfolgt das automatisch).
 
Udev ist ein Programm, mit dessen Hilfe das "Hotplugging" überwacht und geregelt wird. Mit Hotplugging ist gemeint, daß USB-Geräte vom System automatisch erkannt werden. Sie können im Betrieb ein- oder ausgestopselt werden, das Betriebssystem erkennt das. Das erfordert natürlich gewisse Regeln, die in den udev-rules verwaltet werden können. Für manche Geräte, auch wenn sie vom Kernel erkannt werden, sind dort noch keine Regeln abgelegt. Und das wird für unser Colorimeter mit ziemlicher Sicherheit der Fall sein. Das bedeutet, wir müssen für das Gerät eine solche Regel anlegen (Ausnahme: Installation über RPM, da erfolgt das automatisch).
  
Klingt etwas kompliziert, oder? So richtig nach Denkarbeit! aber keine Angst. So schwierig ist es nicht. Denn ArgyllCMSn stellt uns eine solche Regel zur Verfügung.
+
Klingt etwas kompliziert, oder? So richtig nach Denkarbeit! Aber keine Angst. So schwierig ist es nicht. Denn ArgyllCMS stellt uns eine solche Regel zur Verfügung.
  
  
 
=== sudo ===
 
=== sudo ===
  
Linux hat gewisse Sicherheitsmaßnahmen eingebaut. Eine davon ist, daß der User nur in seinem Heimatverzeichnis tun und lassen kann, was er will. Auf andere Verzeichnisse (Systemverzeichnisse, Heimatverzeichnisse anderer User hat er höchsten Lesend Zugriff. Er kann dort aber keine Veränderungen durchführen. Und auch dieser Lesezugriff lässt sich vom Administrator durch entsprechende Rechtevergabe abschalten.
+
Linux hat gewisse Sicherheitsmaßnahmen eingebaut. Eine davon ist, daß der User nur in seinem Heimatverzeichnis tun und lassen darf, was er will. Auf andere Verzeichnisse (Systemverzeichnisse, Heimatverzeichnisse anderer User hat er höchsten lesend Zugriff. Er kann dort aber keine Veränderungen durchführen. Und auch dieser Lesezugriff lässt sich vom Administrator durch entsprechende Rechtevergabe abschalten.
  
 
Möchte man also irgenwo anders als im Heimatverzeichnis etwas ändern, so sind root-Rechte notwendig. Diese lassen sich bei Eingaben über die Konsole durch Voranstellen des Befehls sudo erlangen. Man wird dann nach dem Administrator-Passwort gefragt.
 
Möchte man also irgenwo anders als im Heimatverzeichnis etwas ändern, so sind root-Rechte notwendig. Diese lassen sich bei Eingaben über die Konsole durch Voranstellen des Befehls sudo erlangen. Man wird dann nach dem Administrator-Passwort gefragt.
Zeile 131: Zeile 132:
 
  sudo cp ~/Argyll_V1.1.1/libusb/55-Argyll.rules /etc/udev/rules.d
 
  sudo cp ~/Argyll_V1.1.1/libusb/55-Argyll.rules /etc/udev/rules.d
  
* sudo: Der folgende Befeht hat Adminitratorrechte
+
* sudo: Der folgende Befeht hat Administratorrechte
 
* cp: Kopiere
 
* cp: Kopiere
 
* ~/Argyll_V1.1.1/libusb/55-Argyll.rules: die Regeldatei
 
* ~/Argyll_V1.1.1/libusb/55-Argyll.rules: die Regeldatei
Zeile 142: Zeile 143:
 
Bei älteren Distributionen kann es sein, daß nach dem Kopieren der Regel zusätzlich noch an der Rechtevergabe gespielt werden muß. Dazu überprüfen wir aber erst einmal diese Notwendigkeit. Stöpseln wir also das Colorimeter in eine USB-Buchse und öffnen eine Konsole. Hier geben wir folgenden Befehl ein:
 
Bei älteren Distributionen kann es sein, daß nach dem Kopieren der Regel zusätzlich noch an der Rechtevergabe gespielt werden muß. Dazu überprüfen wir aber erst einmal diese Notwendigkeit. Stöpseln wir also das Colorimeter in eine USB-Buchse und öffnen eine Konsole. Hier geben wir folgenden Befehl ein:
  
  ~/Argyll_V1.1.1/bin/dispcal -r
+
  ~/Argyll_V1.1.1/bin/dispcal -yl -r
  
 
Bei so einer Fehlermeldung müssen wir die Rechte anpassen:
 
Bei so einer Fehlermeldung müssen wir die Rechte anpassen:
Zeile 177: Zeile 178:
 
Nun Ja, ich geb es zu, manchmal übertreib ich ein klitzekleines bißchen. Trotzdem sollten wir etwas mit der Helligkeit zurückgehen. Unsere Augen werden es uns danken.
 
Nun Ja, ich geb es zu, manchmal übertreib ich ein klitzekleines bißchen. Trotzdem sollten wir etwas mit der Helligkeit zurückgehen. Unsere Augen werden es uns danken.
  
Mein Monitor hat Regler für Helligkeit, Kontrast und die drei Grundfarben R, G und B. Diese Regler bringe ich in die Mittelstellung. Die tut meinen Augen richtig gut und die nun vorhandene Helligkeit von etwa 120 cd/qm ist völlig ausreichend. Die kann ich übrigens mit dipcal messen:
+
Mein Monitor hat Regler für Helligkeit, Kontrast und die drei Grundfarben R, G und B. Diese Regler bringe ich in die Mittelstellung. Die tut meinen Augen richtig gut und die nun vorhandene Helligkeit von etwa 120 cd/qm ist völlig ausreichend. Die kann ich übrigens mit dispcal messen:
  
 
  ~/Argyll_V1.1.1/bin/dispcal -yl -R
 
  ~/Argyll_V1.1.1/bin/dispcal -yl -R
Zeile 213: Zeile 214:
 
Und noch was:
 
Und noch was:
  
Sollten eigenartige Fehlermeldungen angezeigt werden, daß die XRANDR faulty sei, so können das getrost vergessen. Das ist für unsere Messungen ohne Belang. Die Meldung kommmt übrigens daher, daß proprietäre Grafiktreiber und XRANDR sich in der Regel nicht besonders lieb haben.
+
Sollten eigenartige Fehlermeldungen angezeigt werden, daß die XRANDR faulty sei, so können wir das getrost vergessen. Das ist für unsere Messungen ohne Belang. Die Meldung kommmt übrigens daher, daß proprietäre Grafiktreiber und XRANDR sich in der Regel nicht besonders lieb haben.
  
 
Und diese komischen Meldungen, daß wir das Colorimeter wieder vom Bildschirm entfernen können, ignorieren wir ebenfalls. Dieses Farbmessteil bleibt auf dem Schirm kleben, und zwar so lange, bis alle Messungen durch sind.
 
Und diese komischen Meldungen, daß wir das Colorimeter wieder vom Bildschirm entfernen können, ignorieren wir ebenfalls. Dieses Farbmessteil bleibt auf dem Schirm kleben, und zwar so lange, bis alle Messungen durch sind.
Zeile 233: Zeile 234:
 
* -b 120: Zielhelligkeit ind cd/qm
 
* -b 120: Zielhelligkeit ind cd/qm
 
* -qm: Wähle eine mittlere Qualität (sonst dauert es so lange)
 
* -qm: Wähle eine mittlere Qualität (sonst dauert es so lange)
* -m: Überspringe das Einsellungsmenü und beginne gleich mit der Messung
+
* -m: Überspringe das Einstellungsmenü und beginne gleich mit der Messung
 
* fp937s: so heißt mein Monitor und so soll auch die Kalibrierungsdatei heißen
 
* fp937s: so heißt mein Monitor und so soll auch die Kalibrierungsdatei heißen
  
Zeile 284: Zeile 285:
 
=== Erzeugen des ICC-Profils ===
 
=== Erzeugen des ICC-Profils ===
  
Aus dem eben gemessenen wir nun die ICC-Profildatei erzeugt:
+
Aus dem eben gemessenen wird nun die ICC-Profildatei erzeugt:
  
 
  ~/Argyll_V1.1.1/bin/colprof -v -qh fp937s
 
  ~/Argyll_V1.1.1/bin/colprof -v -qh fp937s
Zeile 305: Zeile 306:
 
==<font color="maroon"> Autostart </font>==
 
==<font color="maroon"> Autostart </font>==
  
Wir haben vorhin den Befehl dispwin -I kennengelernt, mit dem unter anderem die Kalibrierungsdaten in die LUT der Grafikkarte geschrieben wurden. Dort sind sie nun, aber nur solange, wie wir am System angemeldet sind. Schalten wir den Rechner aus, verschwindet auch das Kalibrierungsfile aus dem LUT der Grafikkarte.
+
Wir haben vorhin den Befehl dispwin -I kennengelernt, mit dem unter anderem die Kalibrierungsdaten in die LUT der Grafikkarte geschrieben wurden. Dort sind sie nun, aber nur solange wir am System angemeldet sind. Schalten wir den Rechner aus, verschwindet auch das Kalibrierungsfile aus dem LUT der Grafikkarte.
  
 
Die einfachste Möglichkeit, dieses Problem zu umgehen, ist ein Autostartfile. Dieses File soll so beschaffen sein, daß immer, wenn wir uns in KDE anmelden, automatisch das Kalibrierungsfile in die LUT geschrieben wird.
 
Die einfachste Möglichkeit, dieses Problem zu umgehen, ist ein Autostartfile. Dieses File soll so beschaffen sein, daß immer, wenn wir uns in KDE anmelden, automatisch das Kalibrierungsfile in die LUT geschrieben wird.
Zeile 317: Zeile 318:
 
* OK
 
* OK
  
Damit haben wir eine leere Textdadei mit dem Namen Kalibrierung im Ordner ~/Argyll_V1.1.1 erzeugt. Nun schreiben wir mit einem Testeditor (zum Beispiel mit kate) folgende zwei Zeilen in die Datei:
+
Damit haben wir eine leere Textdadei mit dem Namen Kalibrierung im Ordner ~/Argyll_V1.1.1 erzeugt. Nun schreiben wir mit einem Texteditor (zum Beispiel mit kate) folgende zwei Zeilen in die Datei:
  
 
  #! /bin/bash
 
  #! /bin/bash
 
  ~/Argyll_V1.1.1/bin/dispwin -L
 
  ~/Argyll_V1.1.1/bin/dispwin -L
  
Und nun machen wir aus der Testdatei noch eine ausführbare Datei:
+
Und nun machen wir aus der Textdatei eine ausführbare Datei:
  
 
* Rechtsklick auf die Datei Kalibrierung
 
* Rechtsklick auf die Datei Kalibrierung
Zeile 329: Zeile 330:
 
* OK
 
* OK
  
Damit haben wir ein kleines aber feines Bash-Script geschrieben, welche den Befehl dispwin -L enthält. Dieser Befehl läd das Konfigurationsfile in die LUT. Da dieses Laden bei jeder unserer Anmeldungen erfolgen soll, legen wir es in die Autostartdatei:
+
Damit haben wir ein kleines aber feines Bash-Script geschrieben, welche den Befehl dispwin -L enthält. Dieser Befehl läd das Konfigurationsfile in die LUT. Da dieses Laden bei jeder unserer Anmeldungen erfolgen soll, erstellen wir in der Autostartdatei eine Verknüpfung auf unser Bash-Script:
  
 
* Systemeinstellungen aufrufen
 
* Systemeinstellungen aufrufen
Zeile 340: Zeile 341:
  
 
==<font color="maroon"> ICC Farbmanagement </font>==
 
==<font color="maroon"> ICC Farbmanagement </font>==
 +
 +
 +
 +
 +
==<font color="maroon"> Links </font>==
 +
 +
Homepage ArgyllCMS: http://www.argyllcms.com

Version vom 18. Juni 2010, 19:37 Uhr

Höhe=24px
Achtung dieser Artikel ist noch in Arbeit und dient vorläufig nur als Vorlage. Dieser Beitrag zu Linux oder der Abschnitt ist in Bearbeitung. Weitere Informationen findest du hier. Der Ersteller arbeitet an dem Beitrag oder Abschnitt und entsorgt den Wartungsbaustein spätestens 3 Tage nach der letzten Bearbeitung. Änderungen außer Rechtschreibkorrekturen ohne Absprache mit dem Urspungsautor sind möglichst zu vermeiden, solange dieser Baustein noch innerhalb der genannten Frist aktiviert ist.


Diese Beschreibung wurde mit folgenden Distributionen getestet:

OpenSuse 11.2 (32Bit) mit KDE 4.4


Zu einem funktionierenden ICC-Farbmanagement gehört das Profilieren seines Monitors. Wie das Erstellen eines solchen ICC-Profils in Linux funktioniert, das ist hier hier erläutert, und zwar speziell für OpenSuse.

Einleitung

Nehmt mal ein Bild aus eurer digitalen Spiegelreflexkamera und schaut es euch an drei verschiedenen Bildschirmen an. Ihr werden denken, drei unterschiedliche Bearbeitungen des gleichen Fotos vor euch zu haben. Da kommt Freude auf!

Ich kann mir denken, daß sich ein ähnliches Hochgefühl einstellt, wenn wir in einen Grossmarkt fahren, um uns einen neuen Fernseher zu kaufen. 1000 Bildschirme, überall das gleiche verrauschte Programm, und auf jedem der Geräte sieht das Bild anders aus. Befriedigend...

Wir als lernfreudige Benutzer von Linux, die vielleicht sogar ambitionierte Hobbyfotografen sind, können hier etwas tun. Wir können unseren Monitor, den wir fürs Anschauen und für die Bearbeitung unserer Fotos verwenden, so einstellen, daß die Farben stimmen und zwar reproduzierbar stimmen.

Das Zauberwort heißt Farbmanagement.

Um solch ein Farbmanagement aber sinnvoll einsetzen zu können, ist es notwendig, den Monitor erstmal vernünftig einzustellen (kalibrieren) und eine ICC-Profildatei zu erstellen (Profilieren).

"Tja nu, wo ist da das Problem?", werdet ihr fragen. "Da gibt es doch Farbmessgeräte, Colorimeter oder so ähnlich heisen die Dinger. Installieren, Programm starten, fertig!" Und ich kann nur niedergeschlagen antworten: "Seelig sind die Freunde von Redmond, denn mit ihnen sind die Hardware-Fabrikanten. Seelig sind die, die von den Herstellern überschüttet werden mit Treibern für ihre Geräte!" Und ich werde hinzufügen: "Ja, ich bin einer von denen auf der anderen Seite, denn bei mir am Computer arbeitet Linux. Ich gebe es zu! Ja, ich habe gefehlt, als ich die Windows-Welt verlassen habe. Aber lasst euch eines sagen, ich habe es noch keine einzige Minute bereut, diesen Schritt getan zu haben!" Und ihr werdet mich ansehen, vorsichtig und vielleicht sogar etwas ängstlich ob dieses Verrückten, der da vor euch steht. Und ich werde zurücksehen und euren Blicken standhalten. Denn ich bin mir bewusst, daß auch ich eine Möglichkeit kenne, Farbmanagement zu benutzen, und das sogar unter Linux!


Vorgeplänkel

Voraussetzungen

  • Linux OpenSuse als Betriebssystem (bei mir OpenSuse 11.2 mit KDE 4)
  • Eine Grafikkarte, bei der man in die LUT schreiben kann (bei mir nVidia Geforce 6600GT)
  • Ein Bildsxchirm, der eine Profilisierung gebrauchen könnte (bei mir BenQ FP937s)
  • Ein Farbmessgerät (bei mir Gretag-Macbeth Huey)
  • Ein Programm, das die Kalibrierung und Profilierung durchführen kann (bei mir ArgyllCMS 1.1.1)
  • Und natürlich ein bißchen Zeit, um sich in diese Sache reinzudenken.


Ziel

Das Ziel ist eine speziell auf meinen Monitor zugeschnittene Profildatei (ICC-Datei) und das Einbindes dieser Profildatei in das ICC-Farbmanagement. Und bei der Gelegenheit möchte ich auch gleich meinen Monitor kalibriert haben.


Geplantes Vorgehen

  • Software herunterladen und installieren
  • Colorimeter installieren
  • Monitor kalibrieren
  • Ein ICC-Profil erstellen
  • ICC-Profil ins Farbmanagement einbinden

Also, los geht's...


Herunterladen und Installieren von ArgyllCMS

Methode 1: Sourcecode

Der Sourcecode kann von der Homepage von ArgyllCMS heruntergeladen werden und muss dann selbst kompiliert werden. Dazu sollte man aber sein Betriebssystem sehr gut kennen und auch wissen, wie das funktioniert mit dem kompilieren. Es ist keine Hexenkunst, setzt aber doch einiges an Vorkenntnis vorraus. Dafür bekommt man eine aktuelle, speziell auf sein System zugeschnittene Programmsammlung.

Diese Methode kann ich nur dem empfehlen, der weiss, was er tut. Wer neugierig ist, dem sei die Homepage von ArgyllCMS empfohlen. In den Installationsanweisungen für Linux gibt es hier weiterführende Informationen. Ist aber auf Englisch!

Methode 2: Fertiges RPM aus dem OpenSuse Build Service

Im OpenSuse Build Service stehen fertig kompilierte RPM-Pakete von ArgyllCMS zur Verfügung. Mit dem 1-Klick-Button kann die Progammsammlung unkompliziert heruntergeladen und installiert werden.

Ich empfinde diese 1-Klick-Methode nicht als das non-plus-ultra. Denn durch sie wird mir die Kontrolle entzogen. Ich habe dann keinen Überblick mehr, welche Änderungen im System durchgeführt werden. Alles geschieht automatisch und ich kann nicht gegensteuern, falls das notwendig sein sollte.

Ich behandle RPMs aus dem Build Service so:

Ich binde das notwendige Repository als zusätzliche Paketquelle ein. Das ist mit Yast leicht durchzuführen. Dann wähle ich die gewünschte Datei zur Installation aus und überprüfe in der Installationsübersicht, was außer dem RPM noch an zusätzlichen Dateien benötigt werden (um Abhängigkeiten aufzulösen). Bin ich mit den Änderungen einverstanden, dann führe ich die Installation durch, andernfalls cancele ich. Zum Schluß deaktiviere das Repository wieder.

Die RPM's aus dem Build Service sind übrigens bei weitem nicht aktuell. Bei ArgyllCMS hat sich einiges getan, und drum kann ich nur empfehlen, die neueste Programmversion auszuwählen (Version 1,1,1 Stand Juni 2010). Und diese Version bekomme nur mit der oben schon erwähnten eigenen Kompilierung des Sourcecodes oder mit folgender Methode:

Methode 3: bin-File

Das bin-File enthält in gepackter Form alle notwenigen Dateien, also die komplette Programmsammlung in der aktuellen Version. Sie muss nur noch entpackt werden. Die entpackten Dateien sind dann an geeigneter Stelle im System zu speichern. Spielen wir das mal durch:

  • Download des gepackten bin-files ( In meinem Fall sind das die Linux x86 Executables in der 32Bit-Version ) von der Homepage von ArgyllCMS
  • Das File ( Argyll_V1.1.1_linux_x86_bin.tgz ) wird dabei im Download-Ordner gespeichert ( bei mir ist das ~/downloads )
  • Rechtsklick auf das File
  • Entpacken nach ~

Damit haben wir das bin-File in unser Heimatvereichnis entpackt. Dort werden wir nun einen Ordner mit dem Namen Argyll_V1.1.1 finden, in dem die komplette Programmsammlung enthalten ist.

Installation des Farbmessgerätes mit einer aktuellen OpenSuse-Version

lsusb

Ich habe folgendes Colorimeter zur Verfügung: Gretag-Macbeth Huey. Das ist ein Farbmessgerät mit USB-Anschluss. Öffnen wir nun eine Konsole und überprüfen, ob der Kernel das Gerät auch erkennt. Dazu tippen wir folgenden Befehl ein:

lsusb

Das Ergebnis könnte etwa so aussehen:

Bus 001 Device 010: ID 0971:2005 Gretag-Macbeth AG 
Bus 002 Device 002: ID 046d:c50e Logitech, Inc. MX-1000 Cordless Mouse Receiver
Bus 003 Device 003: ID 046a:0021 Cherry GmbH

Mein Colorimeter ist dieser Liste enthalten und wird demnach vom Kernel erkannt.

Für unser weiteres Vorgehen sind zwei Begriffe wichtig, nämlich udev und sudo

udev

Udev ist ein Programm, mit dessen Hilfe das "Hotplugging" überwacht und geregelt wird. Mit Hotplugging ist gemeint, daß USB-Geräte vom System automatisch erkannt werden. Sie können im Betrieb ein- oder ausgestopselt werden, das Betriebssystem erkennt das. Das erfordert natürlich gewisse Regeln, die in den udev-rules verwaltet werden können. Für manche Geräte, auch wenn sie vom Kernel erkannt werden, sind dort noch keine Regeln abgelegt. Und das wird für unser Colorimeter mit ziemlicher Sicherheit der Fall sein. Das bedeutet, wir müssen für das Gerät eine solche Regel anlegen (Ausnahme: Installation über RPM, da erfolgt das automatisch).

Klingt etwas kompliziert, oder? So richtig nach Denkarbeit! Aber keine Angst. So schwierig ist es nicht. Denn ArgyllCMS stellt uns eine solche Regel zur Verfügung.


sudo

Linux hat gewisse Sicherheitsmaßnahmen eingebaut. Eine davon ist, daß der User nur in seinem Heimatverzeichnis tun und lassen darf, was er will. Auf andere Verzeichnisse (Systemverzeichnisse, Heimatverzeichnisse anderer User hat er höchsten lesend Zugriff. Er kann dort aber keine Veränderungen durchführen. Und auch dieser Lesezugriff lässt sich vom Administrator durch entsprechende Rechtevergabe abschalten.

Möchte man also irgenwo anders als im Heimatverzeichnis etwas ändern, so sind root-Rechte notwendig. Diese lassen sich bei Eingaben über die Konsole durch Voranstellen des Befehls sudo erlangen. Man wird dann nach dem Administrator-Passwort gefragt.

Kopieren der udev-Regel in das Regelverzeichnis

Warum sind diese beiden eben erklärten Begriffe nun so wichtig? Nun ja, es ist so:

Das Verzeichnis für die Udev-Regeln befindet sich hier:

/etc/udev/rules.d

Da sich dieser Ordner nicht in unserem Heimatverzeichnis befindet, können wir auf ihn nur mit Administratorrechten verändernd zugreifen. Und diese Administratorrechte erhalten wir durch den Konsolenbefehl sudo.

Also, kopieren wir die Regel dorthin, wo sie hingehört.

sudo cp ~/Argyll_V1.1.1/libusb/55-Argyll.rules /etc/udev/rules.d
  • sudo: Der folgende Befeht hat Administratorrechte
  • cp: Kopiere
  • ~/Argyll_V1.1.1/libusb/55-Argyll.rules: die Regeldatei
  • /etc/udev/rules.d: in den Regelordner

Damit das System die neue Regel für unser USB-Gerät erkennt, müssen wir den Computer neu starten. Danach sollte das Colorimeter funktionsfähig installiert sein.

Installation des Farbmessgerätes mit einer älteren OpenSuse-Version

Bei älteren Distributionen kann es sein, daß nach dem Kopieren der Regel zusätzlich noch an der Rechtevergabe gespielt werden muß. Dazu überprüfen wir aber erst einmal diese Notwendigkeit. Stöpseln wir also das Colorimeter in eine USB-Buchse und öffnen eine Konsole. Hier geben wir folgenden Befehl ein:

~/Argyll_V1.1.1/bin/dispcal -yl -r

Bei so einer Fehlermeldung müssen wir die Rechte anpassen:

XRandR 1.2 is faulty - falling back to older extensions
dispcal: Error - icoms - set_ser_port: port number out of range!

Daß die XRandR faulty ist, ignorieren wir übrigens hier und in allen anderen Beispielen, die noch folgen werden.

Gruppe plugdev erzeugen

Mit unserer udev-Regel wird das Colorimeter einer Benutzergruppe zugeordnet, die zudem noch mit Rechten ausgestattet ist, die es Mitgliedern der Gruppe erlaubt, mit dem Colorimeter zu arbeiten. Aller Vorraussicht nach wird diese Gruppe auf unseren Computer aber noch nicht existieren. Wir müssen sie erst explizit anlegen:

  • Yast starten, Administrator-Passwort eingeben und die Benutzer und Gruppenverwaltung aufrufen.
  • Den Reiter Gruppe drücken und auf hinzufügen gehen
  • Bei Name der Gruppe eingeben: plugdev
  • OK drücken

Damit existiert eine neue Benutzergruppe mit dem Namen plugdev auf unserem PC. Jetzt müssen wir nur noch Mitglied dieser Gruppe werden.

Gruppenzugehörigkeit

  • Den Reiter Gruppe drücken und auf bearbeiten gehen
  • Bei Mitglieder der Gruppe unseren User-Namen ankreuzen
  • OK drücken
  • Neustart

Voreinstellung des Monitors

Ich setze einmal vorraus, daß unser Monitor nicht so hell und kontrastreich eingestellt ist, daß unsere Augen nach kurzer Zeit versuchen, die Flucht zu ergreifen und sich nach hinten drehen. Solltet unser Monitor auf seinen Default-Einstellungen laufen, also so, wie wir ihn gekauft haben, könnte es sein daß unsere Augen tatsächklich nach einer längeren Bildschirmsession unruhig hin- und herhüpfen.

Ich hab meinen Monitor mal ausgemessen und bin auf einen Weißpunkt von mehr als 160 cd/qm gekommen. Damit kannst du fast gegen die Helligkeit einer explodierenden Supernova ankämpfen. Von der Supernova wirst du nicht blind werden, wohl aber von einem intensiveren Blick auf den Bildschirm.

Nun Ja, ich geb es zu, manchmal übertreib ich ein klitzekleines bißchen. Trotzdem sollten wir etwas mit der Helligkeit zurückgehen. Unsere Augen werden es uns danken.

Mein Monitor hat Regler für Helligkeit, Kontrast und die drei Grundfarben R, G und B. Diese Regler bringe ich in die Mittelstellung. Die tut meinen Augen richtig gut und die nun vorhandene Helligkeit von etwa 120 cd/qm ist völlig ausreichend. Die kann ich übrigens mit dispcal messen:

~/Argyll_V1.1.1/bin/dispcal -yl -R

ergibt

Uncalibrated response:
Black level = 0.26 cd/m^2
White level = 122.25 cd/m^2
Aprox. gamma = 2.10
Contrast ratio = 464:1
White chromaticity coordinates 0.3284, 0.3517
White    Correlated Color Temperature = 5672K, DE 2K to locus =  9.2
White Correlated Daylight Temperature = 5673K, DE 2K to locus =  5.6
White        Visual Color Temperature = 5423K, DE 2K to locus =  8.9
White     Visual Daylight Temperature = 5535K, DE 2K to locus =  5.4
Effective LUT entry depth seems to be 10 bits

Die beiden Optionen von dispcal bedeuten dabei:

  • -yl: Ich hab einen LCD-Bildschirm
  • -R: Messung des unkalibrierten Monitors


Da fällt mir ein, daß man während dieser und den nun folgenden Messungen noch ein paar Kleinigkeiten beachten sollte:

  • Helles Kunst- und auch Sonnenlicht vermeinen
  • Monitor vorher eine halbe Stunde warmlaufen lassen
  • Bildschirmschoner abschalten
  • Bildschirm vorher sauber machen und hinterher schadet's auch nicht
  • Explodierende Supernovas vermeiden

Und noch was:

Sollten eigenartige Fehlermeldungen angezeigt werden, daß die XRANDR faulty sei, so können wir das getrost vergessen. Das ist für unsere Messungen ohne Belang. Die Meldung kommmt übrigens daher, daß proprietäre Grafiktreiber und XRANDR sich in der Regel nicht besonders lieb haben.

Und diese komischen Meldungen, daß wir das Colorimeter wieder vom Bildschirm entfernen können, ignorieren wir ebenfalls. Dieses Farbmessteil bleibt auf dem Schirm kleben, und zwar so lange, bis alle Messungen durch sind.


Kalibrieren und Profilieren

Das Kalibrierungsfile

Mit folgendem Befehl generieren wir das Kalibrierungsfile:

~/Argyll_V1.1.1/bin/dispcal -yl -v -gs -b 120 -qm -m fp937s

Da ist, wie wir sehen, wieder dispcal am Arbeiten. Hier die verwendeten Optionen:

  • -yl: LCD-Monitor
  • -v: erzähle genauer, was du tust, während du arbeitest
  • -gs: sRGB-Kurve
  • -b 120: Zielhelligkeit ind cd/qm
  • -qm: Wähle eine mittlere Qualität (sonst dauert es so lange)
  • -m: Überspringe das Einstellungsmenü und beginne gleich mit der Messung
  • fp937s: so heißt mein Monitor und so soll auch die Kalibrierungsdatei heißen

Hier ein kurzer Ausschnitt der Konsolenmeldungen während der Messung:

Place instrument on test window.
Hit Esc or Q to give up, any other key to continue:
Display type is LCD
Target white = native white point
Target white brightness = 120.000000 cd/m^2
Target black brightness = native brightness
Target gamma = sRGB curve
Commencing device calibration
.
.
.
Number of measurements taken = 123
The instrument can be removed from the screen.
Written calibration file 'fp937s.cal'

Generieren der Targets

Nun erstellen wir die Targets, an Hand derer der Monitor nacher profiliert wird

~/Argyll_V1.1.1/bin/targen -d3 -v -f 1000 fp937s
  • -d3: RGB
  • -v: Erzähl ein bißchen
  • -f 1000: 1000 Patches

Das Ergebnis ist die Datei fp937s.ti1


Profilierung

Ausmessung des Bildschirms für das ICC-Profil:

~/Argyll_V1.1.1/bin/dispread -yl -v -k fp937s.cal fp937s
  • -yl: Monitortyp ist LCD
  • -v: Gesprächig
  • -k fp937s.cal: Quellfile
  • fp937s: Ergebnis

Das Ergebnis ist die Datei fp937s.ti3


Erzeugen des ICC-Profils

Aus dem eben gemessenen wird nun die ICC-Profildatei erzeugt:

~/Argyll_V1.1.1/bin/colprof -v -qh fp937s
  • -v: Erzähl'
  • -qh: Hohe Qualität


Installieren des ICC-Profils

~/Argyll_V1.1.1/bin/dispwin -I fp937s.icc

Mit diesem Befehl wird das ICC-Profil als Default-Monitorprofil für den User gesetzt. Dazu wird sie hierher installiert:

~/.local/share/color/icc/devices/display/monitor.icc

Außerdem wird der in dem Profil enthaltene Kalibrierungstag in den LUT der Grafikkarte geschrieben.


Autostart

Wir haben vorhin den Befehl dispwin -I kennengelernt, mit dem unter anderem die Kalibrierungsdaten in die LUT der Grafikkarte geschrieben wurden. Dort sind sie nun, aber nur solange wir am System angemeldet sind. Schalten wir den Rechner aus, verschwindet auch das Kalibrierungsfile aus dem LUT der Grafikkarte.

Die einfachste Möglichkeit, dieses Problem zu umgehen, ist ein Autostartfile. Dieses File soll so beschaffen sein, daß immer, wenn wir uns in KDE anmelden, automatisch das Kalibrierungsfile in die LUT geschrieben wird.

Also, basteln wir ein solches Autostartfile. Dazu verwenden wir den Dateimanager Dolphin (geht mit jedem anderen auch...)

  • Dolphin öffnen
  • Linksklick auf den Ordner Argyll_V1.1.1 (den kennen wir ja schon)
  • Rechtsklick - Neu erstellen - Textdatei
  • Es wird nach dem Namen der Textdatei gefragt. Ich habe Kalibrierung ausgewählt
  • OK

Damit haben wir eine leere Textdadei mit dem Namen Kalibrierung im Ordner ~/Argyll_V1.1.1 erzeugt. Nun schreiben wir mit einem Texteditor (zum Beispiel mit kate) folgende zwei Zeilen in die Datei:

#! /bin/bash
~/Argyll_V1.1.1/bin/dispwin -L

Und nun machen wir aus der Textdatei eine ausführbare Datei:

  • Rechtsklick auf die Datei Kalibrierung
  • Eigenschaften - Berechtigungen
  • Ausführbar ankreuzen
  • OK

Damit haben wir ein kleines aber feines Bash-Script geschrieben, welche den Befehl dispwin -L enthält. Dieser Befehl läd das Konfigurationsfile in die LUT. Da dieses Laden bei jeder unserer Anmeldungen erfolgen soll, erstellen wir in der Autostartdatei eine Verknüpfung auf unser Bash-Script:

  • Systemeinstellungen aufrufen
  • Erweitert - Autostart - Scrpt hinzufügen
  • Name der Script-Datei eingeben und ankreuzen, daß eine Verknüpfung erstellt werden soll
  • OK

Das war's. Nch einem Neustart des Rechners sitzen wir nun vor einem kalibrierten Monitor.


ICC Farbmanagement

Links

Homepage ArgyllCMS: http://www.argyllcms.com