Gray Curves for the Epson Advanced B&W Photo Driver
by Eric Chan
Last updated: January 18, 2008
Examples of two different gray curves for the Epson 3800's ABW
driver. The left curve is for Epson Velvet Fine Art; the right curve
is for Ilford Smooth Gloss. Both curves provide accurate tone
reproduction throughout the entire range from shadows to highlights on
their respective papers. The method used to generate these curves is
- January 18, 2008 Fixed bad links to older (and now
non-existent) .acv gray curve files.
- October 8, 2007 I have now moved on to building and using standard ICC profiles for
the ABW driver. The new method retains all the benefits of the
older gray curve approach described on this
page, shares the same workflow as when printing color images, and
can be used from all printing applications (such as Lightroom),
not just Photoshop.
- March 26, 2007 Corrected the numbers used in the
example above where V = 42. The output RGB value 71 corresponds
to L* = 34.98, not 36.70. (I misread the measurement table when
writing the example.) Thanks to Sally S. for pointing this out!
I prefer to use the Advanced B&W Photo (ABW) mode instead of the
Color mode when printing black and white images on my Epson 3800.
When we print color images through the RGB driver, the printing
application usually converts images from the RGB working space to the
output device's RGB space using paper-specific ICC color profiles. For
example, when printing in Photoshop, it's common to set the Color
Handling option in the Print With Preview box to Let Photoshop
Determine Colors and to select the appropriate profile from the
Printer Profile menu. (Then we have to remember to disable color
management in the Epson driver to avoid double profiling.)
- Blacks are deeper when printing with the ABW driver compared to
the RGB driver.
- The ABW driver is more (perceptually) linear than the RGB driver
here for details).
- Prints made with the ABW driver have less metamerism, bronzing,
and gloss differential compared to prints made with the RGB
- Prints made with the ABW driver have superior longevity. See here to learn
In contrast, when we print black and white images through the ABW
driver, we don't use the standard ICC color profiles because those
profiles are based on the RGB driver, not the ABW driver. In fact,
Epson recommends setting the Color Handling option in Photoshop's
Print With Preview box to No Color Management. This means that
your images' RGB values are passed directly to the ABW driver
unmodified. For example, if you place Photoshop's eye dropper over a
pixel and find that it has RGB values (37, 37, 37), then (37, 37, 37)
is exactly what Photoshop will give to the ABW driver.
Simple enough, right? Well, not so fast ...
There are a few wrinkles with this approach, and they all have to do
with the fact that the output process isn't color-managed. (We'll see
how to iron them out in the next section.)
- We can't soft proof the image, even if our display is properly
calibrated and we're using a color-managed application such as
Photoshop. This is because we have no profile to use for
soft-proofing! The printed image might be too dark or too light.
That's not good: What-You-See-Will-Probably-Not-Be-What-You-Get!
- The same image will print differently on different papers, because
papers vary in their ink absorption characteristics. An image printed
on one paper (such as Red River Paper's UltraPro Gloss) might be too
dark, while the same image printed on a similar paper (such as
InkJetArt's Micro Ceramic Gloss) might be too light. That's not good:
even though papers do have fundamental differences (e.g., smoothness,
paper whites, etc.), we still expect the printed image to have the
same tonal balance no matter which paper we use!
- Results will depend on our choice of RGB working space, because
different RGB color spaces encode RGB values using different gamma
curves. For example, Adobe RGB uses a gamma of 2.2 while ProPhoto RGB
uses a gamma of 1.8. The two ramps below show a simulation of what
happens if we print two gray ramps that (in Photoshop) look visually
identical to our eyes. The top and bottom ramps correspond to the
cases where our RGB working spaces are set to Adobe RGB and ProPhoto
RGB, respectively. Clearly, the ramps do not come out the same -- the
bottom one is darker than the top.
Why does this happen? Well, let's find out by examining a single gray
patch: middle gray. In Photoshop, create two empty RGB images, one in
Adobe RGB and the other in ProPhoto RGB. In the Color palette, use the
Lab sliders to set the Lab color to (50, 0, 0) -- which is middle gray
-- and fill both images with this color. Then, use the Info palette to
read out the RGB values.
The images look the same, but the numbers are different! Middle gray
is 118 in Adobe RGB and 100 in ProPhoto RGB. If we printed the gray
patches by sending these RGB values directly to the ABW driver,
naturally the ProPhoto RGB image would print darker (because 100 is
less than 118).
The bottom line is that our choice of RGB working space will affect
how light or dark the printed image appears. That's not good: we want
our images to print the way we see them on the screen, regardless of
which working space we're using!
Fortunately, all three of these problems can be solved using a
dedicated gray profile (instead of a RGB color profile) or using gray
curves that map the RGB working space values to the required output
space values. Let's take a look at these options below.
You can make gray profiles by printing a gray stepwedge, measuring it
with a densitometer or spectrophotometer, and feeding the measurements
to Roy Harrington's QuadToneRIP
software, which will generate an ICC gray profile for you. This
process is described
in detail by Giorgio Trucco, so I won't repeat the instructions
I have found that I can get even better results by building custom
gray curves in Photoshop. These paper-specific curves reproduce tones
accurately throughout the entire range from shadows to highlights.
How are these gray curves made? I print a gray target, measure it with
my Eye-One Pro, and save the results in Lab format. Next, I feed the
measurements into a custom software program that I've written. The
program constructs the curve that maps RGB working space values to
output space values in a way that preserves tonal relationships (see here for details). For example, RGB = (0, 0,
0) in the working space is mapped to the paper's deepest black (i.e.,
d-max), middle gray in the working space is mapped to the paper's
middle gray, etc.). The program then saves the curve as a Photoshop
curve (.acv) file.
Gamma 1.8 vs. gamma 2.2 issues are handled by generating two curves,
one designed for gamma 1.8 and the other designed for gamma 2.2. For
instance, here's a gray curve for Epson Velvet Fine Art on an Epson
3800 when loaded into Photoshop:
The gray curve above is designed to be used with gamma 1.8 working
spaces, such as ProPhoto RGB or Gray Gamma 1.8. In contrast, the gray
curve below is for the same paper and printer (and is actually built
from the same measurement data as the curve above), but it's designed
to be used with gamma 2.2 working spaces, such as Adobe RGB or Gray
I have converted my gray curves for my Epson 3800 to standard ICC
profiles so that they may be used from any ICC-aware application, such
as Photoshop, Lightroom, and QImage. These profiles are available on this page. Feel free to download them and
try them. Only a few curves are available right now, but I intend to
add more as I work with more papers.
Important: the following information applies
only to my older .acv gray curve files, which are no longer available.
I now recommend using my newer standard ICC
Using gray curves is easy. Process your image normally in Photoshop,
using what you see (on your calibrated display) as your soft proof. Then, as the final step before
printing, add a curves adjustment layer and load the gray curve from
the .acv file; the curve effectively performs the conversion from your
working space to the printer space. That's it -- go ahead and print!
Here are more detailed, step-by-step instructions for Photoshop CS2
running on Windows XP. These instructions should also work fine under
Mac OS X, but the application and driver settings may have slightly
- Download the appropriate .acv output curve
file. There are two curves for each paper, one for gamma 1.8 and
one for gamma 2.2. It is very important that you choose the correct
one based on the gamma of your RGB or gray working space. Use the
following table to decide:
|Gray Gamma 1.8
|Gray Gamma 2.2
|Wide Gamut RGB
For example, if you are printing an image on Epson Velvet Fine Art
paper and your RGB working space is ProPhoto RGB, use the
If you don't find your working space listed in the table above, check
Lindbloom's more complete table of common RGB working spaces.
- Prepare your black and white image in Photoshop to your heart's
- Naturally, you need to have a properly calibrated display so that
you can accurately preview the results. (You have calibrated
your display, right?)
- Check that your image is truly gray. If you work in RGB mode, then
the R, G, and B channels should be equal to each other for every pixel
in the image.
- Include all of the normal steps at the end of your workflow (e.g.,
resizing the image for output, sharpening, etc.).
- Process your images in 16-bit mode. In fact, it's best to stay in
16-bit mode all the way to the very end (including all of the
- Add a curves adjustment layer by pulling down the Layer menu,
choosing New Adjustment Layer, and selecting
- In the Curves box, click the Load... button and select the
appropriate curve (i.e., the curve that you downloaded in Step 1
This will add many new control points. Here's an example of what you
This is just an example, so the actual positions of the control points
(and the shape of the curve) may be different in your case, depending
on which curve you selected. Click the OK button.
In most cases, you'll notice a big tonal change to the image and the
results might look downright scary! Don't worry -- this is normal.
Remember, the gray curve isn't supposed to give you a preview of what
you will get when you print your image. The purpose of the gray curve
is to make the necessary adjustments to your image's RGB values so
that when you actually print the image,
you'll get what you had on your display before you added the
gray curve. Take your time and read that last sentence again slowly
... I admit it's rather counterintuitive!
- Go to the File menu and choose Print with Preview...
- In Photoshop's Print with Preview settings, set Color Handling to
No Color Management, then click on the Print... button.
- Make sure that all of your settings in the Epson driver match the
driver settings listed on this page for your paper. In particular,
make sure that you have selected the correct Media Type, Print
Quality, and Tone.
Print and enjoy!
Tips and Tricks
Sometimes, tweaking the gray curves will give you better results than
the default gray curves. Let's take a look at two examples.
Example 1: Minimizing Gloss Differential on PK Papers
Gloss differential is a phenomenon where the amount of light reflected
off of the surface of the print seems to vary across the image. This
gives the impression that some parts of the image are "shinier" or
"glossier" than others. It is noticeable mostly in highlight regions
which receive little or no ink. When the print is viewed at certain
angles, it becomes clear that the parts of the paper that receive
little or no ink seem to reflect light differently than the parts of
the paper that receive heavier ink coverage. Gloss differential occurs
only with PK papers (e.g., glossy, luster, semigloss surfaces).
One way to minimize gloss differential is to reduce the maximum gray
level from 255 slightly (e.g., to 252 or 253). This is easy to do by
modifying the default gray curve. For instance, here is the gray curve
for Ilford Smooth Gloss, Gamma 1.8, after adjusting the top-right
control point downwards slightly so that the Output value is 252
(instead of the default 255). This will reduce gloss differential at
the expense of slightly compressed highlights.
Example 2: Extra Shadow Detail
The default gray curves should provide excellent shadow detail, but
only if the print is properly illuminated. This won't be an issue if
you stick your print in a highly-controlled viewing booth, but in
typical household environments, lighting conditions may not be so
friendly. For these situations, you may want to open up the shadows a
bit. This is easy to do by modifying the default gray curve.
For instance, here is the gray curve for Ilford Smooth Gloss, Gamma
1.8, Move your cursor over the image to see what it looks like after
the second control point from the left has been deleted. This raises
the curve in the deepest shadow areas, thereby making it easier to
"see" into the shadows of your image without affecting the lighter
This section explains how to convert a working space RGB or gray value
to an output device value that has the same perceived lightness.
The ABW driver is really a grayscale driver. In a nutshell, this means
that if we send a color RGB image to the ABW driver, the driver will
convert the color image to a grayscale image before printing it. Giorgio
Trucco gives more details here.
The L* channel of the Lab color space is a perceptually linear
encoding of lightness on the scale from 0 to 100. In an 8-bit RGB
working space, RGB = (0, 0, 0) corresponds to L* = 0 and RGB = (255,
255, 255) corresponds to L* = 100.
In practice, we don't get L* values of 0 or 100 when we print an image
on paper. L* can't be 0, because papers always reflect some amount of
the incident light. Similarly, L* can't be 100, because papers don't
reflect all of the incident light.
For example, here is a table of measurements obtained by printing a
51-patch gray target on my Epson 3800 printer on Epson Velvet Fine Art
paper and then measuring the results with my spectrophotometer:
L* measurements of a 51-patch gray chart printed on an Epson 3800
on Epson Velvet Fine Art using the ABW driver. Each row of the table
shows the 8-bit RGB value (in the range [0,255]) that was sent to the
ABW driver and the resulting L* value as measured by an Eye-One
Pro in MeasureTool.
As you can see from the table, the L* values range from 14.33 to
97.14. Most matte papers have L* values that range from 17 to 95 or
so. (Velvet Fine Art has an unusually deep black.)
The idea when building a gray curve is to scale our working space L*
values (which range from 0 to 100) to the available L* range of the
paper. For example, L* = 0 and L* = 100 in our working space should
map to L* = 14.33 and L* = 97.14 on Velvet Fine Art, respectively,
and all other working space L* values between 0 and 100 should be
linearly scaled to fit the output range [14.33, 97.14].
Here are the specific steps required to construct a gray curve:
For example, let's figure out how to process an 8-bit ProPhoto RGB
value of 42 when printing on an Epson 3800 and Epson Velvet Fine Art.
The L* measurements for this paper are given in the table above.
Let V be an 8-bit gamma-encoded RGB or gray value that lies in the
range [0, 255], and let g be the gamma of the working space
(typically either 1.8 or 2.2). Use the following formulas to convert
V to L*:
- Let Lmin and Lmax be the minimum and maximum L*
values of the paper. Scale the working space L* to the output
range [Lmin, Lmax]:
- Use the gray target measurement table to infer the RGB value
corresponding to L*dst. This is the number that should actually
be sent to the printer when the working space value is V.
- Repeat Steps 1 to 3 for each data point that you want to add to
your curve. For example, we have to perform Steps 1 to 3 sixteen times
for a 16-point curve. Now you see where a computer program (or a
spreadsheet) comes in handy!
In this example, V = 42 and g = 1.8 (since the gamma of
ProPhoto RGB is 1.8). After crunching through the math in Step 1, we
find that L* = 23.3. According to the measurement table,
Lmin = 14.33 and Lmax = 97.14. This gives us everything
we need to perform Step 2, and we find that L*dst = 33.63.
Finally, we need to figure out which output space values will produce
L*dst = 33.63. According to the measurement table, 33.63 falls
between RGB value 66 (which produces L* = 32.54) and RGB value 71
(which produces L* = 34.98). Linearly interpolating between these two
output RGB values, we obtain 68.24.
What have we learned? In a nutshell: if we have an 8-bit ProPhoto RGB
image that contains a pixel with value 42, we should actually send the
value 68 to the ABW driver. (Note that this correspondence is only
valid for the Epson 3800 and Epson Velvet Fine Art when using the
specific driving settings listed on this
Thanks to Bruce Lindbloom
for sharing a wealth of color-related articles and reference material
on his highly educational web site.