Yahoo Groups archive

Digital BW, The Print

Index last updated: 2026-04-28 22:56 UTC

Message

Re: [Digital BW] ICC v. Transfer Function in Epson driver

2005-10-17 by Steve Kale

Quick response:


> From: Paul Roark <paul.roark@...>
> Reply-To: <DigitalBlackandWhiteThePrint@yahoogroups.com>
> Date: Mon, 17 Oct 2005 13:39:18 -0700
> To: <DigitalBlackandWhiteThePrint@yahoogroups.com>
> Subject: RE: [Digital BW] ICC v. Transfer Function in Epson driver
> 
> Steve,
> 
>> 
>> The ICC profiles are of a very specific file type and description as
>> outlined by the International Colour Consortium.  You can get the
>> specification from www.color.org.  Therefore, subject to spec version
>> changes, there is just one type of file and ICC profile capable
>> applications
>> can use any profile that meets the spec for which they are compliant.
> 
> There are a number of ways to make an ICC for different purposes.  For
> example, we make ICCs in Photoshop to modify the monitor view (or "soft
> proof" it).  QTR can make ICCs.  Are these the same type of file?  Can
> either or both be used in the Print with Preview workflow?

Each tag has a defined structure as per the spec.  Profiles several of these
prescribed tags to make a profile. Different tags have different purposes.
A profile generator can also have custom tags which have been registered
with the ICC.


>>  kTRC is a curve describing the stimulus
>> response behaviour of the printer/ink/driver/paper combination.
> 
> This is probably where the similarity is, but perhaps coded differently.
> 
> I call this graph or relationship an input-output curve.
> 
>> The data is
>> scaled in XYZ to the media white point, ie it is media relative.
> 
> Like Lab, is XYZ an absolute luminance scale?

Not sure what you mean by this.  XYZ_Y can actually exceed 100 but for
printed media the max is 100 and equates to L*=100.  If say your paper came
in at XYZ_Y=96 then the ICC profile will incorporate data that has been
scaled so that this is upped to 100.

> 
> Unless one is using glop, I can't see many situations where I'd want to tell
> the printer to put any ink in my 0% highlights.
> 
> I think the loading for the black point may be where there would be more
> practical difference, but aside from the 7600, I almost always found an
> Epson paper type that worked for controlling loading and gave essentially
> the best dmax.  As was noted in a recent thread, most of the good matte
> papers seem to be able to handle about the same load.
> 
>> Therefore
>> the curve runs from the very top right to some point on the left y axis
>> equivalent to the black point of the output as scaled for white point.  If
>> you build into the ICC profile kTRC tag black point compensation then the
>> curve will hit 0,0.
> 
> 
> So, does black point compensation mean the curve hits (0,0)?

Yes.  Let's say the PCS was Lab and you had a perfectly linear printer from
L*=10 to L* =96.  The tonal response of the printer can be described by a
straight line from 0,10 to 100,96 (normalised scale).  But the ICC spec
requires media relative data and we don't want our highlights clipped.  So
the data which makes up the straight line from 0,10 to 100,96 is scaled in
XYZ (for B&W we only care about Y) such that the top right is 100,100 - but
note all the other points have been altered by the scaling.  Without doing
the maths, let's say the new black end is at 0,13.  Without BPC every pixel
in the normalised range from 0 to 13 is clipped.  BPC scales the data such
that the curve begins at 0,0.  So when you send pixel value 0 to the printer
it gets left at 0 and hence prints as dark as the printer possibly can.


> 
> 
> 
>>  Therefore one can, via a transfer curve, cause the same
>> sort of luminance adjustment that an ICC profile can achieve.
>> You just need to know the points for the transfer curve.
> 
> Yes, and in that respect, I think there will always need to be a variety of
> ways to determine this, including manually and visually.
> 
> As long as the loading is set right with the Epson paper type selection, it
> would appear a Transfer Function could do essentially the same input-output
> mapping function as an ICC or "linearizing" function in another rip.

Yes as noted they do the same thing for the outbound portion of the ICC
profile.  QTR Create ICC incorporates hue into the proofing (inbound to
monitor) portion.

> 
>> Therefore as I understand it, one could theoretically achieve the same
>> thing with either approach.  However, the transfer function in PS
>> (and other apps), if I recall correctly, limits the number of points.
> 
> Yes, it uses less than I'd ideally like.  Is there a limit in the ICC
> format?

No but for all practical purposes 51 steps is likely more than enough.
> 
>> The old QTR Create ICC app essentially created a kTRC (k for greyscale)
>> from the input data.  WTPT scaling was done and, depending on the
>> version of QTR Create ICC, BPC scaling was done.
> 
>> So you can go into one of these profiles
>> and take a look at the kTRC tag and see the curve I am talking about.
> 
> If the ICC files are all the same in the way they deal with a grayscale
> curve, is it the interface with the curve or input-output tabel that
> distinguishes them?
> 
> I note that the section of PS that makes the custom dot gain curves -- which
> are saved as ICCs -- does not appear to be able to open the QTR ICCs.

The custom dot gain function is what I was getting confused with before re
end points (you can't move them).  It similar but not really the same thing.
I do not profess to understand it but believe the concept is the same -
adjust pixel values to accommodate dot expansion on paper.
> 
>>  For colour ICC profiles ...
> 
> Too much information for now and a B&W guy.

Worth following through with though.  The concept is the same just 3D
instead of one D.  
> 
> 
> 
>> In general terms, though, the TRC (tonal response curve)
>> approach is deemed insufficient for most devices and lookup tables are
>> preferred, specifically A to B and B to A tables.
> 
> Is the QTR Curve Creator Linearization tab a look-up take interface?

Now it is.  Before not.  See below.
> 
> Is there a graphical curve system?

You can view the contents of an ICC profile in Colorsync (Mac) or with the
utility available at the color.org site under ICC Resource Center.

> 
> Is there a way to relate a PS curve to this system?

Yes they are essentially the same thing.  When I was exploring this stuff
and asking questions about it of a color scientist he kept saying that we
could achieve the same thing with a curve.  At the time I did not understand
the response.
> 
> 
> 
>> There is a pair for each rendering intent.
> 
>> One for PCS (Profile Connection Space - currently can
>> only be XYZ or CIELab) to device conversion and one for device to PCS
>> conversion. 
> 
> Can you explain these spaces and where they are used?

In short ;-) a Profile Connection Space is a space which can act as an
intermediary between other colour spaces ie it is not device dependent.  An
input space, eg scanner profile, describes how to translate from the input
space to the intermediate space.  An output space, eg printer profile,
describes how to get from the intermediate space to the printer space.  All
transformations pass through this intermediate space.  I encourage you to
make your way through the white papers here:

http://www.color.org/whitepapers.html

And the appendices to the spec itself.  Bruce Fraser's Real World Colour
Management is also helpful as an intro.
> 
>> The new/current QTR Create ICC app takes advantage of this and
>> uses A2B0 and B2A0 (perceptual) tags.
> 
> Do these tags relate to what you've said above?

Yes.  A2BO is device to PCS. B2A0 is PCS to device.  So B2A0 is used to
manage luminance out.  A2B0 contains full Lab info so that we can soft proof
hue as well as luminance. 0 denotes the perceptual intent.
> 
>>  This allows Roy to have colour
>> information one way - for soft proofing - but not the other way - for
>> controlling the luminance output of the printer.
> 
> To simplify, I'm really interested only in the luminance end right now.

Colorsync gives you a picture of the table in graphical form (not sure about
the PC utility).  (Roy can explain the intricacies of how he programmed the
tags.  I am describing their purpose and general form.)  You can see that
the B2A0 tag has just got gray info (and that it is BPC adjusted.  By
contrast, you can see L, a and b info in the A2B0 tag.

Once you've got the outbound part the inbound part slots in place so you are
focusing on the right area for now.
> 
>> (The only issue with the
>> current version of QTR Create ICC is that Roy is scaling the soft proofing
>> data for luminance only
> 
> Good.

Actually not good.  His aim is to proof hue and luminance correctly.
Luminance is ok but hue is off a little.  He understands the issue and we
narrowed the problem down only just before he left for a photo expedition.
I am sure it will be corrected soon.  I guess it's good in that at least he
luminance is right!


> 
>> Hope this helps
> 
> Yes, I hope within the limited B&W fine-tuning or linearization, and  also
> perhaps monitor matching contexts, I can understand the options.  Probably
> dealing with just the printer output end is the place to concentrate
> initially.  

Yes.  It really isn't that hard for greyscale.  The areas we kept getting
stuck on was understanding that the information going into the ICC profile
had to be scaled for the white point (so highlights weren't clipped) and
that BPC plugs a whole in the ICC spec for the black point end of things.

Start by thinking only about the kTRC tag and what it is describing. (The
tabular version is the same info in a different format and allows one the
ability to describe the situation in both directions and potentially
differently for each ie add a* and b* info to the soft proof direction.)
Also focus on a  printer perfectly linear with respect to L*.  The kTRC
describes the tonal response of the printer in terms of the PCS.  So a Lab
PCS is easy because then a linear L* printer will be a straight line kTRC.
The XYZ_Y equivalent of the same thing is a curve.

So with CIELab as the PCS, if a printer maxes black at L*=15 and paper white
is L*=97 (generally normal for matte paper) one would describe the tonal
response of the printer as a straight line from 0,15 to 100,96.  But the
spec requires, as do we, that the TRC be media (white point) relative.  We
require it because we don't want a transform that clips the highlights.  So
the data going into the kTRC is scaled with respect to the paper white
luminance.  All scaling is done in XYZ_Y - makes sense.  So the scaled data
is a curve which extends not to 100,96 but to 100,100.  All other points are
adjusted accordingly.  Without BPC the black end gets clipped.  So we can
either ask PS to do the BPC or do it in the ICC profile/transfer curve
ourselves.  Roy decided to embed it in the B2A0 tag and hence if you look at
this tag you see the graph of the table extending to 0,0.
> 
> My goal is to find the easiest way to fine tune or linearize a basic
> monotone inkset -- manually and/or with instruments -- within the normal PS
> printing procedures as well as others.  It sounds like ICCs and Transfer
> Functions can be used in a Print with Preview workflow in PS almost
> interchangeably, but perhaps with the advantage of more points going to the
> ICC approach.  Does this sound correct?

For B&W they can achieve the same thing.  ICC profiles have the advantage
that people can set up soft proof in the normal fashion.  I do not know the
limit on transfer curve points but there is a practical useful limit anyway.
All you are doing is providing an adjustment to pixel values such that they
print with the "right" luminance.  Calculating the "right luminance"
involves and understanding of white point compensation and black point
compensation and the rescaling that is done for each in XYZ (or for our
purposes XYZ_Y).
> 
> Is there a place that describes the specific ways in which a Windows XP user
> can use QTR to make an ICC that can be used in the Print with Preview
> workflow and then the Epson driver?
>
Not sure but it is really very easy.  Print a step wedge with the workflow
of your choice eg Epson Adv B&W with a particular set of settings.  Scan the
step wedge with an EyeOne or other device that will provide the sort of data
QTR Create ICC can read. (Roy extended the data flexibility but because I
have an Eye One I have not focused on this.  Check his announcement of the
new version.)  If you would like I can describe in more detail how to do
this with an EyeOne device and MeasureTool.  Once you have the output from
Measuretool just drag and drop it on the QTR Create ICC app logo.  A PC user
can help correct this if my description is incorrect.

Sorry this is rushed - especially since we are trying to cover a lot of
ground. 

Steve

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.