视频监控系统数据在网络中传输与拥塞控制的研究

  • 格式:pdf
  • 大小:199.90 KB
  • 文档页数:3

105视频监控系统数据在网络中传输与拥塞控制的研究赵祝(上海金桥信息股份有限公司,201100)摘要:随着计算机网络和流媒体技术的发展,视频监控系统的网络化进程日益加速。

文章对视频监控系统数据在网络中传输的实现进行了研究。

构建传输监控系统配置信息和控制数据的WEB 服务器,以及用于传输视频数据的RTP 服务器。

在网络发生拥塞的时候,视频数据在网络中传输就会产生丢包,影响到接收端的视频质量,这就需要在系统中加入视频流的QoS 控制模块。

在分析QoS 实现的主要方式之一拥塞控制的基础上,提出码率控制和码率整形相结合的QoS 控制策略,经过在系统上测试,这个策略让人比较满意。

关键词:视频监控;流媒体;RTP/RTCP ;QoS ;拥塞控制中图分类号:TN919.8文献标识码:A文章编号:1673-1131(2016)12-0105-03网络视频监控系统在其发展过程中遇到了许多的技术障碍,主要的障碍就是视频流数据在网络传输过程中的实时性不能得到很好的保证和传输效率低下、丢包率高等。

流媒体技术的兴起很好地解决了这个问题,它将连续媒体流压缩封装后按照一定的时序要求发给接收端,保证接收端可以边接收数据边实时播放,提高了系统的实时性。

它的流量控制和网络拥塞控制机制也能保证网络的传输效率。

1网络传输整体方案整个视频监控系统主要由服务器端、平台服务器、客户端、WEB 用户端以及传输线路等五大部分组成。

视频监控系统的服务器端主要完成的功能有:视频采集、编码、发送,智能算法运算等。

前端服务器与WEB 用户端的数据传输原理图如图1所示。

图1数据传输原理图当用户点击链接获取到嵌有ocx 控件的页面时,页面通过控件提供的接口在JavaScript 代码里通知控件准备接收前端服务器发来的视频数据。

控件接到通知后,初始化RTP 模块,在某个端口监听RTP 数据,在比这个端口号大1的端口监听RTCP 数据,并向页面返回其监听的端口号。

页面把得到的端口号和视频请求命令向前端设备提交。

设备接到命令后,首先调用用户管理模块对发送命令的用户权限进行验证,如果通过验证,则把用户的IP 地址和RTP 监听端口号添加到RTP 服务器的目标列表。

当视频编码器把编码后的数据提交到RTP 服务器后,RTP 服务器向目标列表中的地址和端口发送视频数据,向相应的RTCP 端口发送RTCP 数据包,同时监听本地RTCP 端口,接收控件的反馈数据。

2WEB 服务器设计WEB 服务器由几个部分组成:HTTP 服务器,其提供了对HTTP 协议的支持;WEB 页面文档,这是用户通过浏览器看到的界面,使用HTML 、CSS 以及JavaScript 来编写页面文档,其中HTML 表述了页面的基本内容,CSS 控制页面表现的形式,JavaScript 实现了页面的动态效果、对XML 文件数据的读取以及对交互数据的检查;配置信息以及控制数据,这部分数据,如果直接通过WEB 页面来传输,其灵活性差维护困难,因此使用XML 的方式来传输这部分数据;CGI (公共网关接口),其提供了用户与服务器之间通过WEB 页面进行交互的支持。

3RTP 服务器设计视频监控系统对视频的实时性有比较高的要求。

与面向连接的、可靠的、确认正确接收、错误重传的TCP 相比,无连接的UDP 在具体实现上就简单得多了,资源消耗要少得多。

对于嵌入式系统来说,资源消耗越少越好。

综合考虑,视频数据的传输由基于RTP/UDP 协议的RTP 服务器来实现。

前端服务器中,RTP 服务器主要由初始化、RTP 发送、RTCP 发送、RTCP 接收四大模块组成。

3.1RTP 服务器的初始化在RTP 服务器收发数据之前需要对服务器进行初始化,建立一个RTP 会话结构体用于保存整个会话的参数,包括RTP 服务器本端的RTP socket 句柄、RTCP socket 句柄、端口号、同步源标识、目标列表等。

此外,在这里还要创建接下来的RTP发送模块需要用到的信号量以及发送队列。

在完成了RTP 服务器的初始化之后,就可以建立RTP 发送线程,当有数据被提交到RTP 服务器时,RTP 服务器就向目标列表中的地址发送数据。

3.2RTP 发送模块RTP 发送模块负责向目标列表中的地址发送视频数据,其为视频编码器提供一个提交编码帧的API 函数:SubmitMediaFrame (char *pFrame ,UINT32frame-Len ,UINT8payloadType ,UINT32timeStamp ,UINT8frameType )编码器每编完一帧图像,就调用这个API 把这帧数据提交给RTP 服务器,通过函数的参数把指向编码帧的指针、帧长、媒体类型、时戳以及帧的类型传给RTP 服务器,这些参数是RTP 进行打包的时候所必须的。

RTP 发送线程的工作流程图如图2所示。

3.3RTCP 发送模块对RTP 服务器进行初始化,建立RTP 发送线程之后,接2016(Sum.No 168)信息通信INFORMATION &COMMUNICATIONS2016年第12期(总第168期)106着就该建立RTCP 发送线程了。

