Resources for colour gamuts in iccMAX
ICC has adopted a face/vertex gamut boundary descriptor in the iccMAX specification. This defines the gamut as an array of vertices on the gamut boundary in PCS colour space, together with an array of indices into the vertex array which give a set of triangles that connect to form a smooth and connected surface. Details are given in the entry for the gamutBoundaryDescType and in Annex B Gamut Boundary Description.RefIccMax incorporates the IccXml tool that can be used to convert between XML and binary representations of an ICC profile. An example of the XML encoding for the gamutBoundaryDescType, as used in IccXml, is given below. This encodes a very simple gamut with 8 vertices and 12 faces.
<gamutBoundaryDescType>
<TagSignature>gbd0</TagSignature>
<Vertices>
<PCSValues channels="3">
100.00 0 0
59.37 -37.37 -49.27
50.95 77.53 -1.74
93.67 -5.69 99.34
26.58 21.49 -45.85
52.40 -69.61 28.25
50.87 71.33 49.98
14.00 0.15 6.53
</PCSValues>
<DeviceValues channels="4">
0 0 0 0
1 0 0 0
0 1 0 0
0 0 1 0
1 1 0 0
1 0 1 0
0 1 1 0
1 1 1 1
</DeviceValues>
</Vertices>
<Triangles>
<T>1 3 2</T>
<T>1 2 6</T>
<T>1 6 4</T>
<T>1 4 7</T>
<T>1 7 3</T>
<T>4 8 7</T>
<T>4 6 8</T>
<T>7 8 3</T>
<T>3 8 5</T>
<T>3 5 2</T>
<T>2 5 8</T>
<T>2 8 6</T>
</Triangles>
</gamutBoundaryDescType>
To form the gamutBoundaryDescType, it is recommended to begin with a regular mesh in device space and convert this to CIELAB, or with a regular mesh in CIELAB space which is converted to device space and back to CIELAB. Methods for doing this were described by Green, Deshpande, Gaykema and Revie (Electronic Imaging, 2017). The face array for such a mesh can be derived as described in Annex B of the iccMAX specification.
A new gamut boundary target which can be used for this purpose was described in Revie and Green (Electronic Imaging, 2018), which has a more uniform spacing of vertices and avoids over-sampling near the gamut cusps. The image, and associated face list, can be downloaded below.
CMYKGamutTarget_v2.tif 16-bit RGB
RGBGamutTarget_v2.tif 16-bit CMYK
A previous version was described by Green (Electronic Imaging, 2000) and in Green, Deshpande, Gaykema and Revie (Electronic Imaging, 2017). These images are available below.
RGBGamutTarget.tif 8-bit RGB
CMYKGamutTarget.tif 8-bit CMYK
16-bit CIELAB (Coordinates of the Perceptual Reference Medium Gamut PRMG)
In addition, an example gamutBoundaryDescType for sRGB gives RGB values and the corresponding face array for the RGBGamutBoundary image, together with vertices encoded in CIELAB for the sRGB gamut.