# A high dynamic range sonar and radar image rendering with glow effect to help image interpretation

Andreas Arnold

► To cite this version:

Andreas Arnold. A high dynamic range sonar and radar image rendering with glow effect to help image interpretation. MTS/IEEE Oceans 2025, Jun 2025, Brest, France. hal-05122329

HAL Id: hal-05122329

https://hal.science/hal-05122329v1

Submitted on 20 Jun 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# A high dynamic range sonar and radar image rendering with glow effect to help image interpretation

Andreas Arnold

Thales DMS France, S.A.S.

10 avenue de la lère DFL

29200 Brest, France

Email: andreas.arnold@fr.thalesgroup.com

*Abstract*—We present a novel visualization scheme for high dynamic range imaging data (typically sonar or radar), which makes it possible to visualize and assess the strength of high amplitude echoes while not preventing the visibility of shadows. The approach uses a dual tone mapping where low amplitude data is represented using a value scale with an essentially constant hue and saturation, and the high amplitude data is represented using a hue scale with a constant value and saturation. Moreover, the visibility of strong echoes is enhanced thanks to a non-linear low pass filtering, creating the effect of a halo or glow around strong echoes, emulating the effect of old cathode ray tubes which was often used by sonar operators to interpret the images and which was lost with modern screens until now. The paper presents results of our method on actual data acquired by a high-end synthetic aperture sonar system.

*Index Terms*—Sonar, radar, high dynamic range rendering, HDR, bloom

## I. INTRODUCTION

Sonar and radar data easily exceeds a 60 dB dynamic, making it hard to represent the full amplitude range of the data on a computer screen. Two rendering techniques are typically used nowadays: i) rendering the image in logarithmic scale or ii) rendering the amplitude of the image after normalization and clamping. The first approach compresses the amplitude dynamic well with the drawback of hindering the interpretation of the image by an operator because the amplitude is not visualized. The second approach limits the available dynamic that can be used on the screen. This is why normalization generally comprises automatic gain control on a sliding window or time-variable gain with a gain depending on the time-of-flight of the acoustic or radio signal. The acoustic amplitude is then clamped then mapped to a color according to a color mapping function, the luminance of the color classically following a non-linear law (tone mapping). The clamping is justified by the fact that only a few points (typically less than 0.5% of the image) has a significantly high acoustic amplitude, most of the signal amplitude living in a

much smaller range (typically with a 10 dB dynamic). However this method gives the same importance to moderately high echoes and extremely high echoes, which are generally interesting, because they might characterize a target.

Recent attempts at mitigating these issues for sonar [3] and radar [4], [6] images involve the use of high-dynamic range (HDR) rendering techniques [2] to artificially mix images rendered with different gain settings, into a single image, so that locally, the best setting is used. The drawback of this technique is that very high amplitude, but very small points (a pixel or a few pixels wide) will be still very hard to perceive because their spatial extent is small, despite the use of high dynamic range rendering. Another limitation is that these methods are essentially monochrome at rendering, and do not explore the potential of using color as a means to visually represent the amplitude of the signal.

Now, old sonar displays, using cathode ray tubes (CRTs), also had the unique feature of allowing the use of the remanence effect of phosphor, which produced a characteristic glow around high amplitude echoes used by operators to interpret the images and quickly detect high-amplitude targets as the sonar image would scroll on the waterfall display. This behaviour is lost on modern computer screens.

Thus, we present a novel visualization scheme for high dynamic range imaging data (typically sonar or radar), which typically emulates this CRT-like glow effect on a computer screen, mixing it with HDR methods, with additional features not available on CRTs to make the best out of everything. The method achieves high dynamic rendering and allows a visual assessment of the signal strength based on a color cue, as well as the size of the glow around the echoes, without preventing the user from viewing low amplitude data around high amplitude data.

The method consists in compositing two images, one corresponding to low-amplitude data and the
other to high-amplitude data. These two images are rendered with two distinct color maps to highlight the nature of the information at a given pixel (low or high amplitude). The low amplitude data is essentially rendered using lightness as is done classically, while the high acoustic amplitude data is rendered using color hue. At this point, the solution is merely a classic high dynamic range rendering. However, the solution differs from a traditional high dynamic range rendering in that the image containing the information corresponding to strong dynamics has undergone pre-processing to increase the spatial spreading of strong echo points. This is done by a non-linear low-pass filtering of the high-amplitude image, where the impulse response width increases with the amplitude of the signal to be represented and varies with the image visualization scale without diluting the energy of the high intensity echoes. This aims at emphasizing strong echoes by producing the characteristic CRT-like “halo” around strong acoustic features, which facilitates a visual reading of the distribution of bright spots, and provide a quick and visual estimation of the amplitude of a bright point even when the image is zoomed out. Moreover, this pre-processing is configured to ensure that very strong echoes do not disrupt the reading of very low amplitude areas nearby, unlike old CRTs, where the halo would hide low-amplitude shadows beneath strong echoes, thus allowing for a comprehensive understanding of the image. This is achieved because the halo around strong echoes is encoded using color hues only, whereas the low-amplitude data is represented using color amplitude only.

The paper presents results of our method on actual data acquired by a high-end synthetic aperture sonar system.

## II. TONE MAPPING AND ITS LIMITS

### A. Dynamic range

When rendering data, the amplitude is not the raw voltage at the transducers, but an amplitude after time-variable gain (TVG) and/or automatic gain control (AGC) [7], [10]. Truthfully, TVG and AGC is already a form of HDR data capture. However, these methods are meant to deal with large scale spatial amplitude variation. Our method deals with high dynamic but small spatial scale variations that still remain in the image and which are precious information lost to the operator when viewing the data using classical approaches.

Denote the amplitude after TVG/AGC by function $A : \mathbb{R}^2 \to [0, A_{max}] \subset \mathbb{R}^+$, mapping a pixel position $(x, y)$ to an acoustic amplitude in natural values. In $A$, the distribution of the noise of the image will be substantially multiplicative and distributed according to a Rayleigh distribution (speckle noise) due to the

<figure><img src="image_2.png" /><figcaption>Figure 1. Cumulated histogram of the amplitudes $A$ in logarithmic scale after AGC, assuming the average of $A$ is near one. The underlying image is the one used throughout this paper.</figcaption></figure>

<figure><img src="image_3.png" /><figcaption>Figure 2. Low dynamic tone mapping: $H_0 = 0.55$, $S'_0 = 0.6$. $L_\gamma$ log-sigmoidal($A$); with $\gamma = 2$, $\delta = 1.5$, $A_{ref} = 1$. Values above 10 are rendered using the same color. Image courtesy of Direction Générale de l'Armement.</figcaption></figure>

coherent nature of the imaging process. We also assume that the local average of $A$ is one over a large spatial horizon after TVG or AGC, as seen in figure 1:

$$E[A(x, y)] = 1 \quad (1)$$

The cumulated distribution shown in this figure corresponds to the data shown in the sample sonar image rendered throughout this paper (see e.g. figure 2). This graph also shows that the distribution of the amplitudes will typically be long-tailed.

### B. Color mapping

