| /****************************************************************************** |
| * * |
| * Copyright (C) 2018 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at: |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| ***************************************************************************** |
| * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore |
| */ |
| #ifndef IXHEAACD_AAC_ROM_H |
| #define IXHEAACD_AAC_ROM_H |
| |
| #define AAC_NF_NO_RANDOM_VAL 512 |
| #define MAX_CB_SIZE 13 |
| |
| typedef struct { |
| WORD32 ixheaacd_pow_table_Q13[129]; |
| WORD32 scale_table[4]; |
| WORD8 tns_max_bands_tbl[12][2]; |
| WORD16 tns_coeff3_16[8]; |
| WORD16 tns_coeff4_16[16]; |
| WORD32 scale_mant_tab[4]; |
| |
| WORD32 tns_coeff3[8]; |
| WORD32 tns_coeff4[16]; |
| |
| WORD32 tns_coeff3_32[8]; |
| WORD32 tns_coeff4_32[16]; |
| WORD32 tns_max_bands_tbl_usac[16][2]; |
| |
| WORD8 tns_max_bands_tbl_ld[12]; |
| WORD8 tns_max_bands_tbl_480[12]; |
| |
| } ia_aac_dec_block_tables_struct; |
| |
| extern const ia_aac_dec_block_tables_struct ixheaacd_aac_block_tables; |
| |
| typedef struct { |
| WORD8 ixheaacd_sfb_96_1024[43]; |
| WORD8 ixheaacd_sfb_96_128[14]; |
| WORD8 ixheaacd_sfb_64_1024[49]; |
| WORD8 ixheaacd_sfb_48_1024[51]; |
| WORD8 ixheaacd_sfb_48_128[16]; |
| WORD8 ixheaacd_sfb_32_1024[53]; |
| WORD8 ixheaacd_sfb_24_1024[49]; |
| WORD8 ixheaacd_sfb_24_128[17]; |
| WORD8 ixheaacd_sfb_16_1024[45]; |
| WORD8 ixheaacd_sfb_16_128[17]; |
| WORD8 ixheaacd_sfb_8_1024[42]; |
| WORD8 ixheaacd_sfb_8_128[17]; |
| |
| ia_sampling_rate_info_struct str_sample_rate_info[13]; |
| |
| UWORD32 idx_table_hf11[21]; |
| UWORD32 idx_table_hf10[20]; |
| UWORD32 idx_table_hf9[23]; |
| UWORD32 idx_table_hf8[17]; |
| UWORD32 idx_table_hf7[18]; |
| UWORD32 idx_table_hf6[17]; |
| UWORD32 idx_table_hf5[19]; |
| UWORD32 idx_table_hf4[19]; |
| UWORD32 idx_table_hf3[27]; |
| UWORD32 idx_table_hf2[16]; |
| UWORD32 idx_table_hf1[12]; |
| |
| UWORD16 input_table_cb11[290]; |
| UWORD16 input_table_cb10[170]; |
| UWORD16 input_table_cb9[170]; |
| UWORD16 input_table_cb8[65]; |
| UWORD16 input_table_cb7[65]; |
| UWORD16 input_table_cb6[82]; |
| UWORD16 input_table_cb5[82]; |
| UWORD16 input_table_cb4[82]; |
| UWORD16 input_table_cb3[82]; |
| UWORD16 input_table_cb2[82]; |
| UWORD16 input_table_cb1[82]; |
| UWORD16 huffman_code_book_scl[122]; |
| UWORD32 huffman_code_book_scl_index[33]; |
| |
| WORD8 ixheaacd_sfb_48_512[37]; |
| WORD8 ixheaacd_sfb_32_512[38]; |
| WORD8 ixheaacd_sfb_24_512[32]; |
| |
| WORD8 ixheaacd_sfb_48_480[36]; |
| WORD8 ixheaacd_sfb_32_480[38]; |
| WORD8 ixheaacd_sfb_24_480[31]; |
| |
| } ia_aac_dec_huffman_tables_struct; |
| |
| extern const ia_aac_dec_huffman_tables_struct ixheaacd_aac_huffmann_tables; |
| |
| typedef struct { |
| WORD16 cosine_array_2048_256[514]; |
| WORD8 dig_rev_table8_long[64]; |
| WORD8 dig_rev_table8_short[8]; |
| WORD32 fft_twiddle[64 * 7]; |
| |
| WORD16 only_long_window_sine[1024]; |
| WORD16 only_long_window_kbd[1024]; |
| WORD16 only_short_window_sine[128]; |
| WORD16 only_short_window_kbd[128]; |
| |
| WORD16 cosine_array_2048_256p[514]; |
| WORD32 w1024[768]; |
| UWORD8 bit_rev_1024[256]; |
| UWORD8 bit_rev_512[64]; |
| UWORD8 bit_rev_128[16]; |
| UWORD8 bit_rev_32[4]; |
| WORD32 w_256[504]; |
| WORD32 low_overlap_win[512]; |
| WORD32 window_sine_512[512]; |
| WORD32 cosine_array_1024[512]; |
| |
| WORD32 low_overlap_win_480[480]; |
| WORD32 window_sine_480[480]; |
| |
| UWORD8 re_arr_tab_16[240]; |
| UWORD8 re_arr_tab_sml_240[240]; |
| |
| WORD32 cosine_array_960[480]; |
| WORD32 w_16[24]; |
| |
| WORD16 window_sine_480_eld[1920]; |
| WORD16 window_sine_512_eld[2048]; |
| |
| } ia_aac_dec_imdct_tables_struct; |
| |
| extern const ia_aac_dec_imdct_tables_struct ixheaacd_imdct_tables; |
| |
| typedef struct { |
| WORD16 *sfb_index; |
| WORD8 *sfb_width; |
| |
| } ia_aac_sfb_info; |
| |
| typedef struct { |
| ia_aac_dec_block_tables_struct *pstr_block_tables; |
| ia_aac_dec_huffman_tables_struct *pstr_huffmann_tables; |
| ia_aac_dec_imdct_tables_struct *pstr_imdct_tables; |
| |
| ia_aac_sfb_info str_aac_sfb_info[4]; |
| WORD8 *scale_factor_bands_long[12]; |
| WORD8 *scale_factor_bands_short[12]; |
| WORD16 sfb_long_table[52]; |
| WORD16 sfb_short_table[16]; |
| |
| UWORD16 *code_book[MAX_CB_SIZE]; |
| UWORD32 *index_table[MAX_CB_SIZE]; |
| |
| WORD8 *scale_fac_bands_512[16]; |
| WORD8 *scale_fac_bands_480[16]; |
| |
| } ia_aac_dec_tables_struct; |
| |
| #define ixheaacd_huff_cb_0 0 |
| #define ixheaacd_huff_cb_1 1 |
| #define ixheaacd_huff_cb_2 2 |
| #define ixheaacd_huff_cb_3 3 |
| #define ixheaacd_huff_cb_4 4 |
| #define ixheaacd_huff_cb_5 5 |
| #define ixheaacd_huff_cb_6 6 |
| #define ixheaacd_huff_cb_7 7 |
| |
| #endif /* #ifndef IXHEAACD_AAC_ROM_H */ |