使用用于细节级别生成的空间填充曲线的点云压缩的制作方法

文档序号:26310837发布日期:2021-08-17 13:49阅读:168来源:国知局
使用用于细节级别生成的空间填充曲线的点云压缩的制作方法

本公开整体涉及点云的压缩和解压缩,这些点云包括多个点,每个点具有相关联的属性信息。

相关技术描述

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



技术实现要素:

在一些实施方案中,一种系统包括被配置为捕获共同构成点云的点的一个或多个传感器,其中这些点中的每个点包括标识3d空间中相应点的空间位置的空间信息和定义与相应点相关联的一个或多个属性的属性信息。系统还包括被配置为压缩针对这些点的属性信息的编码器。为了压缩属性信息,编码器被配置为基于包括在捕获点云中的属性信息将属性值分配给点云的至少一个点。另外,编码器被配置为:针对点云的点中的相应其他一些中的每个点,识别一组相邻点;至少部分地基于针对这些相邻点的预测或分配属性值来确定针对该相应点的预测属性值;并且至少部分地基于将针对该相应点的预测属性值与包括在捕获点云中的针对该点的属性信息进行比较来确定针对该点的属性校正值。编码器被进一步配置为对针对点云的压缩属性信息进行编码,其中压缩属性信息包括针对所述至少一个点的分配属性值以及针对点中的相应其他一些来指示相应的确定属性校正值的数据。

在一些实施方案中,为了压缩属性信息,编码器被配置为构建针对点云的分级细节级别(lod)结构。例如,编码器可被配置为确定待包括在针对点云的压缩属性信息的第一细节级别中的点,以及确定待包括在针对点云的压缩属性信息的一个或多个附加细节级别中的点。为了确定待包括在第一细节级别中的点或待包括在该一个或多个附加细节级别中的点,编码器被配置为基于空间填充曲线确定点云的这些点的次序,其中该点云的相应点被分配给索引,该索引基于这些相应点与沿该空间填充曲线的位置的接近度来索引这些相应点。进一步作为确定待包括在第一细节级别中的点或待包括在一个或多个附加细节级别中的点的一部分,编码器被配置为根据一个或多个采样率对索引进行采样,以确定点云的待包括在第一细节级别或一个或多个附加细节级别中的点。另外,编码器被配置为压缩被确定为包括在第一细节级别中的点的属性信息,以及压缩被确定为包括在一个或多个附加细节级别中的点的属性信息。例如,编码器可针对被确定为包括在第一细节级别中的点以及针对被确定为包括在一个或多个附加细节级别中的点生成属性校正值。在一些实施方案中,如上所述的预测和校正过程可用于确定被确定为包括在细节级别中的相应细节级别中的相应点集的属性校正值。

在一些实施方案中,解码器被配置为接收针对点云的压缩属性信息,该压缩属性信息包括针对点云的至少一个点的至少一个分配属性值以及指示针对点云的其他点的属性的属性校正值的数据。在一些实施方案中,可以针对点云的点的多个子集以多个细节级别对属性校正值进行排序。例如,解码器可以接收如上所述由编码器压缩的压缩点云。解码器可被进一步配置为提供针对第一细节级别的解压缩属性信息,并且更新点云的解压缩版本以包括针对多个细节级别中的一个或多个其他细节级别处的点的附加子集的属性信息。

在一些实施方案中,为了对属性信息进行解压缩,解码器被配置为接收针对点云的点的空间信息,以及接收针对点云的一个或多个细节级别的压缩属性信息。解码器被进一步配置为基于根据空间填充曲线确定点云的点的次序来确定待包括在针对该点云的一个或多个细节级别中的点,其中该点云的相应点被分配给索引,该索引基于这些相应点与沿该空间填充曲线的位置的接近度来索引这些相应点,以及根据一个或多个采样率对索引进行采样来确定点云的待包括在该一个或多个细节级别中的点。此外,解码器被配置为基于接收到的针对点云的相应一个或多个细节级别的点的压缩属性信息来确定被确定为包括在一个或多个细节级别中的点的属性值。例如,解码器可预测针对包括在给定细节级别中的点的属性值,然后将属性校正值应用于预测值,其中属性校正值包括在针对给定细节级别的压缩属性信息中。

在一些实施方案中,非暂态计算机可读介质可存储程序指令,这些程序指令在由一个或多个处理器执行时使得该一个或多个处理器基于应用如本文所述的空间填充曲线来确定细节级别结构的细节级别。另外,这些程序指令可使得该一个或多个处理器使用如本文所述的确定细节级别结构来对点云的属性信息进行编码或解码。

在一些实施方案中,方法包括基于应用如本文所述的空间填充曲线来确定细节级别结构的细节级别。该方法还可包括使用如本文所述的细节级别结构来对点云的属性信息进行编码或解码。

附图说明

图1a示出了根据一些实施方案的包括捕获针对点云的点的信息的传感器和压缩点云的属性信息和/或空间信息的编码器的系统,其中该压缩点云信息被发送至解码器。

图1b示出了根据一些实施方案的用于确定待包括在用于对点云的属性信息进行压缩/编码的细节级别(lod)中的点的过程。

图1c至图1d示出了根据一些实施方案的用于对点云的点的属性信息进行压缩和编码的过程,该点云的点被选择为待包括在针对该点云的相应细节级别(lod)中。

图2a示出了根据一些实施方案的确定和发信号通知待用于确定待包括在针对点云的细节级别(lod)中的点的采样率的过程。

图2b示出了根据一些实施方案的通过将空间填充曲线应用到点云而生成的示例性索引,并且还示出了对索引进行采样以确定待包括在针对点云的相应细节级别(lod)中的点。

图3a示出了根据一些实施方案的确定和发信号通知待用于确定待包括在针对点云的细节级别(lod)中的点的采样次序的过程。

图3b示出了根据一些实施方案的通过将空间填充曲线应用到点云而生成的示例性索引,并且还示出了以正向采样次序对索引进行采样以确定点云的待包括在针对该点云的相应细节级别(lod)中的点。

图3c示出了根据一些实施方案的通过将空间填充曲线应用到点云而生成的示例性索引,并且还示出了以反向采样次序对索引进行采样以确定点云的待包括在针对该点云的相应细节级别(lod)中的点。

图3d示出了根据一些实施方案的通过将空间填充曲线应用到点云而生成的示例性索引,并且还示出了以内-外采样次序(interioroutorder)对索引进行采样以确定点云的待包括在针对该点云的相应细节级别(lod)中的点。

图4a示出了根据一些实施方案的确定和发信号通知待用于确定待包括在针对点云的细节级别(lod)中的点的采样偏移值的过程。

图4b示出了根据一些实施方案的通过将空间填充曲线应用到点云而生成的示例性索引,并且还示出了使用不同的采样偏移值来对索引进行采样以确定待包括在针对该点云的相应细节级别(lod)中的点。

图5示出了根据一些实施方案的用于确定待用于确定点云的待包括在针对该点云的相应细节级别(lod)中的点的采样参数的过程。

图6示出了根据一些实施方案的在针对点云的不同细节级别(lod)之间交织属性校正值的示例。

图7示出了根据一些实施方案的用于确定待包括在点云的针对该点云的细节级别(lod)中的点以及用于压缩针对被确定为包括在lod中的点的属性信息的示例性过程。

图8示出了根据一些实施方案的用于对包括在点云的细节级别(lod)中的点的压缩属性信息进行解压缩的示例性过程。

图9a示出了根据一些实施方案的编码器的示例性部件。

图9b示出了根据一些实施方案的解码器的示例性部件。

图10示出了根据一些实施方案的包括针对压缩点云的多个细节级别(lod)的压缩属性信息的示例性压缩属性文件。

图11示出了根据一些实施方案的基于最近相邻预测和预测校正技术来对针对细节级别(lod)的属性信息进行压缩的示例性过程。

图12a至图12b示出了根据一些实施方案的用于对点云的空间信息进行压缩的示例性过程。

图13示出了根据一些实施方案的用于对点云的空间信息进行压缩的另一个示例性过程。

图14示出了根据一些实施方案的基于最近相邻预测和预测校正技术对针对一个或多个细节级别(lod)的属性信息进行解压缩的示例性过程。

图15示出了根据一些实施方案的针对压缩点云的多个细节级别(lod)生成压缩属性信息的示例性编码器。

图16示出了根据一些实施方案的示例性细节级别(lod)结构。

图17示出了根据一些实施方案的在3d应用中正在使用的压缩点云信息。

图18示出了根据一些实施方案的在虚拟现实应用中正在使用的压缩点云信息。

图19示出了根据一些实施方案的可实现编码器或解码器的示例性计算机系统。

本说明书包括参考“一个实施方案”或“实施方案”。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。

“包括”,该术语是开放式的。如在所附权利要求书中所使用的,该术语不排除附加结构或步骤。考虑以下引用的权利要求:“一种包括一个或多个处理器单元...的装置”此类权利要求不排除该装置包括附加部件(例如,网络接口单元、图形电路等)。

“被配置为”,各种单元、电路或其他部件可被描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件据称可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件——例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引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扫描仪捕获的点云中包括车辆的方向和速率。例如,当捕获到车辆视野中的点时,这些点可以被包括在点云中,其中该点云包括捕获到的点以及与捕获到点时车辆的状态对应的相关联的运动信息。

在一些实施方案中,属性信息可包括字符串值,诸如不同的模态。例如,属性信息可包括指示模态诸如“步行”、“跑步”、“驾驶”等的字符串值。在一些实施方案中,编码器可包括“字符串值”到整数索引,其中某些字符串与某些对应的整数值相关联。在一些实施方案中,点云可以通过包括与该字符串值相关联的整数作为该点的属性来指示针对该点的字符串值。编码器和解码器都可以将公共字符串值存储为整数索引,使得解码器可以基于在与解码器的字符串值到整数索引匹配或类似的解码器的字符串值到整数索引中查找该点的字符串属性的整数值来确定针对点的字符串值。

在一些实施方案中,除了压缩针对点云的点的属性的属性信息之外,编码器还对点云的空间信息进行压缩和编码以压缩空间信息。例如,为了压缩空间信息,可以生成k-d树,其中,对包括在k-d树的小区的每个小区中的相应数量的点进行编码。编码点计数的该序列可以对针对点云的点的空间信息进行编码。另外,在一些实施方案中,子采样和预测方法可以用于对针对点云的空间信息进行压缩和编码。在一些实施方案中,空间信息可以在被压缩和编码之前被量化。另外,在一些实施方案中,空间信息的压缩可以是无损的。因此,解码器可能够确定与编码器相同的空间信息视图。另外,一旦解码了压缩空间信息,编码器就可能够确定解码器将遇到的空间信息视图。因为编码器和解码器两者都可能具有或能够重建针对点云的相同空间信息,所以空间关系可以用于压缩针对该点云的属性信息。

例如,在许多点云中,相邻点或彼此之间定位距离相对较短的点之间的属性信息在属性之间可能具有高的相关级别,并且因此,点属性值的差异相对较小。例如,当相对于点云中分隔更远的点考虑时,点云中的临近点在颜色上可能具有相对较小的差异。

在一些实施方案中,编码器可包括预测器,该预测器基于针对点云中相邻点的相似属性的属性值并且基于正被评估的点与相邻点之间的相应距离来确定针对点云中的点的属性的预测属性值。在一些实施方案中,与更远离正被评估的点的相邻点的属性的属性值相比,可以给与更接近正被评估的点的相邻点的属性的属性值更高的权重。另外,编码器可以将预测属性值与在压缩之前的原始点云中的针对该点的属性的属性值进行比较。可以基于该比较来确定残余差,在本文中也称为“属性校正值”。可以对属性校正值进行编码并且将其包括在针对点云的压缩属性信息中,其中解码器使用编码属性校正值来校正针对该点的预测属性值,其中在解码器处使用与在编码器处使用的预测方法相同或类似的相同或类似预测方法来预测属性值。

在一些实施方案中,编码器可以为点云的起始点分配属性值以用作评估次序中的起始点。编码器可基于起始点的属性值和起始点与下一个最近点之间的距离来预测针对距起始点的下一个最近点的属性值。然后,编码器可以确定针对该下一个最近点的预测属性值与包括在非压缩原始点云中的针对该下一个最近点的实际属性值之间的差值。该差值可以被编码在压缩属性信息文件中,作为针对下一个最近点的属性校正值。然后,编码器可以针对评估次序中的每个点重复类似的过程。为了预测针对评估次序中的后续点的属性值,编码器可以将k个最近相邻点识别为正被评估的特定点,其中所识别的k个最近相邻点已分配或预测属性值。在一些实施方案中,“k”可以是从编码器传送到解码器的可配置参数。

编码器可以确定在正被评估的点与每个识别的相邻点之间的x、y和z空间中的距离。例如,编码器可以确定从正被评估的点到相邻点中的每个点的相应欧几里得距离。然后编码器可以基于相邻点的属性值来预测针对正被评估的点的属性的属性值,其中根据从正被评估的点到相邻点中的相应一些的距离的倒数对相邻点的属性值进行加权。与更远离正被评估的点的相邻点的属性值相比,可以给与更接近正被评估的点的相邻点的属性值更大的权重。

以与针对第一相邻点所述的类似方式,编码器可以将针对点云的其他点中的每个点的预测值与原始非压缩点云(例如,捕获点云)中的实际属性值进行比较。该差值可以被编码为针对这些其他点中正被评估的一个点的属性的属性校正值。在一些实施方案中,可以根据基于空间填充曲线确定的评估次序,按次序将属性校正值编码在压缩属性信息文件中。因为编码器和解码器可以基于针对点云的空间信息来确定相同的评估次序,所以解码器可以基于在压缩属性信息文件中编码属性校正值的次序来确定哪个属性校正值对应于哪个点的哪个属性。另外,起始点和起始点的一个或多个属性值可以显式编码在压缩属性信息文件中,使得解码器可以确定从与在编码器处开始评估次序所用的相同点开始的评估次序。另外,起始点的所述一个或多个属性值可以提供相邻点的值,解码器使用该相邻点的值来确定针对正被评估的点的预测属性值,该正被评估的点是该起始点的相邻点。

在一些实施方案中,编码器可以基于时间考虑来确定针对点的属性的预测值。例如,除了或代替基于相同“帧”(例如,与正被评估的点相同的时间点)中的相邻点确定预测值之外,编码器可以考虑相邻和后续时间帧中的点的属性值。

图1a示出了根据一些实施方案的包括捕获针对点云的点的信息的传感器和压缩点云的属性信息的编码器的系统,其中该压缩属性信息被发送至解码器。

系统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的独立计算设备上实现。

低复杂度细节级别生成过程

在一些实施方案中,编码器(诸如编码器104)可利用细节级别生成过程来确定针对点云(诸如点云106)的多个细节级别。代替在对确定属性校正值进行编码之前预测属性值并确定针对点云的每个点的属性校正值,编码器可替代地预测属性值并确定针对包括在第一细节级别中的点的属性校正值,并且在确定针对点云的所有其他点的属性校正值之前对确定属性校正值进行编码。编码器然后可预测属性值并确定针对包括在点云的其他附加细节级别中的其他点的属性校正值,并且在对包括在较低细节级别中的点的属性校正值进行编码之后对这些确定属性校正值进行编码。与全点云的情况相比,该方法可允许更快地压缩、编码和传送点云的较低细节级别的表示。然后可以用针对附加细节级别的压缩属性信息补充较低细节级别的表示。这继而可使得解码器能够更快速地重建点云的较低细节级别的表示,并且稍后通过添加包括在其他附加细节级别中的点的属性值来补充较低细节级别的表示以包括更多细节。

在一些实施方案中,细节级别(lod)结构将点云划分成被称为细化级别的点的非重叠子集,例如,(rl)l=0…l-1。在使用基于距离的方法来确定细节级别细化级别的一些实施方案中,细化级别可根据用户指定的一组欧几里得距离(dl)l=0…l-1来确定,在某种程度上,整个点云由所有细化级别的并集表示。当前细节级别l,即(lod)l,通过如下所述取细化级别r0、r1、...、rl的并集来获得:

·lod0=r0

·lod1=lod0ur1…

·lodl=lod(l-1)url…

·lod(l-1)=lod(l-2)ur(l)表示整个点云

在一些实施方案中,其中基于点之间的距离选择待包括在特定细节级别中的点,以使得该特定lod中的这些点之间的欧几里得距离大于或等于用户定义阈值d的方式提取每个细化级别中的点。随着细节级别l增大,d减小并且较低lod中的点之间包括更多点,从而增大点云重建细节。然后从lod(l-1)中的k个最近相邻点预测rl中的点的属性。最后,使用熵编码器(例如算术编码器)对预测残差(例如属性校正值)(即属性的实际值与预测值之间的差值)进行编码。

如上所述的基于距离的lod生成过程试图确保在整个不同lod上的均匀采样。这种策略为在均匀或接近均匀采样的点云上定义的平滑属性信号提供了有效的预测结果。然而,这可能导致在不规则采样的点云上定义的非平滑属性信号的不良预测结果。此外,基于距离的lod生成过程需要计算每个点与其相邻点之间的距离,这在实践中对于某些用例场景可能是复杂的。

在一些实施方案中,作为用于编码属性值的基于距离的lod生成过程的替代,可使用利用空间填充曲线对点进行排序并确定细化级别的低复杂度lod生成过程。使用空间填充曲线的低复杂度lod生成过程可实现对在不规则采样点云上定义的非平滑属性信号的更有效预测。在一些实施方案中,各种附加特征可与低复杂度lod生成过程组合,该低复杂度lod生成过程利用空间填充曲线对点进行排序并确定细化级别,诸如组合排序/采样lod方法、自适应扫描模式、自适应偏移模式、属性交织模式、属性间/跨分量预测模式、预测自适应模式和/或相关lod编码器优化模式。

使用空间填充曲线的lod生成

在一些实施方案中,可使用利用空间填充曲线对点进行排序并确定细化级别的低复杂度lod生成过程。空间信息可使用用于对空间信息进行编码的任何技术来编码,诸如k-d树、八叉树编码、子采样和点间预测等。这样,编码器和解码器两者均可知道点云的点的空间位置。然而,代替如上所述基于点之间的距离确定哪些点待包括在相应细化级别中,待包括在相应细节级别中的点可通过根据点沿空间填充曲线的位置对其进行排序来确定。例如,这些点可根据其莫顿码来组织。另选地,可使用其他空间填充曲线。例如,可使用将位置(例如,以x、y、z坐标形式)映射到空间填充曲线诸如morion次序(或z次序)、hillbert曲线、peano曲线等的技术。这样,使用空间信息进行编码和解码的点云的所有点可在编码器和解码器处以相同次序组织成索引。

例如,图1b示出了根据一些实施方案的用于确定待包括在用于对点云的属性信息进行编码的细节级别(lod)中的点的过程。

在152处,编码器接收待压缩的点云,诸如点云162。接收到的点云可以是捕获点云,诸如由传感器102捕获的点云,或者可以是在软件诸如3d软件环境中生成的点云。

在154处,编码器生成3d空间填充曲线并将3d空间填充曲线应用于所接收的点云以确定所接收的点云的点沿空间填充曲线的对应位置。例如,可生成空间填充曲线164,并且可将点云162的点映射到空间填充曲线164的靠近点云的相应点的最近位置。

在156处,编码器确定点云的索引,该索引基于相应点与沿空间填充曲线的位置的接近度来对点云的点进行索引。例如,索引166示出了在索引166的索引位置1-6至n中排序的点云162的点。

在158处,以指定或已知的采样率对所确定的索引进行采样,以确定待包括在第一细节级别(例如,第一细化级别)中的点云162的点。例如,采样索引168示出了以“每隔2个位置”的速率进行采样的索引166,以确定点云162的待包括在第一细化级别/细节级别中的点。

在160处,以第二指定或已知的采样率对所确定的索引进行采样,以确定点云162的待包括在第二细化级别中的点,当与较低细节级别(例如,第一细节级别)的点组合时,第二细节级别构成比较低细节级别更详细的第二细节级别。例如,采样索引170示出了以“每隔3个位置”的速率进行采样的索引166,以确定点云162的待包括在第二细化级别/细节级别中的点。

图1c至图1d示出了根据一些实施方案的用于对点云的点的属性信息进行压缩和编码的过程,该点云的点被选择为待包括在针对该点云的相应细节级别(lod)中。

在180处,编码器(诸如编码器104)选择待针对其压缩属性信息的确定细节级别。例如,192示出了点云162的一组示例性点,这些点已被选择为包括在点云162的第一细节级别中。192中所示的点云中的每个点可以具有与该点相关联的一个或多个属性。需注意,为了便于说明,以2d示出了点云192,但是该点云可包括3d空间中的点。

在182处,确定了对点云的点的评估次序。可基于索引166或采样索引168中的点的相应索引位置来确定评估次序。例如,评估次序可根据莫顿次序(mortonorder)。

另外,在一些实施方案中,可基于由编码器接收到的点云的空间信息来确定最小生成树。为了确定最小生成树,编码器的最小生成树生成器可以选择用于最小生成树的起始点。然后最小生成树生成器可以识别与该起始点相邻的点。然后可以基于相应所识别的相邻点与起始点之间的相应距离来对相邻点进行排序。距起始点距离最短的相邻点可被选择为待访问的下一个点。可以为起始点与被选择为下一个待访问的相邻点之间的边缘确定“边缘”的“权重”,例如,点云中点之间的距离,其中与较短的距离相比,给较长的距离更大的权重。在最接近起始点的相邻点被添加到最小生成树之后,然后可以评估该相邻点,并且可以识别与当前正被评估的点(例如,先前被选择为下一个待访问的点)相邻的点。可以基于当前正被评估的点与所识别的相邻点之间的相应距离来对所识别的相邻点进行排序。距当前正被评估的点最短距离的相邻点(例如“边缘”)可以被选择为待包括在最小生成树中的下一个点。可以确定当前正被评估的点与下一个选择的相邻点之间的边缘的权重,并且将其添加到最小生成树中。可以针对点云的其他点中的每个点重复类似的过程,以生成该点云的最小生成树。

例如,194示出了最小生成树的图示。在194所示的最小生成树中,每个顶点都可以表示点云中的点,并且顶点之间的边缘权重(例如,1、2、3、4、7、8等)可以表示点云中点之间的距离。例如,顶点191与顶点193之间的距离可以具有7的权重,而顶点193与195之间的距离可以具有8的权重。这可以指示在对应于顶点193的点与对应于顶点195的点之间在点云中的距离大于对应于顶点193的点与对应于顶点191的点之间在点云中的距离。在一些实施方案中,最小生成树中所示的权重可以基于3d空间中的矢量距离,诸如欧几里得距离。

在184处,可以将针对起始点(诸如用于生成最小生成树的起始点或由空间填充曲线索引确定的起始点)的一个或多个属性的属性值分配为待编码并且包括在针对该点云的压缩属性信息中。如上所讨论的,可以基于相邻点的属性值来确定针对点云的点的预测属性值。然而,将针对至少一个点的初始属性值提供给解码器,使得解码器可以使用至少该初始属性值和用于校正基于初始属性值预测的预测属性值的属性校正值来确定其他点的属性值。因此,针对至少一个起始点的一个或多个属性值被显式编码在压缩属性信息文件中。另外,可以显式地编码针对起始点的空间信息,使得空间填充曲线或解码器的最小生成树生成器可以确定点云的点中的哪个点待用作起始点。在一些实施方案中,可以用除了显式编码针对起始点的空间信息之外的其他方式来指示起始点,诸如标记起始点或其他点识别方法。

因为解码器将接收到起始点的指示,并且会遇到与编码器相同或类似的针对点云空间的点的空间信息,所以解码器可以从与编码器确定的相同的起始点确定相同的评估次序。

在186处,对于正被评估的当前点,编码器的预测/校正评估器确定针对当前正被评估的点的属性的预测属性值。在一些实施方案中,当前正被评估的点可以具有多于一个的属性。因此,编码器的预测/校正评估器可以预测针对该点的多于一个的属性值。对于正被评估的每个点,预测/校正评估器可以识别已分配或预测属性值的一组最近相邻点。在一些实施方案中,所识别的相邻点的数量“k”可以是编码器的可配置参数,并且编码器可以在压缩的属性信息文件中包括指示参数“k”的配置信息,使得在执行属性预测时,解码器可以识别相同数量的相邻点。然后预测/校正评估器可以使用来自最小生成树的权重,或者可以其他方式确定正被评估的点与所识别的相邻点中的相应一些之间的距离。预测/校正评估器可以使用逆距离插值方法来预测针对正被评估的点的每个属性的属性值。然后预测/校正评估器可以基于所识别的相邻点的逆距离加权属性值的平均值来预测正被评估的点的属性值。

