处理点云的缺失点

文档序号:214978 发布日期:2021-11-05 浏览:4次 >En<

阅读说明:本技术 处理点云的缺失点 (Processing missing points of a point cloud ) 是由 J.拉赫 C.格德 J-C.切维特 于 2020-01-27 设计创作,主要内容包括:至少一个实施例涉及一种分配占用图的像素值的方法,该占用图的像素值指示沿着相同投影线投影的点云帧的至少一个3D样本的深度值被存储为至少一个层的像素值,或者等于表示沿着所述投影线的至少一个3D样本投影的深度值的固定长度码字。(At least one embodiment relates to a method of assigning pixel values of a occupancy map indicating that depth values of at least one 3D sample of a point cloud frame projected along a same projection line are stored as pixel values of at least one layer, or equal to fixed length codewords representing depth values of at least one 3D sample projection along the projection line.)

处理点云的缺失点

技术领域

本实施例中的至少一个总体上涉及点云的处理。

背景技术

本部分旨在向读者介绍本领域的各个方面,其可以与下面描述和/或要求保护的本实施例中的至少一个的各个方面相关。相信该讨论有助于向读者提供

背景技术

信息,以便于更好地理解至少一个实施例的各个方面。

点云(point cloud)可以用于各种目的,诸如文化遗产/建筑物,其中像雕像或建筑物之类的对象以3D扫描,以便共享对象的空间配置而无需发送或访问它。此外,这是一种在对象可能被销毁的情况下确保保留对象的知识的方式;例如,地震下的寺庙。这种点云通常是静态的、彩色的和巨大的。

另一个用例是在地形学和制图学中,其中使用3D表示允许地图不限于平面并且可以包括浮雕。谷歌地图现在是3D地图的良好示例,但是其使用网格而不是点云。然而,点云可以是3D地图的合适数据格式,并且这样的点云通常是静态的、彩色的和巨大的。

汽车工业和自动驾驶汽车也是可以使用点云的领域。自动驾驶汽车应该能够“探测”其环境,以基于其直接邻居的现实做出良好的驾驶决策。典型的传感器如LIDAR(光检测和测距)产生由决策引擎使用的动态点云。这些点云不旨在被人类观看,并且它们通常是小的,不一定是彩色的,并且具有高捕获频率的动态。这些点云可以具有其他属性,如由LIDAR提供的反射率,因为该属性提供关于感测对象的材料的良好信息,并且可以帮助做出决策。

虚拟现实和沉浸式世界最近已经成为热门话题,并且被许多人预见为2D平面视频的未来。基本思想是将观看者沉浸在围绕观看者的环境中,这与观看者只能观看观看者前面的虚拟世界的标准TV形成对比。取决于观看者在环境中的自由度,沉浸性存在若干等级。点云是分发虚拟现实(VR)世界的良好格式候选。

在许多应用中,重要的是能够通过仅消耗合理量的比特率(或用于存储应用的存储空间)来将动态点云分发给终端用户(或将它们存储在服务器中),同时保持可接受的(或优选地非常好的)体验质量。这些动态点云的有效压缩是关键点,以便使许多沉浸式世界的分销链实用。

考虑到前述内容,已经设计了至少一个实施例。

发明内容

以下呈现了本实施例中的至少一个的简化概述,以便提供对本公开的一些方面的基本理解。该概述不是实施例的广泛概述。其不旨在标识实施例的关键或重要元素。以下概述仅以简化形式呈现本实施例中的至少一个的一些方面,作为文档中其他地方提供的更详细描述的序言。

根据至少一个实施例的一般方面,提供了一种方法,包括:分配占用图像的像素值,以指示沿着相同投影线投影的点云帧的至少一个3D样本的深度值被存储为至少一个深度图像的像素值,或者等于表示沿着所述投影线的至少一个3D样本投影的深度值的固定长度码字。

根据实施例,所述方法还包括:将沿着所述投影线投影的至少一个3D样本编码为码字的比特,并且当所述深度值已经被编码为深度图像的值时,跳过将沿着所述投影线投影的3D样本的深度值编码为所述码字的比特。

根据实施例,该方法还包括:用信号发送指示是否使用固定长度码字的第一信息。

根据实施例,该方法还包括:用信号发送表示码字的长度的第二信息。

根据实施例,所述第一信息和/或第二信息是针对点云帧的序列用信号发送的。

根据实施例,所述第一信息和/或第二信息是按帧或按片用信号发送的。

根据至少一个实施例的另一个一般方面,提供了一种包括表示占用图像的像素值的图像数据的信号,以指示沿着相同投影线投影的点云帧的至少一个3D样本的深度值被存储为至少一个深度图像的像素值,或者等于表示沿着所述投影线的至少一个3D样本投影的深度值的固定长度码字。

根据实施例,所述信号还包括:指示是否使用固定长度码字的第一信息。

根据实施例,所述信号包括:表示码字的长度的第二信息。

根据至少一个实施例的一般方面,提供了一种方法,包括:从比特流获得指示是否使用固定长度码字来推导出点云的至少一个3D样本的深度值的第一信息;以及如果所述第一信息指示使用固定长度码字,那么从表示沿着投影线投影的至少一个3D样本的深度值的固定长度码字推导出所述深度值;否则,从具有不同长度的码字推导出所述深度值。

根据实施例,所述方法还包括:从比特流获得表示码字的长度的第二信息。

至少一个实施例中的一个或多个还提供了一种设备、计算机程序产品和非暂时性计算机可读介质。

根据以下结合附图对示例的描述,本实施例中的至少一个的具体性质以及本实施例中的所述至少一个的其他目的、优点、特征和用途将变得显而易见。

附图说明

在附图中,示出了若干实施例的示例。附图示出了:

图1示出了根据本实施例中的至少一个的基于两层的点云编码结构的示例的示意性框图;

图2示出了根据本实施例中的至少一个的基于两层的点云解码结构的示例的示意性框图;

图3示出了根据本实施例中的至少一个的基于图像的点云编码器的示例的示意性框图;

图3a示出了包括2个片(patch)和他们的2D边界框的画布(canvas)的示例;

图3b示出了沿着投影线位于两个3D样本之间的两个中间3D样本的示例;

图4示出了根据本实施例中的至少一个的基于图像的点云解码器的示例的示意性框图;

图5示意性地示出了根据本实施例中的至少一个的表示基础层BL的比特流的语法的示例;

图6示出了其中实现各个方面和实施例的系统的示例的示意性框图;

图7示出了使用V-PCC的这种3D到2D投影的示例;

图8示出了根据至少一个实施例的用于对沿着相同投影线投影的3D样本的深度值进行编解码的方法的示例的示意性框图;

图9示出了根据至少一个实施例的用于对沿着相同投影线投影的3D样本的深度值进行解码的方法的示例的示意性框图;

图10示出了根据至少一个实施例的确定占用图(occupancy map)的像素值的示例;

图11示出了根据所述变型的确定占用图OM(u,v)的像素值的示例;

图12示出了根据至少一个实施例的确定占用图OM(u,v)的像素值的示例;

图13示出了根据至少一个实施例的用于用信号发送信息INFO1和INFO2的语法元素的示例;以及

图14示出了根据至少一个实施例的用于用信号发送信息INFO1和INFO2的语法元素的示例。

具体实施方式

在下文中参考附图更全面地描述了本实施例中的至少一个,在附图中示出了本实施例中的至少一个的示例。然而,实施例可以以许多替代形式体现,并且不应被解释为限于本文阐述的示例。因此,应当理解,并不意图将实施例限制于所公开的特定形式。相反,本公开旨在覆盖落入本申请的精神和范围内的所有修改、等同物和替代物。

当附图被呈现为流程图时,应当理解,它还提供了对应装置的框图。类似地,当附图被呈现为框图时,应当理解,它还提供了对应方法/过程的流程图。

附图中相似或相同的元件用相同的附图标记表示。

一些附图表示在V-PCC中广泛使用的语法表,用于定义符合V-PCC的比特流的结构。在这些语法表中,术语“…”表示相对于V-PCC中给定的原始定义的语法的未改变部分,并且在图中被移除以便于阅读。附图中的粗体术语指示该术语的值是通过解析比特流获得的。语法表的右列指示用于对语法元素的数据进行编码的比特的数目。例如,u(4)指示4个比特用于对数据进行编码,u(8)指示8个比特,ae(v)指示上下文自适应算术熵编解码语法元素。

下面描述和预期的方面可以以许多不同的形式实现。下面的图1-14提供了一些实施例,但是可以预期其他实施例,并且图1-14的讨论不限制实现方式的广度。

这些方面中的至少一个方面总体上涉及点云编码和解码,并且至少一个其他方面总体上涉及发送所生成或编码的比特流。

更确切地说,本文描述的各种方法和其他方面可以用于修改模块,例如,如图1-14所示的模块PGM(步骤3100)、编码器OMENC(步骤3600)、几何生成模块GGM(步骤4300)、占用图解码器OMDEC(步骤4400)。

此外,本方面不限于诸如涉及点云压缩的MPEG-I第5部分的MPEG标准,并且可以应用于例如其他标准和推荐,无论是预先存在的还是未来开发的,以及任何这样的标准和推荐的扩展(包括MPEG-I第5部分)。除非另有说明或技术上排除,否则本申请中描述的方面可以单独使用或组合使用。

在下文中,图像数据是指例如特定图像/视频格式中的2D样本的一个或若干阵列的数据。特定图像/视频格式可以指定与图像(或视频)的像素值有关的信息。例如,特定图像/视频格式还可以指定可以由显示器和/或任何其他装置使用以对图像(或视频)进行可视化和/或解码的信息。图像通常包括呈第一2D样本阵列的形状的第一分量,其通常表示图像的亮度(luminance)(或亮度(luma))。图像还可以包括呈其他2D样本阵列的形状的第二分量和第三分量,其通常表示图像的色度(chromiance)(或色度(chroma))。一些实施例使用颜色样本的2D阵列的集合(诸如传统的三色RGB表示)来表示相同的信息。

在一个或多个实施例中,像素值由C个值的矢量表示,其中C是分量的数目。矢量的每个值通常用可以定义像素值的动态范围的多个比特来表示。

图像块表示属于图像的像素的集合。图像块的像素值(或图像块数据)是指属于该图像块的像素的值。图像块可以具有任意形状,尽管矩形是常见的。

点云可以由3D体积空间内具有唯一坐标并且还可以具有一个或多个属性的3D样本的数据集表示。

该数据集的3D样本可以由其空间位置(3D空间中的X、Y和Z坐标)定义,并且可能由一个或多个相关联的属性定义,诸如在RGB或YUV颜色空间中表示的颜色,例如透明度、反射率、双分量法矢量或表示该样本的特征的任何特征。例如,3D样本可以由6个分量(X,Y,Z,R,G,B)或等效地(X,Y,Z,y,U,V)定义,其中(X,Y,Z)定义3D空间中的点的坐标,并且(R,G,B)或(y,U,V)定义该3D样本的颜色。相同类型的属性可以存在多次。例如,多个颜色属性可以从不同的视角提供颜色信息。

点云可以是静态的或动态的,这取决于云是否相对于时间改变。静态点云或动态点云的实例通常表示为点云帧。应当注意,在动态点云的情况下,点的数目通常不是恒定的,而是相反,通常随时间变化。更一般地,如果任何东西随时间变化,例如点的数目、一个或多个点的位置或任何点的任何属性,则点云可以被认为是动态的。

作为示例,2D样本可以由6个分量(u,v,Z,R,G,B)或等效地(u,v,Z,y,U,V)定义。(u,v)定义投影平面的2D空间中的2D样本的坐标。Z是投影到该投影平面上的3D样本的深度值。(R,G,B)或(y,U,V)定义该3D样本的颜色。

图1示出了根据本实施例中的至少一个的基于两层的点云编码结构1000的示例的示意性框图。

基于两层的点云编码结构1000可以提供表示输入点云帧IPCF的比特流B。可能地,所述输入点云帧IPCF表示动态点云的帧。然后,所述动态点云的帧可以由基于两层的点云编码结构1000独立于另一帧进行编码。

基本上,基于两层的点云编码结构1000可以提供将比特流B构造为基础层BL和增强层EL的能力。基础层BL可以提供输入点云帧IPCF的有损表示,并且增强层EL可以通过对未由基础层BL表示的隔离点进行编码来提供更高质量(可能无损)表示。

基础层BL可以由如图3所示的基于图像的编码器3000提供。所述基于图像的编码器3000可以提供表示输入点云帧IPCF的3D样本的几何/属性的几何/纹理图像。它可以允许丢弃隔离的3D样本。基础层BL可以由如图4所示的基于图像的解码器4000解码,基于图像的解码器4000可以提供中间重建的点云帧IRPCF。

然后,回到图1中的基于两层的点云编码1000,比较器COMP可以将输入点云帧IPCF的3D样本与中间重建的点云帧IRPCF的3D样本进行比较,以便检测/定位缺失的/隔离的3D样本。接下来,编码器ENC可以对缺失的3D样本进行编码,并且可以提供增强层EL。最后,基础层BL和增强层EL可以由复用器MUX复用在一起,以便生成比特流B。

根据实施例,编码器ENC可以包括检测器,该检测器可以检测中间重建的点云帧IRPCF的3D参考样本R并将其与缺失的3D样本M相关联。

例如,根据给定度量,与缺失的3D样本M相关联的3D参考样本R可以是M的其最近邻居。

根据实施例,编码器ENC然后可以将缺失的3D样本M的空间位置及其属性编码为根据所述3D参考样本R的空间位置和属性确定的差。

在变型中,这些差异可以被单独编码。

例如,对于具有空间坐标x(M)、y(M)和z(M)的缺失的3D样本M,x坐标位置差Dx(M)、y坐标位置差Dy(M)、z坐标位置差Dz(M)、R属性分量差Dr(M)、G属性分量差Dg(M)和B属性分量差Db(M)可如下计算:

Dx(M)=x(M)-x(R),

其中,x(M)是由图3提供的几何图像中的3D样本M、R的x坐标,

Dy(M)=y(M)-y(R)

其中,y(M)是由图3提供的几何图像中的3D样本M、R的y坐标,

Dz(M)=z(M)-z(R)

其中,z(M)是由图3提供的几何图像中的3D样本M、R的z坐标,

Dr(M)=R(M)-R(R)。

其中,R(M)和R(R)分别是3D样本M和R的颜色属性的r颜色分量,

Dg(M)=G(M)-G(R)。

其中,G(M)和G(R)分别是3D样本M和R的颜色属性的g颜色分量,

Db(M)=B(M)-B(R)。

其中,B(M)和B(R)分别是3D样本M和R的颜色属性的b颜色分量。

图2示出了根据本实施例中的至少一个的基于两层的点云解码结构2000的示例的示意性框图。

基于两层的点云解码结构2000的行为取决于其能力。

具有有限能力的基于两层的点云解码结构2000可以通过使用解复用器DMUX仅从比特流B访问基础层BL,然后可以通过由如图4所示的点云解码器4000对基础层BL进行解码来提供输入点云帧IPCF的如实(但有损)版本IRPCF。

具有完全能力的基于两层的点云解码结构2000可以通过使用解复用器DMUX从比特流B访问基础层BL和增强层EL两者。如图4所示,点云解码器4000可以从基础层BL确定中间重建的点云帧IRPCF。解码器DEC可以从增强层EL确定互补点云帧CPCF。然后,组合器COM可以将中间重建的点云帧IRPCF和互补点云帧CPCF组合在一起,从而提供输入点云帧IPCF的更高质量(可能无损)表示(重建)CRPCF。

图3示出了根据本实施例中的至少一个的基于图像的点云编码器3000的示例的示意性框图。

基于图像的点云编码器3000利用现有的视频编解码器来压缩动态点云的几何和纹理(属性)信息。这基本上是通过将点云数据转换成一组不同的视频序列来实现的。

在特定实施例中,可以使用现有的视频编解码器生成和压缩两个视频,一个视频用于捕获点云数据的几何信息,另一个视频用于捕获纹理信息。现有视频编解码器的示例是HEVC主简档编码器/解码器(ITU-T H.265ITU(02/2018)的电信标准化部门,系列H:视听和多媒体系统,视听服务的基础设施-移动视频的编解码,高效视频编解码,推荐ITU-TH.265)。

用于解释两个视频的附加元数据通常也被单独生成和压缩。这样的附加元数据包括例如占用图OM和/或辅助片信息PI。

然后可以将所生成的视频比特流和元数据复用在一起,以便生成组合比特流。

应当注意,元数据通常表示少量的整体信息。大部分信息在视频比特流中。

这种点云编解码/解码过程的示例由实现ISO/IEC JTC1/SC29/WG11 MPEG2019/w18180(2019年1月,马拉喀什(Marrakesh))中定义的MPEG草案标准的测试模型类别2算法(也表示为V-PCC)给出。

