您的位置首页>企业动态>

基于嵌入式Linux视频的网络监控系统设计详解

导读大家好,我是极客范的本期栏目编辑小友,现在为大家讲解基于嵌入式Linux视频的网络监控系统设计详解问题。随着计算机技术和网络技术的飞速

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解基于嵌入式Linux视频的网络监控系统设计详解问题。

随着计算机技术和网络技术的飞速发展,公安安全行业的发展趋势必然是全面数字化和网络化。传统的模拟闭路电视有很多局限性:传输距离有限,无法接入互联网,存储模拟视频信号数据会消耗大量存储介质(如录像带),查询取证非常繁琐。

基于个人电脑的视频终端功能强大,但稳定性不好。视频前端(如视频信号采集、压缩、电压耦合元件通信)复杂,可靠性不高。嵌入式基于视频的网络不需要个人电脑处理模拟视频信号,而是在视频服务器中内置嵌入式Web服务器,采用嵌入式实时多任务操作系统。

由于将视频压缩和Web功能集成到一个小设备中,可以直接连接局域网,即插即用,节省复杂度,安装方便(只需要设置一个IP地址),用户不用安装任何硬件设备就可以用浏览器观看。

嵌入式视频网络监控系统将嵌入式系统连接到Web,即视频服务器有一个嵌入式Web服务器,摄像头传输的视频信号经过高效压缩芯片数字化压缩后,通过内部总线传输到内置Web服务器。

1.系统的总体框架

嵌入式Linux视频网络监控系统是电气电子设备、计算机软硬件、网络和通信的有机结合。它的特点是智能化、网络化、交互性,结构相对复杂。如果采用OSI七层模型的内容和形式,将相应的数据采集控制模块硬件、应用软件和应用环境有机结合,就可以形成统一的整体系统框架。

摄像机传输的视频信号经过数字化后进行压缩,数据通过/发送到内置的Web服务器。嵌入式LJnux系统的10/以太网端口接入网络,直播信号发送给客户端。整个系统的核心是嵌入式Linux系统。监控系统启动后,嵌入式Linux系统启动Web服务程序,接收授权客户端浏览器的请求,Web将根据通信协议完成相应的监控。

2.系统实现

2.1硬件平台设计

该系统基于开放的嵌入式Linux源代码,根据设计的嵌入式目标板编写相应的Bootloader程序,然后裁剪出合适的内核和文件系统。平台CPU采用公司生产的ColdFire嵌入式处理器MFC5272。MFC5272采用ColdFire V2变长处理器内核和DigltalIDNA技术,可实现63Dlnrystone2.1MIPS的时钟下出色处理能力。

内部SIM(IntegratedModule)单元集成了丰富的通用模块,仅几个外围芯片就可以实现两个串口和一个USB Slave接口。MFC5272还嵌入了一个FEC(快速以太网控制器),并扩展了一个LXT97l芯片,方便地实现了100/10 BaseT以太网接口。它可以与常用的外围设备(如收发器)无缝连接,从而简化外围电路的设计,降低产品成本、体积和功耗。

2.2软件设计和实施

软件的结构采用浏览器/服务器(B/S)网络模式,即客户端通过Web向服务器发出请求,服务器响应请求并执行相应的任务(如发送组播地址、图像格式、压缩格式等)。).连接建立后,可以在客户端对受控点进行监控,从而实现远程网络监控。服务器(Web Servei)站点监控点的软件结构包括采集模块、压缩编码模块、网络通信模块、控制模块等。

2.2.1视频采集模块的设计

因为摄像头获取的视频信号是模拟的,不能直接被电脑使用。因此,为了在互联网上传输视频,我们必须首先将其数字化。该系统使用的视频采集卡是公司的Bt848卡,不需要任何本地缓存来存储视频像素数据,还可以充分利用PCI总线系统的高带宽和固有的多媒体功能,可以与多媒体设备进行互操作。

在整个系统中,由于视频采集的速度通常高于应用软件采集和处理数据的速度,为了保证视频数据的连续性,采用了三缓冲结构。缓冲区A是Bt848视频采集的目标地址,在指令的直接控制下,采集的数据先存储在这个缓冲区。b和C组成乒乓结构,循环使用。当收集到某一帧数据时,会产生一个中断。在中断服务程序中,缓存A中的数据被复制到缓存B(或C),然后收集下一帧。采集到下一帧数据后,将缓存A中的数据复制到缓存C(或B)中,当应用程序需要数据时,从缓存B或C中读取最新的帧图像。缓存B和C交替使用,可以

保证应用程序从缓存读数据的操作和驱动程序向缓存写数据的操作不会发生冲突,避免了数据的损坏和迟延。

2.2.2 视频压缩编码的设计

本设计选用了基于对象的视频编码技术,首先对输入的任意外形的VOP序列,用基于块的混合编码技术编码。处理顺序是先帧内VOP,后帧间VOP和双向猜测VOP。

在对VOP的外形信息编码之后,取得任意外形VOP的采样,每个VOP用宏块栅格划分成不相交的宏块,每个宏块含有四个8×8的像素块,以进行运动估计和补偿及纹理编码。已编码的VOP帧保存在VOP帧存储器中。运动向量在当前VOP帧和已编码VOP帧之间计算。对将被编码的块或宏块,计算其运动补偿猜测误差。运动补偿猜测后的I-VOP及误差用8×8块DCT编码,并进行DCP系数的量化,然后是行程编码和熵编码。

最后,外形、运动和纹理信息复合成VOL位流输出。这种编码方法可以答应用户修改、增加或重定位一个视频场景中的对象,甚至可以转换场景中对象的行为。对于不同的带宽和计算复杂性需求,不必针对每种情况分别编码,可以使用同一个视频位流,而采用不同的参数以选择不同的层以获得灵活性。在出现网络拥塞、丢包等现象时仍能提供连贯性较好的视频图像。视频压缩编码进程将编码后的的视频存放到已编码视频缓冲队列中,同时激活或等待直播进程和存储治理进程的相应处理。

2.2.3 网络通信模块设计

网络通信模块是系统的主体部分,它包含三个数据通道:监听通道、控制通道和视频数据通道。监听通道用来传输控制前端设备的命令数据;视频数据通道用来传输各个组的视频数据。三个通道采用不同的通信端口,所以各个通道传输数据彼此独立。网络通信模块设计开发是通过网络编程接口(Windows ,简称Winsoek)来实现的。按照系统浏览器,服务器的阿络传输模型。在服务器端建立了以为类型的监听套接字、控制套接字;在客户端建立了类型的请求套接字、控制套接字,这些都是采用ICP协议封装传输数据的。 ARM开发论坛

另外,在服务器和客户机两端都用到了一个组播类(CMuhieast),它是专门为视频传输而封装的类。由CObject派生而来,其中定义了以类型的收发视频数据的套接宇和组套接字,从而实现了用组播通信方式来传输UDP协议封装的视频数据包。系统中IP网络数据通信流程如图3所示。

下面给出在服务器端建立监听套接字和控制套接字的程序。

int ret="O"

BOOL bFlag="TRUE"://设置套接字为可重用端口地址

ret=setsoekopt(IInfo.listen,SOL_SOCKET,SO_REUSE

ADDR,()*&bFlag,sizeof(bFlag));

SOCKADDR_IN sockAddr;

*addr=severaddr.GetBuffer(0); //定义监听套接字 字串4

sockAddr.sin_family=AF_INET;

sockAddr.sin_addr.S_un.S_addr = inet_addr(addr);

sockAddr.sin_=htons()

if((IInfo.1istenSoeket,(LPSOCKADDR)

2.2.4 控制模块设计开发

控制模块实现了用户对前端设备如、和画面切换的控制。服务器在接收到由客户中心监控终端发送过来的控制信息帧后,对其进行判定解析,并送入各个相应的控制部件接口,以实现相应的控制。

3、实验结果

将的web服务器连接到局域网,然后接入Intemet,给web服务器分配一个IP地址。在用户终端,由于使用普通的浏览器只能显示单画面,很不方便,使用微软公司的VC6.0配合微软的浏览器控件,只需几分钟就可完成一个多画面的浏览器软件。在浏览器的地址栏中直接输入视频服务器的地址,即可在浏览器页面中播放远程实时稳定、流畅的图像,取得了良好的监控效果。

基于嵌入式Linux视频的网络监控系统的Web服务器直接连入网络,没有长度和信号衰减的限制,同时网络是没有距离概念的,彻底抛弃了地域的概念,扩展了布控区域。又由于视频压缩和Web功能集中到一个体积很小的设备内,直接连入局域网或广域网,即插即看,系统的实时性、稳定性、可靠性大大提高,无需专人治理,非常适合于无人值守的环境。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。