rusty_opus/silk/
define.rs1pub const ENCODER_NUM_CHANNELS: usize = 2;
2pub const DECODER_NUM_CHANNELS: usize = 2;
3
4pub const STEREO_INTERP_LEN_MS: i32 = 8;
6
7pub const SILK_NO_ERROR: i32 = 0;
8
9pub const MAX_FRAMES_PER_PACKET: usize = 3;
10
11pub const NB_SPEECH_FRAMES_BEFORE_DTX: i32 = 10;
12pub const MAX_CONSECUTIVE_DTX: i32 = 20;
13
14pub const SPEECH_ACTIVITY_DTX_THRES_Q8: i32 = 13;
15
16pub const MIN_TARGET_RATE_BPS: i32 = 5000;
17pub const MAX_TARGET_RATE_BPS: i32 = 80000;
18
19pub const MAX_FS_KHZ: usize = 16;
20
21pub const MAX_NB_SUBFR: usize = 4;
22pub const LTP_MEM_LENGTH_MS: usize = 20;
23pub const SUB_FRAME_LENGTH_MS: usize = 5;
24pub const MAX_SUB_FRAME_LENGTH: usize = SUB_FRAME_LENGTH_MS * MAX_FS_KHZ;
25pub const MAX_FRAME_LENGTH_MS: usize = SUB_FRAME_LENGTH_MS * MAX_NB_SUBFR;
26pub const MAX_FRAME_LENGTH: usize = MAX_FRAME_LENGTH_MS * MAX_FS_KHZ;
27
28pub const LA_PITCH_MS: usize = 2;
29pub const LA_PITCH_MAX: usize = LA_PITCH_MS * MAX_FS_KHZ;
30pub const LA_SHAPE_MS: usize = 5;
31pub const LA_SHAPE_MAX: usize = LA_SHAPE_MS * MAX_FS_KHZ;
32pub const MAX_LOOK_AHEAD: usize = (LA_PITCH_MS + LA_SHAPE_MS) * MAX_FS_KHZ;
33
34pub const MAX_FIND_PITCH_LPC_ORDER: usize = 16;
35pub const MAX_LPC_ORDER: usize = 16;
36pub const MIN_LPC_ORDER: usize = 10;
37pub const MAX_SHAPE_LPC_ORDER: usize = 24;
38
39pub const MAX_LPC_STABILIZE_ITERATIONS: usize = 16;
40
41pub const LTP_ORDER: usize = 5;
42
43pub const HARM_SHAPE_FIR_TAPS: usize = 3;
44
45pub const VAD_N_BANDS: usize = 4;
46pub const VAD_NOISE_LEVELS_BIAS: i32 = 50;
47
48pub const VAD_INTERNAL_SUBFRAMES_LOG2: usize = 2;
49pub const VAD_INTERNAL_SUBFRAMES: usize = 1 << VAD_INTERNAL_SUBFRAMES_LOG2;
50
51pub const VAD_NOISE_LEVEL_SMOOTH_COEF_Q16: i32 = 1024;
52pub const VAD_SNR_FACTOR_Q16: i32 = 45000;
53pub const VAD_NEGATIVE_OFFSET_Q5: i32 = 128;
54pub const VAD_SNR_SMOOTH_COEF_Q18: i32 = 4096;
55
56pub const NSQ_LPC_BUF_LENGTH: usize = MAX_LPC_ORDER;
57pub const DECISION_DELAY: usize = 40;
58pub const QUANT_LEVEL_ADJUST_Q10: i32 = 80;
59pub const NSQ_MAX_STATES_OPERATING: usize = 4;
60
61pub const NLSF_QUANT_MAX_AMPLITUDE: i32 = 4;
62pub const NLSF_QUANT_MAX_AMPLITUDE_EXT: i32 = 10;
63pub const NLSF_QUANT_LEVEL_ADJ: i32 = 102;
64pub const NLSF_QUANT_DEL_DEC_STATES: usize = 4;
65pub const NLSF_QUANT_DEL_DEC_STATES_LOG2: usize = 2;
66
67pub const INTERP_NUM_STATES: usize = 5;
68
69pub const TYPE_NO_VOICE_ACTIVITY: i32 = 0;
70pub const TYPE_UNVOICED: i32 = 1;
71pub const TYPE_VOICED: i32 = 2;
72
73pub const CODE_INDEPENDENTLY_NO_LTP_SCALING: i32 = 2;
74
75pub const SILK_PE_MIN_COMPLEX: usize = 0;
76pub const SILK_PE_MID_COMPLEX: usize = 1;
77pub const SILK_PE_MAX_COMPLEX: usize = 2;
78
79pub const PE_MAX_NB_SUBFR: usize = 4;
80pub const PE_NB_CBKS_STAGE2_10MS: usize = 3;
81pub const PE_NB_CBKS_STAGE3_10MS: usize = 12;
82pub const PE_NB_CBKS_STAGE2_EXT: usize = 11;
83pub const PE_NB_CBKS_STAGE2: usize = 3;
84pub const PE_NB_CBKS_STAGE3_MAX: usize = 34;
85pub const PE_NB_CBKS_STAGE3_MIN: usize = 16;
86pub const PE_NB_CBKS_STAGE3_MID: usize = 24;
87
88pub const PITCH_EST_MIN_LAG_MS: i32 = 2;
89pub const PITCH_EST_MAX_LAG_MS: i32 = 18;
90
91pub const MAX_PREDICTION_POWER_GAIN: f32 = 1e4f32;
92pub const MAX_PREDICTION_POWER_GAIN_AFTER_RESET: f32 = 1e2f32;
93
94pub const PE_MAX_FS_KHZ: usize = 16;
95pub const PE_SUBFR_LENGTH_MS: usize = 5;
96pub const PE_LTP_MEM_LENGTH_MS: usize = 20;
97
98pub const PE_MAX_FRAME_LENGTH_MS: usize =
99 PE_LTP_MEM_LENGTH_MS + PE_MAX_NB_SUBFR * PE_SUBFR_LENGTH_MS;
100pub const PE_MAX_FRAME_LENGTH: usize = PE_MAX_FRAME_LENGTH_MS * PE_MAX_FS_KHZ;
101pub const PE_MAX_FRAME_LENGTH_ST_1: usize = PE_MAX_FRAME_LENGTH >> 2;
102pub const PE_MAX_FRAME_LENGTH_ST_2: usize = PE_MAX_FRAME_LENGTH >> 1;
103
104pub const PE_MAX_LAG_MS: usize = 18;
105pub const PE_MIN_LAG_MS: usize = 2;
106
107pub const TRANSITION_TIME_MS: i32 = 5120;
108pub const TRANSITION_NB: usize = 3;
109pub const TRANSITION_NA: usize = 2;
110pub const TRANSITION_INT_NUM: usize = 5;
111pub const TRANSITION_FRAMES: i32 = TRANSITION_TIME_MS / MAX_FRAME_LENGTH_MS as i32;
112pub const TRANSITION_INT_STEPS: i32 = TRANSITION_FRAMES / (TRANSITION_INT_NUM as i32 - 1);
113pub const PE_MAX_LAG: usize = PE_MAX_LAG_MS * PE_MAX_FS_KHZ;
114pub const PE_MIN_LAG: usize = PE_MIN_LAG_MS * PE_MAX_FS_KHZ;
115
116pub const PE_D_SRCH_LENGTH: usize = 24;
117pub const PE_NB_STAGE3_LAGS: usize = 5;
118
119pub const PE_SHORTLAG_BIAS_Q13: i32 = 1638;
120pub const PE_PREVLAG_BIAS_Q13: i32 = 1638;
121pub const PE_FLATCONTOUR_BIAS_Q13: i32 = 410;
122
123pub const COND_ALPHA_MIN_Q15: i32 = 25000;
124pub const COND_ALPHA_MAX_Q15: i32 = 31000;
125
126pub const FIND_LPC_COND_FAC_Q31: i32 = 21475;
127
128pub const CODE_INDEPENDENTLY: i32 = 0;
129pub const CODE_CONDITIONALLY: i32 = 1;
130pub const CODE_INFORMATION: i32 = 2;
131
132pub const N_RATE_LEVELS: usize = 10;
133pub const SILK_MAX_PULSES: usize = 16;
134pub const SHELL_CODEC_FRAME_LENGTH: usize = 16;
135
136pub const MIN_QGAIN_DB: i32 = 2;
137pub const MAX_QGAIN_DB: i32 = 88;
138pub const N_LEVELS_QGAIN: i32 = 64;
139pub const MAX_DELTA_GAIN_QUANT: i32 = 36;
140pub const MIN_DELTA_GAIN_QUANT: i32 = -4;