摘要:介绍一个基于StrongARM的视频数据采集处理系统。该系统将采集到的连续视频图像数据以MJPEG的方式压缩处理,然后由StrongARM进行打包处理,生成UDP包,向网络发送。视频服务器可以通过网络(局域网或广域网)获取视频采集器发送的图像数据,并对图像数据进行显示、存储、回放等管理,同时视频服务器也可以通过网络控制视频采集器上的摄像机及云台。该系统为实现远程实时监控系统,对监控数据的数字化管理以及视频网络传输等提供了解决方案,它以最新的MJPEG压缩方式使视频数据的管理更加方便可靠,并且使用Intel公司的StrongARM SA-1110高性能微处理器芯片作为处理平台,使得该系统具安装方便、配置灵活、便于携带等突出优点,具有很大的市场应用前景。
关键词:StrongARM 视频采集 MJPEG 嵌入式操作系统
数字视频监控系统与传统模拟监控相比,优点在于数字化的视频系统可以充分利用计算机快速处理能力,对其进行压缩、分析、存储和显示。数字视频监控系统更适合远距离传输。数字信息抗干扰能力强,不易受传输线路信号衰减的影响,而且能够进行加密传输,因而可以在数千公司之外现场实时监控。数字化视频处理提高了图像的质量与监控效率,系统易于管理和维护。整个系统是模块化结构,体积小,易于安装、使用和维护。正是由于数字视频监控具有传统模拟监控无法比拟的优点,而且符合当前信息社会中数字化、网络化和智能化的发展趋势,所以数字视频监控正在逐步取代模拟监控,广泛应用于各行各业[6]。
目前市场上已经投入使用的视频采集设备多以计算机插卡的形式存在。而本系统的前端视频采集设备使用的Intel公司的嵌入式处理器芯片StrongARM作为主体芯片,从而可以使其作为独立的单元存在,并且具有体积小、处理能力强且功耗低的特点。该系统为数字化视频监控提供了解决方案。本文简单介绍Intel的StrongARM SA-1110微处理芯片,详细介绍视频数据采集与处理端的硬件结构,公司运用该系统可实现网络实时监控系统设计方案。
1 Intel StrongARM SA-1110微处理器
1.1 SA-1110微处理器简介[2]
Intel公司的SA-1110是一款通用RISC微处理器。它将16KB的指令Cache、8KB的数据Cache、一个小型Cache、一个写缓存、一个读缓存、一个内存管理单元(MMU)集成在一个芯片中。它与ARM V4结构的处理器在软件上兼容,也可以使用一些支持ARM的芯片,如I/O、内存以及视频设备。
SA-1110芯片在PDA等手持计算机设备上有着广阔的应用,对于嵌入式操作系统和便携式系统,SA-1110是很好的选择。设计者可以在以SA-1110为平台的嵌入式操作系统上开发各种应用程序。
1.2 SA-1110微处理器系统
SA-1110配置了功能强大的外围逻辑电路,可以分为几个模块,如图1所示。
(1)内存和PCMCIA控制模块(MPCM)
支持ROM、同步掩膜ROM(SMROM)、Flash、DRAM SDRAM、SRAM、SRAM-like可变延迟I/O以及PCMCIA控制信号。
(2)系统控制系模块(SCM)
28个通用I/O端口、实时时钟、Watchdog及内部时钟、电源管理控制器,中断控制器、重启控制器、两个晶振(3.686MHz和32.768kHz)。
(3)外围控制模块(PCM)
6通道DMA控制器、LCD控制器、16550UART、红外串行端口(115kbps、4Mbps)、同步串行接口(USB1100、UCB1200、SPI,TI,μWire)、通用串行总线(USB)设备控制器。
1.3 SA-1110微处理器I/O管脚
SA-1110微处理器I/O管脚如图2所示。
2 基于SA-1110的视频数据采集与压缩系统
2.1 系统组成
本系统由一片A/D芯片(采用Philip公司的SAA7113)、一片MJPEG压缩芯片(采用ZORAN公司的ZR36060)、一片高速FIFO(采用IDT公司的IDT72V271LA)、一片逻辑控制芯片(Xilinx公司)及基于StrongARM SA-1110上的嵌入式操作系统(采用Intel公司的Assabet)组成。A/D芯片、MJPEG压缩芯片及FIFO要完成4路摄像头的输入转换、MJPEG压缩及数据缓存。CPLD控制中断请求及某些片选信号。A/D芯片和MJPEG压缩芯片的工作均由基于SA-1110的嵌入式操作系统完成。
本系统数据采集及处理框图如图3所示。
2.2 系统工作流程
模拟输入部分:摄像机将采集到的模拟数据发送到A/D转换芯片进行视频解码,模拟电路需要提供A/D转换芯片所需要的时钟频率24.576MHz,A/D转换芯片将用此频率来同步JMJPEG压缩芯片。模拟电路部分还包括对摄像机焦距和云台转向的控制电路。
视频压缩部分:MJPEG压缩芯片将A/D转换芯片输入的YUV格式的数据进行MJPEG格式的压缩。MJPEG由JPEG图像连接组成,相对JPEG图像每幅都有自己的量化表和Huffman码表。MJPEG可以仅使用一张量化表和Huffman码表对连续几十帧甚至上百帧图像进行压缩,仅当数据发生丢失时才需要重新载入量化表和Huffman码表。这一优点大大降低了系统视频解码时所需要的开销。而且,MJPEG可以分帧存储,这给数据的管理和回放来了方便[4]。
逻辑译码电路:逻辑译码电路需要完成中断请求的译码以及片选信号的译码,并提供降频的时钟信号等。
系统数据处理:当嵌入式操作系统启动时,首先对子系统供电,将视频采集系统的驱动程序载入设备管理器(Device Manager),然后由应用程序调用MDD层的初始化函数完成如下工作:
(1)通过I2C总线读写A/D转换芯片寄存器进行初始化;
(2)通过地址及数据总线对MJPEG压缩芯片进行初始化处理,装入压缩需要的量化表及Huffman码表;
(3)初始化逻辑译码电路。
初始化完成后,系统采集数据及通道切换都要通过中断请求来完成的。对于嵌入式操作系统来讲,此工作方式是合理的。因为基于SA-1110的嵌入式操作系统速度远远高于A/D转换芯片和MJPEG压缩芯片的工作速度,中断请求及中断服务不会给系统带来很大的负荷。系统采用A/D转换芯片和MJPEG压缩专用芯片进行视频数据处理,也就说对4台摄像机来讲,只能分时地占用这些资源,这就要靠嵌入式操作系统来完成对通道选择的控制及缓存数据的读取。
对A/D转换芯片来说,每完成一帧图像的转换,将输入切换到另一个摄像头上,开始接受下一个摄像头的模拟数据(这一功能由SA-1110对I2C类型的A/D芯片进行控制而实现[5])。因此它源源不断地传出轮流时分的4个摄像头的视频信息。MJPEG压缩芯片则仅仅负责将收到的原始数据进行压缩,并将结果写入缓存FIFO。
当子系统正常工作后,整个系统是中断驱动的。有如下两种中断:
(1)MJPEG芯片对一幅图片压缩完成
这意味着一路摄像机输入的图像已经完成。此时,系统会进行通道选择,将A/D芯片的输入切换到另一台摄像机上。这样,下一帧图像就是另一路摄像机输入的,从而完成了摄像机对A/D转换芯片的时分复用。这一操作通过I2C总线完成,通过对A/D芯片内部寄存器的修改,切换A/D模拟输入的通道。
(2)FIFO半满指示
这意味着缓存正等待操作系统将数据移走,以便新的数据存储。系统将通过数据总线将FIFO中的数据读入指定缓存。
至此,视频数据采集过程已经完成。接下来是对数据的处理,包括分辨数据源(摄像头)、UDP打包处理进行网络发送。这一过程也由嵌入式操作系统完成。远端的服务器可以通过调用函数对摄像头进行调焦、转向等控制。这一功能通过信令通道与嵌入操作系统之间通信来完成。远端的监控服务器将通过LAN或WAN收到的UDP数据进行处理、解码、显示、管理等。
3 本系统在网络监控中的应用
基于小型嵌入式操作系统的视频采集传输系统非常适合网络监控的应用。如果数字视频监控系统提供远程访问能力,这意味着世界上任何有通信线路的地方,用户都能够使用PC机,通过网络连接到他们的数字视频服务顺,从而选择观看到所需的视频图像。连接的网络既可是局域网也可是广域网,还可以是一个通过电话线的拨号网络。
这样的监控系统框图如图4所示。
本文介绍的基于StrongARM的视频采集和处理系统,采用MJPEG进行图像压缩编码,并使用基于SA-1110的嵌入式操作系统进行本地址数字处理并打包向网络发送,使得数字视频采集系统的所有功能都集成在一个小小的电子设备上。一根电话线、一根电源线、一个手持设备就可以组成一套完整的视频控制系统远端设备,不需要早前的视频采集卡等辅助设备与PC相连。集成度高、多路并行采集。这些特点使得本系统有广泛的应用前景.