Linux color management
Encyclopedia
Linux color management has the same goal as the color management systems
Color management
In digital imaging systems, color management is the controlled conversion between the color representations of various devices, such as image scanners, digital cameras, monitors, TV screens, film printers, computer printers, offset presses, and corresponding media.The primary goal of color...

 (CMS) for other operating systems: to achieve the best possible color reproduction throughout an imaging workflow from its source (camera, video, scanner, etc.), through imaging software (CinePaint
CinePaint
CinePaint is an open source computer program for painting and retouching bitmap frames of films. It is a fork of version 1.0.4 of the GNU Image Manipulation Program...

, Digikam
DigiKam
digiKam is an image organizer and editor using KDE Platform. It runs on most known desktop environments and window managers if the required libraries are installed. It supports all major image file formats, and can organize collections of photographs in directory-based albums, or dynamic albums by...

, GIMP
GIMP
GIMP is a free software raster graphics editor. It is primarily employed as an image retouching and editing tool and is freely available in versions tailored for most popular operating systems including Microsoft Windows, Apple Mac OS X, and Linux.In addition to detailed image retouching and...

, Krita
Krita
Krita is the digital painting and illustration software included based on the KDE Platform and Calligra Suite libraries. Designed as a digital painting and illustration suite, Krita is free software and distributed under GNU General Public License...

, Scribus
Scribus
Scribus is a desktop publishing application, released under the GNU General Public License as free software. It is based on the free Qt toolkit, therefore native versions are available for Linux, Unix-like operating systems, Mac OS X, Microsoft Windows, and OS/2...

, etc.), and finally onto an output medium (monitor
Computer display
A monitor or display is an electronic visual display for computers. The monitor comprises the display device, circuitry, and an enclosure...

, video projector
Video projector
A video projector is an image projector that receives a video signal and projects the corresponding image on a projection screen using a lens system. All video projectors use a very bright light to project the image, and most modern ones can correct any curves, blurriness, and other...

, printer
Computer printer
In computing, a printer is a peripheral which produces a text or graphics of documents stored in electronic form, usually on physical print media such as paper or transparencies. Many printers are primarily used as local peripherals, and are attached by a printer cable or, in most new printers, a...

, etc.). In particular, color management attempts to support WYSIWYG
WYSIWYG
WYSIWYG is an acronym for What You See Is What You Get. The term is used in computing to describe a system in which content displayed onscreen during editing appears in a form closely corresponding to its appearance when printed or displayed as a finished product...

 (What You See Is What You Get) on-screen previewing (soft-proofing) ability for color work such as retouching prior to printing. Note that in practice, best is determined according to some algorithm and may not correspond well to what a human eye would consider best.

Linux color management relies on the use of accurate International Color Consortium
International Color Consortium
The International Color Consortium was formed in 1993 by eight industry vendors in order to create a universal color management system that would function transparently across all operating systems and software packages....

 (ICC) profiles describing the behavior of devices such as digital cameras, monitors or printers, and color-managed
Color management
In digital imaging systems, color management is the controlled conversion between the color representations of various devices, such as image scanners, digital cameras, monitors, TV screens, film printers, computer printers, offset presses, and corresponding media.The primary goal of color...

 applications
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

 that are aware of these profiles. These applications perform gamut
Gamut
In color reproduction, including computer graphics and photography, the gamut, or color gamut , is a certain complete subset of colors. The most common usage refers to the subset of colors which can be accurately represented in a given circumstance, such as within a given color space or by a...

 conversions between device profiles and color space
Color space
A color model is an abstract mathematical model describing the way colors can be represented as tuples of numbers, typically as three or four values or color components...

s. Gamut conversions, based on accurate device profiles, are the essence of color management.

Historically, color management was not an initial design consideration of the X11 display system on which much of Linux graphics support rests, and thus color managed workflows have been somewhat more challenging to implement on Linux than under OS's such as Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 or Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

. This situation is now being progressively remedied, however it must be admitted that color management under Linux, while functional, has not yet acquired mature status. Although it is now possible to obtain a very consistent color management workflow under Linux, certain problems still remain:
  • The absence of a central user control panel for color settings.
  • Many hardware devices for color calibration lack drivers and proper supporting software on Linux.
  • Some necessary software such as LUT loaders can seldom be found in the package repositories of even the major Linux distributions.


Since ICC color profiles are written to an open specification, they are compatible across OS's. Hence, a profile produced on a specific OS should work on any other OS given the availability of the necessary software to read it and perform the gamut conversions. This can be used as a workaround for the lack of support for certain spectrophotometers or colorimeters under Linux: one can simply produce a profile on a different OS and then use it in a Linux workflow. Additionally, certain hardware, such as most printers and certain monitors, can be calibrated under another OS and then used in a fully color-managed workflow on Linux.

Requirements for a color-managed workflow

  • Accurate device profiles obtained with source or output characterization software.
  • Correctly loaded video card LUTs (or monitor profiles that do not require LUT adjustments).
  • ICC
    International Color Consortium
    The International Color Consortium was formed in 1993 by eight industry vendors in order to create a universal color management system that would function transparently across all operating systems and software packages....

    -aware (color-managed) applications that are configured to use a correct monitor profile in their gamut conversions.

Software for input and output profiling

Two most popular Linux tools for device profiling are:
  • Argyll Color Management System (Argyll CMS) is a command line only collection of tools. Argyll CMS covers a wide range of needs from source or output characterization to monitor LUT loading and more. Argyll CMS is available as a package in Ubuntu
    Ubuntu (operating system)
    Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...

    , Debian
    Debian
    Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...

     testing, openSUSE
    OpenSUSE
    openSUSE is a general purpose operating system built on top of the Linux kernel, developed by the community-supported openSUSE Project and sponsored by SUSE...

     (Build Service) and Fedora
    Fedora (operating system)
    Fedora is a RPM-based, general purpose collection of software, including an operating system based on the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat...

     and as a generic x86 Linux binary installation from the web site, along with source code under the GPL. There is also one GUI which eases the calibration of LCD and CRT monitors with Argyll, called dispcalGUI.
  • LPROF (or LCMS Profiler) is a GUI tool that is able to produce profiles for cameras, scanners and monitors. LPROF was originally designed simply to demonstrate LittleCMS
    LittleCMS
    LittleCMS or LCMS is an open source color management system, released as a software library for use in other programs which will allow the use of International Color Consortium profiles. It is licenced under the MIT License Agreement....

     (LCMS) capabilities, but in 2005, LPROF development has been resumed by a new team. It is the only GUI-based profiling tool under Linux today, and it is available as a package from several Linux distributions.


As with any other OS platform, calibration and profiling requires:
  • to acquire through a source device (scanner, camera…) a color patch target that the profiling software will compare to the manufacturer-provided color values of the target.
  • or for output (monitor, printer), reading with a specific device (spectrophotometer, colorimeter
    Colorimeter
    For articles on Colorimeter see:* Colorimeter * Tristimulus colorimeter...

     or spectrocolorimeter) the value of color patches and comparing the measured color values against the values originally sent for output.


To produce a profile for a source device is usually simple with Argyll CMS or LPROF, provided the device is supported under Linux. Producing a profile for an output device can be more involved as not many spectrophotometers or colorimeters are currently supported under Linux.

General considerations

One of the critical pieces in any color managed workflow is the monitor. Because, at one step or another, handling and making color adaptation through imaging software is required for most images, the capability for the monitor to deliver colors as accurately as possible is important.

Monitor calibration
Color calibration
The aim of color calibration is to measure and/or adjust the color response of a device to a known state. In ICC terms this is the basis for a additional color characterization of the device and later profiling. In non ICC workflows calibration refers sometimes to establishing a known relationship...

 on a computer
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...

 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
White point
A white point is a set of tristimulus values or chromaticity coordinates that serve to define the color "white" in image capture, encoding, or reproduction. Depending on the application, different definitions of white are needed to give acceptable results...

 and gamma
Gamma correction
Gamma correction, gamma nonlinearity, gamma encoding, or often simply gamma, is the name of a nonlinear operation used to code and decode luminance or tristimulus values in video or still image systems...

 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
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 and Microsoft Windows 7 load LUT adjustments automatically, while Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 and older versions of Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 require standalone LUT loaders. Although such loaders perform just as good a job when adjusting video card output as the operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 would, their existence tends to confuse many people with regards to the function these loaders perform.

Device profiles

ICC
International Color Consortium
The International Color Consortium was formed in 1993 by eight industry vendors in order to create a universal color management system that would function transparently across all operating systems and software packages....

 profiles are cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

 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
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

 is started (e.g. with every graphical login).

For users of certain colorimeters such as Spyder 2 or 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. Argyll CMS is a set of command-line utilities. Its dispcal module will let you natively
Native mode
The term native mode or native code is used in computing in two related senses.*to describe something running on a computer natively or in native mode meaning that it is running without any external support as contrasted to running in emulation....

 calibrate a monitor under Linux.

To avoid using command-line utilities, or if a colorimeter is unsupported by Argyll CMS, a profile created under Windows or Mac OS X can be used under Linux. Alternately, soon-to-be-released (at time of writing) versions of LPROF include a graphical monitor profiler with colorimeter support. Monica is a small fltk-based utility to create and load simple RGB-Gamma Monitorprofiles using xgamma. Normally the profile has to be created on the same machine with the same monitor settings.

Display-channel lookup tables

There are two approaches to loading display channel LUTs:
  1. 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

    Display Data Channel
    The Display Data Channel or DDC is a collection of digital communication protocols between a computer display and a graphics adapter that enables the display to communicate its supported display modes to the adapter and to enable the computer host to adjust monitor parameters, such as brightness...

    -capable monitors—the internal monitor settings of which are set via calibration software. Unfortunately, monitors capable of making these adjustments through DDC
    Display Data Channel
    The Display Data Channel or DDC is a collection of digital communication protocols between a computer display and a graphics adapter that enables the display to communicate its supported display modes to the adapter and to enable the computer host to adjust monitor parameters, such as brightness...

     are not common and are generally expensive. Moreover, there is presently no calibration software on Linux that can interact with a DDC
    Display Data Channel
    The Display Data Channel or DDC is a collection of digital communication protocols between a computer display and a graphics adapter that enables the display to communicate its supported display modes to the adapter and to enable the computer host to adjust monitor parameters, such as brightness...

     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

    Interface (computer science)
    In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...

    , and then to choose a "Profile, do not calibrate" option. By doing this, one can create a profile that does not require video card
    Video card
    A video card, Graphics Card, or Graphics adapter is an expansion card which generates output images to a display. Most video cards offer various functions such as accelerated rendering of 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or the ability to connect multiple monitors...

     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

    Linear
    In mathematics, a linear map or function f is a function which satisfies the following two properties:* Additivity : f = f + f...

     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.

  2. 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 distribution
    Linux distribution
    A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...

    s that use X.org
    X.Org
    X.Org refers to several things related to the X Window System:* X.Org, the organisation in charge of X standards from 1999 * The X.Org Foundation, a community-based foundation which took over X stewardship in 2004...

     or XFree86
    XFree86
    XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and is now available for many other operating systems and platforms. It is free and open source software under the XFree86 License version 1.1. It is developed by the...

    —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:
    • Xcalib is one such loader, and although it is a command-line utility, it is quite easy to use.
    • dispwin is a part of Argyll CMS.
    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.

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
De facto
De facto is a Latin expression that means "concerning fact." In law, it often means "in practice but not necessarily ordained by law" or "in practice or actuality, but not officially established." It is commonly used in contrast to de jure when referring to matters of law, governance, or...

standard, used by several applications.

Most applications running under WINE
Wine (software)
Wine is a free software application that aims to allow computer programs written for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like...

 have not been fully tested for color accuracy. While 8-bpp programs can have some color resolution difficulties due to depth conversion errors, colors in higher-depth applications should be accurate, as long as those programs perform their gamut conversions based on the same monitor profile as that used for loading the LUT. The corresponding LUT adjustments do need to be loaded though.

A list of Linux color-managed applications

  • GIMP
    GIMP
    GIMP is a free software raster graphics editor. It is primarily employed as an image retouching and editing tool and is freely available in versions tailored for most popular operating systems including Microsoft Windows, Apple Mac OS X, and Linux.In addition to detailed image retouching and...

    , the GNU
    GNU
    GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...

     Image Manipulation Program (CMS is available in the 2.3 development version and later versions)
  • Firefox (since version 3, turned on by default since v3.5), a Web browser
  • CinePaint
    CinePaint
    CinePaint is an open source computer program for painting and retouching bitmap frames of films. It is a fork of version 1.0.4 of the GNU Image Manipulation Program...

    , a 16-bit-capable image editor
  • Krita
    Krita
    Krita is the digital painting and illustration software included based on the KDE Platform and Calligra Suite libraries. Designed as a digital painting and illustration suite, Krita is free software and distributed under GNU General Public License...

     and Karbon14
    Karbon14
    Karbon14 is a vector graphics editor. It is a component of Calligra Suite, an integrated graphic art and office suite by KDE...

    , an image editor and vector graphics editor
    Vector graphics editor
    A vector graphics editor is a computer program that allows users to compose and edit vector graphics images interactively on a computer and save them in one of many popular vector graphics formats, such as EPS, PDF, WMF, SVG, or VML....

    , respectively (parts of KOffice
    KOffice
    Calligra Suite is a graphic art and office suite by KDE created from KOffice in 2010. It is available for desktop PCs, tablet computers, and smartphones...

    )
  • Scribus
    Scribus
    Scribus is a desktop publishing application, released under the GNU General Public License as free software. It is based on the free Qt toolkit, therefore native versions are available for Linux, Unix-like operating systems, Mac OS X, Microsoft Windows, and OS/2...

    , page layout
    Page layout
    Page layout is the part of graphic design that deals in the arrangement and style treatment of elements on a page.- History and development :...

     software (using Little CMS)
  • digiKam
    DigiKam
    digiKam is an image organizer and editor using KDE Platform. It runs on most known desktop environments and window managers if the required libraries are installed. It supports all major image file formats, and can organize collections of photographs in directory-based albums, or dynamic albums by...

    , a digital photo management
    Digital asset management
    Digital asset management consists of management tasks and decisions surrounding the ingestion, annotation, cataloguing, storage, retrieval and distribution of digital assets...

     program for KDE
    KDE
    KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

     (using Little CMS)
  • F-Spot
    F-Spot
    F-Spot is an image organizer, designed to provide personal photo management for the GNOME desktop environment. The name is a play on the words F-Stop and G-Spot.-Features:...

    , a digital photo management
    Digital asset management
    Digital asset management consists of management tasks and decisions surrounding the ingestion, annotation, cataloguing, storage, retrieval and distribution of digital assets...

     program for GNOME
    GNOME
    GNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software...

  • Bibble Pro
    Bibble (software)
    Bibble is a digital imaging program for multiple platforms by Bibble Labs, designed to assist photographers in post-production work and efficient optimization of images created in the Raw image format.- Bibble 5 :...

    , a RAW
    RAW image format
    A camera raw image file contains minimally processed data from the image sensor of either a digital camera, image scanner, or motion picture film scanner. Raw files are so named because they are not yet processed and therefore are not ready to be printed or edited with a bitmap graphics editor...

     digital image converter
  • Pixel Studio Pro, an image editor (supports 8bit/16bit RGB, CMYK, Lab, 32bit HDR, and RAW files)
  • LightZone
    LightZone
    LightZone is a digital photo editor software application from Light Crafts. Its main purpose is to handle the workflow when handling images in various RAW formats. It's comparable to Adobe Systems's Photoshop Lightroom.- History :...

    , an image editor and RAW processor
  • UFRaw
    UFRaw
    UFRaw is an application which can read and manipulate photographs in raw image formats, as created by many digital cameras. UFRaw is available both as a stand-alone utility, as a GIMP and CinePaint plugin, and in F-Spot via the DevelopInUFRaw extension...

    , a RAW converter and GIMP
    GIMP
    GIMP is a free software raster graphics editor. It is primarily employed as an image retouching and editing tool and is freely available in versions tailored for most popular operating systems including Microsoft Windows, Apple Mac OS X, and Linux.In addition to detailed image retouching and...

     plugin
  • RawTherapee, a RAW converter (supports 8-bit/16-bit RGB)
  • PhotoPrint, a utility designed to assist in the process of printing digital photographs (prints with GutenPrint)
  • GQview
    GQView
    GQview is a free software image viewer created by John Ellis using the GTK+ toolkit, designed to run on the X Window System. For MS Windows, an unofficial port is also available....

    , an image viewer and photo organizer
  • Geeqie, an image viewer and photo organizer
  • XSane, scanning frontend for Scanner Access Now Easy
    Scanner Access Now Easy
    Scanner Access Now Easy is an application programming interface that provides standardized access to any raster image scanner hardware ....

     (CMS support since XSane-0.992/0.993)
  • LPROF, ICCv2-compliant Hardware Color Profiler for cameras, scanners and monitors
  • xcalib - xcalib is a tiny monitor calibration loader for XFree86 (or X.Org) and MS-Windows
  • Inkscape
    Inkscape
    Inkscape is a free software vector graphics editor, licensed under the GNU General Public License. Its goal is to implement full support for the Scalable Vector Graphics 1.1 standard....

    , a user-friendly, standards-compliant vector graphics editor
    Vector graphics editor
    A vector graphics editor is a computer program that allows users to compose and edit vector graphics images interactively on a computer and save them in one of many popular vector graphics formats, such as EPS, PDF, WMF, SVG, or VML....

     that uses SVG as its native file format (CMS is available as of version 0.46)
  • Phatch
    Phatch
    Phatch is a raster graphics editor used to batch process digital graphics and photographs. Phatch can be used on the desktop as a GUI program or on the server as a console program.- Operation :...

     PHoto bATCH processor and exif renamer, which supports RGB(A), CMYK, YCbCr, I (32-bit integer pixels) and F (32-bit floating point pixels). It has a lot of features: scaling, cropping, rotating, shadows, rounded corners, reflection, perspective, ...
  • PixInsight, an image processing software platform specialized in astrophotography and other technical imaging fields.

External links

Argyll developer's point of view on how to use their software. A bit too technical Coordinated open source color management effort. Has a list of applications whose developers are taking part in the project
  • ICC Profiles In X Specification An overview of using monitor- and printer profiles in Scribus Home of ICC Examin and Oyranos. Also maintains a feed of latest news in Linux color management The most comprehensive list of general color management links; "not related to Linux" implementation
  • Little CMS, a small-footprint, speed-optimized, free software
    Free software
    Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

    color management engine
  • Color Management in Fedora
  • GNOME Color Manager
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK