96 lines
3.0 KiB
C
96 lines
3.0 KiB
C
/*
|
|
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
|
|
/*
|
|
* This header file includes the macros used in VAD.
|
|
*/
|
|
|
|
#ifndef WEBRTC_VAD_DEFINES_H_
|
|
#define WEBRTC_VAD_DEFINES_H_
|
|
|
|
#define NUM_CHANNELS 6 // Eight frequency bands
|
|
#define NUM_MODELS 2 // Number of Gaussian models
|
|
#define NUM_TABLE_VALUES NUM_CHANNELS * NUM_MODELS
|
|
|
|
#define MIN_ENERGY 10
|
|
#define ALPHA1 6553 // 0.2 in Q15
|
|
#define ALPHA2 32439 // 0.99 in Q15
|
|
#define NSP_MAX 6 // Maximum number of VAD=1 frames in a row counted
|
|
#define MIN_STD 384 // Minimum standard deviation
|
|
// Mode 0, Quality thresholds - Different thresholds for the different frame lengths
|
|
#define INDIVIDUAL_10MS_Q 24
|
|
#define INDIVIDUAL_20MS_Q 21 // (log10(2)*66)<<2 ~=16
|
|
#define INDIVIDUAL_30MS_Q 24
|
|
|
|
#define TOTAL_10MS_Q 57
|
|
#define TOTAL_20MS_Q 48
|
|
#define TOTAL_30MS_Q 57
|
|
|
|
#define OHMAX1_10MS_Q 8 // Max Overhang 1
|
|
#define OHMAX2_10MS_Q 14 // Max Overhang 2
|
|
#define OHMAX1_20MS_Q 4 // Max Overhang 1
|
|
#define OHMAX2_20MS_Q 7 // Max Overhang 2
|
|
#define OHMAX1_30MS_Q 3
|
|
#define OHMAX2_30MS_Q 5
|
|
|
|
// Mode 1, Low bitrate thresholds - Different thresholds for the different frame lengths
|
|
#define INDIVIDUAL_10MS_LBR 37
|
|
#define INDIVIDUAL_20MS_LBR 32
|
|
#define INDIVIDUAL_30MS_LBR 37
|
|
|
|
#define TOTAL_10MS_LBR 100
|
|
#define TOTAL_20MS_LBR 80
|
|
#define TOTAL_30MS_LBR 100
|
|
|
|
#define OHMAX1_10MS_LBR 8 // Max Overhang 1
|
|
#define OHMAX2_10MS_LBR 14 // Max Overhang 2
|
|
#define OHMAX1_20MS_LBR 4
|
|
#define OHMAX2_20MS_LBR 7
|
|
|
|
#define OHMAX1_30MS_LBR 3
|
|
#define OHMAX2_30MS_LBR 5
|
|
|
|
// Mode 2, Very aggressive thresholds - Different thresholds for the different frame lengths
|
|
#define INDIVIDUAL_10MS_AGG 82
|
|
#define INDIVIDUAL_20MS_AGG 78
|
|
#define INDIVIDUAL_30MS_AGG 82
|
|
|
|
#define TOTAL_10MS_AGG 285 //580
|
|
#define TOTAL_20MS_AGG 260
|
|
#define TOTAL_30MS_AGG 285
|
|
|
|
#define OHMAX1_10MS_AGG 6 // Max Overhang 1
|
|
#define OHMAX2_10MS_AGG 9 // Max Overhang 2
|
|
#define OHMAX1_20MS_AGG 3
|
|
#define OHMAX2_20MS_AGG 5
|
|
|
|
#define OHMAX1_30MS_AGG 2
|
|
#define OHMAX2_30MS_AGG 3
|
|
|
|
// Mode 3, Super aggressive thresholds - Different thresholds for the different frame lengths
|
|
#define INDIVIDUAL_10MS_VAG 94
|
|
#define INDIVIDUAL_20MS_VAG 94
|
|
#define INDIVIDUAL_30MS_VAG 94
|
|
|
|
#define TOTAL_10MS_VAG 1100 //1700
|
|
#define TOTAL_20MS_VAG 1050
|
|
#define TOTAL_30MS_VAG 1100
|
|
|
|
#define OHMAX1_10MS_VAG 6 // Max Overhang 1
|
|
#define OHMAX2_10MS_VAG 9 // Max Overhang 2
|
|
#define OHMAX1_20MS_VAG 3
|
|
#define OHMAX2_20MS_VAG 5
|
|
|
|
#define OHMAX1_30MS_VAG 2
|
|
#define OHMAX2_30MS_VAG 3
|
|
|
|
#endif // WEBRTC_VAD_DEFINES_H_
|