profcheck
Author: Graeme Gill

## profile/profcheck

### Summary

Check an ICC profile against .ti3 test chart data, and optionally create a pruned .ti3 file.

### Usage Summary

profcheck [-options] data.ti3 iccprofile.icm
-v [level] Verbosity level (default 1), 2 to print each DE
-c Show CIE94 delta E values
-k Show CIEDE2000 delta E values
-w create X3DOM visualization (iccprofile.x3d.html)
-x Use X3DOM axes
-m Make X3DOM lines a minimum of 0.5
-e Color vectors acording to delta E
-s Sort output by delta E
-h Plot a histogram of delta E's
-P de Create a pruned .ti3 with points less or equal to de delta E
-d devval1,deval2,devvalN
Specify a device value to sort against
-p Sort device value by PCS/Lab target
-f [illum] Use Fluorescent Whitening Agent compensation [opt. simulated inst. illum.:
M0, M1, M2, A, C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp]
-i illum Choose illuminant for computation of CIE XYZ from spectral data & FWA:
A, C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp
-o observ Choose CIE Observer for spectral data:
1931_2 (def.), 1964_10, `2015_2, 2015_10,` S&B 1955_2, shaw, J&V 1978_2 or file.cmf
-I intent r = relative colorimetric, a = absolute (default)
data.ti3 Test point data file
iccprofile.icm Profile to check

### Usage Details and Discussion

profcheck provides a way of checking how well an ICC profile conforms to the test sample data that was used to create it (or other test samples that are from the same device). This is the same sort of check done within the profile making tool (colprof), but having a separate tool provides some flexibility. The absolute forward table in the profile is used to create PCS values from the sample points, and the profiles PCS value then compared to the PCS values of the measured sample points. Note the lower delta E values are not always a better measure of how good a profile is. The aim of a profile is to model the underlying characteristics of a device, not to slavishly reproduce the sampled data point values. Sampled data point values contain device variation and instrument reading inaccuracies, and a good profiler will try and filter out this noise, resulting in some deliberate differences between the profile and the sample points used to create it.
The -v flag prints out extra information during the checking. A value greater than 1 will print the color values of each test point on a line. The line consists of:
[Delta_E] Patch_no: Device values -> Profile PCS values should be .ti3 PCS values
The -c option causes the differences between the test values and the profile prediction of the color for each device value to be displayed in CIE94 delta E, rather than plain L*a*b* delta E. CIE94 delta E has a closer correspondence with perceived color differences than the default CIE76 delta E values.
The -k option causes the differences between the test values and the profile prediction of the color for each device value to be displayed in CIEDE2000 delta E, rather than plain L*a*b* delta E. CIEDE2000 delta E has a closer correspondence with perceived color differences than either CIE76 or CIE94 delta E values.
The -w creates a X3DOM 3D visualization of the delta E's between the test points and the profiles prediction of the resulting colors.
The -x flag adds Lab axes to the X3DOM output.
The -m flag makes each error line a minimum of 0.5 delta E long, so that all the points are visible. This makes it easier to view the distribution of test points in the reference set.
The -e flag causes the error vectors in the X3DOM output to be color coded according to their lengths, from longest to shortest: yellow, red, magenta, blue, cyan and green.
The -s flag will cause the -v2 patch by patch delta E output to be sort from largest to smallest. This is useful in identifying badly read patches.
The -h flag will display a histogram plot of the fit delta E's, as well as print each bin's details. The X scale is delta E, the Y scale is % area of each bin.
The -P N.NN option will create a pruned .ti3 file called data_pN.NN that contains just the measurement points that have a fit delta E of less than or equal to the given delta E threshold. This can be useful if you know that there are faulty or poor accuracy readings in the data set. Use profcheck -h to examine the fit delta E histogram to choose a threshold that cuts off the tail, and then profcheck -P to create the pruned data set. You can check that this is appropriate if a profcheck -h on the resulting profile no longer has a long tail. Note that using this procedure will be of no benefit if the tail is due to an inherently poor fit of the profile to the data rather than reading inaccuracy, even if it makes the fit appear to be better.
NOTE that the pruning does not take any special care as to what test points are pruned - it may prune important points such as white and black points!
The -d parameters allow the specification of a particular device value, and the test point by test point output will be sorted by distance from the given device value. This can be useful in determining how well "supported" the profile is in a particular area of the colorspace.
If the -p flag is used in combination with the -d parameters, then the test point by test point output will be sorted by distance in PCS (Lab) space rather than distance in device space.
The -f flag enables Fluorescent Whitening Agent (FWA) compensation. This only works if spectral data is available and, the instrument is not UV filtered. FWA compensation adjusts the spectral samples so that they appear to have been measured using an illuminant that has a different level of Ultra Violet to the one the instrument actually used in the measurement. The optional illumination parameter allows specifying a standard or custom illumination spectrum to be used as the similated instrument illuminant, overriding the default D50 or CIE computation illuminant used for FWA (see -i below). See colprof -f for a fuller explanation. The same value should be used as was used during the creation of the profile.
The -i flag allows specifying a standard or custom illumination spectrum, applied to the spectral test point values to compute CIE tristimulus values. A, D50, D50M2, D65, F5, F8, F10 are a selection of standard illuminant spectrums, with D50 being the default. If a filename is specified instead, it will be assumed to be an Argyll specific .sp spectrum file. If FWA compensation is used during measurement, this illuminant will be used by default as the simulated instrument illuminant. The same value should be used as was used during the creation of the profile.
The -o flag allows specifying a tristimulus observer, and is used to compute PCS (Profile Connection Space) tristimulus values. The following choices are available:
1931_2 selects the standard CIE 1931 2 degree observer. The default.
1964_10 selects the standard CIE 1964 10 degree observer.
2015_2 selects the standard CIE 2015 2 degree observer.
2015_10 selects the standard CIE 2015 10 degree observer.
1955_2 selects the Stiles and Birch 1955 2 degree observer
1978_2 selects the Judd and Voss 1978 2 degree observer
shaw selects the Shaw and Fairchild 1997 2 degree observer
file.cmf selects an observer specified by the given .cmf file.
The same parameter value should be used as was used during the creation of the profile.
The -I parameter allows changing the intent used in looking up the ICC profile colors to relative colorimetric. This would not be used if you are checking a profile against the .ti3 file that was used to create it, since, since profiles are always made from absolute colorimetric measurement values.