g726算法的一些总结

来源:互联网 发布:multisim12.0 mac 编辑:程序博客网 时间:2024/05/18 18:19

在网上有很多关于g726算法的编解码,我做的是pcm和g726之间互相转码。

自己对音频的编解码了解的不多,做一下记录吧。

我在网上下载的很多pcm文件,经过测试,采样都是8000HZ,这个和自己所想的倒是不同的,这歌参数要是设置不对,是不能播放pcm出来的。

自己进行编译的时候,pcm进行过编解码后,生成的pcm文件质量是很好的,可是中间生成的g726文件的质量不是很好,有杂音,不过能听清楚的。

因为这是一种压缩算法,进行编解码的时候,文件的读写的缓存大小,这点需要注意,自己在这里吃过亏。

编码的时候,缓存大小为之前的一半;

iRead = fread(ucInBuff, 1, 160, pInFile);

iRet = g726_encode(g_state726_24, ucOutBuff, (short*)ucInBuff, iRead/2);

fwrite(ucOutBuff, 1, iRet, pOutFile);

解码的时候,缓存的大小不变,但是写入到文件的时候,为sizeof(short);

iRead = fread(ucInBuff, 1, 30, pInFile);

iRet = g726_decode(g_state726_24, (short*)ucOutBuff, ucInBuff, iRead);

fwrite(ucOutBuff, sizeof(short), iRet, pOutFile);

具体的原因自己不是很清楚,还得自己研究呀!

0 0
原创粉丝点击