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

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

2021-11-05 23:37:00 来源:中国专利 TAG:


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


背景技术:

2.点云是三维(3d)空间中的点集合。因为3d空间中的点的数量大,所以难以生成点云数据。
3.需要大量吞吐量以发送和接收点云数据,这带来了问题。


技术实现要素:

4.技术问题
5.本公开的目的在于提供一种用于有效地发送和接收点云的点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法。
6.本公开的另一目的在于提供一种用于解决延迟和编码/解码复杂度的点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法。
7.本公开的附加优点、目的和特征将在以下描述中部分地阐述,并且对于本领域普通技术人员而言在考察以下内容后将部分地变得显而易见或者可从本公开的实践学习。本公开的目的和其它优点可通过所撰写的说明书及其权利要求以及附图中具体指出的结构来实现和获得。
8.技术方案
9.为了实现这些目的和其它优点并且根据本公开的目的,如本文中具体实现并广义描述的,一种发送点云数据的方法可包括以下步骤:对点云数据进行编码;以及发送点云数据。
10.在本公开的另一方面,一种接收点云数据的方法可包括以下步骤:接收点云数据;对点云数据进行解码;以及渲染点云数据。
11.有益效果
12.根据实施方式的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可提供高质量点云服务。
13.根据实施方式的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可实现各种视频编解码方法。
14.根据实施方式的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可提供诸如自驾驶服务的通用点云内容。
附图说明
15.附图被包括以提供本公开的进一步理解,并且被并入本技术中并构成本技术的一
部分,附图示出本公开的实施方式并与说明书一起用于说明本公开的原理。附图中:
16.图1示出根据实施方式的用于提供点云内容的发送/接收系统的示例性结构。
17.图2示出根据实施方式的点云数据的捕获。
18.图3示出根据实施方式的示例性点云、几何和纹理图像。
19.图4示出根据实施方式的示例性v

pcc编码处理。
20.图5示出根据实施方式的表面的切平面和法向量的示例。
21.图6示出根据实施方式的点云的示例性边界框。
22.图7示出根据实施方式的占用图上的各个补片位置的确定的示例。
23.图8示出根据实施方式的法向轴、切向轴和双切轴之间的示例性关系。
24.图9示出根据实施方式的投影模式的最小模式和最大模式的示例性配置。
25.图10示出根据实施方式的示例性edd码。
26.图11示出根据实施方式的基于邻近点的颜色值重新着色的示例。
27.图12示出根据实施方式的推拉式背景填充的示例。
28.图13示出根据实施方式的4*4块的示例性可能遍历顺序。
29.图14示出根据实施方式的示例性最佳遍历顺序。
30.图15示出根据实施方式的示例性2d视频/图像编码器。
31.图16示出根据实施方式的示例性v

pcc解码处理。
32.图17示出根据实施方式的示例性2d视频/图像解码器。
33.图18是示出根据本公开的实施方式的发送装置的操作的流程图。
34.图19是示出根据实施方式的接收装置的操作的流程图。
35.图20示出根据实施方式的用于点云数据的基于v

pcc的存储和流传输的示例性架构。
36.图21是根据实施方式的用于存储和发送点云数据的设备的示例性框图。
37.图22是根据实施方式的点云数据接收装置的示例性框图。
38.图23示出根据实施方式的可与点云数据发送/接收方法/装置结合操作的示例性结构。
39.图24示出根据实施方式的示例性多轨道v

pcc文件结构。
40.图25示出根据实施方式的示例性isobmff v

pcc容器结构。
41.图26示出根据实施方式的几何/属性层与视频流之间的关系。
42.图27示出根据实施方式的multiple_layer_entities_present_flag。
43.图28示出根据实施方式的包括在v

pcc轨道中的数据。
44.图29示出根据实施方式的边界框。
45.图30示出根据实施方式的点云对象的分段。
46.图31示出根据实施方式的v

pcc比特流的示例性配置。
47.图32示出根据实施方式的示例性点云发送方法。
48.图33示出根据实施方式的示例性点云接收方法。
具体实施方式
49.现在将详细参考本公开的优选实施方式,其示例示出于附图中。下面将参照附图
给出的详细描述旨在说明本公开的示例性实施方式,而非示出可根据本公开实现的仅有实施方式。以下详细描述包括具体细节以便提供本公开的彻底理解。然而,对于本领域技术人员而言将显而易见的是,本公开可在没有这些具体细节的情况下实践。
50.尽管本公开中使用的大多数术语选自本领域中广泛使用的一般术语,但是一些术语是申请人任意选择的,其含义在以下描述中根据需要详细说明。因此,本公开应该基于术语的预期含义而非其简单名称或含义来理解。
51.图1示出根据实施方式的用于提供点云内容的发送/接收系统的示例性结构。
52.本公开提供一种提供点云内容以向用户提供诸如虚拟现实(vr)、增强现实(ar)、混合现实(mr)和自驾驶的各种服务的方法。
53.根据实施方式的点云数据发送装置10000可包括点云视频获取器10001、点云视频编码器10002、文件/片段封装模块10003和/或发送器(或通信模块)10004。
54.根据实施方式的点云视频获取器10001通过捕获、合成或生成点云视频的处理来获取点云视频。
55.根据实施方式的点云视频编码器10002对点云视频数据进行编码。
56.根据实施方式的文件/片段封装模块10003以文件和/或片段的形式封装点云数据。
57.根据实施方式的发送器(或通信模块)10004以比特流的形式发送编码的点云视频数据。
58.根据实施方式的点云数据接收装置10005可包括接收器10006、文件/片段解封装模块10007、点云视频解码器10008和/或渲染器10009。
59.根据实施方式的接收器10006接收包含点云视频数据的比特流。根据实施方式,接收器10006可向点云数据发送装置10000发送反馈信息。
60.文件/片段解封装模块10007将包含点云数据的文件和/或片段解封装。
61.点云视频解码器10007对所接收的点云视频数据进行解码。
62.渲染器10009渲染解码的点云视频数据。根据实施方式,渲染器10009可将在接收侧获得的反馈信息发送给点云视频解码器10008。根据实施方式的点云视频数据可将反馈信息承载到接收器。根据实施方式,点云发送装置所接收的反馈信息可被提供给点云视频编码器。
63.实施方式可提供一种提供点云内容以向用户提供诸如虚拟现实(vr)、增强现实(ar)、混合现实(mr)和自驾驶的各种服务的方法。
64.为了提供点云内容服务,可首先获取点云视频。所获取的点云视频可通过一系列处理发送,并且接收侧可将所接收的数据处理回到原始点云视频并渲染所处理的点云视频。由此,点云视频可被提供给用户。实施方式提供一种有效地执行这一系列处理的方法。
65.用于提供点云内容服务的所有处理(点云数据发送方法和/或点云数据接收方法)可包括获取处理、编码处理、传输处理、解码处理、渲染处理和/或反馈处理。
66.根据实施方式,提供点云内容(或点云数据)的处理可被称为点云压缩处理。根据实施方式,点云压缩处理可表示基于几何的点云压缩处理。
67.根据实施方式的点云数据发送装置和点云数据接收装置的各个元件可以是硬件、软件、处理器和/或其组合。
68.为了提供点云内容服务,可获取点云视频。所获取的点云视频通过一系列处理发送,并且接收侧可将所接收的数据处理回到原始点云视频并渲染所处理的点云视频。由此,点云视频可被提供给用户。实施方式提供一种有效地执行这一系列处理的方法。
69.用于提供点云内容服务的所有处理可包括获取处理、编码处理、传输处理、解码处理、渲染处理和/或反馈处理。
70.点云压缩系统可包括发送装置和接收装置。发送装置可通过对点云视频进行编码来输出比特流,并通过数字存储介质或网络将其以文件或流(流传输片段)的形式传送至接收装置。数字存储介质可包括诸如usb、sd、cd、dvd、蓝光、hdd和ssd的各种存储介质。
71.发送装置可包括点云视频获取器、点云视频编码器、文件/片段封装器和发送器。接收装置可包括接收器、文件/片段解封装器、点云视频解码器和渲染器。编码器可被称为点云视频/画面/画面/帧编码器,解码器可被称为点云视频/画面/画面/帧解码装置。发送器可包括在点云视频编码器中。接收器可包括在点云视频解码器中。渲染器可包括显示器。渲染器和/或显示器可被配置成单独的装置或外部组件。发送装置和接收装置还可包括用于反馈处理的单独的内部或外部模块/单元/组件。
72.根据实施方式,接收装置的操作可与发送装置的操作相反。
73.点云视频获取器可通过捕获、编排或生成点云视频的处理来执行获取点云视频的处理。在获取处理中,可生成多个点的3d位置(x,y,z)/属性(颜色、反射率、透明度等)的数据,例如polygon文件格式(ply)(或斯坦福三角形(stanford triangle)格式)文件。对于具有多个帧的视频,可获取一个或更多个文件。在捕获处理期间,可生成点云相关元数据(例如,捕获相关元数据)。
74.根据实施方式的点云数据发送装置可包括被配置为对点云数据进行编码的编码器以及被配置为发送点云数据(或包括其的比特流)的发送器。
75.根据实施方式的点云数据接收装置可包括被配置为接收点云数据的接收器、被配置为对点云数据进行解码的解码器以及被配置为渲染点云数据的渲染器。
76.根据实施方式的方法/装置表示点云数据发送装置和/或点云数据接收装置。
77.图2示出根据实施方式的点云数据的捕获。
78.根据实施方式的点云数据可通过相机等来获取。根据实施方式的捕获技术可包括例如面向内和/或面向外。
79.在根据实施方式的面向内中,向内面向点云数据的对象的一个或更多个相机可从对象外部拍摄对象。
80.在根据实施方式的面向外中,向外面向点云数据的对象的一个或更多个相机可拍摄对象。例如,根据实施方式,可存在四个相机。
81.根据实施方式的点云数据或点云内容可以是在各种类型的3d空间中表示的对象/环境的视频或静止图像。
82.为了捕获点云内容,可配置能够获取深度的相机设备(红外图案投影仪和红外相机的组合)和能够提取与深度信息对应的颜色信息的rgb相机的组合。另选地,可通过使用雷达系统的lidar来提取深度信息,该雷达系统通过发射激光脉冲并测量返回时间来测量反射器的位置坐标。可从深度信息提取由3d空间中的点组成的几何形状,并且可从rgb信息提取表示各个点的颜色/反射率的属性。点云内容可包括关于位置(x,y,z)和点的颜色
(ycbcr或rgb)或反射率(r)的信息。对于点云内容,可使用捕获外部环境的面向外技术和捕获中心对象的面向内技术。在vr/ar环境中,当对象(例如,诸如角色、玩家、事物或演员的核心对象)被配置到用户可在任何方向(360度)观看的点云内容中时,捕获相机的配置可基于面向内技术。当在诸如自驾驶的车辆模式下当前周围环境被配置到点云内容中时,捕获相机的配置可基于面向外技术。由于可通过多个相机捕获点云内容,所以可能需要在捕获内容之前执行相机校准处理以为相机配置全局坐标系。
83.点云内容可以是存在于各种类型的3d空间中的对象/环境的视频或静止图像。
84.另外,在点云内容获取方法中,可基于捕获的点云视频编排任何点云视频。另选地,当要提供计算机生成的虚拟空间的点云视频时,可能不执行利用实际相机的捕获。在这种情况下,捕获处理可简单地由生成相关数据的处理代替。
85.可能需要对捕获的点云视频进行后处理以改进内容的质量。在视频捕获处理中,可在相机设备所提供的范围内调节最大/最小深度。即使在调节之后,仍可能存在不想要的区域的点数据。因此,可执行去除不想要的区域(例如,背景)或识别连接的空间并填充空间孔洞的后处理。另外,从共享空间坐标系的相机提取的点云可通过基于通过校准处理获取的各个相机的位置坐标将各个点变换到全局坐标系中的处理而被整合为一条内容。由此,可生成具有宽范围的一条点云内容,或者可获取具有高密度点的点云内容。
86.点云视频编码器可将输入点云视频编码为一个或更多个视频流。一个视频可包括多个帧,各个帧可对应于静止图像/画面。在本说明书中,点云视频可包括点云图像/帧/画面。另外,术语“点云视频”可与点云图像/帧/画面互换使用。点云视频编码器可执行基于视频的点云压缩(v

pcc)处理。为了压缩和编码效率,点云视频编码器可执行诸如预测、变换、量化和熵编码的一系列处理。编码的数据(编码的视频/图像信息)可按比特流的形式输出。基于v

pcc处理,点云视频编码器可通过将点云视频分成几何视频、属性视频、占用图视频和辅助信息来对点云视频进行编码(将稍后描述)。几何视频可包括几何图像,属性视频可包括属性图像,占用图视频可包括占用图图像。辅助信息可包括辅助补片信息。属性视频/图像可包括纹理视频/图像。
87.封装处理器(文件/片段封装模块)10003可以例如文件的形式封装编码的点云视频数据和/或与点云视频有关的元数据。这里,与点云视频有关的元数据可从元数据处理器接收。元数据处理器可包括在点云视频编码器中,或者可被配置成单独的组件/模块。封装处理器可按照诸如isobmff的文件格式封装数据或者按照dash片段等的形式处理数据。根据实施方式,封装处理器可包括文件格式的点云视频相关元数据。点云视频元数据可被包括在例如isobmff文件格式的各种级别的盒中,或作为文件内的单独轨道中的数据。根据实施方式,封装处理器可将点云视频相关元数据封装到文件中。发送处理器可对根据文件格式封装的点云视频数据执行传输处理。发送处理器可包括在发送器中,或者可被配置成单独的组件/模块。发送处理器可根据传输协议来处理点云视频数据。传输处理可包括经由广播网络传送的处理和通过宽带传送的处理。根据实施方式,发送处理器可从元数据处理器连同点云视频数据一起接收点云视频相关元数据,并且执行点云视频数据的处理以进行传输。
88.发送器10004可通过数字存储介质或网络将以比特流的形式输出的编码的视频/图像信息或数据以文件或流的形式发送到接收装置的接收器。数字存储介质可包括诸如
usb、sd、cd、dvd、蓝光、hdd和ssd的各种存储介质。发送器可包括用于以预定文件格式生成媒体文件的元件,并且可包括用于经由广播/通信网络传输的元件。接收器可提取比特流并将所提取的比特流发送到解码装置。
89.接收器10003可接收根据本公开的点云视频发送装置所发送的点云视频数据。根据传输信道,接收器可经由广播网络或通过宽带接收点云视频数据。另选地,点云视频数据可通过数字存储介质来接收。
90.接收处理器可根据传输协议处理所接收的点云视频数据。接收处理器可包括在接收器中,或者可被配置成单独的组件/模块。接收处理器可反向执行发送处理器的上述处理,使得处理对应于在发送侧执行的传输处理。接收处理器可将所获取的点云视频数据传送至解封装处理器,并将所获取的点云视频相关元数据传送至元数据解析器。接收处理器所获取的点云视频相关元数据可采取信令表的形式。
91.解封装处理器(文件/片段解封装模块)10007可将以文件的形式从接收处理器接收的点云视频数据解封装。解封装处理器可根据isobmff等对文件进行解封装,并且可获取点云视频比特流或点云视频相关元数据(元数据比特流)。所获取的点云视频比特流可被传送至点云视频解码器,并且所获取的点云视频相关元数据(元数据比特流)可被传送至元数据处理器。点云视频比特流可包括元数据(元数据比特流)。元数据处理器可包括在点云视频解码器中,或者可被配置成单独的组件/模块。解封装处理器所获取的点云视频相关元数据可采取文件格式中的盒或轨道的形式。当需要时,解封装处理器可从元数据处理器接收解封装所需的元数据。点云视频相关元数据可被传送至点云视频解码器并在点云视频解码处理中使用,或者可被传送至渲染器并在点云视频渲染处理中使用。
92.点云视频解码器可接收比特流并且通过执行与点云视频编码器的操作对应的操作来将视频/图像解码。在这种情况下,点云视频解码器可通过如下所述将点云视频分成几何视频、属性视频、占用图视频和辅助信息来对点云视频进行解码。几何视频可包括几何图像,属性视频可包括属性图像。占用图视频可包括占用图图像。辅助信息可包括辅助补片信息。属性视频/图像可包括纹理视频/图像。
93.3d几何可基于解码的几何图像、占用图和辅助补片信息来重构,然后可经受平滑处理。可通过基于纹理图像向平滑的3d几何指派颜色值来重构颜色点云图像/画面。渲染器可渲染重构的几何和颜色点云图像/画面。渲染的视频/图像可通过显示器显示。用户可通过vr/ar显示器或典型显示器来观看全部或部分渲染结果。
94.反馈处理可包括将可在渲染/显示处理中获取的各种类型的反馈信息传送至发送侧或接收侧的解码器。可在消费点云视频时通过反馈处理提供交互性。根据实施方式,头部取向信息、指示用户当前观看的区域的视口信息等可在反馈处理中被传送至发送侧。根据实施方式,用户可与vr/ar/mr/自驾驶环境中实现的事物交互。在这种情况下,与交互有关的信息可在反馈处理期间被传送至发送侧或服务提供商。根据实施方式,反馈处理可被跳过。
95.头部取向信息可表示用户头部的位置、角度和运动的信息。基于该信息,可计算关于用户当前观看的点云视频的区域的信息(即,视口信息)。
96.视口信息可以是关于用户当前观看的点云视频的区域的信息。可使用视口信息来执行注视分析,以检查用户消费点云视频的方式、用户所注视的点云视频的区域以及用户
注视该区域多长时间。可在接收侧执行注视分析,并且可在反馈信道上将分析结果传送至发送侧。诸如vr/ar/mr显示器的装置可基于用户头部的位置/方向、装置所支持的垂直或水平fov等来提取视口区域。
97.根据实施方式,上述反馈信息可不仅被传送至发送侧,而且在接收侧消费。即,可基于上述反馈信息执行接收侧的解码和渲染处理。例如,可基于头部取向信息和/或视口信息仅优先解码和渲染用户当前观看的区域的点云视频。
98.这里,视口或视口区域可表示用户当前观看的点云视频的区域。视点是点云视频中用户所观看的点,并且可表示视口区域的中心点。即,视口是视点周围的区域,并且区域的大小和形式可由视场(fov)确定。
99.本公开涉及如上所述的点云视频压缩。例如,本公开中公开的方法/实施方式可应用于运动图像专家组(mpeg)的点云压缩或点云编码(pcc)标准或下一代视频/图像编码标准。
100.如本文所使用的,画面/帧通常可表示特定时间间隔中表示一个图像的单位。
101.像素或画素可以是构成一个画面(或图像)的最小单位。另外,“样本”可用作与像素对应的术语。样本通常可表示像素或像素值,或者可仅表示亮度分量的像素/像素值,仅表示色度分量的像素/像素值,或者仅表示深度分量的像素/像素值。
102.单元可表示图像处理的基本单位。单元可包括画面的特定区域和与该区域有关的信息中的至少一个。在一些情况下,单元可与诸如块或区域的术语互换使用。在一般情况下,m
×
n块可包括按m列和n行配置的样本(或样本阵列)或变换系数集合(或阵列)。
103.图3示出根据实施方式的示例性点云、几何和纹理图像。
104.根据实施方式,点云可具有与点云数据相同的含义。
105.如图所示,左侧部分示出点云,其中对象位于3d空间中并且可由边界框等表示。中间部分示出几何,右侧部分示出纹理图像(非填充图像)。
106.根据实施方式的基于视频的点云压缩(v

pcc)可提供基于诸如hevc或vvc的2d视频编解码器来压缩3d点云数据的方法。下面公开了可在v

