Fast Finite Shearlet Transform: a tutorial
                                              S¨ren H¨user∗
                                               o     a

                                           February 8, 2012




Contents
1 Introduction                                                                                                                                          1

2 Shearlet transform                                                                                                                                     3
  2.1 Some functions and their properties               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    3
  2.2 The continuous shearlet transform .               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    8
  2.3 Shearlets on the cone . . . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    9
  2.4 Scaling function . . . . . . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   12

3 Computation of the shearlet transform                                                                                                                 13
  3.1 Finite discrete shearlets . . . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   14
  3.2 A discrete shearlet frame . . . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
  3.3 Inversion of the shearlet transform . . .                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   20
  3.4 Smooth shearlets . . . . . . . . . . . . .                .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   21
  3.5 Implementation details . . . . . . . . . .                .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
      3.5.1 Indexing . . . . . . . . . . . . . .                .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
      3.5.2 Computation of spectra . . . . .                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   27
  3.6 Short documentation . . . . . . . . . . .                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29
  3.7 Download & Installation . . . . . . . . .                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
  3.8 Performance . . . . . . . . . . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
  3.9 Remarks . . . . . . . . . . . . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   32




1 Introduction

In recent years, much effort has been spent to design directional representation systems for
images such as curvelets [1], ridgelets [2] and shearlets [10] and corresponding transforms
(this list is not complete). Among these transforms, the shearlet transform stands out since
it stems from a square-integrable group representation [4] and has the corresponding useful
 ∗
     University of Kaiserslautern, Dept. of Mathematics, Kaiserslautern, Germany, haeuser@mathematik.uni-kl.de




                                                       1
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]. In addition shearlets provide an optimally sparse approximation in the class of
piecewise smooth functions with C 2 singularity curves, i.e.,
                                        2
                               f − fN   L2   ≤ CN −2 (log N )3   as N → ∞,

where fN is the nonlinear shearlet approximation of a function f from this class obtained by
taking the N largest shearlet coefficients in absolute value.
Shearlets have been applied to a wide field of image processing tasks, see, e.g., [7, 11, 12, 17].
In [9] the authors showed how the directional information encoded by the shearlet transform
can be used in image segmentation. Fig 1 illustrates the directional information in the shearlet
coefficients. To this end, we introduced 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

                       http://www.mathematik.uni-kl.de/~haeuser/FFST/

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




 (a) Forms with different edge ori-   (b) Shearlet coefficients           (c) Sum of shearlet coefficients
                                              1                                1
 entations                           for a = 64 and s = −1             for a = 64 for all s


             Figure 1: Shearlet coefficients can detect edges with different orientations.

This tutorial is organized as follows: In Section 2 we introduce the continuous shearlet trans-
form 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 1 , see [16]. 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
 1
     http://www.shearlab.org




                                                     2
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 Shearlet transform

In this section we combine some mostly well-known results from different authors. To make this
paper self-contained and to obtain a complete documentation we also include the proofs. The
functions where taken from [15, 14]. The construction of the shearlets is based on ideas from
[12] and [13]. The shearlet transform and the concept of shearlets n the cone was introduced
in [6].


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. The
following results are taken basically from [12] and [13].
We start by defining an auxiliary function v : R → R as
                           
                           0
                                                                 for x < 0
                   v(x) := 35x4 − 84x5 + 70x6 − 20x7              for 0 ≤ x ≤ 1                     (1)
                           
                              1                                   for x > 1.
                           

This function was proposed by Y. Meyer in [15, 14]. Other choices of v are possible, in [16]
the simpler function             
                                 0
                                                 for x < 0
                                 
                                                  for 0 ≤ x ≤ 1
                                  2
                                 2x
                          v(x) =                              2
                                              2       1
                                 1 − 2(1 − x) for 2 ≤ x ≤ 1
                                 
                                 
                                 
                                 1               for x > 1
was chosen. As we will see the useful properties of v for our purposes are its symmetry around
( 1 , 2 ) and the values at 0 and 1 with increase in between. A plot of v is shown in Fig. 2(a).
  2
      1


Next we define the function b : R → R with
                                
                                sin( π v(|ω| − 1))
                                     2              for 1 ≤ |ω| ≤ 2
                                      π    1
                       b(ω) := cos( 2 v( 2 |ω| − 1)) for 2 < |ω| ≤ 4                                (2)
                                
                                 0                   otherwise,
                                

where b is symmetric, positive, real and supp b = [−4, −1] ∪ [1, 4]. We further have that
b(±2) = 1. A plot of b is shown in Fig. 2(b).
Because of the symmetry we restrict ourselves in the following analysis to the case ω > 0. Let
bj := b(2−j ·), j ∈ N0 , thus, supp bj = 2j [1, 4] = [2j , 2j+2 ] and bj (2j+1 ) = 1. Observe that bj is
increasing for ω ∈ [2j , 2j+1 ] and decreasing for ω ∈ [2j+1 , 2j+2 ]. Obviously all these properties




                                                   3
1                                                                   1




      0.8                                                                 0.8




      0.6                                                                 0.6




      0.4                                                                 0.4




      0.2                                                                 0.2




       0                                                                   0



      −0.5         0            0.5            1            1.5            −5     −4     −3   −2       −1   0   1   2   3   4   5




                          (a) v(x)                                                     (b) solid: b(ω), dashed: b(2ω)


                       Figure 2: The two auxiliary functions v in (1) and b in (2)


carry over to b2 . These facts are illustrated in the following diagram where
               j                                                                                                        stands for the
increasing function and     for decreasing function.
                                       ω       2j           2j+1                2j+2           2j+3
                                       bj      0              1                   0
                                      bj+1                    0                   1                0

For j1 = j2 the overlap between the support of b21 and b22 is empty except for |j1 −j2 | = 1. Thus,
                                                j       j
for b2 and b2 we have that supp b2 ∩ supp b2 = [2j+1 , 2j+2 ]. In this interval b2 is decreasing
     j      j+1                     j        j+1                                    j
                         −j
with b2 = cos2 ( π v( 2 2 |ω| − 1)) and b2 is increasing with b2 = sin2 ( π v(2−(j+1) |ω| − 1)). We
      j          2                       j+1                   j+1        2
get for their sum in this interval
                                                   π                         π
             b2 (ω) + b2 (ω) = cos2
              j        j+1                           v(2−j−1 |ω| − 1) + sin2   v(2−j−1 |ω| − 1) = 1.
                                                   2                         2

Hence, we can summarize
                                                 
                                                 b2
                                                  j                     for ω < 2j+1
                                  2    2
                                (bj + bj+1 )(ω) = 1                      for 2j+1 ≤ ω ≤ 2j+2
                                                 
                                                  2
                                                  bj+1                   for ω > 2j+2 .

Consequently, we have the following lemma
Lemma 2.1. For bj defined as above, the relations
                                      ∞                 ∞
                                            b2 (ω) =
                                             j                    b2 (2−j ω) = 1        for |ω| ≥ 1
                                  j=−1                 j=−1

and                                        
                               ∞           0
                                                                                      for |ω| ≤ 1
                                                                                                 2
                                    2
                                   bj (ω) = sin2              π
                                                              2 v(2ω     − 1)          for 1 < |ω| < 1
                                                                                           2
                                                                                                                                    (3)
                                           
                              j=−1         
                                            1                                          for |ω| ≥ 1
hold true.



                                                                     4
Proof. In each interval [2j+1 , 2j+2 ] only bj and bj+1 , j ≥ −1, are not equal to zero. Thus, it is
sufficient to prove that b2 + b2 ≡ 1 in this interval. We get that
                         j      j+1

             (b2 + b2 )(ω) =
               j    j+1               b2 (2−j ω )           +            b2 (2−j−1 ω )
                                ∈ 2−j [2j+1 , 2j+2 ] = [2, 4]     ∈ 2−j−1 [2j+1 , 2j+2 ] = [1, 2]

                                           π 1 −j                    π
                               = cos2        v( · 2 ω − 1) + sin2      v(2−j−1 ω − 1)
                                           2 2                       2
                                           π                       π
                               = cos2        v(2−j−1 ω − 1) + sin2   v(2−j−1 ω − 1)
                                           2                       2
                               = 1.

The second relation follows by straightforward computation.

Recall that the Fourier transform F : L2 (R2 ) → L2 (R2 ) and the inverse transform are defined
by

                                          ˆ
                                 Ff (ω) = f (ω):=                    f (t)e−2πi   ω,t
                                                                                        dt,
                                                                R2

                              F −1 f (ω) = f (t) =
                                   ˆ                                 f (ω)e2πi
                                                                     ˆ           ω,t
                                                                                        dω.
                                                                R2


Now we define the function ψ1 : R → R via its Fourier transform as
                                       ˆ
                                       ψ1 (ω) :=          b2 (2ω) + b2 (ω).                         (4)

Fig. 3(a) shows the function. The following theorem states an important property of ψ1 .
                                       ˆ           ˆ                   1
Theorem 2.2. The above defined function ψ1 has supp ψ1 = [−4, − 1 ] ∪ [ 2 , 4] and fulfills
                                                               2

                                       |ψ1 (2−2j ω)|2 = 1
                                        ˆ                              for |ω| > 1.
                                 j≥0


Proof. The assumption on the support follows from the definition of b. For the sum we have
                                                      ∞
                              |ψ1 (2−2j ω)|2 =
                               ˆ                           b2 (2 · 2−2j ω) + b2 (2−2j ω)
                        j≥0                          j=0
                                                      ∞
                                                 =         b2 (2−2j+1 ω) + b2 (2−2j ω),
                                                     j=0

where −2j + 1 ∈ {+1, −1, −3, . . .} (odd) and −2j ∈ {0, −2, −4, . . .} (even). Thus, by Lemma
2.1, we get
                                                                     ∞
                                        |ψ1 (2−2j ω)|2 =
                                         ˆ                                b2 (2−j ω)
                                  j≥0                             j=−1

                                                                = 1.




                                                            5
By (3) we have that
                                           
                                           0
                                                                                          for |ω| ≤ 1
                                                                                                     2
                                ˆ    −2j 2
                               |ψ1 (2 ω)| = sin2                    π
                                                                    2 v(2ω     − 1)        for 1 < |ω| < 1
                                                                                               2
                                                                                                                              (5)
                                           
                           j≥0             
                                            1                                              for |ω| ≥ 1.

Next we define a second function ψ2 : R → R – again in the Fourier domain – by

                                              ˆ                   v(1 + ω)      for ω ≤ 0
                                              ψ2 (ω) :=                                                                       (6)
                                                                  v(1 − ω)      for ω > 0.

              ˆ                                                                         ˆ
The function ψ2 is shown in Fig. 3(b). Before stating a theorem about the properties of ψ2 we
need the following two auxiliary lemmas. Recall that a function f : R → R is point symmetric

       1                                                                  1




      0.8                                                                0.8




      0.6                                                                0.6




      0.4                                                                0.4




      0.2                                                                0.2




       0                                                                  0



       −5   −4   −3   −2    −1      0     1     2   3     4   5          −1.5         −1      −0.5      0     0.5   1   1.5



                                     ˆ
                                 (a) ψ1                                                                  ˆ
                                                                                                     (b) ψ2

                                                          ˆ             ˆ
                                  Figure 3: The functions ψ1 in (4) and ψ2 in (6)

with respect to (a, b) if and only if

                                        f (a + x) − b = −f (a − x) + b ∀ x ∈ R.

With the substitution x + a → x this is equivalent to

                                              f (x) + f (2a − x) = 2b ∀ x ∈ R.

Thus, for a function symmetric to (0.5, 0.5) we have that f (x) + f (1 − x) = 1.

Lemma 2.3. The function v in (1) is symmetric with respect to (0.5, 0.5), i.e., v(x)+v(1−x) =
1 ∀ x ∈ R.

Proof. The symmetry is obvious for x < 0 and x > 1. It remains to prove the symmetry for




                                                                    6
0 ≤ x ≤ 1, we have

     v(x) + v(1 − x)
      = 35x4 − 84x5 + 70x6 − 20x7 + 35(1 − x)4 − 84(1 − x)5 + 70(1 − x)6 − 20(1 − x)7
      = 35x4 − 84x5 + 70x6 − 20x7
              4                    5                      6                      7
                   4                    5                      6                     7
      + 35           (−x)k − 84           (−x)k + 70             (−x)k − 20            (−x)k
                   k                    k                      k                     k
             k=0                  k=0                    k=0                  k=0
      = 1.



          ˆ
Note that ψ2 is axially symmetric to the y-axis.
                        ˆ
Lemma 2.4. The function ψ2 fulfills
                        ˆ2           ˆ2       ˆ2
                        ψ2 (ω − 1) + ψ2 (ω) + ψ2 (ω + 1) = 1      for |ω| ≤ 1.

Proof. We have that
                                  ˆ2         v(1 + ω) for ω ≤ 0
                                  ψ2 (ω) =
                                             v(1 − ω) for ω > 0.
Consequently we get for 0 ≤ ω ≤ 1 that
          ˆ2           ˆ2       ˆ2
          ψ2 (ω − 1) + ψ2 (ω) + ψ2 (ω + 1) = v(1 + ω − 1) + v(1 − ω) + v(1 − ω − 1)
                                             = v(ω) + v(1 − ω) + v(−ω)
                                                                       =0
                                             = 1,

and similarly we obtain for −1 ≤ ω < 0 that
          ˆ2           ˆ2       ˆ2
          ψ2 (ω − 1) + ψ2 (ω) + ψ2 (ω + 1) = v(1 + ω − 1) + v(1 − ω) + v(1 − ω − 1)
                                             = v(−|ω|) +v(1 − |ω|) + v(|ω|)
                                                    =0
                                             = 1.



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

                                                     ˆ2            ˆ2
                                                     ψ2 (ω − 1) + ψ2 (ω) for 0 ≤ ω ≤ 1
           ˆ2           ˆ2       ˆ2
       1 = ψ2 (ω − 1) + ψ2 (ω) + ψ2 (ω + 1) =
                                                     ˆ2       ˆ2
                                                     ψ2 (ω) + ψ2 (ω + 1) for − 1 ≤ ω < 0.

With these lemmas we can prove the following theorem.




                                                 7
ˆ
Theorem 2.5. The function ψ2 defined in (6) fulfills

                              2j
                                     |ψ2 (k + 2j ω)|2 = 1
                                      ˆ                      for |ω| ≤ 1, j ≥ 0.                         (7)
                             k=−2j


Proof. With ω := 2j ω the assertion in (7) becomes

                               2j
                                     |ψ2 (k + ω )|2 = 1
                                      ˆ       ˜             for |˜ | ≤ 2j , j ≥ 0.
                                                                 ω
                             k=−2j

                                                                               ˆ
For a fixed (but arbitrary) ω ∈ [−2j , 2j ] ⊂ R we need that −1 ≤ ω + k ≤ 1 for ψ2 (ω + k) = 0
            ˆ
since supp ψ2 = [−1, 1]. Thus, for ω ∈ Z, only the summands for k ∈ {−ω − 1, −ω , −ω + 1}
                                                                    ˆ
do not vanish. But for k = −ω ± 1 we have that ω + k = ±1 and ψ2 (±1) = 0. In this case
the entire sum reduces to one summand k = −ω such that
                        2j
                              |ψ2 (k + ω )|2 = |ψ2 (−ω + ω )|2 = |ψ2 (0)|2 = 1.
                               ˆ                ˆ                 ˆ
                      k=−2j

If ω ∈ Z and ω > 0 the only nonzero summands appear for k ∈ { ω , ω                      − 1}. Thus, with
0 < r+ := ω − ω < 1, we get

  2j
        |ψ2 (k + ω )|2 = |ψ2 (− ω
         ˆ                ˆ            + ω )|2 + |ψ2 (− ω
                                                  ˆ              − 1 + ω )|2 = |ψ2 (r+ )|2 + |ψ2 (1 − r+ )|2
                                                                                ˆ             ˆ
k=−2j

which is equal to 1 by Lemma 2.4. Analogously we obtain for ω ∈ Z, ω < 0 that the remaining
nonzero summands are those for k ∈ { ω , ω + 1}. With −1 < r− := ω + ω < 0 we get

   2j
         |ψ2 (k + ω )|2 = |ψ2 ( ω
          ˆ                ˆ           + ω )|2 + |ψ2 ( ω
                                                  ˆ           + 1 + ω )|2 = |ψ2 (r− )|2 + |ψ2 (1 + r− )|2 .
                                                                             ˆ             ˆ
 k=−2j

                       ˆ        ˆ
By Lemma 2.4 and since ψ2 (x) = ψ2 (−x), we finally obtain

                  |ψ2 (r− )|2 + |ψ2 (1 + r− )|2 = |ψ2 (|r− |)|2 + |ψ2 (1 − |r− |)|2 = 1.
                   ˆ             ˆ                 ˆ               ˆ




2.2 The continuous shearlet transform

For the shearlet transform we need a scaling (or dilation) matrix Aa and a shear matrix Ss
defined by
                            a 0                           1 s
                    Aa =       √    , a ∈ R+ , Ss =              , s ∈ R.
                            0    a                        0 1




                                                      8
The shearlets ψa,s,t emerge by dilation, shearing and translation of a function ψ ∈ L2 (R2 ) as
follows
                                                    3
                             ψa,s,t (x) :=a− 4 ψ(A−1 Ss (x − t))
                                                  a
                                                      −1
                                                                                                                  (8)
                                                                       1    s
                                                    3                      −a
                                             =a− 4 ψ                   a
                                                                                1          (x − t) .
                                                                       0       √
                                                                                 a

                  ˆ                ˆ             ˆ       ˆ ω2
We assume that ψ can be written as ψ(ω1 , ω2 ) = ψ1 (ω1 )ψ2 ( ω1 ). Consequently, we obtain for
the Fourier transform
                                                         1     s
                                     3                        −a
                     ψa,s,t (ω) = a− 4 ψ
                     ˆ                                   a
                                                                  1        (· − t) ˆ
                                                                                   (ω)
                                                         0       √
                                                                   a
                                                                           1      s
                                        3                                        −a
                                = a− 4 e−2πi        ω,t
                                                             ψ             a
                                                                                      1      · ˆ
                                                                                               (ω)
                                                                           0         √
                                                                                       a

                                        3                            3                      a  0
                                = a− 4 e−2πi        ω,t
                                                             (a− 2 )−1 ψ
                                                                       ˆ                    √ √        ω
                                                                                           s a  a
                                    3                           √
                                = a 4 e−2πi        ω,t   ˆ
                                                         ψ aω1 , a(sω1 + ω2 )
                                    3                                    1                    ω2
                                = a 4 e−2πi        ω,t
                                                         ψ1 (aω1 ) ψ2 a− 2
                                                         ˆ         ˆ                             +s    .
                                                                                              ω1

The shearlet transform SHψ (f ) of a function f ∈ L2 (R) can now be defined as follows

             SHψ (f )(a, s, t) := f, ψa,s,t
                                  ˆ ˆ
                                = f , ψa,s,t

                                =           ˆ    ˆ
                                            f (ω)ψa,s,t (ω)dω
                                    R2
                                    3                                1                      ω2
                                =a 4             f (ω)ψ1 (aω1 )ψ2 a− 2
                                                 ˆ    ˆ        ˆ                               +s   e2πi ω,t dω
                                            R2                                              ω1
                                   3                                                      1   ω2
                                =a 4 F −1 f (ω)ψ1 (aω1 )ψ2
                                          ˆ    ˆ        ˆ                              a− 2      +s     (t).
                                                                                              ω1

The same formula can be derived by interpreting the shearlet transform as a convolution with
the function ψa,s (x) = ψ(−A−1 Ss x) and using the convolution theorem.
                            a
                                −1


The shearlet transform is invertible if the function ψ fulfills the admissibility property
                                              ˆ
                                             |ψ(ω1 , ω2 )|2
                                                            dω1 dω2 < ∞.
                                        R2      |ω1 |2


2.3 Shearlets on the cone

Up to now we have nothing said about the support of our shearlet ψ. We use band-limited
shearlets, thus, we have compact support in the Fourier domain. In the previous section we
                ˆ           ˆ      ˆ
assumed that ψ(ω1 , ω2 ) = ψ1 (ω1 )ψ2 ( ω2 ), where we now define ψ1 and ψ2 as in (4) and (6)
                                        ω1




                                                                 9
ˆ               1       ˆ
respectively. With the results shown for ψ1 with |ω1 | ≥ 2 and ψ2 for |ω| < 1, i.e., |ω2 | < |ω1 |,
it is natural to define the area
                                                           1
                          C h := {(ω1 , ω2 ) ∈ R2 : |ω1 | ≥ , |ω2 | < |ω1 |}.
                                                           2
We will refer to this set as the horizontal cone (see Fig. 4). Analogously we define the vertical
cone as
                                                              1
                           C v := {(ω1 , ω2 ) ∈ R2 : |ω2 | ≥ , |ω2 | > |ω1 |}.
                                                              2
