int QccWAVSubbandPyramid3DShapeAdaptiveDWT(QccWAVSubbandPyramid3D
*subband_pyramid, QccWAVSubbandPyramid3D *mask, int transform_type, int
temporal_num_levels, int spatial_num_levels, const QccWAVWavelet *wavelet);
int QccWAVSubbandPyramid3DInverseShapeAdaptiveDWT(QccWAVSubbandPyramid3D
*subband_pyramid, QccWAVSubbandPyramid3D *mask, const QccWAVWavelet *wavelet);
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.
mask is the transparency mask defining the shape of the data to be transformed; the volume field of mask is passed as the transparency mask to QccWAVWaveletShapeAdaptiveDyadicDWT3D(3) or QccWAVWaveletShapeAdaptivePacketDWT3D(3) . During the process of performing the 3D SA-DWT, the mask is transformed with a Lazy wavelet transform so as to correctly indicate where valid coefficients reside in the wavelet domain in the transformed subband_pyramid. The transformed mask is return in mask upon completion of QccWAVWaveletSubbandPyramid3DShapeAdaptiveDWT().
QccWAVSubbandPyramid3DInverseShapeAdaptiveDWT() calls QccWAVWaveletInverseShapeAdaptiveDyadicDWT3D(3) or QccWAVWaveletInverseShapeAdaptivePacketDWT3D(3) to perform a separable 3D inverse SA-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 QccWAVSubbandPyramid3DInverseShapeAdaptiveDWT(). mask should be the Lazy-wavelet transformed mask that was output by QccWAVWaveletSubbandPyramid3DShapeAdaptiveDWT(). Upon return from QccWAVSubbandPyramid3DInverseShapeAdaptiveDWT(), mask is the original transparency mask; i.e., the mask that indicates where valid data resides in the original spatial domain.
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.
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.