李星亮,吴育宝,田进华
(1.南京森林警察学院 刑事科学技术学院,江苏 南京 210023 2.南京森林警察学院 信息技术学院,江苏 南京 210023 3.黄淮学院 信息工程学院,河南 驻马店 463000)
车载网络(Vehicular Ad-Hoc Networks, VANETs)是智能交通系统(Intelligent Transportation Systems, ITS)的重要组成部分。美国FCC将位于5.9 Hz的DSRC频谱75 MHz分配给VANETs中的车间通信(Vehicle-to-Vehicle,V2V)和车与路边设施通信(Vehicle-to-Infrastructure,V2I)[1-2]。利用V2V和V2I通信,道路上的车辆能够相互交互信息,包括道路状况消息,视频数据等。
相比于文本信息,VANETs内的视频流(Video Streaming, VSG)为行驶人员和路人提供了更丰富的信息[3]。依据安装于车辆或路边设施单元(Road Side Units, RSU)的摄像机,可实时给车辆和政府机构传输视频,进而告知道路上所发生的事件。例如,动物入侵道路、节日活动,这些事件都可利用VANET的VSG进行广播。此外,利用VSG也可提高交通安全。如交通事故,通过广播VSG,使邻近车辆提前进行预警,避开交通事故发生地。
然而,车辆的快速移动,网络拓扑的动态变化,给实现可靠、快速地传输视频提出了困难[4]。因此,需强健的通信协议确保能够有效地接收VSG。在接收端,通常引用视频数据包传输率、传输时延、峰值信噪比(Peak Signal to Noise Ratio, PSNR)表征VSG的服务质量QoS(Quality of Service)。
目前,传输VSG主要面临两个问题:数据包丢失和传输时延。为此,研究人员进行了较多的研究,并提出不同的策略[5-6]。这些策略工作可分为三类:(1)视频编码和差错恢复;(2)协作转发;(3)自适应策略。其中,视频编码和差错恢复策略是使用于应用层,通过编码和差错机制提高VSG的服务质量。而协作转发策略是使用于网络层,通过选择最可靠路由提高VSG的服务质量。自适应策略是使用于MAC层,通过自适应地调整传输参数,提高VSG的服务质量。
而传输层的用户数据协议(User Datagram Protocol, UDP)并没有包含差错恢复机制,而传输控制协议(Transmission Control Protocol, TCP)采用了重传机制克服数据包丢失或数据包传输差错问题,但它增加了额外的时延。
此外,研究人员还提出利用图像处理领域内的视频技术和标准对视频进行编码,如运动图象专家组(Moving Picture Experts Group, MPEG),可伸缩视频编码(Scalable Video Coding, SVC)、多描述编码(Multiple Description Coding, MDC)。其中,MPEG标准将视频编码成图片群(Groups of Pictures, GoPs)。每个GoP为一系列的帧[7-8]。MPEG采用三类帧:内编码帧(I帧)、预测帧(P帧)和双向预测帧(B帧)。相比于B帧,而I帧和P帧更重要。将这些帧结构(I,P,B)也称为非均衡的帧结构。
而数据包转发差错校正(Packet Forward Error Correction, PFEC)是基于冗余技术的差错恢复机制。PFEC将VSG划分为多个组,每个组由原始包和冗余包构成。此外,子PFEC(Sub-PFEC, SPFEC)是PFEC的特例,其主要由原始和冗余子包构成。
为此,本文提出基于UDP的改进协议EUDP。EUDP引用了SPFEC差错恢复机制,提高数据包传输成功率,同时采用基于MPEG标准的非均衡的保护的视频帧类型(I,P,B),减少网络开销。实现数据表明,提出的EUDP协议有效地降低了数据包传递率,并提出视频服务质量。
VANET的视频流工作多数是基于UDP或TCP控制协议。TCP协议利用重传机制恢复数据包,而UDP没有引用恢复机制。本文提出的EUDP算法是基于UDP协议,并进行了改进。首先,引用SPFEC标准,恢复错失数据[9],并减少有效数据包出错率(Effective Packet Error Rate, EPER)和冗余开销,同时,也减少了端到端传输时延。再采用非均衡的视频帧结构(I,P,B),降低网络开销,进而提高视频服务质量。
VANET中车辆传输视频流的结构如图1所示。图1中红色车辆为产生视频的车辆(记为源车辆)。每个视频数据包由源子数据包(Originals Sub-Packets, OSP)和冗余子数据包(Redundant Sub-Packets, RSP)构成。源车辆依据视频数据包(I,P,B)类型计算RSP数目。相比于B帧,I和P帧的RSP具有更高的保护级别。
源车辆将视频数据压缩成实时传输协议(Real-time Transport Protocol, RTP)数据包,然后再以多跳传输方式其他节点传输[10]。当接收车辆(图1中的蓝色车辆)收到视频数据包后,就从中提取信息,再估计比特误差率(Bit Error Rate, BER),然后再依据SPFEC策略,估计子数据包差错率(Sub-Packet Error Rate, SPER)和EPER。最后,依据EFER,决定是接收视频数据,还是丢弃视频数据。
图1 基于EUDP的视频流
为了允许接收节点能够计算SPER和EPER,在数据包首部添加了名为“eudp header”项,如图2所示。eudp header项由Video_pkt_id、Video_pkt_type、Sub_pkt_size、nb_source_sub_pkts、nb_redundant_sub_pkts组成。其中,Video_pkt_id表示视频数据包的编号。而Video_pkt_type为视频数据包帧(I,P,B)类型;Sub_pkt_size表示视频数据包中子数据包的长度;nb_source_sub_pkts表示视频数据包中OSP数目;nb_redundant_sub_pkts表示视频数据包中RSP数。
图2 EUDP协议中视频数据包格式
当源车辆需要传输一个视频数据时,它首先计算基于(I,P,B)帧格式的冗余子数据包数nb_redundant_sub_pkts。采用非均衡的保护策略。因此,假定I帧、P帧和B帧的冗余率分别为PR_I、PR_P和PR_B。然后,再依据三个帧的冗余率,选择相应的nb_redundant_sub_pkts值。最终,生成视频数据包,再向邻居节点传输。源车辆产生视频数据包的伪代码如图3所示。
图3 源车辆产生视频数据包的代码
一旦接收到视频数据包,节点从中数据包中提取数据包首部信息,即Sub_pkt_size、nb_redundant_sub_pkts、nb_source_sub_pkts的值。然后,再依据这些值,并利用SPER标准计算EPER。计算过程如下。
假定视频数据包数为N。首先,估计BER。EUDP先估计在时间段dt内的BER,定义如式(1)所示。
(1)
其中Success(dt)表示在时间段dt内成功接收的数据包数,相应地,Total(dt)表示在时间段dt内传输的视频数据包数。
接下来,计算SPER,其表示接收车辆不能恢复的子数据包视频的概率,其定义如式(2)所示。
SPER=1-(1-BER)sub_pkt_size
(2)
最后,计算有效数据包差错率(Effective Packet Error Rate, EPER)。EPER表示接收车辆不能恢复视频数据包的概率,定义如式(3)所示。
(3)
其中k、h分别表示数据包中OSP、RSP数。
一旦计算EPER后,接收车辆就随机地产生一个数r,且r∈[0,1]。然后将r与EPER进行比较。如果r值大于EPER,则说明接收车辆能够恢复数据包,并接收该数据包。否则,就丢弃此数据包。接收视频数据包的伪代码如图4所示。
图4 接收视频数据包的处理过程
依据NS2.35[11]建立仿真平台,分析EUDP性能。同时,引用Evalvid 框架[12]产生源车辆、接收车辆端的VSG的轨迹文件。同时,再采用SUMO[13]产生车辆移动模型。仿真过程中,选择AODV作为路由协议,并选择视频数据包由400帧构成,且采用IBBPBBPBB的GoP结构。
为了更好地分析EUDP性能,选择EUDP-E、传统的UDP协议进行比较。其中EUDP-E是基于UDP,并采用SPFEC策略,但没有采用非均衡的视频帧类型。同时,在EUDP-E协议中,所有视频数据包(I,P,B)中的冗余子数据包数相同。此外,EUDP协议中I帧、P帧的冗余子数据包是B帧冗余子数据包数的两倍。因为,I帧和P帧的重要性高于B帧。仿真参数如表1所示。
表11 仿真参数
仿真参数值仿真参数值车辆数100场景V2V通信视频文件Foreman.yuv路由协议AODV视频数据尺寸1024 bits子数据包尺寸100 bits通信半径300m比特误码率0-0.005传播模型TowRayGround视频帧数400
首先分析变化的BER对平均EPER和视频数据包传输率的影响,数据如图5所示。
从图5a可知,BER的增加,增加了平均EPER。但是,UDP协议的平均EPER随BER的增加上升远高于EUDP和EUDP-E。原因在于:UDP协议并没有采用差错数据包的恢复机制,而EUDP和EUDP-E采用冗余机制去恢复错误的子数据包。与EUDP-E协议相比,EUDP协议的平均EPER得到一定的控制。这主要是因为:EUDP协议中I帧和P帧的冗余率高于B帧,而EUDP-E协议采用相同的冗余率,对这些帧并没有区分。
图5 变化的BER对平均EPER和数据包传输率的影响
图5b显示了UDP、EUDP和EUDP-E协议的数据包传输率随BER的变化曲线。从图5b可知,BER的增加,降低了数据包传输率。与UDP、EUDP-E协议相比,提出的EUDP协议的数据包传输率得到有效地提高,原因在于:EUDP协议的平均EPER低于UDP、EUDP-E协议的EPER。
实验二分析在BER=0.02时,400帧的PSNR和MOS性能,实验数据如图6所示。
从图6a可知,与EUDP-E协议相比,在400帧视频数据中,EUDP协议的PSNR得到有效地提高,原因在于:EUDP-E协议并没有对I、P帧进行保护策略,这也降低了B帧的视频服务质量。此外,UDP协议的PSNR最低,这主要是因为UDP并没有采用任何差错恢复机制。
图6 所有视频帧对PSNR和MOS的性能影响
与图6a相似,图6b也显示了BER=0.02环境下的400帧的MOS值。从图6b可知,EUDP协议的多数帧的视频质量是优化,MOS值达到4。这远高于EUDP-E和UDP协议。例如,UDP协议的MOS值只为1,而EUDP-E协议的多数MOS值也为1。
本次实验分析在不同BER对平均PSNR和平均MOS的影响,实验数据如图7所示。
从图7a可知,在BER的变化区间,UDP协议的平均PSNR远低于EUDP和EUDP-E。原因在于:UDP协议的数据包传输率低于EUDP和EUDP-E协议。此外,EUDP协议的平均PSNR高于EUDP-E,这主要是因为:EUDP协议对I帧和P帧提供了更高的保护。
图7b显示了BER对平均MOS的影响。从图可知,当BER低于0.003时,EUDP协议提供了更高的视频流的服务质量(平均MOS达到4)。而EUDP-E协议仅在BER低于0.002时,平均MOS达到4。但是UDP协议的视频流服务质量更差,仅在BER低于0.001时,它的平均MOS才达到4。这些数据表明,相比于EUDP-E和UDP协议,EUDP协议采用了强健的差错恢复机制。
图7 BER对平均PSRN和平均MOS的性能影响
本文针对车载网络的视频流传输问题,提出基于UDP改进的EUDP协议。与UDP协议不同,EUDP协议采用SPFEC策略恢复错失子数据包,同时引用非均衡的视频帧格式,提高视频数据包接收端的服务质量。实验数据表明,相比于UDP和EUDP-E协议,EUDP协议具有低的EPER和高的数据包传递率,并且提高了PSRN和MOS。
后期,在EUDP协议基础上融入交错控制技术,避免视频的突发差错,进而提高EUDP协议的性能。