To cover all R2 we define two more sets
                                                        1           1
                     C × := {(ω1 , ω2 ) ∈ R2 : |ω1 | ≥ , |ω2 | ≥ , |ω1 | = |ω2 |},
                                                        2           2
                      C 0 := {(ω1 , ω2 ) ∈ R2 : |ω1 | < 1, |ω2 | < 1},
where C × is the “intersection” (or the seam lines) of the two cones and C 0 is the “low frequency”
part. Altogether R2 = C h ∪ C v ∪ C × ∪ C 0 with an overlapping domain
                                                          1 1
                                        C := (−1, 1)2  (− , )2 .                                (9)
                                                          2 2


                     C×                                          v
                                                                                    C×
                                                          C




                                                        C0                     Ch
                                                             1
                                                             2       1
                              h
                          C




                                                Cv


                                  Figure 4: The sets C h , C v , C × and C 0

Obviously the shearlet ψ defined above is perfectly suited for the horizontal cone. For each set
C κ , κ ∈ {h, v, ×}, we define a characteristic function χC κ (ω) which is equal to 1 for ω ∈ C κ and
0 for ω ∈ C κ . We need these characteristic functions as cut-off functions at the seam lines. We
set
                          ˆ                 ˆ             ˆ       ˆ ω2 χ h .
                          ψ h (ω1 , ω2 ) := ψ(ω1 , ω2 ) = ψ1 (ω1 )ψ2                             (10)
                                                                        C
                                                                     ω1



                                                     10
ˆ
For the non-dilated and non-sheared ψ h the cut-off function has no effect since the support of
ˆh is completely contained in C h . But after the dilation and shearing we have
ψ
                                              1           4      ω2    √
                       ˆ
                  supp ψa,s,0 ⊆ (ω1 , ω2 ) :    ≤ |ω1 | ≤ , s +      ≤ a .
                                             2a           a      ω1
The question arises for which a and s this set remains a subset of the horizontal cone. For
                         1           ˆ
a > 1 we have that ω1 ≤ 2 is in supp ψa,s,0 but not in C h . Thus, we can restrict ourselves to
a ≤ 1.
                                                  ˆ
Having a fixed, the second condition for supp ψa,s,0 becomes
                                         √          ω1 √
                                       − a≤s+          ≤ a,
                                                    ω2
                                   √              ω1      √
                                 − a−s≤                ≤ a − s.                                (11)
                                                  ω2
                                                 √                                       √
Since ω1 ≤ 1 we have for the right condition a − s ≤ 1 and for the left condition − a − s ≥
       ω2
−1, hence, we can conclude                 √               √
                                     −1 + a ≤ s ≤ 1 − a.
                        ˆ
For such s we have supp ψa,s,0 ⊆ C h , in particular the indicator function is not needed for these
s (with respective a). One might ask for which s (depending on a) the indicator function cuts
                                          ˆ
off only parts of the function, i.e., supp ψa,s,0 ∩ C h = ∅. We take again (11) but now we do not
                                       ω1
use a condition to guarantee that ω2 < 1 but rather ask for a condition that allows ω1 < 1. ω2
                          √                                                           √
Thus, the right bound a − s should be larger than −1 and the left bound − a − s should
be smaller than 1. Consequently, we obtain
                                             √              √
                                        −1 − a ≤ s ≤ 1 + a.
                                        √              ˆ                   √               √
Summing up, we have for |s| ≤ 1 − a that supp ψa,s,0 ⊆ C h . For 1 − a < |s| < 1 + a parts
         ˆ                                                      √
of supp ψa,s,0 are also in C v , which are cut off. For |s| > 1 + a the whole shearlet is set to zero
                                                                      ˆ
by the characteristic function. If we get back to the definition of ψa,s,0 we see that the vertical
range is determined by ψ  ˆ2 . By definition ψ2 is axially symmetric with respect to the y-axis, in
                                               ˆ
                                                                                    1
                                 ˆ
other words the “center” of ψ2 is taken for the argument equal to zero, i.e., a− 2 ( ω1 + s) = 0. It
                                                                                      ω2
                                         ˆ
follows that for |s| = 1 the center of ψa,s,0 is at the seam-lines. Thus, for |s| = 1 approximately
one half of the shearlet is cut off whereas the other part remains. For larger s more would be
cut. Consequently, we restrict ourselves to |s| ≤ 1.
Analogously the shearlet for the vertical cone can be defined, where the roles of ω1 and ω2 are
interchanged, i.e.,
                       ˆ                 ˆ             ˆ       ˆ ω1 χC v .
                       ψ v (ω1 , ω2 ) := ψ(ω2 , ω1 ) = ψ1 (ω2 )ψ2                         (12)
                                                                  ω2
All the results from above apply to this setting. For (ω1 , ω2 ) ∈ C × , i.e., |ω1 | = |ω2 |, both
definitions coincide and we define
                                   ψ × (ω1 , ω2 ) := ψ(ω1 , ω2 )χC × .
                                   ˆ                 ˆ                                         (13)
              ˆ ˆ           ˆ
The shearlets ψh , ψv (and ψ × ) are called shearlets on the cone. This concept was introduced
in [10].
We have functions to cover three of the four parts of R2 . The remaining part C 0 will be handled
with a scaling function which is presented in the next section.



                                                   11
2.4 Scaling function

For the center part C 0 (or low-frequency part) we define another set of functions. To this end,
we need the following so-called “mother”-scaling function
                                   
                                                                 1
                                   1
                                                      for |ω| ≤ 2
                          ϕ(ω) := cos( π v(2|ω| − 1)) for 1 < |ω| < 1
                                        2                  2
                                   
                                    0                  otherwise.
                                   

The full scaling function φ can then be defined as follows

                ˆ               ϕ(ω1 ) for |ω1 | < 1, |ω2 | ≤ |ω1 |
                φ(ω1 , ω2 ) :=                                                                  (14)
                                ϕ(ω2 ) for |ω2 | < 1, |ω1 | < |ω2 |
                               
                               1
                               
                                                                   2
                                                                              1
                                                      for |ω1 | ≤ 1 , |ω2 | ≤ 2
                               cos( π v(2|ω | − 1)) for 1 < |ω | < 1, |ω | ≤ |ω |
                               
                                     2      1               2      1         2     1
                             =                              1
                               cos( π v(2|ω2 | − 1)) for 2 < |ω2 | < 1, |ω1 | < |ω2 |
                                    2
                               
                               
                               0                     otherwise.
                                         ˆ
The decay of the scaling function φ (respectively ϕ) is chosen to match perfectly with the
            ˆ1 . For |ω| ∈ [ 1 , 1] we have by (5), that
increase of ψ                2
                                      π                       π
             |ψ1 (ω)|2 + |ϕ(ω)|2 = sin2
              ˆ                         v(2|ω| − 1) + cos2      v(2|ω| − 1) = 1.           (15)
                                      2                       2
Remark 2.6. Observe that in our setting it seems not to be useful to define the scaling function
as a simple tensor product, namely
     ˆ
     Φ(ω) :=ϕ(ω1 )ϕ(ω2 )
            
            1
                                                            for |ω1 | ≤ 1 , |ω2 | ≤ 1
                                                                         2           2
            
            cos( π v(2|ω1 | − 1))                           for 2 < |ω1 | < 1, |ω2 | ≤ 1
                                                                 1
            
            
                  2                                                                    2
           = cos( π v(2|ω2 | − 1))
                   2                                         for 2 < |ω2 | < 1, |ω1 | ≤ 1
                                                                 1
                                                                                        2
                                                                                                (16)
                                                             for 1 < |ω1 | ≤ 1, 1 < |ω2 | ≤ 1
            
            cos( π v(2|ω1 | − 1)) cos( π v(2|ω2 | − 1))
            
            
            
                  2                    2                        2                 2
              0                                              otherwise.
            

Fig. 5 shows the difference between both scaling functions. Obviously, the first scaling function
aligns much better with the cones. Recently in [8] a new shearlet construction was introduced
which is based on the scaling function in (16). We discuss the new construction in Section 3.4.
                                                                                         ˆ
Remark 2.7. On the other hand it is possible to rewrite the definition of the original φ as a
                                                                      ˆh and a vertical scaling
shearlet-like tensor product. We obtain a horizontal scaling function φ
          ˆ
function φv as follows

             ˆ                           ω2              ˆ                          ω1
             φh (ω1 , ω2 ) := ϕ(ω1 )ϕ              and   φv (ω1 , ω2 ) := ϕ(ω2 )ϕ         ,
                                        2ω1                                         2ω2
where                            
                                 1
                                                           for |ω2 | ≤ |ω1 |
                       ω2        
                                        π     ω2
                  ϕ          =    cos   2v    ω1   −1       for |ω1 | < |ω2 | < 2|ω1 |
                      2ω1        
                                 
                                 0                         otherwise.



                                                   12
1.5                                                        1.5




         1                                                         1




       0.5                                                        0.5




         0                                                         0




      −0.5                                                       −0.5




       −1                                                         −1




      −1.5                                                       −1.5
        −1.5   −1   −0.5      0       0.5     1     1.5            −1.5     −1   −0.5      0       0.5   1   1.5




                               ˆ
                           (a) φ(ω)                                                         ˆ
                                                                                        (b) Φ(ω)


                    Figure 5: The different scaling functions in (14) and (16).

          ω
Thus, ϕ( 2ω21 ) is a continuous extension of the characteristic function of the horizontal cone
Ch.

We set
                                            φa,s,t (x) = φt (x) = φ(x − t).
Note that there is neither scaling nor shearing for the scaling function, only a translation.
Thus, the index “a, s, t” from the shearlet ψ reduces to “t”. We further obtain

                                               φt (ω) = e−2πi
                                               ˆ                ω,t     ˆ
                                                                        φ(ω).

The transform can be obtained similar as before, namely

                                             SHφ (f )(a, s, t) = f, φt .


3 Computation of the shearlet transform

In the following, we consider digital images as functions sampled on the grid {( m1 , m2 ) :
                                                                                     M N
(m1 , m2 ) ∈ I} with I := {(m1 , m2 ) : m1 = 0, . . . , M − 1, m2 = 0, . . . N − 1}.
The discrete shearlet transform is basically known, but in contrast to the existing literature we
present here a fully discrete setting. That is, we do not only discretize the involved parameters
a, s and t but also consider only a finite number of discrete translations t. Additionally, our
setting discretizes the translation parameter t on a rectangular grid and independent of the
dilation and shearing parameter. See Section 3.9 for further remarks on this topic.




                                                          13
3.1 Finite discrete shearlets
           1
Let j0 := 2 log2 N be the number of considered scales. To obtain a discrete shearlet trans-
form, we discretize the scaling, shear and translation parameters as
                                                 1
                                 aj := 2−2j =       , j = 0, . . . , j0 − 1,
                                                 4j
                                sj,k   := k2−j , −2j ≤ k ≤ 2j ,
                                           m1 m2
                                 tm    :=      ,     , m ∈ I.                                                 (17)
                                            M N
With these notations our shearlets becomes ψj,k,m (x) := ψaj ,sj,k ,tm (x) = ψ(A−1 Ssj,k (x − tm )).
                                                                                aj
                                                                                    −1
                                                                                                          3
Observe that compared to the continuous shearlets defined in (8) we omit the factor a− 4 . In
the Fourier domain we obtain
                                                                ω2      −2πi          ω,(m1 /M )
  ψj,k,m (ω) = ψ(ATj Ssj,k ω)e−2πi
  ˆ            ˆ
                  a
                      T                ω,tm
                                              = ψ1 4−j ω1 ψ2 2j
                                                ˆ         ˆ        +k e                  m /N
                                                                                           2       ,   ω ∈ Ω,
                                                                ω1
                                       M           M                  N           N
where Ω := (ω1 , ω2 ) : ω1 = −         2   ,...,   2   − 1, ω2 = −    2   ,...,   2   −1 .




     (a) Shearlet in Fourier domain                         (b) Same shearlet in time domain (zoomed)
     for a = 1 and s = − 1
             4            2



                          Figure 6: Shearlet in Fourier and time domain.

By definition we have a ≤ 1 and |s| ≤ 1. Therefore we see that we have a cut off due to the
cone boundaries only for |k| = 2j where |s| = 1. For both cones we have for |s| = 1 two “half”
shearlets with a gap at the seam line. None of the shearlets are defined on the seam line C × .
To obtain “full” shearlets at the seam lines we “glue” the three parts together, thus, we define
for |k| = 2j a sum of shearlets
                                  ˆh×v      ˆh       ˆv       ˆ×
                                  ψj,k,m := ψj,k,m + ψj,k,m + ψj,k,m .




                                                       14
We define the discrete shearlet transform as
                                         
                                          f, φm
                                                                        for κ = 0,
                   SH(f )(κ, j, k, m) :=       κ
                                           f, ψj,k,m                     for κ ∈ {h, v},
                                               h×v
                                         
                                           f, ψj,k,m                     for κ = ×, |k| = 2j .
                                         

where j = 0, . . . , j0 − 1, −2j + 1 ≤ k ≤ 2j − 1 and m ∈ I if not stated in another way. The
shearlet transform can be efficiently realized by applying the fft2 and its inverse ifft2 which
compute the following discrete Fourier transforms with O(N 2 log N ) arithmetic operations:

                                 −2πi ω,(m1 /M )                             ω1 m 1  ω m
        ˆ
        f (ω) =         f (m)e           m /N
                                            2        =         f (m)e−2πi(    M
                                                                                    + 2 2
                                                                                       N      ),       ω ∈ Ω,
                  m∈I                                    m∈I
                   1                  2πi   ω,(m1 /M )        1                         ω1 m 1  ω m
       f (m) =                 ˆ
                               f (ω)e          m /N
                                                 2       =                 f (ω)e2πi(
                                                                           ˆ             M
                                                                                               + 2 2
                                                                                                  N      ),     m ∈ I.
                  MN                                         MN
                         ω∈Ω                                         ω∈Ω

We have the Plancherel formula
                                                              1 ˆ
                                                 f, g =         f, g .
                                                                   ˆ
                                                             MN

                                                                                         ˆ
Thus, the discrete shearlet transform can be computed for κ = h as follows (observe that ψ is
real):

                                h                      1 ˆ ˆh
       SH(f )(h, j, k, m) = f, ψj,k,m =                    f , ψj,k,m
                                                    MN
                                    1             −2πi ω,(m1 /M ) ˆ −j                       ˆ
                               =                e         m2 /N   ψ(4 ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )
                                   MN
                                         ω∈Ω
                                    1                                                     2πi             ω,(m1 /M )
                               =                ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )e
                                                ˆ                            ˆ                               m /N
                                                                                                                2      .
                                   MN
                                         ω∈Ω

                 ˆ                            ˆ
With gj,k (ω) := ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 ) this can be rewritten as
     ˆ

                                                      1                          2πi ω,(m1 /M )
                         SH(f )(h, j, k, m) =                        gj,k (ω)e
                                                                     ˆ                  m /N
                                                                                          2        .
                                                     MN
                                                               ω∈Ω

Since gj,k (ω) ∈ CM ×N the shearlet transform can be computed as an inverse FFT of gj,k , thus
      ˆ                                                                            ˆ

                  SH(f )(h, j, k, m) = ifft2(ˆj,k )
                                             g
                                     = ifft2(ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )).
                                             ˆ                            ˆ                                                (18)

For the vertical cone, i.e., κ = v, we obtain

                  SH(f )(v, j, k, m) = ifft2(ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )f (ω1 , ω2 ))
                                             ˆ                            ˆ                                                (19)

and for the seam line part with |k| = 2j we use the “glued” shearlets and obtain

             SH(f )ψh×v (j, k, m) = ifft2(ψ h×v (4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )).
                                          ˆ                                 ˆ                                              (20)




                                                             15
ˆ          ˆ
Finally for the low-pass with g0 (ω1 , ω2 ) := φ(ω1 , ω2 )f (ω1 , ω2 ) the transform can be obtained
                              ˆ
similar as before, namely

                     SHφ (f )(m) = f, φm
                                    1 ˆ ˆ
                                 =      f , φm
                                   MN
                                    1         −2πi             ω,(m1 /M )   ˆ          ˆ
                                 =           e                    m /N
                                                                    2       φ(ω1 , ω2 )f (ω1 , ω2 )
                                   MN
                                                ω∈Ω
                                         1            +2πi ω,(m1 /M )       ˆ          ˆ
                                    =                 e       m /N  2       φ(ω1 , ω2 )f (ω1 , ω2 )
                                        MN
                                                ω∈Ω
                                       1              +2πi ω,(m1 /M )
                                    =                 e       m /N  2       g0 (ω)
                                                                            ˆ
                                      MN
                                                ω∈Ω
                                    = ifft2(ˆ0 )
                                            g
                                            ˆ          ˆ
                                    = ifft2(φ(ω1 , ω2 )f (ω1 , ω2 )).                                    (21)

The complete shearlet transform is the combination of (18) to (21). We summarize
                               ˆ          ˆ
                       
                       ifft2(φ(ω1 , ω2 )f (ω1 , ω2 ))
                                                                              for κ = 0
                               ˆ                             ˆ 1 2
                       ifft2(ψ(4−j ω , 4−j kω + 2−j ω )f (ω , ω ))            for κ = h, |k| ≤ 2j − 1
                       
                                       1          1       2
  SH(f )(κ, j, k, m) =         ˆ   −j      −j          −j    ˆ                                           (22)
                       ifft2(ψ(4 ω2 , 4 kω2 + 2 ω1 )f (ω1 , ω2 ))
                       
                                                                              for κ = v, |k| ≤ 2j − 1
                              ˆ                                 ˆ
                         ifft2(ψ h×v (4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )) for κ = 0, |k| = 2j .




3.2 A discrete shearlet frame

In view of the inverse shearlet transform we prove that our discrete shearlets constitute a
Parseval frame of the finite Euclidean space L2 (I). Recall that for a Hilbert space H a sequence
{uj : j ∈ J } is a frame if and only if constants 0 < A ≤ B < ∞ exists such that

                                2
                          A f       ≤         | f, uj |2 ≤ B f          2
                                                                            for all f ∈ H.
                                        j∈J

The frame is called tight if A = B and a Parseval frame if A = B = 1. Thus, for Parseval
frames we have that
                              f 2=     | f, uj |2 for all f ∈ H
                                              j∈J

which is equivalent to the reconstruction formula

                                    f=           f, uj uj       for all f ∈ H.
                                          j∈J

Further details on frames can be found in [3] and [14]. In the n-dimensional Euclidean space
we can arrange the frame elements uj , j = 1, . . . , n ≥ n as rows of a matrix U . Then we have
                                                      ˜
indeed a frame if U has full rank and a Parseval frame if and only if U T U = In . Note that




                                                          16
U U T = In is only true if the frame is an orthonormal basis. The Parseval frame transform and
          ˜
its inverse read
                                    ˜                              ˜
                           ( f, uj )n = U f and f = U T ( f, uj )n .
                                    j=1                            j=1

By the following theorem our shearlets provide such a convenient system.

Theorem 3.1. The discrete shearlet system

                       {ψj,k,m (ω) : j = 0, . . . , j0 − 1, −2j + 1 ≤ k ≤ 2j − 1, m ∈ I}
                         h

                       ∪ {ψj,k,m (ω) : j = 0, . . . , j0 − 1, −2j + 1 ≤ k ≤ 2j − 1, m ∈ I}
                           v

                           h×v
                       ∪ {ψj,k,m (ω) : j = 0, . . . , j0 − 1, |k| = 2j , m ∈ I}
                       ∪ {φm (ω) : m ∈ I}

provides a Parseval frame for L2 (I).

Proof. We have to show that
                    j0 −1   2j −1                                 j0 −1
     2
 f       =                                  | f, ψj,k,m |2 +
                                                  κ
                                                                                     | f, ψj,k,m |2 +
                                                                                           h×v
                                                                                                              | f, φm |2 =: C.
             κ∈{h,v} j=0 k=−2j +1 m∈I                             j=0 k=±2j m∈I                         m∈I

                       ˆ
Since f 2 = M1N f 2 (Parsevals formula, · denotes the Frobenius norm, i.e.,                                            ·   F   =
           F             F
                                                          ˆ
 vec(·) 2 ) it is sufficient to show that C is equal to M1N f 2 .
                                                            F

By (18) we know that

                                h              1                2πi ω,(m1 /M )
                            f, ψj,k,m =                     e          m /N
                                                                          2      gj,k (ω) = gj,k (m).
                                                                                 ˆ
                                              MN
                                                     ω∈Ω

We further obtain

                                          | f, ψj,k,m |2 =
                                                h
                                                                       |gj,k (m)|2 = gj,k    2
                                                                                             F.
                                    m∈I                         m∈I

