AnalysisFilter_SBR

Transforms time domain signal output from the core decoder into frequency subband signals.

Syntax

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);

Parameters

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.

Description

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, kxk < 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, kxk < 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.

Return Values

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.

Submit feedback on this help topic

Copyright © 2000 - 2010, Intel Corporation. All rights reserved.