Making a DCP for the IT8 (IT 8.7/2-1993) using DCamProf turned out to be easy.
I got the reference values by downloading the R151101 file from Affordable IT 8.7 (ISO 12641) Scanner Color Calibration Targets
argyll-scanin -v -G 0.454545 -p -digIcrpn daylight.tif /usr/share/argyllcms/ref/it8.cht /tmp/R151101/R151101.txt daylight-diag.tif
./dcamprof make-profile -i D50 -C daylight.ti3 daylight.json
./dcamprof make-dcp -n "YI TECHNOLOGY M1" -d "YI TECHNOLOGY M1" -c "RawTherapee CC0" -t acr -o neutral -g none daylight.json "YI TECHNOLOGY M1.dcp"
Before:
After:
After with embedded tone curve:
Delta E was quite high, not surprisingly as these IT8 targets are known to be difficult to use outside of the studio, though as this is my first DCP made from one of them I don’t know what is normal for them.
$ argyll-scanin -v -G 0.454545 -p -digIcrpn daylight.tif /usr/share/argyllcms/ref/it8.cht /tmp/R151101/R151101.txt daylight-diag.tif
Input file 'daylight.tif': w=1560, h=1040, d = 3, bpp = 16
Data input file '/tmp/R151101/R151101.txt'
Data output file 'daylight.ti3'
Chart reference file '/usr/share/argyllcms/ref/it8.cht'
Creating diagnostic tiff file 'daylight-diag.tif'
About to allocate scanrd_ object
Verbosity = 2, flags = 0x62af9
About to read input tiff file and discover groups
adivval = 1.000000
About to calculate edge lines
442 useful edges out of 1143
About to calculate perspective correction
Perspective correction factors = 0.000004 -0.000016 780.000000 520.000000
About to calculate rotation
Mean angle = -0.304448
Standard deviation = 3.864164
Robust mean angle = 0.087368 from 428 lines
About to calculate feature information
About to read reference feature information
Read of chart reference file succeeded
About to match features
Checking xx
Checking yy
Checking xy
Checking yx
Checking xix
Checking yiy
Checking xiy
Checking yix
Axis matches for each possible orientation:
0: xx = 0.714416, yy = 0.631872, xx.sc = 0.409207, yy.sc = 0.409131
90: xiy = 0.283689, yx = 0.524188, xiy.sc = 0.822574, yx.sc = 0.406687
180: xix = 0.565962, yiy = 0.511631, xix.sc = 0.409500, yiy.sc = 0.408823
270: xy = 0.310177, yix = 0.439876, xy.sc = 0.821863, yix.sc = 0.407303
r0 = 0.953579, r90 = 0.294682, r180 = 0.761680, r270 = 0.266743
There are 2 candidate rotations:
cc = 0.953579, irot = 0.087368, xoff = 22.089452, yoff = 12.751905, xscale = 2.443749, yscale = 2.444205
cc = 0.761680, irot = 180.087368, xoff = -1531.860554, yoff = -1018.097609, xscale = 2.442004, yscale = 2.446049
About to compute match transform for rotation 0.087368 deg.
About to setup value scanrdg boxes
About to read raster values
About to compute expected value correlation
About to compute match transform for rotation 180.087368 deg.
About to setup value scanrdg boxes
About to read raster values
About to compute expected value correlation
Expected value distance values are:
0, rot 0.087368: 2216.488313
1, rot 180.087368: 3539.747304
Chosen rotation 0.087368 deg. as best
About to compute final match transform
Improve match
About to setup value scanrdg boxes
About to read raster values
About to write diag file
Writing output values to file 'daylight.ti3'
dcamprof-1.0.4 $ ./dcamprof make-profile -i D50 -C daylight.ti3 daylight.json
Reading target...
Generating values for the calibration illuminant D50...
Warning: large dynamic range difference detected. Likely glare issue.
Camera G on darkest patch(es) is 296.0% lighter compared to observer Y.
Y dynamic range is 7.52 stops, G dynamic range is 5.54 stops, difference
1.99 stops. A small difference is normal, while a large indicates that there
is glare.
Warning: auto-selected neutral patch (A16) is not the lightest, as the
lightest patch is considerably off-white. That is if you later use the target
for white balancing you should use the indicated patch instead of the
lightest.
The most neutral patch (A16) differs 1.04 DE from actual neutral,
transforming target reference XYZ values to match, using CAT02.
Automatic LUT relaxation weights assigned.
Making camera profile...
Finding a camera raw RGB to CIE XYZ matrix for calibration illuminant D50...
Whitest patch in target (A16) differs DE 1.04 from calibration illuminant,
close enough to calculate whitepoint preservation.
Inverting to get ColorMatrix:
{
"ColorMatrix1": [
[ 0.537094, -0.095588, -0.022356 ],
[ -0.374916, 1.103322, 0.316279 ],
[ -0.025329, 0.115141, 0.663253 ]
]
}
Matrix patch match average DE 2.95, DE LCh 1.19 1.58 1.74
median DE 1.99, DE LCh 0.93 0.87 1.18
p90 DE 6.76, DE LCh 2.30 4.75 4.61
max DE 10.15, DE LCh 6.42 8.50 7.57
ColorMatrix optimal white balance for target: 0.402706,1,0.636244 (m2.4832,1,1.57172)
Finding a camera raw RGB to CIE XYZ matrix for connection space illuminant D50...
{
"LUTMatrix1": [
[ 0.664613, 0.137690, 0.161915 ],
[ 0.274660, 0.677869, 0.047472 ],
[ 0.000096, 0.017238, 0.807867 ]
]
}
LUTMatrix optimal white balance for target: 0.402974,1,0.630545 (m2.48155,1,1.58593)
Matrix patch match average DE 6.42, DE LCh 2.33 5.05 2.85
median DE 6.32, DE LCh 1.70 4.68 2.16
p90 DE 10.62, DE LCh 5.06 8.87 5.99
max DE 17.52, DE LCh 11.34 13.44 16.19
Finding a camera raw RGB to CIE XYZ matrix for connection space illuminant D50...
Y row limit set to -0.2.
Applying white-balance to get ForwardMatrix:
{
"ForwardMatrix1": [
[ 0.822741, 0.000760, 0.140718 ],
[ 0.307258, 0.806480, -0.113738 ],
[ 0.029543, -0.258563, 1.054222 ]
]
}
ForwardMatrix optimal white balance for target: 0.402974,1,0.630545 (m2.48155,1,1.58593)
Matrix patch match average DE 3.72, DE LCh 1.70 2.09 1.95
median DE 3.25, DE LCh 1.27 1.60 1.44
p90 DE 7.38, DE LCh 3.75 4.93 4.59
max DE 10.26, DE LCh 6.71 8.59 7.43
Making 2.5D chromaticity-addressed lookup table for XYZ correction...
53.47% of the patches was put in a chromaticity group due to nearby neighbor.
26.39% of the patches was removed due to being nearby the whitepoint.
Largest chromaticity group contains 16 patches. Patch count reduced from
288 to 58. Note that patch matching cannot reach 100% when chromaticity
groups are formed, as the LUT matches the average within a group.
Lightness axis is disabled. Since lightness affects chroma, the LUT chroma
control points are recalculated to better match the uncorrected lightness.
A residual error of up to about 0.2 DE is expected.
Relaxing LUT stretch with up to 4.00 DE. Iterating over 58 patches...
Lightness correction is disabled.
.............Average DE for the 58 tested patches increased to 3.31 after LUT relax.
18.97% could do without LUT correction.
Native LUT patch match average DE 3.32, DE LCh 1.72 1.81 1.49
median DE 2.77, DE LCh 1.22 1.26 0.98
p90 DE 6.66, DE LCh 3.79 4.35 3.84
max DE 10.06, DE LCh 7.49 8.47 7.27
5 worst patches for Overall DE:
J22 RGB 0.012 0.039 0.023 XYZref 0.015 0.024 0.011 XYZcam 0.030 0.037 0.029 sRGB #09321B #253934 DE 10.06 DE LCh +3.46 -8.47 +4.17 (dark green)
F01 RGB 0.011 0.031 0.021 XYZref 0.017 0.021 0.016 XYZcam 0.027 0.029 0.029 sRGB #192B25 #2A3035 DE 9.88 DE LCh +2.52 -6.65 +6.87 (dark grayish green)
K21 RGB 0.012 0.036 0.026 XYZref 0.015 0.021 0.018 XYZcam 0.030 0.034 0.035 sRGB #0F2C28 #27353B DE 9.75 DE LCh +3.75 -6.23 +6.50 (dark grayish cyan)
F02 RGB 0.009 0.032 0.020 XYZref 0.013 0.021 0.013 XYZcam 0.023 0.029 0.025 sRGB #012F1F #1E3331 DE 9.49 DE LCh +2.28 -8.11 +4.36 (dark grayish green)
GS23 RGB 0.008 0.021 0.016 XYZref 0.004 0.005 0.006 XYZcam 0.020 0.020 0.023 sRGB #061215 #24262F DE 9.42 DE LCh +6.71 +0.65 +6.57 (black)
5 worst patches for Lightness DE:
L19 RGB 0.017 0.066 0.136 XYZref 0.048 0.019 0.233 XYZcam 0.083 0.047 0.295 sRGB #0032A0 #002EAB DE 8.04 DE LCh +7.49 -2.41 -2.70 (very dark vivid purple-blue)
GS23 RGB 0.008 0.021 0.016 XYZref 0.004 0.005 0.006 XYZcam 0.020 0.020 0.023 sRGB #061215 #24262F DE 9.42 DE LCh +6.71 +0.65 +6.57 (black)
K19 RGB 0.025 0.093 0.173 XYZref 0.067 0.036 0.287 XYZcam 0.102 0.067 0.329 sRGB #003DAE #133CB2 DE 7.04 DE LCh +6.63 -2.51 -1.82 (dark vivid purple-blue)
J04 RGB 0.017 0.073 0.145 XYZref 0.048 0.023 0.241 XYZcam 0.084 0.048 0.331 sRGB #003EA4 #003FB7 DE 6.60 DE LCh +6.54 -0.49 -1.00 (dark vivid purple-blue)
J19 RGB 0.036 0.128 0.211 XYZref 0.092 0.060 0.337 XYZcam 0.125 0.094 0.342 sRGB #0045B8 #2F4EB5 DE 6.70 DE LCh +6.03 -3.48 -1.63 (dark strong purple-blue)
5 worst patches for Chroma DE:
J22 RGB 0.012 0.039 0.023 XYZref 0.015 0.024 0.011 XYZcam 0.030 0.037 0.029 sRGB #09321B #253934 DE 10.06 DE LCh +3.46 -8.47 +4.17 (dark green)
F02 RGB 0.009 0.032 0.020 XYZref 0.013 0.021 0.013 XYZcam 0.023 0.029 0.025 sRGB #012F1F #1E3331 DE 9.49 DE LCh +2.28 -8.11 +4.36 (dark grayish green)
K20 RGB 0.017 0.050 0.030 XYZref 0.027 0.036 0.022 XYZcam 0.041 0.048 0.038 sRGB #223A2C #33403C DE 7.68 DE LCh +2.70 -6.76 +2.47 (dark grayish green)
F01 RGB 0.011 0.031 0.021 XYZref 0.017 0.021 0.016 XYZcam 0.027 0.029 0.029 sRGB #192B25 #2A3035 DE 9.88 DE LCh +2.52 -6.65 +6.87 (dark grayish green)
E01 RGB 0.024 0.057 0.032 XYZref 0.046 0.052 0.028 XYZcam 0.055 0.058 0.041 sRGB #3D4231 #45433D DE 7.51 DE LCh +1.19 -6.52 -3.52 (dark grayish yellow-green)
5 worst patches for Hue DE:
D01 RGB 0.025 0.054 0.031 XYZref 0.049 0.051 0.027 XYZcam 0.059 0.057 0.040 sRGB #443F30 #4C413C DE 7.67 DE LCh +1.29 -2.05 -7.27 (dark grayish yellow)
C20 RGB 0.016 0.028 0.019 XYZref 0.020 0.017 0.008 XYZcam 0.037 0.031 0.027 sRGB #321D18 #402B32 DE 8.30 DE LCh +4.54 -0.08 +6.95 (very dark grayish red)
F01 RGB 0.011 0.031 0.021 XYZref 0.017 0.021 0.016 XYZcam 0.027 0.029 0.029 sRGB #192B25 #2A3035 DE 9.88 DE LCh +2.52 -6.65 +6.87 (dark grayish green)
GS23 RGB 0.008 0.021 0.016 XYZref 0.004 0.005 0.006 XYZcam 0.020 0.020 0.023 sRGB #061215 #24262F DE 9.42 DE LCh +6.71 +0.65 +6.57 (black)
K21 RGB 0.012 0.036 0.026 XYZref 0.015 0.021 0.018 XYZcam 0.030 0.034 0.035 sRGB #0F2C28 #27353B DE 9.75 DE LCh +3.75 -6.23 +6.50 (dark grayish cyan)
5 best patches for Overall DE:
A16 RGB 0.386 0.959 0.605 XYZref 0.925 0.959 0.791 XYZcam 0.925 0.959 0.791 sRGB #FAFAFA #FAFAFA DE 0.00 DE LCh +0.00 +0.00 +0.00 (white)
C06 RGB 0.146 0.216 0.077 XYZref 0.313 0.273 0.069 XYZcam 0.313 0.273 0.069 sRGB #C18043 #C18043 DE 0.09 DE LCh +0.00 +0.03 +0.08 (orange)
G20 RGB 0.199 0.371 0.166 XYZref 0.435 0.418 0.176 XYZcam 0.438 0.421 0.180 sRGB #D0A577 #D0A578 DE 0.37 DE LCh +0.13 -0.22 -0.27 (orange)
B17 RGB 0.359 0.800 0.490 XYZref 0.835 0.822 0.630 XYZcam 0.841 0.830 0.635 sRGB #FDE4E1 #FEE5E2 DE 0.39 DE LCh +0.22 -0.21 +0.24 (whitish pink)
F22 RGB 0.210 0.374 0.172 XYZref 0.465 0.433 0.189 XYZcam 0.464 0.431 0.191 sRGB #D9A57B #D8A57C DE 0.42 DE LCh -0.11 -0.23 -0.33 (light orange)
Writing output to "daylight.json"...
Complete!
dcamprof-1.0.4 $ ./dcamprof make-dcp -n "YI TECHNOLOGY M1" -d "YI TECHNOLOGY M1" -c "RawTherapee CC0" -t acr -o neutral -g none daylight.json "YI TECHNOLOGY M1.dcp"
Generating 2.5D HueSatMap with 90x30 = 2700 entries...done!
The tone curve's contrast value is 1.30 (=> auto chroma scaling value 1.121)
Generating 3D LookTable with 90x30x30 = 81000 entries for the neutral tone reproduction operator...
0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..100%
Writing output to "YI TECHNOLOGY M1.dcp"...
Complete!
@paperdigits how about that tungsten shot?