您的位置 首页 模拟

根据ARM渠道的MP3软解码算法研讨与完成

为了减少功耗与降低成本,根据ARM芯片对C语言良好支持的特点,在深度剖析MP3解码算法、分析C语言在ARM芯片上编程的优化方法的基础上,通过软件形式实现MP3音频解码器,便一些无硬件解码器支持的ARM

摘要:为了削减功耗与下降成本,依据ARM芯片对C言语杰出支撑的特色,在深度剖析MP3解码算法、剖析C言语在ARM芯片上编程的优化办法的根底上,经过软件方法完结MP3音频解码器,便一些无硬件解码器支撑的ARM嵌入式体系完结MP3解码使命,然后完结依据ARM的嵌入式体系的MP3软解码器,能够有效地下降体系功耗,进步解码功率,更好地扩展和增强便携嵌入式体系多媒体功用。
关键词:MP3解码;ARM嵌入式体系;嵌入式多媒体;霍夫曼编码

跟着便携式嵌入式体系的开展,嵌入式多媒体技能正在影响并改变着人们的日常日子,多媒体音频编码解码技能也越来越遭到注重和注重。笔者提出了一种MP3音频解码经过软件方法在嵌入式体系上完结的解决计划。该计划以现在比较高效的MP3解码算法为根底,灵敏的替代了依据DSP的硬件解码计划,在低消耗处理器资源的前提下,完结能与硬件解码相媲美的作用。然后节省了研制或购买DSP芯片的费用,还能够方便快捷的兼容MPEG新提出的解码规范,这是该计划最重要的现实意义。
现在国外在MP3软解码方面的研讨有两大效果,一个是开源MP3解码项目mpg123,一个是开源嵌入式MP3解码库libmad。这两个开源项目中运用的解码算法参阅了许多世界学术论文。前者被广泛用于播放器软件,例如Mplaver,千千静听等;后者则愈加适用于嵌入式体系,现已被成功移植到Symbian手机体系上。

1 MP3解码算法剖析
MP3解码首要包含以下进程:预处理(Preprocessing)、霍夫曼编码(Huffman decoding)、反量化(Requantization)、重摆放(Reorder ing)、立体声解码(Stereo decoding)、混迭消除(Alias reduction)、反离散余弦改换(IMDCT transform)、频域转化(Frequency invers ion)、子带组成滤波(Synthesis filterbank),最终生成声卡能够直接读取的PCM采样。MP3解码流程详细如图1所示。

a.JPG

2 ARM处理器以及其程序规划优化
为了在ARM处理器下快速安稳的运转解码器,除了浮点转化为定点的战略,还要依据硬件特色进一步进行程序优化:首要减小运算强度,运用位移操作替代乘除运算,一般需求乘除以2的幂次方都能够用左右移n位来完结,比方3×8等价于33;运用乘法替代乘方运算,ARM核中内建有乘法器,因而能够经过乘法运算来替代调用C库函数乘方运算以节省函数调用开支;运用与运算替代求余运算。一般and指令比%操作功率要高;运用内联函数,ARM下支撑C言语inline关键字,这时的函数直接在调用途代码打开,省去了函数调用开支,不过它的缺陷是代码量添加;运用寄存器变量,CPU对寄存器的存取要比对内存的存取快得多,因而为变量分配一个寄存器,将有助于代码的优化和运转功率的进步。
防止除法,ARM指令会集没有除法指令,其除法是经过调用C库函数完结,一个32位的除法一般需求20~140个时钟周期。因而,除法是程序功率的瓶颈,应尽量防止运用。用查表法替代核算,在CPU资源严重而内存资源殷实的情况下,能够用空间来交换运转速度,例如在反离散余弦改换算法中需求频频的核算正弦和余弦函数值,能够预先将函数值核算出来以常量放到内存里,需求核算时直接经过内存地址提取需求的值。

3 解码器结构规划与完结
在对现有算法进行研讨的根底上,笔者规划出一个功能优秀、结构灵敏、可移植性强的MP3软解码器。解码器首要包含以下模块:解码器引擎初始化,缓冲区输入输出操控,帧解码模块,刊出解码器引擎等。

b.JPG

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/moni/297251.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部