International Color Consortium
Members
Getting Started
V4
iccMAX
Making color seamles between devices and documents
ICC Specifications
Technical Notes
ICC Resource Center
ICC Slide Presentation
ICC Logos
Information on Profiles
ICC White Papers
Color Management Links
Member List
ICC Working Groups
FAQ
Forum
Home
Got a question about ICC Profiles or colour management?

iccMAX

iccMAX

The iccMAX specification is available to download on the Specifications page.

ICC color management meets the goal of creating, promoting and encouraging the standardization of an open, vendor-neutral, cross-platform color management system architecture and components. While the current architecture works well in many areas, new potential applications are emerging and it is believed that tomorrow's color comunication will require a more flexible and extensible system. ICC has developed a new specification, iccMAX, that will address many of these new requirements. iccMAX is also published by ISO as ISO 20677.

It is important to note that iccMAX is not intended as a replacement for ICC v4, the existing architecture, but as an extension or alternative where requirements cannot be fully met by v4 (ISO 15076-1).

What is iccMAX?

iccMAX is a new color management system that goes beyond D50 colorimetry. The specification has been published by both ICC and ISO.

iccMAX profiles show v5 in the header to distinguish them from v4 and v2. iccMAX profiles also have class, sub-class, versioning and header information that differs from v4.

Users and developers are encouraged to make comments on the specification.

Backwards compatibility

iccMAX provides a significant enhancement to the functionality of the current v4 specification. It is recognised that in many industries, v4 (and even v2) meets existing color management needs and in these industries there will be no drive to move to adopt the new specification.

An iccMAX CMM is backward-compatible and will recognise and correctly process v2 and v4 profiles. However, iccMAX profiles are not expected to be compatible with v4 CMMs. ICC has provided a reference implementation to help with iccMAX adoption (see below).

ICC has introduced a private tag for v4 profiles which permits embedding of an iccMAX profile, for workflows where it is desirable to utilize iccMAX capabilities, yet at the same provide a solution for workflows where only v2 and v4 profiles are supported. For more information, see the Technical Note

How are iccMAX profiles different?

The main changes you can see are:

Profile Connection Space

The ICC v4 PCS has fixed D50 colorimetry, considered necessary until now to ensure interoperability and prevent ambiguity in colour transforms. iccMAX allows flexibility in the selection of illuminant and color matching functions. It supports spectral communication of colour information through an optional spectral PCS, and also supports the use of color appearance processing in the PCS, with the facility to store appearance attributes in a v5 profile.

Support for extended CMM functionality

A variety of new types of information can be stored in an iccMAX profile to support run-time transform creation of a smart or dynamic CMM. Examples include:

  • a new gamut boundary description (GBD)
  • support for spectral data
  • measurement data using the CxF format
  • a new encoding of Named colors to support tints

Programmable transforms (e.g. direct encoding of device models) are supported through Multi-processing Calc elements, with functional operators, conditional evaluation, persistent variables and vectorized operations for improved performance.

Future extendability is also provided through support for hierarchical data encoding, allowing optional data to be added later without requiring changes to the tag parser.

Abbreviated profiles

CMMs are able to select or define a suitable transform by referencing the color encoding standard (such as those listed in the ICC Three-component Registry) which can be specified in a v5 profile in place of a complete transform.


Comment on iccMAX.

If you wish to comment on iccMAX, please email the ICC Technical Secretary.


Participate in iccMAX.

If you are interested in developing or testing features in iccMAX, please contact the ICC Secretary to find out about individual membership of the Architecture Working Group. To receive updates on iccMAX, please email the ICC Technical Secretary.


IMPLEMENTATION

Demo implementation and test suite

ICC has developed an open-source reference implementation to support usefulness and adoption of iccMAX. The DemoIccMAX project (previously known as RefIccMax) provides an open source set of libraries and tools that allow for the interaction, manipulation, and application of iccMAX based color management profiles based on the iccMAX profile specification, in addition to legacy ICC profiles defined by earlier ICC profile specifications. Note: The SampleICC and iccXML projects were used as a basis for the further implementation of DemoIccMAX.