例如,196示出了正被评估的点(x,y,z),其中基于八个所识别的相邻点的逆距离加权属性值来确定属性a1。

在188处,确定针对每个点的属性校正值。基于将针对点的每个属性的预测属性值与原始非压缩点云中的点(诸如包括在所选择的lod中的点)的对应属性值进行比较来确定属性校正值。例如,198示出了用于确定属性校正值的公式,其中从预测值减去捕获值以确定属性校正值。需注意,尽管图1c示出了在186处预测的属性值和在188处确定的属性校正值,但是在一些实施方案中,可以在预测针对该点的属性值之后确定针对该点的属性校正值。然后可以评估下一个点,其中确定针对该点的预测属性值,并且确定针对该点的属性校正值。因此,可以针对每个正被评估的点重复186和188。在其他实施方案中,可以确定针对多个点的预测值,并且然后可以确定属性校正值。在一些实施方案中,针对正被评估的后续点的预测可以基于预测属性值或者可以基于校正属性值或基于这两者。在一些实施方案中,编码器和解码器两者都可以遵循关于是否基于预测或校正属性值来确定后续点的预测值的相同规则。

还需注意,对于较高细节级别(例如,大于第一细节级别的细节级别),可以使用针对较低细节级别中的点确定的属性值来预测较高细节级别中的点的属性值。例如,当预测针对包括在细节级别二中的点(其包括细节级别一的点加上附加细化级别的点)的属性值时,可以选择已经针对其确定属性值的细节级别一中的点作为正在针对其预测属性值的细化级别二中的点的相邻点。

在190处,对所选择的细节级别(或细化级别)的点的确定属性校正值进行编码。另外,在一些实施方案中,可对针对起始点的一个或多个分配属性值、起始点的空间信息或其他标记以及待包括在压缩属性信息文件中的任何配置信息进行编码。在一些实施方案中,各种编码方法诸如算术编码和/或golomb编码可以用于对属性校正值、分配属性值和配置信息进行编码。

变化的采样率

为了确定各种细化级别,可定义针对点的有序索引的采样率。例如,为了将点云划分为四个细节级别,可例如以四个的速率对将莫顿值映射到对应点的索引进行采样,其中每隔三个索引点包括在最低级别细化中。对于每个附加细化级别,可对索引中尚未采样的剩余点进行采样(例如每隔两个索引点等),直到所有点均被采样以获得最高细节级别。例如,利用空间填充曲线对点进行排序并确定细化级别的低复杂度lod生成过程可如下进行:

·首先,可根据空间填充曲线对点云的点(空间信息已知的点)进行排序。例如,可以根据这些点的莫顿码对其进行排序。

·然后,假设il-1为一组有序索引,并且lodl-1为表示整个点云的相关联lod。

·接下来,定义表示为(kl)l=0...l-1的一组采样率,其中kl为描述用于lodl的采样率的整数。

okl可基于信号的特性和/或点云分布、先前的统计值来自动确定,或者可为固定的。

okl可被提供为用户定义的参数(例如,4)。

o采样率kl可在lod内进一步更新,以便更好地适应点云分布。更确切地说,编码器可针对待应用于最新可用kl值的预定义的一组点(例如,每个连续的h=1024个点)在位流中显式地编码不同的值或更新。

·接下来,通过对il+1进行二次采样,同时在每kl个索引中保留一个索引来计算与lodl=l-2,l-3,...,0相关联的索引的有序阵列,表示为il。

·在一些实施方案中,可以根据属性(例如,颜色、反射率)和每个通道(例如,y和u/v)等定义不同的二次采样率。

图2a示出了根据一些实施方案的确定和发信号通知待用于确定待包括在点云的细节级别(lod)中的点的采样率的过程。

在202处,编码器可确定待用于确定待包括在相应细化级别/细节级别中的点的一个或多个采样率。在一些实施方案中,可使用速率失真优化过程来确定待用于相应细化级别/细节级别的采样率。在一些实施方案中,编码器可利用编码器已知的已知采样率,或者可在204处在压缩位流中发信号通知一个或多个所选择的采样率。在一些实施方案中,编码器可利用已知的或可由解码器推断的已知或暗示的采样率,并且可仅发信号通知针对偏离已知或暗示的采样率的特定lod的采样率。

图2b示出了根据一些实施方案的通过将空间填充曲线应用到点云而生成的示例性索引,并且还示出了对索引进行采样以确定待包括在点云的相应细节级别(lod)中的点。

例如,在图2b中,以每隔2个位置的速率对索引250进行采样以确定待包括在对应于第一细节级别的第一细化级别中的点。另外,以每隔3个位置确定待包括在第二细化级别中的点的速率对索引250进行采样,该第二细化级别中的点在与包括在第一细化级别中的点组合时构成第二细节级别。另外,以每隔n-1个位置的速率对索引250进行采样以确定待包括在第n个细化级别中的点,该细化级别中的点在与包括在先前细化级别中的点组合时构成第n个细节级别。

需注意,在一些实施方案中,根据针对给定细节级别的采样率进行采样的索引可以是基于空间填充曲线确定的原始索引,或者可以是包括尚未包括在细化级别中的点并且排除已经包括在细化级别中的点的索引。例如,在一些实施方案中,对应于尚未包括在细节级别1或细节级别2中的点的位置的每隔n-1个位置可被采样以确定待包括在细节级别n中的点。相反,在一些实施方案中,当对索引250进行采样时,可保留该索引的所有点/位置,并且可选择采样率/采样偏移值,使得包括在较低细节级别中的点在后面的细化级别中不重复。

在一些实施方案中,细节级别之间的预测还可以用于确定针对各种细节级别的点的预测属性值。如前所述,可针对点对属性校正值进行编码,其中这些属性校正值表示该属性的预测值与原始值或压缩前值之间的差值。

自适应扫描模式

在一些实施方案中,如上所述,代替使用单个预测次序,使用空间填充曲线的低复杂度lod生成过程中的预测模式可以通过针对给定细化级别选择给出改善的速率失真性能的预测方向来实现改善的编码效率。例如,在一种情况下,第一细节级别可使用莫顿次序,并且在另一种情况下,可使用反向莫顿次序。在另一种情况下,对这些点的遍历可从中心或编码器显式地发信号通知的任何点开始。扫描次序也可以在位流中显式地编码或在编码器和解码器之间达成一致。例如,编码器可显式地向解码器发信号通知一个点应当被跳过并在稍后的时间处理。该模式及其相关联的参数的信令可在序列/帧/图块/切片/lod/点组级别处完成。在一些实施方案中,可针对不同的细节级别选择不同的采样次序。

图3a示出了根据一些实施方案的确定和发信号通知待用于确定待包括在点云的细节级别(lod)中的点的采样次序的过程。

在302处,编码器确定待用于确定待包括在一个或多个细节级别/细化级别中的点的一个或多个采样次序。在一些实施方案中,可使用速率失真优化过程来确定待用于相应细化级别/细节级别的采样次序。在一些实施方案中,编码器可利用编码器已知的已知采样次序,或者可在304处发信号通知压缩位流中的一个或多个所选择的采样次序。在一些实施方案中,编码器可利用已知的或可由解码器推断的已知或暗示的采样次序,并且可仅发信号通知偏离已知或暗示的采样次序的特定lod的采样次序。

图3b示出了根据一些实施方案的通过将空间填充曲线应用到点云而生成的示例性索引,并且还示出了以正向采样次序对索引进行采样以确定点云的待包括在该点云的相应细节级别(lod)中的点。

例如,图3b示出了以每隔2个位置的采样率以正向采样次序进行采样的索引350。

图3c示出了根据一些实施方案的通过将空间填充曲线应用到点云而生成的示例性索引,并且还示出了以反向采样次序对索引进行采样以确定点云的待包括在该点云的相应细节级别(lod)中的点。

例如,图3c示出了以每隔2个位置的采样率以反向采样次序进行采样的索引370。需注意,与图3b所示的正向采样次序的情况相比,反向采样次序从索引的相对端开始对索引位置进行采样。还需注意,在一些实施方案中,根据不同采样次序以相同采样率对相同索引进行采样可导致不同点被选择为包括在给定细化级别/细节级别中。例如,基于反向采样次序中的采样索引370被确定为包括在第一细节级别中的点不同于以正向采样次序对索引350进行采样时所选择的点。

图3d示出了根据一些实施方案的通过将空间填充曲线应用到点云而生成的示例性索引,并且还示出了以内-外采样次序对索引进行采样以确定点云的待包括在该点云的相应细节级别(lod)中的点。

例如,图3d示出了以每隔2个位置的采样率以内-外采样次序进行采样的索引390。需注意,内-外采样次序从索引的内部位置开始对索引位置进行采样,并且继续在从内部位置的任一方向上的每隔2个位置处对索引进行采样。这也导致被选择为包括在第一细节级别中的一组不同的点,其不同于根据正向采样次序和反向采样次序所选择的点。在一些实施方案中,内部位置起始点可为索引中的中心位置或可偏离中心。

在一些实施方案中,可使用自适应扫描模式,其中较高lod允许从当前较低lod样本预测其样本。当然,这可影响对较高级别lod的解码过程(例如,限制其并行化能力)。然而,并行化仍然可以通过在lod内定义“独立”解码组来实现。此类组可通过不允许跨其进行预测来允许并行解码。然而,可允许使用较低级别lod以及当前lod组内的解码样本进行预测。

在一些实施方案中,编码器可通过利用速率失真优化(rdo)策略来选择适当的自适应扫描模式。在一些实施方案中,编码器还可考虑各种附加标准,诸如计算复杂度、电池寿命、存储器要求、延迟、预分析、收集的过去帧的统计值(历史)、用户反馈等。

自适应扫描偏移模式

在一些实施方案中,可在使用空间填充曲线的低复杂度lod生成过程中应用的另一种模式可以是“交替采样相位/偏移”模式。例如,编码器可向解码器发信号通知采样偏移值,该采样偏移值用于在生成下一个lod级别时选择应当从索引采样哪些点。例如,采样偏移值1可提供比偏移值0更好的速率失真(rd)性能。例如,代替以第一点的第一莫顿码开始对有序莫顿码进行采样,采样可以从偏移值开始,例如第二莫顿码、第三莫顿码等。这可能对性能有影响,因为这可能改变针对每个lod的编码和预测过程。采样偏移的信令可在序列/帧/图块/切片/lod/点组级别处完成。

图4a示出了根据一些实施方案的确定和发信号通知待用于确定待包括在点云的细节级别(lod)中的点的采样偏移值的过程。

在402处,编码器确定待用于确定待包括在细节级别/细化级别的一个或多个级别中的点的一个或多个采样偏移值。在一些实施方案中,可使用速率失真优化过程来确定待用于相应细化级别/细节级别的采样偏移值。在一些实施方案中,编码器可利用编码器已知的已知采样偏移值,或者可在304处在压缩位流中发信号通知一个或多个所选择的采样偏移值。在一些实施方案中,编码器可利用已知的或可由解码器推断的已知或暗示的采样偏移值,并且可仅发信号通知偏离已知或暗示的采样偏移值的特定lod的采样偏移值。在一些实施方案中,在不存在暗示或发信号通知的采样偏移值的情况下,可以不应用偏移。

图4b示出了根据一些实施方案的通过将空间填充曲线应用到点云而生成的示例性索引,并且还示出了使用不同的采样偏移值来对索引进行采样以确定待包括在该点云的相应细节级别(lod)中的点。

例如,图4b示出了使用每隔两个位置的采样率和为零的采样偏移值对索引450进行采样,以确定待包括在第一细节级别中的点。为了确定待包括在第二细化级别/细节级别中的点,使用每隔两个位置的相同采样率,但应用为一的采样偏移值。为了确定待包括在第三细化级别/细节级别中的点,使用每隔两个位置的相同采样率,但应用为二的采样偏移值。可以看出,即使当应用相同的采样率时,也可以使用采样偏移值来移位在索引的特定索引位置处的哪些点被选择为包括在给定细节级别中。

在一些实施方案中,可选择采样率、采样次序和/或采样偏移值的各种组合以应用于确定待包括在正被压缩的点云的各种细节级别中的点。

