当前位置:首页 > 消费电子 > 消费电子
[导读]本文根据嵌入式系统的特点,引进新的IMDCT变换算法,优化IMDCT运算过程中的叠加运算,为高速度、低成本地实现IMDCT硬件加速器提供了一种方案。

摘要 提高IMDCT运算速度比较有效的做法是在系统级芯片内部添加一小块专用电路,专门负责处理IM-DCT部分的运算。本文根据嵌入式系统的特点,引进新的IMDCT变换算法,优化IMDCT运算过程中的叠加运算,为高速度、低成本地实现IMDCT硬件加速器提供了一种方案。
关键词 MP3 IMDCT 硬件加速器 解码


    MPEG-l/2 Audio Layer 3(简称MP3),是专门针对音乐和语音数据进行设计的有损压缩算法。在市场需求的推动下,会有越来越多的嵌入式系统支持MP3应用。因此,如何在嵌入式系统中利用有限的计算能力实现MP3的实时解码,成为值得关注的问题。MP3解码算法流程主要包括:帧同步和边带信息解码、Huffman解压缩、反量化、立体声解码、反锯齿、IMDCT和子带合成运算等。解码软件效率评估得到的数据表明,IMDCT过程的运算量占到了整个解码运算总量的19%,由此设想在系统级芯片内部添加一小块专用电路,专门负责处理MP3解码过程中IMDCT部分的运算。我们把这一小块专用电路称为“IMDCT硬件加速器”。将这部分代码通过硬件实现,并以硬件速度执行这些运算,可以有效地提高系统的解码性能。
    本文采用软硬件协同设计的方法,提出了一种针对IMDCT运算的硬件加速器方案,目的在于使MP3解码过程中的速度和成本这两大要素得到优化。


1 IMDCT运算
    MP3解码算法中使用反向修正离散余弦变换IMDCT(Inverse Modified Discrete Cosine Transform)将输入数据从频域变换到余弦域,对子带滤波进行补偿运算,如下式:

   
    式中:在长窗类型帧中n取36;在短窗类型帧中n取12。
    完成IMDCT变换后,结果xi必须再与视窗函数Wi作乘积运算。视窗函数是由边带信息中bllk_type位的值来确定的。长窗类型叉可以根据帧首部定义进一步划分为aormal、start、stop三种子类型,IMDCT变换得到36个结果数据;而在短窗类型下,MP3解码器将执行3次IM-DCT变换产生12个输出结果,然后互相叠加补零后也得到36个数据,类似于长窗类型的输出结果。将这36个数据与上一次的结果进行叠加,得到IMDCT变换的18个最终输出结果。音频数据分单声道和双声道,包含若干颗粒;每个颗粒有576个数据项,共包括32个数据块,需要分别进行IMDCT变换。一个颗粒变换完成后,经过较为简单的频率反转后得到的18个子带(每个子带包含32个数据)即可作为子带合成的输入信息。我们把从18项输入数据到18项输出数据的整个过程(包括IMDCT变换、数据加窗运算、叠加)称为“IMDCT运算”,如图1所示。本文所讨论的IMDCT硬件加速器,即实现这部分功能的专用电路。

2 IMDCT变换算法的选择
    ISO标准解码代码里,IMDCT变换的算法没有进行优化。当式(1)中n=12时,做一次IMDCT需要72次乘法和66次加法;n=36时,做一次IMDCT需要648次乘法和630次加法。可见,IMDCT变换占用了大量的CPU时间,成为MP3解码过程中主要的性能瓶颈之一。将IMDCT做成硬件加速模块,也需要使用更快速的IMDCT算法,以进一步提高速度。这里引入一种新型的IMDCT算法。运用这种算法,当式(1)中n=12时,做一次IMDCT只需13次乘法和39次加法;n=36时,做一次IMDCT需要47次乘法和165次加法(详见参考文献)。同时,采用余弦查找表来代替实际的cos()函数运算,以加快长窗下的cos 36和短窗下的cos 12的变换速度。IMDCT算法改进后,运算过程得到简化,乘法数量大大减少,从而提高了系统性能。


