视频流媒体实验报告

 

 

第二篇:基于RTP协议的视频流媒体实时传输

华中师范大学

硕士学位论文

基于RTP协议的视频流媒体实时传输

姓名:葛镜

申请学位级别:硕士

专业:电路与系统

指导教师:张国平

20070606

⑧硕士学位论文

MASTER’STHE秘S

摘要

多媒体技术和计算机网络技术的不断进步使网络多媒体应用日益普及和快速发展。视频会议,视频点播,远程教育,口T、,等多媒体应用在人们的日常生活中发挥着越来越重要的作用。

本文正是在这样的前提下,对多媒体技术和网络协议进行深入研究的基础上,提出了基于RTP协议的视频流媒体实时传输系统的设计与实现。论文首先在对各个视频压缩技术进行比较后,选择MPEG_4运动图像压缩编码标准作为本系统的视频压缩技术,并详细研究了MPEG4标准的内容和优势,它广泛应用于低码率传输。如何在网络上实时传输mE(“码流是当前的一个研究热门,也是未来网络多媒体的一个重要的研究方向。接着对网络传输协议进行分析比较,选用RTP/RTCP协议作为本系统传输层协议,并深入分析了R1驯R:rCP的特点、内容。最后给出了本系统的总体结构和系统各个模块的解决方案,包括网络传输模块,网络接收模块,视频编码控制模块和视频播放模块等。

本系统具有视频采集、播放、网络传输、网络接收、解压等功能,达到了MPEG-4网络组播的基本要求,能实时传输视频图像。除视频采集功能外均采用软件实现,有较强的可移植性和易于升级,同时硬件投资也不高。关键词:实时传输与控制协议;MPEG..4;流媒体;组播

Abstract

Thesteadyadvancementoftechnologyinthefieldofnetworkshasbecome

mul吐media

and

computer

such

strongimpetustothedevelopmentandpopularizationoftheapp)ication&Distributed

on

networkedmultimediavideoconferonce,video

more

multimedia

applications

etc.are

as

demand,long-distance

education,IPTV

moreand

importanttopeople'slife.

Accordiongtothese,andbased

on

thein-depthresearchofthebasictheoryof

multimedia

technologyandnetworksprotocol,theresearch

project

ofthethesisisto

research鼢RTP-basedstreamingmediareal-timetransmission

syat锄design

and

implementation.Thethesis

variousvideocompression

content

includesthefollowingparts:Firstly,aftercomparisonsofthe

technology,MPEG-4video

MPEG-4

codingstandardsischosen,and

and

advantages

ofthe

isdetailedlystudied.Itis

verypopular

multimediacodee.whichusedinthelowbit-ratetransportinthenetwork,howto

transport

MPEG4bit.streaminthenetworkreal.timeis

thisthesislucubmtesthecomentsandcharacterssuitableforthevideo

of册and

hotspotofresearch.Andthen

believesthatRTPisweII

thewholedesign

source

transmission.Finally,Thethesisintroduces

projcct

ofthissystemanddetailsresearchprocessof

everyprogram

produce

module,whichincludingnetworktransmissionmodule,networkreceivermodule,video

euding

controlmodule,playingbackmoduleforvideoand

SOon.

Thesystemcomprisesfunctionsofvideodatacollecting,playback,netwok

testresultshowsthat

transmission,networkreceiver,decoding.The

thesystem

CRIl

rcal-timetransportMPEG.4videoMulticastandplaybackthevideowell.T五emostofthe

functionsare

archivedbysoRware,exceptvideodatacollecting.thesystemcostslowIn

hardwareinvestmentandCanbeupdatedeasily.

Keywords:RTP/RTCP;streamingmedia;MPEG-4,multi—cast

华中师范大学学位论文原创性声明和使用授权说明

原创性声明

本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作所取得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本声明的法律结果由本人承担。

作者签名:撒日m-加7年石月6日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中师范大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同时授权中国科学技术信息研究所将本学位论文收录到《中国学位论文全文数据库》,并通过网络向社会公众提供信息服务。

作者签名:蔼锰导师

日期.砷年6月_6日日期日

本人已经认真阅读“CALIS高校学位论文全文数据库发布章程”,同意将本人的学位论文提交4CALIS高校学位论文全文数据库”中全文发布,并可按“章程”中的规定享受相关权益。旦重途塞量銮奄溢卮!旦圭生i旦=生;旦三至蕴查!

作者签名:问气压作者签名:就导师签日期:御年‘B6日日期:

第一章绪论

1.1流媒体实时传输的现状