Denote by $I$ the image displayed to the operator; this will be a function $I : \mathbb{R}^2 \to [0, 1]^3$. The destination space of $I$ is a color described using either of $[R, G, B]$, $[H, S, V]$ or $[H, S', L]$ triplets, where $R, G, B, H, S, S', V, L$ are within $[0, 1]$ and denote respectively the red, green, blue, hue, saturation (with two versions: $S, S'$), value and lightness. Terms $V$ or $L$ can be thought of as the “gray level”; $H$ is the
color nuance, and S is the saturation, where values
near 0 are gray or pastel-like, and values near 1
are very vivid (for S', values close to 1 give near-
white colors). The conversion equations are given by
algorithm 1, where x mod y ≜ x - y[x/y] if y ≠ 0
and [•] is the Iverson bracket.

<caption>**Algorithm 1** HS'L and HSV to RGB conversion</caption>

V ← L + S' · min(L, 1 − L)
S ← 2(1 − L/V ) · [V ≠ 0]
Δ ← mod ([H − 2 / 3, H, H − 1 / 3], 1)
A ← [0, 0, 0]
**for** i ∈ {0, 1, 2}:
A[i] ← 6Δ[i] · [Δ[i] < 1 / 6] +
       [1 / 6 ≤ Δ[i] < 1 / 2] +
       (4 − 6Δ[i]) · [1 / 2 ≤ Δ[i] < 2 / 3]
RGB ← V · (1 − S ) + V · S × A

C. Tone mapping

It is the purpose of a tone-mapping function T,
to map an amplitude A ∈ ℝ+ to a color triplet in
[0, 1]³. To give the image a uniform color tone, it
is simplest to work in the H, S, L space. Now, it is
of utmost importance to choose the colors wisely for
the tone mapping. Kovesi [5], among others, rightly
noted that “the most important factor in designing
a colour map is to ensure that the magnitude of
the incremental change in perceptual lightness of the
colours is uniform”, which is in favor of choosing a
tone mapping that is essentially with an increasing
lightness and constant hue H₀ and saturation S₀.
Thus we set: T(A) = [H₀, S₀, L(A)] where the tone
mapping occurs on the lightness. The the simplest
mapping function for L(A) is the linear function:

$$
L_{\text{linear}}(A) = \left\langle \frac{A - A_{\text{min}}}{A_{\text{clamp}} - A_{\text{min}}} \right\rangle_{0}^{1} \quad (2)
$$

...where ⟨x⟩_a^b ≜ max(a, min(b, x)) is the clamping function, A_{clamp} is a value above which amplitudes are clamped and always tone-mapped to a lightness of one, and A_{min} the value below which the amplitudes are clamped to zero. The “γ” law adds some contrast as it compresses the dark values when γ > 1 or the light values when 0 < γ < 1, and is used, among others, on computer screens. As such, this non-linear tone-mapping operator is probably the simplest attempt at compressing more high dynamic data into the useful range for visualization:

$$
L_{\gamma}(A) = \left\langle \left( \frac{A - A_{\min}}{A_{\text{clamp}} - A_{\min}} \right)^{\gamma} \right\rangle_{0}^{1} \quad (3)
$$

The log-linear tone mapping is consistent with the
human perception of color intensities due to the
Weber-Fechner law, which states that the human
sensitivity to external stimuli is logarithmic with the

stimulus; this is especially applicable to human vision
[1]. However the log-linear tone-mapping grows to
+∞ as values grow, so it too needs being clamped:

$$
L_{\text{log-linear}}(A) = \left\langle 1 + \frac{1}{2} \frac{\log A - \log A_{\text{ref}}}{\log A_{\text{clamp}} - \log A_{\text{ref}}} \right\rangle_{0}^{1} \quad (4)
$$

...where A\_ref is the amplitude that is mapped to a
lightness of 1/2 and the logarithmic base is the same
as the one used for the A-axis. The log-sigmoidal tone
mapping is sigmoidal when the amplitude is plotted
in a logarithmic scale, meaning it tapers gently to 0
and 1 as the |log A| values become large:

$$
L_{\text{log-sigmoidal}}(A) = \frac{A^{\delta}}{A_{\text{ref}}^{\delta} + A^{\delta}} \quad (5)
$$

where A\_ref keeps its meaning and δ is a parameter
defining the slope at A\_ref: if δ = 2 / ln (A\_clamp / A\_ref)
then the slope at A\_ref is the same as that of the log-
linear curve. If δ = 1 the function is a classic tone-
mapping function used in photography [8] that has
been extended by Schlick as the Uniform Rational
Quantization method [9] (the mapping is linear for
b = 0 and log-linear with δ = 1 for b = 2):

$$
L_{\text{Schlick}}(A) = \left\langle \frac{bA}{(b-1)A+1} \right\rangle_0^1 \quad (6)
$$

The log-sigmoidal mapping can be extended into
the γ log-sigmoidal mapping, which is defined as
$L_{\gamma \log \text{sigmoidal}} = L_{\gamma} \circ L_{\log \text{sigmoidal}}:$

$$
L_{\gamma} \log \text{sigmoidal}(A) = \left( \frac{A^{\delta}}{A_{\text{ref}}^{\delta} + A^{\delta}} \right)^{\gamma} \quad (7)
$$

Figures 3 and 4 show a plot of various tone-
mapping functions exposed in this section. Whatever
the tone-mapping being used, all high amplitudes
A > A_{clamp} are mapped to the same lightness, which
is a problem: it is impossible to distinguish strong
echoes from really strong echoes. figure 2 shows a
low-dynamic rendering (LDR) of a synthetic aperture
sonar image. The tone mapping parameters are as
follows: the hue is constant with H₀ = 0.55, the
saturation is constant S'₀ = 0.6, the lightness is
L_γ log-sigmoidal (A); with γ = 2, δ = 1.5, A_{ref} = 1. In
this paper, the amplitudes A were clamped at 10 prior
to applying L_γ log-sigmoidal (A) (assuming the image
average is normalised to one).

III. USING AMPLITUDE AND HUE AS A FIRST
HDR APPROACH

Using amplitude and hue rendering, “low ampliti-
tudes” are lightness-coded while “high amplitudes”
are hue-coded. Formally, the process is as follows.
First, the input amplitudes map A(x, y) is split into
two complementary submaps:

$$
A_{\text{lo}}(x, y) = \langle A \rangle_{0}^{A_{\text{clamp}}}
$$
<figure><img src="image_4.png" /><figcaption>Figure 3. Plot of various tone mapping functions L(A) using A<sub>ref</sub> = 1, A<sub>max</sub> = 30 and setting the log-sigmoidal curve to the same slope as the log-linear curve at A<sub>ref</sub> = 1.</figcaption></figure>

<figure><img src="image_5.png" /><figcaption>Figure 4. Plot of various tone mapping functions L(A) in natural logarithmic scale, with the same parameters as figure 3.</figcaption></figure>

$$A_{\text{hi}}(x, y) = A(x, y) \cdot \left[ A(x, y) \geq A_{\text{clamp}} \right]$$

The “low amplitudes” matrix A<sub>lo</sub>(x, y) is then mapped to a “low amplitudes image” I<sub>lo</sub>(x, y) = [H<sub>lo</sub>(x, y), S'<sub>lo</sub>(x, y), L<sub>lo</sub>(x, y)] using a classic tone-mapping function. In our examples, we used the same function and parameters as in figure 2; this is the “low amplitude” (or “LO”) tone mapping. This tone-mapping is such that the amplitudes essentially only have an impact on the lightness, having a low lightness for low amplitudes and a lightness close to one for amplitudes close to A<sub>clamp</sub>. The hue and saturation H<sub>lo</sub>(x, y), S'<sub>lo</sub>(x, y) are kept constant throughout, as can be shown in figure 5.

The “high amplitudes” matrix A<sub>hi</sub>(x, y) is mapped to a “high amplitudes image” I<sub>hi</sub>(x, y) = [H<sub>hi</sub>(x, y), S'<sub>hi</sub>(x, y), L<sub>hi</sub>(x, y)] where the lightness is kept essentially constant and close to one. However, the hue and saturation will change with A as it varies in interval [A<sub>clamp</sub>, A<sub>max</sub>], typically using a linear ramp (for the hue). In our examples,

the hue H<sub>hi</sub> is coded from 0.47 for A<sub>clamp</sub> to 0.88 for A<sub>max</sub> with a saturation S'<sub>hi</sub> = 0.8 and a lightness of L<sub>hi</sub> = 0.92 (see figure 5). This is the “high amplitude” (or “HI”) tone mapping.

The two images I<sub>lo</sub>(x, y) and I<sub>hi</sub>(x, y) are then composited together by simple summation to make the final HDR image, which is then converted to RGB space using Algorithm 1.

This method is interesting but has a drawback: when the echoes are only a few pixel wide, only a very few set of pixels will be color-coded and thus nearly indistinguishable from their neighbors, especially when the image is “zoomed out”. This makes it hard to interpret the image or to detect strong echoes visually. Indeed, high amplitude echoes are generally very sparse. This can be seen in figure 6 which shows A<sub>hi</sub>(x, y) being tone-mapped with the “HI” colormap; this figure corresponds to the high amplitude part of the image shown in 2). As such the rendering is only suitable for very close-up inspection of the image (see figure 7).

## IV. RENDERING WITH GLOW EFFECT

### A. Main idea

With this method, which is the main idea of the paper, strong echoes of amplitude above A<sub>clamp</sub>, selected in A<sub>hi</sub>, are made more visible by adding a glow around strong echo pixels. The radius r of the glow is proportional to the strength of the echo:

$$r(A) = r_{\min} + (r_{\max} - r_{\min}) \frac{A - A_{\text{clamp}}}{A_{\max} - A_{\text{clamp}}} \quad (8)$$

Also, it is possible to servo the radii r<sub>min</sub>, r<sub>max</sub> of the glow to the “zoom level” of a viewing software so that the radius of the glow can, for instance, be kept constant as a user zooms in and out. The result of adding the glow to A<sub>hi</sub>(x, y), is denoted by G<sub>hi</sub>(x, y) ∈ ℝ.

### B. Why this cannot be done with convolution

To do this, an initial idea would be to do the convolution of A<sub>hi</sub> with circular kernels, such as a circular Gaussian kernels, of varying typical radii r. However discrete convolution is not the proper operator to do this. To illustrate our argument, we use a toy 1D situation where a toy A<sub>hi</sub> signal, represented in black in figure 8. This toy signal is made up by three echoes: one is a Dirac spike of amplitude 2 at x = 30: δ<sub>30</sub>; another is a wide echo between x = 60 and x = 70 of unit amplitude; a third one is a Dirac spike of amplitude 5 at x = 100: 5δ<sub>100</sub>. An symmetric exponential kernel K(x) = exp(-|x|/r) with a decay length r = 3 is then convolved with this toy signal. If the kernel is normalized to have a total unit energy, the strength of the Dirac spikes is diluted by convolution (blue curve of figure 8)
<figure><img src="image_6.png" /><figcaption>Figure 5. Path, in the hue-lightness space (saturation is 0.6), of the colormaps that are used in our examples. The colormap for low amplitude data encodes information using lightness (solid blue line); the colormap for the high amplitude data encodes information using hue (dashed blue line).</figcaption></figure>

<figure><img src="image_7.png" /><figcaption>Figure 6. Image $A_{hi}(x, y)$ tone-mapped using the “HI” colormap. There are only a few sparse echoes that are barely visible. This image has the same scale as in figure 2.</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>Figure 7. Composite amplitude+hue HDR of figure 2 and figure 6 (section III). This is only useful when zooming in, because the high amplitude echoes are small. The highest echo in the image is visible, at amplitude 50.6174.</figcaption></figure>

meaning that the amplitude after filtering will be mis-represented. If $K$ is normalized so that it has a unit gain for Dirac spikes, then the filtered result of wide echoes will have an amplified amplitude (red curve of figure 8), thus again the amplitude is mis-represented after filtering. Thus there is no satisfying solution

when using convolution. Besides, convolution when implemented using a Fourier transform does not allow to dynamically adjust the width of the kernel based on the signal.
<figure><img src="image_9.png" /><figcaption>Figure 8. Testing convolution with a symmetric exponential kernel K on a toy signal; r = 3. Whatever the normalisation, convolution will corrupt the peak energy of the filtered signal.</figcaption></figure>

### C. A solution

To introduce our solution, we first present first-order multipass separable infinite impulse response (IIR) filtering. This is a recursive approach, which is fast and has a complexity that is independent on the radii of the kernel; also, it is possible to let the radius of the kernel vary continuously between $r_{min}$, $r_{max}$. This general algorithm is presented in Algorithm 2, where $\rho$ denotes the vertical/horizontal resolution ratio of the image. We use a separable approach, in that all columns of the image are filtered independently; and the result of this filtering is then filtered horizontally, again by taking all lines independently. This IIR filtering is repeated several times over $N_{passes}$ passes, typically between 2 and 5. When repeating passes, the impulse response becomes increasingly bell-shaped, which is desirable; and in 2D, this also has the benefit of making the impulse response increasingly circular, which is desirable as well.

### Algorithm 2 Adding glow with IIR filtering

**INPUT:** discrete signal $A_{hi}$, minimum and maximum radii $r_{min}$, $r_{max}$, resolution ratio $\rho$, number of passes $N_{passes}$

**BEGIN:**

$G_{hi} \leftarrow A_{hi}$

**for** i ∈ {1, ..., $N_{passes}$}:

$I_{\downarrow} \leftarrow \text{iir}(G_{hi}, r_{min}, r_{max}, i, \text{ratio:1, direction: } \downarrow)$

$I_{\uparrow} \leftarrow \text{iir}(I_{\downarrow}, r_{min}, r_{max}, i, \text{ratio:1, direction: } \uparrow)$

$I_{\rightarrow} \leftarrow \text{iir}(I_{\uparrow}, r_{min}, r_{max}, i, \text{ratio: } \rho, \text{ direction: } \rightarrow)$

$G_{hi} \leftarrow \text{iir}(I_{\rightarrow}, r_{min}, r_{max}, i, \text{ratio: } \rho, \text{ direction: } \leftarrow)$

**OUTPUT:** amplitudes with glow $G_{hi}$

The IIR filters take five arguments: the input amplitude map $A_{hi}$ to filter, the minimum and maximum radii $r_{min}$, $r_{max}$, the width/height resolution ratio of the image $\rho$, and a direction. When filtering along the vertical (resp. horizontal) direction, all columns

(resp. lines) are filtered independently, as if the data were 1D. For each direction (horizontal and vertical), the image is filtered forward and backwards; the backward filtering is done by taking the result of the forward pass, flipping it, filtering it with the same algorithm, then flipping it back (or by reversing the loops). To present how to write the IIR-filters, we thus now assume a 1D generic signal $A_{hi}$ of length $N$ samples, with $\rho = 1$ for horizontal passes and $\rho$ equal to the vertical/horizontal resolution ratio of the images for vertical passes. The direction, horizontal or vertical, is not taken into account to make things simpler; we only present the forward pass, and in figures, we assume $\rho = 1$.

A first filter, introduced only for didactic reasons, is described in Algorithm 3. For a single pass ($N_{passes} = 1$), Algorithm 3 would be a first order exponential filter with decay length $\tau$, expressed in pixels; that is, the result of the filter would be that of the convolution with a filter of impulse response $K(x) = \exp(-|x|/\tau)$. When several passes are used, the result becomes increasingly bell-shaped. Note that the decay length $\tau$ is proportional to $1/i^2$, where i is the number of the pass. This is a normalization coefficient so that the width of the impulse response converges when $N_{passes}$ increases (i is squared to account for the forward and backward pass).

### Algorithm 3 iir() exponential filter (1D forward)

**INPUT:** discrete signal $A_{hi}$ of length $N$, minimum and maximum radii $r_{min}$, $r_{max}$, resolution ratio $\rho$, pass no. i

**BEGIN:**

$G_{hi} \leftarrow A_{hi}$

**for** i ∈ {2, ..., $N$}:

$r = r_{min} + (r_{max} - r_{min}) \frac{G_{hi}[i] - A_{clamp}}{A_{max} - A_{clamp}}$

$\tau = \rho r / i^2$

$\lambda \leftarrow \exp(-1/\tau)$

$G_{hi}[i] \leftarrow (1 - \lambda)G_{hi}[i] + \lambda G_{hi}[i-1]$

**OUTPUT:** filtered signal $G_{hi}$

The issue with Algorithm 3 is that it is strictly equivalent to convolution with some kernel $K$, as such, it has all the limitations stated in paragraph IV-B. figure 9 shows the results of 3 on the same toy signal as for figure 8, with $\rho = 1$, $r_{min} = 3$ at $A = 1$ and $r_{max} = 15$ for $A = 5$. The results for the Dirac at $x = 30$ and the wide echo between $x = 60$ and $x = 70$ are the same as for 8 (in the “total unit energy” case) since for $A = 1$ the radius is the same. For the Dirac spike at $x = 100$ the amplitude is much lower in 8 than it was in algorithm 3 because the radius is now $r = r_{max} = 15$, so the energy is much more diluted.

To overcome these limitations, we modify Algorithm 3 into its definitive version, Algorithm 4. The
<figure><img src="image_10.png" /><figcaption>Figure 9. Result of Algorithm 3 with $r_{min} = 3$ at $A = 1$ and $r_{max} = 15$ for $A = 5$. The proper glow effect is not yet achieved.</figcaption></figure>

<figure><img src="image_11.png" /><figcaption>Figure 10. Result of Algorithm 4 with $r_{min} = 3$ at $A = 1$ and $r_{max} = 15$ for $A = 5$. The variable radius glow effect is achieved and the maximum amplitudes are preserved.</figcaption></figure>

definitive version is non-linear, due to using a max() operator. The max operator ensures that the filter is constantly reset to the value of the echo, when the echo is stronger than the blur. When the signal in the image is lower than the glow, the glow continues being filtered. Said otherwise: for $N_{passes} = 1$, and if only the forward pass were used, this filter could be interpreted as nothing more but the digital implementation of the classical diode envelope detector (with $\tau = RC$, the resistance × capacity product, being driven by the input), which keeps isolated echoes to their original amplitude. Thus, the modified algorithm adds a glow around the echoes without changing their amplitudes. Also, note the use of $G_{hi}[i-1]$ when $r$ is computed, instead of $G_{hi}[i]$ as in algorithm 3. This is intentional, and needed for the algorithm to work properly due to the max() operator.

**Algorithm 4 iir():** final glow filter (1D forward)

INPUT: discrete signal $A_{hi}$ of length $N$, minimum and maximum radii $r_{min}, r_{max}$, resolution ratio $\rho$, pass no. $i$

BEGIN:

$G_{hi} \leftarrow A_{hi}$

for $i \in \{2, ..., N\}$:

$$r = r_{min} + (r_{max} - r_{min}) \frac{G_{hi}[i-1] - A_{clamp}}{A_{max} - A_{clamp}}$$

$$\tau = \rho r / i^2$$

$$\lambda \leftarrow \exp(-1/\tau)$$

$$G_{hi}[i] \leftarrow \max(G_{hi}[i], (1 - \lambda)G_{hi}[i] + \lambda G_{hi}[i-1])$$

OUTPUT: filtered signal $G_{hi}$

Figure 11 shows $G_{hi}(x, y)$ for the data in figure 6, with $r_{min} = 10$ at $A_{clamp} = 10$ and $r_{max} = 15$ for $A_{max} = 80$. The glow effect makes the small echoes visible. The maximum value of 31.71 in the image is correctly rendered as a green-yellowish glow, and the small echoes, that are above $A_{clamp} = 10$, are also visible, albeit with a suitably less conspicuous glow.

<figure><img src="image_12.png" /><figcaption>Figure 11. Result of Algorithm 4 onto the data shown in figure 6 with $r_{min} = 10$ at $A_{clamp} = 10$ and $r_{max} = 15$ for $A_{max} = 80$. The small echoes are revealed. Compare with figure 6.</figcaption></figure>

## D. Compositing the low amplitude and high amplitude images

The compositing of the low amplitude and the high amplitude images cannot be done as a simple sum as in section III, where the two images $I_{lo}$ and $I_{hi}$ were mutually complementary. There, the glow takes some spatial extent that might, if not taken care of properly, overwrite low intensity sections of the image. This would prevent the user from seeing low amplitude shadows near high amplitude echoes – unfortunately, this is a very frequent situation. So, the compositing needs being done in such a manner that the readability of the image is not hampered. The approach we propose is the following for the compositing. The composite image is $I_{hdr}(x, y) =$
$[H_{hdr}(x, y), S'_{hdr}(x, y), L_{hdr}(x, y)]$ where:

$$
\left\{
\begin{array}{l}
x = \frac{G_{hi}(x,y) - A_{clamp}}{A_{max} - A_{clamp}} \\
H_{hdr}(x, y) = (H_{lo}(x, y) + \delta H + \Delta H \cdot x) \bmod 1 \\
S_{hdr}(x, y) = \min(1, S'_{lo}(x, y) + \dots \\
\qquad \qquad \qquad \qquad \Delta S' \cdot (1 - \exp(-\frac{x}{\tau_S})) \\
L_{hdr}(x, y) = \max(0, L_{lo}(x, y) - \delta L \cdot [x \neq 0])
\end{array}
\right.
\tag{9}
$$

Variable *x* is the relative position of *G*<sub>hi</sub> along the [*A*<sub>clamp</sub>, *A*<sub>max</sub>] interval. The hue *H*<sub>hdr</sub>(*x*, *y*) is designed as a walk from *H*<sub>lo</sub>(*x*, *y*) + *δH* when *x* is zero, to *H*<sub>lo</sub>(*x*, *y*) + *δH* + *ΔH* when *x* = 1. In our case, we used *δH* = -0.6 and *δh* = -0.1; positive or negative values can be used; the modulo operator is here because *S*′ is a polar coordinate on the color cylinder (see figure 5). The saturation could be kept constant, but it is best to give it a boost towards one as the amplitudes get high; here this boost is done using an exponential function, with *ΔS*′ = 1 and *τ*<sub>S</sub> = 0.1. The lightness *L*<sub>hdr</sub>(*x*, *y*) should theoretically stay constant and equal to the maximum lightness of the LO color map. However, in practice, this maximum lightness is close to one (when using HS'L coordinates), resulting in very whitish colors making it hard to see the color of the bloom. Thus here, when the halo is non-zero, the overall lightness is decreased by a constant, we used *δL* = 0.1 with no perceptual influence whatsoever. If the maximum lightness of the LO color map is not close to one, then we could stay true to the theory and keep the lightness constant: *δL* = 0.

V. EXAMPLES

In this section, we show the results of the glow
algorithm and the compositing to give the final im-
ages. figure 12 is the final high dynamic rendering of
the full image. The low intensity parts of the image
is exactly the same as in figure 2. The glow and
compositing allow the echoes can be readily visually
detected and their strength assessed visually using the
color hue and the radius of the glow. figure 13 is a
zoomed-in version of the previous figure, allowing to
see that the perception of the shadows near the echo is
not hampered by the presence of the glow around the
high intensity echo. In figure 14, the radii of the glow
are smaller, which gives a result that is more suitable
for close-up vision. Indeed, the values of radii used
for the glow can be servoed to the zoom level, or
the application (echo detection in a low resolution
image, or image structure understanding, in a high-
resolution, "zoomed-in" image).

VI. CONCLUSION

We exposed a novel high-dynamic rendering ap-
proach that is especially suitable for sonar and radar
images. This approach is built upon two important

building blocks: the first is a dual lightness and hue-
based rendering, and the other is the glow algorithm.
The dual lightness and hue-based rendering is charac-
terized by the fact that low amplitude data is rendered
using a tone-mapping that has an increasing lightness
but an essentially constant hue and saturation, and
high amplitude data is rendered using a tone-mapping
that has a constant lightness but an essentially vari-
able hue and saturation, allowing a visual assessment
of the amplitude of the data by reading the hue.
However we showed that this first stage is not suitable
when the echoes are sparse and small, especially
when the image is "zoomed out". To compensate
this drawback, the glow algorithm is a non-linear
IIR algorithm creating a halo around the echoes
without changing the value of the maximum. This
halo makes the echoes more visible, and the radius
of the halo is another visual cue for the amplitude.
The result of the glow algorithm is then composited
with the low intensity image in such a manner that
the glow is visible without impairing the visibility of
low amplitude data (shadows) near the high intensity
echoes. The radius of the glow can also be servoed to
the zoom level, depending on the applications: strong
echo detection or image structure interpretation.

REFERENCES

[1] Andrew Crumey. Human contrast threshold and astronomical visibility. *Monthly Notices of the Royal Astronomical Society*, 442(3):2600–2619, June 2014.

[2] P.E. Debevec and J. Malik. Recovering high dynamic range radiance maps from photographs. In *International Conference on Computer Graphics and Interactive Techniques*, 1997.

[3] Jarosław Duda. Zastosowanie techniki HDR do obrazów pozyskiwanych z sektorowego sonaru skanującego. *Biuletyn WAT*, X(3), 2011.

[4] Satoshi Hisanaga, Koji Wakimoto, and Koji Okamura. Compression method for high dynamic range intensity to improve SAR image visibility. In *Proc. International MultiConference of Engineers and Computer Scientists*, 2011.

[5] Peter Kovesi. Good colour maps: How to design them. CoRR, abs/1509.03700, 2015.

[6] Martin Lambers and Andreas Kolb. Adaptive dynamic range reduction for SAR images. In *7th European conference on synthetic aperture radar (EUSAR)*, 2008.

[7] D.N. MacLennan. Time varied gain functions for pulsed sonars. *Journal of Sound and Vibration*, 110(3):511–522, 1986.

[8] Erik Reinhard, Michael Stark, Peter Shirley, and James Ferwerda. Photographic tone reproduction for digital images. *ACM Transactions on Graphics*, 21(3):267–276, July 2002.

[9] C. Schlick. *Photorealistic Rendering Techniques*, chapter Quantization Techniques for the Visualization of High Dynamic Range Pictures. Springer, 1994.

[10] J.M. Stevenson, S.G. Briest, A.D. Fronk, V.K. McDonald, J.R. Olson, and C. Fletcher. A robust automatic gain control technique for serially multiplexed underwater acoustic arrays. In *Oceans '99. MTS/IEEE. Riding the Crest into the 21st Century. Conference and Exhibition. Conference Proceedings (IEEE Cat. No.99CH37008)*, volume 2, pages 713–716 vol.2, 1999.
<figure><img src="image_13.png" /><figcaption>Figure 12. Our high dynamic rendering with the echoes highlighted by the glow effect, with $r_{\min} = 10$ at $A_{\text{clamp}} = 10$ and $r_{\max} = 15$ for $A_{\max} = 80$. This is the composite of figure 2 and figure 11.</figcaption></figure>

<figure><img src="image_14.png" /><figcaption>Figure 13. A zoomed-in version of figure 12. The glow effect does not prevent from seeing the shadows beneath the echo, since the echo and the glow is represented only using the hue.</figcaption></figure>

<caption>Figure 14. Another zoomed-in version with a different setting for the glow effect, more suitable for close-in viewing: $r_{\min} = 1$ at $A_{\text{clamp}} = 10$ and $r_{\max} = 5$ for $A_{\max} = 80$.</caption>