视频实时传输系统设计与拥塞控制策略研究

视频实时传输系统设计与拥塞控制策略研究

ID:36636537

大小:497.60 KB

页数:60页

时间:2019-05-13

上传者:U-145848
视频实时传输系统设计与拥塞控制策略研究_第1页
视频实时传输系统设计与拥塞控制策略研究_第2页
视频实时传输系统设计与拥塞控制策略研究_第3页
视频实时传输系统设计与拥塞控制策略研究_第4页
视频实时传输系统设计与拥塞控制策略研究_第5页
资源描述:

《视频实时传输系统设计与拥塞控制策略研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

中南民族大学硕士学位论文视频实时传输系统设计与拥塞控制策略研究姓名:钟华彪申请学位级别:硕士专业:生物医学工程指导教师:刘海华20090422 中南民族大学硕士学位论文摘要随着网络技术的飞速发展,远程医疗、远程教育、视频会议等多媒体应用逐渐发展成为网络的主要业务。基于对象的MPEG-4视频编码由于在时间和空间上提供了可扩展的灵活分级编码技术,从而成为网络多媒体应用中主要的视频编码标准,因此,基于MPEG-4编码技术的视频实时传输成为研究热点之一。然而,目前基于Internet的视频传输协议,仍然缺乏比较有效的拥塞控制机制,而拥塞控制机制对多媒体应用的健壮性和稳定性起着至关重要的作用。所以研究用于各种网络环境,并能解决传输公平性的拥塞控制机制具有十分重要的理论价值和应用前景。新的拥塞控制机制研究必须满足MPEG-4视频实时码流传输速率的平稳性,同时又能实现与TCP公平共享网络资源的友好性。为此,本文研究的主要内容包括以下几个方面:首先,通过对MPEG-4视频编码标准与RTP/RTCP协议的研究,利用DirectShow、Jrtplib和XVID构建了基于RTP/RTCP的MPEG-4视频传输系统框架。在该框架中,实现了服务器端和客户端的视频实时传输和播放。其次,为了提高视频传输的性能,改进了视频传输中的数据封装策略。针对MPEG-4视频编码基于对象的特点,采用以视频对象为单位的MPEG-4视频流封装策略,而只在某些特定情况下采用基于宏块的封装策略,从而提高了视频传输的有效性和鲁棒性。最后,比较和分析了各种TCP友好拥塞控制算法,提出了能避免瞬时突发流干扰的拥塞控制算法(ME-TFRC)。该算法利用“最小速率限制定时器”,改进吞吐量模型参数的计算方法,从而避免了网络瞬时突发流对网络带宽准确估计的干扰,保证传输的平稳性和有效性。通过深入分析网络拥塞产生的原因,发现对于实时性视频传输,TFRC算法很容易导致传输速率低于应用设置最低速率,从而引起无效传输。针对此问题,虽然通过确定网络拥塞程度的“可容忍拥塞程度因子”和判断网络状况的“无反馈定时器标准”,可以解决TFRC在不同拥塞程度下所带来的问题。但是,在传输网络上还存在大量的网络瞬时突发流,给网络带宽估计带来了干扰,极大地影响传输的平稳性。为此,本文根据TFRC算法模型,改进了模型参数的计算方法,并在网络发生拥塞时,利用“最小速率限制定时器”确定网络拥塞时按最小速率发送所持续的时间,从而避免瞬时突发流对网络带宽估计的影响,实现网络拥塞的准确判断,保证系统的平稳传输。综上所述,通过对实时传输技术和拥塞控制理论的深入分析,改进了视频数I 视频实时传输系统设计与拥塞控制策略研究据的封装策略,提出了有效的拥塞控制算法,解决TFRC在网络拥塞情况下视频数据无效传输的问题,保证了视频实时播放。实验结果表明,本文提出的封装策略和拥塞控制算法达到了预期设计的要求,所构建的传输系统能保证视频数据的实时传输。关键词:视频传输;封装策略;拥塞控制;TCP友好速率控制II 中南民族大学硕士学位论文ABSTRACTWiththefastdevelopmentofnetworktechnology,theapplicationofmultimediasuchastelemedicine,long-distancemultimediaeducation,andvideoconferenceetcisdevelopingasmainbusinessofInternet.MPEG-4encodingbasedonVOPwhichprovidesflexiblyscalablecodingtemporallyandspaticallybecomesmainvideoencodingstandardofInternetmultimedia.Therefore,MPEG-4encodingtechnologybecomesoneofhotresearchonreal-timevideocommunications.However,recentInternetTransmissionprotocolisstilllackofeffectivecongestioncontrolmechanismforthemediastreamingapplications.Congestioncontroliscrucialfortherobustnessandstabilityofthemediastreamingapplications.Therefore,ithashightheoryvalueandgoodapplicationforegroundtodesignacongestioncontrolmechanismwhichcanbeusedinvariousofnetworkenvironmentandalsocansolvetheproblemoftransmissionfairness.NewcongestioncontrolnotonlyneedtosatisfythestabilityofMPEG-4real-timevideotransmissionspeedbutalsoachieveafairsharingofnetworkandTCP-friendlyresources.Therefore,thethesisdoessomeresearchasfollows:Firstly,bystudyingRTP/RTCPprotocolandMPEG-4encodingstandard,thisthesisintroducesamethodtobuildupaframeworkofMPEG-4videostreamtransmissionsystembasedonRTP/RTCPprotocolusingDirectShow,JrtplibandXVID.Intheframework,thereal-timetransmissiononserverandclientisachieved.Secondly,toimprovethecapabilityofvideotransmission,weproposeanewvideodatapacketizationmethod.AccordingtothefeatureofMPEG-4encodingbasedonVOP.WeadoptvideodatapacketizationbasedonVOPlevelwhichimprovesrobustnessandinteractivityduringvideotransmission,butonlyinparticularcircumstances,macroblock-basedpackagingstrategyisadopted.Lastly,bycomparingandanalyzingvariousofTCP-friendlycongestioncontrolalgorithms,weproposeaalgorithmwhichcanavoidinterferingofinstantaneousburstdatastreamings(ME-TFRC).Thealgorithmprovesthecalculatingmethodofparameterofthroughputmodelusingleastspeedrestrictingtimertoavoidinterferingofnetworkinstantaneousburstdatastreamingswiththeaccurateestimateofnetworkbroadband.Itensuresthestabilityandvalidityoftransmission.Byanalyzingreasonsofnetworkcongestionthoroughly,forreal-timevideotransmission,TFRCalgorithmcaneasilyleadtoinvalidtransmissionbecauseofIII 视频实时传输系统设计与拥塞控制策略研究transmissionspeedlowerthanthesettingofleastspeed.Although,the"degreeoftolerancecongestionfactor"todeterminethedegreeofnetworkcongestionandthe"nofeedbacktimerstandard"todeterminethestatusofthenetworkcansovletheproblemindifferentTFRCcongestion,transmissionnetworkstillexistsmuchburstdatastreamingsthatcauseinterferingofestimateofnetworkbroadbandandaffectthestabilityoftransmission.Therefore,thisthesisimprovesthecalculatingmethodofTFRCalgorithmmodelparameter,andusesleastspeedrestrictingtimertoensurethelastingsendingtimeonleastspeed,whichcanavoidtheeffectionofestimateonnetworkbroadbandcausedbyburstdatastreaming,realizetheexactdetermineofnetworkcongestion,andmakesurethesystemtransmissionisstable.Inshort,thisthesisimprovesvideodatapacketizationmethodandproposesaeffectivecongestioncontrolalgorithmthatsolvetheproblemofvideodatainvalidtransmissionundernetworkcongestioncircumstancesforTFRCandensurethereal-timevideotransmission.Experimentsshowthatproposedvideodatapacketizationalgorithmandcongestioncontrolalgorithmachieveexpectedrequirement,andthatthetransmissionsystembuiltupensurereal-timevideotransmission.KeyWords:videotransmission;packagingstrategy;congestioncontrol;TCP-FriendlyRateControlIV 中南民族大学学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权中南民族大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密□,在______年解密后适用本授权书。2、不保密□。√(请在以上相应方框内打“√”)作者签名:日期:年月日导师签名:日期:年月日 中南民族大学硕士学位论文第1章绪论1.1研究课题的背景和意义随着网络技术的不断发展,传输信息不仅仅只有简单的文本文件和图像信息等,而是朝着以音频、视频等组成的多媒体方向发展。同时,随着网络带宽的不断增加和覆盖面的不断扩展,越来越多的人需要基于网络传输的多媒体应用,其中实时多媒体业务的应用是一个重要部分,如远程医疗诊断、远程医疗教育、电子商务、视频点播、可视电话、视频会议等。因此,多媒体应用极大地推动了互联网的发展,也成为目前网络应用的主流。视频作为多媒体数据的一种形式,由于数据量大,其传输所需要的带宽大,而目前的网络带宽还不能满足要求。因此,为了实现视频图像传输的实时性,必须对视频数据进行压缩处理,以满足现有网络传输带宽要求,从而出现了多个视频图像压缩编码标准。MPEG-4(MovingPictureExpertGroup–4)视频压缩编码作为国际运动图像压缩标准之一,它的出现正是为了适应多媒体等实时业务的发展。该压缩编码标准第一次提出了视频对象VO(VideoObject)的概念,打破了过去一直使用的矩形帧编码方法[1]。这种基于视频对象的编码方法,实现了MPEG-4视频图像在时间和空间上可扩展的灵活分级编码,使MPEG-4编码标准具有交互性、高灵活性和可扩展性等特点。从它开始出现的那一刻就获得了普遍的关注,是目前以及下一代网络多媒体传输技术的主要格式和标准。MPEG-4视频基于IP网络的传输,必需考虑两者之间的融合,因此MPEG-4视频的实时传输成为网络应用的热点之一。目前的网络提供的是“尽力而为”(best-effort)服务,对IP分组的丢包率、时延和抖动等无法控制,无法为MPEG-4视频传输提供服务质量QoS(QualityofService)保证。特别是诸如带宽、丢包率、时延和抖动等网络状况和网络特性都随事件而不断变化[2]。因此,MPEG-4视频在网络上如何有效传输面临着许多挑战。有效的拥塞控制机制对整个网络的稳定性起着非常重要的作用,在视频等多媒体业务的传输中具有举足轻重的地位。所以为MPEG-4视频传输加上拥塞控制机制是非常必要的,且所采用的拥塞控制机制必须是传输控制协议TCP(TransmissionControlProtocol)友好的,即传输时不应该影响其他TCP流的正常传输[3]。因此,研究适合MPEG-4视频实时传输的拥塞控制机制是有着重要的意义。1.2国内外研究现状目前,多媒体系统中的视频压缩标准主要有国际电信联盟(ITU-T)的H.26X系1 视频实时传输系统设计与拥塞控制策略研究列和国际标准化组织/国际电工委员会(ISO/IEC)关于活动图像的MPEG系列编解码标准,以及网络上流行的WMT、QuickTime和RealVideo等。其中,MPEG-4的出现正是为了适应多媒体应用的发展,其基于对象的灵活分级编码技术,使其适合在Internet上传输。互联网工程任务组IETF(InternetEngineeringTaskForce)开发的实时传输协议RTP(Real-timeTransportProtocol)和实时传输控制协议RTCP(Real-timeTransportControlProtocol)是基于Internet的多媒体实时传输协议[4]。其中,RTP的目的是提供时间信息和实现流同步,其本身不提供可靠的传输机制,而是依靠RTCP提供流量控制和拥塞控制。RTP/RTCP能以较小的反馈开销使传输效率达到最佳化,因此特别适合实时数据传输。由于MPEG-4是基于对象编码的,在文献[5][6]中,提出了一种基于视频对象的RTP封装策略,使之能提高封装效率和网络传输的鲁棒性。另一方面,TCP是网络中最主要的传输协议,但其拥塞控制机制不适合多媒体实时传输。因此,大部分多媒体都是采用用户数据报协议UDP(UserDatagramProtocol)进行传输数据。随着视频等多媒体业务在网络中的不断发展,UDP流占网络全部流量的比重将会逐渐增大。但是UDP并未提供拥塞控制机制,对网络的拥塞不做响应,会造成对TCP流的不公平,甚至导致网络崩溃。所以,研究适合视频实时传输的拥塞控制机制,必须考虑TCP友好性(TCP-Friendly)。TCP-Friendly的定义为[7]:在相同的网络环境里,如果一个非TCP流长期的吞吐量不超过相同条件(相同的路径、丢包率、包大小、往返时间)的TCP连接的吞吐量,就可以称此非TCP流为TCP-Friendly流。目前,研究人员已经提出多种TCP友好的拥塞控制机制,大致分为两类:一类是基于窗口的,其代表有GAIMD[8](GeneralAdditiveIncreaseMultiplicativeDecrease),BCCA[9](BinomialCongestionControlAlgorithms)等。基于窗口的控制方式是以数据包个数为单位,根据网络有效可用带宽采取缓慢增加或减少拥塞窗口的策略。由于基于窗口的拥塞控制算法和TCP拥塞控制算法非常类似,因此可能产生突发流,不太适合视频的实时传输。另一类是基于速率的。其控制方式是以每秒发送的比特(bit)数为单位,根据估计网络的可用带宽,调整数据的发送速率,从而减轻或者避免网络拥塞的发生。基于速率的算法又可以分为基于探测和基于模型两种类型。基于探测的速率控制[10]算法有MIMD(MultiplicativeIncreaseandMultiplicativeDecrease)和AIMD[11](AdditiveIncreaseandMultiplicativeDecrease),RAP[12](RateAdaptationProtocol)和LDA+[13](EnhancedLoss-DelayBasedAdjustmentAlgorithm)等方法。基于探测的控制算法容易造成输出码流的固有波动性,也不适合视频的实时传输。基于模型的拥塞控制算法在视频实时传输中的应用比较广,在文献[14]中,Mahdavi2 中南民族大学硕士学位论文等人第一次提出了基于模型的TCP友好速率控制算法TFRC(TCP-FriendlyRateControl),该算法可以减少视频发送的抖动性。但是,随着研究人员对TFRC算法的深入研究,发现该算法仍然存在一些不足。首先,TFRC在网络发生拥塞时会引起数据的无效传输,不能满足视频实时传输具有最低传输速率的要求,从而导致视频播放质量下降等;其次,由于其依靠分组丢失率判断网络状态,而分组丢失率极易受带宽变化的影响,因此将会影响带宽的准确估计;最后,发送速率在传输过程中仍然不够平稳。如何解决这些问题,是研究TFRC拥塞控制算法在MPEG-4视频实时传输应用中的非常重要的一环。1.3本文所做的工作与内容安排本文研究的重点是基于RTP的MPEG-4视频实时传输系统的构建及拥塞控制策略的改进。论文主要做了以下工作:首先,通过分析TCP/IP,UDP,RTP/RTCP协议,并对网络的拥塞控制算法的发展和现状做了详细的调查研究,目的在于对视频实时传输的应用背景及未来的发展趋势有较深入的了解,正确认识其优越性和不足之处。其次,通过对MPEG-4视频编码标准及RTP/RTCP协议的研究,利用DirectShow、Jrtplib和XVID构建了基于RTP/RTCP的MPEG-4视频传输系统框架。在该系统中,实现了服务器端和客户端的视频实时传输和播放。同时,为了提高视频传输的性能,改进了视频数据的封装策略。最后,分析现有的TCP友好拥塞控制算法。通过模拟实验,分析TFRC算法和文献[15]提出的改进算法ER-TFRC(EffectiveRateTFRC),针对TFRC的不足之处及ER-TFRC无法避免瞬时突发流的干扰等问题,提出了ME-TFRC(MoreEffective-TFRC)算法。实验结果表明,ME-TFRC在保证发送速率平稳性的同时,使系统传输吞吐量增大,且其丢包率降低,并通过对不同程度拥塞情况的网络模拟分析,ME-TFRC算法获得比较满意的结果,提高了视频实时传输的鲁棒性。本文的内容安排如下:第1章,绪论,主要阐述研究课题的背景和意义、研究现状以及目前完成的工作。第2章,分析视频传输的主要技术,首先介绍多媒体数据压缩技术,然后分析MPEG-4压缩编码标准及实时传输协议RTP/RTCP。第3章,利用DirectShow、Jrtplib和XVID构建了基于RTP/RTCP的MPEG-4视频传输系统框架,详细分析视频数据的封装策略及系统主要模块的设计,并测试系统在不同环境的播放质量。第4章,介绍产生网络拥塞的原因,分析常见的拥塞控制机制,并深入研究3 视频实时传输系统设计与拥塞控制策略研究已有的TCP友好拥塞控制算法,针对存在的问题,详细介绍本文的改进方法。第5章,介绍实验平台NS2,通过NS2对本文算法与已有的两种算法做了模拟实验,并对实验结果进行分析。最后对全文的研究工作进行总结,指出下一步研究工作的方向。4 中南民族大学硕士学位论文第2章视频实时传输技术2.1多媒体数据压缩技术数据压缩编码技术是解决视频数据量大与网络可用带宽小的矛盾的有效方法,在网络多媒体技术发展的各个方面都起着至关重要的作用。压缩编码的主要任务是通过压缩技术减少多媒体数据流的传输码率以适应网络传输的有效带宽,同时通过压缩编码的处理,改善网络传输后的回放质量。例如通过多码率编码处理,根据网络带宽的变化,可以动态地调整发送流的速率。目前有多个视频编码国际标准的制定,包含国际电信联盟(ITU-T)关于电视电话/会议电视的视频编码标准H.261,H.263及H.264等H.26X系列标准和国际标准化组织/国际电工委员会(ISO/IEC)关于活动图像的编码标准MPEG-1,MPEG-2和MPEG-4等MPEG系列编解码标准,另外还有网络流行的WMT、QuickTime和RealVideo等。这些标准算法融合了各种性能优良的图像编码方法,代表了目前图像编码的发展水平[16]。本文研究课题基于MPEG-4压缩编码标准实现,所以本小节主要介绍MPEG系列标准的压缩编码技术。活动图像专家小组MPEG(MovingPictureExpertGroup),是国际标准化组织(ISO)和国际电工委员会(IEC)联合技术委员会1(JTC1)的29分会(S29)的第11工作组(WG11),工作组的全称是:WG11ofSC29ofISO/IECJTC1。该小组于1988年成立以来为多媒体计算机系统、运动图像压缩编码标准的制定等作出了突出贡献。MPEG专家小组先后制定过MPEG-1、MPEG-2、MPEG-3、MPEG-4、MPEG-7、MPEG-21等压缩编码标准,以满足在不同时期和不同领域对多媒体数据的编码要求。其中,MPEG-1是MPEG标准系列的基础。MPEG-1标准是在1990年被提出并于1992年正式通过,是为工业级标准而制定的,定义为:速率约为1.5Mbit/s以下的数字媒体的活动图像及其伴音编码(Codingofmovingpicturesandassociatedaudiofordigitalstoragemediaatuptoabout1.5Mbit/s)。MPEG-2标准制定于1994年,是为高级工业标准的高质量图像及高传输率而设定的。其定义为:活动图像及相关声音信息的通用编码(GenericCodingofMovingPictureAssociatedAudioInformation)。MPEG-2是在MPEG-1基础上做的改进与扩展。MPEG-4标准在1998年正式通过。其定义为:视听对象的编码(CodingofAudio-VisualObjects),原来的标准名称是甚低速率视听编码(Very-lowbitrate5 视频实时传输系统设计与拥塞控制策略研究audio-visualcoding)。该标准采用基于对象的概念,利用很窄的带宽,通过帧重建与数据压缩技术,从而达到用最少的数据获得最佳质量的图像。MPEG-7和MPEG-21的提出成为了MPEG标准的新成员。2.2MPEG-4视频编码标准2.2.1MPEG-4编码技术(一)MPEG-4编码的特点MPEG-4标准是以第二代视频编码方法为基础的,其与MPEG-1和MPEG-2不同,主要是为了适应人们对多媒体信息,特别是视频信息应用的特殊需要而制定的,更加强调多媒体通信的交互性和灵活性[17]。MPEG-4不是具体的压缩算法,而是为多媒体数据压缩提供了一个更为广阔的平台,更多定义的是一种格式,一种架构[18]。MPEG-4标准试图达到两个目标:一个是在低比特率下的多媒体通信;另一个是多工业的多媒体通信的综合。MPEG-4标准最重要的特征有[19]:(1)基于对象的编码。传统的编码都是基于帧的,无法对对象进行操作,而MPEG-4引入了视频对象VO(VideoObject)概念,把视频分割成不同的对象,对每一个对象的编码形成一个对象码流层,该码流中包含着对象的形状、位置、纹理及其他方面的属性。对一幅图像编码所形成的码流由一系列对象层码流构成,用户可直接对“对象层”进行存取操作,这样就使得操作、控制对象成为可能;(2)根据可用带宽和误码率的客观条件在时域和空域上有灵活的可扩展性。时域扩展是在带宽足够时在基本层上的增强层中增加帧率,在带宽窄时在基本层中减少帧率;空域扩展是指对基本层中的图像进行插值,增加或减少空间分辨率,以达到充分利用带宽,使压缩图像的质量更好。(二)MPEG-4编码技术MPEG-4编码的理念是:在编码时,将一幅景物分成若干在时间和空间上相联系的视频对象,分别进行编码后,经过复用传输到客户端;客户端对不同对象分别解码,再组合成所需的视频进行播放[20][21]。MPEG-4标准将视频码流的语法层次分为视频会话VS(VideoSession)、视频对象VO(VideoObject)、视频对象层VOL(VideoObjectLayer)和视频对象平面VOP(VideoObjectPlane)[22][23]。一个完整的视频序列由多个VS构成,一个VS又由多个VO构成,VO是某个场景中的具体物体,具有生命周期,然后每个VO又有多个VOL,VOL是表明VO的时间和空间分辨率的一个类型。某一帧中的VO就是VOP,即VO是以VOP的形式出现的。MPEG-4编码是对每个VOP进行独立的编码,分为I-VOP(IntraVOP)帧,P-VOP(PredictedVOP)帧和B-VOP(Bidirectionally-PredictedVOP)帧。其结构分级图如图2.1所示[24]。6 中南民族大学硕士学位论文VSVS1VS2VOVO1VO2VOLVOL0VOL1VOPVOP1VOPnVOP1VOPn图2.1MPEG-4视频流结构分级图其中,I-VOP帧是基于块进行编码的,包括编码头、图像分割、块编码和生成码流。其将图像分割成16×16宏块,进而每个宏块又分成4个8×8的亮度块(Y块)、1个色差块(U块)和另1个色差块(V块),然后块编码,最后进行一维扫描游程编码和霍夫曼编码,其在编码时只用到了自己的信息。P-VOP帧主要包括编码头、运动估计、P-VOP图像纹理编码、运动向量编码。其中,运动估计的作用是实现图像搜索和图像的运动向量,以决定运动类型和运动方式,纹理编码主要实现运动补偿和残差编码,其在编码时需要用到之前的VOP作为参考,再进行运动估计和补偿。B-VOP帧支持基于宏块的运动估计和交织的场运动估计,允许采用与H.263类似的直接运动估计,估计模式有向前模式、向后模式、双向模式和直接模式,其纹理编码和运动向量编码与P-VOP类似,但在编码时要用到先前和后续的VOP作为参考,然后再进行运动估计和补偿[25][26]。(三)MPEG-4编码的实现MPEG-4编码的目标在于采用现代图像编码方法实现支持基于内容的交互性等功能。实现这个目标的关键在于基于视频对象的编码,因此,MPEG-4提出了视频对象面VOP。针对视频数据,MPEG-4采用VOP进行编码,主要包括离散余弦变换(DCT)、量化以及编码三个阶段,如图2.2所示。输入原始视频数据离散余弦变换量化编码经过压缩后的视频数据图2.2MPEG-4编码流程MPEG-4的VOP视频数据经过离散余弦变换,量化再进行编码。具体到MPEG-4编码器,还需要进行帧存储用于运动信息(运动估计和预测)编码和条状7 视频实时传输系统设计与拥塞控制策略研究编码,然后将编码数据传入视频复用器进行视频多路复用,最后生成视频数据流以进行传输[25][27]。MPEG-4标准同时采用了分层编码,将视频流分成基层和增强层。基层携带最重要的视频和时间信息,增强层则用来渐进地提高视频质量。不同的码层被赋予不同的优先级,基层比增强层有更高的优先级[4]。因此,当网络出现拥塞时,可以通过丢弃优先级较低的码流,以保证视频流传输的质量。MPEG-4的具体编码框图如图2.3所示。视频流+DCT量化运动和纹理编码复用器编码后视频流逆量化逆DCT+预测1预测预测2帧存储器开关预测3运动估计形状编码图2.3MPEG-4的编码框图MPEG-4视频编码的实现可以分为3步进行[25]:(1)从原始视频流分割出视频对象;(2)对输入的任意形状的VOP序列,用基于块的混合编码技术编码,处理顺序是先I-VOP帧,然后是P-VOP帧和B-VOP帧。其过程是:对VOP进行形状信息编码,取得任意形状VOP的采样,将每个VOP用宏块栅格分成互不相交的宏块,每个宏块含有4个8×8像素块进行运动估计和补偿以及纹理编码;然后将编码好的VOP帧保存在帧存中,在当前VOP帧和已编码的VOP帧之间计算运动矢量,对即将被编码的块和宏块,计算它们的运动补偿预测误差;运动补偿预测后的I-VOP帧及其误差用8×8块进行DCT变换,并进行系数的量化,最后是行程编码和熵编码;(3)每个视频对象的形状、运动纹理信息复合成VOL比特流,各视频对象视频流复合成统一的码流输出。其中,有两点值得注意:一是编码时,不同视频对8 中南民族大学硕士学位论文象的运动、形状、纹理信息应分配不同的码字;二是对于甚低码流(<64kbps)的应用,需要用方块滤波器进行相应处理。2.2.2MPEG-4解码技术在MPEG-4的解码过程中,场景采用层次化的树型结构。首先,经过编码的视频流传送到客户端,客户端对复合VO进行解复用,接着经过解码器后可得到多个VO,然后进行运动补偿,重建VOP和合成等,最后将解码后的视频流按照场景描述中的时空关系在客户端加以输出显示。用户的交互信息通过类似的过程由上行通道传送到发送端[28]。具体的解码过程见图2.4。形状解码解视频流复运动解码运动补偿重建VOP合成输出解码后的视频流用纹理解码VOP缓存图2.4MPEG-4的解码过程2.3RTP/RTCP协议视频网络传输的实时性要求远高于可靠性。当网络发生拥塞时,如果视频数据不能按时到达客户端,将导致令人难以忍受的服务质量。为了解决多媒体通信的实时性问题,互联网工程任务组IETF在1996年制定了RTP,作为RFC1889发布[4]。RTP被定义为两个部分:实时传输协议RTP(Real-timeTransportProtocol)和实时传输控制协议RTCP(Real-timeTransportControlProtocol)。RTP协议是一种针对视频等实时数据流在网络上传输的协议,在网络中的位置位于UDP协议之上,但不是一个独立的网络层次。当开始一个RTP会话时,会用到两个端口:一个给RTP,使用的是偶数号端口;另一个给RTCP,使用RTP端口后的奇数号端口。RTP协议依靠RTCP协议来提供流量控制和拥塞控制服务,以保证服务质量。而UDP协议由于缺乏拥塞控制机制,所以没有TCP协议的可靠性特点,无法保证实时应用的服务质量,但是UDP协议的传输时延比TCP低,可以保证传输的实时性,因此将UDP协议与RTP/RTCP配合工作,使传输效率达到最佳化,非常适合实时数据流的传输。2.3.1RTP数据包的结构与功能每个RTP数据包都是包括一个12字节的固定RTP头和不定长的连续媒体数据。RTP的标题是由4个报文标题域和其他域组成,其中4个报文标题域分别是9 视频实时传输系统设计与拥塞控制策略研究有效载荷类型域(PayloadType)、序列号域(SequenceNumber),时间戳域(Timestamp)以及同步源标识符域(SynchronizationSource(SSRC)Identifier)。RTP数据包头的格式如表2.1所示。表2.1RTP数据包头格式VPXCCMPTSequenceNumber(2位)(1位)(1位)(4位)(1位)(7位)(16位)Timestamp(32位)SynchronizationSource(SSRC)Identifier(32位)ContributingSource(CSRC)Identifiers…RTP包头的编码格式分别定义如下:版本号V(Version),表示当前的版本号,一般为2,占2bits;附加标记位P(Padding),如果P=1,表示包尾附有非负荷信息。这些附加信息可用于数据加密或者通知低层协议一个数据单元所封装的RTP包数等,占1bit;扩展位X,如果X=1,表示RTP头后附有一个变长的扩展头,占1bit;CSRC(贡献源)计数器CC,表示固定头后CSRC标志符的个数,占4bits;标记位M,用来标记重要事件,如帧边界等,占1bit;负荷类型PT(PayloadType),表示音视频数据的编码类型,占7bits;序列号SequenceNumber,客户端通过序列号可以检测数据包在传输过程中的丢包和失序等情况,每发送一个包,序列号就顺序加1。为了通信过程的安全,序列号的初始值是随机分配的,占2Bytes;时间戳Timestamp,用来描述RTP包中数据的采样时刻,主要用于同步和计算时延。时间戳的初始值也是随机分配的,占4Bytes;同步资源标志符SSRC(SynchronizationSourceIdentifier),用于标志同步资源。SSRC是随机选取的,在同一个RTP会话中,不能有两个相同的SSRC值,占4Bytes;贡献源标志符CSRC(ContributingSourceIdentifiers),用于识别与RTP包中载荷相关(提供载荷)的源,有0~15项,每项占4Bytes。由于CC项只占4bits,所以当贡献源超过15个时,也只能识别15个。RTP根据应用程序的要求将视频数据封装成RTP数据包再进行网络传输,主要依赖网络层发送来实现。10 中南民族大学硕士学位论文工作时,RTP协议从上层接收多媒体信息码流(例如MPEG-4视频流等),封装成RTP数据包发送给下层,下层协议再提供RTP和RTCP的分流,进而封装成UDP包。在UDP包中,RTP使用一个偶数号端口,对应的RTCP就使用随后的奇数号端口,而RTP数据包的最大包长只受下层协议的限制。在视频的实时传输中,RTP协议的主要功能如下:(1)可用于标识视频数据流的编码算法、采样频率及承载通道;(2)为每个视频分组标示序列号,便于接收端检测数据包丢包和失序等情况;(3)通过提供时间戳,可以用于同步及时延抖动等的计算;(4)可以监控视频数据在传输过程中的服务质量。2.3.2RTCP数据包的结构与功能RTCP包通过周期性地在会话成员间传输控制分组,获取会话成员的身份信息,为RTP提供流量控制和拥塞控制服务,以保证服务质量。RTCP报告包包含传输中的数据的辅助信息和网络性能等额外信息。与RTP包相似,RTCP报文一般也是封装在UDP报文中,然后进行传输,其发送报文的端口号比对应的RTP报文端口号大1。RTCP数据包的包类型带有五种控制信息,分别表示如下:发送方报告SR(SenderReport),用于活动的发送端发送和接收来自其它活动发送端发送的统计数据,主要用于进行多个媒体流同步等.;接收方报告RR(ReceiverReport),用于非活动方发送分组丢失、抖动及定时和往返时间估计的统计信息等,是接收质量的反馈;源描述符SDES(SourceDescription),用于提供参与者的详细信息,包含源描述信息的报告,如源运输层永久标识CNAME信息等;BYE(Goodbye),表示一个活动端发送报文的结束,但是不终止会话成员的关系;应用程序报文APP(Applicationdefined),各个应用程序可以根据自身不同的需求自行定义。RTCP协议的接收方报告包(RR)的格式与发送方报告包(SR)基本相同。不同点在于RR的包类型PT为201,且发送者信息中有5个字段被省略(包括NTP和RTP时间戳,发送者的包和字节计数等),其它字段二者相同。RTCP的SR包头结构如表2.2所示。SR包头结构的参数含义如下:版本号V,占2bits;附加标记位P,占1bit;接收报告数量RC(ReceptionreportCount),本报文中的接收报告数量,占11 视频实时传输系统设计与拥塞控制策略研究5bits;表2.2RTCP的SR包头结构VPRCPT=SR=200LengthSSRCofSenderNTP(NetworkTimeProtocol)Timestamp,mostsignificantwordNTP(NetworkTimeProtocol)Timestamp,leastsignificantwordRTPTimestampSender’spacketcountSender’soctetcountSSRC_1(SSRCoffirstsource)FractionLostCumulativenumberofpacketslostExtendedhighestsequencenumberreceivedInterarrivalJitterLastSR(LSR)DelaysincelastSR(DLSR)SSRC_2(SSRCofsecondsource)⋯⋯Profile-specificExtensions载荷数据的类型PT,占8bits;报文长度Length,占16bits;同步资源标志符SSRC,占32bits;发送数据包的绝对时间NTPS,1970年1月1日8:00到服务器当前时间的秒数就为NTPS高32位的值,而微秒数则为低32位的值;RTP时间戳RTPTimestamp,与上述的NTP时间戳对应相同的时刻,与数据包中的RTP时间戳具有相同的单位和偏移量。既可用于NTP时间戳的多个源之间进行媒体内或媒体间的同步,也可用于与媒体无关的接收端估算标称的RTP时间频率;Sender’spacketcount和Sender’soctetcount,通知接收端该发送端已经发送的RTP包的个数和字节数,用于计算事件丢失率;同步源标记SSRC_n,本报文保持的同步源标记;事件丢失率FractionLost,占3bits;累计的丢包数Cumulativenumberofpacketslost,占24bits;12 中南民族大学硕士学位论文最高接收到的包序列号Extendedhighestsequencenumberreceived;间隔抖动InterarrivalJitter,到达时间间隔的抖动;LSR(LastSRtimestamp),最近接收的RTCP的SR包中NTP时间戳的中间32位,如果没有SR被接收,LSR就为0,占32bits;DLSR(DelaysincelastSR),从发送端SSRC_n接收的最后的SR包到发送RR包之间的延迟,如果没有SR包从发送端SSRC_n被接收,则DLSR字段置为0,占32bits;Profile-specificextension,初始特定文本扩展。借助于RTCP数据包携带的控制包信息,RTCP实现以下功能:(1)监测服务质量,进行流量控制和拥塞控制,这是RTCP协议的一个重要功能。发送端根据RTCP中的RR报文对数据实时传输方式进行有效调整,保证接收端正常接收数据;接收端可以确定网络拥塞的范围是属于本区域还是全局等,从而采取有效应对措施;网络管理员能及时监视网络实时传输的性能[29]。(2)对不同RTP报文的源发送端进行区分。RTCP协议为每一个RTP资源传送RTP源运输层永久标识CNAME。由于在发现冲突或程序重启时SSRC标识可能发生改变,因此接收端为了跟踪每个参与会话的成员,需要使用不变的CNAME,同时用CNAME来关联一个参与会话者由一组RTP会话发出的多个相关的数据流。(3)保持媒体间的同步。媒体间的同步需要有精确的定时关系,发送的RTCP分组中同时包含了RTP时间戳和绝对时间NTP时间戳,接收端就能据此实现多种媒体的同步。(4)估计会话成员数量及调节控制信息量。由于RTCP分组是周期性发送,可以根据网络的可用带宽及RTCP分组的发送速率观察参与会话者的数目,计算数据的发送速率,并根据网络状态动态调整发送速率,达到合理利用网络资源的目的。2.4小结本章首先介绍多媒体的数据压缩技术,重点分析MPEG-4压缩编码标准和适合MPEG-4视频传输的实时传输协议RTP和实时传输控制协议RTCP,对后面章节的视频传输系统应用到的相关技术有一个明确认识。13 视频实时传输系统设计与拥塞控制策略研究第3章视频实时传输系统设计3.1系统概述随着网络的发展和信息化时代的到来,意味着人们对网络的要求越来越高。网络带宽的不断增加,使用户不仅可以通过网络传送文本文件,也可以传送大数据量的音/视频数据。其中,经过压缩的视频数据可以将对带宽的需求压缩到几十到几百Kbps,从而满足实时播放的要求。MPEG-4标准以高压缩率、高质量以及低传输率成为目前网络视频传输的主要格式和标准,结合RTP/RTCP提供的实时性和QoS服务质量功能,可以满足视频的实时传输。因此,设计基于RTP和MPEG-4的网络视频实时传输系统是很有意义的。3.1.1系统设计方案系统利用DirectShow技术[30]、JRTPLIB库[31]和XVID[32]开源编码器实现系统的功能模块。其中,RTP/RTCP协议通过调用JRTPLIB库实现,并利用XVID开源编解码器实现MPEG-4视频的编解码,然后通过微软公司的DirectShow框架,构建一个基于RTP的MPEG-4视频实时传输系统,实现了视频的采集、编码、封装、传输以及播放等功能。系统的设计方案如下:1、基于微软公司的DirectShow架构,以过滤器(Filter)组件形式进行开发,将系统按功能划分为传输、解码、播放等多个子模块,使系统具有灵活性高及扩展性强等特点。2、编码模块的视频流采用YUV格式,并通过DirectShow的Filter调用XVID开源编码器生成MPEG-4视频流。3、在传输模块里,通过CrtpSendFilter,调用JRTPLIB库将MPEG-4视频流封装成RTP数据包发送。当RTP数据包到达接收端后,由CrtpGetFilter负责接收,并通过JRTPLIB库解包得到MPEG-4视频流,然后送入XVIDMPEG-4VideoDecoderFilter解码,最后将解码后的视频数据送入VideoRenderFilter显示。4、系统利用多线程技术提高处理效率,而RTP和RTCP在发送端和接收端均是采用单独的线程运行。5、在传输控制模块,系统在发送端侦听接收端的控制信息,其中控制信息由RTCP的RR包携带,然后发送端根据时延及丢包率等信息进行网络状态的判断,从而调整发送速率;接收端对视频数据进行解码播放时,周期性地反馈数据传输14 中南民族大学硕士学位论文信息,同时根据发送端的SR包信息进行相应调整,使传输质量达到最佳效果。3.1.2系统总体架构系统采用服务器/客户端模型。在硬件上无特别的要求,采用的是实验室的电脑,并在电脑上加上普通的USB摄像头,对视频的处理和传输等功能是利用软件设计实现。系统设计的重点在网络传输模块和MPEG-4编解码与封装模块,目标是保证MPEG-4视频流网络传输的实时性和视频播放质量等。系统的架构示意图见图3.1[33]。发送端接收端MPEG-4解码器MPEG-4反馈控制反馈控制Qos监控编码器缓冲器RTCPRTCPRTCPRTCPRTPRTP生成分析生成分析UDP/IPUDP/IPInternet图3.1视频实时传输系统的架构示意图在服务器端,系统通过摄像头将拍摄的模拟视频信号传送至采集卡,并由采集卡将数据转换为数字视频信号,然后经过XVID开源编码器进行MPEG-4的编码,将压缩编码后的视频流通过调用JRTPLIB库封装成RTP包,并经过UDP、IP层,然后进入网络传输;对于成功传输到客户端的包,由XVIDMPEG-4解码器进行解码,送入VideoRenderFilter显示。3.2MPEG-4视频流的RTP封装策略研究基于RTP协议的视频传输,在传输前需要预先将MPEG-4视频流封装进RTP包,但封装的过程不仅仅是简单地在数据前面加上RTP报头,RTP报头能够承载数据的大小以及数据的组织等问题也必须考虑。一般的封装算法有两种:一种是将MPEG-4视频流封装成固定包长,该方法比较简单,但是一个视频帧或宏块有可能会封装到两个包里,从而增加包和包之间的相关性;另一种是以宏块为包,将一个宏块打入到一个RTP包,一个包的丢失只会导致一个宏块的损坏,使用较大的包长会降低所需传输的总包数,但是将一个宏块占用一个RTP包,会导致效15 视频实时传输系统设计与拥塞控制策略研究率的降低。因此,本文根据MPEG-4的层次模型,采用基于MPEG-4的视频对象平面(VOP)的封装算法[5][6][11]。3.2.1RTP分组最大有效载荷值的确定封装视频数据的要求是使网络通信的额外开销小,且分组之间的相关性小,因此,确定每个分组的最大有效载荷是非常必要的。为了确定每个分组的最大有效载荷,需要分析视频数据封装的过程,封装过程见图3.2。20Bytes8Bytes16Bytes3Bytes3BytesMPEG-4流MPEG-4压缩层SL头MPEG-4流MPEG-4同步层FlexMux头SL头MPEG-4流MPEG-4复用层RTP头FlexMux头SL头MPEG-4流RTP层UDP头RTP头FlexMux头SL头MPEG-4流UDP层IP头UDP头RTP头FlexMux头SL头MPEG-4流IP层图3.2视频数据的封装过程视频数据经过压缩编码产生MPEG-4流,其中MPEG-4流包含VOP的信息,然后压缩后的视频流进入同步层(SL),形成SL流,接着SL流进入传输层经过FlexMux工具复用后交给RTP层形成RTP包,再继续打包成UDP包,最后封装成IP包进入网络传输。经过整个封装过程,每个分组得到一个50字节的报头,其中,SL头3个字节,FlexMux头3个字节,RTP头16个字节,UDP头8个字节和IP头20个字节。为了满足视频封装额外开销小的要求,在报头大小固定为50字节的情况下,应该将尽可能多的数据封装进RTP包。由于网络有最大传输单元MTU(MaximumTransmissionUnit)的限制,如果分组大小超过MTU,将导致传输过程中对IP数据包的分段[34]。而任何一个IP数据包的分段丢失都会导致整个IP包无效,这就违背视频封装分组之间相关性要小的要求,对视频的实时传输影响甚大。为了同时满足视频封装的两个要求,分组大小不能超过MTU-50字节。由于不同网络具有不同的MTU值,而系统的设计是基于以太网,其MTU为1500字节。因此,可确定待封装的视频数据的最大有效载荷值为1450字节。16 中南民族大学硕士学位论文3.2.2RTP封装策略的实现系统采用以VOP为基本封装单元,根据会话描述协议SDP(SessionDescribeProtocol)指定视频流的属性(如媒体类型、封装格式、编码结构等),采用最优化封包算法,即将多个小的VOP打包成一个RTP数据包的封装方案,其中RTP分组大小不能超过最大有效载荷值。视频数据的RTP封装策略总结如下:首先,将一个大小适合用一个包的VOP映射到一个RTP包中,保证RTP时间戳可以唯一表示VOP的分帧时间;其次,有些VOP映射到RTP包中时,大小可能会超过最大有效载荷值,从而引起下层数据的分段,此时允许将过大的VOP分片并分别映射到不同的RTP包中,本文采用同步字作为分割点,这样分割后的RTP包载荷是完整的一个或多个由同步字划分的单元,在有RTP包丢失的情况下,保证其余用同步字划分的数据还能正常解码。如果视频文件中没有同步字,可以选择以宏块为分割点,这样即使有RTP包丢失,也不会影响其他RTP包的正常解码;最后,将多个完整的较小的VOP打包映射到同一个RTP包中,可以减小总负载。其中封装顺序按照解码顺序连续,且在解码过程中通过计算得到第一个VOP后的VOP时间戳。由于是多个VOP同时打包,如果该数据包丢失,意味着两个或多个VOP的损失,对视频图像质量的影响很大,因此在效率和效果之间进行折衷,让每个SL只封装一个VOP,而一个RTP只承载一个SL。封装策略的实现过程如下:首先,判断是否有需要打包的数据。如果没有则返回继续等待判断,如果有需要打包的数据,就开始寻找下一个VOP的起始码并且计算打包所需要的字节数。其次,判断是否找到VOP的起始码。当找到VOP的起始码,而且将要打包的VOP字节数小于或等于最大有效载荷值时,就以VOP为基本单位打包,且一直打包直到下一个VOP头的前一位;如果将要打包的字节数大于最大有效载荷值时,就以宏块为单位进行打包,为了减小包头的开支,应该打包尽可能多的宏块,其RTP包的最大值应该小于等于有效载荷值;如果没有找到VOP的起始码,且将要打包的数据小于最大有效载荷值,那么只要将剩余的数据打包,此时视频封装结束。封装策略的流程图见图3.3。根据以上分析,给出封装算法的伪代码:while(thereisencodeddatatobepacketized){SearchfornextVOP_Start_CodeandstarttoBitCount;17 视频实时传输系统设计与拥塞控制策略研究开始判断是否有需要打包的数据NY开始寻找下一个VOP的起始码并计算打包所需的字节数将剩余的数据N判断是否找到了按宏块打包VOP的起始码Y结束打包的VOP字节是否小于或等于MTU字节YN打包尽可能多的宏一直打包直到下一块,字节数需小于个VOP头的前一位或等于MTU图3.3基于VOP的RTP包封装算法的流程图Countsthenumberofbitsofthevideostreamwhichneedpacked;if((nextVOP_Start_Code==found)and((BitCount-lengthofVOP_Start_Code)≤(MTU-50))){//根据VOP边界进行打包PacketizethebitsbeforenextVOP_Start_Code;}elseif((BitCount-lengthofVOP_Start_Code)>(MTU-50)){//以宏块为单位打包PacketizeasmanyMBsaspossible,butwithoutexceeding(MTU-50)orcrossingintonextVOP;}else{//对剩余的数据进行打包,视频结束Packetizetheremainingdata;}}在伪代码中,参数的定义如下[11]:18 中南民族大学硕士学位论文VOP_Start_Code:表示VOP开始的预定义编码,作为连续VOP间的分界线;BitCount:表示计数器,用于记录当前打包过程中所读的比特数。3.3主要模块设计DirectShow是微软公司提供的一套在Windows平台上进行视频数据处理的开发包,是基于COM的编程接口,使用一种叫做FilterGraph的模型来管理整个数据流的处理过程[30]。Filter的管理和Filter都是COM对象,而且大部分Filter都是在一个COM进程中运行,因此设计Filter需要遵循COM的设计规范。在设计Filter前,首先需要选择合适的父类,选择好的父类可以节省开发时间,并且提高开发效率,同时还要考虑Filter采用的数据传输模式(推或拉模式)等。系统集成了视频的采集、压缩、传输、解压与播放等模块,主要几个模块的Filter连接示意图见图3.4。图3.4系统几个主要模块的Filter连接图其中,系统的软件设计中最主要的模块是数据压缩与传输模块以及接收与播放模块,所以下面两个小节重点介绍负责压缩数据的RTP封装以及传输的CRtpSendFilter及负责客户端接收并处理数据的CRtpGetFilter的设计过程。3.3.1CRtpSendFilter的设计基于系统的设计要求,CRtpSendFilter负责实现视频数据封装以及传输的功能。该Filter是在VC++6.0开发环境下设计,要先按要求配置好Filter的开发环境[30]。CRtpSendFilter设计的具体流程如下:19 视频实时传输系统设计与拥塞控制策略研究第一,在VC++6.0创建一个DLL工程,因为Filter在系统底层是以dll文件的形式存在的,以供应用层的程序调用。第二,编写DLL文件的入口函数,并且添加一个模板定义文件,后缀名为.def,该文件为链接器提供有关DLL文件的导出、属性及其他方面的信息。LIBRARYCRtpSend.ax//为atcivex控件形式//五个用于导出的全局函数EXPORTSDllMainPRIVATE//入口函数DllGetClassObjectPRIVATE//获取类工厂DllCanUnloadNowPRIVATE//被系统调用时以确定是否可卸载DLLDllRegisterServerPRIVATE//注册函数DllUnregisterServerPRIVATE//卸载函数其中DllGetClassObject已经由基类完成,因此一般只要完成三个函数,即DllMain,DllRegisterServer,DllUnregisterServer。第三,类厂对象的使用,类厂对象主要用来生成Filter对象,可以使用模板类定义一个全局的模板类对象数组,CRtpSendFilter的类厂定义如下:CFactoryTemplateg_Templates[]={{L"CRtpSendVideo",//Filter的名称&CLSID_CRtpSendVideo,//Filter的CLSIDCRtpSendVideo::CreateInstance,//Filter的创建函数NULL,//初始化函数&sudCRtpSendVideo},//记录Filter信息的数据结构};第四,输入和输出Pin的描述,CRtpSendFilter的接口在CRtpSendInputpin类中实现,该类继承于CBaseInputPin,数据的流动都在该类中处理,其中几个重要数据处理函数如下:1、CRtpSendInputpin::InitRtpSess()函数,用于初始化RTP/RTCP会话,其中主要工作有设置IP地址、端口,以及数据缓冲的申请,见图3.5。2、CRtpSendInputpin::CheckMediaType()函数,用于检查输入到该Filter的数据流格式和输入Pin上的媒体类型。3、CRtpSendInputpin::Receive()函数,接收前面的Filter发送过来的视频数据,然后调用CRtpSendInputpin::RtpSend()函数进行RTP的打包并发送数据。4、CRtpSendInputpin::RtpSend()函数,是CRtpSendFilter的重要函数,负责实现RTP数据的打包算法,以及数据的发送,见图3.6。20 中南民族大学硕士学位论文Winsock初始化设置本地/目的端口检查包大小,小了则返回失败设置JRTPLIB中的RTP/RTCP会话参数UDP网络协议检查(IPv4orIPv6)RTP/RTCP会话创建Jthread线程初始化RTP/RTCP会话创建数据缓冲区为RTP/RTCP会话绑定IP地址和端口函数返回图3.5InitRtpSess()函数流程图获取视频数据长度(一个SAMPLE的长度)计算此SAMPLE含有多少个VOP计算每个VOP的长度,并送入Vop_List数据中,以供排序按最优化封包方式排序,即将Vop_List排升序获取下一个Vop_List所指的VOP,并计算RTP缓冲区长度N将VOP分片是否小于或等于封包长度Y打包成一个RTP数据包发送N数据发送完毕Y函数返回图3.6RtpSend()函数流程图5、CRtpSendInputpin::RTCP()函数,负责RTCP数据流的接收和发送,由Receive()调用,在发送每一帧前,函数可根据QOS、丢包率等信息调整封包策略。21 视频实时传输系统设计与拥塞控制策略研究其中,CRtpSendFilter采用的优化封包算法的分析与实现见本文的3.2节。Filter对视频样本封包时,其最大报文长度可以根据用户需求或网络环境定义,但不能超过最大有效载荷值的限制。3.3.2CRtpGetFilter的设计CRtpGetFilter负责客户端接收视频数据,是基于CSourceStream父类,并作为源Filter(SourceFilter)的模式设计的,CRtpGetFilter没有输入Pin,数据是由传输模块的RTP接收线程从网络获取,数据经过解包并重新排序后,通过输出Pin发送到下一级Filter,即解码模块中的XVIDMPEG-4DECODERFILTER。由于CRtpGetFilter具体设计流程与CRtpSendFilter类似,因此,本节着重描述接收端对视频数据的处理流程,见图3.7。RTP数据包CRtpGetFilterInternetRTP/RTCP线程传输模块RTCP数据包数据缓冲AllcatorRenderFilter解压后的图像帧XVIDMPEG-4DECODERFilter压缩的视频流图3.7接收端的数据处理流程其中,RTP/RTCP线程负责接收、统计分析、产生和提交RTCP包,首先将RTP数据包进行解包,并将解包后的视频数据送入数据缓冲Allcator,记录数据的相关统计信息,例如发送的包数目、发送的字节数目、累计时间间隔等。当达到周期性的传输间隔后(如100毫秒),将记录的统计信息打包进RR报文并发送,其流程见图3.8。RTP/RTCP初始化申请数据缓冲接收到的RTP数据包计算抖动,丢包RTP数据包解码率等QoS信息时间间隔到,将视频数据放发送RTCP包入视频缓冲区图3.8RTP/RTCP线程的工作流程22 中南民族大学硕士学位论文CRtpGetFilter中的传输模块是基于CRtp_Soure类。首先传输模块枚举下一级Filter支持的媒体类型,由于本系统采用XVID解码器,所以媒体的数据格式是FOURCC_XVID。根据媒体格式,通过DecideBufferSize()函数申请视频数据缓冲,用于存放RTP数据包解包后的视频数据,然后利用FillBuffer()函数,填充视频数据缓冲,最后通过XVIDMPEG-4DecoderFilter解码MPEG-4视频数据。3.4系统测试与评价(一)系统测试环境系统的发送端和接收端测试用机通过实验室的局域网连接到校园网,网速为100Mbps,两台测试用机的测试环境分为硬件环境和软件环境。其中,硬件环境见表3.1。表3.1测试实时传输系统的硬件环境服务器端客户端CPUIntelP42.4GIntelP42.8G内存384MB512MB显卡NVIDIAFX5200NVIDIAFX5200带宽8139100M8139100M软件环境主要涉及WindowsXPSP3操作系统,VisualC++6.0,DirectShowSDK,Direct9.0cSDK,Jrtplib3.7.1库及其它相关软件。(二)测试步骤为了测试视频传输系统的传输性能和播放质量,共进行3次测试。前两次测试传输的是普通视频流,分辨率为352×288。通过软件控制网络状态,分为网络正常与网络拥塞导致视频丢包率为5%的情况,测试视频在客户端的播放质量。第三次测试,传输的视频为高清视频,分辨率为720×576,目标是测试系统传输高清视频时客户端的播放质量。系统测试的具体步骤如下:1、通过校园网的两台计算机上分别运行系统的服务器端和客户端,并绑定IP地址、设置端口等参数;2、服务器端开始传送视频,其中视频分辨率352×288。设置环境为网络空闲,视频正常传输的情况,然后打开客户端界面的启动按钮,进行视频的解码及播放,并观察视频的播放质量;3、执行细节与第二步一样,不过环境设置为网络发生拥塞导致视频丢包率为23 视频实时传输系统设计与拥塞控制策略研究5%的情况,并观察客户端视频播放的质量;4、重新设置网络状态为空闲,然后服务器端开始传送高清视频,分辨率为720×576。并观察传输高清视频时客户端的视频播放质量;5、点击服务器端和客户端界面上的停止按钮,停止视频的采集传输和播放。(三)结果与评价系统经过测试,在三种情况下点击服务器端和客户端界面的启动按钮,系统均能正常启动,并能成功实现视频的采集传输与播放等功能,点击界面的停止按钮,系统能立即停止视频的采集、传输与播放,基本实现了目标功能。系统的测试结果如下:1、网络空闲,视频传输正常,没有丢包的情况系统客户端在网络正常情况下收到的视频图像中的一帧见图3.9。图3.9正常传输时客户端收到的视频中的一帧其中,客户端播放的视频图像与原始视频图像相比,只发生轻微的延迟,但播放的视频图像质量与原始图像相比无明显变化,显示效果良好,未出现抖动、紊乱等现象。正常网络传输时,系统的传输性能高,解码播放顺畅,且图像较清晰,可以满足人眼的视觉需求,有较好的实时性。2、网络发生拥塞,传输过程视频丢包率为5%的情况为了模拟网络质量较差,发生拥塞状态,系统调用一个函数来模拟网络的拥塞状态造成的丢包情况,从而模拟对带宽进行的控制,以便测试在网络发生拥塞,视频丢包率为5%的情况下客户端的视频播放质量。图3.10表示客户端播放的视频图像取样中的4帧。24 中南民族大学硕士学位论文a)第1帧b)第9帧c)第19帧d)第29帧图3.10丢包率为5%时客户端播放的视频图像中的4帧当网络质量较差,丢包率偏大的时候,客户端的视频播放偶尔会出现停顿或抖动现象,由图3.10可以见到图像有些模糊,视频质量有相应地下降。表明视频传输过程在有较大丢包率的影响下,视频质量随着时间的推移逐渐下降,但是因为由于采用了基于VOP的数据封装策略,降低了包与包之间的相关性,并未造成局域整块的丢包,视频图像的整体质量依然可以得到保证;不过,另一方面也说明使用RTP/RTCP协议进行视频的传输,可以保证实时性,但是在网络发生拥塞的情况下,其对视频图像质量的控制机制不是非常有效,有一定的局限性。3、高清视频的传输传输高清视频时,客户端播放视频图像中的一帧见图3.11。当传输高清视频时,客户端可以正常显示,并且图像质量较为清晰,但是偶尔会发生停顿现象,这与视频缓冲区的大小设置有关。总的来说,对系统进行三次测试后,可知系统基本实现了视频的采集、传输以及播放等功能,拥有较好的实时性,在网络带宽空闲的情况,可以流畅传输并25 视频实时传输系统设计与拥塞控制策略研究图3.11接收端播放高清视频的效果播放视频,达到最佳效果,但是在丢包率较大的网络情况下,视频图像质量有所下降,且偶尔会出现停顿、抖动等现象,由于采取改进的视频数据封装策略,使结果显示的视频图像内容并不影响人眼的正常识别。同时,系统可以胜任传输高清视频,但是前提得在网络带宽空闲的情况才能得到比较满意的效果。3.5小结本章基于DirectShow技术、Jrtplib库和XVID软件,重点介绍视频实时传输系统的设计过程,首先通过系统的设计方案和总体架构,详细介绍视频数据的封装策略及系统主要模块的设计过程,并通过在网络正常、有5%丢包率以及传输高清视频三种情况对系统进行测试,结果表明采用改进的视频数据封装策略后,在视频数据传输过程发生较大丢包率的情况下,其对客户端的图像显示质量有所帮助。但在仅使用RTP/RTCP协议而未加入有效拥塞控制机制的情况进行视频的实时传输,虽然系统可以实现目标功能,体现实时性,但在网络出现拥塞等情况,其控制措施不是非常有效,有一定的局限性,因此,研究适用于视频实时传输的有效的拥塞控制机制是非常必要的。26 中南民族大学硕士学位论文第4章网络拥塞控制算法的分析与改进4.1网络拥塞概述网络拥塞是一种持续过载的网络状态,由于传输链路上存储转发节点的资源有限、数据包过多,此时用户对网络资源的需求就超过了网络的缓存空间,从而造成网络性能急剧下降。根据网络的体系结构,拥塞的发生是其固有的属性,由于在资源共享的网络中,不同的数据分组可能会同时到达同一个路由器,并期望从同一个输出端口转发,可是网络有一个服务顺序,所有分组不可能同时被接受处理,如果此状况持续的时间过长,就会将网络的缓存空间耗尽,那么路由器就会丢弃分组,从而造成网络性能的急剧下降。4.1.1拥塞产生的原因一般,以下几个因素都有可能导致网络拥塞[6]:(1)远程的高速连接增加了整个网络的流量。当分组数量超过网络的承载能力,就存储在缓存中,当缓存中存储空间不足,接收到的分组就被丢弃,而丢弃的分组又加重网络的负担;(2)即使网络的平均载荷不高,突发的网络流量仍然可能导致暂时的拥塞;(3)不合理的网络拓扑结构和路由选择以及不匹配的链路速度都会导致拥塞,例如一个很慢的路由器却连接几个大流量的主机到网络中去,就有可能产生拥塞;(4)在网络将要发生拥塞的情况下,某些协议没有拥塞控制机制,从而并不能相应的减小发送速率,造成网络的负担加重;(5)如果网络的基础结构无法适应流量的持续增长,那么快速发展的Internet将面临拥塞的问题。当网络产生拥塞,就会导致分组丢包率和端到端的时延增大,严重时甚至使网络发生崩溃。如果仅靠简单地增加网络带宽或者增大缓存空间都不能解决网络拥塞的问题,因为当用户数量增加到带宽或缓存耗尽时,仍然会引起分组的丢失和超时现象。某些协议拥有分组丢失重传机制,而重传的分组又会加重网络负担,导致网络性能的进一步下降。拥塞控制机制正是基于这种情况下提出的,目的是控制网络的流量,使网络的吞吐量达到一个最大的平衡值,通过判断拥塞程度并合理调整发送速率等措施,让整个网络的性能达到最佳,并保持稳定。27 视频实时传输系统设计与拥塞控制策略研究为了避免网络拥塞的发生,并对已发生拥塞的状态可以进行良好的控制,针对不同的应用就需要有相对应的拥塞控制机制。4.1.2TCP拥塞控制机制TCP协议是目前Internet中最主要的传输层协议。据统计,大型IP网络中将近90%的信息流是基于TCP协议的信息流。TCP的基本特征主要有如下几点[36]:(1)TCP是面向连接的服务,在开始传输数据之前,客户端通过“呼叫”服务器端开始建立连接,如果服务器端愿意和客户端建立连接,那么两个终端就开始相互交换用于认证会话的消息及控制数据交换的参数等;(2)TCP提供可靠的传输服务,当服务器端的数据流传输完毕后,客户端将发送用于确认数据流已正确接收的确认应答ACK。而服务器端在发送完一组数据后,仍然在缓冲器中保留刚发送完的数据并一直等待,直到接收到ACK应答后,才开始发送下一组数据。服务器端对每一个已发送的分组维持一个定时器,如果直到定时器溢出仍未接收到ACK应答,则服务器端将该分组重新发送;(3)服务器端TCP进程总是尝试填满服务器端和客户终端之间的管道,但又必须调节传输速率,以避免网络中可能发生的拥塞。服务器端TCP进程能够连接检测并调节传输速率,使传输速率保持在网络不丢弃分组的最大允许速率下;(4)所有TCP连接都是全双工的,这意味着TCP连接支持双向同时传输数据。TCP拥塞控制机制是服务器端TCP进程为了避免在路由器、物理链路或客户端上发生拥塞,自动调整传输速率的一种机制,TCP拥塞可分为以下四个阶段[38]:慢启动阶段、拥塞避免阶段、快速重传和快速恢复阶段。拥塞控制阶段的窗口变化见图4.1。图4.1TCP拥塞控制阶段的窗口变化28 中南民族大学硕士学位论文4.2TCP友好的拥塞控制机制4.2.1TCP友好拥塞控制机制提出的背景在目前带宽资源紧张、需要拥塞控制的网络环境下,视频等实时业务的传输由于数据量大,传输持续时间长,占用的网络资源多,另外,对网络的带宽、延迟、抖动等要求高。因此要满足实时业务的网络传输有如下4点要求[37]:(1)最低传输速率:为了保证视频等多媒体实时业务播放的质量,其传输就需要有一个最低传输速率的要求,用于在单位时间内传输一定量的实时视频数据;(2)小的时延:视频等实时业务的传输有实时性要求,数据包必须在被播放前到达,否则即使接收了也会直接被丢弃,因此实时传输需要小的时延;(3)平稳性:视频数据在传输过程中,发送速率不能有太剧烈的抖动,需要保证在长时间内是稳定的。因为视频数据是按照一定的编码速率生成,为了保证接收端的播放质量,就要求发送速率与编码速率相匹配;(4)小的丢包率:丢包率太大将会使接收端因缺少一些数据而导致播放质量的下降。由实时传输的要求及对TCP拥塞控制的特点分析可知,TCP协议不适合视频等实时媒体的传输。目前大部分多媒体应用都是采用UDP协议传输数据,因此网络中的UDP流在逐渐增多。UDP协议是面向非连接、非可靠传输的机制,使其在一定程度上能满足多媒体实时传输的要求。但是UDP由于缺乏拥塞控制机制,当网络发生拥塞时,TCP协议及时采取拥塞控制措施,使得TCP流因拥塞而降低发送速率,但UDP流仍继续以固定速率发送数据,就造成UDP流不公平地占用带宽的现象,显示对TCP流的不友好,造成网络拥塞甚至崩溃。因此,针对多媒体应用的特点,提出的新协议必须要有拥塞控制机制,并使数据流的传输满足实时性要求,又要能和TCP流友好公平地共享网络可用带宽,我们把满足这两点要求的拥塞控制机制称为TCP友好拥塞控制机制。4.2.2典型的TCP友好拥塞控制机制目前,研究者已经提出了多种TCP友好拥塞控制机制。按照调整网络负载的方式一般可以分为基于窗口和基于速率两大类。其中,基于窗口的TCP友好拥塞控制机制是指在发送端或接收端使用一个拥塞窗口,当网络空闲时,拥塞窗口可以不断增大,当网络拥塞时,就减小拥塞窗口,但不同机制的增大、减小拥塞窗口的方式不同。典型的基于窗口的TCP友好拥塞控制机制有GAIMD、BCCA等。基于速率的TCP友好拥塞控制机制是根据网络的拥塞状态调整传输速率以达到TCP友好。基于速率的算法又分为两种类型:基于探测的和基于模型的。基于探测的速率控制算法有AIMD、MIMD和RAP等;基于模型的拥塞控制利用TCP29 视频实时传输系统设计与拥塞控制策略研究吞吐量模型根据当时的网络状态计算可行的发送速率。由于基于模型的TCP友好拥塞控制机制可以产生平稳的数据流,比较适合于多媒体实时传输应用,最近被提出的机制有LDA+、TEAR、TFRC等。下面介绍两大类机制中的两种典型的TCP友好拥塞控制机制。(1)基于窗口的GAIMD[8]GAIMD与TCP的AIMD拥塞控制机制类似,其主要思想是在不同的阶段采取不同的方式调整拥塞窗口。刚建立连接时,采用慢启动机制,每收到一个ACK,拥塞窗口cwnd就以2×cwnd的速度增加,GAIMD机制还设置了一个阈值sshthresh,当拥塞窗口比阈值大时就使用加性增加方式,逐渐增加拥塞窗口。加性增加方式是在没有网络拥塞发生时调整拥塞窗口的方法。在每个往返时间RTT内,拥塞窗口增加常量a,即cwndi+1=cwndi+a。网络拥塞时调整拥塞窗口的方法跟检测网络拥塞的方法有关,GAIMD通过丢包来探测网络拥塞的,当收到多个相同的ACK时,说明网络只是轻微拥塞,网络还可以传输一定量的数据;如果时钟超时,则说明网络拥塞比较严重。GAIMD根据丢包产生的不同采取不同的方式减小拥塞窗口。当收到3个相同的ACK时,说明已经发生丢包,使用乘性减小的方式减小拥塞窗口,cwnd以原来的b×cwnd速度减小,即cwndi+1=b×cwndi,其中0=Min_Rate)(11){(12)if(MinRateTimer_.status()==Working)(13){(14)MinRateTimer_.status()=stop;(15)Congestion_.status()=Out_Of_Congestion;(16)}(17)if(rcvrate>=rate_)(18)Increase_rate(rcvrate);(19)else(20)decrease_rate(rcvrate);(21)}(22)else(23){38 中南民族大学硕士学位论文(24)rate_=Min_Rate;(25)if(MinRateTimer_.status()==stop)(26){(27)Dif_NoFeedback(n)=Ptimer(n)-Ptimer(0);(28)B=Dif_NoFeedback(n)/EstimatedRTT;(29)T=(1-B)*T_longest;(30)MinRateTimer_.resched(T);(31)MinRateTimer_.status()=Working;(32)}(33)}在算法实现的伪代码中,(1)~(7)是根据ME-TFRC参数的计算方法得到公式(4.6)中的参数,(8)是将计算得到的参数值带入公式(4.6)而得到的下一时刻发送端的可行发送速率rcvrate;(9)表示发送端当前时刻无反馈定时器的值Pn()的计算timer公式;(10)~(21)表示网络正常时,调整发送速率的策略;(22)~(33)表示发送速率小于设置的最低发送速率时,ME-TFRC进行网络拥塞的控制措施。4.4小结本章通过分析网络拥塞产生的原因,介绍了TCP协议的拥塞控制机制并指出其不适合视频实时传输的原因;讨论当前实时传输拥塞控制方面的研究热点——TCP友好拥塞控制中的典型算法;通过对TFRC协议的拥塞控制机制分析,指出TFRC的不足之处,并针对ER-TFRC算法无法避免网络突发流的干扰问题,提出了ME-TFRC算法,该算法基于TFRC的吞吐量模型,通过改进参数的计算方法,并在网络发生拥塞时设置“最小速率限制定时器”,目的是提供有效控制网络在不同状态下的视频实时传输措施。39 视频实时传输系统设计与拥塞控制策略研究第5章系统拥塞控制的网络模拟5.1网络模拟实验平台NS2一般来说,评价制定的网络协议和方案的性能与有效性需要在实际的网络环境进行多方面的测试,但是搭建实际网络环境的代价昂贵,且难以比较运行在不同网络环境下协议的性能,也无法测试随机发生的网络事件对协议性能的影响。因此,研究者们使用网络模拟进行协议的设计与测试。网络模拟是一种让协议在软件模拟的网络环境下运行,并对结果进行分析的行为。通过网络拓扑结构、以及协议和路由机制等的模拟,可以比较制定的协议在不同网络环境下的性能等,对于理解和评价协议的性能起着举足轻重的作用。目前,网络模拟软件有NetworkSimulator2(NS2)以及OPNET等。其中,OPNET是属于商用的模拟软件,而NS2是美国国防部高级研究计划署DARPA支持的虚拟互联网测试床VINT(VirtualInternetTestbed)项目的核心部分,由伯克利加州大学UCBerkeley,USC/ISI,LBL和XeroxPARC等大学和实验室联合开发,是一种可扩展,易配置和可编程的面向对象的的网络模拟软件,且不断地在收录全世界各地研究者的最新成果,又是开源的,非常有利于网络协议的研究和扩展,可以安装运行在Windows/Linux系统环境[42]。开发NS2目的是建立虚拟的网络模拟平台,并为研究人员提供一系列的模拟工具,从而实现新的网络协议的设计和实现。主要用于解决网络研究方面的问题,提供在无线或有线网络上的TCP、路由、多播等多种协议的模拟[43]。5.2NS2软件构成NS2提供了丰富的构件库,同时也是一个软件包,包括Tcl/Tk、OTcl、NS2模拟器、Tclcl等。其中,Tcl是一种灵活的,交互式的脚本语言,用来对NS2进行编程;TK是Tcl的图形界面开发工具;OTcl是在Tcl加入了类,实例,继承等面向对象的概念,有自己的类层次结构;NS2模拟器作为软件包的核心,采用C++编写;Tclcl则提供NS2和OTcl的接口,使对象和变量出现在C++和Otcl两种面向对象的语言中。NS2还提供了显示静态的图形曲线的可选件Xgraph和动态观察模拟的进行过程的可选件Nam。NS2对网络系统中一些通用的实体预先做了大量的模型化工作,并且采用对象实现实体的特性和功能,例如链路,队列等构件库。用户只需在已有构件库上进行少量的扩展,就可以构建出所需的网络模型并对制定的协议进行网络模拟,40 中南民族大学硕士学位论文大大减少了工作量,提高了研究效率。5.3NS2网络模拟的工作机制与模拟过程NS2网络模拟的工作机制如图5.1所示。126对生成的结果文件进行处理,NS2用户编写Otcl脚本运行NS2模拟分析,得出所需的性能指标35用Gnuplot将结果化成图形静4态观察模拟图形协议算法实现Make,生成新的NS2用Nam动态观察网络算法模拟的过程图5.1NS2的作机制NS2拥有庞大的网络元素体系,从网络的物理层到应用层、从局域网到广域网、从有线网到无线网,都提供了非常丰富的支持。因此,对于网络研究人员,只需熟悉NS2与自己研究相关的基本元素即可,对研究工作非常方便。如果已经完成对协议算法的修改和NS2的扩展,则利用Otcl脚本实现模拟的过程如下:(1)模拟网络的拓扑平台,确定链路的基本特性,如延迟、带宽和路由机制等;(2)端设备的协议绑定和通信业务量模型的建立,并配置业务量模型的参数;(3)编写OTcl过程或构造需要的OTcl类,并设置追踪文件Trace对象,NS2通过对Trace文件可以保存整个模拟过程;(4)编写相关的辅助过程,设定模拟开始和结束时间,然后运行Otcl脚本进行网络模拟;(5)模拟结束后,进行结果的追踪分析。并对追踪文件进行分析、处理得出结果文件,从而对结果文件进行分析与研究;(6)调整模型和配置参数,重新进行上述模拟过程。5.4实验结果与分析实验使用NS2网络模拟工具,采用图5.2的网络拓扑结构。图5.2中,发送端和接收端的数目相同,两端之间通过两个路由器连接,分别为r1和r2,两个路由器的队列调度都是采用DropTail机制,终端与路由器间的链路带宽为10Mbit/s,时延设为5ms,两个路由器r1和r2间的瓶颈链路的带宽为2Mbit/s,时延为20ms,数据包大小设为1000字节,模拟时间为60s。41 视频实时传输系统设计与拥塞控制策略研究S1R110M5ms10M5msS2R22M20MS发送端r1r2接收端Sn-1Rn-1路由器SnRn图5.2网络拓扑结构图本节共进行三组实验,实验目的是为了模拟ME-TFRC算法在网络的不同状态下的性能,并与TFRC和ER-TFRC的性能进行对比,以验证ME-TFRC是否能在不同的网络环境下均能执行有效的拥塞控制措施。三组实验的网络状态分别为网络空闲(正常情况)、轻微拥塞和严重拥塞。5.4.1网络空闲状态的性能分析本组实验模拟的网络状态是网络正常的情况,链路中的各种流正常通行,宽带比较充足,没有发生拥塞。由于ER-TFRC算法仅针对网络拥塞情况下进行改进,在网络正常状态下,ER-TFRC算法与TFRC算法实验的结果一样,因此本组实验主要分析ME-TFRC算法与TFRC算法的实验结果。为了分析在不同数目的媒体流下两种算法的实验结果,共进行了两次实验。第一次实验设定发送端和接收端各有6个,第二次设定两端各有10个。为了验证算法的性能,保证发送流的公平性,第一次实验设定TCP流和TFRC流各为3条,以及TCP流和ME-TFRC流各为3条;第二次实验设定TCP流和TFRC流各为5条,以及TCP流和ME-TFRC流各为5条。使用Nam工具得到的模拟网络拓扑结构见图5.3。图5.3Nam工具得到的模拟网络拓扑结构42 中南民族大学硕士学位论文本次实验结果见图5.4和表5.1。图5.4TFRC和ME-TFRC的TFRC流发送速率图5.4表示第一次实验,采用TFRC算法时,TFRC流的发送速率与采用ME-TFRC算法时TFRC流的发送速率对比得到的图形,其中发送速率变化幅度小,比较平稳的数据流就是采用ME-TFRC算法后TFRC流的发送速率。表5.1TFRC和ME-TFRC的丢包率对比TCP流TCP流丢包率TFRC流TFRC流丢包率算法类型发送数丢失数(%)发送数丢失数(%)TFRC流(3条)50854739.302102333643.557ME-TFRC流(3条)53664718.77799243333.356TFRC流(5条)54793526.42596652542.628ME-TFRC流(5条)59423325.58791622392.609表5.1表示分别采用TFRC算法和ME-TFRC算法时对应的TCP流和TFRC流的数据包丢失率。在TFRC算法的实现中,当无反馈定时器超时触发后,说明速率超过设定的阈值,其采用降低一半速率进行调整,使得发送速率的波动偏大。为了使发送速率的波动更加平稳,经过大量的统计实验,发现当无反馈定时器超时触发后,将发送速率降低为上一次速率的[0.61,0.62]区间时,发送速率不仅更为平稳,且丢包率相应地降低。当降低速率的倍数大于此区间时,发送速率的平滑更加明显但是将引起丢包率的增大;当小于此区间时,发送速率的平滑效果一般。由于这个区间趋向于黄金分割点,故本文最终取经验值为0.618。从图5.4和表5.1的对比结果可知,ME-TFRC算法由于改进了参数,并且在无反馈定时器超时触发后,将发送速率降低为原来的0.618倍后,TFRC流的发送43 视频实时传输系统设计与拥塞控制策略研究速率更加平稳,有效地减少了发送速率的波动性,并且同时降低了TCP流和TFRC流的丢包率,使得在正常网络状态下,视频的播放更加流畅,保证了播放质量。5.4.2网络轻微拥塞状态的性能分析本组实验是模拟网络轻微拥塞的情况。实验设定发送端和接收端的数目各为10个,其中含有5条TCP流,4条TFRC流和1条UDP流。其中,TCP流和TFRC流均是从模拟时间一开始就发送,在模拟实验的20s到27s间加入一条UDP流,发送速率为1.5Mbit/s。由于UDP流的发送速率比较大但是时间比较短,且网络仍存在一定的带宽,可以较为准确地模拟网络的轻微拥塞状态,且网络状态在拥塞结束后能短时间内恢复正常。为了验证ME-TFRC的有效性和在轻微拥塞时的性能,本组实验加入了ER-TFRC的模拟。模拟三种算法后的发送速率分别见图5.5,图5.6和图5.7,吞吐量与丢包率对比的结果分别见图5.8和表5.2。其中,图5.5~图5.7分别表示4条TFRC流、ER-TFRC流和ME-TFRC流的平均发送速率,各图的虚线表示视频应用时设定的最低传输速率Min_Rate。图5.8表示4条TFRC流、ER-TFRC流和ME-TFRC流的平均吞吐量对比。表5.2分别采取三种算法的TCP流与TFRC流的丢包率TCP流TCP流丢包率TFRC流TFRC流丢包率算法类型发送数丢失数(%)发送数丢失数(%)TFRC流73923314.47865512483.786ER-TFRC流70603294.66068952583.742ME-TFRC流70283394.82469302463.550从图5.5~图5.7可以看出,在网络模拟开始启动时,由于三种算法采用慢启动机制,于是三种TFRC流均是以低于Min_Rate的速率开始发送,其后过程趋于正常。在20秒时,加入了较大速率的UDP流,造成了网络的拥塞,由于UDP流的发送速率并不是太大且时间不是太长,属于轻微拥塞。此时,TFRC算法因未能考虑视频等实时数据的最低传输要求,仍然以低于Min_Rate的速率发送数据,造成数据的无效传输,而ER-TFRC和ME-TFRC两种算法均考虑了视频最低传输速率的要求,采取了控制机制,使发送速率保持在最低速率传输,直到网络恢复正常,然后速率恢复正常发送状态。结果表明ER-TFRC和ME-TFRC对轻微拥塞恢复的探测都是及时的,且采用最低传输速率保证在轻微拥塞时的正常传输,解决了TFRC算法出现的无效传输问题,从而视频播放的质量得到有效保证。另外,从图5.8和表5.2可知,由于ME-TFRC算法在吞吐量模型的参数计算上进行了改进,其TFRC流的吞吐量大于ER-TFRC的TFRC流的吞吐量,且丢包率更44 中南民族大学硕士学位论文小,而TCP流的丢包率增加是以牺牲局部的TCP友好性换取TFRC流的的正常传输,从而有效提高了接收端的播放质量。图5.5TFRC流的平均发送速率5.6ER-TFRC流的平均发送速率图5.7ME-TFRC流的平均发送速率图5.8三种算法的TFRC流的平均吞吐量5.4.3网络严重拥塞状态的性能分析本组实验模拟网络严重拥塞的情况。实验的网络条件设置同模拟轻微拥塞的条件。本组共进行2次模拟实验:第一次,TCP流和TFRC流均是从模拟时间开始就发送,为了模拟持续性严重拥塞时的网络状态,在模拟实验的20s到30s间加入一条UDP流,发送速率为2Mbit/s;第二次,为了模拟网络突发事件引起的瞬时大流量数据,在20s~22s间加入大发送量的UDP流,速率为5Mbit/s,然后恢复正常,并在40s到50s间加入2Mbit/s的UDP流,再次模拟严重拥塞的情况。两次实验的目的是为了分析三种算法在网络发生严重拥塞的不同情况下的性能。第一次实验结果见图5.9~图5.12。本组试验中,ME-TFRC将T_longest设置为10秒,10秒是根据网络拥塞状态的经验值设置,如果持续性地以小于最低发送速率的速率发送,则判断为严重拥塞,且严重拥塞的状态在最长时间10秒内仍没能解除,则说明网络的严重拥塞在短时间内是无法缓解的,这时就需要立即停止发送数据包,以缓解网络的拥塞。45 视频实时传输系统设计与拥塞控制策略研究图5.9TFRC流的平均发送速率图5.10ER-TFRC流的平均发送速率图5.11ME-TFRC流的平均发送速率图5.12三种算法的TFRC流的吞吐量其中,图5.9~图5.11分别表示4条TFRC流、ER-TFRC流和ME-TFRC流的平均发送速率,各图的虚线表示视频应用时设定的最低传输速率Min_Rate。图5.12表示4条TFRC流、ER-TFRC流和ME-TFRC流的平均吞吐量。从实验结果分析得出,当网络处于持续性的严重拥塞时,ER-TFRC和ME-TFRC算法根据各自的拥塞控制机制均能有效判断拥塞的程度,且都在25秒左右停止发送速率,表明此时的网络已达到严重拥塞,暂时无法恢复,而停止发送速率有助于缓解网络拥塞的恶化。从图5.12可知,由于ME-TFRC对模型参数的改进,在网络未发生拥塞前,其TFRC流的吞吐量高于TFRC和ER-TFRC的TFRC流的吞吐量。第二次实验结果见图5.13~图5.15。图5.13~图5.15分别表示4条TFRC流、ER-TFRC流和ME-TFRC流的平均发送速率,各图的虚线表示视频应用时设定的最低传输速率Min_Rate。从实验结果分析得出,在20s~22s时网络突然有大流量的UDP流到达,表示网络瞬时突发流的干扰。此时,ER-TFRC算法以rttn()为判断标准,由于瞬时突−发流的原因造成rttn()过大,而其根据公式(4.20),判断式子大于β,从而作出错−46 中南民族大学硕士学位论文误判断,得出网络已达到严重拥塞的结果,按照其控制机制采取立即停止发送数据的措施,影响视频的有效传输与正常播放。图5.13TFRC流的平均发送速率图5.14ER-TFRC流的平均发送速率图5.15ME-TFRC流的平均发送速率图5.15是ME-TFRC的TFRC流的平均发送速率,试验中T_longest设置为10秒。在20s到22s间,网络大量发送UDP数据包,造成网络严重拥塞的假象,由于ME-TFRC算法设置了“最小速率限制定时器”,在短期的突发严重拥塞时间内,未能达到设定的超时时间,故仍然以最低速率发送数据包,而不用停止发送速率,从而躲避“非持续性严重拥塞状态”;当40s到50s有较长时间的持续性严重拥塞时,ME-TFRC算法重新启动定时器,当定时器超时,立即停止发送速率,以缓解网络的拥塞状态,从而能准确地判断何时为严重拥塞状态,达到拥塞控制的目的。5.5小结本章首先介绍了NS2实验平台及其工作原理,然后通过NS2对TFRC、ER-TFRC及ME-TFRC三种算法进行模拟实验。实验结果表明,ME-TFRC在保47 视频实时传输系统设计与拥塞控制策略研究证发送速率平稳性的同时,使视频流传输的吞吐量增大,且丢包率降低,并且通过对不同程度拥塞情况的网络模拟分析,ME-TFRC算法均能获得比较满意的结果,提高了视频实时传输的鲁棒性,达到了改进目的。48 中南民族大学硕士学位论文总结和展望本文介绍了目前网络多媒体视频技术的发展,分析和研究了适合多媒体传输的实时传输协议RTP/RTCP,实现了基于MPEG-4的视频实时传输系统,并针对系统中的关键技术进行了研究,其主要完成的工作包括以下几个方面:(1)研究MPEG-4视频编码标准和RTP/RTCP协议,利用DirectShow、Jrtplib和XVID软件构建了基于RTP/RTCP的MPEG-4视频传输系统。在该系统中,实现了视频服务端和客户端的实时视频传输和播放;(2)针对MPEG-4视频编码基于对象的特点,给出以视频对象为单位的MPEG-4视频流封装策略,从而提高视频传输的性能;(3)深入分析视频传输网络中产生网络拥塞的原因,比较和分析各种TCP友好拥塞控制算法,发现现有算法在网络严重拥塞时易导致无效性传输,以及容易受到网络突发流干扰的不足,提出改进的拥塞控制算法(ME-TFRC)。该算法通过改进TFRC模型参数的计算方法,以及在网络拥塞的情况下,利用所设置的“最小速率限制定时器”确定网络拥塞所持续的时间,避免突发流所引起的错误估计,保证系统传输的平稳性;(4)利用NS2网络模拟技术,对所构建的视频实时传输系统进行实验分析。实验结果表明,ME-TFRC在保证发送速率的平稳性的同时,使系统传输吞吐量增大,且其丢包率降低。通过对不同程度拥塞情况的网络模拟分析,系统给出的拥塞控制算法获得比较满意的结果,提高了视频传输的鲁棒性,达到视频实时传输的目的。由于视频实时传输系统的复杂性以及网络的不可预测性,本人将在现有工作的基础上进一步开展更深入的研究,主要有:(1)本文实现的实时传输系统是基于局域网的系统,只实现了端到端的传输,并且没有考虑音频的实时传输,所以基于广域网的音视频同步传输的实时系统将会是下一步的研究工作之一;(2)进一步加强对吞吐量模型参数的讨论以及其性能的数学分析,如参数RTT对机制影响的进一步分析、RTCP报告包发送的频度等;(3)本文研究的视频实时传输拥塞控制机制只是在端对端的单播环境下,下一步将研究多播环境下的拥塞控制,并加强实际网络环境中对ME-TFRC性能的测试与研究。49 视频实时传输系统设计与拥塞控制策略研究参考文献[1]ISO/IECJTC1/SC29/WG11.Informationtechnology-Codingofaudio-visualobjects-Part2:Visual[M].Switzerland,2007,14496-2:2004/Cor.2:2007(E)[2]董振亚.MPEG-4视频流式传输拥塞控制研究与实现[D].长沙:国防科技大学计算机科学与技术学院,2003[3]RejajeR,etal.LayeredqualityadaptationforInternetvideostreaming[J].IEEEJournalosSelectedAreasinCommunications,2000,18(20):2530-2543[4]SchuizrinneH,CasnerS,FrederickR,etal.RFC1889:RTP.AtransportProtocolforReal-timeApplications.LawrenceBerkeleyNationalLaboratory,UnitedStates,1997[5]VanderMeerJ,MackieD,SwaminathanV,etal.RFC3640:RTPPayloadFormatforTransportofMPEG-4ElementaryStreams.InternetEngineeringTaskForce,UnitedStates,2003[6]KikuchiY.RFC3016:RTPPayloadFormatforMPEG-4Audio/VisualStreams.InternetEngineeringTaskForce,UnitedStates,2000[7]FloydS,FallK.PromotingtheUseofEnd-to-endCongestionControlintheInternet[J].IEEE/ACMTransactionsonNetworking,1999,7(4):458[8]YangRichardYang,LamSimonS.GeneralAIMDCongestionControl[M].DepartmentofComputerSciences,TheUniversityofTexasatAustin,Austin,TX78712-1188,2000[9]DeepakBansal,HariBalakrishnam.Binominalcongestioncontrolalgorithm[M].IEEEINFOCOM2001,UK:M.I.T.LaboratoryforComputerScienceatCambridge,2001[10]TurlettiT,HuitemaC.VideoconferencingontheInternet[J].IEEE/ACMTrans.onNetworking,1996,4(3):340-351[11]WuDapeng,HouYiweiThomas,ZhuWenwu,etal.OnEnd-to-EndArchitectureforTransportingMPEG-4VideoovertheInternet[J].IEEETrans:onCircuitsandSystemsforVideoTechnology,2000,10(6):923-941[12]RejiaieR,HandlyM,EstrinD.RAP:AnEnd-to-EndRate-BasedCongestionControlMechanismforRealtimeStreamsintheInternet[J].InProceedingsofIEEEINFOCOM1999,1999,3(3):1337-134550 中南民族大学硕士学位论文[13]SisalemD,WoliszA.LDA+:TCP-FriendlyAdaptationSchemeforMultimediaCommunication[J].IEEEInternationalConferenceonMultimediaandExpo,2000,3(3):1619-1622[14]MahdaviJ,FloydS.TCP-FriendlyUnicastRate-basedFlowControl.Notesenttoend2end-Interestmailinglist[EB/OL].1997[2008-11-20].http://www.psc.edu/networking/tcp_friendly.html[15]鲁飞.视频实时传输拥塞控制机制的研究[D].武汉:中南民族大学电子信息工程学院,2008[16]钱亚冠.视频编码理论与MPEG-4的DSP实现[D].浙江:浙江大学计算机科学与技术学院,2005[17]RobertWright.IP网络路由基础[M].北京:电子工业出版社,2000,1~99[18]巴继东,杨九民.IP与光互联网[M].北京:北京邮电学院出版社,2001,44~59[19]田毅珂,卢朝阳,高西全.MPEG-4视频标准及其关键算法[J].现代电子技术,2002(1):38-41[20]ISO/IEC14496-1FDISMPEG-4Systems.Nov,1998[21]ISO/IEC14496-6FDISDeliveryMultimediaIntegrationFramework.Nov,1998[22]ZhangR,RegunathanSL,RoseK.VideocodingwithoptimalInter/intra-modeswitchingforpacketlossresilience[J].IEEEJ.Select.AreasCommun,2000,18:966–976[23]TalluriR.Error-resiliencevideocodingintheISOMPEG-4standard[J].IEEECommun.Mag,1998,112–119[24]钟玉琢,王琪,贺玉文.基于对象的多媒体数据压缩编码国际标准--MPEG-4及其校验模型[M].北京,科学出版社,2000:207-213[25]RobKoenen.CODINGOFMOVINGPICTURESANDAUDIOISO/IECJTCI/SC29/WG11N4668MPEG-4OverviewoftheMPEG-4standard.ISO/IECJTCI/SC29/WG11Document,2002[26]孔梁萍.基于MPEG-4的网络视频监控系统(客户端)(D).北京:北方工业大学机电工程学院,2005[27]Secretariat.ISO/IECJTCI/SC29/WG11DocumentN2501InformationTechnologyGenericCodingofAudio-VisualObject,Part1:Systems,ISO/IEC14496-1FinalInternationalStandard,1998[28]MladenB,HansJS,PeterP.MulticoresystemonchiparchitectureforMPEG-4st_reamingvideo[J].IEEETransactionsonCircuitsandSystemforVideoTechnology,2002,12(8):688-699[29]罗明宇,卢锡城,韩亚欣.Internet多媒体实时传输技术[J].北京,计算机工程51 视频实时传输系统设计与拥塞控制策略研究与应用,2000,36(9):119-144[30]陆其明.DirectShow开发指南[M].北京:清华大学出版社,2005[31]JoriLiesenborgs.JRTPLIB3.7.1[EB/OL].[2008-12-20].http://research.edm.uhasselt.be/jori/jrtplib/documentation/index.html[32]XVIDcoreAPIoverview[EB/OL].[2008-11-25].http://www.xvid.org/[33]许先斌,朱平,安晖.运用RTP协议实时传输MPEG-4流[J].北京,计算机工程与设计,2003,24(2):57-59[34]谢希仁.计算机网络[M].北京,电子工业出版社,2003[35]黄辉春.网络拥塞控制技术研究及其仿真实现[D].哈尔滨:哈尔滨工程大学计算机科学与技术学院,2005[36]沈鑫剡等.多媒体传输网络与VOIP系统设计[M].北京:人民邮电出版社,2005[37]杨传栋,余镇危,王行刚等.端到端的流媒体传输控制技术研究综述[J].北京,计算机工程与应用,2005,8:26-30[38]PadhyeJ,FiroiuV,TowsleyD,etal.ModelingTCPThroughput:ASimpleModelandItsEmpiricalValidation[J].IEEE/ACMTransactionsonnetworking,2000,8(2):133145[39]WidmerJ,DendaR,MauveM.ASurveyonTCP-FriendlyCongestionControl[J].IEEENetworkMagazine,2001,15(3):28-37[40](美)LarryL.Peterson,BruceS.Davie著;叶新铭,贾波等译.计算机网络系统方法:asystemsapproach.[M].北京:机械工业出版社,2005[41]HandleyM,FloydS,PadhyeJ,WindmerJ.TCPFriendlyRateControl(TFRC):ProtocolSpecification,RFC3448,IETF,2003[42]于斌.NS2与网络模拟[M].北京:人民邮电出版社,2007[43]TheNetworkSimulator-ns-2[EB/OL].[2008-05-20].http://www.isi.edu/nsnam/ns52 中南民族大学硕士学位论文致谢三年的光阴瞬间即逝。经过研究生的学习,不仅在学术上有了进步,更重要的是个人综合素质的提高,也是迈向成熟的至关重要的一步。三年来,导师和实验室的各位老师在学业上的悉心指导和帮助,在生活上的关怀以及思想上的教育,都使我受益匪浅,实验室同学之间的相互帮忙,真心待人,这一切都让我铭记终生。首先,衷心感谢我的导师刘海华教授,由于他的悉心指导和真诚的关怀下才得以顺利完成。在攻读硕士学位期间,刘老师为我们提供了优良的学习环境,培养了良好的学习氛围,同时给予我严格、耐心的指导和宽容,使我能够顺利的完成硕士阶段的学业和科研任务,迈出了理论研究的第一步。刘老师在学术上严谨的治学态度、渊博的专业知识、开阔的思维方式以及生活中高尚的人品和宽容学生的精神,都教会我许多做人的道理,这一切都是我一辈子学习的榜样。在学业即将结束之际,也是我们即将离开温暖校园的时候,在此,谨向我们敬爱的刘老师表示最衷心的感谢和最崇高的敬意!感谢电信学院的陈亚光院长、刘向明老师,以及图像处理实验室的陈心浩老师、高智勇老师、舒振宇老师、喻胜辉老师、陈军波老师、张莉老师、何湘竹老师、谌先敢老师和张淼老师等,感谢电信学院的领导和全体老师,在学习期间给我的指导和帮助。感谢图像处理实验室所有的同学和师弟师妹们,在学业上协助我进行课题的研究,在生活上陪伴我度过愉快的研究生生活。感谢电信学院的所有研究生和朋友们,陪伴我一起度过了在中南民族大学愉快的大学生活和研究生生活。最后,谨以此文献给我的家人,特别是我的父母,感谢他们的养育之恩,感谢他们将一个不懂事的孩子培养成人,在人生的成长过程中对我的包容、鼓励与支持,使我对生活充满了信心,对未来充满了向往,感谢他们无私的爱!53 视频实时传输系统设计与拥塞控制策略研究附录A攻读学位期间所发表的学术论文目录[1]高智勇,钟华彪,刘海华.一种改进的TCP友好拥塞控制算法.中南民族大学学报(自然科学版),2009年6月,第28卷第2期.54

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