pcc压缩处理中生成的数据和信息:
107.占用图:这是在将构成点云的点分成补片并将其映射到2d平面时使用值0或1指示在2d平面中的对应位置是否存在数据的二值图。
108.补片:构成点云的点集合,其指示属于同一补片的点在3d空间中彼此相邻并且在映射到2d图像的处理中在6面边界框的平面之间在相同方向上映射。
109.几何图像:这是逐补片呈现关于构成点云的各个点的位置信息(几何)的深度图形式的图像。几何图像可由一个通道的像素值组成。
110.纹理图像:这是逐补片表示关于构成点云的各个点的颜色信息的图像。纹理图像可由多个通道(例如,r、g和b三个通道)的像素值组成。纹理包括在属性中。根据实施方式,纹理和/或属性可被解释为相同的对象和/或具有包含关系。
111.辅助补片信息:这指示利用各个补片重构点云所需的元数据。辅助补片信息可包括关于2d/3d空间中的补片的位置、尺寸等的信息。
112.根据实施方式的点云数据表示根据基于视频的点云压缩(v

pcc)的pcc数据。点云数据可包括多个分量。例如,其可包括占用图、补片、几何和/或纹理。
113.图4示出根据实施方式的v

pcc编码处理。
114.该图示出用于生成和压缩占用图、几何图像、纹理图像和辅助补片信息的v

pcc编码处理。
115.在补片生成40000中,接收点云帧(其可以是包含点云数据的比特流的形式)。补片生成器40000从点云数据生成补片。另外,生成包括关于补片生成的信息的补片信息。
116.在补片打包40001中,将用于点云数据的补片打包。例如,一个或更多个补片可被打包。另外,生成包含关于补片打包的信息的占用图。
117.在几何图像生成40002中,基于点云数据、补片和/或打包的补片来生成几何图像。几何图像是指包含与点云数据有关的几何的数据。
118.在纹理图像生成40003中,基于点云数据、补片和/或打包的补片来生成纹理图像。另外,可进一步基于通过基于补片信息平滑的平滑处理生成的平滑几何来生成纹理图像。
119.在平滑40004中,可减轻或消除包含在图像数据中的错误。例如,基于修补的重构几何图像,数据之间可导致错误的部分可被平滑地滤除以生成平滑几何。
120.在辅助补片信息压缩40005中,压缩与在补片生成中生成的补片信息有关的辅助补片信息。另外,压缩的辅助补片信息可被发送至复用器。可在几何图像生成40002中生成辅助补片信息。
121.在图像填充操作40006和40007中,可分别填充几何图像和纹理图像。
122.在组扩张40008中,可按照与图像填充类似的方式向纹理图像添加数据。
123.在视频压缩操作40009、40010和40011中,可分别压缩填充的几何图像、填充的纹理图像和/或占用图。
124.在熵压缩40012中,可基于熵方案来压缩占用图。
125.根据实施方式,可分别根据点云数据是否无损和/或有损来执行熵压缩和/或视频压缩。
126.复用器40013将压缩的几何图像、压缩的纹理图像和压缩的占用图复用为比特流。
127.下面详细描述各个处理中的操作。
128.补片生成
129.补片生成处理是指将点云分成补片(映射单元)以便将点云映射到2d图像的处理。补片生成处理可被分成三个步骤:法向值计算、分段和补片分段。
130.将参照图5详细描述法向值计算处理。
131.图5示出根据实施方式的表面的切平面和法向量的示例。
132.法向计算
133.点云的各个点具有其自己的方向,其由称为法向量的3d向量表示。使用利用k

d树等获得的各个点的邻居,可获得如图所示构成点云的表面的各个点的切平面和法向量。应用于搜索邻居的处理的搜索范围可由用户定义。
134.切平面是指穿过表面上的点并且完全包括表面上的曲线的切线的平面。
135.图6示出根据实施方式的点云的示例性边界框。
136.根据实施方式的方法/装置(例如,补片生成)可在从点云数据生成补片时采用边界框。
137.可在将点云数据的目标对象投影到3d空间中的六面体的各个平坦面的平面上时
使用边界框。
138.分段
139.分段被分成两个处理:初始分段和细化分段。
140.如图所示,构成点云的各个点被投影到围绕点云的边界框的六个面之一上。初始分段是确定各个点要投影至的边界框的平坦面之一的处理。
141.其是与六个平坦面中的每一个对应的法向值,如下定义:
142.(1.0,0.0,0.0),(0.0,1.0,0.0),(0.0,0.0,1.0),(

1.0,0.0,0.0),(0.0,

1.0,0.0),(0.0,0.0,

1.0)。
143.如下式所示,在法向值计算处理中获得的各个点的法向量与的点积的值最大的面被确定为对应点的投影平面。即,法向量与点的法向量的方向最相似的平面被确定为点的投影平面。
[0144][0145]
所确定的平面可由一个集群索引(0至5之一)标识。
[0146]
细化分段是考虑邻近点的投影平面增强在初始分段处理中确定的构成点云的各个点的投影平面的处理。在该处理中,得分法向和得分平滑可一起考虑,得分法向表示在初始分段处理中确定投影平面时考虑的各个点的法向量与边界框的各个平坦面的法向之间的相似度,得分平滑指示当前点的投影平面与邻近点的投影平面之间的相似度。
[0147]
可通过向得分法向指派权重来考虑得分平滑。在这种情况下,权重值可由用户定义。细化分段可重复地执行,重复次数也可由用户定义。
[0148]
补片分段
[0149]
补片分段是基于在初始/细化分段处理中获得的关于构成点云的各个点的投影平面信息将整个点云分成补片(邻近点的集合)的处理。补片分段可包括以下步骤:
[0150]
1)使用k

d树等计算构成点云的各个点的邻近点。最大邻居数量可由用户定义;
[0151]
2)当邻近点被投影到与当前点相同的平面上时(当它们具有相同的集群索引时),提取当前点和邻近点作为一个补片;
[0152]
3)计算所提取的补片的几何值。细节在第1.3节中描述;以及
[0153]
4)重复操作2)至4),直至不存在未提取的点。
[0154]
各个补片的占用图、几何图像和纹理图像以及各个补片的大小通过补片分段处理来确定。
[0155]
图7示出根据实施方式的确定占用图上的各个补片位置的示例。
[0156]
补片打包和占用图生成
[0157]
这是确定2d图像中的各个补片的位置以将分段的补片映射到2d图像的处理。作为一种2d图像,占用图是使用值0或1指示对应位置处是否存在数据的二值图。占用图由块组成,其分辨率可由块的大小确定。例如,当块为1*1块时,获得像素级分辨率。占用打包块大小可由用户确定。
[0158]
确定占用图上的各个补片的位置的处理可配置如下:
[0159]
1)将占用图上的所有位置设定为0;
[0160]
2)将补片置于占用图平面中水平坐标在(0,occupancysizeu

patch.sizeu0)范围
内并且垂直坐标在(0,occupancysizev

patch.sizev0)范围内的点(u,v)处;
[0161]
3)将补片平面中水平坐标在(0,patch.sizeu0)范围内并且垂直坐标在(0,patch.sizev0)范围内的点(x,y)设定为当前点;
[0162]
4)按光栅顺序改变点(x,y)的位置,并且如果补片占用图上的坐标(x,y)的值为1(补片中的点处存在数据)并且全局占用图上的坐标(u x,v y)的值为1(以先前补片填充占用图),则重复操作3)和4)。否则,进行至操作6);
[0163]
5)按光栅顺序改变(u,v)的位置并且重复操作3)至5);
[0164]
6)将(u,v)确定为补片的位置并且将关于补片的占用图数据复制到全局占用图上的对应部分上;以及
[0165]
7)针对下一补片重复操作2)至7)。
[0166]
occupancysizeu:指示占用图的宽度。其单位是占用打包块大小。
[0167]
occupancysizev:指示占用图的高度。其单位是占用打包块大小。
[0168]
patch.sizeu0:指示占用图的宽度。其单位是占用打包块大小。
[0169]
patch.sizev0:指示占用图的高度。其单位是占用打包块大小。
[0170]
图8示出根据实施方式的法向轴、切向轴和双切轴之间的示例性关系。
[0171]
几何图像生成
[0172]
在该处理中,确定构成各个补片的几何图像的深度值,并且整个几何图像基于在上述补片打包处理中确定的补片的位置来生成。确定构成各个补片的几何图像的深度值的处理可配置如下。
[0173]
1)计算与各个补片的位置和大小有关的参数。参数可包括以下信息。
[0174]
指示法向轴的法向索引在先前补片生成处理中获得。切向轴是垂直于法向轴的轴当中与补片图像的水平轴u一致的轴,双切轴是垂直于法向轴的轴当中与补片图像的垂直轴v一致的轴。三个轴可如图所示。
[0175]
图9示出根据实施方式的投影模式的最小模式和最大模式的示例性配置。
[0176]
可基于围绕补片的最小尺寸的边界框来计算补片的3d空间坐标。3d空间坐标可包括补片的最小切向值(在补片3d移位切向轴上)、补片的最小双切值(在补片3d移位双切轴上)和补片的最小法向值(在补片3d移位法向轴上)。
[0177]
补片的2d尺寸指示当补片被打包成2d图像时补片的水平尺寸和垂直尺寸。水平尺寸(补片2d尺寸u)可作为边界框的最大切向值和最小切向值之差获得,垂直尺寸(补片2d尺寸v)可作为边界框的最大双切值和最小双切值之差获得。
[0178]
2)确定补片的投影模式。投影模式可以是最小模式或最大模式。关于补片的几何信息利用深度值表示。当构成补片的各个点在补片的法向上投影时,可生成两层图像,利用最大深度值构造的图像和利用最小深度值构造的图像。
[0179]
在最小模式下,在生成两层图像d0和d1时,可为d0配置最小深度,并且可为d1配置从最小深度的表面厚度内的最大深度,如图所示。在最大模式下,可为d0配置最大深度,并且可为d1配置从最大深度的表面厚度内的最小深度,如图所示。
[0180]
可对所有点云应用相同的投影模式,或者可根据用户定义对各个帧或补片应用不同的投影模式。当对各个帧或补片应用不同的投影模式时,可自适应地选择可增强压缩效率或使缺失的点最少的投影模式。
[0181]
3)计算各个点的深度值。在最小模式下,利用depth0构造图像d0,depth0是通过针对各个点的最小法向值从补片的最小法向值(在补片3d移位法向轴上)减去在操作1)中计算的补片的最小法向值(在补片3d移位法向轴上)而获得的值。如果在同一位置在depth0与表面厚度之间的范围内存在另一深度值,则该值被设定为depth1。否则,depth0的值被指派给depth1。利用depth1的值构造图像d1。
[0182]
在最大模式下,利用depth0构造图像d0,depth0是通过针对各个点的最大法向值从补片的最小法向值(在补片3d移位法向轴上)减去在操作1)中计算的补片的最小法向值(在补片3d移位法向轴上)而获得的值。如果在同一位置在depth0与表面厚度之间的范围内存在另一深度值,则该值被设定为depth1。否则,depth0的值被指派给depth1。利用depth1的值构造图像d1。
[0183]
整个几何图像可通过基于在补片打包处理中确定的补片位置信息将通过上述处理生成的各个补片的几何图像放置到整个几何图像上来生成。
[0184]
所生成的整个几何图像的层d1可使用各种方法来编码。第一方法(绝对d1方法)是对先前生成的图像d1的深度值进行编码。第二方法(差分方法)是对先前生成的图像d1的深度值与图像d0的深度值之差进行编码。
[0185]
在如上所述使用两个层d0和d1的深度值的编码方法中,如果两个深度之间存在另一点,则在编码处理中丢失关于该点的几何信息,因此增强

增量

深度(edd)码可用于无损编码。
[0186]
以下,将参照图10详细描述edd码。
[0187]
图10示出根据实施方式的示例性edd码。
[0188]
如图所示,edd码用于包括d1的表面厚度范围内的所有点的位置的二值编码。例如,在图中,由于在d0上的第一位置和第四位置处存在点并且第二位置和第三位置为空,所以包括在左侧第二列中的点可由edd码0b1001(=9)表示。当edd码与d0一起编码并发送时,接收终端可无损地恢复关于所有点的几何信息。
[0189]
平滑
[0190]
平滑是用于消除由于在压缩处理期间发生的图像质量劣化而可能出现在补片边界上的不连续的处理。可通过以下操作执行平滑:
[0191]
1)从几何图像重构点云。此操作可与上述几何图像生成相反;
[0192]
2)使用k

d树等计算构成重构的点云的各个点的邻近点;
[0193]
3)确定各个点是否位于补片边界上。例如,当存在具有与当前点不同的投影平面(集群索引)的邻近点时,可确定点位于补片边界上;
[0194]
4)如果在补片边界上存在点,则使该点移动到邻近点的质心(位于邻近点的平均x、y、z坐标处)。即,改变几何值。否则,维持先前几何值。
[0195]
图11示出根据实施方式的基于邻近点的颜色值来重新着色的示例。
[0196]
纹理图像生成
[0197]
与上述几何图像生成处理类似,纹理图像生成处理包括生成各个补片的纹理图像并且通过将纹理图像布置在确定的位置来生成整个纹理图像。然而,在生成各个补片的纹理图像的操作中,代替用于几何生成的深度值,生成具有构成与位置对应的点云的点的颜色值(例如,r、g和b值)的图像。
[0198]
在估计构成点云的各个点的颜色值时,可使用先前通过平滑处理获得的几何。在平滑的点云中,一些点的位置可能已相对于原始点云移位,因此可能需要寻找适合于改变的位置的颜色的重新着色处理。可使用邻近点的颜色值来执行重新着色。例如,如图所示,可考虑最近邻近点的颜色值和邻近点的颜色值来计算新颜色值。
[0199]
类似于以两个层d0和d1生成的几何图像,纹理图像也可以两个层t0和t1生成。
[0200]
辅助补片信息压缩
[0201]
在此处理中,在上述补片生成、补片打包和几何生成处理中生成的辅助补片信息被压缩。辅助补片信息可包括以下参数:
[0202]
用于标识投影平面(法向平面)的索引(集群索引);
[0203]
补片的3d空间位置,即,补片的最小切向值(在补片3d移位切向轴上)、补片的最小双切值(在补片3d移位双切轴上)和补片的最小法向值(在补片3d移位法向轴上);
[0204]
补片的2d空间位置和尺寸,即,水平尺寸(补片2d尺寸u)、垂直尺寸(补片2d尺寸v)、最小水平值(补片2d移位u)和最小垂直值(补片2d移位u);以及
[0205]
关于各个块和补片的映射信息,即,候选索引(当补片基于关于补片的2d空间位置和尺寸信息按顺序设置时,多个补片可按交叠方式映射到一个块。在这种情况下,映射的补片构成候选列表,并且候选索引指示其数据存在于块中的补片的顺序位置)和局部补片索引(指示存在于帧中的一个补片的索引)。下表示出表示基于候选列表和局部补片索引在块和补片之间匹配的处理的伪代码。
[0206]
候选列表的最大数量可由用户定义。
[0207]
用于将块映射到补片的伪代码
[0208]
for(i=0;i<blockcount;i ){
[0209]
if(candidatepatches[i].size()==1){
[0210]
blocktopatch[i]=candidatepatches[i][0]
[0211]
}else{
[0212]
candidate_index
[0213]
if(candidate_index==max_candidate_count){
[0214]
blocktopatch[i]=local_patch_index
[0215]
}else{
[0216]
blocktopatch[i]=candidatepatches[i][candidate_index]
[0217]
}
[0218]
}
[0219]
}
[0220]
图12示出根据实施方式的推拉式背景填充。
[0221]
图像填充和组扩张
[0222]
图像填充是以无意义的数据填充补片区域以外的空间以改进压缩效率的处理。对于图像填充,可复制补片中靠近边界的列或行中的像素值以填充空白空间。另选地,如图所示,可使用推拉式背景填充方法。根据该方法,在逐渐降低非填充图像的分辨率并再次增加分辨率的处理中利用来自低分辨率图像的像素值填充空白空间。
[0223]
组扩张是填充分别以两个层d0/d1和t0/t1配置的几何图像和纹理图像的空白空
间的处理。在此处理中,利用同一位置的值的平均填充通过图像填充计算的两个层的空白空间。
[0224]
图13示出根据实施方式的4*4块的示例性可能遍历顺序。
[0225]
占用图压缩
[0226]
占用图压缩是压缩所生成的占用图的处理,并且可包括两个方法:用于有损压缩的视频压缩和用于无损压缩的熵压缩。下面描述视频压缩。
[0227]
可通过以下操作执行熵压缩。
[0228]
1)如果构成占用图的块被完全占用,则对1进行编码并针对占用图的下一块重复相同的操作。否则,对0进行编码并执行操作2)至5)。
[0229]
2)确定对块的占用像素执行游程长度编码的最佳遍历顺序。图中示出4*4块的四个可能遍历顺序。
[0230]
图14示出根据实施方式的示例性最佳遍历顺序。
[0231]
从可能遍历顺序当中选择具有最小游程数量的最佳遍历顺序,并且对其索引进行编码。图中示出选择图13中的第三遍历顺序的情况。在所示情况下,游程数量可被最小化为2,因此第三遍历顺序可被选为最佳遍历顺序。
[0232]
3)对游程数量进行编码。在图14的示例中,存在两个游程,因此对2进行编码。
[0233]
4)对第一游程的占用进行编码。在图14的示例中,对0进行编码,因为第一游程对应于未占用像素。
[0234]
5)对各个游程(游程数量那么多)的长度进行编码。在图14的示例中,依次对第一游程和第二游程的长度6和10进行编码。
[0235]
视频压缩
[0236]
这是使用诸如hevc或vvc的2d视频编解码器对在上述操作中生成的几何图像、纹理图像、占用图图像等的序列进行编码的处理。
[0237]
图15示出根据实施方式的示例性2d视频/图像编码器。
[0238]
该图表示应用了上述视频压缩40009、40010和40011的实施方式,是被配置为对视频/图像信号进行编码的2d视频/图像编码器15000的示意性框图。2d视频/图像编码器15000可包括在上述点云视频编码器中,或者可被配置成内部/外部组件。这里,输入图像可包括上述几何图像、纹理图像(属性图像)和占用图图像。点云视频编码器的输出比特流(即,点云视频/图像比特流)可包括各个输入图像(即,几何图像、纹理图像(属性图像)、占用图图像等)的输出比特流。
[0239]
帧间预测器15090和帧内预测器15100可被统称为预测器。即,预测器可包括帧间预测器15090和帧内预测器15100。变换器15030、量化器15040、逆量化器15050和逆变换器15060可包括在残差处理器中。残差处理器还可包括减法器15020。根据实施方式,上述图像分割器15010、减法器15020、变换器15030、量化器15040、逆量化器15050、逆变换器15060、加法器155、滤波器15070、帧间预测器15090、帧内预测器15100和熵编码器15110可由一个硬件组件(例如,编码器或处理器)配置。另外,存储器15080可包括解码画面缓冲器(dpb)并且可由数字存储介质配置。
[0240]
图像分割器15010可将输入到编码器15000的图像(或者画面或帧)分割成一个或更多个处理单元。例如,处理单元可被称为编码单元(cu)。在这种情况下,cu可根据四叉树
二叉树(qtbt)结构从编码树单元(ctu)或最大编码单元(lcu)递归地分割。例如,一个cu可基于四叉树结构和/或二叉树结构被分割为较低深度的多个cu。在这种情况下,例如,可首先应用四叉树结构,稍后可应用二叉树结构。另选地,可首先应用二叉树结构。根据本公开的编码处理可基于不再分割的最终cu来执行。在这种情况下,根据图像的特性基于编码效率,lcu可用作最终cu。必要时,cu可被递归地分割为较低深度的cu,并且最优大小的cu可用作最终cu。这里,编码处理可包括预测、变换和重构(将稍后描述)。作为另一示例,处理单元还可包括预测单元(pu)或变换单元(tu)。在这种情况下,pu和tu可从上述最终cu分割或划分。pu可以是样本预测的单元,tu可以是推导变换系数的单元和/或从变换系数推导残差信号的单元。
[0241]
术语“单元”可与诸如块或区域的术语互换使用。在一般情况下,m
×
n块可表示以m列和n行配置的样本或变换系数的集合。样本通常可表示像素或像素值,并且可仅指示亮度分量的像素/像素值,或者仅指示色度分量的像素/像素值。“样本”可用作与一个画面(或图像)中的像素或画素对应的术语。
[0242]
编码器15000可通过从输入图像信号(原始块或原始样本阵列)减去从帧间预测器15090或帧内预测器15100输出的预测信号(预测块或预测样本阵列)来生成残差信号(残差块或残差样本阵列),并且所生成的残差信号被发送到变换器15030。在这种情况下,如图所示,在编码器15000中从输入图像信号(原始块或原始样本阵列)减去预测信号(预测块或预测样本阵列)的单元可被称为减法器15020。预测器可对处理目标块(以下称为当前块)执行预测并且生成包括当前块的预测样本的预测块。预测器可基于当前块或cu确定是应用帧内预测还是帧间预测。如稍后将在各个预测模式的描述中描述的,预测器可生成关于预测的各种类型的信息(例如,预测模式信息),并将所生成的信息传送至熵编码器15110。关于预测的信息可由熵编码器15110编码并以比特流的形式输出。
[0243]
帧内预测器15100可参考当前画面中的样本来预测当前块。根据预测模式,样本可邻近或远离当前块。在帧内预测下,预测模式可包括多个非定向模式和多个定向模式。非定向模式可包括例如dc模式和平面模式。根据预测方向的精细度,定向模式可包括例如33个定向预测模式或65个定向预测模式。然而,这仅是示例,可根据设置使用更多或更少的定向预测模式。帧内预测器15100可基于应用于邻近块的预测模式来确定要应用于当前块的预测模式。
[0244]
帧间预测器15090可基于参考画面上运动向量所指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式下发送的运动信息量,可基于邻近块与当前块之间的运动信息的相关性基于每块、子块或样本来预测运动信息。运动信息可包括运动向量和参考画面索引。运动信息还可包括关于帧间预测方向(l0预测、l1预测、bi预测等)的信息。在帧间预测的情况下,邻近块可包括存在于当前画面中的空间邻近块和存在于参考画面中的时间邻近块。包括参考块的参考画面可与包括时间邻近块的参考画面相同或不同。时间邻近块可被称为并置参考块或并置cu(colcu),并且包括时间邻近块的参考画面可被称为并置画面(colpic)。例如,帧间预测器15090可基于邻近块来配置运动信息候选列表并且生成指示要用于推导当前块的运动向量和/或参考画面索引的候选的信息。可基于各种预测模式执行帧间预测。例如,在跳过模式和合并模式下,帧间预测器15090可使用关于邻近块的运动信息作为关于当前块的运动信息。在跳过模式下,与合并模式不
同,可不发送残差信号。在运动向量预测(mvp)模式下,邻近块的运动向量可用作运动向量预测器,并且可用信号通知运动向量差以指示当前块的运动向量。
[0245]
由帧间预测器15090或帧内预测器15100生成的预测信号可用于生成重构信号或生成残差信号。
[0246]
变换器15030可通过对残差信号应用变换技术来生成变换系数。例如,变换技术可包括离散余弦变换(dct)、离散正弦变换(dst)、karhunen

