资源描述:
《基于矩阵乘法器的mp3解码优化设计研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于矩阵乘法器的MP3解码优化设计研究摘要:介绍了MP3解码器的工作原理,分析了各个解码环节的计算量和消耗时间。将MP3解码过程中耗时最多的子带综合滤波环节使用矩阵乘法器单元做了优化和改进,提出一种可大幅度提高MP3实时解码效率的软硬件协同设计方法,并在SoC仿真平台上得到实时验证,达到了较好的优化效果。由于SoC的设计方法比较灵活,可以根据实际需要设计硬件模块,所以该设计具有方便、灵活和可靠性高等特点,是工程实用价值较高的解码器。关键词:MP3;解码器;子带综合滤波;矩阵乘法器;SoC 中图分类号:TN47-
2、34n•Pi/32],n=0,1,2,…,16(2) 式中:初始条件为: X[-1]=X[1],S1k=Sk+S31-k,S2k= 2cos[(2k+1)•Pi/64]•(Sk-S31-k) 图232点的DCT变换到矩阵运算 2.2基于矩阵乘法器的快速DCT算法优化 3×3矩阵乘法器由触发器和乘累加器组成,是高性能DSP处理器的重要部件,也是实时处理的核心,其速度直接影响DSP处理器的速度[6-7]。矩阵乘法器的实现有很多种,基本上都基于并行计算原则
3、。由于每列结果与其他列不相关,因此可以通过增加乘法器多列同时计算,经过n次乘累加就可以得到最后结果。图3给出矩阵乘法器的结构。 图33×3的矩阵乘法器结构 显然,这种结构的计算速度很快,但是使用乘法器会因矩阵维数n的增加而快速增加,使用的触发器也很多。在很多场合下,只要满足处理速度的要求,完全没有必要浪费这么多硬件资源,而是只要1个乘累加单元流水作业,分步计算每1列结果既可。在做乘累加计算1个元素时候,准备下一组参与运算的数据,如此循环,同样可以获得较高的处理速度。 在该设计中,由于B矩阵是1×n
4、的一维向量输入数据,A矩阵为DCT系数矩阵,A矩阵中的元素为n个系数的线性组合,因此整个矩阵乘法器需要2组n个触发器分别存放输入数据和n个系数,1个乘累加单元。输入数据X[0:n],从X[0]到X[n]循环n次进入乘法器,使用选择信号Assign[0:n]选择系数C[0:n],另外系数符号由Sign信号软件控制,基本结构如图4所示。 图4一维矩阵乘法器结构 由于DCT计算本质上就是n×n矩阵乘法运算,而n×n矩阵乘法器是在通用乘法器的基础上增加2组分别存放系数矩阵的系数C(n)和输入X(n)的n个寄存器,
5、使之实现长度为n的乘累加功能,同时还需保存上次乘法结果。其中,DCT中的系数是一组n维基的n种线性组合。只需1次输入n个系数,使用软件进行选择和符号控制就可实现这些不同系数组合,无需反复往寄存器中置数,大大提高了取数/置数的效率,节省了整个DCT的运算时间。 因此在计算32点的DCT,可将32点DCT分解为2个16点的DCT计算,计算量也减少1倍。可以使用2组16×16的矩阵乘法器并行计算,使得计算时间大幅减少。表2是通过增加矩阵乘法器优化处理后,子带综合滤波使用不同实现方式所需要的时间。 表2子带综合滤波
6、部分使用不同算法所需要的时间对比 实现方式耗时/时钟周期减少/% 原算法(软件实现)14870 快速32点DCT算法(软件实现)608059.1 并行两个16点DCT算法(软硬件协同实现)128091.4 结果表明,第2.1节中使用快速32点DCT算法改进子带综合滤波计算是有效的,直接减少59%的计算时间。在采用并行2个16×16矩阵乘法器加速快速32点DCT的计算,可以取得明显的效果:使得计算时间比原算法减少了约91.4%,而且硬件上只增加1个乘法器和30个数据锁存器,以及部分控制电路。使用软硬件协同
7、操作就可以获得子带综合滤波计算速度上的大幅度上升[9-10]。 3结语 该设计面向SoC实现了利用增加矩阵乘法器就可加快基于32点快速DCT算法的MP3解码中子带综合滤波的处理速度,大大缓解了系统的颈瓶,使得采用系统主频比较低(fs≤100MHz)的SoC平台进行MP3的解码成为可能。中国.l.中国.L.整理。