Color 'Round Linux

To content | To menu | To search

Linux Color Management

Entries feed - Comments feed

Tuesday, July 7 2009

Lprof... 5 years later

I'm currently busy printing pictures that I've scanned years ago. I've noticed though that as my maturity within the color accuracy fields grow, I was not pleased with some pictures. Colors were weird...

I decided it was time to go back to re-scanning those films again.

First thing first, I needed to re-calibrate my scanner for color accuracy. Since the last time that I've used this device (a Nikon Coolscan Ved) everything here have changed and I've lost my previous color profiles. Here comes Lprof.

To start by the end, I've been successful to produce a good quality profile for my scanner and I'm currently enjoying a smooth experience at re-scanning pictures and comparing them to the result I was achieving 5 years ago. In one world: far better.

However, what is less cheerful is that Lprof is a bit weird and does break a lot of usability patterns. I had to go to the help files to learn how to use the software and even with that it took me a lot of trials-and-errors to find my way.

For a starter, I've not been able to install the software under Linux, the Gentoo package was crashing. For convenience I decided to install it on my virtual windows. Reboot (ok I didn't do that straight away and a lot of things weren't working until the windows was fully rebooted). Upload of the target (and understand what was the meaning of the 19 ; 22 ; etc. columns selector). Upload the scanned picture of the target. Understand how to map the target to the scanned picture (took me a while), you have to position 4 corners... at the corners of your picture (with CPU skyrocketing to 100% and 30 sec. freeze each time). And then understand how you can supply a name for your profile: you need to select the target folder and type a name of a new empty file.

And there you have a nice new profile.

Sunday, December 30 2007

Early good results with Argyll and Spyder2

As reported in my previous post Argyll software now offers in its latest 0.7 beta the support of the Spyder2. I've only recently found the time to do some testing.

First of all, I've downloaded the binary archive of the 0.7 branch from the Argyll website. Don't bother to compile everything by yourself, Argyll binaries are working "out of the box" in all the distros that I have (namely Gentoo and (K)Ubuntu). So it should work fine on yours.

Argyll will ask you to first build the driver support of your Spyder2 by using... the CD provided by Colorvision. Argyll will retrieve the .dll necessary to operate the Spyder2 from it and create a small driver package that dispcal will use to calibrate your screen.

While I had no problem with a relatively recent box from Colorvision, a CD from an older box didn't work and the Spyder2Pro drivers downloaded from the Colorvision website didn't work either. A quick fix here is to install the software under wine, and point spyd2en, the small utility from the Argyll suite, to the CVSpyder.dll somewhere in the Colorvision folder the install created.

From there, the calibration process is quite straight forward. I used:

./dispcal -yl -v2 -qm belinea

Where -y is the type of monitor (here l for lcd), -v2 (for a great verbosity) a -qm (for medium quality) and "belinea" is the name of the output file.

The result is good, and after going through some of my pictures, probably a bit better than the Colorvision utility. I still have to go through a "high" quality process to see if there is an improvement ("medium" was already way better than "low").

I've hear that the Argyll beta has been incorporated in Lprof which has a GUI, so I have to digg this as well. Stay tuned.

Wednesday, November 21 2007

Some Linux support for Spyder2 colorimeter

Argyll now integrates with the 0.7 beta version a way to support the Spyder2 from Colorvision. This is not a direct support though, as Argyll still needs to use the "genuine" binary compiled version delivered with any Spyder2 device. Through a dedicated Spyder2 module, Argyll will ask you to give him a path (CD or whatever) to the Colorvision/Spyder2 installation package. After that, you can perform a "regular" profiling of your monitor using the dedicated Argyll module.

I still have to explore this software and provide here some figures at how well it performs against a profile produced by the Colorvision software under the Windows OS.

Saturday, October 21 2006

Are loaded profile under Linux accurate?

We have loaded a profile created under Windows, is this profile accurate in Linux given that it is not processed the same way as under Windows?

My methodology:

  • I've created the profile under MS Windows
  • loaded under MS Windows and I've measured some color patches with the colorimeter (first line of the results)
  • I've loaded the profile under Linux using Xcalib
  • then I've measured the color patches through the same colorimeter but connected from a second computer (under Windows) with the same software version as used for my first measures. Results are on the second line here.
  • Computed a DeltaE for each color measured to see the... delta.

The results:

white
39.944 / -32.287 / -14.397
40.152 / -32.366 / -14.561
DeltaE: 0.24

grey 90
% 34.923 / -28.010 / -13.397
35.495 / -28.177 / -13.498
DeltaE: 0.57

grey 60
% 22.958 / -18.877 / -8.160
23.678 / -19.231 / -9.119
DeltaE: 0.74

green
30.662 / -39.411 / 31.107
31.093 / -39.668 / 31.262
DeltaE: 0.43

blue
19.102 / -19.473 / -47.003
19.022 / -19.066 / -47.829
DeltaE: 1.51

red
14.134 / 18.997 / 8.038
13.879 / 20.905 / 6.802
DeltaE: 2.84

A DeltaE below 2, a human eye can (almost) not make the difference. Between 1-3, the results are excellent, and here all results are below 3. Given the very small differences involved, my colorimeter is proably not precise enough to be completely reliable from one measure to an other.

If this is of interest for someone, I am ready to post my methodology to provide you with the results above (in perticular computing the DeltaE).

