MARCH 2015 | VOL. 58 | NO. 3 | COMMUNICATIONS OF THE ACM 87
factor so that the output dynamic range is 100: 1 for the
linear intensities. Finally, we multiply the intensity by
the color ratios (rr, rg, rb) to obtain the output RGB channels, then gamma correct with an exponent of 1/2.2 for
display. We found that fixing the output dynamic range
not only makes it easy to achieve a consistent look but
also constrains the system. As a result, the s and b parameters have similar effects, both controlling the balance
between local and global contrast in the rendered image
(Figure 9). From a practical standpoint, we advise keeping
s fixed and varying the slope b between 0, where the local
contrast is responsible for most of the dynamic range,
and 1, where the global contrast dominates. Unless otherwise specified, we use s = log( 2. 5), which gave consistently good results in our experiments. Since we work in
the log domain, this value corresponds to a ratio between
pixel intensities. It does not depend on the dynamic range
of the scene, and assumes only that the input HDR image
measures radiance up to scale.
Our tone mapping operator builds upon standard elements from previous work that could be substituted for others. For instance, one could instead use a sigmoid to remap
the intensities to the display range30 or use a different color
management method (e.g., Mantiuk et al. 24). Also, we did not
apply any additional “beautifying curve” or increased saturation as is commonly done in photo editing software. Our
approach produces a clean output image that can be postprocessed in this way if desired.
Range compression is a good test case to demonstrate the abilities of our pyramid-based filters because
of the large modification involved. For high compression, even subtle inaccuracies can become visible, especially at high-contrast edges. In our experiments, we did
not observe aliasing or oversharpening artifacts even on
cases where other methods suffer from them (Figures 10
and 11). We also stress-tested our operator by producing
(a) s = 0.2 (b) s = 0.5
Figure 7. Effect of the s parameter for detail enhancement (a = 0.25).
Same input as Figure 6.
(a) Input (b) Luminance only (c) RGB channels
(d) Close-up (e) Close-up (f) Close-up
Figure 8. Filtering only the luminance (b) preserves the original
colors in (a), while filtering the RGB channels (c) also modifies the
color contrast (a = 0.25, b = 1, s = 0.4).
(a)b = 0
s = log( 2. 5)
(b)b = 0
s = log( 3.0)
(c) b = 0.75
s = log( 2. 5)
Figure 9. b and s have similar effects on tone mapping results, they
control the balance between global and local contrast. a is set to 1 in
all three images.
5. 3. Tone manipulation
Our approach can also be used for reducing the intensity
range of a high-dynamic-range (HDR) image, according
to the standard tone mapping strategy of compressing the
large-scale variations while preserving (or enhancing) the
details. 35 In our framework, we manipulate large-scale variations by defining a point-wise function modifying the edge
amplitude, fe(a) = ba, where b ³ 0 is a user-defined parameter
(Figure 5).
In our implementation of tone manipulation, we pro-
cess the image intensity channel only and keep the
color unchanged. 10 We compute an intensity image
and color ratios ,
where Ir, Ig, and Ib are the RGB channels. We apply our fil-
ter on the log intensities log(Ii), 35 using the natural loga-
rithm. For tone mapping, we set our filter with a £ 1 so
that details are preserved or enhanced, and b < 1 so that
edges are compressed. This produces new values
, which we must then map to the displayable range of
[0, 1]. We remap the result by first offsetting its
values to make its maximum 0, then scaling them so that
they cover a user-defined range. 10, 21 In our implementa-
tion, we estimate a robust maximum and minimum with
the 99.5th and 0.5th percentiles, and we set the scale