基于Nios II的IMDCT算法硬件加速器设计

2014-07-12 12:29裴明敬张歆奕
关键词:浮点加速器解码

裴明敬,张歆奕

(五邑大学 信息工程学院,广东 江门 529020)

基于Nios II的IMDCT算法硬件加速器设计

裴明敬,张歆奕

(五邑大学 信息工程学院,广东 江门 529020)

为了提高MP3解码的运算速度,分解了IMDCT算法,基于NiosII软核设计了IMDCT算法的硬件结构,作为SOPC系统总线上一个硬件加速器模块进行解码. 实验验证了硬件加速器的运算速度大约是软件运算速度的4.4倍.

MP3解码;IMDCT算法;硬件加速器

MP3(Moving Picture Experts Group Audio Layer III)是当今最为流行的一种数字音频编码和有损压缩格式. 越来越多的嵌入式系统支持MP3应用,因此,如何在嵌入式系统中实现MP3快速和实时解码,是一个值得探索的问题.

为了提高解码速度,可以把MP3解码中复杂的算法设计成一个硬件加速器,然后作为其中一个模块和Nios II软核构建一个SOPC(System on a Programmable Chip)系统来进行解码. SOPC系统通常由IP软核、总线和一些外围设备构成,其技术具有软硬件协同设计、并行设计和动态可重构等优点. 在FPGA中嵌入IP软核是构建SOPC系统的一种方案,其中Altera公司Nios II软核非常具有代表性,它是一种用户可随意配置和构建的32位嵌入式处理器IP核. 外围设备可以有许多模块组成,硬件加速器就可作为其中一个模块,它的特性是在硬件中实现C函数的功能. 硬件加速器能够提升系统的性能,提高解码速度.

关于MP3解码算法的文献有很多,如文献[1]基于DCT/DST的算法,它使得算法复杂度有所减小;文献[2]采用离散余弦反变换IMDCT(Inverse Modified Discrete Cosine Transform)算法设计的硬件加速器,虽然使用硬件数相对减少,但工作频率较低;文献[3]采用原始算法和顺序设计思想,相对而言非常耗时. IMDCT算法是MP3解码中比较复杂的部分,因为其含有大量循环和浮点乘加运算. 为了改善这部分的解码速度和工作频率,所以本文采用IMDCT算法,并结合并行设计思想,设计了一个硬件加速器.

1 IMDCT算法

MP3解码过程中使用到IMDCT算法公式如下所示[1,4]:

式中:在长窗类型帧中N取36,在短窗类型帧中N取12. 从式(1)可知,当N=36时,每计算一个点需要17次加法和18次乘法,因此计算18个点则需要306次加法和324次乘法,为了减少计算量,许多文献对算法进行了改进,其中文献[2]的算法是将一个N点IMDCT的计算转化为一对N/4点DCT-IV计算,其过程如下所示:

第1步:计算zcc(k)0和zcs(k)0,k=0,1,…, N /4-1.

第2步:计算一对N/4点DCT-IV,得到Zcc(n)0和Zcs(n)0,n=0,1,…, N /4-1.

第3步:计算y(n),n=0,1,…, N /2-1.

第4步:计算x(n),n=0,1,…, N /2-1.

当N=36时,计算18个点需要198次加法和198次乘法,与原始算法相比,乘法和加法次数都有减少,而且此算法也易于用硬件实现. 整个IMDCT运算过程由是18个输入数据计算得出36个输出数据,本文所讨论的IMDCT硬件加速器,就是为了实现这部分功能.

2 硬件加速器的设计

硬件加速器是指用户自定义逻辑功能模块. 本文硬件加速器结构如图1所示[5]. 它的结构包括ROM、计算单元、FIFO和接口控制器4个部分. 下面详细说明各个模块功能和设计思想.

ROM模块:主要存放正余弦定点系数. 由于系统全部采用32位浮点计算,所以将小数转换成单精度浮点标准的数存放在ROM 模块每个地址单元里.

计算单元模块:可划分为4个小模块,分别为Calc1、Calc2、Calc3和Calc4,每个小模块对应相应的公式,下面详细分析各个小模块.

Calc1用于计算式(2)和(3). 从式子分析可知,按顺序思想计算需要耗费很多时钟周期,所以本设计采用并行设计思想. 式(2)和(3)4个乘法和加减法都采用并行运算,结构如图2所示. 2个数据X(k)和X(N/2-1-k)和4个从ROM单元读取的数据进行相乘,在通过对正余弦系数计算可知,式(2)和(3)正余弦系数正好相反,因此可减少ROM的使用数量,然后把相乘结果分别进行相加和相减即可得出结果,整个Calc1模块设计采用流水线结构,同时为了数据读写可以协调控制,浮点加减法器和浮点乘法器都采用10级流水线结构.

Calc2用于计算式(4)和(5). 设计思想和Calc1类似,也采用流水线结构,并行运算,同样浮点乘法器和加法器也都是10级流水线结构,结构图如图3所示. 从图中可知,在每个时钟周期同时输入2个数分别和对应ROM单元送来的系数相乘,把相乘结果与下一个时钟传送的相乘结果进行累加,在一个累加周期后,即可同时得到2个各自累加的结果.

图1 硬件加速器结构图

图2 Calc1模块的结构

图3 Calc2模块结构