这个线程的优先级和RTP 发送线程的是一样的,不过触发发送的方式就不太一样了。

在这里,采取每5分钟发送一次RTCP 包的方式。

在具体实现的时候,可以通过在DSP/BIOS 配置工具的PRD 模块里添加一个对象,其周期设置为1分钟,使其每分钟就去调用一次某个函数,在这个函数里,每当被调用5次就向RTCP 发送线程发送一个信号量。

这样,RTCP 发送模块每5分钟就遍历一次RTP 会话的目标列表,如果目标列表不为空,则向目标地址的RTCP 端口发送RTCP包。

图2RTP 发送线程工作流程图3.4RTCP 接收模块对来自用户端控件的RTCP 控制信息包的接收,也需要建立一个线程来处理。

这个线程的优先级和RTP 发送模块的也应该是一样的。

这个模块是RTP 服务器中唯一需要接收对端socket 发来的数据的模块。

在RTCP 接收线程中,可以通过类似于标准套接字的select 那样使用NDK 提供的socket API 函数fdSelect 来实现数据的非阻塞接收。

4QoS 控制策略在本文视频监控系统中,对视频数据的QoS 控制策略采用的是码率控制和码率整形相结合的方法。

在视频监控系统服务器端通过网络反馈的参数判断网络拥塞的情况,根据网络状况调整编码器的编码输出率,或者是根据情况丢弃某些帧,从而控制发送速率,在用户端视频图像得到最佳的QoS 。

具体来说,码率控制是基于源端的控制,通过对编码器的目标码率进行修改来实现;码率整形采用弃帧整形的方式,在编码器把编码帧提交给RTP 服务器之后,RTP 发送线程在遍历目标列表的时候,对目标列表中的地址的丢包率进行判断,根据判断的结果决定是否该往这个地址发送该帧。

在视频监控系统服务器端将QoS 分为六个级别:表1本系统的QoS级别网络状况是根据用户端的控件发来的RTCP 控制包中的RR 包中的丢包率来判断的。

RR 包中的丢包率,是自从发送上一个RR 以来到当前这个RR 发送时,这段时间内的丢包率。

设备的RTCP 接收模块接收到来自控件的RR 包后,从中读出丢包率,调用QoS 控制模块,根据丢包率判断该以什么级别的QoS 向此用户发送编码帧。

QoS 控制模块的控制策略是这样的:在网络发生拥塞的时候(丢包率大于0),降低QoS 级别(这里,以1级为高,6级为低),最低不能低于6级;在网络状况好转的时候(丢包率等于0),提高QoS 级别,最高不能高于1级。

考虑到网络发生拥塞的时候,需要降低码率,但又不至于使用户端的视频质量忽然间变得太差,因此码率的变化力求平缓。

不过在拥塞比较严重的时候,需要设备把码率尽快降下来。

另一方面,在网络状况好转时,不能马上把码率拉到最高,以防网络再次陷入拥塞,导致码率频繁急上急下地调整,因此,只能逐步往上提码率。

当前的QoS 级别记为Lnow ,接收到RR 包后根据丢包率调整的QoS 级别记为Ladj ,丢包率计为LostRate ,QoS 控制的算法如下所示:if (LostRate ==0){Ladj =max (Lnow -1,1);}else if (LostRate >=1&&LostRate <3){Ladj =min (Lnow +1,6);}else if (LostRate >=3&&LostRate <5){Ladj =min (Lnow +2,6);}else if (LostRate >=5&&LostRate <10){Ladj =min (Lnow +3,6);}else {Ladj =6;}这里的阈值是根据上一个小节的测试结果的分析来决定的,各个QoS 级别的编码器参数设置以及发送的方式参考了丢帧测试的结果。

最优目标码率、次优目标码率的取值,可以根据具体的应用场景去选择,属经验值。

一般情况下,场景中移动物体较多时,目标码率需要高一些才会得到好的图像质量。

信息通信赵祝:视频监控系统数据在网络中传输与拥塞控制的研究应用于linux平台的目标检测算法研究严丹(四川警察学院,四川泸州646000)摘要:为了解决实时运动目标检测应用于嵌入式系统中的研究,提出了在Linux操作系统中基于opencv平台实现的运动目标检测的研究。

首先将opencv平台移植到linux操作系统中,然后用具有内存占用少的实时目标检测算法实现了对运动目标的检测。

实验证明,系统可以实时地进行目标检测,方便二次开发,并为目标检测算法移植到嵌入式系统中做好准备。

关键词:linux操作系统;目标检测;opencv;帧差法中图分类号:TP391.41文献标识码:A文章编号:1673-1131(2016)12-0107-02Research on Target Detection Algorithm applied to Linux PlatformYan Dan(Sichuan police college,Luzhou646000,China)Abstract:In order to solve the algorithm of embedded real-time moving target detection,proposes a target detection based on the open-cv platform in Linux operating system.Firstly,the opencv platform is transplanted in the Linux operating system.?Second,The detec-tion of moving target is realized by real-time target detection with memory occupancy.Experiments show that the system can be real-time target detection,two times development,and preparing for the target detection system be transplanted to embedded system. Keywords:Linux operating system;target detection;opencv;frame difference method0引言随着嵌入式视频监控系统[1]的发展,Linux操作系统可根据嵌入式[2]设备量体裁衣,并易于将内核移植与嵌入式视频监控系统中。