[argyllcms] Re: Camera Profiling using ArgyllCMS

  • From: "Hal V. Engel" <hvengel@xxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Wed, 26 Nov 2008 17:13:30 -0800

On Wednesday 26 November 2008 13:00:35 Nikolay Pokhilchenko wrote:
> Another profile quality test:
> xicclu -fif -g -ir profilemaker.icc
> xicclu -fif -g -ir lprof.icc
> xicclu -fif -g -ir argyll.icc
> Let's compare the gray curves. I don't think that the camera have so uneven
> response as in lprof profile characterized. There is the slightly better
> situation in argyll profile, but 33-step CLUT is excessive in this case
> too. You could try -qm and -ql parameters for argyll colprof instead of
> -qh. I have a question, may be there is colprof -r parameter is useful with
> values higher than 0.5, 2.5% for example? May be the profiling result will
> be more even?

To echo something that Graeme pointed out,  it is difficult to comment on any 
of this without knowing more about exactly what was done to create these 
profiles.  For example Nikolay points out that the LProf profile is probably 
exhibiting too much of a fit to the sample data ("excessive tight CLUT 
optimization") and the curves likely should be smoother.  To a somewhat lessor 
extent the same thing is true for the argyll created profile.  In both cases 
the user as control of the fit vs. smoothness trade off of the profile and 
changing the smoothing parameter can change this significantly.   The colprof 
default is -r=0.5 which is in between LProf smoothness settings 0 and -1 which 
are 1.0 and 0.32 respectively.   For the OP's target LProf used a smoothness 
setting of -2 which is roughly the same as using -r = 0.1 in colprof.

The smoothness parameters in LProf basically corresponds to 3X change in the 
low level smoothness factor used by the profiling algorithm.  Changing the 
LProf smoothness setting from 0 to 1 is about like changing the argyll colprof 
-r setting from 1.0 to 3.163.  Increasing colprof -r will give smoother curves 
but it takes a fairly large change in this value to have a significant affect 
and values significantly higher than 2.5 may be in order depending on factors 
like sample size and sample noise levels (sensor noise, target measurement 
error...).  Smaller sample sizes and noisier sample sets will require higher 
smoothness settings.

The LProf profile also shows a reversal in the red channel near the black 
point.  This could be because of a problem with the profiling algorithm and/or 
because of too little smoothing.  I suspected that increasing the smoothness 
setting might also affect the reversal because reversals are one sign that the 
smoothness parameter was set to too low of a value (IE. too close of a fit to 
the sample data).  As a test I did a camera profile using an IT8 image from my 
own camera using LProfs automatic smoothness setting which selected a setting 
of -2.  Viewing the resulting profile using  xicclu -fif -g -ir <my test 
profile> also showed the reversal in the red channel near the black point.  
Increasing the smoothness setting progressively reduced the reversal and at 
setting of +5 the reversal was mostly gone.  

When I tried the same thing with the OP's target image I was not able to 
eliminate the reversal in the red channel.  So I also suspect that there is a 
problem with how the red channel is being handled by the profiling algorithm. 

There is also another difference between how LProf and Argyll do this compared 
to ProfileMaker.  Specifically ProfileMaker appears to create the same CLUT 
curve for all three channels which means that no correction is done for 
response shifts in the individual channels at different luminosity levels.  
Where as LProf and Argyll create distinct curves for each channel.  I know 
that the author of UFRAW believes that using a single curve for all three 
channels is the correct approach and it appears that authors of ProfileMaker 
agree him.  At some point I will add a switch to LProf to allow users to 
create profiles with the current approach or to use the same approach as 
ProfileMaker.  ProfilePrism also uses single curve for camera profiles as a 
user selected option.


Other related posts: