Extracts an OLP lag estimate (VAD 1 scheme is enabled).
IppStatus ippsOpenLoopPitchSearchDTXVAD1_GSMAMR_16s(const Ipp16s* pSrcWgtLpc1, const Ipp16s* pSrcWgtLpc2, const Ipp16s* pSrcSpch, Ipp16s* pValResultToneFlag, Ipp16s* pValResultPrevMidPitchLag, Ipp16s* pValResultVvalue, Ipp16s* pSrcDstPrevPitchLag, Ipp16s* pSrcDstPrevWgtSpch, Ipp16s* pResultMaxHpCorr, Ipp16s* pDstOpenLoopLag, Ipp16s* pDstOpenLoopGain, IppSpchBitRate mode);
pSrcWgtLpc1 |
Pointer to the 44-element vector of weighted LP coefficients, represented using Q3.12. These LP coefficients comprise the numerator of the perceptual weighting filter. |
pSrcWgtLpc2 |
Pointer to the 44-element vector of weighted LP coefficients, represented using Q3.12. These LP coefficients comprise the denominator of the perceptual weighting filter. |
pSrcSpch |
Pointer to the 170-element input speech vector, represented using Q15.0. |
pValResultToneFlag |
Pointer to the tone flag for the VAD module. On output, points to the updated tone flag for the VAD module. |
pValResultPrevMidPitchLag |
Pointer to a vector of median filtered pitch lags from the five previous voiced speech half-frames, represented using Q15.0. On output, points to the updated vector of median filtered pitch lags from the five previous voiced speech half-frames, represented using Q15.0. This argument is valid only for 10.2 kbps frames. |
pValResultVvalue |
Pointer to the adaptive parameter v, represented using Q0.15. On output, points to the updated adaptive parameter v, represented using Q0.15. This argument is valid only for 10.2 kbps frames. |
pSrcDstPrevPitchLag |
Pointer to a five-element vector of pitch lags associated with the five most recent voiced speech half-frames. On output, points to the updated five-element vector of pitch lags associated with the five most recent voiced speech half-frames. This argument is valid only for 10.2 kbps frames. |
pSrcDstPrevWgtSpch |
Pointer to a 143-element vector containing the perceptually weighted speech associated with the previous frame, represented using Q15.0. On output, points to the updated 143-element vector containing the perceptually weighted speech associated with the previous frame, represented using Q15.0. |
pResultMaxHpCorr |
Pointer to the correlation maximum. |
pDstOpenLoopLag |
Pointer to a two-element vector of OLP lags. For 5.15 and 4.75 kbps frames, only the first vector element contains a valid lag value, since only one lag is estimated. For all other bit rates, both vector elements contain valid pitch lag values. |
pDstOpenLoopGain |
Pointer to a two-element vector containing optimal OLP gains, represented using Q15.0. This argument is valid only for 10.2 kbps frames. |
mode |
Bit rate specifier. Values between IPP_SPCHBR_4750 and IPP_SPCHBR_12200 are valid. |
The function ippsOpenLoopPitchSearchDTXVAD1_GSMAMR is declared in ippsc.h file. This function extracts an OLP lag estimate from the weighted input speech when the VAD 1 scheme is enabled using a version of the pitch search algorithm described in Open-Loop Pitch Search (OLP) that is modified as follows:
1. For 10.2 kbps frames, the following modification is applied after the best OLP is found:
Update the tone flag (when initialized or reset, it is set to 0) in the following way
toneflag >>=1
if 0.325*DelayEnergy < MaxCorr, toneflag
= toneflag|0x4000.
On the second OLP search for the current frame, find the maximum of the high-pass filtered autocorrelations, that is
maxhpcorr = max(2R(k) - R(k-1) - R(k+1)|k = 142, ..., 21)
Then, maxhpcorr is normalized by NormFactor = frameEnergy - frameCorr:
2. For all other bit rates, the following modifications are applied:
a. Before the OLP search, update the tone flag as follows:
toneflag = toneflag >>1
If the bit rate is either 5.15 or 4.75 kbps, update the tone flag as follows:
toneflag = toneflag >> 1, toneflag = toneflag | 0x2000
b. After finding three OLP candidates, update the tone flag as follows:
if (DelayEnergy × 0.65 < MaxCorr) toneflag = toneflag | 0x4000
This update is repeated three times with DelayEnergy and MaxCorr corresponding to the three pitch candidates. Note that the computation length of DelayEnergy and MaxCorr for 4.75 and 5.15 kbps frames is 160 samples. For all other bit rates, the length is 80 samples.
c. On the second OLP search for each frame, find the maximum of the high passed autocorrelations. The implementation is identical the 10.2 kbps correlation search, but the search range is rate-dependent.
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.