Maps time-frequency domain signal into time domain and generates 1024 reconstructed 16-bit signed little-endian PCM samples.
IppStatus ippsMDCTInv_AAC_32s16s(Ipp32s* pSrcSpectralCoefs, Ipp16s* pDstPcmAudioOut, Ipp32s* pSrcDstOverlapAddBuf, int winSequence, int winShape, int prevWinShape, int pcmMode);
pSrcSpectralCoefs |
Pointer to the source vector containing 1024 time-frequency domain samples in Q13.18 format. |
pSrcDstOverlapAddBuf |
Pointer to the overlap-add buffer that contains the second half of the previous block windowed sequence in Q13.18. There are 1024 elements in this buffer. |
winSequence |
Flag that indicates which window sequence is used for current block. |
winShape |
Flag that indicates which window function is selected for current block. |
prevWinShape |
Flag that indicates which window function is selected for previous block. |
pcmMode |
Flag that indicates whether the PCM audio output is interleaved, that is has the pattern LRLRLR... or not. 1 stands for not interleaved. 2 stands for interleaved. |
pDstPcmAudioOut |
Pointer to the output vector with 1024 reconstructed 16-bit signed little-endian PCM samples in Q15, interleaved, if needed. The maximum computation error is less than 1 for each vector element. The total quadratic error for the vector is less than 96. |
pSrcDstOverlapAddBuf |
Pointer to the overlap-add buffer which contains the second half of the current block windowed sequence in Q13.18. The maximum computation error is less than 4 for each vector element. The total quadratic error for the vector is less than 1536. |
This function is declared in the ippac.h file. This function maps the time-frequency domain signal into time domain and generates 1024 reconstructed 16-bit signed little-endian PCM samples as output for each channel.
This module consists of
In order to adapt the time/frequency resolution of the filterbank to the characteristics of the input signal, a block switching tool is also adopted. For each channel, 1024 time-frequency domain samples are transformed into the time domain via the IMDCT.
After applying the windowing operation, the first half of the windowed sequence is added to the second half of the previous block windowed sequence to reconstruct 1024 output samples for each channel. Output can be interleaved according to pcmMode.
If pcmMode equals to 2, the output is in the sequence pDstPcmAudioOut[2*i], i=0 to 1023, that is, 1024 output samples are stored in the sequence: pDstPcmAudioOut [0], pDstPcmAudioOut[2], pDstPcmAudioOut[4],..., pDstPcmAudioOut[2046].
If pcmMode equals 1, the output is in the sequence pDstPcmAudioOut [i], i=0 to 1023.
You should also preallocate an input-output buffer pointed to by pSrcDstOverlapAddBuf for the overlap‑add operation.
Reset this buffer to zero before the first call and then use the output of the current call as the input of the next call for the same channel.
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when at least one of the specified pointers is NULL. |
ippStsAacWinSeqErr |
Indicates an error when winSequence exceeds [0,3]. |
ippStsAacWinShapeErr |
Indicates an error when winShape or prevWinShape exceeds [0,1]. |
ippStsAacPcmModeErr |
Indicates an error when pcmMode exceeds [1,2]. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.