Table of Contents

NAME

QccWAVSubbandPyramid3DDWT, QccWAVSubbandPyramid3DInverseDWT - separable 3D discrete wavelet transform and inverse transform for subband-pyramid data

SYNOPSIS

#include "libQccPack.h"

int QccWAVSubbandPyramid3DDWT(QccWAVSubbandPyramid3D *subband_pyramid, int transform_type, int temporal_num_levels, int spatial_num_levels, const QccWAVWavelet *wavelet);
int QccWAVSubbandPyramid3DInverseDWT(QccWAVSubbandPyramid3D *subband_pyramid, const QccWAVWavelet *wavelet);

DESCRIPTION

QccWAVSubbandPyramid3DDWT() performs a separable 3D discrete wavelet transform (DWT) on the volume field of subband_pyramid. transform_type determines whether the transform is a dyadic or wavelet-packet decomposition. For a dyadic decomposition, transform_type should be QCCWAVSUBBANDPYRAMID3D_DYADIC; for a wavelet-packet decomposition, transform_type should be QCCWAVSUBBANDPYRAMID3D_PACKET. QccWAVSubbandPyramid3DDWT() implements the wavelet transform with a call to QccWAVWaveletDyadicDWT3D(3) or QccWAVWaveletPacketDWT3D(3) as appropriate.

If a dyadic decomposition is chosen (transform_type equal to QCCWAVSUBBANDPYRAMID3D_DYADIC), spatial_num_levels and temporal_num_levels must be set to the same value which indicates the number of levels (scales) of dyadic decomposition to perform. In this case, both the spatial_num_levels and temporal_num_levels fields of subband_pyramid are set to this value. Alternatively, if a wavelet-packet decomposition is chosen (transform_type equal to QCCWAVSUBBANDPYRAMID3D_PACKET), then spatial_num_levels and temporal_num_levels may be different and indicate the number of spatial decompositions and temporal decompositions, respectively, performed when calculating the wavelet-packet transform.

The origin_frame, origin_row, origin_col, subsample_pattern_frame, subsample_pattern_row, and subsample_pattern_col parameters as needed for QccWAVWaveletDyadicDWT3D(3) or QccWAVWaveletPacketDWT3D(3) are extracted from the corresponding fields of subband_pyramid.

QccWAVSubbandPyramid3DInverseDWT() calls QccWAVWaveletInverseDyadicDWT3D(3) or QccWAVWaveletInversePacketDWT3D(3) to perform a separable 3D inverse DWT on the volume field of subband_pyramid. The transform_type field of subband_pyramid indicates the type (dyadic or wavelet-packet) of transform, while the numbers of levels of the inverse transform is retrieved from the spatial_num_levels and temporal_num_levels fields of subband_pyramid. Both spatial_num_levels and temporal_num_levels are set to 0 upon return of QccWAVSubbandPyramid3DInverseDWT().

RETURN VALUES

These routines return 0 on success and 1 on error.

SEE ALSO

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