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