MP3解码器的SOPC实现

2012-07-12 04:58五邑大学程维好张歆奕
电子世界 2012年6期
关键词:子带解码器解码

五邑大学 程维好 张歆奕

1.引言

MP3(MPEG Audio Layer3)是高品质的音频压缩标准,因其在音质,复杂度与压缩比的完美折中,占据着广阔的市场,目前在便携式设备领域深受人们喜爱。而随着消费电子的快速发展,MP3在各种场合的需求越来越多,同时针对MP3解码器的设计也越来越多。其中主要有以下三种方式:①以专用MP3编解码芯片为核心加上必要外围电路的VLSI实现;②DSP处理器加外部存储器,数模转换等外围器件实现;③以低速核心处理器(CPU/RISC)与其他硬件加速模块的SOPC设计加上外围器件实现。而第三种实现方式相对于前两种方式在功耗和性价比方面有着明显的优势,本文是基于SOPC技术来实现MP3解码器的设计,其中MP3文件数据用SD卡来存放[1]。

2.MP3解码流程分析

MP3解码流程如图1所示,解码的主要过程包括同步提取码流(以帧为单位)哈夫曼解码,比例因子解码,反量化,重排列,立体声处理,混叠重建,IMDCT变换,子带综合滤波合成,最后输出原始的PCM数据。

在解码过程中,耗时比较多的主要是IMDCT和子带综合滤波这两部分。在编译后它们占据着相当多的硬件资源,功耗特高,所以在设计时针对这两个计算量大的算法IMDCT,子带综合滤波器做了硬件加速处理,来提高整个系统的性能。在IMDCT算法中有长块和短块,计算时长块输入是18点而短块输入是6点,长短块输入的值都是非2的n次方,所以可以采用Szu Wei Lee快速算法,此算法对输入点数越大的运算,其速度提升就越明显。传统的IMDCT算法,在计算长块时需要的是36*18次乘法和36*17的加法,采用Szu Wei Lee算法后,长块的计算只需要43次乘法和115次加法,程序的运算速度显著提高了。在设计子带综合滤波时,直接计算则需要执行32*64次乘法和31*64次加法,两声道采样率为44.1KHz,乘法运算量为(44100/32)*(64*32+512)*2=7056000次/秒,而系统时钟一般都采用的是50MHz,单个周期内占着整个解码时间的58.2%,严重影响了整个系统解码的速率。所以可以根据余弦函数的对称性,并结合Byeong Gi Lee快速DCT算法来进行改进,改进后子带综合滤波则只需要进行384次乘法和376次加法,大大提升了运算速度[2]。

图1 MP3解码流程

3.系统的硬件设计

基于Nios II的嵌入式系统主要是由三部分组成:IP库(NiosII软核处理器,Avalon总线,外围设备接口等),GNUPro软件编译器,SOPC Builder开发工具。本文在硬件设计时使用Altera公司的Cyclone II FPGA芯片,型号为EP2C70F896C6,主要外围设备包括片外SDRAM存储器、SD卡、音频芯片WM8731、LCD等,其中FPGA芯片完成对各个硬件模块和数据流的控制,片外存储器存放程序数据和执行代码,SD卡存放MP3文件,音频芯片将PCM数据流转换输出,LCD显示系统状态,IP核的复用是SOPC设计的关键[3]。其硬件系统结构如图2所示。

而FPGA内部逻辑设计是以Quartus II为开发环境,以Verilog语言编程实现音频控制,SD卡的读写,液晶显示驱动等功能模块的设计。用SOPC Builder配置并产生NiosII软核处理器以及必要的外设,然后在再通过编译,下载到FPGA的配置芯片中,形成硬件逻辑电路的连接,最后验证系统,从而实现MP3音频文件的输出。除了音频模块、SD卡控制模块、LCD显示驱动模块外其他模块都可以通过SOPC Builder来添加IP核构建。

至于MP3解码算法中的子带综合滤波,IMDCT变换两部分处理起来特耗时,针对这类耗时问题,可以采用软硬件协同处理(软件中耗时较多的部分进行硬件加速后,往往会比原先软件处理时的速度快上好几倍。)来提高整个系统运行的时间。通过这种设计方法,在综合时可以确定系统软件和硬件之间的相互制约关系,从而保证系统的确定性,高效性。

图2 硬件系统框图

图3 SOPC的搭建

4.SOPC片上系统的实现

在FPGA中搭建SOPC系统时,需要用到如下图3所示的软核处理器和Avalon总线结构和外设接口等,其中,系统时钟c0由外部晶振50MHz倍频后得到的,c1为100MHz外设SDRAM时钟,c2为音频芯片提供的18.51MHz工作时钟。timer用于系统内部时间的产生,time_stamp用于记录指令的运行时间。片外SDRAM存储芯片是作为程序存储器及数据存储器。本系统自定义了AUDIO模块,该模块主要用于与WM8731音频芯片数字接口进行数据传输。

5.实现结果

本文是基于SOPC技术实现MP3解码器的设计,其优势在于系统功能改进的灵活性,即不改变硬件平台的情况下,可以随便的对系统进行增删和优化,降低系统的成本,这是其他方案很难比拟的地方。而本设计是在在DE2-70开发板上实现的,硬件解码系统采用Verilog HDL语言进行描述,经过RTL级仿真和验证后,在Cyclone II EP2C70F896C6器件内资源占用率为8%,总的寄存器为3335个,系统频率可达到72MHz,经过实际测试,本设计达到了预期的效果。但还存在着一些地方不够完善和有待改进,这同时也是以后MP3播放器设计需要改进和研究的重点:

(1)本设计功能比较简单,编译后FPGA芯片资源占用的比较少,可进一步增加其它功能,如图像显示。

(2)如何改进更有效的算法,提高系统运行时间,降低功耗,以达到便携式高性能、低功耗的要求,这是未来MP3设计研究的重点。

[1]毛丽萍.MP3音频编解码运算中IMDCT算法研究及其FPGA实现[D].[硕士学位论文].华东师范大学,2007.

[2]欧阳潞河.基于NIOS II 的MP3解码实现[D].[硕士学位论文].西安电子科技大学,2011.

[3]FPGA现代数字系统设计[M].清华大学出版社,2010.

猜你喜欢
子带解码器解码
《解码万吨站》
科学解码器(一)
一种基于奇偶判断WPT的多音干扰抑制方法*
科学解码器(二)
科学解码器(三)
子带编码在图像压缩编码中的应用
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机