xref: /aosp_15_r20/external/libxaac/encoder/iusace_rom.h (revision 15dc779a375ca8b5125643b829a8aa4b70d7f451)
1 /******************************************************************************
2  *                                                                            *
3  * Copyright (C) 2023 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************
18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19  */
20 
21 #pragma once
22 extern const FLOAT64 iusace_twiddle_table_fft_32x32[514];
23 extern const FLOAT64 iusace_twiddle_table_3pr[1155];
24 extern const FLOAT64 iusace_twiddle_table_3pi[1155];
25 extern const FLOAT64 iusace_twiddle_sin_2048[1024];
26 extern const FLOAT64 iusace_twiddle_cos_2048[1024];
27 extern const FLOAT32 ia_fft_twiddle_table_float[514];
28 extern const FLOAT32 ia_mixed_rad_twiddle_cos[16384];
29 extern const FLOAT32 ia_mixed_rad_twiddle_sin[16384];
30 
31 #define WIN_LEN_1024 1024
32 #define WIN_LEN_768 768
33 #define WIN_LEN_128 128
34 #define WIN_LEN_256 256
35 #define WIN_LEN_192 192
36 #define WIN_LEN_96 96
37 
38 extern const FLOAT32 iusace_iir_hipass_coeffs[BLK_SWITCH_FILT_LEN];
39 extern const WORD32 iusace_suggested_grouping_table[MAX_SHORT_WINDOWS][MAXIMUM_NO_OF_GROUPS];
40 extern const WORD32 iusace_synchronized_block_types[4][4];
41 
42 extern const FLOAT32 iusace_gamma_table[ORDER + 1];
43 extern const FLOAT32 iusace_chebyshev_polyn_grid[101];
44 
45 extern const UWORD32 iusace_sampl_freq_idx_table[32];
46 extern const WORD32 iusace_bandwidth_table[8][2];
47 
48 extern const WORD32 iusace_huffman_code_table[121][2];
49 
50 extern const FLOAT64 iusace_pre_post_twid_cos_2048[512];
51 extern const FLOAT64 iusace_pre_post_twid_sin_2048[512];
52 extern const FLOAT64 iexheaac_pre_post_twid_cos_1536[384];
53 extern const FLOAT64 iexheaac_pre_post_twid_sin_1536[384];
54 extern const FLOAT64 iusace_pre_post_twid_cos_256[64];
55 extern const FLOAT64 iusace_pre_post_twid_sin_256[64];
56 extern const FLOAT64 iexheaac_pre_post_twid_cos_192[48];
57 extern const FLOAT64 iexheaac_pre_post_twid_sin_192[48];
58 extern const FLOAT64 iusace_kbd_win1024[1024];
59 extern const FLOAT64 iusace_kbd_win256[256];
60 extern const FLOAT64 iusace_kbd_win128[128];
61 
62 extern const FLOAT64 iexheaac_kbd_win_768[768];
63 extern const FLOAT64 iexheaac_kbd_win_192[192];
64 extern const FLOAT64 iexheaac_kbd_win_96[96];
65 
66 extern const FLOAT64 iusace_sine_win_1024[1024];
67 extern const FLOAT64 iexheaac_sine_win_768[768];
68 extern const FLOAT64 iusace_sine_win_256[256];
69 extern const FLOAT64 iusace_sine_win_128[128];
70 extern const FLOAT64 iexheaac_sine_win_192[192];
71 extern const FLOAT64 iexheaac_sine_win_96[96];
72 
73 extern const UWORD16 iusace_ari_cf_r[3][4];
74 extern const UWORD16 iusace_ari_lookup_m[742];
75 extern const UWORD32 iusace_ari_hash_m[742];
76 extern const UWORD8 iusace_ari_hash_m_lsb[742];
77 extern const UWORD16 iusace_ari_cf_m[64][17];
78 
79 extern const FLOAT32 iusace_pre_post_twid_cos_sin_512[4][512];
80 extern const FLOAT32 iusace_pre_post_twid_cos_sin_256[4][256];
81 extern const FLOAT32 iusace_pre_post_twid_cos_sin_128[4][128];
82 extern const FLOAT32 iusace_pre_post_twid_cos_sin_64[4][64];
83 extern const FLOAT32 iusace_pre_post_twid_cos_sin_32[4][32];
84 
85 extern const FLOAT64 iusace_pow_table[9000];
86 
87 extern const FLOAT64 iusace_mdst_fcoeff_long_sin[];
88 extern const FLOAT64 iusace_mdst_fcoeff_long_kbd[];
89 extern const FLOAT64 iusace_mdst_fcoeff_long_sin_kbd[];
90 extern const FLOAT64 iusace_mdst_fcoeff_long_kbd_sin[];
91 extern const FLOAT64 *const iusace_mdst_fcoeff_longshort_curr[2][2];
92 
93 extern const FLOAT64 iusace_mdst_fcoeff_start_sin[];
94 extern const FLOAT64 iusace_mdst_fcoeff_start_kbd[];
95 extern const FLOAT64 iusace_mdst_fcoeff_start_sin_kbd[];
96 extern const FLOAT64 iusace_mdst_fcoeff_start_kbd_sin[];
97 
98 extern const FLOAT64 *const iusace_mdst_fcoeff_start_curr[2][2];
99 
100 extern const FLOAT64 iusace_mdst_fcoeff_stop_sin[];
101 extern const FLOAT64 iusace_mdst_fcoeff_stop_kbd[];
102 extern const FLOAT64 iusace_mdst_fcoeff_stop_sin_kbd[];
103 extern const FLOAT64 iusace_mdst_fcoeff_stop_kbd_sin[];
104 
105 extern const FLOAT64 *const iusace_mdst_fcoeff_stop_cur[2][2];
106 
107 extern const FLOAT64 iusace_mdst_fcoeff_stopstart_sin[];
108 extern const FLOAT64 iusace_mdst_fcoeff_stopstart_kbd[];
109 extern const FLOAT64 iusace_mdst_fcoeff_stopstart_sin_kbd[];
110 extern const FLOAT64 iusace_mdst_fcoeff_stopstart_kbd_sin[];
111 
112 extern const FLOAT64 *const iusace_mdst_fcoeff_stopstart_cur[2][2];
113 
114 extern const FLOAT64 iusace_mdst_fcoeff_l_s_start_left_sin[];
115 extern const FLOAT64 iusace_mdst_fcoeff_l_s_start_left_kbd[];
116 
117 extern const FLOAT64 iusace_mdst_fcoeff_stop_stopstart_left_sin[];
118 extern const FLOAT64 iusace_mdst_fcoeff_stop_stopstart_left_kbd[];
119 
120 extern const FLOAT64 *const iusace_mdst_fcoeff_l_s_start_left_prev[2];
121 
122 extern const FLOAT64 *const iusace_mdst_fcoeff_stop_stopstart_left_prev[2];
123 
124 extern const FLOAT32 ia_rad_3_fft_twiddle_re[1155];
125 
126 extern const FLOAT32 ia_rad_3_fft_twiddle_im[1155];
127 
128 extern const FLOAT32 ia_fft_mix_rad_twid_tbl_336[564];
129 
130 extern const FLOAT32 ia_fft_mix_rad_twid_tbl_168[276];
131