int QccWAVWaveletPacketDWT3D(QccVolume volume, int num_frames, int num_rows, int num_cols, int origin_frame, int origin_row, int origin_col, int subsample_pattern_frame, int subsample_pattern_row, int subsample_pattern_col, int temporal_num_scales, int spatial_num_scales, const QccWAVWavelet *wavelet);
int QccWAVWaveletInversePacketDWT3D(QccVolume volume, int num_frames, int num_rows, int num_cols, int origin_frame, int origin_row, int origin_col, int subsample_pattern_frame, int subsample_pattern_row, int subsample_pattern_col, int temporal_num_scales, int spatial_num_scales, const QccWAVWavelet *wavelet);
temporal_num_scales and spatial_num_scales give the number of scales, or levels, of the decomposition. QccWAVWaveletPacketDWT3D() implements a wavelet-packet decomposition of volume; that is, each temporal vector is decomposed with temporal_num_scales temporal decompositions (via a call to QccWAVWaveletDWT1D(3) on each temporal vector), and then each frame of the volume is decomposed with spatial_num_scales spatial decompositions (via a call to QccWAVWaveletDWT2D(3) on each frame).
QccWAVWaveletInversePacketDWT3D() performs the corresponding separable wavelet-packet 3D inverse DWT of volume which is assumed to have been produced by QccWAVWaveletPacketDWT3D(). temporal_num_scales and spatial_num_scales give the number of levels of decomposition that exist in volume.
subsample_pattern_frame, subsample_pattern_row, and subsample_pattern_col indicate the even- or odd-phase subsampling to be used at each level of frame, row, and column decomposition. In most applications, even subsampling at all levels is desired, in which case subsample_pattern_frame, subsample_pattern_row, and subsample_pattern_col should all be set to zero. In more general settings, when some mixture of even- and odd-phase subsampling is desired, subsample_pattern_frame, subsample_pattern_row, and subsample_pattern_col can be integers between 0 and (2 ^ num_levels) - 1. In these integers, the jth bit (where j = 1 is the least-significant bit) indicates whether the jth level of decomposition employs even or odd subsampling (0 = even, 1 = odd). For example, if subsample_pattern_row is 5, then the first and third row decompositions use odd-phase subsampling, while all others use even subsampling.
Use QccWAVSubbandPyramid3DDWT(3) and QccWAVSubbandPyramid3DInverseDWT(3) to perform a separable wavelet-packet 3D DWT or inverse DWT on a QccWAVSubbandPyramid3D data structure (which is the recommended way to do it, since the QccWAVSubbandPyramid3D structure stores the number of levels of decomposition along with the transform coefficients).
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.
M. Antonini, M. Barlaud, P. Mathieu, and I. Daubechies, "Image Coding Using Wavelet Transform," IEEE Transactions on Image Processing, vol. 1, pp. 205-220, April 1992.
I. Daubechies and W. Sweldens, "Factoring Wavelet Transforms Into Lifting Steps," J. Fourier Anal. Appl., vol. 4, no. 3, pp. 245-267, 1998.