creating an image optimized profile in ArgyllCMS - stunning results!

crenedecotret

Print Addict
Joined
Oct 5, 2006
Messages
161
Reaction score
52
Points
163
Last December, Ben Goran posted a perl script for linux in the ArgyllCMS mailing list. It's used to analyse the actual colors used in an image and then see how it compares to the image's profile (sRGB/AdobeRGB) and the printer profile. Once it's done it's thing, it creates an image specific ICC profile that it then applies to the image. This needs a LOT of computing time, but for an important image it may well be worth it. I was very surprised at the results using difficult test images. I made the prints for a 4 color epson printer converted to dye inks and they were very similar to print I had once done using my old R220 (6 color). Blacks were blacker and in general the resulting print was much closer to the image on screen, without any softproofing. I compared the prints to a regular ArgyllCMS profile with intent RC+BPC and a Colormunki Profile, both Perceptual and Relative+BPC. I like the print from this script better.

The script looks like this
#!/usr/bin/perl -w
use strict;
my $inprofile = $ARGV[0];
my $outprofile = $ARGV[1];
my $intiff = $ARGV[2];
my $outtiff = $ARGV[3];
my $gam = $intiff; $gam =~ s/\.tif*$/.gam/;
my $linkprofile = $intiff; $linkprofile =~ s/\.tif*$/.icm/;
my $argyllbin = '/usr/bin/';
`${argyllbin}tiffgamut -v -f 85 -p j \"${inprofile}\" \"${intiff}\"`;
`${argyllbin}collink -v -q h -G \"${gam}\" -i p \"${inprofile}\" \"${outprofile}\" \"${linkprofile}\"`;
`${argyllbin}cctiff -e \"${outprofile}" \"${linkprofile}\" \"${intiff}\" \"${outtiff}\"`;

now if one was going to do this one command at a time or maybe create regular DOS script, it would look something like this
1. extract embeded ICC profile from image. (the script doesn't do this.. you'd need to have your profile ready in the folder... ie: AdobeRGB.rcc, sRGB.icc or Prophoto. I just feel this is a good step since it avoids any confusion as to what profile the image was using.
extracticc myimage.tif myimage.icc

2. analyse the gamut and create a gamut file. -f 85 means looks at the 85% of colors being the most used.. 70 to 90 can be tried here, -p j is the specify the color space used during analysis, this is the settinge recommended in the argyll documentation). this will create a file named "myimage.gam"
tiffgamut -v -f 85 -p j myimage.icc myimage.tif

3. Create the image optimized profile
collink -v -q h -G myimage.gam -i p myimage.icc printer.icc myimage_optimized.icc

4. apply the optimized profile to the image
cctiff -e printer.icc myimage_optimized.icc myimage.tif myimage_optimized.tiff
I haven't been able to reproduce what this cctiff command does in a tool like GIMP. it looks like it may be embedding the original printer profile to the file, but applying the profile generated by collink. For now i'll stick with the command line.

5. The last step would be to turn off ALL color management in your image application, be it gimp or PS, load up the image and then send it to the printer with no profile.

As mentioned, I really, really liked the result... this is really squeezing the last possible bit of quality out of a printer and specific image. I would probably not use this for simple images, but anything that is a keeper is worth the processing time.

I'm not including any scans, because i'm not sure the subtle differences would be seen. Feel free to try this yourself and report back, i'd like to see what results you guys get, and if anyone comes up with a Windows batch script, or something to process multiple images, please share.

** EDIT: the profile generated is an optimized PERCEPTUAL profile. Still better than normal Relative+BPC or normal perceptual
 
Last edited:

crenedecotret

Print Addict
Joined
Oct 5, 2006
Messages
161
Reaction score
52
Points
163
Just to add to this, you don't need a spectro or anything special to try this.. it would work with a manufacturer profile. I assume it woudl work better with a custom profile, but it's easy and fun to experiment. All you are doing here is applying image specific changes to an existing profile to improve the results.

I did more experimenting yesterday. I got slightly better results (more details in the shadows) with these parameters. Changes are in red... I found a very old discussion in the ArgyllCMS list regarding this. it's suggested to use relative intent to extract the gamut in tuffgamut. -d1.0 adds a bit of time, but gives a more detailed result. YES, using relative for tiffgamut and perceptual for collink (-ip) is what is needed.

in collink, the source and destination viewing conditions are specified (-cmt -dpp) just as we would do with colprof.

#!/usr/bin/perl -w
use strict;
my $inprofile = $ARGV[0];
my $outprofile = $ARGV[1];
my $intiff = $ARGV[2];
my $outtiff = $ARGV[3];
my $gam = $intiff; $gam =~ s/\.tif*$/.gam/;
my $linkprofile = $intiff; $linkprofile =~ s/\.tif*$/.icm/;
my $argyllbin = '/usr/bin/';
`${argyllbin}tiffgamut -v -f85 -d1.0 -ir -pj -cmt \"${inprofile}\" \"${intiff}\"`;
`${argyllbin}collink -v -qh -G \"${gam}\" -ip -cmt -dpp \"${inprofile}\" \"${outprofile}\" \"${linkprofile}\"`;
`${argyllbin}cctiff -e \"${outprofile}" \"${linkprofile}\" \"${intiff}\" \"${outtiff}\"`;

If anyone wants, I could make write a regular windows batch file in a windows VM.
 
Top