SynthPQMF_MP3

Performs the second stage of hybrid synthesis filter bank.

Syntax

IppStatus ippsSynthPQMF_MP3_32s16s(Ipp32s* pSrcY, Ipp16s* pDstAudioOut, Ipp32s* pVBuffer, int* pVPosition, int mode);

Parameters

pSrcY

Pointer to the block of 32 IMDCT sub-band input samples in Q7.24 format.

pDstAudioOut

Pointer to the block of 32 reconstructed PCM output samples in 16-bit signed little-endian format. Left and right channels are interleaved according to the mode flag.

pVBuffer

Pointer to the input workspace buffer containing Q7.24 data. The function updates this parameter.

pVPosition

Pointer to the internal workspace index. The function updates this parameter.

mode

Flag that indicates whether or not PCM audio output channels should be interleaved. 1 indicates not interleaved, 2 indicates interleaved.

Description

The function ippsSynthPQMF_MP3 is declared in the ippac.h file. This function performs the second stage of the hybrid synthesis filter bank, that is, a critically-sampled 32-channel PQMF synthesis bank that generates 32 time-domain output samples for each 32-sample input block of IMDCT outputs.

For each input block, the PQMF generates an output sequence of 16-bit signed little-endian PCM samples in the vector pointed to by pDstAudioOut.

If mode equals to 2, the left and right channel output samples are interleaved, that is, LRLRLR, so that the left channel data is organized as follows:

pDstAudioOut[2*i ], i = 0 to 31.

If mode equals 1, then the left and right channel outputs are not interleaved.

Since PQMF bank contains memory, the MP3 application must maintain two state variables in between calls to the function.

The application must preallocate a workspace buffer of size 512 x (Number of Channels) for the PQMF computation. This buffer is referenced by the pointer pVBuffer and its elements must be initialized to zero prior to the first call. During subsequent calls, the pVBuffer input for the current call must contain the output generated by the previous call.

The MP3 application must also initialize to zero and thereafter preserve the value of the state variable pVPosition. The MP3 application must modify the values contained in pVBuffer or pVPosition only during decoder reset, and the reset values mustd always be zero.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when least one of the pointers pSrcY, pDstAudioOut, pVBuffer, or pVPosition is NULL.

ippStsBadArgErr

Indicates an error when at least one of the specified pointers is NULL, or the value of mode is less than 1 or more than 2, or when the value of pVPosition exceeds [0, 15].

ippStsErr

Indicates an unknown error.

Submit feedback on this help topic

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