[Openicc] ICC meta Tag for Monitor Profiles 1.0 - DRAFT 5

Kai-Uwe Behrmann ku.b at gmx.de
Sat Jan 14 23:53:57 PST 2012

Here comes the DRAFT 5 of the key/values for monitor states. This version 
is actual in use for data storage in dispcalGUI, the Taxi DB and by 
Oyranos CMS.

Comments are welcome. This specification is planed to be released very 
soon as 1.0 .


ICC meta Tag for Monitor Profiles 1.0
  Kai-Uwe Behrmann, Richard Hughes, Max Derhack, Lars Borg, Florian Höch and others

== Introduction ==
The specification provides means to embed monitor informations 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 informations, 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
informations 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 ==

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

== 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 ==
* DRAFT 1 - initial
* DRAFT 2 - splitting of colorimetry compound, Richard Hughes, use EDID_ prefix, Max Derhack and Lars Borg, use ISO 8601 for dates, Lars Borg
* [http://lists.freedesktop.org/archives/openicc/2010q4/002293.html ICC meta Tag for Monitor Profiles - DRAFT 3] - remove redundant key name parts, synchronise names, Kai-Uwe Behrmann
* DRAFT 4 - use JSON example
* DRAFT 5 - correct JSON example, as pointed out by Florian Höch

detailed history: http://www.oyranos.org/wiki/index.php?title=ICC_meta_Tag_for_Monitor_Profiles_0.1

Kai-Uwe Behrmann
developing for colour management 
www.behrmann.name + www.oyranos.org

More information about the openicc mailing list