基于IP网络的数字音视频监控系统设计与实现
扫描二维码
随时随地手机看文章
l 系统需要解决的问题
1.1 数字音视频压缩标准以及压缩方式的选择
现有的压缩算法有H.263系列,M-JPEG,MPEG-1 VCD压缩标准,MPEG-2 DVD压缩标准,WAVELET小波变换,MPEG-4标准。这些算法各有优缺点,也决定了其应用于不同行业的适用性,H.263适合用于可视电话及视频会议等对图像大小和质量要求不是很高的应用领域;MJPEG,MPEG-1,MPEG-2由于实时性差以及数据量大的缺点不适合网络传输;MPEG-4视频压缩技术的出现引发了压缩领域的一场革命,他基本上克服了其他压缩算法的缺点,利用很窄的带宽,通过帧重建技术压缩和传输资料,以求以最少的数据获得最佳的图像质量。MPEG-4试图达到2个目标:
(1)低比特率下的多媒体通信;
(2)是多工业的多媒体通信的综合。
据此目标,MPEG-4引入AV对象(Audio/Visaul Objects),使得更多的交互操作成为可能。尽管MPEG-4并不是专为视频监控压缩领域而设计的,但同样也适合CIF(352×288)或者更高清晰度(768×576)情况下的视频压缩。
实现压缩算法的方式有2种,软件压缩和硬件压缩,其中硬件压缩实时性好,性能可靠,市场上也存在专用的MPEG-4压缩芯片或板卡。
为了达到实时性的要求,本系统采用MPEG-4压缩算法的硬件压缩方式。
1.2 信道环境以及实时性的考虑
目前可供选择的信道有PSTN,N-ISDN,以太网等。而监控系统大多数的应用场合是在一个相对较小的地域内进行视频监控,因而可以使用已经广泛使用的以太网作为数字硬盘录像系统视频传输的信道。目前100BASE-T以太网的带宽已经达到100Mb/s,可以满足数字硬盘录像系统提供高质量清晰图像、多路视频同时传输的要求。因此本文选用100BASE-T以太网作为主要传输信道。
本文的任务主要是围绕以太网来解决数字视频的实时传输和组播问题。考虑在某些应用场合需要远距离传送视频码流,为此在设计网络传输系统时就充分考虑了信道带宽的限制,引人码流和帧率动态可调机制,较好地满足了远程监控场合对图像质量和图像连续性的要求。
为了达到实时性,不光音视频采集部分要实现实时性,传输部分也要达到实时要求,根据试验,采用MPEG-4要达到25帧/s,需要256kb/s的带宽,可见100Mb/s的以太网
可以满足多路传输要求。
1.3 网络协议和传输机制的控制
ISO组织制订的OSI网络参考模型中,运输层建立在IP层之上,包含2种传输协议:一种是传输控制协议TCP,他是面向连接的网络协议;另一种是用户数据报协议UDP,他是无连接的。其中TCP不适合实时传输音视频资料,常用的是基于UDP的RTP协议。
由于UDP没有差错控制,属于不可靠的分组递交,为了实现可靠交付和流量控制,IETF(因特网工程部)提出了RTP和RTCP两个协议。所有的实时媒体资料都使用RTP进行传输,RTCP提供接收方向发送方反馈信息的功能。他们都是基于UDP的。
2 系统设计
2.1 数字监控系统网络传输的功能设计
系统原理框图如图l所示。
他由9个模块组成,音视频采集和压缩处理由视频采集卡硬件完成,采集卡通过附带的SDK函数接口和网络传输模块之间通信,当视频采集卡完成视频捕捉和压缩处理后,RTP协议封装模块对数据块进行封装和排序,然后交给UDP网络传输模块在IP网络上传输;对于接收端所做的工作和发送端基本类似,只是负责把网络传输过来的音视频资料包重组和译码回放出来。
2.2 系统硬件构成
图2所示是整个系统的硬件组成,包括摄像头、前端采集计算机和中心服务器3个主要部分,前端采集计算机中装有视频采集卡,根据采集卡的路数多少可以配备相应数量的摄像头。
2.3 软件设计
系统工作为C/S方式,包括3个部分:采集、传输、服务器显示和控制。
音视频采集的软件开发是在采集卡厂商提供一个SDK软件包的基础上进行的。由于视频资料包和码流的大小会影响到视频在网络中传输的实时性和视频在接收端回放时抖动的程度,因此该音视频资料包大小和码流设置应该是传输时的实时性和与回放时的抖动情况的折衷。
发送端的取流、封装和发送过程采用了32位操作系统抢先式多线程任务机制以解决CPU并行效率低等问题,整体上分为三缓冲区多线程结构,即采用取流缓冲区、封装缓冲区和发送缓冲区等3个缓冲区,分配了取流封装线程、内存切换线程、视频图像发送线程和程序主线程等4个线程,利用了取流缓冲区空、取流缓冲区满、封装缓冲区空、封装缓冲区满、发送缓冲区空、发送缓冲区满及允许发送等7个事件,提高了视频图像传输的效率。
在使用RTP协议对视音频复合流进行封装时,通行的做法是:在Windows操作系统中装载RTP协议的动态链接库(DLL),然后将发送端的视频编码器输出的数据流进行相应的成帧算法,形成适合于RTP协议格式的视频流封装,递交给RTP协议分组处理模块,加上此协议的分组报文头,并根据当前的采样时钟打上时间戳,标记顺序号,并给定帧频、分辨率、相应的压缩格式等参数,经多目地址传输来完成。在接收端,当实时视频资料到达后,去掉该层协议的头标,根据套接字应用的埠号向上层递交。RTP分组模块处理递交的资料分组,根据其会话标识和序列号进行鉴别,将有效的分组传递给相应的译码缓冲区,实现视频流内部的同步。
为了避免引起广播风暴,采用了在PC平台上实现IP组播,为此量身定制了一个基于微软基本类库MFC的IP组播类CMulticastSocket。IP组播类CMulticastSocket是在异步Socket类CAnsycsocket的基础上派生出来的,分组中的每一个成员都可以动态地加入和退出;组中的某个成员发出的信息,分组中其他所有的授权成员都能收到,他是UDP Sockets的一个分支。
由于数字硬盘录像系统(DVR)还需要给客户端提供网络控制功能和传送系统信息,在具体的网络编程应用中,采取UDP Socket和TCP Socket并存的编程机制。
3 性能指标
本系统性能指标如下:
4 结 语
本文介绍的基于IP网络的采用通用计算机结合视频采集卡的音视频监控系统,已成功应用于某大型仓库的无人看护,使用情况表明其性能良好。今后,随着相关技术的发展,基于IP网络的功能更强大和体积更小巧的嵌入式数字监控系统将得到越来越广泛的应用。