NoiselessDecoder_LC_AAC

Decodes all data for one channel.

Syntax

IppStatus ippsNoiselessDecoder_LC_AAC(Ipp8u** ppBitStream, int* pOffset, int commonWin, IppAACChanInfo* pChanInfo, Ipp16s* pDstScalefactor, Ipp32s* pDstQuantizedSpectralCoef, Ipp8u* pDstSfbCb, Ipp8s* pDstTnsFiltCoef);

Parameters

ppBitStream

Double pointer to the current byte.

pOffset

Pointer to the offset in one byte.

commonWin

Common window indicator.

pChanInfo

Pointer to the channel information. IppAACChanInfo structure. Denotes pIcsInfo as pChanInfo->pIcsInfo as shown in table "Input/Output Members List of pChanInfo".

pDstScalefactor

Pointer to the scalefactor or intensity position buffer. Buffer length is more than or equal to 120. Only maxSfb elements are stored for each group. There is no space between sequence groups.

pDstQuantizedSpectralCoef

Pointer to the quantized spectral coefficients data. For short block, the coefficients are interleaved by scale factor window bands in each group. Buffer length is more than or equal to 1024.

pDstSfbCb

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

pDstTnsFiltCoef

Pointer to TNS coefficients. Buffer length must be more than or equal to 60. The store sequence is TNS order elements for each filter for each window. The elements are not changed if the corresponding TNS order is zero.

Description

This function is declared in the ippac.h file. The function decodes all data for one channel, including scale factor/intensity positions, spectral coefficients, TNS coefficients, and associated side information for LC profile.

You need to set pChanInfo->pIcsInfo, pChanInfo->samplingRateIndex, pChanInfo->predSfbMax to correct pointer/values before calling this function.

Input/Output Members List of pChanInfo 
Member Output
Tag Not used.
id Not used.
preWinShape Not used.
pChanPairElt Not used.
samplingRateIndex As input. Not changed.
predSfbMax As input. Must be 0. Not changed.
winLen As output. Set to 128, if decoded, pIcsInfo ->winSequence is short block. Otherwise set to 1024.
numWin As output. Set to 8, if decoded pIcsInfo->winSequence is short block. Otherwise set to 1.
numSwb As output. Set to the maximum number of scale factor window bands in each group according to samplingRateIndex and pIcsInfo->winSequence. See Table 8.4-8.1 of ISO/IEC 13818 - 7: 1997.
globGainpulseDataPres tnsDataPres gainContrDataPres As output. Unpacked from bitstream.
pMaxSect As output. Pointer to the maximum of sections number in each group. Only pIcsInfo-> numWinGrp elements in the buffer are meaningful.
pSectCb As output. Pointer to the section codebook. Only pMaxSect[g] elements are stored for each group. There is no space between the sequence groups.
pTnsRegionLen As output. Pointer to the length of the region in units of scale factor bands to which one filter is applied in each window.
pTnsFiltOrder As output. Pointer to the order of the temporal noise shaping filter applied to each window.
pTnsDirection As output. Pointer to the token that indicates whether the filter is applied in the upward or downward direction. 0 stands for upward and 1 for downward.
pIcsInfo As input if commonWin == 1. As output if commonWin == 0. If pIcsInfo->predDataPres == 0, set pIcsInfo-> predReset = 0. Only the first pIcsInfo-> numWinGrp elements in pIcsInfo -> pWinGrpLen are meaningful. Under specific conditions, some members of the structure must remain unchanged. See "Unchanged Members of pIcsInfo" .

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when at least one of the pointers ppBitStream, pOffset, pChanInfo, pDstScalefactor, pDstQuantizedSpectralCoef, pDstSfbCb, pDstTnsFiltCoef, pChanInfo ->pIcsInfo, or *ppBitStream is NULL.

ippStsAacBitOffsetErr

Indicates an error when pOffset is out of range [0,7].

ippStsAacComWinErr

Indicates an error when commonWin exceeds [0,1].

ippStsAacSmplRateIdxErr

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

ippStsAacPredSfbErr

Indicates an error when pChanInfo->predSfbMax is not equal to 0.

ippStsAacMaxSfbErr

Indicates an error when pChanInfo->pIcsInfo ->maxSfb > pChanInfo->numSwb.

ippStsAacSectCbErr

Indicates an error when the codebook pointed to by pChanInfo-> pSectCb is illegal or when ( pChanInfo->pSectCb )==12, 13. If the current channel is not the right channel of the channel pair element, pSectCb = 14, 15 is also illegal.

ippStsAacPlsDataErr

Indicates an error when the pChanInfo->pIcsInfo ->winSequence indicates a short sequence and pChanInfo-> pulsePres indicates pulse data present. The start scale factor band for pulse data >= pChanInfo->numSwb, or pulse data position offset >= winLen.

ippStsAacGainCtrErr

Indicates an error when pChanInfo->gainControlPres is decoded as 1, which means that gain control data is present. Gain control data is not currently supported.

ippStsAacCoefValErr

Indicates an error when the quantized coefficients value pointed to by pDstCoef exceeds range [-8191, 8191].

Submit feedback on this help topic

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