DecodeTNS_AAC

Decodes for Temporal Noise Shaping in-place.

Syntax

IppStatus ippsDecodeTNS_AAC_32s_I(Ipp32s* pSrcDstSpectralCoefs, const int* pTnsNumFilt, const int* pTnsRegionLen, const int* pTnsFiltOrder, const int* pTnsFiltCoefRes, const Ipp8s* pTnsFiltCoef, const int* pTnsDirection, int maxSfb, int profile, int samplingRateIndex, int winLen);

Parameters

pSrcDstSpectralCoefs

On input, pointer to the input spectral coefficients to be filtered by the all‑pole filters in Q13.18 format. There are 1024 elements in the buffer .

On output, pointer to the output spectral coefficients after filtering by the all-pole filters in Q13.18 format.

See Table "Computation Error List for pSrcDstSpectralCoefs" below for the computation error compared with the double precision data.

pTnsNumFilt

Pointer to the number of noise shaping filters used for each window of the current frame. There are 8 elements in the buffer which are arranged as follows:pTnsNumFilt [w]: the number of noise shaping filters used for window w, w = 0 to numWin -1.

pTnsRegionLen

Pointer to the length of the region in units of scale factor bands to which one filter is applied in each window of the current frame.

There are 8 elements in the buffer, which are arranged as follows:

pTnsRegionLen[i]: the length of the region to which filter filt is applied in window w

, w= 0 to numWin-1, filt = 0 to pTnsNumFilt[w]-1.

pTnsFiltOrder

Pointer to the order of one noise shaping filter applied to each window of the current frame. There are 8 elements in the buffer, which are arranged as follows:

pTnsFiltOrder[i]: the order of one noise shaping filter filt, which is applied to window w, see formua above.

pTnsFiltCoefRes

Pointer to the resolution of 3 bits or 4 bits of the transmitted filter coefficients for each window of the current frame. There are 8 elements in the buffer, which are arranged as follows:

pTnsFiltCoefRes[w]: the resolution of the transmitted filter coefficients for window ww = 0 to numWin - 1.

pTnsFiltCoef

Pointer to the coefficients of one noise shaping filter applied to each window of the current frame. There are 60 elements in the buffer, which are arranged as follows:

pTnsFiltCoef[i], pTnsFiltCoef[i+1], ..., pTnsFiltCoef[i+order - 1]: the coefficients of one noise shaping filter filt, which is applied to window w .

The order is the same as that of the noise shaping filter filt as applied to window w, w = 0 to numWin-1, filt=0 to pTnsNumFilt[w]-1.

For example, pTnsFiltCoef [0], pTnsFiltCoef [1], ..., pTnsFiltCoef [order0-1] are the coefficients of the noise shaping filter 0, which is applied to window 0, if present.

If so, pTnsFiltCoef[ order0], pTnsFiltCoef[ order0+1], ..., pTnsFiltCoef[order0+order1-1] are the coefficients of the noise shaping filter 1 applied to window 0, if present, and so on.

order0 is the same as that of the noise shaping filter 0 applied to window 0, and order1 is the order of the noise shaping filter 1 applied to window 0.

After window 0 is processed, process window 1, then window 2 until all numWin windows are processed.

pTnsDirection

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.

There are 8 elements in the buffer pointed to by pTnsDirection which are arranged as follows:

pTnsDirection[i]: the token indicating whether the filter filt is applied in upward or downward direction to window w, i see formula above.

maxSfb

Number of scale factor bands transmitted per window group of the current frame.

profile

Profile index from Table 7.1 in ISO/IEC 13818 - 7: 1997.

samplingRateIndex

Index indicating the sampling rate of the current frame.

winLen

Data number in one window.

Description

This function is declared in the ippac.h file. The function performs decoding process for Temporal Noise Shaping (TNS) that controls the temporal shape of the quantization noise within each window of the transform.

The TNS decoding process proceeds separately for each window of the current frame by applying the all-pole filtering to selected regions of the spectral coefficients.

Computation Error List for pSrcDstSpectralCoefs
MAX(error(pSrcDstSpectralCoefs [i])) Condition
4095 8 == numWin
32767 1 == numWin

numWin is the number of windows in a window sequence of the current frame. numWin is equal to 8 if window sequence is EIGHT_SHORT_SEQUENCE, or to 1 for other window sequences.

numSwb is the total number of scale factor window bands for the actual window type, that is, long or short window of the current frame.

Note iconNote

This function supports LC profile only.

Note iconNote

numWin is the number of windows in a window sequence of the current frame. numWin is 8 if window sequence is EIGHT_SHORT_SEQUENCE, or 1 for other window sequences.

Note iconNote

numSwb is the total number of scale factor window bands for the actual window type, that is, long or short window, of the current frame.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when at least one of the specified pointers is NULL.

IppStsTnsProfielErr

Indicates an error when profile!= 1.

ippStsAacTnsNumFiltErr

Indicates an error when a data error occurs: for a short window sequence pTnsNumFilt[w] exceeds [0,1]; for a long window sequence, pTnsNumFilt[w] exceeds [0,3]

ippStsAacTnsLenErr

Indicates an error when pTnsRegionLen exceeds [0, numSwb].

ippStsAacTnsOrderErr

Indicates an error when a data error occurs: for a short window sequence, pTnsFiltOrder exceeds [0,7];for a long window sequence, pTnsFiltOrder exceeds [0,12].

ippStsAacTnsCoefResErr

Indicates an error when pTnsFiltCoefRes[w] exceeds [3, 4].

ippStsAacTnsCoefErr

Indicates an error when pTnsFiltCoef exceeds [-8, 7].

ippStsAacTnsDirectErr

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

Submit feedback on this help topic

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