点云的树内几何量化的制作方法

文档序号:31572828发布日期:2022-09-20 22:52阅读:44来源:国知局
点云的树内几何量化的制作方法
点云的树内几何量化
1.相关申请的交叉引用
2.本技术要求于2020年1月8日提交的美国临时申请序列号62/958,688和2020年1月8日提交的美国临时申请序列号62/958,689的优先权,这些美国临时申请此全文以引用方式并入本文。
技术领域
3.本公开大体上涉及存储和处理关于包括多个点的点云的信息。


背景技术:

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


技术实现要素:

5.在一方面,一种方法包括由计算机系统接收表示三维空间中的点云的多个点;针对每个点,由计算机系统将点在三维空间的每个维度中的位置表示为位序列,其中根据树数据结构对点的位置进行编码;由该计算机系统将该位序列中的至少一者划分为位的第一部分和位的第二部分;由该计算机系统根据量化步长大小对该位的第二部分中的每一者进行量化,其中该量化步长大小根据以量化参数值作为输入并且以该量化步长大小作为输出的指数函数来确定;由该计算机系统生成表示该三维空间中的该点云的数据结构,该数据结构包括量化的位的第二部分;以及由计算机系统进行以下项中的至少一者:传输数据结构或存储数据结构。
6.该方面的具体实施可包括以下特征中的一者或多者。
7.在一些具体实施中,树数据结构可以是八叉树。
8.在一些具体实施中,对该位序列中的至少一者进行划分可以包括对该位序列中的至少一者进行划分,使得该位的第一部分中的每一者包括来自该位序列中的对应位序列的前d个位,其中d是该树数据结构的缩放深度;以及对该位序列中的至少一者进行划分,使得该位的第二部分中的每一者包括来自该位序列中的对应位序列的位的其余部分。
9.在一些具体实施中,对该位的第二部分中的每一者进行量化可以包括将由该位的第二部分中的每一者指示的数值除以该量化步长大小。
10.在一些具体实施中,该方法还可以包括指示该数据结构中的该量化步长大小或该量化参数值中的至少一者。
11.在一些具体实施中,可以选择该指数函数,使得对于正整数量化参数值,由该指数函数输出的该量化步长大小中的大部分是整数。
12.在一些具体实施中,可以选择指数函数,使得对于正整数量化参数值,由该指数函数输出的该量化步长大小中的n个为非整数,其中n=(p
×
log2p)-p+1,并且其中p是每加倍该量化步长大小的量化参数的数目。
13.在一些具体实施中,该指数函数可以是qs=0.125*(mod[qp,8])*2^(floor[qp/8]),其中qs是该量化步长大小,并且qp是该量化参数值。
[0014]
在一些具体实施中,该方法可以进一步包括将该量化的位的第二部分中的至少一些近似为整数值。
[0015]
在另一方面,一种方法包括由计算机系统接收表示三维空间中的点云的多个点;以及由计算机系统生成表示三维空间中的点云的数据结构。该数据结构包括标头部分和该标头部分之后的数据部分。对于每个点,该数据部分指示根据树数据结构进行编码并且根据对应量化参数进行量化的点的位置。该树数据结构具有多个树级别。该数据部分包括偏移值,该偏移值在这些树级别中的一个或多个树级别处指示用于量化一个或多个树级处的点的位置的量化参数与基础量化参数之间的差。该数据部分在该一个或多个树级别中的每一个树级别处包括指示在该树级别处存在一个或多个偏移值的数据标记。该方法还包括由该计算机系统进行以下项中的至少一者:传输数据结构或存储数据结构。
[0016]
该方面的具体实施可包括以下特征中的一者或多者。
[0017]
在一些具体实施中,对于一个或多个树级别中的每一个树级别,可以在该树级别开始时包括该数据标记。
[0018]
在一些具体实施中,树数据结构可以是八叉树。
[0019]
在一些具体实施中,该标头部分不包括指示该偏移值的存在的数据。
[0020]
在另一方面,一种方法包括由计算机系统接收表示三维空间中的点云的数据结构。点云具有多个点。该数据结构包括标头部分和该标头部分之后的数据部分。对于每个点,该数据部分指示根据树数据结构进行编码并且根据对应量化参数进行量化的点的位置。该树数据结构具有多个树级别。该数据部分包括偏移值,该偏移值在这些树级别中的一个或多个树级别处指示用于量化一个或多个树级处的点的位置的量化参数与基础量化参数之间的差。该数据部分在该一个或多个树级别中的每一个树级别处包括指示在该树级别处存在一个或多个偏移值的数据标记。该方法还包括由计算机系统基于数据结构确定点中的每个点的位置;以及由计算机系统输出点中的每个点的确定位置。
[0021]
该方面的具体实施可包括以下特征中的一者或多者。
[0022]
在一些具体实施中,基于该数据结构确定该点中的每个点的位置可以包括基于在特定树级别处的数据标记确定该树级别处存在该偏移值中的一者或多者;基于该树级别处的该偏移值确定用于对该树级别的该点的该位置进行量化的该量化参数;以及基于确定的量化参数确定该树级别处的该点中的每个点的该位置。
[0023]
在一些具体实施中,树数据结构可以是八叉树。
[0024]
在一些具体实施中,该方法还可以包括基于点中的每个点的确定位置渲染三维内
容。该三维内容可以是虚拟现实内容或增强现实内容中的至少一者。
[0025]
在另一方面,一种方法包括由计算机系统接收表示三维空间中的点云中的多个点的数据结构;由该计算机系统对该数据结构进行解码以确定一个或多个位序列,其中该位序列中的每一者表示点中的一个点在该三维空间的维度中的一个维度中的位置,并且其中根据树数据结构对该数据结构进行解码;由该计算机系统将该位序列中的至少一者划分为位的第一部分和位的第二部分;由该计算机系统根据量化步长大小对该位的第二部分中的每一者进行缩放,其中该量化步长大小根据以量化参数值作为输入并且以该量化步长大小作为输出的指数函数来确定;由该计算机系统通过针对该点中的至少一个点中的每一者组合该位的第一部分和对应于该点的缩放的位的第二部分来生成该点中的该至少一个点的重建点位置;以及由该计算机系统输出该点中的该至少一个点的该重建点位置。
[0026]
该方面的具体实施可包括以下特征中的一者或多者。
[0027]
在一些具体实施中,树数据结构可以是八叉树。
[0028]
在一些具体实施中,对该位序列中的至少一者进行划分可以包括对该位序列中的至少一者进行划分,使得该位的第一部分中的每一者包括来自该位序列中的对应位序列的第一d位,其中d是该树数据结构的缩放深度,以及对该位序列中的至少一者进行划分,使得该位的第二部分中的每一者包括来自该位序列中的对应位序列的位的其余部分。
[0029]
在一些具体实施中,对该位的第二部分中的每一者进行缩放可包括将由该位的第二部分中的每一者指示的数值与该量化步长大小相乘。
[0030]
在一些具体实施中,可在该数据结构中指示该量化步长大小或该量化参数值中的至少一者。
[0031]
在一些具体实施中,可以选择该指数函数,使得对于正整数量化参数值,由该指数函数输出的该量化步长大小中的大部分是整数。
[0032]
在一些具体实施中,可以选择该指数函数,使得对于正整数量化参数值,由该指数函数输出的该量化步长大小中的n个为非整数,其中n=(p
×
log2p)-p+1,并且其中p是每加倍该量化步长大小的量化参数的数目。
[0033]
在一些具体实施中,该指数函数可以是其中qs是该量化步长大小,并且qp是该量化参数值。
[0034]
在一些具体实施中,该方法还可包括基于该点中的该至少一个点的该重建点位置渲染三维内容,其中该三维内容是虚拟现实内容或增强现实内容中的至少一者。
[0035]
其他具体实施涉及其上存储有指令的系统、设备和非暂态计算机可读介质,这些指令当由一个或多个处理器执行时使得该一个或多个处理器执行本文所述的操作。
[0036]
在下面的附图和具体实施方式中阐述了一个或多个实施方案的细节。其他特征和优点将在具体实施方式和附图以及权利要求中显而易见。
附图说明
[0037]
图1示出了系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的属性和/或空间信息的编码器,其中压缩的属性和/或空间信息被发送到解码器。
[0038]
图2示出了空间和对应树数据结构的示例性递归划分。
[0039]
图3a至图3e示出了根据树数据结构的点的示例性编码。
[0040]
图4示出了在编码过程和解码过程期间点云中的示例性畸变。
[0041]
图5a示出了生成表示点云的数据结构的示例性过程。
[0042]
图5b示出了基于表示点云的数据结构渲染三维内容的示例性过程。
[0043]
图6a示出了生成表示点云的数据结构的示例性过程。
[0044]
图6b示出了基于表示点云的数据结构渲染三维内容的示例性过程。
[0045]
图7示出了正在3d应用中使用的压缩点云信息。
[0046]
图8示出了根据一些实施方案的在虚拟现实应用中正在使用的压缩点云信息。
[0047]
图9示出了可实现编码器或解码器的示例性计算机系统。
[0048]
本说明书包括参考“一个实施方案”或“实施方案”。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
[0049]“包括”,该术语是开放式的。如在所附权利要求书中所使用的,该术语不排除附加结构或步骤。考虑以下引用的权利要求:“一种包括一个或多个处理器单元...的装置”此类权利要求不排除该装置包括附加部件(例如,网络接口单元、图形电路等)。
[0050]“被配置为”,各种单元、电路或其他部件可被\描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件据称可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件——例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引35 u.s.c.
§
112(f)。此外,“被配置为”可包括由软件和/或固件(例如,fpga或执行软件的通用处理器)操纵的通用结构(例如,通用电路)以能够执行待解决的一项或多项任务的方式操作。“被配置为”还可包括调整制造过程(例如,半导体制作设施),以制造适用于实现或执行一项或多项任务的设备(例如,集成电路)。
[0051]“第一”“第二”等。如本文所用,这些术语充当它们所在之前的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,缓冲电路在本文中可被描述为执行“第一”值和“第二”值的写入操作。术语“第一”和“第二”未必暗指第一值必须在第二值之前被写入。
[0052]“基于”。如本文所用,该术语用于描述影响确定的一个或多个因素。该术语不排除影响确定的附加因素。即,确定可仅基于这些因素或至少部分地基于这些因素。考虑短语“基于b来确定a”。在这种情况下,b为影响a的确定的因素,此类短语不排除a的确定也可基于c。在其他实例中,可仅基于b来确定a。
具体实施方式
[0053]
随着数据采集和显示技术变得更加先进,增强了(诸如经由lidar系统)捕获包括2d或3d空间中成千上万个点的点云的能力。而且,先进显示技术(诸如虚拟现实或增强现实系统)的发展增加了点云的潜在用途。然而,点云文件通常非常大,并且存储和传输这些点云文件可能成本高且耗时。例如,点云通过私有网络或公共网络(诸如互联网)的通信可能需要相当大量的时间和/或网络资源,使得点云数据的一些使用(诸如实时使用)可能受到
限制。另外,点云文件的存储要求可能消耗存储点云文件的设备的显著量的存储容量,这也可能限制潜在应用使用点云数据。
[0054]
在一些实施方案中,编码器可用于生成压缩点云以降低与存储和传输大的点云文件相关联的成本和时间。在一些实施方案中,一种系统可包括编码器,该编码器压缩点云文件的属性信息或空间信息,使得点云文件可比非压缩点云更快地被存储和传输,并且以点云文件可比非压缩点云占用更少的存储空间的方式被存储和传输。在一些实施方案中,对点云中点的属性的压缩可使点云能够实时地或几乎实时地通过网络传送。例如,一种系统可包括传感器,该传感器捕获关于传感器所在的环境中的点的属性信息,其中所捕获的点和对应属性构成了点云。该系统还可包括压缩所捕获的点云的属性信息的编码器。点云的压缩属性信息可通过网络实时或几乎实时地发送到对点云的压缩属性信息进行解压缩的解码器。该解压缩点云可被进一步处理,例如以基于传感器位置处的周围环境做出控制决策。然后可将控制决策传送回传感器位置处或其附近的设备,其中接收控制决策的设备实时地或几乎实时地实现控制决策。在一些实施方案中,解码器可以与增强现实系统相关联,并且解压缩属性信息可以由增强现实系统显示或以其他方式使用。在一些实施方案中,可将关于点云的压缩属性信息与关于点云的点的压缩空间信息一起发送。在其他实施方案中,空间信息和属性信息可以被分别编码和/或分别传输到解码器。
[0055]
在一些实施方案中,系统可包括解码器,该解码器经由网络从远程服务器或存储一个或多个点云文件的其他存储设备处接收包括压缩属性信息的一个或多个点云文件。例如,可实时地或几乎实时地操纵3d显示器、全息显示器或头戴式显示器来显示由点云表示的虚拟世界的不同部分。为了更新3d显示器、全息显示器或头戴式显示器,与解码器相关联的系统可以基于显示器的用户操纵从远程服务器请求点云文件,并且这些点云文件可以从远程服务器传输到解码器并由解码器实时地或几乎实时地进行解码。然后可用响应于用户操纵的更新点云数据(诸如更新的点属性)来更新显示器。
[0056]
在一些实施方案中,一种系统可包括一个或多个lidar系统、3d相机、3d扫描仪等,并且此类传感器设备可捕获空间信息,诸如传感器设备的视图中的点的x、y和z坐标。在一些实施方案中,空间信息可相对于局部坐标系或可相对于全局坐标系(例如,笛卡尔坐标系可具有固定参考点诸如地球上的固定点,或者可具有不固定的局部参考点诸如传感器位置)。
[0057]
在一些实施方案中,此类传感器还可以捕获关于一个或多个点的属性信息,诸如颜色属性、反射率属性、速度属性、加速度属性、时间属性、模态和/或各种其他属性。在一些实施方案中,除了lidar系统、3d相机、3d扫描仪等之外,其他传感器可以捕获待包括在点云中的属性信息。例如,在一些实施方案中,陀螺仪或加速度计可以捕获待包括在点云中的运动信息作为与该点云的一个或多个点相关联的属性。例如,配备有lidar系统、3d相机或3d扫描仪的车辆可能会在由lidar系统、3d相机或3d扫描仪捕获的点云中包括车辆的方向和速率。例如,当捕获到车辆视野中的点时,这些点可被包括在点云中,其中该点云包括所捕获的点以及对应于在捕获到点时车辆的状态的相关联运动信息。
[0058]
图1示出了一种系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的属性信息的编码器,其中压缩属性信息被发送到解码器。
[0059]
系统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)可以包括在公共压缩点云中,该公共压缩点云还包括针对该点云的点的压缩空间信息,或者在一些实施方案中,压缩空间信息和压缩属性信息可以作为单独的文件进行传送。
[0060]
在一些实施方案中,编码器104可与传感器102成一体。例如,编码器104可在包括在传感器设备(诸如传感器102)中的硬件或软件中实现。在其他实施方案中,编码器104可在邻近传感器102的独立计算设备上实现。
[0061]
在一些情况下,对属性信息进行编码所需的位数量包括针对点云的位流的显著部分。
[0062]
在一些实施方案中,可以根据树数据结构对点云110中的点的位置进行编码。例如,三维空间可以递归地细分成连续较小的部分。这些部分中的每个部分可以由树数据结构中的相应节点表示。可以在树数据结构的对应节点中指示每个部分中的点的存在。
[0063]
作为示例,参考图2,可以根据八叉树200对点云110中的点的位置进行编码,其中八叉树200的每个节点202恰好有八个子节点202。三维空间204可以被递归地细分成连续较小的八分之一。这些部分中的每个部分可以由八叉树200的相应节点202表示。可以在八叉树的对应节点202中指示每个部分中存在点(例如,使用位“1”表示对应部分中存在点,或使用位“0”表示对应部分中不存在点)。
[0064]
图3a至图3e中示出根据树数据结构对点的位置进行编码的示例。在此示例中,根据四叉树(每个节点恰好有四个子节点的树数据结构)对单个二维平面上的多个点300进行编码。然而,应理解,可以根据八叉树形以类似的方式对三维点云中的点进行编码。
[0065]
如图3a所示,多个点300位于二维平面上。在特定位置存在点300由网格302中的白色框指示,而在特定位置不存在点300由网格302中的黑色框指示。网格302的行根据相应二进制序列304编索引(示出在网格302的右侧,其中黑色框指示位“0”,并且彩色框指示位“1”)。类似地,网格302的列根据相应二进制序列306编索引(示出在网格302的底部,其中黑色框指示位“0”,并且彩色框指示位“1”)。
[0066]
如图3b所示,网格302可以划分为四个大小相等的部分308a-308d(例如,正方形)。该划分可以由具有父节点和从父节点分支的四个子节点的树数据结构310来表示。在每个部分308a-308d中存在一个或多个点300可以由对应子节点中的位“1”来指示。这里,由于部分308a-308d中的每个部分包括至少一个点300,因此每个子节点被分配位“1”。
[0067]
如图3c所示,每个部分308a-308d可以进一步细分为四个大小相等的子部分(例如,正方形)。例如,可以将部分308a细分为部分310a-310d。该划分可以由树数据结构310表示,对于与部分308a相对应的节点,该树数据结构具有从该节点分支的四个子节点。每个子部分310a-310d中的点或多个点300的存在可以由对应子节点中的位“1”表示。此处,由于子
部分310a、310b和310d中的每个子部分包括至少一个点300,因此与那些子部分相关联的子节点各自被分配位“1”。与子部分310c相关联的子节点被分配位“0”。类似地,其他部分308c-308d也可以被细分为四个相等的子部分,并且每个子部分中的点的存在可以以与上述类似的方式由树数据结构310指示。
[0068]
如图3d所示,每个子部分310a-310d可以进一步细分为四个大小相等的子部分(例如,正方形)。例如,子部分310a可以被细分为子部分312a-312d。该划分可以由树数据结构310表示,对于与子部分310a相对应的节点,该树数据结构具有从该节点分支的四个子节点。每个子部分312a-312d中的点或多个点300的存在可以由对应子节点中的位“1”表示。此处,由于子部分312a和312b中的每个子部分包括至少一个点300,因此与那些子部分相关联的子节点各自被分配位“1”。与子部分310c和310d相关联的子节点各自被分配位“0”。类似地,网格的其他子部分可以各自被细分为四个相等的子部分,并且每个子部分中的点的存在可以以与上述类似的方式由树数据结构310指示。
[0069]
特定点300的空间位置可以由一个或多个二进制序列表示。例如,点300a相对于水平轴线的空间位置可以由二进制序列“011”表示(例如,对应于其列的索引),并且点300a相对于竖直轴线的空间位置可以由二进制序列“101”表示(例如,对应于其行的索引)。
[0070]
尽管图3a至图3d中示出具有四个级别的树数据结构310,但实际上,树数据结构可以包括任何数量的级别(对应于任何数量的空间细分)。此外,尽管图3a至图3d示出具有从每个父节点分支的四个子节点的树数据结构310(例如,四叉树),但实际上,树数据结构可以具有从每个父节点分支的任何数量的子节点(例如,从每个父节点分支的8个子节点,如具有八叉树)。
[0071]
量化步长大小:
[0072]
在一些具体实施中,在编码过程期间,可以部分地对点的位置进行量化或缩放,使得可以使用数量减少的位来表示点的位置(或近似位置)。作为示例,编码器可以将表示点的位置的二进制序列中的每一者划分为两个部分:(i)第一部分,其包括二进制序列中的第一d位,其中d是特定深度(例如,表示已经由编码器进行编码的位),以及(ii)第二部分,其包括二进制序列中的其余位。可以根据选择的量化参数对第二部分进行量化。
[0073]
为了说明,点的x位置的二进制表示可以表示为{b4,b3,b2,b1,b0},其中x在0到31(含31)之间。例如,x=21=0b10101(即,二进制序列“10101”)。在对前两个树级别进行编码后,在深度d=2处,丢弃0b10101的前两位,留下0b101(即,十进制值5)。其余部分可以根据步长大小2进行量化(例如,)。这具有将其余部分的范围从十进制值0到7减小到十进制值0到3的效果。由于范围已经减少了两倍,因此只需要两个树级别来表示其余部分,而不是量化之前其余部分的三个级别。可以将级别减少表示为floor(log2(qs)),其中qs是量化步长大小。被通知在树深度2处以步长大小2进行量化的解码器将解码对应点的四位表示(5-floor(log2(2))=4)。解码器将按量化步长大小qs(0b10*2=0b100)缩放位置信息的量化部分(两个最低有效位,0b10),并且将缩放值附加到两个最高有效位(0b10:0b100),从而产生0b10100的重建位置。
[0074]
这种“树内”几何量化的性能具有各种影响。例如,这种量化从充分量化节点的子树中消除了级别,从而避免了被消除节点的信令占用。此外,该量化减少了树数据结构中的
编码点的数量。此外,该量化将稀疏表面组合压缩成不太稀疏的形式。因此,可以使用较少数据(例如,与不利用量化的技术相比)存储关于点云的信息(例如,点云中一个或多个点的存在和/或位置)。
[0075]
然而,在一些情况下,该量化可以在编码过程和解码过程期间在点云中引入空间畸变,特别是在量化步长大小不是整数值时。
[0076]
例如,量化可以将具有大小为ns的节点的点映射为量化节点大小nq,其中nq≤ns。因此,定量步长大小qs为作为示例,大小为128
×
128
×
128(2,097,152个体素)的三维节点可以通过使用为2的定量步长大小qs减少到大小为64
×
64
×
64(262,144个体素)的节点。
[0077]
在一些具体实施中,可以基于指数函数f(qp)=qs的整数量化参数qp来确定定量步长大小qs。例如,可以使用关系式确定定量步长大小qs。在此示例中,qp增加6(例如,从4增加到10)使得定量步长大小qs加倍。
[0078]
在此示例中,对于量化参数qp的给定整数值,除了二次方之外,定量步长大小qs不是整数。这可能在编码过程和解码过程期间引入了畸变。例如,在一些具体实施中,几何编码器仅可以对整数个点位置(例如,如特定编解码器指定的)进行编码。但是,通过非整数步长大小缩放量化的位置值可能会使得位置具有小数部分,根据编解码器的规范,必须将该小数部分舍入为整数。这种对小数部分的丢弃可能会使得在编码过程和解码过程中产生视觉上令人反感的伪影。
[0079]
例如,如图4所示,点云400已根据量化参数qp=11进行量化,这会产生非整数定量步长大小qs(例如,qs=2.24492)。在此示例中,几何编码器仅可以对整数个点位置进行编码。因此,具有小数部分的点的任何位置均被舍入为整数。在解码过程期间,该舍入会引起点云中的不均匀畸变。例如,一些点已从其预期位置移位,从而引起点之间的线或间隙和保真度降低。
[0080]
在一些具体实施中,可以使用一种或多种技术消除或以其他方式减少这些畸变。
[0081]
在一些具体实施中,编解码器的输出可以是固定点。可以在与编码过程和解码过程相关联的一组参数中(例如,在根据高效视频编码(hevc)标准的序列参数集(sps)中)配置固定点位的数量。如果几何量化与非二次方量化步长大小q一起使用,则小数部分可以是非零的。
[0082]
作为另一示例,在给定正整数量化参数qp的情况下,可以选择指数函数f(qp)=qs,使得一些或所有量化步长大小qs为整数。在一些具体实施中,可以选择函数f(qp)=qs,使得对于正整数量化参数qp,由该函数输出的量化步长大小qp中不超过五个是非整数的。作为示例,qs可以使用关系来确定。在此示例中,在给定正整数量化参数qp的情况下,仅qp=1,2,3,5,and 7时会使得qs具有非整数值。qs的值在每个二次方区间内线性分布。因此,在编码过程和解码过程期间,由于消除或减少了对点的位置值进行舍入,空间畸变被消除或以其他方式减少。此外,由于量化步长大小基本上被限制为二次方,这基本上消除了在解码过程中执行逐点乘法的需要,因为它们可以被移位代替。在一些具体实施中,因此不需要额外的开销。
[0083]
缩放过程的整数具体实施可以如下实施。首先,固定点量化步长大小被确定为shift=qp>>2;qstimesfour=(4+(qp&3))<<shift,其中“>>”和“<<”表示右移运算符和左移运算符,并且“&”表示按位与运算符。其次,按(pos
×
qstimesfour)>>2执行缩放,其中pos是点位置的定量部分。在一些实施方案中,缩放可以包括用于执行“舍入”或近似的偏移:(pos
×
qstimesfour+2)>>2。
[0084]
在以上描述的示例中,量化参数qp中增加四使得量化步长大小qs加倍。在每个二次方倍增区间内,中间量化步长大小是线性分布的。然而,其他关系也是可能的(例如,在量化步长大小的每次加倍之间增加或减少中间量化步长的数目)。
[0085]
例如,在一些具体实施中,量化参数qp增加八使得量化步长大小qs加倍。这可以使用关系来实现,使得量化步长大小每次加倍之间的中间量化步长大小是增加的。在此示例中,给定正整数量化参数qp,并且假设21位几何结构,0到168范围内只有17个qp整数值使得qs具有非整数值(例如,小于11%)。因此,在编码过程和解码过程期间,由于消除或减少了对点的位置值进行舍入,空间畸变被消除或以其他方式减少。此外,可以使用以下各项来实现缩放过程的整数具体实施:shift=qp>>3;qstimeseight=(8+(qp&7))<<shift;其中按(pos
×
qstimeseight)>>3执行缩放,或小数位置舍入为(pos
×
qstimeseight+4)>>3。
[0086]
作为另一示例,在一些具体实施中,量化参数qp增加二使得量化步长大小qs加倍。这可以使用关系来实现,使得量化步长大小每次加倍之间的中间量化步长大小是减少的。此外,可以使用以下各项来实现缩放过程的整数具体实施:shift=qp>>1;qstimestwo=(2+(qp&1))<<shift;其中按(pos
×
qstimestwo)>>1执行缩放,或小数位置舍入为(pos
×
qstimestwo+1)>>1。
[0087]
表1示出了根据上述示例性关系的量化参数qp和量化步长大小qs的示例性值。在列qs中,在量化参数qp增加二使得量化步长大小qs加倍时(例如,按照关系),子列“2”示出给定特定量化参数qp的量化步长大小qs的值。此外,在列qs中,在量化参数qp增加四使得量化步长大小qs加倍时(例如,按照关系按照关系),子列“4”示出给定特定量化参数qp的量化步长大小qs的值。此外,在列qs中,在量化参数qp增加八使得量化步长大小qs加倍时(例如,按照关系时(例如,按照关系),子列“8”示出给定特定量化参数qp的量化步长大小qs的值。
[0088][0089]
表1-量化参数(qp)的qs值,每个qs倍增区间有2个、4个或8个qp。
[0090]
作为另一示例,在一些具体实施中,量化参数qp增加一时的量化步长大小qs加倍(例如,使得步长大小的每次加倍之间的所有中间步长都被消除)。这可以使用关系qs=2
qp
来实现。例如,这可能有利于进一步降低具体实施的复杂性。此外,缩放过程的整数具体实施可以实施为pos<<qp。
[0091]
量化参数qp与量化步长大小qs之间的其他关系也是可能的。例如,在一些具体实施中,量化参数qp增加16、32、64或任何其他数字可使得量化步长大小qs加倍。在一些具体实施中,生成分数步长大小的量化参数的数目为(p
×
log2p)-p+1,其中p是每加倍qs的qp的数目。
[0092]
在解码过程中,可以通过反转上述编码技术中的一种或多种来确定点的位置。
[0093]
例如,如上所述,可以对数据结构进行编码,使其表示三维空间中的点云中的多个点的位置。具体地,每个维度中的每个点的位置可以由对应的位序列表示。此外,位序列中的至少一些位序列可以根据部分量化或缩放来指示位的位置(例如,如上所述)。
[0094]
在解码过程期间,已经部分量化或缩放的位序列可以划分为两部分:(i)第一部分,其包括二进制序列的前d个位,其中d是特定深度(例如,表示尚未被编码器量化的位),以及(ii)第二部分,其包括二进制序列的其余位,其中在编码过程期间已经根据选择的量化参数对该第二部分进行了量化。
[0095]
位的第二部分可以被缩放以反转量化(例如,将对应于来自量化的floor(log2(qs))水平降低的前导零位加前缀,并且通过将由位的第二部分指示的值与先前在编码过程期间用于量化位的特定部分的量化步长大小相乘)。缩放的第二部分可以与位的第一部分重组(例如,通过将缩放的位的第二部分附加到位的第一部分的末端)以重建点的量化位置。反过来,点的重建位置可用于渲染点云(例如,作为虚拟现实内容或增强现实内容的一部分)。
[0096]
信令量化步长大小:
[0097]
在一些具体实施中,可以在树数据结构的一个或多个级别处对点的位置进行缩放(例如,“反向量化”)。例如,树数据结构可以包括一个或多个偏移值,该偏移值指示树数据结构的一部分的量化参数qp(例如,树数据结构的一个或多个级别的量化参数qp)相对于“基本”或“默认”量化参数qp(例如,树数据结构的基本或默认量化参数qp)之间的差或“偏移”。
[0098]
在一些具体实施中,可以在每个树数据结构级别(例如,每个“几何切片”级别)上发信号通知发生缩放的几何树级别。例如,树级别可以使用参数geom_octree_qp_offset_depth发信号通知,该参数又用于导出几何缩放深度(例如,参数geomscalingdepth)和缩放节点大小(例如,参数scalingnodesizelog2)。在一些具体实施中,该参数可以在树数据结构的标头中发信号通知(例如,在关于点云中的点的位置的编码数据之前的数据结构的一部分)。在一些情况下,这可能是优选的。例如,在一些具体实施中,如果在编码之前参数的值是已知的,则在标头中发信号通知该参数可以潜在地减少资源消耗(例如,通过减少执行额外的内存复制或连接技术的需要)。
[0099]
然而,在一些具体实施中,可能优选的是在每个树级别的开始处(例如,使用数据标记)指示该特定树级别是否存在偏移值(以及相应地,是否应相对于该树级别执行缩放)。在一些具体实施中,这可以使用包括在树数据结构的每个树级别的开始处的数据标记(例如,数据标记geom_octree_qp_offsets_present_flag)来指示。在已经设置标记之后,不会针对树数据结构中的任何后续树级别(例如,树数据结构中的任何下树级别)发信号通知。此数据标记具有发信号通知存在偏移的唯一深度的作用。此外,在包括数据标记的情况下,不再需要指定几何缩放深度(例如,geomscalingdepth)的变量,并且当标记被断言时,可以从当前节点大小导出缩放节点大小(例如,scalingnodesizelog2)。
[0100]
为了说明,下面示出树数据结构(例如,“几何切片”)的示例性语法。
[0101][0102]
表2:几何切片的示例性语法。
[0103]
此外,下面示出对每个几何节点进行编码的示例性语法:
[0104][0105]
表3:几何节点的示例性语法。
[0106]
在表2和表3中,粗体线指示可用于表示偏移值被发信号通知时所处的深度的语法。
[0107]
如上所述,几何切片内的数据包括几何节点的序列。在几何切片的标头中,可以在每个树数据结构级别上发信号通知发生缩放的几何树级别,而不是信令,可以在每个树级别的开始处使用数据标记(例如,node_qp_offsets_present_flag)来指示该特定树级别是
否存在偏移值(以及相应地,是否应相对于该树级别执行缩放)。由于标记不经常出现,每个级别最多一次,一些实施方案将使用熵编码器的旁路模式对该标记进行编码。
[0108]
这种标记的语义可以是:node_qp_offsets_present_flag等于1指示geom_node_qp_offset_eq0_flag存在于当前树级别的每个几何节点中;node_qp_offsets_present_flag等于0指示geom_node_qp_offset_eq0_flag不存在于当前树级别的任何几何节点中。当不存在时,geom_node_qp_offset_eq0_flag被推断为等于0。
[0109]
在此示例中,数据的位流不包括指示特定树级别中的第一节点(例如,第一节点具有特定深度)的任何标记。然而,这可以在编解码器的规范中得到解释。例如,在一些具体实施中,编解码器可以指定始终存在包含一个节点的第一级别,并且一个级别中的所有节点的占用信息指示下一级别中的节点的数量)。
[0110]
在一些具体实施中,可以修改上述几何节点语法,使得当!nodeqpoffsetssignalled并且nodeidx=0时对数据标记节点_qp_offsets_present进行解码。
[0111]
示例性过程
[0112]
图5a示出用于生成表示三维空间中的点云的数据结构的示例性过程500。过程500可以至少部分地使用一个或多个设备(例如,图8所示的一个或多个计算机系统)来执行。
[0113]
根据过程500,计算机系统接收表示三维空间中的点云的多个点(框502)。
[0114]
计算机系统将点在三维空间的每个维度中的位置表示为位序列(框504)。根据树数据结构表示点的位置。在一些具体实施中,树数据结构可以是八叉树。
[0115]
计算机系统将位序列中的至少一者划分为位的第一部分和位的第二部分(框506)。在一些具体实施中,这可以包括对位序列中的至少一者进行划分使得位的第一部分包括来自位序列中的对应位序列的前d个位,其中d是树数据结构的缩放深度。此外,这可以包括对位序列中的至少一者进行划分,使得位的第二部分中的每一者包括来自位序列中的对应位序列的位的其余部分(例如,除了前d个位之外的位)。
[0116]
计算机系统根据量化步长大小对位的第二部分中的每一者进行量化(框508)。根据以量化参数值作为输入并且以量化步长大小作为输出的指数函数来确定量化步长大小。在一些具体实施中,对位的第二部分中的每一者进行量化可以包括将由位的第二部分指示的数值除以量化步长大小。
[0117]
在一些具体实施中,可以选择该指数函数,使得对于正整数量化参数值,由该指数函数输出的该量化步长大小中的大部分是整数。在一些具体实施中,可以选择指数函数,使得对于正整数量化参数值,由该指数函数输出的该量化步长大小中的n个为非整数,其中n=(p
×
log2p)-p+1,并且其中p是每加倍该量化步长大小的量化参数的数目。在一些具体实施中,该指数函数可以是其中qs是该量化步长大小,并且qp是该量化参数值。
[0118]
计算机系统生成表示三维空间中的点云的数据结构(框510)。数据结构包括量化的位的第二部分。
[0119]
计算机系统传输和/或存储数据结构(框512)。
[0120]
在一些具体实施中,计算机系统还可以将量化的位的第二部分中的至少一些近似为整数值,并且将近似的位的第二部分包括在数据结构中。
[0121]
在一些具体实施中,计算机系统还可以指示数据结构中的量化步长大小或量化参数值中的至少一者。
[0122]
图5b示出用于基于表示点云的数据结构渲染三维内容的示例性过程520。过程520可以至少部分地使用一个或多个设备(例如,图9所示的一个或多个计算机系统)来执行。
[0123]
根据过程520,计算机系统接收表示三维空间中的点云中的多个点的数据结构(框522)。
[0124]
计算机系统对数据结构进行解码以确定一个或多个位序列(框524)。每个位序列表示三维空间的一个维度中的一个点的位置。根据树数据结构对数据结构进行解码。在一些具体实施中,树数据结构可以是八叉树。
[0125]
计算机系统将位序列中的至少一者划分为位的第一部分和位的第二部分(框526)。在一些具体实施中,可以对位序列中的至少一些进行划分使得位的第一部分中的每一者包括来自该位序列中的对应位序列的前d个位,其中d是树数据结构的缩放深度。此外,可以对位序列中的至少一些进行划分,使得位的第二部分中的每一者包括来自该位序列中的对应位序列的位的其余部分。
[0126]
计算机系统根据量化步长大小对位的第二部分中的每一者进行缩放(框528)。根据以量化参数值作为输入并且以量化步长大小作为输出的指数函数来确定量化步长大小。在一些具体实施中,对该位的第二部分中的每一者进行缩放可包括将由该位的第二部分中的每一者指示的数值与该量化步长大小相乘。
[0127]
在一些具体实施中,可以选择该指数函数,使得对于正整数量化参数值,由该指数函数输出的该量化步长大小中的大部分是整数。
[0128]
在一些具体实施中,可以选择该指数函数,使得对于正整数量化参数值,由该指数函数输出的该量化步长大小中的n个为非整数,其中n=(p
×
log2p)-p+1,并且其中p是每加倍该量化步长大小的量化参数的数目。
[0129]
在一些具体实施中,该指数函数可以是其中qs是该量化步长大小,并且qp是该量化参数值。
[0130]
计算机系统通过针对点中的至少一个点中的每一者组合位的第一部分和对应于该点的缩放的位的第二部分来生成该点中的至少一个点的重建点位置(框530)。
[0131]
计算机系统输出点中的至少一个点的重建点位置(框532)。
[0132]
在一些具体实施中,可以在数据结构中指示或包括量化步长大小和/或量化参数值。
[0133]
在一些具体实施中,该过程还可以包括基于点中的至少一个点的重建点位置渲染三维内容。该三维内容可以是虚拟现实内容和/或增强现实内容。
[0134]
图6a示出用于生成表示三维空间中的点云的数据结构的示例性过程600。过程600可以至少部分地使用一个或多个设备(例如,图9所示的一个或多个计算机系统)来执行。
[0135]
根据过程600,计算机系统接收表示三维空间中的点云的多个点(框602)。
[0136]
计算机系统生成表示三维空间中的点云的数据结构(框604)。该数据结构包括标头部分和该标头部分之后的数据部分。对于每个点,该数据部分指示根据树数据结构进行编码并且根据对应量化参数进行量化的点的位置。该树数据结构具有多个树级别。在一些具体实施中,树数据结构可以是八叉树。
[0137]
此外,该数据部分包括偏移值,该偏移值在这些树级别中的一个或多个树级别处指示用于量化一个或多个树级处的点的位置的量化参数与基础量化参数之间的差。该数据部分在该一个或多个树级别中的每一个树级别处包括指示在该树级别处存在一个或多个偏移值的数据标记。
[0138]
在一些具体实施中,对于一个或多个树级别中的每一个树级别,可以在该树级别开始时包括该数据标记。
[0139]
在一些具体实施中,该标头部分不包括指示该偏移值的存在的数据。
[0140]
计算机系统传输或存储数据结构(框606)。
[0141]
图6b示出用于基于表示点云的数据结构渲染三维内容的示例性过程620。过程620可以至少部分地使用一个或多个设备(例如,图9所示的一个或多个计算机系统)来执行。
[0142]
根据过程620,计算机系统接收表示三维空间中的点云的数据结构(框622)。点云具有多个点。该数据结构包括标头部分和该标头部分之后的数据部分。对于每个点,该数据部分指示根据树数据结构进行编码并且根据对应量化参数进行量化的点的位置。该树数据结构具有多个树级别。在一些具体实施中,树数据结构可以是八叉树。
[0143]
此外,该数据部分包括偏移值,该偏移值在这些树级别中的一个或多个树级别处指示用于量化一个或多个树级处的点的位置的量化参数与基础量化参数之间的差。该数据部分在该一个或多个树级别中的每一个树级别处包括指示在该树级别处存在一个或多个偏移值的数据标记。
[0144]
计算机系统基于数据结构确定每个点的位置(框624)。在一些具体实施中,这可以包括基于在特定树级别处的数据标记确定该树级别处存在该偏移值中的一者或多者;基于该树级别处的该偏移值确定用于对该树级别的该点的该位置进行量化的该量化参数;以及基于确定的量化参数确定该树级别处的该点中的每个点的该位置。
[0145]
计算机系统输出每个点的确定位置(框626)。
[0146]
在一些具体实施中,该方法还可以包括基于点中的每个点的确定位置渲染三维内容。该三维内容可以是虚拟现实内容或增强现实内容中的至少一者。
[0147]
图7示出了正在3d应用中使用的压缩点云。
[0148]
在一些实施方案中,传感器(诸如传感器102)、编码器(诸如编码器104)和解码器(诸如解码器116)可用于在3d应用中传送点云。例如,在框702处,传感器(诸如传感器102)可以捕获3d图像,并且在框704处,传感器或与传感器相关联的处理器可以基于感测到的数据执行3d重建以生成点云。
[0149]
在框706处,编码器(诸如编码器104)可以对点云进行压缩,并且在框708处,编码器或后处理器可以打包压缩点云并经由网络710传输压缩点云。在框712处,可以在包括解码器(诸如解码器116)的目标位置处接收数据包。在框714处,解码器可以对点云进行解压缩,并且在框716处,可以渲染解压缩点云。在一些实施方案中,3d应用可实时地传输点云数据,使得框716处的显示表示正在框702处观察到的图像。例如,在框616处,峡谷中的相机可允许远程用户体验穿行虚拟峡谷。
[0150]
图8示出了正在虚拟现实(vr)或增强现实(ar)应用中使用的压缩点云。
[0151]
在一些实施方案中,点云可在软件中生成(例如,与由传感器捕获相反)。例如,在框802处,产生虚拟现实或增强现实内容。虚拟现实或增强现实内容可包括点云数据和非点
云数据。例如,作为一个示例,非点云字符可横穿由点云表示的地形。在804处,可以压缩点云数据,并且在框806处,可以将压缩点云数据和非点云数据打包并经由网络808传输这些数据。例如,在框802处产生的虚拟现实或增强现实内容可在远程服务器处产生并经由网络808传送至vr或ar内容消费者。在框810处,数据包可在vr或ar消费者的设备处被接收并同步。在框812处,在vr或ar消费者的设备处运作的解码器可对压缩点云进行解压缩,并且点云和非点云数据可例如在vr或ar消费者的设备的头戴式显示器中被实时渲染。在一些实施方案中,可响应于vr或ar消费者操纵头戴式显示器以看向不同的方向来生成、压缩、解压缩和渲染点云数据。
[0152]
在一些实施方案中,如本文所述的点云压缩可用于各种其他应用诸如地理信息系统、体育赛事直播、博物馆展示、自主导航等中。
[0153]
示例性计算机系统
[0154]
图9示出了示例性计算机系统900,该示例性计算机系统可实现编码器或解码器或本文所述的部件中的任何其他部件(例如,上文参考图1至图8描述的部件中的任何部件)。计算机系统900可被配置为执行上述实施方案中的任一个实施方案或所有实施方案。在不同的实施方案中,计算机系统900可为各种类型的设备中的任一者,包括但不限于:个人计算机系统、台式计算机、膝上型电脑、笔记本电脑、平板电脑、一体电脑、平板计算机或上网本电脑、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、消费者设备、视频游戏控制器、手持式视频游戏设备、应用服务器、存储设备、电视、视频记录设备、外围设备(诸如交换机、调制解调器、路由器)或一般性的任何类型的计算或电子设备。
[0155]
本文所述的点云编码器或解码器的各种实施方案可在一个或多个计算机系统900上执行,该计算机系统可与各种其他设备交互。需注意,根据各种实施方案,上文相对于图1至图8描述的任何部件、动作或功能性可以实现于被配置为图9的计算机系统900的一个或多个计算机上。在例示的实施方案中,计算机系统900包括经由输入/输出(i/o)接口930耦接到系统存储器920的一个或多个处理器910。计算机系统900还包括耦接到i/o接口930的网络接口940,以及一个或多个输入/输出设备950,诸如光标控制设备960、键盘970和一个或多个显示器980。在一些情况下,可想到实施方案可使用计算机系统900的单个实例来实现,而在其他实施方案中,多个此类系统或者构成计算机系统900的多个节点可被配置为托管实施方案的不同部分或实例。例如,在一个实施方案中,一些元件可经由计算机系统900的与实现其他元件的那些节点不同的一个或多个节点来实现。
[0156]
在各种实施方案中,计算机系统900可以是包括一个处理器910的单处理器系统,或者是包括若干个处理器910(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器910可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器910可以是实现多种指令集架构(isa)(诸如x86、powerpc、sparc或mips isa或任何其他合适的isa)中的任一种的通用或嵌入式处理器。在多处理器系统中,处理器910中的每一个处理器通常可以但并非必须实现相同的isa。
[0157]
系统存储器920可被配置为存储点云压缩或点云解压缩程序指令922和/或可由处理器910访问的传感器数据。在各种实施方案中,系统存储器920可使用任何合适的存储器技术来实现,合适的存储器技术为诸如静态随机存取存储器(sram)、同步动态ram(sdram)、
非易失性/闪存型存储器或任何其他类型的存储器。在所示的实施方案中,程序指令922可被配置为实现结合上述功能中的任一种的图像传感器控制应用程序。在一些实施方案中,程序指令和/或数据可被接收、发送或存储在不同类型的计算机可访问介质上或与系统存储器920或计算机系统900分开的类似介质上。尽管将计算机系统900描述为实现前面各图的功能框的功能性,但可经由这样的计算机系统实现本文描述的任何功能性。
[0158]
在一个实施方案中,i/o接口930可被配置为协调设备中的处理器910、系统存储器920和任何外围设备(包括网络接口940或其他外围设备接口,诸如输入/输出设备950)之间的i/o通信。在一些实施方案中,i/o接口930可执行任何必要的协议、定时或其他数据转换以将来自一个部件(例如系统存储器920)的数据信号转换为适于由另一部件(例如处理器910)使用的格式。在一些实施方案中,i/o接口930可包括对例如通过各种类型的外围总线(诸如,外围部件互连(pci)总线标准或通用串行总线(usb)标准的变型)附接的设备的支持。在一些实施方案中,i/o接口930的功能例如可被分裂到两个或更多个单独部件诸如北桥接件和南桥接件中。此外,在一些实施方案中,i/o接口930(诸如到系统存储器920的接口)的功能中的一些或全部可直接并入处理器910中。
[0159]
网络接口940可被配置为允许在计算机系统900与附接到网络985的其他设备(例如,承载器或代理设备)之间或者在计算机系统900的节点之间交换数据。在各种实施方案中,网络985可包括一种或多种网络,包括但不限于局域网(lan)(例如,以太网或企业网)、广域网(wan)(例如,互联网)、无线数据网、某种其他电子数据网络或它们的某种组合。在各种实施方案中,网络接口940可支持经由有线或无线通用数据网络(诸如任何合适类型的以太网网络)的通信,例如;经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)的通信;经由存储区域网络(诸如光纤通道san)、或经由任何其他合适类型的网络和/或协议的通信。
[0160]
在一些实施方案中,输入/输出设备950可包括一个或多个显示终端、键盘、小键盘、触控板、扫描设备、语音或光学识别设备、或者适于由一个或多个计算机系统900输入或访问数据的任何其他设备。多个输入/输出设备950可存在于计算机系统900中,或者可分布在计算机系统900的各个节点上。在一些实施方案中,类似的输入/输出设备可以与计算机系统900分开,并且可通过有线或无线连接(诸如通过网络接口940)与计算机系统900的一个或多个节点进行交互。
[0161]
如图9所示,存储器920可包括程序指令922,该程序指令可能可由处理器执行,以实现上文所述的任何元素或动作。在一个实施方案中,程序指令可执行上文所述的方法。在其他实施方案中,可包括不同的元件和数据。需注意,数据可包括上文所述的任何数据或信息。
[0162]
本领域的技术人员应当理解,计算机系统900仅仅是例示性的,而并非旨在限制实施方案的范围。具体地,计算机系统和设备可包括可执行所指出的功能的硬件或软件的任何组合,包括计算机、网络设备、互联网设备、pda、无线电话、寻呼机等。计算机系统900还可连接到未示出的其他设备,或者反之可作为独立的系统进行操作。此外,由所示出的部件所提供的功能在一些实施方案中可被组合在更少的部件中或者被分布在附加部件中。类似地,在一些实施方案中,所示出的部件中的一些部件的功能可不被提供,和/或其他附加功能可能是可用的。
[0163]
本领域的技术人员还将认识到,虽然各种项目被示出为在被使用期间被存储在存储器中或存储装置上,但是为了存储器管理和数据完整性的目的,这些项目或其部分可在存储器和其他存储设备之间进行传输。另选地,在其他实施方案中,这些软件部件中的一些或全部软件部件可以在另一设备上的存储器中执行,并且经由计算机间通信来与例示的计算机系统进行通信。系统部件或数据结构中的一些或全部也可(例如作为指令或结构化数据)被存储在计算机可访问介质或便携式制品上以由合适的驱动器读取,其多种示例在上文中被描述。在一些实施方案中,存储在与计算机系统900分开的计算机可访问介质上的指令可经由传输介质或信号(诸如经由通信介质诸如网络和/或无线链路而传送的电信号、电磁信号或数字信号)传输到计算机系统900。各种实施方案还可以包括在计算机可访问介质上接收、发送或存储根据以上描述所实现的指令和/或数据。一般来讲,计算机可访问介质可以包括非暂态计算机可读存储介质或存储器介质,诸如磁或光介质,例如盘或dvd/cd-rom、易失性或非易失性介质,诸如ram(例如sdram、ddr、rdram、sram等)、rom等。在一些实施方案中,计算机可访问介质可以包括传输介质或信号,诸如经由通信介质诸如网络和/或无线链路来传输的电气、电磁或数字信号。
[0164]
在不同的实施方案中,本文所述的方法可以在软件、硬件或它们的组合中实现。此外,可改变方法的框的次序,并且可对各种要素进行添加、重新排序、组合、省略、修改等。对于受益于本公开的本领域的技术人员,显然可做出各种修改和改变。本文所述的各种实施方案旨在为例示的而非限制性的。许多变型、修改、添加和改进是可能的。因此,可为在本文中被描述为单个示例的部件提供多个示例。各种部件、操作和数据存储库之间的界限在一定程度上是任意性的,并且在具体的示例性配置的上下文中示出了特定操作。预期了功能的其他分配,它们可落在所附权利要求的范围内。最后,被呈现为示例性配置中的分立部件的结构和功能可被实现为组合的结构或部件。这些和其他变型、修改、添加和改进可落入如以下权利要求书中所限定的实施方案的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1