点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法与流程

文档序号:30101285发布日期:2022-05-18 12:45阅读:159来源:国知局
点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法与流程

1.实施方式涉及一种用于处理点云内容的方法和设备。


背景技术:

2.点云内容是由点云表示的内容,点云是属于表示三维空间的坐标系的点集合。点云内容可表达在三个维度配置的媒体,并且用于提供诸如虚拟现实(vr)、增强现实(ar)、混合现实(mr)和自驾驶服务的各种服务。然而,需要数万至数十万的点数据来表示点云内容。因此,需要一种有效地处理大量点数据的方法。


技术实现要素:

3.技术问题
4.实施方式提供了一种用于有效地处理点云数据的设备和方法。实施方式提供了一种用于解决延迟和编码/解码复杂度的点云数据处理方法和设备。
5.实施方式的技术范围不限于上述技术目的,可扩展至本领域技术人员基于本文所公开的整个内容可推断出的其它技术目的。
6.技术方案
7.为了实现这些目的和其它优点并且根据本公开的目的,如本文中具体实现并广义描述的,一种用于接收点云数据的方法可包括:接收包含点云数据的比特流;以及对点云数据进行解码。
8.在本公开的另一方面中,一种用于发送点云数据的方法可包括:对点云数据进行编码;以及发送包含点云数据的比特流。
9.有益效果
10.根据实施方式的设备和方法可高效地处理点云数据。
11.根据实施方式的设备和方法可提供高质量点云服务。
12.根据实施方式的设备和方法可提供点云内容以用于提供诸如vr服务和自驾驶服务的通用服务。
附图说明
13.附图被包括以提供本公开的进一步理解,并且被并入本技术中并构成本技术的一部分,附图示出本公开的实施方式并与描述一起用于说明本公开的原理。为了更好地理解下面描述的各种实施方式,应该结合附图参考以下实施方式的描述。贯穿附图将使用相同的标号来表示相同或相似的部分。附图中:
14.图1示出根据实施方式的示例性点云内容提供系统。
15.图2是示出根据实施方式的点云内容提供操作的框图。
16.图3示出根据实施方式的捕获点云视频的示例性处理。
17.图4示出根据实施方式的示例性点云编码器。
18.图5示出根据实施方式的体素的示例。
19.图6示出根据实施方式的八叉树和占用代码的示例。
20.图7示出根据实施方式的邻居节点图案的示例。
21.图8示出根据实施方式的各个lod中的点配置的示例。
22.图9示出根据实施方式的各个lod中的点配置的示例。
23.图10示出根据实施方式的点云解码器。
24.图11示出根据实施方式的点云解码器。
25.图12示出根据实施方式的发送装置。
26.图13示出根据实施方式的接收装置。
27.图14示出根据实施方式的可与点云数据发送/接收方法/装置结合操作的示例性结构。
28.图15示出根据实施方式的用于空间可伸缩性的几何数据和属性数据的结构。
29.图16示出根据实施方式的属性编码/解码过程。
30.图17示出根据实施方式的点云数据的八叉树结构。
31.图18示出根据实施方式的重组属于基于莫顿码的节点的点的方法。
32.图19示出根据实施方式的合并孤立节点。
33.图20示出根据实施方式的pcc数据编码器。
34.图21示出根据实施方式的pcc数据解码器。
35.图22示出根据实施方式的点云数据的比特流结构。
36.图23示出根据实施方式的序列参数集。
37.图24示出根据实施方式的属性参数集。
38.图25示出根据实施方式的拼块参数集。
39.图26示出根据实施方式的属性切片头。
40.图27示出根据实施方式的属性编码/解码。
41.图28示出根据实施方式的边界框和节点。
42.图29示出根据实施方式的各个节点与位置之间的匹配。
43.图30示出根据实施方式的八叉树结构中的参考节点的选择。
44.图31示出根据实施方式的pcc数据编码器。
45.图32示出根据实施方式的pcc数据解码器。
46.图33示出根据实施方式的序列参数集(sps)。
47.图34示出根据实施方式的属性参数集(aps)。
48.图35示出根据实施方式的拼块参数集(tps)。
49.图36示出根据实施方式的属性切片头(ash)。
50.图37示出根据实施方式的发送点云数据的方法。
51.图38示出根据实施方式的接收点云数据的方法。
具体实施方式
52.现在将详细参考本公开的优选实施方式,其示例示出于附图中。下面将参照附图
给出的详细描述旨在说明本公开的示例性实施方式,而非示出可根据本公开实现的仅有实施方式。以下详细描述包括具体细节以便提供本公开的彻底理解。然而,对于本领域技术人员而言将显而易见的是,本公开可在没有这些具体细节的情况下实践。
53.尽管本公开中使用的大多数术语选自本领域中广泛使用的通用术语,但是一些术语由申请人任意选择并且在以下描述中根据需要详细说明其含义。因此,本公开应该基于术语的预期含义而非其简单名称或含义来理解。
54.图1示出根据实施方式的示例性点云内容提供系统。
55.图1所示的点云内容提供系统可包括发送装置10000和接收装置10004。发送装置10000和接收装置10004能够有线或无线通信以发送和接收点云数据。
56.根据实施方式的点云数据发送装置10000可取得和处理点云视频(或点云内容)并将其发送。根据实施方式,发送装置10000可包括固定站、基站收发器系统(bts)、网络、人工智能(ai)装置和/或系统、机器人、ar/vr/xr装置和/或服务器。根据实施方式,发送装置10000可包括被配置为使用无线电接入技术(例如,5g新rat(nr)、长期演进(lte))与基站和/或其它无线装置执行通信的装置、机器人、车辆、ar/vr/xr装置、便携式装置、家用电器、物联网(iot)装置和ai装置/服务器。
57.根据实施方式的发送装置10000包括点云视频获取器10001、点云视频编码器10002和/或发送器(或通信模块)10003。
58.根据实施方式的点云视频获取器10001通过诸如捕获、合成或生成的处理过程来获取点云视频。点云视频是由点云表示的点云内容,点云是位于3d空间中的点集合,并且可被称为点云视频数据。根据实施方式的点云视频可包括一个或更多个帧。一个帧表示静止图像/画面。因此,点云视频可包括点云图像/帧/画面,并且可被称为点云图像、帧或画面。
59.根据实施方式的点云视频编码器10002对所获取的点云视频数据进行编码。点云视频编码器10002可基于点云压缩编码对点云视频数据进行编码。根据实施方式的点云压缩编码可包括基于几何的点云压缩(g-pcc)编码和/或基于视频的点云压缩(v-pcc)编码或下一代编码。根据实施方式的点云压缩编码不限于上述实施方式。点云视频编码器10002可输出包含编码的点云视频数据的比特流。比特流可不仅包含编码的点云视频数据,而且包括与点云视频数据的编码有关的信令信息。
60.根据实施方式的发送器10003发送包含编码的点云视频数据的比特流。根据实施方式的比特流被封装在文件或片段(例如,流片段)中,并且经由诸如广播网络和/或宽带网络的各种网络发送。尽管图中未示出,发送装置10000可包括被配置为执行封装操作的封装器(或封装模块)。根据实施方式,封装器可包括在发送器10003中。根据实施方式,文件或片段可经由网络发送到接收装置10004,或者存储在数字存储介质(例如,usb、sd、cd、dvd、蓝光、hdd、ssd等)中。根据实施方式的发送器10003能够经由4g、5g、6g等网络与接收装置10004(或接收器10005)有线/无线通信。另外,发送器可根据网络系统(例如,4g、5g或6g通信网络系统)执行必要的数据处理操作。发送装置10000可按照按需方式发送封装的数据。
61.根据实施方式的接收装置10004包括接收器10005、点云视频解码器10006和/或渲染器10007。根据实施方式,接收装置10004可包括被配置为使用无线电接入技术(例如,5g新rat(nr)、长期演进(lte))与基站和/或其它无线装置执行通信的装置、机器人、车辆、ar/vr/xr装置、便携式装置、家用电器、物联网(iot)装置和ai装置/服务器。
62.根据实施方式的接收器10005从网络或存储介质接收包含点云视频数据的比特流或者封装有比特流的文件/片段。接收器10005可根据网络系统(例如,4g、5g、6g等的通信网络系统)执行必要的数据处理。根据实施方式的接收器10005可将所接收的文件/片段解封装并输出比特流。根据实施方式,接收器10005可包括被配置为执行解封装操作的解封装器(或解封装模块)。解封装器可被实现为与接收器10005分离的元件(或组件)。
63.点云视频解码器10006将包含点云视频数据的比特流解码。点云视频解码器10006可根据点云视频数据被编码的方法(例如,按点云视频编码器10002的操作的逆过程)来将点云视频数据解码。因此,点云视频解码器10006可通过执行点云解压缩编码(点云压缩的逆过程)来将点云视频数据解码。点云解压缩编码包括g-pcc编码。
64.渲染器10007渲染解码的点云视频数据。渲染器10007可通过不仅渲染点云视频数据,而且渲染音频数据来输出点云内容。根据实施方式,渲染器10007可包括被配置为显示点云内容的显示器。根据实施方式,显示器可被实现为单独的装置或组件而非包括在渲染器10007中。
65.图中由虚线指示的箭头表示接收装置10004所获取的反馈信息的传输路径。反馈信息是反映与消费点云内容的用户的交互性的信息,并且包括关于用户的信息(例如,头部取向信息、视口信息等)。具体地,当点云内容是用于需要与用户交互的服务(例如,自驾驶服务等)的内容时,反馈信息可被提供给内容发送方(例如,发送装置10000)和/或服务提供商。根据实施方式,反馈信息可在接收装置10004以及发送装置10000中使用,或者可不提供。
66.根据实施方式的头部取向信息是关于用户的头部位置、取向、角度、运动等的信息。根据实施方式的接收装置10004可基于头部取向信息来计算视口信息。视口信息可以是关于用户正在观看的点云视频的区域的信息。视点是用户通过其观看点云视频的点,并且可指视口区域的中心点。即,视口是以视点为中心的区域,并且区域的尺寸和形状可由视场(fov)确定。因此,除了头部取向信息之外,接收装置10004还可基于装置所支持的垂直或水平fov来提取视口信息。另外,接收装置10004执行注视分析等以检查用户消费点云的方式、点云视频中用户注视的区域、注视时间等。根据实施方式,接收装置10004可将包括注视分析结果的反馈信息发送到发送装置10000。根据实施方式的反馈信息可在渲染和/或显示过程中获取。根据实施方式的反馈信息可由包括在接收装置10004中的一个或更多个传感器取得。根据实施方式,反馈信息可由渲染器10007或单独的外部元件(或装置、组件等)取得。图1中的虚线表示发送渲染器10007所取得的反馈信息的过程。点云内容提供系统可基于反馈信息来处理(编码/解码)点云数据。因此,点云视频数据解码器10006可基于反馈信息来执行解码操作。接收装置10004可将反馈信息发送到发送装置10000。发送装置10000(或点云视频数据编码器10002)可基于反馈信息来执行编码操作。因此,点云内容提供系统可基于反馈信息有效地处理必要数据(例如,与用户的头部位置对应的点云数据)而非处理(编码/解码)整个点云数据,并将点云内容提供给用户。
67.根据实施方式,发送装置10000可被称为编码器、发送装置、发送器等,接收装置10004可被称为解码器、接收装置、接收器等。
68.根据实施方式的图1的点云内容提供系统中(通过获取/编码/传输/解码/渲染的一系列过程)处理的点云数据可被称为点云内容数据或点云视频数据。根据实施方式,点云
内容数据可用作涵盖与点云数据有关的元数据或信令信息的概念。
69.图1所示的点云内容提供系统的元件可由硬件、软件、处理器和/或其组合实现。
70.图2是示出根据实施方式的点云内容提供操作的框图。
71.图2的框图示出图1中描述的点云内容提供系统的操作。如上所述,点云内容提供系统可基于点云压缩编码(例如,g-pcc)来处理点云数据。
72.根据实施方式的点云内容提供系统(例如,点云发送装置10000或点云视频获取器10001)可获取点云视频(20000)。点云视频由属于用于表达3d空间的坐标系的点云表示。根据实施方式的点云视频可包括ply(polygon文件格式或stanford triangle格式)文件。当点云视频具有一个或更多个帧时,所获取的点云视频可包括一个或更多个ply文件。ply文件包含诸如点几何和/或属性的点云数据。几何包括点的位置。各个点的位置可由表示三维坐标系(例如,由x、y和z轴组成的坐标系)的参数(例如,x、y和z轴的值)表示。属性包括点的属性(例如,关于各个点的纹理、颜色(ycbcr或rgb)、反射率r、透明度等的信息)。点具有一个或更多个属性。例如,点可具有颜色属性或者颜色和反射率两个属性。根据实施方式,几何可被称为位置、几何信息、几何数据等,并且属性可被称为属性、属性信息、属性数据等。点云内容提供系统(例如,点云发送装置10000或点云视频获取器10001)可从与点云视频获取过程有关的信息(例如,深度信息、颜色信息等)取得点云数据。
73.根据实施方式的点云内容提供系统(例如,发送装置10000或点云视频编码器10002)可对点云数据进行编码(20001)。点云内容提供系统可基于点云压缩编码对点云数据进行编码。如上所述,点云数据可包括点的几何和属性。因此,点云内容提供系统可执行对几何进行编码的几何编码并输出几何比特流。点云内容提供系统可执行对属性进行编码的属性编码并输出属性比特流。根据实施方式,点云内容提供系统可基于几何编码来执行属性编码。根据实施方式的几何比特流和属性比特流可被复用并作为一个比特流输出。根据实施方式的比特流还可包含与几何编码和属性编码有关的信令信息。
74.根据实施方式的点云内容提供系统(例如,发送装置10000或发送器10003)可发送编码的点云数据(20002)。如图1所示,编码的点云数据可由几何比特流和属性比特流表示。另外,编码的点云数据可与点云数据的编码相关的信令信息(例如,与几何编码和属性编码有关的信令信息)一起以比特流的形式发送。点云内容提供系统可将承载编码的点云数据的比特流封装并以文件或片段的形式将其发送。
75.根据实施方式的点云内容提供系统(例如,接收装置10004或接收器10005)可接收包含编码的点云数据的比特流。另外,点云内容提供系统(例如,接收装置10004或接收器10005)可将比特流解复用。
76.点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可将比特流中发送的编码的点云数据(例如,几何比特流、属性比特流)解码。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可基于比特流中包含的与点云视频数据的编码有关的信令信息将点云视频数据解码。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可将几何比特流解码以重构点的位置(几何)。点云内容提供系统可通过基于重构的几何对属性比特流进行解码来重构点的属性。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可根据重构的几何和解码的属性基于位置来重构点云视频。
77.根据实施方式的点云内容提供系统(例如,接收装置10004或渲染器10007)可渲染解码的点云数据(20004)。点云内容提供系统(例如,接收装置10004或渲染器10007)可使用各种渲染方法来渲染通过解码过程解码的几何和属性。点云内容中的点可被渲染为具有特定厚度的顶点、以对应顶点位置为中心的具有特定最小尺寸的立方体或者以对应顶点位置为中心的圆。渲染的点云内容的全部或部分通过显示器(例如,vr/ar显示器、一般显示器等)提供给用户。
78.根据实施方式的点云内容提供系统(例如,接收装置10004)可取得反馈信息(20005)。点云内容提供系统可基于反馈信息对点云数据进行编码和/或解码。根据实施方式的点云内容提供系统的反馈信息和操作与参照图1描述的反馈信息和操作相同,因此省略其详细描述。
79.图3示出根据实施方式的捕获点云视频的示例性过程。
80.图3示出参照图1至图2描述的点云内容提供系统的示例性点云视频捕获过程。
81.点云内容包括表示位于各种3d空间(例如,表示真实环境的3d空间、表示虚拟环境的3d空间等)中的对象和/或环境的点云视频(图像和/或视频)。因此,根据实施方式的点云内容提供系统可使用一个或更多个相机(例如,能够取得深度信息的红外相机、能够提取与深度信息对应的颜色信息的rgb相机等)、投影仪(例如,取得深度信息的红外图案投影仪)、lidar等来捕获点云视频。根据实施方式的点云内容提供系统可从深度信息提取由3d空间中的点组成的几何形状并且从颜色信息提取各个点的属性以取得点云数据。根据实施方式的图像和/或视频可基于面向内技术和面向外技术中的至少一个来捕获。
82.图3的左侧部分示出面向内技术。面向内技术是指利用定位在中心对象周围的一个或更多个相机(或相机传感器)来捕获中心对象的图像的技术。面向内技术可用于生成向用户提供关键对象的360度图像的点云内容(例如,向用户提供对象(例如,诸如角色、玩家、对象或演员的关键对象)的360度图像的vr/ar内容)。
83.图3的右侧部分示出面向外技术。面向外技术是指利用定位在中心对象周围的一个或更多个相机(或相机传感器)来捕获中心对象的环境而非中心对象的图像的技术。面向外技术可用于生成提供从用户的视角出现的周围环境的点云内容(例如,可提供给自驾驶车辆的用户的表示外部环境的内容)。
84.如图所示,可基于一个或更多个相机的捕获操作来生成点云内容。在这种情况下,在相机之间坐标系可不同,因此点云内容提供系统可在捕获操作之前校准一个或更多个相机以设定全局坐标系。另外,点云内容提供系统可通过将任意图像和/或视频与通过上述捕获技术捕获的图像和/或视频合成来生成点云内容。点云内容提供系统在生成表示虚拟空间的点云内容时可不执行图3中描述的捕获操作。根据实施方式的点云内容提供系统可对捕获的图像和/或视频执行后处理。换言之,点云内容提供系统可去除不想要的区域(例如,背景),识别捕获的图像和/或视频连接至的空间,并且当存在空间空洞时,执行填充空间空洞的操作。
85.点云内容提供系统可通过对从各个相机取得的点云视频的点执行坐标变换来生成一条点云内容。点云内容提供系统可基于各个相机的位置坐标对点执行坐标变换。因此,点云内容提供系统可生成表示一个宽范围的内容,或者可生成具有高密度点的点云内容。
86.图4示出根据实施方式的示例性点云编码器。
87.图4示出图1的点云视频编码器10002的示例。点云编码器重构并编码点云数据(例如,点的位置和/或属性)以根据网络条件或应用调节点云内容的质量(例如无损、有损或接近无损)。当点云内容的总大小较大(例如,对于30fps给出60gbps的点云内容)时,点云内容提供系统可能无法实时流传输内容。因此,点云内容提供系统可基于最大目标比特率来重构点云内容以根据网络环境等提供点云内容。
88.如参照图1至图2描述的,点云编码器可执行几何编码和属性编码。几何编码在属性编码之前执行。
89.根据实施方式的点云编码器包括坐标变换器(变换坐标)40000、量化器(量化和去除点(体素化))40001、八叉树分析器(分析八叉树)40002和表面近似分析器(分析表面近似)40003、算术编码器(算术编码)40004、几何重构器(重构几何)40005、颜色变换器(变换颜色)40006、属性变换器(变换属性)40007、raht变换器(raht)40008、lod生成器(生成lod)40009、提升变换器(提升)40010、系数量化器(量化系数)40011和/或算术编码器(算术编码)40012。
90.坐标变换器40000、量化器40001、八叉树分析器40002、表面近似分析器40003、算术编码器40004和几何重构器40005可执行几何编码。根据实施方式的几何编码可包括八叉树几何编码、直接编码、三联体几何编码和熵编码。直接编码和三联体几何编码选择性地或组合应用。几何编码不限于上述示例。
91.如图所示,根据实施方式的坐标变换器40000接收位置并将其变换为坐标。例如,位置可被变换为三维空间(例如,由xyz坐标系表示的三维空间)中的位置信息。根据实施方式的三维空间中的位置信息可被称为几何信息。
92.根据实施方式的量化器40001将几何量化。例如,量化器40001可基于所有点的最小位置值(例如,x、y和z轴中的每一个上的最小值)来将点量化。量化器40001执行量化操作:将最小位置值与各个点的位置值之间的差乘以预设量化标度值,然后通过对通过乘法获得的值进行舍入来寻找最近整数值。因此,一个或更多个点可具有相同的量化位置(或位置值)。根据实施方式的量化器40001基于量化位置执行体素化以重构量化点。如像素(包含2d图像/视频信息的最小单元)的情况中一样,根据实施方式的点云内容(或3d点云视频)的点可包括在一个或更多个体素中。作为体积和像素的复合体,术语体素是指当基于表示3d空间的轴(例如,x轴、y轴和z轴)将3d空间划分成单元(单位=1.0)时生成的3d立方空间。量化器40001可使3d空间中的点组与体素匹配。根据实施方式,一个体素可仅包括一个点。根据实施方式,一个体素可包括一个或更多个点。为了将一个体素表示为一个点,体素的中心的位置可基于包括在体素中的一个或更多个点的位置来设定。在这种情况下,包括在一个体素中的所有位置的属性可被组合并指派给体素。
93.根据实施方式的八叉树分析器40002执行八叉树几何编码(或八叉树编码)以按八叉树结构呈现体素。八叉树结构表示基于八进制树结构与体素匹配的点。
94.根据实施方式的表面近似分析器40003可分析并近似八叉树。根据实施方式的八叉树分析和近似是分析包含多个点的区域以有效地提供八叉树和体素化的过程。
95.根据实施方式的算术编码器40004对八叉树和/或近似八叉树执行熵编码。例如,编码方案包括算术编码。作为编码结果,生成几何比特流。
96.颜色变换器40006、属性变换器40007、raht变换器40008、lod生成器40009、提升变
换器40010、系数量化器40011和/或算术编码器40012执行属性编码。如上所述,一个点可具有一个或更多个属性。根据实施方式的属性编码同样应用于一个点所具有的属性。然而,当属性(例如,颜色)包括一个或更多个元素时,对各个元素独立地应用属性编码。根据实施方式的属性编码包括颜色变换编码、属性变换编码、区域自适应分层变换(raht)编码、基于插值的分层最近邻居预测(预测变换)编码以及具有更新/提升步骤的基于插值的分层最近邻居预测(提升变换)编码。根据点云内容,可选择性地使用上述raht编码、预测变换编码和提升变换编码,或者可使用一个或更多个编码方案的组合。根据实施方式的属性编码不限于上述示例。
97.根据实施方式的颜色变换器40006执行变换包括在属性中的颜色值(或纹理)的颜色变换编码。例如,颜色变换器40006可变换颜色信息的格式(例如,从rgb到ycbcr)。可选地,可根据包括在属性中的颜色值来应用根据实施方式的颜色变换器40006的操作。
98.根据实施方式的几何重构器40005重构(解压缩)八叉树和/或近似八叉树。几何重构器40005基于分析点分布的结果来重构八叉树/体素。重构的八叉树/体素可被称为重构的几何(恢复的几何)。
99.根据实施方式的属性变换器40007执行属性变换以基于重构的几何和/或不执行几何编码的位置来变换属性。如上所述,由于属性取决于几何,所以属性变换器40007可基于重构的几何信息来变换属性。例如,基于包括在体素中的点的位置值,属性变换器40007可变换该位置处的点的属性。如上所述,当基于包括在体素中的一个或更多个点的位置来设定体素的中心位置时,属性变换器40007变换一个或更多个点的属性。当执行三联体几何编码时,属性变换器40007可基于三联体几何编码来变换属性。
100.属性变换器40007可通过计算距各个体素的中心位置(或位置值)特定位置/半径内的邻近点的属性或属性值(例如,各个点的颜色或反射率)的平均来执行属性变换。属性变换器40007可在计算平均时根据从中心到各个点的距离来应用权重。因此,各个体素具有位置和计算的属性(或属性值)。
101.属性变换器40007可基于k-d树或莫顿码(morton code)搜索存在于距各个体素的中心位置特定位置/半径内的邻近点。k-d树是二叉搜索树,并且支持能够基于位置来管理点的数据结构,使得可快速地执行最近邻搜索(nns)。通过将表示所有点的3d位置的坐标(例如,(x,y,z))呈现为比特值并将比特混合来生成莫顿码。例如,当表示点位置的坐标为(5,9,1)时,坐标的比特值为(0101,1001,0001)。根据比特索引按z、y和x的顺序混合比特值产生010001000111。该值被表示为十进制数1095。即,具有坐标(5,9,1)的点的莫顿码值为1095。属性变换器40007可基于莫顿码值对点进行排序并通过深度优先遍历过程执行nns。在属性变换操作之后,当在用于属性编码的另一变换过程中需要nns时使用k-d树或莫顿码。
102.如图所示,变换的属性被输入到raht变换器40008和/或lod生成器40009。
103.根据实施方式的raht变换器40008基于重构的几何信息来执行用于预测属性信息的raht编码。例如,raht变换器40008可基于与八叉树中较低级别的节点关联的属性信息来预测八叉树中较高级别的节点的属性信息。
104.根据实施方式的lod生成器40009生成细节级别(lod)来执行预测变换编码。根据实施方式的lod是点云内容的细节程度。随着lod值减小,指示点云内容的细节劣化。随着
lod值增大,指示点云内容的细节增强。点可按lod分类。
105.根据实施方式的提升变换器40010执行基于权重来变换点云属性的提升变换编码。如上所述,可以可选地应用提升变换编码。
106.根据实施方式的系数量化器40011基于系数来量化属性编码的属性。
107.根据实施方式的算术编码器40012基于算术编码对量化的属性进行编码。
108.尽管图中未示出,图4的点云编码器的元件可由包括被配置为与包括在点云提供设备中的一个或更多个存储器通信的一个或更多个处理器或集成电路的硬件、软件、固件或其组合实现。一个或更多个处理器可执行上述图4的点云编码器的元件的操作和/或功能中的至少一个。另外,一个或更多个处理器可操作或执行用于执行图4的点云编码器的元件的操作和/或功能的软件程序和/或指令集合。根据实施方式的一个或更多个存储器可包括高速随机存取存储器,或者包括非易失性存储器(例如,一个或更多个磁盘存储装置、闪存装置或其它非易失性固态存储器装置)。
109.图5示出根据实施方式的体素的示例。
110.图5示出位于由三个轴(x轴、y轴和z轴)所组成的坐标系表示的3d空间中的体素。如参照图4所述,点云编码器(例如,量化器40001)可执行体素化。体素是指当基于表示3d空间的轴(例如,x轴、y轴和z轴)将3d空间划分成单元(单位=1.0)时生成的3d立方空间。图5示出通过八叉树结构生成的体素的示例,其中由两个极点(0,0,0)和(2d,2d,2d)限定的立方轴对齐边界框被递归地再分。一个体素包括至少一个点。可从与体素组的位置关系来估计体素的空间坐标。如上所述,体素具有类似2d图像/视频的像素的属性(例如,颜色或反射率)。体素的细节与参照图4描述的那些相同,因此省略其描述。
111.图6示出根据实施方式的八叉树和占用代码的示例。
112.如参照图1至图4所描述的,点云内容提供系统(点云视频编码器10002)或点云编码器(例如,八叉树分析器40002)基于八叉树结构来执行八叉树几何编码(或八叉树编码)以有效地管理体素的区域和/或位置。
113.图6的上部示出八叉树结构。根据实施方式的点云内容的3d空间由坐标系的轴(例如,x轴、y轴和z轴)表示。通过由两个极点(0,0,0)和(2d,2d,2d)限定的立方轴对齐边界框的递归再分来创建八叉树结构。这里,2d可被设定为构成围绕点云内容(或点云视频)的所有点的最小边界框的值。这里,d表示八叉树的深度。d的值在下式中确定。在下式中,(x
intn
,y
intn
,z
intn
)表示量化的点的位置(或位置值)。
[0114][0115]
如图6的上部的中间所示,整个3d空间可根据分区被划分成八个空间。各个划分的空间由具有六个面的立方体表示。如图6的右上部所示,八个空间中的每一个基于坐标系的轴(例如,x轴、y轴和z轴)再次划分。因此,各个空间被划分成八个更小的空间。所划分的更小的空间也由具有六个面的立方体表示。应用该分割方案,直至八叉树的叶节点变为体素。
[0116]
图6的下部示出八叉树占用代码。生成八叉树的占用代码以指示通过划分一个空间而生成的八个划分的空间中的每一个是否包含至少一个点。因此,单个占用代码由八个子节点表示。各个子节点表示划分的空间的占用,并且子节点具有1比特的值。因此,占用代码被表示为8比特代码。即,当与子节点对应的空间中包含至少一个点时,节点被指派值1。当与子节点对应的空间中不包含点(空间为空)时,节点被指派值0。由于图6所示的占用代
码为00100001,所以指示与八个子节点当中的第三子节点和第八子节点对应的空间各自包含至少一个点。如图所示,第三子节点和第八子节点中的每一个具有八个子节点,并且子节点由8比特占用代码表示。附图示出第三子节点的占用代码为10000111,并且第八子节点的占用代码为01001111。根据实施方式的点云编码器(例如,算术编码器40004)可对占用代码执行熵编码。为了增加压缩效率,点云编码器可对占用代码执行帧内/帧间编码。根据实施方式的接收装置(例如,接收装置10004或点云视频解码器10006)基于占用代码来重构八叉树。
[0117]
根据实施方式的点云编码器(例如,图4的点云编码器或八叉树分析器40002)可执行体素化和八叉树编码以存储点位置。然而,点并不总是在3d空间中均匀分布,因此可能有存在较少点的特定区域。因此,对整个3d空间执行体素化是低效的。例如,当特定区域包含很少点时,在该特定区域中不需要执行体素化。
[0118]
因此,对于上述特定区域(或八叉树的叶节点以外的节点),根据实施方式的点云编码器可跳过体素化并执行直接编码以直接对包括在特定区域中的点位置进行编码。根据实施方式的直接编码点的坐标被称为直接编码模式(dcm)。根据实施方式的点云编码器还可基于表面模型执行三联体几何编码,其要基于体素来重构特定区域(或节点)中的点位置。三联体几何编码是将对象表示为一系列三角形网格的几何编码。因此,点云解码器可从网格表面生成点云。根据实施方式的直接编码和三联体几何编码可选择性地执行。另外,根据实施方式的直接编码和三联体几何编码可与八叉树几何编码(或八叉树编码)组合执行。
[0119]
为了执行直接编码,应该启用使用直接模式以应用直接编码的选项。要应用直接编码的节点不是叶节点,在特定节点内应该存在小于阈值的点。另外,要应用直接编码的点的总数不应超过预设阈值。当满足上述条件时,根据实施方式的点云编码器(或算术编码器40004)可对点位置(或位置值)执行熵编码。
[0120]
根据实施方式的点云编码器(例如,表面近似分析器40003)可确定八叉树的特定级别(小于八叉树的深度d的级别),并且可从该级别开始使用表面模型以执行三联体几何编码,以基于体素来重构节点区域中的点位置(三联体模式)。根据实施方式的点云编码器可指定要应用三联体几何编码的级别。例如,当特定级别等于八叉树的深度时,点云编码器不在三联体模式下操作。换言之,仅当指定的级别小于八叉树的深度值时,根据实施方式的点云编码器才可在三联体模式下操作。根据实施方式的指定级别的节点的3d立方区域被称为块。一个块可包括一个或更多个体素。块或体素可对应于方块。几何被表示为各个块内的表面。根据实施方式的表面可与块的各条边相交至多一次。
[0121]
一个块具有12条边,因此一个块中存在至少12个交点。各个交点被称为顶点。当共享边的所有块当中存在与边相邻的至少一个占用体素时,检测沿着边存在的顶点。根据实施方式的占用体素是指包含点的体素。沿着边检测到的顶点位置是沿着共享边的所有块当中与边相邻的所有体素的边的平均位置。
[0122]
一旦检测到顶点,根据实施方式的点云编码器就可对边的起点(x,y,z)、边的方向向量(δx,δy,δz)和顶点位置值(边内的相对位置值)执行熵编码。当应用三联体几何编码时,根据实施方式的点云编码器(例如,几何重构器40005)可通过执行三角形重构、上采样和体素化过程来生成恢复的几何(重构的几何)。
[0123]
位于块的边处的顶点确定穿过块的表面。根据实施方式的表面是非平面多边形。
在三角形重构过程中,基于边的起点、边的方向向量和顶点的位置值来重构由三角形表示的表面。三角形重构过程这样执行:i)计算各个顶点的质心值,ii)从各个顶点值减去中心值,并且iii)估计通过减法获得的值的平方和。
[0124]
①②③
[0125]
估计和的最小值,并且根据具有最小值的轴执行投影过程。例如,当元素x最小时,各个顶点相对于块的中心投影在x轴上,并且投影在(y,z)平面上。当通过(y,z)平面上的投影获得的值为(ai,bi)时,通过atan2(bi,ai)估计θ的值,并且基于θ的值对顶点进行排序。下表示出根据顶点数量创建三角形的顶点组合。顶点从1至n排序。下表示出对于四个顶点,可根据顶点组合构造两个三角形。第一个三角形可由排序的顶点当中的顶点1、2和3组成,第二个三角形可由排序的顶点当中的顶点3、4和1组成。
[0126]
表2-1.从按1,

