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

具有非规范平滑的基于视频的点云压缩的制作方法

2022-04-30 16:43:21 来源:中国专利 TAG:

具有非规范平滑的基于视频的点云压缩


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


技术实现要素:

4.在一些实施方案中,一种系统包括被配置为捕获共同构成点云的点的一个或多个传感器,其中每个点包括识别相应点的空间位置的空间信息和定义与相应点相关联的一个或多个属性的属性信息。
5.该系统还包括被配置为压缩点的属性信息和/或空间信息的编码器。为了压缩属性和/或空间信息,编码器被配置为针对点云确定多个补片,每个补片对应于点云的部分。编码器被进一步配置为针对每个补片:生成补片图像,该补片图像包括与投影到补片平面上的补片相对应的点集合,并且生成另一个补片图像,该另一个补片图像包括与补片相对应的点集合的几何信息诸如深度信息,其中该几何信息包括点在垂直于补片平面的方向上的深度。
6.例如,与投影到补片平面上的补片相对应的几何补片图像可以在两个方向(诸如,x和y方向)上描绘包括在补片中的点云的点。点云的点可以投影到与法矢量大约垂直的补片平面上,该法矢量在补片的位置处与点云的表面垂直。另外,例如,包括补片中所包括的点集合的深度信息的几何补片图像可描绘深度信息,诸如z方向上的深度距离。为了描绘深度信息,几何补片图像可以包括一个参数,该参数基于点云中的点在补片图像中的特定位置处的深度而在强度上变化。例如,描绘深度信息的几何补片图像可以具有与表示投影到补片平面上的点的属性的属性补片图像相同的形状。然而,几何信息补片图像可以是包括图像属性(诸如,一种或多种颜色)的图像,这些图像属性的强度基于深度发生变化,其中一个或多个图像属性的强度对应于点云的对应点在几何补片图像中的某位置处的深度,该位置是图像属性在描绘深度的几何补片图像中显示所在的位置。例如,更靠近补片平面的点
可被编码为描绘深度的补片图像中的较暗值,并且更远离补片平面的点可被编码为描绘深度的补片图像中的较亮值,例如在描绘深度的单色补片图像中。因此,当与表示投影到补片平面上的点的属性值的其他补片图像对准时,深度信息补片图像可以基于几何补片图像中与点在包括投影到补片平面上的点云点的其他补片图像中的位置相对应的位置处的相应图像属性强度来指示投影到补片平面上的点的相对深度。
7.编码器被进一步配置为将所确定的补片中的每个补片的所生成补片图像(包括几何补片图像,以及一个或多个其他属性诸如颜色、纹理、反射率等的一个或多个附加补片图像)打包到一个或多个图像帧中。另外,编码器被配置为将一个或多个打包的图像帧提供给视频编码部件(其可被包括在编码器中或可以是单独的视频编码部件)。另外,编码器被配置为在2d空间中缩减打包图像帧。例如,编码器可以利用视频编码部件的一个或多个缩减特征来在2d域中缩减图像帧。例如,编码器可以利用根据高效视频编码(hevc/h.265)标准或其他合适的标准(诸如,高级视频编码(avc/h.264)标准、由开放媒体联盟(aomedia)制作的aomedia视频1(av1)视频编码格式等)的视频编码器。在一些实施方案中,编码器可利用根据运动图像专家组(mpeg)、联合图像专家组(jpeg)标准、国际电信联盟电信标准(例如itu-t标准)等的视频编码部件。
8.另外,编码器被配置为对包括属性补片的打包补片图像应用属性变换函数,以补偿可能包括在点云的解压缩/重构版本中的失真或伪影。例如,编码器可以对包括几何补片图像的图像帧进行视频编码和视频解码。编码器可以进一步确定解码/解压缩的几何补片图像中的失真或伪影。然后,编码器可以选择或调整待应用于属性补片图像以补偿引入点云几何中的压缩/解压缩伪影和/或失真的属性传递函数。然而,当确定属性传递函数时,编码器可以避免使用已经例如经由平滑滤波器经历几何平滑过程的点。通过不使用经平滑几何点来确定属性传递函数,编码器将编码器平滑作为编码器的必须由解码器处的匹配平滑滤波器匹配的规范特征移除。
9.例如,如果属性传递应用于已经被编码器侧几何平滑滤波器平滑的经编码器平滑点,则解码器需要对解压缩的几何点应用相同的几何平滑滤波器,以便使通过发信号通知的属性传递函数正确调整点的属性以匹配经平滑几何。然而,如果在编码器处将属性传递函数应用于非平滑点,则解码器可以对重构点应用通过发信号通知的属性传递函数,并且任选地选择待在解码器处应用的非规范平滑滤波器。另外,解码器可以应用第二属性传递函数来补偿由于应用解码器侧非规范几何平滑滤波器而导致的云点的点位置变化。因为解码器侧几何平滑滤波器是非规范的,所以解码过程的设计者或用户可以自定义几何平滑滤波器以满足设计者或用户的需求,而不限于使用标准中指定的规范几何平滑滤波器。
10.在一些实施方案中,解码器被配置为接收一个或多个已编码图像帧,这一个或多个已编码图像帧包括关于压缩点云的多个补片的补片图像,其中对于每个补片,这一个或多个已编码图像帧包括:包括投影到补片平面上的补片的点集合的补片图像,和包括关于补片的点集合的深度信息的补片图像,其中深度信息指示补片的点在垂直于补片平面的方向上的深度。在一些实施方案中,可以将深度补片图像和其他属性补片图像一起打包到图像帧中。例如,解码器可以接收包括由上述编码器生成的打包补片图像的一个或多个图像帧。图像帧或其一部分可已经在编码器处被缩减,并且解码器可以在2d视频域中放大缩减的图像帧。
11.解码器被进一步配置为对包括补片图像的一个或多个已视频编码图像帧进行视频解码。在一些实施方案中,解码器可利用根据高效视频编码(hevc)标准或其他合适的标准(诸如,高级视频编码(avc)标准、aomedia视频1(av1)视频编码格式等)的视频解码器。在一些实施方案中,解码器可利用根据运动图像专家组(mpeg)或联合图像专家组(jpeg)标准等的图像解码器。
12.解码器被进一步配置为接收或确定指示相应属性补片图像、深度补片图像和/或图像帧之间的关系的关系信息。例如,解码器可以将关系信息接收在压缩点云文件中,其中关系信息由编码器确定。另外,在一些实施方案中,解码器可以基于压缩点云文件中所包括的信息来确定关系信息,诸如用于压缩点云的占用图和/或辅助信息。在一些实施方案中,解码器可以利用所接收或所确定的关系信息来调整用于对已视频编码图像帧进行视频解码的一个或多个参数。
13.解码器被进一步配置为:针对每个补片,至少部分地基于包括投影到补片平面上的补片的点集合的属性补片图像和包括补片的点集合的深度信息的几何补片图像来确定补片的点集合的空间信息,以及至少部分地基于多个补片的所确定的空间信息和补片中所包括的属性信息来生成压缩点云的重构版本。
14.另外,解码器可以被配置为在编码器处应用非规范几何平滑滤波器,并且使用点云的未平滑几何和经平滑几何两者来确定待应用于点云的属性以补偿解码器侧几何平滑的解码器特定属性传递函数。在一些实施方案中,可以使用各种平滑滤波器。在一些实施方案中,解码器可以支持规范平滑滤波器和非规范平滑滤波器,但是解码器的用户或设计者可以不限于仅使用规范平滑滤波器。
附图说明
15.图1示出了根据一些实施方案的系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的空间信息和属性信息的编码器,其中压缩的空间信息和属性信息被发送到解码器。
16.图2a示出了根据一些实施方案的用于对点云内帧进行编码的编码器的部件。
17.图2b示出了根据一些实施方案的用于对点云内帧进行解码的解码器的部件。
18.图2c示出了根据一些实施方案的用于对点云间帧进行编码的编码器的部件。
19.图2d示出了根据一些实施方案的用于对点云间帧进行解码的解码器的部件。
20.图3a示出了根据一些实施方案的示例补片分割过程。
21.图3b示出了根据一些实施方案的包括打包的补片图像和填充部分的示例图像帧。
22.图3c示出了根据一些实施方案的包括补片部分和填充部分的示例图像帧。
23.图3d示出了根据一些实施方案的正被投影到多个投影上的点云。
24.图3e示出了根据一些实施方案的正被投影到多个平行投影上的点云。
25.图4a示出了根据一些实施方案的用于利用颜色转换来对点云内帧进行编码的编码器的部件。
26.图4b示出了根据一些实施方案的用于利用颜色转换来对点云间帧进行编码的编码器的部件。
27.图4c示出了根据一些实施方案的闭环颜色转换模块的部件。
28.图4d示出了根据一些实施方案的用于确定作为已执行操作的依据的关于点云的质量度量的示例过程。
29.图5a示出了根据一些实施方案的包括几何、纹理和/或其他属性缩减的编码器的部件。
30.图5b示出了根据一些实施方案的包括几何、纹理和/或其他属性放大的解码器的部件。
31.图5c示出了根据一些实施方案的从编码器的角度进行的重缩放。
32.图5d示出了根据一些实施方案的从解码器的角度进行的重缩放。
33.图5e示出了根据一些实施方案的示例开环重缩放。
34.图5f示出了根据一些实施方案的示例闭环重缩放。
35.图5g示出了根据一些实施方案的利用多个属性层的示例闭环重缩放。
36.图5h示出了根据一些实施方案的视频级时空缩放的示例。
37.图5i示出了根据一些实施方案的利用时空缩放的示例闭环重缩放。
38.图5j示出了根据一些实施方案的使用缩减来对点云的图像帧进行编码/压缩的过程。
39.图5k示出了根据一些实施方案的使用开环或闭环缩减来确定缩减图像帧的过程。
40.图5l示出了根据一些实施方案的使用放大来对点云的图像帧进行解码/解压缩的过程。
41.图6a示出了根据一些实施方案的还包括视频压缩前纹理处理和/或滤波以及视频压缩前几何处理/滤波的编码器的部件。
42.图6b示出了根据一些实施方案的还包括视频解压缩后纹理处理和/或滤波以及视频解压缩后几何处理/滤波的解码器的部件。
43.图6c示出了根据一些实施方案的用于压缩点云的位流结构。
44.图6d示出了根据一些实施方案的用于在考虑被打包到图像帧中的补片之间的关系信息的情况下生成针对点云的补片的已视频编码图像帧的过程。
45.图6e示出了根据一些实施方案的用于在考虑对应于相同点集合的补片集合的集中失真的情况下生成已视频编码图像帧的过程。
46.图6f示出了根据一些实施方案的用于在考虑补片边缘的情况下生成已视频编码图像帧的过程。
47.图6g示出了根据一些实施方案的用于基于包括点云的补片在内的已视频编码图像帧来重构点云的过程,其中考虑到了被打包到图像帧中的补片之间的关系信息。
48.图6h示出了根据一些实施方案的在考虑到基于补片的所接收的或所确定的关系信息而确定的补片图像的边缘的情况下放大图像帧中所包括的补片图像的过程。
49.图6i示出了根据一些实施方案的示例应用,其中使用属性平面的对应几何信息和几何提取边缘来放大属性平面。
50.图6j示出了根据一些实施方案的支持在编码器的属性传递环路之外进行几何平滑的示例编码器。
51.图6k示出了根据一些实施方案的包括允许在解码器处使用非规范平滑滤波器的属性传递函数和平滑过程的示例解码器。
52.图7a示出了根据一些实施方案的基于点云压缩网络抽象层(pccnal)单元的位流的示例。
53.图7b示出了根据一些实施方案的按图片次序计数(poc)分组的pccnal单元的示例。
54.图7c示出了根据一些实施方案的按类型分组的pccnal单元的示例。
55.图8a示出了根据一些实施方案的用于压缩点云的属性信息和空间信息的过程。
56.图8b示出了根据一些实施方案的用于解压缩点云的属性信息和空间信息的过程。
57.图8c示出了根据一些实施方案的正被生成并打包到图像帧中以压缩点云的属性信息和空间信息的补片图像。
58.图9示出了根据一些实施方案的正被生成并打包到图像帧中以压缩移动或改变的点云的属性信息和空间信息的补片图像。
59.图10示出了根据一些实施方案的解码器,该解码器接收包括补片图像、补片信息和占用图的图像帧,并且生成点云的解压缩表示。
60.图11a示出了根据一些实施方案的编码器,该编码器基于用于点云的一个或多个掩模来调整编码。
61.图11b示出了根据一些实施方案的解码器,该解码器基于用于点云的一个或多个掩模来调整解码。
62.图12a示出了根据一些实施方案的关于占用图的压缩的更多细节。
63.图12b示出了根据一些实施方案的用于压缩占用图的示例块和遍历模式。
64.图12c示出了根据一些实施方案的关于占用图的压缩的更多细节。
65.图13示出了根据一些实施方案的在3d应用中使用的压缩点云信息。
66.图14示出了根据一些实施方案的在虚拟现实应用中使用的压缩点云信息。
67.图15示出了根据一些实施方案的可实现编码器或解码器的示例性计算机系统。
68.本说明书包括参考“一个实施方案”或“实施方案”。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
[0069]“包括”,该术语是开放式的。如在所附权利要求书中所使用的,该术语不排除附加结构或步骤。考虑以下引用的权利要求:“一种包括一个或多个处理器单元...的装置”此类权利要求不排除该装置包括附加部件(例如,网络接口单元、图形电路等)。
[0070]“被配置为”,各种单元、电路或其他部件可被描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件据称可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件——例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引35u.s.c.
§
112(f)。此外,“被配置为”可包括由软件和/或固件(例如,fpga或执行软件的通用处理器)操纵的通用结构(例如,通用电路)以能够执行待解决的一项或多项任务的方式操作。“被配置为”还可包括调整制造过程(例如,半导体制作设施),以制造适用于实现或执行一项或多项任务的设备(例如,集成电路)。
[0071]“第一”“第二”等。如本文所用,这些术语充当它们所在之前的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,缓冲电路在本文中可被描述为执行“第一”值和“第二”值的写入操作。术语“第一”和“第二”未必暗指第一值必须在第二值之前被写入。
[0072]“基于”。如本文所用,该术语用于描述影响确定的一个或多个因素。该术语不排除影响确定的附加因素。即,确定可仅基于这些因素或至少部分地基于这些因素。考虑短语“基于b来确定a”。在这种情况下,b为影响a的确定的因素,此类短语不排除a的确定也可基于c。在其他实例中,可仅基于b来确定a。
具体实施方式
[0073]
随着数据采集和显示技术变得更加先进,增强了(诸如经由lidar系统)捕获包括2d或3d空间中成千上万个点的点云的能力。而且,先进显示技术(诸如虚拟现实或增强现实系统)的发展增加了点云的潜在用途。然而,点云文件通常非常大,并且存储和传输这些点云文件可能成本高且耗时。例如,点云通过私有网络或公共网络(诸如互联网)的通信可能需要相当大量的时间和/或网络资源,使得点云数据的一些使用(诸如实时使用)可能受到限制。另外,点云文件的存储要求可能消耗存储点云文件的设备的显著量的存储容量,这也可能限制潜在应用使用点云数据。
[0074]
在一些实施方案中,编码器可用于生成压缩点云以降低与存储和传输大的点云文件相关联的成本和时间。在一些实施方案中,一种系统可包括编码器,该编码器压缩点云文件的属性信息和/或空间信息,使得点云文件可比非压缩点云更快地被存储和传输,并且以点云文件可比非压缩点云占用更少的存储空间的方式被存储和传输。在一些实施方案中,对点云中点的属性的压缩可能够实时地或几乎实时地通过网络传送。例如,一种系统可包括传感器,该传感器捕获关于传感器所在的环境中的点的属性信息,其中所捕获的点和对应属性构成了点云。该系统还可包括压缩所捕获的点云的属性信息的编码器。点云的压缩属性信息可通过网络实时或几乎实时地发送到对点云的压缩属性信息进行解压缩的解码器解码器。该解压缩点云可被进一步处理,例如以基于传感器位置处的周围环境做出控制决策。然后可将控制决策传送回传感器位置处或其附近的设备,其中接收控制决策的设备实时地或几乎实时地实现控制决策。在一些实施方案中,解码器可以与增强现实系统相关联,并且解压缩属性信息可以由增强现实系统显示或以其他方式使用。在一些实施方案中,可将关于点云的压缩属性信息与关于点云的点的压缩空间信息一起发送。在其他实施方案中,空间信息和属性信息可以被分别编码和/或分别发送到解码器。
[0075]
在一些实施方案中,一种系统可包括解码器,该解码器经由网络从远程服务器或存储一个或多个点云文件的其他存储设备接收包括压缩属性信息的一个或多个点云数据集合。例如,可实时地或几乎实时地操纵3d显示器、全息显示器或头戴式显示器来显示由点云表示的虚拟世界的不同部分。为了更新3d显示器、全息显示器或头戴式显示器,一种与解码器相关联的系统可以基于显示器的用户操纵从远程服务器请求点云数据,并且这些点云数据可以从远程服务器传输到解码器并由解码器实时地或几乎实时地进行解码。然后可用响应于用户操纵的更新点云数据(诸如更新的点属性)来更新显示器。
[0076]
在一些实施方案中,一种系统可包括一个或多个lidar系统、3d相机、3d扫描仪等,
并且此类传感器设备可捕获空间信息,诸如传感器设备的视图中的点的x、y和z坐标。在一些实施方案中,空间信息可相对于局部坐标系或可相对于全局坐标系(例如,笛卡尔坐标系可具有固定参考点诸如地球上的固定点,或者可具有不固定的局部参考点诸如传感器位置)。
[0077]
在一些实施方案中,此类传感器还可以捕获一个或多个点的属性信息,诸如颜色属性、纹理属性、反射率属性、速度属性、加速度属性、时间属性、模态和/或各种其他属性。在一些实施方案中,除了lidar系统、3d相机、3d扫描仪等之外,其他传感器可以捕获待包括在点云中的属性信息。例如,在一些实施方案中,陀螺仪或加速度计可以捕获待包括在点云中的运动信息作为与该点云的一个或多个点相关联的属性。例如,配备有lidar系统、3d相机或3d扫描仪的车辆可能会在由lidar系统、3d相机或3d扫描仪捕获的点云中包括车辆的方向和速率。例如,当捕获到车辆视野中的点时,这些点可以被包括在点云中,其中该点云包括捕获到的点以及与捕获到点时车辆的状态对应的相关联的运动信息。
[0078]
示例系统布置
[0079]
图1示出了根据一些实施方案的系统,该系统包括捕获关于点云的点的信息的传感器和压缩点云的属性信息的编码器,其中压缩属性信息被发送到解码器。
[0080]
系统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)可以包括在公共压缩点云中,该公共压缩点云还包括关于该点云的点的压缩空间信息,或者在一些实施方案中,压缩空间信息和压缩属性信息可以作为单独的数据集合进行传送。
[0081]
在一些实施方案中,编码器104可与传感器102成一体。例如,编码器104可在包括在传感器设备(诸如传感器102)中的硬件或软件中实现。在其他实施方案中,编码器104可在邻近传感器102的独立计算设备上实现。
[0082]
示例3d帧内编码器
[0083]
图2a示出了根据一些实施方案的用于对3d点云内帧进行编码的编码器的部件。在一些实施方案中,以上关于图1描述的编码器可以与图2a中描述的编码器200和图2c中描述的编码器250相似的方式操作。
[0084]
编码器200接收未压缩点云202并且生成压缩点云信息204。在一些实施方案中,编码器(诸如编码器200)可以从传感器(诸如图1所示的传感器102)接收未压缩点云202,或者在一些实施方案中,例如,可以从另一个源(诸如在软件中生成未压缩点云的图形生成部件)接收未压缩点云202。
[0085]
在一些实施方案中,编码器(诸如编码器200)包括分解成补片模块206、打包模块208、空间图像生成模块210、纹理图像生成模块212和属性信息生成模块214。在一些实施方
案中,编码器(诸如编码器200)还包括图像帧填充模块216、视频压缩模块218和复用器224。另外,在一些实施方案中,编码器(诸如编码器200)可包括占用图压缩模块(诸如占用图压缩模块220)和辅助补片信息压缩模块(诸如辅助补片信息压缩模块222)。在一些实施方案中,编码器(诸如编码器200)将3d点云转换为基于图像的表示以及将压缩点云转换回解压缩点云所需的一些元数据(例如,占用图和补片信息)。
[0086]
在一些实施方案中,转换过程将点云分解成补片集合(例如,补片被定义为由点云描述的表面的连续子集),这些补片可重叠或不重叠,使得每个补片可通过相对于2d空间中的平面的深度场来描述。上面关于图3a至图3c提供了关于补片分解过程的更多细节。
[0087]
在确定关于正被压缩的点云的补片之后或结合这些补片,在与这些补片相关联的平面中执行2d采样过程。可以应用2d采样过程以便用均匀采样的点云来近似每个补片,该点云可以被存储为描述点云在补片位置处的几何/纹理/属性的2d补片图像集合。“打包”模块208可将与补片相关联的2d补片图像存储在单个(或多个)2d图像中,这些图像在本文中称为“图像帧”或“视频图像帧”。在一些实施方案中,打包模块(诸如打包模块208)可将2d补片图像打包,使得打包的2d补片图像不重叠(即使一个补片图像的外边界框可能与另一个补片图像的外边界框重叠)。另外,打包模块可以使图像帧的未使用图像像素最小化的方式来将2d补片图像打包。
[0088]
在一些实施方案中,“几何/纹理/属性生成”模块(诸如模块210、212和214)分别生成与点云在给定补片位置处的几何/纹理/属性相关联的2d补片图像。如前所述,打包过程(诸如由打包模块208执行的过程)可以在图像帧中所打包的2d补片图像之间留下一些空白空间。另外,填充模块(诸如图像帧填充模块216)可以填满此类面积,以便生成可适合于2d视频和图像编解码器的图像帧。
[0089]
在一些实施方案中,可例如由占用图压缩模块220来生成和压缩占用图(例如,对于每个像素或像素块,描述是否填充该像素或像素块的二进制信息)。可将占用图发送到解码器以使解码器能够区分图像帧的填充像素与未填充像素。
[0090]
需注意,与补片相关联的其他元数据也可被发送到解码器以用于解压缩过程。例如,可由辅助补片信息压缩模块(诸如辅助补片信息压缩模块222)来生成指示为点云确定并打包在图像帧中的补片的大小和形状的补片信息并且/或者对该补片信息进行编码。在一些实施方案中,一个或多个图像帧可由视频编码器(诸如视频压缩模块218)编码。在一些实施方案中,视频编码器(诸如视频压缩模块218)可根据高效视频编码(hevc)标准或其他合适的视频编码标准来操作。在一些实施方案中,编码视频图像、编码占用图信息和编码辅助补片信息可以由复用器(诸如复用器224)复用,并且作为压缩点云信息(诸如压缩点云信息204)提供给接收方。
[0091]
在一些实施方案中,占用图可由视频压缩模块(诸如视频压缩模块218)进行编码和解码。这可以在编码器(诸如编码器200)处完成,使得编码器具有当占用图由解码器解码时占用图的准确表示。另外,在确定关于图像帧的占用图时,可以由占用图压缩模块(诸如占用图压缩模块220)来解决由于有损压缩和解压缩导致的图像帧的变化。在一些实施方案中,可使用各种技术来进一步压缩占用图,诸如图12a至图12b中所描述。
[0092]
示例3d帧内解码器
[0093]
图2b示出了根据一些实施方案的用于对点云内帧进行解码的解码器的部件。解码
器230接收压缩点云信息204,该压缩点云信息可以与由编码器200生成的压缩点云信息204相同。解码器230基于接收到压缩点云信息204来生成重构点云246。
[0094]
在一些实施方案中,解码器(诸如解码器230)包括解复用器232、视频解压缩模块234、占用图解压缩模块236和辅助补片信息解压缩模块238。另外,解码器(诸如解码器230)包括点云生成模块240,该点云生成模块基于所接收的压缩点云信息(诸如,压缩点云信息204)中所包括的一个或多个图像帧中所包括的补片图像来重构点云。在一些实施方案中,解码器(诸如解码器203)还包括几何平滑滤波器和/或一个或多个属性平滑滤波器(诸如平滑滤波器244)。在一些实施方案中,平滑滤波器可将关于补片边缘处的不一致平滑,其中点云生成模块已经使用了包括在补片的补片图像中的数据来从关于补片的补片图像重建点云。在一些实施方案中,可以将平滑滤波器应用于位于补片边界上的点,以减轻可能由压缩/解压缩过程引起的失真。
[0095]
示例3d帧间编码器
[0096]
图2c示出了根据一些实施方案的用于对点云间帧进行编码的编码器的部件。点云间编码器(诸如3d点云间编码器250)可以在作为参考来考虑一个或多个先前编码/解码的图像帧的同时对图像帧进行编码。
[0097]
在一些实施方案中,用于3d点云间帧的编码器(诸如编码器250)包括点云重新采样模块252、3d运动补偿和δ矢量预测模块254、空间图像生成模块256、纹理图像生成模块258和属性图像生成模块260。在一些实施方案中,用于3d点云间帧的编码器(诸如编码器250)还可以包括图像填充模块262和视频压缩模块264。用于点云间帧的编码器(诸如编码器250)可以生成压缩点云信息(诸如压缩点云信息266)。在一些实施方案中,压缩点云信息可以是由编码器先前编码的参考点云信息,诸如来自一个或多个3d参考帧或从一个或多个3d参考帧导出的信息。这样,用于3d点云间帧的编码器(诸如编码器250)可以通过不重复包括在3d参考帧中的信息,而是传送3d参考帧与点云的当前状态之间的差值来生成更紧凑的压缩点云信息。
[0098]
在一些实施方案中,编码器(诸如编码器250)可以与3d点云内帧编码器(诸如编码器200)组合或共享模块。在一些实施方案中,点云重新采样模块(诸如点云重新采样模块252)可以对输入点云帧中的点进行重新采样,以便针对点云确定当前图像帧的补片中的点与参考图像帧的补片中的点之间的一对一映射。在一些实施方案中,3d运动补偿和δ矢量预测模块(诸如3d运动补偿和δ矢量预测模块254)可将时间预测应用于补片的重新采样点的几何/纹理/属性。预测残差可以被存储到图像中,可通过使用视频/图像编解码器对图像进行填充和压缩。对于补片的点在参考帧与当前帧之间的空间改变,3d运动补偿和δ矢量预测模块254可以针对每个点确定相应的矢量,指示这些点如何从参考帧移动到当前帧。然后3d运动补偿和δ矢量预测模块254可以使用不同的图像参数来对运动矢量进行编码。例如,点在x方向上的改变可以由在包括该点的补片图像中的该点处包括的红色的量来表示。以类似的方式,点在y方向上的改变可以由在包括该点的补片图像中的该点处包括的蓝色的量来表示。另外,以类似的方式,点在z方向上的改变可以由在包括该点的补片图像中的该点处包括的绿色的量来表示。在一些实施方案中,可调整包括在补片图像中的图像的其他特性,以指示包括在补片中的点在关于补片的参考帧与关于补片的当前帧之间的运动。
[0099]
示例3d帧间解码器
[0100]
图2d示出了根据一些实施方案的用于对3d点云间帧进行解码的解码器的部件。在一些实施方案中,解码器(诸如解码器280)包括视频解压缩模块270、逆3d运动补偿和逆δ预测模块272、点云生成模块274和平滑滤波器276。在一些实施方案中,解码器(诸如解码器280)可以与解码器(诸如解码器230)组合,或者可与解码器共享一些部件,诸如视频解压缩模块和/或平滑滤波器。在解码器280中,首先对视频/图像流进行解码,然后可以应用逆运动补偿和δ预测程序。然后使用所获得的图像来重构点云,可以如前所述对该点云进行平滑以生成重构点云282。
[0101]
虽然上文就3d帧内压缩/解压缩和3d帧间压缩/解压缩讨论了点云的3d编码,但是应当理解,帧内预测和帧间预测是针对3d点云数据的。在一些实施方案中,对打包有补片图像的打包图像帧进行编码的基本视频编码器可以利用2d视频帧内或帧间压缩/解压缩技术来压缩和解压缩打包图像帧,而不管所应用的点云压缩是帧内预测还是帧间预测。例如,即使打包在图像帧中的补片图像是使用3d域中的帧内压缩过程生成的,视频编码器也可以使用帧间预测过程对顺序打包图像帧进行编码。另外,又如,视频编码器可以使用2d视频帧内预测过程对作为3d域中的3d帧间预测过程的一部分生成的运动矢量进行编码,其中运动矢量本身是使用帧间预测在3d域中生成的,但其中包括运动矢量的视频图像帧是由视频编码器使用打包视频图像帧的帧内预测过程压缩的。
[0102]
分割过程
[0103]
图3a示出了根据一些实施方案的用于确定关于点云的补片的示例分割过程。可以通过分解成补片模块(诸如分解成补片模块206)来执行如图3a中所描述的分割过程。分割过程可以将点云分解为最小数量的补片(例如,由点云描述的表面的连续子集),同时确保相应的补片可以由相对于补片平面的深度场表示。这可以在不明显损失形状信息的情况下完成。
[0104]
在一些实施方案中,分割过程包括:
[0105]

