斯坦福大学的Gss Audio Codec 调试分析

这是在斯坦福大学的Greg Sell 和 Scott Cannon 在2005年冬天做的一个简单的音频编码器。

性能经分析和MPEG1 层1层2差不多。码率基本控制在256~384kbps

给出源代码和文章链接

Gss Project Paper在线链接

Gss Project Paper本地链接

代码在线链接

本地链接

测试流在线链接

测试流本地连接

但是这个工程有些问题

注意:

1.decoder 在decoder.c加一行代码


n = fread(&long_block , 1, sizeof(short), enc_fp);
n = fread(&output_fp.info.srate , 1, sizeof(short), enc_fp);
n = fread(&output_fp.info.channels , 1, sizeof(char), enc_fp);
n = fread(&output_fp.info.bits_per_sample , 1, sizeof(char), enc_fp);
n = fread(&output_fp.info.frames , 1, sizeof(long), enc_fp);
n = fread(&output_fp.info.sfformat , 1, sizeof(long), enc_fp);
BLOCKSIZE = long_block;//添加的代码

 

2.编码和解码的的fopen要从r/w改为rb+/wb+

这是一个平台问题,在linux系统中r/w没问题

在windows系统中会造成读取中断。

下面简单分析部分问题分析

他有4个心里声学位分配方法

#define BA_TYPE  

BA_TYPE 为1或是2的时候,问题比较多,频带泄漏很严重

Type1 的光谱图

Type2 : 30秒 , 260.24kbps

Type 3: 302.16kbps

Type 4:261.31kbps

总结:其中type1,2,4是计算出来的。

3是强制分配出固定BA系数的

可见,他的BA分配模块还是有问题,有大量的交叠噪声和频带泄漏。

频带泄漏是因为该帧和频带的BA分配了0bit

交叠噪声是相邻频带的地方BA分配过多bit。

原文地址:https://www.cnblogs.com/gaozehua/p/2469492.html