随着人类经济、政治及文化活动的不断发展和科学技术的进步,人与人之间的信息交流越来越频繁。为此人们对通信方式提出了越来越多的需求。声音和图像具有直观性强。信息内容丰富的特点。在人类日常生活中,大部分信息是通过听觉和视觉来取得的。因此,通信中引入了音频和视频信息的传输,大大丰富了通信的内容,而且也更适合人们获取外部信息的特点。为了解决音视频文件下载时间过长的衄题,适应瞬络化的发展趋势,一种新兴技术孕育而生,这就是遵守特定网络协议的流媒体技术。流媒体(StreamingMedia)作为一个完美的、真正的“第四媒体”,将是未来互联网发展的~个方向,它将彻底改变传统互联两只能表现文字和图片的缺陷,而可集音频、视频及图文于一体,成为未来互联蹰应用的主流,并将推动互联网整体架构的革新。也正因为如此以音视频为基础的流媒体传输成为近年来发展较快的一项新业务。流媒体的实时传输技术已经在各行业中显示出其强大的功能,在远程教育、视频监控l”、视频会议、娱乐多媒体点播以及IPTV等领域得到了广泛的应用[21。

互联网的发展,决定了流媒体市场的广闼前景。流媒体的巨大市场吸弓I了全球众多各大宽带运营商、电信运营商的目光,它们都希望在这一新兴的网络媒体市场争取更大的份额。传统的多媒体文件需要从服务器上下载之后才能播放,而流媒体与常规多媒体不同,可边下载边播放【31。流媒体是运用可变带宽技术,以“流”的传输方式在因特网上播放的媒体格式,如音频、视频或多媒体文件,使人们可以在28kbit/s到1200kbit/s的带宽环境下在线连续地欣赏高品质音频和视频节目。

流媒体实时传输是计算机技术,网络通信技术和多媒体技术共同发展的结果,语音、图像、视频等多媒体信息如何能够得到比较好的采样和传输是流媒体应用的关键,采用何种编码形式以及如何在因特网带宽下能够合乎应用的需求进行传输【4J,也就是数字图像压缩编码技术和网络传输技术,是设计一个流媒体系统必须要认真考虑的问题。

信源的压缩始终是流媒体实时传输的核心问题之一。多媒体数据的量很大,目前的网络带宽相对原始多媒体数据巨大的量来说还是远远不够。若不对视频数据进行压缩处理,实时性根本无法达到。如一张24位的720×576分辨率的数字视频图

⑧项士学位论文

MASTER’ST1-1ESI¥

像,其数据量约为9.95Mbits/帧,假设帧速为25帧,秒(PAL制式),则要使该类型视频信号能够流畅传送到终端解码,网络传输速率大约应为248.75Mbits/s,一分钟的视频则需要服务器端提供至少约l。965Mbytes的硬盘空间来存储,同时加重网络的负担及终端解码的效率。如果不压缩基本上不可能在网络上实时传输多媒体数据,必须采取高效的压缩方式,把原始音视频数据转化为适合流式传输的文件格式。因此提高多媒体数据的压缩效率对流媒体实时传输尤为重要。国际上有两个负责音视频编码的标准化组织[5-61,一个是国际标准化组织(ISo)和国际电工委员会0EC)下的运动图像专家组MPEG(MotionPictureExpertGroup);另一个是国际电信联盟(rrto下的视频编码专家VCEG(VidepCodeExpertGroup)。MPEG制订的标准有MPEG-1,MPEG-2,MPEG-4,MPEG.7,MPEG-2l。MPEG.1主要为VCD采用,MPEG.2则为DVD所用,MPEG-4是为交互式多媒体通信制订的压缩标准[7-sj,MPEG-7是为互联网视频检索制订的压缩标准。MPEG-21的正式名称是多媒体框架,是一个在交互通信中的多媒体框架、综合应用标准。国际电信联盟制订的标准有H.261,H.262,H.263,H,264。

与单纯的下载方式相比,对多媒体文件边下载边播放的流式传输方式使启动延时大幅度地缩短,而且对系统缓存容量的需求也大大降低。尽管流式传输对于系统缓存容量的要求大大降低,但仍需要缓冲【外。通过使用缓存系统来弥补延迟和抖动的影响,并保证数据包传输顺序的正确,使媒体数据能连续输出,不会因网络暂时拥堵而使搔放出现停顿。流媒体传输的实现需要合适的传输协议,如实时传输协议RTP(Real.TimeTransferProtoc01)110]实时传输控制协议RTCP(Real.TimeTraxasferControI)111J。在互联网中发展流媒体传输系统对推广互联网的运用有着重要的意义。

实时传输协议/实时传输控制协议RTP/RTCP是由Intemet专家任务组IETF(IntemetExpertTaskFol'ce)制定的协议族。该协议族是流媒体的应用层协议,早在1996年就成为Interact的国际标准。针对具体应用,IETF还制定了RTP与特定媒体相结合的标准(RFC),如RFC4184(RTPPayloadFormatforAC-3Audio)t121。RFC3984(RTPPayloadFormatforH-264Video)t131,RFC3640(RTPPayloadFormatforTransportofMPEG.4ElementaryStreams)t1町等。ⅣrPPayloadFormatforMPEG-4Audio/VisualStreams的标准为RFC3016to,该协议在RTP对MPEG的封装过程中,将MPEG码流特征信息如时间戳、编码层次结构等拷贝到RTP包头(header)中,将MPEG-4音视频码流直接映射到RTP净荷中,从而使RTP分组有很强的QoS保证,终端系统可以根据RTP包头分析传输中的差错(拥塞、时延、丢包等),再通过一定的缓冲和补偿算法,修复相当程度的网络差错。2

1.2论文研究的主要内容

本文研究的初衷正是在于目前流媒体网络传输的应用得到了越来越广泛的重视,论文对流媒体尤其是视频流的编码方式以及如何在网络环境下传输进行了探讨和研究。在建立该系统的过程中,对多媒体流的网络实时传输机制的各个方面有了比较深刻盼认识和理解,各个应用模块设计的均建立在软件工程面向对象的程序设计思想上,可以在具体的工程项目中使用,并为将来的进一步研究开发打下了坚实的基础。结合实际需求,本文核心研究方向主要集中在以下几个方面:

(1)视频压缩编码技术

由于在网络环境下,网络的传输速率有限,要实现实时的视频数据传输,视频压缩设计是决定系统成功与否的关键。在对各个视频压缩技术进行比较后,选择MPEG-4运动图像压缩编码标准作为本系统的视频压缩技术,并对该标准进行深入细致的研究,在此基础上对运动图像压缩编码中几个关键的技术环节进行了深入的研究。

(2)实时网络传输技术

目前的因特网不能提供任何的Qos保障,所以MPEG-4视频的实时传输面临很多困难。总结起来主要有:带宽限制,延迟和传输数据包的丢失及差错。因此实时传输视频必须跟踪当前网络的可用带宽,调整输出码率,才可能避免网络过度拥塞,有效地利用带宽资源。实时视频传输口6j对延迟有很高的要求,而目前的网络并不能保证这一点,视频数据包的丢失会严重影响视频质量,而在误码率较高的无线网络环境中,视频码流的传输错误也会降低视频质量。通过对传输层协议TCP和UDP的研究比较分析,采用了基于RTP/RTCP的UDP协议作为传输层协议,比较好地解决了如何获得网络信息的问题,并能够对网络服务质量进行监控,使发送端和接收端能够动态的调整发送和接收策略,使数据的实时传输更为有效。

(3>软件平台

系统搭建于MierosottWindows下,采用可视化编程语言VisualC.H6.0开发。整个系统按照面向对象的软件思想,把系统的各个部件分解成各个模块,可以为今后的多媒体软件工程进行进一步的开发。

其它说明:视频采集设备为日本KONIDAKN-2038摄像头。服务器端计算机配置为CPUIntel1.8G,内存256M,硬盘80(2;另外还有几台同等配置的计算机作为客户机。系统目前能够在局域网上顺利进行实时视频流的传输。3

⑧硕士学位论文

MASTER’STHF.SIS

第二章视频压缩及流媒体技术

2.1视频压缩技术

图像压缩编码技术已经有50多年的历史。而近10年来图像编码技术更是得到了迅速的发展和广泛应用。并且日臻成熟,其标志是多个关于图像编码的国际标准的制定I“】,既国际标准化组织(tSO)和国际电工委员会GEC)关于静止图像的编码标准JPEG/JPEG2000,关于运动图像的编码标准MPE(3-1,MPEG一2,MPEG--4等,以及国际电信联盟(rru)下的视频编码专家组制定的视频编码标准H.26x系列。

MPEG-1,MPEG-2,H.263,MPEG--4,H.264等都是目前比较常用的视频压缩技术。MPEG一1是由IsO的MPEG组织(运动图像专家组)于1992年底审口定并颁布的标准。MPEG-1采用了基于帧间信息压缩编码的技术,在运动图像的压缩上具有较好的效果,该标准是为cD.RoM,光盘的视频存储和藏像而制定的。编码图像的分辨率为Sm格式(352*288),帧率为24/25/30帧/秒,编码后的标准视频码率在1.5Mbit/s左右。由于该标准制订较早,应用广泛成熟,码率适中,比较适合监控行业的应用。并成为监控行业的主要标准【l-q。

MPEG-2是由ISO的MPEG组织于1994年制定的视频编码标准。该标准针对高清晰数字电视制订,其基本原理与MPEG-1类似。编码图像的分辨率较高(720*576或更高),视频码率为4Mbit/s一80Mbit/s,但编码器成本较高,码率较大。应用不如MPEG-1广泛,MPEG-2标准主要被DVD、HDTV、数字电视和卫星电视采纳【1s-20!。

H.263是由Ⅱu组织于1996年制定的一种视频会议系统标准。该标准针对远程视频传输应用而制定,因此在低带宽,低码率条件下具有较好的适应性和性能。但是H.263的标准框架较大,在实现上具有不确定性因素。同时,没有产业链的良好支持,在编码硬件上不是很成熟,在国内应用领域不多。为了解决这些问题,IsO/mC和ⅡU两大国际化标准组织联手制定了视频新标准H.264。

MPEG于1998年底制定了第二阶段解码方案——.MPEG一4,它具有开放的编码系统,可随时扩展丰富的基于内容的编码算法,采用了包括小波变换等多种交换,高压缩率占用更小的存储空间,有更高的清晰度。特别是其对象分离的控制,交互性、重用性更强,基于内容的分级扩展,保证了同时在低高带宽下的最佳画面质量。4

2.2

(1)硕士擘位论文MASTER’STHE¥15MPEff-4视频压缩技术MPEG-4在多媒体传输、多媒体存储等领域具有广泛应用【2l埘l;低比特率下的多媒体通信,如视频电话、视频电子邮件、移动多媒体通信、电子新闻等。这些应用对传输速率要求较低,在4.8~64kbit/s之间,分辨率为176x144。MPEG-4利用很窄的带宽,通过帧重建技术压缩和传输数据,以最少的数据量获得最佳的图像质量。

(2)互联网上的视频流与可视游戏,如网上电影。

(3)数字电视、动态图像、万维网(www)。

(4)实时多媒体监控。

(5)基于内容存储和检索的多媒体系统。

(6)基于面部表情模拟的虚拟会议。

(7)DVD上的交互多媒体应用。

2.2,1MPEG-4视频压缩的优势

在MPEG-4制定之前,MPEG-1,.MPEG-2,H.261,H.263都是采用第一代压缩编码技术,着眼于图像信号的统计特性来设计编码器,属于波形编码的范畴。第一代压缩编码方案把视频序列按时间先后分为一系列帧。每一帧图像又分成宏块以进行运动补偿和编码,这种编码方案存在以下缺陷:

(1)将图像固定地分成相同大小的块,在高压缩比的情况下会出现严重的块

不能对图像内容进行访问、编辑和回放等操作;效应,即马赛克效应;(2)

(3)未充分利用人类视觉系统(HVS,HumanVisualSystem)的特性。

由ISO/IEC于1998年推出并于1999年正式成为国际音视频压缩标准的MPEG-4,其压缩方法不再局限于某种算法,可以根据不同的应用进行系统剪裁和选择,还提出了一些新的有创见性的关键技术,充分利用了人眼视觉特性【抛4】,抓住了图像信息传输的本质,从轮廓、纹理思路出发,支持基于视觉内容的交互功能,这适应了多媒体信息的应用由播放型转向基于内容的访问、检索及操作的发展趋势。

IVIPEG-4标准提供了一系歹{j技术以满足作者、服务提供者和终潺用户酌不同需求,例如:

(1)对于作者,其作品的内容具有更大的可重复使用性,并能更好地保护作5

者的知识产权;

(2)对于网络服务的提供者,提供了透明的信息,该信息可以被转换为每一网络的本她的信息形式,铡如把语言转换为本地的语言;

(3)对于终端用户,在作者的限制范围内有着更高程度的交互性。

较之MPEG的前两个图像压缩标准而言,MPEG-4为多媒体数据压缩提供了一个更为广阔的平台,它更多定义的是一种格式和框架,而不是具体的算法。采用了基于对象(obj.-based)的编码、基于模型(model-based)的编码等第二代编码技术是MPEG-4标准的主要特征。在MPEG^4中把连续活动的画面及伴音内整体称之为一个场景(seerie)。在场景内部按内容及相关性分割为多个媒体对象(MeAiaObject)。

因为媒体对象自身并不包含其在场景中的时回与空间信息,因此为了在重建时能准确恢复出原始的场景,在传输媒体对象自身的信息之外,我们还需要传输对象在场景中的时空信息及对象相互之间的关系,这些被称为场景描述信息。基于对象的分级功能是MPEG-4提供的又一个新功能,同时兼容了MPEG-2标准中的图像分级功能,分级工具主要用于互联两和无线网等窄带的视频通信、多质量视频服务和多媒体数据库预览等服务。MPEG-4提供了两种基本的分级工具:时域分级和空域分级,时域分级是降低原视频序列的帧频,空域分级是降低原视频序列的分辨率。在每类分级工具中,视频序列都可以分为两层:基层和增强层,基层提供了视频序列的基本信息,增强层提供了视频序列更高的分辨率和细节,基层可以单独传输和解码。MPEG4也支持时域秘空域的混合分级。

2.2.2ILOEG--4的核心思想

相比以前的编码技术,MPEG-4标准还支持一些新的功能,这些功能可以粗略的被划分为三类:基于内容的交互性、高压缩率和灵活多样的存取模式。

(1)基于内容的交互性

基于内容的操作与比特流编辑:支持无需编码就可进行基于内容的操作与比特流编辑。例如,使用者可在图像或比特流中选择一具体的对象(例如匿}像中的某个人、某个建筑等),然后改变它的某些特性。

自然与合成数据混合编码:提供将自然视频图像同合成数据(如文本、图形等)有效结合的方式,同时支持交互性操作。

增强的时问域随机存取:MPEG-4将提供有效的随机存取方式。在有限的时问闯隔内可按帧或任意形状的对象,对音、视频序列进行随机存取。例如以一序列中的某个音、视频对象为目标进行“快进”搜索。6

(21高压缩率

提高编码效率。与现有的或正在制定的标准相比,在可比拟速率上,MPEG-4标准将提供更好的主观视觉质量的图像。这一功麓可望在迅速发展的移动通信网中获得应用,但值得注意的是提高编码效率不是MPEG-4的唯一的主要目标。

对多个并发数据流的编码:MPEG-4提供对同一景物的有效多视角编码,加上多伴音声道编码及有效的视听同步。在立体视频应用方面,MPEG-4将利用对同一景物的多视点观察所造成的信息冗余,这~功能在足够的观察视点条件下,将有效地描述三维自然景物。

(3)灵活多样的存取

错误易发环境中的抗错性:“灵活多样”是指允许采用各种有线、无线网和各种存储媒体,在这些媒体中MPEG-4具有更高的抗错误能力,尤其是在易发生严重错误的环境下的低比特应用中。同时,MPEG-4是第一个在其音视频表示规范中考虑信道特性的标准,其目的不是取代己有通信网提供的错误控制技术,而是提供一种对抗残留错误的坚韧性。倒如:选择前向纠错(SelectiveForwardErrorCorrection)、错误遏常I/(ErrorContainment),或错误掩盖(ErrorConcealment)。

基于内容的尺度可变性:内容尺度可变性意味着给图像中的各个对象分配优先级。其中,比较重要的对象用较高的空间或时间分辨率表示。基于内容的尺度可变性是MPEG-4的核心,因为一旦图像中所含对象的目录及相应的优先级确定后,其他的基于内容的功能就比较容易实现了。对于甚低比特率应用来说,尺度可变性是一个关键的因素,因为它提供了自适应可用资源的能力。例如,这个功能允许使用者规定:对具有最高优先级的对象以可接收的质量显示,第二优先级的对象则以较低的质量显示,而其余内容(对象)则不予显示。可见,这种方式可最有效地利用有限的资源。

MPEG-4的编码还具有鲁棒性和纠错功能,提供在易错环境下实现安全的低码速率编码和传输。它采用3个策略来达到此目的:再同步(resynchronization)、数据恢复(datarecovery)、错误隐藏(errorconcealment)。再同步工具在检测到误码时重新在解码器和码流间建立同步点,前一个同步点和新建立的同步点间的码流就是发生误码的数据;数据恢复是通过标准中提供的一种可逆变长编码技术来恢复两个同步点之间的数据:错误隐藏通过空间的纹理相关性和视频前后帧的相关性对错误的图像区域进行隐藏。

从上面的分析我们可以看到,与前面的MPEG标准相比较,MPEG-4标准非常适合在现代网络通信中应用。7

2.2.3咿EG-4标准的构成

MPEG-4标准主要由如下6个部分构成

(I)多媒体传送整体框架(DMIF,TheDeliveryMultimediaIntegrationFramework)[zSl

它主要解决交互网络中、广播环境下以及磁盘应用中多媒体应用的操作问题。通过传输多路合成比特信息来建立客户端和服务器端的握手和传输。MPEG-4的应用可以从DMIF请求而建立具有特定服务质量(QoS)的频道,以及用于每个基本数据流的带宽。

(2)数据平面

MPEG-4中的数据平面可以分为两部分:传输关系部分和媒体关系部分。为了使基本流和音视频对象(AVO)在同一场景中出现,MPEG-4引用了对象描述符(ODl和流图表(SMT)的概念。0D传输与某个AVO相关的基本数据流的数目和特性的信息。SMT把每个数据流链接到一个信道联系标记上,用于管理携带此数据流的信道,以实现该数据流的顺利传输。

(3)缓冲区管理和实时识别

MPEG-4定义了一个系统解码模式(SDM)。该解码模式描述了一种理想的处理比特流语法和语义的解码装置。它没有对设施的各种细节作不必要盼各种假定,目的是使实施者可以自由地以各种方式设计各种MPEG-4终端和解码设备。通过有效地管理,可以更好地利用有限的缓冲区空间。

(4)音频编码

MPEG-4不仅对自然声音的编码标准化,而且支持语音合成和音乐合成。(5)视频编码

与音频编码类似,MPEG-4也支持对自然和合成的视觉对象的编码。合成的视觉对象包括2D、3D动画和人面部表情动画等。

(6)场景描述

MPEG-4提供了一系列工具,用于组成场景中的一组对象。一些必要的合成信息就组成了场景描述,这些场景描述以二进制格式BIFS(BinafyFormatforScendescription)表示,BIFS与AV对象一同传输、编码。场景描述主要用于描述各AV对象在一具体AV场景坐标下,如何组织与同步等问题。同时还有Av对象与AV场景的知识产权保护等问题。MPEG-4为我们提供了丰富的AV场景。8

⑧硕士学位论文

MASTER’STHESIS

2.2.4咿EG-4分层描述语法结构

MPEG-4标准中引入了视频对象fvO,visualohjet0的概念来实现基于内容的表示。在这一概念中,根据入眼感兴趣的一些特征,如形状、纹理、运动等,将图像序列中每一帧中的场景,看成是不同视频对象面(vOP)所组成。VO可以是视频序列中的人物或具体景物。MPEG-4视频码流提供了对视频场景的分层描述。层次结构中的每一层都可以通过被称为起始码的特殊码字从视频流中识别出来。对场景最直接的分层描述如图2.1所示(这里主要考虑自然视频对象的编码问题)。

视频序列●_…‘一_一VSl…

(1)视频序列(VS):完整的MPEG-4场景,可以包括任何二维和三维自然或合成对象以及它们的增强层。

(2)视频对象(vO):一个视频对象对应着场景中的一个特定2-D对象。在大多数情况下视频对象都是一个矩形帧,当然也可以是任意形状的对象或是场景中的背景【2睨g】。

(3)视频对象层WOE):根据应用的具体要求,每一个视频对象都可以用分级或不分级的方式进行编码,用视频对象层来表征。视频层提供了对分级编码的支持。一个视频对象可利用空间或时间可伸缩性进行编码使分辨率从粗糙到精确。

(4)视频对象平面组(Gov):可以提供码流中独立编码的视频对象平面参考点,因此可以支持对码流的随机访问点,是任选的。

(5)视频对象面WOe):一个VOP是对一个视频对象的时间采样,包括视频对象的运动参数、形状信息和纹理数据。VOP可以是相互独立编码,也可以是通过运动补偿依靠其它VOP编码。对VOP编码就是针对某一时刻该帧画面VO的形状、运动、纹理等信息进行编码。9

2.2.5IIPE6--4基于VOP的视频编码

在基于对象的视频编码中,编码的基本单元是对象,主要针对纹理、形状、运动这三种信息的编码技术。视频编码框架中主要包括三个关键模块,如图2.2,即纹理、形状和运动信息编码模块。

图2.2MPEG-4视频编码基本结构

(1)形状编码

MPEG-4引入了形状信息编码,尽管形状编码在计算机图形学、计算机视觉和图像压缩领域不是什么新技术,但将其纳入完整的视频编码标准内,这还是第一次。VO的形状信息有两类;二值形状信息和灰度形状信息。二值形状信息用O。l来表示VOP的形状,0表示非VOP区域,1表示VOP区域。二值形状信息编码采用基于运动补偿块技术,可以是无损或有损编码。灰度形状信息用0-255之间的数值来表示VOP的透明度,其中0表示完全透明(相当于二值形状信息中的o),255表示完全不透明(相当于二值形状信息中的1)。灰度形状信息的编码采用基于块的运动补偿DCT方法(同纹理编码相似),属于有损编码。目前标准中采用矩阵的形式来表示二值或灰度形状信息。

(2)运动信息编码

类似于现有的视频编码标准,MPEG-4采用运动预测和运动补偿技术去除图像信息中的时间冗余度,而这些运动信息的编码技术可视为现有标准向任意形状的VOP延伸。VOP编码有3种模式,即帧gq(Infra-frame)编码模式(I-VOP),帧闻(Inter-frame)预测编码模式(P-VOP)和帧间双向预测圆idirectionaly)编码模式(B-VOP)?

在MPEG-4中运动估计和运动补偿可以是基于16X16象素宏块,或是8X8象lO

素块。为了能适应任意形状的VOP,MPEG-4引入了图像填充(ImagePadding)技术和多边形匹配(PolygonMatching)技术。图像填充技术利用VOP内部的象素值来外推VOP外的象素值,以此获得运动估计的参考值。多边形匹配技术则将VOP的轮廓宏块的活跃部分包含在多边形之内,以此来增加运动估计的有效性,

(3)纹理编码

纹理编码的对象可以是帧内编码模式I-VOP,也可以是帧间编模式B-VOP或P-VOP。编码方法基本上仍采用基于8×8象素块的DCT方法。在帧内编码模式中,对于完全位于VOP内的象素块,财采用经典的DCT方法:对于部分在VOP内,部分在VOP外的象素块则首先采用图像填充技术来获取VOP之外的象素值,之后再进行DCT编码。帧内编码模式中还将对DCT变换的DC及AC系数进行有效的预测。在帧间编码模式中,为了对B-VOP和P.VOP运动补偿后的预测误差进行编码,可将那些位于VOP活跃区域之外的象素值设为128。变换之后的DCT系数还需经过量化、扫描及变长编码,这与现有标准基本相同。

(4)分级编码

在远程多媒体数据库检索及视频内容重放等应用中,引入分级编码可使得接收机可依据具体的信道带宽、系统处理能力、显示能力及用户需求进行多分辨率的解码及重放。MPEG--4通过视频对象层VOL的数据结构来实现分级编码。每一种分级编码都至少有两层VOL,低层称为基本层,高层称为增强层。空间伸缩性可通过增强层强化基本层的空间分辨率来实现,因此,在对增强层中的VOP进行编码之前,必须先对基本层中相应的VOP进行编码。同样对于时域伸缩性,可通过增强层来增加视频序列中某个VOP特别是运动的VOP的帧率,使其与其余区域相比更为平滑。

可见,纹理编码、运动预测和运动补偿部分在原理上同现有标准是一致的。值得注意的是形状编码,它是图像编码标准中第一次引入的技术。为了支持基于内容的功能,编码器可对图像序列中具有任意形状的VOP进行编码。尽管如此,从编码方案上说,MPEG-4仍然是以子块为基础的混合编码。因为MPEG-4的编码机制都是基于16X16象素宏块来设计的,不仅可以与现有的标准兼容,还便于对编码进行更好的扩展。标准的矩形帧可以认为是VOP的特例,在编码过程中其形状编码模块可以被屏蔽。

2.2.6MPF6-4的系统体系结构MPEG-4系统流指定了根据编码的视听信息和相关的场景描述信息来产生交互

方式的方法。这样的实体称为“视听终端”,它能复合发送并能接收和显示经过编码表示的一个交互的视听场景。系统的终端模型是对满足MPEG-4标准的终端行为的描述,是一种解码器模型,包括系统定时模型和系统缓冲区模型。

MPEG-4码流中的基本码流包括音频、视频和场景描述的编码表示。系统流和基本流表示用于识别码流、描述逻辑相关性和内容描述的信息,每种基本码流都只包含一种数据类型。基本码流将用各自的解码器进行解码,视听对象根据场景描述信息复合并由终端设备显示出来,这些过程都是根据系统解码模型中同步层所提供的同步信息同步的。MPEG-4系结构如图2.3。

传输层

传输,存储媒体

图2.3MPEG-4体系结构图

系统终端模型是对满足MPEG-4标准的终端行为的抽象描述,是一种解码器模型。定义该模型的目的是使发送端能够知道接收端在重构视听场景时是如何根据缓冲区管理和同步信息进行处理的。

传输层是对已经存在的各种传输协议的一般描述,MPEG-4系统没有定义传输层的功能,而是定义了和传输层有关的接口,这个接口就是传输媒体集成框架

⑨硕士掌位论文

MASTER+STHESIS

(DMIF)应用接口。DMIF应用接口不仅仅定义了传输接口,而且定义了信道建立和断开的信号。

各种数据源经过压缩碍到的数据主要是基本码流数据,它们包含内容信息,同步层将这些数据和同步信息封装成同步数据包流,再将它们送到传输层(DMIF),这些数据中不仅包含有定时和同步数据,而且还有随机访问信息。另一方面同步层从传输层接收数据流,从流中提取同步数据,为以后同步解码和基本流解码的合成做准备。

压缩层接收从同步层传来的压缩数据,并完成解码操作,这些解码后的信息用于终端的视听对象的合成及显示等。压缩层包括对象描述框架、场景描述码流、视听码流以及上载码流等对象。

2.3流媒体技术

在流格式媒体出现之前,人们若想从网络上双看影片或收听音乐,必须先将影音档案下载至计算机储存后,才可以点选播放,不但浪费下载时间、硬盘空间,也无法满足消费者使用方便及确切的需要。流媒体(StreamingMedia)的发展,克服了这些不足。

流媒体简单来说就是应用流技术在网络上传输的多媒体文件(音频、视频、动画或者其他多媒体文件),而流技术就是在网络上发布多媒体数据流,把连续的影象和声音信息经过压缩处理后放上网站服务器,让用户一边下载一边观看、收听,而不需要等整个压缩文件下载到自己机器后才可以观看的网络传输技术。该技术先在使用者端的电脑上创造一个缓冲区,于播放前预先下载一段资料作为缓冲,如果网路实际连线速度小于播放所耗用资料的速度时,播放程序就会取用这一小段缓冲区内的资料,避免播放的中断,也使得播放品质得以维持【91。

流媒体作为多媒体和网络领域的交叉学科,其技术可广泛用于实时监控、网上新闻发布、在线直播、网络广告、远程教育、视频会议等。目前应用最直接的是网上直播。作为新一代互联网的标志,宽带流媒体彻底改变了传统互联网只能表现文字和图片的缺陷,可集音频、视频及图文于一体。流媒体将成为未来互联网应用的主流,并将推动互联网整体架构的革新。

Interact发展至今,新技术、新应用层出不穷,如流媒体技术所提供的播放功能、交互性能和缓冲区功能,以及其在传输声像文件时表现出的“占用硬盘小、速度快、高保真”等性能,使得网上收听广播、收看实时电视广播进入实用阶段。流媒体服13

达。硕士擘位论文MA¥TER’STHESI¥务系统在强调对数据对象的共享使用和追求最大化的数据吞吐率的同时,更强调对高速、稳定和连续的访问流支持,强调对同步的支持,从而确保媒体数据的按时到

2.3.1流式传输基础

目前在网络上传输音视频等多媒体信息主要有两种方案:下载和流式传输,由于网络带宽的限制、音视频文件所需的存储容量大,采用下载方式需要的时间很长。流式传输则把声音、影像或动画等到信息由音视频服务器向用户计算机连续、实时传送,用户不必等到整个文件全部下载完毕,而只需经过几秒的启动延时即可进行播放,当音频、视频等媒体文件在客户机上播放时,文件的剩余部分将在后台从服务器内继续下载。流式传输不仅使启动延时成十倍、百倍地缩短,而且不需要太大的缓存容量。

流式媒体在播放前并不下载整个文件,只将开始部分内容存入内存,流式媒体的数据流随时传送随时播放,只是在开始时有一些延迟。流媒体实现的关键技术就是流式传输。实现流式传输有两种方法:顺序流式传输(Progressivestreaming)和实时流式传输(Realtimestreaming)【29】。

(1)顺序流式传输

顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳至4还未下载的前头部分,顺序流式传输不象实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HrrP服务器可发送这种形式的文件,也不需要其他特殊协议,它经常被称作HTTP流式传输。顺序流式传输比较适合高质量的短片段,如片头、片尾和广告,由于该文件在播放前观看的部分是无损下载的,这种方法保证电影播放的最终质量。这意味着用户在观看前,必须经历延迟,对较慢的连接尤其如此。

对通过调制解调器发布短片段,顺序流式传输显得很实用,它允许用比调制解调器更高的数据速率创建视频片段。尽管有延迟,毕竟可以发布较高质量的视频片段。顺序流式文件是放在标准HTTP或FTP服务器上,易于管理,基本上与防火墙无关。

顺序流式传输不适合长片段和有随机访问要求的视频,如:讲座、演说与演示。它也不支持现场广播,严格说来,它是一种点播技术。

(2)实时流式传输

实时流式传输是指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。14

⑨硕士学位论文

MASTER’STHESlS

它需要用到专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。理论上,实时流一经播放就可不停止,但实际上,可能发生局期暂停。

2.3.2流媒体技术原理

流式传输的实现需要缓存。因为Intemet以包传输为基础进行断续的异步传输,对于实时音视频源或存储的音视频文件,在传输中它们要被分解为许多包,由于网络是动态变化的,各个包选择的路由可能不尽相同,故到达客户端的时间延迟就不等,甚至先发的数据包还有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。通常高速缓存所需容量并不大,因为高速缓存使用环形链表结构来存储数据:通过丢弃经播放的内容,流可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。流式传输的实现需要合适的传输协议。一般来讲,由于TCP是面向连接的传输协议,不适合大量的数据传输,故流式传输方案可采用RTP来传输实时媒体数据,而用RTCP来传输控制信息【刈。

2.3.3流媒体播放方式

(1)单播

在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,这种传送方式称为单播。每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余首先造成服务器沉重的负担,响应需要很长时间,甚至停止播放:需要大量的硬件空间和带宽来保证一定的服务质量。

(2)点播与广播

点播连接是客户端与服务器之间的主动的连接。在点播连接中,用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽。广播指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流。例如,用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户。使用单播发送时,需要将数据包复制多个拷贝,以多个点对点的方式分别发送到需要它的那些用户,而使用广播方式发送,数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要,上述两种传输方式会非常浪费网络带宽。

⑧硕士肇位论文

MASTER’STHESIS

(3)组播

P组播131】技术构建一种具有组播能力的网络,允许路由器一次将数据包复制到多个通道上。采用组播方式,单台服务器能够对足十万台客户机同时发送连续数据流而无延时。媒体服务器只需要发送一个信息包,而不是多个;所有发出请求的客户端共享同一信息包。信息可以发送到任意地址的客户机,减少网络上传输的信息包的总量。网络利用效率大大提高,成本大为下降。

对比上面三种方式,组播吸收了上述两种发送方式的长处,克服了上述两种发送方式的弱点,将数据包的单独一个拷贝发送给需要的那些客户。组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽。

2.3。4流媒体广泛应用

流媒体技术改变了传统互联网的呆板形象,丰富了互联网的功能,使之成为一种有强大而有吸引力的薪媒体。这种技术在多媒体新闻发布、网络视频广告、电子商务、视频监控、视频点播、IPTV、网上直播、网络电台、视频会议、远程教学、远程医疗等领域得到广泛的应用1321。对于广电行业而言,流媒体更是拥有巨大潜力的新发展方向。流媒体不但可以播放广电媒体的所以节目内容,还可以提供更具有吸引力的多媒体内容点播、游戏等个性化的互动服务。流媒体领域涉及很多待解决的科学技术问题,其背后是数字电视、无线通信和宽带网络多媒体的广阔市场和巨大经济利益。16

⑨硕士学位论文

^lASTER’STHESIS

第三章网络传输协议

3.1传输层协议

流媒体的实时传输系统要在互连网络上能够互联互通必须采用标准的TCP/IP协议【”】,整个系统应该构建在基于TCP/IP协议栈的基础之上。口协议是一个点对点的提供无连接数据包传输机制的协议,但是,P协议对数据报文采用“尽力传递”,它不能处理数据报的丢失,延迟,乱序等问题,必须借助于传输层协议来解决[341。

TCP协议使用确认和重传机制实现了可靠的数据报传输服务,TCP是一种端对端的,面向连接的协议,提供了一种可靠的传输服务。在TCP建立一个连接后,TCP协议确保数据报按顺序传递而不重复,最后终止连接。在应用程序中通过套接字(SOCKET)来使用TCP协议进行数据传输。用户数据报协议UDP和TCP一样也是建立在口协议之上,但是和口协议一样,U】)P提供无连接的数据报传输机制,但是相对于P协议来说,UDP唯一增加的能力就是复用机制,以保证进程之间通信。UDP协议几乎直接建立在m协议之上,不提供可靠的数据报传输服务,因此有可能利用它来进行实时的数据传输服务,适合要求实时性很高的数据传输,例如音频,视频等。

TCP协议最初是为了鼹决口数据报只提供“尽力而为”的数据传送不对数据进行检查和纠错,经常发生数据丢失或乱序现象而采取的一种保证措施。它主要采用了重传机制和拥塞控制机制来保证数据得到可靠的传输,但是正是因为它的这些特性限制了TCP协议对于实时数据的传输。TCP的重传机制使发送方发现有数据丢失时,它将重传丢失的数据包,这将要需要一个甚至更多的周期,这种重传对于实时性要求很高的多媒体数据传输来说是灾难性的,因为接收方不得不等待重传数据的到来,从而造成了数据回放的延迟和断点。

即使是在网络状况运行良好的情况下,没有发生丢包,由于TCP的启动需要建立连接,因此在初始化的工作中,需要较多的时间,这样就增加了传输的延迟。由此可见,TCP协议是不适合进行多媒体信息传输的,目前大多数系统采用用户数据报协议UDP(UserDatagramProtoc01)来进行多媒体流网络实时传输取得了比较好的效果,这是根据实时多媒体流自身的特点所决定的。不同的通信业务对传输网络的要求是不同的,数据文件,静止图像等非实时信息传输,对时延无严格要求,但是对误码率要求很高。而语音和视频业务则要求实时传输,对时延十分敏感,但可17

⑧硕士擎住论文

MASTER’STHESI¥

以容忍一定程度的误码,只要在不影响人的视觉感受的情况下,甚至在网络状况恶劣的情况下可以容许传输方进行丢弃图像帧的情况下来满足实时性。所以如果使用UDP协议来传输实时数据,不对数据报进行校验,重组,可以使传输延迟时阀大大减小,虽然会出现乱序现象,但是可以通过一些处理(最简单的处理就是丢帧),比如在接收端可以利用图像信息具有相关性的特点通过接收到的一些数据将原来的信息全部或部分恢复的方法来使信息的获取不受影响,使解码回放的质量得以保障。

然而UDP协议毕竟是一个不可靠的传输层协议,它缺乏流量控制和足够的差错控制能力使程序有可能出现问题,比如不使用流量控制,接收端如果接收的报文过多的话有可能出现溢出。所以,UDP协议可靠性问题,需要由应用层协议提供相应的差错控制机制给予解决。

现有基于m协议的互联网难以有效支持实时应用,对于实时传输、服务质量QoS等问题难以解决。因此,在这种情况下,mTF音视频工作小组(IETF—ACT)制订了一些新的协议,实时传输协议RTP(Real—TimeProtoc01)[∞j和实时传输控制协议RTCP(Rcal.Time

3ControlProtoc01)…j便是其中之一。2实时传输协议

RTP由IETF的AVT工作组于1996年公布为RFC正式文档,编号为RFCl889。是专门为交互式语音、视频等实时数据而设计的传输协议,用于vo口、视频传输等实时多媒体应用。RTP协议与TCP协议十分相似,只是当差错造成分组丢失时,不要求重发,同时RTP规范中还定义了实时传输控制协议RTCP,用于提供QoS监视机制。RTP协议位于传输层之上,它没有连接的概念,虽然它既可以建立在面向连接的协议上,也可以建立在面向无连接的协议上,但是一般来说,RTP作为实时数据传输而设计的,而建立在UDP协议之上,R1■刚陀P,UDP协议一起用于视频音频流的实时传输闻。RTP用于UDP数据封装时的情景如图3.1所示。18

I数据(净荷类型)jb&a。。』《&t2=§£。g__2;。剜

厨丽蟊那磊罱溺

盛盏&&址gd_盔≈i蛐。2《2-o。o止丘&£o出。&盆m山划

图3.1R口数据封装

RTP协议对于实时多媒体数据的传输的特点有如下:

两头}数菇(净蘅类型>驾睦to_k_‘‘‘三‘.&t=tit&∞—2&_4_t趔

睦盏墅噔:l。翌噔色苎:堡登磬耋

1.RTP是一种轻型的传输协议,其提供端到端的实时媒体传输功能,但并不提供机制来确保实时传输和服务质量。协议本身相对轻型、快捷,常常与具体应用结

合在一起。

2.灵活性:RTP协议将数据实时传输与控制策略分开。协议本身只提供实时传输机制,不具体规定控制策略。开发者可以根据不同的应用环境,选择实现效率较

高的算法及控制策略。

3.独立性:RTP协议与下层协议无关,可以在UDP/IP、IPX、ATM的AAL层上实现。

4.良好的扩展性:不仅支持单播,还支持组播。

RTP数据分组由固定的RTP数据头,一个可能空的作用资源表和净荷数据

(payload,如实时的音频或视频压缩编码后的数据)组成,如图3.2

静1

2P

3X

4567。8CC

90

234

5{6

78

9疗‘t~2§4

567g90董

MPT(狰荷类型)

序剜号

时矧黢

同步源(ssRc)标识符

贡献源(CSRC)

i”。

§

《4

£“

。≤

’Ⅺ悖分组净荷(paytoad)

£,:??:m‰{~t?…j;

图3.2

…,:o。。。.;{一j?捌

RTP分组的数据格式

19

RIP分组;硕士学位论文MASTER’STHESIS在RTP数据头中,前五项9位数据分别表示:V,RTP版本号,2位:P,填充标识。l位,置“1”表示用户数据最后有填充位,用户数据中最后一个字节是填充位计数,它表示一共加了多少个填充位。在两种情况下可能要填充,一是某些加密算法要求数据块大小固定;二是在一个低层协议数据包中装载多个

x,扩展位标识,1位,置“l”表示RTP报头后紧随一个扩展报头;

CC,CSRC计数,4位,表示在定长的RTP报头后的CSRC标识符的数量:M,标记,1位,置。1”对于视频标识表示最后一帧;对于音频表示谈话开始。接下来,提供了分组内数据类型的标志(PayloadType,PT)7位,用以说明多媒体信息所采用的编码方式:在多媒体数据头部加上时间戳(TimeStamp),依靠时间戳可使用在接收端的数据包的定时关系得以恢复,从而降低了网络引起的延时和抖动;根据序列号(SequenceNumber)可以在接收端进行正确排序和定位,以及统计分组丢失率。

在RTP分组格式中,与实时传输密切相关的字段是:序列号(SequenceNumber)、时间戳和同步源标识(SyncllromzationSouree(SSRC)Identifi砷。

序列号是一个16位的序列空间,其初始值随机产生。在发送数据时,每个RTP数据将前一个分组的序列号加1作为自己的序列号。接收方通过检测收到的分组序列号,进行数据分组序列的重建和定位。

时同戳为32位,是RTP数据分组第一个字节的采样瞬间。这个采样时间是从一个时间单调增长的时钟获得,以便于同步和抖动计算。可以通过时间戳来提供合适传送实时信息和不同媒体之间的同步的控制机制。

同步源(SSRC):32位,是RTP分组码流的源,由一个32位的SSRC数字标识符来识别的,该标识符由RTP头所携带。SSRC域用以识别同步源,标识符被随机生成,以使在同一个RTP会话期中没有任何两个同步源有相同的SSRC识别符。来自一个同步源的所有的分组构成了部分相同的定时和顺序空间,在接收端用它来区分不同的源。

贡献源(CSRC):0劭15项,每项32位,对一个RTP混合器(Mixer)产生的组合流有贡献的RTP分组源。CSRC列表识别在此包中负载的有贡献源,识别符的数目在Cc域中给定。若有贡献源多于15个,仅识别15个。

RTP协议本身不能为按顺序传送数据分组提供可靠的传送机制,也不提供流量控制或拥塞控制,但是,RTP协议包含两个紧密相连的部分,即负责多媒体数据实时传送的RTP,和负责反馈控制,提供QoS检测和传递相关信息的实时传输控制协议RTCP。20

硕士学位论文

MAST£R’STHESIS

3.3实时传输控制协议

当应用程序开始一个RTP会话时将使用两个端口:一个绘RTP,一个绘RTCP。在会话期问,各参与者周期性地传送RTCP分组。RTCP分组中含有已发送的数据包的数量,丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。3.3.1RTcP盼功能

RTCP协议的基本思想是采用和数据分组同样的分发机制向RTP会话中的所有参与者周期性地传送控制分组,从而提供数据传送QoS的检测手段,并获知参与者的身份信息。RTCP主要实现以下功能:

(1)向应用程序提供数据发布质量的反馈

这是RTCP最基本的功能。RTCP包提供监控QoS所必须的信息,这些参数包括包丢失率、抖动、延迟、接收到的最大顺序号等。QoS监视和网络阻塞控制,这个控制信息无论对发送端、接收端,还是第三方监视都很有用。发送端可以根据接收端反馈的信息调整数据的发送,而接收端可以得到网络阻塞的情况。

(2)提供永久标识

RTCP为每一个RTP资源传送RTP源传输层永久标识,即CNAME。接收方可根据它来跟踪每个与会成员,还可以用它来关联同意与会者由一种RTP会话发出的多个相关的数据流。除了提供RTP时间戳还包含绝对时间NTP戳,接收者可以据此实现多种媒体同步。

(3)确定发送速率

I玎CP数据包在多个会话参与者之间周期性的发送,当参与者数量增加的时候,我们需要在缛至4最新的控靠4信息和限制控制通信之间调节。为了放大多点传送成员数,RTCP必须防止调节通信量占用全部的网络资源。RTP限制调节通信量最多能达到整体会话通信的5%,而RTCP可根据可用带宽和应用规模确定其发送速率。

(4)传送尽可能少的控制信息

3.3.2RTcP数据包

在一个RTP会话中,参与者均可以周期性的相互发送RTCP数据包,从而得到数据传送质量的反馈以及对方的状态信息。RTCP数据包是一个控制包,它由一个固定报头和结构元素组成。其报头与RTP数据包的报头相类似,一般都是将多个RTCP数据包合成为一个数据包在底层协议中传输。RTCP根据携带控制信息的不21

硕士学位论文

MASTER’STHEStS

同,分为5种类型:

(1)SR:ScnderReport(发送端报告)由活动的发送端产生,它包含发送端信息部分、媒体阔的同步信息、数据包累计计算、发送的字节数等。

(2)RR:ReceiverReport(接收端报告)由非活动的发送端产生,主要是数据传输

的接收质量反馈,包括接收的最大数据包数、丢失的数据包数、计算发送端和接收

端的往返延迟等。

(3)SDES:(SourceDescription源描述)包含源描述的信息。(4)BYE:表示结束参与。

(5)APP:应用特殊功能。

图3_3给出了RTCP发送方报告(SR)数据包的格式。该数据包分三部分,如果需要还可以根据具体应用加上扩展部分。

融l}2

34S67

Rc

890

l’2芎4

悄iP

PT=SR=200

5|6l

7{9o12341567890i

长度

。l

发送者的ssRc

!N冲时阁戳,离位

§i

§

m时翔戳,低位

RTP时阔戳

发送分组数臣

发送字节数目

SSRC1

l§

丢包率累计丢包率

;.

扩展的最大顺序号

到达抖动

最近发送方报告的时翔裁(Ls黔

自最近发送方报告之后的延迟(DLsR)

SSRC2

::

l,

14?

?..

;缸《二A“、.~

川,~

特定的扔始化文件扩展

、一,.。‰;&…二。。

一#

图3.3SR分组的数据格式

⑨硕士学位论文

MASTER’STtiESIS

(1)头部,8字节分别是:版本号(V):2位,表示RTP版本;补充位口):1位,若此位置被设置,RTCP的尾部包含一些附加的补充位;接收报告计数(RC):5位,此包中的接收报告块数,0是允许的;包类型(PT)位,发送方报告的R.TCP包定义为200;长度:16位,RTCP以32位计的长度;同步源(SSRC):32位,SR包发起者的同步源标识符。

(2)包体,共20字节,它描述发送方的数据传送。

NTP时间戳:64位,定义本包发送时间,可以与接收方报告包中的时间戳比较,估计往返时间;RTP时间戳:32位,与NTP时间戳对应,而且与数据

包中的RTP时间戳有相同的单位和相同的偏移值;发送RTP包计数:32位,发送方从开始发送到发送本报通告为止共发送的负载字节数,如果SSRC定义符被改变,本字段被重置;发送字节计数:32位,发送方从开始发送到发送本报告为止发送的负载字节数,如果SSRC定义符被改变,本字段被重置。

(3)包含0个或多个接收报告块,它取决于发送方从上次报告起知道的其它源数,每个接收报告块要表示从一个同步源RTP包的接收统计。当源由于冲突改变它的SSRC标识符时,接收方不发送统计。统计项包括:

SSRCn(源标识符):32位,SSRC源标识符;

丢包率:8位,自上一次发送SR或RR后,源SSRC__n的RTP数据丢包率;累计丢失包数:24位,接收开始后丢失包数的累计:

扩展的最大顺序号:32位,低16位包含来自源SSRC11的RTP数据包的最大顺序号,高16位使用相应的顺序号循环计数时顺序号的扩展;

间隔到达抖动:32位,使用无符号整数;

最近发送方报告的时间戳(LsR):32位,最近接收的RTCP发送方报告包中NIP时间戳的中问32位,如无SR被接收,此字段为O:

自最近发送方报告之后的延迟(DLSR);2位,从源SSRCn接收的最后的SR包到发送次接收报告块之间的延迟,如无SR包从源SSRCn被接收,则DLSR字段置0;接收方报告包(RR)的格式同SR包基本相同。不同点在于RR的包类型为201,并且5个发送者信息被省略(NTP和RTP时间戳,发送者的包和字节计数>,其它字段均相同。其他几种数据包定义类似,在此不再赘述。

3.4RTP/RTCP协议的特性RTP和RTCP就像一对姐妹,两者配合,能以有效的反馈和最小的开销使传输效

⑨硕士荦位论文

MASTER’STHESIS

率最佳化,特别适合于在Internet上传输实时数据{361。

(1)协议简单灵活

透过上面的介绍我们知道RTP协议相对笱单,比如它的包头固定部分只有12字节,所以开销小,有利于提高传输效率。灵活性体现在把协议机制与控制策略的具体算法分开。协议本身只提供完成实时传输的机制,对控制策略的有关算法实现不作具体规定。开发者可以根据不同的应用环境,选择实现效率较高的算法与合适的控制策略。

(2)协议独立性

RTP的最初设计目标是Internet,但它更倾向于发展成为独立于底层协议的传输机制。RTP协议一般建立在UDP协议上,充分利用了UDP协议的多路复用服务,它也可以建立在其它的传输协议上,像ATM,IPV6.AAL5等,所以R]哼具有很好的独立性。

(3)同步机制

RTP采用时间戳(Time,tamp)来控制单一媒体数据流的同步,但它本身并不能控制不同媒体数据流间的同步。若要实现不同数据流之间的同步,必须由应用程序参与完成。

“)不可靠性

由于RTP的设计目的是传输实时数据流,而不是可靠的数据流,因此它不提供有关错误检测和包顺序监控的机制。

3.5RTP/RTOP在实时传输中的适用性

RTP/RTCP协议是IETF小组专门设计用来对实时多媒体数据进行网络传输而设立的【37】,它的特点决定了其适用性:

(1)协议简单使传输效率高:RTP协议不具备传输层协议的完整功能,其本身也不提供任何机制来保证实时的传输数据,不支持资源预留,也不保证服务质量。RTP报文头甚至不包括长度标识和长度限制。另外,RTP协议将部分传输层协议功能(比如流量控制)上移到应用层完成,简化了传输层处理,提高了该层效率。

(2)支持多点投递:RTP协议一般运行在UI)P协议之上,两者共同完成传输层协议功熊。RTP协议利用UDP协议的多路复用支持显示的多点投递,可以满足多媒体会话的需求。

(3)数据流和控制流分离:RTP协议的数据报文和控制报文使用相邻的不同套接字端口,这样就大大提高了协议的灵活性和处理的简单性

(4)协议的可扩展性:RTP协议通常为一个具体的应用提供服务,通过一个具体的应用进程实现,而不是通过OSI体系结构中独立的一层来实现,RTP只提供协议框架,开发者可以根据应用的具体要求对协议进行充分的扩展。RTP的控制报文RTCP,通过在会话用户之间周期性的递交控制报文来完成监听质量和交换会话用户信息等功能,根据用户间的数据传输反馈信息,可以指定流量控制的策略,而会话用户信息的交互,可以制定会话控制的策略psi。目前RTP的设计和研究主要用来满足用户之间对多媒体实时传输控制上使用,尤其是多媒体会话和会议型业务,但是其在交互式分布仿真和控制,测量的应用中也有非常重要的作用p川。

(5)RTP协议的自适应性:多媒体实时数据的传输,对网络拥塞控制也是非常重要的,往往可以通过估计信道带宽的要求在发送端调整编码的压缩比率等策略。其中信道带宽的估计是一个比较重要的方面。而RTP协议可以辅助我们对网络可用带宽进行估计。协议的自适应性主要体现在两个方面:一、就是RTCP控制报文发送周期的可调节性;二、是指发送方根据来自接收方的RTCP接收报告,计算报文丢失,确认接收方看到的髓络状况,然后根据当翦网络状况动态地调整发送方的编码策略或是传输策略,使得基于工作站的分布式多媒体应用,有能力在一个较大的范围内调节媒体传输质量和数据传输速率。由多媒体应用端进行的适应性调整基于RTP协议中的接收报告反馈信息,包括用于计算报文丢失和报文延时抖动的信息。网络中引起报文丢失的主要有两个原因:~是由于拥塞的链路或工作站的网络接口发生缓冲区溢出造成的报文丢失:二是因为位错误而造成的报文丢失。在大多数的网络中,发生位错误的可能性很小,所以假设报文丢失的主要原因是由于网络拥塞造成的,发送端根据反馈信息评价报文丢失及确认网络运行状况,并进行相应的带宽调节M。

发送端收到RTP接收报告时,首先分析所有接收成员报告,并计算报文丢失,延迟抖动和往返时间等等。然后根据报文丢失率将接收方观察到的网络状况分为拥塞,满载,轻载三类。这是一种基于已丢失报文的控制策略,也是目前最常用的,更积极的策略是根据接收报告中的延迟抖动预测即将出现的网络状况,并进行适当的带宽调整,这样有可能在报文丢失发生之前预先发现可能出现的网络拥塞。通过以上的分析,RTP协议无论从功能上还是性能上都能较好的适应实时数据流的传输。3.6ilPEG-4的RTP封装分析

本系统采用MPEG-4作为流媒体的编码方式,针对它的RTP分组净荷格式的研究仍在进行中,并且有许多不同的观点和意见【41431。MPEG_4的RTP封装,可以说是MPEG-4流进行语法分析的过程,从MPEG-4流中搜索一些重要的信息填充到RTP

硕士学位论文

MA8TER’STHESI¥

包中几个重要的数据结构中,如图3.4。对应MPEG-4体系结构的层次,封装的层次越高,其所需要的附加载荷就越多,相应的解包和封包的复杂度就越大:封装的层次越高,对媒体的感知能力就越低,对于媒体的差错处理能力越低。但封装的层次越高,其支持的MPEG-4的特性就越多Ⅲ】。

目前比较常用的MPEG-4视频流封装方案主要有以下几种:

(1)在不使用MPEG一4系统的情况下,将MPEG.4音频/.视频码流直接映射到RTP净荷中,对于视频,该封装方案以视频对象平面(VideoobjectPlane,VOP)作为封装的基本单元;对于音频,该方案采用了低耗MPEG-4音频复合传输

(Low-overheadMPEG-4

{15】。

Audio

TransportMult硒le】【,LATM)来管理音频数据序列

(2)将MPEG-4基本码流ES直接映射到RTP净荷,同样也不使用MPEG-4

系统的同步层。由于许多早期的MPEG-4应用并不完全实现MPEG-4系统规定的同步层,所以这种应用无须知道同步层的概念,从MPEG-4系统的压缩层输出的ES流直接映射到RTP净荷是最好的解决方法145】。

醪j

4567

‘gf9

0142345‘6“,¥’90123fs

6,8旷0l=!

l霹?j{

暂=2PX

CC

M泌H净荷类型)

时间戳

序列号

i‘

:£“

同步源(SSRC)标识符

贡献源(CSRC)

§

一‘

≯鏊

MPEG--4视频流

一“

l!撼赫。。二舰。。…裱Ⅶ。。。.童。蜥娥:。㈣。:。:船…;}~可选lH’P霉£充馕i

图3.4

MPEG_4的RTP封装

(3)它也是针对基本流数据封装定义的方案,以访问单元(Acc嚣Unit,Aid)

为封装的基本单元,访问单元是MPEG-4中拥有时间信息的最小逻辑单元㈨

(4)将MPEG-4同步层的SL分组码流映射到RTP净荷明。

(5)将MPEG-4传送层的经FlexMux工具复用后的FlexMux流映射到RTP

净荷【档l。

其中第一种方案是本文研究的重点。对于视频,该封装方案以视频对象平面(VideoObjcc£Plane,'coP)作为封装的基本单元,MPEG-4中对同一对象连续的VOP称为VO(视频对象),VOP是VO在某一个时刻的表象。MPEG-4对每个VOP进行独立编码,那么以VOP为单位进行封包既提高了效率,又充分利用MPEG-4的编码特性。很明显,包越大,生成包的数量就相应减少,但包大小不能超过最大传输单元MTU(MaximumTransmissionUnit,从信源到目的间所有连接通道最大传输单位中的最小值),因为任何大于MTO的包在网络上传输都会进行口分割,并为每个分割包加上包头,造成了口碎片。更稽的是,一个分割包的丢失会影响到同一个原始包的其他分割包。对于MPEG-4视频,两个不同时的VOP数据不能组成一个RTP包,即同一RTP包中没有不同时刻的VOP,并且同一时刻来自不同视频对象的VOP不能打成一个包,即空间不一致的VOP也不能在同一个包中。包的大小是当前VOP和MTU中较小的一个。当一个VOP太大无法放入一个RTP包,就需要将VOP分割,用多个包发送。

主要封包策略如下:若当前VOP能够放入单个RTP包,就把此VOP单独封装到一个RTP包;若放不下,则把VOP分段成多个宏块,就把尽可能多的宏块放入一个RTP包;但即使最后一个RTP包仍有空间,也不能把另外一个VOP的宏块放入此包中.如图3.5所示。

图3.5VOP的RTP打包流程

具体算法描述如下:

While(MPEG-4视频流未结束1

If【发现下一个VOP起始码)

城当前分段长度《=去除头部字段长度的路径MTU值)

把此段数据打入RTP包

else

把尽可能多的宏块打入RTP包

else

对剩余数据打包

3.7基于RTP/RTOP协议的组播传输方案

流媒体数据在口网上传输,首先数据需要打包成RTP数据报,然后,利用UDP协议将其封装成UDP报,随后系统将数据交给P层,在P层中打成口包后发送到网络上进行传输,传输时所以客户端都在接收相同的流媒体数据,与此同时RTP/UDP/IP中也发送和接收RTCP分组,通过RTCP反馈控制模块的交互来完成对流量的调控和丢包的统计。图3.6便是该传输方案【49.5ll。该图的客户端只描绘了一个,实际上一个RTP会话可以包括多个这种同样的客户端。图3.6组播传输方案

⑨硕士学位论文

MASTER’STHESIS

其流程可划分为以下几步:

(1)流媒体数据获取

(2)流媒体数据封装成RTP包

(3>RTP包经LrDp层,口层封装成P数据报发送(4)I聊,P协议逆程解包

(5)RTP协议解包(6)获取流媒体数据

⑨硕士学位论文

MASTER‘STHESIS

第四章基于RTP协议的实时流媒体传输在网络中的实现4.1开发环境和相关技术

系统的编码部分采用的AV800硬件编码,网络传输部分采用的是RTP/RTCP实时传输协议,视频流的解码、播放采取的是软件解码方式。本系统在windowsxp,vc++6.0环境下编译实现,采用典型的客户机/服务器结构,网络支持为局域网。4.1.1系统硬件设备

本系统所用的视频采集设备,摄像机为日本KONIDAKN-2038;视频采集卡为AVS00。AV800是一款由美国TopStep公司推出的多功能MPEG产品,它可以接收来自视频输入端的模拟视频信号,并对该信号进行采集、量化成数字信号,然后压缩编码成数字视频,便于计箅杌直接处理。视频采集时首先在卡上对模拟视频信号进行A/D转换,接着将视频信号进行压缩,然后再通过PCI接口把压缩的视频数据传送到主机上,能减少CPU的负担,并能得到较快的速度。在同等价格水平的产品中,AV800具有很强的功能适用于各类视频应用场合。Av800涵盖了MPEG.1,MPEG-2.MPEG-4三个视频标准的编码和解码。与主机为PCI接口,一个BNC复合视频接口用于接收来自摄像机的视频信号。

4.1.2JRTPLIB库

目前国外有很多组织或者个人,提供了一些开源的RTP栈,如:GUNccRTP、RTPlib、librtp、ortp和JRTPLIB俐等。

本系统采用的是JRTPLIB来实现RTP传输。JRTPLIB是一个用C十+语言实现RTP的开发码源库,目前已经可以运行在Windows、Linux、FreeBSD、Solaris、Unix和VxWorks等多种操作系统上。用户可通过编译源码中提供的库函数来实现RTP/RTCP的网络传输。它提供了若干个建立RTP应用的相关类,我们可以很方便的根据库提供相关类的方法建立RTP会话,发送RTP包和RTCP控制包,而不用担心SSRC的冲突。

本系统采用的是JRTPLIB3。6版本,目前该源码的最新版本是3.7。

4.1.3Dirc昭tShow技术DirectShowp习是微软公司提供的一套在Wmdows平台上进行流媒体处理的

⑨硕士学位论文

MASTER’STH£SIS

开发包,可以在Windows操作平台上处理各种格式的媒体文件的回放、音视频采集等高性能要求的多媒体应用,

DirectShow为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow,我们可以很方便地从采集卡上捕获媒体数据,并且进行相应的后期处理、播放乃至存储到文件中。

DirectShow的设计初衷是为了让应用程序开发人员从复杂的数据传输、硬件差异、同步性等工作中解脱出来,总体应用框架和底层工作由Dire圮tShow来完成。D/r(,ct;Show使用一种叫FilterGraph的模型来管理整个数据流的处理过程;参与数据处理的各个功能模块叫做Filter:各个Filter在FilterGraph中按一定的顺序连接成一条“流水线”协同工作。按照功能来分,Filter大致分为三类:源过滤器(SourceFilters)、转换过滤器(TransformFilters)和渲染过滤器(RenderingFilters)。SourceFilters主要负责取得数据,数据源可以是文件、因特网、或者计算机里的采集卡,数字摄像机等,然后将数据往下传输;TransformFitlcrs主要负责数据的格式转换、传输;RenderingFiRes主要负责数据的最终去向——将数据送给声卡、显卡进行多媒体的演示,也可以输出到文件进行存储。

在DirectShow系统之上,是应用程序(Application)。应用程序要按照一定的意图建立起相应的FilterGraph,然后通过FilterGraphManager的COM对象来控制整个的数据处理过程。DirectShow能在FilterGraph运行的时候接收到各种事件,并通过消息的方式发送到应用程序。这样,就实现了应用程序与DirectShow系统之间的交互。

图4.1DircctShow系统过滤器与过滤器的连接点称为针(pin),是一个由过滤器生成的COM对象,

⑧硕士学位论文

MASTER’STHESIS

支持接口IPin。针负责与其他针相连并提供传送数据的接口,如图4.2,有方向性,或者输入或者输出。输入针接收数据进入过滤器,输出针向其他过滤器提供数据。一个针只能与其相反的针相连。媒体样本从输出针流向输入针,这种方向为下游(downslream),反之为上游(upstream)。控制信息通常沿上游移动。

源过滤器为文件中的每个数据流提供一个输出针。典型的转换过滤器,如压缩/解压缩(eodec)过滤器,提供一个输入针和一个输出针。而音频输出等渲染过滤器仅拥有一个输入针。

图4.2针连接示意图

4.2系统的功能模块划分

本系统从总体上可划分为服务器端和客户端,图4.3为系统结构图。服务器端主要完成视频采集、压缩、播放以及与客户端的通信、流媒体数据的发送等功能。客户端主要完成与服务器的通信、流媒体数据的接收、解压、播放等功能。

其中服务器端处理模块主要完成以下的功能:(1)能对接收到的客户端请求进行分析和处理。(2)能完成客户端的登陆系统和退出系统功能。(3)能同时向多个不同客户端发送流媒体数据。(4)在组播开始的时刻自动计时。(5)可调节图像的对比度、明亮度、色度、饱和度等。(6)能对图像编码格式进行选择。(7)保存图像数据。

一‘;啄南冒孚示器凰冒客户端客户端客户蛸

…冒n曳自一圆服务器

32nn图4.3系统结构图

客户端处理模块主要完成以下的功能:(1)能对接收到的服务器端的消息进行分析和处理。(2)能向服务器发出接收数据消息和退出系统消息,并完成相关的处理工作。(3)接收服务器发出的流媒体数据并播放a

4.3系统工作流程

Windows是一个多任务的操作系统,既系统在竞争线程中间分配CPU时间。线程是操作系统为其分配CPU时间的基本实体。在应用程序有几个任务需要异步执行的情况下,进程有多个线程是必要的。

对于服务器端,它包括主线程,视频读取线程,RTP/RTCP包发送线程和反馈控制线程。服务器主线程流程为:一开始启动主线程,完成初始化(如系统信息存储缓冲区,socker建立和初始化等),开启MPEG-4视频源,等待用户命令,启动RTP,RTCP包发送,同时RTCP接收线程不断检查数据,启动反馈控制线程。关闭服务器线程前发送BYE包,并通知客户端,关闭所有线程。如图4.4所示。图4.4服务器主线程流程

对于客户端,它包括主线程,视频解码播放线程,RTP/RTCP包接收线程和反馈控制线程。客户端主线程:开启初始化,开启MPEG-4解码和视频回放线程,RTP,RTCP包接收和RTCP包发送线程。除非客户端退出主播,否则主线程将一直执行下去。如图4.5所示。

图4.5客户端主线程流程

本系统采用多线程来提供服务,所以多线程的管理十分重要。在网络传输过程中,不同客户的请求和反馈由服务器的RTP/RTCP发送线程和反馈控制线程处理,由于实时数据的独有性,不同实时客户可以共用一个RTP/RTCP发送线程和反馈控制线程,这样可以相对减小服务器的负担。

RTP/RTCP发送线程负责流媒体数据的封装和发送,在发送RTP包的同时,判断发送RTCP包。反馈控制线程主要由RTCP包配合工作,对RTP数据包进行信息分析,以便构成新的即将发送的RTCP数据包。调整RTP视频数据发送速率,以适应网络可用带宽。

本系统的服务器端能够同时响应多个用户的请求,把本地实时媒体数据流发给客户端。主要过程为:首先打开设备,分配资源。当设备准备好时,创建RTP瓜TCP

发送线程和反馈控制线程。接着反复调用接收模块,接收来自客户的RTCP报告,根据其请求做出响应并根据RTCP报告的内容调整服务。

下面对服务器端和客户端的具体设计过程进行阐述。

4.4服务器端的实现

4.4.1服务器端的网络传输过程

本系统实现网络传输的过程分为以下几步:获取IP地址和端口号;建立RTP会话:指定客户端;设置参数;发送数据;结束会话。流程图见图4.6所示。

图4.6网络传输过程

4.4.2IIPEG-4视频数据的RTP封装

3.6节分析了MPEG-4的RTP封装的几种方案,在涉及其具体封装之前,必须了解针对MPEG-4视频码流的RTP封装需要注意的规则:

(1)配置信息和Group_of_VideoObjeetPlane0字段应位于RTP负载的开始位置或在语法上的上层函数头之后。

(2)如果RTP负载中存在一个或多个头,则R,rP负载应从语法上的最高函数头开始。注意:visual._objeet_sequeneeendcode作为最低函数。

(3)一个头不应分到多个RTP包中。35

Oecrcjbuo_头t数函x点入e进t的流_本基。束结

⑧硕士学位论文

MA¥TER’STHfESIS

(4)不同的VOP应该分片为不同的RTP包,一个RTP包只包括与唯一VOP的时间相关的数据(在RTP包头的时问戳字段中指出)。例外情况是如果VOP很小,则单个RTP包携带多个按解码顺序连续的VOP。注意:当一个RTP负载携带了多个VOP时,第一个VOP后的VOP时间戳在解码时通过计算得到。该操作仅当RTP包标志位为l且RTP负载开始符合起始码时才是必须的。

戳和标志位)(见3.2节时间

(5)建议一个视频包组成一个RTP包进行发送。视频包的大小应该按如下方式来决定,即RTP包大小不得超过路径MTU的大小。注意:规则(5)不适用于以下场合,编码器配置禁止视频包(通过将VOL头中的resyncmarkerdisable设置为1),或者编码工具不支持视频包。在此情况下,一个VOP可能得经过在任意字节位置进行分片后才能发送。视频包从VOP头或视频包头开始,后面紧接着是

motionshape,以nextrcsync或

上文中提到的头表示如下信息,配_置_m信ark息c。O(视觉ne对xt象st序art列c头odc,O视觉对象头和视频对象层头),visualtscq咄c-endcode;

withshort(Group_of.VideoObjectPlane0,video_planeheader0,MeshObjec《)或

FaceObject0);视频包头(videopacket_header0,next.resync_markcr0除外):goblayer0头。

通过前面2.2.4的介绍,MPEG-4分层语法由VS、VO、VOL、GOV、VOP构成,那么针对它们的RTP封装,见图4.7,可以分为以下几种方式:

(a)表示包含了配置信息的MPEG-4视觉码流中第一个RTP包或随机访问点。根据上文提到的规则(1),视觉对象序列头应位于RTP负载的开始处,视觉对象头和视频对象层头(voheader,VOLheader)之前。从visuaLobject_scquenccstart_code开始的配置信息通常都位于RTP负载的开始位置,RTP接收端可通过检查RTP负载的头32位字段是否是visualobiectscqu%cestartcode来检测随机访问点。

(b)是另一种包含配置信息的RTP包。它同(a)的区别为该RTP包在配置信息后还包含有视频包。由于配置信息长度很短(一般为数十字节),一个RTP包如果仅含有配置信息会造成系统开销的上升,因此配置信息和其后视频包可以打包到同一个RTP包中。

(c)是RTP包中包含了GroupofVideoObjeetPlane(GOV)的例子。根据上文规则(1),GOV位于RTP负载的开始位置。一个仅有GOV字段的RTP包大小只有7个字节,这是对RTPflP头开销的极大浪费。因此后续的VOP(或部分地)可以如本例所示打到同一个RTP包中。

rekram.。包频视用使止禁而从为置设

(d)一个视频包被打包到一个RTP包中。当网络中包丢失率很高时采用该方法。甚至当包含有VOP头的RTP包被丢弃时其它RTP包还可通过使用视频包头中的HEC信息进行解码。无需任何额外的RTP头字段。

(e)为多个视频包打在一个RTP包中的情况。在底层网络速率很低时这种组包方式可高效地节约RTP/IP头开销。不过,由于一个RTP包的丢失会导致将多个视频包同时丢失,这种方法会降低丢包恢复率。一个RTP包中理想的视频包数目和RTP包长度可通过丢包率和底层网络传输的比特率来决定。

(f)示例为在VOL头中将resyncdisable1

在此情况下,一个VOP可按照任意字节位置分为多个RTP包。比如将一个VOP按照固定长度进行分片。这种编码配置方法和RTP分片可应用于能提供极低错误率保证的网络。

∥RTP

Iiead”

Fj砌瞪。44‘vs}VO“1f’voL。]。jea8蟹』header』垮!d司(a)

VS

header”≮d…header0萌弹磊茜’菇c安词豳eaderjeade芝j。。。…。。。囊

(b)

(c)

FRTP1VOPVideo’。Packet;R'P2{WVP]vide0Packe司

{l}目臣!ad!er』ie8d曼,。。。一乞。。…』“警d8量hea8嚆l…。。乏。。‰。翻

(d)

FR幡一:一订lVideoPacketl。。讳”猕Oleo兆c蠢trVP”≯ideoPacke司融酬篡,,}删etl~。】…ihe!derL…2。ihe.adel"},。一曼~;委

(e)

F砷

臣e嚣derVOPVOPj4jfra、j?gment。

header~VOP[voP。番遍嗣,b酬旺』…一2一。。gl

(f)

图4.7RTP封装的几种格式37

⑧硕士学位论文

MASTER’STHE¥1S

4.4.3服务器端网络传输的实现

下面是关于网络传输的具体实现过程:

(1)初始化

在使用IRTPLIB进行实时流媒体数据传输之前,首先需要对RTP会话进行初始化的过程,生成一个RTPSession类的实例,然后调用Create0/弱数,来实现初始化操作。但此时函数并未指定RTP/RTCP的发送目标地址,这项工作是由其接下来的步骤完成的。实现代码如下:

RTPSessionsession:

session.Create0;

如果RTP会话创建失败,Create0将会返回一个负数。JRTPLIB采用了统一的错误处理机制,它提供的所有函数如果返回负数就表明出现了某种形式的错误,而具体的出错信息则可以通过调用RTPGetErrorStrin90/函数得到。RTPGetErrorStrin90i弱数将错误代码作为参数传入,然后返回该错误代码所对应的错误信息。

(2)缺省参数设置

在RTPSession类中有一些函数用于缺省参数的设置,一般包括负载类型、标识、时间戳等。负载类型由RTP传输的数据内型决定,在具体实现时,可以采用缺省的方式。时间戳是RTP会话初始化过程所要进行的另外一项重要工作,本系统通过调用的SetTimestampUnit0方法来实现的。

Session.SetDefaultPayloadType0;//负载内型设置

Session.SetDefaultMark0;//m标识

Session.SetDefaultTimeStamplncrement0;//时间戳

(3)建立连接

当RTP会话建立成功后,接下去就可以开始进行流媒体数据的实时传输了。首先获取客户端的目标地址,RTP协议允许同一会话存在多个目标地址,具体实现可通过调用RTPSession类的AddDestination0来获取用户端的地址和端口号等信息。例如:

RTPIPv4Ad&e蹒rtpAddr(intIP,MCAST..PORT);

sessiomAddDestination(rtpAddr);

其中RTPPv4Ad&ess类的成员函数可以用来获取口地址及端口号。通过以上步骤后,服务器端就可用向客户端发送流媒体数据了。

(4)数据发送通过调用RTPSession类的SendPacket0方法,可以向客户端发送需要的数据。

int

int硕士擘位论文MASTE鐾’STI-IES[S实现代码如下:session.SendPacketO其中SendPaeket0是一个重载函数,它具有如下形式:SendPacket(void。data,intlen)SendPacket(void’data,intlen,unsigned

timestampine)charpLboolmark,unsignedlong

第一个参数data就是载荷,而第二个参数则指明载荷的长度,再往后依次是RTP负载类型、标识和时戳增量。这些参数可以通过刚才介绍的SetDefaultPayloadType0、SetDefaultMark0和SetDefaultTimeStamplnerement0来获取。为RTP会话设置这些默认参数的好处是可以简化数据的发送,对于同~个RTP会话来讲,负载类型、标识和时戳增量通常来讲都是相同的,JRTPLIB允许将它们设置为会话的默认参数。如果用于发送的流媒体数据从缓存区读出,调用函数:

session.SendPacket(buffer,bufsize)

(5)控制信息

JRTPLIB是一个高度封装后的RTP库,我们在使用它时很多时候并不用关心RTCP数据报是如何被发送和接收的,因为这些都可以由JRTPLIB自己来完成。只要会话建立和数据发送成功,JRTPLIB就能够自动对到达的RTCP数据报进行处理,并且还会在需要的时候发送RTCP数据报,从而能够确保整个RTP会话过程的正确性。(6)会话结束

当客户端完成流媒体数据的接收或者服务器要结束对客户端数据的发送,通过RTPSession类的Destroy()就可以结束对话了。

session.Destroy0;

上面是对网络传输主流程,接下来讨论本系统传输过程中所涉及到的其他一些重要过程,和该过程中用到的一些重要的类和函数。

(I)RTP包

RTP包通过JRTPLIB的RTPPacket类来表述,其中的RTPPacket()是一个重载函数,它具有如下几种形式

RTPPaeket(uint8tpayloadtype.constvoid+payloaddata,sizetpayloadlen,U

iml6tseqnr,uint32ttimestamp,11int32

11tssrc,boolgotmarker,nint8tnumcsrcs,constint32t+csrcs,boolgotextension,uintl6t

e)【tensi砌d,uintl6textensionlen_numwords,constvoid

’extensiondata,sizetmaxpacksize=O)

其中各个参数的所代表的意义分剐为:负载内型、净荷数据在本系统中就是我们的流媒体数据、净荷长度、序列号、时间戳、同步源标识、长度标识、CSRC贡献源

⑧硕士擘位论文

MASTER’STHESIS

数目、贡献源,紧接着的四个是用于有扩展数据的情况,最后一个参数标识RTP包所允许的最大包尺寸。

RTPPaeket(uint8tpayloadtype,eonstvoid‘payloaddata,sizetpayioadlen,u

intl6tseqnr,i1int32ttimestamp,Uint32tss坞,boolgotmarker,u

int8tnUIllGsrGs,constuint32t’csrcs,boolgotextension,uintl6t

extensionid,uintl6tcxtensionl钮numwords.constvoid

buffersize)*extensiondata,void*buffer,sizet

函数在这种形式下前面13个参数和上一种形式下的参数是一致的,只是最后两个参数用读取缓冲区内的数据,分别用来指定缓冲区的位置和大小。

(2)RTCP报表

在JRTPLIB中,RTCPPaeket类用来表述RTCP所携带的信息。该类含有一个重要的枚举:

ellllmPaeketType{SR,RR,SDES,BYE,APP,Unknown};

上面这个枚举分别包含了RTCP包中的发送方报告、接收方报告、资源描述项、结束指示分组,特别应用功能以及用户自己扩展部分。同时RTCPPacket类通过它的几个继承类来具体定义以上各个报表中的具体内容,分别为:RTCPSRPacket、

RTCPRRPacket、RTCPSDESPacket、RTCPBYEPaeket、RTCPAPPPacket、

RTPUnknowPaeket.

(3)RTP包的建立

RTP包的建立主要是依靠RTPPacketBuilder这个类,下面RTP包生成过程中比较重要的几个函数:

intAddCSRC(uint32tcsrc)//在CSRC列表中添加一个新的CSRC

型标识intSetDefaultPayloadType(uint8tp0//设置用于说明多媒体内型的,数据内

int

hatSetDefaultMark(boolm)//m标识SetDefaultTimestamplncrement(uint32ttimestampinc)//名E媒体数据头部

加上时间戳

uint32tCreateNewSSRC0//Jt星始包中创建一个新的ssRc同时也会产生新

的时闯戳和序列号

Uintl6tGetSequenceNumber0//得到包的序列号

tintBuildPaeket(eonstvoid*data,sizelen)//将媒体数据封装成RTP包

tpt,boolmark,uint32thatBuildPacket(eonstvoid’data,sizetlen,uint8

timestampinc)//与上面的函数构成一对重载函数,它增加40

⑨硕士学位论文

MASTER’STHESIS

了负载类型、m标识、时间戳参数

(4)RTCP组包

RTCP组包的具体实施过程依靠的是RTCPPacketBuilder来完成。

(5)参与源的管理

RTPSources管理所有参与源,是参与源管理者的抽象。

(6)R四会话参数设置

建立R1呼会话包括很多参数,RTPSessionParams类用来对其中的各个参数进行设置,并可得至Ⅱ这些参数的值。

(7)RTCP的发送机制

RTCPScheduler用于决定何时RTCP被发送。

RTPSession宣接或间接关联着以上列举的这几个类,RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。RTCP的数据的发送和接收都由类内部来处理。

4.5客户端的实现

客户端的网络接收部分和服务器端的网络发送部分是相互对应的两个流程,其中网络接收的过程可划分为获取服务器礤地址和端口号:建立RTP会话;设置接收模式和接收流媒体数据这几个部分。流程图如图4.8。下面是网络接收过程中的几个重要部分,获取m地址和初始化的过程和服务器端的一致,这里就不重复介绍了。尹

设置接收模式

-接tFZRTP数据

检测RTP数据

获取RTP数据

图4.8网络接收过程

41

⑧硕士学位论文

^lASTER’SniE¥1S

(1)数据接收

通过调用YRTPLIB库的函数,可以使流媒体数据的接收工作相对简化。对于接收端,首先需要调用RTPSession类的PollData0J薮数来接收发送过来的RTP或者RTCP数据报。接下来调用RTPSession类的GotoFirstSourceWithDataO和GotoNextSoureeWithData0来判断RTP数据源是否达到。从RTP会话中检测出有效的数据源之后,调用RTPSession类的GetNextPaeket0函数抽取RTP数据报,当接收到的RTP数据报处理完之后,需要及时释放缓存区空间。下面的代码示范了对接收到的RTP数据报进行处理的过程:

session.pollData0;

if(session.GotoFirstSourceWithDataO)

do

RTPPaeket*pack;

pack=session.GetNextPaeket0;

deletepack;

while(sess.GotoNextSourceWilhDataO);

(2)模式选择

3RTPLIB为RTP数据报定义了三种接收模式,其中每种接收模式都具体规定了哪些到达的RTP数据报将会被接收,而哪些到达的RTP数据报将会被拒绝。通过调用RTPSession类的SetReceiveMode0方法可以设置这三种接收模式。

RECEIVEMODEACCEPTSOME:除了某些指定数据,所有至Ⅱ达的RTP数

据报都将被拒绝。

RECEIVEMODEIGNORESOME:除了某些指定数据,所有到达的RTP数

据报都将被接收。

RECEIVEMODEJu工:缺省的接收模式,所有到达的RTP数据报都将被

接收,一般情况下都是采用这种模式。

(3)RTCP包的接收

RTP数据到达客户端之后,首先进行RTP解包。RTP对RTP包的版本、长度等信息进行验证,若为合法包,则解封装,提交给上层进行解码等其它的相关处

⑧硕士学位论文

llASTER’STH£SIS

理,当客户端接收到RTP包后还需要进一步的处理,其步骤如下:

(a)分析RTP包头,判断其版本、长度、负载类型等信息的有效性。

(b)按照RTP时间戳和包序列号等进行信源同步,整理RTP包顺序,重构视频帧。客户端接收到数据后,为了减轻网络抖动的影响,必须进行一定量的缓冲,才能交给后面的视频解码做进一步处理。动态地一边继续从网络接收数据,一边将得至4的RTP包进行重组。如图4.9所示建立两个队列,第一队歹n是空闲的缓冲队列,用以接收存放网络数据。每次接收前,先要申请一个Buffer,如果暂时没有可用的Buffer,则挂起,直到有其他线程释放并通知该网络接收进程,再分配给它一个空余的Buffer。第二个缓冲队列存放经重组恢复后的媒体数据等待后面的进一步处理。RTP包重组函数从第一队列的头部依次取出Buff盯进行重组恢复成媒体数据同时将该缓冲清空。

善姗数据接收i

i《视频解码播放篓f≥一媒体数据“≮RTP数据包一麓RTP数据包;;

!媒体数据媒体数据媒体数据ti!iRTP数据包i;RTP数据包::

豳亟圈[蟹壅]◇宴T暾据包●≥一媒体数据…l

\\—霪Ⅳ图4.9RTP数据处理过程

4.6视频播放的实现

4.6.1ItlPEG-'-4编码的控制和播放

在服务器端,视频信号进入视频采集卡后,通过Dire℃tShow来完成对视频卡的控制和对视频信号的提取、处理、播放。4.1.3节已经介绍DirectShow对硬件的支持是通过特定的Filter来实现的。本系统操控视频卡和提取视频卡中数据的基本步

骤可以分为以下几步:创建Dir蛐w

(1)初始化⑧硕士学位论文MASTER。STHE515FilterGraph;加载的媒体数据到FilterGraph中;连接Filter的Pin;运彳亍建立好的FilterGraph。

由于DirectFilter本身也是COM组件,需要编译过程中分别调用Colnitialize和CoUninitialize对COM库初始化和关闭。实现代码如下:

ColnifializeO;

CoUninitializeO;

(2)建立FilterGraph。

为了创建FilterGraph,必须首先建立一个实例,取得一个IGraphBuilder接口指针。

IGraphBuilder’m_pGraph;

HRESULThr=

CHECK_HR(hr=CoCreatelnstance(CLSID_FilterGraph,NULL,CLSCTXINPROC,I/D_IGraphBuilder,(void”)蛳Graph));

(3)获取接口代码

通过pSre的QueryInterface调用获得该组件所支持的接口的代码。

IBaseFilter+pSrc;

IsreControl+p-JSrc;

pSrc->QueryInterfaee(IID_ISrcControl,(void”)&p_ISrc);

获得接口指针后就可以调用ISrcControl的方法对系统视频卡进行操控了。

(4)建立属性对话框

创建一个PropertyPagesO"函数,实现视频卡中压缩的数据类型和性质进行控制,之后通过调用PropertyPages即可出现该对话框,属性对话框共包括两个部分:编码参数属性和视频调整属性。

(5)视频信号的属性设置

下面列举一些在本系统中比较重要的,用于设置视频属性的函数

(a)首先通过~个接口函数判断视频卡是否接通:

HRESULTVideoSignalPresent(unsi印edlong。present,unsignedlong

’aetualaandard)

(b)设置当前MPEG流的类型,本系统支持MPEG-4码流,同时向下兼容,也支持MPEG-和MPEG-2,实现函数为:

SetStreamType(unsignedlongstreamtype)(c)设置视频分辨率,实现函数为:

×120硕士擘住论文姐ASTER’S1HESISSetVideoResoIntion(unsignedlongresolution);可调范围从720X480至U176

(d)设嚣图象编码的水平一垂直比率,实现函数为:

SetAspectRatio(unsignedlongrafto)

(e)设置MPEG视频编码位速率,实现函数为:

SetⅥdeoBitrate(unsignedlongvideoBitrate)

(f)检测是否有视频信号,实现函数为:

SetPauseWhenNoSignal(unsignedlongenabl曲

(6)视频播放

为了程序的简单明了,本系统对于采集,播放定义两个创建FilterGraph的函数,CreateCaptureGraph(>用来获取MPEG-4数据,CreatePlaybaekGraph()用来播放视频数据。当需要某种操作时,调用相应的函数创建FilterGraph,操作完毕即释放它。

为了能在系统运行时根据具体的操作来完成视频数据的采集与播放,再定义RunGraph

4.6.20和StopGraph0用于运行FilterGraph和停止FilterGraph。NPEG--4解码的软件实现

客户端接收到数据后,为了减轻网络抖动的影响,必须进行一定量的缓冲,才能交给下面的解码filter解码处理。动态地一边继续从网络接收数据,一边将得到的RTP包进行重组。

此时,客户端开始播放的任务,要播放MPEG.4视频流,必须用MPEG-4解码器,在本系统中我们调用ffdshow作为解码器。一个FilterGraph要负责捕获视频,需要如下几步,如图4.10,源过滤器(SourceFilter),读取从网络传到客户端接收缓冲区的视频数据;视频解码器(ffdshowMPEG4VideoDecoderFilter)解压视频

Renderer数据,最后在视频输出设备上显示视频数据,也就是通过视频渲染(Video

Filter)后在显示器上显示。

图4.10视频解码过程45

第五章总结

随着视频压缩技术和网络传输技术的飞速发展,流媒体网络传输技术的日趋成熟,该技术已经深入到人们日常生活的方方面面。流媒体传输成为现代多媒体技术及网络技术的一个重要研究方向。随着该技术的成熟和发展,它还将对我们盼生活产生更加深远的影响。

在本设计中,本人通过收集、查阅相关资料,了解了视频压缩技术、网络协议、流媒体传输技术的基本原理。在研究了MPEG.4视频压缩技术的基础上,对它的几个关键技术环节进行了深入的学习和研究。对传输层协议进行研究比较分析,理解了它在流媒体实时传输系统中的应用特点,为系统设计奠定了充实的理论基础。在老师的指导下,拟定了系统的设计方案。

论文首先在对各个视频压缩技术进行比较后,选择MPEG-4运动图像压缩编码标准作为本系统的视频压缩技术,并详细研究了MPEG-4标准的内容和优势,它广泛应用于低码率传输。接着对网络传输协议进行分析比较,选用RTP/RTCP协议作为本系统传输层协议,并深入分板了RTP/RTCP的特点、内容。最后给出了本系统的总体结构和系统各个模块的解决方案,包括网络传输模块,网络接收模块,视频编码控制模块和视频播放模块等。本系统具有视频采集、播放、网络传输、网络接收、解压等功能,达到了MPEG-4网络组播的基本要求,能实时传输视频图像。

在设计实现阶段,本人通过编写、调试程序,提高了自己的系统分析和设计能力以及编写调试程序的能力,增加了系统开发的实际经验,同时在实践中增长了硬件、软件知识,加深了对计算机系统的认识。最后,完成了基于RTP协议的视频流媒体实时传输系统的设计,所编写的代码能初步完成其功能,基本达到事预想的方案要求。

系统整体设计具有成本低廉,便于扩充,升级容易等优点。由于时间有限,该系统还有一些不完善之处:

(1)在设计过程中没有考虑安全性问题,任何安装了客户终端的用户均可

接收实时视频数据,在服务器端没有迸行客户验证。

系统只是在局域网内实现,同一时间容纳的客户端数量有限。

对网络上的时延、抖动、丢包等因素对于数据的实时传输质量的影响(2)(3)

还有待作深入的分析和研究,当网络情况比较差的时候必将对客户端

的播放质量产生较大影响。

(4)本系统实现点到多点的实时传输,但多点到多点的传输形式有待进一步研究实现。

参考文献

[1】LIUDacheng,ZHENGYong,CHENGLihui,cta1.Monitoreffectiveinformation

methodanditsapplication.ManufacturingTeohnology&MachineTool,2004,504(7):15—19(inChinese)

【2】林福宗.多媒体技术基础.北京:清华大学出版社,2000

【3】D.Wu,Y.T.Hou,YQ.Zhang.StreamingvideoOVffftheIntemet:approach铬and

directions.IEEETramOllCircuitsandSystemsForVideoTechnology,2001,11(1):1.20

[4】詹慧静.MPEG-4编码特性剖析及应用研究.武汉理工大学学报,2005,(6):

102.105

[5】薛文通,宋建社,袁礼海.图像压缩技术的现状与发展.计算机工程与应用,2003,

39(2):65.67

【6】钟玉琢,王琪,贺玉文.基于对象的多媒体数据压缩编码匿际标准MPEG--4及校

验模型.北京:科学出版社,2000

[7】ISO/IECJTCl/SC29AVGl1DocumentN2501.InformationTechnology-Generic

CodingofAudio-VisualObjects。Part2:Systems.[SO//EC14496—1,FinalDraftInternationalStandard,Nov,1998

【8】ISO/IECJTCl/SC29/WGl1DocumentN2501.InformationTechnology-Generic

codingofAudio—Visualobjects,Part2:Visual.ISOflEC14496.2,FinalDmnInternationalStandard,Nov,1998

[9】李太君,吴泽晖.流媒体传输协议及其应用开发.计算机工程与应用,2004,40(3):

138.141.

【10】RTP:ATransportProtocolforRea-TimeApplications.RFC1889,1996.

(11】SchulzrinneH,CasncrS,FrederickR,el讲.RTP:ATram;portProtocol

Real—TimeApplications【EB,oL】.RFC3550,2003for

【12】RTPPayloadFormat

【13】础哼PayloadFormat

【141

2003forAC?3Audio.RI'C4184,2005forH.264Video.砌'cof39842005ElementaryStreams.RFC3640,RTPPayloadFormatforTransportMPEG-4

【15】RTPPayloadFormatforMPEG-4Audio/VisualStreams.RFC3016,2000

[16]董振亚,张拥军,彭字行.基于RTP的MPEG-4视频传输.计算机应用研究,

2003(7);52-55

【17】DapengWu,YiweiThomasHou.TransportingReal-TnneVideoovertheIntemet:

ChallengesandApproaches.PROCEED玳GS

VideoOFTHE砸EE,December2000,880孙:1855-1874,f181CaiN'CKuD.TransportofMPEG-2

NetworkCongestion

1999oninRoutedIPNetworks:EfrectsofTransportStreamErrors.FranceIDMS’99Conf,October

andConfcrmceswith[19】SchulzrinncH.RTPProfileforAudioVideoMinimal

Contr01.IⅡ’C1890.1996

f201HoffmanD'FemandoG.RTPPayloadFormatforMPEG.1,MPEG-2Video.

RFC2250.1998

[21】ISO/IECJTC1/SC29/WGllDocumentN2552.MPEG-4

Version12.1.Dee1998VideoVerificationModel

of【22】ISO/IECJTC1/SC29/WGllDocumentN3056.InformationTechnology-Coding

Audio-VisualObjects,Part2:VisualAmendment1:Visualextensions.ISO/IEC14496-2,1999/Amd.1,2000(E),Jan2000

【23】CHENGI,BASUA.QoSbasedvideoderiver),谢thfoveationandbandwidth

monitoring.PatternRecognitionLetters,2003,24(15):2675—2686.

【24】WIEBEK,BASU久Modellingeoologitallyspecialized

Patternbiologicalvisualsystems.Recognition,1997,30(1):1687-1703.

ofaudio?visual【25】ISO/IEC14496-6.Coding

Integrationobjects—Part&DeliveryMultimedia

objects.IEEEFramework(DMW)H,WangY.MPEG-4

M,Jaureguizarratecontrolformultiplevideo【26】Vetro【271A,SunTrans,CircuitsSyst,VideoRondaJI’EckertTechnol,1999,9(1):186?199.F,eta1.Ratecontrolandbitallocationfor

MPEG-4.IEEETrans,CircuitsSyst,VideoTcchnol,1999,9(8):1243—1258.

architectureforlxansporting

Syst,Video【28】WuD,HouYT’ZhuW,eta1.Onend—to—endMPEG-4videoov盯the

923—941.intemet.IEEETram,CircuitsTechnol,2000,lO(6):

[29】宋冈Ⅱ,杨显富.实时流媒体传输及其协议.成都大学学报(自然科学版),2005(3)

【30】钟玉琢,向哲,沈洪.流媒体和视频服务器.北京:清华大学出版社,2003.

【31】BeauWilliamson.Developing

版社。2000IPMulticastNetworks,顾金星译.北京:电子工业出

f32]鲁士文.多媒体网络技术与应用.北京:清华大学出版社,2002

[33】Kenneth

【34】Henning

(35】ColinDReed.TCP佃基础.北京:电子工业出版社,2002.Schulzrinne,RTP:AboutRTPandtheAudio-VideoTransportWorkingGroup.http://www.cs.columbia.edu/-hgs/rlp

48Pcrkinsl.Im:AudioandVideofortheInternet.NewYork:AddisonWesley,

2003

2002硕士荦位论文MASTER’STl-IESIS【36】余兆职,李晓飞,陈来春.MPEG标准及其应用.北京:北京邮电大学出版社,

【37】RaoKR’ZorauSB,DmgoradAMI.多媒体通信系统技术、标准及网络(影印版)

北京:清华大学出版社,2003

【38】RosenbergJ,SchulzrinneH.Sampling

2762,2000oftheGroupMembershipinRTP.RFC

【39]邱小燕,吴产乐,叶刚等.RTP协议中RTCP传输间隔算法.武汉大学学报(理学

版),2005(2),74-76

【40】RosenbergJ,SchulzrinneH.TimerReconsiderationforEnhanced彤rP

Scalability[A].S?eventeenthAnnualJointConferenceoftheIEEEComputcrandCommunieationsSocieties,1998,1,233-241.

(41]黄家传,王福豹,段渭军.MPEG-4的RTP封装技术及其应用.计算机应用研究,

2005(8):158-160

[42】许先斌等.运用RTP协议实时传输MPEG-4流.计算机工程与设计,2003(2):

57.59

[43】董振亚,张拥军,彭字行.基于IHP的MPEG-4视频传输.计算机应用研究,2003,

20(7):52—55

[44】Basso气Varakliotis

InternationalS.,TransportofMPEG24ov豇口/RTP.2000砣EEConference,2000,1067-1070.

ofMPEG-4ElementarySteams.RFC3640,2003

MPEG-4ElementarySteams.drafl-avt-mpe94.

MPEG-4S位eams.Draft-ietf-avt-mpe94.[45】RTP【46】VanPayloadFormatforTransportDerMeer,eta/Transportofsimple一05,2002[47】Basso,et

【48】Curet,eta1.RTPPayloadFormatformultisl-04,2002a1.RTPPayloadFormatforMPEG-4HexMultiplcxedStreams.draR.

curet?avt-rtp-mpe94-flexmux-03,2002

【49】郝智泉,吕汉兴,程臻.基于局域网的视频图像传输与监视系统.计算机应用研

究,2003(6):61.63

【5I叩沈进棋,阮锋,诸静.基于Web的视频图像的实时传输.计算机工程,2005(I):

187—188

[51]赵进,叶梧,冯穗力.基于RTP协议族的流媒体系统设计和实现.计算机工程,

2005(1):195—197

【52]http://research.earn.uhasselt.be/~jori/page/indcx.php?n=CS.Jrtplib[53】陆其明.DirectShow开发指南.北京:清华大学出版社,2003

⑨顽士擎位论文

MASTERlSTHEStS

硕士期间发表的论文

1葛镜,张国平,王磊.基于蹦IF体系的bIPEG-4传输.有线电视技术,2006,122周金友,张国平,沈亚琦,付晓军。葛镜.基于RTP协议的IPTv电视机顶盒.有线电视技术,2006,01

3吴四清,张国平,葛镜.基于内容检索的视频分割技术的研究.电脑与信息技术2006,05

4吴四清,张国平,葛镜,MPEC,-4视频编码核心思想与关键技术.科技咨询2006,075王保存,张国平,,葛镜,王磊.一种改进的小波变换方法对喇曼光谱去噪.2007,07

6张燕,张国平,刘文冈,葛镜.IPTV中基于集群技术的LVS的研究与应用.微计算机信息,2008,05

7熊伦,张国平,葛镜.基于自相关函数的激光散斑尺寸的测量.光学与光电技术,2008。06

⑨硕士学位论文

MASTER’STHESIS

致谢

在此硕士论文完成之际,我衷心感谢所有关心、帮助和支持我的人。

首先,我要感谢我尊敬的导师张国平教授。三年来,张老师给予我悉心的指导和亲切的关怀。张老师知识渊博,治学严谨,他不仅传授给我理论知识和实践经验,更以严谨的治学态度和实事求是、认真勤勉的工作作风为我树立了表率。在学习上,张老师对我悉心指导,鼓励我大胆创新,抓住机会,扩展研究领域;在思想上,他对我循循善诱,让我时时感到前进的动力。感谢张老师对我的进步付出的心血。从他的言传身教中我不仅学到了知识,而且懂得了做人的道理。耳濡目染饱废寝忘食的科研精神、一丝不苟的工作作风、认真负责的教学品格也将使我终生受益。在此,谨向张老师表示衷心的感谢和诚挚的谢意。

其次,我要感谢三年来给予我关心和帮助的华中师范大学电信系的各位老师们,还要感谢余泽太老师在程序设计过程中给与我的专业指导。

我还要感谢华中师范大学光电予实验室,那里有着良好的实验条件和舒适的工作环境,活跃的学术氛围。感谢实验室的每一位同学,正是同他们的相互切磋和讨论,使我在遇到困难时总是能很快地找到解决的途径,感谢我的师姐陈明宏同学为我提供的一些有用资料。同时,也希望我们实验室能多出优秀的学术成果,希望实验室的师弟师妹们能把我们实验室的优秀传统发扬光大!

最后,我要特别感谢我的父母,感谢他们对我学业的鼓励与督促,让我~路坚持下来。5l

基于RTP协议的视频流媒体实时传输

基于RTP协议的视频流媒体实时传输

作者:

学位授予单位:葛镜华中师范大学

相似文献(9条)

1.期刊论文 许先斌.朱平.安晖 运用RTP协议实时传输MPEG-4流 -计算机工程与设计2003,24(2)

在简述RTP协议原理的基础上介绍了用于MPEG-4流实时传输的RTP载荷格式,详细阐明了MPEG-4视觉和音频RTP载荷格式的定义原则、相关RTP头部字段的使用方法及分片原则,给出了基于RTP的MPEG-4流实时传输系统的基本体系结构及其实现.

2.会议论文 戴琼海.谭仕勇 MPEG-4视频流的实时传输 2002

MPEG-4是一个全新的多媒体编码标准,采用了基于对象和模型的编码方法.本文简要总结了MPEG-4视频编码标准的各种特点,对MPEG-4视频流的网络实时传输提出了各种评估标准,并针对MPEG-4视频流在实时传输中面临的各种困难介绍了相应的解决方案.MPEG-4视频流的实时传输

3.学位论文 邓家义 基于MPEG-4的视频实时传输关键技术研究 2002

该针对目前互联网的现状,就如何有效利用网络带宽以及降低丢包对视频质量的影响进行了研究,提出一种基于IP协议的端到端的MPEG-4视频实时传输框架.该框架由三个部分组成:网络端到端的实时传输控制、MPEG-4自适应的视频编码和端到端的差错控制.端到端的传输控制采用实时传输协议(RTP)来传输MPEG-4视频,同时利用实时传输控制协议(RTCP)获取网络丢包状况,通过反馈机制来估计网络可用带宽.基于率失真模型的码率控制理论,MPEG-4视频编码器自适应地调整编码输出速度,获得与网络可用带宽匹配的视频流.最后在局域网上设计了一个实时视频传输的模拟系统,模拟结果表明系统能够在不同的网络条件下获得较好的MPEG-4视频质量,并较好利用了网络带宽资源.

4.学位论文 余兆钗 基于MPEG-4的网络视频监控系统视频实时传输的研究 2005

本文首先介绍了MPEG-4标准及其特性,比较深入地分析了MPEG-4压缩算法,阐述了实时传输和实时传输控制协议RTP/RTCP。然后根据网络视频监控系统的特性选择了合适的网络传输方案,对传输网络做了设计。   本文分析了以VOP为单位的组包算法,并且作了改进,为了最大限度减少包数同时兼顾监控系统的实时性要求,采用一个RTP包装载多个VOP的策略;提出了交叉组包的策略。阐述了改进后的组包算法,对装载MPEG-4视频流的RTP包的载荷格式进行设计。   本文通过分析适用于MPEG-4视频的网络拥塞控制算法,提出了网络拥塞反馈控制算法的改进和优化思想,为了减小因为拥塞控制而产生的抖动问题,采取平稳增长因子的策略,阐述了改进后的拥塞控制算法。通过实验表明了改进后的组包算法大大降低了RTP包的数量,改进后的拥塞控制算法比较有效地减小了视频传输的抖动。

5.期刊论文 余兆钗.刘维娜 基于MPEG-4的网络视频监控系统实时传输的设计 -福建电脑2007(9)

本文介绍了MPEG-4视频压缩算法的一般过程,描述了实时传输协议(RTP)和实时传输控制协议(RTCP)的原理,设计了视频实时传输系统,针对MPEG-4视频编码的特性,使用以VOP进行封装数据包的策略,并对RTP数据包的格式进行了详细的设计.

6.期刊论文 谭仕勇.戴琼海.陈慧蓉 MPEG-4视频的实时传输 -计算机工程2001,27(11)

MPEG-4是一个全新的多媒体标准,采用了基于对象和模型的编码方法.简要总结了MPEG-4视频编码的各种特点,对网络实时传输MPEG-4视频提出了各种评估标准,并针对面临的困难介绍了相应的解决方案.

7.期刊论文 丁兵.张占军.DING Bing.ZHANG Zhan-jun 基于RTP MPEG-4视频流传输的研究 -装甲兵工程学院学报2005,19(1)

视频传输是当前国内外研究的重要课题,尤其就对传输过程中Qos的控制,在当前网络质量不高的情况下进行视频传输具有重要的作用.研究了RTP、RTCP等多媒体实时传输技术的原理,具体阐述和讨论了RTP的实时传输MPEG-4技术以及RTCP的传输控制技术,探讨了RTP/RTCP在战术互联网中MPEG-4视频实时传输中的实现.

8.学位论文 李安明 基于Internet的MPEG-4视频流实时传输系统研究 2004

随着Internet的流行,个人计算机处理能力的提高,以及视频压缩技术的发展,人们对实时Internet视频服务,如视频电话、视频会议和远程教学等的需求不断增长,因此,对Internet视频实时传输的研究,无论在科研还是在应用领域都具有非常重要的意义.本文介绍了一种基于Internet的点对点MPEG-4视频流实时传输系统.我们以实时传输协议(RTP)和实时传输控制协议(RTCP)为基础,以RTP/UDP/IP为传输协议体系,采用最新的视频编码标准MPEG-4,实现了以校园网为基本应用环境,实际可以面向Internet的,编码速率自适应可调的点对点视频传输系统.系统的主要特点是利用RTP/RTCP协议的相关信息,设计出了优良的MPEG-4视频数据封装策略,从而最小化了视频数据包丢失对视频回放质量的影响,同时,根据RTP/RTCP协议报文头部提供的信息,提出了根据数据包丢失率自适应调节视频编码器编码速率的算法,实现了随网络带宽变化在一定范围内调节码率的功能,尽可能的利用了网络闲置带宽和防止网络的拥塞.本文在结构安排上,首先介绍与视频传输相关的技术,分析在Internet上传输视频的性能要求,接着给出最新的视频编码标准MPEG-4的特点和一组多媒体传输协议,并比较这些协议优缺点,最终确定RTP和RTCP协议作为本系统的选择.然后从系统的整体结构着手,详细描述了系统的开发环境、协议体系和工作流程,并分别对缓冲器设计、RTP/RTCP协议、算法设计等各部分进行了程序实现.经过对系统进行测试,证实了本文的方案效果良好,视频传输质量具有很高的稳定性和自适应性,最后指出了系统的优缺点以及后续改进方向.

9.期刊论文 张宛方.苏鸿根 基于RTP/UDP/IP协议实时传输MPEG-4流媒体文件 -计算机工程与设计2004,25(8)

在简述RTP/RTCP的协议原理的基础上,介绍了基于RTP/UDP/IP实时传输MPEG4流媒体文件的方法,并给出了一个实时传输系统的基本体系结构及其实现.

本文链接:http://d..cn/Thesis_Y1122128.aspx

下载时间:20xx年11月18日

相关推荐