打印本文 关闭窗口 | ||||
基于ARM926EJ-S的MPEG-4软解码器的优化与实现来源于瑞达科技网 | ||||
作者:佚名 文章来源:不详 点击数 更新时间:2011/12/29 文章录入:瑞达 责任编辑:瑞达科技 | ||||
|
||||
1 引 言 MPEG-4视频压缩标准自问世以来受到人们的广泛关注。近几年,嵌入式应用中对MPEG-4播放器的实现已经成为众多厂家的研究热点。专用的MPEG-4播放芯片已经非常普遍,但是减少功耗和降低成本一直是商家追求的目标,因此,随着嵌入式的主流微处理器ARM的处理能力越来越强,用他来实现MPEG-4系统的软解码成为了众多嵌入式设计公司研究的重点内容。由于MPEG-4系统庞大且需要大量的数据处理,因此在ARM中实现MPEG-4软解码需要对其原算法进行充分的优化才能达到理想的性能。为此研究了一种基于ARM926EJ-S微处理器的MPEG-4解码算法的纯软件实现和优化的方法,通过对解码算法的软件优化,将QVGA格式MPEG-4码流在ARM9平台上的播放速度由原来的10f/s提高到了37 f/s,完全达到了流畅播放的要求,具有很高的实用价值。 2开发平台及耗时分析 论文研究使用的是基于ARM926EJ-S微处理器的综合开发平台,采用Linux操作系统,外接320*240(QVGA格式)的LCD显示屏。ARM926EJ-S微处理器的时钟频率为190 MHz;采用5级整数流水线操作,支持32位ARM指令集和16位Thumb指令集以及扩充的DSP指令集;支持数据Cache和指令Cache,具有更高的指令和数据处理能力。软件编译环境为ADS1.2,使用Multi-ICE下载程序。 MPEG-4 SP级算法流程图如图1所示。优化的前期工作首先要将MPEG-4解码代码移植到开发平台上,然后对解码各个模块进行运算量和耗时分析,找出优化的重点内容。本文采用长度为376 934 B的AVI码流为测试序列,该码流共95帧,其中包括8个I帧,87个P帧。在未优化前测得的耗时分析结果如表1所示,整个测试序列解码播放完毕耗时10.05 s,解码播放速度只有9.5 f/s。
|