CN114981842A - 点云的树内几何量化 - Google Patents

点云的树内几何量化 Download PDF

Info

Publication number
CN114981842A
CN114981842A CN202180008650.9A CN202180008650A CN114981842A CN 114981842 A CN114981842 A CN 114981842A CN 202180008650 A CN202180008650 A CN 202180008650A CN 114981842 A CN114981842 A CN 114981842A
Authority
CN
China
Prior art keywords
points
data structure
step size
tree
quantization step
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
Application number
CN202180008650.9A
Other languages
English (en)
Inventor
D·弗林
K·马莫
F·A·罗比内特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN114981842A publication Critical patent/CN114981842A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree 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)
  • Computer Graphics (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Or Creating Images (AREA)

Abstract

一种示例性设备包括一个或多个处理器和存储指令的存储器,这些指令在由这些处理器执行时使得这些处理器接收表示三维空间中的点云的点,并且生成表示该点云的数据结构。生成该数据结构包括:根据树数据结构将每个维度中的每个点的位置编码为位序列;根据缩放深度将这些序列中的每一者划分为两个或更多个部分;确定这些点的子集在空间上与这些点的其余部分隔离;根据第一量化步长大小对与这些点的该子集相关联的部分中的每一者进行量化;根据第二量化步长大小对与这些点的该其余部分相关联的部分中的每一者进行量化;以及将量化的部分包括在该数据结构中。

Description

点云的树内几何量化
相关申请的交叉引用
本申请要求于2020年1月9日提交的美国临时申请序列号62/959,105和2020年1月10日提交的美国临时申请序列号62/959,832的优先权,这些美国临时申请通过引用整体并入本文。
技术领域
本公开大体上涉及存储和处理关于包括多个点的点云的信息。
背景技术
各种类型的传感器(诸如光检测和测距(LIDAR)系统、3D相机、3D扫描仪等)可以捕获指示点在三维空间中的位置(例如在X、Y和Z平面中的位置)的数据。另外,此类系统除了针对相应点的空间信息之外还可捕获属性信息,诸如颜色信息(例如,RGB值)、强度属性、反射率属性、运动相关属性、模态属性或各种其他属性。在一些情况下,可以将附加属性分配给相应点,诸如捕获该点时的时间戳。由此类传感器捕获的点可以构成“点云”,该“点云”包括各自具有相关联的空间信息和一个或多个相关联的属性的一组点。在一些情况下,点云可以包括数千个点、数十万个点、数百万个点或甚至更多的点。另外,在一些情况下,与正由一个或多个传感器捕获的点云不同,可以例如在软件中生成点云。在任一种情况下,此类点云可包括大量数据,并且存储和传输这些点云可能成本高且耗时。
发明内容
在示例中,一种方法包括:由计算机系统接收表示三维空间中的点云的多个点;以及由计算机系统生成表示三维空间中的点云的数据结构。生成数据结构包括:针对每个点,将点在三维空间的每个维度中的位置表示为位序列,其中根据树数据结构表示点的位置;根据树数据结构的缩放深度将位序列中的每一者划分为位的第一部分和位的第二部分;确定该点的子集在空间上与点的其余部分隔离;根据第一量化步长大小对与点的子集相关联的位的第二部分中的每一者进行量化;根据第二量化步长大小对与点的其余部分相关联的位的第二部分中的每一者进行量化,其中第一量化步长大小与第二量化步长大小不同;将量化的位的第二部分包括在数据结构中;以及由计算机系统进行以下项中的至少一者:传输数据结构或存储数据结构。
该方面的具体实施可包括以下特征中的一者或多者。
在一些具体实施中,生成数据结构可以包括将指示第一量化步长大小的标头包括在数据结构中。
在一些具体实施中,确定点的子集在空间上与点的其余部分隔离可以包括确定在树数据结构的第一深度处点的子集在空间上与点的其余部分隔离,其中第一深度小于或等于缩放深度。响应于确定,根据第一量化步长大小可以对与点的子集相关联的位的第二部分中的每一者进行量化。
在一些具体实施中,确定在第一深度处,点的子集在空间上与点的其余部分隔离可以包括在第一深度处,点的子集占据树数据结构中的一个或多个第一节点,并且确定在第一深度处,点的其余部分占据树数据结构的一个或多个第二节点,其中一个或多个第一节点不与一个或多个第二节点中的任何一个节点相邻。
在一些具体实施中,树数据结构可以是八叉树。
在一些具体实施中,树数据结构可以包括根据多个树级别布置的多个节点。此外,多个节点中的第一节点可以明确地发信号通知点云中的多个点中的一个点的位置。可以根据来自树数据结构的多个树节点中的第一节点的树级别来约束量化参数和/或量化步长大小。
在另一方面,一种方法包括由计算机系统接收表示三维空间中的点云的数据结构,该点云具有多个点。针对每个点,数据结构包括对三维空间的每个维度中的点的位置进行编码的位序列,其中根据树数据结构对点的位置进行编码,对于点的子集,根据第一量化步长大小对对应位序列进行量化。对于点的其余部分,根据第二量化步长大小对该对应位序列进行量化,其中第一量化步长大小与第二量化步长大小不同。点的子集在空间上与点的其余部分隔离。该方法还包括由计算机系统基于数据结构确定点中的每个点的位置;以及由计算机系统输出点中的每个点的确定位置。
该方面的具体实施可包括以下特征中的一者或多者。
在一些具体实施中,基于数据结构确定点中的每个点的位置可以包括从数据结构中的标头检索对第一量化步长大小的指示,以及基于第一量化步长大小确定点的子集中的每个点的位置。
在一些具体实施中,树数据结构可以是八叉树。
在一些具体实施中,该方法可以包括基于点中的每个点的确定位置渲染三维内容。该三维内容可以是虚拟现实内容或增强现实内容中的至少一者。
在另一方面,一种方法包括由计算机系统接收表示三维空间中的点云的多个点;以及由计算机系统生成表示三维空间中的点云的数据结构。生成数据结构包括:针对每个点,将点在三维空间的每个维度中的位置表示为位序列,其中根据树数据结构表示点的位置。树数据结构包括多个树级别,每个树级别具有多个节点。第一树级别中的每个节点在第二树级别中具有第一数量的对应子节点,并且第二树级别中的每个节点在第三树级别中具有第二数量的对应子节点,其中第一数量不同于第二数量。生成数据结构还包括将指示第一数量和第一树级别的第一组参数以及指示第二数量和第二树级别的第二组参数包括在数据结构中。
该方面的具体实施可包括以下特征中的一者或多者。
在一些具体实施中,第一数量是整数的立方,并且第二数量不是整数的立方。
在一些具体实施中,该方法可以进一步包括确定第三树级别中的每个节点对第三树级别中的相邻节点的占用;基于所确定的第三树级别中的相邻节点的占用,对每个节点执行一个或多个数据处理步骤;以及在执行一个或多个数据处理步骤之后,相对于数据结构执行一个或多个量化或缩放步骤。
在一些具体实施中,相对于数据结构执行一个或多个量化或缩放步骤可以包括根据树数据结构的缩放深度将位序列中的每一者划分为位的两个或更多个部分。
在一些具体实施中,相对于数据结构执行一个或多个量化或缩放步骤可以进一步包括根据量化步长大小对位的至少一些部分进行量化;以及将量化的位序列包括在数据结构中。
在另一方面,一种方法包括由计算机系统接收表示三维空间中的点云的数据结构,该点云具有多个点。对于每个点,数据结构指示根据树数据结构编码的点的位置。树数据结构包括多个树级别,每个树级别具有多个节点。第一树级别中的每个节点在第二树级别中具有第一数量的对应子节点,并且第二树级别中的每个节点在第三树级别中具有第二数量的对应子节点,其中第一数量不同于第二数量。数据结构包括指示第一数量和第一树级别的第一组参数,以及指示第二数量和第二树级别的第二组参数。该方法还包括由计算机系统基于数据结构确定点中的每个点的位置;以及由计算机系统输出点中的每个点的确定位置。
该方面的具体实施可包括以下特征中的一者或多者。
在一些具体实施中,第一数量是整数的立方,并且第二数量不是整数的立方。
在一些具体实施中,基于数据结构确定每个点的位置可以包括从数据结构检索第一组参数和第二组参数;以及基于第一组参数和第二组参数确定第一树级别中的每个节点在第二树级别中具有第一数量的对应子节点,并且确定第二树级别中的每个节点在第三树级别中具有第二数量的对应子节点。
在一些具体实施中,树数据结构可以是八叉树。
在一些具体实施中,该方法可以包括基于点中的每个点的确定位置渲染三维内容。该三维内容可以是虚拟现实内容或增强现实内容中的至少一者。
其他具体实施涉及其上存储有指令的系统、设备和非暂态计算机可读介质,这些指令当由一个或多个处理器执行时使得该一个或多个处理器执行本文所述的操作。
在下面的附图和具体实施方式中阐述了一个或多个实施方案的细节。其他特征和优点将在具体实施方式和附图以及权利要求中显而易见。
附图说明
图1示出了系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的属性和/或空间信息的编码器,其中压缩的属性和/或空间信息被发送到解码器。
图2示出了空间和对应树数据结构的示例性递归划分。
图3A至图3E示出了根据树数据结构的点的示例性编码。
图4A至图4C示出了本文所描述的技术的示例性应用。
图5示出了空间和对应树数据结构的另一示例性递归划分。
图6A示出了生成表示点云的数据结构的示例性过程。
图6B示出了基于表示点云的数据结构渲染三维内容的示例性过程。
图7A示出了生成表示点云的数据结构的示例性过程。
图7B示出了基于表示点云的数据结构渲染三维内容的示例性过程。
图8示出了正在3D应用中使用的压缩点云信息。
图9示出了根据一些实施方案的正在虚拟现实应用中使用的压缩点云信息。
图10示出了可实现编码器或解码器的示例性计算机系统。
本说明书包括参考“一个实施方案”或“实施方案”。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
“包括”,该术语是开放式的。如在所附权利要求书中所使用的,该术语不排除附加结构或步骤。考虑以下引用的权利要求:“一种包括一个或多个处理器单元...的装置”此类权利要求不排除该装置包括附加部件(例如,网络接口单元、图形电路等)。
“被配置为”,各种单元、电路或其他部件可被\描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件据称可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件——例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引35U.S.C.§112(f)。此外,“被配置为”可包括由软件和/或固件(例如,FPGA或执行软件的通用处理器)操纵的通用结构(例如,通用电路)以能够执行待解决的一项或多项任务的方式操作。“被配置为”还可包括调整制造过程(例如,半导体制作设施),以制造适用于实现或执行一项或多项任务的设备(例如,集成电路)。
“第一”“第二”等。如本文所用,这些术语充当它们所在之前的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,缓冲电路在本文中可被描述为执行“第一”值和“第二”值的写入操作。术语“第一”和“第二”未必暗指第一值必须在第二值之前被写入。
“基于”。如本文所用,该术语用于描述影响确定的一个或多个因素。该术语不排除影响确定的附加因素。即,确定可仅基于这些因素或至少部分地基于这些因素。考虑短语“基于B来确定A”。在这种情况下,B为影响A的确定的因素,此类短语不排除A的确定也可基于C。在其他实例中,可仅基于B来确定A。
具体实施方式
随着数据采集和显示技术变得更加先进,增强了(诸如经由LIDAR系统)捕获包括2D或3D空间中成千上万个点的点云的能力。而且,先进显示技术(诸如虚拟现实或增强现实系统)的发展增加了点云的潜在用途。然而,点云文件通常非常大,并且存储和传输这些点云文件可能成本高且耗时。例如,点云通过私有网络或公共网络(诸如互联网)的通信可能需要相当大量的时间和/或网络资源,使得点云数据的一些使用(诸如实时使用)可能受到限制。另外,点云文件的存储要求可能消耗存储点云文件的设备的显著量的存储容量,这也可能限制潜在应用使用点云数据。
在一些实施方案中,编码器可用于生成压缩点云以降低与存储和传输大的点云文件相关联的成本和时间。在一些实施方案中,一种系统可包括编码器,该编码器压缩点云文件的属性信息或空间信息,使得点云文件可比非压缩点云更快地被存储和传输,并且以点云文件可比非压缩点云占用更少的存储空间的方式被存储和传输。在一些实施方案中,对点云中点的属性的压缩可使点云能够实时地或几乎实时地通过网络传送。例如,一种系统可包括传感器,该传感器捕获关于传感器所在的环境中的点的属性信息,其中所捕获的点和对应属性构成了点云。该系统还可包括压缩所捕获的点云的属性信息的编码器。点云的压缩属性信息可通过网络实时或几乎实时地发送到对点云的压缩属性信息进行解压缩的解码器。该解压缩点云可被进一步处理,例如以基于传感器位置处的周围环境做出控制决策。然后可将控制决策传送回传感器位置处或其附近的设备,其中接收控制决策的设备实时地或几乎实时地实现控制决策。在一些实施方案中,解码器可以与增强现实系统相关联,并且解压缩属性信息可以由增强现实系统显示或以其他方式使用。在一些实施方案中,可将关于点云的压缩属性信息与关于点云的点的压缩空间信息一起发送。在其他实施方案中,空间信息和属性信息可以被分别编码和/或分别发送到解码器。
在一些实施方案中,系统可包括解码器,该解码器经由网络从远程服务器或存储一个或多个点云文件的其他存储设备处接收包括压缩属性信息的一个或多个点云文件。例如,可实时地或几乎实时地操纵3D显示器、全息显示器或头戴式显示器来显示由点云表示的虚拟世界的不同部分。为了更新3D显示器、全息显示器或头戴式显示器,与解码器相关联的系统可以基于显示器的用户操纵从远程服务器请求点云文件,并且这些点云文件可以从远程服务器传输到解码器并由解码器实时地或几乎实时地进行解码。然后可用响应于用户操纵的更新点云数据(诸如更新的点属性)来更新显示器。
在一些实施方案中,一种系统可包括一个或多个LIDAR系统、3D相机、3D扫描仪等,并且此类传感器设备可捕获空间信息,诸如传感器设备的视图中的点的X、Y和Z坐标。在一些实施方案中,空间信息可相对于局部坐标系或可相对于全局坐标系(例如,笛卡尔坐标系可具有固定参考点诸如地球上的固定点,或者可具有不固定的局部参考点诸如传感器位置)。
在一些实施方案中,此类传感器还可以捕获关于一个或多个点的属性信息,诸如颜色属性、反射率属性、速度属性、加速度属性、时间属性、模态和/或各种其他属性。在一些实施方案中,除了LIDAR系统、3D相机、3D扫描仪等之外,其他传感器可以捕获待包括在点云中的属性信息。例如,在一些实施方案中,陀螺仪或加速度计可以捕获待包括在点云中的运动信息作为与该点云的一个或多个点相关联的属性。例如,配备有LIDAR系统、3D相机或3D扫描仪的车辆可能会在由LIDAR系统、3D相机或3D扫描仪捕获的点云中包括车辆的方向和速率。例如,当捕获到车辆视野中的点时,这些点可被包括在点云中,其中该点云包括所捕获的点以及对应于在捕获到点时车辆的状态的相关联运动信息。
图1示出了一种系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的属性信息的编码器,其中压缩属性信息被发送到解码器。
系统100包括传感器102和编码器104。传感器102捕获点云110,该点云包括表示传感器102的视图108中的结构106的点。例如,在一些实施方案中,结构106可以是山脉、建筑、标牌、街道周围的环境或任何其他类型的结构。在一些实施方案中,捕获点云(诸如捕获点云110)可包括关于包括在该点云中的点的空间信息和属性信息。例如,捕获点云110的点A包括X、Y、Z坐标以及属性1、2和3。在一些实施方案中,点的属性可包括属性诸如R,G,B颜色值、该点处的速度、该点处的加速度、结构在该点处的反射率、指示何时捕获该点的时间戳、指示捕获该点时的模态的字符串值例如“步行”或其他属性。捕获点云110可提供给编码器104,其中编码器104生成该点云的压缩版本(压缩属性信息112),该压缩版本经由网络114传输到解码器116。在一些实施方案中,点云的压缩版本(诸如压缩属性信息112)可以包括在公共压缩点云中,该公共压缩点云还包括针对该点云的点的压缩空间信息,或者在一些实施方案中,压缩空间信息和压缩属性信息可以作为单独的文件进行传送。
在一些实施方案中,编码器104可与传感器102成一体。例如,编码器104可在包括在传感器设备(诸如传感器102)中的硬件或软件中实现。在其他实施方案中,编码器104可在邻近传感器102的独立计算设备上实现。
在一些情况下,对属性信息进行编码所需的位数量包括针对点云的位流的显著部分。
在一些实施方案中,可以根据树数据结构对点云110中的点的位置进行编码。例如,三维空间可以递归地细分成连续较小的部分。这些部分中的每个部分可以由树数据结构中的相应节点表示。可以在树数据结构的对应节点中指示每个部分中的点的存在。
作为示例,参考图2,可以根据八叉树200对点云110中的点的位置进行编码,其中八叉树200的每个节点202恰好有八个子节点202。三维空间204可以被递归地细分成连续较小的八分之一。这些部分中的每个部分可以由八叉树200的相应节点202表示。可以在八叉树的对应节点202中指示每个部分中存在点(例如,使用位“1”表示对应部分中存在点,或使用位“0”表示对应部分中不存在点)。
图3A至图3E中示出根据树数据结构对点的位置进行编码的示例。在此示例中,根据四叉树(每个节点恰好有四个子节点的树数据结构)对单个二维平面上的多个点300进行编码。然而,应理解,可以根据八叉树形以类似的方式对三维点云中的点进行编码。
如图3A所示,多个点300位于二维平面上。在特定位置存在点300由网格302中的白色框指示,而在特定位置不存在点300由网格302中的黑色框指示。网格302的行根据相应二进制序列304编索引(示出在网格302的右侧,其中黑色框指示位“0”,并且彩色框指示位“1”)。类似地,网格302的列根据相应二进制序列306编索引(示出在网格302的底部,其中黑色框指示位“0”,并且彩色框指示位“1”)。
如图3B所示,网格302可以划分为四个大小相等的部分308a-308d(例如,正方形)。该划分可以由具有父节点和从父节点分支的四个子节点的树数据结构310来表示。在每个部分308a-308d中存在一个或多个点300可以由对应子节点中的位“1”来指示。这里,由于部分308a-308d中的每个部分包括至少一个点300,因此每个子节点被分配位“1”。
如图3C所示,每个部分308a-308d可以进一步细分为四个大小相等的子部分(例如,正方形)。例如,可以将部分308a细分为部分310a-310d。该划分可以由树数据结构310表示,对于与部分308a相对应的节点,该树数据结构具有从该节点分支的四个子节点。每个子部分310a-310d中的点或多个点300的存在可以由对应子节点中的位“1”表示。此处,由于子部分310a、310b和310d中的每个子部分包括至少一个点300,因此与那些子部分相关联的子节点各自被分配位“1”。与子部分310c相关联的子节点被分配位“0”。类似地,其他部分308c-308d也可以被细分为四个相等的子部分,并且每个子部分中的点的存在可以以与上述类似的方式由树数据结构310指示。
如图3D所示,每个子部分310a-310d可以进一步细分为四个大小相等的子部分(例如,正方形)。例如,子部分310a可以被细分为子部分312a-312d。该划分可以由树数据结构310表示,对于与子部分310a相对应的节点,该树数据结构具有从该节点分支的四个子节点。每个子部分312a-312d中的点或多个点300的存在可以由对应子节点中的位“1”表示。此处,由于子部分312a和312b中的每个子部分包括至少一个点300,因此与那些子部分相关联的子节点各自被分配位“1”。与子部分310c和310d相关联的子节点各自被分配位“0”。类似地,网格的其他子部分可以各自被细分为四个相等的子部分,并且每个子部分中的点的存在可以以与上述类似的方式由树数据结构310指示。
特定点300的空间位置可以由一个或多个二进制序列表示。例如,点300a相对于水平轴线的空间位置可以由二进制序列“011”表示(例如,对应于其列的索引),并且点300a相对于竖直轴线的空间位置可以由二进制序列“101”表示(例如,对应于其行的索引)。
尽管图3A至图3D中示出具有四个级别的树数据结构310,但实际上,树数据结构可以包括任何数量的级别(对应于任何数量的空间细分)。此外,尽管图3A至图3D示出具有从每个父节点分支的四个子节点的树数据结构310(例如,四叉树),但实际上,树数据结构可以具有从每个父节点分支的任何数量的子节点(例如,从每个父节点分支的8个子节点,如具有八叉树)。
根据多个步长大小进行的量化
在一些具体实施中,在编码过程期间,可以部分地对点的位置进行量化或缩放,使得可以使用数量减少的位来表示点的位置(或近似位置)。作为示例,编码器可以将表示点的位置的二进制序列中的每一者划分为两个部分:(i)第一部分,其包括二进制序列中的第一d位,其中d是特定深度(例如,表示已经由编码器进行编码的位),以及(ii)第二部分,其包括二进制序列中的其余位。可以根据选择的量化参数对第二部分进行量化。
为了说明,点的x位置的二进制表示可以表示为{b4,b3,b2,b1,b0},其中x在0到31(含31)之间。例如,x=21=0b10101(即,二进制序列“10101”)。在对前两个树级别进行编码后,在深度d=2的缩放深度处,丢弃0b10101的前两位,留下0b101(即,十进制值5)。其余部分可以根据步长大小2进行量化(例如,0b101/2=0b10)。这具有将其余部分的范围从十进制值0到7减小到十进制值0到3的效果。由于范围已经减少了两倍,因此只需要两个树级别来表示其余部分,而不是量化之前其余部分的三个级别。可以将级别减少表示为Floor(Log2(QS)),其中QS是量化步长大小。被通知在树深度2处以步长大小2进行量化的解码器将解码对应点的四个位(5-Floor(Log2(2))=4)。解码器将按量化步长大小QS(0b10*2=0b100)缩放位置信息的量化部分(两个最低有效位,0b10),并且将缩放值附加到两个最高有效位(0b10:0b100),从而产生0b10100的重建位置。
在一些具体实施中,可以基于指数函数f(QP)=QS的整数量化参数QP来确定定量步长大小QS。例如,可以使用关系式QS=2(QP-4)/6确定定量步长大小QS。在此示例中,QP增加6(例如,从4增加到10)使得定量步长大小QS加倍。
这种“树内”几何量化的性能具有各种影响。例如,这种量化从充分量化节点的子树中消除了级别,从而避免了被消除节点的信令占用。此外,该量化减少了树数据结构中的编码点的数量。此外,该量化将稀疏表面组合压缩成不太稀疏的形式。因此,可以使用较少数据(例如,与不利用量化的技术相比)存储关于点云的信息(例如,点云中一个或多个点的存在和/或位置)。
在一些具体实施中,可以根据树数据结构(例如,八叉树)对点云中的所有点进行编码。例如,这可能是有益的,因为其能够以一致的方式并根据一致的精度和/或精确度对关于点的信息进行编码和存储。
然而,在一些具体实施中,可以完全根据树数据结构对点云中的一部分点进行编码,并且可以部分地根据同一树数据结构并且部分地根据另一技术对其余点中的至少一些点进行编码。在一些具体实施中,其余点中的至少一些点可以通过明确地发信号通知它们相对于树节点位置的每个位置来部分地编码(例如,明确地指定每个点在一个或多个维度中的位置)。例如,这可能有益于减少根据树数据结构对点进行编码所需的计算资源(这在一些情况下可能高于使用显式信令技术)。
在一些具体实施中,编码器可以区分不同的点子集,这取决于它们与其他点子集的接近程度。例如,编码器可以标识彼此接近的点的一个或多个子集,并且根据树数据结构对那些点进行完全编码。编码器还可以标识与其他点的子集隔离的一个或多个点的子集,并且根据显式信令技术部分地编码那些点中的每个点。例如,这可能是有益的,因为使用显式信令技术,而不是使用树数据结构,可以更有效地编码和存储关于孤立点的信息。
在一些具体实施中,可以在树数据结构的编码过程中(例如,在将空间递归划分为连续较小的部分的过程中)通过标识被一个或多个点占用的空间部分(例如,八分之一),但该空间部分未被任何点占用的空间部分(例如,其他八分之一)包围,来标识孤立的点子集。编码器可以将该空间占用部分内的点指定为“隔离”点,并且部分地根据显式信令技术对这些点进行编码。编码器可以根据树数据结构(例如,八叉树)对其余点进行编码。在一些具体实施中,孤立点的集合可以被称为推断直接编码模式(IDCM)节点。
在一些应用中,孤立点的精确位置可能不如点的密集非孤立子集那么重要。例如,由于采样噪声,孤立点可能比密集的非孤立点子集具有更大的位置不确定性,其中可以使用基于局部点位置相关性的降噪技术。当用树数据结构(诸如八叉树或四叉树)进行编码时,即使在使用显式信令技术时,这种过多的精度和噪声也可能导致压缩效率较低。
在一些具体实施中,编码器可以指定量化参数QP(以及对应地指定量化步长大小QS)用于在编码过程中对孤立点(例如,IDCM节点)进行量化。在一些具体实施中,可以在“几何切片”(例如,表示点的数据结构)中发信号通知量化参数QP。在一些具体实施中,可以在几何切片的标头中发信号通知量化参数QP。在其他具体实施中,可以在参数集中发信号通知量化参数。在另一具体实施中,量化参数可以从在参数集中发信号通知的基值和在几何切片的标头中发信号通知的偏移得出。在另一具体实施中,量化参数可以从在几何切片的缩放深度处的对应树节点中发信号通知的基值和偏移得出。
部分地表示显式编码的点位置的每个节点由编码器根据用于孤立点的对应量化步长大小进行量化。在一些具体实施中,量化步长大小是二的整数幂。在其他具体实施中,步长大小是量化参数的指数函数。在一些具体实施中,在孤立点与其他几何信息不相关的情况下,使用非二次方量化步长大小的好处在实用性上可能是有限的,因为两个步长大小2n和2n-1的编码位的成本差异可能不会减少,而步长大小越大导致的失真可能越大;因此,就率失真性能而言,这两个步长大小中的较大者对于压缩来说可能是不需要的,对于具体实施来说可能更复杂。
在一些具体实施中,量化节点大小(表示要量化的位置信息的位数)与包含孤立点的树节点(例如,IDCM节点)的大小相同。在其他具体实施中,量化节点大小可以小于树节点,并且可以通过其他方式来指示。在一些具体实施中,其他方式是在切片标头或参数集中发信号通知的量化树深度或节点大小。
在量化之后,编码器使用显式信令方法来编码量化点位置。要编码的位数是从节点大小减去量化消除的任何位得出的,例如Floor(Log2(QS))。
遇到具有显式编码点位置的节点的解码器使用在位流中发信号通知的量化参数信息来确定使用显式信令方法解码的步长和位数。要解码的位数是从节点大小减去量化消除的任何位数得出的,例如Floor(Log2(QS))。
解码器根据步长大小对位置信息的量化部分进行缩放,并且将该量化部分与节点位置相结合,以确定重构的点位置。
由于具有显式编码的点位置的节点可能出现在树数据结构内的任何深度,因此解码器必须注意步长大小大于节点大小的情况(例如,在通过量化消除所有位置位的情况下)。通常期望使用Floor(Log2(QS))的值来确定重构点表示与解码位的数量(包括来自节点位置的任何贡献)之间的位差的解码器必须将该值限制为log2量化节点大小。
在一些具体实施中,为了简化具体实施,可以根据具有显式编码的点位置的节点所在的树数据结构的级别来约束量化参数或量化步长大小。量化参数(或步长大小)可以被限制为使得Floor(Log2(QS))不大于节点大小。在其他具体实施中,限制可以是使得Ceiling(Log2(QS))不再大于节点大小。
在一些具体实施中,用于显式编码点位置的量化/缩放的量化参数以及由此得出的量化步长大小可以根据当前树级别的节点大小来限制。在这些具体实施中,节点大小不需要是立方,并且使用最小的节点大小维度来导出限制值。这些具体实施的示例性代码如下所示:
Figure BDA0003736567740000141
在一些具体实施中,编码器可以指定在编码过程期间使用第一“显式”量化参数QPe(并且对应地使用第一量化步长大小QSe)来量化孤立点(例如,IDCM节点),而在编码过程中使用第二“内部”量化参数QPi(并且对应地使用第二量化步长大小QSi)来量化非孤立点(例如,非IDCM节点)。在一些具体实施中,可以在“几何切片”(例如,表示点的数据结构)中发信号通知显式量化参数QPe。在一些具体实施中,可以在几何切片的标头中发信号通知显式量化参数QPe。在其他具体实施中,可以在参数集中发信号通知显式量化参数QPe。在另一具体实施中,显式量化参数QPe可以从在参数集中发信号通知的基值和在几何切片的标头中发信号通知的偏移得出。在另一具体实施中,显式量化参数QPe可以通过在几何切片的标头中或在参数集中发信号通知的偏移从第二(显式量化参数)得出。在一些具体实施中,QPe可以称为IDCM QP。
为了说明,下面示出数据结构(例如,“几何切片”)的示例性语法。
Figure BDA0003736567740000151
表1:几何切片的示例性语法。
如上所示,可以使用几何参数集中的变量geom_direct_mode_qp_offset发信号通知用于量化孤立点(例如,IDCM节点)的量化参数QPe。在此示例中,geom_direct_mode_qp_offset将是geom_base_qp的增量(例如,用于量化非孤立点的第二量化参数QPi的增量或偏移)。
作为另一示例,如下所示,可以使用几何切片标头中的变量geom_direct_mode_qp_offset发信号通知用于量化孤立点的量化参数QPe,其中sliceQp=geom_base_qp+slice_qp_offset,并且geom_direct_mode_qp_offset是得出的sliceQp的增量,或geom_base_qp的增量。
Figure BDA0003736567740000161
表2:几何切片标头的示例性语法。
在一些具体实施中,用信号通知可以量化树节点的深度。此深度可以称为缩放深度。在一些具体实施中,这些节点还可以包含量化参数偏移,该量化参数偏移用于指示应用于从由节点表示的子树重建的点的缩放程度。然而,由于包含显式编码的点位置的节点可能更早地出现在树中,在发信号通知适当的量化参数偏移之前,这些节点可能会逃避量化并导致压缩效率降低。
在一些具体实施中,可以根据第一量化参数(例如,从geom_direct_mode_qp_offset得出)对在发信号通知的树内量化深度之前出现的包含显式编码的点位置的节点进行量化(或缩放)。
在一些具体实施中,如果节点是尚未量化的子树的派生(或量化已充当身份函数),则可以使用第一量化参数对包含在大于或等于量化深度的深度处出现的显式编码的点位置的节点进行量化。
对于包含在大于或等于量化深度的深度处出现的显式编码的点位置的节点,一些具体实施将不应用进一步量化或调整解码器中的缩放,从而导致这些节点使用第二量化参数。换句话说,由于在量化点处,节点被确定为不包含显式编码的点位置,因此已经使用第二量化参数对该节点进行量化。这避免了执行两轮量化或缩放的负担;例如,使用第二(量化参数)对点位置的显式编码部分进行反向缩放,然后对得到的其余量化部分(包括缩放的显式编码部分)进行反向缩放。
在一些具体实施中,如果第一量化参数大于节点量化参数,则进一步对包含在大于或等于量化深度处出现的显式编码点位置的节点进行量化。
在包含显式编码的点位置的节点被限制为使用为二的幂的量化步长大小的其他具体实施中,对包含在大于或等于量化深度的深度处出现的显式编码的点位置的节点进一步量化。在一些实施方案中,该进一步的量化基于第一量化步长大小与第二量化步长大小之间的差异。例如,已被量化为量化节点大小为2^7、步长大小为3的子树(意味着量化体积为2^6,因此有效子树高度为6),其中包含相对深度为2的显式编码点位置节点(例如,表示量化体积为2^4),并且在此类节点的量化步长大小为8的情况下,以步长大小Floor(8/3)=2对该节点进行进一步量化,使得级联量化步长大小为6。在另一实施方案中,根据2^(Log2(8)-Ceiling(Log2(3)))=2得出用于进一步量化的步长大小。在另一个实施方案中,根据2^(Log2(8)-Floor(Log2(3)))=4得出用于进一步量化的步长大小,从而产生级联量化步长大小为12。
在另一具体实施中,在切片标头或参数集中发信号通知第三量化参数,以供包含在大于或等于量化深度处出现的显式编码点位置的节点使用。
图4A至图4C示出了本文所描述的技术的示例性应用。图4A示出递归划分的三维空间400的示例,该三维空间包括多个点(由圆表示)和对应的树数据结构402。在树数据结构中,填充的方块表示占用的内部树节点,空方块表示未占用的子节点,圆表示叶节点。在此示例中,标记为“a”的点是孤立点。尽管图4A至图4C中示出的树数据结构402是四叉树(例如,以二维对点进行编码),但在一些具体实施中,树数据结构402可以是八叉树(例如,以三维对点进行编码)。
如图4B所示,树数据结构402可以使用IDCM对孤立点“a”进行编码,从而使得树相对于该点提前终止(例如,图4B中不存在通向图4A中的点“a”的几个级别和节点)。此确定在树中标记为“a”的位置执行。
如图4C所示,树通过指示量化节点大小的线划分为两个部分。紧接在该线之后(例如,在该线的右侧)的节点被允许发信号通知QP偏移(例如,在图4C中用示例性得出的QP值标记)。标记为qp=10的子树由于量化消除了树的一个级别而提前终止。节点“a”出现在量化节点大小线之前,并且因此通常不被量化。然而,如本文所述,节点“a”可以根据显式信令方法进行量化。
使用非立方树节点的编码点云信息
在图2所示的示例中,树数据结构具有多个节点,其中每个父节点恰好有八个子节点(例如,八叉树),对应于将空间递归划分为连续较小的立方体子部分。这可能例如在通用用例中对点进行编码(例如,当点在三维空间中相对均匀地分散时)很有用。
然而,情况不一定总是如此。例如,在一些具体实施中,树数据结构可以具有许多不同的级别。对于这些级别中的至少一个级别,该级别的父节点中的每个父节点可以具有相应第一数量的子节点。此外,对于至少一些其他级别,该级别的父节点中的每个父节点可以具有相应第二且不同数量的子节点。此配置对应于将空间递归划分为连续较小的非立方和/或立方子部分。例如,对于分布在三维空间中,但相对于特定维度相对于其他维度相对集中的编码点而言,这是有用的。例如,点可以沿细长矩形棱镜分布(例如,表示大体平面对象的表面的点云)。因此,递归地将空间划分为细长矩形棱镜(至少部分)可能比将空间划分为立方体部分(其中可能导致许多立方体部分具有很少的点或根本没有点)更有益。
例如,参考图5,可以根据四叉树加二叉树(QTBT)500对点云110中的点的位置进行编码,其中QTBT 500的第一级别的每个节点502正好有四个子节点502(例如,四叉树),并且QTBT 500的第二级别的每个节点正好有两个子节点502(例如,二叉树)。连续级别可以在四叉树布置与二进制树布置之间交替。因此,三维空间504可以递归地细分为更小的细长象限,然后细分为更小的立方体部分,然后细分为更小的细长象限,然后细分为更小的立方体部分,等等。这些部分中的每个部分可以由八叉树500中的相应节点502表示。可以在QTBT500的对应节点502中指示每个部分中存在点(例如,使用位“1”表示对应部分中存在点,或使用位“0”表示对应部分中不存在点)。
尽管图5中示出QTBT布置,但在实践中,数据树结构可以具有其他布置。例如,数据树结构可以有多个不同的级别,其中每个级别的父节点都有任意数量的子节点(例如,每个级别的父节点可以有两个、四个、八个、十六个或任意数量的子节点)。
在一些具体实施中,树数据结构最初可以具有一个或多个上部级别的非立方布置(例如,QTBT布置),但可以具有其余下部级别的立方布置(例如,八叉树布置)。
在一些具体实施中,编码器或解码器以特定方式处理节点,这取决于在空间上与该节点相邻的节点是否被占用。例如,可以根据相邻节点是否被占用来情境化节点的编码占用信息。在根据八叉树布置对点进行编码的情况下,可能没有必要在树数据结构的每个级别中明确指示这种布置。例如,由于每个父节点总是被细分为正好八个子节点,编码器或解码器可以容易地确定每个节点及其相邻节点的大小、形状和定向,而无需明确地发信号通知此类信息。
然而,在非立方布置(例如,QTBT布置)中,可以明确地指示树数据结构的布置,使得编码器和解码器可以准确地确定每个节点和其相邻节点的大小、形状和定向。例如,对于树数据结构的每个级别,树数据结构可以明确地发信号通知该级别的每个节点都有特定数量的子节点(例如,两个、四个、八个等)及其空间对应关系。这可以被称为所述水平中的节点的“分区状态”。在编码或解码过程期间,编码器或解码器可以参考此参数以确定每个节点的大小、形状和定向。
在一些具体实施中,树数据结构的布置可以由参数化过程明确地指示,该参数化过程由编码器和解码器两者执行以确定树的给定级别中的节点的分区状态。例如,一个这样的参数化可能使得四个子节点和两个子节点的级别出现在任何八个子节点之前;相反,另一参数化可能使得所有八个子节点出现在任何四个子节点或两个子节点之前。
作为示例,节点的结构可以根据以下伪码来定义:
Figure BDA0003736567740000201
表3:用于定义节点的结构的伪码。
在该示例中,相邻节点的分区状态由三个位表示,这三个位指示根据分区方案对x、y和z分量中的哪一个进行编码。例如,对于八叉树划分(例如,将级别中的每个节点划分为八个对应子节点),所有三个位都被编码。作为另一示例,对于四叉树划分(例如,将级别中的每个节点划分为第四对应子节点),三个位中只有两个被编码。作为另一示例,对于二叉树划分(例如,将级别中的每个节点划分为两个对应子节点),仅编码一个位。
在一些具体实施中,为了能够有效地确定空间相邻节点,可以构建三维稀疏占用图。存储器高效实施可以选择在存储器的每个字节中存储整个八叉树节点的占用信息,包括线性寻址阵列的存储器位置中的八个位(一个字节)。在一些具体实施中,存储器位置基于节点的空间位置信息的莫顿(Morton)码表示,减去每个分量的最低有效位,每个分量形成八位占用字的三位莫顿码索引。可以通过扫描树遍历顺序中的节点序列来构建三维稀疏占用图。
在一些具体实施中,可以通过改变节点的存储器位置的构造,从非立方树布置中的非立方节点构造三维稀疏占用图。在一些实施方案中,仅移除与在单个层中编码的位相对应的空间位置信息的最低有效位。例如,如果一个节点对四个子节点进行编码,则每个子节点可能不编码z0位的位置(x2.x1.x0,y2.y1.y0,z2.z1)。莫顿码可以被构造为x2.y2.z2.x1.y1.z1,丢弃位置信息的x0和y0位。
在一些具体实施中,可以根据量化参数(QP)对非立方树布置中的节点进行量化。在一些具体实施中,量化程度可以在同一树级别内的节点之间以特定量化或缩放深度变化。由于量化可以改变量化节点下的子树的高度,在一些具体实施中,具有第一QP和特定高度的第一子树中的节点在级别上的分区状态可能必然不同于具有第二不同QP和不同特定高度的第二子树的分区状态。例如,同一级别中的两个节点可能具有不同的分区状态,因为它们属于具有不同QPs的子树。
在一些实施方案中,可以在每个节点中存储信息以标识节点的分区状态(例如,当节点或父节点被解码时确定的节点的分区状态)。在一些实施方案中,该信息可以包括三位值,该三位值标识x位、y位和/或z位中的哪一位是最新级别的公共位。在构建三维稀疏占用图时,利用节点的位置信息和节点的分区状态来确定节点的存储器位置。为了继续前面的示例,具有位置(x2.x1.x0、y2.y1.y0、z2.z1)的子节点将三位0b110的分区状态信息存储在其旁边,这三位指示x和y位是最近编码的。
在一些实施方案中,可以在每个级别的基础上存储信息,以标识每个级别的节点的分区状态。例如,当构建三维稀疏占用图时,关于每个级别的节点的分区状态的信息可以存储在特定于该级别的存储器位置中。可以在每个级别的基础上(例如,基于特定级别的树的指示,诸如树的当前级别和/或树的先前级别的编码轴)从占用图选择性地检索信息。
如上所述,在一些具体实施中,树数据结构最初可以具有一个或多个上部级别的非立方布置(例如,QTBT布置),但是可以具有用于其余下部级别的立方布置(例如,八叉树布置)。在一些具体实施中,编码器可以生成树数据结构,使得其仅具有高于量化或缩放深度的级别(例如,深度)的非立方布置。对于低于量化或缩放深度的级别,编码器可以生成树数据结构,使得其仅具有用于那些级别的立方布置(例如,八叉树)。
示例性过程
图6A示出用于生成表示三维空间中的点云的数据结构的示例性过程600。过程600可以至少部分地使用一个或多个设备(例如,图10所示的一个或多个计算机系统)来执行。
根据过程600,计算机系统接收表示三维空间中的点云的多个点(框602)。
计算机系统生成表示三维空间中的点云的数据结构(框604)。
生成数据结构包括针对每个点,将点在三维空间的每个维度中的位置表示为位序列(框604a)。根据树数据结构表示点的位置。在一些具体实施中,树数据结构可以是八叉树。
另外,根据树数据结构的缩放深度将位序列划分为位的第一部分和位的第二部分(框604b)。
确定点的子集在空间上与点的其余部分隔离(框604c)。
在一些具体实施中,确定点的子集在空间上与点的其余部分隔离可以包括确定在树数据结构的第一深度处点的子集在空间上与点的其余部分隔离,其中第一深度小于或等于缩放深度。响应于确定,根据第一量化步长大小可以对与点的子集相关联的位的第二部分中的每一者进行量化。
在一些具体实施中,确定在第一深度处,点的子集在空间上与点的其余部分隔离可以包括在第一深度处,点的子集占据树数据结构中的一个或多个第一节点,并且确定在第一深度处,点的其余部分占据树数据结构的一个或多个第二节点,其中一个或多个第一节点不与一个或多个第二节点中的任何一个节点相邻。
根据第一量化步长大小对与点的子集相关联的位的第二部分中的每一者进行量化(框604d)。
根据第二量化步长大小对与点的其余部分相关联的位的第二部分中的每一者(例如,不与点的子集相关联的点)进行量化,其中第一量化步长大小与第二量化步长大小不同(框604e)。
将量化的位部分包括在数据结构中(框604f)。
传输和/或输出数据结构(框606)。
在一些具体实施中,生成数据结构还可以包括将指示第一量化步长大小的标头包括在数据结构中。
在一些具体实施中,树数据结构可以包括根据多个树级别布置的多个节点。此外,多个节点中的第一节点可以明确地发信号通知点云中的多个点中的一个点的位置。可以根据来自树数据结构的多个树节点中的第一节点的树级别来约束量化参数和/或量化步长大小。
图6B示出用于基于表示点云的数据结构渲染三维内容的示例性过程620。过程620可以至少部分地使用一个或多个设备(例如,图10所示的一个或多个计算机系统)来执行。
根据过程620,计算机系统接收表示三维空间中的点云的数据结构(框622)。点云具有多个点。针对每个点,数据结构包括对三维空间的每个维度中的点的位置进行编码的位序列,其中根据树数据结构对点的位置进行编码,对于点的子集,根据第一量化步长大小对对应位序列进行量化。对于点的其余部分,根据第二量化步长大小对该对应位序列进行量化,其中第一量化步长大小与第二量化步长大小不同。点的子集在空间上与点的其余部分隔离。在一些具体实施中,树数据结构可以是八叉树。
计算机系统基于数据结构确定每个点的位置(框624)。在一些具体实施中,这可以包括从数据结构中的标头检索对第一量化步长大小的指示,以及基于第一量化步长大小确定点的子集中的每个点的位置。
计算机系统输出每个点的确定位置(框626)。
在一些具体实施中,计算机系统还可以基于每个点的确定位置来呈现三维内容。该三维内容可以是虚拟现实内容或增强现实内容中的至少一者。
图7A示出用于生成表示三维空间中的点云的数据结构的示例性过程700。过程700可以至少部分地使用一个或多个设备(例如,图10所示的一个或多个计算机系统)来执行。
根据过程700,计算机系统接收表示三维空间中的点云的多个点(框702)。
系统生成表示三维空间中的点云的数据结构(框704)。
生成数据结构包括针对每个点,将点在三维空间的每个维度中的位置表示为位序列(框704a)。根据树数据结构表示点的位置。树数据结构包括多个树级别,每个树级别具有多个节点。第一树级别的每个节点在第二树级别中具有第一数量的对应子节点。第二树级别的每个节点在第三树级别中具有第二数量的对应子节点,其中第一数量不同于第二数量。在一些具体实施中,第一数量是整数的立方,并且第二数量不是整数的立方。
生成数据结构可以包括将指示第一数量和第一树级别的第一组参数以及指示第二数量和第二树级别的第二组参数包括在数据结构中(框704b)。
在一些具体实施中,该过程可以包括确定第三树级别中的每个节点对第三树级别中的相邻节点的占用;基于所确定的第三树级别中的相邻节点的占用,对每个节点执行一个或多个数据处理步骤;以及在执行一个或多个数据处理步骤之后,相对于数据结构执行一个或多个量化或缩放步骤。
在一些具体实施中,相对于数据结构执行一个或多个量化或缩放步骤可以包括根据树数据结构的缩放深度将位序列中的每一者划分为位的两个或更多个部分。
在一些具体实施中,相对于数据结构执行一个或多个量化或缩放步骤可以进一步包括根据量化步长大小对位的至少一些部分进行量化;以及将量化的位部分包括在数据结构中。
图7B示出用于基于表示点云的数据结构渲染三维内容的示例性过程720。过程720可以至少部分地使用一个或多个设备(例如,图10所示的一个或多个计算机系统)来执行。
根据过程720,计算机系统接收表示三维空间中的点云的数据结构(框722)。点云具有多个点。对于每个点,数据结构指示根据树数据结构编码的点的位置。树数据结构包括多个树级别,每个树级别具有多个节点。第一树级别中的每个节点在第二树级别中具有第一数量的对应子节点,并且第二树级别中的每个节点在第三树级别中具有第二数量的对应子节点,其中第一数量不同于第二数量。数据结构包括指示第一数量和第一树级别的第一组参数,以及指示第二数量和第二树级别的第二组参数。在一些具体实施中,第一数量是整数的立方,并且第二数量不是整数的立方。在一些具体实施中,树数据结构可以是八叉树。
计算机系统基于数据结构确定每个点的位置(框724)。这可以包括从数据结构检索第一组参数和第二组参数,以及基于第一组参数和第二组参数确定第一树级别中的每个节点在第二树级别中具有第一数量的对应子节点,并且确定第二树级别中的每个节点在第三树级别中具有第二数量的对应子节点。
计算机系统输出每个点的确定位置(框726)。
在一些具体实施中,计算机系统还可以基于每个点的确定位置来呈现三维内容。该三维内容可以是虚拟现实内容或增强现实内容中的至少一者。
图8示出了正在3D应用中使用的压缩点云。
在一些实施方案中,传感器(诸如传感器102)、编码器(诸如编码器104)和解码器(诸如解码器116)可用于在3D应用中传送点云。例如,在框802处,传感器(诸如传感器102)可以捕获3D图像,并且在框804处,传感器或与传感器相关联的处理器可以基于感测到的数据执行3D重建以生成点云。
在框806处,编码器(诸如编码器104)可以对点云进行压缩,并且在框808处,编码器或后处理器可以打包压缩点云并经由网络810传输压缩点云。在框812处,可以在包括解码器(诸如解码器116)的目标位置处接收数据包。在框814处,解码器可以对点云进行解压缩,并且在框816处,可以渲染解压缩点云。在一些实施方案中,3D应用可实时地传输点云数据,使得框816处的显示表示正在框802处观察到的图像。例如,在框816处,峡谷中的相机可允许远程用户体验穿行虚拟峡谷。
图9示出了正在虚拟现实(VR)或增强现实(AR)应用中使用的压缩点云。
在一些实施方案中,点云可在软件中生成(例如,与由传感器捕获相反)。例如,在框902处,产生虚拟现实或增强现实内容。虚拟现实或增强现实内容可包括点云数据和非点云数据。例如,作为一个示例,非点云字符可横穿由点云表示的地形。在904处,可以压缩点云数据,并且在框906处,可以将压缩点云数据和非点云数据打包并经由网络908传输这些数据。例如,在框902处产生的虚拟现实或增强现实内容可在远程服务器处产生并经由网络908传送至VR或AR内容消费者。在框910处,数据包可在VR或AR消费者的设备处被接收并同步。在框912处,在VR或AR消费者的设备处运作的解码器可对压缩点云进行解压缩,并且点云和非点云数据可例如在VR或AR消费者的设备的头戴式显示器中被实时渲染。在一些实施方案中,可响应于VR或AR消费者操纵头戴式显示器以看向不同的方向来生成、压缩、解压缩和渲染点云数据。
在一些实施方案中,如本文所述的点云压缩可用于各种其他应用诸如地理信息系统、体育赛事直播、博物馆展示、自主导航等中。
示例性计算机系统
图10示出了示例性计算机系统1000,该示例性计算机系统可实现编码器或解码器或本文所述的部件中的任何其他部件(例如,上文参考图1至图9描述的部件中的任何部件)。计算机系统1000可被配置为执行上文所述的任意或全部实施方案。在不同的实施方案中,计算机系统1000可为各种类型的设备中的任一者,包括但不限于:个人计算机系统、台式计算机、膝上型电脑、笔记本电脑、平板电脑、一体电脑、平板电脑或上网本电脑、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、消费者设备、视频游戏控制器、手持式视频游戏设备、应用服务器、存储设备、电视、视频记录设备、外围设备(诸如交换机、调制解调器、路由器)或一般性的任何类型的计算或电子设备。
如本文所述的点云编码器或解码器的各种实施方案可在一个或多个计算机系统1000中执行,该计算机系统可与各种其他设备交互。需注意,根据各种实施方案,上文相对于图1至图9描述的任何部件、动作或功能性可以实现于配置为图10的计算机系统1000的一种或多种计算机上。在所示出的实施方案中,计算机系统1000包括经由输入/输出(I/O)接口1030联接到系统存储器1020的一个或多个处理器1010。计算机系统1000还包括联接到I/O接口1030的网络接口1040,以及一个或多个输入/输出设备1050,诸如光标控制设备1060、键盘1070和一个或多个显示器1080。在一些情况下,可以想到实施方案可使用计算机系统1000的单个实例来实现,而在其他实施方案中,多个此类系统或者构成计算机系统1000的多个节点可被配置为托管实施方案的不同部分或实例。例如,在一个实施方案中,一些元素可经由计算机系统1000的与实现其他元素的那些节点不同的一个或多个节点来实现。
在各种实施方案中,计算机系统1000可以是包括一个处理器1010的单处理器系统,或者是包括若干个处理器1010(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器1010可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1010可以是实现多种指令集架构(ISA)(诸如x86、PowerPC、SPARC或MIPS ISA或任何其他合适的ISA)中的任一种的通用或嵌入式处理器。在多处理器系统中,处理器1010中的每个处理器通常可以但并非必须实现相同的ISA。
系统存储器1020可被配置为存储点云压缩或点云解压缩程序指令1022和/或能够由处理器1010访问的传感器数据。在各种实施方案中,系统存储器1020可使用任何合适的存储器技术来实现,诸如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其他类型的存储器。在所示出的实施方案中,程序指令1022可被配置为实现结合上文所述功能性中的任一种的图像传感器控制应用程序。在一些实施方案中,程序指令和/或数据可被接收、发送或存储在与系统存储器1020或计算机系统1000分开的不同类型的计算机可访问介质上或类似介质上。尽管将计算机系统1000描述为实施前面各图的功能框的功能性,但可通过这种计算机系统实施本文描述的任何功能性。
在一个实施方案中,I/O接口1030可被配置为协调设备中的处理器1010、系统存储器1020和任何外围设备(包括网络接口1040或其他外围设备接口,诸如输入/输出设备1050)之间的I/O通信。在一些实施方案中,I/O接口1030可执行任何必要的协议、定时或其他数据变换以将来自一个部件(例如系统存储器1020)的数据信号转换成适于由另一部件(例如处理器1010)使用的格式。在一些实施方案中,I/O接口1030可包括对例如通过各种类型的外围总线(诸如,外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变型)附接的设备的支持。在一些实施方案中,I/O接口1030的功能例如可被划分到两个或更多个单独部件中,诸如北桥接件和南桥接件。此外,在一些实施方案中,I/O接口1030(诸如到系统存储器1020的接口)的功能中的一些或全部可直接并入处理器1010中。
网络接口1040可被配置为允许在计算机系统1000和附接到网络1085的其他设备(例如,承载器或代理设备)之间或者在计算机系统1000的节点之间交换数据。在各种实施方案中,网络1085可包括一种或多种网络,包括但不限于局域网(LAN)(例如,以太网或企业网)、广域网(WAN)(例如,互联网)、无线数据网、某种其他电子数据网络或它们的某种组合。在各种实施方案中,网络接口1040可支持经由有线或无线通用数据网络(诸如任何合适类型的以太网网络)的通信,例如;经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)的通信;经由存储区域网络(诸如光纤通道SAN)、或经由任何其他合适类型的网络和/或协议的通信。
在一些实施方案中,输入/输出设备1050可包括一个或多个显示终端、键盘、小键盘、触控板、扫描设备、语音或光学识别设备或适于由一个或多个计算机系统1000输入或访问数据的任何其他设备。多个输入/输出设备1050可存在于计算机系统1000中,或者可分布在计算机系统1000的各个节点上。在一些实施方案中,类似的输入/输出设备可与计算机系统700分开,并且可通过有线或无线连接(诸如通过网络接口1040)与计算机系统1000的一个或多个节点进行交互。
如图10所示,存储器1020可包括程序指令1022,这些程序指令可能够由处理器执行,以实现上文所述的任何元素或动作。在一个实施方案中,程序指令可执行上文所述的方法。在其他实施方案中,可包括不同的元件和数据。需注意,数据可包括上文所述的任何数据或信息。
本领域的技术人员应当理解,计算机系统1000仅仅是例示性的,而并非旨在限制实施方案的范围。具体地,计算机系统和设备可包括可执行所指示的功能的硬件或软件的任何组合,包括计算机、网络设备、互联网设备、个人数字助理(PDA)、无线电话、寻呼机等。计算机系统1000还可连接到未示出的其他设备,或者反之可作为独立的系统进行操作。此外,由所示出的部件所提供的功能在一些实施方案中可被组合在更少的部件中或者被分布在附加部件中。类似地,在一些实施方案中,所示出的部件中的一些部件的功能可不被提供,和/或其他附加功能可能是可用的。
本领域的技术人员还将认识到,虽然各种项目被示出为在被使用期间被存储在存储器中或存储装置上,但是为了存储器管理和数据完整性的目的,这些项目或其部分可在存储器和其他存储设备之间进行传输。另选地,在其他实施方案中,这些软件部件中的一些或全部软件部件可以在另一设备上的存储器中执行,并且经由计算机间通信来与例示的计算机系统进行通信。系统部件或数据结构中的一些或全部也可(例如作为指令或结构化数据)被存储在计算机可访问介质或便携式制品上以由合适的驱动器读取,其多种示例在上文中被描述。在一些实施方案中,存储在与计算机系统1000分开的计算机可访问介质上的指令可通过传输介质或信号(诸如通过通信介质诸如网络和/或无线链路而传送的电信号、电磁信号或数字信号)传输到计算机系统1000。各种实施方案还可以包括在计算机可访问介质上接收、发送或存储根据以上描述所实现的指令和/或数据。一般来讲,计算机可访问介质可以包括非暂态计算机可读存储介质或存储器介质,诸如磁或光介质,例如盘或DVD/CD-ROM、易失性或非易失性介质,诸如RAM(例如SDRAM、DDR、RDRAM、SRAM等)、ROM等。在一些实施方案中,计算机可访问介质可以包括传输介质或信号,诸如经由通信介质诸如网络和/或无线链路来传输的电气、电磁或数字信号。
在不同的实施方案中,本文所述的方法可以在软件、硬件或它们的组合中实现。此外,可改变方法的框的次序,并且可对各种要素进行添加、重新排序、组合、省略、修改等。对于受益于本公开的本领域的技术人员,显然可做出各种修改和改变。本文所述的各种实施方案旨在为例示的而非限制性的。许多变型、修改、添加和改进是可能的。因此,可为在本文中被描述为单个示例的部件提供多个示例。各种部件、操作和数据存储库之间的界限在一定程度上是任意性的,并且在具体的示例性配置的上下文中示出了特定操作。预期了功能的其他分配,它们可落在所附权利要求的范围内。最后,被呈现为示例性配置中的分立部件的结构和功能可被实现为组合的结构或部件。这些和其他变型、修改、添加和改进可落入如以下权利要求书中所限定的实施方案的范围内。

Claims (30)

1.一种方法,所述方法包括:
由计算机系统接收表示三维空间中的点云的多个点;
由所述计算机系统生成表示所述三维空间中的所述点云的数据结构,其中生成所述数据结构包括:
针对每个点,将所述点在所述三维空间的每个维度中的位置表示为位序列,其中根据树数据结构表示所述点的所述位置,
根据所述树数据结构的缩放深度将所述位序列中的每一者划分为位的第一部分和位的第二部分,
确定所述点的子集在空间上与所述点的其余部分隔离,
根据第一量化步长大小对与所述点的所述子集相关联的所述位的第二部分中的每一者进行量化,
根据第二量化步长大小对与所述点的所述其余部分相关联的所述位的第二部分中的每一者进行量化,其中所述第一量化步长大小与所述第二量化步长大小不同,以及
将量化的位的第二部分包括在所述数据结构中;以及
由所述计算机系统进行以下项中的至少一者:传输所述数据结构或存储所述数据结构。
2.根据权利要求1所述的方法,其中生成所述数据结构包括将指示所述第一量化步长大小的标头包括在所述数据结构中。
3.根据权利要求1所述的方法,其中确定所述点的所述子集在空间上与所述点的所述其余部分隔离包括:
确定在所述树数据结构的第一深度处所述点的所述子集在空间上与所述点的所述其余部分隔离,其中所述第一深度小于或等于所述缩放深度,并且
其中响应于所述确定,根据所述第一量化步长大小对与所述点的所述子集相关联的所述位的第二部分中的每一者进行量化。
4.根据权利要求3所述的方法,其中确定在所述第一深度处所述点的所述子集在空间上与所述点的所述其余部分隔离包括:
确定在所述第一深度处,所述点的所述子集占据所述树数据结构中的一个或多个第一节点,以及
确定在所述第一深度处,所述点的所述其余部分占据所述树数据结构的一个或多个第二节点,其中所述一个或多个第一节点不与所述一个或多个第二节点中的任何一个节点相邻。
5.根据权利要求1所述的方法,其中所述树数据结构是八叉树。
6.根据权利要求1所述的方法,其中所述树数据结构包括根据多个树级别布置的多个节点,其中所述多个节点中的第一节点明确地发信号通知所述点中的一个或多个点的所述位置,并且其中根据所述树数据结构的所述多个树节点中的所述第一节点的树级别来约束量化参数或所述量化步长大小中的至少一者。
7.一种设备,所述设备包括:
一个或多个处理器;以及
存储器,所述存储器存储指令,所述指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行包括以下内容的操作:
接收表示三维空间中的点云的多个点;
生成表示所述三维空间中的所述点云的数据结构,其中生成所述数据结构包括:
针对每个点,将所述点在所述三维空间的每个维度中的位置表示为位序列,其中根据树数据结构表示所述点的所述位置,
根据所述树数据结构的缩放深度将所述位序列中的每一者划分为位的第一部分和位的第二部分,
确定所述点的子集在空间上与所述点的其余部分隔离,
根据第一量化步长大小对与所述点的所述子集相关联的所述位的第二部分中的每一者进行量化,
根据第二量化步长大小对与所述点的所述其余部分相关联的所述位的第二部分中的每一者进行量化,其中所述第一量化步长大小与所述第二量化步长大小不同,以及
将量化的位的第二部分包括在所述数据结构中;以及
进行以下项中的至少一者:传输所述数据结构或存储所述数据结构。
8.根据权利要求7所述的设备,其中生成所述数据结构包括将指示所述第一量化步长大小的标头包括在所述数据结构中。
9.根据权利要求7所述的设备,其中确定所述点的所述子集在空间上与所述点的所述其余部分隔离包括:
确定在所述树数据结构的第一深度处所述点的所述子集在空间上与所述点的所述其余部分隔离,其中所述第一深度小于或等于所述缩放深度,并且
其中响应于所述确定,根据所述第一量化步长大小对与所述点的所述子集相关联的所述位的第二部分中的每一者进行量化。
10.根据权利要求9所述的设备,其中确定在所述第一深度处所述点的所述子集在空间上与所述点的所述其余部分隔离包括:
确定在所述第一深度处,所述点的所述子集占据所述树数据结构中的一个或多个第一节点,以及
确定在所述第一深度处,所述点的所述其余部分占据所述树数据结构的一个或多个第二节点,其中所述一个或多个第一节点不与所述一个或多个第二节点中的任何一个节点相邻。
11.根据权利要求7所述的设备,其中所述树数据结构是八叉树。
12.根据权利要求7所述的设备,其中所述树数据结构包括根据多个树级别布置的多个节点,其中所述多个节点中的第一节点明确地发信号通知所述点中的一个或多个点的所述位置,并且其中根据所述树数据结构的所述多个树节点中的所述第一节点的树级别来约束量化参数或所述量化步长大小中的至少一者。
13.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行包括以下内容的操作:
接收表示三维空间中的点云的多个点;
生成表示所述三维空间中的所述点云的数据结构,其中生成所述数据结构包括:
针对每个点,将所述点在所述三维空间的每个维度中的位置表示为位序列,其中根据树数据结构表示所述点的所述位置,
根据所述树数据结构的缩放深度将所述位序列中的每一者划分为位的第一部分和位的第二部分,
确定所述点的子集在空间上与所述点的其余部分隔离,
根据第一量化步长大小对与所述点的所述子集相关联的所述位的第二部分中的每一者进行量化,
根据第二量化步长大小对与所述点的所述其余部分相关联的所述位的第二部分中的每一者进行量化,其中所述第一量化步长大小与所述第二量化步长大小不同,以及
将量化的位的第二部分包括在所述数据结构中;以及
由所述计算机系统进行以下项中的至少一者:传输所述数据结构或存储所述数据结构。
14.根据权利要求13所述的非暂态计算机可读存储介质,其中生成所述数据结构包括将指示所述第一量化步长大小的标头包括在所述数据结构中。
15.根据权利要求13所述的非暂态计算机可读存储介质,其中确定所述点的所述子集在空间上与所述点的所述其余部分隔离包括:
确定在所述树数据结构的第一深度处所述点的所述子集在空间上与所述点的所述其余部分隔离,其中所述第一深度小于或等于所述缩放深度,并且
其中响应于所述确定,根据所述第一量化步长大小对与所述点的所述子集相关联的所述位的第二部分中的每一者进行量化。
16.根据权利要求15所述的非暂态计算机可读存储介质,其中确定所述点的所述子集在空间上与所述点的所述其余部分隔离包括:
确定在所述第一深度处,所述点的所述子集占据所述树数据结构中的一个或多个第一节点,以及
确定在所述第一深度处,所述点的所述其余部分占据所述树数据结构的一个或多个第二节点,其中所述一个或多个第一节点不与所述一个或多个第二节点中的任何一个节点相邻。
17.根据权利要求13所述的非暂态计算机可读存储介质,其中所述树数据结构是八叉树。
18.根据权利要求13所述的非暂态计算机可读存储介质,其中所述树数据结构包括根据多个树级别布置的多个节点,其中所述多个节点中的第一节点明确地发信号通知所述点中的一个或多个点的所述位置,并且其中根据所述树数据结构的所述多个树节点中的所述第一节点的树级别来约束量化参数或所述量化步长大小中的至少一者。
19.一种方法,所述方法包括:
由计算机系统接收表示三维空间中的点云的数据结构,所述点云具有多个点,
其中针对每个点,所述数据结构包括对所述三维空间的每个维度中的所述点的位置进行编码的位序列,其中根据树数据结构对所述点的所述位置进行编码,
其中对于所述点的子集,根据第一量化步长大小对对应位序列进行量化,并且
其中,对于所述点的其余部分,根据第二量化步长大小对所述对应位序列进行量化,其中所述第一量化步长大小与所述第二量化步长大小不同,并且
其中所述点的所述子集在空间上与所述点的其余部分隔离,
由所述计算机系统基于所述数据结构确定所述点中的每个点的所述位置;以及
由所述计算机系统输出所述点中的每个点的确定位置。
20.根据权利要求19所述的方法,其中基于所述数据结构确定所述点中的每个点的所述位置包括从所述数据结构中的标头检索对所述第一量化步长大小的指示,以及
基于所述第一量化步长大小确定所述点的所述子集中的所述点中的每个点的所述位置。
21.根据权利要求19所述的方法,其中所述树数据结构是八叉树。
22.根据权利要求19所述的方法,其进一步包括基于所述点中的每个点的所述确定位置渲染三维内容,其中所述三维内容是虚拟现实内容或增强现实内容中的至少一者。
23.一种设备,所述设备包括:
一个或多个处理器;以及
存储器,所述存储器存储指令,所述指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行包括以下内容的操作:
接收表示三维空间中的点云的数据结构,所述点云具有多个点,
其中针对每个点,所述数据结构包括对所述三维空间的每个维度中的所述点的位置进行编码的位序列,其中根据树数据结构对所述点的所述位置进行编码,
其中对于所述点的子集,根据第一量化步长大小对对应位序列进行量化,并且
其中,对于所述点的其余部分,根据第二量化步长大小对所述对应位序列进行量化,其中所述第一量化步长大小与所述第二量化步长大小不同,并且
其中所述点的所述子集在空间上与所述点的其余部分隔离,基于所述数据结构确定所述点中的每个点的所述位置;以及
输出所述点中的每个点的确定位置。
24.根据权利要求23所述的设备,其中基于所述数据结构确定所述点中的每个点的所述位置包括从所述数据结构中的标头检索对所述第一量化步长大小的指示,以及
基于所述第一量化步长大小确定所述点的所述子集中的所述点中的每个点的所述位置。
25.根据权利要求23所述的设备,其中所述树数据结构是八叉树。
26.根据权利要求23所述的设备,所述操作进一步包括基于所述点中的每个点的所述确定位置渲染三维内容,其中所述三维内容是虚拟现实内容或增强现实内容中的至少一者。
27.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行包括以下内容的操作:
接收表示三维空间中的点云的数据结构,所述点云具有多个点,
其中针对每个点,所述数据结构包括对所述三维空间的每个维度中的所述点的位置进行编码的位序列,其中根据树数据结构对所述点的所述位置进行编码,
其中对于所述点的子集,根据第一量化步长大小对对应位序列进行量化,并且
其中,对于所述点的其余部分,根据第二量化步长大小对所述对应位序列进行量化,其中所述第一量化步长大小与所述第二量化步长大小不同,并且
其中所述点的所述子集在空间上与所述点的其余部分隔离,基于所述数据结构确定所述点中的每个点的所述位置;以及
输出所述点中的每个点的确定位置。
28.根据权利要求27所述的非暂态计算机可读存储介质,其中基于所述数据结构确定所述点中的每个点的所述位置包括从所述数据结构中的标头检索对所述第一量化步长大小的指示,以及
基于所述第一量化步长大小确定所述点的所述子集中的所述点中的每个点的所述位置。
29.根据权利要求27所述的非暂态计算机可读存储介质,其中所述树数据结构是八叉树。
30.根据权利要求27所述的非暂态计算机可读存储介质,所述操作进一步包括基于所述点中的每个点的所述确定位置渲染三维内容,其中所述三维内容是虚拟现实内容或增强现实内容中的至少一者。
CN202180008650.9A 2020-01-09 2021-01-08 点云的树内几何量化 Pending CN114981842A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202062959105P 2020-01-09 2020-01-09
US62/959,105 2020-01-09
US202062959832P 2020-01-10 2020-01-10
US62/959,832 2020-01-10
PCT/US2021/012828 WO2021142362A1 (en) 2020-01-09 2021-01-08 In-tree geometry quantization of point clouds

Publications (1)

Publication Number Publication Date
CN114981842A true CN114981842A (zh) 2022-08-30

Family

ID=74572845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180008650.9A Pending CN114981842A (zh) 2020-01-09 2021-01-08 点云的树内几何量化

Country Status (4)

Country Link
US (1) US20230046917A1 (zh)
EP (1) EP4070281A1 (zh)
CN (1) CN114981842A (zh)
WO (1) WO2021142362A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021025251A1 (ko) * 2019-08-08 2021-02-11 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021142361A1 (en) 2020-01-08 2021-07-15 Apple Inc. In-tree geometry quantization of point clouds
US11983907B2 (en) * 2020-01-09 2024-05-14 Tencent America LLC Techniques and apparatus for explicit quad-tree and binary-tree partitioning for geometry coding
US11310528B2 (en) * 2020-03-30 2022-04-19 Tencent America LLC Methods of coding duplicate and isolated points for point cloud coding
US20220108488A1 (en) * 2020-10-07 2022-04-07 Qualcomm Incorporated Angular mode and in-tree quantization in geometry point cloud compression
US11810250B2 (en) * 2021-06-30 2023-11-07 Tencent America LLC Systems and methods of hierarchical implicit representation in octree for 3D modeling
WO2024083761A1 (en) * 2022-10-17 2024-04-25 Telefonaktiebolaget Lm Ericsson (Publ) Encoding and decoding point data identifying a plurality of points in a three-dimensional space

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3090465A1 (en) * 2018-02-08 2019-08-15 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US10796458B2 (en) * 2018-04-23 2020-10-06 Qualcomm Incorporated Compression of point clouds via a novel hybrid coder

Also Published As

Publication number Publication date
US20230046917A1 (en) 2023-02-16
EP4070281A1 (en) 2022-10-12
WO2021142362A1 (en) 2021-07-15

Similar Documents

Publication Publication Date Title
US11450031B2 (en) Significant coefficient flag encoding for point cloud attribute compression
US11895307B2 (en) Block-based predictive coding for point cloud compression
KR102362066B1 (ko) 포인트 클라우드 기하학적 압축
US20210217206A1 (en) Geometry Encoding Using Octrees And Predictive Trees
US11132818B2 (en) Predicting attributes for point cloud compression according to a space filling curve
US11538196B2 (en) Predictive coding for point cloud compression
CN114981842A (zh) 点云的树内几何量化
US11454710B2 (en) Point cloud compression using a space filling curve for level of detail generation
CN115918088A (zh) 使用具有切片的八叉树的点云压缩
CN115702563A (zh) 使用具有多种扫描顺序的八叉树的点云几何压缩
KR20200039757A (ko) 포인트 클라우드 압축
US11887345B2 (en) Predictive coding for point cloud compression
US20240119641A1 (en) In-tree geometry quantization of point clouds
US11418769B1 (en) Viewport adaptive volumetric content streaming and/or rendering
CN113115019B (zh) 视频编解码方法、装置、计算机设备及存储介质
CN115720273A (zh) 点云编解码中的属性预测方法、装置、设备及存储介质
CN112188216A (zh) 视频数据的编码方法、装置、计算机设备及存储介质

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