Tone mapping
Digital Visual Effects, Spring 2006 Yung-Yu Chuang
2006/3/8
with slides by Fredo Durand, and Alexei Efros
Tone mapping
• How can we display it?
Linear scaling?, thresholding?
10
-610
610
-610
6Real world radiance
Display intensity
dynamic range
Pixel value 0 to 255
CRT has 300:1 dynamic range
Global operator (Reinhart et al)
world world display
L L L
= + 1
⎟⎟⎠
⎜⎜ ⎞
⎝
⎛ +
=
∑
y x
y x N L
L
,
)) ,
( 1 log(
exp δ
) , ( )
,
( L x y
L y a
x
Lw =
Global operator results
Eye is not a photometer!
• "Every light is a shade, compared to the higher lights, till you come to the sun; and every
shade is a light, compared to the deeper shades, till you come to the night."
— John Ruskin, 1879
Compressing dynamic range
rangerange
Fast Bilateral Filtering for the Display of
High-Dynamic-Range Images
Frédo Durand & Julie Dorsey
Laboratory for Computer Science
Massachusetts Institute of Technology
A typical photo
• Sun is overexposed
• Foreground is underexposed
Gamma compression
• X −> Xγ
• Colors are washed-out
Input Gamma
Gamma compression on intensity
• Colors are OK, but details (intensity high- frequency) are blurred
Gamma on intensity Intensity
Color
Chiu et al. 1993
• Reduce contrast of low-frequencies
• Keep high frequencies
Reduce low frequency Low-freq.
High-freq.
Color
The halo nightmare
• For strong edges
• Because they contain high frequency
Reduce low frequency Low-freq.
High-freq.
Color
Durand and Dorsey
• Do not blur across edges
• Non-linear filtering
Output Large-scale
Detail
Color
Edge-preserving filtering
• Blur, but not across edges
• Anisotropic diffusion [Perona & Malik 90]
– Blurring as heat flow – LCIS [Tumblin & Turk]
• Bilateral filtering [Tomasi & Manduci, 98]
Edge-preserving Gaussian blur
Input
Start with Gaussian filtering
• Here, input is a step function + noise
output input
=
J f ⊗
I
Start with Gaussian filtering
• Spatial Gaussian f
output input
=
J
f
⊗ IStart with Gaussian filtering
• Output is blurred
output input
J
= f ⊗ IGaussian filter as weighted average
• Weight of ξ depends on distance to x
) , (x ξ
f I(ξ )
output input
= ) (x
J
∑
ξ
x x
ξ
The problem of edges
• Here, “pollutes” our estimate J(x)
• It is too different
x
) ( ξ I
) (x I
) , (x ξ
f I(ξ )
= ) (x
J
∑
ξ
output input
Principle of Bilateral filtering
• [Tomasi and Manduchi 1998]
• Penalty g on the intensity difference
= ) (x
J
∑
f (x,ξ ) g(I(ξ ) − I(x)) I(ξ ) ) ξ( 1
x k
x I (x )
) ( ξ
I
output input
Bilateral filtering
• [Tomasi and Manduchi 1998]
• Spatial Gaussian f
= ) (x
J
∑ f ( x , ξ )
g(I(ξ ) − I(x)) I(ξ )) ξ
( 1
x k
x
output input
Bilateral filtering
• [Tomasi and Manduchi 1998]
• Spatial Gaussian f
• Gaussian g on the intensity difference
= ) (x
J
∑
f (x,ξ ) g(I(ξ ) − I(x)) I(ξ ) ) ξ( 1
x k
x
output input
output input
Normalization factor
• [Tomasi and Manduchi 1998]
• k(x)=
= ) (x
J
∑
I(ξ )) ξ
( 1
x k
x
) , (x ξ
f g(I(ξ ) − I(x))
∑
ξ) , (x ξ
f g(I(ξ ) − I(x))
output input
Bilateral filtering is non-linear
• [Tomasi and Manduchi 1998]
• The weights are different for each output pixel
= ) (x
J
∑
f (x,ξ ) g(I(ξ ) − I(x)) I(ξ ) ) ξ( 1
x k
x x
Contrast reduction
Input HDR image
Contrast too high!
Contrast reduction
Color
Input HDR image
Intensity
Contrast reduction
Color
Intensity Large scale
Fast
Bilateral Filter
Input HDR image
Contrast reduction
Detail
Color
Intensity Large scale
Fast
Bilateral Filter
Input HDR image
Contrast reduction
Detail
Color
Intensity Large scale
Fast
Bilateral Filter
Reduce contrast
Large scale
Input HDR image
Scale in log domain
Contrast reduction
Detail
Color
Intensity Large scale
Fast
Bilateral Filter
Reduce contrast
Detail
Large scale
Preserve!
Input HDR image
Contrast reduction
Detail
Color
Intensity Large scale
Fast
Bilateral Filter
Reduce contrast
Detail
Large scale
Color
Preserve!
Input HDR image Output