|
||||||
|
基于OMAP5912远程视频监控系统的设计
http://www.cww.net.cn 2009年8月10日 09:58 电子产品世界
作 者:刘明兰 罗伟 武汉理工大学
(2)视频采集 设计使用Video4Linux模块[5]提供的API函数进行视频采集,主要函数包括: ①dev?=?open(Camera_Open?,O_?RDWR);打开视频捕获设备。 ②ioctl?(dev?,?VIDIOCGCAP?,?&vid_ caps)?获取该视频设备的相关性能。 ③ioctl?(dev?,?VIDIOCGCHAN?,?&vid_ chnl);获取摄像头通道的相关参数。 ④ioctl?(dev?,?VIDIOCGFBUF?,?&vid_ buf)?;获取帧缓冲的属性。 ⑤ioctl?(dev?,?VIDIOCGPICT?,?&vid_pi);获取图片采集的设置。 ⑥ioctl?(dev?,?VIDIOCSPICT?,?&vid_pic);设置图片采集的相关参数,包括颜色深度、调色板类型、亮度、对比度等。 ⑦ioctl?(dev?,?VIDIOCSWIN?,?&vid_win);设置图像采集的视区参数。 ⑧fwrite?(m_buf?,1?,230400?,p)?;采集的数据存入。 ⑨ioctl?(?dev?,?VIDIOCMCAPTURE?,? &vid_mmap);开始俘获一帧。 设计中使用内存映射mmap()[3]方式截取视频帧,即先使用ioctl()函数获得摄像头存储缓冲区的帧信息,之后修改video_mmap中的设置,接着使用mmap()把摄像头对应设备文件映射到内存区,完成视频采集。 (3)视频编码 设计采用OMAP5912的DSP核进行视频编码,能充分发挥OMAP5912的双核优势。在编码器的选择上,考虑到H.264和以前的视频编码标准(如H.263和MPEG-4)相比,在压缩性能上有较大的提高,本设计选择适合嵌入式系统的x264-20060612版本H.264编码器。考虑到监控视频场景的特点,选择如下编码方案: ①H.264的baseline,不采用B帧编码和CABAC; ②搜索范围选取16; ③量化参数选取32; ④1/2像素插值; ⑤只使用1个参考帧; ⑥编码P帧宏块的时只采用16×16,16×8,8×16,8×8,Intra16×16五种模式。 H.264编码器经过一系列优化后即可用于本系统,其工作流程如图3所示。 3)视频网络传输 考虑到B/S模式拓展性好、维护和升级容易、安全度较高等优点,系统采用B/S模式。用户只需要在远程客户机的网页地址栏内输入服务器的IP地址,通过浏览器就能实时查看现场视频画面。 系统网络通信程序的设计包括服务端和监控端的设计,其中监控端采用通用的IE浏览器即可,主要是服务器部分的设计,包括构建WEB服务器[4](主要涉及BOAWebServer的移植及配置,CGI脚本的创建)、C语言实现CGI(通用网关接口)、实现嵌入式数据库和制作简单网页等。其中,CGI为WEB服务器和应用程序的接口,如通过CGI程序对远程设备的进行参数设置;采用嵌入式数据库MSQL用于存取系统的重要信息,如用户的帐号、密码,摄像头参数等。采用B/S模式后,服务器和监控端的通信程序结构图如图4所示。 图4服务器和监控端的通信程序结构图 嵌入式WEB服务器部分程序如下。 //创建TCP套接字连接TCP网络 if((sock_fd=socket(AF_INET,SOCK_STREAM,0))==-1) { perror("sock_fderror"); exit(1); } setsockopt(sock_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on)); //为套接字分配HTTP协议地址 my_addr.sin_family=AF_INET; ddr.sin_port=htons(80); my_addr.sin_addr.s_addr=htons(INADDR_ANY); if(bind(sock_fd,(structsockaddr*)&my_addr,sizeof(their_addr))==-1) { perror("binderrorn"); exit(1); } …… if(!fork()) { recv(new_fd,http_rec,2048,0);//接收用户端控制命令 //捕捉图像 image=videograb(320,240,brightness,contrast,colour,hue); …… } 系统充分发挥了OMAP5912的双核优势,实现了视频实时采集、存储、编码及网络传输。视频监控用户界面效果图如图5所示。 结语 设计和实现了基于OMAP5912的远程视频监控系统,系统充分发挥了OMAP5912的双核优势,实现了服务器端进行视频的实时采集、存储、编码及网络传输,而监控端的PC机可以通过IE浏览器查看监测点的视频,也可以设置视频的分辨率、亮度、对比度等参数。经实际运行表明,系统运行稳定,视频流畅,能够满足远程视频监控的要求。
[1] [2] 编 辑:石美君
|
每日新闻排行 企业黄页 会议活动 |