Linux color management
From Wikipedia, the free encyclopedia
Linux color management involves using accurate International Color Consortium profiles for devices, and using color-managed applications that are aware of these profiles. These applications perform gamut conversions between device profiles and color spaces. Gamut conversions, based on accurate device profiles, are the essence of color management. To accurately profile devices, one needs to use instruments such as colorimeters or spectrophotometers for monitors, and spectrophotometers or spectrocolorimeters for printers.
Contents |
[edit] Monitor calibration and profiling
Monitor calibration on a computer is done preferably with a colorimeter and software that supports it. In most cases, a monitor profile created by the calibration software (whether it relies on a hardware device or on user input) includes both an accurate description of monitor output and instructions to the video card to change the colors it displays. Video card lookup table (LUT) adjustments are usually required to help the display reach the white point and gamma desired by the user.
Monitor calibration is, in that respect, different from calibration of other devices. A monitor profile created by calibration software (as opposed to the profiles supplied by monitor manufacturers) usually includes instructions to the video card that are stored in a special "vcgt" tag of the profile.
Video card LUT adjustments need to be loaded for a monitor to match the description in the profile. Mac OS X loads LUT adjustments automatically, while Linux and Microsoft Windows require standalone LUT loaders. Although such loaders perform just as good a job when adjusting video card output as the operating system would, their existence tends to confuse many people with regards to the function these loaders perform.
[edit] Requirements for a color-managed work flow
- Accurate device profiles
- Correctly loaded video card LUTs (or monitor profiles that do not require LUT adjustments)
- ICC-aware (color-managed) applications that are configured to use a correct monitor profile in their gamut conversions
[edit] Linux implementation
[edit] Device profiles
ICC profiles are cross-platform and can thus be created on other operating systems and used under Linux. Monitor profiles, however, require some additional attention. Since a monitor profile depends both on the monitor itself and on the video card, a monitor profile should only be used with the same monitor and video card with which it was created. The monitor settings should not be adjusted after creating the profile. In addition, since most calibration software use LUT adjustments during calibration, the corresponding LUTs must be loaded every time the X server is started (e.g. with every graphical login).
For users of certain colorimeters such as Xrite DTP-94 and Xrite DTP-92 that come in Monaco OPTIX and ColorEyes bundles, there is an option for calibrating their monitors on Linux. For native Linux monitor calibration, they would need to install Argyll Color Management System (also available from Softpedia). Argyll CMS is a set of command-line utilities. Its dispcal module will let you natively calibrate a monitor under Linux.
To avoid using command-line utilities, or if a colorimeter is unsupported by Argyll CMS (such as Spyder2 or EyeOne), a profile created under Windows or Mac OS X can be used under Linux. Normally the profile has to be created on the same machine with the same monitor settings.
[edit] Display-channel lookup tables
There are two approaches to loading display channel LUTs:
- Create a profile that does not modify video card LUTs and thus does not require LUTs be loaded later on. Ideally, this approach would rely on DDC-capable monitors—the internal monitor settings of which are set via calibration software. Unfortunately, monitors capable of making these adjustments through DDC are not common and are generally expensive. Moreover, there is presently no calibration software on Linux that can interact with a DDC monitor.
For mainstream monitors, a couple of options exist. BasICColor software, which works with most colorimeters on the market, allows one to adjust display output via the monitor interface, and then to choose a "Profile, do not calibrate" option. By doing this, one can create a profile that does not require video card LUT adjustments.
For EyeOne devices, EyeOne Match allows the user to calibrate to "Native" gamma and white point targets, which results in the LUT adjustment curves displayed after the calibration as a simple, linear 1:1 mapping (a straight line from corner to corner). Both BasICColor and EyeOne Match do not presently run under Linux but they are capable of creating a profile that does not require LUT adjustments.
- Use an LUT loader to actually load the LUT adjustments contained within the profile prepared during calibration. According to the documentation, these loaders do not modify the video card LUT by itself, but achieve the same type of adjustment by modifying the X server gamma ramp. Loaders are available for Linux distributions that use X.org or XFree86—the two most popular X servers on Linux. Other X servers are not guaranteed to work with the currently available loaders. There are two LUT loaders available for Linux:
If, for any reason, the LUT cannot be loaded, it is still recommended to go through the initial stages of calibration where a user is asked by calibration software to make some manual adjustments to the monitor, as this will often improve display linearity and also provide information on its colour temperature. This is especially recommended for CRT monitors.
[edit] Color-managed applications
In ICC-aware applications, it is important to make sure the correct profiles are assigned to devices, mainly to the monitor and the printer. Linux applications are currently unable to automatically detect display profiles, so the profiles must be applied manually in each program.
Although there is no designated place to store device profiles on Linux, /usr/share/color/icc/
has become a de facto standard, used by several applications.
Applications running under WINE are currently untested for color accuracy. Technically, if an application performs its gamut conversion based on the same monitor profile that is used for loading the LUT, then there is no obvious reason why the result would be inaccurate. The corresponding LUT adjustments do need to be loaded though.
[edit] Linux color-managed applications
- GIMP, the GNU Image Manipulation Program (CMS is available in the 2.3 development version)
- Cinepaint, a 16-bit-capable image editor
- Krita and Karbon14, an image editor and vector graphics editor, respectively (parts of KOffice)
- Scribus, page layout software (using Little CMS)
- digiKam, a digital photo management program for KDE (using Little CMS)
- Bibble Pro, a RAW digital image converter
- Pixel, an image editor (supports 8bit/16bit RGB, CMYK, Lab, 32bit HDR, and RAW files)
- Lightzone for Linux, an image editor and RAW processor
- UFRaw, a RAW converter and GIMP plugin
- PhotoPrint, a utility designed to assist in the process of printing digital photographs (prints with GutenPrint)
- GQview, an image viewer and photo organizer
- XSane, scanning frontend for Scanner_Access_Now_Easy (CMS support since XSane-0.992/0.993)
- lprof, ICCv2 compliant Hardware Color Profiler for cameras, scanners and monitors
[edit] Libraries
- Little CMS, a small-footprint, speed-optimized, open source color management engine
- babl, an extensible library for color conversions (used in GEGL)
[edit] External links
- Color 'round Linux - Several articles by Nicolas Vilars with technical installation instructions. Nicolas also checks the accuracy of Xcalib using a colorimeter.
- Graeme Gill (2006). Typical usage Scenarios and Examples. Argyll CMS. Retrieved on 2007-01-15. Argyll developer's point of view on how to use their software. A bit too technical
- Nathan Willis (2005-03-15). Looking good: Basic color management for X. NewsForge. Retrieved on 2007-01-15. An overview article with no reference to accurate monitor profiling
- OpenIcc. freedesktop.org. Retrieved on 2007-01-15. Coordinated open source color management effort. Has a list of applications whose developers are taking part in the project
- Color management with Scribus, an Introduction. Scribus Open Source Desktop Publishing. Retrieved on 2007-01-15. An overview of using monitor- and printer profiles in Scribus
- Kai-uwe Behrmann. Behrmann.name. Retrieved on 2007-01-15. Home of ICC Examin and Oyranos. Also maintains a feed of latest news in Linux color management
- "hteeuwen". Color management links exchange. Digital Outback Photo. Retrieved on 2007-01-15. The most comprehensive list of general color management links; "not related to Linux" implementation