Fast Algorithms for Discrete Wavelet Transform
Review and Implementation
by Dan LiF2000
DWT and FWT: Significance
DWTDWT Multi-resolution mode to access
the information Extensively (and intensively)
used in information processing Advantage over other
transformse.g. (in JPEG 2000), DWT provides 20-30% improvement in compression efficiency as oppose to DCT.
FWTFWT Multi-resolution mode to access
the information DWT: intensive computation
and large memory requirement. FWT makes DWT practicable in
real applications Main factors controlling the
speed of DWT:– Filter length– Floating point operation vs.
integer operation
FWT Algorithm: An Outline
“Regular” Structure
Mallat Straightfoward Filter Bank
Polyphase Transversal Filters#
Polyphase Short-length Filters*
Classical Lattice Filters
CORDIC Lattice Filters
Lifting Scheme and Integer WT
Binomial QMF Filters (* also known as “fast-running FIR algo”)
(* based on FFT for fast filtering)
“Irregular” Structure
“Regular” Structure
FWT Algorithm: An Overview (I)H(z)
G(z)
H(z)
G(z)
H(z)
G(z)
x[n]D1
D2
D3
A3A2A1
2
2
2
2 2
2
A1
D1
G0(z)
x[n]
2
2H0(z)
G1(z)
H1(z)
x0[n]
x1[n-1]z-1
x[n]
2
2 -
z-1
z-1
H0(z)
H0(z)+H1(z)
H1(z)
-
+
+-
+
-+
D1
A1
Mallat Filter Bank
Transversal Filters
Short-length Filters
c0
A1
D1
x[n]
2
2 x0[n]
x1[n-1]z-1
(1+z-1)3
(1-z-1)3
(1+z-1)2
(1+z-1)(1-z-1)
(1-z-1)2
(1+z-1)2
(1+z-1)(1-z-1)
(1-z-1)2
c1
c2
-c0
c1
-c2
A1
D1
1
1
2-2
-2-2
z-1
11
2
2
z-1
K’
1
-2-2
2-2
1
-1
1x[n]
-2-4
2-8
2-16
-0 -2 2
x[n]
2
2x0[n]
x1[n-1]
z-1
...
p1(z)
q1(z)
p2(z)
q2(z)
pM(z)
qM(z)
K1
K2
A1
D1
s(0)
d(0)
s(1)
d(1)
s(2)
d(2)
s(M)
d(M)
x[n]
2
2
z-1
K’
cos 0
cos 0
sin0
-sin0
cos 1
cos 1
sin1
-sin1...
A1
D1
cos L
cos L
sinL
-sinL
z-1z-1-1
FWT Algorithm: An Overview (II)
Binomial QMF
Classical Lattice
CORDIC Lattice
Lifting Ladder
Comput. Complexity: A Comparison
05
101520253035
0 10 20 30 40
Mallat FBTran.Filter (FFT)Tran.Filter(Short-length)
# of mults
Filter length L
05
101520253035
0 10 20 30 40
Mallat FB
Tran.Filter (FFT)
Tran.Filter(Short-length)# of adds
Filter length L
0
1020
3040
50
5 10 15 20
Tran.Filter (FFT)
Tran.Filter(Short-length)
Binomial QMF filters
Classical Lattice
CORDIC LatticeWord length w (bits)
# of addersneeded
Arithmetic Complexity (per input point & per decomposition cell)
Computational Structure Complexity (per filter coefficient)
“Efficiency” in the sense of arithmetic complexity and computational structure
Straightforward filter bank: classical and used in many commercial s/w
Polyphase structure: more efficient than direct FB. (Worthy of further exploration!)
FFT based filtering: efficient for medium or long filters
Fast running FIR filter: good for short filters Binomial QMF: reduces the # of mults with
expense of additional adds Lattice: easier to implement with each relatively
simpler stages CORDIC: most suitable fore efficient VLSI
implementation since only addition and shifts involved and least possible adders required
Lifting scheme: lead to IWT which is faster than floating-point DWT and ideal for lossless coding/compression.
Implementation focused on the following:
Fast filtering for short and long filters
Various formats of polyphase structures
Reformulation of polyphase transversal filter with the consideration of reduced inter-channel communication
Integer filter and IWT implementations
Simulations
Comments, Implementations, etc.