在一些实施方案中,可遵循速率失真优化过程以测试采样率、采样次序和/或采样偏移值的各种组合,以确定平衡最大化压缩效率的期望和最小化失真的期望的采样参数集。

图5示出了根据一些实施方案的用于确定待用于确定待包括在点云的相应细节级别(lod)中的点的采样参数的过程。

在502处,编码器的速率失真优化模块选择待应用的采样参数的初始组合,以选择待包括在针对被压缩的点云的相应细节级别中的点。例如,可选择采样率、采样次序、采样偏移值等的各种组合,以用于确定待包括在针对被压缩的点云的相应细节级别中的点。

在504处,速率失真优化模块可确定所选择的采样参数组合的压缩效率。例如,当相应点被组织成如根据采样参数的初始组合所确定的细节级别时,速率失真优化模块可确定压缩针对这些点的属性值所需的位数。另外,速率失真优化模块可确定发信号通知采样参数所需的位数。例如,一些采样参数对于解码器可以为已知的,使得仅需要发信号通知例外情况,因此选择需要发信号通知的采样参数(而不是默认或已知的采样参数)可能需要更多位。

在506处,速率失真优化模块针对点云的重建版本确定一个或多个失真度量,其中使用基于采样参数的初始组合(例如,在504处应用的相同采样参数)针对被组织成细节级别的点确定的压缩属性信息来重建该点云的重建版本。

在508处,速率失真优化模块选择待应用的采样参数的附加组合,以选择待包括在针对被压缩的点云的相应细节级别中的点。例如,可选择采样率、采样次序、采样偏移值等的各种组合,以用于确定待包括在针对被压缩的点云的相应细节级别中的点。在508处选择的采样参数的组合包括与在502处选择的采样参数的初始组合不同的至少一个或多个采样参数值。

在510处,当应用在508处选择的采样参数的组合时,速率失真优化模块确定压缩效率。另外,在512处,当应用在508处选择的采样参数的组合时,速率失真优化模块确定一个或多个失真度量。

虽然图5示出了速率失真优化测试采样参数的至少两个组合以执行优化,但在一些实施方案中,可测试任何数量的采样参数的组合。

在一些实施方案中,还可施加最小速率失真优化阈值,诸如最小压缩效率或最大可接受失真水平。例如,在514处,可确定是否满足rdo阈值。如果不满足,则该过程可返回到508,并且可以测试采样参数的下一个组合。然而,如果在514处满足了rdo阈值,则在516处,可选择所测试的组合的采样参数的最佳执行组合(例如,最低失真/最大压缩效率)以用于确定待包括在相应lod中的点以用于压缩被压缩的点云的属性信息。

属性交织模式

在一些实施方案中,当预测和编码/解码每个lod级别的残差数据(例如,属性校正值)时,点云的属性/属性通道可以不同级别交织。具体地讲,可在以下位置完成交织:

·点级别,

·点组级别,

·lod级别,

·切片级别,和/或

·帧级别。

在一些实施方案中,可在属性通道级别完成交织。例如,颜色通道可交织在一起,而其他属性仅在lod级别交织。然而,在一些实施方案中,不同的组合可用于不同类型的属性数据。交织方法可以是固定的并且在编码器和解码器之间是已知的,但也可以是自适应的并且可以在位流的不同级别处发信号通知。所使用的方法的决策可基于速率失真(rd)标准、预分析、过去的编码统计值、编码/解码复杂度或用户或系统已确定的一些其他标准。

图6示出了根据一些实施方案的在点云的不同细节级别(lod)之间交织属性校正值的示例。

索引600被示出为以每隔2个位置的速率进行采样,其中分别以采样偏移值0、1和2生成第一细节级别、第二细节级别和第三细节级别。然而,代替针对包括在相应细节级别中的每个点对红色、绿色、蓝色通道值进行编码,针对第一细节级别对红色通道值进行编码,针对第二细节级别对绿色通道值进行编码,并且针对第三细节级别对蓝色通道值进行编码。在一些实施方案中,解码器可基于针对其他细节级别交织的属性校正值来预测未包括在给定细节级别中的属性校正值。例如,对于包括在细节级别二中的点,解码器可直接对绿色通道属性校正值进行解码,并且可基于针对细节级别一中的相邻点结束的红色通道属性校正值来预测红色属性校正值。另外基于已知绿色通道属性校正值和预测红色通道属性校正值,编码器可暗示蓝色属性通道校正值待应用于包括在第二细节级别中的点。

属性间/跨分量预测

在一些实施方案中,不同的交织方法也可允许属性间/属性通道预测,这可导致更多的编码益处。例如,对于ycbcr数据,可以通过其亮度分量来预测cb和cr颜色分量。可以在各种级别选择此类预测模式,诸如:

·点级别,

·点组级别,

·lod级别,

·切片级别,和/或

·帧级别。

在一些实施方案中,可以使用不同的预测方法。例如,预测可以使用线性或非线性预测模型,其中模型的参数(例如,色度=a*y+b的模型中的标度和偏移)也被发信号通知解码器。可使用不同的方法(例如,使用最小二乘法)在编码器中估计此类参数。另选的模式将是把基于亮度的预测与通过常规预测方法生成的值组合。例如,我们可以考虑基于亮度的预测器和基于距离的预测器的加权平均值。加权参数可以在位流中显式地编码,或者可以由解码器隐式地确定。编码器可使用例如基于速率失真(rd)的标准或可考虑对编码过程的预分析和过去统计值的其他方法来确定此类参数。

在一些实施方案中,还可以基于同一点的已经编码/解码的属性/属性通道值来调整用于当前点属性的预测策略。例如,如果针对给定点的亮度(或其他x属性)值是已知的,则可以从针对该给定点的预测过程中排除相邻点,其中这些相邻点具有与该给定点的亮度(或x属性)值差别很大的亮度(或x属性)值。例如,基于亮度(或x属性)值之间的方差,可以从针对给定点的预测中排除相邻点的色度分量或其他属性。在一些实施方案中,预测可仅用具有类似特征的点来完成,例如,满足多个属性阈值,而不仅为距离阈值。编码器可以显式地发信号通知哪些已经编码/解码的属性或属性通道应当用于预测自适应。可以基于阈值t或一组阈值来确定相似性,假设为预测选择过程考虑了多个属性,则可以在位流中发信号通知t。此类阈值/阈值集可以在编码过程的不同级别发信号通知,例如,点组、lod、切片、图块、帧或序列。

组合排序/采样lod方法

在一些实施方案中,利用空间填充曲线对点进行排序并确定细化级别的低复杂度lod生成过程可与如上所述的基于距离的细化过程组合。例如,对于具有规则采样的平滑属性信号的点云的部分,可以使用基于距离的细化策略。然而,对于包括不规则采样的非平滑属性信号的点云的部分,可使用利用空间填充曲线对点进行排序并确定细化级别的低复杂度lod生成过程。在一些实施方案中,使用空间填充曲线在基于距离的lod生成过程和低复杂度的lod生成过程之间进行切换可在以下位置操作:

·点组级别,

·lod级别,

·切片级别,和/或

·帧级别。

图7中示出了根据一些实施方案的用于确定待包括在点云的针对该点云的细节级别(lod)中的点以及用于压缩针对被确定为包括在lod中的点的属性信息的示例性过程。

在702处,编码器接收待压缩的点云。在704处,编码器利用如上所述的空间填充曲线索引采样过程来确定点云的待包括在各种细节级别中的点。

在704处,编码器选择待针对其压缩属性信息的第一(或下一个)细节级别/细化级别。

在708处,编码器执行速率失真优化以确定待用于压缩属性值的压缩技术。例如,编码器可确定待使用最近邻逆距离预测技术。另选地,编码器可确定待使用空间填充曲线邻域预测技术。例如,在空间填充曲线邻域技术中,在正被评估的点的任一侧上的空间填充曲线索引中的位置处的给定lod中的点可被选择为最近邻域,而不需要计算欧几里得距离。此类技术可基于索引中的相邻点的相应距离来对相邻点的属性值进行加权。而最近邻逆距离预测技术可能需要计算欧几里德距离,并且可在预测正被评估的给定点的属性值时利用欧几里德距离来对相邻点的属性值进行加权。

在710处,编码器然后使用所选择的属性值压缩技术(在708处选择)对针对所选择的细节级别的属性值进行压缩。

在712处,编码器确定是否存在待压缩的附加细节级别。如果存在,则在706处针对下一个细节级别重复该过程。如果不存在,则该过程在714处结束。

图8示出了根据一些实施方案的用于对包括在点云的细节级别(lod)中的点的压缩属性信息进行解压缩的示例性过程。

在802处,解码器接收针对点云的压缩空间信息。该空间信息可能已经使用k-d树、八叉树、子采样和预测过程等进行了压缩。在804处,解码器基于压缩空间信息重建点云的几何形状。另外,在806处,解码器接收针对压缩点云的一个或多个细节级别的压缩属性信息。

在808处,解码器使用空间填充曲线索引采样技术来确定针对点云的细节级别。例如,解码器可将与编码器所应用的空间填充曲线相同的空间填充曲线应用于点云的重建几何形状。这可导致相同的位置索引,诸如图1至图7中所述的索引中的任一者。另外,解码器可将相同的一组采样参数应用于索引以与在编码器处进行的方式相同的方式对索引进行采样来生成细节级别,该细节级别包括与被确定为包括在编码器处的相应细节级别中的点相同的点。

在810处,解码器基于在806处接收到的压缩属性信息来选择待针对其重建属性值的第一(或下一个)细节级别。

在812处,解码器确定待用于所选择的细节级别的暗示或发信号通知的属性预测技术,例如最近邻逆距离预测技术、空间填充曲线邻域预测技术等。

在814处,解码器使用所选择的属性预测技术对针对所选择的细节级别的属性信息进行解压缩。

在816处,解码器确定是否待对附加细节级别进行解压缩,并且如果是,则返回到810并选择下一个细节级别以进行解压缩。如果不是,则在818处生成重建点云。

预测自适应

在一些实施方案中,预测自适应过程还可以利用与点云几何形状相关的各种统计值(例如,空间信息)。例如,其可仅包括具有相同x值和/或y值和/或z值的点,并且排除其他点(不仅基于距离,而且基于其他几何标准诸如角度)。预测还可以包括在一个或多个维度上距离有限的点。例如,可包括在总距离d内的点,然而这些点也在沿坐标轴的距离内,诸如距当前点的x距离(dx)、y距离(dy)或z距离(dz)。可以在各种级别选择/发信号通知此类预测模式。

相关lod编码器优化

在一些实施方案中,编码器可通过不仅考虑其自身的失真/编码性能而且考虑在预测下一个lod时引入的失真来选择用于当前lod的编码参数。可以针对所有属性或属性的子集(例如,仅亮度分量)计算此类失真。此类子集可由用户或一些其他装置预先确定,例如通过分析数据并确定哪个属性最活跃/具有最多能量。例如,哪个属性对其他属性的预测和跨多个细化级别或lod的预测具有最大影响。针对下一个lod评估的失真可以是基于平均平方误差(mse)的,或者可以考虑一些其他失真标准。还可考虑对下一个lod中的点进行二次采样以降低复杂度。例如,在该计算中可仅考虑lod中受影响的样本的一半。采样可以是随机的、基于一些限定的采样过程是固定的,或者也可以基于信号的特性,例如可以分析lod,并且可以考虑lod中最“重要”的点。重要性可例如基于属性的量值来确定。

示例性编码器

图9a示出了根据一些实施方案的编码器的部件。

编码器902可以是与图1a中示出的编码器104类似的编码器。编码器902包括空间编码器904、空间填充曲线lod生成器910、预测/校正评估器906、输入数据接口914和输出数据接口908。编码器902还包括上下文存储器916和配置存储器918。

在一些实施方案中,空间编码器(诸如空间编码器904)可以压缩与点云的点相关联的空间信息,使得可以压缩格式来存储或传输空间信息。在一些实施方案中,如关于图13更详细讨论的,空间编码器可以利用k-d树来压缩针对点云的点的空间信息。另外,在一些实施方案中,空间编码器(诸如空间编码器904)可以利用如关于图12a至图12b更详细讨论的子采样和预测技术。在一些实施方案中,空间编码器(诸如空间编码器904)可以利用八叉树来压缩针对点云的点的空间信息。

在一些实施方案中,压缩空间信息可以与压缩属性信息一起存储或传输,或者可以分开存储或传输。在任一种情况下,接收针对点云的点的压缩属性信息的解码器也可以接收针对该点云的这些点的压缩空间信息,或者可以获得针对该点云的这些点的空间信息。

