-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathadaptativeCodebookSearch.h
49 lines (45 loc) · 3.05 KB
/
adaptativeCodebookSearch.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
adaptativeCodebookSearch.h
Copyright (C) 2011 Belledonne Communications, Grenoble, France
Author : Johan Pascal
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef ADAPTATIVECODEBOOKSEARCH_H
#define ADAPTATIVECODEBOOKSEARCH_H
/*****************************************************************************/
/* adaptativeCodebookSearch: compute parameter P1 and P2 as in spec A.3.7 */
/* compute also adaptative codebook vector as in spec 3.7.1 */
/* parameters: */
/* -(i/o) excitationVector: [-154,0[ previous excitation as input */
/* Range [0,39[ */
/* 40 words of LPResidualSignal as substitute for current */
/* excitation (spec A.3.7) as input */
/* 40 words of adaptative codebook vector in Q0 as output */
/* Buffer in Q0 accessed in range [-154, 39] */
/* -(i/o) intPitchDelayMin: low boundary for pitch delay search */
/* -(i/o) intPitchDelayMax: low boundary for pitch delay search */
/* Boundaries are updated during first subframe search */
/* -(i) impulseResponse: 40 values as in spec A.3.5 in Q12 */
/* -(i) targetSignal: 40 values as in spec A.3.6 in Q0 */
/* */
/* -(o) intPitchDelay: the integer pitch delay */
/* -(o) fracPitchDelay: the fractionnal part of pitch delay */
/* -(o) pitchDelayCodeword: P1 or P2 codeword as in spec 3.7.2 */
/* -(o) adaptativeCodebookVector: 40 words of adaptative codebook vector*/
/* as described in spec 3.7.1, in Q0. */
/* -(i) subFrameIndex: 0 for the first subframe, 40 for the second */
/* */
/*****************************************************************************/
void adaptativeCodebookSearch(word16_t excitationVector[], int16_t *intPitchDelayMin, int16_t *intPitchDelayMax, word16_t impulseResponse[], word16_t targetSignal[],
int16_t *intPitchDelay, int16_t *fracPitchDelay, uint16_t *pitchDelayCodeword, uint16_t subFrameIndex);
#endif /* ifndef ADAPTATIVECODEBOOKSEARCH_H */