Undecimated Wavelet Transform (a trous algorithm) - how to determine 'anchor'/'center' of convolution filter

Started by HannesF99 September 5, 2013
i am currently implementing the 'Undecimated Wavelet Transform' with the 'a
trous' algorithm. See e.g.,
section II-A.

As far as I understand, the implementation (in 1D) for the 'decomposition'
and 'reconstruction' phase is very simple, it boils down to the convolution
with a low-pass and high-pass filter (where for levels > 0, one has to add
zeros between the coefficients of the filters).

E.g. for the decomposition filter of the 'Bior1.3' wavelet, i have the
following filters for level 0, 1, 2 of size 6, 11 (6+5) and 16 (6 + 10):

level 0: [c1 c2 c3 c4 c5 c6]

level 1: [c1 0 c2 0 c3 0 c4 0 c5 0 c6]

level 2: [c1 0 0 c2 0 0 c3 0 0 c4 0 0 c5 0 0 c6]

I hope I inserted the zeros on the right places, if not please correct me.
The actual values of the coefficients c1, c2, c3, c4, c5, c6 can be found

My questions is now, what is the 'anchor' of this filter kernels, how can
the anchor be calculated in a general way (for decomposition/reconstruction
filters of different wavelet classes) ? I suppose its something like
'anchor_index = round_down(kernel_size / 2)', when anchor_index is
0-indexed, but i'm not sure.

Note that for implementing a convolution with a certain kernel, one has to
know always the 'anchor' of the kernel (the index of the coefficient in the
filter which is multiplied with the 'current' array element).


Posted through