Developer Reference

  • 2020
  • 07/15/2020
  • Public Content
Contents

WTInv

Computes the inverse wavelet transform.

Syntax

IppStatus ippsWTInv_32f(const Ipp32f*
pSrcLow
, const Ipp32f*
pSrcHigh
, int
srcLen
, Ipp32f*
pDst
, IppsWTInvState_32f*
pState
);
IppStatus ippsWTInv_32f8u(const Ipp32f*
pSrcLow
, const Ipp32f*
pSrcHigh
, int
srcLen
, Ipp8u*
pDst
, IppsWTInvState_32f8u*
pState
);
IppStatus ippsWTInv_32f16s(const Ipp32f*
pSrcLow
, const Ipp32f*
pSrcHigh
, int
srcLen
, Ipp16s*
pDst
, IppsWTInvState_32f16s*
pState
);
IppStatus ippsWTInv_32f16u(const Ipp32f*
pSrcLow
, const Ipp32f*
pSrcHigh
, int
srcLen
, Ipp16u*
pDst
, IppsWTInvState_32f16u*
pState
);
Include Files
ipps.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
Libraries:
ippcore.lib
,
ippvm.lib
Parameters
pSrcLow
Pointer to the vector which holds input coarse “low frequency” components.
pSrcHigh
Pointer to the vector which holds detail “high frequency” components.
srcLen
Number of elements in the vectors
pSrcHigh
and
pSrcLow
.
pDst
Pointer to the vector which holds the output reconstructed signal.
pState
Pointer to the state structure.
Description
This function computes the inverse wavelet transform. The function transforms the “low frequency” components
pSrcLow
and “high frequency” components
pSrcHigh
into the (2*
srcLen
)-length destination data block
pDst
. The transform parameters are specified in the state structure
pState
.
Before using this function, you need to compute the size of the state structure and work buffer using the WTFwdGetSize_ WTInvGetSize function, and initialize the structure using WTFwdInit_ WTInvInit.
For an example on how to use this function, refer to Wavelet Transforms Example.
Application Notes
These functions are used for one level of inverse multiscale transformation which results in reconstructing the original signal from the two “low frequency” and “high frequency” components. The Figure below shows an equivalent transform algorithm. Two interpolation filters are used for signal reconstruction; their coefficients are set at the initialization stage. The inverse transform implementation, similar to forward transform implementation, contains additional delay lines needed to synchronize the group time of filter delays and delays across different levels of data reconstruction.
Input and output data block lengths.
These functions are designed to reconstruct the blocks of the even length signal. The signal component length must be the input data. The length of the output block of the reconstructed signal must be double the length of each of the components.
Filter group delay synchronization.
In this example consider a biorthogonal set of spline filters of length 2 and 6:
static const float recLow[2] = { 1.00000000e+000f, 1.00000000e+000f }; static const float recHigh[6] = { -1.25000000e-001f, -1.25000000e-001f, 1.00000000e+000f, -1.00000000e+000f, 1.25000000e-001f, 1.25000000e-001f };
This set of filters corresponds to the set of filters considered in a similar section of the description of the forward transform function
ippsWTFwd
.
Unlike the case described above, this time the high-pass filter generates a delay greater by two samples compared against the low frequency filter. The two sample difference should also exist between initialization function additional delays. The following parameters of additional delays need to be selected in order to ensure the minimum total delay,
offsLow
= 2,
offsHigh
= 0. In this case the total delay is equal to the high-pass filter group delay, which at the decomposition stage is equal to two samples in the original signal time frame.
Total delay of one level of decomposition and reconstruction is equal to 4 samples, considering the decomposition stage delay.
Biorthogonal and orthogonal filter banks are distinguished by one specific peculiarity, that is, inverse transform additional delays must be uniformly even and opposite to the evenness of the decomposition delays for faultless signal reconstruction.
Multilevel reconstruction algorithms.
An example of a three-level signal reconstruction algorithm is shown in Figure 
"Three-Level Discrete Wavelet Reconstruction"
. The scheme corresponds to the decomposition scheme described in the section of the description of the forward transform function
ippsWTFwd
. Therefore, for the inverse transform the biorthogonal set of spline filters with respective filter length of 6 and 2 is used. The lowest level filter delays are set to
offsLow3
= 2,
offsHigh3
= 0. The total delay at this stage of reconstruction is equal to two samples. In order to ensure an equivalent delay of the “detail” part in the middle level, the delay must be increased. Respective values of additional delays for the second level are equal to
offsLow2
= 2,
offsHigh2
=
offsHigh3
+ 2*2 = 4. A greater value of high frequency component delay needs to be selected for the last level of reconstruction,
offsLow1
= -1,
offsHigh1
=
offsHigh2
+ 2*4 = 12.
The total delay for three levels of reconstruction is equal to 12 samples. The total delay of the three-level decomposition and reconstruction cycle is equal to 24 samples.
One Level Inverse Wavelet Transform
Return Values
ippStsNoErr
Indicates no error.
ippStsNullPtrErr
Indicates an error when one of the specified pointers is
NULL
.
ippStsStateMatchErr
Indicates an error when the state identifier
pState
is incorrect.
ippStsSizeErr
Indicates an error when
dstLen
or
srcLen
is less than, or equal to 0.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804