CN117978994A - 对点云数据进行编码/解码的方法和存储介质 - Google Patents

对点云数据进行编码/解码的方法和存储介质 Download PDF

Info

Publication number
CN117978994A
CN117978994A CN202410273303.4A CN202410273303A CN117978994A CN 117978994 A CN117978994 A CN 117978994A CN 202410273303 A CN202410273303 A CN 202410273303A CN 117978994 A CN117978994 A CN 117978994A
Authority
CN
China
Prior art keywords
point cloud
information
data
pcc
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410273303.4A
Other languages
English (en)
Inventor
吴世珍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Publication of CN117978994A publication Critical patent/CN117978994A/zh
Pending legal-status Critical Current

Links

Abstract

本公开涉及对点云数据进行编码/解码的方法和存储介质。根据实施方式的点云数据发送方法可包括以下步骤:对点云数据进行编码;以及发送点云数据。根据实施方式的点云数据接收方法可包括以下步骤:接收点云数据;对点云数据进行解码;以及渲染点云数据。

Description

对点云数据进行编码/解码的方法和存储介质
本发明是申请号为202080092003.6的发明专利申请(国际申请号:PCT/KR2020/018315、申请日:2020年12月15日、发明名称:点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法)的分案申请。
技术领域
实施方式提供了一种提供点云内容以向用户提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)和自驾驶服务的各种服务的方法。
背景技术
点云是三维(3D)空间中的点集合。因为3D空间中的点的数量大,所以难以生成点云数据。
需要大吞吐量以发送和接收点云数据。
发明内容
技术问题
本公开的目的在于提供一种用于有效地发送和接收点云的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的在于提供一种用于解决延迟和编码/解码复杂度的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
实施方式不限于上述目的,实施方式的范围可扩展至本领域技术人员基于本公开的完整内容可推断出的其它目的。
技术方案
为了实现这些目的和其它优点并且根据本公开的目的,如本文中具体实现并广义描述的,一种用于发送点云数据的方法可包括以下步骤:对点云数据进行编码;封装点云数据;以及发送点云数据。
在本公开的另一方面,一种用于接收点云数据的方法可包括以下步骤:接收点云数据;将点云数据解封装;以及对点云数据进行解码。
有益效果
根据实施方式的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可提供高质量点云服务。
根据实施方式的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可实现各种视频编解码方法。
根据实施方式的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可提供诸如自驾驶服务的通用点云内容。
附图说明
附图被包括以提供本公开的进一步理解,并且被并入本申请中并构成本申请的一部分,附图示出本公开的实施方式并与说明书一起用于说明本公开的原理。附图中:
图1示出根据实施方式的用于提供点云内容的发送/接收系统的示例性结构。
图2示出根据实施方式的点云数据的捕获。
图3示出根据实施方式的示例性点云、几何和纹理图像。
图4示出根据实施方式的示例性V-PCC编码处理。
图5示出根据实施方式的表面的切平面和法向量的示例。
图6示出根据实施方式的点云的示例性边界框。
图7示出根据实施方式的占用图上的各个补片位置的确定的示例。
图8示出根据实施方式的法向轴、切向轴和双切轴之间的示例性关系。
图9示出根据实施方式的投影模式的最小模式和最大模式的示例性配置。
图10示出根据实施方式的示例性EDD码。
图11示出根据实施方式的基于邻近点的颜色值重新着色的示例。
图12示出根据实施方式的推拉式背景填充的示例。
图13示出根据实施方式的4*4块的示例性可能遍历顺序。
图14示出根据实施方式的示例性最佳遍历顺序。
图15示出根据实施方式的示例性2D视频/图像编码器。
图16示出根据实施方式的示例性V-PCC解码处理。
图17示出根据实施方式的示例性2D视频/图像解码器。
图18是示出根据本公开的实施方式的发送装置的操作的流程图。
图19是示出根据实施方式的接收装置的操作的流程图。
图20示出根据实施方式的用于点云数据的基于V-PCC的存储和流传输的示例性架构。
图21是根据实施方式的用于存储和发送点云数据的装置的示例性框图。
图22是根据实施方式的点云数据接收装置的示例性框图。
图23示出根据实施方式的可与点云数据发送/接收方法/装置结合操作的示例性结构。
图24示出根据实施方式的点云数据的对象和对象的边界框。
图25示出根据实施方式的动态点云对象的边界框和总边界框。
图26示出根据实施方式的包含点云数据的比特流的结构。
图27示出根据实施方式的包含点云数据的比特流的结构。
图28示出根据实施方式的V-PCC单元和V-PCC单元头。
图29示出根据实施方式的V-PCC单元的有效载荷。
图30示出根据实施方式的V-PCC参数集。
图31示出根据实施方式的图集子比特流的结构。
图32示出根据实施方式的图集序列参数集。
图33示出根据实施方式的图集帧参数集。
图34示出根据实施方式的atlas_frame_tile_information。
图35示出根据实施方式的补充增强信息(SEI)。
图36示出根据实施方式的3D边界框SEI。
图37示出根据实施方式的体积平铺信息。
图38示出根据实施方式的体积平铺信息对象。
图39示出根据实施方式的体积平铺信息标签。
图40示出根据实施方式的封装V-PCC数据容器的结构。
图41示出根据实施方式的封装V-PCC数据容器的结构。
图42示出根据实施方式的V-PCC样本条目。
图43示出根据实施方式的轨道替换和分组。
图44示出根据实施方式的3D边界框信息结构。
图45示出根据实施方式的用于封装非定时V-PCC数据的结构的概述。
图46示出根据实施方式的V-PCC 3D边界框项目性质。
图47示出根据实施方式的V-PCC单元。
图48示出根据实施方式的V-PCC参数集。
图49示出根据实施方式的图集帧。
图50示出根据实施方式的图集比特流的结构。
以下,将描述包含在图50的图集比特流中的信息的句法。
图51示出根据实施方式的包含点云数据中所包括的样本流NAL头、样本流NAL单元、NAL单元和NAL单元的头。
图52示出根据实施方式的NAL单元类型。
图53示出根据实施方式的图集序列参数集。
图54示出根据实施方式的图集帧参数集。
图55示出根据实施方式的图集适配参数集(atlas_adaptation_parameter_set)。
图56示出根据实施方式的图集相机参数(atlas_camera_parameters)。
图57示出根据实施方式的图集拼块组层和图集拼块组头。
图58示出根据实施方式的参考列表结构(ref_list_struct)。
图59示出根据实施方式的图集拼块组数据(atlas_tile_group_data_unit)。
图60示出根据实施方式的补片信息数据(patch_information_data)。
图61示出根据实施方式的补片数据单元(patch_data_unit)。
图62示出根据实施方式的SEI信息。
图63示出根据实施方式的3D边界框信息结构。
图64示出根据实施方式的用于发送点云数据的方法。
图65示出根据实施方式的用于接收点云数据的方法。
具体实施方式
现在将详细参考本公开的优选实施方式,其示例示出于附图中。下面将参照附图给出的详细描述旨在说明本公开的示例性实施方式,而非示出可根据本公开实现的仅有实施方式。以下详细描述包括具体细节以便提供本公开的彻底理解。然而,对于本领域技术人员而言将显而易见的是,本公开可在没有这些具体细节的情况下实践。
尽管本公开中使用的大多数术语选自本领域中广泛使用的一般术语,但是一些术语是申请人任意选择的,其含义在以下描述中根据需要详细说明。因此,本公开应该基于术语的预期含义而非其简单名称或含义来理解。
图1示出根据实施方式的用于提供点云内容的发送/接收系统的示例性结构。
本公开提供一种提供点云内容以向用户提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)和自驾驶的各种服务的方法。根据实施方式的点云内容将表示对象的数据表示为点,并且可被称为点云、点云数据、点云视频数据、点云图像数据等。
根据实施方式的点云数据发送装置10000可包括点云视频获取器10001、点云视频编码器10002、文件/片段封装模块10003和/或发送器(或通信模块)10004。根据实施方式的发送装置可确保和处理点云视频(或点云内容)并发送其。根据实施方式,发送装置可包括固定站、基站收发器系统(BTS)、网络、人工智能(AI)装置和/或系统、机器人和AR/VR/XR装置和/或服务器。根据实施方式,发送装置10000可包括装置机器人、车辆、AR/VR/XR装置、便携式装置、家用电器、物联网(IoT)装置和AI装置/服务器,其被配置为使用无线电接入技术(例如,5G新RAT(NR)、长期演进(LTE))与基站和/或其它无线装置执行通信。
根据实施方式的点云视频获取器10001通过捕获、合成或生成点云视频的处理来获取点云视频。
根据实施方式的点云视频编码器10002对点云视频数据进行编码。根据实施方式,点云视频编码器10002可被称为点云编码器、点云数据编码器、编码器等。根据实施方式的点云压缩编码(编码)不限于上述实施方式。点云视频编码器可输出包含编码的点云视频数据的比特流。比特流不仅可包括编码的点云视频数据,而且包括与点云视频数据的编码有关的信令信息。
根据实施方式的编码器可支持基于几何的点云压缩(G-PCC)编码方案和/或基于视频的点云压缩(V-PCC)编码方案二者。另外,编码器可对点云(指点云数据或点)和/或与点云有关的信令数据进行编码。下面将描述根据实施方式的具体编码操作。
如本文所使用的,术语V-PCC可代表基于视频的点云压缩(V-PCC)。术语V-PCC可与基于视觉体积视频的编码(V3C)相同。这些术语可互补地使用。
根据实施方式的文件/片段封装模块10003以文件和/或片段的形式封装点云数据。根据实施方式的点云数据发送方法/装置可按文件和/或片段的形式发送点云数据。
根据实施方式的发送器(或通信模块)10004以比特流的形式发送编码的点云视频数据。根据实施方式,文件或片段可经由网络发送至接收装置,或存储在数字存储介质(例如,USB、SD、CD、DVD、蓝光、HDD、SSD等)中。根据实施方式的发送器能够经由4G、5G、6G等的网络与接收装置(或接收器)无线地/无线通信。另外,发送器可根据网络系统(例如,4G、5G或6G通信网络系统)执行必要的数据处理操作。发送装置可按照按需方式发送封装数据。
根据实施方式的点云数据接收装置10005可包括接收器10006、文件/片段解封装模块10007、点云视频解码器10008和/或渲染器10009。根据实施方式,接收装置可包括装置机器人、车辆、AR/VR/XR装置、便携式装置、家用电器、物联网(IoT)装置和AI装置/服务器,其被配置为使用无线电接入技术(例如,5G新RAT(NR)、长期演进(LTE))与基站和/或其它无线装置执行通信。
根据实施方式的接收器10006接收包含点云视频数据的比特流。根据实施方式,接收器10006可向点云数据发送装置10000发送反馈信息。
文件/片段解封装模块10007将包含点云数据的文件和/或片段解封装。根据实施方式的解封装模块可执行根据实施方式的封装处理的逆处理。
点云视频解码器10008对所接收的点云视频数据进行解码。根据实施方式的解码器可执行根据实施方式的编码的逆处理。
渲染器10009渲染解码的点云视频数据。根据实施方式,渲染器10009可将在接收侧获得的反馈信息发送给点云视频解码器10008。根据实施方式的点云视频数据可将反馈信息承载到接收器。根据实施方式,点云发送装置所接收的反馈信息可被提供给点云视频编码器。
图中的虚线所指示的箭头表示接收装置10005所获取的反馈信息的传输路径。反馈信息是用于反映与消费点云内容的用户的交互性的信息,并且包括用户信息(例如,头部取向信息)、视口信息等)。具体地,当点云内容是需要与用户的交互的服务(例如,自驾驶服务等)的内容时,反馈信息可被提供给内容发送侧(例如,发送装置10000)和/或服务提供商。根据实施方式,反馈信息可用在接收装置10005以及发送装置10000中,并且可不提供。
根据实施方式的头部取向信息是关于用户的头部位置、取向、角度、运动等的信息。根据实施方式的接收装置10005可基于头部取向信息来计算视口信息。视口信息可以是关于用户正在观看的点云视频的区域的信息。视点是用户正在观看点云视频的点,并且可指视口区域的中心点。即,视口是以视点为中心的区域,并且区域的大小和形状可由视场(FOV)确定。因此,除了头部取向信息之外,接收装置10005可基于装置所支持的垂直或水平FOV来提取视口信息。另外,接收装置10005执行注视分析以检查用户如何消费点云、点云视频中用户注视的区域、注视时间等。根据实施方式,接收装置10005可向发送装置10000发送包括注视分析结果的反馈信息。根据实施方式的反馈信息可在渲染和/或显示处理中获取。根据实施方式的反馈信息可由包括在接收装置10005中的一个或更多个传感器确保。另外,根据实施方式,反馈信息可由渲染器10009或单独的外部元件(或装置、组件等)确保。图1中的虚线表示发送渲染器10009所确保的反馈信息的处理。点云内容提供系统可基于反馈信息来处理(编码/解码)点云数据。因此,点云视频数据解码器10008可基于反馈信息执行解码操作。接收装置10005可向发送装置发送反馈信息。发送装置(或点云视频数据编码器10002)可基于反馈信息执行编码操作。因此,点云内容提供系统可基于反馈信息有效地处理必要数据(例如,与用户头部位置对应的点云数据),而非处理(编码/解码)所有点云数据,并将点云内容提供给用户。
根据实施方式,发送装置10000可被称为编码器、发送装置、发送器等,接收装置10005可被称为解码器、接收装置、接收器等。
根据实施方式的图1的点云内容提供系统中处理的点云数据(通过获取/编码/传输/解码/渲染的一系列处理)可被称为点云内容数据或点云视频数据。根据实施方式,点云内容数据可用作涵盖与点云数据有关的元数据或信令信息的概念。
图1所示的点云内容提供系统的元件可由硬件、软件、处理器和/或其组合实现。
实施方式可提供一种提供点云内容以向用户提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)和自驾驶的各种服务的方法。
为了提供点云内容服务,可首先获取点云视频。所获取的点云视频可通过一系列处理发送,并且接收侧可将所接收的数据处理回到原始点云视频并渲染所处理的点云视频。由此,点云视频可被提供给用户。实施方式提供一种有效地执行这一系列处理的方法。
用于提供点云内容服务的所有处理(点云数据发送方法和/或点云数据接收方法)可包括获取处理、编码处理、传输处理、解码处理、渲染处理和/或反馈处理。
根据实施方式,提供点云内容(或点云数据)的处理可被称为点云压缩处理。根据实施方式,点云压缩处理可表示基于几何的点云压缩处理。
根据实施方式的点云数据发送装置和点云数据接收装置的各个元件可以是硬件、软件、处理器和/或其组合。
为了提供点云内容服务,可获取点云视频。所获取的点云视频通过一系列处理发送,并且接收侧可将所接收的数据处理回到原始点云视频并渲染所处理的点云视频。由此,点云视频可被提供给用户。实施方式提供一种有效地执行这一系列处理的方法。
用于提供点云内容服务的所有处理可包括获取处理、编码处理、传输处理、解码处理、渲染处理和/或反馈处理。
点云压缩系统可包括发送装置和接收装置。发送装置可通过对点云视频进行编码来输出比特流,并通过数字存储介质或网络将其以文件或流(流传输片段)的形式传送至接收装置。数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。
发送装置可包括点云视频获取器、点云视频编码器、文件/片段封装器和发送器。接收装置可包括接收器、文件/片段解封装器、点云视频解码器和渲染器。编码器可被称为点云视频/画面/画面/帧编码器,解码器可被称为点云视频/画面/画面/帧解码装置。发送器可包括在点云视频编码器中。接收器可包括在点云视频解码器中。渲染器可包括显示器。渲染器和/或显示器可被配置成单独的装置或外部组件。发送装置和接收装置还可包括用于反馈处理的单独的内部或外部模块/单元/组件。
根据实施方式,接收装置的操作可以是发送装置的操作的逆处理。
点云视频获取器可通过捕获、编排或生成点云视频的处理来执行获取点云视频的处理。在获取处理中,可生成多个点的3D位置(x,y,z)/属性(颜色、反射率、透明度等)的数据,例如polygon文件格式(PLY)(或斯坦福三角形(Stanford triangle)格式)文件。对于具有多个帧的视频,可获取一个或更多个文件。在捕获处理期间,可生成点云相关元数据(例如,捕获相关元数据)。
根据实施方式的点云数据发送装置可包括被配置为对点云数据进行编码的编码器以及被配置为发送点云数据的发送器。数据可按照包含点云的比特流的形式发送。
根据实施方式的点云数据接收装置可包括被配置为接收点云数据的接收器、被配置为对点云数据进行解码的解码器以及被配置为渲染点云数据的渲染器。
根据实施方式的方法/装置表示点云数据发送装置和/或点云数据接收装置。
图2示出根据实施方式的点云数据的捕获。
根据实施方式的点云数据可通过相机等来获取。根据实施方式的捕获技术可包括例如面向内和/或面向外。
在根据实施方式的面向内中,向内面向点云数据的对象的一个或更多个相机可从对象外部拍摄对象。
在根据实施方式的面向外中,向外面向点云数据的对象的一个或更多个相机可拍摄对象。例如,根据实施方式,可存在四个相机。
根据实施方式的点云数据或点云内容可以是在各种类型的3D空间中表示的对象/环境的视频或静止图像。根据实施方式,点云内容可包括对象的视频/音频/图像。
为了捕获点云内容,可配置能够获取深度的相机设备(红外图案投影仪和红外相机的组合)和能够提取与深度信息对应的颜色信息的RGB相机的组合。另选地,可通过使用雷达系统的LiDAR来提取深度信息,该雷达系统通过发射激光脉冲并测量返回时间来测量反射器的位置坐标。可从深度信息提取由3D空间中的点组成的几何形状,并且可从RGB信息提取表示各个点的颜色/反射率的属性。点云内容可包括关于位置(x,y,z)和点的颜色(YCbCr或RGB)或反射率(r)的信息。对于点云内容,可使用捕获外部环境的面向外技术和捕获中心对象的面向内技术。在VR/AR环境中,当对象(例如,诸如角色、玩家、事物或演员的核心对象)被配置到用户可在任何方向(360度)观看的点云内容中时,捕获相机的配置可基于面向内技术。当在诸如自驾驶的车辆模式下当前周围环境被配置到点云内容中时,捕获相机的配置可基于面向外技术。由于可通过多个相机捕获点云内容,所以可能需要在捕获内容之前执行相机校准处理以为相机配置全局坐标系。
点云内容可以是存在于各种类型的3D空间中的对象/环境的视频或静止图像。
另外,在点云内容获取方法中,可基于捕获的点云视频编排任何点云视频。另选地,当要提供计算机生成的虚拟空间的点云视频时,可能不执行利用实际相机的捕获。在这种情况下,捕获处理可简单地由生成相关数据的处理代替。
可能需要对捕获的点云视频进行后处理以改进内容的质量。在视频捕获处理中,可在相机设备所提供的范围内调节最大/最小深度。即使在调节之后,仍可能存在不想要的区域的点数据。因此,可执行去除不想要的区域(例如,背景)或识别连接的空间并填充空间孔洞的后处理。另外,从共享空间坐标系的相机提取的点云可通过基于通过校准处理获取的各个相机的位置坐标将各个点变换到全局坐标系中的处理而被整合为一条内容。由此,可生成具有宽范围的一条点云内容,或者可获取具有高密度点的点云内容。
点云视频编码器可将输入点云视频编码为一个或更多个视频流。一个视频可包括多个帧,各个帧可对应于静止图像/画面。在本说明书中,点云视频可包括点云图像/帧/画面。另外,术语“点云视频”可与点云图像/帧/画面/视频/音频互换使用。点云视频编码器可执行基于视频的点云压缩(V-PCC)处理。为了压缩和编码效率,点云视频编码器可执行诸如预测、变换、量化和熵编码的一系列处理。编码的数据(编码的视频/图像信息)可按比特流的形式输出。基于V-PCC处理,点云视频编码器可通过将点云视频分成几何视频、属性视频、占用图视频和辅助信息来对点云视频进行编码(将稍后描述)。几何视频可包括几何图像,属性视频可包括属性图像,占用图视频可包括占用图图像。辅助信息可包括辅助补片信息。属性视频/图像可包括纹理视频/图像。
封装处理器(文件/片段封装模块)10003可以例如文件的形式封装编码的点云视频数据和/或与点云视频有关的元数据。这里,与点云视频有关的元数据可从元数据处理器接收。元数据处理器可包括在点云视频编码器中,或者可被配置成单独的组件/模块。封装处理器可按照诸如ISOBMFF的文件格式封装数据或者按照DASH片段等的形式处理数据。根据实施方式,封装处理器可包括文件格式的点云视频相关元数据。点云视频元数据可被包括在例如ISOBMFF文件格式的各种级别的框中,或作为文件内的单独轨道中的数据。根据实施方式,封装处理器可将点云视频相关元数据封装到文件中。发送处理器可对根据文件格式封装的点云视频数据执行传输处理。发送处理器可包括在发送器中,或者可被配置成单独的组件/模块。发送处理器可根据传输协议来处理点云视频数据。传输处理可包括经由广播网络传送的处理和通过宽带传送的处理。根据实施方式,发送处理器可从元数据处理器连同点云视频数据一起接收点云视频相关元数据,并且执行点云视频数据的处理以进行传输。
发送器10004可通过数字存储介质或网络将以比特流的形式输出的编码的视频/图像信息或数据以文件或流的形式发送到接收装置的接收器。数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。发送器可包括用于以预定文件格式生成媒体文件的元件,并且可包括用于经由广播/通信网络传输的元件。接收器可提取比特流并将所提取的比特流发送到解码装置。
接收器10006可接收根据本公开的点云视频发送装置所发送的点云视频数据。根据传输信道,接收器可经由广播网络或通过宽带接收点云视频数据。另选地,点云视频数据可通过数字存储介质来接收。
接收处理器可根据传输协议处理所接收的点云视频数据。接收处理器可包括在接收器中,或者可被配置成单独的组件/模块。接收处理器可反向执行发送处理器的上述处理,使得处理对应于在发送侧执行的传输处理。接收处理器可将所获取的点云视频数据传送至解封装处理器,并将所获取的点云视频相关元数据传送至元数据解析器。接收处理器所获取的点云视频相关元数据可采取信令表的形式。
解封装处理器(文件/片段解封装模块)10007可将以文件的形式从接收处理器接收的点云视频数据解封装。解封装处理器可根据ISOBMFF等对文件进行解封装,并且可获取点云视频比特流或点云视频相关元数据(元数据比特流)。所获取的点云视频比特流可被传送至点云视频解码器,并且所获取的点云视频相关元数据(元数据比特流)可被传送至元数据处理器。点云视频比特流可包括元数据(元数据比特流)。元数据处理器可包括在点云视频解码器中,或者可被配置成单独的组件/模块。解封装处理器所获取的点云视频相关元数据可采取文件格式中的框或轨道的形式。当需要时,解封装处理器可从元数据处理器接收解封装所需的元数据。点云视频相关元数据可被传送至点云视频解码器并在点云视频解码处理中使用,或者可被传送至渲染器并在点云视频渲染处理中使用。
点云视频解码器可接收比特流并且通过执行与点云视频编码器的操作对应的操作来将视频/图像解码。在这种情况下,点云视频解码器可通过如下所述将点云视频分成几何视频、属性视频、占用图视频和辅助信息来对点云视频进行解码。几何视频可包括几何图像,属性视频可包括属性图像。占用图视频可包括占用图图像。辅助信息可包括辅助补片信息。属性视频/图像可包括纹理视频/图像。
3D几何可基于解码的几何图像、占用图和辅助补片信息来重构,然后可经受平滑处理。可通过基于纹理图像向平滑的3D几何指派颜色值来重构颜色点云图像/画面。渲染器可渲染重构的几何和颜色点云图像/画面。渲染的视频/图像可通过显示器显示。用户可通过VR/AR显示器或典型显示器来观看全部或部分渲染结果。
反馈处理可包括将可在渲染/显示处理中获取的各种类型的反馈信息传送至发送侧或接收侧的解码器。可在消费点云视频时通过反馈处理提供交互性。根据实施方式,头部取向信息、指示用户当前观看的区域的视口信息等可在反馈处理中被传送至发送侧。根据实施方式,用户可与VR/AR/MR/自驾驶环境中实现的事物交互。在这种情况下,与交互有关的信息可在反馈处理期间被传送至发送侧或服务提供商。根据实施方式,反馈处理可被跳过。
头部取向信息可表示用户头部的位置、角度和运动的信息。基于该信息,可计算关于用户当前观看的点云视频的区域的信息(即,视口信息)。
视口信息可以是关于用户当前观看的点云视频的区域的信息。可使用视口信息来执行注视分析,以检查用户消费点云视频的方式、用户所注视的点云视频的区域以及用户注视该区域多长时间。可在接收侧执行注视分析,并且可在反馈信道上将分析结果传送至发送侧。诸如VR/AR/MR显示器的装置可基于用户头部的位置/方向、装置所支持的垂直或水平FOV等来提取视口区域。
根据实施方式,上述反馈信息可不仅被传送至发送侧,而且在接收侧消费。即,可基于上述反馈信息执行接收侧的解码和渲染处理。例如,可基于头部取向信息和/或视口信息仅优先解码和渲染用户当前观看的区域的点云视频。
这里,视口或视口区域可表示用户当前观看的点云视频的区域。视点是点云视频中用户所观看的点,并且可表示视口区域的中心点。即,视口是视点周围的区域,并且区域的大小和形式可由视场(FOV)确定。
本公开涉及如上所述的点云视频压缩。例如,本公开中公开的方法/实施方式可应用于运动图像专家组(MPEG)的点云压缩或点云编码(PCC)标准或下一代视频/图像编码标准。
如本文所使用的,画面/帧通常可表示特定时间间隔中表示一个图像的单位。
像素或画素可以是构成一个画面(或图像)的最小单位。另外,“样本”可用作与像素对应的术语。样本通常可表示像素或像素值,或者可仅表示亮度分量的像素/像素值,仅表示色度分量的像素/像素值,或者仅表示深度分量的像素/像素值。
单元可表示图像处理的基本单位。单元可包括画面的特定区域和与该区域有关的信息中的至少一个。在一些情况下,单元可与诸如块或区域的术语互换使用。在一般情况下,M×N块可包括按M列和N行配置的样本(或样本阵列)或变换系数集合(或阵列)。
图3示出根据实施方式的点云、几何图像和纹理图像的示例。
根据实施方式的点云可输入至将稍后描述的图4的V-PCC编码处理,以生成几何图像和纹理图像。根据实施方式,点云可具有与点云数据相同的含义。
如图所示,左侧部分示出点云,其中对象位于3D空间中并且可由边界框等表示。中间部分示出几何,右侧部分示出纹理图像(非填充图像)。
根据实施方式的基于视频的点云压缩(V-PCC)可提供基于诸如HEVC或VVC的2D视频编解码器来压缩3D点云数据的方法。可在V-PCC压缩处理中生成的数据和信息如下:
占用图:这是在将构成点云的点分成补片并将其映射到2D平面时使用值0或1指示在2D平面中的对应位置是否存在数据的二值图。占用图可表示与图集(atlas)对应的2D阵列,并且占用图的值可指示图集中的各个样本位置是否对应于3D点。图集是位于矩形帧中与渲染体积数据的3D空间中的3D边界框对应的2D边界框和与其有关的信息的集合。
图集比特流是构成图集的一个或更多个图集帧和相关数据的比特流。
图集帧是补片投影至的图集样本的2D矩形阵列。
图集样本是与图集关联的补片投影至的矩形帧的位置。
图集帧可被划分为拼块。拼块是2D帧被划分的单元。即,拼块是用于划分称为图集的点云数据的信令信息的单元。
补片:构成点云的点集合,其指示属于同一补片的点在3D空间中彼此相邻并且在映射到2D图像的处理中在6面边界框平面之间在相同方向上映射。
补片是拼块被划分的单元。补片是关于点云数据的配置的信令信息。
根据实施方式的接收装置可基于图集(拼块、补片)来恢复属性视频数据、几何视频数据和占用视频数据(具有相同呈现时间的实际视频数据)。
几何图像:这是逐补片呈现关于构成点云的各个点的位置信息(几何)的深度图形式的图像。几何图像可由一个通道的像素值组成。几何表示与点云帧关联的坐标集合。
纹理图像:这是逐补片表示关于构成点云的各个点的颜色信息的图像。纹理图像可由多个通道(例如,R、G和B三个通道)的像素值组成。纹理包括在属性中。根据实施方式,纹理和/或属性可被解释为相同的对象和/或具有包含关系。
辅助补片信息:这指示利用各个补片重构点云所需的元数据。辅助补片信息可包括关于2D/3D空间中的补片的位置、尺寸等的信息。
根据实施方式的点云数据(例如,V-PCC组件)可包括图集、占用图、几何和属性。
图集表示2D边界框的集合。其可以是补片,例如,投影到矩形帧上的补片。图集可对应于3D空间中的3D边界框,并且可表示点云的子集。
属性可表示与点云中的各个点关联的标量或向量。例如,属性可包括颜色、反射率、表面法线、时间戳、材料ID。
根据实施方式的点云数据表示根据基于视频的点云压缩(V-PCC)方案的PCC数据。点云数据可包括多个分量。例如,其可包括占用图、补片、几何和/或纹理。
图4示出根据实施方式的V-PCC编码处理。
该图示出用于生成和压缩占用图、几何图像、纹理图像和辅助补片信息的V-PCC编码处理。图4的V-PCC编码处理可由图1的点云视频编码器10002处理。图4的各个元件可由软件、硬件、处理器和/或其组合执行。
补片生成或补片生成器40000接收点云帧(其可以是包含点云数据的比特流的形式)。补片生成器40000从点云数据生成补片。另外,生成包括关于补片生成的信息的补片信息。
补片打包或补片打包器40001将用于点云数据的补片打包。例如,一个或更多个补片可被打包。另外,补片打包器生成包含关于补片打包的信息的占用图。
几何图像生成或几何图像生成器40002基于点云数据、补片和/或打包的补片来生成几何图像。几何图像是指包含与点云数据有关的几何的数据。
纹理图像生成或纹理图像生成器40003基于点云数据、补片和/或打包的补片来生成纹理图像。另外,可进一步基于通过基于补片信息平滑的平滑处理生成的平滑几何来生成纹理图像。
平滑或平滑器40004可减轻或消除包含在图像数据中的错误。例如,基于修补的重构几何图像,数据之间可导致错误的部分可被平滑地滤除以生成平滑几何。
辅助补片信息压缩或辅助补片信息压缩器40005压缩与在补片生成中生成的补片信息有关的辅助补片信息。另外,压缩的辅助补片信息可被发送至复用器。可在几何图像生成40002中生成辅助补片信息。
图像填充或图像填充器40006、40007可分别填充几何图像和纹理图像。填充数据可被填充到几何图像和纹理图像。
组扩张或组扩张器40008可按照与图像填充类似的方式向纹理图像添加数据。添加的数据可被插入到纹理图像中。
视频压缩或视频压缩器40009、40010、40011可分别压缩填充的几何图像、填充的纹理图像和/或占用图。压缩可对几何信息、纹理信息、占用信息等进行编码。
熵压缩或熵压缩器40012可基于熵方案来压缩(例如,编码)占用图。
根据实施方式,可分别根据点云数据是否无损和/或有损来执行熵压缩和/或视频压缩。
复用器40013将压缩的几何图像、压缩的纹理图像和压缩的占用图复用为比特流。
下面描述图4的各个处理中的特定操作。
补片生成40000
补片生成处理是指将点云分成补片(映射单元)以便将点云映射到2D图像的处理。补片生成处理可被分成三个步骤:法向值计算、分段和补片分段。
将参照图5详细描述法向值计算处理。
图5示出根据实施方式的表面的切平面和法向量的示例。
图5的表面如下用在图4的V-PCC编码处理的补片生成处理40000中。
与补片生成有关的法线计算:
点云的各个点具有其自己的方向,其由称为法向量的3D向量表示。使用利用K-D树等获得的各个点的邻居,可获得如图所示构成点云的表面的各个点的切平面和法向量。应用于搜索邻居的处理的搜索范围可由用户定义。
切平面是指穿过表面上的点并且完全包括表面上的曲线的切线的平面。
图6示出根据实施方式的点云的示例性边界框。
根据实施方式的方法/装置(例如,补片生成)可在从点云数据生成补片时采用边界框。
根据实施方式的边界框是指用于基于3D空间中的六面体划分点云数据的单元的框。
可在将点云数据的目标对象投影到3D空间中的六面体的各个平坦面的平面上的处理中使用边界框。边界框可由图1的点云视频获取器10001和点云视频编码器10002生成和处理。此外,基于边界框,可执行图2的V-PCC编码处理的补片生成40000、补片打包40001、几何图像生成40002和纹理图像生成40003。
与补片生成有关的分段
分段被分成两个处理:初始分段和细化分段。
根据实施方式的点云编码器10002将点投影到边界框的一个面上。具体地,构成点云的各个点被投影到围绕点云的边界框的六个面之一上。初始分段是确定各个点要投影至的边界框的平坦面之一的处理。
其是与六个平坦面中的每一个对应的法向值,如下定义:
(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)。
如下式所示,在法向值计算处理中获得的各个点的法向量与/>的点积的值最大的面被确定为对应点的投影平面。即,法向量与点的法向量的方向最相似的平面被确定为点的投影平面。
所确定的平面可由一个集群索引(0至5之一)标识。
细化分段是考虑邻近点的投影平面增强在初始分段处理中确定的构成点云的各个点的投影平面的处理。在该处理中,得分法向和得分平滑可一起考虑,得分法向表示在初始分段处理中确定投影平面时考虑的各个点的法向量与边界框的各个平坦面的法向之间的相似度,得分平滑指示当前点的投影平面与邻近点的投影平面之间的相似度。
可通过向得分法向指派权重来考虑得分平滑。在这种情况下,权重值可由用户定义。细化分段可重复地执行,重复次数也可由用户定义。
与补片生成有关的补片分段
补片分段是基于在初始/细化分段处理中获得的关于构成点云的各个点的投影平面信息将整个点云分成补片(邻近点的集合)的处理。补片分段可包括以下步骤。
①使用K-D树等计算构成点云的各个点的邻近点。最大邻居数量可由用户定义。
②当邻近点被投影到与当前点相同的平面上时(当它们具有相同的集群索引时),提取当前点和邻近点作为一个补片。
③计算所提取的补片的几何值。细节在以下描述。
④重复操作②至④,直至不存在未提取的点。
各个补片的占用图、几何图像和纹理图像以及各个补片的大小通过补片分段处理来确定。
图7示出根据实施方式的确定占用图上的各个补片位置的示例。
根据实施方式的点云编码器10002可执行补片打包并生成占用图。
补片打包和占用图生成(40001)
这是确定2D图像中的各个补片的位置以将分段的补片映射到2D图像的处理。作为一种2D图像,占用图是使用值0或1指示对应位置处是否存在数据的二值图。占用图由块组成,其分辨率可由块的大小确定。例如,当块为1*1块时,获得像素级分辨率。占用打包块大小可由用户确定。
确定占用图上的各个补片的位置的处理可配置如下。
①将占用图上的所有位置设定为0。
②将补片置于占用图平面中水平坐标在(0,occupancySizeU-patch.sizeU0)范围内并且垂直坐标在(0,occupancySizeV-patch.sizeV0)范围内的点(u,v)处。
③将补片平面中水平坐标在(0,patch.sizeU0)范围内并且垂直坐标在(0,patch.sizeV0)范围内的点(x,y)设定为当前点。
④按光栅顺序改变点(x,y)的位置,并且如果补片占用图上的坐标(x,y)的值为1(补片中的点处存在数据)并且全局占用图上的坐标(u+x,v+y)的值为1(以先前补片填充占用图),则重复操作③和④。否则,进行至操作⑥。
⑤按光栅顺序改变(u,v)的位置并且重复操作③至⑤。
⑥将(u,v)确定为补片的位置并且将关于补片的占用图数据复制到全局占用图上的对应部分上。
⑦针对下一补片重复操作②至⑦。
occupancySizeU:指示占用图的宽度。其单位是占用打包块大小。
occupancySizeV:指示占用图的高度。其单位是占用打包块大小。
patch.sizeU0:指示占用图的宽度。其单位是占用打包块大小。
patch.sizeV0:指示占用图的高度。其单位是占用打包块大小。
例如,如图7所示,在与占用打包大小块对应的框中存在与具有补片大小的补片对应的框,并且点(x,y)可位于该框中。
图8示出根据实施方式的法向轴、切向轴和双切轴之间的示例性关系。
根据实施方式的点云编码器10002可生成几何图像。几何图像是指包括关于点云的几何信息的图像数据。几何图像生成处理可采用图8中的补片的三个轴(法向、切向和双切)。
几何图像生成(40002)
在该处理中,确定构成各个补片的几何图像的深度值,并且整个几何图像基于在上述补片打包处理中确定的补片的位置来生成。确定构成各个补片的几何图像的深度值的处理可配置如下。
①计算与各个补片的位置和大小有关的参数。参数可包括以下信息。
指示法向轴的法向索引在先前补片生成处理中获得。切向轴是垂直于法向轴的轴当中与补片图像的水平轴u一致的轴,双切轴是垂直于法向轴的轴当中与补片图像的垂直轴v一致的轴。三个轴可如图所示。
图9示出根据实施方式的投影模式的最小模式和最大模式的示例性配置。
根据实施方式的点云编码器10002可执行基于补片的投影以生成几何图像,并且根据实施方式的投影模式包括最小模式和最大模式。
可基于围绕补片的最小尺寸的边界框来计算补片的3D空间坐标。例如,3D空间坐标可包括补片的最小切向值(在补片3d移位切向轴上)、补片的最小双切值(在补片3d移位双切轴上)和补片的最小法向值(在补片3d移位法向轴上)。
补片的2D尺寸指示当补片被打包成2D图像时补片的水平尺寸和垂直尺寸。水平尺寸(补片2d尺寸u)可作为边界框的最大切向值和最小切向值之差获得,垂直尺寸(补片2d尺寸v)可作为边界框的最大双切值和最小双切值之差获得。
②确定补片的投影模式。投影模式可以是最小模式或最大模式。关于补片的几何信息利用深度值表示。当构成补片的各个点在补片的法向上投影时,可生成两层图像,利用最大深度值构造的图像和利用最小深度值构造的图像。
在最小模式下,在生成两层图像d0和d1时,可为d0配置最小深度,并且可为d1配置从最小深度的表面厚度内的最大深度,如图所示。
例如,当点云如图中所示位于2D中时,可存在包括多个点的多个补片。如图中所示,指示以相同样式的阴影标记的点可属于同一补片。该图示出投影标记空白的点的补片的处理。
在将标记空白的点向左/右投影时,深度可相对于左侧增加1为0、1、2、…、6、7、8、9,并且用于计算点的深度的数可标记在右侧。
可对所有点云应用相同的投影模式,或者可根据用户定义对各个帧或补片应用不同的投影模式。当对各个帧或补片应用不同的投影模式时,可自适应地选择可增强压缩效率或使缺失的点最少的投影模式。
③计算各个点的深度值。
在最小模式下,利用depth0构造图像d0,depth0是通过针对各个点的最小法向值从补片的最小法向值(在补片3d移位法向轴上)减去在操作①中计算的补片的最小法向值(在补片3d移位法向轴上)而获得的值。如果在同一位置在depth0与表面厚度之间的范围内存在另一深度值,则该值被设定为depth1。否则,depth0的值被指派给depth1。利用depth1的值构造图像d1。
例如,可在确定图像d0的点的深度时计算最小值(4 2 4 4 0 6 0 0 9 9 0 8 0)。在确定图像d1的点的深度时,可计算两个或更多个点当中的较大值。当仅存在一个点时,可计算其值(4 4 4 4 6 6 6 8 9 9 8 8 9)。在编码和重构补片的点的处理中,一些点可能丢失(例如,在图中,八个点丢失)。
在最大模式下,利用depth0构造图像d0,depth0是通过针对各个点的最大法向值从补片的最小法向值(在补片3d移位法向轴上)减去在操作①中计算的补片的最小法向值(在补片3d移位法向轴上)而获得的值。如果在同一位置在depth0与表面厚度之间的范围内存在另一深度值,则该值被设定为depth1。否则,depth0的值被指派给depth1。利用depth1的值构造图像d1。
例如,可在确定图像d0的点的深度时计算最大值(4 4 4 4 6 6 6 8 9 9 8 8 9)。另外,在确定图像d1的点的深度时,可计算两个或更多个点当中的较低值。当仅存在一个点时,可计算其值(4 2 4 4 5 6 0 6 9 9 0 8 0)。在编码和重构补片的点的处理中,一些点可能丢失(例如,在图中,六个点丢失)。
整个几何图像可通过基于在补片打包处理中确定的补片位置信息将通过上述处理生成的各个补片的几何图像放置到整个几何图像上来生成。
所生成的整个几何图像的层d1可使用各种方法来编码。第一方法(绝对d1方法)是对先前生成的图像d1的深度值进行编码。第二方法(差分方法)是对先前生成的图像d1的深度值与图像d0的深度值之差进行编码。
在如上所述使用两个层d0和d1的深度值的编码方法中,如果两个深度之间存在另一点,则在编码处理中丢失关于该点的几何信息,因此增强-增量-深度(EDD)码可用于无损编码。
以下,将参照图10详细描述EDD码。
图10示出根据实施方式的示例性EDD码。
在点云编码器10002和/或V-PCC编码(例如,视频压缩40009)的一些/所有处理中,关于点的几何信息可基于EOD码来编码。
如图所示,EDD码用于包括d1的表面厚度范围内的所有点的位置的二值编码。例如,在图中,由于在D0上的第一位置和第四位置处存在点并且第二位置和第三位置为空,所以包括在左侧第二列中的点可由EDD码0b1001(=9)表示。当EDD码与D0一起编码并发送时,接收终端可无损地恢复关于所有点的几何信息。
例如,当参考点上方存在点时,值为1。当不存在点时,值为0。因此,可基于4比特来表达码。
平滑(40004)
平滑是用于消除由于在压缩处理期间发生的图像质量劣化而可能出现在补片边界上的不连续的操作。可由点云编码器或平滑器执行平滑:
①从几何图像重构点云。此操作可与上述几何图像生成相反。例如,可重构编码的逆处理。
②使用K-D树等计算构成重构的点云的各个点的邻近点。
③确定各个点是否位于补片边界上。例如,当存在具有与当前点不同的投影平面(集群索引)的邻近点时,可确定点位于补片边界上。
④如果在补片边界上存在点,则使该点移动到邻近点的质心(位于邻近点的平均x、y、z坐标处)。即,改变几何值。否则,维持先前几何值。
图11示出根据实施方式的基于邻近点的颜色值来重新着色的示例。
根据实施方式的点云编码器或纹理图像生成器40003可基于重新着色来生成纹理图像。
纹理图像生成(40003)
与上述几何图像生成处理类似,纹理图像生成处理包括生成各个补片的纹理图像并且通过将纹理图像布置在确定的位置来生成整个纹理图像。然而,在生成各个补片的纹理图像的操作中,代替用于几何生成的深度值,生成具有构成与位置对应的点云的点的颜色值(例如,R、G和B值)的图像。
在估计构成点云的各个点的颜色值时,可使用先前通过平滑处理获得的几何。在平滑的点云中,一些点的位置可能已相对于原始点云移位,因此可能需要寻找适合于改变的位置的颜色的重新着色处理。可使用邻近点的颜色值来执行重新着色。例如,如图所示,可考虑最近邻近点的颜色值和邻近点的颜色值来计算新颜色值。
例如,参考附图,在重新着色时,可基于关于距点最近的原始点的属性信息的平均和/或关于距点最近的原始位置的属性信息的平均来计算改变的位置的合适颜色值。
类似于以两个层d0和d1生成的几何图像,纹理图像也可以两个层t0和t1生成。
辅助补片信息压缩(40005)
根据实施方式的点云编码器或辅助补片信息压缩器可压缩辅助补片信息(关于点云的辅助信息)。
辅助补片信息压缩器压缩在上述补片生成、补片打包和几何生成处理中生成的辅助补片信息。辅助补片信息可包括以下参数:
用于标识投影平面(法向平面)的索引(集群索引);
补片的3D空间位置,即,补片的最小切向值(在补片3d移位切向轴上)、补片的最小双切值(在补片3d移位双切轴上)和补片的最小法向值(在补片3d移位法向轴上);
补片的2D空间位置和尺寸,即,水平尺寸(补片2d尺寸u)、垂直尺寸(补片2d尺寸v)、最小水平值(补片2d移位u)和最小垂直值(补片2d移位u);以及
关于各个块和补片的映射信息,即,候选索引(当补片基于关于补片的2D空间位置和尺寸信息按顺序设置时,多个补片可按交叠方式映射到一个块。在这种情况下,映射的补片构成候选列表,并且候选索引指示其数据存在于块中的补片的顺序位置)和局部补片索引(指示存在于帧中的一个补片的索引)。表X示出表示基于候选列表和局部补片索引在块和补片之间匹配的处理的伪代码。
候选列表的最大数量可由用户定义。
表1-1用于将块映射到补片的伪代码
图12示出根据实施方式的推拉式背景填充。
图像填充和组扩张(40006、40007、40008)
根据实施方式的图像填充器可基于推拉式背景填充技术利用无意义补充数据填充除了补片区域之外的空间。
图像填充是以无意义的数据填充补片区域以外的空间以改进压缩效率的处理。对于图像填充,可复制补片中靠近边界的列或行中的像素值以填充空白空间。另选地,如图所示,可使用推拉式背景填充方法。根据该方法,在逐渐降低非填充图像的分辨率并再次增加分辨率的处理中利用来自低分辨率图像的像素值填充空白空间。
组扩张是填充分别以两个层d0/d1和t0/t1配置的几何图像和纹理图像的空白空间的处理。在此处理中,利用同一位置的值的平均填充通过图像填充计算的两个层的空白空间。
图13示出根据实施方式的4*4块的示例性可能遍历顺序。
占用图压缩(40012、40011)
根据实施方式的占用图压缩器可压缩先前生成的占用图。具体地,可使用两个方法,即,用于有损压缩的视频压缩和用于无损压缩的熵压缩。下面描述视频压缩。
可通过以下操作执行熵压缩。
①如果构成占用图的块被完全占用,则对1进行编码并针对占用图的下一块重复相同的操作。否则,对0进行编码并执行操作②至⑤。
②确定对块的占用像素执行游程长度编码的最佳遍历顺序。图中示出4*4块的四个可能遍历顺序。
图14示出根据实施方式的示例性最佳遍历顺序。
如上所述,根据实施方式的熵压缩器可如上所述基于遍历顺序方案对块进行编码。
例如,从可能遍历顺序当中选择具有最小游程数量的最佳遍历顺序,并且对其索引进行编码。图中示出选择图13中的第三遍历顺序的情况。在所示情况下,游程数量可被最小化为2,因此第三遍历顺序可被选为最佳遍历顺序。
对游程数量进行编码。在图14的示例中,存在两个游程,因此对2进行编码。
④对第一游程的占用进行编码。在图14的示例中,对0进行编码,因为第一游程对应于未占用像素。
⑤对各个游程(游程数量那么多)的长度进行编码。在图14的示例中,依次对第一游程和第二游程的长度6和10进行编码。
视频压缩(40009、40010、40011)
根据实施方式的视频压缩器使用诸如HEVC或VVC的2D视频编解码器对在上述操作中生成的几何图像、纹理图像、占用图图像等的序列进行编码。
图15示出根据实施方式的示例性2D视频/图像编码器。
该图表示应用了上述视频压缩或视频压缩器40009、40010和40011的实施方式,是被配置为对视频/图像信号进行编码的2D视频/图像编码器15000的示意性框图。2D视频/图像编码器15000可包括在上述点云视频编码器中,或者可被配置成内部/外部组件。图15的各个组件可对应于软件、硬件、处理器和/或其组合。
这里,输入图像可包括上述几何图像、纹理图像(属性图像)和占用图图像。点云视频编码器的输出比特流(即,点云视频/图像比特流)可包括各个输入图像(即,几何图像、纹理图像(属性图像)、占用图图像等)的输出比特流。
帧间预测器15090和帧内预测器15100可被统称为预测器。即,预测器可包括帧间预测器15090和帧内预测器15100。变换器15030、量化器15040、逆量化器15050和逆变换器15060可包括在残差处理器中。残差处理器还可包括减法器15020。根据实施方式,上述图像分割器15010、减法器15020、变换器15030、量化器15040、逆量化器15050、逆变换器15060、加法器155、滤波器15070、帧间预测器15090、帧内预测器15100和熵编码器15110可由一个硬件组件(例如,编码器或处理器)配置。另外,存储器15080可包括解码画面缓冲器(DPB)并且可由数字存储介质配置。
图像分割器15010可将输入到编码器15000的图像(或者画面或帧)分割成一个或更多个处理单元。例如,处理单元可被称为编码单元(CU)。在这种情况下,CU可根据四叉树二叉树(QTBT)结构从编码树单元(CTU)或最大编码单元(LCU)递归地分割。例如,一个CU可基于四叉树结构和/或二叉树结构被分割为较低深度的多个CU。在这种情况下,例如,可首先应用四叉树结构,稍后可应用二叉树结构。另选地,可首先应用二叉树结构。根据本公开的编码处理可基于不再分割的最终CU来执行。在这种情况下,根据图像的特性基于编码效率,LCU可用作最终CU。必要时,CU可被递归地分割为较低深度的CU,并且最优大小的CU可用作最终CU。这里,编码处理可包括预测、变换和重构(将稍后描述)。作为另一示例,处理单元还可包括预测单元(PU)或变换单元(TU)。在这种情况下,PU和TU可从上述最终CU分割或划分。PU可以是样本预测的单元,TU可以是推导变换系数的单元和/或从变换系数推导残差信号的单元。
术语“单元”可与诸如块或区域的术语互换使用。在一般情况下,M×N块可表示以M列和N行配置的样本或变换系数的集合。样本通常可表示像素或像素值,并且可仅指示亮度分量的像素/像素值,或者仅指示色度分量的像素/像素值。“样本”可用作与一个画面(或图像)中的像素或画素对应的术语。
编码器15000可通过从输入图像信号(原始块或原始样本阵列)减去从帧间预测器15090或帧内预测器15100输出的预测信号(预测块或预测样本阵列)来生成残差信号(残差块或残差样本阵列),并且所生成的残差信号被发送到变换器15030。在这种情况下,如图所示,在编码器15000中从输入图像信号(原始块或原始样本阵列)减去预测信号(预测块或预测样本阵列)的单元可被称为减法器15020。预测器可对处理目标块(以下称为当前块)执行预测并且生成包括当前块的预测样本的预测块。预测器可基于当前块或CU确定是应用帧内预测还是帧间预测。如稍后将在各个预测模式的描述中描述的,预测器可生成关于预测的各种类型的信息(例如,预测模式信息),并将所生成的信息传送至熵编码器15110。关于预测的信息可由熵编码器15110编码并以比特流的形式输出。
帧内预测器15100可参考当前画面中的样本来预测当前块。根据预测模式,样本可邻近或远离当前块。在帧内预测下,预测模式可包括多个非定向模式和多个定向模式。非定向模式可包括例如DC模式和平面模式。根据预测方向的精细度,定向模式可包括例如33个定向预测模式或65个定向预测模式。然而,这仅是示例,可根据设置使用更多或更少的定向预测模式。帧内预测器15100可基于应用于邻近块的预测模式来确定要应用于当前块的预测模式。
帧间预测器15090可基于参考画面上运动向量所指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式下发送的运动信息量,可基于邻近块与当前块之间的运动信息的相关性基于每块、子块或样本来预测运动信息。运动信息可包括运动向量和参考画面索引。运动信息还可包括关于帧间预测方向(L0预测、L1预测、Bi预测等)的信息。在帧间预测的情况下,邻近块可包括存在于当前画面中的空间邻近块和存在于参考画面中的时间邻近块。包括参考块的参考画面可与包括时间邻近块的参考画面相同或不同。时间邻近块可被称为并置参考块或并置CU(colCU),并且包括时间邻近块的参考画面可被称为并置画面(colPic)。例如,帧间预测器15090可基于邻近块来配置运动信息候选列表并且生成指示要用于推导当前块的运动向量和/或参考画面索引的候选的信息。可基于各种预测模式执行帧间预测。例如,在跳过模式和合并模式下,帧间预测器15090可使用关于邻近块的运动信息作为关于当前块的运动信息。在跳过模式下,与合并模式不同,可不发送残差信号。在运动向量预测(MVP)模式下,邻近块的运动向量可用作运动向量预测器,并且可用信号通知运动向量差以指示当前块的运动向量。
由帧间预测器15090或帧内预测器15100生成的预测信号可用于生成重构信号或生成残差信号。
变换器15030可通过对残差信号应用变换技术来生成变换系数。例如,变换技术可包括离散余弦变换(DCT)、离散正弦变换(DST)、Karhunen–Loève变换(KLT)、基于图形的变换(GBT)或条件非线性变换(CNT)中的至少一个。这里,GBT是指从描绘像素之间的关系的图形获得的变换。CNT是指基于根据所有先前重构的像素生成的预测信号获得的变换。另外,变换操作可应用于具有相同大小的正方形像素块,或者可应用于具有正方形以外的可变大小的块。
量化器15040可将变换系数量化并将其发送到熵编码器15110。熵编码器15110可对量化的信号(关于量化的变换系数的信息)进行编码并输出编码的信号的比特流。关于量化的变换系数的信息可被称为残差信息。量化器15040可基于系数扫描顺序按照一维向量的形式重排块形式的量化的变换系数,并且基于一维向量形式的量化的变换系数来生成关于量化的变换系数的信息。熵编码器15110可采用诸如例如指数Golomb、上下文自适应可变长度编码(CAVLC)和上下文自适应二进制算术编码(CABAC)的各种编码技术。熵编码器15110可与量化的变换系数一起或分开对视频/图像重构所需的信息(例如,句法元素的值)进行编码。编码的信息(例如,编码的视频/图像信息)可基于网络抽象层(NAL)单元以比特流的形式发送或存储。比特流可经由网络发送或者可被存储在数字存储介质中。这里,网络可包括广播网络和/或通信网络,并且数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。发送从熵编码器15110输出的信号的发送器(未示出)和/或存储该信号的存储部(未示出)可被配置成编码器15000的内部/外部元件。另选地,发送器可被包括在熵编码器15110中。
从量化器15040输出的量化的变换系数可用于生成预测信号。例如,可通过逆量化器15050和逆变换器15060对量化的变换系数应用逆量化和逆变换,以重构残差信号(残差块或残差样本)。加法器155将重构的残差信号与从帧间预测器15090或帧内预测器15100输出的预测信号相加。由此,可生成重构信号(重构画面、重构块、重构样本阵列)。当如应用跳过模式的情况中一样不存在处理目标块的残差信号时,预测块可用作重构块。加法器155可被称为重构器或重构块生成器。如下所述,所生成的重构信号可用于当前画面中的下一处理目标块的帧内预测,或者可通过滤波用于下一画面的帧间预测。
滤波器15070可通过对重构信号应用滤波来改进主观/客观图像质量。例如,滤波器15070可通过对重构画面应用各种滤波技术来生成修改的重构画面,并且修改的重构画面可被存储在存储器15080(具体地,存储器15080的DPB)中。例如,各种滤波技术可包括去块滤波、样本自适应偏移、自适应环路滤波和双边滤波。如下面在滤波技术的描述中描述的,滤波器15070可生成关于滤波的各种类型的信息并且将所生成的信息传送至熵编码器15110。关于滤波的信息可由熵编码器15110编码并以比特流的形式输出。
发送到存储器15080的修改的重构画面可由帧间预测器15090用作参考画面。因此,当应用帧间预测时,编码器可避免编码器15000与解码器之间的预测失配并且改进编码效率。
存储器15080的DPB可存储修改的重构画面以由帧间预测器15090用作参考画面。存储器15080可存储关于推导(或编码)当前画面中的运动信息的块的运动信息和/或关于画面中已经重构的块的运动信息。所存储的运动信息可被传送到帧间预测器15090以用作关于空间邻近块的运动信息或关于时间邻近块的运动信息。存储器15080可存储当前画面中的重构块的重构样本并将重构样本传送至帧内预测器15100。
可跳过上述预测、变换和量化过程中的至少一个。例如,对于应用了脉冲编码模式(PCM)的块,可跳过预测、变换和量化过程,并且原始样本的值可被编码并以比特流的形式输出。
图16示出根据实施方式的示例性V-PCC解码处理。
V-PCC解码处理或V-PCC解码器可遵循图4的V-PCC编码处理(或编码器)的逆处理。图16中的各个组件可对应于软件、硬件、处理器和/或其组合。
解复用器16000将压缩的比特流解复用,以输出压缩的纹理图像、压缩的几何图像、压缩的占用图和压缩的辅助补片信息。
视频解压缩或视频解压缩器16001、16002将压缩的纹理图像和压缩的几何图像中的每一个解压缩(或解码)。
占用图解压缩或占用图解压缩器16003将压缩的占用图解压缩。
辅助补片信息解压缩或辅助补片信息解压缩器16004将辅助补片信息解压缩。
几何重构或几何重构器16005基于解压缩的几何图像、解压缩的占用图和/或解压缩的辅助补片信息来恢复(重构)几何信息。例如,在编码处理中改变的几何可被重构。
平滑或平滑器16006可对重构的几何应用平滑。例如,可应用平滑滤波。
纹理重构或纹理重构器16007从解压缩的纹理图像和/或平滑的几何重构纹理。
颜色平滑或颜色平滑器16008从重构的纹理平滑颜色值。例如,可应用平滑滤波。
结果,可生成重构的点云数据。
图中示出通过对压缩的占用图、几何图像、纹理图像和辅助补片信息进行解码来重构点云的V-PCC的解码处理。根据实施方式的各个处理如下操作。
视频解压缩(1600、16002)
视频解压缩是上述视频压缩的逆处理。在视频解压缩中,使用诸如HEVC或VVC的2D视频编解码器来将包含在上述处理中生成的几何图像、纹理图像和占用图图像的压缩比特流解码。
图17示出根据实施方式的示例性2D视频/图像解码器。
2D视频/图像解码器可遵循图15的2D视频/图像编码器的逆处理。
图17的2D视频/图像解码器是图16的视频解压缩或视频解压缩器。图17是执行视频/图像信号的解码的2D视频/图像解码器17000的示意性框图。2D视频/图像解码器17000可被包括在图1的点云视频解码器中,或者可被配置成内部/外部组件。图17中的各个组件可对应于软件、硬件、处理器和/或其组合。
这里,输入比特流可包括上述几何图像、纹理图像(属性图像)和占用图图像的比特流。重构的图像(或者输出图像或解码的图像)可表示上述几何图像、纹理图像(属性图像)和占用图图像的重构图像。
参照该图,帧间预测器17070和帧内预测器17080可被统称为预测器。即,预测器可包括帧间预测器17070和帧内预测器17080。逆量化器17020和逆变换器17030可被统称为残差处理器。即,根据实施方式,残差处理器可包括逆量化器17020和逆变换器17030。上述熵解码器17010、逆量化器17020、逆变换器17030、加法器17040、滤波器17050、帧间预测器17070和帧内预测器17080可由一个硬件组件(例如,解码器或处理器)配置。另外,存储器170可包括解码画面缓冲器(DPB)或者可由数字存储介质配置。
当输入包含视频/图像信息的比特流时,解码器17000可在与0.2-1图的编码器处理视频/图像信息的处理对应的处理中重构图像。例如,解码器17000可使用编码器中应用的处理单元来执行解码。因此,解码的处理单元可以是例如CU。CU可沿着四叉树结构和/或二叉树结构从CTU或LCU分割。然后,可通过播放器播放通过解码器17000解码和输出的重构的视频信号。
解码器17000可接收从编码器以比特流的形式输出的信号,并且所接收的信号可通过熵解码器17010解码。例如,熵解码器17010可解析比特流以推导图像重构(或画面重构)所需的信息(例如,视频/图像信息)。例如,熵解码器17010可基于诸如指数Golomb编码、CAVLC或CABAC的编码技术对比特流中的信息进行解码,输出图像重构所需的句法元素和残差的变换系数的量化值。更具体地,在CABAC熵解码中,可接收与比特流中的各个句法元素对应的信元(bin),并且可基于解码目标句法元素信息以及关于邻近解码目标块的解码信息或关于在先前步骤中解码的符号/信元的信息来确定上下文模型。然后,可根据所确定的上下文模型来预测信元出现的概率,并且可执行信元的算术解码以生成与各个句法元素的值对应的符号。根据CABAC熵解码,在确定上下文模型之后,可基于关于为下一符号/信元的上下文模型解码的符号/信元的信息来更新上下文模型。熵解码器17010所解码的信息中关于预测的信息可被提供给预测器(帧间预测器17070和帧内预测器17080),并且已由熵解码器17010执行了熵解码的残差值(即,量化的变换系数和相关参数信息)可被输入到逆量化器17020。另外,熵解码器17010所解码的信息中关于滤波的信息可被提供给滤波器17050。被配置为接收从编码器输出的信号的接收器(未示出)还可被配置成解码器17000的内部/外部元件。另选地,接收器可以是熵解码器17010的组件。
逆量化器17020可通过将量化的变换系数逆量化来输出变换系数。逆量化器17020可按二维块的形式重排量化的变换系数。在这种情况下,可基于编码器所实现的系数扫描顺序来执行重排。逆量化器17020可使用量化参数(例如,量化步长信息)对量化的变换系数执行逆量化并且获取变换系数。
逆变换器17030通过对变换系数进行逆变换来获取残差信号(残差块和残差样本阵列)。
预测器可对当前块执行预测并生成包括当前块的预测样本的预测块。预测器可基于从熵解码器17010输出的关于预测的信息来确定对当前块应用帧内预测还是帧间预测,并且可确定特定帧内/帧间预测模式。
帧内预测器265可参考当前画面中的样本来预测当前块。根据预测模式,样本可邻近或远离当前块。在帧内预测中,预测模式可包括多个非定向模式和多个定向模式。帧内预测器17080可使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
帧间预测器17070可基于参考画面上运动向量所指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式下发送的运动信息量,可基于邻近块与当前块之间的运动信息的相关性基于每块、子块或样本来预测运动信息。运动信息可包括运动向量和参考画面索引。运动信息还可包括关于帧间预测方向(L0预测、L1预测、Bi预测等)的信息。在帧间预测的情况下,邻近块可包括存在于当前画面中的空间邻近块和存在于参考画面中的时间邻近块。例如,帧间预测器17070可基于邻近块来配置运动信息候选列表,并且基于所接收的候选选择信息来推导当前块的运动向量和/或参考画面索引。可基于各种预测模式来执行帧间预测。关于预测的信息可包括指示当前块的帧间预测模式的信息。
加法器17040可将所获取的残差信号与从帧间预测器17070或帧内预测器17080输出的预测信号(预测块或预测样本阵列)相加,从而生成重构信号(重构画面、重构块或重构样本阵列)。当如应用跳过模式的情况中一样不存在用于处理目标块的残差信号时,预测块可用作重构块。
加法器17040可被称为重构器或重构块生成器。所生成的重构信号可用于当前画面中的下一处理目标块的帧内预测,或者可如下所述通过滤波用于下一画面的帧间预测。
滤波器17050可通过对重构信号应用滤波来改进主观/客观图像质量。例如,滤波器17050可通过对重构画面应用各种滤波技术来生成修改的重构画面,并且可将修改的重构画面发送到存储器250(具体地,存储器17060的DPB)。例如,各种滤波方法可包括去块滤波、样本自适应偏移、自适应环路滤波和双边滤波。
存储在存储器17060的DPB中的重构画面可用作帧间预测器17070中的参考画面。存储器17060可存储关于当前画面中推导(或解码)运动信息的块的运动信息和/或关于已经重构的画面中的块的运动信息。所存储的运动信息可被传送至帧间预测器17070以用作关于空间邻近块的运动信息或关于时间邻近块的运动信息。存储器17060可存储当前画面中的重构块的重构样本并将重构样本传送至帧内预测器17080。
在本公开中,关于编码装置100的滤波器160、帧间预测器180和帧内预测器185描述的实施方式可分别以相同或对应的方式应用于解码器17000的滤波器17050、帧间预测器17070和帧内预测器17080。
可跳过上述预测、变换和量化过程中的至少一个。例如,对于应用了脉冲编码模式(PCM)的块,可跳过预测、变换和量化过程,并且解码的样本的值可用作重构图像的样本。
占用图解压缩(16003)
这是上述占用图压缩的逆处理。占用图解压缩是通过将占用图比特流解压缩来重构占用图的处理。
辅助补片信息解压缩(16004)
可通过执行上述辅助补片信息压缩的逆处理并解码压缩的辅助补片信息比特流来重构辅助补片信息。
几何重构(16005)
这是上述几何图像生成的逆处理。最初,使用重构的占用图、包括在辅助补片信息中的关于补片的2D位置/尺寸信息以及关于块和补片之间的映射的信息从几何图像提取补片。然后,基于所提取的补片的几何图像和包括在辅助补片信息中的关于补片的3D位置信息在3D空间中重构点云。当与补片内的点(u,v)对应的几何值为g(u,v),并且在3D空间的法向轴、切向轴和双切轴上补片的位置坐标为(δ0,s0,r0)时,映射到点(u,v)的位置在3D空间中的法向、切向和双切坐标δ(u,v)、s(u,v)和r(u,v)可表示如下。
δ(u,v)=δ0+g(u,v);
s(u,v)=s0+u;
r(u,v)=r0+v。
平滑(16006)
与上述编码处理中的平滑相同,平滑是用于消除由于在压缩处理期间发生的图像质量劣化而可能出现在补片边界上的不连续的处理。
纹理重构(16007)
纹理重构是通过向构成平滑的点云的各个点指派颜色值来重构颜色点云的处理。这可通过基于上述几何重构处理中关于几何图像和点云的映射信息向点云中与3D空间中的相同位置对应的点指派与2D空间中的几何图像中相同的位置处的纹理图像像素所对应的颜色值来执行。
颜色平滑(16008)
颜色平滑类似于上述几何平滑的处理。颜色平滑是用于消除由于在压缩处理期间发生的图像质量劣化而可能出现在补片边界上的不连续的处理。颜色平滑可通过以下操作执行:
①使用K-D树等计算构成重构的点云的各个点的邻近点。可使用在第2.5节中描述的几何平滑处理中计算的邻近点信息。
②确定各个点是否位于补片边界上。这些操作可基于在上述几何平滑处理中计算的边界信息来执行。
③检查存在于边界上的点的邻近点的颜色值的分布并且确定是否要执行平滑。例如,当亮度值的熵小于或等于阈值局部条目(存在许多相似的亮度值)时,可确定对应部分不是边缘部分,并且可执行平滑。作为平滑方法,点的颜色值可被替换为邻近点的颜色值的平均。
图18是示出根据本公开的实施方式的发送装置的操作的流程图。
根据实施方式的发送装置可对应于图1的发送装置、图4的编码处理和图15的2D视频/图像编码器,或者执行其一些/所有操作。发送装置的各个组件可对应于软件、硬件、处理器和/或其组合。
发送终端使用V-PCC压缩和传输点云数据的操作处理可如图所示执行。
根据实施方式的点云数据发送装置可被称为发送装置。
关于补片生成器18000,生成用于点云的2D图像映射的补片。作为补片生成的结果生成辅助补片信息。所生成的信息可在几何图像生成、纹理图像生成和用于平滑的几何重构的处理中使用。
关于补片打包器18001,执行将所生成的补片映射到2D图像中的补片打包处理。作为补片打包的结果,可生成占用图。占用图可在几何图像生成、纹理图像生成和用于平滑的几何重构的处理中使用。
几何图像生成器18002基于辅助补片信息和占用图来生成几何图像。所生成的几何图像通过视频编码被编码为一个比特流。
编码预处理器18003可包括图像填充处理。通过将所生成的几何图像或编码的几何比特流解码而重新生成的几何图像可用于3D几何重构,然后经受平滑处理。
纹理图像生成器18004可基于(平滑的)3D几何、点云、辅助补片信息和占用图来生成纹理图像。所生成的纹理图像可被编码为一个视频比特流。
元数据编码器18005可将辅助补片信息编码为一个元数据比特流。
视频编码器18006可将占用图编码为一个视频比特流。
复用器18007可将所生成的几何图像、纹理图像和占用图的视频比特流和辅助补片信息的元数据比特流复用为一个比特流。
发送器18008可将比特流发送到接收终端。另选地,所生成的几何图像、纹理图像和占用图的视频比特流和辅助补片信息的元数据比特流可被处理成一个或更多个轨道数据的文件或被封装成片段,并且可通过发送器发送到接收终端。
图19是示出根据实施方式的接收装置的操作的流程图。
根据实施方式的接收装置可对应于图1的接收装置、图16的解码处理和图17的2D视频/图像编码器,或者执行其一些/所有操作。接收装置的各个组件可对应于软件、硬件、处理器和/或其组合。
接收终端使用V-PCC接收和重构点云数据的操作可如图所示执行。V-PCC接收终端的操作可遵循图18的V-PCC发送终端的操作的逆处理。
根据实施方式的点云数据接收装置可被称为接收装置。
所接收的点云的比特流在文件/片段解封装之后被解复用器19000解复用为压缩的几何图像、纹理图像、占用图的视频比特流和辅助补片信息的元数据比特流。视频解码器19001和元数据解码器19002对解复用的视频比特流和元数据比特流进行解码。3D几何由几何重构器19003基于解码的几何图像、占用图和辅助补片信息重构,然后经受平滑器19004执行的平滑处理。可由纹理重构器19005通过基于纹理图像向平滑的3D几何指派颜色值来重构颜色点云图像/画面。此后,可另外执行颜色平滑处理以改进主观/客观视觉质量,并且通过颜色平滑处理推导的修改的点云图像/画面通过渲染处理(通过例如点云渲染器)被显示给用户。在一些情况下,可跳过颜色平滑处理。
图20示出根据实施方式的用于点云数据的基于V-PCC的存储和流传输的示例性架构。
图20的系统的部分/全部可包括图1的发送装置和接收装置、图4的编码处理、图15的2D视频/图像编码器、图16的解码处理、图18的发送装置和/或图19的接收装置中的一些或全部。图中的各个组件可对应于软件、硬件、处理器和/或其组合。
图20至图22是示出系统另外连接到根据实施方式的发送装置和接收装置的结构的图。根据实施方式的系统的发送装置和接收装置可被称为根据实施方式的发送/接收设备。
在图20至图22所示的根据实施方式的设备中,与图18对应的发送装置等可生成适合于用于传输包含编码的点云数据的比特流的数据格式的容器。
根据实施方式的V-PCC系统可创建包括点云数据的容器,并且还可将有效发送/接收所需的附加数据添加到容器。
根据实施方式的接收装置可基于图20至图22所示的系统来接收和解析容器。与图19对应的接收装置等可从解析的比特流解码并恢复点云数据。
图中示出用于存储或流传输根据基于视频的点云压缩(V-PCC)压缩的点云数据的总体架构。存储和流传输点云数据的处理可包括获取处理、编码处理、传输处理、解码处理、渲染处理和/或反馈处理。
实施方式提出了一种有效地提供点云媒体/内容/数据的方法。
为了有效地提供点云媒体/内容/数据,点云获取器20000可获取点云视频。例如,一个或更多个相机可通过捕获、编排或生成点云来获取点云数据。通过该获取处理,可获取包括各个点的3D位置(可由x、y和z位置值等表示)(以下称为几何)和各个点的属性(颜色、反射率、透明度等)的点云视频。例如,可生成包含点云视频的Polygon文件格式(PLY)(或斯坦福三角形格式)文件等。对于具有多个帧的点云数据,可获取一个或更多个文件。在此处理中,可生成点云相关元数据(例如,与捕获有关的元数据等)。
对于捕获的点云视频可能需要用于改进内容的质量的后处理。在视频捕获处理中,可在相机设备所提供的范围内调节最大/最小深度。即使在调节之后,仍可能存在不想要区域的点数据。因此,可执行去除不想要区域(例如,背景)或识别连接的空间并填充空间孔洞的后处理。另外,从共享空间坐标系的相机提取的点云可通过基于通过校准处理获取的各个相机的位置坐标将各个点变换到全局坐标系的处理被整合为一条内容。由此,可获取具有高密度点的点云视频。
点云预处理器20001可生成点云视频的一个或更多个画面/帧。这里,画面/帧通常可表示以特定时间间隔表示一个图像的单元。当构成点云视频的点被分成一个或更多个补片(构成点云视频的点的集合,其中,属于同一补片的点在3D空间中彼此相邻并且在映射到2D图像时在6面边界框的平坦面之间在相同方向上映射)并映射到2D平面时,可生成二值图的占用图画面/帧,其以值0或1指示2D平面中的对应位置处是否存在数据。另外,可生成逐补片表示关于构成点云视频的各个点的位置(几何)的信息的深度图形式的几何画面/帧。可生成逐补片表示关于构成点云视频的各个点的颜色信息的纹理画面/帧。在此处理中,可生成从各个补片重构点云所需的元数据。元数据可包括关于补片的信息,例如各个补片在2D/3D空间中的位置和大小。这些画面/帧可按时间顺序连续地生成以构造视频流或元数据流。
点云视频编码器20002可对与点云视频有关的一个或更多个视频流进行编码。一个视频可包括多个帧,并且一个帧可对应于静止图像/画面。在本公开中,点云视频可包括点云图像/帧/画面,并且术语“点云视频”可与点云视频/帧/画面互换使用。点云视频编码器可执行基于视频的点云压缩(V-PCC)处理。为了压缩和编码效率,点云视频编码器可执行诸如预测、变换、量化和熵编码的一系列处理。编码的数据(编码的视频/图像信息)可按比特流的形式输出。基于V-PCC处理,如下所述,点云视频编码器可通过将点云视频分成几何视频、属性视频、占用图视频和元数据(例如,关于补片的信息)来对点云视频进行编码。几何视频可包括几何图像,属性视频可包括属性图像,占用图视频可包括占用图图像。作为辅助信息的补片数据可包括补片相关信息。属性视频/图像可包括纹理视频/图像。
点云图像编码器20003可对与点云视频有关的一个或更多个图像进行编码。点云图像编码器可执行基于视频的点云压缩(V-PCC)处理。为了压缩和编码效率,点云图像编码器可执行诸如预测、变换、量化和熵编码的一系列处理。编码的图像可按比特流的形式输出。基于V-PCC处理,如下所述,点云图像编码器可通过将点云图像分成几何图像、属性图像、占用图图像和元数据(例如,关于补片的信息)来对点云图像进行编码。
根据实施方式的点云视频编码器和/或点云图像编码器可根据实施方式生成PCC比特流(G-PCC和/或V-PCC比特流)。
根据实施方式,视频编码器20002、图像编码器20003、视频解码20006和图像解码可如上所述由一个编码器/解码器执行,并且可如图所示沿着单独的路径执行。
在文件/片段封装20004中,可将编码的点云数据和/或点云相关元数据封装为文件或片段以用于流传输。这里,点云相关元数据可接收自元数据处理器等。元数据处理器可包括在点云视频/图像编码器中,或者可被配置成单独的组件/模块。封装处理器可按诸如ISOBMFF的文件格式或按DASH片段等形式封装对应视频/图像/元数据。根据实施方式,封装处理器可包括文件格式的点云元数据。点云相关元数据可包括在例如ISOBMFF文件格式的各种级别的框中,或作为文件内的单独轨道中的数据。根据实施方式,封装处理器可将点云相关元数据封装成文件。
根据实施方式的封装或封装器可将G-PCC/V-PCC比特流分成一个或多个轨道并将其存储在文件中,并且还可封装用于该操作的信令信息。另外,包括在G-PCC/V-PCC比特流中的图集流可作为轨道存储在文件中,并且可存储相关信令信息。此外,存在于G-PCC/V-PCC比特流中的SEI消息可存储在文件中的轨道中,并且可存储相关信令信息。
发送处理器可根据文件格式来执行封装的点云数据的传输处理。发送处理器可包括在发送器中,或者可被配置成单独的组件/模块。发送处理器可根据传输协议处理点云数据。传输处理可包括经由广播网络传送的处理和通过宽带传送的处理。根据实施方式,发送处理器可从元数据处理器接收点云相关元数据以及点云数据,并且执行点云视频数据的传输处理。
发送器可经由数字存储介质或网络将点云比特流或包括比特流的文件/片段发送到接收装置的接收器。为了传输,可执行根据任何传输协议的处理。为传输而处理的数据可经由广播网络和/或通过宽带传送。数据可按照按需方式传送至接收侧。数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。发送器可包括用于生成预定文件格式的媒体文件的元件,并且可包括用于经由广播/通信网络传输的元件。接收器可提取比特流并将提取的比特流发送到解码器。
接收器可接收根据本公开的点云数据发送装置所发送的点云数据。根据传输信道,接收器可经由广播网络或通过宽带接收点云数据。另选地,可通过数字存储介质接收点云数据。接收器可包括将所接收的数据解码并根据用户的视口渲染数据的处理。
接收处理器可根据传输协议对所接收的点云视频数据执行处理。接收处理器可包括在接收器中,或者可被配置成单独的组件/模块。接收处理器可相反地执行上述发送处理器的处理,以与在发送侧执行的传输处理对应。接收处理器可将获取的点云视频传送至解封装处理器,并将获取的点云相关元数据传送至元数据解析器。
解封装处理器(文件/片段解封装)20005可将以文件的形式从接收处理器接收的点云数据解封装。解封装处理器可根据ISOBMFF等对文件进行解封装,并且可获取点云比特流或点云相关元数据(或单独的元数据比特流)。所获取的点云比特流可被传送至点云解码器,所获取的点云视频相关元数据(元数据比特流)可被传送至元数据处理器。点云比特流可包括元数据(元数据比特流)。元数据处理器可包括在点云解码器中,或者可被配置成单独的组件/模块。解封装处理器所获取的点云视频相关元数据可采取文件格式中的框或轨道的形式。必要时,解封装处理器可从元数据处理器接收解封装所需的元数据。点云相关元数据可被传送至点云解码器并在点云解码处理中使用,或者可被传送至渲染器并在点云渲染处理中使用。
点云视频解码器20006可接收比特流并通过执行与点云视频编码器的操作对应的操作来对视频/图像进行解码。在这种情况下,如下所述,点云视频解码器可通过将点云视频分成几何视频、属性视频、占用图视频和辅助补片信息来将点云视频解码。几何视频可包括几何图像,属性视频可包括属性图像,占用图视频可包括占用图图像。辅助信息可包括辅助补片信息。属性视频/图像可包括纹理视频/图像。
3D几何可基于解码的几何图像、占用图和辅助补片信息来重构,然后可经受平滑处理。可通过基于纹理图像向平滑的3D几何指派颜色值来重构颜色点云图像/画面。渲染器可渲染重构的几何和颜色点云图像/画面。渲染的视频/图像可通过显示器显示。渲染结果的全部或部分可通过VR/AR显示器或典型显示器显示给用户。
传感器/跟踪器(感测/跟踪)20007从用户或接收侧获取取向信息和/或用户视口信息并将取向信息和/或用户视口信息传送至接收器和/或发送器。取向信息可表示关于用户头部的位置、角度、移动等的信息,或者表示关于用户正通过其观看视频/图像的装置的位置、角度、移动等的信息。基于该信息,可计算关于3D空间中用户当前观看的区域的信息(即,视口信息)。
视口信息可以是关于3D空间中用户当前通过装置或HMD观看的区域的信息。诸如显示器的装置可基于取向信息、装置所支持的垂直或水平FOV等提取视口区域。可在接收侧提取或计算取向或视口信息。在接收侧分析的取向或视口信息可在反馈信道上发送至发送侧。
基于传感器/跟踪器获取的取向信息和/或指示用户当前观看的区域的视口信息,接收器可有效地从文件仅提取或解码特定区域(即,取向信息和/或视口信息所指示的区域)的媒体数据。另外,基于传感器/跟踪器所获取的取向信息和/或视口信息,发送器可有效地仅对特定区域(即,取向信息和/或视口信息所指示的区域)的媒体数据进行编码,或者生成并发送其文件。
渲染器可在3D空间中渲染解码的点云数据。渲染的视频/图像可通过显示器显示。用户可通过VR/AR显示器或典型显示器来观看渲染结果的全部或部分。
反馈处理可包括将可在渲染/显示处理中获取的各种类型的反馈信息传送至发送侧或接收侧的解码器。通过反馈处理,可在消费点云数据时提供交互性。根据实施方式,头部取向信息、指示用户当前观看的区域的视口信息等可在反馈处理中被传送至发送侧。根据实施方式,用户可与在VR/AR/MR/自驾驶环境中实现的内容交互。在这种情况下,与交互有关的信息可在反馈处理中被传送至发送侧或服务提供商。根据实施方式,可跳过反馈处理。
根据实施方式,上述反馈信息可不仅被发送至发送侧,而且在接收侧处消费。即,接收侧的解封装处理、解码和渲染处理可基于上述反馈信息来执行。例如,可基于取向信息和/或视口信息优先解封装、解码和渲染关于用户当前观看的区域的点云数据。
图21是根据实施方式的用于存储和发送点云数据的装置的示例性框图。
图21示出根据实施方式的点云系统。系统的部分/全部可包括图1的发送装置和接收装置、图4的编码处理、图15的2D视频/图像编码器、图16的解码处理、图18的发送装置和/或图19的接收装置中的一些或全部。另外,其可包括或对应于图20的系统的部分/全部。
根据实施方式的点云数据发送装置可如图所示配置。发送装置的各个元件可以是模块/单元/组件/硬件/软件/处理器。
点云的几何、属性、辅助数据和网格数据可各自被配置成单独的流或存储在文件中的不同轨道中。此外,它们可被包括在单独的片段中。
点云获取器(点云获取)21000获取点云。例如,一个或更多个相机可通过捕获、编排或生成点云来获取点云数据。通过该获取处理,可获取包括各个点的3D位置(可由x、y和z位置值等表示)(以下称为几何)和各个点的属性(颜色、反射率、透明度等)的点云数据。例如,可生成包括点云数据的Polygon文件格式(PLY)(或斯坦福三角形格式)文件等。对于具有多个帧的点云数据,可获取一个或更多个文件。在此处理中,可生成点云相关元数据(例如,与捕获有关的元数据等)。
补片生成器(或补片生成)21002从点云数据生成补片。补片生成器将点云数据或点云视频生成为一个或更多个画面/帧。画面/帧通常可表示以特定时间间隔表示一个图像的单元。当构成点云视频的点被分成一个或更多个补片(构成点云视频的点的集合,其中,属于同一补片的点在3D空间中彼此相邻并且在映射到2D图像时在6面边界框的平坦面之间在相同方向上映射)并映射到2D平面时,可生成二值图的占用图画面/帧,其以0或1指示2D平面中的对应位置处是否存在数据。另外,可生成逐补片表示关于构成点云视频的各个点的位置(几何)的信息的深度图形式的几何画面/帧。可生成逐补片表示关于构成点云视频的各个点的颜色信息的纹理画面/帧。在此处理中,可生成从各个补片重构点云所需的元数据。元数据可包括关于补片的信息,例如各个补片在2D/3D空间中的位置和大小。这些画面/帧可按时间顺序连续地生成以构造视频流或元数据流。
另外,补片可用于2D图像映射。例如,点云数据可被投影到立方体的各个面上。在补片生成之后,可基于所生成的补片来生成几何图像、一个或更多个属性图像、占用图、辅助数据和/或网格数据。
几何图像生成、属性图像生成、占用图生成、辅助数据生成和/或网格数据生成由预处理器或控制器执行。
在几何图像生成21002中,基于补片生成的结果来生成几何图像。几何表示3D空间中的点。使用占用图来生成几何图像,其包括与补片的2D图像打包有关的信息、辅助数据(补片数据)和/或基于补片的网格数据。几何图像与诸如在补片生成之后生成的补片的深度(例如,近、远)的信息有关。
在属性图像生成21003中,生成属性图像。例如,属性可表示纹理。纹理可以是与各个点匹配的颜色值。根据实施方式,可生成包括纹理的多个属性(例如,颜色和反射率)(N个属性)的图像。多个属性可包括材料信息和反射率。根据实施方式,属性可另外包括指示颜色的信息,其即使对于相同的纹理也可根据视角和光而变化。
在占用图生成21004中,从补片生成占用图。占用图包括指示像素(例如,对应几何或属性图像)中是否存在数据的信息。
在辅助数据生成21005中,生成包括关于补片的信息的辅助数据。即,辅助数据表示关于点云对象的补片的元数据。例如,其可表示诸如补片的法向量的信息。具体地,辅助数据可包括从补片重构点云所需的信息(例如,关于补片在2D/3D空间中的位置、大小等的信息以及投影(正常)平面标识信息、补片映射信息等)。
在网格数据生成21006中,从补片生成网格数据。网格表示邻近点之间的连接。例如,其可表示三角形形状的数据。例如,网格数据是指点之间的连接性。
点云预处理器或控制器生成与补片生成、几何图像生成、属性图像生成、占用图生成、辅助数据生成和网格数据生成有关的元数据。
点云发送装置响应于预处理器所生成的结果而执行视频编码和/或图像编码。点云发送装置可生成点云图像数据以及点云视频数据。根据实施方式,点云数据可仅具有视频数据,仅具有图像数据,和/或具有视频数据和图像数据二者。
视频编码器21007执行几何视频压缩、属性视频压缩、占用图压缩、辅助数据压缩和/或网格数据压缩。视频编码器生成包含编码的视频数据的视频流。
具体地,在几何视频压缩中,点云几何视频数据被编码。在属性视频压缩中,点云的属性视频数据被编码。在辅助数据压缩中,与点云视频数据关联的辅助数据被编码。在网格数据压缩中,点云视频数据的网格数据被编码。点云视频编码器的各个操作可并行执行。
图像编码器21008执行几何图像压缩、属性图像压缩、占用图压缩、辅助数据压缩和/或网格数据压缩。图像编码器生成包含编码的图像数据的图像。
具体地,在几何图像压缩中,点云几何图像数据被编码。在属性图像压缩中,点云的属性图像数据被编码。在辅助数据压缩中,与点云图像数据关联的辅助数据被编码。在网格数据压缩中,与点云图像数据关联的网格数据被编码。点云图像编码器的各个操作可并行执行。
视频编码器和/或图像编码器可从预处理器接收元数据。视频编码器和/或图像编码器可基于元数据来执行各个编码处理。
文件/片段封装器(文件/片段封装)21009以文件和/或片段的形式封装视频流和/或图像。文件/片段封装器执行视频轨道封装、元数据轨道封装和/或图像封装。
在视频轨道封装中,一个或更多个视频流可被封装到一个或更多个轨道。
在元数据轨道封装中,与视频流和/或图像有关的元数据可被封装在一个或更多个轨道中。元数据包括与点云数据的内容有关的数据。例如,其可包括初始观看取向元数据。根据实施方式,元数据可被封装到元数据轨道,或者可被一起封装在视频轨道或图像轨道中。
在图像封装中,一个或更多个图像可被封装到一个或更多个轨道或项目中。
例如,根据实施方式,当四个视频流和两个图像被输入到封装器时,四个视频流和两个图像可被封装在一个文件中。
根据实施方式的点云视频编码器和/或点云图像编码器可根据实施方式生成G-PCC/V-PCC比特流。
文件/片段封装器可从预处理器接收元数据。文件/片段封装器可基于元数据来执行封装。
通过文件/片段封装生成的文件和/或片段由点云发送装置或发送器发送。例如,片段可根据基于DASH的协议来传送。
根据实施方式的封装或封装器可将V-PCC比特流分成一个或多个轨道并将其存储在文件中,并且还可封装用于该操作的信令信息。另外,包括在V-PCC比特流上的图集流可作为轨道存储在文件中,并且可存储相关信令信息。此外,存在于V-PCC比特流中的SEI消息可存储在文件中的轨道中,并且可存储相关信令信息。
发送器可经由数字存储介质或网络将点云比特流或包括比特流的文件/片段发送到接收装置的接收器。为了传输,可执行根据任何传输协议的处理。为传输已处理的数据可经由广播网络和/或通过宽带传送。数据可按照按需方式传送至接收侧。数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。传送器可包括用于生成预定文件格式的媒体文件的元件,并且可包括用于经由广播/通信网络传输的元件。传送器从接收器接收取向信息和/或视口信息。传送器可将所获取的取向信息和/或视口信息(或用户所选择的信息)传送至预处理器、视频编码器、图像编码器、文件/片段封装器和/或点云编码器。基于取向信息和/或视口信息,点云编码器可对所有点云数据或取向信息和/或视口信息所指示的点云数据进行编码。基于取向信息和/或视口信息,文件/片段封装器可对所有点云数据或取向信息和/或视口信息所指示的点云数据进行封装。基于取向信息和/或视口信息,传送器可传送所有点云数据或取向信息和/或视口信息所指示的点云数据。
例如,预处理器可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。视频编码器和/或图像编码器可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。文件/片段封装器可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。发送器可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。
图22是根据实施方式的点云数据接收装置的示例性框图。
图22示出根据实施方式的点云系统。系统的部分/全部可包括图1的发送装置和接收装置、图4的编码处理、图15的2D视频/图像编码器、图16的解码处理、图18的发送装置和/或图19的接收装置中的一些或全部。另外,其可包括或对应于图20和图21的系统的部分/全部。
接收装置的各个组件可以是模块/单元/组件/硬件/软件/处理器。传送客户端可接收包括根据实施方式的点云数据发送装置所发送的比特流的点云数据、点云比特流或文件/片段。根据用于传输的信道,接收器可经由广播网络或通过宽带接收点云数据。另选地,可通过数字存储介质接收点云视频数据。接收器可包括将所接收的数据解码并根据用户视口渲染所接收的数据的处理。接收处理器可根据传输协议对所接收的点云数据执行处理。接收处理器可包括在接收器中,或者被配置成单独的组件/模块。接收处理器可相反地执行上述发送处理器的处理,以与发送侧执行的传输处理对应。接收处理器可将所获取的点云数据传送至解封装处理器并将所获取的点云相关元数据传送至元数据解析器。
传感器/跟踪器(感测/跟踪)获取取向信息和/或视口信息。传感器/跟踪器可将所获取的取向信息和/或视口信息传送至传送客户端、文件/片段解封装器和点云解码器。
传送客户端可基于取向信息和/或视口信息来接收所有点云数据或取向信息和/或视口信息所指示的点云数据。文件/片段解封装器可基于取向信息和/或视口信息将所有点云数据或取向信息和/或视口信息所指示的点云数据解封装。点云解码器(视频解码器和/或图像解码器)可基于取向信息和/或视口信息将所有点云数据或取向信息和/或视口信息所指示的点云数据解码。点云处理器可基于取向信息和/或视口信息来处理所有点云数据或取向信息和/或视口信息所指示的点云数据。
文件/片段解封装器(文件/片段解封装)22000执行视频轨道解封装、元数据轨道解封装和/或图像解封装。解封装处理器(文件/片段解封装)可将从接收处理器以文件的形式接收的点云数据解封装。解封装处理器(文件/片段解封装)可根据ISOBMFF等对文件或片段进行解封装,以获取点云比特流或点云相关元数据(或单独的元数据比特流)。所获取的点云比特流可被传送至点云解码器,所获取的点云相关元数据(或元数据比特流)可被传送至元数据处理器。点云比特流可包括元数据(元数据比特流)。元数据处理器可包括在点云视频解码器中,或者可被配置成单独的组件/模块。解封装处理器所获取的点云相关元数据可采取文件格式中的框或轨道的形式。必要时,解封装处理器可从元数据处理器接收解封装所需的元数据。点云相关元数据可被传送至点云解码器并在点云解码处理中使用,或者可被传送至渲染器并在点云渲染处理中使用。文件/片段解封装器可生成与点云数据有关的元数据。
在视频轨道解封装中,包含在文件和/或片段中的视频轨道被解封装。包括几何视频、属性视频、占用图、辅助数据和/或网格数据的视频流被解封装。
在元数据轨道解封装中,包含与点云数据和/或辅助数据有关的元数据的比特流被解封装。
在图像解封装中,包括几何图像、属性图像、占用图、辅助数据和/或网格数据的图像被解封装。
根据实施方式的解封装或解封装器可基于文件中的一个或更多个轨道来划分和解析(解封装)G-PCC/V-PCC比特流,并且还可解封装其信令信息。另外,包括在G-PCC/V-PCC比特流中的图集流可基于文件中的轨道来解封装,并且可解析相关信令信息。此外,存在于G-PCC/V-PCC比特流中的SEI消息可基于文件中的轨道来解封装,并且还可获取相关信令信息。
视频解码或视频解码器22001执行几何视频解压缩、属性视频解压缩、占用图解压缩、辅助数据解压缩和/或网格数据解压缩。视频解码器在与根据实施方式的点云发送装置的视频编码器所执行的处理对应的处理中对几何视频、属性视频、辅助数据和/或网格数据进行解码。
图像解码或图像解码器22002执行几何图像解压缩、属性图像解压缩、占用图解压缩、辅助数据解压缩和/或网格数据解压缩。图像解码器在与根据实施方式的点云发送装置的图像编码器所执行的处理对应的处理中对几何图像、属性图像、辅助数据和/或网格数据进行解码。
根据实施方式的视频解码和图像解码可如上所述由一个视频/图像解码器处理,并且可如图中所示沿着单独的路径执行。
视频解码和/或图像解码可生成与视频数据和/或图像数据有关的元数据。
根据实施方式的点云视频编码器和/或点云图像编码器可根据实施方式对G-PCC/V-PCC比特流进行解码。
在点云处理22003中,执行几何重构和/或属性重构。
在几何重构中,基于占用图、辅助数据和/或网格数据从解码的视频数据和/或解码的图像数据重构几何视频和/或几何图像。
在属性重构中,基于占用图、辅助数据和/或网格数据从解码的属性视频和/或解码的属性图像重构属性视频和/或属性图像。根据实施方式,例如,属性可以是纹理。根据实施方式,属性可表示多条属性信息。当存在多个属性时,根据实施方式的点云处理器执行多个属性重构。
点云处理器可从视频解码器、图像解码器和/或文件/片段解封装器接收元数据,并且基于元数据来处理点云。
点云渲染或点云渲染器渲染重构的点云。点云渲染器可从视频解码器、图像解码器和/或文件/片段解封装器接收元数据,并且基于元数据来渲染点云。
显示器将渲染结果实际显示在显示器上。
如图15至图19所示,在根据实施方式的方法/装置如图15至图19所示对点云数据进行编码/解码之后,包含点云数据的比特流可按文件和/或片段的形式封装和/或解封装。
例如,根据实施方式的点云数据发送装置可基于文件将点云数据封装。文件可包括包含点云的参数的V-PCC轨道、包含几何的几何轨道、包含属性的属性轨道以及包含占用图的占用轨道。
另外,根据实施方式的点云数据接收装置基于文件将点云数据解封装。文件可包括包含点云的参数的V-PCC轨道、包含几何的几何轨道、包含属性的属性轨道以及包含占用图的占用轨道。
上述操作可由图20的文件/片段封装器20004、图21的文件/片段封装器21009和图22的文件/片段封装器执行。
图23示出可结合根据实施方式的点云数据发送/接收方法/装置操作的示例性结构。
在根据实施方式的结构中,服务器2360、机器人2310、自驾驶车辆2320、XR装置2330、智能电话2340、家用电器2350和/或头戴式显示器(HMD)2370中的至少一个连接到云网络2300。这里,机器人2310、自驾驶车辆2320、XR装置2330、智能电话2340或家用电器2350可被称为装置。另外,XR装置1730可对应于根据实施方式的点云数据(PCC)装置,或者可在操作上连接到PCC装置。
云网络2300可表示构成云计算基础设施的一部分或存在于云计算基础设施中的网络。这里,云网络2300可使用3G网络、4G或长期演进(LTE)网络或5G网络来配置。
服务器2360可经由云网络2300连接到机器人2310、自驾驶车辆2320、XR装置2330、智能电话2340、家用电器2350和/或HMD 2370中的至少一个,并且可辅助所连接的装置2310至2370的至少一部分处理。
HMD 2370表示根据实施方式的XR装置和/或PCC装置的实现类型之一。根据实施方式的HMD型装置包括通信单元、控制单元、存储器、I/O单元、传感器单元和电源单元。
以下,将描述应用了上述技术的装置2310至2350的各种实施方式。图23所示的装置2310至2350可在操作上连接/联接到根据上述实施方式的点云数据发送和接收装置。
<PCC+XR>
XR/PCC装置2330可采用PCC技术和/或XR(AR+VR)技术,并且可被实现为HMD、设置在车辆中的平视显示器(HUD)、电视、移动电话、智能电话、计算机、可穿戴装置、家用电器、数字标牌、车辆、固定机器人或移动机器人。
XR/PCC装置2330可分析通过各种传感器或从外部装置获取的3D点云数据或图像数据并且生成关于3D点的位置数据和属性数据。由此,XR/PCC装置2330可获取关于周围空间或真实对象的信息,并且渲染和输出XR对象。例如,XR/PCC装置2330可使包括关于所识别的对象的辅助信息的XR对象与所识别的对象匹配并输出匹配的XR对象。
<PCC+XR+移动电话>
XR/PCC装置2330可通过应用PCC技术被实现为智能电话2340。
智能电话2340可基于PCC技术来解码和显示点云内容。
<PCC+自驾驶+XR>
自驾驶车辆2320可通过应用PCC技术和XR技术被实现为移动机器人、车辆、无人驾驶飞行器等。
应用了XR/PCC技术的自驾驶车辆2320可表示设置有用于提供XR图像的手段的自主车辆,或者作为XR图像中的控制/交互目标的自主车辆。具体地,作为XR图像中的控制/交互目标的自驾驶车辆2320可与XR装置2330相区分并且可操作上与之连接。
具有用于提供XR/PCC图像的手段的自驾驶车辆2320可从包括相机的传感器获取传感器信息,并且基于所获取的传感器信息来输出所生成的XR/PCC图像。例如,自驾驶车辆可具有HUD并向其输出XR/PCC图像以向乘客提供与真实对象或存在于画面上的对象对应的XR/PCC对象。
在这种情况下,当XR/PCC对象被输出到HUD时,XR/PCC对象的至少一部分可被输出以与乘客眼睛所指向的真实对象交叠。另一方面,当XR/PCC对象输出在自驾驶车辆内部提供的显示器上时,XR/PCC对象的至少一部分可被输出以与画面上的对象交叠。例如,自驾驶车辆可输出与诸如道路、另一车辆、交通灯、交通标志、两轮车、行人和建筑物的对象对应的XR/PCC对象。
根据实施方式的虚拟现实(VR)技术、增强现实(AR)技术、混合现实(MR)技术和/或点云压缩(PCC)技术适用于各种装置。
换言之,VR技术是仅提供真实世界对象、背景等作为CG图像的显示器技术。另一方面,AR技术是指显示在真实对象图像上虚拟创建的CG图像的技术。MR技术与上述AR技术的相似之处在于,要显示的虚拟对象与真实世界混合并组合。然而,MR技术不同于AR技术,AR技术在真实对象与作为CG图像创建的虚拟对象之间进行清楚的区分并且使用虚拟对象作为真实对象的补充对象,而MR技术将虚拟对象当作具有与真实对象相同特性的对象。更具体地,MR技术应用的示例是全息服务。
最近,VR、AR和MR技术通常被称为扩展现实(XR)技术,而非彼此清楚地区分。因此,本公开的实施方式适用于所有VR、AR、MR和XR技术。对于这些技术,可应用基于PCC、V-PCC和G-PCC技术的编码/解码。
根据实施方式的PCC方法/装置可应用于提供自驾驶服务的车辆。
提供自驾驶服务的车辆连接到PCC装置以进行有线/无线通信。
当根据实施方式的点云数据发送和接收装置(PCC装置)连接到车辆以进行有线/无线通信时,装置可接收并处理与可与自驾驶服务一起提供的AR/VR/PCC服务有关的内容数据并且将处理的内容数据发送到车辆。在点云数据发送和接收装置被安装在车辆上的情况下,点云发送和接收装置可根据通过用户接口装置输入的用户输入信号来接收并处理与AR/VR/PCC服务有关的内容数据并且将处理的内容数据提供给用户。根据实施方式的车辆或用户接口装置可接收用户输入信号。根据实施方式的用户输入信号可包括指示自驾驶服务的信号。
根据实施方式的点云数据发送方法/装置、根据实施方式的发送方法/装置的编码操作和编码器、点云数据发送方法/装置的封装和封装器、点云数据接收方法/装置、根据实施方式的点云数据接收方法/装置的解码操作和解码器、根据实施方式的点云数据接收方法/装置的解封装和解封装器可被简称为根据实施方式的方法/装置。
图24示出根据实施方式的点云数据的对象和对象的边界框。
图1中的发送装置10000和接收装置10005、图15中的编码器、图16中的解码处理、图17中的解码器、图18中的发送装置、图19中的接收装置、图20至图22中的用于处理点云数据的系统结构、图23中的XR装置2330等可处理作为点云数据的目标的对象24000。根据实施方式的方法/装置可配置、编码、封装、发送、接收、解封装、解码以及重构和渲染表示对象24000的点。另外,在此过程中,对象24000可基于围绕对象的边界框24010来处理。
根据实施方式的边界框24010可以是用于表示和处理对象24000的基本访问单元。即,根据实施方式的边界框24010可指基于六面体表示作为点云数据的目标的对象24000的框。根据实施方式,边界框24010可被划分并且可随时间改变(24020和24030)。
根据实施方式的边界框24010可被分成子边界框。当边界框被划分时,划分的边界框可被称为子边界框,并且整个边界框可被称为总边界框。
对象24000可随时间动态地改变。例如,对象24000可如24020所示移动,并且到达如24030所示的位置。在这种情况下,边界框24010可沿着对象24000移动。
根据实施方式的方法/装置提供与V-PCC内容的边界框有关的元数据,以根据用户视口支持对V-PCC内容的部分访问或空间访问。
根据实施方式的方法/装置限定关于点云比特流中的点云内容的边界框信息。
根据实施方式的方法/装置提出了一种在文件中存储并用信号通知与视频轨道关联的点云相关边界框信息的方法。
根据实施方式的方法/装置提供了一种在文件中存储与图像项目关联的点云边界框信息的方法。
根据实施方式的方法/装置涉及一种用于提供点云内容服务的发送装置或接收装置,其将V-PCC比特流有效地存储在文件内的轨道中并且为V-PCC比特流提供信令。
根据实施方式的方法/装置可通过在文件轨道中有效地存储并用信号通知V-PCC比特流来允许有效访问V-PCC比特流。为此,提供了一种用于存储文件的方法和/或用于将V-PCC比特流划分成一个或更多个轨道并存储在文件中的方法。
图25示出根据实施方式的动态点云对象的边界框和总边界框。
图25的边界框可对应于图24的边界框24010。
点云对象的边界框24010、25000和25010可随时间动态地改变。
框25000可被称为总边界框。
框25010可对应于边界框、部分边界框、子边界框等,而非总边界框。
可由文件封装器20004和21009和/或文件解封装器20005和22000基于图40和图41的文件结构处理框25000和框25010以用于发送/接收。例如,框25000和框25010中的每一个可由样本条目表示。由于框随时间改变,所以可基于样本条目信息来生成并处理动态改变的框25000和25010。框25000和框25010可描述对象25020。根据实施方式,可提供用于对象25020的锚点25030。
因此,根据实施方式的接收方法/装置或与其连接的播放器可接收关于随时间改变的边界框和总边界框的信息,以便允许点云对象/内容根据用户视口等的空间或部分访问。为此,根据实施方式的点云数据发送方法/装置可将根据实施方式的信息以信令或元数据的形式包括在V-PCC比特流中或文件中。
图26示出根据实施方式的包含点云数据的比特流的结构。
图26的比特流26000对应于图27的比特流27000。图26和图27的比特流由图1的发送装置10000、图1的点云视频编码器10002、图4的编码器、图15的编码器、图18的发送装置、图20的处理器20001和图20的视频/图像编码器20002、图21的处理器21001至21006、图21的视频/图像编码器21007和21008等生成。
图1的文件/片段封装器、图20的文件/片段封装器20004、图20的文件/片段封装器21009等将图26和图27的比特流存储在容器(图40和图41的文件等)中。
图26和图27的比特流中的比特流由图1的发送器10004等发送。
图1的接收装置10005、接收器10006等接收包括图26和图27的比特流的容器(图40和图41的文件等)。
由图1的文件/片段解封装器10007、图20的文件/片段解封装器20005、图22的文件/片段解封装器22000等从容器解析图26和图27的比特流。
由图1的点云视频解码器10008、图16的解码器、图17的解码器、图19的接收装置、图20的视频/图像解码器20006、图22的视频/图像解码器22001和22002、图22的处理器22003等将图26和图27的比特流解码、重构并提供给用户。
根据实施方式的点云数据的比特流26000中所包括的样本流V-PCC单元可包括V-PCC单元大小26010和V-PCC单元26020。
本文献中所采用的术语如下定义:VPS(V-PCC参数集);AD(图集数据);OVD(占用视频数据);GVD(几何视频数据);AVD(属性视频数据)。
各个V-PCC单元26020可包括V-PCC单元头26030和V-PCC单元有效载荷26040。V-PCC单元头26030可描述V-PCC单元类型。属性视频数据的V-PCC单元头可描述属性类型、其索引、所支持的相同属性类型的多个实例等。
占用、几何和属性视频数据的单元有效载荷26050、26060和26070可对应于视频数据单元。例如,占用视频数据26050、几何视频数据26060和属性视频数据26070可以是HEVCNAL单元。这种视频数据可由根据实施方式的视频解码器解码。
图27示出根据实施方式的包含点云数据的比特流的结构。
图27示出根据实施方式的包含要编码或解码的点云数据的比特流的结构,如参照图18至图25描述的。
根据实施方式的方法/装置生成动态点云对象的比特流。在这方面,提出了用于比特流的文件格式,并且提供了用于其的信令方案。
根据实施方式的方法/装置包括发送器、接收器和/或处理器以用于提供将V-PCC(=V3C)比特流有效地存储在文件的轨道中并提供其信令的点云内容服务。
根据实施方式的方法/装置提供了用于存储包含点云数据的V-PCC比特流的数据格式。因此,根据实施方式的接收方法/装置提供了用于接收点云数据并有效地访问点云数据的数据存储和信令方法。因此,基于用于有效访问的包含点云数据的文件的存储技术,发送器和/或接收器可提供点云内容服务。
根据实施方式的方法/装置将点云比特流(V-PCC比特流)有效地存储在文件的轨道中。其生成关于有效存储技术的信令信息并将其存储在文件中。为了支持对存储在文件中的V-PCC比特流的有效访问,除了(或通过修改/组合)根据实施方式的文件存储技术,可提供将V-PCC比特流划分成一个或更多个轨道并存储在文件中的技术。
本文献中采用的术语如下定义:
VPS:V-PCC参数集;AD:图集数据;OVD:占用视频数据;GVD:几何视频数据;AVD:属性视频数据;ACL:图集编码层;AAPS:图集适配参数集;ASPS:图集序列参数集,其可以是包含根据实施方式的句法元素的句法结构,这些句法元素应用于由在各个拼块组头中找到的句法元素所参考的ASPS中找到的句法元素的内容确定的零个或更多个完整编码图集序列(CAS)。
AFPS:图集帧参数集,其可包括包含句法元素的句法结构,这些句法元素应用于由在拼块组头中找到的句法元素的内容确定的零个或更多个完整编码图集帧。
SEI:补充增强信息。
图集:2D边界框的集合,例如,投影到与3D空间中的3D边界框对应的矩形帧中的补片。图集可表示点云的子集。
图集子比特流:从包含图集NAL比特流的一部分的V-PCC比特流提取的子比特流。
V-PCC内容:基于V-PCC(V3C)编码的点云。
V-PCC轨道:承载V-PCC比特流的图集比特流的体积视觉轨道。
V-PCC组件轨道:承载V-PCC比特流的占用图、几何或属性组件视频比特流中的任一个的2D视频编码数据的视频轨道。
将描述用于支持动态点云对象的部分访问的实施方式。实施方式包括与在文件系统级别的各个空间区域中所包括的V-PCC对象的一些数据关联的图集拼块组信息。此外,实施方式包括各个图集拼块组中所包括的标签和/或补片信息的扩展信令方案。
图27示出由根据实施方式的方法/装置发送和接收的数据中所包括的点云比特流的结构。
根据实施方式的压缩和解压缩点云数据的方法是指点云视觉信息的体积编码和解码。
包含编码点云序列(CPCS)的点云比特流(可被称为V-PCC比特流或V3C比特流)27000可包括样本流V-PCC单元27010。样本流V-PCC单元27010可承载V-PCC参数集(VPS)数据27020、图集比特流27030、2D视频编码占用图比特流27040、2D视频编码几何比特流27050以及零个或一个或更多个2D视频编码属性比特流27060。
点云比特流27000可包括样本流VPCC头27070。
ssvh_unit_size_precision_bytes_minus1:通过将1与该值相加而获得的值指定所有样本流V-PCC单元中的ssvu_vpcc_unit_size元素的精度(字节)。ssvh_unit_size_precision_bytes_minus1可在0至7的范围内。
样本流V-PCC单元27010的句法27080如下配置。各个样本流V-PCC单元可包括VPS、AD、OVD、GVD和AVD的V-PCC单元之一的类型。各个样本流V-PCC单元的内容可与样本流V-PCC单元中所包括的V-PCC单元相同的访问单元关联。
ssvu_vpcc_unit_size:指定后续vpcc_unit的大小(字节)。用于表示ssvu_vpcc_unit_size的比特数等于(ssvh_unit_size_precision_bytes_minus1+1)*8。
根据实施方式的方法/装置接收图27的包含编码点云数据的比特流,并且通过封装器20004或21009生成如图40和图41所示的文件。
根据实施方式的方法/装置接收如图40和图41所示的文件并且通过解封装器22000等对点云数据进行解码。
VPS27020和/或AD 27030被封装在轨道4(V3C轨道)40030中。
OVD 27040被封装在轨道2(占用轨道)40010中。
GVD 27050被封装在轨道3(几何轨道)40020中。
AVD 27060被封装在轨道1(属性轨道)40000中。
图28示出根据实施方式的V-PCC单元和V-PCC单元头。
图28示出上面参照图26描述的V-PCC单元26020和V-PCC单元头26030的句法。
根据实施方式的V-PCC比特流可包含一系列V-PCC序列。
vuh_unit_type的值等于VPCC_VPS的vpcc单元类型可预期为V-PCC序列中的第一V-PCC单元类型。所有其它V-PCC单元类型遵循该单元类型,而对其编码顺序没有任何附加限制。承载占用视频、属性视频或几何视频的V-PCC单元的V-PCC单元有效载荷由一个或更多个NAL单元组成。
VPCC单元可包括头和有效载荷。
VPCC单元头可基于VUH单元类型包括以下信息。
vuh_unit_type如下指示V-PCC单元26020的类型。
[表1]
vuh_unit_type 标识符 V-PCC单元类型 描述
0 VPCC_VPS V-PCC参数集 V-PCC级别参数
1 VPCC_AD 图集数据 图集信息
2 VPCC_OVD 占用视频数据 占用信息
3 VPCC_GVD 几何视频数据 几何信息
4 VPCC_AVD 属性视频数据 属性信息
5…31 VPCC_RSVD 预留 -
当vuh_unit_type指示属性视频数据(VPCC_AVD)、几何视频数据(VPCC_GVD)、占用视频数据(VPCC_OVD)或图集数据(VPCC_AD)时,在单元头中承载vuh_vpcc_parameter_setID和vuh_atlas_id。可传送与V-PCC单元关联的参数集ID和图集ID。
当单元类型为图集视频数据时,单元头可承载属性索引(vuh_attribute_index)、属性分区索引(vuh_attribute_partition_index)、图索引(vuh_map_index)和辅助视频标志(vuh_auxiliary_video_flag)。
当单元类型为几何视频数据时,可承载vuh_map_index和vuh_auxiliary_video_flag。
当单元类型为占用视频数据或图集数据时,单元头可包含附加预留比特。
vuh_vpcc_parameter_set_id指定活动V-PCC VPS的vps_vpcc_parameter_set_id的值。通过当前V-PCC单元的头中的vpcc_parameter_set_id,可知道VPS参数集的ID,并且可宣告V-PCC单元和V-PCC参数集之间的关系。
vuh_atlas_id指定与当前V-PCC单元对应的图集的索引。通过当前V-PCC单元的头中的vuh_atlas_id,可知道图集的索引,并且可宣告与V-PCC单元对应的图集。
vuh_attribute_index指示属性视频数据单元中承载的属性数据的索引。
vuh_attribute_partition_index指示属性视频数据单元中承载的属性维度组的索引。
当存在时,vuh_map_index指示当前几何或属性流的图索引。
vuh_auxiliary_video_flag等于1指示关联的几何或属性视频数据单元仅是RAW和/或EOM编码点视频。vuh_auxiliary_video_flag等于0指示关联的几何或属性视频数据单元可包含RAW和/或EOM编码点。
vuh_raw_video_flag等于1指示关联的几何或属性视频数据单元仅是RAW编码点视频。uh_raw_video_flag等于0指示关联的几何或属性视频数据单元可包含RAW编码点。当vuh_raw_video_flag不存在时,其值可被推断为等于0。
图29示出根据实施方式的V-PCC单元的有效载荷。
图29示出V-PCC单元有效载荷26040的句法。
当vuh_unit_type是V-PCC参数集(VPCC_VPS)时,V-PCC单元有效载荷包含vpcc_parameter_set()。
当vuh_unit_type是V-PCC图集数据(VPCC_AD)时,V-PCC单元有效载荷包含atlas_sub_bitstream()。
当vuh_unit_type是V-PCC累积视频数据(VPCC_OVD)、几何视频数据(VPCC_GVD)或属性视频数据(VPCC_AVD)时,V-PCC单元有效载荷包含video_sub_bitstream()。
图30示出根据实施方式的V-PCC参数集。
图30示出当根据实施方式的比特流的单元26020的有效载荷26040包含如图26至图29所示的参数集时参数集的句法。
图30的VPS可包括以下元素。
profile_tier_level()指定对比特流的限制,因此对将比特流解码所需的能力的限制。Profiles、tiers和levels也可用于指示各个解码器实现之间的互操作点。
vps_vpcc_parameter_set_id可提供V-PCC VPS的标识符以供其它句法元素参考。
sps_bounding_box_present_flag是指示是否存在关于比特流中的点云对象/内容的总边界框(可以是可包括随时间改变的整个边界框的边界框)的信息的标志。sps_bounding_box_present_flag等于1指示该比特流中承载的点云内容的总边界框偏移和大小信息。
当sps_bounding_box_present_flag具有特定值时,在VPS中包括以下边界框元素。
sps_bounding_box_offset_x指示该比特流中承载的点云内容的总边界框偏移的x偏移和大小信息(笛卡尔坐标)。当不存在时,sps_bounding_box_offset_x的值可被推断为0。
sps_bounding_box_offset_y指示该比特流中承载的点云内容的总边界框偏移的y偏移和大小信息(笛卡尔坐标)。当不存在时,sps_bounding_box_offset_y的值可被推断为0。
sps_bounding_box_offset_z指示该比特流中承载的点云内容的总边界框偏移的z偏移和大小信息(笛卡尔坐标)。当不存在时,sps_bounding_box_offset_z的值可被推断为0。
sps_bounding_box_size_width指示该比特流中承载的点云内容的总边界框偏移的宽度和大小信息(笛卡尔坐标)。当不存在时,sps_bounding_box_size_width的值可被推断为1。
sps_bounding_box_size_height指示该比特流中承载的点云内容的总边界框偏移的高度和大小信息(笛卡尔坐标)。当不存在时,sps_bounding_box_size_height的值可被推断为1。
sps_bounding_box_size_depth指示该比特流中承载的点云内容的总边界框偏移的深度和大小信息(笛卡尔坐标)。当不存在时,sps_bounding_box_size_depth的值可被推断为1。
vps_atlas_count_minus1加1指示当前比特流中所支持的图集的总数。
根据图集的数量,参数集中可进一步包括以下参数。
vps_frame_width[j]依据索引j的图集的整数亮度样本指示V-PCC帧宽度。该帧宽度是与索引j的图集的所有V-PCC组件关联的标称宽度。
vps_frame_height[j]依据索引j的图集的整数亮度样本指示V-PCC帧高度。该帧高度是与索引j的图集的所有V-PCC组件关联的标称高度。
vps_map_count_minus1[j]加1指示用于对索引j的图集的几何和属性数据进行编码的图的数量。
当vps_map_count_minus1[j]大于0时,参数集中可进一步包括以下参数。
根据vps_map_count_minus1[j]的值,参数集中可进一步包括以下参数。
vps_multiple_map_streams_present_flag[j]等于0指示索引j的图集的所有几何或属性图分别放置在单个几何或属性视频流中。vps_multiple_map_streams_present_flag[j]等于1指示索引j的图集的所有几何或属性图放置在单独的视频流中。
如果vps_multiple_map_streams_present_flag[j]指示1,则参数集中可进一步包括vps_map_absolute_coding_enabled_flag[j][i]。否则,vps_map_absolute_coding_enabled_flag[j][i]可具有值1。
vps_map_absolute_coding_enabled_flag[j][i]等于1指示索引j的图集的索引i的几何图在没有任何形式的图预测的情况下被编码。vps_map_absolute_coding_enabled_flag[j][i]等于0指示索引j的图集的索引i的几何图在编码之前首先从另一较早编码的图预测。
vps_map_absolute_coding_enabled_flag[j][0]等于1指示索引0的几何图在没有图预测的情况下被编码。
如果vps_map_absolute_coding_enabled_flag[j][i]为0并且i大于0,则参数集中可进一步包括vps_map_predictor_index_diff[j][i]。否则,vps_map_predictor_index_diff[j][i]可为0。
当vps_map_absolute_coding_enabled_flag[j][i]等于0时,vps_map_predictor_index_diff[j][i]用于计算索引j的图集的索引i的几何图的预测子。
vps_auxiliary_video_present_flag[j]等于1指示索引j的图集的辅助信息(即,RAW或EOM补片数据)可被存储在单独的视频流(称为辅助视频流)中。vps_auxiliary_video_present_flag[j]等于0指示索引j的图集的辅助信息不存储在单独的视频流中。
vps_raw_patch_enabled_flag[j]等于1指示具有索引j的图集的RAW编码点的补片可存在于比特流中。
当vps_raw_patch_enabled_flag[j]具有特定值时,VPS中包括以下元素。
vps_raw_separate_video_present_flag[j]等于1指示索引j的图集的RAW编码几何和属性信息可存储在单独的视频流中。
occupancy_information()包括占用视频相关参数集。
geometry_information()包括几何视频相关参数集。
attribute_information()包括属性视频相关参数集。
vps_extension_present_flag等于1指定句法元素vps_extension_length存在于vpcc_parameter_set句法结构中。vps_extension_present_flag等于0指定句法元素vps_extension_length不存在。
vps_extension_length_minus1加1指定跟随该句法元素的vps_extension_data_byte元素的数量。
根据vps_extension_length_minus1,参数集中可进一步包括扩展数据。
vps_extension_data_byte可具有可通过扩展包括的任何值。
根据实施方式的方法/装置可根据实施方式通过上述边界框相关信息在发送装置中生成包括在边界框中的点信息并将其发送至接收装置。接收装置可基于包括在边界框中的点信息有效地获取并解码与边界框有关的点云数据。此外,根据实施方式的与边界框有关的点包括边界框中所包括的点和边界框的原点。
图31示出根据实施方式的图集子比特流的结构。
图31示出图26的比特流26000的单元26020的有效载荷26040承载图集子比特流31000的示例。
承载图集子比特流的V-PCC单元的V-PCC单元有效载荷可包括一个或更多个样本流NAL单元31010。
根据实施方式的图集子比特流31000可包括样本流NAL头31020以及一个或更多个样本流NAL单元31010。
样本流NAL头31020可包括ssnh_unit_size_precision_bytes_minus1。ssnh_unit_size_precision_bytes_minus1加1指定所有样本流NAL单元中的ssnu_nal_unit_size元素的精度(字节)。ssnh_unit_size_precision_bytes_minus1可在0至7的范围内。
样本流NAL单元31010可包括ssnu_nal_unit_size。
ssnu_nal_unit_size指定后续NAL_unit的大小(字节)。用于表示ssnu_nal_unit_size的比特数可等于(ssnh_unit_size_precision_bytes_minus1+1)*8。
各个样本流NAL单元可包括图集序列参数集(ASPS)31031、图集帧参数集(AFPS)31040、一条或更多条图集拼块组信息31050以及一条或更多条补充增强信息(SEI)31060,其各自将在下面描述。根据实施方式,图集拼块组可被称为图集拼块。
图32示出根据实施方式的图集序列参数集。
图32示出当NAL单元类型为图集序列参数时NAL单元中所包括的RBSP数据结构的句法。
各个样本流NAL单元可包含图集参数集(例如,ASPS、AAPS或AFPS)、一个或更多个图集拼块组和SEI之一。
ASPS可包含应用于零个或更多个完整编码图集序列(CAS)的句法元素,其由各个拼块组头中找到的句法元素所参考的ASPS中找到的句法元素的内容确定。
ASPS可包括以下元素。
asps_atlas_sequence_parameter_set_id可提供图集序列参数集的标识符以供其它句法元素参考。
asps_frame_width依据当前图集的整数亮度样本指示图集帧宽度。
asps_frame_height依据当前图集的整数亮度样本指示图集帧高度。
asps_log2_patch_packing_block_size指定用于图集内的补片的水平和垂直放置的变量PatchPackingBlockSize的值。
asps_log2_max_atlas_frame_order_cnt_lsb_minus4指定用于图集帧顺序计数的解码处理中的变量MaxAtlasFrmOrderCntLsb的值。
asps_max_dec_atlas_frame_buffering_minus1加1以图集帧存储缓冲区为单位指定CAS的解码图集帧缓冲区的最大所需大小。
asps_long_term_ref_atlas_frames_flag等于0指定长期参考图集帧不用于CAS中的任何编码图集帧的帧间预测。asps_long_term_ref_atlas_frames_flag等于1指定长期参考图集帧可用于CAS中的一个或更多个编码图集帧的帧间预测。
asps_num_ref_atlas_frame_lists_in_asps指定图集序列参数集中所包括的ref_list_struct(rlsIdx)句法结构的数量。
根据asps_num_ref_atlas_frame_lists_in_asps的值,ref_list_struct(i)可被包括在图集序列参数集中。
asps_use_eight_orientations_flag等于0指定索引i的帧中索引j的补片的补片取向索引pdu_orientation_index[i][j]在0至1(含)的范围内。asps_use_eight_orientations_flag等于1指定索引i的帧中索引j的补片的补片取向索引pdu_orientation_index[i][j]在0至7(含)的范围内。
asps_45degree_projection_patch_present_flag等于0指定不针对当前图集拼块组用信号通知补片投影信息。asps_45degree_projection_present_flag等于1指定针对当前图集拼块组用信号通知补片投影信息。
当atgh_type不是SKIP_TILE_GRP时,在图集拼块组(或拼块)头中可包括以下元素。
asps_normal_axis_limits_quantization_enabled_flag等于1指定应用信号通知量化参数并用于量化补片数据单元、合并补片数据单元或补片间数据单元的法向轴相关元素。如果asps_normal_axis_limits_quantization_enabled_flag等于0,则不对补片数据单元、合并补片数据单元或补片间数据单元的任何法向轴相关元素应用量化。
当asps_normal_axis_limits_quantization_enabled_flag为1时,在图集拼块组(或拼块)头中可包括atgh_pos_min_z_quantizer。
asps_normal_axis_max_delta_value_enabled_flag等于1指定索引j的帧中索引i的补片的几何信息中可能存在的法向轴的最大标称移位值将在各个补片数据单元、合并补片数据单元或补片间数据单元的比特流中指示。如果asps_normal_axis_max_delta_value_enabled_flag等于0,则索引j的帧中索引i的补片的几何信息中可能存在的法向轴的最大标称移位值不应在各个补片数据单元、合并补片数据单元或补片间数据单元的比特流中指示。
当asps_normal_axis_max_delta_value_enabled_flag等于1时,在图集拼块组(或拼块)头中可包括atgh_pos_delta_max_z_quantizer。
asps_remove_duplicate_point_enabled_flag等于1指示不为当前图集重构重复点,其中重复点是具有与来自较低索引图的另一点相同的2D和3D几何坐标的点。asps_remove_duplicate_point_enabled_flag等于0指示重构所有点。
asps_max_dec_atlas_frame_buffering_minus1加1以图集帧存储缓冲区为单位指定用于CAS的解码图集帧缓冲区的最大所需大小。
asps_pixel_deinterleaving_flag等于1指示当前图集的解码几何和属性视频包含来自两个图的空间交织像素。asps_pixel_deinterleaving_flag等于0指示与当前图集对应的解码几何和属性视频仅包含来自单个图的像素。
asps_patch_precedence_order_flag等于1指示当前图集的补片优先级与解码顺序相同。asps_patch_precedence_order_flag等于0指示当前图集的补片优先级与解码顺序相反。
asps_patch_size_quantizer_present_flag等于1指示图集拼块组头中存在补片大小量化参数。asps_patch_size_quantizer_present_flag等于0指示补片大小量化参数不存在。
当asps_patch_size_quantizer_present_flag等于1时,在图集拼块组(或拼块)头中可包括atgh_patch_size_x_info_quantizer和atgh_patch_size_y_info_quantizer。
asps_enhanced_occupancy_map_for_depth_flag等于1指示当前图集的解码占用图视频包含与两个深度图之间的中间深度位置是否被占用有关的信息。asps_eom_patch_enabled_flag等于0指示解码占用图视频不包含与两个深度图之间的中间深度位置是否被占用有关的信息。
当asps_enhanced_occupancy_map_for_depth_flag或asps_point_local_reconstruction_enabled_flag等于1时,在ASPS中可包括asps_map_count_minus1。
asps_point_local_reconstruction_enabled_flag等于1指示在当前图集的比特流中可存在点局部重构模式信息。asps_point_local_reconstruction_enabled_flag等于0指示在当前图集的比特流中不存在与点局部重构模式有关的信息。
当asps_point_local_reconstruction_enabled_flag等于1时,在图集序列参数集中可承载asps_point_local_reconstruction_information。
asps_map_count_minus1加1指示可用于对当前图集的几何和属性数据进行编码的图的数量。
asps_enhanced_occupancy_map_fix_bit_count_minus1加1指示EOM码字的大小(比特)。
当asps_enhanced_occupancy_map_for_depth_flag和asps_map_count_minus1被设定为0时,在ASPS中可包括asps_enhanced_occupancy_map_fix_bit_count_minus1。
当asps_pixel_deinterleaving_enabled_flag(或asps_pixel_interleaving_flag)或asps_point_local_reconstruction_enabled_flag等于1时,asps_surface_thickness_minus1加1指定明确编码深度值和插值深度值之间的最大绝对差。
当asps_pixel_interleaving_flag或asps_point_local_reconstruction_enabled_flag等于1时,在ASPS中可包括asps_surface_thickness_minus1。
asps_pixel_interleaving_flag可对应于asps_map_pixel_deinterleaving_flag。
asps_map_pixel_deinterleaving_flag[i]等于1指示与当前图集中索引i的图对应的解码几何和属性视频包含与两个图对应的空间交织像素。asps_map_pixel_deinterleaving_flag[i]等于0指示与当前图集中索引i的图对应的解码几何和属性视频包含与单个图对应的像素。当不存在时,asps_map_pixel_deinterleaving_flag[i]的值可被推断为0。
asps_point_local_reconstruction_enabled_flag等于1指示当前图集的比特流中可存在点局部重构模式信息。asps_point_local_reconstruction_enabled_flag等于0指示当前图集的比特流中不存在与点局部重构模式有关的信息。
asps_vui_parameters_present_flag等于1指定存在vui_parameters()句法结构。asps_vui_parameters_present_flag等于0指定vui_parameters()句法结构不存在。
asps_extension_flag等于0指定ASPS RBSP句法结构中不存在asps_extension_data_flag句法元素。
asps_extension_data_flag指示用于扩展的数据包括在ASPS RBSP句法结构中。
rbsp_trailing_bits用于在添加1(停止比特)以指示RBSP数据结束之后用0填充剩余比特以便于字节对齐。
图33示出根据实施方式的图集帧参数集。
图33示出当NAL单元类型为NAL_AFPS时包含在NAL单元中的图集帧参数集的句法。
图集帧参数集(AFPS)包含句法结构,其包含应用于所有零个或更多个完整编码图集帧的句法元素。
afps_atlas_frame_parameter_set_id标识图集帧参数集以供其它句法元素参考。其它句法元素可参考的标识符可通过AFPS图集帧参数集来提供。
afps_atlas_sequence_parameter_set_id指定活动图集序列参数集的asps_atlas_sequence_parameter_set_id的值。
将参照图34描述atlas_frame_tile_information()。
afps_num_ref_idx_default_active_minus1加1指定atgh_num_ref_idx_active_override_flag等于0的拼块组的变量NumRefIdxActive的推断值。
afps_additional_lt_afoc_lsb_len指定用于参考图集帧列表的解码处理的变量MaxLtAtlasFrmOrderCntLsb的值。
afps_2d_pos_x_bit_count_minus1加1指定参考afps_atlas_frame_parameter_set_id的图集拼块组中索引j的补片的pdu_2d_pos_x[j]的定长表示中的比特数。
afps_2d_pos_y_bit_count_minus1加1指定参考afps_atlas_frame_parameter_set_id的图集拼中块组索引j的补片的pdu_2d_pos_y[j]的定长表示中的比特数。
afps_3d_pos_x_bit_count_minus1加1指定参考afps_atlas_frame_parameter_set_id的图集拼块组中的索引j的补片的pdu_3d_pos_x[j]的定长表示中的比特数。
afps_3d_pos_y_bit_count_minus1加1指定参考afps_atlas_frame_parameter_set_id的图集拼块组中的索引j的补片的pdu_3d_pos_y[j]的定长表示中的比特数。
afps_lod_bit_count指定参考afps_atlas_frame_parameter_set_id的图集拼块组中索引j的补片的pdu_lod[j]的定长表示中的比特数。
afps_override_eom_for_depth_flag等于1指示比特流中明确地存在afps_eom_number_of_patch_bit_count_minus1和afps_eom_max_bit_count_minus1的值。afps_override_eom_for_depth_flag等于0指示隐含地推导afps_eom_number_of_patch_bit_count_minus1和afps_eom_max_bit_count_minus1的值。
afps_eom_number_of_patch_bit_count_minus1加1指定用于表示与当前EOM属性补片关联的几何补片的数量的比特数。
afps_eom_max_bit_count_minus1加1指定用于表示与当前EOM属性补片关联的每几何补片的EOM点数的比特数。
afps_raw_3d_pos_bit_count_explicit_mode_flag等于1指示rpdu_3d_pos_x、rpdu_3d_pos_y和rpdu_3d_pos_z的比特计数被明确编码在参考afps_atlas_frame_parameter_set_id的图集拼块组头中。
afps_extension_flag等于0指定在AFPS RBSP句法结构中不存在afps_extension_data_flag句法元素。
afps_extension_data_flag可包含扩展相关数据。
图34示出根据实施方式的atlas_frame_tile_information。
图34示出包括在图33中的atlas_frame_tile_information的句法。
afti_single_tile_in_atlas_frame_flag等于1指定在各个图集帧中仅存在一个拼块参考AFPS。afti_single_tile_in_atlas_frame_flag等于0指定在各个图集帧中存在超过一个拼块参考AFPS。
afti_uniform_tile_spacing_flag等于1指定拼块列和行边界横跨图集帧均匀地分布并分别使用句法元素afti_tile_cols_width_minus1和afti_tile_rows_height_minus1用信号通知。afti_uniform_tile_spacing_flag等于0指定拼块列和行边界可或可不横跨图集帧均匀地分布并使用句法元素afti_num_tile_columns_minus1和afti_num_tile_rows_minus1以及句法元素对afti_tile_column_width_minus1[i]和afti_tile_row_height_minus1[i]的列表用信号通知。
当afti_uniform_tile_spacing_flag等于1时,afti_tile_cols_width_minus1加1以64样本为单位指定除了图集帧的最右拼块列之外的拼块列的宽度。
当afti_uniform_tile_spacing_flag等于1时,afti_tile_rows_height_minus1加1以64样本为单位指定除了图集帧的底部拼块行之外的拼块行的高度。
当afti_uniform_tile_spacing_flag不等于1时,图集帧拼块信息中包括以下元素。
当afti_uniform_tile_spacing_flag等于0时,afti_num_tile_columns_minus1加1指定划分图集帧的拼块列的数量。
当pti_uniform_tile_spacing_flag等于0时,afti_num_tile_rows_minus1加1指定划分图集帧的拼块行的数量。
afti_tile_column_width_minus1[i]加1以64样本为单位指定第i拼块列的宽度。
根据afti_num_tile_columns_minus1的值,afti_tile_column_width_minus1[i]包括在图集帧拼块信息中。
afti_tile_row_height_minus1[i]加1以64样本为单位指定第i拼块行的高度。
根据afti_num_tile_rows_minus1的值,afti_tile_row_height_minus1[i]包括在图集帧拼块信息中。
afti_single_tile_per_tile_group_flag等于1指定参考该AFPS的各个拼块组(或拼块)包括一个拼块。afti_single_tile_per_tile_group_flag等于0指定参考该AFPS的拼块组可包括超过一个拼块。当不存在时,afti_single_tile_per_tile_group_flag的值可被推断为等于1。
基于afti_num_tile_groups_in_atlas_frame_minus1的值,afti_tile_idx[i]包括在图集帧拼块信息中。
当afti_single_tile_per_tile_group_flag等于0时,在图集帧拼块信息中承载afti_num_tile_groups_in_atlas_frame_minus1。
afti_num_tile_groups_in_atlas_frame_minus1加1指定参考AFPS的各个图集帧中的拼块组的数量。afti_num_tile_groups_in_atlas_frame_minus1的值可在0至NumTilesInAtlasFrame-1(含)的范围内。当不存在并且afti_single_tile_per_tile_group_flag等于1时,afti_num_tile_groups_in_atlas_frame_minus1的值可被推断为等于NumTilesInAtlasFrame-1。
根据afti_num_tile_groups_in_atlas_frame_minus1那样大的值,图集帧拼块信息中包括以下元素。
afti_top_left_tile_idx[i]指定位于第i拼块组(拼块)的左上角的拼块的拼块索引。对于不等于j的任何i,afti_top_left_tile_idx[i]的值不等于afti_top_left_tile_idx[j]的值。当不存在时,afti_top_left_tile_idx[i]的值可被推断为等于i。afti_top_left_tile_idx[i]句法元素的长度可为Ceil(Log2(NumTilesInAtlasFrame)比特。
afti_bottom_right_tile_idx_delta[i]指定位于第i拼块组(拼块)的右下角的拼块的拼块索引与afti_top_left_tile_idx[i]之间的差。当afti_single_tile_per_tile_group_flag等于1时,afti_bottom_right_tile_idx_delta[i]的值被推断为等于0。afti_bottom_right_tile_idx_delta[i]句法元素的长度为Ceil(Log2(NumTilesInAtlasFrame-afti_top_left_tile_idx[i]))比特。
afti_signalled_tile_group_id_flag等于1指定用信号通知各个拼块组的拼块组ID。
当afti_signalled_tile_group_id_flag等于1时,可在图集帧拼块信息中承载afti_signalled_tile_group_id_length_minus1和afti_tile_group_id[i]。当该标志的值为0时,可不用信号通知拼块组ID。
afti_signalled_tile_group_id_length_minus1加1指定用于表示句法元素afti_tile_group_id[i](当存在时)和拼块组头中的句法元素atgh_address的比特数。
afti_tile_group_id[i]指定第i拼块组的拼块组ID。afti_tile_group_id[i]句法元素的长度为afti_signalled_tile_group_id_length_minus1+1比特。
根据afti_num_tile_groups_in_atlas_frame_minus1的值,afti_tile_group_id[i]包括在图集帧拼块信息中。
图35示出根据实施方式的补充增强信息(SEI)。
图35示出如图31所示的根据实施方式的比特流中包含的SEI信息的详细句法。
根据实施方式的接收方法/装置、系统等可基于SEI消息来解码、重构和显示点云数据。
基于各个payloadType,SEI消息指示有效载荷可包含对应数据。
例如,当payloadType等于12时,有效载荷可包含3D区域边界框信息(3d_bounding_box_info(payloadSize))。
当psd_unit_type为PSD_PREFIX_SEI时,根据实施方式的SEI信息可包括buffering_period(payloadSize)、pic_timing(payloadSize)、filler_payload(payloadSize)、user_data_registered_itu_t_t35(payloadSize)、user_data_unregistered(payloadSize)、recovery_point(payloadSize)、no_display(payloadSize)、time_code(payloadSize)、regional_nesting(payloadSize)、sei_manifest(payloadSize)、sei_prefix_indication(payloadSize)、geometry_transformation_params(payloadSize)、3d_bounding_box_info(payloadSize)(参见图35等)、3d_region_mapping(payloadSize)(参见图36等)和reserved_sei_message(payloadSize)。
当psd_unit_type为PSD_SUFFIX_SEI时,根据实施方式的SEI可包括filler_payload(payloadSize)、user_data_registered_itu_t_t35(payloadSize)、user_data_unregistered(payloadSize)、decoded_pcc_hash(payloadSize)和reserved_sei_message(payloadSize)。
图36示出根据实施方式的3D边界框SEI。
图36示出如图31所示的根据实施方式的比特流中包含的SEI信息的详细句法。
3dbi_cancel_flag等于1指示3D边界框信息SEI消息取消输出顺序上的任何先前3d边界框信息SEI消息的持久性。
object_id是比特流中承载的点云对象/内容的标识符。
3d_bounding_box_x指示对象的3D边界框的原点位置的x坐标值。
3d_bounding_box_y指示对象的3D边界框的原点位置的y坐标值。
3d_bounding_box_z指示对象的3D边界框的原点位置的z坐标值。
3d_bounding_box_delta_x指示在对象的x轴上边界框的大小。
3d_bounding_box_delta_y指示在对象的y轴上边界框的大小。
3d_bounding_box_delta_z指示在对象的z轴上边界框的大小。
图37示出根据实施方式的体积平铺信息。
图37示出如图31所示的根据实施方式的比特流中包含的SEI信息的详细句法。
体积平铺信息SEI消息
该SEI消息告知根据实施方式的V-PCC解码器避免解码的点云的不同特性,包括2D图集和3D空间内的区域的对应、区域的关系和标记以及与对象的关联。
该SEI消息的持久性范围可以是比特流的剩余部分或者直至遇到新体积平铺SEI消息。可仅更新SEI消息中指定的对应参数。如果未修改并且如果vti_cancel_flag的值不等于1,则从较早SEI消息先前定义的参数可持续存在。
图38示出根据实施方式的体积平铺信息对象。
图38示出图37中所包括的volumetric_tiling_info_objects信息的详细句法。
基于vtiObjectLabelPresentFlag、vti3dBoundingBoxPresentFlag、vtiObjectPriorityPresentFlag、tiObjectHiddenPresentFlag、vtiObjectCollisionShapePresentFlag、vtiObjectDependencyPresentFlag等,volumetric_tiling_info_objects可包括如图38所示的元素。
图39示出根据实施方式的体积平铺信息标签。
图39示出图37中所包括的volumetric_tiling_info_labels的详细句法。
vti_cancel_flag等于1指示体积平铺信息SEI消息取消输出顺序上的任何先前体积平铺信息SEI消息的持久性。vti_cancel_flag等于0指示体积平铺信息遵循如图37所示。
vti_object_label_present_flag等于1指示当前体积平铺信息SEI消息中存在对象标签信息。vti_object_label_present_flag等于0指示对象标签信息不存在。
vti_3d_bounding_box_present_flag等于1指示当前体积平铺信息SEI消息中存在3D边界框信息。vti_3d_bounding_box_present_flag等于0指示3D边界框信息不存在。
vti_object_priority_present_flag等于1指示当前体积平铺信息SEI消息中存在对象优先级信息。vti_object_priority_present_flag等于0指示对象优先级信息不存在。
vti_object_hidden_present_flag等于1指示当前体积平铺信息SEI消息中存在隐藏对象信息。vti_object_hidden_present_flag等于0指示隐藏对象信息不存在。
vti_object_collision_shape_present_flag等于1指示当前体积平铺信息SEI消息中存在对象冲突信息。vti_object_collision_shape_present_flag等于0指示对象冲突形状信息不存在。
vti_object_dependency_present_flag等于1指示当前体积平铺信息SEI消息中存在对象依赖信息。vti_object_dependency_present_flag等于0指示对象依赖信息不存在。
vti_object_label_language_present_flag等于1指示当前体积平铺信息SEI消息中存在对象标签语言信息。vti_object_label_language_present_flag等于0指示对象标签语言信息不存在。
vti_bit_equal_to_zero应等于0。
vti_object_label_language包含语言标签,之后是等于0x00的空终止字节。vti_object_label_language句法元素的长度可小于或等于255字节,不包括空终止字节。
vti_num_object_label_updates指示要通过当前SEI更新的对象标签的数量。
vti_label_idx[i]指示要更新的第i标签的标签索引。
vti_label_cancel_flag等于1指示索引等于vti_label_idx[i]的标签应被取消并被设定为等于空串。vti_label_cancel_flag等于0指示索引等于vti_label_idx[i]的标签应利用跟随该元素之后的信息更新。
vti_bit_equal_to_zero应等于0。
vti_label[i]指示第i标签的标签。vti_label[i]句法元素的长度可小于或等于255字节,不包括空终止字节。
vti_bounding_box_scale_log2指示要应用于可为对象指定的2D边界框参数的标度。
vti_3d_bounding_box_scale_log2指示要应用于可为对象指定的3D边界框参数的标度。
vti_3d_bounding_box_precision_minus8加8指示可为对象指定的3D边界框参数的精度。
vti_num_object_updates指示要通过当前SEI更新的对象的数量。
根据vti_num_object_update的值,体积平铺信息对象中包括对象相关信息(参见图38)。
vti_object_idx[i]指示要更新的第i对象的对象索引。
vti_object_cancel_flag[i]等于1指示索引等于i的对象应被取消,并且变量ObjectTracked[i]应被设定为0。其2D和3D边界框参数可被设定为等于0。vti_object_cancel_flag等于0指示索引等于vti_object_idx[i]的对象应利用跟随该元素之后的信息来更新并且变量ObjectTracked[i]应被设定为1。
vti_bounding_box_update_flag[i]等于1指示对于对象索引为i的对象存在2D边界框信息。vti_bounding_box_update_flag[i]等于0指示2D边界框信息不存在。
当vti_bounding_box_update_flag对于vti_object_idx[i]等于1时,vti_object_idx[i]的以下边界框元素包括在体积平铺信息对象中。
vti_bounding_box_top[i]指示当前图集帧内索引i的对象的边界框的左上位置的垂直坐标值。
vti_bounding_box_left[i]指示当前图集帧内索引i的对象的边界框的左上位置的水平坐标值。
vti_bounding_box_width[i]指示索引i的对象的边界框的宽度。
vti_bounding_box_height[i]指示索引i的对象的边界框的高度。
当vti_3d_bounding_box_update_flag[i]等于1时,以下边界框元素包括在体积平铺信息对象中。
vti_3d_bounding_box_update_flag[i]等于1指示对于对象索引为i的对象存在3D边界框信息。vti_3d_bounding_box_update_flag[i]等于0指示3D边界框信息不存在。
当vti_3d_bounding_box_update_flag对于vti_object_idx[i]等于1时,以下边界框相关元素包括在体积平铺信息对象中。
vti_3d_bounding_box_x[i]指示索引i的对象的3D边界框的原点位置的x坐标值。
vti_3d_bounding_box_y[i]指示索引i的对象的3D边界框的原点位置的y坐标值。
vti_3d_bounding_box_z[i]指示索引i的对象的3D边界框的原点位置的z坐标值。
vti_3d_bounding_box_delta_x[i]指示索引i的对象在x轴上的边界框的大小。
vti_3d_bounding_box_delta_y[i]指示索引i的对象在y轴上的边界框的大小。
vti_3d_bounding_box_delta_z[i]指示索引i的对象在z轴上的边界框的大小。
当vtiObjectPriorityPresentFlag等于1时,以下优先级相关元素包括在体积平铺信息对象中。
vti_object_priority_update_flag[i]等于1指示对于索引i的对象存在对象优先级更新信息。vti_object_priority_update_flag[i]等于0指示对象优先级信息不存在。
vti_object_priority_value[i]指示索引i的对象的优先级。优先级值越低,优先级越高。
当vtiObjectHiddenPresentFlag等于1时,vti_object_idx[i]的以下隐藏信息包括在体积平铺信息对象中。
vti_object_hidden_flag[i]等于1指示索引i的对象应被隐藏。vti_object_hidden_flag[i]等于0指示索引i的对象应变为存在。
当vtiObjectLabelPresentFlag等于1时,标签相关更新标志包括在体积平铺信息对象中。
vti_object_label_update_flag等于1指示对于对象索引为i的对象存在对象标签更新信息。vti_object_label_update_flag[i]等于0指示对象标签更新信息不存在。
当vti_object_label_update_flag对于vti_object_idx[i]等于1时,vti_object_idx[i]的对象标签索引包括在体积平铺信息对象中。
vti_object_label_idx[i]指示索引i的对象的标签索引。
当vtiObjectCollisionShapePresentFlag等于1时,对象冲突相关元素包括在体积平铺信息对象中。
vti_object_collision_shape_update_flag[i]等于1指示对于对象索引为i的对象存在对象冲突形状更新信息。vti_object_collision_shape_update_flag[i]等于0指示对象冲突形状更新信息不存在。
当vti_object_collision_shape_update_flag对于vti_object_idx[i]等于1时,vti_object_idx[i]的vti_object_collision_shape_id[i]包括在体积平铺信息对象中。
vti_object_collision_shape_id[i]指示索引i的对象的冲突形状ID。
当vtiObjectDependencyPresentFlag等于1时,对象依赖相关元素包括在体积平铺信息对象中。
vti_object_dependency_update_flag[i]等于1指示对于对象索引为i的对象存在对象依赖更新信息。vti_object_dependency_update_flag[i]等于0指示对象依赖更新信息不存在。
当vti_object_dependency_update_flag对于vti_object_idx[i]等于1时,vti_object_idx[i]的对象依赖相关元素包括在体积平铺信息对象中。
vti_object_num_dependencies[i]指示索引i的对象的依赖数量。
与vti_object_num_dependencies的值一样多的对象依赖索引包括在体积平铺信息对象中。
vti_object_dependency_idx[i][j]指示与索引i的对象具有依赖性的第j对象的索引。
图40示出根据实施方式的封装V-PCC数据容器的结构。
图41示出根据实施方式的封装V-PCC数据容器结构。
图1的发送装置10000的点云视频编码器10002、图4和图15的编码器、图18的发送装置、图29的视频/图像编码器20002和20003、图21的处理器和编码器21000至21008和图23的XR装置2330根据实施方式生成包含点云数据的比特流。
图1的文件/片段封装器10003、图20的文件/片段封装器20004、图21的文件/片段封装器21009和图23的XR装置将比特流格式化为图24和图25的文件结构。
类似地,图1的接收装置10005的文件/片段解封装模块10007、图20至图23的文件/片段解封装器20005和22000以及图23的XR装置2330接收和解封装文件并解析比特流。比特流由图1的点云视频解码器10008、图16和图17的解码器、图19的接收装置、图20至图23的视频/图像解码器20006、22001和22002以及图23的XR装置2330解码以恢复点云数据。
图40和图41示出根据ISOBMFF文件格式的点云数据容器的结构。
图40和图41示出用于基于多个轨道传送点云的容器的结构。
根据实施方式的方法/装置可基于多个轨道发送/接收包含点云数据和与点云数据有关的附加数据的容器文件。
轨道1 40000是属性轨道,并且可包含如图1、图4、图15、图18等所示编码的属性数据40040。
轨道2 40010是占用轨道,并且可包含如图1、图4、图15、图18等所示编码的几何数据40050。
轨道3 40020是几何轨道,并且可包含如图1、图4、图15、图18等所示编码的占用数据40060。
轨道4 40030是v-pcc(V3C)轨道,并且可包含图集比特流40070,其包含与点云数据有关的数据。
各个轨道由样本条目和样本组成。样本是与帧对应的单元。为了将第N帧解码,需要与第N帧对应的样本或样本条目。样本条目可包含描述样本的信息。
图41是图40的详细结构图。
v3c轨道41000对应于轨道4 40030。包含在v3c轨道41000中的数据可具有称为框的数据容器的格式。v3c轨道41000包含关于V3C组件轨道41010至41030的参考信息。
根据实施方式的接收方法/装置可接收如图41所示包含点云数据的容器(可称为文件)并解析V3C轨道,并且可基于包含在V3C轨道中的参考信息解码和恢复占用数据、几何数据和属性数据。
占用轨道41010对应于轨道2 40010并且包含占用数据。几何轨道41020对应于轨道340020并且包含几何数据。属性轨道41030对应于轨道1 40000并且包含属性数据。
以下,将详细描述包括在图40和图41的文件中的数据结构的句法。
体积视觉轨道
各个体积视觉场景由唯一体积视觉轨道表示。
ISOBMFF文件可包含多个场景,因此文件中可存在多个体积视觉轨道。
体积视觉轨道由MediaBox的HandlerBox中的体积视觉媒体处理器类型“volv”标识。体积视觉媒体头如下定义。
体积视觉媒体头
框类型:“vvhd”
容器:MediaInformationBox
强制:是
数量:恰好一个
体积视觉轨道应使用MediaInformationBox中的VolumetricVisualMediaHeaderBox。
aligned(8)class VolumetricVisualMediaHeaderBox
extends FullBox(‘vvhd’,version=0,1){
}
“version”是指定该框的版本的整数。
体积视觉样本条目
体积视觉轨道应使用VolumetricVisualSampleEntry。
class VolumetricVisualSampleEntry(codingname)
extends SampleEntry(codingname){
unsigned int(8)[32]compressor_name;
}
compressor_name是用于信息目的的名称。其可被格式化为固定32字节字段,第一字节被设定为要显示的字节数,之后是使用UTF-8编码的可显示数据的字节数,然后填充以完成总共32字节(包括大小字节)。该字段可被设定为0。
体积视觉样本
体积视觉样本的格式由编码系统定义。
V-PCC单元头框
该框可存在于V-PCC轨道(在样本条目中)和所有视频编码V-PCC组件轨道(在方案信息中)二者中。其包含各个轨道所承载的数据的V-PCC单元头。
aligned(8)class VPCCUnitHeaderBox
extends FullBox(‘vunt’,version=0,0){
vpcc_unit_header()unit_header;
}
框包含如上vpcc_unit_header()。
V-PCC解码器配置记录
该记录包含版本字段。该版本的规范定义了该记录的版本1。对记录的不兼容改变将由版本号的改变指示。如果版本号无法识别,则读者不会尝试解码该记录或应用其的流。
VPCCParameterSet的阵列包括如上定义的vpcc_parameter_set()。
atlas_setupUnit阵列应包括对于存在解码器配置记录的样本条目所参考的流恒定的图集参数集以及图集流SEI消息。
configurationVersion是版本字段。对记录的不兼容改变由版本号的改变指示。
sampleStreamSizeMinusOne加1指示该配置记录或应用该配置记录的流中的V-PCC样本中的所有样本流V-PCC单元的ssvu_vpcc_unit_size元素的精度(字节)。
numOfVPCCParameterSets指定解码器配置记录中用信号通知的V-PCC参数集(VPS)的数量。
VPCCParameterSet是类型VPCC_VPS的V-PCC单元的sample_stream_vpcc_unit()实例。该V-PCC单元包括vpcc_parameter_set()。
numOfAtlasSetupUnits指示该配置记录中用信号通知的图集流的设置阵列的数量。
Atlas_setupUnit是包含图集序列参数集、图集帧参数集或SEI图集NAL单元的sample_stream_vpcc_unit()实例。例如,可参考ISO/IEC 23090-5的描述。
根据实施方式,VPCCDecoderConfigurationRecord可如下定义。
configurationVersion是版本字段。对记录的不兼容改变由版本号的改变指示。
lengthSizeMinusOne加1指示该配置记录或应用该配置记录的流中的V-PCC样本中的所有样本流NAL单元的ssnu_nal_unit_size元素的精度(字节)。
sampleStreamSizeMinusOne加1指示该配置记录中用信号通知的所有样本流V-PCC单元中的ssvu_vpcc_unit_size元素的精度(字节)。
numOfVPCCParameterSets指定该配置记录中用信号通知的V-PCC参数集(VPS)的数量。
VPCCParameterSet是类型VPCC_VPS的V-PCC单元的sample_stream_vpcc_unit()实例。
numOfSetupUnitArrays指示所指示类型的图集NAL单元的阵列数量。
array_completeness等于1指示给定类型的所有图集NAL单元均在以下阵列中,没有在流中。array_completeness等于0指示所指示类型的附加图集NAL单元可在流中。默认值和允许值受样本条目名称约束。
NAL_unit_type指示以下阵列中的图集NAL单元的类型(应全部为该类型)。其取ISO/IEC 23090-5中定义的值。其可指示NAL_ASPS、NAL_PREFIX_SEI或NAL_SUFFIX_SEI图集NAL单元。
numNALUnits指示应用该配置记录的流的配置记录中所包括的所指示类型的图集NAL单元的数量。SEI阵列可仅包含“declarative”性质的SEI消息,即,作为整体提供关于流的信息的那些SEI消息。这种SEI的示例可以是用户数据SEI。
setupUnit是包含图集序列参数集、图集帧参数集或声明SEI图集NAL单元的sample_stream_nal_unit()实例。
V-PCC图集参数集样本组
用于样本分组的“vaps”grouping_type表示将V-PCC轨道中的样本指派给该样本组中承载的图集参数集。当存在grouping_type等于“vaps”的SampleToGroupBox时,存在具有相同分组类型的SampleGroupDescriptionBox并包含样本所属的该组的ID。
V-PCC轨道可包含grouping_type等于“vaps”的至多一个SampleToGroupBox。
numOfAtlasParameterSets指定样本组描述中用信号通知的图集参数集的数量。
atlasParameterSet是包含与该样本组关联的图集序列参数集、图集帧参数集的sample_stream_vpcc_unit()实例。
图集参数样本组描述条目可如下配置。
lengthSizeMinusOne加1指示该样本组描述中用信号通知的所有样本流NAL单元中的ssnu_nal_unit_size元素的精度(字节)。
atlasParameterSetNALUnit是包含与该样本组关联的图集序列参数集、图集帧参数集的sample_stream_nal_unit()实例。
V-PCC SEI样本组
用于样本分组的“vsei”grouping_type表示将V-PCC轨道中的样本指派给该样本组中承载的SEI信息。当存在grouping_type等于“vsei”的SampleToGroupBox时,存在具有相同分组类型的附随SampleGroupDescriptionBox并包含样本所属的该组的ID。
V-PCC轨道可包含grouping_type等于“vsei”的至多一个SampleToGroupBox。
numOfSEIs指定样本组描述中用信号通知的V-PCC SEI的数量。
sei是包含与该组样本关联的SEI信息的sample_stream_vpcc_unit()实例。
V-PCC SEI样本组描述条目可如下配置。
lengthSizeMinusOne加1指示该样本组描述中用信号通知的所有样本流NAL单元中的ssnu_nal_unit_size元素的精度(字节)。
seiNALUnit是包含与该组样本关联的SEI信息的sample_stream_nal_unit()实例。
V-PCC比特流的多轨道容器
多轨道ISOBMFF V-PCC容器的一般布局,其中V-PCC基本流中的V-PCC单元基于其类型被映射至容器文件内的各个轨道。多轨道ISOBMFF V-PCC容器中有两种类型的轨道:V-PCC轨道和V-PCC组件轨道。
V-PCC轨道(或v3c轨道)40030或41000是承载包括图集子比特流和序列参数集的V-PCC比特流中的体积视觉信息的轨道。
V-PCC组件轨道是受限视频方案轨道,其承载V-PCC比特流的占用图、几何和属性子比特流的2D视频编码数据。另外,对于V-PCC组件轨道满足以下条件:
a)在样本条目中,可在V-PCC系统中插入新框,该框记录了包含在该轨道中的视频流的作用;
b)可从V-PCC轨道至V-PCC组件轨道引入轨道参考,以建立由V-PCC轨道表示的特定点云中的V-PCC组件轨道的成员关系;
c)轨道头标志可被设定为0,以指示该轨道不直接对电影的总体铺设有贡献,而是对V-PCC系统有贡献。
根据实施方式的描述点云数据的图集比特流和信令信息(可称为参数、元数据等)可包括在称为框的数据结构中。根据实施方式的方法/装置可基于多个轨道将图集比特流和参数信息包括在v-pcc轨道(或V3C轨道)中并发送。此外,根据实施方式的方法/装置可在v-pcc轨道(或V3C轨道)的样本条目中发送根据实施方式的图集比特流和参数信息。
另外,根据实施方式的方法/装置可基于单个轨道在V-PCC基本流轨道中发送根据实施方式的图集比特流和参数信息。此外,根据实施方式的方法/装置可在V-PCC基本流轨道的样本条目或样本中发送图集比特流和参数信息。
属于同一V-PCC序列的轨道可时间对齐。横跨不同视频编码V-PCC组件轨道和V-PCC轨道对相同点云帧有贡献的样本具有相同的呈现时间。用于这些样本的V-PCC图集序列参数集和图集帧参数集的解码时间等于或早于点云帧的编排时间。另外,属于同一V-PCC序列的所有轨道具有相同的隐含或明确编辑列表。
注意:组件轨道中的基本流之间的同步可由ISOBMFF轨道定时结构(stts、ctts和cslg)或者电影碎片中的等效机制处理。
基于该布局,V-PCC ISOBMFF容器包括以下内容(参见图24):
-V-PCC轨道,其包含V-PCC参数集(在样本条目中)以及承载(单元类型VPCC_VPS的)V-PCC参数集V-PCC单元和(单元类型VPCC_AD的)图集V-PCC单元的有效载荷的样本。该轨道还包括承载视频压缩V-PCC单元(即,单元类型VPCC_OVD、VPCC_GVD和VPCC_AVD)的有效载荷的其它轨道的轨道参考。
-受限视频方案轨道,其中样本包含占用图数据的视频编码基本流的访问单元(即,类型VPCC_OVD的V-PCC单元的有效载荷)。
-一个或更多个受限视频方案轨道,其中样本包含几何数据的视频编码基本流的访问单元(即,类型VPCC_GVD的V-PCC单元的有效载荷)。
-零个或更多个受限视频方案轨道,其中样本包含属性数据的视频编码基本流的访问单元(即,类型VPCC_AVD的V-PCC单元的有效载荷)。
V-PCC轨道
V-PCC轨道样本条目
样本条目类型:“vpc1”、“vpcg”
容器:SampleDescriptionBox
强制:“vpc1”或“vpcg”样本条目是强制的数量:可存在一个或更多个样本条目
V-PCC轨道使用扩展VolumetricVisualSampleEntry的VPCCSampleEntry。样本条目类型为“vpc1”或“vpcg”。
VPCC样本条目包含VPCCConfigurationBox。该框包括VPCCDecoderConfigurationRecord。
在“vpc1”样本条目下,所有图集序列参数集、图集帧参数集或V-PCC SEI在setupUnit阵列中。
在“vpcg”样本条目下,图集序列参数集、图集帧参数集和V-PCC SEI可存在于该阵列中或流中。
可选BitRateBox可存在于VPCC体积样本条目中以用信号通知V-PCC轨道的比特率信息。
体积序列:
根据实施方式的用于发送点云数据的方法可包括:对点云数据进行编码;封装点云数据;以及发送点云数据。
根据实施方式,点云数据的封装可包括生成包含点云数据的一个或更多个轨道。
根据实施方式,一个或更多个轨道可包含点云数据,例如,属性数据、占用数据、几何数据和/或与之有关的参数(元数据或信令信息)。具体地,轨道可包括描述样本的样本条目和/或样本。多个轨道可被称为第一轨道、第二轨道等。
根据实施方式的点云数据接收装置可包括:接收器,其被配置为接收点云数据;解封装器,其被配置为解析点云数据;以及解码器,其被配置为对点云数据进行解码。
根据实施方式的解封装器可解析包含点云数据的一个或更多个轨道。
图42示出根据实施方式的V-PCC样本条目。
图42示出图40的V-PCC轨道(或V3C轨道)40030和图41的V3C轨道41000中所包括的样本条目的结构图。
图42示出根据本公开的实施方式的示例性V-PCC样本条目结构。样本条目可包含V-PCC参数集(VPS)42000,并且可选地包含图集序列参数集(ASPS)42010、图集帧参数集(AFPS)42020和/或SEI 42030。
根据实施方式的方法/装置可将点云数据存储在文件中的轨道中。此外,与点云数据有关的参数(或信令信息)可在轨道的样本或样本条目中存储和发送/接收。
可通过图26的生成和解析V-PCC比特流的实施方式来生成和解析图42的V-PCC比特流。
V-PCC比特流可包含样本流V-PCC头、样本流头、V-PCC单元头框和样本流V-PCC单元。
V-PCC比特流对应于参照图26和图27描述的V-PCC比特流,或者是其扩展形式的示例。
V-PCC轨道样本格式
V-PCC轨道中的各个样本对应于单个点云帧。各种组件轨道中与该帧对应的样本应具有与V-PCC轨道样本相同的编排时间。各个V-PCC样本可包括一个或更多个图集NAL单元。
/>
VPCCDecoderConfigurationRecord指示匹配V-PCC样本条目中的解码器配置记录。
nalUnit包含样本流NAL单元格式的单个图集NAL单元。
NALUnitLength指示后续NAL单元的大小(字节)。
NALUnit包含单个图集NAL单元。
V-PCC轨道同步样本:
V-PCC轨道中的同步样本(随机访问点)是V-PCC IRAP编码补片数据访问单元。可在同步样本处重复图集参数集以便于随机访问(如果需要的话)。
视频编码V-PCC组件轨道
使用MPEG指定的编解码器的编码视频轨道的承载在ISOBMFF推导规范中很好地定义。例如,对于AVC和HEVC编码视频的承载,可参考ISO/IEC 14496-15。如果需要其它编解码器类型,则ISOBMFF可提供扩展机构。
由于在播放器侧没有重构点云的情况下显示来自属性、几何或占用图轨道的解码帧没有意义,所以可为这些视频编码轨道定义受限视频方案类型。
受限视频方案
V-PCC组件视频轨道可在文件中被表示为受限视频,并由其受限视频样本条目的RestrictedSchemeInfoBox的SchemeTypeBox的scheme_type字段中的“pccv”标识。
应该注意,对用于对属性、几何和占用图V-PCC组件进行编码的视频编解码器没有限制。此外,这些组件可使用不同的视频编解码器编码。
方案信息
SchemeInformationBox可存在并且包含VPCCUnitHeaderBox。
参考V-PCC组件轨道
为了将V-PCC轨道链接到组件视频轨道,可向V-PCC轨道的TrackBox内的TrackReferenceBox添加三个TrackReferenceTypeBoxe,每个组件一个。TrackReferenceTypeBox包含指定V-PCC轨道所参考的视频轨道的track_ID的阵列。TrackReferenceTypeBox的reference_type标识诸如占用图、几何或属性或占用图的组件类型。轨道参考类型有:
“pcco”:参考轨道包含视频编码占用图V-PCC组件;
“pccg”:参考轨道包含视频编码几何V-PCC组件;
“pcca”:参考轨道包含视频编码属性V-PCC组件。
由参考受限视频轨道承载并在轨道的RestrictedSchemeInfoBox中用信号通知的V-PCC组件的类型应匹配来自V-PCC轨道的轨道参考的参考类型。
图43示出根据实施方式的轨道替换和分组。
图43示出应用ISOBMFF文件结构的轨道的替换或分组的示例。在发送侧,可由封装器20004等执行替换或分组,在接收侧,可由解封装器20005等执行解析。
轨道替代和轨道分组:
具有相同alternate_group值的V-PCC组件轨道是相同V-PCC组件的不同编码版本。体积视觉场景可被替代编码。在这种情况下,作为彼此的替代的所有V-PCC轨道在其TrackHeaderBox中具有相同的alternate_group值。
类似地,当表示V-PCC组件之一的2D视频轨道以替代编码时,可存在对那些替代之一的轨道参考,并且这些替代形成备选组。
图43示出基于文件结构构成V-PCC内容的V-PCC组件轨道。当给出相同的图集组ID时,存在ID为10、11或12的情况。作为属性视频的轨道2和5可彼此互换使用。作为几何视频的轨道3和6可彼此替换。作为占用视频的轨道4和7可彼此替换。
V-PCC比特流的单轨道容器:
V-PCC数据的单轨道封装需要V-PCC编码基本比特流由单轨道声明表示。
在V-PCC编码比特流的简单ISOBMFF封装的情况下可使用PCC数据的单轨道封装。这种比特流可直接被存储为单轨道而无需进一步处理。V-PCC单元头数据结构可在比特流中保持原样。V-PCC数据的单轨道容器可被提供给媒体工作流以便于进一步处理(例如,多轨道文件生成、转码、DASH分段等)。
包含单轨道封装V-PCC数据的ISOBMFF文件在其FileTypeBox的compatible_brands[]列表中包含“pcst”。
V-PCC基本流轨道:
样本条目类型:“vpe1”、“vpeg”
容器:SampleDescriptionBox
强制:“vpe1”或“vpeg”样本条目是强制的
数量:可存在一个或更多个样本条目
V-PCC基本流轨道使用样本条目类型为“vpe1”或“vpeg”的VolumetricVisualSampleEntry。
VPCC基本流样本条目包含VPCCConfigurationBox。
在“vpe1”样本条目下,所有图集序列参数集、图集帧参数集和SEI可在setupUnit阵列中。在“vpeg”样本条目下,图集序列参数集、图集帧参数集和SEI可存在于该阵列中或流中。
体积序列:
V-PCC基本流样本格式
V-PCC基本流样本可由属于相同呈现时间的一个或更多个V-PCC单元组成。各个这种样本具有独特的呈现时间、大小和持续时间。样本可以是同步样本或者根据其它V-PCC基本流样本解码。
V-PCC基本流同步样本:
V-PCC基本流同步样本可满足以下所有条件:
-可独立地解码;
-按解码顺序在同步样本之后的样本的解码均不依赖于同步样本之前的任何样本;以及
-按解码顺序在同步样本之后的所有样本可成功解码。
V-PCC基本流子样本:
V-PCC基本流子样本是包含在V-PCC基本流样本中的V-PCC单元。
V-PCC基本流轨道在其SampleTableBox中或在其各个MovieFragmentBox的TrackFragmentBox中包含SubSampleInformationBox,其列出V-PCC基本流子样本。
表示子样本的V-PCC单元的32比特单元头可被复制到SubSampleInformationBox中的子样本条目的32比特codec_specific_parameters字段。各个子样本的V-PCC单元类型可通过解析SubSampleInformationBox中的子样本条目的codec_specific_parameters字段来标识。
下面描述的信息可如下传送。例如,当点云数据为静态的时,其可被承载在多轨道V3C轨道的样本条目或单轨道的基本轨道的样本条目中。当点云数据为动态的时,该信息可被承载在单独的定时元数据轨道中。
图44示出根据实施方式的3D边界框信息结构。
图44示出根据图40和图41的文件中所包括的3D边界框。例如,3D边界框可被承载在作为点云比特流的容器的文件的多轨道和/或单轨道中。其可根据实施方式由文件/片段封装器20004和21009和文件/片段解封装器20005和22000生成和解析。
根据实施方式,3D边界框结构可提供点云数据的3D边界框,包括3D边界框的X、Y、Z偏移以及点云数据的3D边界框的宽度、高度和深度。
bb_x、bb_y和bb_z分别指定点云数据的3D边界框的原点位置在坐标系中的x、y和z坐标值。
bb_delta_x、bb_delta_y和bb_delta_z分别指示点云数据的3D边界框在坐标系中相对于原点沿着x、y和z轴的延伸。
根据实施方式的文件/片段封装器20004和21009、文件/片段解封装器20005和22000等可基于作为点云比特流的容器的文件的多轨道和/或单轨道来生成和解析点云边界框。
边界信息框(VPCCBoundingInformationBox)可存在于多轨道的V-PCC轨道和/或单轨道的V-PCC基本流轨道的样本条目中。当其存在于V-PCC轨道或V-PCC基本流轨道的样本条目中时,VPCCBoundingInformationBox可提供关于关联或承载的点云数据的总边界框信息。
aligned(8)class VPCCBoundingInformationBox extends FullBox(‘vpbb’,0,0){
3DBoundingBoxInfoStruct();
}
当V-PCC轨道具有样本条目类型为“dybb”的关联的定时元数据轨道时,定时元数据轨道包含关于点云数据的动态变化的3D边界框信息。
关联的定时元数据轨道包含参考承载图集流的V-PCC轨道的“cdsc”轨道。
all_bb提供总3D边界框信息,包括原点位置的x、y和z坐标以及点云数据的总3D边界框在坐标系中相对于原点分别沿着x、y和z轴的延伸。
样本条目类型“dybb”的样本句法可如下指定:
aligned(8)Dynamic3DBoundingBoxSample(){
VPCCBoundingInformationBox 3dBB;
}
3dBB提供样本中用信号通知的3D边界框信息。
3DSpatialRegionStruct可提供关于体积视觉数据的部分访问的信息。
3DSpatialRegionStruct和3DBoundingBoxInfoStruct提供包括空间区域的X、Y和Z偏移和该区域在3D空间中的宽度、高度和深度的体积媒体以及关于体积媒体的3D边界框的空间区域的信息。
3d_region_id是3D空间区域的标识符。
X、Y和Z表示3D点在坐标系中的X、Y和Z坐标值。
bb_dx、bb_dy和bb_dz指示总体积媒体的3D边界框在坐标系中相对于原点(0,0,0)n沿着X、Y和Z轴的延伸。
dimensions_included_flag指示是否用信号通知3D空间区域的尺寸。
dimensions_included_flag等于0指示不用信号通知尺寸,而是先前已为同一区域用信号通知。具有相同3d_region_id的3DSpatialRegionStruct的先前实例用信号通知尺寸。
根据实施方式的发送方法/装置可如上所述在V3C轨道中发送3D边界框信息,根据实施方式的接收方法/装置可基于V3C轨道有效地获取3D边界框信息。
即,实施方式提供了用于比特流的有效传输和解码的文件容器,并且在文件容器中的轨道中发送关于3D边界框的位置信息和/或大小信息,从而允许点云数据的空间或部分访问。另外,可通过解封装和解析文件中的轨道来快速地获取期望的空间数据,而非解码整个比特流。
根据实施方式的方法/装置可在根据实施方式的轨道的样本条目和/或样本中传送根据实施方式的3D边界框信息。
当根据实施方式的样本(例如,样本条目类型“dybb”的样本句法)承载3D边界框信息时,可用信号通知关于随时间改变的边界框的信息。换言之,通过在对应样本被解码时用信号通知边界框信息,此时可支持详细空间访问。
图45示出根据实施方式的用于封装非定时V-PCC数据的结构的概述。
图45示出当图20至图22的点云数据相关装置处理非定时点云数据时用于发送非定时V-PCC数据的结构。
根据实施方式的点云数据发送/接收方法/装置和包括在发送/接收装置中的系统可封装并发送/接收如图45所示的非定时V-PCC数据。
当根据实施方式的点云数据是图像时,图1的点云视频编码器10002(或图4的编码器、图15的编码器、图18的发送装置、图20的处理器20001、图20的图像编码器20003、图21的处理器或图21的图像编码器21008)可对图像进行编码,文件/片段封装器10003(或图20的文件/片段封装器20004或图21的文件/片段封装器21009)可将图像和图像相关信息存储在如图45所示的容器(项目)中,并且发送器10004可发送容器。
类似地,图1的接收器接收图45的容器,文件/片段解封装器10007(或图20的文件/片段解封装器20005或文件/片段解封装器22000)解析容器。图1的点云视频解码器10008(或图16的解码器、图17的解码器、图19的接收装置或者图像解码器20006或图像解码器22002)可将包括在项目中的图像解码并将解码的图像提供给用户。
根据实施方式,图像可以是静止图像。根据实施方式的方法/装置可发送和接收关于图像的点云数据。根据实施方式的方法/装置可基于如图45所示的数据容器结构在项目中存储和发送/接收图像。关于图像的属性信息可被存储在图像性质等中。
非定时V-PCC数据作为图像项目被存储在文件中。定义了两个新项目类型(V-PCC项目和V-PCC单元项目)以封装非定时V-PCC数据。
新处理程序类型4CC码“vpcc”被定义并存储在MetaBox的HandlerBox中以指示V-PCC项目、V-PCC单元项目和其它V-PCC编码内容表示信息的存在。
V-PCC项目45000:V-PCC项目是表示可独立解码的V-PCC访问单元的项目。项目类型“vpci”被定义为标识V-PCC项目。V-PCC项目存储图集子比特流的V-PCC单元有效载荷。如果PrimaryItemBox存在,则该框中的item_id被设定为指示V-PCC项目。
V-PCC单元项目45010:V-PCC单元项目是表示V-PCC单元数据的项目。V-PCC单元项目存储占用、几何和属性视频数据单元的V-PCC单元有效载荷。V-PCC单元项目仅存储一个V-PCC访问单元相关数据。
V-PCC单元项目的项目类型根据用于对对应视频数据单元进行编码的编解码器来设定。V-PCC单元项目与对应V-PCC单元头项目性质和编解码器特定配置项目性质关联。V-PCC单元项目被标记为隐藏项目,因为独立地显示没有意义。
为了指示V-PCC项目和V-PCC单元项目之间的关系,使用下面三个项目参考类型。项目参考“从”V-PCC项目“到”相关V-PCC单元项目定义。
“pcco”:参考V-PCC单元项目包含占用视频数据单元。
“pccg”:参考V-PCC单元项目包含几何视频数据单元。
“pcca”:参考V-PCC单元项目包含属性视频数据单元。
V-PCC配置项目性质45020
框类型:“vpcp”
性质类型:描述性项目性质
容器:ItemPropertyContainerBox
强制(每项目):对于类型“vpci”的V-PCC项目,是
数量(每项目):对于类型“vpci”的V-PCC项目,一个或更多个
对于V-PCC配置项目性质,框类型是“vpcp”并且性质类型是描述性项目性质。容器是ItemPropertyContainerBox。对于类型“vpci”的V-PCC项目,每项目为强制的。对于类型“vpci”的V-PCC项目,可存在每项目一个或更多个性质。
V-PCC参数集被存储为描述性项目性质并且与V-PCC项目关联。
vpcc_unit_paylod()包括类型VPCC_VPS的V-PCC单元。
V-PCC单元头项目性质45030
框类型:“vunt”
性质类型:描述性项目性质
容器:ItemPropertyContainerBox
强制(每项目):对于类型“vpci”的V-PCC项目并且对于V-PCC单元项目,是
数量(每项目):一个
对于V-PCC单元头项目性质,框类型是“vunt”,性质类型是描述性项目性质,并且容器是ItemPropertyContainerBox。对于类型“vpci”的V-PCC项目并且对于V-PCC单元项目每项目为强制的。每项目可存在一个性质。
V-PCC单元头被存储为描述性项目性质并且与V-PCC项目和V-PCC单元项目关联。
aligned(8)class VPCCUnitHeaderProperty()extends ItemFullProperty(‘vunt’,version=0,0){
vpcc_unit_header();
}
基于图45的结构,根据实施方式的方法/装置/系统可传送非定时点云数据。
非定时基于视频的点云压缩数据的承载
非定时V-PCC数据作为图像项目被存储在文件中。新处理程序类型4CC码“vpcc”被定义并存储在MetaBox的HandlerBox中以便指示V-PCC项目、V-PCC单元项目和其它V-PCC编码内容表示信息的存在。
根据实施方式的项目表示图像。例如,它是不移动的数据并且可指单个图像。
根据实施方式的方法/装置可基于用于封装非定时V-PCC数据的结构来生成和发送根据实施方式的数据,如图45所示。
V-PCC项目
V-PCC项目是表示可独立解码的V-PCC访问单元的项目。定义新项目类型4CC码“vpci”以标识V-PCC项目。V-PCC项目存储图集子比特流的V-PCC单元有效载荷。
如果PrimaryItemBox存在,则该框中的item_id应被设定为指示V-PCC项目。
V-PCC单元项目
V-PCC单元项目是表示V-PCC单元数据的项目。
V-PCC单元项目存储占用、几何和属性视频数据单元的V-PCC单元有效载荷。V-PCC单元项目可仅包含一个V-PCC访问单元相关数据。
V-PCC单元项目的项目类型4CC码基于用于对对应视频数据单元进行编码的编解码器来设定。V-PCC单元项目与对应V-PCC单元头项目性质和编解码器特定配置项目性质关联。
V-PCC单元项目被标记为隐藏项目,因为独立地显示没有意义。
为了指示V-PCC项目和V-PCC单元之间的关系,定义了具有4CC码“pcco”、“pccg”和“pcca”的三个新项目参考类型。项目参考“从”V-PCC项目“至”相关V-PCC单元项目定义。项目参考类型的4CC码为:
“pcco”:包含占用视频数据单元的参考V-PCC单元项目。
“pccg”:包含几何视频数据单元的参考V-PCC单元项目。
“pcca”:包含属性视频数据单元的参考V-PCC单元项目。
V-PCC相关项目性质
定义描述性项目性质以分别承载V-PCC参数集信息和V-PCC单元头信息:
V-PCC配置项目性质
框类型:“vpcp”
性质类型:描述性项目性质
容器:ItemPropertyContainerBox
强制(每项目):对于类型“vpci”的V-PCC项目,是
数量(每项目):对于类型“vpci”的V-PCC项目,一个或更多个
V-PCC参数集被存储为描述性项目性质并且与V-PCC项目关联。
对于“vpcp”项目性质,essential被设定为1。
aligned(8)class vpcc_unit_payload_struct(){
unsigned int(16)vpcc_unit_payload_size;
vpcc_unit_payload();
}
aligned(8)class VPCCConfigurationProperty
extends ItemProperty(‘vpcc’){
vpcc_unit_payload_struct()[];
}
vpcc_unit_payload_size指定vpcc_unit_paylod()的大小(字节)。
V-PCC单元头项目性质
框类型:“vunt”
性质类型:描述性项目性质
容器:ItemPropertyContainerBox
强制(每项目):对于类型“vpci”的V-PCC项目并且对于V-PCC单元项目,是
数量(每项目):一个
V-PCC单元头被存储为描述性项目性质并且与V-PCC项目和V-PCC单元项目关联。
对于“vunt”项目性质,essential被设定为1。
图46示出根据实施方式的V-PCC 3D边界框项目性质。
图46示出图45的项目中所包括的3D边界框项目性质。
V-PCC 3d边界框项目性质
框类型:“v3dd”
性质类型:描述性项目性质
容器:ItemPropertyContainerBox
强制(每项目):对于类型“vpci”的V-PCC项目并且对于V-PCC单元项目,是
数量(每项目):一个
3D边界信息被存储为描述性项目性质并且与V-PCC项目和V-PCC单元项目关联。
在根据实施方式所提出的方案中,被配置为提供点云内容服务的发送器或接收器可如上所述配置V-PCC比特流并存储文件。
用于V-PCC比特流中的数据处理和渲染的元数据可在比特流中发送。
播放器等可被允许根据用户视口对点云对象/内容执行部分访问或空间访问。换言之,上述数据表示方法可允许对点云比特流的有效访问。
根据实施方式的点云数据发送装置可提供用于对点云内容(例如,V-PCC内容)的部分访问和/或空间访问的边界框及其信令信息。因此,根据实施方式的点云数据接收装置可被允许考虑播放器或用户环境以各种方式访问点云内容。
根据实施方式的方法/装置可在轨道或项目中存储和用信号通知关于点云视频/图像的3D边界框信息。另外,可在轨道或项目中存储和用信号通知与点云视频/图像的观看信息(观看位置、观看取向、观看方向等)有关的信息。此外,与观看信息和3D边界框信息关联的轨道/项目可被分组,并且可提供用于参考其的信令。
提出了一种用于提供处理文件存储技术以支持对所存储的V-PCC比特流的有效访问的点云内容服务的发送器或接收器。
点云数据(视频图像)的3D边界框可为静态的或随时间动态地改变。需要一种根据关于点云数据(视频或图像)的用户视口和/或观看信息来配置和用信号通知点云数据的方法。
本文献中使用的术语如下定义。VPS:V-PCC参数集;AD:图集数据;OVD:占用视频数据;GVD:几何视频数据;AVD:属性视频数据;ACL:图集编码层。
AAPS:图集适配参数集。它可包括相机参数(例如,相机位置、旋转、标度和相机模型)以及与图集子比特流的一部分关联的数据。
ASPS:图集序列参数集。它是包含应用于零个或更多个完整编码图集序列(CAS)的句法元素的句法结构,其由各个拼块组头中找到的句法元素所参考的ASPS中找到的句法元素的内容确定。
AFPS:图集帧参数集。它是包含应用于零个或更多个完整编码图集帧的句法元素的句法结构,其由拼块组头中找到的句法元素的内容确定。
SEI:补充增强信息
图集:这可以是投影到与3D空间中的3维边界框(可表示点云的子集)对应的矩形帧中的2D边界框(即,补片)的集合。
图集子比特流:从包含图集NAL比特流的一部分的V-PCC比特流提取的子比特流。
V-PCC内容:点云。它基于视频编码点云压缩(V-PCC)来编码。
V-PCC轨道:承载V-PCC比特流的图集比特流的体积视觉轨道。
V-PCC组件轨道:承载V-PCC比特流的占用图、几何或属性组件视频比特流中的任一个的2D视频编码数据的视频轨道。
点云数据(视频图像)的3D边界框可为静态的或随时间动态地改变。关于点云数据的3D边界框的信息可用于根据用户视口等选择文件中包含点云数据的轨道或项目,或者解析/解码/渲染轨道或项目中的数据。根据实施方式的方法/装置使得点云数据的3D边界框信息能够在轨道或项目中存储或用信号通知。根据3D边界框的变化属性,3D边界框信息可承载在样本条目、轨道组、样本组或单独的元数据轨道中。
关于点云数据(视频或图像)的观看信息(观看位置、观看取向、观看方向等)可为静态的或随时间动态地改变。为了有效地向用户提供点云视频数据,根据实施方式的方法/装置可允许在轨道或项目中存储或用信号通知观看信息。根据观看信息的变化属性,信息可承载在样本条目、轨道组、样本组或单独的元数据轨道中。
参照图26和图27,各个V-PCC单元具有V-PCC单元头和V-PCC单元有效载荷。V-PCC单元头描述V-PCC单元类型。属性视频数据V-PCC单元头指定属性类型及其索引,从而允许支持相同属性类型的多个实例。占用、几何和属性视频数据单元有效载荷对应于视频数据单元(可以是例如NAL单元)。这些单元可由适当的视频解码器解码。
V-PCC比特流包含一系列V-PCC序列。vuh_unit_type的值等于VPCC_VPS的V-PCC单元类型可以是V-PCC序列中的第一V-PCC单元类型。所有其它V-PCC单元类型可跟随该单元类型,对其编码顺序没有任何附加限制。承载占用视频、属性视频或几何视频的V-PCC单元的V-PCC单元有效载荷可由一个或更多个NAL单元组成。
图47示出根据实施方式的V-PCC单元。
图47示出图26和图28中描述的V-PCC单元26020和V-PCC单元头26030的句法。
对于图47中的元素的定义,参考图28中的对应元素的定义。
vuh_attribute_partition_index指示属性视频数据单元中承载的属性维度组的索引。
vuh_auxiliary_video_flag等于1指示关联的几何或属性视频数据单元仅具有RAW和/或EOM编码点视频。vuh_auxiliary_video_flag等于0指示关联的几何或属性视频数据单元可包含RAW和/或EOM编码点。
图48示出根据实施方式的V-PCC参数集。
图48示出当根据实施方式的比特流的单元26020的有效载荷26040包含参数集时参数集的句法,如图26至图29和图30所示。
对于图48中的元素的定义,参考图30中的对应元素的定义。
auxiliary_video_present_flag[j]等于1指示索引j的图集的辅助信息(即,RAW或EOM补片数据)可存储在单独的视频流(称为辅助视频流)中。auxiliary_video_present_flag[j]等于0指示索引j的图集的辅助信息不存储在单独的视频流中。
vps_extension_present_flag等于1指定句法元素vps_extension_length存在于vpcc_parameter_set句法结构中。vps_extension_present_flag等于0指定句法元素vps_extension_length不存在。
vps_extension_length_minus1加1指定跟随该句法元素之后的vps_extension_data_byte元素的数量。
vps_extension_data_byte可具有任何值。
图49示出根据实施方式的图集帧。
图49示出包括由图1的编码器10002、图4的编码器、图15的编码器、图18的发送装置、图20和图21的系统等编码并且由图1的解码器10008、图16和图17的解码器、图19的接收装置、图23的系统等解码的拼块的图集帧。
图集帧被划分为一个或更多个拼块行和一个或更多个拼块列。拼块是图集帧的矩形区域。拼块组包含图集帧的多个拼块。拼块和拼块组可彼此不区分,并且拼块组可对应于一个拼块。仅支持矩形拼块组。在该模式下,拼块组(或拼块)可包含图集帧的多个拼块,其共同形成图集帧的矩形区域。图49示出根据实施方式的图集帧的示例拼块组(或拼块)划分,其中图集帧被划分为24个拼块(6个拼块列和4个拼块行)和9个矩形拼块组。根据实施方式,拼块组可用作与拼块对应的术语,在拼块组和拼块之间不区分。
即,根据实施方式,拼块组49000可对应于拼块49010,并且可被称为拼块49010。另外,拼块49010可对应于拼块分区,并且可被称为拼块分区。术语信令信息也可根据术语之间的互补关系改变为并称为另一术语。
图50示出根据实施方式的图集比特流的结构。
图50示出比特流26000的单元26020的有效载荷26040根据图26和图31的示例承载图集子比特流31000的示例性情况。
根据实施方式,术语“子”可被解释为意指部分。根据实施方式,子比特流可被解释为比特流。
根据实施方式,图集比特流可包含样本流NAL头和样本流NAL单元。
根据实施方式的样本流NAL单元可包括ASPS、AAPS、AFPS、一个或更多个图集拼块组、一个或更多个必要SEI和/或一个或更多个非必要SEI。
以下,将描述图50的图集比特流中所包含的信息的句法。
图51示出根据实施方式的包含点云数据中所包括的样本流NAL头、样本流NAL单元、NAL单元和NAL单元的头。
图51示出图50的图集比特流中所包含的数据的句法;
ssnh_unit_size_precision_bytes_minus1加1指定所有样本流NAL单元中的ssnu_nal_unit_size元素的精度(字节)。ssnh_unit_size_precision_bytes_minus1可在0至7的范围内。
ssnu_nal_unit_size指定后续NAL_unit的大小(字节)。用于表示ssnu_nal_unit_size的比特数可等于(ssnh_unit_size_precision_bytes_minus1+1)*8。
NumBytesInNalUnit指示NAL单元的大小(字节)。
NumBytesInRbsp指示属于NAL单元的有效载荷的字节数,并可被初始化为0。
rbsp_byte[i]是RBSP的第i字节。RBSP可被表示为有序字节序列。
nal_forbidden_zero_bit可等于零(0)。
nal_unit_type可具有如图52所示的值。nal_unit_type指定NAL单元中所包含的RBSP数据结构的类型。
nal_layer_id指定ACL NAL单元所属的层的标识符或非ACL NAL单元应用的层的标识符。
nal_temporal_id_plus1 minus 1指定NAL单元的临时标识符。
图52示出根据实施方式的NAL单元类型。
图52示出在图50的样本流NAL单元中NAL单元的NAL单元头中所包含的NAL单元类型。
NAL_TRAIL:非TSA、非STSA结尾图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。根据实施方式,拼块组可对应于拼块。
NAL TSA:TSA图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_STSA:STSA图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_RADL:RADL图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_RASL:RASL图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或aatlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_SKIP:跳过图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_RSV_ACL_6至NAL_RSV_ACL_9:预留非IRAP ACL NAL单元类型可包括在NAL单元中。NAL单元的类型类为ACL。
NAL_BLA_W_LP、NAL_BLA_W_RADL、NAL_BLA_N_LP:BLA图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_GBLA_W_LP、NAL_GBLA_W_RADL、NAL_GBLA_N_LP:GBLA图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_IDR_W_RADL、NAL_IDR_N_LP:IDR图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_GIDR_W_RADL、NAL_GIDR_N_LP:GIDR图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_CRA:CRA图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_GCRA:GCRA图集帧的编码拼块组可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类为ACL。
NAL_IRAP_ACL_22、NAL_IRAP_ACL_23:预留IRAP ACL NAL单元类型可包括在NAL单元中。NAL单元的类型类为ACL。
NAL_RSV_ACL_24至NAL_RSV_ACL_31:预留非IRAP ACL NAL单元类型可包括在NAL单元中。NAL单元的类型类为ACL。
NAL_ASPS:图集序列参数集可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_sequence_parameter_set_rbsp()。NAL单元的类型类为非ACL。
NAL_AFPS:图集帧参数集可包括在NAL单元中。NAL单元的RBSP句法结构为atlas_frame_parameter_set_rbsp()。NAL单元的类型类为非ACL。
NAL_AUD:访问单元分隔符可包括在NAL单元中。NAL单元的RBSP句法结构为access_unit_delimiter_rbsp()。NAL单元的类型类为非ACL。
NAL_VPCC_AUD:V-PCC访问单元分隔符可包括在NAL单元中。NAL单元的RBSP句法结构为access_unit_delimiter_rbsp()。NAL单元的类型类为非ACL。
NAL_EOS:NAL单元类型可为序列的结尾。NAL单元的RBSP句法结构为end_of_seq_rbsp()。NAL单元的类型类为非ACL。
NAL_EOB:NAL单元类型可为比特流的结尾。NAL单元的RBSP句法结构为end_of_atlas_sub_bitstream_rbsp()。NAL单元的类型类为非ACL。
NAL_FD Filler:NAL单元类型可为filler_data_rbsp()。NAL单元的类型类为非ACL。
NAL_PREFIX_NSEI、NAL_SUFFIX_NSEI:NAL单元类型可以是非必要补充增强信息。NAL单元的RBSP句法结构为sei_rbsp()。NAL单元的类型类为非ACL。
NAL_PREFIX_ESEI、NAL_SUFFIX_ESEI:NAL单元类型可以是必要补充增强信息。NAL单元的RBSP句法结构为sei_rbsp()。NAL单元的类型类为非ACL。
NAL_AAPS:NAL单元类型可为图集适配参数集。NAL单元的RBSP句法结构为atlas_adaptation_parameter_set_rbsp()。NAL单元的类型类为非ACL。
NAL_RSV_NACL_44至NAL_RSV_NACL_47:NAL单元类型可为预留非ACL NAL单元类型。NAL单元的类型类为非ACL。
NAL_UNSPEC_48至NAL_UNSPEC_63:NAL单元类型可以是未指定非ACL NAL单元类型。NAL单元的类型类为非ACL。
图53示出根据实施方式的图集序列参数集。
图53的图集序列参数集可对应于图32的图集序列参数集。
对于图53中的元素的定义,参考图32中的对应元素的定义。
asps_extended_projection_enabled_flag等于0指定对于当前图集拼块组或当前图集拼块不用信号通知补片投影信息。asps_extended_projection_enabled_flag等于1指定对于当前图集拼块组或当前图集拼块用信号通知补片投影信息。
asps_raw_patch_enabled_flag指示RAW补片是否被启用。
asps_eom_patch_enabled_flag等于1指示当前图集的解码的占用图视频包含与两个深度图之间的中间深度位置是否被占用有关的信息。asps_eom_patch_enabled_flag等于0指示解码的占用图视频不包含与两个深度图之间的中间深度位置是否被占用有关的信息。
asps_auxiliary_video_enabled_flag指示辅助视频是否被启用。
asps_pixel_deinterleaving_enabled_flag指示像素解交织是否被启用。
asps_pixel_deinterleaving_map_flag[i]等于1指示与当前图集中索引i的图对应的解码几何和属性视频包含与两个图对应的空间交织像素。asps_pixel_deinterleaving_map_flag[I]等于0指示与当前图集中索引i的图对应的解码几何和属性视频包含与单个图对应的像素。
当asps_eom_patch_enabled_flag和asps_map_count_minus1等于0时,在ASPS中可包括asps_eom_fix_bit_count_minus1元素。
asps_eom_fix_bit_count_minus1加1指示EOM码字的大小(比特)。
asps_extension_flag等于0指定在ASPS RBSP句法结构中不存在asps_extension_data_flag句法元素。
asps_extension_data_flag可具有各种值。
图54示出根据实施方式的图集帧参数集。
图54的图集帧参数集可对应于图33的图集帧参数。图54中的元素的定义可符合图33中的对应元素的定义。
afps_output_flag_present_flag等于1指示在关联的拼块组头中存在atgh_frame_output_flag句法元素。afps_output_flag_present_flag等于0指示在关联的拼块组头中不存在atgh_frame_output_flag句法元素。
afps_lod_mode_enabled_flag等于1指示LOD参数可存在于补片中。afps_lod_mode_enabled_flag等于0指示LOD参数不存在于补片中。
afps_fixed_camera_model_flag表示固定相机模型的标志。
afps_extension_flag等于0指定在AFPS RBSP句法结构中不存在afps_extension_data_flag句法元素。
afps_extension_data_flag可具有各种值。
图55示出根据实施方式的图集适配参数集(atlas_adaptation_parameter_set)。
AAPS RBSP包括一个或更多个编码图集帧的编码拼块组NAL单元可参考的参数。在解码处理操作期间的任何给定时刻,至多一个AAPS RBSP被认为是活动的。任何特定AAPSRBSP的启用导致先前活动AAPS RBSP的停用。
aaps_atlas_adaptation_parameter_set_id可标识图集适配参数集以供其它句法元素参考。
aaps_atlas_sequence_parameter_set_id指定活动图集序列参数集的asps_atlas_sequence_parameter_set_id的值。
aaps_camera_parameters_present_flag等于1指定相机参数存在于当前图集适配参数集中。aaps_camera_parameters_present_flag等于0指定当前适配参数集的相机参数不存在。
aaps_extension_flag等于0指定在AAPS RBSP句法结构中不存在aaps_extension_data_flag句法元素。
aaps_extension_data_flag可具有各种值。
图56示出根据实施方式的图集相机参数(atlas_camera_parameters)。
图56示出包括在图55中的图集相机参数。
acp_camera_model指示与当前适配参数集关联的点云帧的相机模型。
当acp_camera_model等于0时,不指定acp_camera_model的名称。
当acp_camera_model等于1时acp_camera_model指示正交相机模型。
当acp_camera_model具有2至255的值时,acp_camera_model可被预留以供未来使用。
acp_scale_enabled_flag等于1指示当前相机模型的标度参数存在。acp_scale_enabled_flag等于0指示当前相机模型的标度参数不存在。
acp_offset_enabled_flag等于1指示当前相机模型的偏移参数存在。acp_offset_enabled_flag等于0指示当前相机模型的偏移参数不存在。
acp_rotation_enabled_flag等于1指示当前相机模型的旋转参数存在。acp_rotation_enabled_flag等于0指示当前相机模型的旋转参数不存在。
acp_scale_on_axis[d]沿着当前相机模型的d轴指定标度[d]的值。d的值在0至2(含)的范围内,值0、1和2分别与X、Y和Z轴对应。
acp_offset_on_axis[d]沿着当前相机模型的d轴指示偏移的值,其中d在0至2(含)的范围内。等于0、1和2的d值可分别与X、Y和Z轴对应。
acp_rotation_qx使用四元表示指定当前相机模型的旋转的x分量qX。
acp_rotation_qy使用四元表示指定当前相机模型的旋转的y分量qY。
acp_rotation_qz使用四元表示指定当前相机模型的旋转的z分量qZ。
图57示出根据实施方式的图集拼块组层和图集拼块组头。
atgh_atlas_frame_parameter_set_id指定当前图集拼块组的活动图集帧参数集的afps_atlas_frame_parameter_set_id的值。
atgh_atlas_adaptation_parameter_set_id指定当前图集拼块组的活动图集适配参数集的aaps_atlas_adaptation_parameter_set_id的值。
atgh_address指定拼块组的拼块组地址。当不存在时,atgh_address的值被推断为等于0。拼块组地址是拼块组的拼块组ID。atgh_address的长度可为afti_signaled_tile_group_id_length_minus1+1比特。如果afti_signaled_tile_group_id_flag等于0,则atgh_address的值可在0至afti_num_tile_groups_in_atlas_frame_minus1(含)的范围内。否则,atgh_address的值可在0至2(afti _ signaled _ tile _ group _ id _ length _ minus1+1)-1(含)的范围内。
atgh_type指定当前图集拼块组的编码类型。
当atgh_type等于0时,类型为图集间拼块组(P_TILE_GRP)。
当atgh_type等于1时,类型为图集内拼块组(I_TILE_GRP)。
当atgh_type等于2时,类型为SKIP图集拼块组(SKIP_TILE_GRP)。
当atgh_type等于3时,类型表示预留值。
atgh_atlas_output_flag可影响解码图集输出和去除处理。
atgh_atlas_frm_order_cnt_lsb指定图集帧顺序计数对当前图集拼块组的MaxAtlasFrmOrderCntLsb取模。
atgh_ref_atlas_frame_list_sps_flag等于1指定当前图集拼块组的参考图集帧列表可基于活动ASPS中的ref_list_struct(rlsIdx)句法结构之一来推导。atgh_ref_atlas_frame_list_sps_flag等于0指定当前图集拼块列表的参考图集帧列表可基于直接包括在当前图集拼块组的拼块组头中的ref_list_struct(rlsIdx)句法结构来推导。
atgh_ref_atlas_frame_list_idx针对活动ASPS中所包括的ref_list_struct(rlsIdx)句法结构的列表指定用于推导当前图集拼块组的参考图集帧列表的ref_list_struct(rlsIdx)句法结构的索引。
atgh_additional_afoc_lsb_present_flag[j]等于1指定对于当前图集拼块组存在atgh_additional_afoc_lsb_val[j]。atgh_additional_afoc_lsb_present_flag[j]等于0指定atgh_additional_afoc_lsb_val[j]不存在。
atgh_additional_afoc_lsb_val[j]指定当前图集拼块组的FullAtlasFrmOrderCntLsbLt[RlsIdx][j]的值。
atgh_pos_min_z_quantizer指定要应用于补片p的pdu_3d_pos_min_z[p]值的量化器。如果atgh_pos_min_z_quantizer不存在,则其值被推断为等于0。
atgh_pos_delta_max_z_quantizer指定要应用于索引p的补片的pdu_3d_pos_delta_max_z[p]值的量化器。当atgh_pos_delta_max_z_quantizer不存在时,其值可被推断为等于0。
atgh_patch_size_x_info_quantizer指定要应用于索引p的补片的变量pdu_2d_size_x_minus1[p]、mpdu_2d_delta_size_x[p]、ipdu_2d_delta_size_x[p]、rpdu_2d_size_x_minus1[p]和
epdu_2d_size_x_minus1[p]的量化器PatchSizeXQuantizer的值。当atgh_patch_size_x_info_quantizer不存在时,其值可被推断为等于asps_log2_patch_packing_block_size。
atgh_patch_size_y_info_quantizer指定要应用于索引p的补片的变量pdu_2d_size_y_minus1[p]、mpdu_2d_delta_size_y[p]、ipdu_2d_delta_size_y[p]、rpdu_2d_size_y_minus1[p]和
epdu_2d_size_y_minus1[p]的量化器PatchSizeYQuantizer的值。当atgh_patch_size_y_info_quantizer不存在时,其值可被推断为等于asps_log2_patch_packing_block_size。
atgh_raw_3d_pos_axis_bit_count_minus1加1指定rpdu_3d_pos_x、rpdu_3d_pos_y和rpdu_3d_pos_z的固定长度表示中的比特数。
atgh_num_ref_idx_active_override_flag等于1指定对于当前图集拼块组存在句法元素atgh_num_ref_idx_active_minus1。atgh_num_ref_idx_active_override_flag等于0指定句法元素atgh_num_ref_idx_active_minus1不存在。当atgh_num_ref_idx_active_override_flag不存在时,其值可被推断为等于0。
atgh_num_ref_idx_active_minus1指定用于参考可用于对当前图集拼块组进行解码的图集帧列表的最大参考索引。当NumRefIdxActive的值等于0时,其指示没有参考图集帧列表的参考索引可用于对当前图集拼块组进行解码。
图58示出根据实施方式的参考列表结构(ref_list_struct)。
num_ref_entries[rlsIdx]指定ref_list_struct(rlsIdx)句法结构中的条目数量。
st_ref_atlas_frame_flag[rlsIdx][i]等于1指定ref_list_struct(rlsIdx)句法结构中的第i条目是短期参考图集帧条目。st_ref_atlas_frame_flag[rlsIdx][i]等于0指定ref_list_struct(rlsIdx)句法结构中的第i条目是长期参考图集帧条目。当不存在时,st_ref_atlas_frame_flag[rlsIdx][i]的值可被推断为等于1。
当第i条目是ref_list_struct(rlsIdx)句法结构中的第一短期参考图集帧条目时,abs_delta_afoc_st[rlsIdx][i]指定当前图集拼块组的图集帧顺序计数值与第i条目所参考的图集帧之间的绝对差。当第i条目是短期参考图集帧条目,但不是ref_list_struct(rlsIdx)句法结构中的第一短期参考图集帧条目时,abs_delta_afoc_st[rlsIdx][i]指定第i条目与ref_list_struct(rlsIdx)句法结构中的先前短期参考图集帧条目所参考的图集帧的图集帧顺序计数值之间的绝对差。
strpf_entry_sign_flag[rlsIdx][i]等于1指定句法结构ref_list_struct(rlsIdx)中的第i条目具有大于或等于0的值。strpf_entry_sign_flag[rlsIdx][i]等于0指定句法结构ref_list_struct(rlsIdx)中的第i条目具有小于0的值。当不存在时,strpf_entry_sign_flag[rlsIdx][i]的值可被推断为等于1。
afoc_lsb_lt[rlsIdx][i]指定图集帧顺序计数的值对ref_list_struct(rlsIdx)句法结构中的第i条目所参考的图集帧的MaxAtlasFrmOrderCntLsb取模。afoc_lsb_lt[rlsIdx][i]句法元素的长度可为asps_log2_max_atlas_frame_order_cnt_lsb_minus4+4比特。
图59示出根据实施方式的图集拼块组数据(atlas_tile_group_data_unit)。
atgdu_patch_mode[p]指示当前图集拼块组中索引p的补片的补片模式。atgh_type=SKIP_TILE_GRP的拼块组指示整个拼块组信息直接从与对应于第一参考图集帧的当前拼块组具有相同atgh_address的拼块组复制。
I_TILE_GRP类型图集拼块组的补片模式类型可指定如下。
当atgdu_patch_mode等于0时,标识符为I_INTRA,指示非预测补片模式。
当atgdu_patch_mode等于1时,标识符为I_RAW,指示RAW点补片模式。
当atgdu_patch_mode等于2时,标识符为I_EOM,指示EOM点补片模式。
当atgdu_patch_mode为3至13时,标识符为I_RESERVED,指示预留模式。
当atgdu_patch_mode等于14时,标识符为I_END,指示补片终止模式。
P_TILE_GRP类型图集拼块组的补片模式类型可指定如下。
当atgdu_patch_mode等于0时,标识符为P_SKIP,指示补片跳过模式。
当atgdu_patch_mode等于1时,标识符为P_MERGE,指示补片合并模式。
当atgdu_patch_mode等于2时,标识符为P_INTER,指示帧间预测补片模式。
当atgdu_patch_mode等于3时,标识符为P_INTRA,指示非预测补片模式。
当atgdu_patch_mode等于4时,标识符为P_RAW,指示RAW点补片模式。
当atgdu_patch_mode等于5时,标识符为P_EOM,指示EOM点补片模式。
当atgdu_patch_mode为6至13时,标识符为P_RESERVED,指示预留模式。
当atgdu_patch_mode等于14时,标识符为P_END,指示补片终止模式。
SKIP_TILE_GRP类型图集拼块组的补片模式类型可指定如下。
当atgdu_patch_mode等于0时,标识符为P_SKIP,指示补片跳过模式。
图60示出根据实施方式的补片信息数据(patch_information_data)。
补片信息数据可根据补片索引(patchIdx)和补片模式(patchMode)承载以下信息。
当atgh_type为SKIP_TILE_GR时,可承载skip_patch_data_unit(patchIdx)。
当atgh_type为P_TILE_GR时,可承载以下元素。具体地,当patchMode为P_SKIP时,可提供skip_patch_data_unit(patchIdx)。当patchMode为P_MERGE时,可提供merge_patch_data_unit(patchIdx)。当patchMode为P_INTRA时,可承载patch_data_unit(patchIdx)。当patchMode为P_INTER时,可承载inter_patch_data_unit(patchIdx)。当patchMode为P_RAW时,可承载raw_patch_data_unit(patchIdx)。当patchMode为P_EOM时,可承载eom_patch_data_unit(patchIdx)。
当atgh_type为I_TILE_GR时,可承载以下元素。具体地,当patchMode为I_INTRA时,可承载patch_data_unit(patchIdx)。当patchMode为I_RAW时,可承载raw_patch_data_unit(patchIdx)。当patchMode为I_EOM时,可承载eom_patch_data_unit(patchIdx)。
图61示出根据实施方式的补片数据单元(patch_data_unit)。
图61示出包括在图60中的补片数据单元中的详细信息。
pdu_2d_pos_x[p]指定当前图集拼块组tileGroupIdx中补片p的补片边界框的左上角的x坐标(或左偏移),表示为PatchPackingBlockSize的倍数。
pdu_2d_pos_y[p]指定当前图集拼块组tileGroupIdx中补片p的补片边界框的左上角的y坐标(或上偏移),表示为PatchPackingBlockSize的倍数。
pdu_2d_size_x_minus1[p]加1指定当前图集拼块组tileGroupIdx中索引p的补片的量化宽度值。
pdu_2d_size_y_minus1[p]加1指定当前图集拼块组tileGroupIdx中索引p的补片的量化高度值。
pdu_3d_pos_x[p]沿着切向轴指定要应用于当前图集拼块组的索引p的补片中的重构补片点的偏移。
pdu_3d_pos_y[p]沿着双切轴指定要应用于当前图集拼块组的索引p的补片中的重构补片点的偏移。
pdu_3d_pos_min_z[p]沿着法向轴指定要应用于当前图集拼块组的索引p的补片中的重构补片点的偏移。
如果存在的话,pdu_3d_pos_delta_max_z[p]沿着法向轴指定当前图集拼块组的索引p的补片中在转换为其标称表示之后预期存在于重构比特深度补片几何样本中的偏移的标称最大值。
pdu_projection_id[p]指定当前图集拼块组的索引p的补片的投影模式和投影平面法线的索引的值。
pdu_orientation_index[p]指示当前图集拼块组的索引p的补片的补片取向索引。
pdu_lod_enabled_flag[p]等于1指定对于当前补片p存在LOD参数。当pdu_lod_enabled_flag[p]等于0时,对于当前补片不存在LOD参数。
pdu_lod_scale_x_minus1[p]指定在与补片坐标Patch3dPosX[p]相加之前要应用于当前图集拼块组的索引p的补片中的点的局部x坐标的LOD缩放因子。
pdu_lod_scale_y[p]指定在与补片坐标Patch3dPosY[p]相加之前要应用于当前图集拼块组的索引p的补片中的点的局部y坐标的LOD缩放因子。
图62示出根据实施方式的SEI信息。
SEI消息帮助与解码、重构、显示或其它目的有关的处理。根据实施方式,可存在两种类型的SEI消息:必要和非必要。
解码处理可能不需要非必要SEI消息。可能不需要一致解码器来处理该信息以便于输出顺序一致性。
必要SEI消息可以是V-PCC比特流的组成部分,并且可能不从比特流去除。必要SEI消息可被归类为两种类型:
类型A必要SEI消息:这些SEI包含检查比特流一致性和输出定时解码器一致性所需的信息。符合点A的每一个V-PCC解码器不会丢弃任何相关的类型A必要SEI消息,而是考虑它们以便于比特流一致性和输出定时解码器一致性。
类型B必要SEI消息:符合特定重构配置文件的V-PCC解码器不会丢弃任何相关的类型B必要SEI消息,而是为了3D点云重构和一致性目的而考虑它们。
sei_message()可包含以下sei_payload中的一个或更多个。
sei_payload可基于有效载荷类型(payloadType)和有效载荷大小(payloadSize)包括如图62所示的元素。
如果nal_unit_type为NAL_PREFIX_NSEI或NAL_PREFIX_ESEI,则有效载荷可包含sei(payloadSize)。
如果nal_unit_type为NAL_SUFFIX_NSEI或NAL_SUFFIX_ESEI,则有效载荷可包含sei(payloadSize)。
以下,将描述如图40和图41所示用于传送上述句法元素并用于点云数据传送的V-PCC系统。
根据下述实施方式的信息表示包含在文件中的单轨道和/或多轨道中的点云数据的解码所必需的参数信息、图集比特流等,如参照图40和图41所描述的。对于根据以下实施方式的信息,图1的文件/片段封装器10003、图20的文件/片段封装器20004和图21的文件/片段封装器21009以及图23的XR装置将比特流格式化为图24和图25的文件结构,如图40和图41等中描述的。
类似地,图1的接收装置10005的文件/片段解封装器10007、图20至图23的文件/片段解封装器20005、21009和22000以及图23的XR装置2330接收并解封装文件并且解析比特流。
基于视频的点云压缩表示点云视觉信息的体积编码。如图27和图31所示,包含编码点云序列(CPCS)的V-PCC比特流可由承载V-PCC参数集(VPS)编码图集比特流、2D视频编码占用图比特流、2D视频编码几何比特流以及零个或更多个2D视频编码属性比特流的V-PCC单元组成。
体积视觉轨道
体积视觉轨道可由MediaBox的HandlerBox中的体积媒体处理程序类型“volv”标识。
体积视觉媒体头
框类型:“vvhd”
容器:MediaInformationBox
强制:是
数量:恰好一个
体积视觉轨道使用MediaInformationBox中的VolumetricVisualMediaHeaderBox。
aligned(8)class VolumetricVisualMediaHeaderBox
extends FullBox(‘vvhd’,version=0,1){
}
“version”是指定该框的版本的整数。
体积视觉样本条目
体积视觉轨道应使用VolumetricVisualSampleEntry。
class VolumetricVisualSampleEntry(codingname)extends SampleEntry(codingname){
unsigned int(8)[32]compressor_name;
}
compressor_name是用于信息目的的名称。其可被格式化为固定32字节字段,第一字节被设定为要显示的字节数,然后是使用UTF-8编码的可显示数据的字节数,然后可执行填充以完成总共32字节(包括大小字节)。该字段可被设定为0。
体积视觉样本
体积视觉样本的格式由编码系统定义。
公共数据结构
V-PCC解码器配置框
V-PCC解码器配置框包括VPCCDecoderConfigurationRecord。
class VPCCConfigurationBox extends Box(‘vpcC’){
VPCCDecoderConfigurationRecord()VPCCConfig;
}
该记录包含版本字段。该版本可被定义为版本1。对记录的不兼容改变可由版本号的改变指示。解码器可基于版本号确定是否对该记录或比特流进行解码。
VPCC参数集阵列包括vpcc_parameter_set()。
SetupUnit阵列包括对于样本条目所参考的流恒定的图集参数集,其中存在解码器配置记录以及图集子流必要或非必要SEI消息。
对于样本条目所参考的流,SetupUnit阵列可为恒定的。解码器配置记录可与图集子流SEI消息共存。
configurationVersion是版本字段。对记录的不兼容改变可由版本号的改变指示。
lengthSizeMinusOne加1指示应用该配置记录的流中的V-PCC样本中的NALUnitLength字段的长度(字节)。
例如,可利用值0指示一个字节的大小。该字段的值可等于图集子流的sample_stream_nal_header中的ssnh_unit_size_precision_bytes_minus1。
numOfVPCCParameterSets指定在解码器配置记录中用信号通知的V-PCC参数集单元的数量。
VPCCParameterSetLength指示vpccParameterSet字段的大小(字节)。
vpccParameterSet是承载vpcc_parameter_set()的类型VPCC_VPS的V-PCC单元。
numOfSetupUnitArrays指示所指示类型的图集NAL单元的阵列数量。
array_completeness等于1指示给定类型的所有图集NAL单元均在以下阵列中,没有在流中。array_completeness等于0指示所指示类型的附加图集NAL单元可在流中。默认值和允许值受样本条目名称约束。
NAL_unit_type指示以下阵列中的图集NAL单元的类型。其可取指示NAL_ASPS、NAL_AFPS、NAL_AAPS、NAL_PREFIX_ESEI、NAL_SUFFIX_ESEI、NAL_PREFIX_NSEI或NAL_SUFFIX_NSEI图集NAL单元的值之一。
numNALUnits指示应用该配置记录的流的配置记录中所包括的所指示类型的图集NAL单元的数量。SEI阵列可仅包含SEI消息。
SetupUnitLength指示setupUnit字段的大小(字节)。长度字段可包括NAL单元头和NAL单元有效载荷二者的大小,但不包括长度字段本身。
setupUnit可包含类型NAL_ASPS、NAL_AFPS、NAL_AAPS、NAL_PREFIX_ESEI、NAL_PREFIX_NSEI、NAL_SUFFIX_ESEI或NAL_SUFFIX_NSEI的单元。
空间区域信息结构
3DSpatialRegionStruct和3DBoundingBoxStruct提供关于点云数据的空间区域的信息(包括空间区域的x、y和z偏移以及3D空间中的区域的宽度、高度和深度)以及点云数据的3D边界框信息。
point_x、point_y和point_z分别指定3D点在笛卡尔坐标系中的x、y和z坐标值。
cuboid_dx、cuboid_dy和cuboid_dz分别指示立方体子区域在笛卡尔坐标系中相对于锚点或特定点沿着x、y和z轴的尺寸。
dimensions_included_flag指示是否用信号通知3D空间区域的尺寸。
3d_region_id是3D空间区域的标识符。
锚是用作3D空间区域的锚的笛卡尔坐标系中的3D点。
CuboidRegionStruct()包括在笛卡尔坐标系中相对于用信号通知的锚点的立方体区域信息。
图63示出根据实施方式的3D边界框信息结构。
anchor_presence_flag是指示是否存在3D边界框的3D锚点(原点)的标志。anchor_presence_flag等于1指示该结构中存在3D锚点并且在笛卡尔坐标系中相对于用信号通知的3D锚点指示3D边界框。anchor_presence_flag等于0指示该结构中不存在3D锚点并且相对于(0,0,0)指示3D边界框。
3d_bb_anchor是笛卡尔坐标系中用作3D边界框信息的原点位置或锚的3D点。
3d_bb_updated_flag等于1指示3D边界框信息动态地改变。3d_bb_updated_flag等于0指示3D边界框信息不改变。
3d_bb_type指示3D边界框信息的类型。当3d_bb_type等于0时,用信号通知的3D边界框信息可以是点云数据序列中的代表性边界框信息。当3d_bb_type等于1时,用信号通知的3D边界框信息可以是随时间变化的3D边界框信息。通常,代表性边界框可大于或等于随时间变化的边界框。
3d_bb_scale_log2指示要应用于3D边界框信息的标度。
3d_bb_precision_minus8加8指示3D边界框信息的精度。
3d_bb_dx、3d_bb_dy和3d_bb_dz根据anchor_presence_flag的值相对于用信号通知的3D锚点或(0,0,0)在笛卡尔坐标中分别沿着x、y和z轴指示点云数据的3D边界框的尺寸。
aligned(8)class VPCC3DBoundingInformationBox extends FullBox(‘vpbb’,0,0){
unsigned int(7) resrved=0;
unsinged int(1) anchor_presence_flag;
3DBoundingBoxStruct(anchor_presence_flag);
}
anchor_presence_flag等于1指示在用信号通知的3DBoundingBoxStruct中存在3D锚点,并且可在笛卡尔坐标系中相对于用信号通知的3D锚点指示3D边界框。anchor_presence_flag等于0指示在用信号通知的3DBoundingBoxStruct中不存在3D锚点并且可相对于(0,0,0)指示用信号通知的3D边界框。
观看信息结构
aligned(8)class ViewingInformationBox extends FullBox(‘vpvi’,0,0){
ViewingInformationStruct();
}
ViewingInformationStruct包含与观看位置、观看方向、观看取向等有关的信息。
aligned(8)class ViewingInformationStruct(){
unsigned int(2) reserved=0;
unsigned int(1) pos_present;
unsigned int(1) dir_present;
unsigned int(1) orientation_present;
unsigned int(1) coord_present;
if(pos_present){
unsigned int(1) refreseh_pos_flag;
unsigned int(16) pos_x;
unsigned int(16) pos_y;
unsigned int(16) pos_z;
}
if(coord_present){
unsigned int(4) coord_type;
unsigned int(16) up_x;
unsigned int(16) up_y;
unsigned int(16) up_z;
unsigned int(16) front_x;
unsigned int(16) front_y;
unsigned int(16) front_z;
}
if(dir_present){
unsigned int(1) refreseh_dir_flag;
unsigned int(8) dir_coord;
unsigned int(16) dir_x;
unsigned int(16) dir_y;
unsigned int(16) dir_z;
}
if(orientation_present){
unsigned int(1) refreseh_rot_flag;
unsigned int(8) rot_coord;
unsigned int(16) rot_x;
unsigned int(16) rot_y;
unsigned int(16) rot_z;
}
}
pos_present是指示是否用信号通知观看位置信息的标志。
dir_present是指示是否用信号通知关于用户的观看方向信息的标志。
orientation_present是指示是否用信号通知关于用户的观看取向信息的标志。
coord_present是指示是否用信号通知用于确定用户视口、用户观看取向和用户观看方向的坐标系相关信息的标志。
refreseh_pos_flag是指示用信号通知的观看位置应该用于渲染的标志。
refreseh_dir_flag是指示用信号通知的方向信息应该用于渲染的标志。
refreseh_rot_flag是指示用信号通知的观看取向应该用于渲染的标志。
pos_x、pos_y和pos_z可在3D空间中沿着x、y和z轴指示观看位置的偏移。
coord_type可指示坐标系的类型。例如,其可以是右手坐标系或左手坐标系。
up_x、up_y和up_z可指示上向量,即,3D坐标系中的向上方向。它们可通过将由pos_x、pos_y和pos_z用信号通知的观看位置连接到3D空间中由up_x、up_y和up_z用信号通知的点来指示上向量。
front_x、front_y和front_z可指示前向量,即,3D坐标系中的向前方向。它们可通过将由pos_x、pos_y和pos_z用信号通知的观看位置连接到3D空间中由front_x、front_y和front_z用信号通知的点来指示前向量。
左向量或右向量可基于coord_type、up_x、up_y、up_z、front_x、front_y和front_z来推断。
dir_coord可指示3D空间中用于指示用户的观看方向的坐标。例如,其可指示世界坐标、相机坐标或者当coord_present等于1时用信号通知的坐标等。
dir_x、dir_y和dir_z可指示关于在3D空间中用户的观看方向的信息。其坐标可符合由dir_coord指示的坐标。
rot_coord可指示3D空间中用于指示用户观看取向的坐标。例如,其可指示世界坐标、相机坐标或者当coord_present等于1时用信号通知的坐标等。
rot_x、rot_y和rot_z可指示关于3D空间中观看取向的信息。其坐标可符合由rot_coord指示的坐标。它们可被表示为x、y和z轴的旋转值。
以下,将描述如图40和图41所示的文件中所包含的样本组。
3D边界框样本组
根据实施方式的方法/装置可对可应用相同3D边界框的一个或更多个样本进行分组,并且如下用信号通知与组有关的3D边界框信息。
用于样本分组的“3bsg”grouping_type表示将承载V-PCC组件比特流或图集子比特流的轨道(例如,V-PCC轨道或V-PCC比特流轨道)中的样本指派给该样本组中承载的3D边界框信息。当存在grouping_type等于“3bsg”的SampleToGroupBox时,可能存在具有相同分组类型的附随SampleGroupDescriptionBox,并且包含该组样本所属的ID。
3DBoundingBoxStruct包含应用于该样本组的样本的3D边界框信息。
anchor_presence_flag等于1指示在用信号通知的3DBoundingBoxStruct中存在3D锚点并且在笛卡尔坐标中相对于用信号通知的3D锚点指示3D边界框。anchor_presence_flag等于0指示在用信号通知的3DBoundingBoxStruct中不存在3D锚点并且相对于(0,0,0)指示用信号通知的3D边界框。
3DBoundingBoxStruct包含应用于该样本组的样本的3D边界框信息。
3d_bb_updated_flag等于1指示更新该结构中用信号通知的3D边界框。可由相同样本组类型的另一ID的另一样本组或定时元数据轨道用信号通知动态变化的3D边界框信息。3d_bb_updated_flag等于0指示对应V-PCC内容的3D边界框信息不改变。3D边界框等于0指示对应V-PCC内容的3D边界框信息不改变。
当3d_bb_type的值为0时,可用信号通知与样本组中的样本关联的3D边界框当中的最大边界框信息。
观看信息样本组
根据实施方式的方法/装置可对可应用相同观看信息(包括观看位置、观看取向和观看方向)的一个或更多个样本进行分组,并且如下用信号通知与组关联的观看信息(观看位置、观看取向、观看方向)。
用于样本分组的“visg”grouping_type表示将承载V-PCC组件比特流或图集子比特流的轨道(例如,V-PCC轨道或V-PCC比特流轨道)中的样本指派给该样本组中承载的包括观看位置、观看取向和观看方向的观看信息。当存在grouping_type等于“visg”的SampleToGroupBox时,可能存在具有相同分组类型的附随SampleGroupDescriptionBox,并且包含该组样本所属的ID。
aligned(8)class ViewingInformationSampleGroupDescriptionEntry()
extends SampleGroupDescriptionEntry(‘visg’){
ViewingInformationStruct();
}
ViewingInformationStruct包含应用于该样本组的样本的包括观看位置、观看取向和观看方向的观看信息。
轨道分组
根据实施方式的方法/装置可对文件中的轨道进行分组。
3D边界框轨道组
根据实施方式的方法/装置可对可应用相同3D边界框的一个或更多个轨道进行分组,并且如下用信号通知与组关联的3D边界框信息。当存在关联的元数据轨道时,可在轨道组中用信号通知关于初始边界框的信息。
track_group_type等于“3btg”的TrackGroupTypeBox指示该轨道属于承载与3D边界框信息关联的V-PCC组件比特流或图集子比特流的轨道组。
属于相同3D边界框信息的轨道对于track_group_type“3btg”具有相同的track_group_id值。来自3D边界框信息的轨道的track_group_id不同于来自其它3D边界框信息的轨道的track_group_id。
aligned(8)class 3DBoundingBoxGroupBox extends TrackGroupTypeBox(‘3btg’){
unsigned int(7) resrved=0;
unsinged int(1) anchor_presence_flag;
3DBoundingBoxStruct(anchor_presence_flag);
}
anchor_presence_flag等于1指示在用信号通知的3DBoundingBoxStruct中存在3D锚点并且在笛卡尔坐标中相对于用信号通知的3D锚点指示3D边界框。anchor_presence_flag等于0指示在用信号通知的3DBoundingBoxStruct中不存在3D锚点并且相对于(0,0,0)指示用信号通知的3D边界框。
3DBoundingBoxStruct包含应用于该组的轨道的3D边界框信息。
3d_bb_updated_flag等于1指示该结构中用信号通知的3D边界框是对应V-PCC内容的初始3D边界框。其还指示可通过样本分组或定时元数据轨道用信号通知动态变化的3D边界框信息。3d_bb_updated_flag等于0指示对应V-PCC内容的3D边界框信息不改变。
当3d_bb_type等于0时,可用信号通知关于与轨道组中的轨道数据关联的3D边界框当中的最大边界框的信息。
当3d_bb_type等于1时,可用信号通知关联的初始3D边界框信息,并且可通过单独的元数据轨道等用信号通知变化的3D边界框信息。
观看信息轨道组
可应用相同观看信息(包括观看位置、观看取向和观看方向)的一个或更多个轨道可被分组,并且可如下用信号通知与组关联的观看信息。
track_group_type等于“vitg”的TrackGroupTypeBox指示该轨道属于承载与观看信息(包括观看位置、观看取向和观看方向)关联的V-PCC组件比特流或图集子比特流的轨道组。
与相同观看信息关联的轨道对于track_group_type“vitg可具有相同的track_group_id值,并且来自观看信息的轨道的track_group_id可能不同于来自其它观看信息的轨道的track_group_id。
aligned(8)class XXXXGroupBox extends TrackGroupTypeBox(‘vitg’){
ViewingInformationStruct();
}
ViewingInformationStruct包含应用于该组的轨道的包括观看位置、观看取向或观看方向的观看信息。
当存在观看信息定时元数据轨道时,其指示在ViewingInformationStruct中用信号通知并应用于该轨道组的轨道的初始观看信息。
根据实施方式的方法/装置可如下生成和发送/接收与实体分组关联的信息。
可应用相同3D边界框的一个或更多个轨道或项目可被分组,并且可如下用信号通知与组关联的3D边界框信息。
框类型:“3deg”
容器:GroupsListBox
强制:否
数量:零个或更多个
track_group_type等于“3deg”的EntityToGroupBox指示轨道或项目属于与3D边界框信息关联的组。用信号通知的3D边界框信息应用于该实体组的定时轨道或非定时项目。
anchor_presence_flag等于1指示在用信号通知的3DBoundingBoxStruct中存在3D锚点并且在笛卡尔坐标中相对于用信号通知的3D锚点指示3D边界框。anchor_presence_flag等于0指示在用信号通知的3DBoundingBoxStruct中不存在3D锚点并且相对于(0,0,0)指示用信号通知的3D边界框。
num_entities_in_group指示该实体组中的实体数量。
3DBoundingBoxStruct包含应用于该组的定时轨道或非定时项目的3D边界框信息。
3d_bb_updated_flag等于1指示该结构中用信号通知的3D边界框是对应V-PCC内容的初始3D边界框信息。可通过样本分组或定时元数据轨道用信号通知动态变化的3D边界框信息。
3d_bb_updated_flag等于0指示对应V-PCC内容的3D边界框信息不改变。
当3d_bb_type等于0时,可用信号通知关于与轨道组中的轨道或项目数据关联的3D边界框当中的最大边界框的信息。
当3d_bb_type等于1时,可用信号通知关联的初始3D边界框信息,并且可通过单独的元数据轨道等用信号通知变化的3D边界框信息。
观看信息实体组
可应用相同观看信息(包括观看位置、观看取向和观看方向)的一个或更多个轨道或项目可被分组,并且可如下用信号通知与组关联的观看信息。
框类型:“vieg”
容器:GroupsListBox
强制:否
数量:零个或更多个
track_group_type等于“vieg”的EntityToGroupBox指示轨道或项目属于与观看信息(包括观看位置、观看取向和观看方向)关联的组。用信号通知的观看信息应用于该实体组的定时轨道或非定时项目。
num_entities_in_group指示该实体组中的实体数量。
ViewingInformationStruct包含应用于该组的轨道或项目的包括观看位置、观看取向或观看方向的观看信息。
V-PCC比特流的多轨道容器
在多轨道ISOBMFF V-PCC容器的一般布局中,V-PCC比特流中的V-PCC单元可基于其类型被映射至容器文件内的各个轨道。示例可示出于图40和图41中。在多轨道ISOBMFFV-PCC容器中可存在两种类型的轨道:V-PCC轨道和V-PCC组件轨道。
V-PCC组件轨道是承载V-PCC比特流的占用图、几何和属性子比特流的2D视频编码数据的视频方案轨道。另外,V-PCC组件轨道可满足以下条件:
a)在样本条目中,可在V-PCC系统中插入新框,该框记录了视频流的作用;
b)可从V-PCC轨道至V-PCC组件轨道引入轨道参考,以建立由V-PCC轨道表示的特定点云中的V-PCC组件轨道的成员关系;
c)轨道头标志可被设定为0,以指示该轨道不直接对电影的总体铺设有贡献,而是对V-PCC系统有贡献。
属于同一V-PCC序列的轨道时间对齐。横跨不同视频编码V-PCC组件轨道和V-PCC轨道对相同点云帧有贡献的样本具有相同的呈现时间。用于这些样本的V-PCC图集序列参数集和图集帧参数集的解码时间等于或早于点云帧的编排时间。另外,属于同一V-PCC序列的所有轨道具有相同的隐含或明确编辑列表。组件轨道中的基本流之间的同步由ISOBMFF轨道定时结构(stts、ctts和cslg)或者电影碎片中的等效机制处理。
V-PCC轨道和V-PCC组件轨道中的同步样本可能时间对齐或时间不对齐。在没有时间对齐的情况下,随机访问可涉及从不同的同步开始时间预滚动各种轨道,以允许在期望的时间开始。
在时间对齐的情况下(例如,诸如V-PCC中定义的基本工具集配置文件的V-PCC配置文件所要求的),V-PCC轨道的同步样本可被视为V-PCC内容的随机访问点,并且可通过仅参考V-PCC轨道的同步样本信息来执行随机访问。
基于该布局,V-PCC ISOBMFF容器可包括以下内容:
包含V-PCC参数集和图集子比特流参数集(在样本条目中)的一个或更多个V-PCC轨道和承载图集子比特流NAL单元的样本。这些轨道包括对承载视频压缩V-PCC单元(即,单元类型VPCC_OVD、VPCC_GVD和VPCC_AVD)的有效载荷的其它轨道的轨道参考。
视频方案轨道,其中样本包含占用图数据的视频编码基本流的访问单元(即,类型VPCC_OVD的V-PCC单元的有效载荷)。
一个或更多个视频方案轨道,其中样本包含几何数据的视频编码基本流的访问单元(即,类型VPCC_GVD的V-PCC单元的有效载荷)。
零个或更多个视频方案轨道,其中样本包含属性数据的视频编码基本流的访问单元(即,类型VPCC_AVD的V-PCC单元的有效载荷)。
V-PCC轨道
V-PCC轨道样本条目
样本条目类型:“vpc1”、“vpcg”
容器:SampleDescriptionBox
强制:“vpc1”或“vpcg”样本条目是强制的数量:可存在一个或更多个样本条目
V-PCC轨道使用扩展样本条目类型为“vpc1”或“vpcg”的VolumetricVisualSampleEntry的VPCCSampleEntry。
在“vpc1”样本条目下,所有图集序列参数集、图集帧参数集、图集适配参数集或V-PCC必要SEI或V-PCC非必要SEI均在setupUnit阵列中。在“vpcg”样本条目下,图集序列参数集、图集帧参数集、图集适配参数集、V-PCC必要SEI或V-PCC非必要SEI可存在于该阵列中或流中。
VPCC3DBoundingInformationBox指示与轨道中承载的样本对应的V-PCC内容的3D边界框信息。
3d_bb_updated_flag等于1指示用信号通知的3D边界框信息是与轨道中承载的样本对应的V-PCC内容的初始3D边界框信息。可通过样本分组或定时元数据轨道用信号通知动态变化的3D边界框信息。3d_bb_updated_flag等于0指示对应V-PCC内容的3D边界框信息不改变。
当3d_bb_type等于0时,可用信号通知关于与样本数据关联的3D边界框当中的最大边界框的信息。当3d_bb_type等于1时,可用信号通知关联的初始3D边界框信息,并且可通过样本分组、单独的元数据轨道等用信号通知变化的3D边界框信息。
ViewingInformationBox指示与轨道中承载的样本对应的V-PCC内容的观看信息(包括观看位置、取向或方向)。当存在观看信息样本组或观看信息定时元数据轨道时,其可指示初始观看信息。
对于VPCC ConfigurationBox配置,参考上面在公共数据结构中给出的描述。
V-PCC轨道样本格式
V-PCC轨道中的各个样本对应于单个编码图集访问单元。各种组件轨道中与该帧对应的样本具有与V-PCC轨道样本相同的编排时间。各个V-PCC样本可仅包含类型VPCC_AD的一个V-PCC单元有效载荷,其可包括一个或更多个图集NAL单元。
nalUnit包含NAL单元样本流格式的单个图集NAL单元。
V-PCC轨道同步样本
V-PCC轨道中的同步样本是包含帧内随机访问点(IRAP)编码图集访问单元的样本。如果需要,图集子比特流参数集(例如,ASPS、AAPS、AFPS)和SEI消息可在同步样本处重复以允许随机访问。
视频编码V-PCC组件轨道
由于在播放器侧不重构点云的情况下显示从属性、几何或占用图轨道解码的帧没有意义,所以为这些视频编码轨道定义受限视频方案类型。
受限视频方案
V-PCC组件视频轨道作为受限视频表示在文件中,并且由其受限视频样本条目的RestrictedSchemeInfoBox的theSchemeTypeBox的thescheme_type字段中的“pccv”标识。
应该注意,对用于对属性、几何和占用图V-PCC组件进行编码的视频编解码器不存在限制。此外,这些组件可使用不同的视频编解码器来编码。
方案信息
SchemeInformationBox可存在,并且包含VPCCUnitHeaderBox。
参考V-PCC组件轨道
为了将V-PCC轨道链接到组件视频轨道,向V-PCC轨道的TrackBox内的TrackReferenceBox添加三个TrackReferenceTypeBox,每组件一个。TrackReferenceTypeBox包含指定V-PCC轨道所参考的视频轨道的track_ID阵列。TrackReferenceTypeBox的reference_type标识组件的类型(即,几何、属性或占用图)。这些轨道参考类型的4CC可描述如下:
“pcco”:参考轨道包含视频编码占用图V-PCC组件。
“pccg”:参考轨道包含视频编码几何V-PCC组件。
“pcca”:参考轨道包含视频编码属性V-PCC组件。
由参考受限视频轨道承载并在轨道的RestrictedSchemeInfoBox中用信号通知的V-PCC组件的类型应匹配来自V-PCC轨道的轨道参考的参考类型。
V-PCC比特流的单轨道容器
V-PCC数据的单轨道封装要求V-PCC编码基本比特流由单轨道表示。
在V-PCC编码比特流的简单ISOBMFF封装的情况下可利用PCC数据的单轨道封装。这种比特流可直接被存储为单轨道而无需进一步处理。V-PCC单元头数据结构可保持在比特流中。单轨道容器可被提供给媒体工作流以便于进一步处理(例如,多轨道文件生成、转码、DASH分段等)。
V-PCC比特流轨道
样本条目类型:“vpe1”、“vpeg”
容器:SampleDescriptionBox
强制:“vpe1”或“vpeg”样本条目是强制的
数量:可存在一个或更多个样本条目
V-PCC比特流轨道使用样本条目类型为“vpe1”或“vpeg”的VolumetricVisualSampleEntry。
VPCC比特流样本条目包含VPCCConfigurationBox。
在“vpe1”样本条目下,所有图集序列参数集、图集帧参数集、图集适配参数集、V-PCC必要SEI或V-PCC非必要SEI可存在于该阵列中或流中。
VPCC3DBoundingInformationBox指示与轨道中承载的样本对应的V-PCC内容的3D边界框信息。
3d_bb_updated_flag等于1指示用信号通知的3D边界框信息是与轨道中承载的样本对应的V-PCC内容的初始3D边界框信息。可通过样本分组或定时元数据轨道用信号通知动态变化的3D边界框信息。3d_bb_updated_flag等于0指示对应V-PCC内容的3D边界框信息不改变。
当3d_bb_type等于0时,可用信号通知关于与样本数据关联的3D边界框当中的最大边界框的信息。当3d_bb_type等于1时,可用信号通知关联的初始3D边界框信息,并且可通过样本分组、单独的元数据轨道等用信号通知变化的3D边界框信息。
ViewingInformationBox可指示与轨道中承载的样本对应的V-PCC内容的观看信息(包括观看位置、取向或方向)。当存在观看信息样本组或观看信息定时元数据轨道时,其可指示初始观看信息。
V-PCC比特流样本格式
V-PCC比特流样本包含属于相同呈现时间的一个或更多个V-PCC单元,即,一个V-PCC访问单元。样本可以是自包含的(例如,同步样本)或者根据V-PCC比特流轨道的其它样本来解码。
V-PCC比特流同步样本
V-PCC比特流同步样本满足所有以下条件:
可独立地解码;
按解码顺序在同步样本之后的样本的解码均不依赖于同步样本之前的任何样本;以及
按解码顺序在同步样本之后的所有样本可成功解码。
V-PCC比特流子样本:
V-PCC比特流子样本是包含在V-PCC比特流样本中的V-PCC单元。
V-PCC比特流轨道应在其SampleTableBox中或在其各个MovieFragmentBox的TrackFragmentBox中包含SubSampleInformationBox,其列出V-PCC比特流子样本。表示子样本的V-PCC单元的32比特单元头可被复制到SubSampleInformationBox中的子样本条目的32比特codec_specific_parameters字段。各个子样本的V-PCC单元类型可通过解析SubSampleInformationBox中的子样本条目的codec_specific_parameters字段来标识。
定时元数据轨道
3D边界框定时元数据轨道
动态3D边界框定时元数据轨道指示V-PCC内容的3D边界框信息,并且可随时间动态地改变。3D边界框定时元数据轨道可利用“cdsc”轨道参考链接到承载图集子比特流或V-PCC组件比特流的各个轨道(例如,V-PCC轨道或V-PCC比特流轨道)。
3D边界框定时元数据轨道可利用“cdsc”轨道参考链接到各个轨道组。
aligned(8)class 3DBoundingBoxSampleEntry extends MetadataSampleEntry(‘dy3b’){
VPCC3DBoundingInformationBox initial_3D_bb;
}
该定时元数据轨道的样本条目包含3D边界框信息,其包括应用于对应V-PCC内容的默认3D边界框信息。
定时元数据轨道的样本格式如下配置。
aligned(8)class 3DBoundingBoxSample{
unsigned int(7) reserved=0;
unsigned int(1) anchor_updated_flag;
3DBoundingBoxStruct(anchor_updated_flag);
}
anchor_updated_flag是指示是否更新3D边界框的3D锚点(原点)的标志。当anchor_updated_flag等于1时,在该样本中存在3D锚点并且在笛卡尔坐标中相对于用信号通知的3D锚点指示3D边界框。当anchor_updated_flag等于0时,在该样本中不存在3D锚点并且相对于样本条目中用信号通知的3D锚点指示3D边界框。
观看信息定时元数据轨道
动态观看信息定时元数据轨道指示观看信息(包括观看位置、观看取向和观看方向)并且可随时间动态地改变。观看信息定时元数据轨道利用“cdsc”轨道参考链接到承载图集子比特流或V-PCC组件比特流的各个轨道(例如,V-PCC轨道或V-PCC比特流轨道)。
观看信息定时元数据轨道利用“cdsc”轨道参考链接到各个轨道组。
aligned(8)class ViewingInformationSampleEntry extendsMetadataSampleEntry(‘dyvi’){
ViewingInformationBox();
}
观看信息定时元数据轨道的样本条目包含应用于对应V-PCC内容的初始观看信息(包括观看位置、观看取向和观看方向)。
定时元数据轨道的样本格式配置如下。
aligned(8)class ViewingInformationSample{
ViewingInformationStruct();
}
ViewingInformationStruct包含动态变化的观看信息(包括观看位置、观看取向和观看方向)。
如图45所示,当点云数据是非定时数据时,根据上述实施方式的数据可作为图像项目在文件中生成、被封装并且被发送/接收。该封装由根据实施方式的文件/片段封装器20004和21009执行,并且与封装对应的解封装由根据实施方式的文件/片段解封装器22000执行。
根据实施方式的项目类型包括V-PCC项目和V-PCC单元项目,并且被定义为封装非定时V-PCC数据。
对于根据实施方式的项目,参考图45中的对应描述。
VPCC配置项目性质可存储V-PCC参数集并且可与V-PCC项目关联。
vpcc_unit_payload_struct可包括VPCC单元有效载荷大小(vpcc_unit_payload_size)和VPCC单元有效载荷(vpcc_unit_payload)。vpcc_unit_payload_size指示vpcc_unit_payload的大小。
vpcc_unit_payload包括类型VPCC_VPS的VPCC单元。
3D边界框项目性质
框类型:‘vpbb”
性质类型:描述性项目性质
容器:ItemPropertyContainerBox
强制(每项目):否
数量(每项目):零个或一个
包含3D边界框信息的3DBoundingBoxStruct()被存储为项目性质,并且与V-PCC项目和V-PCC单元项目关联。
aligned(8)class 3DBoundingBoxItemProperty()extends ItemFullProperty(‘vpbb’,version=0,0){
unsigned int(7) resrved=0;
unsinged int(1) anchor_presence_flag;
3DBoundingBoxStruct(anchor_presence_flag);
}
当anchor_presence_flag等于1时,在用信号通知的3DBoundingBoxStruct中存在3D锚点并且在笛卡尔坐标中相对于用信号通知的3D锚点指示3D边界框。当anchor_presence_flag等于0时,在用信号通知的3DBoundingBoxStruct中不存在3D锚点并且相对于(0,0,0)指示用信号通知的3D边界框。
在本公开中,根据实施方式的锚点是点云数据的边界框在3D空间中的参考点,并且可被定义为边界框在3D空间中的x、y和z轴上的原点。
3DBoundingBoxStruct()表示与V-PCC项目关联的3D边界框信息。
观看信息项目性质
框类型:“vpvi”
性质类型:描述性项目性质
容器:ItemPropertyContainerBox
强制(每项目):否
数量(每项目):零个或一个
ViewingInformationProperty根据要渲染给用户的图像指示观看信息。包含观看信息(包括观看位置、观看取向或观看方向)的ViewingInformationStruct被存储为项目性质并且与V-PCC项目和V-PCC单元项目关联。
aligned(8)class ViewingInformationProperty()extends ItemFullProperty(‘vpvi’,version=0,0){
ViewingInformationStruct();
}
ViewingInformationStruct()包括与V-PCC项目关联的观看信息(包括观看位置、观看取向或观看方向)。
根据实施方式的文件封装器20004和21009可根据以下流程图处理点云数据。
1.根据存在于比特流中的3D边界框信息或关于V-PCC视频或图像的3D边界信息的变化程度生成点云数据并将其存储在文件中的轨道或图像项目中;
2.存储与之有关的信令信息;并且
3.基于关于V-PCC视频或图像的观看信息生成并将其存储在文件中的轨道或图像项目中,并且存储相关信令信息。
根据实施方式的文件解封装或文件解封装器22000可根据以下流程图处理点云数据。
1.获取包含在文件中的轨道或图像项目中的诸如信令和3D边界框的信息;
2.基于所获取的信息,有效地提取、解码和后处理文件中的轨道数据或图像数据;
3.可获取包含在文件中的轨道或图像项目中的信令和观看信息。基于所获取的信息,执行点云视频或图像渲染等。
根据实施方式的用于发送和接收点云数据的方法/装置可基于根据实施方式的文件封装器和文件解封装器的操作提供以下效果。
上述V-PCC和V-PCC系统的数据可由根据实施方式的发送装置的封装器(可称为生成器)生成,并且可由发送装置的发送器发送。另外,V-PCC和V-PCC系统的数据可由根据实施方式的接收装置的接收器接收,并且可由接收装置的解封装器(可称为解析器)获取。接收装置的解码器、渲染器等可基于V-PCC和V-PCC系统的数据向用户提供适当点云数据。
根据实施方式,点云数据发送方法可包括:对点云数据进行编码;基于文件将包含点云数据的比特流封装;以及发送文件。
根据实施方式,比特流可包括关于点云数据的参数信息,其中,参数信息可包括点云数据的框的坐标中的偏移信息和关于框的大小信息。即,用信号通知关于边界框的位置和大小的信息(参见图30)。
根据实施方式,文件可包括关于点云数据的空间信息。空间信息可包括点云数据的3D边界框中所包括的点的坐标值和坐标中的3D边界框的扩展值(参见图44)。
根据实施方式,文件可包括轨道,该轨道包括样本条目,该样本条目包括点云数据的参数集和点云数据的图集子比特流参数集。轨道可包括关于点云数据的空间信息(参见与图44对应的段落)。
根据实施方式,文件可包括轨道,该轨道包括样本条目,该样本条目包括点云数据的参数集和点云数据的图集子比特流参数集。轨道可包括定时元数据轨道,其中,定时元数据轨道可包含动态地改变的空间信息(参见与图44对应的段落)。换言之,在随时间改变的点云数据的情况下,根据实施方式的方法/装置可将关于动态3D边界框或空间的信息包括在定时元数据轨道中。
根据实施方式,文件可包括属于点云数据的相同3D边界框的轨道,其中,轨道可被分组(参见与图63对应的段落)。
根据实施方式,文件可包括属于点云数据的相同3D边界框的轨道或项目,其中,轨道或项目可被分组,并且3D边界框可表示与点云数据关联的一个或更多个实体。根据实施方式,实体可指由点云数据表示的对象。当存在多个实体时,根据实施方式的方法/装置可提供用于编码/解码的文件容器结构以便有效地渲染多个实体(参见与图63对应的段落)。
图64示出根据实施方式的用于发送点云数据的方法。
S64000:点云数据发送方法可包括对点云数据进行编码。
根据实施方式,编码操作包括图1的发送装置10000、图1的点云视频编码器10002、图2和图3的点云数据的获取和处理、图4的编码器、图5至图14的点云数据的处理、图15的编码器、图18的发送装置、图20的获取器20000、图20的处理器20001、图20的编码器20002和20003、图21的点云数据的获取21000、图21的点云数据处理器21001至21006、图21的编码器21007和21008、图23的智能电话2340、图23的XR装置2330、图24和图25中的对象的边界框和信息生成的处理、图26和图27中的包含点云数据的比特流的生成以及图31的图集(子)比特流的生成/编码的操作。
S64010:根据实施方式,点云数据发送方法还可包括将点云数据封装。
根据实施方式,封装操作包括图1的发送装置10000、图1的文件/片段封装器10003、图20的文件/片段封装器20004、图21的文件/片段封装器21009、图24和图25中的关于边界框的信息的生成、图31和图50中的关于图集(子)比特流的信息的生成、图40和图41中的文件的生成、图42中的样本条目中的信息的生成、图43中的轨道参考和分组的生成以及图45中的项目的生成的操作。
S64020:根据实施方式,点云数据发送方法还可包括发送点云数据。
根据实施方式的发送操作包括图1的发送装置10000、图1的发送器10004、图20的文件或片段传送和图21的文件或片段传送的操作。
图65示出根据实施方式的用于接收点云数据的方法。
S65000:点云数据接收方法可包括接收点云数据。
根据实施方式,接收操作可包括图1的接收装置10005的操作、图1的接收器10006的操作、图19的接收装置的接收操作、图20的文件传送的操作以及图22中的文件或片段的接收。
S65010:根据实施方式,点云数据接收方法还可包括将点云数据解封装。
根据实施方式,解封装操作包括图1的接收装置10005、图1的文件/片段解封装器10007、图20的文件/片段解封装器20005、图22的文件/片段解封装器22000、图24和图25中的关于边界框的信息的解析、图31和图50中的关于图集(子)比特流的信息的解析、图40和图41中的文件的解析、图42中的样本条目中的信息的解析、图43中的轨道参考和分组的解析以及图45中的项目的解析的操作。
S65020:根据实施方式,点云数据接收方法还可包括对点云数据进行解码。
根据实施方式,解码操作包括点云数据视频解码器10008、渲染器10009、图16和图17的解码器、图19的接收装置、解码器20006、图20的点云数据处理器/渲染器和显示器、解码器22001和22002、点云数据处理器22003和图22的渲染器、图23的智能电话2440、图23的XR装置2430、图24和图25中的对象的边界框和信息解码的处理、图26和图27中的包含点云数据的比特流的解码以及图31中的图集(子)比特流的处理/解码的操作。
根据实施方式的方法允许用于提供点云内容服务的发送器或接收器如上所述配置V-PCC比特流并存储文件。
另外,V-PCC比特流可被有效地复用。可基于V-PCC单元支持对比特流的有效访问。V-PCC比特流的图集流可被有效地存储在文件中的轨道中并发送。
利用根据实施方式的方法,可根据用户视口选择文件中包含点云数据的轨道或项目,或者轨道或项目中的数据可被部分地解析、解码或渲染。通过减少不必要的数据(即,对与用户视口无关的点云数据的不必要的计算),可有效地执行文件中的点云数据的解析和点云数据的解码/渲染。
根据本公开的实施方式的点云压缩处理装置、发送器、接收器、点云播放器、编码器或解码器提供上述效果。
换言之,上述数据表示方法可允许对点云比特流的有效访问。另外,可有效地访问点云比特流的数据处理和渲染所需的信息。
根据本公开的实施方式的发送器或接收器可通过用于将V-PCC比特流划分为一个或更多个轨道并存储在文件中的技术和信令、用于指示所存储的V-PCC比特流的多个轨道之间的关系的信令以及存储在文件中的替代V-PCC轨道的指示来有效地存储和发送点云比特流的文件。
根据上述实施方式的方法/装置可与用于发送V-PCC数据的方法和装置组合描述。
已在方法和/或装置方面描述了实施方式。方法的描述和装置的描述可相互补充。
尽管为了简单参照各个附图描述了实施方式,但是可通过将附图所示的实施方式合并来设计新的实施方式。如果本领域技术人员设计了记录有用于执行以上描述中提及的实施方式的程序的计算机可读记录介质,则其可落在所附权利要求及其等同物的范围内。装置和方法可不限于上述实施方式的配置和方法。上述实施方式可通过选择性地彼此完全或部分地组合来配置,以实现各种修改。尽管参照附图描述了优选实施方式,但本领域技术人员将理解,在不脱离所附权利要求中描述的本公开的精神或范围的情况下,可对实施方式进行各种修改和变化。这些修改不应从实施方式的技术思想或观点方面单独地理解。
实施方式的装置的各种元件可由硬件、软件、固件或其组合实现。实施方式中的各种元件可由单个芯片(例如,单个硬件电路)实现。根据实施方式,根据实施方式的组件可分别被实现为单独的芯片。根据实施方式,根据实施方式的装置的至少一个或更多个组件可包括能够执行一个或更多个程序的一个或更多个处理器。一个或更多个程序可执行根据实施方式的任一个或更多个操作/方法,或者包括用于执行其的指令。用于执行根据实施方式的装置的方法/操作的可执行指令可被存储在被配置为由一个或更多个处理器执行的非暂时性CRM或其它计算机程序产品中,或者可被存储在被配置为由一个或更多个处理器执行的暂时性CRM或其它计算机程序产品中。另外,根据实施方式的存储器可用作不仅涵盖易失性存储器(例如,RAM),而且涵盖非易失性存储器、闪存和PROM的概念。另外,其还可按照载波的形式实现(例如,经由互联网的传输)。另外,处理器可读记录介质可分布到经由网络连接的计算机系统,使得处理器可读代码可按照分布式方式存储和执行。
在本文献中,术语“/”和“、”应该被解释为指示“和/或”。例如,表达“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二者。换言之,在本文献中术语“或”应该被解释为“另外地或另选地”。
诸如第一和第二的术语可用于描述实施方式的各种元件。然而,根据实施方式的各种组件不应受上述术语限制。这些术语仅用于将一个元件与另一元件相区分。例如,第一用户输入信号可被称为第二用户输入信号。类似地,第二用户输入信号可被称为第一用户输入信号。这些术语的使用应该被解释为不脱离各种实施方式的范围。第一用户输入信号和第二用户输入信号均是用户输入信号,但除非上文清楚地另外规定,否则并不意味着相同的用户输入信号。
用于描述实施方式的术语仅用于描述特定实施方式的目的,并非旨在限制实施方式。如在实施方式的描述和权利要求中使用的,除非上文清楚地另外规定,否则单数形式包括复数指称物。表达“和/或”用于包括术语的所有可能组合。诸如“包括”或“具有”的术语旨在指示存在图形、数量、步骤、元件和/或组件,应该被理解为不排除存在附加图形、数量、步骤、元件和/或组件的可能性。如本文所使用的,诸如“如果”和“当”的条件表达不限于可选情况,旨在被解释为当满足特定条件时执行相关操作或根据该特定条件解释相关定义。
根据本说明书中描述的实施方式的操作可由根据实施方式的包括存储器和/或处理器的发送/接收装置执行。存储器可存储用于处理/控制根据实施方式的操作的程序,并且处理器可控制本说明书中描述的各种操作。处理器可被称为控制器等。在实施方式中,操作可由固件、软件和/或其组合执行。固件、软件和/或其组合可被存储在处理器或存储器中。
根据上述实施方式的操作可由根据实施方式的发送装置和/或接收装置执行。发送/接收装置可包括:发送器/接收器,其被配置为发送和接收媒体数据;存储器,其被配置为存储用于根据实施方式的处理的指令(程序代码、算法、流程图和/或数据);以及处理器,其被配置为控制发送/接收装置的操作。
处理器可被称为控制器等,并且可对应于例如硬件、软件和/或其组合。根据上述实施方式的操作可由处理器执行。另外,处理器可被实现为用于上述实施方式的操作的编码器/解码器。
本公开的模式
如上所述,在用于执行实施方式的最佳模式下描述了相关细节。
工业实用性
如上所述,实施方式完全或部分地适用于点云数据发送/接收装置和系统。
本领域技术人员可在实施方式的范围内以各种方式改变或修改实施方式。
实施方式可包括权利要求及其等同物的范围内的变化/修改。

