首页>论文>正文
日期
10/08
2010
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

实时无线视频系统中的传输差错处理
收藏
2010-10-08 10:47:12来源: 胡倩 胡栋

摘要:论文基于无线多模式视频传输系统,讨论了在WLAN和CDMA两种主要模式下终端的包乱序和丢包情况下的处理方法。对WLAN中的包乱序,采用在终端开辟合适的缓冲区进行包重排;而针对CDMA中的丢包现象,则结合实际传输时延RTT,分不同的情况进行处理。实验证明,提出的方案能有效提高实时终端视频的重建质量。
关键词:无线视频,丢包,乱序,WLAN,CDMA

1引 言
随着移动通信技术和视频压缩方法的迅速发展,利用无线IP网络传输实时视频流技术受到了人们的关注。但在无线IP网络通信中,不可避免地会发生网络拥塞、丢包、包乱序、以及延迟等问题,直接导致接收端视频播放的流畅性和清晰性受到损害,严重时甚至无法播放。因此,需要在视频传输中综合应用压缩编码、QoS控制以及服务器的流调度等技术实现IP网上资源的高效利用,达到高质量的视频播放。
本文在自行设计并实现的多模式无线视频传输系统上,针对无线IP网络中视频流传输出现的丢包和包乱序问题提出相应的解决办法,从而达到更好的视频播放质量。文章主要包括四个部分:第一部分介绍自行设计的多模式无线视频流传输系统框架;第二部分介绍WLAN模式下的乱序包的处理策略;第三部分介绍和分析在CDMA模式下丢包的处理;最后是本文的总结。
2 多模式无线视频传输系统[1]
本文研究的对象——多模式无线视频传输系统是由TM1300移动终端、视频转发服务器和视频显示端三个模块组成的,采用CDMA,GPRS或WLAN三种方式接入,实现无线IP视频传输。系统构成如图1所示。

                                  图1无线多模式传输系统框架

   TM1300端主要完成视频的采集,H.263压缩编码、码流的发送控制以及根据所处的网络状况在多种无线网络中进行自动切换的工作;视频转发服务器用于移动终端和视频显示端的注册请求控制以及视频流转发服务;视频显示终端则能完成码流数据的解码显示,硬盘存储和回放功能。
在该系统中,采用UDP协议来实现视频流的实时传输,由于UDP协议是不可靠的,基于UDP协议的应用程序在网络发生拥塞的时候,容易发生数据的丢包和强占等问题,而且数据包的传输是无序的。因此系统采用UDP/RTP/IP方案,利用RTP协议在UDP数据包中添加时间戳和序列号等控制信息,控制网络传输的可靠性。
3 WLAN模式下终端的乱序包处理
使用WLAN模式在内网中传输视频流,丢包率比较低,所以包乱序是影响传输质量的主要问题。
包乱序是网络传输中常见的现象,造成包乱序的的原因很多。可能是由于网络组件和链路的局部并行性[2],例如,路由器的负载平衡机制使得具有相同源地址和目的地址的数据包可能选择不同的路径传输,而各条路径的传输时延不同导致数据包到达终点发生乱序;也有可能与数据包的状态有关,若数据量太大,封包过小,造成网络传输拥塞,也会产生乱序;另外硬件的发包处理过程,也有可能造成包的乱序。


图2 (a)300字节封包(b)400字节封包(c)700字节封包
(d)800字节封包

