Implements MP-MLQ gain estimation and quantization.
IppStatus ippsGainQuant_G723_16s (const Ipp16s* pImp, const Ipp16s* pSrc, Ipp16s* pDstLoc, Ipp16s* pDstAmp, Ipp32s* pMaxErr, Ipp16s* pGrid, Ipp16s* pAmp, int Np, int* isBest);
pImp |
Pointer to the input impulse response h vector [60]. |
pSrc |
Pointer to the input target signal r vector [60]. |
pDstLoc |
Pointer to the output pulse locations. |
pDstAmp |
Pointer to the output pulse amplitudes. |
pMaxErr |
Pointer to the input/output quantization error. |
pGrid |
Pointer to the output grid: 0 - if pulses are in even positions, 1 - if pulses are in odd positions. |
pAmp |
Pointer to the output index of maximum amplitude. |
Np |
Number of pulses: equal to 6 for even subframe, equal to 5 for odd subframe. |
pIsBest |
POinter to the quantization result. Set to 0, if no pulses are found with quantization error better (less) than the input error. |
The function ippsGainQuant_G723 is declared in the ippsc.h file. This function estimates the unknown parameters, G, {αk}, {mk}, k = 0,...,Np-1, that minimize the mean square of the error signal:
The estimation is done as follows.
First, cross correlation of the impulse response and the target vector is computed:
0 ≤ n ≤ 59
The estimated maximum gain is computed as:
and then is quantized by the logarithmic quantizer. The gain values selected around this quantized gain are then used to optimize the signs and locations of the pulses for both even and odd grids that yield the minimum mean square of the error signal.
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when one of the specified pointers is NULL. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.