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

针对点云压缩的预测编码的制作方法

2022-06-01 20:34:30 来源:中国专利 TAG:

针对点云压缩的预测编码


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


技术实现要素:

4.在各种实施方案中,实现预测编码技术来压缩或以其他方式编码关于点云的信息,诸如空间或其他几何信息或其他属性值。可生成预测树,该预测树用于通过包括预测技术和预测技术所应用于的预测树中的一个或多个祖先节点来预测关于点云中的个别点的信息。该预测树可被编码以用于发送信号通知点云信息,并且随后被解码以便在目的地重构点云。
附图说明
5.图1示出了根据一些实施方案的系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的属性信息和/或空间信息的编码器,其中压缩的点云信息被发送至解码器。
6.图2a是示出根据一些实施方案的用于对点云进行预测编码的各种技术的高级流程图。
7.图2b是根据一些实施方案的示例性预测树。
8.图3是示出根据一些实施方案的用于根据空间填充曲线来生成预测树的各种技术的高级流程图。
9.图4是示出根据一些实施方案的用于根据可能的预测因子的缓冲区来生成预测树的各种技术的高级流程图。
10.图5是示出根据一些实施方案的示例性拓扑抽取操作的逻辑图。
11.图6是示出根据一些实施方案的用于对针对点云的预测树进行解码的各种技术的
高级流程图。
12.图7a示出了根据一些实施方案的编码器的部件。
13.图7b示出了根据一些实施方案的解码器的部件。
14.图8示出了根据一些实施方案的正在3d应用中使用的压缩点云信息。
15.图9示出了根据一些实施方案的正在虚拟现实应用中使用的压缩点云信息。
16.图10示出了根据一些实施方案的可实现编码器或解码器的示例性计算机系统。
17.本说明书包括参考“一个实施方案”或“实施方案”。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
[0018]“包括”,该术语是开放式的。如在所附权利要求书中所使用的,该术语不排除附加结构或步骤。考虑以下引用的权利要求:“一种包括一个或多个处理器单元...的装置”此类权利要求不排除该装置包括附加部件(例如,网络接口单元、图形电路等)。
[0019]“被配置为”,各种单元、电路或其他部件可被描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件据称可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件——例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引35u.s.c.
§
112(f)。此外,“被配置为”可包括由软件和/或固件(例如,fpga或执行软件的通用处理器)操纵的通用结构(例如,通用电路)以能够执行待解决的一项或多项任务的方式操作。“被配置为”还可包括调整制造过程(例如,半导体制作设施),以制造适用于实现或执行一项或多项任务的设备(例如,集成电路)。
[0020]“第一”“第二”等。如本文所用,这些术语充当它们所在之前的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,缓冲电路在本文中可被描述为执行“第一”值和“第二”值的写入操作。术语“第一”和“第二”未必暗指第一值必须在第二值之前被写入。
[0021]“基于”。如本文所用,该术语用于描述影响确定的一个或多个因素。该术语不排除影响确定的附加因素。即,确定可仅基于这些因素或至少部分地基于这些因素。考虑短语“基于b来确定a”。在这种情况下,b为影响a的确定的因素,此类短语不排除a的确定也可基于c。在其他实例中,可仅基于b来确定a。
具体实施方式
[0022]
随着数据采集和显示技术变得更加先进,增强了(诸如经由lidar系统)捕获包括2d或3d空间中成千上万个点的点云的能力。而且,先进显示技术(诸如虚拟现实或增强现实系统)的发展增加了点云的潜在用途。然而,点云文件通常非常大,并且存储和传输这些点云文件可能成本高且耗时。例如,点云通过私有网络或公共网络(诸如互联网)的通信可能需要相当大量的时间和/或网络资源,使得点云数据的一些使用(诸如实时使用)可能受到限制。另外,点云文件的存储要求可能消耗存储点云文件的设备的显著量的存储容量,这也可能限制潜在应用使用点云数据。
[0023]
在一些实施方案中,编码器可用于生成压缩点云以降低与存储和传输大的点云文件相关联的成本和时间。在一些实施方案中,系统可包括压缩点云文件的属性信息和/或空间信息(在本文中也称为几何信息)的编码器,使得点云文件可比非压缩点云更快地被存储和传输,并且以点云文件可比非压缩点云占据更少的存储空间的方式被存储和传输。在一些实施方案中,点云中的点的空间信息和/或属性的压缩可使点云能够实时地或几乎实时地通过网络传送。例如,系统可包括传感器,该传感器捕获关于该传感器所在环境中的点的空间信息和/或属性信息,其中所捕获的点和对应的属性构成点云。该系统还可包括压缩所捕获的点云的属性信息的编码器。点云的压缩属性信息可通过网络实时或几乎实时地发送到对点云的压缩属性信息进行解压缩的解码器解码器。该解压缩点云可被进一步处理,例如以基于传感器位置处的周围环境做出控制决策。然后可将控制决策传送回传感器位置处或其附近的设备,其中接收控制决策的设备实时地或几乎实时地实现控制决策。在一些实施方案中,解码器可以与增强现实系统相关联,并且解压缩空间和/或属性信息可以由增强现实系统显示或以其他方式使用。在一些实施方案中,可将关于点云的压缩属性信息与关于点云的点的压缩空间信息一起发送。在其他实施方案中,空间信息和属性信息可以被分别编码和/或分别发送到解码器。
[0024]
在一些实施方案中,系统可包括解码器,该解码器经由网络从远程服务器或存储一个或多个点云文件的其他存储设备处接收包括压缩属性信息的一个或多个点云文件。例如,可实时地或几乎实时地操纵3d显示器、全息显示器或头戴式显示器来显示由点云表示的虚拟世界的不同部分。为了更新3d显示器、全息显示器或头戴式显示器,与解码器相关联的系统可以基于显示器的用户操纵从远程服务器请求点云文件,并且这些点云文件可以从远程服务器传输到解码器并由解码器实时地或几乎实时地进行解码。然后可用响应于用户操纵的更新点云数据(诸如更新的点属性)来更新显示器。
[0025]
在一些实施方案中,一种系统可包括一个或多个lidar系统、3d相机、3d扫描仪等,并且此类传感器设备可捕获空间信息,诸如传感器设备的视图中的点的x、y和z坐标。在一些实施方案中,空间信息可相对于局部坐标系或可相对于全局坐标系(例如,笛卡尔坐标系可具有固定参考点诸如地球上的固定点,或者可具有不固定的局部参考点诸如传感器位置)。
[0026]
在一些实施方案中,此类传感器还可以捕获关于一个或多个点的属性信息,诸如颜色属性、反射率属性、速度属性、加速度属性、时间属性、模态和/或各种其他属性。在一些实施方案中,除了lidar系统、3d相机、3d扫描仪等之外,其他传感器可以捕获待包括在点云中的属性信息。例如,在一些实施方案中,陀螺仪或加速度计可以捕获待包括在点云中的运动信息作为与该点云的一个或多个点相关联的属性。例如,配备有lidar系统、3d相机或3d扫描仪的车辆可能会在由lidar系统、3d相机或3d扫描仪捕获的点云中包括车辆的方向和速率。例如,当捕获到车辆视野中的点时,这些点可以被包括在点云中,其中该点云包括捕获到的点以及与捕获到点时车辆的状态对应的相关联的运动信息。
[0027]
在一些实施方案中,属性信息可包括字符串值,诸如不同的模态。例如,属性信息可包括指示模态诸如“步行”、“跑步”、“驾驶”等的字符串值。在一些实施方案中,编码器可包括“字符串值”到整数索引,其中某些字符串与某些对应的整数值相关联。在一些实施方案中,点云可以通过包括与该字符串值相关联的整数作为该点的属性来指示针对该点的字
符串值。编码器和解码器都可以将公共字符串值存储为整数索引,使得解码器可以基于在与解码器的字符串值到整数索引匹配或类似的解码器的字符串值到整数索引中查找该点的字符串属性的整数值来确定针对点的字符串值。
[0028]
在一些实施方案中,除了压缩关于点云的点的属性的属性信息之外,编码器还对点云的几何或其他空间信息进行压缩和编码。
[0029]
在一些实施方案中,一些应用可能对于对点云进行编码和解码的所花费的时延或时间敏感。虽然一些点云编码技术可以实现提供良好压缩结果的特征,诸如在基于几何的点云压缩(g-pcc)中利用的八叉树,但是对点云数据进行编码和解码的时间可能限制压缩在时延敏感应用中的利用。例如,虽然八叉树技术可为致密点云提供极佳的压缩结果,但是稀疏点云的增益(例如,稀疏激光雷达点云)可能不是这样的效果,因为构建八叉树并计算八叉树的特征(诸如相邻占用信息)的计算复杂性可能导致计算成本超过所获得的压缩增益。此外,在一些情况下,一些编码技术(如基于八叉树的编码)可能引起高时延(例如,通过在压缩/解压缩过程可能开始之前使用大量的点)。在各种实施方案中,预测编码技术可提供各种性能益处,包括低时延具体实施,这些低时延具体实施可以实现更高性能的计算成本和时间成本。例如,下文所讨论的预测编码技术可被实现用于低时延或其他时延敏感的应用,允许低延迟流,并且用低复杂性解码来实现。
[0030]
图1示出了根据一些实施方案的系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的空间和/或属性信息的编码器,其中压缩的空间和/或属性信息被发送至解码器。
[0031]
系统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)可被包括在公共压缩点云中,该公共压缩点云还包括关于该点云中的点的压缩空间信息,或者在一些实施方案中,压缩空间信息和压缩属性信息可以作为单独的文件进行传送。
[0032]
在一些实施方案中,编码器104可与传感器102成一体。例如,编码器104可在包括在传感器设备(诸如传感器102)中的硬件或软件中实现。在其他实施方案中,编码器104可在邻近传感器102的独立计算设备上实现。
[0033]
图2a是示出根据一些实施方案的用于对点云进行预测编码的各种技术的高级流程图。如210处所指示的,在各种实施方案中,可以生成预测树,该预测树包括来自构成从传感器捕获的点云的点的多个节点。在一些实施方案中,预测树可用作预测结构,其中点云中的每个点与预测树的节点(有时被称为顶点)相关联。在一些实施方案中,可仅从树中的节点的祖先预测每个节点。
[0034]
作为生成预测树的一部分,可选择点云中的个别点用于包括在预测树中,如220处
所指示的。如230处所指示的,在一些实施方案中,可根据应用于预测树中的祖先节点的预测技术针对该个别点确定预测节点值。下文所讨论的图3和图4提供了示例性预测树生成技术。
[0035]
可实现各种预测技术来从祖先节点预测节点。可将这些预测技术作为预测模式或预测指示符(例如,映射到预测模式值“0”=预测技术a,“1”=预测技术b,依此类推)进行发送信号通知。在一些实施方案中,预测树中的节点(与点云中的一个点对应)可能不具有预测技术,因为该节点可能是预测树的第一个节点或根节点。在一些实施方案中,这种节点的预测模式可以被指示为“无”或“根”。可对关于这种节点的实际信息(例如,空间信息和/或属性信息)进行编码,而不是对用于推导出实际信息的树中的其他节点的预测信息进行编码。
[0036]
如图2b所示,预测树260可包括根据应用于一个或多个祖先节点的预测技术预测的各种节点,其由箭头指示。例如,根据下文所讨论的预测技术中的各种预测技术,可通过祖先节点266预测叶节点264。可能不预测一些节点(如根节点262),但使用实际值对其进行编码作为预测树260的一部分。
[0037]
在一些实施方案中,可实现或支持差量(delta)预测作为预测技术。差量预测可使用当前节点的父节点的位置作为当前节点的预测因子。
[0038]
在一些实施方案中,可实现或支持线性预测作为预测技术。例如,在线性预测中,点“p0”可以是父节点的位置,并且“p1”可以是祖父节点的位置。当前节点的位置可被预测为(2
×
p0

p1)。
[0039]
在一些实施方案中,可实现或支持平行四边形预测作为预测技术。例如,在平行四边形预测中,“p0”可以是父节点的位置,“p1”是祖父节点的位置,并且“p2”是曾祖父节点的位置。然后可将当前节点的位置确定为(p0 p1

p2)。
[0040]
在一些实施方案中,可实现或支持矩形预测作为预测技术。例如,在矩形预测中,“p0”可以是父节点的位置,“p1”是祖父节点的位置,并且“p2”是曾祖父节点的位置。然后可将当前节点的位置确定为(p0 p2

p1)。
[0041]
在一些实施方案中,可实现或支持极性预测作为预测技术。例如,在极性预测中,(θ0,r0,z0)可以是父节点的极性坐标,并且(θ1,r1,z1)可以是祖父节点的极性坐标。当前节点的位置被预测为
[0042]
在一些实施方案中,可实现或支持经修改的极性预测作为预测技术。例如,在经修改的极性预测中,(θ0,r0,z0)可以是父节点的极性坐标,并且(θ1,r1,z1)是祖父节点的极性坐标。当前节点的位置可被预测为(2θ
0-θ1,r0,z0)。
[0043]
在一些实施方案中,可实现或支持平均预测作为预测技术。例如,在平均预测中,“p0”可以是父节点的位置,并且“p1”是祖父节点的位置。当前节点的位置可被预测为((p0 p1)/2)。
[0044]
在一些实施方案中,可实现或支持3阶的平均预测作为预测技术。例如,在3阶的平均预测中,“p0”可以是父节点的位置,“p1”可以是祖父节点节点的位置,并且“p2”可以是曾祖父节点的位置。当前节点的位置可被预测为((p0 p1 p2)/3)。
[0045]
在一些实施方案中,可实现或支持k阶的平均预测作为预测技术。例如,在k阶的平
均预测中,当前节点的祖先节点的位置可被平均为至多k阶的祖先节点。
[0046]
在一些实施方案中,可根据速率失真优化过程确定对要应用于预测树的每个节点的预测技术的选择。在一些实施方案中,该选择可适应于每个节点或每组节点。在一些实施方案中,可在比特流中显式地发送信号通知该选择,或者可基于预测图中节点的位置以及节点祖先的经解码位置和预测模式来隐式地推导出该选择。
[0047]
如240处所指示的,可对预测树进行编码,该预测树包括应用于确定预测节点值的预测技术。例如,可将节点和许多子节点以及用于确定每个子节点的相应预测模式一起进行编码(在一些实施方案中,这些预测模式可对于每个子节点是相同的,对于每个子节点是不同的,或者针对每个子节点独立地确定(即使被确定是相同的))。在各种实施方案中,可通过按预定义顺序(例如,深度优先、宽度优先)遍历树并且针对每个节点对其子节点的数量进行编码来对预测树进行编码。在一些实施方案中,可通过以下方式来对节点的位置进行编码:首先对所选预测模式进行编码,然后在预测之后对所获得的残差进行编码。在一些实施方案中,可将节点的残差值与针对节点的预测模式一起进行编码作为使用所指示的预测模式预测的预测节点值的校正值。在一些实施方案中,可基于点中与给定节点对应的一个点的预测空间位置和点云中的点的空间位置之间的空间差来确定残差。另外,在一些实施方案中,可基于点中与给定节点对应的一个点的预测属性值和点云中的点的属性值之间的属性值差来确定残差。在各种实施方案中,子节点的数量、预测模式和预测残差可被熵编码(例如,算术编码)以便进一步利用统计相关性。在一些实施方案中,可通过压缩每个残差的符号、最高有效位的位置(等于floor(log2(abs(残差))))和剩余位的二进制表示来对残差进行编码。在一些实施方案中,可通过使用不同熵/算术上下文基于第一经编码组分的经编码值来利用x、y、z坐标之间的相关性。
[0048]
如250所指示的,可根据上文关于图1和下文关于图7a、图8和图9所讨论的各种示例发送或存储针对点云的经编码预测树。
[0049]
图3是示出根据一些实施方案的用于根据空间填充曲线来生成预测树的各种技术的高级流程图。如310处所指示的,在一些实施方案中,空间填充曲线(例如,morton顺序)可用于确定点云中的点的值(例如,morton码)。如320处所指示的,在一些实施方案中,可根据空间填充曲线值选择第一个或下一个点,以将其作为节点添加到预测树中。
[0050]
如330处所指示的,在一些实施方案中,可根据从先前所选择的点确定的可能预测因子的k维(k-d)树来确定所选择点的k个最近邻。如340处所指示的,在一些实施方案中,可从k个最近邻中选择节点作为用于要添加的节点的预测因子。例如,在一些实施方案中,可根据预测残差的量值、节点所具有的子节点的数量和/或所选预测模式的频率来选择该节点。如350处所指示的,在一些实施方案中,可将该子节点作为所选择节点的子节点添加到预测树。如360所指示的,在一些实施方案中,可将用于所添加节点的新的可能预测因子(例如,根据上文所讨论的预测技术生成的预测值)添加到k-d树。如380处所指示的,如果仍有另一点要添加到预测树,则可重复技术的特征。如380处所指示的,当所有点都被添加时,可提供预测树用于编码。
[0051]
在一些实施方案中,在执行图3所示的技术之前,可将点解压缩成各种细节级别(lod)。例如,可从最粗lod开始到最细lod的顺序对lod进行编码。在这种实施方案中,k-d树中的可能预测因子和预测位置。在一些实施方案中,不同的量化参数可用于不同的lod(例
如,更小的量化步骤用于最粗lod)以便获得更好的rd性能。在一些实施方案中,可利用lod或其他分级预测结构来实现时间可伸缩性、空间可伸缩性、质量可伸缩性和渐进传输的功能。以此方式,在一些实施方案中,可首先对粗lod进行流式传输和解码,然后可基于网络条件、终端能力和点云距观看者的距离对粒度逐渐增大的lod进行自适应地流式传输和解码。
[0052]
在一些实施方案中,可对关于多个时刻的点云(诸如关于动态点云)的节点信息进行编码。在一些此类实施方案中,节点信息中包括的用于子节点中的个别子节点的预测技术中的至少一些预测技术可包括:使用时间帧中的其他时间帧中包括的子节点中的个别子节点的祖先节点来预测该时间帧中的不同时间帧中的节点中的个别节点的节点值的预测技术。例如,当前时刻的预测技术可使用当前时刻或先前时刻的子节点作为预测技术的输入。
[0053]
对于较低时延方法(当与图3的技术相比时),在一些实施方案中,编码器可按与接收输入点云的顺序相同的顺序处理该输入点云。在一些实施方案中,可实现有限缓冲的缓冲区n,其根据允许缓冲点的数量为b(例如,b=1024个点)来测量。b可以是可根据应用时延要求的严格程度来调整的解码器参数。在一些实施方案中,当寻找用于每个顶点的最佳预测因子时,编码器将仅考虑缓冲区中的点。图4是示出根据一些实施方案的用于根据可能的预测因子的缓冲区来生成预测树的各种技术的高级流程图。
[0054]
如410处所指示的,在一些实施方案中,可将来自点云的点添加到大小为n的点的缓冲区。如420处所指示的,在一些实施方案中,可从该缓冲区中选择要作为节点添加到预测树的点。如430处所指示的,缓冲区中的剩余点可被评估为用于所选择点的可能预测因子。例如,如上文关于图3所讨论的,在一些实施方案中,可根据预测残差的量值、点的对应节点所具有的子节点的数量和/或所选预测模式的频率来评估缓冲区中的剩余点。
[0055]
如440处所指示的,在一些实施方案中,可将该节点作为所评估的可能预测因子中的一个预测因子的子节点添加到预测树。如果仍有另一点要添加到预测树,则如由450的正出口所指示的,可将元素410到440添加到预测树。在一些实施方案中,当所有点都已经被添加到预测树时,可提供该预测树用于编码。
[0056]
在一些实施方案中,预测树可用于对空间信息(诸如几何形状)或各种其他属性(例如,颜色信息)进行压缩或以其他方式进行编码。在一些情况下,可使用不同节点的相同预测因子,并且在针对属性的比特流中对这些相同预测因子进行可能地显式地编码。可伸缩性和低时延性质可直接从预测树生成策略继承。
[0057]
在另选实施方案中,预测编码技术可仅应用于空间信息,而另选技术可用于对属性进行编码(例如,根据g-pcc属性编码方案的针对属性的升降、区域自适应分级变换(raht)或预测方案)。为了实现低时延应用,在一些实施方案中,将禁用在属性编码之前原本将应用的点的morton重新排序。
[0058]
在一些实施方案中,可修改分级预测和升降方案(例如,在g-pcc中定义),以利用预测方案来指导抽取过程和最近邻的检测过程。例如,可通过使用边缘塌缩操纵子或任何其他拓扑抽取操纵子来应用抽取过程。图5是示出根据一些实施方案的示例性拓扑抽取操作的逻辑图。拓扑抽取操作500可将vu和v
t
塌缩或组合成vs。
[0059]
在一些实施方案中,选择要应用于生成lod的边缘塌缩操作或其他拓扑抽取操作的标准可通过距离标准(即,合并点之间的距离)和/或被编码器包括在比特流中的显式信
息来指导。在一些实施方案中,最近邻检索可限于树结构中的邻点,或者可使用预测树结构来加速该最近邻检索。
[0060]
图6是示出根据一些实施方案的用于对针对点云的预测树进行解码的各种技术的高级流程图。如610处所指示的,在一些实施方案中,可接收针对点云中的点的经编码预测树。如620处所指示的,可对针对点云中的点的预测树进行解码。例如,可执行用于解开熵或其他编码技术的技术。
[0061]
在至少一些实施方案中,经编码预测树可包括足以根据预测树的解码内容生成预测树的信息(例如,不执行与上文关于图3和图4所讨论的相同的树生成技术)。例如,如630处所指示的,所选择节点(例如,根节点)可被(解码为)作为点云中的第一个点。然后,如640处所指示的,在一些实施方案中,可根据用于子节点的所包括的预测技术来对所选择节点中的任何子节点进行解码。
[0062]
如650处所指示的,在一些实施方案中,可进行关于子节点中的任一个子节点是否具有其自身的子节点的确定。例如,可针对每个所包括的点考虑所包括的子节点数量。在一些实施方案中,如果存在任何子节点,则可再次执行640处的技术。如660处所指示的,一旦完成,就可输出来自预测树的经解码点云(例如,以用于进一步处理、显示和/或存储)。
[0063]
图7a示出了根据一些实施方案的编码器的部件。
[0064]
编码器702可以是与图1a中所示的编码器104类似的编码器。编码器702包括空间编码器704、八叉树树生成器710、预测/校正评估器706、输入数据接口714和输出数据接口708。编码器702还包括上下文存储器716和配置存储器718。
[0065]
在一些实施方案中,空间编码器(诸如空间编码器704)可压缩与点云中的点相关联的空间信息,使得可以压缩格式来存储或传输空间信息。在一些实施方案中,空间编码器(诸如空间编码器704)可利用八叉树来压缩关于点云中的点的空间信息,如本文更详细地讨论的。
[0066]
在一些实施方案中,压缩空间信息可以与压缩属性信息一起存储或传输,或者可以分开存储或传输。在任一种情况下,接收针对点云的点的压缩属性信息的解码器也可以接收针对该点云的这些点的压缩空间信息,或者可以获得针对该点云的这些点的空间信息。
[0067]
预测树生成器(诸如预测树生成器710)可实现上文所讨论的各种技术来生成要编码的预测树。
[0068]
预测/校正评估器(诸如编码器702的预测/校正评估器706)可基于逆距离插值方法使用正在预测属性值所针对的点的k个最近相邻点的属性值来确定针对点云中的点的预测属性值。预测/校正评估器还可将正被评估的点的预测属性值与非压缩点云中的该点的原始属性值进行比较以确定属性校正值。在一些实施方案中,预测/校正评估器(诸如编码器702的预测/校正评估器706)可基于对邻域中的点的属性值的可变性的测量来自适应地调整用于预测点的给定邻域中的点的属性值的预测策略。
[0069]
传出数据编码器(诸如编码器702的传出数据编码器708)可对包括在针对点云的压缩属性信息文件中的属性校正值和分配属性值进行编码。在一些实施方案中,传出数据编码器(诸如传出数据编码器708)可基于包括在值(诸如分配属性值或属性校正值)中的符号的数量来选择用于对该值进行编码的编码上下文。在一些实施方案中,可以使用包括
golomb指数编码的编码上下文来编码具有更多符号的值,而可以使用算术编码来编码具有更少符号的值。在一些实施方案中,编码上下文可包括多于一个的编码技术。例如,可以使用算术编码来编码值的一部分,而可以使用golomb指数编码来编码值的另一部分。在一些实施方案中,编码器(诸如编码器702)可包括上下文存储器诸如上下文存储器716,该上下文存储器存储由传出数据编码器诸如传出数据编码器708所使用的编码上下文,以对属性校正值和分配属性值进行编码。
[0070]
在一些实施方案中,编码器诸如编码器702还可包括传入数据接口诸如传入数据接口714。在一些实施方案中,编码器可以从一个或多个传感器处接收传入数据,所述一个或多个传感器捕获点云的点或捕获与点云的点相关联的属性信息。例如,在一些实施方案中,编码器可从lidar系统、3d相机、3d扫描仪等处接收数据,并且还可从其他传感器诸如陀螺仪、加速度计等处接收数据。另外,编码器可从系统时钟等处接收其他数据,诸如当前时间。在一些实施方案中,此类不同类型的数据可由编码器经由传入数据接口(诸如编码器702的传入数据接口714)接收。
[0071]
在一些实施方案中,编码器(诸如编码器702)还可包括配置接口(诸如配置接口712),其中编码器用来压缩点云的一个或多个参数可经由配置接口进行调整。在一些实施方案中,配置接口(诸如配置接口712)可为程序化接口,诸如api。编码器(诸如编码器702)所使用的配置可存储在配置存储器(诸如配置存储器718)中。
[0072]
在一些实施方案中,编码器(诸如编码器702)可包括比图7a所示更多或更少的部件。
[0073]
在一些实施方案中,传出数据编码器(诸如传出数据编码器708)可根据语法诸如以下语法对树结构、每节点预测模式和预测残差进行编码:
[0074][0075][0076][0077]
其中,ptn_child_cnt[nodeidx]是在几何预测树中存在的当前预测树节点的直接
子节点的数量。
[0078]
其中,ptn_pred_mode[nodeidx]是用于预测与当前节点相关联的位置的模式。当ptn_pred_mode[nodeidx]等于0时,当前节点的预测点位置为零。当ptn_pred_mode[nodeidx]等于1时,当前节点的预测点位置是当前节点的父节点的重建位置。当ptn_pred_mode[nodeidx]等于2时,当前节点的预测点位置是从当前节点的父节点和祖父节点的重建位置线性预测的。当ptn_pred_mode[nodeidx]等于3时,当前节点的预测点位置是使用平行四边形预测根据当前节点的父节点、祖父节点和曾祖父节点的重建位置来确定的。
[0079]
其中,ptn_residual_eq0_flag[k]、ptn_residual_sign_flag[k]、ptn_residual_abs_log2[k]和ptn_residual_abs_remaining[k]一起指定nodeidx-th节点的第k个几何位置分量的预测残差。ptn_residual_eq0_flag[k]指定残差分量是否等于零。ptn_residual_sign_flag[k]等于1指示残差分量的符号为正。ptn_residual_sign_flag[k]等于0指示残差分量的符号为负。不存在的ptn_residual_sign_flag[k]、ptn_residual_abs_log2[k]或ptn_residual_abs_remaining[k]中的任一者被推断为0。
[0080]
与当前树节点相关联的第一预测残差可如下进行推导:for(k=0;k《3;k )
[0081]
ptnresidual[nodeidx][k]=(2
×
ptn_residual_sign_flag

1)
[0082]
×
(!ptn_residual_eq0_flag[k]
[0083]
((1《《ptn_residual_abs_log2[k])》》1)
[0084]
ptn_residual_abs_remaining[k])
[0085]
图7b示出了根据一些实施方案的解码器的部件。解码器720可以是与图1a中示出的解码器116类似的解码器。解码器720包括经编码数据接口726、空间解码器722、预测评估器724、上下文存储器730、配置存储器732和经解码数据接口728。
[0086]
解码器(诸如解码器720)可接收针对点云的点的经编码压缩点云和/或经编码压缩属性信息文件。例如,解码器(诸如解码器720)可接收压缩属性信息文件和/或压缩空间信息文件。解码器可经由经编码数据接口(诸如经编码数据接口726)来接收压缩属性信息文件和/或压缩空间信息文件。解码器可以使用编码压缩点云来确定针对该点云的点的空间信息。例如,包括在压缩点云中的点云中的点的空间信息可由空间解码器(诸如空间解码器722)来生成。在一些实施方案中,可经由经编码数据接口(诸如经编码数据接口726)从存储设备或其他中间源接收压缩点云,其中该压缩点云先前由编码器(诸如编码器104)进行编码。在一些实施方案中,经编码数据接口(诸如经编码数据接口726)可对空间信息进行解码。例如,空间信息可能已经使用如本文所述的各种编码技术来进行了编码,诸如用于将几何或其他空间信息和/或属性信息编码为预测树的各种技术。
[0087]
解码器的预测评估器(诸如预测评估器724)可基于包括在压缩属性信息文件中的分配起始点来选择最小生成树的起始点。在一些实施方案中,压缩属性信息文件可包括针对起始点的一个或多个对应属性的一个或多个分配值。在一些实施方案中,预测评估器(诸如预测评估器724)可基于包括在压缩属性信息文件中的针对起始点的分配值将值分配给正被解压缩的点云的解压缩模型中的起始点的一个或多个属性。预测评估器(诸如预测评估器724)还可利用起始点的属性的分配值来确定相邻点的属性值。例如,预测评估器可以选择距起始点最近的相邻点作为待评估的下一个点,其中基于在最小生成树中从起始点到相邻点的最短距离来选择下一个最近相邻点。需注意,因为最小生成树是基于与在编码器
上生成最小生成树所使用的相同或类似的空间信息在解码器上生成的,所以解码器可以通过识别最小生成树中的下一个最近相邻点来确定与评估在编码器处确定的用于正被解压缩点云的点相同的评估次序。
[0088]
解码器(诸如解码器720)可经由经解码数据接口(诸如经解码数据接口728)将基于接收到的压缩点云和/或接收到的压缩属性信息文件生成的解压缩点云提供给接收设备或应用程序。解压缩点云可包括点云的点和针对该点云的点的属性的属性值。在一些实施方案中,解码器可以解码针对点云的属性的一些属性值,而无需解码针对点云的其他属性的其他属性值。例如,点云可包括针对点云的点的颜色属性,并且还可包括针对该点云的点的其他属性,诸如速度。在此类情况下,解码器可以对点云的点的一个或多个属性(诸如速度属性)进行解码,而无需对点云的点的其他属性(诸如颜色属性)进行解码。
[0089]
在一些实施方案中,解压缩点云和/或解压缩属性信息文件可以用于生成视觉显示器,诸如用于头戴式显示器。另外,在一些实施方案中,可将解压缩点云和/或解压缩属性信息文件提供给决策引擎,该决策引擎使用解压缩点云和/或解压缩属性信息文件来做出一个或多个控制决策。在一些实施方案中,解压缩点云和/或解压缩属性信息文件可用于各种其他应用或用于各种其他目的。
[0090]
用于点云压缩和解压缩的示例应用
[0091]
图8示出了根据一些实施方案的在3d应用中使用的压缩点云。
[0092]
在一些实施方案中,传感器(诸如传感器102)、编码器(诸如编码器104或编码器202)和解码器(诸如解码器116或解码器220)可用于在3d应用中传送点云。例如,在1002处,传感器(诸如传感器102)可捕获3d图像,并且在1004处,传感器或与传感器相关联的处理器可以基于感测到的数据执行3d重构以生成点云。
[0093]
在806处,编码器(诸如编码器104或202)可对点云进行压缩,并且在808处,编码器或后处理器可打包压缩点云并经由网络810传输压缩点云。在812处,可在包括解码器(诸如解码器116或解码器220)的目标位置处接收数据包。在814处,解码器可对点云进行解压缩,并且在816处,可渲染解压缩点云。在一些实施方案中,3d应用可实时地传输点云数据,使得816处的显示表示正在802处观察到的图像。例如,在816处,峡谷中的相机可允许远程用户体验穿行虚拟峡谷。
[0094]
图9示出了根据一些实施方案的正在虚拟现实(vr)或增强现实(ar)应用中使用的压缩点云。
[0095]
在一些实施方案中,点云可在软件中生成(例如,与由传感器捕获相反)。例如,在902处,产生虚拟现实或增强现实内容。虚拟现实或增强现实内容可包括点云数据和非点云数据。例如,作为一个示例,非点云字符可横穿由点云表示的地形。在904处,可压缩点云数据,并且在906处,可将压缩点云数据和非点云数据打包并经由网络908传输这些数据。例如,在902处产生的虚拟现实或增强现实内容可在远程服务器处产生并经由网络908传送至vr或ar内容消费者。在910处,数据包可在vr或ar消费者的设备处被接收并同步。在912处,在vr或ar消费者的设备处运作的解码器可对压缩点云进行解压缩,并且点云和非点云数据可例如在vr或ar消费者的设备的头戴式显示器中被实时渲染。在一些实施方案中,可响应于vr或ar消费者操纵头戴式显示器以看向不同的方向来生成、压缩、解压缩和渲染点云数据。
[0096]
在一些实施方案中,如本文所述的点云压缩可用于各种其他应用诸如地理信息系统、体育赛事直播、博物馆展示、自主导航等中。
[0097]
示例性计算机系统
[0098]
图10示出了根据一些实施方案的示例性计算机系统1000,该示例性计算机系统可实现编码器或解码器或本文所述的部件中的任何其他部件(例如,上文参考图1至图9描述的部件中的任何部件)。计算机系统1000可被配置为执行上文所述的任意或全部实施方案。在不同的实施方案中,计算机系统1000可为各种类型的设备中的任一者,包括但不限于:个人计算机系统、台式计算机、膝上型电脑、笔记本电脑、平板电脑、一体电脑、平板电脑或上网本电脑、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、消费者设备、视频游戏控制器、手持式视频游戏设备、应用服务器、存储设备、电视、视频记录设备、外围设备(诸如交换机、调制解调器、路由器)或一般性的任何类型的计算或电子设备。
[0099]
如本文所述的点云编码器或解码器的各种实施方案可在一个或多个计算机系统1000中执行,该计算机系统可与各种其他设备交互。需注意,根据各种实施方案,上文相对于图1至图11所述的任何部件、动作或功能性可实现于被配置为图10的计算机系统1000的一个或多个计算机上。在所示出的实施方案中,计算机系统1000包括经由输入/输出(i/o)接口1030联接到系统存储器1020的一个或多个处理器1010。计算机系统1000还包括联接到i/o接口1030的网络接口1040,以及一个或多个输入/输出设备1050,诸如光标控制设备1060、键盘1070和一个或多个显示器1080。在一些情况下,可以想到实施方案可使用计算机系统1000的单个实例来实现,而在其他实施方案中,多个此类系统或者构成计算机系统1000的多个节点可被配置为托管实施方案的不同部分或实例。例如,在一个实施方案中,一些元素可经由计算机系统1000的与实现其他元素的那些节点不同的一个或多个节点来实现。
[0100]
在各种实施方案中,计算机系统1000可以是包括一个处理器1010的单处理器系统,或者是包括若干个处理器1010(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器1010可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1010可以是实现多种指令集架构(isa)(诸如x86、powerpc、sparc或mips isa或任何其他合适的isa)中的任一种的通用或嵌入式处理器。在多处理器系统中,处理器1010中的每个处理器通常可以但并非必须实现相同的isa。
[0101]
系统存储器1020可被配置为存储点云压缩或点云解压缩程序指令1022和/或能够由处理器1010访问的传感器数据。在各种实施方案中,系统存储器1020可使用任何合适的存储器技术来实现,诸如静态随机存取存储器(sram)、同步动态ram(sdram)、非易失性/闪存型存储器或任何其他类型的存储器。在所示出的实施方案中,程序指令1022可被配置为实现结合上文所述功能性中的任一种的图像传感器控制应用程序。在一些实施方案中,程序指令和/或数据可被接收、发送或存储在与系统存储器1020或计算机系统1000分开的不同类型的计算机可访问介质上或类似介质上。尽管将计算机系统1000描述为实施前面各图的功能框的功能性,但可通过这种计算机系统实施本文描述的任何功能性。
[0102]
在一个实施方案中,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中。
[0103]
网络接口1040可被配置为允许在计算机系统1000和附接到网络1085的其他设备(例如,承载器或代理设备)之间或者在计算机系统1000的节点之间交换数据。在各种实施方案中,网络1085可包括一种或多种网络,包括但不限于局域网(lan)(例如,以太网或企业网)、广域网(wan)(例如,互联网)、无线数据网、某种其他电子数据网络或它们的某种组合。在各种实施方案中,网络接口1040可支持经由有线或无线通用数据网络(诸如任何合适类型的以太网网络)的通信,例如;经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)的通信;经由存储区域网络(诸如光纤通道san)、或经由任何其他合适类型的网络和/或协议的通信。
[0104]
在一些实施方案中,输入/输出设备1050可包括一个或多个显示终端、键盘、小键盘、触控板、扫描设备、语音或光学识别设备或适于由一个或多个计算机系统1000输入或访问数据的任何其他设备。多个输入/输出设备1050可存在于计算机系统1000中,或者可分布在计算机系统1000的各个节点上。在一些实施方案中,类似的输入/输出设备可与计算机系统1000分开,并且可通过有线或无线连接(诸如通过网络接口1040)与计算机系统1000的一个或多个节点进行交互。
[0105]
如图10所示,存储器1020可包括程序指令1022,这些程序指令可能够由处理器执行,以实现上文所述的任何元素或动作。在一个实施方案中,程序指令可执行上文所述的方法。在其他实施方案中,可包括不同的元件和数据。需注意,数据可包括上文所述的任何数据或信息。
[0106]
本领域的技术人员应当理解,计算机系统1000仅仅是例示性的,而并非旨在限制实施方案的范围。具体地,计算机系统和设备可包括可执行所指示的功能的硬件或软件的任何组合,包括计算机、网络设备、互联网设备、个人数字助理(pda)、无线电话、寻呼机等。计算机系统1000还可连接到未示出的其他设备,或者反之可作为独立的系统进行操作。此外,由所示出的部件所提供的功能在一些实施方案中可被组合在更少的部件中或者被分布在附加部件中。类似地,在一些实施方案中,所示出的部件中的一些部件的功能可不被提供,和/或其他附加功能可能是可用的。
[0107]
本领域的技术人员还将认识到,虽然各种项目被示出为在被使用期间被存储在存储器中或存储装置上,但是为了存储器管理和数据完整性的目的,这些项目或其部分可在存储器和其他存储设备之间进行传输。另选地,在其他实施方案中,这些软件部件中的一些或全部软件部件可以在另一设备上的存储器中执行,并且经由计算机间通信来与例示的计算机系统进行通信。系统部件或数据结构中的一些或全部也可(例如作为指令或结构化数据)被存储在计算机可访问介质或便携式制品上以由合适的驱动器读取,其多种示例在上文中被描述。在一些实施方案中,存储在与计算机系统1000分开的计算机可访问介质上的
指令可通过传输介质或信号(诸如通过通信介质诸如网络和/或无线链路而传送的电信号、电磁信号或数字信号)传输到计算机系统1000。各种实施方案还可包括在计算机可访问介质上接收、发送或存储根据以上描述所实现的指令和/或数据。一般来讲,计算机可访问介质可包括非暂态计算机可读存储介质或存储器介质,诸如磁介质或光学介质,例如盘或dvd/cd-rom、易失性或非易失性介质,诸如ram(例如sdram、ddr、rdram、sram等)、rom等。在一些实施方案中,计算机可访问介质可包括传输介质或信号,诸如经由通信介质诸如网络和/或无线链路而传送的电气信号、电磁信号、或数字信号。
[0108]
在不同的实施方案中,本文所述的方法可以在软件、硬件或它们的组合中实现。此外,可改变方法的框的次序,并且可对各种要素进行添加、重新排序、组合、省略、修改等。对于受益于本公开的本领域的技术人员,显然可做出各种修改和改变。本文所述的各种实施方案旨在为例示的而非限制性的。许多变型、修改、添加和改进是可能的。因此,可为在本文中被描述为单个示例的部件提供多个示例。各种部件、操作和数据存储库之间的界限在一定程度上是任意性的,并且在具体的示例性配置的上下文中示出了特定操作。预期了功能的其他分配,它们可落在所附权利要求的范围内。最后,被呈现为示例性配置中的分立部件的结构和功能可被实现为组合的结构或部件。这些和其他变型、修改、添加和改进可落入如以下权利要求书中所限定的实施方案的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献