Decodes all data for one channel.
IppStatus ippsNoiselessDecoder_LC_AAC(Ipp8u** ppBitStream, int* pOffset, int commonWin, IppAACChanInfo* pChanInfo, Ipp16s* pDstScalefactor, Ipp32s* pDstQuantizedSpectralCoef, Ipp8u* pDstSfbCb, Ipp8s* pDstTnsFiltCoef);
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. |
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.
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" . |
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]. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.