假设点云pc是待划分为补片的输入点云,并且{p(0),p(1)

,p(n-1)}是点云pc的点的位置。
[0106]

在一些实施方案中,预定义了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)}
[0107]

在一些实施方案中,估计表面在每个点p(i)处的法矢量。可以使用任何合适的算法来确定表面的法矢量。例如,一种技术可包括获取p(i)的“n”个最近点的集合h,以及通过使用主成分分析技术将平面π(i)拟合到h(i)。p(i)的法线可以通过将法线取为π(i)来估计。需注意,“n”可以是用户定义的参数,或者也可以通过应用优化程序来找到。“n”也可以是固定的或自适应的。然后可以通过使用最小生成树方法来将法线值一致地取向。
[0108]

基于法线的分割:可通过将点云pc的点与使分数最大化的方向d(k)相关联来获得相应点的初始分割s0,其中《.∣.》是r3的规范点积。伪代码如下提供。
[0109][0110]

迭代分割细化:需注意,分割s0将相应点与最能保留其邻域(例如该分段的邻域)的几何的平面π(i)相关联。在一些情况下,分割s0可能会生成太多具有不规则边界的小连接成分,这可能会导致压缩性能不佳。为了避免此类问题,可应用以下迭代分割细化程序:
[0111]
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”可以是用户定义的参数,或者也可以通过应用优化程序来找到。该参数也可以是固定的或自适应的。
[0112]
2.在每次迭代中,可以遍历点云pc的点,并且每个顶点都可以与使最大化的方向d(k)相关联,其中|ζ(i)|是v(i)的r个最近邻居中的属于同一集群的数量,并且λ是控制生成的补片的规则性的参数。需注意,参数λ和r可以由用户定义或者可以通过应用优化程序来确定。这两个参数也可以是固定的或自适应的。在一些实施方案中,本文所指的“用户”可以是为一个或多个应用配置了本文所描述的点云压缩技术的工程师。
[0113]
3.伪代码的示例如下提供
[0114][0115]
*在一些实施方案中,上文所示的伪代码还可包括提前终止步骤。例如,如果达到了特定值的分数,或者如果达到的分数与最佳分数之间的差值仅改变了某个量或更小量,则搜索可能会提前终止。另外,如果在一定数量的迭代(l=m)之后,集群索引(clusterindex)不变,则搜索可能会终止。
[0116]

补片分割:在一些实施方案中,补片分割程序还将在先前步骤中检测到的集群分割成补片,这些补片可用相对于投影平面的深度场来表示。根据一些实施方案,该方法如下进行:
[0117]
1.首先,构建具有r'数量的邻居的基于集群的邻接图,同时仅将属于同一集群的点视为邻居。需注意,r'可能不同于先前步骤中使用的邻居的数量r。
[0118]
2.接下来,提取基于集群的邻接图的不同连接成分。仅考虑点数大于参数α的连接成分。假设cc={cc(0),cc(1),

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

,cc’(m-1)}进行并集而获得的点云。
[0121]
5.需注意,投影重构过程可能是有损的,并且可能会遗漏一些点。为了检测此类点,可以检查点云pc的每个点p(i)以确保该点距pc’的点的距离小于参数δ。如果不是这种情况,则可以将p(i)标为遗漏点,并且将其添加到表示为mp的遗漏点集合中。
[0122]
6.然后将步骤2至5应用于遗漏点mp。重复该过程,直到mp为空或者cc为空。需注意,参数δ和α可以由用户定义或者可以通过应用优化程序来确定。这两个参数也可以是固
定的或自适应的。
[0123]
7.可以将滤波程序应用于所检测的补片,以便使其更适合于压缩。示例滤波程序可包括:
[0124]
a.基于补片的点的几何/纹理/属性的平滑滤波器(例如,中值滤波),该平滑滤波器同时考虑了空间和时间方面。
[0125]
b.丢弃小的并且隔离的补片。
[0126]
c.用户指导的滤波。
[0127]
d.其他合适的平滑滤波器技术。
[0128]

[0129]
上述图像生成过程包括将属于每个补片的点投影到其相关联的投影平面上以生成补片图像。可以将这一过程推广到将多个点投影到同一像素上的情况,如下所述:
[0130]
·
假设h(u,v)是当前补片的投影到相同像素(u,v)的点集合。需注意,h(u,v)可以为空,可以具有一个点或多个点。
[0131]
·
如果h(u,v)为空,则将像素标为未占用。
[0132]
·
如果h(u,v)具有单个元素,则用相关联的几何/纹理/属性值填满像素。
[0133]
·
如果h(u,v)具有多个元素,则可以采用不同的策略:
[0134]

仅保留像素(u,v)的最近点p0(u,v)
[0135]

取与p0(u,v)相距d以内的一组点的平均值或线性组合,其中d是仅在编码器侧需要的用户定义的参数。
[0136]

存储两张图像:一张关于p0(u,v),并且另一张用于存储h(u,v)的与p0(u,v)相距d以内的最远点p1(u,v)
[0137]

存储包含h(u,v)的子集的n个补片图像
[0138]
在本文中,为其中点在相同补片位置但在不同深度的点云所生成的补片图像可称为层。在一些实施方案中,缩放/上采样/下采样可应用于所生成的补片图像/层,以便控制重构点云中的点数。
[0139]
在给定来自另一个未下采样的“初级”层的全分辨率图像的情况下,可对下采样的层执行引导上采样策略。
[0140]
在一些实施方案中,可以基于速率失真优化来自适应地应用层之间的δ预测。该选择可以在位流中显式地发信号通知。
[0141]
在一些实施方案中,所生成的层可使用不同的精度进行编码。可以通过使用shift 缩放或更一般的线性或非线性转换来自适应地控制每个层的精度。
[0142]
在一些实施方案中,编码器可以就缩放策略和在位流中显式地编码的参数做出决策。解码器可以从位流中读取信息,并且使用由编码器发信号通知的参数来应用正确的缩放过程。
[0143]
在一些实施方案中,可以通过向视频编码器提供运动矢量图来引导视频编码运动估计过程,该运动矢量图指示对于图像帧的每个块,用于细化搜索的2d搜索中心或运动矢量候选。此类信息对于计算而言可能并不重要,因为3d帧与2d图像帧之间的映射可以提供给点云编码器,并且可以通过在3d中使用最近邻居搜索来计算2d图像帧之间的粗略映射。
[0144]
可以通过提供搜索中心图来加速/改善视频运动估计/模式决策/帧内预测,该搜
索中心图可以就搜索位置和根据每个n
×
n像素块选择哪些模式提供指导。
[0145]
隐藏/不显示的图片可以在诸如av1和hevc的编解码器中使用。具体地,可以创建合成补片并且对其进行编码(但不显示)以改善预测效率。这可以通过重新使用填充像素的子集存储合成补片来实现。
[0146]
上述补片重新采样(例如,打包和补片分割)过程仅利用几何信息。更全面的方法可以考虑到就几何、纹理和其他属性而言的失真,并且可改善重新采样点云的质量。
[0147]
不同于首先导出几何图像并且在给定所述几何的情况下优化纹理图像,可以执行几何和纹理的联合优化。例如,可以使几何和纹理两者产生最小变形的方式选择几何补片。这可以通过立即将每个可能的几何补片与其对应的纹理补片相关联并且计算其对应的失真信息来完成。如果目标压缩率已知,还可以考虑速率失真优化。
[0148]
在一些实施方案中,上述点云重新采样过程可以额外考虑纹理和属性信息,而不是仅依赖于几何。
[0149]
另外,将3d点映射到2d像素的基于投影的转换可以如下推广以支持3d到2d的任意映射:
[0150]
·
存储3d到2d转换参数或与每个点相关联的像素坐标
[0151]
·
代替深度信息或除深度信息外,存储几何图像中的x、y、z坐标
[0152]
打包
[0153]
在一些实施方案中,与补片相关联的深度图(在本文中也被称为“深度补片图像”或“几何补片图像”,诸如上述的那些)可以被打包到2d图像帧中。例如,打包模块(诸如打包模块208)可以将由空间图像生成模块(诸如空间图像生成模块210)生成的深度补片图像打包。可以将深度图或深度补片图像打包,使得(a)t
×
t像素的非重叠块不包含来自两个不同补片的深度信息,并且(b)所生成的图像帧的大小最小化。
[0154]
在一些实施方案中,打包包括以下步骤:
[0155]
a.将补片按高度然后按宽度进行排序。然后将补片按此次序一个接一个地插入图像帧(i)中。在每个步骤处,以光栅次序遍历图像帧(i)的像素,同时检查是否可以在上述两个条件(a)和(b)下插入当前补片。如果不可能,则(i)的高度加倍。
[0156]
b.重复该过程,直到插入所有补片为止。
[0157]
在一些实施方案中,上述打包过程可以应用于将补片的子集打包在一个图像帧或多个图像帧的多个图块内。这可以允许将基于根据渲染相机位置的可见性具有相似/接近取向的补片存储在同一图像帧/图块中,以实现依赖于视图的流和/或解码。这还可以允许并行编码/解码。
[0158]
在一些实施方案中,打包过程可以被认为是装箱问题,并且如上所述的首次适合递减策略可以应用于解决装箱问题。在其他实施方案中,可以在打包过程中应用其他方法,诸如修改的首次适合递减(mffd)策略。
[0159]
在一些实施方案中,如果使用时间预测(诸如关于帧间压缩编码器250所描述的),则除了空间预测/编码之外,还可以利用时间预测/编码来执行这样的优化。可以针对整个视频序列或按图片组(gop)进行这样的考虑。在后一种情况下,可以指定附加的约束。例如,约束可以是图像帧的分辨率不应超过阈值量。在一些实施方案中,即使不使用时间预测,也可以施加附加的时间约束,例如使得对应于特定对象视图的补片移动的距离不超过先前实
例的x个像素。
[0160]
图3b示出了根据一些实施方案的包括打包的补片图像和填充部分的示例图像帧。图像帧300包括打包到图像帧300中的补片图像302,并且还包括在图像帧300的未由补片图像占用的空间中的填充304。在一些实施方案中,可以确定填充(诸如填充304),以便最小化补片图像与填充之间的不一致。例如,在一些实施方案中,填充可以构造新像素块,这些新像素是补片图像边缘上的像素块的复制品或在某种程度上类似于补片图像边缘上的像素块。在一些实施方案中,因为图像和/或视频编码器可以基于相邻像素之间的差值进行编码,所以这样的方法可以减少对包括补片图像和填充的图像帧进行编码所需的字节数。
[0161]
在一些实施方案中,可以按照与打包期间使用的次序相同的次序来存储补片信息,这使得可以处理补片的重叠的2d边界框。因此,接收补片信息的解码器可以按照补片图像被打包到图像帧中的相同次序从图像帧中提取补片图像。另外,因为解码器知道该次序,所以解码器可以解析重叠的补片图像边界框。
[0162]
图3c示出了根据一些实施方案的具有重叠补片的示例图像帧312。图3c示出了具有在区域318处重叠的重叠2d边界框314和316的两个补片(补片图像1和补片图像2)的示例。为了确定区域318中的t
×
t块属于哪个补片,可以考虑补片的次序。例如,t
×
t块314可属于最后一个解码的补片。这可能是因为在重叠补片的情况下,较晚放置的补片被放置为使得该补片与先前放置的补片重叠。通过了解放置次序,可以解决重叠边界框的区域与最新放置的补片在一起的问题。在一些实施方案中,对补片信息进行预测和编码(例如,利用熵/算术编码器)。另外,在一些实施方案中,u0、v0、du0和dv0被编码为t的倍数,其中t是填充阶段期间使用的块大小。
[0163]
图3c还示出了图像帧312的块,其中这些块可以进一步分成子块。例如,块a1、b1、c1、a2等可被划分为多个子块,并且在一些实施方案中,子块可被进一步划分为更小的块。在一些实施方案中,编码器的视频压缩模块(诸如视频压缩模块218或视频压缩模块264)可以确定块是包括活动像素、非活动像素还是活动像素与非活动像素的混合。与预定用于对包括活动像素的块进行编码的资源的量相比,视频压缩模块可以预定更少的资源来压缩包括非活动像素的块。在一些实施方案中,活动像素可以是包括关于补片图像的数据的像素,并且非活动像素可以是包括填充的像素。在一些实施方案中,视频压缩模块可以细分包括活动像素和非活动像素两者的块,并且基于块的子块是包括活动像素还是非活动像素来预定资源。例如,块a1、b1、c1、a2可包括非活动像素。又如,块e3可包括活动像素,并且例如,块b6可包括活动像素和非活动像素的混合。
[0164]
在一些实施方案中,可基于投影来确定补片图像,诸如将点云投影到立方体、圆柱体、球体等上。在一些实施方案中,补片图像可包括占用整个图像帧而没有填充的投影。例如,在立方体投影中,六个立方体面中的每个可以是占用整个图像帧的补片图像。
[0165]
例如,图3d示出了根据一些实施方案的正被投影到多个投影上的点云。
[0166]
在一些实施方案中,使用多个投影来对点云的表示进行编码。例如,不同于为点云的分段确定补片,该点云投影在垂直于该分段的法线的平面上,可以将点云投影到多个任意平面或表面上。例如,点云可以投影到立方体、圆柱体、球体等的侧面上。也可以使用与点云相交的多个投影。在一些实施方案中,可以使用常规的视频压缩方法来对投影进行编码,诸如经由视频压缩模块218或视频压缩模块264来编码。具体地,可首先将点云表示投影到
某个形状(诸如立方体)上,并且可以将投影到该形状上的不同投影/面(即前(320)、后(322)、上(324)、下(326)、左(328)、右(330))都打包到单个图像帧或多个图像帧上。该信息以及深度信息可以被单独地编码,或者可以利用编码工具(诸如在hevc(3d-hevc)标准的3d扩展中提供的那些)来编码。该信息可以提供点云的表示,因为投影图像可提供点云的所有投影点的(x,y)几何坐标。另外,可以对提供z坐标的深度信息进行编码。在一些实施方案中,可以通过比较在不同深度划穿点云的不同投影来确定深度信息。将点云投影到立方体上时,例如由于遮挡,投影可能不会覆盖所有点云点。因此,可以对附加信息进行编码以提供这些遗漏点,并且可以为遗漏点提供更新。
[0167]
在一些实施方案中,可以执行对立方体投影的调整,以进一步改善此类投影。例如,可以仅在编码器处应用调整(非规范),也可对编码器和解码器两者应用调整(规范)。
[0168]
更具体地,在一些实施方案中,可以使用另选的投影。例如,不同于使用立方体投影,可以使用圆柱体或球体类型的投影方法。此类方法可以减少(如果不能消除的话)立方体投影中可能存在的冗余,并且减少立方体投影中可能存在的“接缝”的数量或影响。例如,此类接缝可能会在对象边界处产生伪影。与立方体投影方法相比,消除或减少此类接缝的数量或影响可导致改善的压缩/主观质量。对于球体投影情况,可以使用各种子投影,诸如等矩形、等角和authagraph投影等。这些投影可以允许将球体投影到2d平面上。在一些实施方案中,接缝的影响可以通过重叠的投影而不再突出,其中多个投影由点云形成,并且这些投影在边缘处彼此重叠,使得在接缝处存在重叠信息。可以在重叠的接缝处采用共混效应以减少接缝的影响,从而使其不易看见。
[0169]
除了或代替考虑不同的投影方法(诸如圆柱体或球体投影),在一些实施方案中,可使用多个平行投影。多个平行投影可提供附加信息,并且可以减少被遮挡的点数。这些投影可以在解码器处是已知的或发信号通知到解码器。此类投影可以被限定在距点云对象不同距离的平面或表面上。另外,在一些实施方案中,投影可以具有不同的形状,并且还可重叠或穿过点云对象本身。这些投影可以允许捕获点云对象的可能已经通过如上所述的单个投影方法或补片分割方法被遮挡的一些特性。
[0170]
例如,图3e示出了根据一些实施方案的正被投影到多个平行投影上的点云。包括表示咖啡杯的点的点云350被投影到平行的水平投影352上,这些平行的水平投影包括与z轴正交的平面。点云350还被投影到包括垂直于x轴的平面的垂直投影354上,并且被投影到包括垂直于y轴的平面的垂直投影356上。在一些实施方案中,不同于平面,多个投影可包括具有其他形状的投影,诸如多个圆柱体或球体。
[0171]
生成具有深度的图像
[0172]
在一些实施方案中,图像帧只有一个像素子集将被占用并且可以对应于点云的3d点的子集。通过为每个占用的像素存储其相关联点的深度/纹理/属性值,补片图像的映射可用于生成几何、纹理和属性图像。
[0173]
在一些实施方案中,空间信息可以各种变型来存储,例如空间信息可以:
[0174]
a.将深度存储为单色图像。
[0175]
b.将深度存储为y,并且保持u和v为空(其中yuv是颜色空间,也可以使用rgb颜色空间)。
[0176]
c.将关于不同补片的深度信息存储在不同颜色平面y、u和v中,以便避免在压缩期
间补片间污染和/或改善压缩效率(例如,在相同颜色平面中具有相关补片)。另外,可以利用硬件编解码器功能,该硬件编解码器功能可以独立于帧的内容而花费相同的编码/解码时间。
[0177]
d.将深度补片图像存储在可以并行编码和解码的多个图像或图块上。一个优点是将具有相似/接近的取向的深度补片图像或基于根据渲染相机位置的可见性来将深度补片图像存储在相同图像/
[0178]
图块中,以实现依赖于视图的流和/或解码。
[0179]
e.将深度存储为y,并且在u和v中存储深度的冗余版本。
[0180]
f.将x、y、z坐标存储在y、u和v中
[0181]
g.可以使用不同的位深度(例如8、10或12位)和采样(例如420、
[0182]
422、444

)。需注意,不同的位深度可用于不同的颜色平面。
[0183]
填充
[0184]
在一些实施方案中,可以执行填充以用值填满未占用的像素,使得所得图像适合于视频/图像压缩。例如,图像帧填充模块216或图像填充模块262可以如下所述执行填充。
[0185]
在一些实施方案中,在有利于现有视频编解码器所使用的帧内预测模式的同时,在像素块上应用填充。更精确地,对于待填充的大小为b
×
b的每个块,评估在视频编码器侧可用的帧内预测模式,并且保留在占用像素上产生最低预测误差的帧内预测模式。这可以利用以下事实:视频/图像编解码器通常在具有预定义大小(例如64
×
64、32
×
32、16
×
16

)的像素块上操作。在一些实施方案中,其他填充技术可包括线性外推、绘画中修复技术或其他合适的技术。
[0186]
视频压缩
[0187]
在一些实施方案中,视频压缩模块(诸如视频压缩模块218或视频压缩模块264)可以如下所述执行视频压缩。
[0188]
在一些实施方案中,视频编码器可以利用占用图,该占用图为图像的每个像素描述该像素是存储属于点云还是填充像素的信息。在一些实施方案中,此类信息可以允许自适应地启用各种特征,诸如去块效应、自适应环路滤波(alf)或形状自适应偏移(sao)滤波。另外,此类信息可以允许速率控制模块适应包含占用图边缘的块并为这些块分配不同的(例如较低的)量化参数(qp),并且该量化参数本质上是不同数量的位。还可以根据点云投影块的特性来调整编码参数,诸如拉格朗日乘数、量化阈值化、量化矩阵等。在一些实施方案中,此类信息还可以使速率失真优化(rdo)和速率控制/分配能够利用占用图来考虑基于未填充像素的失真。在更一般的形式中,失真的加权可以基于每个像素对点云几何的“重要性”。重要性可以基于多个方面,例如,基于与其他点云样本的接近度、样本的方向性/取向/位置等。例如,面向前方的样本在失真计算中可具有比面向后方的样本更高的权重。可以使用度量诸如均方或绝对误差来计算失真,但是也可以考虑不同的失真度量,诸如ssim、vqm、vdp、hausdorff距离等。
[0189]
另外,在一些实施方案中,如本文所述的此类编码器和解码器或其他编码器和解码器可以适用于其他视觉体积内容,包括网孔、三自由度加(3dof )场景或在一些上下文中另选地称为mpeg miv材料、光场或其他类型的六自由度(6dof)内容。
[0190]
占用图压缩
[0191]
在一些实施方案中,占用图压缩模块(诸如占用图压缩模块220)可以如下所述压缩占用图。
[0192]
示例占用图压缩技术
[0193]
在一些实施方案中,占用图可以分级模式进行编码。此类过程可包括:
[0194]
1.关于每个b1
×
b2像素块(例如,覆盖整个图像帧的矩形,或不同大小的较小块,诸如64
×
64、64
×
32、32
×
32块等)的二进制信息正被编码,指示该块是空的(例如,仅具有填充像素)还是非空的(例如,具有未填充像素)。
[0195]
2.如果该块非空,则可以对第二二进制信息进行编码以指示该块是否是已满的(例如,所有像素都未填充)。
[0196]
3.然后可以通过考虑非空块和非满块的(b1/2)
×
(b2/2)个子块来细化这些块。
[0197]
4.可以重复步骤1至3,直到块的大小达到特定块大小b3
×
b4(例如,大小为4
×
4)。在该级别,只有空/非空信息可以进行编码。
[0198]
5.可以使用基于熵的编解码器对步骤1和步骤2中的二进制信息进行编码。例如,可以使用上下文自适应二进制算术编码器。
[0199]
6.可以利用重构几何图像来更好地对占用图进行编码。更精确地,残余预测误差可以用于预测块是否是空的或者是否是已满的。可以通过使用基于预测情况的不同上下文或仅通过对与预测值异或(xor)的二进制值进行编码来合并此类信息。
[0200]
在一些实施方案中,基于网孔的编解码器可以是上述方法的另选形式。
[0201]
附加的示例占用图压缩技术
[0202]
在一些实施方案中,可利用辅助信息和补片编码次序,以便有效地压缩指示图像帧的每个t
×
t块(例如16
×
16块)所属的补片的映射信息。该映射可以在位流中如下显式地编码:
[0203]
·
通过考虑与块重叠的所有补片,为图像帧的每个t
×
t块创建候选补片列表。
[0204]
·
候选列表以补片的相反次序进行排序。意味着候选补片从最小补片到最大补片进行排序。
[0205]
·
对于每个块,通过使用算术或其他形式的熵编码器(例如,基于uvlc或霍夫曼)来对该列表中补片的索引编码。
[0206]
·
需注意,为空块分配特殊索引,诸如零。
[0207]
·
上述映射信息使得能够检测图像帧的空t
×
t块(例如,仅包含填充像素的块)。仅为非空t
×
t块(例如,包含至少一个未填充像素的块)对占用信息进行编码。
[0208]
·
占用图以b0
×
b0块的精度进行编码。为了实现无损编码,将b0选择为1。在一些实施方案中,b0=2或b0=4,这可以导致视觉上可接受的结果,同时显著减少对占用图进行编码所需的位数。
[0209]
·
二进制值与属于同一t
×
t块的b0
×
b0子块相关联。不同的策略也是可能的。例如,如果子块包含至少一些未填充像素,则可以将值1相关联,否则将0相关联。如果子块的值为1,则认为该块已满,否则为空子块。
[0210]
·
如果t
×
t块的所有子块都已满(例如,值为1)。认为该块已满。否则,认为该块未满。
[0211]
·
为每个t
×
t块对二进制信息进行编码,以指示该块是否是已满的。可以使用各
种编码策略。例如,可以使用上下文自适应二进制算术编码器。
[0212]
·
如果该块未满,则对额外的信息进行编码以指示已满/空子块的位置。更精确地,该方法可如下进行:
[0213]

