* THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. *
* PLEASE READ THESE TERMS DISTRIBUTING. *
* *
- * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 *
- * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company *
+ * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-2000 *
+ * by Monty <monty@xiph.org> and The XIPHOPHORUS Company *
* http://www.xiph.org/ *
* *
********************************************************************
function: LPC low level routines
+ last mod: $Id: lpc.h,v 1.7 2000/01/05 03:10:59 xiphmont Exp $
********************************************************************/
#ifndef _V_LPC_H_
#define _V_LPC_H_
-extern double vorbis_curve_to_lpc(double *curve,int n,double *lpc,int m);
-extern void vorbis_lpc_to_curve(double *curve,int n,double *lpc,
- double amp,int m);
-extern void vorbis_lpc_apply(double *residue,int n,double *lpc,
- double amp,int m);
+#include "vorbis/codec.h"
+
+extern void lpc_init(lpc_lookup *l,int n, long mapped, long rate, int m);
+extern void lpc_clear(lpc_lookup *l);
+
+/* simple linear scale LPC code */
+extern double vorbis_lpc_from_data(double *data,double *lpc,int n,int m);
+extern double vorbis_lpc_from_spectrum(double *curve,double *lpc,lpc_lookup *l);
+
+/* log scale layer */
+extern double vorbis_curve_to_lpc(double *curve,double *lpc,lpc_lookup *l);
+extern void vorbis_lpc_to_curve(double *curve,double *lpc, double amp,
+ lpc_lookup *l);
+extern void vorbis_lpc_apply(double *residue,double *lpc, double amp,
+ lpc_lookup *l);
+
+/* standard lpc stuff */
+extern void vorbis_lpc_residue(double *coeff,double *prime,int m,
+ double *data,long n);
+extern void vorbis_lpc_predict(double *coeff,double *prime,int m,
+ double *data,long n);
#endif