Message Boards Message Boards

Build a Zero Tree/Quad Tree on the output of a CDFWavelet[] Transform?

GROUPS:

Hi, I have noticed that there is no way to get subband decompositions out of the DiscreeteWaveletTransform[] with CDFWavelet[] that is of size a power of two. For example, consider the following code fragment:

data = RandomReal[{0, 1}, {16, 16}];
dwd = DiscreteWaveletTransform[data, CDFWavelet[]];
dwd["Dimensions"]

(*output*)
{{0} -> {12, 12}, {1} -> {12, 12}, {2} -> {12, 12}, {3} -> {12, 
12}, {0, 0} -> {10, 10}, {0, 1} -> {10, 10}, {0, 2} -> {10, 
10}, {0, 3} -> {10, 10}, {0, 0, 0} -> {9, 9}, {0, 0, 1} -> {9, 
9}, {0, 0, 2} -> {9, 9}, {0, 0, 3} -> {9, 9}, {0, 0, 0, 0} -> {9, 
9}, {0, 0, 0, 1} -> {9, 9}, {0, 0, 0, 2} -> {9, 9}, {0, 0, 0, 
3} -> {9, 9}}

Giving, for example, a first level composition of LH detail coefficients of dimension 12 by 12 (instead of 8 by 8). This presents a problem for my application (image compression using zero trees/quad trees). The coefficient matrices should be a power of two sizes to construct quad trees across subbands. A quad tree is parent-child dependency tree between pixels that have the same orientation across wavelet decomposition subbands. Mostly each node in a coarse level has four child nodes in the next finer level at the same spatial position.

Is there a way to produce appropriately sized wavelet decompositions? I know MATLAB can do so using periodic extension mode for dwt2 function. What is a possible equivalent in Mathematica?

POSTED BY: Hamood Khan
Answer
1 month ago

Group Abstract Group Abstract