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

使用带有时间一致补片的视频编码进行点云压缩的制作方法

2022-04-27 07:24:34 来源:中国专利 TAG:

使用带有时间一致补片的视频编码进行点云压缩


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


技术实现要素:

4.在一些实施方案中,一种系统包括被配置为捕获共同构成点云的点的一个或多个传感器,其中每个点包括识别相应点的空间位置的空间信息和定义与相应点相关联的一个或多个属性的属性信息。
5.在一些实施方案中,一种系统还包括被配置为压缩点的属性信息和/或空间信息的编码器。为了压缩属性和/或空间信息,编码器被配置为针对点云确定多个补片,每个补片对应于点云的部分。编码器还被配置为针对每个补片:生成补片图像,该补片图像包括对应于投影到补片平面上的补片的点集合,以及生成另一个补片图像,该另一个补片图像包括与补片对应的点的集合的几何信息,诸如深度信息,其中该几何信息包括点在垂直于补片平面的方向上的深度。
6.例如,对应于投影到补片平面上的补片的几何补片图像可以在两个方向(诸如,x和y方向)上描绘包括在补片中的点云的点。点云的点可以投影到与法向量大约垂直的补片平面上,该法向量在补片的位置处与点云的表面垂直。另外,例如,包括在补片中所包括的点的集合的深度信息的几何补片图像可以描绘深度信息,诸如z方向上的深度距离。为了描绘深度信息,几何补片图像可以包括一个参数,该参数基于点云中的点在补片图像中的特定位置处的深度而在强度上变化。例如,描绘深度信息的几何补片图像可具有与表示投影到补片平面上的点的属性的属性补片图像相同的形状。然而,几何信息补片图像可以是包括图像属性(诸如,一种或多种颜色)的图像,该图像属性基于深度在强度上变化,其中一个或多个图像属性的强度对应于点云的对应点在几何补片图像中的某位置处的深度,该位置是图像属性在描绘深度的几何补片图像中显示所在的位置。例如,更靠近补片平面的点可
被编码为描绘深度的补片图像中的较暗值,并且更远离补片平面的点可被编码为描绘深度的补片图像中的较亮值,例如在描绘深度的单色补片图像中。因此,深度信息补片图像当与表示投影到补片平面上的点的属性值的其他补片图像对准时,可基于几何补片图像中的对应于点在包括投影到补片平面上的点云点的其他补片图像中的位置的位置处的相应图像属性强度,来指示投影到补片平面上的点的相对深度。
7.在一些实施方案中,编码器可以在多个时刻中的每个时刻针为随时间变化的点云独立地生成补片。例如,针对表示行走的人的点云,编码器可以独立地生成包括人投射到在不同时间点确定的补片平面上的部分的补片,而不考虑针对其他时间点确定的补片。
8.另选地,在一些实施方案中,编码器可以随着点从一个时刻移动到另一个时刻基于这些点的映射为随时间变化的云生成补片。在此类实施方案中,可以生成时间一致补片,其中同一时间一致补片可以用于点云在不同时刻的多个版本。另外,时间一致补片可以跨多个时刻相对于点云保持相同的补片大小和取向。
9.编码器被进一步配置为将确定的补片中的每个补片的生成的补片图像(包括几何补片图像,以及关于一个或多个其他属性(诸如颜色、纹理、反射率等)的一个或多个附加补片图像)打包到一个或多个图像帧中。例如,编码器可利用根据高效视频编码(hevc/h.265)标准或其他合适的标准(诸如,高级视频编码(avc/h.264)标准、由开放媒体联盟(aom)制作的aomedia视频1(av1)视频编码格式等)的视频编码部件。在一些实施方案中,编码器可利用根据运动图像专家组(mpeg)、联合图像专家组(jpeg)标准、国际电信联盟电信标准(例如itu-t标准)等的图像编码器。
10.在一些实施方案中,解码器被配置为接收一个或多个已编码图像帧,这一个或多个已编码图像帧包括关于压缩点云的多个补片的补片图像,其中对于每个补片,这一个或多个已编码图像帧包括:包括投影到补片平面上的补片的点集合的补片图像,和包括关于补片的点集合的深度信息的补片图像,其中深度信息指示补片的点在垂直于补片平面的方向上的深度。在一些实施方案中,可以将深度补片图像和其他属性补片图像一起打包到图像帧中。例如,解码器可以接收包括由上述编码器生成的打包补片图像的一个或多个图像帧。在一些实施方案中,该一个或多个图像帧可以包括时间一致补片。在一些实施方案中,可以针对使用相同时间一致补片的补片图像的序列来用信号发送公共占用图。在一些实施方案中,图像帧中的至少一个图像帧可以在编码器处被缩小,并且解码器可以在2d视频域中放大该缩小的图像帧。
11.解码器被进一步配置为对包括补片图像的一个或多个已视频编码图像帧进行视频解码。在一些实施方案中,解码器可利用根据高效视频编码(hevc)标准或其他合适的标准(诸如,高级视频编码(avc)标准、aomedia视频1(av1)视频编码格式等)的视频解码器。在一些实施方案中,解码器可利用根据运动图像专家组(mpeg)或联合图像专家组(jpeg)标准等的图像解码器。
12.解码器被进一步配置为接收或确定指示相应属性补片图像、深度补片图像和/或图像帧之间的关系的关系信息。例如,解码器可以接收压缩点云文件中的关系信息,其中该关系信息由编码器确定。另外,在一些实施方案中,解码器可以基于包括在压缩点云文件中的信息(诸如压缩点云的占用图和/或辅助信息)来确定关系信息。在一些实施方案中,解码器可利用接收到的或确定的关系信息来调整用于对视频编码的图像帧进行视频解码的一
个或多个参数。
13.解码器被进一步配置为:针对每个补片,至少部分地基于包括投影到补片平面上的补片的点的集合的属性补片图像和包括补片的点的集合的深度信息的几何补片图像来确定补片的点的集合的空间信息,以及至少部分地基于多个补片的确定的空间信息和补片中所包括的属性信息来生成压缩点云的重构版本。
14.在一些实施方案中,一种非暂态计算机可读介质存储程序指令,这些程序指令当由一个或多个处理器执行时,使得一个或多个处理器实现如本文所述的编码器以压缩点云的几何信息和属性信息。
15.在一些实施方案中,一种非暂态计算机可读介质存储程序指令,这些程序指令当由一个或多个处理器执行时,使得一个或多个处理器实现如本文所述的解码器以解压缩点云的几何信息和属性信息。
附图说明
16.图1示出了根据一些实施方案的系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的空间信息和属性信息的编码器,其中压缩的空间信息和属性信息被发送到解码器。
17.图2a示出了根据一些实施方案的用于对点云帧内进行编码的编码器的部件。
18.图2b示出了根据一些实施方案的用于对点云帧内进行解码的解码器的部件。
19.图2c示出了根据一些实施方案的用于对点云帧间进行编码的编码器的部件。
20.图2d示出了根据一些实施方案的用于对点云帧间进行解码的解码器的部件。
21.图3a示出了根据一些实施方案的示例性补片分割过程。
22.图3b示出了根据一些实施方案的包括打包的补片图像和填充部分的示例性图像帧。
23.图4示出了根据一些实施方案的包括补片部分和填充部分的示例性图像帧。
24.图5示出了根据一些实施方案的用于生成时间一致补片的示例性补片分割过程。
25.图6示出了根据一些实施方案的包括时间一致补片的图像帧的示例性序列。
26.图7示出了根据一些实施方案的点云在不同时刻的版本的示例,这些点云的版本具有不同数量的点和在不同时刻的这些点之间的映射。
27.图8示出了根据一些实施方案的用于确定时间一致补片的过程。
28.图9示出了根据一些实施方案的用于为运动估计确定片段大小的过程。
29.图10a示出了根据一些实施方案的用于在确定时间一致补片时去除异常点的步骤。
30.图10b示出了根据一些实施方案的用于在确定时间一致补片时应用降噪滤波器的步骤。
31.图10c示出了根据一些实施方案的用于在确定时间一致补片时对点云在不同时刻的一个或多个版本进行重新采样的步骤。
32.图11示出了根据一些实施方案的用于压缩点云的位流结构。
33.图12a示出了根据一些实施方案的用于压缩点云的属性信息和空间信息的过程。
34.图12b示出了根据一些实施方案的用于解压缩点云的属性信息和空间信息的过
程。
35.图12c示出了根据一些实施方案的正被生成并打包到图像帧中以压缩点云的属性信息和空间信息的补片图像。
36.图12d示出了根据一些实施方案的正被生成并打包到图像帧中以压缩移动或改变的点云的属性信息和空间信息的补片图像。
37.图12e示出了根据一些实施方案的解码器,该解码器接收包括补片图像、补片信息和占用图的图像帧,并且生成点云的解压缩表示。
38.图13示出了根据一些实施方案的在3d应用中正在使用的压缩点云信息。
39.图14示出了根据一些实施方案的在虚拟现实应用中正在使用的压缩点云信息。
40.图15示出了根据一些实施方案的可实现编码器或解码器的示例性计算机系统。
41.本说明书包括参考“一个实施方案”或“实施方案”。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
[0042]“包括”,该术语是开放式的。如在所附权利要求书中所使用的,该术语不排除附加结构或步骤。考虑以下引用的权利要求:“一种包括一个或多个处理器单元...的装置”此类权利要求不排除该装置包括附加部件(例如,网络接口单元、图形电路等)。
[0043]“被配置为”,各种单元、电路或其他部件可被描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件据称可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件,例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引35u.s.c.
§
112(f)。此外,“被配置为”可包括由软件和/或固件(例如,fpga或执行软件的通用处理器)操纵的通用结构(例如,通用电路)以能够执行待解决的一项或多项任务的方式操作。“被配置为”还可包括调整制造过程(例如,半导体制作设施),以制造适用于实现或执行一项或多项任务的设备(例如,集成电路)。
[0044]“第一”“第二”等。如本文所用,这些术语充当它们所在之前的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,缓冲电路在本文中可被描述为执行“第一”值和“第二”值的写入操作。术语“第一”和“第二”未必暗指第一值必须在第二值之前被写入。
[0045]“基于”。如本文所用,该术语用于描述影响确定的一个或多个因素。该术语不排除影响确定的附加因素。即,确定可仅基于这些因素或至少部分地基于这些因素。考虑短语“基于b来确定a”。在这种情况下,b为影响a的确定的因素,此类短语不排除a的确定也可基于c。在其他实例中,可仅基于b来确定a。
具体实施方式
[0046]
随着数据采集和显示技术变得更加先进,增强了(诸如经由lidar系统)捕获包括2d或3d空间中成千上万个点的点云的能力。而且,先进显示技术(诸如虚拟现实或增强现实系统)的发展增加了点云的潜在用途。然而,点云文件通常非常大,并且存储和传输这些点
云文件可能成本高且耗时。例如,点云通过私有网络或公共网络(诸如互联网)的通信可能需要相当大量的时间和/或网络资源,使得点云数据的一些使用(诸如实时使用)可能受到限制。另外,点云文件的存储要求可能消耗存储点云文件的设备的显著量的存储容量,这也可能限制潜在应用使用点云数据。
[0047]
在一些实施方案中,编码器可用于生成压缩点云以降低与存储和传输大的点云文件相关联的成本和时间。在一些实施方案中,一种系统可包括编码器,该编码器压缩点云文件的属性信息和/或空间信息,使得点云文件可比非压缩点云更快地被存储和传输,并且以点云文件可比非压缩点云占用更少的存储空间的方式被存储和传输。在一些实施方案中,对点云中点的属性的压缩可能够实时地或几乎实时地通过网络传送。例如,一种系统可包括传感器,该传感器捕获关于传感器所在的环境中的点的属性信息,其中所捕获的点和对应属性构成了点云。该系统还可包括压缩所捕获的点云的属性信息的编码器。点云的压缩属性信息可通过网络实时或几乎实时地发送到对点云的压缩属性信息进行解压缩的解码器解码器。该解压缩点云可被进一步处理,例如以基于传感器位置处的周围环境做出控制决策。然后可将控制决策传送回传感器位置处或其附近的设备,其中接收控制决策的设备实时地或几乎实时地实现控制决策。在一些实施方案中,解码器可以与增强现实系统相关联,并且解压缩属性信息可以由增强现实系统显示或以其他方式使用。在一些实施方案中,可将关于点云的压缩属性信息与关于点云的点的压缩空间信息一起发送。在其他实施方案中,空间信息和属性信息可以被分别编码和/或分别发送到解码器。
[0048]
在一些实施方案中,一种系统可包括解码器,该解码器经由网络从远程服务器或存储一个或多个点云文件的其他存储设备接收包括压缩属性信息的一个或多个点云数据集合。例如,可实时地或几乎实时地操纵3d显示器、全息显示器或头戴式显示器来显示由点云表示的虚拟世界的不同部分。为了更新3d显示器、全息显示器或头戴式显示器,一种与解码器相关联的系统可以基于显示器的用户操纵从远程服务器请求点云数据,并且这些点云数据可以从远程服务器传输到解码器并由解码器实时地或几乎实时地进行解码。然后可用响应于用户操纵的更新点云数据(诸如更新的点属性)来更新显示器。
[0049]
在一些实施方案中,一种系统可包括一个或多个lidar系统、3d相机、3d扫描仪等,并且此类传感器设备可捕获空间信息,诸如传感器设备的视图中的点的x、y和z坐标。在一些实施方案中,空间信息可相对于局部坐标系或可相对于全局坐标系(例如,笛卡尔坐标系可具有固定参考点诸如地球上的固定点,或者可具有不固定的局部参考点诸如传感器位置)。
[0050]
在一些实施方案中,此类传感器还可以捕获一个或多个点的属性信息,诸如颜色属性、纹理属性、反射率属性、速度属性、加速度属性、时间属性、模态和/或各种其他属性。在一些实施方案中,除了lidar系统、3d相机、3d扫描仪等之外,其他传感器可以捕获待包括在点云中的属性信息。例如,在一些实施方案中,陀螺仪或加速度计可以捕获待包括在点云中的运动信息作为与该点云的一个或多个点相关联的属性。例如,配备有lidar系统、3d相机或3d扫描仪的车辆可能会在由lidar系统、3d相机或3d扫描仪捕获的点云中包括车辆的方向和速率。例如,当捕获到车辆视野中的点时,这些点可以被包括在点云中,其中该点云包括捕获到的点以及与捕获到点时车辆的状态对应的相关联的运动信息。
[0051]
示例系统布置
[0052]
图1示出了根据一些实施方案的系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的属性信息的编码器,其中压缩属性信息被发送到解码器。
[0053]
系统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)可以包括在公共压缩点云中,该公共压缩点云还包括关于该点云的点的压缩空间信息,或者在一些实施方案中,压缩空间信息和压缩属性信息可以作为单独的数据集合进行传送。
[0054]
在一些实施方案中,编码器104可与传感器102成一体。例如,编码器104可在包括在传感器设备(诸如传感器102)中的硬件或软件中实现。在其他实施方案中,编码器104可在邻近传感器102的独立计算设备上实现。
[0055]
示例性3d帧内编码器
[0056]
图2a示出了根据一些实施方案的用于对3d点云帧进行帧内编码的编码器的部件。在一些实施方案中,以上关于图1描述的编码器可以与图2a中描述的编码器200和图2c中描述的编码器250相似的方式操作。
[0057]
编码器200接收未压缩点云202并且生成压缩点云信息204。在一些实施方案中,编码器(诸如编码器200)可以从传感器(诸如图1所示的传感器102)接收未压缩点云202,或者在一些实施方案中,例如,可以从另一个源(诸如在软件中生成未压缩点云的图形生成部件)接收未压缩点云202。
[0058]
在一些实施方案中,编码器(诸如编码器200)包括分解成补片模块206、打包模块208、空间图像生成模块210、纹理图像生成模块212和属性信息生成模块214。在一些实施方案中,编码器(诸如编码器200)还包括图像帧填充模块216、视频压缩模块218和复用器224。另外,在一些实施方案中,编码器(诸如编码器200)可包括占用图压缩模块(诸如占用图压缩模块220)和辅助补片信息压缩模块(诸如辅助补片信息压缩模块222)。在一些实施方案中,编码器(诸如编码器200)将3d点云转换为基于图像的表示以及将压缩点云转换回解压缩点云所需的一些元数据(例如,占用图和补片信息)。
[0059]
在一些实施方案中,转换过程将点云分解成补片集合(例如,补片被定义为由点云描述的表面的连续子集),这些补片可重叠或不重叠,使得每个补片可通过相对于2d空间中的平面的深度场来描述。上面关于图3a至图3c提供了关于补片分解过程的更多细节。
[0060]
在确定关于正被压缩的点云的补片之后或结合这些补片,在与这些补片相关联的平面中执行2d采样过程。可以应用2d采样过程以便用均匀采样的点云来近似每个补片,该点云可以被存储为描述点云在补片位置处的几何/纹理/属性的2d补片图像集合。“打包”模块208可将与补片相关联的2d补片图像存储在单个(或多个)2d图像中,这些图像在本文中称为“图像帧”或“视频图像帧”。在一些实施方案中,打包模块(诸如打包模块208)可将2d补
片图像打包,使得打包的2d补片图像不重叠(即使一个补片图像的外边界框可能与另一个补片图像的外边界框重叠)。另外,打包模块可以使图像帧的未使用图像像素最小化的方式来将2d补片图像打包。
[0061]
在一些实施方案中,“几何/纹理/属性生成”模块(诸如模块210、212和214)分别生成与点云在给定补片位置处的几何/纹理/属性相关联的2d补片图像。如前所述,打包过程(诸如由打包模块208执行的过程)可以在图像帧中所打包的2d补片图像之间留下一些空白空间。另外,填充模块(诸如图像帧填充模块216)可以填满此类面积,以便生成可适合于2d视频和图像编解码器的图像帧。
[0062]
在一些实施方案中,可例如由占用图压缩模块220来生成和压缩占用图(例如,对于每个像素或像素块,描述是否填充该像素或像素块的二进制信息)。可将占用图发送到解码器以使解码器能够区分图像帧的填充像素与未填充像素。
[0063]
需注意,与补片相关联的其他元数据也可被发送到解码器以用于解压缩过程。例如,可由辅助补片信息压缩模块(诸如辅助补片信息压缩模块222)来生成指示为点云确定并打包在图像帧中的补片的大小和形状的补片信息并且/或者对该补片信息进行编码。在一些实施方案中,一个或多个图像帧可由视频编码器(诸如视频压缩模块218)编码。在一些实施方案中,视频编码器(诸如视频压缩模块218)可根据高效视频编码(hevc)标准或其他合适的视频编码标准来操作。在一些实施方案中,编码视频图像、编码占用图信息和编码辅助补片信息可以由复用器(诸如复用器224)复用,并且作为压缩点云信息(诸如压缩点云信息204)提供给接收方。
[0064]
在一些实施方案中,占用图可由视频压缩模块(诸如视频压缩模块218)进行编码和解码。这可以在编码器(诸如编码器200)处完成,使得编码器具有当占用图由解码器解码时占用图的准确表示。另外,在确定关于图像帧的占用图时,可以由占用图压缩模块(诸如占用图压缩模块220)来解决由于有损压缩和解压缩导致的图像帧的变化。
[0065]
示例性3d帧内解码器
[0066]
图2b示出了根据一些实施方案的用于对点云帧进行解码的解码器的部件。解码器230接收压缩点云信息204,该压缩点云信息可以与由编码器200生成的压缩点云信息204相同。解码器230基于接收到压缩点云信息204来生成重构点云246。
[0067]
在一些实施方案中,解码器(诸如解码器230)包括解复用器232、视频解压缩模块234、占用图解压缩模块236和辅助补片信息解压缩模块238。另外,解码器(诸如解码器230)包括点云生成模块240,该点云生成模块基于在包括在所接收的压缩点云信息(诸如,压缩点云信息204)中包括的一个或多个图像帧中的补片图像来重构点云。在一些实施方案中,解码器(诸如解码器203)还包括平滑滤波器(诸如平滑滤波器244)。在一些实施方案中,平滑滤波器可将关于补片边缘处的不一致平滑,其中点云生成模块已经使用了包括在补片的补片图像中的数据来从关于补片的补片图像重建点云。在一些实施方案中,可以将平滑滤波器应用于位于补片边界上的像素,以减轻可能由压缩/解压缩过程引起的失真。
[0068]
示例性3d帧间编码器
[0069]
图2c示出了根据一些实施方案的用于对3d点云帧进行帧间编码的编码器的部件。3d点云间编码器(诸如点云间编码器250)可以对点云在特定时刻(例如,图像帧)的3d版本进行编码,同时考虑点云在作为参考帧的其他时刻(例如,其他图像帧)的一个或多个先前
编码/解码的版本。
[0070]
在一些实施方案中,编码器(诸如编码器250)包括点云重新采样模块252、3d运动补偿和δ矢量预测模块254、空间图像生成模块256、纹理图像生成模块258和属性图像生成模块260。在一些实施方案中,编码器(诸如编码器250)还可以包括图像填充模块262和视频压缩模块264。编码器(诸如编码器250)可以生成压缩点云信息(诸如压缩点云信息266)。在一些实施方案中,压缩点云信息可以是由编码器先前编码的参考点云信息,诸如来自一个或多个参考图像帧或从一个或多个参考图像帧导出的信息。这样,用于点云帧间的编码器(诸如编码器250)可以通过不重复包括在参考图像帧中的信息,而是传达参考帧与点云的当前状态之间的差值来生成更紧凑的压缩点云信息。
[0071]
在一些实施方案中,编码器(诸如编码器250)可以与点云帧内编码器(诸如编码器200)组合或共享模块。在一些实施方案中,点云重新采样模块(诸如点云重新采样模块252)可以对输入点云图像帧中的点进行重新采样,以便确定当前图像帧的补片中的点与关于点云的参考图像帧的补片中的点之间的一对一映射。在一些实施方案中,3d运动补偿和δ矢量预测模块(诸如3d运动补偿和δ矢量预测模块254)可将时间预测应用于补片的重新采样点的几何/纹理/属性。预测残差可以被存储到图像中,然后可通过使用视频/图像编解码器对图像进行填充和压缩。对于补片的点在参考帧与当前帧之间的空间改变,3d运动补偿和δ矢量预测模块254可以为点云的点或片段中每一者确定相应的矢量,其中这些相应的矢量指示这些点或片段如何从参考帧移动到目标帧(例如当前帧)。然后3d运动补偿和δ矢量预测模块254可以使用不同的图像参数来对运动矢量进行编码。例如,点在x方向上的改变可以由在包括该点的补片图像中的该点处包括的红色的量来表示。以类似的方式,点在y方向上的改变可以由在包括该点的补片图像中的该点处包括的蓝色的量来表示。另外,以类似的方式,点在z方向上的改变可以由在包括该点的补片图像中的该点处包括的绿色的量来表示。在一些实施方案中,可调整包括在补片图像中的图像的其他特性,以指示包括在补片中的点在关于补片的参考帧与关于补片的当前帧之间的运动。
[0072]
示例性3d帧间解码器
[0073]
图2d示出了根据一些实施方案的用于对云帧进行解码的解码器的部件。在一些实施方案中,解码器(诸如解码器280)包括视频解压缩模块270、逆3d运动补偿和逆δ预测模块272、点云生成模块274和平滑滤波器276。在一些实施方案中,解码器(诸如解码器280)可以与解码器(诸如解码器230)组合,或者可与解码器共享一些部件,诸如视频解压缩模块和/或平滑滤波器。在解码器280中,首先对视频/图像流进行解码,然后可以应用逆运动补偿和δ预测程序。然后使用所获得的图像来重构点云,可以如前所述对该点云进行平滑以生成重构点云282。
[0074]
分割过程
[0075]
图3a示出了根据一些实施方案的用于为点云确定补片的示例性分割过程。可以通过分解成补片模块(诸如分解成补片模块206)来执行如图3a中所描述的分割过程。分割过程可以将点云分解为最小数量的补片(例如,由点云描述的表面的连续子集),同时确保相应的补片可以由相对于补片平面的深度场表示。这可以在不明显损失形状信息的情况下完成。
[0076]
在一些实施方案中,分割过程包括:
[0077]
ο假设点云pc是待划分为补片的输入点云,并且{p(0),p(1)

,p(n-1)}是点云pc的点的位置。
[0078]
ο在一些实施方案中,预定义了k个3d取向的固定集合d={d(0),d(1),

,d(k-1)}。例如,d可以选择如下:d={(1.0,0.0,0.0),(0.0,1.0,0.0),(0.0,0.0,1.0),(-1.0,0.0,0.0),(0.0,-1.0,0.0),(0.0,0.0,-1.0)}
[0079]
ο在一些实施方案中,估计表面在每个点p(i)处的法向量。可以使用任何合适的算法来确定表面的法向量。例如,一种技术可包括获取p(i)的“n”个最近点的集合h,以及通过使用主成分分析技术将平面π(i)拟合到h(i)。p(i)的法线可以通过将法线取为π(i)来估计。需注意,“n”可以是用户定义的参数,或者也可以通过应用优化程序来找到。“n”也可以是固定的或自适应的。然后可以通过使用最小生成树方法来将法线值一致地取向。
[0080]
ο基于法线的分割:在302处,可通过将点云pc的点与使分数ο基于法线的分割:在302处,可通过将点云pc的点与使分数最大化的方向d(k)相关联来获得相应点的初始分割s0,其中《.

