Transforms time domain signal output from the core decoder into frequency subband signals.
Case 1: Operation on float-point signal.
IppStatus ippsAnalysisFilter_SBR_RToC_32f32fc_D2L(const Ipp32f* pSrc, Ipp32fc* pDst[], const Ipp32f* pSbrTableWindowDown, int numLoop, int offset, int kx, const IppsFilterSpec_SBR_C_32fc* pFilterSpec, Ipp8u* pWorkBuf);
IppStatus ippsAnalysisFilter_SBR_RToC_32f_D2L(const Ipp32f* pSrc, Ipp32f* pDstRe[], Ipp32f* pDstIm[], const Ipp32f* pSbrTableWindowDown, int numLoop, int offset, int kx, const IppsFilterSpec_SBR_C_32f* pFilterSpec, Ipp8u* pWorkBuf);
IppStatus ippsAnalysisFilter_SBR_RToR_32f_D2L(const Ipp32f* pSrc, Ipp32f* pDst[], const Ipp32f* pSbrTableWindowDown, int numLoop, int offset, int kx, const IppsFilterSpec_SBR_R_32f* pFilterSpec, Ipp8u* pWorkBuf);
Case 2: Operation on fixed-point signal.
IppStatus ippsAnalysisFilter_SBRHQ_32s32sc(const Ipp32s* pSrc, Ipp32sc* pDst, int kx, const IppsFilterSpec_SBR_C_32sc* pFilterSpec);
IppStatus ippsAnalysisFilter_SBRLP_32s(const Ipp32s* pSrc, Ipp32s* pDst, int kx, const IppsFilterSpec_SBR_R_32s* pFilterSpec);
pSrc |
Pointer to the input audio signal. |
pDst |
Pointer or array of pointers to the subband samples. |
pDstRe |
Array of pointers to the real parts of subband samples. |
pDstIm |
Array of pointersto the imaginary parts of subband samples. |
pSbrTableWindowDown |
Pointer to the window table that is used by decoder SBR Analysis Filter. This parameter is used only for float-point cases. |
offset |
Desired displacement in number of rows when the matrix pDst is calculated; must be greater than or equal to 0. |
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. |
kx |
First SBR subband in the SBR range [0..32]. |
pFilterSpec |
Pointer to the analysis SBR specification structure. |
pWorkBuf |
Pointer to the work buffer. |
These functions are declared in the ippac.hfile. The functions filter input signal according to the pFilterSpec specification parameters.
Float-point case.
The function ippsAnalysisFilter_SBR_RToC_32f32fc_D2L uses the real input data type and complex output data type, processes the input real array pSrc and stores the result in the complex matrix pDst.
The function ippsAnalysisFilter_SBR_RToC_32f_D2L uses the real data type and stores the result separately in pDstRe matrix and pDstIm matrix.
The functionality of ippsAnalysisFilter_SBR_RToC_32f32fc_D2L and ippsAnalysisFilter_SBR_RToC_32f_D2L is described as follows:
Step 1. Buffer Updating
Step 2. Polyphase Filtering
Step 3. Special Fourier Transform
Step 4. Clearing Upper Part of Spectrum.
pDst[l + offset][k] = 0, kx ≤ k < 32
Note that Steps 1 through 4 are repeated for 0 ≤ l < numLoop and
pSrcTableWindowDown[n] = c[2n], n = 0, .., 320,
where coefficients c[i] are coefficients of the QMF bank window from ISO14496.
The function ippsAnalysisFilter_SBR_RToR_32f_D2L uses the real data type, processes the input real array pSrc and stores the result in the real matrix pDst.
The functionality of ippsAnalysisFilter_SBR_RToR_32f_D2L can be described in the same way as the above AnalysisFilter_SBR_D2L functions but Step 3 changes as follows:
Step 3. Special Fourier Transform
The functions ippsAnalysisFilter_SBR_RToC_32f_D2L and ippsAnalysisFilter_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 must watch closely for overload.
In ippsAnalysisFilter_SBRHQ_32s32sc and ippsAnalysisFilter_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 ippsAnalysisFilter_SBRHQ_32s32sc is described as follows:
Step 1. Buffer Updating
Step 2. Polyphase Filtering
Step 3. Special Fourier Transform
Step 4. Clearing Upper Part of Spectrum
pDst[k] = 0, kx ≤ k < 32
The functionality of ippsAnalysisFilter_SBRLP_32s can be described in the same way as the above function but Step 3 changes as follows:
Step 3. Special Fourier Transform
pWin[n] = c[2n] and c[i] are coefficients of the QMF bank window from ISO14496A.
The functions ippsAnalysisFilter_SBRHQ_32s32sc and ippsAnalysisFilter_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. |
ippStsSizeErr |
Indicates an error when kx is less than 0 or greater than 32. |
Copyright © 2000 - 2010, Intel Corporation. All rights reserved.