OpenLoopPitchSearchDTXVAD1_GSMAMR

Extracts an OLP lag estimate (VAD 1 scheme is enabled).

Syntax

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);

Parameters

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.

Description

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.

Return Values

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.

Submit feedback on this help topic

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