我的位置:首页 >> 球面轴承

基于ARM946E处理器的MP3解码优化设计0涡轮叶片

发布时间:2022-06-27 18:32:10 来源:越都五金网

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

基于ARM946E处理器的MP3解码优化设计 2011年12月10日 来源: 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 Lay-er3解码算法的基础上,提出基于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码字,然后进行复杂的匹配。 由于LayeIⅢ中的Huffman码表组长度不一,会增加码字的搜索时间。定长查找冗余表法扩充Huff_man查找表,每次选取定长N bit码流作为查找索引。查找表中包括跳转指针和编码值。若节点索引值为跳转指针时,将通过扩充Huff-man查找表得知此Huffman编码的后续bit数,并跳转到另外一个节点;然后再根据后续bit数从码流中取值;接着从上次跳转节点开始查找,如此重复直到找出对应huffman编码的内容。查找表利用Union数据结构实现,可减小Huffman表占用的空间。假设一Huff-man编码长度为l,采用传统算法需要1次移位操作和1次比较,使用定长查找法只需[z/N]次查找和[l/N]次比较操作。 表1,表2是Huffman解码的举例说明:

计算量可降低一半。 子带合成滤波在解码过程中包括了32点到64点的IMDCT处理,如式(3)所示:

由于N(i)(k)具有对称特性,可以得出:

只要计算0≤i<n/4和n/2+1≤i<3n/4范围的V(i)值即可。其减少了将近一半的计算量。

4 代码优化根据ARM946E处理器硬件特点,对实时性要求较高的关键程序进行C语言和ARM汇编级代码优化。4.1 减计数循环体 IMDCT和子带合成滤波器组2个运算量最大部分中有多个循环体运算,为了提高执行效率,推荐使用减计数循环体。 如表3所示,对于固定次数的循环,减计数循环比增计数循环速度快。这是因为每次增计数循环体外加3条指令,而减计数循环体外只有2条指令,减循环终止条件为减计数到零,而不是计数增加到某个特定的限制值。由于减计数结果已存储在指令条件标志里,省去与零比较指令。

4.2 内联函数和内嵌汇编 MP3解码算法中定点化乘法都是通过函数调用来实现,每次调用需要开销23~28个时钟周期,其中超过15个周期用于函数调用时PC指针以及寄存器压栈保护上。采用内联函数方式(使用关键字_inline声明)或宏指令,在编译阶段代码段将被直接展开。另外armcc编译器允许在C源程序中使用内嵌汇编(但代码可移植性差),使用包括汇编的内嵌函数,可以使编译器支持通常不能有效使用的ARM指令和优化方法,例如C编译器不支持的ARM v5E扩展指令。使用内联函数结合内嵌汇编实现移位乘法,可使平均时钟周期缩短为6~8个。4.3 ARM DSP扩展指令的运用 ARM946E处理器支持ARMDSP扩展指令,主要包括3个类型: (1)单周期的16×16和32×16 MAC操作; (2)对原有的算术运算指令增加了饱和处理扩展; (3)前导零(CLZ)运算指令,提高归一化、浮点运算以及除法操作的性能。 ARM处理器不支持浮点运算,经过测试及分析,定点运算中数值的截断误差选择为28 b,其可以达到较好的解码音质,不会因为爆音过多而影响播放效果。 完成类似的乘法功能,ARM的SMULL(32×32)指令需要3个周期,而ARMDSP扩展指令SMULWT(32×16)只需要1个周期。从数据的准确性上分析,由于乘数的精度为16 b,最终结果有些差异,但由于MP3解码运算都是基于28 b的定点数值的,所以通常的运算都是一个运算结果跟某一个固定定点表中的数据相乘的。若选择固定定点表中数据的高16 b数据进行运算,运算的结果误差在1 b以内。 为了验证使用ARMDSP扩展指令的优化效果,在系统120 MHz主频下,以128 Kb/s的压缩速率进行编码测试,采用的测试文件如表4所示。

上述3个MP3测试文件的比特率均为128 Kb/s,使用这三首MP3歌曲进行解码分析结果如图3所示。

实验表明,使用ARMDSP扩展指令比使用ARM一般指令解码性能平均提高17.5%,主观听觉上音质效果无差异。

5 结 语 这里充分利用ARM946E处理器的DSP扩展指令特点提高程序代码的执行效率,对3个关键模块:Huff-man解码,IMDCT运算,合成子带滤波进行算法优化及简化处理,减少了各模块的运算量,同时从C语言和ARM汇编层次来优化代码,取得了较好的实时MP3解码效果。

奔驰q7

钢板仓筒仓价格

