基于IPV6的嵌入式视频监控系统
扫描二维码
随时随地手机看文章
引言
目前,嵌入式视频监控系统已成为国内外视频监控系统应用的主流,但是在 IPv4平台下存在地址不足、不能合理分配带宽、安全性能及移动性能差等诸多问题,而新一代 IPv6协议不仅能很好的解决以上问题,而且还具有可以提高视频传输速度和传输质量等多方而的优点。如何使嵌入式视频监控系统与 IPv6技术相结合是当前监控系统研究的一个重要方向。
1 视频监控系统总体设计
2 1系统结构
系统总体结构如图 1所示。摄像头和视频服务器组合在一起称为视频服务端或网络摄像机,每个视频服务端分配一个独立 IPv6后通过双绞线接入网络,客户端通过 IP网络直接访问和控制视频服务端。摄像头和麦克风将采集的模拟音视频信号送入内部嵌入式 Linux操作系统的视频服务器,并通过双绞线接入网络。模拟信号被送入编码器编码成 MPEG-4的视频流和 ADPCM的音频流,从编码器出来的音视频流再被分为两路,一路送入本地的视频监视器,另一路通过网络发送到客户端。客户端把服务器端传来音视频数据分为两路,一路进行客户端存储,另一路启动 irectShow流水线,将视频信号和音频信号分离,分别送入各自的解码器(视频信号采用 MPEG-4解码器解码)。最后,解码后的音视频信号被送入对应的设备进行实时预览。
500)this.style.width=500;" border="0" />
1.2系统设计思路
系统工作需要硬件和软件协调土作共同实现。摄像头采集视频、麦克风采集音频,由服务器端采集卡完成音视频的采集和压缩,通过调用驱动程序读取采集和压缩后的音视频数据到缓存。缓存区中的音视频数据发送传输都由服务器端软件实现。
服务器端软件读出缓冲区的数据,启动发送模块,发送时采用 RTP协议打包,模块读取缓冲区中的视频流是以一帧为最小单位,由于按一帧打包时数据长度比较大小适合在网络中传输,所以需要在打包前将帧分割成几段以适合网络传输。按照 RTP协议打包好的数据,通过 UDP传输到客户端,如果是单用户采用单播,如果是多用户则采用多播。
客户端采用 B/S模式接收服务器发送的音视频流,并解码播放。 B/S模式下,播放视频在 IE中实现,具体的实现需要 ActiveX控件支持,由控件嵌入到 WEB中实现,这样客户端只需要通过浏览器就可以观看现场视频。服务器采集音视频流并压缩,通过网络发送到客户端,客户端解码还原出清晰的图像是视频监控的基本功能。 [!--empirenews.page--]
2. 视频监控硬件原理及设计
本系统是在 GX-ARM9-S3C2410核心模块上进行开发。该嵌入式监控视频服务器的设计主要是指根据系统要求实现的功能,选定主控制芯片和专用音视频压缩芯片,并确定其外围电路,实现声音图像采集、压缩、输出等功能。由于作者主要完成系统的软件部分,这里只对硬件部分做简要介绍。硬件模块结构设计如图 4.2所示:
500)this.style.width=500;" border="0" />
2.1音视频压缩 /解压缩模块
该模块的质量直接关系到系统的图像和声音以及传输质量,是系统硬件的重要部件之一。因此模块选用了 VW2010,它是 VWEB公司开发的实时 MPEG4音视频压缩 /解压缩芯片((Encoder/Decoder),该芯片内集成有 3个信号处理 /控制单元,包括一个视频编码 (压缩)器、一个视频解码 (解压)器和一个片内 CPU(内部扩展一个音频编码 DSP C Digital Signal Processors、一个音频解码 DSP、一个多路复合单元和一个多路解复合单元 ):具有可编程、高性能和低功耗等特点。
2.2音视频采集、 A/D模块
该模块将摄像头采集到的模拟视频信号发送到模块中的视频 A/D转换芯片进行视频数字化处理,同时将麦克风采集到的模拟音频送入音频 A/D转换芯片进行音频数字化处理。采用 Philips的 SAA7115H,它是 9bit视频 A/D转换器,支持 NTSC/PAL/SECAM制式,输出数字的视频信号符合 ITU601和 ITU-8656标准。系统的音频模块主要是以一块音频 A/D转换芯片 PCM 1800以及与之配套的模拟音频输入输出电路构成。 PCM 1800芯片最高采样率可达到 96KHz,可以满足绝大多数语音应用的要求。该芯片的数字音频输入输出接口采用 I2S模式,直接和 VW210芯片连接。
2.3网络传输模块
模块选用的网络接口芯片是 Realte公司的 RTL8201BL。它是具有 lOM/100Mps自适应功能的以太网收发控制器,是目前应用最为广泛的一种网络接口芯片。系统将压缩后的音视频数据打包,通过网络接口发送到网络中,其电路图如图 3所示。
500)this.style.width=500;" border="0" />[!--empirenews.page--]
3. 软件总体结构与设计
系统软件设计包括服务器端和客户端软件设计。服务器端软件主要实现采集音视频、压缩编码、打包发送到网络。客户端软件主要实现接受服务器发送过来的音视频压缩包,然后对数据拼接解码、播放,如图 4所示。
500)this.style.width=500;" border="0" />
3.1MPEG-4视频流的 RTP组包处理
要通过 RTP传输 MPEG-4视频流,需要对其进行打包 (Packetization)处理。加上时间、同步等信息。MPEG-4对每个 voP (voP是 VO在某一时刻的对象,即某一帧 vo)独立进行编 / 解码。因此以 VOP为单位进行打包,既提高了效率又充分利用了 MPEG-4的编码特性。为了不造成 IP碎片,包长还须有一个限制,就是不能超过该网络路径的 MTU(Maxium Transit Unit)。考虑到传输的高效性和丢包的鲁棒性,我们取包长为当前 VOP大小与路径 MTU值的较小值,采用如下组包机制:
1 VOP能放入单个 RTP包,就把此 VOP单独放入一个 RTP包中;
2 VOP分段,放入多个 RTP包,此时须把 VOP头部信息复制到每个 RTP包,以去除包间的相关性,达到丢包的鲁棒性 :为减小包数,降低开销,一包中能放入多少宏块就尽可能多地放入多少宏块,但即使最后一个包中仍有剩余空间,也小能把另一 VOP中的宏块放入此包中,算法流程如图 5所示。
500)this.style.width=500;" border="0" />
[!--empirenews.page--]
3.2服务器端视频发送和客户端视频接收
在基于DirectShow的视频发送端中,其过滤器图分别由 Video Capture Filter,Video Codec和 RTP Video Renderer Filter按顺序连接成一条“流水线”协同工作,他们分别完成源过滤器、转换过滤器和呈现过滤器的工作。 Video Capture Filter负责视频数据采集, Video Codec负责视频数据的压缩,最后由 RTP Video RendererFilter将压缩的视频数据封装 RTP包发送到网络上。过滤器之间的数据发送采用推模式。
500)this.style.width=500;" border="0" />
视频发送实现过程如下:
1)初始化 coM组件,初始化 DirectShow,包括建立 GraphManager接口、建立 GraphBuilder接口(它的 CLSID为 CLSID_ FilterGraph)、建立 BasicFilter接口,并将 VWSource Filter (VW210), Sputter Filter(音视频分离过滤器)、Codec Fil-ter(TopStepdVideo)和 RTPVren}lter (RTP传输呈现过滤器)加到 GraphBuilder。
2)通过系统设各列举接口找到系统中默认的视频捕获设备,并添加到 GraphBuilder中,查询 GraphBuilder获得媒体事件接口和媒体控制接口,连接各个过滤器,设置 RTP Vrenflter参数。
3)通过 GraphManager的控制接口,运行过滤器图,捕获并发送图象。
4)等待运行结束消息,释放各个接口,关闭 COM组件。视频发送实现过程中图像传输的实现最为关健,当视频发送端响应网络客户端发出的视频数据请求后,马上启动视频数据发送线程,开始采集 MPEG视频数据并源源不断地写入到发送缓冲区中。它的实现原理是:位于源过滤器 VWSource Filter(VW210卡)将从摄像头获取的模拟视频图像首先进行A/D转换,然后将采集到的视频数据交给下游的 MPEG Stream Spatter filter,由它对获得的数据进行解析后转交给其下游的变换过滤器 Video Coder filter进行 MPEG编码,然后将编码后的 MPEG视频数据写入发送缓冲区,这部分都由 VW210卡完成。如果选择本地存盘则过滤器图连接到此结束,将视频数据直接写入磁盘。视频接收端程序流程如下图 7所示:
500)this.style.width=500;" border="0" />
4结论
本文创新点:本视频监控系统是基于 ARM嵌入式核心处理器的硬件平台,其中嵌入式系统中移植 TCP/IPv6协议,在原有 MPEG4视频编码基础上采用了新的运动估计优先估计矢量分布概率算法进行优化,同时对视频传输算法也作了相应的改进。系统结合了流媒体技术,IPv6技术,嵌入式技术等优点,实验证明该系统视频监控方而取得了良好效果。