具体实施方式
作为本申请中提出的一些特征的预览,至少一个实现方式描述了使用以下(i)和(ii)编码深度图中的目标块:(i)邻近目标块的重构深度值;(ii)与深度值的目标块相关联的视频块。实现方式对邻近的重构深度值执行分割操作,并且使用生成的分割来开发视频块的分割。然后将开发用于视频块的分割应用回到目标深度块,以编码目标深度块。因此,深度信息提供用于分割视频信息的开始点,并然后视频信息的分割用于编码关联的深度信息。这种实现方式将深度信息和视频信息联合考虑,以编码深度信息。
在另一实现方式中,提供了新编码模式。新编码模式可以被称作不使用另一深度图像来编码深度图像的区域生长模式。此外,至少一个实现方式既不使用任何其他深度图像作为预测参考,也不使用任何视频图像作为传统预测参考。
至少一个实现方式的一个优点在于,通过使用关联的2D视频以及先前编码深度信息,能够以极高精度来估计当前深度块中的深度信息。在一些实现方式中,这种估计用作对深度信息的编码,在这种情况下,不需要传输或存储深度信息,这是因为在解码器以及编码器处可以确定该估计。备选地,一些实现方式使用该估计作为深度的预测,并且确定并编码残差。因此,多种实现方式降低了用于编码深度信息的比特率,并且还保持使用深度信息的重构而呈现的视图质量。
提出至少一个实现方式(如上所述,区域生长模式)用于有效率的深度图编码。区域生长模式使用邻近深度值与目标深度块之间的相关性,以及深度图与关联视频之间的结果相似性。因此,这种编码模式能够降低深度图的编码比特率。这种编码模式也保持使用从编码深度图重构的重构深度图而呈现的视图质量。
多种实现方式在多种应用中的一个或多个应用中有用。例如,在新视频应用(3D电视(“3DTV”)和自由视点视频(“FVV”))中,典型地除了捕获、编码和解码视图以外,呈现虚拟视图也很重要。基于深度图像的呈现(“DIBR”)是一种呈现虚拟视图的技术。为了在所呈现视图中实现足够质量,优选地良好地保留深度边界。传统视频编码技术典型地导致锐边缘周围的较大伪像。对深度边缘的忠实表示通常比编码深度信息的其他区域需要花费明显更多的比特。若干实现方式有用于以可接受成本提供期望质量。
如本领域已知的,可以将深度数据转换成视差数据。此外,本申请中描述的实现方式和特征意在应用于深度和视差二者。相应地,深度(例如,深度数据、深度值、深度图像、深度图或深度信息)和视差(例如,视差数据、视差值、视差图像、视差图或视差信息)意在通过本描述来得以解决,而与所使用的术语无关。
此外,在使用术语“深度指示符”时,本文将术语深度指示符明确定义为包括深度指示符和/或视差指示符,以及例如对深度和/或视差加以指示的其他类型的数据或信息。例如,在多种实现方式中深度指示符包括深度数据、视差数据、深度值、视差值、深度图像中的至少一部分、视差图像的至少一部分、深度信息和/或视差信息。前述术语不必彼此排除,也不是可能深度指示符的完尽。包括深度指示符的画面可以被称作深度指示符画面。
典型地,深度指示符为特定视频像素,或者为视频画面的特定部分提供信息(例如,深度或视差信息)。在一个示例中,在深度图中嵌入深度指示符,并且深度图的位置(x,y)处的深度指示符为特定视频画面的位置(x,y)处的特定视频像素提供实际深度值。贯穿本申请,通过将深度指示符与特定视频像素相关联来指代这种关系。等同地,本申请通过将深度指示符与特定视频像素相对应来指代这种关系。
当然,可以将该构思概括为指代例如比单个像素大的深度图和视频画面的一部分。在一个示例中,深度图提供视频画面中像素的所有深度值。更具体地,深度图的位置(x,y)处的深度值为所有位置(x,y)提供视频画面的位置(x,y)处的像素的深度值。整个深度图被称为与整个视频画面相关联(或相对应)。
参照图1,示出了用于示意本申请中一些实现方式的特定方面的视频画面序列100以及深度画面序列110。视频画面序列100包括在时间T1处出现的第一视频画面V1、在时间T2处出现的第二视频画面V2以及在时间T3处出现的第三视频画面V3。深度画面序列110包括在时间T1处出现的第一深度画面D1、在时间T2处出现的第二深度画面D2以及在时间T3处出现的第三深度画面D3。
V1和D1彼此相对应,V2和D2彼此相对应,V3和D3彼此相对应。对应意味着D2中的块例如包括针对V2的对应位置的深度信息。这示出了对于V2的位置(x,y)处的块120,对应于D2的位置(x,y)处的块130。
将本申请的以下特定部分划分成分离的章节。这种划分意在便于提供说明和理解。然而,这种划分并不意在以任何方式限制本发明。具体地,在任何给定章节中提供的公开可应用于任何其他章节中的公开,如同不存在章节划分。
A.基于区域生长的预测
现在描述用于产生针对特定M×N深度值块的预测(更一般地也被称作估计)的处理的实现方式。在本实施例中,给出M×N深度值块、邻近深度值块以及对应视频。在本实现方式中,提出了基于区域生长的方法以获得对当前M×N块B的预测。参照图2,可以根据图2中示出的处理2产生基于区域生长的预测值,并在下文中进行描述。
步骤1:如图2的操作210中所描述的,确定在块B附近的附近重构深度采样。参照图3-8,图3示出了该步骤1的示例,其中,仅将块B左边的邻近像素行205以及块B顶部的邻近像素行210视为附近重构深度采样。
步骤2:对附近重构深度采样进行分割,并且可选地向每个深度采样分配分割索引。在图2的操作220中描述并在图4中示出了该步骤2。图4包括第一分段220、第二分段224以及第三分段228,第一分段220包括垂直影线示出的四个像素,第二分段224包括以水平影线示出的七个像素,第三分段228包括以对角影线示出的五个像素。
步骤3:如图2的操作230中所描述的(图3-8中未示出),确定与块B相对应的视频采样。然而,如果将图1的块130视为块B,然后块120包含与块B相对应的视频采样。
步骤4:如图2的操作240中所描述的,确定与重构深度采样205、210相对应的视频采样进行分割。进行上述的一个示例是对视频采样(例如对应重构深度采样)应用相同分割。针对作为与深度块B相对应的块的视频块B’,在图5中示出了该示例。图5包括视频块B’左边的视频像素行205’以及视频块B’顶部的视频像素行210’。即,将像素205’、210’分割成(i)第一分段220’、(ii)第二分段224’和(iii)第三分段228’,(i)第一分段220’以垂直影线示出、包括四个像素并对应于图4的分段220,(ii)第二分段220’以水平影线示出、包括七个像素并对应于图4的分段224,第三分段228’以对角影线示出、包括五个像素并对应于图4的分段228。
另一实现方式向视频采样(例如,对应重构深度采样)分配相同索引号。
步骤5:如图2的操作250中描述的,基于步骤4的初始分割对视频块B’进行分割。在图6中示出了示例,其中,分割220’、224’和228’被称作视频像素VP,并且分割从VP生长到视频块B’中。图6示出了行205’、210’中已经生长到视频块B’中以产生三个分段的邻近视频像素VP的三个分割220’、224’和228’。视频块B’中所产生的三个分割包括以垂直影线示出的第一分割230’、以水平影线示出的第二分割234’以及以对角影线示出的第三分割238’。
如影线所指示的,在一个实现方式中,可以认为分段230’、234’和238’从分段220’、224’和228’生长。具体地,可以认为分段230’从分段220’生长,可以认为分段234’从分段224’生长,并且可以认为分段238’从分段228’生长。
步骤6:如图2的操作260中描述的,基于对应视频块B’的分割对深度块B进行分割。在图7中示出了示例,其中对深度块B应用视频分段230’、234’和238’。在图7中,(i)深度块B中的分段230与邻近重构深度采样的分段220相关联,如公共垂直影线所示,(ii)深度块B中的分段234与邻近重构深度采样的分段224相关联,如公共水平影线所示,以及(ii)深度块B中的分段238与邻近重构深度采样的分段228相关联,如公共对角影线所示。
多种实现方式向块B和B’的分段分配分割索引。此外,特定实现方式向B与B’之间的对应分段分配对应索引。
此外,多种实现方式向重构深度采样205和210的分段以及向与重构深度采样205和210相对应的视频采样205’和210’的分段分配分割索引。此外,特定实现方式向这些深度与视频采样之间的对应分段分配对应索引。
步骤7:如图2的操作270中描述的(图3-8中未示出),确定深度块B中每个深度采样的深度预测值。以下提供了多种实现方式。
在下文中,提供了步骤2、步骤5和步骤7的多种实现方式的细节。
A.1.对附近深度采样的分割
以下讨论提供了如上所述步骤2的实现方式的更多细节,由图4示出。
给定深度图中的深度采样通常包含由锐边缘分离的同质区域。因此,期望一些简单分割方法具有基于区域生长的预测的良好结果。在一个实施例中,分割规则是基于阈值th产生连续分段。如果两个邻近深度采样之间的深度值差大于th,则将这两个采样分配给不同分段。在图4的实现方式中,针对每个深度采样,沿一个或多个方向确定深度值差。
在图8中继续图4的示例。图8示出了十六个附近重构深度采样。这些深度采样如采样241-248和251-258所示。为了确定分割,将采样241的深度值与采样242的深度值相比较。该差小于或等于th,从而深度采样241和242是公共分段220的一部分。同样,采样242的深度值与采样243的深度值之间的差以及采样243的深度值与采样244的深度值之间的差均小于或等于th。因此,采样241-244均是公共分段220的一部分。
然而,采样244的深度值与采样245的深度值之间的差大于th,因此深度采样245不是分段220的一部分。相反,深度采样245包括在分段224中。以下深度采样对的深度值之差小于或等于th:(i)深度采样245和246,(ii)深度采样246和247,(iii)深度采样247和248,(iv)深度采样248和251,(v)深度采样251和252,以及(vi)深度采样252和253。因此,深度采样245-248和251-253均是公共分段224的一部分。注意,因为深度采样248和251被认为足够近似,因此将深度采样248与251相比较。然而,当从深度采样248过渡到深度采样251时另一实现方式自动开始新分割。
然而,采样253的深度值与采样254的深度值之间的差大于th。因此,深度采样254不是分段224的一部分。然而,深度采样包括在分段228中。以下深度采样对的深度值之差小于或等于th:(i)深度采样254和255,(ii)深度采样255和256,(iii)深度采样256和257,以及(iv)深度采样257和258。因此,深度采样254-258均是公共分段228的一部分。
在一个实现方式中,将阈值th设置为常数。在若干其他实现方式中,基于深度图像中的对应最大和最小深度值来计算阈值th。一个特定实现方式使用方程th=α×(dmax-dmin),其中,dmax是最大深度值,dmin是最小深度值,α是从[0,1]中选择的缩放因子。
在该实现方式的一个变型中,根据已经重构的邻接深度块确定最大和最小的深度值,使得解码器可以进行相同处理。该实现方式的另一变型使用已经重构但与当前深度块不邻接的一个或多个深度块来确定最大和最小深度值。
该实现方式的另一变型使用正编码深度块来确定最大和最小深度值,并且又一变型考虑尚未编码的一个或多个其他块。由于解码器典型地不知道正确的预编码深度值,因此特定实现方式计算th并且发送th的值。th的值典型地是整数,从而发送该值的开销通常较小。
这些变型的组合也提供了附加实现方式。在一个这样的实现方式中,使用整个深度图像,并且对th的值进行编码和传输。
可以按照多种方式选择α的值。在一个实现方式中,基于经验数据确定α,以基于速率失真优化来找到最有效率的编码模式。α的较小值通常获得更多分段。更多分段可以以附加的处理和存储成本来产生更精确预测。然而,如果α太小,则th也可以小到使得分割对于深度像素值的略微变化非常灵敏(不鲁棒)。这种灵敏在特定实现方式中引起潜在有噪声的区域生长结果、不精确的预测以及效率不高的压缩。
A.2.区域生长
以下讨论提供了如上所述步骤5的实现方式的更多细节,由图6示出。可以在应用于视频像素的区域生长处理中使用多种方法。参照图9和10,在图9和10的流程图中示出了两种这样的方法。
图9描述了应用于视频块B’中的每个像素p的处理900,如循环初始化操作910所示。在处理900中,附近像素集合VP已被分割,并且分割生长到视频块B’中。
步骤9-1:处理900包括用于确定像素p=argminq∈VP||Iq-Ip||的操作920,其中,Iq是像素q的像素值。这确定了VP中具有与当前像素p的值最接近值的视频像素。另一实现方式简单确定VP中具有在当前像素p的值的阈值内的值的第一视频像素。
又一实现方式确定VP的分段的平均值(其他实现方式使用中值或最频值),并且将Ip与这些均值相比较,而不是例如将Ip与VP中的每个像素相比较。该实现方式有效率地将每个当前像素p与VP的分段相比较。在多种实现方式中,通过确定最接近均值或者确定在给定阈值内的第一均值来执行比较。在多种实现方式中,阈值是均值在像素值的绝对数内的一个或多个绝对阈值,或者均值在像素值的给定百分比内的百分比阈值。
步骤9-2:处理900包括用于向像素p的分割索引分配像素p’的分割索引的操作930。在不使用分割索引的实现方式中,实质上向像素p’的相同分段分配像素p就足以,而与如何指示分段无关。
处理900还包括用于确定在视频块B’中是否存在要处理的更多像素p的操作940。如果存在要处理的更多像素,则针对那些剩余像素p重复操作920-930。
图10描述了应用于视频块B’中的每个像素p的处理1050,如循环初始化操作1060所示。在处理1050中,如同处理900一样,附近像素集合VP已被分割,并且分割生长到视频块B’中。
步骤10-1:作为初始化操作,设置像素集合VP’=VP(视频块B’的附近像素集合)(图10中未示出)。
对于视频块B’中的每个像素p,进行以下两个步骤:
步骤10-2:处理1050包括用于确定如下分割索引的操作1070:
其中,并且
Kp是归一化因子,如在双边滤波器设计中通常使用的。
处理器1050还包括用于根据来自操作1070的结果设置像素p的分割索引的操作1080。另一实现方式将操作1070与1080相组合。
注意,Sq是指像素q的分割索引。此外,函数f和g分别指域(空间)滤波器核和范围滤波器核。||p-q||越大,f的值应当越小,并且||Ip-Iq||越大,g的值应当越小。不同设计可以用于这两个核,例如,分别以p和Ip为中心的高斯滤波器。
操作1070和1080具有将来自块B’的像素p放在使双边滤波器求和最大化的分段中的效果。对分段的所有像素(包括附近像素和来自视频块B’的在以下步骤10-3中已经被放置到分段中的像素p)执行针对给定分段的求和。
双边滤波器通常具有考虑以下二者的效果:(i)像素之间的距离以及(ii)像素之间的像素值差。因此通过函数f向距离上接近的像素给出更大权重,并且通过函数g向具有类似像素值的像素给出更大权重。
此外,应当清楚,对f和g的选择控制对单个像素给出多少加重。例如,根据对f和g的选择,可以对于一个或多个函数f和/或g具有较高值的单个像素比(或者不比)对于函数f和g具有较低值的多个像素更重要。
在不使用分割索引的实现方式中,实质上向使以上方程最大化的相同分段分配像素p就足以。例如,在另一实现方式中,操作1070不用于确定给定像素p的分割索引,操作1070确定像素p的分段。使用相同双边滤波器方程(即,使用相同函数f和g),针对给定分段中的所有像素对双边滤波器结果求和,并且选择使该求和最大化的分段作为像素p的分段。
步骤10-3:在一个实现方式中,操作1070还包括设置VP’=VP’U{p}。该步骤10-3具有扩展在紧邻之前的步骤10-2中(也在操作1070中)针对视频块中的后续像素p而考虑的像素集合的效果。另一实现方式跳过步骤10-3,并且保留在整个处理1050期间不变的集合VP’。
处理1050还包括用于确定在视频块B’中是否存在要处理的多个像素p的操作1090。如果存在要处理的多个像素p,则针对那些剩余像素p重复操作1070-1080。
A.3.产生深度预测值
以下讨论提供了如上所述步骤7的实现方式的更多细节,如图2的操作207所示。如上所述步骤7基于分割确定深度采样的深度块B中每个深度采样的深度预测值,如图2的操作270中描述的(图3-8中未示出)。
多种方法可以用于确定深度预测值(也被称作深度预测值)。在一些实现方式中,例如,基于分割索引产生每个深度采样的预测。在其他实现方式中,例如基于附近像素的值产生每个深度采样的预测。在其他实现方式中,例如基于分割索引和附近像素的值产生每个深度采样的预测。
在多个实施例中,计算附近深度采样的每个分段(在若干实现方式中,分段对应于分割索引)的中值或均值。这产生针对附近深度采样的每个分段的均值。使用图4的示例,例如,这产生分段200的第一均值、分段224的第二均值以及分段228的第三均值。
继续使用图4的示例,将深度块B中的深度采样p的深度预测设置为附近深度采样的已分配分段的中值或均值。例如,利用分割索引Sp给经已分配分段加标记。使用图7的示例,例如,这产生(i)等于分割230中的每个像素的第一均值(分段220的均值)的深度预测,(ii)等于分段234中的每个像素的第二均值(分段224的均值)的深度预测,以及(iii)等于分段238中的每个像素的第三均值(分段228的均值)的深度预测。
其他实现方式使用不同的矩阵或函数或滤波器。一个特定的实现方式使用最频值,另一实现方式使用中值。
B.区域生长模式
在本实施例中,提出了新的深度编码模式:区域生长模式。该模式形成深度画面的给点块的预测,而不使用来自不同时间或不同视图的深度画面作为参考。该模式被称作区域生长模式。例如,在深度编码器/解码器中使用该模式,如图11和图12所示。其他实现方式调整区域生长模式,以使用来自不同时间和/或来自不同视图的参考深度画面。在不同实现方式中使用这样的参考深度画面来辅助预测当前深度块或编码残差。
为了提供用于描述该模式的实现方式的附加上下文,现在讨论图11和12。图11涉及编码。图12涉及解码。
参照图11,编码器1100描绘了编码器的实现方式,在多种实现方式中使用编码器来编码诸如视频图像或深度图像等图像。在特定实现方式中还使用编码器1100来编码诸如提供与已编码比特流有关的信息的元数据等数据。在一个实现方式中,例如实现编码器1100作为如下参照图16描述的视频发送系统的一部分。还应当清楚,图11的块除了提供编码器的框图以外还提供编码处理的流程图。
输入图像序列到达加法器1101,以及到达位移补偿模块1120、位移估计模块1118以及基于区域生长的预测模块1116。注意,位移例如是指运动位移或视差位移。在一个实现方式中,输入图像序列是深度序列。至加法器1101的另一输入是通过开关1123接收到的多种可能参考画面信息项之一。
例如,在第一种情况下,与开关1123信号通信的模式判定模块1124参照来自当前正编码的相同画面(例如,深度画面)的块,确定编码模式应当是帧内预测。在该第一种情况下,加法器1101从帧内预测模块1122接收其输入。备选地,在第二种情况下,模式判定模块1124参照与当前正编码画面不同的画面(例如,不同时间或不同视图,或不同时间和不同视图二者),确定编码模式应当是位移补偿和估计。在该第二种情况下,加法器1101从位移补偿模块1120接收其输入。备选地,在第三种情况下,模式判定模块1124参照当前正在编码的深度以及对应视频画面(如以下进一步说明的),确定编码模式应当是基于区域生长的预测。在该第三种情况下,加法器1101从基于区域生长的预测模块1116接收其输入。
在多种实现方式中,帧内预测模块1122基于作为正编码块的邻近块的一个或多个块,提供预定预测值。在多种实现方式中,帧内预测模块1122通过在针对最佳参考块而编码的画面内进行搜索来提供预测值(参考)。
更具体地,若干这种基于预测值的实现方式在已编码当前画面的那些部分的重构内进行搜索。在一些实现方式中,将搜索限制于位于现有的块边界上的块。然而,在其他实现方式中,允许与在现有的块边界上的那些块无关地对块进行搜索。由于搜索,因此这种实现方式通常比仅使用预定邻近块作为参考更耗时并且更耗处理器资源。然而,这种实现方式典型地提供找到给定块的更好预测的优点。
这种实现方式可以获得最佳估计帧内预测块。此外,在多种实现方式中,参考块的边界可以位于子像素边界上,并且对参考的恢复涉及内插步骤,以恢复在解码期间用作参考的实际块。根据画面内容,这种子像素内插实现方式与使用邻近块作为参考相比可以提高压缩效率。
加法器1101向变换模块1102提供信号,变换模块1102配置为对其输入信号进行变换并且向量化模块1104提供变换信号。量化模块1104配置为对其接收的信号执行量化,并且向熵编码器1105输出量化信息。熵编码器1105配置为对其输入信号执行熵编码,以产生比特流。逆量化模块1106配置为从量化模块1104接收量化信号,并且对量化信号执行逆量化。继而,逆变换模块1108配置为从逆量化模块1106接收逆量化信号,并且对其接收信号执行逆变换。逆变换模块1108的输出是从加法器1101输出的信号的重构。
加法器(更一般地称作组合器)1109将从逆变换模块1108和开关1123接收的信号相加(相组合),并且向帧内预测模块1122、回路内滤波器1110和基于区域生长的预测模块1116输出生成的信号。帧内预测模模块1122和基于区域生长的预测模块1116例如在编码来自当前画面的附加块时使用生成的信号。回路内滤波器1110对针对给定画面的重构画面数据进行滤波,向深度参考滤波器1112提供滤波结果,如以下进一步说明的。生成的信号是输入到编码器1100的图像序列信号的重构。
如上所述,帧内预测模块1122使用其接收信号执行帧内预测。回路内滤波器1110对从加法器1109接收的信号进行滤波,并且向深度参考缓冲器1112提供经滤波的信号。深度参考缓冲器1112向位移估计和补偿模块1118和1120提供图像信息。在一个实现方式中,深度参考缓冲器1112存储例如来自其他时刻或其他视图的参考图像,而不存储来自当前画面的参考图像。在一个实现方式中,回路内滤波器1110是解块滤波器。
在一个实现方式中,回路内滤波器1110使用邻近像素来获得针对当前块中的给定像素的滤波结果。在多种滤波器设计中,针对当前块的邻近像素包括来自非解码块的像素。相应地,对于那些滤波器设计,在对当前块进行解码的同时不能对其进行滤波。此外,不能对已经解码的特定邻近像素进行滤波,直到当前块被解码为止。因此,至少一个实现方式在帧内预测或区域生长模式中不使用滤波结果。然而,该实现方式使用针对帧间预测的滤波结果,这是因为来自先前画面(参考画面)的所有块已被解码并且可以被滤波。可以将元数据添加至编码器1100作为编码元数据,并且与来自熵编码器1105的输出比特流相组合。备选地,例如,可以将未编码元数据输入至熵编码器1105,以连同量化图像序列一起进行熵编码。
还通过模式判定模块1124向输出比特流提供数据。模式判定模块1124向比特流提供对用于编码给定模块的模式加以指示的信息。这样的信息通常包括参考块位置的指示。例如,在使用帧内预测并执行当前画面搜索以找到参考块的多种实现方式中,模式判定模块1124使用视差矢量来指示参考位置。可以通过帧内预测模块1122向模式判定模块1124提供视差矢量信息。
如以下进一步描述的,可以使用邻近宏块的视差矢量作为参考来不同地编码视差矢量信息。此外,可以将针对画面的视差矢量进行分组并附加编码,以去除熵,因为在视差矢量中可能存在空间相似性。
在一个实现方式中,视频参考缓冲器1114存储与正编码深度图像相对应的视频图像。在一个实现方式中使用分离的视频编码器来编码视频图像,并且视频编码器包括视频参考缓冲器1114。在一个实现方式中,基于区域生长的预测块1116使用输入图像序列提供的信息,来确定与正编码深度块相对应的视频的坐标。基于区域生长的预测块1116使用这些坐标来访问来自视频参考缓冲器1114的期望视频。在一个实现方式中,期望视频包括对应于与正编码深度采样邻近的深度采样的视频,以及与正编码的深度采样相对应的视频。
在多种实现方式中,基于区域生长的预测块1116操作以提供正编码图像的预测。在一个实现方式中,基于区域生长的预测块1116执行图2的处理200。
参照图12,解码器1200描绘了解码器的实现方式,可以使用解码器来解码诸如深度图像等图像。在一个实现方式中,将解码图像提供给呈现设备,以基于深度数据产生附加视图。在其他实现方式中,例如使用解码器1200来解码提供与解码比特流有关的信息的元数据,和/或解码视频数据。在一个实现方式中,例如解码器实现为如以下参照图17描述的视频接收系统的一部分。还应当清楚,图12的模块除了提供解码器的框图以外还提供解码处理的流程图。
解码器1200配置为使用比特流接收器1202接收比特流。比特流接收器1202与比特流解析器1204信号通信,并且向比特流解析器1204提供比特流。
比特流解析器1204配置为向熵解码器1206传输残差比特流,向模式选择模块1216提供控制语法元素,并且向位移补偿模块1226传输位移(运动/视差)矢量信息。
位移矢量信息例如可以是运动矢量信息或视差矢量信息。运动矢量信息典型地在帧间预测中使用,以指示从先前图像的相对运动。视差矢量信息典型地在(i)帧间预测中使用以指示相对于分离图像的视差或者在(ii)帧内预测中使用以指示相对于相同图像的一部分的视差。如本领域已知的,视差典型地指示两个图像之间的相对偏移或位移。视差也可以用于指示图像的两个部分之间的相对偏移或位移。
逆量化模块1208对从熵解码器1206接收的熵解码信号执行逆量化。此外,逆变换模块1210配置为对从逆量化模块1208接收的逆量化信号执行逆变换,并且向加法器(也被称作组合器)1212输出逆变换信号。
加法器1212可以根据所采用的解码模式接收多个其他信号中的一个。例如,在一个实现方式中,模式判定模块1216通过解析并分析控制语法语法元素,确定编码器对当前处理的块执行位移补偿还是帧内预测编码。根据确定的模式,模式选择控制模块1216基于控制语法元素访问并控制开关1217,使得加法器1212从位移补偿模块1226、帧内预测模块1218或基于区域生长的预测模块1230接收信号。
这里,帧内预测模块1218配置为使用对当前正解码的相同画面的参考来执行帧内预测,以解码块。继而,位移补偿模块1226配置为使用对与当前正解码画面不同的另一先前经处理画面(例如来自不同时间或不同视图,或者来自不同时间和不同视图二者)的块的参考,执行位移补偿,以解码块。基于区域生长的预测模块1230配置为确定对正解码块的预测。
在多种实现方式中,基于区域生长的预测模块1230操作于提供对正编码图像的预测。在一个实现方式中,基于区域生长的预测模块1230执行图2的处理200。此外,在多种实现方式中,基于区域生长的预测模块1230执行与编码器1100的基于区域生长的预测模块1116相同的操作。
在接收预测或补偿信息信号之后,加法器1212将预测或补偿信息信号与逆变换信号相加,以传输给回路内滤波器1214。例如,回路内滤波器1214是滤除块伪像的解块滤波器。加法器1212还将相加后的信号输出给帧内预测模块1218,以在帧内预测中使用,或者输出给基于区域生长的预测模块1230。
回路内滤波器1214配置为对其输入信号进行滤波并且输出解码画面。此外,回路内滤波器1214向深度参考缓冲器1220提供经滤波的信号。深度参考缓冲器1220配置为对其接收到的信号进行解析,以允许并辅助位移补偿模块1226的位移补偿解码,深度参考缓冲器1220向位移补偿模块1226提供解析信号。这样的解析信号例如可以是可以用作参考的多个画面的所有画面或一部分画面。
视频参考缓冲器1240存储在一个实现方式中与正解码深度图像相对应的视频图像。在一个实现方式中使用分离的视频解码器来解码视频图像,并且视频解码器包括视频参考缓冲器1240。在至少一个实现方式中,基于区域生长的预测模块1230确定与正解码的深度块相对应的视频的坐标。基于区域生长的预测模块1230使用这些坐标来访问来自视频参考缓冲器1240的期望视频。在一个实现方式中,期望视频包括对应于与正解码深度采样邻近的深度采样的视频,以及与正解码深度采样相对应的视频。基于区域生长的预测模块1230按照多种方式来确定视频坐标。例如,在一个实现方式中,基于区域生长的预测模块1230自动获知正解码的深度块的坐标,这是因为解码在画面和块内按照已知方式(例如,左到右,顶到底)进行。作为另一示例,在另一实现方式中,基于区域生长的预测模块1230使用输入比特流提供的信息来确定正解码深度块的坐标。假定对应视频具有与深度块相同的坐标,或者提供指示对应视频的数据。
可以在提供给比特流接收器1202的比特流中包括元数据。元数据可以由比特流解析器1204解析,并且由熵解码器1206解码。在使用输出(未示出)进行熵解码之后,可以从解码器1200提取解码元数据。
在至少一个实现方式中,图12的许多模块执行图11中对应模块的逆操作。例如,在一个实现方式中:
-熵解码器1206执行熵编码1105的逆操作,
-逆量化模块1208执行量化模块1104的逆操作,并且
-逆变换模块1210执行变换模块1102的逆操作。
此外,如上所述,在至少一个实现方式中,图12的许多模块执行与图11中的对应模块相同的操作。例如,在一个实现方式中:
-回路内滤波器1214执行与回路内滤波器1110相同的操作,
-帧内预测模块1218执行与帧内预测模块1122相同的操作,
-位移补偿模块1226执行与位移补偿模块1120相同的操作,并且
-基于区域生长的预测模块1230执行与基于区域生长的预测模块1116相同的操作。
再次考虑区域生长模式。在该模式的一个实现方式中,在16×16宏块(“MB”)级别上实现该模式。然而,可以在4×4块级别下执行区域生长预测。其他实现方式使用不同尺寸来执行预测。在下文中描述该实现方式的编码和解码处理。
B.1.利用基于区域生长的模式的编码
再次参照图11,编码器1100提供实现了区域生长模式的深度编码器的实现方式。在实现区域生长模式中具体涉及编码器1100的两个模块。这两个模块是基于区域生长的预测模块1116和视频参考缓冲器1114。以上描述了这两个模块的操作。注意,在至少一个实现方式中,保持视频参考缓冲器1114,使得可以访问来自视频编码器的重构视频帧来进行RG预测。
参照图13,示出了用于利用区域生长模式编码宏块的处理1300。其他实现方式向比宏块大的数据(例如,场、帧或帧集合)、比宏块小的数据(例如,分块)、和/或非均匀形状(例如,非矩形)的数据应用诸如区域生长模式等区域生长预测。处理1300包括以下操作:
步骤13-1:处理1300包括将当前MB分成4×4块的操作(1310)。其他实现方式使用具有与4×4不同大小的分块(例如,4×8、8×4、8×8、8×16或16×8)。
步骤13-2:对于每个4×4块,处理1300进入循环(1320)。在循环内部,对于给定4×4块,处理1300执行用于根据附近重构深度采样确定基于区域生长的预测的操作(1330)。在一个实现方式中,使用图2的处理200来确定基于区域生长的预测。
步骤13-3:在循环内,处理1300可选地细化步骤13-2中确定的预测(1340)。操作1340的虚线框指示操作1340在处理1300中是可选的。
步骤13-4:在循环内,处理1300基于输入的深度信息和来自步骤13-2中的操作1330或步骤13-3中的操作1340的预测深度值,确定残差。在一个实现方式中,计算残差作为输入深度信息与预测深度值之间的差值,并然后对该差值进行变换和量化(例如,参见图11中的模块1102、1104)。其他实现方式对残差执行附加操作,作为编码处理的一部分。
步骤13-5:在循环内,处理1300基于残差信息和预测深度值确定重构深度块(1360)。在一个实现方式中,通过将残差信息(例如,如在图11的模块1106和1108中经去量化和逆变换)与预测深度值相加来形成重构。另一实现方式对残差执行附加操作,作为编码处理的一部分。
步骤13-6:处理1300确定针对下个块是否再次执行循环操作(1370)。如果保持要处理附加块,则处理1300针对下个块执行步骤13-2至步骤13-5(注意步骤13-3是可选的),并且继续执行循环操作,直到处理了所有块为止。从顶到底并且从左到右对块进行处理。一个实现方式通过处理顶行(从左到右)并然后向下前进到下一行,直到处理了所有行为止,来从左到右并从顶到底进行。另一实现方式通过处理左列(从顶到底)并且向右前进到下一列,直到处理了所有列为止,来提供备选结果。又一实现方式根据在处理中使用哪些邻近像素,从右到左和/或从底到顶进行处理。其他实现方式按照不同顺序对块进行处理。
注意,来自MB的先前编码块/分块可以用于产生对来自相同MB的当前(不同)块/分块的预测。这是因为针对每个块/分块单独粗鲁残差信息,并且在确定当前块/分块的预测之前,先前块/分块的重构可用。
在多种实现方式中跳过步骤13-3中的细化处理,以便降低编码器和/或解码器的复杂性。然而,若干实现方式包括细化操作。细化操作例如包括附加滤波操作。
提供了细化操作的又一示例。在一个实现方式中,对于4×4块中的给定深度采样,识别满足两个准则的附近深度采样。两个准则是给定深度采样和附近深度采样(i)具有彼此类似的深度值,并且(ii)具有彼此类似的对应视频像素值。确定这些所识别的附近深度采样的中间深度值。中间值用作细化深度采样值。
对于一个实现方式,附近深度采样是紧邻正编码的4×4深度采样块之上的4像素集合。注意,附近深度采样是来自一个或多个先前编码块/分块的重构深度采样。例如,附近像素集合高达八个像素。附近像素集合可以大于或小于分段中与操作1330和/或操作260中要编码的给定深度像素相关联像素集合并且与该像素集合交叠或不交叠。
对于另一实现方式,将附近深度采样限制到来自关联分段的那些深度采样(例如,如在操作260中确定的),那些深度采样进一步满足两个细化准则。因此,附近深度采样集合不大于分段中的像素集合,并且与该像素集合相关联。
例如,如果两个值彼此在给定阈值内,则通过确定两个值相类似来评价以上两个细化准则。例如,阈值可以是绝对阈值或百分比阈值。
一个实现方式计算附近深度采样的中值。然而,其他实现方式计算一个或多个均值或最频值。
B.2.解码/呈现
在该实现方式的解码器侧处,在对对应深度数据进行解码之前对2D视频的帧进行解码。再次参照图12,解码器1200提供对深度数据进行解码的深度解码器的实现方式。具体地,解码器1200能够使用区域生长模式对已编码数据进行解码。在利用区域生长模式对已编码深度数据进行解码时具体涉及解码器1200的两个模块。这两个模块是基于区域生长的预测模块1230以及视频参考缓冲器1240。以上描述了这两个模块的操作。
参照图14,示出了用于对已利用区域生长模式编码的MB进行解码的处理1400。其他实现方式对大于宏块的数据(例如,场、帧、帧集合)、小于宏块的数据(例如,分块)和/或非均匀形状(例如,非矩形)的数据应用基于区域生长的模式或区域生长预测。相应地,编码侧和解码侧二者的其他实现方式对具有与宏块不同大小和/或形状的数据集合进行操作。处理1400包括以下操作:
步骤14-1:处理1400包括对残差进行解码(1410)。
步骤14-2:处理1400包括将MB分成多个4×4块(1420)。
步骤14-3:对于每个4×4块,处理1400进入循环(1430)。在循环内部,对于给定块,处理1400包括基于附近解码块来确定基于区域生长的预测(1440)。该操作与编码处理1300的操作1330中执行的操作相同。块扫描顺序典型地域编码器中使用的块扫描顺序相同,例如,从左到右并且从顶到底。这在编码器和解码器处提供一致结果。这还在解码器处提供了按照适当顺序的期望块,因此在按照与接收块的顺序不同的顺序对接收到的块进行解码的同时减少了存储接收到的块的任何需要。
步骤14-4:在循环内,处理1400可选地细化操作1440中确定的预测(1450)。该操作与编码处理1300的操作1340中执行的操作相同。此外,其他实现方式执行细化操作,但是进行判定处理来确定是否使用细化预测。为了确保一致性,这些其他实现方式在编码器和解码器二者处执行相同判定处理,或者编码器向解码器发送判定处理结果。操作1450的虚线框指示操作1450在处理1400中是可选的。
步骤14-5:在循环内,处理1400包括执行块重构(1460)。在一个实现方式中,通过将来自操作1410的解码残差信息(步骤1)与从步骤14-3(操作1440)或步骤14-4(操作1450)产生的当前块预测相加来重构4×4块。重构的深度块是对当前深度块的解码结果。如关于步骤14-4描述的,一些实现方式具有用于确定是否使用细化预测的判定处理。
步骤14-6:处理1400确定针对下个块是否再次执行循环操作(1470)。如果保持处理附加块,在处理1400针对下个块执行步骤14-3至步骤14-5(操作1440至1460)(其中步骤14-4和操作1450是可选的)。此外,处理1400继续执行循环操作,直到处理了所有块为止(即,直到解码了所有块为止)。如在编码侧进行的,从顶到底并且从左到右对块进行处理。其他实现方式按照不同顺序对块进行处理。
参照图15,示出了用于处理深度指示符的处理1500。处理可以包括多种不同操作。例如,在多种实现方式中,处理包括形成深度指示符的预测,对深度指示符进行编码和/或对深度指示符进行解码。
处理1500包括确定视频图像序列中视频图像的特定部分的分割(1510)。基于参考深度指示符确定分割。参考深度指示符针对视频图像序列中至少一个视频图像。
处理1500包括:处理与视频图像的特定部分相对应的目标深度指示符(1520)。该处理基于视频图像的特定部分中确定的分割。
处理1500的多种实现方式使用3步骤处理。现在描述可应用于特定实现方式的一个这种3步骤处理。在第一步骤中,对深度数据进行处理。在第二步骤中,在处理相关视频时使用对深度数据(来自第一步骤)的处理。注意,不需要相关视频正好对应于经处理的深度数据。例如,在一个实现方式中,相关视频数据对应于在经处理的深度数据附近的深度数据。在第三步骤中,对相关视频数据的处理用于处理对应深度数据。因此,这些实现方式的3步骤处理以深度数据开始和结束。
在一个实现方式中,在基于区域生长的预测模块1116和/或1230中执行操作1510和1520。
现在参照图16,示出了可以应用上述特征和原理的视频发送系统或设备1600。例如,视频传输系统或设备1600可以是使用诸如卫星、有线、电话线或地面广播传输信号的头端设备或传输系统。备选地,视频传输系统或设备1600例如也可以用于提供存储信号。可以在互联网或一些其他网络上提供传输。例如,视频传输系统或设备1600能够产生并传递视频内容和其他内容(例如,包括例如深度和/或视差值的深度指示符)。也应当清楚,图16的模块除了提供视频传输系统或设备的框图以外还提供视频传输处理的流程图。
视频传输系统或设备1600从处理器1601接收输入视频。在一个实现方式中,处理器1600简单地将视频图像(例如,图1的视频图像V1、V2和V3)提供给视频传输系统或设备1600。然而,在另一实现方式中,处理器1601备选或附加地将深度图像(例如,图1的深度图像D1、D2和D3)提供给视频传输系统或设备1600。处理器1601还可以将元数据提供给视频传输系统或设备1600,其中,元数据涉及一个或多个输入图像。
视频传输系统或设备1600包括编码器1602和能够发送编码信号的发射器。编码器1602从处理器1601接收视频信息。例如,视频信息可以包括视频图像和/或残差(或深度)图像。编码器1602基于视频和/或残差信息产生编码信号。在一个实现方式中,编码器1602是图11的编码器1100。
在多种实现方式中,例如,编码器1602是AVC编码器。AVC编码器可以应用于视频和视差信息二者。AVC是指现有的国际标准化组织/国际电工委员会(ISO/IEC)运动图像专家组-4(MPEG-4)的第10部分高级视频编码(AVC)标准/国际电信联盟电信部(ITU-T)H.264推荐标准(下文中称之为“H.264/MPEG-4AVC标准”或其变型,例如,“AVC标准”、“H.264标准”或简单称为“AVC”或“H.264”).
编码器1602可以包括子模块,例如,包括用于接收多个信息并将多个信息封装到结构化格式中以进行存储或传输的封装单元。例如,多个信息可以包括编码或未编码视频、编码或未编码视差(或深度)值、以及编码或未编码元素(例如,运动矢量、编码模式指示符和语法元素)。在一些实现方式中,编码器1602包括处理器1601并因此执行处理器1601的操作。
发射器1604从编码器1602接收编码信号,并且在一个或多个输入信号中发送编码信号。例如,发射器1604可以适合于发送具有一个或多个比特流的节目信号,一个或多个比特流表示编码画面和/或与编码画面相关的信息。例如,典型发射器执行以下一个或多个功能,例如,提供纠错编码、对信号中的数据交织、对信号中的能量随机化、以及使用调制器1606将信号调制到一个或多个载波上。发射器1604可以包括天线(未示出)或与天线接口连接。此外,发射器1604的实现方式可以限于调制器1606。
视频传输系统或设备1600还通信耦合至存储单元1608。在一个实现方式中,存储单元1608耦合值编码器1602,并且存储单元1608存储来自编码器1602的编码比特流,并且可选地向发射器1604提供存储的比特流。在另一实现方式中,存储单元1608耦合至发射器1604,并且存储来自发射器1604的比特流。例如,来自发射器1604的比特流可以包括发射器1604已经进一步处理的一个或多个编码比特流。在不同实现方式中,存储单元1608是标准DVD、蓝光盘、硬盘或一些其他存储设备中的一个或多个。
现在参照图17,示出了可以应用上述特征和原理的视频接收系统或设备1700。视频接收系统或设备1700可以配置为通过多种介质(例如,卫星、有线、电话线或地面广播)接收信号。可以通过互联网或一些其他网络来接收信号。还应当清楚,图17的模块除了提供视频接收系统或设备的框图以外还提供视频接收处理的流程图。
例如,视频接收系统或设备1700可以是蜂窝电话、计算机、机顶盒或接收编码视频并提供例如解码视频信号以进行显示(例如向用户显示)、处理或存储的其他设备。因此,视频接收系统或设备1700可以将其输出提供给例如电视屏幕、计算机监视器、计算机(用于存储、处理或显示)或一些其他存储、处理或显示设备。
视频接收系统或设备1700能够接收并处理视频信息,视频信息例如可以包括视频图像和/或视差(或深度)图像。视频接收系统或设备1700包括用于接收编码信号(例如,在本申请的实现方式中描述的信号)的接收器1702。例如,接收器1702可以接收提供以下中的一个或多个的信号:图1的视频图像V1、V2和V3;图1的深度图像D1、D2和D3;或从图16的视频传输系统1600输出的信号(例如,从存储单元1608或发射器1604输出的信号)。
例如,接收器1702可以适合于接收具有表示编码画面(例如,视频画面或深度画面)的多个比特流的节目信号。典型的接收器执行以下一个或多个功能:例如,接收调制和编码数据信号、使用解调器1704从一个或多个载波中解调数据信号、对信号中的能量解随机化、对信号中的数据解交织、并且对信号进行纠错解码。接收器1702可以包括天线(未示出)或与天线接口连接。接收器1702的实现方式可以限于解调器1704。
视频接收系统或设备1700包括解码器1706。在一个实现方式中,解码器1706是图12的解码器1200。
接收器1702向解码器1706提供接收到的信号。接收器1702提供给解码器1706的信号可以包括一个或多个编码比特流。解码器1706输出解码信号,例如,包括视频信息的解码视频信号或包括深度信息的解码深度信号。解码器1706例如可以是AVC解码器。
视频接收系统或设备1700还通信耦合至存储单元1707。在一个实现方式中,存储单元1707耦合至接收器1702,并且接收器1702访问来自存储单元1707的比特流,和/或将接收到的比特流存储到存储单元1707。在另一实现方式中,存储单元1707耦合值解码器1706,并且解码器1706访问来自存储单元1707的比特流,和/或将解码比特流存储到存储单元1707。在不同实现方式中,从存储单元1707访问的比特流包括一个或多个编码比特流。在不同实现方式中,存储单元1707是标准DVD、蓝光盘、硬盘或一些其他存储设备中的一个或多个。
在一个实现方式中,向处理器1708提供来自解码器1706的输出视频。在一个实现方式中,处理器1708是配置为执行呈现新视图的处理器。在一些实现方式中,解码器1706包括处理器1708并因此执行处理器1708的操作。在其他实现方式中,处理器1708是下游设备(例如,机顶盒或电视)的一部分。
本申请提供多个框图/流程图,包括图2和9-17的框图/流程图。应当清楚,本申请的框图/流程图提出描述处理的流程图和描述设备的功能模块的框图二者。此外,本申请提供多个图示表示,包括图1和3-8的图示表示。应当清楚,本申请的图示表示提供示意或结果或输出和描述处理的流程图二者。
已经描述了用于实现新模式的多种实现方式。该模式被称作区域生长模式。多种实现方式使用模式表中的语法来信号通知信模式。在一个实现方式中,语法包括使用标志来指示特定块是利用新区域生长模式编码的还是利用传统模式编码的。例如,AVC包括多种传统模式。
多种实现方式可以具有多种优点中的一个或多个。这些优点的部分列表包括:(i)低复杂度,(ii)保留深度边缘,(iii)降低用于编码图像的平坦区域的比特数目,(iv)使用来自仅单个视图而不是多个视图的深度和视频的信息,以免视图间失真和翘曲,以及(v)使用视频帧中的实际采样值而不仅使用运动信息(例如,运动矢量)和编码模式来导出深度图的边缘信息。
因此提供了具有特定特征和方面的一个或多个实现方式。具体地,提供了与预测深度指示符相关的若干实现方式。然而,可以设想这些实现方式的变型和附加应用并在本公开内,并且所描述实现方式的特征和方面可以适合于其他实现方式。
本申请中描述的若干实现方式和特征可以在AVC标准和/或具有MVC扩展(附录H)的AVC和/或具有SVC扩展(附录G)的AVC的上下文中使用。此外,这些实现方式和特征可以在另一标准(现有或未来)的上下文中或者在不涉及标准的上下文中使用。
对本发明原理的“一个实施例”、“实施例”或“一个实现方式”或“实现方式”以及其其他变型的引用意味着结合实施例描述的特定特征、结构、特性等包括在本发明原理的至少一个实施例中。因此,贯穿说明书在不同地方出现的术语“在实施例中”或“在一个实施例中”不必均指相同的实施例。
此外,本申请或其权利要求可以引用“确定”多个信息。确定信息可以包括以下中的一个或多个,例如,估计信息、计算信息、预测信息或从存储器获取信息。
此外,本申请或其权利要求可以引用“访问”多个信息。访问信息可以包括以下中的一个或多个:例如,接收信息、获取信息(例如,存储器)、存储信息、处理信息、发送信息、移动信息、拷贝信息、擦除信息、计算信息、确定信息、预测信息或估计详细。
多种实现方式是指“图像”和/或“画面”。术语“图像”和“画面”贯穿本文档可互换使用,并且意在为广义术语。例如,“图像”或“画面”可以是帧或场的全部或一部分。术语“视频”是指图像(画面)序列。例如,图像或画面可以包括多个视频分量中的任一个或其组合。例如,这种分量或其组合包括亮度、色度、Y(属于YUV或YCbCr或YPbPr)、U(属于YUV)、V(属于YUV)、Cb(属于YCbCr)、Cr(属于YCbCr)、Pb(属于YPbPr)、Pr(属于YPbPr)、红(属于RGB)、绿(属于RGB)、蓝(属于RGB)、S-视频以及这些分量中的任一个的负数和正数。备选地,“图像”或“画面”也可以指代多种不同类型的例如,例如,包括典型的二维视频、针对2D视频画面的视差图、对应于2D视频画面的深度图或边缘图。
“深度图”、或“视差图”、或“边缘图”或类似术语也意在为广义术语。例如,图通常指代包括特定类型信息的画面。然而,图可以包括其名称未指示的其他类型信息。例如,深度图典型地包括深度信息,但是也可以包括其他信息,例如视频或边缘信息。
术语“邻域”和“邻近”贯穿本申请使用。作为示例,如果第一块或像素接触第二块或像素,则第一块或像素被称作第二块或像素的邻域。因此,给定块或像素通常具有八个邻域,包括左边、右边、上边、下边和四个角处的块或像素。
此外,应当理解的是,例如在“A/B”、“A和/或B”和“A和B中的至少一个”的情况下,以下“/”、“和/或”和“至少一个”中的任一个的使用,意在包括仅选择第一所列项目(A)、仅选择第二所列项目(B)、或选择两个项目(A和B)。作为另一示例,在“A、B和/或C”、“A、B和C中的至少一个”和“A、B或C中的至少一个”的情况下,这样的表示意在包括仅选择第一所列项目(A)、仅选择第二所列项目(B)、仅选择第三所列项目(C)、或仅选择第一和第二所列项目(A和B)、或仅选择第一和第三所列项目(A和C)、或仅选择第二和第三所列项目(B和C)、或选择所有三个项目(A和B和C)。对于本领域和相关领域的普通技术人员之一来说显而易见的是,对于所列的许多项目,上述是可以扩展的。
此外,许多实现方式可以在编码器(例如,编码器1100或1602)、解码器(例如,解码器1200或1706)、对来自解码器的输出进行处理的后处理器(例如,处理器1708)、或向编码器提供输入的预处理器(例如,处理器1601)中的一个或多个中实现。此外,本公开可以设想其他实现方式。
这里描述的实现方式例如可以以方法或处理、设备、软件程序、数据流或信号来实现。即使仅在单个形式的实现方式的上下文中讨论(例如,仅作为方法讨论),但是所讨论特征的实现方式也可以以其他形式(例如,设备或程序)来实现。例如,设备可以以适当的硬件、软件和固件来实现。例如,方法可以以诸如处理器等设备(指代通常的处理设备,例如包括计算机、微处理器、集成电路或可编程逻辑器件)来实现。处理器还包括诸如计算机、蜂窝电话、便携式/个人数字助理(“PDA”)等通信设备以及有助于终端用户直接的信息通信的设备。
这里描述的多个处理和特征的实现方式可以在多种不同设备和应用中实现,具体地,例如与数据编码、数据解码、视图产生、深度或视差处理和图像和相关深度和/或视差的其他处理相关联的设备或应用。这种设备的示例包括编码器、解码器、对来解码器的输出进行处理的后处理器、向编码器提供输入的预处理器、视频编码器、视频解码器、视频编解码器、web服务器、机顶盒、膝上型计算机、个人计算机、蜂窝电话、PDA和其他通信设备。应当清楚,设备可以是移动的并且甚至可以安装在移动设备中。
此外,方法可以通过由处理器执行的指令来实现,并且这样的指令(和/或有实现方式产生的数据值)可以存储在处理器可读介质上,处理器可读介质例如是集成电路、软件载体或其他存储设备,其他存储设备例如是硬盘、压缩盘(“CD”)、光盘(例如,DVD,通常被称作数字万能盘或数字视频盘)、随机存取存储器(“RAM”)、或只读存储器(“ROM”)。指令可以形成在处理器可读介质上具体实现的应用程序。例如,指令可以在硬件、固件、软件或其组合中实现。例如,可以在操作系统、分离应用或二者组合中找到指令。因此,处理器可以表征为配置为执行处理的设备和包括具有用于执行处理器的指令的处理器可读介质(例如,存储设备)的设备二者。此外,处理器可读介质除了指令以外还可以存储实现方式产生的数据值。
如本领域技术人员显而易见的,实现方式可以产生格式化为执行例如可以存储或传输的信息的多种信号。例如,信息可以包括用于执行方法的指令、由所描述实现方式之一产生的数据。例如,可以将信号格式化为携带用于写入或读取所描述实施例的语法的规则作为数据,或者携带所描述实施例写入的实际语法元素作为数据。例如,可以将这样的信号格式化为电磁波(例如,使用频谱的无线电频率部分)或基带信号。例如,格式化可以包括对数据流进行编码和利用编码数据流对载波进行调制。例如,信号所携带的信息可以是模拟或数字信息。信号可以在所知的多种不同有线或无线链路上传输。信号可以存储在处理器可读介质上。
已经描述了多个实现方式。然而,应当理解可以进行多种修改。例如,可以组合、补充、修改或去除不同实现方式的元素以产生其他实现方式。此外,本领域技术人员应当理解,其他结构和处理可以代替那些公开的结构和处理,并且生成的实现方式以至少实质上相同方式来至少实质上执行相同功能,以实现至少实质上与所公开实现方式相同的结构。相应地,本申请可以设想这些和其他实现方式。