Table of Contents

NAME

QccWAVWaveletPacketDWT3D, QccWAVWaveletInversePacketDWT3D - separable wavelet-packet 3D discrete wavelet transform and inverse transform for a 3D signal

SYNOPSIS

#include "libQccPack.h"

int QccWAVWaveletPacketDWT3D(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 temporal_num_scales, int spatial_num_scales, const QccWAVWavelet *wavelet);

int QccWAVWaveletInversePacketDWT3D(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 temporal_num_scales, int spatial_num_scales, const QccWAVWavelet *wavelet);

DESCRIPTION

QccWAVWaveletPacketDWT3D() performs a separable wavelet-packet 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.

temporal_num_scales and spatial_num_scales give the number of scales, or levels, of the decomposition. QccWAVWaveletPacketDWT3D() implements a wavelet-packet decomposition of volume; that is, each temporal vector is decomposed with temporal_num_scales temporal decompositions (via a call to QccWAVWaveletDWT1D(3) on each temporal vector), and then each frame of the volume is decomposed with spatial_num_scales spatial decompositions (via a call to QccWAVWaveletDWT2D(3) on each frame).

QccWAVWaveletInversePacketDWT3D() performs the corresponding separable wavelet-packet 3D inverse DWT of volume which is assumed to have been produced by QccWAVWaveletPacketDWT3D(). temporal_num_scales and spatial_num_scales give the number of levels of decomposition that exist in volume.

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 wavelet-packet 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

QccWAVWaveletDWT1D(3) , QccWAVWaveletInverseDWT1D(3) , QccWAVWaveletDWT2D(3) , QccWAVWaveletInverseDWT2D(3) , QccWAVSubbandPyramid3DDWT(3) , QccWAVSubbandPyramid3DInverseDWT(3) , QccWAVWaveletDyadicDWT3D(3) , QccWAVWaveletInverseDyadicDWT3D(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