3 叠加运算的优化
   
速度和成本是设计的两大要素。考虑到硬件成本,IMDCT硬件单元的面积应受到严格控制。这里提出一种叠加运算的优化算法,利用该算法,可以节省2×31×18个字的存储电路单元。下面对此优化算法进行详细介绍。
    IMDCT运算的主要数据结构如下:

   
    可以看到,对于双声道立体声数据(stereo=2),常见的算法是对前一区块2个颗粒(共2×32×18个数据项)进行IMDCT运算,保存2×32×18个字的高18项数据,再对下一区块的2×32×18个数据项进行IMDCT运算,将得到的2×32×18个字的低18项数据与之前保存的上一区块的高18项数据相叠加,得到输出结果。将IMDCT运算的数据叠加部分用硬件实现时,需要一块大小为2×32×18个字的存储电路(prevbuf[2][32][18])来存储高18项数据,用于下一步的叠加运算。对嵌入式SoC来说,降低存储电路的需求意味着减小芯片面积。于是采用软硬件协同设计的方式对算法进行改进,通过改变IMDCT运算所需数据的输入次序,相对减少IMDCT变换输出数据的量。如此一来,有效地减少了硬件加速器的存储单元,减小了电路面积。
    首先,在解码软件里,完成2个区块4个颗粒数据的反锯齿运算,并将结果存储到一片连续的内存区域内。具体做法如下:


    然后,采用交错读取数据的方法,先将处在区块相同位置、需要进行叠加的子带进行IMDCT运算。这样,可以将存储中间结果的prevbuf缩小到2×18个字,大大降低了对存储单元的需求,减小了电路面积。具体实现如下:

4 硬件实现
   
由图l可知,IMDCT运算主要包含3部分:IMCCT变换、数据加窗运算以及叠加运算。IMDCT变换部分主要是把由反锯齿运算得到的数据IN与cos系数相乘和累加,并把最后的结果放入寄存器SUM中;加窗运算是把计算好的SUM与加窗系数Wi相乘;叠加部分则是将加窗运算后的数据进行叠加。总体结构图如图2所示。

    由图2可知,通过合理的流程设计和利用多路选择器(MUX),整个硬件加速器只需要1个乘法器和1个加法器,大大降低了通过硬件实现IMDCT运算的成本。


结 语
   
本文通过引进新的IMDCT变换算法,优化IMDCT运算过程中的叠加运算,加快了整体的运算速度,降低了对存储单元的需求,为高速度、低成本地实现IMDCT硬件加速器提供了一种方案。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能

武汉2024年5月15日 /美通社/ -- 北京时间4月26日-5月4日,2024 VEX 机器人世界锦标赛于美国得克萨斯州达拉斯市举办。本届 VEX 世锦赛为期九天,设有 VIQRC 小学组/初中组、V5RC 初中组/...

关键字: 机器人 BSP RC POWERED

上海2024年5月15日 /美通社/ -- 由生成式人工智能(AI)驱动的临床阶段生物医药科技公司英矽智能宣布,与复星医药(600196.SH;02196.HK)合作开发的潜在"全球首创"候选药物IS...

关键字: ISM BSP PC 人工智能

上海2024年5月13日 /美通社/ -- 5月8日,浦东新区国资委组织陆家嘴集团等9家区属企业与立邦中国召开合作交流会,旨在贯彻落实浦东新区区委、区政府工作要求,进一步放大进博会溢出带动效应,持续扩大区属企业与进博会重...

关键字: BSP 数字化 自动化立体仓库 智慧园区

上海2024年5月13日 /美通社/ -- 在数字化时代,高效的税务管理和ERP系统成为企业发展的关键。为了满足这一需求商应信息科技与Exact Software 易科软件就金四全电票税系统与ERP系统集成及商务合作建立...

关键字: AC 软件 BSP 数字化
关闭
关闭