xref: /aosp_15_r20/external/libxaac/common/ixheaac_sbr_const.h (revision 15dc779a375ca8b5125643b829a8aa4b70d7f451)
1*15dc779aSAndroid Build Coastguard Worker /******************************************************************************
2*15dc779aSAndroid Build Coastguard Worker  *                                                                            *
3*15dc779aSAndroid Build Coastguard Worker  * Copyright (C) 2018 The Android Open Source Project
4*15dc779aSAndroid Build Coastguard Worker  *
5*15dc779aSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*15dc779aSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*15dc779aSAndroid Build Coastguard Worker  * You may obtain a copy of the License at:
8*15dc779aSAndroid Build Coastguard Worker  *
9*15dc779aSAndroid Build Coastguard Worker  * http://www.apache.org/licenses/LICENSE-2.0
10*15dc779aSAndroid Build Coastguard Worker  *
11*15dc779aSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*15dc779aSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*15dc779aSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*15dc779aSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*15dc779aSAndroid Build Coastguard Worker  * limitations under the License.
16*15dc779aSAndroid Build Coastguard Worker  *
17*15dc779aSAndroid Build Coastguard Worker  *****************************************************************************
18*15dc779aSAndroid Build Coastguard Worker  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*15dc779aSAndroid Build Coastguard Worker */
20*15dc779aSAndroid Build Coastguard Worker #ifndef IXHEAAC_SBR_CONST_H
21*15dc779aSAndroid Build Coastguard Worker #define IXHEAAC_SBR_CONST_H
22*15dc779aSAndroid Build Coastguard Worker 
23*15dc779aSAndroid Build Coastguard Worker #define SBR_AMPLITUDE_RESOLUTION_1_5 0
24*15dc779aSAndroid Build Coastguard Worker #define SBR_AMPLITUDE_RESOLUTION_3_0 1
25*15dc779aSAndroid Build Coastguard Worker #define NOISE_FLOOR_OFFSET_INT 6
26*15dc779aSAndroid Build Coastguard Worker 
27*15dc779aSAndroid Build Coastguard Worker #define LOW 0
28*15dc779aSAndroid Build Coastguard Worker #define HIGH 1
29*15dc779aSAndroid Build Coastguard Worker 
30*15dc779aSAndroid Build Coastguard Worker #define DTDF_DIR_TIME 1
31*15dc779aSAndroid Build Coastguard Worker #define DTDF_DIR_FREQ 0
32*15dc779aSAndroid Build Coastguard Worker 
33*15dc779aSAndroid Build Coastguard Worker #define SBR_CYC_REDCY_CHK_BITS 10
34*15dc779aSAndroid Build Coastguard Worker 
35*15dc779aSAndroid Build Coastguard Worker #define SBR_SAMP_FEQ_LVL_DEF 2
36*15dc779aSAndroid Build Coastguard Worker #define SBR_CHANGE_LVL_DEF 1
37*15dc779aSAndroid Build Coastguard Worker #define SBR_NOISE_BND_DEF 2
38*15dc779aSAndroid Build Coastguard Worker 
39*15dc779aSAndroid Build Coastguard Worker #define SBR_BND_LIMIT_DEF 2
40*15dc779aSAndroid Build Coastguard Worker #define SBR_GAIN_LIMIT_DEF 2
41*15dc779aSAndroid Build Coastguard Worker #define SBR_INTERPOL_SAMP_FEQ_DEF 1
42*15dc779aSAndroid Build Coastguard Worker #define SBR_SMOOTH_LEN_DEF 1
43*15dc779aSAndroid Build Coastguard Worker 
44*15dc779aSAndroid Build Coastguard Worker #define SBR_AMPLITUDE_RESOLUTION_BITS 1
45*15dc779aSAndroid Build Coastguard Worker #define SBR_BEGIN_SAMP_FREQ_BITS 4
46*15dc779aSAndroid Build Coastguard Worker #define SBR_END_SAMP_FREQ_BITS 4
47*15dc779aSAndroid Build Coastguard Worker #define SBR_CROSS_OVER_BND_BITS 3
48*15dc779aSAndroid Build Coastguard Worker 
49*15dc779aSAndroid Build Coastguard Worker #define ESBR_CROSS_OVER_BND_BITS 4
50*15dc779aSAndroid Build Coastguard Worker #define ESBR_PRE_FLAT_BITS 1
51*15dc779aSAndroid Build Coastguard Worker #define ESBR_PVC_MODE_BITS 2
52*15dc779aSAndroid Build Coastguard Worker 
53*15dc779aSAndroid Build Coastguard Worker #define ESBR_HEADER_EXTRA_3_BITS 1
54*15dc779aSAndroid Build Coastguard Worker #define PVC_MODE_BITS 2
55*15dc779aSAndroid Build Coastguard Worker 
56*15dc779aSAndroid Build Coastguard Worker #define SBR_HDR_EXTR_1_BITS 1
57*15dc779aSAndroid Build Coastguard Worker #define SBR_HDR_EXTR_2_BITS 1
58*15dc779aSAndroid Build Coastguard Worker 
59*15dc779aSAndroid Build Coastguard Worker #define SBR_SAMP_FREQ_LVL_BITS 2
60*15dc779aSAndroid Build Coastguard Worker #define SBR_CHANGE_LVL_BITS 1
61*15dc779aSAndroid Build Coastguard Worker #define SBR_NOISE_BND_BITS 2
62*15dc779aSAndroid Build Coastguard Worker 
63*15dc779aSAndroid Build Coastguard Worker #define SBR_BND_LIMIT_BITS 2
64*15dc779aSAndroid Build Coastguard Worker #define SBR_GAIN_LIMIT_BITS 2
65*15dc779aSAndroid Build Coastguard Worker #define SBR_INTERPOL_SAMP_FREQ_BITS 1
66*15dc779aSAndroid Build Coastguard Worker #define SBR_SMOOTH_LEN_BITS 1
67*15dc779aSAndroid Build Coastguard Worker #define SBR_STOCK_HE2_BITS 1
68*15dc779aSAndroid Build Coastguard Worker #define SBR_HDR_RESERV_BITS 2
69*15dc779aSAndroid Build Coastguard Worker #define SBR_SCE_RESERV_BITS 4
70*15dc779aSAndroid Build Coastguard Worker 
71*15dc779aSAndroid Build Coastguard Worker #define SBR_COUPLNG_MODE_BITS 1
72*15dc779aSAndroid Build Coastguard Worker 
73*15dc779aSAndroid Build Coastguard Worker #define SBR_INVERSE_FILT_MODE_BITS 2
74*15dc779aSAndroid Build Coastguard Worker 
75*15dc779aSAndroid Build Coastguard Worker #define SBR_ENLARGED_DATA_BITS 1
76*15dc779aSAndroid Build Coastguard Worker #define SBR_CONT_SIZE_BITS 4
77*15dc779aSAndroid Build Coastguard Worker #define SBR_CONT_ESC_CNT_BITS 8
78*15dc779aSAndroid Build Coastguard Worker #define SBR_CONT_ID_BITS 2
79*15dc779aSAndroid Build Coastguard Worker 
80*15dc779aSAndroid Build Coastguard Worker #define SBR_DEL_COD_DIR_BITS 1
81*15dc779aSAndroid Build Coastguard Worker 
82*15dc779aSAndroid Build Coastguard Worker #define SBR_ADD_SINE_FLAG_BITS 1
83*15dc779aSAndroid Build Coastguard Worker 
84*15dc779aSAndroid Build Coastguard Worker #define SBR_BEGIN_ENVN_BITS_AMPLITUDE_RESOLUTION_3_0 6
85*15dc779aSAndroid Build Coastguard Worker #define SBR_BEGIN_ENVN_BITS_BALNCE_AMPLITUDE_RESOLUTION_3_0 5
86*15dc779aSAndroid Build Coastguard Worker #define SBR_BEGIN_NOISE_BITS_AMPLITUDE_RESOLUTION_3_0 5
87*15dc779aSAndroid Build Coastguard Worker #define SBR_BEGIN_NOISE_BITS_BALNCE_AMPLITUDE_RESOLUTION_3_0 5
88*15dc779aSAndroid Build Coastguard Worker 
89*15dc779aSAndroid Build Coastguard Worker #define SBR_BEGIN_ENVN_BITS_AMPLITUDE_RESOLUTION_1_5 7
90*15dc779aSAndroid Build Coastguard Worker #define SBR_BEGIN_ENVN_BITS_BALNCE_AMPLITUDE_RESOLUTION_1_5 6
91*15dc779aSAndroid Build Coastguard Worker 
92*15dc779aSAndroid Build Coastguard Worker #define NOISE_FLOOR_OFFSET 6.0f
93*15dc779aSAndroid Build Coastguard Worker 
94*15dc779aSAndroid Build Coastguard Worker #define QMF_BUFFER_SIZE 64
95*15dc779aSAndroid Build Coastguard Worker #define TIMESLOT_BUFFER_SIZE 78
96*15dc779aSAndroid Build Coastguard Worker 
97*15dc779aSAndroid Build Coastguard Worker #define MAX_NUM_QMF_BANDS_ESBR 128
98*15dc779aSAndroid Build Coastguard Worker 
99*15dc779aSAndroid Build Coastguard Worker #define SBR_HF_ADJ_OFFSET 2
100*15dc779aSAndroid Build Coastguard Worker #define MPS_SBR_DELAY (6)
101*15dc779aSAndroid Build Coastguard Worker 
102*15dc779aSAndroid Build Coastguard Worker #define MPS_SBR_DELAY_960 5
103*15dc779aSAndroid Build Coastguard Worker 
104*15dc779aSAndroid Build Coastguard Worker #define ESBR_HBE_DELAY_OFFSET (32)
105*15dc779aSAndroid Build Coastguard Worker 
106*15dc779aSAndroid Build Coastguard Worker #define ESBR_HBE_DELAY_OFFSET_960 30
107*15dc779aSAndroid Build Coastguard Worker 
108*15dc779aSAndroid Build Coastguard Worker #define HBE_OPER_WIN_LEN (13)
109*15dc779aSAndroid Build Coastguard Worker #define NO_QMF_SYNTH_CHANNELS 64
110*15dc779aSAndroid Build Coastguard Worker #define TWICE_QMF_SYNTH_CHANNELS_NUM 128
111*15dc779aSAndroid Build Coastguard Worker 
112*15dc779aSAndroid Build Coastguard Worker #define MAX_NO_COLS_VALUE 64
113*15dc779aSAndroid Build Coastguard Worker #define MAX_NO_COLS_VALUE_BY_2 (MAX_NO_COLS_VALUE >> 1)
114*15dc779aSAndroid Build Coastguard Worker 
115*15dc779aSAndroid Build Coastguard Worker #define MAX_QMF_X_INBUF_SIZE MAX_NO_COLS_VALUE
116*15dc779aSAndroid Build Coastguard Worker #define MAX_QMF_X_OUTBUF_SIZE 2 * MAX_QMF_X_INBUF_SIZE
117*15dc779aSAndroid Build Coastguard Worker 
118*15dc779aSAndroid Build Coastguard Worker #define MAX_QMF_X_IN_REAL_BUF (NO_QMF_SYNTH_CHANNELS * MAX_QMF_X_INBUF_SIZE)
119*15dc779aSAndroid Build Coastguard Worker #define MAX_QMF_X_IN_IMAG_BUF (NO_QMF_SYNTH_CHANNELS * MAX_QMF_X_INBUF_SIZE)
120*15dc779aSAndroid Build Coastguard Worker 
121*15dc779aSAndroid Build Coastguard Worker #define MAX_QMF_X_OUT_REAL_BUF (NO_QMF_SYNTH_CHANNELS * MAX_QMF_X_OUTBUF_SIZE)
122*15dc779aSAndroid Build Coastguard Worker #define MAX_QMF_X_OUT_IMAG_BUF (NO_QMF_SYNTH_CHANNELS * MAX_QMF_X_OUTBUF_SIZE)
123*15dc779aSAndroid Build Coastguard Worker 
124*15dc779aSAndroid Build Coastguard Worker #define X_INBUF_SIZE (MAX_FRAME_SIZE + NO_QMF_SYNTH_CHANNELS)
125*15dc779aSAndroid Build Coastguard Worker #define X_OUTBUF_SIZE (X_INBUF_SIZE * 2)
126*15dc779aSAndroid Build Coastguard Worker 
127*15dc779aSAndroid Build Coastguard Worker #define HBE_OPER_BLK_LEN_2 10
128*15dc779aSAndroid Build Coastguard Worker #define HBE_OPER_BLK_LEN_3 8
129*15dc779aSAndroid Build Coastguard Worker #define HBE_OPER_BLK_LEN_4 6
130*15dc779aSAndroid Build Coastguard Worker 
131*15dc779aSAndroid Build Coastguard Worker #define MAX_HBE_PERSISTENT_SIZE                                                          \
132*15dc779aSAndroid Build Coastguard Worker   (MAX_QMF_X_INBUF_SIZE * sizeof(FLOAT32*) + MAX_QMF_X_OUTBUF_SIZE * sizeof(FLOAT32*) +  \
133*15dc779aSAndroid Build Coastguard Worker    MAX_QMF_X_IN_REAL_BUF * sizeof(FLOAT32) + MAX_QMF_X_IN_IMAG_BUF * sizeof(FLOAT32) +   \
134*15dc779aSAndroid Build Coastguard Worker    MAX_QMF_X_OUT_REAL_BUF * sizeof(FLOAT32) + MAX_QMF_X_OUT_IMAG_BUF * sizeof(FLOAT32) + \
135*15dc779aSAndroid Build Coastguard Worker    X_INBUF_SIZE * sizeof(FLOAT32) + X_OUTBUF_SIZE * sizeof(FLOAT32))
136*15dc779aSAndroid Build Coastguard Worker 
137*15dc779aSAndroid Build Coastguard Worker #define MAX_QMF_BUF_LEN 78
138*15dc779aSAndroid Build Coastguard Worker 
139*15dc779aSAndroid Build Coastguard Worker #define SBR_FRAME_CLASS_BITS 2
140*15dc779aSAndroid Build Coastguard Worker #define SBR_VAR_BORD_BITS 2
141*15dc779aSAndroid Build Coastguard Worker #define SBR_FRQ_RES_BITS 1
142*15dc779aSAndroid Build Coastguard Worker #define SBR_REL_BITS 2
143*15dc779aSAndroid Build Coastguard Worker #define SBR_ENV_BITS 2
144*15dc779aSAndroid Build Coastguard Worker #define SBR_NUM_BITS 2
145*15dc779aSAndroid Build Coastguard Worker 
146*15dc779aSAndroid Build Coastguard Worker #define FIXFIX 0
147*15dc779aSAndroid Build Coastguard Worker #define FIXVAR 1
148*15dc779aSAndroid Build Coastguard Worker #define VARFIX 2
149*15dc779aSAndroid Build Coastguard Worker #define VARVAR 3
150*15dc779aSAndroid Build Coastguard Worker 
151*15dc779aSAndroid Build Coastguard Worker #define LEN_NIBBLE (4)
152*15dc779aSAndroid Build Coastguard Worker 
153*15dc779aSAndroid Build Coastguard Worker #define PI 3.14159265358979323846264338327950288
154*15dc779aSAndroid Build Coastguard Worker #define EPS 1e-12f
155*15dc779aSAndroid Build Coastguard Worker #define LOG2 0.69314718056f
156*15dc779aSAndroid Build Coastguard Worker 
157*15dc779aSAndroid Build Coastguard Worker #define MAX_STRETCH 4
158*15dc779aSAndroid Build Coastguard Worker #define MAXDEG 3
159*15dc779aSAndroid Build Coastguard Worker 
160*15dc779aSAndroid Build Coastguard Worker #define EXP_FOR_SQRT 0.5f
161*15dc779aSAndroid Build Coastguard Worker 
162*15dc779aSAndroid Build Coastguard Worker #define SBR_HF_RELAXATION_PARAM 0.999999f
163*15dc779aSAndroid Build Coastguard Worker 
164*15dc779aSAndroid Build Coastguard Worker #define ESBR_PATCHING_MODE_BITS 1
165*15dc779aSAndroid Build Coastguard Worker #define ESBR_OVERSAMPLING_FLAG_BITS 1
166*15dc779aSAndroid Build Coastguard Worker #define ESBR_PITCHIN_FLAG_BITS 1
167*15dc779aSAndroid Build Coastguard Worker #define ESBR_PITCHIN_BINS_BITS 7
168*15dc779aSAndroid Build Coastguard Worker #define ESBR_RESERVED_PRESENT 1
169*15dc779aSAndroid Build Coastguard Worker #define ESBR_RESERVED_BITS_DATA 4
170*15dc779aSAndroid Build Coastguard Worker #define ESBR_INVF_MODE_BITS 2
171*15dc779aSAndroid Build Coastguard Worker #define ESBR_NOISE_MODE_BITS 1
172*15dc779aSAndroid Build Coastguard Worker #define ESBR_DOMAIN_BITS 1
173*15dc779aSAndroid Build Coastguard Worker 
174*15dc779aSAndroid Build Coastguard Worker #define SBR_NUM_QMF_BANDS 64
175*15dc779aSAndroid Build Coastguard Worker #define SBR_NUM_QMF_BANDS_2 32
176*15dc779aSAndroid Build Coastguard Worker 
177*15dc779aSAndroid Build Coastguard Worker #define PVC_NUM_TIME_SLOTS 16
178*15dc779aSAndroid Build Coastguard Worker #define PVC_ESG_MIN_VAL 0.1f
179*15dc779aSAndroid Build Coastguard Worker 
180*15dc779aSAndroid Build Coastguard Worker #define PVC_10LOG10_ESG_MIN_VAL -10.0f
181*15dc779aSAndroid Build Coastguard Worker 
182*15dc779aSAndroid Build Coastguard Worker #define PVC_DIV_MODE_BITS 3
183*15dc779aSAndroid Build Coastguard Worker #define PVC_NS_MODE_BITS 1
184*15dc779aSAndroid Build Coastguard Worker #define PVC_GRID_INFO_BITS 1
185*15dc779aSAndroid Build Coastguard Worker #define PVC_REUSE_PVC_ID_BITS 1
186*15dc779aSAndroid Build Coastguard Worker #define PVC_ID_BITS 7
187*15dc779aSAndroid Build Coastguard Worker #define PVC_NB_HIGH_MODE1 8
188*15dc779aSAndroid Build Coastguard Worker #define PVC_NB_HIGH_MODE2 6
189*15dc779aSAndroid Build Coastguard Worker 
190*15dc779aSAndroid Build Coastguard Worker #define PVC_NB_LOW 3
191*15dc779aSAndroid Build Coastguard Worker #define PVC_ID_NUM_GROUPS 3
192*15dc779aSAndroid Build Coastguard Worker #define PVC_NB_HIGH 128
193*15dc779aSAndroid Build Coastguard Worker #define PVC_ID_NBIT 7
194*15dc779aSAndroid Build Coastguard Worker 
195*15dc779aSAndroid Build Coastguard Worker #define ESC_SIN_POS 31
196*15dc779aSAndroid Build Coastguard Worker #define MAX_OCTAVE 29
197*15dc779aSAndroid Build Coastguard Worker #define MAX_SECOND_REGION 50
198*15dc779aSAndroid Build Coastguard Worker 
199*15dc779aSAndroid Build Coastguard Worker #define SBR_ENERGY_PAN_OFFSET 12
200*15dc779aSAndroid Build Coastguard Worker #define SBR_ENV_SF_MAX_VAL_1_5 70
201*15dc779aSAndroid Build Coastguard Worker #define MAX_NOISE_FLOOR_FAC_VAL 35
202*15dc779aSAndroid Build Coastguard Worker #define MIN_NOISE_FLOOR_FAC_VAL 0
203*15dc779aSAndroid Build Coastguard Worker 
204*15dc779aSAndroid Build Coastguard Worker #define HBE_ZERO_BAND_IDX 6
205*15dc779aSAndroid Build Coastguard Worker 
206*15dc779aSAndroid Build Coastguard Worker #define MAX_OV_DELAY 12
207*15dc779aSAndroid Build Coastguard Worker 
208*15dc779aSAndroid Build Coastguard Worker #define LD_TRAN 1
209*15dc779aSAndroid Build Coastguard Worker #define LD_ENV_TIME_SLOT 7
210*15dc779aSAndroid Build Coastguard Worker #define LD_ENV_TBL_512 16
211*15dc779aSAndroid Build Coastguard Worker #define LD_ENV_TBL_480 15
212*15dc779aSAndroid Build Coastguard Worker #define LD_ENV_TBL_SIZE 4
213*15dc779aSAndroid Build Coastguard Worker #define SBR_TRAN_BITS 4
214*15dc779aSAndroid Build Coastguard Worker #define SBRLD_CLA_BITS 1
215*15dc779aSAndroid Build Coastguard Worker #define SBR_ENVT_NUMENV 0
216*15dc779aSAndroid Build Coastguard Worker #define SBR_ENVT_TRANIDX 3
217*15dc779aSAndroid Build Coastguard Worker 
218*15dc779aSAndroid Build Coastguard Worker #define SBR_CLA_BITS 2
219*15dc779aSAndroid Build Coastguard Worker #define SBR_ABS_BITS 2
220*15dc779aSAndroid Build Coastguard Worker #define SBR_RES_BITS 1
221*15dc779aSAndroid Build Coastguard Worker #define SBR_REL_BITS 2
222*15dc779aSAndroid Build Coastguard Worker #define SBR_ENV_BITS 2
223*15dc779aSAndroid Build Coastguard Worker #define SBR_NUM_BITS 2
224*15dc779aSAndroid Build Coastguard Worker 
225*15dc779aSAndroid Build Coastguard Worker #define FIXFIX 0
226*15dc779aSAndroid Build Coastguard Worker #define FIXVAR 1
227*15dc779aSAndroid Build Coastguard Worker #define VARFIX 2
228*15dc779aSAndroid Build Coastguard Worker #define VARVAR 3
229*15dc779aSAndroid Build Coastguard Worker 
230*15dc779aSAndroid Build Coastguard Worker #define LEN_NIBBLE (4)
231*15dc779aSAndroid Build Coastguard Worker 
232*15dc779aSAndroid Build Coastguard Worker #endif /* IXHEAAC_SBR_CONST_H */
233