首页 数字视频监控系统中预录像的实现

数字视频监控系统中预录像的实现

举报
开通vip

数字视频监控系统中预录像的实现 计 算 机 与 现 代 化 2004年第 12期 JISUANJI YU XIANDAIHUA 总第 112期 文章编号:1006-2475(21304)12.0045—03 数字视频监控系统中预录像的实现 夏 海 (重庆大学通信工程学院,重庆 400044) 摘要:以数字视频监控系统中的事件触发录像为背景,说明预录像的设计原理以及在事件触发录像中如何使用所设计的 预录像方法实现数字视频监控系统中的事件触发录像功能,并给出了关键的c”程序实现代码。 关键词:视频监控系统;视频预录像;事...

数字视频监控系统中预录像的实现
计 算 机 与 现 代 化 2004年第 12期 JISUANJI YU XIANDAIHUA 总第 112期 文章编号:1006-2475(21304)12.0045—03 数字视频监控系统中预录像的实现 夏 海 (重庆大学通信工程学院,重庆 400044) 摘要:以数字视频监控系统中的事件触发录像为背景,说明预录像的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 原理以及在事件触发录像中如何使用所设计的 预录像方法实现数字视频监控系统中的事件触发录像功能,并给出了关键的c”程序实现代码。 关键词:视频监控系统;视频预录像;事件触发录像;H.264 中图分类号: 77 文献标识码:A RealDation of Video Pre—recording in Digital Video Monitoring System XL~Hai (College of Commtmieation Engineering,Cho~@ng University,Chong~ing 400044,China) Al,sl瑚Id:Based Oilthe event—triggered video recordinginthe digita1videomonitoring system,themethod ofvideo pre一舢 IdiIlgisde— si ed and used in the r~aliTafion ofthe event—triggered video recording,and the pivotal C”program is provlded. Key words:video monito~ system;video pre—recording;event—triggered video reconti~;H.264 0 引 言 在数字视频监控系统应用越来越广的同时,人们 对它的功能也提出了越来越高的要求。传统的数字 视频监控系统主要完成实时监控和录像的功能,而现 在随着计算机处理能力的提高,以及视频压缩编码技 术的发展,一种用于记录突发事件发生前及发生后一 段时间的事件触发录像功能正得到越来越多的视频 监控系统的支持。这项功能使得视频监控系统不需 要对全部时间内的视频内容进行记录,可以节约大量 的存储空间。事件触发录像中用于记录突发事件发 生前一段时间视频信息的功能就是预录像功能。本 文将以事件触发录像为背景说明如何实现并使用预 录像功能。 1 适合预录像的视频压缩算法 谈到数字视频监控,人们往往首先想到压缩算 法,市面上主流算法 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 也不少,主要有ISO的MPEG 系列和nu的H系列。MPEG2适用于对图像分辨率 和流畅感要求最高的场合,但占用带宽资源最大,通 常需要 3Mbps至 8Mbps,在交通行业和局域网环境经 常用到;MPEG4适用于较低带宽,如 200kbps到 800kbps,视频分辨率中等,存储量小,适用于大量录 像场合;H.264(MPEG一4/partl0)与 MPEG4使用场合 类似,但在压缩还原上又有突破,效果更好,但算法更 复杂,编解码占用资源更多,不过用于视频监控系统 中的视频压缩卡多采用专用硬件加速,这个问题并不 突出。采用 H.264压缩算法,可以得到极低的码率, 这不仅可以在记录同等时间内的视频时节约大量存 储空间,而且在实现预录像功能时不需要占用过多的 物理内存,因而H.264非常适合用在需要预录像的视 频监控系统中。 2 预录像功能的实现和使用 本文所提的视频监控系统采用的是海康威视 Ds 一 400XH系列视音频压缩卡,它采用了目前最先进的 H.264视频压缩算法和 OggVorbis的音频压缩技术。 DS一400XH系列板卡采用完全硬件的技术实现视音 频实时编码、活动视频预览、音频预览、运动检测,视 频图像由板卡直接传送到显存,压缩的码流也由板卡 直接传送到内存,无需主机CPU介入操作,大大节省 了主机的CPU资源。一台PC能稳定、可靠地支持24 收稿日期:21X14-01.29 作者简介:夏海(1977.),男,四川广安人,重庆大学通信工程学院硕士研究生,研究方向:宽带接入网技术,数字电视。 维普资讯 http://www.cqvip.com 计 算 机 与 现 代 化 2OO4年第12期 路视音频输入,每路都能同时进行实时编码,控制参 数完全独立可调。本文所提的视频监控系统是在 Windows 2000下,基于 DS一400XH系列压缩卡的系统 SDK,采用Visual C++6.0,基于MFC对话框应用程序框 架来实现的。 在实现视频监控系统的预录像功能时,主要涉及 两个类:一个是用于管理 24路数字音视频数据的预 录环形缓冲区类 CPreRecordBuf(图 1);另一个是视频 预览主窗口类 CVideoWin(图2),它主要负责音视频 预览和音视频数据的接收和分发。在图2中只列出 了与数据接收和分发相关的类成员变量和音视频数 据接收与分发成员函数 OnDataReady。 CPreR e∞r饵I UCHAR*FrameH~24] m d h1g end[24]; mB d char砌d [200] int leH∞deden: ccri a】secti∞ So ∞[ ] a ec mI ); vi巾IBl—C ER ec0f[峨 )0 void pyPTeRe d1 le(int hall· dle.int 0dtKl既); 讨 Re∞ (int adfdex.UCHAR *h m I1 int ); CViamWiml~aile aL血 HANT)LE m_ChHanle[24]; m i char S~amB.f[XX30O0]; (~ ReeaMBuf m.~efltxxxdBuf; int hfde[24][3]. 1 1g IIL砌ea佣t ze[24儿3] a6c rT int 0|l 讨teady(UINT Chln&x,M ); 图1 CPreRecordBuf类 图2 CVideoWin类 2.1 预录环形缓冲区类的设计与实现 图 3 预录环形缓冲区示意图 如图 1,在预录环形缓冲区类 CPreRecordBuf中。 FrameBui~24]是与24个音视频通道相对应的24个预 录环形缓冲区指针;end[24]是与24个缓冲区对应的 缓冲区中下一个可写入单元的索引,初始时其值为 0,如通道索引为 ChIndex的通道对应的环形缓冲区示 意图如图3所示;FileHeader[200]则用于存放文件头 部数据;FileHeaderI_en用于存放实际的文件头部长 度;Section[24]是临界区对象,用于保护每个环形缓 冲区中数据的完整性。 构造函数 CPreReeordBuf和析构函数 CPreRe eordBuf完成预录缓冲区的分配和释放;PreRecord和 CopyPreRecordToFile的实现如图4所示,其中PreRe. cord方法把接收到的数据放入指定通道的预录环形 缓冲区,CopyPreRecordToFile则负责把文件头部信息 及预录内容拷贝到文件中,这在事件触发新的录像文 件建立时需要被用到。由于系统启动后预录缓冲区 会很快充满,所以假定缓冲区总是为满,这在实现时 不必考虑缓冲区是否已满;同时考虑到播放器重现视 频文件时所具有的纠错能力,在实现时也不必考虑预 录内容是否是帧边界对齐的。基于以上两点,PreRe. cord和 CopyPreRecordToFile方法的实现是极为简单 的。 void CP . reRecotxlBuf::neRec0|d(int Chlndex.UCHAR*but"。ⅢB ed hat length) { [QdI .LDck(); r岫 :(PREBUFSIZE一1)一end[Chlndex]; if(F'maI.en>length)j Py(&Fl珊I曲 凸Ir出 ]【eId[0lIndex]]。bur。krlg【h); felse{ 唰I&n 叫 畦x]fend[ t ]]’ .F璐妇 ); n (FrameBuf[凸Ir如 J。(UO4AR )(bur+ I即).krl I—n哦I即); f end[ r ]= end[0lInd +krlg【h)%PR皿uFS四 ; Section【ChlndexJ.Unlock(); } VOid CPrEPe c0r【mI :CopyPreRecmdToF'de(int handle.int Ch~ x) {∞ i口划 h1g F'ust1.~-""(PREm3~StZlg一1)一end[Chlndex]; . te(handle,FdeHeader.FdeHe.&~n): Section[Chlndex].LDck(); .write(handle.&Fl珈I卸 )【0III ][end[Odndex]].Fusd ); .write(Mndle.FrameBuf[Cl~ x],end[Chlndex]); Section【C~Index].UTllI)ck() 图4 PreRecord和 CopyPreRecordToFile的实现 2.2 视频预览主窗口类的设计与实现 如图2,在视频预览主窗口类 CVideoWin中,玎L ChHanlde[24]用于存储打开的24个视频通道句柄; Sn·eaInB缸50000O]用于在 OnDataReady中接收从采集 卡来的数字音视频数据;m_PreReeordBuf是预录环形 缓冲区类的实例,OnDataReady使用它的PreRecord方 法把接收到的数据存入相应通道的预录环形缓冲区 中,事件触发处理程序则在恰 当的时候使用它的 CopyPreRecordToFile方法对与该事件对应的事件录像 文件进行初始化(加入文件头部及预录内容);hFile [24][3]用于存放24个通道各自由于3种不同事件 触发录像的录像文件旬柄。 接收与分发处理程序 事件录像文件内容 OrtDataReady K广_1 Fil eHeader【20O】 文件头部 HleHea f【艘1 事件触发处理程序 告警信号处理程序 /L——^ 预录缓冲 FraraeBuf【24】 end【24】 动态检测处理程序 手动录像控制程序 实时内容 hF丑e【24】【3】 图5 事件触发录像中相关实体关系图 如图5所示,3种事件触发情况包括告警触发, 动态检测触发和手动触发。告警触发是由外界告警 信号通过告警开关卡传递到告警监测线程,并由其触 发相应的事件录像行为;动态检测触发是通过在 On. DataReady中对接收到的动态检测帧进行分析,如果 分析结果超过给定阀值时触发相应的事件录像行为; 手动触发则适合于当有人值守时,值守人员发现异常 情况,并想把此异常事件前一段时间的视频信息也保 维普资讯 http://www.cqvip.com 2OO4年第 12期 夏海:数字视频监控系统中预录像的实现 47 存下来的情况。 图6 事件录像文件关闭长度不意图 在实际应用中经常会发生某类事件在某一短时 间内多次发生,如果每个单一事件用一个事件录像文 件来进行记录,则记录该通道该类事件的录像文件在 内容上会大量重复,这不仅浪费存储空间,而且还会 增加处理负荷。为解决这个问题,在实现时为每个录 像文件设计了一个可以动态增加的文件关闭大小 in. FileCloseSize[24][3]数组。文件初始化的同时对它进 行初始化,本文所提监控系统在实现时初始其值为 2MB(文件初始化后文件大小约为 1MB,单个事件触 发后再录 1MB,共记 2MB)。如果事件之间的间隔足 够大(两事件之间的间隔大于录制 1MB数据对应的 时间长度)时,则前一事件对应的录像文件达到其关 闭大小时文件将被关闭,而该通道新产生的该类事件 将重新触发建立新文件进行录像。但如果触发信号 频繁发生,则通过检查对应通道对应文件句柄是否有 效可知前一事件录像是否结束,如果没有结束,则在 此新事件时刻把该通道对应该类事件的录像文件关 闭大小在该文件当前大小基础上增加 lMB(即保证每 个事件触发后,录制 1MB数据后关闭)作为新的文件 关闭大小。事件录像文件关闭长度示意图如图6所 示,1是事件 A发生后文件初始化后的内容,此时文 件关闭大小为2MB,2和3表示在事件 A的录像文件 大小还未到达其关闭大小时,事件 B发生,这时文件 关闭大小在当前录像文件长度基础上增加 1MB,如果 对应通道对应事件在录像文件达到其新的关闭大小 时仍未有该通道该类事件发生,则此文件将被关闭。 以上所有逻辑都是通过音视频数据接收和分发 处理程序 OnDataReady来实现的,它是一个用户自定 义消息响应函数。要定义并注册该消息,可在 stdafx. h文件中加入: #define DATA.READY .T(”data D嘶dy,,) static const UINT M~DataReaay ::RegisterWindowMessage (DATA.READY); 然后在 CVideoWin的实现文件中的 BEGIN.MES. SAGE_MAP(CVideoWin,CEdit)和 END.MESSAGE.MAP ()之间加入一条消息映射: ON.REGISTERED _MESSAGE(MsgDataReady,OnDataReady) 这样当有新的音视频数据到达时,将自动调用 OnDataReady,然后就可以在其中完成音视数据接收 和分发处理。简化的 OnDataReady实现代码如图7所 示。 图 7 简化的音视频数据接收和分发处理程序 OnDataReady 3 结束语 本文所介绍的预录像的实现方法已经在一变电 站的视频监控系统中的事件录像功能中得到应用。 采用此方法的该视频监控系统对突发事件的记录及 时、准确,经长时间运行 证明 住所证明下载场所使用证明下载诊断证明下载住所证明下载爱问住所证明下载爱问 安全、稳定、可靠。此预 录像的实现方法以及对事件触发录像的组织策略可 以在其他类似数字视频监控系统中得到应用。 参考文献: [1] TWiegand,H Schwarz.The emerging H.264/AVC$tand~ lZJ.EBU Technical Renew,January 2003、 l2J 1TU—T Rec.H.264IISO/IEC 14496—10 AVC,Draft FlU—T Recommendation and FinalDraftInternational Standard ofJoint Video Specification[S]. [3] 杭州海康威视数字技术有限公司.海康威视DS一400xI-I 系列板卡系统SDK说明书3、0版[Z].杭州海康威视数 字技术有限公司,2003、3 25、 [4] Richard C Leinecker.Visual C”5开发人员参考手册[M]、 金帆 翻译 阿房宫赋翻译下载德汉翻译pdf阿房宫赋翻译下载阿房宫赋翻译下载翻译理论.doc 组译.北京:机械工业出版社,1998. 维普资讯 http://www.cqvip.com
本文档为【数字视频监控系统中预录像的实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_695249
暂无简介~
格式:pdf
大小:155KB
软件:PDF阅读器
页数:3
分类:互联网
上传时间:2012-04-28
浏览量:27