新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM9的视频采集传输系统

基于ARM9的视频采集传输系统

作者:时间:2012-11-10来源:网络收藏
引言

  随着多媒体技术及宽带网络传输技术的发展,作为远程视频监控、可视电话会议和工业自动控制领域的一项核心关键技术,近年来也得到了飞速的发展。本文所提出的系统是在新一代基于26EJ-S微处理核的嵌入式开发平台上进行的,并将国际上流行的MPEG-4压缩编解码技术和流媒体传输技术相结合。该系统具有较强的实时性、可交互性及便携性。

1 系统开发硬件平台

  本设计采用的开发平台是Freescale i.MX家族的MC9328MX21,作为整个系统的核心微处理器,其26EJ-S核提供了加速的Java支持和高度整合的系统功能模块,如片上模块包括图像加速模块、LCD控制器、USB控制模块、CMOS传感器接口及同步串口等,为开发者进行多媒体应用开发提供了丰富的外围接口。核心板上集成了64MB SDRAM以及16MBFlash存储器,底板资源包括4个四线RS-232串口、1个10 Mbit·s-1/100 Mbit·s-1自适应以太网接口及音设备,为系统设计时的交叉编译及多媒体数据的处理提供了方便。

  系统的关键外围设备、视频数据的采集所使用的CMOS图像传感器OV9640,与传统的CCD图像传感器相比,具有功耗低、体积小、集成度高等优点,并且OV9640支持VGA、QVGA、CIF等多种解析度,支持的数据格式包括YCrCb 4:2:2、GRB 4:2:2和RGB:RawData这3种,图像帧传输速率达30帧/s。传感器通过CSI模块进行图像数据的采集,然后通过专用总线传输至PRP(eMMA Pre-processor),在PRP中调整图像大小并转换成合适的颜色空间。PRP的输出分成2个通道,通道1输出RGB565格式数据作为LCD的显示,通道2输出YUV420格式数据进行MPEG或者JPEG编码。

  在两者连接中,各模块端口的作用分别是:CSI端口为传输图像数据;I2C端口为配置传感器;GPIO为控制传感器。

  MC9328MX21的CSI模块有一个8位输入端口,如果传感器的传输超过8位数据,图像传感器通常作为从设备通过I2C端口控制。底层的协议是I2C,高层的协议则由传感器确定。在这里,图像传感器的主时钟由MC9328MX21提供。

2 系统的软件系统设计

2.1 搭建交叉编译环境

  由于嵌入式系统选用的是开源的基于ARM微处理器的系统内核ARM-Linux,而在开发板上没有足够的资源运行开发调试工具,所以必须首先搭建好交叉编译调试环境。首先,需要通过在编译时指定target=arm-linux生成适合ARM平台的binutils,它包括了ld、ar和as等一些生成和处理二进制文件的工具。然后,编译生成GCC(GNU Compiler Collection),它能够支持多种高级语言,如C,C++等,需要注意的是,在编译GCC时需要ARM-linux内核头文件的支持,所以首先需要配置内核#make menuconfig ARCH=ARM来生成对应ARM内核的头文件,这样就可以在配置编译GCC时通过with-headers选项指定编译所需头文件。最后,还需要编译生成许多用户层应用都要用到的函数库glibc,所有动态链接的程序都要用到它,在编译时需要注意的是打开--enable-add-ons选项,这个开关将打开glibc的附加包,因为我们需要用到linu-xthreads。这样,一个嵌入式ARM-linux下的交叉编译环境就已搭建成功。

2.2 编译制作内核及文件系统

  通过make menuconfig配置内核选项,其中的一些关键设置包括指定System Type时打开26T CPUidle、I-Cache 0n和D-Cache,并且由于在进行应用软件开发时需要ARM-linux内核支持frame buffer技术,所以还需要打开Console drivers中的Frame-buffer sup-port。然后,make boot就可以编译生成定制好的内核映像文件Image,将制作好的系统内核和文件系统通过宿主机的TFTP服务烧写进开发板的Flash存储器。这样就完成了板上可独立运行的操作系统的设计。

2.3 视频数据的采集、编码和传输的实现

  这部分的工作是整个设计的核心。MPEG-4在1999年初正式成为国际标准,与之前的标准相比,它更加重视多媒体系统的交互性和灵活性,主要针对视频会议、可视电话的超低比特率编码等多媒体应用。目前在嵌入式系统中,MPEG-4编解码主要都是通过专用芯片实现的,其实现方法与MPEG-1、MPEG-2的硬件实现方法类似,将编码算法固化在芯片的硬件电路中,所以导致它在使用中存在以下缺点:

  a) 性价比不高。由于现在MPEG-4编码技术还在不断发展中,还没有一个真正成熟的算法支持,所以市场上推出的MPEG-4编码芯片都是在标准基础上进行了修改和简化,在性能上与H.263等编码芯片上没有明显的优势,所以其性价比不高。

  b) 可移植性差。由于各厂商所生产的编码芯片都在固化时加入了自己对编码算法的改进和优化,所以在解码端必须使用对应的专用解码器,这就导致出现了兼容性的问题。

  c) 无可扩展性。随着对MPEG-4编解码标准的研究,必然提出许多新的算法及对原有算法的改进,但是现有的MPEG-4编码芯片已将已有的算法固定在了芯片硬件电路中,所以无法方便地在芯片上进行算法的修改及扩展。

  所以在设计该系统时,主要采用了软件实现其编解码,在嵌入式系统中采用软件实现编解码,可以弥补硬件编解码上的诸多不足,而且便于对算法本身进行研究和改进。但是,也需要考虑几个问题:首先,由于MPEG-4编码算法运算量复杂,而嵌入式系统的资源有限,所以必须考虑所选平台微处理器的运算能力;其次,在编码软件及数据采集硬件的接口部分,由于需要针对不同的采集硬件,所以需要做许多汇编级的优化。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