Quantizes the ISF.
IppStatus ippsISFQuant_AMRWB_16s(const Ipp16s* pSrcIsf, Ipp16s* pSrcDstResidual, Ipp16s* pDstQIsf, Ipp16s* pDstQIsfIndex, IppSpchBitRate mode);
pSrcIsf |
Pointer to the unquantized 16-element ISF vector. |
pSrcDstResidual |
Pointer to the 16-element quantized ISF residual from the previous frame. |
pDstQIsf |
Pointer to the quantized 16-element ISF vector. |
pDstQIsfIndex |
Pointer to the 7-element vector of quantized ISF indices. For 6.60 Kbps frames, only the first five elements contain valid indices; for all other bit rates, all seven elements contain valid data. |
mode |
Coder mode. |
This function is declared in ippsc.h file. It applies a first order moving-average (MA) prediction and quantifies the residual ISF vector using a combination of split vector quantization (SVQ) and multistage vector quantization (MSVQ).
The prediction and quantization are performed as follows. Let z(n) denotes the mean-removed ISF vector at frame n.
The prediction residual vector r(n) is given by:
r(n) = z(n) - p(n)
where p(n) is the predicted LSF vector at frame n. First order moving-average (MA) prediction is used where:
p(n) = 1/3*ř(n-1),
where ř(n-1) is the quantized residual vector at the past frame.
The ISF residual vector r is quantized using split-multistage vector quantization S-MSVQ. The vector is split into two subvectors r1(n) and r2(n) of dimensions 9 and 7, respectively. The two subvectors are quantized in two stages. In the first stage r1(n) is quantized with 8 bits and r2(n) with 8 bits.
For 8.85 ,12.65, 14.25, 15.85, 18.25, 19.85, 23.05 or 23.85 kbit/s modes, the quantization error vectors are split in the next stage into 3 and 2 subvectors, respectively.
For 6.60 kbit/s mode, the quantization error vectors
ri(2) = r - ři, i = 1, 2.
are split in the next stage into 2 and 1 subvectors, respectively. A squared error ISF distortion measure is used in the quantization process. In general, for an input ISF or error residual subvector ri , i =1,2 a quantized vector at index k, řik the quantization is performed by finding the index k which minimizes
where m and n are the first and last elements of the subvector.
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when one of the specified pointers is NULL. |
ippStsRangeErr |
Indicates an error when mode is not a valid element of the enumerated type IppSpchBitRate. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.