
一、目的
随着数字监控系统的不断发展,人们对它的功能也提出了越来越高的要求。本系统在已有数字录像监控系统的基础上,对其进行改进,实现了MPEG-4方式的视频压缩,增加了网络监视的功能。
本系统经过改造,加入场景描述等功能,则可以实现视频会议等应用。应用范围参见同类产品,其它应用参见MPEG组织关于MPEG-4的应用文档。
二、功能描述
设计系统功能和性能如下(此部分为设计阶段主要功能考虑,可以在系统开发阶段和完成阶段进行完善和少量的变动)
1)单机多路录像
采用功能强大的芯片管理技术,实现多卡驱动,单机可支持1-8路视频/音频输入,多画面同屏显示、同时录像及录音;
2)实时录像、且清晰度高
录像、监看、回放、报警、手工/自动拍照同时进行。录像及回放画质清晰,分辨率为352×288。支持国际通用可变图像质量标准(CIF),用户可根据需要选取画质级别。实时录像不丢帧。可清晰辨认出快速点钞时各种不同面额的钞票;
3)视频音频同步采集回放
采用视、音频的同步采集压缩技术,实现录像回放时声音与图像同步播放。现场声音清晰、逼真;
4)支持大容量硬盘
采用循环覆盖技术,可长期录像,免维护。支持大容量的磁盘机(20G、40G、76G)。支持硬盘队列,即双硬盘同时录像;
5)长时间数码监控(无人值守)
基于工控机的系统环境,使设备的稳定性与可靠性大大加强,可支持长时间的开机,保证系统的稳定运行。遇到意外停电也能将损失降到最小;
6)方便回放及查找
播放方便,具有播放、暂停、快进、慢放等功能。可按照日期、时间、地点多种查询方式进行查询及回放。可预设录像时间,智能图像分析功能,可动态检测、自动报警;
7)支持报警功能
支持联动报警,当有警报时可通过网络(电话)向远端进行报警,并可带动警铃及场灯的相应动作。提供第一时间的现场资料;
8)多画面及云台控制
为降低系统资源的占用,多路可通过多画面显示,可任意选择一画面进行放大实时观看。支持镜头的云台转动与镜头的三可变,使得监控与录像更加随意;
9)兼容性强
与其他模拟或数字式监控均可兼容。在原有的监控基础上实行数字硬盘录像,减少用户的投资;
10)操作灵活、画面简洁
系统基于中文窗口环境,界面简单明了,全部用鼠标即可操作。全程的帮助,使操作人员能轻松胜任;
11)智能化系统
只要事先设置,便可自动按时或分时录像、停止,不需要人为干预;
12)远程监控
通过TCP/IP网络传输监控图像,同时操作人员可以远程进行各种操作;
三、性能指标
系统的主要性能指标如下(可逐步完善):
| 性能项目 | 指标 |
| 视频输入标准 | PAL |
| 像素(H×V) | 176×144/352×288两种模式 |
| 显示画面 | 25帧/秒 |
| 显示路数 | 1-8路 |
| 图像压缩 | MPEG-1/MPEG-4 |
| 存储速度 | 单路:固定码率90-900MB/h可调;可变码率图象质量1-18级可选 |
| 视频输入 | 1-8路 |
| 视频输出 | 1-8路 |
| 音频输入 | 1-8路 |
| 音频输出 | 可任选1路 |
| 内部存储介质 | 同时接四块高速硬盘 |
| 外部备份介质 | 活动式硬盘 |
| 串行接口 | 串口/并口进行云台控制、报警控制信号的输出 |
| 报警输入 | 1-8路开关量 |
| 报警输出 | 1-8路开关量 |
| 操作系统 | Windows 2000 |
| 电源 | 220V 9% |
完整系统的布局如图所示。
通常,音频视频采集卡插在计算机的PCI插槽内。网络接口不存在时,可以通过串口连接Modem自动播打设定好的报警电话。
五、模块划分
本系统从功能上可以分为3个大的模块:主控模块、分控模块、查询模块。
1)主控模块
系统的主控程序,管理控制全局操作。
2)分控模块
负责每一路音、视频采集工作。处理多路音视频时由主控模块启动多个实例。本系统中分控模块单独编译为一个EXE文件,必须由主控程序来启动。
3)查询模块
用于查询回放录制在磁盘上的MPEG文件,与主控模块集成在主控程序中。
主控程序与分控程序在执行期间将要进行各种信息和命令的交换。主控程序向分控程序发送各种控制命令,有:
- 启动录像;
- 停止录像;
- 有报警,需要启动录像;
- 改变当前存储路径;
- 重新启动录像;
- 磁盘空间不足;
- 用户改变了定时启动录像的时间段设置;
- 切换为视频大窗体模式或小窗体模式;
- 结束程序运行;
本系统中各分控程序状态发生变化时,将及时向主控程序报告,以便主控程序做进一步处理。报告的状态有:
- 视频发生错误;
- 转换为监视状态;
- 正常录像状态;
- 由报警触发的录像状态;
六、主控制程序
1、功能描述
主控程序是系统的主启动程序,除了完成控制分控程序外,设计如下具体功能:
1)防止系统程序被同时运行多个实例;
2)初始化视频采集卡;
3)调整计算机屏幕到800×600模式;
4)显示splash窗体;
5)删除过期文件,腾出磁盘空间;
6)读取各种全局性的参数设置;
7)监管磁盘的使用情况;
8)监管报警探头的告警信号;
9)监管各视音频通道的状态;
10)向分控程序发送各种命令;
11)设置各种参数;
12)调节图像显示的视野和效果;
13)查询并回放已经存盘的MPEG文件;
2、工作流程
主控程序的具体流程如下。
1)程序初始化
2)启动窗体
3)定时器事件
4)循环监测定时器事件
5)命令钮事件
- 启动/停止录像:打开frmselitems窗体,选择要启动/停止录像的通道。
- 图像调节:打开frmadjust窗体,进行图像色彩调节。
- 报警设置:打开frmwarningset窗体,设置报警处理参数与方式。
- 参数设置:打开frmparaset窗体,进行系统全局设置以及各通道参数设置。
- 记录查询:打开frmquery窗体,进行查询操作。
- 云台镜头调节:根据动作以及操作对象,发送相应控制码。
- 1/4/9画面显示:按要求将视频显示为指定的画面分割形式。
- 切换显示:打开控制切换显示时钟,进行循环切换。
6)程序退出
七、主控制程序具体实现
(实际开发过程中,这些代码模块的内容很难一开始就把内容确定好,而是在各个代码编写阶段根据需要逐步完善的。)
1、代码模块中定义的全局变量和函数
1)CSrvCard
该类封装了操纵采集卡的API函数。
2)defs.h
该文件包含主要的全局常量以及宏定义。
3)global.h
该文件包含主要的全局变量定义。
4)CSrvPath
该类封装了各种与路径相关的操作。
5)CSrvScreen
该类封装了关于计算机屏幕操作的函数。系统启动之初将计算机屏幕分辨率强制为800×600。
6)CSrvDisk
该类封装了磁盘管理方面的操作。
7)CSrvParaSet
该类封装了关于程序设置的操作。通过读写ini文件实现。
8)CSrvParallelPort
该类封装了并行端口操作的API函数。
2、主控程序
1)App相关的初始化操作
- 防止系统程序被同时运行多个实例;
- 初始化采集卡;
- 确保执行程序路径下ini目录存在,如果没有则创建这个子目录,以便存放记录参数设置的ini文件;
- 调整计算机屏幕到800×600模式,方便多路视频图像的显示控制;
- 获取全局设置,包括:
允许磁盘剩余量;
录像开始盘;
磁盘空间不足的处理方式;
是否启动密码;
循环切换视频的时间间隔;
2)主控窗体界面
3)主控窗体类(CSrvControlPanelDlg)
- Init()函数完成如下操作:
显示splash窗体;
删除过期文件,根据当前日期和设定的数据保留天数进行过期文件删除;
显示自身窗口,加载图片框,并根据视频通道数调整图像的位置和尺寸;
启动分控程序;
关闭splash窗体;
获取并首次向分控程序发送当前存储路径;
打开数据库;
启动Timer定时器,进行系统监测;
- OnTimer()函数
显示当前时间;
监管磁盘空间;
监测报警探头;
监测各通道状态;
新日期到来;
- OnTimeSwitch()函数
循环监测每个视频通道;
- 按钮事件处理函数
启动录像;
停止录像;
报警设置;
图像调节;
参数设置;
查看磁盘;
查询回放;
云台方向控制(上下左右);
调节镜头(光圈、变倍、聚焦);
打开/关闭附加设备;
选择当前摄像头;
单画面;
4画面;
9画面;
循环切换;
- Exit()函数
关闭数据库;
向分控程序发送结束命令;
关闭采集卡;
关闭串口;
缷载图片框;
八、分控(单通道控制)程序
1、分控程序功能描述
分控程序通过读取命令文件与主控程序实现信息沟通,响应主控程序的命令(进行启动录像、停止录像、改变存盘路径等),并及时告知主控程序自身状态。
2、分控程序的实现
分控程序只有一个窗体,并由于不显示于计算机屏幕而将窗体的visible属性设置为false。
内置定时器,每隔500毫秒启动一次,进行自检和查收主控程序命令。
1)Init()函数
- 读取ini路径下的slotno.ini文件,获取当前程序对应的通道号;
- 删除已经存在的命令文件(如comfile1.ini是第1分控程序对应的命令文件),避免误操作;
- 初始化变量,包括录像状态、视频状态等;
- 初始化硬件采集卡(出错则结束程序),并读取该通道相应的参数设置;
- 读取当前存储路径;
- 设置当前通道状态;
2)OnTimer()函数
- 视频检测;
- 定时录像;
- 日期检测;
- 检测处理命令文件;
启动录像、停止录像、有报警信息、改变当前存储路径、重新启动录像、磁盘空间不足、参数设置发生变化、关闭程序
2)Exit()函数
关闭采集卡,如果处于录像或报警录像状态,则先停止录像。
九、查询回放MPEG数据
1、查询回放功能描述
主控和分控程序配合将各通道的音视频数据以MPEG格式文件存于磁盘。音视频数据录制的目的就是让用户能够查找并回放,以获取所需信息。查询回放模块具有如下几个方面的功能:
查找定位-该模块设置各种查找时的筛选条件,如按音视频通道查询、按日期查询、仅显示报警记录等;
播放MPEG文件-从结果中选定一条记录后,可播放其对应的MPEG文件。播放过程中可以设定播放速度、控制前进和后退、播放当前记录的前一条和后一条记录、改变画面尺寸、捕捉单画面为BMP图片等。
整理磁盘-可设定筛选条件(指定时间条件、音视频通道条件),将符合条件的记录删除。
2、各窗体实现
一十、改进方案