在步骤3100中,模块PGM可以通过使用提供最佳压缩的策略将表示输入点云帧IPCF的数据集的3D样本分解为投影平面上的2D样本来生成至少一个片。

片可以被定义为2D样本的集合。

例如,在V-PCC中,首先如Hoppe等人(Hugues Hoppe,Tony DeRose,Tom Duchamp,John McDonald,Werner Stuetzle。无组织点的曲面重建。美国计算机学会信号图形1992年会议录,第71-78页)所述估计每个3D样本的法线。接下来,通过将每个3D样本与包含输入点云帧IPCF的3D样本的3D边界框的六个定向平面之一相关联来获得输入点云帧IPCF的初始聚类。更确切地说,每个3D样本被聚类并与具有最接近法线(即,使点法线和平面法线的点积最大化)的定向平面相关联。然后将3D样本投影到其相关联的平面。在其平面中形成连接区域的3D样本的集合被称为连通区域(connected component)。连通区域是具有相似法线和相同相关联定向平面的至少一个3D样本的集合。然后通过基于其法线和其最近相邻样本的聚类迭代地更新与每个3D样本相关联的聚类来细化初始聚类。最后的步骤包括从每个连通区域生成一个片,这是通过将每个连通区域的3D样本投影到与所述连通区域相关联的定向平面上来完成的。片与辅助片信息PI相关联,辅助片信息PI表示为每个片定义的辅助片信息,以解释与几何和/或属性信息对应的投影的2D样本。

在V-PCC中,例如,辅助片信息PI包括:1)指示包含连通区域的3D样本的3D边界框的六个定向平面之一的信息;2)相对于平面法线的信息;3)确定连通区域相对于以深度、切线偏移和双切线偏移表示的片的3D位置的信息;以及4)诸如在定义包含片的2D边界框的投影平面中的坐标(u0,v0,u1,v1)的信息。

在步骤3200中,片打包模块PPM可以以通常最小化未使用的空间的方式将至少一个生成的片映射(放置)到2D网格(也称为画布)上而没有任何重叠,并且可以保证2D网格的每个TxT(例如,16×16)块与唯一的片相关联。2D网格的给定最小块大小TxT可以指定放置在该2D网格上的不同片之间的最小距离。2D网格分辨率可以取决于输入点云大小及其宽度W和高度H,并且块大小T可以作为元数据被发送到解码器。

辅助片信息PI还可以包括与2D网格的块和片之间的关联有关的信息。

在V-PCC中,辅助信息PI可以包括确定2D网格的块与片索引之间的关联的块到片索引信息(BlockToPatch)。

图3a示出了包括2个片P1和P2及其相关联的2D边界框B1和B2的画布C的示例。注意,两个边界框可以在画布C中重叠,如图3a所示。2D网格(画布的划分)仅在边界框内部表示,但是画布的划分也发生在那些边界框外部。与片相关联的边界框可以被划分为TxT块,通常T=16。

包含属于片的2D样本的TxT块可以被认为是被占用的块。画布的每个被占用的块由占用图OM中的特定像素值(例如1)表示,并且画布的每个未被占用的块由另一个特定值(例如0)表示。然后,占用图OM的像素值可以指示画布的TxT块是否被占用,即包含属于片的2D样本。

在图3a中,被占用的块由白色块表示,并且浅灰色块表示未被占用的块。图像生成过程(步骤3300和3400)利用至少一个生成的片到在步骤3200期间计算的2D网格上的映射,以将输入点云帧IPCF的几何和纹理存储为图像。

在步骤3300中,几何图像生成器GIG可以根据输入点云帧IPCF、占用图OM和辅助片信息PI生成至少一个几何图像GI。几何图像生成器GIG可以利用占用图信息以便检测(定位)被占用的块,并且因此检测(定位)几何图像GI中的非空像素。

几何图像GI可以表示输入点云帧IPCF的几何形状,并且可以是例如以YUV420-8比特格式表示的W×H像素的单色图像。

为了更好地处理多个3D样本被投影(映射)到投影平面的相同2D样本(沿着相同的投影方向(线))的情况,可以生成被称为层的多个图像。因此,不同的深度值D1、...、Dn可以与片的2D样本相关联,并且然后可以生成多个几何图像。

在V-PCC中,片的2D样本被投影到两个层上。第一层(也称为近层)可以存储例如与具有较小深度的2D样本相关联的深度值D0。第二层(被称为远层)可以存储例如与具有较大深度的2D样本相关联的深度值D1。例如,由第二深度图像存储的信息可以在与范围[D0,D0+Δ]中的深度值对应的区间[0,Δ]内,其中Δ是描述表面厚度的用户定义的参数。

通过这种方式,第二层可以包含显著的轮廓状高频特征。因此,显然,通过使用传统视频编解码器可能难以对第二深度图像进行编解码,因此,从所述解码的第二深度图像重建深度值可能很差,这导致重建的点云帧的几何质量差。

根据实施例,几何图像生成模块GIG可以通过使用辅助片信息PI来编解码(推导出)与第一层和第二层的2D样本相关联的深度值。

在V-PCC中,具有对应连通区域的片中的3D样本的位置可以用深度δ(u,v)、切线偏移s(u,v)和双切线偏移r(u,v)表示如下:

δ(u,v)=δ0+g(u,v)

s(u,v)=s0-u0+u

r(u,v)=r0-v0+v

其中g(u,v)是几何图像的亮度分量,(u,v)是与投影平面上的3D样本相关联的像素,(δ0,s0,r0)是3D样本所属的连通区域的对应片的3D位置,并且(u0,v0,u1,v1)是所述投影平面中的坐标,所述投影平面定义包含与所述连通区域相关联的片的投影的2D边界框。

因此,几何图像生成模块GIG可以将与层(第一层或第二层或两者)的2D样本相关联的深度值编解码(推导出)为由下式给出的亮度分量g(u,v):g(u,v)=δ(u,v)-δ0。注意,该关系可以用于从具有伴随的辅助片信息PI的重建的几何图像g(u,v)重建3D样本位置(δ0,s0,r0)。

根据实施例,投影模式可以用于指示第一几何图像GI0是否可以存储第一层或第二层的2D样本的深度值,并且第二几何图像GI1是否可以存储与第二层或第一层的2D样本相关联的深度值。

例如,当投影模式等于0时,则第一几何图像GI0可以存储第一层的2D样本的深度值,并且第二几何图像GI1可以存储与第二层的2D样本相关联的深度值。相反,当投影模式等于1时,则第一几何图像GI0可以存储第二层的2D样本的深度值,并且第二几何图像GI1可以存储与第一层的2D样本相关联的深度值。

根据实施例,可以使用帧投影模式来指示是否将固定投影模式用于所有片或者是否使用可变投影模式,在可变投影模式中,每个片可以使用不同的投影模式。

投影模式和/或帧投影模式可以作为元数据被发送。

例如,可以在V-PCC的第2.2.1.3.1节中提供帧投影模式决策算法。

根据实施例,当帧投影指示可以使用可变投影模式时,可以使用片投影模式来指示用于(去)投影片的适当模式。

片投影模式可以作为元数据被发送,并且可能是包括在辅助片信息PI中的信息。

例如在V-PCC的第2.2.1.3.2节中提供了片投影模式决策算法。

根据步骤3300的实施例,与片的2D样本(u,v)对应的第一几何图像(例如,GI0)中的像素值可以表示沿着与所述2D样本(u,v)对应的投影线定义的至少一个中间3D样本的深度值。更确切地说,所述中间3D样本沿着投影线驻留并且共享2D样本(u,v)的相同坐标,所述2D样本的深度值D1在第二几何图像(例如G11)中被编解码。此外,所述中间3D样本可以具有在深度值D0和深度值D1之间的深度值。指定比特可以与每个所述中间3D样本相关联,如果存在中间3D样本,则指定比特被设置为1,否则被设置为0。

图3b示出了沿着投影线PL位于两个3D样本P0和P1之间的两个中间3D样本Pi1和Pi2的示例。3D样本P0和P1分别具有等于D0和D1的深度值。两个中间3D样本Pi1和Pi2的深度值Di1和Di2分别大于D0且小于D1。

然后,沿着所述投影线的所有所述指定比特可以被级联以形成码字,此后表示为增强占用图(EOM)码字。如图3b所示,假设8比特长度的EOM码字,2比特等于1以指示两个3D样本Pi1和Pi2的位置。最后,可以将所有EOM码字打包在图像(例如,占用图OM)中。在这种情况下,画布的至少一个片可以包含至少一个EOM码字。这样的片被表示为参考片,并且参考片的块被表示为EOM参考块。因此,占用图OM的像素值可以等于第一值(例如0)以指示画布的未占用块,或者等于另一值(例如大于0)以指示画布的占用块或EOM参考块。