lo
è
ve变换(klt)、基于图形的变换(gbt)或条件非线性变换(cnt)中的至少一个。这里,gbt是指从描绘像素之间的关系的图形获得的变换。cnt是指基于根据所有先前重构的像素生成的预测信号获得的变换。另外,变换操作可应用于具有相同大小的正方形像素块,或者可应用于具有正方形以外的可变大小的块。
[0247]
量化器15040可将变换系数量化并将其发送到熵编码器15110。熵编码器15110可对量化的信号(关于量化的变换系数的信息)进行编码并输出编码的信号的比特流。关于量化的变换系数的信息可被称为残差信息。量化器15040可基于系数扫描顺序按照一维向量的形式重排块形式的量化的变换系数,并且基于一维向量形式的量化的变换系数来生成关于量化的变换系数的信息。熵编码器15110可采用诸如例如指数golomb、上下文自适应可变长度编码(cavlc)和上下文自适应二进制算术编码(cabac)的各种编码技术。熵编码器15110可与量化的变换系数一起或分开对视频/图像重构所需的信息(例如,句法元素的值)进行编码。编码的信息(例如,编码的视频/图像信息)可基于网络抽象层(nal)单元以比特流的形式发送或存储。比特流可经由网络发送或者可被存储在数字存储介质中。这里,网络可包括广播网络和/或通信网络,并且数字存储介质可包括诸如usb、sd、cd、dvd、蓝光、hdd和ssd的各种存储介质。发送从熵编码器15110输出的信号的发送器(未示出)和/或存储该信号的存储部(未示出)可被配置成编码器15000的内部/外部元件。另选地,发送器可被包括在熵编码器15110中。
[0248]
从量化器15040输出的量化的变换系数可用于生成预测信号。例如,可通过逆量化器15050和逆变换器15060对量化的变换系数应用逆量化和逆变换,以重构残差信号(残差块或残差样本)。加法器155将重构的残差信号与从帧间预测器15090或帧内预测器15100输出的预测信号相加。由此,可生成重构信号(重构画面、重构块、重构样本阵列)。当如应用跳过模式的情况中一样不存在处理目标块的残差信号时,预测块可用作重构块。加法器155可被称为重构器或重构块生成器。如下所述,所生成的重构信号可用于当前画面中的下一处理目标块的帧内预测,或者可通过滤波用于下一画面的帧间预测。
[0249]
滤波器15070可通过对重构信号应用滤波来改进主观/客观图像质量。例如,滤波器15070可通过对重构画面应用各种滤波技术来生成修改的重构画面,并且修改的重构画面可被存储在存储器15080(具体地,存储器15080的dpb)中。例如,各种滤波技术可包括去块滤波、样本自适应偏移、自适应环路滤波和双边滤波。如下面在滤波技术的描述中描述的,滤波器15070可生成关于滤波的各种类型的信息并且将所生成的信息传送至熵编码器15110。关于滤波的信息可由熵编码器15110编码并以比特流的形式输出。
[0250]
发送到存储器15080的修改的重构画面可由帧间预测器15090用作参考画面。因此,当应用帧间预测时,编码器可避免编码器15000与解码器之间的预测失配并且改进编码效率。
[0251]
存储器15080的dpb可存储修改的重构画面以由帧间预测器15090用作参考画面。存储器15080可存储关于推导(或编码)当前画面中的运动信息的块的运动信息和/或关于画面中已经重构的块的运动信息。所存储的运动信息可被传送到帧间预测器15090以用作关于空间邻近块的运动信息或关于时间邻近块的运动信息。存储器15080可存储当前画面中的重构块的重构样本并将重构样本传送至帧内预测器15100。
[0252]
可跳过上述预测、变换和量化过程中的至少一个。例如,对于应用了脉冲编码模式(pcm)的块,可跳过预测、变换和量化过程,并且原始样本的值可被编码并以比特流的形式输出。
[0253]
图16示出根据实施方式的示例性v

pcc解码处理。
[0254]
解复用器16000将压缩的比特流解复用,以输出压缩的纹理图像、压缩的几何图像、压缩的占用图和压缩的辅助补片信息。
[0255]
在视频解压缩16001、16002中,压缩的纹理图像和压缩的几何图像分别被解压缩。
[0256]
在占用图解压缩16003中,压缩的占用图被解压缩。
[0257]
在辅助补片信息解压缩16004中,辅助补片信息被解压缩。
[0258]
在几何重构16005中,基于解压缩的几何图像、解压缩的占用图和/或解压缩的辅助补片信息来恢复(重构)几何信息。例如,在编码处理中改变的几何可被重构。
[0259]
在平滑16006中,可对重构的几何应用平滑操作。例如,可应用平滑滤波。
[0260]
在纹理重构16007中,从解压缩的纹理图像和/或平滑的几何重构纹理。
[0261]
在颜色平滑16008中,从重构的纹理平滑颜色值。例如,可应用平滑滤波。
[0262]
结果,可生成重构的点云数据。
[0263]
图中示出通过对压缩的占用图、几何图像、纹理图像和辅助补片信息进行解码来重构点云的v

pcc的解码处理。根据实施方式的各个处理如下操作。
[0264]
视频解压缩
[0265]
视频解压缩是上述视频压缩的逆处理。在视频解压缩中,使用诸如hevc或vvc的2d视频编解码器来将包含在上述处理中生成的几何图像、纹理图像和占用图图像的压缩比特流解码。
[0266]
图17示出根据实施方式的示例性2d视频/图像解码器。
[0267]
该图示出应用视频解压缩的实施方式,是对视频/图像信号进行解码的2d视频/图像解码器17000的示意性框图。2d视频/图像解码器17000可被包括在上述点云视频解码器中,或者可被配置成内部/外部组件。这里,输入比特流可包括上述几何图像、纹理图像(属性图像)和占用图图像的比特流。重构的图像(或者输出图像或解码的图像)可表示上述几何图像、纹理图像(属性图像)和占用图图像的重构图像。
[0268]
参照该图,帧间预测器17070和帧内预测器17080可被统称为预测器。即,预测器可包括帧间预测器17070和帧内预测器17080。逆量化器17020和逆变换器17030可被统称为残差处理器。即,根据实施方式,残差处理器可包括逆量化器17020和逆变换器17030。上述熵解码器17010、逆量化器17020、逆变换器17030、加法器17040、滤波器17050、帧间预测器17070和帧内预测器17080可由一个硬件组件(例如,解码器或处理器)配置。另外,存储器170可包括解码画面缓冲器(dpb)或者可由数字存储介质配置。
[0269]
当输入包含视频/图像信息的比特流时,解码器17000可在与图15的编码器处理视
频/图像信息的处理对应的处理中重构图像。例如,解码器17000可使用编码器中应用的处理单元来执行解码。因此,解码的处理单元可以是例如cu。cu可沿着四叉树结构和/或二叉树结构从ctu或lcu分割。然后,可通过播放器播放通过解码器17000解码和输出的重构的视频信号。
[0270]
解码器17000可接收从编码器以比特流的形式输出的信号,并且所接收的信号可通过熵解码器17010解码。例如,熵解码器17010可解析比特流以推导图像重构(或画面重构)所需的信息(例如,视频/图像信息)。例如,熵解码器17010可基于诸如指数golomb编码、cavlc或cabac的编码技术对比特流中的信息进行解码,输出图像重构所需的句法元素和残差的变换系数的量化值。更具体地,在cabac熵解码中,可接收与比特流中的各个句法元素对应的信元(bin),并且可基于解码目标句法元素信息以及关于邻近解码目标块的解码信息或关于在先前步骤中解码的符号/信元的信息来确定上下文模型。然后,可根据所确定的上下文模型来预测信元出现的概率,并且可执行信元的算术解码以生成与各个句法元素的值对应的符号。根据cabac熵解码,在确定上下文模型之后,可基于关于为下一符号/信元的上下文模型解码的符号/信元的信息来更新上下文模型。熵解码器17010所解码的信息中关于预测的信息可被提供给预测器(帧间预测器17070和帧内预测器17080),并且已由熵解码器17010执行了熵解码的残差值(即,量化的变换系数和相关参数信息)可被输入到逆量化器17020。另外,熵解码器17010所解码的信息中关于滤波的信息可被提供给滤波器17050。被配置为接收从编码器输出的信号的接收器(未示出)还可被配置成解码器17000的内部/外部元件。另选地,接收器可以是熵解码器17010的组件。
[0271]
逆量化器17020可通过将量化的变换系数逆量化来输出变换系数。逆量化器17020可按二维块的形式重排量化的变换系数。在这种情况下,可基于编码器所实现的系数扫描顺序来执行重排。逆量化器17020可使用量化参数(例如,量化步长信息)对量化的变换系数执行逆量化并且获取变换系数。
[0272]
逆变换器17030通过对变换系数进行逆变换来获取残差信号(残差块和残差样本阵列)。
[0273]
预测器可对当前块执行预测并生成包括当前块的预测样本的预测块。预测器可基于从熵解码器17010输出的关于预测的信息来确定对当前块应用帧内预测还是帧间预测,并且可确定特定帧内/帧间预测模式。
[0274]
帧内预测器265可参考当前画面中的样本来预测当前块。根据预测模式,样本可邻近或远离当前块。在帧内预测中,预测模式可包括多个非定向模式和多个定向模式。帧内预测器17080可使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
[0275]
帧间预测器17070可基于参考画面上运动向量所指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式下发送的运动信息量,可基于邻近块与当前块之间的运动信息的相关性基于每块、子块或样本来预测运动信息。运动信息可包括运动向量和参考画面索引。运动信息还可包括关于帧间预测方向(l0预测、l1预测、bi预测等)的信息。在帧间预测的情况下,邻近块可包括存在于当前画面中的空间邻近块和存在于参考画面中的时间邻近块。例如,帧间预测器17070可基于邻近块来配置运动信息候选列表,并且基于所接收的候选选择信息来推导当前块的运动向量和/或参考画面索引。可基于各种预测模式来执行帧间预测。关于预测的信息可包括指示当前块的帧间预测
模式的信息。
[0276]
加法器17040可将所获取的残差信号与从帧间预测器17070或帧内预测器17080输出的预测信号(预测块或预测样本阵列)相加,从而生成重构信号(重构画面、重构块或重构样本阵列)。当如应用跳过模式的情况中一样不存在用于处理目标块的残差信号时,预测块可用作重构块。
[0277]
加法器17040可被称为重构器或重构块生成器。所生成的重构信号可用于当前画面中的下一处理目标块的帧内预测,或者可如下所述通过滤波用于下一画面的帧间预测。
[0278]
滤波器17050可通过对重构信号应用滤波来改进主观/客观图像质量。例如,滤波器17050可通过对重构画面应用各种滤波技术来生成修改的重构画面,并且可将修改的重构画面发送到存储器250(具体地,存储器17060的dpb)。例如,各种滤波方法可包括去块滤波、样本自适应偏移、自适应环路滤波和双边滤波。
[0279]
存储在存储器17060的dpb中的重构画面可用作帧间预测器17070中的参考画面。存储器17060可存储关于当前画面中推导(或解码)运动信息的块的运动信息和/或关于已经重构的画面中的块的运动信息。所存储的运动信息可被传送至帧间预测器17070以用作关于空间邻近块的运动信息或关于时间邻近块的运动信息。存储器17060可存储当前画面中的重构块的重构样本并将重构样本传送至帧内预测器17080。
[0280]
在本公开中,关于编码器100的滤波器160、帧间预测器180和帧内预测器185描述的实施方式可分别以相同或对应的方式应用于解码器17000的滤波器17050、帧间预测器17070和帧内预测器17080。
[0281]
可跳过上述预测、变换和量化过程中的至少一个。例如,对于应用了脉冲编码模式(pcm)的块,可跳过预测、变换和量化过程,并且解码的样本的值可用作重构图像的样本。
[0282]
占用图解压缩
[0283]
这是上述占用图压缩的逆处理。占用图解压缩是通过将占用图比特流解压缩来重构占用图的处理。
[0284]
辅助补片信息解压缩
[0285]
这是上述辅助补片信息压缩的逆处理。辅助补片信息解压缩是通过对压缩的辅助补片信息比特流进行解码来重构辅助补片信息的处理。
[0286]
几何重构
[0287]
这是上述几何图像生成的逆处理。最初,使用重构的占用图、包括在辅助补片信息中的关于补片的2d位置/尺寸信息以及关于块和补片之间的映射的信息从几何图像提取补片。然后,基于所提取的补片的几何图像和包括在辅助补片信息中的关于补片的3d位置信息在3d空间中重构点云。当与补片内的点(u,v)对应的几何值为g(u,v),并且在3d空间的法向轴、切向轴和双切轴上补片的位置坐标为(d0,s0,r0)时,映射到点(u,v)的位置在3d空间中的法向、切向和双切坐标d(u,v)、s(u,v)和r(u,v)可表示如下。
[0288]
d(u,v)=d0 g(u,v)
[0289]
s(u,v)=s0 u
[0290]
r(u,v)=r0 v
[0291]
平滑
[0292]
与上述编码处理中的平滑相同,平滑是用于消除由于在压缩处理期间发生的图像
质量劣化而可能出现在补片边界上的不连续的处理。
[0293]
纹理重构
[0294]
纹理重构是通过向构成平滑的点云的各个点指派颜色值来重构颜色点云的处理。这可通过基于上述几何重构处理中关于几何图像和点云的映射信息向点云中与3d空间中的相同位置对应的点指派与2d空间中的几何图像中相同的位置处的纹理图像像素所对应的颜色值来执行。
[0295]
颜色平滑
[0296]
颜色平滑类似于上述几何平滑的处理。颜色平滑是用于消除由于在压缩处理期间发生的图像质量劣化而可能出现在补片边界上的不连续的处理。颜色平滑可通过以下操作执行:
[0297]
1)使用k

d树等计算构成重构的点云的各个点的邻近点。可使用在上述几何平滑处理中计算的邻近点信息。
[0298]
2)确定各个点是否位于补片边界上。这些操作可基于在上述几何平滑处理中计算的边界信息来执行。
[0299]
3)检查存在于边界上的点的邻近点的颜色值的分布并且确定是否要执行平滑。例如,当亮度值的熵小于或等于阈值局部条目(存在许多相似的亮度值)时,可确定对应部分不是边缘部分,并且可执行平滑。作为平滑方法,点的颜色值可被替换为邻近点的颜色值的平均。
[0300]
图18是示出根据本公开的实施方式的发送装置的操作的流程图。
[0301]
发送终端的操作过程
[0302]
发送终端使用v

pcc压缩和传输点云数据的操作处理可如图所示执行。
[0303]
根据实施方式的点云数据发送装置可被称为发送装置。
[0304]
关于补片生成器18000,生成用于点云的2d图像映射的补片。作为补片生成的结果生成辅助补片信息。所生成的信息可在几何图像生成、纹理图像生成和用于平滑的几何重构的处理中使用。
[0305]
关于补片打包器18001,执行将所生成的补片映射到2d图像中的补片打包处理。作为补片打包的结果,可生成占用图。占用图可在几何图像生成、纹理图像生成和用于平滑的几何重构的处理中使用。
[0306]
几何图像生成器18002基于辅助补片信息和占用图来生成几何图像。所生成的几何图像通过视频编码被编码为一个比特流。
[0307]
编码预处理器18003可包括图像填充处理。通过将所生成的几何图像或编码的几何比特流解码而重新生成的几何图像可用于3d几何重构,然后经受平滑处理。
[0308]
纹理图像生成器18004可基于(平滑的)3d几何、点云、辅助补片信息和占用图来生成纹理图像。所生成的纹理图像可被编码为一个视频比特流。
[0309]
元数据编码器18005可将辅助补片信息编码为一个元数据比特流。
[0310]
视频编码器18006可将占用图编码为一个视频比特流。
[0311]
复用器18007可将所生成的几何图像、纹理图像和占用图的视频比特流和辅助补片信息的元数据比特流复用为一个比特流。
[0312]
发送器18008可将比特流发送到接收终端。另选地,所生成的几何图像、纹理图像
和占用图的视频比特流和辅助补片信息的元数据比特流可被处理成一个或更多个轨道数据的文件或被封装成片段,并且可通过发送器发送到接收终端。
[0313]
图19是示出根据实施方式的接收装置的操作的流程图。
[0314]
接收终端的操作处理
[0315]
接收终端使用v

