一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

针对交互式客户端的全景视频的广播流的制作方法

2022-03-02 01:26:49 来源:中国专利 TAG:

针对交互式客户端的全景视频的广播流
1.本技术是申请人为弗劳恩霍夫应用研究促进协会、申请日为2017年3月28日、申请号为201780046872.3、发明名称为“针对交互式客户端的全景视频的广播流”的分案申请。
技术领域
2.实施例涉及流复用器。另外的实施例涉及流解复用器。另外的实施例涉及视频流。一些实施例涉及针对交互式客户端的全景视频的广播流。


背景技术:

3.感兴趣区域(roi)流,即,交互式全景流,正变得越来越流行。这种流媒体服务背后的想法是在非常宽的角度和高分辨率视频内进行导航,从而在接收器侧仅显示整个视频的一部分,即,roi。
4.通常,整个全景视频以非常高的分辨率编码,例如,16k,并且不能被原样发送到接收器,因为它不能被现有例如4k的硬件解码。


技术实现要素:

5.因此,根据本技术的第一方面,本发明的目的是提供一种概念,其使得即使全景视频包括高于解码器能够解码的分辨率,也允许将全景视频发送到解码器。
6.该目的通过第一方面的独立权利要求解决。
7.第一方面的实施例提供了一种包括接收接口和数据流形成器的流复用器。接收接口被配置为接收视频流的视频图像的至少两个不同空间段或不同序列空间段组中的每一个的编码数据。数据流形成器被配置为将至少两个不同空间段或不同序列空间段组中的每一个的编码数据封包到单独子流中,并在输出处提供单独子流。
8.实施例提供了一种包括数据流形成器和输出接口的流解复用器。数据流形成器被配置为从单独子流组中选择性地提取至少两个单独子流,所述至少两个单独子流包含编码视频流的视频图像的不同空间段或不同序列空间段组的编码数据,其中数据流形成器被配置为将所述至少两个单独子流组合为包含编码视频流的视频图像的不同空间段或不同序列空间段组的编码数据的数据流。
9.在实施例中,为了发送包括高于解码器可以解码的分辨率的全景视频,在发射器侧,编码视频流的视频图像的不同空间段或不同空间段组的编码数据被封包到单独子流中,以获得单独子流组。在接收器侧,从该单独子流组中,提取单独子流的适当子集(即,仅一部分)并将其组合为包含分别编码视频流的视频图像的空间段或序列空间段组的适当子集(即,仅一部分)的编码数据的数据流。因此,解码数据流的解码器可以仅解码视频流的视频图像的子区域,该子区域由数据流中包含的编码数据中编码的空间段或空间段组来限定。
10.另外的实施例提供了一种用于流复用的方法,该方法包括:
[0011]-接收视频流的视频图像的至少两个不同空间段或不同序列空间段组中的每一个
的编码数据;以及
[0012]-将所述至少两个不同空间段中的每一个的编码数据封包到单独子流中。
[0013]
另外的实施例提供了一种用于流解复用的方法,该方法包括:
[0014]-从单独子流组中选择性地提取至少两个单独子流,所述至少两个单独子流包含编码视频流的视频图像的不同空间段或不同序列空间段组的编码数据;以及
[0015]-将所述至少两个单独子流组合为包含编码视频流的视频图像的不同空间段或不同序列空间段组的编码数据的数据流。
[0016]
另外的实施例提供了一种编码器,该编码器被配置为通过编码视频流的视频图像的至少两个不同空间段或不同序列空间段组来编码视频流的视频图像,使得编码数据包括至少两个切片。编码器可以被配置为提供指示是否满足编码约束的信令信息。当去除至少两个切片的至少一个切片头,同时关于编码顺序维持至少两个切片的第一切片的切片头并且使用第一切片头级联至少两个切片或至少两个切片的适当子集产生符合标准的数据流时,满足编码约束。
[0017]
另外的实施例提供一组单独子流,其中单独子流中的每个包含编码视频流的视频图像的不同空间段或不同序列空间段组的编码数据。
[0018]
有利的实施方式在从属权利要求中解决。
[0019]
实施例提供了用于编码视频流的发射器。发射器包括编码阶段和流复用器。编码阶段被配置为对视频流的视频图像的至少两个不同空间段或不同序列空间段组进行编码,以获得至少两个不同空间段或不同序列空间段组中的每一个的编码数据。流复用器包括接收接口,该接收接口被配置为接收视频流的视频图像的至少两个不同空间段或不同序列空间段组中的每一个的编码数据。此外,流复用器包括数据流形成器,该数据流形成器被配置为将至少两个不同空间段中的每一个的编码数据封包到单独子流中,并在输出处提供单独子流。
[0020]
在实施例中,发射器的编码阶段可以被配置为在空间段中构造视频流的视频图像并且单独编码空间段或序列(关于编码顺序排序)空间段组以获得空间段或序列空间段组中的每一个的编码数据。发射器的数据流形成器可以被配置为将空间段或序列空间段组中的每一个的编码数据封包到单独子流中,并在发射器输出处提供单独子流。
[0021]
例如,发射器的编码阶段可以被配置为编码第一空间段或第一组序列空间段以获得第一编码数据,并且编码第二空间段或第二组序列空间段以获得第二编码数据。发射器的数据流形成器可以被配置为在第一子流或第一组子流中封包第一编码数据,并且在第二子流或第二组子流中封包第二编码数据。
[0022]
在实施例中,发射器的编码阶段可以被配置为接收多个视频流,每个视频流包含视频图像的图像段,即,包含在多个视频流中的图像段一起形成视频图像。因此,编码阶段可以被配置为在空间段中构造视频流的视频图像,使得每个空间段或空间段组与视频流中的一个对应。
[0023]
在实施例中,可以发射、广播或多播单独子流或单独子流组。
[0024]
在实施例中,编码阶段可以被配置为单独编码至少两个不同空间段,使得至少两个不同空间段或不同序列空间段组中的每一个的编码数据是自身可解码的。例如,编码阶段可以被配置为使得在不同空间段之间不共享信息。换句话说,编码阶段可以被配置为对
视频流进行编码,使得以这样的方式约束帧间预测,即,使得不从先前视频图像的不同空间段预测视频图像的空间段。
[0025]
在实施例中,发射器的编码阶段可以被配置为对视频流的视频图像的至少两个不同空间段或不同序列空间段组进行编码,使得至少两个不同空间段或不同序列空间段组中的每一个的编码数据包括至少一个切片,其中发射器的数据流形成器可以被配置为将每个切片封包在一个单独子流中。
[0026]
例如,发射器的编码阶段可以被配置为对每个空间段进行编码,使得每个空间段的编码数据包括一个切片,即,每个空间段一个切片。此外,发射器的编码阶段可以被配置为对每个空间段进行编码,使得每个空间段的编码数据包括两个或更多个切片,即,每个空间段两个或更多个切片。此外,发射器的编码阶段可以被配置为对每个序列空间段组进行编码,使得每个序列空间段组的编码数据包括一个切片,即,每组序列空间段(例如,两个或更多个空间段)一个切片。此外,发射器的编码阶段可以被配置为对每组序列空间段进行编码,使得每组序列空间段的编码数据包括两个或更多个切片,即,每组序列空间段(例如,两个或更多个空间段)两个或更多个切片,诸如每个空间段一个切片、每个空间段两个或更多个切片等。
[0027]
在实施例中,发射器的数据流形成器可以被配置为将每个切片封包在一个单独子流中而没有切片头。例如,发射器的数据流形成器可以被配置为在将切片封包在单独子流中之前从切片中去除切片头。
[0028]
在实施例中,数据流形成器可以被配置为提供包括合适的切片头和所需参数集的另外的单独流(或者多于一个,例如,不同的图像大小)。例如,合适的切片头可以包含引用新图像大小的参数集。
[0029]
在实施例中,发射器的数据流形成器可以被配置为生成子流描述符,该子流描述符向每个单独子流指派唯一的子流标识。
[0030]
例如,数据流形成器可以被配置为提供单独子流组,单独子流组包括单独子流和子流描述符,例如,包括子流描述符的节目映射表(例如,在节目映射表中,子流描述符可以被指派给每个子流,即,每个子流一个子流描述符)。子流描述符可以用于基于唯一的子流标识在单独子流组中找到单独子流。
[0031]
在实施例中,发射器的数据流形成器可以被配置为生成用信号通知属于视频流的视频图像的子区域的子流标识的图案的子区域描述符,或者换句话说,对于至子区域的视频流的视频图像的至少一个空间细分中的每一个,用信号通知用于每个子区域的一个子流标识集合。
[0032]
例如,数据流形成器可以被配置为提供一组单独子流,该组单独子流包括单独子流和子区域描述符,例如,包括子区域描述符的节目映射表。子区域描述符描述哪些子流包含编码空间段或序列空间段组的编码数据,这些空间段或序列空间段组一起形成视频流的视频图像的有效子区域(例如,连续子区域)。子区域描述符可以用于识别属于视频流的视频图像的合适子区域的子流的适当子集。
[0033]
在实施例中,发射器的编码阶段可以被配置为将至少两个不同空间段或不同序列空间段组的编码数据组合到一个切片。发射器的数据流形成器可以被配置为在切片部分中的空间段边界处分割一个切片或一个切片的比特流,并且将每个切片部分封包在一个子流
中。
[0034]
在实施例中,可以以每个视频图像一个切片将至少两个不同空间段或不同序列空间段组编码到视频流中。因此,数据流形成器可以被配置为对于每个视频图像,将在其中编码有区块(tile)中的相应一个区块或区块组的切片的一部分封包到单独子流中,而对于至少两个区块或区块组中的至少一个没有切片的切片头。
[0035]
例如,可以通过编码阶段对至少两个不同空间段或不同序列空间段组进行熵编码。因此,编码阶段可以被配置为对至少两个不同空间段或不同序列空间段组进行熵编码,使得至少两个不同空间段或不同序列空间段组中的每一个是自身可解码的,即,使得在至少两个不同空间段或不同序列空间段组与视频流的先前视频图像的其它至少两个不同空间段或不同序列空间段组之间不共享编码信息。换句话说,编码阶段可以被配置为在编码不同空间段中或不同空间段组的每一个之后重新初始化不同空间段或不同空间段组的熵编码。
[0036]
在实施例中,发射器可以被配置为用信号通知流类型。
[0037]
例如,第一流类型可以用信号通知根据在子区域描述符中找到的信息聚合单独子流产生符合标准的数据流。
[0038]
例如,第二流类型可以用信号通知根据在子区域描述符中找到的信息聚合单独子流产生需要被修改或进一步处理的数据流,以获得符合标准的数据流的版本。
[0039]
在实施例中,发射器的数据流形成器可以被配置为提供包括单独子流的传输流。传输流可以是例如mpeg-2传输流。
[0040]
在实施例中,子流可以是基本流。根据替代实施例,多个子流可以通过一个基本流被共同传送。
[0041]
在实施例中,视频流的视频图像的空间段可以是区块。例如,视频流的视频图像的空间段可以是hevc区块。
[0042]
在实施例中,发射器的编码阶段可以是符合标准的编码阶段。例如,发射器的编码阶段可以是符合hevc(hevc=高效视频编码)标准的编码阶段。
[0043]
在实施例中,流复用器可以被配置为用信号通知两种流类型中的至少一种。第一流类型可以用信号通知与至子区域的视频流的视频图像的至少一个空间细分中的一个对应的单独子流的适当子集的组合产生符合标准的数据流。第二流类型用信号通知与至子区域的视频流的视频图像的至少一个空间细分中的一个对应的单独子流的适当子集的组合产生需要被进一步处理的数据流(例如,是否必须添加或修改头信息,或者是否必须调整参数集),以获得符合标准的数据流的版本。
[0044]
在实施例中,对视频流的视频图像的至少两个不同空间段或不同序列空间段组进行编码,使得编码数据包括至少两个切片。因此,编码数据可以包括指示是否满足编码约束的信令信息,或者其中数据流形成器被配置为确定是否满足编码约束。当去除至少两个切片的至少一个切片头,同时关于编码顺序维持至少两个切片的第一切片的切片头并且使用第一切片头级联至少两个切片或至少两个切片的适当子集产生符合标准的数据流时,满足编码约束。流复用器可以被配置为根据编码约束用信号通知两种流类型中的至少一种(例如,如果满足编码约束则用信号通知第一流类型和/或否则用信号通知第二流类型)。此外,复用器可以被配置为即使满足编码约束,但是必须调整参数集以便获得符合标准的数据流
时,也用信号通知第二流类型。
[0045]
其它实施例提供接收器。接收器包括流解复用器和解码阶段。流解复用器包括数据流形成器和输出接口。数据流形成器被配置为从单独子流组中选择性地提取至少两个单独子流,所述至少两个单独子流包含编码视频流的视频图像的不同空间段或不同序列空间段组的编码数据,其中数据流形成器被配置为将至少两个单独子流组合为包含编码视频流的视频图像的不同空间段或不同序列空间段组的编码数据的数据流。输出接口被配置为提供数据流。解码阶段被配置为对包含在数据流中的编码数据进行解码,以获得视频流的视频图像的至少两个不同空间段。
[0046]
在实施例中,解码数据流的解码阶段可以仅解码视频流的视频图像的子区域,该子区域由数据流中包含的编码数据中编码的空间段或空间段组来限定。
[0047]
在实施例中,接收器可以被配置为例如从上述发射器接收单独子流组,单独子流组包括单独子流。单独子流中的每一个可以包括编码视频流的视频图像被构造在其中的、多个空间段中的空间段或序列空间段组的编码数据。
[0048]
在实施例中,接收器的数据流形成器可以被配置为从单独子流组中选择性地提取单独子流的适当子集,单独子流的适当子集包含编码视频流的视频图像的空间段或序列空间段组的适当子集的编码数据。接收器的数据流形成器可以被配置为将从单独子流组中提取出的单独子流组合为包含编码视频流的视频图像的空间段或不同序列空间段组的适当子集的编码数据的新数据流。接收器的解码阶段可以被配置为对包含在数据流中的编码数据进行解码,以获得视频流的视频图像的空间段或序列空间段组的适当子集。
[0049]
例如,接收器的数据流形成器可以被配置为仅选择性地提取包含在单独子流组中的多个单独子流中的一部分,并将从中提取的单独子流组合为新数据流。由于从单独子流组中提取的单独子流仅包含视频流的视频图像被构造在其中的空间段的一部分,因此从单独子流组中提取的单独子流组合成的新数据流也包含仅编码视频流的视频图像被构造在其中的空间段的一部分的编码数据。
[0050]
在实施例中,接收器的解码阶段可以被配置为对仅包含在多个单独子流的提取子集中包含的编码数据的数据流进行解码,从而解码视频流的视频图像的子区域,视频图像的子区域小于视频图像,并且子区域由在多个单独基本流的提取子集中包含的编码数据中编码的空间段来限定。
[0051]
在实施例中,接收器的数据流形成器可以被配置为从单独子流组中提取子区域描述符,子区域描述符用信号通知属于视频流的视频图像的子区域的子流标识的图案,其中数据流形成器可以被配置为使用子区域描述符选择要从单独子流组中提取的子流的子集。
[0052]
例如,接收器的数据流形成器可以被配置为从单独子流组中提取子区域描述符,例如,包括子区域描述符的节目映射表。子区域描述符描述哪些子流包含编码空间段或序列空间段组的编码数据,这些空间段或序列空间段组一起形成视频流的视频图像的有效子区域(例如,连续子区域)。基于子区域描述符,接收器的数据流形成器可以选择属于视频流的视频图像的合适子区域的、用于提取的子流的适当子集。
[0053]
在实施例中,接收器的数据流形成器可以被配置为从单独子流组中提取子流标识符,该子流标识符向每个单独子流指派唯一的子流标识,其中数据流形成器可以被配置为使用子流描述符定位(localize)要从单独子流组中提取的子流的子集。
[0054]
例如,接收器的数据流形成器可以被配置为从单独子流组中提取子流描述符,例如,包括子流描述符的节目映射表。基于向每个单独子流指派唯一子流标识的子流描述符,接收器的数据流形成器可以在单独子流组中识别(例如,找到或定位)单独子流。根据替代实施例,适配字段(adaptation field)中的描述符用于识别属于某个子流的数据包。
[0055]
在一些实施例中,接收器可以包括数据流处理器127。数据流处理器可以被配置为如果由数据流形成器121提供的数据流126不符合标准,即,不能由解码阶段124解码,则进一步处理数据流126,以获得数据流126的处理版本126'(即,符合标准的版本)。如果需要进一步处理,则发射器100可以在流类型中用信号通知。
[0056]
例如,第一流类型可以用信号通知根据在子区域描述符中找到的信息聚合单独子流产生符合标准的数据流。因此,如果用信号通知第一流类型,则不需要进一步处理数据流126,即,可以绕过数据流处理器127,并且解码阶段124可以直接解码由数据流形成器122提供的数据流126。第二流类型可以用信号通知根据在子区域描述符中找到的信息聚合单独子流产生需要被修改或进一步处理的数据流,以获得符合标准的数据流的版本。因此,如果用信号通知第一流类型,则需要进一步处理数据流126,即,在这种情况下,数据流处理器127可以进一步处理数据流126以获得数据流126的处理版本126'(即,符合标准的版本)。
[0057]
在实施例中,流解复用器可以被配置为从至少两种流类型中识别用信号通知的单独子流组的流类型。第一流类型可以指示与至子区域的视频流的视频图像的至少一个空间细分中的一个对应的单独子流的适当子集的组合产生符合标准的数据流。第二流类型指示与至子区域的视频流的视频图像的至少一个空间细分中的一个对应的单独子流的适当子集的组合产生需要进一步处理的数据流,以获得符合标准的数据流的版本。流解复用器可以包括数据流处理器,该数据流处理器被配置为使用包含在单独子流组中的至少一个子流中的处理信息来进一步处理数据流,以获得数据流的符合标准的版本。
[0058]
在实施例中,单独子流组可以是传输流。传输流可以是例如mpeg-2传输流。
[0059]
在实施例中,子流可以是基本流。
[0060]
在实施例中,视频流的视频图像的空间段可以是区块。例如,视频流的视频图像的空间段可以是hevc区块。
[0061]
在实施例中,接收器的数据流形成器可以被配置为将从单独子流组中提取出的单独子流组合为符合标准的数据流。数据流可以是例如符合hevc标准的数据流。
[0062]
在实施例中,接收器的解码阶段可以是符合标准的解码阶段。例如,接收器的解码阶段可以是符合hevc标准的解码阶段。
[0063]
在实施例中,由发射器的编码阶段提供的编码数据形成编码视频流。
[0064]
在实施例中,编码视频流包括使用至少两个切片编码视频流的视频图像的至少两个不同空间段或不同序列空间段组的编码数据。编码视频流包括指示是否满足编码约束的信令信息,其中当去除至少两个切片的至少一个切片头,同时关于编码顺序维持至少两个切片的第一切片的切片头并且使用第一切片头级联至少两个切片或至少两个切片的适当子集产生符合标准的数据流时,满足编码约束。
[0065]
例如,信令信息可以指示视频图像的第一切片和所有其它切片的切片头的语法元素的值在去除除第一切片的切片头之外的所有切片头并且级联数据产生符合标准的编码视频流的程度上是类似的。
[0066]
在实施例中,信令信息以视频可用性信息或补充增强信息中的标记的形式存在于编码视频数据流中。
[0067]
在实施例中,编码视频流(例如,由编码阶段提供)可以包括每个视频图像的多于一个切片(例如,每个空间段一个具有相应切片头的切片)和指示不同空间段满足编码约束的信令信息,诸如,使用相同的参考结构或切片类型,即,相应切片头的语法元素是相似的(例如,切片类型),其方式是仅需要第一切片头并且如果该单个切片头与对应于多于一个空间段的任何数量的切片有效载荷数据级联;所得到的流是符合的视频流,前提是只要适当的参数集被前置到流之前(即,只要参数集例如被修改)。换句话说,如果存在信令信息,则可以剥离除第一切片之外的所有切片头,并且在没有它们的切片头的情况下级联第一切片和所有其它切片产生符合标准的编码视频流。在hevc的情况下,上述约束的信令信息可以以视频可用性信息(vui)或补充增强信息(sei)中的标记的形式存在于编码视频流中。
[0068]
根据本技术的第二方面,本发明的目的是提供一种概念,其允许以允许在接收侧更容易处理的方式发送仅与原始图像的段相关的子流或部分数据流。
[0069]
该目的通过第二方面的独立权利要求解决。
[0070]
根据第二方面,以允许在接收侧更容易处理的方式发送仅与原始图像的段相关的子流或部分数据流通过以下来实现:向形成被参数化以便编码第一图像的自包含数据流的第一集合的一个或多个nal单元添加第二集合的一个或多个nal单元,第一集合的nal单元是从第一集合的一个或多个nal单元类型中选择的,第二集合的一个或多个nal单元中的每一个是第二集合的一个或多个预定nal单元类型中的一个,与第一集合不相交,并且被确定为导致传统(legacy)解码器忽略相应的nal单元。因此,通过对传统解码器透明地呈现部分数据流的原始版本的部分,可以保留该部分,该部分在从部分数据流重建特定段时会干扰传统解码器,但无论如何对这些原始部分感兴趣的处理装置可以推导它们。
附图说明
[0071]
本文参考附图描述本发明的实施例。
[0072]
图1示出了根据实施例的发射器的示意性框图;
[0073]
图2示出了根据实施例的接收器的示意性框图;
[0074]
图3示出了以多个区块构造的视频流的视频图像的说明性视图,以及由多个区块的适当子集限定的视频图像的子区域的说明性视图;
[0075]
图4示出了传输流解复用器的示意性框图;
[0076]
图5示出了以多个区块构造的视频流的视频图像的说明性视图,以及当作为单独基本流发送时形成符合的比特流的单个区块和区块组合的说明性视图;
[0077]
图6示出了以多个区块构造的视频流的视频图像的说明性视图,以及由多个区块的适当子集限定的视频图像的子区域以及用于该子区域的区块的偏移图案的说明性视图;
[0078]
图7示出了根据实施例的用于流复用的方法的流程图;
[0079]
图8示出了根据实施例的用于流解复用的方法的流程图;
[0080]
图9示出了图示图像或视频被编码成为数据流的示意图,该图像或视频在空间上被划分成两个段,使得产生两个片段,每个片段一个段,准备复用到段特定的部分数据流上;
[0081]
图10图示了根据实施例的图9的片段的nal单元结构,以便图示妨碍将其中一个片段切掉直接作为自包含的段特定的数据流的情况;
[0082]
图11a和11b图示了通过修改参数集nal单元和/或切片nal单元从图10中的对应片段导出的自包含的段特定的数据流;
[0083]
图12示出了流格式化器及其操作模式的示意性框图,在该操作模式下,流格式化器将图9的数据流分布到两个部分数据流上,每个段一个,其中一个部分数据流准备好由传统解码器进行处理,用于将对应的段重建为自包含的图像,这通过将特定nal单元添加/插入到图11a和11b中所绘出的修改后的部分数据流中来实现;
[0084]
图13示出了处理装置及其操作模式的示意性框图,在该操作模式下,处理装置再次使用对传统解码器透明的插入的特殊nal单元从图12的部分数据流重建自包含数据流302';
[0085]
图14示出了图12的特殊类型的添加的nal单元的示例,即,其携带关于传统解码器隐藏的隐藏nal单元;
[0086]
图15图示了示出根据图12添加的第二类型的nal单元的机制的示意图,这些nal单元形成隐藏指令以忽略对应数据流中的后续nal单元,该隐藏指令被传统解码器忽略;以及
[0087]
图16示出了图示流格式化器的场景的示意图,该流格式化器以类似于图12的方式将数据流分布到部分数据流上,即,其中一个被转换为准备好由传统解码器处理的自包含数据流,用于从中将对应的段重建为自包含图像;附加地准备部分数据流,其方式是使得如由指令所指示的那样级联该部分数据流,该指令是通过插入的并假定由于是不允许的nal单元类型而被传统解码器忽略的特定nal单元用信号通知的;还产生符合传统的数据流,该数据流可能经过传统解码器的解码以重建整个图像;这里,使用形成隐藏指令的nal单元来忽略后续nal单元的一部分;以及
[0088]
图17示出了比图16更详细地图示通过部分跳过在图16的实施例中使用的nal单元用信号通知的修改和指令机制的示意图。
[0089]
具有相同或等同功能的一个或多个相同或等同元素在以下描述中由相同或等同的附图标记表示。
具体实施方式
[0090]
在以下描述中,阐述了许多细节以提供对本发明实施例的更彻底的解释。但是,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本发明的实施例。在其它情况下,众所周知的结构和设备以框图形式示出而不是详细示出,以避免模糊本发明的实施例。此外,除非另外特别说明,否则下文描述的不同实施例的特征可以彼此组合。
[0091]
虽然在以下描述和对应附图中,发射器和接收器、包括编码阶段和流复用器的发射器、以及包括流解复用器和解码阶段的接收器作为示例被讨论和示出并仅用于说明的目的,但是应该指出,本发明的实施例分别涉及流复用器和流解复用器。即,当实践本发明的实施例时,可以省略编码阶段和解码阶段。
[0092]
图1示出了根据本发明实施例的发射器100的示意性框图。发射器100包括流复用器103和编码阶段104。编码阶段104被配置为编码视频流102的视频图像110的至少两个不
同空间段108或不同序列(subsequent)空间段108组以获得至少两个不同空间段108或不同组的序列空间段108中的每一个的编码数据112。流复用器103包括接收接口105和数据流形成器106。接收接口105被配置为接收编码在编码数据中的视频流的视频图像的至少两个不同空间段或不同组的序列空间段中的每一个的编码数据。数据流形成器106被配置为将至少两个不同空间段108或不同组的序列空间段中的每一个的编码数据112封包到单独子流114中,并且在发射器输出处提供单独子流。
[0093]
发射器100的编码阶段104可以被配置为以空间段108构造视频流的视频图像110。例如,编码阶段104可以被配置为以n
×
m个空间段108构造视频流的视频图像110。n可以是描述视频流102的视频图像110被构造在其中的列的数量的自然数。m可以是描述视频流102的视频图像110被构造在其中的行的数量的自然数。因此,n和m中的一个可以大于或等于2,其中n和m中的另一个可以大于或等于1。
[0094]
如图1中的示例所示,编码阶段104可以被配置为以四列(n=4)和三行(m=3),即,以十二个空间段108构造视频流102的视频图像110。
[0095]
发射器100的编码阶段104可以被配置为对第一空间区段(例如,空间段108_1,1)或第一组连续空间段(例如,空间段108_1,1和108_1,2)进行编码以获得第一编码数据(例如,编码数据112_1),并且对第二空间段(例如,空间段108_1,2)或第二组连续空间段(例如,空间段108_1,3和108_1,4)进行编码以获得第二编码数据(例如,编码数据112_2)。发射器的数据流形成器可以被配置为将第一编码数据封包在第一子流(例如,子流114_1)或第一组子流(例如,子流114_1和114_2)中,并且将第二编码数据(例如,编码数据112_2)封包在第二子流(例如,第二子流114_2)或第二组子流中。
[0096]
如图1中的示例所示,发射器100的编码阶段104可以被配置为单独编码每个空间段108,以获得每个空间段108的编码数据,其中发射器100的数据流形成器106可以被配置为将每个编码数据112封包在一个单独子流114中,即,每个空间段一个编码数据和每个编码数据一个子流。但是,发射器100的编码阶段104也可以被配置为单独编码序列空间段组,以获得每个序列空间段组的编码数据,即,每个序列空间段组(即,两个或更多个序列空间段)一个编码数据。此外,发射器100的数据流形成器106还可以被配置为将每个编码数据112封包在多于一个单独子流中,即,每个编码数据一组单独子流(即,两个或更多个单独子流)。
[0097]
发射器100的数据流形成器106可以被配置为(在其输出处)提供包括单独子流114的单独子流组116。
[0098]
可以发射、广播或多播单独子流或单独子流组。
[0099]
图2示出了根据实施例的接收器120的示意性框图。接收器120包括流解复用器121和解码阶段。流解复用器包括数据流形成器122和输出接口123。数据流形成器122被配置为从单独子流组116中选择性地提取至少两个单独子流114,所述至少两个单独子流114包含视频流102的视频图像110的不同空间段108或不同组的序列空间段108的编码数据,其中数据流形成器122被配置为将至少两个单独子流114组合为包含编码视频流102的视频图像110的不同空间段108或不同组的序列空间段108的编码数据的数据流126。输出接口123被配置为提供数据流126。解码阶段124被配置为解码包含在数据流126中的编码数据,以获得视频流102的视频图像110的至少两个不同空间段108或不同组的序列空间段108。
[0100]
通过解码数据流126,解码阶段124可以仅解码视频流的视频图像的子区域109,子区域109由数据流中包含的编码数据中编码的空间段或空间段组限定,例如108_1,1和108_1,2。
[0101]
单独子流组116可以包括多个单独子流114,每个单独子流编码视频流的视频图像被构造在其中的多个空间段的不同空间段或不同组的序列空间段。例如,视频流的视频图像110可以在n
×
m个空间段108中构造。n可以是描述视频流102的视频图像110被构造在其中的列的数量的自然数。m可以是描述视频流102的视频图像110被构造在其中的行的数量的自然数。因此,n和m中的一个可以大于或等于2,其中n和m中的另一个可以大于或等于1。
[0102]
接收器120的数据流形成器122可以被配置为从单独子流组116中选择性地提取单独子流的适当子集(例如,子流114_1和114_2),单独子流的适当子集包含编码视频流102的视频图像110的空间段的适当子集(例如,空间段108_1,1和108_1,2)或序列空间段组(例如,第一组序列空间段108_1,1和108_1,2和第二组序列空间段108_1,3和108_1,4)的编码数据。接收器120的数据流形成器122可以被配置为将从单独子流组116中提取出的单独子流(例如,子流114_1和114_2)组合为新数据流126,该新数据流126包含编码视频流102的视频图像110的空间段的适当子集(例如,空间段108_1,1和108_1,2)或序列空间段组(例如,第一组序列空间段108_1,1和108_1,2和第二组序列空间段108_1,3和108_1,4)的编码数据。
[0103]
接收器120的解码阶段124可以被配置为对包含在数据流126中的编码数据进行解码,以获得视频流102的视频图像110的空间段的适当子集(例如,空间段108_1,1和108_1,2)或序列空间段组(例如,第一组序列空间段108_1,1和108_1,2和第二组序列空间段108_1,3和108_1,4),即,由数据流126中包含的编码数据中编码的空间段或空间段组限定的视频流的视频图像110的子区域109。
[0104]
如图2中的示例所示,由图1中所示的发射器100提供的单独子流组116包括十二个单独子流114_1至114_12。单独子流114_1至114_12的每个包含编码视频流102的视频图像110被构造在其中的十二个空间段108中的一个的编码数据,即,每个编码数据一个空间段和每个子流一个编码数据。数据流形成器122可以被配置为仅提取十二个单独子流114_1至114_12中的第一单独子流114_1和第二单独子流114_2。第一单独子流114_1包括编码视频流的视频图像110的第一空间段108_1,1的编码数据,其中第二单独子流114_2包括编码视频流的视频图像110的第二空间段108_1,2的编码数据。此外,数据流形成器122可以被配置为组合第一单独子流114_1和第二单独子流114_2,以获得新数据流126,新数据流包含编码视频流的视频图像的第一空间段108_1,1和第二空间段108_1,2的编码数据。因此,通过解码新数据流126,解码阶段获得视频流的视频图像的第一空间段108_1,1和第二空间段108_1,2,即,仅由数据流126中包含的编码数据中编码的第一空间段108_1,1和第二空间段108_1,2限定的视频流的视频图像110的子区域109。
[0105]
在一些实施例中,接收器120可以包括数据流处理器127。数据流处理器可以被配置为,如果由数据流形成器121提供的数据流126不符合标准,即,不可由解码阶段124解码,则进一步处理数据流126,以获得数据流126的处理版本126'(即,符合标准的版本)。如果需要进一步处理,则可以由发射器100以流类型进行信号通知。第一流类型可以表示或指示根据子区域描述符中找到的信息聚合单独子流产生符合标准的数据流。因此,如果用信号通
知第一流类型,则不需要进一步处理数据流126,即,可以绕过数据流处理器127,并且解码阶段124可以直接解码由数据流形成器122提供的数据流126。第二流类型可以表示或指示根据子区域描述符中找到的信息聚合单独子流产生的数据流需要被修改或进一步处理,以获得符合标准的版本的数据流。因此,如果用信号通知第二流类型,则需要进一步处理数据流126,即,在这种情况下,数据流处理器127可以进一步处理数据流126以获得数据流126的处理版本126'(即,符合标准的版本)。数据流处理器127可以使用包含在数据流126中的附加信息,例如,包含在子流组的子流114s和114p中的一个中的附加信息,来执行附加处理。子流114s可以包含一个或多个切片头,其中子流114p可以包含一个或多个参数集。如果子流组包含子流114s和114p,则数据流形成器122也可以提取这些子流。
[0106]
换句话说,数据流126可能需要附加处理,以便被形成为符合标准的数据流,该符合标准的数据流可以由解码阶段124如通过流类型所指示的那样被正确解码,即,在流类型(例如,如下所述的第一新流类型和第二新流类型)中指示是否需要进一步处理。该处理包括使用附加信息,该附加信息或者由编码阶段104放入到编码数据112中或者由数据流形成器106放入到子流114的一个中,并且随后被包含在数据流126中。通过使用附加信息,数据流处理器127具体调整数据流126中的编码参数(例如,参数集)和切片头,以反映待由123输出的116的实际子集,即,例如,在图像大小方面与112不同的数据流。
[0107]
在以下描述中,示例性地假设编码阶段是hevc编码阶段并且解码阶段是hevc解码阶段。但是,以下描述也分别适用于其它编码和解码阶段。
[0108]
此外,在以下描述中,示例性地假设单独子流组是传输流(例如,mpeg-2传输流),其中单独子流组的单独子流是基本流。
[0109]
可以使用“区块(tile)”概念生成hevc比特流,其破坏图像内预测依赖性(包括熵解码依赖性)。由编码器为每个这样的区块生成的数据可以被单独处理,例如,可以由一个处理器/核心处理。如果使用区块,则整个视频被构造为n
×
m个区块的矩形图案。可选地,每个区块可以被包括在不同切片中,或者许多区块可以被包括在同一切片中。可以以在不同区块之间不共享信息的方式配置编码器。对于某些用例,比如,呈现从大的全景中获取的较小窗口(即,感兴趣区域(roi)),仅需要解码区块的子集。特别地,hevc比特流可以以这样的方式编码,即,使得帧间预测以图像的区块不从先前图像的不同区块预测的方式被约束。
[0110]
在本文中,允许解码区块或区块的子集的比特流的一部分被称为子流。子流可以包括切片头,该切片头指示完整全景内的区块的原始位置。为了使用现有的硬件解码器,可以通过在解码之前调整指示区块位置的数据将这种子流转换成符合hevc标准的比特流。另外,当将子流转换为新的比特流126或126'时,也可以调整对切片头中的图像参数集(pps_id)的参考。因此,通过间接参考序列参数集,可以调整诸如图像大小的参数,并且产生符合hevc标准的比特流。
[0111]
如果包括所有区块的编码数据的整个比特流经由广播信道被发送到接收器,则能够解码较小roi的接收器可能无法处理与完整全景对应的大量数据。存在用于广播的不同传输协议,其中mpeg-2传输流(ts)被广泛使用。在mpeg-2系统标准中,ts被指定为具有固定长度的数据包序列,其携带用于识别复用流中的不同es的pid(数据包标识符)。pid 0用于携带pat(节目关联表),其通过指示每个pmt的pid指向一个或多个pmt(节目映射表)。在pmt内,节目映射部分用于表示属于节目的es的属性。但是,对于所有es的描述,这些部分限于
1021个字节,这通常包括视频并且可能包括多个音频流或字幕信息,因此子流和子区域信息必须非常紧凑。
[0112]
mpeg-2ts当前提供用于在包含完整全景的基本流(es)中发送的hevc编码视频比特流的信令。但是,包括在ts中的信令指示解码整个比特流所需的配置文件/层/级别以及解码器的能力是否不足以解码具有如此高级别的比特流,非常可能的是,如果目标显示器分辨率远小于整个全景,接收器将不会开始解码。
[0113]
在实施例中,比特流可以被分割成单独es,客户端可以从单独es中选择解码roi所需的子集。在后面描述在适配字段中使用描述符的替代选项,其中一个es传送多于一个子流。在任何情况下,这种子流的子集被称为子区域。在这种情况下,当前mpeg-2ts标准不提供用信令来告诉解码器子区域符合哪个级别。接收器也不能找出需要组合哪些es集合以便解码特定子区域。可以使用不同的子区域大小,即,子区域集合可以由某个数量的行和列组成,而另一个子区域集合可以由不同数量的行和列组成。下文将它们称为不同的子区域布局。
[0114]
图3示出了以多个区块108构造的视频流的视频图像110的说明性视图,以及由多个区块108的适当子集限定的视频图像110的子区域109的说明性视图。从多个区块108,可以聚集适当子集以获得视频图像的子区域109。举例来说,图3中所示的视频图像110被构造成n=6列和m=5行(或排),即,以nxm=30个区块。每个区块108的位置可以通过索引h和v来描述,其中h描述行并且v描述列。从这30个区块中可以聚集9个区块并形成视频图像的子区域109。
[0115]
在实施例中,流发送器可以生成作为单独es被包括在ts 116中的子流114。在es内部,每个编码图像可以被封装在pes(封包化基本流)数据包中。存在生成子流的若干选项。
[0116]
例如,根据第一选项,发射器100可以每个子流(即,一个区块108或固定组的序列区块108)生成一个切片,并将每个切片的切片数据封包到pes数据包中,从而建立每个子流的单独es。
[0117]
根据第二选项,发射器100可以每个子流生成一个切片,并且流复用器103可以在将每个切片的切片数据封包到pes数据包中之前剥离所有切片头,从而建立每个子流114的单独es。此外,发射器100可以生成另外的单独子流114s,例如,单独es,其提供合适的切片头,当该切片头与切片数据组合时,产生符合hevc的比特流。
[0118]
根据第三选项,发射器100可以仅生成包含所有区块的一个切片并且在区块边界处分割比特流。构成子流的数据部分可以被封包到pes数据包中,从而建立每个子流的单独es。此外,发射器100可以生成另外的单独子流114s,例如,单独es,其提供合适的切片头,当该切片头与切片数据组合时,产生符合hevc的比特流。
[0119]
根据第四选项,发射器100可以每个子流生成一个切片并且引入信令信息(例如,以vui(视频可用性信息)或sei(补充增强信息)中的标志的形式),该信令信息指示允许去除除第一切片之外所有切片的切片头的约束,并且流复用器103基于对该信令信息的解析在将每个切片的切片数据封包到pes数据包中之前剥离所有切片头,从而建立每个子流114的单独es。此外,发射器100可以生成另外的单独子流114s,例如,单独es,其提供合适的切片头,当该切片头与切片数据组合时,产生符合hevc的比特流。
[0120]
在第二和第四选项中,流复用器(103)可以将每个视频图像(每个dts(解码时间
戳))的单个切片头添加到另外的流114s,即,可以存在另外的流中的pes数据包包含单个切片头的约束,使得解复用器可以容易地重新布置pes数据包而不必检测视频图像边界。
[0121]
在第一选项中,发射器100还可以生成单独子流114s,例如,单独es,其提供由一个或多个参数集或适当信息组成的附加数据,诸如包含参数集和补充信息和关于它们与子区域的关联的信息的语法构造,以导出参数集,当该参数集与切片数据组合时,允许执行由数据流处理器127执行的提取处理,其然后产生符合的比特流。
[0122]
在第二、第三和第四选项中,发射器100还可以在相同的单独子流114,例如,单独es中包括一个或多个附加参数集,或生成附加的单独子流114p,例如,包括(仅)这些参数集的单独es。
[0123]
在第一种情况下,由向后兼容(左上)区块108_1,1和可选地一起形成矩形区域的序列区块组成的子流114可以使用hevc流类型和hevc标准中指定的用于hevc的传统描述符。
[0124]
第一新流类型可以表示es包含子流。该第一新流类型表示根据如下所述的子区域描述符中找到的信息的es的聚合产生符合的比特流。
[0125]
此外,第二新流类型可以表示es包含子流。该第二新流类型表示根据如下所述的子区域描述符中找到的信息的es的聚合产生在被解码之前需要由如下所指定的处理进行修改的比特流。
[0126]
该信息可以足以允许在ts解复用器(ts demux)中从合适子流集合聚合子区域,如将从下面图4的讨论中更清楚可见的。
[0127]
图4示出了根据实施例的传输流解复用器121的示意性框图。传输流解复用器121可以被配置为使用三个缓冲区140、142和144的链来重建每个基本流114。在每个链中,第一缓冲区140“tb”(即,传输缓冲区)可以被配置为如果传输数据包的pid与针对某个es在pmt中找到的值匹配,则存储该传输数据包。仅对于视频流存在的第二缓冲区142“mb”(即,复用缓冲区)可以被配置为通过剥离ts数据包头来聚集序列ts数据包的有效载荷,从而建立pes数据包。第三缓冲区144“sb”(子流缓冲区)可以被配置为聚集es数据。在实施例中,第三缓冲区144中的数据可以属于某个子流114,并且可以聚集多个子流缓冲区的数据以形成子区域的编码表示。哪一组es需要以哪种顺序被聚合通过下面指定的描述符中传送的信息发信号通知,该描述符在那个节目的pmt中找到。
[0128]
详细地说,下面指定的描述符是扩展mpeg-2系统标准中指定的描述符集。描述符的类型和长度由头字节提供,这些字节未在以下语法表中示出。
[0129]
随后描述子流信令。
[0130]
对于包含子流的每个es(即,区块或固定组的序列区块),新限定的子流描述符向该子流指派substreamid(子流标识)。它可选地包含形成子区域所需的附加substreamid或通过在子区域描述符中找到的偏移阵列来指示这些附加substreamid的图案的索引。
[0131]
以下语法(语法no.1)可以用于子流描述符:
[0132][0133]
子流描述符可以以三个不同版本被使用,每个版本都用信号通知substreamid:
[0134]
根据第一版本,如果它的大小只有一个字节(排除了前面的头字节),它表示patternreference的0值(参考如下所述的子区域描述符中的substreamoffset[k][0][i])。
[0135]
根据第二版本,如果referenceflag被设置为“1”,则它指定用于计算附加substreamid的图案的索引(索引0除外)。
[0136]
根据第三版本,如果referenceflag被设置为“0”,则它直接指定附加substreamid。
[0137]
可以在子区域描述符中找到值substreamcountminus1。
[0138]
图5示出了以多个区块108构造的视频流的视频图像110的说明性视图,以及当作为单独基本流发送时形成符合的比特流的单个区块和区块组合的说明性视图。如图5所示,单个区块或固定集合的序列区块(即,关于编码顺序的序列)可以作为单独基本流被发送,其中i是substreamid。此外,如图5所示,当作为单独基本流发送时,第一区块可以形成符合的比特流,整个全景可以形成符合的比特流,第一和第二区块可以形成符合的比特流,区块1到n可以形成符合的比特流,区块1到2n可以形成符合的比特流,区块1到z=nxm可以形成符合的比特流。
[0139]
因此,n可以在字段substreamidsperline中的子区域描述符中用信号通知,其中z可以在字段totalsubstreamids中的子区域描述符中用信号通知。
[0140]
随后,描述子区域信令。
[0141]
一个新限定的子区域描述符可以与整个节目相关联。子区域描述符可以用信号通知属于子区域109的substreamid的图案。它可以用信号通知不同的布局,布局例如由不同数量的子流114组成,并且指示每个图案的级别。levelfullpanorama的值可以指示整个全景的级别。
[0142]
以下语法可以用于子区域描述符:
[0143][0144]
这种语法可以以以下方式通过标志substreammarkingflag扩展,该标志用信号通知子流标记的两个选项之一:
[0145]
a)每个子流与个别基本流相关联,并且通过经由pmt中的substreamdescriptors的映射来识别子流,如上文已经讨论过的;
[0146]
b)多个子流在共同的基本流中传输,并且通过在携带pes数据包的开始的传输数据包的适配字段中找到的af_substream_descript来识别子流,该替代方案将在下面更详细地讨论。
[0147]
然后以下语法可以用于子区域描述符:
[0148][0149]
因此,n1可以是可以从整个全景中选择的、通过l进行索引的不同子区域布局的数量。它的值可以由描述符大小隐含给出。picturesizehor[l]和picturesizevert[l]可以指示以像素为单位测量的水平和垂直子区域维度。
[0150]
图6示出了以多个区块108构造的视频流的视频图像110的说明性视图,以及由多个区块108的适当子集限定的视频图像110的子区域109以及该子区域的区块的偏移图案的说明性视图。图6中所示的视频图像110被构造成n=6列并且m=5行(或排),即以nxm=30个区块,其中从30个区块可以聚集9个区块并形成视频图像110的子区域109。
[0151]
对于图6中所示的示例,3x3子流的子区域的偏移图案可以由以下阵列来指示:
[0152]
substreamoffset[0]:1
[0153]
substreamoffset[1]:2
[0154]
substreamoffset[2]:n
[0155]
substreamoffset[3]:n 1
[0156]
substreamoffset[4]:n 2
[0157]
substreamoffset[5]:2n
[0158]
substreamoffset[6]:2n 1
[0159]
substreamoffset[7]:2n 2
[0160]
类似地,2x2子流的子区域的偏移图案可以由以下阵列来指示:
[0161]
substreamoffset[0]:1
[0162]
substreamoffset[1]:n
[0163]
substreamoffset[2]:n 1
[0164]
随后描述子区域组装。
[0165]
存取子区域的过程或方法可以包括在接收器侧基于级别指示或子区域维度从子区域描述符中选择合适的子区域大小的第一步骤。该选择隐含地产生值l。
[0166]
此外,存取子区域的过程或方法可以包括基于substreamid选择包含待被显示的区域的左上子流(读取所有子流描述符)的es的步骤。
[0167]
此外,存取子区域的过程或方法可以包括检查适用的子流描述符是否提供patternreference的步骤。利用该patternreference,它选择适用的substreamoffset值:
[0168]
substreamoffset[k][patternreference][l]
[0169]
其中,0《k《substreamcountminus1[l]
[0170]
此外,存取子区域的过程或方法可以包括如果不存在patternreference则将对索引的引用默认为0的步骤,这意味着描述符大小等于1。
[0171]
可能存在不适合形成子区域的左上子流的es,例如,因为该es位于全景的右边缘或底边缘。这可以通过大于patterncount[l]-1的patternreference值来发信号通知,这意味着没有指派substreamoffset值。
[0172]
此外,存取子区域的过程或方法可以包括如下步骤:如果满足所述条件,则对于具有指示substreamid等于substreamidx的子流描述符的esx的每个pes数据包执行以下操作:
[0173]-如果preamblecount[l]》0:则在具有相同es的dts的pes数据包之前加上指示substreamid等于preamblesubstreamid[j][l]的子流描述符。组装的比特流中的pes数据包的顺序通过增加索引j的值来给出。
[0174]-如果substreamcountminus1[l]》0:则在解码之前,在具有相同es的dts的pes数据包之前加上在esx resp.substreamidx substreamoffset[k][j]的子流描述符中给出的指示substreamid等于additionalsubstreamid[l]的子流描述符(substreamoffset阵列在子区域描述符中找到,其中j由esx的子流描述符中的patternreference的值给出,并且k的范围是从0到substreamcountminus1[l])。组装的比特流中的pes数据包的顺序通过增加substreamid的值来给出,这也对应于增加索引k的值。
[0175]
图7示出了根据实施例的用于流复用的方法200的流程图。方法200包括接收视频流的视频图像的至少两个不同空间段或不同组的序列空间段中的每一个的编码数据的步骤202。此外,方法200包括将至少两个不同空间段中的每一个的编码数据封包到单独子流中的步骤204。
[0176]
图8示出了用于流解复用的方法220的流程图。方法220包括从单独子流组中选择性地提取至少两个单独子流的步骤222,所述至少两个单独子流包含编码视频流的视频图像的不同空间段或不同组的序列空间段的编码数据。此外,该方法包括将至少两个单独子流组合为包含编码视频流的视频图像的不同空间段或不同组的序列空间段的编码数据的
数据流的步骤224。
[0177]
简要总结以上内容,已经描述了流解复用器121,其包括数据流形成器122,数据流形成器122被配置为从单独子流组116中选择性地提取至少两个单独子流,所述至少两个单独子流114包含编码图像110的不同空间段108或不同组的序列空间段108的编码数据。编码数据源自视频流102或者是视频流102的。它们是通过流复用器100中的流复用从其获得的。数据流形成器122被配置为将至少两个单独子流114组合为数据流126,数据流126包含编码提取出的至少两个单独子流114的视频流102的视频图像110的不同空间段108或不同组的序列空间段108的编码数据。数据流126在流解复用器121的输出接口123处提供。
[0178]
如上所述,单独子流组116由包括ts数据包的广播传输流组成。单独子流组116包括多个单独子流114,这些单独子流114包含编码视频流102的不同空间段108或不同组的序列空间段108的编码数据。在上述示例中,每个单独子流与图像区块相关。节目映射表也由单独子流组116组成。流解复用器121可以被配置为针对多个单独子流114中的每一个从节目映射表得出流标识符并且使用上述示例中被称为substreamid的相应流标识符在广播传输流中区分多个单独子流114中的每一个。例如,流解复用器121从在广播传输流中的数据包标识符零的数据包内传送的节目关联表中得出预定的数据包标识符,并从具有预定数据包标识符的广播传输流的数据包中得出节目映射表。即,pmt可以在ts数据包内传送,该ts数据包的数据包id等于在感兴趣的节目(即,全景内容)的pat中指示的预定数据包id。根据上述实施例,每个子流104或甚至每个子流106被包含在单独基本流中,即,在相互不同的数据包id的ts数据包内。在这种情况下,节目映射表唯一地将例如每个流标识符与相应的数据包标识符相关联,并且流解复用器121被配置为从具有与相应的单独子流的流标识符相关联的数据包标识符的广播传输流的数据包中解包多个单独子流104中的每一个。在这种情况下,子流104的子流标识符和数据包标识符是准同义词,只要在pmt中存在其之间的双射映射即可。在下文中,描述了一种替代方案,其中使用经由一个基本流的ts数据包的数据包头中的适配字段标记子流104的nal单元的概念将子流104复用到基本流中。特别地,包含子流104的一个或多个nal单元的任何pes数据包的开始落入其有效载荷部分中的一个基本流的ts数据包的数据包头被提供有适配字段,该适配字段又被提供有相应的一个或多个nal单元所属的子流的子流id。稍后,将示出该适配字段还包括与子流描述符相关的信息。根据该替代方案,流解复用器121被配置为从具有节目映射表中指示的数据包标识符的广播传输流的数据包中解包nal单元序列,并且取决于具有节目映射表中指示的数据包标识符的广播传输流的数据包的适配字段中指示的子流id,将该nal单元序列的每个nal单元与多个单独子流中的一个相关联。
[0179]
此外,如上所述,流解复用器121可以被配置为从节目映射表中读取关于分别将视频和视频图像110空间细分成段108的信息,并且通过使用从空间细分的段到流标识符的映射从空间细分固有地得出多个单独子流114的流标识符。图5示出了一个示例,其中流解复用器121被配置为从节目映射表中读取关于将视频空间细分到段的信息,并且得出多个单独子流114的流标识符,使得多个单独子流114的流标识符沿着光栅扫描对空间细分内的段进行排序。代替如图5所示的逐行运行的光栅扫描,可以使用对段的任何其它优秀的指派,诸如用于段之间的关联的逐列运行的光栅扫描,并且流标识符和/或数据包id可以以其它方式实现。
[0180]
流解复用器121可以被配置为从节目映射表中读取,或者根据下面进一步描述的刚才提到的备选方案,从携带单独子流组116的数据包的适配字段中读取,其示例在上面列出并将在下面给出的子流描述符。每个子流描述符可以通过与一个单独子流相关联的子流id来索引多个单独子流104中的一个,并且包括关于多个单独子流104中的哪一个或多个单独子流104与所索引的单独子流一起形成可作为至少两个单独子流114从单独子流组116中提取的子区域109的编码表示的信息,子区域109由连同索引的单独子流形成编码表示126的一个或多个单独子流的空间段108或序列空间段108组组成。流解复用器121还可以被配置为从节目映射表中读取关于子区域描述符的信息,子区域描述符指示视频到子区域109的在上述示例中使用索引l进行索引的一个或多个空间细分。对于每个这样的细分,每个子区域109是一个或多个单独子流104的一组空间段108或序列空间段108组。每个视频到子区域109的空间细分,子区域描述符可以指示子区域109的大小,诸如使用参数picturesizehor[l]和picturesizevert[l]。此外,可以用信号通知编码级别。因此,从单独子流组116中选择性地提取出的至少两个单独子流可以一起包含编码形成视频的一个或多个空间细分中的一个的子区域的一个的不同空间段108或不同组的序列空间段108的编码数据。
[0181]
子流描述符中的一个或多个(在上面的示例中,referenceflag=1的那些)可以包含关于多个单独子流中的哪一个或多个单独子流要连同索引的单独子流被提取作为来自单独子流组116的至少两个单独子流114的信息,以参考索引的形式,诸如到流标识符偏移的集合的列表(诸如通过将patternreference用作j=patternreference来指向其中的列表substreamoffset[...][j][l])中的patternreference,并且每个细分存在由l索引的一个这样的列表。每个流标识符偏移substreamoffset[k][j][l]指示相对于索引的单独子流的流标识符substreamid的偏移,即,所引用的子流具有等于子流描述符所属的子流的substreamid加上substreamoffset[k][j][l]的子流id。
[0182]
替代地或附加地,子流描述符中的一个或多个(在上面的示例中,referenceflag=0的那些)可以包含关于多个单独子流中的哪一个或多个单独子流要连同索引的单独子流被提取作为来自单独子流组116的至少两个单独子流114的信息,以流标识符偏移的集合的形式,例如additionalsubstreamid[i],每个指示相对于索引的单独子流的流标识符的偏移,即,通过在子流描述符中显式地用信号通知的偏移。
[0183]
组106内的一个或多个子流可以包括从多个单独子流114中的任何一个中剥离的或专用于修改或替代多个单独子流114中的任何一个的切片头和/或参数集的切片头和/或参数集。无论子流104的切片头和/或参数集是否包含在额外子流106中,修改或替代切片头和/或参数集以实现用于由解码器124解码的符合标准的数据流126'可以由流解复用器121的数据流处理器127执行。
[0184]
现在更详细地描述刚才提到的为每个区块花费单独es的替代方案。在依赖于接收器处的解复用器结构的现有实现的情况下,所描述的替代方案可能是有利的,这样的实现预先为潜在被解码的所有es分配缓冲区。因此,这样的实现会高估缓冲区要求,从而损害上面提出的解决方案实施例的一些益处。在这种情况下,在同一es内发送多个区块并将子流标识符指派给该es内的数据部分,使得高级解复用器121可以在es被存储在基本流缓冲区中之前从es中去除不需要的数据部分可能是有益的。在这种情况下,ts demux 121仍然使
用如图4所示的三个缓冲区链重建每个基本流。在每个链中,如果传输(ts)数据包的pid匹配在某个es的pmt中找到的值,则第一个缓冲区“tb”(即,传输缓冲区)存储该传输(ts)数据包。除了评估每个ts数据包头中包括的pid之外,它还解析适配字段,该适配字段可选地在ts数据包头之后。
[0185]
来自iso/iec 13818-1的适配字段语法如下所示:
[0186]
[0187][0188]
在适配字段中携带子流描述符的新语法可能如下所示:
[0189][0190]
新标志识别携带子流描述符的af_substream_descriptor。在适配字段内,每当ts数据包有效载荷包含pes数据包的开始时,发送根据语法no.1的substream_descriptor。多路复用缓冲区“mb”通过剥离ts数据包头和适配字段来聚集具有相同pid的序列ts数据包的有效载荷,从而建立pes数据包。如果substream_descriptor指示解码子区域不需要的substreamid,则解复用器121丢弃整个pes数据包,而具有与子区域匹配的substreamid的pes数据包被存储在子流缓冲区“sb”中。
[0191]
除了使用substream_descriptor的子流识别之外,如上所述,在与节目相关联的pmt中发送子区域描述符。根据上面的示例使用substream_descriptor中的可选信息:
[0192]
·
可以用信号通知图案,该图案指示一组偏移值,这些偏移值被添加到描述符中存在的substreamid的值,从而产生补充期望子区域的附加子流id;
[0193]
·
可替代地,可以在一直延伸到描述符的末尾的for循环中直接或显式地指示附加substreamid的阵列,描述符的长度由包括在substream_descriptor之前的适配字段中
的长度值af_descr_length指示。
[0194]
整个提取出的比特流126可以被转发到数据流处理器127,数据流处理器127在将输出比特流126'转发到解码阶段124之前去除不需要的数据并进一步处理比特流126,以便在解码器的编码图像缓冲区中存储子区域的符合标准的比特流。在这种情况下,可以省略subregion_descriptor语法的一些字段,或者可以使用以下简化语法来指示解码子区域所需的级别以及生成的水平和垂直子区域维度:
[0195][0196]
n1可以是由l索引的、可以从整个全景中选择的不同子区域布局的数量。它的值可以由描述符大小隐含给出。如果该描述符存在于pmt中,则强制要求在所有随机接入点中存在mcts提取信息集sei消息。substreammarkingflag的值(其在上述语法示例中的存在是可选的)或subregion_level_descriptor的存在指示af_substream_descriptor用于识别子流。在这种情况下,客户端可以将sb的缓冲区大小调整为由level[l]指示的cpb缓冲区大小。
[0197]
本技术的以下描述涉及用于流复用、流解复用、图像和/或视频编码和解码以及对应数据流的任务的实施例,这些任务不一定涉及关于从广播传输流执行哪个流提取向接收器侧提供选择或改变视频的图像区域内的子区域的机会。但是,下面描述的实施例涉及本技术的一个方面,该方面可组合,或者可以与上述实施例结合使用。因此,在随后描述的实施例的描述的最后,存在关于随后描述的实施例如何可以有利地用于实现上述实施例的概述。
[0198]
特别地,下面描述的实施例试图面对图9中概述的问题。图9示出了图像300。该图像300被编码成数据流302。但是,该编码已经以使得图像的不同段304被单独或彼此独立地编码到数据流302中的方式完成,即,其中抑制不同段之间的帧间编码依赖性。
[0199]
图9还图示了图像的段304被顺序编码到数据流302中的可能性,即,使得每个段304被编码到数据流302的相应连续片段306中。例如,图像300使用某个编码顺序308被编码到数据流302中,该编码顺序308以使得一个接一个地遍历段304,从而在继续遍历编码顺序308中的下一个段之前完全遍历一个段的方式遍历图像300。
[0200]
在图9中,仅示出了两个段3041和3042以及对应的两个片段3061和3062,但是段的数量自然地可以高于2。
[0201]
如先前所述,图像300可以是视频的图像并且以刚刚关于图像300描述的相同方式,视频310的另外图像可以被编码到数据流302中,其中这些另外图像以关于图像300描述的相同方式被细分到段304中,并且关于不同图像之间的编码依赖性也可以遵循段间编码
依赖性的抑制,使得诸如图像300的段3042的每个段可以以取决于另一个图像的对应的,即并置的段,而不是另一个图像的另一个段的方式被编码到其对应片段3062中。属于一个图像的片段306将形成数据流302的连续部分312,其可以被称为存取单元,并且它们不与属于视频310的其它图像的片段的部分交织。
[0202]
图10更详细地图示了将图像300编码到数据流302中。特别地,图10示出了图像300被编码到其中的数据流302的对应部分,即,由片段3061和3062的级联组成的存取单元312。图10图示了数据流由图10中用矩形314表示的一系列nal单元组成。可以存在不同类型的nal单元。例如,图10中的nal单元314已经被编码到与相应nal单元314是其一部分的片段306对应的段304中的对应切片中。每个段304的这种切片nal单元的数量可以是包括一或大于一的任何数量。两个切片中的子划分遵循上述编码顺序308。此外,图10通过标有阴影的方框314图示了nal单元,该nal单元在其有效载荷部分中包含参数集316而不是具有编码到其中的对应段304的对应切片的切片数据。诸如参数集316的参数集用于减轻或减少将图像300的编码参数化到数据流中的参数的传输量。特别地,切片nal单元314可以引用或甚至指向这样的参数集316,如图10中的虚线箭头所示,以便采用这样的参数集316中的参数。即,例如,切片nal单元中可能存在指向包含在参数集nal单元中的参数集316的一个或多个指针。
[0203]
如图10所示,参数集nal单元可以冗余地或重复地散布在切片nal单元之间,例如,为了针对nal单元损耗增加数据流的电阻率等,但自然地,由片段3061和3062的切片nal单元引用的参数集316应该由至少一个参数集nal单元构成,该参数集nal单元在引用的切片nal单元前面,并且因此,图10描绘了在存取单元312的nal单元序列的最外左侧处的这样的参数集nal单元。
[0204]
这里应该提到的是,先前和随后关于图9和10描述的许多细节仅仅是为了说明当试图仅将数据流302的一部分馈送至解码器以便使该解码器恢复视频310或图像300的某个段时可能发生的问题。虽然这些细节有助于理解本文所述实施例的基本思想,但应该清楚的是,这些细节仅仅是说明性的,因为下文描述的实施例不应受到这些细节的限制。
[0205]
在任何情况下,可能阻止为了使解码器成功解码与片段306对应的段304而将仅一个片段306成功馈送至解码器的情况的一个示例可以是参数集316内与图像300的大小相关的参数。例如,这样的参数可以明确指示图像300的大小,并且由于每个段304的大小小于作为整体的图像300的大小,仅接收某个图像300被编码在其中的多个片段306的片段而没有任何修改的解码器将被参数集316内的这样的参数损坏。应该提到的是,刚刚从原始数据流302中切除而没有任何修改的某个片段304甚至可能缺少任何参数集nal单元,因此根本缺少有效数据流的必要组成部分,即,参数集。特别地,作为最低限度,数据流302仅在存取单元的开始处需要参数集nal单元,或者更确切地说,在参考其的切片nal单元之前需要参数集nal单元。因此,虽然第一片段3061需要具有参数集nal单元,但是对于编码顺序中的所有后续片段3062不是这种情况。
[0206]
可能附加地或替代地存在可能妨碍从数据流302中成功切除片段306并导致成功解码该片段的对应段的情况的其它示例。现在仅讨论一个这样的另外的示例。特别地,每个切片nal单元可以包括切片地址,该切片地址表示其在图像区域内的位置,该位置是相应切片nal单元所属的数据流所在的位置。该参数也在以下描述中讨论。
[0207]
如果考虑上述情况,则图9的数据流302可以仅在以下情况被转变成与段304之一相关的数据流:1)从数据流302中切除与该段对应的片段306,2)修改参数集nal单元中携带的参数集316中刚刚提到的图像敏感的至少一个参数,或者甚至新插入这样的适配参数集nal单元,以及3)如果需要,修改存储在切除片段的切片nal单元中的切片地址,其中每当感兴趣的段304不是所有段304中的编码顺序中的第一段时,切片地址的修改是必要的,例如,切片地址是沿着上述编码顺序308测量的,因此,对于其,与整个图像300相关的切片地址和仅与相应切片的段相关的切片地址一致。
[0208]
因此,图11a图示了提取和修改图10的片段3061的结果,以便产生自包含,即,正确参数化的分段数据流,即,仅仅关于和编码第一段3041的数据流。如通过虚线所指示的,其示出了从整个数据流312的片段3061到数据流320的对应部分的修改,即,与编码到片段3061中的段所位于的图像300相关的、仅影响参数集nal单元的存取单元。图11b图示了关于段3042的对应提取和修改的结果。这里,自包含的分段数据流320包括数据流302的片段3062作为与图像300有关的存取单元,但是已经进行了附加的修改。例如,除了修改参数集316的至少一个参数之外,就自包含的分段数据流320而言,数据流302的片段3062内的参数集nal单元已经朝着片段3062的开始处移位,并且就切片地址而言,切片nal单元已被修改。与此相比,在图11a的情况下,就编码顺序308的第一段3041而言,切片nal单元保持不变,因为切片地址一致。
[0209]
以关于图11a和11b所示的方式修改数据流302的片段306导致信息丢失。特别地,修改后的参数和/或切片地址对于自包含数据流320的接收器不再可见或已知。因此,如果可以在不干扰接收解码器成功解码相应的自包含数据流320的情况下避免该信息丢失,那么将是有利的。
[0210]
图12示出了根据本技术实施例的流格式化器,该流格式化器能够实现两个任务:首先,图12的流格式化器322能够将入站数据流302解复用为多个部分数据流324,每个部分数据流与对应的段304相关。即,部分数据流324的数量对应于段304的数量,并且对应的索引用于这些引用数量,因为关于片段306的情况也是如此。例如,部分数据流324可以根据上面关于图1至8讨论的概念的一个,即,例如,通过对每个部分数据流324使用一个es进行广播。
[0211]
流格式化器322将数据流302内的片段306分布到对应的部分数据流324上。但是,其次,流格式化器322将部分数据流324的至少一个转换成正确参数化的自包含数据流,以便通过传统解码器关于与相应部分数据流相关联的段304成功可解码。在图12中,这是关于第一段,即,关于第一部分数据流3241来图示的。因此,流格式化器322使片段3061内的nal单元314经受上面关于图11a所讨论的修改,从而由数据流302的片段3061内的nal单元314获取数据流3241内的nal单元314'。注意的是,并非所有nal单元都必须被修改。关于与诸如段3042的任何其它段有关的部分数据流3242可以进行相同类型的修改,但是这里不再进一步讨论。
[0212]
但是,作为附加任务,流格式化器322将特定nal单元类型的nal单元326添加到部分数据流3241的nal单元314'。后者新添加的nal单元326具有从nal单元类型集合中选出的nal单元类型,该nal单元类型集合与nal单元314和314'所属的nal单元类型集合不相交。特别地,当nal单元314和314'的nal单元类型是被传统解码器理解和处理的类型时,nal单元
326是预期被传统解码器忽略或丢弃的类型,因为它们例如是保留类型,留作将来使用。因此,传统解码器忽略nal单元326。但是,通过这些nal单元326,流格式化器322能够向第二类型的解码器(即,非传统解码器)发信号通知对nal单元314'执行某些修改。特别地,如下面进一步讨论的,nal单元326中的一个,诸如具有图12中所示的b的nal单元,可以指示被参数化用于编码作为独立图像的段3041的参数集nal单元的紧接着的后续nal单元314'将与该b nal单元326一起被丢弃或忽略。附加地或可选地,由流格式化器322新添加的一个a nal单元326可以在其有效载荷部分中携带与数据流302的图像300相关的原始参数集nal单元,并且可以向非传统解码器发信号通知其有效载荷部分中携带的nal单元将被插入以代替其自身或作为其自身的替代。例如,这样的a nal单元326可以跟随或接着部分数据流3241内的片段3061的开始处的修改后的参数集nal单元314',以便在片段3061内的切片nal单元开始之前“更新”参数集316,使得非传统解码器仅初步地在a nal单元326之前使用nal单元314来设置参数集316中的参数,随后根据存储在a nal单元326的有效载荷部分中的正确参数集nal单元来正确地设置参数。
[0213]
总而言之,接收部分数据流3241的传统解码器接收将段3041编码到其中作为自包含图像的自包含数据流,并且该传统解码器不会被新添加的nal单元326破坏。如示出用于处理入站数据流的装置340的图13中所示的两个部分数据流的更复杂的接收能够在一个步骤中,或者通过重建自包含的整个数据流302'重建整个视频或图像,自包含的整个数据流302'再次从部分数据流324中形成编码等效的数据流302并将部分数据流324馈送到能够处理图像300的图像大小的传统解码器。最小任务可以是通过遵循由插入的nal单元326指示的指令将自包含部分数据流3241转换为反向参数化部分数据流334。此外,仅原始部分数据流324的子集可以由装置340输出,该子集关于原始图像300中的提取部分。装置可以执行或不执行部分数据流3241内的nal单元314'的切片地址的任何切片地址反向适配,以便再次与整体图像300相关。
[0214]
应当注意的是,流格式化器322从数据流302中提取部分数据流3241并使其呈现为由传统解码器可解码的自包含数据流,但是仍然携带原始的未修改的参数数据的能力在不导出(一个或多个)其它部分数据流3242的情况下可能是有用的。因此,仅仅从数据流302中生成部分数据流3241将是数据流生成器的任务,这也形成本技术的实施例。再次,所有陈述在另一个方向也是有效的,即,如果仅生成部分数据流3242,所有陈述也是有效的。
[0215]
在上述实施例中,流复用器103可以关于一个或多于一个子流114与图12的流格式化器322相同地操作。在图12中,流格式化器322可以替代地或附加地关于诸如部分数据流3242的任何其它部分数据流执行nal单元326的修改加上添加。再次,部分数据流的数量可以大于2。在接收器侧,接收如此处理的部分数据流3241的任何流形成器,诸如非传统解码器或流解复用器,诸如流解复用器121,可以除了其他任务之外,执行遵循由nal单元326限定的指令的任务,从而产生部分数据流,当与原始数据流302的其它片段级联时,该部分数据流至少关于参数集316是正确的。例如,如果片段3241和3242的级联必须作为整体被解码,那么仅仅切片nal单元内的切片地址可能必须被修改。
[0216]
不言而喻,例如,可以在单独基本流内传送部分数据流324。即,它们可以被封包到传输流数据包中,即,对于部分数据流324的一个,一个数据包id的数据包,以及对于另一个部分数据流324,另一个数据包id的数据包。在传输流内多路传输部分数据流324的其它方
式已经在上面被讨论,并且可以关于符合传统的部分数据流的传输进行重用。
[0217]
在下文中,类型b的nal单元326被示例性地呈现并且被称为跳过nal单元,而类型a的nal单元326使用被称为隐藏nal单元的语法来图示。
[0218]
因此,图9至12涉及其中至少两个es用于完整全景的传输的示例性情况。es中的一个是诸如3241的子流,其表示子区域3041的编码视频,并且该子流本身是符合标准的流,并且如果传统解码器能够解码该子流的级别,那么该子流可以由传统解码器解码。
[0219]
与在不同es中传输的至少一个其它子流3242的组合被发送到诸如127的数据流处理器用于进一步处理,这可以导致提取不同子区域的符合的比特流。在这种情况下,在数据流处理器127的输入处针对其正常功能所必需的一些数据部分,诸如为整个全景提供信息的参数集316,会防止传统解码器解码旨在被这样的传统设备解码的子区域。为了解决这个问题,使得这些数据部分对于传统解码器不可见,而高级设备可以处理它们。
[0220]
解码器将视频比特流处理为数据单元序列,在hevc编码的情况下,数据单元由所谓的“nal单元”表示。nal单元的大小由指示每个nal单元的开始的起始码隐含地指示。在起始码之后,每个nal单元以包含关于nal单元类型的信息的头开始。如果解码器不识别nal单元头中指示的类型,则它忽略该nal单元。一些nal单元类型值被保留,并且指示被保留的类型的nal单元将被所有符合标准的解码器忽略。
[0221]
为了使nal单元对于传统解码器不可见,具有原始nal单元类型字段的头被前置有具有保留值的头。高级处理器识别该类型值并实现不同的处理,即,插入被恢复并且原始nal单元被处理。两个保留的nal单元类型值用于形成两个不同的伪nal单元。如果高级处理器遇到第一种类型,则恢复插入。如果遇到第二种类型,则从比特流中去除伪nal单元和紧随其后的nal单元。
[0222]
iso/iec 23008-2中的nal单元语法:
[0223][0224]
隐藏nal单元首部的新语法:
[0225][0226]
hiding_nal_unit_type被设置为50,它是在iso/iec 23008-2中被标记为“未指定(unspecified)”的nal单元类型。
[0227]
nuh_layer_id和nuh_temporal_id_plus1从原始nal单元头复制。
[0228]
跳过nal单元的新语法:
[0229][0230]
skipping_nal_unit_type被设置为51,它是在iso/iec 23008-2中被标记为“未指定”的nal单元类型。
[0231]
nuh_layer_id和nuh_temporal_id_plus1从原始nal单元头复制。
[0232]
在图14中通过从顶部到底部的过渡所示的隐藏过程中,单个nal单元由隐藏nal单元头与原始nal单元一起形成。在组合的nal单元之前只有一个起始码。
[0233]
图14中通过从底部到顶部的过渡所示的取消隐藏过程仅去除隐藏nal单元头,其位于起始码和原始nal单元之间。
[0234]
允许高级解码器跳过原始nal单元的过程要求将跳过nal单元在原始nal单元之前插入到比特流中,这意味着存在两个nal单元,每个nal单元前置有起始码。在图15中通过从顶部到底部的过渡图示了跳过,并且在图15中通过从底部到顶部的过渡图示了准备(插入)。
[0235]
根据现在描述的有利替代方案,允许通过插入的nal单元326用信号通知不是整体跳过nal单元,而是仅跳过其一部分。原则上,有两个选项:或者后面nal单元被全部跳过。该指令仅由根据上述示例的跳过nal单元326用信号通知。根据替代方案,仅跳过任何后续nal单元的一部分。后者在多个基本流被组合并且nal单元的跳过部分被基本流中置于流的前面包含部分跳过的nal单元的信息代替的情况下是有用的。这将在下面更详细地解释。在此情况下,可以通过以下方式适配上述语法示例:
[0236][0237][0238]
这里,bytes_to_skip指示后面nal单元的要跳过的字节数。如果此值被设置为零,则跳过整个后面nal单元。
[0239]
关于图16更详细地描述了该替代方案。图16示出了流格式化器322和该流格式化器322接收数据流302的场景,数据流302具有编码在其中的图像300或视频,其中图像300被如上所述的分割成空间段3041和3042,即,以使得能够关于空间段提取部分数据流的方式。与所有上述实施例一样,段的数量并不重要,甚至可能被增加。
[0240]
为了便于理解关于图16讨论的变型,预先假设将图像300编码到数据流302中是以以下方式进行,其中对于每个段3041和3042仅跨越一个切片nal单元,并且与图像300相关并且由片段3061和3062组成的存取单元在开始时仅包含一个参数集nal单元314。图像300的数
据流300中的三个产生的nal单元被编号为#1、#2和#3,其中nal单元#1领先并且是参数集nal单元。因此,它通过阴影区别于nal单元#2和#3。nal单元#2和#3是切片nal单元。nal单元#2是与段3041相关的片段3061内的nal单元314,并且nal单元#3是与空间段3042相关的片段3062内的nal单元314。它是片段3062内唯一的nal单元。
[0241]
流格式化器322寻求将数据流302拆分成两个部分数据流3241和3242,前者与空间段3041相关,并且后者与空间段3042相关,其中部分数据流3242呈现为自包含数据流,其可通过传统解码器相对于空间段3042被解码为自包含图像区域,而部分数据流3241不是,如在图12的讨论中的情况那样。如从图12的讨论中可以清楚看到的,流格式化器322处理与将片段3062转换成自包含数据流相关联的两个问题;即,1)片段3062还没有任何参数集nal单元,以及2)片段3062包含切片nal单元;即,nal单元314#3,其切片头400包含错误的切片地址,即,它包含寻址段3042的开始相对于图像300的整个图像区域的切片地址,诸如,例如,关于图像300的左上角,而不是相对于表示用于低预算传统解码器的部分数据流3242的自包含图像区域的空间段3042的切片地址。因此,流格式化器322在将片段3062传送到部分数据流3242上时将适当设计的参数集nal单元314'添加到片段3062。流格式化器322将该参数集nal单元314'布置在片段3062的切片nal单元314'的前面;即,切片nal单元#3的前面,该切片nal单元#3与数据流302中的对应切片nal单元314#3关于其切片头不同。为了图示切片头中的差异,切片nal单元#3的切片头以非阴影线示出,并且使用关于其包含在数据流302中的版本的附图标记400来指示,并且就其部分数据流3242中的修改版本而言使用交叉影线和使用附图标记402来指示。但是,除此之外,流格式化器322在参数集nal单元314'之前加有类型b的跳过nal单元326,使得参数集nal单元314'将被馈入有部分数据流3042的处理装置或数据流形成器340跳过。但是,除此之外,流格式化器322将类型c的切片nal单元326置于切片nal单元314'#3之前。即,类型c的该部分跳过nal单元326也是关于传统解码器不允许的nal单元类型。但是,被设计为正确解释类型c的nal单元326的数据流形成器或处理装置340将由该nal单元传送的指令解释为后继切片nal单元314'的部分402将被切掉或忽略的程度。从以下描述中将清楚该“丢失”头的组成。但是,首先,图16图示了如果低预算传统解码器500被馈送有部分数据流3242时将会发生什么。特别地,该低预算传统解码器500将由于类型b和c的nal单元是不允许的nal单元类型而忽略或丢弃这些nal单元326,使得仅保留nal单元314',如上面关于图11b所讨论的,这导致形状和内容与段3042一致的图像的正确且自包含的解码。。
[0242]
但是,附加地,流格式化器322在流片段3061的末尾添加切片nal单元#3的切片头的以前版本400,片段3061已经由流格式化器322分发到部分数据流3241,以便在其中不加任何修正地采用。这又意味着部分数据流3241作为与图像300的时间戳相关的存取单元在其中具有“不完整片段”;即,对应片段3061内的nal单元314的精确副本,后面是后续片段3062的唯一nal单元的不完整前导部分;即,其以前的切片头400。其重要性如下。
[0243]
特别地,当数据流形成器340接收到部分数据流3241和3242两者时,数据流形成器340关于自包含数据流3242执行由特殊nal单元326指示的动作,并且然后级联部分数据流3241和3242'。但是,该级联加指令执行的结果是数据流302',其中与图像300的时刻相关的nal单元是原始数据流302的三个nal单元314的精确副本。因此,接收数据流302'的高端传统解码器502将从中解码其中包括空间段3041和3042两者的整个图像300。
[0244]
关于图16讨论的由nal单元类型c 326引起的代码修改指令关于图17更详细地示出。特别地,这里示出了类型c的nal单元326可以指示要从后继nal单元314'切除的部分;即,部分510可能使用指示在相应部分数据流3242内待从后继nal单元314'切除的部分的长度指示来指示,诸如从相应后继nal单元314'的开始进行测量,而不是诸如为了更容易理解如前面关于图16所描述的那样通过指示nal单元头402将被切除在语义上确定要切除的部分。自然地,可以替代地通过任何其它方式实现指示要切除哪个部分。例如,在类型c的nal单元326中指示的长度指示可以通过长度指示指示要被切除的部分,即,部分510,由长度指示指示的长度要从相对于c型的nal单元326的前一个nal单元的末端来测量,或者可以使用任何其它指示规定。
[0245]
因此,关于图9至17的描述揭示了已经使得被自包含的数据流,即,图12中的3241和图16中的3242。它由nal单元序列组成。nal单元序列包括第一集合的一个或多个nal单元314',其形成被参数化以便编码第一图像的自包含数据流,第一集合的nal单元314'从第一集合的一个或多个nal单元类型中选择。此外,nal单元序列包括第二集合的一个或多个nal单元326,每个nal单元326是第二集合的一个或多个预定nal单元类型中的一个,与第一集合不相交,并且被确定为导致传统解码器忽略相应的nal单元。第二集合的一个或多个nal单元326可以散布在nal单元序列中或者布置在nal单元序列内,使得对于第二集合的每个nal单元326,通过从nal单元序列中丢弃第一集合的紧接在后的nal单元330或其部分402以及第二集合的相应nal单元326和/或将在第二集合的相应nal单元326的有效载荷部分中携带的第一nal单元类型中的一个的nal单元332插入到nal单元序列中以代替第二集合的相应nal单元,nal单元序列被转换为nal单元的转换序列334,其除了包含在第一集合的一个或多个nal单元中的一个或多个中的切片地址之外,形成更大自包含数据流的片段3061,该更大自包含数据流在其中编码有由多个空间段304
1,2
组成的图像300,多个空间段304
1,2
的预定的一个3041是第一图像。可通过将nal单元的转换序列334与一个或多个其它nal单元序列3242级联,对于更大的自包含数据流,片段3061是可修改的,一个或多个其它nal单元序列3242在其中编码有除预定空间段之外的图像的每个空间段3042,并且除了包含在第一集合的一个或多个nal单元中的一个或多个中的切片地址之外,nal单元的转换序列334被参数化以便在与一个或多个其它nal单元序列级联时编码图像内的预定空间段3041。如关于图16所示,预定空间段可以是不同于编码顺序308中的第一空间段的其它空间段。第二集合的一个或多个nal单元326可以包括第二集合的预定nal单元,其在第一集合的第一nal单元330之前,第一集合的第一nal单元330包括携带由第一集合的至少一个第二nal单元引用的第一参数集的有效载荷部分,预定nal单元326指示第一nal单元330或其部分402,将从nal单元序列中与预定nal单元一起被丢弃。第二集合的一个或多个nal单元可以包括第二集合的预定nal单元326,其在第一集合的第一nal单元之后,第一集合的第一nal单元包括携带由第一集合的至少一个第二nal单元引用的第一参数集的有效载荷部分,预定nal单元326具有携带第一nal单元类型中的一个的第三nal单元332的有效载荷部分,第三nal单元包括携带第二参数集的有效载荷部分,该第二参数集在第三nal单元332被插入到nal单元序列中以代替预定的nal单元326时替换第一参数集。在第二集合的一个或多个nal单元326中的预定一个指示仅去除后续nal单元314'的一部分402的情况下,同样可以可选地指示该部分402的长度。替代物,即,不完整的切片片段,可以由流格式化器附加在另一个片段306,但是
替代地,可以使用携带部分替代物的隐藏nal单元并且以在部分跳过nal单元之前的方式布置。部分跳过的后续nal单元可以是切片nal单元,其包括携带切片数据的有效载荷部分,切片数据包括至少部分地被要跳过的部分402覆盖的切片头,接着是在其中编码有该切片nal单元的的对应切片的切片有效载荷数据。不完整切片片段和要丢弃的部分至少包括切片头的切片地址,由不完整切片片段包括的切片地址相对于图像的周长来限定,并且由要丢弃的部分包括的切片地址相对于预定空间段3042的周长来限定,诸如在相对于编码顺序308从其开始的左上角的两种情况下。
[0246]
上面已经在图12中描述了用于从第二数据流302生成第一数据流3241的装置322。在输出不止一个部分数据流3241的情况下,它可以是流分离器。第二数据流在其中编码有由多个空间段304
1,2
组成的图像300,其中第二数据流由nal单元序列组成,nal单元序列包括参数化以便编码预定空间段3041的第一集合的一个或多个nal单元314,第一集合的nal单元从第一集合的一个或多个nal单元类型中选择,其中该装置被配置为从第二数据流302中切除第一集合的一个或多个nal单元314,以便将其采用到第一数据流3241中;重新参数化第一集合的一个或多个nal单元,以便将预定空间段编码为自包含图像;将第二集合的一个或多个nal单元326插入到第一数据流中,第二集合的每个nal单元326是第二集合的一个或多个预定nal单元类型中的一个,与第一集合不相交,并且被确定为导致传统解码器忽略相应的nal单元326。装置322可以被配置为相对于第一集合的一个或多个nal单元布置第二集合的一个或多个nal单元,即,将第二集合散布到第一集合的一个或多个nal单元中,和/或将第二集合前置到第一集合的一个或多个nal单元之前和/或附加到第一集合的一个或多个nal单元之后,使得第二集合的每个nal单元规定从nal单元序列中丢弃第一集合的紧接在后的nal单元330以及第二集合的相应nal单元,和/或规定将第二集合的相应nal单元的有效载荷部分中携带的第一nal单元类型中的一个的隐藏nal单元332插入到nal单元序列中以代替第二集合的相应nal单元。紧接在后的nal单元例如是参数集nal单元,和/或隐藏的nal单元是如包含在第二数据流中的参数集nal单元。
[0247]
已经关于图13描述了用于处理诸如3241的数据流的装置340。如果输出诸如图像300的图像内容而不是数据流302',或者其一个或多个片段的集合,诸如,例如,仅从部分数据流3241导出的片段334,则装置340可以被扩展到解码器。装置340接收由nal单元序列组成的数据流3241,nal单元序列包括第一集合的一个或多个nal单元314',其形成参数化以便编码第一图像的自包含数据流,第一集合的nal单元从第一集合的一个或多个nal单元类型中选择,并且nal单元序列包括第二集合的一个或多个nal单元326,其中的每一个是第二集合的一个或多个预定nal单元类型中的一个,与第一集合不相交,其中第二集合的一个或多个nal单元被布置在nal单元序列中或散布在nal单元序列中。装置通过检查每个nal单元中指示nal单元类型的nal单元类型语法元素来区分该第二类型的每个nal单元与第一类型的一个或多个nal单元的集合。如果该语法元素具有第一组值内的值,则它被指定第一nal单元类型的nal单元,并且如果该语法元素具有第二组值内的值,则它被指定第二nal单元类型的nal单元。可以区分不同类型的nal单元326(第二类型)。这可以通过nal单元类型语法元素来完成,即,通过如上所述指派给这些不同的nal单元326诸如类型a、b和c,保留的nal单元类型中的不同nal单元类型(nal单元类型语法元素的第二组值)。但是,后者之间的区分也可以通过每个插入的nal单元326的有效载荷部分中的语法元素来完成。nal单元类
型语法元素还将切片nal单元与参数集nal单元区分开,即,它们具有第一组值中的不同值的nal单元类型语法元素。对于第二集合的预定nal单元326,装置340从nal单元序列中丢弃第一集合的紧接在后的nal单元330或其部分402以及第二集合的相应nal单元。对于一个nal单元326,装置340可以整体丢弃随后的nal单元切片,而对于另一个,仅仅丢弃部分402。但是,装置也可以仅处理这些选项中的任一个。部分402可以通过相应nal单元326的有效载荷部分中的长度指示来指示,或者部分402由340来确定,否则诸如通过解析来确定。部分402例如是后续nal单元的切片头。附加地或替代地,装置可以对于第二集合的另一个预定nal单元326,从nal单元序列中丢弃第一集合的紧接在后的nal单元330或其部分402以及第二集合的相应nal单元,并且将在第二集合的相应nal单元的有效载荷部分中携带的第一nal单元类型中的一个的nal单元332插入到nal单元序列中,以代替第二集合的相应nal单元。附加地或替代地,装置可以对于第二集合的甚至另一个预定nal单元326,将第二集合的相应nal单元的有效载荷部分中携带的第一nal单元类型中的一个的nal单元332插入到nal单元序列中以代替第二集合的相应nal单元。装置340可以被配置为将通过丢弃和/或插入获得的nal单元的转换序列(其中潜在地修改第一集合的一个或多个nal单元中的一个或多个中包含的切片地址)与一个或多个其它nal单元序列3242级联,该一个或多个其它nal单元序列在其中编码有除预定空间段之外的更大图像的每个空间段。级联沿着编码顺序对nal单元序列进行排序,使得nal单元序列内的切片nal单元中的切片地址单调增加。该级联连同通过nal单元326指示的指令的执行产生数据流302',其等于数据流302或者是其等效物,即,它的解码产生具有作为其空间段之一的预定空间部分的图像300。如果任何自包含的部分数据流将被馈送到传统解码器,则由于nal单元326的丢弃,将产生对应空间段的解码。
[0248]
关于图12和16,应当注意的是,其中示出的流格式化器322可以被拆分成两个连续的实体,即,一个仅执行将所有部分数据流的nal单元从一个公共流分布到相应部分数据流上的任务,即,解复用或流分发的任务,并且连接到前者的上游的另一个执行上述剩余任务。至少一些任务甚至可以由生成原始nal单元314的编码器执行。
[0249]
虽然已经在装置的上下文中描述了一些方面,但是显然这些方面也表示对应方法的描述,其中方框或设备对应于方法步骤或方法步骤的特征。类似地,在方法步骤的上下文中描述的方面也表示对应装置的对应方框或项目或特征的描述。方法步骤中的一些或全部可以由(或使用)硬件装置执行,例如微处理器、可编程计算机或电子电路。在一些实施例中,最重要的方法步骤中的一个或多个可以由这样的装置执行。
[0250]
取决于某些实现要求,本发明的实施例可以用硬件或软件实现。可以使用数字存储介质来执行该实现,例如软盘、dvd、蓝光、cd、rom、prom、eprom、eeprom或flash存储器,其具有存储在其上、与可编程计算机系统协作(或能够协作),使得执行相应的方法的电子可读控制信号。因此,数字存储介质可以是计算机可读的。
[0251]
根据本发明的一些实施例包括具有电子可读控制信号的数据载体,这些电子可读控制信号能够与可编程计算机系统协作,使得执行本文所述的方法之一。
[0252]
通常,本发明的实施例可以被实现为具有程序代码的计算机程序产品,该程序代码可操作用于在计算机程序产品在计算机上运行时执行这些方法之一。程序代码可以例如被存储在机器可读载体上。
[0253]
其它实施例包括用于执行存储在机器可读载体上的本文所述方法之一的计算机程序。
[0254]
换句话说,本发明方法的实施例因此是具有程序代码的计算机程序,当计算机程序在计算机上运行时,该程序代码用于执行本文所述的方法之一。
[0255]
因此,本发明方法的另一个实施例是数据载体(或数字存储介质,或计算机可读介质),其包括记录在其上的用于执行本文所述方法之一的计算机程序。数据载体、数字存储介质或记录介质通常是有形的和/或非瞬态的。
[0256]
因此,本发明方法的另一个实施例是表示用于执行本文所述方法之一的计算机程序的数据流或信号序列。数据流或信号序列可以例如被配置为经由数据通信连接,例如经由互联网传输。
[0257]
另一个实施例包括处理部件,例如计算机或可编程逻辑设备,其被配置为或适于执行本文所述的方法之一。
[0258]
另一个实施例包括计算机,该计算机具有安装在其上用于执行本文所述方法之一的计算机程序。
[0259]
根据本发明的另一个实施例包括一种装置或系统,其被配置为将用于执行本文所述方法之一的计算机程序传送(例如,电子地或光学地)到接收器。接收器可以是例如计算机、移动设备、存储器设备等。该装置或系统可以例如包括用于将计算机程序传送到接收器的文件服务器。
[0260]
在一些实施例中,可编程逻辑器件(例如现场可编程门阵列)可以用于执行本文所述方法的一些或全部功能。在一些实施例中,现场可编程门阵列可以与微处理器协作,以便执行本文描述的方法之一。通常,该方法优选地由任何硬件装置执行。
[0261]
上述实施例仅用于说明本发明的原理。应该理解的是,本文所述的布置和细节的修改和变型对于本领域技术人员而言将是显而易见的。因此,旨在仅受即将到来的专利权利要求的范围的限制,而不受通过本文实施例的描述和解释所呈现的具体细节的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献