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

点云数据发送设备、点云数据发送方法、点云数据接收设备、以及点云数据接收方法与流程

2022-02-25 18:49:14 来源:中国专利 TAG:


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

,n的顶点形成的三角形
[0119]
n三角形
[0120]
3(1,2,3)
[0121]
4(1,2,3),(3,4,1)
[0122]
5(1,2,3),(3,4,5),(5,1,3)
[0123]
6(1,2,3),(3,4,5),(5,6,1),(1,3,5)
[0124]
7(1,2,3),(3,4,5),(5,6,7),(7,1,3),(3,5,7)
[0125]
8(1,2,3),(3,4,5),(5,6,7),(7,8,1),(1,3,5),(5,7,1)
[0126]
9(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,1,3),(3,5,7),(7,9,3)
[0127]
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)
[0128]
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)
[0129]
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)
[0130]
执行上采样过程以沿着三角形的边缘在中间添加点,并且执行体素化。所添加的点基于上采样因子和块的宽度来生成。添加的点被称为细化顶点。根据实施例,点云编码器可以将细化顶点体素化。另外,点云编码器可以基于体素化的位置(或位置值)来执行属性编码。
[0131]
图7示出根据实施例的邻居节点图案的示例。
[0132]
为了增加点云视频的压缩效率,根据实施例的点云编码器可以基于上下文自适应算术编译来执行熵编译。
[0133]
如参考图1至图6所描述的,点云内容提供系统或点云编码器(例如,点云视频编码器10002、图4的点云编码器或算术编码器40004)可以立即对占用码执行熵编译。另外,点云内容提供系统或点云编码器可以基于当前节点的占用码和邻近节点的占用来执行熵编码(帧内编码),或者基于先前帧的占用码执行熵编码(帧间编码)。根据实施例的帧表示同时生成的点云视频的集合。根据实施例的帧内编码/帧间编码的压缩效率可以取决于所参考的邻近节点的数量。当比特增加时,运算变得复杂,但是编码可以偏向一侧,这可以增加压缩效率。例如,当给出3比特上下文时,需要使用8(=23)种方法来执行编译。为编译划分的
部分影响实现复杂度。因此,有必要满足适当级别的压缩效率和复杂度。
[0134]
图7图示基于邻居节点的占用来获得占用图案的过程。根据实施例的点云编码器确定八叉树的每个节点的邻居节点的占用并且获得邻居图案的值。邻居节点图案被用于推断节点的占用图案。图7的左侧部分示出与节点对应的立方体(被定位在中间的立方体)以及与该立方体共享至少一个面的六个立方体(邻居节点)。图中所示的节点是相同深度的节点。图中所示的数字分别表示与六个节点关联的权重(1、2、4、8、16和32)。根据邻近节点的位置依次指配权重。
[0135]
图7的右侧部分示出邻居节点图案值。邻居节点图案值是乘以占用邻居节点(具有点的邻居节点)的权重的值之和。因此,邻居节点图案值为0至63。当邻居节点图案值为0时,指示节点的邻居节点当中不存在具有点的节点(无占用节点)。当邻居节点图案值为63时,指示所有邻居节点均是占用节点。如图所示,因为指配有权重1、2、4和8的邻居节点是占用节点,所以邻居节点图案值为15,即1、2、4和8之和。点云编码器可以根据邻居节点图案值执行编译(例如,当邻居节点图案值为63时,可以执行64种类型的编译)。根据实施例,点云编码器可以通过改变邻居节点图案值(例如,基于将64改变为10或6的表)来减少编译复杂度。
[0136]
图8图示根据实施例的每个lod中的点配置的示例。
[0137]
如参考图1至图7描述的,在执行属性编码之前,编码的几何被重构(解压缩)。当应用直接编译时,几何重构操作可以包括改变直接编译的点的放置(例如,将直接编译的点放置在点云数据前面)。当应用三联体几何编码时,通过三角形重构、上采样和体素化来执行几何重构过程。因为属性取决于几何,所以基于重构的几何来执行属性编码。
[0138]
点云编码器(例如,lod生成器40009)可以按lod对点进行分类(重新组织)。图中示出与lod对应的点云内容。图中最左侧图片表示原始点云内容。图中左起第二个图片表示最低lod中的点分布,并且图中最右侧图片表示最高lod中的点分布。即,最低lod中的点是稀疏分布的,并且最高lod中的点是密集分布的。即,随着lod在图底部所指示的箭头所指出的方向上升高,点之间的空间(或距离)变窄。
[0139]
图9图示根据实施例的用于每个lod的点配置的示例。
[0140]
如参考图1至图8所描述的,点云内容提供系统或点云编码器(例如,点云视频编码器10002、图4的点云编码器或lod生成器40009)可以生成lod。通过根据设置的lod距离值(或欧几里得距离的集合)将点重新组织为细化级别的集合来生成lod。lod生成过程不仅由点云编码器执行,而且由点云解码器执行。
[0141]
图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。
[0142]
如参考图4所描述的,根据实施例的点云编码器可以选择性地或组合地执行预测变换编译、提升变换编译和raht变换编译。
[0143]
根据实施例的点云编码器可为点生成预测器以执行用于设置每个点的预测属性(或预测属性值)的预测变换编译。即,可以为n个点生成n个预测器。根据实施例的预测器可以基于每个点的lod值、关于存在于每个lod的设置距离内的邻近点的索引信息以及到邻近点的距离来计算权重(=1/距离)。
[0144]
根据实施例的预测属性(或属性值)被设置为通过将每个点的预测器中设置的邻居点的属性(或属性值)(例如,颜色、反射率等)乘以基于到每个邻居点的距离计算的权重(或权重值)而获得的值的平均。根据实施例的点云编码器(例如,系数量化器40011)可以量化和逆量化通过从每个点的属性(属性值)减去预测属性(属性值)而获得的残差(可以称为残差属性、残差属性值或属性预测残差)。量化过程如下表所示配置。
[0145]
表属性预测残差量化伪代码
[0146]
int pccquantization(int value,int quantstep){
[0147]
if(value》=0){
[0148]
return floor(value/quantstep 1.0/3.0);
[0149]
}else{
[0150]
return-floor(-value/quantstep 1.0/3.0);
[0151]
}
[0152]
}
[0153]
表属性预测残差逆量化伪代码
[0154]
int pccinversequantization(int value,int quantstep){
[0155]
if(quantstep==0){
[0156]
return value;
[0157]
}else{
[0158]
return value*quantstep;
[0159]
}
[0160]
}
[0161]
当每个点的预测器具有邻居点时,根据实施例的点云编码器(例如,算术编码器40012)可以如上所述对量化和逆量化的残差值执行熵编译。当每个点的预测器没有邻居点时,根据实施例的点云编码器(例如,算术编码器40012)可以对对应点的属性执行熵编译,而不执行上述操作。
[0162]
根据实施例的点云编码器(例如,提升变换器40010)可以生成每个点的预测器,设置计算的lod并在预测器中注册邻居点,并且根据到邻居点的距离来设置权重,以执行提升变换编译。根据实施例的提升变换编译类似于上述预测变换编译,但不同之处在于,对属性值累积地应用权重。根据实施例对属性值累积地应用权重的过程配置如下。
[0163]
1)创建用于存储每个点的权重值的阵列量化权重(qw)。qw的所有元素的初始值均为1.0。将预测器中注册的邻居节点的预测器索引的qw值乘以当前点的预测器的权重,并将通过乘法获得的值相加。
[0164]
2)提升预测过程:从现有属性值减去通过将点的属性值乘以权重而获得的值,以计算预测属性值。
[0165]
3)创建称为updateweight和update的临时阵列,并且将临时阵列初始化为零。
[0166]
4)将通过将针对所有预测器计算的权重乘以存储在与预测器索引对应的qw中的权重而计算的权重累加到updateweight阵列,作为邻居节点的索引。将通过将邻居节点索引的属性值乘以所计算的权重而获得的值累加到update阵列。
[0167]
5)提升更新过程:将所有预测器的update阵列的属性值除以预测器索引的
updateweight阵列的权重值,并将现有属性值与通过除法获得的值相加。
[0168]
6)针对所有预测器通过将通过提升更新过程更新的属性值乘以通过提升预测过程更新的权重(存储在qw中)来计算预测属性。根据实施例的点云编码器(例如,系数量化器40011)量化预测属性值。另外,点云编码器(例如,算术编码器40012)对量化属性值执行熵编码。
[0169]
根据实施例的点云编码器(例如,raht变换器40008)可以执行raht变换编译,其中使用与八叉树中较低级别的节点相关联的属性来预测较高级别的节点的属性。raht变换编译是通过八叉树后向扫描进行属性帧内编译的示例。根据实施例的点云编码器从体素开始扫描整个区域并且在每一步重复将体素合并为更大的块的合并过程,直至到达根节点。仅对占用节点执行根据实施例的合并过程。不对空节点执行合并过程。对就在空节点上方的上节点执行合并过程。
[0170]
下面的等式表示raht变换矩阵。在该等式中,表示级别l的体素的平均属性值。可以基于和来计算。
[0171]
和的权重为和
[0172][0173]
这里,是低通值并且在下一个较高级别的合并过程中使用。表示高通系数。每一步的高通系数被量化并经受熵编译(例如,由算术编码器400012编码)。权重被计算为重被计算为通过和创建根节点如下。
[0174][0175]
如高通系数,gdc的值也被量化并经受熵编译。
[0176]
图10图示根据实施例的点云解码器。
[0177]
图10中图示的点云解码器是图1中描述的点云视频解码器10006的示例,并且可以执行与图1所图示的点云视频解码器10006的操作相同或相似的操作。如图所示,点云解码器可以接收包含在一个或更多个比特流中的几何比特流和属性比特流。点云解码器包括几何解码器和属性解码器。几何解码器对几何比特流执行几何解码并输出解码的几何。属性解码器基于解码的几何和属性比特流执行属性解码,并且输出解码的属性。解码的几何和解码的属性被用于重构点云内容(解码的点云)。
[0178]
图11图示根据实施例的点云解码器。
[0179]
图11所图示的点云解码器是图10所图示的点云解码器的示例,并且可以执行解码操作,其是参考图1至图9所描述的点云编码器的编码操作的逆过程。
[0180]
如参考图1和图10所描述的,点云解码器可以执行几何解码和属性解码。几何解码在属性解码之前执行。
[0181]
根据实施例的点云解码器包括算术解码器(算术解码)11000、八叉树合成器(合成八叉树)11001、表面近似合成器(合成表面近似)11002和几何重构器(重构几何)11003、坐
标逆变换器(逆变换坐标)11004、算术解码器(算术解码)11005、逆量化器(逆量化)11006、raht变换器11007、lod生成器(生成lod)11008、逆提升器(逆提升)11009和/或颜色逆变换器(逆变换颜色)11010。
[0182]
算术解码器11000、八叉树合成器11001、表面近似合成器11002、几何重构器11003和坐标逆变换器11004可以执行几何解码。根据实施例的几何解码可以包括直接编译和三联体几何解码。直接编译和三联体几何解码选择性地应用。几何解码不限于上述示例,并且作为参考图1至图9描述的几何编码的逆过程执行。
[0183]
根据实施例的算术解码器11000基于算术编译将所接收的几何比特流解码。算术解码器11000的操作对应于算术编码器40004的逆过程。
[0184]
根据实施例的八叉树合成器11001可以通过从解码的几何比特流获取占用码(或关于作为解码结果取得的几何的信息)来生成八叉树。占用码如参考图1至图9详细描述那样配置。
[0185]
当应用三联体几何编码时,根据实施例的表面近似合成器11002可以基于解码的几何和/或生成的八叉树来合成表面。
[0186]
根据实施例的几何重构器11003可以基于表面和/或解码的几何重新生成几何。如参考图1至图9所描述的,选择性地应用直接编译和三联体几何编码。因此,几何重构器11003直接导入关于对其应用直接编译的点的位置信息并将其相加。当应用三联体几何编码时,几何重构器11003可以通过执行几何重构器40005的重构操作,例如,三角形重构、上采样和体素化,来重构几何。细节与参考图6描述的那些相同,并且因此省略其描述。重构的几何可以包括不包含属性的点云图片或帧。
[0187]
根据实施例的坐标逆变换器11004可以通过基于重构的几何变换坐标来获取点位置。
[0188]
算术解码器11005、逆量化器11006、raht变换器11007、lod生成器11008、逆提升器11009和/或颜色逆变换器11010可以执行参考图10描述的属性解码。根据实施例的属性解码包括区域自适应分层变换(raht)解码、基于插值的分层最近邻居预测(预测变换)解码以及具有更新/提升步骤的基于插值的分层最近邻居预测(提升变换)解码。上述三个解码方案可以可选择性地使用,或者可以使用一个或更多个解码方案的组合。根据实施例的属性解码不限于上述示例。
[0189]
根据实施例的算术解码器11005通过算术编译对属性比特流进行解码。
[0190]
根据实施例的逆量化器11006逆量化关于解码的属性比特流或作为解码结果取得的属性的信息,并且输出逆量化的属性(或属性值)。可以基于点云编码器的属性编码选择性地应用逆量化。
[0191]
根据实施例,raht变换器11007、lod生成器11008和/或逆提升器11009可以处理重构的几何和逆量化的属性。如上所述,raht变换器11007、lod生成器11008和/或逆提升器11009可以选择性地执行与点云编码器的编码对应的解码操作。
[0192]
根据实施例的颜色逆变换器11010执行逆变换编译以逆变换包括在解码的属性中的颜色值(或纹理)。可以基于点云编码器的颜色变换器40006的操作选择性地执行颜色逆变换器11010的操作。
[0193]
尽管图中未示出,图11的点云解码器的元件可以由包括被配置成与包括在点云提
供设备中的一个或更多个存储器通信的一个或更多个处理器或集成电路的硬件、软件、固件或其组合实现。一个或更多个处理器可以执行上述图11的点云解码器的元件的操作和/或功能中的至少一个或更多个。另外,一个或更多个处理器可以操作或执行用于执行图11的点云解码器的元件的操作和/或功能的软件程序和/或指令的集合。
[0194]
图12图示根据实施例的示例性发送设备。
[0195]
图12所示的发送设备是图1的发送设备10000(或图4的点云编码器)的示例。图12所图示的发送设备可以执行与参考图1至图9描述的点云编码器的那些相同或相似的一个或更多个操作和方法。根据实施例的发送设备可以包括数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用码生成器12003、表面模型处理器12004、帧内/帧间编译处理器12005、算术编码器12006、元数据处理器12007、颜色变换处理器12008、属性变换处理器12009、预测/提升/raht变换处理器12010、算术编码器12011和/或发送处理器12012。
[0196]
根据实施例的数据输入单元12000接收或获取点云数据。数据输入单元12000可以执行与点云视频获取器10001的操作和/或获取方法(或参考图2描述的获取过程20000)相同或相似的操作和/或获取方法。
[0197]
数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用码生成器12003、表面模型处理器12004、帧内/帧间编译处理器12005和算术编码器12006执行几何编码。根据实施例的几何编码与参考图1至图9描述的几何编码相同或相似,并且因此省略其详细描述。
[0198]
根据实施例的量化处理器12001量化几何(例如,点的位置值)。量化处理器12001的操作和/或量化与参考图4描述的量化器40001的操作和/或量化相同或相似。细节与参考图1至图9描述的那些相同。
[0199]
根据实施例的体素化处理器12002将点的量化的位置值体素化。体素化处理器120002可以执行与参考图4描述的量化器40001的操作和/或体素化过程相同或相似的操作和/或过程。细节与参考图1至图9描述的那些相同。
[0200]
根据实施例的八叉树占用码生成器12003基于八叉树结构对点的体素化的位置执行八叉树编译。八叉树占用码生成器12003可以生成占用码。八叉树占用码生成器12003可以执行与参考图4和图6描述的点云编码器(或八叉树分析器40002)的操作和/或方法相同或相似的操作和/或方法。细节与参考图1至图9描述的那些相同。
[0201]
根据实施例的表面模型处理器12004可以基于表面模型执行三联体几何编码以基于体素重构特定区域(或节点)中的点位置。表面模型处理器12004可以执行与参考图4描述的点云编码器(例如,表面近似分析器40003)的操作和/或方法相同或相似的操作和/或方法。细节与参考图1至图9描述的那些相同。
[0202]
根据实施例的帧内/帧间编译处理器12005可以对点云数据执行帧内/帧间编译。帧内/帧间编译处理器12005可以执行与参考图7描述的帧内/帧间编译相同或相似的编译。细节与参考图7描述的那些相同。根据实施例,帧内/帧间编译处理器12005可以被包括在算术编码器12006中。
[0203]
根据实施例的算术编码器12006对点云数据的八叉树和/或近似八叉树执行熵编码。例如,编码方案包括算术编码。算术编码器12006执行与算术编码器40004的操作和/或
方法相同或相似的操作和/或方法。
[0204]
根据实施例的元数据处理器12007处理关于点云数据的元数据,例如,设定值,并将其提供给诸如几何编码和/或属性编码的必要处理过程。另外,根据实施例的元数据处理器12007可以生成和/或处理与几何编码和/或属性编码有关的信令信息。根据实施例的信令信息可以与几何编码和/或属性编码分开编码。根据实施例的信令信息可以被交织。
[0205]
颜色变换处理器12008、属性变换处理器12009、预测/提升/raht变换处理器12010和算术编码器12011执行属性编码。根据实施例的属性编码与参考图1至图9描述的属性编码相同或相似,并且因此省略其详细描述。
[0206]
根据实施例的颜色变换处理器12008执行颜色变换编译以变换包括在属性中的颜色值。颜色变换处理器12008可以基于重构的几何来执行颜色变换编译。重构的几何与参考图1至图9描述的相同。另外,其执行与参考图4描述的颜色变换器40006的操作和/或方法相同或相似的操作和/或方法。省略其详细描述。
[0207]
根据实施例的属性变换处理器12009执行属性变换以基于重构的几何和/或对其不执行几何编码的位置来变换属性。属性变换处理器12009执行与参考图4描述的属性变换器40007的操作和/或方法相同或相似的操作和/或方法。省略其详细描述。根据实施例的预测/提升/raht变换处理器12010可以通过raht编译、预测变换编译和提升变换编译中的任一种或组合对变换的属性进行编译。预测/提升/raht变换处理器12010执行与参考图4描述的raht变换器40008、lod生成器40009和提升变换器40010的操作相同或相似的至少一个操作。另外,预测变换编译、提升变换编译和raht变换编译与参考图1至图9描述的那些相同,并且因此省略其详细描述。
[0208]
根据实施例的算术编码器12011可以基于算术编译对编译的属性进行编码。算术编码器12011执行与算术编码器400012的操作和/或方法相同或相似的操作和/或方法。
[0209]
根据实施例的发送处理器12012可以发送包含编码的几何和/或编码的属性和元数据信息的每个比特流,或者发送配置有编码的几何和/或编码的属性和元数据信息的一个比特流。当根据实施例的编码的几何和/或编码的属性和元数据信息被配置成一个比特流时,比特流可以包括一个或更多个子比特流。根据实施例的比特流可以包含信令信息和切片数据,该信令信息包括用于序列级别信令的序列参数集(sps)、用于几何信息编译信令的几何参数集(gps)、用于属性信息编译信令的属性参数集(aps)和用于图块级别信令的图块参数集(tps)。切片数据可以包括关于一个或更多个切片的信息。根据实施例的一个切片可以包括一个几何比特流geom00以及一个或更多个属性比特流attr00和attr10。
[0210]
切片是表示编译的点云帧的一些或全部的一系列语法元素。
[0211]
根据实施例的tps可以包括关于一个或更多个图块中的每个图块的信息(例如,关于边界框的坐标信息和高度/大小信息)。几何比特流可以包含报头和有效载荷。根据实施例的几何比特流的报头可以包含gps中所包括的参数集标识符(geom_parameter_set_id)、图块标识符(geom_tile_id)和切片标识符(geom_slice_id),以及关于包含在有效载荷中的数据的信息。如上所述,根据实施例的元数据处理器12007可以生成和/或处理信令信息并将其发送到发送处理器12012。根据实施例,执行几何编码的元件和执行属性编码的元件可以如虚线所指示彼此共享数据/信息。根据实施例的发送处理器12012可以执行与发射器10003的操作和/或发送方法相同或相似的操作和/或发送方法。细节与参考图1和图2描述
的那些相同,并且因此省略其描述。
[0212]
图13图示根据实施例的示例性接收设备。
[0213]
图13所图示的接收设备是图1的接收设备10004(或图10和图11的点云解码器)的示例。图13所图示的接收设备可以执行与参考图1至图11描述的点云解码器的那些相同或相似的一个或更多个操作和方法。
[0214]
根据实施例的接收设备包括接收器13000、接收处理器13001、算术解码器13002、基于占用码的八叉树重构处理器13003、表面模型处理器(三角形重构、上采样、体素化)13004、逆量化处理器13005、元数据解析器13006、算术解码器13007、逆量化处理器13008、预测/提升/raht逆变换处理器13009、颜色逆变换处理器13010和/或渲染器13011。根据实施例的每个解码元件可以执行根据实施例的对应编码元件的操作的逆过程。
[0215]
根据实施例的接收器13000接收点云数据。接收器13000可以执行与图1的接收器10005的操作和/或接收方法相同或相似的操作和/或接收方法。省略其详细描述。
[0216]
根据实施例的接收处理器13001可以从所接收的数据获取几何比特流和/或属性比特流。接收处理器13001可以被包括在接收器13000中。
[0217]
算术解码器13002、基于占用码的八叉树重构处理器13003、表面模型处理器13004和逆量化处理器13005可以执行几何解码。根据实施例的几何解码与参考图1至图10描述的几何解码相同或相似,并且因此省略其详细描述。
[0218]
根据实施例的算术解码器13002可以基于算术编译对几何比特流进行解码。算术解码器13002执行与算术解码器11000的操作和/或编译相同或相似的操作和/或编译。
[0219]
根据实施例的基于占用码的八叉树重构处理器13003可以通过从解码的几何比特流(或关于作为解码结果取得的几何的信息)获取占用码来重构八叉树。基于占用码的八叉树重构处理器13003执行与八叉树合成器11001的操作和/或八叉树生成方法相同或相似的操作和/或方法。当应用三联体几何编码时,根据实施例的表面模型处理器13004可以基于表面模型方法来执行三联体几何解码和相关几何重构(例如,三角形重构、上采样、体素化)。表面模型处理器13004执行与表面近似合成器11002和/或几何重构器11003的操作相同或相似的操作。
[0220]
根据实施例的逆量化处理器13005可以逆量化解码的几何。
[0221]
根据实施例的元数据解析器13006可以解析包含在所接收的点云数据中的元数据,例如,设定值。元数据解析器13006可以将元数据传递给几何解码和/或属性解码。元数据与参考图12描述的元数据相同,并且因此省略其详细描述。
[0222]
算术解码器13007、逆量化处理器13008、预测/提升/raht逆变换处理器13009和颜色逆变换处理器13010执行属性解码。属性解码与参考图1至图10描述的属性解码相同或相似,并且因此省略其详细描述。
[0223]
根据实施例的算术解码器13007可以通过算术编译对属性比特流进行解码。算术解码器13007可以基于重构的几何对属性比特流进行解码。算术解码器13007执行与算术解码器11005的操作和/或编译相同或相似的操作和/或编译。
[0224]
根据实施例的逆量化处理器13008可以逆量化解码的属性比特流。逆量化处理器13008执行与逆量化器11006的操作和/或逆量化方法相同或相似的操作和/或方法。
[0225]
根据实施例的预测/提升/raht逆变换器13009可以处理重构的几何和逆量化的属
性。预测/提升/raht逆变换处理器13009执行与raht变换器11007、lod生成器11008和/或逆提升器11009的操作和/或解码相同或相似的一个或更多个操作和/或解码。根据实施例的颜色逆变换处理器13010执行逆变换编译以逆变换包括在解码的属性中的颜色值(或纹理)。颜色逆变换处理器13010执行与颜色逆变换器11010的操作和/或逆变换编译相同或相似的操作和/或逆变换编译。根据实施例的渲染器13011可以渲染点云数据。
[0226]
图14示出根据实施例的操作上可与发送和接收点云数据的方法/设备连接的示例性结构。
[0227]
图14的结构表示服务器1460、机器人1410、自驾驶车辆1420、xr设备1430、智能电话1440、家用电器1450和/或hmd 1470中的至少一个连接到云网络1400的配置。机器人1410、自驾驶车辆1420、xr设备1430、智能电话1440或家用电器1450被称为设备。此外,xr设备1430可以对应于根据实施例的点云数据(pcc)设备或者可操作上连接到pcc设备。
[0228]
云网络1400可以表示构成云计算基础设施的一部分或存在于云计算基础设施中的网络。这里,云网络1400可以使用3g网络、4g或长期演进(lte)网络或5g网络来配置。
[0229]
服务器1460可以经由云网络1400连接到机器人1410、自驾驶车辆1420、xr设备1430、智能电话1440、家用电器1450和/或hmd 1470中的至少一个,并且可以辅助连接的设备1410至1470的至少一部分处理。
[0230]
hmd 1470表示根据实施例的xr设备和/或pcc设备的实现类型之一。根据实施例,hmd型设备包括通信单元、控制单元、存储器、i/o单元、传感器单元和电源单元。
[0231]
以下,将描述应用了上述技术的设备1410至1450的各种实施例。图14所图示的设备1410至1450可以可操作地连接/耦合到根据上述实施例的点云数据发送/接收设备。
[0232]
《pcc xr》
[0233]
xr/pcc设备1430可以采用pcc技术和/或xr(ar vr)技术,并且可以被实现为hmd、提供在车辆中的平视显示器(hud)、电视、移动电话、智能电话、计算机、可穿戴设备、家用电器、数字标牌、车辆、固定机器人或移动机器人。
[0234]
xr/pcc设备1430可以分析通过各种传感器或从外部设备获取的3d点云数据或图像数据并生成关于3d点的位置数据和属性数据。由此,xr/pcc设备1430可以获取关于周围空间或真实对象的信息,并且渲染和输出xr对象。例如,xr/pcc设备1430可以使包括关于所识别的对象的辅助信息的xr对象与所识别的对象匹配并输出匹配的xr对象。
[0235]
《pcc 自驾驶 xr》
[0236]
自驾驶车辆1420可以通过应用pcc技术和xr技术被实现为移动机器人、车辆、无人驾驶飞行器等。
[0237]
对其应用xr/pcc技术的自驾驶车辆1420可以表示提供有用于提供xr图像的装置的自主车辆,或者作为xr图像中的控制/交互目标的自主车辆。具体地,作为xr图像中的控制/交互目标,自驾驶车辆1420可与xr设备1430相区分并且可以与其可操作地连接。
[0238]
具有用于提供xr/pcc图像的装置的自驾驶车辆1420可以从包括相机的传感器获取传感器信息,并且基于所获取的传感器信息来输出所生成的xr/pcc图像。例如,自驾驶车辆1420可以具有hud并向其输出xr/pcc图像以向乘客提供与真实对象或呈现在屏幕上的对象对应的xr/pcc对象。
[0239]
在这种情况下,当xr/pcc对象被输出到hud时,可以输出xr/pcc对象的至少一部分
以与乘客的眼睛所指向的真实对象重叠。另一方面,当xr/pcc对象输出在提供在自驾驶车辆内的显示器上时,可以输出xr/pcc对象的至少一部分以与屏幕上的对象重叠。例如,自驾驶车辆1220可以输出与诸如道路、另一车辆、交通灯、交通标志、两轮车、行人和建筑物的对象对应的xr/pcc对象。
[0240]
根据实施例的虚拟现实(vr)技术、增强现实(ar)技术、混合现实(mr)技术和/或点云压缩(pcc)技术适用于各种设备。
[0241]
换言之,vr技术是仅提供真实世界对象、背景等的cg图像的显示技术。另一方面,ar技术指代在真实对象的图像上示出虚拟创建的cg图像的技术。mr技术与上述ar技术的相似之处在于,要示出的虚拟对象与真实世界混合和组合。然而,mr技术与ar技术的不同之处在于,ar技术在真实对象和作为cg图像创建的虚拟对象之间明确区分并且使用虚拟对象作为真实对象的补充对象,而mr技术将虚拟对象视为具有与真实对象等同的特性的对象。更具体地,mr技术的应用是全息服务。
[0242]
最近,vr、ar和mr技术有时被称为扩展现实(xr)技术,而非彼此明确区分。因此,本公开的实施例适用于vr、ar、mr和xr技术中的任何一种。基于pcc、v-pcc和g-pcc技术的编码/解码适用于这种技术。
[0243]
根据实施例的pcc方法/设备可以被应用于提供自驾驶服务的车辆。
[0244]
提供自驾驶服务的车辆连接到pcc设备以进行有线/无线通信。
[0245]
当根据实施例的点云数据(pcc)发送/接收设备连接到车辆以进行有线/无线通信时,设备可以接收/处理与可与自驾驶服务一起提供的ar/vr/pcc服务有关的内容数据,并将其发送到车辆。在pcc发送/接收设备安装在车辆上的情况下,pcc发送/接收设备可以根据通过用户接口设备输入的用户输入信号接收/处理与ar/vr/pcc服务有关的内容数据并将其提供给用户。根据实施例的车辆或用户接口设备可以接收用户输入信号。根据实施例的用户输入信号可以包括指示自驾驶服务的信号。
[0246]
图15是图示根据实施例的点云数据编码器和点云数据解码器的流程图。
[0247]
在本公开中,根据实施例的方法/设备可以被解释为包括发送方法/设备和接收方法/设备两者。根据实施例的发送方法/设备可以表示点云数据编码器或点云数据编码,并且根据实施例的接收方法/设备可以表示点云数据解码器或点云数据解码。
[0248]
根据实施例的点云源被表示为比特流并且是按解码顺序的点的集合。点云可以由一个或多个样本阵列组成,并且可以包括几何信息(几何数据)(其是坐标信息)、诸如亮度、反射率和颜色值的属性信息、以及表示帧索引的属性采样的阵列、透明度等。
[0249]
点云数据的帧可以被划分为图块和切片。
[0250]
编码和发送的点云数据可以包括序列参数集、图块库存、几何参数集、属性参数集、几何数据和属性数据。
[0251]
几何数据可以由报头和数据(有效载荷)组成。报头可以包括几何参数集id/图块、切片或帧id。有效载荷可以包括用于每个几何八叉树深度的节点信息。
[0252]
属性数据可以由报头和数据(有效载荷)组成。报头可以包括参数集id、属性id和属性几何切片id。有效载荷可以包括关于每个点数的预测索引、残差值、属性编译等的信息。
[0253]
图15的编码器15000和15010以及解码器15020和1530可以分别对应于图1的编码
器1002和解码器1006、图2的编码器/编码20001和解码器/解码20003、图4的pcc编码器、图11的pcc解码器、图12的几何编码器和属性编码器图、图13的几何解码器和属性解码器、或者图14的xr设备1730。
[0254]
实施例提出一种在由于接收器性能或发送和接收点云数据中的传输速度而需要对部分数据进行选择性解码时有效地支持选择性解码的方法。所提出的方法包括:通过将通常以数据单元递送的几何数据和属性数据划分为诸如几何八叉树和lod(细节级别)的语义单元来选择比特流单元中需要的信息或移除不需要的信息的方法。这里,网络抽象层(nal)单元被定义为用于选择信息的单元,并且高级语法(hls)被定义用于pcc结构重构。
[0255]
因此,实施例解决了用于构建由点云组成的数据结构的技术。具体地,将描述用于有效地递送基于层配置的pcc数据的打包和信令方法,并且提出一种基于该方法应用于基于可缩放的pcc的服务的方法。
[0256]
点云数据包括位置(几何(例如,xyz坐标))和属性(例如,颜色、反射率、强度、灰度、不透明度等)。在点云压缩(pcc)中,执行基于八叉树的压缩以有效压缩三维空间中不均匀分布的分布特征,并且基于其压缩属性信息。g-pcc编码器和解码器已经分别参考图4和11进行了描述。这样,可以由pcc的发送侧和接收侧的各自组件来处理实施例的操作。
[0257]
根据实施例的发送设备通过将关于数据点的位置信息(几何数据)和诸如颜色/亮度/反射率的属性信息(属性数据)划分为几何和属性来压缩和发送点云数据。在这种情况下,根据实施例,pc数据可以根据具有层或细节级别(lod)的八叉树结构来配置,并且可以基于此执行可缩放点云数据编译和表示。在此操作中,由于接收器的性能或传输速率,可能仅解码或表示部分点云数据。但是,目前还没有方法来事先移除不需要的数据。即,当仅需要发送可缩放pcc比特流的一部分时(例如,当在可缩放解码中仅对一些层进行解码时),可能不允许仅选择和传送必要的部分。因此,1)解码后仅应重新编码必要的部分,或2)在发送所有数据后,接收器应选择性地应用必要的操作。但是,在情况1)中,由于解码和重新编码的时间,可能会出现延迟。在情况2)中,由于传输不必要的数据,带宽效率可能会退化。此外,当使用固定带宽时,可能需要降低用于传输的数据质量。
[0258]
本公开的实施例的变化和组合是可能的。本公开中使用的术语可以基于相关领域中常用范围内的术语的预期含义来理解。
[0259]
本文提出了一种比特流打包方法,用于基于点云数据按层配置,以比特流为单位有效地执行可缩放表示、子采样、子集提取等。
[0260]
编码器15000和编码器15010是根据实施例的点云数据发送设备的编码器。解码器15020和解码器15030是根据实施例的点云数据接收设备的解码器。
[0261]
编码器15000可以对几何数据和属性数据进行编码。输入到编码器的数据可以称为源数据。例如,源几何是几何输入数据,并且源属性是属性输入数据。编码器15000可以对整个源几何数据和源属性数据进行编码以生成完整的pcc比特流。解码器15020可以接收完整的pcc比特流。解码器15020可以通过对在发送侧编码和发送的数据进行解码来解码(或重构)完整的源几何数据和源属性数据。
[0262]
与编码器15000相比,编码器15010可以不完全编码源数据,而是可以基于子采样技术和/或缩小技术仅编码数据的一部分。因此,解码器15030可以接收部分pcc比特流。解码器15030可以在编码器15010的操作的逆过程中解码部分pcc比特流以重构部分几何数据
和部分属性数据。
[0263]
在本公开中,提出了根据实施例的发送/接收方法/设备根据八叉树结构或具有与细节程度相对应的层的lod(细节级别)来配置pc数据,定义pcc nal单元,通过参数集用信号发送几何/属性层结构,预先移除不必要的数据,并且仅发送部分数据(部分pcc比特流)。
[0264]
图16示出根据实施例的比特流的片段16020至16050的配置。
[0265]
图16图示根据实施例的发送设备根据要发送的数据类型将通过点云压缩获得的比特流划分为几何数据比特流16060和属性数据比特流16070的情况。这里,每个比特流可以以逐切片为单位被配置和递送。几何数据比特流16060和属性数据比特流16070中的每一个可以以一个单元配置并且与层信息或lod信息无关地被递送。
[0266]
图16的几何比特流16060、16020和16040以及属性比特流16070、16030和06050可以由图15的编码器15000和15010生成/编码,并且由图15的解码器15020和15030解码/解析。
[0267]
切片指代表示编译的点云帧的整体或部分的一系列语法元素。
[0268]
在这种情况下,用于重构几何和属性的信息都存在于一个切片中。因此,由信息损失引起的重构错误的可能性可能低,并且可以容易地配置比特流。然而,为了仅使用比特流中的一些信息,需要对整个比特流进行解码。此外,当点云数据的子集在基于可缩放编译的应用领域中被递送或使用时,需要对信息进行重构。因此,为了解决这些问题,根据实施例的方法/设备可以对点云数据执行可缩放编译方案16000和16010。
[0269]
为了在比特流级别有效地选择信息,根据实施例的发送/接收设备可以分别对几何比特流和属性比特流进行分段。在这种情况下,可以基于pcc分层对数据进行分区。
[0270]
层指代用于可缩放解码的比特流的划分单元。比特流可以被划分为片段。片段对应层。层可以被包括在nal单元中。nal单元可以包括一个层或多个层。根据实施例,可以存在用于将比特流划分成层的各种准则,并且比特流中彼此相关的数据可以属于同一层。此外,可以基于诸如点云数据可以被分区的切片/图块的单元来以层为单位划分比特流。
[0271]
例如,编码器可以基于八叉树结构压缩几何数据。在这种情况下,属于相同八叉树深度级别的多条信息可以被捆绑并作为一个单元递送。因此,仅需要一部分信息的应用领域的设备可以以比特流为单位选择性地重构必要的信息。
[0272]
当编码器对属性执行raht编译时,可以基于八叉树深度级别来区分属性数据,就如在几何的情况下一样。
[0273]
当编码器对属性执行预测提升(pred-lifting)编译时,可以根据lod基于层对属性数据进行划分。
[0274]
在基于八叉树深度级别将几何比特流分区成比特流单元中,当基于raht对属性进行编码时,可以以与几何相同的单元生成比特流片段(参见图15中的同步分区16000)。
[0275]
如在1)图16的同步分区16000中,可以执行信令使得在几何比特流和属性比特流之间在结构上存在相似性。
[0276]
如在2)图16的16010的异步分区中,当属性通过预测提升被编码时,lod可以独立于几何八叉树结构进行配置,并且属性比特流片段可以以不同于几何的格式被配置。
[0277]
在这种情况下,比特流片段16020至16050可以取决于应用领域基于层或使用另一种方法来区分。当上述区分方法影响解码时,可以单独用信号发送关于其的信息。另外,每
个比特流片段可以只匹配一层的信息或多层或一些层的信息。
[0278]
当根据实施例的发送设备的编码器生成几何比特流16060和属性比特流16070时,编码/解码(重构)需要这两个比特流,因为属性取决于几何。几何比特流16060和属性比特流16070的结构可以促进包括在一个单元中的数据的重构。
[0279]
此外,根据实施例的发送设备的编码器可以生成几何比特流16020和16040以及属性比特流16030和16050。可以基于比特流片段生成几何比特流16020和属性比特流16030。对于每一层,每个比特流可以被分区成一个或多个片段,并且几何的每个片段和属性的每个片段可以根据属性的编译方案彼此同步或不同步。如上所述,比特流片段和层之间的信息匹配可以是单数/复数匹配。在下文中,将进一步描述根据实施例的比特流片段处理方法。
[0280]
几何数据包括基于八叉树结构生成的层,并且属性数据包括基于lod生成的层。
[0281]
此外,执行同步分区意指几何的点数与直到特定层的选择性可缩放解码中的属性的点数相同。
[0282]
当几何比特流和属性比特流被划分为如图16中所示的层时,可缩放解码可以高效快速地执行,并且无需接收器确定是否需要将接收到的点云数据解码到切片级别。
[0283]
照此,根据实施例的层可以是用于可缩放解码的比特流的分区单元。
[0284]
此外,根据本公开的实施例的层(片段)不限于可缩放解码,并且可以是可以根据几何/属性的各种特性进行分区/分类的单元。
[0285]
例如,即使在不执行可缩放解码时,几何编译中使用的几何深度也可以具有层。另外,通过idcm生成的直接编译点和基于八叉树压缩的比特流可以被划分为各自的层。类似地,除了可缩放解码的情况之外,在属性编译中使用的属性层可以存在于属性数据中。可以基于属性之间的相似性将属性数据划分为层。
[0286]
图17图示根据实施例的基于pcc层结构的比特流片段匹配。
[0287]
在下文中,将根据实施例从点云数据编码器的角度描述基于pcc层结构的比特流片段匹配方法。
[0288]
图17解释如何匹配图16中描述的几何/属性数据与几何/属性比特流片段。图15的编码器可以通过图17的过程生成/匹配/编码比特流片段并且将其发送。
[0289]
图17图示所提出的比特流片段配置方法与实际几何数据和属性数据的层结构之间的相关性。首先,假定几何由三个八叉树深度级别17000组成,根到叶可以从0到3编号,并且匹配各自的八叉树层的几何比特流片段17010也可以以相同的方式编号。
[0290]
例如,可以执行分段/编号,使得片段0(nal 0)与深度级别0(根)节点匹配,片段1(nal1)与深度级别1节点匹配,片段2(nal2)与深度级别2节点匹配,并且片段3(nal3)与深度级别3(叶)节点匹配。
[0291]
在这种情况下,每个比特流片段可以在称为网络抽象层(nal)的单元中打包和递送。另外,通过定义nal报头中包括的比特流的信息(数据类型:几何数据;层数=八叉树深度层),即使比特流没有被解析到更低的级别,也可以确定是否在nal单元中取来信息。
[0292]
当属性通过基于lod的预测提升(17030)被编码时,可以将每个lod新包括的信息假定为构成每个层的信息,如图17中所示。
[0293]
属性比特流片段17020可以被打包在属性nal单元中。例如,属性nal单元0可以是
构成lod 0的信息,属性nal单元0和1可以是构成lod 1的信息,属性nal单元0、1和2可以是构成lod 2的信息。
[0294]
在这种情况下,可以应用异步分区,因为比特流片段配置方法在几何和属性之间不同。
[0295]
当相同的比特流片段配置方法被用于几何和属性时,图16的同步分区可以被应用。
[0296]
根据实施例,几何比特流的片段(单元)与几何八叉树结构的深度层之间的匹配可以是一对一匹配(打包)或多对多匹配(打包)。
[0297]
根据实施例,属性比特流的片段(单元)与属性lod结构的层之间的匹配可以是一对一匹配(打包)或多对多匹配(打包)。
[0298]
根据实施例,深度和lod可以是用于区分层的参考,或者其他参考可以是层的单位。
[0299]
图18图示根据实施例的比特流片段的解码和pcc结构的层匹配。
[0300]
参考图18,将从根据实施例的接收设备(解码器)的角度来描述解码如图17中所示生成的比特流片段结构的过程。
[0301]
作为上述实施例的对应过程,根据实施例的点云接收设备或解码器可以对比特流片段进行解码,并且然后可以将比特流片段与pcc结构中的层进行匹配。
[0302]
图18图示图15的解码器如何接收并解码图16的几何/属性比特流片段。即,图18图示解码器如何将接收的几何/属性比特流片段与几何/属性数据匹配。
[0303]
接收器可以基于nal单元报头中的信息选择性地解码/解析由pcc层结构分区和发送的比特流片段。
[0304]
从而,可以事先高效/有效地减少发送到接收设备的解码器的数据量。根据实施例的解码器可以为几何比特流和属性比特流中的每一个选择要解码的层。
[0305]
例如,层选择方法可以由接收器系统定义,或者发射器可以基于解码器的性能将与选择相关的信息递送给接收器。
[0306]
解码器可以基于nal单元报头中的信息移除在层之后的信息。在图17中,假定所有四个层(八叉树深度级别0到3)都定义为被用于几何八叉树级别,但是定义了直到lod1的层被用于属性。在这种情况下,可以不基于属性nal单元报头中的spatial_id(参考图20)的信息来选择/使用属性nal 2。所选择的信息可以与几何八叉树层和lod层相匹配。
[0307]
在这种情况下,整个层配置信息和匹配比特流片段的信息可以用作用于选择比特流片段的参考信息。该信息可以通过诸如sps、gps、aps的参数集发送,或者可以通过诸如sei消息(信令信息)的信息发送。
[0308]
根据实施例的点云接收设备或解码器可以接收比特流并基于nal单元执行比特流提取/选择。
[0309]
1)当nal_unit_type等于0(sps_nut)时,接收设备或解码器解析nal单元,并确定点云数据或比特流是否基于切片来划分(例如,对于被分段成切片的数据(比特流),sps_slice_segmentation_flag可以是1)。然后,接收设备、解码器或几何解码器可以如下执行几何比特流选择/提取过程。
[0310]
2)对于基于切片的分段比特流,当nal_unit_type等于2(gps_nut)时,接收设备、
解码器或几何解码器解析nal单元。
[0311]
接收设备、解码器或几何解码器可以获取与nal单元报头中的nal_spatial_id匹配的几何层信息。例如,根据实施例,当gps_max_spatial_id是3,gps_max_geom_layer_idx是3,并且nal_spatial_id是0时,gps_geom_layer_idx可以是0(18000)。当nal_spatial_id为1时,gps_geom_layer_idx可以为1(18010)。当nal_spatial_id为2时,gps_geom_layer_idx可以为2(18020)。当nal_spatial_id为3时,gps_geom_layer_idx可以为3(18030)。即,可以基于几何比特流片段的nal_spatial_id来选择几何层。
[0312]
可以基于在图20的nal单元报头中用信号发送的信息来获取nal_spatial_id。
[0313]
当存在由接收设备作为目标的几何层时,与层匹配的具有大于nal_spatial_id的值的几何nal单元可以被丢弃。因此,可以执行nal单元的选择性解析。
[0314]
3)对于选择/提取的比特流片段,接收设备、解码器或几何解码器可以通过解析nal单元来获得几何切片片段。解码器通过根据传输顺序(或根据单独用信号发送的顺序)解析所有选择的切片来获得切片层原始字节序列有效载荷(slice_layer_rbsp())。在这种情况下,因为pcc发送/接收基于层之间的相似性执行预测,所以数据重构的顺序非常重要。
[0315]
4)可以基于在操作2)中识别的层结构来重构解码的几何数据。
[0316]
接收设备、解码器或属性解码器可以如下执行属性比特流选择/提取。
[0317]
5)当包括在sps中的sps_synchronous_geom_attr_segment_flag为0(或1,其中数值可以根据实施例改变)时(即,此标志指示同步情况),其可以指示以与几何nal单元相同的方式配置属性nal单元(16000)(例如,sps_synchronous_geom_attr_segment_flag为1)。在这种情况下,属性目标层可以被设置为几何目标层的值,并且可以通过属性nal单元的nal_spatial_id来提取和选择特定层和较低层的比特流。
[0318]
6)当sps_synchronous_geom_attr_segment_flag等于1(或0,其中数值可以根据实施例改变)时(即,当此标志指示异步情况时),属性nal单元可以与几何nal单元不同地配置(16010)。在这种情况下,解析与nal_unit_type为3(aps_nut)的情况对应的信息。这里,可以获取与属性nal单元头中的nal_spatial_id匹配的属性层信息。
[0319]
例如,根据实施例,当sps_synchromous_geom_attr_segment_flag=0时(即,异步情况),假设aps_max_spatial_id为3,并且aps_max_attr_layer_idx为2。在这种情况下,当nal_spatial_id为0时,aps_attr_layer_idx可以为0(18040)。当nal_spatial_id为1时,aps_attr_layer_idx可以是1(18050)。当nal_spatial_id为2时,aps_attr_layer_idx可以为2。可以基于如上所述的nal_spatial_id和aps_attr_layer_idx来识别属性层的结构。在存在目标几何层的情况下,可以丢弃与对应层匹配的具有大于nal_spatial_id的值的属性nal单元。在实施例中,可以不使用层2。在这种情况下,可以通过丢弃nal_spatial_id=2的情况只解码对应于lod1的信息(18060)。
[0320]
7)对于选择/提取的比特流片段,解码器可以通过解析nal单元来获得属性切片片段。解码器通过根据传输顺序(或根据单独用信号发送的顺序)解析所有选择的切片来获得slice_layer_rbsp()。在这种情况下,因为pcc基于层间的相似性执行预测,所以数据重构的顺序非常重要。此外,必要时,可以在属性解码中使用重构的几何数据。
[0321]
8)可以基于在操作6)中识别的层结构来重构解码的数据。
[0322]
简而言之,为了支持图15的可缩放/部分编码/解码,实施例可以将几何/属性比特流配置成片段。在这种情况下,可以使用nal单元。此外,当几何/属性比特流被表示为如图16中所示的片段时,可以考虑几何与属性同步的情况和/或几何与属性不同步的情况。如图17中所示,根据实施例的点云数据发送设备和/或发送设备的编码器可以通过将几何比特流片段与八叉树节点的级别(深度/层)匹配来生成几何比特流片段,并且通过将属性比特流片段与属性数据的lod(层)进行匹配来生成属性比特流片段。类似地,如图18中所示,基于信令信息,根据实施例的接收设备和/或点云数据接收设备的解码器可以根据匹配/用信号发送的片段/nal片段/八叉树级别(深度/层)对几何比特流执行可缩放(部分)解码,并根据匹配/用信号发送的片段/nal片段/lod级别对属性比特流片段执行可缩放(部分)解码。
[0323]
根据实施例的解码可以包括将几何比特流的单元匹配到几何数据的八叉树层,并将属性比特流的单元映射到属性数据的lod。
[0324]
图19示出根据实施例的pcc nal(网络抽象层)单元。
[0325]
如在此使用的,术语语法和语义可以仅基于术语的预期含义来理解,并且可以被称为等效范围内的其他术语。
[0326]
nal单元可以由图15的编码器15000和15010等来生成。
[0327]
根据实施例的点云数据发送设备和/或编码器可以定义关于在序列参数集中比特流被分段成的切片、几何切片报头和属性切片报头的信息。
[0328]
另外,通过根据应用或系统在相应或单独的位置中定义上述分段相关信息,可以不同地使用应用范围、应用方法等。
[0329]
此外,根据实施例的独立于属性编译技术定义信息的方法可以结合属性编译技术来定义。
[0330]
可以在用于几何可缩放性的几何参数集中定义上述分段相关信息。另外,当图19所示的语法元素不仅适用于当前点云数据流而且适用于多个点云数据流时,信息可以通过更高级别的参数集递送。
[0331]
nal_unit指定包括点云数据的比特流的nal单元。
[0332]
nal_unit_header是nal单元的报头。nal单元可以由报头和有效载荷组成。
[0333]
numbytesinnalunit指定nal单元中的字节数。
[0334]
rbsp_byte[i]指示rbsp的第i个字节。rbps表示原始字节序列有效载荷。nal单元的有效载荷包括rbps。rbps可以包括参数集,诸如sps、和切片数据rbps。
[0335]
emulation_prevention_three_byte的值为0x03。当该值存在时,不得在解码过程中使用它。
[0336]
nal单元由nal单元报头和nal单元有效载荷组成,如图19中所示。nal单元有效载荷可以以rbps字节配置。
[0337]
实施例将pcc网络抽象层(nal)单元定义为当比特流被划分成片段时增加比特流单元选择的效率的方法。这里,nal单元可以根据nal_unit_type被划分为几何nal单元(nal_unit_type=16,17)和属性nal单元(nal_unit_type=18,19)。另外,可以区分诸如参数集或sei消息的非编译层信息。
[0338]
作为比特流的组成单元的单元包括关于比特流的单元的结构的信息。
[0339]
图20示出根据实施例的nal单元的报头。
[0340]
当以空间层为单位配置pcc比特流时,nuh_spatial_id_plus1可以被用于通过从nuh_spatial_id_plus1减去1获得的值在比特流单元中区分空间层。当考虑空间层划分切片时,可以定义gsh_slice_id和ash_slice_id的值以与nuh_spatial_id_plus1相链接。
[0341]
图17和图18描述的pcc比特流片段和pcc层之间的匹配可以基于与图20的原始单元报头的id信息相对应的id信息来执行。
[0342]
空间层可以是pcc比特流的划分单元。可以基于比特流的nal单元头中的空间id信息以逐层为基础划分比特流。
[0343]
当切片与空间层相关时,每个几何和属性的切片id可以与nal单元的空间id相链接,使得切片id值可以与空间id值匹配。也就是说,几何可以基于八叉树结构被划分成层,并且属性可以基于lod被划分成层。
[0344]
nal_unit_type指定nal单元类型。类型值的细节将参考图21进行描述。
[0345]
nuh_layer_id_plus1减1可以指示由cl(编译层)nal单元或非cl nal单元的信息表示的层。
[0346]
图21示出根据实施例的nal单元的类型。
[0347]
可以如下根据nal_unit_type的值用信号发送各种类型的nal单元。根据实施例的发送方法/设备(点云数据发送方法/设备)可以生成和发送nal单元,并且根据实施例的接收方法可以根据nal单元的类型接收和解析信息。从而,可以获得参考图15至图18描述的技术目的和效果。
[0348]
图19的nal单元由报头和有效载荷组成,图20描述报头的语法,并且图21示出根据由图20的报头用信号发送的单元类型的有效载荷的配置。
[0349]
当nal_unit_type为0时,nal单元为sps_nut,nal单元的内容和rbsp语法结构为序列参数集(seq_parameter_set_rbsp()),并且nal单元类型类别为non-cl(编译层)。
[0350]
当nal_unit_type为1时,nal单元为tps_nut,nal单元的内容和rbsp语法结构为图块参数集(tile_parameter_set_rbsp()),并且nal单元类型类别为non-cl。
[0351]
当nal_unit_type为2时,nal单元为gps_nut,nal单元的内容和rbsp语法结构为几何参数集(geom_parameter_set_rbsp()),并且nal单元类型类别为non-cl。
[0352]
当nal_unit_type为3时,nal单元为aps_nut,nal单元的内容和rbsp语法结构为属性参数集(attribute_parameter_set_rbsp()),并且nal单元类型类别为non-cl。
[0353]
当nal_unit_type为4时,nal单元为aud_nut,nal单元的内容rbsp语法结构为访问单元分隔符(access_unit_delimiter_rbsp()),并且nal单元类型类别为non-cl。
[0354]
当nal_unit_type为5时,nal单元为prefix_sei_nut,nal单元的内容和rbsp语法结构为补充增强信息(sei_rbsp()),并且nal单元类型类别为non-cl。
[0355]
当nal_unit_type为6时,nal单元为suffix_sei_nut,nal单元的内容和rbsp语法结构为补充增强信息(sei_rbsp()),并且nal单元类型类别为non-cl。
[0356]
当nal_unit_type为7时,nal单元为eos_nut,nal单元的内容和rbsp语法结构为序列结束(end_of_seq_rbsp()),并且nal单元类型类别为non-cl。
[0357]
当nal_unit_type为8时,nal单元为eob_nut,nal单元的内容和rbsp语法结构为序列结束(end_of_bitstream_rbsp()),并且nal单元类型类别为非cl。
[0358]
当nal_unit_type为9至15时,nal单元为rsv_ncl9至rsv_ncl15,nal单元的内容和
rbsp语法结构为保留,并且nal单元类型类别为non-cl。
[0359]
当nal_unit_type为16时,nal单元为idg_nut,nal单元的内容和rbsp语法结构为独立可解码几何的编译切片(slice_layer_rbsp()),并且nal单元类型类别为gcl(几何编译层)。
[0360]
当nal_unit_type为17时,nal单元为dg_nut,nal单元的内容和rbsp语法结构为依赖几何的编译切片(slice_layer_rbsp()),并且nal单元类型类别为gcl。
[0361]
当nal_unit_type为18时,nal单元为ida_nut,nal单元的内容和rbsp语法结构为独立可解码属性的编译切片(slice_layer_rbsp()),并且nal单元类型类别为acl(属性编译层)。
[0362]
当nal_unit_type为19时,nal单元为da_nut,并且nal单元的内容和rbsp语法结构为依赖属性的编译切片(slice_layer_rbsp()),并且nal单元类型类别为acl。
[0363]
当nal_unit_type为20至27时,nal单元为rsv_nvcl20至rsv_nvcl27,nal单元的内容和rbsp语法结构为保留,并且nal单元类型类别为cl(编译层)。
[0364]
当nal_unit_type为28至31时,nal单元为unspec28至unspec31,nal单元的内容和rbsp语法结构为未指定,并且nal单元类型类别为cl。
[0365]
图22示出根据实施例的序列参数集。
[0366]
图22示出根据由nal单元的报头指示的类型可以包括的nal单元的有效载荷信息的配置。
[0367]
sps_slice_segment_flag等于1可以指示切片被划分。当该标志为0时,可以指示几何和属性中的每一个都被配置在一个切片中。
[0368]
sps_synchronous_geom_attr_segment_flag等于1可以指示以相同的结构划分几何切片和属性切片。等于0的标志可以指示以独立的结构划分几何切片和属性切片。当sps_slice_segment_flag等于0时,sps_synchronous_geom_attr_segment_flag应为0。
[0369]
profile_compatibility_flags[j]等于1指示比特流符合由等于j的profile_idc指示的简档。对于未指定为profile_idc值的任何j值,profile_compatibility_flag[j]的值可以等于0。
[0370]
level_idc指示比特流所属于的级别。比特流不应包含level_idc的其他值。level_idc的其他值被保留以供iso/iec将来使用。
[0371]
sps_bounding_box_present_flag等于1指示源边界框偏移,并且在sps中用信号发送大小信息。sps_bounding_box_present_flag等于0指示没有用信号发送源边界框信息。
[0372]
sps_bounding_box_offset_x指示笛卡尔坐标系中源边界框的x偏移。如果不存在,则推断sps_bounding_box_offset_x的值为0。
[0373]
sps_bounding_box_offset_y指示笛卡尔坐标系中源边界框的y偏移。如果不存在,则推断sps_bounding_box_offset_y的值为0。
[0374]
sps_bounding_box_offset_z指示笛卡尔坐标系中源边界框的z偏移。如果不存在,则推断sps_bounding_box_offset_z的值为0。
[0375]
sps_bounding_box_scale_factor指示笛卡尔坐标系中源边界框的缩放因子。如果不存在,则推断sps_bounding_box_scale_factor的值为1。
[0376]
sps_bounding_box_size_width指示笛卡尔坐标系中源边界框的宽度。如果不存在,则推断sps_bounding_box_size_width的值为1。
[0377]
sps_bounding_box_size_height指示笛卡尔坐标系中源边界框的高度。如果不存在,则推断sps_bounding_box_size_height的值为1。
[0378]
sps_bounding_box_size_depth指示笛卡尔坐标系中源边界框的深度。如果不存在,则推断sps_bounding_box_size_depth的值为1。
[0379]
sps_source_scale_factor指示源点云的缩放因子。
[0380]
sps_seq_parameter_set_id为sps提供标识符以供其他语法元素参考。在符合实施例的特定版本的比特流中,sps_seq_parameter_set_id的值可以是0。其他值可能被保留以供iso/iec将来使用。
[0381]
sps_num_attribute_sets指示比特流中编译属性的数量。sps_num_attribute_sets的值可能在0至63的范围内。
[0382]
attribute_dimension[i]指定第i个属性的分量的数量。
[0383]
attribute_instance_id[i]指定第i个属性的实例id。
[0384]
attribute_bitdepth[i]指定第i个属性信号的位深度。
[0385]
attribute_cicp_colour_primaries[i]指示第i个属性的颜色属性源原色的色度坐标。
[0386]
attribute_cicp_transfer_characteristics[i]指示颜色属性的参考光电传递特性函数,作为具有标称实值范围为0至1的源输入线性光强度lc的函数,或者指示参考光电传递特性函数的倒数作为具有标称实值范围为0至1的输出线性光强度lo的函数。
[0387]
attribute_cicp_matrix_coeffs[i]描述用于从绿色、蓝色和红色或y、z和x原色导出亮度和色度信号的矩阵系数。
[0388]
attribute_cicp_video_full_range_flag[i]指示从e'y、e'pb和e'pr或e'r、e'g和e'b实值分量信号导出的亮度和色度信号的黑级别和范围。
[0389]
known_attribute_label_flag[i]等于1指定为第i个属性用信号发送的know_attribute_label。known_attribute_label_flag[i]等于0指定为第i个属性用信号发送的attribute_label_four_bytes。
[0390]
known_attribute_label[i]等于0指定属性是颜色。known_attribute_label[i]等于1指定属性是反射率。known_attribute_label[i]等于2指定属性是帧索引。
[0391]
attribute_label_four_bytes[i]指示具有4字节码的已知的属性类型。
[0392]
attribute_label_four_bytes[i]等于0指示属性类型是颜色。attribute_label_four_bytes[i]等于1指示属性类型是反射率。attribute_label_four_bytes[i]等于0xffffffff指示未指定属性类型。
[0393]
sps_extension_present_flag等于1指定sps_extension_data语法结构存在于sps语法结构中。sps_extension_present_flag等于0指定此语法结构不存在。当不存在时,sps_extension_present_flag的值被推断为等于0。
[0394]
sps_extension_data_flag可以具有任何值。它的存在以及值不影响符合根据实施例的版本的解码器。
[0395]
由于本公开中描述的语法和语义,可以提供根据实施例的方法/设备的效果。
[0396]
图23示出根据实施例的geometry_parameter_set。
[0397]
gps_max_spatial_id指示用于当前几何的空间id的最大值。gps_max_spatial_id可以具有介于0与当nal单元类型类别为gcl(几何编译层)时给出的nuh_spatial_id_plus1的最大值之间的值。如参考图18所描述的,当根据实施例的解码器执行匹配操作时使用此信息。
[0398]
gps_max_geom_layer_idx指示几何编译中定义的几何层的最大值。例如,对于八叉树结构中配置的几何,其可能具有最大八叉树深度级别值。如参考图18所描述的,当根据实施例的解码器执行匹配操作时使用此信息。
[0399]
octree指代表示点云的3d几何的8叉树。根据实施例的编码几何数据的编码器可以使用几何八叉树。八叉树结构通过递归细分被生成。
[0400]
gps_geom_layer_idx[i]指示匹配第i个spatial_id的几何层。例如,对于八叉树结构中配置的几何,可以指示匹配spatial_id的八叉树深度级别。
[0401]
在几何参数集中用信号发送与gps_max_spatial_id的值一样多的gps_geom_layer_idx[i]。如参考图18所描述的,当根据实施例的解码器执行匹配操作时使用此信息。
[0402]
gps_geom_parameter_set_id提供用于gps的标识符以供其他语法元素参考。gps_seq_parameter_set_id的值可以在0至15的范围内(包括0和15)。
[0403]
gps_seq_parameter_set_id指定用于活动sps的sps_seq_parameter_set_id的值。gps_seq_parameter_set_id的值可以在0至15的范围内(包括0和15)。
[0404]
gps_box_present_flag等于1指定在参考当前gps的几何报头中提供附加边界框信息。gps_bounding_box_present_flag等于0指定不在几何报头中用信号发送附加边界框信息。
[0405]
gps_gsh_box_log2_scale_present_flag等于1指定在参考当前gps的每个几何切片报头中用信号发送gsh_box_log2_scale。gps_gsh_box_log2_scale_present_flag等于0指定不在每个几何切片报头中用信号发送gsh_box_log2_scale,并且在当前gps的gps_gsh_box_log2_scale中用信号发送用于所有切片的公共缩放(scale)。当gps_box_present_flag为1时,用信号发送gps_gsh_box_log2_scale_present_flag。
[0406]
gps_gsh_box_log2_scale指示参考当前gps的所有切片的边界框原点的公共缩放因子。
[0407]
unique_geometry_points_flag等于1指示所有输出点都有唯一的位置。unique_geometry_points_flag等于0指示两个或多个输出点可能具有相同的位置。
[0408]
neighbor_context_restriction_flag等于0指示八叉树占用编译使用从六个邻近父节点确定的上下文。neighbor_context_restriction_flag等于1指示八叉树编译仅使用从兄弟节点确定的上下文。
[0409]
inferred_direct_coding_mode_enabled_flag等于1指示direct_mode_flag可能存在于几何节点语法中。等于0的标志指示在几何节点语法中不存在direct_mode_flag。
[0410]
bitwise_occupancy_coding_flag等于1指示使用语法元素occupancy_map的按比特的上下文化(contextualization)对几何节点占用进行编码。bitwise_occupancy_coding_flag等于0指示几何节点占用使用字典编码的语法元素occypancy_byte被编码。
[0411]
adjacent_child_contextualization_enabled_flag等于1指示邻近八叉树节点
的相邻子节点被用于按比特的占用上下文化。adjacent_child_contextualization_enabled_flag等于0指示邻近八叉树节点的子节点不被用于占用上下文化。
[0412]
log2_neighbor_avail_boundary指定变量neighbavailboundary的值。此值在解码过程中被如下使用。
[0413]
neighbavailboundary=2"log2_neighbor_avail_boundary"
[0414]
当neighbour_context_restriction_flag等于1时,neighbavailabilitymask被设置为等于1。另一方面,当neighbour_context_restriction_flag等于0时,neighbavailabilitymask被设置为等于1《《log2_neighbor_avail_boundary。
[0415]
log2_intra_pred_max_node_size指定适合占用帧内预测的八叉树节点大小。
[0416]
trisoup节点大小(log2_trisoup_node_size):指定变量trisoupnodesize作为三角形节点的大小如下:
[0417]
trisoupnodesize=1《《log2_trisoup_node_size
[0418]
当log2_trisoup_node_size等于0时,几何比特流仅包括八叉树编译语法。当log2_trisoup_node_size大于0时,其是比特流一致性要求:inferred_direct_coding_mode_enabled_flag必须等于0,并且unique_geometry_points_flag必须等于1。
[0419]
gps_extension_present_flag等于1指定gps_extension_data语法结构存在于gps语法结构中。gps_extension_present_flag等于0指定此语法结构不存在。当不存在时,gps_extension_present_flag的值被推断为等于0。
[0420]
gps_extension_data_flag可以具有任何值。根据实施例,其存在以及值不影响遵循简档的解码器。根据实施例,解码器符合简档。
[0421]
图24示出根据实施例的属性参数集(attribute_parameter_set())。
[0422]
aps_max_spatial_id指示当前属性的spatial_id的最大值。aps_max_spatial_id可以具有0与当nal单元类型类是acl(属性编译层)时给出的nuh_spatial_id_plus1的最大值之间的值。当几何/属性根据sps_synchronous_geom_attr_segment_flag不同步时,可以用信号发送aps_max_spatial_id、aps_max_attr_layer_idx和aps_attr_layer_idx_[i]。可以为每个aps_max_spatial_id用信号发送aps_attr_layer_idx_[i]。
[0423]
aps_max_attr_layer_idx指示构成属性的属性层的最大值。例如,当基于lod执行属性编译时,其可能具有lod层的最大值。
[0424]
aps_attr_layer_idx[i]指示匹配第i个spatial_id的属性层。例如,当基于lod结构执行属性编译时,可以指示匹配属性层的spatial_id的lod层。
[0425]
aps_attr_parameter_set_id为aps提供标识符以供其他语法元素参考。aps_attr_parameter_set_id的值可以在0至15(包括0和15)的范围内。
[0426]
aps_seq_parameter_set_id指定用于活动sps的sps_seq_parameter_set_id的值。aps_seq_parameter_set_id的值可以在0至15(包括0和15)的范围内。
[0427]
attr_coding_type指示用于attr_coding_type给定值的属性的编译类型。attr_coding_type的值可能等于0、1或2。attr_coding_type的其他值被保留以供iso/iec将来使用。解码器可以忽略attr_coding_type的保留值。
[0428]
例如,当attr_coding_type等于0时,编译类型是预测权重提升(predicting weight lifting)。当attr_coding_type等于1时,编译类型为区域自适应分层变换(raht)。
当attr_coding_type等于2时,编译类型为等固定权重提升(fix weight lifting)。
[0429]
aps_attr_initial_qp为参考aps的每个切片指定变量sliceqp的初始值。当slice_qp_delta_luma或slice_qp_delta_luma的非零值被解码时,在属性切片片段层改变/修改sliceqp的初始值。aps_attr_initial_qp的值可以在0至52(包括0和52)的范围内。
[0430]
aps_attr_chroma_qp_offset指定对由语法aps_attr_initial_qp用信号发送的初始量化参数的偏移。
[0431]
aps_slice_qp_delta_present_flag等于1指定ash_attr_qp_delta_luma和ash_attr_qp_delta_luma语法元素存在于ash中。aps_slice_qp_present_flag等于0指定ash_attr_qp_delta_luma和ash_attr_qp_delta_luma语法元素不存在于ash中。
[0432]
lifting_num_pred_nearest_neighbours指定要被用于预测的最近邻居的最大数量。lifting_num_pred_nearest_neighbours的值可以在1至xx的范围内。
[0433]
lifting_max_num_direct_predictors指定要被用于直接预测的预测器的最大数量。lifting_max_num_direct_predictors的值可以在0至lifting_num_pred_nearest_neighbours的范围内。
[0434]
解码过程中使用的变量maxnumpredictors的值给出如下:maxnumpredictors=lifting_max_num_direct_predictors 1
[0435]
lifting_search_range指定用于确定最近邻居以被用于预测和构建基于距离的细节级别的搜索范围。
[0436]
lifting_lod_regular_sampling_enabled_flag等于1指定使用常规采样策略构建细节级别。lifting_lod_regular_sampling_enabled_flag等于0指定改为使用基于距离的采样策略。
[0437]
lifting_num_detail_levels_minus1指定用于属性编译的细节级别数。lifting_num_detail_levels_minus1的值可以在0至xx的范围内。
[0438]
lifting_num_pred_nearest_neighbours、lifting_max_num_direct_predictors、lifting_search_range、lifting_lod_regular_sampling_enabled_flag和lifting_num_detail_levels_minus1根据islifting的值被用信号发送。当attr_coding_type等于0或2时,islifting值为1。否则,其为0。
[0439]
lifting_sampling_period[idx]指定细节级别idx的采样周期。lifting_sampling_period[]的值可以在0至xx的范围内。
[0440]
lifting_sampling_period和lifting_sampling_distance_squared[idx]根据lifting_lod_decimation_enabled_flag用信号发送,并且可以为与num_detail_levels_minus1的值一样多的每个索引用信号发送。
[0441]
lifting_sampling_distance_squared[idx]指定用于细节级别idx的采样距离的平方。lifting_sampling_distance_squared[]的值可以在0至xx的范围内。
[0442]
lifting_adaptive_prediction_threshold指定启用自适应预测的阈值。lifting_adaptive_prediction_threshold[]的值可以在0至xx的范围内。
[0443]
lifting_intra_lod_prediction_num_layers指定lod层的数量,其中可以参考同一lod层中的解码的点来生成目标点的预测值。lifting_intra_lod_prediction_num_layers等于num_detail_levels_minus1加1指示目标点可以参考所有lod层的同一lod层中
的解码的点。lifting_intra_lod_prediction_num_layers等于0指示目标点不能参考任何lod层的同一lod层中的解码的点。lifting_intra_lod_prediction_num_layers可以在0到lifting_num_detail_levels_minus1加1的范围内。
[0444]
当attr_coding_type等于0时,用信号发送lifting_adaptive_prediction_threshold和lifting_intra_lod_prediction_num_layers。
[0445]
aps_extension_present_flag等于1指定aps_extension_data语法结构存在于aps语法结构中。aps_extension_present_flag等于0指定此语法结构不存在。当不存在时,aps_extension_present_flag的值被推断为等于0。
[0446]
aps_extension_data_flag可以具有任何值。根据实施例,其存在以及值不影响符合简档的解码器。
[0447]
图25图示根据实施例的点云数据发送设备的编码器。
[0448]
在下文中,将描述根据实施例的发送终端和接收终端的组件。每个组件可以对应于处理器、软件或硬件。此外,以下描述的组件可以与pcc发送终端和接收终端的结构和/或信令信息组合。
[0449]
图25图示根据实施例的用于编码和发送pcc数据的详细功能配置的实施例。当点云数据输入到编码器25000和25010时,编码器25000和25010分别提供位置信息(几何数据(例如,xyz坐标、phi-theta坐标等))和属性信息(属性数据(例如,颜色、反射率、强度、灰度、不透明度、介质、材料、光泽度等))。压缩后的数据被划分成多个单元以进行传输。数据可以根据分层结构信息由打包模块25020以nal为单位被划分和打包。
[0450]
换言之,几何编码器25000接收点云数据并对点云数据的几何数据进行编码。编码的几何数据可以采用几何比特流的形式。
[0451]
属性编码器25010接收点云数据并对点云数据的属性数据进行编码。编码的属性数据可以采用属性比特流的形式。
[0452]
nal单元打包器25020接收几何/属性比特流和/或元数据,并且将以上参考图15至图17以及图19至图24描述的比特流分区和/或打包成用于层结构的nal单元。nal单元打包器25020可以作为单独的组件存在或者可以被包括在几何/属性编码器25000、25010中以执行相应的操作。
[0453]
元数据生成器25030生成元数据,该元数据是与几何编码25000和/或属性编码25010的操作相关的信令信息。例如,参考图19至图24描述的sps、gps、aps、tps等可以被生成并将其提供给nal单元打包器25020。
[0454]
复用器25040可以接收和复用每层的子比特流。
[0455]
发射器25050可以发送点云比特流。
[0456]
根据上述实施例,点云数据发送设备可以通过对pcc数据进行分区/压缩和发送来增加存储和传输效率。
[0457]
图26图示根据实施例的点云数据接收设备的解码器。
[0458]
图26图示根据实施例的用于接收/解码pcc数据的详细功能配置的实施例。当比特流被输入到接收器26000时,接收器26000可以将其划分为用于位置信息的比特流和用于属性信息的比特流并且处理划分的比特流。在这种情况下,nal单元解析器26020可以区分诸如sps、gps和aps的no-cl(非编译层)信息与诸如几何nal单元和属性nal单元的cl(编译层)
信息。元数据解析器26030可以基于sps、gps和aps中承载的信息识别点云数据的几何和属性层结构,并设置要解码的目标层。可以执行nal单元选择26020以基于nal_spatial_id移除在nal单元中从解码中排除的层。几何解码器26040和属性解码器26050可以分别根据数据的特性从分类的比特流中重构几何数据和属性数据,并且然后渲染器26060可以将数据转换成用于最终输出的格式。
[0459]
换言之,接收器26000可以接收由根据实施例的发送设备发送的点云比特流。
[0460]
解复用器26010可以解复用点云比特流。
[0461]
在接收到解复用的点云比特流后,nal单元解析器/选择器26020可以基于参考图16至图20描述的nal单元解析参考图19至图24描述的元数据、几何数据和/或属性数据并且选择要解码的数据。
[0462]
元数据解析器26030可以解析点云数据比特流中的元数据。其可以向nal单元解析器/选择器26020提供元数据。基于解析的元数据,可以执行解码器26040和26050的操作。
[0463]
几何解码器26040解码几何数据。
[0464]
属性解码器26050解码属性数据。
[0465]
渲染器26060可以渲染几何/属性数据。
[0466]
图26中的每个过程可以处理如图15所图示的完整和/或部分pcc比特流并且可以可缩放地并有效地向用户提供。因此,解码器或接收器可以根据层来划分和处理数据。从而,可以增加解码器性能。
[0467]
图27图示根据实施例的点云数据的发送和接收的流程。
[0468]
图27图示根据实施例的发送终端的效果。图27和28图示根据实施例的各种使用情况。
[0469]
实施例提供一种通过根据预定准则划分压缩数据来发送点云数据的方法。特别地,当使用分层编译时,可以将压缩数据根据层进行划分和发送,并且可以增加发送端的存储和传输效率。
[0470]
如图27中所图示,点云数据的几何和属性可以被压缩和提供。在基于pcc的业务中,压缩率或要发送的数据的数量可以根据接收器性能或传输环境进行调节。在点云数据被捆绑在一个切片单元的情况下,如果接收器性能或传输环境改变,1)可以预先转换适合每种环境的比特流,单独存储,并在要被发送时选择(27020,27040),2)或传输之前需要转码27030的过程。在这种情况下,当要支持的接收器环境的数量增加或传输环境频繁改变时,可能会出现与存储空间或根据转码的延迟相关的问题。
[0471]
如图15中所示,在数据传输之前,可以根据各种解码器性能对点云数据进行子采样,并且然后进行编码和存储。
[0472]
此外,当如实施例中提出的那样根据层以nal单元为单位划分和发送压缩数据时,可以通过nal单元报头中的信息在比特流步骤中仅选择性地发送预压缩数据的必要部分,无需单独的变换过程(参见图19-20)。
[0473]
此方案甚至在存储空间方面也可能是有效的,因为每个流仅需要一个存储空间。此外,因为在传输之前仅选择必要的层,所以可以在带宽方面(通过比特流选择器27040)实现高效传输。比特流选择器27040可以被包括在发送设备中或者可以连接到编码器、发射器等。可缩放编码器27000和比特流选择器27040可以编码并选择性地发送基于层的部分pcc
比特流(参见图16至图18)。
[0474]
编码器27000可以对应于根据上述实施例的编码器。作为源输入的几何/属性数据可以进行可缩放编码,但不会立即发送。而是,编码数据可以存储在存储空间27020中。存储空间27020可以包括在根据实施例的点云数据发送设备中,并且可以连接到编码器10002或发射器10003。发送设备可以选择性地发送存储在存储空间27020中的点云数据。另外,发送设备可以对点云数据执行转码27030以进行部分编码,并且然后发送数据。
[0475]
解码器27010可以对应于根据上述实施例的解码器。其可以从接收到的比特流部分地重构几何/属性数据。
[0476]
图28图示根据实施例的点云数据的发送和接收的流程。
[0477]
图28图示根据上述实施例的发送设备和接收设备发送和接收点云数据的过程。
[0478]
根据实施例的发送/接收设备可以通过根据预定准则划分压缩数据来发送点云数据。当采用根据实施例的分层编译时,可以将点云数据按照层以压缩数据的形式进行划分和发送。在这种情况下,可以增加接收侧的效率。
[0479]
特别地,图28图示当发送由层构成的点云数据时的发送设备和接收设备的操作。在这种情况下,当无论接收器性能如何都递送可以重建整个pcc数据的信息时,接收器需要执行在通过解码重构点云数据之后仅选择对应于必要层的数据的过程(数据选择(子采样)28000)。在这种情况下,因为递送的比特流已经被解码,所以旨在低延迟的接收器可能会取决于接收器的性能导致延迟或可能无法执行解码。
[0480]
数据选择器(或子采样器)28000可以包括在接收设备中,并且可以连接到解码器等。
[0481]
发送设备可以使用存储空间28010通过用于低qp的转码来发送完整的pcc比特流。接收设备可以接收比特流并且重构完整的几何/属性数据。此外,几何/属性数据可以通过数据选择器28000或基于子采样被部分地选择和重构。
[0482]
此外,当根据上述实施例将几何/属性比特流以切片划分并递送时,接收器可以根据要根据解码器性能或应用领域表示的点云数据的密度来选择性地解码比特流字段,并将解码后的比特流递送到解码器。在这种情况下,可以中nal单元阶段处通过nal单元报头中的nal_spatial_id和nal_data_type来选择要选择的层的信息。在这种情况下,因为在解码之前执行选择,所以可以增加解码器效率,并且可以通过一个比特流来支持各种性能的解码器。
[0483]
例如,可缩放编码器28020对应于根据上述实施例的编码器。编码器28020可以将作为源输入的几何和/或属性数据进行可缩放编码,并且然后可以生成完整的pcc比特流并将其发送或存储在存储空间中以备将来传输。可替选地,其可以生成部分pcc比特流并发送该比特流或将其存储在存储空间中以备将来传输。
[0484]
解码器28040对应于根据上述实施例的解码器。在解码器28040之前,比特流选择器28030可以基于层的nal单元从基于层的可缩放编码的完整或部分pcc比特流中选择性地解码数据的期望部分。解码器28040可以解码和重构部分几何/属性数据。
[0485]
图29图示根据实施例的发送点云数据的方法。
[0486]
s29000:根据实施例的发送点云数据的方法包括对包括几何数据和属性数据的点云数据进行编码。根据实施例的编码操作可以包括图1的编码器1002、图2的编码20001、图4
的编码器、图12的编码器12001至12011、图14的xr设备1430、图15的编码器15000和15010、图25的编码器25000和25010、单元打包器25020和元数据生成器25030、图27的可缩放编码器27000和比特流选择器27040、以及图28的可缩放编码器28020的操作。
[0487]
s29010:根据实施例的点云数据发送方法进一步包括发送包括点云数据的比特流。根据实施例的发送操作包括图1的发射器10003、图2的传输20002、图4的几何比特流和/或属性比特流的传输、图12的发送处理器12012、图14的xr设备1430、图15的完整或部分pcc比特流的传输、图16的比特流的层分段、图25的复用器25040和发射器25050、图27的转码传输和部分pcc比特流传输、以及图28的转码传输和完整的pcc比特流传输的操作。
[0488]
图30图示根据实施例的接收点云数据的方法。
[0489]
s30000:根据实施例的接收点云数据的方法包括接收包括点云数据的比特流,该点云数据包括几何数据和属性数据。根据实施例的接收操作可以包括图1的接收器10005的操作、响应于图2的传输20002的接收、接收图4和图11的几何/属性比特流、图13的接收器13000和接收处理器13001、图14的xr设备1430、接收图15的完整pcc比特流和部分pcc比特流、图16的比特流片段层的接收、图19至图24的nal单元的接收、图26的接收器26000和解复用器26010、图27的部分pcc比特流的接收、图28的完整pcc比特流的接收等的操作。
[0490]
s30010:根据实施例的点云数据接收方法进一步包括对点云数据进行解码。根据实施例的解码可以包括图1的解码器10006、图2的解码20003、图10的几何/属性解码器、图11的几何/属性解码器、图13的解码器13002至13010、图14的xr设备1430、图15的解码器15020和15030、图16的比特流片段层的解码、图18的片段(单元)的层匹配、图19至图24的语法解析/解码、图26的几何/属性解码器26040和26050、元数据解析器26030和单元解析器/选择器26020、图27的解码器27010、图28的可缩放解码器/数据选择器(子采样器)28000、比特流选择器28030和解码器28040等的操作。
[0491]
根据实施例的点云数据接收方法中的全部或部分操作可以遵循发送方法的相反过程。
[0492]
通过点云压缩处理过程,以及pcc nal单元和几何/属性层结构之间的组合,根据本公开的实施例的pcc发射器或接收器可以使用上述pcc nal单元。此外,可以使用包括在上述参数集中的几何/属性层结构。因此,pcc发射器可以增加存储和传输效率,而pcc接收器可以减少延迟并增加解码效率。
[0493]
在本公开中,“a/b”被用于包括“a和b”和“a或b”。
[0494]
已经在方法和/或设备方面描述了实施例,并且方法的描述和设备的描述可以彼此互补地应用。
[0495]
尽管为了简单起见已经单独描述了附图,但是可通过将各自附图中所示的实施例组合来设计新的实施例。根据本领域地技术人员的需要设计可由计算机读取的记录有用于执行上述实施例的程序的记录介质也落在所附权利要求及其等同物的范围内。根据实施例的装置和方法可不限于上述实施例的配置和方法。可通过选择性地组合所有或一些实施例来对实施例进行各种修改。尽管参考附图描述了优选实施例,但本领域技术人员将理解,在不脱离所附权利要求中描述的本公开的精神或范围的情况下,可对实施例进行各种修改和变化。这些修改不应从实施例的技术思想或观点单独地理解。
[0496]
实施例的设备的各种元件可以由硬件、软件、固件或其组合实现。实施例中的各种
元件可由单个芯片实现,例如,单个硬件电路。根据实施例,根据实施例的组件可分别被实现为单独的芯片。根据实施例,根据实施例的设备的至少一个或更多个组件可以包括能够执行一个或更多个程序的一个或更多个处理器。一个或更多个程序可执行根据实施例的任一个或更多个操作/方法或者包括用于执行其的指令。用于执行根据实施例的设备的方法/操作的可执行指令可被存储在被配置成由一个或更多个处理器执行的非暂时性crm或其它计算机程序产品中,或者可被存储在被配置成由一个或更多个处理器执行的暂时性crm或其它计算机程序产品中。另外,根据实施例的存储器可用作不仅涵盖易失性存储器(例如,ram),而且涵盖非易失性存储器、闪存和prom的概念。另外,也可按载波(例如,经由互联网的传输)的形式实现。另外,处理器可读记录介质可分布到经由网络连接的计算机系统,使得处理器可读代码可按分布式方式存储和执行。
[0497]
在本公开中,术语“/”和“,”应该被解释为指示“和/或”。例如,表达“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二者。换言之,本文档中使用的术语“或”应该被解释为指示“另外地或另选地”。
[0498]
诸如第一和第二的术语可用于描述实施例的各种元件。然而,根据实施例的各种组件不应受上述术语限制。这些术语仅用于将一个元件与另一元件相区分。例如,第一用户输入信号可以被称为第二用户输入信号。类似地,第二用户输入信号可以被称为第一用户输入信号。这些术语的使用应该不脱离各种实施例的范围来解释。第一用户输入信号和第二用户输入信号均是用户输入信号,但除非上下文清楚地另外规定,否则并不意指相同的用户输入信号。
[0499]
用于描述实施例的术语被用于描述具体实施例的目的,并非旨在限制实施例。如在实施例的描述和权利要求中使用的,除非上下文清楚地另外规定,否则单数形式“一(a)”、“一个(an)”、“该(the)”包括复数个所指对象。表达“和/或”被用于包括术语的所有可能组合。诸如“包括”或“具有”的术语旨在指示图形、数量、步骤、元件和/或组件的存在,并且应该理解为不排除另外存在图形、数量、步骤、元件和/或组件的可能性。如本文所使用的,诸如“如果”和“当”的条件表达不限于可选情况,并且旨在解释为当满足特定条件时执行相关操作,或者根据特定条件解释相关定义。
[0500]
根据本说明书中描述的实施例的操作可以由包括根据实施例的存储器和/或处理器的发送/接收设备来执行。存储器可以存储用于处理/控制根据实施例的操作的程序,并且处理器可以控制本说明书中描述的各种操作。处理器可以被称为控制器等。在实施例中,操作可以由固件、软件和/或其组合来执行。固件、软件和/或其组合可以存储在处理器或存储器中。
[0501]
本发明的实施方式
[0502]
如上所述,已经在实现实施例的最佳模式中描述了相关内容。
[0503]
工业实用性
[0504]
如上所述,实施例完全或部分地适用于点云数据发送/接收设备和系统。
[0505]
本领域的技术人员可以在实施例的范围内以各种方式改变或修改实施例。
[0506]
实施例可以包括在权利要求及其等效物的范围内的变化/修改。
再多了解一些

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

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

相关文献