根据示例,当D1-D0<=1时,则占用图OM的像素值可以指示被占用的块,并且当D1-D0>1时,则像素值图OM可以指示画布的EOM参考块。

占用图OM中指示EOM参考块的像素的位置和从那些像素的值获得的EOM码字的比特的值指示中间3D样本的3D坐标。

在步骤3400中,纹理图像生成器TIG可以根据输入点云帧IPCF、占用图OM、辅助片信息PI和从视频解码器VDEC(图4中的步骤4200)的输出的至少一个解码的几何图像DGI推导出的重建的点云帧的几何来生成至少一个纹理图像TI。

纹理图像TI可以表示输入点云帧IPCF的纹理,并且可以是例如以YUV420-8比特格式表示的W×H个像素的图像。

纹理图像生成器TG可以利用占用图信息以便检测(定位)被占用的块并且因此检测(定位)纹理图像中的非空像素。

纹理图像生成器TIG可以适于生成纹理图像TI并将其与每个几何图像/层DGI相关联。

根据实施例,纹理图像生成器TIG可将与第一层的2D样本相关联的纹理(属性)值T0编解码(存储)为第一纹理图像TI0的像素值,并将与第二层的2D样本相关联的纹理值T1编解码(存储)为第二纹理图像TI1的像素值。

或者,纹理图像生成模块TIG可将与第二层的2D样本相关联的纹理值T1编解码(存储)为第一纹理图像TI0的像素值,并将与第一层的2D样本相关联的纹理值D0编解码(存储)为第二几何图像GI1的像素值。

例如,可以如V-PCC的第2.2.3、2.2.4、2.2.5、2.2.8或2.5节中所述获得3D样本的颜色。

两个3D样本的纹理值存储在第一或第二纹理图像中。但是,中间3D样本的纹理值既不能存储在该第一纹理图像TI0中,也不能存储在第二纹理图像TI1中,因为投影的中间3D样本的位置与已经用于存储另一个3D样本(P0或P1)的纹理值的被占用的块对应,如图3b所示。因此,中间3D样本的纹理值被存储在EOM纹理块中,该EOM纹理块位于程序定义(V-PCC的第9.4.5节)的位置中的第一或第二纹理图像中的其他地方。简而言之,该过程确定纹理图像中未被占用的块的位置,并将与中间3D样本相关联的纹理值存储为纹理图像的所述未被占用的块(表示为EOM纹理块)的像素值。

根据实施例,可以对几何和/或纹理图像应用填充过程。填充过程可以用于填充片之间的空白空间,以生成适合于视频压缩的分段平滑图像。

在V-PCC的第2.2.6和2.2.7节中提供了图像填充示例。

在步骤3500中,视频编码器VENC可对所生成的图像/层TI和GI进行编码。

在步骤3600中,编码器OMENC可以将占用图编码为例如在V-PCC的第2.2.2节中详述的图像。可以使用有损或无损编码。

根据实施例,视频编码器ENC和/或OMENC可以是基于HEVC的编码器。

在步骤3700中,编码器PIENC可以对辅助片信息PI和可能的附加元数据(诸如几何/纹理图像的块大小T、宽度W和高度H)进行编码。

根据实施例,辅助片信息可以被差分编码(如例如在V-PCC的第2.4.1节中所定义的)。

在步骤3800中,可以将多路复用器应用于步骤3500、3600和3700的所生成的输出,并且因此可以将这些输出多路复用在一起,以便生成表示基础层BL的比特流。应当注意,元数据信息表示整个比特流的一小部分。使用视频编解码器来压缩大部分信息。

图4示出了根据本实施例中的至少一个的基于图像的点云解码器4000的示例的示意性框图。

在步骤4100中,可以应用解复用器DMUX来解复用表示基础层BL的比特流的编码信息。

在步骤4200中,视频解码器VDEC可对编码信息进行解码以推导出至少一个解码的几何图像DGI和至少一个解码的纹理图像DTI。

在步骤4300中,解码器OMDEC可以对编码信息进行解码以推导出解码的占用图DOM。

根据实施例,视频解码器VDEC和/或OMDEC可以是基于HEVC的解码器。

在步骤4400中,解码器PIDEC可以对编码信息进行解码以推导出辅助片信息DPI。

可能地,也可以从比特流BL推导出元数据。

在步骤4500中,几何生成模块GGM可以从至少一个解码的几何图像DGI、解码的占用图DOM、解码的辅助片信息DPI和可能的附加元数据推导出重建的点云帧IRPCF的几何RG。

几何生成模块GGM可以利用解码的占用图信息DOM,以便在至少一个解码的几何图像DGI中定位非空像素。

如上所述,根据解码的占用信息DOM的像素值和D1-D0的值,所述非空像素属于被占用的块或EOM参考块。

根据步骤4500的实施例,几何生成模块GGM可以从非空像素的坐标推导出中间3D样本的3D坐标中的两个。

根据步骤4500的实施例,当所述非空像素属于所述EOM参考块时,几何生成模块GGM可以从EOM码字的比特值推导出中间3D样本的3D坐标中的三分之一。

例如,根据图3b的示例,EOM码字EOMC用于确定中间3D样本Pi1与Pi2的3D坐标。中间3D样本Pi1的第三坐标可以例如通过Di1=D0+3从D0推导出,并且重建的3D样本Pi2的第三坐标可以例如通过Di2=D0+5从D0推导出。偏移值(3或5)是沿着投影线的D0和D1之间的间隔的数目。

根据实施例,当所述非空像素属于被占用的块时,几何生成模块GGM可以从非空像素的坐标、至少一个解码的几何图像DGI中的一个的所述非空像素的值、解码的辅助片信息以及可能地从附加元数据推导出重建的3D样本的3D坐标。

非空像素的使用基于与3D样本的2D像素关系。例如,利用V-PCC中的所述投影,重建的3D样本的3D坐标可以用深度δ(u,v)、切线偏移s(u,v)和双切线偏移r(u,v)表示如下:

δ(u,v)=δ0+g(u,v)

s(u,v)=s0-u0+u

r(u,v)=r0-v0+v

其中g(u,v)是解码的几何图像DGI的亮度分量,(u,v)是与重建的3D样本相关联的像素,(δ0,s0,r0)是重建的3D样本所属的连通区域的3D位置,(u0,v0,u1,v1)是定义包含与所述连通区域相关联的片的投影的2D边界框的投影平面中的坐标。

在步骤4600中,纹理生成模块TGM可从几何RG和至少一个解码的纹理图像DTI推导出重建的点云帧IRPCF的纹理。

根据步骤4600的实施例,纹理生成模块TGM可以从对应的EOM纹理块推导出属于EOM参考块的非空像素的纹理。纹理图像中EOM纹理块的位置是程序定义的(V-PCC的第9.4.5节)。

根据步骤4600的实施例,纹理生成模块TGM可以直接推导出属于被占用的块的非空像素的纹理作为第一纹理图像或第二纹理图像的像素值。

图5示意性地示出了根据本实施例中的至少一个的表示基础层BL的比特流的示例语法。

比特流包括比特流报头SH和至少一组帧流GOFS。

一组帧流GOFS包括报头HS、表示占用图OM的至少一个语法元素OMS、表示至少一个几何图像(或视频)的至少一个语法元素GVS、表示至少一个纹理图像(或视频)的至少一个语法元素TVS、以及表示辅助片信息和其他附加元数据的至少一个语法元素PIS。

在变型中,一组帧流GOFS包括至少一个帧流。

图6示出了示出其中实现各个方面和实施例的系统的示例的示意性框图。

系统6000可以体现为包括下面描述的各种组件的一个或多个设备,并且被配置为执行本文档中描述的一个或多个方面。可以形成系统6000的全部或部分的装备的示例包括个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收器、个人视频记录系统、连接的家用电器、连接的车辆及其相关联的处理系统、头戴式显示设备(HMD、透视眼镜)、投影仪(投影仪)、“洞穴”(包括多个显示器的系统)、服务器、视频编码器、视频解码器、处理来自视频解码器的输出的后处理器、向视频编码器提供输入的预处理器、web服务器、机顶盒以及用于处理点云、视频或图像的任何其他设备或其他通信设备。系统6000的元件可以单独地或组合地体现在单个集成电路、多个IC和/或分立组件中。例如,在至少一个实施例中,系统6000的处理和编码器/解码器元件可以分布在多个IC和/或分立组件上。在各种实施例中,系统6000可以经由例如通信总线或通过专用输入和/或输出端口通信地耦解到其他类似系统或其他电子设备。在各种实施例中,系统6000可以被配置为实现本文档中描述的一个或多个方面。