.》是r3的规范点积。伪代码如下提供。
[0081][0082]
ο迭代分割细化:在302处,可以执行迭代分段细化过程。需注意,分割s0将相应点与最能保留其邻域(例如该片段的邻域)的几何的平面π(i)相关联。在一些情况下,分割s0可能会生成太多具有不规则边界的小连接成分,这可能会导致压缩性能不佳。为了避免此类问题,可应用以下迭代分割细化程序:
[0083]
1.可以通过将顶点v(i)与点云pc的相应点p(i)相关联并且添加将顶点v(i)连接到其最近邻居{v(j(0)),v(j(1)),

,v(j(r-1))}的r条边线{e(i,j(0)),

,e(i,j(r-1)}来构建邻接图a。更精确地,{v(j(0)),v(j(1)),

,v(j(r-1))}可以是与点{p(j(0)),p(j(1)),

,p(j(r-1))}相关联的顶点,这些点可以是p(i)的最近邻居。需注意,“r”可以是用户定义的参数,或者也可以通过应用优化程序来找到。该参数也可以是固定的或自适应的。
[0084]
2.在每次迭代中,可以遍历点云pc的点,并且每个顶点都可以与使最大化的方向d(k)相关联,其中|ζ(i)|是v(i)的r个最近邻居中的属于同一集群的数量,并且λ是控制生成的补片的规则性的参数。需注意,参数λ和r可以由用户定义或者可以通过应用优化程序来确定。这两个参数也可以是固定的或自适应的。在一些实施方案中,本文所指的“用户”可以是为一个或多个应用配置了本文所描述的点云压缩技术的工程师。
[0085]
3.伪代码的示例如下提供
[0086][0087][0088]
*在一些实施方案中,上文所示的伪代码还可包括提前终止步骤。例如,如果达到了特定值的分数,或者如果达到的分数与最佳分数之间的差值仅改变了某个量或更小量,则搜索可能会提前终止。另外,如果在一定数量的迭代(l=m)之后,集群索引(clusterindex)不变,则搜索可能会终止。
[0089]
ο补片分割:在一些实施方案中,补片分割程序306还将在先前步骤中检测到的集群分割成补片,这些补片可用相对于投影平面的深度场来表示。根据一些实施方案,该方法如下进行:
[0090]
1.首先,构建具有r'数量的邻居的基于集群的邻接图,同时仅将属于同一集群的点视为邻居。需注意,r'可能不同于先前步骤中使用的邻居的数量r。
[0091]
2.接下来,提取基于集群的邻接图的不同连接成分。仅考虑点数大于参数α的连接成分。假设cc={cc(0),cc(1),

,cc(m-1)}是所提取的连接成分的集合。
[0092]
3.相应连接成分cc(m)继承其所属的集群的取向d(m)。然后,将cc(m)的点投影在以取向d(m)作为法向的投影平面上,同时更新深度图,该深度图为每个像素记录离投影平面最近的点的深度。
[0093]
4.然后,通过将深度图的相应更新像素与具有相同深度的3d点相关联来构建cc(m)的近似版本(表示为c’(m))。假设pc’为通过对重构的连接成分{cc’(0),cc’(1),

,cc’(m-1)}进行并集而获得的点云。
[0094]
5.需注意,投影重构过程可能是有损的,并且可能会遗漏一些点。为了检测此类点,可以检查点云pc的每个点p(i)以确保该点距pc’的点的距离小于参数δ。如果不是这种情况,则可以将p(i)标为遗漏点,并且将其添加到表示为mp的遗漏点集合中。
[0095]
6.然后将步骤2至5应用于遗漏点mp。重复该过程,直到mp为空或者cc为空。需注
意,参数δ和α可以由用户定义或者可以通过应用优化程序来确定。这两个参数也可以是固定的或自适应的。
[0096]
7.可以将滤波程序应用于所检测的补片,以便使其更适合于压缩。示例滤波程序可包括:
[0097]
a.基于补片的点的几何/纹理/属性的平滑滤波器(例如,中值滤波),该平滑滤波器同时考虑了空间和时间方面。
[0098]
b.丢弃小的并且隔离的补片。
[0099]
c.用户指导的滤波。
[0100]
d.其他合适的平滑滤波技术。
[0101]
打包
[0102]
在一些实施方案中,与补片相关联的深度图(在本文中也被称为“深度补片图像”或“几何补片图像”,诸如上述的那些)可以被打包到2d图像帧中。另外,属性补片图像和/或纹理补片图像可以被打包到2d图像帧中。例如,打包模块(诸如打包模块208)可以:将由空间图像生成模块(诸如空间图像生成模块210)生成的深度补片图像打包到2d图像帧中;将由纹理图像生成模块(诸如纹理图像生成模块212)生成的纹理补片图像打包到2d图像帧中;以及将由属性图像生成模块(诸如属性图像生成模块214)生成的属性补片图像打包到2d图像帧中。可以将图或补片图像打包,使得(a)t
×
t像素的非重叠块不包含来自两个不同补片的补片信息,并且使得(b)生成的图像帧的大小最小化。
[0103]
在一些实施方案中,打包包括以下步骤:
[0104]
a.将补片按高度然后按宽度进行排序。然后将补片按此次序一个接一个地插入图像帧(i)中。在每个步骤处,以光栅次序遍历图像帧(i)的像素,同时检查是否可以在上述两个条件(a)和(b)下插入当前补片。如果不可能,则(i)的高度加倍。
[0105]
b.重复该过程,直到插入所有补片为止。
[0106]
在一些实施方案中,上述打包过程可以应用于将补片的子集打包在一个图像帧或多个图像帧的多个图块内。这可以允许将基于根据渲染相机位置的可见性具有相似/接近取向的补片存储在同一图像帧/图块中,以实现依赖于视图的流和/或解码。这还可以允许并行编码/解码。
[0107]
在一些实施方案中,打包过程可以被认为是装箱问题,并且如上所述的首次适合递减策略可以应用于解决装箱问题。在其他实施方案中,可以在打包过程中应用其他方法,诸如修改的首次适合递减(mffd)策略。
[0108]
在一些实施方案中,如果使用时间预测(诸如关于帧间压缩编码器250所描述的),则除了空间预测/编码之外,还可以利用时间预测/编码来执行这样的优化。可以针对整个视频序列或按图片组(gop)进行这样的考虑。在后一种情况下,可以指定附加约束。例如,约束可以是图像帧的分辨率不应超过阈值量。在一些实施方案中,即使不使用时间预测,也可以施加附加的时间约束,例如使得对应于特定对象视图的补片移动的距离不超过先前实例的x个像素。
[0109]
图3b示出了根据一些实施方案的包括打包的补片图像和填充部分的示例性图像帧。图像帧300包括打包到图像帧300中的补片图像308,并且还包括在图像帧300的未由补片图像占用的空间中的填充310。在一些实施方案中,可以确定填充(诸如填充310),以便最
小化补片图像与填充之间的不一致。例如,在一些实施方案中,填充可以构造新像素块,这些新像素是补片图像边缘上的像素块的复制品或在某种程度上类似于补片图像边缘上的像素块。在一些实施方案中,因为图像和/或视频编码器可以基于相邻像素之间的差值进行编码,所以这样的方法可以减少对包括补片图像和填充的图像帧进行编码所需的字节数。
[0110]
在一些实施方案中,可以按照与打包期间使用的次序相同的次序来存储补片信息,这使得可以处理补片的重叠的2d边界框。因此,接收补片信息的解码器可以按照补片图像被打包到图像帧中的相同次序从图像帧中提取补片图像。另外,因为解码器知道该次序,所以解码器可以解析重叠的补片图像边界框。
[0111]
图4示出了根据一些实施方案的具有重叠补片的示例性图像帧402。例如图4示出了具有在区域408处重叠的重叠2d边界框404和406的两个补片(补片图像1和补片图像2)的示例性图像帧402。为了确定区域408中的t
×
t块属于哪个补片,可以考虑补片的次序。例如,t
×
t块404可属于最后一个编码的补片。这可能是因为在重叠补片的情况下,较晚放置的补片被放置为使得该补片与先前放置的补片重叠。通过了解放置次序,可以解决重叠边界框的区域与最新放置的补片在一起的问题。在一些实施方案中,对补片信息进行预测和编码(例如,利用熵/算术编码器)。另外,在一些实施方案中,补片的边界框大小u0、v0、du0和dv0被编码为t的倍数,其中t是填充阶段期间使用的块大小。
[0112]
图4还示出了图像帧402的块,其中这些块可以进一步分成子块。例如,块a1、b1、c1、a2等可以被划分为多个子块,并且在一些实施方案中,子块可以被进一步划分为更小的块。在一些实施方案中,编码器的视频压缩模块(诸如视频压缩模块218或视频压缩模块264)可以确定块是包括活动像素、非活动像素还是活动像素与非活动像素的混合。与预定用于对包括活动像素的块进行编码的资源的量相比,视频压缩模块可以预定更少的资源来压缩包括非活动像素的块。在一些实施方案中,活动像素可以是包括关于补片图像的数据的像素,并且非活动像素可以是包括填充的像素。在一些实施方案中,视频压缩模块可以细分包括活动像素和非活动像素两者的块,并且基于块的子块是包括活动像素还是非活动像素来预定资源。例如,块a1、b1、c1、a2可包括非活动像素。又如,块e3可包括活动像素,并且例如,块b6可包括活动像素和非活动像素的混合。
[0113]
用于时间一致补片的示例性分割过程
[0114]
在一些实施方案中,如上所述,编码器可以为点云独立地确定补片,其中独立于在其他时刻为点云确定的补片,而针对每个时刻确定补片。该方法可使补片分割过程更简单且计算量更少。然而,当使用此类方法时,对打包的图像进行编码的视频编码器可能无法利用视频编码器的视频编解码器的帧间预测效率。例如,通过对图像的块的运动矢量进行编码(相对于在参考时刻的参考帧,该图像的块位于在目标时刻的目标帧),视频编码器可以利用2d视频图像帧间预测过程来对相对于参考帧的后续图像帧中的数据进行编码。然而,当使用时间无关补片分割过程时,可以针对每个不同时刻生成不同补片(例如,具有不同大小和/或形状的补片)。此外,可以以不同的次序或位置将补片打包到相应图像帧中。该可变性可能阻碍视频编码器的2d视频图像帧间预测过程,并且可能导致大的运动矢量和相关联的位消耗,或者可能以其他方式降低视频编码器的压缩效率。
[0115]
在一些实施方案中,为了解决与时间无关补片分割相关联的各种问题,编码器可以另选地利用时间一致补片分割过程,该时间一致补片分割过程确保打包在图像帧的序列
中的补片是时间一致补片(例如,补片针对点云在不同时刻的不同版本具有相同的(或类似的)大小和形状)。时间一致补片可以进一步以时间一致的次序打包到图像帧中,使得时间一致补片被放置在图像帧的序列的相应图像帧中的一致位置。
[0116]
例如,图3b示出了放置在单个图像帧300中的补片图像308,其中图像帧300的一些部分填充有填充310,并且图像的其他部分填充有补片图像308。在此类实施方案中,编码器可以针对在不同时刻稍微修改的相同点云独立地为每个图像帧300确定补片。这可以使各种大小和形状的补片位于图像帧300中的不同图像帧中的各个位置。相比之下,实现时间一致补片的编码器可以确定时间一致补片并将时间一致补片打包到图像帧的序列的多个图像帧中的相同或类似的位置中,其中这些补片具有跨序列的图像帧的相同或类似的大小和形状。例如,如图6所示,时间一致补片可以以时间一致的次序进行打包,并且可以包括在图像帧的序列600中。图像帧的序列600可以包括相同(或类似)大小和形状的打包在相同(或类似)位置的补片图像。例如,填充604和时间一致补片(诸如时间一致补片601、602和603)可以位于序列600的每个图像帧中的相同(或类似)位置,并且可以在序列600的每个图像帧中具有相同(或类似)大小和形状。然而,补片的指示点云的几何信息或属性信息的像素值可以跨序列600的时间一致补片而变化,即使补片具有相同的大小和形状。如下面所更详细地讨论,如图3b中所示的补片302中的先前一个补片可以用多个较小的补片(诸如时间一致的补片601和603)进行替换。在一些情况下,使用多个较小的补片而不使用较大的补片可以允许跨多个时刻一致的补片。
[0117]
图5示出了根据一些实施方案的用于生成时间一致补片的示例性补片分割过程。
[0118]
在510处,编码器(诸如本文描述的编码器中任一编码器(例如,编码器200、250等))可以接收点云在多个时刻的版本集合,诸如示出点云在时间1、2和3的版本的集合562。然后,编码器可以执行步骤510至步骤560,以针对点云在多个时刻的版本生成时间一致补片。在一些实施方案中,这些步骤可以构成分解成补片过程,诸如编码器200的分解成补片过程206。
[0119]
为了生成时间一致补片,在510处,编码器可以确定运动函数,这些运动函数对点云的相应部分从点云在第一时刻的第一版本到点云在第二(或附加)时刻的第二(或附加)版本的相应运动进行建模。例如,可以确定运动函数以对点云的片段从时间1到时间2以及从时间2到时间3的运动进行建模。另外,在520处,编码器可以基于以下方法来确定跨多个时刻的点的映射:将运动函数应用于点云的参考版本以生成点云的运动补偿版本;以及然后对点云的运动补偿版本与点云在下一时刻的另一版本进行比较。例如,可以将运动函数应用到点云在时间1的版本以确定从时间1补偿的运动补偿版本。然后可以将该运动补偿版本与点云的时间2版本进行比较。
[0120]
在一些实施方案中,编码器可以覆盖或以其他方式比较点云从第一时刻补偿的运动补偿版本(例如,从时间1补偿的版本运动)和点云在下一时刻的版本(例如,在时间2的版本),以及识别点云的两个版本之间的最近匹配点。例如,最近邻居算法可以用于识别在时间2的版本中的最近点,该最近点与来自时间1的版本的运动补偿点最紧密地匹配。基于这些点的接近度,最近邻居算法可以确定来自时间1的运动补偿点实际上是与在时间2的版本中的识别出的最近邻近点的相同的点。该最近邻近点匹配过程可以用于确定跨时刻的相应点映射。类似的过程可以应用于点云在随后的时刻的后续版本。例如,类似的过程可以用于
将点从时间2的版本映射到时间3的版本,以此类推。在一些实施方案中,可以应用如上所述的单向映射(例如,可以将点从时间1映射到时间2以及从时间2映射到时间3)。在一些实施方案中,可应用双向映射。例如,可以在时间1与时间2之间映射点,使得点从时间1映射到时间2,并且也从时间2映射到时间1。在一些实施方案中,可以在时间2与时间3之间执行类似的双向映射。
[0121]
在一些实施方案中,可以使用分段运动补偿程序来为点云在时刻之间的片段确定运动函数。例如,集合562中所示的人可以被分割成片段,并且可以选择运动函数用于描述片段中每个片段的运动。在一些实施方案中,可以使用率失真优化(rdo)过程来确定待应用于点云的分割程度。例如,rdo过程可以针对失真的改进权衡与点云的进一步分割相关联的计算和编码成本,以确定点云将被分割的程度。
[0122]
另外,可以将不同的运动变换函数应用于点云的不同片段以对相应片段的运动进行建模。例如,在一些实施方案中,点云的一些片段可以以使用刚体运动模型(例如,平移和/或旋转)进行最佳建模的方式移动,而点云的其他部分可以使用仿射运动变换或弹性运动变换进行最佳建模。
[0123]
在一些实施方案中,刚体-运动变换可以对点云的进行平移或旋转但在移动时保持其形状的部分进行建模。在一些实施方案中,仿射运动变换可以对点云的进行收缩、扩张、膨胀、旋转、剪切、平移或它们的一些组合运动或经历类似仿射运动的部分进行建模。例如,可以使用仿射运动变换对人的腿在步行时进行建模,以捕捉肌肉的收缩和扩张以及人的脚、小腿、大腿等的平移和旋转。仿射运动变换可以对仿射空间之间的维持点、直线和平面的运动进行建模,其中平行线的集合在应用仿射运动变换后保持平行。仿射运动变换不一定会维持线之间的角度或点之间的距离(如刚体运动的情况),但可能会以其他方式维持直线上的点之间的距离的比率。在一些实施方案中,弹性运动变换可以对点云在某些连续性约束内变形的部分的运动进行建模。例如,当穿着连衣裙的人在某些连续性约束(诸如织物的弹性、织物如何折叠自身等)内行走时,该人可能会导致连衣裙的形状变形。
[0124]
在一些实施方案中,可以使用三维(3d)分割方法(诸如八叉树分割过程)来确定点云的待为其选择运动模型的部分。在一些实施方案中,可以从支持的运动函数集合中选择各种运动函数,以对点云的给定片段的运动进行最佳建模。例如,可以使用刚体运动变换函数来对一些片段的运动进行建模,该刚体运动变换函数考虑点云的片段在不同时刻的版本之间的平移和旋转。同时可以使用更复杂的运动函数(诸如仿射运动变换或弹性运动变换)来对其他片段进行建模。在一些实施方案中,可以同时(例如并行地)为点云的多个片段确定运动函数。
[0125]
例如,在集合562中,人正在移动其左臂,使得该左臂在肘部处弯曲。在此类情况下,编码器可以确定该臂需要被分割成前臂片段和肘部片段,因为涵盖肘部和前臂两者的较大片段不具有跨多个时刻的一致大小或形状。另外,前臂可以弯曲并通过仿射运动变换进行最佳建模,而肘部的运动可以通过刚体运动变换来进行最佳建模。在一些实施方案中,编码器可以迭代地测试运动变换以选择用于对点云的片段的运动进行建模的运动变换。例如,编码器可以首先使用刚体运动变换来对运动进行建模并计算失真的水平。如果失真大于阈值,则编码器可以随后使用更复杂的运动变换(诸如仿射运动变换或弹性运动变换)来对运动进行建模。如果失真提高超过阈值量,则编码器可以选择经由更复杂的运动变换来
对片段的运动进行建模。在一些实施方案中,可以使用各种其他运动变换。
[0126]
如上所述,在520处,编码器可以利用最近邻居搜索或其他合适的算法来将点云在一个时刻的运动补偿点匹配到点云在另一个时刻的点。在一些实施方案中,最近邻居匹配算法可以利用空间信息来映射匹配点。例如,该算法可以识别来自前一时刻的运动补偿版本中的点,这些点与点云的下一时刻版本中的匹配相应点具有最短欧几里得距离。在一些实施方案中,最近邻居匹配算法还可以考虑这些点在确定运动补偿版本与下一时刻版本之间的匹配点方面的属性。例如,该匹配算法可以识别运动补偿版本与下一时刻版本之间的匹配点,这些匹配点共享相同或紧密相关的属性值,诸如相同或类似的颜色。在一些实施方案中,点匹配算法可以同时考虑运动补偿点与下一时刻点之间的空间相似性,并且还考虑属性值(诸如相同或类似的颜色)相似性。另外,在一些实施方案中,可以同时考虑运动补偿版本和下一时刻版本中的点的集合的邻域特性。例如,如果照明的变化以类似方式改变邻近点的集合的属性值,则可以在确定运动补偿版本与下一时刻版本之间的匹配点时考虑属性值的该相关变化。
[0127]
在一些实施方案中,可使用点云的降低分辨率版本来执行用于确定时间一致补片的运动估计/建模和点映射。这可以减少待匹配的点的数量,并且因此降低计算复杂性。
[0128]
在530处,可以以与上面关于图3a和图3a的元素302所描述的类似方式执行基于法线的分割过程。然而,代替基于点云的单个版本的法向量对待包括在补片中的点的集合进行约束,可以将相同或类似的约束应用于跨点云在多个时刻的多个版本的点,其中在520处确定的映射用于将匹配点与各种版本相关联。例如,在时间一致补片分割过程中,为了有资格包括在给定补片中,点可能需要具有法向量,该法向量在时间1、时间2和时间3不偏离待包括在补片中的其他点的集合的法向量超过阈值量。因为点现在必须满足附加约束(例如,在多于一个时刻的约束),所以补片很可能会更小,因为更少的点将满足在序列的所有时刻处的约束。这可以通过对图3b和图6中所示的补片进行对比来看出,其中在图6中,来自图3b的与人的左臂相关联的补片被替换为两个不同的时间一致补片601和603,其中一个时间一致补片表示肘部,并且另一个时间一致补片表示前臂。
[0129]
图5中所示的集合564示出了点云的考虑多个时刻的初始分割。在550处,可以应用类似于关于图3a所描述的304的迭代分割细化程序。然而,该细化程序可以考虑点云在多个时刻(例如,时间1、时间2和时间3)的多个版本,以生成具有细化片段的点云版本的序列566。
[0130]
在560处,可以执行最终分割以针对序列568的点云版本生成时间一致补片。例如,可以应用如上面在图3a的306处描述的类似过程。另外,可以应用如上所述的类似打包过程以将最终补片打包到针对不同时刻的相应图像帧中。除了关于时间一致补片,点云在序列的不同时刻的版本中的每个版本的最终补片可以打包到序列在相应图像帧中相同或类似位置处的不同相应图像帧中。另外,如上所述,即使补片尺寸、形状和位置跨不同的图像帧是时间一致的,包括在时间一致补片中的点可以在对应于点云在不同时刻的不同版本的不同的图像帧中具有不同属性值。
[0131]
图6示出了根据一些实施方案的包括时间一致补片的图像帧的示例性序列。
[0132]
如上所述,序列600的图像帧的补片在大小、形状和位置上可以是一致的,即使包括在补片中的点的属性值(或几何补片的深度值)可以改变。另外,在一些实施方案中,可以
生成单个占用图并针对序列用信号发送该单个占用图。例如,单个占用图可以对应于图像帧的序列中具有时间一致补片的多个图像帧。例如,可以针对包括在序列600中的图像帧用信号发送单个占用图。在一些实施方案中,可以在序列标头中用信号发送占用图与帧序列关系(例如,那些图像帧对应哪个占用图),诸如可以包括在pccnal单元中,如下面关于图11所更详细描述。
[0133]
图7示出了根据一些实施方案的点云在不同时刻的版本的示例,这些点云的版本具有不同数量的点和在不同时刻的这些点之间的映射。
[0134]
在一些实施方案中,点云在第一时刻的版本可以包括比点云在另一时刻的另一版本更多或更少的点。例如,图7中所示的参考帧700包括比目标帧750更多的点。在此类情况下,点映射过程可以将点云的特定版本中的多于一个点映射到点云的后续或先前版本中的单个点。例如,点702和704均映射到点752。另外,点706和708均映射到点754。在一些实施方案中,另选地或除此之外,编码器可以对点云的一个或多个版本进行重新采样,使得不同版本具有相同数量的点或在点计数差异上更小。
[0135]
图8示出了根据一些实施方案的用于确定时间一致补片的过程。
[0136]
在802处,编码器或编码器的分解成补片模块接收或选择针对其待生成时间一致补片的点云在不同时刻的版本的序列。
[0137]
在804处,确定对点云的片段跨多个时刻的运动进行建模的运动函数。例如,可以将点云分割成八叉树的卦限,并且可以为每个最低水平卦限确定运动函数。在一些实施方案中,各种运动变换/函数可以用于对卦限的刚体运动变换、仿射运动变换、弹性运动变换等运动进行建模。在一些实施方案中,可以使用率失真优化或类似过程来选择点云待分割到的程度,例如是否将最低水平卦限分割为甚至更小的卦限。还可以使用率失真优化来选择待应用于最低水平卦限的运动变换函数。在一些实施方案中,单个rdo(率失真优化)过程可以考虑片段大小选择和片段运动变换函数选择两者。
[0138]
在806处,可以使用确定的运动函数/运动变换来确定点云的被包括在点云在不同时刻的不同版本中的点之间的映射。例如,可以使用如上所述的最近邻居匹配过程。
[0139]
在808处,确定时间一致补片将分割约束应用到跨多个时刻的映射点。
[0140]
在810处,将时间一致补片打包到序列的图像帧的集合中,其中时间一致补片打包到序列的图像帧的集合中的时间一致位置中。
[0141]
图9示出了根据一些实施方案的用于为运动估计确定片段大小的过程。
[0142]
在902处,将针对其待确定时间一致补片的点云分割成多个片段。例如,点云可以分割成八叉树的第一水平的卦限。
[0143]
在904处,选择运动函数/运动变换以对点云的片段中的每个片段从参考帧(例如,参考时刻)到目标帧(例如,目标时刻)的运动进行建模。
[0144]
在906处,与在目标时刻的点云相比,针对片段中每个片段计算失真测量以确定点云的当运动函数应用到确定的片段时的失真。在一些实施方案中,失真测量可以是用于点云的总失真测量,该总失真测量对失真的量进行测量,该失真的量通过对点云的运动补偿参考帧版本与点云的目标帧版本进行比较而引入。在一些实施方案中,可以在片段水平确定/计算失真。
[0145]
在908处,确定计算出的失真是否大于失真阈值和/或率失真优化分析是否建议进
一步分割。如果是,则在910处,对点云的超过失真阈值或针对其保证了rdo指示的进一步分割的片段进行进一步分割。例如,点云的卦限可以进一步分割成八个较低水平卦限。然后通过步骤904和906处理进一步分割的片段中的每个片段,直到满足908的失真阈值为止。在一些实施方案中,点云的不同片段可以被分割成比点云的其他片段更小的片段。例如,阈值或rdo过程可以指示保证了一些片段的进一步分割,而对于其他片段没有保证进一步分割。
[0146]
在912处,将确定的运动函数应用到点云在参考帧处的确定的片段,以生成参考帧点云的运动补偿版本。
[0147]
在914处,使用最近邻居映射技术将参考帧的运动补偿片段的点映射到目标帧中的点。最近邻居匹配技术将参考帧的运动补偿版本的点映射到目标帧中具有运动补偿点与目标帧点之间的最短欧几里得距离的最近邻近点。另外,在一些实施方案中,还可以考虑点的属性值以在参考帧与目标帧之间映射点。
[0148]
在916处,将具有跨点云在不同时刻的多个映射版本彼此不偏离的法向量的点分组在一起以形成补片。可以如本文所述进一步细化补片以确定补片的最终集合。
[0149]
图10a示出了根据一些实施方案的用于在确定时间一致补片时去除异常点的步骤。
[0150]
在一些实施方案中,在确定时间一致补片时,可以从考虑因素中去除具有跨序列的多个时刻的运动的异常点,该运动因周围点的运动而变化超过阈值变化量。例如,在一些实施方案中,在步骤804与步骤806之间,可以在1002处识别异常点,并且可以在1004处确定时间一致补片时从考虑因素中去除识别出的异常点。
[0151]
图10b示出了根据一些实施方案的用于在确定时间一致补片时应用降噪滤波器的步骤。
[0152]
在一些实施方案中,降噪滤波器可以应用到步骤802与步骤804之间的点云。例如,在1006处,将降噪滤波器应用到序列的点云版本。
[0153]
图10c示出了根据一些实施方案的用于在确定时间一致补片时对点云在不同时刻的一个或多个版本进行重新采样的步骤。
[0154]
在一些实施方案中,可以将点的重新采样应用到步骤802与步骤804之间的点云。例如,在1008处,点云的包括在序列中的多个版本中的一个或多个版本被重新采样。重新采样可以使得点云在序列中的不同版本具有相同数量的点或具有甚至更接近数量的点。
[0155]
填充
[0156]
在一些实施方案中,可以执行填充以用值填满未占用的像素,使得所得图像适合于视频/图像压缩。例如,图像帧填充模块216或图像填充模块262可以如下所述执行填充。
[0157]
在一些实施方案中,在有利于现有视频编解码器所使用的帧内预测模式的同时,在像素块上应用填充。更精确地,对于待填充的大小为b
×
b的每个块,评估在视频编码器侧可用的帧内预测模式,并且保留在占用像素上产生最低预测误差的帧内预测模式。这可以利用以下事实:视频/图像编解码器通常在具有预定义大小(例如64
×
64、32
×
32、16
×
16

)的像素块上操作。在一些实施方案中,其他填充技术可包括线性外推、绘画中修复技术或其他合适的技术。
[0158]
视频压缩
[0159]
在一些实施方案中,视频压缩模块(诸如视频压缩模块218或视频压缩模块264)可
以如下所述执行视频压缩。
[0160]
在一些实施方案中,视频编码器可以利用占用图,该占用图为图像的每个像素描述该像素是存储属于点云还是填充像素的信息。在一些实施方案中,此类信息可以允许自适应地启用各种特征,诸如去块效应、自适应环路滤波(alf)或形状自适应偏移(sao)滤波。另外,此类信息可以允许速率控制模块适应包含占用图边缘的块并为这些块分配不同的(例如较低的)量化参数(qp),并且该量化参数本质上是不同数量的位。还可以根据点云投影块的特性来调整编码参数,诸如拉格朗日乘数、量化阈值化、量化矩阵等。在一些实施方案中,此类信息还可以使速率失真优化(rdo)和速率控制/分配能够利用占用图来考虑基于未填充像素的失真。在更一般的形式中,失真的加权可以基于每个像素对点云几何的“重要性”。重要性可以基于多个方面,例如,基于与其他点云样本的接近度、样本的方向性/取向/位置等。例如,面向前方的样本在失真计算中可具有比面向后方的样本更高的权重。可以使用度量诸如均方或绝对误差来计算失真,但是也可以考虑不同的失真度量,诸如ssim、vqm、vdp、hausdorff距离等。
[0161]
另外,在一些实施方案中,如本文所述的此类编码器和解码器或其他编码器和解码器可以适用于其他视觉体积内容,包括网格、三自由度加(3dof )场景或另选地在一些上下文中称为mpeg miv材料、光场或其他类型的六自由度(6dof)内容。
[0162]
用于压缩点云数据的示例性位流结构
[0163]
在一些实施方案中,图像帧中的补片图像的关系信息可被包括在压缩点云的位流中或从其导出。例如,图11示出了根据一些实施方案的用于压缩点云的位流结构。在一些实施方案中,位流结构可以包括流标头和多组帧流。在一些实施方案中,每组帧流可以包括一组帧的标头以及一组帧的几何图像帧、纹理/属性图像帧和辅助信息/占用图。在一些实施方案中,可以使用时间一致补片,使得占用图适用于描述在多个时刻(例如,3d点云帧)的点云的多个几何/属性/纹理图像帧。在一些实施方案中,一组帧的标头和/或流的标头可以指示哪个占用图适用于由几何和属性/纹理2d图像帧表示的哪个3d点云帧集合。
[0164]
在一些实施方案中,辅助信息可包括补片图像的关系信息。另外,在一些实施方案中,占用图可包括图像帧的补片的关系信息。例如,占用图可指示图像帧的哪些部分被占用或未占用。另外,辅助信息可指示图像帧的哪些块对应于哪些补片。该信息可用于确定图像帧的对应于相同补片的部分。另外,几何信息(例如,深度补片图像)中所包括的深度信息可用于识别在点云中具有共同深度的点的图像帧的部分。另外,纹理视频流中所包括的属性/纹理信息可用于识别图像帧中具有类似纹理或属性值的补片。
[0165]
压缩和解压缩点云的示例方法
[0166]
图12a示出了根据一些实施方案的用于压缩点云的属性信息和空间信息的过程。
[0167]
在1202处,点云由编码器接收。点云可以例如由一个或多个传感器捕获,或者可以例如在软件中生成。
[0168]
在1204处,使用本文所述的任何技术或使用本文所述的技术的一个或多个组合来确定压缩的点云信息。
[0169]
在1206处,使用在1204处确定的压缩的点云信息对压缩的点云进行编码。可以使用本文所述的任何技术压缩点云。
[0170]
图12b示出了根据一些实施方案的用于解压缩点云的属性信息和空间信息的过
程。
[0171]
在1203处,接收已编码点云。可能已经使用本文所述的任何编码技术对该点云进行了编码,该点云诸如为打包到图像帧中然后由视频编码器编码的补片图像。在一些实施方案中,已编码点云可包括点云投影,诸如投影到立方体、圆柱体、球体等,然后经由视频编码器对其进行编码。
[0172]
在1205处,确定用于已编码点云的空间和属性信息。例如,视频解码器可用于对视频编码的打包图像或投影进行解码。然后可基于打包图像或投影来确定空间信息,并且将空间信息组合以确定用于点云的点的空间信息。例如,用于补片的点的深度信息可与用于补片的点的x和y信息匹配,以确定补片的点在3d空间中的空间信息。以类似的方式,被包括在补片图像中的其他属性(诸如,颜色属性、纹理属性等)可与对应的点匹配以确定用于该点的属性值。另外,在多个投影的情况下,可以在多于一个的投影中识别相同的点以确定该点在3d空间中的空间信息。
[0173]
在1207处,可将解压缩的点云提供给接收方设备或模块。
[0174]
图12c示出了根据一些实施方案的正被生成并打包到图像帧中以压缩点云的属性信息和空间信息的补片图像。
[0175]
在1210处,为点云的部分确定补片。例如,可如上所述确定补片。在1225处,可生成用于补片的补片信息,并且在1226处,可对该补片信息进行编码以将其发送至解码器。在一些实施方案中,编码的补片信息可与包括打包的补片图像的一个或多个图像帧分开编码。
[0176]
在1211处,第一补片(或选择下一个补片)。在1212处,为被包括在补片中的点云的点生成颜色(例如,属性)补片图像。在1214处,为被包括在补片中的点云的点生成一个或多个附加属性图像,诸如纹理属性图像。
[0177]
在1213处,为被包括在补片中的点云的点生成空间信息图像。在一些实施方案中,为了生成空间信息图像,在1215处,点云的点被投影到补片平面上,该补片平面垂直于在补片位置处与点云的表面正交的法向量。在1217处,基于在1215处点正被投影到补片平面上来为补片生成第一空间图像。另外,在1216处,确定补片的点相对于补片平面的深度信息,并且在1218处,基于在1216处确定的深度信息来生成深度补片图像。
[0178]
在1219处,确定是否存在待为其生成补片图像的附加补片。如果是,则对于下一个补片,该过程返回到1211。如果不是,则在1220处,将用于补片的补片图像打包到一个或多个图像帧中。在一些实施方案中,可在确定用于其他补片的补片图像之前打包用于相应补片的补片图像。在1221处,基于在将补片图像打包到一个或多个图像帧中时放置该补片图像的位置来生成占用图。在1224处,对占用图进行编码。如上所述,在一些实施方案中,占用图可使用算术编码器、熵编码器等来进行编码。另外,在一些实施方案中,占用图可使用视频编码器来进行编码,其中占用图被组织为附加图像帧,该附加图像帧与补片图像帧对应并且表示补片图像帧的被补片图像占用的部分(例如,占用像素)以及补片图像帧的被填充的部分(例如,未占用像素)。
[0179]
在1222处,填充一个或多个图像帧中未被补片图像占用的空间。在一些实施方案中,可在1222处填充补片图像帧之前或之后生成用于补片图像帧的占用图。
[0180]
在1223处,该一个或多个图像帧是诸如根据高效视频编码(hevc)标准来视频编码的。在其中占用图由占用图视频图像帧表示的一些实施方案中,占用图视频图像帧可在
1223处进行视频编码。
[0181]
图12d示出了根据一些实施方案的正被生成并打包到图像帧中以压缩移动或改变的点云的属性信息和空间信息的补片图像。
[0182]
在1230处,接收用于先前已编码的点云的点云信息,其中点云信息表示先前已编码的点云的后续版本。例如,该后续版本可以是点云在后续时刻处的表示,其中点云随着时间的推移而移动或改变。
[0183]
在1231处,确定是否需要为点云确定任何新补片。例如,当前不在先前已编码的点云中的对象可能已被添加到点云中。例如,点云可以是道路的点云,并且球可能已经进入该道路。如果需要添加新补片,则在1233处,更新占用图以包括新补片,并且在1234处,对该占用图进行编码。另外,在1232处,以与1212至1214中所述的方式类似的方式为新补片生成补片图像。生成的补片图像被包括在1243处的打包中。
[0184]
在1235处,选择为参考(先前)点云生成的补片中的第一或下一个补片。在1236处,如本文所述对补片的点进行重新采样。在1237处,确定用于被包括在参考点云与当前点云之间的选定补片中的点的运动矢量。在1240处,使用运动矢量来生成相对运动补片图像。例如,在一些实施方案中,生成相对运动补片图像可包括在1241处使用不同的图像特性在不同的方向上编码矢量运动,如本文所述。在1238处,生成更新的颜色补片图像。在一些实施方案中,更新的颜色补片图像可编码残差值,该残差值指示被包括在参考点云与当前点云之间的补片中的点云的点的颜色的差异。以类似的方式,在1239处,可生成其他属性更新补片图像。
[0185]
在1242处,确定是否存在待评估的附加补片。如果是,则对于下一个补片,该过程返回到1235。如果不是,则在1243处,将用于补片的补片图像打包到一个或多个图像帧中。在一些实施方案中,可在确定用于其他补片的补片图像之前打包用于相应补片的补片图像。
[0186]
在1244处,填充一个或多个图像帧中未被补片图像占用的空间。
[0187]
在1245处,该一个或多个图像帧是诸如根据高效视频编码(hevc)标准来视频编码的。
[0188]
图12e示出了根据一些实施方案的解码器,该解码器接收包括补片图像、补片信息和占用图的图像帧,并且生成点云的解压缩表示。
[0189]
在1250处,由解码器接收占用图,在1251处,由解码器接收补片信息。在一些实施方案中,可对占用图和补片信息进行编码,并且解码器可对占用图和补片信息(未示出)进行解码。在1252处,解码器接收一个或多个已编码视频图像帧。在1252处,解码器识别一个或多个已编码视频图像帧中的补片图像,并且在1254处,解码器对已编码视频图像帧进行解码。在一些实施方案中,解码器可利用占用图和补片信息来识别一个或多个编码的视频图像的活动部分和非活动部分,并且可基于该部分(例如,块、子块、像素等)是否包括活动信息或非活动信息来调整用于对编码的视频图像进行解码的一个或多个解码的参数。
[0190]
在1255处,解码器确定用于相应补片的点的空间信息和/或属性信息,并且在1256处,生成在一个或多个编码的视频图像中编码的点云的解压缩的表示。
[0191]
使用点云编码器和解码器的示例应用
[0192]
图13示出了根据一些实施方案的在3d应用中正在使用的压缩点云。
[0193]
在一些实施方案中,传感器(诸如传感器102)、编码器(诸如编码器104或本文所述的任何其他编码器)和解码器(诸如解码器116或本文所述的任何解码器)可用于在3d应用中传送点云。例如,在1302处,传感器(诸如传感器102)可捕获3d图像,并且在1304处,传感器或与传感器相关联的处理器可基于感测到的数据执行3d重构以生成点云。
[0194]
在1306处,编码器(诸如编码器104)可对点云进行压缩,并且在1308处,编码器或后处理器可将压缩点云打包并经由网络1310传输压缩点云。在1312处,可在包括解码器(诸如解码器116)的目标位置处接收数据包。在1314处,解码器可对点云进行解压缩,并且在1316处,可渲染解压缩点云。在一些实施方案中,3d应用可实时地传输点云数据,使得1316处的显示可表示正在1302处观察到的图像。例如,在1316处,峡谷中的相机可允许远程用户体验穿行虚拟峡谷。
[0195]
图14示出了根据一些实施方案的在虚拟现实(vr)或增强现实(ar)应用中正在使用的压缩点云。
[0196]
在一些实施方案中,点云可在软件中生成(例如,与由传感器捕获相反)。例如,在1402处,产生虚拟现实或增强现实内容。虚拟现实或增强现实内容可包括点云数据和非点云数据。例如,作为一个示例,非点云字符可横穿由点云表示的地形。在1404处,可以压缩点云数据,并且在1406处,可以将压缩点云数据和非点云数据打包并经由网络1408传输这些数据。例如,在1402处产生的虚拟现实或增强现实内容可在远程服务器处产生并经由网络1408传送至vr或ar内容消费者。在1410处,数据包可在vr或ar消费者的设备处被接收并同步。在1412处,在vr或ar消费者的设备处运作的解码器可对压缩点云进行解压缩,并且点云和非点云数据可例如在vr或ar消费者的设备的头戴式显示器中被实时渲染。在一些实施方案中,可响应于vr或ar消费者操纵头戴式显示器以看向不同的方向来生成、压缩、解压缩和渲染点云数据。
[0197]
在一些实施方案中,如本文所述的点云压缩可用于各种其他应用诸如地理信息系统、体育赛事直播、博物馆展示、自主导航等中。
[0198]
示例性计算机系统
[0199]
图15示出了根据一些实施方案的示例性计算机系统1500,该示例性计算机系统可实现编码器或解码器或本文所述的部件中的任何其他部件(例如,上文参考图1至图14描述的部件中的任何部件)。计算机系统1500可以被配置为执行上文所述的任意或全部实施方案。在不同的实施方案中,计算机系统1500可为各种类型的设备中的任一者,包括但不限于:个人计算机系统、台式计算机、膝上型电脑、笔记本电脑、平板电脑、一体电脑、平板计算机或上网本电脑、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、消费者设备、视频游戏控制器、手持式视频游戏设备、应用服务器、存储设备、电视、视频记录设备、外围设备(诸如交换机、调制解调器、路由器)或一般性的任何类型的计算或电子设备。
[0200]
本文所述的点云编码器或解码器的各种实施方案可在一个或多个计算机系统1500上执行,该计算机系统可与各种其他设备交互。需注意,根据各种实施方案,上文相对于图1至图14所述的任何部件、动作或功能可在被配置为图15的计算机系统1500的一个或多个计算机上实现。在例示的实施方案中,计算机系统1500包括经由输入/输出(i/o)接口1530耦接到系统存储器1520的一个或多个处理器1510。计算机系统1500还包括耦接到i/o
接口1530的网络接口1540,以及一个或多个输入/输出设备1550,诸如光标控制设备1560、键盘1570和显示器1580。在一些情况下,可以想到实施方案可以使用计算机系统1500的单个实例来实现,而在其他实施方案中,多个此类系统或者构成计算机系统1500的多个节点可以被配置为托管实施方案的不同部分或实例。例如,在一个实施方案中,一些元素可以经由计算机系统1500的与实现其他元素的那些节点不同的一个或多个节点来实现。
[0201]
在各种实施方案中,计算机系统1500可以是包括一个处理器1510的单处理器系统,或者包括若干处理器1510(例如,两个、四个、八个或另一适当数量)的多处理器系统。处理器1510可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1510可为实现多种指令集架构(isa)(诸如x86、powerpc、sparc或mips isa或任何其他合适的isa)中的任一种的通用或嵌入式处理器。在多处理器系统中,处理器1510中的每一个处理器通常可但并非必须实现相同的isa。
[0202]
系统存储器1520可被配置为存储点云压缩或点云解压缩程序指令1522和/或能够由处理器1510访问的传感器数据。在各种实施方案中,系统存储器1520可使用任何合适的存储器技术来实现,合适的存储器技术为诸如静态随机存取存储器(sram)、同步动态ram(sdram)、非易失性/闪存型存储器或任何其他类型的存储器。在例示的实施方案中,程序指令1522可被配置为实现结合上述功能性中的任一种的图像传感器控制应用程序。在一些实施方案中,程序指令和/或数据可被接收、发送或存储在与系统存储器1520或计算机系统1500分开的不同类型的计算机可访问介质上或类似介质上。尽管将计算机系统1500描述为实施前面各图的功能框的功能性,但可通过此类计算机系统实施本文描述的任何功能性。
[0203]
在一个实施方案中,i/o接口1530可被配置为协调设备中的处理器1510、系统存储器1520和任何外围设备(包括网络接口1540或其它外围设备接口,诸如输入/输出设备1550)之间的i/o通信。在一些实施方案中,i/o接口1530可执行任何必要的协议、定时或其他数据转换以将来自一个部件(例如系统存储器1520)的数据信号转换为适于由另一部件(例如处理器1510)使用的格式。在一些实施方案中,i/o接口1530可包括对例如通过各种类型的外围总线(诸如,外围部件互连(pci)总线标准或通用串行总线(usb)标准的变型)附接的设备的支持。在一些实施方案中,i/o接口1530的功能例如可以被划分到两个或更多个单独部件中,诸如北桥接件和南桥接件。此外,在一些实施方案中,i/o接口1530(诸如到系统存储器1520的接口)的一些或所有功能可以被直接并入到处理器1510中。
[0204]
网络接口1540可以被配置为允许在计算机系统1500与附接到网络1585的其他设备(例如,承载器或代理设备)之间或者在计算机系统1500的节点之间交换数据。在各种实施方案中,网络1585可包括一种或多种网络,包括但不限于局域网(lan)(例如,以太网或企业网)、广域网(wan)(例如,互联网)、无线数据网、某种其他电子数据网络或它们的某种组合。在各种实施方案中,网络接口1540可支持通过有线或无线通用数据网络(诸如任何合适类型的以太网网络)的通信,例如;经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)的通信;经由存储区域网络(诸如光纤通道san)、或经由任何其他合适类型的网络和/或协议的通信。
[0205]
在一些实施方案中,输入/输出设备1550可包括一个或多个显示终端、键盘、小键盘、触控板、扫描设备、语音或光学识别设备或适于由一个或多个计算机系统1500输入或访问数据的任何其他设备。多个输入/输出设备1550可以存在于计算机系统1500中,或者可以
分布在计算机系统1500的各个节点上。在一些实施方案中,类似的输入/输出设备可以与计算机系统1500分开,并且可以通过有线或无线连接(诸如通过网络接口1540)与计算机系统1500的一个或多个节点进行交互。
[0206]
如图15所示,存储器1520可包含程序指令1522,该程序指令可能可由处理器执行,以实现上文所述的任何元素或动作。在一个实施方案中,程序指令可执行上文所述的方法。在其他实施方案中,可包括不同的元件和数据。需注意,数据可包括上文所述的任何数据或信息。
[0207]
本领域的技术人员应当理解,计算机系统1500仅仅是例示性的,而并非旨在限制实施方案的范围。具体地,计算机系统和设备可以包括可执行所指出的功能的硬件或软件的任何组合,包括计算机、网络设备、互联网设备、个人数字助理、无线电话、寻呼机等。计算机系统1500还可以连接到未示出的其他设备,或者反之可作为独立的系统进行操作。此外,由所示出的部件所提供的功能在一些实施方案中可被组合在更少的部件中或者被分布在附加部件中。类似地,在一些实施方案中,所示出的部件中的一些部件的功能可不被提供,和/或其他附加功能可能是可用的。
[0208]
本领域的技术人员还将认识到,虽然各种项目被示出为在被使用期间被存储在存储器中或存储装置上,但是为了存储器管理和数据完整性的目的,这些项目或其部分可在存储器和其他存储设备之间进行传输。另选地,在其他实施方案中,这些软件部件中的一些或全部软件部件可以在另一设备上的存储器中执行,并且经由计算机间通信来与例示的计算机系统进行通信。系统部件或数据结构中的一些或全部也可(例如作为指令或结构化数据)被存储在计算机可访问介质或便携式制品上以由合适的驱动器读取,其多种示例在上文中被描述。在一些实施方案中,存储在与计算机系统1500分开的计算机可访问介质上的指令可以经由传输介质或信号(诸如经由通信介质诸如网络和/或无线链路而传送的电信号、电磁信号或数字信号)传输到计算机系统1500。各种实施方案还可包括在计算机可访问介质上接收、发送或存储根据以上描述所实现的指令和/或数据。一般来讲,计算机可访问介质可包括非暂态计算机可读存储介质或存储器介质,诸如磁介质或光学介质,例如盘或dvd/cd-rom、易失性或非易失性介质,诸如ram(例如sdram、ddr、rdram、sram等)、rom等。在一些实施方案中,计算机可访问介质可包括传输介质或信号,诸如经由通信介质诸如网络和/或无线链路而传送的电气信号、电磁信号、或数字信号。
[0209]
在不同的实施方案中,本文所述的方法可以在软件、硬件或它们的组合中实现。此外,可改变方法的框的次序,并且可对各种要素进行添加、重新排序、组合、省略、修改等。对于受益于本公开的本领域的技术人员,显然可做出各种修改和改变。本文所述的各种实施方案旨在为例示的而非限制性的。可以有许多变型、修改、添加和改进。因此,可为在本文中被描述为单个示例的部件提供多个示例。各种部件、操作和数据存储装置之间有稍微任意的边界,并且在特定例示性配置的上下文中示出了特定操作。预期了功能的其他分配,它们可落在所附权利要求的范围内。最后,被呈现为示例性配置中的分立部件的结构和功能可被实现为组合的结构或部件。这些和其他变型、修改、添加和改进可落入如以下权利要求中所限定的实施方案的范围内。
再多了解一些

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

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

相关文献