DecodeMsStereo_AAC

Processes mid-side (MS) stereo for pair channels in-place.

Syntax

IppStatus ippsDecodeMsStereo_AAC_32s_I(Ipp32s* pSrcDstL, Ipp32s* pSrcDstR, int msMaskPres, const Ipp8u* pMsUsed, Ipp8u* pSfbCb, int numWinGrp, const int* pWinGrpLen, int maxSfb, int samplingRateIndex, int winLen);

Parameters

pSrcDstL

On input, pointer to left channel data in Q13.18 format. For short block, the coefficients are interleaved by scale factor window bands in each group. Buffer length must be more than or equal to 1024.

On output, pointer to left channel data in Q13.18 format. For short blocks, the coefficients are interleaved by scale factor window bands in each group. Buffer length must be more than or equal to 1024.

pSrcDstR

On input, pointer to right channel data in Q13.18 format. For short block, the coefficients are interleaved by scale factor window bands in each group. Buffer length must be more than or equal to 1024.

On output, pointer to right channel data in Q13.18 format. For short blocks, the coefficients are interleaved by scale factor window bands in each group. Buffer length must be more than or equal to 1024.

msMaskPres

MS stereo mask flag: 0 - MS off; 1 - MS on; 2 - MS all bands on.

pMsUsed

Pointer to the MS Stereo flag buffer. Buffer length must be more than or equal to 120.

pSfbCb

Pointer to the scale factor band codebook.

If invert_intensity (group, sfb) = -1, and if *pSfbCb = INTERITY_HCB, let *pSfbCb = INTERITY_HCB2.

If *pSfbCb = INTERITY_HCB2, let *pSfbCb = INTERITY_HCB.

Buffer length must be more than or equal to 120. Store maxSfb elements for each group. There is no space between the sequence groups.

numWinGrp

Group number.

pWinGrpLen

Pointer to the number of windows in each group. Buffer length must be more than or equal to 8.

maxSfb

Maximal scale factor bands number for the current block.

samplingRateIndex

Sampling rate index. Valid within [0, 11]. See Table 6.5 of ISO/IEC 13818 - 7: 1997.

winLen

Data number in one window.

Description

This function is declared in the ippac.h file. The function performs mid-side (MS) stereo process for pair channels and at the same time runs the invert_intensity(group, sfb) function and stores the values in the pSfbCb buffer.

In the case when MS stereo flag is on, the operation is performed according the following formulas:

pSrcDstL'[i] = pSrcDstL[i] + pSrcDstR[i] ;

pSrcDstR'[i] = pSrcDstL[i] - pSrcDstR[i] ;

See clause 12 of ISO/IEC 13818 - 7: 1997.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when at least one of the specified pointers is NULL.

ippStsAacMaxSfbErr

Indicates an error when the coefficient index calculated from samplingFreqIndex and maxSfb exceeds winLen in each window.

ippStsAacSamplRateIdxErr

Indicates an error when pChanInfor-> samplingRateIndex exceeds [0,11].

ippStsAacWinGrpErr

Indicates an error when numWinGrp exceeds [0,8] for long window or is not equal to 1 for short window.

ippStsAacWinLenErr

Indicates an error when winLen is not equal 128 or 1024.

ippStsStereoMaskErr

Indicates an error when the stereo mask flag is not equal 1 or 2.

Submit feedback on this help topic

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