Home | History | Annotate | Download | only in source
      1 /*
      2  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 /*
     12  * pitch_estimator.h
     13  *
     14  * Pitch functions
     15  *
     16  */
     17 
     18 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_PITCH_ESTIMATOR_H_
     19 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_PITCH_ESTIMATOR_H_
     20 
     21 #include "structs.h"
     22 
     23 
     24 
     25 void WebRtcIsac_PitchAnalysis(const double *in,               /* PITCH_FRAME_LEN samples */
     26                               double *out,                    /* PITCH_FRAME_LEN+QLOOKAHEAD samples */
     27                               PitchAnalysisStruct *State,
     28                               double *lags,
     29                               double *gains);
     30 
     31 void WebRtcIsac_InitializePitch(const double *in,
     32                                 const double old_lag,
     33                                 const double old_gain,
     34                                 PitchAnalysisStruct *State,
     35                                 double *lags);
     36 
     37 void WebRtcIsac_PitchfilterPre(double *indat,
     38                                double *outdat,
     39                                PitchFiltstr *pfp,
     40                                double *lags,
     41                                double *gains);
     42 
     43 void WebRtcIsac_PitchfilterPost(double *indat,
     44                                 double *outdat,
     45                                 PitchFiltstr *pfp,
     46                                 double *lags,
     47                                 double *gains);
     48 
     49 void WebRtcIsac_PitchfilterPre_la(double *indat,
     50                                   double *outdat,
     51                                   PitchFiltstr *pfp,
     52                                   double *lags,
     53                                   double *gains);
     54 
     55 void WebRtcIsac_PitchfilterPre_gains(double *indat,
     56                                      double *outdat,
     57                                      double out_dG[][PITCH_FRAME_LEN + QLOOKAHEAD],
     58                                      PitchFiltstr *pfp,
     59                                      double *lags,
     60                                      double *gains);
     61 
     62 void WebRtcIsac_WeightingFilter(const double *in, double *weiout, double *whiout, WeightFiltstr *wfdata);
     63 
     64 void WebRtcIsac_Highpass(const double *in, double *out, double *state, int N);
     65 
     66 void WebRtcIsac_DecimateAllpass(const double *in,
     67                                 double *state_in,        /* array of size: 2*ALLPASSSECTIONS+1 */
     68                                 int N,                   /* number of input samples */
     69                                 double *out);            /* array of size N/2 */
     70 
     71 #endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_PITCH_ESTIMATOR_H_ */
     72