Color Management: Monitor Calibration

There are a good and bad news. The good side is that you can run Linux and have a monitor calibrated as you would have in MS Windows. The bad side is that you must have a dual boot of some kind to calibrate your hardware under MS Windows and then you may load your profile under Linux using xcalib or Argyll.

Introduction

However if you use Argyll (dispcal utility) and are the happy owner of the Xrite DTP-94 and Xrite DTP-92 colorimeters that come in Monaco OPTIX and ColorEyes from the company Monaco/Xrite? you may have a 100% linux color management by calibrating your monitor under Linux as well.

Ok, I guess like most of you, I don't own one of these colorimeters, therefore I still need MS Windows. May be one better day... Consequence is that I've never calibrated a monitor (under Linux) and can't speak about that part. For the rest of this howto, I will take for granted that you managed to create a profile of some kind of your monitor, that you are now under Linux and would like to get your monitor corrected.

I will only explore how to load the profile of a single monitor. Two monitors might involves a little bit more work and is probably possible with certain limitation. One last word, on my knowledge as August 2006, loading a profile was not working with XGL/compiz or this kind of fancy 3D desktop. It might one day, but it's because the Xvidmode is not supported yet.

Installing Argyll and Xcalib

Under Linux, to my knowledge, there are two software that allows to load a profile in order to get one's monitor calibrated. These software are: Argyll and Xcalib. You may choose one of them as my experience shows that they behave the very same way and a profile loaded by one or an other looks exactly the same or seems to look exactly the same. However I encourage you to install both of them, as there are certain features present on the first and not the second and besides you will be in position to make up your mind about what's the best choice.

Let's start with Xcalib 0.6

Perequiste: XVidMode (XVidModeExtension enabled) -- the same apply for Argyll.

  • Download Xcalib (see the links on the right side of this blog)
  • Untar/bz2 or whatever, wherever you feel like
  • Fire up a console and "Make" the software with the following command:

make lo_xcalib

Suprise there are several make you can do. Most notabily if you have an ATI, you may do instead:

make fglrx_xcalib

There are also the "make icclib_xcalib" and the "make lcms_xcalib", for detailed explanation, you may read the readme. However as we are in an exploratory phase the lo_xcalib provides a convenient no perequiste mode that contrast with the lcms version where you will have to patch the lcms library beforehand. I might investigate in future post if it makes sens to use the other options.

  • If all went well as it should, you have now a nice xcalib program.
  • do a

chmod +x xcalib

to be in order to execute it.

  • We will leave it in its directory for now, let's build Argyll profile loader.

Second Argyll dispwin 0.6

  • Download Linux binary Argyll suite of utilities (see the links on the right side of this blog)
  • Untar/bz2 or whatever, wherever you feel like
  • and here you are with the installation. In the bin folder you will find (among a LOT of other things) a working dispwin utility.
  • (none compulsory) a patch has been made for people using 64bit OS and also people working with several screens and proprietary graphic (ATI / NVIDIA) drivers.

Playing with calibration

One advantage of Xcalib over Dispwin is that it offer the way to "clear" a profile from the X server and recover a none calibrated monitor (very usefull for testing the before/after with/without profile).

For Xcalib the main commands are (from within the xcalib directory or it won't work):

./xcalib /usr/share/color/icc/060731_belinea.icm
where /usr/share/color/icc is your path to your color profile. I would like to encourage you at using the above location. Seems to become the default. But, do as you wish if you would like to do otherwise.

To see if your profile is working, you may also use the supplied "bluish" profile.

./xcalib bluish.icc

Pleased with the result? Yes, so let's clear out the result and see how Argyll works.

./xcalib -clear
to clear out all profile of the X server

Go into your Argyll directory and in the bin folder. With the very same console as above simply type:

./dispwin

and you will see the following color patches: Red, Green, Blue, Cyan, Magenta, Yellow and then it will darken your screen, lighten it and restore the previous parameters. Well done, dispwin is working fine. Issue now the following command:

./dispwin /usr/share/color/icc/060731_belinea.icm

It will load your profile. You may also use the bluish profile of Xcalib, it will work just as fine. You may play between dispwin and xcalib with commands like this:

xcalib -clear && xcalib /usr/share/color/icc/060731_belinea.icm

and try to see if there is any difference.

Finishing the installation

First install the utility of your choice or both where you like. You can even keep it where you install it, but only your user will be able to use it. Otherwise, you may install it under /usr/bin or /usr/local/bin as most of the time these two locations are already on your PATH (ie accessible from your console without any fuss).

Under root do as this:

cp xcalib /usr/bin/

Same thing applies for dispwin.

To automate the process of loading a profile at startup, if you are using KDE (but the very same thing exist for GNOME), you can write a script that you will put under for exemple ~/.kde3.5/Autostart/ where kde3.5, 3.5 is your version of KDE. In case you don't know "~" is your home folder. In my case "/home/nicolas/". Your script will look at something like this (I am using xcalib, change it to dispwin if you prefer dispwin):

#!/bin/bash
xcalib /usr/share/color/icc/060731_belinea.icm &

Don't forget to change it to be executable

chmod +x your_script

In my case, "your_script" has been named "calibration2". For the sake of it, you might want to log off and log in to see if it works. Et voilà, you have a working calibrated environment, let's start the real work on pictures now!