MDCTInv_AAC_32s_I

Computes inverse modified discrete cosine transform (MDCT), windowing and overlapping of signals.

Syntax

IppStatus ippsMDCTInv_AAC_32s_I(Ipp32s* pSrcDst, Ipp32s *pSrcDstOverlapBuf, int winSequence, int winShape, int prevWinShape, int len);

Parameters

pSrcDst

Pointer to the source and destination vector for the in-place operation.

pSrcDstOverlapBuf

Pointer to overlap-add buffer, contains the output of the 2nd half of the previous frame windowed sequence.

winSequence

Window sequence indicator.

winShape

Window shape indicator.

prevWinShape

Window shape indicator of the previous frame.

len

Number of samples in Src buffer.

Description

The ippsMDCTInv_AAC_32s_I function is declared in the ippac.h file. This function performs inverse MDCT operation. Then, after applying the windowing operation, the first half of the windowed sequence is added to the second half of the previous frame windowed sequence (contents of pSrcDstOverlapBuf) to reconstruct 1024 output samples. The second half of the windowed sequence is stored to pSrcDstOverlapBuf.

This function is implemented for using in AAC decoder. It does not perform any saturation so the user should consider overflow possibility. The source and destination have different positions of the decimal point (Q format). The Q format of destination depends on the window sequence indicator.

WinSequence = 0 (long window): If Src is in Qn format then Dst in Q(n+5) format

WinSequence = 1 (long start window): If Src is in Qn format then Dst in Q(n+5) format

WinSequence = 2 (eight short window): If Src is in Qn format then Dst in Q(n+2) format

WinSequence = 3 (long stop window): If Src is in Qn format then Dst in Q(n+5) format.

For example, to have Dst in Q7 format, the Src format should be Q5 in the case of eight short window and in Q2 in other cases.

Only len = 1024 is supported in the current implementation.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when any of the pointers passed to the function is NULL.

ippStsAacWinSeqErr

Indicates an error when winSequence exceeds [0,3].

ippStsAacWinShapeErr

Indicates an error when winShape or prevWinShape exceeds [0,1].

ippStsSizeErr

Indicates an error when len is not equal to 1024.

Submit feedback on this help topic

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