blob: 18db3117ce6948f7e10bd3ba2bc9a60e3bdf5136 [file] [log] [blame]
niklase@google.com470e71d2011-07-07 08:21:25 +00001/*
kma@webrtc.org0d321da2012-05-26 01:05:27 +00002 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
niklase@google.com470e71d2011-07-07 08:21:25 +00003 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Per Åhgren0cbb58e2019-10-29 22:59:44 +010011#ifndef MODULES_AUDIO_PROCESSING_LEGACY_NS_NSX_DEFINES_H_
12#define MODULES_AUDIO_PROCESSING_LEGACY_NS_NSX_DEFINES_H_
niklase@google.com470e71d2011-07-07 08:21:25 +000013
Yves Gerey665174f2018-06-19 15:03:05 +020014#define ANAL_BLOCKL_MAX 256 /* Max analysis block length */
15#define HALF_ANAL_BLOCKL 129 /* Half max analysis block length + 1 */
16#define NUM_HIGH_BANDS_MAX 2 /* Max number of high bands */
17#define SIMULT 3
18#define END_STARTUP_LONG 200
19#define END_STARTUP_SHORT 50
20#define FACTOR_Q16 2621440 /* 40 in Q16 */
21#define FACTOR_Q7 5120 /* 40 in Q7 */
22#define FACTOR_Q7_STARTUP 1024 /* 8 in Q7 */
23#define WIDTH_Q8 3 /* 0.01 in Q8 (or 25 ) */
kma@webrtc.org0d321da2012-05-26 01:05:27 +000024
25/* PARAMETERS FOR NEW METHOD */
Yves Gerey665174f2018-06-19 15:03:05 +020026#define DD_PR_SNR_Q11 2007 /* ~= Q11(0.98) DD update of prior SNR */
kma@webrtc.org0d321da2012-05-26 01:05:27 +000027#define ONE_MINUS_DD_PR_SNR_Q11 41 /* DD update of prior SNR */
Yves Gerey665174f2018-06-19 15:03:05 +020028#define SPECT_FLAT_TAVG_Q14 \
29 4915 /* (0.30) tavg parameter for spectral flatness measure */
30#define SPECT_DIFF_TAVG_Q8 \
31 77 /* (0.30) tavg parameter for spectral flatness measure */
32#define PRIOR_UPDATE_Q14 1638 /* Q14(0.1) Update parameter of prior model */
33#define NOISE_UPDATE_Q8 26 /* 26 ~= Q8(0.1) Update parameter for noise */
kma@webrtc.org0d321da2012-05-26 01:05:27 +000034
35/* Probability threshold for noise state in speech/noise likelihood. */
36#define ONE_MINUS_PROB_RANGE_Q8 205 /* 205 ~= Q8(0.8) */
Yves Gerey665174f2018-06-19 15:03:05 +020037#define HIST_PAR_EST 1000 /* Histogram size for estimation of parameters */
kma@webrtc.org0d321da2012-05-26 01:05:27 +000038
39/* FEATURE EXTRACTION CONFIG */
40/* Bin size of histogram */
Yves Gerey665174f2018-06-19 15:03:05 +020041#define BIN_SIZE_LRT 10
42/* Scale parameters: multiply dominant peaks of the histograms by scale factor
43 * to obtain. */
kma@webrtc.org0d321da2012-05-26 01:05:27 +000044/* Thresholds for prior model */
Yves Gerey665174f2018-06-19 15:03:05 +020045#define FACTOR_1_LRT_DIFF \
46 6 /* For LRT and spectral difference (5 times bigger) */
47/* For spectral_flatness: used when noise is flatter than speech (10 times
48 * bigger). */
49#define FACTOR_2_FLAT_Q10 922
kma@webrtc.org0d321da2012-05-26 01:05:27 +000050/* Peak limit for spectral flatness (varies between 0 and 1) */
Yves Gerey665174f2018-06-19 15:03:05 +020051#define THRES_PEAK_FLAT 24 /* * 2 * BIN_SIZE_FLAT_FX */
52/* Limit on spacing of two highest peaks in histogram: spacing determined by bin
53 * size. */
54#define LIM_PEAK_SPACE_FLAT_DIFF 4 /* * 2 * BIN_SIZE_DIFF_FX */
kma@webrtc.org0d321da2012-05-26 01:05:27 +000055/* Limit on relevance of second peak */
Yves Gerey665174f2018-06-19 15:03:05 +020056#define LIM_PEAK_WEIGHT_FLAT_DIFF 2
57#define THRES_FLUCT_LRT \
58 10240 /* = 20 * inst->modelUpdate; fluctuation limit of LRT feat. */
kma@webrtc.org0d321da2012-05-26 01:05:27 +000059/* Limit on the max and min values for the feature thresholds */
Yves Gerey665174f2018-06-19 15:03:05 +020060#define MAX_FLAT_Q10 38912 /* * 2 * BIN_SIZE_FLAT_FX */
61#define MIN_FLAT_Q10 4096 /* * 2 * BIN_SIZE_FLAT_FX */
62#define MAX_DIFF 100 /* * 2 * BIN_SIZE_DIFF_FX */
63#define MIN_DIFF 16 /* * 2 * BIN_SIZE_DIFF_FX */
kma@webrtc.org0d321da2012-05-26 01:05:27 +000064/* Criteria of weight of histogram peak to accept/reject feature */
Yves Gerey665174f2018-06-19 15:03:05 +020065#define THRES_WEIGHT_FLAT_DIFF \
66 154 /*(int)(0.3*(inst->modelUpdate)) for flatness and difference */
kma@webrtc.org0d321da2012-05-26 01:05:27 +000067
Yves Gerey665174f2018-06-19 15:03:05 +020068#define STAT_UPDATES 9 /* Update every 512 = 1 << 9 block */
69#define ONE_MINUS_GAMMA_PAUSE_Q8 \
70 13 /* ~= Q8(0.05) Update for conservative noise estimate */
71#define GAMMA_NOISE_TRANS_AND_SPEECH_Q8 \
72 3 /* ~= Q8(0.01) Update for transition and noise region */
kma@webrtc.org0d321da2012-05-26 01:05:27 +000073
Per Åhgren0cbb58e2019-10-29 22:59:44 +010074#endif /* MODULES_AUDIO_PROCESSING_LEGACY_NS_NSX_DEFINES_H_ */