DemoIccMAX is hosted on a GitHub repository to enable developers to contribute to the project, and to ensure that the latest version is available from a single source. The project includes source code, header files, and project files for the libraries and tools provided by RefIccMAX as well as a comprehensive set of test profile definition files with batch files to create and test the application of transforms within iccMAX profiles. The repository provides source code for different platforms: MS Visual Studio, Mac XCode, and a dist-bin cmake build target for Linux.

Follow a video by Tanzima Habib for a detailed guide to building the code with Visual Studio on a PC.

In addition, command-line executables and test suites (containing test profiles etc) are available. For Windows systems there are the Win32 executables and Test Suite. For Unix and MacOS systems, there are the Linux and Darwin archives. The current version of the Demo Implementation is 2.1.3 on Windows (23 October 2023) and 2.1.10 on Linux/Darwin (6 March 2018).

Developers are encouraged to build the DemoIccMAX project, and report any issues or change requests via the GitHub repository. Users are also encouraged to create and apply profiles to implement and evaluate iccMAX transforms, by downloading the Win32 command line executables and test archives.

iccMAX profiles

A number of example iccMAX profiles for different use cases are available to download, in both binary and xml versions, on the iccMAX Profiles page. The RefIccMax testing archive also contains example profiles.

Interoperability Conformance Specifications

A single iccMAX implementation is not expected to cover all possible use cases, but just a sub-set relevant to the needs of a particular industry. An Interoperability Conformance Specification defines the required sub-set of iccMAX elements for a given application. It lists the required and optional elements that should be included in iccMAX profiles, the recommended workflows to connect profiles, and the processing requirements of the CMM that processes the profiles.

iccMAX signatures

Many new signatures are introduced in the iccMAX specification. The iccMAX tag and type signatures are listed in the ICC Signature Registry. The iccMAX specification introduces a number of new constructs such as arrays, structures and multi-processing element operations. These are all listed in the Registry of iccMAX signatures


DemoIccMax support

Developers can submit issues with source code such as bug reports and pull requests on the Github site. ICC also hosts a wiki page where questions about the use of DemoIccMAX can be posted. You will need to create an account on the wiki, and then email the ICC Technical Secretary to obtain edit rights in order to post questions or to add your answers.


Status

The current status of the iccMAX specification is here.


Errata

As errors are reported in the specification they are added to the ICC.2:2019 Cumulative Errata List


FIND OUT MORE

DevCon

ICC DevCon 2020 was held on-line. The theme was 'The Future of Color Management', and there were presentations from researchers on new methods and solutions, talks from companies on their own implementation work, together with a hands-on workshop. Presentations are avbailable to download.

ICC DevCon 2018 was an opportunity to learn about how to implement iccMAX in your application. There were presentations from a wide range of companies on their own implementation work, together with a half-day hands-on workshop.

The 2016 ICC Developers Conference in San Diego on November 7 2016 provided an opportunity to learn more about iccMAX. It focused on real world problems and practical solutions based upon ICCLabs, and included a hands-on workshop session. A video of the event is available from NPES, and you can see a preview here.

A Developer Conference on iccMAX and its implementation was held in November 2014. A video of this event is available, and a series of iccMAX webinars is being held on different aspects of iccMAX.

White Papers

ICC White Paper 51 is an introduction to the different possibilities for connection using iccMAX

ICC White Paper 45 describes the expanded capabilities of iccMAX programming with ICC multiProcessElement Calculator elements.

ICC White Paper 52 gives guidance on secure profiling with iccMAX multiProcessElement Calculator elements

Spectral processing

iccMAX enables the use of spectral data in colour management. Spectral data can be provided as input and either connected via a spectral PCS or converted to colorimetry. iccMAX supports the use of different spectral range and interval, and both standard and custom illuminants and colorimetric observers. For convenience of profile creators, links to CIE standard illuminants and observers are provided here. In situations where input data is colorimetric but the workflow requires spectral, an estimate of the spectral data can be made using methods described on the spectral estimation page.