点云数据处理设备和方法与流程

文档序号:28977196发布日期:2022-02-19 19:28阅读:279来源:国知局
点云数据处理设备和方法与流程

1.本公开提供一种用于提供点云内容以向用户提供诸如虚拟现实(vr)、增强现实(ar)、混合现实(mr)和自驾驶服务的各种服务的方法。


背景技术:

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


技术实现要素:

3.技术问题
4.实施方式提供了一种用于有效地处理点云数据的装置和方法。实施方式提供了一种用于解决延迟和编码/解码复杂度的点云数据处理方法和装置。
5.实施方式的技术范围不限于上述技术目的,可扩展至本领域技术人员基于本文所公开的整个内容可推断出的其他技术目的。
6.技术方案
7.为了实现这些目的和其他优点并且根据本公开的目的,在一些实施方式中,一种用于发送点云数据的方法可以包括:对包括几何信息和属性信息的点云数据进行编码,以及发送包括编码的点云数据的比特流。在一些实施方式中,几何信息表示点云数据的点的位置,并且属性信息表示点云数据的点的属性。
8.在一些实施方式中,一种处理点云数据的方法可以包括:接收包括点云数据的比特流。在一些实施方式中,点云数据包括几何信息和属性信息,其中几何信息表示点云数据的点的位置,并且属性信息表示点云数据的点的一个或多个属性。该点云处理方法可以包括解码点云数据。
9.在一些实施方式中,一种用于处理点云数据的方法可以包括接收包括点云数据的比特流并且解码点云数据。在一些实施方式中,点云数据包括几何信息和属性信息,其中几何信息表示点云数据的点的位置,并且属性信息指示点云数据的点的一个或多个属性。
10.在一些实施方式中,一种用于处理点云数据的装置可以包括被配置为接收包括点云数据的比特流的接收器和被配置为解码点云数据的解码器。在一些实施方式中,点云数据包括几何信息和属性信息,其中几何信息表示点云数据的点的位置,并且属性信息指示点云数据的点的一个或多个属性。
11.有益效果
12.根据实施方式的装置和方法可高效地处理点云数据。
13.根据实施方式的装置和方法可提供高质量点云服务。
14.根据实施方式的装置和方法可提供点云内容以用于提供诸如vr服务和自驾驶服
务的通用服务。
附图说明
15.附图被包括以提供本公开的进一步理解,并且被并入本技术中并构成本技术的一部分,附图示出本公开的实施方式并与描述一起用于说明本公开的原理。
16.为了更好地理解下面描述的各种实施方式,应该结合附图参考以下实施方式的描述。附图中:
17.图1示出根据实施方式的示例性点云内容提供系统。
18.图2是示出根据实施方式的点云内容提供操作的框图。
19.图3示出根据实施方式的捕获点云视频的示例性处理。
20.图4示出根据实施方式的示例性点云编码器。
21.图5示出根据实施方式的体素的示例。
22.图6示出根据实施方式的八叉树和占用代码的示例。
23.图7示出根据实施方式的邻居节点图案的示例。
24.图8示出根据实施方式的每个lod中的点配置的示例。
25.图9示出根据实施方式的每个lod中的点配置的示例。
26.图10示出根据实施方式的示例性点云解码器。
27.图11示出根据实施方式的示例性点云解码器。
28.图12示出根据实施方式的示例性发送装置。
29.图13示出根据实施方式的示例性接收装置。
30.图14示出根据实施方式的用于流传输基于g-pcc的点云数据的架构。
31.图15示出根据实施方式的示例性点云发送装置。
32.图16示出根据实施方式的示例性点云接收装置。
33.图17示出根据实施方式的操作上可与发送和接收点云数据的方法/装置连接的示例性结构。
34.图18是示出示例性点云编码器的框图。
35.图19是示出示例性几何信息编码器的框图。
36.图20示出根据实施方式的示例性属性信息编码器。
37.图21示出根据实施方式的示例性属性信息编码器。
38.图22示出根据实施方式的示例性属性信息预测器。
39.图23示出邻居点搜索范围的示例性设置。
40.图24示出根据实施方式的示例性邻居点搜索过程。
41.图25示出根据实施方式的示例性邻居点搜索过程。
42.图26示出点云压缩(pcc)比特流的示例性结构图。
43.图27示出根据实施方式的aps的示例性语法。
44.图28示出根据实施方式的tps的示例性语法。
45.图29示出根据实施方式的属性报头的示例性语法。
46.图30是示出示例性点云解码器的框图。
47.图31是示出几何信息解码器的示例的框图。
48.图32是示出示例性属性信息解码器的框图。
49.图33是根据实施方式的点云数据处理方法的示例性流程图;以及
50.图34是根据实施方式的点云数据处理方法的示例性流程图。
具体实施方式
51.现在将详细参考本公开的优选实施方式,其示例示出于附图中。下面将参照附图给出的详细描述旨在说明本公开的示例性实施方式,而非示出可以根据本公开实现的仅有实施方式。以下详细描述包括具体细节以便提供本公开的彻底理解。然而,对于本领域技术人员而言将显而易见的是,本公开可以在没有这些具体细节的情况下实践。
52.尽管本公开中使用的大多数术语选自本领域中广泛使用的通用术语,但是一些术语由申请人任意选择并且在以下描述中根据需要详细说明其含义。因此,本公开应该基于术语的预期含义而非其简单名称或含义来理解。
53.图1示出根据实施方式的示例性点云内容提供系统。
54.图1所示的点云内容提供系统可以包括发送装置10000和接收装置10004。发送装置10000和接收装置10004能够有线或无线通信以发送和接收点云数据。
55.根据实施方式的点云数据发送装置10000可以取得和处理点云视频(或点云内容)并将其发送。根据实施方式,发送装置10000可以包括固定站、基站收发器系统(bts)、网络、人工智能(ai)装置和/或系统、机器人、ar/vr/xr装置和/或服务器。根据实施方式,发送装置10000可以包括被配置为使用无线电接入技术(例如,5g新rat(nr)、长期演进(lte))与基站和/或其他无线装置执行通信的装置、机器人、车辆、ar/vr/xr装置、便携式装置、家用电器、物联网(iot)装置和ai装置/服务器。
56.根据实施方式的发送装置10000包括点云视频获取器10001、点云视频编码器10002和/或发送器(或通信模块)10003。
57.根据实施方式的点云视频获取器10001通过诸如捕获、合成或生成的处理过程来获取点云视频。点云视频是由点云表示的点云内容,点云是位于3d空间中的点集合,并且可以被称为点云视频数据。根据实施方式的点云视频可以包括一个或多个帧。一个帧表示静止图像/画面。因此,点云视频可以包括点云图像/帧/画面,并且可以被称为点云图像、帧或画面。
58.根据实施方式的点云视频编码器10002对所获取的点云视频数据进行编码。点云视频编码器10002可以基于点云压缩编译对点云视频数据进行编码。根据实施方式的点云压缩编译可以包括基于几何的点云压缩(g-pcc)编译和/或基于视频的点云压缩(v-pcc)编译或下一代编译。根据实施方式的点云压缩编译不限于上述实施方式。点云视频编码器10002可输出包含编码的点云视频数据的比特流。比特流可不仅包含编码的点云视频数据,而且包括与点云视频数据的编码有关的信令信息。
59.根据实施方式的发送器10003发送包含编码的点云视频数据的比特流。根据实施方式的比特流被封装在文件或片段(例如,流片段)中,并且经由诸如广播网络和/或宽带网络的各种网络发送。尽管图中未示出,发送装置10000可以包括被配置为执行封装操作的封装器(或封装模块)。根据实施方式,封装器可以包括在发送器10003中。根据实施方式,文件或片段可经由网络发送到接收装置10004,或者存储在数字存储介质(例如,usb、sd、cd、
dvd、蓝光、hdd、ssd等)中。根据实施方式的发送器10003能够经由4g、5g、6g等网络与接收装置10004(或接收器10005)有线/无线通信。另外,发送器可以根据网络系统(例如,4g、5g或6g通信网络系统)执行必要的数据处理操作。发送装置10000可按照按需方式发送封装的数据。
60.根据实施方式的接收装置10004包括接收器10005、点云视频解码器10006和/或渲染器10007。根据实施方式,接收装置10004可以包括被配置为使用无线电接入技术(例如,5g新rat(nr)、长期演进(lte))与基站和/或其他无线装置执行通信的装置、机器人、车辆、ar/vr/xr装置、便携式装置、家用电器、物联网(iot)装置和ai装置/服务器。
61.根据实施方式的接收器10005从网络或存储介质接收包含点云视频数据的比特流或者封装有比特流的文件/片段。接收器10005可以根据网络系统(例如,4g、5g、6g等的通信网络系统)执行必要的数据处理。根据实施方式的接收器10005可将所接收的文件/片段解封装并输出比特流。根据实施方式,接收器10005可以包括被配置为执行解封装操作的解封装器(或解封装模块)。解封装器可以被实现为与接收器10005分离的元件(或组件)。
62.点云视频解码器10006将包含点云视频数据的比特流解码。点云视频解码器10006可以根据点云视频数据被编码的方法(例如,以点云视频编码器10002的操作的相反过程)来将点云视频数据解码。因此,点云视频解码器10006可以通过执行点云解压缩编译(点云压缩的逆过程)来将点云视频数据解码。点云解压缩编译包括g-pcc编译。
63.渲染器10007渲染解码的点云视频数据。渲染器10007可以通过不仅渲染点云视频数据,而且渲染音频数据来输出点云内容。根据实施方式,渲染器10007可以包括被配置为显示点云内容的显示器。根据实施方式,显示器可以被实现为单独的装置或组件而非包括在渲染器10007中。
64.图中由虚线指示的箭头表示接收装置10004所获取的反馈信息的传输路径。反馈信息是反映与消费点云内容的用户的交互性的信息,并且包括关于用户的信息(例如,头部取向信息、视口信息等)。具体地,当点云内容是用于需要与用户交互的服务(例如,自驾驶服务等)的内容时,反馈信息可以被提供给内容发送方(例如,发送装置10000)和/或服务提供商。根据实施方式,反馈信息可以在接收装置10004以及发送装置10000中使用,或者可以不被提供。
65.根据实施方式的头部取向信息是关于用户的头部位置、取向、角度、运动等的信息。根据实施方式的接收装置10004可以基于头部取向信息来计算视口信息。视口信息可以是关于用户正在观看的点云视频的区域的信息。视点是用户通过其观看点云视频的点,并且可指视口区域的中心点。即,视口是以视点为中心的区域,并且区域的尺寸和形状可以由视场(fov)确定。因此,除了头部取向信息之外,接收装置10004还可以基于装置所支持的垂直或水平fov来提取视口信息。另外,接收装置10004执行注视分析等以检查用户消费点云的方式、点云视频中用户注视的区域、注视时间等。根据实施方式,接收装置10004可将包括注视分析结果的反馈信息发送到发送装置10000。根据实施方式的反馈信息可以在渲染和/或显示过程中获取。根据实施方式的反馈信息可以由包括在接收装置10004中的一个或多个传感器取得。根据实施方式,反馈信息可以由渲染器10007或单独的外部元件(或装置、组件等)取得。图1中的虚线表示发送渲染器10007所取得的反馈信息的过程。点云内容提供系统可以基于反馈信息来处理(编码/解码)点云数据。因此,点云视频数据解码器10006可以
基于反馈信息来执行解码操作。接收装置10004可将反馈信息发送到发送装置10000。发送装置10000(或点云视频数据编码器10002)可以基于反馈信息来执行编码操作。因此,点云内容提供系统可以基于反馈信息有效地处理必要数据(例如,与用户的头部位置对应的点云数据)而非处理(编码/解码)整个点云数据,并将点云内容提供给用户。
66.根据实施方式,发送装置10000可以被称为编码器、发送装置、发送器等,接收装置10004可以被称为解码器、接收装置、接收器等。
67.根据实施方式的图1的点云内容提供系统中(通过获取/编码/传输/解码/渲染的一系列过程)处理的点云数据可以被称为点云内容数据或点云视频数据。根据实施方式,点云内容数据可用作涵盖与点云数据有关的元数据或信令信息的概念。
68.图1所示的点云内容提供系统的元件可以由硬件、软件、处理器和/或其组合实现。
69.图2是示出根据实施方式的点云内容提供操作的框图。
70.图2的框图示出图1中描述的点云内容提供系统的操作。如上所述,点云内容提供系统可以基于点云压缩编译(例如,g-pcc)来处理点云数据。
71.根据实施方式的点云内容提供系统(例如,点云发送装置10000或点云视频获取器10001)可以获取点云视频(20000)。点云视频由属于用于表达3d空间的坐标系的点云表示。根据实施方式的点云视频可以包括ply(polygon文件格式或斯坦福三角形(stanford triangle)格式)文件。当点云视频具有一个或多个帧时,所获取的点云视频可以包括一个或多个ply文件。ply文件包含诸如点几何和/或属性的点云数据。几何包括点的位置。每个点的位置可以由表示三维坐标系(例如,由x、y和z轴组成的坐标系)的参数(例如,x、y和z轴的值)表示。属性包括点的属性(例如,关于每个点的纹理、颜色(ycbcr或rgb)、反射率r、透明度等的信息)。点具有一个或多个属性。例如,点可具有颜色属性或者颜色和反射率两个属性。根据实施方式,几何可以被称为位置、几何信息、几何数据等,并且属性可以被称为属性、属性信息、属性数据等。点云内容提供系统(例如,点云发送装置10000或点云视频获取器10001)可以从与点云视频获取过程有关的信息(例如,深度信息、颜色信息等)取得点云数据。
72.根据实施方式的点云内容提供系统(例如,发送装置10000或点云视频编码器10002)可以对点云数据进行编码(20001)。点云内容提供系统可以基于点云压缩编译对点云数据进行编码。如上所述,点云数据可以包括点的几何和属性。因此,点云内容提供系统可以执行对几何进行编码的几何编码并输出几何比特流。点云内容提供系统可以执行对属性进行编码的属性编码并输出属性比特流。根据实施方式,点云内容提供系统可以基于几何编码来执行属性编码。根据实施方式的几何比特流和属性比特流可以被复用并作为一个比特流输出。根据实施方式的比特流还可以包含与几何编码和属性编码有关的信令信息。
73.根据实施方式的点云内容提供系统(例如,发送装置10000或发送器10003)可发送编码的点云数据(20002)。如图1所示,编码的点云数据可以由几何比特流和属性比特流表示。另外,编码的点云数据可与点云数据的编码相关的信令信息(例如,与几何编码和属性编码有关的信令信息)一起以比特流的形式发送。点云内容提供系统可将承载编码的点云数据的比特流封装并以文件或片段的形式将其发送。
74.根据实施方式的点云内容提供系统(例如,接收装置10004或接收器10005)可以接收包含编码的点云数据的比特流。另外,点云内容提供系统(例如,接收装置10004或接收器
10005)可将比特流解复用。
75.点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可将比特流中发送的编码的点云数据(例如,几何比特流、属性比特流)解码。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以基于比特流中包含的与点云视频数据的编码有关的信令信息将点云视频数据解码。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可将几何比特流解码以重构点的位置(几何)。点云内容提供系统可以通过基于重构的几何对属性比特流进行解码来重构点的属性。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以根据重构的几何和解码的属性基于位置来重构点云视频。
76.根据实施方式的点云内容提供系统(例如,接收装置10004或渲染器10007)可以渲染解码的点云数据(20004)。点云内容提供系统(例如,接收装置10004或渲染器10007)可使用各种渲染方法来渲染通过解码过程解码的几何和属性。点云内容中的点可以被渲染为具有特定厚度的顶点、以对应顶点位置为中心的具有特定最小尺寸的立方体或者以对应顶点位置为中心的圆。渲染的点云内容的全部或部分通过显示器(例如,vr/ar显示器、一般显示器等)提供给用户。
77.根据实施方式的点云内容提供系统(例如,接收装置10004)可以取得反馈信息(20005)。点云内容提供系统可以基于反馈信息对点云数据进行编码和/或解码。根据实施方式的点云内容提供系统的反馈信息和操作与参考图1描述的反馈信息和操作相同,因此省略其详细描述。
78.图3示出根据实施方式的捕获点云视频的示例性过程。
79.图3示出参考图1至图2描述的点云内容提供系统的示例性点云视频捕获过程。
80.点云内容包括表示位于各种3d空间(例如,表示真实环境的3d空间、表示虚拟环境的3d空间等)中的对象和/或环境的点云视频(图像和/或视频)。因此,根据实施方式的点云内容提供系统可使用一个或多个相机(例如,能够取得深度信息的红外相机、能够提取与深度信息对应的颜色信息的rgb相机等)、投影仪(例如,取得深度信息的红外图案投影仪)、lidar等来捕获点云视频。根据实施方式的点云内容提供系统可以从深度信息提取由3d空间中的点组成的几何形状并且从颜色信息提取每个点的属性以取得点云数据。根据实施方式的图像和/或视频可以基于面向内技术和面向外技术中的至少一个来捕获。
81.图3的左侧部分示出面向内技术。面向内技术是指利用定位在中心对象周围的一个或多个相机(或相机传感器)来捕获中心对象的图像的技术。面向内技术可用于生成向用户提供关键对象的360度图像的点云内容(例如,向用户提供对象(例如,诸如角色、玩家、对象或演员的关键对象)的360度图像的vr/ar内容)。
82.图3的右侧部分示出面向外技术。面向外技术是指利用定位在中心对象周围的一个或多个相机(或相机传感器)来捕获中心对象的环境而非中心对象的图像的技术。面向外技术可用于生成提供从用户的视角出现的周围环境的点云内容(例如,可提供给自驾驶车辆的用户的表示外部环境的内容)。
83.如图所示,可以基于一个或多个相机的捕获操作来生成点云内容。在这种情况下,在相机之间坐标系可不同,因此点云内容提供系统可以在捕获操作之前校准一个或多个相机以设定全局坐标系。另外,点云内容提供系统可以通过将任意图像和/或视频与通过上述
捕获技术捕获的图像和/或视频合成来生成点云内容。点云内容提供系统在生成表示虚拟空间的点云内容时可不执行图3中描述的捕获操作。根据实施方式的点云内容提供系统可以对捕获的图像和/或视频执行后处理。换言之,点云内容提供系统可去除不想要的区域(例如,背景),识别捕获的图像和/或视频连接至的空间,并且当存在空间空洞时,执行填充空间空洞的操作。
84.点云内容提供系统可以通过对从每个相机取得的点云视频的点执行坐标变换来生成一条点云内容。点云内容提供系统可以基于每个相机的位置坐标对点执行坐标变换。因此,点云内容提供系统可以生成表示一个宽范围的内容,或者可以生成具有高密度点的点云内容。
85.图4示出根据实施方式的示例性点云编码器。
86.图4示出图1的点云视频编码器10002的示例。点云编码器重构并编码点云数据(例如,点的位置和/或属性)以根据网络条件或应用调节点云内容的质量(例如无损、有损或接近无损)。当点云内容的总大小较大(例如,对于30fps给出60gbps的点云内容)时,点云内容提供系统可能无法实时流传输内容。因此,点云内容提供系统可以基于最大目标比特率来重构点云内容以根据网络环境等提供点云内容。
87.如参考图1和图2描述的,点云编码器可以执行几何编码和属性编码。几何编码在属性编码之前执行。
88.根据实施方式的点云编码器包括坐标变换器(变换坐标)40000、量化器(量化和去除点(体素化))40001、八叉树分析器(分析八叉树)40002和表面近似分析器(分析表面近似)40003、算术编码器(算术编码)40004、几何重构器(重构几何)40005、颜色变换器(变换颜色)40006、属性变换器(变换属性)40007、raht变换器(raht)40008、lod生成器(生成lod)40009、提升变换器(提升)40010、系数量化器(量化系数)40011和/或算术编码器(算术编码)40012。
89.坐标变换器40000、量化器40001、八叉树分析器40002、表面近似分析器40003、算术编码器40004和几何重构器40005可以执行几何编码。根据实施方式的几何编码可以包括八叉树几何编译、直接编译、三联体几何编码和熵编码。直接编译和三联体几何编码选择性地或组合应用。几何编码不限于上述示例。
90.如图所示,根据实施方式的坐标变换器40000接收位置并将其变换为坐标。例如,位置可以被变换为三维空间(例如,由xyz坐标系表示的三维空间)中的位置信息。根据实施方式的三维空间中的位置信息可以被称为几何信息。
91.根据实施方式的量化器40001将几何量化。例如,量化器40001可以基于所有点的最小位置值(例如,x、y和z轴中的每个上的最小值)来将点量化。量化器40001执行量化操作:将最小位置值与每个点的位置值之间的差乘以预设量化标度值,然后通过对通过乘法获得的值进行舍入来寻找最近整数值。因此,一个或多个点可具有相同的量化位置(或位置值)。根据实施方式的量化器40001基于量化位置执行体素化以重构量化点。如像素(包含2d图像/视频信息的最小单元)的情况中一样,根据实施方式的点云内容(或3d点云视频)的点可以包括在一个或多个体素中。作为体积和像素的复合体,术语体素是指当基于表示3d空间的轴(例如,x轴、y轴和z轴)将3d空间划分成单元(单位=1.0)时生成的3d立方空间。量化器40001可使3d空间中的点组与体素匹配。根据实施方式,一个体素可仅包括一个点。根据
实施方式,一个体素可以包括一个或多个点。为了将一个体素表示为一个点,体素的中心的位置可以基于包括在体素中的一个或多个点的位置来设定。在这种情况下,包括在一个体素中的所有位置的属性可以被组合并指派给体素。
92.根据实施方式的八叉树分析器40002执行八叉树几何编译(或八叉树编译)以按八叉树结构呈现体素。八叉树结构表示基于八进制树结构与体素匹配的点。
93.根据实施方式的表面近似分析器40003可以分析并近似八叉树。根据实施方式的八叉树分析和近似是分析包含多个点的区域以有效地提供八叉树和体素化的过程。
94.根据实施方式的算术编码器40004对八叉树和/或近似八叉树执行熵编码。例如,编码方案包括算术编码。作为编码结果,生成几何比特流。
95.颜色变换器40006、属性变换器40007、raht变换器40008、lod生成器40009、提升变换器40010、系数量化器40011和/或算术编码器40012执行属性编码。如上所述,一个点可具有一个或多个属性。根据实施方式的属性编码同样应用于一个点所具有的属性。然而,当属性(例如,颜色)包括一个或多个元素时,对每个元素独立地应用属性编码。根据实施方式的属性编码包括颜色变换编译、属性变换编译、区域自适应分层变换(raht)编译、基于插值的分层最近邻居预测(预测变换)编译以及具有更新/提升步骤的基于插值的分层最近邻居预测(提升变换)编译。根据点云内容,可选择性地使用上述raht编译、预测变换编译和提升变换编译,或者可使用一个或多个编译方案的组合。根据实施方式的属性编码不限于上述示例。
96.根据实施方式的颜色变换器40006执行变换包括在属性中的颜色值(或纹理)的颜色变换编译。例如,颜色变换器40006可以变换颜色信息的格式(例如,从rgb到ycbcr)。可选地,可以根据包括在属性中的颜色值来应用根据实施方式的颜色变换器40006的操作。
97.根据实施方式的几何重构器40005重构(解压缩)八叉树和/或近似八叉树。几何重构器40005基于分析点分布的结果来重构八叉树/体素。重构的八叉树/体素可以被称为重构的几何(恢复的几何)。
98.根据实施方式的属性变换器40007执行属性变换以基于重构的几何和/或不执行几何编码的位置来变换属性。如上所述,由于属性取决于几何,所以属性变换器40007可以基于重构的几何信息来变换属性。例如,基于包括在体素中的点的位置值,属性变换器40007可以变换该位置处的点的属性。如上所述,当基于包括在体素中的一个或多个点的位置来设定体素的中心位置时,属性变换器40007变换一个或多个点的属性。当执行三联体几何编码时,属性变换器40007可以基于三联体几何编码来变换属性。
99.属性变换器40007可以通过计算距每个体素的中心位置(或位置值)特定位置/半径内的邻居点的属性或属性值(例如,每个点的颜色或反射率)的平均来执行属性变换。属性变换器40007可以在计算平均时根据从中心到每个点的距离来应用权重。因此,每个体素具有位置和计算的属性(或属性值)。
100.属性变换器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树或莫顿码。
101.如图所示,变换的属性被输入到raht变换器40008和/或lod生成器40009。
102.根据实施方式的raht变换器40008基于重构的几何信息来执行用于预测属性信息的raht编译。例如,raht变换器40008可以基于与八叉树中较低级别的节点关联的属性信息来预测八叉树中较高级别的节点的属性信息。
103.根据实施方式的lod生成器40009生成细节级别(lod)来执行预测变换编译。根据实施方式的lod是点云内容的细节程度。随着lod值减小,指示点云内容的细节劣化。随着lod值增大,指示点云内容的细节增强。点可按lod分类。
104.根据实施方式的提升变换器40010执行基于权重来变换点云属性的提升变换编译。如上所述,可以可选地应用提升变换编译。
105.根据实施方式的系数量化器40011基于系数来量化属性编码的属性。
106.根据实施方式的算术编码器40012基于算术编译对量化的属性进行编码。
107.尽管图中未示出,图4的点云编码器的元件可以由包括被配置为与包括在点云提供装置中的一个或多个存储器通信的一个或多个处理器或集成电路的硬件、软件、固件或其组合实现。一个或多个处理器可以执行上述图4的点云编码器的元件的操作和/或功能中的至少一个。另外,一个或多个处理器可操作或执行用于执行图4的点云编码器的元件的操作和/或功能的软件程序和/或指令集合。根据实施方式的一个或多个存储器可以包括高速随机存取存储器,或者包括非易失性存储器(例如,一个或多个磁盘存储装置、闪存装置或其他非易失性固态存储器装置)。
108.图5示出根据实施方式的体素的示例。
109.图5示出位于由三个轴(x轴、y轴和z轴)所组成的坐标系表示的3d空间中的体素。如参考图4所述,点云编码器(例如,量化器40001)可以执行体素化。体素是指当基于表示3d空间的轴(例如,x轴、y轴和z轴)将3d空间划分成单元(单位=1.0)时生成的3d立方空间。图5示出通过八叉树结构生成的体素的示例,其中由两个极点(0,0,0)和(2d,2d,2d)限定的立方轴对齐边界框被递归地再分。一个体素包括至少一个点。可以从与体素组的位置关系来估计体素的空间坐标。如上所述,体素具有类似2d图像/视频的像素的属性(例如,颜色或反射率)。体素的细节与参考图4描述的那些相同,因此省略其描述。
110.图6示出根据实施方式的八叉树和占用代码的示例。
111.如参考图1至图4所描述的,点云内容提供系统(点云视频编码器10002)或点云编码器(例如,八叉树分析器40002)基于八叉树结构来执行八叉树几何编编译(或八叉树编译)以有效地管理体素的区域和/或位置。
112.图6的上部示出八叉树结构。根据实施方式的点云内容的3d空间由坐标系的轴(例如,x轴、y轴和z轴)表示。通过由两个极点(0,0,0)和(2d,2d,2d)限定的立方轴对齐边界框的递归再分来创建八叉树结构。这里,2d可以被设定为构成围绕点云内容(或点云视频)的所有点的最小边界框的值。这里,d表示八叉树的深度。d的值在下式中确定。在下式中,(x
intn
,y
intn
,z
intn
)表示量化的点的位置(或位置值)。
[0113][0114]
如图6的上部的中间所示,整个3d空间可以根据分区被划分成八个空间。每个划分的空间由具有六个面的立方体表示。如图6的右上部所示,八个空间中的每个基于坐标系的轴(例如,x轴、y轴和z轴)再次划分。因此,每个空间被划分成八个更小的空间。所划分的更小的空间也由具有六个面的立方体表示。应用该分割方案,直至八叉树的叶节点变为体素。
[0115]
图6的下部示出八叉树占用代码。生成八叉树的占用代码以指示通过划分一个空间而生成的八个划分的空间中的每个是否包含至少一个点。因此,单个占用代码由八个子节点表示。每个子节点表示划分的空间的占用,并且子节点具有1比特的值。因此,占用代码被表示为8比特代码。即,当与子节点对应的空间中包含至少一个点时,节点被指派值1。当与子节点对应的空间中不包含点(空间为空)时,节点被指派值0。由于图6所示的占用代码为00100001,所以指示与八个子节点当中的第三子节点和第八子节点对应的空间各自包含至少一个点。如图所示,第三子节点和第八子节点中的每个具有八个子节点,并且子节点由8比特占用代码表示。附图示出第三子节点的占用代码为10000111,并且第八子节点的占用代码为01001111。根据实施方式的点云编码器(例如,算术编码器40004)可以对占用代码执行熵编码。为了增加压缩效率,点云编码器可以对占用代码执行帧内/帧间编译。根据实施方式的接收装置(例如,接收装置10004或点云视频解码器10006)基于占用代码来重构八叉树。
[0116]
根据实施方式的点云编码器(例如,图4的点云编码器或八叉树分析器40002)可以执行体素化和八叉树编译以存储点位置。然而,点并不总是在3d空间中均匀分布,因此可能有存在较少点的特定区域。因此,对整个3d空间执行体素化是低效的。例如,当特定区域包含很少点时,在该特定区域中不需要执行体素化。
[0117]
因此,对于上述特定区域(或八叉树的叶节点以外的节点),根据实施方式的点云编码器可跳过体素化并执行直接编译以直接对包括在特定区域中的点位置进行编码。根据实施方式的直接编译点的坐标被称为直接编译模式(dcm)。根据实施方式的点云编码器还可以基于表面模型执行三联体几何编码,其要基于体素来重构特定区域(或节点)中的点位置。三联体几何编码是将对象表示为一系列三角形网格的几何编码。因此,点云解码器可以从网格表面生成点云。根据实施方式的直接编译和三联体几何编码可选择性地执行。另外,根据实施方式的直接编译和三联体几何编码可与八叉树几何编译(或八叉树编译)组合执行。
[0118]
为了执行直接编译,应该启用使用直接模式以应用直接编译的选项。要应用直接编译的节点不是叶节点,在特定节点内应该存在小于阈值的点。另外,要应用直接编译的点的总数不应超过预设阈值。当满足上述条件时,根据实施方式的点云编码器(或算术编码器40004)可以对点位置(或位置值)执行熵编译。
[0119]
根据实施方式的点云编码器(例如,表面近似分析器40003)可确定八叉树的特定级别(小于八叉树的深度d的级别),并且可以从该级别开始使用表面模型以执行三联体几何编码,以基于体素来重构节点区域中的点位置(三联体模式)。根据实施方式的点云编码器可指定要应用三联体几何编码的级别。例如,当特定级别等于八叉树的深度时,点云编码器不在三联体模式下操作。换言之,仅当指定的级别小于八叉树的深度值时,根据实施方式
的点云编码器才可以在三联体模式下操作。根据实施方式的指定级别的节点的3d立方区域被称为块。一个块可以包括一个或多个体素。块或体素可以对应于方块。几何被表示为每个块内的表面。根据实施方式的表面可与块的每个边相交至多一次。
[0120]
一个块具有12条边,因此一个块中存在至少12个交点。每个交点被称为顶点。当共享边的所有块当中存在与边相邻的至少一个占用体素时,检测沿着边存在的顶点。根据实施方式的占用体素是指包含点的体素。沿着边检测到的顶点位置是沿着共享边的所有块当中与边相邻的所有体素的边的平均位置。
[0121]
一旦检测到顶点,根据实施方式的点云编码器就可以对边的起点(x,y,z)、边的方向向量(δx,δy,δz)和顶点位置值(边内的相对位置值)执行熵编码。当应用三联体几何编码时,根据实施方式的点云编码器(例如,几何重构器40005)可以通过执行三角形重构、上采样和体素化过程来生成恢复的几何(重构的几何)。
[0122]
位于块的边处的顶点确定穿过块的表面。根据实施方式的表面是非平面多边形。在三角形重构过程中,基于边的起点、边的方向向量和顶点的位置值来重构由三角形表示的表面。三角形重构过程这样执行:边相计算每个顶点的质心值,2)从每个顶点值减去中心值,并且3)估计通过减法获得的值的平方和。
[0123][0124]
估计和的最小值,并且根据具有最小值的轴执行投影过程。例如,当元素x最小时,每个顶点相对于块的中心投影在x轴上,并且投影在(y,z)平面上。当通过(y,z)平面上的投影获得的值为(ai,bi)时,通过atan2(bi,ai)估计θ的值,并且基于θ的值对顶点进行排序。下表示出根据顶点数量创建三角形的顶点组合。顶点从1至n排序。下表示出对于四个顶点,可以根据顶点组合构造两个三角形。第一个三角形可以由排序的顶点当中的顶点1、2和3组成,第二个三角形可以由排序的顶点当中的顶点3、4和1组成。
[0125]
表.从排序为1的顶点形成的三角形
[0126]
[表1]
[0127]
n三角形3(1,2,3)4(1,2,3),(3,4,1)5(1,2,3),(3,4,5),(5,1,3)6(1,2,3),(3,4,5),(5,6,1),(1,3,5)7(1,2,3),(3,4,5),(5,6,7),(7,1,3),(3,5,7)8(1,2,3),(3,4,5),(5,6,7),(7,8,1),(1,3,5),(5,7,1)9(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,1,3),(3,5,7),(7,9,3)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)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)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)
[0128]
执行上采样过程以沿着三角形的边在中间添加点,并且执行体素化。所添加的点基于上采样因子和块的宽度来生成。添加的点被称为细化顶点。根据实施方式的点云编码器可将细化顶点体素化。另外,点云编码器可以基于体素化的位置(或位置值)来执行属性
编码。
[0129]
图7示出根据实施方式的邻居节点图案的示例。
[0130]
为了增加点云视频的压缩效率,根据实施方式的点云编码器可以基于上下文自适应算术编译来执行熵编译。
[0131]
如参考图1至图6所描述的,点云内容提供系统或点云编码器(例如,点云视频编码器10002、图4的点云编码器或算术编码器40004)可立即对占用代码执行熵编译。另外,点云内容提供系统或点云编码器可以基于当前节点的占用代码和邻居节点的占用来执行熵编码(帧内编码),或者基于先前帧的占用代码执行熵编码(帧间编码)。根据实施方式的帧表示同时生成的点云视频的集合。根据实施方式的帧内编码/帧间编码的压缩效率可取决于所参考的邻居节点的数量。当比特增加时,运算变得复杂,但是编码可偏向一侧,这可增加压缩效率。例如,当给出3比特上下文时,需要使用23=8种方法来执行编译。为编译划分的部分影响实现复杂度。因此,有必要满足适当级别的压缩效率和复杂度。
[0132]
图7示出基于邻居节点的占用来获得占用图案的过程。根据实施方式的点云编码器确定八叉树的每个节点的邻居节点的占用并且获得邻居图案的值。邻居节点图案用于推断节点的占用图案。图7的左侧部分示出与节点对应的立方体(位于中间的立方体)以及与该立方体共享至少一个面的六个立方体(邻居节点)。图中所示的节点是相同深度的节点。图中所示的数字分别表示与六个节点关联的权重(1、2、4、8、16和32)。根据邻居节点的位置依次指派权重。
[0133]
图7的右侧部分示出邻居节点图案值。邻居节点图案值是乘以占用邻居节点(具有点的邻居节点)的权重的值之和。因此,邻居节点图案值为0至63。当邻居节点图案值为0时,指示节点的邻居节点当中不存在具有点的节点(无占用节点)。当邻居节点图案值为63时,指示所有邻居节点均是占用节点。如图所示,由于指派有权重1、2、4和8的邻居节点是占用节点,所以邻居节点图案值为15(1、2、4和8之和)。点云编码器可以根据邻居节点图案值执行编译(例如,当邻居节点图案值为63时,可以执行64种类型的编译)。根据实施方式,点云编码器可以通过改变邻居节点图案值(例如,基于将64改变为10或6的表)来降低编译复杂度。
[0134]
图8示出根据实施方式的每个lod中的点配置的示例。
[0135]
如参考图1至图7描述的,在执行属性编码之前将编码的几何重构(解压缩)。当应用直接编译时,几何重构操作可以包括改变直接编译的点的放置(例如,将直接编码的点放置在点云数据前面)。当应用三联体几何编码时,通过三角形重构、上采样和体素化来执行几何重构过程。由于属性取决于几何,所以基于重构的几何来执行属性编码。
[0136]
点云编码器(例如,lod生成器40009)可按lod对点进行分类(重新组织)。图中示出与lod对应的点云内容。图中最左侧画面表示原始点云内容。图中左起第二个画面表示最低lod中的点分布,图中最右侧画面表示最高lod中的点分布。即,最低lod中的点稀疏分布,最高lod中的点密集分布。即,随着lod在图底部所指示的箭头所指的方向上升高,点之间的空间(或距离)变窄。
[0137]
图9示出根据实施方式的用于每个lod的点配置的示例。
[0138]
如参考图1至图8所描述的,点云内容提供系统或点云编码器(例如,点云视频编码器10002、图4的点云编码器或lod生成器40009)可以生成lod。通过根据设定的lod距离值
(或欧几里德(euclidean)距离集合)将点重新组织为细化级别的集合来生成lod。lod生成过程不仅由点云编码器执行,而且由点云解码器执行。
[0139]
图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。
[0140]
如参考图4所描述的,根据实施方式的点云编码器可选择性地或组合地执行预测变换编译、提升变换编译和raht变换编译。
[0141]
根据实施方式的点云编码器可为点生成预测器以执行用于设定每个点的预测属性(或预测属性值)的预测变换编译。即,可为n个点生成n个预测器。根据实施方式的预测器可以基于每个点的lod值、关于存在于每个lod的设定距离内的邻居点的索引信息以及到邻居点的距离来计算权重(=1/距离)。
[0142]
根据实施方式的预测属性(或属性值)被设定为通过将每个点的预测器中设定的邻居点的属性(或属性值)(例如,颜色、反射率等)乘以基于到每个邻居点的距离计算的权重(或权重值)而获得的值的平均。根据实施方式的点云编码器(例如,系数量化器40011)可量化和逆量化通过从每个点的属性(属性值)减去预测属性(属性值)而获得的残差(可称为残差属性、残差属性值或属性预测残差)。量化过程如下表所示配置。
[0143]
属性预测残差量化伪代码
[0144]
[表2]
[0145]
int pccquantization(int value,int quantstep){if(value》=0){return floor(value/quantstep+1.0/3.0);}else{return-floor(-value/quantstep+1.0/3.0);}}
[0146]
属性预测残差逆量化伪代码
[0147]
[表3]
[0148]
int pccinversequantization(int value,int quantstep){if(quantstep==0){return value;}else{return value*quantstep;}}
[0149]
当每个点的预测器具有邻居点时,根据实施方式的点云编码器(例如,算术编码器40012)可如上所述对量化和逆量化的残差值执行熵编译。当每个点的预测器没有邻居点时,根据实施方式的点云编码器(例如,算术编码器40012)可以对相应点的属性执行熵编译,而不执行上述操作。
[0150]
根据实施方式的点云编码器(例如,提升变换器40010)可以生成每个点的预测器,设定计算的lod并在预测器中注册邻居点,并且根据到邻居点的距离来设定权重以执行提升变换编译。根据实施方式的提升变换编译类似于上述预测变换编译,但不同之处在于,对属性值累积地应用权重。根据实施方式对属性值累积地应用权重的过程配置如下。
[0151]
1)创建用于存储每个点的权重值的阵列量化权重(qw)。qw的所有元素的初始值均为1.0。将预测器中注册的邻居节点的预测器索引的qw值乘以当前点的预测器的权重,并将通过乘法获得的值相加。
[0152]
2)提升预测过程:从现有属性值减去通过将点的属性值乘以权重而获得的值,以计算预测属性值。
[0153]
3)创建称为updateweight和update的临时阵列,并且将临时阵列初始化为零。
[0154]
4)将通过将针对所有预测器计算的权重乘以存储在与预测器索引对应的qw中的权重而计算的权重与updateweight阵列累加,作为邻居节点的索引。将通过将邻居节点索引的属性值乘以所计算的权重而获得的值与update阵列累加。
[0155]
5)提升更新过程:将所有预测器的update阵列的属性值除以预测器索引的updateweight阵列的权重值,并将现有属性值与通过除法获得的值相加。
[0156]
6)针对所有预测器通过将通过提升更新过程更新的属性值乘以通过提升预测过程更新的权重(存储在qw中)来计算预测属性。根据实施方式的点云编码器(例如,系数量化器40011)量化预测属性值。另外,点云编码器(例如,算术编码器40012)对量化属性值执行熵编码。
[0157]
根据实施方式的点云编码器(例如,raht变换器40008)可以执行raht变换编译,其中使用与八叉树中较低级别的节点关联的属性来预测较高级别的节点的属性。raht变换编译是通过八叉树向后扫描进行属性帧内编码的示例。根据实施方式的点云编码器从体素开始扫描整个区域并且在每一步重复将体素合并为更大的块的合并过程,直至到达根节点。仅对占用节点执行根据实施方式的合并过程。不对空节点执行合并过程。对空节点正上方的上节点执行合并过程。
[0158]
下式表示raht变换矩阵。在该式中,表示级别l的体素的平均属性值。可以基于和来计算。和的权重为和
[0159][0160]
这里,是低通值并且在次高级别的合并过程中使用。表示高通系数。每一步的高通系数被量化并经受熵编码(例如,由算术编码器400012编码)。权重被计算为为通过和创建根节点如下。
[0161][0162]
类似于高通系数,gdc的值也被量化并经受熵编码。
[0163]
图10示出根据实施方式的点云解码器。
[0164]
图10所示的点云解码器是图1中描述的点云视频解码器10006的示例,并且可以执行与图1所示的点云视频解码器10006的操作相同或相似的操作。如图所示,点云解码器可以接收包含在一个或多个比特流中的几何比特流和属性比特流。点云解码器包括几何解码器和属性解码器。几何解码器对几何比特流执行几何解码并输出解码的几何。属性解码器基于解码的几何和属性比特流执行属性解码,并且输出解码的属性。解码的几何和解码的属性用于重构点云内容(解码的点云)。
[0165]
图11示出根据实施方式的点云解码器。
[0166]
图11所示的点云解码器是图10所示的点云解码器的示例,并且可以执行解码操作,其是图1至图9所示的点云编码器的编码操作的逆过程。
[0167]
如参考图1和图10所描述的,点云解码器可以执行几何解码和属性解码。几何解码在属性解码之前执行。
[0168]
根据实施方式的点云解码器包括算术解码器(算术解码)11000、八叉树合成器(合成八叉树)11001、表面近似合成器(合成表面近似)11002和几何重构器(重构几何)11003、坐标逆变换器(逆变换坐标)11004、算术解码器(算术解码)11005、逆量化器(逆量化)11006、raht变换器11007、lod生成器(生成lod)11008、逆提升器(逆提升)11009和/或颜色逆变换器(逆变换颜色)11010。
[0169]
算术解码器11000、八叉树合成器11001、表面近似合成器11002、几何重构器11003和坐标逆变换器11004可以执行几何解码。根据实施方式的几何解码可以包括直接编码和三联体几何解码。直接编码和三联体几何解码选择性地应用。几何解码不限于上述示例,并且作为参考图1至图9描述的几何编码的逆过程执行。
[0170]
根据实施方式的算术解码器11000基于算术编码将所接收的几何比特流解码。算术解码器11000的操作对应于算术编码器40004的逆过程。
[0171]
根据实施方式的八叉树合成器11001可以通过从解码的几何比特流获取占用代码(或关于作为解码结果取得的几何的信息)来生成八叉树。占用代码如参考图1至图9详细描述那样配置。
[0172]
当应用三联体几何编码时,根据实施方式的表面近似合成器11002可以基于解码的几何和/或生成的八叉树来合成表面。
[0173]
根据实施方式的几何重构器11003可以基于表面和/或解码的几何重新生成几何。如参考图1至图9所描述的,选择性地应用直接编码和三联体几何编码。因此,几何重构器11003直接导入关于应用了直接编码的点的位置信息并将其相加。当应用三联体几何编码时,几何重构器11003可以通过执行几何重构器40005的重构操作(例如,三角形重构、上采样和体素化)来重构几何。细节与参考图6描述的那些相同,因此省略其描述。重构的几何可以包括不包含属性的点云画面或帧。
[0174]
根据实施方式的坐标逆变换器11004可以通过基于重构的几何变换坐标来获取点位置。
[0175]
算术解码器11005、逆量化器11006、raht变换器11007、lod生成器11008、逆提升器11009和/或颜色逆变换器11010可以执行参考图10描述的属性解码。根据实施方式的属性解码包括区域自适应分层变换(raht)解码、基于插值的分层最近邻居预测(预测变换)解码
以及具有更新/提升步骤的基于插值的分层最近邻居预测(提升变换)解码。上述三个解码方案可选择性地使用,或者可使用一个或多个解码方案的组合。根据实施方式的属性解码不限于上述示例。
[0176]
根据实施方式的算术解码器11005通过算术编码对属性比特流进行解码。
[0177]
根据实施方式的逆量化器11006逆量化关于解码的属性比特流或作为解码结果取得的属性的信息,并且输出逆量化的属性(或属性值)。可以基于点云编码器的属性编码选择性地应用逆量化。
[0178]
根据实施方式,raht变换器11007、lod生成器11008和/或逆提升器11009可以处理重构的几何和逆量化的属性。如上所述,raht变换器11007、lod生成器11008和/或逆提升器11009可选择性地执行与点云编码器的编码对应的解码操作。
[0179]
根据实施方式的颜色逆变换器11010执行逆变换编码以逆变换包括在解码的属性中的颜色值(或纹理)。可以基于点云编码器的颜色变换器40006的操作选择性地执行颜色逆变换器11010的操作。
[0180]
尽管图中未示出,图11的点云解码器的元件可以由包括被配置为与包括在点云提供装置中的一个或多个存储器通信的一个或多个处理器或集成电路的硬件、软件、固件或其组合实现。一个或多个处理器可以执行上述图11的点云解码器的元件的操作和/或功能中的至少一个或多个。另外,一个或多个处理器可操作或执行用于执行图11的点云解码器的元件的操作和/或功能的软件程序和/或指令集合。
[0181]
图12示出根据实施方式的示例性发送装置。
[0182]
图12所示的发送装置是图1的发送装置10000(或图4的点云编码器)的示例。图12所示的发送装置可以执行与参考图1至图9描述的点云编码器的那些相同或相似的一个或多个操作和方法。根据实施方式的发送装置可以包括数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码生成器12003、表面模型处理器12004、帧内/帧间编码处理器12005、算术编码器12006、元数据处理器12007、颜色变换处理器12008、属性变换处理器12009、预测/提升/raht变换处理器12010、算术编码器12011和/或传输处理器12012。
[0183]
根据实施方式的数据输入单元12000接收或获取点云数据。数据输入单元12000可以执行与点云视频获取器10001的操作和/或获取方法(或参考图2描述的获取过程20000)相同或相似的操作和/或获取方法。
[0184]
数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码生成器12003、表面模型处理器12004、帧内/帧间编码处理器12005和算术编码器12006执行几何编码。根据实施方式的几何编码与参考图1至图9描述的几何编码相同或相似,因此省略其详细描述。
[0185]
根据实施方式的量化处理器12001量化几何(例如,点的位置值)。量化处理器12001的操作和/或量化与参考图4描述的量化器40001的操作和/或量化相同或相似。细节与参考图1至图9描述的那些相同。
[0186]
根据实施方式的体素化处理器12002将点的量化的位置值体素化。体素化处理器120002可以执行与参考图4描述的量化器40001的操作和/或体素化过程相同或相似的操作和/或过程。细节与参考图1至图9描述的那些相同。
[0187]
根据实施方式的八叉树占用代码生成器12003基于八叉树结构对点的体素化的位置执行八叉树编码。八叉树占用代码生成器12003可以生成占用代码。八叉树占用代码生成器12003可以执行与参考图4和图6描述的点云编码器(或八叉树分析器40002)的操作和/或方法相同或相似的操作和/或方法。细节与参考图1至图9描述的那些相同。
[0188]
根据实施方式的表面模型处理器12004可以基于表面模型执行三联体几何编码以基于体素重构特定区域(或节点)中的点位置。表面模型处理器12004可以执行与参考图4描述的点云编码器(例如,表面近似分析器40003)的操作和/或方法相同或相似的操作和/或方法。细节与参考图1至图9描述的那些相同。
[0189]
根据实施方式的帧内/帧间编码处理器12005可以对点云数据执行帧内/帧间编码。帧内/帧间编码处理器12005可以执行与参考图7描述的帧内/帧间编码相同或相似的编码。细节与参考图7描述的那些相同。根据实施方式,帧内/帧间编码处理器12005可以包括在算术编码器12006中。
[0190]
根据实施方式的算术编码器12006对点云数据的八叉树和/或近似八叉树执行熵编码。例如,编码方案包括算术编码。算术编码器12006执行与算术编码器40004的操作和/或方法相同或相似的操作和/或方法。
[0191]
根据实施方式的元数据处理器12007处理关于点云数据的元数据(例如,设定值),并将其提供给诸如几何编码和/或属性编码的必要处理过程。另外,根据实施方式的元数据处理器12007可以生成和/或处理与几何编码和/或属性编码有关的信令信息。根据实施方式的信令信息可与几何编码和/或属性编码分开编码。根据实施方式的信令信息可以被交织。
[0192]
颜色变换处理器12008、属性变换处理器12009、预测/提升/raht变换处理器12010和算术编码器12011执行属性编码。根据实施方式的属性编码与参考图1至图9描述的属性编码相同或相似,因此省略其详细描述。
[0193]
根据实施方式的颜色变换处理器12008执行颜色变换编译以变换包括在属性中的颜色值。颜色变换处理器12008可以基于重构的几何来执行颜色变换编译。重构的几何与参考图1至图9描述的相同。另外,其执行与参考图4描述的颜色变换器40006的操作和/或方法相同或相似的操作和/或方法。省略其详细描述。
[0194]
根据实施方式的属性变换处理器12009执行属性变换以基于重构的几何和/或不执行几何编码的位置来变换属性。属性变换处理器12009执行与参考图4描述的属性变换器40007的操作和/或方法相同或相似的操作和/或方法。省略其详细描述。根据实施方式的预测/提升/raht变换处理器12010可以通过raht编译、预测变换编译和提升变换编译中的任一种或组合对变换的属性进行编码。预测/提升/raht变换处理器12010执行与参考图4描述的raht变换器40008、lod生成器40009和提升变换器40010的操作相同或相似的至少一个操作。另外,预测变换编译、提升变换编译和raht变换编译与参考图1至图9描述的那些相同,因此省略其详细描述。
[0195]
根据实施方式的算术编码器12011可以基于算术编译对编码的属性进行编码。算术编码器12011执行与算术编码器400012的操作和/或方法相同或相似的操作和/或方法。
[0196]
根据实施方式的传输处理器12012可发送包含编码的几何和/或编码的属性和元数据信息的每个比特流,或者发送配置有编码的几何和/或编码的属性和元数据信息的一
个比特流。当根据实施方式的编码的几何和/或编码的属性和元数据信息被配置为一个比特流时,比特流可以包括一个或多个子比特流。根据实施方式的比特流可以包含信令信息和切片数据,信令信息包括用于序列级别信令的序列参数集(sps)、用于几何信息编译信令的几何参数集(gps)、用于属性信息编译信令的属性参数集(aps)和用于拼块级别信令的拼块参数集(tps)。切片数据可以包括关于一个或多个切片的信息。根据实施方式的一个切片可以包括一个几何比特流geom00以及一个或多个属性比特流attr00和attr10。根据实施方式的tps可以包括关于一个或多个拼块中的每个拼块的信息(例如,关于边界框的坐标信息和高度/大小信息)。几何比特流可以包含报头和有效载荷。根据实施方式的几何比特流的报头可以包含gps中所包括的参数集标识符(geom_parameter_set_id)、拼块标识符(geom_tile_id)和切片标识符(geom_slice_id)以及关于包含在有效载荷中的数据的信息。如上所述,根据实施方式的元数据处理器12007可以生成和/或处理信令信息并将其发送到传输处理器12012。根据实施方式,执行几何编码的元件和执行属性编码的元件可如虚线所指示彼此共享数据/信息。根据实施方式的传输处理器12012可以执行与发送器10003的操作和/或传输方法相同或相似的操作和/或传输方法。细节与参考图1和图2描述的那些相同,因此省略其描述。
[0197]
图13示出根据实施方式的示例性接收装置。
[0198]
图13所示的接收装置是图1的接收装置10004(或图10和图11的点云解码器)的示例。图13所示的接收装置可以执行与参考图1至图11描述的点云解码器的那些相同或相似的一个或多个操作和方法。
[0199]
根据实施方式的接收装置包括接收器13000、接收处理器13001、算术解码器13002、基于占用代码的八叉树重构处理器13003、表面模型处理器(三角形重构、上采样、体素化)13004、逆量化处理器13005、元数据解析器13006、算术解码器13007、逆量化处理器13008、预测/提升/raht逆变换处理器13009、颜色逆变换处理器13010和/或渲染器13011。根据实施方式的每个解码元件可以执行根据实施方式的对应编码元件的操作的逆过程。
[0200]
根据实施方式的接收器13000接收点云数据。接收器13000可以执行与图1的接收器10005的操作和/或接收方法相同或相似的操作和/或接收方法。省略其详细描述。
[0201]
根据实施方式的接收处理器13001可以从所接收的数据获取几何比特流和/或属性比特流。接收处理器13001可以包括在接收器13000中。
[0202]
算术解码器13002、基于占用代码的八叉树重构处理器13003、表面模型处理器13004和逆量化处理器13005可以执行几何解码。根据实施方式的几何解码与参考图1至图10描述的几何解码相同或相似,因此省略其详细描述。
[0203]
根据实施方式的算术解码器13002可以基于算术编译对几何比特流进行解码。算术解码器13002执行与算术解码器11000的操作和/或编译相同或相似的操作和/或编译。
[0204]
根据实施方式的基于占用代码的八叉树重构处理器13003可以通过从解码的几何比特流(或关于作为解码结果取得的几何的信息)获取占用代码来重构八叉树。基于占用代码的八叉树重构处理器13003执行与八叉树的合成器11001的操作和/或八叉树生成方法相同或相似的操作和/或方法。当应用三联体几何编码时,根据实施方式的表面模型处理器13004可以基于表面模型方法来执行三联体几何解码和相关几何重构(例如,三角形重构、上采样、体素化)。表面模型处理器13004执行与表面近似合成器11002和/或几何重构器
11003的操作相同或相似的操作。
[0205]
根据实施方式的逆量化处理器13005可逆量化解码的几何。
[0206]
根据实施方式的元数据解析器13006可解析包含在所接收的点云数据中的元数据(例如,设定值)。元数据解析器13006可将元数据传递给几何解码和/或属性解码。元数据与参考图12描述的元数据相同,因此省略其详细描述。
[0207]
算术解码器13007、逆量化处理器13008、预测/提升/raht逆变换处理器13009和颜色逆变换处理器13010执行属性解码。属性解码与参考图1至图10描述的属性解码相同或相似,因此省略其详细描述。
[0208]
根据实施方式的算术解码器13007可以通过算术编译对属性比特流进行解码。算术解码器13007可以基于重构的几何对属性比特流进行解码。算术解码器13007执行与算术解码器11005的操作和/或编译相同或相似的操作和/或编译。
[0209]
根据实施方式的逆量化处理器13008可逆量化解码的属性比特流。逆量化处理器13008执行与逆量化器11006的操作和/或逆量化方法相同或相似的操作和/或方法。
[0210]
根据实施方式的预测/提升/raht逆变换器13009可以处理重构的几何和逆量化的属性。预测/提升/raht逆变换处理器13009执行与raht变换器11007、lod生成器11008和/或逆提升器11009的操作和/或解码相同或相似的一个或多个操作和/或解码。根据实施方式的颜色逆变换处理器13010执行逆变换编译以逆变换包括在解码的属性中的颜色值(或纹理)。颜色逆变换处理器13010执行与颜色逆变换器11010的操作和/或逆变换编译相同或相似的操作和/或逆变换编译。根据实施方式的渲染器13011可以渲染点云数据。
[0211]
图14示出根据实施方式的用于流传输基于g-pcc的点云数据的架构。
[0212]
图14的上部示出由图1至图13中描述的发送装置(例如,发送装置10000、图12的发送装置等)处理和发送点云内容的过程。
[0213]
如参考图1至图13所描述的,发送装置可以获取点云内容的音频ba(音频获取),对获取的音频进行编码(音频编码),并且输出音频比特流ea。另外,发送装置可以获取点云内容的点云(或点云视频)bv(点获取),并且对所获取的点云执行点云编码以输出点云视频比特流eb。发送装置的点云编码与参考图1至图13描述的点云编码(例如,图4的点云编码器的编码)相同或相似,因此将省略其详细描述。
[0214]
发送装置可将所生成的音频比特流和视频比特流封装到文件和/或片段中(文件/片段封装)。封装的文件和/或片段fs、file可以包括诸如isobmff或dash片段的文件格式的文件。根据实施方式的点云相关元数据可以包含在封装的文件格式和/或片段中。元数据可以包含在isobmff文件格式上的各种级别的盒中,或者可以包含在文件内的单独轨道中。根据实施方式,发送装置将元数据封装到单独的文件中。根据实施方式的发送装置可经由网络传送封装的文件格式和/或片段。发送装置的封装和传输处理方法与参考图1至图13描述的相同(例如,发送器10003、图2的传输步骤20002等),因此将省略其详细描述。
[0215]
图14的下部示出由参考图1至图13描述的接收装置(例如,接收装置10004、图13的接收装置等)处理和输出点云内容的过程。
[0216]
根据实施方式,接收装置可以包括被配置为输出最终音频数据和最终视频数据的装置(例如,扬声器、耳机、显示器)以及被配置为处理点云内容的点云播放器(点云播放器)。最终数据输出装置和点云播放器可以被配置成单独的物理装置。根据实施方式的点云
播放器可以执行基于几何的点云压缩(g-pcc)编译、基于视频的点云压缩(v-pcc)编译和/或下一代编译。
[0217]
根据实施方式的接收装置可以取得包含在所接收的数据(例如,广播信号、经由网络发送的信号等)中的文件和/或片段f’,fs’并将其解封装(文件/片段解封装)。接收装置的接收和解封装方法与参考图1至图13描述的那些(例如,接收器10005、接收单元13000、接收处理单元13001等)相同,因此将省略其详细描述。
[0218]
根据实施方式的接收装置取得包含在文件和/或片段中的音频比特流e’a和视频比特流e’v。如图所示,接收装置通过对音频比特流执行音频解码来输出解码的音频数据b’a,并且渲染解码的音频数据(音频渲染)以通过扬声器或耳机输出最终音频数据a’a。
[0219]
另外,接收装置对视频比特流e’v执行点云解码并输出解码的视频数据b’v。根据实施方式的点云解码与参考图1至图13描述的点云解码(例如,图11的点云解码器的解码)相同或相似,因此将省略其详细描述。接收装置可以渲染解码的视频数据并通过显示器输出最终视频数据。
[0220]
根据实施方式的接收装置可以基于所发送的元数据来执行解封装、音频解码、音频渲染、点云解码和点云视频渲染中的至少一个。元数据的细节与参考图12至图13描述的那些相同,因此将省略其描述。
[0221]
如图中所示的虚线所指示,根据实施方式的接收装置(例如,点云播放器或点云播放器中的感测/跟踪单元)可以生成反馈信息(取向、视口)。根据实施方式,反馈信息可以在接收装置的解封装过程、点云解码过程和/或渲染过程中使用,或者可以被传送至发送装置。反馈信息的细节与参考图1至图13描述的那些相同,因此将省略其描述。
[0222]
图15示出根据实施方式的示例性发送装置。
[0223]
图15的发送装置是被配置为发送点云内容的装置,并且对应于参考图1至图14描述的发送装置(例如,图1的发送装置10000、图4的点云编码器、图12的发送装置、图14的发送装置)的示例。因此,图15的发送装置执行与参考图1至图14描述的发送装置相同或相似的操作。
[0224]
根据实施方式的发送装置可以执行点云获取、点云编码、文件/片段封装和传送中的一个或多个。
[0225]
由于图中所示的点云获取和传送的操作与参考图1至图14描述的操作相同,所以将省略其详细描述。
[0226]
如上面参考图1至图14描述的,根据实施方式的发送装置可以执行几何编码和属性编码。几何编码可以被称为几何压缩,属性编码可以被称为属性压缩。如上所述,一个点可具有一个几何和一个或多个属性。因此,发送装置对每个属性执行属性编码。图中示出发送装置执行一个或多个属性压缩(属性#1压缩、...、属性#n压缩)。另外,根据实施方式的发送装置可以执行辅助压缩。对元数据执行辅助压缩。元数据的细节与参考图1至图14描述的那些相同,因此将省略其描述。发送装置还可以执行网格数据压缩。根据实施方式的网格数据压缩可以包括参考图1至图14描述的三联体几何编码。
[0227]
根据实施方式的发送装置可将根据点云编码输出的比特流(例如,点云流)封装到文件和/或片段中。根据实施方式,发送装置可以执行媒体轨道封装以用于承载元数据以外的数据(例如,媒体数据),并且执行元数据轨道封装以用于承载元数据。根据实施方式,元
数据可以被封装到媒体轨道中。
[0228]
如参考图1至图14所描述的,发送装置可以从接收装置接收反馈信息(取向/视口元数据),并且基于所接收的反馈信息执行点云编码、文件/片段封装和传送操作中的至少一个。细节与参考图1至图14描述的那些相同,因此将省略其描述。
[0229]
图16示出根据实施方式的示例性接收装置。
[0230]
图16的接收装置是用于接收点云内容的装置,并且对应于参考图1至图14描述的接收装置的示例(例如,图1的接收装置10004、图11的点云解码器和图13的接收装置、图14的接收装置)。因此,图16的接收装置执行与参考图1至图14描述的接收装置相同或相似的操作。图16的接收装置可以接收从图15的发送装置发送的信号,并且执行图15的发送装置的操作的逆过程。
[0231]
根据实施方式的接收装置可以执行传送、文件/片段解封装、点云解码和点云渲染中的至少一个。
[0232]
由于图中所示的点云接收和点云渲染操作与参考图1至图14描述的那些相同,所以将省略其详细描述。
[0233]
如参考图1至图14描述的,根据实施方式的接收装置将从网络或存储装置获取的文件和/或片段解封装。根据实施方式,接收装置可以执行媒体轨道解封装以用于承载元数据以外的数据(例如,媒体数据),并且执行元数据轨道解封装以用于承载元数据。根据实施方式,在元数据被封装到媒体轨道中的情况下,省略元数据轨道解封装。
[0234]
如参考图1至图14描述的,接收装置可以对通过解封装取得的比特流(例如,点云流)执行几何解码和属性解码。几何解码可以被称为几何解压缩,属性解码可以被称为属性解压缩。如上所述,一个点可具有一个几何和一个或多个属性,其各自由发送装置编码。因此,接收装置对每个属性执行属性解码。图中示出接收装置执行一个或多个属性解压缩(属性#1解压缩、...、属性#n解压缩)。根据实施方式的接收装置还可以执行辅助解压缩。对元数据执行辅助解压缩。元数据的细节与参考图1至图14描述的那些相同,因此将省略其混乱。接收装置还可以执行网格数据解压缩。根据实施方式的网格数据解压缩可以包括参考图1至图14描述的三联体几何解码。根据实施方式的接收装置可以渲染根据点云解码输出的点云数据。
[0235]
如参考图1至图14描述的,接收装置可使用单独的感测/跟踪元件来取得取向/视口元数据,并且将包括其的反馈信息发送到发送装置(例如,图15的发送装置)。另外,接收装置可以基于反馈信息执行接收操作、文件/片段解封装和点云解码中的至少一个。细节与参考图1至图14描述的那些相同,因此将省略其描述。
[0236]
图17示出根据实施方式的操作上可与发送和接收点云数据的方法/装置连接的示例性结构。
[0237]
图17的结构表示服务器1760、机器人1710、自驾驶车辆1720、xr装置1730、智能电话1740、家用电器1750和/或hmd 1770中的至少一个连接到云网络1700的配置。机器人1710、自驾驶车辆1720、xr装置1730、智能电话1740或家用电器1750被称为装置。此外,xr装置1730可以对应于根据实施方式的点云数据(pcc)装置或者可操作上连接到pcc装置。
[0238]
云网络1700可表示构成云计算基础设施的一部分或存在于云计算基础设施中的网络。这里,云网络1700可使用3g网络、4g或长期演进(lte)网络或5g网络来配置。
[0239]
服务器1760可经由云网络1700连接到机器人1710、自驾驶车辆1720、xr装置1730、智能电话1740、家用电器1750和/或hmd 1770中的至少一个,并且可辅助连接的装置1710至1770的至少一部分处理。
[0240]
hmd 1770表示根据实施方式的xr装置和/或pcc装置的实现类型之一。根据实施方式,hmd型装置包括通信单元、控制单元、存储器、i/o单元、传感器单元和电源单元。
[0241]
以下,将描述应用了上述技术的装置1710至1750的各种实施方式。图17所示的装置1710至1750可操作上连接/联接到根据上述实施方式的点云数据发送/接收装置。
[0242]
《pcc+xr》
[0243]
xr/pcc装置1730可以采用pcc技术和/或xr(ar+vr)技术,并且可以被实现为hmd、设置在车辆中的平视显示器(hud)、电视、移动电话、智能电话、计算机、可穿戴装置、家用电器、数字标牌、车辆、固定机器人或移动机器人。
[0244]
xr/pcc装置1730可以分析通过各种传感器或从外部装置获取的3d点云数据或图像数据并生成关于3d点的位置数据和属性数据。由此,xr/pcc装置1730可以获取关于周围空间或真实对象的信息,并且渲染和输出xr对象。例如,xr/pcc装置1730可使包括关于所识别的对象的辅助信息的xr对象与所识别的对象匹配并输出匹配的xr对象。
[0245]
《pcc+自驾驶+xr》
[0246]
自驾驶车辆1720可以通过应用pcc技术和xr技术被实现为移动机器人、车辆、无人驾驶飞行器等。
[0247]
应用了xr/pcc技术的自驾驶车辆1720可表示设置有用于提供xr图像的手段的自主车辆,或者作为xr图像中的控制/交互目标的自主车辆。具体地,作为xr图像中的控制/交互目标,自驾驶车辆1720可与xr装置1730相区分并且可操作上与之连接。
[0248]
具有用于提供xr/pcc图像的手段的自驾驶车辆1720可以从包括相机的传感器获取传感器信息,并且基于所获取的传感器信息来输出所生成的xr/pcc图像。例如,自驾驶车辆1720可具有hud并向其输出xr/pcc图像以向乘客提供与真实对象或呈现在画面上的对象对应的xr/pcc对象。
[0249]
在这种情况下,当xr/pcc对象被输出到hud时,可输出xr/pcc对象的至少一部分以与乘客的眼睛所指向的真实对象交叠。另一方面,当xr/pcc对象输出在设置在自驾驶车辆内的显示器上时,可输出xr/pcc对象的至少一部分以与画面上的对象交叠。例如,自驾驶车辆1220可输出与诸如道路、另一车辆、交通灯、交通标志、两轮车、行人和建筑物的对象对应的xr/pcc对象。
[0250]
根据实施方式的虚拟现实(vr)技术、增强现实(ar)技术、混合现实(mr)技术和/或点云压缩(pcc)技术适用于各种装置。
[0251]
换言之,vr技术是仅提供真实世界对象、背景等的cg图像的显示技术。另一方面,ar技术是指在真实对象的图像上显示虚拟创建的cg图像的技术。mr技术与上述ar技术的相似之处在于,要显示的虚拟对象与真实世界混合和组合。然而,mr技术与ar技术的不同之处在于,ar技术在真实对象和作为cg图像创建的虚拟对象之间明确区分并且使用虚拟对象作为真实对象的补充对象,而mr技术将虚拟对象当作具有与真实对象等同的特性的对象。更具体地,mr技术应用的示例是全息服务。
[0252]
最近,vr、ar和mr技术通常被称为扩展显示(xr)技术,而非彼此明确区分。因此,本
公开的实施方式适用于vr、ar、mr和xr技术中的任一种。基于pcc、v-pcc和g-pcc技术的编码/解码适用于这种技术。
[0253]
根据实施方式的pcc方法/装置可以被应用于提供自驾驶服务的车辆。
[0254]
提供自驾驶服务的车辆连接到pcc装置以进行有线/无线通信。
[0255]
当根据实施方式的点云数据(pcc)发送/接收装置连接到车辆以进行有线/无线通信时,装置可以接收/处理与ar/vr/pcc服务(可与自驾驶服务一起提供)有关的内容数据,并将其发送到车辆。在pcc发送/接收装置安装在车辆上的情况下,pcc发送/接收装置可以根据通过用户接口装置输入的用户输入信号接收/处理与ar/vr/pcc服务有关的内容数据并将其提供给用户。根据实施方式的车辆或用户接口装置可以接收用户输入信号。根据实施方式的用户输入信号可以包括指示自驾驶服务的信号。
[0256]
图18是示出示例性点云编码器的框图。
[0257]
根据实施方式的点云编码器1800(例如,图1的点云视频编码器10002、图4的点云编码器、参考图12、图14和图15描述的点云编码器)可以执行参考图1至图17描述的编码操作。根据实施方式的点云编码器1800可以包括空间分割器1810、几何信息编码器1820和属性信息编码器1830。尽管图18中未示出,根据实施方式的点云编码器1800还可以包括一个或多个元件以执行参考图1至图17描述的编码操作。
[0258]
点云压缩(pcc)数据(或pcc数据或点云数据)是点云编码器1800的输入数据并且可以包括几何和/或属性。根据实施方式的几何是指示点的位置的信息,并且可以被表示为诸如笛卡尔坐标系、柱坐标系或球坐标系的坐标系的参数。根据实施方式,几何可以被称为几何信息,属性可以被称为属性信息。
[0259]
根据实施方式的空间分割器1810可以生成点云数据的几何和属性。根据实施方式的空间分割器1810可将点云数据分割为3d空间中的一个或多个3d块,以便存储点云数据的点信息。根据实施方式的块可表示拼块组、拼块、切片、编译单元(cu)、预测单元(pu)或变换单元(tu)中的至少一个。根据实施方式的空间分割器1810可以基于八叉树、四叉树、二叉树、三叉树或k-d树中的至少一个来执行分割操作。块可以包含一个或多个点。根据实施方式的块可以是具有预设宽度、深度和高度的六面体形状的块。根据实施方式的块的大小是可改变的,不限于上述示例。根据实施方式的空间分割器1810可以生成关于包含在块中的一个或多个点的几何信息。
[0260]
根据实施方式的几何信息编码器(或几何编码器)1820可以执行几何编码并生成几何比特流和重构的几何信息。在根据实施方式的几何编码中,重构的几何信息被输入到属性信息编码器(或属性编码器)1830。根据实施方式的几何信息编码器1820可以执行参考图4描述的坐标变换器40000、量化器40001、八叉树分析器40002、表面近似分析器40003、算术编码器40003和几何重构器(重构几何)40005的至少一个操作。另外,根据实施方式的几何信息编码器1820可以执行参考图12描述的数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码生成器12003、表面模型处理器12004、帧内/帧间编译处理器12005、算术编码器12006和元数据处理器12007的至少一个操作。
[0261]
根据实施方式的属性信息编码器1830可以基于重构的几何信息和属性来生成属性信息比特流(或属性比特流)。
[0262]
根据实施方式的点云编码器可发送复用有几何信息比特流和属性信息比特流或
几何信息比特流和属性信息比特流的比特流。如上所述,比特流还可以包括与几何信息和属性信息有关的信令信息以及与坐标变换有关的信令信息。另外,根据实施方式的点云编码器可将比特流封装并将其以片段和/或文件的形式发送。
[0263]
图19是示出示例性几何信息编码器的框图。
[0264]
根据实施方式的几何信息编码器1900(或几何编码器)是图18的几何信息编码器1820的示例,并且可以执行几何编码。由于根据实施方式的几何编码与参考图1至图18描述的几何编码相同或相似,所以将省略其详细描述。如图所示,几何信息编码器1900可以包括坐标变换器1910、几何信息变换量化器1920、几何信息预测器1930、残差几何信息量化器1940、几何信息熵编码器1950、残差几何信息逆量化器1960、滤波器1970和存储器1980。尽管图19中未示出,根据实施方式的几何信息编码器1900还可以包括一个或多个元件执行参考图1至图18描述的几何编码。
[0265]
根据实施方式的坐标变换器1910可将所接收的几何信息变换为坐标系中的信息,以便将输入的几何信息所指示的每个点的位置表示为3d空间中的位置。坐标变换器1910执行与参考图4描述的坐标变换器40000的操作相同或相似的操作。如上所述,根据实施方式的坐标系可以包括(但不限于)三维笛卡尔坐标系、柱坐标系和球坐标系。根据实施方式的坐标变换器1910可将设定的坐标系变换为另一坐标系。
[0266]
根据实施方式的坐标变换器1910可以对诸如序列、帧、拼块、切片或块的单元执行坐标变换。根据实施方式,可以基于每个序列、帧、拼块、切片或块发信号通知是否变换坐标和与坐标系和/或变换有关的信息。因此,根据实施方式的点云数据接收装置可以基于邻居块的坐标变换状态、块的大小、点的数量、量化值、块分割深度、单元的位置、单元与原点之间的距离等来获得与坐标系和/或变换有关的信息。
[0267]
根据实施方式的几何信息变换量化器1920可量化呈现在坐标系中的几何信息并生成变换量化的几何信息。根据实施方式的几何信息变换量化器1920可以对从坐标变换器1910输出的几何信息所指示的点位置应用诸如位置变换和/或旋转变换的一个或多个变换,并且通过将变换的几何信息除以量化值来执行量化。几何信息变换量化器1920可以执行与图4的量化器40001和/或图12的量化处理器12001的操作相同或相似的操作。根据实施方式的量化值可以基于编码单元(例如,拼块、切片等)与坐标系原点之间的距离或与参考方向的角度而变化。根据实施方式,量化值可以是预设值。
[0268]
根据实施方式的几何信息预测器1930可以基于邻居编译单元的量化值来计算预测值(或预测几何信息)。
[0269]
残差几何信息量化器1940可以接收变换量化的几何信息和通过减去预测值而获得的残差几何信息,并且利用量化值量化残差几何信息以生成量化的残差几何信息。
[0270]
几何信息熵编码器1950可以对量化的残差几何信息进行熵编码。根据实施方式的熵编码可以包括指数哥伦布(golomb)、上下文自适应可变长度编码(cavlc)和上下文自适应二进制算术编码(cabac)。
[0271]
残差几何信息逆量化器1960可以通过利用量化值缩放量化的几何信息来重构残差几何信息。重构的残差几何信息和预测的几何信息可以被求和以生成重构的几何信息。
[0272]
滤波器1970可以对重构的几何信息进行滤波。根据实施方式,滤波器1970可以包括去块滤波器和偏移校正器。根据实施方式的滤波器1970可针对通过将两个编译单元不同
地坐标变换而获得的几何信息来在两个不同编译单元之间的边界上执行附加滤波。
[0273]
存储器1980可存储重构的几何信息(或恢复的几何信息)。所存储的几何信息可以被提供给几何信息预测器1930。另外,存储在存储器中的重构的几何信息可以被提供给参考图18描述的属性信息编码器1830。
[0274]
图20示出根据实施方式的示例性属性信息编码器。
[0275]
图20所示的属性信息编码器2000可以作为参考图18描述的属性信息编码器1830的示例执行属性编码。由于根据实施方式的属性编码与参考图1至图17描述的属性编码相同或相似,所以将省略其详细描述。如图所示,根据实施方式的属性信息编码器2000可以包括属性特性变换器2010、几何信息映射器2020、属性信息变换器2030、属性信息量化器2040和属性信息熵编码器2050。
[0276]
根据实施方式的属性特性变换器2010可以接收属性信息并变换所接收的属性信息的特性(例如,颜色等)。例如,当属性信息包括颜色信息时,属性特性变换器2010可以变换属性信息的颜色空间(例如,从rgb至ycbcr)。另外,属性特性变换器2010可选择性地跳过属性信息的特性的变换。属性特性变换器2010可以执行与属性变换器40007和/或颜色变换处理器12008的操作相同或相似的操作。
[0277]
根据实施方式的几何信息映射器2020可以通过映射从属性特性变换器2010输出的属性信息和所接收的重构的几何信息来生成重构的属性信息。几何信息映射器2020可以通过基于重构的几何信息重构关于一个或多个点的属性信息来生成属性信息。如上所述,可以基于体素的中值来重构关于包括在一个体素中的一个或多个点的几何信息。由于属性信息依赖于几何信息,所以几何信息映射器2020基于重构的几何信息来重构属性信息。几何信息映射器2020可以执行与属性变换处理器12009的操作相同或相似的操作。
[0278]
根据实施方式的属性信息变换器2030可以接收和变换重构的属性信息。根据实施方式的属性信息变换器2030可预测属性信息并使用一个或多个变换类型(例如,dct、dst、sadct、raht)来变换与所接收的重构的属性信息与预测的属性信息之间的残差对应的残差属性信息。
[0279]
根据实施方式的属性信息量化器2040可以接收变换的残差属性信息并基于量化值来生成变换量化的残差属性信息。
[0280]
根据实施方式的属性信息熵编码器2050可以接收变换量化的残差属性信息,对其执行熵编码,并且输出属性信息比特流。根据实施方式的熵编码可以包括(但不限于)指数golomb、cavlc和cabac中的一个或多个。属性信息熵编码器2050可以执行与算术编码器12011的操作相同或相似的操作。
[0281]
图21示出根据实施方式的示例性属性信息编码器。
[0282]
图21所示的属性信息编码器2100对应于参考图18描述的属性信息编码器1830和参考图20描述的属性信息编码器2000的示例。根据实施方式的属性信息编码器2100可以包括属性特性变换器2110、几何信息映射器2120、属性信息预测器2130、残差属性信息变换器2140、残差属性信息逆变换器2145、残差属性信息量化器2150、残差属性信息逆量化器2155、滤波器2160、存储器2170和属性信息熵编码器2180。图21所示的属性信息编码器2100与图20所示的属性信息编码器2000的不同之处在于,在编码器中还包括残差属性信息变换器2140、残差属性信息逆变换器2145、残差属性信息量化器2150、残差属性信息逆量化器
2155、滤波器2160和存储器2170。
[0283]
根据实施方式的属性特性变换器2110和几何信息映射器2120可以执行与参考图20描述的属性特性变换器2010和几何信息映射器2020的操作相同或相似的操作。根据实施方式的属性信息预测器2130可以生成预测的属性信息。残差属性信息变换器2140可以接收通过获得从几何信息映射器2120输出的重构属性信息与预测的属性信息之间的差异而生成的残差属性信息。残差属性信息变换器2140可使用一个或多个变换类型(例如,dct、dst、sadct、raht等)来变换包括所接收的残差属性信息的残差3d块。
[0284]
根据实施方式的残差属性信息量化器2150可以基于量化值来变换输入的变换残差属性信息。变换的残差属性信息可以被输入到残差属性信息逆量化器2155。根据实施方式的残差属性信息逆量化器2155可以基于量化值来变换变换量化的残差属性信息并生成变换的残差属性信息。由残差属性信息逆量化器2155生成的变换的残差属性信息被输入到残差属性逆变换器2145。根据实施方式的残差属性逆变换器2145可使用一个或多个变换类型(例如,dct、dst、sadct、raht等)来逆变换包括变换的残差属性信息的残差3d块。根据实施方式,可以通过将逆变换的残差属性信息和从属性信息预测器2130输出的预测的属性信息组合来生成重构的属性信息。根据实施方式,可以通过将非逆变换的残差属性信息和预测的属性信息组合来生成重构的属性信息。重构的属性信息可以被输入到滤波器2160。根据实施方式的属性信息预测器2130、残差属性信息变换器2140和/或残差属性信息量化器2150可以执行与预测/提升/raht变换处理器12010的操作相同或相似的操作。
[0285]
根据实施方式的滤波器2160可以对重构的属性信息进行滤波。根据实施方式的滤波器2160可以包括去块滤波器、偏移校正器和自适应环路滤波器(alf)。滤波器2160可以执行与图19的滤波器1970的操作相同或相似的操作。
[0286]
根据实施方式的存储器2170可存储从滤波器2160输出的重构的属性信息。所存储的重构的属性信息可以作为输入数据提供以用于属性信息预测器2130的预测操作。属性信息预测器2130可以基于关于点的重构的属性信息来生成预测的属性信息。尽管在图中存储器2170被示出为一个块,但其可以包括一个或多个物理存储器。根据实施方式的属性信息熵编码器2180可以执行与参考图20描述的属性信息熵编码器2050的操作相同或相似的操作。
[0287]
图22示出根据实施方式的示例性属性信息预测器。
[0288]
图22所示的属性信息预测器2200对应于参考图21描述的属性信息预测器2130的示例。属性信息预测器2200可以执行与属性信息预测器2130的操作相同或相似的操作。根据实施方式的属性信息预测器2200可以包括lod配置器2210和邻居点集合配置器2220。lod配置器2210可以执行与lod生成器40009的操作相同或相似的操作。即,如图所示,lod配置器2210可以接收属性和重构的几何,并且基于所接收的属性和重构的几何来配置一个或多个lod。如上参考图4和图8所述,可以通过将分布在3d空间中的点重新组织为细化级别的集合来生成lod。根据实施方式,lod可以包括以规则间隔分布的一个或多个点。如上所述,根据实施方式的lod指示点云内容的细节级别。因此,由lod(或lod值)指示的级别降低,点云内容的细节可能劣化。随着由lod指示的级别升高,点云内容的细节增强。即,指示更高级别的lod可以包括以更短间隔分布的点。根据实施方式的点云编码器(例如,图4的点云编码器)和点云解码器(例如,图11的点云解码器)可以生成lod以增加属性压缩率。由于具有相
似属性的点很有可能在目标点的邻域内,所以基于具有相似属性的邻近点获得的预测属性与目标点的属性之间的残差值很有可能接近0。因此,根据实施方式的点云编码器和点云解码器可以生成lod以便选择可用于属性预测的适当邻近点。
[0289]
根据实施方式的lod配置器2210可以使用一种或多种方法来配置lod。如上所述,点云解码器(例如,参考图10至图11描述的点云解码器)也可以生成lod。因此,根据实施方式的与一种或多种lod配置方法(或lod生成方法)有关的信息被包括在通过几何编码和属性编码生成的比特流中。从lod配置器2210输出的lod被发送到预测变换器/逆变换器和提升变换器/逆变换器中的至少一个。
[0290]
根据实施方式的lod配置器2210可以基于一种或多种方法来生成lod,该一种或多种方法可以降低计算点之间的距离的复杂性,同时在生成集合lod1时保持点之间的特定距离。
[0291]
根据实施方式的lod配置器2210可以基于点的莫顿码来配置lod。如上所述,莫顿码将所有点的三维位置的坐标值(例如(x,y,z))表示为比特值,并且通过对比特进行混合来生成。
[0292]
根据实施方式的lod配置器2210可以基于重构的几何生成每个点的莫顿码,并且基于莫顿码以升序排列每个点。以莫顿码的升序排列的点的顺序可以被称为莫顿顺序。lod配置器2210可以通过对以莫顿顺序排列的点执行采样来配置lod。根据实施方式的lod配置器能够以各种方式执行采样。例如,根据实施方式的lod配置器2210能够以包括在与节点相对应的每个区域中的点的莫顿顺序,基于采样率间隙来顺序地选择点。也就是说,lod配置器可以根据莫顿顺序选择第一排列点(第0点),并且选择按照采样率与第一点隔开的、与采样数量一样多的点(例如,对于采样率5,从第一点的第5个点)。另外,根据实施方式的lod配置器可以基于节点的中心点的莫顿码值和邻居点的莫顿码值来选择与采样数量一样多的点,这些点具有的莫顿码值最接近中心点的莫顿码值。
[0293]
如参考图9所述,根据实施方式的点云编码器(或属性信息预测器)可以执行预测变换编译,以通过生成点的预测器来配置每个点的预测属性(或预测属性值)。也就是说,可以为n个点生成n个预测器。
[0294]
当生成每个lod(或lod集合)时,根据实施方式的邻居点集合配置器2220可以搜索或检索lod1集合的点的一个或多个邻居点。一个或多个邻居点的数量可以是x,其中x是大于零的整数。根据实施方式的邻居点是在3d空间中位于最接近lod1集合的点的最近邻居(nn)点,并且被包括在与目标lod(例如,lod1)相同的lod中或被包括在比目标lod更低级别的lod集合(例如,lod
1-1
,lod
1-2
...,lod0)中。根据实施方式的邻居点集合配置器2220可以将一个或多个所搜索的邻居点注册为预测器中的邻居点集合。
[0295]
根据实施方式的邻居点的数量可以根据用户输入信号被设置为邻居点的最大数量,或者可以根据邻居点搜索方法被预设为特定值。
[0296]
根据实施方式的邻居点集合配置器2220可以在lod0和lod1中搜索属于图9所示的lod1的点p3的邻居点。如图9所示,lod0包括p0、p5、p4和p2。lod2包括lod0的点、lod1的点、p9、p8和p7。当邻居点的数量x是3时,邻居点集合配置器2220在图9的顶部所示的3d空间中,从属于lod0或lod1的点中搜索最接近p3的三个邻居点。也就是说,邻居点集合配置器2220可以搜索属于lod1的p6(其处于相同的lod级别)以及属于lod0的p2和p4(其处于较低的lod级
别),作为p3的邻居点。在3d空间中,p7是接近p3的点,但是不被搜索为邻居点,因为它处于更高的lod级别。邻居点集合配置器2220可以将搜索到的邻居点p2、p4和p6注册为p3的预测器中的邻居点集合。根据实施方式的生成邻居点的集合的方法不限于该示例。通过包括上述编码的点云视频数据的比特流,将关于根据实施方式的生成邻居点的集合的方法的信息(在下文中,称为邻居点集合生成信息)发送到接收装置(例如,图1的接收装置10004、图10和图11的点云解码器等)。
[0297]
如上所述,每个点可以具有一个预测器。根据实施方式的点云编码器可以通过应用预测器来对相应点的属性值进行编码,并且可以生成预测属性(或预测属性值)。根据实施方式,在lod生成之后,基于搜索到的邻居点来生成预测器。预测器被用于预测目标点的属性。因此,预测器可以通过对邻居点的属性应用权重来生成预测属性。
[0298]
例如,预测器可以基于目标点(例如,p3)与邻居点集合中的每个邻居点之间的距离值(例如,1/2距离)来计算和注册权重。如上所述,由于p3的邻居点集合包括p2、p4和p6,因此根据实施方式的点云编码器(或预测器)基于p3与每个邻居点之间的距离值来计算权重。因此,每个邻居点的权重被表示为当配置了用于预测器的邻居点的集合时,根据实施方式的点云编码器可以利用邻居点的权重的总和来归一化邻居点的权重。例如,节点p3的邻居点集合中的所有邻居点的权重之和被表示如下。通过将权重之和(total_weight)除以每个邻居点的权重生成的归一化权重被表示为
[0299]
根据实施方式的点云编码器(或属性信息预测器)可以通过预测器预测属性。根据实施方式的预测属性(或预测属性信息)可以是通过将所注册的邻居点的属性乘以所计算的权重而获得的值的平均,如参考图9所述,或可以是通过将特定点的属性乘以权重而获得的值。根据实施方式,在预先计算压缩结果值之后,点云编码器可以将预测属性值选择性地用于生成上述属性值中的最小流。预测属性的方法不限于上述示例。
[0300]
根据实施方式的点云编码器(例如,系数量化器40011等)可以对关于点的属性值、预测属性值的残差和所选择的预测属性的信息(或关于选择预测属性的方法的信息)进行编码,并且将其发送到接收装置(例如,图1的接收装置10004或图10和图11的点云解码器)。根据实施方式的接收装置执行与由发送装置执行的lod生成、邻居点集合生成、邻居点的加权归一化和属性预测相同的处理。接收装置可以使用与由发送装置基于关于所选择的预测属性的信息执行的方法相同的方法来预测属性。接收装置可以解码所接收的残差值,并且通过将解码的残差值与预测的属性值相加来重构属性值。
[0301]
图23示出了设置邻居点搜索范围的示例。
[0302]
图23是由邻居点集合配置器(例如,图23的邻居点集合配置器2220)设置邻居点搜索范围的示例2300。图23中所示的箭头2310指示根据实施方式的莫顿顺序。
[0303]
如上所述,根据实施方式的点云编码器可以通过将点的位置值(例如,表示三维空间的坐标系中的坐标值(x,y,z))表示为比特值并混合比特来生成每个点的莫顿码。以莫顿
码的升序排列点。因此,以莫顿顺序排列的点中的第一点具有最小莫顿码。根据实施方式的邻居点集合配置器可以对集合lod0至lod
1-1
的点和集合lod1的点之中,按照莫顿顺序,位于属于集合lod1的点px之前的点(即,具有等于或小于px的莫顿码的点)执行邻居点搜索操作,以生成用于点px的邻居点集合(2320)。邻居点集合配置器可以设置邻居点搜索范围。邻居点集合配置器可以在按照莫顿顺序,位于点px之前的点当中搜索具有与点px的莫顿码最接近的莫顿码的点2330。邻居点集合配置器可以按照莫顿顺序,在位于点px之后的点之中搜索莫顿码等于或大于点px的莫顿码或者大于点px的莫顿码的点。根据实施方式,检测的点2330可以被称为中心点。搜索中心点2330的方法不限于该示例。根据实施方式的邻居点配置器可以根据搜索中心点2330的方法来移位搜索范围,以增加属性编码的压缩率。关于根据实施方式的搜索中心点2330的方法的信息被包括在邻居点集合生成信息中,并且在包括上述编码的点云视频数据的比特流中被发送到接收装置(例如,图1的接收装置10004或图10和图11的点云解码器)。当根据实施方式存在一个lod时,邻居点集合配置器可以基于按照莫顿顺序的目标预测点(例如,px)的位置来确定邻居点搜索范围。
[0304]
邻居点集合配置器可以基于所检测的中心点2330来设置邻居点搜索范围2335。根据实施方式的邻居点搜索范围2335可以包括按照莫顿顺序位于中心点2330之前和之后的一个或多个点。根据实施方式的关于邻居点搜索范围的信息可以被包括在邻居点集合生成信息中,并且在包括所编码的点云视频数据的比特流中被发送到接收装置。邻居点集合配置器可以比较在中心点2330周围确定的邻居点搜索范围2335中包括的点和点px之间的距离,并且搜索与最接近点px的所配置的最大邻居点数量(例如,三个点)一样多的点。当lod的数量是1时,邻居点集合配置器可以按照莫顿顺序,在位于点px之前的点当中搜索邻居点。邻居点集合配置器可以比较点px和位于点px之前的点当中的与邻居点搜索范围中的点的数量一样多的点之间的距离,并且搜索与所配置的最大邻居点数量一样多的与点px最接近的点。根据实施方式的邻居点集合搜索方法不限于该示例。
[0305]
可以为每个lod设置根据实施方式的邻居点搜索范围。例如,lod1的邻居点搜索范围可以被设置为128,lod
1-1
的邻居点搜索范围可以被设置为等于或不同于64的值。可以通过将基于由每个lod表示的级别的变化率应用于参考邻居点搜索范围来设置根据实施方式的每个lod的邻居点搜索范围。关于每个lod的邻居点搜索范围的值的信息、关于用于设置每个lod的邻居点搜索范围的变化率的信息以及关于用于基于变化率设置每个lod的邻居点搜索范围的计算公式的信息被包括在根据实施方式的邻居点集合生成信息中。邻居点集合生成信息在包括编码的点云视频数据的比特流中被发送到接收装置(例如,图1的接收装置10004或图10和图11的点云解码器)。
[0306]
随着由lod表示的级别增加,根据实施方式的每个lod的邻居点搜索范围可以增加。根据实施方式的用于为每个lod设置邻居点搜索范围的计算公式给出如下。
[0307]
nn-search-range=searchrange*((lodindex+1.0)/levelofdetailcount)
[0308]
随着由lod表示的级别减小,根据实施方式的每个lod的邻居点搜索范围可以减小。根据实施方式的用于为每个lod设置邻居点搜索范围的计算公式给出如下。
[0309]
nn-search-range=searchrange*((levelofdetailcount-lodindex)/levelofdetailcount)
[0310]
下面描述上述计算公式的参数。
[0311]
nn-search-range指示要计算的lod的邻居点搜索范围。lodindex是lod的索引(级别),其是整数。levelofdetailcount表示lod的总数,并且searchrange表示参考邻居点搜索范围。
[0312]
邻居点配置器可以在参考图21至图23描述的邻居点搜索范围的点当中搜索接近目标预测点(例如,点px)的邻居点。根据实施方式的邻居点配置器可以搜索整个邻居点搜索范围,或者可以划分邻居点搜索范围并搜索划分的部分。关于由邻居点配置器使用的邻居点搜索方法的信息可以被包括在邻居点集合生成信息中,并且在包括所编码的点云视频数据的比特流中被发送到接收装置(例如,图1中的接收装置10004或图10和图11中的点云解码器)。因此,接收装置可以基于邻居点集合生成信息来搜索邻居点。
[0313]
图24示出了根据实施方式的示例性邻居点搜索过程。
[0314]
图24示出了基于由邻居点配置器(例如,图22的邻居点配置器2220)应用于lod生成的采样范围来搜索邻居点的过程的示例2400。根据实施方式的邻居点搜索方法与参考图23描述的邻居点搜索方法相同或类似。图24的示例2400示出了包括在第一采样范围2410、第二采样范围2420和第三采样范围2430中的点。第一采样范围2410可以包括点p0、p1、p2和p3,第二采样范围2420可以包括点p4、p5、p6和p7,以及第三采样范围2430可以包括点p8、p9和其他点(未示出)。当从第一采样范围2410选择点p2 2415时,邻居点配置器可以将点p22415注册为包括在第一采样范围2410中的点p0、p1和p3的邻居点。当从第二采样范围2420选择点p5 2425时,邻居点配置器可以将点p52425设置为包括在第一采样范围2410中的点p0、p1和p3以及包括在第二采样范围2420中的点p4、p6和p7的邻居点。因此,根据实施方式的邻居点配置器可以搜索并注册从第一采样范围2410选择的点p22415、从第二采样范围2420选择的点p5 2425和从第三采样范围2430选择的点p8 2435,作为包括在第二采样范围2420中的点p4的邻居点。根据实施方式的邻居点搜索方法消除了计算所有其他点与点px(例如,点p4)之间的距离的需要,从而降低了邻居点搜索的复杂度。
[0315]
图25示出了根据实施方式的示例性邻居点搜索过程。
[0316]
图25示出了基于由邻居点配置器(例如,图22的邻居点配置器2220)应用于lod生成的采样范围来搜索邻居点的过程的示例2500和2540。根据该实施方式的邻居点搜索方法与参考图23描述的邻居点搜索方法相同或类似。图25的上半部分是参考图23描述的自注册的示例2500,而图25的下半部分是参考图23描述的成对注册的示例2540。图25的示例2500和2540示出了包括在第一采样范围2510、第二采样范围2520和第三采样范围2530中的点。第一采样范围2510可以包括点p0、p1、p2和p3,第二采样范围2520可以包括点p4、p5、p6和p7,以及第三采样范围2530可以包括点p8、p9和其他点(未示出)。
[0317]
根据实施方式的自注册的示例2500示出了将从每个采样范围选择的点注册为包括在同一采样范围中的其他点的邻居点的过程。当从第一采样范围2510选择点p2 2515时,邻居点配置器将点p2 2515注册为包括在第一采样范围2510中的点p0、p1和p3的邻居点。此外,当从第二采样范围2520选择点p5 2525时,邻居点配置器将点p5 2525注册为包括在第二采样范围2520中的点p4、p6和p7的邻居点。根据实施方式的邻居点配置器能够以相同的方式对第三采样范围2530执行注册。
[0318]
根据实施方式的成对注册的示例2540示出了基于针对相应采样范围选择的点之间的距离来搜索包括在不同采样范围中的点的邻居点的过程。根据实施方式的邻居点配置
器计算从第一采样范围2510选择的点p2 2515与从第二采样范围2520选择的点p5 2525之间的距离。当所计算的距离小于预设阈值时,邻居点配置器可以将点p2 2515注册为包括在第二采样范围2520中的点p4、p6和p7的邻居点(2545)。此外,邻居点配置器可以将点p5 2525注册为包括在第一采样范围2510中的点p0、p1和p3的邻居点(2545-1)。诸如预设阈值的关于邻居点搜索方法的信息被包括在邻居点集合生成信息中,并且在包括所编码的点云视频数据的比特流中被发送到接收装置(例如,图1中的接收装置10004或图10和图11的点云解码器)。因此,接收装置可以基于邻居点集合生成信息来搜索邻居点。
[0319]
图26示出了点云压缩(pcc)比特流的示例性结构图。
[0320]
如上所述,点云数据发送装置(例如,参考图1、图12、图14和图15描述的点云数据发送装置)能够以比特流2600的形式发送编码的点云数据。根据该实施方式的比特流2600可以包括一个或多个子比特流。
[0321]
点云数据发送装置(例如,参考图1、图12、图14和图15描述的点云数据发送装置)可以考虑到传输信道的衰减,将点云数据的图像划分为一个或多个分组,并且通过网络发送分组。根据实施方式,比特流2600可以包括一个或多个分组(例如,网络抽象层(nal)单元)。因此,即使当一些分组在不良网络环境中丢失时,点云数据接收装置也可以使用剩余的分组来重构图像。点云数据可以被分割成待处理的一个或多个切片或一个或多个拼块。根据实施方式的拼块和切片是用于通过分割点云数据的图片来执行点云压缩编译的区域。点云数据发送装置可以通过根据点云数据的每个分割的区域的重要性处理与每个区域相对应的数据来提供高质量的点云内容。也就是说,根据实施方式的点云数据发送装置可以对与对用户重要的区域相对应的数据执行具有更好压缩效率和适当延迟的点云压缩编译。
[0322]
根据实施方式的拼块是指点云数据在其中分布的三维空间(例如,边界框)中的立方体。根据实施方式的切片是表示编码的点云数据中的一些或全部的一系列语法元素,并且是指可独立编码或解码的点的集合。根据实施方式的切片可以包括在分组中发送的数据,并且可以包括一个几何数据单元和具有等于零的大小的属性数据单元的数量。根据实施方式的一个拼块可以包括一个或多个切片。
[0323]
根据实施方式的比特流2600可以包括信令信息,该信令信息包括用于序列级信令的序列参数集(sps)、用于几何信息编译的信令的几何参数集(gps)、用于属性信息编译的信令的属性参数集(aps)以及用于拼块级信令的拼块参数集(tps)以及一个或多个切片。
[0324]
根据实施方式的sps是关于包括简档和级别的整个序列的编码信息,并且可以包括关于整个文件的综合信息,诸如图片分辨率和视频格式。
[0325]
根据实施方式,一个切片(例如,图30的切片0)包括切片报头和切片数据。切片数据可以包括一个几何比特流(geom00)和一个或多个属性比特流(attr00,attr10)。几何比特流可以包括报头(例如,几何切片报头)和有效载荷(例如,几何切片数据)。根据实施方式的几何比特流的报头可以包括gps中包括的参数集的标识信息(geom_geom_parameter_set_id)、拼块标识符(geom_tile id)、切片标识符(geom_slice_id)以及与有效载荷中包括的数据相关的信息。属性比特流可以包括报头(例如,属性切片报头或属性图块报头)和有效载荷(例如,属性切片数据或属性图块数据)。
[0326]
如参考图22至图25所述,根据实施方式的点云编码器和点云解码器通过在用于属性预测的lod生成之后搜索点的一个或多个邻居点来生成邻居点集合。因此,图30中所示的
比特流可以包括参考图18至图29描述的邻居点集合生成信息。
[0327]
图27示出了根据实施方式的aps的示例性语法。
[0328]
根据实施方式的aps可以包括邻居点集合生成信息2720和2730。图27示出了根据实施方式的aps的语法的示例2710、2720,并且可以包括以下信息(或字段、参数等)。
[0329]
aps_attr_parameter_set_id指定aps的标识符以供其他语法元素参考。aps_attr_parameter_set_id具有在0至15的范围内的值。如图27所示,由于比特流中包括一个或多个属性比特流,因此可以在每个属性比特流的报头中包括与aps_attr_parameter_set_id具有相同值的字段(例如,ash_attr_parameter_set_id)。
[0330]
根据实施方式的点云解码器可以基于aps_attr_parameter_set_id获取与每个属性比特流相对应的aps,并且处理属性比特流。
[0331]
aps_seq_parameter_set_id指定活动sps的sps_seq_parameter_set_id的值。aps_seq_parameter_set_id具有在0至15的范围内的值。
[0332]
attr_coding_type指示用于attr_coding_type的给定值的属性编译类型。在根据该实施方式的比特流中,attr_coding_type的值等于0、1或2。可以预留attr_coding_type的其他值以供iso/iec将来使用。因此,根据实施方式的解码器可以忽略上述attr_coding_type的预留值。在这些值中,0可以将预测权重提升变换编译指示为属性编译类型,1可以将raht变换编译指示为属性编译类型,以及2可以将固定权重提升变换编译指示为属性编译类型。
[0333]
当attr_coding_type等于0或2时,给出以下参数。
[0334]
num_pred_nearest_neighburs指示用于预测变换的最近邻居点的最大数量。如前参考图22至图25所述,可以根据用户输入信号来设置和改变邻居点的最大数量。
[0335]
在下文中,描述根据实施方式的邻居点集合生成信息2720。
[0336]
neighbor_search_origin_selection_type表示用于设置邻居点范围的中心点选择方法。由于选择中心点的方法与参考图23描述的选择中心点的方法相同,因此本文不再描述。当neighbor_search_origin_selection_type的值为1时,neighbor_search_origin_selection_type指示中心点选择方法是选择具有与目标预测点的莫顿码最接近的莫顿码的点的方法。当neighbor_search_origin_selection_type的值为2时,neighbor_search_origin_selection_type指示中心点选择方法是选择莫顿码大于或等于目标预测点的莫顿码的点的方法。neighbor_search_origin_selection_type的值不限于该示例。neighbor_search_range指示邻居点搜索范围。neighbor_search_range可以指示按照莫顿顺序,位于所选择的中心点的位置之前或之后的点的数量或采样单元的点的数量。参考图22至图26描述的邻居点集合配置器可以搜索位于邻近点搜索范围内的点并注册邻居点。根据实施方式,可以为每个lod设置邻居点搜索范围(neighbor_search_range[idx]2730)。
[0337]
neighbor_search_range_type指示为每个lod设置的邻居点搜索范围的类型。如参考图23所描述,可以为每个lod设置根据该实施方式的邻居点搜索范围。例如,可以为每个lod设置相同或不同邻居点搜索范围,诸如对lod1,将邻居点搜索范围设置为128,而对lod
1-1
将邻居点搜索范围设置为64。另外,可以通过将基于由每个lod表示的级别的变化率应用于参考邻居点搜索范围来设置根据实施方式的用于每个lod的邻居点搜索范围。当neighbor_search_range_type的值为0时,neighbor_search_range_type指示邻居点搜索
范围对于每个lod是相同的。当neighbor_search_range_type的值为1时,neighbor_search_range_type指示邻居点搜索范围随着lod级别的增加而增加。当neighbor_search_range_type的值为2时,neighbor_search_range_type指示邻居点搜索范围随着lod级别的增加而减小。当neighbor_search_range_type的值为3时,neighbor_search_range_type指示邻居点搜索范围随着lod级别的增加而以特定速率增加。当neighbor_search_range_type的值是3时,邻居点集合生成信息2720可以进一步包括neighbor_search_range_rate_per_lod。neighbor_search_range_rate_per_lod指示当邻居点搜索范围随着lod级别增加而以特定速率增加时的特定速率值。neighbor_search_range_type的值不限于该示例。
[0338]
neighbor_search_type指示邻居点搜索方法的类型。根据该实施方式的邻居点搜索方法与参考图22至图25描述的邻居点搜索方法相同。根据实施方式的邻居点搜索方法的类型对应于五种类型中的任何一种。根据neighbor_search_type的值,neighbor_search_type指示每个邻居点搜索方法的类型。
[0339]
当neighbor_search_type的值为1时,neighbor_search_type指示所有点搜索方法。根据实施方式的所有点搜索方法是计算位于邻近点搜索范围内的所有点与目标预测点(例如,px)之间的距离并且搜索最接近目标预测点的点作为邻居点的方法。
[0340]
当neighbor_search_type的值为2时,neighbor_search_type指示搜索从采样范围选择的点作为邻居点的方法。在搜索从采样范围选择的点作为邻近点的方法中,对于包括在邻近点搜索范围中的点,从每个采样范围选择的点被检测为用于目标预测点(例如,点px)的邻近点。具体细节与参考图22至图24描述的那些细节相同,因此在本文中将不再描述。
[0341]
当neighbor_search_type的值为3时,neighbor_search_type指示初步搜索通过划分邻居点搜索范围获得的每个区域的边界框中的点的方法。在初步搜索通过划分邻居点搜索范围而获得的每个区域的边界框中的点的方法中,将位于邻近点搜索范围内的点划分为一个或多个组,为组的每个区域获得边界框,计算目标预测点(例如,点px)与每个组中的边界框的中心位置值之间的距离,以及在边界框内具有小于预设阈值的计算距离值的点当中检测邻居点。具体细节与参考图22至图24描述的那些细节相同,因此在这里中将不再描述。
[0342]
当neighbor_search_type的值为4时,neighbor_search_type指示以基于八叉树的邻居点搜索范围的划分和每个八叉树节点的中心位置值为基础来执行初步搜索的方法。在以基于八叉树的邻居点搜索范围的划分和每个八叉树节点的中心位置值为基础执行初步搜索的方法中,根据八叉树占用代码的深度和属于相应深度的节点,将位于邻居点搜索范围内的点分成组,获得每个组的中心位置值,计算目标预测点(例如,点px)与每个组的中心位置值之间的距离,并且当所计算的距离值小于预设值(例如,特定阈值)时,从属于对应组的点当中检测邻居点。具体细节与参考图22至图24描述的那些细节相同,因此在这里中将不再描述。
[0343]
当neighbor_search_type的值为5时,neighbor_search_type指示基于从采样范围选择的点之间的距离的计算的初步搜索方法。在基于从采样范围选择的点之间的距离的计算的初步搜索方法中,计算从采样范围选择的点之间的距离,并且当计算的距离小于预设极限时,将所选择的点注册为另一采样范围中的点的邻居点。具体细节与参考图22至图
25描述的那些细节相同,因此这里将不再描述。neighbor_search_type的值不限于该示例。
[0344]
当neighbor_search_type指示初步搜索通过划分邻居点搜索范围获得的每个区域中的边界框中的点的方法时,邻居点集合生成信息2720可以进一步包括neighbor_search_group_num_points。neighbor_search_group_num_points指示通过分组获得的每个组中的点的数量。当neighbor_search_type没有指示所有点搜索方法和搜索从采样范围选择的点作为邻居点的方法时,邻居点集合生成信息2720可以进一步包括neighbor_search_distance_threshold_auto_flag和neighbor_search_distance_threshold。如上所述,初步搜索通过划分邻居点搜索范围获得的每个区域中的边界框中的点的方法(neighbor_search_type的值为3)、以基于八叉树的邻居点搜索范围的划分和每个八叉树节点的中心位置值为基础来执行初步搜索的方法(neighbor_search_type值为4),以及基于从采样范围选择的点之间的距离的计算的初步搜索方法(neighbor_search_type值为5)包括将每个点和目标预测点(例如,点px)之间的距离与阈值进行比较的过程。neighbor_search_distance_threshold_auto_flag指示是否可以根据内容调整阈值。neighbor_search_distance_thresholds指示阈值。
[0345]
max_num_direct_predictors指示待用于直接预测的预测器的数量。max_num_direct_predictors具有0到num_pred_nearest_neighburs范围内的值。在解码操作中使用的变量maxnumpredictors的值如下。
[0346]
maxnumpredictors=max_num_direct_predicots+1
[0347]
lifting_search_range指示用于提升的搜索范围。
[0348]
lifting_quant_step_size指示属性的第一分量的量化步长。lifting_quant_step_size的值可以在1到xx的范围内。
[0349]
当属性为颜色时,lifting_quant_step_size_chroma可以指示用于属性的色度分量的量化步长。lifting_quant_step_size_chroma的值可以在1到xx的范围内。
[0350]
lod_binary_tree_enabled_flag指示二叉树是否应用于lod生成。
[0351]
num_detail_levels_minus1指示用于属性编译的lod的数量。num_detail_levels_minus1可以具有在0到xx的范围内的值。下面的“for”语句是关于每个lod的信息。
[0352]
sampling_distance_squared[idx]可以指示用于由idx表示的每个lod的采样距离的平方。根据实施方式,idx具有在0到由num_detail_levels_minus1指示的用于属性编译的lod的数量的范围内的值。sampling_distance_squared具有0到xx范围内的值。
[0353]
neighbor_search_range[idx]2730指示为由idx识别的每个lod设置的邻居点搜索范围。邻近点搜索范围可以指示位于以莫顿顺序选择的中心点的位置之前和之后的点的数量或采样单位中的点的数量。
[0354]
当attribute_coding_type等于0时,如下给出相关参数。
[0355]
adaptive_prediction_threshold指示预测的阈值。
[0356]
当attribute_coding_type等于1时,相关参数给出如下。
[0357]
raht_depth指示用于raht的lod的数量。depthraht的值在1到xx(任意值)的范围内。
[0358]
raht_quant_step_size指示属性的第一分量的量化步长。rate_quant_step_size的值在1到xx(任意值)的范围内。
[0359]
raht_quant_step_size_chroma可以指示当应用raht时色度分量的量化步长。
[0360]
aps_extension_present_flag是其值为0或1的标志。
[0361]
aps_extension_present_flag等于1指示aps_extension_data语法结构存在于aps rbsp语法结构中。aps_extension_present_flag等于0指示不存在该语法结构。当语法结构不存在时,推断aps_extension_present_flag的值等于0。
[0362]
aps_extension_data_flag可以具有任何值。根据实施方式,该字段的存在和值可以不影响解码器性能。
[0363]
根据实施方式的lod配置器(例如,lod配置器2210)可以将不同的邻居点集合生成方法应用于对每个拼块或切片生成的lod。如上所述,由于点云数据接收装置还应当生成lod和属于该lod的点的邻居点集合,因此根据实施方式的比特流可以进一步包括邻居点集合生成信息。
[0364]
图28示出了根据实施方式的tps的示例性语法。
[0365]
当根据实施方式的邻居点集合配置器将不同的邻居点集合生成方法应用于每个拼块时,根据实施方式的tps可以进一步包括邻居点集合生成信息(例如,参考图27描述的邻居点集合生成信息2720和2730)。图28示出了根据实施方式的用于tps的语法的示例2800,以及该语法可以包括以下信息(或字段、参数等)。
[0366]
num_tiles指示针对比特流发信号通知的拼块的数量。当不存在为比特流发信号通知的拼块时,推断该信息的值为0。以下是用于每个拼块的信令参数。
[0367]
tile_bounding_box_offset_x[i]指示笛卡尔坐标系中的第i拼块的x偏移。当不存在该参数时,将tile_bounding_box_offset_x[0]的值推断为包括在sps中的sps_bounding_box_offset_x的值。
[0368]
tile_bounding_box_offset_y[i]指示笛卡尔坐标系中的第i拼块的y偏移。当不存在该参数时,将tile_bounding_box_offset_y[0]的值推断为包括在sps中的sps_bounding_box_offset_y的值。
[0369]
tile_bounding_box_offset_z[i]指示笛卡尔坐标系中的第i拼块的z偏移。当不存在该参数时,将tile_bounding_box_offset_z[0]的值推断为包括在sps中的sps_bounding_box_offset_z的值。
[0370]
tile_bounding_box_scale_factor[i]指示与笛卡尔坐标系中的第i拼块相关的缩放因子。当该参数不存在时,将tile_bounding_box_scale_factor[0]的值推断为sps_bounding_box_scale_factor的值。
[0371]
tile_bounding_box_size_width[i]指示笛卡尔坐标系中的第i拼块的宽度。当该参数不存在时,将tile_bounding_box_size_width[0]的值推断为sps_bounding_box_size_width的值。
[0372]
tile_bounding_box_size_height[i]指示笛卡尔坐标系中的第i拼块的高度。当该参数不存在时,将tile_bounding_box_size_height[0]的值推断为sps_bounding_box_size_height的值。
[0373]
tile_bounding_box_size_depth[i]指示笛卡尔坐标系中的第i拼块的深度。当该参数不存在时,将tile_bounding_box_size_depth[0]的值推断为sps_bounding_box_size_depth的值。
[0374]
如图所示,根据实施方式的tps可以包括邻居点集合生成信息2810。将根据实施方式的邻居点集合生成信息2810应用于每个拼块。邻居点集合生成信息2810与参考图27描述的邻居点集合生成信息2720和2730相同,因此这里将避免其详细描述。
[0375]
图29示出了根据实施方式的属性报头的示例性语法。
[0376]
图29的属性报头的语法2900是通过包括在参考图26描述的属性比特流中的报头发送的信息的语法的示例。
[0377]
当根据实施方式的lod配置器针对每个切片不同地应用邻居点集合生成方法时,根据实施方式的属性报头可以进一步包括lod配置信息2910(例如,参考图27描述的邻居点集合生成信息2720、2730和参考图28描述的邻居点集合生成信息2810)。图29中所示的属性报头的示例性语法2900可以包括以下信息(或字段、参数等)。
[0378]
ash_attr_parameter_set_id具有与活动aps的aps_attr_parameter_set_id相同的值。
[0379]
ash_attr_sps_attr_idx可以指定活动sps的sps_seq_parameter_set_id的值。ash_attr_sps_attr_idx的值在0到包括在活动sps中的sps_num_attribute_sets的值的范围内。
[0380]
ash_attr_geom_slice_id指定几何切片id(例如,geom_slice_id)的值。
[0381]
如图所示,根据实施方式的属性报头可以包括邻居点集合生成信息2910。根据实施方式的邻居点集合生成信息2910被应用于每个切片中包括的每个属性比特流(或属性切片数据)。邻居点集合生成信息2810与参考图27描述的邻居点集合生成信息2720和2730以及参考图28描述的邻居点集合生成信息2810相同,因此将避免其详细描述。
[0382]
图30是示出示例性点云解码器的框图。
[0383]
根据实施方式的点云解码器3000执行与参考图1至图17描述的解码器(例如,参考图1、图10至图11、图13、图14和图16描述的点云解码器)相同或相似的解码操作。另外,点云解码器3000可以执行与参考图18描述的点云编码器1800的编码操作的相反过程对应的解码操作。根据实施方式的点云解码器3000可以包括空间分割器3010、几何信息解码器(或几何解码器)3020和属性信息解码器(或属性解码器)3030。尽管图30中未示出,根据实施方式的点云解码器3000可以进一步包括一个或多个元件以执行参考图1至图17描述的解码操作。
[0384]
根据实施方式的空间分割器3010可以基于从根据实施方式的点云数据发送装置(例如,参考图1、图12、图14和图15描述的点云数据发送装置)接收的信令信息(例如,关于由参考图18描述的空间分割器1810执行的分割操作的信息)或者由点云解码器3000导出(生成)的分割信息来分割空间。如上所述,点云编码器1800的空间分割器1810的分割操作可以基于八叉树、四叉树、二叉树、三叉树或k-d树中的至少一个。
[0385]
根据实施方式的几何信息解码器3020可以对输入的几何比特流进行解码并重构的几何信息。重构的几何信息可以被输入到属性信息解码器。根据实施方式的几何信息解码器3020可以执行参考图11描述的算术解码器(算术解码)11000、八叉树合成器(合成八叉树)11001和表面近似合成器(合成表面近似)11002、几何重构器(重构几何)11003和坐标逆变换器(逆变换坐标)11004的操作。另外,根据实施方式的几何信息解码器3020可以执行参考图13描述的算术解码器13002、基于占用代码的八叉树重构处理器13003和表面模型处理
器(三角形重构、上采样、体素化)13004和逆量化处理器13005的操作。可替选地,根据实施方式的几何信息解码器3020可以执行参考图16描述的点云解码器的操作。
[0386]
根据实施方式的属性信息解码器3030可以基于属性信息比特流和重构的几何信息对属性信息进行解码。根据实施方式的属性信息解码器3030可以执行与包括在图11的点云解码器中的算术解码器11005、逆量化器11006、raht变换器11007、lod生成器11008、逆提升器11009和/或颜色逆变换器11010的操作相同或相似的操作。根据实施方式的属性信息解码器3030可以执行与包括在图13的接收装置中的算术解码器13007、逆量化处理器13008、预测/提升/raht逆变换处理器13009和颜色逆变换处理器13010的操作相同或相似的操作。
[0387]
点云解码器3000可以基于重构的几何信息和重构的属性信息来输出最终pcc数据。
[0388]
图31是示出几何信息解码器的示例的框图。
[0389]
根据实施方式的几何信息解码器3100是图30的几何信息解码器3020的示例,并且可以执行与几何信息解码器3020的操作相同或相似的操作。根据实施方式的几何信息解码器3100可以执行与参考图19描述的几何信息编码器1900的编码操作相反的解码操作。根据实施方式的几何信息解码器3100可以包括几何信息熵解码器3110、几何信息逆量化器3120、几何信息预测器3130、滤波器3140、存储器3150、几何信息逆变换/逆量化器3160和坐标逆变换器3170。尽管图31中未示出,根据实施方式的几何信息解码器3100可以进一步包括一个或多个元件以执行参考图1至图31描述的几何解码操作。
[0390]
根据实施方式的几何信息熵解码器3110可以通过熵解码几何信息比特流来生成量化残差几何信息。几何信息熵解码器3110可以执行作为参考图19描述的几何信息熵编码器1905所执行的熵编码的逆过程的熵解码操作。如上所述,根据实施方式的熵编码操作可以包括指数golomb、cavlc和cabac以及与熵编码操作相对应的熵解码操作指数golomb、cavlc和cabac。根据实施方式的几何信息熵解码器3110可以对与包括在几何信息比特流中的几何编译有关的信息(例如,与预测几何信息的生成有关的信息、与量化有关的信息(例如,量化值等)、与坐标变换有关的信令信息等)进行解码。
[0391]
根据实施方式的残差几何信息逆量化器3120可以通过基于量化相关信息,对量化的残差几何信息执行逆量化操作来生成残差几何信息或几何信息。
[0392]
根据实施方式的几何信息预测器3130可以基于与从几何熵解码器3110输出的预测几何信息的生成有关的信息和存储在存储器3150中的先前解码的几何信息来生成预测几何信息。根据实施方式的几何信息预测器3130可以包括帧间预测器和帧内预测器。根据实施方式的帧间预测器可以基于几何信息编码器(例如,几何信息编码器1900)所提供的当前预测单元(例如,节点等)的帧间预测所需的信息,在包括当前预测单元的当前空间中,基于当前空间(例如,帧、画面等)之前或之后的空间中的至少一个中所包括的信息,对当前预测单元执行帧间预测。根据实施方式的帧内预测器可以基于几何信息编码器1900所提供的与预测单元中的帧内预测有关的信息,基于关于当前空间中的点的几何信息来生成预测几何信息。
[0393]
根据实施方式的滤波器3140可以对通过将基于滤波相关信息生成的预测几何信息和重构的残差几何信息组合而生成的重构的几何信息进行滤波。可以从几何信息编码器
1900发信号通知根据实施方式的滤波相关信息。可替选地,根据实施方式的几何信息解码器3100可以在解码过程中导出和计算滤波相关信息。
[0394]
根据实施方式的存储器3150可以存储重构的几何信息。根据实施方式的几何逆变换量化器3160可以基于量化相关信息来逆变换-量化存储在存储器3150中的重构的几何信息。
[0395]
根据实施方式的坐标系逆变换器3170可以基于几何信息熵解码器3110所提供的坐标变换相关信息和存储在存储器3150中的重构的几何信息来对逆变换量化的几何信息的坐标进行逆变换,并且输出几何信息。
[0396]
图32是示出示例性属性信息解码器的框图。
[0397]
根据实施方式的属性信息解码器3200是图30的属性信息解码器3030的示例,并且可以执行与属性信息解码器3030的操作相同或相似的操作。根据实施方式的属性信息解码器3200可以执行与参考图20和图21描述的属性信息编码器2000和属性信息编码器2100的编码操作相反的解码操作。根据实施方式的属性信息解码器3200可以包括属性信息熵解码器3210、几何信息映射器3220、残差属性信息逆量化器3230、残差属性信息逆变换器3240、存储器3250、属性信息预测器3260和属性信息逆变换器3270。尽管图32中未示出,但是根据实施方式的属性信息解码器3200可以进一步包括一个或多个元件以执行参考图1至图31描述的属性解码操作。
[0398]
属性信息熵解码器3210接收属性信息比特流并且执行熵解码以生成变换量化的属性信息。
[0399]
几何信息映射器3220通过映射变换量化属性信息和重构的几何信息来生成残差属性信息。
[0400]
残差属性信息逆量化器3230可以基于量化值来逆量化残差属性信息。
[0401]
残差属性信息逆变换器3240可以通过执行诸如dct、dst、sadct或raht的变换编译来对包括通过逆量化获得的属性信息的残差3d块进行逆变换。
[0402]
存储器3250可以添加从属性信息预测器3260输出的预测属性信息并且存储逆变换的属性信息。可替选地,存储器3250可以添加和存储预测属性信息和属性信息而无需逆变换属性信息。
[0403]
属性信息预测器3260可以基于存储在存储器3250中的属性信息来生成预测属性信息。属性信息预测器3260可以通过执行熵解码来生成预测属性信息。
[0404]
属性信息逆变换器3270可以从属性信息熵解码器3110接收关于属性信息的类型和变换信息以执行各种类型的颜色逆变换编译。
[0405]
图33是根据实施方式的点云数据处理方法的示例性流程图。
[0406]
图33的流程图3300示出点云数据处理装置(例如,参考图1、图11、图14、图15和图18至图22描述的点云数据发送装置或点云数据编码器)的点云数据处理方法。根据实施方式的点云数据处理装置可以执行与参考图1至图32描述的编码操作相同或相似的操作。
[0407]
根据实施方式的点云数据处理装置可以对包括几何信息和属性信息的点云数据进行编码(3310)。根据实施方式的几何信息是指示点云数据的点的位置的信息。根据实施方式的属性信息是指示点云数据的点的属性的信息。
[0408]
根据实施方式的点云数据处理装置可以对几何信息进行编码并对属性信息进行
编码。根据实施方式的点云数据处理装置执行与参考图1至32描述的几何信息编码操作相同或相似的操作。另外,点云数据处理装置执行与参考图1至图32描述的属性信息编码操作相同或相似的操作。根据实施方式的点云数据处理装置可以通过对点进行分割来生成至少一个lod,并生成属于每个lod的点的邻居点集合。由于根据实施方式的邻居点集合生成方案或方法与参考图22至25描述的邻居点集合生成方案或方法相同或相似,因此将省略其详细描述。
[0409]
根据实施方式的点云数据处理装置可以发送包含编码的点云数据的比特流(3320)。
[0410]
由于根据实施方式的比特流的结构与参考图26描述的结构相同,因此将省略其详细描述。根据实施方式的比特流可以包括邻居点集合生成信息(例如,参考图27至图29描述的邻居点集合生成信息)。根据实施方式的邻居点集合生成信息可以通过aps、tps、属性报头等发送到接收装置,如参考图27至图32所述。
[0411]
根据实施方式的邻居点集合生成信息可以包括类型信息(例如,参考图27到29所述的neighbor_search_origin_selection_type)、指示用于搜索位于中心点周围的邻近点的邻居点搜索范围的搜索范围信息(例如,参考图27到29所述的neighbor_search_range)、指示用于每个lod的邻居点搜索范围的类型的搜索范围类型信息(例如,参考图27到29所述的neighbor_search_range_type)和指示邻居点搜索方法的搜索类型信息(例如,参考图27到29所述neighbor_search_type)。
[0412]
根据实施方式的类型信息可以指示第一类型或第二类型中的至少一个,第一类型用于选择具有与要经受属性信息编码的点的莫顿码最接近的莫顿码的点作为中心点,第二类型用于选择莫顿码等于或大于要经受属性信息编码的点的莫顿码的点作为中心点。根据实施方式的用于搜索邻居点的中心点和邻居点搜索范围与参考图22至图29描述的用于搜索邻居点的中心点和邻居点搜索范围相同,因此这里将避免其详细描述。
[0413]
根据实施方式的搜索类型信息可以指示所有点搜索方法、搜索从采样范围选择的点作为邻居点的方法、初步搜索通过划分邻居点搜索范围获得的每个区域中的边界框中的点的方法、以基于八叉树的邻居点搜索范围的划分和每个八叉树节点的中心位置值为基础来执行初步搜索的方法、或者基于从采样范围选择的点之间的距离的计算来执行初步搜索的方法中的至少一个。根据实施方式的搜索类型信息与参考图27至图29描述的neighbor_search_type相同,因此这里将避免其详细描述。
[0414]
图34是根据实施方式的点云数据处理方法的示例性流程图。
[0415]
图34的流程图3400示出了用于点云数据处理装置(例如,参考图1、13、14、16、27和28描述的点云数据接收装置或点云数据解码器)的点云数据处理方法。根据实施方式的点云数据处理装置可以执行与参考图1至图33描述的解码操作相同或相似的操作。
[0416]
根据实施方式的点云数据处理装置接收包括点云数据的比特流(3410)。几何信息是指示点云数据的点的位置的信息。根据实施方式的属性信息是指示点云数据的点的属性的信息。由于根据实施方式的比特流的结构与参考图26描述的结构相同,因此将省略其详细描述。
[0417]
根据实施方式的点云数据处理装置对点云数据进行解码(3420)。
[0418]
根据实施方式的点云数据处理装置可以解码几何信息并解码属性信息。根据实施
方式的点云数据处理装置执行与参考图1至32描述的几何信息解码操作相同或相似的操作。另外,点云数据处理装置执行与参考图1至图32描述的属性信息解码操作相同或相似的操作。根据实施方式的点云数据处理装置可以通过将点分割来生成至少一个lod,并生成属于每个lod的点的邻居点集合。由于根据实施方式的邻居点集合生成方案或方法与参考图22至25描述的邻居点集合生成方案或方法相同或相似,因此将省略其详细描述。
[0419]
由于根据实施方式的比特流的结构与参考图26描述的结构相同,因此将省略其详细描述。根据实施方式的比特流可以包括邻居点集合生成信息(例如,参考图27至29所述的邻居点集合生成信息)。根据实施方式的邻居点集合生成信息可以通过aps、tps、属性报头等发送到接收装置,如参考图27至32所述。
[0420]
根据实施方式的邻居点集合生成信息可以包括类型信息(例如,参考图27到29所述的neighbor_search_origin_selection_type)、指示用于搜索位于中心点周围的邻近点的邻居点搜索范围的搜索范围信息(例如,参考图27到29所述的neighbor_search_range)、指示用于每个lod的邻居点搜索范围的类型的搜索范围类型信息(例如,参考图27到29所述的neighbor_search_range_type)和指示邻居点搜索方法的类型的搜索类型信息(例如,参考图27到29所述的neighbor_search_type)。
[0421]
根据实施方式的类型信息可以指示第一类型或第二类型中的至少一个,第一类型用于选择具有与要经受属性信息编码的点的莫顿码最接近的莫顿码的点作为中心点,第二类型用于选择莫顿码等于或大于要经受属性信息编码的点的莫顿码的点作为中心点。根据实施方式的用于搜索邻居点的中心点和邻居点搜索范围与参考图22至图29描述的用于搜索邻居点的中心点和邻居点搜索范围相同,因此这里将避免其详细描述。
[0422]
根据实施方式的搜索类型信息可以指示所有点搜索方法、搜索从采样范围选择的点作为邻居点的方法、初步搜索通过划分邻居点搜索范围获得的每个区域中的边界框中的点的方法、以基于八叉树的邻居点搜索范围的划分和每个八叉树节点的中心位置值为基础来执行初步搜索的方法、或者基于从采样范围选择的点之间的距离的计算来执行初步搜索的方法中的至少一个。根据实施方式的搜索类型信息与参考图27至图29描述的neighbor_search_type相同,因此在本文中将避免其详细描述。
[0423]
根据参考图1至图34描述的实施方式的点云数据处理装置的组件可以被实现为包括与存储器耦合的一个或多个处理器的硬件、软件、固件或其组合。根据实施方式的装置的组件可以被实现为单个芯片,例如单个硬件电路。可替选地,根据实施方式的点云数据处理装置的组件可以被实现为单独的芯片。另外,根据实施方式的点云数据处理装置的至少一个组件可以包括能够执行一个或多个程序的一个或多个处理器,其中,一个或多个程序可以包括执行或被配置为执行参考图1至34描述的点云数据处理装置的一个或多个操作/方法的指令。
[0424]
尽管为了简单起见单独描述了附图,但是可以通过将各个图中所示的实施方式合并来设计新的实施方式。根据本领域技术人员的需要设计可以由计算机读取的记录有用于执行上述实施方式的程序的记录介质也落在所附权利要求及其等同物的范围内。根据实施方式的装置和方法可不限于上述实施方式的配置和方法。可以通过选择性地组合所有或一些实施方式来对实施方式进行各种修改。尽管参照附图描述了优选实施方式,但本领域技术人员将理解,在不脱离所附权利要求中描述的本公开的精神或范围的情况下,可以对实
施方式进行各种修改和变化。这些修改不应从实施方式的技术思想或观点单独地理解。
[0425]
可应用方法和装置的描述以彼此补充。例如,根据实施方式的点云数据传输方法可以由根据实施方式的点云数据发送装置或包括在点云数据发送装置中的组件执行。另外,根据实施方式的点云数据接收方法可以由根据实施方式的点云数据接收装置或包括在点云数据接收装置中的组件执行。
[0426]
实施方式的装置的各种元件可以由硬件、软件、固件或其组合实现。实施方式中的各种元件可以由单个芯片(例如,单个硬件电路)实现。根据实施方式,根据实施方式的组件可分别被实现为单独的芯片。根据实施方式,根据实施方式的装置的至少一个或多个组件可以包括能够执行一个或多个程序的一个或多个处理器。一个或多个程序可执行根据实施方式的任一个或多个操作/方法或者包括用于执行其的指令。用于执行根据实施方式的装置的方法/操作的可执行指令可以被存储在被配置为由一个或多个处理器执行的非暂时性crm或其他计算机程序产品中,或者可以被存储在被配置为由一个或多个处理器执行的暂时性crm或其他计算机程序产品中。另外,根据实施方式的存储器可用作不仅涵盖易失性存储器(例如,ram),而且涵盖非易失性存储器、闪存和prom的概念。另外,也可按载波(例如,经由互联网的传输)的形式实现。另外,处理器可读记录介质可分布到经由网络连接的计算机系统,使得处理器可读代码可按分布式方式存储和执行。
[0427]
在本说明书中,术语“/”和“,”应该被解释为指示“和/或”。例如,表达“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二者。换言之,本文献中使用的术语“或”应该被解释为指示“另外地或另选地”。
[0428]
诸如第一和第二的术语可用于描述实施方式的各种元件。然而,根据实施方式的各种组件不应受上述术语限制。这些术语仅用于将一个元件与另一元件相区分。例如,第一用户输入信号可以被称为第二用户输入信号。类似地,第二用户输入信号可以被称为第一用户输入信号。这些术语的使用应该不脱离各种实施方式的范围来解释。第一用户输入信号和第二用户输入信号均是用户输入信号,但除非上下文清楚地另外规定,否则并不意指相同的用户输入信号。
[0429]
用于描述实施方式的术语是为了描述具体实施方式而使用的,并非旨在限制实施方式。如实施方式的描述和权利要求中使用的,除非上下文清楚地另外规定,否则单数形式包括复数个所指对象。表达“和/或”用于包括术语的所有可能组合。诸如“包括”或“具有”的术语旨在指示图形、数量、步骤、元件和/或组件的存在,应该理解为不排除另外存在图形、数量、步骤、元件和/或组件的可能性。如本文所使用的,诸如“如果”和“当”的条件表达不限于可选情况,旨在解释为当满足特定条件时执行相关操作,或者根据特定条件解释相关定义。
[0430]
公开的模式
[0431]
如上所述,在实现实施方式的最佳模式中描述了相关内容。
[0432]
工业实用性
[0433]
对于本领域技术人员而言将显而易见的是,可以在实施方式的范围内对实施方式进行各种改变或修改。因此,实施方式旨在涵盖本公开的修改和变化,只要它们落在所附权
利要求及其等同物的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1