空间填充曲线lod发生器(诸如空间填充曲线lod发生器910)可利用针对点云的点的空间信息来确定点云的待包括在相应lod中的点。例如,空间填充曲线lod发生器可利用图1至图8所述的过程中的任一者。因为解码器被提供或以其他方式获得与编码器处可用的针对点云的点的空间信息,所以由编码器的空间填充曲线lod发生器(诸如编码器902的空间填充曲线lod发生器910)确定的lod可与由解码器的空间填充曲线lod发生器(诸如解码器920的空间填充曲线lod发生器928)生成的lod相同或类似。

预测/校正评估器(诸如编码器902的预测/校正评估器906)可以基于逆距离插值方法使用正在预测属性值所针对的点的k个最近相邻点的属性值来确定针对点云的点的预测属性值。预测/校正评估器还可将正被评估的点的预测属性值与非压缩点云中的该点的原始属性值进行比较以确定属性校正值。另选地,预测/校正评估器906可利用其他预测技术,诸如空间填充曲线邻域预测技术。

传出数据编码器(诸如编码器902的传出数据编码器908)可以对包括在针对点云的压缩属性信息文件中的属性校正值和分配属性值进行编码。在一些实施方案中,传出数据编码器908还可编码待用于生成lod的采样参数。在一些实施方案中,传出数据编码器(诸如传出数据编码器908)可以基于包括在值中的符号的数量来选择用于对值进行编码的编码上下文,诸如分配属性值或属性校正值。在一些实施方案中,可以使用包括golomb指数编码的编码上下文来编码具有更多符号的值,而可以使用算术编码来编码具有更少符号的值。在一些实施方案中,编码上下文可包括多于一个的编码技术。例如,可以使用算术编码来编码值的一部分,而可以使用golomb指数编码来编码值的另一部分。在一些实施方案中,编码器(诸如编码器902)可包括上下文存储器诸如上下文存储器916,该上下文存储器存储由传出数据编码器诸如传出数据编码器908所使用的编码上下文,以对属性校正值和分配属性值进行编码。

在一些实施方案中,编码器诸如编码器902还可包括传入数据接口诸如传入数据接口914。在一些实施方案中,编码器可以从一个或多个传感器处接收传入数据,所述一个或多个传感器捕获点云的点或捕获与点云的点相关联的属性信息。例如,在一些实施方案中,编码器可以从lidar系统、3d相机、3d扫描仪等处接收数据,并且还可以从其他传感器诸如陀螺仪、加速度计等处接收数据。另外,编码器可以从系统时钟等处接收其他数据,诸如当前时间。在一些实施方案中,此类不同类型的数据可以由编码器经由传入数据接口诸如编码器902的传入数据接口914接收。

在一些实施方案中,编码器(诸如编码器902)还可包括配置接口(诸如配置接口912),其中编码器用来压缩点云的一个或多个参数可经由配置接口进行调整。在一些实施方案中,配置接口(诸如配置接口912)可为程序化接口,诸如api。编码器(诸如编码器902)所使用的配置可存储在配置存储器(诸如配置存储器918)中。

在一些实施方案中,编码器(诸如编码器902)可包括比图9a所示更多或更少的部件。

图9b示出了根据一些实施方案的解码器的部件。

解码器920可以是与图1a中示出的解码器116类似的解码器。解码器920包括编码数据接口926、空间解码器922、空间填充曲线lod生成器928、预测评估器924、上下文存储器932、配置存储器934和解码数据接口920。

解码器(诸如解码器920)可以接收针对点云的点的编码压缩点云和/或编码压缩属性信息文件。例如,解码器(诸如解码器920)可以接收压缩属性信息文件,诸如图1a所示的压缩属性信息112或图10所示的压缩属性信息文件1000。解码器可以经由编码数据接口(诸如编码数据接口926)来接收压缩属性信息文件。解码器可以使用编码压缩点云来确定针对该点云的点的空间信息。例如,包括在压缩点云中的点云的点的空间信息可以由空间信息生成器(诸如空间信息生成器922)生成。在一些实施方案中,可经由经编码数据接口(诸如经编码数据接口926)从存储设备或其他中间源接收压缩点云,其中该压缩点云先前由编码器(诸如编码器902)进行编码。在一些实施方案中,编码数据接口(诸如编码数据接口926)可以解码空间信息。例如,空间信息可能已使用各种编码技术(诸如算术编码、golomb编码等)进行编码。空间信息生成器(诸如空间信息生成器922)可以从编码数据接口(诸如编码数据接口926)处接收解码空间信息,并且可以使用解码空间信息来生成正被解压缩的点云的几何结构的表示。例如,可以将解码空间信息格式化为残差值,以在子采样的预测方法中使用这些残差值以重建待解压缩的点云的几何结构。在此类情况下,空间信息生成器922可以使用来自编码数据接口926的解码空间信息来重建正被解压缩的点云的几何结构,并且空间填充曲线lod生成器928可以基于由空间信息生成器922生成的用于正被解压缩的点云的重建几何结构来确定针对正被解压缩的点云的lod。

解码器的预测评估器(诸如预测评估器924)可以基于包括在压缩属性信息文件中的分配起始点来选择lod的起始点。在一些实施方案中,压缩属性信息文件可包括针对起始点的一个或多个对应属性的一个或多个分配值。在一些实施方案中,预测评估器(诸如预测评估器924)可以基于包括在压缩属性信息文件中的针对起始点的分配值将值分配给正被解压缩的点云的解压缩模型中的起始点的一个或多个属性。预测评估器(诸如预测评估器924)还可以利用起始点的属性的分配值来确定相邻点的属性值。例如,预测评估器可以选择距起始点最近的相邻点作为待评估的下一个点,其中基于从起始点到相邻点的最短距离来选择下一个最近相邻点。

一旦预测评估器已经识别出距正被评估的点的“k”个最近相邻点,预测评估器就可以基于这“k”个最近相邻点的对应属性的属性值来预测针对正被评估的点的一个或多个属性的一个或多个属性值。在一些实施方案中,逆距离插值技术可以用于基于相邻点的属性值来预测正被评估的点的属性值,其中距正被评估的点较近距离的相邻点的属性值比距正被评估的点较远距离的相邻点的属性值更大地加权。

预测评估器(诸如预测评估器924)可以将属性校正值应用于预测属性值,以确定针对解压缩点云中的点待包括的属性值。在一些实施方案中,针对点的属性的属性校正值可以包括在压缩属性信息文件中。在一些实施方案中,可以使用多个支持的编码上下文中的一个来编码属性校正值,其中基于包括在属性校正值中的符号的数量来选择不同的编码上下文以对不同的属性校正值进行编码。在一些实施方案中,解码器(诸如解码器920)可包括上下文存储器(诸如上下文存储器932),其中上下文存储器存储多个编码上下文,所述多个编码上下文可用于对分配属性值或属性校正值进行解码,这些属性值或属性校正值已经在编码器处使用对应的编码上下文进行了编码。

解码器(诸如解码器920)可以经由解码数据接口(诸如解码数据接口930)将基于接收到的压缩点云和/或接收到的压缩属性信息文件生成的解压缩点云lod提供给接收设备或应用程序。点云的解压缩lod可包括点云的被选择为包括在给定lod中的点以及针对给定lod的点的属性的属性值。在一些实施方案中,解码器可以解码针对点云的属性的一些属性值,而无需解码针对点云的其他属性的其他属性值。例如,点云可包括针对点云的点的颜色属性,并且还可包括针对该点云的点的其他属性,诸如速度。在此类情况下,解码器可以对点云的点的一个或多个属性(诸如速度属性)进行解码,而无需对点云的点的其他属性(诸如颜色属性)进行解码。

在一些实施方案中,针对给定lod的解压缩点云和/或解压缩属性信息文件可用于生成视觉显示,诸如用于头戴式显示器。另外,在一些实施方案中,可将解压缩点云和/或解压缩属性信息文件提供给决策引擎,该决策引擎使用解压缩点云和/或解压缩属性信息文件来做出一个或多个控制决策。在一些实施方案中,解压缩点云和/或解压缩属性信息文件可用于各种其他应用或用于各种其他目的。

图10示出了根据一些实施方案的示例性压缩属性信息文件。属性信息文件1000包括配置信息1002、用于第一lod的点云采样参数1004、用于第一lod的点云数据1006以及用于第一lod的点属性校正值1008。属性文件1000还包括用于另一lod的点云采样参数1010、用于第二lod的点云数据1012以及用于包括在第二lod中的点的点属性校正值1014。在一些实施方案中,属性信息文件1000可包括用于任何数量的lod的信息。在一些实施方案中,点云文件1000可经由多个数据包分批地传送。在一些实施方案中,并非属性信息文件1000中所示的所有部分都可被包括在传输压缩属性信息的每个数据包中。在一些实施方案中,属性信息文件(诸如属性信息文件1000)可以被存储在存储设备(诸如实现编码器或解码器的服务器)或其他计算设备中。

图11示出了根据一些实施方案的用于对点云的属性信息进行压缩的过程。

在1102处,编码器接收点云,该点云包括针对点云的点中的至少一些的属性信息。可以从捕获点云的一个或多个传感器处接收点云,或者可以在软件中生成点云。例如,虚拟现实或增强现实系统可能已经生成了点云。

在1104处,可以量化点云的空间信息,例如,点云的点的x、y和z坐标。在一些实施方案中,坐标可以四舍五入到最接近的测量单位,诸如米、厘米、毫米等。

在1106处,压缩量化的空间信息。在一些实施方案中,可以使用关于图12a至图12b更详细讨论的子采样和细分预测技术来压缩空间信息。另外,在一些实施方案中,可以使用关于图13更详细讨论的k-d树压缩技术来压缩空间信息,或者可以使用八叉树压缩技术来压缩空间信息。在一些实施方案中,可使用其他合适的压缩技术来压缩点云的空间信息。

在1108处,将针对点云的压缩空间信息编码为压缩点云文件或压缩点云文件的一部分。在一些实施方案中,压缩空间信息和压缩属性信息可包括在公共压缩点云文件中,或者可以被传送或存储为单独文件。

在1112处,使用接收到的点云的空间信息来生成针对该点云的细节级别。在一些实施方案中,可以在生成细节级别之前量化点云的空间信息。另外,在其中使用有损压缩技术来压缩点云的空间信息的一些实施方案中,可以在生成细节级别之前对空间信息进行有损编码和有损解码。在将有损压缩用于空间信息的实施方案中,在编码器处对空间信息进行编码和解码可确保在编码器处生成的细节级别将与将使用先前有损编码的解码空间信息在解码器处生成的细节级别匹配。

另外,在一些实施方案中,在1110处,可量化针对点云的点的属性信息。例如,属性值可以四舍五入为整数或特定的测量增量。在其中属性值是整数的一些实施方案中,诸如当整数用于传送字符串值诸如“步行”、“跑步”,“驾驶”等时,可以省略在1110处的量化。

在1114处,分配针对起始点的属性值。针对起始点的分配属性值连同属性校正值一起编码在压缩属性信息文件中。因为解码器基于到相邻点的距离和相邻点的属性值来预测属性值,所以针对至少一个点的至少一个属性值被显式编码在压缩属性文件中。在一些实施方案中,点云的点可包括多个属性,并且在此类实施方案中,可以针对点云的至少一个点编码针对属性的每种类型的至少一个属性值。在一些实施方案中,起始点可以是针对在1112处确定的第一lod评估的第一点。在一些实施方案中,编码器可以编码指示针对起始点的空间信息和/或点云的哪个点是一个或多个起始点的其他标记的数据。另外,编码器可以对针对起始点的一个或多个属性的属性值进行编码。在一些实施方案中,起始点可被编码用于每个lod,或者单个起始点可被编码用于第一lod,并且来自较低级别lod的预测值可用于预测较高级别lod。

在1116处,编码器确定用于预测针对点云中除起始点之外的其他点的属性值的评估次序,所述预测和确定属性校正值在本文中可被称为“评估”点的属性。可以基于从起始点到邻近的相邻点的最短距离来确定评估次序,其中选择最近相邻点作为评估次序中的下一个点。在一些实施方案中,可确定仅针对下一个待评估的点的评估次序。在其他实施方案中,可以在1116处确定针对点云的点中的所有点或多个点的评估次序。在一些实施方案中,可以动态地确定评估次序,例如,在评估点时一次确定一个点。在一些实施方案中,可以评估次序来评估点,该评估次序对应于基于空间填充曲线生成的索引中的点的次序,诸如莫顿次序。

