用于视频译码的具有解码次序编号的单个网络抽象层单元包的制作方法_3

文档序号:9476571阅读:来源:国知局
br>[0058]HEVC RTP有效负载格式的一些概念及工作原理是继承自RFC 6190且遵循类似设计。如果仅一个RTP会话(例如,一个RTP流)用于发射HEVC位流,那么所述发射模式称为单会话(或单流)发射(SST);否则(例如,如果一个以上RTP会话用于发射HEVC位流),传输方式称为多会话(或多流)发射(MST)。SST通常用于点到点单播情形,而MST用于点到多点多播情形,其中不同接收器需要相同HEVC位流的不同操作点以改善频宽利用效率。不管使用SST还是MST,发射模式都通过媒体类型参数(tx模式)来用信号表示,其可表达为会话描述协议(SDP)参数(例如,在设定RTP会话期间)。
[0059]可指定为SDP参数的另一参数为sprop-depack-buf-nalus参数。Sprop-depack-buf-nalus为指定解包化缓冲器(例如,RTP接收器缓冲器)中的在接收次序上可先于一 NAL单元且在解码次序上在所述NAL单元之后的NAL单元的最大数目的会话参数。一般来说,解码次序可指示将通过视频解码器解码NAL单元的次序。因此,视频解码器及/或解包单元可利用所接收NAL单元的解码次序来确定处理NAL单元的次序。因此,sprop-depack-buf-nalus的值可指示可不按解码次序发射及/或接收的NAL单元的最大数目。
[0060]在一个实例中,sprop-depack-buf-nalus参数的值为在O到32767范围内(包含O及32767)的整数。在不存在时,sprop-depack-buf-nalus参数的值推断为等于Oo在RTP会话取决于一或多个其它RTP会话时(在此情况下,发射模式等于“MST”),sprop-depack-buf-nalus 参数的值将大于 O。sprop-depack-buf-nalus 参数的大于零的值指示会话允许交错式包化。换句话说,在使用多个流发射数据单元时,接收器缓冲器及/或解包化缓冲器可能够处置交错式包化(例如,处置不按解码次序发射及/或接收的数据单元)O
[0061]RTP包经由会话发射以将信息(例如,经编码视频数据)从一个装置携载到另一装置。RTP包包含RTP标头及RTP有效负载。RTP标头包含用于指定有效负载识别符的有效负载类型栏位。有效负载识别符指示对应RTP有效负载的格式。如由RTP标准所定义,有效负载识别符96到127经保留用于在会话期间动态定义的RTP有效负载。S卩,有效负载识别符值96到127可将RTP有效负载映射到用于对应RTP会话的持续时间的指定格式(或配置文件)。在一些实例中,用于会话的RTP有效负载的指定格式可使用SDP参数来定义。举例来说,SDP参数可指定对于特定会话,有效负载识别符值98指示用于RTP有效负载的HEVC配置文件。因此,经由会话发送的RTP包可包含含有使用HEVC标准编码的视频数据的RTP有效负载。由此,RTP有效负载可包含NAL单元。
[0062]在用于RTP有效负载的HEVC配置文件的一个实例中,RTP有效负载的前两个字节可表示RTP有效负载标头。对于遵守用于HEVC的RTP有效负载格式的一些RTP有效负载,RTP有效负载标头由与用于HEVC的NAL单元标头相同的字段组成。
[0063]图2是展示HEVC NAL单元标头的结构的概念图。一般来说,HEVC维持H.264的NAL单元概念,但具有几处修改。NAL单元标头中的字段的语义如HEVC WDlO中所指定,且为方便起见而在下文简要描述。除了每一字段的名称及大小之外,还提供HEVC WDlO中的对应语法元素名称。出于描述的目的,NAL单元的有效负载数据在本文中是指NAL单元的排除NAL单元标头的部分。S卩,NAL单元可由NAL单元标头(例如,NAL单元的字节I及2)及NAL单元有效负载(例如,NAL单元的字节3到N)组成。
[0064]如图1的实例中所示,语法元素F为单个位且称为forbidden_zero_bit。根据HEVC WD10,F具有值零。S卩,HEVC WDlO指定语法元素F的值I构成语法违反。将此位包含在NAL单元标头中使得能够经由MPEG-2传输系统传输HEVC视频(例如,以避免启动代码仿真)。
[0065]如图2的实例中所示,NAL单元标头还包含语法元素类型。类型语法元素在长度上为6位,且称为nal_unit_type。此字段指定如在HEVC WDlO的表7_1中定义的NAL单元类型。为参考所有当前定义的NAL单元类型及其语义,请参考HEVC WDlO中的章节7.4.1。
[0066]如图2的实例中所示,语法元素LayerID也包含于NAL单元标头中。LayerID语法元素在长度上为6位,且称为nuh_layer_id。当前HEVC WDlO指定LayerID应等于值零。在HEVC的未来可缩放或3D视频译码扩展中,LayerID语法元素可用以识别可存在于经译码视频序列中的额外层,例如空间可缩放层、质量可缩放层、纹理视图或深度视图。
[0067]如图2的实例中所示,NAL单元标头还包含语法元素TID。TID语法元素在长度上为3位,且称为nuh_temporal_id_plusl。TID语法元素指定NAL单元的时间识别符加I。TemporalID的值因此等于TID减I。在HEVC WDlO中不允许TID值为O以确保在NAL单元标头中存在至少一个位等于1,以便防止NAL单元标头中的启动代码仿真。
[0068]在用于RTP的HEVC有效负载规范中,指定四种不同类型的RTP有效负载结构。接收器可经由RTP有效负载标头中的类型字段识别RTP有效负载的类型。
[0069]用于HEVC的四个不同RTP有效负载结构如下:
[0070]〇单个NAL单元包:单个NAL单元包在RTP有效负载中含有单个NAL单元(例如,NAL单元标头及NAL单元有效负载数据)。先前,NAL单元的NAL单元标头还将充当RTP有效负载标头。即,由单个NAL单元包组成的RTP有效负载并不包含RTP有效负载标头,且替代地依赖于NAL单元标头来充当RTP有效负载标头。
[0071]〇聚合包(AP):先前,AP在RTP有效负载中含有一或多个NAL单元。AP的NAL单元是来自一个存取单元内。如由HEVC WDlO所定义,存取单元为一组NAL单元,其根据指定分类规则与彼此相关联且在解码次序上是连续的,且含有确切的一个经译码图片。
[0072]O分段单元(FU):FU含有单个NAL单元的子集。
[0073]〇携载RTP包的有效负载内容信息(PACI):携载RTP包的PACI含有RTP有效负载标头(出于效率考虑而不同于其它有效负载报头)、有效负载标头扩展结构(PHES)及PACI有效负载。
[0074]先前,指定以下包化规则:在发射模式(例如,tx模式)等于“MST”或sprop-depack-buf-nalus参数的值大于O时,不使用单个NAL单元包。换句话说,在正经由MST接收RTP数据时及/或在允许解包化缓冲器接收无序RTP包时,不允许包化成RTP有效负载而没有对应解码次序编号的NAL单元,且用于单个NAL单元包的先前RTP包格式并不含有解码次序编号信息。在没有解码次序编号的情况下,NAL单元无法被RTP接收器以正确次序送回。如果将以MST模式发射单个NAL单元或在指定解包化缓冲器(例如,通过sprop-depack-buf-nalus参数)时,AP用以将单个NAL单元囊封在一个RTP包中。然而,将单个NAL单元囊封在AP中导致增大的开销及减小的频宽,这是因为AP包含四个字节的信息(即,NAL单元大小字段及RTP有效负载标头),其在发射单个NAL单元时是不必要的。
[0075]图3是展示用于聚合包的实时传输协议(RTP)有效负载格式的结构的概念图。聚合包(AP)使得能够减小用于小NAL单元(例如大多数非VCL (视频译码层)NAL单元,其大小通常仅为几个八位元组)的包化开销。
[0076]如图3的实例中所示,AP包含RTP有效负载标头、集合单元及任选RTP填充。AP的RTP有效负载标头遵循与如描述于图2中的NAL单元标头相同的格式。S卩,AP的RTP有效负载标头包含F字段、类型字段、LayerID字段及TID字段。在AP的RTP有效负载标头中,如果AP中的每一集合NAL单元的F位等于零,那么F位等于O。否则,F位等于I。AP的RTP有效负载标头中的类型字段的值等于48。AP的RTP有效负载标头中的LayerID字段的值等于AP中的所有集合NAL单元当中的最低LayerID值。AP的RTP有效负载标头中的TID字段的值等于所有集合NAL单元当中的最低TID字段值。
[0077]AP将NAL单元集合到一个存取单元内。即,AP可包含来自同一存取单元的一或多个NAL单元。待携载于AP中的每一 NAL单元囊封于集合单元中。集合于一个AP中的NAL单元处于NAL单元解码次序。AP可视需要携载尽可能多的集合单元。
[0078]图4是展示聚合包中的第一集合单元的结构的概念图。AP中的第一集合单元包含任选的16位较低解码次序编号(Decoding Order Number Lower, D0NL)字段(以网络字节次序)。DONL字段的语义可与2014年3月27日申请的第14/228,164号美国申请案中呈现的那些相同。更具体来说,当存在于RTP包有效负载中时,DONL字段的值等于对应NAL单元的解码次序编号的16个最低有效位的值。
[0079]如图4中所展示,AP中的第一集合单元还包含16位无符号字段(“NALU大小”字段),其含有指示NAL单元的大小(以字节计)的大小信息(以网络字节次序)。NALU大小字段内的大小信息排除与NALU大小字段相关联的位的两个八位字节,但包含与NAL单元自身内的NAL单元标头相关联的位。
[0080]如图4中所展示,NALU大小字段之后为NAL单元自身,如上文所提及,所述NAL单元包含NAL单元标头及NAL单元有效负载。S卩,集合单元由指示所含NAL单元的解码器次序编号的DONL字段、指示所含NAL单元的大小的大小字段(例如,NALU大小字段)及NAL单元自身组成。
[0081]如果发射模式等于“MST”及/或sprop-depack-buf-nalus参数的值大于0,那么DONL字段存在于AP中的第一集合单元中。此外,如果发射模式等于“MST”及/或sprop-depack-buf-nalus参数的值大于0,那么AP中的每一后续集合单元将包含解码次序编号差(DOND)字段。当存在于AP的后续集合单元中时,DOND字段的值指示当前集合NAL单元(例如,当前集合单元中的NAL单元)的解码次序编号值与同一 AP中的先前集合NAL单元(例如,先前集合单元中的NAL单元)的解码次序编号值之间的差。
[0082]RTP有效负载格式的此设计(一般来说)或具体来说,HEVC RTP有效负载格式具有以下问题。为了在使用多流发射(MST)时及/或在使用交错式包化(例如,以SST或MST)(如由例如sprop-depack-buf-nalus参数所指示)时将单个NAL单元囊封于RTP包中,必须使用AP (例如,不可使用单个NAL单元包)。S卩,因为RTP接收器至少部分地基于解码次序编号将NAL单元提供到视频解码单元,因此不按解码次序编号发送的NAL单元应以对应解码器次序编号来发送。然而,用于RTP有效负载的单个NAL单元包格式不包含解码次序编号的指示。因此,单个NAL单元将必须在具有结构化为AP的RTP有效负载的RTP包中发送。
[0083]使用AP用于在RTP包中发送单个NAL单元需要包含与NAL单元大小字段(例如,图4的NALU大小字段)相关联的两个字节且重复两字节NAL单元标头。在AP仅含有单个集合单元时,集合NAL单元的大小是不必要的。即,因为解包模组不需要在AP内的多个集合单元之间进行区分(例如,因为仅存在一个集合单元),因此不需要指定集合NAL单元的长度。此外,包含RTP有效负载标头(图3中所展示的有效负载标头)及NAL单元标头(图4中所展示的F字段、类型字段、LayerID字段及TID字段)是冗余的。S卩,包含单个NAL单元的AP将具有与唯一集合NAL单元的NAL单元标头几乎相同的RTP有效负载标头。唯一差异将为类型字段的值。在RTP有效负载标头中,类型字段的值将为48 (例如,以表示RTP有效负载为AP),而在NAL单元标头中,类型字段的值可能不同(例如,以指示NAL单元类型)。因此,在启用交错包化时及/或在以多流发射模式操作时(例如,在RTP中处于MST模式中时),对于含有单个NAL单元的每一包,四个字节是浪费的。换句话说,对于仅含有单个集合单元的每一所发送AP,不需要四个字节的数据。
[0084]由此,用于RTP有效负载格式的此设计的问题在于,在MST模式下及/或在sprop-depack-buf-nalus参数的值大于O时,且在发射用于单个NAL单元的RTP有效负载时,用于RTP包的有效负载必须囊封为含有单个NAL单元的AP。此导致RTP有效负载具有长度为16位的RTP有效负载标头,DONL字段具有16位的长度且NALU大小字段具有16位的长度,随后为NAL单兀(其自身包含16位的分尚(即,与RTP有效负载标头分尚)N
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1