Claims (11)

1.一种对点云数据进行编码的方法,所述方法包括以下步骤:
获取点云数据,所述点云数据包括包含几何数据和属性数据的点云数据;
对所述点云数据进行编码;
将包括所述点云数据的比特流封装在文件中,
其中,所述文件还包括轨道,所述轨道包括针对所述点云数据的边界框信息,其中,所述边界框信息包括边界框的位置信息和所述边界框的延伸信息,
其中,所述轨道还包括定时元数据轨道,所述定时元数据轨道包括针对动态类型的样本条目和包括与动态空间区域相关的区域信息的样本,并且其中,所述样本条目中的动态空间区域信息随时间动态地改变;以及
发送所述文件。
2.根据权利要求1所述的方法,
其中,所述比特流包括针对所述点云数据的参数信息,
其中,所述参数信息包括针对所述点云数据的框的坐标中的偏移信息和针对所述框的大小信息。
3.根据权利要求1所述的方法,
其中,所述轨道包括以下样本条目:该样本条目包括针对所述点云数据的参数集和针对所述点云数据的图集子比特流参数集,
其中,所述轨道包括针对所述点云数据的空间信息。
4.根据权利要求1所述的方法,
其中,所述文件包括属于针对所述点云数据的相同3D边界框的轨道,
其中,所述轨道被分组。
5.根据权利要求1所述的方法,
其中,所述文件包括属于针对所述点云数据的相同3D边界框的轨道或项目,
其中,所述轨道或所述项目被分组,并且
其中,所述3D边界框表示与所述点云数据关联的一个或更多个实体。
6.一种对点云数据进行解码的方法,所述方法包括以下步骤:
接收文件,所述文件包括包含点云数据的比特流,所述点云数据包括几何数据和属性数据;
从文件将所述比特流解封装;
对所述点云数据进行解码;以及
对所述点云数据进行渲染,
其中,所述文件包括组件轨道,所述组件轨道包括所述几何数据和所述属性数据,
其中,所述文件还包括轨道,所述轨道包括针对所述点云数据的边界框信息,其中,所述边界框信息包括边界框的位置信息和所述边界框的延伸信息,
其中,所述轨道还包括定时元数据轨道,所述定时元数据轨道包括针对动态类型的样本条目和包括与动态空间区域相关的区域信息的样本,并且其中,所述样本条目中的动态空间区域信息随时间动态地改变。
7.根据权利要求6所述的方法,
其中,所述比特流包括针对所述点云数据的参数信息,
其中,所述参数信息包括针对所述点云数据的框的坐标中的偏移信息和针对所述框的大小信息。
8.根据权利要求6所述的方法,
其中,所述轨道包括以下样本条目:该样本条目包括针对所述点云数据的参数集和针对所述点云数据的图集子比特流参数集,
其中,所述轨道包括针对所述点云数据的空间信息。
9.根据权利要求6所述的方法,
其中,所述文件包括属于针对所述点云数据的相同3D边界框的轨道,
其中,所述轨道被分组。
10.根据权利要求6所述的方法,
其中,所述文件包括属于针对所述点云数据的相同3D边界框的轨道或项目,
其中,所述轨道或所述项目被分组,并且
其中,所述3D边界框表示与所述点云数据关联的一个或更多个实体。
11.一种非暂时性计算机可读数字存储介质,所述非暂时性计算机可读数字存储介质存储比特流,所述比特流通过点云编码方法生成,所述点云编码方法包括以下步骤:
对点云数据进行编码,所述点云数据包括包含几何数据和属性数据的点云数据;
基于文件来封装包括所述点云数据的比特流,
其中,所述文件包括组件轨道,所述组件轨道包括所述几何数据和所述属性数据,
其中,所述文件还包括轨道,所述轨道包括针对所述点云数据的边界框信息,其中,所述边界框信息包括边界框的位置信息和所述边界框的延伸信息,
其中,所述轨道还包括定时元数据轨道,所述定时元数据轨道包括针对动态类型的样本条目和包括与动态空间区域相关的区域信息的样本,并且其中,动态空间区域信息随时间动态地改变;以及
发送所述文件。
CN202410273303.4A 2020-01-08 2020-12-15 对点云数据进行编码/解码的方法和存储介质 Pending CN117978994A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/958,682 2020-01-08
US63/008,804 2020-04-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080092003.6A Division CN114930813B (zh) 2020-01-08 2020-12-15 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法

Publications (1)

Publication Number Publication Date
CN117978994A true CN117978994A (zh) 2024-05-03

Family

ID=

Similar Documents

Publication Publication Date Title
CN114930863B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN114930813B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US11631158B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN114946178B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115443652B (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN115398890B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US11601634B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN114946179B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115769583A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115380528B (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
US11908168B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN115428442B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN117978994A (zh) 对点云数据进行编码/解码的方法和存储介质
CN117978993A (zh) 对点云数据进行编码/解码的设备
CN117978996A (zh) 点云数据发送设备和方法、点云数据接收设备和方法

Legal Events

Date Code Title Description
PB01 Publication