在1118处,选择正被评估的起始点或后续点的相邻点。在一些实施方案中,与上次评估的点的其他相邻点相比,可以基于与最近评估的点距离最短的相邻点来选择下一个待评估的相邻点。在一些实施方案中,可以基于在1116处确定的评估次序来选择在1118处选择的点。在一些实施方案中,可以动态地确定评估次序,例如,在评估点时一次确定一个点。例如,每次在1118处选择待评估的下一个点时,可以确定评估次序中的下一个点。在此类实施方案中,可省略1116。因为按次序评估点,其中每个待评估的下一个点与上次评估的点之间的距离最短,所以可以使正被评估的点的属性值之间的熵最小化。这是因为彼此邻近的点最有可能具有类似的属性。尽管在一些情况下,邻近点的属性之间的相似度可能有所不同。

在1120处,确定距当前正被评估的点的“k”个最近相邻点。参数“k”可以是由编码器选择的可配置参数,或者可以作为用户可配置参数提供给编码器。为了选择“k”个最近相邻点,编码器可以根据最小生成树来识别到正被评估的点的第一“k”个最接近点。在一些实施方案中,仅具有分配属性值的点或已经为其确定了预测属性值的点可以包括在这“k”个最近相邻点中。在一些实施方案中,可以识别各种数量的点。例如,在一些实施方案中,“k”可以是5个点、10个点、16个点等。因为点云包括3d空间中的点,所以特定点可能在多个平面中具有多个相邻点。在一些实施方案中,编码器和解码器可以被配置为将点识别为“k”个最近相邻点,而不管是否已经针对该点预测了值。另外,在一些实施方案中,在预测中使用的针对点的属性值可以是先前的预测属性值或基于应用属性校正值已经校正的校正预测属性值。在任一种情况下,编码器和解码器可以被配置为在识别“k”个最近相邻点时以及基于“k”个最近相邻点的属性值来预测点的属性值时应用相同的规则。

在1122处,针对当前正被评估的点的每个属性确定一个或多个属性值。可以基于逆距离插值来确定属性值。逆距离插值可以基于“k”个最近相邻点的属性值来内插预测属性值。可以基于“k”个最近相邻点中的相应一些与正被评估的点之间的相应距离来加权“k”个最近相邻点的属性值。距当前正被评估的点较近距离的相邻点的属性值可以比距当前正被评估的点较远距离的相邻点的属性值更大地加权。

在1124处,确定针对当前正被评估的点的一个或多个预测属性值的属性校正值。可以基于将预测属性值与在属性信息压缩之前针对点云中相同点(或类似点)的对应属性值进行比较来确定属性校正值。在一些实施方案中,量化的属性信息(诸如在1110处生成的量化的属性信息)可以用于确定属性校正值。在一些实施方案中,属性校正值也可以被称为“残余误差”,其中残余误差指示预测属性值与实际属性值之间的差值。

在1126处,确定在点云中是否存在待针对其确定属性校正值的附加点。如果还存在待评估的附加点,则过程返回到1118,并且选择评估次序中的下一个待评估的点,或选择下一个lod。如上所讨论的,在一些实施方案中,可以动态地确定评估次序,例如,在评估点时一次确定一个点。因此,在此类实施方案中,可以咨询最小生成树以基于下一个点与上次评估的点之间的最短距离来选择下一个待评估的点。该过程可以重复步骤1118至1126,直到点云的所有点中的所有或一部分已经被评估以确定预测属性值和针对预测属性值的属性校正值为止。

在1128处,对确定属性校正值、分配属性值以及用于对压缩属性信息文件进行解码的任何配置信息(诸如参数“k”)进行编码。

可以使用各种编码技术来对属性校正值、分配属性值和任何配置信息进行编码。

图12a至图12b示出了根据一些实施方案的用于对点云的空间信息进行压缩的示例性过程。

在1202处,编码器接收点云。该点云可以是来自一个或多个传感器的捕获点云,或者可以是生成的点云(诸如由图形应用程序生成的点云)。例如,1204示出了未压缩点云的点。

在1206处,编码器对接收到的点云进行子采样以生成子采样点云。该子采样点云可比该接收到的点云包括更少的点。例如,接收到的点云可包括数百个点、数千个点或数百万个点,并且子采样点云可包括数十个点、数百个点或数千个点。例如,1208示出了在1202处接收到的点云的子采样点,例如,对1204中的点云的点进行子采样。

在一些实施方案中,编码器可对子采样点云进行编码和解码,以生成解码器在对压缩点云进行解码时将遇到的代表性子采样点云。在一些实施方案中,编码器和解码器可执行有损压缩/解压缩算法以生成代表性子采样点云。在一些实施方案中,可将针对子采样点云的点的空间信息量化,作为生成代表性子采样点云的一部分。在一些实施方案中,编码器可以利用无损压缩技术,并且可以省略对子采样点云的编码和解码。例如,当使用无损压缩技术时,原始子采样点云可代表解码器将遇到的子采样点云,因为在无损压缩中,数据可能不会在压缩和解压缩期间丢失。

在1210处,编码器根据为压缩点云选择的配置参数或根据固定的配置参数来识别子采样点云的点之间的细分位置。由编码器使用的非固定的配置参数的配置参数通过在压缩点云中包括这些配置参数的值来传送至编码器。因此,解码器可基于包括在压缩点云中的细分配置参数来确定与编码器评估的相同的细分位置。例如,1212示出了在子采样点云的相邻点之间的所识别的细分位置。

在1214处,编码器针对细分位置中的相应一些确定是要在解压缩点云中的细分位置处包括点还是不包括点。指示此确定的数据编码在压缩点云中。在一些实施方案中,指示该确定的数据可以是单个位,如果“真”,则该单个位意味着将要包括点,如果“假”,则该单个位意味着将不包括点。另外,编码器可确定要包括在解压缩点云中的点将相对于解压缩点云中的细分位置重新定位。例如1216示出了待相对于细分位置重新定位的一些点。针对此类点,编码器还可对指示如何相对于细分位置重新定位点的数据进行编码。在一些实施方案中,位置校正信息可以被量化并进行熵编码。在一些实施方案中,位置校正信息可包括δx、δy和/或δz值,这些值指示如何相对于细分位置重新定位该点。在其他实施方案中,位置校正信息可包括单个标量值,该单个标量值对应于位置校正信息的法向分量,其计算如下:

δn=[xa,ya,za]-[x,y,z])·[法向量]

在以上公式中,δn是指示位置校正信息的标量值,该标量值是相对于细分位置重新定位或调整的点位置(例如[xa,ya,za])与原始细分位置(例如[x,y,z])之间的差值。该向量差与细分位置处的法向量的向量积产生标量值δn。因为解码器可确定细分位置处的法向量,并且可确定细分位置的坐标(例如[x,y,z]),通过针对经调整位置解出上述公式,该解码器还能确定经调整位置的坐标(例如[xa,ya,za]),该坐标表示点相对于细分位置的经重新定位位置。在一些实施方案中,位置校正信息可进一步分解为垂直分量和一个或多个附加切向分量。在此类实施方案中,可对垂直分量(例如,δn)和所述一个或多个切向分量进行量化和编码以包括在压缩点云中。

在一些实施方案中,编码器可确定是否要将一个或多个附加点(除了包括在细分位置处的点或在相对于细分位置重新定位的位置处包括的点之外)包括在解压缩点云中。例如,如果原始点云具有不规则的表面或形状,使得子采样点云中的点之间的细分位置未充分表示该不规则的表面或形状,则编码器可确定除了确定要包括在细分位置处的点或相对于解压缩点云中的细分位置重新定位的点之外还包括一个或多个附加点。另外,编码器可基于系统约束诸如目标比特率、目标压缩比、质量目标度量等来确定是否要将一个或多个附加点包括在解压点云中。在一些实施方案中,位预算可由于改变条件诸如网络条件、处理器负载等而改变。在此类实施方案中,编码器可基于改变的位预算来调整被编码以被包括在解压缩点云中的附加点的量。在一些实施方案中,编码器可包括附加点,使得在不超出位预算的情况下消耗位预算。例如,当位预算较高时,编码器可包括更多的附加点以消耗位预算(并提高质量),并且当位预算较小时,编码器可包括更少的附加点,使得在不超出位预算的情况下消耗位预算。

在一些实施方案中,编码器还可确定是否要执行附加的细分迭代。如果要,则考虑到确定待包括、重新定位或附加地包括在解压缩点云中的点,并且该过程返回到1210,以识别更新的子采样点云的新细分位置,该更新的子采样点云包括确定待包括、重新定位或附加地包括在解压缩点云中的点。在一些实施方案中,待执行的细分迭代次数(n)可以是编码器的固定或可配置参数。在一些实施方案中,可将不同的细分迭代值分配给点云的不同部分。例如,编码器可考虑正从其查看点云的点视图,并且可对该点云在从该点视图查看的该点云的前景中的点执行更多的细分迭代,并且可对在从该点视图查看的点云的后景中的点执行更少的细分迭代。

在1218处,对针对点云的子采样点的空间信息进行编码。另外,对细分位置包括和重新定位数据进行编码。另外,对由编码器选择或从用户提供给编码器的任何可配置参数进行编码。然后,可将压缩点云作为一个压缩点云文件、多个压缩点云文件发送至接收实体,或者可将压缩点云打包并经由多个数据包传送至接收实体,诸如解码器或存储设备。在一些实施方案中,压缩点云可包括压缩空间信息和压缩属性信息两者。在其他实施方案中,压缩空间信息和压缩属性信息可包括在单独的压缩点云文件中。

图13示出了根据一些实施方案的用于对点云的空间信息进行压缩的另一个示例性过程。

在一些实施方案中,可以使用除了图12a至图12b中所述的子采样和预测空间信息技术之外的其他空间信息压缩技术。例如,空间编码器(诸如空间编码器904)或空间解码器(诸如空间解码器922)可以利用其他空间信息压缩技术(诸如k-d树空间信息压缩技术)。例如,在图11的1106处的压缩空间信息可以使用类似于在图12a至图12b中所述的子采样和预测技术来执行、可以使用类似于图13中所述的k-d树空间信息压缩技术来执行、或者可以使用另一种合适的空间信息压缩技术来执行。

在k-d树空间信息压缩技术中,可以在1302处接收包括空间信息的点云。在一些实施方案中,空间信息可以已经被预先量化或者可在被接收之后被进一步量化。例如,1318示出了可以在1302处接收的捕获点云。为简单起见,1318以二维方式示出了点云。然而,在一些实施方案中,接收到的点云可包括3d空间中的点。

在1304处,使用接收到的点云的空间信息来构建k维树或k-d树。在一些实施方案中,可以通过以预先确定的次序将空间诸如点云的1d、2d或3d空间划分为两半来构建k-d树。例如,包括点云的点的3d空间可以最初经由与三个轴中的一个(诸如x轴)相交的平面划分为两半。然后,后续的划分可以沿三个轴中的另一个(诸如y轴)划分所得到的空间。然后,另一个划分可以沿轴中的另一个(诸如z轴)划分所得到的空间。每次执行划分时,可以记录包括在由划分创建的子小区中的点的数量。在一些实施方案中,可以记录由于划分而导致的两个子小区中的仅一个子小区中的点的数量。这是因为可以通过从划分之前的父小区中的点的总数量中减去所记录的子小区中的点的数量来确定包括在其他子小区中的点的数量。

k-d树可包括由包括点云的点的空间的顺序划分产生的、包括在小区中的点的数量的序列。在一些实施方案中,构建k-d树可包括继续细分空间,直到仅单个点包括在每个最低级别的子小区中。可以将k-d树作为由顺序划分产生的顺序小区中的点的数量的序列进行传送。解码器可以配置有指示由编码器遵循的细分序列的信息。例如,编码器可以遵循预定义的划分序列,直到在每个最低级别的子小区中仅剩下单个点为止。因为解码器可能知道构建k-d树所遵循的划分顺序以及每个细分所产生的点的数量(作为压缩空间信息传送给解码器),所以解码器可能够重构点云。