系统6000可以包括至少一个处理器6010,其被配置为执行加载在其中的指令,以用于实现例如本文档中描述的各个方面。处理器6010可包括嵌入式存储器、输入输出接口、以及本领域中已知的各种其他电路。系统6000可以包括至少一个存储器6020(例如,易失性存储器设备和/或非易失性存储器设备)。系统6000可以包括存储设备6040,其可以包括非易失性存储器和/或易失性存储器,包括但不限于电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备6040可以包括内部存储设备、附接存储设备和/或网络可访问存储设备。

系统6000可以包括编码器/解码器模块6030,其被配置为例如处理数据以提供编码的数据或解码的数据,并且编码器/解码器模块6030可以包括其自己的处理器和存储器。编码器/解码器模块6030可表示可被包括在设备中以执行编码和/或解码功能的模块。众所周知,设备可以包括编码及解码模块中的一个或两个。另外,编码器/解码器模块6030可以被实现为系统6000的单独元件,或者可以作为本领域技术人员已知的硬件和软件的组合并入处理器6010内。

要加载到处理器6010或编码器/解码器6030上以执行本文档中描述的各个方面的程序代码可以存储在存储设备6040中,并且随后加载到存储器6020上以供处理器6010执行。根据各种实施例,处理器6010、存储器6020、存储设备6040和编码器/解码器模块6030中的一个或多个可以在执行本文档中描述的过程期间存储各种项目中的一个或多个。这样的存储的项目可以包括但不限于点云帧、编码/解码的几何/纹理视频/图像或编码/解码的几何/纹理视频/图像的部分、比特流、矩阵、变量以及来自等式、公式、操作和操作逻辑的处理的中间或最终结果。

在若干实施例中,处理器6010和/或编码器/解码器模块6030内部的存储器可用于存储指令并提供用于可在编码或解码期间执行的处理的工作存储器。

然而,在其他实施例中,处理设备外部的存储器(例如,处理设备可以是处理器6010或编码器/解码器模块6030)可以用于这些功能中的一个或多个。外部存储器可以是存储器6020和/或存储设备6040,例如动态易失性存储器和/或非易失性闪存。在若干实施例中,可以使用外部非易失性闪存来存储电视的操作系统。在至少一个实施例中,诸如RAM的快速外部动态易失性存储器可以用作用于视频编解码和解码操作的工作存储器,诸如用于MPEG-2第2部分(也称为ITU-T推荐H.262和ISO/IEC 13818-2,也称为MPEG-2视频)、HEVC(高效视频编解码)或VVC(通用视频编解码)。

如框6130所示,可以通过各种输入设备提供对系统6000的元件的输入。这样的输入设备包括但不限于(i)可以接收例如由广播者通过空中发送的RF信号的RF部分,(ii)复合输入端子,(iii)USB输入端子,和/或(iv)HDMI输入端子。

在各种实施例中,框6130的输入设备可以具有如本领域已知的相关联的相应输入处理元件。例如,RF部分可以与以下所需的元件相关联:(i)选择期望的频率(也称为选择信号,或将信号频带限制到频带),(ii)下变换所选择的信号,(iii)再次频带限制到较窄的频带以选择(例如)在某些实施例中可以称为信道的信号频带,(iv)解调下变换和频带限制的信号,(v)执行纠错,以及(vi)解复用以选择期望的数据分组流。各个实施例的RF部分可以包括用于执行这些功能的一个或多个元件,例如频率选择器、信号选择器、频带限制器、信道选择器、滤波器、下变换器、解调器、纠错器和解复用器。RF部分可以包括执行这些功能中的各种功能的调谐器,这些功能包括例如将接收到的信号下变换到较低频率(例如,中频或近基带频率)或基带。

在一个机顶盒实施例中,RF部分及其相关联的输入处理元件可以接收通过有线(例如,电缆)介质发送的RF信号。然后,RF部分可以通过滤波、下变换和再次滤波到期望的频带来执行频率选择。

各种实施例重新排列上述(和其他)元件的顺序,移除这些元件中的一些,和/或添加执行类似或不同功能的其他元件。

添加元件可以包括在现有元件之间插入元件,诸如例如插入放大器和模数转换器。在各个实施例中,RF部分可以包括天线。

另外,USB和/或HDMI端子可以包括用于通过USB和/或HDMI连接将系统6000连接到其他电子设备的相应接口处理器。应当理解,输入处理的各个方面,例如里德-所罗门纠错,可以根据需要例如在单独的输入处理IC内或在处理器6010内实现。类似地,USB或HDMI接口处理的各方面可以根据需要在单独的接口IC内或在处理器6010内实现。可以将解调、纠错和解复用的流提供给各种处理元件,包括例如与存储器和存储元件组合操作的处理器6010和编码器/解码器6030,以根据需要处理数据流,以在输出设备上呈现。

系统6000的各种元件可以设置在集成壳体内。在集成壳体内,各种元件可以使用合适的连接布置6140(例如,本领域已知的内部总线,包括I2C总线、布线和印刷电路板)互连并在它们之间传输数据。

系统6000可以包括能够经由通信信道6060与其他设备进行通信的通信接口6050。通信接口6050可以包括但不限于被配置为通过通信信道6060发送和接收数据的收发器。通信接口6050可以包括但不限于调制解调器或网卡,并且通信信道6060可以例如在有线和/或无线介质内实现。

在各种实施例中,可以使用诸如IEEE 802.11的Wi-Fi网络将数据流式传输到系统6000。这些实施例的Wi-Fi信号可以通过适于Wi-Fi通信的通信信道6060和通信接口6050来接收。这些实施例的通信信道6060通常可以连接到接入点或路由器,该接入点或路由器提供对包括互联网的外部网络的访问,以允许流式传输应用和其他过顶(over-the-top)通信。

其他实施例可以使用通过输入框6130的HDMI连接递送数据的机顶盒向系统6000提供流式传输的数据。

其他实施例可以使用输入框6130的RF连接向系统6000提供流式传输的数据。

应当理解,可以以各种方式来实现用信号发送。例如,在各种实施例中,一个或多个语法元素、标志等可以用于将信息用信号发送到对应的解码器。

系统6000可以向各种输出设备提供输出信号,包括显示器6100、扬声器6110和其他外围设备6120。在实施例的各种示例中,其他外围设备6120可以包括独立DVR、盘播放器、立体声系统、照明系统和基于系统3000的输出提供功能的其他设备中的一个或多个。

在各种实施例中,可以使用诸如AV.Link(音频/视频链路)、CEC(消费电子控制)或在有或没有用户干预的情况下实现设备到设备控制的其他通信协议的信令在系统6000与显示器6100、扬声器6110或其他外围设备6120之间通信控制信号。

输出设备可以通过相应的接口6070、6080和6090经由专用连接通信地耦接到系统6000。

可替代地,输出设备可以经由通信接口6050使用通信信道6060连接到系统6000。显示器6100和扬声器6110可以与诸如例如电视的电子设备中的系统6000的其他组件集成在单个单元中。

在各种实施例中,显示接口6070可包括显示驱动器,诸如例如定时控制器(T Con)芯片。

例如,如果输入6130的RF部分是单独的机顶盒的一部分,则显示器6100和扬声器6110可以替代地与其他组件中的一个或多个分离。在显示器6100和扬声器6110可以是外部组件的各种实施例中,可以经由专用输出连接(包括例如HDMI端口、USB端口或COMP输出)提供输出信号。

如上所述,在V-PCC中,点云帧的3D样本被投影到两个层上(3D到2D投影):第一层(也称为近层)可以存储例如与具有较小深度的3D样本相关联的深度值D0。第二层(被称为远层)可以存储例如与具有较大深度的3D样本相关联的深度值D1。

图7示出了使用V-PCC的这种3D到2D投影的示例。

为了简化表示,使用2D样本云帧和1D投影平面来完成绘图。3D样本(实心正方形)被向下投影,因此同一列中的所有黑色3D样本被投影到投影平面的相同位置。两个层用于存储投影的3D样本的深度值:近层D0和远层D1。

