嵌入式微处理器环境下视频流的采集与传输

2014-06-05 09:51陈琳英凡德刚
实验科学与技术 2014年5期
关键词:内存嵌入式摄像头

陈琳英,凡德刚

嵌入式微处理器环境下视频流的采集与传输

陈琳英,凡德刚

(太原科技大学 应用科学学院,太原 030024)

提出了一种基于嵌入式技术的网络视频监控系统实现方案。系统以嵌入式Linux操作系统和嵌入式S3C2440微处理器为核心平台,建立基于TCP/IP协议的视频服务器,将摄像头采集来的图像数据压缩为MPEG-4视频流后,经过网络传输,完成对监控现场的网络视频监控任务。

Linux操作系统;S3C2440微处理器;视频监控;嵌入式

伴随着计算机技术、图像处理技术和网络技术的发展,出现了新型的基于嵌入式技术的有线网络数字视频监控系统。嵌入式系统是以应用为中心,软硬件可裁减的,具有高可靠性、低成本、严要求、综合性强的专用计算机系统。它主要由嵌入式微处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成。系统可以提供友好的用户接口,采用多级权限控制,定制用户组,授权用户再进行相应操作。用户还可以通过浏览器访问,实时监控音/视频信号、查看视频设备状态等[1-3]。

嵌入式网络视频监控设备可以直接接入网络,没有线缆长度和信号衰减的限制,避免了地域的限制,扩展了布控区域。所有设备都以IP地址进行标识,增加设备只是意味着扩充IP地址,所以说,嵌入式网络视频系统具有无限的无缝扩展能力和远程视频传输能力。因此,基于嵌入式技术的网络视频监控系统有着良好的应用发展前景,它代替当前普遍应用的基于PC的网络视频监控系统将成为必然趋势。

1 系统总体方案设计

结合网络通信技术和视频处理技术,开发一套基于ARM的网络视频监控系统[4-5]。系统由前端数码摄像头、视频服务器和远程监控端构成。视频监控系统采用基于ARM9的S3C2440微处理器,通过在处理器上运行Linux操作系统,构建嵌入式服务器,接受来自摄像头的视频流,进行压缩编码,再传送实现监控图像到目标用户。用户即可获得服务器发来的音、视频文件,并可根据权限实现播放及录制功能等。系统整体结构如图1所示。

图1 系统硬件结构图

2 系统硬件平台的设计

硬件的主体采用友善之臂公司的MINI2440开发板,该板采用了三星公司的S3C2440处理器,并采用稳定的CPU内核电源芯片和复位芯片来保证系统运行时的稳定性。处理器内部集成了arm920t处理器核,采用0.18μrn制造工艺的32位微控制器,五级流水线和哈佛结构,提供1.1 MIPS/MHz的性能,主频高、功耗低、集成度高,技术成熟,广泛应用于很多嵌入式产品,领域资源丰富。带独立的16 KB的指令cache和16 KB的数据cache、LCD控制器、RAM控制器、NAND闪存控制器、3路UART、4路DMA、4路带PWM的timer、并行I/O口、8路10位ADC、Touch Screen接口、I2C接口、I2S接口、2个USB接口控制器、2路SPI,主频最高可达533 MHz。在此基础上,开发板还配备了64 MB SDRAM、64 MB NandFlash、2 MB Nor Flash、1个100 MB以太网RJ-45接口、1个USB Host、1个USB Slave B型接口、1个2.0mm间距10针JTAG接口。通过USB接口外接一个网眼摄像头,将采集到的图像数据输入缓冲区,通过视频采集程序对缓冲区的视频数据进行JPEG压缩后进行网络传输至客户端。系统硬件框图如图2所示。

图2 系统硬件框图

3 系统软件的实现

本嵌入式视频监控系统软件主要由通信协议、服务器程序和客户端程序构成,如图3所示。

图3 视频监控采集软件结构框图

1)通信协议。主要用于负责向客户端传输来自服务器的音、视频数据。能够将摄像头获取的图像属性,如对比度、分辨率等信息传递给客户端。通过协议客户端能够控制服务器摄像头改变采集的图像属性。

2)服务器程序。主要包括视频采集模块、视频传输模块及摄像头驱动程序,实现基于多线程的循环服务器。整个视频采集服务流程如图4所示。

系统中,数据采集层通过嵌入式Linux操作系统调用Video4Linux(V4L)和底层设备驱动程序来完成视频捕获,对于获取到的视频图像,通过视频压缩模块压缩成MPEG-4视频流,再通过视频传输模块把数据发送到以太网进行传输。V4L是Linux中关于视频设备的内核驱动。它为Linux下的各种视频设备提供了统一的编程接口,应用程序通过这些接口函数就可以操纵各种不同的设备。视频数据采集模块工作原理如图5所示。