3.1 WLAN模式下的包乱序分析
WLAN的理论速率最高能达到11Mbps(802.11bWLAN模式)。本系统中测试底层WLAN最大速率达到5.5Mbps左右,考虑到WLAN有可能在公网上传输视频,因此以600字节的净荷码流来封装一个RTP包。大量的实验表明,WLAN模式下丢包率一般都比较低,但是通过终端记录的包序列号发现数据包会出现周期为n的连续乱序。例如:假设n为64,序列号为3的包丢失后,必定在序列号与之相差64,即序列号为67的包出现之前出现。若出现在序列号63与65之间,占据了序列号为64的包位置,从而又导致序列号为64的包的暂时丢失,依此类推又开始了下一轮的周期乱序。
首先分析WLAN的传输链路的建立过程,由于测试是基于最简单的链路进行的,即视频经TM1300端采集,打包发送后,通过内网视频服务器转发直接到达同样也位于内网的显示终端。视频包的传输仅经过了一个服务器的转发,所以不会出现由于传输路径的不同造成时延而导致到达终点的包乱序。
其次考虑封包大小的不同对包乱序情况的影响,将数据包的大小修改成300字节,400字节,700字节和800字节四种情况。终端序列号情况如图2。从图中可以看出:300字节时,数据包会出现连续60个左右的数据包的前后错位,这样图像将会出现较大的抖动,质量很差;当封包大小为400字节时,乱序的情况严重,但出现周期仍是64附近;封包为700字节和800字节的时候,乱序的情况相对少些,但周期仍然在64附近,所以,该周期性乱序的现象与应该于封包的大小无直接关系。                      
最后,分析无线网卡的硬件结构,无线网卡的主芯片集成了发送和接收的缓冲,一般采用基于描述符和优先级的缓存管理模式,一个描述符对应一个缓冲区,由于发送描述符的控制权大部分时间属于主机,每次发送都有一个向主机请求的过程,只有当主机写了发送描述符轮询寄存器(TPPoll)后,芯片收到该指令,才会从主存中把待发送的数据复制到片内的发送缓冲中。所以,每次的发送过程都有一个与主机交互的过程,如果未请求到主机的命令,则会造成该数据包的顺序发送失败,只能等待下次发送,形成乱序。对此我们进行了实验,以600字节封包,修改描述符分别为64和32。结果见图3,证明了WLAN的周期性乱序是由于发端采用不同大小的描述符决定的。


图3(a)64位描述符收包序列号情况(b)32位描述符收包序列号情况

3.2 WLAN乱序包的处理及性能分析
乱序包的处理,一般是在接收端开辟一个新的缓存[3],在期望包到达之前把非期望的数据包暂存其中,当期望的数据包到达或包的数量到达阈值之后,调整好该缓存中的包顺序,再放到原来的解码缓存中进行解码显示。由此带来的问题主要是缓冲区的大小如何确定?
基于前一节的讨论,我们知道包乱序的周期和发送缓存设置的描述符大小有关,所以开设缓冲的大小应该随描述符的大小改变。假设发送端使用的是n位描述符,所以终端出现的乱序都发生在n个包之内,显然可以直接设置新开的缓冲区大小为n×600字节。具体的处理过程如下:
Step1:出现丢包时,将所丢包的下一个包放入新开辟的缓冲内,记录下丢包的序列号;
Step2:后来的包逐一与丢包序列号比较,大于其的都放入新开辟的缓冲内,小于的则丢弃;
Step3:若缓冲区已存储了n个包仍未找到丢的包,则把这n个包排序并发送到原来的解码缓存中进行解码显示;若不到n个包就出现了丢失的包,应先把丢失的包先放到原来的解码缓存中,再把新开辟的缓冲中的包排序后拷贝到解码缓冲中。
图4是未进行乱序包处理和经过乱序处理后的对比图像。左边的(a)(c)两幅是未做乱序包处理的结果,右边的(b)(d)两幅是经过乱序包处理的后的结果。很明显图像的质量有质的变化。

4 CDMA模式下的丢包处理
4.1 CDMA模式下丢包现象分析

当系统在CDMA网络模式进行传输时,丢包成为图像质量下降的主要因素。而且丢包率的大小与时间段关系密切。在晚上用户量增加的高峰期,丢包率会大大增加。图6就是早上和晚上CDMA网络传输时的丢包率。很明显晚上的丢包率大大提高。
另外,在带宽有限的CDMA上传输数据包,封包的大小会直接影响到终端接收包的情况。采用较小的封包,虽然可以有效地抗丢包,但传输效率低;而采用尺寸大的数据包,丢包将会严重,但传输效率高。所以封包的大小是直接影响丢包率高低的原因之一。表1是我们采用不同封包的大小传输时的丢包率测试结果。表中可以看出随着封包字节的增加接收传输的效率明显提高,但是丢包率也会随之变化,但在500字节和600字节时丢包率却较300字节和400字节低,所以在实际的传输中选择使用600字节打包发送。

