390 likes | 700 Views
Lifting. Part 1: Introduction Ref: SIGGRAPH96. Outline. Introduction to wavelets and lifting scheme Basic Ideas Split, Predict, Update In-place computation Simple Examples Lifting version of Haar Linear interpolating wavelet. General Concepts.
E N D
Lifting Part 1: Introduction Ref: SIGGRAPH96
Outline • Introduction to wavelets and lifting scheme • Basic Ideas • Split, Predict, Update • In-place computation • Simple Examples • Lifting version of Haar • Linear interpolating wavelet
General Concepts • Wavelets are building blocks that can quickly de-correlate data • Most signals in life have correlation in time and frequency • temporal coherence and banded frequency • Build wavelets that: • Are compactly support (good time resolution; able to localize spatial features) • Have banded spectrum (good frequency resolution) • smoothness (decay towards high freq) • Have vanishing moments (decay towards low freq) more later
How lifting scheme differs from classical wavelets • Developed in 1994 by Wim Sweldens • All constructions are derived in the spatial domain • Faster implementation • In some cases, the number of operations halved • In-place computation • No auxiliary memory required • Easy to invert • In classical derivations, perfect reconstruction must be verified via Fourier transforms Recall how PR of orthogonal wavelets are verified …
Lifting in Second Generation Wavelets • True power of lifting is to construct wavelets in settings where classical (translation and dilation) and Fourier transform cannot be used: • Bounded domain • Avoid ad-hoc solutions: periodicity, zero-padding, reflection around edges … • Wavelets on curves and surfaces • Irregular sampling • …
Basic Ideas • Forward transform: three stages • Split the data into two smaller subsets: s/detail • e.g., interlace sampling (lazy wavelet) • Predict the subset based on the local correlation in the original data • Replace the detail as the difference between data and prediction. (If prediction is reasonable, difference will be small) • Update and maintain some global properties of data with original data • (e.g., overall signal average) • Inverse transform: • Simply reverse order of operations and signs (+|-, *|/)
Original signal difference signal coarsened signal That is, … (Forward Transform) s: even indices d: odd indices sj sj-1, dj-1
Inverse Transform • Observe the similarity with forward transform !
Hi-wire: coarsened signal Schematically, … forward Convention: (水平) – (垂直) Lo-wire: difference signal inverse
Simple Examples Haar (lifting version) Linear Interpolating Wavelet
d s d s Revisit Haara slightly different version Forward Transform Preserve “average”; not “energy”
d s d s Haar (cont) Inverse Transform
Haar and Lifting • Rewrite expressions (forward) b replaces d a replaces s
Haar and Lifting (cont) • Inverse Transform: • Reverse order of operations • exchange plus/minus • Facilitate in-place computation
Note this order is different from Mallat’s order! Ex: Haar (Lifting)
In-place Computation • Only one set of array is used • Data are overwritten during the computation • Saves overhead for allocating multiple arrays Operate on the same piece of memory
Order: has to do with polynomial reproduction (more later) Give exact prediction if function were constant • Predict: how the data fail to be constant • eliminate zeroth order correlation • Order of predictor = 1 • Update: preserve average • zeroth order moment • Order of Update operator = 1
1 0 1 1 0 0 1 0 0 0 0 0 -½ 0 -½ ½ 0 0 ½ 0 1 0 Cascading Scaling Functions Wavelets
1 8 × + 4 × 1 + ½ -2 × -½ + 2 × ½ -½ Double Check Note the wavelet definition is different
Lifting Framework 8 4 9 3 9 3 9 7 3 5 9 7 3 5 -2 2 7 5 7 5 U: to ensure coarsened signal preserves average
Pseudo Codes Forward Inverse
f Lifting Ordering (n=8) final result
About Demo Implementation #define S(j,l) ss[(l)*INCR[JMAX-(j)]] // increment #define D(j,l) ss[INCR[JMAX-((j)+1)]+(l)*INCR[JMAX-(j)]] // offset + increment ndata = 16 JMAX = 4
Linear Interpolating Wavelet • more powerful lifting • Predictor (Order = 2) • Exact for linear data • Update (Order = 2) • Preserve the average and first moment
Preserve average Linear Interpolating Wavelet (Update) use results already computed Propose update of the form :
original signal coarsened signal Linear Wavelet (Update) Preserve average is equivalent to having zero mean difference
Preservation of 1st Moment We will refer this as the dual order of MRA
assume data periodicity Numeric Example (linear wavelet) Forward Average: 26/4 Inverse Average: 52/8
Remarks • By substituting the predictor into update one gets • This is biorthogonal (2,2) of CDF • CDF: Cohen-Daubechies-Feauveau • More computations in this form (and cannot be done in-place) • Inverse transform harder to get (rely on Fourier-based techniques)
Homeworks • Review the derivation of PR for orthogonal wavelets • Verify that reversing order of operations indeed inverses the transform • Write a program that does general lifting. Implement Haar and linear interpolation. Compare. • Verify the CDF (2,2) formula
Homework: lifting version of D4 Speed up ratio!? Wiring diagram!?
Q • In lifting, it seems that forward and inverse use the same P and U boxes. Then, are H_tilda (G_tilda) and H (G) are related? … unlike what we mentioned in biorthogonal wavelets?