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