att_header.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:2k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2. This software module was originally developed by
  3. Peter Kroon (Bell Laboratories, Lucent Technologies)
  4. in the course of development of the MPEG-2 NBC/MPEG-4 Audio standard
  5. ISO/IEC 13818-7, 14496-1,2 and 3. This software module is an
  6. implementation of a part of one or more MPEG-2 NBC/MPEG-4 Audio tools
  7. as specified by the MPEG-2 NBC/MPEG-4 Audio standard. ISO/IEC gives
  8. users of the MPEG-2 NBC/MPEG-4 Audio standards free license to this
  9. software module or modifications thereof for use in hardware or
  10. software products claiming conformance to the MPEG-2 NBC/ MPEG-4 Audio
  11. standards. Those intending to use this software module in hardware or
  12. software products are advised that this use may infringe existing
  13. patents. The original developer of this software module and his/her
  14. company, the subsequent editors and their companies, and ISO/IEC have
  15. no liability for use of this software module or modifications thereof
  16. in an implementation. Copyright is not released for non MPEG-2
  17. NBC/MPEG-4 Audio conforming products. The original developer retains
  18. full right to use the code for his/her own purpose, assign or donate
  19. the code to a third party and to inhibit third party from using the
  20. code for non MPEG-2 NBC/MPEG-4 Audio conforming products. This
  21. copyright notice must be included in all copies or derivative works.
  22. Copyright (c) 1996.
  23.  */
  24. #ifndef _att_header_h_
  25. #define _att_header_h_
  26. #include <stdio.h>
  27. #include <stdlib.h>
  28. #include <math.h>
  29. #include <malloc.h>
  30. /* Revised 06/26/96 These are defined as configuration input
  31. #define  FRAME_SIZE 200
  32. #define  MAX_N_LAG_CANDIDATES 2
  33. #define  MAXLAG 156
  34. */
  35. #define  mmax(x,y) ((x > y) ? x : y)
  36. #define  mmin(x,y) ((x > y) ? y : x)
  37. typedef signed short Int16;
  38. typedef struct {
  39.   float val;
  40.   int   idx;
  41. } lag_amdf;
  42. #ifdef __cplusplus
  43. extern "C" {
  44. #endif
  45. void Int2Float(Int16 *int_sig, float *flt_sig, long n);
  46. void MoveFData(float *des, float *start, long len);
  47. void MoveIData(Int16 *des, Int16 *start, long len);
  48. void LPF_800(float inbuf[], float lpbuf[], long len);
  49. void Inv_Filt(float lpbuf[], float ivbuf[], long len);
  50. void AMDF(float speech[], lag_amdf amdf[], long min_lag, long max_lag, long len);
  51. void MakeAmdfWeight(float weight[], long min_lag, long max_lag);
  52. void Weighted_amdf(lag_amdf amdf[], float weight[], long min_lag, long max_lag);
  53. void Sort_Amdf(lag_amdf amdf[], long len, long n_lag);
  54. void Assign_candidate(long candidates[], lag_amdf amdf[], long n_cand);
  55. #ifdef __cplusplus
  56. }
  57. #endif
  58. #endif