基于ARM946E处理器MP3解码优化设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ARM946E处理器的MP3解码优化设计0 引? 言 MP3(MPEG I Audio Layer 3)格式是基于电影专家组系统(Motion Picture Expert Group,MPEG)压缩标准的一种声音文件格式,其压缩比根据采样频率、压缩位率和声音模式的不同而有所变化。MP3具有很高的压缩率,可以达到1:12。一分钟左右的CD音乐经过MP3格式压缩编码后,可以压缩到1兆左右的容量,其音色和音质还可以保持基本完整而不失真。随着数字音乐的不断普及,现在MP3音乐已经不仅局限于MPEG视频应用中,而是以一种独立的数字音乐压缩技术出现在计算机、网络和各种电子设备上。目前市场流行的MP3播放器是基于DSP和专用芯片的解决方案,通过硬件或专用算法实现解码,具有良好的实时性。而消费类电子产品正朝着多功能、低成本的方向发展。随着ARM9功能的不断增强,利用系统本身处理器实现MP3软解码成为可能。另外,软件实现更便于产品功能的升级和维护,可以预见,嵌入式MP3软解码器的应用将越来越广泛。这里在分析MPEG I Audio Layer3解码算法的基础上,提出基于ARM946E处理器实现解码算法的软件优化方法。 1 MPEG Audio Layer3的解码流程 MP3解码算法流程如图1所示。 主要过程包括:数据流解码、Huffman解压缩、反量化与重排序、立体声解码、IMDCT和子带合成运算等。其中Huffman解码与反量化、IMDCT和子带合成等3个过程在MP3解码过程中占用了最多的CPU和内存资源,是嵌入式系统实现软件解码的关键。 2 ARM946E处理器 ARM946E处理器属于ARM9内核带有E扩展的一个可综合版本,执行v5TE架构指令。采用5级流水线,存储器系统根据哈佛体系结构重新设计,独立的数据和指令总线。带有一套存储器子系统,以提高系统性能和支持大型操作系统。 如图2所示,存储器子系统包含1个存储器保护单元(MPU)、高速缓存(Cache)和写缓冲(Write Buffer);CPU通过该子系统与系统存储器相连。 相对于ARM7,ARM9E性能上的提高主要表现在工作频率、改进的硬件特性及优化的指令执行效率。另外,ARM9E集成了轻量级的DSP处理能力,以很小的成本(CPU增加功能需要增加硬件)换来非常实用的DSP性能。充分利用好芯片资源是实现MP3解码优化的关键。 3算法优化 针对MP3中涉及较大运算的Huffman解码与反量化、IMDCT和子带合成,分别提出算法优化处理。 3.1? 定长查找冗余表Huffman解码算法 Huffman解码器可以通过从头至尾逐一检测各符号,以查表比较的方式进行解码。即从一维的bit流中分辨出各个长度不同的Huffman码字,然后进行复杂的匹配。 由于Layer中的Huffman码表组长度不一,会增加码字的搜索时间。定长查找冗余表法扩充Huff—man查找表,每次选取定长N bit码流作为查找索引。查找表中包括跳转指针和编码值。 若节点索引值为跳转指针时,将通过扩充Huffman查找表得知此Huffman编码的后续bit数,并跳转到另外一个节点;然后再根据后续bit数从码流中取值;接着从上次跳转节点开始查找,如此重复直到找出对应huffman编码的内容。查找表利用Union数据结构实现,可减小Huffman表占用的空间。假设一Huffman编码长度为1,采用传统算法需要1次移位操作和1次比较,使用定长查找法只需[l/N]次查找和[l/N]次比较操作。 表1,表2是Huffman解码的举例说明: 若Huffman编码为000000001010(内容为“DAB”),定长N=3,即每次从码流中取3 b数据,解码步骤如下: (1)取3 b数据000,从Huffman查找表检索,000对应为指针类型,指向表项号8,标志位为0,说明没有取到1个完整的Huffman编码,后续仍有3 b数据; (2)继续取3 b数据000,从Huffman查找表的第8项开始检索,索引值为000对应的内容为“D”,此时标志位为1,即表示已完成1次Huffman解码; (3)取3 b数据001,对应表内的第1项,标志位为1说明已取完该个Huffman编码,表项内容为“A”; (4)取3 b数据010,对应表内的第2项,表项内容为“B”。 至此,已完整从Huffman编码“000000001010”解码出“DAB”的内容。 3.2 IMDCT与合成子带滤波的简化算法 反离散修正余弦变换(IMDCT)是在去混叠处理之后进行的,它的计算公式如式(1)所示: 子带合成滤波在解码过程中包括了32点到64点的IMDCT处理,如式(3)所示: 由于N(i)(k)具有对称特性,可以得出

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档