基于AT2042的嵌入式网络视频监控系统的设计与实现

2012-04-25 05:52:04王小团
舰船电子对抗 2012年3期
关键词:音视频嵌入式服务器

王小团,罗 杰

(船舶重工集团公司723所,扬州 225001)

0 引 言

目前,应用于安防领域的视频监控设备是居民日常社会活动中的重要辅助设备,具有很大的应用空间。随着Internet技术和嵌入式技术的快速发展,嵌入式网络视频监控设备发展十分迅速。

针对嵌入式网络视频监控设备有几种解决方案,其中最主要的是软件解决方案和硬件解决方案。软件解决方案主要是利用数字信号处理器(DSP)加网络模块,但DSP视频处理算法实现比较复杂,系统开发周期较长,软件开发质量不能保证。硬件解决方案主要是利用音视频的硬件编解码芯片实现音视频的硬件编解码,这样开发周期中对于视频处理算法的开发将大大减少,项目开发周期将缩短;同时由于集成芯片的快速发展,芯片价格大大降低,降低了项目的开发成本。基于上述原因,硬件解决方案对于中小场合应用比较合适[1]。

本文论述的嵌入式网络视频监控系统采用硬件方案:专用音视频处理芯片对音视频进行硬件编解码,由嵌入式处理器进行相应的控制,可以满足高实时性、稳定性、快速处理、开发周期短的要求。本设计选用专用的音视频处理芯片AT2042和嵌入式处理器芯片ARM9-S3C2410以及网络芯片LAN91C111,基于B/S架构用以实现远程网络监控。该视频监控系统还具备监测运动图像和报警的功能。

1 系统硬件设计

该系统的硬件主要包括ARM控制芯片和音视频硬件编解码芯片AT2042。控制芯片使用三星公司的ARM9芯片S3C2410,主要完成系统总体的控制,包括完成对网络模块和AT2042的功能配置,用以实现视频的网络传输和编解码,完成对存储接口的配置,用以实现本地存储。AT2042主要用来实现对音视频的硬件编解码。

如图1系统硬件框图所示,该系统的硬件核心部分为ARM9芯片S3C2410和音视频硬件编解码芯片AT2042。TVP5150和SAA7121通过I2C总线和主控制芯片S3C2410进行通信[2]。模数转换芯片TVP5150负责把摄像头采集的美国彩色电视广播标准(NTSC)或逐行倒相制式(PAL)模拟电视信号转换为符合AT2042编码标准的数字视频信号,数模转换芯片SAA7121负责把经过AT2042解码的数字视频信号转换为可以在液晶显示器(LCD)显示屏上播放的模拟视频信号。网络连接芯片LAN91C11主要用来进行网络通信连接。

图1 系统硬件设计框图

本系统的主要创新之处就是利用了音视频编解码芯片AT2042对音视频进行硬件编解码。张菁等人的文章[3]提出AT2042具有以下的特点:

(1)支持动态图像专家组(MPEG)-1,MPEG-2,MPEG-4,H.263 和 M-JPEG 等多种视频压缩标准[4]。

(2)支持多种图像分辨率和帧速率,支持固定比特率(CBR)、不定比特率(VBR)2种码率控制方式。

(3)输入输出采用ITU-R 656/ITU-R 601接口标准,音频则采用脉冲编码调制(PCM)、串行数字音频总线协议(I2S)商用接口标准。

(4)自动运动侦测和帧扫描,运动侦测区域和灵敏度可选。

2 系统软件设计

该系统软件采取B/S架构,B/S架构分成两部分:浏览器端(Browser)和服务器端(Sever)[4],系统软件设计框图如图2所示。用户在浏览器(Browse)通过输入嵌入式网页服务器的IP地址便可以实现对嵌入式WEB服务器的访问,并由嵌入式WEB服务器来完成用户指令。

图2 系统软件设计框图

本嵌入式网络视频服务器的工作流程简单:系统的用户只需在WWW浏览器上输入嵌入式WEB服务器的IP地址,WEB服务器接到用户连接请求便反馈给浏览器1个ActiveX控件,用户在该控件上便可由嵌入式WEB服务器完成相应操作,如进行录像、抓拍、视频传输等。

