OpenICC project

OpenICC has two main goals. The first goal is to work out a common set of settings for color savvy applications to share profiles and settings. The second goal is to bring together those developers in areas like printing, display and desktop applications to work together to make color management end to end work for open source applications.

A draft specification is planned at a later stage.

Getting involved

If you are planning to add color management to your software project or you are hardware manufacturer who wishes to extend his clients base by dipping your toes into opensource water, we encourage you to join our mailing list. Subscription page is just round the corner.

Who's taking part

Currently, OpenICC is an informal group of developers exchanging ideas and concepts on integrating ICC color management. Here is a mostly complete list of project developers involved in this discussion:

  • ArgyllCMS, an experimental, open source, ICC compatible color management system.
  • CinePaint, a 16-bit photo retouching application, best suited for video.
  • colord, a system service to manage, install and generate color profiles
  • CUPS, printing software.
  • GraphicsMagick, is the swiss army knife of image processing.
  • GIMP, popular pixel manipulation application
  • GhostScript, an interpreter for the ?PostScript language and for PDF
  • Gutenprint, a set of very high quality drivers for printers, with particular emphasis on inkjets.
  • ImageMagick, image editing collection.
  • Inkscape, a vector graphics editor.
  • Krita, and Karbon, the raster and vector image manipulation applications of the Calligra suite.
  • LittleCMS, a widely used open source color management system.
  • Poppler, a PDF rendering library based on the xpdf-3.0 code base.
  • LPROF, an open source profiler that uses LCMS.
  • Scribus, an open source page layout application.
  • Oyranos, a colour management system for configuration, user interfaces and much more.

Profiles for standard print condition and their licenses

For the creation and exchange of images, vector graphics and documents (e.g. PDF) it makes sense, when applications can use a standard set of ICC-profiles which are preinstalled in an known directoty like eg. share/color/profile on every computer. Currently, different organisations, projects and vendors are offering such standard profile packages with different licenses. Not all licenses are compatible to integrate these profile packages into LINUX distributions.

Furthermore in the graphic arts, there are so called "reference printing conditions" which represent color measurement-data (also called characterization-data) representing a printing standard. Such characterization-data are a basis for calculating ICC-profiles representing a printing standard.

Several packages for standard ICC profiles are containing CMYK-profiles with different names and calculated with different profiling packages but representing the same reference printing condition. The International Color Consortium ICC hosts a registry for worldwide used reference printing conditions.

Future new ICC profiles for OpenICC should use the same reviewed license as the ICC.

An overview about available packages is here OpenIcc/ProfilePackages

ICC is going open source

The ICC itself has began an open source project:

  • http://sourceforge.net/projects/sampleicc/ SampleICC provides an open source platform independent C++ library for reading, writing, manipulating, and applying ICC profiles along with applications that make use of this library.

Legal issues

In the middle of the 90's, there were some patent wars concerning color management. Specifically the company EFI sued a lot of other companies that had implemented an RGB to CMYK conversion in their applications. Actually, it is important to be aware of which color management features are part of the ICC specs, and which are going beyond the ICC specs.

Implementing color management according to ICC specs is very safe. Implementing extended functions that are not part of the ICC specification could may be dangerous. This concerns especially LittleCMS, which is the standard CMM for more or less all open source applications dealing with color management. (Of course, ArgyllCMS also contains a CMM...)

Some of this extended functionality can be very helpful for some use cases. So from the point of view of the user, it makes a lot of sense to implement and use them. One example is enhanced options for CMYK to CMYK conversions. Such functions are useful for the colormanagement of documents for the graphic arts.

It can be implemented as special function for the CMM, or it can be solved by precalculating a devicelink-profile, which is used with a ICC-conforming CMM. If it is, for example, implemented as special function in LittleCMS, a legal issue concerning littleCMS could touch all applications which make use of LittleCMS.

If it is implemented in a standalone software, which generates and delivers a devicelink-profile, the legal issue covers only the standalone software. The use of devicelink-profiles in other software is a standard feature of the ICC specs.

Specifications

Proposals

White papers for enhancing the ICC-specs

Observing real world colormanagement-workflows with ICC-profiles, it is clear that some problems should be solved with better and more clear defined ICC-specs. Actually, some of such enhancements can be done through "white papers". Such a white paper could e.g. describe extended functions of the CMM. One example of such enhancement is the description of Blackpoint Compensation in Adobe Products at *http://www.color.org/Adobe1bpc.pdf

If developers or color management consultants think, that the ICC-specs need some enhancements, the OpenICC wiki could be used as collaborative platform to produce such whitepapers.

Every proposal for an ICC Whitepaper should be a Subpage in the OpenICC wiki and should be structured as following:

  • Which real world use cases are addressed
  • which kind of applications are targeted
  • how should it be implemented technically
  • how should it be implemented in the user interface.

Actual proposals for ICC whitepapers

Better handling of ICC Grey Objects

IccGreyObjects

Device Settings in ICC

ICC meta data tag - the base specification to store a meta data key/value list in ICC profiles.

ICC meta Tag for Monitor Profiles stores device infos from EDID

HDR Rendering Description

The goal of the HdrRenderingDescription is to provide a way of, how to render an LDR representation from a certain HDR image in different applications to appear similar. Such a description should be included into a ICC style colour profile. As one step a OpenIccForGoogleSoC2007 project was underway.

General Topics

Directory scheme for Colour Management

OpenICC Directory Proposal

X Color Management spec

Version 0.4 Draft 1 is public. The goal is to communicate ICC colour regions between server and clients. The implementation is available in libXcm-0.2.x. Some tools and plugin in the Oyranos examples directory support the draft by using libXcm.

Requirements of Applications and Services

Link Collection

PPD colouring

End user applications want to assign ICC profiles to a combination of printer device, a driver and a set of colour related driver options. Thus for PPD to support this scheme, it is necessary to know, which PPD option is colour related. The proposal suggests a enumerated list of PPD key words named ColorKeyWords, containing a semicolon ';' separated list of PPD key words. The listed keys relate to colour and thus with their values to the ICC profile selection at application level.

LINUX color management a proposal for implementation

OpenIcc/LinuxCmProposal describes a roadmap for color management under LINUX with the interaction of

  • A profile repository connecting devices, documents and profiles
  • Engine for ICC color transformations of Image maps
  • Cairo
  • Ghostscript
  • monitor output
  • printer driver (e.g. Gutenprint or Turboprint)
  • CUPS / PPDs
  • File export
  • application interface ColourWiki contains schemes for colour managed printing. They are graphical and in some parts more technical.

Color managed Printing Path

OpenIcc/ColorMangedPrintingPath is a proposal for coordinating developments of Gutenprint, CPD and pdftoraster moduls like e.g. ?GhostScript to create a reliable color managed printing path both for standard users, color enthusiasts and color professionals.

Internet Printing Protocol

The page InternetPrintingProtocol collects informations about color managed printing according the Internet Printing Protocol IPP.

Google SoC

Suggestions for Googles Summer of Code 2012 are here OpenIcc/GoogleSoC2012. Students will find our project goals and ideas, contact persons, requirements and other hints there.

Students who successfully complete their projects will receive a significant stipend from Google for their work. Not our application is not agreed upon. For the older projects and ideas see here OpenIcc/GoogleSoC2011, OpenIcc/GoogleSoC2010, OpenIcc/GoogleSoC2009, OpenIccForGoogleSoC2008 and here OpenIccForGoogleSoC2007.

Events

Linux Color Management Hackfest Brno 9th till 12th November 2012

Elder OpenICC Events


Help for editors

Here is the editing manual http://www.freedesktop.org/wiki/HelpContents