175 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C
		
	
	
	
| /******************************************************************************
 | |
|  *                                                                            *
 | |
|  * 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 */
 |