为子块定义不同的遍历次序。图12b示出了一些示例。遍历次序是预先确定的,并且是编码器和解码器两者已知的。
[0214]

编码器选择遍历次序中的一个,并且在位流中显式地发信号通知其索引。
[0215]

通过使用游长编码策略对与子块相关联的二进制值进行编码。
[0216]

对初始子块的二进制值进行编码。可以使用各种编码策略。例如,可使用固定长度编码或上下文自适应二进制算术编码器。
[0217]

在遵循编码器选择的遍历次序的同时,检测到连续的游程0和1。
[0218]

对检测到的游程数量进行编码。可以使用各种编码策略。例如,可使用固定长度编码或上下文自适应二进制算术编码器,或通用可变长度编码器(uvlc)。
[0219]

然后,对每个游程的长度进行编码,最后一个游程除外。可以使用各种编码策略。例如,可使用固定长度编码、上下文自适应二进制算术编码器,或通用可变长度编码器。
[0220]
需注意,可以通过使用编码器在位流中显式地发信号通知的值来初始化在算术编码期间使用的符号概率,以便改善压缩效率。可以在帧、切片、块的行或块级别或使用非固定间隔来发信号通知此类信息。在那种情况下,系统可具有发信号通知初始化间隔的能力,或者可以在编码器与解码器之间预定义间隔适配。例如,间隔可以从一个块开始,然后在之后递增一个块(例如,使用{1,2,3

n-1

}个块的自适应位置)。
[0221]
遍历次序的选择可能直接影响压缩效率。不同的策略也是可能的。例如,编码器可以选择遍历次序,这将导致位数最少或游程数量最少。在一些实施方案中,可以使用具有可变大小的分级子块。
[0222]
在一些实施方案中,时间预测可以如下用于对占用图进行编码/压缩:
[0223]
a.可以根据参考帧的占用图来预测当前帧的占用图(例如,通过假设零运动的差分过程)。预测可以在帧级别完成,但是也可以在子块级别完成,例如用1位来发信号通知一个块是将在时间上预测还是将改为使用关于块的原始图。
[0224]
b.通过使用运动补偿以及通过将运动矢量与每个t
×
t块相关联,可增强预测。
[0225]
c.可以将当前块的值与运动矢量所参考的块或协同定位的块的值进行异或运算。如果没有使用预测,则可以按原样对当前块进行编码。
[0226]
d.运动矢量可以是整数、整数倍或具有子像素精度。
[0227]
e.上述编码策略可以应用于这些结果。
[0228]
f.可以基于先前编码块的运动矢量来预测当前块的运动矢量。例如,可以基于已经被编码的空间和/或时间上相邻的块的运动矢量来计算候选预测运动矢量的列表。可以用作预测器的最佳候选者的索引和差值可以在位流中显式地编码。该过程可以类似于在编解码器(诸如avc和hevc)中使用的过程。可以类似于hevc中完成的来执行时间候选者的减少,从而减少存储器需求。然后可以使用诸如上下文自适应算术编码或uvlc的技术来对残余运动矢量进行编码。
[0229]
g.还可以支持跳过模式以指示预测块与参考块精确匹配。在那种情况下,不需要残余运动矢量。
[0230]
h.可以使用不同的块大小,而不是坚持使用t
×
t块。
[0231]
i.块大小和运动矢量的选择可以通过最小化对占用图进行编码所需的位数来实现。
[0232]
j.该过程还可以考虑多个参考。
[0233]
在一些实施方案中,用于对占用图进行编码/压缩的附加技术可以包括:
[0234]
·
使用视频图片中所包括的线索来帮助对占用图进行编码,诸如:
[0235]

为仅由填充像素组成的块使用高量化参数qp(例如,51)或使用跳过模式。
[0236]

可基于从与纹理/几何/运动帧相关联的视频位流中提取的信息来自适应地调整算术编码上下文。
[0237]
·
将与像素相关联的二进制值分组为8位或10位字,然后使用基于字典的方法(诸如deflate算法)对这些字进行编码。
[0238]

可将像素分组为4
×
2/5
×
2块,或者利用之字形扫描进行分组。
[0239]

只有属于非空t
×
t块的像素可被编码。
[0240]