Consequently, with Parsevals formula

                                2        1          2        1
                         gj,k   F   =      gj,k
                                           ˆ        F   =                  |ˆj,k (ω)|2
                                                                            g
                                        MN                  MN
                                                                     ω∈Ω
                                       1
                                    =              |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )|2
                                                    ˆ                            ˆ
                                      MN
                                             ω∈Ω
                                       1
                                    =              |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 .
                                                    ˆ                                ˆ
                                      MN
                                             ω∈Ω

Analogously we obtain for the vertical part
                                              1
                       | f, ψj,k,m |2 =
                             v
                                                         |ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )|2 |f (ω1 , ω2 )|2 .
                                                          ˆ                                ˆ
                                             MN
                 m∈I                               ω∈Ω




                                                                  17
Using these results we can conclude for the seam-line part
                                      1
                  | f, ψj,k,m |2 =
                        h×v
                                                   |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 χC h
                                                    ˆ                                ˆ
                                     MN
            m∈I                              ω∈Ω
                                   1
                                +                  |ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )|2 |f (ω1 , ω2 )|2 χC v
                                                    ˆ                                ˆ
                                  MN
                                          ω∈Ω
                                   1
                                +                  |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 χC × .
                                                    ˆ                                ˆ
                                  MN
                                          ω∈Ω

For the remaining low-pass part we get similarly
                                        1
                        | f, φm |2 =                 | f , φm |2
                                                       ˆ ˆ
                                       MN
                  m∈I                         m∈I
                                     1                      ˆ     ˆ          2
                                  =                         φm (ω)f (ω)
                                    MN
                                              m∈I ω∈Ω
                                     1                          2πi ω,(m1 /M )   ˆ          ˆ              2
                                  =                         e          m /N
                                                                         2       φ(ω1 , ω2 )f (ω1 , ω2 )
                                    MN
                                              m∈Ω ω∈Ω


               ˆ          ˆ
with g0 (ω) := φ(ω1 , ω2 )f (ω1 , ω2 )
     ˆ

                                              1                 2πi ω,(m1 /M )            2
                                  =                         e          m /N
                                                                         2       g0 (ω)
                                                                                 ˆ
                                             MN
                                       m∈I            ω∈Ω
                                                                              1
                                  =          |g0 (m)|2 = g0          2
                                                                     F   =      g0
                                                                                ˆ         2
                                                                             MN
                                       m∈I
                                        1
                                  =                  |φ(ω1 , ω2 )f (ω1 , ω2 )|2
                                                      ˆ          ˆ
                                       MN
                                              ω∈Ω
                                     1
                                  =                  |φ(ω1 , ω2 )|2 |f (ω1 , ω2 )|2 .
                                                      ˆ              ˆ
                                    MN
                                              ω∈Ω




                                                            18
Lets put the pieces together:
                      j0 −1     2j −1                                         j0 −1
   C=                                                 |   f, ψj,k,m |2
                                                              κ
                                                                          +                        | f, ψj,k,m |2 +
                                                                                                         h×v
                                                                                                                                 | f, φm |2
          κ∈{h,v} j=0 k=−2j +1 m∈I                                            j=0 k=±2j m∈I                                m∈I
          j0 −1       2j −1
                                 1
      =                                           |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2
                                                   ˆ                                ˆ
                                MN
          j=0 k=−2j +1                     ω∈Ω
              j0 −1     2j −1
                                   1
          +                                           |ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )|2 |f (ω1 , ω2 )|2
                                                       ˆ                                ˆ
                                  MN
              j=0 k=−2j +1                      ω∈Ω
              j0 −1
                                   1
          +                                           |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 χC h
                                                       ˆ                                ˆ
                                  MN
              j=0 k=±2j                         ω∈Ω
               1
          +                   |ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )|2 |f (ω1 , ω2 )|2 χC v
                               ˆ                                ˆ
              MN
                       ω∈Ω

               1
          +                   |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 χC ×
                               ˆ                                ˆ
              MN
                        ω∈Ω
               1
          +                   |φ(ω1 , ω2 )|2 |f (ω1 , ω2 )|2 .
                               ˆ              ˆ
              MN
                       ω∈Ω

We can group the sums by the different sets and obtain
                          j0 −1       2j
        1
    C=                                          |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 χC h
                                                 ˆ                                ˆ
       MN
                  ω∈Ω j=0 k=−2j
                              j0 −1        2j
             1
          +                                       |ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )|2 |f (ω1 , ω2 )|2 χC v
                                                   ˆ                                ˆ
            MN
                       ω∈Ω j=0 k=−2j
                              j0 −1
             1                                                                               1
          +                           |f (ω1 , ω2 )|2 | ψ(4−j ω1 , 0) |2 χC × +
                                       ˆ                ˆ                                                     |φ(ω1 , ω2 )|2 |f (ω1 , ω2 )|2 .
                                                                                                               ˆ              ˆ
            MN                                                                              MN
                       ω∈Ω j=0                                      =1                                  ω∈Ω

                       ˆ
Using the definition of ψ in (10) (or (12) and (13), respectively), we can conclude
                                                                  j0 −1                       2j
                      1                                                                                           ω2
                  C=                            |f (ω1 , ω2 )|2
                                                 ˆ                        |ψ1 (4−j ω1 )|2
                                                                           ˆ                             ˆ
                                                                                                        |ψ2 (2j      + k)|2
                     MN                                                                                           ω1
                                  ω∈C h                           j=0                       k=−2j

                                                                      =1 for |ω1 |≥1           =1 (see Theorem 2.5)
                                                                    (see Theorem 2.2)
                                                                    j0 −1                          2j
                            1                                                                                        ω1
                         +                        |f (ω1 , ω2 )|2
                                                   ˆ                        |ψ1 (4−j ω2 )|2
                                                                             ˆ                             ˆ
                                                                                                          |ψ2 (2j       + k)|2
                           MN                                                                                        ω2
                                        ω∈C v                        j=0                      k=−2j

                                                                          =1 for |ω2 |≥1                        =1
                               1                                           1
                         +                         |f (ω1 , ω2 )|2 +
                                                    ˆ                                      | φ(ω1 , ω2 ) |2 |f (ω1 , ω2 )|2 .
                                                                                             ˆ               ˆ
                              MN                                          MN
                                        ω∈C ×                                     ω∈Ω
                                                                                        = 1 for ω ∈ [− 1 , 1 ]2
                                                                                                       2 2




                                                                           19
ˆ        ˆ
With the properties of ψ1 and ψ2 (see Theorems 2.2 and 2.5) we obtain two sums, one for the
overlapping domain C (see (9)) and one for the remaining part
                                                                                                                   
                                                     j0 −1                   j0 −1
       1
C=              |f (ω1 , ω2 )|2 +
                  ˆ                 |f (ω1 , ω2 )|2 
                                     ˆ                     |ψ1 (4−j ω1 )|2 +
                                                            ˆ                      |ψ1 (4−j ω2 )|2 + |φ(ω1 , ω2 )|2 
                                                                                    ˆ                 ˆ
     MN
           ω∈ΩC                           ω∈C                      j=0                          j=0

where we can split up the second sum as
      1
C=                     |f (ω1 , ω2 )|2
                        ˆ
     MN
           ω∈ΩC
        1                                            π                  1                                               π
     +                     |f (ω1 , ω2 )|2 sin2
                            ˆ                          v(2|ω1 | − 1) +                           |f (ω1 , ω2 )|2 sin2
                                                                                                  ˆ                       v(2|ω2 | − 1)
       MN                                            2                 MN                                               2
              ω∈C h ∩C                                                                ω∈C v ∩C
          1                                           π                  1                                                  π
     +                     |f (ω1 , ω2 )|2 cos2
                            ˆ                           v(2|ω1 | − 1) +                          |f (ω1 , ω2 )|2 cos2
                                                                                                  ˆ                           v(2|ω2 | − 1)
         MN                                           2                 MN                                                  2
              ω∈C h ∩C                                                                ω∈C v ∩C

using the overlap (see (15)) we can continue
               1
         C=                      |f (ω1 , ω2 )|2
                                  ˆ
              MN
                       ω∈ΩC
                   1                                            π                      π
              +                      |f (ω1 , ω2 )|2 sin2
                                      ˆ                           v(2|ω1 | − 1) + cos2   v(2|ω1 | − 1)
                  MN                                            2                      2
                         ω∈C h ∩C
                                                                                =1 (see (15))
                   1                                            π                      π
              +                      |f (ω1 , ω2 )|2 sin2
                                      ˆ                           v(2|ω2 | − 1) + cos2   v(2|ω2 | − 1)                  .
                  MN                                            2                      2
                         ω∈C v ∩C
                                                                                =1 (see (15))

Finally, we obtain
                                        1                                 1
                               C=                    |f (ω1 , ω2 )|2 =
                                                      ˆ                     ˆ
                                                                            f         2
                                                                                      F   = f    2
                                                                                                 F.
                                       MN                                MN
                                              ω∈Ω




3.3 Inversion of the shearlet transform

Having the discrete Parseval frame the inversion of the shearlet transform is straightforward:
multiply each coefficient with the respective shearlet and sum over all involved parameters. As
an inversion formula we obtain
              j0 −1    2j −1                                    j0 −1
                                             κ      κ                                     h×v    h×v
f=                                       f, ψj,k,m ψj,k,m +                           f, ψj,k,m ψj,k,m +           f, φm φm .
     κ∈{h,v} j=0      k=−2j +1   m∈I                            j=0     k=±2j   m∈I                          m∈I

The actual computation of f from given coefficients c(κ, j, k, m) is done in the Fourier domain.
Due to the linearity of the Fourier transform we get
              j0 −1    2j −1                                    j0 −1
ˆ
f=                                           κ
                                         f, ψj,k,m   ˆκ
                                                     ψj,k,m +                             h×v ˆh×v
                                                                                      f, ψj,k,m ψj,k,m +                 ˆ
                                                                                                                   f, φm φm .
     κ∈{h,v} j=0 k=−2j +1 m∈I                                   j=0 k=±2j m∈I                                m∈I




                                                               20
We take a closer look at the part for the horizontal cone where we have
                     j0 −1   2j −1
       ˆ
       f (ω)χC h =                                     ˆh
                                             f, ψj,k,m ψj,k,m (ω)
                     j=0 k=−2j +1 m∈I
                     j0 −1   2j −1
                                                          −2πi ω,(m1 /M )
                =                            c(h, j, k, m)e       m /N
                                                                    2       ψ(4−j ω1 , 4j kω1 + 2−j ω2 ).
                                                                            ˆ
                     j=0 k=−2j +1 m∈I

The inner sum can be interpreted as a two-dimensional discrete Fourier transform and can be
computed with a FFT and we can write
                        j0 −1    2j −1
          ˆ
          f (ω)χC h =                    fft2(c(h, j, k, ·))(ω1 , ω2 )ψ(4−j ω1 , 4j kω1 + 2−j ω2 ).
                                                                      ˆ
                         j=0 k=−2j +1

         ˆ
Hence, f can be computed by simple multiplications of the Fourier-transformed shearlet co-
efficients with the dilated and sheared spectra of ψ and afterwards summing over all “parts”,
scales j and all shears k, respectively. In detail we have
            ˆ                          ˆ
            f (ω1 , ω2 ) =fft2(c(0, ·))φ(ω1 , ω2 )
                             j0 −1   2j −1
                         +                    fft2(c(h, j, k, ·))ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )
                                                                 ˆ
                             j=0 k=−2j +1
                             j0 −1   2j −1                                                                  (23)
                         +                    fft2(c(v, j, k, ·))ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )
                                                                 ˆ
                             j=0 k=−2j +1
                             j0 −1
                         +               fft2(c(h × v, j, k, ·))ψ(4−j ω1 , 4−j kω1 + 2−j ω2 ).
                                                                ˆ
                             j=0 k=±2j

                                      ˆ
Finally we get f itself by an iFFT of f
                                                            ˆ
                                                  f = ifft2(f ).


3.4 Smooth shearlets

In many theoretical and some practical purposes one needs smooth shearlets in the Fourier
domain because such shearlets provide well-localized shearlets in time domain. Recently, in
[8] a new shearlet construction was proposed that provides smooth shearlets for all scales a
and respective shears s. Our shearlets are smooth for all scales and for all shears |s| = 1.
The “diagonal” shearlets ψ h×v are continuous by construction but they are not smooth. Fig
7(a) illustrates this. Obviously our construction is not smooth in points on the diagonal. The
new construction circumvents this with “round” corners. To this end, we get back to the
two different scaling functions which we discussed in Section 2.4. While we chose the scaling
function matching our cone-construction the new construction is based on the tensor-product




                                                        21
(a) diagonal shearlet in our construction           (b) diagonal shearlet in the new construction


Figure 7: Diagonal shearlets in our construction and in the new, smooth construction (Fourier
          domain)

                 ˆ
scaling function Φ(ω) = ϕ(ω1 )ϕ(ω2 ). We present the basic steps in the construction of [8]
transferred to our setting. In fact, we only need to modify the function ψ1 . We set

                             ˆ
                             Ψ1 (ω) :=     ˆ                       ˆ
                                           Φ2 (2−2 ω1 , 2−2 ω2 ) − Φ2 (ω1 , ω2 ).                          (24)

         ˆ
