Decodes for Temporal Noise Shaping in-place.
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);
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 w, w = 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. |
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.
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.
This function supports LC profile only.
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.
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.
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]. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.