




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
多声道可扩展MPEG-4 AAC解码器VLSI设计*黄俊俏 高明伦(合肥工业大学 电气与自动化工程学院,安徽 合肥 230009)摘要:本文实现了多声道可扩展的MPEG-4 AAC(Advanced Audio Coding )解码器的LC层次的原型芯片,局部优化了解码器系统架构及主要功能模块。采用整体串行、局部流水结构,在无噪解码模块和反量化模块之间,以及时域噪音修整(Temporal Noise Shaping,TNS)与滤波器组之间实现流水操作;而对于系统的其他模块,实行串行解码。模块优化方面所作的工作主要体现在对滤波器组模块的算法优化和硬件实现上。实验结果表明,所设计MPEG-4 AAC解码器在工作频率可达50MHz。在不需要TNS处理的情况下,解单声道的数据只需14891个时钟周期;需要TNS处理的情况下需要37264个时钟周期。在解立体声声道的数据时,因为特定的局部流水,最坏情况下只需要59146个时钟周期,可支持至少32个声道的音频信号的实时解码。关键字:MPEG4_AAC; VLSI; 多声道; 可扩展VLSI Design of a scalable multi-channel MPEG-4 AAC DecoderHuang Junqiao, Gao Minglun(School of Electric Engineering and Automation, Hefei University of Technology, Hefei 230009, Anhui Province, China)ABSTRACTS: This paper presented a VLSI design of a scalable multi-channel MPEG-4 Advanced Audio coding (AAC) decoder with low complexity(LC). The system architecture is optimized using Global-serial Local-pipeline technology, in which pipelined circuit was optimized between the noiseless decoder and inverse quantifier, as well as between temporal noise shaping(TNS) and Filterbank modules. Further more, the filter-bank algorithm was also optimized and then the hardware structure is redesigned. Experimental results showed that the proposed design only used 14,891 clock cycles for the solution of one mono data without TNS, and used 37,264 clock cycles for the case with TNS, while in the solution of stereo data, in the worst case only used 59,146 clock cycles because of specific local oipeline structure. And the proposed design of MPEG-4 AAC decoder could support at least 32-channel audio signals be decoded in real-time, in the case of operating frequency is 50MHz.KEYWORDS: MPEG4_AAC; VLSI; multi-channels; expandable1 引 言作者简介:黄俊俏(1985-),女,安徽明光人,合肥工业大学硕士生 高明伦(1945-),男,合肥工业大学教授,博士生导师MPEG-4 AAC音频编码标准在MPEG-1、MPEG-2和AC-3等的基础上加入高分辨率滤波器组、预测等技术,在保证音质的同时提高了音频压缩率,是新一代的高质量压缩编码算法,在数字广播系统、消费电子类产品中有着广阔的发展和应用前景。 当今的MPEG-4 AAC解码器的设计大多是基于DSP或者微处理器比如ARM处理器56。基于DSP和微处理器的MPEG-4 AAC解码器的设计的局限性,使得设计很难在很低的频率下实现实时解码,这就无法降低解码器的功耗7,在软件算法的优化上也要投入巨大的精力,并且很难实现多声道数据的实时解码,所以本文选择了VLSI设计。在基本的MPEG-4 AAC VLSI设计中,一般采用类似于文献5所提出的完全串行架构,在这种架构中每个模块对一帧数据解码完成后存入存储器中然后启动下一个模块进行解码,也就是说,在一帧数据的解码过程中每个时段都只有一个处理模块在工作,并且每个模块都要进行一次存储器的存取过程,这样在解码效率上就会有很大的限制。本文所提出的整体串行局部流水的架构改进了完全串行结构对解码效率的限制。使解码效率有很大的提高。在此之外,本文还对解码器中各模块,尤其是Filterbank模块的算法及硬件实现做了优化,进一步提高了解码速度。本文首先介绍了所设计的MPEG-4 AAC解码器的整体结构,然后对结构中局部流水部分进行详细的说明,在这之后将对Filterbank的优化算法的硬件实现进行描述,最后给出实现结果和结论。2 解码器架构本文所设计的AAC结构如图1所示,主要包括无噪解码模块(Noiseless Decording)、反量化逆比例模块(Inverse Quantizer)(后文均简称反量化模块)、立体声处理模块(M/S/Intensity decording)、时域噪声整形模块(TNS)、滤波器组模块(Filterbank)。本设计使用了两个大小为1024的32位的频谱数据存储器(后文均简称左右存储器),以便在立体声处理的时候可以同时准备好两个声道的数据。图1 MPEG-4 AAC 结构图在本文的设计中,因为比例因子解码模块的设计与无噪解码模块用了相同的设计原理,所以将其和无噪解码模块合为一个模块。图1中的Noiseless Decoding模块中是包含了比例因子解码的。考虑到控制的难度以及音频数据处理的特殊性虽然可分为32个子带分别处理,但是多数处理模块的运算是基于一个声道的所有数据,立体声处理模块甚至要左右两个声道的数据,所以针对整个系统的流水结构在这里就会需要耗费大量的存储资源,为了在降低Memory的使用量的基础上提高解码速度,本文选择了在完全串行结构的基础上增加局部流水的架构方案。解码器的整体控制电路如图2所示。图2 MPEG-4 解码器的控制逻辑电路图图2中所表示的逻辑如图3所示,当A为1,B为0时将o置1并在B被置1之前都保持,当B为1时将o清0。图3 控制逻辑电路部分子逻辑如图2 所示,整个解码器的控制是按照以下过程进行的:在本文的设计中,格式器是通过移位寄存器从码流FIFO中取出数据的,所以在解码启动之前要保证码流FIFO非空,并在移位寄存器中时刻检测码流fifo的状态。解码启动后,先由格式器按照语法单元的顺序,解出各控制信息,并控制无噪解码模块按顺序解出比例因子和频谱值,无噪解码模块将比例因子值存入比例因子存储器中,以供下一模块使用(反量化模块),并且将解出的频谱值输入到反量化模块进行反量化逆比例处理,反量化模块将得到的处理结果存入到左右存储器中,并反馈IQ_done信号给格式器。格式器在接收到IQ_done信号之后,判断当前处理的是否为立体声数据,是则将ms_en信号拉高,启动立体声处理,而TNS模块就由ms_done信号启动,非则将skip_ms信号拉高,跳过立体声处理模块直接启动TNS模块。而TNS模块处理完后,在当前数据为单声道时启动滤波器组模块,并等待下一次ms的启动信号,而在当前数据为立体声数据时,启动Filterbank后自行进行下一个声道数据的解码,并将处理数据存入另一个存储器中。Filterbank在解完每一个声道数据时将解出的时域数据依次存入PCM FIFO中,在一帧数据所有声道全部取不解完后启动Codec模块发声。由以上控制过程可知,本文所设计的解码器在串行架构的基础上实现了局部流水。本文在两个地方实现了局部流水(图1中虚线框出的部分),一个是Noiseless Decoder和Inverse Quartizer之间,在他们之间的流水是完全流水,就是从Noiseless Decorder解出来的数直接寄存一级输入到Inverse Quartizer进行反量化处理,Noiseless Decorder继续解下一个数,这样就节省了中间的存取步骤,而且使Noiseless Decoder和Inverse Quartizer的解码时间合并起来,大大减少了解码时间。第二处实现局部流水的地方是TNS和滤波器组之间,因为数据处理的特殊性,这里实现的只是声道间的流水,而且实现的流水只在立体声数据的情况下才起作用。在处理立体声数据局部流水具体时序情况如图4所示。图4 立体声数据局部流水处理步骤如图4所示,图中N-D表示Noiseless Decoder,模块表示后面的数字1、2表示所解的声道的序号,一般1为左声道,2为右声道。由图2可以看出,当N-D解完之后IQ基本上就跟着解完了,而当TNS处理完第一个声道的数据后,将数据存入左RAM中,就接着处理第二个声道的数据,同时Filterbank开始处理第一个声道的数据,这样就实现了声道间的局部流水。从以上分析可以看出,局部流水的结构将节省大量的解码时间。本文所采用的局部流水结构比经典的完全串行结构解码所需周期数减少了18452,详见第4部分中表1。3 Filterbank模块的优化模块的优化策略直接影响着整个系统的性能和面积,对AAC来说,对系统性能和面积影响最大的一个模块是滤波器组模块。所以在这里,重点介绍下Filterbank的优化设计方法以及硬件实现。Filterbank的处理需要经过以下三个过程:IMDCT -windowing(加窗)-overlap-add(去混叠)12在Filterbank总体结构的设计中,我们将IMDCT运算得出的数据加窗,然后直接叠加上一帧的后半部分数据进行存储,省去了中间存取时间。对IMDCT 的设计,我们采用采用常用的经典优化方法,使用IFFT进行优化3。IMDCT结构如图5所示。图5 IMDCT结构示意图其中,Pre-IFFT将输入到Filterbank的数据分为偶部和奇部,并与旋转因子相乘,然后分别存入实部和虚部的ram中,长块数据存入512ram中,短块数据存入64ram中,公式如式(1)、(2)所示。, (1) (2)Pre-IFFT的数据流图如图6所示:图6 pre-IFFT 数据流图其中,控制单元控制数据的读写以及读写地址的生成,数据处理单元完成对应数据的相乘相加,并将结果分别存入实部RAM和虚部RAM中,以供IFFT模块使用。IFFT将Pre-IFFT所得的复数序列进行反傅立叶变换,公式如式(3)所示。, (3)将公式(3)具体到每个蝶形,每个级蝶形运算的公式表述如下:记,可得到: (4) (5), (6) (7) (8) (9)在最后一级蝶形运算时,需要乘以系数2/N,得到最终的结果。从上述蝶形运算的公式我们选择了速度最快的蝶形运算的硬件实现方法。IFFT中的一个级蝶形硬件实现主要电路如图7所示。图7蝶形结的硬件实现结构图以图7所示的电路进行设计,对一个蝶形结,运算加Memory的存取只需要4个周期,完全将运算隐藏在Memory的读取周期中。对于Post-IFFT,在我们的设计中是将其融于加窗和去混叠运算中的,硬件设计难度不大,优化空间也比较小,所以在这里我们不加详述。 FPGA原型验证与分析本文的设计通过FPGA原型验证来验证设计的功能正确性,分析解码器的面积速度等性能。FPGA测试平台的结构如图8所示,我们采用EPS1801020c4FPGA开发板进行FPGA验证。因为此FPGA开发板上有以太网口,支持立体声播放的音频播放芯片(TLV320AIC23),以及32MByte的SDRAM,所以我们充分利用这些资源进行原型芯片的验证。我们通过ARM处理器驱动以太网口从PC机上下载数据至板上的SDRAM中,然后再通过ARM将SDRAM的数据送入AAC Decoder的数据fifo中,启动AAC Decoder进行解码。因为EPS1801020c4 FPGA板上的Audio Codic只支持两个声道的音频播放,所以当要多多声道的设计进行测试时,就要设计方案对各个声道分别进行测试。在这里我们使用在Codic控制模块增加开关切换机制进行测试,分别对各个声道两两进行主观测试。图8 FPGA验证平台在我们的测试中,分别对立体声的音频数据以及5.1声道的数据进行了解码测试。通过对音频效果的主观测试,音频效果良好,然后再对其进行客观的数据对比,在这里我们使用Adobe Audition对硬件解出的数据和标准的开源软件解出的数据进行对比,测试数据的对比图如图9所示。图9 测试数据对比图图中上面波形为AAC格式播放的波形,下面波形为本文设计的解码器解出的PCM数据播放的波形,波形基本一致。 使用局部流水架构和完全串行架构处理一对立体声数据所耗时钟周期数对比如表1所示。从表1可以看出,本文所采用的局部流水结构比经典的完全串行结构解码所需周期数减少了18452,大大提高了解码的效率。表1 局部流水结构和完全串行结构所耗周期数对比N-DIQR/WTNSFilter-bank完全串行1025*21029*2204822400*212288*2总和N-D+IQ+R/W=4102*2TNS+Filterbank=34688*2局部流水N-D+IQ+R/W=1029*2TNS+Filterbank=57088优化616412288整个解码系统的各部分及总体的解码周期数以及所占资源如表2所示。表2 解码器各项性能列表周期数所占资源ALUTsRegisters格式器共1282412799无噪解码51851997反量化472259立体声解码12941684649TNS2240017992228滤波器组122883029863整个解码器37264125816795表2所列出的整个解码器的周期数为解单声道数据所需的周期数,在解立体声数据的时候,由于局部流水架构的作用,一对声道的解码只需要57088+2058=59146个时钟周期(请参照表1)。本文所设计的解码器各性能和已有的设计性能比较如表3 所示。表3 设计性能比较系统周期数(立体声)Filterbank周期数文献49000038000本文5914612288本文/文献465.71%32.34%由于对于比较普遍采用的采样率44.1KHZ来说,一帧数据的播放时间约为23.22ms,所以解码时间必须控制在23.22ms以内,而本文所设计的MPEG-4 AAC解码器在时钟频率为50MHZ的情况下,解单声道的数据最多需要 37264*(1/(50*) =0.745ms,所以,在这种情况下,本文的设计至少可以支持23.22/0.74532个声道的音频数据的实时解码。5.结论本文所采用的整体串行局部流水的MPEG-4 AAC解码器架构以及在滤波器组硬件实现的优化上所做的工作使得解码器的速度有了很大的提高,电路的设计在工作频率为50MHz的情况下至少可支持32声道的实时解码。但由于在TNS模块所做的优化不够,所以仍然制约了解码器的速度,所以我们将在进一步的工作对TNS模块进行优化,进一步提高解码器的速度。或者在现有架构的基础上,对单声道数据的处理也实现声道间流水,因为对单声道数据的解码不需要进行立体声处理,所以可以实现所有模块的声道间流水,这样就可以在很大程度上提高解码效率,实现更高的声道扩展数的要求。参 考 文 献 1 ISO/IEC 14496-3, 2001/amd.2:2004(S), “Coding of Audio-Visual Objects,Part 3: Audio”, .20042 ISO/IEC JTC1/SC29/WG11 No.1650 “ISO 13818-7 (MPEG-2 Advanced Audio Coding, AAC)”(S), April 1997.3 Fuhui du, Gaoming Du, Yukun Song ,et al.An implementation of filterbank for MPEG-2 AAC on FPGA. Proceeding of Anti-counterfeiting, Security and Identification 2008 (ASID2008),guiyang,china,2008:391 - 394.4 Peilin Liu,Lingzhi Liu, Ning Deng ,et al.VLSI Implementation for Portable Application Oriented MPEG-4 Audio Codec. Proceeding of IEEE International Sympos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度药店店面装修合同书
- 2025版校园活动图文设计制作服务协议
- 2025年度建筑工程设计委托合同范本
- 2025年商场、园区租赁合同能源管理及节能改造合同
- 2025船舶中介买卖合同模板(含船舶改装条款)
- 2025年豪华SUV抵押贷款协议书
- 2025年度水泥搅拌车租赁合同附带设备定期检修及维护协议
- 2025版汽车租赁公司驾驶员职业培训及晋升合同
- 2025年发电机环保性能测试与评估合同
- 2025年铁路货运代理服务合同范本
- 《商业银行资本管理办法》附件13-账簿划分和名词解释
- 环保与物业公司合作协议
- 燃气轮机离心式压缩机组运行操作手册教学教材
- FZ/T 01057.2-2007纺织纤维鉴别试验方法 第2部分:燃烧法
- 面条制品-课件
- 2023年重庆市社区工作者考试试题
- 四上科学第一单元《多样的动物》知识梳理
- 微观经济学-范里安varian中级
- 《印章移交登记表》
- 电缆护套感应电压计算
- 第5章金属在自然环境中的腐蚀ppt课件
评论
0/150
提交评论