On 8/14/2019 11:57 AM, Neil Barstow wrote:
So, am I reading this right please?
An LUT profile would be OK and a "MATRIX" not, in this setting.
Is an LUT what you are calling "encoded as - - an array of points" I guess a 16 bit LUT may be OK? I am just thinking about basICColor display.
The rTRC. bTRC and gTRC tags in the display profile are "curv" types encoding the tone reproduction curve of each color. I believe LUT based display profiles must also include TRC tags, but maybe someone like Graeme Gill could step in and confirm. According to the ICC.1:2001-04 spec: ---------------------------------- 6.5.3 curveType- The curveType contains a 4-byte count value and a one-dimensional table of 2-byte values. The count value specifies the number of entries in the curve table except as follows: - when countis 0, then a linear response (slope equal to 1.0) is assumed, - when countis 1, then the data entry is interpreted as a simple gamma value encoded as a u8Fixed8Number. Gamma is interpreted canonically and notas an inverse. Otherwise, the 16-bit unsigned integers in the range 0 to 65535 linearly map to curve values in the interval[0.0, 1.0]. ---------------------------------- The problem occurs with the case of using a single value to represent a simple gamma value in the profile. In this case ColorSync seems to mess up curve generation. It looks like most software nowadays is encoding as an array of points - which is probably how this one slipped by Apple. I would have thought that especially canned profiles would use the simple gamma rather than an array of points. I'd be interested in knowing the reasoning for not doing this. Thanks Will