,n排序的顶点形成的三角形
[0127]
n三角形
[0128]
3(1,2,3)
[0129]
4(1,2,3),(3,4,1)
[0130]
5(1,2,3),(3,4,5),(5,1,3)
[0131]
6(1,2,3),(3,4,5),(5,6,1),(1,3,5)
[0132]
7(1,2,3),(3,4,5),(5,6,7),(7,1,3),(3,5,7)
[0133]
8(1,2,3),(3,4,5),(5,6,7),(7,8,1),(1,3,5),(5,7,1)
[0134]
9(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,1,3),(3,5,7),(7,9,3)
[0135]
10(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,1),(1,3,5),(5,7,9),(9,1,5)
[0136]
11(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,11),(11,1,3),(3,5,7),(7,9,11),(11,3,7)
[0137]
12(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,11),(11,12,1),(1,3,5),(5,7,9),(9,11,1),(1,5,9)
[0138]
执行上采样过程以沿着三角形的边在中间添加点,并且执行体素化。所添加的点基于上采样因子和块的宽度来生成。添加的点被称为细化顶点。根据实施方式的点云编码器可将细化顶点体素化。另外,点云编码器可基于体素化的位置(或位置值)来执行属性编码。
[0139]
图7示出根据实施方式的邻居节点图案的示例。
[0140]
为了增加点云视频的压缩效率,根据实施方式的点云编码器可基于上下文自适应算术编码来执行熵编码。
[0141]
如参照图1至图6所描述的,点云内容提供系统或点云编码器(例如,点云视频编码器10002、图4的点云编码器或算术编码器40004)可立即对占用代码执行熵编码。另外,点云内容提供系统或点云编码器可基于当前节点的占用代码和邻近节点的占用来执行熵编码(帧内编码),或者基于先前帧的占用代码执行熵编码(帧间编码)。根据实施方式的帧表示同时生成的点云视频的集合。根据实施方式的帧内编码/帧间编码的压缩效率可取决于所参考的邻近节点的数量。当比特增加时,运算变得复杂,但是编码可偏向一侧,这可增加压
缩效率。例如,当给出3比特上下文时,需要使用23=8种方法来执行编码。为编码划分的部分影响实现复杂度。因此,有必要满足适当级别的压缩效率和复杂度。
[0142]
图7示出基于邻居节点的占用来获得占用图案的过程。根据实施方式的点云编码器确定八叉树的各个节点的邻居节点的占用并且获得邻居图案的值。邻居节点图案用于推断节点的占用图案。图7的上部示出与节点对应的立方体(位于中间的立方体)以及与该立方体共享至少一个面的六个立方体(邻居节点)。图中所示的节点是相同深度的节点。图中所示的数字分别表示与六个节点关联的权重(1、2、4、8、16和32)。根据邻近节点的位置依次指派权重。
[0143]
图7的下部示出邻居节点图案值。邻居节点图案值是乘以占用邻居节点(具有点的邻居节点)的权重的值之和。因此,邻居节点图案值为0至63。当邻居节点图案值为0时,指示节点的邻居节点当中不存在具有点的节点(无占用节点)。当邻居节点图案值为63时,指示所有邻居节点均是占用节点。如图所示,由于指派有权重1、2、4和8的邻居节点是占用节点,所以邻居节点图案值为15(1、2、4和8之和)。点云编码器可根据邻居节点图案值执行编码(例如,当邻居节点图案值为63时,可执行64种类型的编码)。根据实施方式,点云编码器可通过改变邻居节点图案值(例如,基于将64改变为10或6的表)来降低编码复杂度。
[0144]
图8示出根据实施方式的各个lod中的点配置的示例。
[0145]
如参照图1至图7描述的,在执行属性编码之前将编码的几何重构(解压缩)。当应用直接编码时,几何重构操作可包括改变直接编码的点的放置(例如,将直接编码的点放置在点云数据前面)。当应用三联体几何编码时,通过三角形重构、上采样和体素化来执行几何重构过程。由于属性取决于几何,所以基于重构的几何来执行属性编码。
[0146]
点云编码器(例如,lod生成器40009)可按lod对点进行分类(重新组织)。图中示出与lod对应的点云内容。图中最左侧画面表示原始点云内容。图中左起第二个画面表示最低lod中的点分布,图中最右侧画面表示最高lod中的点分布。即,最低lod中的点稀疏分布,最高lod中的点密集分布。即,随着lod在图底部所指示的箭头所指的方向上升高,点之间的空间(或距离)变窄。
[0147]
图9示出根据实施方式的用于各个lod的点配置的示例。
[0148]
如参照图1至图8所描述的,点云内容提供系统或点云编码器(例如,点云视频编码器10002、图4的点云编码器或lod生成器40009)可生成lod。通过根据设定的lod距离值(或欧几里得距离集合)将点重新组织为细化级别的集合来生成lod。lod生成过程不仅由点云编码器执行,而且由点云解码器执行。
[0149]
图9的上部示出分布在3d空间中的点云内容的点的示例(p0至p9)。在图9中,原始顺序表示在lod生成之前点p0至p9的顺序。在图9中,基于lod的顺序表示根据lod生成的点的顺序。点按lod重新组织。另外,高lod包含属于较低lod的点。如图9所示,lod0包含p0、p5、p4和p2。lod1包含lod0的点、p1、p6和p3。lod2包含lod0的点、lod1的点、p9、p8和p7。
[0150]
如参照图4所描述的,根据实施方式的点云编码器可选择性地或组合地执行预测变换编码、提升变换编码和raht变换编码。
[0151]
根据实施方式的点云编码器可为点生成预测器以执行用于设定各个点的预测属性(或预测属性值)的预测变换编码。即,可为n个点生成n个预测器。根据实施方式的预测器可基于各个点的lod值、关于存在于各个lod的设定距离内的邻近点的索引信息以及到邻近
点的距离来计算权重(=1/距离)。
[0152]
根据实施方式的预测属性(或属性值)被设定为通过将各个点的预测器中设定的邻居点的属性(或属性值)(例如,颜色、反射率等)乘以基于到各个邻居点的距离计算的权重(或权重值)而获得的值的平均。根据实施方式的点云编码器(例如,系数量化器40011)可量化和逆量化通过从各个点的属性(属性值)减去预测属性(属性值)而获得的残差(可称为残差属性、残差属性值或属性预测残差)。量化过程如下表所示配置。
[0153]
表.属性预测残差量化伪代码
[0154]
int pccquantization(int value,int quantstep){
[0155]
if(value》=0){
[0156]
return floor(value/quantstep+1.0/3.0);
[0157]
}else{
[0158]
return-floor(-value/quantstep+1.0/3.0);
[0159]
}
[0160]
}
[0161]
表.属性预测残差逆量化伪代码
[0162]
int pccinversequantization(int value,int quantstep){
[0163]
if(quantstep==0){
[0164]
return value;
[0165]
}else{
[0166]
return value*quantstep;
[0167]
}
[0168]
}
[0169]
当各个点的预测器具有邻居点时,根据实施方式的点云编码器(例如,算术编码器40012)可如上所述对量化和逆量化的残差值执行熵编码。当各个点的预测器没有邻居点时,根据实施方式的点云编码器(例如,算术编码器40012)可对对应点的属性执行熵编码,而不执行上述操作。
[0170]
根据实施方式的点云编码器(例如,提升变换器40010)可生成各个点的预测器,设定计算的lod并在预测器中注册邻居点,并且根据到邻居点的距离来设定权重以执行提升变换编码。根据实施方式的提升变换编码类似于上述预测变换编码,但不同之处在于,对属性值累积地应用权重。根据实施方式对属性值累积地应用权重的过程配置如下。
[0171]
1)创建用于存储各个点的权重值的阵列量化权重(qw)。qw的所有元素的初始值均为1.0。将预测器中注册的邻居节点的预测器索引的qw值乘以当前点的预测器的权重,并将通过乘法获得的值相加。
[0172]
2)提升预测过程:从现有属性值减去通过将点的属性值乘以权重而获得的值,以计算预测属性值。
[0173]
3)创建称为updateweight和update的临时阵列,并且将临时阵列初始化为零。
[0174]
4)将通过将针对所有预测器计算的权重乘以存储在与预测器索引对应的qw中的权重而计算的权重与updateweight阵列累加,作为邻居节点的索引。将通过将邻居节点索引的属性值乘以所计算的权重而获得的值与update阵列累加。
[0175]
5)提升更新过程:将所有预测器的update阵列的属性值除以预测器索引的updateweight阵列的权重值,并将现有属性值与通过除法获得的值相加。
[0176]
6)针对所有预测器通过将通过提升更新过程更新的属性值乘以通过提升预测过程更新的权重(存储在qw中)来计算预测属性。根据实施方式的点云编码器(例如,系数量化器40011)量化预测属性值。另外,点云编码器(例如,算术编码器40012)对量化属性值执行熵编码。
[0177]
根据实施方式的点云编码器(例如,raht变换器40008)可执行raht变换编码,其中使用与八叉树中较低级别的节点关联的属性来预测较高级别的节点的属性。raht变换编码是通过八叉树向后扫描进行属性帧内编码的示例。根据实施方式的点云编码器从体素开始扫描整个区域并且在每一步重复将体素合并为更大的块的合并过程,直至到达根节点。仅对占用节点执行根据实施方式的合并过程。不对空节点执行合并过程。对空节点正上方的上节点执行合并过程。
[0178]
下式表示raht变换矩阵。在该式中,表示级别l的体素的平均属性值。可基于g
l+12x,y,z
和来计算。和的权重为和
[0179][0180]
这里,是低通值并且在次高级别的合并过程中使用。表示高通系数。每一步的高通系数被量化并经受熵编码(例如,由算术编码器400012编码)。权重被计算为通过和创建根节点如下。
[0181][0182]
图10示出根据实施方式的点云解码器。
[0183]
图10所示的点云解码器是图1中描述的点云视频解码器10006的示例,并且可执行与图1所示的点云视频解码器10006的操作相同或相似的操作。如图所示,点云解码器可接收包含在一个或更多个比特流中的几何比特流和属性比特流。点云解码器包括几何解码器和属性解码器。几何解码器对几何比特流执行几何解码并输出解码的几何。属性解码器基于解码的几何和属性比特流执行属性解码,并且输出解码的属性。解码的几何和解码的属性用于重构点云内容(解码的点云)。
[0184]
图11示出根据实施方式的点云解码器。
[0185]
图11所示的点云解码器是图10所示的点云解码器的示例,并且可执行解码操作,其是图1至图9所示的点云编码器的编码操作的逆过程。
[0186]
如参照图1和图10所描述的,点云解码器可执行几何解码和属性解码。几何解码在属性解码之前执行。
[0187]
根据实施方式的点云解码器包括算术解码器(算术解码)11000、八叉树合成器(合成八叉树)11001、表面近似合成器(合成表面近似)11002和几何重构器(重构几何)11003、坐标逆变换器(逆变换坐标)11004、算术解码器(算术解码)11005、逆量化器(逆量化)11006、raht变换器11007、lod生成器(生成lod)11008、逆提升器(逆提升)11009和/或颜色逆变换器(逆变换颜色)11010。
[0188]
算术解码器11000、八叉树合成器11001、表面近似合成器11002、几何重构器11003和坐标逆变换器11004可执行几何解码。根据实施方式的几何解码可包括直接编码和三联体几何解码。直接编码和三联体几何解码选择性地应用。几何解码不限于上述示例,并且作为参照图1至图9描述的几何编码的逆过程执行。
[0189]
根据实施方式的算术解码器11000基于算术编码将所接收的几何比特流解码。算术解码器11000的操作对应于算术编码器40004的逆过程。
[0190]
根据实施方式的八叉树合成器11001可通过从解码的几何比特流获取占用代码(或关于作为解码结果取得的几何的信息)来生成八叉树。占用代码如参照图1至图9详细描述那样配置。
[0191]
当应用三联体几何编码时,根据实施方式的表面近似合成器11002可基于解码的几何和/或生成的八叉树来合成表面。
[0192]
根据实施方式的几何重构器11003可基于表面和/或解码的几何重新生成几何。如参照图1至图9所描述的,选择性地应用直接编码和三联体几何编码。因此,几何重构器11003直接导入关于应用了直接编码的点的位置信息并将其相加。当应用三联体几何编码时,几何重构器11003可通过执行几何重构器40005的重构操作(例如,三角形重构、上采样和体素化)来重构几何。细节与参照图6描述的那些相同,因此省略其描述。重构的几何可包括不包含属性的点云画面或帧。
[0193]
根据实施方式的坐标逆变换器11004可通过基于重构的几何变换坐标来获取点位置。
[0194]
算术解码器11005、逆量化器11006、raht变换器11007、lod生成器11008、逆提升器11009和/或颜色逆变换器11010可执行参照图10描述的属性解码。根据实施方式的属性解码包括区域自适应分层变换(raht)解码、基于插值的分层最近邻居预测(预测变换)解码以及具有更新/提升步骤的基于插值的分层最近邻居预测(提升变换)解码。上述三个解码方案可选择性地使用,或者可使用一个或更多个解码方案的组合。根据实施方式的属性解码不限于上述示例。
[0195]
根据实施方式的算术解码器11005通过算术编码对属性比特流进行解码。
[0196]
根据实施方式的逆量化器11006逆量化关于解码的属性比特流或作为解码结果取得的属性的信息,并且输出逆量化的属性(或属性值)。可基于点云编码器的属性编码选择性地应用逆量化。
[0197]
根据实施方式,raht变换器11007、lod生成器11008和/或逆提升器11009可处理重构的几何和逆量化的属性。如上所述,raht变换器11007、lod生成器11008和/或逆提升器11009可选择性地执行与点云编码器的编码对应的解码操作。
[0198]
根据实施方式的颜色逆变换器11010执行逆变换编码以逆变换包括在解码的属性中的颜色值(或纹理)。可基于点云编码器的颜色变换器40006的操作选择性地执行颜色逆变换器11010的操作。
[0199]
尽管图中未示出,图11的点云解码器的元件可由包括被配置为与包括在点云提供设备中的一个或更多个存储器通信的一个或更多个处理器或集成电路的硬件、软件、固件或其组合实现。一个或更多个处理器可执行上述图11的点云解码器的元件的操作和/或功能中的至少一个或更多个。另外,一个或更多个处理器可操作或执行用于执行图11的点云
解码器的元件的操作和/或功能的软件程序和/或指令集合。
[0200]
图12示出根据实施方式的发送装置。
[0201]
图12所示的发送装置是图1的发送装置10000(或图4的点云编码器)的示例。图12所示的发送装置可执行与参照图1至图9描述的点云编码器的那些相同或相似的一个或更多个操作和方法。根据实施方式的发送装置可包括数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码生成器12003、表面模型处理器12004、帧内/帧间编码处理器12005、算术编码器12006、元数据处理器12007、颜色变换处理器12008、属性变换处理器12009、预测/提升/raht变换处理器12010、算术编码器12011和/或传输处理器12012。
[0202]
根据实施方式的数据输入单元12000接收或获取点云数据。数据输入单元12000可执行与点云视频获取器10001的操作和/或获取方法(或参照图2描述的获取过程20000)相同或相似的操作和/或获取方法。
[0203]
数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码生成器12003、表面模型处理器12004、帧内/帧间编码处理器12005和算术编码器12006执行几何编码。根据实施方式的几何编码与参照图1至图9描述的几何编码相同或相似,因此省略其详细描述。
[0204]
根据实施方式的量化处理器12001量化几何(例如,点的位置值)。量化处理器12001的操作和/或量化与参照图4描述的量化器40001的操作和/或量化相同或相似。细节与参照图1至图9描述的那些相同。
[0205]
根据实施方式的体素化处理器12002将点的量化的位置值体素化。体素化处理器120002可执行与参照图4描述的量化器40001的操作和/或体素化过程相同或相似的操作和/或过程。细节与参照图1至图9描述的那些相同。
[0206]
根据实施方式的八叉树占用代码生成器12003基于八叉树结构对点的体素化的位置执行八叉树编码。八叉树占用代码生成器12003可生成占用代码。八叉树占用代码生成器12003可执行与参照图4和图6描述的点云编码器(或八叉树分析器40002)的操作和/或方法相同或相似的操作和/或方法。细节与参照图1至图9描述的那些相同。
[0207]
根据实施方式的表面模型处理器12004可基于表面模型执行三联体几何编码以基于体素重构特定区域(或节点)中的点位置。表面模型处理器12004可执行与参照图4描述的点云编码器(例如,表面近似分析器40003)的操作和/或方法相同或相似的操作和/或方法。细节与参照图1至图9描述的那些相同。
[0208]
根据实施方式的帧内/帧间编码处理器12005可对点云数据执行帧内/帧间编码。帧内/帧间编码处理器12005可执行与参照图7描述的帧内/帧间编码相同或相似的编码。细节与参照图7描述的那些相同。根据实施方式,帧内/帧间编码处理器12005可包括在算术编码器12006中。
[0209]
根据实施方式的算术编码器12006对点云数据的八叉树和/或近似八叉树执行熵编码。例如,编码方案包括算术编码。算术编码器12006执行与算术编码器40004的操作和/或方法相同或相似的操作和/或方法。
[0210]
根据实施方式的元数据处理器12007处理关于点云数据的元数据(例如,设定值),并将其提供给诸如几何编码和/或属性编码的必要处理过程。另外,根据实施方式的元数据处理器12007可生成和/或处理与几何编码和/或属性编码有关的信令信息。根据实施方式
的信令信息可与几何编码和/或属性编码分开编码。根据实施方式的信令信息可被交织。
[0211]
颜色变换处理器12008、属性变换处理器12009、预测/提升/raht变换处理器12010和算术编码器12011执行属性编码。根据实施方式的属性编码与参照图1至图9描述的属性编码相同或相似,因此省略其详细描述。
[0212]
根据实施方式的颜色变换处理器12008执行颜色变换编码以变换包括在属性中的颜色值。颜色变换处理器12008可基于重构的几何来执行颜色变换编码。重构的几何与参照图1至图9描述的相同。另外,其执行与参照图4描述的颜色变换器40006的操作和/或方法相同或相似的操作和/或方法。省略其详细描述。
[0213]
根据实施方式的属性变换处理器12009执行属性变换以基于重构的几何和/或不执行几何编码的位置来变换属性。属性变换处理器12009执行与参照图4描述的属性变换器40007的操作和/或方法相同或相似的操作和/或方法。省略其详细描述。根据实施方式的预测/提升/raht变换处理器12010可通过raht编码、预测变换编码和提升变换编码中的任一种或组合对变换的属性进行编码。预测/提升/raht变换处理器12010执行与参照图4描述的raht变换器40008、lod生成器40009和提升变换器40010的操作相同或相似的至少一个操作。另外,预测变换编码、提升变换编码和raht变换编码与参照图1至图9描述的那些相同,因此省略其详细描述。
[0214]
根据实施方式的算术编码器12011可基于算术编码对编码的属性进行编码。算术编码器12011执行与算术编码器400012的操作和/或方法相同或相似的操作和/或方法。
[0215]
根据实施方式的传输处理器12012可发送包含编码的几何和/或编码的属性和元数据信息的各个比特流,或者发送配置有编码的几何和/或编码的属性和元数据信息的一个比特流。当根据实施方式的编码的几何和/或编码的属性和元数据信息被配置为一个比特流时,比特流可包括一个或更多个子比特流。根据实施方式的比特流可包含信令信息和切片数据,信令信息包括用于序列级别信令的序列参数集(sps)、用于几何信息编码信令的几何参数集(gps)、用于属性信息编码信令的属性参数集(aps)和用于拼块级别信令的拼块参数集(tps)。切片数据可包括关于一个或更多个切片的信息。根据实施方式的一个切片可包括一个几何比特流geom00以及一个或更多个属性比特流attr00和attr10。
[0216]
切片是指表示全部或部分编码点云帧的一系列语法元素。
[0217]
根据实施方式的tps可包括关于一个或更多个拼块中的各个拼块的信息(例如,关于边界框的坐标信息和高度/大小信息)。几何比特流可包含头和有效载荷。根据实施方式的几何比特流的头可包含gps中所包括的参数集标识符(geom_parameter_set_id)、拼块标识符(geom_tile_id)和切片标识符(geom_slice_id)以及关于包含在有效载荷中的数据的信息。如上所述,根据实施方式的元数据处理器12007可生成和/或处理信令信息并将其发送到传输处理器12012。根据实施方式,执行几何编码的元件和执行属性编码的元件可如虚线所指示彼此共享数据/信息。根据实施方式的传输处理器12012可执行与发送器10003的操作和/或传输方法相同或相似的操作和/或传输方法。细节与参照图1和图2描述的那些相同,因此省略其描述。
[0218]
图13示出根据实施方式的接收装置。
[0219]
图13所示的接收装置是图1的接收装置10004(或图10和图11的点云解码器)的示例。图13所示的接收装置可执行与参照图1至图11描述的点云解码器的那些相同或相似的
一个或更多个操作和方法。
[0220]
根据实施方式的接收装置包括接收器13000、接收处理器13001、算术解码器13002、基于占用代码的八叉树重构处理器13003、表面模型处理器(三角形重构、上采样、体素化)13004、逆量化处理器13005、元数据解析器13006、算术解码器13007、逆量化处理器13008、预测/提升/raht逆变换处理器13009、颜色逆变换处理器13010和/或渲染器13011。根据实施方式的各个解码元件可执行根据实施方式的对应编码元件的操作的逆过程。
[0221]
根据实施方式的接收器13000接收点云数据。接收器13000可执行与图1的接收器10005的操作和/或接收方法相同或相似的操作和/或接收方法。省略其详细描述。
[0222]
根据实施方式的接收处理器13001可从所接收的数据获取几何比特流和/或属性比特流。接收处理器13001可包括在接收器13000中。
[0223]
算术解码器13002、基于占用代码的八叉树重构处理器13003、表面模型处理器13004和逆量化处理器13005可执行几何解码。根据实施方式的几何解码与参照图1至图10描述的几何解码相同或相似,因此省略其详细描述。
[0224]
根据实施方式的算术解码器13002可基于算术编码对几何比特流进行解码。算术解码器13002执行与算术解码器11000的操作和/或编码相同或相似的操作和/或编码。
[0225]
根据实施方式的基于占用代码的八叉树重构处理器13003可通过从解码的几何比特流(或关于作为解码结果取得的几何的信息)获取占用代码来重构八叉树。基于占用代码的八叉树重构处理器13003执行与八叉树的合成器11001的操作和/或八叉树生成方法相同或相似的操作和/或方法。当应用三联体几何编码时,根据实施方式的表面模型处理器13004可基于表面模型方法来执行三联体几何解码和相关几何重构(例如,三角形重构、上采样、体素化)。表面模型处理器13004执行与表面近似合成器11002和/或几何重构器11003的操作相同或相似的操作。
[0226]
根据实施方式的逆量化处理器13005可逆量化解码的几何。
[0227]
根据实施方式的元数据解析器13006可解析包含在所接收的点云数据中的元数据(例如,设定值)。元数据解析器13006可将元数据传递给几何解码和/或属性解码。元数据与参照图12描述的元数据相同,因此省略其详细描述。
[0228]
算术解码器13007、逆量化处理器13008、预测/提升/raht逆变换处理器13009和颜色逆变换处理器13010执行属性解码。属性解码与参照图1至图10描述的属性解码相同或相似,因此省略其详细描述。
[0229]
根据实施方式的算术解码器13007可通过算术编码对属性比特流进行解码。算术解码器13007可基于重构的几何对属性比特流进行解码。算术解码器13007执行与算术解码器11005的操作和/或编码相同或相似的操作和/或编码。
[0230]
根据实施方式的逆量化处理器13008可逆量化解码的属性比特流。逆量化处理器13008执行与逆量化器11006的操作和/或逆量化方法相同或相似的操作和/或方法。
[0231]
根据实施方式的预测/提升/raht逆变换器13009可处理重构的几何和逆量化的属性。预测/提升/raht逆变换处理器13009执行与raht变换器11007、lod生成器11008和/或逆提升器11009的操作和/或解码相同或相似的一个或更多个操作和/或解码。根据实施方式的颜色逆变换处理器13010执行逆变换编码以逆变换包括在解码的属性中的颜色值(或纹理)。颜色逆变换处理器13010执行与颜色逆变换器11010的操作和/或逆变换编码相同或相
似的操作和/或逆变换编码。根据实施方式的渲染器13011可渲染点云数据。
[0232]
图14示出根据实施方式的可与点云数据发送/接收方法/装置结合操作的示例性结构。
[0233]
图14的结构表示服务器1460、机器人1410、自驾驶车辆1420、xr装置1430、智能电话1440、家用电器1450和/或头戴式显示器(hmd)1470中的至少一个连接到云网络1400的配置。机器人1410、自驾驶车辆1420、xr装置1430、智能电话1440或家用电器1450被称为装置。此外,xr装置1430可对应于根据实施方式的点云数据(pcc)装置或者可操作上连接到pcc装置。
[0234]
云网络1400可表示构成云计算基础设施的一部分或存在于云计算基础设施中的网络。这里,云网络1400可使用3g网络、4g或长期演进(lte)网络或5g网络来配置。
[0235]
服务器1460可经由云网络1400连接到机器人1410、自驾驶车辆1420、xr装置1430、智能电话1440、家用电器1450和/或hmd 1470中的至少一个,并且可辅助连接的装置1410至1470的至少一部分处理。
[0236]
hmd 1470表示根据实施方式的xr装置和/或pcc装置的实现类型之一。根据实施方式的hmd型装置包括通信单元、控制单元、存储器、i/o单元、传感器单元和电源单元。
[0237]
以下,将描述应用了上述技术的装置1410至1450的各种实施方式。图14所示的装置1410至1450可操作上连接/联接到根据上述实施方式的点云数据发送和接收装置。
[0238]
《pcc+xr》
[0239]
xr/pcc装置1430可采用pcc技术和/或xr(ar+vr)技术,并且可被实现为hmd、设置在车辆中的平视显示器(hud)、电视、移动电话、智能电话、计算机、可穿戴装置、家用电器、数字标牌、车辆、固定机器人或移动机器人。
[0240]
xr/pcc装置1430可分析通过各种传感器或从外部装置获取的3d点云数据或图像数据并生成关于3d点的位置数据和属性数据。由此,xr/pcc装置1430可获取关于周围空间或真实对象的信息,并且渲染和输出xr对象。例如,xr/pcc装置1430可使包括关于所识别的对象的辅助信息的xr对象与所识别的对象匹配并输出匹配的xr对象。
[0241]
《pcc+自驾驶+xr》
[0242]
自驾驶车辆1420可通过应用pcc技术和xr技术被实现为移动机器人、车辆、无人驾驶飞行器等。
[0243]
应用了xr/pcc技术的自驾驶车辆1420可表示设置有用于提供xr图像的手段的自驾驶车辆,或者作为xr图像中的控制/交互目标的自驾驶车辆。具体地,作为xr图像中的控制/交互目标,自驾驶车辆1420可与xr装置1430相区分并且可操作上与之连接。
[0244]
具有用于提供xr/pcc图像的手段的自驾驶车辆1420可从包括相机的传感器获取传感器信息,并且基于所获取的传感器信息来输出所生成的xr/pcc图像。例如,自驾驶车辆1420可具有hud并向其输出xr/pcc图像,从而向乘客提供与真实对象或呈现在画面上的对象对应的xr/pcc对象。
[0245]
当xr/pcc对象被输出到hud时,可输出xr/pcc对象的至少一部分以与乘客的眼睛所指向的真实对象交叠。另一方面,当xr/pcc对象输出在设置在自驾驶车辆内的显示器上时,可输出xr/pcc对象的至少一部分以与画面上的对象交叠。例如,自驾驶车辆1220可输出与诸如道路、另一车辆、交通灯、交通标志、两轮车、行人和建筑物的对象对应的xr/pcc对
象。
[0246]
根据实施方式的虚拟现实(vr)技术、增强现实(ar)技术、混合现实(mr)技术和/或点云压缩(pcc)技术适用于各种装置。
[0247]
换言之,vr技术是仅提供真实世界对象、背景等的cg图像的显示技术。另一方面,ar技术是指在真实对象的图像上显示虚拟创建的cg图像的技术。mr技术与上述ar技术的相似之处在于,要显示的虚拟对象与真实世界混合和组合。然而,mr技术与ar技术的不同之处在于,ar技术在真实对象和作为cg图像创建的虚拟对象之间明确区分并且使用虚拟对象作为真实对象的补充对象,而mr技术将虚拟对象当作具有与真实对象等同的特性的对象。更具体地,mr技术应用的示例是全息服务。
[0248]
最近,vr、ar和mr技术通常被称为扩展显示(xr)技术,而非彼此明确区分。因此,本公开的实施方式适用于vr、ar、mr和xr技术中的任一种。基于pcc、v-pcc和g-pcc技术的编码/解码适用于这种技术。
[0249]
根据实施方式的pcc方法/装置可被应用于提供自驾驶服务的车辆。
[0250]
提供自驾驶服务的车辆连接到pcc装置以进行有线/无线通信。
[0251]
当根据实施方式的点云数据(pcc)发送/接收装置连接到车辆以进行有线/无线通信时,装置可接收/处理与ar/vr/pcc服务(可与自驾驶服务一起提供)有关的内容数据,并将其发送到车辆。在pcc发送/接收装置安装在车辆上的情况下,pcc发送/接收装置可根据通过用户接口装置输入的用户输入信号接收/处理与ar/vr/pcc服务有关的内容数据并将其提供给用户。根据实施方式的车辆或用户接口装置可接收用户输入信号。根据实施方式的用户输入信号可包括指示自驾驶服务的信号。
[0252]
图15示出根据实施方式的用于空间可伸缩性的几何数据和属性数据的结构。
[0253]
图15中的g-pcc解码器15000和/或g-pcc解码器15010可对应于图1中的接收装置10004、图1中的点云视频解码器10006、图2中的解码20003和图10和图11中的解码器、图13中的解码器和图14中的xr装置1430。图15中的g-pcc解码器15000和/或g-pcc解码器15010可执行图1中的发送装置10000、图1中的点云视频编码器10002、图2中的编码20001、图4中的编码器、图12中的编码器和图14中的xr装置1430的发送侧的操作的逆过程。
[0254]
根据实施方式,pcc数据编码器可对应于编码装置、编码器、点云发送装置、点云数据编码器等。
[0255]
根据实施方式,几何信息可被称为几何数据等,属性信息可被称为属性数据等。
[0256]
根据实施方式的方法/装置是指根据实施方式的用于发送/接收点云数据的方法/装置。
[0257]
实施方式涉及一种支持用于3d点云数据压缩的基于几何的点云压缩(g-pcc)的编码器/解码器的空间可伸缩性的属性压缩方法。
[0258]
实施方式提出了一种在g-pcc的属性编码/解码过程中基于八叉树来改变各个lod的点采样技术以提供空间可伸缩性的方法。
[0259]
具体地,提出了1)使用莫顿码通过八叉树节点重组点的方法、2)处理孤立点的方法、3)各个节点的点采样技术、4)支持上述三种方法的信令方法。
[0260]
当点云数据密集时,可能需要使用较窄带宽(例如,缩略图)或者发送和处理较低分辨率点云以降低解码器侧计算复杂度的功能。此功能被称为空间可伸缩性。
[0261]
在几何编码/解码中,可通过对占用比特进行编码或解码仅至通过调节八叉树的深度级别而选择的深度级别的过程来提供空间可伸缩性功能。
[0262]
根据实施方式的属性编码/解码可执行根据实施方式的基于八叉树结构的操作以便提供空间可伸缩性功能。可能需要根据实施方式的从八叉树的所选深度级别生成lod的方法、计算邻居节点的方法和计算权重的方法,以在属性编码/解码中提供空间可伸缩性。
[0263]
根据实施方式的属性编码/解码可基于八叉树来改变各个lod的采样点的技术并将各个lod的最合适的点配置为节点以提供空间可伸缩性。由此,属性压缩效率可增强。
[0264]
实施方式提出了一种基于八叉树来改变各个lod的点采样技术以在g-pcc的属性编码/解码过程中提供空间可伸缩性的方法。
[0265]
根据实施方式的基于lod采样的方法可指以莫顿码对点进行排序并将根据实施方式选择的点分类至可作为邻居集的候选的较低lod的方法。根据实施方式的基于lod采样的方法可增加邻居点集合生成的准确度和压缩效率,同时降低lod生成的复杂度。
[0266]
如图15所示,pcc数据(或点云数据)可由几何比特流和属性比特流组成。点云数据可由根据实施方式的点云数据发送装置或点云数据编码器编码并发送。根据实施方式的点云数据接收装置或点云数据解码器可对点云数据进行解码。
[0267]
在这种情况下,对于几何数据(或几何比特流)和/或属性数据(或属性比特流),云数据接收装置可按细节级别(lod)的顺序部分地解码八叉树结构的几何比特流和/或基于提升编码的属性比特流。
[0268]
g-pcc解码器15000和/或g-pcc解码器15010表示根据实施方式的点云数据接收装置的解码器。具体地,g-pcc解码器15000和/或g-pcc解码器15010表示pcc解码器的几何解码器和/或属性解码器。
[0269]
g-pcc解码器15000可能并不解码所接收的比特流中的所有几何比特流和/或属性比特流,而是可部分地解码几何比特流和/或属性比特流以向用户提供低分辨率点云数据。
[0270]
g-pcc解码器15010可将所接收的比特流中的所有几何比特流和/或属性比特流解码并将解码的比特流提供给用户。
[0271]
与g-pcc解码器15000和g-pcc解码器15010对应的发送侧的pcc编码器可对整个点云数据进行编码并发送,或者可对部分点云数据进行编码并发送。
[0272]
图16示出根据实施方式的属性编码/解码过程。
[0273]
图16的过程可被应用于根据实施方式的编码和/或解码。例如,该过程可由图15中的解码器15000和15010和/或对应编码器(图1中的发送装置10000、图1中的点云视频编码器10002、图2中的编码20001、图4中的编码器、图12中的编码器和图14中的xr装置1430)执行。
[0274]
本公开的实施方式之间的改变和组合是可能的。另外,本公开中使用的术语可在相关领域中广泛采用的范围内基于术语的预期含义来理解。
[0275]
根据实施方式的属性编码器/解码器可如几何编码/解码中一样应用八叉树结构,以在对属性进行编码/解码时提供空间可伸缩性功能。实施方式包括从八叉树的所选深度级别开始重组属于节点的点的方法以及采样各个lod的点的方法。
[0276]
重组点的方法和采样各个lod的点的方法在pcc解码器/编码器的pcc属性编码/解码中执行,并且可在属性编码/解码过程中使用预测变换技术或提升变换技术时应用。
[0277]
s16000基于莫顿序对点云数据进行排序
[0278]
点云中的点可基于x、y和z位置值改变为莫顿码,并且可基于莫顿码值来排序。
[0279]
s16010设定属性数据的部分编码/解码区域
[0280]
在属性编码/解码中,如几何编码/解码中一样(参见图17),可设定八叉树的深度级别,并且可从设定的八叉树深度级别开始构造和编码/解码要应用属性编码(解码)的点。
[0281]
s16020使用莫顿码来重组属于八叉树节点的点
[0282]
根据实施方式的针对各个八叉树节点重组按莫顿码排序的点的方法可采用下面给出的伪代码(式)。
[0283]
nodesizelog2:表示八叉树深度级别(图17中的17000)。
[0284]
px_mortoncode:表示节点px的莫顿码。
[0285]
end_range_mc:表示节点的莫顿码的范围。
[0286]
maxnumofpoints:表示特定八叉树深度级别的点的最大数量。这是在理想情况下节点可具有的点的最大数量。
[0287]
int maxnumofpoints=pow(8,nodesizelog2+1);
[0288]
for(int i=1;i《indexcount;++i){
[0289]
if(pi_mortoncode《end_range_mc){
[0290]

[0291]
}else{
[0292]
end_range_mc=pi_mortoncode+
[0293]
(maxnumofpoints-(pi_mortoncode%maxnumofpoints));
[0294]
}
[0295]
}
[0296]
根据上述句法,可知道八叉树结构中的一个节点内具有相同莫顿码值的范围(end_range_mc),并且可由此选择节点并上传至更高节点。
[0297]
与上述句法相同的含义可表示如下。
[0298]
当使用提升方法时,可使用以下节点选择方法。
[0299]
当lifting_scalability_enabled_flag等于1(使用提升)时,应用以下内容:
[0300]
endindex=0
[0301]
assignedpointcount=0
[0302]
for(lod=mingeomnodesizelog2;unprocessedpointcount》0;lod++){
[0303]
startindex=assignedpointcount
[0304]
nonassignedpointcount=0
[0305]
samplingfromlastflag=lod&1
[0306]
for(i=0;i《unprocessedpointcount;i++){
[0307]
currvoxelindex=mcodeunsorted[unprocessedpointindexes[i]]》》(3*
×
(lod+1))
[0308]
if(samplingfromlastflag==0){
[0309]
if(i==0)
[0310]
nonassignedpointindexes[nonassignedpointcount++]=
unprocessedpointindexes[i]
[0311]
else{
[0312]
prevvoxelindex=mcodeunsorted[unprocessedpointindexes[i-1]]》》(3*
×
(lod+1))
[0313]
if(currvoxelindex》prevvoxelindex)
[0314]
nonassignedpointindexes[nonassignedpointcount++]=unprocessedpointindexes[i]
[0315]
else
[0316]
assignedpointindexes[assignedpointcount++]=unprocessedpointindexes[i]
[0317]
}
[0318]
}else{
[0319]
if(i==(unprocessedpointcount

1))
[0320]
nonassignedpointindexes[nonassignedpointcount++]=unprocessedpointindexes[i]
[0321]
else{
[0322]
nextvoxelindex=mcodeunsorted[unprocessedpointindexes[i+1]]》》(3*
×
(lod+1))
[0323]
if(currvoxelindex《nextvoxelindex)
[0324]
nonassignedpointindexes[nonassignedpointcount++]=unprocessedpointindexes[i]
[0325]
else
[0326]
assignedpointindexes[assignedpointcount++]=unprocessedpointindexes[i]
[0327]
}
[0328]
}
[0329]
}
[0330]
endindex=assignedpointcount
[0331]
if(startindex!=endindex){
[0332]
numofpointinskipped=pointnuminslice

pointcount
[0333]
if((endindex

startindex)》(startindex+numofpointinskipped)){
[0334]
for((loop=0;loop《lod-mingeomnodesizelog2;loop++)){
[0335]
computenearestneighbours(
[0336]
pointcount-unprocessedpointcountperlevelofdetail[loop],
[0337]
pointcount-unprocessedpointcountperlevelofdetail[loop+1],
[0338]
loop+mingeomnodesizelog2,assignedpointindexes,
[0339]
mcodeunsorted,nonassignedpointcount,
[0340]
nonassignedpointindexes))
[0341]
}
[0342]
}
[0343]
}
[0344]
computenearestneighbours(
[0345]
startindex,endindex,
[0346]
lod,assignedpointindexes,
[0347]
mcodeunsorted,nonassignedpointcount,
[0348]
nonassignedpointindexes)
[0349]
unprocessedpointcountperlevelofdetail[lod+1]=nonassignedpointcount
[0350]
unprocessedpointcount=nonassignedpointcount
[0351]
unprocessedpointindexes=nonassignedpointindexes
[0352]
}
[0353]
具体地,在将下一体素索引设定为nextvoxelindex=mcodeunsorted[unprocessedpointindexes[i+1]]》》(3*
×
(lod+1))时,莫顿码可被移位以确定莫顿码值是否在同一范围内。
[0354]
根据实施方式的编码器可从点的莫顿码估计end_range_mc。当下一点的莫顿码值在范围end_range_mc内时,这些点属于同一节点。当莫顿码在该范围之外具有更大的值时,编码器可在节点改变为新节点的情况下基于点的莫顿码来估计end_range_mc,并将其应用于后续点。这样,可在按莫顿码排序的点之间重组属于八叉树节点的点(参见图18)。
[0355]
s16030合并孤立节点
[0356]
当属于节点的点的数量小于特定阈值时,节点可被合并(参见图18)。
[0357]
例如,当节点的点的最小数量为“a”并且点的数量小于点的最小数量时,节点可与下一节点合并。另外,可用信号通知a的值。当最大合并范围为r时,可最多与接下来的r个节点合并,并且可用信号通知r的值。当点的数量小于点的最小数量时,节点可与下一节点合并。当合并点的数量小于点的最小数量时,可与下一节点合并。这种重复可执行r次。
[0358]
s16040配置八叉树节点的lod
[0359]
根据实施方式,lod配置可从根节点至叶节点进行,或者可从叶节点至根节点进行。
[0360]
例如,当从根至叶配置lod时,lod配置可从根节点至叶节点进行。可维持一致性。当从叶至根配置lod时,lod配置可从叶节点至根节点进行。
[0361]
s16050执行八叉树节点的lod采样
[0362]
可通过从属于节点(包括根据实施方式的合并节点)的点当中选择点来执行采样。属性压缩可能受所选点的影响。选择最佳参考点并重组到参考区域(保留列表)中,并且从参考区域构造邻居节点的集合。因此,压缩效率可能受到影响。
[0363]
根据实施方式的lod配置单元20120可使用如下三种采样方法。
[0364]
《选择第n点》
[0365]
在从属于节点(包括合并节点)的点当中选择点时,可选择第n点。当由编码器执行压缩时,n可由用户输入,或者可按照rdo(率失真优化)方式寻找最佳值。
[0366]
可将n的值作为参数(元数据或信令数据)发送至解码器(接收装置)。当没有指定n的值时,可选择值0(即,第一值)。
[0367]
压缩效率可取决于选择哪一点。
[0368]
《选择靠近八叉树父节点区域的中心的点》
[0369]
在从属于节点(包括合并节点)的点当中选择点时,可选择最靠近父节点的边界框的中心的点。当所选点更靠近父节点的中心位置时,在选择邻居点并计算邻居点的权重时可进一步减小误差。
[0370]
在选择邻居点时,计算点之间的距离,并且可选择距离更近的点作为邻居点。为了提供空间可伸缩性功能,点的位置值可由点所属的节点的中心位置的值替换(节点可根据lod的级别而变化)。在这种状态下,可计算距离。因此,为了寻找点pi的邻居点,pi的位置值可根据lodl改变为父节点的中心位置,并且邻居点候选列表(保留列表)r中的点ri的位置也根据lodl改变。然后,可计算点的距离。换言之,可计算相同深度级别的节点的中心位置之间的距离,从而将邻居节点设定为邻居点。从这样计算的距离,可获得邻居点的权重,1/距离=pi。由于通过将点的位置改变为父节点的中心位置来计算距离,所以计算包含误差。随着节点的深度级别降低,即,节点的边界框更大,误差可增加。
[0371]
为了减小误差,根据实施方式的发送/接收装置和方法可在编码或解码中在选择参考点时选择靠近父节点区域的中心位置的点。可根据参考点的位置值减小误差,并且减小的误差可对压缩效率有好的影响。
[0372]
《选择具有中间索引的点》
[0373]
在从属于节点(包括合并节点)的点当中选择点时,可选择点当中具有中间索引的点。由于中间索引的节点有很大概率靠近父节点的边界框的中心位置(在许多情况下),并且通过中间索引选择点不需要很多附加计算,所以以少量计算寻找靠近中心位置的点的概率可能高。
[0374]
图17示出根据实施方式的点云数据的八叉树结构。
[0375]
图17示出图16中的操作s16010。
[0376]
当根据实施方式的点云发送/接收装置或编码器/解码器对属性进行编码或解码时,可如图17中所示使用八叉树结构。按照从根节点至叶节点的顺序,即,从上节点(父节点)至下节点(子节点)的顺序解释八叉树结构,并且可按莫顿序从左至右布置节点。另外,可按照从叶节点至根节点的顺序配置(生成)lod。
[0377]
例如,设定诸如起始深度17000的八叉树深度级别,并且g-pcc解码器15000可如图15所示对设定的八叉树深度级别17000的点云数据进行解码。
[0378]
父节点可具有8个或更少的节点作为父节点的子节点。在采样子节点当中的特定节点并使其移位至父节点的过程中,属于父节点的按莫顿码排序的点17040当中最前面的点17050可被选为参考节点或保留节点(参见图17)。
[0379]
具体地,为了支持空间可伸缩性,根据实施方式的发送装置或编码器可编码并发送所有点,或者编码并发送特定深度的点。类似地,根据实施方式的接收装置或解码器可对全部点或特定深度的点进行解码。
[0380]
如图17所示,当存在表示所接收的点云数据的点的八叉树时,将描述基于起始深度17000的空间可伸缩性解码的过程。
[0381]
当八叉树的级别为0(17010)、级别1(17020)和级别2(17030)时,可设定起始深度1730,可从起始深度1730开始对点进行解码并忽略起始深度以下的点。
[0382]
从起始深度1730的点开始,点可被重组并合并以配置lod,并被采样。然后,发送装置可对属性进行编码,或者接收装置可对属性进行解码。
[0383]
图18示出根据实施方式的重组属于基于莫顿码的节点的点的方法。
[0384]
图18示出图16中的操作s16020。
[0385]
根据实施方式的编码器可基于图16中的操作s16020重组属于父节点18000的子节点18010的点。
[0386]
在基于图17中的起始深度17000设定属性编码/解码区域之后,属于起始深度或起始深度17000之后的级别的八叉树的点可按照如图18中的级别的顺序和图16的s16020中的式重组。
[0387]
例如,图17中设定的八叉树的级别(深度)的点可以是p0、p1、p2、