指示每个t
×
t块属于哪个补片的映射信息可被编码。
[0241]
附加的示例占用图压缩技术
[0242]
在一些实施方案中,基于占用图的块是否被占用或未占用来生成二进制占用图。这能够以与上述方式类似的方式执行。另外,以与上述方式类似的方式使用算术编码器来对补片信息(例如,边界框位置、大小等)进行编码。然而,不是依赖于占用图来丢弃与至少一个补片边界框相交的空块,而是用局部索引的特殊值来显式地发信号通知空框。在该方法中,在需要时对块到补片信息进行解码。
[0243]
在一些实施方案中,不是使用如上所述的算术编码器来对将占用图的框与特定补片链接起来的块到补片信息进行编码,而是可使用基于视频的编码器来对块到补片信息(其包含局部索引)进行编码。然后可使用对应的视频解码器对已编码块到补片信息进行解码。
[0244]
在一些实施方案中,不是基于占用图的块是否被占用或未占用来生成二进制占用图,而是生成非二进制占用图。非二进制占用图被配置为使得每个像素不仅指示像素是被占用还是未占用,而且包括属性值,诸如与同像素相关联的补片的局部索引值相关联的颜色值。如果像素未占用,则像素可具有为零的颜色值。另外,以与上述方式类似的方式使用算术编码器来对补片信息(例如,边界框位置、大小等)进行编码。可使用基于视频的编码器来对非二进制占用图进行编码。解码器可通过对非二进制占用图进行解码并且将每个像素值与局部索引列表匹配来检索块到补片信息。
[0245]
在一些实施方案中,不是使用局部索引,而是可将完整的补片列表用作索引。在此类实施方案中,可能无需计算每个块的候选补片列表。解码器可通过对非二进制占用图进行解码直接从像素的值中读取与像素相关联的补片的索引值来检索块到补片信息。在此类实施方案中,可省略局部索引,因为存在可与块相关联的足够的唯一值(例如,非二进制)值,使得每个候选补片可被分配唯一值。
[0246]
在一些实施方案中,在占用图的生成期间,补片的边界框可被调整或最初被打包在图像帧中,使得边界框不重叠。这消除了关于特定边界框是属于特定补片还是另一补片的歧义。使用算术编码器对补片信息(具有非重叠边界框)进行编码。因为关于哪个补片与
哪个边界框在一起不存在歧义,所以可省略块到补片信息(诸如在局部索引或完整索引中,如上所述)。
[0247]
在一些实施方案中,使用完整补片列表(而不是局部索引)的过程可导致大量的补片,这可超过可在非二进制占用图中表示的最大可能数量的值(例如,颜色值)。在一些实施方案中,为了解决此类问题,可将占用图分解为分段,其中每个分段具有有限数量的补片。因此,对于每个分段,补片索引是绑定的。例如,可将更少的补片列出为占用图的分段的可能性,使得对于每个分段,可能补片的列表小于最大可能数量的值(例如,颜色值)。在一些此类实施方案中,可允许用于不同补片的边界框在分段内重叠,但不跨分段重叠。在解码期间,每个分段可具有其自身的用于该分段的可能补片的全局索引列表。
[0248]
在一些实施方案中,生成二进制占用图,使得当补片被打包在图像帧中时,与占用分辨率对准的补片的边界框不与大小=_占用分辨率*大小占用分辨率(例如16
×
16块)的任何先前打包的补片相交。使用算术编码器对每个补片的补片信息(例如,边界框位置和大小)进行编码。每个补片的补片信息的编码次序可创建补片的层级,使得对于任何重叠的边界框,可基于补片信息的层级来解决对应补片与边界框在一起的问题。解码器可使用算术编码的补片信息来重构块到补片信息(该块到补片信息未进行显示地编码)。例如,可在解码器处以与在编码时间生成补片列表的次序相同的次序解析补片列表,其中该次序指示将补片打包在图像帧中的次序。这是可能的,是因为打包会保证给定补片的边界框不覆盖任何先前处理的补片。在此类实施方案中,能够以诸如小到大的次序(或反之亦然)打包(和发信号通知)补片。在打包期间,每个块可包括仅一个补片的像素,但是用于多个补片的一些边界框可重叠,其中重叠的补片的块不包括任一补片的像素,或包括仅一个补片的像素,但不包括多于一个补片的像素。
[0249]
辅助补片信息压缩
[0250]
在一些实施方案中,对于每个补片,可对以下信息进行编码。例如,由辅助补片信息压缩模块222进行编码。
[0251]
·
它在打包图像帧中的位置(u0,v0)及其2d边界框的范围(du0,dv0)。
[0252]
·
最小/最大/平均/中间深度值。
[0253]
·
投影方向的索引。
[0254]
基于视频的占用图压缩
[0255]
如上所述,在一些实施方案中,占用图是二进制信息,该二进制信息指示对于图像帧中的每个像素,是否应当将该像素解释为点云中的实际点,例如该像素是否为填充像素。另外,如上所述,辅助补片信息为图像帧的每个t
×
t块指示该块属于哪个补片。尽管上文描述了对图像帧的块的补片的索引进行编码并且保持图像帧的子块的编码信息直到子块完全空或完全占用,但替代方法是使用视频编码器来对用于占用图的附加图像帧进行编码。在此类实施方案中,附加占用图图像帧指示基于图像属性(诸如不同颜色)的占用和未占用像素(例如,占用像素可以是白色的并且未占用像素可以是黑色的)。这样,不必完全细分图像帧的块直到确定仅占用或未占用的子块为止。相反,仅需要识别相应补片的图像帧中的边界框大小和位置。已视频编码的占用图将镜像图像帧,并且占用图视频图像帧中的不同像素值将指示补片视频图像帧的给定边界框中的哪些像素是补片图像像素或是填充像素。因此,不需要创建图像帧的细分块的位流,并且不需要为每个子块指示该子块是满的还是
空的。相反,可使用已视频编码的占用图来确定补片边界框中所包括的哪些像素是填充像素或补片图像像素。在一些实施方案中,可首先对占用图进行编码,并且然后将其用于生成与图像帧的块相关联的补片的索引。在一些实施方案中,压缩过程遵循利用现有视频编解码器来压缩占用图的以下程序。
[0256]
可以b0
×
b1块的精度对占用图进行编码。为了实现无损编码,可以将b0和b1选择为等于1。实际上,b0=b1=2或b0=b1=4可以导致视觉上可接受的结果,同时显著减少对占用图进行编码所需的位数。
[0257]
在一些实施方案中,单个二进制与每个b0
×
b1子块相关联。不同的策略也是可能的。例如,可以将值1与子块包含至少一个未填充像素的规则相关联,并且将值0与其他情况相关联。为了降低计算复杂性,可以将多个b0
×
b1块的二进制值组合在一个像素值中。
[0258]
可以通过将每个b0
×
b1块的值存储在像素中来生成二进制视频帧。可以通过使用无损视频编解码器来压缩所获得的视频帧。例如,可以利用hevc视频编解码器,并且可以使用其屏幕上下文编码(scc)主配置文件或其他配置文件。
[0259]
在一些实施方案中,占用图能够以4:4:4或4:2:0的色度格式打包,其中色度信息可包含固定值,例如对于8位编解码器包含值0或128。占用图也可以使用支持单色表示的编解码器来进行编码。占用图可以复制到所有颜色分量中,并且使用4:4:4表示进行编码。可以使用其他占用图的重新排列方式,以便适合以4:4:4、4:2:2或4:2:0表示的数据,同时保留信号的无损性质,并且同时保留占用图的无损特性。例如,可以将占用图分为偶数水平位置子图和奇数水平位置子图,并且将这些子图嵌入到4:4:4信号中,奇数位置样本在y平面中并且偶数位置样本在u平面中,然后进行编码。这可以降低复杂性,因为可以对分辨率降低了(一半)的图像进行编码。可以使用其他此类布置。
[0260]
占用图用于检测非空t
×
t块,并且仅针对这些块按照如下步骤对补片索引进行编码:
[0261]
1)通过考虑包含该块的所有补片,为每个t
×
t块创建候选补片列表。
[0262]
2)候选列表以补片的相反次序进行排序。意味着索引从最小补片到最大补片进行排序,例如,边界框覆盖最小区域的补片被排序在边界框覆盖补片图像帧的较大区域的补片前面。
[0263]
3)对于每个块,通过使用熵编码器(例如算术编码器或其他合适的编码器)来对该列表中补片的索引进行编码。
[0264]
占用图的2d边界框中的补片对准和大小确定
[0265]
在一些实施方案中,可应用方法来去除由占用图量化/下采样/上采样过程创建的冗余输出点。通过去除这些点,重构过程可导致更好的重构。此外,在后处理期间,例如当执行如下所述平滑时,可能需要处理更少的点,从而降低重构复杂性以及在编码期间的属性图像生成期间。另外,几何和属性层中“去除的”点的质量可能不太重要,因此可在压缩期间利用此类点的特性,诸如将更少的资源用于将被去除的冗余点。
[0266]
在一些实施方案中,当创建补片时,补片大小信息(例如,大小u0、大小v0)被定义为占用打包块的倍数。换句话说,当补片大小是nxm并且占用打包块分辨率为16时,大小u0和大小v0将为(16*(n/16 1),16*(m/16 1))。例如,表1示出了用于确定补片的2d边界框的宽度和宽度的示例性算法。
[0267]
表1:补片导出的宽度和高度
[0268][0269]
在一些实施方案中,在补片边界框中,可存在最大值等于(占用打包块分辨率-1)的“空”行和/或列。
[0270]
在一些实施方案中,可通过oprecision(其可从已解码占用图视频分辨率和已解码视频帧的标称分辨率导出)对占用图进行量化/下采样,并且然后在使用时对其进行反量化/上采样。因此,(oprecision x oprecision)像素将共享一个相同的值(1.occupied 0.empty)。当(oprecision x oprecision)像素在量化过程之前未完全填充1时,反量化过程会将先前的空像素标记为冗余点,并且这会增加点云的失真和复杂性。
[0271]
简单地丢弃原本会以其他方式创建附加点的样本的方法可能在点云的重构期间导致孔或裂纹。对于不规则形状,移动占用样本来减少冗余像素的方法可导致冗余像素。
[0272]
在一些实施方案中,为了改进此类方法以及为了去除冗余输出点,可调整补片在占用图中的宽度、高度和放置。
[0273]
点云重新采样
[0274]
在一些实施方案中,点云重新采样模块(诸如点云重新采样模块252)可以如下所述对点云进行重新采样。
[0275]
在一些实施方案中,动态点云从一帧到另一帧可以具有不同的点数。有效的时间预测可能需要将当前帧(表示为cf)的点映射到参考帧(表示为rf)的点。在位流中发信号通知此类映射可能需要大量的位,并且因此可能效率低下。相反,可以执行当前帧cf的重新采样,使得当前帧cf具有与参考帧rf相同的点数。更精确地,参考帧rf的点可以被移位,使得参考帧rf的形状匹配当前帧cf的形状。作为第二步,可以将当前帧cf的颜色和属性传递到参考帧rf的变形版本。所获得的帧cf’可以被认为是当前帧的重新采样版本。可以通过比较两个选项(例如,将cf'编码为帧间对比将cf编码为帧内)的速率失真代价来做出压缩cf的近似cf'的决定。在一些实施方案中,可以执行对rf的预调整以努力使其成为将来的cf图像的更好的参考。重新采样可以包括以下步骤:
[0276]
a.首先,可以一致地估计和取向与当前帧cf和参考帧rf相关联的点的法线。对于属于当前帧cf的每个点p(或属于rf的每个点q),假设α(p)(或α(q))是其位置,并且(或)是其法线。然后,通过将点的位置及其法线的加权版本组合到同一矢量中,将表示为υ(p)(或υ(q))的6d矢量与每个点相关联。
[0277]
其中ε是控制关于位置的法线的重要性
的参数。ε可以由用户定义,或者可以通过应用优化程序来确定。该参数也可以是固定的或自适应的。
[0278]
b.从参考帧rf到当前帧cf和从当前帧cf到参考帧rf的两个映射如下计算:
[0279]
i.将参考帧rf的每个点q映射到当前帧cf的在上一步中定义的6d空间中与q的距离最小的点p(q)。
[0280]
ii.将当前帧cf的每个点p映射到参考帧rf的在上一步中定义的6d空间中与p的距离最小的点q(p)。假设ρ(q)是当前帧cf的映射到同一点q的点集合。
[0281]
c.在每次迭代
[0282]
i.参考帧rf的点的位置如下更新:
[0283]
其中|ρ(q)|是
[0284]
ρ(q)的元素数。参数w可以由用户定义,或者可以通过应用优化程序来确定。该参数也可以是固定的或自适应的。
[0285]
ii.先前更新的步骤通常会导致点的不规则重新分区。为了克服此类限制,应用了基于拉普拉斯的平滑程序。该想法是要更新点的位置,使得它们保持尽可能接近{α

(q)},同时有利于在参考帧rf中进行尽可能接近原始点重新分区的重新分区。更精确地,可以对以下稀疏线性系统进行求解:
[0286][0287][0288]
其中n(q)是参考帧rf中q的r个最近邻居的集合。
[0289]
iii.然后,更新的rf'点云与当前帧cf之间的映射如下
[0290]
1.将rf’的每个点q映射到当前帧cf的在3d位置空间中与q的距离最小的点p(q)。
[0291]
2.将当前帧cf的每个点p映射到参考帧rf的在3d位置空间中与p的距离最小的点q(p)。假设ρ(q)是当前帧cf的映射到同一点q的点集合。
[0292]
d.迭代该过程,直到达到预定义的迭代次数或没有进一步的改变为止。
[0293]
e.在该阶段,通过利用以下公式,将颜色和属性信息从当前帧cf传递到rf'
[0294][0295]
其中a表示要传递的纹理或属性,|ρ(q)|是ρ(q)的元素数。参数w(a)可以由用户定义,或者可以通过应用优化程序来确定。该参数也可以是固定的或自适应的。
[0296]
3d运动补偿
[0297]
在一些实施方案中,可以通过取当前重新采样帧处的值减去参考帧的对应值(例如运动补偿值)所得的差值来在时间上预测位置、属性和纹理信息。这些值可以被馈送到图像生成阶段以存储为图像。例如,此类技术可以由3d运动补偿和δ矢量预测模块254执行。
[0298]
平滑滤波器
[0299]
在一些实施方案中,解码器的平滑滤波器(诸如解码器230的平滑滤波器244,或解码器280的平滑滤波器276)可以如下所述执行平滑。
[0300]
在一些实施方案中,重构点云可以在补片边界处表现出中断部分,特别是在非常低的位率下。为了减轻此类问题,可以将平滑滤波器应用于重构点云。应用平滑滤波器可以包括:
[0301]
a.通过利用占用图,编码器和解码器两者能够检测边界点,这些边界点被定义为属于在以上先前部分中描述的分级占用图压缩程序的最后一次迭代期间编码的b0
×
b0块的点。
[0302]
b.边界点的位置/属性/纹理可能会更新。更精确地,可以基于边界点在点云中的r个最近邻居来为相应边界点分配平滑位置。平滑位置可以是最近邻居的质心/中值。另一个选项可以包括拟合最近邻居的平面或任何平滑表面,并且将该点在该表面上的投影指定为平滑位置。参数的数量和/或平滑策略可以由用户选择或通过应用优化策略来确定。它们可以对于所有点固定或自适应地选择。这些参数可以在位流中发信号通知。
[0303]
c.为了降低平滑阶段的计算复杂性,在寻找最近邻居时可以考虑重构点云的子采样版本。通过考虑几何图像和占用图的子采样版本,可以有效地得出重构点云的子采样版本。
[0304]
闭环颜色转换
[0305]
在一些实施方案中,用于点云的编码器和/或解码器还可以包括用于将点云的颜色属性从第一颜色空间转换到第二颜色空间的颜色转换模块。在一些实施方案中,关于点云的颜色属性信息在被转换到第二颜色空间时可以被更有效地压缩。例如,图4a和图4b示出了编码器400和450,其是与图2a和图2c中示出的类似的编码器,但是这些编码器分别还包括颜色转换模块402和404。虽然未示出,但是在一些实施方案中,解码器(诸如图2b和图2d中示出的解码器)还可以包括用于将解压缩点云的颜色属性转换回原始颜色空间的颜色转换模块。
[0306]
图4c示出了根据一些实施方案的闭环颜色转换模块的部件。图4c所示的闭环颜色转换模块410可以是与图4a和图4b所示的闭环颜色转换模块402和404类似的闭环颜色转换模块。
[0307]
在一些实施方案中,闭环颜色转换模块(诸如闭环颜色转换模块410)从视频编码器(诸如图4a中所示的视频压缩模块218或图4b中所示的视频压缩模块264)接收压缩点云。另外,闭环颜色转换模块(诸如闭环颜色转换模块410)可以接收有关原始非压缩点云的属性信息,诸如点云的点在下采样、上采样、颜色转换之前的颜色值等。因此,闭环颜色转换模块可以接收点云的压缩版本(诸如解码器将接收的),并且还可以接收由于采样、压缩或颜色转换而导致的任何失真被引入点云之前点云的参考版本。
[0308]
在一些实施方案中,闭环颜色转换模块(诸如闭环颜色转换模块410)可以包括视频解压缩模块(诸如视频解压缩模块270),以及几何重构模块(诸如几何重构模块412)。视频解压缩模块可以将一个或多个视频编码的图像帧解压缩,以产生解压缩图像帧,每个图像帧包括打包到图像帧中的一个或多个补片图像。然后,几何重构模块(诸如几何重构模块412)可以生成重构点云几何。然后,重新着色模块(诸如重新着色模块414)可以基于所确定的重构几何来确定点云中的点的颜色。例如,在一些实施方案中,可以使用最近邻居方法或其他方法来基于子采样颜色信息确定关于点云的点的估计颜色值,其中未对点云的每个点将颜色值显式地编码。因为在补片过程、压缩过程、解压缩过程和几何重构过程期间可能会
存在损失,所以重构点云中的点的几何可能与原始点云中的几何不同。由于这种差异,依靠点之间的几何关系来将颜色值编码的颜色压缩技术可能会导致在解码和解压缩时的颜色与原始颜色略有不同。例如,如果基于最近相邻点的颜色值确定颜色,则几何的改变可能会导致与被选择来在编码器处对残差值进行编码的不同的最近邻居被选择来在解码器处确定关于该点的颜色值。因此,可以将失真添加到解码的解压缩点云。
[0309]
如果颜色空间转换模块无法解释这种在将点云转换为打包在图像帧中的补片时发生的失真以及在对图像帧进行编码时发生的失真,则颜色空间转换模块可以不选择最佳颜色转换参数,诸如亮度和色度值。例如,使得第一颜色空间中的打包图像帧紧密匹配转换到第二颜色空间中的打包图像帧的最佳颜色转换参数可以不同于当解释上游和下游失真时的最佳颜色转换参数。
[0310]
例如,为了解释此类失真,当确定用于将图像帧从第一颜色空间转换(诸如r’g’b’4:4:4到ycbcr 4:2:0)的颜色转换参数时,纹理/属性图像颜色空间转换和重新采样模块(诸如模块416)可以考虑在来自重新着色模块416的“重建”颜色值与来自原始非压缩参考点云的原始颜色值之间的差值。因此,如图4c所示,提供给视频编码器218和264的经颜色转换和重新采样的纹理/属性图像可以考虑在点云压缩和解压缩的任何阶段引入的失真,并且可以考虑此类失真而利用最佳颜色转换参数。
[0311]
在重构点云表示时,此类方法可能会导致失真大大降低,同时保持4:2:0信号的高可压缩性。
[0312]
在一些实施方案中,使用以下形式的3
×
3矩阵转换执行从4:4:4r’g’b’到4:2:0ycbcr表示的转换:
[0313][0314]
在上述矩阵中,y'是亮度分量,而cb和cr是色度分量。在应用传递函数来利用信号的心理视觉特性之后,r’、g’和b’的值分别对应于红色、绿色和蓝色分量。根据红色、绿色和蓝色分量与cie 1931 xyz颜色空间的关系选择系数a
yr
到a
crb
。此外,cb和cr分量还通过以下方式与y'相关:
[0315]
其中alpha=2*(1-a
yb
)
[0316]
其中beta=2*(1-a
yr
)
[0317]
还存在以下关系:
[0318][0319][0320]acbb
=0.5
[0321]acrr
=0.5
[0322][0323][0324]
上述过程之后是色度分量的水平和垂直的2x下采样,从而导致色度分量在样本总数方面减少到亮度分量的四分之一,水平减少一半,垂直减少一半。此类过程不仅可以帮助压缩,而且可以帮助提高带宽和处理ycbcr 4:2:0信号的复杂性。
[0325]
在使用此类方法对颜色分量进行量化以及使用对色度分量的下采样和上采样过程时,可能会导致失真,该失真可能会影响重构信号的质量,尤其是r’g’b’,并且还影响xyz(cie 1931域)。然而,在考虑到此类失真时,生成色度和亮度值的闭环转换过程可显著改善质量。
[0326]
例如,在亮度调整过程中,可以使用上述公式来转换色度分量,另外,在给定某些参考滤波机制的情况下,可以执行下采样和上采样。之后,使用重构色度样本,可以计算将导致cie 1931xyz空间中亮度y分量的失真最小的适当亮度值。可以通过搜索过程而不是如上提供的直接计算方法来得出此类亮度值。该方法的改进和简化可包括用于得出亮度值的插值技术。
[0327]
投影点云图像也可以从用于4:2:0转换的类似策略中受益。例如,在这种上下文中,可以利用包括亮度调整方法的闭环颜色转换。也就是说,不同于通过直接使用上文的3
×
3矩阵并且将所有相邻色度值求平均以生成关于投影图像的4:2:0色度表示来转换点云数据,可以先在4:4:4网格上使用r'g'b'表示来投影点云数据/补片。对于这个新图像,然后可以在使用闭环优化(诸如亮度调整方法)时将其转换为ycbcr 4:2:0表示。假定传递特性函数已知,例如bt.709,st 2084(pq)或一些其他传递函数以及信号的颜色原色,例如bt.709或bt.2020,则可以在最终转换之前计算亮度分量y的估计。然后,可以使用更复杂的滤波器来计算cb和cr分量以及对其进行下采样和上采样。然后可以接着计算将导致尽可能接近y的亮度值yrecon的y’值。如果rgb域中的失真是较高的失真,则可以改为考虑使用使r’、g’和b’的联合失真最小化的y'值。
[0328]
对于点云数据,由于几何还可能由于有损压缩而发生变化,因此纹理失真也会受到影响。具体地,可以通过首先针对原始点云和重构点云中的每个点分别确定它们在重构点云和原始点云中的最近点来计算总体纹理失真。然后,可以为那些匹配点计算rgb失真,并且跨整个点云图像累积rgb失真。这意味着,如果几何由于有损压缩而变化,则纹理失真也会受到影响。假设纹理可能已经失真,可能有利的是在色度的闭环转换期间考虑几何。
[0329]
在一些实施方案中,修改几何,以使得在点云的给定区域中的相对采样密度被调整为类似于点云的其他区域。此处,相对采样密度被定义为原始点相对于均匀2d采样网格的密度。
[0330]
因为相对采样密度可以在给定补片内变化,所以该信息可用于引导如上关于占用图和辅助信息所述的补片分解过程,其中补片近似用于确定局部几何。此外,该信息可用于引导编码参数,以在压缩之后实现更均匀的质量。如果局部区域具有较高的相对采样密度,则编码器可以通过各种方法更好地对该区域进行编码。各种方法可以包括:可变块大小决定、量化参数(qp)、量化舍入、去块效应、形状自适应偏移(sao)滤波等。
[0331]
在一些实施方案中,首先根据目标位率或质量来压缩几何信息,然后在生成纹理投影图像之前重构该几何信息。然后,鉴于重构的几何,确定重构点云中与原始点云中的每个点对应的最近点。通过确定重构点云中的所有点在原始点云中的所有匹配点,可以针对这些点重复该过程。重构点云中的一些点可能会与原始点云中的多个点匹配,这将对失真计算产生影响。该信息可用于闭环/亮度调整方法中,以便确保最小化整个点云的纹理失真。也就是说,可以计算出重构点云中位置(x,y,z)处的样本pr对整个点云的失真影响(假定在ycbcr数据上使用mse进行计算):
[0332]
d(pr)=doriginal(pr) dreconstructed(pr)
[0333]
d(pr)=sum_matching(((y_pr

y_or(i))^2 (cb_pr

cb_or(i))^2 (cr_pr

cr_or(i))^2) sqrt((y_pr

y_or)^2 (cb_pr

cb_or)^2 (cr_pr

cr_or)^2)
[0334]
在上式中,y_pr、cb_pr和cr_pr是点pr的亮度和色度信息,y_or(i)、cb_or(i)和cr_or(i)对应于发现与原始图像中的点pr的几何位置匹配的所有点的亮度和色度信息,并且从重构图像看,y_or、cb_or和cr_or是与原始图像中的点pr的位置匹配的点。
[0335]
如果在闭环转换/亮度调整的上下文中的失真计算使用d(pr),则可以实现更好的性能,因为这不仅优化了投影失真,而且还优化了点云失真。此类失真不仅可以考虑亮度和色度值,而且可以替代或另外地考虑其他色域分量,诸如r、g或b,亮度y,cie 1931 x和y,cie 1976 u’和v’,ycocg,以及ictcp颜色空间等。
[0336]
如果重新压缩几何,则可能会有不同的最佳失真点。在这种情况下,重新执行转换过程可能是合适的。
[0337]
在一些实施方案中,可以如下最小化如下所述测量的纹理失真:
[0338]
·
假设(q(j))
i∈{1,

,n}
和分别是原始几何和重构几何。
[0339]
·
假设n和n
rec
分别是原始点云和重构点云中的点数。
[0340]
·
对于重构点云中的每个点p
rec(i)
,假设q
*(i)
是该点在原始点云中的最近邻居,并且r(q
*
(i))、g(q
*
(i))和b(q
*
(i))是与q
*(i)
相关联的rgb值。
[0341]
·
对于重构点云中的每个点p
rec(i)
,假设是原始点云中共享p
rec(i)
作为其在重构点云中的最近邻居的点的集合。需注意,可以为空,或者可以具有一个或多个元素。
[0342]
·
如果为空,则rgb值r(q
*
(i))、g(q
*
(i))和b(q
*
(i))与点p
rec(i)
相关联。
[0343]
·
如果不为空,则如下进行:
[0344]

表示为和的虚拟rgb值如下计算:
[0345]

[0346]

[0347]

[0348]

需注意,和对应于点的平均rgb值。
[0349]

最终的rgb值r(p
rec
(i))、g(p
rec
(i))和b(p
rec
(i))通过应用以下线性插值获得:
[0350]

[0351]

[0352]

[0353]

选择插值参数w,使得随后的成本函数c(i)最小化
[0354]
o需注意,通过使成本c(i)最小化,使如下所述的失真测量最小化。
[0355]
o可使用不同的搜索策略来找到参数w
[0356]

使用下文描述的闭合形式解决方案。
[0357]

无搜索:使用w=0.5。
[0358]

完全搜索:在间隔[0,1]中选择离散值集合(wi)
i=1
…w,并且关于这些值评估c(i)以便找到w
*
,从而将c(i)最小化。
[0359]

梯度下降搜索:从w=0.5开始。评估e1(i)、e2(i)和c(i)。将c(i)和w存储为最低成本及其相关联的插值参数w。如果e1(i)》e2(i),则基于e1(i)的梯度更新w,否则使用e2(i)的梯度。以新的w值重新评估e1(i)、e2(i)和c(i)。将新成本c(i)与迄今为止找到的最低成本进行比较。如果新成本高于最低成本止损,则更新最低成本和w的相关联值,并且继续进行梯度下降,其中r(p
rec
(i))、g(p
rec
(i))和b(p
rec
(i))是待确定的三个未知数。
[0360]
在一些实施方案中,可以利用其他颜色空间而不一定是rgb颜色空间来执行上述过程。例如,可以替代性地使用cie 1931 xyz或xyy、cie 1976 yu’v’、ycbcr、ipt、ictcp、la*b*或其他一些颜色模型。此外,可考虑对每个分量的失真的不同加权。还可以考虑基于照明的加权,例如,在黑暗区域中的加权失真大于在明亮区域中的失真。也可以考虑其他类型的失真,包括邻域信息。也就是说,在较稀疏的面积中误差的可见性可能比在较稠密的区域中更高,这取决于当前样本和相邻样本的强度。可以就如何执行优化来考虑此类信息。
[0361]
色度信息的下采样和上采样也可以考虑几何信息(如果可用)。也就是说,不是在不考虑几何的情况下对色度信息进行下采样和上采样,而是可以考虑在投影样本的邻域周围的点云的形状和特性,并且在这些过程期间适当地考虑或排除相邻样本。具体地,可以认为用于下采样或插值的相邻样本具有与当前样本的法线尽可能类似的法线。也可以考虑滤波期间根据法线差异以及到点的距离进行的加权。这可有助于改善下采样和上采样过程的性能。
[0362]
应当指出的是,对于一些系统,cb/cr信息的上采样可能必须经过现有架构,例如,现有的颜色格式转换器,并且可能无法执行此类引导上采样。在这些情况下,可能仅能够考虑下采样。
[0363]
在一些实施方案中,可能能够在位流语法中指示用于上采样色度信息的优选方法。在此类情况下,解码器(被包括在编码器中)可以尝试各种上采样滤波器或方法,找到性能最佳的滤波器或方法,并且在位流语法中指示该滤波器或方法。在解码器侧,解码器可能知道哪种上采样方法对于重构全分辨率ycbcr并因此重构rgb数据将表现最佳。此类方法可以是强制性的,但是在一些架构中也可以是任选的。
[0364]
剪辑以及用于颜色转换的其他考虑因素也可能适用于点云数据,并且可能被认为进一步改善了点云压缩系统的性能。此类方法还可以应用于其他颜色表示,并且不一定应用于ycbcr数据,诸如ycocg和ictcp表示。对于此类表示,由于颜色变换的性质,可能需要不同的优化。
[0365]
示例目标评估方法
[0366]
点云由以(x,y,z)表示的点的集合以及颜色分量(y,u,v)十分重要的各种属性组成。首先,定义点v。该点在3d空间(x,y,z)中具有强制性位置,并且具有任选的颜色属性c,该颜色属性具有分量r,g,b或y,u,v,以及能够表示法线或纹理映射的任选其他属性。
[0367]
点v=(((x,y,z),[c],[a0..aa]):x,y,z∈r,[c∈(r,g,b)|r,g,b∈n],[ai∈[0,1]])
ꢀꢀꢀ
(定义1)
[0368]
然后,点云是k点的集合,没有严格的次序:
[0369]
原始点云v
or
={(vi):i=0.....k-1}
ꢀꢀꢀ
(定义2)
[0370]
点云包括(x,y,z)坐标的集合和可附接到这些点的属性。原始点云vor(420)将充当确定第二劣化点云vdeg(424)的质量的参考。vdeg由n个点组成,其中n不一定等于k。vdeg是可能因vor的有损编码和解码(例如,操作422)而质量较低的点云的版本。这可能导致不同的点计数n。
[0371]
劣化点云v
deg
={(vi):i=0.....n-1}
ꢀꢀꢀ
(定义3)
[0372]
由vor和vdeg计算质量度量q_(点云),并且将该质量度量用于完整参考质量度量426的评估,如图4d所示。
[0373]
在一些实施方案中,下面的表3概述了用于评估点云的质量的度量。几何失真度量类似于用于基于haussdorf(linf)和均方根(l2)的网孔的几何失真度量,而不是到表面的距离。该方法考虑了到点云中最近/最邻近的点的距离(参见定义4、5、6和7)。峰值信噪比(psnr)被定义为几何在对称均方根(rms/rms)失真上的峰值信号(定义8)。对于颜色,定义了类似的度量;将原始云的颜色与劣化云中最邻近的颜色进行比较,并且根据yuv颜色空间中每个yuv/ycbcr分量计算峰值信噪比(psnr)(定义10)。该度量的优点是其对应于视频编码中的峰值信噪比(psnr)。3dg pcc软件中支持质量度量。
[0374]
表3:用于评估vdeg的点云质量q
ooint_cloud
的评估标准
[0375][0376][0377]dsymmetric_rms
(v
or
,v
deg
)=max(d
rms
(v
or
,v
deg
),d
rms
(v
deg
,v
or
)
ꢀꢀꢀ
(定义5)
[0378][0379]dsymmetric_haussdorf
(v
or
,v
deg
)=max(d
haussdorf
(v
or
,v
deg
),d
haussdorf
(v
deg
,v
or
)
ꢀꢀ
(定义7)
[0380]
bbwidth=max((xmax-xmin),(ymax-ymin),(zmax-zmin)
ꢀꢀꢀ
(定义8)
[0381][0382][0383]
psnry=10log
10
(|255||2/(dy(v
or
,v
deg
)2)
ꢀꢀꢀ
(定义11)
[0384]
在一些实施方案中,定义编解码器的性能的附加度量在下表4中概述。
[0385]
表4:附加性能度量
[0386][0387]
示例闭合形式解决方案
[0388]
对于重构点云中的每个点p
rec(i)
,假设q
*(i)
是该点在原始点云中的最近邻居。对于重构点云中的每个点p
rec(i)
,假设(q

(i,h))
h∈{1,

,h(i)}
是原始点云中共享p
rec(i)作为其在重构点云中的最近邻居
的点的集合。假设是(q

(i,h))
h∈{1,

,h(i)}
的质心。
[0389]
如果h=0,则c(p
rec
(i))=c(q
*
(i))
[0390]
表示为与给定点p相关联的r-g-b矢量c(p)。为了计算给定p
rec(i)
的颜色,提出以下公式:
[0391][0392]
其中
[0406]
δ2(1-rh)w
2-2δ2w (δ
2-rd2)=0
[0407]
(rh-1)w2 2w (αr-1)=0
[0408]
其中
[0409]
如果h=1,则
[0410]
如果h》1
[0411]
δ=4-4(rh-1)(αr-1)
[0412]
δ=4-4(rh-1)αr 4h-4
[0413]
δ=4(h-(rh-1)αr)
[0414]
如果δ=0
[0415][0416]
如果δ》0
[0417][0418][0419]
其中针对w1和w2两者计算了成本c(i),并且导致最小成本的值被保留为最终解决方案。
[0420]
使用多个分辨率的压缩/解压缩
[0421]
图5a示出了根据一些实施方案的包括几何、纹理和/或属性缩减的编码器的部件。本文描述的任何编码器还可包括空间缩减器部件502、纹理缩减器部件504和/或属性缩减器部件506,如本文针对图5a中的编码器500所示。例如,图2a中示出的编码器200还可以包括如图5a中所描述的缩减部件。在一些实施方案中,编码器250还可以包括如图5a中所描述的缩减部件。
[0422]
在一些实施方案中,包括缩减部件(诸如,几何缩减器502、纹理缩减器504和/或属性缩减器506)的编码器还可以包括几何放大器(诸如,空间放大器508)和平滑滤波器(诸如,平滑滤波器510)。在一些实施方案中,从由视频压缩模块218压缩的压缩补片图像生成重构的几何图像。在一些实施方案中,编码器还可以包括几何重构模块(未示出)以生成重构的几何图像。重构的几何图像可以用于编码指示一个或多个帧图像中所包括的补片的补片位置的占用图并且/或者改善该占用图的编码。另外,可以将重构的几何图像提供给几何放大器,诸如空间放大器508。几何放大器可以将重构的几何图像放大到原始分辨率或近似于几何图像的原始分辨率的更高分辨率,其中原始分辨率是在空间缩减器502处执行缩减之前的分辨率。在一些实施方案中,可以将放大的重构几何图像提供给平滑滤波器,该平滑滤波器生成重构和放大的几何图像的经平滑图像。平滑滤波器诸如平滑滤波器510可以近似将经由解码器的平滑滤波器应用的平滑。然后可以将该信息提供给空间图像生成模块210、纹理图像生成模块212和/或属性图像生成模块214。这些模块可以基于重构的几何图
像来调整空间图像、纹理图像和/或其他属性图像的生成。例如,如果在缩减、编码、解码和放大过程期间补片形状(例如,几何)略微失真,则在生成空间图像、纹理图像和/或其他属性图像以校正补片形状的改变(例如,失真)时,可以考虑这些改变。例如,与原始几何图像中的点的位置相比,在重构几何图像中表示的点云的点可以稍有移动。在此类情况下,纹理图像生成模块例如可以考虑这些失真并且相应地调整分配给对应纹理图像补片的点的纹理值。
[0423]
图5b示出了根据一些实施方案的包括几何、纹理和/或其他属性放大的解码器520的部件。例如,解码器520包括纹理放大器512、属性放大器514和空间放大器516。本文描述的任何解码器还可以包括纹理放大器部件512、属性放大器部件514和/或空间图像放大器部件516,如本文针对图5b中的解码器520所示。
[0424]
图5c示出了根据一些实施方案的从编码器的角度进行的重缩放。在一些实施方案中,可以在点云域(例如,在补片投影之前的3d域)和视频级域(例如,通过缩放包括补片信息的2d图像帧)两者中缩放点云。例如,图5c示出了一人的点云522。编码器诸如编码器500在点云域中执行点云522的3d缩放以生成缩减的点云524。将基于缩减的点云524生成的补片打包到图像帧526中。另外,在视频级对图像帧526执行缩减以降低图像帧的分辨率。附加缩减导致得到缩减的图像帧528,然后将该缩减的图像帧编码为位流530。
[0425]
图5d示出了根据一些实施方案的从解码器的角度进行的重缩放。在一些实施方案中,解码器诸如解码器520可以接收位流诸如位流530。解码器可以对已视频编码位流进行解码以生成一个或多个视频图像帧,诸如图像帧532。解码器可以进一步放大图像帧532以生成放大的图像帧534。然后,解码器可以使用补片重构方法,如上所述,以根据被包括在放大的图像帧534中的补片信息生成重构点云536。解码器还可以在3d点云域中执行放大,以将重构点云536放大到与原始点云类似的大小。该过程可导致得到放大的重构点云538。
[0426]
图5e示出了根据一些实施方案的示例开环重缩放。在图像帧的开环重缩放中,可以独立地缩放几何平面和纹理或其他属性平面,其中在缩放纹理或其他属性信息时不考虑几何失真。例如,几何图像帧540可以指示点云的点相对于投影平面的深度,并且纹理或属性图像帧544可以表示点云投影到投影平面上的点的相应属性。如图5e所示,在开环重缩放过程中,几何信息和属性信息可以被独立地缩放以分别生成缩减的几何图像帧542和缩减的纹理或属性图像帧546。另外,如图5e所示,缩减的几何图像帧542可以被视频编码/压缩以生成几何位流,并且缩减的属性图像帧546可以被视频编码/压缩以生成纹理或属性位流,诸如纹理/属性位流。例如,空间缩减器502可以缩减几何图像帧540,并且纹理缩减器504可以独立地缩减纹理图像帧544。在一些实施方案中,属性缩减器506可以独立于空间缩减器502和纹理缩减器504来缩减属性图像帧。因为使用不同的缩减器来缩减不同类型的图像帧(例如,空间信息、纹理、其他属性等),因此可以将不同的缩减参数应用于不同类型的图像帧,以缩减与纹理或属性不同的几何。
[0427]
图5f示出了根据一些实施方案的示例闭环重缩放。在一些实施方案中,编码器诸如编码器500可以使用闭环重缩放过程来确定可作为缩减、编码、解码和/或放大过程的一部分发生的几何的失真或其他改变。在一些实施方案中,当缩减其他属性诸如纹理时,可以考虑此类失真。编码器诸如编码器500接收点云548。编码器为点云548生成几何图像帧,例如,包括表示点的相对深度的补片的图像帧,诸如原始几何图像帧550。可包括解压缩成补
片模块506、打包模块208和空间图像生成模块210等的点云压缩几何映射器生成原始几何图像帧550。几何缩减器诸如空间缩减器502对几何图像帧进行缩减以生成缩减的几何图像帧552。需注意,“几何平面”可以用于指几何补片信息,该几何补片信息可被包括在仅由如图5f所示的几何补片组成的图像帧中。
[0428]
缩减的几何图像帧552例如通过视频压缩模块218被压缩,并且被转换为几何位流。在如图5f所示的闭环过程中,在编码器处对几何位流进行解压缩以生成重构的几何平面554。然后,在编码器处放大重构的几何平面以生成放大的重构几何平面556。
[0429]
然后,将原始几何图像帧550的纹理点映射到重构的放大几何平面556的点。原始几何图像帧和重构的放大几何图像帧中点的位置差异得以确定。另外,调整几何图像帧550中所包括的点以考虑可能在缩减、视频压缩、视频解压缩和放大过程期间引入的失真。另外,点云压缩(pcc)属性/纹理映射器可以考虑该失真,以调整在缩减、视频压缩、视频解压缩和放大过程期间失真的点的纹理值。另外,还可以调整属性值以考虑几何失真。这样,将纹理点和属性点映射到解码器在重构和放大几何平面时将遇到的相同位置的相同点。然后,编码器可以考虑因缩减、编码、解码和放大而可能发生的几何平面的失真。
[0430]
映射到重构的放大几何平面556的点的纹理点可以用于生成调整后的属性/纹理图像帧558。然后,可以缩减调整后的属性/纹理图像帧558以生成缩减的调整后属性/纹理图像帧560。然后,可以对缩减的调整后属性/纹理图像帧560进行视频编码,并且作为属性/纹理位流进行传输。
[0431]
图5g示出了根据一些实施方案的利用多个属性层的示例闭环重缩放。在一些实施方案中,可以遵循与针对图5f所描述的过程类似的过程。然而,可以针对被缩减的一个或多个属性图像帧执行多种程度的下采样。例如,纹理/属性图像平面558可能根本不被缩减(例如,压缩率目标0),或者可以根据多个压缩率目标(例如,压缩率目标1至4)而被缩减以生成调整后的属性/纹理图像帧的缩减版本562。在此类实施方案中,可以例如基于网络状态、处理能力等来动态地调整压缩率目标。
[0432]
图5h示出了根据一些实施方案的视频级时空缩放的示例。在一些实施方案中,可以使用视频级时空缩减和放大来执行与图5c和图5d中描述的过程类似的过程。例如,可以上调或下调帧速率(例如,每单位时间生成的帧数),以便改善压缩效率。在此类实施方案中,可以进行时空调整来代替分辨率缩放和/或补充分辨率缩放。例如,可以在3d域中以分辨率和/或帧速率缩减时间顺序移动的点云564以生成缩减的点云566。可以将点云566投影到补片平面上,并且可以生成图像帧568。注意,图像帧568可以是几何图像帧或属性图像帧或两者。另外,可以应用视频级时空缩减以降低图像帧568的分辨率和/或降低图像帧568的帧速率以生成缩减的图像帧570。注意,图5h示出了帧速率缩减(例如,时空缩减)和分辨率缩减两者。然而,在一些实施方案中,可以执行时空缩减,而不执行分辨率缩减。然后,可以对经时空和/或分辨率缩减的图像帧570进行视频编码以生成位流572。
[0433]
图5h还示出了接收位流572的编码器。解码器的视频解码部件可以对位流572进行视频解码以生成缩减的图像帧574。解码器还可以执行视频级时空放大以在缩减的图像帧之间进行插值,以生成放大的图像帧576。例如,缩减的图像帧例如包括每单位时间的两个图像帧,而放大的图像帧576包括已经通过插值和/或使用生成第三图像帧的其他视频空间帧内压缩技术(诸如运动矢量等)在2d视频域中生成的第三图像帧。然后,可以使用放大的
图像帧576来生成重构点云578。注意,已经基于放大的图像帧576生成三个重构点云。任选地,解码器可以进一步在时间上或在大小上或在两者上放大重构点云578,以生成放大的点云580。
[0434]
图5i示出了根据一些实施方案的利用时空缩放的示例闭环重缩放。例如,点云582可以用于生成原始几何图像帧584。可以进一步在时间上和/或在大小上缩减原始几何帧以生成缩减的几何图像帧586,这些缩减的几何图像帧可以具有不同的帧速率,诸如与原始几何图像帧584的每秒fo帧相比的每秒fg帧,其中fg小于fo。缩减的几何图像帧586还可以具有比原始几何图像帧584更小的大小,诸如与原始几何图像帧584的高度和宽度“o”相比的高度和宽度“g”。可以进一步对缩减的几何图像帧进行视频编码/压缩以生成几何位流596。在闭环压缩程序中,可以进一步在编码器处对几何位流596进行视频解压缩/解码以生成重构的缩减几何图像588,这些重构的缩减几何图像可以具有与缩减的几何图像586类似的帧速率和大小。编码器可以进一步应用与将在解码器处执行的类似的基于时空和/或大小的放大算法以生成放大的重构图像帧590,这些放大的重构图像帧可以具有与原始几何图像帧584类似的帧速率和大小。在一些实施方案中,编码器可以进一步调整原始几何图像帧并重复该过程以减小失真。在一些实施方案中,从编码器传送出的几何位流596可以基于调整后的几何图像帧584。
[0435]
在一些实施方案中,点云压缩(pcc)纹理/属性映射器可以基于由于几何图像帧的缩减、视频编码、视频解码和放大而引入的失真进一步调整属性/纹理图像帧的属性/纹理值。例如,可以生成调整后的属性/纹理图像帧592。可以进一步缩减调整后的属性/纹理图像帧592以生成缩减的调整后属性/纹理图像帧594,这些缩减的调整后属性/纹理图像帧又可以被视频编码以生成纹理/属性位流598。虽然对于时空缩减未示出,但是可以执行与图5g中所述的类似的过程,其中待应用的时空缩减的级别是基于传送压缩点云的可用位速率确定的。
[0436]
如上所述,压缩点云视频数据的方法可以使用常规视频编解码器以及可有助于描述和重构点云信息的辅助信息。至少在图5a和图5b中分别示出了如何执行该过程的编码器和解码器图。另外,图6a至图6i进一步示出了几何图像帧与属性/纹理图像帧之间的关系可以如何用于改善压缩效率和重构准确度。类似的技术可以与如本文在图5a至图5l中描述的放大和缩减技术组合。
[0437]
如上所述,产生图像帧的过程将点云分割成多个2d投影图像/视频,每个图像/视频表示不同类型的信息。首先通过将点云分割成多个补片来执行该过程,这些多个补片允许将整个3d空间数据有效地投影到2d平面上。每个补片与信息诸如几何(在本文中也称为“空间信息”)、纹理和其他属性(如果可用)相关联。然后,将此类信息复制到单独图像序列上图像帧的协同定位的位置,每个图像序列现在分别仅包含几何信息、纹理信息和任何其他剩余属性。还提供了包含补片信息的辅助信息和占用图,该占用图指示这些投影图像序列中的哪些面积对应于实际点云数据,哪些面积未被占用,例如可能不包含数据或虚设数据。然后使用不同的策略对此类信息进行压缩。例如,对辅助信息进行熵编码,而可以使用常规编解码器或其他方法诸如游长压缩对占用图进行下转换和编码。另一方面,使用常规编解码器压缩单独的投影图像序列。这导致多个子流的集合,例如,几何子流、纹理子流和属性子流,以及占用和辅助信息子流。
[0438]
如上所述,期望除了占用图之外的所有子流具有相同的分辨率。几何子流中的每个点基本上对应于最终3d重构点云中的点。在一些实施方案中,允许以不同于原始表示的分辨率来编码信号。另外,在一些实施方案中,偏移以及旋转点云也是可能的。从编码器的角度看,这是通过在流标头中发信号通知附加元数据来完成的,该附加元数据将识别在将原始点云数据投影到目标视频平面之前应该应用到该原始点云数据的缩放、偏移和旋转。从解码器的角度来看,这些参数在第一3d点云表示的重构之后使用,并且用于生成最终3d点云表示。在此类方案中,以与在点云标头中指定的分辨率相同的分辨率来发信号通知几何视频数据和属性/纹理视频数据两者。在此类方案中,还支持每个补片元数据包括缩放系数和旋转参数,尽管现在已将缩放独立地应用于每个投影补片。
[0439]
然而,在一些实施方案中,可以通过在编码流中提供附加的分辨率缩放灵活性来进一步扩展该方案。具体地,不仅缩放可以应用于3d空间或每个补片,而且在一些实施方案中,方案缩放可以应用于整个投影点云视频数据。这可以允许使用“常规”2d重缩放方案和架构,这在许多架构中都是易得的。此外,与以相同的分辨率对几何和属性子流进行编码的方案不同,该另选方案允许以不同的分辨率发信号通知这些子流。在一些实施方案中,该方案也可以与上述3d缩放方案结合,例如,指定的2d图像帧缩放可以遵循编码次序,并且在解码次序中可以优先于如上所述的3d缩放过程。这可以在编码性能方面提供进一步的灵活性。
[0440]
具体地,通过上述方案,已应用于3d空间中的点云信号以更改其分辨率的缩放系数(如果有的话)是已知的。实质上,正被表示的点云场景/对象将从分辨率w
3d
×h3d
×d3d
更改为(s
x
×w3d
)
×
(sy×h3d
)
×
(sz×d3d
)。然后,将使用上文指定的补片方法将该重缩放的对象投影到各种子视频中,例如,占用、几何和属性子视频,每个子视频的标称分辨率为wn×hn
。当前可以使用语法元素frame_width和frame_height在mpeg pcc tmc2草稿(版本1.2)的帧标头语法组中指定标称分辨率。可以将缩放系数添加到该语法中。
[0441]
帧组标头语法
[0442][0443]
利用所提出的方法,现在还可以分别以wg×
hg和w
a(i)
×ha(i)
的分辨率进一步重缩放几何和属性信号i。不需要在点云压缩pcc标头中发信号通知这些视频的分辨率,因为该信息已经存在于视频位流本身中。可以使用常规算法将视频从wn×hn
的标称分辨率重缩放到wg×
hg或w
a(i)
×ha(i)
,并且反之亦然。从图5c中的编码器角度和图5d中的解码器角度可以看到这些。
[0444]
图5e示出了用于转换几何和属性信号的开环架构。在这种架构中,几何和属性信号是独立创建和转换的。在一些实施方案中,唯一的依赖性是在缩减和压缩之前的几何信
号被用于生成纹理平面信号。然而,在图5f中,考虑了闭环架构。在这种架构中,首先对几何信号进行缩放和编码,然后对该几何信号进行重构并且上转换为其原始分辨率。然后,该新的几何信号用于生成纹理/属性平面。使用该方法,与上一张图(图5e)中的开环架构相比,生成的纹理(或属性)更准确地对应于重构的几何。应当指出的是,如果需要,几何的放大过程应当跨解码器进行匹配,以实现期望的闭环性能。如果放大器不匹配,则性能可能会存在一定差异。在这些系统的任一者中,几何和属性信号的分辨率也不需要匹配。可以使用常规的放大器,诸如基于可分离滤波器的放大器(例如,双三次、lanczos、开窗余弦或正弦等)或更复杂的放大器(包括双边放大器、边缘自适应、运动补偿等)。缩减也可以使用类似的方法,例如可分离滤波器、保留边缘的缩减器等。
[0445]
自适应流解决方案也可以利用此类方法。具体地,在自适应流系统中,可以不同的分辨率和帧速率生成多个流以更好地支持网络的可变性。在该系统中,除了调整不同层的帧速率外,还可以在纹理与几何之间使用不同的分辨率以同样增强此类功能。在图5g中示出了示例,其中对于特定的几何信号,针对纹理/属性信号生成多个不同的位流,每个位流也潜在地具有不同的帧速率和/或分辨率。解码器可以选择使用特定的纹理层,并且然后还可鉴于其网络的整体带宽特性选择对于属性/纹理平面适当的对应子位流。
[0446]
在不同的方面,可以通过考虑点云系统的特性以及如何构造图像来执行几何平面和/或属性/纹理平面的缩减和放大。具体地,在上述系统中,使用补片构建图像。这些补片在编码器和解码器两者处均可用。常规系统可能将无法考虑补片,然而更高级的系统可以利用补片来改善这两个过程。具体地,仅在补片内放大或缩减样本时,可以通过处理/滤波实现更好的性能。补片外部的样本很可能是填充样本,该填充样本可能与补片内部的样本没有直接关系,并且如果与补片内部的样本一起被滤波/处理则可能会污染信号。通过分离此类样本,可以避免这种污染并且可以改善性能。即使无法提取系统中完整的补片位置信息,也仍然可能会考虑其他相关信息,诸如占用图信息。占用图,即使如果被下采样则会不那么准确,但是仍然可以一定程度地改善性能。另一方面,还可以通过考虑几何信号中的特性(例如,边缘)来增强用于属性信号的插值过程。具体地,可以在几何信号中提取边缘,并且这些边缘可以与属性信号中的边缘相关,并且可以执行基于该信息的引导插值。这是可能的,因为两层的边缘高度相关,尤其是在每个补片的边界处。例如,图6i进一步讨论了示例引导插值技术。
[0447]
在一些实施方案中,如图5h和图5i所示,可以应用时空重缩放。在一些实施方案中,在编码器上,可以执行丢帧,而丢帧的决定可以基于“相邻”帧有多类似或者可以固定速率完成丢帧(时间戳将仍然存在于流中,以通知时间关系的使用)。在一些实施方案中,可以执行帧的“共混”/平均。也就是说,可以使用“在时间上”控制的不同相位来对所有帧进行缩放。例如,可以使用相位0对奇数帧进行垂直缩放,而可以使用相位1对偶数帧进行垂直缩放。那些缩放的图像被称为场,然后将那些缩放的图像交错在一起以创建交错帧。该过程可用于投影点云数据。需注意,交错并不需要被限制为以垂直方式进行,而是可以水平方式或也可以其他方式完成。
[0448]
对于时间上转换,可以使用帧重复,或者可以使用更智能的方法,这些方法包括用于插值的运动自适应和运动补偿策略。机器学习方法也可以用于辅助插值。
[0449]
在一些实施方案中,仅在一个平面(例如,几何或属性/纹理)中降低了时间分辨
率,而对于其他平面,则保留了所有帧(以及占用和补片信息)。在此类情况下,降低的时间分辨率平面中所有补片的“形状”和位置都是已知的,但是这些补片的特性(几何的深度、属性/纹理的颜色)的确切值是未知的。然而,可以通过尝试将每个补片定位在其时间上邻近的邻居中来计算该值。这可以通过使用补片的形状信息和/或全分辨率平面的补片特性的可用值进行搜索来完成。这基本上将涉及搜索(例如,基于运动估计的搜索)。在定位补片时,可以复制/共混来自特性的用于从该补片的时间上的邻居进行插值的信息,并将该信息用作预测器。
[0450]
图5j示出了根据一些实施方案的使用缩减来对点云的图像帧进行编码/压缩的过程。
[0451]
在501处,编码器针对点云确定投影在2d平面上的多个补片。例如,可以使用本文所述的任何补片投影程序。
[0452]
在503处,编码器针对补片生成属性(或纹理)补片图像和几何补片图像。例如,可以使用本文所述的任何补片图像生成技术。
[0453]
在505处,编码器将所生成的属性/纹理补片图像和所生成的几何补片图像打包到一个或多个图像帧中;需注意,补片图像的打包和补片图像的生成可以同时发生。可以使用本文所述的任何补片图像打包技术。
[0454]
在507处,编码器使用视频缩减过程缩减图像帧中的至少一个图像帧。例如,缩减过程可以包括分辨率降低和/或帧速率降低。另外,缩减过程可以是开环的或闭环的。还可以基于可用位速率来调整缩减过程,或者可以不进行调整。可以使用关于图5a至图5l描述的任何缩减技术。
[0455]
在509处,编码器基于缩减的图像帧对一个或多个位流进行视频编码。可以使用如本文所述的任何视频编码技术。
[0456]
图5k示出了根据一些实施方案的使用开环或闭环缩减来确定缩减图像帧的过程。
[0457]
在511处,编码器接收待压缩的点云。在513处,编码器确定是否应用缩减,并且如果是,则确定是利用如本文所述的开环缩减过程还是如本文所述的闭环缩减过程。例如,编码器可以基于点云的复杂性和处理能力的可用性来确定是利用开环缩减过程还是闭环缩减过程来执行缩减。例如,当处理能力受到限制时,可以使用开环缩减过程对具有更大数量的补片的复杂点云进行缩减,但是当更多处理能力可用时,可以使用闭环缩减过程对该复杂点云进行缩减。例如,如果复杂性和可用处理能力的组合使得超过一个或多个阈值,则可以在515处经由开环过程执行缩减。相反,如果复杂性和可用处理能力的组合使得不超过一个或多个阈值,则可以在517处经由闭环过程执行缩减。
[0458]
图5l示出了根据一些实施方案的使用放大来对点云的图像帧进行解码/解压缩的过程。
[0459]
在521处,解码器接收包括点云的已视频编码图像帧的位流。已视频编码图像帧中的至少一个图像帧是从缩减的图像帧(诸如本文所讨论的缩减的图像帧)进行视频编码的。至少一个缩减图像帧可以在大小或帧速率或两者上已经被缩减。
[0460]
在523处,解码器对位流进行视频解码以生成包括至少一个缩减图像帧的一个或多个图像帧。
[0461]
在525处,解码器确定图像帧中的哪个图像帧已经被缩减。例如,可以使用上述任
何技术来识别缩减图像帧。
[0462]
在527处,解码器对至少一个缩减图像帧进行放大。缩减的图像帧可以在大小、帧速率或两者上被放大。在一些实施方案中,可以使用本文所述的任何放大技术。
[0463]
在529处,解码器基于已视频解码的和/或放大的图像帧来生成压缩点云的重构版本。可以使用本文所述的任何重构程序。
[0464]
视频压缩前预处理和视频解压缩后滤波/后处理
[0465]
如上所述,可以使用常规视频编解码器压缩视频点云数据。如上所述,该过程将点云帧分割成多个2d投影图像/视频,每个图像/视频表示不同类型的信息。通过将点云分割成多个补片来执行该过程,该多个补片允许将点云的3d空间数据有效地投影到2d平面上。每个补片与信息(诸如几何、纹理和/或其他属性)相关联。然后,将此类信息复制到单独图像帧序列上协同定位的位置,其中每个图像帧包含几何信息、纹理信息或任何其他剩余属性,分别作为被打包到图像帧的补片图像。还提供了包含补片信息的辅助信息和占用图,该占用图指示这些投影图像帧序列中的哪些面积对应于实际点云数据,哪些面积未被占用,例如可能不包含数据或虚设数据。使用不同的策略对此类信息进行压缩。例如,可对辅助信息进行熵编码,而可使用常规视频编解码器或其他方法诸如游长压缩对占用图进行下转换和编码。另一方面,使用常规视频编解码器压缩单独的投影图像序列。这导致多个子流的集合,例如,几何子流、纹理子流和属性子流,以及占用和辅助信息子流。如图2a所示,将所有这些流一起复用以生成最终点云位流。在一些实施方案中,可将这些流提供给编码器的图像帧预处理/滤波元件,以作出智能预处理决策和/或基于这些流中所包括的信息智能地调整用于视频编码的参数。
[0466]
图6a示出了根据一些实施方案的还包括视频压缩前纹理处理和/或滤波以及视频解压缩前几何处理/滤波的编码器的部件。编码器600包括图像帧预处理/滤波元件602。在一些实施方案中,本文描述的任何编码器(诸如编码器200、250、400、450或编码器500)还可包括纹理处理/滤波元件诸如纹理处理/滤波元件602。在一些实施方案中,本文描述的任何解码器(诸如解码器230或解码器280)还可包括几何处理/滤波元件诸如几何/滤波元件604。在一些实施方案中,来自图像帧填充元件216的打包图像帧的预处理可在由视频压缩218进行视频编码之前经由图像帧预处理/滤波元件602进行预处理。在一些实施方案中,图像帧预处理/滤波元件602可接收占用图信息、例如来自空间图像生成元件210的空间信息、例如来自纹理图像生成元件212的纹理信息、和例如来自属性图像生成元件214的属性信息。
[0467]
在一些实施方案中,图像帧预处理/滤波元件(诸如图像帧预处理/滤波元件602)可确定指示相应属性补片图像和/或深度补片图像之间的关系的关系信息。另外,关系信息可包括相应补片和图像帧之间的关系,例如图像帧的哪些部分被占用或未占用,以及图像帧中的补片的边缘位于何处。
[0468]
在一些实施方案中,编码器(诸如编码器600)可利用所接收或所确定的占用图来确定关系信息。在一些实施方案中,图像帧预处理/滤波元件(诸如图像帧预处理/滤波元件602)可使得基于所确定的关系信息来调整视频编码部件(诸如视频压缩218)的一个或多个编码参数。例如,图像帧预处理/滤波元件可使视频编码部件将更多编码资源分配给图像帧的被补片占用的编码部分,并且可使视频编码部件将更少的编码资源分配给图像帧的未被
占用的编码部分。而且,在一些实施方案中,关系信息可指示对应于投影到同一补片平面上的相同点集合的多个补片(例如,属性补片图像和/或深度补片图像)。在一些实施方案中,图像帧预处理/滤波元件可使视频编码部件在对对应于点云中的相同点集合的补片进行编码时利用互补编码参数。
[0469]
在一些实施方案中,图像预处理/滤波元件(诸如图像预处理/滤波元件602)可确定点集合的集中失真。例如,图像帧预处理/滤波元件可确定由于深度补片图像的视频压缩而引入的失真量、由于属性补片图像(诸如颜色)的视频压缩而引入的失真量,以及基于针对单独补片引入的失真的交互确定总体或集中失真对重构点云的影响。例如,深度失真可能导致重构点云中的附加颜色失真。在一些实施方案中,图像帧预处理/滤波元件可调整视频编码部件(诸如视频压缩218)的一个或多个视频编码参数,以便减小该点集合的总集中失真。
[0470]
在一些实施方案中,图像预处理/滤波元件(诸如图像预处理/滤波元件602)可基于关系信息来确定补片的边缘。图像预处理/滤波元件还可基于根据其所确定的边缘的补片边界来调整一个或多个预处理过程,诸如一个或多个图像的颜色下采样,例如上文关于闭环颜色转换所描述的。
[0471]
图6b示出了根据一些实施方案的还包括视频解压缩后纹理处理和/或滤波以及视频解压缩后几何处理/滤波的解码器的部件。解码器610包括纹理处理/滤波元件612和几何处理/滤波元件614。在一些实施方案中,本文描述的任何解码器(诸如解码器230、280或550)还可包括纹理处理/滤波元件诸如纹理处理/滤波元件612。在一些实施方案中,本文描述的任何解码器(诸如解码器230、280或550)还可包括几何处理/滤波元件诸如几何/滤波元件614。
[0472]
在一些实施方案中,图像帧中的补片图像的关系信息可被包括在压缩点云的位流中或从其导出。例如,图6c示出了根据一些实施方案的用于压缩点云的位流结构。在一些实施方案中,辅助信息可包括补片图像的关系信息。另外,在一些实施方案中,占用图可包括图像帧的补片的关系信息。例如,占用图可指示图像帧的哪些部分被占用或未占用。另外,辅助信息可指示图像帧的哪些块对应于哪些补片。该信息可用于确定图像帧的对应于相同补片的部分。另外,几何信息(例如,深度补片图像)中所包括的深度信息可用于识别在点云中具有共同深度的点的图像帧的部分。另外,纹理视频流中所包括的属性/纹理信息可用于识别图像帧中具有类似纹理或属性值的补片。在一些实施方案中,属性纹理处理/滤波元件(诸如属性处理/滤波元件612)和几何处理/滤波元件(诸如几何/滤波元件614)可利用这些数据流来确定或接收一个或多个已视频编码图像帧中所包括的(诸如用于几何视频流的帧组中所包括的,并且诸如用于纹理/属性视频流的帧组中所包括)补片的关系信息。属性处理/滤波元件和/或几何处理/滤波元件还可利用这些所确定或所接收的关系来智能地对几何视频流中的几何图像帧进行后处理或者对纹理视频流中的纹理/属性图像帧进行后处理。另外,在一些实施方案中,可将几何补片(例如,深度补片)和纹理或属性补片打包到相同图像帧中。因此,在一些实施方案中,纹理/属性视频流和几何视频流可被组合成包括具有几何补片和属性/纹理补片两者的图像帧的公共视频流。
[0473]
该点云编码方案的特征之一是,不仅可以使用“常规”编解码器压缩不同的投影图像序列,还可以利用为2d图像/视频数据预留的常规处理算法来处理该不同的投影图像序
列。也就是说,可以将通常用于处理2d图像数据的去噪、缩放、增强和/或其他算法应用于这些图像序列。与在3d域中执行此类处理相比,此类处理可能具有优势,特别是就现有硬件具体实施的复杂性和再利用而言。
[0474]
此类处理的一个示例是将数据从rgb 4:4:4表示转换为4:2:0ycbcr表示,并且反之亦然。在该场景中,对于下转换,例如,首先将rgb数据转换为ycbcr 4:4:4表示,然后可以对色度平面进行滤波并且将色度平面缩减为其原始分辨率的1/4(水平地和垂直地将分辨率减半)。对于逆过程,将色度平面放大到其原始分辨率,例如回到ycbcr 4:4:4,并且然后将信号转换回rgb 4:4:4。可以使用多种下转换和上转换方法,这些方法包括使用边缘自适应缩减和放大,以及技术诸如亮度调整方法。
[0475]
尽管一些常规处理方法可在点云投影的图像序列上“按原样”操作,但是这些方法并未完全考虑此类图像的特性,并且特别是未考虑在不同层之间存在的关系或有关补片和占用的信息。考虑此类信息可以改善性能。例如,可以通过考虑此类特性和信息来改善此类方法,从而改善来自投影图像的重构3d点云的性能和最终质量。
[0476]
具体地,假定这些序列内的所有样本高度相关并且邻近的样本可能对应于相同或至少相邻的对象,则常规方法将最有可能处理投影的图像序列。遗憾的是,此类图像可能不是这种情况。实际上,此类图像帧包括对应于投影补片的样本以及用于分离和区分这些补片的填料区域。此类填料区域可以未被填充,例如具有默认颜色值,或者可以已经使用如本文所述的填充方法填充。单独样本的处理,例如当使用长滤波器进行滤波时,可导致不同补片之间以及填料区域之间的信息污染,这会损害质量。
[0477]
相反,对精确的补片位置和填料区域的了解可有益于极大地提高性能。在一些实施方案中,处理引擎(诸如,纹理处理/滤波元件612和/或几何处理/滤波元件614)逐补片对此类图像数据执行滤波/处理操作。也就是说,通过考虑对应于与s相同的补片的样本来处理/滤波特定样本s。s的处理排除了可能已经被包括在使用常规方法进行的处理中(例如,由于考虑了长滤波器)但是不对应于相同补片的样本。例如,可以通过减少处理滤波器的长度,直到完全排除此类样本来完成该操作,或者在处理时通过在补片之间的边界处对数据执行动态外推,并且使用外推数据代替补片外部的可用数据来完成该操作。
[0478]
在处理填料数据时,可应用相同或相似的原理,该填料数据可被看作是单独的补片。
[0479]
特定系统可能会考虑每个单独补片的确切位置和形状信息,例如可能需要对补片信息进行完全解码,从而使该补片信息在处理期间完全可用。这可以提供最准确的处理,并且可以避免跨补片的污染。在一些实施方案中,可以通过仅查看占用图信息来确定补片位置和形状的近似,可能已经使用常规2d视频编码系统对该占用图信息进行了编码。在这种情况下,由于可能已经对占用信息进行了子采样,例如,水平和垂直子采样了4次(总共16次),因此在补片边界处的一些样本可能已经被复制。这可能会对性能产生一定影响,然而,由于不需要解码完整的补片信息,因此处理复杂性可以大大降低。
[0480]
点云数据与几何信息以及其他属性(例如,纹理、颜色、反射率信息等)相关联。通过考虑跨不同属性的关系和特性,可以改善性能。具体地,当在属性平面中处理对应的样本时,可以考虑投影平面中的几何样本值的相似性或相异性。具体地,期望与几何平面中的相同或类似深度对应的相邻投影样本高度相关。然而,具有相异性大的深度信息的相邻样本
不太可能相关。因此,在处理此类样本时,还可以考虑深度信息以确定应如何考虑这些样本。
[0481]
在一些实施方案中,在处理样本x时,可以排除就深度距离而言与样本x相距太远(例如,超过距离阈值t)的样本。其他样本可基于其距离在处理中被再次加权或优先化。在处理样本时,也可以考虑来自其他属性的对应信息以及这些属性的相似性或相异性。在处理时也可以考虑信息,诸如从几何平面或从其他属性平面提取的边缘。如前所述,在色度下采样(例如,4:4:4至4:2:0)的特定示例中,可以在第一情况下执行使用几何以及亮度属性信息的边缘定向下采样,而类似地对于上采样(例如,4:2:0至4:4:4),可以执行使用几何和亮度属性信息的边缘定向上采样过程。如先前所述,此类处理可以再次是基于补片/占用图的,然而此类处理也可以在没有此类考虑的情况下独自执行。又如,可以再次使用来自几何信息和/或可能可用的其他属性平面的信息,从分辨率h_o
×
w_o到新分辨率h_n
×
w_n对属性平面执行定向插值。例如,图6i示出了根据一些实施方案的示例应用,其中使用属性平面对应的几何信息和几何提取边缘放大属性平面。
[0482]
在一些实施方案中,利用上述提议的滤波器/处理技术的其他应用可以包括去噪、去带、去振铃、解块、锐化、边缘增强、对象提取/分割、显示映射(例如,用于hdr应用)、重新着色/色调映射等。此类方法也可以用于质量评估,例如,通过在评估特定的失真测量时,将对应的补片中的数据集中在一起并且考虑该数据(例如,求和失真值),该对应补片还对应于类似的几何信息和其他属性。处理可以是纯空间的,例如,可以仅考虑与相同时间戳对应的投影图像进行此类处理,然而也可以允许时间/时空处理,例如,使用运动补偿或运动自适应处理策略。
[0483]
图6d示出了根据一些实施方案的用于在考虑被打包到图像帧中的补片之间的关系信息的情况下生成针对点云的补片的已视频编码图像帧的过程。
[0484]
在620处,编码器生成针对投影到补片平面上的点集合的属性(或纹理)图像补片。在622处,编码器生成针对投影到补片平面上的点集合的深度(例如几何)补片图像。在624处,编码器将所生成的补片图像打包到一个或多个图像帧中。在一些实施方案中,本文描述的补片生成和图像帧打包技术中的各种补片生成和图像帧打包技术可用于生成属性补片图像、深度补片图像,并且将所生成的补片图像打包到一个或多个图像帧中。
[0485]
在626处,编码器生成一个或多个打包图像帧的一个或多个占用图。在一些实施方案中,可使用本文描述的用于生成占用图的各种技术。
[0486]
在628处,编码器在考虑到被打包到一个或多个图像帧中的属性补片图像和深度补片图像之间的关系的情况下任选地对打包图像帧执行一个或多个预处理过程。
[0487]
在630处,编码器(或单独的视频编码部件)对一个或多个图像帧进行视频编码,其中基于补片图像之间的所确定的关系来调整视频编码的一个或多个参数。例如,可基于对应于相同点集合的补片的集中失真来调整一个或多个参数。另外,可基于补片边界来调整颜色转换过程,作为几个示例。在一些实施方案中,可基于通常不可用于视频编码器的关于图像帧的哪些部分与补片有关以及哪些部分不与补片有关的知识来智能地调整各种其他视频编码参数。例如,如上所述,用于视频编码器的默认编码算法可假设彼此邻近的像素是高度相关的。然而,在打包图像帧的情况下,补片图像边界的任一侧上的点可发生变化并且不像其他视频图像中预期的那样相关。如上所述,在一些实施方案中,视频编码器可在选择
视频编码参数时忽略图像帧的填充部分。另外,可鉴于对打包到图像帧中的补片图像之间的关系的了解来进行其他调整。
[0488]
图6e示出了根据一些实施方案的用于在考虑对应于相同点集合的补片集合的集中失真的情况下生成已视频编码图像帧的过程。
[0489]
在632处,编码器识别对应于投影在相同补片平面上的相同点集合的属性补片图像和深度补片图像。例如,该信息可被包括在待包括在压缩点云流中的辅助信息中。
[0490]
在634处,编码器基于经由对点集合的属性补片图像和深度补片图像进行视频编码而引入的失真来确定影响点集合的集中失真量。例如,编码器可对一个或多个图像帧进行视频编码和视频解码以确定针对相应补片引入的失真。另外,在一些实施方案中,视频编码部件可具有与各种设置相关联的已知失真级别,并且编码器可能够确定将基于对此类设置的选择而引入的失真级别。在一些实施方案中,当重构点云的表示时,一个补片图像中的失真可复合另一补片图像中的失真。例如,与属性或纹理失真组合的深度失真可彼此复合,其中点均在重构点云中移动并且还具有改变的颜色。在一些实施方案中,这些效应可大于单独失真的总和。例如,深度失真还可突出显示颜色失真,反之亦然。
[0491]
在636处,编码器调整一个或多个视频编码参数和/或一个或多个预处理参数以减少点集合的集中失真的总量。
[0492]
图6f示出了根据一些实施方案的用于在考虑补片边缘的情况下生成已视频编码图像帧的过程。
[0493]
在638处,编码器确定被打包到一个或多个图像帧中的属性补片图像或深度补片图像的边缘。例如,此类信息可被包括在图像帧的占用图中和/或在图像帧的辅助信息中。
[0494]
在640处,编码器将关系信息提供给将对图像帧进行视频编码的视频编码部件。
[0495]
在642处,视频编码部件调整一个或多个视频编码参数,和/或图像预处理/滤波元件基于所确定的边缘来调整一个或多个参数。例如,可调整预处理滤波器以避免交叉补片污染或图像帧的补片部分和填充部分之间的污染。
[0496]
图6g示出了根据一些实施方案的用于基于包括点云的补片在内的已视频编码图像帧来重构点云的过程,其中考虑到了被打包到图像帧中的补片之间的关系信息。
[0497]
在650处,解码器接收包括被打包到一个或多个图像帧中的属性补片图像和深度补片图像的一个或多个图像帧。例如,一个或多个图像帧可能已经打包有如本文所述的补片图像。
[0498]
在652处,解码器接收一个或多个图像帧的占用图和/或辅助信息。例如,一个或多个图像帧、占用图和/或辅助信息可被包括在一组帧和/或点云数据流中,如图6c所示。
[0499]
在654处,解码器接收(例如,经由占用图或辅助信息)或确定(例如,基于占用图和/或辅助信息)被打包在一个或多个图像帧中的属性补片图像和/或深度补片图像的一个或多个关系。在一些实施方案中,一个或多个所确定的关系可指示被占用和未占用的图像帧的部分。在一些实施方案中,一个或多个所确定的关系可指示深度补片图像和一个或多个属性或纹理补片图像,该一个或多个属性或纹理补片图像对应于投影在与深度补片图像相同的补片平面上的相同点集合。在一些实施方案中,一个或多个所确定的关系可指示一个或多个属性补片图像和一个或多个深度补片图像的集合的区域,该一个或多个深度补片图像对应于点云的相同深度。在一些实施方案中,一个或多个所确定的关系可指示共享类
似属性值的一个或多个属性补片图像的集合的区域。在一些实施方案中,一个或多个所确定的关系可指示一个或多个属性补片图像和一个或多个深度补片图像的集合的区域,该一个或多个深度补片图像对应于包括点云的点的补片,该点云的深度梯度彼此偏离小于阈值量。在一些实施方案中,可基于占用图和/或辅助信息来确定其他关系。
[0500]
在656处,解码器对一个或多个打包图像帧进行视频解码。在一些实施方案中,解码器基于所确定的关系来调整解码参数。
[0501]
在658处,解码器在使用深度补片图像和属性或纹理补片图像来重构点云的重构表示之前对已视频解码图像帧执行一个或多个后处理过程。如上所述,与在包括从2d图像帧中所包括的补片图像重构的点云的点的3d空间中执行后处理相比,经由视频后处理过程对2d表示执行后处理可能更有效。解码器可基于所确定的关系来调整后处理的一个或多个参数。例如,可调整长滤波器以避免跨补片图像、补片和填补之间、或补片图像之间的交叉污染。在一些实施方案中,可调整各种后处理过程,诸如:去噪、去带环、去振铃、解块、锐化、对象提取或分割、显示映射,其中一个或多个图像帧的范围被映射到待用于显示点云的重构表示、一个或多个图像帧的颜色空间转换、一个或多个图像帧的滤波过程、应用于一个或多个图像帧的颜色或色调调整过程等的范围。
[0502]
在660处,解码器基于从已在658处经历后处理过程的一个或多个图像帧中的补片图像中提取的属性信息和深度信息来生成压缩点云的重构表示。
[0503]
图6h示出了根据一些实施方案的在考虑到基于补片的所接收的或所确定的关系信息而确定的补片图像的边缘的情况下放大图像帧中所包括的补片图像的过程。
[0504]
在670处,解码器基于所确定的关系(例如,从占用图和/或辅助信息确定的)来确定图像帧中的属性补片图像或深度补片图像的边缘。例如,图6i示出了应用于几何平面680以确定几何图像帧中补片图像的边缘682的边缘提取过程。
[0505]
在670处,将属性补片图像或深度补片图像放大。例如,本文所述的任何放大和缩减过程可利用如关于图6a至图6i针对编码器或解码器所描述的确定关系。例如,图6i还示出了正被放大的属性补片图像684。
[0506]
在674处,基于在670处确定的所提取边缘的点之间的插值来更新所放大的属性或深度补片图像的边缘。例如,图6i示出了包括在属性平面684的处理中以导致得到放大属性平面686的定向插值步骤。
[0507]
非规范/环路外平滑
[0508]
如先前讨论的,平滑概念是基于视频的点云压缩/解压缩的重要方面。平滑可以视为伪影滤波过程,该伪影滤波过程应用于几何信息或属性信息,尝试减少信号的不连续性以便改善其客观和/或主观质量。例如在点已经从2d域重新投影到3d域上之后,可以在3d域中应用此类操作。如上所述,在一些实施方案中,可以对与补片边界相关联的点执行几何平滑过程,并且几何平滑过程可以基本上尝试减少由于压缩以及占用量化/分辨率降低等而可能在这些边界处发生的不连续性。该过程可以通过在位流中通过发信号通知的参数(例如,在补充增强信息(sei)消息中)来控制,这些参数改变被考虑用于平滑过程的点的邻域以及有助于鉴于特定点的邻近样本确定应用于该特定点的滤波强度的阈值。还可以考虑其他平滑过程,例如,对所有样品进行滤波而不管在补片边缘边界上的那些样品的平滑,基于补片位置使用不同阈值的滤波器,可以针对点的特定维度(x,y,z)以及该维度与补片的关
系利用不同权重的滤波,等等。还可以对属性信息应用平滑形式,以便还减少属性中也可能存在的不连续性。这可以视为与像许多图像和视频编码方案所利用的去块和自适应环路滤波技术的过程类似的过程。
[0509]
由于属性信息与几何信息密切相关并且因为可能由于几何压缩而引入到几何的失真,编码器可以包括在基于重构的几何信息进行编码之前(即在几何压缩和解压缩之后,以及在几何从2d到3d域的重构之后)重新映射属性信息以补偿失真的过程。该过程可以称为属性传递过程,并且可以尝试将属性信息从其原始(压缩前)几何位置插值或外推到压缩和解压缩之后产生的重构几何位置。这可以使属性失真最小化,因为属性和其值现在更好地与重构几何相关联。该过程在本文中可以称为“属性传递”过程,或者用于颜色/纹理属性信息,作为点重新着色。
[0510]
然而,在执行属性传递之前在编码器处应用几何平滑可以创建用于执行几何平滑的几何平滑滤波器与属性传递过程之间的依赖性。例如,由于属性传递过程考虑了经平滑几何,因此可以将解码器限制为使用与在编码器处所使用的相同的平滑滤波器,以便将重构的几何位置与属性位置正确匹配。如果不这样,则可能存在属性错配,并且因此在每个重构的3d点处可能存在失真。例如,在编码器处所使用的环路内几何平滑滤波器(例如,规范平滑滤波器)可以限制在解码器处可以使用的平滑滤波器的选项。这是因为解码器必须支持与在编码器处所应用的相同的几何平滑滤波器。另外,环路内几何平滑滤波器(例如,规范平滑滤波器)可需要在解码器处针对点云的所有层解码所有点。然而,在一些实施方案中,可为有利的是仅解码一些层而不是所有层。在编码器处使用环路内几何平滑滤波器可以限制解码器使用点云的一些层而不是所有层重构点云的能力。
[0511]
例如,最终重构几何值与跟每个点相关联的属性之间可能存在错配,因为预计在执行完整平滑过程之后属性与几何点相关。平滑的差异可潜在地导致与跟在编码器处的属性传递过程的操作期间最初预计的几何位置不同的几何位置相关联的点。这在渲染解码的属性时可能导致一些失真。尽管在解码器尝试基于其知识(即在编码器处基于规范几何平滑方案对这些属性进行调整)校正属性的情况下可以减轻一些该失真,但这可能由于这种方法将需要相当大的处理成本或者由于样本不可用(例如,在并非所有层都被解码的情况下)而不总是可行的。具体地,该方法还将需要鉴于指定平滑方法计算点的经平滑几何,用解码的属性渲染这些点,以及然后使用通过期望的平滑过程构造的点执行属性传递过程,如在编码器中所进行的。
[0512]
在一些实施方案中,代替在重构过程结束时针对所有层执行平滑,而是可以针对每个层独立地执行平滑。也就是说,在编码器处对层0信息进行编码之后,仅该信息(例如,来自层0的重构几何点)被考虑用于平滑在编码器处进行2d到3d重构期间对应于该层的点。此外,未压缩点或用不同编码方案编码的其他点(诸如增强的占用信息或点局部重构重构的点)可以从该平滑过程中排除。可以使用点云压缩系统的不同标头或高级语法元素(例如,在序列参数集、点云帧参数集、或补片帧或图块组标头中)的参数或标志通过发信号通知此类点的包含或排除。包括正常补片的补片还可以具有允许它们被明确地从平滑过程中排除或包含在平滑过程中的参数或标志。例如,标记为排除的补片及其重构点将不会被考虑进行任何平滑操作,无论是针对其自身还是针对任何相邻点。然后,可以鉴于从层/图0重构的经平滑点执行属性传递,而无需等待来自也可能被编码的其他图的任何附加点。这意
味着如果丢弃那些层/图,则对与几何位置相关联的属性的质量将没有影响。在平滑之后,这种情况下的几何将匹配编码器还导出的几何。在还重构下一层/图(例如图1)之后,也可以平滑对应于图1的点。对于这些点,仅图1点可以被考虑进行平滑。然而,由于通常这些点已经依赖于已经从下图/层构建的点,因此应当可接受的是这些点是平滑的。这适用于所有后续图。在一个实施方案中,较高图/层中点的平滑仅考虑预平滑点。在另一个实施方案中,较高图/层的平滑考虑来自下图/层的经平滑点。
[0513]
在一些实施方案中,可以不仅在帧级别而且还在图/层级别控制平滑。每个图/层可以通过发信号通知不同的控制参数。编码器可以选择鉴于特定窗口或阈值执行图0的平滑,针对图1使用不同窗口或阈值,和/或完全禁用针对不同图/层的平滑。这可以实现不同的复杂性性能折衷,并且考虑到在对特定图或层进行编码时使用不同质量条件(例如量化参数qp、λ或其他参数)的可能性,还向平滑过程提供更精细的控制。例如,图1的质量可比图0的质量低得多。此类信息可以在编码系统的高级语法结构元素(例如序列参数集、补片帧参数集、或每个补片帧或图块组标头)处通过发信号通知。这些元素在较高元素(例如在序列参数集sps中)处可存在标称值,并且在较低高级语法元素(例如在补片帧参数集或补片帧或图块组标头中)处存在覆盖值。标称值可以指定所有图片可能必须遵循的全局参数,而覆盖参数(如果存在的话)将允许编码器覆盖那些标称值。
[0514]
应当注意,如果系统知道可以丢弃一些层/图,则其编码器也可以在属性传递过程期间考虑该事实。具体地,假设仅层/图0点被重构,编码器可以决定针对图0点执行属性传递过程,而假设所有点都被重构,则图1点使用属性过程。当仅重构图0(并且有效地减少图级别)点时,这可以有助于质量。
[0515]
在另一个实施方案中,从编码器处的属性传递过程中排除几何平滑。例如,图6j示出了生成几何平滑参数的编码器,这些几何平滑参数在未在编码器处执行几何平滑的情况下被复用到位流中,或者如果在编码器处执行几何平滑,则在确定和执行属性传递函数之后执行几何平滑,其中属性传递函数考虑尚未经过几何平滑的未平滑点的压缩/解压缩失真或伪影。相反,在几何平滑之前针对几何优化(例如应用属性传递函数)属性,这始终期望解码器知道,而不管稍后可以使用什么几何平滑方案或者可以丢弃/解码多少层。解码器知道属性信息是在未进行几何平滑的情况下针对几何位置优化的,并且可以在执行任何类型或形式的平滑的情况下/时考虑这一点。应当注意,一些编码器可以选择不执行属性传递过程,例如以开环方式生成属性,以便节省资源。在这种情况下,可能期望在位流中提供一种信号,该信号指定是否在编码器处执行属性传递过程(在未平滑点上),同时还提供关于如何执行属性过程的信息(例如,通过特定窗口内的线性插值)。这对于解码器也可为有用的。该信令可以扩展为还指定是否针对属性传递考虑平滑。这对于解码器最佳地确定它应当用于重构过程的步骤而言同样可为非常有用的。
[0516]
编码器600可以是与图2a中描述的编码器200类似的编码器,但是具有如上所述并入编码器中的非规范平滑过程。编码器600接收输入云帧,并且3d补片生成模块602将点云分割成3d补片,这些补片可以投影到二维补片平面上以生成属性和几何补片图像。关于输入点云帧的信息也被提供给属性图像生成模块606和几何图像生成模块616。例如,原始点云帧可以用作用于确定失真或伪影的参考。在一些实施方案中,在3d补片生成模块602处执行的补片分割和生成可以与针对图2a所示的解压缩成补片206所描述并在图3a至图3e中进
一步描述的类似的方式执行。可以进一步将由3d补片生成模块602生成的补片信息提供给几何图像生成模块616以用于生成2d几何补片,提供给属性图像生成模块606以用于生成属性补片,并且提供给补片序列压缩模块610例如以用于确定待通过发信号通知的补片序列参数集。
[0517]
补片信息还被提供给平滑模块606,该平滑模块可以确定待通过发信号通知的平滑参数。另外,补片打包模块604生成占用图信息,这些占用图信息经由视频压缩模块622编码并且可以经由视频压缩模块622(例如,进行视频编码,并且然后进行视频解码)来重构以生成重构的占用图信息,这些重构的占用图信息被提供给图像填充模块618、图像填充模块608、属性图像生成模块606和平滑模块606。重构的占用图信息可以使图像填充模块606和608能够在图像帧的补片图像与填充部分之间进行区分。而且,平滑模块606可以忽略填充图像帧的部分或者投入较少的资源来填充图像帧的部分。另外,属性图像生成模块可以在属性补片与填充部分之间的边界处调整补片属性值的编码以避免失真。
[0518]
与平滑模块606结合的属性图像生成模块606可以通过将重构的3d补片与从3d补片生成模块602接收的补片信息中所包括的原始3d补片进行比较来执行属性平滑,并且可以向平滑模块606提供平滑信息以用于属性平滑。另外,与平滑模块606结合的几何图像生成模块616可以通过将重构的3d补片与从3d补片生成模块602接收的补片信息中所包括的原始3d补片进行比较来执行几何平滑。然而,可以将几何平滑和属性平滑两者与未进行几何平滑的原始3d补片进行比较。这样,几何平滑和属性平滑不依赖于彼此。例如,编码器可以选择应用属性平滑信息,但应用其自己的几何平滑算法。这是因为属性平滑不是参考几何的经平滑版本,而是参考原始3d补片几何。
[0519]
图像填充模块608和618填充分别填充有属性补片图像和几何补片图像的图像帧。另外,视频压缩模块612和620对相应的属性补片图像帧和几何补片图像帧进行视频编码。复用器将补片序列子流、属性子流、几何子流、占用子流和平滑参数复用到压缩位流中,该压缩位流可以提供给解码器以重构输入点云帧的重构版本。
[0520]
如果以此方式(例如使用在应用几何平滑之前的数据创建属性平面)执行属性传递过程,则解码器可以考虑将该过程用于在应用几何平滑形式之后改进属性值。在这种情况下,解码器将在平滑之前知道重构的几何和对应的属性两者。如果解码器决定对经平滑几何执行属性平滑,则新的经平滑几何可以与原始的预平滑几何组合使用,以执行属性传递步骤以便鉴于其新几何位置调整属性值。在这种情况下,基本上,新属性传递块也被引入到解码器(诸如图2b中所示的解码器)中。
[0521]
例如,图6k示出了解码器,该解码器包括属性传递块668,该属性传递块接收属性数据以及预平滑几何和经平滑几何。尽管在这种情况下解码器中引入了一些附加复杂性,但是解码器中的质量可以得到更好的保证和控制。该方法基本上可以与任何几何平滑过程一起工作,无论该过程是否仅对补片边缘边界进行滤波,或者在该过程也对所有几何样本进行滤波的情况下,则不管这些几何样本是否位于补片边缘边界上。此外,该过程可以通过基于补片位置使用不同阈值的滤波器、可以利用针对点的特定维度(x,y,z)的不同加权和该维度与补片的关系的滤波等来工作。
[0522]
在一些实施方案中,如果在位流中也指定属性平滑过程,则解码器处的属性传递过程也可以与解码器处的属性平滑过程组合,以便降低这两个步骤的复杂性。也就是说,代
替按顺序执行步骤,属性传递过程可以与属性平滑过程组合,并且它们可以一起应用。例如,这在图6k中通过在一个过程块中包括属性传递和平滑两者示出。然而,在一些实施方案中,可以在解码器处串行执行属性平滑和属性传递。
[0523]
在一些实施方案中,属性传递和几何平滑可以在解码器处组合成共同过程。在此类实施方案中,可以针对重构点云的多个点并行执行几何平滑和属性传递。例如,可以逐点执行几何平滑和属性传递,其中移动点位置以调整几何平滑,并且还针对改变的位置计算点位置的更新的属性。这可以同时针对重构点云的多个点(例如,并行)进行。所使用的几何平滑方法可以在解码器处确定,或者也可以在高级语法元素(sps、补片帧参数集、补片帧或图块组标头等)中或使用补充增强信息(sei)消息通过发信号通知给解码器。位流还可以指示几何平滑的多个可能选项而不是仅一个,其中每个选项具有不同的控制参数,并且让解码器基于其能力或特性(例如,功率要求或状态)确定使用哪种方案。这可以针对几何平滑和属性平滑两者进行。例如,如果解码器或包括解码器的设备连接到永久性或外部电源(诸如电源插座),则解码器可以使用第一滤波方案。另外,如果解码器或包括解码器的设备正在耗尽本地电池,则解码器可以使用第二滤波方案。例如,这可以允许在限制功率以节省电池寿命时使用不太复杂的滤波方案。在一些实施方案中,滤波/平滑方案可以在解码器处独立地选择以平滑几何并且平滑属性。
[0524]
在编码器处的属性传递环路之外执行几何平滑可以允许将平滑视为非规范的纯后处理步骤。例如,无论解码器可能决定利用何种几何平滑技术,都保证质量在所有解码器上是一致的。
[0525]
在一些实施方案中,解码器(诸如图6k所示的解码器650)接收诸如可能已经由图6j所示的编码器600生成的压缩位流。解复用器将压缩位流分离成序列参数集信息,这些序列参数集信息由序列参数集解析器654解析并且提供给几何/属性重构模块664、几何后处理模块666和属性传递和平滑模块668。另外,从序列参数集信息解析的信息可以提供给补片序列解压缩模块656和视频压缩模块658、660和662。
[0526]
补片序列解压缩模块656可以类似于图2b所示的辅助补片信息压缩模块238,并且可以确定位流的几何和属性补片的补片信息。
[0527]
视频解压缩模块658、660和662可以对分别包括占用信息、打包几何补片和打包属性补片的已编码图像帧进行视频解压缩。补片信息、占用图、几何图像和属性图像可以提供给几何和属性重构模块664,该几何和属性重构模块可以类似于如图2b所示的解码器230的点云生成模块240。然而,与图2b所示的解码器230相比,几何和属性平滑可以作为单独的过程执行,其中属性平滑能够接收预平滑几何以确定由于几何平滑而产生的属性传递函数。例如,代替包括如图2b中关于解码器230所述的平滑滤波器244,解码器650包括几何后处理模块666和属性传递和平滑模块668两者。需注意,给出图2b的解码器230与图6k的解码器650之间的对比以说明不同的平滑技术。然而,在一些实施方案中,如图6j或图6k中所述的平滑技术可以并入本文所述的任何其他编码器和解码器(诸如图2b的解码器230)中。
[0528]
在一些实施方案中,编码器可以针对点云确定多个补片,如以上在补片分割过程中所述。补片中的每个补片可以包括点云的投影到补片平面上的点。另外,编码器可以将补片图像(例如,属性补片图像和/或几何补片图像)打包到图像帧中。因此,一些图像帧可以包括属性补片图像并且可以在本文中称为属性图像帧,而其他图像帧可以包括对应于属性
补片图像并且可以在本文中称为几何图像帧的对应几何补片图像。
[0529]
编码器可以对几何图像帧进行视频编码和视频解码或者以其他方式压缩和解压缩几何图像帧,以确定由于编码/解码和/或压缩和解压缩而引入到几何中的失真或伪影。编码器可以进一步在编码器处将属性传递函数应用于属性图像帧中所包括的点的属性,以补偿预计由于编码/解码和/或压缩和解压缩而引入的失真和/或伪影。然而,编码器可以避免在编码/解码和/或压缩和解压缩期间向几何补片图像应用几何平滑滤波器。相反,编码器可以任选地确定待在解码器处应用的几何平滑参数,而不对编码器处用来确定属性传递函数的点应用几何平滑参数。这样,属性传递函数可以正确地应用于解码器处没有经过几何平滑滤波器的点。因此,任何解码器,无论它使用哪种类型的平滑滤波器,都可以能够将属性传递函数应用于与在编码器处应用属性传递函数所用的类似的几何。
[0530]
在一些实施方案中,编码器可以包括指示在不同情况下待在解码器处应用的不同平滑滤波器的位流参数。例如,编码器可以指示待应用于点云的不同层的不同平滑滤波器。
[0531]
在一些实施方案中,解码器可以接收包括点云的几何图像帧的数据和属性图像帧的数据的已编码位流。几何图像帧可以包括投影到补片平面上的点云的补片的几何补片图像。属性补片图像可以包括对应于几何补片图像的点的属性值。解码器可以被配置为对已编码位流进行解码以生成属性图像帧和几何图像帧。例如,位流可以被格式化为已编码视频位流,并且解码器可以利用视频解码标准对已编码位流进行解码。解码器还可以在解码器处应用平滑滤波器,该平滑滤波器可以是对于用于压缩点云的点云压缩标准而言非规范的用户或设计者选择的平滑滤波器。在一些实施方案中,平滑滤波器可以在2d域中对重构的几何图像应用,或者可以在3d域中对点云的从几何补片图像重构的重构版本应用。解码器可以将几何补片图像的经平滑版本和/或重构点云的经平滑版本与应用平滑滤波器之前的补片图像或重构点云的版本进行比较。基于该比较,解码器可以确定待应用来补偿平滑的属性传递函数。在一些实施方案中,平滑补偿属性传递函数可以作为第二组属性传递函数被应用,其中第一组属性传递函数在解码器处被应用来补偿由于编码/解码和/或压缩/解压缩而引入到几何中的失真和/或伪影。
[0532]
在一些实施方案中,在已经使用几何补片图像和属性补片图像重构点云之后,可以作为点云的渲染过程的一部分应用平滑和/或平滑补偿属性传递函数。
[0533]
在一些实施方案中,解码器可以递归地应用平滑和属性传递函数,其中一者的输出是另一者的输入,使得在两个过程中都考虑了平滑和属性传递的影响。
[0534]
在一些实施方案中,解码器可以基于待从中查看重构点云的视图,仅对点云的待重构的部分自适应地应用平滑和/或属性传递函数。例如,平滑和/或属性传递函数可以应用于视图中可见的部分点云的部分,但不可以对隐藏在所提出视图中的点云的部分执行。
[0535]
用于压缩的点云数据的位流结构
[0536]
如以上并且以下关于图13和图14更详细讨论的,对增强和虚拟现实应用以及支持这些增强和虚拟现实应用的三维数据的使用和压缩具有相当大的兴趣。一种此类数据形式包括点云表示,其中将对象指定为根据3d几何来描述的一系列点,并且每个点的属性集合可包括信息诸如颜色、反射率、时间或其他类型的信息。考虑到如果不压缩此类数据将需要的空间和带宽的量,对此类信息的压缩是非常期望的。
[0537]
上文关于将补片打包到视频帧中描述了已经提出用于压缩点云数据的一种方法,
并且可以进一步扩展该方法,以通过“遗漏的”或未包括在补片中的其他编码点来实现接近无损或无损的性能。
[0538]
在一些实施方案中,首先将点云数据分割成多个2d投影图像/视频,每个图像/视频表示不同类型的信息。通过将点云分成多个补片来执行分割,该多个补片允许将整个3d空间数据有效地投影到2d平面上。每个补片与信息诸如几何、纹理和其他属性(如果可用)相关联。然后,将此类信息复制到单独图像序列上协同定位的位置,每个图像序列现在分别仅包含几何信息、纹理信息和任何其他剩余属性。还提供了包含补片信息的辅助信息和占用图,该占用图指示这些投影图像序列中的哪些面积对应于实际点云数据,哪些面积未被占用,例如可能不包含数据或虚设数据(例如,填充数据)。然后使用不同的策略对此类信息进行压缩。例如,可以对辅助信息进行熵编码,而可以使用常规图像/视频编解码器或其他方法诸如游长压缩对占用图进行下转换和编码。可以使用常规编解码器压缩单独的投影图像序列。这导致多个子流的集合,例如,几何子流、纹理子流和属性子流,以及占用和辅助信息子流。如图6c所示的位流结构所示,将所有这些流一起复用以生成最终点云位流。
[0539]
在一些实施方案中,图6c中指定的结构可以是非常刚性和非柔性的,并且可能无法解决某些应用,特别是低延迟应用,该低延迟应用将要求在受约束的时间帧内有效地发信号通知和解码与时间上的单个点云帧对应的所有信息。在存储器和延迟方面,图6c所示的位流架构也可能付出相当大的代价。在一些实施方案中,将点云视频序列分割成多组点云帧(gof)。一组帧或gof可以由多层信息组成,每层信息表示不同类型的数据,诸如几何信息和纹理信息等。在一些实施方案中,需要点云压缩pcc解码器首先解码并且存储每个gof的整个几何视频流,以及与之相关联的任何信息,然后是相关的纹理视频流,随后再开始重构gof中的每个帧(可能会认为点云重构可以遵循纹理视频流的解码次序)。然而,可以通过扫描位流并且找到每个子位流的适当位置(例如,几何、占用/辅助信息、纹理)并且对其进行并行解码来减少存储器需求。然而,这假定此类流在使用相同的编码次序和结构时受到限制。
[0540]
当在没有任何标记物的情况下顺序地发信号通知所有数据以指示不同子流的位置时,可能存在时间延迟的明显缺点。例如,直到所有的帧gof信息组都被解码后,才能重构一个帧。另外,除非每个数据都有其自身大小的信息,否则不能对位流进行并行解码。为了解决该问题,在一些实施方案中,可以使用包含关于一种或多种类型的数据的信息及其相关的标头信息的编码单元的概念,为了方便起见,该编码单元在本文中被称为pccnal(点云压缩网络抽象层)单元。封装的数据可以放置在位流内的任何位置,并且可以对该封装的数据进行并行解码和重构。
[0541]
在一些实施方案中,可以不定义或限制参数的信令方法。只要参数具有相同的用途,就可以不限制参数的名称。只要参数的每个功能由数字标识,则每个参数的实际值或代码字可以不受限制。
[0542]
例如,可以使用用于压缩的点云数据的位流结构,该位流结构更灵活并且允许为低延迟应用递送点云数据。位流结构还可以实现其他功能,诸如非均匀误差保护、重排序和减少的存储器占有面积等。此外,在一些实施方案中,还可以考虑用于识别在点云数据的整个切片、帧、gop或序列上使用的不同方法和定义的参数和/或部件单元。在点云压缩pcc位流内定义和使用的部件单元的示例是点云压缩网络抽象层(pccnal)单元。具体地,pccnal
单元可以被定义为包含一种或多种类型的信息并且可以被放置在位流中的任何地方的数据集合。然而,放置可被限制在特定时间段内。
[0543]
pccnal单元的一些其他属性包括:
[0544]
·
pccnal标头:指示单元开始和/或单元类型的位序列。此类标头可以包含“起始代码”指示符,该指示符是唯一序列,不应在pccnal内的其他任何位置出现,并且可以有助于识别此类单元。可以使用起始代码仿真预防方法来避免流内出现等效标记。
[0545]
·
pccnal索引:识别不同pccnal单元的索引
[0546]
·
pccnal大小:pccnal单元的大小
[0547]
·
pccnal尾随位:此类信息是任选的,并与起始代码类似,这是可有助于识别pccnal单元的结尾的独特标记
[0548]
·
pccnal gof索引:与pccnal单元对应的gof索引
[0549]
·
pccnal poc:用于此类单元的索引参数。该索引可以用于分类和/或识别每个nal单元,并且允许基于其值对不同nal单元进行分组。例如,可以向对应于同一点云帧的几何帧和属性帧给予相同的索引,这有助于以后在解码和重构点云表示期间识别这些帧之间的关系。该信息可能会限制pccnal单元在位流内的放置。
[0550]
每个编码块或编码块集合可以被识别为pccnal单元。此类块可包括序列参数集合、图片参数集合、几何视频数据、占用数据、纹理视频数据、几何帧、占用帧和纹理帧等。例如,图7a中的几何视频流可以对应于几何视频数据pccnal(pccnal-geo),辅助信息和占用图可以对应于pccnal-occ,并且纹理视频流可以对应于pccnal-att。在另选的实施方案中,几何视频数据、占用数据和纹理视频数据中的所有都可以包括一个pccnal单元。
[0551]
pccnal单元的示例如下:
[0552]
·
pccnal-sps:使用的参数集合,并且可应用于整个序列
[0553]
·
pccnal-pps:使用的参数集合,并且可应用于整个帧/图片
[0554]
·
pccnal-gof:使用的参数集合,并且可应用于整个gof
[0555]
·
pccnal-occ:占用图信息集合
[0556]
·
pccnal-geo:几何数据信息集合
[0557]
·
pccnal-att:纹理数据信息集合
[0558]
·
pccnal-frm:单帧上的信息
[0559]
·
pccnal-geofrm:单帧上的几何信息
[0560]
·
pccnal-attfrm:单帧上的纹理信息
[0561]
·
pccnal-occfrm:单帧上的占用图信息
[0562]
还可以为子帧(例如,切片、编码树单元(ctu)或宏块的组、图块、或切片或图块的组)定义上文信息。也可以为不一定需要等于gof中的帧数的一组帧指定这些信息。该组帧可小于或甚至大于gof。在该组帧较小的情况下,预期该组内部的所有帧将是gof的子集。如果较大,则预期该数量将包括几个完整的gof,这些gof可能不一定具有相等的长度。图7b是具有pccnal单元的pcc编码位流的概念结构的示例图示。
[0563]
在一些实施方案中,可在没有任何标记物的情况下顺序地发信号通知pccnal单元。
[0564]
在一些实施方案中,pccnal单元可具有pccnal标头,该标头可包括起始代码并且/
或包含pccnal尾随位。将pccnal标头定位于pccnal单元的开始处,并且将pccnal尾随位定位于pccnal单元的结尾处。通过具有pccnal标头和/或pccnal尾随位,解码器可跳至正确数据所在的点,而无需从开始到数据进行解码。
[0565]
例如,在pccnal标头中,可包括起始代码,该起始代码可有助于检测pccnal单元。起始代码是唯一的位序列,不应当用于表示此类单元内的任何其他数据。当检测到此类起始代码时,可能已知以下位将对应于与此类单元相关的特定信息,该特定信息包括此类单元的标识信息以及将对应于此类标识符的任何相关有效载荷。例如,等于000000的标识符(假定该标识符为6位)可指示pccnal是gof标头单元,而等于000001的标识符可指示有效载荷包括几何数据信息。其他标识符可对应于占用信息、属性等,并且此类标识符可由应用或用户定义(例如,工程师配置编码器/解码器)。应当指出的是,尽管起始代码存在于特定单元的开始处,但是定义在固定数量的位或语法元素之后的“起始代码”也是可能的,该起始代码在本文中可被称为“前导码”序列。例如,前导码序列可包括单元标识符以及pocnal poc参数。如果前导码序列中的参数使用变量算术编码,则在位流中以从右到左的次序对这些参数进行编码(例如,首先在流中写入编码参数的最低有效位,最后写入最高有效位)。这不是必需的,但是仍可用于固定长度参数。
[0566]
在一些实施方案中,pccnal标头可包括其自身的pccnal大小而不是pccnal标头位的大小。
[0567]
在一些实施方案中,pccnal标头可具有pccnal大小和pccnal标头位两者。
[0568]
在一些实施方案中,pccnal可具有尾随位以指示pccnal单元的结尾。
[0569]
在一些实施方案中,pccnal可具有其对应的gof索引。
[0570]
在一些实施方案中,pccnal可具有其对应的poc索引。
[0571]
在一些实施方案中,pccnal可具有其对应的类型标识符。
[0572]
在一些实施方案中,利用pccnal标头,位流中的pccnal单元可以无任何固定次序的方式定位。例如,在一些实施方案中,可在pccnal poc的限制内,以任何次序将pccnal单元放置在位流内。在解码或重构期间,仍可使用pccnal poc的值来执行重排序。然而,pccnal poc可以是周期性的数量,并且此类重排序应当考虑到此类特性。在一些实施方案中,pccnal单元可按其gof索引进行分组。在一些实施方案中,pccnal单元可按其poc进行分组,如图7b所描绘的。在一些实施方案中,pccnal单元可按其类型进行分组,如图7c所描绘的。
[0573]
在一些实施方案中,可在不同的位流中发信号通知pccnal单元。甚至当单独发信号通知这些pccnal单元时,也可以通过pccnal标头信息(诸如,gof索引和/或poc)正确地重构这些单元。
[0574]
例如,当在解码器处接收到编码的pcc位流时,该解码器可开始解析pccnal单元标头。使用标头中的信息,解码器可跳过位流以收集同步的占用几何纹理数据。如果标头具有pccnal单元的大小,则该标头可能会按大小跳到结尾。如果标头仅包含起始代码,则该标头可以通读位流,直到遇到新标头或尾随位序列。解码器还可以为每个pccnal分析pccnal poc信息,确定哪些单元包含相同的信息,然后对这些单元进行分组和重排序。此类过程可允许对压缩的点云数据进行正确的解码,然后重构该压缩的点云数据,例如,通过确定几何和属性视频信号中的哪个帧对应于相同的点云帧并且可用于其重构。这是如在可缩放视频
编解码器中使用的类似机制,其中解码器扫描位流并且基于其poc来确定基站和增强层的对应。
[0575]
在编码的pcc位流中,每个切片、每个帧/图片、每个gop或点云数据的每个序列可具有几个参数,这指示允许对点云数据进行正确解码和渲染的信息。这些参数可不止一次地出现在位流中并且出现在不同位置处。例如,可以在序列级别和切片级别两者处发信号通知参数。在这种情况下,较低级别处的参数可以覆写该级别范围内的较高级别处的参数。在另一个实施方案中,较低级别处的参数可提供可阐明较高级别处的参数的特性的附加信息。这些参数的集合可包括pccnal单元。此类参数的一些示例包括以下内容:
[0576]
·
pcc帧宽度、pcc帧高度:映射pcc数据的帧的“标称”宽度和高度。该大小可以与视频编解码器的输出的大小相同。该大小可以与视频编解码器的输出的大小不同。在这种情况下,可通过参数集中指示的方法或由用户/编解码器预定义的方法来调整输出的大小。
[0577]
·
调整大小的类型:从解码视频大小调整到pcc帧大小的方法的类型
[0578]
·
一组帧的大小:可发信号通知一组帧中的帧数。
[0579]
·
色度格式:可发信号通知几何数据视频和纹理数据视频的色度格式。如有必要,还可以发信号通知占用图的色度格式。可以关于两个视频层一次发信号通知该格式,或者可以关于每个视频层单独发信号通知该格式。此类信息也可由视频位流推断出来,并且不一定需要再次出现于pccnal单元中。
[0580]
·
输入、输出位深度:该语法定义了输入pcc数据的位深度,并且发信号通知了输出pcc数据。
[0581]
·
内部位深度:该语法元素定义了用于在pcc中进行内部计算的数据的位深度。在内部计算期间,输入数据被调整为在内部位深度的范围内。此类信息也可由视频位流推断出来,并且不一定需要再次出现于pccnal单元中。
[0582]
·
视频编解码器的类型:该语法元素定义了视频编解码器(例如,avc、hevc、av1或一些其他编解码器),以及用于对几何和属性投影视频数据进行编码的对应配置文件和级别信息。可以关于几何和属性视频信号两者一次发信号通知此类语法元素,或者可以关于每个视频信号独立地发信号通知此类语法元素。也可以省略此类信息,并且通过视频流的特性和视频流内的信息来推断此类信息。
[0583]
·
用于每个流的层
[0584]

层的存在:指示位流中存在多于1层用于几何数据/属性数据/占用图的标志
[0585]

层数:在层数大于1的情况下,还发信号通知了层数。该语法元素定义了几何和属性数据视频具有的层数。每个层包含关于映射到补片中的同一像素但各自对应于不同深度的点的信息。
[0586]

最小层数:这是任选的语法元素,用于定义位流中存在的最小层数。
[0587]

每个视频层可使用不同类型的视频编解码器。可发信号通知用于特定层的视频编解码器的类型。
[0588]
·
占用图
[0589]

占用图的存在:指示位流中存在占用图的标志
[0590]

占用图的编码类型:在存在占用图的情况下,还发信号通知用于占用图的编码方法的类型。例如,可利用视频编解码器或在本说明书中定义的另一方法来编码占用图。
[0591]
压缩和解压缩点云的示例方法
[0592]
图8a示出了根据一些实施方案的用于压缩点云的属性信息和空间信息的过程。
[0593]
在802处,点云由编码器接收。点云可以例如由一个或多个传感器捕获,或者可以例如在软件中生成。
[0594]
在804处,使用本文所述的任何技术或使用本文所述的技术的一个或多个组合来确定压缩的点云信息。
[0595]
在806处,使用在804处确定的压缩的点云信息对压缩的点云进行编码。可以使用本文所述的任何技术压缩点云。
[0596]
图8b示出了根据一些实施方案的用于解压缩点云的属性信息和空间信息的过程。
[0597]
在803处,接收已编码点云。可能已经使用本文所述的任何编码技术对该点云进行了编码,该点云诸如为打包到图像帧中然后由视频编码器编码的补片图像。在一些实施方案中,已编码点云可包括点云投影,诸如投影到立方体、圆柱体、球体等,然后经由视频编码器对其进行编码。
[0598]
在805处,确定用于已编码点云的空间和属性信息。例如,视频解码器可用于对视频编码的打包图像或投影进行解码。然后可基于打包图像或投影来确定空间信息,并且将空间信息组合以确定用于点云的点的空间信息。例如,用于补片的点的深度信息可与用于补片的点的x和y信息匹配,以确定补片的点在3d空间中的空间信息。以类似的方式,被包括在补片图像中的其他属性(诸如,颜色属性、纹理属性等)可与对应的点匹配以确定用于该点的属性值。另外,在多个投影的情况下,可以在多于一个的投影中识别相同的点以确定该点在3d空间中的空间信息。
[0599]
在807处,可将解压缩点云提供给接收方设备或模块。
[0600]
图8c示出了根据一些实施方案的正被生成并打包到图像帧中以压缩点云的属性信息和空间信息的补片图像。
[0601]
在810处,为点云的部分确定补片。例如,可如上所述确定补片。在825处,可生成用于补片的补片信息,并且在826处,可对该补片信息进行编码以将其发送至解码器。在一些实施方案中,编码的补片信息可与包括打包的补片图像的一个或多个图像帧分开编码。
[0602]
在811处,第一补片(或选择下一个补片)。在812处,为被包括在补片中的点云的点来生成颜色(例如,属性)补片图像。在814处,为被包括在补片中的点云的点生成一个或多个附加属性图像,诸如纹理属性图像。
[0603]
在813处,为被包括在补片中的点云的点生成空间信息图像。在一些实施方案中,为了生成空间信息图像,在815处,点云的点被投影到补片平面上,该补片平面垂直于在补片位置处与点云的表面正交的法矢量。在817处,基于在815处点正被投影到补片平面上来为补片生成第一空间图像。另外,在816处,确定补片的点相对于补片平面的深度信息,并且在818处,基于在816处确定的深度信息来生成深度补片图像。
[0604]
在819处,确定是否存在待为其生成补片图像的附加补片。如果是,则对于下一个补片,该过程返回到811。如果不是,则在820处,将用于补片的补片图像打包到一个或多个图像帧中。在一些实施方案中,可在确定用于其他补片的补片图像之前打包用于相应补片的补片图像。在821处,基于在将补片图像打包到一个或多个图像帧中时放置该补片图像的位置来生成占用图。在824处,对占用图进行编码。如上所述,在一些实施方案中,占用图可
使用算术编码器、熵编码器等来进行编码。另外,在一些实施方案中,占用图可使用视频编码器来进行编码,其中占用图被组织为附加图像帧,该附加图像帧与补片图像帧对应并且表示补片图像帧的被补片图像占用的部分(例如,占用像素)以及补片图像帧的被填充的部分(例如,未占用像素)。在图12a至图12c中更详细地讨论了占用图的视频编码。
[0605]
在822处,填充一个或多个图像帧中未被补片图像占用的空间。在一些实施方案中,可在822处填充补片图像帧之前或之后生成用于补片图像帧的占用图。
[0606]
在823处,该一个或多个图像帧是诸如根据高效视频编码(hevc)标准来视频编码的。在其中占用图由占用图视频图像帧表示的一些实施方案中,占用图视频图像帧可在823处进行视频编码。
[0607]
图9示出了根据一些实施方案的正被生成并打包到图像帧中以压缩移动或改变的点云的属性信息和空间信息的补片图像。
[0608]
在930处,接收用于先前已编码的点云的点云信息,其中点云信息表示先前已编码的点云的后续版本。例如,该后续版本可以是点云在后续时刻处的表示,其中点云随着时间的推移而移动或改变。
[0609]
在931处,确定是否需要为点云确定任何新补片。例如,当前不在先前已编码的点云中的对象可能已被添加到点云中。例如,点云可以是道路的点云,并且球可能已经进入该道路。如果需要添加新补片,则在933处,更新占用图以包括新补片,并且在934处,对该占用图进行编码。另外,在932处,以与812至814中所述的方式类似的方式为新补片生成补片图像。生成的补片图像被包括在943处的打包中。
[0610]
在935处,选择为参考(先前)点云生成的补片中的第一或下一个补片。在936处,如本文所述对补片的点进行重新采样。在937处,确定针被包括在参考点云与当前点云之间的选定补片中的点的运动矢量。在940处,使用运动矢量来生成相对运动补片图像。例如,在一些实施方案中,生成相对运动补片图像可包括在941处使用不同的图像特性在不同的方向上编码矢量运动,如本文所述。在938处,生成更新的颜色补片图像。在一些实施方案中,更新的颜色补片图像可编码残差值,该残差值指示被包括在参考点云与当前点云之间的补片中的点云的点的颜色的差异。以类似的方式,在939处,可生成其他属性更新补片图像。
[0611]
在942处,确定是否存在待评估的附加补片。如果是,则对于下一个补片,该过程返回到935。如果不是,则在943处,将用于补片的补片图像打包到一个或多个图像帧中。在一些实施方案中,可在确定用于其他补片的补片图像之前打包用于相应补片的补片图像。
[0612]
在944处,填充一个或多个图像帧中未被补片图像占用的空间。
[0613]
在945处,该一个或多个图像帧是诸如根据高效视频编码(hevc)标准来视频编码的。
[0614]
图10示出了根据一些实施方案的解码器,该解码器接收包括补片图像、补片信息和占用图的图像帧,并且生成点云的解压缩表示。
[0615]
在1050处,由解码器接收占用图,在1051处,由解码器接收补片信息。在一些实施方案中,可对占用图和补片信息进行编码,并且解码器可对占用图和补片信息(未示出)进行解码。在1052处,解码器接收一个或多个已编码视频图像帧。在1052处,解码器识别一个或多个已编码视频图像帧中的补片图像,并且在1054处,解码器对已编码视频图像帧进行解码。在一些实施方案中,解码器可利用占用图和补片信息来识别一个或多个编码的视频
图像的活动部分和非活动部分,并且可基于该部分(例如,块、子块、像素等)是否包括活动信息或非活动信息来调整用于对编码的视频图像进行解码的一个或多个解码的参数。
[0616]
在1055处,解码器确定用于相应补片的点的空间信息和/或属性信息,并且在1056处,生成在一个或多个编码的视频图像中编码的点云的解压缩的表示。
[0617]
在一些实施方案中,图像帧的活动部分和非活动部分可由“掩模”指示。例如,掩模可指示图像的作为填充部分的一部分或者可指示点云的非活动点,诸如在一个或多个视角无法看到的点。
[0618]
在一些实施方案中,“掩模”可与补片图像或投影一起被编码。在一些实施方案中,“掩模”可在空间中示出“活动/可用”点和“非活动/不可用”点。在一些实施方案中,掩模可独立于纹理和深度补片图像。在一些实施方案中,掩模可与其他信息(诸如纹理或深度补片图像)组合。例如,通过指示信号范围中的某些值对应于活动点(例如,8位图像中高于16且低于235的值),并且其他值对应于非活动点(例如,8位图像中低于16的值或高于235的值)。在一些实施方案中,可进行附加的考虑以避免或减少活动区域与非活动区域之间的污染。例如,可能需要在活动区域与非活动区域之间的边界处使用无损或视觉上无损的编码。
[0619]
在一些实施方案中,可以多种方式利用掩模来改善编码效率。例如,掩模可与投影方法(诸如,圆柱体投影、球体投影或多重投影以及分解成补片)一起使用。另外,掩模可与立方体投影方法一起使用。
[0620]
图11a示出了根据一些实施方案的编码器,该编码器基于用于点云的一个或多个掩模来调整编码。
[0621]
在1162处,编码器接收点云。在1164处,编码器针对所接收的点云生成如本文所述的多重投影或补片图像。在1166处,编码器确定一个或多个掩模。掩模可以是隐藏点、图像帧的填充部分、从特定视点不可见的点等。在1168处,编码器基于该掩模来调整一个或多个编码参数。例如,编码器可调整分配给掩蔽部分的预算。本发明描述了编码器可执行的附加调整。在1168处,编码器例如经由一个或多个已视频编码图像帧来对压缩的点云进行编码。
[0622]
图11b示出了根据一些实施方案的解码器,该解码器基于用于点云的一个或多个掩模来调整解码。
[0623]
在1170处,解码器接收已编码点云。在1172处,解码器为已编码点云的部分确定一个或多个掩模。例如,编码器可确定图像帧的表示压缩的点云对应于填充的部分。或者,对于正由解码器渲染的点云的特定视图,解码器可确定从特定的视点无法看见压缩的点云的一个或多个点。在一些实施方案中,掩模信息可指示当从特定视点查看点云时哪些点被隐藏。在1174处,解码器基于该掩模来调整一个或多个解码参数。可由解码器基于活动区域/非活动区域或点(例如,掩模)进行的调整将在下面更详细地描述。在1176处,解码器对压缩的点云进行解码。
[0624]
在一些实施方案中,在执行运动估计和模式决定时可使用掩模。计算用于整个块的一般失真。然而,一些块可具有包含纹理数据以及空/不可见区域的组合的块。对于这些区域,仅纹理数据是感兴趣的,并且可忽略不可见区域中的任何失真。因此,由于通常在执行此类过程(如运动估计和模式决定)时,执行失真计算(诸如,绝对差值和(sad)或平方误差和(sse)),因此可使用掩模来改变该计算以排除不可见区域的失真。例如,对于sad的情况,可通过仅计算块中对应于当前图像中的可见区域的样本的绝对差值和来计算失真。在
计算期间,可以忽略所有其他样本。在一些实施方案中,可在像素级下对失真进行归一化,从而避免必须考虑具有不同数量的像素的块。
[0625]
在一些实施方案中,不是仅考虑不可见样本,而是可以向与不可见样本相邻的样本或被识别为对应于不同投影的样本(但是在同一编码块内进行编码时放置)分配不同的权重。例如,特定块中的样本可以被认为对于主观质量而言更为重要,并且可以分配较低的失真公差。在此类情况下,可增大对那些样本的加权,从而在那些样本的失真较低的情况下偏置决定。还了解到,在运动估计或模式决定期间在具有特定大小m
×
n的同一块中的不同样本对应于不同对象,并且还可有助于确定块分区模式,例如,编码器可(潜在地基于初步搜索)对是否可以/应该使用不同的分区作出早期决定。
[0626]
在一些实施方案中,掩模可用于速率控制和速率分配。例如,可能期望以与仅包含可见样本的块不同且有时比其更高的质量来编码对应于包含可见样本和不可见样本两者的区域的块。这样做是为了避免可见样本与不可见样本之间的渗漏,并且确保点云“边界”处的最佳质量。还可基于深度信息来分配不同的质量,该深度信息也可在编码器上可用。与具有相当大的深度方差的区域相比,较平坦的区域可承受大得多的失真。质量控制可通过调整量化参数/因子来执行,但是也可通过调整其他参数(诸如模式决定期间的拉格朗日乘数)、使用不同的量化矩阵(如果可用)、启用和/或调整量化阈值以及分区量化的大小和/或形状来执行。
[0627]
还可根据使用的投影方法来调整量化。如果例如使用等矩形投影方法将对象投影到球体上,然后投影到2d平面上,则可能期望增加顶部边界和底部边界上的量化,并且在朝向中心/赤道移动时将该量化缓慢减小。这可有助于在使用特定投影方法时对分辨率分配中的一些差异进行补偿。可再次基于类似的假设并且再次考虑掩模信息来对不同的颜色分量进行不同的调整。
[0628]
也可在考虑样本是可见的样本还是不可见的样本时执行量化。例如,如果策略涉及使用动态编程/网格量化方法来确定量化系数的值。在此类实施方案中,通常可计算量化系数的失真的影响,以及其对多个重构点处的位率的影响。这可关于所有系数完成,同时考虑其位率交互。最后,可通过选择将一起导致最佳速率失真性能的量化值来共同作出用于所有系数的决定。在一些实施方案中,在计算此类度量时可考虑可见区域和不可见区域。
[0629]
类似于运动估计和模式决定过程,样本自适应偏移(sao)技术通常还为可使用的每个可能模式或sao值计算所得失真。同样,该决定可以排除不可见样本,或优先考虑与不可见样本接近的不同权重样本或与深度变化显著的区域对应的样本。
[0630]
在一些实施方案中,掩模可用于可涉及失真计算的任何其他编码过程中。
[0631]
在一些实施方案中,掩模可用于预处理/预滤波中。例如,可基于样本与不可见样本的接近度来对这些样本进行预滤波,以便减小出现伪影的可能性,并且/或者移除可能使编码更困难的噪声。可使用任何形式的预滤波,包括时空滤波器。
[0632]
在一些实施方案中,可对纹理和深度信息两者应用预滤波。
[0633]
鉴于可见/不可见样本的量和不同图片上的深度方差,还可在图片级别下(在时间上)作出量化参数的决定。例如,在多通道编码系统中,此类决定可能是相当有用的,其中首先分析了整个序列以确定每个帧的复杂性以及每个帧与其他帧的关系。然后可决定将用于与所有其他帧具有关系的该帧的编码参数,并且为该编码参数给出期望的质量或位率目
标。不仅可以关于量化参数作出类似的决定,而且还可以关于图片编码类型(即,i、p或b)、结构(例如,遵循特定帧编码次序的对n个帧进行的分级编码或非编码)、待使用的参考、加权参数等作出类似的决定。
[0634]
编码和解码(规范概念)
[0635]
由于掩模以及深度信息可能在解码器处无损或视觉上无损可用,因此该信息也可在解码器处(并且当然在编码器处)使用以进一步改善质量。
[0636]
例如,解块和样本自适应偏移(sao)以及自适应环路滤波(alf)和去振铃(在支持此类机制的编解码器中)可使用掩蔽信息,其中排除不可见样本、对应于不同投影的样本或具有非常不同的深度特性的样本。相反,可能期望仅考虑对应于相同投影并且彼此相距不远(深度方向)的样本的此类滤波方法。这可减少这些方法试图减轻的块效应和/或其他伪影。其他未来类型的环路内后滤波也可以类似的方式执行。
[0637]
又如,具有可见/不可见/不同区域分割的环路外后滤波可利用掩蔽信息。
[0638]
可执行基于块内的可见/不可见样本的某个百分比对qp质量参数的隐式调整。如果此类切换经常在位流中发生,则这可减少编码参数的信令。
[0639]
可执行基于可见/不可见样本的百分比对变换类型的调整,这包括考虑形状自适应离散余弦变换(dct变换)。
[0640]
对重叠块运动补偿技术的调整可利用掩蔽信息(如果存在于编解码器中)来掩蔽不可见样本。可关于块运动补偿和/或帧内预测(包括帧内块复制方法)来进行类似的考虑。当构造预测信号时,这还包括当插值以执行子像素运动补偿或执行双预测时,可考虑被认为可见的样本。可考虑来自当前图片的掩模,但是如果需要,可考虑来自当前图片的掩模和对应于参考图片的掩模两者。可在编码器处通过一些形式的信令(即,在序列、图片、图块、切片或甚至ctu/块级别下)使此类考虑自适应。
[0641]
在一些实施方案中,可执行基于掩模或深度信息对最终值的剪辑。
[0642]
在一些实施方案中,可基于可见点和不可见点以及对应于不同投影的点的存在(和量)类似地调整或约束可存在于编解码器内部(例如,以mpeg的jvet团队目前正在开发的av1或通用视频编码(vvc)标准)的其他预测方法。
[0643]
在一些实施方案中,不同的控制/调整可应用于不同的颜色分量和深度信息。
[0644]
占用图压缩方法
[0645]
算术压缩
[0646]
图12a示出了根据一些实施方案的关于占用图的压缩的更多细节。可作为如上所述的步骤821或933的一部分来执行图12a中所示的步骤。在一些实施方案中,可在821或933处执行本文所述的任何占用图压缩技术。
[0647]
在1280处,为占用图的每个块或修改块确定候选补片的列表。
[0648]
在1281处,以与将补片打包到图像帧中的次序相反的次序对用于每个块的候选补片列表进行排序。例如,可将补片打包到图像中,其中将较大的补片打包在较小的补片之前。相反,用于占用图的每个块的候选列表可在较大的补片之前包括较小的补片。在1282处,算术编码器可以用于为每个块编码补片候选列表。在一些实施方案中,可以使用熵编码器。另外,在一些实施方案中,可以为空块分配特殊值诸如零,而可为补片候选分配对应于补片编号(诸如1、2、3等)的编号。
[0649]
在1283处,对于每个块,根据确定的精度值来确定子块。可与占用图一起对确定的精度值进行编码,使得解码器可确定在编码器处使用的确定的精度值。
[0650]
在1284处,对于每个块,为块的每个子块确定二进制值(例如,0或1)。为已满子块分配与非满子块不同的二进制值。如果块的所有子块都已满,则可以为该块分配二进制“已满”值。
[0651]
在1285处,对于每个非满子块,确定遍历次序。例如,可确定图12b中所示的任何示例遍历次序(或其他遍历次序)。如上所述关于占用图压缩的游长编码策略可用于使用确定的遍历次序对子块的二进制值进行编码。
[0652]
图12b示出了根据一些实施方案的用于压缩占用图的示例块和遍历模式。可以如上文关于占用图压缩并且在图12a中所述使用遍历模式。例如,图12b示出了包括多个子块1287的占用图的块1286。
[0653]
基于视频的压缩
[0654]
图12c示出了根据一些实施方案的关于占用图的压缩的更多细节。可作为如上所述的步骤821或933的一部分来执行图12c中所示的步骤。在一些实施方案中,可在821或933处执行本文所述的任何占用图压缩技术。
[0655]
在1290处,对于每个补片图像帧,诸如包括深度信息补片或属性值补片的图像帧,生成对应的占用图图像帧。该占用图图像帧可具有与补片图像帧相同的帧大小,并且当被放置在补片图像帧上时,占用图图像帧的像素可与补片图像帧中的对应像素匹配。由于这种情况,因此可将二进制值分配给占用图图像帧的每个像素以指示补片图像帧中的相同对应像素是占用像素还是填充像素。在一些实施方案中,占用图图像帧可小于其对应的补片图像帧。在此类实施方案中,可将不同的值分配给占用图图像帧像素以指示其在补片图像帧中的对应像素是被占用还是被填充。例如,单个占用图图像帧像素可对应于多个补片图像帧像素,其中第一值指示补片图像帧中占用像素和未占用像素的第一组合,并且另一值指示不同的组合。作为示例,比如单个占用图像素对应于两个补片图像映射像素。在此类实施方案中,占用图像素的占用图中的第一值可指示两个补片图像像素均未占用,第二值可指示两者均被占用,第三值可指示两个像素中的较高者被占用而另一个未占用,并且第四值可指示两个像素中的较低者被占用而另一个未占用。例如,占用图的每个块可以是补片图像帧的块的几倍大(例如,占用图可具有比补片图像帧更低的分辨率)。不同的颜色值(例如,第一、第二、第三、第四值等)可表示占用图的与补片图像帧的多个像素对应的细分。
[0656]
在1292处,为补片图像帧的每个块确定候选补片列表。
[0657]
在1294处,以与将补片打包到图像帧中的次序相反的次序对用于每个块的候选补片列表进行排序。例如,可将补片打包到图像中,其中将较大的补片打包在较小的补片之前。相反,用于补片图像帧的每个块的候选列表可在较大补片之前包括较小补片。
[0658]
在1296处,对占用图图像帧进行视频编码。
[0659]
在1298处,可将算术编码器用于对辅助信息(诸如每个块的补片候选列表)进行编码。在一些实施方案中,可以使用熵编码器。
[0660]
使用点云编码器和解码器的示例应用
[0661]
图13示出了根据一些实施方案的在3d应用中使用的压缩点云。
[0662]
在一些实施方案中,传感器(诸如传感器102)、编码器(诸如编码器104或本文所述
的任何其他编码器)和解码器(诸如解码器116或本文所述的任何解码器)可以用于在3d应用中传送点云。例如,在1302处,传感器(诸如传感器102)可以捕获3d图像,并且在1304处,传感器或与传感器相关联的处理器可以基于感测到的数据执行3d重构以生成点云。
[0663]
在1306处,编码器(诸如编码器104)可以对点云进行压缩,并且在1308处,编码器或后处理器可以将压缩点云打包并经由网络1310传输压缩点云。在1312处,可以在包括解码器(诸如解码器116)的目标位置处接收数据包。在1314处,解码器可以对点云进行解压缩,并且在1316处,可以渲染解压缩点云。在一些实施方案中,3d应用可以实时地传输点云数据,使得1316处的显示可表示在1302处观察到的图像。例如,在1316处,峡谷中的相机可以允许远程用户体验穿行虚拟峡谷。
[0664]
图14示出了根据一些实施方案的在虚拟现实(vr)或增强现实(ar)应用中使用的压缩点云。
[0665]
在一些实施方案中,点云可在软件中生成(例如,与由传感器捕获相反)。例如,在1402处,产生虚拟现实或增强现实内容。虚拟现实或增强现实内容可包括点云数据和非点云数据。例如,作为一个示例,非点云字符可横穿由点云表示的地形。在1404处,可以压缩点云数据,并且在1406处,可以将压缩点云数据和非点云数据打包并经由网络1408传输这些数据。例如,在1402处产生的虚拟现实或增强现实内容可以在远程服务器处产生并经由网络1408传送至vr或ar内容消费者。在1410处,可以在vr或ar消费者的设备处接收和同步数据包。在1412处,在vr或ar消费者的设备处操作的解码器可以对压缩点云进行解压缩,并且可以例如在vr或ar消费者的设备的头戴式显示器中实时地渲染点云和非点云数据。在一些实施方案中,可响应于vr或ar消费者操纵头戴式显示器以看向不同的方向来生成、压缩、解压缩和渲染点云数据。
[0666]
在一些实施方案中,如本文所述的点云压缩可用于各种其他应用诸如地理信息系统、体育赛事直播、博物馆展示、自主导航等中。
[0667]
示例性计算机系统
[0668]
图15示出了根据一些实施方案的示例性计算机系统1500,该示例性计算机系统可以实现编码器或解码器或本文所述的部件中的任何其他部件(例如,上文参考图1至图14描述的部件中的任何部件)。计算机系统1500可以被配置为执行上文所述的任意或全部实施方案。在不同的实施方案中,计算机系统1500可以是各种类型的设备中的任一者,包括但不限于:个人计算机系统、台式计算机、膝上型电脑、笔记本电脑、平板电脑、一体电脑、平板计算机或上网本电脑、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、消费者设备、视频游戏控制器、手持式视频游戏设备、应用服务器、存储设备、电视、视频记录设备、外围设备(诸如交换机、调制解调器、路由器)或一般性的任何类型的计算或电子设备。
[0669]
本文所述的点云编码器或解码器的各种实施方案可以在一个或多个计算机系统1500上执行,该计算机系统可以与各种其他设备交互。需注意,根据各种实施方案,上文相对于图1至图14所述的任何部件、动作或功能性可以在被配置为图15的计算机系统1500的一个或多个计算机上实现。在例示的实施方案中,计算机系统1500包括经由输入/输出(i/o)接口1530耦接到系统存储器1520的一个或多个处理器1510。计算机系统1500还包括耦接到i/o接口1530的网络接口1540,以及一个或多个输入/输出设备1550,诸如光标控制设备
1560、键盘1570和显示器1580。在一些情况下,可以想到实施方案可以使用计算机系统1500的单个实例来实现,而在其他实施方案中,多个此类系统或者构成计算机系统1500的多个节点可以被配置为托管实施方案的不同部分或实例。例如,在一个实施方案中,一些元素可以经由计算机系统1500的与实现其他元素的那些节点不同的一个或多个节点来实现。
[0670]
在各种实施方案中,计算机系统1500可以是包括一个处理器1510的单处理器系统,或者包括若干处理器1510(例如,两个、四个、八个或另一适当数量)的多处理器系统。处理器1510可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1510可以是实现多种指令集架构(isa)(诸如x86、powerpc、sparc或mips isa或任何其他合适的isa)中的任一种的通用或嵌入式处理器。在多处理器系统中,处理器1510中的每一个处理器通常可以但并非必须实现相同的isa。
[0671]
系统存储器1520可以被配置为存储点云压缩或点云解压缩程序指令1522和/或可由处理器1510访问的传感器数据。在各种实施方案中,系统存储器1520可以使用任何合适的存储器技术来实现,诸如静态随机存取存储器(sram)、同步动态ram(sdram)、非易失性/闪存型存储器或任何其他类型的存储器。在例示的实施方案中,程序指令1522可以被配置为实现结合上述功能性中的任一种的图像传感器控制应用程序。在一些实施方案中,程序指令和/或数据可被接收、发送或存储在与系统存储器1520或计算机系统1500分开的不同类型的计算机可访问介质上或类似介质上。尽管将计算机系统1500描述为实施前面各图的功能框的功能性,但是可以经由这种计算机系统实施本文所述的任何功能性。
[0672]
在一个实施方案中,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中。
[0673]
网络接口1540可以被配置为允许在计算机系统1500与附接到网络1585的其他设备(例如,承载器或代理设备)之间或者在计算机系统1500的节点之间交换数据。在各种实施方案中,网络1585可以包括一种或多种网络,包括但不限于局域网(lan)(例如,以太网或企业网)、广域网(wan)(例如,互联网)、无线数据网、某种其他电子数据网络或它们的某种组合。在各种实施方案中,网络接口1540可以支持经由有线或无线通用数据网络(诸如任何合适类型的以太网网络)的通信,例如;经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)的通信;经由存储区域网络(诸如光纤通道san)、或经由任何其他合适类型的网络和/或协议的通信。
[0674]
在一些实施方案中,输入/输出设备1550可以包括一个或多个显示终端、键盘、小键盘、触控板、扫描设备、语音或光学识别设备或适于由一个或多个计算机系统1500输入或访问数据的任何其他设备。多个输入/输出设备1550可以存在于计算机系统1500中,或者可以分布在计算机系统1500的各个节点上。在一些实施方案中,类似的输入/输出设备可以与
计算机系统1500分开,并且可以通过有线或无线连接(诸如通过网络接口1540)与计算机系统1500的一个或多个节点进行交互。
[0675]
如图15所示,存储器1520可以包括程序指令1522,这些程序指令可以能够由处理器执行以实现上文所述的任何元素或动作。在一个实施方案中,程序指令可执行上文所述的方法。在其他实施方案中,可包括不同的元件和数据。需注意,数据可包括上文所述的任何数据或信息。
[0676]
本领域的技术人员应当理解,计算机系统1500仅仅是例示性的,而并非旨在限制实施方案的范围。具体地,计算机系统和设备可以包括可执行所指出的功能的硬件或软件的任何组合,包括计算机、网络设备、互联网设备、个人数字助理、无线电话、寻呼机等。计算机系统1500还可以连接到未示出的其他设备,或者反之可作为独立的系统进行操作。此外,由所示出的部件所提供的功能在一些实施方案中可被组合在更少的部件中或者被分布在附加部件中。类似地,在一些实施方案中,所示出的部件中的一些部件的功能可不被提供,和/或其他附加功能可能是可用的。
[0677]
本领域的技术人员还将认识到,虽然各种项目被示出为在被使用期间被存储在存储器中或存储装置上,但是为了存储器管理和数据完整性的目的,这些项目或其部分可在存储器和其他存储设备之间进行传输。另选地,在其他实施方案中,这些软件部件中的一些或全部软件部件可以在另一设备上的存储器中执行,并且经由计算机间通信来与例示的计算机系统进行通信。系统部件或数据结构中的一些或全部也可(例如作为指令或结构化数据)被存储在计算机可访问介质或便携式制品上以由合适的驱动器读取,其多种示例在上文中被描述。在一些实施方案中,存储在与计算机系统1500分开的计算机可访问介质上的指令可以经由传输介质或信号(诸如经由通信介质诸如网络和/或无线链路而传送的电信号、电磁信号或数字信号)传输到计算机系统1500。各种实施方案还可包括在计算机可访问介质上接收、发送或存储根据以上描述所实现的指令和/或数据。一般来讲,计算机可访问介质可包括非暂态计算机可读存储介质或存储器介质,诸如磁介质或光学介质,例如盘或dvd/cd-rom、易失性或非易失性介质,诸如ram(例如sdram、ddr、rdram、sram等)、rom等。在一些实施方案中,计算机可访问介质可包括传输介质或信号,诸如经由通信介质诸如网络和/或无线链路而传送的电气信号、电磁信号、或数字信号。
[0678]
在不同的实施方案中,本文所述的方法可以在软件、硬件或它们的组合中实现。此外,可改变方法的框的次序,并且可对各种要素进行添加、重新排序、组合、省略、修改等。对于受益于本公开的本领域的技术人员,显然可做出各种修改和改变。本文所述的各种实施方案旨在为例示的而非限制性的。许多变型、修改、添加和改进是可能的。因此,可为在本文中被描述为单个示例的部件提供多个示例。各种部件、操作和数据存储库之间的界限在一定程度上是任意性的,并且在具体的示例性配置的上下文中示出了特定操作。预期了功能的其他分配,它们可落在所附权利要求的范围内。最后,被呈现为示例性配置中的分立部件的结构和功能可被实现为组合的结构或部件。这些和其他变型、修改、添加和改进可落入如以下权利要求书中所限定的实施方案的范围内。
再多了解一些

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

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

相关文献