Home | History | Annotate | Download | only in source
      1 /*
      2  *  Copyright (c) 2012 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_FIX_SOURCE_PITCH_ESTIMATOR_H_
     19 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_PITCH_ESTIMATOR_H_
     20 
     21 #include "structs.h"
     22 
     23 void WebRtcIsacfix_PitchAnalysis(const int16_t *in,               /* PITCH_FRAME_LEN samples */
     24                                  int16_t *outQ0,                  /* PITCH_FRAME_LEN+QLOOKAHEAD samples */
     25                                  PitchAnalysisStruct *State,
     26                                  int16_t *lagsQ7,
     27                                  int16_t *PitchGains_Q12);
     28 
     29 void WebRtcIsacfix_InitialPitch(const int16_t *in,
     30                                 PitchAnalysisStruct *State,
     31                                 int16_t *qlags);
     32 
     33 void WebRtcIsacfix_PitchFilter(int16_t *indatFix,
     34                                int16_t *outdatQQ,
     35                                PitchFiltstr *pfp,
     36                                int16_t *lagsQ7,
     37                                int16_t *gainsQ12,
     38                                int16_t type);
     39 
     40 void WebRtcIsacfix_PitchFilterCore(int loopNumber,
     41                                    int16_t gain,
     42                                    size_t index,
     43                                    int16_t sign,
     44                                    int16_t* inputState,
     45                                    int16_t* outputBuff2,
     46                                    const int16_t* coefficient,
     47                                    int16_t* inputBuf,
     48                                    int16_t* outputBuf,
     49                                    int* index2);
     50 
     51 void WebRtcIsacfix_PitchFilterGains(const int16_t *indatQ0,
     52                                     PitchFiltstr *pfp,
     53                                     int16_t *lagsQ7,
     54                                     int16_t *gainsQ12);
     55 
     56 void WebRtcIsacfix_DecimateAllpass32(const int16_t *in,
     57                                      int32_t *state_in,        /* array of size: 2*ALLPASSSECTIONS+1 */
     58                                      int16_t N,                   /* number of input samples */
     59                                      int16_t *out);             /* array of size N/2 */
     60 
     61 int32_t WebRtcIsacfix_Log2Q8( uint32_t x );
     62 
     63 void WebRtcIsacfix_PCorr2Q32(const int16_t* in, int32_t* logcorQ8);
     64 
     65 #endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_PITCH_ESTIMATOR_H_ */
     66