嵌入式视频监控系统的设计方法

文档序号:9330925阅读:466来源:国知局
嵌入式视频监控系统的设计方法
【技术领域】
[0001]本发明涉及一种嵌入式视频监控系统的设计方法,属于视频监控技术领域。
【背景技术】
[0002]视频监控系统对于保障人们日常生产和生活具有重要意义,在国民经济的各个领域均有广泛的应用。视频监控不仅应用于军事、银行、通信、电力、水利、交通等重要部门的监视和报警,而且在博物馆、商场超市、智能小区、家庭用户和大型仓库等日常生活环境中,也是必不可少的监管和控制设备。
[0003]视频监控系统目前已经成为安全防范体系中的一个重要组成部分,它通过固定摄像机直接观看被监视场所,可以把监视场所的图像和声音内容通过通信线路传送到监控中心。同时,视频监控系统还可以与防盗报警等其他安全防范体系联合运行,使得该监控系统的安全保障能力更加强大。先进的视频监控系统通常以计算机技术为核心,综合多媒体技术、网络通信技术、数字图像压缩技术,并且与信息管理系统融合在一起,形成一个有机而完整的现代化远程视频监控系统。
[0004]现有技术中视频监控系统存在的不足之处在于:现有视频监控系统的PC软件设计应用比较广泛,而嵌入式视频监控系统设计仍有较大发展空间。嵌入式视频监控系统的服务器端如果设计精简,可以广泛应用于智能农业、工业以及军事等领域,可将监控范围扩展至大规模无人地带。目前视频监控系统设计在这方面的应用较少,系统设计比较复杂,无法做到小型嵌入式系统设计;同时,由于视频压缩方式选择大部分不是开源的,导致生产成本较高。

【发明内容】

[0005]本发明的目的在于针对现有技术中的不足,提供一种嵌入式视频监控系统的设计方法,可应用于实际监控环境中,还能为视频信号分离算法和传输方案提供一个理想的实践验证平台,具有效率高、功能强大、设计成本低等优点。
[0006]为达到上述目的,本发明所采用的技术方案是:嵌入式视频监控系统的设计方法,包括服务器端设计和PC客户端设计,
[0007]所述服务器端设计包括如下步骤:
[0008]步骤101:初始化设备并配置网络数据帧的空间和视频压缩帧的大小;
[0009]步骤102:采用socket编程实现视频数据的网络接收和网络发送;
[0010]步骤103:基于Video4Linux的API进行编程,采用内存映射方式采集视频图像,并测试是否正确采集视频图像,若是,则进入步骤104 ;否则,返回步骤101 ;
[0011]步骤104:设置视频采集的参数,将videodev的对象设置为全局变量,作为两个线程的共享资源;
[0012]步骤105:为服务器端创建两个并行的线程,分别为:用于采集处理的视频采集线程和用于网络传输的服务线程;视频采集线程创建完成后,判断是否退出视频采集线程,若退出则进入步骤106,否则循环运行视频采集线程;服务线程创建前,先打开socket,将本地IP绑定端口号,实时监听是否有PC客户端需要进行网络传输,若有PC客户端需要进行网络传输,则建立网络连接;服务线程创建完成后,判断是否退出服务线程,若退出则进入步骤106,否则循环运行服务线程;
[0013]步骤106:判断是否有其他线程在工作,若有则进入等待,否则直接结束退出;
[0014]所述PC客户端设计包括如下步骤:
[0015]步骤201:建立socket连接,测试该连接是否能正确传输数据:若数据传输正常,就先发送PC客户端的控制命令帧;
[0016]步骤202:开始读取网络数据帧,接收压缩视频流;
[0017]步骤203:判断PC客户端软件是否为保存命令,若是保存命令,则将视频流保存到文件中,执行结束命令;若不是保存命令,就进入实时视频播放阶段,将视频流放入缓冲区,并进入下一步;
[0018]步骤204:判断缓冲区的视频帧是否可解码:若是,则采用XviD解码器进行解码,最后由SDL程序播放实时视频图像;若否,则返回步骤203继续将视频流放入缓冲区,直至可以解码,播放实时视频图像,最后执行结束命令。
[0019]步骤105中视频采集线程的创建步骤如下:
[0020]步骤a)捕获视频帧数据,判断当前网络数据帧是否正在发送,若是,则循环等待,否则将线程互斥锁上锁;
[0021]步骤b)采用XviD编码器对视频帧数据进行压缩,并将压缩后的数据放到网络数据帧中,等待发送;
[0022]步骤c)将线程互斥锁解锁,变换数据帧序列,准备下一次视频图像的采集和压缩。
[0023]步骤105中服务线程的创建步骤如下:
[0024]步骤i)服务线程接收PC客户端发送来的控制命令帧,并且根据控制命令帧设置米集参数;
[0025]步骤ii)查看线程互斥锁是否上锁,若已经上锁,则进入循环等待程序;若没有上锁,则将当前序号的数据帧上锁,即设置framelocktframeout] = 1,进入网络数据帧发送流程;
[0026]步骤iii)网络数据帧发送后,将当前序号的数据帧解锁,即设置framelock [frameout] = 0,准备下一帧的网络发送。
[0027]与现有技术相比,本发明所达到的有益效果是:采用XviD进行编解码,效率高、功能强大,且XviD是免费共享的资源,可在官方网站上直接下载使用,有利于降低嵌入式视频监控系统的设计成本;由SDL程序播放实时视频图像,编程简单、稳定、灵活,相比于Directshow具有更好的兼容性和可移植性;服务器端设计精简,可以制作出多个小型的嵌入式服务器端,通过无线方式传输,达到大规模范围的监控效果;采用本发明方法设计的嵌入式视频监控系统可以广泛应用于智能农业、军事等领域,监控范围较普通视频监控系统可扩展范围更大,也可以与传感器结合,进一步拓展了其与智能物联网结合的兼容性。
【附图说明】
[0028]图1是嵌入式视频监控系统的服务器端的工作流程图。
[0029]图2是嵌入式视频监控系统的PC客户端的工作流程图。
[0030]图3是嵌入式视频监控系统的服务器端的设计流程图。
[0031]图4是图3中视频采集线程的设计流程图。
[0032]图5是图3中视频采集线程的设计流程图。
[0033]图6是嵌入式视频监控系统的PC客户端的设计流程图。
[0034]图7是嵌入式视频监控系统的服务器端的数据帧传输结果。
[0035]图8是嵌入式视频监控系统的PC客户端的数据帧传输结果。
【具体实施方式】
[0036]嵌入式视频监控系统包括服务器端和PC客户端,服务器端和PC客户端之间通过无线网络进行数据传输。
[0037]服务器端的软件程序采用C语言编写,为了开发的方便,一般先在装有Linux系统的PC机上用C语言编写服务器端的程序,初步调试成功后再移植到嵌入式开发板中。服务器端需要实现的基本功能包括:
[0038]I)实现数字视频采集;
[0039]2)实现XviD视频流压缩,此功能采用软件实现;
[0040]3)将视频数据和部分参数打包成一个数据帧,再由TCP/IP协议或RTP/RTCP协议,通过无线局域网发送到网络;
[0041]4)接收PC客户端发送的控制命令帧,控制视频采集的参数。
[0042]如图1所示,服务器端主要包括视频采集、视频压缩、网络发送三个部分。视频采集程序从摄像头采集到原始视频图像,经过软件视频压缩后,通过网络发送到无线局域网。
[0043]PC客户端的操作系统为Linux,PC客户端需要实现的基本功能有:
[0044]I)无线网络中接收TCP/IP协议或RTP/RTCP协议包,提取出其中的视频压缩数据包。
[0045]2)将不断接收到的视频压缩包放入一个视频缓冲区内;
[0046]3)实现视频流的软件解码,解压所需的视频流和参考视频流均在视频缓冲区内;
[0047]4)实现视频流的实时播放功能;
[0048]5)实现视频压缩流的保存和文件播放功能;
[0049]6)可以在PC客户端输入一些控制命令,并将命令通过网络发送到服务器端。
[0050]如图2所示,PC客户端软件由网络接收程序得到网络视频帧,然后在视频流缓冲区暂存,由相应的视频解压程序解压视频流后,最后由PC客户端软件实时播放。此外,PC客户端还具有保存视频压缩流的功能,输入文件播放命令可以播放保存在硬盘上的视频流文件。通过视频解压模块,可以实现文件播放,实现由显示器播放视频功能。控制命令由PC客户端键盘输入,它的传输方向与视频流相反。控制命令包被服务器端接收到后,由服务器端发送给视频采集程序,用于控制服务器端的视频分辨率、采集速率、亮度、色彩空间等参数。
[0051]嵌入式视频监控系统的网络发送和网络接收采用socket编程实现,socket接口是一种特殊的1/0,它也是一种文件描述符。每一个socket都用协议、本地地址、本地端口来描述。一般编程时应注意包含socket, h的头文件,然后进入打开socket、建立链接、数据传输、关闭socket的基本流程完成网络通信。
[0052]下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0053]嵌入式视频监控系统的设计方法,包括服务器端设计和PC客户端设计。
[0054]如图3所示,服务器端设计包括如下步骤:
[0055]步骤101:初始化设备并配置网络数据帧的空间和视频压缩帧的大小;
[0056]步骤102:采用socket编程实现视频数据的网络接收和网络发送;
[0057]步骤103:基于Video4Linux的API进行编程,采用内存映射方式采集视频图像,并测试是否正确采集视频图像,若是,则进入步骤104 ;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1