Home | History | Annotate | Download | only in decoder
      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[], WORD16 nbbits,
     66                                             FLOAT32 code[]);
     67 
     68 #endif
     69