基于MMT协议传输及重组非时序媒体的包头设计方法与流程

文档序号:12623941阅读:732来源:国知局
基于MMT协议传输及重组非时序媒体的包头设计方法与流程

本发明涉及一种基于MMT协议的用于传输及重组非时序媒体数据的包头设计方案,更具体的说,涉及一种利用MMT协议传输并重组非时序媒体时,其数据单元头部封包格式的设计。



背景技术:

随着近年来计算机技术和网络技术的快速发展,多媒体业务在人们的学习、工作和生活中占据了越来越重要的地位。然而,互联网多媒体内容个性化以及更加灵活的多媒体访问方式对多媒体文件封装与传输技术提出了新的挑战。

在认识到现存标准新的不足时,为改善互联网上多媒体数据的传输,MPEG组织启动了新标准的制定,即国际标准ISO/IEC DIS 23008的第1部分:异构环境下的高效编码和媒体传送——MPEG媒体传输(MPEG media transport,MMT)。

异构环境下的高效编码和媒体传送对于多媒体文件封装格式有很高的要求,它不仅需要提供随机访问和网络流化播放,同时需要很好地适应广播环境下的大量数据传输,支持混合异构网络下不同接口的交互。为此,经过各界专家的多轮争论,MPEG组织最终决定引入一种新的用于异构网络下的多媒体数据封装容器格式,即媒体处理单元(Media Processing Unit,MPU)。

MPU格式的数据需要根据MMT传输协议封装到MMTP(MMT protocol)包中,以作为媒体流在网络中传输。MMTP包的形式可以实现低延时,同时对MPU的大小没有限制。除了在负载中包含分片后的MPU内的所有数据,MMTP包中还包括适合在网络中传输、重组MPU所必要的头部数据。在国际标准ISO/IEC DIS 23008-1中,时序/非时序媒体传输、重组所必要的MMTP包头数据结构被明确定义及说明,然而其完全无法实现非时序媒体MPU的重组。因此,如何利用MMT协议及MMTP包的传输格式实现对非时序媒体MPU的重组是亟待解决的问题。



技术实现要素:

针对国际标准ISO/IEC DIS 23008-1中所定义的MMTP包头结构无法达到非时序媒体MPU重组目的的问题,本发明的目的是提供一种基于MMT协议传输及重组非时序媒体的包头设计方法,该方法是一种基于MMT协议的非时序媒体传输及重组的MMTP包头设计方案。

为实现上述目的,本发明采用的技术方案为:

一种基于MMT协议传输及重组非时序媒体的包头设计方法,所述方法在MMTP包头结构中增加用于非时序媒体重组的必要信息,增加非时序媒体传输的可靠性,实现利用MMT协议对非时序媒体的传输及重组。

作为一个优选方式,针对国际标准ISO/IEC DIS 23008-1中定义的MPU模式下的MMTP负载头文件结构,将frag_counter字段由8bit扩展为大于8bit,frag_counter字段的长度根据需要来定义,以放宽对单个item或单个MFU的大小限制,frag_counter字段指明了同一数据单元为适应mmtp包的传输而被分片的数量。

作为一个优选方式,针对国际标准ISO/IEC DIS 23008-1中定义的MPU模式下的MMTP负载头文件结构,在非时序媒体的DU_Header部分添加偏移量offset字段以区别MMTP包内数据的先后顺序,offset字段的长度根据需要来定义;offset字段指明了该数据包中的负载在对应item中的偏移量,以便于规则地将数据填充到相应的位置中。

作为一个优选方式,根据国际标准ISO/IEC 14496-12中定义的“iloc”Box,在非时序媒体的DU_Header部分添加extent_number字段以区别extent在item中的先后顺序,以便对MMTP数据包进行有层次的管理,extent_number字段的长度根据需要来定义。

作为一个优选方式,根据结合国际标准ISO/IEC 14496-12中对“iloc”Box的定义,本文中在非时序媒体的DU_Header部分添加extent_number字段以及offset字段,extent_number字段和offset字段的长度根据需要来定义,其中,extent_number字段指明了该数据包中的负载所属于的相应item下的extent的序号,从0开始计数;offset字段指明了该数据包中的负载在对应extent中的偏移量,以便于规则地将数据填充到相应的位置中。

与现有技术相比,本发明具有如下的有益效果:

采用了本发明的技术方案,可以有效填补并完善现有MMT协议标准无法实现非时序媒体传输及重组的技术漏洞,通过在MMTP包头结构中增加更多用于非时序媒体重组的必要信息,增加非时序媒体传输的可靠性,实现利用MMT协议对非时序媒体的传输及重组。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是非时序媒体的负载结构(以item作为传输数据单元);

图2是时序媒体的负载结构(以MFU作为传输数据单元);

图3是非时序媒体的负载结构(以extent作为传输数据单元);

图4为国际标准ISO/IEC DIS 23008-1中MPU模式下的MMTP负载头文件结构图;

图5为非时序媒体、DU_Header字段的内部结构图;

图6为实施例2修改后的非时序媒体DU_Header内部的结构图;

图7为实施例3修改后的非时序媒体DU_Header部分的结构图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。

TCP/IP通常被认为是一个四层协议系统,包括链路层、网络层、传输层、应用层。UDP属于传输层。由以太网的物理特性决定,以太网(Ethernet)数据帧的长度必须在46-1500字节之间。1500字节被称为链路层的最大传输单元(Maximum Transmission Unit,MTU),但该MTU指的是链路层的数据区,并不包括链路层的首部和尾部的18个字节。所以,事实上,1500字节就是网络层IP数据报的长度限制。

