ICC profiles do not in themselves calibrate anything. They contain measurement and information data, on which ICC compliant software acts via a CMM (Colour Management Module). It is the CMM within the graphics program that uses the data contained within a given ICC to perform image adjustments to attempt to correct for device/display calibration issues/inaccuracy.
ICC profiles perform an image adjustment, not a direct display calibration.
Different graphics programs using different CMMs will often produce different results/accuracy from the same ICC profile data.
By design, no ICC based display calibration can come close to the accuracy attained by 3D LUT direct hardware calibration.
The following describes the distributed colour management used with ICC profiles for display calibration.
|Source Image||ICC aware graphics program||Working Colour Space||ICC aware graphics program||Graphics Card||Display calibration|
(May include Input ICC profile)
(Conversion into working colour space)
Working colour space
(for example sRGB)
(Display profile data, used to 'correct' the image gamut/colour to attempt to compensate for the display's inaccuracies)
VGCT 1D LUT
(May be used for grey scale/white point correction)
1D LUT and 3x3 Matrix
(May be used for limited display hardware calibration, if available)
This image workflow is broadly generic, but will help understand how ICC profiles are used in distributed form for display calibration through the 'correction' of the image, with the display itself not fully calibrated.
Note that the 'Display gamut profile data' within the ICC is not being used to 'calibrate' the display, but is used by the CMM to apply a 'correction' to the image, which attempts to compensate for the inaccuracies of the 'inaccurately calibrated' display. The level of this 'correction' - its accuracy - is down to the CMM within the graphics program in use, and is a key part as to why no ICC based 'calibration' can come close to true display based hardware 3D LUT calibration.
The ICC profile data is held in a table form, and is often referred to as a look-up table, but should not be confused with a true 3D LUT. The ICC profile table often contains just the original measurements, not processed correction data.
Conversion between the various colour space is via the PCS (Profile Connection Space), not shown in the above diagram.
One thing that can be very confusing when talking about ICC profiles and 'calibration', compared to the use of 3D LUTs within a Film & TV colour workflow, is the use of the term 'Profile' or 'Profiling', and 'Calibration'.
Profiling is the measurement or characterisation of a display to record its actual response to known inputs. This is key to the accuracy of any final calibration, as the number of patches used, especially volumetric patches, defines the level of final accuracy that can be attained. And ICC profiling rarely uses many patches - see below.
In a direct display based calibration workflows, as with LightSpace, the profile data can be immediately use to generate a direct 'hardware' calibration - a 3D LUT that is loaded directly into the display, as with professional grading monitors.
In such a direct display calibration workflow the profiling and calibration are directly linked.
Within ICC based calibration, the display is first 'hardware calibrated', which may involve manual user adjustment, or may just be the 1D LUT and 3x3 matrix generated from the initial profiling.
Regardless, after the partial hardware calibration, the remaining volumetric profile data is held within the ICC profile for image correction, completing the calibration workflow as best it can.
As can be seen, within an ICC calibration workflow the concept of calibration and profile data are separate, which is the cause of a lot of confusion when comparing the two approaches.
No ICC based colour workflow is capable of employing an advanced colour engine for image calibration, resulting in a relative low level of final colour accuracy when compared to a LightSpace generated 3D calibration LUT.
As has been stated, the number of patches used when profiling a display for calibration defines the potential calibration accuracy for any given display. In general terms, the more patches the better the calibration result, as the generation of the 'correction' LUT has a better understanding of the display's volumetric irregularities.
With an offline calibration system, such as LightSpace, many thousands of patches (10,000 easily) can be used as the processing time to generate the calibration LUT is irrelevant.
With on the fly image correction, as with ICC profiles and graphics program CMM, there is no processing time available, and an ICC with too much profile data can slow the graphics program down.
Because of this, many manufacturer calibration programs limit the number of patches to a few hundred maximum. X-Rite's Publisher/Profiler has a maximum of 6,000, but X-Rite's own operational information suggests using far less, and many of the manufacturer specific calibration systems are limited to 100's or even 10's of patches.
Further, just because a given ICC may contain a large amount of patch colour data, there is no guarantee the CMM in use will actually use all the data, or will interpret it correctly. Often, too much data will cause image artefacts, due to the limited colour processing the CMM is able to perform.
As an aside, manufacturer hardware calibration systems that are not ICC based, such as from Atomos and SmallHD, also use the X-Rite Publisher/Profiler system, and generated just 1D LUT and 3x3 matrix calibrations, and do not perform 3D LUT based calibrations.
In the above section it was suggested that for image workflows that are not tied to a set colour space standard, such as when performing photography work, with paper prints as the required final delivery, it could be advantageous to calibrate the display to its own native gamut.
This is exactly the same as calibrating to a given colour space, such as Rec709, except the 'target' colour space is a user defined one, based on the peak RGB values of the display.
Using LightSpace, and with the display uncalibrated, use the 'Calibration Interface to measure 100% Red, Green, Blue, and white. Record the xy values, and use them to generate a new colour space via the 'Convert Colour Space' menu, with the addition of the displays target gamma - most likely 2.2 for photographic work.
This new colour space is now the colour space to which you will calibrate the display, using the normal LightSpace process!
The same gamma and xy values can then be used to generate a new simple curve and matrix , or curve and colourant Display ICC profile.