VAD1_GSMAMR

Implements the VAD functionality corresponding to VAD option 1.

Syntax

IppStatus ippsVAD1_GSMAMR_16s(const Ipp16s pSrcSpch, IppGSMAMRVad1State* pValResultVad1State, Ipp16s* pResultVadFlag, Ipp16s maxHpCorr, Ipp16s toneFlag);

Parameters

pSrcSpch

Pointer to the input speech signal, of length 160, in Q0.

pValResultVad1State

On input, pointer to the VAD Option 1 history variables. On output, points to the updated VAD Option 1 history variables. The structure IppGSMAMRVad1State is defined below.

pResultVadFlag

Pointer to the VAD flag of this frame. If set to “1”, it indicates the presence of signals that should be transmitted. If set to “0”, no need to transmit signals from this frame.

maxHpCorr

best_corr_hp value of previous frame, which is the maximum normalized value of the high pass filtered correlation. This value is the output of the OLP search function..

toneFlag

Tone flag, which indicates the presence of information tones or signals containing very strong periodic component. This value is the output of the OLP search function.

Description

The function ippsVAD1_GSMAMR is declared in ippsc.h file. This function implements the VAD functionality corresponding to VAD option 1 of ETSI GSM 06.94. It is used to indicate whether each 20ms frame contains signals that should be transmitted - for example, speech, music or information tones. The structure IppGSMAMRVad1State contains the history variables of VAD Option 1. These variables are initialized before the beginning of the encoder, and can be only updated by this function. Refer to ETSI GSM 06.94 VAD Option 1 specification for details of the implementation.

typedef struct{ Description
Ipp16s pPrevSignalLevel[9]; Signal level vector of level[n] previous frame.
Ipp16s pPrevSignalSublevel[9]; Intermediate signal sublevel vector of previous frame.
Ipp16s pPrevAverageLevel[9]; Average signal level vector ave_level[ n] of previous frame.
Ipp16s pBkgNoiseEstimate[9]; Background noise estimate vector back_est[ n] of previous frame.
Ipp16s pFifthFltState[6]; The history state of the three 5th order filters of filter bank.
Ipp16s pThirdFltState[5]; The history state of the five 3rd order filters of filter bank.
Ipp16s burstCount; Burst counter burst_count that counts length of a speech burst, used by VAD hangover addition.
Ipp16s hangCount; Hang counter hang_counter that is used by VAD hangover addition.
Ipp16s statCount; Stationary counter variable stat_count that is used in background noise estimation.
Ipp16s vadReg; Value that indicates intermediate VAD decision.
Ipp16s complexHigh; complex_high value that is used as intermediate complex signal decision.
Ipp16s complexLow; complex_low value that is used as intermediate complex signal decision.
Ipp16s complexHangTimer; complex_hang_timer that is used as hangover initiator by Complex Activity Estimation.
Ipp16s complexHangCount; complex_hang_count that is used as hangover counter by VAD hangover addition.
Ipp16s complexWarning; complex_warning flag.
Ipp16s corrHp; The high-pass filtered value of best_corr_hp.
Ipp16s pitchFlag; Pitch flag that indicates the presence of vowel sounds and other periodic signals.
}IppGSMAMRVad1State.  

Note iconNote

VAD option 1 history variables initialization: Whenever the Encoder is reset, all elements in pPrevSignalLevel, pPrevSignalSublevel, pPrevAverageLev vector must be set as 150, corrHp must be set as 13106. All other variables must be set to 0.

For the detail usage of these history variables, please refer to ETSI GSM 06.94.

Return Values

ippStsNoErr

Indicates no error.

IppStsNullPtrErr

Indicates an error when one of the specified pointers is NULL.

Submit feedback on this help topic

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