由于使用两个层,因此每列仅可以投影两个3D样本:分别投影到近层和远层的3D样本分别标记为“0”和“1”。每个层值表示从投影平面到3D样本的距离值。此外,在V-PCC中,使用如上所述的EOM码字对中间3D样本(位于两层之间)的深度值进行编解码。这些中间3D样本在图7中标记为“I”。

近层D0(第一深度图像)和远层D1(第二深度图像)存储来自投影平面的投影的3D样本的位置。占用图(图像)存储值‘0’(画布的未被占用的块)、‘1’画布的被占用的块)或‘c’(EOM码字的值)。

图8示出了根据至少一个实施例的用于对沿着相同投影线投影的3D样本的深度值进行编解码的方法的示例的示意性框图。

在步骤8100中,模块确定是否沿着与由坐标(u,v)限定的占用图OM中的位置对应的投影线PL投影至少一个3D样本。

如果没有3D样本沿着投影线PL被投影,则在步骤8200中,位于占用图中的坐标(u,v)处的像素的值等于指示画布中的未被占用的块的第一值。例如,所述第一值等于0。

步骤8200之后是考虑占用图中的另一位置的步骤8300。当已经考虑了所有位置时,该过程结束。

如果沿着投影线PL投影至少一个3D样本,则在步骤8400中,位于占用图中的坐标(u,v)处的像素的值等于指示画布中的被占用的块的第二值。例如,所述第二值等于1。

在步骤8500中,模块检查是否沿着投影线PL投影至少一个附加3D样本。

注意,在V-PCC中,第一附加3D样本是投影在投影线PL上的第三3D样本,因为两个第一投影的3D样本的深度值存储在近层和远层中。

在V-PCC中,在步骤8500中,模块检查3D样本的位置是否大于D0(u,v)且小于D1(u,v),其次,是否D1(u,v)–D0(u,v)>1。

如果沿着投影线PL没有投影附加3D样本,则步骤8500之后是步骤8300。

如果沿着投影线PL投影至少一个附加3D样本,则在步骤8600中,模块初始化用于对所述至少一个附加3D样本的深度值进行编码的(N-1)比特长度PCM码PCM(u,v)的长度N(u,v)。

在V-PCC中,N(u,v)=D1(u,v)-D0(u,v)。

在步骤8700中,模块生成(N-1)比特长度PCM码PCM(u,v)以对沿着投影线PL投影的至少一个3D样本的深度值进行编码。

在V-PCC中,PCM(u,v)的第i比特等于1以指示位置D0(u,v)+i是否被投影的3D样本占用,并且等于0以指示未被占用的位置。

在步骤8800中,模块根据PCM(u,v)计算EOM码字C(u,v),如下:

C(u,v)=1+(2^(N-1)-1-PCM码)

在步骤8900中,模块将EOM码字分配给位于坐标(u,v)处的占用图OM中的像素的值:OM(u,v)=C(u,v)。

步骤8900之后是步骤8300。

图9示出了根据至少一个实施例的用于对沿着相同投影线投影的3D样本的深度值进行解码的方法的示例的示意性框图。

在步骤9100中,模块考虑占用图(OM或DOM)在坐标(u,v)处的位置。当已经考虑了占用图的所有位置时,该过程结束。

在步骤9200中,模块确定位于占用图中的坐标(u,v)处的像素的值OM(u,v)是否指示没有3D样本沿着投影线PL被投影在该位置处。OM(u,v)还可以等于指示画布中的被占用的块的另一值。换句话说,所述另一值指示沿着所述投影线PL的至少一个投影的3D样本的深度值被存储为层(近层和/或远层)中的像素值,并且可能地,表示附加3D样本的深度值的EOM码字C(u,v)被存储在位置(u,v)处的占用图中。

在V-PCC中,在步骤9200中,OM(u,v)=0指示在位置(u,v)处没有投影3D样本,并且在步骤9100中考虑另一位置。OM(u,v)=1指示画布中的被占用的块,并且D1(u,v)-D0(u,v)>1指示可以存储至少一个附加3D样本的深度值。

如果位于占用图中的坐标(u,v)处的像素的值OM(u,v)指示没有3D样本沿着所述投影线PL被投影,则步骤9200之后是考虑占用图中的另一位置的步骤9100。

否则,在步骤9300中,模块初始化用于对所述至少一个附加3D样本的深度值进行解码的(N-1)比特长度PCM码PCM(u,v)的长度N(u,v)。

在V-PCC中,N(u,v)=D1(u,v)-D0(u,v)。

在步骤9400中,模块生成(N-1)比特长度PCM码PCM(u,v),以从坐标(u,v)处的占用图OM(u,v)的像素值对沿着投影线PL投影的至少一个3D样本的深度值进行解码。

在V-PCC中,PCM码PCM(u,v)通过下式从EOM码字C(u,v)获得:

PCM码(u,v)=1+(2^(N-1)-1-C(u,v))

在步骤9500中,模块从PCM码PCM(u,v)推导出至少一个附加3D样本的深度值。

在V-PCC中,从D0沿着投影线PL投影的第i个3D样本的深度值等于D0(u,v)+i。

如图8和9所示,在V-PCC中,如果使用单个层,则不能计算EOM码字,因为PCM码的长度取决于近层和远层。此外,如图7中所示,使用EOM码字不允许编解码与标记为‘0’及‘1’的投影的3D样本在相同投影线上但不在其之间的3D样本,即投影的3D样本位于距D0大于D1-D0的距离处。D1-D0允许的最大值通常称为“表面厚度”,因此它限制了中间点距D0的最大可能距离-参见E、F和H栏中的示例。

根据至少一个实施例的一般方面,占用图(图像)的像素值指示沿着相同投影线投影的点云帧的至少一个3D样本的深度值被存储为至少一个层(深度图像)的像素值,或者等于表示沿着所述投影线的至少一个3D样本投影的深度值的固定长度码字。

使用用于表示沿着相同投影线投影的至少一个3D样本的深度值的固定长度码字允许使用单个层,因为PCM码长度现在是不取决于近层和远层的固定值。此外,如稍后进一步详细解释,使用固定长度码字允许编解码不在3D样本之间的投影的3D样本的深度值,所述投影的3D样本为具有大于存储于远层中的深度值的深度值的3D样本。

根据至少一个实施例,在步骤8600和9300中,模块可以将(N-1)比特长度PCM码PCM(u,v)的长度N(u,v)初始化为固定PCM码长度PCML。

根据步骤8500的实施例,当使用两个层D0和D1时,模块可以检查附加3D样本的位置是否大于D0(u,v)并且低于D0(u,v)+PCML。

图10示出了根据至少一个实施例的确定占用图OM(u,v)的像素值的示例。

在该示例中,使用两个层(深度图像):层0和层1。PCM码长度PCML等于9,这意味着每个PCM码(EOM码字)可以编码3D样本的8个位置。散列正方形指示8个位置。注意,当8个位置中的一个覆盖块正方形时,正方形保持黑色。例如,在列A中,存储在近层中的深度值等于2(具有‘0’的黑色正方形),存储在远层中的深度值等于7(具有‘1’的黑色正方形),并且存储为EOM码字的深度值等于c。从该黑色正方形开始,沿着列A从位置3到10的8个散列正方形。为了表示的清楚,位置4、5保持块正方形。包括位置4和5的位置3至10与其深度值以PCM码被编码的投影的3D样本对应。

即使对于不在3D样本之间的3D样本,也可以捕获位于近层D0和D0+PCML之间的投影的3D样本的几何形状,如列E、F和G所示。

因此,使用固定长度PCM码提高了点云帧的几何形状的编解码效率。

根据步骤8700的实施例,当所述深度值已经被编码为层值(深度图像的值)时,模块可以跳过将沿着投影线PL投影的3D样本的深度值编码为PCM码PCM(u,v)的比特。

例如,模块可以计算PCM(u,v)的每个第i比特的当前位置D0(u,v)+i,并且可以检查近层和远层(深度图像)中的像素是否将这样的深度值存储为投影的3D样本。在这种情况下,PCM(u,v)的第i比特被设置为0。否则,被设置为1。

当固定长度PCM码FLPCM大于近层和远层之间的最大距离(最大表面厚度)时,步骤8700的该实施例避免通过使用远层和EOM码字的比特来编码相同投影的3D样本的深度值的两倍,如图10中针对标记为“1”的黑色正方形的列A、B、C、E、F和H所示。

步骤8700的该实施例也是有利的,因为它可以扩展覆盖区域,如关于图11进一步解释的。

图11示出了根据所述变型的确定占用图OM(u,v)的像素值的示例。

