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_TNS_H 21*15dc779aSAndroid Build Coastguard Worker #define IXHEAACD_TNS_H 22*15dc779aSAndroid Build Coastguard Worker 23*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_aac_tns_process( 24*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_channel_info_struct *ptr_aac_dec_channel_info, WORD32 num_ch, 25*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_tables_struct *ptr_aac_tables, WORD object_type, WORD32 ar_flag, 26*15dc779aSAndroid Build Coastguard Worker WORD32 *predicted_spectrum); 27*15dc779aSAndroid Build Coastguard Worker 28*15dc779aSAndroid Build Coastguard Worker WORD16 ixheaacd_read_tns_data( 29*15dc779aSAndroid Build Coastguard Worker ia_bit_buf_struct *it_bit_buff, 30*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_channel_info_struct *ptr_aac_dec_channel_info); 31*15dc779aSAndroid Build Coastguard Worker 32*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_calc_max_spectral_line_dec(WORD32 *ptr_tmp, WORD32 size); 33*15dc779aSAndroid Build Coastguard Worker 34*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_calc_max_spectral_line_armv7(WORD32 *ptr_tmp, WORD32 size); 35*15dc779aSAndroid Build Coastguard Worker 36*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_calc_max_spectral_line_armv8(WORD32 *ptr_tmp, WORD32 size); 37*15dc779aSAndroid Build Coastguard Worker 38*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_decode_coef(const ia_filter_info_struct *filter, 39*15dc779aSAndroid Build Coastguard Worker WORD16 *parcor_coeff, 40*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_tables_struct *ptr_aac_tables); 41*15dc779aSAndroid Build Coastguard Worker 42*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_parcor_lpc_convert_dec(WORD16 *parcor, WORD16 *lpc, 43*15dc779aSAndroid Build Coastguard Worker WORD16 *scale, WORD order); 44*15dc779aSAndroid Build Coastguard Worker 45*15dc779aSAndroid Build Coastguard Worker void ixheaacd_tns_parcor_lpc_convert_dec_ld(WORD32 *parcor, WORD32 *lpc, 46*15dc779aSAndroid Build Coastguard Worker WORD16 *scale, WORD32 order); 47*15dc779aSAndroid Build Coastguard Worker 48*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_parcor_lpc_convert_armv7(WORD16 *parcor, WORD16 *lpc, 49*15dc779aSAndroid Build Coastguard Worker WORD16 *scale, WORD order); 50*15dc779aSAndroid Build Coastguard Worker 51*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_ar_filter_dec(WORD32 *spectrum, WORD32 size, WORD32 inc, 52*15dc779aSAndroid Build Coastguard Worker WORD16 *lpc, WORD32 order, WORD32 shift_value, 53*15dc779aSAndroid Build Coastguard Worker WORD scale_spec, WORD32 *ptr_filter_state); 54*15dc779aSAndroid Build Coastguard Worker 55*15dc779aSAndroid Build Coastguard Worker void ixheaacd_tns_ma_filter_fixed_ld(WORD32 *spectrum, WORD32 size, WORD32 inc, 56*15dc779aSAndroid Build Coastguard Worker WORD32 *lpc, WORD32 order, 57*15dc779aSAndroid Build Coastguard Worker WORD16 shift_value); 58*15dc779aSAndroid Build Coastguard Worker 59*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_ar_filter_armv7(WORD32 *spectrum, WORD32 size, WORD32 inc, 60*15dc779aSAndroid Build Coastguard Worker WORD16 *lpc, WORD32 order, WORD32 shift_value, 61*15dc779aSAndroid Build Coastguard Worker WORD scale_spec, WORD32 *ptr_filter_state); 62*15dc779aSAndroid Build Coastguard Worker 63*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_decode_coefficients(const ia_filter_info_struct *filter, 64*15dc779aSAndroid Build Coastguard Worker WORD32 *a, 65*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_tables_struct *ptr_aac_tables); 66*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_parcor_to_lpc(WORD32 *parcor, WORD32 *lpc, WORD16 *scale, 67*15dc779aSAndroid Build Coastguard Worker WORD32 order); 68*15dc779aSAndroid Build Coastguard Worker 69*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_ar_filter_fixed_dec(WORD32 *spectrum, WORD32 size, WORD32 inc, 70*15dc779aSAndroid Build Coastguard Worker WORD32 *lpc, WORD32 order, 71*15dc779aSAndroid Build Coastguard Worker WORD32 shift_value, WORD scale_spec); 72*15dc779aSAndroid Build Coastguard Worker 73*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_ar_filter_fixed_armv7(WORD32 *spectrum, WORD32 size, 74*15dc779aSAndroid Build Coastguard Worker WORD32 inc, WORD32 *lpc, WORD32 order, 75*15dc779aSAndroid Build Coastguard Worker WORD32 shift_value, WORD scale_spec); 76*15dc779aSAndroid Build Coastguard Worker 77*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_ar_filter_fixed_non_neon_armv7(WORD32 *spectrum, WORD32 size, 78*15dc779aSAndroid Build Coastguard Worker WORD32 inc, WORD32 *lpc, 79*15dc779aSAndroid Build Coastguard Worker WORD32 order, 80*15dc779aSAndroid Build Coastguard Worker WORD32 shift_value, 81*15dc779aSAndroid Build Coastguard Worker WORD scale_spec); 82*15dc779aSAndroid Build Coastguard Worker 83*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_tns_ar_filter_fixed_armv8(WORD32 *spectrum, WORD32 size, 84*15dc779aSAndroid Build Coastguard Worker WORD32 inc, WORD32 *lpc, WORD32 order, 85*15dc779aSAndroid Build Coastguard Worker WORD32 shift_value, WORD scale_spec); 86*15dc779aSAndroid Build Coastguard Worker 87*15dc779aSAndroid Build Coastguard Worker #endif /* #ifndef IXHEAACD_TNS_H */ 88