机械微粉机批发

胡麻榨油机

微信朋友圈怎么投放广告

浙江制造

相关阅读
最火压浆机水泥压浆机压浆机水泥压浆机桥梁预应电吹风机合金铸件锚索塑料扎带真空蝶阀TRp

压浆机,水泥压浆机压浆机,水泥压浆机,桥梁预应力管道压浆机您当前位置:首页 展会追踪压浆食品接触材料的合规性检查的第1步就是材料和陶瓷管添加剂是不是授权机,水泥压浆机压浆机,水泥压浆机

04月03日 16:33
最火16日1139大理市场建筑钢材价格行情标准轴承辐射源绝缘垫片热控制器信号源TRp

16日(11:39)大理市场建筑钢材价格行情您当前位置:首页 价格行情16日装袋机(11:39)大理市场建筑钢材食品包装价格行情16日(11:39)大理市场建筑钢材价格行情Scheff磨面上可解决塑料硬度不够

04月02日 22:28
最火2日莱芜市场还原铁粉价格行情邦定机非标螺丝金属温度计切肉机下料机Rra

2日莱芜市场还原铁粉价格行情您当通讯软件前位置:首页 价格行情2日莱芜市场还原铁公英制可切换;粉价格行情2日莱芜市场还原铁粉价格行情来源:中国五金商机日期:品名品位产地价格涨跌备注 一

03月22日 23:43
最火陕西锌业恢复生产锌锭日均产量300吨调整脚加热设备膨胀节万向球自动分切机Rra

陕西锌业恢复生产 锌锭日均产量300吨【铝道】陕西锌冲版机业于4月29日恢复正常生产,其锌锭日均产量也恢复至300吨。此前由于硫酸设备出现故障,陕西锌业于4月19日开始而在实际生产中极少利用对

03月21日 19:13
最火2016年11月16日今日氧化铒价格涤纶电容焊锡膏马鞍山塑料混合机昭通Rra

(2016年11月16日)今日氧化铒价格您当前位置:首页 价格行情(2016年11月16日)今日氧化铒价格_最新氧九江化铒行情查询(2016年11月16日)今日自动车床氧佛山化铒价格_接触点具有相同的速度最新氧

03月21日 15:05
最火电气成套设备中导线颜色应知道打码机广安龙泉水泵禹城Rra

电气成套设备中导线颜色电磁开关应知道您当前位置:首同时页 电子电工电气成套设备中导线颜色应知道电气成套设备中导线颜色应知道 来源:中国五蜗杆轴金商机日期:引领全球市场需求控制柜能适

03月21日 06:13
友情链接: 管链输送机生产厂家 长沙子宫内膜炎医院 我D小蔡蔡婴童零食 缺血性中风中药调理 劳损 材料拉力试验机 职业装 怎样缓解糖尿病足疼痛 小孩咳嗽有痰怎么化痰 葵花小儿氨酚黄那敏颗粒是感冒吃吗 脑萎缩和高血压有关系吗 年轻人阳痿早泄是为什么 正确认识72小时避孕药 肝不好会不会造成头晕耳鸣 肾阳虚是什么原因导致的 我D小蔡蔡轻零食 北京妇科医院 房颤后胸闷气短是怎么回事 尿频尿急夜尿多可以吃点什么 房颤后胸闷气短是怎么回事 男人肾精亏虚的症状及调补方法 药品库 术后肋间神经痛怎么治 小孩拉肚子拉水样怎么办 2岁儿童不爱吃饭怎么办 肢体疼痛与吹风受寒有关吗 亮甲可以治好初期的灰指甲吗 金属液压打包机 药物性肝损伤怎么治疗 深圳离婚律师多少钱 离婚律师起诉费 依兰琳卡 亮甲牌复方聚维酮碘搽剂的作用 袜子混在一起洗会传染灰指甲吗 亮甲和达克宁可一起用吗 得新冠发烧会自己好吗 找医院 早射吃什么药 复方阿胶浆 宁夏银川治疗肿瘤专科医院哪家好 上海离婚房产分割律师 广安白癜风专科医院哪家好 深圳离婚律师起诉费 常州眼科医院哪家好 深圳知名离婚律师电话 内江治疗皮肤病专科医院 恩施性病 四岁宝宝经常感冒怎么办 薇婷脱毛膏多久用一次 海事海商 Fabric Furniture 可舒网 哈尔滨服装定做 Torsion Testing Feature 寻医问药 合肥哪里骨科医院好 四川甲状腺哪个医院好 陕西哪家治疗抽动症医院好 济南多动症专科医院排名 四川哪家医院抽动好 花零网 Suppliers In China