pcc接收和重构点云数据的操作处理可如图所示执行。
[0316]
根据实施方式的点云数据接收装置可被称为接收装置。
[0317]
所接收的点云的比特流在文件/片段解封装之后被解复用器19000解复用为压缩的几何图像、纹理图像、占用图的视频比特流和辅助补片信息的元数据比特流。视频解码器19001和元数据解码器19002对解复用的视频比特流和元数据比特流进行解码。3d几何由几何重构器19003基于解码的几何图像、占用图和辅助补片信息重构,然后经受平滑器19004执行的平滑处理。可由纹理重构器19005通过基于纹理图像向平滑的3d几何指派颜色值来重构颜色点云图像/画面。此后,可另外执行颜色平滑处理以改进主观/客观视觉质量,并且通过颜色平滑处理推导的修改的点云图像/画面通过渲染处理(通过例如点云渲染器)被显示给用户。在一些情况下,可跳过颜色平滑处理。
[0318]
图20示出根据实施方式的用于点云数据的基于v

pcc的存储和流传输的示例性架构。
[0319]
图中示出用于存储或流传输根据基于视频的点云压缩(v

pcc)压缩的点云数据的总体架构。存储和流传输点云数据的处理可包括获取处理、编码处理、传输处理、解码处理、渲染处理和/或反馈处理。
[0320]
实施方式提出了一种有效地提供点云媒体/内容/数据的方法。
[0321]
为了有效地提供点云媒体/内容/数据,点云获取器20000可获取点云视频。例如,一个或更多个相机可通过捕获、编排或生成点云来获取点云数据。通过该获取处理,可获取包括各个点的3d位置(可由x、y和z位置值等表示)(以下称为几何)和各个点的属性(颜色、反射率、透明度等)的点云视频。例如,可生成包含点云视频的polygon文件格式(ply)(或斯坦福三角形格式)文件等。对于具有多个帧的点云数据,可获取一个或更多个文件。在此处理中,可生成点云相关元数据(例如,与捕获有关的元数据等)。
[0322]
对于捕获的点云视频可能需要用于改进内容的质量的后处理。在视频捕获处理中,可在相机设备所提供的范围内调节最大/最小深度。即使在调节之后,仍可能存在不想要区域的点数据。因此,可执行去除不想要区域(例如,背景)或识别连接的空间并填充空间孔洞的后处理。另外,从共享空间坐标系的相机提取的点云可通过基于通过校准处理获取的各个相机的位置坐标将各个点变换到全局坐标系的处理被整合为一条内容。由此,可获取具有高密度点的点云视频。
[0323]
点云预处理器20001可生成点云视频的一个或更多个画面/帧。这里,画面/帧通常可表示以特定时间间隔表示一个图像的单元。当构成点云视频的点被分成一个或更多个补片(构成点云视频的点的集合,其中,属于同一补片的点在3d空间中彼此相邻并且在映射到2d图像时在6面边界框的平坦面之间在相同方向上映射)并映射到2d平面时,可生成二值图的占用图画面/帧,其以值0或1指示2d平面中的对应位置处是否存在数据。另外,可生成逐补片表示关于构成点云视频的各个点的位置(几何)的信息的深度图形式的几何画面/帧。可生成逐补片表示关于构成点云视频的各个点的颜色信息的纹理画面/帧。在此处理中,可
生成从各个补片重构点云所需的元数据。元数据可包括关于补片的信息,例如各个补片在2d/3d空间中的位置和大小。这些画面/帧可按时间顺序连续地生成以构造视频流或元数据流。
[0324]
点云视频编码器20002可对与点云视频有关的一个或更多个视频流进行编码。一个视频可包括多个帧,并且一个帧可对应于静止图像/画面。在本公开中,点云视频可包括点云图像/帧/画面,并且术语“点云视频”可与点云视频/帧/画面互换使用。点云视频编码器可执行基于视频的点云压缩(v

pcc)处理。为了压缩和编码效率,点云视频编码器可执行诸如预测、变换、量化和熵编码的一系列处理。编码的数据(编码的视频/图像信息)可按比特流的形式输出。基于v

pcc处理,如下所述,点云视频编码器可通过将点云视频分成几何视频、属性视频、占用图视频和元数据(例如,关于补片的信息)来对点云视频进行编码。几何视频可包括几何图像,属性视频可包括属性图像,占用图视频可包括占用图图像。作为辅助信息的补片数据可包括补片相关信息。属性视频/图像可包括纹理视频/图像。
[0325]
点云图像编码器20003可对与点云视频有关的一个或更多个图像进行编码。点云图像编码器可执行基于视频的点云压缩(v

pcc)处理。为了压缩和编码效率,点云图像编码器可执行诸如预测、变换、量化和熵编码的一系列处理。编码的图像可按比特流的形式输出。基于v

pcc处理,如下所述,点云图像编码器可通过将点云图像分成几何图像、属性图像、占用图图像和元数据(例如,关于补片的信息)来对点云图像进行编码。
[0326]
封装处理器(文件/片段封装)20004可将编码的点云数据和/或点云相关元数据封装为文件或片段以用于流传输。这里,点云相关元数据可接收自元数据处理器等。元数据处理器可包括在点云视频/图像编码器中,或者可被配置成单独的组件/模块。封装处理器可按诸如isobmff的文件格式或按dash片段等形式封装对应视频/图像/元数据。根据实施方式,封装处理器可包括文件格式的点云元数据。点云相关元数据可包括在例如isobmff文件格式的各种级别的盒中,或作为文件内的单独轨道中的数据。根据实施方式,封装处理器可将点云相关元数据封装成文件。
[0327]
发送处理器可根据文件格式来执行封装的点云数据的传输处理。发送处理器可包括在发送器中,或者可被配置成单独的组件/模块。发送处理器可根据传输协议处理点云数据。传输处理可包括经由广播网络传送的处理和通过宽带传送的处理。根据实施方式,发送处理器可从元数据处理器接收点云相关元数据以及点云数据,并且执行点云视频数据的传输处理。
[0328]
发送器可经由数字存储介质或网络将点云比特流或包括比特流的文件/片段发送到接收装置的接收器。为了传输,可执行根据任何传输协议的处理。为传输而处理的数据可经由广播网络和/或通过宽带传送。数据可按照按需方式传送至接收侧。数字存储介质可包括诸如usb、sd、cd、dvd、蓝光、hdd和ssd的各种存储介质。发送器可包括用于生成预定文件格式的媒体文件的元件,并且可包括用于经由广播/通信网络传输的元件。接收器可提取比特流并将提取的比特流发送到解码器。
[0329]
接收器可接收根据本公开的点云数据发送装置所发送的点云数据。根据传输信道,接收器可经由广播网络或通过宽带接收点云数据。另选地,可通过数字存储介质接收点云数据。接收器可包括将所接收的数据解码并根据用户的视口渲染数据的处理。
[0330]
接收处理器可根据传输协议对所接收的点云视频数据执行处理。接收处理器可包
括在接收器中,或者可被配置成单独的组件/模块。接收处理器可相反地执行上述发送处理器的处理,以与在发送侧执行的传输处理对应。接收处理器可将获取的点云视频传送至解封装处理器,并将获取的点云相关元数据传送至元数据解析器。
[0331]
解封装处理器(文件/片段解封装)20005可将以文件的形式从接收处理器接收的点云数据解封装。解封装处理器可根据isobmff等对文件进行解封装,并且可获取点云比特流或点云相关元数据(或单独的元数据比特流)。所获取的点云比特流可被传送至点云解码器,所获取的点云视频相关元数据(元数据比特流)可被传送至元数据处理器。点云比特流可包括元数据(元数据比特流)。元数据处理器可包括在点云解码器中,或者可被配置成单独的组件/模块。解封装处理器所获取的点云视频相关元数据可采取文件格式中的盒或轨道的形式。必要时,解封装处理器可从元数据处理器接收解封装所需的元数据。点云相关元数据可被传送至点云解码器并在点云解码处理中使用,或者可被传送至渲染器并在点云渲染处理中使用。
[0332]
点云视频解码器20006可接收比特流并通过执行与点云视频编码器的操作对应的操作来对视频/图像进行解码。在这种情况下,如下所述,点云视频解码器可通过将点云视频分成几何视频、属性视频、占用图视频和辅助补片信息来将点云视频解码。几何视频可包括几何图像,属性视频可包括属性图像,占用图视频可包括占用图图像。辅助信息可包括辅助补片信息。属性视频/图像可包括纹理视频/图像。
[0333]
3d几何可基于解码的几何图像、占用图和辅助补片信息来重构,然后可经受平滑处理。可通过基于纹理图像向平滑的3d几何指派颜色值来重构颜色点云图像/画面。渲染器可渲染重构的几何和颜色点云图像/画面。渲染的视频/图像可通过显示器显示。渲染结果的全部或部分可通过vr/ar显示器或典型显示器显示给用户。
[0334]
传感器/跟踪器(感测/跟踪)20007从用户或接收侧获取取向信息和/或用户视口信息并将取向信息和/或用户视口信息传送至接收器和/或发送器。取向信息可表示关于用户头部的位置、角度、移动等的信息,或者表示关于用户正通过其观看视频/图像的装置的位置、角度、移动等的信息。基于该信息,可计算关于3d空间中用户当前观看的区域的信息(即,视口信息)。
[0335]
视口信息可以是关于3d空间中用户当前通过装置或hmd观看的区域的信息。诸如显示器的装置可基于取向信息、装置所支持的垂直或水平fov等提取视口区域。可在接收侧提取或计算取向或视口信息。在接收侧分析的取向或视口信息可在反馈信道上发送至发送侧。
[0336]
基于传感器/跟踪器获取的取向信息和/或指示用户当前观看的区域的视口信息,接收器可有效地从文件仅提取或解码特定区域(即,取向信息和/或视口信息所指示的区域)的媒体数据。另外,基于传感器/跟踪器所获取的取向信息和/或视口信息,发送器可有效地仅对特定区域(即,取向信息和/或视口信息所指示的区域)的媒体数据进行编码,或者生成并发送其文件。
[0337]
渲染器可在3d空间中渲染解码的点云数据。渲染的视频/图像可通过显示器显示。用户可通过vr/ar显示器或典型显示器来观看渲染结果的全部或部分。
[0338]
反馈处理可包括将可在渲染/显示处理中获取的各种类型的反馈信息传送至发送侧或接收侧的解码器。通过反馈处理,可在消费点云数据时提供交互性。根据实施方式,头
部取向信息、指示用户当前观看的区域的视口信息等可在反馈处理中被传送至发送侧。根据实施方式,用户可与在vr/ar/mr/自驾驶环境中实现的内容交互。在这种情况下,与交互有关的信息可在反馈处理中被传送至发送侧或服务提供商。根据实施方式,可跳过反馈处理。
[0339]
根据实施方式,上述反馈信息可不仅被发送至发送侧,而且在接收侧处消费。即,接收侧的解封装处理、解码和渲染处理可基于上述反馈信息来执行。例如,可基于取向信息和/或视口信息优先解封装、解码和渲染关于用户当前观看的区域的点云数据。
[0340]
图21是根据实施方式的用于存储和发送点云数据的装置的示例性框图。
[0341]
根据实施方式的点云数据发送装置可如图所示配置。发送装置的各个元件可以是模块/单元/组件/硬件/软件/处理器。
[0342]
点云的几何、属性、辅助数据和网格数据可各自被配置成单独的流或存储在文件中的不同轨道中。此外,它们可被包括在单独的片段中。
[0343]
点云获取器(点云获取)21000获取点云。例如,一个或更多个相机可通过捕获、编排或生成点云来获取点云数据。通过该获取处理,可获取包括各个点的3d位置(可由x、y和z位置值等表示)(以下称为几何)和各个点的属性(颜色、反射率、透明度等)的点云数据。例如,可生成包括点云数据的polygon文件格式(ply)(或斯坦福三角形格式)文件等。对于具有多个帧的点云数据,可获取一个或更多个文件。在此处理中,可生成点云相关元数据(例如,与捕获有关的元数据等)。
[0344]
补片生成器(或补片生成)21002从点云数据生成补片。补片生成器将点云数据或点云视频生成为一个或更多个画面/帧。画面/帧通常可表示以特定时间间隔表示一个图像的单元。当构成点云视频的点被分成一个或更多个补片(构成点云视频的点的集合,其中,属于同一补片的点在3d空间中彼此相邻并且在映射到2d图像时在6面边界框的平坦面之间在相同方向上映射)并映射到2d平面时,可生成二值图的占用图画面/帧,其以0或1指示2d平面中的对应位置处是否存在数据。另外,可生成逐补片表示关于构成点云视频的各个点的位置(几何)的信息的深度图形式的几何画面/帧。可生成逐补片表示关于构成点云视频的各个点的颜色信息的纹理画面/帧。在此处理中,可生成从各个补片重构点云所需的元数据。元数据可包括关于补片的信息,例如各个补片在2d/3d空间中的位置和大小。这些画面/帧可按时间顺序连续地生成以构造视频流或元数据流。
[0345]
另外,补片可用于2d图像映射。例如,点云数据可被投影到立方体的各个面上。在补片生成之后,可基于所生成的补片来生成几何图像、一个或更多个属性图像、占用图、辅助数据和/或网格数据。
[0346]
几何图像生成、属性图像生成、占用图生成、辅助数据生成和/或网格数据生成由预处理器或控制器执行。
[0347]
在几何图像生成21002中,基于补片生成的结果来生成几何图像。几何表示3d空间中的点。使用占用图来生成几何图像,其包括与补片的2d图像打包有关的信息、辅助数据(补片数据)和/或基于补片的网格数据。几何图像与诸如在补片生成之后生成的补片的深度(例如,近、远)的信息有关。
[0348]
在属性图像生成21003中,生成属性图像。例如,属性可表示纹理。纹理可以是与各个点匹配的颜色值。根据实施方式,可生成包括纹理的多个属性(例如,颜色和反射率)(n个
属性)的图像。多个属性可包括材料信息和反射率。根据实施方式,属性可另外包括指示颜色的信息,其即使对于相同的纹理也可根据视角和光而变化。
[0349]
在占用图生成21004中,从补片生成占用图。占用图包括指示像素(例如,对应几何或属性图像)中是否存在数据的信息。
[0350]
在辅助数据生成21005中,生成包括关于补片的信息的辅助数据。即,辅助数据表示关于点云对象的补片的元数据。例如,其可表示诸如补片的法向量的信息。具体地,辅助数据可包括从补片重构点云所需的信息(例如,关于补片在2d/3d空间中的位置、大小等的信息以及投影(正常)平面标识信息、补片映射信息等)。
[0351]
在网格数据生成21006中,从补片生成网格数据。网格表示邻近点之间的连接。例如,其可表示三角形形状的数据。例如,网格数据是指点之间的连接性。
[0352]
点云预处理器或控制器生成与补片生成、几何图像生成、属性图像生成、占用图生成、辅助数据生成和网格数据生成有关的元数据。
[0353]
点云发送装置响应于预处理器所生成的结果而执行视频编码和/或图像编码。点云发送装置可生成点云图像数据以及点云视频数据。根据实施方式,点云数据可仅具有视频数据,仅具有图像数据,和/或具有视频数据和图像数据二者。
[0354]
视频编码器21007执行几何视频压缩、属性视频压缩、占用图压缩、辅助数据压缩和/或网格数据压缩。视频编码器生成包含编码的视频数据的视频流。
[0355]
具体地,在几何视频压缩中,点云几何视频数据被编码。在属性视频压缩中,点云的属性视频数据被编码。在辅助数据压缩中,与点云视频数据关联的辅助数据被编码。在网格数据压缩中,点云视频数据的网格数据被编码。点云视频编码器的各个操作可并行执行。
[0356]
图像编码器21008执行几何图像压缩、属性图像压缩、占用图压缩、辅助数据压缩和/或网格数据压缩。图像编码器生成包含编码的图像数据的图像。
[0357]
具体地,在几何图像压缩中,点云几何图像数据被编码。在属性图像压缩中,点云的属性图像数据被编码。在辅助数据压缩中,与点云图像数据关联的辅助数据被编码。在网格数据压缩中,与点云图像数据关联的网格数据被编码。点云图像编码器的各个操作可并行执行。
[0358]
视频编码器和/或图像编码器可从预处理器接收元数据。视频编码器和/或图像编码器可基于元数据来执行各个编码处理。
[0359]
文件/片段封装器(文件/片段封装)21009以文件和/或片段的形式封装视频流和/或图像。文件/片段封装器执行视频轨道封装、元数据轨道封装和/或图像封装。
[0360]
在视频轨道封装中,一个或更多个视频流可被封装到一个或更多个轨道。
[0361]
在元数据轨道封装中,与视频流和/或图像有关的元数据可被封装在一个或更多个轨道中。元数据包括与点云数据的内容有关的数据。例如,其可包括初始观看取向元数据。根据实施方式,元数据可被封装到元数据轨道,或者可被一起封装在视频轨道或图像轨道中。
[0362]
在图像封装中,一个或更多个图像可被封装到一个或更多个轨道或项目中。
[0363]
例如,根据实施方式,当四个视频流和两个图像被输入到封装器时,四个视频流和两个图像可被封装在一个文件中。
[0364]
文件/片段封装器可从预处理器接收元数据。文件/片段封装器可基于元数据来执
行封装。
[0365]
通过文件/片段封装生成的文件和/或片段由点云发送装置或发送器发送。例如,片段可根据基于dash的协议来传送。
[0366]
发送器可经由数字存储介质或网络将点云比特流或包括比特流的文件/片段发送到接收装置的接收器。为了传输,可执行根据任何传输协议的处理。为传输已处理的数据可经由广播网络和/或通过宽带传送。数据可按照按需方式传送至接收侧。数字存储介质可包括诸如usb、sd、cd、dvd、蓝光、hdd和ssd的各种存储介质。传送器可包括用于生成预定文件格式的媒体文件的元件,并且可包括用于经由广播/通信网络传输的元件。传送器从接收器接收取向信息和/或视口信息。传送器可将所获取的取向信息和/或视口信息(或用户所选择的信息)传送至预处理器、视频编码器、图像编码器、文件/片段封装器和/或点云编码器。基于取向信息和/或视口信息,点云编码器可对所有点云数据或取向信息和/或视口信息所指示的点云数据进行编码。基于取向信息和/或视口信息,文件/片段封装器可对所有点云数据或取向信息和/或视口信息所指示的点云数据进行封装。基于取向信息和/或视口信息,传送器可传送所有点云数据或取向信息和/或视口信息所指示的点云数据。
[0367]
例如,预处理器可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。视频编码器和/或图像编码器可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。文件/片段封装器可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。发送器可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。
[0368]
图22是根据实施方式的点云数据接收装置的示例性框图。
[0369]
接收装置的各个组件可以是模块/单元/组件/硬件/软件/处理器。传送客户端可接收包括根据实施方式的点云数据发送装置所发送的比特流的点云数据、点云比特流或文件/片段。根据用于传输的信道,接收器可经由广播网络或通过宽带接收点云数据。另选地,可通过数字存储介质接收点云视频数据。接收器可包括将所接收的数据解码并根据用户视口渲染所接收的数据的处理。接收处理器可根据传输协议对所接收的点云数据执行处理。接收处理器可包括在接收器中,或者被配置成单独的组件/模块。接收处理器可相反地执行上述发送处理器的处理,以与发送侧执行的传输处理对应。接收处理器可将所获取的点云数据传送至解封装处理器并将所获取的点云相关元数据传送至元数据解析器。
[0370]
传感器/跟踪器(感测/跟踪)获取取向信息和/或视口信息。传感器/跟踪器可将所获取的取向信息和/或视口信息传送至传送客户端、文件/片段解封装器和点云解码器。
[0371]
传送客户端可基于取向信息和/或视口信息来接收所有点云数据或取向信息和/或视口信息所指示的点云数据。文件/片段解封装器可基于取向信息和/或视口信息将所有点云数据或取向信息和/或视口信息所指示的点云数据解封装。点云解码器(视频解码器和/或图像解码器)可基于取向信息和/或视口信息将所有点云数据或取向信息和/或视口信息所指示的点云数据解码。点云处理器可基于取向信息和/或视口信息来处理所有点云数据或取向信息和/或视口信息所指示的点云数据。
[0372]
文件/片段解封装器(文件/片段解封装)22000执行视频轨道解封装、元数据轨道解封装和/或图像解封装。解封装处理器(文件/片段解封装)可将从接收处理器以文件的形式接收的点云数据解封装。解封装处理器(文件/片段解封装)可根据isobmff等对文件或片
段进行解封装,以获取点云比特流或点云相关元数据(或单独的元数据比特流)。所获取的点云比特流可被传送至点云解码器,所获取的点云相关元数据(或元数据比特流)可被传送至元数据处理器。点云比特流可包括元数据(元数据比特流)。元数据处理器可包括在点云视频解码器中,或者可被配置成单独的组件/模块。解封装处理器所获取的点云相关元数据可采取文件格式中的盒或轨道的形式。必要时,解封装处理器可从元数据处理器接收解封装所需的元数据。点云相关元数据可被传送至点云解码器并在点云解码处理中使用,或者可被传送至渲染器并在点云渲染处理中使用。文件/片段解封装器可生成与点云数据有关的元数据。
[0373]
在视频轨道解封装中,包含在文件和/或片段中的视频轨道被解封装。包括几何视频、属性视频、占用图、辅助数据和/或网格数据的视频流被解封装。
[0374]
在元数据轨道解封装中,包含与点云数据和/或辅助数据有关的元数据的比特流被解封装。
[0375]
在图像解封装中,包括几何图像、属性图像、占用图、辅助数据和/或网格数据的图像被解封装。
[0376]
视频解码器(视频解码)22001执行几何视频解压缩、属性视频解压缩、占用图解压缩、辅助数据解压缩和/或网格数据解压缩。视频解码器在与根据实施方式的点云发送装置的视频编码器所执行的处理对应的处理中对几何视频、属性视频、辅助数据和/或网格数据进行解码。
[0377]
图像解码器(图像解码)22002执行几何图像解压缩、属性图像解压缩、占用图解压缩、辅助数据解压缩和/或网格数据解压缩。图像解码器在与根据实施方式的点云发送装置的图像编码器所执行的处理对应的处理中对几何图像、属性图像、辅助数据和/或网格数据进行解码。
[0378]
视频解码器和/或图像解码器可生成与视频数据和/或图像数据有关的元数据。
[0379]
点云处理器(点云处理)22003执行几何重构和/或属性重构。
[0380]
在几何重构中,基于占用图、辅助数据和/或网格数据从解码的视频数据和/或解码的图像数据重构几何视频和/或几何图像。
[0381]
在属性重构中,基于占用图、辅助数据和/或网格数据从解码的属性视频和/或解码的属性图像重构属性视频和/或属性图像。根据实施方式,例如,属性可以是纹理。根据实施方式,属性可表示多条属性信息。当存在多个属性时,根据实施方式的点云处理器执行多个属性重构。
[0382]
点云处理器可从视频解码器、图像解码器和/或文件/片段解封装器接收元数据,并且基于元数据来处理点云。
[0383]
点云渲染器(点云渲染)渲染重构的点云。点云渲染器可从视频解码器、图像解码器和/或文件/片段解封装器接收元数据,并且基于元数据来渲染点云。
[0384]
显示器将渲染结果实际显示在显示器上。
[0385]
如图15至图19所示,在根据实施方式的方法/装置如图15至图19所示对点云数据进行编码/解码之后,包括点云数据的比特流可按文件和/或片段的形式封装和/或解封装。
[0386]
例如,根据实施方式的点云数据发送装置可基于文件将点云数据封装。文件可包括包含点云的参数的v

