[Openicc] ICC meta Tag for Monitor Profiles - DRAFT 3

Kai-Uwe Behrmann ku.b at gmx.de
Wed Dec 1 09:23:01 PST 2010


DRAFT 3 - remove redundant key name parts, synchronise names, Kai-Uwe B.
-------------------------------------------------------------------------

The Draft provides means to embed monitor informations into ICC profiles.

== Introduction ==
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 maintainance 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.


==Definition==
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 (colou 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.



==Example==
The data is a dump of iccDumpProfile from SampleICC
Contents of metaDataTag tag ('meta' = 6D657461)
Type:   dictType
BEGIN DICT_TAG

BEGIN DICT_ENTRY
Name=EDID_manufacturer
Value=HP
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_mnft
Value=HWP
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_model
Value=HP LP2480zx
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_serial
Value=3CM827001W
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_date
Value=2008-W27
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_mnft_id
Value=8944
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_model_id
Value=9973
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_red_x
Value=0.69043
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_red_y
Value=0.296875
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_green_x
Value=0.205078
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_green_y
Value=0.714844
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_blue_x
Value=0.150391
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_blue_y
Value=0.0449219
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_white_x
Value=0.3125
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_white_y
Value=0.329102
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_gamma
Value=2.2
END DICT_ENTRY

END DICT_TAG


==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 colourimetric primaries and gamma if they can switch colour 
spaces.
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
DRAFT 3 - remove redundant key name parts
         - synchronise names, Kai-Uwe Behrmann


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


More information about the openicc mailing list