PCM码长度PCML等于9。例如,在列A中,比特b0…b7分别指PCM码相对于该列A的位置3...10。在该示例中,列A的位置7的深度值已经在远层中被编码,并且没有被编码为EOM码字。因此,PCM码的比特b4、…、b7现在可以指位置8、…、11,将该区域从位置2(近层)扩展到11个位置。

对于列E的位置3、列F的位置2和列H的位置2,发生类似的情况。

注意,填充有多个点并标记为“1”的白色正方形是指深度值已经存储在层中的3D样本的位置。例如,列H的位置2是指存储在远层中的3D样本的深度值。

根据步骤9200的实施例,当使用单个层D0时,模块可以确定位于占用图中的坐标(u,v)处的像素的值OM(u,v)是否指示没有3D样本沿着投影线PL被投影在该位置处(例如,OM(u,v)=0)。OM(u,v)还可以等于指示画布中的被占用的块的另一值。换句话说,所述另一个值指示沿着所述投影线PL的至少一个投影的3D样本的深度值被存储为层D0中的像素值,并且可能地,表示附加3D样本的深度值的EOM码字C(u,v)被存储在位置(u,v)处的占用图中。

图12示出了根据至少一个实施例的确定占用图OM(u,v)的像素值的示例。

在该示例中,使用单个层:层0。PCM码长度PCML等于9。例如,在列A中,存储在单个层中的深度值等于2(具有“0”的黑色正方形)。从该黑色正方形开始,沿着列A从位置3到10的8个散列正方形。位置4、5和7保持黑色正方形,其与其深度值以PCM码被编码的投影的3D样本对应。

根据该方法的实施例,如图8和图9所示,可以用信号发送指示是否使用固定长度PCM码的信息INFO1。

根据该实施例,可以将所述信息INFO1添加到可能通过网络发送的比特流中,并且可以从可能从通信部件接收的比特流中提取(获得)所述信息。

根据该实施例,模块可以从指示是否使用固定长度码字的比特流获得所述信息INFO1;如果所述信息INFO1指示不使用固定长度PCM码,则PCM码的长度可以从两个层推导出,如在图8的步骤8600和图9的步骤9300中的V-PCC中那样。然后从可能具有不同长度的PCM码推导出深度值。如果所述信息INFO1指示使用固定长度PCM码,则PCM码的长度可以等于在编码和解码侧可能已知的PCM码长度PCML。接着从固定长度码字推导出深度值。

在变型中,可以假设PCM码长度PCML等于占用图的比特深度。例如,如果使用每个颜色分量8比特对占用图进行编码,则PCM码长度PCML被自动设置为8,这意味着PCM码中存在7比特。

该变型提供了最小的灵活性来优化EOM码字的长度,但它也是最简单的方法。

根据实施例,可以用信号发送表示所述PCM码长度PCML的信息INFO2。

根据该实施例,可以将所述信息INFO2添加到可能通过网络发送的比特流中,然后可以从可能从通信部件接收的比特流中提取所述信息。

根据实施例,可以在序列级用信号发送信息INFO1和/或INFO2。因此,可以用信号发送信息INFO1的单个值和信息INFO2的单个值以用于对点云帧的序列进行编码。

图13示出了根据至少一个实施例的用于用信号发送信息INFO1和INFO2的语法元素的示例。

在该示例中,信息INFO1是语法元素“sps_enhanced_occupancy_map_code_fixed_bit_count_flag”,并且信息INFO2是在语法元素“sequence_parameter_set”中用信号发送的语法元素“sps_enhanced_occupancy_map_code_fixed_bit_count”。

根据实施例,可以在占用参数集中用信号发送信息INFO1和/或INFO2。

图14示出了根据至少一个实施例的用于用信号发送信息INFO1和INFO2的语法元素的示例。

在该示例中,信息INFO1是语法元素“ops_occupancy_code_fixed_bit_count_flag”,并且信息INFO2是在语法元素“ops_parameter_set”中用信号发送的语法元素“ops_occupancy_code_bit_count_minus1”。

根据所述实施例的变型,信息INFO1和/或INFO2可以作为几何参数集的语法元素被用信号发送。

根据该方法的实施例,可以按帧用信号发送信息INFO1和/或INFO2。

该实施例需要更高的比特率,因为信息INFO1和/或INFO2被更频繁地发送,但是允许更好地调整每个帧的编码/解码方法。

在所述实施例的变型中,信息INFO1和/或INFO2可以作为geometry_frame_paramsunit(V-PCC的第7.3.18节)的语法元素被用信号发送。

在所述实施例的变型中,信息INFO1和/或INFO2可以作为类似于几何帧参数单元的occupancy_frame_params unit的语法元素被用信号发送,具有对应的occupancy_frame_parameter_set unit和对应的片序列单元类型(例如,PSD_OFPS,占用帧参数集;参见V-PCC的表7-4)。

根据该方法的实施例,信息INFO1和/或INFO2可以按片被用信号发送。

该实施例需要更高的比特率,因为信息INFO1和/或INFO2被更频繁地发送,但是允许更好地调整每个片的编码/解码方法。

根据所述实施例的变型,信息INFO1和/或INFO2可以作为patch_data unit和delta_patch_data unit的语法元素被用信号发送。

根据所述实施例的变型,信息INFO1和/或INFO2可以作为geometry_patch_paramsunit的语法元素(V-PCC的第7.3.22节)被用信号发送。

根据所述实施例的变型,信息INFO1和/或INFO2可以作为occupancy_patch_params unit的语法元素被用信号发送,具有对应的occupancy_patch_parameter_setunit。

在图1-14中,本文描述了各种方法,并且每个方法包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的正确操作需要特定顺序的步骤或动作,否则可以修改或组合特定步骤和/或动作的顺序和/或使用。

关于框图和操作流程图描述了一些示例。每个框表示电路元件、模块或代码的一部分,该代码的一部分包括用于实现指定的逻辑功能的一个或多个可执行指令。还应当注意,在其他实现方式中,框中提到的功能可以不按所指示的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行,这取决于所涉及的功能。

本文描述的实现方式和方面可以在例如方法或过程、装置、计算机程序、数据流、比特流或信号中实现。即使仅在单个实现形式的上下文中讨论(例如,仅作为方法讨论),所讨论的特征的实现方式也可以以其他形式(例如,装置或计算机程序)来实现。

所述方法可以在例如处理器中实现,所述处理器通常是指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备。

另外,方法可以通过由处理器执行的指令来实现,并且这样的指令(和/或由实现方式产生的数据值)可以存储在计算机可读存储介质上。计算机可读存储介质可以采取计算机可读程序产品的形式,该计算机可读程序产品体现在一个或多个计算机可读介质中并且具有体现在其上的可由计算机执行的计算机可读程序代码。如本文所使用的计算机可读存储介质可以被认为是非暂时性存储介质,其具有在其中存储信息的固有能力以及提供从中检索信息的固有能力。计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、装置或设备,或者前述的任何合适的组合。应当理解,以下虽然提供了可以应用本实施例的计算机可读存储介质的更具体的示例,但是如本领域普通技术人员容易理解的,以下仅仅是说明性的而不是详尽的列表:便携式计算机磁盘、硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、便携式光盘只读存储器(CD-ROM)、光学存储设备、磁存储设备、或前述的任何合适的组合。

指令可以形成有形地体现在处理器可读介质上的应用程序。

指令可以例如在硬件、固件、软件或组合中。指令可以在例如操作系统、单独的应用或两者的组合中找到。因此,处理器可以被表征为例如被配置为执行过程的设备和包括具有用于执行过程的指令的处理器可读介质(诸如存储设备)的设备两者。此外,除了指令之外或代替指令,处理器可读介质可以存储由实现方式产生的数据值。

装置可以以例如适当的硬件、软件和固件来实现。这种装置的示例包括个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收器、个人视频记录系统、连接的家用电器、头戴式显示设备(HMD,透视眼镜)、投影仪(投影仪)、“洞穴”(包括多个显示器的系统)、服务器、视频编码器、视频解码器、处理来自视频解码器的输出的后处理器、向视频编码器提供输入的预处理器、web服务器、机顶盒以及用于处理点云、视频或图像的任何其他设备或其他通信设备。应当清楚的是,该装备可以是移动的,甚至安装在移动车辆中。

计算机软件可以由处理器6010或由硬件或由硬件和软件的组合来实现。作为非限制性示例,实施例还可以由一个或多个集成电路来实现。存储器6020可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术来实现,作为非限制性示例,诸如光学存储器设备、磁存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器。处理器6010可以是适合于技术环境的任何类型,并且可以包含作为非限制性示例的微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一个或多个。

