The input matrix m is decomposed into four quarter-size matrices. Because 2D discrete wavelet decomposition is separable, it breaks down into 1D filtering and downsampling. The whole decomposition process can be depicted as in the diagram below:
In the above diagram, the filters are determined by the wavelet chosen.
The computation is implemented with a NAG function: nag_dwt2().