[Openicc] [ANNOUNCE] ICC meta Tag for Monitor Profiles 1.0

Kai-Uwe Behrmann ku.b at gmx.de
Sun Jan 29 04:09:21 PST 2012

I am pleased to announce a new OpenICC recommendation on 
freedesktop.org intended for broad usage in colour management software.

The following link contains the actual document and future updates:

Thanks to all contributors, who made this document possible through 
discussions and by ground work on the ICC meta tag specification.

Kai-Uwe Behrmann


= ICC meta Tag for Monitor Profiles 1.0 =

Revision History:

|| Revision 1.0 || 2012-01-29 || Kai-Uwe Behrmann || Initial release. 
Thanks to Max Derhack, Lars Borg, Richard Hughes, Florian Höch and others 
for feedback. ||

== Introduction ==
The specification provides means to embed monitor information into ICC 

ICC profile vendors have to maintain different installation procedures to
register ICC device profiles on a client machine. This is either fully
customised, but only for certain operating systems, or an manual error
prone task through the required user interaction. With ICC profiles for
monitors containing device information, it will be easy for colour
management systems to identify monitors and use a matching ICC profile
without special registration in the system. This allows for easy
preselection and implicit configuration. The advantage for vendors are
less maintenance costs and better cross platform support in a flexible
manner. Users benefit by the implementation of this proposal through a
simplified and more robust colour management system. Adding of device
information to ICC profiles can be assisted through according tools.

This proposal defines key/value pairs for storing into a ICC display
profiles meta tag. Consequently only colour management and device
identification related properties are considered for inclusion.
A explicit configuration in a given CMS shall override such implicit
mechanisms as defined by this proposal.

== Specification ==

This version is based on the 
Configuration 0.1]].

=== Keys ===
The following key/value pairs are defined

  * (key: value)
  * EDID_mnft:         decoded three byte string from EDID address 8-9
  * EDID_manufacturer: mapping of mnft to a full string - only for displaying
  * EDID_mnft_id:      MSB decoded numerical representation of EDID address 8-9
  * EDID_model_id:     LSB decoded numerical representation of EDID address 10-11
  * EDID_date:         decoded year of production from EDID address 17 and week of production from EDID address 16
  * EDID_red_x:
  * EDID_red_y:
  * EDID_green_x:
  * EDID_green_y:
  * EDID_blue_x:
  * EDID_blue_y:
  * EDID_white_x:
  * EDID_white_y:
  * EDID_gamma:

The ''EDID_[red,green,blue,white]_'' prefixed keys and ''EDID_gamma'' 
contain floats with decimal
point. The values are decoded from EDID address 25-34 (colour primaries)
plus address 23 (gamma).

  * EDID_model:        decoded string from EDID text section 54 till 125 of typical type 252
  * EDID_serial:       decoded string from EDID text section 54 till 125 of typical type 255

Detailed instructions how to decode EDID can be obtained from VESA through
the Enhanced Extended Display Identification Data Standard (E-EDID) - Rel.
A, 1.0 .

A parser must be prepared to interpret the contained values numerically
and not always textual as is otherwise preferred.

=== Example ===
    "org": {
      "freedesktop": {
        "openicc": {
          "device": {
            "monitor": {
              "prefix": "EDID_",
              "EDID_red_y": "0.339844",
              "EDID_red_x": "0.639648",
              "EDID_mnft_id": "7789",
              "EDID_blue_x": "0.144531",
              "EDID_manufacturer": "Goldstar Company Ltd",
              "EDID_green_y": "0.615234",
              "EDID_green_x": "0.290039",
              "EDID_white_y": "0.329102",
              "EDID_white_x": "0.313477",
              "EDID_date": "2007-T5",
              "EDID_gamma": "2.2",
              "manufacturer": "Goldstar Company Ltd",
              "mnft": "GSM",
              "EDID_blue_y": "0.0703125",
              "EDID_mnft": "GSM",
              "EDID_model": "L203WT",
              "model": "LG Flatron L203W",
              "EDID_model_id": "20030"

== Discussion ==
A tag to embed the complete EDID data block is defined. But that serves
different goals. Namely it is not possible to support a wider range of
devices by this approach.

To create a generic meta tag, the serial number and possibly production
times need to be stripped from the meta tag, if they are considered non
relevant in regards of colour rendering. Most monitors series will be well
identified by the EDID_model_id and EDID_mnft_id entries. Others might
need the colorimetric primaries and gamma if they can switch colour

The "EDID_date", "EDID_mnft_id" and "EDID_model_id" keys might contain
value ranges as allowed by the ICC meta tag definition.

Numeric matching of tags depends precision as allowed by the EDID
specification. As a informal hint, a delta of +-0.0005 might be good
enough to match colorimetry origin from EDID.

== References ==
  1. ICC - http://www.color.org/
  2. meta tag - http://www.color.org/ICCSpecRevision_25-02-10_dictType.pdf
  3. VESA - http://www.vesa.org/
  4. EDID - Enhanced Extended Display Identification Data Standard (E-EDID) - Rel. A, 1.0
  4.1 http://en.wikipedia.org/wiki/EDID (overview)
  5. ISO 8601 - Data elements and interchange formats – Information interchange – Representation of dates and times

== Changes ==
  * [[http://lists.freedesktop.org/archives/openicc/2010q4/002273.html|DRAFT 1]] - initial
  * [[http://lists.freedesktop.org/archives/openicc/2010q4/002283.html|DRAFT 2]] - use EDID_ prefix, Max Derhack and Lars Borg, use ISO 8601 for dates, Lars Borg, splitting of colorimetry compound, Richard Hughes
  * [[http://lists.freedesktop.org/archives/openicc/2010q4/002293.html|DRAFT 3]] - remove redundant key name parts, synchronise names
  * [[http://lists.freedesktop.org/archives/openicc/2011q4/004431.html|DRAFT 4]] - use JSON example
  * [[http://lists.freedesktop.org/archives/openicc/2012q1/004460.html|DRAFT 5]] - correct JSON example, as pointed out by Florian Höch
  * 1.0 - add hint about error delta, clarify colorimetric prefixes

2010-2012 © Kai-Uwe Behrmann

More information about the openicc mailing list