一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于点云压缩的改进的预测编码的制作方法

2022-11-23 08:36:46 来源:中国专利 TAG:


1.本公开整体涉及包括多个点的点云的压缩和解压缩,每个点具有相关联的空间和/或属性信息。


背景技术:

2.各种类型的传感器(诸如光检测和测距(lidar)系统、3d相机、3d扫描仪等)可以捕获指示点在三维空间中的位置(例如在x、y和z平面中的位置)的数据。另外,此类系统除了针对相应点的空间信息之外还可捕获属性信息,诸如颜色信息(例如,rgb值)、强度属性、反射率属性、运动相关属性、模态属性或各种其他属性。在一些情况下,可以将附加属性分配给相应点,诸如捕获该点时的时间戳。由此类传感器捕获的点可以构成“点云”,该“点云”包括各自具有相关联的空间信息和一个或多个相关联的属性的一组点。在一些情况下,点云可以包括数千个点、数十万个点、数百万个点或甚至更多的点。另外,在一些情况下,与正由一个或多个传感器捕获的点云不同,可以例如在软件中生成点云。在任一种情况下,此类点云可包括大量数据,并且存储和传输这些点云可能成本高且耗时。


技术实现要素:

3.本公开描述了用于压缩或以其他方式编码点云的信息(诸如空间或其他几何信息或其他属性值)的预测编码技术。在一些实施例中,可以生成预测树以预测点云中的个别点的信息。预测树可包括例如一个或多个预测技术的指示,以及可以与预测技术结合使用以预测关于一个或多个点的信息的一个或多个祖先节点。在一些实施例中,可以基于关于传感器系统的已知或假定信息来生成预测树,该传感器系统用于获得关于点云的点的信息(例如,lidar系统)。这可提供特定技术益处,诸如改进编码过程的压缩效率和/或减少与编码和/或解码过程相关联的计算复杂性和时延。在一些实施例中,预测树可被编码以用信号通知点云信息,并且随后可被解码以在目的地处重构点云。
4.在一个方面,一种方法包括由计算机系统接收关于三维点云中的多个点的第一数据,其中该第一数据基于由传感器系统获得的一个或多个测量,并且其中该第一数据包括根据第一坐标系的该多个点中的至少一些点的第一空间坐标;由该计算机系统基于该第一数据确定关于该多个点的第二数据,其中该第二数据包括根据不同于该第一坐标系的第二坐标系的该多个点中的至少一些点的第二空间坐标,以及与该第二空间坐标相关联的一个或多个量化参数;以及由该计算机系统对该第二数据进行编码,其中对该第二数据进行编码包括生成具有多个节点的预测树,其中该预测树中的每个节点的值表示该多个点中的相应点的第二空间坐标,并且其中基于该第一节点的一个或多个祖先节点的值和该传感器系统的一个或多个特性来确定该预测树中的至少第一节点的值。
5.该方面的实施方式可包括以下特征中的一者或多者。
6.在一些实施方式中,第一坐标系可以是笛卡尔坐标系。
7.在一些实施方式中,第二坐标系可以是球面坐标系。
8.在一些实施方式中,可以根据一个或多个量化参数来量化第二空间坐标。
9.在一些实施方式中,一个或多个量化参数可包括相对于第二坐标系的一个或多个维度的一个或多个量化步长大小。
10.在一些实施方式中,传感器系统可包括一个或多个光检测和测距(lidar)传感器。
11.在一些实施方式中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的旋转速度。
12.在一些实施方式中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的物理排列。
13.在一些实施方式中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的发射图案。
14.在一些实施方式中,预测树的多个节点可根据多个分支来排列。每个分支可对应于一个或多个lidar传感器中的不同的光发射器。
15.在一些实施方式中,第二数据可包括一个或多个残差值。该一个或多个残差值可以基于(i)由点的第一空间坐标中的一者或多者表示的该点的第一位置与(ii)基于该点的第二空间坐标中的一者或多者估计的该点的第二位置之间的差来确定。
16.在一些实施方式中,对第二数据进行编码可包括存储多个残差值。
17.在另一方面,一种方法包括由计算机系统接收关于三维点云中的多个点的编码数据,其中该编码数据包括预测树和指示,该预测树具有基于关于该多个点的空间信息生成的多个节点,该指示表示获得该空间信息的传感器系统的一个或多个特性,其中该预测树中的每个节点的值表示根据第一坐标系的该多个点中的相应点的第一空间坐标,并且其中基于该第一节点的一个或多个祖先节点的值和该传感器系统的该一个或多个特性来确定该预测树中的至少第一节点的值;由该计算机系统对该编码数据进行解码,以确定关于该多个点的第一数据,其中该第一数据包括该多个点中的至少一些点的第一空间坐标以及与该第一空间坐标相关联的一个或多个量化参数;由该计算机系统基于该第一数据确定关于该多个点的第二数据,其中该第二数据包括根据不同于该第一坐标系的第二坐标系的该多个点中的至少一些点的第二空间坐标;以及由该计算机系统基于该第二数据生成该三维点云的表示。
18.该方面的实施方式可包括以下特征中的一者或多者。
19.在一些实施方式中,第一坐标系可以是球面坐标系。
20.在一些实施方式中,第二坐标系可以是笛卡尔坐标系。
21.在一些实施方式中,可以根据一个或多个量化参数来缩放第一空间坐标。
22.在一些实施方式中,一个或多个量化参数可包括相对于第一坐标系的一个或多个维度的一个或多个量化步长大小。
23.在一些实施方式中,传感器系统可包括一个或多个光检测和测距(lidar)传感器。
24.在一些实施方式中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的旋转速度。
25.在一些实施方式中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的物理排列。
26.在一些实施方式中,传感器系统的一个或多个特性可表示一个或多个lidar传感
器中的一个或多个光发射器的发射图案。
27.在一些实施方式中,预测树的多个节点可根据多个分支来排列。每个分支可对应于一个或多个lidar传感器中的不同的光发射器。
28.在一些实施方式中,第二数据可包括一个或多个第一残差值。确定第二数据还可包括根据第二坐标系对第二残差值进行解码,并将一个或多个第一残差值添加到第二残差值。
29.在一些实施方式中,预测树的多个节点可根据多个分支来排列。对编码数据进行解码可包括在对第二分支的节点中的每个节点进行解码之前对第一分支的节点中的每个节点进行解码。
30.在一些实施方式中,预测树的多个节点可根据多个分支来排列。对编码数据进行解码可包括根据预测树中的节点中的每个节点的分层级别对节点的解码进行优先级排序。
31.在一些实施方式中,生成三维点云的表示可包括生成虚拟现实内容或增强现实内容中的至少一者。
32.其他实施方式涉及其上存储有指令的系统、设备和非暂态计算机可读介质,这些指令当由一个或多个处理器执行时使得该一个或多个处理器执行本文所述的操作。
33.在下面的附图和具体实施方式中阐述了一个或多个实施例的细节。其他特征和优点将在具体实施方式和附图以及权利要求中显而易见。
附图说明
34.图1是示例性系统的图,该系统包括捕获点云的点的信息的传感器和压缩点云的属性信息和/或空间信息的编码器,其中压缩的点云信息被发送到解码器。
35.图2a是用于点云的预测编码的示例性技术的流程图。
36.图2b是示例性预测树的图。
37.图3是用于根据空间填充曲线生成预测树的示例性技术的流程图。
38.图4是用于根据可能的预测因子的缓冲区来生成预测树的示例性技术的流程图。
39.图5是示例性拓扑抽取操作的图。
40.图6是用于对点云的预测树进行解码的示例性技术的流程图。
41.图7是简化的示例性lidar系统的图。
42.图8a至图8b是示例性lidar系统模型的图。
43.图9是用于对关于三维点云中的点的信息进行编码的示例性预测树的图。
44.图10a是用于对关于三维点云中的多个点的信息进行编码的示例性过程的流程图。
45.图10b是用于对关于三维点云中的多个点的编码信息进行解码的示例性过程的流程图。
46.图11是用于在3d应用中使用压缩点云信息的示例性技术的流程图。
47.图12是用于在虚拟现实应用中使用压缩点云信息的示例性技术的流程图。
48.图13a是示例性编码器的图。
49.图13b是示例性解码器的图。
50.图14是用于实现编码器和/或解码器的示例性计算机系统的图。
51.本说明书包括参考“一个实施例”或“实施例”。出现短语“在一个实施例中”或“在实施例中”并不一定是指同一个实施例。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
[0052]“包括”,该术语是开放式的。如在所附权利要求书中所使用的,该术语不排除附加结构或步骤。考虑以下引用的权利要求:“一种包括一个或多个处理器单元...的装置”此类权利要求不排除该装置包括附加部件(例如,网络接口单元、图形电路等)。
[0053]“被配置为”,各种单元、电路或其他部件可被\描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件据称可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件——例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引35u.s.c.
§
112(f)。此外,“被配置为”可包括由软件和/或固件(例如,fpga或执行软件的通用处理器)操纵的通用结构(例如,通用电路)以能够执行待解决的一项或多项任务的方式操作。“被配置为”还可包括调整制造过程(例如,半导体制作设施),以制造适用于实现或执行一项或多项任务的设备(例如,集成电路)。
[0054]“第一”“第二”等。如本文所用,这些术语充当它们所在之前的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,缓冲电路在本文中可被描述为执行“第一”值和“第二”值的写入操作。术语“第一”和“第二”未必暗指第一值必须在第二值之前被写入。
[0055]“基于”。如本文所用,该术语用于描述影响确定的一个或多个因素。该术语不排除影响确定的附加因素。即,确定可仅基于这些因素或至少部分地基于这些因素。考虑短语“基于b来确定a”。在这种情况下,b为影响a的确定的因素,此类短语不排除a的确定也可基于c。在其他实例中,可仅基于b来确定a。
具体实施方式
[0056]
随着数据采集和显示技术变得更加先进,增强了(诸如经由lidar系统)捕获包括2d或3d空间中成千上万个点的点云的能力。而且,先进显示技术(诸如虚拟现实或增强现实系统)的发展增加了点云的潜在用途。然而,点云文件通常非常大,并且存储和传输这些点云文件可能成本高且耗时。例如,点云通过私有网络或公共网络(诸如互联网)的通信可能需要相当大量的时间和/或网络资源,使得点云数据的一些使用(诸如实时使用)可能受到限制。另外,点云文件的存储要求可能消耗存储点云文件的设备的显著量的存储容量,这也可能限制潜在应用使用点云数据。
[0057]
在一些实施例中,编码器可用于生成压缩点云以减少与存储和传输大的点云文件相关联的成本和时间。在一些实施例中,系统可包括压缩点云文件的属性信息和/或空间信息(在本文中也称为几何信息)的编码器,使得点云文件可比非压缩点云更快地被存储和传输,并且以点云文件可比非压缩点云占据更少的存储空间的方式被存储和传输。在一些实施例中,点云中的点的空间信息和/或属性的压缩可使点云能够实时地或近实时地通过网络传送。例如,系统可包括传感器,该传感器捕获关于该传感器所在环境中的点的空间信息
和/或属性信息,其中所捕获的点和对应的属性构成点云。该系统还可包括压缩所捕获点云的属性信息的编码器。点云的压缩属性信息可通过网络实时或近实时地发送到对点云的压缩属性信息进行解压缩的解码器。该解压缩点云可被进一步处理,例如以基于传感器位置处的周围环境做出控制决策。然后可将控制决策传送回传感器位置处或其附近的设备,其中接收控制决策的设备实时地或近实时地实现控制决策。
[0058]
在一些实施例中,解码器可以与增强现实系统相关联,并且解压缩空间和/或属性信息可以由增强现实系统显示或以其他方式使用。在一些实施例中,可将点云的压缩属性信息与点云的点的压缩空间信息一起发送。在其他实施例中,空间信息和属性信息可以被分别编码和/或分别传输到解码器。
[0059]
在一些实施例中,系统可包括解码器,该解码器经由网络从远程服务器或存储一个或多个点云文件的其他存储设备接收包括压缩属性信息的一个或多个点云文件。例如,可实时地或近实时地操纵3d显示器、全息显示器或头戴式显示器来显示由点云表示的虚拟世界的不同部分。为了更新3d显示器、全息显示器或头戴式显示器,与解码器相关联的系统可以基于显示器的用户操纵从远程服务器请求点云文件,并且这些点云文件可以从远程服务器传输到解码器并由解码器实时地或近实时地进行解码。然后可用响应于用户操纵用更新的点云数据(诸如更新的点属性)来更新显示器。
[0060]
在一些实施例中,系统可包括一个或多个lidar系统、3d相机、3d扫描仪等,并且此类传感器设备可捕获空间信息,诸如传感器设备的视图中的点的x、y和z坐标。在一些实施例中,空间信息可相对于局部坐标系或可相对于全局坐标系(例如,笛卡尔坐标系可具有固定的参考点诸如地球上的固定点,或者可具有不固定的局部参考点诸如传感器位置)。
[0061]
在一些实施例中,此类传感器还可以捕获一个或多个点的属性信息,诸如颜色属性、反射率属性、速度属性、加速度属性、时间属性、模态和/或各种其他属性。在一些实施例中,除了lidar系统、3d相机、3d扫描仪等之外,其他传感器可捕获待包括在点云中的属性信息。例如,在一些实施例中,陀螺仪或加速度计可捕获待包括在点云中的运动信息作为与该点云的一个或多个点相关联的属性。例如,配备有lidar系统、3d相机或3d扫描仪的车辆可能会在由lidar系统、3d相机或3d扫描仪捕获的点云中包括车辆的方向和速度。例如,当捕获到车辆视野中的点时,这些点可被包括在点云中,其中该点云包括所捕获的点以及对应于在捕获到点时车辆的状态的相关联运动信息。
[0062]
在一些实施例中,属性信息可包括字符串值,例如不同模态。例如,属性信息可包括指示模态诸如“步行”、“跑步”、“驾驶”等的字符串值。在一些实施例中,编码器可包括“字符串值”到整数索引,其中某些字符串与某些对应的整数值相关联。在一些实施例中,点云可通过包括与该字符串值相关联的整数作为该点的属性来指示针对该点的字符串值。编码器和解码器均可将公共字符串值存储到整数索引,使得解码器可以基于在与解码器的字符串值到整数索引匹配或类似的解码器的字符串值到整数索引中查找该点的字符串属性的整数值来确定针对点的字符串值。
[0063]
在一些实施例中,除了压缩关于点云的点的属性的属性信息之外,编码器还对点云的几何或其他空间信息进行压缩和编码。
[0064]
在一些实施例中,一些应用可能对于对点云进行编码和解码的所花费的时延或时间敏感。虽然一些点云编码技术可以实现提供良好压缩结果的特征,诸如在基于几何的点
云压缩(g-pcc)中利用的八叉树,但是对点云数据进行编码和解码的时间可能限制压缩在时延敏感应用中的利用。例如,虽然八叉树技术可为致密点云提供极佳的压缩结果,但是稀疏点云的增益(例如,稀疏lidar点云)可能不会这样有效,因为构建八叉树并计算八叉树的特征(诸如相邻占用信息)的计算复杂性可能导致计算成本超过所获得的压缩增益。此外,在一些情况下,一些编码技术(如基于八叉树的编码)可能引起高时延(例如,通过在压缩/解压缩过程可能开始之前使用大量的点)。在各种实施例中,预测编码技术可提供各种性能益处,包括低时延实施方式,这些低时延实施方式可以实现更高性能的计算成本和时间成本。
[0065]
例如,下文所讨论的预测编码技术可被实现用于低时延或其他时延敏感的应用,允许低延迟流,并且用低复杂性解码来实现。
[0066]
图1示出了系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的属性和/或空间信息的编码器,其中压缩的属性和/或空间信息被发送到解码器。
[0067]
系统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)可包括在公共压缩点云中,该公共压缩点云还包括关于该点云的点的压缩空间信息,或者在一些实施例中,压缩空间信息和压缩属性信息可以作为单独的文件进行传送。
[0068]
在一些实施例中,编码器104可以与传感器102集成。例如,编码器104可在包括在传感器设备(诸如传感器102)中的硬件或软件中实现。在其他实施例中,编码器104可在邻近传感器102的独立计算设备上实现。
[0069]
图2a是示出根据一些实施例的用于对点云进行预测编码的各种技术的高级流程图。如步骤阶210所示,可生成预测树,该预测树包括来自构成从传感器捕获的点云中的点的多个节点。预测树可用作预测结构,其中点云中的每个点与预测树的节点(有时被称为顶点)相关联。在一些实施例中,可以仅从树中的节点的祖先(例如,预测节点的父节点、祖父节点等)预测每个节点。
[0070]
作为生成预测树的一部分,可选择点云中的个别点用于包括在预测树中,如步骤220所示。如步骤230所示,可根据应用于预测树中的祖先节点的预测技术来确定该个别点的预测节点值。下文所讨论的图3和图4提供了示例性预测树生成技术。
[0071]
可实现各种预测技术来从祖先节点预测节点。这些预测技术可作为预测模式或预测指示符而用信号通知(例如,映射到预测模式值“0”=预测技术a,“1”=预测技术b,以此类推)。在一些实施例中,预测树中的节点(与点云中的一个点对应)可能不具有预测技术,因为该节点可能是预测树的第一个节点或根节点。在一些实施例中,这种节点的预测模式可指示为“无”或“根”。可对此类节点的实际信息(例如,空间信息和/或属性信息)进行编
码,而不是对用于推导出实际信息的树中的其他节点的预测信息进行编码。
[0072]
如图2b所示,预测树260可包括根据应用于一个或多个祖先节点的预测技术预测的各种节点,其由箭头指示。例如,根据下文所讨论的预测技术中的各种预测技术,可通过祖先节点266预测叶节点264。可能不预测一些节点(如根节点262),但使用实际值对其进行编码作为预测树260的一部分。
[0073]
在一些实施例中,可实现或支持δ预测作为预测技术。δ预测可使用当前节点的父节点的位置作为当前节点的预测因子。
[0074]
在一些实施例中,可实现或支持线性预测作为预测技术。例如,在线性预测中,点“p0”可以是父节点的位置,并且“p1”可以是祖父节点的位置。当前节点的位置可被预测为(2
×
p0-p1)。
[0075]
在一些实施例中,可实现或支持平行四边形预测作为预测技术。例如,在平行四边形预测中,“p0”可以是父节点的位置,“p1”可以是祖父节点的位置,并且“p2”是曾祖父节点的位置。然后可将当前节点的位置确定为(p0 p1-p2)。
[0076]
在一些实施例中,可实现或支持极性预测作为预测技术。例如,在极性预测中,(θ0,r0,z0)可以是父节点的极坐标,并且(θ1,r1,z1)可以是祖父节点的极坐标。当前节点的位置可被预测为
[0077]
在一些实施例中,可实现或支持经修改的极性预测作为预测技术。例如,在经修改的极性预测中,(θ0,r0,z0)可以是父节点的极坐标,并且(θ1,r1,z1)是祖父节点的极坐标。当前节点的位置可被预测为(2θ
0-θ1,r0,z0)。
[0078]
在一些实施例中,可实现或支持平均预测作为预测技术。例如,在平均预测中,“p0”可以是父节点的位置,“p1”可以是祖父节点的位置。当前节点的位置可被预测为(p0 p1/2)。
[0079]
在一些实施例中,可实现或支持3阶的平均预测作为预测技术。例如,在3阶的平均预测中,“p0”可以是父节点的位置,“p1”可以是祖父节点的位置,并且“p2”可以是曾祖父节点的位置。当前节点的位置可被预测为(p0 p1 p2/3)。
[0080]
在一些实施例中,可实现或支持k阶的平均预测作为预测技术。例如,在k阶的平均预测中,当前节点的祖先节点的位置可被平均为至多k阶的祖先节点。
[0081]
在一些实施例中,可根据率失真优化过程确定对要应用于预测树的每个节点的预测技术的选择。在一些实施例中,该选择可适应于每个节点或每组节点。在一些实施例中,可在比特流中显式地用信号通知该选择,或者可基于预测图中节点的位置以及节点祖先的解码位置和预测模式来隐式地推导出该选择。
[0082]
如步骤240所示,可对预测树进行编码,该预测树包括应用于确定预测节点值的预测技术。例如,节点可以与多个子节点一起被编码,并且具有用于确定每个子节点的相应预测模式的指示。在一些实施例中,预测模式可以对每个子节点是相同的,对每个子节点是不同的,或者对每个子节点是独立确定的(即使被确定为是相同的)。在各种实施例中,可通过按预定义顺序(例如,深度优先、宽度优先)遍历树并且针对每个节点对其子节点的数量进行编码来对预测树进行编码。在一些实施例中,可通过以下方式来对节点的位置进行编码:首先对所选预测模式进行编码,然后在预测之后对所获得的残差进行编码。在一些实施例
中,子节点的数量、预测模式和预测残差可被熵编码(例如,算术编码)以便进一步利用统计相关性。在一些实施例中,可以通过压缩每个残差的符号、最高有效位的位置和剩余位的二进制表示来对残差进行编码。在一些实施例中,可通过基于第一编码分量的编码值使用不同的熵/算术上下文来利用x、y、z坐标之间的相关性。
[0083]
如步骤250所示,可(例如根据上文关于图1和下文关于图11、图12和图13a所讨论的各种示例)发送或存储点云的编码预测树。
[0084]
图3是示出用于根据空间填充曲线生成预测树的各种技术的高级流程图。如步骤310所示,在一些实施例中,空间填充曲线(例如,morton顺序)可用于确定点云的点的值(例如,morton码)。如320所示,可根据空间填充曲线值选择第一个或下一个点,以将其作为节点添加到预测树中。
[0085]
如步骤330所示,可根据从先前所选择的点确定的可能预测因子的k维(k-d)树来确定所选择点的k个最近邻。如步骤340所示,可从k个最近邻中选择节点作为用于要添加的节点的预测因子。例如,可根据预测残差的量值、节点所具有的子节点的数量和/或所选预测模式的频率来选择节点。如步骤350所示,可将子节点作为所选择节点的子节点添加到预测树。如步骤360所示,可将所添加节点的新的可能预测因子(例如,根据上文所讨论的预测技术生成的预测值)添加到k-d树。如步骤380所示,如果仍有另一点要添加到预测树,则可重复技术的特征。
[0086]
如步骤380所示,当添加了所有点时,可提供预测树用于编码。
[0087]
在一些实施例中,在执行图3所示的技术之前,可将点解压缩成各种细节级别(lod)。例如,可从最粗lod开始到最细lod的顺序对lod进行编码。在这种实施例中,可能预测因子和预测位置可添加到k-d树中。在一些实施例中,不同的量化参数可用于不同的lod(例如,较小的量化步长用于最粗lod)以便获得更好的率失真(rd)性能。在一些实施例中,可利用lod或其他分级预测结构来实现时间可伸缩性、空间可伸缩性、质量可伸缩性和渐进式传输的功能。以此方式,可首先对粗lod进行流式传输和解码,然后可基于网络条件、终端能力和点云到观看者的距离对粒度逐渐增大的lod进行自适应地流式传输和解码。
[0088]
对于较低时延方法(例如,当与图3的技术进行比较时),编码器可按与接收输入点云的顺序相同的顺序处理该输入点云。可实现有限缓冲的缓冲区n,其根据允许缓冲点的数量为b(例如,b=1024个点)来测量。在一些实施例中,b可以是根据应用时延要求的严格程度来调整的解码器参数。在一些实施例中,当寻找每个顶点的最佳预测因子时,编码器可能仅考虑缓冲区中的点。图4是示出用于根据可能的预测因子的缓冲区来生成预测树的各种技术的高级流程图。
[0089]
如步骤410所示,可将来自点云的点添加到大小为n的点的缓冲区。如步骤420所示,可从该缓冲区中选择要作为节点添加到预测树的点。如步骤430所示,缓冲区中的剩余点可被评估为所选择点的可能预测因子。例如,如上文关于图3所讨论的,可根据预测残差的量值、点的对应节点所具有的子节点的数量和/或所选预测模式的频率来评估缓冲区中的剩余点。
[0090]
如步骤440所示,可将节点作为所评估的可能预测因子中的一个预测因子的子节点添加到预测树。如果仍有另一点要添加到预测树,则如步骤450的肯定退出所示,可重复步骤410至440。如步骤460所示,当所有点都已经被添加到预测树时,可提供该预测树用于
编码。
[0091]
在一些实施例中,预测树可用于对空间信息(诸如几何形状)或各种其他属性(例如,颜色信息)进行压缩或以其他方式进行编码。在一些情况下,可使用不同节点的相同预测因子,并且在用于属性的比特流中对这些相同预测因子进行可能地显式地编码。可伸缩性和低时延性质可直接从预测树生成策略继承。
[0092]
在另选实施例中,预测编码技术可仅应用于空间信息,而另选技术可用于对属性进行编码(例如,根据g-pcc属性编码方案的属性的升降、区域自适应分级变换(raht)或预测方案)。为了实现低时延应用,可在禁用属性编码之前应用点的morton重新排序。
[0093]
在一些实施例中,可修改分级预测和升降方案(例如,在g-pcc中定义),以利用预测方案来指导抽取过程和最近邻的检测过程。例如,可通过使用边缘塌缩算子或任何其他拓扑抽取算子来应用抽取过程。图5是示出示例性拓扑抽取操作的逻辑图。拓扑抽取操作500可以将vu和vt塌缩或组合成vs。
[0094]
在一些实施例中,选择要应用于生成lod的边缘塌缩操作或其他拓扑抽取操作的标准可通过距离标准(例如,合并点之间的距离)和/或由编码器包括在比特流中的显式信息来指导。在一些实施例中,最近邻搜索可限于树结构中的邻点,或者可使用预测树结构来加速该最近邻搜索。
[0095]
图6是示出用于对点云的预测树进行解码的各种技术的高级流程图。如步骤610所示,可接收点云的点的编码预测树。如步骤620所示,可以对点云的点的预测树进行解码。例如,可执行用于解开熵或其他编码技术的技术。
[0096]
在至少一些实施例中,编码预测树可包括足以根据预测树的解码内容生成预测树的信息(例如,不执行与上文关于图3和图4所讨论的相同的树生成技术)。例如,如步骤630所示,所选择节点(例如,根节点)可被解码为点云中的第一点。然后,如步骤640所示,可以根据所包括的用于子节点的预测技术来对所选择节点的任何子节点进行解码。
[0097]
在一些实施例中,如步骤650所示,可进行关于子节点中的任一子节点是否具有其自身的子节点的确定。例如,可为每个所包括的点考虑所包括的子节点数量。如果存在任何子节点,则可再次执行步骤640中的技术。如步骤660所示,一旦完成,就可输出来自预测树的解码点云(例如,用于进一步处理、显示和/或存储)。
[0098]
在一些实施例中,可基于关于传感器系统的已知或假定信息来生成预测树,该传感器系统用于获得关于点云的点的信息。例如,如果lidar系统用于生成表示特定对象(例如,lidar系统的视场中的对象)的点,则可基于lidar系统的特性来生成预测树,这些特性诸如lidar系统的光发射器在测量其环境时旋转的速度、lidar系统中的光发射器的数量、那些光发射器的物理排列和/或那些光发射器的发射图案。这可提供特定技术益处,诸如改进编码过程的压缩效率和/或减少与编码和/或解码过程相关联的计算复杂性和时延。
[0099]
图7示出了lidar系统700的简化示例。lidar系统700包括旋转扫描模块702以及安装到扫描模块702的一个或多个光发射器704和一个或多个光检测器706。lidar系统700还包括通信地耦接到光发射器704和光检测器706的控制模块708。
[0100]
在lidar系统700的操作期间,扫描模块702旋转(例如,围绕z轴)以扫描环境。当扫描模块702旋转时,光发射器704发射光(例如,一个或多个激光束),并且光检测器706检测从环境(例如,由环境中的一个或多个对象)反射回扫描模块702的光。反射光的返回时间
和/或波长的差异可用于制作环境的数字3d表示。
[0101]
可使用控制模块708来控制lidar系统700的部件。此外,控制模块708可处理由lidar系统700接收的数据(例如,来自一个或多个光检测器706的测量数据)。此外,控制模块708可记录数据以供进一步处理,和/或将数据传输到另一设备以供进一步处理。在一些实施例中,由lidar系统700收集的数据可由编码器进行编码(例如,以便于将数据分发到其他系统),并且随后由解码器进行解码(例如,以便于其他系统使用数据)。在一些实施例中,lidar系统700可用于产生关于环境中的一个或多个对象的空间信息,例如以点云的形式。
[0102]
可使用数学模型来表示lidar系统700的操作。例如,lidar系统700可具有根据方位角φ(例如,如图8a所示)围绕z轴旋转的n个光发射器704(例如,n=16、32、64或任何其他数量的光发射器)。
[0103]
每个光发射器704可具有不同的相应仰角θ(i)
i=1
…n(例如,由光发射器发射的光束802相对于x-y平面的角度)。作为例示性示例,图8b示出了其中16个光发射器根据不同的相应仰角发射光束的配置。
[0104]
此外,每个光发射器可具有不同的相应高度(例如,光发射器704距参考点(诸如坐标系的原点)的z偏移)。
[0105]
在图8a所示的示例中,光束i(由光发射器704之一发射)以笛卡尔整数坐标(x,y,z)击中环境中的点m。可用关于球面坐标系的三个参数(r,φ,i)来建模m的位置,其中:
[0106][0107]
φ=atan2(y,x)(方程2)
[0108][0109]
函数“atan2”被定义为在欧几里得平面中正x轴和到点的射线(x,y)≠(0,0)之间的角度,以弧度给出。
[0110]
在一些实施方式中,可量化这些参数中的一个或多个参数。这例如在降低模型的复杂性方面是有益的。例如,(r,φ,i)的量化版本可以表示为并且可以如下计算三个整数和i:
[0111][0112][0113][0114]
函数“hypot”是被定义为计算直角三角形的斜边r的长度的数学函数,其中
[0115]
(qr,or)和(q
φ
,o
φ
)分别是控制(例如,q
φ
=2π
×
2-16
,o
φ
=0.5)和(例如,qr=1,oφ
=0.5)的精度的量化参数。
[0116]“sign”(t)是如果t为正则返回1,否则返回(-1)的函数。
[0117]
|t|是t的绝对值。
[0118]
可以使用各种量化技术来确定量化参数例如,可使用以下关系以与关于高效率视频编码(hevc)技术标准所描述的方式类似的方式量化参数,其中可根据量化参数qp将参数p量化为值q:
[0119]
q=sign(p)*((abs(p)*scaleconstant[qp%6] offset)》》(15 qp/6))
ꢀꢀ
(方程7)
[0120]
其中scaleconstant是6元素表,并且offset是舍入参数,该参数控制量化之后该值应该被向上舍入还是向下舍入。上述模型允许在不需要除法操作的情况下执行量化和解量化(例如,qp/6可离线计算),从而降低复杂性。可使用以下关系等效地执行此类模型中的去量化:
[0121]
p=clip3(pmin,pmax,((q*levelscale[qp%6]《《(qp/6)) (1《《(bdshift-1)))》》bdshift),
ꢀꢀ
(方程8)
[0122]
其中levelscale是6元素阵列,其结合bdshift的值,将先前由等效scaleconstant元素应用的缩放和右移反转15。clip3是以下形式的函数:
[0123][0124]
并且pmin和pmax是重构参数的最小和最大允许值。
[0125]
在一些实施例中,参数p可根据量化参数qp使用以下关系或其整数近似量化为值q,如国际申请pct/us2021/012827(其内容通过引用整体并入本文)中所述:
[0126][0127]
q=sign(p)*round(abs(p)
÷
stepsize)
ꢀꢀ
(方程11),
[0128]
其中stepsize是量化步长大小。
[0129]
可使用以下整数关系等效地执行此类模型中的去量化:
[0130]
stepsize

