免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2486 | 回复: 0
打印 上一主题 下一主题

有做过g729编解码的大虾吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-28 16:44 |只看该作者 |倒序浏览
我下了ITU-T G.729 Annex B的源代码,该源代码针对音频文件形式的编解码是直接可用的
我针对一个.wav文件进行了编码,发现编码后的文件与编码前的差不多大。
不应该是16:1的压缩比马,怎么会这样呢?

我刚刚做过利用intel ipp库的729编解码,那个是从.wav文件每次取160byte个样点,然后压缩成10个byte并加上6个byte点的头,压缩比16:1。两者为什么差这么多呢??

我把那个代码的main函数贴出来
PRM_SIZE=11
L_FRAME=80
SERIAL_SIZE=82   Word16是short型,Word32是int型


这个函数每次从.wav文件中读出80个byte,却向编码后的文件写入82byte的数据
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+1];        /* Analysis parameters.                  */
  Word16 serial[SERIAL_SIZE];    /* Output bitstream buffer               */
  Word16 syn[L_FRAME];           /* Buffer for synthesis speech           */

  Word16 i, frame;               /* frame counter */
  Word32 count_frame;

  /* For G.729B */
  Word16 nb_words;
  Word16 vad_enable;
  

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

  Init_Pre_Process();
  Init_Coder_ld8k();
  for(i=0; i<PRM_SIZE; i++) prm[i] = (Word16)0;

  /* for G.729B */
  Init_Cod_cng();


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

  frame =0;
  count_frame = 0L;
  while( fread(new_speech, sizeof(Word16), L_FRAME, f_speech) == L_FRAME)//读入80个
  {

    printf("Frame = %ld\r", count_frame++);
  
    if (frame == 32767) frame = 256;
    else frame++;

    Pre_Process(new_speech, L_FRAME);

    Coder_ld8k(prm, syn, frame, vad_enable);

    prm2bits_ld8k( prm, serial);

    nb_words = add((Word16)serial[1], 2);
    fwrite(serial, sizeof(Word16), nb_words, f_serial);//写出82个
   
  }

  printf("%ld frames processed\n", count_frame);
  
  return (0);
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP