Added 3-tap pitch predictor by analysis by synthesis
[speexdsp.git] / libspeex / ltp.h
1 /* Copyright (C) 2002 Jean-Marc Valin 
2    File: ltp.h
3    Lont-Term Prediction functions
4
5    This library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9    
10    This library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14    
15    You should have received a copy of the GNU Lesser General Public
16    License along with this library; if not, write to the Free Software
17    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 */
19
20
21 extern float gain_cdbk_nb[];
22
23
24 /** Computes a 3-tap pitch predictor */
25 int three_tap_ltp(float *x, int len, int start, int end, float *gain);
26
27 /** Finds the best 3-tap pitch predictor from a codebook*/
28 int ltp_closed_loop(float *x, int len, int start, int end, float *gain);
29
30 /** Finds the best quantized 3-tap pitch predictor by analysis by synthesis */
31 void pitch_search_3tap(
32 float target[],                 /* Target vector */
33 float ak[],                     /* LPCs for this subframe */
34 float awk1[],                   /* Weighted LPCs #1 for this subframe */
35 float awk2[],                   /* Weighted LPCs #2 for this subframe */
36 float exc[],                    /* Overlapping codebook */
37 int   start,                    /* Smallest pitch value allowed */
38 int   end,                      /* Largest pitch value allowed */
39 float *gain,                    /* 3-tab gains of optimum entry */
40 int   *pitch,                   /* Index of optimum entry */
41 int   p,                        /* Number of LPC coeffs */
42 int   nsf                       /* Number of samples in subframe */
43 );