Table of Contents

NAME

QccWAVWaveletAnalysis3D, QccWAVWaveletSynthesis3D - separable wavelet analysis/synthesis of a 3D signal

SYNOPSIS

#include "libQccPack.h"

int QccWAVWaveletAnalysis3D(QccVolume volume, int num_frames, int num_rows, int num_cols, int phase_frame, int phase_row, int phase_col, const QccWAVWavelet *wavelet);

int QccWAVWaveletSynthesis3D(QccVolume volume, int num_frames, int num_rows, int num_cols, int phase_frame, int phase_row, int phase_col, const QccWAVWavelet *wavelet);

DESCRIPTION

QccWAVWaveletAnalysis3D() performs one level of a separable 3D wavelet decomposition for a three-dimensional signal, volume, which is represented as a volume of num_frames frames, num_rows rows, and num_cols columns. Essentially, QccWAVWaveletAnalysis3D() calls QccWAVWaveletAnalysis2D(3) once for each frame of the volume, and then QccWAVWaveletAnalysis1D(3) for each vector in the temporal direction. phase_frame, phase_row, and phase_col indicate whether the frames, rows, and columns, respectively, of the image start with even- or odd-indexed samples. Usually, one assumes that the upper corner of the image cube is indexed as (0, 0, 0) - in this case, phase_frame, phase_row, and phase_col would all be QCCWAVWAVELET_PHASE_EVEN. In any event, phase_frame, phase_row, and phase_col are passed with each call to QccWAVWaveletAnalysis2D(3) and QccWAVWaveletAnalysis1D(3) as appropriate. The result of the separable decomposition is returned in volume.

QccWAVWaveletSynthesis3D() performs one level of separable wavelet synthesis for a 3D signal. Subbands in volume are assumed to be organized as described above for the output of QccWAVWaveletAnalysis3D(). QccWAVWaveletSynthesis3D() calls QccWAVWaveletSynthesis1D(3) once for each vector in the temporal direction, then QccWAVWaveletSynthesis2D(3) for each frame. The result of the separable wavelet synthesis is returned in volume.

Note: In general, you will probably want to use QccWAVWaveletDyadicDWT3D(3) and QccWAVWaveletInverseDyadicDWT3D(3) , or QccWAVWaveletPacketDWT3D(3) and QccWAVWaveletInversePacketDWT3D(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.

RETURN VALUES

These routines return 0 on success and 1 on error.

SEE ALSO

QccWAVWaveletAnalysis1D(3) , QccWAVWaveletSynthesis1D(3) , QccWAVWaveletAnalysis2D(3) , QccWAVWaveletSynthesis2D(3) , QccWAVWaveletDyadicDWT3D(3) , QccWAVWaveletInverseDyadicDWT3D(3) , QccWAVWaveletPacketDWT3D(3) , QccWAVWaveletInversePacketDWT3D(3) , QccWAVWavelet(3) , QccPackWAV(3) , QccPack(3)

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.

AUTHOR

Copyright (C) 1997-2021 James E. Fowler


Table of Contents



Get QccPack at SourceForge.net. Fast, secure and Free Open Source software downloads