表1


封包大小(字节)

300

400

500

600

700

800

丢包率  (%)      

0.5965

0.6966

0.4961

0.4979

0.6161

1.087

接收速率(kb/s)

28.5106

32.0289

34.5876

35.2386

39.9198

41.113


4.2 CDMA模式下丢包现象的处理
   针对CDMA传输视频时的丢包的现象,可以在固定包长的情况下,根据往返时间(RTT)的长短结合跳帧的情况确定是否对丢失的包进行重传,即所谓的延迟约束重传,又称为选择性重传。
往返时间(RTT)是RTCP质量参数中的一项。其计算过程如下图5:

接收端收到发送端发出的SR报告包后发送RR报告包,将接收端自接收到SR到发出对应RR包之间的延时为DLSR(delay since last SR)。从SR报告包的NTP时间戳域中提取中间32位作为其LSR(last SR timestamp)时间戳。如果没有发送端发出的SR 包,则LSR和DLSR都置为0。将LSR及DLSR的值填入RR报告包的相应域中。设接收端接收到SR报告包的时刻为A,则单向时延Tdelay为(A-LSR)。设接收端在收到SR包后发出RR包时的时间为B,即DLSR=B-A,此后发送端收到RR包的时间为TB,则往返传播时延RTT为:RTT=(TB-B)+(A-LSR )
=TB-LSR-DLSR  (DLSR=B-A)
在系统中如果单向传输时间远低于播放所允许的延迟,则可以采用重传作为差错控制机制。当接收端观测到包N丢失,如果Tc+RTT+Ds<TD(N),则请求发送端重传包N,可以是接收端控制,也可以是发送端控制, 其中Tc是当前时间,RTT是估计的往返时间,Ds是为了容忍RTT估计误差、发送端响应时间、接收端解码延迟而设置的时间,Td(N)是包到达的时间期限。
在重传的过程中收端也需要开辟新的缓存,其大小应该根据视频的延迟和rtt时间综合估算。
但对于视频流,因为对时延的敏感更胜于对丢包的敏感,所以在收端条件不允许采用数据包重传的时候,应该直接考虑在正确接收的数据包基础上直接利用接收数据包的冗余信息,提供更为满意的解码视频流输出,即直接做终端的错误隐藏和误差恢复技术[8] 。

图6 CDMA在不同时段的丢包率


5 结束语
  本文在利用UDP/RTP/IP方式传输的无线通信系统中,以提高视频流的质量为目标,具体分析了WLAN和CDMA两种模式下,显示终端的包乱序和丢包的问题,提出了相应的解决方法,实验结果表明,由于无线网络的传输特性,网络丢包和乱序不可难免,经过我们提出的方案能够较原来更好的恢复出图像的质量,但是由于在终端进行了包的重排和重传的处理,必定会带来一定的时延。所以,如何权衡时延与图象质量提高之间的平衡将会是下面的研究重点。

参 考 文 献
[1] 张殷希,张凤。多模式无线视频码流的传输与控制[J] 电力系统通信。2005,(10):19-26
[2] J Bennett , C Part ridge , N Shectman . Packet Reordering is not Pathological Network Behavior [J ] . IEEE/ ACM Trans on
Networking , 1999 , 7 (6) :789 - 798.
[3] 苏艳艳,王瑞阳。数字多路视频监控系统的设计与实现[J] 计算机应用与软件。2005(6)59-61
[4] 葛志辉 陈志刚。一种新的基于RTT的丢包率估计算法[J] 计算机工程与应用。2005(19)26-2
[5] 杨传栋,余镇危,王行刚,张俊清。端到端的流媒体传输控制技术研究综述[J] 计算机工程与应用 2005(8) 26-30
[6] 潘慧斌,方延龙,周源华。克服无线网络中丢包的实时视频传输方案[J] 电视技术 2004(12)38-40
[7] 鲁宏伟 基于UDP传输协议的包丢失和失序处理[J] 计算机工程与应用 2001(2)48-50
[8] Busse I,Deffiner B.etal Dynamic QoS control of Multimedia application based on RTP[J].Computer Communications,1996,19(1) 49-58