该系统软件需要实现表1所示的技术参数以及配置相应的TCP/IP协议。技术参数包括:动态视频的 MPEG-1,2,4和图像 M-JPEG编码模式可选、编码的像素点为720×576(D1)、352×240(10万像素)可选,编码帧率每秒25帧及生成打包基本码流(PES)来对视频数据进行编码。

服务器需要完成的软件编写工作包括引导程序(Bootloader)的编写、Linux内核的移植与配置、应用软件的编写、网络通信的配置以及硬件系统中各个芯片的驱动程序设计等工作。本文主要介绍服务器端的应用软件设计、网络通信配置和运动报警检测等功能的实现。

表1 系统总体设计参数及相应的CP/IP协议

2.1 多线程程序设计

本设计应用程序采用多线程设计。用户应用程序不但要及时地把监控区域的最新视频图像反馈给浏览器,对视频监控对象的运动检测报警,对视频监控对象抓拍;还要处理客户端与服务器之间的通信,对云台、摄像头的实时控制以及对视频文件的一系列处理(上传,保存)等任务。这时,仅仅由单个线程来完成所有任务,显然无法满足监控系统的实时性要求。为此,本系统采用多线程机制,各线程分别负责完成不同的任务[5]。系统软件的多线程程序设计框图如图3所示。

图3 系统软件的多线程程序设计框图

视频传输线程主要完成动态视频从服务器端到客户端的实时传输,图像的传输线程主要完成抓拍图片从服务器到客户端的实时传输。同时,由读取子线程和发送子线程分别完成视频和图像数据的读取和发送。

本系统主要是在局域网中实现实时监控功能。为了监听到从网上发来的连接请求,服务器必须先建立一个监听套接字,端口号是SERVER_PORT;然后建立一个线程用于等待用户连接并传输视频数据。在视频传输线程中,服务器首先等待客户的网络连接请求,服务器接受客户连接后,会为该客户创建一个线程来专门与这个客户端进行视频数据传送,这样使服务器可以同时与多个客户端进行数据传输,从而提高效率。当传输线程启动后,这个线程将负责把视频数据发送给用户。

配置线程主要用来实现系统参数的配置以及控制参数的配置,包括传输比特率、视频或图像的编码模式以及视频分辨率等、服务器要实现哪种操作(比如远程录像、远程抓拍、云台操作等)。

2.2 网络通信的实现

网络通信主要由socket套接字实现,socket套接字实现服务器与浏览器通信。本视频服务器的视频和图像传输是面向无连接的,配置该服务器的socket时,socket客户端通过调用connect函数在socket数据结构中保存本地和远端信息。无连接的socket的客户端和服务端通过调用bind函数来配置本地信息。在配置系统参数时使用面向连接的socket套接字,用于保证系统参数配置的安全准确。

该嵌入式网络视频监控系统利用传输控制协议/网际协议(TCP/IP)协议簇,在传输层对于实时视频播放本系统选用面向无连接的用户数据协议(UDP),可以保证数据量较大的视频能够实时播放;对于客户端的控制指令等参数本系统选用面向连接的TCP协议,可以保证控制指令安全准确完成。

应用层协议包括实现嵌入式网络服务器的越文本传输协议(HTTP)、用于远程调试的远程网络访问协议(TENLENT)以及用于远程下载监控视频的文件传输协议(TFTP)。

2.3 视频录像软件实现

本系统可以实现远程视频录像操作,用户通过在客户端操作ActiveX控件上的相应指令,能实现动态视频的远程录像。当用户点击录像按钮时,WEB服务器接收到该指令,便开启AT2042的编码功能,设置AT2042的相关参数,配置相关寄存器,实现相应的编码模式、编码像素点等设置,然后从Mux FIFO读取编码数据,存入到系统存储模块中(系统存储模块由S3C410的USB接口实现)。本设计还可以实现远程的录像存储,通过在嵌入式WEB服务器安装FTP服务器,远端用户可以在PC机上通过该FTP服务器来调用存储的视频文件和图像文件。