因为IP数据报的首部为20字节,所以IP数据报的数据区长度最大为1480字节。而1480字节就是用来放TCP传来的TCP报文段或UDP传来的UDP数据报的。又因为UDP数据报的首部8字节,所以UDP数据报的数据区最大长度为1472字节。

当发送的UDP数据大于1472字节时,即IP数据报大于1500字节,大于MTU。此时,发送方IP层就需要分片(fragmentation),把数据报分成若干片,使每一片都小于MTU;而接收方IP层则需要进行数据报的重组。由于UDP的特性,当某一片数据传送中丢失时,接收方便无法重组数据报,将导致丢弃整个UDP数据报。因此,在普通的局域网环境下,建议将UDP的数据控制在1472字节以下。

由此可知,基于MMT协议,采用UDP数据报的形式在网络中传输数据前,必须先将MPU分片并封装到MMTP包中,而MMTP包的大小最大可取1472字节。

如果以1472字节为数据区单位划分UDP数据报,那么根据国际标准ISO/IEC DIS23008-1可知:MMTP包的头部占用20字节(参见标准8.2.2节),MPU模式下MMTP负载头部占用8字节(参见标准8.3.2.2节),非时序媒体的数据单元头部占用4字节(参见标准8.3.2.2节)。因此,每个MMTP包中实际用来存储数据的负载大小最多为1440字节。

国际标准ISO/IEC DIS 23008-1中定义了MPU模式下的MMTP负载头文件结构,如图4所示,该图所示的结构中的frag_counter(fragment_counter:8bits)字段指明了同一数据单元(Data Unit,DU)为适应mmtp包的传输而被分片的数量。在接收端,需要对比接收到的包总数和该字段的值,以判断是否收包完整,确保未出现丢包现象。

对于非时序媒体,DU_Header字段的内部结构如图5所示。

实施例1:

由于frag_counter字段限制了同一数据单元传输时可分片数最大为28=256,如果非时序媒体以item为数据单元(DU)进行分片传输,如附图1所示,则每个item的长度不能超过1440Byte×28=360KByte。同时,根据附图2可知,时序媒体是以MFU为数据单元进行分片传输的,即时序媒体MFU的大小也被限制在360KB以内。若一个item或一个MFU对应于一张图片,则一张图片的大小不能超过360KB,这显然不能满足当下对高清晰图片传输的需求。因此,可以将frag_counter字段由8bit扩展为16bit,以放宽对单个item或单个MFU的大小限制。本实施例中以将frag_counter字段由8bit扩展为16bit为例进行说明,实际应用中,该字段的长度可根据需要来定义。

实施例2:

如果非时序媒体以item为数据单元(DU)进行分片传输,结合实施例1,即使每个item大小不超过360KB,并能被正确地分片及传输,在接收端也只能根据接收到的MMTP包进行机械式地堆积数据。一旦数据包出现乱序,则仅通过非时序媒体的DU_Header,即32bit的item_ID是无法进行正确的分片重组,数据的恢复便会出错,因此需要在非时序媒体的DU_Header部分添加32bit的偏移量(offset)字段以区别MMTP包内数据的先后顺序。修改后的非时序媒体DU_Header内部的结构如图6所示,即在原有的32bit的字段item_ID之后添加32bit的字段offset。其中,offset字段指明了该数 据包中的负载在对应item中的偏移量,以便于规则地将数据填充到相应的位置中。本实施例中以添加32bit的偏移量为例进行说明,实际应用中,该字段的长度可根据需要来定义。

实施例3:

如果将item细分至extent(可参见国际标准ISO/IEC 14496-12中的第8.11.3节——“iloc”Box),如附图3所示。此时,MMTP包将以extent为数据单元进行分片传输。那么,在非时序媒体的DU_Header部分还需要添加16bit的extent_number字段以区别extent在item中的先后顺序,以便对MMTP数据包进行有层次的管理。

综合实施例2与实施例3,并结合国际标准ISO/IEC 14496-12中对“iloc”Box的定义,最终确定在非时序媒体的DU_Header部分添加16bit的extent_number字段以及32bit的offset字段。修改后的非时序媒体DU_Header部分的结构图7所示,即在原有32bit的字段item_ID之后添加16bit的extent_number字段,随后再添加32bit的字段offset。其中,extent_number字段指明了该数据包中的负载所属于的相应item下的extent的序号,从0开始计数;offset字段指明了该数据包中的负载在对应extent中的偏移量,以便于规则地将数据填充到相应的位置中。本实施例中以添加16bit的extent_number字段以及32bit的offset字段为例进行说明,实际应用中,extent_number字段、offset字段的长度可根据需要来定义。

如此一来,在接收端可以通过读取接收到的MPU metadata,提取出“iloc”Box中对item及其分段情况的说明,包括MPU中所含item的个数item_count、对应item_ID的用于指示该item相对于MPU首字节的初始位置base_offset、每个item分成extent的个数extent_count、extent在相应item中的相对偏移量extent_offset及其长度extent_length。再结合非时序媒体数据包头部DU_Header部分的item_ID、extent_number及offset,便可对每个MMTP数据包中的负载做到精确定位,并可以准确实现非时序媒体MPU的传输及重组。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1