例如,1320示出了二维空间中的k-d压缩的简化示例。初始空间包括七个点。这可以被认为是第一父小区,并且可以用点的数量“7”作为k-d树的第一数量来编码k-d树,这指示在k-d树中总共存在七个点。下一步可以是沿x轴划分空间,从而得到两个子小区,左子小区具有三个点,右子小区具有四个点。k-d树可包括左子小区中的点的数量,例如包括“3”作为k-d树的下一个数量。请记住,可以基于从父小区中的点的数量减去左子小区中的点的数量来确定右子小区中的点的数量。进一步可以是沿y轴将空间划分附加的时间,使得左子小区和右子小区中的每一者被划分为两半,成为更低级别的子小区。同样,包括在左更低级别子小区中的点的数量可包括在k-d树中,例如“0”和“1”。然后,下一步可以是沿x轴划分非零的更低级别子小区,并且在k-d树中记录更低级别的左子小区中的每一者的点的数量。该过程可以继续直到最低级别的子小区中仅剩下单个点。解码器可以基于接收到k-d树的每个左子小区的点总数的序列来利用逆过程来重建点云。

在1306处,选择用于对针对k-d树的第一小区(例如,包括七个点的父小区)的点的数量进行编码的编码上下文。在一些实施方案中,上下文存储器可以存储数百或数千个编码上下文。在一些实施方案中,可以使用最高数量点编码上下文来对包括比最高数量的点编码上下文更多的点的小区进行编码。在一些实施方案中,编码上下文可包括算术编码、golomb指数编码或两者的组合。在一些实施方案中,可使用其他编码技术。在一些实施方案中,算术编码上下文可包括针对特定符号的概率,其中不同的算术编码上下文包括不同的符号概率。

在1308处,根据所选择的编码上下文来编码针对第一小区的点的数量。

在1310处,基于包括在父小区中的点的数量来选择用于对子小区进行编码的编码上下文。可以与在1306处针对父小区类似的方式来选择针对子小区的编码上下文。

在1312处,根据在1310处选择的所选择的编码上下文,对包括在子小区中的点的数量进行编码。在1314处,确定在k-d树中是否存在待编码的附加更低级别子小区。如果存在,则该过程返回到1310。如果不存在,则在1316处,将父小区和子小区中的编码点的数量包括在压缩空间信息文件(诸如压缩点云)中。在压缩空间信息文件中对编码的值进行排序,使得解码器可以基于每个父小区和子小区的点的数量以及包括在压缩空间信息文件中的相应小区的点的数量的次序来重构点云。

在一些实施方案中,可以确定每个小区中的点的数量,并且随后在1316处将其编码为组。或者,在一些实施方案中,可以在确定之后对小区中的点的数量进行编码,而无需等待确定所有子小区的点总数。

图14示出了根据一些实施方案的用于对点云的压缩属性信息进行解压缩的示例过程。

在1402处,解码器接收针对点云的压缩属性信息,并且在1404处,解码器接收针对点云的压缩空间信息。在一些实施方案中,压缩属性信息和压缩空间信息可包括在一个或多个公共文件或单独文件中。

在1406处,解码器对压缩空间信息进行解压缩。压缩空间信息可能已经根据子采样和预测技术进行压缩,并且解码器可以执行与在编码器处执行的类似的子采样、预测和预测校正动作并且将校正值进一步应用于预测点位置以根据压缩空间信息生成非压缩点云。在一些实施方案中,可以k-d树格式来压缩压缩空间信息,并且解码器可以基于包括在接收到的空间信息中的编码k-d树来生成解压缩点云。在一些实施方案中,压缩空间信息可能已经使用八叉树技术进行压缩,并且八叉树解码技术可以用于生成针对该点云的解压缩空间信息。在一些实施方案中,可能已经使用其他空间信息压缩技术,并且可以经由解码器对这些技术进行解压缩。

在1408处,解码器可基于解压缩空间信息确定待包括在各种细节级别中的点。例如,可以经由解码器的编码数据接口(诸如图9b中所示的解码器920的编码数据接口926)来接收压缩空间信息和/或压缩属性信息。空间解码器(诸如空间解码器922)可对压缩空间信息进行解压缩,并且空间填充曲线发生器(诸如空间填充曲线发生器928)可基于解压缩空间信息来生成lod。

在1410处,解码器的预测评估器(诸如解码器920的预测评估器924)可以基于包括在压缩属性信息中的分配属性值将属性值分配给起始点。在一些实施方案中,压缩属性信息可以根据基于最小生成树的评估次序将点识别为待用于生成最小生成树并且用于预测点的属性值的起始点。针对起始点的所述一个或多个分配属性值可包括在针对解压缩点云的解压缩属性信息中。

在1412处,解码器的预测评估器或另一个解码器部件确定针对起始点之后待评估的至少下一个点的评估次序。在一些实施方案中,可以确定针对点中的所有点或多个点的评估次序,或者在其他实施方案中,可以在确定针对点的属性值时逐点地确认评估次序。可以基于正被评估的连续点之间的最小距离来按次序评估点。例如,与其他相邻点相比,距起始点距离最短的相邻点可以被选择为在起始点之后待评估的下一个点。以类似的方式,然后可以基于距最近已评估的点的最短距离来选择待评估的其他点。在1414处,选择待评估的下一个点。在一些实施方案中,1412和1414可一起执行。

在1416处,解码器的预测评估器确定距正被评估的点的“k”个最近相邻点。在一些实施方案中,只有当相邻点已分配或预测属性值时,它们才可包括在“k”个最近相邻点中。在其他实施方案中,相邻点可包括在“k”个最近相邻点中,而与它们是否已分配或已经预测属性值无关。在此类实施方案中,编码器可以遵循与解码器类似的规则,即在识别“k”个最近相邻点时是否包括没有预测值的点作为相邻点。

在1418处,基于“k”个最近相邻点的属性值以及正被评估的点与“k”个最近相邻点中的相应一些之间的距离,针对正被评估的点的一个或多个属性确定预测属性值。在一些实施方案中,逆距离插值技术可以用于预测属性值,其中更接近正被评估的点的点的属性值比更远离正被评估的点的点的属性值更大地加权。由解码器使用的属性预测技术可以与压缩属性信息的编码器使用的属性预测技术相同。

在1420处,解码器的预测评估器可以将属性校正值应用于点的预测属性值以校正该属性值。属性校正值可以使属性值与压缩之前的原始点云的属性值匹配或几乎匹配。在点具有多于一个属性的一些实施方案中,可以针对该点的每个属性重复1418和1420。在一些实施方案中,可对一些属性信息进行解压缩而不对针对点云或点的所有属性信息进行解压缩。例如,点可包括速度属性信息和颜色属性信息。可以在不解码颜色属性信息的情况下解码速度属性信息,反之亦然。在一些实施方案中,利用压缩属性信息的应用可以指示针对点云待解压缩哪些属性。

在1422处,确定是否存在待评估的附加点或lod。如果存在,则该过程返回到1414,并且选择待评估的下一个点。如果不存在待评估的附加点,则在1424处,提供解压缩属性信息,例如作为解压缩点云,其中每个点包括空间信息和一个或多个属性。

在一些情况下,对针对点云的属性信息进行编码所需的位的数量可能构成针对该点云的位流的显著部分。例如,属性信息可以构成比用于传输针对点云的压缩空间信息所使用的位流更大的部分。

在一些实施方案中,空间信息可用于构建分级细节级别(lod)结构。lod结构可用于压缩与点云相关联的属性。lod结构还可以启用高级功能,诸如与渐进式/视图相关的流和可伸缩渲染。例如,在一些实施方案中,可以仅针对点云的一部分(例如,细节级别)发送(或解码)压缩属性信息,而不针对整个点云发送(或解码)所有属性信息。

图15示出了根据一些实施方案的生成分级lod结构的示例性编码过程。例如,在一些实施方案中,编码器(诸如编码器902)可以使用如图15所示的类似过程以lod结构来生成压缩属性信息。

在一些实施方案中,几何信息(在本文中也称为“空间信息”)可用于有效地预测属性信息。例如,在图15中示出了对颜色信息的压缩。然而,lod结构可以应用于与点云的点相关联的任何类型的属性(例如,反射率、纹理、模态等)的压缩。需注意,可以根据待压缩的属性来执行应用颜色空间转换或更新数据以使数据更适合于压缩的预编码步骤。

在一些实施方案中,如下所述进行根据lod过程的属性信息压缩。

例如,假设几何(g)={点-p(0),p(1),…p(n-1)}为由包括在编码器中的空间解码器(几何解码器gd1502)在对由还包括在编码器(几何编码器ge1514)(诸如空间编码器904)中的几何编码器产生的压缩几何位流进行解码之后生成的重建点云位置。例如,在一些实施方案中,编码器(诸如编码器902)可包括几何编码器(诸如几何编码器1514)和几何解码器(诸如几何解码器1514)两者。在一些实施方案中,几何编码器可以是空间编码器914的一部分,并且几何解码器可以是预测/校正评估器906的一部分。

在一些实施方案中,解压缩空间信息可以描述3d空间中的点的位置,诸如组成马克杯1500的点的x、y和z坐标。需注意,空间信息可能对编码器(诸如编码器902)和解码器(诸如解码器920)两者均可用。例如,各种技术(诸如k-d树压缩、八叉树压缩、最近相邻点预测等)可以用于压缩和/或编码针对马克杯1500的空间信息,并且空间信息可以与针对构成马克杯1500的点云的点的属性的压缩属性信息一起或另外地发送到解码器。

在一些实施方案中,确定性重新排序过程可以应用于编码器侧(诸如在编码器902处)和解码器侧(诸如在解码器920处)两者,以便在一组细节级别(lod)中组织点云的点(诸如表示马克杯1500的点)。例如,细节级别可以由细节级别生成器1504生成,其可以包括在编码器的预测/校正评估器诸如编码器902的预测/校正评估器906中。在一些实施方案中,细节级别生成器1504可以是编码器(诸如编码器902)的单独部件。例如,细节级别生成器1504可以是编码器902的单独部件。

在一些实施方案中,如上所述的编码器还可包括量化模块(未示出),该量化模块对包括在正被提供给几何编码器1514的“位置(x,y,z)”中的几何信息进行量化。此外,在一些实施方案中,如上所述的编码器可以附加包括在量化之后并且在几何编码器1514之前移除重复点的模块。

在一些实施方案中,量化还可应用于压缩属性信息,诸如属性校正值和/或一个或多个属性值起始点。例如,在1510处执行量化到由基于插值的预测模块1508确定的属性校正值。量化技术可包括均匀量化、具有死区的均匀量化、非均匀/非线性量化、栅格量化或其他合适的量化技术。

示例性细节级别分级

图16示出了根据一些实施方案的示例性lod。需注意,lod生成过程可能会生成原始点云的均匀或接近均匀采样近似值(或细节级别),随着包括越来越多的点而变得越来越细化。此类特征使其特别适合于渐进式/视图相关的传输和可伸缩渲染。例如,1604可包括比1602更多的细节,而1606可包括比1604更多的细节。另外,1608可包括比1602、1604和1606更多的细节。

分级lod结构可用于构建属性预测策略。例如,在一些实施方案中,可以按照与点在lod生成阶段期间被访问的次序相同的次序来编码点。可以通过使用先前已经编码的k个最近相邻来预测每个点的属性。在一些实施方案中,“k”是可以由用户定义或者可以通过使用优化策略来确定的参数。“k”可以是静态的或自适应的。在“k”是自适应的后一种情况下,描述该参数的额外信息可包括在位流中。

在一些实施方案中,可以使用不同的预测策略。例如,可以使用以下插值策略中的一种,以及以下插值策略的组合,或者编码器/解码器可以自适应地在不同插值策略之间切换。不同的插值策略可包括插值策略,诸如:逆距离插值、重心插值、自然相邻插值、移动最小二乘插值或其他合适的插值技术。例如,可以在包括在编码器的预测/校正值评估器(诸如,编码器902的预测/校正值评估器906)中的基于插值的预测模块1508处执行基于插值的预测。另外,可以在包括在解码器的预测评估器(诸如,解码器920的预测评估器924)中的基于插值的预测模块1508处执行基于插值的预测。在一些实施方案中,在执行基于插值的预测之前,还可以在颜色空间转换模块1506处转换颜色空间。在一些实施方案中,颜色空间转换模块1506可包括在编码器(诸如编码器902)中。在一些实施方案中,解码器还可包括将转换后的颜色空间转换回原始颜色空间的模块。

