int QccWAVWaveletAnalysis3DInt(QccVolumeInt volume, int num_frames, int num_rows, int num_cols, int phase_frame, int phase_row, int phase_col, const QccWAVWavelet *wavelet);
int QccWAVWaveletSynthesis3DInt(QccVolumeInt volume, int num_frames, int num_rows, int num_cols, int phase_frame, int phase_row, int phase_col, const QccWAVWavelet *wavelet);
QccWAVWaveletSynthesis3DInt() performs one level of separable wavelet synthesis for a 3DInt signal. Subbands in volume are assumed to be organized as described above for the output of QccWAVWaveletAnalysis3DInt(). QccWAVWaveletSynthesis3DInt() calls QccWAVWaveletSynthesis1DInt(3) once for each vector in the temporal direction, then QccWAVWaveletSynthesis2DInt(3) for each frame. The result of the separable wavelet synthesis is returned in volume.
Note: In general, you will probably want to use QccWAVWaveletDyadicDWT3DInt(3) and QccWAVWaveletInverseDyadicDWT3DInt(3) , or QccWAVWaveletPacketDWT3DInt(3) and QccWAVWaveletInversePacketDWT3DInt(3) , for implementing a discrete wavelet transform and its inverse since these routines allow any number of scales, or levels, of decomposition to be performed.
In traditional floating-point lifting, the prediction and update steps are generally followed by a single application of scaling by a constant in order to produce the usual unitary normalization. This scaling step is somewhat problematic for integer-valued lifting since the scaling constant is usually not an integer. In applications wherein unitary scaling is not required (e.g., in some applications that process each subband completely independently), the scaling step is simply dropped in order to implement an integer-valued version of the transform. Alternatively, one can append three additional lifting steps to implement the scaling; these additional lifting steps can then be rendered integer-valued via appropriate rounding (e.g., Xiong et al.) making the transforms approximately normalized. This latter approach of scaling via additional lifting steps is employed in the integer-valued lifting schemes implemented in QccPack.
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.
B.-J. Kim, Z. Xiong, and W. A. Pearlman, "Low Bit-Rate Scalable Video Coding with 3-D Set Partitioning in Hierarchical Trees (3-D SPIHT)," IEEE Transactions on Circuits and Systems for Video Technology, vol. 10, no. 8, pp. 1374-1387, December 2000.