、p13、

。为了确保高效的编码/解码,根据实施方式的方法/装置(包括编码器/解码器)可将点重组为属于同一类别的组,如图18所示。
[0388]
根据图16的式“end_range_mc=pi_mortoncode+(maxnumofpoints-(pi_mortoncode%maxnumofpoints))”,end range mc的值可使用p0的八叉树级别值、莫顿码值(例如,1)来计算。当第一范围值为8时,p0至p5中的每一个的莫顿码值mc小于或等于8,因此点可被重组为属于同一节点的点(18010)。
[0389]
第二范围值可使用p6的八叉树级别值、莫顿码值(例如,9)和图16的式来计算。当莫顿码值小于第二范围值的点仅为p6时,p6被重组为单个点(18020)。
[0390]
第三范围值可使用p7的八叉树级别值或莫顿码值(例如,16)和图16的式来计算。具有包括在第三范围值中的莫顿码值的p7至p10可被重组为属于同一节点的点(18030)。
[0391]
第四范围值可使用p11的八叉树级别值或莫顿码值(例如,26)和图16的式来计算。具有包括在第四范围值内的莫顿码值的点可被重组为属于同一节点的点(18040)。
[0392]
图19示出根据实施方式的合并孤立节点。
[0393]
图19示出图16中的s16030的示例。
[0394]
孤立节点是指重组时的数量小于或等于特定数量的点。
[0395]
作为示例将描述图16的s16030中所示的节点的点的最小数量为4的情况。
[0396]
例如,可存在按莫顿码的顺序排序的点19000。作为基于参照图16至图18描述的操作重组排序点的结果,如19010中属于同一节点的点的数量可大于4。另外,如19020和19030中可存在具有属于同一节点的4个或更少点的点。
[0397]
根据实施方式的发送/接收方法/装置可将数量小于或等于特定数量的点合并,而非将点留下作为单独的节点。根据实施方式,合并过程可为可选的。
[0398]
随着孤立节点被合并,重组点的数量可大于或等于特定数量。属于同一节点的重组点具有一个采样范围。另外,合并节点具有合并采样范围。
[0399]
图19示出具有一个点的节点和具有4个点的节点被合并的示例以及具有3个点的节点和具有2个点的节点被合并的示例19040。
[0400]
图20示出根据实施方式的pcc数据编码器。
[0401]
图20是根据实施方式的编码器(图1中的发送装置10000、图1中的点云视频编码器10002、图2中的编码20001、图4中的编码器、图12中的编码器和图14中的xr装置1430)的配置图,其执行图16中的操作。
[0402]
根据实施方式的pcc数据编码器可被称为编码器,根据实施方式的pcc数据解码器可被称为解码器。
[0403]
pcc数据(点云数据)可被输入到编码器并由编码器编码,可输出几何信息比特流和属性信息比特流(用于点云数据的比特流)。
[0404]
图20中的各个元件可对应于硬件、软件、处理器和/或其组合。
[0405]
数据输入单元20000可接收几何数据、属性数据和/或与其有关的参数。
[0406]
坐标变换器20010可变换与几何数据的位置(坐标)信息有关的坐标。坐标变换器17010可对应于图4中的坐标变换器40000。
[0407]
几何信息变换量化处理器20020可被称为几何信息变换量化器。几何信息变换量化处理器20020可对应于图4中的量化器40001。几何信息变换量化处理器20020可接收一个全标度值(量化值)并且可根据内容的分布来调节各个轴的标度。
[0408]
空间分割器20030可根据实施方式将点云数据分割成空间分割单元。空间分割器20030可根据点云数据的数据特性使用拼块、块、基于密度的方法、基于轴的方法、基于属性的方法、基于几何的方法等对数据空间进行空间自适应分割。空间分割器20030可执行数据分割。帧可被分割成拼块和切片。源点云数据可被分割成多个切片并被编码在比特流内。切片是可独立地编码或解码的点的集合。切片可包括一个几何数据单元和零个或一个或更多个属性数据单元。属性数据单元可取决于同一切片中的对应几何数据。在切片中,几何数据单元可出现在相关属性单元之前。切片中的数据单元为邻接的。一组切片可由公共拼块标识符标识。描述各个拼块的边界框的拼块信息可存在于比特流中。拼块可与边界框中的其它拼块交叠。各个切片可包括标识拼块属于其的索引。
[0409]
几何信息编码器20040可对点云数据的几何数据进行编码。下面描述几何编码的详细过程。
[0410]
体素化处理器20050可将几何数据体素化。体素化处理器20050可对应于图4中的体素化器40001。
[0411]
八叉树生成器20060可被称为八叉树生成单元。八叉树生成器20060可对应于图4中的八叉树分析器40002。八叉树生成器20060可按八叉树结构生成几何数据。
[0412]
当使用几何八叉树时,可如下执行几何编码:1)可定义由两个点定义的边界框。通过递归地再分边界框来构建八叉树结构。各个立方体被划分成8个子立方体。8比特代码可被称为占用代码。当点被填充时每子立方体的一比特可被表示为1,或当点为空时被表示为0。边大于1的子立方体被进一步划分。大小为1的子立方体可以是体素。多个点可交叠并映射至同一子立方体(体素)。各个子立方体的点可被算术编码。
[0413]
解码过程可通过从比特流读取边界框的尺寸来开始。可通过根据占用代码划分边界框来生成相同的八叉树结构。当达到尺寸1的子立方体时,子立方体的点可被算术解码。
[0414]
八叉树生成器20060从所接收的几何信息比特流(几何数据)构造八叉树。对于空间可伸缩性功能,八叉树生成器20060可仅在八叉树的特定级别构造几何信息。在这种情况下,位置值可改变为边界框的中心的值。
[0415]
八叉树生成器20060可从恢复的八叉树深度级别开始构造并解码要应用属性解码的点以用于部分几何解码。
[0416]
几何信息预测器20070可对几何数据执行预测。几何信息预测器20070可针对八叉
树结构中的父节点和子节点之间的几何数据生成预测值。可通过预测值生成残差比特值以对残差值执行熵编码,以构造几何比特流。可通过针对预测值仅对残差值进行编码来实现高效比特流传输。几何信息预测器20070可从几何八叉树恢复(重构)几何数据以用于属性编码。这是因为属性编码是基于重构的几何数据来执行的。
[0417]
几何信息熵编码器20080可对几何数据执行熵编码以生成几何比特流。
[0418]
属性信息编码器20090可如下对属性数据进行编码。
[0419]
颜色变换处理器20100可根据数据特性来变换属性数据的颜色。
[0420]
颜色重新调节器20110可被称为重新着色单元、颜色重新着色器或重新着色器。根据实施方式,当在重构的几何八叉树结构中交叠点被合并时,属性信息编码器20090可执行重新着色,或者执行raht属性编码或根据预测/提升变换属性编码配置lod。根据实施方式,当交叠点未被合并时,甚至在rath编码中也可执行重新着色和/或lod配置。根据实施方式,在基于重构的几何数据执行属性信息编码时,可在有损几何的情况下执行重新着色,或者可在预测/提升变换属性编码而非有损几何的情况下执行lod配置。当一个体素中存在多个点并且通过有损压缩将交叠点合并而形成体素时,可应用颜色重新调节器的操作。另外,当几何量化系数小于1时,一个体素中可包括多个点。在这种情况下,可执行重新着色、lod配置和邻居点集合配置。颜色重新调节器20110可搜索原始点云中靠近体素的中心位置的邻居点以设定体素的代表性颜色,并且基于邻居点来计算代表性颜色。在搜索邻居点的过程中,几何信息可被逆量化以恢复原始值与量化值之间的位置差。颜色重新调节器20110可在执行逆量化时针对各个轴执行逆量化。
[0421]
lod配置单元20120可从点云数据配置lod。lod配置单元20120可基于恢复的几何信息(几何数据)从重新调节颜色的属性数据生成lod。当在属性编码期间应用预测/提升变换而非raht时,可生成lod。lod配置单元20120可使用莫顿码来重组属于节点的点,合并孤立节点,在八叉树节点中根据实施方式执行lod采样,并且生成并传送相关信息作为信令信息。
[0422]
lod配置单元20120可设定八叉树的深度级别以在属性编码/解码中支持空间可伸缩性,并且从设定的八叉树深度级别开始配置和编码/解码要应用属性编码的点(参见图17)。lod配置单元20120可被称为lod生成器、lod配置装置等。
[0423]
八叉树深度级别可由根据实施方式的编码器作为信令信息发送至解码器,并且可根据其用途或解码器的计算性能而改变。
[0424]
lod配置单元20120可通过在按莫顿码排序的点处计算各个八叉树节点的莫顿码范围来针对各个八叉树节点执行点重组(参见图18)。
[0425]
lod配置单元20120可设定节点点的最小数量(a的值)以区分节点的点的数量小于节点点的最小数量的情况。可将设定的值作为信令信息用信号通知给解码器。
[0426]
当节点的点的数量小于节点点的最小数量时将节点与下一连续节点合并的过程可被称为孤立节点合并处理(参见图19),可将是否执行孤立节点合并处理作为信令信息用信号通知给解码器。
[0427]
当节点的点的数量小于节点点的最小数量时,节点可与下一连续节点合并。可允许执行合并至多r次(参见图19)。可将最大合并次数r作为信令信息用信号通知给解码器。
[0428]
存在从属于节点的点选择(采样)一个点(包括合并节点)的方法(参见图16)。可将
该方法作为信令信息用信号通知给解码器。作为该方法,可选择第n点,可选择靠近八叉树父节点区域的中心位置的点,或者可选择具有中间索引的点。
[0429]
邻居点集合配置单元20130基于lod针对lod和更高的lod中属于lod的点配置邻居点集合。
[0430]
在生成lodl集合之后,可基于lodl集合在相同或更低lod的组(节点之间的距离较长的组)中找到x(》0)个最近邻居,并将其作为邻居点集合注册在预测器中。
[0431]
每一个点可具有单个预测器。从注册在预测器中的邻居点预测属性。
[0432]
预测器可用于预测属性。通过将注册的邻居点的属性乘以权重而获得的值的平均值可用作预测结果,或者特定点可用作预测结果。关于使用哪一方法,可预先计算压缩结果值,然后可选择能够生成最小流的方法。
[0433]
点的属性值与点的预测器所预测的属性值之间的残差可与预测器所选择的方法一起被编码并用信号通知给接收器。
[0434]
解码器可对发送的预测方法进行解码并根据该方法来预测属性值。可通过对发送的残差值进行解码并将预测值与其相加来恢复属性值。
[0435]
属性信息预测器20140从邻居点集合预测点的属性值。
[0436]
残差属性信息量化处理器20150可生成属性数据的预测值,生成预测值与属性值之间的残差值,并且将残差值量化。
[0437]
例如,在对点px进行编码时,当配置px的邻居点的集合时,可基于集合中的邻居点的属性值来预测px的属性值,可估计预测属性值与px的属性值之间的残差,并且可对残差的值进行编码并发送至解码器。解码器通过lod生成和所接收的附加信息来配置px的邻居点的集合,基于邻居集中的邻居点的属性值来预测px的属性值,并且通过将所接收的残差值与预测值相加来恢复px的属性值。
[0438]
当预测模式和残差信息分离标志为真时,残差属性信息量化器20150可计算根据预测模式的预测值与点的值之间的残差,并且将其量化值与预测模式一起编码。
[0439]
当预测模式和残差信息分离标志为假时,残差属性信息量化器20150可计算根据预测模式的预测值与点值之间的残差,并且仅对其量化值进行编码。
[0440]
属性信息熵编码器20160可对属性数据执行熵编码并且生成属性比特流。例如,可对残差值进行编码并且可生成属性比特流。
[0441]
图21示出根据实施方式的pcc数据解码器。
[0442]
图21中的解码器可对应于图15中的g-pcc解码器15000、图15中的g-pcc解码器15010、图1中的接收装置10004、图1中的点云视频解码器10006、图2中的解码20003、图10和图11中的解码器、图13中的解码器和图14中的xr装置1430。
[0443]
作为解码器的输入编码的几何信息比特流和属性信息比特流可被输入并解码,并且可输出重构的pcc数据。
[0444]
图21中的各个元件可对应于硬件、软件、处理器和/或其组合。
[0445]
几何信息解码器210000可接收几何信息比特流并对几何信息进行解码。几何信息解码器210000可以是与发送侧的几何信息编码器20040对应的接收侧的解码器。几何信息解码器210000可执行几何信息编码器20040的操作的逆过程。
[0446]
几何信息熵解码器210010可接收几何信息比特流并基于熵方案对几何信息进行
解码。几何信息熵解码器210010可执行几何信息熵编码器20080的操作的逆过程。
[0447]
八叉树重构器210020可从几何信息重构八叉树。八叉树重构器210020可执行八叉树生成器20060的操作的逆过程。
[0448]
几何信息预测器210030可生成几何信息的预测值。例如,可在八叉树结构中生成节点间预测值,并且可使用预测值的残差值高效地将几何信息解码。几何信息预测器210030可执行几何信息预测器20070的操作的逆过程。
[0449]
几何信息变换逆量化处理器210040可将几何数据逆量化。例如,几何信息变换逆量化处理器210040可从包含在比特流中的信令信息(参数)获取各个轴的标度值(量化值),并且可对基于各个轴的标度值重构的几何信息应用逆量化。
[0450]
坐标逆变换器210050可对关于几何信息的坐标信息进行逆变换。坐标逆变换器210050可执行坐标变换器20010的操作的逆过程。
[0451]
属性信息解码器210060可接收属性信息比特流并对属性信息进行解码。属性信息解码器210060可执行属性信息编码器20090的操作的逆过程。
[0452]
属性残差信息熵解码器210070可基于熵方案对包含在属性信息比特流中的属性残差信息(例如,属性信息的残差值)进行解码。属性残差信息熵解码器210070可执行属性信息熵编码器20160的操作的逆过程。
[0453]
lod配置单元210080可从点云数据配置lod。lod配置单元210080可基于恢复的几何信息(几何数据)从重新调节颜色的属性数据生成lod。当在属性编码期间应用预测/提升变换而非raht时,可生成lod。lod配置单元210080可对应于图20的lod配置单元20120。
[0454]
lod配置单元210080可使用莫顿码来重组属于节点的点,合并孤立节点,并且在八叉树节点中执行根据实施方式的lod采样。
[0455]
lod配置单元210080可从为部分属性解码恢复的八叉树深度级别开始构造和解码要应用属性解码的点(参见图17)。
[0456]
lod配置单元210080可通过从按莫顿码排序的点计算各个八叉树节点的莫顿码范围来针对各个八叉树节点执行点重组(参见图18)。
[0457]
当节点的点的数量小于恢复的节点点的最小数量(即,a)时,lod配置单元210080可将连续节点与该节点合并(参见图19)。
[0458]
当节点的点的数量小于节点点的最小数量时将节点与下一连续节点合并的过程可被称为孤立节点合并处理,并且可根据解码的是否要执行孤立节点合并处理的指示来执行合并。
[0459]
当节点的点的数量小于节点点的最小数量时,节点可与下一连续节点合并。可允许执行合并r次(即,恢复的最大合并次数)。
[0460]
可基于选择恢复的点的方案从属于节点(包括合并节点)的点当中选择一个点。该方案可包括选择第n点的方案、选择靠近八叉树父节点区域的中心位置的点的方案以及选择具有中间索引的点的方案(参见图16)。
[0461]
邻居点集合配置单元210090可基于从属性信息比特流生成的lod来搜索包括在lod中的点的邻居点并将其注册为邻居点集合。邻居点集合配置单元210090可对应于图20中的邻居点集合配置单元20130。
[0462]
属性信息预测器210100可生成属性信息的预测值。例如,属性信息预测器可从lod
和邻居点的集合生成点的预测值,并且生成预测值的残差值。属性信息预测器210100可执行属性信息预测器20140的操作的逆过程。
[0463]
残差属性信息逆量化处理器210110可逆量化残差属性信息(例如,属性信息的残差值)。残差属性信息逆量化处理器210110可执行残差属性信息量化处理器20150的操作的逆过程。
[0464]
颜色逆变换处理器210120可逆变换作为属性信息的颜色信息。颜色逆变换处理器210120可执行颜色变换处理器20100的操作的逆过程。
[0465]
图22示出根据实施方式的点云数据的比特流结构。
[0466]
根据实施方式的方法/装置可生成并获取如图22所示的点云比特流。例如,包含几何信息、属性信息和/或包括元数据的参数的点云比特流因此可由图1中的发送装置10000、点云视频编码器10002、接收装置10004、点云视频解码器10006、图2中的编码20001和解码20003、图4中的编码过程、图11中的解码过程、图12中的发送装置、图13中的接收装置、图14中的xr装置1430、图20中的编码器、图21中的解码器等生成(编码)和接收(解码)。
[0467]
可用信号通知实施方式的信息。
[0468]
在本公开中使用以下缩写:sps(序列参数集);gps(几何参数集);aps(属性参数集);tps(拼块参数集);geom(几何比特流(几何比特流=几何切片头+几何切片数据));attr(属性比特流(=属性方块头+属性方块数据))。这里,方块可被称为块等。
[0469]
根据实施方式的点云数据可采取如图19所示的比特流的形式。点云数据可包含序列参数集(sps)、几何参数集(gps)、属性参数集(aps)和拼块参数集(tps),其包含根据实施方式的信令信息。点云数据可包含一个或更多个几何和/或属性。点云数据中的几何和/或属性可被划分为一个或更多个切片(或方块/块)。几何可具有几何切片头和几何切片数据的结构。例如,包含信令信息的tps可包括tile(0)_tile_bounding_box_xyz0和tile(0)_tile_bounding_box_whd。几何可包括geom_geom_parameter_set_id、geom_tile_id、geom_slice_id、geomboxorigin、geom_box_log2_scale、geom_max_node_size_log2和geom_num_points。
[0470]
根据实施方式的信令信息可被添加到sps、gps、aps、tps等并用信号通知。
[0471]
根据实施方式,信令信息可被添加到tps、各个切片的几何(geom)或各个切片的属性(attr)并用信号通知。
[0472]
根据实施方式的点云数据的结构可在编码/解码/数据方面高效地提供包括信令信息的参数集、几何和属性。
[0473]
根据实施方式的与点云数据发送/接收装置有关的点云数据可包含序列参数、几何参数、属性参数、拼块参数、几何比特流或属性比特流中的至少一个。
[0474]
以下,将参照附图描述特定信令信息的句法。作为参考,根据实施方式的信令信息的名称可在信令信息的预期含义/功能范围内改变/扩展。信令信息的字段可以可区分地称为第一信令信息、第二信令信息等。
[0475]
如上所述,点云数据发送装置(例如,参照图1、图11、图14和图20描述的点云数据发送装置)可将编码的点云数据以比特流的形式发送。根据实施方式,比特流可包括一个或更多个子比特流。
[0476]
点云数据发送装置(例如,参照图1、图4、图12和图17描述的点云数据发送装置)可
考虑传输信道的错误将点云数据的图像划分为一个或更多个分组并经由网络发送。根据实施方式的比特流可包含一个或更多个分组(例如,网络抽象层(nal)单元)。因此,即使当在差网络环境下丢失一些分组时,点云数据接收装置也可使用剩余分组来恢复图像。点云数据可被划分为一个或更多个切片或一个或更多个拼块并处理。根据实施方式的拼块和切片是用于分割点云数据的画面并通过点云压缩编码来处理的区域。点云数据发送装置可根据点云数据的各个划分区域的重要性通过处理与各个区域对应的数据来提供高质量点云内容。即,根据实施方式的点云数据发送装置可通过点云压缩编码以更好的压缩效率和适当的延迟处理与对于用户而言重要的区域对应的数据。
[0477]
根据实施方式的点云内容的图像(或画面)被分割为用于点云压缩编码的基本处理单元。根据实施方式的点云压缩编码的基本处理单元可包括编码树单元(ctu)和方块,但不限于此示例。
[0478]
根据实施方式的切片是包括用于一个或更多个点云压缩编码的基本处理单元的区域,并且不具有矩形形状。根据实施方式的切片包含通过分组发送的数据。根据实施方式的拼块是图像中按矩形形状分割的区域,并且包括用于一个或更多个点云压缩编码的基本处理单元。根据实施方式的一个切片可包括在一个或更多个拼块中。另外,根据实施方式的一个拼块可包括在一个或更多个切片中。
[0479]
根据实施方式的比特流3000可包含信令信息和一个或更多个切片,信令信息包括用于序列级别信令的序列参数集(sps)、用于几何信息编码信令的几何参数集(gps)、用于属性信息编码信令的属性参数集(aps)以及用于拼块级别信令的拼块参数集(tps)。
[0480]
根据实施方式的sps可以是诸如简档和级别的整个序列的编码信息,并且可包括关于整个文件的综合信息,例如画面分辨率和视频格式。
[0481]
根据实施方式的一个切片(例如,图22的切片0)包含切片头和切片数据。切片数据可包括一个几何比特流(geom00)和一个或更多个属性比特流(attr00和attr10)。几何比特流可包含头(例如,几何切片头)和有效载荷(例如,几何切片数据)。根据实施方式的几何比特流的头可包含关于包括在gps中的参数集的标识信息(geom_geom_parameter_set_id)、拼块标识符(geom_tile id)、切片标识符(geom_slice_id)、关于几何框的原点信息(geomboxorigin)、几何框标度(geom_box_log2_scale)、最大几何节点大小(geom_max_node_size_log2)、几何点的数量(geom_num_poins)以及关于包含在有效载荷中的数据的信息。属性比特流可包含头(例如,属性切片头或属性方块头)和有效载荷(例如,属性切片数据或属性方块数据)。
[0482]
根据实施方式的方法/装置可在至sps的点云比特流中向sps添加根据实施方式的各个轴的几何量化选项信息并用信号通知其。根据实施方式的各个轴的几何量化选项信息可被添加到gps并用信号通知。sps可维持作为整体应用的标度值(量化值),并且gps可设定针对各个轴微调的标度值(量化值)。
[0483]
当针对各个拼块不同地执行量化时,根据实施方式的各个轴的几何量化选项信息可被添加到tps并用信号通知。在按区域划分的拼块之间几何分布可不同。因此,当根据该分布设定各个轴的几何量化值(标度值)或者根据各个轴与一个量化值的百分比重新调节各个轴的量化值时,可针对各个拼块不同地执行各个轴的几何量化。
[0484]
根据实施方式的各个轴的几何量化选项信息可被添加到各个切片的几何头并用
信号通知。在切片之间几何分布可不同。因此,当根据该分布设定各个轴的几何量化值(标度值)或者根据各个轴与一个量化值的百分比重新调节各个轴的量化值时,可针对各个切片不同地执行各个轴的几何量化。
[0485]
因此,根据比特流中的量化特性,根据实施方式的发送方法/装置可在比特流中包括相关参数信息(信令信息),并且可允许根据实施方式的接收方法/装置静态地/动态地访问点云数据。
[0486]
可用信号通知相关信息以实现实施方式。根据实施方式的信令信息可在发送侧或接收侧使用。
[0487]
几何比特流(geom):几何比特流=几何切片头+几何切片数据
[0488]
属性比特流(attr):属性比特流=属性方块头+属性方块数据。
[0489]
根据实施方式的发送方法/装置可向sps或aps添加属性编码/解码过程的空间可伸缩性功能的属性点配置相关信息并用信号通知其。
[0490]
根据实施方式的发送方法/装置可向各个切片的tps或attr添加属性编码/解码过程的空间可伸缩性功能的属性点配置相关信息并用信号通知其。
[0491]
根据实施方式提供拼块或切片并通过将其分割成区域来处理点云。即,点云数据可被分割成区域,其中,分割单位可以是拼块和/或切片。
[0492]
在将点云数据划分成区域时,可设定为各个区域生成不同的邻居点集合的选项,使得获得低复杂度,但结果的可靠性略低,或者获得高可靠性,但复杂度高。这可根据接收器的处理容量不同地设定。
[0493]
当点云被划分成拼块时,交叠点的不同处理选项可应用于各个拼块。
[0494]
当点云被划分成切片时,交叠点的不同处理选项可应用于各个切片。
[0495]
可根据与预测模式处理有关的选项来改变并用信号通知属性切片数据。
[0496]
图23至图26示出包含在图22中的点云数据的比特流中的信令信息的详细句法。为了支持根据实施方式的操作,根据实施方式的发送装置和接收装置可提供如下所述的信令方案。
[0497]
图23示出根据实施方式的序列参数集。
[0498]
图23示出如图22所示的根据实施方式的比特流中所包含的序列参数集。图23中的元数据、参数或信令信息可由图1中的发送装置10000、图1中的点云视频编码器10002、图1中的接收装置10004、图1中的点云视频解码器10006、图2中的编码20001、图2中的解码20003、图4中的编码过程、图11中的解码过程、图12中的发送装置、图13中的接收装置、图14中的xr装置1430、图20中的编码器、图21中的解码器等生成、发送和接收。
[0499]
与属性编码/解码过程的空间可伸缩性功能的属性点配置有关的信息可被添加到序列参数集并用信号通知。利用图23至图26中的句法,可高效地用信号通知支持空间可伸缩性功能的属性。信令信息的名称可在信令信息的含义和功能的范围内理解。
[0500]
lod_generation_direction指示lod生成方向。
[0501]
例如,当lod_generation_direction等于0时,这指示从lod0至lodn(即,在八叉树的情况下,从根节点至叶节点)生成lod。当lod_generation_direction等于1时,这指示从lodn至lod0(即,在八叉树的情况下,从叶节点至根节点)生成lod。该信息的各个整数值可根据实施方式而改变。
[0502]
sampling_select_type指示从属于节点(包括合并节点)的点当中选择一个点的点选择类型。
[0503]
例如,当sampling_select_type等于1时,这指示选择第n点。当sampling_select_type等于2时,这指示选择靠近八叉树父节点区域的中心位置的点。当sampling_select_type等于3时,这指示选择具有中间索引的点。该信息的各个整数值可根据实施方式而改变。
[0504]
sampling_isolated_node_min_number_of_points指示属于可被定义为孤立节点的节点的点的最小数量。
[0505]
sampling_isolated_node_merge_flag指示是否合并孤立节点。
[0506]
当sampling_isolated_node_merge_flag为1时,用信号通知sampling_isolated_node_max_merge_range。
[0507]
sampling_isolated_node_max_merge_range指示合并孤立节点的最大合并范围(连续节点的数量)。
[0508]
sampling_select_idx指示根据sampling_select_type要通过第n点选择来选择的点的索引。其作为默认值可被设定为0,意指选择第一点。
[0509]
当sampling_select_type为1时,用信号通知sampling_select_idx。
[0510]
profile_idc指示根据实施方式的比特流所遵循的简档。比特流不应包含实施方式中指定的那些以外的profile_idc的值。profile_idc的那些值被预留以供iso/iec将来使用。
[0511]
当profile_compatibility_flags等于1时,其指示比特流遵循等于j的profile_idc所指示的简档。
[0512]
sps_num_attribute_sets指示比特流中的编码属性的数量。sps_num_attribute_sets的值可在从0至63的范围内。
[0513]
attribute_dimension[i]指示第i属性的分量的数量。
[0514]
attribute_instance_id[i]指示第i属性的实例标识符。
[0515]
图24示出根据实施方式的属性参数集。
[0516]
图24示出如图22所示的根据实施方式的比特流中所包含的序列参数集。图24中的元数据、参数或信令信息可由图1中的发送装置10000、图1中的点云视频编码器10002、图1中的接收装置10004、图1中的点云视频解码器10006、图2中的编码20001、图2中的解码20003、图4中的编码过程、图11中的解码过程、图12中的发送装置、图13中的接收装置、图14中的xr装置1430、图20中的编码器、图21中的解码器等生成、发送和接收。
[0517]
aps_attr_parameter_set_id提供aps的标识符以供其它句法元素参考。aps_attr_parameter_set_id的值可在0至15(含)的范围内。
[0518]
aps_seq_parameter_set_id为活动sps指定sps_seq_parameter_set_id的值。aps_seq_parameter_set_id的值可在0至15(含)的范围内。
[0519]
如果attr_coding_type等于0或2,则提升指示信息(islifting)为1。否则,islifting为0。
[0520]
根据提升指示信息如下用信号通知提升相关信令信息。
[0521]
lifting_num_pred_nearest_neighbours指定要用于预测的最近邻居的最大数
量。lifting_num_pred_nearest_neighbours的值可在1至xx的范围内。
[0522]
lifting_max_num_direct_predictors指定要用于直接预测的预测器的最大数量。lifting_max_num_direct_predictors的值可在0至lifting_num_pred_nearest_neighbours的范围内。变量maxnumpredictors的值可如下用于解码过程:maxnumpredictors=lifting_max_num_direct_predicots+1。
[0523]
对于根据实施方式的spatial_scalability_attribute_octree_level、lod_generation_direction、sampling_select_type、sampling_isolated_node_min_number_of_points、sampling_isolated_node_merge_flag、sampling_isolated_node_max_merge_range和sampling_select_idx,参考图23的描述。
[0524]
图25示出根据实施方式的拼块参数集。
[0525]
图25示出如图22所示的根据实施方式的比特流中所包含的序列参数集。图25中的元数据、参数或信令信息可由图1中的发送装置10000、图1中的点云视频编码器10002、图1中的接收装置10004、图1中的点云视频解码器10006、图2中的编码20001、图2中的解码20003、图4中的编码过程、图11中的解码过程、图12中的发送装置、图13中的接收装置、图14中的xr装置1430、图20中的编码器、图21中的解码器等生成、发送和接收。
[0526]
根据实施方式的发送装置或编码器可通过将用于性质编码/解码的空间可伸缩性的性质点配置相关信息添加到拼块参数集来用信号通知根据实施方式的接收装置或解码器。
[0527]
num_tiles指定为比特流用信号通知的拼块的数量。当不存在时,num_tiles被推断为0。
[0528]
tile_bounding_box_offset_x[i]指示在笛卡尔坐标中第i拼块的x偏移。当不存在时,tile_bounding_box_offset_x[0]的值被推断为sps_bounding_box_offset_x。
[0529]
tile_bounding_box_offset_y[i]指示在笛卡尔坐标中第i拼块的y偏移。当不存在时,tile_bounding_box_offset_y[0]的值被推断为sps_bounding_box_offset_y。
[0530]
对于根据实施方式的spatial_scalability_attribute_octree_level、lod_generation_direction、sampling_select_type、sampling_isolated_node_min_number_of_points、sampling_isolated_node_merge_flag、sampling_isolated_node_max_merge_range和sampling_select_idx,参考图23的描述。
[0531]
图26示出根据实施方式的属性切片头。
[0532]
图26示出如图22所示的根据实施方式的比特流中所包含的序列参数集。图26中的元数据、参数或信令信息可由图1中的发送装置10000、图1中的点云视频编码器10002、图1中的接收装置10004、图1中的点云视频解码器10006、图2中的编码20001、图2中的解码20003、图4中的编码过程、图11中的解码过程、图12中的发送装置、图13中的接收装置、图14中的xr装置1430、图20中的编码器、图21中的解码器等生成、发送和接收。
[0533]
根据实施方式的发送装置或编码器可将用于属性编码/解码过程中的空间可伸缩性功能的属性点配置相关信息添加到属性切片头并用信号通知其。
[0534]
ash_attr_parameter_set_id指定活动aps的aps_attr_parameter_set_id的值。
[0535]
ash_attr_sps_attr_idx指定活动sps中的属性集。abh_attr_sps_attr_idx的值应在0至活动sps中的sps_num_attribute_sets的范围内。
[0536]
ash_attr_geom_slice_id指定活动几何切片头的gsh_slice_id的值。
[0537]
根据上述实施方式的pcc编码方法、pcc解码方法和信令方法可提供以下效果。
[0538]
空间可伸缩性是当点云数据密集时使用较窄带宽(例如,缩略图)或者发送和处理较低分辨率点云以减少解码器侧计算量的功能。
[0539]
实施方式提供了一种通过基于八叉树改变针对各个lod的采样点的方案来改进属性压缩效率的方法,以便于用于3d点云数据压缩的基于几何的点云压缩(g-pcc)的编码器/解码器提供空间可伸缩性功能,使得各个lod的最合适的点被配置为节点。
[0540]
所提出的通过莫顿码为各个八叉树节点重组点的方法可通过减少构成八叉树的编码/解码的计算量来减少编码/解码执行时间。
[0541]
考虑到基于通过所提出的各个节点的采样方案为空间可伸缩性应用的父节点的边界框的中心位置值的距离权重,如本文所提出的,可选择靠近中心位置值的点或具有中间索引的点以减小距离权重的误差值以增强属性压缩效率。
[0542]
因此,实施方式可提供一种属性压缩方法以用于提供基于几何的点云压缩(g-pcc)的编码器/解码器的空间可伸缩性功能以用于压缩3d点云数据并且可增加属性压缩效率。
[0543]
通过提供基于八叉树而改变各个lod的点采样技术的方法,根据实施方式的pcc编码器和/或pcc解码器可具有空间可伸缩性效果。
[0544]
接下来,将描述根据实施方式的用于支持g-pcc的编码器/解码器的空间可伸缩性以用于压缩3d点云数据的几何/属性压缩方法。
[0545]
实施方式提出了一种改变基于八叉树设定几何点位置值的方法和各个lod的点采样方法以在g-pcc的属性编码/解码过程中提供空间可伸缩性功能的方法。
[0546]
根据实施方式的方法包括以下内容。
[0547]
提出了1)在部分恢复中计算几何位置以用于支持空间可伸缩性的方法、2)为各个节点采样参考点的方法以及3)用于支持上述方法的信令方法。
[0548]
参照图15,实施方式涉及一种压缩属性以支持g-pcc的空间可伸缩性以用于3d点云数据压缩的方法。当点云数据密集时,可能需要使用较窄带宽(例如,缩略图)或发送和处理较低分辨率点云以降低解码器侧计算复杂度的功能。此功能被称为空间可伸缩性。
[0549]
通过仅对直至通过调节八叉树的深度级别而选择的深度级别的占用比特进行编码或解码的过程,根据实施方式的发送/接收方法/装置可提供空间可伸缩性功能。
[0550]
图27示出根据实施方式的属性编码/解码。
[0551]
图27示出设定几何位置以用于提供如图15所示的空间可伸缩性功能的方法。
[0552]
图27中的方法可由图20中的编码器、图21中的解码器和/或与之对应的根据实施方式的发送/接收装置执行。
[0553]
为了即使对于属性编码/解码也提供空间可伸缩性功能,可能需要修改并应用八叉树结构。可能需要改变从八叉树的所选深度级别开始生成lod的方法、计算邻居节点的方法和计算权重的方法以在属性编码/解码中提供空间可伸缩性。
[0554]
实施方式提出了在几何部分解码中设定几何位置值。实施方式还提供了基于八叉树改变针对各个lod的采样点的技术并为各个lod配置最合适的点作为节点以在属性编码/解码中提供空间可伸缩性,以改进属性压缩效率。
[0555]
实施方式提供了一种基于八叉树改变各个lod的点采样类型以在g-pcc的属性编码/解码过程中提供空间可伸缩性功能的方法。
[0556]
实施方式可设定八叉树的代表性位置值以用于在几何解码中提供空间可伸缩性功能。为了为属性编码/解码提供空间可伸缩性功能,可在几何编码/解码中应用八叉树结构。实施方式提供了一种从八叉树的所选深度级别开始重组属于节点的点的方法以及针对各个lod采样点的方法。
[0557]
重组点的方法和针对各个lod采样点的方法在pcc解码器/编码器的pcc属性编码/解码中执行,并且可在属性编码/解码过程中使用预测变换技术或提升变换技术时应用。
[0558]
s270000几何构造
[0559]
在对点云中的点进行解码时,有必要执行解码仅直至特定八叉树深度并且恢复点的位置值。支持该操作的功能可以是空间可伸缩性。在八叉树的中间深度部分地执行解码时,最接近各个八叉树节点的边界框的中心位置的节点可被采样(选择)作为表示各个八叉树节点的点的位置。在这种情况下,当属性被部分地解码时,可基于设定为节点的中间位置的位置来实现莫顿序、lod配置和邻居节点搜索。
[0560]
s270010基于莫顿序的排序
[0561]
点云中的点可基于x、y和z位置值改变为莫顿码,并且可基于莫顿码值来排序。
[0562]
s270020设定属性部分编码/解码区域
[0563]
在属性编码/解码中,可设定八叉树的深度级别,并且可从设定的八叉树深度级别开始构造和编码/解码要应用属性编码的点,如几何编码/解码中一样(参见图17)。
[0564]
s270030使用莫顿码来重组属于节点的点
[0565]
为各个八叉树节点重组按莫顿码排序的点的方法可采用参照图16描述的以下伪代码(式)。
[0566]
nodesizelog2:八叉树深度级别
[0567]
px_mortoncode:px的莫顿码
[0568]
end_range_mc:节点的莫顿码范围
[0569]
int maxnumofpoints=pow(8,nodesizelog2+1);
[0570]
for(int i=1;i《indexcount;++i){
[0571]
if(pi_mortoncode《end_range_mc){
[0572]

[0573]
}else{
[0574]
end_range_mc=pi_mortoncode+
[0575]
(maxnumofpoints-(pi_mortoncode%maxnumofpoints));
[0576]
}
[0577]
}
[0578]
节点的莫顿码范围可基于点的莫顿码、八叉树深度级别和点的最大数量来计算。
[0579]
如图18所示,可从点的莫顿码估计end_range_mc。当下一点的莫顿码值在end_range_mc的范围内时,点可属于同一节点。当下一点的莫顿码值在该范围之外时,这可意味着节点已改变为新节点。在这种情况下,end_range_mc可基于点的莫顿码来估计并应用于后续点。这样,属于八叉树节点的点可从以莫顿码排序的点重组。
[0580]
s270030八叉树节点处的lod采样
[0581]
可通过从属于节点(包括合并节点)的点当中选择点来执行采样。属性压缩可能受到所选择的点影响。选择最佳参考点并重组为参考区域(保留列表),并且从参考区域构造邻居节点的集合。因此,压缩效率可增加。
[0582]
当几何的八叉树节点的位置改变为中心点时,可通过选择靠近中心位置值的位置作为在属性编码中选择的点来减小父节点处生成的误差。因此,八叉树节点处的lod采样可采用选择靠近父节点的中心的位置的方法。
[0583]
可存在许多方式来寻找靠近中心的位置。可计算位置以正确地寻找位置。为了减少寻找位置所需的时间,可参考八叉树节点上的位置。可使用下面给出的各种选择方案。将参照图28至图30描述采样:1)在lod处选择第一节点,然后在下一连续上lod处选择最后节点(参见图28至图30);2)选择靠近八叉树父节点区域的中心的点;3)选择具有中间索引的点;和/或4)其组合。
[0584]
根据实施方式的接收点云数据的方法可包括:接收包含点云数据的比特流;以及对点云数据进行解码。
[0585]
根据实施方式的点云数据可包括几何数据和属性数据。
[0586]
根据实施方式的点云数据解码可包括对几何数据进行解码和对属性数据进行解码。
[0587]
根据实施方式的几何数据解码可包括:为几何数据生成八叉树结构;以及采样(选择)表示包括在八叉树结构中的各个节点的点的位置作为最靠近各个节点的边界框的中心位置的节点。
[0588]
根据实施方式,属性数据解码可包括:基于几何数据和属性数据将点云数据中的点的位置值改变为莫顿码;基于莫顿码对点进行排序;以及从包括点的八叉树结构的深度级别开始对点进行解码。
[0589]
根据实施方式的属性数据解码还可包括:基于莫顿码和莫顿码的范围值来重组属于各个节点的点。
[0590]
根据实施方式,属性数据解码可包括:为几何数据生成八叉树结构;基于八叉树结构来生成细节级别(lod);以及从lod采样(选择)属于lod的节点。即,对包括在节点中的点进行采样。
[0591]
图28示出根据实施方式的边界框和节点。
[0592]
图28表示图27中的s270010。
[0593]
边界框中可包括八个节点。当按莫顿码的顺序排序时,具有值0至7作为莫顿码值的点可依次布置。
[0594]
图29示出根据实施方式的各个节点与位置之间的匹配。
[0595]
图29示出当点如图28中按莫顿码的顺序排序时使各个节点与位置匹配的操作。图29表示图27中的s270030。
[0596]
参考节点(或保留节点)表示在采样期间选择的节点(点)。例如,图29中的节点(或点)29000、29040和29050以及图30中的节点(或点)可以是参考节点。
[0597]
如图中所示,当选择第一节点29000(lod n)时,最靠近第一节点的父节点29010(lod n-1)的边界框29020的中心位置29030的节点可为最后节点29040。当在lod n-1选择
最后节点29040时,lod n-2处最靠近其父节点的中心位置的节点可为第一节点29050。
[0598]
因此,在lod采样中,当lod为偶数时,可选择第一节点,当lod为奇数时,可选择最后节点。另选地,当lod为偶数时,可选择最后节点,当lod为奇数时,可选择第一节点。编码器可将关于上述选择方案的配置信息用信号通知给解码器。
[0599]
即,根据实施方式的编码器和/或解码器提供了各种方案来在八叉树节点处执行lod采样时在子节点中选择最靠近父节点上的中心位置的节点。实施方式包括使用偶数索引和奇数索引的方案或者选择最靠近边界框的中心位置的节点的方案。例如,可基于点的距离、密度和属性选择最靠近中心位置的节点。另外,在选择靠近中心位置的点时,如果所选点属于2
×2×
2节点,则可对靠近中心的节点进行采样。否则,可对奇数/偶数节点(即,第一/最后节点)进行采样。
[0600]
图30示出根据实施方式的在八叉树结构中选择参考节点。
[0601]
图30示出八叉树结构中的图28和图29的lod采样(图27中的s270030)。
[0602]
在根据实施方式的八叉树结构中,节点可从根节点至叶节点依次分布,并且属于节点的下一节点可按莫顿码的顺序排序。八叉树结构可包括n个lod,并且根据实施方式的发送/接收方法/装置可从八叉树结构中的特定深度级别开始执行部分编码和部分解码。
[0603]
在八叉树结构中,属于lod n的点按莫顿码的顺序排序,并且参考节点是在各个lod处采样的节点。当lod n(其中n可被称为lod的索引)是偶数lod时,可从点当中选择第一点。当lod n-1是奇数lod时,可从点当中选择最后点。随着操作在八叉树结构中从特定节点至父节点进行,可按第一节点、最后节点、第一节点、最后节点等的顺序依次选择节点。该方案可增加采样的增益。
[0604]
例如,对于属于lod n的点30000,当lod n被假设为偶数lod时,属于该节点的按莫顿码的顺序排序的点当中的第一节点30010可被选择(采样)作为各个父节点的参考节点(或保留节点)30010。
[0605]
对于属于lod n-1的点30020,n-1可被视为奇数,并且属于该节点的按莫顿码的顺序排序的点当中的最后节点30030可被选择(采样)作为各个父节点的参考节点。
[0606]
根据实施方式,可这样执行采样:在lod采样开始的级别对第一节点进行采样,在下一级别对最后节点进行采样,在下一级别对第一节点进行采样。另选地,可这样执行采样:在lod采样开始的级别对最后节点进行采样,在下一级别对第一节点进行采样,在下一级别对最后节点进行采样。
[0607]
该操作可如下表示为伪代码。
[0608]
endindex=0
[0609]
assignedpointcount=0
[0610]
for(lod=mingeomnodesizelog2;unprocessedpointcount》0;lod++){
[0611]
startindex=assignedpointcount
[0612]
nonassignedpointcount=0
[0613]
samplingfromlastflag=lod&1//如果lod为偶数,则最后比特位被指派0,如果lod为奇数,则指派1。//
[0614]
for(i=0;i《unprocessedpointcount;i++){
[0615]
currvoxelindex=mcodeunsorted[unprocessedpointindexes[i]]》》(3
×
(lod+
1))
[0616]
if(samplingfromlastflag==0){
[0617]
if(i==0)//这意味着lod为偶数,并且采样第一点作为参考节点。
[0618]
nonassignedpointindexes[nonassignedpointcount++]=unprocessedpointindexes[i]
[0619]
else{
[0620]
prevvoxelindex=mcodeunsorted[unprocessedpointindexes[i-1]]》》(3
×
(lod+1))
[0621]
if(currvoxelindex》prevvoxelindex)
[0622]
nonassignedpointindexes[nonassignedpointcount++]=unprocessedpointindexes[i]
[0623]
(这里,采样的点被指派给nonassignedpointsindexes。非采样的点被指派给assignedpointindexes。通过分别设定nonassignedpointsindexes和assignedpointindexes,根据实施方式的方法/装置可重组lod。)
[0624]
else
[0625]
assignedpointindexes[assignedpointcount++]=unprocessedpointindexes[i]
[0626]
}
[0627]
}else{//这意味着lod为偶数,并且采样最后点作为参考节点。
[0628]
if(i==(unprocessedpointcount

1))
[0629]
nonassignedpointindexes[nonassignedpointcount++]=unprocessedpointindexes[i]
[0630]
else{
[0631]
nextvoxelindex=mcodeunsorted[unprocessedpointindexes[i+1]]》》(3
×
(lod+1))
[0632]
if(currvoxelindex《nextvoxelindex)
[0633]
nonassignedpointindexes[nonassignedpointcount++]=unprocessedpointindexes[i]
[0634]
(这里,nonassignedpointsindexes表示采样的点。)
[0635]
else
[0636]
assignedpointindexes[assignedpointcount++]=unprocessedpointindexes[i]
[0637]
}
[0638]
}
[0639]
}
[0640]
endindex=assignedpointcount
[0641]
if(startindex!=endindex){
[0642]
numofpointinskipped=pointnuminslice

pointcount
[0643]
if((endindex

startindex)》(startindex+numofpointinskipped)){
[0644]
for(loop=0;loop《lod-mingeomnodesizelog2;loop++){
[0645]
computenearestneighbours(
[0646]
pointcount-unprocessedpointcountperlevelofdetail[loop],
[0647]
pointcount-unprocessedpointcountperlevelofdetail[loop+1],
[0648]
loop+mingeomnodesizelog2,assignedpointindexes,
[0649]
mcodeunsorted,nonassignedpointcount,
[0650]
nonassignedpointindexes)
[0651]
}
[0652]
}
[0653]
}
[0654]
computenearestneighbours(
[0655]
startindex,endindex,
[0656]
lod,assignedpointindexes,
[0657]
mcodeunsorted,nonassignedpointcount,
[0658]
nonassignedpointindexes)
[0659]
unprocessedpointcountperlevelofdetail[lod+1]=nonassignedpointcount
[0660]
unprocessedpointcount=nonassignedpointcount
[0661]
unprocessedpointindexes=nonassignedpointindexes
[0662]
}
[0663]
然后,应用以下过程:
[0664]
for(i=0;i《pointcount;i++)
[0665]
indexes[pointcount-1

i]=assignedpointindexes[i]
[0666]
for(lod=0;lod《leveldetailcount;lod++)
[0667]
pointcountperlevelofdetail[lod]=
[0668]
unprocessedpointcountperlevelofdetail[leveldetailcount-1-lod]
[0669]
//samplingfromlastflag的值指示在起始lod处是从第一节点(或称为左)还是从最后节点(或称为右)开始采样可用信号通知。
[0670]
根据实施方式,如果包含在比特流中的诸如提升lod采样相关标志(lifting_lod_regular_sampling_enabled_flag)的信令信息指示lod采样方案,则lod可基于几何数据根据八叉树节点来重组(如果lifting_scalability_enabled_flag等于1,则细节级别生成过程基于几何根据八叉树节点将点重组为细化级别集合(r_l)_(l=0

l-1)。根据采样相关标志(samplingfromlastflag)的值,对节点中的第一点(即,samplingfromlastflag等于0)或节点中的最后点(即,samplingfromlastflag等于1)进行采样)。
[0671]
接下来,将描述根据实施方式的选择靠近八叉树父节点区域的中心的点的方案和选择具有中间索引的点的方案。
[0672]
选择靠近八叉树父节点区域的中心的点:
[0673]
根据实施方式的发送/接收方法/装置可在从属于节点(包括合并节点)的点当中选择点时选择最靠近父节点的边界框的中心位置的点。选择更靠近父节点的中心位置的点可减小选择邻居点和计算邻居点权重时的误差。
[0674]
在选择邻居点时,计算点之间的距离,并且可选择距离更近的点作为邻居点。为了提供空间可伸缩性功能,点的位置值可被替换为点所属的节点的中心位置的值(节点可根据lod的级别而变化),然后可计算距离。因此,为了寻找点pi的邻居点,pi的位置值可根据lodl改变为父节点的中心位置,并且邻居点候选列表(保留列表)r中的点ri的位置也根据lodl而改变。然后,可计算点的距离。换言之,可计算同一深度级别的节点的中心位置之间的距离,从而将邻居节点设定为邻居点。从这样计算的距离,可获得邻居点的权重,1/距离=pi。由于通过将点的位置改变为父节点的中心位置来计算距离,所以计算包含误差。随着节点的深度级别降低,即,节点的边界框变大,误差可增加。
[0675]
为了减小误差,可选择靠近父节点区域的中心的点作为参考点。误差可根据参考点的位置值而减小,并且减小的误差可对压缩效率有好的影响。
[0676]
选择具有中间索引的点:
[0677]
在从属于节点(包括合并节点)的点当中选择点时,根据实施方式的发送/接收方法/装置可从属于节点(包括合并节点)的点当中选择具有中间索引的点。由于中间索引的节点靠近父节点的边界框的中心位置的概率高(在许多情况下),并且通过中间索引选择点不需要很多附加计算,所以以少量计算寻找到靠近中心位置的点的概率可较高。
[0678]
根据实施方式的接收点云数据的方法可包括基于lod采样(选择)属于lod的节点中的第一点或最后点。
[0679]
图31示出根据实施方式的pcc数据编码器。
[0680]
图31中的编码器对应于图20中的点云数据编码器和/或与之对应的根据实施方式的装置。对于图31中的各个元件的操作,参考图20的描述。
[0681]
lod配置单元31000可根据实施方式执行lod配置和采样。lod配置单元31000可使用莫顿码来重组属于节点的点,合并孤立节点,在八叉树节点中根据实施方式执行lod采样,并用信号通知相关信息。
[0682]
lod配置单元31000可设定八叉树的深度级别以在属性编码/解码中支持空间可伸缩性,并且从设定的八叉树深度级别开始配置和编码/解码要应用属性编码的点(参见图17和图30)。
[0683]
根据实施方式的发送装置或编码器可将八叉树深度级别作为信令信息用信号通知给根据实施方式的接收装置或解码器,并且八叉树深度级别可根据其用途或解码器的计算性能而改变。
[0684]
lod构造单元31000可通过在按莫顿码排序的点处计算各个八叉树节点的莫顿码范围来针对各个八叉树节点执行点重组(参见图18和图27)。
[0685]
当lod组件31000从属于节点的点当中选择点时,可将操作的选择方案用信号通知给解码器。选择方案可包括在偶数lod选择第一节点并且在奇数lod选择最后节点的方案、选择靠近八叉树父节点区域的中心的点的方案以及选择具有中间索引的点的方案(参见图28至图30)。
[0686]
在lod选择第一节点,然后在下一连续上lod选择最后节点的方案中,可确定在偶数lod是选择第一节点还是最后节点。可将该确定用信号通知给解码器(参见图28至图30)。
[0687]
残差属性信息量化处理器31010可生成属性数据的预测值,生成预测值与属性值之间的残差值,并且将残差值量化。
[0688]
当预测模式和残差信息分离标志为真时,残差属性信息量化处理器31010可计算根据预测模式的预测值与点的值之间的残差,并且将其量化值与预测模式一起编码。
[0689]
当预测模式和残差信息分离标志为假时,残差属性信息量化处理器31010可计算根据预测模式的预测值与点值之间的残差,并且仅对其量化值进行编码。
[0690]
图32示出根据实施方式的pcc数据解码器。
[0691]
图32中的解码器对应于图21中的点云数据解码器和/或与之对应的根据实施方式的装置。对于图32中的各个元件的操作,参考图21的描述。
[0692]
八叉树重构器32000从所接收的几何信息比特流(几何数据)重构八叉树。对于空间可伸缩性功能,八叉树重构器32000可仅在八叉树的特定级别构造几何信息。在这种情况下,位置值可改变为边界框的中心的值。
[0693]
八叉树重构器32000可从恢复的八叉树深度级别开始构造和解码要应用属性解码的点以用于部分几何解码。
[0694]
lod配置单元32010可使用莫顿码来重组属于节点的点,合并孤立节点,并且在八叉树节点中根据实施方式执行lod采样。
[0695]
lod配置单元32010可从为部分属性解码恢复的八叉树深度级别开始构造和解码要应用属性解码的点。
[0696]
lod配置单元32010可通过从按莫顿码排序的点计算各个八叉树节点的莫顿码范围来针对各个八叉树节点执行点重组。
[0697]
lod配置单元32010可基于选择恢复的点的方案从属于节点(包括合并节点)的点当中选择一个点。该方案可包括在lod处选择第一节点,然后在下一连续上lod处选择最后节点的方案、选择靠近八叉树父节点区域的中心位置的点的方案以及选择具有中间索引的点的方案。
[0698]
在lod处选择第一节点,然后在下一连续上lod处选择最后节点的方案中,lod配置单元32010可通过根据恢复的选择类型选择第一节点和最后节点来配置lod。
[0699]
图33至图36示出图22中的点云数据的比特流中所包含的信令信息的详细句法。为了支持根据实施方式的操作,根据实施方式的发送装置和接收装置可提供如下所述的信令方案。
[0700]
根据实施方式的发送装置和接收装置可通过将其添加到sps(图33)或aps(图34)来用信号通知与空间可伸缩性功能的属性点的配置有关的信息。
[0701]
根据实施方式的发送装置和接收装置可通过将其添加到tps(图35)或各个切片的attr(图36)来用信号通知与空间可伸缩性功能的属性点的配置有关的信息。由于根据实施方式的信令信息,可高效地用信号通知用于支持空间可伸缩性功能的几何/属性。
[0702]
图33示出根据实施方式的序列参数集(sps)。
[0703]
图33示出如图22所示的根据实施方式的比特流中所包含的序列参数集。图33中的元数据、参数或信令信息可由图1中的发送装置10000、图1中的点云视频编码器10002、图1中的接收装置10004、图1中的点云视频解码器10006、图2中的编码20001、图2中的解码20003、图4中的编码过程、图11中的解码过程、图12中的发送装置、图13中的接收装置、图14中的xr装置1430、图20中的编码器、图21中的解码器等生成、发送和接收。
[0704]
与空间可伸缩性功能的属性点的配置有关的信息可被添加到序列参数集并用信
号通知。
[0705]
spatial_scalability_octree_level指示部分恢复的八叉树级别。
[0706]
spatial_scalability_attribute_octree_level指示部分恢复的八叉树级别。即,其指示应用于属性的部分八叉树级别。属性可具有与几何不同的恢复的八叉树级别。
[0707]
lod_generation_direction指示lod生成方向。
[0708]
例如,当lod_generation_direction等于0时,这指示从lod0至lodn(即,在八叉树的情况下,从根节点至叶节点)生成lod。当lod_generation_direction等于1时,这指示从lodn至lod0(即,在八叉树的情况下,从叶节点至根节点)生成lod。指示方向的整数值可根据实施方式而改变。
[0709]
sampling_select_type指示从属于节点(包括合并节点)的点当中选择一个点时的点选择类型。例如,当sampling_select_type等于1时,这指示在偶数lod选择第一节点并且在奇数lod选择最后节点。当sampling_select_type等于2时,这指示选择靠近八叉树父节点区域的中心位置的点。当sampling_select_type等于3时,这指示选择具有中间索引的点。指示类型的整数值可根据实施方式而改变。
[0710]
sampling_first_node_flag指示在起始lod是选择第一节点还是最后节点。
[0711]
当sampling_select_type==1时,可提供sampling_first_node_flag作为信令信息。
[0712]
对于其它字段,参考图23的描述。
[0713]
图34示出根据实施方式的属性参数集(aps)。
[0714]
图34示出如图22所示的根据实施方式的比特流中所包含的序列参数集。图34中的元数据、参数或信令信息可由图1中的发送装置10000、图1中的点云视频编码器10002、图1中的接收装置10004、图1中的点云视频解码器10006、图2中的编码20001、图2中的解码20003、图4中的编码过程、图11中的解码过程、图12中的发送装置、图13中的接收装置、图14中的xr装置1430、图20中的编码器、图21中的解码器等生成、发送和接收。
[0715]
与空间可伸缩性功能的属性点的配置有关的信息可被添加到属性参数集并用信号通知。
[0716]
对于spatial_scalability_attribute_octree_level、lod_generation_direction和sampling_select_type、sampling_first_node_flag,参考图33的描述。
[0717]
对于其它字段,参考图24的描述。
[0718]
图35示出根据实施方式的拼块参数集(tps)。
[0719]
图35示出如图22所示的根据实施方式的比特流中所包含的序列参数集。图35中的元数据、参数或信令信息可由图1中的发送装置10000、图1中的点云视频编码器10002、图1中的接收装置10004、图1中的点云视频解码器10006、图2中的编码20001、图2中的解码20003、图4中的编码过程、图11中的解码过程、图12中的发送装置、图13中的接收装置、图14中的xr装置1430、图20中的编码器、图21中的解码器等生成、发送和接收。
[0720]
与空间可伸缩性功能的属性点的配置有关的信息可被添加到拼块参数集并用信号通知。
[0721]
对于spatial_scalability_attribute_octree_level、lod_generation_direction和sampling_select_type、sampling_first_node_flag,参考图33的描述。
[0722]
对于其它字段,参考图25的描述。
[0723]
图36示出根据实施方式的属性切片头(ash)。
[0724]
图36示出如图22所示的根据实施方式的比特流中所包含的序列参数集。图36中的元数据、参数或信令信息可由图1中的发送装置10000、图1中的点云视频编码器10002、图1中的接收装置10004、图1中的点云视频解码器10006、图2中的编码20001、图2中的解码20003、图4中的编码过程、图11中的解码过程、图12中的发送装置、图13中的接收装置、图14中的xr装置1430、图20中的编码器、图21中的解码器等生成、发送和接收。
[0725]
与空间可伸缩性功能的属性点的配置有关的信息可被添加到属性切片头并用信号通知。
[0726]
对于spatial_scalability_attribute_octree_level、lod_generation_direction和sampling_select_type、sampling_first_node_flag,参考图33的描述。
[0727]
对于其它字段,参考图26的描述。
[0728]
图37示出根据实施方式的发送点云数据的方法。
[0729]
s37000:根据实施方式的发送点云数据的方法可包括对点云数据进行编码。根据实施方式的编码操作可与图1中的发送装置1000、图1中的点云视频编码器10002、图2中的编码20001、图4中的编码器、图12中的编码器、图14中的xr装置1430、与图15中的部分解码对应的部分编码、图16至图19中的编码过程、图20中的编码器、图22至图26中的点云数据比特流处理、图27至图30中的编码过程、图31中的编码器、图33至图36的点云数据比特流处理的操作对应或组合。
[0730]
s37010:根据实施方式的发送点云数据的方法还可包括发送包含点云数据的比特流。根据实施方式的发送操作可与图1中的发送器10003、图2中的传输20002和图12中的发送处理器12012的操作对应或组合。
[0731]
图38示出根据实施方式的接收点云数据的方法。
[0732]
s38000:根据实施方式的接收点云数据的方法可包括接收包含点云数据的比特流。根据实施方式的接收操作可与图1中的接收器10007、图2中的传输20002和图13中的接收器13000的操作对应或组合。
[0733]
s38010:根据实施方式的接收点云数据的方法还可包括对点云数据进行解码。根据实施方式的解码操作可与图1中的点云视频解码器10006、图2中的解码20003、图10中的解码器、图11中的解码器、图13中的解码器、图14中的xr装置1430、图15中的部分解码、图16至图19中的解码过程、图21中的解码器、图22至图26中的点云数据比特流处理、解图27至图30中的解码过程、图32中的解码器、图33至图36中的点云数据比特流处理等的操作对应或组合。
[0734]
根据上述实施方式的pcc编码方法、pcc解码方法和信令方法可提供以下效果。
[0735]
空间可伸缩性是当点云数据密集时使用较窄带宽(例如,缩略图)或者发送和处理较低分辨率点云以减少解码器侧计算量的功能。
[0736]
实施方式提供了一种通过改变基于八叉树恢复各个节点的边界框的中心位置值作为点云的位置值并针对各个lod采样点的方案来改进属性压缩效率的方法,以便于用于3d点云数据压缩的基于几何的点云压缩(g-pcc)的编码器/解码器提供空间可伸缩性功能,使得各个lod的最合适的点被配置为节点。
[0737]
所提出的通过莫顿码为各个八叉树节点重组点的方法可通过减少构成八叉树的编码/解码的计算量来减少编码/解码执行时间。
[0738]
考虑到基于通过所提出的各个节点的采样方案为空间可伸缩性应用的父节点的边界框的中心位置值的距离权重,如本文所提出的,可选择靠近中心位置值的点或具有中间索引的点以减小距离权重的误差值以增强属性压缩效率。
[0739]
因此,实施方式可提供一种属性压缩方法以用于提供基于几何的点云压缩(g-pcc)的编码器/解码器的空间可伸缩性功能以用于压缩3d点云数据并且可增加属性压缩效率。
[0740]
通过提供基于八叉树将几何的点位置恢复为节点的中心位置值的方案并针对各个lod改变点采样方案,根据实施方式的pcc编码器和/或pcc解码器可提供空间可伸缩性功能。
[0741]
通过提出在用于支持空间可伸缩性的部分恢复中计算几何位置的方法、为各个节点采样参考点的方法以及支持上述方法的信令方法,可提供g-pcc的属性编码/解码上的空间可伸缩性效果。
[0742]
在本文献中,“a/b”被解释为a和/或b。
[0743]
已从方法和/或装置的角度描述了实施方式,可应用方法和装置的描述以彼此补充。
[0744]
尽管为了简单起见单独描述了附图,但是可通过将各个图中所示的实施方式合并来设计新的实施方式。根据本领域技术人员的需要设计可由计算机读取的记录有用于执行上述实施方式的程序的记录介质也落在所附权利要求及其等同物的范围内。根据实施方式的装置和方法可不限于上述实施方式的配置和方法。可通过选择性地组合所有或一些实施方式来对实施方式进行各种修改。尽管参照附图描述了优选实施方式,但本领域技术人员将理解,在不脱离所附权利要求中描述的本公开的精神或范围的情况下,可对实施方式进行各种修改和变化。这些修改不应从实施方式的技术思想或观点单独地理解。
[0745]
实施方式的装置的各种元件可由硬件、软件、固件或其组合实现。实施方式中的各种元件可由单个芯片(例如,单个硬件电路)实现。根据实施方式,根据实施方式的组件可分别被实现为单独的芯片。根据实施方式,根据实施方式的装置的至少一个或更多个组件可包括能够执行一个或更多个程序的一个或更多个处理器。一个或更多个程序可执行根据实施方式的任一个或更多个操作/方法或者包括用于执行其的指令。用于执行根据实施方式的装置的方法/操作的可执行指令可被存储在被配置为由一个或更多个处理器执行的非暂时性crm或其它计算机程序产品中,或者可被存储在被配置为由一个或更多个处理器执行的暂时性crm或其它计算机程序产品中。另外,根据实施方式的存储器可用作不仅涵盖易失性存储器(例如,ram),而且涵盖非易失性存储器、闪存和prom的概念。另外,也可按载波(例如,经由互联网的传输)的形式实现。另外,处理器可读记录介质可分布到经由网络连接的计算机系统,使得处理器可读代码可按分布式方式存储和执行。
[0746]
在本说明书中,术语“/”和“,”应该被解释为指示“和/或”。例如,表达“a/b”可意指“a和/或b”。此外,“a、b”可意指“a和/或b”。此外,“a/b/c”可意指“a、b和/或c中的至少一个”。另外,“a/b/c”可意指“a、b和/或c中的至少一个”。此外,在本说明书中,术语“或”应该被解释为指示“和/或”。例如,表达“a或b”可意指1)仅a、2)仅b或3)a和b二者。换言之,本文
献中使用的术语“或”应该被解释为指示“另外地或另选地”。
[0747]
诸如第一和第二的术语可用于描述实施方式的各种元件。然而,根据实施方式的各种组件不应受上述术语限制。这些术语仅用于将一个元件与另一元件相区分。例如,第一用户输入信号可被称为第二用户输入信号。类似地,第二用户输入信号可被称为第一用户输入信号。这些术语的使用应该不脱离各种实施方式的范围来解释。第一用户输入信号和第二用户输入信号均是用户输入信号,但除非上下文清楚地另外规定,否则并不意指相同的用户输入信号。
[0748]
用于描述实施方式的术语是为了描述具体实施方式而使用的,并非旨在限制实施方式。如实施方式的描述和权利要求中使用的,除非上下文清楚地另外规定,否则单数形式包括复数个所指对象。表达“和/或”用于包括术语的所有可能组合。诸如“包括”或“具有”的术语旨在指示图形、数量、步骤、元件和/或组件的存在,应该理解为不排除另外存在图形、数量、步骤、元件和/或组件的可能性。如本文所使用的,诸如“如果”和“当”的条件表达不限于可选情况,旨在解释为当满足特定条件时执行相关操作,或者根据特定条件解释相关定义。
[0749]
本说明书中描述的根据实施方式的操作可由根据实施方式的包括存储器和/或处理器的发送/接收装置执行。存储器可存储程序以用于处理/控制根据实施方式的操作,并且处理器可控制本说明书中描述的各种操作。处理器可被称为控制器等。在实施方式中,操作可由固件、软件和/或其组合执行。固件、软件和/或其组合可被存储在处理器或存储器中。
[0750]
发明模式
[0751]
如上所述,在实现实施方式的最佳模式中描述了相关内容。
[0752]
工业实用性
[0753]
如上所述,实施方式可全部或部分地应用于点云数据发送/接收装置和系统。
[0754]
对于本领域技术人员而言将显而易见的是,可在实施方式的范围内对实施方式进行各种改变或修改。
[0755]
因此,实施方式旨在涵盖本公开的修改和变化,只要它们落在所附权利要求及其等同物的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1