首页 / 多视图解码器

多视图解码器实质审查 发明

技术领域

[0002] 本申请涉及允许有效多视图/层编码(例如,多视图图片/视频编码)的编码概念。

相关背景技术

[0003] 在本领域中众所周知可伸缩编码概念。在视频编码中,例如,H.264允许基层编码视频数据流伴有额外增强层数据,以便在不同的方面提高基层质量视频的重建质量,例如,空间分辨率、信噪比(SNR)等和/或最后但同样重要的是,视图的数量。最近定案的HEVC标准也由SVC/MVC框架(SVC=可扩展视频编码,MVC=多视图编码)扩展。HEVC与其前面的H.264在很多方面不同,例如,适合于并行解码/编码以及低延迟传输。就并行解码/编码而言,HEVC支持WPP(波前并行处理)编码/解码以及瓦片并行处理概念。根据WPP概念,个别图片以逐行方式分成子流。在每个子流内的编码次序从左指向右。子流具有的定义在其中的解码次序,从顶部子流引向底部子流。使用概率适配(自适应)进行子流的熵编码。个别地或者基于用于熵编码诸如分别在第二CTB(编码树块)的端部上的从前面子流的左手边缘的紧接的前面子流直到某个位置的概率的初步适配状态,对各个子流进行概率初始化。不需要限制空间预测。即,空间预测可以横跨介于紧接的后面的子流之间的边界。通过这种方式,这些子流可以与形成波前的当前编码/解码的位置并行地编码/解码,该波前通过从左下到右上、从左到右的瓦片方式运行。根据瓦片概念,图片分成瓦片,并且为了给出(render)这些瓦片的编码/解码,禁止在瓦片边界之上的并行处理、空间预测的可能主题。仅仅允许在瓦片边界之上的回路滤波。为了支持低延迟处理,薄片概念已被扩展:允许薄片可切换为重新初始化熵概率,采用在处理前一个子流期间保存的熵概率,即,位于当前薄片开始所属的子流前面的子流,并且采用连续更新的熵概率,直到直接紧接的前面的薄片结束。通过这种措施,使WPP和瓦片概念更适合于低延迟处理。
[0004] 然而,更可取的是具有考虑中的概念,这进一步提高了多视图/层编码概念。

具体实施方式

[0061] 首先,作为概述,提出了编码器/解码器结构的实施例,其适合后面提出的任一概念。
[0062] 图1示出了根据实施方式的编码器的一般结构。编码器10可以实现为能够通过多线程的方式或非多线程的方式(即,仅仅单线程的方式)进行操作。即,例如,编码器10可以使用多CPU内核实现。换言之,编码器10可以支持并行处理,但是不一定这样做。所生成的位流还可由单线程编码器/解码器生成/解码。然而,本申请的编码概念能够使并行处理编码器有效地应用并行处理,,但是却没有损害压缩效率。关于并行处理能力,相似的陈述对于稍后在图2中描述的解码器有效。
[0063] 编码器10是视频编码器,但是通常,编码器10也可以是图片编码器。视频14的图片12示出为在输入16上进入的编码器10。图片12显示了某个场景,即,图片内容。然而,编码器
10在其输入16上也接收属于相同时刻的另一个图片15,这两个图片12和15属于不同的层。
仅仅为了说明的目的,图片12被示出为属于层0,而图片15被示出为属于层1。图1示出了层1可以相对于层0具有更高的空间分辨率,即,可以对相同场景显示更多数量的图片样本,但是这仅仅用于说明的目的,并且可替代地,层1的图片15可以具有相同的空间分辨率,但是例如,可以相对于层0在视图方向上不同,即,可以从不同的视角来捕捉图片12和15。要注意的是,在本文档中使用的术语基层和增强层可以表示在层的层次结构中的参考层和相关层的任何集。
[0064] 编码器10是混合编码器,即,图片12和15由预测器18预测,并且由残差确定器22获得的预测残差20在变换/量化模块24内经受变换(例如,频谱分解,例如,DCT)以及量化。这样获得的变换和量化的预测残差26在熵编码器28内使用例如上下文自适应性进行熵编码,例如,算术编码或可变长度编码。残差的可重建版本可用于解码器,即,由再变换/再量化模块31恢复去量化和再变换的残差信号30,并且通过组合器33与预测器18的预测信号32再结合,从而分别产生图片12和15的重建34。然而,编码器10以块为基础进行操作。相应地,重建信号34在块边界上遭受不连续性,因此,为了产生图片12和15的参考图片38,滤波器36可以应用于重建信号34,基于此,预测器18预测随后编码的不同层的图片。然而,如图1中的虚线所示,预测器18也可以用其他预测模式(例如,空间预测模式)直接利用重建信号34而无需滤波器36或中间版本。
[0065] 预测器18可以在不同的预测模式中进行选择,以便预测图片12的某些块。图片12的一种这样的块39示例性示出在图1中。可以具有时间预测模式,根据该模式,基于相同层的先前编码图片(例如,图片12’),预测代表图片12所分成的图片12的任何块的块39。还可以具有空间预测模式,根据该模式,基于相同图片12的先前编码部分(相邻块39),预测块39。还在图1中说明性示出图片15的块41,以便代表图片15所分成的任一其他块。对于块41,预测器18可以支持刚刚讨论的预测模式,即,时间和空间预测模式。此外,预测器18可以提供层间预测模式,根据该模式,基于下层的图片12的对应部分,来预测块41。在“对应部分”中的“对应”表示空间对应,即,在图片12内的部分与在图15中将要预测的块41表示相同的场景部分。
[0066] 本质上,预测器18的预测可以不限于图片样本。预测也可以适用于任何编码参数,即,预测模式、时间预测的运动矢量、视图间预测的视差矢量等。仅仅残差然后可以在位流40中编码。即,使用空间和/或层间预测,可以将编码参数预测性编码/解码。即使在此处,也可以使用视差补偿。
[0067] 使用某个语法,以便编译量化的残差数据26,即,变换系数水平和其他残差数据以及编码参数,例如,编码参数包括由预测器18确定的图片12和15的各个块39和41的预测模式和预测参数,并且这个语法的语法元素经受熵编码器28的熵编码。这样获得的由熵编码器28输出的数据流40形成由编码器10输出的位流40。
[0068] 图2示出了与图1的视频编码器配合的解码器,即,能够解码位流40。图2的解码器通常由参考标记50表示,并且包括熵解码器、再变换/去量化模块54、组合器56、滤波器58以及预测器60。熵解码器42接收位流并且进行熵解码,以便恢复残差数据62和编码参数64。再变换/去量化模块54去量化和再变换残差数据62,并且将这样获得的残差信号转发给组合器56。组合器56还从预测器60中接收预测信号66,该预测器60进而基于由组合器56组合预测信号66和残差信号65而确定的重建信号68,使用编码参数64,形成预测信号66。该预测反映预测器18最终选择的预测,即,相同的预测模式是可用的,并且这些模式被选择用于图片12和15的各个块,并且根据预测参数来控制。如上面关于图1所述,可替换地或者附加地,预测器60可以使用重建信号68的滤波版本或其中间版本。同样,可以基于组合信号68的未滤波版本或其某些滤波版本,来确定要在解码器50的输出70上最终再现和输出的不同层的图片。
[0069] 根据瓦片概念,图片12和15分别细分成瓦片80和82,并且至少,在这些瓦片80和82内的块39和41的预测分别限于仅仅使用与相同图片12、15的相同瓦片相关的数据,作为空间预测的基础。这意味着,块39的空间预测限于使用相同瓦片的先前编码部分,但是时间预测模式不限于依赖于先前编码图片(例如,图片12’)的信息。同样,块41的空间预测模式限于仅仅使用相同瓦片的先前编码数据,但是不限制时间和层间预测模式。为了说明的目的,仅仅选择将图片15和12分别细分成6个瓦片。可以分别针对图片12’、12以及15、15’单独地在位流40内,选择和信令成为瓦片的细分。每个图片12和15的瓦片的数量分别可以是1、2、3、4、6等中的任一个,其中,瓦片划分可以限于仅仅规则地划分成瓦面的行和列。为了完整性起见,要注意的是,单独编码瓦片的方式可以不限于帧内预测或空间预测,而是还可以包含跨瓦片边界的编码参数以及在熵编码内的上下文选择的任何预测。即,后者还可以限于仅仅取决于相同瓦片的数据。因此,该解码器能够并行地执行刚提及的操作,即,以瓦片为单位。
[0070] 可以替代地或者附加地,图1和图2的编码器和解码器能够使用WPP概念。参照图3。WPP子流100还表示图片12、15成为WPP子流的空间划分。与瓦片和薄片相反,WPP子流不对跨WPP子流100的预测和上下文选择施加限制。WPP子流100逐行延伸,例如,跨LCU(最大编码单元)101的行,即,预测编码模式在位流内单独可传输的最大可能块,并且为了能够并行处理,仅仅对熵编码做出一个妥协。尤其,在WPP子流100之中限定次序102,该次序从顶部示例性通向底部,并且对于除了在次序102内的第一WPP子流以外的每个WPP子流100,符号字母表的概率估计(即,熵概率)不完全重置,但是采用或者设置为等于在将直接位于前面的WPP子流直到其的如线条104所示的第二LCU熵编码/解码之后所产生的概率,LCU次序或子流的解码器次序分别针对每个WPP子流在图片12和15的相同侧(例如,由箭头106和引线表示的左手侧)上开始且沿着LCU行方向通向另一侧。因此,通过遵守分别在相同图片12和15的WPP子流的序列之间的某些编码延迟,这些WPP子流100可并行解码/编码,使得并行(即,同时)解码/编码各个图片12、15的部分形成一种波前108,该波前通过瓦片的方式在图片之上从左到右移动。
[0071] 要简单注意的是,次序102和104还在从左上角的LCU 101到右下角LCU的LCU之中,逐行从上到下限定光栅扫描次序。WPP子流均可以对应于一个LCU行。简单地返回看瓦片,瓦片还可以限于与LCU边界对准。就在子流内部的两个薄片之间的边界而言,子流可以分成一个或多个薄片而不被结合到LCU边界。然而,在从子流的一个薄片过渡到子流的下一个薄片时,在那种情况下,采用熵概率。在瓦片的情况下,就在瓦片内部的两个薄片之间的边界而言,整个瓦片可以概括成一个薄片,或者一个瓦片可以分成一个或多个薄片,而再次不被结合到LCU的边界。在瓦片的情况下,在LCU之间的次序改变,以便在按照瓦片次序继续进入下一个瓦片之前,首先按照光栅扫描次序,遍历按照瓦片次序的瓦片。
[0072] 如迄今所述,图片12可以分成瓦片或WPP子流,同样,图片15也可以分成瓦片或WPP子流。理论上,可以给图片12和15之一选择WPP子流划分/概念,而给其中另一个图片选择瓦片划分/概念。替换地,可以对位流施加限制,根据该限制,概念类型(即,瓦片或WPP子流)必须在层之间相同。空间段的另一个实例包括薄片。薄片用于分割位流40,用于传输目的。薄片打包进NAL单元内,这些单元是用于传输的最小实体。每个薄片单独可编码/可解码。即,禁止跨薄片边界的任何预测,就如上下文选择等一样。这些完全是空间段的三个实例:薄片、瓦片以及WPP子流。此外,所有三个并行化概念(瓦片、WPP子流以及薄片)可以相结合使用,即,图片12或图片15可以分成瓦片,其中,每个瓦片分成多个WPP子流。而且,薄片可以用于将位流分成多个NAL单元,例如,(但不限于)在瓦片或WPP边界上。如果使用瓦片或WPP子流并且另外使用薄片,划分图片12、15,并且薄片划分偏离其他WPP/瓦片划分,那么空间段限定为图片12、15的最小可单独解码部。替换地,可以在位流上施加那些概念的组合可以用于图片(12或15)内和/或边界是否需要在所使用的不同概念之间对齐的限制。
[0073] 上面讨论了由编码器和解码器支持的各种预测模式、在预测模式上施加的限制、以及用于熵编码/解码的上下文推导,以便支持并行编码概念,例如,瓦片和/或WPP概念。上面还提出了,编码器和解码器可以逐个块地操作。例如,逐个块地选择上述预测模式,即,通过比图片本身更精细的粒度。在继续描述本申请的方面之前,解释根据一个实施方式的在薄片、瓦片、WPP子流以及上述块之间的关系。
[0074] 图4示出了一个图片,该图片可以是层0的图片(例如,图片12)或层1的图片(例如,图片15)。图片规则地细分成块90的阵列。有时,这些块90称为最大编码块(LCB)、最大编码单元(LCU)、编码树块(CTB)等。图片成为块90的细分,可以形成一种基础或最粗糙的粒度,可以在该粒度执行上述预测和残差编码,并且这个最粗糙的粒度(即,块90的尺寸)可以由编码器对层0和层1单独地信令和设定。可以在数据流内使用和信令多叉树(例如,四叉树)细分,以便分别将每个块90细分成预测块、残差块和/或编码块。尤其地,编码块可以是块90的递归多叉树细分的树叶块,并且一些预测相关的决定可以以编码块的粒度(例如,预测模式)来进行信令(signaled),并且预测块和残差块可以是代码块的单独递归多叉树细分的树叶块,在预测块的粒度,将在时间帧内预测的情况下的预测参数(例如,运动矢量)以及在层间预测的情况下的视差矢量编码,在残差块的粒度,编码预测残差。
[0075] 可以在块90之中限定光栅扫描编码/解码次序92。编码/解码次序92限制相邻部分的可用性,用于空间预测的目的:仅仅图片的根据编码/解码次序92位于与目前要预测的语法元素相关的当前部分(例如,块90)或其某个更小的块之前的部分,可用于当前图片内的空间预测。在每个层内,编码/解码次序92遍历图片的所有块90,以便然后按照图片编码/解码次序继续遍历相应层的下一个图片的块,该图片编码/解码次序不必遵循图片的时间再现次序。在各个块90内,编码/解码次序92细化成在更小块(例如,编码块)之中的扫描。
[0076] 相对于刚才概述块90和更小的块,每个图片进一步沿着刚刚提到的编码/解码次序92细分成一个或多个薄片。在图4中示例性地示出的薄片94a和94b相应地无间隙地覆盖各图片。在一个图片的连续薄片94a和94b之间的边界或界面96可以与相邻块90的边界对准或不对准。更确切地说,并且如在图4的右手边所示,在一个图片内的连续薄片94a和94b可以在更小块(例如,编码块)的边界上彼此接界,即,细分一个块90的树叶块。
[0077] 图片的薄片94a和94b可以形成最小单元,其中,图片编码成的数据流的部分可以封包成数据包,即,NAL单元。上面描述了薄片的进一步性能,即,关于(例如)跨薄片边界的预测和熵上下文确定对薄片的限制。具有这种限制的薄片可以称为“普通”薄片。如下面更详细所述,除了普通薄片之外,还具有“相关薄片(dependent slice)”。
[0078] 如果瓦片划分概念用于图片,那么在块90的阵列之中限定的编码/解码次序92可以改变。这在图5中显示,其中,图片示例性显示为分成4个瓦片82a到82d。如在图5中所示,瓦片本身限定为图片的规则细分,以块90为单位。即,每个瓦片82a到82d由n x m个块90的阵列构成,n单独设置为用于每行瓦片,并且m单独设置为用于每列瓦片。遵循编码/解码次序92,在继续进入下一个瓦片82b中之前,在第一瓦片内的块90首先按照光栅扫描次序扫描,诸如此类,其中,瓦片82a到82d本身按照光栅扫描次序扫描。
[0079] 根据WPP流划分概念,图片沿着编码/解码次序92以一行或多行块90为单位细分成WPP子流98a到98d。例如,每个WPP子流可以覆盖整行块90,如图6中所示。
[0080] 然而,瓦片概念和WPP子流概念也可以混合。在这种情况下,例如,每个WPP子流覆盖在每个瓦片内的一行块90。
[0081] 甚至图片的薄片划分与瓦片划分和/或WPP子流划分共同使用。关于瓦片,图片细分成的一个或多个薄片中的每个,可以沿着编码/解码次序92正好由一个完整的瓦片或不止一个完整的瓦片或者仅仅一个瓦片的子部分构成。还可以使用薄片,以便形成WPP子流98a到98d。为此,形成用于封包的最小单位的薄片可以一方面包括普通薄片,并且另一方面包括相关薄片:虽然普通薄片在预测和熵上下文推导上施加上述限制,但是相关薄片不施加这种限制。在图片的边界处的编码/解码次序92基本上离开行的点开始的相关薄片,采用通过块90的直接前一行中的熵解码块90产生的熵上下文,并且在别的地方开始的相关薄片可以采用由熵编码/解码直接前一个薄片直到其结束而产生的熵编码上下文。通过这种措施,每个WPP子流98a到98d可以由一个或多个相关薄片构成。
[0082] 即,在块90之中限定的编码/解码次序92从相应图片的第一侧(在此处示例性为左侧)线性通向相反侧(示例性为右侧),然后,在向下/底部方向,移步到块90的下一行。因此,当前图片的可用(即,已经编码/解码的)部分主要位于当前编码/解码的部分(例如,当前块90)的左边和顶部。由于预测中断以及在瓦片边界上的熵上下文推导,所以可以并行处理一个图片的瓦片。一个图片的瓦片的编码/解码甚至可以同时开始。如果同样允许穿过瓦片边界,那么限制源自上述环路滤波。反过来以交错的方式从上到下执行开始WPP子流的编码/解码。在块90(两个块90)内,测量在连续WPP子流之间的帧内图片延迟。
[0083] 然而,即使并行化图片12和15的编码/解码也有利的是,即,不同层的时刻。显然,编码/解码相关层的图片15,必须相对于基层的编码/解码延迟,以便保证具有已经可用的基层的“空间对应”部分。即使在任何图片12和15内不单独使用编码/解码的任何并行化的情况下,这些想法也有效。甚至在使用一个薄片来分别覆盖整个图片12和15,不使用瓦片并且不使用WPP子流处理的情况下,图片12和15的编码/解码也可以并行化。甚至在瓦片或WPP处理用于层的任何图片的这种情况下,或者无论瓦片或WPP处理是否用于层的任何图片,接下来描述的信令(即,方面6)是表示在层之间的这种编码/解码延迟的可能性。
[0084] 在讨论本申请的上面提出的概念之前,再次参照图1和图2,应注意的是,在图1和图2中的编码器和解码器的模块结构仅仅用于说明的目的,并且该结构也可以不同。
[0085] 相对于与在连续层的编码之间的最小编码延迟相关的以上描述,应注意的是,解码器能够根据短期语法元素,确定最小解码延迟。然而,在使用长期语法元素来提前预定的时间段作为信号发送这个层间时间延迟的情况下,解码器可以使用所提供的保证来计划未来,并且可以在位流40的并行解码内更容易执行工作量分配。
[0086] 第一方面涉及限制在视图之间的层间预测,尤其是例如,视差补偿视图间预测,支持更低的总体编码/解码延迟或并行化能力。从以下图中可容易获得细节。有关简单解释,参照图7。
[0087] 例如,编码器可以将相关视图的当前块302的视差矢量的可用域301限制为在基层段的边界300处进行层间预测。303表示限制,为了比较,图7示出了相关视图的另一个块302’,不限制其视差矢量的可用域。编码器可以在数据流内信令这个行为,即,限制303,以使解码器能够在低延迟的意义上进行利用。只要层间预测关涉及编码器,解码器就可以如正常一样操作,但是保证不需要“不可用段”的部分,即,解码器可以将层间延迟保持更低。
替换地,就在边界300上的层间预测而言,编码器和解码器均改变其操作模式,以便例如,另外利用在边界300上的层间预测参数的可用状态的更低多样性。
[0088] 图8示出了多视图编码器600,其被配置为使用视图间预测,将多个视图12和15编码成数据流40。在图8的情况下,视图的数量示例性选择为2,使用箭头602显示从第一视图12向第二视图15的视图间预测。朝着不止两个视图的扩展可容易想象。这同样适用于在后文中描述的实施方式。多视图编码器600被配置为改变在第一视图划分成的空间段301的空间段边界300处的视图间预测。
[0089] 就涉及编码器600的可能实现细节而言,例如,参照上面在图1中提出的描述。即,编码器600可以是图片或视频编码器,并且可通过逐块的方式操作。尤其地,编码器600可以是混合编码型,其被配置为使第一视图12和第二视图15经受预测编码,将预测参数插入数据流40内,使用频谱分解成数据流40来变换编码预测残差,并且至少就第二视图15而言,在不同的预测类型之间切换,至少包括空间和视图间预测602。如上所述,编码器600在不同的预测类型/模式之间切换的单位可以称为编码块,这些编码块的尺寸可以变化,这是因为这些编码块可以表示(例如)第二视图15的图片的分层多叉树细分的树叶块或者第二视图15的图片可以规则地预先划分成的树根块。视图间预测的结果是使用视差矢量604在相应的编码块内预测样本,该视差矢量表示将要施加于第一视图12的图片的空间上共同定位的部分606的位移,在空间上共同定位到第二视图15的图片的视图间预测块302,以便访问部分608,通过将部分608的重建版本复制到块302内来从中预测在块302内的样本。然而,视图间预测602不限于第二视图15的样本值的这种类型的视图间预测。确切地说,此外或者替换地,由编码器600支持的视图间预测可以用于预测性编码预测参数本身:设想除了以上概述的视图间预测模式以外,编码器600还支持空间和/或时间预测。空间预测某个编码块,以针对该编码块而插入数据流40内的预测参数结束,正如时间预测一样。并未单独将第二视图
15的图片的编码块的所有这些预测参数编码到数据流40内,而是独立于用于将第一视图的图片编码到数据流40内的预测参数,编码器600可以基于由编码器600从第一视图12编码成的数据流40部分中可获得的预测参数或其他信息,使用预测编码和预测用于预测性编码第二视图15的编码块的预测参数。即,例如,可以根据第一视图12的对应(也是时间上预测的)编码块的运动矢量,可以预测第二视图15的某个编码块302的预测参数,例如,运动矢量等。
“对应”可以考虑在视图12和15之间的视差。例如,第一和第二视图12和15均可以具有与其相关联的深度图,并且编码器600可以被配置为将视图12和15的纹理样本与深度图的相关联的深度值一起编码成数据流40,并且编码器600可以使用编码块302的深度估计,以便确定在第一视图12内的“对应编码块”,第一视图的场景内容与第二视图15的当前编码块302的场景内容更好地配合。本质上,编码器600还可以根据视图15的附近视图间预测的编码块的所使用的视差矢量,确定这种深度估计,而不考虑任何深度图被编码或没有。
[0090] 如上所述,图8的编码器600被配置为改变在空间段边界300处的视图间预测。即,编码器600改变在这些空间段边界300处的视图间预测的方式。下面进一步概述其原因和目标。尤其地,编码器600通过以下这种方式改变视图间预测的方式:预测的第二视图15的各个实体,例如,视图间预测的编码块300的纹理样本内容或者这种编码块的某个预测参数,通过视图间预测602方式,仅仅正好取决于第一视图12的一个空间段301。通过观看某个编码块的视图间预测的变化的结果、进行视图间预测的样本值或预测参数,可以容易理解其优点。不改变或限制视图间预测602,编码该编码块必须推迟,直到完成参与视图间预测602的第一视图12的两个或更多个空间段301的编码。因此,编码器600必须在任何情况下遵守这个视图间编码延迟/偏移,并且编码器600通过时间重叠的方式编码视图12和15,不能进一步减少编码延迟。通过上述方式在空间段边界301改变/修改视图间预测602时,情况不同,这是因为在这种情况下,第一视图12的一个(仅仅一个)空间段301一完成编码,正好在讨论中的编码块300(进行视图间预测的一些实体)就可以经受编码。因此,减少可能的编码延迟。
[0091] 因此,图9示出了与图8的多视图编码器配合的多视图解码器620。图9的多视图解码器620被配置为使用从第一视图12向第二视图15的视图间预测602,从数据流40中重建多个视图12和15。如上所述,解码器620可以通过以下方式以与应该由图8的多视图编码器600份内完成的相同方式来重新进行视图间预测602:从数据流40中读取包含在数据流内的预测参数并且应用这预测参数,例如,针对第二视图15的相应编码块(其中的一些编码块是视图间预测的编码块)表示的预测模式。如上所述,视图间预测602可以替换地或者另外与预测参数本身的预测相关,其中,对于这种视图间预测的预测参数,数据流40可以包括预测残差或者指向一系列预测器的索引,其中的一个预测器根据602进行视图间预测。
[0092] 如在图8中已经所述,编码器可以改变在边界300上的视图间预测的方式,以便避免组合两个段301的信息的视图间预测602。编码器600可以通过对于解码器620透明的方式实现此结果。即,编码器600可以仅仅对其在可能的编码参数设置中的选择施加自我限制,以便解码器620仅仅应用在数据流40内传送的这样设置的编码参数,内在地避免在视图间预测602内的两个不同的段301的信息组合。
[0093] 即,只要解码器620对数据流40的解码施加并行处理,不感兴趣或不能应用并行处理,通过并行解码视图12和15,解码器620就可以仅仅忽视插入数据流40内的编码器600的信令,信令视图间预测的上述变化。更确切地说,根据本申请的一个实施方式,图8的编码器在数据流内作为信号发送(signal)在数据流40内的段边界300上的视图间预测的变化,即,在边界300上具有任何变化还是没有变化。如果施加了信令,那么解码器620可以将在边界300上的视图间预测602的变化视为一种保证,即在空间段301的空间段边界300上限制视图间预测602,使得视图间预测602不涉及第二视图15的任何部分302对除了共同定位到第二视图的相应部分302的第一视图12的共同定位部分306所在的空间段以外的空间段的任何依赖性。即,如果在边界300上的视图间预测602的变化作为信令被施加了,那么解码器620可以将这视为一种保证,保证:对于视图间预测602用于预测其样本或其预测参数中的任一个的相关视图15的任何块302,这个视图间预测602不引入对任何“相邻空间段”的任何依赖性。这意味着以下内容:对于每个部分/块302,具有与第二视图15的相应块302共同定位的第一视图12的共同定位部分606。例如,“共同定位”意在表示例如,视图12内的块圆周正好与块302的圆周精确地共索引(co‑indices)。替换地,不通过样本精度,而是通过层12的图片所划分的块的粒度,测量“共同定位”,以便确定“共同定位”块,产生从层12的图片分成块之中选择该块,即,例如,选择包含共同定位到块302的左上角的位置或者块302的另一个代表位置的块。“共同定位的部分/块”表示为606。要记住的是,由于视图12和15具有不同视图方向,所以共同定位的部分606可不包括与部分302相同的场景内容。然而,在视图间预测变化信令的情况下,解码器620假设经受视图间预测602的第二视图15的任何部分/块302通过视图间预测602仅仅取决于该空间段301,共同定位的部分/块606位于该空间段内。即,在观看彼此登记的第一和第二视图12和15的图片时,然后,视图间预测602不跨第一视图12的段边界,而是依然在第二视图15的相应部分/块302所在的那些段301内。例如,多视图编码器
600适当地限制第二视图15的视图间预测的部分/块302的信令/选择的视差矢量604,和/或适当地编码/选择到预测器列表内的索引,以便不从“相邻的空间段301”的信息中索引涉及视图间预测602的预测器。
[0094] 在相对于表示可以彼此相结合或不相结合的各种实施方式的图8和图9的编码器和解码器,继续描述各种可能的细节之前,注意以下内容。从图8和图9的描述中显而易见,编码器600可以通过不同的方式实现视图间预测602的其“变化/限制”。在更宽松的限制中,编码器600仅仅通过视图间预测602不结合两个或多个空间段的信息的方式来限制视图间预测602。图9的描述以更严格的限制实例为特征,根据该实例,甚至限制视图间预测602,以便不跨空间段302:即,经受视图间预测602的第二视图15的任何部分/块302仅仅从其“共同定位的块/部分606”所在的第一视图12的该空间段301的信息中通过视图间预测602获得其视图间预测。编码器相应地执行。后一个限制类型表示图8的描述的替换,并且甚至比前面描述的限制更严格。根据这两个替换,解码器602可以利用限制。例如,如果信令将被施加,那么通过在解码第二视图15时减少/降低相对于第一视图12的视图间解码偏移/延迟,解码器602可以利用视图间预测602的限制。替换地或此外,在决定尝试并行解码视图12和15时,解码器602可以考虑保证信令:如果该保证信令被施加,那么解码器可以伺机尝试进行视图间并行处理并且抑制该尝试。例如,在图9中显示的实例中,其中,第一视图12规则地划分成4个空间段301,每个空间段均表示第一视图12的图片的四分之一,第一视图12的第一空间段301一完全解码,解码器620就可以开始解码第二视图15。否则,假设视差矢量604仅仅具有水平性质,解码器620必需至少等待第一视图12的两个上部空间段301完全解码。沿着段边界300的视图间预测的更严格的变化/限制使更容易利用保证。
[0095] 上述保证信令可以具有范围/有效性,例如,包括仅仅一个图片或者甚至一系列图片。因此,如在后文中所述,可以在视频参数集或序列参数集或甚至图片参数集内进行信令。
[0096] 迄今,在图8和图9中提出了实施方式,根据这些实施方式,除了保证信令以外,数据流40以及图8和图9的编码器和解码器编码/解码数据流的方式不随着视图间预测602的变化而变化。确切地说,解码/编码数据流的方式保持相同,与在视图间预测602内是否应用自我限制无关。根据一个替换的实施方式,然而,编码器和解码器甚至改变其编码/解码数据流40的方式,以便利用保证情况,即,在空间段边界300上的视图间预测602的限制。例如,针对第一视图12的空间段边界300的共同位置附近的第二视图15的视图间预测的块/部分302,在数据流40中可信令的可能视差矢量的域可被限制。例如,再次参照图7,如上所述,图
7显示了第二视图15的两个示例性块302’和302,一个块(即,块302)接近第一视图12的空间段边界300的共同定位位置。第一视图12的空间段边界300的共同定位位置在转移到第二视图15内时显示为622。如图7中所示,块302的共同定位的块306接近空间段边界300,垂直地分离包括共同定位的块606的空间段301a和水平相邻的空间段301b,以某种程度上太大的视差矢量将共同定位的块/部分606移动到右边(即,朝着相邻的空间段301b),会造成至少部分从这个相邻的空间段301b的样本中复制视图间预测块302,在这种情况下,视图间预测
602与空间段边界300相交。因此,在“保证情况”下,编码器600不选择块302的这种视差矢量,因此,可以限制块302的可能视差矢量的可编码域。例如,在使用霍夫曼编码时,用于编码视图间预测块302的视差矢量的霍夫曼代码可以改变,以便利用可能视差矢量的其限制域的情况。在使用算术编码的情况下,例如,与二进制算术方案相结合的另一个二值化可以用于编码视差矢量,或者可以使用在可能的视差矢量之中的另一个概率分布。根据这个实施方式,通过相对于传输在空间段边界300的共同定位的位置附近的空间段302的视差矢量,减少在数据流40内要传送的边信息量,可以部分补偿由在空间段边界300上的视图间预测限制造成的微小编码效率减少。
[0097] 因此,根据上述实施方式,根据是否应用保证情况,多视图编码器和多视图解码器均改变其从数据流中解码/编码视差矢量的方式。例如,改变用于解码/编码视差矢量的霍夫曼代码,或者改变用于在算术上解码/编码视差矢量的二值化和/或概率分布。
[0098] 为了相对于具体实例更清晰地描述在图8和图9中的编码器和解码器限制在数据流40内可信令的可能视差矢量的域的方式,参照图10。图10再次显示了视图间预测块302的编码器和解码器的通常行为:为当前块302确定在可能视差实例的域之中的视差矢量308。因此,块302是视差补偿预测的预测块。然后,在参考部分304上,在从共同定位到当前部分
302的第一视图12的共同定位部分306偏移了所确定的视差矢量308的参考部分304上对第一视图12取样。在数据流内可信令的可能视差矢量的域的限制如下进行:做出限制,使得参考部分304完全位于共同定位部分306在空间上所在的空间段301a内。例如,在图10中显示的视差矢量308不满足这种限制。因此,位于块302的可能视差矢量的域的外面,并且根据一个实施方式,就块302而言,在数据流40内不可信令。然而,根据替换的实施方式,视差矢量
308在数据流内可信令,但是在保证情况下,编码器600避免应用这个视差矢量308,并且例如,选择应用块302的另一个预测模式,例如,空间预测模式。
[0099] 图10还示出了为了执行视差矢量的域的限制,可以考虑内插滤波器内核半宽度10。更确切地说,在从第一视图12的图片中复制视差补偿的预测块302的样本内容时,在亚像素视差矢量的情况下,通过使用具有某个内插滤波器内核尺寸的内插滤波器来应用内插,可以从第一视图12中获得块302的每个样本。通过组合在滤波器内核311内的位于样本位置“x所在的中心处的样本,可以获得在图10中使用“x”显示的样本值,因此,在这种情况下,甚至可以限制块302的可能视差矢量的域使得在参考部分304、滤波器内核311内没有任何样本覆盖相邻的空间段301b,而是依然在当前空间段301a内。因此,可限制或不限制可信令的域。根据一个替换的实施方式,可以仅仅根据某个例外规则,填充位于相邻的空间段
301b内的滤波器内核311的样本,以便针对亚像素视差向量避免可能视差向量的域的额外限制。然而,仅仅在信令保证被施加的情况下,解码器支持更换填充。
[0100] 后一个实例清楚地表明,除了或替代在商解码数据流的变化,解码器620可以或可以不,响应于由编码器600插入数据流内的信令和数据流,改变在空间段边界300上执行视图间预测的方式。例如,如刚刚描述的,编码器和解码器根据是否应用保证情况,在延伸穿过空间段边界300的部分不同地填充内插滤波器内核。这同样适用于参考部分306本身:这同样允许至少部分延伸到相邻的空间段301b内,使用独立于位于当前空间段301a外面的任何信息的信息,替换地填充相应的部分。实际上,编码器和解码器可以在保证的情况下,可以将空间边界300视为图片边界,通过从当前空间段301a外插,来填充参考部分304的部分和/或内插滤波器内核311。
[0101] 还如上所述,视图间预测602不限于视图间预测块302的逐样本的内容的预测。确切地说,视图间预测还可以适用于预测参数的预测,例如,涉及视图15的时间预测块302的预测的运动参数、或者涉及空间预测块302的预测的空间预测参数的预测。为了说明在边界300上的这组视图间预测602上施加的可能的变化、限制,参照图11。图11示出了相关视图15的块302,至少尤其使用视图间预测,预测其参数。例如,块302的参数的几个预测器的列表可以由视图间预测602确定。为此,例如,编码器和解码器如下进行:为当前块302选择第一视图12的参考部分。在第一层12的图片所划分的编码块、预测块等块之中,进行参考部分/块314的选择或推导。对于其推导,在第一视图12内的代表位置318可以确定为共同定位到块302的代表位置628或者与块302相邻的相邻块320的代表位置630中。例如,相邻块320可以是位于块302顶部的块。块320的确定可以涉及从第二视图层15的图片所划分的块之中选择块320,作为包括直接位于块302的左上角样本的顶部的样本的块。代表位置628和630可以是位于左上角的样本或者位于块的中间的样本等。然后,在第一视图12内的参考位置318是共同定位到628或630中的位置。图11示出了到位置628的共同位置。然后,编码器/解码器估计视差矢量316。例如,这可以基于当前场景的估计的深度图或者分别使用已经解码的并且在块302或块320的空间‑时间邻域内的视差矢量来进行。这样确定的视差矢量316应用于代表位置318中,以便矢量316的头部指向位置632。在第一视图12的图片划分成块之中,参考部分314选择为包括位置632的部分。如上所述,在进行部分/块314的选择之中的划分可以是视图12的编码块、预测块、残差块和/或变换块的划分。
[0102] 根据一个实施方式,仅仅多视图编码器检查所述参考部分314是否位于相邻空间段301b内,即,不包括参考点628的共同位置所在的共同定位的块的空间段。如果编码器将上述保证信令给解码器,那么编码器600抑制对当前块302的参数的任何应用。即,块302的参数的预测器列表可以包括造成边界300交叉的视图间预测器,但是编码器600避免选择该预测器并且选择不指向不想要的预测器的块302的索引。如果多视图编码器和解码器在保证的情况下检查所述参考部分314是否位于相邻空间段301b内,那么编码器和解码器可以使用另一个预测器代替或者仅仅从预测器列表中排除“边界交叉”视图间预测器,例如,所述预测器列表还可以包括空间和/或时间预测的参数和/或一个或多个默认预测器。条件检查(即,参考部分314是还是不是空间段301a的一部分)以及条件替换或排除仅仅在保证的情况下进行。在未保证的情况下,参考部分314是否在空间段301a内的任何检查可以停止,并且从参考部分314的属性中获得的预测器的应用到块302的参数的预测可以进行,与参考部分314是否在空间段301a或301b内无关。在不将从参考部分314的属性中获得的任何预测器加入当前块302的预测器列表中或者增加替换预测器的情况下,根据位于空间段301a内或外面的参考块314,由编码器以及解码器620执行通常视图间预测的相应变形。通过这种措施,到块302的预测器的确定列表内的任何预测器索引指向在解码器内的预测器的相同列表。可以响应于是否应用保证情况,限制块302的索引的可信令的域。在保证情况应用的情况下,而是仅仅编码器执行检查,多视图编码器形成块302的预测器列表,与位于空间段301a内的参考部分314无关(并且甚至与是否应用保证情况无关),然而,在保证情况下,限制索引,以便不从预测器列表中选择预测器,以防从位于空间段301a外面的块314的属性中获得预测器。在这种情况下,解码器620可以通过相同的方式获得块302的预测器列表,即,在保证情况和未保证情况中通过相同的方式,这是因为编码器600已经注意到视图间预测不需要相邻空间段301b的任何信息。
[0103] 关于块302的参数以及参考部分314的属性,要注意的是,其可以是运动矢量、视差矢量、残差信号(例如,变换系数)和/或深度值。
[0104] 在图8到图11中描述的视图间预测编码概念可以引入到HEVC标准的当前设想的扩展内,即,通过下面描述的方式。迄今,在下面直接提出的描述还解释为涉及上面在图8到图11中提出的描述的可能实现细节的基础。
[0105] 作为中间注意的,要注意的是,以上讨论的作为在改变/限制视图间预测所在的边界上形成单元的空间段301,不必在减轻或者支持层间并行处理的单元中形成这种空间段。换言之,虽然上面讨论的图8到图11的空间段可以是基层12所分成的瓦片,但是其他实例也可行,例如,空间段301形成基层12的编码树根块CTB的一个实例。在下面描述的实施方式中,空间段301与瓦片的定义结合,即,空间段是瓦片或瓦片组。
[0106] 根据后面解释的在HEVC中的超低延迟和并行化的限制,通过确保划分基层图片(尤其是瓦片)的方式,限制层间预测。
[0107] HEVC允许通过垂直和水平便捷的网格将编码的基层图片的CTB分成矩形区域,这些区域称为瓦片并且可以单独处理,除了环路滤波以外。可以在瓦片边界上关闭环路滤波器,以使其完全独立。
[0108] 在瓦片边界上打破解析和预测依赖性,与在图片边界上很像,然而,如果相应地配置以便减少瓦片边界伪影,那么环路滤波器可以跨越瓦片边界。因此,各个瓦片的处理不完全依靠在图片内的其他瓦片,或者在很大的程度上依靠于滤波配置。安装限制,即瓦片的所有CTB应属于相同的薄片或者薄片的所有CTB应属于相同的瓦片。在图1中可以看出,瓦片促使CTB扫描次序与瓦片的次序有关,即,在继续属于第二瓦片(例如,右上角)的所有CTB之前,穿过属于第一(例如,左上角)瓦片的所有CTB。通过在图片内构成网格的在每个瓦片行和列内的CTB的数量和尺寸,限定瓦片结构。这个结构可以逐个帧地改变或者在编码的视频序列中保持不变。
[0109] 图12示出了在划分成9个瓦片的图片内的CTB示例性。粗黑线表示瓦片边界,并且编号表示CTB的扫描次序,也揭示了瓦片次序。
[0110] 在基层位流内覆盖该对应图像区域的所有瓦片一解码,就可以解码HEVC扩展的增强层瓦片。
[0111] 以下部分使用图7到11的概念描述了允许更低层间编码偏移/延迟的约束、信令和编码/解码处理变形。
[0112] 在HEVC内涉及瓦片边界的修改的解码处理可以如下所示:
[0113] a)运动或视差矢量不应跨越基层内的瓦片。
[0114] 如果启用约束条件,那么以下内容适用:
[0115] 如果层间预测(例如,样本值、运动矢量、残差数据或其他数据的预测)将基视图(层12)用作参考图片,那么应约束视差或运动矢量,以便参考的图片区域与同位配置的基层CTU属于相同的瓦片。在具体的实施方式中,在解码处理中,剪除运动或视差矢量308,以便参考的图片区域位于相同的瓦片内部,并且仅仅从位于相同瓦片内部的信息中,预测参考的亚像素位置。更具体而言,在当前HEVC样本内插处理中,这会将指向亚像素位置的运动矢量限制为远离瓦片边界300剪除3到4个像素,或者在视图间运动矢量的视图间残差预测处理中,这会限制指向在相同瓦片内的位置的视差矢量。替换的实施方式调整亚像素内插滤波器,以处理与图片边界相似的瓦片边界,以便允许运动矢量指向比亚像素内插滤波器的内核尺寸310更接近瓦片边界的亚像素位置。替换的实施方式表示位流约束,这禁止使用在先前描述的实施方式中剪除的运动或视差矢量。
[0116] b)在处于不同的瓦片内时,不使用在基层内的同位配置块的相邻块。
[0117] 如果启用约束条件,那么以下内容适用:
[0118] 如果基层用于相邻块的预测(例如,TMVP或相邻块视差推导)并且使用瓦片,那么以下适用:如果CTU B属于与并列的基层CTU A相同的瓦片,那么仅仅使用源自与在基层内的并列的CTU A不同的CTU B的预测器候选。例如,在当前HEVC推导处理中,CTU B可以位于并列的CTU A的右边。在本发明的具体实施方式中,使用不同的预测代替预测候选。例如,并联的PU可以用于代替预测。在本发明的另一个实施方式中,禁止在编码的位流内使用相关的预测模式。
[0119] 将刚刚概述的HEVC变形可能性转移到图8和图11的描述上,要注意的是,就图11的预测器替换而言,可以选择该替换物,作为第一层12的该块的相应属性,包括当前块302本身的参考位置628的共同定位的位置。
[0120] c)信令
[0121] 在具体实施方式中,以下高级语法可以使用VPS或SPS来能够使用N个标志而具有上述约束/限制,例如,如图13A、图13B中所示。
[0122] 在此处,inter_layer_PREDTYPE_RESTYPE_SCAL_flag_1到inter_layer_PREDTYPE_RESTYPE_SCAL_flag_N中的PREDTYPE、RESTYPE、SCAL可以由下面描述的不同值代替:
[0123] PREDTYPE表示约束/限制适用的预测类型,并且可能是以下或未列出的其他预测类型中的一个:
[0124] –例如,temporal_motion_vector_prediction,用于从在基视图内的同位配置块的相邻块中预测时间运动矢量;
[0125] –例如,disparity_vector_prediction,用于从在基视图内的同位配置块(collocated block)的相邻块中预测视差矢量;
[0126] –例如,depth_map_derivation,用于从基视图中预测深度值;
[0127] –例如,inter_view_motion_predition,用于从基视图中预测运动矢量;
[0128] –例如,inter_view_residual_prediction,用于从基视图中预测残差数据;
[0129] –例如,inter_view_sample_prediction,用于从基视图中预测样本值。
[0130] 可替换地,并不明确地信令用于限制/约束适用的预测类型,并且限制/约束适用于所有预测类型或者限制/约束仅利用每组一个标志来信令用于预测类型组。
[0131] RESTYPE表示限制的类型并且可能是以下中的一个:
[0132] –例如,约束(表示位流约束,并且标志可以包含在VUI内);
[0133] –例如,限制(表示剪除(a)或不同预测器(b)的选择)。
[0134] –SCAL表示限制/约束仅仅适用于相同类型的层:
[0135] –例如,same_scal(表示限制仅仅适用在基层与增强层是相同的可扩展类型时);
[0136] –例如,diff_scal(表示限制适用,与基层和增强层的可扩展类型无关)。
[0137] 在图14涉及的替换的实施方式中,所有描述的限制的使用可以在高级语法中为超大延迟模式进行信令,例如,在VPS或SPS中作为ultra_low_delay_decoding_mode_flag。
[0138] 等于1的ultra_low_delay_decoding_mode_flag表示在瓦片边界处使用修改的解码处理。
[0139] 由这个标志暗示的限制还可以包括对瓦片边界对准的约束以及对瓦片边界的上取样滤波器限制。
[0140] 即,参照图1,保证信令可以另外用于信令保证,在预定的时间段内(例如,在一系列图片之上扩展的时间段),细分第二层的图片15,以便在第二层的图片的空间段82之间的边界84覆盖第一层的空间段80的每个边界86(如果考虑空间可扩展性,那么可能在上取样之后)。在小于预定的时间段的时间间隔内(例如,以单独图片为单位)(即,在图片间距内),解码器依然定期确定第一层和第二层的图片12、15根据多层视频数据流40的短期语法元素实际上细分成空间段80和82,但是关于对准的指示已经有助于对并行处理工作量分配的计划。例如,在图1中的实线84表示瓦片边界84与层0的瓦片边界86完全在空间上对准的一个实例。然而,上述保证也允许层1的瓦片划分,以比层0的瓦片划分更精细,以便层1的瓦片划分包括在空间上不覆盖层0的任何瓦片边界86的进一步额外瓦片边界。在任何情况下,关于在层1与层0之间的瓦片对齐的知识,帮助解码器分配工作量或在同时并行处理的空间段之中处理可用的功率。在没有长期语法元素结构的情况下,解码器需要在更小的时间间隔内(即,每个图片)执行工作量分配,从而浪费计算机功率,以便执行工作量分配。另一方面是“伺机解码”:具有多个CPU核心的解码器可以利用关于层的并行化的知识,来决定尝试解码或者不尝试解码具有更高复杂度的层,即,或者更高数量的层,或者换言之,进一步视图。通过使用相同解码器的所有核心,超过单个核心的功能的位流可能可解码。如果配置文件(profile)和等级指示器不涉及在最小并行化上的这种指示,那么这个信息尤其有用。
[0141] 如上所述,在多层视频(基层图片12也具有与相关视图图片15不同的空间分辨率)的情况下,可以使用保证信令(示例性地比较ultra_low_delay_decoding_mode_flag),以便操纵上取样滤波器36。如果在空间段边界86之上在层0中执行上取样滤波,那么在上取样滤波组合时,相对于层0的空间段80的编码/解码,在并行解码/编码层1的空间段82中满足的延迟增大,从而使用作在层1的块41的层间预测中使用的预测参考38的层0的相邻空间段的信息彼此相关。例如,参照图15。通过覆盖的方式显示图片12和15,根据空间对应性,这两个图片标出尺寸并且彼此对齐,即,显示场景的相同部分的部分彼此覆盖。图片12和15示例性显示为分别分成6和12个空间段,例如,瓦片。滤波器内核说明性显示为在图片12的左上角瓦片之上移动,以便获得其上取样版本,其用作在图片15的瓦片内层间预测任何块的基础,在空间上覆盖左上角瓦片。在一些中间情况下,例如,在202上,内核200覆盖图片12的相邻瓦片。在上取样版本的位置202上的内核200的中间的样本值从而取决于图片12的左上角瓦片的两个样本以及位于其右边的图片12的瓦片的样本。如果图片12的上取样样本用作层间预测的基础,那么并行处理层的段的层间延迟增啊。因此,限制可以帮助增大在不同层之上的并行化量,因此,减小总体编码延迟,自然,语法元素还可以是对一系列图片有效的长期语法元素。可以通过一种以下方式实现限制:例如,在覆盖位置202上填充内核200的覆盖部分,在内核200的非虚线部分内的样本值具有中心趋势,将使用线性或其他函数的非线性部分外插到虚线部分等内。
[0142] 下面在VPS中提供一个替换的实施方式,作为一个实例,其中,上述限制/约束由ultra_low_delay_decoding_mode_flag控制,但是替换地(在禁用标志时),可以单独地启用每个限制/约束。对于这个实施方式,参照图13C和图13D。这个实施方式也可以包含在其他非VCL NAL单元(例如,SPS或PPS)内。在图13C和图13D中,
[0143] 等于1的ultra_low_delay_decoding_mode_flag规定du_interleaving_enabled_flag、interlayer_tile_mv_clipping_flag、depth_disparity_tile_mv_clipping_flag、inter_layer_tile_tmvp_restriction_flag以及independent_tile_upsampling_idc推断为等于1,并且在VPS、SPS或PPS内不存在。
[0144] 在分层编码视频序列中使用并行化技术(例如,瓦片)时,从延迟的角度来看,有利地控制编码工具的限制,例如,在HEVC的扩展中的视图间预测,以不通过统一的方式跨过瓦片的边界。
[0145] 在一个实施方式中,independent_tiles_flag的值确定具有语法元素,其控制,例如inter_layer_PREDTYPE_RESTYPE_SCAL_flag_x或independent_tile_upsampling_idc的各个限制/约束。independent_tiles_flag可以包含在VPS,如在图13E中所示。在此处,等于1的independent_tiles_flag规定inter_layer_PREDTYPE_RESTYPE_SCAL_flag_1到inter_layer_PREDTYPE_RESTYPE_SCAL_flag_N以及independent_tile_upsampling_idc推断为等于1,并且在VPS、SPS或PPS内不存在。
[0146] 在图13F中,在VPS中提供一个替换的实施方式,作为一个实例,其中,上述约束由independent_tiles_flag控制,但是替换地(在禁用标志时),可以单独地启用每个约束。这个实施方式也可以包含在其他非VCL NAL单元(例如,SPS或PPS)内,如在图13G中所示。
[0147] 概述目前在图8到图15中描述的以上实施方式,解码器620可以使用在数据流内的保证信令,以便优化在解码不同层/视图12和15之间的层间解码偏移,或者解码器620可以使用保证,以便如上所述,通过参照“伺机解码”,抑制或允许层间并行处理尝试。
[0148] 接下来描述的本申请的方面涉及在多层视频编码中允许更低的端对端延迟的问题。值得注意的是,接下来描述的方面可以与前面描述的方面相结合,但是反过来也是如此,即,涉及现在描述的方面的实施方式也可以不需要上面描述的细节而实现。在这方面,还应注意的是,在后文中描述的实施方式不限于多视图编码。涉及本申请的第二方面的在后文中提及的多层可以涉及不同的视图,但是也可以表示具有不同程度的空间分辨率、SNR精确度等的相同视图。可能的可扩展性维度(沿着所述维度,下面讨论的多层增加由前面的层传递的信息内容)是多样的,并且包括(例如)多个视图、空间分辨率、SNR精确度等,并且同讨论本申请的第三和第四方面,进一步可能性也变得显而易见,根据一个实施方式,这些方面也可以与目前描述的方面相结合。
[0149] 现在描述的本申请的第二方面涉及实际上实现低编码延迟的问题,即,将低延迟理念嵌入NAL单元的框架内。如上所述,NAL单元由薄片构成。瓦片和/或WPP概念自由地单独选择,用于多层视频数据量的不同层。因此,具有在其内封包化的薄片的每个NAL单元可以在空间上归因于相应薄片所涉及的图片的区域。因此,为了在层间预测的情况下,能够低延迟编码,有利地能与属于相同时刻的不同层的NAL单元交错,以便允许编码器和解码器通过允许并行处理属于相同时刻的不同层的这些图片的方式,开始分别编码和传输并且解码在这些NAL单元内封包化的薄片。然而,根据应用,与允许在层维度内并行处理的能力相比,编码器可以优选地在不同层的图片之间使用不同的编码次序的能力,例如,使用不同层的不同GOP结构。因此,根据第二方面,在后文中在图16中再次描述数据流的构造。
[0150] 图16示出了多层视频资料201,其由用于不同层中的每层的一系列图片204构成。每层可以描述由多层视频资料201描述的这个场景的不同性质。即,例如,可以在:颜色成分、深度图、透明度和/或视图点之中选择层的意义。不失一般性地,假设不同层对应于不同的视图,其中视频资料201是多视图视频。
[0151] 在需要低延迟的应用的情况下,编码器可以决定信令长期高级语法元素(比较:将下面介绍的du_interleaving_enabled_flag设置为等于1)。在这种情况下,由编码器生成的数据流看起来与在图16的中间表示的数据流一样,在该数据流周围具有圆圈。在这情况下,多层视频流200由NAL单元202的序列构成,以便属于一个访问单元206的NAL单元202与一个时间上的时刻的图片相关,并且不同的访问单元的NAL单元202与不同的时刻相关。在每个访问单元206内,对于每层,与各个层相关的NAL单元中的至少一些被分组成一个或多个解码单元208。这表示以下内容:在NAL单元202之中,如上所示,具有不同类型的NAL单元,例如,一方面是VCL NAL单元,另一方面是非VCL NAL单元。更具体而言,NAL单元202可以是不同类型,并且这些类型可以包括:
[0152] 1)NAL单元携带薄片、瓦片、WPP子流等,即,语法元素涉及在图片取样规模/粒度上描述图片内容的预测参数和/或残差数据。可以具有一个或多个这种类型。VCL NAL单元是这种类型。这种NAL单元不可移动;
[0153] 2)参数组NAL单元可以携带不频繁改变的信息,例如,长期编码设置,上面描述了其中的一些实例。例如,这种NAL单元可以在某种程度上并且反复地散置在数据流内;
[0154] 3)补充增强信息(SEI)NAL单元可以携带可选数据。
[0155] 解码单元可以由上述NAL单元中的第一个构成。更精确地说,解码单元可以由在访问单元内的一个或多个VCL NAL单元以及相关联的非VCL NAL单元构成。因此,解码单元描述一个图片的某个区域,即,编码成一个或多个薄片的区域包含在其内。
[0156] 与不同的层相关的NAL单元的解码单元208交错,以便对于每个解码单元,用于编码相应的解码单元的层间预测基于除了与相应的解码单元相关的层以外的层的图片部分,这些部分编码成位于在相应访问单元内的相应解码单元之前的解码单元。例如,参照在图16中的解码单元208a。示例性地,设想这个解码单元与相关层2的相应图片的区域210以及某个时刻相关。在相同时刻的基层图片内的共同定位的区域由212表示,并且需要略微超过这个区域212的这个基层图片的区域,以便通过利用层间预测,将解码单元208a完全解码。
例如,略微超过可以是视差补偿预测的结果。这反过来表示位于在访问单元206内的解码单元208a之前的解码单元208b应完全覆盖层间预测所需要的区域。参照以上描述,其涉及可以用作交错粒度的边界的延迟指示。
[0157] 然而,如果应用更加利用在不同层之间不同地选择图片的解码次序的自由,那么编码器可以优选地将du_interleaving_enabled_flag设置为等于0,这种情况在图16的底部描述为2,在其周围具有圆圈。在这种情况下,多层视频数据流具有单独的访问单元,用于属于层ID的一个或多个值的某个对的每个图片以及单个暂时的时刻。如图16中所示,按照第i‑1个解码次序,即,时刻t(i‑1),每个层可以由或不由访问单元AU1、AU2(以此类推)构成(比较:时刻t(i)),其中,所有层包含在单个访问单元内AU1。然而,在这种情况下,不允许交错。访问单元设置数据流200内,在解码次序索引i之后,即,用于每层的解码次序索引i的访问单元,然后,具有涉及对应于解码次序i+1的这些层的图片的访问单元,以此类推。在数据流内的时间图片间预测信号信令相等的编码次序或不同的图片编码次序是否适用于不同的层,并且例如,信号可以放在数据流内的一个位置内内或者甚至冗余地放在不止一个位置内,以便在封包化为NAL单元的薄片内。
[0158] 关于NAL单元类型,应注意的是,在其中限定的排序规则可以允许解码器决定在连续访问单元之间的边界放在什么位置,与在传输期间是否去除了可移动数据包类型的NAL单元无关。例如,可移动数据包类型的NAL单元可以包括SEI NAL单元或者冗余图片数据NAL单元或其他特定的NAL单元类型。即,在访问单元之间的边界不移动,而是保持,并且依然,在每个访问单元内遵守排序规则,但是在任何两个访问单元之间的每个边界上,打破所述排序规则。
[0159] 为了完整性,图17示出了du_interleaving_flag=1的情况,例如,允许属于不同层(但是属于相同的时刻t(i–1))的数据包分布在一个访问单元内。du_interleaving_flag=0的情况描述为2,在其周围具有圆圈,与图16一致。
[0160] 然而,在图16和17中,要注意的是,上述交错信令或交错信号可以停止,造成多层视频数据流,根据在图16和17中显示为1(在其周围具有圆圈)的情况,多层视频数据流必然使用访问单元定义。
[0161] 根据一个实施方式,解码器可以酌情决定相对于其与数据流的层的相关性,包含在每个访问单元内的NAL单元是否实际上交错。为了容易处理数据流,语法元素(例如,du_interleaving_flag)可以将在收集某个时间戳的所有NAL单元的访问单元内的NAL单元的交错或非交错信令给解码器,以便解码器可以更容易处理NAL单元。例如,每当交错信令为打开时,解码器可以使用不止一个图片缓冲器,如在图18中简单所述。
[0162] 图18示出了解码器700,其可以如上面在图2中所述来体现,并且可以甚至符合在图9中提出的描述。示例性地,图17的多层视频数据流(选项1,在其周围具有圆圈)显示为输入的解码器700。为了更容易执行每个访问单元AU的属于不同层(但是属于共同的时刻)的NAL单元的去交错,解码器700使用两个缓冲器702和704,对于每个访问单元AU,例如,多路复用器706给缓冲器702转发属于第一层的访问单元AU的NAL单元,并且例如,给缓冲器704转发属于第二层的NAL单元。然后,解码单元708执行解码。例如,在图18中,例如,使用非阴影线显示属于基础/第一层的NAL单元,然而,使用阴影线显示相关/第二层的NAL单元。如果上述交错信号存在于数据流内,那么解码器700可以通过以下方式响应于这个交错信令:如果交错信令将NAL单元信令为打开,即,不同层的NAL单元在一个访问单元AU内彼此交错,并且解码器700使用缓冲器702和704,多路复用器706在这些缓冲器上分布NAL单元,如上所述。然而,如果不存在,那么解码器700仅仅使用一个缓冲器702和704,用于由任何访问单元包括的所有NAL单元,例如,缓冲器702。
[0163] 为了更容易理解图18的实施方式,参照图18以及图19,图19显示了编码器,其被配置为生成多层视频数据流,如上所述。图9的编码器通常使用参考符号720表示,并且编码(在此处,示例性地)2层的输入图片,为了容易理解,这两层表示为形成基层的层12以及形成相关层的层1。如上所述,可以形成不同的视图。一般编码次序(编码器720可以沿着该次序编码层12和15的图片)大体上沿着其时间(显示时间)次序扫描这些层的图片,其中,编码次序722可以以图片组为单位,偏离图片12和15的显示时间次序。在每个暂时的时刻,编码次序722沿着其依赖性穿过层12和15的图片,即,从层12到层15。
[0164] 编码器720将层12和15的图片编码成数据流40,以上述NAL单元为单位,每个NAL单元在空间的意义上与一部分相应图片相关联。因此,属于某个图片的NAL单元在空间上并且如上所述细分或划分相应的图片,层间预测使层15的图片部分取决于层12的时间对准图片的部分,这些部分大体上共同定位到层15图片的相应部分中,“大体上”包围视差位移。在图19的实例中,编码器720选择为利用交错可能性,形成收集属于某个时刻的所有NAL单元的访问单元。在图19中,所显示的在数据流40中的部分对应于输入图18的解码器中的部分。
即,在图19的实例中,编码器720在编码层12和15中使用层间并行处理。就时刻t(i–1)而言,层12的图片的NAL单元1一编码,编码器720就开始编码层1的图片。完成了编码的每个NAL单元由编码器720输出,具有对应于相应的NAL单元由编码器720输出的时间的到达时间戳。在时刻t(i–1)编码层12的图片的第一NAL单元之后,编码器720继续编码层12的图片的内容,并且输出层12的图片的第二NAL单元,具有在层15的时间对准图片的第一NAL单元的到达时间戳之后的到达时间戳。即,编码器720通过交错的方式输出均属于相同的时刻的层12和15的图片的NAL单元,并且通过这个交错的方式,实际上传输数据流40的NAL单元。编码器720选择利用交错的可能性的情况通过相应的交错信令724在数据流40内由编码器720表示。由于编码器720能够比非交错场景更早输出时刻t(i–1)的相关层15的第一NAL单元,根据非交错场景,层15的第一NAL单元的输出推迟,直到完成时间对准的基层图片的所有NAL单元的编码和输出,所以在图18的解码器与图19的编码器之间的端对端延迟可以减少。
[0165] 如上所述,根据一个交替的实例,在非交错的情况下,即,在信令724表示非交错的替换物的情况下,访问单元的定义依然相同,即,访问单元AU可以收集属于某个时刻的所有NAL单元。在这种情况下,信令724仅仅表示在每个访问单元内,属于不同层12和15的NAL单元是否交错。
[0166] 如上所述,根据信令724,图18的解码器使用一个缓冲器或两个缓冲器。在打开交错的情况下,编码器700在这两个缓冲器702和704上分布NAL单元,以便例如,层12的NAL单元在缓冲器702内缓冲,而层15的NAL单元在缓冲器704内缓冲。缓冲器702和704逐个访问单元地清空。在信令724表示交错或非交错的情况下,都是如此。
[0167] 如果编码器720在每个NAL单元内设置去除时间,那么这优选,以便解码单元708利用使用交错并行处理从数据流40中解码层12和15的可能性。然而,即使解码器700不应用层间并行处理,端对端延迟已经减少。
[0168] 如上所述,NAL单元可以是不同的NAL单元类型。每个NAL单元可以具有NAL单元类型索引,表示在一组可能类型中的相应NAL单元的类型,并且在每个访问单元内,相应访问单元的NAL单元的类型可以在NAL单元类型之中遵守排序规则,而仅仅在两个连续的访问单元之间,打破所述排序规则,以便通过调查这个规则,解码器700能够识别访问单元边界。关于更多信息,参照H.264标准。
[0169] 在图18和19中,解码单元DU可识别,作为属于相同层的在一个访问单元内的几圈连续的NAL单元。例如,在访问单元AU(i–1)内的在图19中表示为“3”和“4”的NAL单元形成一个DU。访问单元AU(i–1)的其他解码单元均包括仅仅一个NAL单元。图9的访问单元AU(i–1)共同示例性包括6个解码单元DU,其替换地设置在访问单元AU(i–1)内,即,由一个层的几圈NAL单元构成,所述一个层在层1与层0之间替换地改变。
[0170] 与第一方面相似,在下文中,现在概述了在前文中描述的第二方面可以置入HEVC扩展内。
[0171] 然而,在这之前,为了完整性起见,描述了的当前HEVC的进一步方面,这能够进行图片间并行处理,即,WPP处理。
[0172] 图20描述了目前在HEVC内实现WPP的方式。即,本描述也形成了任何上面或下面描述的实施方式的WPP处理的可选实现方式的基础。
[0173] 在基层中,波前并行处理允许并行处理编码树块(CTB)行。在CTB行之上未打破预测依赖性。关于熵编码,WPP改变对在相应的上部CTB行内的左上角CTB的CABAC依赖性,如在图20中所示。一旦完成相应的右上角CTB的熵解码,在以下行中熵编码CTB就可以开始。
[0174] 在增强层中,一旦包含相应图像区域的CTB完全解码和可用,CTB的解码就可以开始。
[0175] 在HEVC及其扩展中,提供解码单元的以下定义:
[0176] 解码单元:如果SubPicHrdFlag等于0,那么是访问单元,否则,是访问单元的子集,其由在访问单元内的一个或多个VCL NAL单元以及相关联的非VCL NAL单元构成。
[0177] 在HEVC中,如果由外部方式优选,那么假想参考解码器(HRD)可以通过解码单元等级(或子图片等级)可选地操作CPB和DPB,并且子图片HRD参数可用。
[0178] HEVC规范[1]以如下限定的所谓解码单元的概念为特征。
[0179] 3.1解码单元:如果SubPicHrdFlag等于0,那么是访问单元,否则,是访问单元的子集,其由在访问单元内的一个或多个VCL NAL单元以及相关联的非VCL NAL单元构成。
[0180] 在存在于用于3D[3]、多视图[2]或空间可扩展性[4]的HEVC扩展内的分层编码视频序列中,其中,通过预测性层间/视图间编码工具,根据下层,编码视频数据(例如,具有更高的保真度、空间分辨率或不同的摄像头视角)的额外表示,可以有利的是,在位流内交错相关层的(在图片区域方面)相关的或共同定位的解码单元,以在编码器和解码器上尽可能减少端对端延迟。
[0181] 为了允许在编码的视频位流内交错解码单元,必须信令和执行在编码的视频位流上的某些约束。
[0182] 在以下分段内详细描述可以在HEVC内实现以上交错概念的方式,并且解释原因。
[0183] 就从MV‑HEVC规范[2]的文件初稿中提取的HEVC扩展的当前状态而言,强调使用访问单元的定义,根据该定义,访问单元包含一个编码图片(具有nuh_layer_id的特定值)。一个编码图片下面与在MVC中的视图分量基本上相同地定义。访问单元应是否限定为包含具有相同的POC值的所有视图分量,这是一个开放性问题。
[0184] 基础HEVC规范[1]定义为:
[0185] 3.1访问单元:根据规定的分类规则彼此相关联的一组NAL单元按照解码次序连续,并且包含正好一个编码图片。
[0186] 注释1:除了包含编码图片的VCL NAL单元以外,访问单元还可以包含非VCL NAL单元。访问单元的解码始终产生解码图片。
[0187] 似乎通过每个相关视图解释为单独编码图片并且需要包含在单独访问单元内的方式,解释允许在每个访问单元内的仅仅一个编码图片的访问单元(AU)定义。这在图17中描述为“2”。
[0188] 在先前的标准中,“编码图片”包含某个时间戳的图片的视图表示的所有层。
[0189] 访问单元不能交错。这表示如果每个视图包含在不同的访问单元内,那么在可以解码相关视图的第一解码单元(DU)之前,基视图的整个图片需要在DPB内接收。
[0190] 对于具有相关层/视图的超低延迟操作,可以有利地交错解码单元。
[0191] 图21的实例包含三个视图,每个视图均具有三个解码单元。通过从左到右的方式接收解码单元:
[0192] 如果每个视图包含在自身的访问单元内,那么解码视图3的第一解码单元的最小延迟包括完全接收视图1和2。
[0193] 如果可以交错地发送视图,那么如图1中所示,并且如在图18和19中已经解释的,可以减少最小延迟。
[0194] 可以如下实现在HEVC的可扩展延伸中交错不同层的NAL单元:
[0195] 用于层或视图表示的位流交错机构以及解码器,该解码器可以使用并行化技术实现,能使用这个位流布局来解码具有非常低的延迟的相关视图。通过标志(例如,du_interleaving_enabled_flag),控制DU的交错。
[0196] 为了在HEVC的可扩展延伸中允许低延迟解码和并行化,需要交错相同AU的不同层的NAL单元。因此,可以介绍沿着以下内容的定义:
[0197] 访问单元:根据规定的分类规则彼此相关联的一组NAL单元按照解码次序连续,并且包含正好一个编码图片;
[0198] 编码层图片分量:包含层图片分量的所有编码树单元的层图片分量的编码表示;
[0199] 编码图片:包含一个或多个编码层图片分量的图片的所有编码树单元的图片的编码表示;
[0200] 图片:图片是一个或多个层图片分量构成的组;
[0201] 层图片分量:具有单色格式的亮度样本额阵列或者亮度样本的阵列以及具有4:2:0、4:2:2以及4:4:4颜色格式的色度样本的两个相应阵列,所述编码表示由在访问单元内的所有NAL单元之中的特定层的NAL单元构成。
[0202] NAL单元通过这种方式交错(比较:du_interleaving_enabled_flag==1),遵循在其间的依赖性,以便每个NAL单元可以使用仅仅通过解码次序在先前的NAL单元内接收的数据解码,即,稍后按照解码次序的NAL单元的数据都不需要用于解码NAL单元。
[0203] 在应用交错(比较:du_interleaving_enabled_flag==1)并且将亮度和色度分量分成不同的颜色平面时,允许交错与颜色平面相关联的相应NAL单元。这些相应NAL单元中的每个(与colour_plane_id的唯一值相关联的)必须履行VCL NAL单元次序,如下所述。由于颜色平面预期在访问单元内在彼此之间没有编码依赖性,所以遵循正常的次序。
[0204] 可以使用语法元素min_spatial_segment_delay表示对NAL单元次序的约束,该语法元素测量和保证在空间段之间的最坏情况的延迟/偏移,以CTB为单位。语法元素描述在CTB之间的空间区域的依赖性或者基础和增强层的空间段(例如,瓦片、薄片或WPP的CTB行)。语法元素不需要用于交错NAL单元或按照编码次序连续编码NAL单元。并行多层解码器可以使用语法元素来建立层的并行解码。
[0205] 以下约束影响允许在层/视图之上并行化以及交错解码单元的可能性,如主要在第一方面中所述:
[0206] 1)样本和语法元素的预测:
[0207] 亮度和色度重样本的内插滤波器对在下层中要求的数据设置约束条件,以生成更高层需要的上取样数据。通过约束这些滤波器,可以减少解码依赖性,例如,由于图片的段可以单独上取样。上面在第一方面中讨论了瓦片处理的特定约束条件的信令。
[0208] “基于参考索引的可扩展延伸”(HLS方法)的运动矢量预测以及更具体地,时间运动矢量预测(TMVP)对在下层中要求的数据设置约束条件,以生成需要的重样本图片运动字段。上面在第一方面中讨论了相关的发明和信令。
[0209] 2)运动矢量:
[0210] 对于SHVC,运动补偿不供下层使用,即,如果下层用作参考图片(HLS方法),那么所产生的运动矢量必须是零矢量。然而,对于MV‑HEVC 0或3D‑HEVC 0,视差矢量可以是约束条件,但是不必是零矢量。即,运动矢量可以用于视图间预测。因此,可以应用对运动矢量的限制,以确保仅仅在先前的NAL单元内接收的数据需要用于解码。上面在第一方面中讨论了相关的发明和信令。
[0211] 3)具有瓦片边界的图片划分:
[0212] 如果有效地希望并行处理和低延迟,不同层的NAL单元交错,那么在增强层内应进行图片划分,与在参考层内的划分的图片划分相关。
[0213] 就VCL NAL单元的次序和编码图片的相关性而言,可以规定以下内容。
[0214] 每个VCL NAL单元是编码图片的一部分。
[0215] 在编码图片的编码层图片分量内的VCL NAL单元(即,具有相同layer_id_nuh值的编码图片的VCL NAL单元)的次序如下限制:
[0216] –编码层图片分量的第一VCL NAL单元具有等于1的first_slice_segment_in_pic_flag;
[0217] –假设sliceSegAddrA和sliceSegAddrB是在相同的编码层图片分量内的任何两个编码的薄片段NAL单元A和B的slice_segment_address值。在以下条件中的任一个成立时,编码的薄片段NAL单元A位于编码的薄片段NAL单元B之前:
[0218] –TileId[CtbAddrRsToTs[sliceSegAddrA]]小于TileId[CtbAddrRsToTs[sliceSegAddrB]];
[0219] –TileId[CtbAddrRsToTs[sliceSegAddrA]]等于TileId[CtbAddrRsToTs[sliceSegAddrB]],并且CtbAddrRsToTs[sliceSegAddrA]小于CtbAddrRsToTs
[sliceSegAddrB]。
[0220] 如果编码图片由不止一个编码层图片分量构成,那么所有图片分量的VCL NAL单元如下限制:
[0221] –假设在用作另一个层图片分量layerPicB的参考的编码层图片分量layerPicA内,VCL NAL A是第一VCL NAL单元A。然后,VCL NAL单元A位于属于layerPicB的任何VCL NAL单元B前面;
[0222] –否则(不是第一VCL NAL单元),如果du_interleaving_enabled_flag等于0,那么假设VCL NAL A是在用作另一个编码层图片分量layerPicB的参考的编码层图片分量layerPicA的任何VCL NAL单元。然后,VCL NAL单元A位于属于layerPicB的任何VCL NAL单元B前面;
[0223] –否则(不是第一VCL NAL单元并且du_interleaving_enabled_flag等于0),如果ctb_based_delay_enabled_flag等于1(即,无论瓦片还是WPP用于视频序列内,都信令基于CTB的延迟),那么假设layerPicA是在用作另一个编码层图片分量layerPicB的参考的编码层图片分量。还假设NALUsetA是属于layerPicA的并且直接在属于layerPicB的一系列连续薄片段NAL单元之后的一系列连续薄片段NAL单元,NALUsetB1和NALUsetB2是直接在NALUsetA之后的属于layerPicB的一系列连续薄片段NAL单元。假设sliceSegAddrA是
NALUsetA的第一段NAL单元的slice_segment_address,并且sliceSegAddrB是NALUsetB2的第一编码薄片段NAL单元的slice_segment_address。然后,以下条件成立:
[0224] –如果具有NALUsetA,那么具有NALUsetB2;
[0225] –CtbAddrRsToTs[PicWidthInCtbsYA*CtbRowBA(sliceSegAddrB‑1)+CtbColBA(sliceSegAddrB‑1)+min_spatial_segment_delay]小于或等于CtbAddrRsToTs[sliceSegAddrA‑1]。还参照图23。
[0226] 否则(不是第一VCL NAL单元并且du_interleaving_enabled_flag等于0),如果tiles_enabled_flag等于0,并且entropy_coding_sync_enabled_flag等于0(即,在视频系列中不使用瓦片,也不使用WPP),那么layerPicA是在用作另一个编码层图片分量layerPicB的参考的编码层图片分量。还假设VCL NAL单元B可以是编码层图片分量
layerPicB的任何VCL NAL单元,并且VCL NAL单元A在layerPicA的VCL NAL单元之前,
slice_segment_address的值等于sliceSegAddrA,在VCL NAL单元A与VCL NAL单元B之间具有layerPicA的(min_spatial_segment_delay‑1)VCL NAL单元。还假设VCL NAL单元C是位于VCL NAL单元B之后的编码层图片分量layerPicB的下一个VCL NAL单元,slice_segment_address的值等于sliceSegAddrC。假设PicWidthInCtbsYA是图片宽度,以layerPicA的CTB为单位。然后,以下条件成立:
[0227] –始终具有位于VCL NAL单元B之前的layerPicA的min_spatial_segment_delay VCL NAL单元;
[0228] –PicWidthInCtbsYA*CtbRowBA(sliceSegAddrC‑1)+CtbColBA(sliceSegAddrC‑1)小于或等于sliceSegAddrA‑1。
[0229] –否则(不是第一VCL NAL单元,du_interleaving_enabled_flag等于1,并且ctb_based_delay_enabled_flag等于0),如果tiles_enabled_flag等于0,并且entropy_coding_sync_enabled_flag等于1(即,在视频系列中使用WPP),那么假设sliceSegAddrA是直接在薄片段VCL NAL单元B之前的编码层图片分量layerPicA的任何段NAL单元A的slice_segment_address,slice_segment_address等于属于将layerPicA用作参考的编码层图片分量layerPicB的sliceSegAddrB。还假设PicWidthInCtbsYA是图片宽度,以layerPicA的CTB为单位。然后,以下条件成立:
[0230] –(CtbRowBA(sliceSegAddrB)–Floor((sliceSegAddrA)/PicWidthInCtbsYA)+1)等于或大于min_spatial_segment_delay。
[0231] 否则(不是第一VCL NAL单元,du_interleaving_enabled_flag等于1,并且ctb_based_delay_enabled_flag等于0),如果tiles_enabled_flag等于1,并且entropy_coding_sync_enabled_flag等于0(即,在视频系列中使用瓦片),那么假设sliceSegAddrA是编码层图片分量layerPicA的任何段NAL单元A的slice_segment_address,并且薄片段VCL NAL单元B是属于将layerPicA用作参考的编码层图片分量layerPicB的以下第一VCL NAL单元,slice_segment_address等于sliceSegAddrB。还假设PicWidthInCtbsYA是图片宽度,以layerPicA的CTB为单位。然后,以下条件成立:
[0232] –TileId[CtbAddrRsToTs[PicWidthInCtbsYA*CtbRowBA(sliceSegAddrB‑1)+CtbColBA(sliceSegAddrB‑1)]]‑TileId[CtbAddrRsToTs[sliceSegAddrA‑1]]应等于或大于min_spatial_segment_delay。
[0233] 如在图24中所示,信令724可以设置在VPS内,其中:
[0234] 在du_interleaving_enabled_flag等于1时,du_interleaving_enabled_flag规定帧具有单个相关联的编码图片(即,单个相关联的AU),其由用于该帧的所有编码层图片分量构成,并且对应于不同层的VCL NAL单元可以交错。在du_interleaving_enabled_flag等于0时,帧可以具有不止一个相关联编码图片(即,一个或多个相关联AU),并且不同的编码层图片分量的VCL NAL单元不交错。
[0235] 为了完成以上讨论,与图18的实施方式对准,与解码器700相关联的假想参考解码器适合于根据信令724的设置,通过缓冲器702和704的一个或两个缓冲器操作,即,根据信令724在这些选项之间切换。
[0236] 在下文中,描述本申请的另一个方面,其再次与方面1和/或方面2相结合。本申请的第三方面涉及可扩展性信令的延伸,用于供大量(例如)视图使用。
[0237] 为了容易理解下面提出的描述,提供现有可扩展性信令概念的概述。
[0238] 大部分先有技术3D视频应用或部署以这两个摄像头视角中的每个具有或没有相应深度图的立体内容或者以每个摄像头视角具有或没有相应深度图的具有更高数量视图(>2)的多视图内容为特征。
[0239] 高效率视频编码(HEVC)标准[1]及其3D和多视图视频[2][3]的扩展以在网络抽象层(NAL)上的可扩展性信令为特征,该网络抽象层能够表示高达64个不同的层,在每个NAL单元的报头内具有6位层标识符(比较:nuh_layer_id),如在图25的语法表格中所规定的。
[0240] 层标识符的每个值可以转换成一组可扩展标识符变量(例如,DependencyID、ViewID等),例如,通过视频参数组扩展,根据使用中的可扩展性维度,这允许在网络抽象层上指示最多64个专用视图,或者如果层标识符还用于指示位深度,那么允许32个专用视图。
[0241] 然而,还具有应用,需要将远远更大数量的视图编码成视频位流、传送、解码以及显示,例如,在具有大量摄像头的多摄像头阵列中或者在需要大量视角的全息显示中,如在[5][6][7]中所提出的。以下部分描述两个发明,所述发明解决了用于扩展的HEVC高级语法的上述缺点。
[0242] 仅仅扩展在NAL单元报头内的尺寸nuh_layer_id字段,不被视为该问题的有用解决方案。报头预期具有固定的长度,需要该长度,用于容易访问非常简单(低成本)的装置,这些装置在位流(例如,路由和提取)上执行操作。这表示,如果使用远远更少的视图,那么需要为所有情况增加额外位(或字节)。
[0243] 而且,在完成第一版本的标准之后,不再能改变NAL单元报头。
[0244] 以下描述说明了HEVC解码器或中间装置的扩展机制,以扩展可扩展性信令的能力,以便满足上述要求。可以在HEVC高级语法中信令激活和扩展数据。
[0245] 尤其地,下面描述了表示在视频位流内启用层标识符扩展机制(如在以下部分中所述)的信令。
[0246] 除了第一和第二方面,首先描述在HEVC框架内的第三概念的可能实现方式,然后,描述下面的概括的实施方式。该概念允许发生多视图分量,在相同的访问单元内具有相同的现有层标识符(比较:nuh_layer_id)。额外标识符扩展用于在这些视图分量之间区分。这个扩展不在NAL单元报头内编码。因此,不能与在NAL单元报头内一样容易访问,但是依然允许具有更多视图的新使用情况。尤其地,通过视图群集(参照以下描述),旧提取机构可以依然用于提取属于彼此的视图组,没有任何修改。
[0247] 为了扩展层标识符值的现有范围,本发明描述了以下机制:
[0248] a.现有层标识符的预定值用作特殊值(所谓的“逸出码”),以指示使用交替的推导处理确定实际值(在特定的实施方式中:使用在NAL单元报头内的语法元素nuh_layer_id的值(层标识符的最大
[0249] 值));
[0250] b.具有更高级语法结构的标志或索引或位深度指示(例如,在薄片报头语法中或者在视频/序列/图片参数组扩展中,如在本发明的以下实施方式中所规定的),能够组合现有层标识符值的每个值和另一个语法结构。
[0251] 现有机制的激活可以如下实现。
[0252] 对于a)不需要明确的激活信令,即,预留的逸出码始终可以用于信令扩展的使用(a1)。但是这会将未使用扩展的可能层/视图的数量减少1(逸出码的值)。因此,下面的切换参数可以用于这两个变体(a2)。
[0253] 使用在整个位流、视频序列或视频序列的一部分之上持续的一个或多个语法元素,可以在位流内启用或禁用扩展机制。
[0254] 通过表示现有层标识符的变量LayerId,用于启用扩展机制的本发明的具体实例实施方式是:
[0255] 变体I)在图26中显示了变体I。在此处,
[0256] layer_id_ext_flag能够使用额外LayerId值。
[0257] 变体II)在图27中显示了变体II。在此处,
[0258] 等于1的layer_id_mode_idc表示使用在nuh_layer_id内的逸出码,扩展LayerId的值范围。等于2的layer_id_mode_idc表示由偏移值扩展LayerId的值范围。等于0的layer_id_mode_idc表示扩展机制不用于LayerId。
[0259] 注意:值可能具有不同的分配模式。
[0260] 变体III)在图28中显示了变体III。在此处,
[0261] layer_id_ext_len表示用于扩展LayerId范围的位数。
[0262] 以上语法源用作指示器,使用层标识符扩展机制来指示相应NAL单元或薄片数据的层标识符。
[0263] 在下面的描述中,变量LayerIdExtEnabled用作启用扩展机制的布尔指示器。在本说明书中,变量用于容易参考。本发明的变量名称实例和实施方式可以使用不同名称或者直接使用相应的语法元素。根据以上情况,如下获得变量LayerIdExtEnabled:
[0264] 对于a1),如果层标识符源元素的预定值仅仅用于启用层标识符扩展机制,那么以下适用:
[0265] if(nuh_layer_id==predetermined value)
[0266] LayerIdExtEnabled=true
[0267] else
[0268] LayerIdExtEnabled=false
[0269] 对于a2)和b),如果变体I)(即,标志(例如,layer_id_ext_enable_flag))用于启用层标识符扩展机制,那么以下适用:
[0270] LayerIdExtEnabled=layer_id_ext_enable_flag。
[0271] 对于a2)和b),如果变体II)(即,索引(例如,layer_id_mode_idc))用于启用层标识符扩展机制,那么以下适用:
[0272] if(layer_id_mode_idc==predetermined value)
[0273] LayerIdExtEnabled=true
[0274] else
[0275] LayerIdExtEnabled=false
[0276] 对于a2)和b),如果变体III)(即,位长度指示(例如,layer_id_ext_len))用于启用层标识符扩展机制,那么以下适用:
[0277] if(layer_id_ext_len>0)
[0278] LayerIdExtEnabled=true
[0279] else
[0280] LayerIdExtEnabled=false
[0281] 对于a2),如果预定的值与启用的语法元素相结合使用,那么以下适用:
[0282] LayerIdExtEnabled&=(nuh_layer_id==predetermined value)。
[0283] 层标识符扩展可以如下信令:
[0284] 如果启用扩展机制(例如,通过信令,如在前一个部分中所述),那么预先定义的或信令的数量的位(比较:layer_id_ext_len)用于确定实际的LayerId值。对于VCL NAL单元,额外位可以包含在薄片报头语法(例如,使用现有扩展)内或者包含在SEI消息内,通过在视频位流内的位置,或者通过与相应薄片数据相关联的索引,该消息用于扩展在NAL单元报头内的层标识符的信令层。
[0285] 对于非VCL NAL单元(VPS、SPS、PPS、SEI消息),额外标识符可以增加到特定扩展中或者还由相关联的SEI消息增加。
[0286] 在进一步的描述中,特定的语法元素称为layer_id_ext,与其在位流语法内的位置无关。名称用作一个实例。以下语法表格和语义提供了可能实施方式的实例。
[0287] 在图29中例证了在薄片报头内的层标识符扩展的信令。
[0288] 在图30中显示了在薄片报头内的层标识符扩展的替换的信令。
[0289] 在图31中显示了用于视频参数组(VPS)信令的一个实例。
[0290] 对于SPS、PPS以及SEI消息,具有相似的扩展。额外的语法元素可以通过相似的方式加入这些扩展中。
[0291] 在图32中显示了在相关联的SEI消息(例如,层ID扩展SEI消息)内信令层标识符。
[0292] 可以基于其在位流内的位置,确定SEI消息的范围。在本发明的一个特定实施方式中,在层ID扩展SEI消息之后所有NAL单元与layer_id_ext的值相关联,直到接收新接入单元或新层ID扩展SEI消息的开始。
[0293] 根据其位置,可以使用固定(在此处表示为u(v))或可变(ue(v))长度代码,将额外语法元素编码。
[0294] 然后,根据层标识符扩展机制(比较:LayerIdExtEnabled)的激活,通过在数学上组合由在NAL单元报头(比较:nuh_layer_id)内的层标识符以及层标识符扩展机制(比较:layer_id_ext)提供的信息,获得用于特定NAL单元和/或薄片数据的层标识符。
[0295] 特定的实施方式获得层标识符,在此处称为:LayerId,如下将现有层标识符(比较:nuh_layer_id)用作最高有效位,并且将扩展信息用作最低有效位:
[0296]
[0297]
[0298] 在b)nuh_layer_id可以表示不同值的情况下,这个信令方案允许通过小范围的layer_id_ext值信令更多不同的LayerId值。还允许特定视图聚集,即,共同接近的视图可以使用相同的值nuh_layer_id表示其彼此所属,参照图33。
[0299] 图33示出了视图集群的构造,其中,与群集相关联的所有NAL单元(即,物理上接近的摄像头的一组视图)具有相同的值nuh_layer_id和相等的值layer_id_ext。替换地,语法元素layer_id_ext可以在本发明的另一个实施方式中用于相应地构成集群,并且nuh_layer_id可以用于在群集内识别视图。
[0300] 本发明的另一个实施方式获得层标识符,在此处称为LayerId,如下将现有层标识符(比较:nuh_layer_id)用作最低有效位,并且将扩展信息用作最高有效位:
[0301]
[0302] 这个信令方案允许通过特定视图的聚集来信令,即,在物理上彼此远离的摄像头的视图可以使用相同的值nuh_layer_id来表示其使用对摄像头视图的相同预测依赖性,在不同的群集内具有相同的值nuh_layer_id(即,在这个实施方式中,值layer_id_ext)。
[0303] 另一个实施方式使用添加的方案来扩展LayerId的范围(maxNuhLayerId表现有层标识符范围(比较:nuh_layer_id)的最大容许值):
[0304]
[0305]
[0306] 在a)预先定义的值nuh_layer_id用于启用扩展的情况下,这个信令方案特别有用。例如,maxNuhLayerId的值可以用作预先定义的逸出码,以允许LayerId值范围的无间隙扩展。
[0307] 在HEVC的3D视频编码扩展的测试模型的草案作为早期描述的草拟版本[3]的背景下,在以下段落中描述一个可能的实施方式。
[0308] 在早期版本[3]的部分G.3.5中,如下限定视图分量:
[0309] 视图分量:在单个访问单元A视图分量内的视图的编码表示可以包含深度视图分量和纹理视图分量。
[0310] 根据现有层标识符(比较:nuh_layer_id),在VPS扩展语法中,限定深度和纹理视图分量的映射。本发明增加了映射额外层标识符值范围的灵活性。在图34A和图34B中显示了一个示例性语法。使用阴影,强度现有语法的变化。
[0311] 如果使用层标识符扩展,那么VpsMaxLayerId设置为等于vps_max_layer_id,否则,设置为等于vps_max_ext_layer_id。
[0312] 如果使用层标识符扩展,那么VpsMaxNumLayers设置为可以使用扩展(通过预先定义的位数或者根据layer_id_ext_len)编码的最大层数,否则,VpsMaxNumLayers设置为等于vps_max_layers_minus1+1。
[0313] vps_max_ext_layer_id是最大使用的LayerId值。
[0314] layer_id_in_nalu[i]规定与第i层的VCL NAL单元相关联的LayerId值的值,对于在从0到VpsMaxNumLayers–1(包括0和VpsMaxNumLayers–1)的范围内的i,在不存在时,layer_id_in_nalu[i]的值推断为等于i。
[0315] 在i大于0时,layer_id_in_nalu[i]大于layer_id_in_nalu[i–1]。
[0316] 在splitting_flag等于1时,如果在段内的位的总数小于6,那么layer_id_in_nuh的MSB应需要是0。
[0317] 对于在从0到vps_max_layers_minus1(包括0和vps_max_layers_minus1)的范围内的i,变量LayerIdInVps[layer_id_in_nalu[i]]设置为等于i。
[0318] dimension_id[i][j]UI规定第i层的第j个存在的可扩展性维度类型的标识符。在不存在时,dimension_id[i][j]的值推断为等于0。用于表示dimension_id[i][j]的位数是dimension_id_len_minus1[j]+1位。在splitting_flag等于1时,位流一致性要求dimension_id[i][j]等于((layer_id_in_nalu[i]&((1<>
dimBitOffset[j])。
[0319] 如下获得规定第i层的第smIdx个可扩展性维度类型的标识符的值ScalabilityId[i][smIdx]、规定第i层的视图标识符的变量ViewId[layer_id_in_nuh[i]]、以及规定第i层的空间/SNR可扩展性标识符的DependencyId[layer_id_in_nalu[i]]:
[0320]
[0321] 在早期版本[3]的部分2中,描述了通过如下在早期版本[3]的部分NAL单元报头语义中获得的其可扩展性标识符视图次序索引(比较:ViewIdx)和深度标志(比较:DepthFlag),特定摄像头的相应深度图和纹理分量可以与其他深度图和纹理区分:
[0322] ViewIdx=layer_id>>1
[0323] DepthFlag=layer_id%2
[0324] 因此,单独视图分量(即,特定摄像头的纹理和深度图分量)必须封包化为NAL单元,具有可区分的单独值layer_id,即,通过可变ViewIdx的值,在0的早期版本部分G.8中,在解码处理中。
[0325] 上述概念允许将在NAL单元报头(比较:nuh_layer_id)内的层标识符的相同值用于不同视图。因此,标识符ViewIdx和DepthFlag的推导需要如下适合于使用前面获得的扩展的视图标识符:
[0326] ViewIdx=LayerId>>1
[0327] DepthFlag=LayerId%2
[0328] 下面参照图35,描述第三方面的普遍实施方式。该图显示了解码器800,其被配置为解码多层视频信号。可以如上面在图2、9或18中所述,体现解码器。即,可以使用上述方面及其实施方式,根据某个实施方式,获得图35的解码器800的更详细的解释的实例。为了说明在上述方面及其实施方式与图35的实施方式之间的这个可能重叠,例如,相同的参考符号在图35中用于多层视频信号40。关于多层视频信号40的多层可以是什么,参照上面在第二方面中提出的陈述。
[0329] 如图35中所示,多层视频信号由一系列数据包804构成,每个数据包包括层识别语法元素806,使用在上述具体HEVC扩展实例中的语法元素nuh_layer_id体现。解码器800被配置为响应于在所述多层视频信号40内的层识别扩展机制信令,如下面进一步所述,该多层视频信号可以部分涉及层识别语法元素本身。层识别扩展机制信令808由解码器800感测,该解码器响应于信号808,如下用于在数据包804之中的预定数据包,这种预定数据包使用箭头810显示为进入的解码器800。如使用解码器800的开关812所述,通过层识别扩展机制信令808控制,对于预定数据包810,信号808从多层数据流40中读取814层识别扩展并且使用这个层识别扩展确定816当前数据包810的层识别索引。如果信号808信令激活层识别扩展机制,那么读取814的层识别扩展可以由当前数据包810本身包括,如在818中所示,或者可以放在数据流40内的其他地方,但是通过与当前数据包810可关联的方式。因此,如果所述层识别扩展机制信令808信令激活层识别扩展机制,那么根据814和816,解码器800确定816当前数据包810的层识别索引。然而,如果所述层识别扩展机制信令808信令去激活层识别扩展机制,那么解码器800仅仅从当前数据包810的层识别语法元素806中,确定820预定数据包810的层识别索引。在这种情况下,不需要层识别扩展818(即,其在信号40内的存在),即,不存在。
[0330] 根据一个实施方式,在每个数据包的意义中,层识别语法元素806至少有助于所述层识别扩展机制信令808:就每个数据包(例如,当前数据包810)而言,解码器800至少部分根据采用或不采用逸出值的相应数据包810的层识别语法元素806,确定所述层识别扩展机制信令808信令激活还是去激活层识别扩展机制。例如,由在某个参数组824内的数据流40包括的高级语法元素822可以相当宏观地或者在更高的范围内有助于所述层识别扩展机制信令808,即,层识别扩展机制信令信令激活还是去激活层识别扩展机制。尤其地,所述解码器800可以被配置为主要根据高级语法元素822,确定所述层识别扩展机制信令808信令激活还是去激活预定数据包810的层识别扩展机制:如果高级语法元素采用第一状态,那么信号信令去激活层识别扩展机制。参照上述时是否能够使,这涉及layer_id_ext_flag=0、layer_id_mode_idc=0或layer_id_ext_len=0。换言之,在以上具体语法实例中,layer_id_ext_flag、layer_id_ext_idc以及layer_id_ext_len分别表示高级语法元素822的实例。
[0331] 关于某个数据包(例如,数据包810),这表示如果高级语法元素采用与第一状态不同的状态并且该数据包810的层识别语法元素806采用逸出值,那么解码器800确定等级识别扩展机制信令808信令激活数据包810的等级识别扩展机制。然而,如果对于数据包810有效地高级语法元素822采用第一状态或者该数据包810的层识别语法元素806采用与逸出值不同的值,那么解码器800确定信号808不信令去激活层识别扩展机制。
[0332] 并非仅仅具有两个可能的状态,如在以上语法实例中所述,出了去激活状态以外,高级语法元素822可以包括高级语法元素824可能采用的不止一个进一步状态。根据这些可能的进一步状态,确定816可以变化,如使用虚线824所示。例如,在以上语法实例中,layer_id_mode_idc=2的情况表明,确定816可能造成解码器800串联表示数据包810的层识别语法元素806的数字和表示层识别扩展的数字,以便获得数据包810的层识别索引。与此不同,layer_id_len≠0的实例情况表明,确定816可能造成解码器800执行以下内容:解码器800使用高级语法元素确定与数据包810相关联的高级识别扩展818的长度n,并且串联表示数据包810的层识别语法元素806的数字和表示数据包810的层识别扩展818的n个数字,以便获得预定数据包的等级识别索引。甚至更进一步地,确定816可以涉及将与数据包810相关联的等级识别扩展818加入预定值中,例如,该预定值可以对应于超过层识别语法元素806的最大可表示状态的数量(小于逸出值),以便获得预定数据包810的层识别索引。
[0333] 如在图34A和图34B中使用808’所述,然而,也可行的是,排除数据包810的层识别语法元素806不有助于层识别扩展机制信令808,以便语法元素806的整个可表示的值/状体依然存在,并且都不保留为逸出码。在这种情况下,信号808’向解码器800指示,对于每个数据包810,是否存在层识别扩展818,因此,指示层识别索引确定遵循814和816还是820。
[0334] 因此,与图35的解码器配合的编码器仅仅形成数据流。根据(例如)在数据流内编码的层数,编码器决定是否使用扩展机制。
[0335] 本申请的第四方面涉及维度相关直接依赖性信令。
[0336] 在当前HEVC扩展([2]、[3]、[4])中,编码层可以使用0个或多个参考编码层,用于预测数据。每个编码层由唯一nuh_layer_id值识别,该值可以双射地映射到layerIdInVps值中。layerIdInVps值是连续的,并且在具有等于A的layerIdinVps的层由具有layerIdInVps的层引用时,位流一致性的要求是A小于B。
[0337] 对于在位流内的每个编码层,在视频参数组内信令参考编码层。因此,为每个编码层传输二元掩膜。对于具有layerIdinVps值b的编码层,掩膜(表示为direct_dependency_flag[b])由b‑1个位构成。在具有等于x的layerIdinVps的层是具有等于b的layerIdinVps的层的参考层时,在二元掩膜(表示为direct_dependency_flag[b][x])内的第x个位等于1。否则,在具有等于x的layerIdinVps的层不是具有等于B的layerIdinVps的层的参考层时,direct_dependency_flag[b][x]的值等于0。
[0338] 在解析所有direct_dependency_flags时,对于每个编码层,创建列表,包括所有参考层的nuh_layer_id值,如direct_dependency_flags所规定的。
[0339] 而且,在VPS中信令信息,允许将每个layerIdinVps值映射到在T维可扩展性空间内的位置。每个维度t表示可扩展性的类型,这可以是(例如)视图可扩展性、空间可扩展性或深度图的指示。
[0340] 通过信令每个可能依赖性的一个位,当前设计提供最大灵活性。然而,这个灵活性具有一些缺点:
[0341] 1.对于每个可扩展性维度,常见用例是使用特定的依赖性结构。
[0342] 而且,直接维度间依赖性不常见并且可能禁止。
[0343] 在图36中描述了用于常见层设置的一个实例。在此处,维度0可能是视图可扩展性维度,利用一种分层预测结构。维度1可能是使用IP结构的空间可扩展性维度。在图37中显示了涉及所描述的设置的direct_dependency_flags。
[0344] 当前解决方案的缺点在于,未从当前VPS设计中直接识别这种维度相关依赖性,这是因为这需要direct_dependency_flags的算术复杂的分析。
[0345] 2.即使在使用仅仅一个可扩展的维度类型时,相同的结构通常用于层的子集。对于仅仅(例如)视图可扩展性的情况,视图可能映射到由水平和垂直摄像头位置跨过的空间中。
[0346] 在图36中描述了这种场景的一个实例,其中,维度0和1解释为水平和垂直摄像头位置维度。
[0347] 虽然习惯做法是将一个预测结构用于每个摄像头位置维度,但是当前VPS设计不能利用由此产生的冗余。而且,在当前VPS设计中没有依赖性是维度相关的直接指示。
[0348] 3.direct_dependency_flags的数量与在位流内的层的平方数成比例,因此,在当前最坏情况下,通过64层,需要大约64*63/2=2016位。而且,在位流内的最大数量的层扩展时,这造成大幅增大数量的位。
[0349] 由于能够明确信令T维依赖性空间的每个维度t的依赖性,所以可以解决上述缺点。
[0350] 维度相关的直接依赖性信令提供以下优点:
[0351] 1.每个依赖性维度的依赖性在位流内直接可用,并且不需要direct_dependency_flags的复杂分析;
[0352] 2.信令依赖性所需要的位数可以减少。
[0353] 在一个实施方式中,依赖性空间可以(例如)与在当前MV和可扩展草案[2]中描述的可扩展性空间相同。在另一个实施方式中,依赖性空间可以明确信令,并且还可以(例如)是由摄像头位置跨过的空间。
[0354] 在图38中提供了维度相关的依赖性信令的一个实例。可以看出,在维度之间的依赖性可以从二元掩膜中直接获得并且所需要的位的量减少。
[0355] 在下文中,假设每个layerIdInVps值双射映射到T维依赖性空间内,维度0,1,2,...,(T‑1)。因此,每层据相关的矢量(d0,d1,d2,...,dT‑1),d0,d1,d2,...,dT‑1规定在相应维度0,1,2,...,(T‑1).内的位置。
[0356] 基本理念是层依赖性的维度相关信令。因此,对于每个维度t∈{0,1,2...(T‑1)}以及在维度t内的每个位置dt,信令一组参考位置Ref(dt)。参考位置组用于确定在不同层至今年的直接依赖性,如在下面所述:
[0357] 在dt,Ref是在Ref(dt)内的元素时,在维度t内具有位置dt并且在维度x内具有位置dx的层(x∈{0,1,2...(T‑1)}\{t})取决于在维度t内具有位置dt_Ref并且在维度x内具有位置dx的层(x∈{0,1,2...(T‑1)}\{t})。
[0358] 在另一个特定的实施方式中,所有依赖性逆转,因此,在Ref(dt)内的位置表示取决于在维度t内的位置dt的层的在维度t内的层的位置。
[0359] 就依赖性空间的信令和推导而言,下面描述的信令可以在(例如)SEI消息内的VPS、SPS中或者在位流内的其他地方进行。
[0360] 关于维度的数量以及在维度内的位置的数量,要注意以下内容。通过在维度的特定数量以及在每个维度内的位置的特定数量,限定依赖性空间。
[0361] 在一个特定的实施方式中,例如,如图39中所示,可以明确信令维度num_dims的数量以及在维度t内的位置的数量num_pos_minus1[t]。
[0362] 在另一个实施方式中,值num_dims或值um_pos_minus1可以固定并且不在位流内信令。
[0363] 在另一个实施方式中,值num_dims或值um_pos_minus1可以从存在于位流内的其他语法元素中获得。更具体而言,在当前HEVC扩展设计中,维度的数量以及在维度内的位置的数量可以分别等于可扩展性维度的数量以及可扩展性维度的长度。
[0364] 因此,NumScalabilityTypes和dimension_id_len_minus1[t]如在[2]中所定义的:
[0365] num_dims=NumScalabilityTypes
[0366] num_pos_minus1[t]=dimension_id_len_minus1[t]
[0367] 在另一个实施方式中,可以在位流内信令值num_dims或值um_pos_minus1明确信令还是从存在于位流内的其他语法元素中获得。
[0368] 在另一个实施方式中,值num_dims可以从存在于位流内的其他语法元素中获得,然后,通过一个或多个维度的分离的额外信令或者通过信令额外维度增大。
[0369] 关于layerIdInVps映射到在依赖性空间内的位置,要注意的是,层映射到依赖性空间中。
[0370] 在一个特定的实施方式中,例如,可以明确传输规定层的位置的语法元素pos_in_dim[i][t],在维度t内具有layerIdinVps值i。这在图40中显示。
[0371] 在另一个实施方式中,不在位流内信令值pos_in_dim[i][t],而是直接从layerIdInVps值i中获得,例如,
[0372]
[0373] 具体而言,对于当前HEVC扩展设计,上述可能代替dimension_id[i][t]值的当前明确信令。
[0374] 在另一个实施方式中,值pos_in_dim[i][t]从在位流内的其他语法元素中获得。具体而言,在当前HEVC扩展设计中,例如,可以从dimension_id[i][t]值中获得值pos_in_dim[i][t]。
[0375] pos_in_dim[i][t]=dimension_id[i][t]
[0376] 在另一个实施方式中,可以信令pos_in_dim[i][t]明确信令或者从其他语法元素中获得。
[0377] 在另一个实施方式中,除了从存在于位流内的其他语法元素中获得的pos_in_dim[i][t]值,还可以信令pos_in_dim[i][t]值是否明确信令。
[0378] 关于依赖性的信令和推导,使用以下内容。
[0379] 直接位置依赖性标志的使用是以下实施方式的主题。在这个实施方式中,参考位置由(例如)标志pos_dependency_flag[t][m][n]信令,表示在维度t内的位置是否包含在维度t内的位置m的参考位置组内,例如,如在图41中所规定的。
[0380] 在使用参考位置组的一个实施方式中,然后,可以获得规定用于在维度t内的位置m的在维度t内的参考位置的数量的变量num_ref_pos[t][m]以及规定用于在维度t内的位置m的在维度t内的第j个参考位置的变量ref_pos_set[t][m][j],例如,
[0381]
[0382] 在另一个实施方式中,所设置的参考位置的元素可以直接信令,例如,如在图42中所述规定的。
[0383] 在使用直接依赖性标志的实施方式中,可能从参考位置组中获得直接依赖性标志directDependencyFlag[i][j],规定等于i的layerIdInVps取决于具有等于j的layerIdInVps的层。例如,可能如在下面所规定的那样做。
[0384] 具有作为输入的矢量posVector的函数posVecToPosIdx(posVector)获得与在依赖性空间内的位置posVector相关的索引posIdx,如在下面所规定的:
[0385]
[0386] 例如,可以获得规定取决于从pos_in_dim[i]中获得的索引idx的layerIdinVps值i的变量posIdxToLayerIdInVps[idx],如在下面所规定的:
[0387] for(i=0;i<vps_max_layers_minus1;i++)
[0388] posldxToLayerldlnVps[posVecToPosldx(pos_in_dim[i])]=i
[0389] 获得变量directDependencyFlag[i][j],如在下面所规定的:
[0390]
[0391] 在一个实施方式中,可能从pos_dependency_flag[t][m][n]标志中直接获得直接依赖性标志directDependencyFlag[i][j],其规定具有等于i的layerIdInVps的层取决于具有等于j的layerIdInVps的层。例如,如在下面所规定的:
[0392]
[0393]
[0394] 在一个实施方式中,使用参考层组,可能获得规定用于具有等于i的layerIdInVps的层的参考层的数量的变量NumDirectRefLayers[i]以及规定第k个参考层的值layerIdInVps的变量RefLayerId[i][k],例如,如在下面所规定的:
[0395]
[0396] 在另一个实施方式中,可以从参考位置组中直接获得参考层,不获得directDependencyFlag值,例如,如在下面所规定的:
[0397]
[0398] 在另一个实施方式中,可能从pos_dependency_flag变量中直接获得参考层,而不获得ref_pos_set变量。
[0399] 因此,上面讨论的视图显示了根据第四方面的数据流并且显示了多层视频数据流,使用层间预测,通过不同等级的信息量(即,数量是LayerIdInVps),将视频资料编码成该多层视频数据流。等级具有在其中限定的先后次序。例如,等级遵循sequence 1…vps_max_layers_minus1。例如,参照图40。在此处,由vps_max_layers_minus1在900中提供在多层视频数据流内的层数。
[0400] 将视频资料编码成多层视频数据流,以便任何层都不通过层间预测取决于根据先后次序位于后面的任何层。即,使用从1到vps_max_layers_minus1的编号,层i仅仅取决于层j
[0401] 通过层间预测取决于一个或多个其他层的每层增大了信息量,其中,视频资料编码成所述一个或多个其他层。例如,增大与空间分辨率、视图的数量、SNR精确度等或其他维度类型相关。
[0402] 例如,多层视频数据流通过VPS等级包括第一语法结构。在以上实例中,num_dims可以由第一语法结构包括,如在图39中的902中所示。因此,第一语法结构限定依赖性维度904和906的数量M。在图36中,示例性是2,一个是水平引导,另一个是垂直引导。在这方面,参照以上条目2:维度的数量不必等于不同维度类型的数量,在这方面,等级增大了信息量。
例如,维度的数量可以更高,例如,在垂直和水平视图位移之间区分。在图36中示例性显示M个依赖性维度904和906,其跨过依赖性空间908。
[0403] 进一步,第一语法结构限定每个依赖性维度i的排序等级的最大Ni,例如,num_pos_minus1,从而在依赖性空间908内限定 个可用点910。在图36的情况下,具有4乘以2个可用点910,后者在图36中由矩形表示。进一步,第一语法结构限定双射映射912(参照图40),在以上实例中,由pos_in_dim[i][t]或者隐式限定该双射映射。双射映射40在依赖性空间908内的至少子集的可用点910中的相应一个上映射每个等级,即,在图40中,i。pos_in_dim[i][t]是通过其分量pos_in_dim[i][t]为等级i指向可用点910的矢量,t扫描维度
904和906。例如,在vps_max_layers_minus1小于 的情况下,子集是合适的子集。例如,在图36中,实际上使用的并且具有在其中限定的依赖性次序的等级可以在不到8个可用点上映射。
[0404] 对于每个依赖性维度i,例如,通过VPS等级,多层视频数据流包括第二语法结构914。在以上实例中,其包括pos_dependency_flag[t][m][n]或num_ref_pos[t][m]加上ref_pos_set[t][m][j]。对于每个依赖性维度i,第二语法结构914描述在依赖性维度i的Ni排序等级之中的依赖性。中途36中,由在矩形910之间的所有水平或所有垂直箭头表示依赖性。
[0405] 总而言之,通过这种措施,通过限制的方式在依赖性空间内的可用点之间限定依赖性,以便所有这些依赖性与相应的一个依赖性轴并行运行,并且从更高的排序等级指向更低的排序等级,对于每个依赖性维度,与相应的依赖性维度并行的依赖性不变,抵抗沿着除了相应维度以外的每个依赖性维度的循环移位。参照图36:在上行矩形中的矩形之间的所有水平箭头在下行矩形中重复,并且相对于矩形的四个垂直列,这同样适用于垂直箭头,矩形对应于可变点,并且箭头对应于在其中的依赖性。通过这种措施,第二语法结构通过双射映射同时限定在层之间的依赖性。
[0406] 网络实体(例如,解码器)或mane(例如,MME)可以读出数据流的第一和第二语法结构,并且基于所述第一和第二语法结构确定在所述层之间的依赖性。
[0407] 网络实体读出第一语法结构,并且从中获得跨过依赖性空间的依赖性维度的数量M以及每个依赖性维度i的排序等级的最大Ni,从而在依赖性空间内获得 个可用点。进一步,网络实体从第一语法结构中获得双射映射。进一步,对于依赖性维度i,网络实体读出第二语法结构并且由此获得在依赖性维度i的Ni排序等级之中的依赖性。每当决定去除任何层时,即,属于某个层的NAL单元,网络实体分别考虑在依赖性空间内的层的位置以及在可用点与层之间的依赖性。
[0408] 这样做,网络实体可以选择一个等级;并且丢弃所述多层视频数据流的数据包(例如,NAL单元),其属于(例如,通过nuh_layer_id)通过在所述层之间的依赖性独立于所选择的电平的层。
[0409] 虽然在设备的背景下描述了一些方面,但是显然,这些方面也表示相应方法的描述,其中,块或装置对应于方法步骤或者方法步骤的特征。同样,在方法步骤的背景下描述的方面也表示相应设备的相应块或物品或特征的描述。一些或所有方法步骤可以由(或使用)硬件设备执行,例如,微处理器、可编程计算机或电子电路。在一些实施方式中,某一个或多个最重要的方法步骤可以由这种设备执行。
[0410] 根据某些实现方式要求,本发明的实施方式可以在硬件内或者在软件内实现。可以使用数字存储器介质,执行实施方式,例如,软盘、DVD、蓝光光盘、CD、ROM、PROM、EPROM、EEPROM或FLASH存储器,电子可读控制信号储存在其上,这些信号与可编程计算机系统配合(或者能够与其配合),以便执行相应方法。因此,数字存储器介质内可以是计算机可读的。
[0411] 根据本发明的一些实施方式包括数据载波,具有电子可读控制信号,这些信号能够与可编程的计算机系统配合,以便执行在本文中描述的一种方法。
[0412] 通常,可以实现本发明的实施方式,作为具有程序代码的计算机程序产品,在计算机程序产品在计算机上运行时,程序代码有效地用于执行一种方法。例如,程序代码还可以储存在机器可读载波上。
[0413] 其他实施方式包括用于执行在本文中描述的一种方法的计算机程序,算机程序储存在机器可读载波上。
[0414] 换言之,因此,本发明方法的一个实施方式是具有程序代码的计算机程序,在计算机程序在计算机上运行时,用于执行在本文中描述的一种方法。
[0415] 因此,本发明方法的进一步实施方式是数据载体(或数字存储器介质或计算机可读介质),在该数据载体上记录用于执行在本文中描述的一种方法的计算机程序。数据载体、数字存储器介质或记录介质通常是有形和/或非过渡的。
[0416] 因此,本发明方法的进一步实施方式是数据流或一系列信号,表示用于执行在本文中描述的一种方法的计算机程序。例如,数据流或这系列信号可以被配置为用于通过数据通信连接来传输,例如,通过互联网。
[0417] 进一步实施方式包括处理装置,例如,计算机或可编程逻辑装置,其被配置为或者适合于执行在本文中描述的一种方法。
[0418] 进一步实施方式包括计算机,在该计算机上安装用于执行在本文中描述的一种方法的计算机程序。
[0419] 根据本发明的进一步实施方式包括设备或系统,其被配置为将用于执行在本文中描述的一种方法的计算机程序传输(例如,电子地或光学地)给接收器。例如,接收器可以是计算机、移动装置、存储器装置等。例如,该设备或系统可以包括文件服务器,用于将计算机程序传输给接收器。
[0420] 在一些实施方式中,可编程逻辑装置(例如,现场可编程门阵列)可以用于执行在本文中描述的方法的一些或所有功能。在一些实施方式中,现场可编程门阵列可以与微处理器配合,以便执行在本文中描述的一种方法。通常,这些方法优选地由任何硬件设备执行。
[0421] 使用硬件设备,或者使用计算机,或者使用硬件设备和计算机的组合,可以实现在本文中描述的设备。
[0422] 使用硬件设备,或者使用计算机,或者使用硬件设备和计算机的组合,可以执行在本文中描述的方法。
[0423] 上述实施方式仅仅说明本发明的原理。要理解的是,对于本领域的技术人员,在本文中描述的设置和细节的修改和变化显而易见。因此,其目的在于,通过在本文中的实施方式的描述和解释,仅仅由即将发生的专利权利要求的范围限制,而不由提出的具体细节限制。
[0424] 因此,以上说明书具体描述以下实施方式:
[0425] 1.一种多视图解码器,被配置为使用从第一视图(12)到第二视图(15)的视图间预测,从数据流重建多个视图(12,15),其中,所述多视图解码器被配置为响应于所述数据流中的信令,以改变在所述第一视图(12)被分成的空间段(301)的空间段边界(300)处的所述视图间预测。
[0426] 2.根据实施方式1所述的多视图解码器,其中,所述多视图解码器被配置为在改变所述视图间预测中,执行在所述数据流中可信令的可能视差矢量的域的限制。
[0427] 3.根据实施方式1或2所述的多视图解码器,其中,所述多视图解码器被配置为基于所述数据流,确定用于所述第二视图(15)的当前部分(302)的可能视差矢量的域之中的视差矢量(308),并且在从所述第一视图12的共同定位到所述当前部分(302)的共同定位部分(306)偏移所确定的视差矢量(308)的参考部分(304)处取样所述第一视图(12)。
[0428] 4.根据实施方式3所述的多视图解码器,其中,所述多视图解码器被配置为在改变所述视图间预测中,执行在所述数据流中可信令的可能视差矢量的域的限制,并且执行所述可能视差矢量的域的限制使得所述参考部分(304)位于所述共同定位部分(306)在空间上所在的空间段(301)内。
[0429] 5.根据实施方式3所述的多视图解码器,其中,所述多视图解码器被配置为在改变所述视图间预测中,执行在所述数据流中可信令的可能视差矢量的域的限制,并且执行所述可能视差矢量的域的限制使得所述参考部分(304)位于所述共同定位部分(306)在空间上所在的空间段内,并且在指向所述边界(300)的维度的视差矢量的分量具有亚像素分辨率的情况下,所述参考部分(304)与所述空间段的边界间隔开大于或等于内插滤波器内核半宽度(310)。
[0430] 6.根据前述实施方式中任一项所述的多视图解码器,其中,所述多视图解码器被配置为在改变所述视图间预测中,使用独立于空间段的边界外部的信息的替代数据,在延伸超出所述空间段的边界(300)的部分处填充内插滤波器内核(311),所述第一视图的共同定位到当前利用所述视图间预测进行预测的所述第二视图(15)的当前部分(302)的共同定位部分(306)在空间上位于所述空间段中。
[0431] 7.根据前述实施方式中任一项所述的多视图解码器,其中,所述多视图解码器被配置为在所述视图间预测中,为所述第二视图的当前部分,导出所述第一视图(12)内的参考部分(314)并且根据所述数据流中的所述信令,
[0432] 检查所述参考部分(314)是否位于所述第一视图(12)的共同定位到所述当前部分(302)的共同定位部分(306)在空间上所在的空间段(301)内,并且将预测器应用于从所述参考部分(314)的属性导出的所述当前部分(302),或者根据所述参考部分(314)是否位于所述共同定位部分(306)在空间上所在的空间段(301)内,抑制对所述当前部分(302)的参数的所述应用或者将替代预测器应用于所述当前部分(302)的参数,或者
[0433] 应用所述预测器,而不管所述参考部分(314)是否位于所述共同定位部分在空间上所在的所述空间段(82)内。
[0434] 8.根据实施方式7所述的多视图解码器,其中,所述多视图解码器被配置为在导出所述参考部分(314)中,
[0435] 估计用于所述当前部分(302)的视差矢量(316),
[0436] 定位所述第一视图的共同定位到所述当前部分(302)的代表位置(318)或者所述第一视图的与所述当前部分(302)相邻的相邻部分(320),并且
[0437] 通过将所述视差矢量(316)应用于所述代表位置(318)来确定所述参考部分(314)。
[0438] 9.根据实施方式8所述的多视图解码器,其中,所述多视图解码器被配置为基于在所述数据流中传输的深度图来估计用于所述当前部分的视差矢量或者用于所述当前部分的空间上或时间上预测的视差矢量。
[0439] 10.根据实施方式8或9所述的多视图解码器,其中,所述多视图解码器被配置为在确定所述参考部分(314)中,通过使用所述视差矢量(316)在所述第一视图(12)成为编码块、预测块、残差块和/或变换块的划分中选择所述参考部分。
[0440] 11.根据实施方式7到10中任一项所述的多视图解码器,其中,所述参数是运动矢量、视差矢量、残差信号和/或深度值。
[0441] 12.根据实施方式7到11中任一项所述的多视图解码器,其中,所述属性是运动矢量、视差矢量、残差信号和/或深度值。
[0442] 13.一种多视图编码器,被配置为使用从第一视图(12)到第二视图(15)的视图间预测,将多个视图(12、15)编码成数据流,其中,所述多视图编码器被配置为改变在所述第一视图(12)被分成的空间段(301)的空间段边界(300)处的所述视图间预测。
[0443] 14.根据实施方式13所述的多视图编码器,其中,所述多视图编码器被配置为在改变所述视图间预测中,执行可能视差矢量的域的限制。
[0444] 15.根据实施方式13或14所述的多视图编码器,其中,所述多视图编码器被配置为确定(例如,通过优化)用于所述第二视图(15)的当前部分(302)(例如,视差补偿地预测的预测块)的可能视差矢量的域中的视差矢量(308)并且将其作为信号在所述数据流中发送,并且在从所述第一视图12的共同定位到所述当前部分(302)的共同定位部分(306)偏移所确定的视差矢量(308)的参考部分(304)处取样所述第一视图(12)。
[0445] 16.根据实施方式15所述的多视图编码器,其中,所述多视图编码器被配置为执行所述可能视差矢量的域的限制,使得所述参考部分(304)位于(例如,完全地)所述共同定位部分(306)在空间上所在的空间段(301)内。
[0446] 17.根据实施方式15所述的多视图编码器,其中,所述多视图编码器被配置为执行所述可能视差矢量的域的限制,使得所述参考部分(304)位于所述共同定位部分(306)在空间上所在的空间段内,并且在指向所述边界(300)的维度的视差矢量的分量具有亚像素分辨率的情况下,所述参考部分(304)与所述空间段的边界间隔开大于或等于内插滤波器内核半宽度(310)。
[0447] 18.根据实施方式13到17中任一项所述的多视图编码器,其中,所述多视图编码器被配置为在改变所述视图间预测中,在延伸超出空间段的边界(300)的部分处填充内插滤波器内核(311),所述第一视图的共同定位到当前利用所述视图间预测进行预测的所述第二视图(15)的当前部分(302)的共同定位部分(306)在空间上位于所述空间段中。
[0448] 19.根据实施方式13到18中任一项所述的多视图编码器,其中,所述多视图编码器被配置为在所述视图间预测中,为所述第二视图的当前部分,导出在所述第一视图(12)内的参考部分(314),并且根据所述数据流中的信令,
[0449] 检查所述参考部分(314)是否位于所述第一视图(12)的共同定位到所述当前部分(306)的共同定位部分(306)在空间上所在的空间段(301)内,并且将预测器应用于从所述参考部分(314)的属性导出的所述当前部分(302),或者根据所述参考部分(314)是否位于所述共同定位部分(306)在空间上所在的所述空间段(301)内来抑制对所述当前部分(302)的参数的所述应用,或者
[0450] 应用所述预测器,而不管所述参考部分(314)是否位于所述共同定位部分在空间上所在的所述空间段(301)内。
[0451] 20.根据实施方式19所述的多视图编码器,其中,所述多视图编码器被配置为在导出所述参考部分(314)中,
[0452] 估计用于所述当前部分(314)的视差矢量(316),
[0453] 定位所述第一视图的共同定位到所述当前部分(302)的代表位置(318)或者所述第一视图的与所述当前部分(302)相邻的相邻部分(320),并且
[0454] 通过将所述视差矢量(316)应用于所述代表位置(318)来确定所述参考部分(314)。
[0455] 21.根据实施方式20所述的多视图编码器,其中,所述多视图编码器被配置为基于在所述数据流中传输的深度图来估计用于所述当前部分的视差矢量或者用于所述当前部分的空间上或时间上预测的视差矢量。
[0456] 22.根据实施方式19到21中任一项所述的多视图编码器,其中,所述参数是运动矢量、视差矢量、残差信号和/或深度值。
[0457] 23.根据实施方式19到22中任一项所述的多视图编码器,其中,所述属性是运动矢量、视差矢量、残差信号和/或深度值。
[0458] 24.根据实施方式13到23中任一项所述的多视图编码器,被配置为将所述改变在所述数据流中作为信号发送到解码器,以使所述解码器依靠所述改变。
[0459] 25.一种多视图解码器,被配置为使用从第一视图(12)到第二视图(15)的视图间预测,从数据流中重建多个视图(12,15),其中,所述多视图解码器被配置为使用在所述数据流中的信令作为保证,即在所述第一视图(12)被分成的空间段(301)的空间段边界(300)处限制所述视图间预测(602),使得所述视图间预测不涉及所述第二视图(15)的任何当前部分(302)对除了所述第一视图的共同定位到所述第二视图的相应当前部分的共同定位部分(606)所在的空间段以外的空间段的任何依赖性。
[0460] 26.根据实施方式25所述的多视图解码器,被配置为响应于在所述数据流中的所述信令,使用视图间并行性,调整视图间解码偏移或决定执行所述第一和第二视图的重建的实验。
[0461] 27.根据实施方式25或26所述的多视图解码器,其中,所述多视图解码器被配置为基于所述数据流,确定用于所述第二视图(15)的当前部分(302)的可能视差矢量的域之中的视差矢量(308),并且在从所述第一视图12的共同定位到所述当前部分(302)的共同定位部分(306)偏移所确定的视差矢量(308)的参考部分(304)处取样所述第一视图(12)。
[0462] 28.一种用于使用从第一视图(12)到第二视图(15)的视图间预测,从数据流中重建多个视图(12,15)的方法,其中,所述方法响应于在所述数据流中的信令,以改变在所述第一视图(12)被分成的空间段(301)的空间段边界(300)处的所述视图间预测。
[0463] 29.一种用于使用从第一视图(12)到第二视图(15)的视图间预测,将多个视图(12,15)编码成数据流的方法,其中,所述方法包括改变在所述第一视图(12)被分成的空间段(301)的空间段边界(300)处的所述视图间预测。
[0464] 30.一种用于使用从第一视图(12)到第二视图(15)的视图间预测,从数据流中重建多个视图(12,15)的方法,其中,所述方法包括使用在所述数据流中的信令作为保证,即在所述第一视图(12)被分成的空间段(301)的空间段边界(300)处限制所述视图间预测(602),使得所述视图间预测不涉及所述第二视图(15)的任何当前部分(302)对除了所述第一视图的共同定位到所述第二视图的相应当前部分的共同定位部分(606)所在的空间段以外的空间段的任何依赖性。
[0465] 31.一种具有程序代码的计算机程序,所述计算机程序在计算机上运行时,用于执行根据实施方式27到30中任一项所述的方法。
[0466] 32.一种多层视频数据流(200),由NAL单元(202)的序列组成,所述多层视频数据流(200)具有使用层间预测编码到其中的多个层的图片(204),每个NAL单元(202)具有表示与各个所述NAL单元相关的层的层索引(nuh_layer_id),所述NAL单元的序列被构造成非交错的访问单元(206)的序列,其中,属于一个访问单元的NAL单元与一个时间上的时刻的图片相关,并且不同的访问单元中的NAL单元与不同的时刻相关,其中,在每个访问单元内,对于每个层,与各个层相关的NAL单元被分组到一个或多个解码单元(208),并且与不同的层相关的NAL单元的解码单元被交错,使得对于每个解码单元(208),用来编码各个所述解码单元的层间预测基于除了与所述各个解码单元相关的层以外的、被编码成在各个所述访问单元内于所述各个解码单元之前的解码单元的层的图片的部分。
[0467] 33.根据实施方式32所述的多层视频数据流(200),其中,所述多层视频数据流具有交错信令,所述交错信令具有第一可能状态和第二可能状态,其中,
[0468] 如果所述交错信令采取所述第一可能状态,则在每个访问单元内,对于每个层,与各个层相关的所述NAL单元中的至少一些被分组到一个或多个解码单元,并且与不同的层相关的NAL单元的解码单元被交错,使得对于每个解码单元,用来编码各个所述解码单元的层间预测基于除了与所述各个解码单元相关的层以外的、被编码成在各个所述访问单元内于所述各个解码单元之前的解码单元的层的图片的部分,并且
[0469] 如果所述交错信令采取所述第二可能状态,则在每个访问单元内,所述NAL单元被布置成相对于与所述NAL单元相关的层不交错。
[0470] 34.根据实施方式32或33所述的多层视频数据流,其中,每个NAL单元具有表示所述各个NAL单元在一组可能类型之中的类型的NAL单元类型索引,并且在每个访问单元内,所述各个访问单元的所述NAL单元的类型在NAL单元类型之中遵循排序规则,并且在每对访问单元之间,打破所述排序规则。
[0471] 35.一种多层视频编码器,用于生成由NAL单元(202)的序列组成的多层视频数据流(200),所述多层视频编码器被配置为生成所述多层视频数据流(200),使得所述多层视频数据流具有使用层间预测编码到其中的多个层的图片(204),每个NAL单元(202)具有表示与各个所述NAL单元相关的层的层索引(例如,nuh_layer_id),所述NAL单元的序列被构造成非交错的访问单元(206)的序列,其中,属于一个访问单元的NAL单元与一个时间上的时刻的图片相关,并且不同的访问单元中的NAL单元与不同的时刻相关,其中,在每个访问单元内,对于每个层,与各个层相关的NAL单元中的至少一些被分组到一个或多个解码单元(208),并且与不同的层相关的NAL单元的解码单元被交错,使得对于每个解码单元(208),用来编码各个所述解码单元的层间预测基于除了与所述各个解码单元相关的层以外的、被编码成在各个所述访问单元内于所述各个解码单元之前的解码单元的层的图片的部分。
[0472] 36.一种解码器,被配置为解码由NAL单元(202)的序列组成的多层视频数据流(200),所述多层视频数据流(200)具有使用层间预测编码到其中的多个层的图片(204),每个NAL单元(202)具有表示与各个所述NAL单元相关的层的层索引(例如,nuh_layer_id),所述NAL单元的序列被构造成非交错的访问单元(206)的序列,其中,属于一个访问单元的NAL单元与一个时间上的时刻的图片相关,并且不同的访问单元中的NAL单元与不同的时刻相关,其中,在每个访问单元内,对于每个层,与各个层相关的NAL单元中的至少一些被分组到一个或多个解码单元(208),并且与不同的层相关的NAL单元的解码单元被交错,使得对于每个解码单元(208),用来编码各个所述解码单元的层间预测基于除了与所述各个解码单元相关的层以外的、被编码成在各个所述访问单元内于所述各个解码单元之前的解码单元的层的图片的部分。
[0473] 37.根据实施方式36所述的解码器,其中,所述解码器被配置为通过并行方式从所述多层视频数据流中解码与所述一个时刻相关的多个层的图片。
[0474] 38.根据实施方式36或37所述的解码器,其中,所述解码器被配置为根据所述NAL单元属于的层,将所述NAL单元分配到多个缓冲器上,来在所述多个缓冲器中缓冲所述多层视频数据流。
[0475] 39.根据实施方式36到38中任一项所述的解码器,其中,所述多层视频数据流具有交错信令,所述交错信令具有第一可能状态和第二可能状态,其中,其中,所述解码器被配置为响应于所述交错信令在于:所述解码器知道,
[0476] 如果所述交错信令采取所述第一可能状态,则在每个访问单元内,对于每个层,与各个层相关的所述NAL单元中的至少一些被分组到一个或多个解码单元,并且与不同的层相关的NAL单元的解码单元被交错,使得对于每个解码单元,用来编码各个所述解码单元的层间预测基于除了与所述各个解码单元相关的层以外的、被编码成在各个所述访问单元内于所述各个解码单元之前的解码单元的层的图片的部分,并且
[0477] 如果所述交错信令采取所述第二可能状态,则在每个访问单元内,所述NAL单元被布置成相对于与所述NAL单元相关的层不交错。
[0478] 40.根据实施方式36到39中任一项所述的解码器,其中,所述多层视频数据流具有交错信令,所述交错信令具有第一可能状态和第二可能状态,其中,所述解码器被配置为响应于所述交错信令在于:所述解码器被配置为,在所述交错信令具有所述第一可能状态的情况下,根据所述NAL单元属于的层,将所述NAL单元分配到多个缓冲器上,来在所述多个缓冲器中缓冲所述多层视频数据流,并且在所述交错信令具有所述第二可能状态的情况下,将所述多层视频数据流缓冲在所述多个缓冲器的一个缓冲器中,而不管所述各个NAL单元属于的层。
[0479] 41.根据实施方式36到40中任一项所述的解码器,其中,所述多层视频数据流(200)被布置使得每个NAL单元具有表示所述各个NAL单元在一组可能类型之中的类型的NAL单元类型索引,并且在每个访问单元内,所述各个访问单元的所述NAL单元的类型在NAL单元类型之中遵循排序规则,并且在每对访问单元之间,打破所述排序规则,其中,所述解码器被配置为通过检测所述排序规则在两个直接连续的NAL单元之间是否被打破,来使用所述排序规则检测访问单元边界。
[0480] 42.一种用于生成由NAL单元(202)的序列组成的多层视频数据流(200)的方法,所述方法包括生成所述多层视频数据流(200),使得所述多层视频数据流具有使用层间预测编码到其中的多个层的图片(204),每个NAL单元(202)具有表示与各个所述NAL单元相关的层的层索引(例如,nuh_layer_id),所述NAL单元的序列被构造成非交错的访问单元(206)的序列,其中,属于一个访问单元的NAL单元与一个时间上的时刻的图片相关,并且不同的访问单元中的NAL单元与不同的时刻相关,其中,在每个访问单元内,对于每个层,与各个层相关的NAL单元中的至少一些被分组到一个或多个解码单元(208),并且与不同的层相关的NAL单元的解码单元被交错,使得对于每个解码单元(208),用来编码各个所述解码单元的层间预测基于除了与所述各个解码单元相关的层以外的、被编码成在各个所述访问单元内于所述各个解码单元之前的解码单元的层的图片的部分。
[0481] 43.一种用于解码由NAL单元(202)的序列组成的多层视频数据流(200)的方法,所述多层视频数据流(200)具有使用层间预测编码到其中的多个层的图片(204),每个NAL单元(202)具有表示与各个所述NAL单元相关的层的层索引(例如,nuh_layer_id),所述NAL单元的序列被构造成非交错的访问单元(206)的序列,其中,属于一个访问单元的NAL单元与一个时间上的时刻的图片相关,并且不同的访问单元中的NAL单元与不同的时刻相关,其中,在每个访问单元内,对于每个层,与各个层相关的NAL单元中的至少一些被分组到一个或多个解码单元(208),并且与不同的层相关的NAL单元的解码单元被交错,使得对于每个解码单元(208),用来编码各个所述解码单元的层间预测基于除了与所述各个解码单元相关的层以外的、被编码成在各个所述访问单元内于所述各个解码单元之前的解码单元的层的图片的部分。
[0482] 44.一种具有程序代码的计算机程序,所述计算机程序用于在计算机上运行时执行根据实施方式42到43中任一项所述的方法。
[0483] 45.一种解码器,被配置为解码由数据包的序列组成的多层视频信号,所述数据包中的每个数据包包括层识别语法元素(806),其中,所述解码器被配置为响应于在所述多层视频信号中的层识别扩展机制信令(808;808’),以
[0484] 如果所述层识别扩展机制信令(808;808’)发送层识别扩展机制的激活的信号,则对于预定数据包(810),从多层数据流中读取(814)层识别扩展(818)并且使用所述层识别扩展(818)确定(816)所述预定数据包的层识别索引,并且
[0485] 如果所述层识别扩展机制信令(808;808’)发送层识别扩展机制的去激活的信号,则对于所述预定数据包(810),从由所述预定数据包包括的所述层识别语法元素(806)确定(820)所述预定数据包的所述层识别索引。
[0486] 46.根据实施方式45所述的解码器,其中,所述层识别语法元素(806)至少有助于所述层识别扩展机制信令(808),其中,所述解码器被配置为至少根据由采用或者不采用逸出值的所述预定数据包包括的所述层识别语法元素,为所述预定数据包确定所述层识别扩展机制信令(808)发送所述层识别扩展机制的激活还是去激活的信号。
[0487] 47.根据实施方式45或46所述的解码器,其中,高级语法元素(822)至少有助于所述层识别扩展机制信令(808;808’),并且所述解码器被配置为根据所述高级语法元素(822),为所述预定数据包(810)确定所述层识别扩展机制信令发送所述层识别扩展机制的激活还是去激活的信号。
[0488] 48.根据实施方式47所述的解码器,其中,所述解码器被配置为响应于采用第一状态的所述高级语法元素,确定所述层识别扩展机制信令(808;808’)发送所述层识别扩展机制的去激活的信号。
[0489] 49.根据实施方式48所述的解码器,其中,所述层识别语法元素额外有助于所述层识别扩展机制信令(808),并且其中,所述解码器被配置为如果所述高级语法元素采用与所述第一状态不同的第二状态并且所述预定数据包的所述层识别语法元素采用逸出值,则确定所述等级识别扩展机制信令发送所述等级识别扩展机制的激活的信号用于所述预定数据包,并且如果所述高级语法元素采用所述第一状态以及所述层识别元素采用与所述逸出值不同的值中的一个适用,则确定所述等级识别扩展机制信令发送所述等级识别扩展机制的去激活的信号。
[0490] 50.根据实施方式49所述的解码器,其中,所述解码器被配置为如果所述高级语法元素采用与所述第一和第二状态不同的第三状态,则将表示由所述预定数据包包括的所述层识别语法元素的数字和表示所述层识别扩展的数字串联,以获得所述预定数据包的所述等级识别索引。
[0491] 51.根据实施方式49所述的解码器,其中,所述解码器被配置为如果所述高级语法元素采用所述第二状态,则使用所述高级语法元素确定所述等级识别扩展的长度n,并且将表示由所述预定数据包包括的所述层识别语法元素的数字和表示所述等级识别扩展的n位数字串联,以获得所述预定数据包的所述等级识别索引。
[0492] 52.根据实施方式45到51中任一项所述的解码器,其中,所述解码器被配置为:
[0493] 如果所述层识别扩展机制信令发送所述层识别扩展机制的激活的信号,则通过将表示由所述预定数据包包括的所述层识别语法元素的数字和表示所述等级识别扩展的数字串联,来确定(816)所述预定数据包的所述层识别索引,以获得所述预定数据包的所述等级识别索引。
[0494] 53.根据实施方式45到52中任一项所述的解码器,其中,所述解码器被配置为:
[0495] 如果所述层识别扩展机制信令发送所述层识别扩展机制的激活的信号,则通过将所述等级识别扩展加到预定值(例如,maxNuhLayerId)来确定所述预定数据包的所述层识别索引,以获得所述预定数据包的所述等级识别索引。
[0496] 54.一种用于解码由数据包的序列组成的多层视频信号的方法,所述数据包中的每个数据包包括层识别语法元素(806),其中,所述方法响应于在所述多层视频信号中的层识别扩展机制信令(808;808’)在于:所述方法包括:
[0497] 如果所述层识别扩展机制信令(808;808’)发送层识别扩展机制的激活的信号,则对于预定数据包(810),从多层数据流中读取(814)层识别扩展(818)并且使用所述层识别扩展(818)确定(816)所述预定数据包的层识别索引,并且
[0498] 如果所述层识别扩展机制信令(808;808’)发送所述层识别扩展机制的去激活的信号,则对于所述预定数据包(810),从由所述预定数据包包括的所述层识别语法元素(806)确定(820)所述预定数据包的所述层识别索引。
[0499] 55.一种具有程序代码的计算机程序,所述计算机程序在计算机上运行时,用于执行根据实施方式54所述的方法。
[0500] 56.一种使用层间预测在不同的信息量的等级将视频资料编码成的多层视频数据流,所述等级具有在其中定义的顺序次序并且所述视频资料被编码成所述多层视频数据流使得经由所述层间预测,层不取决于根据所述顺序次序的随后的任何层,其中,经由所述层间预测取决于一个或多个其他层的每个层增加所述视频资料被编码成所述一个或多个其他层时的信息量(例如,在不同维度类型的方面),其中,所述多层视频数据流包括:
[0501] 第一语法结构,所述第一语法结构定义跨越依赖性空间的依赖性维度的数量M以及每个依赖性维度i的排序等级的最大数Ni,从而定义所述依赖性空间中的 个可用点以及双射映射,将每个等级映射在所述依赖性空间内的所述可用点的至少一个子集中的各个可用点上,以及
[0502] 每个依赖性维度i,第二语法结构描述在依赖性维度i的Ni排序等级之中的依赖性,从而定义在所述依赖性空间中的所述可用点之间的依赖性,所有可用点与从较高指向较低的排序等级的依赖性轴中的各个可用点并行运行,对于每个依赖性维度,与各个依赖性维度并行的依赖性相对沿着除了各个维度以外的依赖性维度中的每个依赖性维度的循环移位不变,从而通过所述双射映射同时定义所述层之间的依赖性。
[0503] 57.一种网络实体,被配置为:
[0504] 读取根据实施方式56所述的数据流的所述第一和第二语法结构,并且
[0505] 基于所述第一和第二语法结构确定所述层之间的依赖性。
[0506] 58.根据实施方式56所述的网络实体,被配置为:
[0507] 选择所述等级之一;并且
[0508] 丢弃所述多层视频数据流中属于(例如,经由nuh_layer_id)所选择的等级以所述层之间的依赖性的方式独立的层的数据包(例如,NAL单元)。
[0509] 59.一种方法,包括:
[0510] 读取根据实施方式56所述的数据流的第一和第二语法结构,并且
[0511] 基于所述第一和第二语法结构确定所述层之间的依赖性。
[0512] 60.一种具有程序代码的计算机程序,所述计算机程序在计算机上运行时,用于执行根据实施方式59所述的方法。
[0513] 参考文献
[0514] [1]B.Bross  et al.,“High Efficiency Video Coding(HEVC)text specification draft 10”,JCTVC‑L1003,Geneva,CH,14–23Jan.2013
[0515] [2]G.Tech et al.,“MV‑HEVC Draft Text 3”,JCT3V‑C1004,Geneva,CH,17–23 Jan.2013
[0516] [3]G.Tech et al.,“3D‑HEVC Test Model 3”,JCT3V‑C1005,Geneva,CH,17–23Jan.2013
[0517] [4]J.Chen et al.,“SHVC Draft Text 1”,JCT‑VCL1008,Geneva,CH,17–23 Jan.2013
[0518] [5]WILBURN,Bennett,et al.High performance imaging using large camera arrays.ACM Transactions on Graphics,2005,24.Jg.,Nr.3,S.765‑776.
[0519] [6]WILBURN,Bennett S.,et al.Light field video camera.In:Electronic Imaging 2002.International Society for Optics and Photonics,2001.S.29‑36.
[0520] [7]HORIMAI,Hideyoshi,et al.Full‑color 3D display system with 360 degree  horizontal viewing angle.In:Proc.Int.Symposium of  3D  and 
Contents.2010.S.7‑10.

当前第1页 第1页 第2页 第3页
相关技术
罗伯特·斯库平发明人的其他相关专利技术