Table of Contents

NAME

QccWAVWaveletShapeAdaptiveDyadicDWT3DInt, QccWAVWaveletInverseShapeAdaptiveDyadicDWT3DInt - integer-valued separable dyadic 3D shape-adaptive discrete wavelet transform and inverse transform for a 3D signal

QccWAVWaveletShapeAdaptivePacketDWT3DInt, QccWAVWaveletInverseShapeAdaptivePacketDWT3DInt - integer-valued separable wavelet-packet 3D shape-adaptive discrete wavelet transform and inverse transform for a 3D signal

SYNOPSIS

#include "libQccPack.h"

int QccWAVWaveletShapeAdaptiveDyadicDWT3DInt(const QccVolumeInt signal, QccVolumeInt mask, QccVolumeInt signal, QccVolumeInt mask, int num_frames, int num_rows, int num_cols, int spatial_num_scales, const QccWAVWavelet *wavelet);

int QccWAVWaveletInverseShapeAdaptiveDyadicDWT3DInt(const QccVolumeInt signal, QccVolumeInt mask, QccVolumeInt signal, QccVolumeInt mask, int num_frames, int num_rows, int num_cols, int spatial_num_scales, const QccWAVWavelet *wavelet);

int QccWAVWaveletShapeAdaptivePacketDWT3DInt(const QccVolumeInt signal, QccVolumeInt mask, QccVolumeInt signal, QccVolumeInt mask, int num_frames, int num_rows, int num_cols, int temporal_num_scales, int spatial_num_scales, const QccWAVWavelet *wavelet);

int QccWAVWaveletInverseShapeAdaptivePacketDWT3DInt(const QccVolumeInt signal, QccVolumeInt mask, QccVolumeInt signal, QccVolumeInt mask, int num_frames, int num_rows, int num_cols, int temporal_num_scales, int spatial_num_scales, const QccWAVWavelet *wavelet);

DESCRIPTION

QccWAVWaveletShapeAdaptiveDyadicDWT3DInt() and QccWAVWaveletShapeAdaptivePacketDWT3DInt() both perform an integer-valued separable 3D shape-adaptive discrete wavelet transform (SA-DWT) of a three-dimensional signal, signal, which is represented as a volume of num_frames frames, num_rows rows, and num_cols columns.

QccWAVWaveletShapeAdaptiveDyadicDWT3DInt() implements a dyadic decomposition of signal; that is, the low-low subband (baseband) is recursively decomposed into one lowpass band and seven highpass bands for each level of decomposition. spatial_num_scales gives the number of scales, or levels, of the decomposition.

QccWAVWaveletShapeAdaptivePacketDWT3DInt() implements a wavelet-packet decomposition of signal; that is, each temporal vector is decomposed with temporal_num_scales 1D temporal decompositions, and then each frame of the volume is decomposed with spatial_num_scales 2D spatial decompositions.

mask indicates where the original input signal exists. That is, mask indicates the regions of support in the original input signal. Where mask is less than or equal to QCCALPHA_TRANSPARENT, there is no signal, and where mask is greater than QCCALPHA_TRANSPARENT, signal exists and is transformed (see QccAlpha(3) ).

Essentially, the 3D SA-DWT is implemented by performing 1D SA-DWTs in each direction; see QccWAVWaveletShapeAdaptiveDWT1DInt(3) for specific details on how this 1D SA-DWT is calculated.

The transparency mask is transformed (with a 3D Lazy wavelet transform) alongside the signal so that, upon completion of the transform, mask indicates where valid coefficients, i.e., coefficients resulting from non-transparent regions in the original input signal, reside in the output signal. The transformed mask is returned in mask, overwriting the original input mask.

Currently, QccWAVWaveletShapeAdaptiveDWT1DInt() supports only biorthogonal wavelets. These may be used with symmetric extension only.

QccWAVWaveletInverseShapeAdaptiveDyadicDWT3DInt() and QccWAVWaveletInverseShapeAdaptivePacketDWT3DInt() perform the corresponding separable 3D inverse SA-DWT of signal which is assumed to have been produced by QccWAVWaveletShapeAdaptiveDyadicDWT3DInt() or QccWAVWaveletShapeAdaptivePacketDWT3DInt(), respectively. mask should be the corresponding Lazy-wavelet transformed mask also produced by QccWAVWaveletShapeAdaptiveDyadicDWT3DInt() or QccWAVWaveletShapeAdaptivePacketDWT3DInt(). spatial_num_scales and temporal_num_scales give the number of levels of decomposition that exist in signal.

Use QccWAVSubbandPyramid3DIntShapeAdaptiveDWT(3) and QccWAVSubbandPyramid3DIntInverseShapeAdaptiveDWT(3) to perform a 3D separable SA-DWT or inverse SA-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.

NOTES

SA-DWTs have been recently included in Version 2 of the MPEG-4 standard, wherein they are used for texture coding of arbitrarily shaped still objects. Li and Li (see below) elaborate at length on the shape-adaptive DWT used in MPEG-4, and also consider some variants not included in the MPEG-4 standard. See QccWAVWaveletShapeAdaptiveDWT1DInt(3) for details on the differences between the QccPack SA-DWT implementation, the MPEG-4 specification, and Li and Li's descriptions. See QccWAVWaveletShapeAdaptiveDWT1DInt(3) also for a description of how integer-valued lifting is implemented.

SEE ALSO

QccWAVWaveletShapeAdaptiveDWT1DInt(3) , QccWAVWaveletInverseShapeAdaptiveDWT1DInt(3) , QccWAVSubbandPyramid3DIntShapeAdaptiveDWT(3) , QccWAVSubbandPyramid3DIntInverseShapeAdaptiveDWT(3) , QccWAVWavelet(3) , QccPackWAV(3) , QccPack(3)

S. Li and W. Li, "Shape-Adaptive Discrete Wavelet Transforms for Arbitrarily Shaped Visual Object Coding," IEEE Transactions on Circuits and Systems for Video Coding, vol. 10, pp. 725-743, August 2000.

ISO/IEC 14496-2, "Information Technology -- Coding of audio-visual objects -- Part 2: Visual," MPEG-4 Standard, Amendment 1, July 2000.

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