int QccWAVWaveletLWT3D(const QccVolume input_volume, QccVolume 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 QccWAVInverseWaveletLWT3D(const QccVolume
input_volume, QccVolume 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.
QccWAVWaveletLWT3D() is implemented as a separable decomposition using 1D LWTs via calls to QccWAVWaveletLWT() and 2D LWTs via calls to QccWAVWaveletLWT2D().
QccWAVWaveletInverseLWT3D() performs the opposite operation as QccWAVWaveletLWT3D(). 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.