Transforms SBR-processed subband signals into time domain samples.
Case 1: Operation on float-point signal.
IppStatus ippsSynthesisFilter_SBR_CToR_32fc32f_D2L (const Ipp32fc* pSrc[], Ipp32f* pDst, const Ipp32f* pSbrTableWindow, int numLoop, const IppsFilterSpec_SBR_C_32fc* pFilterSpec, Ipp8u* pWorkBuf);
IppStatus ippsSynthesisFilter_SBR_CToR_32f_D2L(const Ipp32f* pSrcRe[], const Ipp32f* pSrcIm[], Ipp32f* pDst, const Ipp32f* pSbrTableWindow, int numLoop, const IppsFilterSpec_SBR_C_32f* pFilterSpec, Ipp8u* pWorkBuf);
IppStatus ippsSynthesisFilter_SBR_RToR_32f_D2L(const Ipp32f* pSrc[], Ipp32f* >pDst, const Ipp32f* pSbrTableWindow, int numLoop, const IppsFilterSpec_SBR_R_32f* pFilterSpec, Ipp8u* pWorkBuf);
Case 2: Operation on fixed-point signal.
IppStatus ippsSynthesisFilter_SBRHQ_32sc32s(const Ipp32sc* pSrc, Ipp32s* pDst, const IppsFilterSpec_SBR_C_32sc* pFilterSpec);
IppStatus ippsSynthesisFilter_SBRLP_32s(const Ipp32s* pSrc, Ipp32s* pDst, const IppsFilterSpec_SBR_R_32s* pFilterSpec);
pSrc |
Pointer or array of pointers to the SBR-processed subband signals. |
pSrcRe |
Array of pointers to the real parts of SBR-processed subband signals. |
pSrcIm |
Array of pointers to the imaginary parts of SBR-processed subband signals. |
pDst |
Pointer to the output vector with time domain output samples. |
pSbrTableWindowDown |
Pointer to the window table that is used by decoder SBR synthesis filter. This parameter is used only for float-point flavors. |
numLoop |
Parameter equal to 32 if frame size of the core decoded signal is 1024, and to 30 if frame size of the core decoded signal is 960. |
pFilterSpec |
Pointer to the synthesis SBR specification structure. |
pWorkBuf |
Pointer to the work buffer. |
These functions are declared in the ippac.h file. The functions transform SBR-processed subband signals into time domain samples according to pFilterSpec specification parameters.
Float-point case.
The function ippsSynthesisFilter_SBR_CToR_32fc32f_D2L uses the complex input data type and real output data type, processes the input complex array of pointers pSrc and stores the result in the real vector pDst.
The function ippsSynthesisFilter_SBR_CToR_32f_D2L uses the real data type and stores the result separately in pSrcRe matrix and pSrcIm matrix.
The functionality of ippsSynthesisFilter_SBR_CToR_32fc32f_D2L and ippsSynthesisFilter_SBR_CToR_32f_D2L is described as follows:
Note that Steps 1 through 4 are repeated for 0 ≤ l < numLoop and
pSrcTableWindowDown[n] = c[n], n = 0, .., 640,
where coefficients c[i] are coefficients of the QMF bank window from ISO14496.
The function ippsSynthesisFilter_SBR_RToR_32f_D2L uses the real data type, processes the input real matrix pSrc and stores the result in the real array pDst.
The functionality of ippsSynthesisFilter_SBR_RToR_32f can be described in the same way as the above SynthesisFilter_SBR functions but Step 2 changes as follows:
Step 2. Special Fourier Transform
The functions ippsSynthesisFilter_SBR_CToR_32f_D2L and ippsSynthesisFilter_SBR_RToR_32f_D2L are used in the float-point version of AAC decoder included into Intel IPP Samples. See introduction to this section.
Fixed-point case.
The functions with integer values do not saturate any intermediate or output data so the user should watch closely for overload.
In ippsSynthesisFilter_SBRHQ_32sc32s and ippsSynthesisFilter_SBRLP_32s the source and destination have different positions of decimation point (Q format). If pSrc has Q(N) format, pDst has Q(N-6) format. The recommended Q of the source is Q12.
The functionality of ippsSynthesisFilter_SBRHQ_32sc32s is described as follows:
pWin[n] = c[n] are coefficients of the QMF bank window from ISO14496A.
The functionality of ippsSynthesisFilter_SBRLP_32s can be described in the same way as the above function but Step 2 changes as follows:
The functions ippsSynthesisFilter_SBRHQ_32sc32s and ippsSynthesisFilter_SBRLP_32s are used in the fixed-point version of AAC decoder included into IPP Samples. See introduction to this section.
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when at least one of the specified pointers is NULL. |
ippStsContextMatchErr |
Indicates an error when the identifier pFilterSpec is incorrect. |
Copyright © 2000 - 2010, Intel Corporation. All rights reserved.