Vectorization of the 2D Wavelet Lifting Transform Using SIMD Extensions
The Lifting Scheme - Topics Reminder:approximations,details Haar wavelet transform Lifting scheme...
-
date post
20-Dec-2015 -
Category
Documents
-
view
224 -
download
2
Transcript of The Lifting Scheme - Topics Reminder:approximations,details Haar wavelet transform Lifting scheme...
The Lifting Scheme - Topics
Reminder:approximations,details Haar wavelet transform Lifting scheme Update Higher order extensions
One Stage Filtering
Approximations and details: The low-frequency content is the most
important part in many applications, and gives the signal its identity.
This part is called “Approximations”
The high-frequency gives the ‘flavor’, and is called “Details”
Approximations and Details:
Approximations:low-frequency components of the signal
Details: high-frequency components
Input Signal
LPF
HPF
A
D
Decimation
The former process produces twice the data To correct this, we Down sample (or: Decimate) the
filter output by two.
A complete one stage block :
Input Signal
LPF
HPF
A*
D*
Example*:
* Wavelet used: db2
Multi-level Decomposition
Iterating the decomposition process, breaks the input signal into many lower-resolution components: Wavelet decomposition tree:
Low pass filter high pass filter
A Simple Example: The Haar Wavelet
Consider two neighboring samples a and b of a sequence.
- a and b have some correlation.
A simple linear transform:
High correlation
- small |d|, fewer bits representation.
(i.e. a=b,d=0)
No loss of any information Reconstruction formula of a and b:
The Haar Wavelet Con’t
The key behind Haar Wavelet Transform:these reconstruction formulas can be found by inverting a 2x2 matrix.
The Haar Wavelet Con’t Signal Sn of 2n sample values Sn,l:
Sn = {Sn,l | 0=< l <= 2n}
Apply average (Sn-1) and difference (dn-1) transform onto each pair:
a = S2l, b = S2l+1 Sn-1,l = Sn,2l+Sn,2l
- 2n-1 pairs (l=0…2n-1) 2 dn-1,l = Sn,2l+1-Sn,2l Recover the original signal Sn from Sn-1 and dn-1
The Haar Wavelet Con’t
Sn-1 as Approximations
dn-1 as Details
Signal with local coherence
- approximations closely resembles the
original signal
- detail is very small (efficient representation)
The Haar Wavelet Con’t
Applying the same transform (averages and differences) to Sn-1 itself.
Split Sn-1 to (yet) coarser signal Sn-2 and another difference signal dn-2,each of them contain 2n-2 samples.
We can repeat this transform n times till S0 contains only one sample S0,0.
This is the Haar transform
The Haar transform
Structure of the wavelet transform: recursively split into averages and differences
Sn
Sn-1 dn-1
Sn-2 dn-2
S0 d0
S1 d1
The Haar transform Con’t
We end up with:
- n detail signals dj (0<=j<=n-1),
each with 2j coefficients
- one signal s0 containing only one sample
s0,0 - the average of all the samples
of the original signal.
Inverse Haar transform
Start from S0 and dj for 0<=j<n and obtain Sn again.
* note that the total number of coefficients after transform is 1 for S0 plus 2j for each dj.
(the exact number of samples of the original signal). n-1
1+∑ 2j = 2n
j=0
The Haar transform
d0 d1 dn-2,l dn-1,l
S0 S1 S2 … Sn-1,l Sn,l
Structure of the inverse wavelet transform: recursively merge averages and differences.
The Haar transform Con’t
The Haar transform can be thought of as applying a NxN matrix (N = 2n) to the signal Sn.
- The cost of computing the transform is
O(N).
(FFT cost is O(NlogN) and linear
transformation of
an N vector is O(N2)).
Haar Transform in-place We want to overwrite old values with new values.
First step:
compute the difference: d=b-a
and store it in b location.
Second step:
We use a and d to compute the average: S=a+d/2
and store it in a location.
a+ = b/2 ; b -= a
Haar Transform in-place Con’t
Inverse: run code backwards!
a- = b/2 ; b+ = a
This particular scheme is a simple instance of the lifting scheme
The Lifting Scheme
Consider a signal Sn with 2n samples .
Goal: transform the signal into: - a coarser signal Sn-1 - a detail signal dn-1
3 steps: - Split - Predict - Update
The Lifting Scheme - Split divide the input data into: - even indexed samples Sn. - odd indexed samples Sn+1. Lazy wavelet transform
The Lifting Scheme - Predict
predict the odd elements from the even elements-output detail.
Sn-1
detail
Example – Predict using Haar
The even sample is the prediction for the odd sample.
The detail dn-1 is the difference between the
odd sample and its predictor:
odd sample left neighbouring even sample - predictor dn-1= Sn,2l+1- Sn,2l Predict
- - -
detail
Note: perfect if function is constant, detail coefficients zero
General Case - Predict Detail = difference between odd element and predict function calculated from the even elements
dn-1=oddn - P(evenn)
The Lifting Scheme - Update
follows the predict phase. The approximations Sn-1 (the signal for next
step) should maintain the average of the original signal Sn.
smoother input for the next step of the wavelet transform.
Sn-1 = evenj,i + U( dn-1)
Example – Update Haar
Sets Sn-1 to be the average of the even/odd
pair (e.g., the even element si and its odd successor, si+1):
Sn-1 = even j,i + odd j, i
2
Haar transform update step:
recover the original value (from predict step) :
dn-1= oddj,i - evenj,i => oddj,i = evenj,i + dn-1 Substituting this into the average (prev),
we get :
Sn-1 = even j,i + even j,i + dn-1
2
Sn-1 = even j,I + dn-1 = even + U(dn-1)
2
The Lifting Scheme
The averages (even elements) become the input for the next recursive step of the forward transform.
Sn
Sn-1
dn-1
dn-2
Sn-2
The Lifting Scheme
In place computation:
- (oddj-1,evenj-1): = Split(Sj)
- oddj-1- = P(evenj-1)
- evenj-1+ = U(oddj-1)
Inverse Lifting Scheme
Inverse Lifting Scheme-3 steps Undo Update
dn,S0 given
recover even samples by subtructing the update info:
Sn-1 = evenj,i + U( dn-1)
evenj,i = Sn-1 -U(dn-1)
Haar: Sn,2l = Sn-1,l - dn-1,l/2
Inverse Lifting Scheme - Undo Predict
evenn-1,dn-1 given recover odd samples by adding prediction info:
dn-1 =oddn-1 - P(evenn-1)
oddn-1= dn-1 + (evenn-1) Haar: Sn,2l+1=dn-1,l+Sn,2l
Inverse Lifting Scheme- Merge
zipper odd and even samples
recover original signal-inverse Lazy wavelet: Sn=Merge(evenn-1,oddn-1)
Inverse in place Evenj-1 - = U(oddj-1)
Oddj-1 + = P(evenj-1)
Sj := Merge(oddj-1,evenj-1) Inverse transform: reversing the order of the
operations and flipping the signs
Inverse Lifting Scheme
Undo Update
-
Undo Predict Merge
+
Even values
Odd values
The Lifting Scheme-Example
Sn = X = [ 1 2 3 4 5 6 7 8 ] 2n=8 , n=3
Split:Xe=[2 4 6 8] Xo=[1 3 5 7]
Pred: averaging neighboures (edges:simple subtruction of
one neighbour-can fix by zero padding or wrap
around or reflection)
Pred{Xe} = [2 3 5 7]
dn-1 = d2 = Xo- Pred{Xe} = [-1 0 0 0]
The Lifting Scheme-ExampleUpdate: Sn-1= even j,I + dn-1,l
2Xe=[2 4 6 8] dn-1
= [-1 0 0 0]S2 = even+d2/2 = [1.5 4 6 8]We repeat recursively: Split: S2 is splitted simillarly: Xe=[4 8] Xo=[1.5 6]Pred{Xe} = [4 6] dn-2
= d1 = Xo- Pred{Xe} = [-2.5 0]S1 = even+d1/2 = [2.75 8]Xe=[8] Xo=[2.75]Pred{Xe} = [8] dn-3
= d0 = Xo- Pred{Xe} = [-5.25]S0 = even+d0/2 = [5.375]
The Lifting Scheme-Example The pyramid will be: d2
= [-1 0 0 0] d1 = [-2.5 0] d0 = [-5.25] S0 = [5.375]
Good result(most of elements are 0).
The Lifting Scheme- Inverse Example
We will recover the original signal from the pyramid:
The pyramid : d2 = [-1 0 0 0] , d1 = [-2.5 0],
d0 = [-5.25] , S0 = [5.375] Inverse transform:
Xe =S0 – d0/2 = [8] Pred{Xe} = [8]
Xo=d0+Pred{Xe} = [2.75]
S1 = [2.75 8]
The Lifting Scheme- Inverse Example
Xe=S1 – d1/2 = [4 8] Pred{Xe} = 4 6
Xo=d1+ Pred{Xe} = [1.5 6]
S2 = [1.5 4 6 8]
Xe=S2– d2/2 = [2 4 6 8] Pred{Xe} = 2 3 5 7
Xo=d0+ Pred{Xe} = [1 3 5 7]
S3 = [1 2 3 4 5 6 7 8]
The Lifting Scheme
Suppose Predict and Update are linear.
description of their operation as matrices P and U:
Xonew=Xo-PXe
Xenew =Xe+UXo
new=Xe+UXo-UPXe
or: Xo
new I -P Xo
Xenew U I-UP Xe
The Lifting Scheme - Example 2
Assume: P=I and U=0.5I
Xonew
I -p Xo I -I Xo
Xenew
U I-UP Xe 0.5I 0.5I Xe
Odd elements Even elements
differences average
of
neighbouring pairs
An example:linear wavelet transform Haar - simple and fast wavelet transform Limitations - not smooth enough: blocky Erasing Haar Coefficients:
Fourier analysis not always applicable
The Lifting Scheme
Lifting
Build more powerful versions
An example
linear wavelet transform
linear wavelet transform – Prediction
Linear Prediction
- Use even on either side
- Predictor for odd sample Sn,2l+1: average of
neighboring samples:on left Sn,2l, on right Sn,2l+2
linear wavelet transform - Prediction
linear wavelet transform
Even values are subsampled
linear wavelet transform - Update
Sets Sn-1 to be the average of even and odd elements
2n elements => 2n-1 even elements/averages Example: 2n=8
linear wavelet transform - Update Ex.
Example: 2n=8
-
linear wavelet transform - Update Ex.
sum of the sj-1 elements is equal to the sum of the sj elements, divided by two:
linear wavelet transform - Update
Signal average is not preserved Update Sn-1,l using previously compute detail
signals dn-1,l. Using Neighboring wavelet coefficients:
Sn-1,l=Sn,2l+A(dn-1,l-1+dn-1,l)
Update
Sn-1,l = Sn,2l+A(dn-1,l-1+dn-1,l) A=1/4 to maintain the average
Inverse-easy to compute:
Sn,2l = Sn-1,l - 1/4(dn-1,l-1+dn-1,l) to recover even
Sn,2l+1=dn,l+1/2(Sn,2l+Sn,2l+2) to recover odd
samples
linear wavelet transform
Original signal
linear wavelet transform
linear wavelet transform
Extend
- build higher polynomial order predictors
- Use more (D) neighbors on left and right
Example:
- Cubic polynom interpolating 4 values
- Bilinear Interpolation: the assigned value is
an intermediate value between the 4
nearest pixels :
aweighted sum of the 4 nearest pixels
- Each weight is proportional to the distance
from each existing pixel.
effective weights: -1/16 9/16 9/16 -1/16
Higher Order Prediction
Lifting Scheme - Predict
Linearaverage of neighboring samples:on
dn-1= Sn,2l+1-1/2(S2n+S2n+2)
Bilinearintermediate value between the 4 nearest pixels
Haar The even sample is the
prediction for the odd sample.
dn-1= Sn,2l+1- Sn,2l
Summary
Lifting Scheme - construction of transforms - Haar example - rewriting Haar in place
Three steps - split
- Predict- Update
Summary Predict - detail coefficient is failure of prediction
Update - smooth coefficient to preserve average - B spline C2-ensure smoothness Higher order extensions - increase order of prediction and update
linear wavelet transform - Update (why A=1/4)
=1/2∑Sj[n]