Calc3和Calc4用于计算式(6)、(7)、(8)和(9). 由于公式相对简单,可把2个单元合并起来分析. 式(6)和(7)是2个数据分别进行相加和相减运算,结构图如图4所示. 从图中可看出,通过相加可以得到y(2n),相减可以得到y(2n+1).式(8)和(9)是数据的移动和转换,由y(n)得到x(n).

图4 Calc3模块结构

FIFO模块:存放计算所得结果. 当内部有数据时,需等待NiosII软核处理器的指令读取数据.

接口控制模块:主要控制各个模块协调工作,使整个系统有序地进行数据读写和运算操作. 首先控制模块根据指令要求进行ROM模块的数据读取,同时把ROM里读取的数据送到计算单元模块和外部输入的数据进行计算,最后把计算结果送入FIFO模块进行存储.

从整个硬件模块结构设计可以知道,从数据输入到数据输出,中间需要262个时钟周期,由于每次送入18个数据,计算18个点需要262+18=280个时钟周期. 当Nios II向模块传送数据时,需要经过若干个周期才能到达,同时每一个数据在发送前都需要转换成32位的浮点形式,期间也需要耗费时钟周期(通过逻辑分析仪工具Signaltap II抓取的信号可以看到两个数据的发送间隔为100个时钟周期). 同样地,读取数据过程和发送数据类似,读取的数据也需进行数据转换,两个读取信号之间的间隔也为100个时钟周期. 由于硬件加速器内部使用的浮点加法器、浮点减法器、浮点乘法器、ROM和FIFO都是系统自带的IP核,这为程序设计带来了很多方便.

3 硬件加速器的软硬件测试

为了验证硬件加速器性能,本文采用Altera公司的Quartus和SOPC Builder工具,用Nios II及其外围设备构建了一个SOPC系统[5]. Quartus工具的反馈报告得到本文设计的硬件加速器工作频率可达100 MHz,而文献[2]只达到33.25 MHz,工作频率明显提高. 而与文献[3]相比,在结构方面,本文提出的结构是并行结构;在算法方面,本文加法次数和乘法次数比文献[3]使用的原始算法分别减少了108次和126次. 从这两个方面可知本文比文献[3]的计算效率有了明显提高.

系统组装完毕后,在开发板中分别运行两种方案的程序,并比较各自所耗用的时间,结果见表1所示,其中文献[2]方案是指用C程序编写式(1),运行并测试得出的时间. 本文方案是指根据文献[2]的分解算法设计成硬件加速器,当作系统总线上一个模块,运行并测得的时间.

通过表1可以看到,文献[2]方案耗时需要250.00μs,本文改进的方案只需要56.80μs,即使用硬件加速器的运算速度大约是软件运算速度的4.4倍.

表1 两种方案耗时对比

4 结论

本文通过分解IMDCT算法,设计了一个新的硬件加速器. 与文献[2]的IMDCT硬件加速器相比,工作频率方面提高了近3倍;与文献[3]相比,结构方面使用并行结构,使得硬件资源消耗相对减少.此硬件加速器可以广泛用于实时性要求较高的音频解码系统,例如数字高清电视的伴音解码等产品.本文不足之处在于设计硬件时,不能更精确地控制模块间的时钟数,这是下一步研究要改进的地方.

参考文献

[1] BRITANAK V, RAO K R. A new fast algorithm for the unified forward and inverse MDCT in MPEG audio coding [J]. IEEE Transactions on Signal Proeessing, 2006, 86(7): 1055-1060.

[2] 李辉,李平,王忆文. 硬件资源消耗少的IMDCT分解算法[J]. 电子科技大学学报,2011, 40(1): 26-29.

[3] 朱燕翔,周凡. MP3解码的IMDCT硬件加速器方案[J]. 单片机及嵌入式系统应用,2006(11): 15-17.

[4] LEE S W. Improved algorithm for efficient computation of the forward and backward MDCT in MPEG audio coder [J]. IEEE Transactions on Circuits and Systems-II: Analog and Digital Signal Processing, 2001, 48(10):990-993.

[5] 周立功. SOPC嵌入式系统基础教程(一)[M]. 北京:航空航天大学出版社,2006.

[责任编辑:韦 韬]

Design of Nios II-based IMDCT Hardware Accelerators

PEI Ming-jing, ZHANG Xin-yi
(School of Information Engineering, Wuyi University, Jiangmen 529020, China)

In order to improve MP3s’ decoding speed, the IMDCT algorithm is decomposed and a NiosII soft-core-based IMDCT algorithm hardware structure is designed as a hardware accelerator module on the SOPC system for decoding. Experiments show the operation speed of the hardware accelerator is about 4.4 times that of software operation.

MP3 decoding; IMDCT algorithm; hardware accelerators

TN911.72

A

1006-7302(2014)01-0040-05

2013-09-25

裴明敬(1988—),男,安徽六安人,在读硕士生,研究方向为数字信号处理;张歆奕,副教授,博士,硕士生导师,通信作者,研究方向为语音信号处理.

猜你喜欢
浮点加速器解码
莫比斯加速器众创办公空间
知识快餐店 科学加速器
《解码万吨站》
LEO星座增强GNSS PPP模糊度浮点解与固定解性能评估
全民小康路上的“加速器”
解码eUCP2.0
基于Simulink浮点模型和定点模型的问题研究
基于浮点DSP的铁路FSK信号检测
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机