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_ACELP_COM_H 21 #define IXHEAACD_ACELP_COM_H 22 23 #define LEN_ABS_LEADER 37 24 #define LEN_SIGN_LEADER 226 25 #define LEN_I3 9 26 #define LEN_I4 28 27 28 extern const FLOAT32 ixheaacd_int_leave_gain_table[256]; 29 30 VOID ixheaacd_rotated_gosset_mtx_dec(WORD32 qn, WORD32 code_book_idx, 31 WORD32 kv[], WORD32 y[]); 32 33 VOID ixheaacd_residual_tool(WORD32 *a, WORD32 *x, WORD32 *y, WORD32 l, 34 WORD32 n); 35 36 VOID ixheaacd_synthesis_tool_float(FLOAT32 a[], FLOAT32 x[], FLOAT32 y[], 37 WORD32 l, FLOAT32 mem[]); 38 39 VOID ixheaacd_synthesis_tool_float1(FLOAT32 a[], FLOAT32 x[], WORD32 l); 40 41 VOID ixheaacd_lpc_wt_synthesis_tool(FLOAT32 a[], FLOAT32 x[], WORD32 l); 42 43 WORD16 ixheaacd_rand_gen(WORD16 *seed); 44 45 VOID ixheaacd_preemphsis_tool(WORD32 *signal, WORD32 mu, WORD32 len, 46 WORD32 mem); 47 48 VOID ixheaacd_deemphsis_tool(FLOAT32 *signal, WORD32 len, FLOAT32 mem); 49 50 VOID ixheaacd_residual_tool_float(FLOAT32 *a, FLOAT32 *x, FLOAT32 *y, WORD32 l, 51 WORD32 loop_count); 52 53 VOID ixheaacd_residual_tool_float1(FLOAT32 *a, FLOAT32 *x, FLOAT32 *y, WORD32 l, 54 WORD32 loop_count); 55 56 VOID ixheaacd_preemphsis_tool_float(FLOAT32 *signal, FLOAT32 mu, WORD32 len, 57 FLOAT32 mem); 58 59 VOID ixheaacd_lsp_to_lp_conversion(FLOAT32 *lsp, FLOAT32 *a); 60 61 VOID ixheaacd_lpc_coeff_wt_apply(FLOAT32 *a, FLOAT32 *ap); 62 63 VOID ixheaacd_acelp_pitch_sharpening(FLOAT32 *x, WORD32 pit_lag); 64 65 VOID ixheaacd_acelp_decode_pulses_per_track(WORD32 index[], const WORD16 nbbits, 66 FLOAT32 code[]); 67 68 #endif 69