=(8 (qp%8))《《(qp/8)
ꢀꢀ
(方程12)
[0131]
p=sign(q)*((abs(q)*stepsize

4)》》3)
ꢀꢀ
(方程13)
[0132]
在一些实施例中,可使用其他量化技术。
[0133]
在一些实施例中,不是计算方程4中的“hypot”(x,y),可使用较低的复杂性技术来近似“hypot”(x,y)(例如,以减少执行该过程所需的计算资源)。作为示例,可使用函数的多项式近似来近似“hypot”(x,y)。作为另一示例,可以使用函数“hypotapx”(x,y)来近似“hypot”(x,y),其中hypotapx(x,y)=abs(x) abs(y)-((sqrt(2)-1)*min(abs(x),abs(y)))(例如,如http://danielnouri.org/docs/supercolliderhelp/binaryops/hypotapx.html中所述)。作为另一示例,可使用关系h=((sqrt(2)-1)*x) y来近似“hypot”(x,y),其中x和y为正值,并且z≤y(例如,如https://stackoverflow.com/questions/3506404/fast-hypotenuse-algorithm-for-embedded-processor中所述)。作为另一示例,可使用莫勒-莫里森方案来近似“hypot”(x,y)(例如,如
https://ieeexplore.ieee.org/document/5390405中所述)。作为另一示例,可使用dubrulle方法来近似“hypot”(x,y)(例如,如https://ieeexplore.ieee.org/document/5390406中所述)。
[0134]
在一些实施例中,可以应用围绕初始解的局部搜索以进一步细化量化。作为示例,量化算法可包括在集合合中应用穷举搜索。其目的是找到这最小化了下述重构残差(r
x
,ry,rz)。
[0135]
为了避免由于使用浮点运算而导致的重构失配,可以预先计算并量化and tan(θ(i))
i=1
…n的值如下:
[0136][0137][0138]
和(q
θ
,o
θ
)是分别控制(例如,)和(例如,q
θ
=2
20
,o
φ
=0.5)的精度的量化参数。
[0139]
可以使用各种量化技术来确定量化参数例如,可以与关于hevc技术标准所描述的方式类似的方式量化参数,其中参数p可以根据以下关系量化为值q:
[0140]
q=sign(p)*((abs(p)*scaleconstant[qp%6] offset)》》(15 qp/6))
ꢀꢀ
(方程16)
[0141]
其中scaleconstant是6元素表,并且offset是舍入参数,该参数控制量化之后该值应该被向上舍入还是向下舍入。上述模型允许在不需要除法操作的情况下执行量化和解量化(例如,qp/6可离线计算),从而降低复杂性。可使用以下关系等效地执行此类模型中的去量化:
[0142]
p=clip3(pmin,pmax,((q*levelscale[qp%6]《《(qp/6)) (1《《(bdshift-1)))》》bdshift)
ꢀꢀ
(方程17)
[0143]
其中levelscale是6元素阵列,其结合bdshift的值,将先前由等效scaleconstant元素应用的缩放和右移反转15。clip3是以下形式的函数:
[0144][0145]
并且pmin和pmax是重构参数的最小和最大允许值。
[0146]
在一些实施例中,参数p可根据量化参数qp使用以下关系或其整数近似量化为值q,如国际申请pct/us2021/012827中所述:
[0147][0148]
q=sign(p)*round(abs(p)
÷
stepsize)
ꢀꢀ
(方程20)
[0149]
可使用以下整数关系等效地执行此类模型中的去量化:
[0150]
stepsize

=(8 (qp%8))《《(qp/8)
ꢀꢀ
(方程21)
[0151]
p=sign(q)*((abs(q)*stepsize

4)》》3)
ꢀꢀ
(方程22)
[0152]
重构的笛卡尔坐标可如下确定:
[0153][0154][0155][0156]
可以使用浮点表示或定点表示来执行上述计算。
[0157]
app_cos(.)分别是cos(.)和sin(.)的近似值。可根据一种或多种近似技术来实现函数和例如使用具有线性(或任何其他)内插的查找表、坐标旋转数字计算机(cordic算法)、正弦/余弦函数的多项式近似或它们的任何组合。
[0158]
在一些实施例中,可能由于诸如量化、近似、模型不精确和/或模型参数不精确的各种原因而不同于(x,y,z)。
[0159]
重构残差(r
x
,ry,rz)可以如下确定:
[0160][0161][0162][0163]
示例性编码器操作
[0164]
编码器可以基于本文描述的技术和关系对关于点云中的点的信息进行编码。下面更详细地描述示例性编码过程。
[0165]
编码器对模型参数和以及量化参数qr、q
θ
和q
φ
进行编码。在一些实施例中,这些参数中的一个或多个参数可以被编码为整个点云的固定集合。在一些实施例中,这些参数中的一个或多个参数可以针对点云的不同子集被单独编码。例如,可以在每帧、每片和/或每“点组”的基础上对这些参数中的一个或多个参数进行编码。此外,参数调整和/或更新可以被编码在比特流中。
[0166]
接下来,编码器将几何预测方案应用于表示在一些实施例中,几何预测方案可以类似于关于图2至图6所示出和描述的方案。例如,可以生成预测树以预测点云中的个别点的信息。预测树可包括例如一个或多个预测技术的指示,以及可以与预测技术结合使用以预测关于一个或多个点的信息的一个或多个祖先节点。
[0167]
此外,可基于关于传感器系统的已知或假定信息来生成预测树,该传感器系统用于获得关于点云的点的信息。例如,如果lidar系统用于生成表示特定对象(例如,lidar系统的视场中的对象)的点,则可基于lidar系统的特性来生成预测树,这些特性诸如lidar系统的光发射器在测量其环境时旋转的速度、lidar系统中的光发射器的数量、那些光发射器
的物理排列和/或那些光发射器的发射图案。
[0168]
作为示例,在一些实施例中,lidar系统的扫描模块(例如,扫描模块702)绕z轴的旋转速度可以是恒定的。因此,可以使用以下预测因子关系来表示电流
[0169][0170]
其中δ
φ
是常数(例如,对应于扫描模块的旋转速度)。在一些实施例中,δ
φ
可被定义为lidar模型的另一参数(例如,如关于图8a和图8b所示出和描述的)。
[0171]
在一些实施例中,光发射器可以发射不从环境反射的光束(例如,没有来自该光束的光返回到lidar系统)。为了考虑这种可能性,预测因子关系可以概括如下:
[0172][0173]
其中n(j)是跳过的点的数量(例如,由于缺少从这些点返回的反射光)。在一些实施例中,可以将n(j)显式地写入比特流。在一些实施例中,可以基于编码器和解码器两者应用的确定性策略从上下文推断n(j)。
[0174]
在一些实施例中,可以进一步概括预测因子关系,以考虑lidar系统的扫描模块的变化的旋转速度。例如,预测因子关系可以概括如下:
[0175][0176]
其中(δ
φ
(k))
k=1
…k是编码器可以从中选择的一组潜在旋转速度。在一些实施例中,可以将索引k显式地写入比特流。在一些实施例中,可基于编码器和解码器两者应用的确定性策略从上下文推断索引k。
[0177]
编码器可以对这些参数中的一个或多个参数进行编码。例如,编码器可以基于每个节点对预测树、预测模式和/或参数中的一个或多个参数进行编码。
[0178]
接下来,编码器利用每个节点对重构残差(r
x
,ry,rz)进行编码(例如,通过使用任何熵编码器,诸如算术编码器)。
[0179]
在一些实施例中,可以考虑重构残差的附加预测(例如,除了上述预测之外)。在一些实施例中,可以考虑任何线性或非线性预测因子(例如,除了上述预测因子之外)。
[0180]
在一些实施例中,重构残差(r
x
,ry,rz)可被编码为三元组或在块级被不同地重新排列以进行更好的压缩。例如,编码器可从所有(或n个)节点获得所有r
x
值并且首先对其进行编码,接着类似地对所有ry值进行编码,接着类似地对所有rz值进行编码。然后,编码器可以转到下一组/块点。在一些实施例中,编码器可使用一些编码值(例如,r
x
值)来预测或更好地选择剩余值(例如,ry和rz值)的熵编码上下文。
[0181]
示例性解码器操作
[0182]
解码器可以基于本文描述的技术和关系对关于点云中的点的编码信息进行解码。下面更详细地描述示例性解码过程。
[0183]
首先,解码器对模型参数和以及量化参数qr、q
θ
和q
φ
进行解码。
[0184]
接下来,解码器根据几何预测方案(例如,如关于图2至图6和/或上面的示例性编码操作所示出和描述的几何预测方案)对与节点相关联的参数进行解码。例如,解
码器可以基于每个节点对编码在编码信息中的预测树、预测模式和/或一个或多个参数进行解码。基于该解码数据,解码器可计算重构参数,如上所述。
[0185]
接下来,解码器如上所述地计算重构坐标
[0186]
接下来,解码器对残差(r
x
,ry,rz)进行解码。如下面进一步详细描述,在一些实施例中,可以通过量化重构残差(r
x
,ry,rz)来支持有损压缩。
[0187]
接下来,解码器计算原始坐标(x,y,z)如下:
[0188][0189][0190][0191]
有损压缩
[0192]
在上述示例中,以无损方式对关于点云的点的信息进行编码。在一些实施例中,可以以有损方式对关于点云的点的信息进行编码。例如,可以通过对重构残差(r
x
,ry,rz)应用量化或通过丢弃点来执行有损压缩。作为另一示例,可通过组合点来执行有损压缩(例如,通过首先组合点,诸如通过n个点的加权平均,然后丢弃所有其他点)。
[0193]
在一些实施例中,量化的重构残差可如下计算:
[0194][0195][0196][0197]
其中(q
x
,o
x
)、(qy,oy)和(qz,oz)是分别控制和的精度的量化参数。
[0198]
在一些实施例中,网格量化可用于进一步改善率失真(rd)性能结果。
[0199]
此外,在一些实施方式中,可以以关于hevc技术标准所描述的方式类似的方式量化值,其中可以根据以下关系将值p量化为值q:
[0200]
q=sign(p)*((abs(p)*scaleconstant[qp%6] offset)》》(15 qp/6))
ꢀꢀ
(方程38)
[0201]
其中scaleconstant是6元素表,并且offset是舍入参数,该参数控制量化之后该值应该被向上舍入还是向下舍入。上述模型允许在不需要除法操作的情况下执行量化和解量化(例如,qp/6可离线计算),从而降低复杂性。可使用以下关系来执行此类模型中的去量化:
[0202]
p=clip3(pmin,pmax,((q*levelscale[qp%6]《《(qp/6)) (1《《(bdshift-1)))》》bdshift)
ꢀꢀ
(方程39)
[0203]
其中levelscale是6元素阵列,其结合bdshift的值,将先前由等效scaleconstant
元素应用的缩放和右移反转15。clip3是以下形式的函数:
[0204][0205]
并且pmin和pmax是重构参数的最小和最大允许值。
[0206]
在一些实施例中,参数p可根据量化参数qp使用以下关系或其整数近似量化为值q,如国际申请pct/us2021/012827中所述。
[0207][0208]
q=sign(p)*round(abs(p)
÷
stepsize)
ꢀꢀ
(方程42)
[0209]
可使用以下整数关系等效地执行此类模型中的去量化:
[0210]
stepsize

=(8 (qp%8))《《(qp/8)
ꢀꢀ
(方程43)
[0211]
p=sign(q)*((abs(q)*stepsize

4)》》3)
ꢀꢀ
(方程44)
[0212]
在一些实施例中,可在比特流中显式地用信号通知量化参数。在一些实施例中,可由编码器和解码器基于编码/解码上下文隐式地导出量化参数。在一些实施例中,这些值可以在序列/帧/片/块级别改变。在一些实施例中,可以为整个点云设置这些值。
[0213]
低复杂性预测树生成
[0214]
在一些实施例中,可生成预测树,使得其表示使用多个不同光发射器测量的点。对于预测树中的每个节点,预测树可包括关于特定点的信息(例如,关于点的空间信息)和我们用来测量该点的光发射器的指示(例如,光发射器或激光发射器索引)。作为示例,图9示出了具有多个互连节点的预测树900。节点902a对应于使用第一激光发射器测量的点(例如,索引0),节点902b对应于使用第二激光发射器测量的点(例如,索引1),节点902c对应于使用第三激光发射器测量的点(例如,索引2),并且节点902d对应于使用第四激光发射器测量的点(例如,索引3)。
[0215]
一般来说,每个节点可具有与相同激光器索引i相关联的最近节点作为父节点(例如,形成具有共同激光器索引i的分支)。如果此类节点不可用,则当前节点可使用具有最小预测残差的具有不同激光器索引j的节点作为父节点。
[0216]
在一些实施例中,可以通过以预定顺序(例如,深度优先、广度优先)遍历预测树来对预测树进行编码和/或解码。作为示例,在深度优先遍历中,在遍历其他分支之前,完全遍历一个分支。完全遍历分支,直到遍历了所有的分支。作为另一示例,在广度优先遍历中,在遍历另一分层级别(例如,较低级别)的节点之前,首先遍历一个分层级别(例如,较高级别)的节点。完全遍历各级别,直到遍历了所有级别。
[0217]
其他坐标系
[0218]
在本文描述的示例中,笛卡尔坐标(x,y,z)被编码为量化的球面坐标然而,实际上,可将任何坐标系的坐标编码和/或量化为任何其他坐标系的坐标。例如,可以将笛卡尔坐标(x,y,z)编码和/或量化为坐标(x,y,i)、(x,r,i)、(y,r,i)、或根据任何坐标系的任何其他坐标。作为另一示例,这些编码的和/或量化的坐标可以被再次解码以获得笛卡尔坐标(x,y,z)。
[0219]
在一些实施例中,编码器和解码器可以在序列、帧和/或子区域(例如,块)级别在不同的坐标系表示之间切换。在一些实施例中,在不同表示之间切换的决定可以在比特流中用序列/帧/块级别提供的语法元素显式地发信号通知。在一些实施例中,在不同表示之间切换的决定可以是由编码器和解码器共享的隐式策略。
[0220]
在一些实施例中,可以基于rd性能和/或编码器/解码器侧的计算复杂性来做出在不同表示之间切换的决定。
[0221]
示例性过程
[0222]
图10a示出了用于对关于三维点云中的多个点的信息进行编码的示例性过程1000。过程1000可以至少部分地使用一个或多个计算机模块和/或设备(例如,图13a和图14中所示的一个或多个模块和/或计算机系统)来执行。
[0223]
根据过程1000,计算机系统接收关于三维点云中的多个点的第一数据(步骤1002)。第一数据基于由传感器系统获得的一个或多个测量。第一数据包括根据第一坐标系的这些点中的至少一些点的第一空间坐标。在一些实施例中,第一坐标系可以是笛卡尔坐标系。
[0224]
计算机系统基于第一数据确定关于多个点的第二数据(步骤1004)。第二数据包括根据不同于第一坐标系的第二坐标系的这些点中的至少一些点的第二空间坐标。在一些实施例中,第二坐标系可以是球面坐标系。
[0225]
第二数据还包括与第二空间坐标相关联的一个或多个量化参数。可以根据一个或多个量化参数来量化第二空间坐标。在一些实施例中,一个或多个量化参数可包括相对于第二坐标系的一个或多个维度的一个或多个量化步长大小。
[0226]
计算机系统对第二数据进行编码(步骤1006)。对第二数据进行编码包括生成具有多个节点的预测树。预测树中的每个节点的值表示多个点中的相应点的第二空间坐标。基于第一节点的一个或多个祖先节点的值和传感器系统的一个或多个特性来确定预测树中的至少第一节点的值。
[0227]
在一些实施例中,传感器系统可包括一个或多个光检测和测距(lidar)传感器(例如,图7所示的lidar系统700中的一个或多个传感器)。在一些实施例中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的旋转速度(例如,图7所示的扫描模块702的旋转速度)。在一些实施例中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的物理排列(例如,图7中所示的光发射器702的物理排列)。在一些实施例中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的发射图案(例如,图7所示的光发射器702发射的光束的图案)。
[0228]
在一些实施例中,预测树的多个节点可根据多个分支来排列,其中每个分支对应于一个或多个lidar传感器中的不同光发射器。作为例示性示例,图9中示出了简化的预测树900。
[0229]
在一些实施例中,第二数据可包括一个或多个残差值。该一个或多个残差值可以基于(i)由点的第一空间坐标中的一者或多者表示的该点的第一位置与(ii)基于该点的第二空间坐标中的一者或多者估计的该点的第二位置之间的差来确定。在一些实施例中,对第二数据进行编码可包括存储多个残差值。
[0230]
图10b示出了用于对关于三维点云中的多个点的编码信息进行解码的示例性过程1020。过程1020可以至少部分地使用一个或多个计算机模块和/或设备(例如,图13b和图14中所示的一个或多个模块和/或计算机系统)来执行。
[0231]
根据过程1020,计算机系统接收关于三维点云中的多个点的编码数据(步骤1022)。编码数据包括预测树,该预测树具有基于关于多个点的空间信息生成的多个节点。编码数据还包括指示,该指示表示获得空间信息的传感器系统的一个或多个特性。
[0232]
预测树中的每个节点的值表示根据第一坐标系的多个点中的相应点的第一空间坐标。基于第一节点的一个或多个祖先节点的值和传感器系统的一个或多个特性来确定预测树中的至少第一节点的值。在一些实施例中,第一坐标系可以是球面坐标系。
[0233]
在一些实施例中,传感器系统可包括一个或多个光检测和测距(lidar)传感器(例如,图7所示的lidar系统700中的一个或多个传感器)。在一些实施例中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的旋转速度(例如,图7所示的扫描模块702的旋转速度)。在一些实施例中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的物理排列(例如,图7中所示的光发射器702的物理排列)。在一些实施例中,传感器系统的一个或多个特性可表示一个或多个lidar传感器中的一个或多个光发射器的发射图案(例如,图7所示的光发射器702发射的光束的图案)。
[0234]
在一些实施例中,预测树的多个节点可根据多个分支来排列,其中每个分支对应于一个或多个lidar传感器中的不同光发射器。作为例示性示例,图9中示出了简化的预测树900。
[0235]
计算机系统对编码数据进行解码,以确定关于多个点的第一数据(步骤1024)。第一数据包括该多个点中的至少一些点的第一空间坐标。第一数据还包括与第一空间坐标相关联的一个或多个量化参数。
[0236]
可根据一个或多个量化参数来缩放第一空间坐标。在一些实施例中,一个或多个量化参数可包括相对于第一坐标系的一个或多个维度的一个或多个量化步长大小。
[0237]
在一些实施例中,第二数据可包括一个或多个第一残差值。确定第二数据可包括根据第二坐标系对第二残差值进行解码,并将一个或多个第一残差值添加到第二残差值。
[0238]
在一些实施例中,预测树的多个节点可根据多个分支来排列。对编码数据进行解码可包括在对第二分支的节点中的每个节点进行解码之前对第一分支的节点中的每个节点进行解码(例如,深度优先解码)。
[0239]
在一些实施例中,可根据多个分支来排列预测树的多个节点。对编码数据进行解码可包括根据预测树中的节点中的每个节点的分层级别对节点的解码进行优先级排序(例如,宽度优先解码)。
[0240]
计算机系统基于第一数据确定关于多个点的第二数据(步骤1026)。第二数据包括根据不同于第一坐标系的第二坐标系的这些点中的至少一些点的第二空间坐标。在一些实施例中,第二坐标系可以是笛卡尔坐标系。
[0241]
计算机系统基于第二数据生成三维点云的表示(步骤1028)。在一些实施例中,表示可以是图形表示,诸如三维点云的图形呈现。在一些实施例中,生成三维点云的表示可包括生成包括点云的至少一部分的虚拟现实内容和/或增强现实内容。
[0242]
图11示出了正在3d应用中使用的压缩点云。
[0243]
在一些实施例中,传感器(诸如传感器102)、编码器(诸如编码器104)和解码器(诸如解码器116)可用于在3d应用中传送点云。例如,在步骤1102,传感器(诸如传感器102)可捕获3d图像,并且在步骤1104,传感器或与传感器相关联的处理器可基于感测到的数据执行3d重构以生成点云。
[0244]
在步骤1106,诸如编码器104的编码器可压缩点云,并且在步骤1108,编码器或后处理器可以将压缩点云打包并经由网络1110传输压缩点云。在步骤1112,可以在包括解码器(诸如解码器116)的目标位置处接收数据包。在步骤1114,解码器可以对点云进行解压缩,并且在步骤1116,可以渲染解压缩点云。在一些实施例中,3d应用可实时地传输点云数据,使得步骤1116的显示表示正在步骤1102观察到的图像。例如,在步骤1116,峡谷中的相机可以允许远程用户体验穿行虚拟峡谷。
[0245]
图12示出了正在虚拟现实(vr)或增强现实(ar)应用中使用的压缩点云。
[0246]
在一些实施例中,点云可在软件中生成(例如,与由传感器捕获相反)。例如,在步骤1202,产生虚拟现实或增强现实内容。虚拟现实或增强现实内容可包括点云数据和非点云数据。例如,作为一个示例,非点云角色可遍历由点云表示的风景。在步骤1204,可以压缩点云数据,并且在步骤1206,可以对压缩的点云数据和非点云数据进行打包并经由网络1208传输这些数据。例如,在步骤1202产生的虚拟现实或增强现实内容可以在远程服务器上产生,并经由网络1208传送给虚拟现实(vr)或增强现实(ar)内容消费者。在步骤1210,可在vr或ar消费者的设备处接收并且同步数据包。在步骤1212,在vr或ar消费者的设备处操作的解码器可对压缩点云进行解压缩,并且点云和非点云数据可例如在vr或ar消费者的设备的头戴式显示器中被实时渲染。在一些实施例中,可响应于vr或ar消费者操纵头戴式显示器以看向不同的方向来生成、压缩、解压缩和渲染点云数据。
[0247]
在一些实施例中,如本文所述的点云压缩可用于各种其他应用,诸如地理信息系统、体育赛事直播、博物馆展示、自主导航等。
[0248]
示例性编码器和解码器
[0249]
图13a示出了示例性编码器1302的部件。编码器1302可以是与图1a所示的编码器104类似的编码器。编码器1302包括空间编码器1304、八叉树生成器1310、预测/校正评估器1306、传入数据接口1314和传出数据接口1308。编码器1302还包括上下文存储器1316和配置存储器1318。
[0250]
在一些实施例中,空间编码器(诸如空间编码器1304)可压缩与点云的点相关联的空间信息,使得可以压缩格式来存储或传输空间信息。在一些实施例中,空间编码器(诸如空间编码器1304)可利用八叉树来压缩点云的点的空间信息。
[0251]
在一些实施例中,压缩空间信息可以与压缩属性信息一起存储或传输,或者可以单独存储或传输。在任一种情况下,接收点云的点的压缩属性信息的解码器还可以接收点云的点的压缩空间信息,或者可以获得点云的点的空间信息。
[0252]
预测树生成器(诸如预测树生成器1310)可实现本文讨论的各种技术来生成用于存储关于点云的信息的预测树。
[0253]
预测/校正评估器(例如编码器1302的预测/校正评估器1308)可基于逆距离内插法来确定点云的点的预测属性值,该逆距离内插法使用正在预测其属性值的点的k最近相
邻点的属性值。预测/校正评估器还可将正在评估的点的预测属性值与非压缩点云中的该点的原始属性值进行比较以确定属性校正值。在一些实施例中,预测/校正评估器(诸如编码器1302的预测/校正评估器1306)可基于邻域中的点的属性值的可变性的测量来自适应地调整用于预测给定邻域中的点的属性值的预测策略。
[0254]
传出数据编码器(诸如编码器1302的传出数据编码器1308)可对包括在点云的压缩属性信息文件中的属性校正值和分配属性值进行编码。在一些实施例中,传出数据编码器(诸如传出数据编码器1308)可基于包括在值(诸如分配属性值或属性校正值)中的符号的数量来选择用于对该值进行编码的编码上下文。在一些实施例中,可使用包括golomb指数编码的编码上下文对具有更多符号的值进行编码,而可以使用算术编码来对具有更少符号的值进行编码。在一些实施例中,编码上下文可包括一种以上的编码技术。例如,可以使用算术编码来对值的一部分进行编码,而可以使用golomb指数编码来对值的另一部分进行编码。在一些实施例中,编码器(诸如编码器1302)可包括上下文存储器(诸如上下文存储器1316),该存储器存储由传出数据编码器(诸如传出数据编码器1308)使用的编码上下文,以对属性校正值和分配属性值进行编码。
[0255]
在一些实施例中,编码器(诸如编码器1302)还可包括传入数据接口,诸如传入数据接口1314。在一些实施例中,编码器可从一个或多个传感器接收传入数据,该一个或多个传感器捕获点云的点或捕获与点云的点相关联的属性信息。例如,在一些实施例中,编码器可从lidar系统、3d相机、3d扫描仪等接收数据,并且还可从其他传感器诸如陀螺仪、加速度计等接收数据。另外,编码器可从系统时钟等接收其他数据,诸如当前时间。在一些实施例中,此类不同类型的数据可由编码器经由传入数据接口(诸如编码器1302的传入数据接口1314)接收。
[0256]
在一些实施例中,编码器(诸如编码器1302)还可包括配置接口(诸如配置接口1312),其中可经由配置接口来调整编码器用来压缩点云的一个或多个参数。在一些实施例中,配置接口(诸如配置接口1312)可以是编程接口,诸如应用程序编程接口(api)。编码器(诸如编码器1302)所使用的配置可存储在配置存储器(诸如配置存储器1318)。
[0257]
在一些实施例中,编码器(诸如编码器1302)可包括比图13a所示更多或更少的部件。
[0258]
图13b示出了示例性解码器1320的部件。
[0259]
解码器1320可以是与图1a所示的解码器116类似的解码器。解码器1320包括编码数据接口1326、空间解码器1322、预测评估器1324、上下文存储器1330、配置存储器1332和解码数据接口1328。
[0260]
解码器(诸如解码器1320)可接收编码的压缩点云和/或点云的点的编码压缩属性信息文件。例如,解码器(诸如解码器1320)可接收压缩属性信息文件和/或压缩空间信息文件。解码器可经由编码数据接口(诸如编码数据接口1326)来接收压缩属性信息文件和/或压缩空间信息文件。解码器可使用编码压缩点云来确定点云的点的空间信息。例如,包括在压缩点云中的点云的点的空间信息可由空间解码器(诸如空间解码器1322)来生成。在一些实施例中,可经由编码数据接口(诸如编码数据接口1326)从存储设备或其他中间源接收压缩点云,其中该压缩点云先前由编码器(诸如编码器104)进行编码。在一些实施例中,编码数据接口(诸如编码数据接口1326)可对空间信息进行解码。例如,空间信息可能已使用如
本文所述的各种编码技术来进行了编码,诸如用于将几何或其他空间信息和/或属性信息编码为预测树的各种技术。
[0261]
解码器的预测评估器(诸如预测评估器1324)可基于包括在压缩属性信息文件中的分配起始点来选择最小生成树的起始点。在一些实施例中,压缩属性信息文件可包括起始点的一个或多个对应属性的一个或多个分配值。在一些实施例中,预测评估器(诸如预测评估器1324)可基于包括在压缩属性信息文件中的起始点的分配值将值分配给正被解压缩的点云的解压缩模型中的起始点的一个或多个属性。预测评估器(诸如预测评估器1324)还可利用起始点的属性的分配值来确定相邻点的属性值。例如,预测评估器可选择距起始点最近的相邻点作为待评估的下一个点,其中基于在最小生成树中从起始点到相邻点的最短距离来选择下一个最近相邻点。需注意,因为最小生成树是基于与在编码器上生成最小生成树所使用的相同或类似的空间信息在解码器上生成的,所以解码器可以通过识别最小生成树中的下一个最近相邻点来确定与评估在编码器处确定的用于正被解压缩点云的点相同的评估次序。
[0262]
解码器(诸如解码器1320)可经由解码数据接口(诸如解码数据接口1328)将基于接收到的压缩点云和/或接收到的压缩属性信息文件生成的解压缩点云提供给接收设备或应用程序。解压缩点云可包括点云的点和该点云的点的属性的属性值。在一些实施例中,解码器可对点云的属性的一些属性值进行解码,而无需对点云的其他属性的其他属性值进行解码。例如,点云可包括点云的点的颜色属性,并且还可包括点云的点的其他属性,诸如速度。在此类情况下,解码器可对点云的点的一个或多个属性(诸如速度属性)进行解码,而无需对点云的点的其他属性(诸如颜色属性)进行解码。
[0263]
在一些实施例中,解压缩点云和/或解压缩属性信息文件可用于生成视觉显示器,诸如用于头戴式显示器。另外,在一些实施例中,可将解压缩点云和/或解压缩属性信息文件提供给决策引擎,该决策引擎使用解压缩点云和/或解压缩属性信息文件来做出一个或多个控制决策。在一些实施例中,解压缩点云和/或解压缩属性信息文件可用于各种其他应用或用于各种其他目的。
[0264]
示例性计算机系统
[0265]
图14示出了示例性计算机系统1400,该示例性计算机系统可实现编码器或解码器或本文所述的部件或过程中的任何其他部件或过程(例如,上文参考图1至图13描述的部件和/或过程中的任一者)。计算机系统1400可被配置为执行上文所述的任何或全部实施例。在不同的实施例中,计算机系统1400可为各种类型的设备中的任一者,包括但不限于:个人计算机系统、台式计算机、膝上型电脑、笔记本电脑、平板电脑、一体电脑、平板计算机或上网本电脑、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、消费者设备、视频游戏控制器、手持式视频游戏设备、应用服务器、存储设备、电视、视频记录设备、外围设备(诸如交换机、调制解调器、路由器)或一般性的任何类型的计算或电子设备。
[0266]
本文所述的点云编码器或解码器的各种实施例可以在一个或多个计算机系统1400上执行,该一个或多个计算机系统可以与各种其他设备交互。需注意,上文相对于图1至图13所述的任何部件、动作或功能性可实现在被配置为图14的计算机系统1400的一个或多个计算机上。在例示的实施例中,计算机系统1400包括经由输入/输出(i/o)接口1430耦
接到系统存储器1420的一个或多个处理器1410。计算机系统1400还包括耦接到i/o接口1430的网络接口1440,以及一个或多个输入/输出设备1450,诸如光标控制设备1460、键盘1470和显示器1480。在一些情况下,可想到实施例可使用计算机系统1400的单个实例来实现,而在其他实施例中,多个此类系统或者构成计算机系统1400的多个节点可被配置为托管实施例的不同部分或实例。例如,在一个实施例中,一些元件可通过计算机系统1400的与实现其他元件的那些节点不同的一个或多个节点来实现。
[0267]
在各种实施例中,计算机系统1400可以是包括一个处理器1410的单处理器系统,或者是包括若干个处理器1410(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器1410可以是能够执行指令的任何合适的处理器。例如,在各种实施例中,处理器1410可以是实现多种指令集架构(isa)(诸如x86、powerpc、sparc或mips isa或任何其他合适的isa)中的任一种的通用或嵌入式处理器。在多处理器系统中,处理器1410中的每个处理器通常可以但并非必须实现相同的isa。
[0268]
系统存储器1420可被配置为存储点云压缩或点云解压缩程序指令1422和/或可由处理器1410存取的传感器数据。在各种实施例中,系统存储器1420可使用任何合适的存储器技术来实现,诸如静态随机存取存储器(sram)、同步动态ram(sdram)、非易失性/闪存型存储器或任何其他类型的存储器。在例示的实施例中,程序指令1422可被配置为实施结合上文所述的功能性中的任一功能性的图像传感器控制应用程序。在一些实施例中,程序指令和/或数据可被接收、发送或存储在与系统存储器1420或计算机系统1400分开的不同类型的计算机可访问介质上或类似介质上。尽管将计算机系统1400描述为实施前面各图的功能框的功能性,但是可以经由这种计算机系统实施本文所述的任何功能性。
[0269]
在一些实施例中,i/o接口1430可被配置为协调设备中的处理器1410、系统存储器1420和任何外围设备(包括网络接口1440或其他外围设备接口,诸如输入/输出设备1450)之间的i/o通信量。在一些实施例中,i/o接口1430可以执行任何必要的协议、定时或其他数据转换以将来自一个部件(例如,系统存储器1420)的数据信号转换为适于由另一部件(例如,处理器1410)使用的格式。在一些实施例中,i/o接口1430可包括对例如通过各种类型的外围总线(诸如,外围部件互连(pci)总线标准或通用串行总线(usb)标准的变型)附接的设备的支持。在一些实施例中,i/o接口1430的功能例如可被划分到两个或更多个单独部件中,诸如北桥接件和南桥接件。此外,在一些实施例中,i/o接口1430(诸如到系统存储器1420的接口)的一些或所有功能性可被直接并入到处理器1410中。
[0270]
网络接口1440可被配置为允许在计算机系统1400与附接到网络1485的其他设备(例如,承载器或代理设备)之间或者在计算机系统1400的节点之间交换数据。在各种实施例中,网络1485可包括一种或多种网络,包括但不限于局域网(lan)(例如,以太网或企业网)、广域网(wan)(例如,互联网)、无线数据网、某种其他电子数据网络或它们的某种组合。在各种实施例中,网络接口1440可以支持经由有线或无线通用数据网络(诸如任何合适类型的以太网网络)的通信,例如;经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)的通信;经由存储区域网络(诸如光纤通道san)、或经由任何其他合适类型的网络和/或协议的通信。
[0271]
在一些实施例中,输入/输出设备1450可包括一个或多个显示终端、键盘、小键盘、触控板、扫描设备、语音或光学识别设备或适于由一个或多个计算机系统1400输入或访问
数据的任何其他设备。多个输入/输出设备1450可存在于计算机系统1400中,或者可分布在计算机系统1400的各个节点上。在一些实施例中,类似的输入/输出设备可与计算机系统1400分离,并且可通过有线或无线连接(诸如通过网络接口1440)与计算机系统1400的一个或多个节点交互。
[0272]
如图14所示,存储器1420可包括程序指令1422,这些程序指令可能够由处理器执行以实现上文所述的任何元素或动作。在一些实施例中,程序指令可执行本文所述的方法。在其他实施例中,可包括不同的元素和数据。需注意,数据可包括本文所述的任何数据或信息。
[0273]
本领域的技术人员应当理解,计算机系统1400仅仅是例示性的,而并非旨在限制实施例的范围。具体地,计算机系统和设备可包括可执行所指出的功能的硬件或软件的任何组合,包括计算机、网络设备、互联网设备、pda、无线电话、寻呼机等。计算机系统1400还可连接到未例示的其他设备,或者反之可作为独立的系统进行操作。此外,由所示出的部件所提供的功能在一些实施例中可被组合在更少的部件中或者分布在附加部件中。类似地,在一些实施例中,所示出的部件中的一些部件的功能可不被提供,和/或其他附加功能可能是可用的。
[0274]
本领域的技术人员还将理解,虽然各种项目被示为在被使用期间被存储在存储器中或存储装置上,但是为了存储器管理和数据完整性的目的,这些项目或其部分可在存储器和其他存储设备之间进行传输。另选地,在其他实施例中,这些软件部件中的一些或全部软件部件可以在另一设备上的存储器中执行,并且经由计算机间通信来与例示的计算机系统进行通信。系统部件或数据结构中的一些或全部也可(例如,作为指令或结构化数据)被存储在计算机可访问介质或便携式制品上以由合适的驱动器读取,其多种示例如上文所述。在一些实施例中,存储在与计算机系统1400分开的计算机可访问介质上的指令可通过传输介质或信号(诸如经由通信介质诸如网络和/或无线链路传送的电信号、电磁信号或数字信号)传输到计算机系统1400。各种实施例还可包括在计算机可访问介质上接收、发送或存储根据以上描述所实现的指令和/或数据。一般来讲,计算机可访问介质可包括非暂态计算机可读存储介质或存储器介质,诸如磁介质或光学介质,例如盘或dvd/cd-rom、易失性或非易失性介质,诸如ram(例如,sdram、ddr、rdram、sram等)、rom等。在一些实施例中,计算机可访问介质可包括传输介质或信号,诸如经由通信介质诸如网络和/或无线链路传送的电信号、电磁信号或数字信号。
[0275]
在不同的实施例中,本文所述的方法可以在软件、硬件或它们的组合中实现。此外,可改变方法的框的次序,并且可对各种要素进行添加、重新排序、组合、省略、修改等。对于受益于本公开的本领域的技术人员,显然可做出各种修改和改变。本文所述的各种实施例旨在为例示的而非限制性的。许多变型、修改、添加和改进是可能的。因此,可为在本文中被描述为单个实例的部件提供多个实例。在具体的例示性配置的上下文中,各种部件、操作和数据存储器之间的边界被提供作为例示性示例。预期了功能的其他分配,它们可落在所附权利要求的范围内。最后,被呈现为示例性配置中的分立部件的结构和功能可被实现为组合的结构或部件。这些和其他变型、修改、添加和改进可落入如以下权利要求书中所限定的实施例的范围内。
[0276]
示例项
[0277]
示例1是一种方法,该方法包括由计算机系统接收关于三维点云中的多个点的第一数据,其中该第一数据基于由传感器系统获得的一个或多个测量,并且其中该第一数据包括根据第一坐标系的该多个点中的至少一些点的第一空间坐标;由该计算机系统基于该第一数据确定关于该多个点的第二数据,其中该第二数据包括:根据不同于该第一坐标系的第二坐标系的该多个点中的至少一些点的第二空间坐标,以及与该第二空间坐标相关联的一个或多个量化参数;以及由该计算机系统对该第二数据进行编码,其中对该第二数据进行编码包括生成具有多个节点的预测树,其中该预测树中的每个节点的值表示该多个点中的相应点的第二空间坐标,并且其中基于该第一节点的一个或多个祖先节点的值和该传感器系统的一个或多个特性来确定该预测树中的至少第一节点的值。
[0278]
示例2是包括示例1的方法的方法,并且其中第一坐标系是笛卡尔坐标系。
[0279]
示例3是包括示例2的方法的方法,并且其中第二坐标系是球面坐标系。
[0280]
示例4是包括示例1的方法的方法,并且其中根据一个或多个量化参数来量化第二空间坐标。
[0281]
示例5是包括示例4的方法的方法,并且其中一个或多个量化参数包括相对于第二坐标系的一个或多个维度的一个或多个量化步长大小。
[0282]
示例6是包括示例1的方法的方法,并且其中传感器系统包括一个或多个光检测和测距(lidar)传感器。
[0283]
示例7是包括示例6的方法的方法,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的旋转速度。
[0284]
示例8是包括示例6的方法的方法,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的物理排列。
[0285]
示例9是包括示例4的方法的方法,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的发射图案。
[0286]
示例10是包括示例6的方法的方法,其中预测树的多个节点根据多个分支来排列,并且其中每个分支对应于一个或多个lidar传感器中的不同光发射器。
[0287]
示例11是包括示例1的方法的方法,其中第二数据包括一个或多个残差值,并且其中该一个或多个残差值基于(i)由点的第一空间坐标中的一者或多者表示的该点的第一位置与(ii)基于该点的第二空间坐标中的一者或多者估计的该点的第二位置之间的差来确定。
[0288]
示例12是包括示例11的方法的方法,并且其中对第二数据进行编码包括存储多个残差值。
[0289]
示例13是一种设备,该设备包括:一个或多个处理器;以及存储指令的存储器,这些指令在由该一个或多个处理器执行时使该一个或多个处理器执行包括以下的操作:接收关于三维点云中的多个点的第一数据,其中该第一数据基于由传感器系统获得的一个或多个测量,并且其中该第一数据包括根据第一坐标系的该多个点中的至少一些点的第一空间坐标;基于该第一数据确定关于该多个点的第二数据,其中该第二数据包括:根据不同于该第一坐标系的第二坐标系的该多个点中的至少一些点的第二空间坐标,以及与该第二空间坐标相关联的一个或多个量化参数;以及对该第二数据进行编码,其中对该第二数据进行编码包括生成具有多个节点的预测树,其中该预测树中的每个节点的值表示该多个点中的
相应点的第二空间坐标,并且其中基于该第一节点的一个或多个祖先节点的值和该传感器系统的一个或多个特性来确定该预测树中的至少第一节点的值。
[0290]
示例14是包括示例13的设备的设备,并且其中第一坐标系是笛卡尔坐标系。
[0291]
示例15是包括示例14的设备的设备,并且其中第二坐标系是球面坐标系。
[0292]
示例16是包括示例13的设备的设备,并且其中根据一个或多个量化参数来量化第二空间坐标。
[0293]
示例17是包括示例16的设备的设备,并且其中一个或多个量化参数包括相对于第二坐标系的一个或多个维度的一个或多个量化步长大小。
[0294]
示例18是包括示例13的设备的设备,并且其中传感器系统包括一个或多个光检测和测距(lidar)传感器。
[0295]
示例19是包括示例18的设备的设备,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的旋转速度。
[0296]
示例20是包括示例18的设备的设备,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的物理排列。
[0297]
示例21是包括示例18的设备的设备,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的发射图案。
[0298]
示例22是包括示例18的设备的设备,其中预测树的多个节点根据多个分支来排列,并且其中每个分支对应于一个或多个lidar传感器中的不同光发射器。
[0299]
示例23是包括示例13的设备的设备,其中第二数据包括一个或多个残差值,并且其中该一个或多个残差值基于(i)由点的第一空间坐标中的一者或多者表示的该点的第一位置与(ii)基于该点的第二空间坐标中的一者或多者估计的该点的第二位置之间的差来确定。
[0300]
示例24是包括示例23的设备的设备,其对第二数据进行编码包括存储多个残差值。
[0301]
示例25是一种或多种非暂态计算机可读存储介质,其上存储有指令,这些指令在由一个或多个处理器执行时使该一个或多个处理器执行包括以下的操作:接收关于三维点云中的多个点的第一数据,其中该第一数据基于由传感器系统获得的一个或多个测量,并且其中该第一数据包括根据第一坐标系的该多个点中的至少一些点的第一空间坐标;基于该第一数据确定关于该多个点的第二数据,其中该第二数据包括根据不同于该第一坐标系的第二坐标系的该多个点中的至少一些点的第二空间坐标,以及与该第二空间坐标相关联的一个或多个量化参数;以及对该第二数据进行编码,其中对该第二数据进行编码包括生成具有多个节点的预测树,其中该预测树中的每个节点的值表示该多个点中的相应点的第二空间坐标,并且其中基于该第一节点的一个或多个祖先节点的值和该传感器系统的一个或多个特性来确定该预测树中的至少第一节点的值。
[0302]
示例26是包括示例25的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,并且其中第一坐标系是笛卡尔坐标系。
[0303]
示例27是包括示例26的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,并且其中第二坐标系是球面坐标系。
[0304]
示例28是包括示例25的一种或多种非暂态计算机可读存储介质的一种或多种非
暂态计算机可读存储介质,并且其中根据一个或多个量化参数来量化第二空间坐标。
[0305]
示例29是包括示例28的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,并且其中一个或多个量化参数包括相对于第二坐标系的一个或多个维度的一个或多个量化步长大小。
[0306]
示例30是包括示例25的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,并且其中传感器系统包括一个或多个光检测和测距(lidar)传感器。
[0307]
示例31是包括示例30的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的旋转速度。
[0308]
示例32是包括示例30的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的物理排列。
[0309]
示例33是包括示例30的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的发射图案。
[0310]
示例34是包括示例30的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中预测树的多个节点根据多个分支来排列,并且其中每个分支对应于一个或多个lidar传感器中的不同光发射器。
[0311]
示例35是包括示例25的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中第二数据包括一个或多个残差值,并且其中该一个或多个残差值基于(i)由点的第一空间坐标中的一者或多者表示的该点的第一位置与(ii)基于该点的第二空间坐标中的一者或多者估计的该点的第二位置之间的差来确定。
[0312]
示例36是包括示例35的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中对第二数据进行编码包括存储多个残差值。
[0313]
示例37是一种方法,该方法包括由计算机系统接收关于三维点云中的多个点的编码数据,其中该编码数据包括:预测树和指示,该预测树具有基于关于该多个点的空间信息生成的多个节点,该指示表示获得该空间信息的传感器系统的一个或多个特性,其中该预测树中的每个节点的值表示根据第一坐标系的该多个点中的相应点的第一空间坐标,并且其中基于该第一节点的一个或多个祖先节点的值和该传感器系统的该一个或多个特性来确定该预测树中的至少第一节点的值;由该计算机系统对该编码数据进行解码,以确定关于该多个点的第一数据,其中该第一数据包括:该多个点中的至少一些点的第一空间坐标以及与该第一空间坐标相关联的一个或多个量化参数;由该计算机系统基于该第一数据确定关于该多个点的第二数据,其中该第二数据包括根据不同于该第一坐标系的第二坐标系的该多个点中的至少一些点的第二空间坐标;以及由该计算机系统基于该第二数据生成该三维点云的表示。
[0314]
示例38是包括示例37的方法的方法,并且其中第一坐标系是球面坐标系。
[0315]
示例39是包括示例38的方法的方法,并且其中第二坐标系是笛卡尔坐标系。
[0316]
示例40是包括示例37的方法的方法,并且其中根据一个或多个量化参数来缩放第
一空间坐标。
[0317]
示例41是包括示例40的方法的方法,其中一个或多个量化参数包括相对于第一坐标系的一个或多个维度的一个或多个量化步长大小。
[0318]
示例42是包括示例37的方法的方法,其中传感器系统包括一个或多个光检测和测距(lidar)传感器。
[0319]
示例43是包括示例42的方法的方法,其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的旋转速度。
[0320]
示例44是包括示例42的方法的方法,其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的物理排列。
[0321]
示例45是包括示例42的方法的方法,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的发射图案。
[0322]
示例46是包括示例42的方法的方法,其中预测树的多个节点根据多个分支来排列,并且其中每个分支对应于一个或多个lidar传感器中的不同光发射器。
[0323]
示例47是包括示例37的方法的方法,其中第二数据包括一个或多个第一残差值,并且其中确定该第二数据还包括根据第二坐标系对第二残差值进行解码,以及将该一个或多个第一残差值添加到该第二残差值。
[0324]
示例48是包括示例37的方法的方法,其中根据多个分支来排列预测树的多个节点,并且其中对编码数据进行解码包括在对第二分支的每个节点进行解码之前对第一分支的每个节点进行解码。
[0325]
示例49是包括示例37的方法的方法,其中根据多个分支来排列预测树的多个节点,并且其中对编码数据进行解码包括根据预测树中的每个节点的分级级别来对节点的解码进行优先级排序。
[0326]
示例50是包括示例37的方法的方法,其中生成三维点云的表示包括生成虚拟现实内容或增强现实内容中的至少一者。
[0327]
示例51是一种设备,该设备包括一个或多个处理器;以及存储指令的存储器,这些指令在由该一个或多个处理器执行时使该一个或多个处理器执行以下操作:接收关于三维点云中的多个点的编码数据,其中该编码数据包括:预测树和指示,该预测树具有基于关于该多个点的空间信息生成的多个节点,该指示表示获得该空间信息的传感器系统的一个或多个特性,其中该预测树中的每个节点的值表示根据第一坐标系的该多个点中的相应点的第一空间坐标,并且其中基于该第一节点的一个或多个祖先节点的值和该传感器系统的该一个或多个特性来确定该预测树中的至少第一节点的值;对该编码数据进行解码,以确定关于该多个点的第一数据,其中该第一数据包括:该多个点中的至少一些点的第一空间坐标以及与该第一空间坐标相关联的一个或多个量化参数;基于该第一数据确定关于该多个点的第二数据,其中该第二数据包括根据不同于该第一坐标系的第二坐标系的该多个点中的至少一些点的第二空间坐标;以及基于该第二数据生成该三维点云的表示。
[0328]
示例52是包括示例52的设备的设备,并且其中第一坐标系是球面坐标系。
[0329]
示例53是包括示例52的设备的设备,并且其中第二坐标系是笛卡尔坐标系。
[0330]
示例54是包括示例51的设备的设备,并且其中根据一个或多个量化参数来缩放第一空间坐标。
[0331]
示例55是包括示例54的设备的设备,并且其中一个或多个量化参数包括相对于第一坐标系的一个或多个维度的一个或多个量化步长大小。
[0332]
示例56是包括示例51的设备的设备,并且其中传感器系统包括一个或多个光检测和测距(lidar)传感器。
[0333]
示例57是包括示例56的设备的设备,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的旋转速度。
[0334]
示例58是包括示例56的设备的设备,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的物理排列。
[0335]
示例59是包括示例56的设备的设备,并且其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的发射图案。
[0336]
示例60是包括示例56的设备的设备,其中预测树的多个节点根据多个分支来排列,并且其中每个分支对应于一个或多个lidar传感器中的不同光发射器。
[0337]
示例61是包括示例51的设备的设备,其中第二数据包括一个或多个第一残差值,并且其中确定该第二数据还包括根据第二坐标系对第二残差值进行解码,以及将该一个或多个第一残差值添加到该第二残差值。
[0338]
示例62是包括示例51的设备的设备,其中根据多个分支来排列预测树的多个节点,并且其中对编码数据进行解码包括在对第二分支的每个节点进行解码之前对第一分支的每个节点进行解码。
[0339]
示例63是包括示例51的设备的设备,其中根据多个分支来排列预测树的多个节点,并且其中对编码数据进行解码包括根据预测树中的每个节点的分级级别来对节点的解码进行优先级排序。
[0340]
示例64是包括示例51的设备的设备,其中生成三维点云的表示包括生成虚拟现实内容或增强现实内容中的至少一者。
[0341]
示例65是一种或多种非暂态计算机可读存储介质,其上存储有指令,这些指令在由一个或多个处理器执行时使该一个或多个处理器执行包括以下的操作:接收关于三维点云中的多个点的编码数据,其中该编码数据包括:预测树和指示,该预测树具有基于关于该多个点的空间信息生成的多个节点,该指示表示获得该空间信息的传感器系统的一个或多个特性,其中该预测树中的每个节点的值表示根据第一坐标系的该多个点中的相应点的第一空间坐标,并且其中基于该第一节点的一个或多个祖先节点的值和该传感器系统的该一个或多个特性来确定该预测树中的至少第一节点的值;对该编码数据进行解码,以确定关于该多个点的第一数据,其中该第一数据包括:该多个点中的至少一些点的第一空间坐标以及与该第一空间坐标相关联的一个或多个量化参数;基于该第一数据确定关于该多个点的第二数据,其中该第二数据包括根据不同于该第一坐标系的第二坐标系的该多个点中的至少一些点的第二空间坐标;以及基于该第二数据生成该三维点云的表示。
[0342]
示例66是包括示例65的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中第一坐标系是球面坐标系。
[0343]
示例67是包括示例66的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中第二坐标系是笛卡尔坐标系。
[0344]
示例68是包括示例65的一种或多种非暂态计算机可读存储介质的一种或多种非
暂态计算机可读存储介质,根据一个或多个量化参数来缩放第一空间坐标。
[0345]
示例69是包括示例66的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质。
[0346]
69.根据权利要求68所述的一个或多个非暂态计算机可读存储媒体,其中所述一个或多个量化参数包含相对于所述第一坐标系的一个或多个维度的一个或多个量化步长大小。
[0347]
示例70是包括示例65的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中传感器系统包括一个或多个光检测和测距(lidar)传感器。
[0348]
示例71是包括示例70的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的旋转速度。
[0349]
示例72是包括示例70的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的物理排列。
[0350]
示例73是包括示例70的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中传感器系统的一个或多个特性表示一个或多个lidar传感器中的一个或多个光发射器的发射图案。
[0351]
示例74是包括示例70的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中预测树的多个节点根据多个分支来排列,并且其中每个分支对应于一个或多个lidar传感器中的不同光发射器。
[0352]
示例75是包括示例65的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中第二数据包括一个或多个第一残差值,并且其中确定该第二数据还包括根据第二坐标系对第二残差值进行解码,以及将该一个或多个第一残差值添加到该第二残差值。
[0353]
示例76是包括示例65的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其其中根据多个分支来排列预测树的多个节点,并且其中对编码数据进行解码包括在对第二分支的每个节点进行解码之前对第一分支的每个节点进行解码。
[0354]
示例77是包括示例65的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中根据多个分支来排列预测树的多个节点,并且其中对编码数据进行解码包括根据预测树中的每个节点的分级级别来对节点的解码进行优先级排序。
[0355]
示例78是包括示例65的一种或多种非暂态计算机可读存储介质的一种或多种非暂态计算机可读存储介质,其中生成三维点云的表示包括生成虚拟现实内容或增强现实内容中的至少一者。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献