pcc轨道、包含几何的几何轨道、包含属性的属性轨道以及包含占用
图的占用轨道。
[0387]
另外,根据实施方式的点云数据接收装置基于文件将点云数据解封装。文件可包括包含点云的参数的v

pcc轨道、包含几何的几何轨道、包含属性的属性轨道以及包含占用图的占用轨道。
[0388]
上述操作可由图20的文件/片段封装器20004、20005、图21的文件/片段封装器21009和图22的文件/片段封装器22000执行。
[0389]
图23示出可结合根据实施方式的点云数据发送/接收方法/装置操作的示例性结构。
[0390]
在根据实施方式的结构中,服务器2360、机器人2310、自驾驶车辆2320、xr装置2330、智能电话2340、家用电器2350和/或头戴式显示器(hmd)2370中的至少一个连接到云网络2300。这里,机器人2310、自驾驶车辆2320、xr装置2330、智能电话2340或家用电器2350可被称为装置。另外,xr装置1730可对应于根据实施方式的点云数据(pcc)装置,或者可在操作上连接到pcc装置。
[0391]
云网络2300可表示构成云计算基础设施的一部分或存在于云计算基础设施中的网络。这里,云网络2300可使用3g网络、4g或长期演进(lte)网络或5g网络来配置。
[0392]
服务器2360可经由云网络2300连接到机器人2310、自驾驶车辆2320、xr装置2330、智能电话2340、家用电器2350和/或hmd 2370中的至少一个,并且可辅助所连接的装置2310至2370的至少一部分处理。
[0393]
hmd 2370表示根据实施方式的xr装置和/或pcc装置的实现类型之一。根据实施方式的hmd型装置包括通信单元、控制单元、存储器、i/o单元、传感器单元和电源单元。
[0394]
以下,将描述应用了上述技术的装置2310至2350的各种实施方式。图23所示的装置2310至2350可在操作上连接/联接到根据上述实施方式的点云数据发送和接收装置。
[0395]
<pcc xr>xr/pcc装置2330可采用pcc技术和/或xr(ar vr)技术,并且可被实现为hmd、设置在车辆中的平视显示器(hud)、电视、移动电话、智能电话、计算机、可穿戴装置、家用电器、数字标牌、车辆、固定机器人或移动机器人。
[0396]
xr/pcc装置2330可分析通过各种传感器或从外部装置获取的3d点云数据或图像数据并且生成关于3d点的位置数据和属性数据。由此,xr/pcc装置2330可获取关于周围空间或真实对象的信息,并且渲染和输出xr对象。例如,xr/pcc装置2330可使包括关于所识别的对象的辅助信息的xr对象与所识别的对象匹配并输出匹配的xr对象。
[0397]
<pcc 自驾驶 xr>自驾驶车辆2320可通过应用pcc技术和xr技术被实现为移动机器人、车辆、无人驾驶飞行器等。
[0398]
应用了xr/pcc技术的自驾驶车辆2320可表示设置有用于提供xr图像的手段的自主车辆,或者作为xr图像中的控制/交互目标的自主车辆。具体地,作为xr图像中的控制/交互目标的自驾驶车辆2320可与xr装置2330相区分并且可操作上与之连接。
[0399]
具有用于提供xr/pcc图像的手段的自驾驶车辆2320可从包括相机的传感器获取传感器信息,并且基于所获取的传感器信息来输出所生成的xr/pcc图像。例如,自驾驶车辆可具有hud并向其输出xr/pcc图像以向乘客提供与真实对象或存在于画面上的对象对应的xr/pcc对象。
[0400]
在这种情况下,当xr/pcc对象被输出到hud时,xr/pcc对象的至少一部分可被输出
以与乘客眼睛所指向的真实对象交叠。另一方面,当xr/pcc对象输出在自驾驶车辆内部提供的显示器上时,xr/pcc对象的至少一部分可被输出以与画面上的对象交叠。例如,自驾驶车辆可输出与诸如道路、另一车辆、交通灯、交通标志、两轮车、行人和建筑物的对象对应的xr/pcc对象。
[0401]
根据实施方式的虚拟现实(vr)技术、增强现实(ar)技术、混合现实(mr)技术和/或点云压缩(pcc)技术适用于各种装置。
[0402]
换言之,vr技术是仅提供真实世界对象、背景等作为cg图像的显示器技术。另一方面,ar技术是指显示在真实对象图像上虚拟创建的cg图像的技术。mr技术与上述ar技术的相似之处在于,要显示的虚拟对象与真实世界混合并组合。然而,mr技术不同于ar技术,ar技术在真实对象与作为cg图像创建的虚拟对象之间进行清楚的区分并且使用虚拟对象作为真实对象的补充对象,而mr技术将虚拟对象当作具有与真实对象相同特性的对象。更具体地,mr技术应用的示例是全息服务。
[0403]
最近,vr、ar和mr技术通常被称为扩展现实(xr)技术,而非彼此清楚地区分。因此,本公开的实施方式适用于所有vr、ar、mr和xr技术。对于这些技术,可应用基于pcc、v

pcc和g

pcc技术的编码/解码。
[0404]
根据实施方式的pcc方法/装置可应用于提供自驾驶服务的车辆。
[0405]
提供自驾驶服务的车辆连接到pcc装置以进行有线/无线通信。
[0406]
当根据实施方式的点云数据发送和接收装置(pcc装置)连接到车辆以进行有线/无线通信时,装置可接收并处理与可与自驾驶服务一起提供的ar/vr/pcc服务有关的内容数据并且将处理的内容数据发送到车辆。在点云数据发送和接收装置被安装在车辆上的情况下,点云发送和接收装置可根据通过用户接口装置输入的用户输入信号来接收并处理与ar/vr/pcc服务有关的内容数据并且将处理的内容数据提供给用户。根据实施方式的车辆或用户接口装置可接收用户输入信号。根据实施方式的用户输入信号可包括指示自驾驶服务的信号。
[0407]
图24示出根据实施方式的示例性多轨道v

pcc文件结构。
[0408]
根据实施方式的v

pcc文件可由图1的文件/片段封装器10003/解封装器10007、图20的文件/片段封装器20004/解封装器20005、图21的文件/片段封装器21009、图22的文件/片段解封装器22000等生成(封装)和/或获取(解封装)。
[0409]
根据实施方式的v

pcc文件结构可具有基于dash的isobmff格式。具体地,文件可由可称为ftyp、meta、moov、mdat等的信息和/或盒组成。ftyp(文件类型)盒、meta盒、moov(电影)盒、mdat(媒体数据)盒等表示根据iso基础媒体文件格式的盒。
[0410]
meta盒可包括vpcg{0,1,2,3}盒(v

pcc组盒,将在下面详细描述)。
[0411]
moov盒可包含多个轨道。例如,轨道1可包含属性,轨道2可包含占用,轨道3可包含几何,轨道4可包含v

pcc轨道。
[0412]
mdat可包含视频编码属性比特流、视频编码几何比特流、视频编码占用比特流和补片序列数据比特流。
[0413]
下面详细描述各个文件的结构。
[0414]
v

pcc比特流可由v

pcc单元的集合组成。各个v

pcc单元可包括具有指示类型和有效载荷的字段的头。
[0415]
根据v

pcc单元的类型,有效载荷可包括2d视频编码信息(用于编码的点云的几何、属性和占用图分量)、非视频编码信息(用于补片序列数据)或者配置和元数据信息(用于序列参数集)。
[0416]
isobmff v

pcc容器的一般布局可如图所示配置。主要设计原理是基于类型将v

pcc比特流中的v

pcc单元映射到容器文件中的各个轨道。
[0417]
基于这种布局,v

pcc isobmff容器可包括以下内容。
[0418]
可存在包含用于承载序列参数集、与参数数据(例如,视频数据以外的元数据)和v

pcc补片序列数据对应的v

pcc序列参数集(即,非视频编码信息v

pcc单元)的有效载荷的样本的v

pcc轨道(参见图25或图28)。此轨道还可提供参考包含用于承载包含视频数据的视频压缩v

pcc单元的有效载荷的样本的其它轨道的轨道。因此,为了用信号通知包含视频数据的轨道,包含元数据的轨道可包含参考信息。
[0419]
在一个或更多个受限视频方案中,样本可包括用于几何、属性和占用图数据的视频编码基本流的nal单元。
[0420]
在本说明书中,根据实施方式的方法/装置是指点云数据发送装置和/或接收装置。另外,根据实施方式,发送装置可表示编码器,接收装置可表示解码器。
[0421]
在这方面,根据实施方式的方法/装置可提供v

pcc数据列表(v

pcc分组盒)信令。例如,提出了用于在多个流和/或轨道中发送v

pcc数据列表的信令。
[0422]
另外,根据实施方式的方法/装置可提供用于关于点云数据的边界框信息动态地改变的情况的信令。例如,提出了这种信令的元数据轨道定义。
[0423]
另外,根据实施方式的方法/装置可提供用于映射有点云数据的画面中的2d区域信息的信令的元数据轨道。
[0424]
图25示出根据实施方式的示例性isobmff v

pcc容器结构。
[0425]
表示上述v

pcc文件结构的容器可如图所示表示。v

pcc容器可包括metabox和moviebox。上面参照图24描述的meta盒和movie盒可如图所示具体地呈现。
[0426]
metabox包括grouplistbox,其包括entitytogroup和entitytogroupbox。组列表可包括组和/或组盒,各个实体可包括关于组或组盒的元数据。
[0427]
moviebox可包括一个或更多个trackbox。例如,可存在包含参数集或辅助信息的v

pcc轨道、包含几何的几何轨道、包含属性的属性轨道和包含占用图的占用轨道。
[0428]
v

pcc轨道可包括参考轨道的trackreference,并且可存在参考诸如pcca、pccg和pcco的类型盒的轨道参考。
[0429]
另外,v

pcc轨道可包括提供包括v

pcc样本实体的样本描述的样本表盒。
[0430]
几何轨道可包括样本表盒、样本描述、受限视频样本条目、受限方案信息、原始格式(“avc1”、“hvc1”等)、方案类型(“pccv”)和方案信息。
[0431]
属性轨道可包括样本表盒、样本描述、受限视频样本条目、受限方案信息、原始格式(“avc1”、“hvc1”等)、方案类型(“pccv”)和方案信息。
[0432]
占用轨道可包括样本表盒、样本描述、受限视频样本条目、受限方案信息、原始格式(“avc1”、“hvc1”)、方案类型(“pccv”)和方案信息。
[0433]
在根据实施方式的发送点云数据的方法中,包含点云数据的比特流基于文件来封装。文件包含点云数据的属性、占用和几何。
[0434]
根据实施方式的用于接收点云数据的装置基于文件将点云数据解封装。文件包含点云数据的属性、占用和几何。
[0435]
图26示出根据实施方式的几何/属性层与视频流之间的关系。
[0436]
图1的pcc编码器10002、图4的v

pcc编码处理、图18的v

pcc传输操作、图20和图21的v

pcc系统可生成图中所示的几何视频流。
[0437]
所有几何或属性层可存在于单独的视频流中。所有几何或属性层可分别存在于单个几何或属性视频流中。
[0438]
当提供几何视频数据的多个层时,如图的上部所示,几何视频数据的不同层可存在于单独的视频流中。属性视频数据也可按类似方式存在。
[0439]
当提供几何视频数据的多个层时,如图的下部所示,所有几何视频数据可存在于单个视频流中。属性视频数据也可按类似方式存在。
[0440]
组件轨道中的基本流之间的同步可由isobmff轨道定时结构(stts、ctts和cslg,或电影片段中的等同机制)处理。横跨不同视频编码组件轨道和v

pcc轨道对相同点云帧有贡献的样本可具有相同的组件时间。
[0441]
用于这些样本的v

pcc参数集可以是与帧的编排时间或在编排时间之前的解码时间相同的解码时间。v

pcc内容的轨道可在具有v

pcc特定分组4cc值(“vpcg”)的文件级entitytogroupbox vpccgroupbox内分组。vpccgroupbox可被提供作为访问容器中的v

pcc内容的入口点,并且可包括描述v

pcc内容的初始元数据。实体组可以是对轨道进行分组的项目分组。实体组中的实体可共享分组类型所指示的特定特性或具有特定关系。
[0442]
实体组在groupslistbox中指示。文件级metabox的groupslistbox中描述的实体组是指轨道或文件级项目。电影级metabox的groupslistbox中描述的实体组是指电影级项目。轨道级metabox的groupslistbox中描述的实体组是指轨道的轨道级项目。groupslistbox包含entitytogroupbox,各个entitytogroupbox描述一个实体组。
[0443]
组列表盒
[0444]
盒类型:“grpl”[0445]
容器:未包含在additionalmetadatacontainerbox中的metabox
[0446]
强制:否
[0447]
数量:零个或一个
[0448]
groupslistbox包含为文件描述的实体组。该盒包含完整盒的集合。各个盒被称为具有表示定义的分组类型的四字符码的entitytogroupbox。
[0449]
groupslistbox未包含在additionalmetadatacontainerbox中。
[0450]
当groupslistbox存在于文件级metabox中时,在与trackheaderbox中的轨道id值相同的文件级metabox中的iteminfobox中可能不存在项目id值。
[0451]
aligned(8)class groupslistbox extends box(

grpl’){
[0452]
}
[0453]
实体至组盒
[0454]
盒类型:下面以entitytogroupbox的grouping_type值指定
[0455]
容器:groupslistbox
[0456]
强制:否
[0457]
数量:一个或更多个
[0458]
entitytogroupbox描述实体组。
[0459]
盒类型(grouping_type)指示实体组的分组类型。各个grouping_type码与描述分组的语义关联。下面描述grouping_type值:
[0460]“altr”:映射到该分组的项目和轨道可相互替换,并且它们中的仅一个可播放(当映射项目和轨道是呈现的一部分时,例如可显示的项目或轨道)或者可通过另一方法处理(当映射项目或轨道不是呈现的一部分,而是例如元数据)。
[0461]
播放器可从实体id值(entity_id)的列表选择并处理第一实体。例如,其可将作为呈现的一部分的映射项目和轨道解码并播放。这满足应用需求。
[0462]
实体id值被映射至类型“altr”的仅一个分组。替代组的实体构成映射到类型“altr”的同一实体组的轨道和项目。
[0463]
注释:entitytogroupbox包含grouping_type的特定扩展。
[0464]
aligned(8)class entitytogroupbox(grouping_type,version,flags)
[0465]
extends fullbox(grouping_type,version,flags){
[0466]
unsigned int(32)group_id;
[0467]
unsigned int(32)num_entities_in_group;
[0468]
for(i=0;i<num_entities_in_group;i )
[0469]
unsigned int(32)entity_id;
[0470]
//the remaining data may be specified for a particular grouping_type
[0471]
}
[0472]
group_id是指派给特定分组的非负整数,并且不与其它entitytogroupbox的group_id相等,包含groupslistbox的层次级(文件、电影或轨道)的item_id值,或track_id值(当在文件级包含groupslistbox时)。
[0473]
num_entities_in_group指示映射到实体组的entity_id值的数量。
[0474]
entity_id被解析为项目(当在包含groupslistbox的层次级(文件、电影或轨道)中存在item_id等于entity_id的项目时)或轨道(当存在track_id等于entity_id的轨道并且在文件级包含groupslistbox时)。
[0475]
v

pcc组盒
[0476]
盒类型:“vpcg”[0477]
容器:grouplistbox
[0478]
强制:是
[0479]
数量:一个或更多个
[0480]
此盒提供包括v

pcc内容的轨道的列表。
[0481]
此盒提供包含v

pcc内容的轨道的列表。
[0482]
此盒中列出v

pcc内容特定信息,例如属性类型和层到相关轨道的映射。此信息提供了初始了解v

pcc内容的便捷方式。为了支持各种不同客户端能力的v

pcc内容的灵活配置,此盒中列出编码v

pcc组件的多个版本。此盒中承载v

