www.pudn.com > source.rar > PRED_LT3.C
/* ITU-T G.729 Software Package Release 2 (November 2006) */
/*
ITU-T G.729 Annex C - Reference C code for floating point
implementation of G.729
Version 1.01 of 15.September.98
*/
/*
----------------------------------------------------------------------
COPYRIGHT NOTICE
----------------------------------------------------------------------
ITU-T G.729 Annex C ANSI C source code
Copyright (C) 1998, AT&T, France Telecom, NTT, University of
Sherbrooke. All rights reserved.
----------------------------------------------------------------------
*/
/*
File : PRED_LT3.C
Used for the floating point version of both
G.729 main body and G.729A
*/
#include "typedef.h"
#include "version.h"
#ifdef VER_G729A
#include "ld8a.h"
#include "tab_ld8a.h"
#else
#include "ld8k.h"
#include "tab_ld8k.h"
#endif
/*-------------------------------------------------------------------*
* Function Pred_lt_3() *
* ~~~~~~~~~~~ *
*-------------------------------------------------------------------*
* Compute the result of long term prediction with fractional *
* interpolation of resolution 1/3. *
* *
* On return exc[0..L_subfr-1] contains the interpolated signal *
* (adaptive codebook excitation) *
*-------------------------------------------------------------------*/
void pred_lt_3( /* Compute adaptive codebook */
FLOAT exc[], /* in/out: excitation vector, exc[0:l_sub-1] = out */
int t0, /* input : pitch lag */
int frac, /* input : Fraction of pitch lag (-1, 0, 1) / 3 */
int l_subfr /* input : length of subframe. */
)
{
int i, j, k;
FLOAT s, *x0, *x1, *x2, *c1, *c2;
x0 = &exc[-t0];
frac = -frac;
if (frac < 0) {
frac += UP_SAMP;
x0--;
}
for (j=0; j