[Openicc] adding informations to ICC profiles

Graeme Gill graeme at argyllcms.com
Thu Nov 24 00:01:53 PST 2005


Kai-Uwe Behrmann wrote:

> Hmm, it is probably difficult to do it in a centralised place like a CMS 
> (still do not know how to distinguish between argyll and oyranos - booth 
> are CMS?).

Typical terms are "CMM" for "Color Management Module" which usually
encompasses file read/write, (dumb) linking and color transformation,
and "CMS" for Color Management System, which generally encompasses
broader functionality. Sometimes "CMM" implies the plug in core
functionality that plugs in an operating system color management facility,
and the latter seems to be referred to as a "CMM" or "CMS",
so it is all rather confusing.

Little CMS is pretty much a CMM. Icclib is almost a CMM (it lacks integer/pixel
transformation machinery, and linking code.) Argyll is a CMS (Color Management
System) in the general sense, not in the "Operating system color management
system" sense.

> My idea is to take a whatever text blob from the device driver and embedd 
> into the profile and give it back to the device driver to convert back to 
> device settings by the driver itself. The idea came me by looking how 
> Gutenprint stores its settings.
> Thus a driver can write an short identifier only, compress (ok that would 
> be a 'data' tag), xml-ise or use a native format like Gutenprint does.

You could use this approach, but another way to go would be to make
it a binary blob, with a leading magic number that identifies the
environment, so that if a profile ends up somewhere else, the
system doesn't accidentally use a blob not intended for it.

Anyone can register a custom tag as far as I know - the
ICC folks have been very good about this sort of thing.

In a philosophical sense, I'm not entirely convinced that this
is the way to go. Part of the idea of ICC profiles is that they
can be useful between different systems.

The other approach is that the color system keeps a record itself
of a particular configuration, and registers the profile in it.

This approach has the advantages that it doesn't require messing
with the profile, and you can register the same profile for multiple
system configurations. The alternative for embedding the configuration
within the profile, is that you have to allow for a list of valid
configurations (much like the "deviceSettingsTag"), or you have
to make multiple copies of the profile for each configuration.

Graeme Gill.


More information about the openicc mailing list