Clearly, Ψ1 (ω) fulfills         ˆ 2 −2j ω)   = 1 for all ω ∈ Ω  [−1, 1]2 . We further have that
                            j≥0 Ψ1 (2


                               Φ2 (ω) +
                               ˆ                Ψ2 (2−2j ω) = 1
                                                ˆ1                 for ω ∈ Ω,
                                          j≥0

                                                                       ˆ               ˆ
i.e., this setting provides also a Parseval frame. Fig. 8 shows Ψ1 . Note that Ψ1 is supported
in the Cartesian corona [−4, 4]  2  [− 1 , 1 ]2 . The full shearlet Ψ is similar as before:
                                        2 2


                                   ˆ             ˆ            ˆ     ω2
                                   Ψ(ω1 , ω2 ) = Ψ1 (ω1 , ω2 )ψ2          .                                (25)
                                                                    ω1

The construction of the horizontal, vertical and “diagonal” shearlets is the same as before,
besides that the diagonal shearlets are smooth now, see Fig. 7(b).
Before we examine the smoothness of the diagonal shearlets we discuss the differentiability of
                                                                                        ˆ
the remaining shearlets. Due to the construction we only need to analyze the functions ψ1 and
ψˆ2 . We have
                                             
                                             0
                                                                     for |ω1 | ≤ 1
                                                                                  2
                                             
                                             sin( π v(2|ω1 | − 1)) for 1 < |ω1 | < 1
                                             
                                             
                                                  2                      2
             ˆ
            ψ1 (ω1 ) = b2 (2ω1 ) + b2 (ω1 ) = 1                       for 1 ≤ |ω1 | ≤ 2
                                             cos( π v( 1 |ω1 | − 1)) for 2 < |ω1 | < 4
                                             
                                             
                                             
                                             
                                                  2    2
                                               0                      for |ω1 | ≥ 4
                                             



                                                      22
ˆ
                               Figure 8: The new function Ψ1 in (24)


and with straight forward differentiation
                  
                  0
                                                                                     for   |ω1 | ≤ 1
                                                                                                    2
                  
                  πv(2|ω1 | − 1)v (2|ω1 | − 1) cos( π v(2|ω1 | − 1))                       1
                                                                                      for     < |ω1 | < 1
                  
                  
                                                    2                                      2
        ˆ (ω1 ) = 0
        ψ1                                                                            for   1 ≤ |ω1 | ≤ 2
                   π 1
                  − v( |ω1 | − 1)v ( 1 |ω1 | − 1) sin( π v( 1 |ω1 | − 1))
                  
                   2 2                                                               for   2 < |ω1 | < 4
                  
                                     2                 2    2
                    0                                                                 for   |ω1 | ≥ 4.
                  

                                                                               1
The derivative is continuous if and only if the values at the critical points 2 , 1, 2, 4 coincide (for
symmetry reasons we can restrict ourselves to the positive range). We have that v(2 · 1 − 1) =2
v(0) = 0 (even v (0) = 0) and v (2 · 1 − 1) = v (1) = 0 and further v( 1 · 2 − 1) = v(0) = 0
                                                                             2
                                                ˆ                                         ˆ
and v ( 1 · 4 − 1) = v (1) = 0. Consequently, ψ1 is continuous and in particular ψ1 ∈ C 1 . By
        2
                        ˆ(n)
induction we see that ψ ∈ C n if and only if v (n) (0) = 0 and v (n) (1) = 0, n ≥ 1.
                          1
                                                                ˆ
For our v in (1) we have v (3) (1) = 0 but v (4) (1) = 0, i.e., ψ1 ∈ C 3 .
                         ˆ
Similarly, we obtain for ψ2 that
                                      
                                         ω
                                      − ω2 v (1 +    ω2         1               ω2
                        ˆ                  2          ω1 ) 2        ω      for   ω1   ≤0
                      ∂ ψ2                                     v(1+ ω1 )
                                       1
                                                                       2
                           (ω1 , ω2 ) = ω2          ω2         1                 ω2
                      ∂ω1               2 v (1 −   ω1 ) 2        ω        for   ω1   > 0,
                                        ω1                  v(1− ω1 )
                                                                   2


                                                                                            ˆ
where we see that we need v (0) = 0 for the derivative to exist. Thus, the shearlet ψ is C n if
v                                                                                  ˆ
  (n) (0) = v (n) (1) = 0. This is also valid for the dilated and sheared shearlet ψ h         ˆv
                                                                                    j,k,m (and ψj,k,m )
for |k| = 2j . We take a closer look at the diagonal shearlet for k = −2j where we have
                                               
                                                ˆj,−2 ,m
                                               ψ h j (ω), for ω ∈ C h
                                               
                               ˆh×v               ˆv
                              ψj,−2j ,m (ω) = ψj,−2j ,m (ω), for ω ∈ C v
                                                ×
                                               ˆ
                                               ψ
                                                   j,−2j ,m
                                                            (ω), for ω ∈ C × .



                                                    23
ˆh×v                                                        ˆh×v
Naturally, ψj,−2j ,m is smooth for ω ∈ C h and ω ∈ C v . Additionally, ψj,−2j ,m (ω) is continuous at
the seam lines, but not differentiable there since we have for the partial derivatives of ψ h jˆ
                                                                                                          j,−2 ,m
    ˆv
and ψj,−2j ,m (ω) that

                 ˆh
               ∂ ψj,−2j ,m                 ω2          2πi                        ˆ
                                                                                ∂ ψ1 −2j
                             (ω) = ψ2 (2j ( − 1))e− N (ω1 m1 +ω2 m2 ) · 2−2j
                                   ˆ                                                 (2 ω1 )
                  ∂ω1                      ω1                                   ∂ω1
                                                     2πi                           ˆ
                                                                            ω2 ∂ ψ2 j ω2
                                   + ψ1 (2−2j ω1 )e− N (ω1 m1 +ω2 m2 ) (−2j 2 )
                                      ˆ                                               (2 ( − 1))
                                                                            ω1 ∂ω1        ω1
                                                          ω2            2πi         2πi
                                   + ψ1 (2−2j ω1 )ψ2 (2j ( − 1))(−
                                      ˆ           ˆ                         m1 )e− N (ω1 m1 +ω2 m2 )
                                                          ω1             N
and
                 ˆv
               ∂ ψj,−2j ,m                         2πi                      ˆ
                                                                       2j ∂ ψ2 j ω1
                             (ω) = ψ1 (2−2j ω2 ) e− N (ω1 m1 +ω2 m2 ) ( )
                                   ˆ                                          (2 ( − 1))
                  ∂ω1                                                  ω2 ∂ω1     ω2
                                              ω1       2πi       2πi
                                      ˆ
                                    + ψ2 (2j ( − 1))(−     m1 )e− N (ω1 m1 +ω2 m2 ) .
                                              ω2        N
For ω1 = ω2 we obtain
   ˆh
 ∂ ψj,−2j ,m                     2πi                                ˆ
                                                                  ∂ ψ1 −2j
               (ω1 , ω1 ) = e−    N
                                     ω1 (m1 +m2 )
                                                    · ψ2 (0) 2−2j
                                                      ˆ               (2 ω1 )
      ∂ω1                                                         ∂ω1
                                                          =1
                                                2j         ˆ
                                                         ∂ ψ2                            2πi
                             − ψ1 (2−2j ω1 )(
                               ˆ                     )        (0) −ψ1 (2−2j ω1 ) ψ2 (0)(
                                                                   ˆ             ˆ           m1 )
                                                ω1       ∂ω1                              N
                                                                                   =1
                                                           =0
                                 2πi                             ˆ
                                                               ∂ ψ1 −2j        2πi
                        = e−      N
                                     ω1 (m1 +m2 )
                                                    · 2−2j         (2 ω1 ) − (     m1 )ψ1 (2−2j ω1 )
                                                                                       ˆ
                                                               ∂ω1              N
and
   ˆv
 ∂ ψj,−2j ,m                     2πi                                     ˆ
                                                                    2j ∂ ψ2                            2πi
               (ω1 , ω1 ) = e−    N
                                     ω1 (m1 +m2 )
                                                    · ψ1 (2−2j ω1 )( )
                                                      ˆ                     (0) −ψ1 (2−2j ω1 ) ψ2 (0)(
                                                                                 ˆ             ˆ           m1 )
      ∂ω1                                                           ω1 ∂ω1                              N
                                                                                                    =1
                                                                              =0
                                 2πi                       2πi
                        = e−      N
                                     ω1 (m1 +m2 )
                                                    · −(       m1 )ψ1 (2−2j ω1 ) .
                                                                   ˆ
                                                            N
Obviously, both derivatives do not coincide, thus, our shearlet construction is not smooth for
the diagonal shearlets. If we get back to the new construction we obtain for the both partial
derivatives
                  ˆ
                ∂ Ψh j ,m                   ˆ
                                          ∂ Ψ1 −2j ˆ j ω2               2πi
                    j,−2
                               (ω) = 2−2j      (2 ω)ψ2 (2 ( − 1))e− N (ω1 m1 +ω2 m2 )
                    ∂ω1                    ∂ω1                 ω1
                                          ω2 ˆ             ˆ2
                                                         ∂ ψ j ω2           2πi
                                      − 2j 2 Ψ1 (2−2j ω)      (2 ( − 1))e− N (ω1 m1 +ω2 m2 )
                                          ω1             ∂ω1      ω1
                                        2πi                       ω2        2πi
                                      −     m1 Ψ1 (2−2j ω)ψ2 (2j ( − 1))e− N (ω1 m1 +ω2 m2 )
                                               ˆ           ˆ
                                         N                        ω1



                                                                24
and

               ˆ
             ∂ Ψv j ,m                ˆ
                                    ∂ Ψ1 −2j ˆ j ω1               2πi
                 j,−2
                         (ω) = 2−2j      (2 ω)ψ2 (2 ( − 1))e− N (ω1 m1 +ω2 m2 )
                ∂ω1                  ∂ω1                 ω2
                                   2j ˆ             ˆ
                                                  ∂ ψ 2 j ω1          2πi
                                + ( )Ψ1 (2−2j ω)       (2 ( − 1))e− N (ω1 m1 +ω2 m2 )
                                   ω2             ∂ω1       ω2
                                  2πi                       ω1        2πi
                                −     m1 Ψ1 (2−2j ω)ψ2 (2j ( − 1))e− N (ω1 m1 +ω2 m2 ) .
                                         ˆ           ˆ
                                   N                        ω2
With ω1 = ω2 we obtain further
              ˆ
            ∂ Ψh j ,m                         ˆ
                                            ∂ Ψ1 −2j                       2πi
                j,−2
                        (ω1 , ω1 ) = 2−2j       (2 ω1 , 2−2j ω1 ) ψ2 (0) e− N ω1 (m1 +m2 )
                                                                  ˆ
              ∂ω1                           ∂ω1
                                                                        =1
                                            ω2 ˆ −2j                  ˆ
                                                                    ∂ ψ2       2πi
                                   − 2j      2 Ψ1 (2 ω1 , 2−2j ω1 )      (0) e− N ω1 (m1 +m2 )
                                            ω1                      ∂ω1
                                                                           =0
                                     2πi                                     2πi
                                   −     m1 Ψ1 (2−2j ω1 , 2−2j ω1 ) ψ2 (0) e− N ω1 (m1 +m2 )
                                            ˆ                       ˆ
                                      N
                                                                             =1

and

              ˆ
            ∂ Ψv j ,m                         ˆ
                                            ∂ Ψ1 −2j                       2πi
                j,−2
                        (ω1 , ω1 ) = 2−2j       (2 ω1 , 2−2j ω1 ) ψ2 (0) e− N ω1 (m1 +m2 )
                                                                  ˆ
              ∂ω1                           ∂ω1
                                                                        =1
                                        2j                                ˆ
                                                                        ∂ ψ2       2πi
                                   +(        )Ψ1 (2−2j ω1 , 2−2j ω1 )
                                              ˆ                              (0) e− N ω1 (m1 +m2 )
                                        ω2                              ∂ω1
                                                                          =0
                                     2πi                                     2πi
                                   −     m1 Ψ1 (2−2j ω1 , 2−2j ω1 ) ψ2 (0) e− N ω1 (m1 +m2 ) .
                                            ˆ                       ˆ
                                      N
                                                                             =1

                                                                                   ˆ
It can be easily seen that both derivatives coincide if and only if ∂ ψ1 (0) = 0 since then the
                                                                    ∂ω
                                                                       2

second term vanishes. The same result is obtained for partial derivative with respect to ω2 .
Consequently, the new construction is smooth everywhere.

Remark 3.2. As we have seen the smoothness of the shearlets depends strongly on the smooth-
ness of the function v. The v we have used was constructed to provide shearlets in C 3 . The
first three derivatives at 0 and 1 should be equal to zero, i.e., v (x) = c · x3 (x − 1)3 . With
v(1) = 1 and straight forward integration one obtain c = −140 and the function v as in (1).
Higher grades of smoothness can easily be obtained by creating a new v by setting v (x) =
c · xk (x − 1)k . These shearlets would be in C k .

Note that due to our discretization t = m we have a unique handling of both the horizontal
and the vertical cone and do not have to make any adjustments for the diagonal shearlets, in
contrast to the discretization t = Aaj Ssjk m where you have different discretizations for t in



                                                      25
the horizontal and in the vertical cone. Consequently, some adjustments have to be made for
the diagonal shearlets.
Smooth shearlets are well-located in time. To show the difference we present in Fig. 9(a) the
“old” shearlet in the time domain and in comparison in Fig. 9(b) the new construction in the
time domain. The non-smooth construction is slightly worse located. The shearlet coefficients




     (a) diagonal shearlet in our construction, time        (b) diagonal shearlet in the new construction,
     domain                                                 time domain

Figure 9: diagonal shearlets in our construction and in the new, smooth construction (Time
          domain)

of, e.g., a diagonal line only show marginal differences such that for practical applications it is
irrelevant which construction is used.


3.5 Implementation details

The implementation of the shearlet transform follows very closely the details described here.
As we see in (22) and (23) for both directions of the transform the spectra of ψ and φ are
needed for all scales j and all shears s on “all” sets. We precompute these spectra to use them
for both directions.
Up to now our implementation only supports quadratic images, i.e., M = N (see Remark 3.4
for a short discussion on this topic).


3.5.1 Indexing

To reduce the number of parameters we introduce one index i which replaces the parameters κ,
j and k. We set i = 1 for the low-pass part. We continue with the lowest frequency band, i.e.,
j = 0. The different “cones” and shear parameters represent the different “directions” of the
shearlet. For illustration we reduce the shearlet to a line which is rotated counter-clockwise
around the center and assign the index i accordingly. In each frequency band we start in the



                                                       26
horizontal position, i.e., κ = h and k = 0, and increase i by one. For each k = −1, . . . , −2j + 1
we continue increasing the index by one. The line is now almost in a 45◦ angle (or a line with
slope 1). The next index is assigned to the combined shearlet “h × v” at the seam line which
covers the “diagonal” for k = −2j . We continue in the vertical cone for k = −2j + 1, . . . , 2j − 1.
Next is again the combined shearlet for k = 2j . With decreasing shear, i.e., k = 2j , . . . , 1, we
finish the indexing for this frequency-band and continue with the next one.
Summarizing we have always one index for the low-pass part. In each frequency band we have 2
indices (or shearlets) for the diagonals (k = ±2j ). In each cone we have 1+2·(2j −1) = 2j+1 −1
shearlets. For the scale j we have 2 · (2j+1 − 1) + 2 = 2j+2 shearlets. The following table lists
the number of shearlets for each j.

                                 low-pass       j=0          j=1        j=2    ···
                                    1            4            8          16    ···

With a maximum scale j0 − 1 the number of all indices η is
                         j0 −1                      j0 −1
                η =1+            2   j+2
                                           =1+4             2j = 1 + 4 · (2j0 − 1) = 2j0 +2 − 3.   (26)
                         j=0                        j=0

For each index the spectrum is computed on a grid of size N × N . We store all indices in a
three-dimensional matrix of size N × N × η. The first both components refer to the ω2 and ω1
coordinates and the third component is the respective index. Consequently, an image f of size
N × N is oversampled to an image of size N × N × η. In particular we have an oversampling
factor of η. The following table lists η for j0 = 1, . . . , 4.

                                           j0   1    2        3    4     ···
                                           η    5    13       29   61    ···

Note that j0 is the number of scales, the highest scale parameter j is always j0 − 1, i.e., we
have the scale parameters 0, . . . , j0 − 1. The function helper/shearletScaleShear provides
various possibilities to compute the index i from a and s or from j and k and vice versa. See
documentation inside the file for more information.


3.5.2 Computation of spectra

                          ˆ
We compute the spectra ψj,k,m as discrete versions of the continuous functions, i.e., we compute
the values on a finite discrete lattice Ξ of size N × N . With the functions defined as in (4) and
(6) we may not take Ξ = Ω as this would destroy the frame property. The question is how to
choose X (such that Ξ ∈ [ −X, X) N ×N ) or the distance ∆ between to grid points, respectively.
The use of Theorem 2.2 in the proof of Theorem 3.1 was not completely correct. We have
          ˆ                                   ˆ
that supp ψ1 (ω) = [ 1 , 4] = [2−1 , 22 ] and ψ1 = 1 for ω ∈ [1, 2] = [20 , 21 ]. For the scaled
                     2




                                                            27
ˆ                                 ˆ
version we further have supp ψ1 (2−2j ω) = [22j−1 , 22j+2 ] and ψ1 (2−2j ω) = 1 for ω ∈ [22j , 22j+1 ].
Consequently, we can conclude
                             
                                                                      1
                             0
                                                          for |ω| ≤ 2
                             
                                                           for 1 < |ω| < 1
                              2 π
                                   2 v(2ω − 1)
       j0 −1
                             sin
                             
                                                              2
             |ψ1 (2−2j ω)|2 = 1
              ˆ                                            for 1 ≤ |ω| ≤ 22(j0 −1)+1
                             
                              2 π
        j=0                  cos       −2j0 −1 ω − 1)     for 22(j0 −1)+1 < |ω| < 22(j0 −1)+2
                             
                             
                                  2 v(2
                              0                            for |ω| ≥ 22(j0 −1)+2 .
                             

We see that the sum is equal to 1 for a wide range of ω. As we have seen the part for |ω| < 1
where the sum increases from 0 to 1 matches with the decreasing part of the scaling function
(see (15)). But we also have a decay for |ω| > 22(j0 −1)+1 where there is no compensation to 1
since there are no higher scales. Keeping this decay would violate the frame property.
Consequently, X must be less or equal than 22(j0 −1)+1 = 22j0 −1 which implies the decay to be
“outside” the image. We set X = 22j0 −1 . Additionally, if we get back to the lowest scale it is
                                                                                   ˆ
reasonable to set ∆ ≤ 1 since otherwise there would be to less grid points in supp ψ1 .
To compute the grid and the spectra we assume that N = 2n + 1 is odd. We then have a
symmetric grid around 0, hence, we have n grid points in the negative range and n grid points
in the positive range and one grid point at 0. If N is given even we increase it by 1. After
computing grid and spectra we neglect the last row and column to retain the original image
                    −1
size. Having n = N 2 grid points for the positive range and the maximal distance between
two grid points ∆ = 1 we get
                                      N −1             1
                           X = 22j0 −1 =     =⇒ j0 = log2 (N − 1).
                                        2              2
Since j0 is the (scalar!) number of scales, we set for the number of scales (as used above)
        1
j0 := 2 log2 (N ) . In the following table we list the number of scales for all image sizes
N = 4 . . . , 1024

                 N    4, . . . , 15   16, . . . , 63   64, . . . , 255   256, . . . , 1023   1024
                                                                                                  .
                 j0         1               2                 3                  4            5

With j0 fixed we can compute the second parameter ∆. As we have seen the highest value in
the grid should be X = 22j0 −1 . For an odd N the grid ranges from [−X, X] and for an even
grid we have the range [−X, X) = [−X, X − ∆]. We assume again an odd N , thus, the interval
[−X, X] should be divided in N grid points including the bounds −X and X what leads to
N − 1 subintervals and
                                    2·X      2 · 22j0 −1    22j0
                              ∆=          =              =       .
                                   N −1       N −1         N −1
Where ∆ = 1 if N = 22j0 + 1 and ∆ > 1 , i.e., 1 < ∆ ≤ 1. Thus, for the same number of scales
                                       4      4
we obtain a better resolution with increasing image size.
                                          ˆ      ˆ
It seems a little awkward to discretize f and ψ on different lattices. However, with this
                                                                    ˆ
auxiliary construction the definition and properties of the shearlet ψ is much more convenient.
Additionally the shearlets are now independent of the parameter ∆ (or other grid properties).
Anyway, to circumvent the imperfection with two lattices we can now formerly also discretize
 ˆ                       ˆ
ψ(∆ω) on Ω instead of ψ(ω) on Ξ and obtain the same spectra.



                                                         28
Remark 3.3. The spectra depend strongly on the image size. In particular, if we reduce the
image size a bit but still have the same number of scales the resolution of the different frequency
bands varies. This may be not wanted for comparison issues. To circumvent this one could
chose the grid according to the highest image size (for the respective number of scales) and drop
the boundaries for smaller images. This would however lead to a very small high frequency band
for smaller images. In our current implementation this frequency band is as large as possible.

Remark 3.4. The theoretical results shown are valid for both square images and rectangular
images, i.e., we have I and Ω of size M ×N . However, our implementation only supports square
images. For the extension to rectangular images some questions remain. The first question
is what the “diagonal” in a discrete rectangular setting is, i.e., the “diagonal” shearlets have
to be handled carefully. More tricky is the question how to handle the different sizes in the
both directions with respect to the size of the grid especially if M      N (or M       N ) and
the number of scales. Possible are an equispaced grid in both directions and thus less scales
in one direction or the same number of scales but a non-equispaced grid what would lead to
rectangular frequency bands. Depending on the application both seems useful. We hope to
implement rectangular shearlets in a future version of the software.


3.6 Short documentation

Every file contained in the package is commented, see there for details on the arguments and
return values. Thus, we only want to comment on the two important functions.
The transform for an image A∈ CN ×N is called with the following command
   [ ST , Psi ] = s h e a r l e t T r a n s f o r m S p e c t (A , numOfScales , shearlet_spect
        , shearlet_arg )

where numOfscales, shearlet_spect and shearlet_arg are optional arguments. If only A is
given the number of scales j0 is computed from the size of A, i.e., j0 = 1 log2 (N ) and the
                                                                           2
shearlet with (4) and (6) is used. On the other hand numOfScales can be used two-fold. If
given as a scalar value it simply states the number of scales to consider. On the other hand
we can provide precomputed shearlet spectra which are then used for the computation of the
transform. Observe that the shearlet spectra only depend on the size of the image and the
number of scales, thus, they are cached and reused if the function is called with an image
of same size again. The variable ST contains the shearlet coefficients as a three-dimensional
matrix of size N × N × η with the third dimension ordered as described in section 3.5.1. Psi
                                                             ˆκ
is of same size and contains the respective shearlet spectra ψj,k,0 .
With the parameters shearlet_spect and shearlet_arg other shearlets can be used to com-
pute the spectra. Included in the software is the ’meyerShearletSpect’ as default shearlet
(based on (4) and (6)) and ’meyerNewShearletSpect’ for the new smooth construction (see
(25)). The parameter shearlet_arg is not used in both cases.
The application of other shearlet spectra is very straight forward. One the one hand one
can simply compute them externally in the matrix Psi and provide them as the parameter
numOfScales. On the other hand it is possible to provide an own function ’myShearletSpect’
(with arbitrary name) with the function head



                                               29
Psi = myShearletSpect (x ,y ,a ,s , shearlet_arg )

that computes the spectrum Psi for given (meshgrids) x and y for scalar scale a and shear
s and (optional) parameter shearlet_arg. For shearlet_arg=’scaling’ it should return
the scaling function. To obtain a reasonable transform the shearlet should provide a Parseval
frame. To check this just compute (and plot) sum(abs(Psi).^2,3)-1. The values should be
close to zero (see Fig. 11(a)). Call the shearlet transform with the new shearlet spectrum by
setting the variable sherlet_spect to myShearletSpect or whatever you chose as the name
of your shearlet function.
The inverse transform is called with the command
   A = i n v e r s e S h e a r l e t T r a n s f o r m S p e c t ( ST , Psi , shearlet_spect ,
      shearlet_arg )

for the shearlet coefficients ST. As the second argument the shearlet spectra Psi should be
provided for faster computations, if not given, the spectra are computed with default values
or given spectrum shearlet_spect.


3.7 Download & Installation

The Matlab-Version of the toolbox is available for free download at

                     http://www.mathematik.uni-kl.de/~haeuser/FFST

The zip-file contains all relevant files and folders. Simply unzip the archive and add the folder
(with subfolders!) to your Matlab-path.
The folder FFST contains the main files for the both directions of the transform. The included
shearlets are stored in the folder shearlets. The folder helper contains some helper functions.
To create simple geometric structures some functions are provided in create. See contents.m
and the comments in each file for more information.
The following listing shows the subdirectories and the respective files
  FFST/
      create/
         myBall.m
         myPicture.m
         myPicture2.m
         myRhombus.m
         mySquare.m
      helper/
         coneIndicator.m
         scalesShearsAndSpectra.m
         shearletScaleShear.m
      shearlets/
         bump.m



                                                   30
meyeraux.m
          meyerNewShearletSpect.m
          meyerScaling.m
          meyerScalingSpect.m
          meyerShearletSpect.m
          meyerWavelet.m
       inverseShearletTransformSpect.m
       shearletTransformSpect.m
If everything is installed correctly run simple_example for testing. The result should look like
Fig. 10.

                                       original image           shearlet coefficients




                                         shearlet               reconstructed image




                         Figure 10: Result of script simple_example.


3.8 Performance
To evaluate the performance and the exactness of our implementation we present the following
figures. In Fig. 11(a) we investigate the numerical tightness of the frame. The figure shows
the difference between the square sum of the shearlets and 1, i.e.,
                          j0 −1   2j                    j0 −1
                                         |ψj,k,0 |2 +
                                          ˆκ                        |ψj,k,0 |2 + |φ0 |2 − 1
                                                                     ˆh×v         ˆ
                   κ∈{h,v} j=0 k=−2j                    j=0 k=±2j

The biggest deviation is about 8 · 10−15 which is 40 times the machine precision. The second
figure Fig. 11(b) shows the difference between the original image and the back transformed
image of a random image, i.e., the exactness of the forward and backwards transform. Here
the biggest difference is about 2 · 10−15 or approximately 10 times the machine precision.
Surprisingly this is even better than the tightness of the used frame.
Next we want to compare the speed of our implementation for different image sizes N × N
for N = 2i with i = 5, . . . , 10. In the first run all the spectra are computed, thus, this run



                                                        31
−15                                                             −15
                                                    x 10                                                           x 10
                                                                                                                   2
                                                    8


                                                                                                                   1.5
                                                    6


                                                                                                                   1
                                                    4


                                                                                                                   0.5
                                                    2



                                                    0                                                              0



                                                    −2                                                             −0.5



                                                    −4                                                             −1


                                                    −6                                                             −1.5


                                                    −8




                   (a) frame tightness                                      (b) transform exactness


           Figure 11: Comparison of frame tightness and the exactness of the transform


takes significantly longer than the second and all following runs. The different run times are
shown in Fig. 12 with logarithmic scale. To get reasonable results we take the average time
over 5 “first” runs (with deleting the cache, solid line) and 5 “second runs” (dashed line). The
dotted line shows the time needed for the inverse shearlet transform. Since no spectra have to
be computed here the time is approximately the same as for the second runs of the transform
self. We compare the runtimes with ShearLab 2 , the only so far publicly available shearlet
implementation. The dash-dotted line in Fig. 12 shows that ShearLab is slightly slower then
our implementation (in the first run). Observe that no time could be measured for N = 1024
with ShearLab. In our implementation it is possible to compute the shearlet transform for
arbitrary image sizes, whereas in ShearLab the transform is only possible for given image sizes.
All tests were performed on an Intel i7 870 (Quad Core, each 2.93 GHz) with 8 GB RAM on
Ubuntu 10.04 with Matlab R2011b (64-bit).

3.9 Remarks
     1. In [16] and the respective implementation ShearLab a pseudo-polar Fourier transform
        is used to implement a discrete (or digital) shearlet transform. For the scale a and
        the shear s the same discretization is used. But for the translation t the authors set
        tj,k,m := Aaj Ssj,k m where we in contrast simply set tm := m (see (17)). Thus, their
        discrete shearlet becomes
                ˆ                                                                      −2πi    T
                                                                                              Ss     Aaj ω,m
                ψ j,k,m (ω) = ψ(Aaj Ssj,k ω)e−2πi
                              ˆ      T              ω,Aaj Ssj,k m       ˆ      T
                                                                      = ψ(Aaj Ssj,k ω)e        j,k             .
                              T
         Since the operation Ssj,k Aaj ω would destroy the pseudo-polar grid a “slight” adjustment
         is made and the exponential term is replaced by
                                                      −T     T
                                             −2πi (θ◦Ssj,k )Ss        Aaj ω,m
                                            e                   j,k

 2
     http://www.shearlab.org




                                                           32
100




                          10
              seconds




                            1




                          0.1




                         0.01




                        0.001
                             32           64              128                  256          512              1024
                                                                image size N




Figure 12: run times for different image sizes, “first run” (solid), “second” run (dashed), inverse
           (dotted), ShearLab (dashed-dotted, no time for N = 1024).

                                                    y
     with θ : R  {0} × R → R × R and θ(x, y) = (x, x ) such that
                                               −T     T                                      √ ω
                                      −2πi (θ◦Ssj,k )Ss     Aaj ω,m            −2πi   aj ω1 , aj ω2 ,m
                                  e                   j,k               =e                        1      .

     With this adjustment the last step of the shearlet transform can be obtained with a
     standard inverse fast Fourier transform (similar as in our implementation). Unfortunately
     this is no longer related to translations of the shearlets in the time domain.

  2. We are aware of our larger oversampling factor in comparison with, e.g., ShearLab. Hav-
     ing 4 scales we obtain 61 images of the same size as the original image. But since
     shearlets are designed to detect edges in images we like to avoid any down-sampling and
     keep translation invariance. A possibility to reduce the memory usage would be to use
     the compact support of the shearlets in the frequency domain and only compute them
     on a “relevant” region. But we then would also have to store the position and size of
     each region what decreases the memory savings and would make the implementation a
     lot more complicated.


Acknowledgement
The author thanks Tomas Sauer (University of Gießen) for his support at the beginning of this
project.




                                                                  33
References
 [1] E. Candes, L. Demanet, D. Donoho, and L. Ying. Fast discrete curvelet transforms.
     Multiscale Modeling Simulation, 5(3), 2006.
 [2] E. J. Candes and D. L. Donoho. Ridgelets: a key to higher-dimensional intermittency?
     Philosophical Transactions of the London Royal Society, 357:2495–2509, 1999.
 [3] O. Christensen. An Introduction to Frames and Riesz Bases. Birkhauser, 2003.
 [4] S. Dahlke, G. Kutyniok, P. Maass, C. Sagiv, H.-G. Stark, and G. Teschke. The uncertainty
     principle associated with the continuous shearlet transform. International Journal on
     Wavelets Multiresolution and Information Processing, 6:157–181, 2008.
 [5] S. Dahlke, G. Kutyniok, G. Steidl, and G. Teschke. Shearlet coorbit spaces and associated
     banach frames. Applied and Computational Harmonic Analysis, 27(2):195–214, 2009.
 [6] K. Guo, G. Kutyniok, and D. Labate. Sparse multidimensional representations using
     anisotropic dilation und shear operators. Wavelets und Splines (Athens, GA, 2005), G.
     Chen und M. J. Lai, eds., Nashboro Press, Nashville, TN, pages 189–201, 2006.
 [7] K. Guo and D. Labate. Characterization and analysis of edges using the continuous
     shearlet transform. SIAM Journal on Imaging Sciences, 2(3):959–986, 2009.
 [8] K. Guo and D. Labate. The construction of smooth parseval frames of shearlets. 2011.
 [9] S. H¨user and G. Steidl. Convex multilabel segmentation with shearlet regularization.
         a
     Preprint University of Kaiserslautern, 2011.
[10] G. Kutyniok, K. Guo, and D. Labate. Sparse multidimensional representations using
     anisotropic dilation and shear operators. Wavelets und Splines (Athens, GA, 2005), G.
     Chen und MJ Lai, eds., Nashboro Press, Nashville, TN, pages 189–201, 2006.
[11] G. Kutyniok and W. Lim. Image separation using wavelets and shearlets. Curves and
     Surfaces (Avignon, France, 2010), Lecture Notes in Computer Science, to appear.
[12] D. Labate, G. Easley, and W. Lim. Sparse directional image representations using the
     discrete shearlet transform. Applied and Computational Harmonic Analysis, 25(1):25–46,
     2008.
[13] W. Lim, G. Kutyniok, and X. Zhuang. Digital shearlet transforms. Shearlets: Multiscale
     Analysis for Multivariate Data, to appear.
[14] S. Mallat. A Wavelet Tour of Signal Processing: The Sparse Way. Academic Press, 2008.
[15] Y. Meyer. Oscillating Patterns in Image Processing and Nonlinear Evolution Equations,
     volume 22. AMS, Providence, 2001.
[16] M. Shahram, G. Kutyniok, and X. Zhuang. Shearlab: A rational design of a digital
     parabolic scaling algorithm. submitted.
[17] S. Yi, D. Labate, G. Easley, and H. Krim. A shearlet approach to edge analysis and
     detection. Image Processing, IEEE Transactions on, 18(5):929–941, 2009.




                                             34

More Related Content

PDF
Location In Wsn
PDF
FDTD-FEM Hybrid
PDF
N system physics
PDF
Java Programming Notes for Beginners by Arun Umrao
PDF
Principles of Linear Motion of Objects - Physics - Explained by Arun Umrao
PDF
MSc Thesis_Francisco Franco_A New Interpolation Approach for Linearly Constra...
Location In Wsn
FDTD-FEM Hybrid
N system physics
Java Programming Notes for Beginners by Arun Umrao
Principles of Linear Motion of Objects - Physics - Explained by Arun Umrao
MSc Thesis_Francisco Franco_A New Interpolation Approach for Linearly Constra...

What's hot (18)

PDF
Matconvnet manual
PDF
Modern introduction to_grid-generation
PDF
David_Mateos_Núñez_thesis_distributed_algorithms_convex_optimization
PDF
Calculus Research Lab 1: Derivatives
PDF
Principle of Angular Motion - Physics - An Introduction by Arun Umrao
PDF
Fundamentals of computational_fluid_dynamics_-_h._lomax__t._pulliam__d._zingg
PDF
KINEMATICS, TRAJECTORY PLANNING AND DYNAMICS OF A PUMA 560 - Mazzali A., Patr...
PDF
Principle of Derivative Calculus - Differential Calculus - An Introduction by...
PDF
Applications of the PMP. Cell Formation in Group Technology
PDF
Principle of Integral Applications - Integral Calculus - by Arun Umrao
PDF
Best of numerical
PDF
07 jpnt fzk_f4_module1
PDF
Math Modules (DRAFT)
PDF
Elementray college-algebra-free-pdf-download-olga-lednichenko-math-for-colleg...
PDF
Efficiency Optimization of Realtime GPU Raytracing in Modeling of Car2Car Com...
PDF
Triangulation methods Mihaylova
Matconvnet manual
Modern introduction to_grid-generation
David_Mateos_Núñez_thesis_distributed_algorithms_convex_optimization
Calculus Research Lab 1: Derivatives
Principle of Angular Motion - Physics - An Introduction by Arun Umrao
Fundamentals of computational_fluid_dynamics_-_h._lomax__t._pulliam__d._zingg
KINEMATICS, TRAJECTORY PLANNING AND DYNAMICS OF A PUMA 560 - Mazzali A., Patr...
Principle of Derivative Calculus - Differential Calculus - An Introduction by...
Applications of the PMP. Cell Formation in Group Technology
Principle of Integral Applications - Integral Calculus - by Arun Umrao
Best of numerical
07 jpnt fzk_f4_module1
Math Modules (DRAFT)
Elementray college-algebra-free-pdf-download-olga-lednichenko-math-for-colleg...
Efficiency Optimization of Realtime GPU Raytracing in Modeling of Car2Car Com...
Triangulation methods Mihaylova
Ad

Similar to Ffst (20)

PDF
TR-CIS-0420-09 BobZigon
PDF
bachelors_thesis_stephensen1987
PDF
Climb – Chaining Operators - Report
PDF
Honours_Thesis2015_final
PDF
chapter 2.pdf
PDF
G5_31352_Final_Report (3)
PDF
PDF
AERO390Report_Xiang
PDF
Convex optimization user guide
PDF
Solar tracking system
PDF
Algorithmic Mathematics.
PDF
Machine learning and its parameter is discussed here
PDF
MSC-2013-12
PDF
Final Report
PDF
Reading Materials for Operational Research
PDF
Internship Report: Interaction of two particles in a pipe flow
PDF
20120112-Dissertation7-2
PDF
PDF
Donhauser - 2012 - Jump Variation From High-Frequency Asset Returns
PDF
Wavelet ug
TR-CIS-0420-09 BobZigon
bachelors_thesis_stephensen1987
Climb – Chaining Operators - Report
Honours_Thesis2015_final
chapter 2.pdf
G5_31352_Final_Report (3)
AERO390Report_Xiang
Convex optimization user guide
Solar tracking system
Algorithmic Mathematics.
Machine learning and its parameter is discussed here
MSC-2013-12
Final Report
Reading Materials for Operational Research
Internship Report: Interaction of two particles in a pipe flow
20120112-Dissertation7-2
Donhauser - 2012 - Jump Variation From High-Frequency Asset Returns
Wavelet ug
Ad

Ffst

  • 1. Fast Finite Shearlet Transform: a tutorial S¨ren H¨user∗ o a February 8, 2012 Contents 1 Introduction 1 2 Shearlet transform 3 2.1 Some functions and their properties . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 The continuous shearlet transform . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Shearlets on the cone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 Scaling function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Computation of the shearlet transform 13 3.1 Finite discrete shearlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2 A discrete shearlet frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3 Inversion of the shearlet transform . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4 Smooth shearlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.5 Implementation details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5.1 Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5.2 Computation of spectra . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.6 Short documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.7 Download & Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.8 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.9 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1 Introduction In recent years, much effort has been spent to design directional representation systems for images such as curvelets [1], ridgelets [2] and shearlets [10] and corresponding transforms (this list is not complete). Among these transforms, the shearlet transform stands out since it stems from a square-integrable group representation [4] and has the corresponding useful ∗ University of Kaiserslautern, Dept. of Mathematics, Kaiserslautern, Germany, [email protected] 1
  • 2. 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]. In addition shearlets provide an optimally sparse approximation in the class of piecewise smooth functions with C 2 singularity curves, i.e., 2 f − fN L2 ≤ CN −2 (log N )3 as N → ∞, where fN is the nonlinear shearlet approximation of a function f from this class obtained by taking the N largest shearlet coefficients in absolute value. Shearlets have been applied to a wide field of image processing tasks, see, e.g., [7, 11, 12, 17]. In [9] the authors showed how the directional information encoded by the shearlet transform can be used in image segmentation. Fig 1 illustrates the directional information in the shearlet coefficients. To this end, we introduced 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 http://www.mathematik.uni-kl.de/~haeuser/FFST/ In analogy with other transforms we named the software FFST – Fast Finite Shearlet Transform. The package provides a fast implementation of the finite (discrete) shearlet transform. (a) Forms with different edge ori- (b) Shearlet coefficients (c) Sum of shearlet coefficients 1 1 entations for a = 64 and s = −1 for a = 64 for all s Figure 1: Shearlet coefficients can detect edges with different orientations. This tutorial is organized as follows: In Section 2 we introduce the continuous shearlet trans- form 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 1 , see [16]. 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 1 http://www.shearlab.org 2
  • 3. 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 Shearlet transform In this section we combine some mostly well-known results from different authors. To make this paper self-contained and to obtain a complete documentation we also include the proofs. The functions where taken from [15, 14]. The construction of the shearlets is based on ideas from [12] and [13]. The shearlet transform and the concept of shearlets n the cone was introduced in [6]. 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. The following results are taken basically from [12] and [13]. We start by defining an auxiliary function v : R → R as  0  for x < 0 v(x) := 35x4 − 84x5 + 70x6 − 20x7 for 0 ≤ x ≤ 1 (1)  1 for x > 1.  This function was proposed by Y. Meyer in [15, 14]. Other choices of v are possible, in [16] the simpler function  0  for x < 0  for 0 ≤ x ≤ 1  2 2x v(x) = 2 2 1 1 − 2(1 − x) for 2 ≤ x ≤ 1    1 for x > 1 was chosen. As we will see the useful properties of v for our purposes are its symmetry around ( 1 , 2 ) and the values at 0 and 1 with increase in between. A plot of v is shown in Fig. 2(a). 2 1 Next we define the function b : R → R with  sin( π v(|ω| − 1))  2 for 1 ≤ |ω| ≤ 2 π 1 b(ω) := cos( 2 v( 2 |ω| − 1)) for 2 < |ω| ≤ 4 (2)  0 otherwise,  where b is symmetric, positive, real and supp b = [−4, −1] ∪ [1, 4]. We further have that b(±2) = 1. A plot of b is shown in Fig. 2(b). Because of the symmetry we restrict ourselves in the following analysis to the case ω > 0. Let bj := b(2−j ·), j ∈ N0 , thus, supp bj = 2j [1, 4] = [2j , 2j+2 ] and bj (2j+1 ) = 1. Observe that bj is increasing for ω ∈ [2j , 2j+1 ] and decreasing for ω ∈ [2j+1 , 2j+2 ]. Obviously all these properties 3
  • 4. 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 −0.5 0 0.5 1 1.5 −5 −4 −3 −2 −1 0 1 2 3 4 5 (a) v(x) (b) solid: b(ω), dashed: b(2ω) Figure 2: The two auxiliary functions v in (1) and b in (2) carry over to b2 . These facts are illustrated in the following diagram where j stands for the increasing function and for decreasing function. ω 2j 2j+1 2j+2 2j+3 bj 0 1 0 bj+1 0 1 0 For j1 = j2 the overlap between the support of b21 and b22 is empty except for |j1 −j2 | = 1. Thus, j j for b2 and b2 we have that supp b2 ∩ supp b2 = [2j+1 , 2j+2 ]. In this interval b2 is decreasing j j+1 j j+1 j −j with b2 = cos2 ( π v( 2 2 |ω| − 1)) and b2 is increasing with b2 = sin2 ( π v(2−(j+1) |ω| − 1)). We j 2 j+1 j+1 2 get for their sum in this interval π π b2 (ω) + b2 (ω) = cos2 j j+1 v(2−j−1 |ω| − 1) + sin2 v(2−j−1 |ω| − 1) = 1. 2 2 Hence, we can summarize  b2  j for ω < 2j+1 2 2 (bj + bj+1 )(ω) = 1 for 2j+1 ≤ ω ≤ 2j+2   2 bj+1 for ω > 2j+2 . Consequently, we have the following lemma Lemma 2.1. For bj defined as above, the relations ∞ ∞ b2 (ω) = j b2 (2−j ω) = 1 for |ω| ≥ 1 j=−1 j=−1 and  ∞ 0  for |ω| ≤ 1 2 2 bj (ω) = sin2 π 2 v(2ω − 1) for 1 < |ω| < 1 2 (3)  j=−1  1 for |ω| ≥ 1 hold true. 4
  • 5. Proof. In each interval [2j+1 , 2j+2 ] only bj and bj+1 , j ≥ −1, are not equal to zero. Thus, it is sufficient to prove that b2 + b2 ≡ 1 in this interval. We get that j j+1 (b2 + b2 )(ω) = j j+1 b2 (2−j ω ) + b2 (2−j−1 ω ) ∈ 2−j [2j+1 , 2j+2 ] = [2, 4] ∈ 2−j−1 [2j+1 , 2j+2 ] = [1, 2] π 1 −j π = cos2 v( · 2 ω − 1) + sin2 v(2−j−1 ω − 1) 2 2 2 π π = cos2 v(2−j−1 ω − 1) + sin2 v(2−j−1 ω − 1) 2 2 = 1. The second relation follows by straightforward computation. Recall that the Fourier transform F : L2 (R2 ) → L2 (R2 ) and the inverse transform are defined by ˆ Ff (ω) = f (ω):= f (t)e−2πi ω,t dt, R2 F −1 f (ω) = f (t) = ˆ f (ω)e2πi ˆ ω,t dω. R2 Now we define the function ψ1 : R → R via its Fourier transform as ˆ ψ1 (ω) := b2 (2ω) + b2 (ω). (4) Fig. 3(a) shows the function. The following theorem states an important property of ψ1 . ˆ ˆ 1 Theorem 2.2. The above defined function ψ1 has supp ψ1 = [−4, − 1 ] ∪ [ 2 , 4] and fulfills 2 |ψ1 (2−2j ω)|2 = 1 ˆ for |ω| > 1. j≥0 Proof. The assumption on the support follows from the definition of b. For the sum we have ∞ |ψ1 (2−2j ω)|2 = ˆ b2 (2 · 2−2j ω) + b2 (2−2j ω) j≥0 j=0 ∞ = b2 (2−2j+1 ω) + b2 (2−2j ω), j=0 where −2j + 1 ∈ {+1, −1, −3, . . .} (odd) and −2j ∈ {0, −2, −4, . . .} (even). Thus, by Lemma 2.1, we get ∞ |ψ1 (2−2j ω)|2 = ˆ b2 (2−j ω) j≥0 j=−1 = 1. 5
  • 6. By (3) we have that  0  for |ω| ≤ 1 2 ˆ −2j 2 |ψ1 (2 ω)| = sin2 π 2 v(2ω − 1) for 1 < |ω| < 1 2 (5)  j≥0  1 for |ω| ≥ 1. Next we define a second function ψ2 : R → R – again in the Fourier domain – by ˆ v(1 + ω) for ω ≤ 0 ψ2 (ω) := (6) v(1 − ω) for ω > 0. ˆ ˆ The function ψ2 is shown in Fig. 3(b). Before stating a theorem about the properties of ψ2 we need the following two auxiliary lemmas. Recall that a function f : R → R is point symmetric 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 −5 −4 −3 −2 −1 0 1 2 3 4 5 −1.5 −1 −0.5 0 0.5 1 1.5 ˆ (a) ψ1 ˆ (b) ψ2 ˆ ˆ Figure 3: The functions ψ1 in (4) and ψ2 in (6) with respect to (a, b) if and only if f (a + x) − b = −f (a − x) + b ∀ x ∈ R. With the substitution x + a → x this is equivalent to f (x) + f (2a − x) = 2b ∀ x ∈ R. Thus, for a function symmetric to (0.5, 0.5) we have that f (x) + f (1 − x) = 1. Lemma 2.3. The function v in (1) is symmetric with respect to (0.5, 0.5), i.e., v(x)+v(1−x) = 1 ∀ x ∈ R. Proof. The symmetry is obvious for x < 0 and x > 1. It remains to prove the symmetry for 6
  • 7. 0 ≤ x ≤ 1, we have v(x) + v(1 − x) = 35x4 − 84x5 + 70x6 − 20x7 + 35(1 − x)4 − 84(1 − x)5 + 70(1 − x)6 − 20(1 − x)7 = 35x4 − 84x5 + 70x6 − 20x7 4 5 6 7 4 5 6 7 + 35 (−x)k − 84 (−x)k + 70 (−x)k − 20 (−x)k k k k k k=0 k=0 k=0 k=0 = 1. ˆ Note that ψ2 is axially symmetric to the y-axis. ˆ Lemma 2.4. The function ψ2 fulfills ˆ2 ˆ2 ˆ2 ψ2 (ω − 1) + ψ2 (ω) + ψ2 (ω + 1) = 1 for |ω| ≤ 1. Proof. We have that ˆ2 v(1 + ω) for ω ≤ 0 ψ2 (ω) = v(1 − ω) for ω > 0. Consequently we get for 0 ≤ ω ≤ 1 that ˆ2 ˆ2 ˆ2 ψ2 (ω − 1) + ψ2 (ω) + ψ2 (ω + 1) = v(1 + ω − 1) + v(1 − ω) + v(1 − ω − 1) = v(ω) + v(1 − ω) + v(−ω) =0 = 1, and similarly we obtain for −1 ≤ ω < 0 that ˆ2 ˆ2 ˆ2 ψ2 (ω − 1) + ψ2 (ω) + ψ2 (ω + 1) = v(1 + ω − 1) + v(1 − ω) + v(1 − ω − 1) = v(−|ω|) +v(1 − |ω|) + v(|ω|) =0 = 1. As can be seen in the proof the sum reduces in both cases to two (different) summands, in particular ˆ2 ˆ2 ψ2 (ω − 1) + ψ2 (ω) for 0 ≤ ω ≤ 1 ˆ2 ˆ2 ˆ2 1 = ψ2 (ω − 1) + ψ2 (ω) + ψ2 (ω + 1) = ˆ2 ˆ2 ψ2 (ω) + ψ2 (ω + 1) for − 1 ≤ ω < 0. With these lemmas we can prove the following theorem. 7
  • 8. ˆ Theorem 2.5. The function ψ2 defined in (6) fulfills 2j |ψ2 (k + 2j ω)|2 = 1 ˆ for |ω| ≤ 1, j ≥ 0. (7) k=−2j Proof. With ω := 2j ω the assertion in (7) becomes 2j |ψ2 (k + ω )|2 = 1 ˆ ˜ for |˜ | ≤ 2j , j ≥ 0. ω k=−2j ˆ For a fixed (but arbitrary) ω ∈ [−2j , 2j ] ⊂ R we need that −1 ≤ ω + k ≤ 1 for ψ2 (ω + k) = 0 ˆ since supp ψ2 = [−1, 1]. Thus, for ω ∈ Z, only the summands for k ∈ {−ω − 1, −ω , −ω + 1} ˆ do not vanish. But for k = −ω ± 1 we have that ω + k = ±1 and ψ2 (±1) = 0. In this case the entire sum reduces to one summand k = −ω such that 2j |ψ2 (k + ω )|2 = |ψ2 (−ω + ω )|2 = |ψ2 (0)|2 = 1. ˆ ˆ ˆ k=−2j If ω ∈ Z and ω > 0 the only nonzero summands appear for k ∈ { ω , ω − 1}. Thus, with 0 < r+ := ω − ω < 1, we get 2j |ψ2 (k + ω )|2 = |ψ2 (− ω ˆ ˆ + ω )|2 + |ψ2 (− ω ˆ − 1 + ω )|2 = |ψ2 (r+ )|2 + |ψ2 (1 − r+ )|2 ˆ ˆ k=−2j which is equal to 1 by Lemma 2.4. Analogously we obtain for ω ∈ Z, ω < 0 that the remaining nonzero summands are those for k ∈ { ω , ω + 1}. With −1 < r− := ω + ω < 0 we get 2j |ψ2 (k + ω )|2 = |ψ2 ( ω ˆ ˆ + ω )|2 + |ψ2 ( ω ˆ + 1 + ω )|2 = |ψ2 (r− )|2 + |ψ2 (1 + r− )|2 . ˆ ˆ k=−2j ˆ ˆ By Lemma 2.4 and since ψ2 (x) = ψ2 (−x), we finally obtain |ψ2 (r− )|2 + |ψ2 (1 + r− )|2 = |ψ2 (|r− |)|2 + |ψ2 (1 − |r− |)|2 = 1. ˆ ˆ ˆ ˆ 2.2 The continuous shearlet transform For the shearlet transform we need a scaling (or dilation) matrix Aa and a shear matrix Ss defined by a 0 1 s Aa = √ , a ∈ R+ , Ss = , s ∈ R. 0 a 0 1 8
  • 9. The shearlets ψa,s,t emerge by dilation, shearing and translation of a function ψ ∈ L2 (R2 ) as follows 3 ψa,s,t (x) :=a− 4 ψ(A−1 Ss (x − t)) a −1 (8) 1 s 3 −a =a− 4 ψ a 1 (x − t) . 0 √ a ˆ ˆ ˆ ˆ ω2 We assume that ψ can be written as ψ(ω1 , ω2 ) = ψ1 (ω1 )ψ2 ( ω1 ). Consequently, we obtain for the Fourier transform 1 s 3 −a ψa,s,t (ω) = a− 4 ψ ˆ a 1 (· − t) ˆ (ω) 0 √ a 1 s 3 −a = a− 4 e−2πi ω,t ψ a 1 · ˆ (ω) 0 √ a 3 3 a 0 = a− 4 e−2πi ω,t (a− 2 )−1 ψ ˆ √ √ ω s a a 3 √ = a 4 e−2πi ω,t ˆ ψ aω1 , a(sω1 + ω2 ) 3 1 ω2 = a 4 e−2πi ω,t ψ1 (aω1 ) ψ2 a− 2 ˆ ˆ +s . ω1 The shearlet transform SHψ (f ) of a function f ∈ L2 (R) can now be defined as follows SHψ (f )(a, s, t) := f, ψa,s,t ˆ ˆ = f , ψa,s,t = ˆ ˆ f (ω)ψa,s,t (ω)dω R2 3 1 ω2 =a 4 f (ω)ψ1 (aω1 )ψ2 a− 2 ˆ ˆ ˆ +s e2πi ω,t dω R2 ω1 3 1 ω2 =a 4 F −1 f (ω)ψ1 (aω1 )ψ2 ˆ ˆ ˆ a− 2 +s (t). ω1 The same formula can be derived by interpreting the shearlet transform as a convolution with the function ψa,s (x) = ψ(−A−1 Ss x) and using the convolution theorem. a −1 The shearlet transform is invertible if the function ψ fulfills the admissibility property ˆ |ψ(ω1 , ω2 )|2 dω1 dω2 < ∞. R2 |ω1 |2 2.3 Shearlets on the cone Up to now we have nothing said about the support of our shearlet ψ. We use band-limited shearlets, thus, we have compact support in the Fourier domain. In the previous section we ˆ ˆ ˆ assumed that ψ(ω1 , ω2 ) = ψ1 (ω1 )ψ2 ( ω2 ), where we now define ψ1 and ψ2 as in (4) and (6) ω1 9
  • 10. ˆ 1 ˆ respectively. With the results shown for ψ1 with |ω1 | ≥ 2 and ψ2 for |ω| < 1, i.e., |ω2 | < |ω1 |, it is natural to define the area 1 C h := {(ω1 , ω2 ) ∈ R2 : |ω1 | ≥ , |ω2 | < |ω1 |}. 2 We will refer to this set as the horizontal cone (see Fig. 4). Analogously we define the vertical cone as 1 C v := {(ω1 , ω2 ) ∈ R2 : |ω2 | ≥ , |ω2 | > |ω1 |}. 2 To cover all R2 we define two more sets 1 1 C × := {(ω1 , ω2 ) ∈ R2 : |ω1 | ≥ , |ω2 | ≥ , |ω1 | = |ω2 |}, 2 2 C 0 := {(ω1 , ω2 ) ∈ R2 : |ω1 | < 1, |ω2 | < 1}, where C × is the “intersection” (or the seam lines) of the two cones and C 0 is the “low frequency” part. Altogether R2 = C h ∪ C v ∪ C × ∪ C 0 with an overlapping domain 1 1 C := (−1, 1)2 (− , )2 . (9) 2 2 C× v C× C C0 Ch 1 2 1 h C Cv Figure 4: The sets C h , C v , C × and C 0 Obviously the shearlet ψ defined above is perfectly suited for the horizontal cone. For each set C κ , κ ∈ {h, v, ×}, we define a characteristic function χC κ (ω) which is equal to 1 for ω ∈ C κ and 0 for ω ∈ C κ . We need these characteristic functions as cut-off functions at the seam lines. We set ˆ ˆ ˆ ˆ ω2 χ h . ψ h (ω1 , ω2 ) := ψ(ω1 , ω2 ) = ψ1 (ω1 )ψ2 (10) C ω1 10
  • 11. ˆ For the non-dilated and non-sheared ψ h the cut-off function has no effect since the support of ˆh is completely contained in C h . But after the dilation and shearing we have ψ 1 4 ω2 √ ˆ supp ψa,s,0 ⊆ (ω1 , ω2 ) : ≤ |ω1 | ≤ , s + ≤ a . 2a a ω1 The question arises for which a and s this set remains a subset of the horizontal cone. For 1 ˆ a > 1 we have that ω1 ≤ 2 is in supp ψa,s,0 but not in C h . Thus, we can restrict ourselves to a ≤ 1. ˆ Having a fixed, the second condition for supp ψa,s,0 becomes √ ω1 √ − a≤s+ ≤ a, ω2 √ ω1 √ − a−s≤ ≤ a − s. (11) ω2 √ √ Since ω1 ≤ 1 we have for the right condition a − s ≤ 1 and for the left condition − a − s ≥ ω2 −1, hence, we can conclude √ √ −1 + a ≤ s ≤ 1 − a. ˆ For such s we have supp ψa,s,0 ⊆ C h , in particular the indicator function is not needed for these s (with respective a). One might ask for which s (depending on a) the indicator function cuts ˆ off only parts of the function, i.e., supp ψa,s,0 ∩ C h = ∅. We take again (11) but now we do not ω1 use a condition to guarantee that ω2 < 1 but rather ask for a condition that allows ω1 < 1. ω2 √ √ Thus, the right bound a − s should be larger than −1 and the left bound − a − s should be smaller than 1. Consequently, we obtain √ √ −1 − a ≤ s ≤ 1 + a. √ ˆ √ √ Summing up, we have for |s| ≤ 1 − a that supp ψa,s,0 ⊆ C h . For 1 − a < |s| < 1 + a parts ˆ √ of supp ψa,s,0 are also in C v , which are cut off. For |s| > 1 + a the whole shearlet is set to zero ˆ by the characteristic function. If we get back to the definition of ψa,s,0 we see that the vertical range is determined by ψ ˆ2 . By definition ψ2 is axially symmetric with respect to the y-axis, in ˆ 1 ˆ other words the “center” of ψ2 is taken for the argument equal to zero, i.e., a− 2 ( ω1 + s) = 0. It ω2 ˆ follows that for |s| = 1 the center of ψa,s,0 is at the seam-lines. Thus, for |s| = 1 approximately one half of the shearlet is cut off whereas the other part remains. For larger s more would be cut. Consequently, we restrict ourselves to |s| ≤ 1. Analogously the shearlet for the vertical cone can be defined, where the roles of ω1 and ω2 are interchanged, i.e., ˆ ˆ ˆ ˆ ω1 χC v . ψ v (ω1 , ω2 ) := ψ(ω2 , ω1 ) = ψ1 (ω2 )ψ2 (12) ω2 All the results from above apply to this setting. For (ω1 , ω2 ) ∈ C × , i.e., |ω1 | = |ω2 |, both definitions coincide and we define ψ × (ω1 , ω2 ) := ψ(ω1 , ω2 )χC × . ˆ ˆ (13) ˆ ˆ ˆ The shearlets ψh , ψv (and ψ × ) are called shearlets on the cone. This concept was introduced in [10]. We have functions to cover three of the four parts of R2 . The remaining part C 0 will be handled with a scaling function which is presented in the next section. 11
  • 12. 2.4 Scaling function For the center part C 0 (or low-frequency part) we define another set of functions. To this end, we need the following so-called “mother”-scaling function  1 1  for |ω| ≤ 2 ϕ(ω) := cos( π v(2|ω| − 1)) for 1 < |ω| < 1 2 2  0 otherwise.  The full scaling function φ can then be defined as follows ˆ ϕ(ω1 ) for |ω1 | < 1, |ω2 | ≤ |ω1 | φ(ω1 , ω2 ) := (14) ϕ(ω2 ) for |ω2 | < 1, |ω1 | < |ω2 |  1   2 1 for |ω1 | ≤ 1 , |ω2 | ≤ 2 cos( π v(2|ω | − 1)) for 1 < |ω | < 1, |ω | ≤ |ω |  2 1 2 1 2 1 = 1 cos( π v(2|ω2 | − 1)) for 2 < |ω2 | < 1, |ω1 | < |ω2 |  2   0 otherwise. ˆ The decay of the scaling function φ (respectively ϕ) is chosen to match perfectly with the ˆ1 . For |ω| ∈ [ 1 , 1] we have by (5), that increase of ψ 2 π π |ψ1 (ω)|2 + |ϕ(ω)|2 = sin2 ˆ v(2|ω| − 1) + cos2 v(2|ω| − 1) = 1. (15) 2 2 Remark 2.6. Observe that in our setting it seems not to be useful to define the scaling function as a simple tensor product, namely ˆ Φ(ω) :=ϕ(ω1 )ϕ(ω2 )  1  for |ω1 | ≤ 1 , |ω2 | ≤ 1 2 2  cos( π v(2|ω1 | − 1)) for 2 < |ω1 | < 1, |ω2 | ≤ 1 1    2 2 = cos( π v(2|ω2 | − 1)) 2 for 2 < |ω2 | < 1, |ω1 | ≤ 1 1 2 (16) for 1 < |ω1 | ≤ 1, 1 < |ω2 | ≤ 1  cos( π v(2|ω1 | − 1)) cos( π v(2|ω2 | − 1))     2 2 2 2 0 otherwise.  Fig. 5 shows the difference between both scaling functions. Obviously, the first scaling function aligns much better with the cones. Recently in [8] a new shearlet construction was introduced which is based on the scaling function in (16). We discuss the new construction in Section 3.4. ˆ Remark 2.7. On the other hand it is possible to rewrite the definition of the original φ as a ˆh and a vertical scaling shearlet-like tensor product. We obtain a horizontal scaling function φ ˆ function φv as follows ˆ ω2 ˆ ω1 φh (ω1 , ω2 ) := ϕ(ω1 )ϕ and φv (ω1 , ω2 ) := ϕ(ω2 )ϕ , 2ω1 2ω2 where  1  for |ω2 | ≤ |ω1 | ω2  π ω2 ϕ = cos 2v ω1 −1 for |ω1 | < |ω2 | < 2|ω1 | 2ω1   0 otherwise. 12
  • 13. 1.5 1.5 1 1 0.5 0.5 0 0 −0.5 −0.5 −1 −1 −1.5 −1.5 −1.5 −1 −0.5 0 0.5 1 1.5 −1.5 −1 −0.5 0 0.5 1 1.5 ˆ (a) φ(ω) ˆ (b) Φ(ω) Figure 5: The different scaling functions in (14) and (16). ω Thus, ϕ( 2ω21 ) is a continuous extension of the characteristic function of the horizontal cone Ch. We set φa,s,t (x) = φt (x) = φ(x − t). Note that there is neither scaling nor shearing for the scaling function, only a translation. Thus, the index “a, s, t” from the shearlet ψ reduces to “t”. We further obtain φt (ω) = e−2πi ˆ ω,t ˆ φ(ω). The transform can be obtained similar as before, namely SHφ (f )(a, s, t) = f, φt . 3 Computation of the shearlet transform In the following, we consider digital images as functions sampled on the grid {( m1 , m2 ) : M N (m1 , m2 ) ∈ I} with I := {(m1 , m2 ) : m1 = 0, . . . , M − 1, m2 = 0, . . . N − 1}. The discrete shearlet transform is basically known, but in contrast to the existing literature we present here a fully discrete setting. That is, we do not only discretize the involved parameters a, s and t but also consider only a finite number of discrete translations t. Additionally, our setting discretizes the translation parameter t on a rectangular grid and independent of the dilation and shearing parameter. See Section 3.9 for further remarks on this topic. 13
  • 14. 3.1 Finite discrete shearlets 1 Let j0 := 2 log2 N be the number of considered scales. To obtain a discrete shearlet trans- form, we discretize the scaling, shear and translation parameters as 1 aj := 2−2j = , j = 0, . . . , j0 − 1, 4j sj,k := k2−j , −2j ≤ k ≤ 2j , m1 m2 tm := , , m ∈ I. (17) M N With these notations our shearlets becomes ψj,k,m (x) := ψaj ,sj,k ,tm (x) = ψ(A−1 Ssj,k (x − tm )). aj −1 3 Observe that compared to the continuous shearlets defined in (8) we omit the factor a− 4 . In the Fourier domain we obtain ω2 −2πi ω,(m1 /M ) ψj,k,m (ω) = ψ(ATj Ssj,k ω)e−2πi ˆ ˆ a T ω,tm = ψ1 4−j ω1 ψ2 2j ˆ ˆ +k e m /N 2 , ω ∈ Ω, ω1 M M N N where Ω := (ω1 , ω2 ) : ω1 = − 2 ,..., 2 − 1, ω2 = − 2 ,..., 2 −1 . (a) Shearlet in Fourier domain (b) Same shearlet in time domain (zoomed) for a = 1 and s = − 1 4 2 Figure 6: Shearlet in Fourier and time domain. By definition we have a ≤ 1 and |s| ≤ 1. Therefore we see that we have a cut off due to the cone boundaries only for |k| = 2j where |s| = 1. For both cones we have for |s| = 1 two “half” shearlets with a gap at the seam line. None of the shearlets are defined on the seam line C × . To obtain “full” shearlets at the seam lines we “glue” the three parts together, thus, we define for |k| = 2j a sum of shearlets ˆh×v ˆh ˆv ˆ× ψj,k,m := ψj,k,m + ψj,k,m + ψj,k,m . 14
  • 15. We define the discrete shearlet transform as   f, φm  for κ = 0, SH(f )(κ, j, k, m) := κ f, ψj,k,m for κ ∈ {h, v}, h×v  f, ψj,k,m for κ = ×, |k| = 2j .  where j = 0, . . . , j0 − 1, −2j + 1 ≤ k ≤ 2j − 1 and m ∈ I if not stated in another way. The shearlet transform can be efficiently realized by applying the fft2 and its inverse ifft2 which compute the following discrete Fourier transforms with O(N 2 log N ) arithmetic operations: −2πi ω,(m1 /M ) ω1 m 1 ω m ˆ f (ω) = f (m)e m /N 2 = f (m)e−2πi( M + 2 2 N ), ω ∈ Ω, m∈I m∈I 1 2πi ω,(m1 /M ) 1 ω1 m 1 ω m f (m) = ˆ f (ω)e m /N 2 = f (ω)e2πi( ˆ M + 2 2 N ), m ∈ I. MN MN ω∈Ω ω∈Ω We have the Plancherel formula 1 ˆ f, g = f, g . ˆ MN ˆ Thus, the discrete shearlet transform can be computed for κ = h as follows (observe that ψ is real): h 1 ˆ ˆh SH(f )(h, j, k, m) = f, ψj,k,m = f , ψj,k,m MN 1 −2πi ω,(m1 /M ) ˆ −j ˆ = e m2 /N ψ(4 ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 ) MN ω∈Ω 1 2πi ω,(m1 /M ) = ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )e ˆ ˆ m /N 2 . MN ω∈Ω ˆ ˆ With gj,k (ω) := ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 ) this can be rewritten as ˆ 1 2πi ω,(m1 /M ) SH(f )(h, j, k, m) = gj,k (ω)e ˆ m /N 2 . MN ω∈Ω Since gj,k (ω) ∈ CM ×N the shearlet transform can be computed as an inverse FFT of gj,k , thus ˆ ˆ SH(f )(h, j, k, m) = ifft2(ˆj,k ) g = ifft2(ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )). ˆ ˆ (18) For the vertical cone, i.e., κ = v, we obtain SH(f )(v, j, k, m) = ifft2(ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )f (ω1 , ω2 )) ˆ ˆ (19) and for the seam line part with |k| = 2j we use the “glued” shearlets and obtain SH(f )ψh×v (j, k, m) = ifft2(ψ h×v (4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )). ˆ ˆ (20) 15
  • 16. ˆ ˆ Finally for the low-pass with g0 (ω1 , ω2 ) := φ(ω1 , ω2 )f (ω1 , ω2 ) the transform can be obtained ˆ similar as before, namely SHφ (f )(m) = f, φm 1 ˆ ˆ = f , φm MN 1 −2πi ω,(m1 /M ) ˆ ˆ = e m /N 2 φ(ω1 , ω2 )f (ω1 , ω2 ) MN ω∈Ω 1 +2πi ω,(m1 /M ) ˆ ˆ = e m /N 2 φ(ω1 , ω2 )f (ω1 , ω2 ) MN ω∈Ω 1 +2πi ω,(m1 /M ) = e m /N 2 g0 (ω) ˆ MN ω∈Ω = ifft2(ˆ0 ) g ˆ ˆ = ifft2(φ(ω1 , ω2 )f (ω1 , ω2 )). (21) The complete shearlet transform is the combination of (18) to (21). We summarize ˆ ˆ  ifft2(φ(ω1 , ω2 )f (ω1 , ω2 ))  for κ = 0 ˆ ˆ 1 2 ifft2(ψ(4−j ω , 4−j kω + 2−j ω )f (ω , ω )) for κ = h, |k| ≤ 2j − 1  1 1 2 SH(f )(κ, j, k, m) = ˆ −j −j −j ˆ (22) ifft2(ψ(4 ω2 , 4 kω2 + 2 ω1 )f (ω1 , ω2 ))   for κ = v, |k| ≤ 2j − 1  ˆ ˆ ifft2(ψ h×v (4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )) for κ = 0, |k| = 2j . 3.2 A discrete shearlet frame In view of the inverse shearlet transform we prove that our discrete shearlets constitute a Parseval frame of the finite Euclidean space L2 (I). Recall that for a Hilbert space H a sequence {uj : j ∈ J } is a frame if and only if constants 0 < A ≤ B < ∞ exists such that 2 A f ≤ | f, uj |2 ≤ B f 2 for all f ∈ H. j∈J The frame is called tight if A = B and a Parseval frame if A = B = 1. Thus, for Parseval frames we have that f 2= | f, uj |2 for all f ∈ H j∈J which is equivalent to the reconstruction formula f= f, uj uj for all f ∈ H. j∈J Further details on frames can be found in [3] and [14]. In the n-dimensional Euclidean space we can arrange the frame elements uj , j = 1, . . . , n ≥ n as rows of a matrix U . Then we have ˜ indeed a frame if U has full rank and a Parseval frame if and only if U T U = In . Note that 16
  • 17. U U T = In is only true if the frame is an orthonormal basis. The Parseval frame transform and ˜ its inverse read ˜ ˜ ( f, uj )n = U f and f = U T ( f, uj )n . j=1 j=1 By the following theorem our shearlets provide such a convenient system. Theorem 3.1. The discrete shearlet system {ψj,k,m (ω) : j = 0, . . . , j0 − 1, −2j + 1 ≤ k ≤ 2j − 1, m ∈ I} h ∪ {ψj,k,m (ω) : j = 0, . . . , j0 − 1, −2j + 1 ≤ k ≤ 2j − 1, m ∈ I} v h×v ∪ {ψj,k,m (ω) : j = 0, . . . , j0 − 1, |k| = 2j , m ∈ I} ∪ {φm (ω) : m ∈ I} provides a Parseval frame for L2 (I). Proof. We have to show that j0 −1 2j −1 j0 −1 2 f = | f, ψj,k,m |2 + κ | f, ψj,k,m |2 + h×v | f, φm |2 =: C. κ∈{h,v} j=0 k=−2j +1 m∈I j=0 k=±2j m∈I m∈I ˆ Since f 2 = M1N f 2 (Parsevals formula, · denotes the Frobenius norm, i.e., · F = F F ˆ vec(·) 2 ) it is sufficient to show that C is equal to M1N f 2 . F By (18) we know that h 1 2πi ω,(m1 /M ) f, ψj,k,m = e m /N 2 gj,k (ω) = gj,k (m). ˆ MN ω∈Ω We further obtain | f, ψj,k,m |2 = h |gj,k (m)|2 = gj,k 2 F. m∈I m∈I Consequently, with Parsevals formula 2 1 2 1 gj,k F = gj,k ˆ F = |ˆj,k (ω)|2 g MN MN ω∈Ω 1 = |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )f (ω1 , ω2 )|2 ˆ ˆ MN ω∈Ω 1 = |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 . ˆ ˆ MN ω∈Ω Analogously we obtain for the vertical part 1 | f, ψj,k,m |2 = v |ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )|2 |f (ω1 , ω2 )|2 . ˆ ˆ MN m∈I ω∈Ω 17
  • 18. Using these results we can conclude for the seam-line part 1 | f, ψj,k,m |2 = h×v |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 χC h ˆ ˆ MN m∈I ω∈Ω 1 + |ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )|2 |f (ω1 , ω2 )|2 χC v ˆ ˆ MN ω∈Ω 1 + |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 χC × . ˆ ˆ MN ω∈Ω For the remaining low-pass part we get similarly 1 | f, φm |2 = | f , φm |2 ˆ ˆ MN m∈I m∈I 1 ˆ ˆ 2 = φm (ω)f (ω) MN m∈I ω∈Ω 1 2πi ω,(m1 /M ) ˆ ˆ 2 = e m /N 2 φ(ω1 , ω2 )f (ω1 , ω2 ) MN m∈Ω ω∈Ω ˆ ˆ with g0 (ω) := φ(ω1 , ω2 )f (ω1 , ω2 ) ˆ 1 2πi ω,(m1 /M ) 2 = e m /N 2 g0 (ω) ˆ MN m∈I ω∈Ω 1 = |g0 (m)|2 = g0 2 F = g0 ˆ 2 MN m∈I 1 = |φ(ω1 , ω2 )f (ω1 , ω2 )|2 ˆ ˆ MN ω∈Ω 1 = |φ(ω1 , ω2 )|2 |f (ω1 , ω2 )|2 . ˆ ˆ MN ω∈Ω 18
  • 19. Lets put the pieces together: j0 −1 2j −1 j0 −1 C= | f, ψj,k,m |2 κ + | f, ψj,k,m |2 + h×v | f, φm |2 κ∈{h,v} j=0 k=−2j +1 m∈I j=0 k=±2j m∈I m∈I j0 −1 2j −1 1 = |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 ˆ ˆ MN j=0 k=−2j +1 ω∈Ω j0 −1 2j −1 1 + |ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )|2 |f (ω1 , ω2 )|2 ˆ ˆ MN j=0 k=−2j +1 ω∈Ω j0 −1 1 + |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 χC h ˆ ˆ MN j=0 k=±2j ω∈Ω 1 + |ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )|2 |f (ω1 , ω2 )|2 χC v ˆ ˆ MN ω∈Ω 1 + |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 χC × ˆ ˆ MN ω∈Ω 1 + |φ(ω1 , ω2 )|2 |f (ω1 , ω2 )|2 . ˆ ˆ MN ω∈Ω We can group the sums by the different sets and obtain j0 −1 2j 1 C= |ψ(4−j ω1 , 4−j kω1 + 2−j ω2 )|2 |f (ω1 , ω2 )|2 χC h ˆ ˆ MN ω∈Ω j=0 k=−2j j0 −1 2j 1 + |ψ(4−j ω2 , 4−j kω2 + 2−j ω1 )|2 |f (ω1 , ω2 )|2 χC v ˆ ˆ MN ω∈Ω j=0 k=−2j j0 −1 1 1 + |f (ω1 , ω2 )|2 | ψ(4−j ω1 , 0) |2 χC × + ˆ ˆ |φ(ω1 , ω2 )|2 |f (ω1 , ω2 )|2 . ˆ ˆ MN MN ω∈Ω j=0 =1 ω∈Ω ˆ Using the definition of ψ in (10) (or (12) and (13), respectively), we can conclude j0 −1 2j 1 ω2 C= |f (ω1 , ω2 )|2 ˆ |ψ1 (4−j ω1 )|2 ˆ ˆ |ψ2 (2j + k)|2 MN ω1 ω∈C h j=0 k=−2j =1 for |ω1 |≥1 =1 (see Theorem 2.5) (see Theorem 2.2) j0 −1 2j 1 ω1 + |f (ω1 , ω2 )|2 ˆ |ψ1 (4−j ω2 )|2 ˆ ˆ |ψ2 (2j + k)|2 MN ω2 ω∈C v j=0 k=−2j =1 for |ω2 |≥1 =1 1 1 + |f (ω1 , ω2 )|2 + ˆ | φ(ω1 , ω2 ) |2 |f (ω1 , ω2 )|2 . ˆ ˆ MN MN ω∈C × ω∈Ω = 1 for ω ∈ [− 1 , 1 ]2 2 2 19
  • 20. ˆ ˆ With the properties of ψ1 and ψ2 (see Theorems 2.2 and 2.5) we obtain two sums, one for the overlapping domain C (see (9)) and one for the remaining part   j0 −1 j0 −1 1 C= |f (ω1 , ω2 )|2 + ˆ |f (ω1 , ω2 )|2  ˆ |ψ1 (4−j ω1 )|2 + ˆ |ψ1 (4−j ω2 )|2 + |φ(ω1 , ω2 )|2  ˆ ˆ MN ω∈ΩC ω∈C j=0 j=0 where we can split up the second sum as 1 C= |f (ω1 , ω2 )|2 ˆ MN ω∈ΩC 1 π 1 π + |f (ω1 , ω2 )|2 sin2 ˆ v(2|ω1 | − 1) + |f (ω1 , ω2 )|2 sin2 ˆ v(2|ω2 | − 1) MN 2 MN 2 ω∈C h ∩C ω∈C v ∩C 1 π 1 π + |f (ω1 , ω2 )|2 cos2 ˆ v(2|ω1 | − 1) + |f (ω1 , ω2 )|2 cos2 ˆ v(2|ω2 | − 1) MN 2 MN 2 ω∈C h ∩C ω∈C v ∩C using the overlap (see (15)) we can continue 1 C= |f (ω1 , ω2 )|2 ˆ MN ω∈ΩC 1 π π + |f (ω1 , ω2 )|2 sin2 ˆ v(2|ω1 | − 1) + cos2 v(2|ω1 | − 1) MN 2 2 ω∈C h ∩C =1 (see (15)) 1 π π + |f (ω1 , ω2 )|2 sin2 ˆ v(2|ω2 | − 1) + cos2 v(2|ω2 | − 1) . MN 2 2 ω∈C v ∩C =1 (see (15)) Finally, we obtain 1 1 C= |f (ω1 , ω2 )|2 = ˆ ˆ f 2 F = f 2 F. MN MN ω∈Ω 3.3 Inversion of the shearlet transform Having the discrete Parseval frame the inversion of the shearlet transform is straightforward: multiply each coefficient with the respective shearlet and sum over all involved parameters. As an inversion formula we obtain j0 −1 2j −1 j0 −1 κ κ h×v h×v f= f, ψj,k,m ψj,k,m + f, ψj,k,m ψj,k,m + f, φm φm . κ∈{h,v} j=0 k=−2j +1 m∈I j=0 k=±2j m∈I m∈I The actual computation of f from given coefficients c(κ, j, k, m) is done in the Fourier domain. Due to the linearity of the Fourier transform we get j0 −1 2j −1 j0 −1 ˆ f= κ f, ψj,k,m ˆκ ψj,k,m + h×v ˆh×v f, ψj,k,m ψj,k,m + ˆ f, φm φm . κ∈{h,v} j=0 k=−2j +1 m∈I j=0 k=±2j m∈I m∈I 20
  • 21. We take a closer look at the part for the horizontal cone where we have j0 −1 2j −1 ˆ f (ω)χC h = ˆh f, ψj,k,m ψj,k,m (ω) j=0 k=−2j +1 m∈I j0 −1 2j −1 −2πi ω,(m1 /M ) = c(h, j, k, m)e m /N 2 ψ(4−j ω1 , 4j kω1 + 2−j ω2 ). ˆ j=0 k=−2j +1 m∈I The inner sum can be interpreted as a two-dimensional discrete Fourier transform and can be computed with a FFT and we can write j0 −1 2j −1 ˆ f (ω)χC h = fft2(c(h, j, k, ·))(ω1 , ω2 )ψ(4−j ω1 , 4j kω1 + 2−j ω2 ). ˆ j=0 k=−2j +1 ˆ Hence, f can be computed by simple multiplications of the Fourier-transformed shearlet co- efficients with the dilated and sheared spectra of ψ and afterwards summing over all “parts”, scales j and all shears k, respectively. In detail we have ˆ ˆ f (ω1 , ω2 ) =fft2(c(0, ·))φ(ω1 , ω2 ) j0 −1 2j −1 + fft2(c(h, j, k, ·))ψ(4−j ω1 , 4−j kω1 + 2−j ω2 ) ˆ j=0 k=−2j +1 j0 −1 2j −1 (23) + fft2(c(v, j, k, ·))ψ(4−j ω2 , 4−j kω2 + 2−j ω1 ) ˆ j=0 k=−2j +1 j0 −1 + fft2(c(h × v, j, k, ·))ψ(4−j ω1 , 4−j kω1 + 2−j ω2 ). ˆ j=0 k=±2j ˆ Finally we get f itself by an iFFT of f ˆ f = ifft2(f ). 3.4 Smooth shearlets In many theoretical and some practical purposes one needs smooth shearlets in the Fourier domain because such shearlets provide well-localized shearlets in time domain. Recently, in [8] a new shearlet construction was proposed that provides smooth shearlets for all scales a and respective shears s. Our shearlets are smooth for all scales and for all shears |s| = 1. The “diagonal” shearlets ψ h×v are continuous by construction but they are not smooth. Fig 7(a) illustrates this. Obviously our construction is not smooth in points on the diagonal. The new construction circumvents this with “round” corners. To this end, we get back to the two different scaling functions which we discussed in Section 2.4. While we chose the scaling function matching our cone-construction the new construction is based on the tensor-product 21
  • 22. (a) diagonal shearlet in our construction (b) diagonal shearlet in the new construction Figure 7: Diagonal shearlets in our construction and in the new, smooth construction (Fourier domain) ˆ scaling function Φ(ω) = ϕ(ω1 )ϕ(ω2 ). We present the basic steps in the construction of [8] transferred to our setting. In fact, we only need to modify the function ψ1 . We set ˆ Ψ1 (ω) := ˆ ˆ Φ2 (2−2 ω1 , 2−2 ω2 ) − Φ2 (ω1 , ω2 ). (24) ˆ Clearly, Ψ1 (ω) fulfills ˆ 2 −2j ω) = 1 for all ω ∈ Ω [−1, 1]2 . We further have that j≥0 Ψ1 (2 Φ2 (ω) + ˆ Ψ2 (2−2j ω) = 1 ˆ1 for ω ∈ Ω, j≥0 ˆ ˆ i.e., this setting provides also a Parseval frame. Fig. 8 shows Ψ1 . Note that Ψ1 is supported in the Cartesian corona [−4, 4] 2 [− 1 , 1 ]2 . The full shearlet Ψ is similar as before: 2 2 ˆ ˆ ˆ ω2 Ψ(ω1 , ω2 ) = Ψ1 (ω1 , ω2 )ψ2 . (25) ω1 The construction of the horizontal, vertical and “diagonal” shearlets is the same as before, besides that the diagonal shearlets are smooth now, see Fig. 7(b). Before we examine the smoothness of the diagonal shearlets we discuss the differentiability of ˆ the remaining shearlets. Due to the construction we only need to analyze the functions ψ1 and ψˆ2 . We have  0  for |ω1 | ≤ 1 2  sin( π v(2|ω1 | − 1)) for 1 < |ω1 | < 1    2 2 ˆ ψ1 (ω1 ) = b2 (2ω1 ) + b2 (ω1 ) = 1 for 1 ≤ |ω1 | ≤ 2 cos( π v( 1 |ω1 | − 1)) for 2 < |ω1 | < 4      2 2 0 for |ω1 | ≥ 4  22
  • 23. ˆ Figure 8: The new function Ψ1 in (24) and with straight forward differentiation  0  for |ω1 | ≤ 1 2  πv(2|ω1 | − 1)v (2|ω1 | − 1) cos( π v(2|ω1 | − 1)) 1 for < |ω1 | < 1    2 2 ˆ (ω1 ) = 0 ψ1 for 1 ≤ |ω1 | ≤ 2  π 1 − v( |ω1 | − 1)v ( 1 |ω1 | − 1) sin( π v( 1 |ω1 | − 1))   2 2 for 2 < |ω1 | < 4   2 2 2 0 for |ω1 | ≥ 4.  1 The derivative is continuous if and only if the values at the critical points 2 , 1, 2, 4 coincide (for symmetry reasons we can restrict ourselves to the positive range). We have that v(2 · 1 − 1) =2 v(0) = 0 (even v (0) = 0) and v (2 · 1 − 1) = v (1) = 0 and further v( 1 · 2 − 1) = v(0) = 0 2 ˆ ˆ and v ( 1 · 4 − 1) = v (1) = 0. Consequently, ψ1 is continuous and in particular ψ1 ∈ C 1 . By 2 ˆ(n) induction we see that ψ ∈ C n if and only if v (n) (0) = 0 and v (n) (1) = 0, n ≥ 1. 1 ˆ For our v in (1) we have v (3) (1) = 0 but v (4) (1) = 0, i.e., ψ1 ∈ C 3 . ˆ Similarly, we obtain for ψ2 that  ω − ω2 v (1 + ω2 1 ω2 ˆ 2 ω1 ) 2 ω for ω1 ≤0 ∂ ψ2 v(1+ ω1 )  1 2 (ω1 , ω2 ) = ω2 ω2 1 ω2 ∂ω1  2 v (1 − ω1 ) 2 ω for ω1 > 0,  ω1 v(1− ω1 ) 2 ˆ where we see that we need v (0) = 0 for the derivative to exist. Thus, the shearlet ψ is C n if v ˆ (n) (0) = v (n) (1) = 0. This is also valid for the dilated and sheared shearlet ψ h ˆv j,k,m (and ψj,k,m ) for |k| = 2j . We take a closer look at the diagonal shearlet for k = −2j where we have   ˆj,−2 ,m ψ h j (ω), for ω ∈ C h  ˆh×v ˆv ψj,−2j ,m (ω) = ψj,−2j ,m (ω), for ω ∈ C v  × ˆ ψ j,−2j ,m (ω), for ω ∈ C × . 23
  • 24. ˆh×v ˆh×v Naturally, ψj,−2j ,m is smooth for ω ∈ C h and ω ∈ C v . Additionally, ψj,−2j ,m (ω) is continuous at the seam lines, but not differentiable there since we have for the partial derivatives of ψ h jˆ j,−2 ,m ˆv and ψj,−2j ,m (ω) that ˆh ∂ ψj,−2j ,m ω2 2πi ˆ ∂ ψ1 −2j (ω) = ψ2 (2j ( − 1))e− N (ω1 m1 +ω2 m2 ) · 2−2j ˆ (2 ω1 ) ∂ω1 ω1 ∂ω1 2πi ˆ ω2 ∂ ψ2 j ω2 + ψ1 (2−2j ω1 )e− N (ω1 m1 +ω2 m2 ) (−2j 2 ) ˆ (2 ( − 1)) ω1 ∂ω1 ω1 ω2 2πi 2πi + ψ1 (2−2j ω1 )ψ2 (2j ( − 1))(− ˆ ˆ m1 )e− N (ω1 m1 +ω2 m2 ) ω1 N and ˆv ∂ ψj,−2j ,m 2πi ˆ 2j ∂ ψ2 j ω1 (ω) = ψ1 (2−2j ω2 ) e− N (ω1 m1 +ω2 m2 ) ( ) ˆ (2 ( − 1)) ∂ω1 ω2 ∂ω1 ω2 ω1 2πi 2πi ˆ + ψ2 (2j ( − 1))(− m1 )e− N (ω1 m1 +ω2 m2 ) . ω2 N For ω1 = ω2 we obtain ˆh ∂ ψj,−2j ,m 2πi ˆ ∂ ψ1 −2j (ω1 , ω1 ) = e− N ω1 (m1 +m2 ) · ψ2 (0) 2−2j ˆ (2 ω1 ) ∂ω1 ∂ω1 =1 2j ˆ ∂ ψ2 2πi − ψ1 (2−2j ω1 )( ˆ ) (0) −ψ1 (2−2j ω1 ) ψ2 (0)( ˆ ˆ m1 ) ω1 ∂ω1 N =1 =0 2πi ˆ ∂ ψ1 −2j 2πi = e− N ω1 (m1 +m2 ) · 2−2j (2 ω1 ) − ( m1 )ψ1 (2−2j ω1 ) ˆ ∂ω1 N and ˆv ∂ ψj,−2j ,m 2πi ˆ 2j ∂ ψ2 2πi (ω1 , ω1 ) = e− N ω1 (m1 +m2 ) · ψ1 (2−2j ω1 )( ) ˆ (0) −ψ1 (2−2j ω1 ) ψ2 (0)( ˆ ˆ m1 ) ∂ω1 ω1 ∂ω1 N =1 =0 2πi 2πi = e− N ω1 (m1 +m2 ) · −( m1 )ψ1 (2−2j ω1 ) . ˆ N Obviously, both derivatives do not coincide, thus, our shearlet construction is not smooth for the diagonal shearlets. If we get back to the new construction we obtain for the both partial derivatives ˆ ∂ Ψh j ,m ˆ ∂ Ψ1 −2j ˆ j ω2 2πi j,−2 (ω) = 2−2j (2 ω)ψ2 (2 ( − 1))e− N (ω1 m1 +ω2 m2 ) ∂ω1 ∂ω1 ω1 ω2 ˆ ˆ2 ∂ ψ j ω2 2πi − 2j 2 Ψ1 (2−2j ω) (2 ( − 1))e− N (ω1 m1 +ω2 m2 ) ω1 ∂ω1 ω1 2πi ω2 2πi − m1 Ψ1 (2−2j ω)ψ2 (2j ( − 1))e− N (ω1 m1 +ω2 m2 ) ˆ ˆ N ω1 24
  • 25. and ˆ ∂ Ψv j ,m ˆ ∂ Ψ1 −2j ˆ j ω1 2πi j,−2 (ω) = 2−2j (2 ω)ψ2 (2 ( − 1))e− N (ω1 m1 +ω2 m2 ) ∂ω1 ∂ω1 ω2 2j ˆ ˆ ∂ ψ 2 j ω1 2πi + ( )Ψ1 (2−2j ω) (2 ( − 1))e− N (ω1 m1 +ω2 m2 ) ω2 ∂ω1 ω2 2πi ω1 2πi − m1 Ψ1 (2−2j ω)ψ2 (2j ( − 1))e− N (ω1 m1 +ω2 m2 ) . ˆ ˆ N ω2 With ω1 = ω2 we obtain further ˆ ∂ Ψh j ,m ˆ ∂ Ψ1 −2j 2πi j,−2 (ω1 , ω1 ) = 2−2j (2 ω1 , 2−2j ω1 ) ψ2 (0) e− N ω1 (m1 +m2 ) ˆ ∂ω1 ∂ω1 =1 ω2 ˆ −2j ˆ ∂ ψ2 2πi − 2j 2 Ψ1 (2 ω1 , 2−2j ω1 ) (0) e− N ω1 (m1 +m2 ) ω1 ∂ω1 =0 2πi 2πi − m1 Ψ1 (2−2j ω1 , 2−2j ω1 ) ψ2 (0) e− N ω1 (m1 +m2 ) ˆ ˆ N =1 and ˆ ∂ Ψv j ,m ˆ ∂ Ψ1 −2j 2πi j,−2 (ω1 , ω1 ) = 2−2j (2 ω1 , 2−2j ω1 ) ψ2 (0) e− N ω1 (m1 +m2 ) ˆ ∂ω1 ∂ω1 =1 2j ˆ ∂ ψ2 2πi +( )Ψ1 (2−2j ω1 , 2−2j ω1 ) ˆ (0) e− N ω1 (m1 +m2 ) ω2 ∂ω1 =0 2πi 2πi − m1 Ψ1 (2−2j ω1 , 2−2j ω1 ) ψ2 (0) e− N ω1 (m1 +m2 ) . ˆ ˆ N =1 ˆ It can be easily seen that both derivatives coincide if and only if ∂ ψ1 (0) = 0 since then the ∂ω 2 second term vanishes. The same result is obtained for partial derivative with respect to ω2 . Consequently, the new construction is smooth everywhere. Remark 3.2. As we have seen the smoothness of the shearlets depends strongly on the smooth- ness of the function v. The v we have used was constructed to provide shearlets in C 3 . The first three derivatives at 0 and 1 should be equal to zero, i.e., v (x) = c · x3 (x − 1)3 . With v(1) = 1 and straight forward integration one obtain c = −140 and the function v as in (1). Higher grades of smoothness can easily be obtained by creating a new v by setting v (x) = c · xk (x − 1)k . These shearlets would be in C k . Note that due to our discretization t = m we have a unique handling of both the horizontal and the vertical cone and do not have to make any adjustments for the diagonal shearlets, in contrast to the discretization t = Aaj Ssjk m where you have different discretizations for t in 25
  • 26. the horizontal and in the vertical cone. Consequently, some adjustments have to be made for the diagonal shearlets. Smooth shearlets are well-located in time. To show the difference we present in Fig. 9(a) the “old” shearlet in the time domain and in comparison in Fig. 9(b) the new construction in the time domain. The non-smooth construction is slightly worse located. The shearlet coefficients (a) diagonal shearlet in our construction, time (b) diagonal shearlet in the new construction, domain time domain Figure 9: diagonal shearlets in our construction and in the new, smooth construction (Time domain) of, e.g., a diagonal line only show marginal differences such that for practical applications it is irrelevant which construction is used. 3.5 Implementation details The implementation of the shearlet transform follows very closely the details described here. As we see in (22) and (23) for both directions of the transform the spectra of ψ and φ are needed for all scales j and all shears s on “all” sets. We precompute these spectra to use them for both directions. Up to now our implementation only supports quadratic images, i.e., M = N (see Remark 3.4 for a short discussion on this topic). 3.5.1 Indexing To reduce the number of parameters we introduce one index i which replaces the parameters κ, j and k. We set i = 1 for the low-pass part. We continue with the lowest frequency band, i.e., j = 0. The different “cones” and shear parameters represent the different “directions” of the shearlet. For illustration we reduce the shearlet to a line which is rotated counter-clockwise around the center and assign the index i accordingly. In each frequency band we start in the 26
  • 27. horizontal position, i.e., κ = h and k = 0, and increase i by one. For each k = −1, . . . , −2j + 1 we continue increasing the index by one. The line is now almost in a 45◦ angle (or a line with slope 1). The next index is assigned to the combined shearlet “h × v” at the seam line which covers the “diagonal” for k = −2j . We continue in the vertical cone for k = −2j + 1, . . . , 2j − 1. Next is again the combined shearlet for k = 2j . With decreasing shear, i.e., k = 2j , . . . , 1, we finish the indexing for this frequency-band and continue with the next one. Summarizing we have always one index for the low-pass part. In each frequency band we have 2 indices (or shearlets) for the diagonals (k = ±2j ). In each cone we have 1+2·(2j −1) = 2j+1 −1 shearlets. For the scale j we have 2 · (2j+1 − 1) + 2 = 2j+2 shearlets. The following table lists the number of shearlets for each j. low-pass j=0 j=1 j=2 ··· 1 4 8 16 ··· With a maximum scale j0 − 1 the number of all indices η is j0 −1 j0 −1 η =1+ 2 j+2 =1+4 2j = 1 + 4 · (2j0 − 1) = 2j0 +2 − 3. (26) j=0 j=0 For each index the spectrum is computed on a grid of size N × N . We store all indices in a three-dimensional matrix of size N × N × η. The first both components refer to the ω2 and ω1 coordinates and the third component is the respective index. Consequently, an image f of size N × N is oversampled to an image of size N × N × η. In particular we have an oversampling factor of η. The following table lists η for j0 = 1, . . . , 4. j0 1 2 3 4 ··· η 5 13 29 61 ··· Note that j0 is the number of scales, the highest scale parameter j is always j0 − 1, i.e., we have the scale parameters 0, . . . , j0 − 1. The function helper/shearletScaleShear provides various possibilities to compute the index i from a and s or from j and k and vice versa. See documentation inside the file for more information. 3.5.2 Computation of spectra ˆ We compute the spectra ψj,k,m as discrete versions of the continuous functions, i.e., we compute the values on a finite discrete lattice Ξ of size N × N . With the functions defined as in (4) and (6) we may not take Ξ = Ω as this would destroy the frame property. The question is how to choose X (such that Ξ ∈ [ −X, X) N ×N ) or the distance ∆ between to grid points, respectively. The use of Theorem 2.2 in the proof of Theorem 3.1 was not completely correct. We have ˆ ˆ that supp ψ1 (ω) = [ 1 , 4] = [2−1 , 22 ] and ψ1 = 1 for ω ∈ [1, 2] = [20 , 21 ]. For the scaled 2 27
  • 28. ˆ ˆ version we further have supp ψ1 (2−2j ω) = [22j−1 , 22j+2 ] and ψ1 (2−2j ω) = 1 for ω ∈ [22j , 22j+1 ]. Consequently, we can conclude  1 0  for |ω| ≤ 2  for 1 < |ω| < 1  2 π 2 v(2ω − 1) j0 −1 sin   2 |ψ1 (2−2j ω)|2 = 1 ˆ for 1 ≤ |ω| ≤ 22(j0 −1)+1   2 π j=0 cos −2j0 −1 ω − 1) for 22(j0 −1)+1 < |ω| < 22(j0 −1)+2    2 v(2 0 for |ω| ≥ 22(j0 −1)+2 .  We see that the sum is equal to 1 for a wide range of ω. As we have seen the part for |ω| < 1 where the sum increases from 0 to 1 matches with the decreasing part of the scaling function (see (15)). But we also have a decay for |ω| > 22(j0 −1)+1 where there is no compensation to 1 since there are no higher scales. Keeping this decay would violate the frame property. Consequently, X must be less or equal than 22(j0 −1)+1 = 22j0 −1 which implies the decay to be “outside” the image. We set X = 22j0 −1 . Additionally, if we get back to the lowest scale it is ˆ reasonable to set ∆ ≤ 1 since otherwise there would be to less grid points in supp ψ1 . To compute the grid and the spectra we assume that N = 2n + 1 is odd. We then have a symmetric grid around 0, hence, we have n grid points in the negative range and n grid points in the positive range and one grid point at 0. If N is given even we increase it by 1. After computing grid and spectra we neglect the last row and column to retain the original image −1 size. Having n = N 2 grid points for the positive range and the maximal distance between two grid points ∆ = 1 we get N −1 1 X = 22j0 −1 = =⇒ j0 = log2 (N − 1). 2 2 Since j0 is the (scalar!) number of scales, we set for the number of scales (as used above) 1 j0 := 2 log2 (N ) . In the following table we list the number of scales for all image sizes N = 4 . . . , 1024 N 4, . . . , 15 16, . . . , 63 64, . . . , 255 256, . . . , 1023 1024 . j0 1 2 3 4 5 With j0 fixed we can compute the second parameter ∆. As we have seen the highest value in the grid should be X = 22j0 −1 . For an odd N the grid ranges from [−X, X] and for an even grid we have the range [−X, X) = [−X, X − ∆]. We assume again an odd N , thus, the interval [−X, X] should be divided in N grid points including the bounds −X and X what leads to N − 1 subintervals and 2·X 2 · 22j0 −1 22j0 ∆= = = . N −1 N −1 N −1 Where ∆ = 1 if N = 22j0 + 1 and ∆ > 1 , i.e., 1 < ∆ ≤ 1. Thus, for the same number of scales 4 4 we obtain a better resolution with increasing image size. ˆ ˆ It seems a little awkward to discretize f and ψ on different lattices. However, with this ˆ auxiliary construction the definition and properties of the shearlet ψ is much more convenient. Additionally the shearlets are now independent of the parameter ∆ (or other grid properties). Anyway, to circumvent the imperfection with two lattices we can now formerly also discretize ˆ ˆ ψ(∆ω) on Ω instead of ψ(ω) on Ξ and obtain the same spectra. 28
  • 29. Remark 3.3. The spectra depend strongly on the image size. In particular, if we reduce the image size a bit but still have the same number of scales the resolution of the different frequency bands varies. This may be not wanted for comparison issues. To circumvent this one could chose the grid according to the highest image size (for the respective number of scales) and drop the boundaries for smaller images. This would however lead to a very small high frequency band for smaller images. In our current implementation this frequency band is as large as possible. Remark 3.4. The theoretical results shown are valid for both square images and rectangular images, i.e., we have I and Ω of size M ×N . However, our implementation only supports square images. For the extension to rectangular images some questions remain. The first question is what the “diagonal” in a discrete rectangular setting is, i.e., the “diagonal” shearlets have to be handled carefully. More tricky is the question how to handle the different sizes in the both directions with respect to the size of the grid especially if M N (or M N ) and the number of scales. Possible are an equispaced grid in both directions and thus less scales in one direction or the same number of scales but a non-equispaced grid what would lead to rectangular frequency bands. Depending on the application both seems useful. We hope to implement rectangular shearlets in a future version of the software. 3.6 Short documentation Every file contained in the package is commented, see there for details on the arguments and return values. Thus, we only want to comment on the two important functions. The transform for an image A∈ CN ×N is called with the following command [ ST , Psi ] = s h e a r l e t T r a n s f o r m S p e c t (A , numOfScales , shearlet_spect , shearlet_arg ) where numOfscales, shearlet_spect and shearlet_arg are optional arguments. If only A is given the number of scales j0 is computed from the size of A, i.e., j0 = 1 log2 (N ) and the 2 shearlet with (4) and (6) is used. On the other hand numOfScales can be used two-fold. If given as a scalar value it simply states the number of scales to consider. On the other hand we can provide precomputed shearlet spectra which are then used for the computation of the transform. Observe that the shearlet spectra only depend on the size of the image and the number of scales, thus, they are cached and reused if the function is called with an image of same size again. The variable ST contains the shearlet coefficients as a three-dimensional matrix of size N × N × η with the third dimension ordered as described in section 3.5.1. Psi ˆκ is of same size and contains the respective shearlet spectra ψj,k,0 . With the parameters shearlet_spect and shearlet_arg other shearlets can be used to com- pute the spectra. Included in the software is the ’meyerShearletSpect’ as default shearlet (based on (4) and (6)) and ’meyerNewShearletSpect’ for the new smooth construction (see (25)). The parameter shearlet_arg is not used in both cases. The application of other shearlet spectra is very straight forward. One the one hand one can simply compute them externally in the matrix Psi and provide them as the parameter numOfScales. On the other hand it is possible to provide an own function ’myShearletSpect’ (with arbitrary name) with the function head 29
  • 30. Psi = myShearletSpect (x ,y ,a ,s , shearlet_arg ) that computes the spectrum Psi for given (meshgrids) x and y for scalar scale a and shear s and (optional) parameter shearlet_arg. For shearlet_arg=’scaling’ it should return the scaling function. To obtain a reasonable transform the shearlet should provide a Parseval frame. To check this just compute (and plot) sum(abs(Psi).^2,3)-1. The values should be close to zero (see Fig. 11(a)). Call the shearlet transform with the new shearlet spectrum by setting the variable sherlet_spect to myShearletSpect or whatever you chose as the name of your shearlet function. The inverse transform is called with the command A = i n v e r s e S h e a r l e t T r a n s f o r m S p e c t ( ST , Psi , shearlet_spect , shearlet_arg ) for the shearlet coefficients ST. As the second argument the shearlet spectra Psi should be provided for faster computations, if not given, the spectra are computed with default values or given spectrum shearlet_spect. 3.7 Download & Installation The Matlab-Version of the toolbox is available for free download at http://www.mathematik.uni-kl.de/~haeuser/FFST The zip-file contains all relevant files and folders. Simply unzip the archive and add the folder (with subfolders!) to your Matlab-path. The folder FFST contains the main files for the both directions of the transform. The included shearlets are stored in the folder shearlets. The folder helper contains some helper functions. To create simple geometric structures some functions are provided in create. See contents.m and the comments in each file for more information. The following listing shows the subdirectories and the respective files FFST/ create/ myBall.m myPicture.m myPicture2.m myRhombus.m mySquare.m helper/ coneIndicator.m scalesShearsAndSpectra.m shearletScaleShear.m shearlets/ bump.m 30
  • 31. meyeraux.m meyerNewShearletSpect.m meyerScaling.m meyerScalingSpect.m meyerShearletSpect.m meyerWavelet.m inverseShearletTransformSpect.m shearletTransformSpect.m If everything is installed correctly run simple_example for testing. The result should look like Fig. 10. original image shearlet coefficients shearlet reconstructed image Figure 10: Result of script simple_example. 3.8 Performance To evaluate the performance and the exactness of our implementation we present the following figures. In Fig. 11(a) we investigate the numerical tightness of the frame. The figure shows the difference between the square sum of the shearlets and 1, i.e., j0 −1 2j j0 −1 |ψj,k,0 |2 + ˆκ |ψj,k,0 |2 + |φ0 |2 − 1 ˆh×v ˆ κ∈{h,v} j=0 k=−2j j=0 k=±2j The biggest deviation is about 8 · 10−15 which is 40 times the machine precision. The second figure Fig. 11(b) shows the difference between the original image and the back transformed image of a random image, i.e., the exactness of the forward and backwards transform. Here the biggest difference is about 2 · 10−15 or approximately 10 times the machine precision. Surprisingly this is even better than the tightness of the used frame. Next we want to compare the speed of our implementation for different image sizes N × N for N = 2i with i = 5, . . . , 10. In the first run all the spectra are computed, thus, this run 31
  • 32. −15 −15 x 10 x 10 2 8 1.5 6 1 4 0.5 2 0 0 −2 −0.5 −4 −1 −6 −1.5 −8 (a) frame tightness (b) transform exactness Figure 11: Comparison of frame tightness and the exactness of the transform takes significantly longer than the second and all following runs. The different run times are shown in Fig. 12 with logarithmic scale. To get reasonable results we take the average time over 5 “first” runs (with deleting the cache, solid line) and 5 “second runs” (dashed line). The dotted line shows the time needed for the inverse shearlet transform. Since no spectra have to be computed here the time is approximately the same as for the second runs of the transform self. We compare the runtimes with ShearLab 2 , the only so far publicly available shearlet implementation. The dash-dotted line in Fig. 12 shows that ShearLab is slightly slower then our implementation (in the first run). Observe that no time could be measured for N = 1024 with ShearLab. In our implementation it is possible to compute the shearlet transform for arbitrary image sizes, whereas in ShearLab the transform is only possible for given image sizes. All tests were performed on an Intel i7 870 (Quad Core, each 2.93 GHz) with 8 GB RAM on Ubuntu 10.04 with Matlab R2011b (64-bit). 3.9 Remarks 1. In [16] and the respective implementation ShearLab a pseudo-polar Fourier transform is used to implement a discrete (or digital) shearlet transform. For the scale a and the shear s the same discretization is used. But for the translation t the authors set tj,k,m := Aaj Ssj,k m where we in contrast simply set tm := m (see (17)). Thus, their discrete shearlet becomes ˆ −2πi T Ss Aaj ω,m ψ j,k,m (ω) = ψ(Aaj Ssj,k ω)e−2πi ˆ T ω,Aaj Ssj,k m ˆ T = ψ(Aaj Ssj,k ω)e j,k . T Since the operation Ssj,k Aaj ω would destroy the pseudo-polar grid a “slight” adjustment is made and the exponential term is replaced by −T T −2πi (θ◦Ssj,k )Ss Aaj ω,m e j,k 2 http://www.shearlab.org 32
  • 33. 100 10 seconds 1 0.1 0.01 0.001 32 64 128 256 512 1024 image size N Figure 12: run times for different image sizes, “first run” (solid), “second” run (dashed), inverse (dotted), ShearLab (dashed-dotted, no time for N = 1024). y with θ : R {0} × R → R × R and θ(x, y) = (x, x ) such that −T T √ ω −2πi (θ◦Ssj,k )Ss Aaj ω,m −2πi aj ω1 , aj ω2 ,m e j,k =e 1 . With this adjustment the last step of the shearlet transform can be obtained with a standard inverse fast Fourier transform (similar as in our implementation). Unfortunately this is no longer related to translations of the shearlets in the time domain. 2. We are aware of our larger oversampling factor in comparison with, e.g., ShearLab. Hav- ing 4 scales we obtain 61 images of the same size as the original image. But since shearlets are designed to detect edges in images we like to avoid any down-sampling and keep translation invariance. A possibility to reduce the memory usage would be to use the compact support of the shearlets in the frequency domain and only compute them on a “relevant” region. But we then would also have to store the position and size of each region what decreases the memory savings and would make the implementation a lot more complicated. Acknowledgement The author thanks Tomas Sauer (University of Gießen) for his support at the beginning of this project. 33
  • 34. References [1] E. Candes, L. Demanet, D. Donoho, and L. Ying. Fast discrete curvelet transforms. Multiscale Modeling Simulation, 5(3), 2006. [2] E. J. Candes and D. L. Donoho. Ridgelets: a key to higher-dimensional intermittency? Philosophical Transactions of the London Royal Society, 357:2495–2509, 1999. [3] O. Christensen. An Introduction to Frames and Riesz Bases. Birkhauser, 2003. [4] S. Dahlke, G. Kutyniok, P. Maass, C. Sagiv, H.-G. Stark, and G. Teschke. The uncertainty principle associated with the continuous shearlet transform. International Journal on Wavelets Multiresolution and Information Processing, 6:157–181, 2008. [5] S. Dahlke, G. Kutyniok, G. Steidl, and G. Teschke. Shearlet coorbit spaces and associated banach frames. Applied and Computational Harmonic Analysis, 27(2):195–214, 2009. [6] K. Guo, G. Kutyniok, and D. Labate. Sparse multidimensional representations using anisotropic dilation und shear operators. Wavelets und Splines (Athens, GA, 2005), G. Chen und M. J. Lai, eds., Nashboro Press, Nashville, TN, pages 189–201, 2006. [7] K. Guo and D. Labate. Characterization and analysis of edges using the continuous shearlet transform. SIAM Journal on Imaging Sciences, 2(3):959–986, 2009. [8] K. Guo and D. Labate. The construction of smooth parseval frames of shearlets. 2011. [9] S. H¨user and G. Steidl. Convex multilabel segmentation with shearlet regularization. a Preprint University of Kaiserslautern, 2011. [10] G. Kutyniok, K. Guo, and D. Labate. Sparse multidimensional representations using anisotropic dilation and shear operators. Wavelets und Splines (Athens, GA, 2005), G. Chen und MJ Lai, eds., Nashboro Press, Nashville, TN, pages 189–201, 2006. [11] G. Kutyniok and W. Lim. Image separation using wavelets and shearlets. Curves and Surfaces (Avignon, France, 2010), Lecture Notes in Computer Science, to appear. [12] D. Labate, G. Easley, and W. Lim. Sparse directional image representations using the discrete shearlet transform. Applied and Computational Harmonic Analysis, 25(1):25–46, 2008. [13] W. Lim, G. Kutyniok, and X. Zhuang. Digital shearlet transforms. Shearlets: Multiscale Analysis for Multivariate Data, to appear. [14] S. Mallat. A Wavelet Tour of Signal Processing: The Sparse Way. Academic Press, 2008. [15] Y. Meyer. Oscillating Patterns in Image Processing and Nonlinear Evolution Equations, volume 22. AMS, Providence, 2001. [16] M. Shahram, G. Kutyniok, and X. Zhuang. Shearlab: A rational design of a digital parabolic scaling algorithm. submitted. [17] S. Yi, D. Labate, G. Easley, and H. Krim. A shearlet approach to edge analysis and detection. Image Processing, IEEE Transactions on, 18(5):929–941, 2009. 34