The Story of Wavelets Theory and Engineering Applications • Stationary discrete wavelet transform • Two-dimensional wavelet transform • 2D-DWT using MATLAB • Implementation issues • Image compressing using 2D- DWT
Feb 04, 2016
The Story of WaveletsTheory and Engineering Applications
• Stationary discrete wavelet transform
• Two-dimensional wavelet transform
• 2D-DWT using MATLAB
• Implementation issues
• Image compressing using 2D-DWT
Stationary Wavelet Transfporm(SWT)
DWT is not time invariant… Not Good ! What makes DWT time varying? Decimation (down
sampling) DWT can be made time invariant, however, the transform must be
redundant!!! Stationary wavelet transform -decimated DWT
-decimated DWT???At any given level you can have two different
DWT, due to choice in discarding even or odd indexed elements during subsampling
At J levels, you can have N=2J different DWTs. The particular DWT chosen can be denoted by =[1 2 … N], j=1, if odd indexed elements are chosen, j=0, if even indexed elements are chosen
SWT
SWT is defined as the average of all -decimated DWTs
For 6 level DWT64 DWTsFor 10 level DWT 1024 DWTs….
An efficient algorithm:Hj
Gj
cAj=a(j,n)
cAj+1=a(j+1,n)
cDj+1=d(j+1,n)where
2 HjHj-1
2 GjGj-1
Note: No subsampling is involved!!!.
SWT
Does it work…? MATLAB DEMO
Applications of SWT
Denoising… denoising…denoising MATLAB demo: noisy doppler & noisy quadchirp
Interval dependent thresholds
1D-DWT2D-DWT
Recall fundamental concepts of 1D-DWTProvides time-scale (frequency) representation of non-
stationary signalsBased on multiresolution approximation (MRA)
Approximate a function at various resolutions using a scaling function, (t)
Keep track of details lost using wavelet functions, (t) Reconstruct the original signal by adding approximation and
detail coeff. Implemented by using a series of lowpass and highpass filters
Lowpass filters are associated with the scaling function and provide approximation
Highpass filters are associated with the wavelet function and provide detail lost in approximating the signal
2-D DWT
How do we generalize these concepts to 2D? 2D functions images f(x,y) I[m,n] intensity function What does it mean to take 2D-DWT of an image? How do we
interpret?How can we represent an image as a function?How do we define low frequency / high frequency
in an image?How to we compute it?
Why would we want to take 2D-DWT of an image anyway?CompressionDenoisingFeature extraction
2D Scaling/Wavelet Functions
We start by defining a two-dimensional scaling and wavelet functions:
If (t) is orthogonal to its own translates,
is also orthogonal to its own translates. Then, if fo(x,y) is the projection of f(x,y) on the space Vo generated by s(x,y):
)()(),( yxyxs
Zlklykxs ,:),(
),(),,(),(
),(),(),(
jyixsyxfjia
jyixsjiayxf
o
i joo
)()(),( yxyxs
2D-DWT
Just like in 1D we generated an approximation of the 2D function f(x,y). Now, how do we compute the detail lost in approximating this function?
Unlike 1D case there will be three functions representing the details lost:Details lost along the horizontal directionDetails lost along the vertical directionDetails lost along the diagonal direction
1D Two sets of coeff.; a(k,n) & d (k,n) 2D Four sets of coefficients: a(k,n), b(k, n), c(k, n) & d(k,n)
Four Faces of 2D-DWT
One level of 2D DWT reconstruction:
)()(),(
)()(),(
)()(),(
)()(),(),(1
nxnxpnd
nxnxpnc
nxnxpnb
nxnxpnayxf
o
o
o
n po
Approximation coefficients
Detail coefficients along the horizontal direction
Detail coefficients along the vertical directionDetail coefficients along the diagonal direction
Implementation of 2D-DWT
INPUTIMAGE…
…
……
RO
WS
COLUMNSH~ 2 1
G~ 2 1
H~ 1 2
G~ 1 2
H~ 1 2
G~ 1 2
ROWS
ROWS
COLUMNS
COLUMNS
COLUMNS
LL
LH
HL
HH
)(1
hkD
)(1
vkD
)(1
dkD
1kA
INPUTIMAGE
LL LH
HL HH
LLLH
HL HH
LHH
LLH
LHL
LLLLH
HL HH
LHH
LLH
LHL
Up and Down … Up and Down
2 1Downsample columns along the rows: For each row, keep the even indexed columns, discard the odd indexed columns
1 2Downsample columns along the rows: For each column, keep the even indexed rows, discard the odd indexed rows
2 1
1 2
Upsample columns along the rows: For each row, insert zeros at between every other sample (column)
Upsample rows along the columns: For each column, insert zeros at between every other sample (row)
Implementing 2D-DWT
Decomposition
ROW i
CO
LU
MN
j
Reconstruction
)(1
hkD
)(1
vkD
)(1
dkD
1kA 1 2
1 2
1 2
1 2
H
G
H
G
2 1
2 1
H
G
ORIGINALIMAGE
LL
LH
HL
HH
2-D DWT ON MATLAB
Load Image
(must be.mat file)
Choosewavelet type
HitAnalyze
Choosedisplayoptions