Table of Contents

NAME

QccWAVWaveletDyadicDWT3D, QccWAVWaveletInverseDyadicDWT3D - separable dyadic 3D discrete wavelet transform and inverse transform for a 3D signal

SYNOPSIS

#include "libQccPack.h"

int QccWAVWaveletDyadicDWT3D(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 num_scales, const QccWAVWavelet *wavelet);

int QccWAVWaveletInverseDyadicDWT3D(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 num_scales, const QccWAVWavelet *wavelet);

DESCRIPTION

QccWAVWaveletDyadicDWT3D() performs a separable dyadic 3D discrete wavelet transform (DWT) of a three-dimensional signal, volume, which is represented as a volume of num_frames frames, num_rows rows, and num_cols columns. origin_frame, origin_row, and origin_col indicates the frame, row, and column indices, respectively, of the upper corner of the image cube. Usually, one assumes that the upper corner of the image cube is indexed as (0, 0, 0) - in this case, origin_frame, origin_row, and origin_col would all be zero. num_scales gives the number of scales, or levels, of the decomposition. QccWAVWaveletDyadicDWT3D() implements a dyadic, or octave, decomposition of volume; that is, the low-low-low subband (baseband) is recursively decomposed into one lowpass band and seven highpass bands for each level of decomposition, each of which being one eighth the size of the baseband that was decomposed. QccWAVWaveletDyadicDWT3D() calls QccWAVWaveletAnalysis3D(3) for each level of decomposition, using the baseband subband for the current level of decomposition as input. As a result, the transform recursively decomposes the upper corner of the input volume.

QccWAVWaveletInverseDyadicDWT3D() performs the corresponding separable dyadic 3D inverse DWT of volume which is assumed to have been produced by QccWAVWaveletDyadicDWT3D(). num_scales gives the number of levels of decomposition that exist in volume. QccWAVWaveletInverseDyadicDWT3D() calls QccWAVWaveletSynthesis3D(3) for each level of synthesis.

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 dyadic 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).

RETURN VALUES

These routines return 0 on success and 1 on error.

SEE ALSO

QccWAVWaveletAnalysis3D(3) , QccWAVWaveletSynthesis3D(3) , QccWAVSubbandPyramid3DDWT(3) , QccWAVSubbandPyramid3DInverseDWT(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