pcc定义配置文件、层面和级别信息。
[0483]
aligned(8)class vpccgroupbox()extends entitytogroupbox(

vpcg’,
version,flags)
[0484]
{
[0485]
unsigned int(4)layer_count_minus1;
[0486]
if(layer_count_minus1>0){
[0487]
unsigned int(6)reserved=0;
[0488]
unsigned int(1)multiple_layer_streams_present_flag;
[0489]
unsigned int(2)multiple_layer_entities_present_flag
[0490]
}
[0491]
unsigned int(4)attribute_count;
[0492]
unsigned int(1)coverage_info_present_flag;
[0493]
unsigned int(1)boundingbox_info_present_flag;
[0494]
for(i=0;i<num_entities_in_group;i ){
[0495]
unsigned int(32)entity_id[i];
[0496]
unsigned int(3)reserved=0;
[0497]
unsigned int(5)data_type[i];
[0498]
if(data_type[i]==2){
[0499]
if(multiple_layer_streams_present_flag
[0500]
||multiple_layer_entities_present_flag){
[0501]
unsigned int(4)layer_index[i];
[0502]
unsigned int(1)pcm_video_flag[i];
[0503]
}
[0504]
}
[0505]
else if(data_type==3){
[0506]
unsigned int(1)reserved=0;
[0507]
unsigned int(7)attribute_index[i];
[0508]
unsigned int(4)attribute_type_id[i];
[0509]
unsigned int(8)attribute_dimension_minus1[i];
[0510]
if(multiple_layer_streams_present_flag
[0511]
||multiple_layer_entities_present_flag){
[0512]
unsigned int(4)layer_index[i];
[0513]
unsigned int(1)pcm_video_flag[i];
[0514]
unsigned int(3)reserved=0;
[0515]
}
[0516]
}
[0517]
unsigned int(4)reserved 0;
[0518]
}
[0519]
if(coverage_info_present_flag){
[0520]
pcccoveragestruct();
[0521]
}
[0522]
if(boundingbox_info_present_flag){
[0523]
pccboundingboxstruct();
[0524]
}
[0525]
vpcc_profile_tier_level()//defined in v

pcc spec
[0526]
}
[0527]
参照图26,图26的上部示出multiple_layer_streams_present_flag为1的情况,图26的下部示出multiple_layer_streams_present_flag为0的情况。
[0528]
layer_count_minus1加1指示用于对几何数据和属性数据进行编码的层数。
[0529]
multiple_layer_streams_present_flag等于0指示所有几何或属性层各自存在于单个几何或属性视频流中。multiple_layer_entities_present_flag等于1指示所有几何或属性层存在于单独的视频流中。
[0530]
图27示出根据实施方式的multiple_layer_entities_present_flag。
[0531]
图27的上部示出multiple_layer_entities_present_flag为1的情况,图27的下部示出multiple_layer_entities_present_flag为0的情况。
[0532]
multiple_layer_entities_present_flag等于0指示所有几何或属性层各自存在于单个几何或属性视频轨道中。sps_multiple_layer_entities_present_flag等于1指示所有几何或属性层存在于单独的视频轨道中。
[0533]
coverage_info_present_flag指示是否存在关于点云的覆盖信息。当coverage_info_present_flag为1时,存在pcccoveragestruct()。
[0534]
boundingbox_info_present_flag指示是否存在关于点云的边界框信息。当boundingbox_info_present_flag为1时,存在pcccoveragestruct()。
[0535]
attribute_count指示与点云有关的属性的数量。
[0536]
layer_index[i]指示参考的实体(轨道)中的几何或属性视频数据的层的索引。
[0537]
pcm_video_flag[i]等于1指示相关几何或属性视频轨道包含pcm编码点视频。vpcc_pcm_video_flag等于0指示相关几何或属性视频轨道包含非pcm编码点。
[0538]
attribute_index[i]指示参考的属性实体(或轨道)中承载的属性数据的索引。
[0539]
attribute_dimension_minus1[i]加1指示参考的实体中承载的属性的维度(即,通道的数量)。
[0540]
data_type指示参考的轨道中的pcc数据的类型。其可如下表所示呈现。
[0541]
v

pcc轨道类型
[0542]
值v

pcc轨道类型
[0543]
0 为iso使用预留
[0544]
1 v

pcc轨道(承载v

pcc补片序列数据)
[0545]
2 几何视频轨道
[0546]
3 属性视频轨道
[0547]
4 占用视频轨道
[0548]
5~15为iso使用预留
[0549]
当在包含groupslistbox的层次级(文件、电影或轨道)中存在item_id等于entity_id的项目时,entity_id[i]以项目解析。另选地,当存在track_id等于entity_id的
轨道并且在文件级包含groupslistbox时,entity_id[i]以轨道解析。entity_id指示关联的轨道的标识符。entity_id[i]指示与以下信息关联的轨道的标识符。
[0550]
attribute_type_id[i]指示参考的实体(或轨道)中承载的属性视频数据的属性类型。其可如下表所示指定。
[0551]
attribute_type_id属性类型
[0552]
0 纹理
[0553]
1 材料id
[0554]
2 透明度
[0555]
3 反射率
[0556]
4 法向
[0557]5…
预留
[0558]
15未指定
[0559]
vpcc_profile_tier_level()与如下指定的profile_tier_level()相同。
[0560]
profile_tier_level(){descriptor
[0561]
ptl_tier_flag u(1)
[0562]
ptl_profile_idc u(7)
[0563]
ptl_level_idc u(8)
[0564]
}
[0565]
ptl_tier_flag指示用于编码v

pcc内容的编解码器配置文件层面。
[0566]
ptl_profile_idc表示编码点云序列遵守的配置文件信息。
[0567]
ptl_level_idc指示编码点云序列遵守的编解码器配置文件的级别。
[0568]
v

pcc轨道
[0569]
各个v

pcc内容的入口点可由唯一v

pcc轨道表示。isobmff文件可包含多个v

pcc内容,因此在文件中可存在多个v

pcv轨道。v

pcc轨道由媒体处理程序类型“vpcc”标识。vpccsampleentry在轨道的样本描述中使用。
[0570]
样本条目
[0571]
样本条目类型:“vpc1”[0572]
容器:sampledescriptionbox(“stsd”)
[0573]
强制:否
[0574]
数量:0或1
[0575]
使用轨道样本条目类型“vpc1”。
[0576]
aligned(8)class vpccsampleentry()extends sampleentry(

vpc1’){
[0577]
unsigned int(4)numofsequenceparametersets;
[0578]
unsigned int(4)numofpatchsequenceparametersets;
[0579]
for(i=0;i<numofsequenceparametersets;i ){
[0580]
unsigned int(16)sequenceparametersetlength;
[0581]
bit(8*sequenceparametersetlength)sequenceparameterset;
[0582]
}
[0583]
for(i=0;i<numofpatchsequenceparametersets;i ){
[0584]
unsigned int(16)patchsequenceparametersetlength;
[0585]
bit(8*sequenceparametersetlength)patchsequenceparameterset;
[0586]
}
[0587]
}
[0588]
numofsequenceparametersets指示v

pcc序列参数集的数量。
[0589]
numofpatchsequenceparametersets指示vpcc补片序列参数集的数量。
[0590]
sequenceparametersetlength指示vpcc序列参数集的字节长度。sequenceparametersetunit包含序列参数集数据。
[0591]
patchsequenceparametersetlength指示vpcc补片序列参数集的字节长度。patchsequenceparametersetunit包含补片序列参数集数据。
[0592]
图28示出根据实施方式的包括在v

pcc轨道中的数据。
[0593]
由图1的文件/片段封装器10003/解封装器10007、图20的文件/片段封装器20004/解封装器20005、图21的文件/片段封装器21009、图22的文件/片段解封装器22000等生成(封装)和/或获取(解封装)的根据实施方式的v

pcc文件可包含样本。样本连同视频和/或音频数据一起包括在媒体数据中。
[0594]
下面描述具体样本格式。
[0595]
v

pcc轨道中的各个样本对应于单个点云帧。
[0596]
各种组件轨道中与此帧对应的样本具有与v

pcc轨道中的帧的v

pcc样本相同的编排时间。
[0597]
各个v

pcc样本包含具有仅包含patch_sequence_data v

pcc单元的限制的一个或更多个vpcc_unit实例。
[0598]
这里,vpcc_unit意指包括在v

pcc比特流中的单元。vpcc_unit包括头和有效载荷。有效载荷包含参数(元数据)信息以及关于v

pcc的几何、属性和占用信息。
[0599]
参照附图,包括在参数信息中的补片序列数据单元可包括补片序列参数集、几何帧参数集、属性帧参数集、几何补片参数集、属性补片参数集、补片帧参数集和补片帧层单元(包括补片帧头和补片帧数据单元)。
[0600]
根据实施方式的v

pcc轨道包括v

pcc视频轨道。
[0601]
可为这种视频编码轨道定义受限视频方案类型,因为在播放器侧没有重构点云的情况下显示从属性、几何或占用图轨道解码的帧没有意义。如用于此受限视频方案的方案类型的情况一样,v

pcc视频轨道使用4cc“pccv”。
[0602]
针对受限视频样本条目类型“resv”使用v

pcc视频方案指示解码的画面包含点云的属性、几何或占用图数据。
[0603]
v

pcc视频方案的使用由与restrictedschemeinfobox的schemetypebox中的“pccv”(视频基点云视频)相等的scheme_type指示。
[0604]
此盒是包含指示此轨道的pcc特定信息的盒的容器。vpccvideobox提供可应用于轨道中的所有样本的pcc特定参数。
[0605]
盒类型:“pccv”[0606]
容器:schemeinformationbox
[0607]
强制:当scheme_type等于“pccv”时,是
[0608]
数量:零个或一个
[0609]
aligned(8)class vpccvideobox extends box(

pccv’){
[0610]
pcccoverageinformationbox();
[0611]
pointcloudbbbox();
[0612]
spatialrelationship2dsourcebox();
[0613]
subpictureregionbox();
[0614]
}
[0615]
当轨道中存在pcccompositegroupbox或spatialrelationship2ddescriptionbox时,spatialrelationship2dsourcebox提供包括一个v

pcc组件的所有数据的合成画面的总宽度和高度(例如,几何、属性、占用图和subpctureregionbox提供对于合成画面与此轨道中承载的点云数据对应的2d区域信息)。
[0616]
根据实施方式的v