为了方便用户日后回放录像文件,本设计采取文件分段的方法来保存视频文件,并以系统时间来命名。每隔30 min对所录视频进行存储1次,并调用系统函数time,timelocal获取系统时间,按照系统时间命名该段视频文件[6]。对于动态视频文件,本设计采用“.VIDEO”为结尾来命名该视频文件,对于抓拍的静态图像文件,本设计采用“.PICTURE”为结尾来命名该图像文件。

2.4 运动图像检测报警软件实现

音视频编解码器AT2042有自动运动侦测和帧扫描、运动侦测区域和灵敏度可选的功能。本设计为了满足对于无人值守的区域或者时间段内的监控报警需求,可以选择是否开启AT2042的运动检测报警功能。

AT2042提供的硬件运动检测算法不仅考虑了亮度在相邻框架内的差异,也考虑了实际移动向量。它提供了非常精确的运动甚至很多噪音视频上的检测。为了满足不同的运动检测强度等特点(如不同的视频情况和不同的应用系统),它还提供实际用户可以调整的运动检测(除I-VO和P-VOP以外,BVOP等共5个)灵敏度参数。它们可以调整为每个通道的独立通道编码。用户可以为每个通道设置独立运动检测区和灵敏度参量。

本系统利用AT2042的运动检测可以实现控制视频录像存储的功能。当开启运动检测时,如果系统检测区域没有出现运动的物体,即无法启动运动报警信号,这时AT2042不会开启视频编码,不会存储相应时间段内的视频。当出现运动物体时,系统会自动发出运动物体报警信号,该信号通知AT2042开启视频编码功能,同时开启视频存储功能。

运动检测报警功能的工作流程图如图4所示。首先WEB服务器设置监测区域和灵敏度等参数,当检测区域内没有出现运动物体时,视频信号编码后暂时存放在缓冲区中;当系统检测到运动物体进入检测区域后,系统发出报警信号,同时将缓冲区中的视频信号存入到存储模块中;当运动物体离开检测区域时,系统停止存储缓冲区中的视频信号。

3 结束语

在PC监控端输入视频服务器的IP地址,通过网络在服务器上下载Active X控件后,显示如图5所示的界面。由画面可得,网页上视频播放较为流畅,实现了720X576的分辨率和25帧每秒的播放速度,如图5 IE浏览器上网络视频播放界面所示。

图4 运动检测报警的流程图

图5 IE浏览器上网络视频播放界面

[1]何腆举,陈明,段磊强,等.基于嵌入式web服务器的远程视频监控系统[J].测控技术,2007,23(6):62-64.

[2]汪庆年,李桂勇,元美玲.基于S3C2410网络视频监控系统的设计与实现[J].安防科技,2008(1):26-27.

[3]张菁,周德新,郝福珍,曾宏磊.基于AT2042的网络视频服务器的设计与实现[J].安防科技,2007(2):42-46.

[4]刘伟峰,唐晓英.基于以太网的嵌入式视频监控系统[J].电视技术,2007(6):79-81.

[5]周良忠.C++面向对象多线程编程[M].北京:人民邮电出版社,2003.

[6]张石,赵百超,王飞,李万.具有远程监控功能的视频服务器设计[J].安防科技,2009(10):17-20.

猜你喜欢
音视频嵌入式服务器
通信控制服务器(CCS)维护终端的设计与实现
3KB深圳市一禾音视频科技有限公司
WIFI音视频信号传输的关键问题探究
电子制作(2018年12期)2018-08-01 00:48:06
搭建基于Qt的嵌入式开发平台
高速公路整合移动音视频系统应用
嵌入式软PLC在电镀生产流程控制系统中的应用
电镀与环保(2016年3期)2017-01-20 08:15:32
得形忘意的服务器标准
知识产权(2016年8期)2016-12-01 07:01:13
计算机网络安全服务器入侵与防御
Roland专业音视频新技术研讨会在上海召开
声学技术(2014年1期)2014-04-08 20:25:22
Altera加入嵌入式视觉联盟