libXcm and full screen colour correction with a GPU

The name for the X colour management library is found. In short libXcm. Now what? Use it with the compiz plugin to colour correct the complete desktop. The plugin runs on the GPU and is thus pretty fast. It support multiple monitors. Of course a running compiz installation is required to use the plugin.

You need to install some colour management packages. I have created them for Fedora12 and 13 and for openSUSE-11.2.
If you have openSUSE-11.2 or Fedora-12/13 installed, then you can add my OBS repository
For openSUSE-11.2 do a:
sudo zypper ar
now you can import packages from bekun. The following will install the compiz plug in.
sudo zypper install oyranos-xorg-compiz oyranos-monitor oyranos-monitor-nvidia
Afterward you need to activate the colour_desktop plugin in CCSM

Please note I tested the compiz plugin only in a nvidia environment.

To check if the plugin really works you might install the qcmsevents systray programm:
sudo zypper install oyranos-xorg-qcmsevents
It should appear as a coloured systray icon. It can as well show you a window with more verbose messages. When you switch a ICC profile the selected monitor should typical change its appearance. From the command line you can use oyranos-monitor to play with ICC profiles. For that you might want to have some profiles installed. Oyranos comes with a collection of ICC profiles. Simply install the following package.
sudo zypper install oyranos

Now you can set a aggressive profile to show the effect:
oyranos-monitor XYZ.icc
CIE*XYZ would normally not be used for devices. The following command will unset the profile again
oyranos-monitor -e
Now setup newly and a fallback profile should be generated:
The initial behaviour is to parse the available EDID tag and create an ICC profile from that.
Thats a rough guess but often enough a great improvement to sync e.g. a laptop with a wide gamut monitor. Do not forget to synchronise colour temperature and brightness. To obtain more precise results you need a colorimeter or spectrophotometer and software like ArgyllCMS or a GUI for ArgyllCMS.

How about selecting device profiles by a nice GUI. For KDE4 exists kolor-manager. The repository contains packages for openSUSE-11.2.
sudo zypper install kolor-manager icc_examin
After installation you can call systemsettings and select the kolor-manager panel.

In the Devices tab you can select your monitor and associate a profile to it. Selecting no profile should switch to the EDID automatic generated one.

Speed should be no problem on reasonable new hardware. Compiz itself has already some demand for resources. The colour_desktop plugin adds to that but relatively few. If you watch full screen video it can be up to 15%. With usual internet browsing or text writing it should be very few. I have the plugin running on a laptop and there is not much noticeable battery power reduction.

4 thoughts on “libXcm and full screen colour correction with a GPU

  1. wow, that's great! thanks for sharing. would you share instructions how to build this from source code, including location of the downloaded source packages, so that those of us who don't use the same Linux distros as you can also benefit? In my case, I use Kubuntu Lucid and I would not mind building from code to get my display color managed.

  2. Sorry for the late reply.

    See my blog post about "Oyranos LiveCD" . The CD contains most of the stack, based on the openSUSE-11.2 distribution.

    For building yourself you might look at the oyranos-0.1.10 release.
    The mentioned stack is build from following packages:
    kolor-manager from KDE playground SVN

    For libXcm, Elektra and Oyranos use the typical configure, make, make install procedure. In oyranos-0.1.10 do a additional make examples. Then change to the examples dir and do a make install.

    kolor-manager is based on cmake. Read the README on how to build that. But you can switch monitor ICC profiles as well with the oyranos-monitor command line tool.

    Again the OBS repository or the LiveCD might be the easiest path. The LiveCD needs to logging in.

  3. Do you mind adding Fedora 14 to the list?
    Or is it already in the F14 default repos?

Comments are closed.