[argyllcms] Re: Gamut mapping, abstract profile

  • From: Yves Gauvreau <gauvreauyves@xxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Thu, 21 Oct 2021 09:52:52 -0400

Auke,

curious, to know how you do "b. Create pseudo .ti3 measurement files from the .cube files (identity and adjust)." below.

Thanks,

Yves

On 10/21/2021 7:54 AM, Auke Nauta wrote:

Hi Graeme,

Thanks for the extensive reply!
For now the functionality of 'colprof' is fine with me.

I  am using it to perform general colour adjustments when creating an ICC profile.
It appears to work just fine.

The workflow is like this:
a. Use 3DLUT Creator to generate a 3dlut .cube file (rgb) with the desired colour edits.
b. Create pseudo .ti3 measurement files from the .cube files (identity and adjust).
The files may be reduced in size by specifying only entries where delta E is above a certain threshold.
c. Run 'refine' to create an abstract ICC profile
d. Run 'colprof', including the abstract ICC profile.

I *did* adapt 'refine' to be able to add a profile description ('-D'), similar to what 'colprof' is doing...
(I have quite some abstract ICC profiles now, they all need a unique description).

Greetings,
Auke


Graeme Gill wrote:


Auke Nauta wrote:

Hi,


I have a question about the gamut mapping (by colprof):
We can add a custom abstract ICC profile which is used after the gamut mapping.
This indeed works fine.

Yet, it would be preferable that the colour adjustments were applied to the source colours prior to
gamut mapping (to avoid clipping and maintain perceptual results).

this depends on what is intended. The main purpose of adding the abstract profile support
at the time was to allow fine tuning of the profile accuracy using refine. For this purpose
there is little difference as to whether the abstract profile is taken into account
in the gamut mapping or not.
Would it be possible to fix this behaviour?

Anything is possible in the source of course, and I guess it wouldn't be too
hard to add something like this into profile/profout.c if you take care
of all the details. The cleanest way of doing this is probably to modify
the xicc/xlut object to have an optional abstract profile attribute.
The whole implementation would then need adjusting to take this
into account - i.e. color lookup forward and backwards, gamut surface
generation, etc. - i.e. everything in xicc/xicc.h XLU_BASE_MEMBERS
as well as the icxLuLut class. This is a fair bit of work, and
plenty to test afterwards to make sure it works and that it hasn't
broken something. Rough guess would be about a weeks work for me, if
I had something to test with.


(Could I do it myself? I *do* compile from source and occasionally make some adjustments).

Only you can say if you feel up to this.

Cheers,
 Graeme Gill.

Other related posts: