Fast Finite Shearlet Transform: a tutorial

Fast Finite Shearlet Transform: a tutorial

Sören Häuser Fachbereich für Mathematik, Technische Universität Kaiserslautern, Paul-Ehrlich-Str. 31, 67663 Kaiserslautern, Germany, {haeuser,steidl}    Gabriele Steidl 11footnotemark: 1


1 Introduction

Directional multiscale representation of images to address curved singularities has received much attention in harmonic analysis in the last 25 years. In particular, shearlets [13] and curvelets [1] provide an optimally sparse approximation of carton-like images, that is

where is the nonlinear shearlet approximation of a function from this class obtained by taking the largest shearlet coefficients in absolute value. Shearlets possess a uniform construction for both the continuous and the discrete setting. They further stand out since they stem from a square-integrable group representation [4] and have the corresponding useful mathematical properties. Moreover, similarly as wavelets are related to Besov spaces via atomic decompositions, shearlets correspond to certain function spaces, the so-called shearlet coorbit spaces [5].

Figure 1 illustrates the directional information contained in the shearlet coefficients. Shearlets have been applied to a wide field of image processing tasks, e.g., denoising [10, 6], inversion of the Radon transform [3, 8], inverse halftoning [12], deconvolution [26], geometric separation [7], inpainting [17] and many more. A detailed summary can be found in [9]. In [16] the authors show how the directional information encoded by the shearlet transform can be used in image segmentation. To this end, we introduce a simple discrete shearlet transform which translates the shearlets over the full grid at each scale and for each direction. Using the FFT this transform can be still realized in a fast way.

This tutorial explains the details behind the Matlab-implementation of the transform and shows how to apply the transform. The software is available for free under the GPL-license at

In analogy with other transforms we named the software FFSTFast Finite Shearlet Transform. The package provides a fast implementation of the finite (discrete) shearlet transform.

For shearlets there are currently three toolboxes available. They are

Local Shearlet Toolbox11footnotemark: 1

developed by Easley, Labate and Lim. This was the first shearlet implementation, for details see [11].

ShearLab33footnotemark: 3

developed by Donoho, Kutyniok, Lim, Shahram, Zhuang and Reisenhofer. This package consists of three different implementations: One is implemented on pseudo-polar grids, one on Cartesian grids and the newest one using compactly supported shearlets, for details see [19, 21, 20, 18].

Fast Finite Shearlet Transform (FFST)55footnotemark: 5

developed by the authors. The first fully finite and translation invariant shearlet implementation, described in [16, 15] and in this tutorial.

((a)) Geometric shapes with different edge orientations.

((b)) Sum of shearlet coefficients for () over all ().

((c)) Shearlet coefficients for () and ().

((d)) Shearlet coefficients for () and ().
Figure 1: Shearlet coefficients can detect edges with different orientations.

Recall that the Fourier transform and the inverse transform are defined by

This tutorial is organized as follows: In Section 2 we introduce the continuous shearlet transform and prove the properties of the involved shearlets. We follow in Section 3 the path via the continuous shearlet transform, its counterpart on cones and finally its discretization on the full grid to obtain the translation invariant discrete shearlet transform. This is different to other implementations as, e.g., in ShearLab, see [20]. Our discrete shearlet transform can be efficiently computed by the fast Fourier transform (FFT). The discrete shearlets constitute a Parseval frame of the finite Euclidean space such that the inversion of the shearlet transform can be simply done by applying the adjoint transform. The second part of the section covers the implementation and installation details and provides some performance measures.

2 Closer Look at the Continuous Shearlet Transform in

In this section we combine some mostly well-known results from different authors. To make this tutorial self-contained and to obtain a complete documentation we also include the proofs. The functions are taken from [25, 24]. The construction of the shearlets is based on ideas from [11] and [22]. The shearlet transform and the concept of shearlets on the cone were introduced in [13].

2.1 Some Functions and their Properties

To define usable shearlets we need functions with special properties. We begin with defining these functions and prove their necessary properties. The results will be used later.

We start by defining an auxiliary function as


This function was proposed by Y. Meyer in [25, 24], see Remark 3.2 for more information on the construction of . Other choices of are possible, in [20] the simpler function

was chosen.

As we will see, the useful properties of for our purposes are its symmetry around and the values at and with increase in between. A plot of is shown in Figure ((a))(a).

Next we define the function with


Note that is symmetric, positive, real-valued and . We further have that . A plot of is shown in Figure ((b))(b).

((a)) .

((b)) solid: , dashed: .
Figure 2: The two auxiliary functions (see (1)) and (see (2)).

Because of the symmetry we restrict ourselves in the following analysis to the case . Let , , thus, and . Observe that is increasing for and decreasing for . Obviously all these properties carry over to . These facts are illustrated in the following diagram

where stands for the increasing and for the decreasing function.

For the overlap between the support of and is empty except for . Thus, for and we have that . In this interval is decreasing with and is increasing with . Their sum in this interval is

Hence, we can summarize

Consequently, we have the following lemma.

Lemma 2.1.

For defined as above, the relations



hold true.


