# Lifting scheme versus filter banks

I am having some trouble understanding the intuitive connection between the two. I worked through all the theory and learned that Sweldens showed how to derive lifting steps when having admissible filter taps (Daubechies, etc.).

The opposite is simple mathematically, i.e. deriving the filter taps when having discrete lifting steps. However, I dont get how one would come up with 'admissible' lifting steps in the first place, if not by getting them from valid filter taps like Sweldens showed.

Traditional (analysis) filter banks are banks of linear filters followed by downsampling. This is not so efficient, because you convolve and then subsample: possibly a waste of operations. People have found ways to invert the operations, downsample and convolve, with other filters involve the polyphase components (even and odd ones in the two-channel case) of the signal (polyphase matrix). Such matrix can be factored into a product simpler matrices, like diagonal, upper and lower diagonal ones, acting more separately on the polyphase components.

A reinterpretation consists in using the upper matrix on some polyphase component (say, odds) to predict and combine outcome to other components (say, even) to get what is called an update, possibly with scaling factors.

Properties of polyphase matrices tell that this is always possible, yet not unique. And one can save some operations, compute inverses more easily (upper and lower matrices have simpler inverses). So all invertible linear filter banks can be converted in lifting.

But more importantly, one can insert non-linear blocks and still be invertible and efficient. So the lifting is more generic that "linear" filter banks (as long as they have finite support). An example of the above is known as the S-transform: given a sequence of integers $$c[n]$$, you can decompose it into ($$\lfloor \cdot\rfloor$$ denotes rounding down):

• $$l[n] =\Large\lfloor \frac{c[2n]+c[2n+1]}{2}\Large\rfloor$$
• $$h[n] = c[2n]-c[2n+1]$$

How to design a lifting scheme from scratch requires to:

• understand how to split the data into several subsets
• design proper predict and update operators
• choose how to iterate them on different levels.

I do like a couple of papers from people at KU Leuven:

• thank you for your answer. My question related to your last paragraph. How to come up with the block? If I start from the lifting side, do I have to obey specific requirements on the lifting steps? If I start with filters and factor them into lifting steps, it is clear that this is a valid decomposition. But what if I directly want to start with lifting without having filter taps at my disposal? What determines the kind and numbers of lifting steps that one needs to do?
– CD86
Jun 18, 2020 at 7:11
• e.g. Db2 has 3 liftings steps with a varying number of terms. But this is only known because of having factored the associated filters into polyphase matrices before
– CD86
Jun 18, 2020 at 7:14
• I have added a couple of references. While getting lifting schemes from known linear filters can be structured, to design this from scratch requires some of insights about what you want to do Jun 20, 2020 at 10:31
• thank you Laurent. I will take a detailed look at them. appreciate your help!
– CD86
Jul 1, 2020 at 6:22