基于ARM的MPEG4视频解码器


,通过本文所总结的ARM7TDMI上视频解码的优化方法,可以使MPEG4视频解码节约大量的数据处理时间。由实验结果可见,本视频解码器能较好地满足低分辨率、低帧率场合实时解码的要求。

4  MPEG4视频解码的嵌入式系统实现

实现本解码器的主要硬件平台是Easy ARM2200,如图5所示。它是一款功能强大的32位ARM单片机开发板,采用了Philips公司的ARM7TDMIS核,以及总线开放的单片机LPC2210,具有JTAG调试功能。

图5  Easy ARM2200开发板

开发板上除了提供键盘、LED和RS232等一些常用功能部件外,还具有4Mb SRAM、16Mb FLASH、IDE硬盘接口、CF存储卡接口、以太网接口和Modem接口等。

本文选择在μClinux操作系统上调试MPEG4解码程序。调试过程分为以下几个步骤:
•建立μClinux开发环境;
•在μClinux下开发应用程序;
•添加应用程序到目标系统并调试。

图6 为一个基于μClinux的嵌入式系统典型框架结构图。

图6  基于μClinux嵌入式系统框图

(1) 建立μClinux开发环境

为了实现基于μClinux的应用系统的开发,建立或拥有一个完备的μClinux开发环境是十分必要的。建立μClinux开发环境主要包括以下3个步骤:
•建立交叉编译器;
•编译μClinux内核;
•加载内核。

在完成上述所有工作后,一个嵌入式应用开发平台就已经搭建好了。在这个平台之上,可以根据不同需要开发嵌入式应用。

(2) 在μClinux下开发应用程序

基于μClinux系统的应用程序的开发,通常是在标准Linux平台上用交叉编译工具armelfgcc来完成的。ADS和armelfgcc都是ARM公司提供的软件开发工具,它们都支持ARM指令集,但部分伪指令集不同。因此为了将在ADS1.2环境下优化好的源代码移植到armelfgcc环境下,就需要对源代码的伪指令作修改, 然后用armelfgcc编译源文件,以生成可在目标板上运行的可执行程序。

(3) 添加应用程序到目标系统并调试

要在硬件板上调试,就必须首先把应用软件的可执行程序添加到目标系统中。有多种途径可以达到这一目的。本文使用的是网络方法,通过以太网接口从网络添加用户程序到目标系统中运行。

完成上述工作后,MPEG4解码程序就可以在μClinux系统上运行了,解码结果数据流通过以太网动态传输到PC机上。对几个典型QCIF格式图像解码的帧率如表5所列。

表5  在μClinux操作系统中MPEG4视频解码的帧率

观察发现与前面的软件仿真结果是一致的。对于序列news、miss_am和salesman这些运动动作不太大的图像,解码帧率明显较高;而对于foreman、carphone和trevor这些运动动作较大的图像,解码帧率就较低。

实验结果表明,本系统可以实现低帧率、低分辨率的嵌入式MPEG4视频实时解码。

5  结束语

本文重点研究了基于ARM开发平台对MPEG4实时解码的算法优化及其硬件实现。主要完成了以下几方面工作: 针对ARM7TDMI的体系结构,对解码的关键部分进行了算法优化和代码优化,从而极大地提高了解码速度;针对具体的硬件平台——基于ARM7TDMI的Eeay ARM2200开发板,建立了μClinux开发环境,在其上开发应用程序,添加到目标系统中并调试,最后完成了15fps的MPEG4视频解码嵌入式系统的实时实现。

随着人们对视觉媒体的要求越来越高,基于嵌入式系统视频解码技术将具有越来越广阔的前景。

COPYRIGHT(C) 2011 厦门永宏亚得机电科技有限公司版权所有(闽ICP备05025945号) ALL RIGHTS RESERVED?

电话: 0592-5190891 传真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 厦门市海沧区兴港六里17号2607室 邮编:361009 联系人:翟先生