codera.c
上传用户:zhouyunkk
上传日期:2013-01-10
资源大小:59k
文件大小:2k
源码类别:

语音压缩

开发平台:

C/C++

  1. /*
  2.    ITU-T G.729 Annex C - Reference C code for floating point
  3.                          implementation of G.729 Annex A
  4.                          Version 1.01 of 15.September.98
  5. */
  6. /*
  7. ----------------------------------------------------------------------
  8.                     COPYRIGHT NOTICE
  9. ----------------------------------------------------------------------
  10.    ITU-T G.729 Annex C ANSI C source code
  11.    Copyright (C) 1998, AT&T, France Telecom, NTT, University of
  12.    Sherbrooke.  All rights reserved.
  13. ----------------------------------------------------------------------
  14. */
  15. /*
  16.  File : CODERA.C
  17.  Used for the floating point version of G.729A only
  18.  (not for G.729 main body)
  19. */
  20. #include "typedef.h"
  21. #include "ld8a.h"
  22. extern FLOAT *new_speech;           /* Pointer to new speech data   */
  23. static int prm[PRM_SIZE];           /* Transmitted parameters        */
  24. /*-------------------------------------------------*
  25.  * Initialization of the coder.                    *
  26.  *-------------------------------------------------*/
  27. void va_g729a_init_encoder()
  28. {
  29.    init_pre_process();
  30.    init_coder_ld8a();           /* Initialize the coder             */
  31. }
  32. /*---------------------------------------------------------------------*
  33.  * L_FRAME data are read. (L_FRAME = number of speech data per frame)  *  
  34.  * output PRM_SIZE int encoded data                                    *
  35.  *---------------------------------------------------------------------*/
  36. void va_g729a_encoder(short *speech, unsigned char *bitstream)
  37. {
  38. INT16  i;
  39.     for (i = 0; i < L_FRAME; i++)  new_speech[i] = (FLOAT) speech[i];
  40.     pre_process( new_speech, L_FRAME);
  41.     coder_ld8a(prm);
  42.     prm2bits_ld8k(prm, bitstream);
  43. }