基于C5000的音频解码系统设计
解码软件由一个主函数控制,调度各个模块的有序运行。
解码软件的程序流程如图9所示。从图中我们可以看到对输入音频流解码先经过帧同步,读入同步头的信息,得到该MP3码流的采样频率、码流速率等参数,并记录现在所解码的MP3码流的帧数。然后获得粒度信息、主信息及定标因子,根据同步头中所得的MP3码流的压缩类型来读取信息,获得对应于各自颗粒中的各自通道的相关参数。
![](../img/eep/emb/emb-46712evqmpu4zkj0.jpg)
然后对一帧中的两个颗粒进行解码,首先是从比特流中获取每个颗粒对应的定标因子,并对每个颗粒下的数据进行哈夫曼解码,这个哈夫曼解码过程需要32个哈夫曼码表之一来进行解码,可以根据边带信息中含有每个颗粒选择码表的信息来进行选择。经过哈夫曼解码的数据,接下来要经过反量化取样,在这步中,各个子带的数据根据所使用窗的类型,利用在边带信息中获得的参数反量化。接下来就是重排序和立体声处理模块,在这个模块中根据MP3码流所采用的压缩类型来进行相应的处理。
这样当处理完一个颗粒中所有通道的数据后,就可以把这一颗粒已解码好的数据输出到输出缓冲区中,当把下一颗粒的数据解码完毕并输出后,这样一帧数据就解码完成。这帧数据就可以输入到D/A部分进行播放,并将输出缓冲区清空,等待下一帧的解码数据的输入。解码程序一直到在比特流中再也找不到一帧的同步头时,就完成了这一音频流的解码。
3 结束语
MP3解码算法比较复杂,并且市面上大部分便携式MP3播放器都采用的是硬件解码器,也就是采用专门的音频解码芯片来实现的,然而随着数字信号处理技术的飞速发展,使得采用通用数字信号处理器(DSP)实现这一解码算法成为可能,而且存性价比、低功耗和软件升级灵活性上都优于采用硬件解码方案的mp3播放器,成为未来MP3市场的发展方向。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)