xref: /aosp_15_r20/external/libxaac/encoder/ixheaace_mps_defines.h (revision 15dc779a375ca8b5125643b829a8aa4b70d7f451)
1*15dc779aSAndroid Build Coastguard Worker /******************************************************************************
2*15dc779aSAndroid Build Coastguard Worker  *                                                                            *
3*15dc779aSAndroid Build Coastguard Worker  * Copyright (C) 2023 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 
21*15dc779aSAndroid Build Coastguard Worker #pragma once
22*15dc779aSAndroid Build Coastguard Worker #define NUM_QMF_BANDS (64)
23*15dc779aSAndroid Build Coastguard Worker #define MAX_HYBRID_BANDS (71)
24*15dc779aSAndroid Build Coastguard Worker 
25*15dc779aSAndroid Build Coastguard Worker #define MAX_INPUT_CHANNELS (6)
26*15dc779aSAndroid Build Coastguard Worker #define MAX_OUTPUT_CHANNELS (2)
27*15dc779aSAndroid Build Coastguard Worker #define PARAMETER_BANDS (20)
28*15dc779aSAndroid Build Coastguard Worker 
29*15dc779aSAndroid Build Coastguard Worker #define MAX_QMF_BANDS_TO_HYBRID (7)
30*15dc779aSAndroid Build Coastguard Worker #define MAX_HYBRID_ONLY_BANDS_PER_QMF (16)
31*15dc779aSAndroid Build Coastguard Worker #define PROTO_LEN (13)
32*15dc779aSAndroid Build Coastguard Worker #define BUFFER_LEN_LF (PROTO_LEN - 1 + MAX_TIME_SLOTS)
33*15dc779aSAndroid Build Coastguard Worker 
34*15dc779aSAndroid Build Coastguard Worker #define BUFFER_LEN_HF ((PROTO_LEN - 1) / 2)
35*15dc779aSAndroid Build Coastguard Worker 
36*15dc779aSAndroid Build Coastguard Worker #define MAX_BUFFER_SIZE (2048)
37*15dc779aSAndroid Build Coastguard Worker #define HYBRID_FILTER_DELAY (6)
38*15dc779aSAndroid Build Coastguard Worker #define QMF_FILTER_STATE_SYN_SIZE (640)
39*15dc779aSAndroid Build Coastguard Worker #define NUM_QMF_BANDS_TO_LF (3)
40*15dc779aSAndroid Build Coastguard Worker 
41*15dc779aSAndroid Build Coastguard Worker #define MPS_MAX_FRAME_LENGTH (4096)
42*15dc779aSAndroid Build Coastguard Worker #define MAX_SAMPLING_RATE (48000)
43*15dc779aSAndroid Build Coastguard Worker #define NUM_QMF_BANDS (64)
44*15dc779aSAndroid Build Coastguard Worker #define MAX_QMF_BANDS (128)
45*15dc779aSAndroid Build Coastguard Worker 
46*15dc779aSAndroid Build Coastguard Worker #define MAX_ANA_TIME_SLOT (192)
47*15dc779aSAndroid Build Coastguard Worker #define MAX_HYBRID_BAND (MAX_QMF_BANDS)
48*15dc779aSAndroid Build Coastguard Worker #define MAX_FRAME_TIME_SLOT (128)
49*15dc779aSAndroid Build Coastguard Worker #define MAX_HYBRID_STATIC_SLOT (96)
50*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_MAX_NUM_BOXES (1)
51*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_MAX_INPUT_CHANNELS (2)
52*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_MAX_OUTPUT_CHANNELS (1)
53*15dc779aSAndroid Build Coastguard Worker 
54*15dc779aSAndroid Build Coastguard Worker #define EPSILON (1e-9f)
55*15dc779aSAndroid Build Coastguard Worker #define PI_FLT (3.1415926535897931f)
56*15dc779aSAndroid Build Coastguard Worker #define ALPHA (0.0001f)
57*15dc779aSAndroid Build Coastguard Worker 
58*15dc779aSAndroid Build Coastguard Worker #define MAX_DELAY_INPUT (1024)
59*15dc779aSAndroid Build Coastguard Worker #define MAX_DELAY_OUTPUT (4096)
60*15dc779aSAndroid Build Coastguard Worker #define MAX_DELAY_SURROUND_ANALYSIS (20)
61*15dc779aSAndroid Build Coastguard Worker #define MAX_BITSTREAM_DELAY (4)
62*15dc779aSAndroid Build Coastguard Worker #define MAX_MPEGS_BYTES (1 << 14)
63*15dc779aSAndroid Build Coastguard Worker #define MAX_SSC_BYTES (1 << 6)
64*15dc779aSAndroid Build Coastguard Worker #define MAX_MPS_BS_PAYLOAD_SIZE 10000
65*15dc779aSAndroid Build Coastguard Worker #define MAX_SPACE_TREE_CHANNELS (2)
66*15dc779aSAndroid Build Coastguard Worker #define NUM_KEEP_WINDOWS (3)
67*15dc779aSAndroid Build Coastguard Worker 
68*15dc779aSAndroid Build Coastguard Worker #define WIN_ACTIV (1)
69*15dc779aSAndroid Build Coastguard Worker #define MAX_KEEP_FRAMECOUNT (100)
70*15dc779aSAndroid Build Coastguard Worker 
71*15dc779aSAndroid Build Coastguard Worker #define LEFT_CH (0)
72*15dc779aSAndroid Build Coastguard Worker #define RIGHT_CH (1)
73*15dc779aSAndroid Build Coastguard Worker 
74*15dc779aSAndroid Build Coastguard Worker #define SPACE_ONSET_THRESHOLD (3.0)
75*15dc779aSAndroid Build Coastguard Worker #define SPACE_ONSET_THRESHOLD_SQUARE_FLT ((1.0 / (SPACE_ONSET_THRESHOLD * SPACE_ONSET_THRESHOLD)))
76*15dc779aSAndroid Build Coastguard Worker #define MAX_NUM_TRANS (MAX_NUM_PARAMS / 2)
77*15dc779aSAndroid Build Coastguard Worker 
78*15dc779aSAndroid Build Coastguard Worker #define MAX_FREQ_RES_INDEX (8)
79*15dc779aSAndroid Build Coastguard Worker #define MAX_SAMPLING_FREQUENCY_INDEX (13)
80*15dc779aSAndroid Build Coastguard Worker #define SAMPLING_FREQUENCY_INDEX_ESCAPE (15)
81*15dc779aSAndroid Build Coastguard Worker 
82*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_SAC_VAR_HOLD (0)
83*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_SAC_VAR_ISOLATE (1)
84*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_FRAME_WINDOWING_INTP (0)
85*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_FRAME_WINDOWING_HOLD (1)
86*15dc779aSAndroid Build Coastguard Worker 
87*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_SAC_MAX_FREQ_BANDS (MAX_NUM_BINS)
88*15dc779aSAndroid Build Coastguard Worker 
89*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_MAX_CLD_QUANT_FINE (31)
90*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_MAX_CLD_QUANT_COARSE (15)
91*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_OFFSET_CLD_QUANT_COARSE (7)
92*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_OFFSET_CLD_QUANT_FINE (15)
93*15dc779aSAndroid Build Coastguard Worker 
94*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_MAX_ICC_QUANT_COARSE (4)
95*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_MAX_ICC_QUANT_FINE (8)
96*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_OFFSET_ICC_QUANT_COARSE (0)
97*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_OFFSET_ICC_QUANT_FINE (0)
98*15dc779aSAndroid Build Coastguard Worker 
99*15dc779aSAndroid Build Coastguard Worker #define MAX_NUM_PARAM_BANDS (56)
100*15dc779aSAndroid Build Coastguard Worker 
101*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_TREE_5151 (0)
102*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_TREE_5152 (1)
103*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_TREE_525 (2)
104*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_TREE_212 (7)
105*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_FIXED_GAIN_DMX_INVALID (-1)
106*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_MAX_FIXED_GAIN_DMX (7)
107*15dc779aSAndroid Build Coastguard Worker 
108*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_DECORR_INVALID (-1)
109*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_DECORR_QMFSPLIT0 (0)
110*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_DECORR_QMFSPLIT1 (1)
111*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_DECORR_QMFSPLIT2 (2)
112*15dc779aSAndroid Build Coastguard Worker 
113*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_DATA_MODE_DEFAULT (0)
114*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_DATA_MODE_KEEP (1)
115*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_DATA_MODE_INTERPOLATE (2)
116*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_DATA_MODE_FINECOARSE (3)
117*15dc779aSAndroid Build Coastguard Worker 
118*15dc779aSAndroid Build Coastguard Worker #define MAX_NUM_BOXES (5)
119*15dc779aSAndroid Build Coastguard Worker #define MAX_AAC_SHORTWINDOWGROUPS (4)
120*15dc779aSAndroid Build Coastguard Worker #define MAX_AAC_MDCT (1024)
121*15dc779aSAndroid Build Coastguard Worker #define MAX_AAC_FRAMES (2)
122*15dc779aSAndroid Build Coastguard Worker 
123*15dc779aSAndroid Build Coastguard Worker #define NUM_DATATYPES (3)
124*15dc779aSAndroid Build Coastguard Worker 
125*15dc779aSAndroid Build Coastguard Worker #define DELAY_COMPENSATION (352)
126*15dc779aSAndroid Build Coastguard Worker 
127*15dc779aSAndroid Build Coastguard Worker #define LOG10_2_10 (3.01029995664f)
128*15dc779aSAndroid Build Coastguard Worker #define INV_LN_10_10 (4.3429448190325182765112891891661f)
129*15dc779aSAndroid Build Coastguard Worker 
130*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_SAC_MODE_INVALID (0)
131*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_DMX_GAIN_DEFAULT (2)
132*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_SAC_BANDS_INVALID (0)
133*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_SAC_BANDS_ld (15)
134*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_SAC_BANDS_usac (28)
135*15dc779aSAndroid Build Coastguard Worker 
136*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_QUANTMODE_INVALID (-1)
137*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_QUANTMODE_FINE (0)
138*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_QUANTMODE_EBQ1 (1)
139*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_QUANTMODE_EBQ2 (2)
140*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_QUANTMODE_RSVD3 (3)
141*15dc779aSAndroid Build Coastguard Worker 
142*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_INPUT_BUFFER_IDX (0)
143*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_OUTUT_BUFFER_IDX (0)
144*15dc779aSAndroid Build Coastguard Worker #define IXHEAACE_MPS_BITSTREAM_BUFFER_IDX (1)
145*15dc779aSAndroid Build Coastguard Worker 
146*15dc779aSAndroid Build Coastguard Worker #define QMF_FILTER_PROTOTYPE_SIZE 640
147*15dc779aSAndroid Build Coastguard Worker #define QMF_NO_POLY 5
148*15dc779aSAndroid Build Coastguard Worker #define QMF640_PFT_TABLE_SIZE (640 / 2 + QMF_NO_POLY)
149*15dc779aSAndroid Build Coastguard Worker #define QMF320_MPSLDFB_PFT_TABLE_SIZE (320)
150*15dc779aSAndroid Build Coastguard Worker #define QMF640_MPSLDFB_PFT_TABLE_SIZE (640)
151*15dc779aSAndroid Build Coastguard Worker #define QMF_MPSLDFB_PFT_SCALE 1
152*15dc779aSAndroid Build Coastguard Worker 
153*15dc779aSAndroid Build Coastguard Worker #define MAX_MPEGS_BYTES (1 << 14)
154*15dc779aSAndroid Build Coastguard Worker #define MAX_SSC_BYTES (1 << 6)
155*15dc779aSAndroid Build Coastguard Worker #define MAX_HYBRID_BAND_OFFSET (64)
156*15dc779aSAndroid Build Coastguard Worker 
157*15dc779aSAndroid Build Coastguard Worker #define SQUARE_ROOT_TWO (1.41421356237f)
158*15dc779aSAndroid Build Coastguard Worker #define MPS_PAYLOAD_SIZE (1024)
159*15dc779aSAndroid Build Coastguard Worker #define ONE_BY_LN_TWO (1.44269504089f)
160*15dc779aSAndroid Build Coastguard Worker 
161*15dc779aSAndroid Build Coastguard Worker #define PBC_MIN_BANDS 5
162*15dc779aSAndroid Build Coastguard Worker #define MAXBANDS 56
163*15dc779aSAndroid Build Coastguard Worker 
164*15dc779aSAndroid Build Coastguard Worker #define MAX_FACTORS 23
165*15dc779aSAndroid Build Coastguard Worker #define MAX_PERM 209
166*15dc779aSAndroid Build Coastguard Worker #define NFACTOR 11
167*15dc779aSAndroid Build Coastguard Worker #ifndef M_PI
168*15dc779aSAndroid Build Coastguard Worker #define M_PI 3.14159265358979323846264338327950288
169*15dc779aSAndroid Build Coastguard Worker #endif
170*15dc779aSAndroid Build Coastguard Worker #define SIN_60 0.86602540378443865
171*15dc779aSAndroid Build Coastguard Worker #define COS_72 0.30901699437494742
172*15dc779aSAndroid Build Coastguard Worker #define SIN_72 0.95105651629515357
173*15dc779aSAndroid Build Coastguard Worker #define COS_22_5 (0.92387953251129f)
174*15dc779aSAndroid Build Coastguard Worker #define COS_67_5 (0.38268343236509f)
175*15dc779aSAndroid Build Coastguard Worker #define SIN_67_5 (0.92387953251129f)
176*15dc779aSAndroid Build Coastguard Worker #define SIN_22_5 (0.38268343236509f)
177*15dc779aSAndroid Build Coastguard Worker #define INV_SQRT_2 (0.70710678118655f)
178*15dc779aSAndroid Build Coastguard Worker 
179*15dc779aSAndroid Build Coastguard Worker #define MPS_COS_PI_BY_16 (0.980785280403230f)
180*15dc779aSAndroid Build Coastguard Worker #define MPS_SIN_PI_BY_16 (0.195090322016128f)
181*15dc779aSAndroid Build Coastguard Worker #define MPS_COS_3_PI_BY_16 (0.831469612302545f)
182*15dc779aSAndroid Build Coastguard Worker #define MPS_SIN_3_PI_BY_16 (0.555570233019602f)
183*15dc779aSAndroid Build Coastguard Worker #define MPS_COS_6_PI_BY_16 (0.923879532511287f)
184*15dc779aSAndroid Build Coastguard Worker #define MPS_SIN_6_PI_BY_16 (0.382683432365090f)
185*15dc779aSAndroid Build Coastguard Worker #define MPS_INV_SQRT2 (7.071067811865475e-1f)
186*15dc779aSAndroid Build Coastguard Worker #define MPS_COS_PI_DIV8 (9.238795325112867e-1f)
187*15dc779aSAndroid Build Coastguard Worker #define MPS_COS_3PI_DIV8 (3.826834323650898e-1f)
188*15dc779aSAndroid Build Coastguard Worker #define MPS_SQRT2PLUS1 (2.414213562373095f)
189*15dc779aSAndroid Build Coastguard Worker #define MPS_SQRT2MINUS1 (4.142135623730952e-1f)
190