int QccWAVWaveletLWT3DInt(const QccVolumeInt input_volume,
QccVolumeInt output_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 QccWAVInverseWaveletLWT3DInt(const
QccVolumeInt input_volume, QccVolumeInt output_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);
origin_frame, origin_row, and origin_col give the frame, row, and column index numbers of the upper-corner sample of input_volume and are used to determine the phases of subsampling in each level of the signal decomposition. In most cases, input_volume starts at (0, 0, 0), so origin_frame, origin_row, and origin_col are all 0.
subsample_pattern_frame, subsample_pattern_row, and subsample_pattern_col may be either QCCWAVWAVELET_PHASE_EVEN or QCCWAVWAVELET_PHASE_ODD, indicating whether even- or odd-phase subsampling is desired along each frame, row, and column, respectively. In the usual case, even subsampling is normally used.
In the case that num_frames is even, all eight "subbands" of the LWT have the same number of frames. On the other hand, if num_frames is odd, four of the eight subbands will be one frame longer than the others. Which subbands will be longer will depend on whether origin_frame is odd or even. Likewise, num_rows and origin_rows, and num_cols and origin_col, determine if the subbands have the same number of rows and columns, respectively, and which ones are wider if not.
QccWAVWaveletLWT3DInt() is implemented as a separable decomposition using 1D LWTs via calls to QccWAVWaveletLWTInt() and 2D LWTs via calls to QccWAVWaveletLWT2DInt().
QccWAVWaveletInverseLWT3DInt() performs the opposite operation as QccWAVWaveletLWT3DInt(). That is, the subbands are extracted from input_volume and "interleaved" to produce output_volume.
For both of these routines, output_volume must be allocated to sufficient size before calling the routine.
I. Daubechies and W. Sweldens, "Factoring Wavelet Transforms Into Lifting Steps," J. Fourier Anal. Appl., vol. 4, no. 3, pp. 245-267, 1998.