The tone mapping operator described in this section has not been published yet. Actually, only a short sketch was published at SIGGRAPH '97, and the whole paper is available electronically from the RADIANCE WWW site [RADI97]. We decided to include this mapping in this work as it seems that this mapping will be widely spread in the future. It is based on Ferwerda's mapping, but adaptation level determination is improved. In contrast to all previous methods, that used only one adaptation level for the whole raw image, this mapping uses many adaptation levels, just as our visual system does.
The tone mapping process starts with computing a small image where each pixel corresponds to one visual degree. Actually only center pixels correspond to the 1 degree angle, but the error introduced in the border pixels is neglectable. The 1 degree area corresponds to the adaptation area of our visual system. This small image will be used to determine adaptation levels at each fixation point. Luminance is converted to brightness simply by taking the logarithmic values of luminances. Once the auxiliary image is generated, a logarithmic histogram is built.
A logarithmic histogram is built in the luminance range from the
threshold of human vision
) or the minimum
auxiliary image luminance, whichever is larger, to the maximum
auxiliary image luminance.
The next step is histogram equalization. Actually this is not the next step in the fully implemented method, but this is the base of the whole algorithm, and therefore it is described first.
Histogram equalization is a well known technique from image
processing. The cumulative frequency distribution P(b) is needed
to equalize a histogram. P(b) is defined as:

where T is the total number of histogram entries, and
is
the frequency count for the histogram bin at
. Later on, the
derivative of the above function will be needed as well. The
derivative is:

where

and N is the number of histogram bins, therefore
corresponds to the size of each bin. Note that since the cumulative
frequency distribution is a numerical integration of the interval, the
derivative of the cumulative distribution is the histogram with an
appropriate normalization factor.
A common histogram equalization (but here applied on the raw-image)
would produce an image where all brightness values have equal
probability. The equalization formula can be written as:

where
stands for display brightness, and B for the raw image
brightness. The problem with this approach is that the dynamic range will
be compressed in the regions where there are only a few samples, and it
will be expanded in highly populated regions. This results in an
unnatural appearance of the final image, and certainly can not be used
as useful tone mapping operator.
Suppose that the 60% of pixels have luminnace lower than
. In this case, small original luminnce range (
) will use 60% of available display luminances. In order
to prevent this unwanted effect, Larson et al. suggest limiting an
allowed contrast in a particular region. Actually, although naive
histogram equilasation will propose enlarging of the original
contrast, it will not be allowed. At the beginning they used a
linear ceiling, which can be written as:

In this way the contrast can not exceed the contrast obtained by using a
linear scaling operator. Note that
is actually the
slope of the mapping function
. Using this type of ceiling
the slope of the mapping function can not exceed that of appropriate
linear mapping. From the above equations it is easy to derive following
inequality:

where f(b) is the frequency count for the histogram bin b.
Using this inequality we can be sure that as long as no frequency count exceeds this ceiling, the resulting histogram will not exaggerate contrast. If some histogram bin is too populated, it is simply cut off and the ceiling procedure is repeated iteratively, until there are no more overpopulated histogram bins. This process is called histogram adjustment rather than histogram equalization by the authors.
Up to now, there were no human vision characteristics taken into account in this process. The authors say that if the raw image is not rendered in absolute units, a histogram adjustment, as just described, can be applied to the raw image. If absolute units are known, the method can be improved.
In the case of absolute unit raw image, the ceiling function is
derived from the just noticeable difference functions (see section
Human Vision). The just noticeable difference for adaptation level
will be called
. To guarantee that the display
representation does not exhibit contrast that is more noticeable than
it would be in the actual scene, the slope of the operator is
constrained to the ratio of the two adaptation thresholds for the
display and actual scene. Note that this is the same principle
introduced by Ward in his contrast based scale-factor [Ward94] and
used by Ferwerda et al. in [FPSG96]. In contrast to the earlier
approaches, where only one adaptation level was chosen, this
constraint will be met at all potentional adaptation levels, making
this operator more accurate. The new ceiling is then:

After a similar derivation as with the linear ceiling a ceiling
inequation for f(b) is defined as:

Just as before, an iterative process leads to the solution. Applying
this sort of ceiling function will produce images that reproduce
original visibility on the final image. This operator is further
improved by taking the veiling luminance into account (see section
Human Vision).
The formulas described in the Human Vision section are used to
incorporate veiling luminance. This is the computationally most
expensive part of the algorithm, as the sum (integral in the original
formulas) has to be computed over all samples for each fixation
point using the following equation

where
is the veiling luminance for fixation point i,
is original fixation luminance for fixation point j, and
is the angle between sample i and j (in radians, that
is why 0.087 stands at the begining of the eq. 5.18).
Once the veiling luminances
are computed, the original
luminances
are replaced by
using the formula derived
from eq. 2.22:

Visual acuity is taken into account, as well. The data used was the
same used by Ferwerda et al., it is described in the human vision
section. The dark image parts are blurred, as the human vision acuity
drops with luminance. Ward et al. used the mip-maps approach well known
from texture mapping to realize various acuities depending on the
absolute luminance levels.
The visibility matching tone operator described in this section, tries to match the visibilities in the original scenes with the display visibilities. Various aspects of human vision were taken into account, and the produced images match the visibilities. On the other hand, the final images look a little bit unusual. Maybe that is because we are not used to images and photos that match the visibility in high range images. This means that if there is a scene with a window on a sunny day, the new operator will display the interior and exterior part, and will try to match the visibility in both parts. It may look unusual to us, as we are used to seeing either the interior or the exterior in such a case (although we can see both in real life).
If the analysis of visibility is crucial in a rendering process (e.g. simulation of emergency lighting) this operator should be used. On the other hand, in everyday use it can sometimes render unusual (that does not mean incorrect) images.