Table of Contents

NAME

QccWAVWaveletPacketDWT3DInt, QccWAVWaveletInversePacketDWT3DInt - integer-valued separable wavelet-packet 3D discrete wavelet transform and inverse transform for a 3D signal

SYNOPSIS

#include "libQccPack.h"

int QccWAVWaveletPacketDWT3DInt(QccVolumeInt 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 QccWAVWaveletInversePacketDWT3DInt(QccVolumeInt 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

QccWAVWaveletPacketDWT3DInt() performs an integer-valued 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. wavelet must indicate an integer-valued lifting scheme (see QccWAVLiftingSchemeInteger(3) ).

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

QccWAVWaveletInversePacketDWT3DInt() performs the corresponding separable wavelet-packet 3D inverse DWT of volume which is assumed to have been produced by QccWAVWaveletPacketDWT3DInt(). 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 QccWAVSubbandPyramid3DIntDWT(3) and QccWAVSubbandPyramid3DIntInverseDWT(3) to perform a separable wavelet-packet 3D DWT or inverse DWT on a QccWAVSubbandPyramid3DInt data structure (which is the recommended way to do it, since the QccWAVSubbandPyramid3DInt 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

QccWAVWaveletDWT1DInt(3) , QccWAVWaveletInverseDWT1DInt(3) , QccWAVWaveletDWT2DInt(3) , QccWAVWaveletInverseDWT2DInt(3) , QccWAVSubbandPyramid3DIntDWT(3) , QccWAVSubbandPyramid3DIntInverseDWT(3) , QccWAVWaveletDyadicDWT3DInt(3) , QccWAVWaveletInverseDyadicDWT3DInt(3) , QccWAVWavelet(3) , QccPackWAV(3) , QccPack(3)

A. R. Calderbank, I. Daubechies, W. Sweldens, B.-L. Yeo, "Lossless Image Compression Using Integer to Integer Wavelet Transforms", in Proceedings of the International Conference on Image Processing, Lausanne, Switzerland, pp. 596-599, September 1997.

Z. Xiong, X. Wu, S. Cheng, J. Hua, "Lossy-to-Lossless Compression of Medical Volumetric Data Using Three-Dimensional Integer Wavelet Transforms," IEEE Transactions on Medical Imaging, vol. 22, pp. 459-470, March 2003.

I. Daubechies and W. Sweldens, "Factoring Wavelet Transforms Into Lifting Steps," J. Fourier Anal. Appl., vol. 4, no. 3, pp. 245-267, 1998.

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.

AUTHOR

Copyright (C) 1997-2021 James E. Fowler


Table of Contents



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