在一些实施方案中,量化还可应用于属性信息。例如,量化可在量化模块1510处执行。在一些实施方案中,编码器(诸如编码器902)还可包括量化模块1510。由量化模块1510采用的量化技术可包括均匀量化、具有死区的均匀量化、非均匀/非线性量化、栅格量化或其他合适的量化技术。

在一些实施方案中,lod属性压缩可用于压缩动态点云,如下所示:

o假设fc为当前点云帧,并且假设rf为参考点云。

o假设m为使rf变形为fc形状的运动场。

·m可以在解码器侧计算,并且在这种情况下,信息可以不被编码在位流中。

·m可以由编码器计算并且在位流中显式地编码。

·可以通过将本文所述的分级压缩技术应用于与rf的每个点相关联的运动矢量来对m进行编码(例如,rf的运动可以被认为是额外的属性)。

·m可以被编码为具有相关联的局部和全局转换的基于骨架/皮肤的模型。

·m可以被编码为基于八叉树结构定义的运动场,其被自适应地改进以适应运动场的复杂性。

·m可以通过使用任何合适的动画技术来描述,诸如基于关键帧的动画、变形技术、自由形式的变形、基于关键点的变形等。

·假设rf'为将运动场m应用于rf后获得的点云。然后,不仅考虑fc的“k”个最近相邻点,而且考虑rf’的“k”个最近相邻点,也可以将rf’的点用于属性预测策略。

此外,可以基于将在基于插值的预测模块1508处确定的基于插值的预测值与原始未压缩属性值进行比较来确定属性校正值。可以在量化模块1510处进一步量化属性校正值,并且可以在算术编码模块1512处对量化的属性校正值、编码的空间信息(从几何编码器1502输出)和在预测中使用的任何配置参数进行编码。在一些实施方案中,算术编码模块可以使用上下文自适应算术编码技术。然后可以将压缩点云提供给解码器(诸如解码器920),并且解码器可以确定类似的细节级别,并且基于量化的属性校正值、编码的空间信息(从几何编码器1502输出)和在编码器预测中使用的配置参数来执行基于插值的预测以重建原始点云。

用于点云压缩和解压缩的示例性应用

图17示出了根据一些实施方案的在3d远程显示应用中正在使用的压缩点云。

在一些实施方案中,传感器(诸如传感器102)、编码器(诸如编码器104或编码器902)和解码器(诸如解码器116或解码器920)可用于在3d应用中传送点云。例如,在1702处,传感器(诸如传感器102)可捕获3d图像,并且在1704处,传感器或与传感器相关联的处理器可基于感测到的数据执行3d重建以生成点云。

在1706处,编码器(诸如编码器104或902)可对点云进行压缩,并且在1708处,编码器或后处理器可打包压缩点云并经由网络1710传输压缩点云。在1712处,可在包括解码器(诸如解码器116或解码器920)的目标位置处接收数据包。在1714处,解码器可对点云进行解压缩,并且在1716处,可渲染解压缩点云。在一些实施方案中,3d应用可实时地传输点云数据,使得1716处的显示可表示正在1702处观察到的图像。例如,在1716处,峡谷中的相机可允许远程用户体验穿行虚拟峡谷。

图18示出了根据一些实施方案的在虚拟现实(vr)或增强现实(ar)应用中正在使用的压缩点云。

在一些实施方案中,点云可在软件中生成(例如,与由传感器捕获相反)。例如,在1802处,产生虚拟现实或增强现实内容。虚拟现实或增强现实内容可包括点云数据和非点云数据。例如,作为一个示例,非点云字符可横穿由点云表示的地形。在1804处,可以压缩点云数据,并且在1806处,可以将压缩点云数据和非点云数据打包并经由网络1808传输这些数据。例如,在1802处产生的虚拟现实或增强现实内容可在远程服务器处产生并经由网络1808传送至vr或ar内容消费者。在1810处,数据包可在vr或ar消费者的设备处被接收并同步。在1812处,在vr或ar消费者的设备处运作的解码器可对压缩点云进行解压缩,并且点云和非点云数据可例如在vr或ar消费者的设备的头戴式显示器中被实时渲染。在一些实施方案中,可响应于vr或ar消费者操纵头戴式显示器以看向不同的方向来生成、压缩、解压缩和渲染点云数据。

在一些实施方案中,如本文所述的点云压缩可用于各种其他应用诸如地理信息系统、体育赛事直播、博物馆展示、自主导航等中。

示例性计算机系统

图19示出了根据一些实施方案的示例性计算机系统1900,该示例性计算机系统可实现编码器或解码器或本文所述的部件中的任何其他部件(例如,上文参考图1至图18描述的部件中的任何部件)。计算机系统1900可被配置为执行上文所述的任意或全部实施方案。在不同的实施方案中,计算机系统1900可为各种类型的设备中的任一者,包括但不限于:个人计算机系统、台式计算机、膝上型电脑、笔记本电脑、平板电脑、一体电脑、平板电脑或上网本电脑、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、消费者设备、视频游戏控制器、手持式视频游戏设备、应用服务器、存储设备、电视、视频记录设备、外围设备(诸如交换机、调制解调器、路由器)、或一般性的任何类型的计算或电子设备。

本文所述的点云编码器或解码器的各种实施方案可在一个或多个计算机系统1900上执行,该计算机系统可与各种其他设备交互。需注意,根据各种实施方案,上文相对于图1至图18描述的任何部件、动作或功能性可以实现于被配置为图19的计算机系统1900的一个或多个计算机上。在例示的实施方案中,计算机系统1900包括经由输入/输出(eo)接口1930耦接到系统存储器1920的一个或多个处理器1910。计算机系统1900还包括耦接到i/o接口1930的网络接口1940,以及一个或多个输入/输出设备1950,诸如光标控制设备1960、键盘1970和显示器1980。在一些情况下,可以想到实施方案可以使用计算机系统1900的单个实例来实现,而在其他实施方案中,多个此类系统或者构成计算机系统1900的多个节点可被配置为托管实施方案的不同部分或实例。例如,在一个实施方案中,一些元素可以经由计算机系统1900的与实现其他元素的那些节点不同的一个或多个节点来实现。

在各种实施方案中,计算机系统1900可以是包括一个处理器1910的单处理器系统、或者包括若干个处理器1910(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器1910可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1910可以是实现多种指令集架构(isa)(诸如x86、powerpc、sparc或mipsisa或任何其他合适的isa)中的任一种的通用或嵌入式处理器。在多处理器系统中,处理器1910中的每一个处理器通常可以但并非必须实现相同的isa。

系统存储器1920可被配置为存储点云压缩或点云解压缩程序指令1922和/或可由处理器1910访问的传感器数据。在各种实施方案中,系统存储器1920可使用任何合适的存储器技术来实现,诸如静态随机存取存储器(sram)、同步动态ram(sdram)、非易失性/闪存型存储器或任何其他类型的存储器。在例示的实施方案中,程序指令1922可被配置为实现结合上述功能性中的任一种的图像传感器控制应用程序。在一些实施方案中,程序指令和/或数据可被接收、发送或存储在与系统存储器1920或计算机系统1900分开的不同类型的计算机可访问介质上或类似介质上。尽管将计算机系统1900描述为实施前面各图的功能框的功能性,但可以经由此类计算机系统实施本文描述的任何功能性。

在一个实施方案中,i/o接口1930可被配置为协调设备中的处理器1910、系统存储器1920和任何外围设备(包括网络接口1940或其他外围设备接口,诸如输入/输出设备1950)之间的i/o通信。在一些实施方案中,i/o接口1930可执行任何必要的协议、定时或其他数据转换以将来自一个部件(例如系统存储器1920)的数据信号转换为适于由另一部件(例如处理器1910)使用的格式。在一些实施方案中,i/o接口1930可包括对例如通过各种类型的外围设备总线(诸如,外围部件互连(pci)总线标准或通用串行总线(usb)标准的变型)附接的设备的支持。在一些实施方案中,i/o接口1930的功能例如可被划分到两个或更多个单独部件中,诸如北桥接件和南桥接件。此外,在一些实施方案中,i/o接口1930(诸如到系统存储器1920的接口)的一些或所有功能性可以被直接并入到处理器1910中。

网络接口1940可被配置为允许在计算机系统1900与附接到网络1985的其他设备(例如,承载器或代理设备)之间或者在计算机系统1900的节点之间交换数据。在各种实施方案中,网络1985可包括一种或多种网络,包括但不限于局域网(lan)(例如,以太网或企业网)、广域网(wan)(例如,互联网)、无线数据网、某种其他电子数据网络或它们的某种组合。在各种实施方案中,网络接口1940可支持经由有线或无线通用数据网络(诸如任何合适类型的以太网网络)的通信,例如;经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)的通信;经由存储区域网络(诸如光纤通道sans)、或经由任何其他合适类型的网络和/或协议的通信。

在一些实施方案中,输入/输出设备1950可包括一个或多个显示终端、键盘、小键盘、触控板、扫描设备、语音或光学识别设备、或适于由一个或多个计算机系统1900输入或访问数据的任何其他设备。多个输入/输出设备1950可存在于计算机系统1900中,或者可分布在计算机系统1900的各个节点上。在一些实施方案中,类似的输入/输出设备可以与计算机系统1900分开,并且可通过有线或无线连接(诸如通过网络接口1940)与计算机系统1900的一个或多个节点进行交互。

如图19所示,存储器1920可包含程序指令1922,该程序指令可能够由处理器执行,以实现上文所述的任何元素或动作。在一个实施方案中,程序指令可执行上文所述的方法。在其他实施方案中,可包括不同的元件和数据。需注意,数据可包括上文所述的任何数据或信息。

本领域的技术人员应当理解,计算机系统1900仅仅是例示性的,而并非旨在限制实施方案的范围。具体地,计算机系统和设备可包括可执行所指出的功能的硬件或软件的任何组合,包括计算机、网络设备、互联网设备、个人数字助理、无线电话、寻呼机等等。计算机系统1900还可连接到未示出的其他设备,或者反之可作为独立的系统进行操作。此外,由所示出的部件所提供的功能在一些实施方案中可被组合在更少的部件中或者被分布在附加部件中。类似地,在一些实施方案中,所示出的部件中的一些部件的功能可不被提供,和/或其他附加功能可能是可用的。

本领域的技术人员还将认识到,虽然各种项目被示出为在被使用期间被存储在存储器中或存储装置上,但是为了存储器管理和数据完整性的目的,这些项目或其部分可在存储器和其他存储设备之间进行传输。另选地,在其他实施方案中,这些软件部件中的一些或全部软件部件可以在另一设备上的存储器中执行,并且经由计算机间通信来与例示的计算机系统进行通信。系统部件或数据结构中的一些或全部也可(例如作为指令或结构化数据)被存储在计算机可访问介质或便携式制品上以由合适的驱动器读取,其多种示例在上文中被描述。在一些实施方案中,存储在与计算机系统1900分开的计算机可访问介质上的指令可经由传输介质或信号(诸如经由通信介质诸如网络和/或无线链路而传送的电信号、电磁信号或数字信号)传输到计算机系统1900。各种实施方案还可包括在计算机可访问介质上接收、发送或存储根据以上描述所实现的指令和/或数据。一般来讲,计算机可访问介质可包括非暂态计算机可读存储介质或存储器介质,诸如磁介质或光学介质,例如盘或dvd/cd-rom、易失性或非易失性介质,诸如ram(例如sdram、ddr、rdram、sram等)、rom等。在一些实施方案中,计算机可访问介质可包括传输介质或信号,诸如经由通信介质诸如网络和/或无线链路而传送的电气信号、电磁信号、或数字信号。

在不同的实施方案中,本文所述的方法可以在软件、硬件或它们的组合中实现。此外,可改变方法的框的次序,并且可对各种要素进行添加、重新排序、组合、省略、修改等。对于受益于本公开的本领域的技术人员,显然可做出各种修改和改变。本文所述的各种实施方案旨在为例示的而非限制性的。许多变型、修改、添加和改进是可能的。因此,可为在本文中被描述为单个示例的部件提供多个示例。各种部件、操作和数据存储库之间的界限在一定程度上是任意性的,并且在具体的示例性配置的上下文中示出了特定操作。预期了功能的其他分配,它们可落在所附权利要求的范围内。最后,被呈现为示例性配置中的分立部件的结构和功能可被实现为组合的结构或部件。这些和其他变型、修改、添加和改进可落入如以下权利要求书中所限定的实施方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1