pcc轨道包含点云覆盖信息。
[0617]
此盒提供关于此轨道中承载的点云数据的覆盖范围的信息(当此盒被包含在vpccvideobox中时)。另选地,盒提供关于编排的点云数据的覆盖范围的信息(当盒包括在vpccgroupbox、pcccompositegroupbox或spatialrelationship2ddescriptionbox中时)。
[0618]
盒类型:“pcci”[0619]
容器:vpccvideobox、vpccgroupbox、pcccompositegroupbox或spatialrelationship2ddescriptionbox
[0620]
强制:否
[0621]
数量:零个或一个
[0622]
aligned(8)class pcccoverageinformationbox extends fullbox(

pcci’,0,0){
[0623]
pcccoveragestruct();
[0624]
}
[0625]
下面将描述点云覆盖结构。
[0626]
此结构中的字段提供覆盖范围,其由部分或全部点云数据所覆盖的一个或更多个区域表示。
[0627]
aligned(8)class pcccoveragestruct(){
[0628]
unsigned int(8)num_regions;
[0629]
for(i=0;i<num_regions;i ){
[0630]
unsigned int(8)coverage_shape_type;
[0631]
if(coverage_shape_type==1)boundingbox(i);
[0632]
else if((coverage_shape_type==2)sphereregionstruct(i);
[0633]
}
[0634]
}
[0635]
num_regions指示表示部分或全部点云数据的覆盖范围的区域的数量。
[0636]
coverage_shape_type指示表示点云覆盖范围的区域的形状。当其为1时,覆盖范围的形状为长方体。当coverage_shape_type为2时,覆盖范围的形状为球体。
[0637]
aligned(8)class sphereregionstruct(i){
[0638]
unsigned int(8)sphere_id[i];
[0639]
unsigned int(32)sphere_center_offset_x[i];
[0640]
unsigned int(32)sphere_center_offset_y[i];
[0641]
unsigned int(32)sphere_center_offset_z[i];
[0642]
unsigned int(32)sphere_radius[i];
[0643]
}
[0644]
sphere_id[i]指示笛卡尔坐标中的第i球体的标识符。
[0645]
sphere_center_offset_x[i]指示笛卡尔坐标中的第i球心的x偏移。
[0646]
sphere_center_offset_y[i]指示笛卡尔坐标中的第i球心的y偏移。
[0647]
sphere_center_offset_z[i]指示笛卡尔坐标中的第i球心的z偏移。
[0648]
sphere_radius[i]指示笛卡尔坐标中的第i球体的半径。
[0649]
根据实施方式的v

pcc轨道包含点云边界框信息。
[0650]
此盒提供关于此轨道中承载的点云数据的边界框信息的信息(当该盒包含在vpccvideobox中时)或编排的点云数据的边界框信息(当该盒被包含在vpccgroupbox、pcccompositegroupbox或spatialrelationship2ddescriptionbox中时)。
[0651]
盒类型:“bbib”[0652]
容器:vpccvideobox、vpccgroupbox、pcccompositegroupbox或spatialrelationship2ddescriptionbox
[0653]
强制:否
[0654]
数量:零个或一个
[0655]
aligned(8)class pointcloudbbbox extends fullbox(

bbib’,0,0){
[0656]
pccboundingboxstruct();
[0657]
}
[0658]
图29示出根据实施方式的边界框。
[0659]
当作为点云数据的对象的目标位于3d空间中时,根据实施方式的方法/装置可基于坐标系以盒的形式呈现点云对象。此盒被称为边界框。
[0660]
图1的点云视频编码器10002、图1的点云视频解码器10008、图4的v

pcc编码处理的全部/部分、图15的视频/图像编码器100、图16的v

pcc解码处理的全部/部分、图17的视频/图像解码器200、图18的v

pcc发送终端的全部/部分(例如,几何图像生成器18002、纹理图像生成器18004、编码预处理器18003、几何重构器、视频编码器18006等)、v

pcc接收终端的全部/部分(例如,视频解码器19001、几何重构器19003、纹理重构器19005等)、图20至图22的v

pcc系统的全部/部分以及通过图23的网络连接来链接装置的处理等可生成边界框,并且可基于边界框执行上述操作。
[0661]
根据实施方式的方法/装置可基于边界框对点云数据进行编码(解码)。与下述边界框有关的信令信息(元数据或参数集等)可包括在图4的补片信息、占用图、辅助补片信息等中,或者包括在图16的占用图、辅助补片信息等中,并且可由图18的元数据编码器18005编码并由图19的元数据解码器19002解码。另外,此信息可被包括在由点云预处理器(或处理器)20001生成的元数据中,并且可由文件/片段封装器20004、21009以文件形式封装和传送,如图20和图21、图22所示。该信息可包括在所接收的比特流中并由文件/片段解封装器
22000和视频/图像解码器22001、22002获取,并且可由点云处理器22003和点云渲染器使用,如图22所示。
[0662]
下述信令信息(或元数据)可基于文件类型由v

pcc容器承载,如图25所示。
[0663]
pcc边界框信息结构
[0664]
该图可包括关于点云对象的边界框的信息或者关于点云对象的部分区域的边界框的信息。
[0665]
aligned(8)class pccboundingboxstruct(){
[0666]
unsigned int(8)num_boundingbox;
[0667]
for(i=0;i<num_boundingbox;i ){
[0668]
boundingbox(i);
[0669]
2dregions(i);
[0670]
}
[0671]
}
[0672]
aligned(8)class boundingbox(i){
[0673]
unsigned int(8)boundingbox_id[i];
[0674]
boundingboxoffset(i);
[0675]
boundingboxscale(i);
[0676]
boundingboxvolume(i);
[0677]
}
[0678]
aligned(8)class boundingboxoffset(i){
[0679]
unsigned int(32)boundingbox_offset_x[i];
[0680]
unsigned int(32)boundingbox_offset_y[i];
[0681]
unsigned int(32)boundingbox_offset_z[i];
[0682]
}
[0683]
aligned(8)class boundingboxscale(i){
[0684]
unsigned int(32)boundingbox_scale_x_factor[i];
[0685]
unsigned int(32)boundingbox_scale_y_factor[i];
[0686]
unsigned int(32)boundingbox_scale_z_factor[i];
[0687]
}
[0688]
aligned(8)class boundingboxvolume(i){
[0689]
unsigned int(32)boundingbox_size_x_width[i];
[0690]
unsigned int(32)boundingbox_size_y_height[i];
[0691]
unsigned int(32)boundingbox_size_z_depth[i];
[0692]
}
[0693]
aligned(8)class 2dregions(i){
[0694]
unsigned int(8)num_regions;
[0695]
for(k=0;k<num_regions;k ){
[0696]
rectregion(k);
[0697]
}
[0698]
}
[0699]
aligned(8)class rectregion(i){
[0700]
unsigned int(16)object_x[i];
[0701]
unsigned int(16)object_y[i];
[0702]
unsigned int(16)object_width[i];
[0703]
unsigned int(16)object_heigh[i]t;
[0704]
}
[0705]
num_boundingbox指示边界框的数量。
[0706]
bounding_box_id[i]指示笛卡尔坐标系中的第i边界框的标识符。
[0707]
bounding_box_offset_x[i]指示笛卡尔坐标中的第i边界框的x偏移。
[0708]
bounding_box_offset_y[i]指示笛卡尔坐标中的第i边界框的y偏移。
[0709]
bounding_box_offset_z[i]指示笛卡尔坐标中的第i边界框的z偏移。
[0710]
bounding_box_x_scale_factor[i]指示笛卡尔坐标中的第i边界框的x轴的比例因子。
[0711]
bounding_box_y_scale_factor[i]指示笛卡尔坐标中的第i边界框的y轴的比例因子。
[0712]
bounding_box_z_scale_factor[i]指示笛卡尔坐标中的第i边界框的z轴的比例因子。
[0713]
bounding_box_size_x_width[i]指示笛卡尔坐标中的第i边界框的宽度。
[0714]
bounding_box_size_y_height[i]指示笛卡尔坐标中的第i边界框的高度。
[0715]
bounding_box_size_z_depth[i]指示笛卡尔坐标中的第i边界框的深度。
[0716]
num_regions指示此边界框内的点云数据映射至画面的区域的数量。
[0717]
rectregion提供解码的画面中映射有点云数据的2d矩形区域信息(x偏移和y偏移以及宽度和高度)。
[0718]
图30示出根据实施方式的点云对象的分段。
[0719]
根据实施方式的方法/装置可对点云对象进行分段和处理。例如,图1的文件/片段封装器10003和文件/片段解封装器10007可分别封装(生成)和/或解封装(解析)点云对象。另外,根据实施方式的方法/装置可基于图4的压缩的比特流和/或图15的比特流来对点云对象进行分段/处理。根据实施方式的方法/装置可基于分段的点云对象来执行图16的解码处理和/或处理图17的比特流。根据实施方式的图18的发送器18008可发送关于分段的点云对象的数据。根据实施方式的图19的接收器可接收关于分段的点云对象的数据。图20的文件/片段封装器20004、图21的文件/片段封装器21009和/或图22的文件/片段解封装器22000可处理点云对象的分段。
[0720]
压缩成v

pcc数据的点云对象可包括3d边界框(或边界框)。边界框可利用用于对点云数据进行编码的比特来定义。为了点云数据的空间随机访问,边界框可被分成更小的盒(或网格)。根据实施方式的信令信息包括划分的边界框和用于空间随机访问的信息。
[0721]
v

pcc组件轨道分组
[0722]
可在一个或更多个v

pcc视频轨道中承载点云数据的同一v

pcc组件。如下所述,一个点云对象的纹理属性可被分成三个部分,各个部分可在单独的轨道中承载。
[0723]
track_group_type等于“pccg”的trackgrouptypebox指示此轨道包括部分v

pcc组件(例如,几何、属性、占用图)。pcccompositegroupbox中具有track_group_id的相同值的轨道形成一个v

pcc组件(例如,几何、属性或占用图)。
[0724]
aligned(8)class pcccompositegroupbox extends trackgrouptypebox(

pccg’){
[0725]
pcccompositeinfobox();
[0726]
pcccoverageinformationbox();
[0727]
pointcloudbbbox();
[0728]
spatialrelationship2dsourcebox();
[0729]
subpictureregionbox();
[0730]
}
[0731]
aligned(8)class pcccompositeinfobox()extends fullbox(

pcgi’,0,0){
[0732]
unsigned int(5)data_type;
[0733]
unsigned int(3)layer_index;
[0734]
if(data_type==3){
[0735]
unsigned int(1)reserved=0;
[0736]
unsigned int(7)attribute_index;
[0737]
unsigned int(4)attribute_type_id;
[0738]
unsigned int(8)attribute_dimension_minus1;
[0739]
}
[0740]
}
[0741]
data_type可指示轨道中的pcc数据的类型如下。
[0742]
v

pcc轨道类型
[0743]
值v

pcc轨道类型
[0744]
0 为iso使用预留
[0745]
1 v

pcc轨道(承载v

pcc补片序列数据)
[0746]
2 几何视频轨道
[0747]
3 属性视频轨道
[0748]
4 占用视频轨道
[0749]
5~15为iso使用预留
[0750]
layer_index指示轨道中的几何或属性视频数据的层的索引。
[0751]
attribute_index指示轨道中承载的属性数据的索引。
[0752]
attribute_dimension_minus1加1指示轨道中承载的属性的维度(即,通道的数量)。例如,此句法可用信号通知存在用于一个纹理的多个颜色值。
[0753]
attribute_type_id指示轨道中的属性数据的属性类型。
[0754]
attribute_type_id属性类型
[0755]
0 纹理
[0756]
1 材料id
[0757]
2 透明度
[0758]
3 反射率
[0759]
4 法向
[0760]
5...预留
[0761]
15未指定
[0762]
aligned(8)class spatialrelationship2dsourcebox extends fullbox(

2dsr’,0,0){
[0763]
unsigned int(32)total_width;
[0764]
unsigned int(32)total_height;
[0765]
unsigned int(32)source_id;
[0766]
}
[0767]
aligned(8)class subpictureregionbox extends fullbox(

sprg’,0,0){
[0768]
unsigned int(16)object_x;
[0769]
unsigned int(16)object_y;
[0770]
unsigned int(16)object_width;
[0771]
unsigned int(16)object_height;
[0772]
bit(14)reserved=0;
[0773]
unsigned int(1)track_not_alone_flag;
[0774]
unsigned int(1)track_not_mergable_flag;
[0775]
}
[0776]
aligned(8)class spatialrelationship2ddescriptionbox extends trackgrouptypebox(

2dcc’){
[0777]
//track_group_id is inherited from trackgrouptypebox;
[0778]
spatialrelationship2dsourcebox();
[0779]
subpictureregionbox();
[0780]
}
[0781]
total_width以像素单元指定spatialrelationship2ddescriptionbox轨道组的坐标系中的最大宽度。在具有track_group_id的相同值的spatialrelationship2ddescriptionbox的所有实例中total_width的值应相同。
[0782]
total_height以像素单元指定spatialrelationship2ddescriptionbox轨道组的坐标系中的最大高度。在具有track_group_id的相同值的spatialrelationship2ddescriptionbox的所有实例中total_height的值应相同。
[0783]
source_id参数提供源的唯一标识符。其隐含地定义了与该源关联的坐标系。
[0784]
object_x指定在对应空间关系轨道组所指定的坐标系内此轨道中的样本的左上角的水平位置。
[0785]
object_y指定在对应空间关系轨道组所指定的坐标系内此轨道中的样本的左上角的垂直位置。
[0786]
object_width指定在对应空间关系轨道组所指定的坐标系内此轨道中的样本的宽度。
[0787]
object_height指定在对应空间关系轨道组所指定的坐标系内此轨道中的样本的
高度。
[0788]
track_not_alone_flag等于1指示当前子画面轨道旨在在没有属于分组类型“2dcc”的同一轨道组的至少一个其它子画面轨道的情况下单独呈现。
[0789]
track_not_mergable_flag等于1指示当前子画面轨道中承载的视频比特流可不与属于分组类型“2dcc”的同一轨道组的任何其它子画面轨道中承载的视频比特流合并。
[0790]
动态边界框信息
[0791]
点云对象可随时间移动。动态边界框定时元数据轨道指示点云数据的3d边界框信息随时间动态地改变。例如,可将动态边界框信息用信号通知为定时元数据。
[0792]
使用轨道样本条目类型“dybb”。此样本条目类型的样本条目可指定如下:
[0793]
class dynamicbbsampleentry extends metadatasampleentry(

dybb’){
[0794]
unsigned int(8)num_boundingbox;
[0795]
for(i=0;i<num_boundingbox;i ){
[0796]
boundingbox(i);
[0797]
2dregions(i);
[0798]
unsigned int(1)dynamic_bb_offset_flag[i];
[0799]
unsigned int(1)dynamic_bb_scale_flag[i];
[0800]
unsigned int(1)dynamic_bb_volume_flag[i];
[0801]
unsigned int(1)dynamic_2d_regions_flag[i];
[0802]
bit(5)reserved=0;
[0803]
}
[0804]
unsigned int(32)overall_bb_offset_x;
[0805]
unsigned int(32)overall_bb_offset_y;
[0806]
unsigned int(32)overall_bb_offset_z;
[0807]
unsigned int(32)overall_bb_scale_x;
[0808]
unsigned int(32)overall_bb_scale_y;
[0809]
unsigned int(32)overall_bb_scale_z;
[0810]
unsigned int(32)overall_bb_x_width;
[0811]
unsigned int(32)overall_bb_y_height;
[0812]
unsigned int(32)overall_bb_z_depth;
[0813]
}
[0814]
num_boundingbox指示轨道中承载的边界框的数量。
[0815]
boundingbox(i)指示点云的第i初始边界框信息。
[0816]
2dregions(i)指示第i边界框内的点云被投影在编码画面中的一个或更多个矩形区域。
[0817]
dynamic_bb_offset_flag[i]等于0指示点云的第i边界框的偏移在参考此样本条目的所有样本中保持不变。dynamic_bb_offset_flag[i]等于1指示在样本中指示点云的第i边界框的偏移。
[0818]
dynamic_bb_scale_flag[i]等于0指示点云的第i边界框的所有轴的比例因子在参考此样本条目的所有样本中保持不变。dynamic_bb_scale_flag[i]等于1指示在样本中
指示点云的第i边界框的所有轴的比例因子。
[0819]
dynamic_bb_volume_flag[i]等于0指示点云的第i边界框的宽度、高度或深度在参考此样本条目的所有样本中保持不变。dynamic_bb_volume_flag[i]等于1指示在样本中指示点云的第i边界框的宽度、高度或深度。
[0820]
dynamic_2d_regions_flag[i]等于0指示第i边界框内的点云被投影在编码画面中的一个或更多个矩形区域在参考此样本条目的所有样本中保持不变。dynamic_2d_regions_flag[i]等于1指示在样本中指示第i边界框内的点云被投影在编码画面中的一个或更多个矩形区域。
[0821]
overall_bb_offset_x、overall_bb_offset_y和overall_bb_offset_z指示总边界框的偏移(总边界框包含在参考此样本条目的所有样本中用信号通知的所有边界框)。
[0822]
overall_bb_scale_x、overall_bb_scale_y和overall_bb_scale_z指示总边界框的轴的比例因子。
[0823]
overall_bb_x_width、overall_bb_y_height和overall_bb_z_depth指示总边界框的宽度、高度或深度。
[0824]
此样本条目类型(“dybb”)的样本句法可指定如下:
[0825]
aligned(8)dynamicbbsample(){
[0826]
for(i=0;i<num_boundingbox;i ){
[0827]
boundingbox(i);
[0828]
if(dynamic_bb_offset_flag[i])boundingboxoffset(i);
[0829]
if(dynamic_bb_scale_flag[i])boundingboxscale(i);
[0830]
if(dynamic_bb_volume_flag[i])boundingboxvolume(i);
[0831]
if(dynamic_2d_regions_flag[i])2dregions(i);
[0832]
}
[0833]
}
[0834]
boundingbox(i)指示点云的第i边界框信息。
[0835]
dynamic_bb_offset_flag[i]等于1指定第i边界框(boundboxoffset(i))的偏移。dynamic_bb_scale_flag[i]等于1指定第i边界框(boundboxscale(i))的轴的比例因子。
[0836]
dynamic_bb_volume_flag[i]等于1指定第i边界框(boundboxvolume(i))的宽度、高度或深度。
[0837]
dynamic_2d_regions_flag[i]等于1指定第i边界框内的点云被投影在编码画面(2dregions(i))中的一个或更多个矩形区域。例如,此句法可用信号通知与边界框匹配(对应)的2d区域。
[0838]
当该定时元数据轨道链接到具有“cdsc”轨道参考的一个或更多个媒体轨道时,其单独地描述各个媒体轨道。例如,各个pcc组件轨道(例如,几何、属性、占用图)可单独地与该定时元数据轨道链接,以指示随时间动态改变3d边界框信息。
[0839]
另选地,当一个或更多个轨道承载与相同的点云对象关联的数据时,这些轨道可属于同一轨道组。包含“cdtg”轨道参考的该定时元数据轨道共同描述参考的媒体轨道和轨道组。“cdtg”轨道参考可存在于该定时元数据轨道中。包含对track_group_id值的“cdtg”轨道参考的该定时元数据轨道描述轨道组中的轨道。
[0840]
根据实施方式的方法/装置提供v

pcc数据的部分传送和访问。对于v

pcc数据的空间访问,提出了表示pcc数据的3d空间部分的元数据。
[0841]
用户针对根据实施方式的方法/装置消费的内容可包括多个点云对象和/或点云对象的部分。当用户打算仅消费点云对象的特定部分时,点云对象的其它不可见部分不需要处理。因此,需要一种播放器选择性地访问和识别点云对象的部分的方法。
[0842]
如图所示,点云对象可在空间上被分成多个3d空间区域(或3d格栅)。即,点云的3d边界框可被分成一个或更多个3d格栅。这里,3d格栅可由x偏移、y偏移和z偏移、宽度、高度和深度表示。
[0843]
一个或更多个轨道可包括v

pcc组件。例如,可存在与同一3d格栅对应的几何、属性和组件。为了v

pcc数据的部分访问,与根据实施方式的方法/装置对应的播放器可识别空间区域,访问承载该区域中的点云数据的轨道的集合。
[0844]
另外,当点云对象正在移动时,空间区域信息可随时间改变。根据实施方式的方法/装置提供一种动态地改变区域信息的信令方案。
[0845]
以下,将描述空间区域信息的结构。
[0846]
根据实施方式,spatialregionstruct()和spatialregion3dsourcestruct()提供关于空间区域的信息,包括空间区域的x偏移、y偏移和z偏移。
[0847]
aligned(8)class spatialregionstruct(){
[0848]
signed int(32)region_offset_x;
[0849]
signed int(32)region_offset_y;
[0850]
signed int(32)region_offset_z;
[0851]
unsigned int(32)region_size_width;
[0852]
unsigned int(32)region_size_height;
[0853]
unsigned int(32)region_size_depth;
[0854]
}
[0855]
aligned(8)class spatialregion3dsourcestruct(){
[0856]
signed int(32)source_origin_x;
[0857]
signed int(32)source_origin_y;
[0858]
signed int(32)source_origin_z;
[0859]
unsigned int(32)source_size_width;
[0860]
unsigned int(32)source_size_height;
[0861]
unsigned int(32)source_size_depth;
[0862]
}
[0863]
source_origin_x、source_origin_y和source_origin_z分别指示源边界框在坐标系中的原点。在本公开中,根据实施方式,坐标系可指笛卡尔坐标系。
[0864]
source_size_width、source_size_height和source_size_depth分别指示源边界框在坐标系中的宽度、高度和深度。
[0865]
region_offset_x、region_offset_y和region_offset_z分别指示与源边界框的3d空间部分对应的空间区域在坐标系中的x偏移、y偏移和z偏移。
[0866]
region_size_width、region_size_height和region_size_depth分别指示与源边
界框的3d空间部分对应的空间区域在坐标系中的宽度、高度和深度。
[0867]
如果空间区域与具有样本条目类型“dysr”的定时元数据轨道关联,则空间区域的x偏移、y偏移和z偏移、宽度、高度和深度随时间动态地改变。否则,空间区域是静态的。在先前情况下,在具有样本条目类型“dysr”的关联定时元数据轨道中用信号通知动态空间区域参数。
[0868]
空间区域轨道分组
[0869]
track_group_type等于“3drg”的trackgrouptypebox指示此轨道属于具有3d空间关系(与例如源边界框的3d空间部分对应)的一组轨道。
[0870]
对于track_group_type“3drg”,属于同一空间区域的轨道具有track_group_id的相同值,并且来自一个空间区域的轨道的track_group_id不同于来自另一空间区域的轨道的track_group_id。
[0871]
aligned(8)class spatialregiongroupbox extends trackgrouptypebox(

3drg’){
[0872]
spatialregionstruct();
[0873]
spatialregion3dsourcestruct();
[0874]
}
[0875]
在track_group_type等于“3drg”的trackgrouptypebox中具有track_group_id的相同值的轨道属于同一空间区域。track_group_type等于“3drg”的trackgrouptypebox中的track_group_id用作空间区域的标识符。
[0876]
spatialregionstruct()和spatialregion3dsourcestruct()如上所述指定。
[0877]
动态空间区域信息
[0878]
空间区域定时元数据轨道表示空间区域信息,即,随时间动态改变的区域的x偏移、y偏移和z偏移、宽度、高度和深度。
[0879]
样本条目
[0880]
class dynamicspatialregionsampleentry extends metadatasampleentry(

dysr’){
[0881]
spatialregion3dsourcestruct();
[0882]
spatialregionstruct();
[0883]
}
[0884]
spatialregionstruct()如上所述指定。即,其指示空间区域的x偏移、y偏移和z偏移、宽度、高度和深度。
[0885]
spatialregion3dsourcestruct()如上所述指定。然而,其可指示源边界框信息被应用于参考该样本条目的所有样本。
[0886]
样本格式
[0887]
该样本条目类型(“dysr”)的样本句法被指定如下:
[0888]
aligned(8)dynamicspatialregionsample(){
[0889]
spatialregionstruct();
[0890]
}
[0891]
spatialregionstruct()的语义如上所述指定。
[0892]
动态空间区域定时元数据轨道包括“cdsc”轨道,其参考表示关联的空间区域轨道组的track_group_id。
[0893]
根据实施方式的方法/装置可如下提供边界框的部分访问。
[0894]
aligned(8)class 3danchorpoint(){
[0895]
unsigned int(16)anchor_x;
[0896]
unsigned int(16)anchor_y;
[0897]
unsigned int(16)anchor_z;
[0898]
}
[0899]
aligned(8)class cuboidregionstruct(){
[0900]
unsigned int(16)cuboid_delta_x;
[0901]
unsigned int(16)cuboid_delta_y;
[0902]
unsigned int(16)cuboid_delta_z;
[0903]
}
[0904]
aligned(8)class 3dspatialregionstruct(dimensions_included_flag){
[0905]
unsigned int(16)3d_region_id;
[0906]
3danchorpoint();
[0907]
if(dimensions_included_flag){
[0908]
cuboidregionstruct();
[0909]
}
[0910]
}
[0911]
aligned(8)class 3dboundingboxstruct(){
[0912]
unsigned int(16)bb_delta_x;
[0913]
unsigned int(16)bb_delta_y;
[0914]
unsigned int(16)bb_delta_z;
[0915]
}
[0916]
3dspatialregionstruct和3dboundingboxstruct提供关于点云数据的空间区域的信息。例如,该信息可包括3d空间中的空间区域的x偏移、y偏移和z偏移和该区域的宽度、高度和深度以及点云数据的3d边界框信息。
[0917]
3d_region_id是空间区域的标识符。
[0918]
anchor_x、anchor_y和anchor_z分别指示与点云数据的3d空间部分对应的空间区域在笛卡尔坐标系中的x、y和z坐标值。
[0919]
cuboid_delta_x、cuboid_delta_y和cuboid_delta_z分别指示长方体区域在笛卡尔坐标系中的x轴、y轴和z轴上的维度。
[0920]
bb_delta_x、bb_delta_y和bb_delta_z分别指示点云数据的3d边界框相对于笛卡尔坐标系中的原点(0,0,0)在x轴、y轴和z轴上的扩展。
[0921]
dimensions_included_flag指示是否用信号通知空间区域的维度。
[0922]
根据实施方式的方法/装置可提供动态空间区域信息。
[0923]
当v

pcc轨道具有样本条目类型“dysr”的关联定时元数据轨道时,为v

pcc轨道所承载的点云流定义的3d空间区域被视为动态区域。例如,空间区域信息可随时间动态地改
变。
[0924]
关联定时元数据轨道包括参考承载图集流的v

pcc轨道的“cdsc”轨道。
[0925]
aligned(8)class dynamic3dspatialregionsampleentry extends metadatasampleentry(

dysr’){
[0926]
vpccspatialregionsbox();
[0927]
}
[0928]
}
[0929]
}
[0930]
aligned(8)dynamicspatialregionsample(){
[0931]
unsigned int(16)num_regions;
[0932]
for(i=0;i<num_regions;i ){
[0933]
3dspatialregionstruct(dimensions_included_flag);
[0934]
}
[0935]
}
[0936]
num_regions指示样本中用信号通知的3d空间区域的数量。其可不等于可能区域的总数。在更新空间区域的位置和/或维度的样本内可存在空间区域。
[0937]
3dspatialregionstruct()如上所述指定。dimensions_included_flag等于0可指示不用信号通知维度,并且可指示先前针对同一区域用信号通知维度。例如,其可表示具有相同3d_region_id的3dspatialregionstruct的先前实例。
[0938]
利用根据实施方式的方法/装置,可用信号通知v

pcc数据列表(v

pcc分组盒),从而在多个流或轨道中发送点云数据。
[0939]
另外,根据实施方式的方法/装置可针对点云数据边界框信息动态地改变的情况提供用于信令的元数据轨道。
[0940]
因此,在作为点云数据的目标的对象为静态的情况和/或该对象随时间动态改变的情况下均可执行发送/接收。
[0941]
根据实施方式的方法/装置可提供用于映射有点云数据的画面中的2d区域信息的信令的元数据轨道。
[0942]
由于上述实施方式,根据实施方式的用于接收点云数据的方法/装置可根据数据类型和/或发送/接收环境经由一个或更多个流在一个或更多个轨道中有效地接收点云数据的多个层。
[0943]
另外,根据实施方式的用于接收点云数据的方法/装置可接收和显示随时间动态改变的对象的点云数据。为此,根据实施方式的发送/接收方法/装置可使用定时元数据轨道(或信令信息)来发送和接收动态边界框信息。根据实施方式的接收方法/装置可获取关于动态边界框的信息,并且获取关于包括边界框的盒的信息。由此,接收装置或用户可有效地仅接收和呈现期望的动态对象的全部和/或部分。
[0944]
此外,根据实施方式的发送方法/装置可向接收方法/装置传送关于与边界框对应的2d区域的信息,因此根据实施方式的接收装置可访问与边界框对应的2d区域。
[0945]
根据实施方式的点云数据发送方法(或接收装置)的点云数据包括空间划分的区域。
[0946]
在根据实施方式的发送点云数据的方法中,包括点云数据的比特流基于文件来封装,并且文件包含关于随时间动态改变的对象的点云数据的信令信息。信令信息包括边界框的x轴偏移、y轴偏移和z轴偏移。
[0947]
根据实施方式的点云数据接收装置基于文件将包括点云数据的比特流解封装,并且文件包含关于随时间动态改变的对象的点云数据的信令信息。
[0948]
图31示出v

pcc比特流的示例性配置。
[0949]
图1的发送装置10000、点云视频编码器10002、文件/片段封装器10003、接收装置10005、文件/片段解封装器10007和点云视频解码器10008、图4的v