图4 视频采集服务流程图

图5 数据采集模块工作原理

(1)打开视频设备。Linux下的视频设备文件一般为“/dev/video0”,通过调用函数v4l-open(),利用vd->fd=open(“/dev/video0”,O-RDWR)打开设备并获得设备文件描述符vd->fd。

(2)获取设备和图像信息。通过void queryvideo-device(void)函数获取设备信息。

(3)内存映射。获取图像的方式有两种:read()直接读取和mmap()内存映射。直接读取方式通过内核缓冲区来读取图像数据;而本文使用内存映射方式mmap(),可以直接把设备文件映射到内存中,进程可以像访问普通内存一样对文件进行访问,读取效率更高。初始化内存映射时,需在内存中开辟一块空间,利用ioctl(vd->fd,VIDIOCGMBUF,&(vd->mbuf))操作取得需要映射的内存空间大小vd->mbuf.size,利用mmap()函数,即vd->map=(unsigned char*)mmap(0,vd->mbuf.size,PROT-READ|PROT-WRITE,MAP-SHARED,vd->fd,0)操作,把设备文件的内容映射到内存,vd->map指针所指向的内存区即为采集的图像数据,且此内存区具有可读写和共享属性。

(4)初始化采集参数。设置采集视频图像的宽度、高度、格式等信息。

(5)采集视频数据。利用ioctl(vd->fd,VIDIOCMCAPTURE,&(vd->mmap))操作采集一帧图像并存放到内存映射区,采集一帧图像后要进行同步操作,利用ioctl(vd->fd,VIDIOCSYNC,&(vd->frame-current))操作判断该帧图像是否获取完毕。对于获取到的视频图像,通过视频压缩模块压缩成MPEG-4视频流,再通过视频传输模块把数据发送到以太网进行传输。

图像传输层是基于TCP/IP协议下的数据通信。应用层通过自定义通信协议与客户端进行通信,根据命令行参数初始化摄像头图像属性。

3)客户端程序。其传输层也是在TCP/IP协议下进行通信;应用层通过自定义通信协议与服务器进行通信。用户界面是基于Gnome桌面环境,利用QT进行开发的。

4 测试结果与分析

使系统各硬件连接完好,启动电源,加载驱动,确保USB驱动和摄像头驱动正常工作,测试分析结果如表1所示。监控系统启动后,即可在主机端看到获取的视频图像。结果表明,基于ARM9 S3C2440的数字视频监控系统对捕获的视频帧编码效果良好,满足监控系统要求。

表1 视频监控系统测试分析表

5 结束语

文本提出的基于ARM9的数字视频监控系统以嵌入式Linux和嵌入式微处理器S3C2440为核心平台,利用V4L2底层进行视频采集,经过jpeglib图像压缩编码后进行流传输,客户端通过QT开发的界面进行显示,同时用于控制摄像头。

实验测试结果表明,该系统对捕获的视频帧编码效果良好,且具有成本低、功耗小、可扩展性强、操作简单等特点,适于住宅小区、商场、银行、电梯等公共场合的使用与推广。

[1]田俊.基于ARM的移动视频监控系统的实现[D].武汉:华中科技大学,2006.

[2]刘宇.基于ARM9的嵌入式可视电话终端的设计与实现[D].大连:大连理工大学,2006.

[3]张先翔.基于ARM的嵌入式远程视频监控系统的设计[D].武汉:武汉理工大学,2010.

[4]王田苗.嵌入式系统设计与实例开发[M].北京:清华大学出版社,2002.

[5]甘泉,杨健,陈永泰.ARM处理器启动代码的分析与设计[J].电子产品世界,2004(10):118~120.

Acquisition and Transm ission of Video Streams on Embedded M icroprocessor

CHEN Linying,FAN Degang
(College of Applied Science,Taiyuan University of Science and Technology,Taiyuan 030024,China)

This paper proposes an implementation scheme of network video surveillance system based on embedded technology.System is based on embedded Linux and embedded microprocessor S3C2440 as the core platform,the video server is based on TCP/IP protocol established by the embedded platform,and the image data are collected by the USB camera to compression.Through the network transmission,the network videomonitoring control task has been completed.

Linux operation system;S3C2440 microprocessor;videomonitoring;embedded

TP368.1;TP273

A

10.3969/j.issn.1672-4550.2014.05.007

2013-12-04

山西省基础研究基金资助项目(2012021014-3)。

陈琳英(1976-),女,博士,副教授,研究方向:光纤通信、光纤传感技术。

猜你喜欢
内存嵌入式摄像头
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
“春夏秋冬”的内存
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
内存搭配DDR4、DDR3L还是DDR3?
奔驰360°摄像头系统介绍
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器
基于内存的地理信息访问技术