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