lpc.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /********************************************************************
  2. * *
  3. * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
  4. * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
  5. * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
  6. * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
  7. * *
  8. * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
  9. * by the XIPHOPHORUS Company http://www.xiph.org/ *
  10. * *
  11. ********************************************************************
  12. function: LPC low level routines
  13. last mod: $Id: lpc.h,v 1.18 2001/12/20 01:00:27 segher Exp $
  14. ********************************************************************/
  15. #ifndef _V_LPC_H_
  16. #define _V_LPC_H_
  17. #include "vorbis/codec.h"
  18. #include "smallft.h"
  19. typedef struct lpclook{
  20. /* en/decode lookups */
  21. drft_lookup fft;
  22. int ln;
  23. int m;
  24. } lpc_lookup;
  25. extern void lpc_init(lpc_lookup *l,long mapped, int m);
  26. extern void lpc_clear(lpc_lookup *l);
  27. /* simple linear scale LPC code */
  28. extern float vorbis_lpc_from_data(float *data,float *lpc,int n,int m);
  29. extern float vorbis_lpc_from_curve(float *curve,float *lpc,lpc_lookup *l);
  30. extern void vorbis_lpc_predict(float *coeff,float *prime,int m,
  31. float *data,long n);
  32. #endif