pcc编码处理的复用器40013、图15的视频/图像编码器100和熵编码器190、图16的v

pcc解码处理的解复用器16000、图17的视频/图像解码器200、图18的v

pcc发送终端的复用器18007和发送器18008、图19的v

pcc接收终端的接收器和解复用器19000和图31的v

pcc系统可生成/编码/发送/接收/解码图31的v

pcc比特流。
[0950]
根据实施方式的v

pcc比特流可具有用于流传送的isobmff碎片化设计。
[0951]
例如,根据实施方式的v

pcc比特流可通过v

pcc编码处理来生成。v

pcc比特流包括一个或更多个v

pcc单元。
[0952]
v

pcc单元包括v

pcc单元头和v

pcc单元有效载荷。
[0953]
v

pcc单元有效载荷的类型包括序列参数集、补片序列数据、占用视频数据、几何视频数据和/或属性视频数据。
[0954]
补片序列数据包括补片序列数据单元类型。
[0955]
补片序列数据单元类型包括序列参数集、几何参数集、几何补片参数集、帧参数集、属性参数集和/或属性补片参数集以及补片数据f0至fk。
[0956]
当电影碎片用于v

pcc轨道碎片中的v

pcc内容的传送时,在包括在moviefragmentbox中的类型“vpgd”的samplegroupdescriptionbox中承载参数集信息。
[0957]
aligned(8)class vpccsamplegroupentry()extends samplegroupdescriptionentry(

vpgd’){
[0958]
unsigned int(16)sequenceparametersetlength;
[0959]
bit(8*sequenceparametersetlength)sequenceparameterset;
[0960]
unsigned int(16)patchsequenceparametersetlength;
[0961]
bit(8*sequenceparametersetlength)patchsequenceparameterset;
[0962]
}
[0963]
sequenceparametersetlength指示vpcc序列参数集的字节长度。sequenceparametersetunit包含序列参数集数据。
[0964]
patchsequenceparametersetlength指示vpcc补片序列参数集的字节长度。patchsequenceparametersetunit包含补片序列参数集数据。
[0965]
v

pcc单元句法
[0966]
vpcc_unit(){descriptor
[0967]
vpcc_unit_header()
[0968]
vpcc_unit_payload()
[0969]
}
[0970]
v

pcc单元头句法
[0971]
vpcc_unit_header(){descriptor
[0972]
vpcc_unit_type u(5)
[0973]
if(vpcc_unit_type==vpcc_avd||vpcc_unit_type==vpcc_gvd||
[0974]
vpcc_unit_type==vpcc_ovd||vpcc_unit_type==vpcc_psd)
[0975]
vpcc_sequence_parameter_set_id u(4)
[0976]
if(vpcc_unit_type==vpcc_avd){
[0977]
vpcc_attribute_type u(2)
[0978]
vpcc_attribute_index u(5)
[0979]
if(sps_multiple_layer_streams_present_flag){
[0980]
vpcc_layer_index u(4)
[0981]
pcm_separate_video_data(11)
[0982]
}
[0983]
else
[0984]
pcm_separate_video_data(15)
[0985]
}else if(vpcc_unit_type==vpcc_gvd){
[0986]
if(sps_multiple_layer_streams_present_flag){
[0987]
vpcc_layer_index u(4)
[0988]
pcm_separate_video_data(18)
[0989]
}
[0990]
else
[0991]
pcm_separate_video_data(22)
[0992]
}else if(vpcc_unit_type==vpcc_ovd||vpcc_unit_type==vpcc_psd){
[0993]
vpcc_reserved_zero_23bits u(23)
[0994]
}else
[0995]
vpcc_reserved_zero_27bits u(27)
[0996]
}
[0997]
vpcc_unit_type指示v

pcc单元类型如下。
[0998]
v

pcc单元类型
[0999]
vpcc_unit_type 标识符 v

pcc单元类型描述
[1000]
0 vpcc_sps 序列参数集 序列级参数
[1001]
1 vpcc_psd 补片序列数据 补片序列信息
[1002]
2 vpcc_ovd 占用视频数据 占用信息
[1003]
3 vpcc_gvd 几何视频数据 几何信息
[1004]
4 vpcc_avd 属性视频数据 属性信息
[1005]5…
vpcc_rsvd预留

[1006]
vpcc_sequence_parameter_set_id指定活动vpcc sps的sps_sequence_parameter_set_id的值。vpcc_sequence_parameter_set_id的值应在0至15(含)的范围内。
[1007]
vpcc_attribute_type指示属性视频数据单元中承载的属性数据的类型。例如,类
型可包括颜色、反射率和材料。
[1008]
vpcc_attribute_type属性类型
[1009]
0 纹理
[1010]
1 材料id
[1011]
2 透明度
[1012]
3 反射率
[1013]
4 法向
[1014]5…ꢀ
预留
[1015]
15 未指定
[1016]
vpcc_attribute_index指示属性视频数据单元中承载的属性数据的索引。
[1017]
vpcc_layer_index指示当前层的索引。
[1018]
v

pcc单元有效载荷句法
[1019]
vpcc_unit_payload(){descriptor
[1020]
if(vpcc_unit_type==vpcc_sps)
[1021]
sequence_parameter_set()
[1022]
else if(vpcc_unit_type==vpcc_psd)
[1023]
patch_sequence_data_unit()
[1024]
else if(vpcc_unit_type==vpcc_ovd||vpcc_unit_type==vpcc_gvd||
[1025]
vpcc_unit_type==vpcc_avd)
[1026]
video_data_unit()
[1027]
}
[1028]
vpcc序列参数集单元包含以下信息。
[1029]
sequence_parameter_set(){descriptor
[1030]
profile_tier_level()
[1031]
sps_sequence_parameter_set_id u(4)
[1032]
sps_frame_width u(16)
[1033]
sps_frame_height u(16)
[1034]
sps_avg_frame_rate_present_flag u(1)
[1035]
if(sps_avg_frame_rate_present_flag)
[1036]
sps_avg_frame_rate u(16)
[1037]
sps_enhanced_occupancy_map_for_depth_flagu(1)
[1038]
sps_geometry_attribute_different_layer_flag u(4)
[1039]
if(sps_geometry_attribute_different_layer_flag)
[1040]
sps_layer_count_geometry_minus1 u(4)
[1041]
else
[1042]
sps_layer_count_minus1 u(4)
[1043]
if(sps_layer_count_minus1>0)
[1044]
sps_multiple_layer_streams_present_flag u(1)
[1045]
sps_layer_absolute_coding_enabled_flag[0]=1
[1046]
for(i=0;i<sps_layer_count_minus1;i ){
[1047]
sps_layer_absolute_coding_enabled_flag[i 1]u(1)
[1048]
if(sps_layer_absolute_coding_enabled_flag[i 1]==0){
[1049]
if(i>0)
[1050]
sps_layer_predictor_index_diff[i 1]ue(v)
[1051]
else
[1052]
sps_layer_predictor_index_diff[i 1]=0
[1053]
}
[1054]
}
[1055]
sps_pcm_patch_enabled_flag u(1)
[1056]
if(sps_pcm_patch_enabled_flag)
[1057]
sps_pcm_separate_video_present_flag u(1)
[1058]
occupancy_parameter_set()
[1059]
geometry_parameter_set()
[1060]
sps_attribute_count u(16)
[1061]
for(i=0;i<sps_attribute_count;i )
[1062]
{
[1063]
if(sps_geometry_attribute_different_layer_flag)
[1064]
sps_layer_count_attribute_minus1[i]u(4)
[1065]
attribute_parameter_set(i)
[1066]
}
[1067]
sps_patch_sequence_orientation_enabled_flag u(1)
[1068]
sps_patch_inter_prediction_enabled_flag u(1)
[1069]
sps_pixel_deinterleaving_flag u(1)
[1070]
sps_point_local_reconstruction_enabled_flag u(1)
[1071]
sps_remove_duplicate_point_enabled_flag u(1)
[1072]
byte_alignment()
[1073]
}
[1074]
sps_sequence_parameter_set_id提供其它句法元素所参考的vpcc sps的标识符。
[1075]
sps_frame_width依据整数亮度样本指示标称帧宽度。
[1076]
sps_frame_height依据整数亮度样本指示标称帧高度。
[1077]
sps_avg_frame_rate_present_flag等于0指示在比特流中没有指示平均标称帧频信息。sps_avg_frame_rate_present_flag等于1指示应在比特流中指示平均标称帧频信息。
[1078]
sps_avg_frame_rate以每256秒点云帧为单位指示平均标称点云帧频。当不存在sps_avg_frame_rate时,其值应被推断为等于0。
[1079]
在重构阶段期间,解码的占用、几何和属性视频可使用适当缩放转换为标称宽度、高度和帧频。
[1080]
sps_enhanced_occupancy_map_for_depth_flag等于1指示解码的占用图视频包含与两个深度层之间的中间深度位置是否被占用有关的信息。sps_enhanced_depth_code_enabled_flag等于0指示解码的占用图视频不包含与两个深度层之间的中间深度位置是否被占用有关的信息。
[1081]
sps_layer_count_minus1加1指示用于几何数据和属性数据的层数。
[1082]
sps_multiple_layer_streams_present_flag等于0指示所有几何或属性层分别被放置在单个几何或属性视频流中。sps_multiple_layer_streams_present_flag等于1指示所有几何或属性层被放置在单独的视频流中。
[1083]
sps_layer_absolute_coding_enabled_flag[i]等于2指示在没有任何形式的层预测的情况下对具有索引i的几何层进行编码。sps_layer_absolute_coding_enabled_flag[i]等于0指示在编码之前首先从另一较早编码的层预测具有索引i的几何层。
[1084]
当sps_layer_absolute_coding_enabled_flag[i]等于0时,sps_layer_predictor_index_diff[i]用于计算具有索引i的几何层的预测器。
[1085]
sps_pcm_patch_enabled_flag等于1指示比特流中可存在具有pcm编码点的补片。
[1086]
sps_pcm_separate_video_present_flag等于1指示pcm编码几何和属性信息可被存储在单独的视频流中。
[1087]
sps_attribute_count指示与点云关联的属性的数量。
[1088]
sps_patch_sequence_orientation_enabled_flag指示是否可在补片序列数据单元中用信号通知灵活取向。sps_patch_sequence_orientation_enabled_flag等于1指示可用信号通知灵活取向。sps_patch_sequence_orientation_enabled_flag等于0指示不用信号通知灵活取向。
[1089]
sps_patch_inter_prediction_enabled_flag等于1指示可基于来自先前编码的补片帧的补片信息使用对补片信息的帧间预测。
[1090]
sps_pixel_deinterleaving_flag等于1指示与单个流对应的解码的几何和属性视频包含来自两个层的交织像素。sps_pixel_deinterleaving_flag等于0指示与单个流对应的解码的几何和属性视频包含仅来自单个层的像素。
[1091]
sps_point_local_reconstruction_enabled_flag等于1指示可在点云重构处理期间使用局部重构模式。
[1092]
sps_remove_duplicate_point_enabled_flag等于1指示不应重构重复点,其中重复点是具有与来自下层的另一点相同的2d和3d几何坐标的点。
[1093]
sps_geometry_attribute_different_layer_flag等于1指示用于对几何数据和属性数据进行编码的层数不同。例如,尽管两个层可用于几何编码,但一个层可用于属性。sps_geometry_attribute_different_layer_flag等于1指示是否可在补片序列数据单元中用信号通知用于对几何数据和属性数据进行编码的层数。
[1094]
sps_layer_count_geometry_minus1加1指示用于对几何数据进行编码的层数。
[1095]
sps_layer_count_attribute_minus1[i]加1指示用于对与点云关联的第i属性数据进行编码的层数。
[1096]
vpcc_patch_sequence_parameter_set(){descriptor
[1097]
psps_patch_sequence_parameter_set_id ue(v)
[1098]
psps_log2_max_patch_frame_order_cnt_lsb_minus4 ue(v)
[1099]
psps_max_dec_patch_frame_buffering_minus1 ue(v)
[1100]
psps_long_term_ref_patch_frames_flag u(1)
[1101]
psps_num_ref_patch_frame_lists_in_sps ue(v)
[1102]
for(j=0;j<psps_num_ref_patch_frame_lists_in_sps;j )
[1103]
ref_list_struct(j)
[1104]
}
[1105]
psps_patch_sequence_parameter_set_id提供补片序列参数集的标识符以供其它句法元素参考。
[1106]
psps_log2_max_patch_frame_order_cnt_lsb_minus4针对补片帧顺序计数指定在解码处理中使用的变量maxpatchfrmordercntlsb的值。
[1107]
psps_max_dec_patch_frame_buffering_minus1加1以补片帧存储缓冲器为单位指定cpcs的解码的补片帧缓冲器的最大所需尺寸。
[1108]
psps_long_term_ref_patch_frames_flag等于0指定长期参考补片帧不用于编码点云序列中的任何编码补片帧的帧间预测。
[1109]
psps_num_ref_patch_frame_lists_in_sps指定包括在补片序列参数集中的ref_list_struct(rlsidx)句法结构的数量。
[1110]
图32示出根据实施方式的示例性点云发送方法。
[1111]
在根据实施方式的点云数据发送方法的s32000中,对点云数据进行编码。根据实施方式的编码处理的细节与上面关于图1的点云编码10002、图4的v

pcc编码处理、图15的编码处理、图18的编码预处理器18003、元数据编码器18005和/或视频编码器18006、图20的点云预处理20001和视频/图像编码20002和20003、图21的点云预处理和视频/图像编码21007描述的那些相同。
[1112]
在根据实施方式的点云数据发送方法的s32001中,发送包括点云数据的比特流。根据实施方式的发送处理的细节与上面关于图1的发送器10004、图18的发送器18008以及图20和图21的v

pcc传送描述的那些相同。
[1113]
根据实施方式的点云数据发送方法可包括图中所示的操作,并且可另外提供实施方式与本文所描述的实施方式组合实现的技术目的和/或效果。
[1114]
图33示出根据实施方式的示例性点云接收方法。
[1115]
在根据实施方式的点云数据接收方法的s33000中,接收点云数据。根据实施方式的接收处理的细节与上面关于图1的接收器10006、图26的解复用器16000、图17的解码装置17000、图19的接收器、图20的v

pcc播放器和图22的传送描述的那些相同。
[1116]
在根据实施方式的点云数据接收方法的s33001中,对点云数据进行解码。根据实施方式的解码处理的细节与上面关于图1的点云视频解码器10008、图19的v

pcc解码处理、图17的视频/图像解码、图19的视频解码器19001和元数据解码器19002、图20的视频/图像解码20006、图22的视频/图像解码22001和22002和点云处理22003描述的那些相同。
[1117]
在根据实施方式的点云数据接收方法的s33002中,渲染点云数据。根据实施方式的渲染处理的细节与上面关于图1的渲染器10009、图16和图17的解码处理、图19的点云渲染器、图20的渲染和显示以及图22的点云渲染描述的那些相同。
[1118]
根据实施方式的点云数据接收方法可包括图中所示的操作,并且可另外提供实施方式与本文所描述的实施方式组合实现的技术目的和/或效果。
[1119]
上述各个部分、模块或单元可以是执行存储在存储器(或存储单元)中的连续过程的软件、处理器或硬件部分。在上述实施方式中描述的各个步骤可由处理器、软件或硬件部分执行。在上述实施方式中描述的各个模块/块/单元可作为处理器、软件或硬件操作。另外,实施方式所提出的方法可作为代码执行。该代码可被写在处理器可读存储介质上,因此由设备所提供的处理器读取。
[1120]
尽管为了简单参照各个附图说明了实施方式,但是可通过将附图所示的实施方式合并来设计新的实施方式。如果本领域技术人员设计了记录有用于执行以上描述中提及的实施方式的程序的计算机可读记录介质,则其可落在所附权利要求及其等同物的范围内。
[1121]
设备和方法可不限于上述实施方式的配置和方法。上述实施方式可通过选择性地彼此完全或部分地组合来配置,以实现各种修改。
[1122]
尽管参照附图描述了优选实施方式,但本领域技术人员将理解,在不脱离所附权利要求中描述的本公开的精神或范围的情况下,可对实施方式进行各种修改和变化。这些修改不应从实施方式的技术思想或观点方面单独地理解。
[1123]
本领域技术人员将理解,在不脱离本公开的范围的情况下,可对实施方式进行各种修改和变化。因此,本公开旨在涵盖实施方式的修改和变化,只要它们落在所附权利要求及其等同物的范围内。
[1124]
本说明书中描述了设备和方法公开二者,并且设备和方法公开二者的描述互补地适用。
[1125]
在本文献中,术语“/”和“、”应该被解释为指示“和/或”。例如,表达“a/b”可意指“a和/或b”。此外,“a、b”可意指“a和/或b”。此外,“a/b/c”可意指“a、b和/或c中的至少一个”。另外,“a、b、c”也可意指“a、b和/或c中的至少一个”。
[1126]
此外,在本文献中,术语“或”应该被解释为“和/或”。例如,表达“a或b”可意指1)仅a、2)仅b和/或3)a和b二者。换言之,在本文献中术语“或”应该被解释为“另外地或另选地”。
[1127]
实施方式的设备的各种元件可由硬件、软件、固件或其组合实现。实施方式中的各种元件可由单个芯片(例如,单个硬件电路)实现。根据实施方式,根据实施方式的组件可分别被实现为单独的芯片。根据实施方式,根据实施方式的设备的至少一个或更多个组件可包括能够执行一个或更多个程序的一个或更多个处理器。一个或更多个程序可执行根据实施方式的任一个或更多个操作/方法,或者包括用于执行其的指令。用于执行根据实施方式的设备的方法/操作的可执行指令可被存储在被配置为由一个或更多个处理器执行的非暂时性crm或其它计算机程序产品中,或者可被存储在被配置为由一个或更多个处理器执行的暂时性crm或其它计算机程序产品中。另外,根据实施方式的存储器可用作不仅涵盖易失性存储器(例如,ram),而且涵盖非易失性存储器、闪存和prom的概念。另外,其还可按照载波的形式实现(例如,经由互联网的传输)。另外,处理器可读记录介质可分布到经由网络连接的计算机系统,使得处理器可读代码可按照分布式方式存储和执行。
[1128]
诸如第一和第二的术语可用于描述实施方式的各种元件。然而,根据实施方式的各种组件不应受上述术语限制。这些术语仅用于将一个元件与另一元件相区分。例如,第一用户输入信号可被称为第二用户输入信号。类似地,第二用户输入信号可被称为第一用户
输入信号。这些术语的使用应该被解释为不脱离各种实施方式的范围。第一用户输入信号和第二用户输入信号均是用户输入信号,但除非上文清楚地另外规定,否则并不意味着相同的用户输入信号。
[1129]
用于描述实施方式的术语仅用于描述特定实施方式的目的,并非旨在限制实施方式。如在实施方式的描述和权利要求中使用的,除非上文清楚地另外规定,否则单数形式包括复数指称物。表达“和/或”用于包括术语的所有可能组合。诸如“包括”或“具有”的术语旨在指示存在图形、数量、步骤、元件和/或组件,应该被理解为不排除存在附加图形、数量、步骤、元件和/或组件的可能性。
[1130]
如本文所使用的,诸如“如果”和“当”的条件表达不限于可选情况,旨在被解释为当满足特定条件时执行相关操作或根据该特定条件解释相关定义。
[1131]
本公开的模式
[1132]
如上所述,在用于执行实施方式的最佳模式下描述了相关细节。
[1133]
工业实用性
[1134]
如上所述,实施方式完全或部分地适用于点云数据发送/接收装置和系统。
[1135]
本领域技术人员可在实施方式的范围内以各种方式改变或修改实施方式。
[1136]
实施方式可包括权利要求及其等同物的范围内的变化/修改。
再多了解一些

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

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

相关文献