/* | |
** Copyright 2003-2010, VisualOn, Inc. | |
** | |
** Licensed under the Apache License, Version 2.0 (the "License"); | |
** you may not use this file except in compliance with the License. | |
** You may obtain a copy of the License at | |
** | |
** http://www.apache.org/licenses/LICENSE-2.0 | |
** | |
** Unless required by applicable law or agreed to in writing, software | |
** distributed under the License is distributed on an "AS IS" BASIS, | |
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
** See the License for the specific language governing permissions and | |
** limitations under the License. | |
*/ | |
/*--------------------------------------------------------------------------* | |
* DTX.H * | |
*--------------------------------------------------------------------------* | |
* Static memory, constants and frametypes for the DTX * | |
*--------------------------------------------------------------------------*/ | |
#ifndef __DTX_H__ | |
#define __DTX_H__ | |
#define DTX_MAX_EMPTY_THRESH 50 | |
#define DTX_HIST_SIZE 8 | |
#define DTX_HIST_SIZE_MIN_ONE 7 | |
#define DTX_ELAPSED_FRAMES_THRESH (24 + 7 -1) | |
#define DTX_HANG_CONST 7 /* yields eight frames of SP HANGOVER */ | |
#define INV_MED_THRESH 14564 | |
#define ISF_GAP 128 /* 50 */ | |
#define ONE_MINUS_ISF_GAP 16384 - ISF_GAP | |
#define ISF_GAP 128 | |
#define ISF_DITH_GAP 448 | |
#define ISF_FACTOR_LOW 256 | |
#define ISF_FACTOR_STEP 2 | |
#define GAIN_THR 180 | |
#define GAIN_FACTOR 75 | |
typedef struct | |
{ | |
Word16 isf_hist[M * DTX_HIST_SIZE]; | |
Word16 log_en_hist[DTX_HIST_SIZE]; | |
Word16 hist_ptr; | |
Word16 log_en_index; | |
Word16 cng_seed; | |
/* DTX handler stuff */ | |
Word16 dtxHangoverCount; | |
Word16 decAnaElapsedCount; | |
Word32 D[28]; | |
Word32 sumD[DTX_HIST_SIZE]; | |
} dtx_encState; | |
#define SPEECH 0 | |
#define DTX 1 | |
#define DTX_MUTE 2 | |
#define TX_SPEECH 0 | |
#define TX_SID_FIRST 1 | |
#define TX_SID_UPDATE 2 | |
#define TX_NO_DATA 3 | |
#define RX_SPEECH_GOOD 0 | |
#define RX_SPEECH_PROBABLY_DEGRADED 1 | |
#define RX_SPEECH_LOST 2 | |
#define RX_SPEECH_BAD 3 | |
#define RX_SID_FIRST 4 | |
#define RX_SID_UPDATE 5 | |
#define RX_SID_BAD 6 | |
#define RX_NO_DATA 7 | |
/***************************************************************************** | |
* | |
* DEFINITION OF DATA TYPES | |
*****************************************************************************/ | |
Word16 dtx_enc_init(dtx_encState ** st, Word16 isf_init[], VO_MEM_OPERATOR *pMemOP); | |
Word16 dtx_enc_reset(dtx_encState * st, Word16 isf_init[]); | |
void dtx_enc_exit(dtx_encState ** st, VO_MEM_OPERATOR *pMemOP); | |
Word16 dtx_enc( | |
dtx_encState * st, /* i/o : State struct */ | |
Word16 isf[M], /* o : CN ISF vector */ | |
Word16 * exc2, /* o : CN excitation */ | |
Word16 ** prms | |
); | |
Word16 dtx_buffer( | |
dtx_encState * st, /* i/o : State struct */ | |
Word16 isf_new[], /* i : isf vector */ | |
Word32 enr, /* i : residual energy (in L_FRAME) */ | |
Word16 codec_mode | |
); | |
void tx_dtx_handler(dtx_encState * st, /* i/o : State struct */ | |
Word16 vad_flag, /* i : vad decision */ | |
Word16 * usedMode /* i/o : mode changed or not */ | |
); | |
void Qisf_ns( | |
Word16 * isf1, /* input : ISF in the frequency domain (0..0.5) */ | |
Word16 * isf_q, /* output: quantized ISF */ | |
Word16 * indice /* output: quantization indices */ | |
); | |
void Disf_ns( | |
Word16 * indice, /* input: quantization indices */ | |
Word16 * isf_q /* input : ISF in the frequency domain (0..0.5) */ | |
); | |
#endif //__DTX_H__ | |