International Color Consortium

Making color seamless between devices and documents

Member Login

Goals for profile assessment

ICC recommends the following checklist for creating or assessing ICC v4 profiles. These goals are intended to avoid security risks, ensure conformance with the ICC specification, and enable a common framework for reporting profile quality.


On this page we summarize the recommended assessment criteria for ICC profiles. We recommend that all profile builders validate profiles against these criteria. These criteria apply to all profile versions unless stated. ICC specification section numbers relate to ISO 15076-1:2025 (based on ICC.1:2022).

Security

Permitted data colour spaces and associated channels can be found in section 7, table 20 of the ICC specification.

The profile header is defined in section 7.2 of the ICC specification.

Signatures for these elements can be found in the ICC signature registry. Zero is hex zero (00h).

See section 8.6 in the ICC specification for details of DeviceLink class profiles.

Note: The PCS of a DeviceLink profile should match the data colour space of the last profile in the profile sequence used to build the profile. In an iccMAX profile other connection spaces are possible, including spectral or multiplex.

See section 7.3 of the ICC specification for details of tag table construction.

If the profile is constructed as described in this section there is no room for malware. Profiles can be checked against a current database of malware signatures.

If the EOF is correctly placed, with no additional bytes before or after, malware cannot be inserted at the end of the profile.

iccMAX profiles have unrestricted processing elements, and care should be taken to avoid these requiring excessive memory or processing operations. ICC recommends that an estimate of computation cost is provided, in terms of bytes per pixel and floating point operations per pixel.

ICC recommends that private tags are not used in a profile, although it is recognised that some vendors prefer to insert such tags. Where present, tags should ideally not include processing elements, to ensure consistency across CMMs. Profile creators should consider use of the dictType metadata tag in place of a private tag.

Profile creators may register documentation for private tags with ICC.

Creators of private tags should take steps to ensure that no vulnerabilities or potential exploits are afforded by a private tag.

Creators of private tags should take steps to ensure that no vulnerabilities or potential exploits are afforded by a private tag.

Conformance

See section 10 of the specification for tag type encodings.

Note: This includes signature, structure, data types, ranges and encoded values.

ICC v2 profile versions define these as ASCII text; in ICC v4 and iccMAX they are Unicode.

Permitted tag types are identified in section 9 of the ICC specification.

See section 8 of the ICC specification for a listing of tags required for each profile class.

Non-required tags create uncertainty on the processing outcome, since most CMMs will not process them.

All private tags must be registered with the ICC. Registered tag signatures can be seen in the private tag registry.

ICC recommends that profile builders provide documentation on the structure and encoding of any private tags.

When assessing an ICC profile, any private tags without documentation should be identified.

The ICC specification associates different profile classes with permitted data colourspaces. See section 7.2.6 and section 8.

See section 7.2 in the ICC specification for header encoding requirements.

Different versions of the specification define slightly different sets of tags and tag types. Care should be taken that the tags used in a profile match the profile version stated in the header.

In all ICC profiles, the XYZ value of the media white is chromatically adapted to D50, and normalised so that Y=1 for a perfect reflecting diffuser (for reflective media) or the display white (for emissive media). In iccMAX profiles, the media white is also chromatically adapted to the PCS adopted white colorimetry, but this may be different from D50.

The header and many tag types define reserved bytes. These should always be set to (hex) zero.

ICC specifications require all tags to be a multiple of four bytes.

Quality

While it is not possible to assess all aspects of transform quality, the recommended tests below give some indication of the colorimetric accuracy and invertibility of the profile.

Recommended error statistics are average, maximum and 95th percentile in DE2000.

A round trip is performed when the profile is used to convert data from the PCS to the data colour space and back. First round trip errors are usually larger as they include differences between the PCS and media gamuts.

If the round trip error is small the curve can be inverted. Note that curves in AToBx tags may not necessarily be the inverse of corresponding curves in BToAx tags.

Discontinuities in a transform can lead to contouring ('banding') in a reproduction. The smoothness metric quantifies the lack of smoothness in the encoded transform.

These round trip errors indicate the accuracy of the relative colorimetric rendering intent with respect to the characterization data from which it was generated.

Characterization data CIELAB → data encoding → CIELAB.

Note: Media-relative colorimetric data should be converted to values relative to a perfect diffuser.

This list is a guide only and is not comprehensive. There is no guarantee that a profile that meets the requirements listed will be suitable for a given application. iccMAX profiles may have different conformance requirements.

The ICC Profile Assessment Working Group has developed a tool for assessing ICC profiles, using the above criteria. It evaluates profiles in terms of their conformance with the ICC specification, their security against vulnerabilities, and some aspects of the quality of the transform provided in the profile. It can be found at iccPawgreport. The tool is free to use, and will provide a comprehensive report on the validation and any issues found.

Compare ICC profiles and characterization data sets at https://chardata.colourbill.com/.