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

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


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_primary_red_x:
* EDID_primary_red_y:
* EDID_primary_green_x:
* EDID_primary_green_y:
* EDID_primary_blue_x:
* EDID_primary_blue_y:
* EDID_primary_white_x:
* EDID_primary_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_primary_red_x
Value=0.69043
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_primary_red_y
Value=0.296875
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_primary_green_x
Value=0.205078
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_primary_green_y
Value=0.714844
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_primary_blue_x
Value=0.150391
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_primary_blue_y
Value=0.0449219
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_primary_white_x
Value=0.3125
END DICT_ENTRY

BEGIN DICT_ENTRY
Name=EDID_primary_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 model_id and mnft_id entries. Others might need the
colour_matrix_text_from_edid_redx_redy_greenx_greeny_bluex_bluey_whitex_whitey_gamma
if they can switch colour spaces.
The "week", "year", "mnft_id" and "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


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


PS: Further discussed could be the EDID CMD block. If someone would pass us a
      EDID block containing such data, that would be helpful. Thanks.



More information about the openicc mailing list