1 /****************************************************************************** 2 * * 3 * Copyright (C) 2018 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 #ifndef IXHEAACD_AAC_ROM_H 21 #define IXHEAACD_AAC_ROM_H 22 23 #define AAC_NF_NO_RANDOM_VAL 512 24 25 typedef struct { 26 WORD32 ixheaacd_pow_table_Q13[129]; 27 WORD32 scale_table[4]; 28 WORD8 tns_max_bands_tbl[12][2]; 29 WORD16 tns_coeff3_16[8]; 30 WORD16 tns_coeff4_16[16]; 31 WORD32 scale_mant_tab[4]; 32 33 WORD32 tns_coeff3[8]; 34 WORD32 tns_coeff4[16]; 35 36 WORD32 tns_coeff3_32[8]; 37 WORD32 tns_coeff4_32[16]; 38 WORD32 tns_max_bands_tbl_usac[16][2]; 39 40 WORD8 tns_max_bands_tbl_ld[12]; 41 WORD8 tns_max_bands_tbl_480[12]; 42 43 } ia_aac_dec_block_tables_struct; 44 45 extern const ia_aac_dec_block_tables_struct ixheaacd_aac_block_tables; 46 47 typedef struct { 48 WORD8 ixheaacd_sfb_96_1024[43]; 49 WORD8 ixheaacd_sfb_96_128[14]; 50 WORD8 ixheaacd_sfb_64_1024[49]; 51 WORD8 ixheaacd_sfb_48_1024[51]; 52 WORD8 ixheaacd_sfb_48_128[16]; 53 WORD8 ixheaacd_sfb_32_1024[53]; 54 WORD8 ixheaacd_sfb_24_1024[49]; 55 WORD8 ixheaacd_sfb_24_128[17]; 56 WORD8 ixheaacd_sfb_16_1024[45]; 57 WORD8 ixheaacd_sfb_16_128[17]; 58 WORD8 ixheaacd_sfb_8_1024[42]; 59 WORD8 ixheaacd_sfb_8_128[17]; 60 61 ia_sampling_rate_info_struct str_sample_rate_info[13]; 62 63 UWORD32 idx_table_hf11[21]; 64 UWORD32 idx_table_hf10[20]; 65 UWORD32 idx_table_hf9[23]; 66 UWORD32 idx_table_hf8[17]; 67 UWORD32 idx_table_hf7[18]; 68 UWORD32 idx_table_hf6[17]; 69 UWORD32 idx_table_hf5[19]; 70 UWORD32 idx_table_hf4[19]; 71 UWORD32 idx_table_hf3[27]; 72 UWORD32 idx_table_hf2[16]; 73 UWORD32 idx_table_hf1[12]; 74 75 UWORD16 input_table_cb11[290]; 76 UWORD16 input_table_cb10[170]; 77 UWORD16 input_table_cb9[170]; 78 UWORD16 input_table_cb8[65]; 79 UWORD16 input_table_cb7[65]; 80 UWORD16 input_table_cb6[82]; 81 UWORD16 input_table_cb5[82]; 82 UWORD16 input_table_cb4[82]; 83 UWORD16 input_table_cb3[82]; 84 UWORD16 input_table_cb2[82]; 85 UWORD16 input_table_cb1[82]; 86 UWORD16 huffman_code_book_scl[122]; 87 UWORD32 huffman_code_book_scl_index[33]; 88 89 WORD8 ixheaacd_sfb_48_512[37]; 90 WORD8 ixheaacd_sfb_32_512[38]; 91 WORD8 ixheaacd_sfb_24_512[32]; 92 93 WORD8 ixheaacd_sfb_48_480[36]; 94 WORD8 ixheaacd_sfb_32_480[38]; 95 WORD8 ixheaacd_sfb_24_480[31]; 96 97 } ia_aac_dec_huffman_tables_struct; 98 99 extern const ia_aac_dec_huffman_tables_struct ixheaacd_aac_huffmann_tables; 100 101 typedef struct { 102 WORD16 cosine_array_2048_256[514]; 103 WORD8 dig_rev_table8_long[64]; 104 WORD8 dig_rev_table8_short[8]; 105 WORD32 fft_twiddle[64 * 7]; 106 107 WORD16 only_long_window_sine[1024]; 108 WORD16 only_long_window_kbd[1024]; 109 WORD16 only_short_window_sine[128]; 110 WORD16 only_short_window_kbd[128]; 111 112 WORD16 cosine_array_2048_256p[514]; 113 WORD32 w1024[768]; 114 UWORD8 bit_rev_1024[256]; 115 UWORD8 bit_rev_512[64]; 116 UWORD8 bit_rev_128[16]; 117 UWORD8 bit_rev_32[4]; 118 WORD32 w_256[504]; 119 WORD32 low_overlap_win[512]; 120 WORD32 window_sine_512[512]; 121 WORD32 cosine_array_1024[512]; 122 123 WORD32 low_overlap_win_480[480]; 124 WORD32 window_sine_480[480]; 125 126 UWORD8 re_arr_tab_16[240]; 127 UWORD8 re_arr_tab_sml_240[240]; 128 129 WORD32 cosine_array_960[480]; 130 WORD32 w_16[24]; 131 132 WORD16 window_sine_480_eld[1920]; 133 WORD16 window_sine_512_eld[2048]; 134 135 } ia_aac_dec_imdct_tables_struct; 136 137 extern const ia_aac_dec_imdct_tables_struct ixheaacd_imdct_tables; 138 139 typedef struct { 140 WORD16 *sfb_index; 141 WORD8 *sfb_width; 142 143 } ia_aac_sfb_info; 144 145 typedef struct { 146 ia_aac_dec_block_tables_struct *pstr_block_tables; 147 ia_aac_dec_huffman_tables_struct *pstr_huffmann_tables; 148 ia_aac_dec_imdct_tables_struct *pstr_imdct_tables; 149 150 ia_aac_sfb_info str_aac_sfb_info[4]; 151 WORD8 *scale_factor_bands_long[12]; 152 WORD8 *scale_factor_bands_short[12]; 153 WORD16 sfb_long_table[52]; 154 WORD16 sfb_short_table[16]; 155 156 UWORD16 *code_book[13]; 157 UWORD32 *index_table[13]; 158 159 WORD8 *scale_fac_bands_512[16]; 160 WORD8 *scale_fac_bands_480[16]; 161 162 } ia_aac_dec_tables_struct; 163 164 #define ixheaacd_huff_cb_0 0 165 #define ixheaacd_huff_cb_1 1 166 #define ixheaacd_huff_cb_2 2 167 #define ixheaacd_huff_cb_3 3 168 #define ixheaacd_huff_cb_4 4 169 #define ixheaacd_huff_cb_5 5 170 #define ixheaacd_huff_cb_6 6 171 #define ixheaacd_huff_cb_7 7 172 173 #endif /* #ifndef IXHEAACD_AAC_ROM_H */ 174