⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main_check.c

📁 G729A_v1.7_src.C语言.很好用
💻 C
字号:
/*
   ITU-T G.729A Speech Coder    ANSI-C Source Code
   Version 1.1    Last modified: September 1996

   Copyright (c) 1996,
   AT&T, France Telecom, NTT, Universite de Sherbrooke
   All rights reserved.
*/

/*-------------------------------------------------------------------*
 * Main program of the ITU-T G.729A  8 kbit/s encoder.               *
 *                                                                   *
 *    Usage : coder speech_file  bitstream_file                      *
 *-------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>

#include "typedef.h"
//#include "basic_op.h"
#include "ld8a.h"
#include "intrindefs.h"
void DataIn();
void DataOut();

#define BUFF_SIZE    4000
#define OUT_SERIAL_SIZE (BUFF_SIZE/80)*(82)
Word16 data_inbuf[BUFF_SIZE];
Word16  data_outbuf[OUT_SERIAL_SIZE];  
Word16  convert[80];  

int main(int argc, char *argv[] )
{
  
  FILE *f_speech;               /* File of speech data                   */
  FILE *f_serial;               /* File of serial bits for transmission  */

  extern Word16 *new_speech;     /* Pointer to new speech data            */

  Word16 prm[PRM_SIZE];          /* Analysis parameters.                  */
  Word16 serial[SERIAL_SIZE];    /* Output bitstream buffer               */

  Word16 frame;                  /* frame counter */
  Word16 j=0,n=0;                  /* frame counter */

/*--------------------------------------------------------------------------*
 * Initialization of the coder.                                             *
 *--------------------------------------------------------------------------*/

  Init_Pre_Process();
  Init_Coder_ld8a();
  Set_zero(prm, PRM_SIZE);

  /* Loop for each "L_FRAME" speech data. */

  frame =0;

  for(j=0;j<BUFF_SIZE;j+=L_FRAME)
  {
    //printf("Frame =%d\r", frame++);

    //DataIn();
    
    for(n=0;n<80;n++)
    {
    new_speech[n]=data_inbuf[j+n];
    }
    
    Pre_Process(new_speech, L_FRAME);

    Coder_ld8a(prm);

    prm2bits_ld8k( prm, serial);

    for(n=0;n<82;n++)
	{
	data_outbuf[(j/80)*82+n] = * (serial+n);///
	}
  }
 return (0);
}
void DataIn()		{}
void DataOut()	{}

#if 0	/*dzc change this 05-8-18*/
Word32 L_Comp(Word16 hi, Word16 lo)
{
  Word32 L_32;

  L_32 = L_deposit_h(hi);
  return( L_mac(L_32, lo, 1));          /* = hi<<16 + lo<<1 */
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -