基于ARM的MPEG4视频解码器
| ,通过本文所总结的ARM7TDMI上视频解码的优化方法,可以使MPEG4视频解码节约大量的数据处理时间。由实验结果可见,本视频解码器能较好地满足低分辨率、低帧率场合实时解码的要求。 4 MPEG4视频解码的嵌入式系统实现 实现本解码器的主要硬件平台是Easy ARM2200,如图5所示。它是一款功能强大的32位ARM单片机开发板,采用了Philips公司的ARM7TDMIS核,以及总线开放的单片机LPC2210,具有JTAG调试功能。
图5 Easy ARM2200开发板 开发板上除了提供键盘、LED和RS232等一些常用功能部件外,还具有4Mb SRAM、16Mb FLASH、IDE硬盘接口、CF存储卡接口、以太网接口和Modem接口等。 本文选择在μClinux操作系统上调试MPEG4解码程序。调试过程分为以下几个步骤: 图6 为一个基于μClinux的嵌入式系统典型框架结构图。
图6 基于μClinux嵌入式系统框图 (1) 建立μClinux开发环境 为了实现基于μClinux的应用系统的开发,建立或拥有一个完备的μClinux开发环境是十分必要的。建立μClinux开发环境主要包括以下3个步骤: 在完成上述所有工作后,一个嵌入式应用开发平台就已经搭建好了。在这个平台之上,可以根据不同需要开发嵌入式应用。 (2) 在μClinux下开发应用程序 基于μClinux系统的应用程序的开发,通常是在标准Linux平台上用交叉编译工具armelfgcc来完成的。ADS和armelfgcc都是ARM公司提供的软件开发工具,它们都支持ARM指令集,但部分伪指令集不同。因此为了将在ADS1.2环境下优化好的源代码移植到armelfgcc环境下,就需要对源代码的伪指令作修改, 然后用armelfgcc编译源文件,以生成可在目标板上运行的可执行程序。 (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视频解码嵌入式系统的实时实现。 随着人们对视觉媒体的要求越来越高,基于嵌入式系统视频解码技术将具有越来越广阔的前景。 |



