基于ARM的MP3解码算法的优化设计算法.
基于ARM的MP3解码算法的优化设计算法.
1 / 7
基于ARM的MP3解码算法的优化设计算法.
率 .
MP3 解码过程如图 2 所示 ,具体算法可以细分为三个操作步骤 ,帧同步、边带信息解码和 Huffman 解码以数据控制为主 ,涉及的运算主要是位寻址和位操作 ,计算量较小 ;反量化、立体声解码、 IMDCT 变换和反锯齿处理主要以复杂数值计算为主 ,
涉
收稿日期 :2003-08-28
作者简介 :江巍 (1976-),男 ,江苏淮安人 ,东南大学硕士研究生 ,主要研究微电子学 ; 罗岚 (1977-),女,湖南浏阳人 ,东南大学博士研究生 ,主要研究微电子学与集成电路 .
基于ARM的MP3解码算法的优化设计算法.
基于ARM的MP3解码算法的优化设计算法.
6 / 7
基于ARM的MP3解码算法的优化设计算法.
第 22 卷第 5 期 江巍 ,等:基于 ARM 的 MP3 解码算法的优化
设计算法 ? 69? 及指数运算、三角函数运算和乘方运算 ,这些运算本身的实现比较复杂 ,运算速度依赖于传统浮点算法的实现 ;而子带合成运算需要进行大量的矢量计算 ,其中又以矢量乘法计算为主 ,普通优化方式难以发挥作用 .
对于这三种不同类型的解码操作 ,本文中的定点算法针对 ARM 体系结构采取了不同的优化方式 ,以提供最优的性能 .
控制型过程
控制型过程中使用最多的操作是位取值操作 ,,.传统的 MP3 解码软件使用纯 C 实现 , 对位操作的优化十分有限 ,,址和取值操作 ,Huffman 解码的效率 .
MP3 解码过程中的数值计算主要采用定点算法来代替原浮点算法 ,使用经过处理
的定点数代替原浮点数参与运算 .将浮点数扩大 2N 倍并取整就是对应的定点数 (对
于 ARM 处理器 ,该定点数字长为 32 位,其中最高位为符号位 ),其中不同过程中浮点数的取值范围不同 ,则 N 的取值也不同 .N 取较大值 ,则定点数的表示精度高 ,但是表示的浮点数范围较小 ;N 取较小值 ,则定点数表示的浮点数范围比较大 ,但精度较低 .
因此必须根据具体的运算情况针对不同过程分别取 N 值.
此外 ,反量化过程需要处理指数和乘方运算 ,IMDCT 变换则需要余弦函数运算 ,而这几种运算使用定点算法实时计算比较困难 ,精度也较低 .因此 ,我们采用查表插值的方法 ,预先计算指数函数表、乘方表和余弦函数表 ,并存为常量数组保存在代码中 . 实际计算时直接查表 ,如果不在表中的 ,则利用线性插值的方法求出计算结果 .
子带合成运算可分解为两步计算 ,第一步是 36 位或 12 位离散余弦变换 (DCT36 或DCT12),第二步是加窗和 PCM 码输出 .子带合成运算中大量使用乘法 ,对系统的实时性能影响较大 .为了提高乘法的运算速度 ,本文的优化算法使用了 ARM7TD
基于ARMMP3解码算法优化设计算法 来自淘豆网m.daumloan.com转载请标明出处.