梅鲁海
(浙江机电职业技术学院 电气电子工程学院, 杭州310053)
流媒体技术指的是视频和音频等数据以实时传输协议为载体,以连续的流形式从发送源端向目的端传输,并在目的端接收到一定缓存数据后,随即播放出来的多媒体应用技术。移动流媒体技术是把流媒体技术应用到移动网络上的新技术。无线视频监控系统则是以流媒体技术为核心,并综合应用智能传感器、网络通信和计算机等多种技术的新型视频监控系统。
近几年来,我国的3G 通信网络开始大规模商用,3G 技术带来的最直接变化就是移动网络带宽不再是视频业务发展的瓶颈,无线传输技术由此被广泛地应用到了流媒体系统中,基于无线网络的流媒体实时传输技术也成为了目前业界的研究热点和重点。但由于目前传输网上的主机性能差异和带宽变化,视频应用的实时传输变得非常复杂,网络常常造成拥塞。又因为数据在特殊的无线信道传输中极易受到多径效应等环境因素的干扰,从而导致较高的误码率、传输时延和抖动,因此如何在带宽低、延时长和误码高的不稳定无线信道中传输实时和高质量的视频信号是一个需要研究的关键课题。无线通信网络技术自身的发展很难为多媒体应用提供绝对的服务质量保证,但利用终端的一些控制策略则可以尽量改善服务质量。例如,利用发送速率控制和视频质量控制就可以解决视频码率和带宽的不匹配问题等。
本文在基础理论、专业知识、实验设计和应用新技术解决实际问题等方面对一种利用SRUDP 的3G无线网络视频监控系统的新型设计做了探讨和研究。实验证明,本设计的创新性强、扩展性好,既可以作为独立的系统使用,也可以方便地集成到专业级视频会议和视频监控等相关应用系统中,例如电力系统监控视频传输、社区安防视频监控和企业视频会议等。
本设计的视频监控系统的总体物理结构如图1所示。系统主要由视频监控前端系统、监控中心视频服务器和监控用户端3 部分组成。视频监控前端部分包括摄像机、前端视频服务器和3G 通信模块。系统运行时,为适应3G 网络环境的视频传输,各摄像机首先将采集到的视频流信号送给前端视频服务器进行H.264 标准的视频编码和压缩,后经过IP 格式的封装处理,再通过3G 的通信模块传送到监控中心,而监控中心则可以通过3G 网络或以太网接收和处理视频数据。监控用户端可以通过视频服务器发送控制指令,如控制摄像机镜头和云台等。监控中心视频服务器的功能是负责转发和控制监控用户端请求和调用的视频流。
图1 视频监控系统的总体组成Fig.1 The overall composition of video monitoring system
3G 方式的通信数据传输与传统的网络数据传输相比,可用的带宽较小,所以容易出现网络的抖动。因此,当用户所处的环境变化时,3G 网络的通信质量也会随之改变。TCP 协议一般具有拥塞控制和慢启动的特性,会影响到数据传输的速率,而3G通信网络通过TCP 协议进行数据的传输时,也会产生较多的网络开销,并占用带宽。UDP 协议则是一种不可靠的数据传输方式,尽管通信的效率较高,在3G 网络中却会出现数据丢包的问题,进而会降低视频传输的质量,因此不适合对可靠性要求较高的应用环境[1]。
为解决上述问题, 本设计提出了一种利用SRUDP(Simple Reliable UDP)的3G 无线网络视频监控系统的设计方案,系统结构如图2 所示。
图2 利用SRUDP 的3G 无线网络视频监控系统结构图Fig.2 The structure diagram of 3G wireless network video monitoring system using SRUDP
图2 中,位于视频发送端的H.264 编码器对摄取的视频数据首先进行压缩和编码,并进行UDP 报头、SRUDP 报头和IP 报头的封装,然后经过3G 通信网络的转发,用户视频接收端收到后先进行视频信号的解码处理,QoS 监测模块则负责对视频质量和网络状况的评测,提供监测信息。监测到的信息则以TCP 的方式传送和反馈回视频的发送端。发送端根据反馈的QoS 信息,通过编码器进行速率的自适应调整,并参考SRUDP 的缓存情况来进行相应的参数修改,这样可以最大程度地减少网络拥塞的影响,但TCP 的反馈信息并不是最主要的调整因素。
编码器视频传输的速率调整方法一般来说是根据编码的扩展性进行。传统的速率调节一般采用帧丢弃过滤的方式,但这容易引起视频数据流的不连贯,从而降低视频服务质量。本项目的设计则采用一种以VOP 优先级为主的包丢弃控制策略,即VOP数据是封装在视频数据包中,发送端具有过滤器,如果拥塞超过了设定的上限值,系统就依照VOP 优先级首先丢掉低优先级的视频数据。这种方式不是丢弃整个的视频帧,而是丢弃单个的数据包,因此接收端能够获得稳定帧率的视频数据流。
TCP 和UDP 协议因为本身的缺陷并不能较好地满足某些对传输要求很高的应用环境。例如,移动计算环境就需要采用可靠并且高效的传输层协议,RUDP 协议虽然能够满足传输的可靠性要求,但该协议传输的控制机制比较复杂,协议的头部偏长。而SRUDP 是一种简化和自定义的、并为UDP 引入了许多可靠的控制机制的协议,可以满足上述要求。
SRUDP 协议基于UDP 之上,具有2 个字节的协议头,即1 个字节的后向序号和1 个字节的前向序号。后向序号表示的是带给对方的证实序号,而前向序号表示的是期望对方下一次发送的SRUDP 包的序号。SRUDP 协议围绕这2 个字节的协议头采用了简单而有效的重发机制、证实机制及序号强制对齐机制,以保证通信双方传输的可靠性[2]。
为提高3G 通信网络UDP 传输数据的可靠性,SRUDP 设计的链路连接是使用像TCP 方式一样的的三次握手方式。发送端在数据发送之前,先与接收端尝试进行连接,但不传输真正的用户数据,只是用来验证一下传输数据的可行性,以保证传输链路的正确和可靠。发送端与接收端在视频传输的实际过程中,各设置了一个发送缓存与接收缓存的缓存区。SRUDP 是通过采用滑动窗口机制来进行消息的收发同步和流量控制的。因为无论接收缓存的空间有多大,当发送端的发送速率大于接收端时,有可能造成数溢出,引起数据包的丢失[3]。如图3 所示,发送端的滑动窗口是由发送窗口、重传队列与发送队列3 部分组成的,而接收端的滑动窗口则是由接收窗口与接收队列两部分组成的。
图3 发送端与接收端的滑动窗口Fig.3 The sliding windows of sending end and receiving end
SRUDP 协议中设置了重传机制,以减小3G 通信网络因数据包错误和丢失对视频质量产生的影响。发送端是将已发送的数据包放入到重传队列,然后开始计时操作,而接收端在收到发送端的数据后,则会回送一个ACK 的信息确认。如果发送端在约定的时间里没有收到一个ACK 的信息,则会重传数据。但是一个数据包的重传如果超过了限定的次数,发送端会放弃重传的操作,然后退出重传的队列。当发送窗口被重传队列整个占满时,就停止滑动窗口,如果重传发生超时或收到信息确认,队列再进行改变[4]。
H.264 编码标准中含有纠错工具,可以防止数据包丢失出现的问题,同时也具有较高的编码效率,能够合理的降低视频的编码码率,所以H.264 非常适合在3G 的通信网络环境中处理视频数据。本设计中的前端视频服务器采用H.264 的压缩编码方式,硬件上使用具备ARM 和DSP 双核的处理器GM8180,由ARM 核心负责操作系统的运行和外围设备的协调,DSP 则独立承担H.264 标准的视频编码。这里,经处理器GM 8180 编码出来的H.264 视频数据形式是NAL(Network Abstraction Lay)单元格式。为提高系统的可靠性,本设计将视频压缩模块和SRUDP 组包模块划分为2 个独立的进程来实现。考虑到硬件资源有限,选择System VIPC 的共享内存来完成进程间的通信。
本设计中,H.264 压缩编码的纠错机制主要体现在以下几个方面:
(1)组建参数集
为了保证在容易出错的环境中正确地传输视频信息,增强码流传输的纠错能力,H.264 把一些会造成解码严重失真的关键比特信息分离出来,成为一个参数集的形式。
(2)编码模式的分层化
一般的H.264 编码分为NAL 层和VCL 层,在VCL 层,对于平均分布的随机性位错误采用前向纠错编码比较有效,但对于高误码率或突发性错误的纠错效果却不好。本设计采用分层模式的H.264 编码,因为NAL 层的作用,可以较好地提高抗误码性和纠正突发错误[5]。
(3)灵活的宏块排序
本设计的图像内部预测机制是只允许用同一片组在空间上相邻的宏块,并通过宏块分配映射技术和灵活的宏块顺序,把每个宏块分配到不按扫描顺序的片中,这样一幅图像就由若干个片组成,每片包含一系列的宏块,并且每个片都是独立的解码,不同片的宏块不能用于自身片中来作为预测参考。这样,片的设置就不会使误码扩散到一帧中。例如,所有的宏块被分成了片组0 和片组1,当片组1 丢失,因为其周围的宏块都属于其他片的宏块,根据相邻域的相关性,片组0 宏块的某种加权就可用来代替片组1 的相应宏块[6]。
为充分利用网络带宽资源,保持视频的最佳传输质量,本系统的视频QoS 控制方式运用了迭代算法,即在发送端根据接收端反馈回来的网络参数来调整编码速率,具体方法如下。
(1)运用基于模型的方法LDA(Loss-Delay adjustment A lgorithm), 发送端向接收端发送一组TCP格式的APP(App lication Specific Functions)报文形式的探测数据包,这里,APP 报文的量级较低,对传输带宽影响很小。接收端填充APP 报文中的字段Add(Application-dependent data),把网络带宽和数据包丢失率等参数反馈给发送端处理。
(2)收到相关参数后,发送端根据接收端反馈回来的网络参数,确定初始编码速率V0,并把编码后的视频流通过DM IF 层、同步层和传输层传送出去[7]。
(3)为适应网络带宽的持续变化,发送端依据从接收端传回来的APP 报文不断动态地调整发送的速率,具体步骤为如下。
首先,发送端在收到下一个反馈的APP 包之前,始终保持一个稳定的发送速率Vn,并创建APP 和SR报文。发送端填充APP 的序号,并将SR 中的LSR 字段复制到APP 中的字段Add。每间隔1 s,发送端发送一次APP 的报文,但不发送创建的报文SR。
其次,当接收端解析收到的APP 报文后, 开始创建APP 和RR 报文,接着发送对应的APP 报文,而不发送RR 报文。然后,接收端要复制包丢失率的字段P 与RR 中的字段DLSR 到APP 的字段Add。
然后,当发送端接收到APP 报文后,通过解析获得包丢失率p 和网络传输延迟Dn的数值。为确定视频编码速率Vn的值,发送端是运用迭代算法来进行计算,具体如下:设定Vmin=0, Vmax=V0,如果Dn减小,则Vn相对于网络带宽来讲偏小,Vmin=Vn;如果Dn增加,则Vn相对于网络带宽来讲偏大,Vmax=Vn。由此,当前的视频编码速率Vn+1为
当p>0.2 时,说明当前的网络拥塞状况比较严重,这时Vn会进行快速调整,即Vn=Vn×0.8。当0.1
(4)TCP 的APP 报文会由于各种原因丢失,因为发送和接收端都有一个TCP 报文的缓冲区,因此依据定时器的时间计数,当超过5 s的间隔却没有收到APP 的报文时,发送端和接收端将进行自动重发APP 的数据包,并进行Vn=Vn×0.8 的调整。
本设计的仿真实验装置选择在3G 网络通信的环境中,针对UDP、TCP 与SRUDP 协议进行传输性能的对比测试。采用3 个数据源信号发生器,分别输出1 路基于UDP 协议的2M 数据流、基于TCP 协议的2M 数据流和基于SRUDP 协议和H.264 的2M视频流。视频的时长为15 min,分辨率为640×480。发送端使用3G 通信终端,接收端采用ADSL 网络,收发端网络接口带宽10 Mbit/s,传输延迟5 ms。每种协议分别测试30 次,计算平均值。以视频接收端统计的数据包丢失率作为视频质量的评价标准,实验结果如表1 所示。
表1 UDP、TCP 与SRUDP 传输实验对比Table 1 Transmission experimental comparison of UDP,TCP and SRUDP
测试结果发现,当发送端的UDP 数据流逐渐增大时,在接收端的数据包丢失率也跟着逐渐增大,可以看出UDP 数据流对传输带宽的影响较大,也不能完成对网络拥塞的自适应调整。但当发送端的TCP流或SRUDP 流逐渐增加时,接收端测得的数据丢包率变化不明显。这是因为TCP 流或SRUDP 流增加时,虽然会占用较多的网络带宽,但发送端却可以根据网络可用带宽的实际状况适时地改变输出的速率大小,因此能自适应网络拥塞的情况,并自动占用较少的网络资源,由此降低了接收端的包丢失率和传输时延,并保证了数据流竞争带宽资源的公平性。实验同时也发现,在3G 环境里,在同样的包丢失率情况下,SRUDP 数据流的传输速率是TCP 数据流的1.5 ~2 倍,明显高于TCP 数据流,由此也体现了基于SRUDP 的视频应用在3G 通信网络数据传输中的优越性。
在1 路SRUDP 数据流和1 路UDP 数据流的并行发送实验中,在逐渐增加发送UDP 数据流的同时,发送端也循环发送一定的SRUDP 视频数据流,实验中发现接收端的视频流数据丢包率也逐渐上升。而在1 路SRUDP 数据流和2 路TCP 数据流的并行发送实验中,TCP 数据流面对拥塞环境会自我进行调整。例如,实验发现如果1 路TCP 数据流的速率为128 kbit/s,2 路并行时则约为114 kbit/s。因此,本系统的SRUDP 视频流和TCP 流共享网络带宽时,有一定的自适应性。
虽然,目前国内应用的固定视频采集实时传输系统比较广泛,但由于布线较多,在一些特殊环境中无法应用。3G 网络的正式商用为我们带来了真正意义上的移动无线宽带网络,无线带宽及复杂环境的瓶颈再一次被打破,一直跟随通信技术而发展的视频监控系统也由此升级到了3G 无线视频监控的阶段[9]。本文提出的一种利用SRUDP 的3G 无线网络视频监控系统的新型设计方案很好地解决了在特殊的无线信道中传输实时和高质量视频信号的关键问题。实验表明,在3G 环境里,SRUDP 视频流可以自适应地与TCP 数据流共享网络带宽,而传输速率可以提高到TCP 数据流的1.5 ~2 倍,因此本设计在降低视频数据包丢失率、提高传输速率和改善视频质量等方面具有明显的优越性。
因为3G 网络承载的复杂性和多样性,在实时视频应用中需要进一步深入研究高效带宽的捕捉和反馈、传输协议的延伸和大流量的视频应用等课题。
[1] Kang S H,Zakhor A.Packet Scheduling Algorithm for W ireless Video streaming[ C]//Proceeding of International Packet video Workshop 2002.Pittsburgh,Pa,USA:IEEE,2002:53-62.
[2] Ren Zhikao,Liu Minghua,Ye Chen, et al.The real time video transm ission system based on H.264[ C]//Proceedings of 2009 International Conference on Web Information Systems and Mining.Shanghai:IEEE,2009:270-274.
[3] 翟霄宇, 陈钊正,陈启美.基于3G 网络的船载视频传输及保障系统[ J] .计算机应用,2011(11):3161-3164.
ZHAI Xiao-yu, CHEN Zhao-zheng, CHEN Qi-mei.Ship video transmission and p rotection system based on 3G network[J] .Journal of Computer Application, 2011(11):3161 -3164.(in Chinese)
[4] 闻恩友, 赵正德, 杨立朝, 等.3G 网络的移动视频监控系统[J] .中国图象图形学报,2008(10):88-91.
WEN En-you, ZHAO Zheng-de, YANG Li-chao, et al.Mobile Video Surveillance System on 3G Network[ J] .Journal of Image and Graphics,2008(10):88-91.(in Chinese)
[5] 李捷, 周云娴, 王雨, 等.网络视频编码中的分层技术[J] .计算机工程与应用,1999(8):81-83.
LI Jie,ZHOU Yun-xian,WANG Yu, et al.Layered Coding for Video Over Network[J] .Computer Engineering and App lications,1999(8):81-83.(in Chinese)
[6] Sameh A,Wagh S, Salama Q.Dealing with quality of service in hybrid wired -wireless networks[ C]//Proceeding of the Second International Conference on Network Applications,Protocols and Services.Kedah:IEEE,2010:105-109.
[7] Hammi R, Chen K.Dynamic rate control in wireless video communications[ R] .Villetaneuse, France:Institute Galilee,University Paris,2004.
[8] 梅鲁海.电力系统监控视频传输速率自适应控制设计[J] .电力系统及其自动化学报,2012(2):55-58.
MEI Lu-hai.Design of Video Transm ission Rate Adap tive Control in Electric Power Monitoring System[J] .Proceedings of the Chinese Society of Universities for Electric Power System and Automation,2012(2):55-58.(in Chinese)
[9] Widmer J,Mauve M.A survey TCP-friendly congestion contro1[ J] .IEEE Network Magazine,2001,15(3):28-37.