CN110892725A - 一种用于编码/解码表示3d对象的点云的方法和装置 - Google Patents
一种用于编码/解码表示3d对象的点云的方法和装置 Download PDFInfo
- Publication number
- CN110892725A CN110892725A CN201880046727.XA CN201880046727A CN110892725A CN 110892725 A CN110892725 A CN 110892725A CN 201880046727 A CN201880046727 A CN 201880046727A CN 110892725 A CN110892725 A CN 110892725A
- Authority
- CN
- China
- Prior art keywords
- octree
- based structure
- point cloud
- cube
- leaf
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 88
- 235000012149 noodles Nutrition 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000004927 fusion Effects 0.000 claims 1
- 238000012369 In process control Methods 0.000 description 58
- 238000004190 ion pair chromatography Methods 0.000 description 58
- 210000004544 dc2 Anatomy 0.000 description 56
- 238000010586 diagram Methods 0.000 description 24
- 230000015654 memory Effects 0.000 description 24
- VXPLXMJHHKHSOA-UHFFFAOYSA-N propham Chemical compound CC(C)OC(=O)NC1=CC=CC=C1 VXPLXMJHHKHSOA-UHFFFAOYSA-N 0.000 description 19
- 230000008569 process Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 13
- 238000007906 compression Methods 0.000 description 13
- 102100035087 Ectoderm-neural cortex protein 1 Human genes 0.000 description 7
- 101000877456 Homo sapiens Ectoderm-neural cortex protein 1 Proteins 0.000 description 7
- 239000003086 colorant Substances 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 102100026191 Class E basic helix-loop-helix protein 40 Human genes 0.000 description 5
- 101710130550 Class E basic helix-loop-helix protein 40 Proteins 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 102100026190 Class E basic helix-loop-helix protein 41 Human genes 0.000 description 2
- 101000765033 Homo sapiens Class E basic helix-loop-helix protein 41 Proteins 0.000 description 2
- 101001006871 Homo sapiens Kelch-like protein 25 Proteins 0.000 description 2
- 102100027800 Kelch-like protein 25 Human genes 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000002310 reflectometry Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000004984 smart glass Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- DMSMPAJRVJJAGA-UHFFFAOYSA-N benzo[d]isothiazol-3-one Chemical compound C1=CC=C2C(=O)NSC2=C1 DMSMPAJRVJJAGA-UHFFFAOYSA-N 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本原理涉及编码方案的体系架构,该编码方案对通过将点云投影在与投影的结构的体积相关联的表面上而获得的深度图像(以及可选地纹理图像)进行编码。还从点云和通过反投影解码的深度图像(和可选地解码的纹理图像)获得的反投影的点云获得全局基于八叉树的结构。
Description
1.技术领域
本原理一般而言涉及表示3D对象的点云的编码和解码。特别地但非排他地,本原理的技术领域涉及使用纹理和深度投影方案的3D图像数据的编码/解码。
2.背景技术
本部分旨在向读者介绍本领域的各个方面,这些方面可以与以下描述和/或要求保护的本原理的各个方面相关。相信该讨论有助于向读者提供背景信息,以促进更好地理解本原理的各个方面。因而,应当理解的是,应从这种角度来阅读这些陈述,而不是作为对现有技术的承认。
点云是通常旨在表示3D对象的外表面的点集合,但也可以是可能无法通过网格等其它数据格式高效地表示的更复杂的几何形状(如头发、皮毛)。点云的每个点常常由3D空间位置(3D空间中的X、Y和Z坐标)定义,并且可能由其它相关联属性定义,诸如以例如RGB或YUV颜色空间表示的颜色、透明度、反射率、两分量法线向量等。
在下文中,考虑彩色点云,即,6分量点(X,Y,Z,R,G,B)或等价地(X,Y,Z,Y,U,V)的集合,其中(X,Y,Z)定义点在3D空间中的空间位置,而(R,G,B)或(Y,U,V)定义这个点的颜色。
彩色点云可以是静态的或者动态的,这取决于云是否随时间而演化。应当注意的是,在动态点云的情况下,点的数量不是恒定的,相反,一般随着时间而演化。因此,动态点云是点集合的时间排序列表。
实际上,彩色点云可以被用于各种目的,诸如文化遗产/建筑物,其中以3D扫描如雕像或建筑物之类的对象,以便在不发送或访问对象的情况下共享对象的空间配置。而且,这是确保保留对象的知识以防对象被破坏的途径;例如,庙宇被地震损坏。这种彩色点云通常是静态的并且是巨大的。
另一个用例是在地形和制图中,其中,通过使用3D表示,地图不限于平面,而且还可以包括地势。
汽车工业和自主驾驶汽车也是可以使用点云的领域。自动驾驶汽车应当能够“探测”其周围环境,以基于紧邻其附近的环境的实际情况做出安全驾驶决定。典型的传感器产生由决定引擎使用的动态点云云。这些点云并非旨在供人类查看。它们通常小,不一定是彩色的,并且是动态的,具有高捕获频率。它们可以具有其它属性,如反射率,这是与感测到的对象的物理表面的材质相关的有价值的信息并且可以帮助做出决定。
虚拟现实(VR)和沉浸式世界近来已成为热门话题,并被许多人预见为2D平面视频的未来。基本想法是让观看者沉浸在他周围的环境中,与他只能观看面前的虚拟世界的标准TV相反。取决于环境中观看者的自由度,沉浸性有若干等级。彩色点云是分发VR世界的良好格式候选。它们可以是静态的或动态的,并且通常具有平均尺寸,比如说一次不超过几百万个点。
仅当比特流的尺寸足够小以允许实际存储/传输给终端用户时,点云压缩才能成功地为沉浸式世界存储/传输3D对象。
同样关键的是能够以合理的带宽消耗将动态点云分发给终端用户,同时维持可接受的(或优选地非常好的)体验质量。与视频压缩相似,时间相关性的良好使用被认为是将导致动态点云的高效压缩的关键因素。
众所周知的方法将表示3D对象的几何形状和颜色的彩色点云投影到包含3D对象的立方体的面上,以获取关于纹理和深度的视频,并使用诸如3D-HEVC(HEVC的扩展,其规范可在ITU网站上找到,T推荐,H系列,h265,http://www.itu.int/rec/T-REC-H.265-201612-l/en附录G和I)之类的老式编码器对纹理和深度视频进行编码。
对于每个投影点,压缩的性能接近视频压缩,但是当考虑动态点云时,由于遮挡、冗余和时间稳定性,一些内容会更复杂。因此,就比特率而言,点云压缩比视频压缩的要求更高。
关于遮挡,如果不使用许多投影,几乎不可能获得复杂拓扑的完整几何形状。因此,用于对所有这些投影进行编码/解码的所需资源(计算能力、存储存储器)通常太高。
关于冗余,如果在两个不同的投影上两次看到一个点,那么其编码效率将被除以2,并且如果使用大量的投影,这会容易变得更糟。人们可以在投影之前使用非重叠的面片,但这使得投影的分区边界不平滑,因此难以编码,并且这会对编码性能产生负面影响。
关于时间稳定性,可以在给定的时间针对对象来优化投影之前的非重叠面片,但是,当这个对象移动时,面片边界也移动,并且难以编码的区域(=边界)的时间稳定性丢失。实际上,因为时间帧间预测在这种情况下效率低下,所以获得的压缩性能并不比全帧内编码好多少。
因此,在最多一次看到点但投影图像的可压缩性不好(边界不好)与获得可压缩性良好的投影图像但有些点被多次看到之间需要折衷,从而在投影图像中编码的点比实际属于模型的图像的点更多。
3.发明内容
以下给出了本原理的简化发明内容,以提供对本原理某些方面的基本理解。本发明内容不是本原理的广泛概述。它并不旨在识别本原理的关键或重要元素。以下发明内容仅以简化形式给出了本原理的一些方面,作为下面提供的更详细描述的序言。
一般而言,本原理涉及编码方案的体系架构,该编码方案对通过将点云投影在与投影结构的体积相关联的表面上而获得的深度图像(以及可选地,纹理图像)进行编码。
使用投影的结构可以使体积位置更加灵活,从而能够精细地捕获遮挡。
优选地,立方体上的突起用于容易实现。
使用由投影的结构表示的投影的级联允许更好地对3D对象的部分进行编码,而这些部分通常会丢失或使用许多独立的投影进行编码。于是,与现有技术相比,获得了高压缩性能,尤其是当纹理和深度由老式视频编解码器编码时,因为编码方案受益于例如由时间帧间预测或算术编码提供的这种老式编解码器的高编码效率。
还从点云和通过反投影解码的深度图像(和可选地解码的纹理图像)获得的反投影的点云中获得全局基于八叉树的结构。所述全局基于八叉树的结构的点的几何形状通过使用基于八叉树的方法进行编码,并且可选地,每个点的颜色被映射到2D彩色图像上,然后由老式编码器进行编码。
对全局基于八叉树的结构进行编码允许摆脱投影之后仍然存在的剩余遮挡,因此允许在对全局基于八叉树的结构和反投影点云进行解码之后更好地重构点云。同样,使用八叉树替换投影自然更好地压缩一些空间相关性很小的复杂拓扑(例如,头发)。
本原理涉及方法和设备。该方法包括:
a)通过优化用于编码所述候选的基于八叉树的结构的比特率与失真之间的折衷来确定是否通过候选的基于八叉树的结构的至少一个候选点来近似与表示点云的几何形状的基于八叉树的结构的叶节点相关联的叶立方体中所包括的点云的原始点,其中失真是从一方面所述原始点和另一方面所述候选点连同反投影点云的点一起之间的空间距离获得的,所述反投影点云包括在通过反投影至少一个深度图像获得的所述包含立方体中;
b)对第一叶节点信息数据进行编码,该信息指示是否已经确定了候选的基于八叉树的结构以近似所述原始点;
c)如果所述原始点被至少一个候选点近似,那么对所述候选的基于八叉树的结构进行编码。
根据实施例,根据实施例,
根据实施例,该方法还包括通过反投影所述至少一个编码的深度图像来获得反投影的点云,其中所述至少一个编码的深度图像是通过将点云的点投影到与投影的结构的体积相关联的至少一个表面上而获得的。
根据实施例,所述反投影由代表所述至少一个表面的投影信息数据驱动。
根据实施例,投影信息数据代表投影的结构。
根据实施例,该方法还包括对所述投影信息数据进行编码。
根据实施例,体积是立方体,表面是所述立方体的面,并且投影的结构是基于八叉树的投影的结构。
根据实施例,该方法还包括:
-通过递归地拆分所述包含立方体直到与所述基于八叉树的结构的叶节点相关联的叶立方体达到期望尺寸,确定包括至少一个立方体的基于八叉树的结构。
-对代表基于八叉树的结构的另一个八叉树信息数据进行编码;以及
-根据步骤a-c)对与所述基于八叉树的结构的叶节点相关联的每个叶立方体进行编码。
根据实施例,该方法还包括通过将点云的点投影到表面上来获得每个深度图像的纹理图像。
根据实施例,对深度图像进行编码取决于与所述深度图像相关联的纹理图像。
根据实施例,通过对所述至少一个深度图像进行编码和解码并且通过反投影所述至少一个解码的深度图像,或者通过对所述至少一个深度图像和每个深度图像至少一个纹理图像进行编码和解码并且通过反投影所述至少一个解码的深度图像和所述至少一个解码的纹理图像,获得反投影的点云。
根据其另一方面,本原理还涉及另一种方法和另一种设备。该方法包括:
d)如果第一叶节点信息数据指示已经确定了局部基于八叉树的结构用于近似与表示所述点云的几何形状的基于八叉树的结构的叶节点相关联的叶立方体中所包括的点云的原始点,那么
e)从八叉树信息数据获得用于所述叶立方体的局部基于八叉树的结构;
f)如果第二叶节点信息数据指示与所述局部基于八叉树的结构的叶节点相关联的叶立方体包括单个点,那么在所述叶立方体的中心添加单个点;
j)通过将所述局部基于八叉树的结构与通过反投影至少一个深度图像而获得的反投影的点云融合来获得解码的点云,所述反投影由代表至少一个表面的投影信息数据驱动。
根据实施例,表面(Fi,j)是基于八叉树的投影的结构的立方体(Cj)的面。
根据实施例,该方法还包括解码代表所述至少一个表面的投影信息数据。
根据实施例,该方法还包括解码代表基于八叉树的投影的结构的投影信息数据。
根据实施例,该方法还包括通过以下步骤获得全局基于八叉树的结构:
-从另一个八叉树信息数据获得基于八叉树的结构;以及
-对于所述基于八叉树的结构的每个叶立方体,
-根据步骤d-j)获得用于所述叶立方体的局部基于八叉树的结构;
-通过用所述局部基于八叉树的结构替换与所述叶立方体相关联的基于八叉树的结构的叶节点,获得全局基于八叉树的结构;以及
-通过融合所述反投影的点云和所述全局基于八叉树的结构来获得解码的点云。
根据实施例,该方法还包括解码每个深度图像的纹理图像。
根据实施例,解码深度图像取决于与所述深度图像相关联的纹理图像。
根据其另一方面,本原理还涉及一种信号,其携带通过将点云的点正交投影到表面上而获得的至少一个深度图像以及指示是否已经为包括所述输入彩色点云的至少一个点的包含立方体确定了局部基于八叉树的结构的第一叶节点信息数据。
根据实施例,对于与所述基于八叉树的结构的叶节点相关联的每个叶立方体,该信号还携带代表基于八叉树的结构的第一八叉树信息数据、指示是否已经为所述叶立方体确定了局部基于八叉树的结构的第一叶节点信息数据。
根据实施例,该信号还携带代表局部基于八叉树的结构(Ok)的第二八叉树信息数据,以及指示所述局部基于八叉树的结构的叶立方体是否包括代表点云的一部分的点的第二叶节点信息数据。
通过以下结合附图对示例的描述,本原理的具体性质以及本原理的其它目的、优点、特征和用途将变得显而易见。
4.附图说明
在附图中,图示了本原理的示例。附图示出:
-图1a示意性地示出了根据本原理的示例的用于对表示3D对象的点云进行编码的方法的步骤的图;
-图1b示意性地示出了图1a的方法的变体的步骤的图;
-图2图示了基于八叉树的结构的示例;
-图3图示了根据本原理的实施例的步骤100的子步骤的图;
-图4示出了根据本原理的实施例的步骤300的子步骤的图;
-图5示出了根据本原理的实施例的步骤150的子步骤的图;
-图6示出了候选的基于八叉树的结构的示例的图示;
-图7示出了相邻的最大八叉树单元的示例的图示;
-图8示出了根据本原理的实施例的步骤190的子步骤的图;
-图9示出了3D Hilbert路径的示例;
-图10示出了图8的方法的示例的图示;
-图11示出了朝向系统的图示;
-图12示出了当通过图11的朝向系统来表征3D Hilbert路径时的朝向的示例;
-图13示出了根据本原理的实施例的步骤800的子步骤的图;
-图14示出了具体节点编号次序的示例;
-图15示出了按照具体节点编号次序指派给子立方体的朝向和局部编号的示例;
-图16示出了连续的2D Z扫描曲线的图示;
-图17示出了连续的2D Peano曲线的图示;
-图18示出了基于块的2D光栅扫描路径的图示;
-图19示出了基于块的2D Hilbert扫描路径的图示;
-图20a示意性地示出了根据本原理的示例的用于从至少一个比特流解码代表3D对象的彩色点云的方法的步骤的图;
-图20b示意性地示出了图20a的方法的变体的步骤的图;
-图21示出了图20a-b的方法的图示;
-图22示出了根据本原理的示例的设备的体系架构的示例;
-图23示出了根据本原理的示例的通过通信网络进行通信的两个远程设备;
-图24示出了根据本原理的示例的信号的语法。
相似或相同的元件用相同的附图标记表示。
5.具体实施方式
在下文中将参考附图更全面地描述本原理,在附图中示出了本原理的示例。但是,本原理可以以许多替代形式来实施,并且不应当被解释为限于本文阐述的示例。因而,虽然本原理易于有各种修改和替代形式,但是其具体示例通过附图中的示例示出,并且将在本文中进行详细描述。但是,应当理解的是,无意将本发明原理限于所公开的特定形式,相反,本发明将覆盖落入如权利要求定义的本发明原理的精神和范围内的所有修改、等同形式和替代形式。
本文使用的术语仅出于描述特定示例的目的,而无意于限制本原理。如本文所使用的,单数形式“一”、“一个”和“该”也意图包括复数形式,除非上下文另外明确指出。将进一步理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元素和/或组件的存在。但不排除一个或多个其它特征、整数、步骤、操作、元素、组件和/或其组的存在或添加。而且,当元件被称为“响应于”或“连接到”另一个元件时,它可以直接响应于或连接到另一个元件,或者可以存在中间元件。相反,当元件被称为“直接响应于”或“直接连接到”其它元件时,不存在中间元件。如本文所使用的,术语“和/或”包括相关联的所列项目中的一个或多个的任何和所有组合,并且可以缩写为“括相。
将理解的是,虽然本文可以使用术语第一、第二等来描述各种元素,但是这些元素不应受到这些术语的限制。这些术语仅用于区分一个元素与另一个元素。例如,在不脱离本原理的教导的情况下,第一元素可以被称为第二元素,并且类似地,第二元素可以被称为第一元素。
虽然一些图在通信路径上包括箭头以示出通信的主要方向,但是应该理解的是,通信可以在与所描绘的箭头相反的方向上发生。
关于框图和操作流程图描述了一些示例,其中每个方框表示电路元件、模块或代码的部分,其包括用于实现(一个或多个)指定的逻辑功能的一个或多个可执行指令。还应当注意的是,在其它实施方式中,在方框中指出的(一个或多个)功能可以不按指出的次序发生。例如,取决于所涉及的功能,连续示出的两个方框实际上可以基本上并发地执行,或者有时可以以相反的次序执行。
本文中对“根据示例”或“在示例中”的引用是指结合示例描述的特定特征、结构或特点可以包括在本原理的至少一个实施方式中。在说明书中各个地方出现的短语“根据示例”或“示例”不一定全部是指同一个示例,也不是必须与其它示例相互排斥的单独或替代示例。
出现在权利要求中的附图标记仅仅是说明性的,并且对权利要求的范围没有限制作用。
虽然没有明确描述,但是可以以任何组合或子组合来采用本示例和变型。
针对对彩色点云进行编码/解码描述本原理,但是,因为如下所述顺序地对序列中的每个彩色点云进行顺序编码/解码,所以被扩展到对彩色点云序列的编码/解码。
在下文中,图像包括具体图像/视频格式的样本(像素值)的一个或若干数组,所述格式指定例如与图像(或视频)的像素值相关的所有信息以及可以被显示器和/或任何其它设备用来可视化和/或解码图像(或视频)的所有信息。图像包括呈第一样本阵列的形状的至少一个分量,通常是亮度(或辉度)分量,并且可能包括呈至少一个其它样本阵列的形状的至少一个其它分量,通常是颜色分量。或者,等效地,相同的信息也可以由颜色样本阵列的集合来表示,诸如传统的三色RGB表示。
像素值由nv个值的向量表示,其中nv是分量的数量。向量的每个值用多个比特表示,这些比特定义像素值的最大动态范围。
纹理图像是其像素值表示3D点的颜色的图像,而深度图像是其像素值表示3D点的深度的图像。通常,深度图像是灰度级图像。
图1a示意性地示出了用于编码表示3D对象的点云IPC的方法的步骤的图。
在步骤100中,模块M1通过将包括在所述至少一个体积Cj中的点云IPC的点投影在与投影的结构的至少一个体积Cj相关联的至少一个表面Fi,j上来获得至少一个深度图像(DIi,j)。
索引i是指与体积相关联的表面或深度图像的索引,并且索引j是指所述投影的结构的体积的索引。
体积Cj可以是包含整个点云IPC的3D体积或所述3D体积的一部分。因此,投影的结构包括至少一个体积Cj的集合{Cj}和与体积Cj相关联的至少一个表面Fi,j。所述至少一个表面Fi,j可以是参数化表面,定义其参数以便优化点云IPC的至少一部分到所述参数化表面上的投影。
根据步骤100的优选实施例,体积Cj是立方体,表面是所述立方体的面,并且投影的结构是基于八叉树的投影的结构。然后,模块M1通过将包括在所述至少一个体积Cj中的点云IPC的点投影在基于八叉树的投影的结构的至少一个立方体Cj的至少一个面Fi,j上来获得至少一个深度图像(DIi,j)。索引i是指与立方体Cj的6个面之一对应的面或深度图像的索引(从1到6)。
表面(或面)Fi,j形成至少一个表面(或面)的集合{Fi,j},并且深度图像Dli,j形成至少一个深度图像的集合{Dli,j]。
基于八叉树的结构包括根节点、至少一个叶节点以及可能的中间节点。叶节点是基于八叉树的立方体的没有子代的节点。所有其它节点都有子代。基于八叉树的结构的每个节点与立方体相关联。叶立方体是与基于八叉树的结构的叶节点相关联的立方体。
可以通过递归地拆分与根节点相关联并包含输入点云IPC的初始立方体来获得基于八叉树的投影的结构。因此,基于八叉树的投影的结构包括与(一个或多个)节点相关联的至少一个立方体Cj的集合{Cj}。
当达到最大八叉树深度或者当与节点相关联的立方体的尺寸小于阈值时或者当立方体中包括的输入点云3D的点的数量不超过最小数量时,可以检查停止条件。
在图2所示的示例中,与根节点(深度0)相关联的立方体被拆分为8个子立方体(深度1),然后将深度为1的两个子立方体拆分为8个子立方体(最后深度=最大深度=2)。
具有相同深度的立方体的尺寸通常是相同的,但是本原理不限于这个示例。当拆分立方体时,具体处理还可以确定每个深度的不同数量的子立方体,和/或相同深度或根据其深度的多个尺寸的立方体。
在下文中,术语“为立方体确定的局部基于八叉树的结构”是指在由包含要编码的点云的一部分的立方体界定的3D空间中确定的基于八叉树的结构。
相反,全局基于八叉树的结构是指在由包含要编码的点云的立方体所界定的3D空间中确定的基于八叉树的结构。
在步骤110中,编码器ENC1对至少一个深度图像的集合{DIi,j]进行编码。
所述至少一个编码的深度图像可以在比特流F2中存储和/或传输。
在步骤120中,模块M2通过反投影所述至少一个深度图像DIi,j来获得反投影的点云IPPC。
所述反投影是在步骤100中使用的倒数处理(仅用于投影的点)。
根据步骤120的变体,模块M2使用编码器ENC1对所述至少一个深度图像DIi,j进行编码,并且通过对所述至少一个编码的深度图像DIi,j进行解码以及通过对所述至少一个解码的深度图像DIi,j进行反投影来获得反投影的点云IPPC。
于是,反投影的点云IPPC表示点云IPC几何形状的近似。
在步骤130中,模块M3通过递归地拆分包含点云IPC的立方体直到与所述基于八叉树的结构IO的叶节点相关联的叶立方体达到预期尺寸,模块M3确定包括至少一个立方体的基于八叉树的结构IO。
与基于八叉树的结构IO的叶节点相关联的叶立方体然后可以包括或不包括输入点云IPC的点。与基于八叉树的结构IO的叶节点相关联的叶立方体在下面被命名为最大八叉树单元(LOUk)中,k表示引用与基于八叉树的结构IO的叶节点k相关联的最大八叉树单元的索引。
在步骤140中,模块M4对代表基于八叉树的结构IO的第一八叉树信息数据FOID进行编码。
在步骤150中,对于每个LOUk,模块M5通过优化用于对近似所述LOUk中包括的点云IPC的点Pk,or的几何形状的候选的基于八叉树的结构Ok,n进行编码的比特率Rk,n与失真Dk,n之间的折衷来确定局部基于八叉树的结构Ok是否与LOUk相关联,失真Dk,n考虑一方面点云IPC的所述点Pk,or和另一方面与候选的基于八叉树的结构Ok,n的叶节点相关联的叶立方体中所包括的点Pk,n之间的空间距离,并考虑一方面点云的所述点Pk,or和另一方面与候选的基于八叉树的结构Ok,n的叶节点相关联的叶立方体中所包括的点Pk,n连同所述LOUk中包括的反投影点云IPPC的点Pk,IP一起之间的空间距离。
从数学上讲,失真Dk,n是由下式给出的度量:
Dk,n=d(Pk,n∪Pk,IP,Pk,OR)+d(Pk,OR,Pk,n∪Pk,IP)
其中d(A,B)是测量从点集合A到点集合B的空间距离的度量。这个度量是不对称的,这意味着从A到B的距离与从B到A的距离不同。
距离d(Pk,n∪Pk,IP,Pk,OR)确保与候选的基于八叉树的结构Ok,n的叶节点相关联的叶立方体中包括的点距离点云IPC不太远,从而避免了对无关点进行编码。
距离d(Pk,OR,Pk,n∪Pk,IP)确保点云IPC的每个点由相距不远的点近似,即,确保点云IPC的未由反投影的点云IPPC表示的部分通过与基于八叉树的结构Ok,n相关联的点Pk,n良好地近似。
根据实施例,距离d(A,B)由下式给出:
其中范数是欧几里得距离,而qclosest(p,B)是B中距A的点p最近的点,定义为
根据优化处理,LOUk可能不包括点云IPC的任何点。在那种情况下,LOUk被命名为非编码的LOUk。
优化处理还可能确定LOUk中包括的点云IPC的点未由任何候选的基于八叉树的结构Ok,n表示(编码)。当用于编码那些点的成本相对于与Rk,n=0和从其它已经编码的LOUk和反投影的点云IPPC的已编码的点与Pk,OR之间获得的失真Dk,n太高时,就是这种情况。在这种情况下,没有为这个LOUk确定局部基于八叉树的结构Ok,于是将其视为未编码的LOUk。
在步骤150中,对于与所述基于八叉树的结构IO的叶节点相关联的每个LOUk,模块M5还对第一叶节点信息数据FLID进行编码,该第一叶节点信息数据FLID指示是否已经为所述LOUk确定了局部基于八叉树的结构Ok。
例如,如果局部基于八叉树的结构Ok与LOUk相关联,那么这个数据FLID可以是设置为1的标志,否则设置为0(即,如果LOUk是未编码的LOUk的话)。
如果第一叶节点信息数据FLID指示已经为LOUk确定了局部基于八叉树的结构Ok,那么在步骤160中,模块M6对代表所述确定的局部基于八叉树的结构Ok的第二八叉树信息数据SOID进行编码,并且在步骤170中,模块M7对第二叶节点信息数据SLID进行编码,该第二叶节点信息数据SLID指示所述局部基于八叉树的结构Ok的叶立方体是否包括代表点云IPC的一部分的点。
第一八叉树信息数据FOID、第一叶节点信息数据FLID、第二八叉树信息数据SOID和第二叶节点信息数据SLID可以在比特流F1中存储和/或传输。
可选地,在步骤180中,模块M8对代表所述至少一个表面(或立方体的面)Fi,j的集合的投影信息数据进行编码。投影信息数据既驱动点云IPC到表面(或面)上的投影,又驱动从表面(或面)的反投影以获得反投影的点云IPPC(步骤120)。
在步骤180的变体中,可以由解码器预先知道投影的结构(基于八叉树的投影的结构),并且模块M8不对代表投影的结构(基于八叉树的投影的结构)的信息数据进行编码。
在步骤180的另一个变体中,模块M8还对代表投影的结构(基于八叉树的投影的结构)的投影信息数据进行编码。
编码的投影信息数据可以在比特流F1中存储和/或传输。
根据图3所示的步骤100的实施例,在步骤300中,模块M1确定根据代表与体积Cj的表面Fi,j相关联的深度图像Dli,j的能力的度量Q(Fi,j)选择与集合{Cj}的每个体积Cj相关联的哪些表面Fi,j,以高效地压缩包括在体积Cj中的点云IPC的点到表面Fi,j上的投影。
在步骤310中,模块M1通过将包括在体积Cj中的点云IPC的点投影到与体积Cj相关联的所选择的表面Fi,j上来以获得用于每个所选择的表面Fi,j的一个深度图像DIi,j。
图4示出了根据本原理的实施例的步骤300的子步骤的图。
在步骤400中,考虑投影的结构的每个体积Cj,并且模块M1将包括在体积Cj中的点云IPC的点投影到与所述体积Cj相关联的每个表面Fi,j上,以便获得用于每个所述表面Fi,j的深度图像DIi,j。
根据优选实施例,表面Fi,j可以是与立方体Cj相关联的六个面。
在步骤410中,模块M1为与表面Fi,j相关联的每个深度图像计算度量Q(Fi,j)。
根据实施例,度量Q(Fi,j)响应于像素的总N_total(i,j)数与新看到的点数N_new(i,j)的比率,其中总数与包括在体积Cj中的点云IPC的部分的投影对应。当点尚未投影到先前选择的表面上时,认为该点是“新看到的”。
如果通过点云IPC的一部分到表面Fi,j上的投影没有看到新的点,那么所述比率变为无穷大。相反,如果所有点都是新的,那么这个比率等于1。
在步骤420中,当度量Q(Fi,j)小于或等于阈值Q_acceptable时,模块M1选择表面Fi,j:
Q(Fi,j)≤Q_acceptable
然后,每个体积可以不选择或选择至少一个表面。
可能的值为Q_acceptable=2,表示至少一半投影的点应当是新的以选择投影。应该理解的是,这些示例不限于仅作为示例提供的这个具体值。
根据步骤140和/或160的实施例,第一八叉树信息数据FOID和第二八叉树信息数据SOID包括每个节点的二进制标志,其等于1以指示与所述节点相关联的立方体被拆分,否则为0。
根据步骤140的可选变体,模块M4生成立方体拆分的最大深度。
这避免了对具有最大深度的所有立方体发信号通知第一八叉树信息数据。
根据步骤150的实施例,第一叶节点信息数据FLID包括每个叶节点的二进制标志,其等于1以指示如果已经为LOUk确定了局部基于八叉树的结构Ok,否则为0(用于发信号通知非编码的LOUk)。
根据步骤170的实施例,第二叶节点信息数据SLID包括每个叶节点的二进制标志,其等于1以指示如果局部基于八叉树的结构Ok的叶立方体包括代表点云IPC的一部分的点,否则为0。
根据实施例,可以使用如CABAC的熵编码器对第一八叉树信息数据FOID、第一叶节点信息数据FLID、第二八叉树信息数据SOID和/或第二叶节点信息数据SLID进行编码(CABAC的描述在HEVC规范中找到,网址为http://www.itu.int/rec/T-REC-H.265-201612-l/en)。
对第二八叉树信息数据SOID和/或第二叶节点信息数据SLID进行熵编码在编码方面可以是高效的,因为可以使用具体上下文对每个节点的二进制标志进行编码,因为通常只有基于八叉树的结构的几个节点被拆分并且与相邻节点相关联的二进制标志具有相同值的概率高。
图5示出了根据本原理的实施例的步骤150的子步骤的图。
如以上所讨论的,获得了包括至少一个LOUk的基于八叉树的结构IO,并且速率失真优化(RDO)处理被用于为至少一个LOUk确定最佳的局部基于八叉树的结构Ok。
可以在比特流F1中对单个标志进行编码,以指示LOUk是否包括点云IPC的点。
对LOUk执行的RDO处理可以从N个候选的基于八叉树的结构Ok,n(n∈[1;N])中找到最佳的局部基于八叉树的结构Ok。基本原理是相继地测试每个候选的基于八叉树的结构Ok,n,并针对每个候选的基于八叉树的结构Ok,n计算拉格朗日成本Ck,n,由下式给出:
Ck,n=Dk,n+λRk,n (1)
其中Rk,n和Dk,n分别是上面详述的比特率和失真,而λ是固定的拉格朗日参数,该参数对于所有候选的基于八叉树的结构Ok,n都是固定的。
然后通过最小化拉格朗日成本Ck,n获得最佳的局部基于八叉树的结构Ok:
拉格朗日参数的高值会严重影响比特率Rk,n并导致低近似质量,而拉格朗日参数的低值容易使Rk,n产生高值并导致高近似质量。λ值的范围取决于失真度量、LOUk的尺寸,以及最重要的是两个相邻点之间的距离。假设这个距离是单位距离(unity),那么λ的典型值在数百(对于非常差的编码)到十分之一(对于良好的编码)的范围内。这些值是指示性的,并且也可以取决于内容。
现在根据本原理的实施例详细描述为LOUk确定最佳的局部基于八叉树的结构Ok。
在步骤500中,模块M5为LOUk获得N个候选的基于八叉树的结构Ok,n的集合并为每个候选的基于八叉树的结构Ok,n获得点Pk,n的集合。Pk,n是与候选的基于八叉树的结构Ok,n的叶节点相关联的立方体中所包括的点。
在步骤510中,模块M5获得用于对每个候选的基于八叉树的结构Ok,n进行编码的比特率Rk,n。
在步骤520处,模块M5获得包括在LOUk中的点云IPC的点Pk,or。
在步骤530中,模块M5为每个候选的基于八叉树的结构Ok,n获得失真Dk,n,每个失真Dk,n考虑一方面点Pk,or和另一方面了点Pk,n之间的空间距离。
在步骤540处,模块M5根据等式(1)为每个候选的基于八叉树的结构Ok,n计算拉格朗日成本Ck,n。
在步骤550中,一旦考虑了所有候选的基于八叉树的结构Ok,n,模块M3就根据等式(2)获得最佳的局部基于八叉树的结构Ok。
要注意的是,如上面所解释的,然后可以认为对LOUk的最佳折衷是不对其中包括的点进行编码。在那种情况下,没有为这个LOUk确定局部基于八叉树的结构Ok。
根据步骤500的实施例,候选的基于八叉树的结构Ok,n包括至少一个叶节点,并且与叶节点相关联的叶立方体可以(或可以不)包括单个点。
图6示出了根据这个实施例的候选的基于八叉树的结构Ok,n的示例的图示。这个图表示基于四叉树的结构的示例,该结构对正方形进行拆分,但是读者将通过用立方体(LOUk)替换正方形来轻松地将其扩展到3D情况。
根据这个示例,立方体被拆分为4个子立方体C1、C2、C3和C4(深度1)。子立方体C1与叶节点相关联并且不包含任何点。子立方体C2被递归地拆分为4个子立方体(深度2)。子立方体C3也被递归地拆分并且子立方体C4不被拆分但是位于例如该立方体中心的一个点与之关联,...,等等。
在图6的右侧示出了候选的基于八叉树的结构的图示。黑色圆圈指示节点被拆分。二进制标记与每个白色圆圈(叶节点)相关联,以指示正方形(在3D情况下为立方体)是包括(1)还是不包括(0)点。
根据这个示例,点位于立方体的中心,因为一旦在基于八叉树的结构中识别出了该立方体,它就避免关于那个点的空间位置的任何附加信息。但是本原理不限于这个示例,并且可以扩展到立方体中的点的任何其它空间位置。
本原理不限于图6所示的候选的基于八叉树的结构,而是扩展到包括至少一个其相关联的叶立方体包括至少一个点的叶节点的任何其它基于八叉树的结构。
根据步骤510的实施例,当第二八叉树信息数据SOID指示与所述节点相关联的立方体被拆分并且第二叶节点信息数据SLID指示局部基于八叉树的结构Ok的叶立方体是否包括代表点云IPC的一部分的点时,比特率Rk,n是包括在第二八叉树信息数据SOID和第二叶节点信息数据SLID中的二进制标志的数量之和。
根据步骤510的另一个变体,形成第二八叉树信息数据SOID中包括的二进制标志的第一序列和第二叶节点信息数据SLID中包括的二进制标志的第二序列并对其进行熵编码,然后从熵编码版本的所述第一和第二序列中获得比特率Rk,n。
根据步骤520和530的变体,在步骤520中,模块M3获得相邻点Pk,NEI,该相邻点或者是包括在LOUk的至少一个相邻最大编码单元LOUk,NEI中的逆点云IPPC的点,或者是包括在与先前为所述至少一个相邻最大编码单元LOUk,NEI确定的局部基于八叉树的结构的叶节点相关联的叶立方体中的点。
在步骤530中,模块M5获得失真,该失真也考虑了点Pk,or和与相邻点Pk,NEI之间的空间距离。
从数学上讲,失真Dk,n是由下式给出的度量:
Dk,n=d(Pk,n∪Pk,IP∪Pk,NEI,Pk,OR)+d(Pk,OR,Pk,n∪Pk,IP∪Pk,NEI)
距离d(Pk,OR,Pk,n∪Pk,IP∪Pk,NEI)也确保点云IPC的每个点由距离不太远的点近似,也包括相邻最大编码单元LOUTk,NEI中包括的相邻点。这是有利的,因为它避免了对接近相邻最大编码单元LOUTk,NEI的边缘的点云IPC的点进行太精细的编码,该点可以已经由相邻最大编码单元LOUTk,NEI中包括的点很好地表示。因此,这通过编码较少的点来节省比特率,并且对失真的影响小。
根据图7所示的这个变体的实施例,最大编码单元LOUTk,NEI被定义为具有与LOUk共同的至少一个顶点、一条边或一个面。
图7示出了相邻最大编码单元LOUTk,NEI的示例的图示。这个图表示相对于LOUk和LOUk的八个相邻LOUk,1-8的基于四叉树的结构的示例。点Pk,OR用白色矩形表示。点Pk,IP用黑色矩形表示。点Pk,NEI用黑色圆圈表示。点Pk,n用白色圆圈表示。应该理解的是,2D描述仅用于说明。在3D中,应当考虑26个相邻的立方体而不是2D图示的8个相邻的正方形。
根据这个示例,点Pk,NEI是包括在四个LOUk,1-4中的点,即,或者包括在与和这四个LOUk,1-4相关联的局部基于八叉树的结构的叶节点相关联的立方体中的点(步骤820)和/或包括在所述LOUk,1-4中的逆投影彩色点云IPPC的点。
点云IPC的几何形状通过所述至少一个深度图像并且通过基于八叉树的结构IO和Ok来近似,其中深度图像是通过将点云IPC投影到与体积Cj相关联的表面Fi,j上而获得的。
点云IPC的点的颜色可以如下所述近似。
根据该方法的变体,在步骤100中,模块M1还通过将包括在所述体积Cj中的点云IPC的一部分点投影到与投影的结构的体积Cj相关联的表面Fi,j上来获得每个深度图像(DIi,j)的纹理图像(TIi,j)。
投影将包括在体积Cj中的点云IPC的点投影到与其关联的表面Fi,j上,以创建深度图像DIi,j以及可选地纹理图像TIi,j。
点云IPC的点在与体积Cj相关联的表面上的投影可以通过多种方式获得,例如通过实现以下任何一种方法:
-体积Cj中包括的点云IPC的点在与视点相关联的平面Fi,j上的参数化线性透视投影,代表线性透视投影的参数包括虚拟相机的位置、采样步长和2维中的视野;
-体积Cj中包括的点云IPC的点在表面Fi,j上的参数化正交投影,代表正交投影的参数包括投影表面Fi,j的几何形状(形状、尺寸和朝向)和空间采样步长;
-与降维的数学运算对应的LLE(局部线性嵌入),这里应用于从3D到2D的转换/变换,代表LLE的参数包括变换系数。
每个表面Fi,j可以有利地具有矩形形状,以简化图1a-b上的模块ENC1的编码处理110。
投影处理不限于仅作为示例性实施例提供的上述处理。
根据步骤100的优选实施例的变体,模块M1还通过将包括在所述立方体Cj中的点云IPC的点投影到基于八叉树的投影的结构的立方体Cj的面Fi,j上来获得每个深度图像DIi,j的纹理图像TIi,j。
纹理图像TIi,j是点云IPC的点的颜色的近似。
根据实施例,点云IPC的点到立方体的面上的投影是正交投影。
正交投影将包括在立方体Cj中的点云IPC的点投影到其面Fi,j上,以创建深度图像DIi,j以及可选地纹理图像TIi,j。创建的深度图像的分辨率可以与立方体分辨率完全相同,例如,将16x16x16立方体中的点投影到16x16像素图像上。通过轴的置换,可以不失一般性地假设面平行于XY平面。因此,当面的深度值Zface等于0时通过该点的位置的分量Z或通过分量Z与面的深度值Zface之间的距离获得点的深度(即,到面的距离)。
在投影处理开始时,纹理图像可以具有均匀的预定颜色(例如,灰色),并且深度图像可以具有均匀的预定深度值(例如,负值-D)。对立方体中包括的所有点执行循环。对于位置(X,Y,Z)上的每个点,如果该点到面的距离Z-Zface严格小于深度图像中(在相同的X和Y方向上)并置的像素的深度值,那么用Z-Zface替换所述深度值,并将纹理图像的并置的像素的颜色替换为所述点的颜色。在对所有点执行循环之后,深度图像的所有深度值可以偏移偏移量+D。实际上,从投影信息数据获得值Zface、面的X和Y的原点以及相对于面的立方体位置。
偏移量D用于区分已投影(深度严格为正)或未投影(深度为零)的图像像素。
根据步骤110的实施例,编码器ENC1是类似HEVC的编码器(AVC、H264、H265等)。
根据步骤110的实施例,编码器ENC1通过考虑与所述深度图像相关联的纹理图像来对深度图像进行编码。
根据步骤110的实施例,编码器ENC1是符合3D-HEVC的(参见HEVC规范的附录J,关于专用于深度的编码工具)。这种编码器可以自然地联合编码纹理及其相关联的深度,就深度视频的压缩性能而言,其声称的增益约为50%。纹理图像与HEVC向后兼容,因此,其压缩性能与经典HEVC主简档相同。
根据步骤120的变体,模块M2使用编码器ENC1对所述至少一个深度图像(DIi,j)和所述至少一个纹理图像TIi,j进行编码和解码,并且通过解码所述至少一个编码的深度图像DIi,j和所述至少一个编码纹理图像TIi,j,以及通过对所述至少一个解码的深度图像DIi,j和所述至少一个解码的纹理图像TIi,j进行反投影来获得反投影的点云IPPC。
于是,反投影的点云IPPC表示点云IPC的几何形状和颜色的近似。
当投影是在与体积Cj相关联的表面Fij上的投影时,反投影可以与上文描述的投影方法的逆操作对应,例如参数化线性透视反投影、参数化正交反投影和/或逆局部线性嵌入。反投影使用与深度图像DIi,j的像素相关联的深度信息执行反投影,以获得反投影的点云IPPC的属于体积Cj的点部分。与纹理图像TIi,j的像素相关联的颜色信息被指派给所述点,以获得反投影的点云IPPC的点的颜色。
当投影是在立方体Cj的面Fij上的正交投影时,从立方体的面开始的正交反投影从纹理和深度图像确定立方体中的反投影的3D点。面的分辨率可以与立方体分辨率完全相同,例如,将16x16x16立方体中的点投影到16x16像素的图像上。通过轴的置换,可以不失一般性地假设面平行于XY平面。因此,点的深度(即,到面的距离)可以代表反投影的点的位置的分量Z。然后,面位于Z坐标的值Zface处,而立方体位于大于Zface的Z处。实际上,从投影信息数据获得值Zface、面的X和Y的原点以及相对于面的立方体位置。
对深度图像的所有像素执行循环。对于位置(X,Y)和深度值V处的每个像素,如果值V严格为正,那么可以在位置(X,Y,Zface+V-D)处获得反投影的3D点,并且纹理图像中位置(X,Y)处的像素可以与所述点相关联。值D可以与投影处理中使用的正偏移量相同。
正交反投影处理不限于仅作为示例性实施例提供的上述处理。
通过正交反投影若干解码的纹理和深度图像,可能会发生两个或更多个反投影的3D点完全属于3D空间的相同位置。在这种情况下,在所述位置处仅用一个点替换所述点,该点的颜色是在所有所述反向投影的3D点上所取的平均颜色。
根据图1b所示的方法的实施例,在可选步骤190中,模块M9从位于与局部基于八叉树的结构Ok的叶节点相关联的叶立方体中的点的颜色获得图像I。所述点在下文中被称为叶点。
所述叶点的颜色代表点云IPC的点的颜色。例如,可以通过取点云IPC的至少一个(相对于所述叶点)最接近点的颜色来获得那些颜色。
在可选步骤200中,编码器ENC2对图像I进行编码。
编码的图像I可以在比特流F3中被存储和/或传输。
这些比特流F1、F2和可选地F3可以由或者单个或者多个信号承载。
根据步骤200的实施例,编码器ENC2与老式编码器兼容,诸如例如
·JPEG,规范ISO/CEI 10918-1UIT-T建议T.81,https://www.itu.int/rec/T-REC-T.81/en,
·AVC,也称为MPEG-4AVC或h264。在UIT-T H.264和ISO/CEIMPEG-4第10部分(ISO/CEI 14496-10)中指定,http://www.itu.int/rec/T-REC-H.264/
·或HEVC(其规范可在ITU网站上找到,T建议,H系列,h265,http://www.itu.int/rec/T-REC-H.265-201612-l/zh)
图8示意性地示出了根据本原理的示例的步骤190的子步骤的图。
在步骤800中,模块M9通过将基于八叉树的结构IO的至少一个叶节点替换为局部基于八叉树的结构Ok来获得全局基于八叉树的结构GO。
然后,模块M9通过根据具体的3D路径扫描全局基于八叉树的结构GO的叶节点来对与基于八叉树的结构Ok的叶立方体相关联的叶节点进行排序。
例如,如图9中所示,为基于八叉树的结构GO的每个叶节点指派数字,并且根据其指派的数字对包括叶点的叶立方体进行排序。在图10中,仅示出了与包括点的叶立方体相关联的叶节点的数字(25,2,...)。
有序的叶立方体(即,有序的叶点),可以形成有序数字的列表,如图10中所示。每个数字引用包括代表点云IPC至少一部分的点的具体的叶立方体。
在步骤810中,模块M9根据具体的2D路径将每个有序的叶点的颜色指派给图像I的像素。
如图10中所示,2D路径通常是图像处理中的光栅次序。遵循这样的2D路径,将有序点的列表的第一个点(25)的颜色指派给图像I的左上像素,将有序点的列表的第二个点(2)的颜色为指派给同一行上的相邻像素,依此类推。
图像的行数和列数是预先定义的。有利地,它可以是图像或视频编码器ENC2的编码单元(或块)的尺寸的倍数。例如,当使用HEVC时,行数和列数优选地都是64的倍数。图像I的像素的数量应当至少是基于八叉树的点的数量,以确保可以将所有点的颜色映射到图像I上。例如,可以将一百万基于八叉树的点映射到1024x1024像素的图像I。
具体3D路径和/或具体2D路径可以在比特流F1中存储和/或传输。
根据实施例,信息数据(诸如比特集合)被存储和/或传输,以表示具体的3D和/或2D路径。所述信息数据可以表示列出若干候选3D和/或2D路径的表的索引。
根据步骤800的实施例,模块M9向全局基于八叉树的结构GO的每个节点指派具体的数字LNk,以唯一地识别包括在与叶节点相关联的叶立方体中的每个叶点。
例如,指派给子节点的具体数字LNk由下式给出:
LNk=8*PNk+nk (3)
其中PNk是指派给子节点的父节点的具体数字,并且nk是指派给子节点的局部数字。
根据步骤800的实施例,具体3D路径是3D Hilbert路径,其被定义为3D Hilbert曲线的离散近似,如图9中所示。
在图9上,基于八叉树的结构O的父节点的八个子节点被表示为编号为0到7的八个顶点,这些顶点通过片段(segment)用符号连接。换句话说,与父节点相关联的立方体被拆分并且八个子立方体与顶点相关联。因此,遵循3D Hilbert路径,通过首先考虑顶点0、然后考虑顶点1,…,最后考虑顶点7来定义在给定深度级别的基于八叉树结构O。
因此,3D Hilbert路径允许根据具体排序来扫描基于八叉树的结构O的父节点的子节点。
3D Hilbert路径是递归路径并且图9中所示的具体排序应在基于八叉树的结构O的任何深度级别上被再现。
根据步骤800的实施例,具体3D路径被实现为朝向系统,其表征使用如图11中所示的沿着沿着连接八个顶点的片段移动的“飞机”的概念。
“飞机”可以沿着三个轴(前/后、上/下、右/左)移动,并且可以围绕每个轴旋转0、90、180或270度。
因此,如图12中所示,定义了“飞机”的24个朝向的设定的Ω,每个朝向由方向(前/后、上/下、右/左)和旋转角度(0、90,180或270度),并用数字0-23标记。
例如,朝向Ω=16与和0度旋转角组合的方向“后”对应,并且朝向Ω=10与和270度旋转角组合的方向“上”对应。
根据图13上所示的步骤800的实施例,模块M9根据先前指派给父节点的朝向Ωp并根据具体子节点编号次序向八个子节点中的每一个指派朝向{Ω0,...,Ω7}(步骤1310)和局部数字{n0,...,n7}(步骤1320)。这个具体子节点编号次序对所有节点全部定义一次,并且与朝向Ωp无关。
步骤1310和1320是递归的,以根据3D Hilbert路径向基于八叉树的结构GO的每个节点指派朝向(Ωm)和局部数字(nm)。
然后将具体数字LNk指派给基于八叉树的结构GO的每个节点(等式3),然后根据这些具体数字LNk对包括彩色点云IPC的点的叶立方体(与基于八叉树的结构GO的叶节点相关联)进行排序。
例如,当使用图14所示的具体节点编号次序时,将对(Ωm,nm)指派给叶立方体的每个顶点,如图15中所示。
本原理不限于任何具体的节点编号次序,而是扩展到任何节点编号次序。
本原理不限于3D Hilbert路径,并且可以遵循或不遵循类似于以上针对3DHilbert路径详述的节点编号的节点编号次序来使用其它具体的3D路径。
图16和17示出了具体2D路径的其它示例,诸如Z扫描曲线(图16)或Peano曲线(图17)。读者将理解的是,这些具体的2D路径也可以扩展到3D情况。
在步骤800之后,根据具体数字LNk对包括在基于八叉树的结构GO的叶节点的叶立方体中的叶点进行排序。
根据图18中所示的步骤810的实施例,根据光栅扫描,将每个有序的叶点的颜色指派给图像I的像素。
根据步骤810的实施例,如图19中所示,根据连续的2D Hilbert曲线的离散近似,将每个有序叶点的颜色指派给图像I的像素。
连续的Hilbert曲线及其离散近似都是有用的,因为它们给出了很好地保留局部性的3D到1D(步骤800)或1D到2D(步骤810)的空间映射。基本上这意味着,如果(x,y)是单位正方形内的2D点的坐标,并且d是到达那个2D点时沿着2D曲线的距离,那么具有附近的d值的2D点也将具有附近的(x,y)值。反过来并不总是成立。有时会出现(x,y)坐标接近但其d值相距甚远的点。这在单位立方体中具有坐标(x,y,z)的点的3D空间中也有效。保留局部性是有利的,因为当执行从3D几何图形到图像I的点扫描时,它允许保留颜色(纹理)空间相关性。2D图像/视频编解码器的压缩能力主要来自纹理空间相关性。因此,不保留这种相关性将导致图像I的压缩非常差。
图20a示意性地示出了根据本原理的示例的用于从至少一个比特流解码表示3D对象的点云的方法的步骤的图。
在步骤2000中,解码器DEC1从比特流F2中解码至少一个深度图像,该至少一个深度图像代表要解码的点云RPC的至少一部分的空间位置。
在步骤2010中,模块M10通过反投影所述至少一个解码的深度图像DI’i,j来获得反投影的点云IPPC,所述反投影由代表与投影的结构的至少一个体积Cj相关联的至少一个表面Fi,j的投影信息数据驱动。
根据步骤2010的优选实施例,体积Cj是立方体,表面是那个立方体的面,并且投影的结构是基于八叉树的投影的结构。
所述反投影类似于步骤120的处理。
根据2010的变体,模块M10解码代表所述至少一个表面Fi,j的集合的投影信息数据。投影信息数据从至少一个表面驱动反投影以获得反投影的点云IPPC。
在步骤2010的变体中,可以由解码器预先知道投影的结构。
在步骤2010的变体中,模块M10还解码代表投影的结构(体积Cj的集合和与这些体积相关联的表面Fi,j)的投影信息数据。
在步骤2010的另一个变体中,模块M10还解码代表投影的结构的投影信息数据,该投影的结构是基于八叉树的投影的结构(立方体QCj的集合和立方体的面Fij)。
在步骤2020中,模块M11从比特流F1解码第一八叉树信息数据FOID。
在步骤2030中,模块M12从第一八叉树信息数据FOID获得基于八叉树的结构IO。
在步骤2020中,模块M11从比特流F1解码叶节点信息数据FLID,并且在步骤2040中,模块M13确定与基于八叉树的结构IO的叶节点相关联的LOUk是否与来自所述第一叶节点信息数据FLID的局部基于八叉树的结构Ok相关联。
如果第一叶节点信息数据FLID指示本地基于八叉树的结构Ok已经与LOUk相关联,那么在步骤2020中,模块M11从比特流F1解码八叉树信息数据SOID和叶节点信息数据SLID,在步骤2050中,模块M14从所述八叉树信息数据SOID获得用于所述LOUk的局部基于八叉树的结构Ok,并且在步骤2060中,模块M15确定所述本地基于八叉树的结构Ok的叶立方体是否包括代表来自所述叶节点信息数据SLID的点云IPC的一部分的叶点。在这种情况下,在步骤2060中,模块M15将优选地位于其所属的叶立方体的中心的所述叶点添加到所述局部基于八叉树的结构Ok。
在步骤2070中,模块M16通过用局部基于八叉树的结构Ok替换基于八叉树的结构IO的至少一个叶节点来获得全局基于八叉树的结构GO。
因此,全局基于八叉树的结构GO由从附加到LOUk的所有本地基于八叉树的结构Ok的叶立方体获得的所有叶点形成。
在步骤2080中,模块M17通过将所述反投影的点云IPPC和全局基于八叉树的结构GO融合来获得解码的点云RPC。
解码的点云RPC的点的空间位置是点云IPC的几何形状的近似。
根据实施例,可以通过对比特流F1进行熵解码来获得八叉树信息数据FOID、叶节点信息数据FLID、八叉树信息数据SOID和/或叶节点信息数据SLID。熵解码可以符合类似CABAC的编码。
根据该方法的变体,在步骤2000中,解码器DEC1从比特流F2解码每个深度图像DIi,j的纹理图像TIi,j。然后形成至少一对解码的纹理TI’i,j和解码的深度图像DI’i,j。
根据步骤2000的实施例,解码器DEC1是类似HEVC的解码器(AVC、H264、H265等)。
根据步骤2000的实施例,解码器DEC1通过考虑与所述深度图像相关联的纹理图像来对深度图像进行解码。
根据步骤2000的实施例,解码器DEC1是符合3D-HEVC的。
根据步骤2010的变体,模块M10通过反投影所述至少一个解码的深度图像DI’i,j和所述至少一个解码的纹理图像TI’i,j来获得反投影的点云IPPC。
解码的点云RPC的点的空间位置是点云IPC的几何形状的近似,并且反投影的点云的点的颜色近似点云IPC的一些点的颜色。可以通过对反投影的点云的点的颜色进行插值来获得解码的点云RPC的其它点的颜色。
根据图20b中所示的方法的实施例,在步骤2090(可选)中,解码器DEC2对来自比特流F3的编码图像I进行解码,以获得解码的图像I’。
根据步骤2090的实施例,解码器DEC2符合老式解码器(诸如JPEG、AVC或HEVC)。
在步骤2100中,模块M18通过根据具体的3D路径扫描全局基于八叉树的结构GO的叶节点来对全局基于八叉树的结构GO的叶节点进行排序。
步骤2100的排序类似于步骤800的排序,并且可以基于指派给全局基于八叉树的结构GO(图8)的每个叶节点的数字。
然后获得有序叶立方体的列表,其包括代表点云IPC的至少一部分的叶点。
在步骤2110中,模块M19通过根据具体的2D路径和与全局基于八叉树的结构GO的叶节点相关联的有序叶立方体扫描解码的图像I’来获得解码的点云IIPC的点的颜色。
例如,如图21所示,当具体的2D路径是光栅次序时,解码的图像I’的左上像素的颜色是有序叶立方体的列表的第一叶立方体(点)(25)的颜色,相邻像素的颜色是有序叶立方体的列表的第二个点(2)的颜色,依此类推。
根据步骤2080的实施例,模块M17通过融合所述反投影的点云IPPC和所述解码的点云IIPC来获得解码的点云RPC。
可能会发生反投影点云IPPC的一个点和全局基于八叉树的结构GO的另一个点完全属于3D空间的相同位置的情况。在这种情况下,在所述位置处,这两个点仅被一个点替换,其颜色是这两个点的平均颜色。
因此,通过所述解码的点云RPC来近似点云IPC的几何形状和颜色。
根据步骤2020的实施例,模块M11从比特流F1解码3D和/或2D路径。
已经通过考虑与基于八叉树的结构IO的叶节点相关联的叶立方体LOUk描述了本原理。
根据编码和解码方法的实施例,考虑包含点云IPC的至少一个点的立方体C,而不是LOUk。
然后将点云IPC编码如下:
步骤100-120保持不变,并且步骤130和140被移除。
在步骤150中,通过优化用于对近似包括在所述包含立方体中的点云的点Pk,or的几何形状的候选的基于八叉树的近似结构Ok,n进行编码的比特率Rk,n与失真Dk,n之间的折衷,模块M5确定局部基于八叉树的结构Ok是否与所述包含立方体相关联,所述失真考虑一方面所述包含立方体C中所包括的点云的所述点Pk,or和另一方面与候选的基于八叉树的结构Ok,n的叶节点相关联的叶立方体中所包括的点Pk,n连同所述包含立方体中所包括的反投影的点云IPPC的点Pk,IP一起之间的空间距离。
在步骤150中,模块M5对叶节点信息数据FLID进行编码,该叶节点信息数据FLID指示是否已经为所述包含立方体确定了局部基于八叉树的结构Ok;
-如果所述叶节点信息数据FLID指示已经为所述包含立方体确定了局部基于八叉树的结构Ok,那么
-在步骤160中,对代表所述确定的局部基于八叉树的结构Ok的八叉树信息数据SOID进行编码;以及
-在步骤170中,对叶节点信息数据SLID进行编码,该叶节点信息数据SLID指示所述局部基于八叉树的结构Ok的叶立方体是否包括代表点云的一部分的点。
根据解码方法的实施例,考虑包括表示将被解码的点云的至少一部分的至少一个点的包含立方体,而不考虑LOUk。然后,全局基于八叉树的结构GO可以等于单个局部基于八叉树的结构Ok(步骤2070)。
然后将点云IPC解码如下:
步骤2000和2010被取消。
在步骤2020中,从比特流F1解码叶节点信息数据FLID,该叶节点信息数据FLID指示是否已经为所述包含立方体确定了局部基于八叉树的结构Ok。
如果所述叶节点信息数据FLID指示已经为所述包含立方体确定了局部基于八叉树的结构Ok,
-在步骤2020中,从比特流F1解码代表所述确定的局部基于八叉树的结构Ok的八叉树信息数据SOID和指示所述局部基于八叉树的结构Ok的叶立方体是否包括代表点云的一部分的点的叶节点信息数据SLID;
-在步骤2050中,从所述八叉树信息数据SOID中获得用于所述包含立方体的局部基于八叉树的结构Ok;
-在步骤2060中,确定所述局部基于八叉树的结构Ok的叶立方体是否包括要从所述叶节点信息数据SLID解码的点云的点,并且在这种情况下,将叶点添加(2060)到所述局部基于八叉树的结构的叶立方体Ok。
在步骤2080中,通过融合所述反投影的点云IPPC和所述局部基于八叉树的结构Ok来获得解码的点云。
在步骤2100中,通过根据具体的3D路径扫描全局基于八叉树的结构GO的叶节点来对所述局部基于八叉树的结构Ok的叶节点进行排序。
在步骤2110中,通过根据具体的2D路径和与所述局部基于八叉树的结构的叶节点相关联的有序叶立方体进行扫描来扫描解码的图像I’,获得解码的点云IIPC的点的颜色。在图1-21中,模块是功能单元,可以与可区分的物理单元相关或不相关。在图1-10上,模块是功能单元,其可以与可区分的物理单元相关或不相关。例如,这些模块或其中一些模块可以集成在一个独特的组件或电路中,或者有助于软件的功能。相反,一些模块可以潜在地由分离的物理实体组成。或者使用纯硬件,例如使用专用硬件(诸如ASIC或FPGA或VLSI,分别代表“专用集成电路”、“现场可编程门阵列”、“超大规模集成”),或者从嵌入在设备中的多个集成电子组件或者从硬件和软件组件的混合来实现与本原理兼容的装置。
图22表示设备1100的示例性体系架构,其可以被配置为实现关于图1-10所描述的方法。
设备2200包括以下元件,这些元件通过数据和地址总线2201链接在一起:
-微处理器2202(或CPU),例如,DSP(或数字信号处理器);
-ROM(或只读存储器)2203;
-RAM(或随机存取存储器)2204;
-I/O接口2205,用于接收来自应用的要传输的数据;以及
-电池2206。
根据示例,电池2206在设备外部。在每个提到的存储器中,说明书中使用的词“寄存器”可以与容量小的区域(几比特)或者与非常大的区域(例如整个程序或大量接收或解码的数据)对应。ROM 2203包括至少程序和参数。ROM 2203可以存储算法和指令以执行根据本原理的技术。在接通电源后,CPU 2202将程序上传到RAM中并执行对应的指令。
RAM 2204在寄存器中包括由CPU 2202执行并在设备2200接通电源后上传的程序、寄存器中的输入数据、寄存器中处于方法的不同状态的中间数据以及寄存器中其它用于执行方法的变量。
本文描述的实施方式可以例如以方法或处理、装置、软件程序、数据流或信号来实现。即使仅在单一形式的实施方式的上下文中进行讨论(例如,仅作为方法或设备进行讨论),所讨论的特征的实施方式也可以以其它形式(例如程序)实现。装置可以例如以适当的硬件、软件和固件来实现。该方法可以在例如装置中实现,诸如例如处理器,其是指处理设备,一般而言包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机、蜂窝电话、便携式/个人数字助理(PDA)和其它促进终端用户之间的信息通信的设备。
根据编码或编码器的示例,从源获得点云IPC。例如,源属于包括以下内容的集合:
-本地存储器(2203或2204),例如视频存储器或RAM(或随机存取存储器)、闪存、ROM(或只读存储器)、硬盘;
-存储接口(2205),例如与大容量存储装置、RAM、闪存、ROM、光盘或磁性支架的接口;
-图像捕获电路(例如,传感器,诸如例如CCD(或电荷耦合器件)或CMOS(或互补金属氧化物半导体))。
根据解码或解码器的示例,将解码的彩色点云CPC发送到目的地;具体而言,目的地属于包括以下内容的集合:
-本地存储器(2203或2204),例如视频存储器或RAM、闪存、硬盘;
-存储接口(2205),例如与大容量存储装置、RAM、闪存、ROM、光盘或磁性支架的接口;
-渲染设备;以及
-显示器。
根据编码或编码器的示例,将比特流F1-F3发送到目的地。作为示例,比特流F1-F3中的至少一个存储在本地或远程存储器中,例如视频存储器(2204)或RAM(2204)、硬盘(2203)。在变体中,比特流F1-F3中的至少一个被发送到存储接口(2205)(例如与大容量存储装置、闪存、ROM、光盘或磁性支架的接口),和/或通过通信接口(2205)(例如到点对点链路、通信总线、点对多点链路或广播网络的接口)传输。
根据解码或解码器的示例,从源获得比特流F1-F3中的至少一个。示例性地,从本地存储器(例如视频存储器(2204)、RAM(2204)、ROM(2203)、闪存(2203)或硬盘(2203))读取比特流。在变体中,从存储接口(2205)(例如与大容量存储装置、RAM、ROM、闪存、光盘或磁性支架的接口)接收比特流,和/或从通信接口(2205)(例如对点对点链路、总线、点对多点链路或广播网络的接口)接收比特流。
根据示例,被配置为实现关于图1-19所描述的编码方法的设备2200属于包括以下内容的集合:
-移动设备;
-具有3D捕捉功能的智能电话或电视机;
-通信设备;
-游戏设备;
-平板电脑(或平板计算机);
-膝上型计算机;
-静止图像相机;
-摄像机;
-编码芯片;
-静止图像服务器;以及
-视频服务器(例如,广播服务器、视频点播服务器或web服务器)。
根据示例,被配置为实现关于图20-21描述的解码方法的设备2000属于包括以下内容的集合:
-移动设备;
-头戴式显示器(HMD);
-(混合现实)智能眼镜;
-全息设备;
-通信设备;
-游戏设备;
-机顶盒;
-电视机;
-平板电脑(或平板计算机);
-膝上型计算机;
-显示器;
-立体显示器;以及
-解码芯片。
根据图23中所示的本原理的示例,在通过通信网络NET的两个远程设备A和B之间的传输上下文中,设备A包括与存储器RAM和ROM相关的处理器,该处理器被配置为实现如关于图1-19描述的用于对点云进行编码的方法,并且设备B包括与存储器RAM和ROM相关的处理器,该处理器被配置为实现如关于图20-21描述的用于解码的方法。
根据示例,网络是广播网络,适于从设备A向包括设备B的解码设备广播编码的彩色点云。
旨在由设备A传输的信号携带比特流F1-F3中的至少一个。
因此,这个信号可以携带至少一个深度图像DIi,j,以及可选地与每个深度图像相关联的纹理图像TIi,j,该纹理图像TIi,j是通过将点云IPC的点投影到基于八叉树的投影的结构的面Fi,j上而获得的,以及代表面并可选地代表基于八叉树的投影的结构的投影信息数据。
该信号可以携带代表基于八叉树的结构IO的第一八叉树信息数据FOID。
对于每个LOUk,该信号还可以携带与所述基于八叉树的结构IO的叶节点相关联的第一叶节点信息数据FLID,该第一叶节点信息数据FLID指示是否已经为所述LOUk确定了局部基于八叉树的结构Ok。
该信号还可以携带代表局部基于八叉树的结构Ok的第二八叉树信息数据SOID,以及指示所述局部基于八叉树的结构Ok的叶立方体是否包括代表点云IPC的一部分的点的第二叶节点信息数据SLID。
该信号还可以携带代表2D和/或3D路径的信息数据。
该信号还可以携带编码的图像I。
图24示出了当通过基于分组的传输协议传输数据时这种信号的语法的示例。每个传输的分组P包括报头H和有效载荷PAYLOAD。
根据实施例,有效载荷PAYLOAD可以包括以下元素中的至少一个:
-代表至少一个纹理图像TIi,j和一个深度图像DIi,j的一对的比特;
-代表第一八叉树信息数据FOID的至少一个二进制标志;
-代表第二八叉树信息数据SOID的至少一个二进制标志;
-代表立方体拆分的最大深度的至少一个比特;
-代表第一叶节点信息数据FLID的至少一个二进制标志;
-代表第二叶节点信息数据SLID的至少一个二进制标志;
-代表编码的图像I的比特。
本文描述的各种处理和特征的实施方式可以在各种不同的装备或应用中实施。这种装备的示例包括编码器、解码器、处理来自解码器的输出的后处理器、将输入提供给编码器的预处理器、视频编码器、视频解码器、视频编解码器、web服务器、机顶盒、膝上型计算机、个人计算机、蜂窝电话、PDA、HMD、智能眼镜以及用于处理图像或视频的任何其它设备或者其它通信设备。应当清楚的是,装备可以是移动的,甚至可以安装在移动车辆中。
此外,可以通过由处理器执行的指令来实现方法,并且可以将这样的指令(和/或由实施方式产生的数据值)存储在计算机可读存储介质上。计算机可读存储介质可以采取实施在一个或多个计算机可读介质中并且具有在其上实施的可由计算机执行的计算机可读程序代码的计算机可读程序产品的形式。给定在其中存储信息的固有能力以及提供从中检索信息的固有能力,如本文使用的计算机可读存储介质被认为是非暂态存储介质。计算机可读存储介质可以是例如但不限于电子、磁、光学、电磁、红外或半导体系统、装置或设备,或前述的任意合适组合。应该认识到的是,以下内容虽然提供了可以对其应用本原理的计算机可读存储介质的更多具体示例,但仅仅是说明性列表,而不是详尽列表,如本领域普通技术人员容易认识到的:便携式计算机软盘;硬盘只读存储器(ROM);可擦可编程只读存储器(EPROM或闪存);便携式光盘只读存储器(CD-ROM);光学存储设备;磁存储设备;或上述内容的任意合适组合。
指令可以形成有形地实施在处理器可读介质上的应用。
指令可以是例如硬件、固件、软件或其组合。指令可以在例如操作系统、单独的应用或两者的组合中找到。因此,处理器的特征可以在于例如被配置为执行处理的设备和包括具有用于执行处理的指令的处理器可读介质(诸如存储设备)的设备。另外,除了或替换指令,处理器可读介质还可以存储由实施方式产生的数据值。
对于本领域技术人员将显而易见的是,实施方式可以产生各种信号,这些信号被格式化以携带例如可以被存储或传输的信息。信息可以包括例如用于执行方法的指令或由所描述的实施方式之一产生的数据。例如,信号可以被格式化为携带用于写入或读取本原理的所述示例的语法的规则作为数据,或者携带由本原理的所述示例写入的实际语法值作为数据。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码并且利用编码的数据流来调制载波。信号携带的信息可以是例如模拟或数字信息。如已知的,信号可以通过各种不同的有线或无线链路传输。信号可以存储在处理器可读介质上。
已经描述了许多实施方式。不过,将理解的是,可以进行各种修改。例如,不同实施方式的元素可以被组合、补充、修改或移除以产生其它实施方式。此外,本领域普通技术人员将理解的是,可以用其它结构和处理替换所公开的结构和处理,并且结果产生的实施方式将以至少基本上相同的(一种或多种)方式执行至少基本上相同的(一个或多个)功能,以实现至少与所公开的实施方式基本上相同的(一个或多个)结果。因而,本申请考虑这些和其它实施方式。
Claims (24)
1.一种方法,包括:
a)通过优化用于编码候选的基于八叉树的结构(Ok.n)的比特率(Rk.n)与失真(Dk.n)之间的折衷来确定(150)是否通过候选的基于八叉树的结构(Ok.n)的至少一个候选点(Pk,n)来近似与表示点云的几何形状的基于八叉树的结构(IO)的叶节点相关联的叶立方体中所包括的点云的原始点(Pk,or),其中失真(Dk.n)是从一方面所述原始点(Pk,or)和另一方面所述候选点(Pk,n)连同反投影点云(IPPC)的点(Pk,IP)一起之间的空间距离获得的,所述反投影点云包括在通过反投影至少一个深度图像获得的所述包含立方体中;
b)对第一叶节点信息数据(FLID)进行编码,该信息指示是否已经确定了候选的基于八叉树的结构以近似所述原始点(Pk,or);
c)如果所述原始点(Pk,or)由至少一个候选点(Pk,n)近似,那么对所述候选的基于八叉树的结构进行编码。
2.一种设备,包括处理器,该处理器被配置为:
-通过优化用于编码所述候选的基于八叉树的结构(Ok.n)的比特率(Rk.n)与失真(Dk.n)之间的折衷来确定(150)是否通过候选的基于八叉树的结构(Ok.n)的至少一个候选点(Pk,n)来近似与表示点云的几何形状的基于八叉树的结构(IO)的叶节点相关联的叶立方体中所包括的点云的原始点(Pk,or),其中失真(Dk.n)是从一方面所述原始点(Pk,or)和另一方面所述候选点(Pk,n)连同反投影点云(IPPC)的点(Pk,IP)一起之间的空间距离获得的,所述反投影点云包括在通过反投影至少一个深度图像获得的所述包含立方体中;
-对第一叶节点信息数据(FLID)进行编码,该信息指示是否已经确定了候选的基于八叉树的结构以近似所述原始点(Pk,or);
-如果所述原始点(Pk,or)被至少一个候选点(Pk,n)近似,那么对所述候选的基于八叉树的结构进行编码。
3.如权利要求1所述的方法或如权利要求2所述的设备,其中对所述候选的基于八叉树的结构进行编码包括:
-对代表所述候选的基于八叉树的结构的八叉树信息数据(SOID)进行编码;以及
-对第二叶节点信息数据(SLID)进行编码,该第二叶节点信息数据指示与所述候选的基于八叉树的结构(Ok)的叶节点相关联的叶立方体是否包括位于其中心的单个候选点。
4.如权利要求1或3中的一项所述的方法或如权利要求2或3中的一项所述的设备,其中所述方法还包括获取(120)或所述设备的处理器被配置为通过反投影所述至少一个编码的深度图像(DIi,j)来获得反投影的点云(IPPC),其中所述至少一个编码的深度图像(DIi,j)是通过将点云的点投影到与投影的结构的体积(Cj)相关联的至少一个表面(Fi,j)上而获得的。
5.如权利要求1、3-4中的一项所述的方法或如权利要求2-4中的一项所述的设备,其中所述反投影由代表所述至少一个表面(Fi,j)的投影信息数据驱动。
6.如权利要求4-5中的一项所述的方法或设备,其中投影信息数据代表投影的结构。
7.如权利要求5或6所述的方法或设备,其中所述方法还包括对所述投影信息数据进行编码,或者所述设备的处理器还被配置为对所述投影信息数据进行编码。
8.如权利要求4-7中的一项所述的方法或设备,其中体积(Cj)是立方体,表面(Fi,j)是所述立方体的面,并且投影的结构是基于八叉树的投影的结构。
9.如权利要求1、3-8中的一项所述的方法或如权利要求2-8中的一项所述的设备,其中所述方法还包括:
-通过递归地拆分所述包含立方体(C)直到与所述基于八叉树的结构(IO)的叶节点相关联的叶立方体(LOUk)达到期望尺寸,确定(130)包括至少一个立方体的基于八叉树的结构(IO);
-对代表基于八叉树的结构(IO)的另一个八叉树信息数据(FOLD)进行编码(140);以及
-根据步骤a-c)对与所述基于八叉树的结构(IO)的叶节点相关联的每个叶立方体(LOUk)进行编码。
10.如权利要求2-8中的一项所述的设备,其中所述设备的处理器还被配置为:
-通过递归地拆分所述包含立方体(C)直到与所述基于八叉树的结构(IO)的叶节点相关联的叶立方体(LOUk)达到期望尺寸,确定包括至少一个立方体的基于八叉树的结构(IO);
-对代表基于八叉树的结构(IO)的另一个八叉树信息数据(FOLD)进行编码;以及
-根据步骤a-c)对与所述基于八叉树的结构(IO)的叶节点相关联的每个叶立方体(LOUk)进行编码。
11.如权利要求1、3-9中的一项所述的方法或如权利要求2-8或10中的一项所述的设备,其中所述方法还包括获得(100)或者所述设备的处理器还被配置为通过将点云的点投影到表面(Fi,j)上来获得每个深度图像的纹理图像(TIi,j)。
12.如权利要求11所述的方法或设备,其中对深度图像进行编码取决于与所述深度图像相关联的纹理图像。
13.如权利要求1、3-9、11-12或权利要求2-8中的一项所述的方法,其中,通过对所述至少一个深度图像(DIi,j)进行编码和解码并且通过反投影所述至少一个解码的深度图像(DIi,j),或者通过对所述至少一个深度图像(DIi,j)和每个深度图像至少一个纹理图像(TIi,j)进行编码和解码并且通过反投影所述至少一个解码的深度图像(DIi,j)和所述至少一个解码的纹理图像(TIi,j),获得反投影的点云。
14.一种方法,包括:
d)如果第一叶节点信息数据(FLID)指示已经确定了局部基于八叉树的结构(Ok)用于近似与表示所述点云的几何形状的基于八叉树的结构(IO)的叶节点相关联的叶立方体中所包括的点云的原始点(Pk,or),那么
e)从八叉树信息数据(SOID)获得用于所述叶立方体(LOUk)的局部基于八叉树的结构(Ok);
f)如果第二叶节点信息数据(SLID)指示与所述局部基于八叉树的结构(Ok)的叶节点相关联的叶立方体包括单个点,那么在所述叶立方体的中心添加单个点;
j)通过将所述局部基于八叉树的结构(Ok)与通过反投影(2010)至少一个深度图像而获得的反投影的点云(IPPC)融合来获得(2080)解码的点云,所述反投影由代表至少一个表面(Fi,j)的投影信息数据驱动。
15.一种设备,包括处理器,所述处理器被配置为:
-如果第一叶节点信息数据(FLID)指示已经确定了局部基于八叉树的结构(Ok)用于近似与表示所述点云的几何形状的基于八叉树的结构(IO)的叶节点相关联的叶立方体中所包括的点云的原始点(Pk,or),那么
-从八叉树信息数据(SOID)获得用于所述叶立方体(LOUk)的局部基于八叉树的结构(Ok);
-如果第二叶节点信息数据(SLID)指示与所述局部基于八叉树的结构(Ok)的叶节点相关联的叶立方体包括单个点,那么在所述叶立方体的中心添加单个点;
-通过将所述局部基于八叉树的结构(Ok)与通过反投影至少一个深度图像而获得的反投影的点云(IPPC)融合来获得解码的点云,所述反投影由代表至少一个表面(Fi,j)的投影信息数据驱动。
16.如权利要求14所述的方法或如权利要求15所述的设备,其中表面(Fi,j)是基于八叉树的投影的结构的立方体(Cj)的面。
17.如权利要求14或16中的一项所述的方法或如权利要求15-16中的一项所述的设备,其中所述方法还包括解码代表所述至少一个表面(Fi,j)的投影信息数据,并且所述设备的处理器还被配置为解码代表所述至少一个表面(Fi,j)的投影信息数据。
18.如权利要求14或16-17中的一项所述的方法或如权利要求15-17中的一项所述的设备,其中所述方法还包括解码代表基于八叉树的投影的结构的投影信息数据,并且所述设备的处理器还被配置为解码代表基于八叉树的投影的结构的投影信息数据。
19.如权利要求14或16-18中的一项所述的方法或如权利要求15-18中一项所述的设备,其中所述方法还包括通过以下步骤获得全局基于八叉树的结构(GO)或所述设备的处理器还配置为通过以下步骤获得全局基于八叉树的结构(GO):
-从另一个八叉树信息数据(FOID)获得(2030)基于八叉树的结构(IO);以及
-对于所述基于八叉树的结构(IO)的每个叶立方体(LOUk),
-根据步骤d-j)获得(2020,2040,2050,2060)用于所述叶立方体(LOUk)的局部基于八叉树的结构(Ok);
-通过用所述局部基于八叉树的结构(Ok)替换与所述叶立方体(LOUk)相关联的基于八叉树的结构(IO)的叶节点,获得(2070)全局基于八叉树的结构(GO);以及
-通过融合所述反投影的点云(IPPC)和所述全局基于八叉树的结构(GO)来获得(2080)解码的点云。
20.如权利要求14或16-19中的一项所述的方法或如权利要求15-19中的一项所述的设备,其中所述方法还包括解码(2000)每个深度图像的纹理图像(TIi,j),并且所述设备的处理器还被配置为解码每个深度图像的纹理图像(TIi,j)。
21.如权利要求19所述的方法或设备,其中解码深度图像取决于与所述深度图像相关联的纹理图像。
22.一种信号,其携带通过将点云(IPC)的点正交投影到表面(Fi,j)上而获得的至少一个深度图像(DIi,j)以及指示是否已经为包括所述输入彩色点云(IPC)的至少一个点的包含立方体确定了局部基于八叉树的结构(Ok)的第一叶节点信息数据(FLID)。
23.如权利要求22所述的信号,其中对于与所述基于八叉树的结构(IO)的叶节点相关联的每个叶立方体,该信号还携带代表基于八叉树的结构(IO)的第一八叉树信息数据(FOID)、指示是否已经为所述叶立方体确定了局部基于八叉树的结构(Ok)的第一叶节点信息数据(FLID)。
24.如权利要求22或23所述的信号,其中该信号还携带代表局部基于八叉树的结构(Ok)的第二八叉树信息数据(SOID),以及指示所述局部基于八叉树的结构(Ok)的叶立方体是否包括代表点云(IPC)的一部分的点的第二叶节点信息数据(SLID)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17305930.4 | 2017-07-13 | ||
EP17305930.4A EP3429209A1 (en) | 2017-07-13 | 2017-07-13 | A method and apparatus for encoding/decoding a point cloud representing a 3d object |
PCT/EP2018/068038 WO2019011740A1 (en) | 2017-07-13 | 2018-07-04 | METHOD AND APPARATUS FOR ENCODING / DECODING A POINT CLOUD REPRESENTING A 3D OBJECT |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110892725A true CN110892725A (zh) | 2020-03-17 |
Family
ID=59592972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880046727.XA Pending CN110892725A (zh) | 2017-07-13 | 2018-07-04 | 一种用于编码/解码表示3d对象的点云的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200211232A1 (zh) |
EP (2) | EP3429209A1 (zh) |
CN (1) | CN110892725A (zh) |
WO (1) | WO2019011740A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111680095A (zh) * | 2020-06-10 | 2020-09-18 | 上海城市地理信息系统发展有限公司 | 一种处理点云数据的方法、装置和电子设备 |
CN114049355A (zh) * | 2022-01-14 | 2022-02-15 | 杭州灵西机器人智能科技有限公司 | 一种散乱工件的识别标注方法、系统和装置 |
CN114079793A (zh) * | 2020-08-16 | 2022-02-22 | 浙江大学 | 一种基于新的处理顺序的点云属性解码方法和装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2020032004A1 (ja) * | 2018-08-06 | 2021-08-10 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 三次元データ格納方法、三次元データ取得方法、三次元データ格納装置、及び三次元データ取得装置 |
AU2020303920B2 (en) * | 2019-06-26 | 2023-02-02 | Tencent America LLC | Implicit quadtree or binary-tree geometry partition for point cloud coding |
JP2022544571A (ja) * | 2019-08-14 | 2022-10-19 | エルジー エレクトロニクス インコーポレイティド | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法。 |
US11263722B2 (en) * | 2020-06-10 | 2022-03-01 | Mediatek Inc. | Video processing method for remapping sample locations in projection-based frame with hemisphere cubemap projection layout to locations on sphere and associated video processing apparatus |
CN113434514B (zh) * | 2021-07-19 | 2022-08-19 | 中海油能源发展装备技术有限公司 | 一种海上油气田点云模型的体素化索引和输出方法 |
EP4345752A1 (en) * | 2022-09-28 | 2024-04-03 | Beijing Xiaomi Mobile Software Co., Ltd. | Encoding/decoding positions of points of a point cloud comprised in cuboid volumes |
CN117011475B (zh) * | 2023-09-28 | 2023-12-19 | 四川易利数字城市科技有限公司 | 一种基于八叉树的多源数据空间融合方法 |
CN117152040B (zh) * | 2023-10-26 | 2024-02-23 | 埃洛克航空科技(北京)有限公司 | 一种基于深度图的点云融合方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2514655A1 (en) * | 2001-11-27 | 2003-05-27 | Samsung Electronics Co., Ltd. | Apparatus and method for depth image-based representation of 3-dimensional object |
EP1321894A2 (en) * | 2001-11-27 | 2003-06-25 | Samsung Electronics Co., Ltd. | Apparatus and method for representing 3-dimensional objects unsing depth images |
US6999073B1 (en) * | 1998-07-20 | 2006-02-14 | Geometrix, Inc. | Method and system for generating fully-textured 3D |
CN1790421A (zh) * | 2001-11-27 | 2006-06-21 | 三星电子株式会社 | 基于深度图像表示三维物体的装置和方法 |
US20090213240A1 (en) * | 2008-02-25 | 2009-08-27 | Samsung Electronics Co., Ltd. | Method and apparatus for processing three-dimensional (3D) images |
CN104616345A (zh) * | 2014-12-12 | 2015-05-13 | 浙江大学 | 一种基于八叉树森林压缩的三维体素存取方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2216781C2 (ru) * | 2001-06-29 | 2003-11-20 | Самсунг Электроникс Ко., Лтд | Основанные на изображениях способ представления и визуализации трехмерного объекта и способ представления и визуализации анимированного объекта |
EP1431919B1 (en) * | 2002-12-05 | 2010-03-03 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding three-dimensional object data by using octrees |
-
2017
- 2017-07-13 EP EP17305930.4A patent/EP3429209A1/en not_active Withdrawn
-
2018
- 2018-07-04 WO PCT/EP2018/068038 patent/WO2019011740A1/en unknown
- 2018-07-04 US US16/630,501 patent/US20200211232A1/en not_active Abandoned
- 2018-07-04 EP EP18734573.1A patent/EP3652942A1/en not_active Withdrawn
- 2018-07-04 CN CN201880046727.XA patent/CN110892725A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6999073B1 (en) * | 1998-07-20 | 2006-02-14 | Geometrix, Inc. | Method and system for generating fully-textured 3D |
CA2514655A1 (en) * | 2001-11-27 | 2003-05-27 | Samsung Electronics Co., Ltd. | Apparatus and method for depth image-based representation of 3-dimensional object |
EP1321894A2 (en) * | 2001-11-27 | 2003-06-25 | Samsung Electronics Co., Ltd. | Apparatus and method for representing 3-dimensional objects unsing depth images |
CN1432969A (zh) * | 2001-11-27 | 2003-07-30 | 三星电子株式会社 | 基于深度图像表示三维物体的装置和方法 |
CN1790421A (zh) * | 2001-11-27 | 2006-06-21 | 三星电子株式会社 | 基于深度图像表示三维物体的装置和方法 |
US20090213240A1 (en) * | 2008-02-25 | 2009-08-27 | Samsung Electronics Co., Ltd. | Method and apparatus for processing three-dimensional (3D) images |
CN104616345A (zh) * | 2014-12-12 | 2015-05-13 | 浙江大学 | 一种基于八叉树森林压缩的三维体素存取方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111680095A (zh) * | 2020-06-10 | 2020-09-18 | 上海城市地理信息系统发展有限公司 | 一种处理点云数据的方法、装置和电子设备 |
CN111680095B (zh) * | 2020-06-10 | 2021-01-12 | 上海城市地理信息系统发展有限公司 | 一种处理点云数据的方法、装置和电子设备 |
CN114079793A (zh) * | 2020-08-16 | 2022-02-22 | 浙江大学 | 一种基于新的处理顺序的点云属性解码方法和装置 |
CN114079793B (zh) * | 2020-08-16 | 2023-02-28 | 浙江大学 | 一种基于新的处理顺序的点云属性解码方法和装置 |
CN114049355A (zh) * | 2022-01-14 | 2022-02-15 | 杭州灵西机器人智能科技有限公司 | 一种散乱工件的识别标注方法、系统和装置 |
CN114049355B (zh) * | 2022-01-14 | 2022-04-19 | 杭州灵西机器人智能科技有限公司 | 一种散乱工件的识别标注方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200211232A1 (en) | 2020-07-02 |
EP3652942A1 (en) | 2020-05-20 |
WO2019011740A1 (en) | 2019-01-17 |
EP3429209A1 (en) | 2019-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110892725A (zh) | 一种用于编码/解码表示3d对象的点云的方法和装置 | |
CN110870318A (zh) | 一种用于对表示3d物体的几何形状和颜色的彩色点云进行编码/解码的方法和装置 | |
CN110892726A (zh) | 用于编码/解码表示3d对象的点云的几何形状的方法和装置 | |
CN111433821B (zh) | 用于重建表示3d对象的点云的方法和装置 | |
CN110915219A (zh) | 用于对几何形状由基于八叉树的结构表示的有色点云的颜色进行编码/解码的方法和装置 | |
JP7488189B2 (ja) | 点群の幾何学的形状をコーディングする方法およびデバイス | |
CN110915216A (zh) | 用于编码/解码表示3d对象的几何形状和颜色的有色点云的方法和装置 | |
CN111095362A (zh) | 用于编码点云的方法和设备 | |
CN111417985A (zh) | 用于编码/解码表示3d对象的点云的几何形状的方法和设备 | |
EP3493158A1 (en) | A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object | |
JP2024079679A (ja) | 投影平面の少なくとも1つの画像領域に一度直交投影された3d点のセットの深度値を符号化するための方法 | |
CN111417984B (zh) | 用于对表示3d对象的点云的颜色进行编码/解码的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200317 |
|
WD01 | Invention patent application deemed withdrawn after publication |