In each interval only and , , are not equal to zero. Thus, it is sufficient to prove that in this interval. We get that

The second relation follows by straightforward computation. ∎

We define the function via its Fourier transform as


Figure ((a))(a) shows the function . The following theorem states an important property of .

Theorem 2.2.

The above defined function has and fulfills


The assumption on the support follows from the definition of . For the sum we have

where (odd) and (even). Thus, by Lemma 2.1, we get

By (3) we have that


Next we define a second function —again in Fourier domain—by


The function is shown in Figure ((b))(b). Before stating a theorem about the properties of we need the following two auxiliary lemmas.

((a)) .
((b)) .
Figure 3: The functions (see (4)) and (see (6)).

Recall that a function is point symmetric with respect to if and only if

With the substitution this is equivalent to

Thus, for a function symmetric to we have that .

Lemma 2.3.

The function in (1) is symmetric with respect to , in particular, for all .


The symmetry is obvious for and . It remains to prove the symmetry for . We will see in Remark 3.2 that . With the fundamental theorem of calculus this implies that

Since we know that . Next, consider . Substituting yields

Finally, we obtain for the sum

Note that is axially symmetric to the -axis.

Lemma 2.4.

The function fulfills


We have

Consequently, we get for that

and for we obtain similarly

It can be seen in the proof that the sum reduces in both cases to two (different) summands, in particular

With these lemmas we can prove the next theorem.

Theorem 2.5.

The function defined in (6) fulfills


With the assertion in (7) becomes

For a fixed (but arbitrary) we need for since . Thus, for , only the summands for do not vanish. But for we have and . In this case the entire sum reduces to one summand such that

If and the only non-zero summands appear for . Thus, , yields

which is equal to by Lemma 2.4. Analogously we obtain for , that the remaining non-zero summands are those for . With we get

By Lemma 2.4 and since , we finally conclude

2.2 The Continuous Shearlet Transform

For the shearlet transform we use the dilation matrix and shear matrix For and they read


The shearlets emerge by dilation, shear and translation of a function as before


We assume that can be written as


Consequently, we obtain for the Fourier transform

The shearlet transform of is given as

The same formula is derived by interpreting the shearlet transform as a convolution with the function and using the convolution theorem.

The shearlet transform is invertible if the function fulfills the admissibility property

Easy calculations show that any shearlet of the form (10), where and are continuous and and , , is admissible. Figure 4 shows a dilated and sheared shearlet in Fourier and time domain.

((a)) Shearlet in Fourier domain
for and .

((b)) Same shearlet in time domain (zoomed).

((c)) 3D-view of time domain shearlet.
Figure 4: Shearlet in Fourier and time domain.

2.3 Shearlets on the Cone

Up to now we have said nothing about the support of our shearlet . We use band-limited shearlets, thus, we have compact support in Fourier domain. In the previous section we assumed that , where we now define and as in (4) and (6), respectively. With the results shown for for and for , i.e., , it is natural to define the area

We will refer to this set as the horizontal cone (see Figure 5). Analogously we define the vertical cone as

To cover the entire we define two more sets

where is the intersection (or the seam lines) of the two cones and is the “low-frequency” part. Altogether we have with an overlapping domain

Figure 5: The sets , , and .

Obviously the shearlet defined above is perfectly suited for the horizontal cone. For each set , , we define a characteristic function which is equal to 1 for and 0 for . We need these characteristic functions as cut-off functions at the seam lines. We set


For the non-dilated and non-sheared the cut-off function has no effect since the support of is completely contained in . But after the dilation and shear we have

The question arises for which and this set remains a subset of the horizontal cone. For we have that is in but not in . Thus, we can restrict ourselves to .

With fixed the second condition for reads


Since the right condition becomes and for the left condition , hence, we can conclude

For such it holds that , in particular the indicator function is not needed for these (with respective ). One might ask for which (depending on ) the indicator function cuts off only parts of the function, i.e., . We take again (13) but now we do not use a condition to guarantee that but rather ask for a condition that allows . Thus, the right bound should be larger than and the left bound should be smaller than . Consequently, we obtain

Summing up, we have for that . For parts of are also in , which are cut off. For the whole shearlet is set to zero by the characteristic function. If we go back to the definition of we see that the vertical range is determined by . By definition is axially symmetric with respect to the -axis, in other words the “center” of is taken for the argument equal to zero, i.e., . It follows that for the center of is at the seam-lines. Thus, for approximately one half of the shearlet is cut off whereas the other half remains. For larger larger parts would be cut. Consequently, we restrict ourselves to .

The shearlet for the vertical cone is defined analogously with the roles of and interchanged, i.e.,


All the results from above apply to this setting. For , i.e., , both definitions coincide and we define


The shearlets , (and ) are called shearlets on the cone. This concept was introduced in [13].

We have functions to cover three of the four parts of . The remaining part will be handled with a scaling function which is presented in the next section.

2.4 Scaling Function

For the center part (also low-frequency part) we define another set of functions. To this end, we need the following scaling function

The full scaling function is then defined as


The decay of the scaling function (respectively ) is chosen to match with the increase of . For we have by (5) that