SynthesisDownFilter_SBR

Transforms SBR-processed subband signals into time domain samples and performs downsampling at the same time.

Syntax

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

Parameters

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.

Description

These functions are declared in the ippac.h file. The functions transform SBR-processed subband signals into time domain samples and perform downsampling at the same time according to pFilterSpec specification parameters.

Float-point case.

The function ippsSynthesisDownFilter_SBR_CToR_32fc32f_D2L uses the complex input data type and real output data type, processes the input complex matrix pSrc and stores the result in the real array pDst.

The function ippsSynthesisDownFilter_SBR_CToR_32f_D2L uses the real data type and stores the result separately in pSrcRe matrix and pSrcIm matrix.

The functionality of ippsSynthesisDownFilter_SBR_CToR_32fc32f_D2L and ippsSynthesisDownFilter_SBR_CToR_32f_D2L is described as follows:





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 ippsSynthesisDownFilter_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 ippsSynthesisDownFilter_SBR_RToR_32f_D2L can be described in the same way as the above SynthesisFilter_SBR functions but Step 2 changes as follows:



The functions ippsSynthesisDownFilter_SBR_CToR_32f_D2L and ippsSynthesisDownFilter_SBR_RToR_32f_D2L are used in the float-point version of AAC decoder included into 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 ippsSynthesisDownFilter_SBRHQ_32sc32s and ippsSynthesisDownFilter_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 ippsSynthesisDownFilter_SBRHQ_32sc32s is described as follows:





Here pWin[n] = c[2n] and c[n] are coefficients of the QMF bank window from ISO14496A.

The functionality of ippsSynthesisDownFilter_SBRLP_32s can be described in the same way as the above function but Step 2 changes as follows:



The functions ippsSynthesisDownFilter_SBRHQ_32sc32s and ippsSynthesisDownFilter_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.


Submit feedback on this help topic

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