OK, I was very enthusiastic in my last entry to see my Spyder calibration device supported in ArgyllCMS. So much that I didn’t read any documentation and just typed the first command that I came across and behold, my Spyder started measuring patches. Great!
However, typing the first command I came across didn’t quite produce a working icc profile. So this post is valid for compiling and setting up ArgyllCMS with Spyder support, but not for using it. Read on.
I had a bit more of a careful browse through ArgyllCMS documentation. Now I start to understand why people say Color Management is difficult. The el cheapo software that I got with my Spyder is just measuring few color patches from the monitor and spits out an icc profile.
No so with Argyll. You can read through the “monitor profiling usage scenario” to get idea about how to go about it.
Here are the steps I had to go through to get a working ICC monitor profile. These are more or less the “minimal default service”, from what I could get from the documentation. I hope I am not talking rubbish again, since I bumped into “faux amis” between French and English. If someone knows better, please let me know :)
Before starting using the Spyder, I did the elegant thing: typing lsusb in a terminal to see a list of the plugged usb devices (including the Sypder). I then did a:
sudo chmod 777 /dev/bus/usb/SpyderbusID/SpyderdeviceID
to allow a normal user to run the various ArgyllCMS utilities.
dispcal – monitor calibration
dispcal is the first step that brings your monitor to a known / neutral state, which will then be the foundation for the calibration itself. This is done (like a lot of things in monitor calibration) by sending colored and gray patches to your screen and measuring them with the hardware device. This is how you invoke dispcal:
dispcal -v -q l -y c samsung
-q l is for low quality (so it takes only 15 minutes to complete the step)
-y c is for a CRT monitor (I have a Samsung CRT)
This will create a patch in the center of your screen on which you can affix the measuring device. In the terminal, you will be presented with a menu to chose from:
1) Black level (CRT: Brightness)
2) White point (Color temperature, R,G,B, Gain)
3) White level (CRT: Contrast, LCD: Brightness)
4) Black point (R,G,B, Offset)
5) Check all
6) Continue on to calibration
So these steps allow you to set up your monitor brightness and contrast. Color temperature should be 6500K and gamma is kept at the default 2.2 value. Now the problem is that not all monitors have the same settings and the same scales – try to at least have a go at the black and white levels and mess up with your monitor menu to get acceptable values. Basically, dispcal sets a target and then keeps on measuring your monitor every second or two to see how far (or close) you are to the target. So you see the effects of your fiddling around in the measure.
Afterwards, you can continue to calibration. The low quality measured a total of 102 patches and took almost 15 minutes (be warned). The process spits out a samsung.cal file
targen – generating the patches to measure
The next step (now that we know how the monitor behaves and how to put it in a default state) is to generate the patches that will be measured in the next step, the profiling itself. targen is the utility that does it for your. This is how I invoked it:
targen -v -d3 -f250 samsung
-d3 asks to generate patches for a Video RGB device (a monitor)
-f250 asks to generate 250 patches (this is in the lower range, you can go up to 500 depending on how precise your profile needs to be)
For the command to succeed, you need to have your *.cal file in the current directory. This takes about 1.5 second and generate a samsung.ti1 file.
dispread – reading profiling information
In this last but-one step, dispread draws the generated patches to the screen, which are measured by the device. The command is something like:
dispread -v -y c -k samsung.cal samsung
with the *.cal and *.ti1 files in the dispread directory. For 250 patches, it took me about 10 minutes. The process spits out a samsung.ti3 file.
colprof – generating the ICC profile (at last)
Now is the time to generate the ICC profile itself. colprof is the utility that does it, with something like:
colprof -v -A “Samsung” -M “SyncMAster 753s” -D “November 17 2007” -q m -as samsung
A M and D are respectively the manufacturer, model and comment (this is what you will see when you chose the profile in Cinepaint, for example). -q m and -a s are default settings for that type of profile. And after few seconds, I end up with a samsung.icc profile that I could load with xcalib and use in Cinepaint.
While using ICC profile for monitor calibration is relatively easy (see this previous entry), generating one is a lot more complicated; many concepts to grasp, options and choices to take and sometimes no clear criteria on what to decide. The complexity of this half an hour process makes me wonder what to think about my Spyder Windows Software that goes through 20 patches and spits out a monitor profile in 2 minutes? Is it any accurate? What about the (old generation) Spyder device itself – is it any good? Does ArgyllCMS allows to exploit it to its best or does it just shows its limits when used with such powerful software?
Anyway, it is very nice to be able to do use this device in Linux and (as so often with OSS), it was a change to learn more!
And it was our first day out in the snow of the season, which is always cool: