Linux color management

Linux color management

Linux color management has the same goal as the color management systems (CMS) for other operating systems: to achieve the best possible color reproduction throughout an imaging workflow from its source (camera, video, scanner…), onto imaging software (CinePaint, Digikam, GIMP, Krita, Scribus ...) and finally its output (monitor, video projector, printer...). In particular, color management attempts to support WYSIWYG (What You See Is What You GET)) on-screen previewing (soft-proofing) ability for color work such as retouching prior to printing.

Linux color management relies on the use of accurate International Color Consortium (ICC) profiles describing the behavior of devices such as digital cameras, monitors or printers, and 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.

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 or Mac OS X. 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-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:
* [http://www.argyllcms.com/ 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. However, Argyll CMS is still not available as a package in many Linux distributions today, and thus requires manual compilation and installation.
* [http://lprof.sourceforge.net/ 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 (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 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.

Monitor calibration and profiling

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 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.

Monitor calibration and profiling: Linux implementation

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 Spyder 2 [cite web | title = ArgyllCMS V0.70 Beta 7 test now available | url = http://www.freelists.org/archives/argyllcms/10-2007/msg00031.html | accessdate = 2007-12-29] 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 [http://www.argyllcms.com/index.html Argyll Color Management System] (also available from [http://linux.softpedia.com/get/Programming/Libraries/Argyll-Color-Management-System-4795.shtml Softpedia] ). Argyll CMS is a set of command-line utilities. Its [http://www.argyllcms.com/doc/dispcal.html 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 EyeOne), 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:

# 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:
#* [http://www.etg.e-technik.uni-erlangen.de/web/doe/xcalib/ Xcalib] is one such loader, and although it is a command-line utility, it is quite easy to use.
#* [http://www.argyllcms.com/doc/dispwin.html 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" standard, used by several applications.

Most applications running under WINE 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, the GNU Image Manipulation Program (CMS is available in the 2.3 development version and later versions)
* 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)
* [http://www.bibblelabs.com/ Bibble Pro] , a RAW digital image converter
* [http://www.kanzelsberger.com/pixel/ Pixel] , an image editor (supports 8bit/16bit RGB, CMYK, Lab, 32bit HDR, and RAW files)
* [http://www.lightcrafts.com/linux/index.html LightZone] , an image editor and RAW processor
* [http://ufraw.sourceforge.net/index.html UFRaw] , a RAW converter and GIMP plugin
* [http://www.rawtherapee.com RawTherapee] , a RAW converter (supports 8bit/16bit RGB)
* [http://www.blackfiveservices.co.uk/photoprint.shtml PhotoPrint] , a utility designed to assist in the process of printing digital photographs (prints with GutenPrint)
* GQview, an image viewer and photo organizer
* [http://www.xsane.org XSane] , scanning frontend for Scanner Access Now Easy (CMS support since XSane-0.992/0.993)
* [http://lprof.sourceforge.net/ LPROF] , ICCv2 compliant Hardware Color Profiler for cameras, scanners and monitors
* [http://www.etg.e-technik.uni-erlangen.de/web/doe/xcalib/ xcalib] - xcalib is a tiny monitor calibration loader for XFree86 (or X.org) and MS-Windows
* Inkscape, a user-friendly, standards-compliant vector graphics editor that uses SVG as its native file format (CMS is available as of version 0.46)
* [http://photobatch.stani.be Phatch] 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, ...

External links

* [http://linux.vilars.com/ Color 'round Linux] - Several articles by Nicolas Vilars with technical installation instructions. Nicolas also checks the accuracy of Xcalib using a colorimeter.
* 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
* [http://burtonini.com/blog/computers/xicc XICC] ICC Profiles In X Specification by Ross Burton
* 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
* [http://www.littlecms.com/ Little CMS] , a small-footprint, speed-optimized, free software color management engine
* [http://www.gegl.org/babl/ babl] , an extensible library for color conversions (used in GEGL)

References


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • 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… …   Wikipedia

  • Gestión del color — Dentro de los sistemas de imagen digital, la Gestión del color es la conversión controlada entre las representaciones del color de varios dispositivos, como escáneres, monitores, pantallas de TV, filmadoras, impresoras offset y medios similares.… …   Wikipedia Español

  • Avaya Unified Communications Management — Developer(s) Nortel (now Avaya) Operating system MS Windows, and Linux Type Unified Communications Configuration and Management Avaya Unified Communications Management in computer networking is the name of a collection o …   Wikipedia

  • GIMP — Infobox Software name = GIMP caption = GIMP 2.6.0 running on KDE. developer = [http://developer.gimp.org/ The GIMP Development Team] released = 1995 frequently updated = yes programming language = C platform = Cross platform language =… …   Wikipedia

  • LittleCMS — Infobox Software name = Little CMS logo = caption = developer = latest release version = 1.17 latest release date = July 28, 2007 operating system = Cross platform genre = Color management license = MIT License website =… …   Wikipedia

  • UFRaw — Infobox software name = UFRaw caption = author = Udi Fuchs developer = programming language = C released = latest release version = 0.13, based on DCRaw v 8.80. latest release date = November 12, 2007 latest preview version = latest preview date …   Wikipedia

  • Управление цветом — В системах цифрового представления цвета, управление цветом  это контролируемое преобразование между разными моделями представления цвета различных устройств, таких как сканеры, цифровые видеокамеры, мониторы, Экраны телевизоров, принтеры… …   Википедия

  • Rawstudio — Infobox software name = Rawstudio caption = author = Anders Brander Anders Kvist developer = released = latest release version = 1.0 latest release date = release date|2008|4|19 latest preview version = latest preview date = operating system =… …   Wikipedia

  • Krita — Infobox Software name = Krita caption = Krita 1.6 developer = The Krita Team latest release version = 1.6.3 latest release date = release date|2007|6|07 latest preview version = 2.0 alpha 9 latest preview date = release date|2008|7|16 operating… …   Wikipedia

  • Abkürzungen/Computer — Dies ist eine Liste technischer Abkürzungen, die im IT Bereich verwendet werden. A [nach oben] AA Antialiasing AAA authentication, authorization and accounting, siehe Triple A System AAC Advanced Audio Coding AACS …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”