远程视频监控系统的设计与实现.pdf
第 31 卷 第 5 期 电 子 科 技 大 学 学 报 Vol.31 No.5 2002 年 10 月 Journal of UEST of China Oct. 2002 2002年4月16日收稿 * 男 25岁 硕士生 远程视频监控系统的设计与实现远程视频监控系统的设计与实现 段军棋*1 蒋 丹2 1. 电子科技大学自动化工程学院 成都 610054; 2. 信息产业部电子第29研究所 成都 610036 【摘要】 提出了一种通用的基于视频的远程数字监控系统的设计与实现方法, 介绍了系统的软件和硬件 构成,重点研究了系统软件部分所涉及到的视频采集处理、编解码、图像实时显示与控制等关键视频技术。 并对串口通信、多线程的通信与同步、TCP/IP 通信等系统涉及到的多项通信编程技术及其他一些相关技术作 了详细讨论。同时给出了基于 Windows 平台下 Visual C的具体实现方法。 关 键 词 远程监控; 视频编码标准; 多线程的通信与同步; 信编程; 数据访问 中图分类号 TP393 Remote Digital Monitoring System Duan Junqi1 Jiang Dan2 1. College of Engeering, UEST of China Chengdu 610054; 2. The Electronic 29th Research Institute of Ministry of Ination Industry Chengdu 610036 Abstract This paper proposes the s of design and implementation of a type of versatile video-based digital monitoring system. This system is composed of software and hardware, which is very flexible and suitable for varieties of practical channel situations. The key technologies of the system such as moving picture capture, video coding video codec standards; communication communication programming; database access 本文提出了一种通用的远程监控系统的设计,并给出了Windows环境下的Visual C的具体实 现方法。克服了其他视频监控系统的弱点,根据不同场合、不同的网络性能可以选择不同的编码和 通信方式通过网络对分布于各个方位的远端多个目标进行实时或非实时监控。 1 系统的主要技术指标及其软硬件结构系统的主要技术指标及其软硬件结构 1.1 系统的主要技术指标系统的主要技术指标 本系统采用多种适用于各种网络性能的编码标准, 可以在分布式系统中远程监控分布于不同方 位的多个目标, 多画面显示各个分布站的运动图像。 自动或手动切换显示或录制各路现场视频图像。 并且可以对系统内摄像机分组选择以及对云台、报警器等各种设备进行远程控制。在异常情况下自 更多好资源尽在 世界工厂下载频道 h t t p //e d o w n .c h .g o n g c h a n g .c o m 世界工厂网为企业成长提供协力 h t t p //w w w .g o n g c h a n g .c o m 524 电 子 科 技 大 学 学 报 第 31 卷 动报警、报警联动、自动记录报警数据,并可与上级 MIS 系统共享数据。如果需要,每个网络节点 均可参与各路视频及事务的处理,这样就形成一个分布式网络,构成单自治和多自治的分布式监控 系统[1]。 1.2 系统的结构系统的结构 分布式数字监控系统每一个分布站由摄像机、视频控制矩阵、监控计算机、通信单元、分布式 监控中心视频、控制等各种服务器等构成。以下分别介绍系统硬件和软件的具体实现功能结构。 1.2.1 系统的硬件结构 系统硬件结构如图1所示,采用总线网络节点内部和星型节点之间的混合式结构,使得本系 统具有较高的性能。视频主机作为本地网的一个节点,可以通过网络与其他视频主机交换信息。每 台主机根据需要可接多路视频,通过视频控制矩阵切换各路视频通道。控制信息由视频主机通过 RS-232接口与控制矩阵进行通信,可以控制云台、风扇、加热器等设备[2]。 1.2.2 系统的软件结构 系统软件结构如图2所示。首先,视频采集卡将摄像机输出的信号传送到视频格式转换部分变 为编码所需要的格式后放入相应缓存中,编码器从缓存中取出数据进行编码,并将编码后的数据流 放入发送缓存中。然后,发送缓存中的图像数据通过网络传输给通信的对方。同时,系统从网络中 接收通信对方的数据,并存入缓存中,随解码器从接收缓存中取出数据进行解码,通过计算机处理 并显示,这样就实现了视频编解码及通信。状态和控制信息的处理过程与视频数据类似。 图1 系统硬件结构 视频通道1, , n 及云台,风扇 等视频相关设备 网络如LAN / ISDN /DDN / PSTN/ E1 / XDSL 站点 1 智能控制矩阵 报警及其相关服务 中心监控主机视频显示、记录、控 制,报警服务,其他信息服务等 中心视频服务器 远端监控主机 站点 n 其他视频主机输入等 灯光等其他电动设备 站点 i 视频 显示 状态信息 控制 发送缓冲区 TCP/IP 视频编码器 控制信息解码 视频格式转换 视频格式转换 视频捕捉 显示器 视频解码器 状态信息编码 接收缓冲区 库服务器 中心数据 图2 系统软件结构 2 系统的关键技术系统的关键技术 本节对系统的关键技术视频捕获、数字视频压缩编码、视频实时上屏显示技术、网络传输和 多播技术、多线程的通信与同步以及串口通信编程技术和数据访问技术等将作详细讨论。 2.1 数字视频捕获技术数字视频捕获技术 更多好资源尽在 世界工厂下载频道 h t t p //e d o w n .c h .g o n g c h a n g .c o m 世界工厂网为企业成长提供协力 h t t p //w w w .g o n g c h a n g .c o m 第 5 期 段军棋 等远程视频监控系统的设计与实现 525 系统的视频采集采用Thakral公司的高性能视频捕捉卡。 该卡输出支持CIF和QCIF格式的MPEG1 和Motion-JPEG的硬件压缩。这样,在采用这两种压缩方式时就减轻了视频监控主机的CPU的压力, 有更多的时间去处理其他的事务。根据编码或显示等处理的需要,视频必须进行相应的格式转换。 其中RGB和YUV是最基本的两种色彩系统, 其他常用的是他们的衍生形式。 他们具有一一对应的确 定关系。通过矩阵运算或其逆运算可以实现他们之间的相互转换。 视频捕获有多种方式,常用的是采用VFWVideo for Windows、硬件驱动开发包提供的接口或 源代码进行开发。VFW使用简单、方便,但可控性差。因此,本系统采用基于源代码级DirectX开 发,可以灵活、方便地操作硬件并获得各种需要的视频数据。使用该方法,首先创建DirectDraw对 象,然后获得硬件HALHardware Abstraction Layer支持,再创建视频端口,这样就可以捕获视频流 进行压缩、传输等。如果要上屏显示,需创建视频表面,通过对不同视频层面的操作即可实现。 2.2 视频压缩编码方案的比较和选取视频压缩编码方案的比较和选取 由于活动图像进行数字化处理成标准RGB或YUV格式后,其数据量非常大。如未经压缩的PAL 制式CIF格式的真彩色视频,其RGB数据至少需要352288382558.01 Mb/s,因此视频传输 和存储必须进行压缩。关于视频压缩的算法和标准很多,其中ISO与IEC联合制定的MPEG系列和 ITU-T的H.系列标准占视频压缩编码技术的主导地位[3]。 其中常用的视频压缩方法有MPEG1、 MPEG2、MPEG4、H.263等,另外ISO和CCITT为静态图像制定JPEG数字图像压缩标准,也广泛运 用于压缩图像序列视频,如表1所示。以上算法各有优势,对于不同的信道可采取不同编码方案, 以满足远程分布式监控和硬盘录像的需求。对于10/100 Mb的局域网和E1通道,可采用MPEG-1;对 于ISDN和DDN, 采用H.263; 对于PSTN, 采用H.263或低码率的MPEG4, 如果对图像质量要求较高, 对连续显示要求不高时可以采用CIF或QCIF格式的M-JPEG,其他通道具体情况具体分析。 表1 不同视频压缩编码标准的特征 编码标准 CIF图像压缩后数 据率范围/Mb/s 解码单元 抗信道干扰 能力 图像性能 视频数据丢失对 视频质量的影响 适用范围 MPEG-1 0.4~1.5 图像组很差 好 很大 2 M以上带宽的稳定信 道LAN、E1、VCD等 MPEG-2 4 图像组较差 很好 较大 宽带网络、有线电视、 DTV、DVD等 MPEG-4 特宽数据码率 视频对象强 与码率有关小 交互式多媒体系统及各种 基于对象的应用 M-JPEG 2.0~8.0 帧 很强 较好 很小 各种不同速率信道, 如E1、 PSTN等 H.263 0.2~0.5 帧 较强 一般 一般 64 K以下信道如ISDN、 PSTN等 视频编解码的速度直接影响到视频处理及通信的性能,因此优化编解码器Codec也非常关键。 为此采用了框架级、局部算法、代码级三种不同级别的优化。 2.3 视频实时上屏显示控制技术视频实时上屏显示控制技术 Windows下的图像可以通过GDI方式的StretchDIBits函数、DIB方式的DrawDibDraw函数、 DirectDraw方式的Blt函数显示。由于OpenGL函数适于渲染复杂场景,计算量极大,在此讨论意义 不大。在本系统研究中,仅对以上几种可能采用方式的执行效率在奔腾III/800上进行了测试,其时 间测定利用平台SDK提供的Windows多媒体定时器timeGetTime函数实现该函数获得的时间分辨率 更多好资源尽在 世界工厂下载频道 h t t p //e d o w n .c h .g o n g c h a n g .c o m 世界工厂网为企业成长提供协力 h t t p //w w w .g o n g c h a n g .c o m 526 电 子 科 技 大 学 学 报 第 31 卷 可达1 ms。在多种视频流下进行重复测试,得到以上几种显示方式统计性能趋势图如图3所示其中 原始视频为352288的RGB图像。显然,要对视频拉伸后实时显示,就必须使用DirectDraw实现。 图3 windows 各种显示方式视频图像拉伸效率比较 2.4 网络传输和多播技术网络传输和多播技术 用TCP/IP协议,使用户通过网络对监控点进行实时监控。为了便于多点实时监控,采用了多播 技术,只在网络上传输一个拷贝,这样就减轻了网络传输的负载,提高网络的利用率。本系统对于 点对点的信息及图像的传输采用面向连接的TCP通信,而对控制需要多播和站点选择数据采用面向 无连接的UDPUser Datagram Protocol通信。为了着重于实现,系统利用MFC提供的CSocket类,操 作流程如图4所示。另外,在通信完成后均需关闭CSocket对象。用UDP方式进行通信时,如果使用 广播发送,就必须通过CSocket的SetSockOpt函数设置SO_BROADCAST参数;如果要改变通信的方 式,可以通过CSocket的AsyncSelect和IOCtl函数实现。 2.5 多线程的通信与同步多线程的通信与同步 Windows是多任务处理系统,线程的应用大大减少了程序运行的开销。线程间如果存在一定逻 辑关系或要访问相同资源就需要实现线程的通信与同步。Windows提供了灵活的通信与同步方案, 包括利用全局变量、用户定义的消息、事件对象、临界区和信号量等[4]。 在远程监控系统软件中,无论是服务器还是客户端,都需要解决线程同步和通信问题。以本地 视频监控程序为例,需要视频压缩、视频显示、视频数据发送、串口发送、串口接收等多个线程。 其中,视频数据的显示、发送及压缩需要访问相同的缓冲区,串口多种数据的发送、接收也需要相 同的缓冲区。如果两个以上线程同时访问同一缓冲区,就可能产生读写数据错误问题,所以必须通 过一定的机制来达到线程处理中的读写同步。 系统利用MFC中的临界区CCriticalSection、 事件Event Client 端 Server 端 数据传输 数据传输 面向无连接的 UDP 通信 Server 端 Client 端 CSocketCSocket Create Create Bind Bind ReceiveFrom Sendto Sendto ReceiveFrom 面向连接的 TCP 通信 CSocket CSocket Create Create Listen Connect 连接建立 Accept 阻塞,等待连接 Send Receive Receive Send 图4 TCP和UDP通信示意图 0 100 200 300 400 500 176*144264*226352*288640*480704*576800*600320*240 D IB函 数 G D I函 数 D irec tD raw 函 数 平均刷新帧率 Ff/s 图像尺寸 S像素 p 500 400 300 200 100 0 176144 264226 352288 320240640480704576 800600 更多好资源尽在 世界工厂下载频道 h t t p //e d o w n .c h .g o n g c h a n g .c o m 世界工厂网为企业成长提供协力 h t t p //w w w .g o n g c h a n g .c o m 第 5 期 段军棋 等远程视频监控系统的设计与实现 527 和一些全局变量,以及根据各个线程占用 CPU 时间的来设置线程的优先级,这样就较好地解决了 线程的通信与同步及程序效率问题。 2.6 串口通信编程技术串口通信编程技术 Windows 通过操作系统提供的设备驱动程序来进行数据传送,串口作为文件来处理,并提供 相应的文件I/O函数和通信函数及相关的一些结构如DCB、COMMTIMOUTS等,可以利用这些函 数与结构编写不同需求的通信程序。如表2所示,Visual C实现串行通信有三种方法串行通信控 件MSComm、单线程和多线程下串口通信。由于本系统较复杂,涉及任务较多,所以采用多线程方 式。当系统启动时,初始化串口,以便在程序启动后可以对串口进行方便的操作,然后启动串口读、 两个线程,通过一定的机制对读写缓冲区的互锁来实现串口通信的同步。 写 表2 三种串口通信的特点 各种串行通信特点 串行通信MSComm控件 单线程中自定义的串口通信类多线程下实现串口通信 优点 简单,易学易用 可以方便地实现对串口通信地 一些自定义控制及相关操作 功能强大,可以使得各端口 独立,CPU利用率高 缺点 只能在对话框中使用, 可控性差 影响界面及接口和其他操 作,CPU利用率不高 使用复杂,线程的通信和同 步困难 适用范围 单一功能的对话框应用 程序中使用 适用于较简单,不要求实时多 任务的系统 可应用各种复杂的应用系 统,可控性好 2.7 数据访问技术数据访问技术 首先使用SQLConfigDataSource函数实现数据源的配置, 然后通过ODBC 或ADO 接口访问数据 库[5]。为保证数据库中数据记录操作完整性和正确性,在该系统中采用以类的形式整合和自动初始 化必要数据。以报警数据表为例,其记录类定义如下 class AlarmRecordInfo { private longm_nOrdinal_NO; //其他一些报警记录有关的成员变量 CStringm_strFileName; public AlarmRecordInfo(){ m_nOrdinal_NO0;} //默认设置,以便于在操作中处理 AlarmRecordInfoCString strDate,CStringstrTime,CStringStation,BOOL bVideoToRecord {//通过构造函数构造数据记录对象 ifbVideoToRecord m_strFileNamestrDate strTime Station ; //其他成员函数 } }; 通过 AlarmRecordInfo 类既可方便地对要添加的记录数据进行操作,又保证数据记录的完整性 与正确性。 比如对报警记录影像名的设置, 该类采用自动方式, 通过时间和报警对象特性等来确定, 更多好资源尽在 世界工厂下载频道 h t t p //e d o w n .c h .g o n g c h a n g .c o m 世界工厂网为企业成长提供协力 h t t p //w w w .g o n g c h a n g .c o m 528 电 子 科 技 大 学 学 报 第 31 卷 不但提高了程序的效率,还保证了文件名的唯一性和正确性。 3 结 论结 论 本文详细分析视频编解码、显示回放、网络编程、通信与同步等关键技术的基础上,较好地完 成了远程多媒体视频监控系统的开发,使系统具有灵活多样的编码模式和良好的显示性能,适用于 不同速率和信道性能的各种场合,达到了远程监控的目的。 参 考 文 献参 考 文 献 1 张 原, 史浩山, 范 磊. 分布式智能视频监控系统设计与实现. 计算机应用研究, 1999, 11 98-101 2 李振华. 图像通信与监控系统.北京中国铁道出版社,1994 3 曹莉华, 胡晓峰. 视频压缩编码标准的进展.世界网络与多媒体, 2000, 7 18-21 4 David J, Kruglinski. Inside visual CForth Edition. WashingtonMicrosoft Press, 1997 5 Chuck Wood著. Visual C 6.0 数据库编程大全. 梁普选译. 北京电子工业出版社, 2000 成果与专利 成果与专利 钇钡铜氧高温超导双面外延薄膜制备方法和装置钇钡铜氧高温超导双面外延薄膜制备方法和装置 发明人员李言荣发明人员李言荣 刘兴钊刘兴钊 陶伯万陶伯万 钇钡铜氧高温超导双面外延薄膜制备方法和装置属高温超导薄膜制备方法和装置。采用基片原位转动、速度可调、 辐射加热、双面同时成膜的倒筒式支流溅射装置和优化的自外延制备方法,提高了膜的质量,使所制得的Y1Ba2Cu3O7-8高 温超导外延膜的性能优良 其Tco>90 K, ΔTc<0.3 K; 基片两面的双面膜性能一致 其 Tco相差小于0.5 K, ΔTc相差小于0.5 K, 完全满足高频微波器件制作的要求。 高亮度、高分辨率单晶彩色投影显示管高亮度、高分辨率单晶彩色投影显示管 发明人员成建波发明人员成建波 杨开愚杨开愚 饶海波饶海波 黄宗林黄宗林 朱建斌朱建斌 李军建李军建 陈文斌陈文斌 介绍了一种高亮度、高分辨率单晶彩色投影显示管及制作工艺。其显示屏是用外延技术制备的单晶荧光屏。外延单 晶石榴石相荧光膜成分Y3-x-y-zCexREyMzAl5-wQwO12, 其中0≤x≤0.1、0≤y≤3、0≤z≤1、0<w≤3且x+y+z≤3。RE指除 Ce外的一种或几种稀土元素。M指Bi、Cr等元素,Q指V、Ga、Cr、Sc等元素,其中V为敏化剂,通过采用选择不同的熔 料配方控制外延膜成分结构、晶格参数的办法,可在衬底上外延出晶格完整无缺陷的红、绿、蓝单晶荧光膜。采用该三 色单晶屏的CRT管,实现了高亮度、高分辨率投影显示系统。 渠 涌 更多好资源尽在 世界工厂下载频道 h t t p //e d o w n .c h .g o n g c h a n g .c o m 世界工厂网为企业成长提供协力 h t t p //w w w .g o n g c h a n g .c o m