int QccWAVWaveletShapeAdaptiveDWT2DInt(QccMatrixInt signal, QccMatrixInt mask, int num_rows, int num_cols, int num_scales, const QccWAVWavelet *wavelet);
int QccWAVWaveletInverseShapeAdaptiveDWT2DInt(QccMatrixInt signal, QccMatrixInt mask, int num_rows, int num_cols, int num_scales, const QccWAVWavelet *wavelet);
mask indicates where the original input signal exists. That is, mask indicates the regions of support in the original input signal. Where mask is less than or equal to QCCALPHA_TRANSPARENT, there is no signal, and where mask is greater than QCCALPHA_TRANSPARENT, signal exists and is transformed (see QccAlpha(3) ).
Essentially, the 2D SA-DWT is implemented by doing one scale of a 1D SA-DWT for each row, and then for each column. See QccWAVWaveletShapeAdaptiveDWT1DInt(3) for specific details on how this 1D SA-DWT is calculated.
The transparency mask is transformed (with a 2D Lazy wavelet transform) alongside the signal so that mask indicates where valid coefficients, i.e., coefficients resulting from non-transparent regions in the original input signal, reside in the output signal. The transformed mask is returned in mask, overwriting the original input mask.
Currently, QccWAVWaveletShapeAdaptiveDWT1DInt() supports only integer-valued biorthogonal wavelets. These may be used with symmetric extension only.
QccWAVWaveletInverseShapeAdaptiveDWT2DInt() performs the corresponding separable 2D inverse SA-DWT of signal which is assumed to have been produced by QccWAVWaveletShapeAdaptiveDWT2DInt(). mask should be the corresponding Lazy-wavelet transformed mask also produced by QccWAVWaveletShapeAdaptiveDWT2DInt(). num_scales gives the number of levels of decomposition that exist in signal.
Use QccWAVSubbandPyramidIntShapeAdaptiveDWT(3) and QccWAVSubbandPyramidIntInverseShapeAdaptiveDWT(3) to perform a 2D separable SA-DWT or inverse SA-DWT on a QccWAVSubbandPyramidInt data structure (which is the recommended way to do it, since the QccWAVSubbandPyramidInt structure stores the number of levels of decomposition along with the transform coefficients).
S. Li and W. Li, "Shape-Adaptive Discrete Wavelet Transforms for Arbitrarily Shaped Visual Object Coding," IEEE Transactions on Circuits and Systems for Video Coding, vol. 10, pp. 725-743, August 2000.
ISO/IEC 14496-2, "Information Technology -- Coding of audio-visual objects -- Part 2: Visual," MPEG-4 Standard, Amendment 1, July 2000.
A. R. Calderbank, I. Daubechies, W. Sweldens, B.-L. Yeo, "Lossless Image Compression Using Integer to Integer Wavelet Transforms", in Proceedings of the International Conference on Image Processing, Lausanne, Switzerland, pp. 596-599, September 1997.
Z. Xiong, X. Wu, S. Cheng, J. Hua, "Lossy-to-Lossless Compression of Medical Volumetric Data Using Three-Dimensional Integer Wavelet Transforms," IEEE Transactions on Medical Imaging, vol. 22, pp. 459-470, March 2003.
I. Daubechies and W. Sweldens, "Factoring Wavelet Transforms Into Lifting Steps," J. Fourier Anal. Appl., vol. 4, no. 3, pp. 245-267, 1998.