对于本领域普通技术人员显而易见的是,实现方式可以产生被格式化为携带可以例如被存储或发送的信息的各种信号。该信息可以包括例如用于执行方法的指令或由所描述的实现方式之一产生的数据。例如,信号可以被格式化以携带所描述的实施例的比特流。这样的信号可以被格式化为例如电磁波(0例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码以及利用编码的数据流来调制载波。信号携带的信息可以是例如模拟或数字信息。如已知的,信号可以通过各种不同的有线或无线链路发送。信号可以存储在处理器可读介质上。

本文使用的术语仅用于描述特定实施例的目的,而不是限制性的。如本文所使用的,单数形式“一(a)”、“一个(an)”和“该(the)”也可以旨在包括复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“包括/包含”和/或“包括/包含”可以指定所陈述的例如特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组的存在或添加。此外,当元件被称为“响应”或“连接”到另一元件时,它可以直接响应或连接到另一元件,或者可以存在中间元件。相反,当元件被称为“直接响应”或“直接连接”到另一元件时,不存在中间元件。

应当理解,例如在“A/B”、“A和/或B”和“A和B中的至少一个”的情况下,使用码元/术语“/”、“和/或”和“…中的至少一个”中的任何一个可以旨在包含仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或选择两个选项(A和B)。作为另一示例,在“A、B和/或C”和“A、B和C中的至少一个”的情况下,这种措辞旨在包含仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或仅选择第三个列出的选项(C),或仅选择第一个和第二个列出的选项(A和B),或仅选择第一个和第三个列出的选项(A和C),或仅选择第二个和第三个列出的选项(B和C),或选择所有三个选项(A和B和C)。如本领域和相关领域的普通技术人员所清楚的,这可以扩展到所列出的尽可能多的项目。

例如,在本申请中可以使用各种数值。特定值可以用于示例目的,并且所描述的方面不限于这些特定值。

应当理解,尽管本文可以使用术语第一、第二等来描述各种元件,但是这些元件不受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离本申请的教导的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。在第一元件和第二元件之间不暗示排序。

对“一个实施例”或“实施例”或“一个实现方式”或“实现方式”以及其它们的他变型的引用经常用于传达特定特征、结构、特性等(结合实施例/实现方式描述的)被包括在至少一个实施例/实现方式中。因此,贯穿本申请在各个地方出现的短语“在一个实施例中”或“在实施例中”或“在一个实现方式中”或“在实现方式中”以及任何其他变型的出现不一定都指相同的实施例。

类似地,本文中对“根据实施例/示例/实现方式”或“在实施例/示例/实现方式中”及它们的其他变型的引用经常用于传达特定特征、结构或特性(结合实施例/示例/实现方式描述)可以被包括在至少一个实施例/示例/实现方式中。因此,在说明书中的各个地方出现的表述“根据实施例/示例/实现方式”或“在实施例/示例/实现方式中”不一定都指相同的实施例/示例/实现方式,也不一定是与其他实施例/示例/实现方式相互排斥的单独的或替代的实施例/示例/实现方式。

权利要求中出现的附图标记仅是说明性的,并且对权利要求的范围没有限制作用。尽管没有明确描述,但是本实施例/示例和变型可以以任何组合或子组合来采用。

当附图被呈现为流程图时,应当理解,它还提供了对应装置的框图。类似地,当附图被呈现为框图时,应当理解,它还提供了对应方法/过程的流程图。

尽管一些示图包括通信路径上的箭头以示出通信的主要方向,但是应当理解,通信可以在与所描绘的箭头相反的方向上发生。

各种实现方式涉及解码。如本申请中所使用的,“解码”可以包含例如对接收到的点云帧(可能包括对一个或多个点云帧进行编码的接收到的比特流)执行的过程的全部或部分,以便产生适合于显示或适合于在重建的点云域中进一步处理的最终输出。在各种实施例中,此类过程包括通常由基于图像的解码器执行的过程中的一个或多个。在各种实施例中,这样的过程还或替代地包括由本申请中描述的各种实现方式的解码器执行的过程,例如,

作为另外的示例,在一个实施例中,“解码”可以仅指熵解码,在另一实施例中,“解码”可以仅指差分解码,并且在另一实施例中,“解码”可以指熵解码和差分解码的组合。基于具体描述的上下文,短语“解码过程”是否可以旨在具体地指操作的子集或一般地指更广泛的解码过程将是清楚的,并且被认为是本领域技术人员很好理解的。

各种实现方式涉及编码。以与上面关于“解码”的讨论类似的方式,本申请中使用的“编码”可以包含例如对输入点云帧执行的处理的全部或部分,以便产生编码的比特流。在各种实施例中,此类过程包括通常由基于图像的解码器执行的过程中的一个或多个。

作为另外的示例,在一个实施例中,“编码”可以仅指熵编码,在另一实施例中,“编码”可以仅指差分编码,并且在另一实施例中,“编码”可以指差分编码和熵编码的组合。基于具体描述的上下文,短语“编码过程”是否可以旨在具体地指代操作的子集或一般地指更广泛的编码过程将是清楚的,并且被认为是本领域技术人员很好理解的。

注意,如本文所使用的语法元素,例如sps_enhanced_occupancy_map_code_fixed_bit_count_flag、sps_enhanced_occupancy_map_code_fixed_bit_count、ops_occupancy_code_fixed_bit_count_flag、ops_occupancy_code_bit_count_minus1、ops_parameter_set、occupancy_frame_params unit、patch_data unit、occupancy_patch_params unit是描述性术语。因此,它们不排除使用其他语法元素名称。

各种实施例涉及速率失真优化。特别地,在编码过程期间,通常考虑速率和失真之间的平衡或权衡,通常考虑到计算复杂度的约束。速率失真优化通常可以被公式化为最小化速率失真函数,其是速率和失真的加权和。存在不同的方法来解决速率失真优化问题。例如,这些方法可以基于对所有编码选项的广泛测试,包括所有考虑的模式或编解码参数值,在编解码和解码之后对其编解码成本和重建的信号的相关失真进行完整评估。还可以使用更快的方法,以节省编码复杂度,特别是基于预测或预测残差信号而不是重建的预测残差信号来计算近似失真。也可以使用这两种方法的混合,诸如通过仅对一些可能的编码选项使用近似失真,并且对其他编码选项使用完全失真。其他方法仅评估可能的编码选项的子集。更一般地,许多方法采用各种技术中的任何一种来执行优化,但是优化不一定是编解码成本和相关失真两者的完整评估。

另外,本申请可以涉及“确定”各种信息。确定信息可以包括例如估计信息、计算信息、预测信息或从存储器检索信息中的一个或多个。

此外,本申请可以涉及“访问”各种信息。访问信息可以包括例如接收信息、检索信息(例如,从存储器)、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息中的一个或多个。

另外,本申请可以涉及“接收”各种信息。与“访问”一样,接收旨在是广义的术语。接收信息可以包括例如访问信息或检索信息(例如,从存储器)中的一个或多个。此外,在诸如例如存储信息、处理信息、发送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间,通常以一种方式或另一种方式涉及“接收”。

此外,如本文中所使用,词语“信号”尤其是指向对应解码器指示某物。例如,在某些实施例中,编码器用信号发送特定信息INFO1和/或INFO2。以这种方式,在实施例中,可以在编码器侧和解码器侧两者处使用相同的参数。因此,例如,编码器可将特定参数发送(显式信令)给解码器,使得解码器可使用相同特定参数。相反,如果解码器已经具有特定参数以及其他参数,则可以使用信令而无需发送(隐式信令)来简单地允许解码器知道和选择特定参数。通过避免传输任何实际函数,在各种实施例中实现了比特节省。应当理解,可以以各种方式来实现信令。例如,在各种实施例中,一个或多个语法元素、标志等用于将信息用信号发送到对应的解码器。虽然前面涉及词语“信号”的动词形式,但是词语“信号”在本文中也可以用作名词。

已经描述了多个实现方式。然而,应当理解,可以进行各种修改。例如,可以组合、补充、修改或移除不同实现方式的元件以产生其他实现方式。另外,普通技术人员将理解,其他结构和过程可以代替所公开的那些结构和过程,并且所得到的实现方式将以至少基本上相同的方式执行至少基本上相同的功能,以实现与所公开的实现方式至少基本上相同的结果。因此,本申请预期了这些和其他实现方式。

39页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于点云压缩的量化步长参数

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类