基于IP网络的视频监控系统研究
来源:用户上传
作者: 董小维
摘要:本文主要针对基于IP网络视频监控系统的主要功能、系统流程以及数据采集时的视频数据压缩算法优化进行研究。
关键词:视频监控;IP网络;视频图像压缩
中图分类号:TP277 文献标识码:A文章编号:1007-9599 (2012) 01-0000-02
IP-based Video Surveillance System Study
Dong Xiaowei
(Xidian University,Xi'an710071,China)
Abstract:In this paper,the main function of the IP network video surveillance system,the system processes and data acquisition of video data compression algorithms optimized.
Keywords:Video surveillance;IP network;Video compression
最早的视频监控是一种全模拟的视频监控系图片信息以模拟信息的传输方式,采用视频电缆进行传输,因此图片信息的传输距离一般都较短,只能应用于小范围区域的监控。随着信息技术的发展,利用数字控制的视频矩阵来替代传统的全模拟视频矩阵,采用数字信息,通过IP网络传输的监控系统具有更远的传输距离以及更灵活的处理方式。
一、系统需求分析
在视频监控系统中,必须实现数据采集和传输、数据监控以及数据存储管理三大功能。
(一)数据采集和传输
1.数据采集
视频采集即通过摄像头将监控范围内的信息转换成为数字信息,由于在市场上已经有较多非常成熟的视频监控摄像头产品,因此,可以通过购买合适产品来实现视频数据的采集。
2.数据传输
一般而言,在网络中传输的数据较多,从而给网络传输和数据存储带来了较大的压力。因此,需要采用合适视频数据编码技术来对数据进行压缩,从而减轻系统中数据传输与数据存储的压力。
(二)数据监控
1.动态检测
动态检测即视频监控端从IP网络中获取视频监控数据进行显示的过程,为了让观察人员能够更加集中精力对校园视频监控尽心观察,系统应该能够按照2×2、3×3、4×4等多种通道形式对IP网络中的数据进行观察。
2.云台控制
云台控制,即在视频监控端,通过Socket技术对云台进行控制,从而通过计算机软件调整摄像头的角度和焦距。
3.视频回放
首先,查找存储在存储器中的历史视频数据,然后读取文件系统中的视频数据进行回放,其显示的界面与动态检测界面完全类似,但是与动态检测之直接从IP网络中读取视频数据不同,视频回放是读取文件系统中的视频数据进行播放。
(三)数据存储
1.视频录像
视频录像,即将网络中传输的视频监控信息进行存储,以方便日后了解事故发生的前因后果、快速定位事故嫌疑人,视频录像除了保存视频图像信息以外,为了方便对视频数据的管理,存了存储视频数据外,还必须将视频采集的地点和时间段等描述信息进行存储。
2.系统数据管理
系统数据表示除了视频图像信息外,系统中的用户信息、摄像头描述信息以及视频录像文件描述信息。
二、系统流程设计
(一)数据采集流程
1.使用市场上已经较为成熟的摄像头来进行视频数据的采集。
2.采用H.264视频数据编码方法来完成视频数据的压缩,通过在摄像头端安装BF527芯片对视频图像数据进行H.264编码。
3.使用IP组播技术来进行视频数据的传输,一方面,使得IP网络中的视频监控子系统可以观察到所获取的视频信息;另一方面,IP网络中的数据存储管理子系统可以将网络中传输的视频数据存储到文件系统中。
(二)云台控制流程
对云台的控制指的是控制云台的转动,从而增加监事区域的范围。对镜头的控制,主要控制镜头的变距、焦距和光圈。客户端通过Socket来对云台和镜头以及摄像机周边照明灯的开关。其具体流程如下所示:
1.系统初始化;
2.判断串口是否可用,如果不存在则进入第三步,否则进入第四步;
3.判断下一个串口是否存在,如果可用则转入第一步,进行初始化;如果不存在,则结束,并给出错误信息;
4.发送相应动作码控制云台和静态动作;
5.结束。
三、关键技术实现
在视频采集子系统中,为了提高IP网络中视频数据的传输速度,需要使用合适的视频数据编码方法来对视频图像信息进行压缩。H.264是一种效率较高的视频压缩技术,体现了目前国际视频编码解码技术的最新成果。在保证相同的视频图像质量下,H.264有更高的压缩比和更好的IP网络适应性。但是,同时这样的高压缩比需要进行大量的运算。同时,视频信息的压缩是在摄像头端进行,为了提高H.264编码算法的运行效率。
H.264是一个非常复杂的算法,仅使用C语言很难达到实时编码的效果。在对算法进行分析的过程中,发现DCT、SAD等函数被频繁的调用,消耗了大量的处理时间,因此,主要采用汇编语言实现DCT、SAD函数,从而提高运行效率。
在C代码和汇编代码汇编的程序中,一般都由C代码来构建运行环境和主题构架,然后再嵌入汇编代码函数,通常有以下两种方法:
(1)直接将汇编代码嵌入到C代码中,使用bfin-uclinux-gcc或者是bfin-linux-uclibc-gcc等编译工具都支持使用asm()函数直接嵌入汇编代码 ,这种方法较为简单,但是编译较为麻烦。
(2)使用汇编语言编写,函数,然后由C代码来调用这些函数,这种方法比较通用 ,虽然比较复杂,但是程序的整体结构更好理解,在视频监控系统中采用这种方法来实现H.264编码算法中DCT、SAD等函数代码的优化。
例如,对SAD的优化如下:
LSETUP(START,END) LC0=p1;//硬件循环,其中P1是循环的次数
START:
R3=[I1++];//数据读取
SAA(R1:0,R3:2)||R1=[I0++]||R2=[I1++];//计算R1:0,R3:2的SAD
SAA(R1:0,R3:2)||R0=[I0++]||R3=[I1++];//同时读取数据
SAA(R1:0,R3:2)||R1=[I0++]||R2=[I1++];
END:
SAA(R1:0,R3:2)(R)||R0=[I0++]||R2=[I1++];
经过测试,在16*16像素模块等SAD算法中,总共需要9261个时钟周期,进行优化后仅需要使用182个时钟周期就可以完成,提高了近50倍的效率。
参考文献:
[1]刘文耀.数字图像采集与处理.北京:电子工业出版社,2007,89-95
[2]汪国有,姜远利,杨永祥.基于Blackfin DSP的实时视频采集接口设计与实现.计算机与数学工程,2010,34(1):125-127
[2]毕厚杰.新一代视频压缩编码标准-H.264/AVC.北京:人民邮电出版社,2005,65-88
转载注明来源:https://www.xzbu.com/8/view-1701037.htm