[argyllcms] Re: iccdump -t A2B1 interpretation

  • From: Alexey Gribunin <Gribunin@xxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Wed, 20 Apr 2022 15:54:24 +0300

Hello Roger!

As Graeme wrote, it's wrong to interpret these data as final CMYK and Lab values because final values can be influenced by input & output curves and matrix too.
Only in the case of input & output curves and matrix are linear, these data can be considered as "real values" of relative colorimetric conversion table from CMYK to Lab.

As I understand, you are searching for the method to decode these data.
It's quite simple. You can find the description in official ICC Specification. E.g. ICC.1:2010 (Profile version 4.3.0.0) https://www.color.org/specification/ICC1v43_2010-12.pdf
pages 51 and 52.

So L column can be decoded just by the following expression:
L*(100+(25500/65280)).
The first L value 0.9961089494 is decoded as 100, that corresponds to ideal relative colorimetric paper white.

A and B columns can be decoded by the following expression: X*(2^16-1)/256-128.
The first A value 0.5000076295 is decoded as -2.8E-09, that corresponds to almost ideal relative colorimetric paper white.

CMYK columns can be decoded by the following expression:
X*(100/(GridSize-1)).
The last K value 15 is decoded as 100.

Something like that...

Best regards,
Alexey Gribunin.

On 19/04/2022 21:30, graxx@xxxxxxxxxxxx wrote:> I need to explore the encoding of the A2B1 tag (CMYK to Lab).
> I used the following command line :
> iccdump -v3 -t A2B1 "myProfile.icc" > A2B1.txt
> Works great, except, I’m having difficulty interpreting the data.
> Here are the first 15 lines of the CLUT table (grid size = 16) :
> CLUT table:
> 0  0  0  0: 0.9961089494 0.5000076295 0.5000076295
> 0  0  0  1: 0.9387197681 0.5011062791 0.4956588083
> 0  0  0  2: 0.8852063783 0.5021438926 0.4917830167
> 0  0  0  3: 0.8352941176 0.5031052110 0.4883649958
> 0  0  0  4: 0.7951628901 0.5039902342 0.4869916838
> 0  0  0  5: 0.7548180362 0.5048905165 0.4856183719
> 0  0  0  6: 0.7142290379 0.5057907988 0.4842298009
> 0  0  0  7: 0.6598306249 0.5077286946 0.4827649348
> 0  0  0  8: 0.6050812543 0.5096971084 0.4812695506
> 0  0  0  9: 0.5499809262 0.5116960403 0.4797589075
> 0  0  0 10: 0.4975814450 0.5110093843 0.4805981537
> 0  0  0 11: 0.4439612421 0.5102922103 0.4814068818
> 0  0  0 12: 0.3890287633 0.5095750362 0.4822156100
> 0  0  0 13: 0.3252460517 0.5079118029 0.4876173037
> 0  0  0 14: 0.2596475166 0.5062790875 0.4931868467
> 0  0  0 15: 0.1916075380 0.5046768902 0.4990005341
> I take it that the first four digits of each line represent the CMYK
> value.
> I can’t tell whether the order in which the data is dumped here
> matches the order in which the data is encoded in the tag?
> For the first line of data, If I follow my intuition, I get 0c 0m 0y
> 0k.
> In other words, this would be the unprinted media color (RelCol),
> which should be Lab = 100, 0, 0. Right?
> How do I interpret the corresponding Lab values :
> 0.9961089494 0.5000076295 0.5000076295
> The first number, L*, seems awfully close to L = 100.
> But how do I interpret the a* and b* values? The second and third
> numbers?
> Do they have to be subtracted from some constant value? They can’t be
>  just multiplied by 100?
> Kindest regards / Roger

Other related posts: