MPEG-4流的RTP负载格式.doc_第1页
MPEG-4流的RTP负载格式.doc_第2页
MPEG-4流的RTP负载格式.doc_第3页
MPEG-4流的RTP负载格式.doc_第4页
MPEG-4流的RTP负载格式.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MPEG-4流的RTP负载格式1. 介绍本文描述的RTP负载格式规定了如何对MPEG-4音频流35和MPEG-4视觉流24进行分片并直接映射到RTP包中。通过定义这些RTP负载格式,应用在不使用MPEG-4系统同步和流管理功能的情况下也能直接传输MPEG-4音频/视觉流。本文的RTP负载格式可应用于那些本身有流管理功能且不需要MPEG-4系统中类似功能的系统。例如H.323终端,其MPEG-4音/视频流的管理就不通过MPEG-4系统对象描述符进行管理,而是使用了H.245。流直接映射到RTP包中,并没有使用MPEG-4系统同步层。其它例子包括SIP和RTSP,它们使用了MIME和SDP。本文所述之RTP负载格式定义了MIME类型和SDP的用法,直接规定了不使用MPEG-4系统时的音/视觉流属性(如,媒体类型,打包格式和编码配置)。这样做明显的优点在于可以象对付那些非MPEG-4编码格式一样,采用一种通用的方法来对这些MPEG-4音频/视觉RTP负载格式进行处理。而缺点在于同基于MPEG-4系统环境的互操作可能会比较困难,其它负载格式则更适用于这些应用。在此情况下,RTP包头的语义必须定义的非常清晰,其中包括MPEG-4音/视频数据元素的关系。此外,为了增强错误恢复能力,在MPEG-4视频流内部提供错误恢复工具,最好能为MPEG-4视频流定义好RTP包的分片规则。1.1 MPEG-4视觉RTP负载格式MPEG-4视觉是一种视觉编码标准,它具有如下新特征:高编码效率;高错误恢复性;基于多样的,任意形的对象编码;等等2。其速率范围介于数Kbps到几Mbps。并且它能适应从无差错网络到高错误率的移动网络等多种网络类型。针对本文中定义的MPEG-4视觉码流的分片规则我们应当注意到,由于MPEG-4视觉将用于多种网络类型,因此在分片方面不应有太多的限制。诸如“单个视频包需映射到单个RTP包”这样的分片规则是不合理的。另一方面,大意,对未知媒体分片也可能导致错误恢复率和带宽利用率的下降。本文描述的分片规则十分灵活,但在应用MPEG-4视觉错误恢复功能时为了避免无意义的分片也要定义一个最小的规则集。分片规则建议不要在一个RTP包中映射多个VOP,这样可以保证RTP时间戳能唯一地表示VOP分帧时间。而相反地,由于MPEG-4视频可以产生非常小的VOP,如一个只包含VOP头的空VOP (vop_coded=0)或者一个仅有少量码块的任意形VOP。为了减低开销,分片规则应允许将多个VOP连接到一个RTP包中。(参见3.2节分片规则(4)和3.1节标志位和时间戳)在H.261或MPEG-1/2等视频编码工具中往往通过所定义的额外媒体RTP包头来帮助在包丢失时恢复损坏的图片包头,而MPEG-4视觉已经为此提供了错误恢复功能,它们可用于RTP/IP网络,也可用于其它网络(H.223/Mobile,MPEG-2/TS等)。因此,无需在MPEG-4视觉RTP负载格式中定义额外的RTP包头。1.2 MPEG-4音频RTP负载格式MPEG-4音频是一种集成了多种类型音频编码工具的新型音频标准。LATM(低负担MPEG-4音频传输复用)通过相当小的耗费来管理音频数据序列。对那些仅有音频的应用,不使用MPEG-4系统而采用直接将基于LATM的MPEG-4音频码流映射到RTP包的方式是很值得的。LATM有如下几项复用特性: - 在音频数据中携带配置信息, - 将多个音频帧连接到一个音频流中, - 多对象(程序)复用 - 可伸缩层的复用,在RTP传输中不需要最后两项性质。因此,基于本文规定的RTP组包原则的应用程序不能使用这两个性质。由于LATM是为自然音频编码工具所开发,而非为合成工具开发,要用其来传输结构化音频(SA)数据和文语转换接口(TTSI)数据是很困难的。所以不能通过本文档的RTP组包方法传输SA数据和TTSI数据。为了传输可伸缩流,每层的音频数据都应当打包到不同的RTP包,如此才可保证在IP层对不同层有不同的处理,比如通过一些区分服务。另一方面,可伸缩流的所有配置数据都包含于一个LATM配置数据SteamMuxConfig中,并且每一层共享该 StreamMuxConfig。层与其配置数据的映射是通过音频数据附带的LATM头信息来完成的。为了表示可缩放流的依赖信息,还针对负载类型(PT)值(见4.2节)的动态分配规则使用了一种限制措施。对于MPEG-4音频编码工具而言,如果负载为单个音频帧,则包的丢失不会影响邻近包的解码。这同样也适用于其它音频编码器。因此MPEG-4音频不需要附加的用于错误恢复的媒体特定头。可采用已经存在的一些RTP保护机制来提高错误恢复率,如通用前向纠错(RFC 2733)和冗余音频数据(RFC 2198)。2. MPEG-4视觉码流的RTP组包本节规定了MPEG-4视觉内容的RTP组包规则。一个MPEG-4视觉码流可直接映射到RTP包而不需要增加额外的头字段或者删除任何视觉语法元素。为了将基本流的配置信息在相同的RTP端口上传送,必须使用合并配置/基本流模式。(参见ISO/IEC 14496-2294中6.2.1开始编码)配置信息可以通过带外方式规定。对于H.323终端,必须使用H.245码点decoderConfigurationInformation。如果系统使用MIME内容类型和SDP参数,如SIP和RTSP,则必须用可选参数config来规定配置信息。当使用了短视频头模式时,应该H.263的RTP负载格式(建议使用RFC2429定义的格式,但也可使用RFC2190格式以实现同旧系统的兼容性)。2.1 MPEG-4视觉中RTP头字段的使用负载类型(PT): 为新的包格式分配RTP负载类型超出了本文的范畴,不在此赘述。特定类型应用程序的RTP框架应该负责负载类型的分配,如若不能则应该通过带外信令协议(如,H.245,SIP等)在动态范围内选择一个负载类型。扩展位(Extension-X bit): 由使用的RTP框架定义。序列号(Sequence Number): 为了安全从一个随机初始化值开始,每发送一个RTP数据包加1。标志位(Marker-M) bit: 标志位设为1标志这是VOP的最后一个(或仅有一个)RTP包。若一个RTP包中携带有多个VOP则标志位也设为1。时间戳(Timestamp): 时间戳表示RTP包中的VOP采样时间。为了安全,加上了一个随机常数偏移。- 当一个RTP包携带多个VOP时,时间戳表示其中最早的一个VOP的时间。其它VOP的时间戳信息通过VOP头的时间戳字段可得(modulo_time_base和vop_time_increment)。- 如果RTP包只含有配置信息或Group_of_VideoObjectPlane()字段,使用编码队列中下一个VOP的时间戳。- 如果RTP包仅含有visual_object_sequence_end_code信息,使用编码队列中前一个VOP的时间戳。除非由带外方式规定,时间戳分辨率设为缺省值90KHz。其它头字段的使用见RFC 1889 8。2.2 MPEG-4视觉码流分片使用合并配置/基本流模式,经过分片的MPEG-4视觉码流直接映射到RTP负载而不用增加任何额外头字段或者删除视觉语法元素。分片时可应用如下规则。下文中,头(Header)可能表示如下信息:- 配置信息(视觉对象序列头,视觉对象头和视频对象层头)- visual_object_sequence_end_code- 基本流的进入点函数头(Group_of_VideoObjectPlane(), video_plane_with_short_header(), MeshObject()或FaceObject()- 视频包头 (video_packet_header(),next_resync_marker()除外)- gob_layer()头配置信息和进入点函数的定义参见ISO/IEC 14496-2 294的6.2.1 开始编码(1) 配置信息和Group_of_VideoObjectPlane()字段应位于RTP负载的开始位置或在语法上的上层函数头之后。(2) 如果RTP负载中存在一个或多个头,则RTP负载应从语法上的最高函数头开始。注意: visual_object_sequence_end_code作为最低函数。(3) 一个头不应分到多个RTP包中。(4) 不同的VOP应该分片为不同的RTP包,一个RTP包只包括与唯一VOP的时间相关的数据(在RTP包头的时间戳字段中指出)。例外情况是如果VOP很小,则单个RTP包携带多个按解码顺序连续的VOP。注意:当一个RTP负载携带了多个VOP时,第一个VOP后的VOP时间戳在解码时通过计算得到。该操作仅当RTP包标志位为1且RTP负载开始符合起始码时才是必须的。 (见3.1节时间戳和标志位)(5) 建议一个视频包组成一个RTP包进行发送。视频包的大小应该按如下方式来决定,即,结果RTP包的大小不得超过路径MTU的大小。注意:规则(5)不适用于以下场合,编码器配置禁止视频包(通过将VOL头中的resync_marker_disable设置为1),或者编码工具不支持视频包。在此情况下,一个VOP可能得经过在任意字节位置进行分片后才能发送。视频包从VOP头或视频包头开始,后面紧接着是motion_shape_texture(),以next_resync_marker()或next_start_code()结束。2.3 MPEG-4视觉码流组包示例Figure 2所示为按照2.2描述标准产生的RTP包的例子。(a)例表示包含了配置信息的MPEG-4视觉码流中第一个RTP包或随机访问点。根据规则 (1),视觉对象序列头应位于RTP负载的开始处,视觉对象头和视频对象层头(VO header, VOL header)之前。3.2中定义的分片规则保证了从visual_object_sequence_start_code开始的配置信息通常都位于RTP负载的开始位置,RTP接收端可通过检查RTP负载的头32位字段是否是visual_object_sequence_start_code来检测随机访问点。(b)是另一个包含配置信息的RTP包例子。它同(1)的区别为该RTP包在VOP中的配置信息后还包含有视频包。由于配置信息长度很短(一般为数十字节),一个RTP包如果仅含有配置信息会造成系统开销的上升,因此配置信息和其后的GOV和/或(部分)VOP可以打包到同一个RTP包中,如此例中所示。(c)是RTP包中包含了Group_of_VideoObjectPlane(GOV)的例子。根据规则(1),GOV位于RTP负载的开始位置。一个仅有GOV字段的RTP包大小只有7个字节,这是对RTP/IP头开销的极大浪费。因此后续的VOP(或部分地)可以如本例所示打到同一个RTP包中。(d)例中,一个视频包被打包到一个RTP包中。当网络中包丢失率很高时推荐采用该方法。甚至当包含有VOP头的RTP包被丢弃时其它RTP包还可通过使用视频包头中的HEC信息进行解码。无需任何额外的RTP头字段。(e)例为多个视频包打在一个RTP包中的情况。 在底层网络速率很低时这种组包方式可高效地节约RTP/IP头开销。不过,由于一个RTP包的丢失会导致将多个视频包同时丢失,这种方法会降低丢包恢复率。一个RTP包中理想的视频包数目和RTP包长度可通过丢包率和底层网络传输的比特率来决定。(f)示例为在VOL头中将resync_marker_disable设置为1从而禁止使用视频包。在此情况下,一个VOP可按照任意字节位置分为多个RTP包。比如将一个VOP按照固定长度进行分片。这种编码配置方法和RTP分片可应用于能提供极低错误率保证的网络。另一方面,由于它的丢包恢复率很差,建议不要在error-prone环境中使用。Figure 3 所示为按3.2规则建立的RTP包。按照(a)中将一个头分片到多个RTP包不仅造成RTP/IP头开销增加,也导致了错误恢复能力的下降。因此在规则(3)中禁止这样做。当将多个视频包串联到一个RTP包中时,VOP头或video_packet_header()不应放到RTP负载的中间。基于错误恢复的目的,(b)中的组包方法违反了规则(2)。比较该例同图2中的例6,尽管两者都是把两个视频包映射到两个RTP包中,其丢包恢复率却不一样。即是说,假设第二个RTP包丢失了,图3例(b)中两个视频包都将丢失,而在图2例(d)中仅丢失视频包2。3. MPEG-4音频码流的RTP组包本节规定了MPEG-4音频码流的RTP组包规则。MPEG-4音频流必须通过LATM工具进行格式化,然后基于LATM的流将按照下面三节的描述映射到RTP包上。3.1 RTP包格式基于LATM的流由一个包含了一个或多个音频帧的audioMuxElements序列组成。一个完整或部分完整的audioMuxElement可直接映射到一个RTP负载上,无需删除任何audioMuxElement语法元素 (见图4)。每个audioMuxElement的第一个字节应该位于RTP包第一个负载所在的位置。为了对audioMuxElement进行解码,必需得在其后通过带外方法指明muxConfigPresent。当SDP用于此指示时,MIME参数cpresent“就对应了muxConfigPresent信息。muxConfigPresent: 如果该值为1(带内模式),audioMuxElement应包括一个指示位useSameStreamMux并且可能包括一个音频压缩配置信息StreamMuxConfig。UseSameStreamMux位表示是否前一帧中的StreamMuxConfig元素也应用于本帧。如果useSameStreamMux位指示要使用前一帧的StreamMuxConfig,而前一帧已经丢失,则将无法对当前帧进行解码。因此,在带内模式下,StreamMuxConfig元

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论