CN115398926A - 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 - Google Patents

点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 Download PDF

Info

Publication number
CN115398926A
CN115398926A CN202180028369.1A CN202180028369A CN115398926A CN 115398926 A CN115398926 A CN 115398926A CN 202180028369 A CN202180028369 A CN 202180028369A CN 115398926 A CN115398926 A CN 115398926A
Authority
CN
China
Prior art keywords
point cloud
data
information
attribute
cloud data
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.)
Granted
Application number
CN202180028369.1A
Other languages
English (en)
Other versions
CN115398926B (zh
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 CN115398926A publication Critical patent/CN115398926A/zh
Application granted granted Critical
Publication of CN115398926B publication Critical patent/CN115398926B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Optics & Photonics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

根据实施方式的一种点云数据发送方法包括以下步骤:对点云数据进行编码;将包括编码后的点云数据的比特流封装到文件中;以及发送文件。所述比特流被存储在文件的单个轨道中或多个轨道中,文件还包括信令数据,并且信令数据可以包括至少一个参数集和空间区域信息。

Description

点云数据发送装置、点云数据发送方法、点云数据接收装置和 点云数据接收方法
技术领域
实施方式涉及用于处理点云内容的方法和装置。
背景技术
点云内容是由点云表示的内容,点云是属于表示三维空间(或体积)的坐标系的点的集合。点云内容可以表示三维配置的媒体,并用于提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、XR(扩展现实)和自动驾驶这样的各种服务。然而,需要几万到几十万个点数据来表示点云内容。因此,需要高效处理大量点数据的方法。
发明内容
技术问题
为解决上述问题而设计的本公开的目的是提供高效发送和接收点云的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的是提供用于解决延时(latency)和编码/解码复杂度的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的是提供用于高效地发送和接收几何点云压缩(G-PCC)比特流的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的是提供用于将G-PCC比特流高效存储在文件中的单个轨道中并高效地访问所存储的G-PCC比特流的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的是提供用于将G-PCC比特流高效存储在文件中的多个轨道中并高效地访问所存储的G-PCC比特流的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的是提供用于将G-PCC比特流高效存储在文件中的单个轨道或多个轨道中并支持所存储的G-PCC比特流的空间访问的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的是提供用于提供相关信息的信令以支持存储在文件中的单个轨道或多个轨道中的G-PCC比特流的空间访问的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的目的不限于以上提到的目的,并且本领域的普通技术人员在查阅了以下描述后,以上未提到的本公开的其它目的将变得清楚。
技术方案
为了实现这些目的和其它优点并且按照本公开的目的,如本文中实施和广义描述的,一种发送点云数据的方法可以包括对点云数据进行编码、将包括编码后的点云数据的比特流封装到文件中以及发送文件。根据实施方式,比特流可以被存储在文件的单个轨道或多个轨道中,文件还可以包括信令数据,并且信令数据可以包括至少一个参数集和空间区域信息。根据实施方式,编码后的点云数据包括几何数据和属性数据。
根据实施方式,所述点云数据被划分为一个或更多个3D空间区域,并且所述空间区域信息至少包括用于标识各个3D空间区域的标识信息、锚点的位置信息、或各个3D空间区域的大小信息,所述锚点表示各个3D空间区域的原点。
根据实施方式,所述空间区域信息是随时间推移不变化的静态空间区域信息,或随时间推移动态变化的动态空间区域信息。
根据实施方式,所述比特流由数据单元构成,各个数据单元包括类型信息、长度信息和载荷,以及所述类型信息指示所述载荷中的数据的类型,所述长度信息指示所述载荷的长度,并且所述载荷包括所述几何数据、所述属性数据、和所述至少一个参数集中的一者。
根据实施方式,在所述比特流被存储在所述文件的多个轨道中的情况下,所述信令数据还包括用于指示各个轨道中存储的分量的类型的分量类型信息,所述分量是几何数据或属性数据,并且所述分量类型信息在各个轨道的样本条目中通知。
根据实施方式,一种点云数据发送装置可以包括:编码器,所述编码器对点云数据进行编码;封装器,所述封装器将包括编码后的点云数据的比特流封装到文件中;以及发送器,所述发送器发送所述文件。根据实施方式,所述比特流被存储在所述文件的单个轨道中或多个轨道中,所述文件还包括信令数据,并且所述信令数据包括至少一个参数集和空间区域信息。根据实施方式,编码后的点云数据可以包括几何数据和属性数据。
根据实施方式,所述点云数据被划分为一个或更多个3D空间区域,并且所述空间区域信息至少包括用于标识各个3D空间区域的标识信息、锚点的位置信息、或各个3D空间区域的大小信息,所述锚点表示各个3D空间区域的原点。
根据实施方式,所述空间区域信息是随时间推移不变化的静态空间区域信息或随时间推移动态变化的动态空间区域信息。
根据实施方式,所述比特流由数据单元构成,各个数据单元包括类型信息、长度信息和载荷,以及所述类型信息指示所述载荷中的数据的类型,所述长度信息指示所述载荷的长度,并且所述载荷包括所述几何数据、所述属性数据、和所述至少一个参数集中的一者。
根据实施方式,在所述比特流被存储在所述文件的多个轨道中的情况下,所述信令数据还包括用于指示各个轨道中存储的分量的类型的分量类型信息,所述分量是几何数据或属性数据,并且所述分量类型信息在各个轨道的样本条目中通知。
根据实施方式,一种点云数据接收装置可以包括:接收器,所述接收器接收文件;解封装器,所述解封装器将所述文件解封装为包括点云数据的比特流,所述比特流被存储在所述文件的单个轨道中或多个轨道中,并且所述文件还包括信令数据;解码器,所述解码器基于所述信令数据对所述点云数据的一部分或全部进行解码;以及渲染器,所述渲染器渲染解码后的点云数据的一部分或全部。根据实施方式,所述信令数据包括至少一个参数集和空间区域信息,并且所述点云数据包括几何数据和属性数据。
根据实施方式,所述点云数据被划分为一个或更多个3D空间区域,并且所述空间区域信息至少包括用于标识各个3D空间区域的标识信息、锚点的位置信息、或各个3D空间区域的大小信息,所述锚点表示各个3D空间区域的原点。
根据实施方式,所述空间区域信息是随时间推移不变化的静态空间区域信息或随时间推移动态变化的动态空间区域信息。
根据实施方式,所述比特流由数据单元构成,各个数据单元包括类型信息、长度信息和载荷,以及所述类型信息指示所述载荷中的数据的类型,所述长度信息指示所述载荷的长度,并且所述载荷包括所述几何数据、所述属性数据、和所述至少一个参数集中的一者。
根据实施方式,在所述比特流被存储在所述文件的多个轨道中的情况下,所述信令数据还包括用于指示各个轨道中存储的分量的类型的分量类型信息,所述分量是几何数据或属性数据,并且所述分量类型信息在各个轨道的样本条目中通知。
有益效果
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以提供高质量的点云服务。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以实现各种视频编解码方法。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以提供诸如自主驾驶服务这样的通用点云内容。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以执行点云数据的空间自适应划分以独立地对点云数据进行编码和解码,由此提高并行处理并提供可缩放性。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以通过以图块和/或切片为单位对点云数据进行分割来执行编码和解码并通知对于编码和解码必要的数据,由此提高点云的编码和解码性能。
利用根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置,由包括几何、属性和信令信息的类型-长度-值(Type-Length-Value,TLV)封装结构构成的G-PCC比特流可以被存储在文件中的单个轨道或多个轨道中,并且可以高效地访问所存储的G-PCC比特流。相应地,可以提高点云的编码和解码的性能。
利用根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置,当一个样本由多个TLV封装结构构成时,多个TLV封装结构中的各个TLV封装结构可以被作为子样本存储。由此,可以支持对所存储的G-PCC比特流的高效访问。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以使得能够有效复用G-PCC比特流,并基于G-PCC访问单元支持对G-PCC比特流的高效访问。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以允许在比特流中发送G-PCC比特流中的用于数据处理和渲染的元数据。
利用根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置,G-PCC比特流可以被分割并被存储在文档中的一个或更多个轨道中并被通知。另外,可以执行通知,以指示所存储的G-PCC比特流与一个或更多个轨道间的关系,并且可以通过指示存储在文件中的另选G-PCC轨道来高效地存储和发送包含点云比特流的文件。
根据实施方式,点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以通知用于支持文件的轨道中的样本、样本条目、样本组或轨道组、或元数据轨道的样本和/或样本条目中的空间访问的信令信息。由此,包含与用户视口对应的点云数据(即,点云数据的一部分)的轨道或条目可以被从文件中选择(或解析)、解码或渲染。因此,点云数据接收方法和/或点云数据接收装置可以减少对所有点云数据当中的不必要数据(例如,与用户视口不相关的点云数据)的不必要计算,并可以高效地解析文件中的点云数据并解码/渲染点云数据。换言之,可以高效地访问所有点云数据当中的一些点云数据。
根据实施方式,点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以划分G-PCC比特流并将其存储在文件中的多个轨道中,并通知指示存储有G-PCC比特流的轨道间的关系的信令信息。由此,可以高效地存储并发送包含G-PCC比特流的文件。
附图说明
附图被包括进来以提供对本公开的进一步理解,并且被并入本申请的部分中并构成本申请的部分,例示了本公开的实施方式并与说明书一起用来说明本公开的原理。在附图中:
图1例示了根据实施方式的示例性点云内容提供系统。
图2是例示了根据实施方式的点云内容提供操作的框图。
图3例示了根据实施方式的捕获点云视频的示例性过程。
图4例示了根据实施方式的点云视频解码器的示例性框图。
图5例示了根据实施方式的3D空间中的体素的示例。
图6例示了根据实施方式的八叉树和占用码的示例。
图7例示了根据实施方式的邻近节点图案的示例。
图8例示了根据实施方式的各个LOD的点云内容的点配置的示例。
图9例示了根据实施方式的各个LOD的点云内容的点配置的示例。
图10例示了根据实施方式的点云视频解码器的框图的示例。
图11例示了根据实施方式的点云视频解码器的示例。
图12例示了根据实施方式的发送装置的点云视频编码的配置。
图13例示了根据实施方式的接收装置的点云视频解码的配置。
图14例示了根据实施方式的用于存储和流传输基于G-PCC的点云数据的架构。
图15例示了根据实施方式的点云数据的存储和发送的示例。
图16例示了根据实施方式的接收装置的示例。
图17例示了根据实施方式的与用于发送和接收点云数据的方法/装置可操作地可连接的示例性结构。
图18例示了根据实施方式的点云发送装置的示例。
图19例示了根据实施方式的将边界框分割为一个或更多个图块和/或一个或更多个切片的实施方式。
图20例示了根据实施方式的点云接收装置的示例。
图21例示了根据实施方式的用于发送/接收的点云数据的示例性比特流结构。
图22例示了根据实施方式的点云数据的示例性比特流结构。
图23例示了根据实施方式的点云数据的比特流中的分量之间的连接关系。
图24例示了根据实施方式的序列参数集的句法结构的实施方式。
图25例示了示出根据实施方式分配给attribute_label_four_bytes字段的属性类型的示例的表。
图26例示了示出根据实施方式分配给axis_coding_order字段的X、Y和Z轴值的示例的表。
图27例示了根据实施方式的几何参数集的句法结构的实施方式。
图28例示了根据实施方式的属性参数集的句法结构的实施方式。
图29例示了示出根据实施方式的分配给attr_coding_type字段的属性编码类型的示例的表。
图30例示了根据实施方式的图块库的句法结构的实施方式。
图31例示了根据实施方式的帧边界标记的句法结构的实施方式。
图32例示了根据实施方式的几何切片比特流()的句法结构的实施方式。
图33例示了根据实施方式的几何切片头的句法结构的实施方式。
图34例示了根据实施方式的几何切片数据的句法结构的实施方式。
图35例示了根据实施方式的属性切片比特流()的句法结构的实施方式。
图36例示了根据实施方式的属性切片头的句法结构的实施方式。
图37例示了根据实施方式的属性切片数据的句法结构的实施方式。
图38例示了根据实施方式的元数据切片比特流()的句法结构的实施方式。
图39例示了根据实施方式的元数据切片头的句法结构的实施方式。
图40例示了根据实施方式的元数据切片数据的句法结构的实施方式。
图41例示了根据实施方式的TLV封装结构的示例。
图42示出了根据实施方式的类型-长度-值(TLV)封装()的示例性句法结构。
图43例示了根据实施方式的示出分配给tlv_type字段的tlv类型的示例的表。
图44例示了根据实施方式的用于存储G-PCC比特流的单个轨道的文件结构的示图。
图45例示了根据实施方式的在G-PCC比特流被存储在单个轨道中的情况下的示例性样本结构的示图。
图46是例示了根据实施方式的用于存储G-PCC比特流的多个轨道的文件结构的示图。
图47是例示了根据实施方式的在G-PCC比特流被存储在多个轨道中的情况下的示例性样本结构的示图。
图48的(a)至图48的(d)例示了根据实施方式的在单个轨道和多个轨道中携带点云数据的实施方式。
图49是根据实施方式的发送点云数据的方法的流程图。
图50是根据实施方式的接收点云数据的方法的流程图。
具体实施方式
现在,将参照附图根据本文中公开的示例性实施方式详细给出描述。为了参照附图简要描述,可为相同或等同的部件提供相同的标号,其描述将不再重复。应该注意,以下示例仅用于体现本公开,并不限制本公开的范围。本发明所属技术领域的专家从本公开的详细描述和示例中可以容易地推断出的内容将被解释为在本公开的范围内。
本说明书中的详细描述应该在所有方面都被解释为例示性而非限制性的。本公开的范围应该由所附权利要求及其法律等同物来确定,并且落入所附权利要求的含义和等同范围内的所有改变旨在被涵盖在本文中。
现在,将详细参照本公开的优选实施方式,在附图中例示了这些实施方式的示例。下文将参照附图给出的详细描述旨在解释本公开的示例性实施方式,而非示出可以根据本公开实现的仅有的实施方式。以下详细描述包括具体细节,以提供对本公开的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践本公开。虽然在本说明书中使用的大多数术语已选自本领域中广泛使用的通用术语,但申请人已任意选择一些术语,并且在下面的描述中将根据需要详细解释它们的含义。因此,应当基于术语的本意而非它们的简单名称或含义来理解本公开。另外,以下的附图和详细描述不应该被解释为限于具体描述的实施方式,而应该被解释为包括附图和详细描述中描述的实施方式的等同物或替代物。
图1示出了根据实施方式的示例性点云内容提供系统。
图1中例示的点云内容提供系统可以包括发送装置10000和接收装置10004。发送装置10000和接收装置10004能够进行有线或无线通信,以发送和接收点云数据。
根据实施方式的点云数据发送装置10000可以保护和处理点云视频(或点云内容),并发送该点云视频(或点云内容)。根据实施方式,发送装置10000可以包括固定站、基站收发器系统(BTS)、网络、人工智能(AI)装置和/或系统、机器人、AR/VR/XR装置和/或服务器。根据实施方式,发送装置10000可以包括被配置为使用无线电接入技术(例如,5G新RAT(NR)、长期演进(LTE))与基站和/或其它无线装置执行通信的装置、机器人、车辆、AR/VR/XR装置、便携式装置、家用电器、物联网(IoT)装置和AI装置/服务器。
根据实施方式的发送装置10000包括点云视频获取单元10001、点云视频编码器10002和/或发送器(或通信模块)10003。
根据实施方式的点云视频获取单元10001通过诸如捕获、合成或生成这样的处理过程获取点云视频。点云视频是由作为处于3D空间中的点的集合的点云表示的点云内容,并可以被称为点云视频数据。根据实施方式的点云视频可以包括一个或更多个帧。一帧表示静止图像/图片。因此,点云视频可以包括点云图像/帧/图片,并可以被称为点云图像、帧或图片。
根据实施方式的点云视频编码器10002对所获取的点云视频数据进行编码。点云视频编码器10002可以基于点云压缩编码对点云视频数据进行编码。根据实施方式的点云压缩编码可以包括基于几何的点云压缩(G-PCC)编码和/或基于视频的点云压缩(V-PCC)编码或下一代编码。根据实施方式的点云压缩编码不限于上述实施方式。点云视频编码器10002可以输出包含编码后的点云视频数据的比特流。比特流可以不仅包含编码后的点云视频数据,而且包含与点云视频数据的编码相关的信令信息。
根据实施方式的发送器10003发送包含编码后的点云视频数据的比特流。根据实施方式的比特流被封装在文件或段(例如,流传输段)中,并通过诸如广播网络和/或宽带网络这样的各种网络传输。尽管未在图中示出,但发送装置10000可以包括被配置为执行封装操作的封装器(或封装模块)。根据实施方式,封装器可以被包括在发送器10003中。根据实施方式,文件或段可以通过网络发送到接收装置10004,或被存储在数字存储介质(例如,USB、SD、CD、DVD、蓝光、HDD、SSD等)中。根据实施方式的发送器10003能够通过4G、5G、6G等网络与接收装置10004(或接收器10005)进行有线/无线通信。另外,发送器可以根据网络系统(例如,4G、5G或6G通信网络系统)执行必要的数据处理操作。发送装置10000可以以按需方式发送封装后的数据。
根据实施方式的接收装置10004包括接收器10005、点云视频解码器10006和/或渲染器10007。根据实施方式,接收装置10004可以包括被配置为使用无线电接入技术(例如,5G新RAT(NR)、长期演进(LTE))与基站和/或其它无线装置执行通信的装置、机器人、车辆、AR/VR/XR装置、便携式装置、家用电器、物联网(IoT)装置和AI装置/服务器。
根据实施方式的接收器10005从网络或存储介质接收包含点云视频数据的比特流或其中封装有比特流的文件/段。接收器10005可以根据网络系统(例如,4G、5G、6G等通信网络系统)执行必要的数据处理。根据实施方式的接收器10005可以对接收到的文件/段进行解封装并输出比特流。根据实施方式,接收器10005可以包括被配置为执行解封装操作的解封装器(或解封装模块)。解封装器可以被实现为与接收器10005分开的元件(或部件)。
点云视频解码器10006对包含点云视频数据的比特流进行解码。点云视频解码器10006可以根据对点云视频数据进行编码的方法(例如,在点云视频编码器10002的操作的逆过程中)对点云视频数据进行解码。因此,点云视频解码器10006可以通过执行点云解压缩编码来解码点云视频数据,点云解压缩编码是点云压缩的逆过程。点云解压缩编码包括G-PCC编码。
渲染器10007对解码后的点云视频数据进行渲染。根据实施方式,渲染器10007可以根据视口等渲染解码后的点云视频数据。渲染器10007可以通过不仅渲染点云视频数据而且渲染音频数据来输出点云内容。根据实施方式,渲染器10007可以包括被配置为显示点云内容的显示器。根据实施方式,显示器可以被实现为单独的装置或部件,而不是被包括在渲染器10007中。
图中虚线所指示的箭头表示由接收装置10004获取的反馈信息的传输路径。反馈信息是用于反映与消费点云内容的用户的交互性的信息,并包括关于用户的信息(例如,头方位信息、视口信息等)。特别地,当点云内容是需要与用户交互的服务(例如,自动驾驶服务等)的内容时,反馈信息可以被提供到内容发送方(例如,发送装置10000)和/或服务提供商。根据实施方式,反馈信息可以在接收装置10004和发送装置10000中使用,或可以不提供。
根据实施方式的头方位信息可以表示关于用户的头部的位置、方位、角度和运动的信息。根据实施方式的接收装置10004可以基于头方位信息来计算视口信息。视口信息可以是与点云视频的用户正在观看的区域(即用户当前正在观看的区域)有关的信息。即,视口信息是关于点云视频中由用户当前正在观看的区域的信息。视点是点云视频中用户正在观看的点,并且可以表示视口区域的中心点。也就是说,视口是以视点为中心的区域,并且该区域的大小和形状可以由视场(FOV)确定。因此,接收装置10004可以基于装置所支持的竖直或水平FOV来提取视口信息以及头方位信息。此外,接收装置10004可以基于头方位信息和/或视口信息执行凝视分析等,以确定用户消费点云视频的方式、用户在点云视频中凝视的区域、以及凝视时间。根据实施方式,接收装置10004可以将包括凝视分析结果的反馈信息发送到发送装置10000。根据实施方式,诸如VR/XR/AR/MR显示器这样的装置可以基于用户头部的位置/方位和装置所支持的垂直或水平FOV来提取视口区域。根据实施方式,头方位信息和视口信息可以被称为反馈信息、信令信息或元数据。
可以在渲染和/或显示处理中获取根据实施方式的反馈信息。根据实施方式的反馈信息可以由接收装置10004中包括的一个或更多个传感器来取得。根据实施方式,反馈信息可以由渲染器10007或单独的外部元件(或装置、部件等)来取得。图1中的虚线表示发送由渲染器10007取得的反馈信息的过程。反馈信息不仅可以被发送到发送方,而且也由接收方消费。即,点云内容提供系统可以基于反馈信息来处理(编码/解码/渲染)点云数据。例如,点云视频解码器10006和渲染器10007可以基于反馈信息(即,头方位信息和/或视口信息)优先地解码和渲染针对仅用户当前观看的区域的点云视频。
接收装置10004可以将反馈信息发送到发送装置10000。发送装置10000(或点云视频编码器10002)可以基于反馈信息来执行编码操作。因此,点云内容提供系统可以基于反馈信息来高效地处理必要数据(例如,对应于用户头部位置的点云数据)而不是处理(编码/解码)整个点云数据,并向用户提供点云内容。
根据实施方式,发送装置10000可以被称为编码器、发送装置、发送器、发送系统等,并且接收装置10004可以被称为解码器、接收装置、接收器、接收系统等。
(通过获取/编码/发送/解码/渲染的一系列处理)在根据实施方式的图1的点云内容提供系统中处理的点云数据可以被称为点云内容数据或点云视频数据。根据实施方式,点云内容数据可以被用作涵盖与点云数据相关的元数据或信令信息的概念。
图1中例示的点云内容提供系统的元件可以由硬件、软件、处理器和/或其组合来实现。
图2是例示了根据实施方式的点云内容提供操作的框图。
图2的框图示出了图1中描述的点云内容提供系统的操作。如上所述,点云内容提供系统可以基于点云压缩编码(例如,G-PCC)来处理点云数据。
根据实施方式的点云内容提供系统(例如,点云发送装置10000或点云视频获取单元10001)可以获取点云视频(20000)。点云视频由属于用于表示3D空间的坐标系的点云表示。根据实施方式的点云视频可以包括Ply(多边形文件格式或斯坦福三角格式)文件。当点云视频具有一个或更多个帧时,所获取的点云视频可以包括一个或更多个Ply文件。Ply文件包含诸如点几何结构和/或属性这样的点云数据。几何结构包括点的位置。各个点的位置可以由表示三维坐标系(例如,由X、Y和Z轴构成的坐标系)的参数(例如,X、Y和Z轴的值)来表示。属性包括点的属性(例如,关于各个点的纹理、颜色(YCbCr或RGB)、反射率r、透明度等的信息)。点有一个或更多个属性。例如,点可以有作为颜色的属性或作为颜色和反射率的两个属性。
根据实施方式,几何结构可以被称为位置、几何信息、几何数据等,并且属性可以被称为属性、属性信息、属性数据等。
点云内容提供系统(例如,点云发送装置10000或点云视频获取单元10001)可以从与点云视频的获取处理相关的信息(例如,深度信息、颜色信息等)中保护点云数据。
根据实施方式的点云内容提供系统(例如,发送装置10000或点云视频编码器10002)可以对点云数据进行编码(20001)。点云内容提供系统可以基于点云压缩编码对点云数据进行编码。如上所述,点云数据可以包括点的几何结构和属性。因此,点云内容提供系统可以执行对几何结构进行编码的几何编码,并输出几何比特流。点云内容提供系统可以执行对属性进行编码的属性编码,并输出属性比特流。根据实施方式,点云内容提供系统可以基于几何编码来执行属性编码。根据实施方式的几何比特流和属性比特流可以被复用并作为一个比特流输出。根据实施方式的比特流还可以包含与几何编码和属性编码相关的信令信息。
根据实施方式的点云内容提供系统(例如,发送装置10000或发送器10003)可以发送编码后的点云数据(20002)。如图1中例示的,编码后的点云数据可以由几何比特流和属性比特流表示。另外,编码后的点云数据可以以比特流的形式连同与点云数据的编码相关的信令信息(例如,与几何编码和属性编码相关的信令信息)一起发送。点云内容提供系统可以封装携带编码后的点云数据的比特流,并以文件或段的形式发送该比特流。
根据实施方式的点云内容提供系统(例如,接收装置10004或接收器10005)可以接收包含编码后的点云数据的比特流。另外,点云内容提供系统(例如,接收装置10004或接收器10005)可以对比特流进行解复用。
点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以对在比特流中发送的编码后的点云数据(例如,几何比特流、属性比特流)进行解码。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以基于与比特流中包含的点云视频数据的编码相关的信令信息对点云视频数据进行解码。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以对几何比特流进行解码,以重构点的位置(几何结构)。点云内容提供系统可以通过基于重构的几何结构对属性比特流进行解码来重构点的属性。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以基于根据重构的几何结构的位置和解码后的属性来重构点云视频。
根据实施方式的点云内容提供系统(例如,接收装置10004或渲染器10007)可以渲染解码后的点云数据(20004)。点云内容提供系统(例如,接收装置10004或渲染器10007)可以使用各种渲染方法来渲染通过解码处理解码的几何结构和属性。点云内容中的点可以被渲染为具有一定厚度的顶点、以对应顶点位置为中心的具有特定最小尺寸的立方体或以对应顶点位置为中心的圆。通过显示器(例如,VR/AR显示器、常见显示器等)向用户提供渲染后的点云内容的全部或部分。
根据实施方式的点云内容提供系统(例如,接收装置10004)可以保护反馈信息(20005)。点云内容提供系统可以基于反馈信息来编码和/或解码点云数据。根据实施方式的点云内容提供系统的反馈信息和操作与参照图1描述的反馈信息和操作相同,因此省略其详细描述。
图3例示了根据实施方式的捕获点云视频的示例性处理。
图3例示了参照图1至图2描述的点云内容提供系统的示例性点云视频捕获处理。
点云内容包括表示位于各种3D空间(例如,表示真实环境的3D空间、表示虚拟环境的3D空间等)中的对象和/或环境的点云视频(图像和/或视频)。因此,根据实施方式的点云内容提供系统可以使用一个或更多个摄像头(例如,能够对深度信息进行保护的红外摄像头、能够提取与深度信息对应的颜色信息的RGB摄像头等)、投影仪(例如,用于对深度信息进行保护的红外图案投影仪)、LiDRA等来捕获点云视频。根据实施方式的点云内容提供系统可以从深度信息中提取由3D空间中的点构成的几何结构的形状,并从颜色信息中提取各个点的属性以对点云数据进行保护。可以基于面向内技术和面向外技术中的至少一种来捕获根据实施方式的图像和/或视频。
图3的左部例示了面向内技术。面向内技术是指用设置在中心对象周围的一个或更多个摄像头(或摄像头传感器)捕获中心对象的图像的技术。可以使用面向内技术生成向用户提供关键对象的360度图像的点云内容(例如,向用户提供对象(例如,诸如角色、玩家、对象或演员这样的关键对象)的360度图像的VR/AR内容)。
图3的右部例示了面向外技术。面向外技术是指用设置在中心对象周围的一个或更多个摄像头(或摄像头传感器)捕获中心对象的环境而非中心对象的图像的技术。可以使用面向外技术生成用于提供从用户的角度出现的周围环境的点云内容(例如,表示可以提供给自动驾驶车辆的用户的外部环境的内容)。
如图中所示,可以基于一个或更多个摄像头的捕获操作来生成点云内容。在这种情况下,坐标系在各个摄像头当中是不同的,因此,点云内容提供系统可以在捕获操作之前校准一个或更多个摄像头以设置全局坐标系。另外,点云内容提供系统可以通过将任意图像和/或视频与通过上述捕获技术捕获的图像和/或视频进行合成来生成点云内容。点云内容提供系统在其生成表示虚拟空间的点云内容时不可以执行图3中描述的捕获操作。根据实施方式的点云内容提供系统可以对所捕获的图像和/或视频执行后处理。换句话说,点云内容提供系统可以去除不需要的区域(例如,背景),识别所捕获的图像和/或视频连接到的空间,并且当存在空间孔时执行填充空间孔的操作。
点云内容提供系统可以通过对从各个摄像头保护的点云视频的点执行坐标变换来生成一条点云内容。点云内容提供系统可以基于各个摄像头位置的坐标对点执行坐标变换。因此,点云内容提供系统可以生成表示一个宽范围的内容,或可以生成具有高密度点的点云内容。
图4例示了根据实施方式的示例性点云视频编码器。
图4示出了图1的点云视频编码器10002的示例。点云视频编码器重构并编码点云数据(例如,点的位置和/或属性),以根据网络条件或应用来调整点云内容的质量(例如,无损、有损或接近无损)。当点云内容的总大小大时(例如,对于30fps,给出60Gbps的点云内容),点云内容提供系统可能无法实时地流传输该内容。因此,点云内容提供系统可以基于最大目标比特率重构点云内容,以根据网络环境等提供该点云内容。
如参照图1至图2描述的,点云视频编码器可以执行几何编码和属性编码。几何编码在属性编码之前执行。
根据实施方式的点云视频编码器包括坐标变换单元40000、量化单元40001、八叉树分析单元40002、表面近似分析单元40003、算术编码器40004、几何重构单元40005、颜色变换单元40006、属性变换单元40007、RAHT单元40008、LOD生成单元40009、提升变换单元40010、系数量化单元40011和/或算术编码器40012。
坐标变换单元40000、量化单元40001、八叉树分析单元40002、表面近似分析单元40003、算术编码器40004和几何重构单元40005可以执行几何编码。根据实施方式的几何编码可以包括八叉树几何编码、直接编码、trisoup几何编码和熵编码。直接编码和trisoup几何编码被选择性地或组合地应用。几何编码不限于上述示例。
如图中所示,根据实施方式的坐标变换单元40000接收位置并将其变换为坐标。例如,位置可以被变换为三维空间(例如,由XYZ坐标系表示的三维空间)中的位置信息。根据实施方式的三维空间中的位置信息可以被称为几何信息。
根据实施方式的量化单元40001对几何信息进行量化。例如,量化单元40001可以基于所有点的最小位置值(例如,X、Y和Z轴中的每一个上的最小值)来量化点。量化单元40001执行以下量化操作:将各个点的位置值与最小位置值之间的差乘以预设的量化缩放值,然后通过对通过乘法获得的值进行四舍五入来找到最接近的整数值。因此,一个或更多个点可以具有相同的量化位置(或位置值)。根据实施方式的量化单元40001基于量化位置来执行体素化,以重构量化点。体素化意味着在3D空间中表示位置信息的最小单位。根据实施方式的点云内容(或3D点云视频)的点可以被包括在一个或更多个体素中。作为体积与像素的复合词的术语体素是指当基于表示3D空间的轴(例如,X轴、Y轴和Z轴)将3D空间划分为单元(单元=1.0)时生成的3D立方空间。量化单元40001可以将3D空间中的点的组与体素匹配。根据实施方式,一个体素可以仅包括一个点。根据实施方式,一个体素可以包括一个或更多个点。为了将一个体素表示为一个点,可以基于体素中包括的一个或更多个点的位置来设置体素的中心点的位置。在这种情况下,可以组合一个体素中包括的所有位置的属性并将这些属性分配给该体素。
根据实施方式的八叉树分析单元40002执行八叉树几何编码(或八叉树编码)从而以八叉树结构呈现体素。八叉树结构表示基于八叉树结构与体素匹配的点。
根据实施方式的表面近似分析单元40003可以对八叉树进行分析和近似。根据实施方式的八叉树分析和近似是分析包含多个点的区域以高效提供八叉树和体素化的处理。
根据实施方式的算术编码器40004对八叉树和/或近似的八叉树执行熵编码。例如,编码方案包括算术编码。作为编码的结果,生成几何比特流。
颜色变换单元40006、属性变换单元40007、RAHT单元40008、LOD生成单元40009、提升变换单元40010、系数量化单元40011和/或算术编码器40012执行属性编码。如上所述,一个点可以具有一个或更多个属性。根据实施方式的属性编码同样应用于一个点所具有的属性。然而,当属性(例如,颜色)包括一个或更多个元素时,属性编码独立地应用于各个元素。根据实施方式的属性编码包括颜色变换编码、属性变换编码、区域自适应分层变换(RAHT)编码、基于内插的分层最近邻预测(预测变换)编码和具有更新/提升步骤(提升变换)的基于内插的分层最近邻预测编码。根据点云内容,可以选择性使用上述的RAHT编码、预测变换编码和提升变换编码,或者可以使用一个或更多个编码方案的组合。根据实施方式的属性编码不限于上述示例。
根据实施方式的颜色变换单元40006执行变换属性中包括的颜色值(或纹理)的颜色变换编码。例如,颜色变换单元40006可以变换颜色信息的格式(例如,从RGB到YCbCr)。可以根据属性中包括的颜色值可选地应用根据实施方式的颜色变换单元40006的操作。
根据实施方式的几何重构单元40005重构(解压缩)八叉树和/或近似的八叉树。几何重构单元40005基于分析点的分布的结果来重构八叉树/体素。重构的八叉树/体素可以被称为重构的几何结构(恢复的几何结构)。
根据实施方式的属性变换单元40007执行属性变换,以基于未被执行几何编码的位置和/或重构的几何结构来变换属性。如上所述,由于属性依赖于几何结构,因此属性变换单元40007可以基于重构的几何信息来变换属性。例如,基于体素中包括的点的位置值,属性变换单元40007可以变换该位置处的点的属性。如上所述,当基于体素中包括的一个或更多个点的位置来设置体素中心的位置时,属性变换单元40007变换所述一个或更多个点的属性。当执行trisoup几何编码时,属性变换单元40007可以基于trisoup几何编码来变换属性。
属性变换单元40007可以通过计算从各个体素的中心的位置(或位置值)起特定位置/半径内的邻居点的属性或属性值(例如,各个点的颜色或反射率)的平均值来执行属性变换。属性变换单元40007可以在计算平均值时根据该中心到各个点的距离来应用权重。因此,各个体素都有位置和计算出的属性(或属性值)。
属性变换单元40007可以基于K-D树或莫顿码(Morton code)搜索存在于距各个体素的中心的位置特定位置/半径内的邻居点。K-D树是二叉搜索树,并支持能够基于位置来管理点数据结构以可以快速执行最近邻搜索(NNS)的。通过将表示所有点的3D位置的坐标(例如,(x,y,z))呈现为位值并混合所述位来生成莫顿码。例如,当表示点的位置的坐标为(5,9,1)时,坐标的位值为(0101,1001,0001)。以z、y和x的顺序根据位索引混合位值产生010001000111。该值被表示为十进制数1095。也就是说,具有坐标(5,9,1)的点的莫顿码值为1095。属性变换单元40007可以基于莫顿码值对点进行排序,并通过深度优先遍历处理执行NNS。在属性变换操作之后,当在用于属性编码的另一变换处理中需要NNS时,使用K-D树或莫顿码。
如图中所示,变换后的属性被输入到RAHT单元40008和/或LOD生成单元40009。
根据实施方式的RAHT单元40008基于重构的几何信息执行用于预测属性信息的RAHT编码。例如,RAHT单元40008可以基于与八叉树中较低级别的节点关联的属性信息来预测八叉树中较高级别的节点的属性信息。
根据实施方式的LOD生成单元40009生成细节级别(LOD)。根据实施方式的LOD是点云内容的细节度。随着LOD值的减小,表明点云内容的细节度下降。随着LOD值的增大,表明点云内容的细节增强。可以按LOD对点进行分类。
根据实施方式的提升变换单元40010执行基于权重来变换点云的属性的提升变换编码。如上所述,可以可选地应用提升变换编码。
根据实施方式的系数量化单元40011基于系数对属性编码后的属性进行量化。
根据实施方式的算术编码器40012基于算术编码对量化后的属性进行编码。
尽管在该图中未示出,但图4的点云视频编码器的元件可以由包括一个或更多个处理器或集成电路的硬件、软件、固件或其组合来实现,该处理器或集成电路被配置为与点云内容提供设备中包括的一个或更多个存储器通信。所述一个或更多个处理器可以执行上述图4的点云视频编码器的元件的操作和/或功能中的至少一者。另外,一个或更多个处理器可以操作或执行软件程序和/或指令的集合,以执行图4的点云视频编码器的元件的操作和/或功能。根据实施方式的一个或更多个存储器可以包括高速随机存取存储器,或包括非易失性存储器(例如,一个或更多个磁盘存储装置、闪存装置或其它非易失性固态存储装置)。
图5示出了根据实施方式的体素的示例。
图5示出了位于由三个轴即X轴、Y轴和Z轴构成的坐标系表示的3D空间中的体素。如参照图4描述的,点云视频编码器(例如,量化单元40001)可以执行体素化。体素是指当基于表示3D空间的轴(例如,X轴、Y轴和Z轴)将3D空间划分为单元(单元=1.0)时生成的3D立方空间。图5示出了通过八叉树结构生成的体素的示例,在该八叉树结构中,由两个极点(0,0,0)和(2d,2d,2d)定义的立方轴对齐的边界框被递归地细分。一个体素包括至少一个点。可以根据与体素组的位置关系来估计体素的空间坐标。如上所述,体素具有像2D图像/视频的像素一样的属性(诸如,颜色或反射率)。体素的细节与参照图4描述的细节相同,因此省略其描述。
图6示出了根据实施方式的八叉树和占用码的示例。
如参照图1至图4描述的,点云内容提供系统(点云视频编码器10002)或点云视频编码器的八叉树分析单元40002基于八叉树结构来执行八叉树几何编码(或八叉树编码),以高效地管理体素的区域和/或位置。
图6的上部示出了八叉树结构。根据实施方式的点云内容的3D空间由坐标系的轴(例如,X轴、Y轴和Z轴)表示。八叉树结构是通过递归细分由两个极点(0,0,0)和(2d,2d,2d)定义的立方轴对齐的边界框来创建的。这里,2d可以被设置为构成围绕点云内容(或点云视频)的所有点的最小边界框的值。这里,d表示八叉树的深度。在式1中确定d的值。在式1中,(xint n,yint n,zint n)表示量化点的位置(或位置值)。
[式1]
Figure BDA0003888761360000181
如图6的上部的中间所示,整个3D空间可以根据分区被划分为八个空间。各个划分空间由具有六个面的立方体表示。如图6的右上侧所示,基于坐标系的轴(例如,X轴、Y轴和Z轴)再次划分八个空间中的每一个。因此,各个空间被划分成八个更小的空间。所划分的更小空间也由具有六个面的立方体表示。应用该划分方案,直到八叉树的叶节点成为体素。
图6的下部示出了八叉树占用码。生成八叉树的占用码,以指示通过划分一个空间而产生的八个划分空间中的每一个是否包含至少一个点。因此,单个占用码由八个子节点表示。各个子节点表示所划分空间的占用,并且子节点具有1位的值。因此,占用码被表示为8位代码。也就是说,当在与子节点对应的空间中包含至少一个点时,该节点被赋予值1。当在对应于子节点的空间中不包含点(空间为空)时,该节点被赋予值0。由于图6中示出的占用码为00100001,因此其指示与八个子节点当中的第三个子节点和第八个子节点对应的空间各自包含至少一个点。如图中所示,第三个子节点和第八个子节点中的每一个具有8个子节点,并且子节点用8位占用码表示。该图示出第三个子节点的占用码为10000111,并且第八个子节点的占用码为01001111。根据实施方式的点云视频编码器(例如,算术编码器40004)可以对占用码执行熵编码。为了提高压缩效率,点云视频编码器可以对占用码执行帧内/帧间编码。根据实施方式的接收装置(例如,接收装置10004或点云视频解码器10006)基于占用码来重构八叉树。
根据实施方式的点云视频编码器(例如,八叉树分析单元40002)可以执行体素化和八叉树编码,以存储点的位置。然而,点并不总是均匀地分布在3D空间中,因此会有其中存在较少点的特定区域。因此,对整个3D空间执行体素化是低效的。例如,当特定区域包含的点较少时,不需要在特定区域中执行体素化。
因此,对于上述特定区域(或八叉树的叶节点以外的节点),根据实施方式的点云视频编码器可以跳过体素化并执行直接编码,以对特定区域中包括的点的位置直接进行编码。根据实施方式的直接编码点的坐标被称为直接编码模式(DCM)。根据实施方式的点云视频编码器还可以基于表面模型来执行trisoup几何编码,以基于体素来重构特定区域(或节点)中的点的位置。trisoup几何编码是将对象表示为一系列三角形网格的几何编码。因此,点云视频解码器可以从网格表面生成点云。可以选择性执行根据实施方式的trisoup几何编码和直接编码。另外,可以结合八叉树几何编码(或八叉树编码)来执行根据实施方式的trisoup几何编码和直接编码。
为了执行直接编码,应该启用使用直接模式以应用直接编码的选项。将被应用直接编码的节点不是叶节点,并且在特定节点内应该存在少于阈值的点。另外,将应用直接编码的点的总数不应超过预设阈值。当满足以上条件时,根据实施方式的点云视频编码器(或算术编码器40004)可以对点的位置(或位置值)执行熵编码。
根据实施方式的点云视频编码器(例如,表面近似分析单元40003)可以确定八叉树的特定级别(小于八叉树的深度d的级别),并且可以从该级别开始使用表面模型来执行trisoup几何编码,以基于体素来重构节点的区域中的点的位置(trisoup模式)。根据实施方式的点云视频编码器可以指定将应用trisoup几何编码的级别。例如,当特定级别等于八叉树的深度时,点云视频编码器不在trisoup模式下操作。换句话说,根据实施方式的点云视频编码器可以仅在所指定的级别小于八叉树的深度值时才在trisoup模式下操作。根据实施方式的所指定级别处的节点的3D立方区域被称为块。一个块可以包括一个或更多个体素。块或体素可以对应于砖。几何结构被表示为各个块内的表面。根据实施方式的表面可以与块的各个边缘最多相交一次。
一个块有12个边缘,因此在一个块中至少存在12个交点。各个交点被称为顶点(或顶端点)。当在共享边缘的所有块当中至少存在一个与该边缘相邻的被占用体素时,检测到沿该边缘存在的顶点。根据实施方式的被占用体素是指包含点的体素。沿着边缘检测到的顶点的位置是沿着共享该边缘的所有块当中的与该边缘相邻的所有体素的边缘的平均位置。
一旦检测到顶点,根据实施方式的点云视频编码器就可以对边缘的起始点(x,y,z)、边缘的方向矢量(Δx,Δy,Δz)和顶点位置值(边缘内的相对位置值)执行熵编码。当应用trisoup几何编码时,根据实施方式的点云视频编码器(例如,几何重构单元40005)可以通过执行三角形重构、上采样和体素化处理来生成恢复后的几何结构(重构的几何结构)。
处于块的边缘处的顶点确定穿过块的表面。根据实施方式的表面是非平面多边形。在三角形重构处理中,基于边缘的起始点、边缘的方向矢量和顶点的位置值来重构由三角形表示的表面。根据式2,通过以下操作执行三角形重构处理:i)计算各个顶点的质心值,ii)从各个顶点值减去中心值,以及iii)估计通过减法而获得的值的平方和。
[式2]
Figure BDA0003888761360000201
然后,估计和的最小值,并根据具有最小值的轴来执行投影处理。例如,当元素x为最小时,各个顶点相对于块的中心投影到x轴上,并投影到(y,z)平面上。当通过投影到(y,z)平面上而获得的值为(ai,bi)时,通过atan2(bi,ai)估计θ的值,并根据θ的值对顶点进行排序。下面的表1示出了根据顶点的数目来创建三角形的顶点组合。顶点被从1到n地排序。下面的表1示出对于四个顶点,可以根据顶点的组合来构造两个三角形。第一个三角形可以由排序的顶点当中的顶点1、2和3组成,并且第二个三角形可以由排序顶点当中的顶点3、4和1组成。
表1.由按1,…,n排序的顶点形成的三角形
[表1]
Figure BDA0003888761360000211
执行上采样处理,以沿着三角形的边在中间添加点并执行体素化。所添加的点是基于上采样因子和块的宽度产生的。所添加的点被称为细化顶点。根据实施方式的点云视频编码器可以对细化顶点进行体素化。另外,点云视频编码器可以基于体素化位置(或位置值)来执行属性编码。
图7例示了根据实施方式的邻居节点模式的示例。
为了提高点云视频的压缩效率,根据实施方式的点云视频编码器可以基于上下文自适应算术编码来执行熵编码。
如参照图1至图6描述的,图1的点云内容提供系统或点云视频编码器10002或图4的点云视频编码器或算术编码器40004可以立即对占用码执行熵编码。另外,点云内容提供系统或点云视频编码器可以基于当前节点的占用码和邻居节点的占用来执行熵编码(帧内编码),或基于前一帧的占用码来执行熵编码(帧间编码)。根据实施方式的帧表示同时产生的点云视频的集合。根据实施方式的帧内编码/帧间编码的压缩效率可以依赖于被参考的邻居节点的数目。当位增加时,操作变复杂,但编码可以偏向一侧,从而可以增加压缩效率。例如,当给定3位上下文时,需要使用23=8种方法执行编码。为进行编码而划分的部分影响了实现方式的复杂度。因此,必须满足适当水平的压缩效率和复杂度。
图7例示了基于邻居节点的占用来获得占用模式的处理。根据实施方式的点云视频编码器确定八叉树的各个节点的邻居节点的占用,并获得邻居模式的值。使用该邻居节点模式来推断节点的占用模式。图7的上部示出了与节点对应的立方体(处于中间的立方体)以及与立方体共享至少一个面的六个立方体(邻居节点)。图中示出的节点是相同深度的节点。图中示出的数字分别表示与六个节点关联的权重(1、2、4、8、16和32)。根据邻居节点的位置依次指派权重。
图7的下部示出了邻居节点模式值。邻居节点模式值是乘以被占用邻居节点(具有点的邻居节点)的权重的值之和。因此,邻居节点模式值为0至63。当邻居节点模式值为0时,指示该节点的邻居节点当中不存在具有点的节点(未占用节点)。当邻居节点模式值为63时,指示所有邻居节点都是被占用节点。如图中所示,由于被指派权重1、2、4和8的邻居节点是被占用节点,因此邻居节点模式值为15即1、2、4和8之和。点云视频编码器可以根据邻居节点模式值执行编码(例如,当邻居节点模式值为63时,可以执行64种编码)。根据实施方式,点云视频编码器可以通过改变邻居节点模式值(例如,基于通过其将64改变为10或6的表)来降低编码复杂度。
图8例示了根据实施方式的各个LOD中的点配置的示例。
如参照图1至图7描述的,在执行属性编码之前,重构(解压缩)编码后的几何结构。当应用直接编码时,几何重构操作可以包括改变直接编码后的点的放置(例如,将直接编码后的点放置在点云数据的前面)。当应用trisoup几何编码时,通过三角形重构、上采样和体素化来执行几何重构处理。由于属性依赖于几何结构,因此基于重构的几何结构执行属性编码。
点云视频编码器(例如,LOD生成单元40009)可以通过LOD对点进行分类(重新组织)。该图示出了与LOD对应的点云内容。该图中的最左侧图片表示原始点云内容。该图左侧起的第二个图片表示最低LOD中的点的分布,并且该图中的最右侧图片表示最高LOD中的点的分布。也就是说,最低LOD中的点稀疏地分布,并且最高LOD中的点密集地分布。也就是说,随着LOD在由该图底部处指示的箭头所指的方向上上升,点之间的空间(或距离)变窄。
图9例示了根据实施方式的各个LOD的点配置的示例。
如参照图1至图8描述的,点云内容提供系统或点云视频编码器(例如,图1的点云视频编码器10002、图4的点云视频编码器或LOD生成单元40009)可以生成LOD。通过根据设置的LOD距离值(或一组欧几里得距离)将点重新组织为一组细化级别来生成LOD。LOD生成处理不仅由点云视频编码器执行,而且由点云视频解码器执行。
图9的上部示出了分布在3D空间中的点云内容的点的示例(P0至P9)。在图9中,原始顺序表示LOD生成之前点P0至P9的顺序。在图9中,基于LOD的顺序表示根据LOD生成的点的顺序。通过LOD重新组织点。另外,高LOD包含属于较低LOD的点。如图9中所示,LOD0包含P0、P5、P4和P2。LOD1包含LOD0的点、P1、P6和P3。LOD2包含LOD0的点、LOD1的点、P9、P8和P7。
如参照图4描述的,根据实施方式的点云视频编码器可以选择性或组合地执行基于LOD的预测变换编码、基于LOD的提升变换编码和RAHT变换编码。
根据实施方式的点云视频编码器可以为点生成预测器,以执行基于LOD的预测变换编码来设置各个点的预测属性(或预测属性值)。也就是说,可以针对N个点生成N个预测器。根据实施方式的预测器可以基于各个点的LOD值、与存在于针对各个LOD的设定距离内的邻居点有关的加索引信息以及到邻居点的距离来计算权重(=1/距离)。
根据实施方式的预测属性(或属性值)被设置为通过将各个点的预测器中设置的邻居点的属性(或属性值)(例如,颜色、反射率等)乘以基于到各个邻居点的距离计算出的权重(或权重值)而获得的值的平均值。根据实施方式的点云视频编码器(例如,系数量化单元40011)可以对通过从各个点的属性(即,原始属性值)中减去各个点的预测属性(或属性值)而获得的各个点的残差(可以被称为残差属性、残差属性值、属性预测残差值或预测错误属性值等)进行量化和反量化。如表2中所示来配置针对发送装置中的残差属性值执行的量化处理。如表3中所示来配置针对接收装置中的残差属性值执行的反量化处理。
[表2]
int PCCQuantization(int value,int quantStep){
if(value>=0){
return floor(value/quantStep+1.0/3.0);
}else{
return-floor(-value/quantStep+1.0/3.0);
}
}
[表3]
int PCCInverseQuantization(int value,int quantStep){
if(quantStep==0){
return value;
}else{
return value*quantStep;
}
}
当各个点的预测器具有邻居点时,根据实施方式的点云视频编码器(例如,算术编码器40012)可以如上所述对量化和反量化后的残差值执行熵编码。当各个点的预测器没有邻居点时,根据实施方式的点云视频编码器(例如,算术编码器40012)可以在不执行上述操作的情况下,对对应点的属性执行熵编码。根据实施方式的点云视频编码器(例如,提升变换单元40010)可以生成各个点的预测器,设置计算出的LOD并将邻居点登记到预测器中,并根据到邻居点的距离设置权重以执行提升变换编码。根据实施方式的提升变换编码类似于上述预测变换编码,但不同之处在于权重被累加地应用于属性值。如下地配置根据实施方式的向属性值累加地应用权重的处理。1)创建用于存储各个点的权重值的数组Quantization Weight(QW)(量化权重)。QW的所有元素的初始值为1.0。将在预测器中登记的邻居节点的预测器索引的QW值乘以当前点的预测器的权重,并将通过乘法而获得的值相加。
2)提升预测处理:从现有属性值中减去通过将点的属性值乘以权重而获得的值,以计算预测属性值。
3)创建被称为更新权重(updateweight)的临时数组,并将该临时数组更新并初始化为零。
4)将通过将针对所有预测器计算出的权重乘以存储在QW中的与预测器索引对应的权重而计算出的权重累加地添加到更新权重数组以作为邻居节点的索引。将通过将邻居节点的索引的属性值乘以计算出的权重而获得的值累加地添加到更新数组。
5)提升更新处理:将针对所有预测器的更新数组的属性值除以预测器索引的更新权重数组的权重值,并将现有的属性值与通过除法而获得的值相加。
6)通过针对所有预测器将通过提升更新处理而更新的属性值乘以(存储在QW中的)通过提升预测处理而更新的权重来计算预测属性。根据实施方式的点云视频编码器(例如,系数量化单元40011)对预测的属性值进行量化。另外,点云视频编码器(例如,算术编码器40012)对量化后的属性值执行熵编码。
根据实施方式的点云视频编码器(例如,RAHT单元40008)可以执行RAHT变换编码,其中使用与八叉树中较低级别的节点关联的属性来预测较高级别的节点的属性。RAHT变换编码是通过八叉树后向扫描进行的属性帧内编码的示例。根据实施方式的点云视频编码器从体素扫描整个区域,并在各个步骤中重复将体素合并成较大块的合并处理,直至到达根节点。根据实施方式的合并处理仅在被占用节点上执行。合并处理不在空节点上执行。合并处理在空节点正上方的较高模式下执行。
下面的式3表示RAHT变换矩阵。在式3中,
Figure BDA0003888761360000251
表示级别l处的体素的平均属性值。可以基于
Figure BDA0003888761360000252
Figure BDA0003888761360000253
来计算
Figure BDA0003888761360000254
Figure BDA0003888761360000255
的权重是
Figure BDA0003888761360000256
Figure BDA0003888761360000257
[式3]
Figure BDA0003888761360000258
这里,
Figure BDA0003888761360000259
是低通值并被用在下一更高级别处的合并处理中。
Figure BDA00038887613600002510
表示高通系数。各个步骤中的高通系数被量化并经历熵编码(例如,通过算术编码器40012编码)。权重被计算为
Figure BDA00038887613600002511
如式4地通过
Figure BDA00038887613600002512
Figure BDA00038887613600002513
计算根节点。
[式4]
Figure BDA00038887613600002514
gDC的值也像高通系数一样被量化并经历熵编码。
图10例示了根据实施方式的点云视频解码器。
图10中例示的点云视频解码器是图1中描述的点云视频解码器10006的示例,并可以执行与图1中例示的点云视频解码器10006的操作相同或类似的操作。如图中所示,点云视频解码器可以接收一个或更多个比特流中包含的几何比特流和属性比特流。点云视频解码器包括几何解码器和属性解码器。几何解码器对几何比特流执行几何解码,并输出解码后的几何结构。属性解码器基于解码后的几何对属性比特流执行属性解码,并输出解码后的属性。使用解码后的几何结构和解码后的属性来重构点云内容(解码后的点云)。
图11例示了根据实施方式的点云视频解码器。
图11中例示的点云视频解码器是图10中例示的点云视频解码器的示例,并可以执行作为图1至图9中例示的点云视频编码器的编码操作的逆处理的解码操作。
如参照图1和图10描述的,点云视频解码器可以执行几何解码和属性解码。几何解码是在属性解码之前执行的。
根据实施方式的点云视频解码器包括算术解码器(算术解码)11000、八叉树合成器(合成八叉树)11001、表面近似合成器(合成表面近似)11002和几何重构单元(重构几何结构)11003、坐标逆变换器(逆变换坐标)11004、算术解码器(算术解码)11005、反量化单元(反量化)11006、RAHT变换器11007、LOD生成器(生成LOD)11008、逆提升器(逆提升)11009和/或逆颜色变换单元(逆变换颜色)11010。
算术解码器11000、八叉树合成器11001、表面近似合成器11002和几何重构单元11003以及坐标逆变换器11004可以执行几何解码。根据实施方式的几何解码可以包括直接解码和trisoup几何解码。直接解码和trisoup几何解码被选择性应用。几何解码不限于上述示例,并作为参照图1至图9描述的几何编码的逆处理来执行。
根据实施方式的算术解码器11000基于算术编码对接收到的几何比特流进行解码。算术解码器11000的操作对应于算术编码器40004的逆处理。
根据实施方式的八叉树合成器11001可以通过从解码后的几何比特流(或作为解码结果而被保护的关于几何结构的信息)获取占用码来生成八叉树。如参照图1至图9详细描述地配置占用码。
当应用trisoup几何编码时,根据实施方式的表面近似合成器11002可以基于解码后的几何结构和/或所生成的八叉树来合成表面。
根据实施方式的几何重构单元11003可以基于表面和/或解码后的几何结构来重新生成几何结构。如参照图1至图9描述的,直接编码和trisoup几何编码被选择性应用。因此,几何重构单元11003直接导入并添加关于应用了直接编码的点的位置信息。当应用trisoup几何编码时,几何重构单元11003可以通过执行几何重构单元40005的重构操作(例如,三角形重构、上采样和体素化)来重构几何结构。细节与参照图6描述的细节相同,因此省略其描述。重构的几何结构可以包括不包含属性的点云图片或帧。
根据实施方式的坐标逆变换器11004可以通过基于重构的几何结构变换坐标来获取点的位置。
算术解码器11005、反量化单元11006、RAHT变换器11007、LOD生成单元11008、逆提升器11009和/或逆颜色变换单元11010可以执行参照图10描述的属性解码。根据实施方式的属性解码包括区域自适应分层变换(RAHT)解码、基于内插的分层最近邻预测(预测变换)解码和具有更新/提升步骤(提升变换)的基于内插的分层最近邻预测解码。可以选择性使用上述三种解码方案,或可以使用一种或更多种解码方案的组合。根据实施方式的属性解码不限于上述示例。
根据实施方式的算术解码器11005通过算术编码对属性比特流进行解码。
根据实施方式的反量化单元11006对作为解码结果而被保护的关于解码后的属性比特流或属性的信息进行反量化,并输出反量化后的属性(或属性值)。可以基于点云视频编码器的属性编码来选择性应用反量化。
根据实施方式,RAHT变换器11007、LOD生成单元11008和/或逆提升器11009可以处理重构的几何结构和反量化后的属性。如上所述,RAHT变换器11007、LOD生成单元11008和/或逆提升器11009可以选择性执行与点云视频编码器的编码对应的解码操作。
根据实施方式的逆颜色变换单元11010执行逆变换编码,以对解码后的属性中包括的颜色值(或纹理)进行逆变换。可以基于点云视频编码器的颜色变换单元40006的操作选择性执行逆颜色变换单元11010的操作。
尽管在该图中未示出,但图11的点云视频解码器的元件可以由包括一个或更多个处理器或集成电路的硬件、软件、固件或其组合来实现,该处理器或集成电路被配置为与点云内容提供设备中包括的一个或更多个存储器通信。所述一个或更多个处理器可以执行上述图11的点云视频解码器的元件的操作和/或功能中的至少一个或更多个。另外,一个或更多个处理器可以操作或执行软件程序和/或指令的集合,以执行图11的点云视频解码器的元件的操作和/或功能。
图12例示了根据实施方式的发送装置。
图12中示出的发送装置是图1的发送装置10000(或图4的点云视频编码器)的示例。图12中例示的发送装置可以执行与参照图1至图9描述的点云视频编码器的操作和方法相同或类似的操作和方法中的一个或更多个。根据实施方式的发送装置可以包括数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用码发生器12003、表面模型处理器12004、帧内/帧间编码处理器12005、算术编码器12006、元数据处理器12007、颜色变换处理器12008、属性变换处理器12009、LOD/提升/RAHT变换处理器12010、算术编码器12011和/或发送处理器12012。
根据实施方式的数据输入单元12000接收或获取点云数据。数据输入单元12000可以执行与点云视频获取单元10001的操作和/或获取方法(或参照图2描述的获取处理20000)相同或类似的操作和/或获取方法。
数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用码发生器12003、表面模型处理器12004、帧内/帧间编码处理器12005和算术编码器12006执行几何编码。根据实施方式的几何编码与参照图1至图9描述的几何编码相同或类似,因此省略其详细描述。
根据实施方式的量化处理器12001对几何结构(例如,点的位置值)进行量化。量化处理器12001的操作和/或量化与参照图4描述的量化单元40001的操作和/或量化相同或类似。细节与参照图1至图9描述的细节相同。
根据实施方式的体素化处理器12002对点的量化后位置值进行体素化。体素化处理器12002可以执行与参照图4描述的量化单元40001的操作和/或体素化处理相同或类似的操作和/或处理。细节与参照图1至图9描述的细节相同。
根据实施方式的八叉树占用码发生器12003基于八叉树结构对点的体素化位置执行八叉树编码。八叉树占用码发生器12003可以生成占用码。八叉树占用码发生器12003可以执行与参照图4和图6描述的点云视频编码器(或八叉树分析单元40002)的操作和/或方法相同或类似的操作和/或方法。细节与参照图1至图9描述的细节相同。
根据实施方式的表面模型处理器12004可以基于表面模型来执行trisoup几何编码,以基于体素来重构特定区域(或节点)中的点的位置。表面模型处理器12004可以执行与参照图4描述的点云视频编码器(例如,表面近似分析单元40003)的操作和/或方法相同或类似的操作和/或方法。细节与参照图1至图9描述的细节相同。
根据实施方式的帧内/帧间编码处理器12005可以对点云数据执行帧内/帧间编码。帧内/帧间编码处理器12005可以执行与参照图7描述的帧内/帧间编码相同或类似的编码。细节与参照图7描述的细节相同。根据实施方式,帧内/帧间编码处理器12005可以被包括在算术编码器12006中。
根据实施方式的算术编码器12006对点云数据的八叉树和/或近似的八叉树执行熵编码。例如,编码方案包括算术编码。算术编码器12006执行与算术编码器40004的操作和/或方法相同或类似的操作和/或方法。
根据实施方式的元数据处理器12007处理关于点云数据的元数据(例如,设定值),并将其提供到诸如几何编码和/或属性编码这样的必要处理过程。另外,根据实施方式的元数据处理器12007可以生成和/或处理与几何编码和/或属性编码相关的信令信息。可以与几何编码和/或属性编码分开地对根据实施方式的信令信息进行编码。可以对根据实施方式的信令信息进行交织。
颜色变换处理器12008、属性变换处理器12009、LOD/提升/RAHT变换处理器12010和算术编码器12011执行属性编码。根据实施方式的属性编码与参照图1至图9描述的属性编码相同或类似,因此省略其详细描述。
根据实施方式的颜色变换处理器12008执行颜色变换编码,以变换属性中包括的颜色值。颜色变换处理器12008可以基于重构的几何结构来执行颜色变换编码。重构的几何结构与参照图1至图9描述的相同。另外,它执行与参照图4描述的颜色变换单元40006的操作和/或方法相同或类似的操作和/或方法。省略其详细描述。
根据实施方式的属性变换处理器12009执行属性变换,以基于重构的几何结构和/或未被执行几何编码的位置来变换属性。属性变换处理器12009执行与参照图4描述的属性变换单元40007的操作和/或方法相同或类似的操作和/或方法。省略其详细描述。根据实施方式的LOD/提升/RAHT变换处理器12010可以通过RAHT编码、预测变换编码和提升变换编码中的任一种或其组合对变换后的属性进行编码。LOD/提升/RAHT变换处理器12010执行与参照图4描述的RAHT单元40008、LOD生成单元40009和提升变换单元40010的操作相同或类似的操作中的至少一者。另外,预测变换编码、提升变换编码和RAHT变换编码与参照图1至图9描述的那些相同,因此省略其详细描述。
根据实施方式的算术编码器12011可以基于算术编码对编码后的属性进行编码。算术编码器12011执行与算术编码器40012的操作和/或方法相同或类似的操作和/或方法。
根据实施方式的发送处理器12012可以发送包含编码后的几何结构和/或编码后的属性和/或元数据信息的各个比特流,或发送配置有编码后的几何结构和/或编码后的属性和/或元数据信息的一个比特流。当根据实施方式的编码后的几何结构和/或编码后的属性和/或元数据信息被配置成一个比特流时,该比特流可以包括一个或更多个子比特流。根据实施方式的比特流可以包含信令信息,该信令信息包括用于序列级信令的序列参数集(SPS)、用于几何信息编码的信令的几何参数集(GPS)、用于属性信息编码的信令的属性参数集(APS)以及用于图块级信令的图块参数集(TPS或图块清单)和切片数据。切片数据可以包括关于一个或更多个切片的信息。根据实施方式的一个切片可以包括一个几何比特流Geom00以及一个或更多个属性比特流Attr00和Attr10。根据实施方式的TPS(或图块库)可以包括关于一个或更多个图块的各个图块的信息(例如,关于边界框的高度/大小信息和坐标信息)。几何比特流可以包含头部和有效载荷。根据实施方式的几何比特流的头部可以包含GPS中包括的参数集标识符(geom_parameter_set_id)、图块标识符(geom_tile_id)和切片标识符(geom_slice_id)以及关于有效载荷中包含的数据的信息。如上所述,根据实施方式的元数据处理器12007可以生成和/或处理信令信息,并将其发送到发送处理器12012。根据实施方式,用于执行几何编码的元件和用于执行属性编码的元件可以彼此共享数据/信息,如虚线所指示的。根据实施方式的发送处理器12012可以执行与发送器10003的操作和/或发送方法相同或类似的操作和/或发送方法。细节与参照图1和图2描述的细节相同,因此省略其描述。
图13例示了根据实施方式的接收装置。
图13中例示的接收装置是图1的接收装置10004(或图10和图11的点云视频解码器)的示例。图13中例示的接收装置可以执行与参照图1至图11描述的点云视频解码器的操作和方法相同或类似的操作和方法中的一个或更多个。
根据实施方式的接收装置包括接收器13000、接收处理器13001、算术解码器13002、基于占用码的八叉树重构处理器13003、表面模型处理器(三角形重构、上采样、体素化)13004、反量化处理器13005、元数据解析器13006、算术解码器13007、反量化处理器13008、LOD/提升/RAHT逆变换处理器13009、颜色逆变换处理器13010和/或渲染器13011。根据实施方式的用于解码的各个元件可以执行根据实施方式的用于编码的对应元件的操作的逆处理。
根据实施方式的接收器13000接收点云数据。接收器13000可以执行与图1的接收器10005的操作和/或接收方法相同或类似的操作和/或接收方法。省略其详细描述。
根据实施方式的接收处理器13001可以从接收到的数据获取几何比特流和/或属性比特流。接收处理器13001可以被包括在接收器13000中。
算术解码器13002、基于占用码的八叉树重构处理器13003、表面模型处理器13004和反量化处理器13005可以执行几何解码。根据实施方式的几何解码与参照图1至图10描述的几何解码相同或类似,因此省略其详细描述。
根据实施方式的算术解码器13002可以基于算术编码对几何比特流进行解码。算术解码器13002执行与算术解码器11000的操作和/或编码相同或类似的操作和/或编码。
根据实施方式的基于占用码的八叉树重构处理器13003可以通过从解码后的几何比特流(或作为解码结果而被保护的关于几何结构的信息)获取占用码来重构八叉树。基于占用码的八叉树重构处理器13003执行与八叉树合成器11001的操作和/或八叉树生成方法相同或相似的操作和/或方法。当应用trisoup几何编码时,根据实施方式的表面模型处理器13004可以基于表面模型方法来执行trisoup几何解码和相关的几何重构(例如,三角形重构、上采样、体素化)。表面模型处理器13004执行与表面近似合成器11002和/或几何重构单元11003的操作相同或类似的操作。
根据实施方式的反量化处理器13005可以对解码后的几何结构进行反量化。
根据实施方式的元数据解析器13006可以解析接收到的点云数据中包含的元数据,例如,设定值。元数据解析器13006可以传递元数据以进行几何解码和/或属性解码。元数据与参照图12描述的元数据相同,因此省略其详细描述。
算术解码器13007、反量化处理器13008、LOD/RAHT逆变换处理器13009和颜色逆变换处理器13010执行属性解码。属性解码与参照图1至图10描述的属性解码相同或类似,因此省略其详细描述。
根据实施方式的算术解码器13007可以通过算术编码对属性比特流进行解码。算术解码器13007可以基于重构的几何结构对属性比特流进行解码。算术解码器13007执行与算术解码器11005的操作和/或代码化相同或类似的操作和/或代码化。
根据实施方式的反量化处理器13008可以对解码后的属性比特流进行反量化。反量化处理器13008执行与反量化单元11006的操作和/或反量化方法相同或相似的操作和/或方法。
根据实施方式的LOD/提升/RAHT逆变换器13009可以处理重构的几何结构和反量化后的属性。预测/提升/RAHT逆变换处理器1301执行与RAHT变换器11007、LOD生成单元11008和/或逆提升器11009的操作和/或解码相同或类似的操作和/或解码中的一个或更多个。根据实施方式的颜色逆变换处理器13010执行逆变换编码,以对解码后的属性中包括的颜色值(或纹理)进行逆变换。颜色逆变换处理器13010执行与逆颜色变换单元11010的操作和/或逆变换编码相同或类似的操作和/或逆变换编码。根据实施方式的渲染器13011可以渲染点云数据。
图14示出了根据实施方式的用于存储或流传输基于G-PCC压缩的点云数据的总体架构。根据实施方式,图14示出了用于存储和流传输点云数据的架构,该架构支持诸如VR、AR、MR和用户的自主驾驶这样的各种服务。
在上述的用于提供点云视频的整体架构中,经历一系列获取/编码/发送/解码/渲染过程的点云数据可以被称为点云内容数据或点云视频数据。根据实施方式,术语“点云内容数据”也可以被用作覆盖与点云数据相关的元数据或信令信息的概念。
根据实施方式,存储和流传输点云数据的过程可以包括获取过程、编码过程、发送过程、解码过程、渲染过程和/或反馈过程。
图14的上部中示出的发送装置可以包括获取器、点云视频编码器和文件/段封装器,并且表示其中参照图1至图13描述的发送装置(例如,发送装置10000、发送装置等)处理和发送点云内容的过程。
如参照图1至图13描述的,发送装置可以获取点云内容的音频Ba(音频获取),对所获取的音频进行编码,并输出音频比特流Ea。另外,发送装置可以获取点云内容的点云(或点云视频)Bv(点获取),并对所获取的点云执行点云视频编码,以输出点云视频比特流Ev。即,可以以比特流的形式输出由发送装置的点云视频编码器通过包括预测、变换、量化和熵编码的一系列过程执行点云视频编码的数据(编码后的视频/图像信息)。发送装置的点云视频编码与参照图1至图13描述的点云视频编码(例如,图4的点云编码器的编码)相同或类似,因此将省略其详细描述。
发送装置的文件/段封装器可以将所生成的音频比特流和视频比特流或点云相关元数据封装到文件和/或段中以进行流传输。元数据表示与针对点云的内容相关的信令信息。例如,元数据可以包括初始观看方位元数据。作为另一示例,元数据可以包括用于识别点云数据是指示正面的数据还是指示背面的数据的信息以及与捕获等相关的信息。这里,可以从元数据处理器接收点云相关元数据(参见图12)。元数据处理器可以被包括在点云视频编码器中,或者可以被配置为单独的部件/模块。封装后的文件和/或段Fs文件可以包括具有诸如ISOBMFF的文件格式的文件或通过HTTP的动态自适应流传输(DASH)段。根据实施方式,点云相关元数据可以被包含在封装的文件格式和/或段中。点云相关元数据可以被包含在ISOBMFF(ISO国际标准化组织基本媒体文件格式)文件格式的不同级别的盒中,或可以被包含在文件中的单独轨道中。根据实施方式,文件/段封装器可以将点云相关元数据封装为单独文件。根据实施方式的发送装置(或发送处理器)可以通过数字存储介质或网络将点云比特流或包含点云比特流的文件和/或段传送到接收装置。发送装置可以根据用于发送的任何发送协议来执行处理。可以通过广播网络和/或宽带来传送为了供发送装置发送而处理的数据。可以以按需方式将这些数据传送到接收方。根据实施方式,数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD这样的各种存储介质。发送装置的封装和发送处理方法与参照图1至图13(例如,发送器10003、图2的发送步骤20002等)描述的封装和发送处理方法相同,因此跳过其详细描述。
图14的下部中的接收装置可以包括文件/段解封装器、点云视频解码器、渲染器和感测/跟踪单元。图14的下部例示了参照图1至图13描述的接收装置(例如,图13的接收装置)处理并输出点云内容的过程。
根据实施方式,接收装置可以包括被配置为输出最终音频数据和最终视频数据的装置(例如,扬声器、耳机、显示器)以及被配置为处理点云内容的点云播放器。最终数据输出装置和点云播放器可以被配置为单独的物理装置。点云播放器可以执行基于几何的点云压缩(G-PCC)编码、和/或基于视频的点云压缩(V-PCC)编码和/或下一代编码。
根据实施方式,接收装置的文件/段解封装器可以对通过广播网络、宽带或数字存储介质以文件和/或段的形式接收的点云数据解封装。根据实施方式,文件/段解封装器可以通过对ISOBMFF文件解封装来获取点云比特流和/或点云相关元数据(或单独的元数据比特流)。所获取的点云比特流可以被发送到点云视频解码器,并且所获取的点云相关元数据(或元数据比特流)可以被发送到元数据解析器(参见图13)。点云比特流可以包括点云相关元数据(或元数据比特流)。元数据解析器可以被包括在点云视频解码器中,或者可以被配置为单独的部件/模块。由文件/段解封装器获取的点云相关元数据可以以文件格式包含在不同级别的盒中或文件中的单独轨道中。在有必要时,文件/段解封装器可以从元数据解析器接收对于解封装所必需的元数据。点云相关元数据可以被传送到点云视频解码器以用于点云解码过程,或者可以被传送到渲染器以用于点云渲染过程。即,接收装置可以基于元数据来执行解封装、音频解码、音频渲染、视频解码或视频渲染中的至少一个。元数据与参照图12和图13描述的元数据类似或相同。因此,至于元数据的没有描述的部分,请参考对图12和图13的描述。接收装置的接收和解封装方法与参照图1至图13描述的方法(例如,接收器10005、接收器13000和接收处理器13001)相同或类似。因此,至于元数据的没有描述的部分,请参考对图1至图13的描述。
根据实施方式的接收装置取得文件和/或段中所包括的音频比特流E'a。如图中所示,接收装置对音频比特流E’a执行音频解码,并输出解码后的音频数据B'a。然后,接收装置对解码后的音频数据执行音频渲染,并通过扬声器、耳机等输出最终音频数据A'a。
接收装置的点云视频解码器对从文件/段解封装器提供的视频比特流E'v执行点云视频解码,并输出解码后的视频数据B'v。根据实施方式的点云视频解码与参照图1至图13描述的点云视频解码(例如,图11中的点云视频解码器的解码)相同或类似,因此跳过其详细描述。
根据实施方式,接收装置的渲染器可以在3D空间中渲染解码后的视频数据B'v。根据实施方式,可以通过显示器显示渲染后的视频/图像。用户可以通过VR/XR/AR/MR显示器或一般的显示器观看所渲染结果的全部或一部分。
根据实施方式,接收装置的感测/跟踪单元从用户或接收方获取(或生成或提取)头方位信息和/或视口信息或计算头方位信息和/或视口信息,并通过接收装置的文件/段解封装器、点云视频解码器、或渲染器、和/或反馈通道将其传送到发送装置的点云视频编码器或文件/段封装器。头方位信息可以指示关于用户头部的位置、角度、运动等的信息,或者可以指示关于用户的观看装置的位置、角度和运动的信息。基于该信息,可以计算关于用户当前在3D空间中观看的区域的信息,即,视口信息。
根据实施方式,视口信息可以是关于用户通过装置或HMD当前在3D空间中观看的区域的信息。诸如VR/XR/AR/MR显示器这样的装置可以基于头方位信息(即,用户头部的位置/方位)、装置所支持的垂直或水平FOV等来提取视口区域。
根据实施方式,接收装置基于由感测/跟踪单元获取的头方位信息和/或视口信息来接收所有点云数据,或者接收由方位信息和/或视口信息指示的点云数据(即,点云数据的一部分)。
根据实施方式,接收装置的文件/段解封装器和/或点云视频解码器和/或渲染器可以基于由感测/跟踪单元获取的头方位信息和/或视口信息来解封装、解码或渲染所有点云数据,或者渲染由方位信息和/或视口信息指示的点云数据(即,点云数据的一部分)。即,接收装置的文件/段解封装器和/或点云视频解码器和/或渲染器可以基于来自文件的头方位信息和/或视口信息来高效地提取、解码或渲染仅特定区域(即,由头方位信息和/或视口信息指示的区域)的媒体数据。换言之,接收装置的解封装过程、点云视频解码过程和渲染过程可以基于诸如头方位信息和视口信息这样的反馈信息和/或元数据来执行。例如,可以优先基于头方位信息和/或视口信息仅对关于用户当前观看的区域的点云数据进行解封装、解码和渲染。
根据实施方式,发送装置的点云视频编码器和/文件/段封装器可以仅对特定区域(即,由头方位信息和/或视口信息指示的区域)的媒体数据进行高效编码,或者基于由感测/跟踪单元获取和反馈的头方位信息和/或视口信息来生成文件并发送。即,发送装置的点云视频编码器可以基于头方位信息和/或视口信息对所有点云数据进行编码,或者对由头方位信息和/或视口信息指示的点云数据(即,点云数据的一部分)进行编码。文件/段封装器可以基于所反馈的头方位信息和/或视口信息来封装所有点云数据,或者封装由头方位信息和/或视口信息指示的点云数据(即,点云数据的一部分)。另外,发送装置可以基于所反馈的头方位信息和/或视口信息来传送所有点云数据,或者传送由方位信息和/或视口信息指示的点云数据(即,点云数据的一部分)。
根据实施方式,可以通过反馈过程在消费点云数据时提供交互性。根据实施方式,用户可以利用VR/AR/MR/自主驾驶环境中实现的技术进行交互。在这种情况下,与交互相关的信息被作为反馈信息传送到发送装置或服务提供商。根据实施方式,可以不执行传送反馈信息的反馈过程。
反馈信息的细节与参照图1至图13描述的细节相同或类似。因此,至于本文中没有描述的部分,请参考以上参照图1至图13给出的描述。
图15示出了根据实施方式的示例性发送装置。
图15的发送装置是被配置为发送点云内容的装置,并对应于参照图1至图14描述的发送装置的示例(例如,图1的发送装置10000、图4的点云视频编码器、图12的发送装置、图14的发送装置)。因此,图15的发送装置执行与参照图1至图14描述的发送装置的操作相同或类似的操作。
根据实施方式的发送装置可以执行点云获取、点云视频编码、文件/段封装和传送中的一个或更多个。
由于图中例示的点云获取和传送的操作与参照图1至图14描述的操作相同或类似,因此将省略其详细描述。
如以上参照图1至图14描述的,根据实施方式的发送装置可以执行几何编码和属性编码。几何编码可以被称为几何压缩,并且属性编码可以被称为属性压缩。如上所述,一个点可以具有一个几何以及一个或更多个属性。因此,发送装置对各属性执行属性编码。该图例示了发送装置执行一个或更多个属性压缩(属性#1压缩,…,属性#N压缩)。另外,根据实施方式的发送装置可以执行辅助压缩。辅助压缩是对元数据执行的。元数据的细节与参照图1至图14描述的细节相同或类似,因此将省略其详细描述。发送装置还可以执行元数据压缩。根据实施方式的元数据压缩可以包括参照图1至图14描述的trisoup几何编码。
根据实施方式的发送装置可以将根据点云视频编码输出的比特流(例如,点云流)封装到文件和/或段中。根据实施方式,发送装置可以执行用于携带元数据之外的数据(例如,媒体数据)的媒体轨道封装,并执行用于携带元数据的元数据轨道封装。根据实施方式,可以将元数据封装到媒体轨道中。
如参照图1至图14描述的,发送装置可以从接收装置接收反馈信息(方位/视口元数据),并基于接收到的反馈信息来执行点云视频编码、文件/段封装和传送操作中的至少一个。细节与参照图1至图14描述的细节相同或类似,因此将省略其详细描述。
图16示出了根据实施方式的示例性接收装置。
图16的接收装置是用于接收点云内容的装置,并对应于参照图1至图14描述的接收装置的示例(例如,图1的接收装置10004、图11的点云视频解码器以及图13的接收装置、图14的接收装置)。相应地,图16的接收装置执行与参照图1至图14描述的接收装置的操作相同或类似的操作。图16的接收装置可以接收从图15的发送装置发送的信号,并执行图15的发送装置的操作的逆过程。
根据实施方式的接收装置可以执行传送、文件/段解封装、点云视频解码和点云渲染中的至少一个。
由于图中例示的点云接收和点云渲染操作与参照图1至图14描述的操作相同,因此将省略其详细描述。
如参照图1至图14描述的,根据实施方式的接收装置解封装从网络或存储装置获取的文件和/或段。根据实施方式,接收装置可以执行用于携带元数据之外的数据(例如,媒体数据)的媒体轨道解封装,并执行用于携带元数据的元数据轨道解封装。根据实施方式,在元数据被封装到媒体轨道中的情况下,省略元数据轨道解封装。
如参照图1至图14描述的,接收装置可以对通过解封装而取得的比特流(例如,点云流)执行几何解码和属性解码。几何解码可以被称为几何解压缩,并且属性解码可以被称为属性解压缩。如上所述,一个点可以具有其中各个由发送装置编码的一个几何以及一个或更多个属性。因此,接收装置对各属性执行属性解码。该图例示了接收装置执行一个或更多个属性解压缩(属性#1解压缩、...、属性#N解压缩)。根据实施方式的接收装置还可以执行辅助解压缩。辅助解压缩是对元数据执行的。元数据的细节与参照图1至图14描述的细节相同,因此将省略其描述。接收装置还可以执行元数据解压缩。根据实施方式的元数据解压缩可以包括参照图1至图14描述的trisoup几何解码。根据实施方式的接收装置可以渲染根据点云视频解码输出的点云数据。
如参照图1至图14描述的,接收装置可以使用单独的感测/跟踪元件取得方位/视口元数据,并将包括方位/视口元数据的反馈信息发送到发送装置(例如,图15的发送装置)。另外,接收装置可以基于反馈信息来执行接收操作、文件/段解封装和点云视频解码中的至少一个。细节与参照图1至图14描述的细节相同,因此将省略其描述。
图17示出了根据实施方式的与用于发送和接收点云数据的方法/装置可操作地可连接的示例性结构。
图17的结构表示其中服务器17600、机器人17100、自动驾驶车辆17200、XR装置17300、智能电话17400、家用电器17500和/或头戴式显示器(HMD)17700中的至少一个连接到云网络17100的配置。机器人17100、自动驾驶车辆17200、XR装置17300、智能电话17400或家用电器17500被称为装置。另外,XR装置17300可以对应于根据实施方式的点云压缩数据(PCC)装置,或可以可操作地连接到PCC装置。
云网络17000可以表示构成云计算基础设施的一部分或存在于云计算基础设施中的网络。这里,可以使用3G网络、4G或长期演进(LTE)网络或5G网络配置云网络17000。
服务器17600可以通过云网络17000连接到机器人17100、自动驾驶车辆17200、XR装置17300、智能电话17400、家用电器17500和/或HMD 17700中的至少一个,并可以辅助连接的装置17100至17700的处理中的至少一部分。
HMD 17700表示根据实施方式的XR装置和/或PCC装置的实现方式类型中的一种。根据实施方式的HMD型装置包括通信单元、控制单元、存储器、I/O单元、传感器单元和电源单元。
下文中,将描述应用了上述技术的装置17100至17500的各种实施方式。根据上述实施方式,图17中例示的装置17100至17500可以可操作地连接/耦合到点云数据发送装置和接收器。
<PCC+XR>
XR/PCC装置17300可以采用PCC技术和/或XR(AR+VR)技术,并可以被实现为HMD、设置在车辆中的平视显示器(HUD)、电视机、移动电话、智能电话、计算机、可穿戴装置、家用电器、数字标牌、车辆、静止机器人或移动机器人。
XR/PCC装置17300可以分析通过各种传感器或从外部装置获取的3D点云数据或图像数据,并生成关于3D点的位置数据和属性数据。由此,XR/PCC装置17300可以获取关于周围空间或真实对象的信息,并渲染和输出XR对象。例如,XR/PCC装置17300可以将包括关于识别到的对象的辅助信息的XR对象与识别到的对象匹配,并输出相匹配的XR对象。
<PCC+自动驾驶+XR>
自动驾驶车辆17200可以通过应用PCC技术和XR技术被实现为移动机器人、车辆、无人驾驶飞行器等。
应用XR/PCC技术的自动驾驶车辆17200可以表示设置有用于提供XR图像的装置的自动驾驶车辆或作为XR图像中的控制/交互目标的自动驾驶车辆。具体地,作为XR图像中的控制/交互目标的自动驾驶车辆17200可以与XR装置17300区分开,并可以可操作地连接到XR装置1730。
具有用于提供XR/PCC图像的装置的自动驾驶车辆17200可以从包括摄像头的传感器获取传感器信息,并基于所获取的传感器信息输出生成的XR/PCC图像。例如,自动驾驶车辆17200可以具有HUD并向其输出XR/PCC图像,由此向乘员提供与真实对象或屏幕上存在的对象相对应的XR/PCC对象。
当XR/PCC对象被输出到HUD时,可以输出XR/PCC对象的至少一部分以与乘员眼睛所指向的真实对象交叠。另一方面,当XR/PCC对象被输出到设置在自动驾驶车辆内部的显示器上时,可以输出XR/PCC对象的至少一部分以与屏幕上的对象交叠。例如,自动驾驶车辆17200可以输出与诸如道路、另一车辆、交通信号灯、交通标牌、两轮车、行人和建筑物这样的对象相对应的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服务相关的内容数据并将其发送到车辆。在PCC发送/接收装置被安装在车辆上的情况下,PCC发送/接收装置可以根据通过用户接口装置输入的用户输入信号来接收/处理与AR/VR/PCC服务相关的内容数据,并将其提供给用户。根据实施方式的车辆或用户接口装置可以接收用户输入信号。根据实施方式的用户输入信号可以包括指示自动驾驶服务的信号。
根据实施方式,点云内容(或被称为G-PCC内容)表示使用G-PCC编码的海量媒体。
根据实施方式,点云内容(即,G-PCC数据)表示由点云帧的序列构成的点云的海量编码。各个点云帧包括多个点、点的位置和点的属性。其可以因帧而异。即,各个点云帧表示由3D点的笛卡尔坐标(x,y,z)(即,位置)指定的3D点的集合以及在特定时间实例处的零个或更多个属性。另外,几何表示与点云帧关联的一组笛卡尔坐标,并且属性表示诸如颜色、反射率、帧索引等这样的可选地与点云数据中的各个点关联的标量或矢量性质。
根据实施方式,点云视频编码器还可以在对点云数据进行编码之前执行将点云数据在空间上分割为一个或更多个3D块的空间分割过程。即,为了实时地以低延时执行并处理发送装置的编码和发送操作以及接收装置的解码和渲染操作,发送装置可以将点云数据在空间上分割为多个3D块。另外,发送装置可以独立地或非独立地对空间分割后的3D块进行编码,由此使得能够在点云数据所占据的3D空间中进行随机访问和并行编码。另外,发送装置和接收装置可以通过独立地或非独立地对空间分割后的各个3D块执行编码和解码来防止在编码和解码过程中累积错误。
根据实施方式,3D块可以表示图块组、图块、切片、编码单元(CU)、或预测单元(PU)、变换单元(TU)。
图18是例示了根据实施方式的点云发送装置的另一示例的示图。在该示例中,提供空间分割器。
根据实施方式的点云发送装置可以包括空间分割器51001、信令处理器51002、几何编码器51003、属性编码器51004、发送处理器51005和文件/段封装器51006。根据实施方式,空间分割器51001、几何编码器51003和属性编码器51004可以被称为点云视频编码器。
根据实施方式,空间分割器51001可以基于边界框和/或子边界框将输入的点云数据在空间上分割为一个或更多个图块和/或一个或更多个切片。根据实施方式,空间分割器51010可以将点云数据分割为一个或更多个图块,并可以将各个图块分割为一个或更多个切片。
根据实施方式,用于空间分割的信令信息由信令处理器51002进行熵编码,然后以比特流的形式输出到发送处理器51005。
图19例示了根据实施方式的将边界框在空间上分割为一个或更多个3D块。
根据实施方式,与输入的点云数据对应的点云对象可以以基于坐标的盒(被称为边界框)的形式表示。即,边界框对应于可以包含点云的所有点的矩形长方体。换言之,边界框可以被定义为包括源点云帧的矩形长方体。根据实施方式,点云帧表示由3D点的笛卡尔坐标(x,y,z)指定的3D点的集合以及在特定时间实例处的零个或更多个属性。
图19例示了点云数据的整体边界框被分割为三个图块(即,图块#0、图块#1和图块#2)的示例。图19还例示了图块#0被分割为切片#0和切片#1、图块#1被分割为切片#2和切片#3并且图块#2被分割为切片#4的示例。图19的示例旨在向本领域技术人员提供对本公开的理解,并且通过分割边界框形成的图块的数目以及通过分割各个图块形成的图块的数目可以改变。
根据实施方式,图块或切片可以表示点云数据所占据的3D空间的部分区域。根据实施方式,边界框(即,点云数据)被分割为一个或更多个图块,并且各个图块被分割为一个或更多个切片。因此,点云视频编码器可以对点云数据执行并行编码,并且点云视频解码器可以对点云数据执行并行解码。
根据实施方式,切片可以表示由点云视频编码器独立编码的数据的单元和/或由点云视频解码器独立解码的数据的单元。即,切片是可以被独立编码或解码的点的集合。根据实施方式,切片可以表示点云数据所占据的3D空间中数据的集合,或者可以表示点云数据当中的一些数据的集合。即,切片可以表示表示编码后的点云帧的一部分或全部的一系列句法元素。根据实施方式,切片可以表示图块中所包括的区域或点的集合。根据实施方式,图块可以基于图块中所包括的点的数目被分割为一个或更多个切片。即,一个图块可以被定义为点云帧的边界框中的矩形长方体,并由一组切片组成。换言之,图块可以是带有边界框信息的一组切片。根据实施方式,可以在图块库(或TPS)中指定各个图块的边界框信息。根据实施方式,图块可以与边界框中的另一图块交叠。可以基于点的数目将图块分割为一个或更多个切片,并且可以在分割过程中分割或合并一些数据。即,切片可以是可以在对应图块内独立编码或解码的单元。另外,各个切片的几何信息和属性信息可以被独立地编码或解码。根据实施方式,各个切片可以包含标识切片所属的图块的索引。
根据实施方式,点云视频编码器可以以切片单元或包括一个或更多个切片的图块单元来对点云数据编码。根据实施方式,点云视频解码器可以在切片单元或包括一个或更多个切片的图块单元来对点云数据解码。
另外,点云视频编码器可以针对各个图块或针对各个切片不同地执行量化和/或变换。点云视频解码器可以针对各个图块或针对各个切片不同地执行反量化和/或逆变换。
当如上所述点云数据(即,边界框)被空间分割为一个或更多个图块和/或一个或更多个切片时,接收装置需要信令信息来对与整个点云数据中的特定图块或特定切片对应的一些点云数据进行解码。并且,对于接收装置,需要用于支持对点云数据的空间访问的与3D空间区域相关的信令信息。更具体地,为了使得能够在接收装置中解码之前对点云数据进行空间访问,至少一个空间区域与对应的点云数据(即,点云数据的对应部分)之间的关联性需要以文件级别(或文件格式级别)有效指示。换言之,当接收装置基于用户的视口等渲染点云数据以从整个点云数据提取一些必要的点云数据并对其进行解码时,3D空间区域与图块之间的关联性需要以文件级别(或文件格式级别)通知。在本公开中,3D空间区域可以被称为3D区域或空间区域,并可以包括立方体区域或长方体区域。
根据实施方式,对于从文件提取仅一些点云数据并对其进行解码所必需的信令信息即用于空间访问(或部分访问)的信令信息可以包括3D边界框信息、3D空间域信息(或立方体区域信息)、图块信息、和/或图块库信息。信令信息可以被存储在轨道中的样本、样本条目、样本组、轨道组或单独的元数据轨道中。随后,将详细地描述信令信息中所包括的3D边界框信息、3D空间区域信息(或立方体区域信息)、图块信息和/或图块库信息的存储和信令。
由空间分割器51001在空间上分割的一个或更多个3D块的位置被输出到几何编码器51003,并且属性信息(或属性)被输出到属性编码器51004。根据实施方式,3D块可以是图块组、图块、切片、编码单元(CU)、预测单元(PU)或变换单元(TU)。根据实施方式,位置可以是关于被分割的3D块中所包括的点的位置信息,并被称为几何信息。
几何编码器51003基于从空间分割器51001输出的位置来构造和编码八叉树,并输出几何比特流。另外,几何编码器51003可以重构八叉树和/或近似八叉树,并将其输出到属性编码器51004。重构的八叉树可以被称为重构的几何(或恢复的几何)。
属性编码器51004基于从几何编码器51003输出的重构的几何对从空间分割器51001输出的点的属性进行编码,并输出属性比特流。
几何编码器51003可以执行图4的坐标变换器40000、量化器40001、八叉树分析器40002、表面逼近分析器40003、算术编码器40004和几何重构器40005的操作中的一些或全部,或者执行图12的量化处理器12001、体素化处理器12002、八叉树占用码生成器12003、表面模型处理器12004、帧内/帧间编码处理器12005和算术编码器12006的操作中的一些或全部。
属性编码器51004可以执行图4的颜色变换器40006、属性变换器40007、RAHT变换器40008、LOD生成器40009、提升变换器40010、系数目化器40011和算术编码器40012的操作中的一些或全部,或者执行图12的颜色变换处理器12008、属性变换处理器12009、预测/提升/RAHT变换处理器12010和算术编码器12011的操作中的一些或全部。
信令处理器51002可以生成和/或处理信令信息,并将处理后的信令信息以比特流的形式输出到发送处理器51005。由信令处理器51002生成和/或处理的信令信息可以被提供到几何编码器51003、属性编码器51004、发送处理器51005和/或文件/段封装器51006以进行几何编码、属性编码和发送处理,或者信令处理器51002可以被提供由信令处理器51002、几何编码器51003、属性编码器51004、发送处理器51005和/或文件/段封装器51006生成的信令信息。信令处理器51002可以向几何编码器51003、属性编码器51004、发送处理器51005和/或文件/段封装器51006提供从接收装置反馈的信息(例如,头方位信息和/或视口信息)。
在本公开中,信令信息可以以参数集(序列参数集(SPS)、几何参数集(GPS)、属性参数集(APS)、图块参数集(TPS)(或图块库)等)为单元通知和发送。可以基于诸如切片或图块这样的各个图像的编码单元来将其通知并发送。此外,在本公开中,用于支持空间访问的信令信息可以包括3D边界框信息、3D空间区域信息(或立方体区域信息)、图块信息和/或图块库信息,并可以在轨道内样本、样本条目、样本组或轨道组中通知,或者可以在单独的元数据轨道中通知并发送。根据实施方式,用于支持空间访问的信令信息可以由信令处理器51002生成,并在轨道内样本、样本条目、样本组或轨道组中通知,或者可以在单独的元数据轨道中通知。另选地,其可以由文件/段封装器51006生成并在轨道内样本、样本条目、样本组或轨道组中通知,或者可以在单独的元数据轨道中通知。在本公开中,信令信息可以包括与点云数据相关的元数据(例如,设定值等)。依赖于应用,可以以诸如文件格式、通过HTTP的动态自适应流传输(DASH)、或MPEG媒体传送(MMT)这样的系统级别或者在诸如高清晰度多媒体接口(HDMI)、显示端口、视频电子标准协会(VESA)或CTA这样的有线接口级别定义信令信息。
根据实施方式的方法/装置可以通知相关信息,以添加/执行实施方式的操作。可以在发送装置和/或接收装置中使用根据实施方式的信令信息。
发送处理器51005可以执行与图12的发送处理器12012的操作和/或发送方法相同或类似的操作和/或发送方法,并可以执行与图1的发送器1003的操作和/或发送方法相同或类似的操作和/或发送方法。将省略对细节的描述,并且将参照对图1或图12的描述。
发送处理器51005可以将从几何编码器51003输出的几何比特流、从属性编码器51004输出的属性比特流和从信令处理器51002输出的信令比特流输出到文件/段封装器51006,或者可以将其复用到一个比特流中并将该比特流输出到文件/段封装器51006。
根据实施方式,文件/段封装器51006将输入的比特流封装为文件或段并发送。根据实施方式,文件采用ISOBMFF文件格式。
根据实施方式,文件/段封装器51006将由TLV(类型-长度-值)封装结构构成的G-PCC比特流封装到文件中。由G-PCC比特流的TLV封装结构构成的可以包括从几何编码器51003输出的几何比特流、从属性编码器51004输出的属性比特流和/或从信令处理器51002输出的信令比特流。根据实施方式,G-PCC比特流可以在发送处理器51005或文件/段封装器51006中生成。根据实施方式,G-PCC比特流可以被存储在文件的一个单个轨道或多个轨道中。随后,将描述与封装结构和轨道相关的细节。
根据实施方式,文件或段可以通过文件/段封装器51006或传送单元(未示出)发送到接收装置,或者可以被存储在数字存储介质(例如,USB、SD、CD、DVD、蓝光、HDD、SSD等)中。根据实施方式的传送单元可以通过诸如4G、5G或6G这样的网络与接收装置执行有线/无线通信。另外,传送单元可以根据网络系统(例如,诸如4G、5G或6G这样的通信网络系统)执行必要的数据处理操作。另外,传送单元可以以按需方式发送封装后的数据。
图20是示出了根据实施方式的另一示例性点云接收装置的示图。
根据实施方式的点云接收装置可以包括接收处理器61000、文件/段解封装器61001、信令处理器61002、几何解码器61003、属性解码器61004和后处理器61005。根据实施方式,几何解码器61003和属性解码器61004可以被总称为点云视频解码器。根据实施方式,点云视频解码器可以被称为PCC解码器、PCC解码单元、点云视频解码器、点云视频解码单元等。
根据实施方式的接收装置可以包括被配置为使用无线电接入技术(例如,5G新RAT(NR)、长期演进(LTE))与基站和/或其它无线装置执行通信的装置、机器人、载具、AR/VR/XR装置、便携式装置、家用电器、物联网(IoT)装置和AI装置/服务器。
根据实施方式的接收处理器61000从传送单元或存储介质接收包含点云视频数据的G-PCC比特流或G-PCC比特流被封装成的文件/段。接收处理器61000可以根据网络系统(例如,诸如4G、5G或6G这样的通信网络系统)执行必要的数据处理操作。
根据实施方式的文件/段解封装器61001可以对接收到的文件/段进行解封装并输出G-PCC比特流。
根据实施方式,由包括几何比特流、属性比特流和信令比特流的TLV封装结构构成的G-PCC比特流可以通过文件的多个轨道来接收,或者可以通过文件的单个轨道来接收。换言之,文件/段解封装器61001对来自文件的单个轨道或多个轨道的由TLV封装结构构成的G-PCC比特流解封装,并从G-PCC比特流对几何比特流、属性比特流和/或信令比特流进行解复用。此后,解复用后的信令比特流被输出到信令处理器61002,几何比特流被输出到几何解码器61003,并且属性比特流被输出到属性解码器61004。
根据实施方式,文件/段解封装器61001和/或信令处理器61002可以从轨道中的样本、样本条目、样本组或轨道组或单独的元数据轨道获取用于支持空间访问的信令信息,并将所获取的信令信息提供到几何解码器61003、属性解码器61004和/或后处理器61005。用于支持空间访问的信令信息可以包括3D边界框信息、3D空间区域信息(或立方体区域信息)、图块信息和/或图块库信息。即,用于支持空间访问的信令信息是文件等级(或文件格式等级)的信令信息。
根据实施方式,文件/段解封装器61001可以分别向几何解码器61003和属性解码器61004输出期望基于针对空间访问的信令信息进行空间访问的3D空间区域的相关图块的几何比特流和属性比特流。
根据实施方式,图块是点云数据的整体边界框内的矩形长方体。另外,G-PCC比特流可以在整体边界框内被分割(划分)成一个或更多个3D空间区域(也被称为立方体区域或长方体区域)。即,3D空间区域是整体边界框的3D空间的特定3D体积,并且图块是整体边界框内的特定矩形长方体。因此,各个3D空间区域可以与一个或更多个图块相关,并且针对空间访问的信令信息包括关于3D空间区域与图块之间的关联性的信息。
信令处理器61002可以从输入的信令比特流解析信令信息(例如,SPS、GPS、APS、图块库(也被称为TPS)、元数据等中所包括的信息)并处理,并将其提供到几何解码器61003、属性解码器61004和后处理器61005。即,诸如SPS、GPS、APS和图块库这样的信令信息是比特流级别的信令信息。根据实施方式,可以以文件级别和/或比特流级别通知图块库。
根据实施方式,当如图19中所示在发送方处将点云数据分割为图块和/或切片时,图块库包括各个图块中所包括的切片的数目,相应地,点云视频解码器可以检查切片的数目并快速地解析信息以进行并行解码。
因此,根据本公开的点云视频解码器可以随着其接收到具有减少数据量的SPS而快速解析包含点云数据的比特流。结果,点云视频解码器可以在接收到图块后对图块进行解码,并可以针对各个图块基于各个图块中所包括的GPS和APS对各个切片进行解码。由此,解码效率可以被最大化。
即,点云视频解码器的几何解码器61003可以通过基于信令信息(例如,几何相关参数)对输入的几何比特流执行图18的几何编码器51003的操作的逆过程来重构几何。由几何解码器61003恢复(或重构)的几何被提供到属性解码器61004。点云视频解码器的属性解码器61004可以通过基于信令信息(例如,属性相关参数)和重构的几何对输入的属性比特流执行图18的属性编码器51004的操作的逆过程来恢复属性。根据实施方式,当如图19中所示在发送方将点云数据分割为图块和/或切片时,几何解码器61003和属性解码器61004逐图块地和/或逐切片地执行几何解码和属性解码。本文中,图块可以是与期望空间访问的3D空间区域相关的图块。
根据实施方式的几何解码器61003可以执行图11的算术解码器11000、八叉树合成单元11001、表面近似合成单元11002、几何重构单元11003和坐标逆变换单元11004的操作中的一些或全部,或者可以执行图13的算术解码器13002、基于占用码的八叉树重构处理器13003、表面模型处理器13004和反量化处理器13005的操作中的一些或全部。
根据实施方式的属性解码器61004可以执行图11的算术解码器11005、反量化单元11006、RAHT变换单元11007、LOD生成单元11008、逆提升单元11009和颜色逆变换单元11010的操作中的一些或全部,或者可以执行图13的算术解码器13007、反量化处理器13008、预测/提升/RAHT逆变换处理器13009和颜色逆变换处理器13010的操作中的一些或全部。
后处理器61005可以通过将所恢复的几何与所恢复的属性匹配来重构点云数据。另外,当重构的点云数据是以图块和/或切片为单元时,后处理器61005可以基于信令信息来执行发送方处的空间分割的逆过程。例如,当如图19中所示在发送装置中边界框被分割为图块和/或切片时,可以基于信令信息将图块和/或切片组合,以恢复点云数据的边界框。
在另一实施方式中,当在发送方处边界框被分割为图块和/或切片时,后处理器61005可以通过基于信令信息组合一些切片和/或一些图块来重构边界框的一部分。本文中,图块可以是与期望空间访问的3D空间区域相关的图块。
图21例示了根据实施方式的用于发送/接收的用于点云数据的示例比特流结构。
当根据实施方式的几何比特流、属性比特流和信令比特流被配置为一个比特流(或G-PCC比特流)时,该比特流可以包括一个或更多个子比特流。根据实施方式的比特流可以包括用于序列级信令的序列参数集(SPS)、用于几何信息编码的信令的几何参数集(GPS)、用于属性信息编码的信令的一个或更多个属性参数集(APS)(APS0、APS1)、用于图块级信令的图块库(也称为TPS)以及一个或更多个切片(切片0至切片n)。即,根据实施方式的点云数据的比特流可以包括一个或更多个图块,并且各个图块可以是包括一个或更多个切片(切片0至切片n)的一组切片。根据实施方式的图块库(或TPS)可以包含关于一个或更多个图块中的每一个的信息(例如,关于边界框的坐标值信息和高度/大小信息)。各个切片可以包括一个几何比特流(Geom0)以及一个或更多个属性比特流(Attr0和Attr1)。例如,切片0可以包括一个几何比特流(Geom00)和/或一个或更多个属性比特流(Attr00、Attr10)。
各个切片中的几何比特流(或几何切片)可以由几何切片头(geom_slice_header)和几何切片数据(geom_slice_data)构成。根据实施方式,geom_slice_header可以包括GPS中所包括的参数集的标识信息(geom_parameter_set_id)、图块标识符(geom_tile_id)和切片标识符(geom_slice_id)以及关于几何切片数据(geom_slice_data)中所包含的数据的信息(geomBoxOrigin、geom_box_log2_scale、geom_max_node_size_log2、geom_num_points)。geomBoxOrigin是指示几何切片数据的框的原点的几何框原点信息,geom_box_log2_scale是指示几何切片数据的对数标尺的信息,geom_max_node_size_log2是指示根几何八叉树节点的大小的信息,并且geom_num_points是与几何切片数据的点数相关的信息。根据实施方式,geom_slice_data可以包括关于相应切片中的点云数据的几何信息(或几何数据)。
各个切片中的各个属性比特流可以由属性切片头(attr_slice_header)和属性切片数据(attr_slice_data)构成。根据实施方式,attr_slice_header可以包括关于相应属性切片数据的信息。属性切片数据可以包含关于相应切片中的点云数据的属性信息(或属性数据或属性值)。当在一个切片中存在多个属性比特流时,各个比特流可以包含不同的属性信息。例如,一个属性比特流可以包含对应于颜色的属性信息,而另一属性比特流可以包含对应于反射率的属性信息。
图22示出了根据实施方式的点云数据的示例性比特流结构。
图23例示了根据实施方式的点云数据的比特流中的分量之间的连接关系。
图22和图23中例示的点云数据的比特流结构可以表示图21中示出的点云数据的比特流结构。
根据实施方式,SPS可以包括用于标识SPS的标识符(seq_parameter_set_id),并且GPS可以包括用于标识GPS的标识符(geom_parameter_set_id)和指示GPS所属的活动SPS的标识符(seq_parameter_set_id)。APS可以包括用于标识APS的标识符(attr_parameter_set_id)和指示APS所属的活动SPS的标识符(seq_parameter_set_id)。根据实施方式,几何数据可以包括几何切片头和几何切片数据。几何切片头可以包括将由相应几何切片参考的活动GPS的标识符(geom_parameter_set_id)。几何切片头还可以包括用于标识相应几何切片的标识符(geom_slice_id)和/或用于标识相应图块的标识符(geom_tile_id)。几何切片数据可以包括属于相应切片的几何比特流。根据实施方式,属性数据可以包括属性切片头和属性切片数据。属性切片头可以包括将由相应属性切片参考的活动APS的标识符(attr_parameter_set_id)和用于标识与属性切片相关的几何切片的标识符(geom_slice_id)。属性切片数据可以包括属于相应切片的属性比特流。
即,几何切片参考GPS,GPS参考SPS。另外,SPS列出可用的属性,为各个属性指派标识符,并标识解码方法。根据标识符,将属性切片映射到输出属性。属性切片依赖于先前(解码的)几何切片和APS。APS参考SPS。
根据实施方式,可以在点云数据的参数集和/或相应切片头中新定义点云数据的编码所必需的参数。例如,当执行属性信息的编码时,可以向APS添加参数。当执行基于图块的编码时,可以向图块和/或切片头添加参数。
如图21、图22和图23中所示,点云数据的比特流提供图块或切片,使得点云数据可以按区域分割和处理。根据实施方式,比特流的相应区域可以具有不同的重要性。因此,当点云数据被分割为图块时,可以向各个图块应用不同的滤波器(编码方法)和不同的滤波器单元。当点云数据被分割为切片时,可以向各个切片应用不同的滤波器和不同的滤波器单元。
当点云数据被分割成区域并压缩时,根据实施方式的发送装置和接收装置可以以高级语法结构发送和接收比特流,以用于在分割区域中选择性发送属性信息。
根据实施方式的发送装置可以根据如图21、图22和图23中所示的比特流结构发送点云数据。因此,可以提供应用不同的编码操作并对重要区域使用良好质量的编码方法的方法。另外,可以根据点云数据的特征支持高效的编码和发送,并且可以根据用户要求提供属性值。
根据实施方式的接收装置可以根据如图21、图22和图23中所示的比特流结构接收点云数据。因此,可以向各个区域(分割为图块或切片的区域)应用不同的滤波(解码)方法,而非向整个点云数据应用复杂的解码(滤波)方法。因此,向用户提供了重要区域中更好的图像质量,并且可以确保系统的适当延时。
作为在下述本公开的句法中使用的术语的字段可以具有与参数或元素相同的含义。
图24示出了根据本公开的序列参数集(SPS)(seq_parameter_set())的句法结构的实施方式。SPS可以包含关于点云数据比特流的序列信息。
根据实施方式的SPS可以包括main_profile_compatibility_flag字段、unique_point_positions_constraint_flag字段、level_idc字段、sps_seq_parameter_set_id字段、sps_bounding_box_present_flag字段、sps_source_scale_factor字段、numerator_minus1字段、source_scale_factor_denominator_minus1字段、sps_num_attribute_sets字段、log2_max_frame_idx字段、axis_coding_order字段、sps_bypass_stream_enabled_flag字段和sps_extension_flag字段。
main_profile_compatibility_flag字段可以指示比特流是否符合主配置资料。例如,等于1的main_profile_compatibility_flag字段可以指示比特流符合主配置资料。对于另一示例,等于0的main_profile_compatibility_flag字段可以指示比特流符合除了主配置资料之外的配置资料。
当unique_point_positions_constraint_flag字段的值为1时,所有输出点可以在当前SPS所引用的各个点云帧中具有唯一位置。当unique_point_point_positions_constraint_flag字段的值为0时,两个或更多个输出点可以在当前SPS所引用的点云帧中具有相同的位置。例如,即使所有点在各个切片中都是唯一的,切片和帧内的其他点也可以交叠。在这种情况下,unique_point_positions_constraint_flag字段被设置为0。
level_idc字段指示比特流符合的级别。
sps_seq_parameter_set_id字段提供了SPS的标识符,以供其它句法元素参考。
sps_bounding_box_present_flag字段可以指示在SPS中是否存在边界框。例如,等于1的sps_bounding_box_present_flag字段指示在SPS中存在边界框,等于0的sps_bounding_box_present_flag字段指示边界框的大小是未定义的。
当sps_bounding_box_present_flag字段等于1时,根据实施方式的SPS还可以包括sps_bounding_box_offset_x字段、sps_bounding_box_offset_y字段、sps_bounding_box_offset_z字段、sps_bounding_box_offset_log2_scale字段、sps_bounding_box_size_width字段、sps_bounding_box_size_height字段和sps_bounding_box_size_depth字段。
sps_bounding_box_offset_x字段指示笛卡尔坐标中源边界框的x偏移。当源边界框的x偏移不存在时,sps_bounding_box_offset_x的值为0。
sps_bounding_box_offset_y字段指示笛卡尔坐标中源边界框的y偏移。当源边界框的y偏移不存在时,sps_bounding_box_offset_y的值为0。
sps_bounding_box_offset_z字段指示笛卡尔坐标中源边界框的z偏移。当源边界框的z偏移不存在时,sps_bounding_box_offset_z的值为0。
sps_bounding_box_offset_log2_scale字段指示用于缩放量化后的x、y和z源边界框偏移的缩放因子。
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。
sps_source_scale_factor_numerator_minus1字段加1指示源点云的缩放因子分子。
sps_source_scale_factor_denominator_minus1字段加1指示源点云的缩放因子分母。
sps_num_attribute_sets字段指示比特流中编码属性的数目。
根据实施方式的SPS包括重复与sps_num_attribute_sets字段的值一样次数的迭代语句。在实施方式中,i被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句,直到i的值变得等于sps_num_attribute_sets字段的值。迭代语句可以包括attribute_dimension_minus[i]字段和attribute_instance_id[i]字段。
attribute_dimension_minus[i]字段加1指定第i属性的分量的数目。
attribute_instance_id[i]字段指定第i属性的实例ID。
根据实施方式,当attribute_dimension_minus[i]的值大于1时,迭代语句还可以包括attribute_secondary_bitdepth_minus[i]字段、attribute_cicp_colour_primaries[i]字段、attribute_cicp_transfer_characteristics[i]字段、attribute_cicp_matrix_coeffs[i]字段、attribute_cicp_video_full_range_flag[i]字段和known_attribute_label_flag[i]字段。
attribute_secondary_bitdepth_minus[i]加1指定第i属性信号的第二分量的比特深度。
attribute_cicp_transfer_characteristics[i]字段要么指示颜色属性的参考光电传递特性函数作为标称真实值范围为0至1的源输入线性光学强度的函数,要么指示参考电光传递特性函数的逆作为输出线性光强度的函数。
attribute_cicp_matrix_coeffs[i]字段描述了在从绿色、蓝色和红色或Y、Z和X原色推导亮度和色度信号时使用的矩阵系数。
attribute_cicp_video_full_range_flag[i]字段指示从E′Y、E′PB和E′PR或E′R、E′G和E′B真实值分量信号推导出的亮度和色度信号的黑色水平和范围。
known_attribute_label_flag[i]字段指定是否针对第i属性通知know_attribute_label[i]字段或attribute_label_four_bytes[i]字段。例如,等于0的known_attribute_label_flag[i]字段的值指定针对第i属性通知known_attribute_label字段。等于1的known_attribute_label_flag[i]字段指定针对第i属性通知attribute_label_four_bytes[i]字段。
known_attribute_label[i]字段指示第i属性的类型。例如,当known_attribute_label[i]字段的值为0时,其可以指示第i属性是颜色。当known_attribute_label[i]字段的值为1时,其可以指示第i属性是反射率。当known_attribute_label[i]字段的值为2时,其可以指示第i属性是帧索引。另外,当known_attribute_label[i]字段的值为4时,其指示第i属性是透明度。当known_attribute_label[i]字段的值为5时,其指示第i属性是法线。
attribute_label_four_bytes[i]字段指示4字节代码中的已知属性类型。
图25是示出了分配给attribute_label_four_bytes[i]字段的属性类型的示例的表。图25示例性示出了等于0的attribute_label_four_bytes[i]指示第i属性是颜色,等于1的attribute_label_four_bytes[i]指示第i属性是反射率,等于2的attribute_label_four_bytes[i]指示第i属性是帧索引,等于4的attribute_label_four_bytes[i]指示第i属性是透明度,并且等于5的attribute_label_four_bytes[i]指示第i属性是法线。
log2_max_frame_idx字段指定用于通知frame_idx句法变量的位的数目。
axis_coding_order字段指定X、Y和Z输出轴标记与具有轴=0,...,2的重构点云RecPic[pointidx][axis]中的三个位置分量之间的对应性。
图26是示出了根据实施方式的将X、Y和Z输出轴标记映射到RecPIC[i][axis]的索引轴的示例的表。
等于1的sps_bypass_stream_enabled_flag字段可以指定在读取比特流时使用旁路编码模式。作为另一示例,等于0的sps_bypass_stream_enabled_flag字段可以指定在读取比特流时不使用旁路编码模式。
sps_extension_flag字段指示在对应的SPS句法结构中是否存在sps_extension_data句法结构。例如,当sps_extension_present_flag字段等于1时,其指示在SPS句法结构中存在sps_extension_data句法结构。当sps_extension_present_flag字段等于0时,其指示在SPS句法结构中不存在sps_extension_data句法结构。
根据实施方式,当sps_extension_flag字段等于1时,SPS还可以包括sps_extension_data_flag字段。
sps_extension_data_flag字段可以具有任何值。
图27示出了根据本公开的几何参数集(GPS)(geometry_parameter_set())的语法结构的实施方式。根据实施方式的GPS可以包含关于对关于包含在一个或多个切片中的点云数据的几何信息进行编码的方法的信息。
根据实施方式,GPS可以包括gps_geom_parameter_set_id字段、gps_seq_parameter_set_id字段、gps_box_present_flag字段、unique_geometry_points_flag字段、geometry_planar_mode_flag field,ageometry_angular_mode_flag字段、neighbour_context_restriction_flag字段、inferred_direct_coding_mode_enabled_flag字段、bitwise_occupancy_coding_flag字段、adjacent_child_contextualization_enabled_flag字段、log2_neighbour_avail_boundary字段、log2_intra_pred_max_node_size字段、log2_trisoup_node_size字段、ageom_scaling_enabled_flag字段、gps_implicit_geom_partition_flag字段和gps_extension_flag字段。
gps_geom_parameter_set_id字段提供GPS的标识符,以供其它语法元素参考。
gps_seq_parameter_set_id字段指定用于活动SPS的sps_seq_parameter_set_id的值。
gps_box_present_flag字段指定是否在参考当前GPS的几何切片头中提供了附加边界框信息。例如,等于1的gps_box_present_flag字段可以指定在参考当前GPS的几何头中提供了附加边界框信息。因此,当gps_box_present_flag字段等于1时,GPS还可以包括gps_gsh_box_log2_scale_present_flag字段。
gps_gsh_box_log2_scale_present_flag字段指定是否在参考当前GPS的各个几何切片头中通知gps_gsh_box_log2_scale字段。例如,等于1的gps_gsh_box_log2_scale_present_flag字段可以指定在参考当前GPS的各个几何切片头中通知gps_gsh_box_log2_scale字段。作为另一示例,等于0的gps_gsh_box_log2_scale_present_flag字段可以指定在各个几何切片头中不通知gps_gsh_box_log2_scale字段并且在当前GPS的gps_gsh_box_log2_scale字段中通知所有切片的公共缩放。
当gps_gsh_box_log2_scale_present_flag字段等于0时,GPS还可以包括gps_gsh_box_log2_scale字段。
gps_gsh_box_log2_scale字段指示参考当前GPS的所有切片的边界框原点的公共缩放因子。
unique_geometry_points_flag字段指示在引用当前GPS的所有切片中所有输出点是否都在切片内具有唯一位置。例如,等于1的unique_geometry_points_flag字段指示在引用当前GPS的所有切片中所有输出点都在切片内具有唯一位置。等于0的unique_geometry_points_flag字段指示在引用当前GPS的所有切片中,输出点中的两个或更多个可以在切片内具有相同的位置。
geometry_planar_mode_flag字段指示平面编码模式是否被激活。例如,等于1的geometry_planar_mode_flag字段表示平面编码模式被激活。等于0的geometry_planar_mode_flag指示平面编码模式没有被激活。
当geometry_planar_mode_flag字段等于1时(即,真)时,GPS还可以包括geom_planar_mode_th_idcm字段、geom_planar_mode_th[1]字段和geom_planar_mode_th[2]字段。
geom_planar_mode_th_idcm字段可以指定直接编码模式的激活阈值的值。
geom_planar_mode_th[i]字段指定对于范围为0…2中的i,针对沿着针对平面编码模式的第i个最可能方向的平面编码模式的激活阈值的值是有效的。
geometry_angular_mode_flag字段指示角度编码模式是否启用。例如,当geometry_planar_mode_flag字段等于1时,其可以指示启用角度编码模式。当geometry_planar_mode_flag字段等于0时,其可以指示不启用角度编码模式。
当geometry_angular_mode_flag字段的值为1(即,真)时,GPS还可以包括lidar_head_position[0]字段、lidar_head_position[1]字段、lidar_head_position[2]字段、number_lasers字段、planar_buffer_disabled字段、implicit_qtbt_angular_max_node_min_dim_log2_to_split_z字段和implicit_qtbt_angular_max_diff_to_split_z字段。
lidar_head_position[0]字段、lidar_head_position[1]字段和lidar_head_position[2]字段可以表示lidar头在具有内部轴的坐标系中的(X,Y,Z)坐标。
number_lasers字段指示用于角度编码模式的激光器的数目。
根据实施方式,GPS包括迭代次数与number_lasers字段的值一样的迭代语句。在这种情况下,根据实施方式,i被初始化为0,并且每当执行迭代语句时递增1。迭代迭代语句,直到i的值变得等于number_lasers字段的值。该迭代语句可以包括laser_angle[i]字段和laser_correction[i]字段。
laser_angle[i]字段指示第i个激光器的仰角相对于由第0个和第1个内部轴限定的水平面的正切。
laser_correction[i]字段指示沿着第二内部轴的与lidar_head_position[2]字段相关的第i个激光位置的校正。
当planar_buffer_disabled字段等于1时,其指示在对平面模式下的平面模式标志字段和平面位置进行编码的过程中没有使用使用缓冲器来跟踪最近的节点。当planar_buffer_disabled字段等于0时,其指示使用缓冲器来跟踪最近的节点。
implicit_qtbt_angular_max_node_min_dim_log2_to_split_z字段指示节点大小的log2值,在该值以下,节点的水平切分优先于垂直切分。
implicit_qtbt_angular_max_diff_to_split_z字段指示对于节点而言所允许的最大垂直-水平节点大小比率的log2值。
等于0的neighbour_context_restriction_flag字段指示用由位于当前节点的父节点之内的邻近节点确定的上下文来对当前节点的几何节点占用进行编码。等于1的neighbour_context_restriction_flag字段指示用由位于当前节点的父节点内或外的邻近节点确定的上下文来对当前节点的几何节点占用进行编码。
inferred_direct_coding_mode_enabled_flag字段指示在几何节点语法中是否存在direct_mode_flag字段。例如,等于1的inferred_direct_coding_mode_enabled_flag字段指示在几何节点语法中可以存在direct_mode_flag字段。例如,等于0的inferred_direct_coding_mode_enabled_flag字段指示在几何节点语法中不存在direct_mode_flag字段。
bitwise_occupancy_coding_flag字段指示是否使用语法元素占用图的按位上下文化来对几何节点占用进行编码。例如,等于1的bitwise_occupancy_coding_flag字段指示使用语法元素occupancy_map的按位上下文化来对几何节点占用进行编码。例如,等于0的bitwise_occupancy_coding_flag字段指示使用字典编码的语法元素occupancy_byte来对几何节点占用进行编码。
adjacent_child_contextualization_enabled_flag字段指示邻近八叉树节点的相邻孩子是否用于按位占用上下文化。例如,等于1的adjacent_child_contextualization_enabled_flag字段指示邻近八叉树节点的相邻孩子用于按位占用上下文化。例如,等于0的adjacent_child_contextualization_enabled_flag字段指示邻近八叉树节点的孩子不用于占用上下文化。
log2_neighbour_avail_boundary字段指定解码处理中使用的变量NeighbAvailBoundary的值。例如,当neighbour_context_restriction_flag字段等于1时,NeighbAvailabilityMask可以被设置为等于1。例如,当neighbour_context_restriction_flag字段等于0时,NeighbAvailabilityMask可以被设置为等于1<<log2_neighbour_avail_boundary。
log2_intra_pred_max_node_size字段指定有资格占用帧内预测的八叉树节点大小。
log2_trisoup_node_size字段将变量TrisoupNodeSize指定为三角形节点的大小。
geom_scaling_enabled_flag字段指示在几何切片解码过程期间是否调用针对几何位置的缩放过程。例如,等于1的geom_scaling_enabled_flag字段指定在几何切片解码过程中调用针对几何位置的缩放过程。等于0的geom_scaling_enabled_flag指定几何位置不需要缩放。
geom_base_qp字段指定几何位置量化参数的基本值。
gps_implicit_geom_partition_flag字段指定是否针对序列或切片启用隐式几何分割。例如,等于1的gps_implicit_geom_partition_flag字段指定针对序列或切片启用隐式几何分割。等于0的gps_implicit_geom_partition_flag指定针对序列或切片禁用隐式几何分割。当gps_implicit_geom_partition_flag字段等于1时,通知以下两个字段,即,gps_max_num_implicit_qtbt_before_ot和gps_min_size_implicit_qtbt。
gps_max_num_implicit_qtbt_before_ot字段指定在OT分割之前隐式QT和BT分割的最大数目。然后,如下由gps_max_num_implicit_qtbt_before_ot字段初始化变量K:
K=gps_max_num_implicit_qtbt_before_ot。
gps_min_size_implicit_qtbt字段指定隐式QT和BT分割的最小大小。然后,如下由gps_min_size_implicit_qtbt字段初始化变量M:
M=gps_min_size_implicit_qtbt。
gps_extension_flag字段指定在GPS语法结构中是否存在gps_extension_data语法结构。例如,等于1的gps_extension_flag字段指定在GPS语法中存在gps_extension_data语法结构。例如,等于0的gps_extension_flag字段指定在GPS语法中不存在该语法结构。
当gps_extension_flag字段的值等于1时,根据实施方式的GPS还可以包括gps_extension_data_flag字段。
gps_extension_data_flag字段可以具有任何值。它的存在和值不影响解码器与配置资料的一致性。
图28示出了根据本公开的属性参数集(APS)(attribute_parameter_set())的语法结构的实施方式。根据实施方式的APS可以包含对一个或更多个切片中所包含的点云数据有关的属性信息进行编码的方法的信息。
根据实施方式的APS可以包括aps_attr_parameter_set_id字段、aps_seq_parameter_set_id字段、attr_coding_type字段、aps_attr_initial_qp字段、aps_attr_chroma_qp_offset字段、aps_slice_qp_delta_present_flag字段和aps_extension_flag字段。
aps_attr_parameter_set_id字段提供APS的标识符以供其它语法元素参考。
aps_seq_parameter_set_id字段指定活动SPS的sps_seq_parameter_set_id的值。
attr_coding_type字段指示属性的编码类型。
图29是示出了分配给attr_coding_type字段的示例性属性编码类型的表。
在该示例中,等于0的attr_coding_type字段指示预测权重提升作为编码类型。等于1的attr_coding_type字段指示RAHT为编码类型。等于2的attr_coding_type字段指示固定权重提升。
aps_attr_initial_qp字段为引用APS的各个切片指定变量SliceQp的初始值。
aps_attr_chroma_qp_offset字段指定相对于由句法aps_attr_initial_qp通知的初始量化参数的偏移。
aps_slice_qp_delta_present_flag字段指定属性切片头(ASH)中是否存在ash_attr_qp_delta_luma和ash_attr_qp_delta_chroma语法元素。例如,等于1的aps_slice_qp_delta_present_flag字段指定ASH中存在ash_attr_qp_delta_luma和ash_attr_qp_delta_chroma语法元素。例如,aps_slice_qp_delta_present_flag字段指定ASH中不存在ash_attr_qp_delta_luma和ash_attr_qp_delta_chroma语法元素。
当attr_coding_type字段的值为0或2时,即,当编码类型是预测权重提升或固定权重提升时,根据实施方式的APS还可以包括lifting_num_pred_nearest_neighbours_minus1字段、lifting_search_range_minus1字段和lifting_neighbour_bias[k]字段。
lifting_num_pred_nearest_neighbours_minus1字段加1指定将要用于预测的最近邻近点的最大数目。根据实施方式,NumPredNearedtNeighbours的值被设置为等于lifting_num_pred_nearest_neighbours_minus1字段的值。
lifting_search_range_minus1字段加1指定用于确定将要用于预测的最近邻近点并建立基于距离的细节级别的搜索范围。可以通过将lifting_search_range_minus1字段的值加1(LiftingSearchRange=lifting_search_range_minus1+1)来获取用于指定搜索范围的变量LiftingSearchRange。
lifting_neighbour_bias[k]字段指定偏置,其用于在作为最近邻近推导过程的部分的两个点之间的欧几里得距离计算中对第k个分量进行加权。
根据实施方式,当attr_coding_type字段的值为2时,即,当编码类型指示固定权重提升时,APS还可以包括lifting_scalability_enabled_flag字段。
lifting_scalability_enabled_flag字段指定属性解码过程是否允许针对输入几何点的修剪后的八叉树解码结果。例如,等于1的lifting_scalability_enabled_flag字段指定属性解码过程允许针对输入几何点的修剪后的八叉树解码结果。等于0的lifting_scalability_enabled_flag字段指定属性解码过程需要针对输入几何点的完整八叉树解码结果。
当lifting_scalability_enabled_flag字段的值为假时,根据实施方式的APS还可以包括lifting_num_detail_levels_minus1字段。
lifting_num_detail_levels_minus1字段加1指定属性编码的细节级别的数目。可以通过将lifting_num_detail_levels_minus1字段的值加1(LevelDetailCount=lifting_num_detail_levels_minus1+1)来获取用于指定LOD的数目的变量LevelDetailCount。
根据实施方式,当lifting_num_detail_levels_minus1字段的值大于1时,APS还可以包括lifting_lod_regular_sampling_enabled_flag字段。
lifting_lod_regular_sampling_enabled_flag字段指示是否通过常规采样策略来构建LOD。例如,等于1的lifting_lod_regular_sampling_enabled_flag字段的值指定使用常规采样策略来构建LOD,并且等于0的lifting_lod_regular_sampling_enabled_flag字段的值指定替代地使用基于距离的采样策略。
当lifting_scalability_enabled_flag字段的值为假时,根据实施方式的APS可以包括迭代次数与lifting_num_detail_levels_minus1字段的值一样的迭代语句。在实施方式中,索引(idx)被初始化为0,并在每次执行迭代语句时递增1,并且重复该迭代语句,直到索引(idx)大于lifting_num_detail_levels_minus1字段的值。当lifting_lod_regular_sampling_enabled_flag字段的值为真(例如,1)时,迭代语句可以包括lifting_sampling_period_minus2[idx]字段,并且当lifting_lod_regular_sampling_enabled_flag字段的值为假(例如,0)时,迭代语句可以包括lifting_sampling_distance_squared_scale_minus1[idx]字段。此外,当idx的值不为0(即,idx!=0)时,APS还可以包括lifting_sampling_distance_squared_offset[idx]字段。
lifting_sampling_period_minus2[idx]字段加2指定细节级别idx的采样周期。
lifting_sampling_distance_squared_scale_minus1[idx]字段加1指定用于针对LOD idx推导采样距离的平方的缩放因子。
lifting_sampling_distance_squared_offset[idx]字段指定针对LOD idx的采样距离的平方。
当attr_coding_type字段的值为0时,即,当编码类型是预测权重提升时,根据实施方式的APS还可以包括lifting_adaptive_prediction_threshold字段、lifting_intra_lod_prediction_num_layers字段、lifting_max_num_direct_predictors字段和inter_component_prediction_enabled_flag字段。
lifting_adaptive_prediction_threshold字段指定用于启用自适应预测的阈值。根据实施方式,指定用于切换自适应预测器选择模式的阈值的变量AdaptivePredictionThreshold被设置为等于lifting_adaptive_prediction_threshold字段的值(AdaptivePredictionThreshold=lifting_adaptive_prediction_threshold)。
lifting_intra_lod_prediction_num_layers字段指定可以参考同一LOD层中的解码点以生成目标点的预测值的LOD层的数目。例如,等于变量LevelDetailCount的值的lifting_intra_lod_prediction_num_layers字段指示对于所有LOD层,目标点都可以参考同一LOD层中的解码点。例如,等于0的lifting_intra_lod_prediction_num_layers字段指示对于任何LoD层,目标点都不能参考同一LoD层中的解码点。lifting_max_num_direct_predictors字段指定将用于直接预测的预测器的最大数目。lifting_max_num_direct_predictors的值应当在0至LevelDetailCount的范围内。
inter_component_prediction_enabled_flag字段指定是否使用多分量属性的主要分量来预测非主要分量的重构值。例如,如果inter_component_prediction_enabled_flag字段等于1,则指定使用多分量属性的主要分量来预测非主要分量的重构值。等于0的inter_component_prediction_enabled_flag字段指定所有属性分量都被独立重构。
当attr_coding_type字段的值为1时,即,当属性编码类型是RAHT时,根据实施方式的APS还可以包括raht_prediction_enabled_flag字段。
raht_prediction_enabled_flag字段指定在RAHT解码过程中是否启用来自邻近点的变换权重预测。例如,等于1的raht_prediction_enabled_flag字段指定在RAHT解码过程中启用来自邻近点的变换权重预测。等于0的raht_prediction_enabled_flag字段指定在RAHT解码过程中禁用变换权重预测。
根据实施方式,当raht_defediction_enabled_flag字段的值为真时,APS还可以包括raht_prediction_threshold0字段和raht_prediction_threshold1字段。
raht_prediction_threshold0字段指定用于结束来自邻近点的变换权重预测的阈值。
raht_prediction_threshold1字段指定用于跳过来自邻近点的变换权重预测的阈值。
aps_extension_flag字段指定在APS句法结构中是否存在aps_extension_data句法结构。例如,等于1的aps_extension_flag字段指定在APS句法结构中存在aps_extension_data句法结构。例如,等于0的aps_extension_flag字段指定在APS句法结构中不存在该句法结构。
当aps_extension_flag字段的值为1时,根据实施方式的APS还可以包括aps_extension_data_flag字段。
aps_extension_data_flag字段可以具有任何值。它的存在和值不影响解码器与配置资料的一致性。
图30示出了根据本公开的图块库(tile_inventory())的句法结构的实施方式。根据实施方式,图块库可以被称为图块参数集(TPS)。
根据实施方式的图块库包括tile_frame_idx字段和num_tiles_minus1字段。
tile_frame_idx字段指定与图块库关联的关联点云帧的标识符。
num_tiles_minus字段加1指定图块库中呈现的图块边界框的数目。
根据实施方式的图块库包括重复与num_tiles_minus1字段的值一样的次数的迭代语句。在实施方式中,i被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句,直到i的值变得等于num_tiles_minus1字段的值。迭代语句可以包括tile_bounding_box_offset_x[i]字段、tile_bounding_box_offset_y[i]字段、tile_bounding_box_offset_z[i]字段、tile_bounding_box_size_width[i]字段、tile_bounding_box_size_height[i]和tile_bounding_box_size_depth[i]字段。
tile_bounding_box_offset_x[i]字段指示笛卡尔坐标中第i图块的x偏移。当不存在时,tile_bounding_box_offset_x[0]的值被推断为sps_bounding_box_offset_x。
tile_bounding_box_offset_y[i]字段指示笛卡尔坐标中第i图块的y偏移。当不存在时,tile_bounding_box_offset_y[0]的值被推断为sps_bounding_box_offset_y。
tile_bounding_box_offset_z[i]字段指示笛卡尔坐标中第i图块的z偏移。当不存在时,tile_bounding_box_offset_z[0]的值被推断为sps_bounding_box_offset_z。
tile_bounding_box_size_width[i]字段指示笛卡尔坐标中第i图块的宽度。当不存在时,tile_bounding_box_size_width[0]的值被推断为sps_bounding_box_size_width。
tile_bounding_box_size_height[i]字段指示笛卡尔坐标中第i图块的高度。当不存在时,tile_bounding_box_size_height[0]的值被推断为sps_bounding_box_size_height。
tile_bounding_box_size_depth[i]字段指示笛卡尔坐标中第i图块的深度。当不存在时,tile_bounding_box_size_depth[0]的值被推断为sps_bounding_box_size_depth。
图31示出了根据本公开的帧边界标记()的句法结构的实施方式,其中,句法结构内部是空的。
图32示出了根据本公开的几何切片比特流()的句法结构的实施方式。
根据实施方式的几何切片比特流(geometry_slice_bitstream())可以包括几何切片头(geometry_slice_header())和几何切片数据(geometry_slice_data())。几何切片比特流可以被称为几何切片。另外,属性切片比特流可以被称为属性切片。
图33示出了根据本公开的几何切片头(geometry_slice_header())的句法结构的实施方式。
根据实施方式的由发送装置发送的比特流(或由接收装置接收的比特流)可以包含一个或更多个切片。各个切片可以包括几何切片和属性切片。几何切片包括几何切片头(GSH)。属性切片包括属性切片头(ASH)。
根据实施方式的几何切片头(geometry_slice_header())可以包括gsh_geometry_parameter_set_id字段、gsh_tile_id字段、gsh_slice_id字段、frame_idx字段、gsh_num_points字段和byte_alignment()字段。
当GPS中所包括的gps_box_present_flag字段的值为“真”(例如,1)并且gps_gsh_box_log2_scale_present_flag字段的值为“真”(例如,1)时,根据实施方式的几何切片头(geometry_slice_header())还可以包括gsh_box_log2_scale字段、gsh_box_origin_x字段、gsh_box_origin_y字段和gsh_box_origin_z字段。
gsh_geometry_parameter_set_id字段指定活动GPS的gps_geom_parameter_set_id的值。
gsh_tile_id字段指定由GSH参考的图块id的值。
gsh_slice_id字段指定由其它句法元素参考的切片的id。
frame_idx字段指定名义帧编号计数器的log2_max_frame_idx+1个最低有效位。具有不同frame_idx值的连续切片形成不同输出点云帧的部分。具有相同frame_idx值而没有中间的帧边界标记数据单元的连续切片形成相同一输出点云帧的部分。
gsh_num_points字段指定对应切片内的编码后的点的最大数目。比特流符合性的要求是,gsh_num_points字段的值大于或等于切片中解码后的点的数目。
gsh_box_log2_scale字段指定用于切片的边界框原点的缩放因子。
gsh_box_origin_x字段指定按gsh_box_log2_scale字段的值缩放的边界框原点的x值。
gsh_box_origin_y字段指定按gsh_box_log2_scale字段的值缩放的边界框原点的y值。
gsh_box_origin_z字段指定按gsh_box_log2_scale字段的值缩放的边界框原点的z值。
在这种情况下,可以如下地推导变量slice_origin_x、slice_origin_y和slice_origin_z。
如果gps_gsh_box_log2_scale_present_flag字段等于0,则originScale被设置为等于gsh_box_log2_scale。
如果gps_gsh_box_log2_scale_present_flag字段等于1,则originScale被设置为等于gps_gsh_box_log2_scale。
如果gps_box_present_flag字段等于0,则变量slice_origin_x、slice_origin_y和slice_origin_z的值被推断为0。
如果gps_box_present_flag字段等于1,则下式将应用于变量slice_origin_x、slice_origin_y和slice_origin_z。
slice_origin_x=gsh_box_origin_x<<originScale
slice_origin_y=gsh_box_origin_y<<originScale
slice_origin_z=gsh_box_origin_z<<originScale
当gps_implicit_geom_partition_flag字段的值为“真”(即,0)时,几何切片头(geometry_slice_header())还可以包括gsh_log2_max_nodesize_x字段、gsh_log2_max_nodesize_y_minus_x字段和gsh_log2_max_nodesize_z_minus_y字段。当gps_implicit_geom_partition_flag字段的值为“假”(即,1)时,几何切片头还可以包括gsh_log2_max_nodesize字段。
gsh_log2_max_nodesize_x字段指定x维度上的边界框大小,即,如下在解码过程中使用的MaxNodesizeXLog2。
MaxNodeSizeXLog2=gsh_log2_max_nodesize_x
MaxNodeSizeX=1<<MaxNodeSizeXLog2
gsh_log2_max_nodesize_y_minus_x字段指定y维度上的边界框大小,即,如下在解码过程中使用的MaxNodesizeYLog2。
MaxNodeSizeYLog2=gsh_log2_max_nodesize_y_minus_x+MaxNodeSizeXLog2。
MaxNodeSizeY=1<<MaxNodeSizeYLog2。
gsh_log2_max_nodesize_z_minus_y字段指定z维度上的边界框大小,即,如下在解码过程中使用的MaxNodesizeZLog2。
MaxNodeSizeZLog2=gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeYLog2
MaxNodeSizeZ=1<<MaxNodeSizeZLog2
当gps_implicit_geom_partition_flag字段的值为1时,如下地获得gsh_log2_max_nodesize字段:
gsh_log2_max_nodesize=max{MaxNodeSizeXLog2,MaxNodeSizeYLog2,MaxNodeSizeZLog2}
gsh_log2_max_nodesize字段指定当gps_implicit_geom_partition_flag字段等于0时根几何八叉树节点的大小。
这里,如下地推导变量MaxNodeSize和MaxGeometryOctreeDepth。
MaxNodeSize=1<<gsh_log2_max_nodesize
MaxGeometryOctreeDepth=gsh_log2_max_nodesize-log2_trisoup_node_size
当geom_scaling_enabled_flag字段的值为“真”时,根据实施方式的几何切片头(geometry_slice_header())还可以包括geom_slice_qp_offset字段和geom_octree_qp_offsets_enabled_flag字段。
geom_slice_qp_offset字段指定相对于基本几何量化参数geom_base_qp的偏移。
geom_octree_qp_offsets_enabled_flag字段指定在几何切片头中是否存在geom_octree_qp_ofsets_depth字段。例如,等于1的geom_octree_qp_offsets_enabled_flag字段指定在几何切片头中存在geom_octree_qp_ofsets_depth字段。等于0的geom_octree_qp_offsets_enabled_flag字段指定不存在geom_octree_qp_offsets_depth字段。
geom_octree_qp_offsets_depth字段指定几何八叉树的深度。
图34示出了根据本公开的几何切片数据(geometry_slice_data())的句法结构的实施方式。根据实施方式的几何切片数据(geometry_slice_data())可以携带属于相应切片的几何比特流。
根据实施方式的geometry_slice_data()可以包括重复与MaxGeometryOctreeDepth的值一样的次数的第一迭代语句。在实施方式中,每次执行迭代语句时,深度被初始化为0并递增1,并且重复第一迭代语句,直到深度变得等于MaxGeometryOctreeDepth。第一迭代语句可以包括重复与NumNodesAtDepth的值一样的次数的第二迭代语句。在实施方式中,nodeidx被初始化为0,并且每次执行迭代语句时递增1。重复第二次迭代语句,直到nodeidx变得等于NumNodesAtDepth。第二迭代语句可以包括xN=NodeX[depth][nodeIdx],yN=NodeY[depth][nodeIdx],zN=NodeZ[depth][nodeIdx]和geometry_node(depth,nodeIdx,xN,yN,zN)。MaxGeometryOctreeDepth指示几何八叉树深度的最大值,并且NumNodesAtDepth[depth]指示将在相应深度处解码的节点的数目。变量NodeX[depth][nodeIdx]、NodeY[depth][nodeIdx]和NodeZ[depth][nodeIdx]指示在给定深度处按解码顺序的第Idx节点的x、y、z坐标。深度的节点的几何比特流通过geometry_node(depth,nodeIdx,xN,yN,zN)发送。
当log2_trisoup_node_size字段的值大于0时,根据实施方式的几何切片数据(geometry_slice_data())还可以包括geometry_trisoup_data()。即,当三角形节点的大小大于0时,经历trisoup几何编码的几何比特流通过geometry_trisoup_data()发送。
图35示出了根据本公开的attribute_slice_bitstream()的句法结构的实施方式。
根据实施方式的属性切片比特流(attribute_slice_bitstream())可以包括属性切片头(attribute_slice_header())和属性切片数据(attribute_slice_data())。
图36示出了根据本公开的属性切片头(attribute_slice_header())的句法结构的实施方式。
根据实施方式的属性切片头(attribute_slice_header())可以包括ash_attr_parameter_set_id字段、ash_attr_sps_attr_idx字段、ash_attr_geom_slice_id字段、ash_attr_layer_qp_delta_present_flag字段和ash_attr_region_qp_delta_present_flag字段。
当APS的aps_slice_qp_delta_present_flag字段的值为“真”(例如,1)时,attribute_slice_header()可以还包括ash_attr_qp_delta_luma字段,当attribute_dimension_minus1[ash_attr_sps_attr_idx]字段的值大于0时,attribute_slice_header()可以还包括ash_attr_qp_delta_chroma字段。
ash_attr_parameter_set_id字段指定当前活动APS的aps_attr_parameter_set_id字段的值。
ash_attr_sps_attr_idx字段指定当前活动SPS中的属性集。
ash_attr_geom_slice_id字段指定当前几何切片头的gsh_slice_id字段的值。
ash_attr_qp_delta_luma字段指定从活动属性参数集中的初始切片qp推导出的亮度增量量化参数(qp)。
ash_attr_qp_delta_chroma字段指定从活动属性参数集中的初始切片qp推导出的色度增量qp。
如下地推导变量InitialSliceQpY和InitialSliceQpC。
InitialSliceQpY=aps_attrattr_initial_qp+ash_attr_qp_delta_luma
InitialSliceQpC=aps_attrattr_initial_qp+aps_attr_chroma_qp_offset+ash_attr_qp_delta_chroma
ash_attr_layer_qp_delta_present_flag字段指示在针对各个层的属性切片头(ASH)中是否存在ash_attr_layer_qp_delta_luma字段和ash_attr_layer_qp_delta_chroma字段。例如,等于1的ash_attr_layer_qp_delta_present_flag字段指示ASH中存在ash_attr_layer_qp_delta_luma字段和ash_attr_layer_qp_delta_chroma字段。等于0的ash_attr_layer_qp_delta_present_flag字段指示ASH中不存在ash_attr_layer_qp_delta_luma字段和ash_attr_layer_qp_delta_chroma字段。
当ash_attr_layer_qp_delta_present_flag字段的值为真时,属性切片头还可以包括ash_attr_num_layer_qp_minus1字段。
ash_attr_num_layer_qp_minus1加1指示通知ash_attr_qp_delta_luma字段和ash_attr_qp_delta_chroma字段的层的数目。当不通知ash_attr_num_layer_qp字段时,ash_attr_num_layer_qp字段的值将为0。根据实施方式,可以通过将0与ash_attr_num_layer_qp_minus1字段的值相加(NumLayerQp=ash_attr_num_layer_qp_minus1+1)来获得指定层数目的NumLayerQp。
根据实施方式,当ash_attr_layer_qp_delta_present_flag字段的值为真时,几何切片头可以包括根据NumLayerQp的值的迭代语句。在这种情况下,根据实施方式,i被初始化为0,并且每当执行迭代语句时递增1。迭代迭代语句,直到i的值变得等于NumLayerQp的值。该迭代语句包括ash_attr_layer_qp_delta_luma[i]字段。另外,当attribute_dimension_minus1[ash_attr_sps_attr_idx]字段的值大于0时,迭代语句还可以包括ash_attr_layer_qp_delta_chroma[i]字段。
ash_attr_layer_qp_delta_luma字段指示在各个层中来自InitialSliceQpY的亮度增量量化参数(qp)。
ash_attr_layer_qp_delta_chroma字段指示在各个层中来自InitialSliceQpC的色度增量qp。
如下地推导变量SliceQpY[i]和SliceQpC[i],其中,i=0,…,NumLayerQPNumQPLayer-1。
for(i=0;i<NumLayerQPNumQPLayer;i++){
SliceQpY[i]=InitialSliceQpY+ash_attr_layer_qp_delta_luma[i]
SliceQpC[i]=InitialSliceQpC+ash_attr_layer_qp_delta_chroma[i]
}
当ash_attr_region_qp_delta_present_flag字段的值等于1时,根据实施方式的属性切片头(attribute_slice_header())指示在当前属性切片头中存在ash_attr_region_qp_delta、区域边界框原点和大小。等于0的ash_attr_region_qp_delta_present_flag字段指示在当前ASH中不存在ash_attr_region_qp_delta、区域边界框原点和大小。
换言之,当ash_attr_layer_qp_delta_present_flag字段等于1时,属性切片头还可以包括ash_attr_qp_region_box_origin_x字段、ash_attr_qp_region_box_origin_y字段、ash_attr_qp_region_box_origin_z字段、ash_attr_qp_region_box_width字段、ash_attr_qp_region_box_height字段、ash_attr_qp_region_box_depth字段和ash_attr_region_qp_delta字段。
ash_attr_qp_region_box_origin_x字段指示区域边界框相对于slice_origin_x的x偏移。
ash_attr_qp_region_box_origin_y字段指示区域边界框相对于slice_origin_y的y偏移。
ash_attr_qp_region_box_origin_z字段i指示区域边界框相对于slice_origin_z的z偏移。
ash_attr_qp_region_box_size_width字段指示区域边界框的宽度。
ash_attr_qp_region_box_size_height字段指示区域边界框的高度。
ash_attr_qp_region_box_size_depth字段指示区域边界框的深度。
ash_attr_region_qp_delta字段指定所指定区域的SliceQpY[i]和SliceQpC[i]中的增量qp。
根据实施方式,指定区域框增量量化参数的变量RegionboxDeltaQp被设置为等于ash_attr_region_qp_delta字段的值(RegionboxDeltaQp=ash_attr_region_qp_delta)。
图37示出了根据本公开的实施方式的属性切片头(attribute_slice_data())的句法结构。属性切片数据(attribute_slice_data())可以携带属于对应切片的属性比特流。属性切片数据可以包括与点云的部分或全部相关的属性或属性相关数据。
在图37中,zerorun字段指定predIndex或残差之前0的数目。
另外,predIndex[i]字段指定用于解码属性的第i点的值的预测器索引。predIndex[i]字段的值范围从0至max_num_predictors字段的值。
如上所述,从发送处理器51005输出的点云数据的比特流可以包括SPS、GPS、一个或更多个APS、图块库和一个或更多个切片。一个或更多个切片可以包括几何切片、一个或更多个属性切片以及一个或更多个元数据切片。根据实施方式的几何切片由几何切片头和几何切片数据组成,并且各个属性切片包括属性切片头和属性切片数据。各个元数据切片包括元数据切片头和元数据切片数据。例如,在图18的点云发送装置中,几何切片结构、属性切片结构和元数据切片结构可以分别由几何编码器51003、属性编码器51004和信令处理器51002生成,可以由发送处理器51005生成,或者可以使用单独的模块/部件生成。
图38示出了根据本公开的metadata_slice_bitstream()的句法结构的实施方式。
根据实施方式的元数据切片比特流(metadata_slice_bitstream())可以包括元数据切片头(metadata_slice_header())和元数据切片数据(metadata_slice_data())。
图39示出了根据本公开的元数据切片头(metadata_slice_header())的句法结构的实施方式。
根据实施方式的元数据切片头(metadata_slice_header())可以包括msh_slice_id字段、msh_geom_slice_id字段、msh_attr_id字段和msh_attr_slice_id字段。
msh_slice_id字段指示用于标识元数据切片比特流的标识符。
msh_geom_slice_id字段指示用于标识与元数据切片中携带的元数据相关的几何切片的标识符。
msh_attr_id字段指示用于标识与元数据切片中携带的元数据相关的属性的标识符。
msh_attr_slice_id字段指示用于标识与元数据切片中携带的元数据相关的属性切片的标识符。
图40示出了根据本公开的实施方式的元数据切片数据(metadata_slice_data())的句法结构。
元数据切片数据(metadata_slice_data())包括元数据比特流(metadata_bitstream()),其包含元数据切片。
根据实施方式的元数据切片比特流的元数据切片头和/或元数据切片数据可以包括关于点云数据的元数据(例如,设置值)或诸如图块和切片这样的3D块相关信息。
根据实施方式,编码后的点云数据的比特流包括如图21至图40中所示的参数集(例如,SPS、GPS、APS、图块库)、一个或更多个几何切片(或几何切片比特流)、一个或更多个属性切片(或属性切片比特流)、和/或一个或更多个元数据切片(或元数据切片比特流)。
根据本公开的实施方式,点云数据的比特流被配置为由TLV(类型-长度-值)结构的序列构成的G-PCC比特流。本公开中的TLV结构可以被称为TLV封装结构、G-PCC TLV封装结构或G-PCC TLV结构。根据实施方式,G-PCC比特流包括携带参数集、编码后的几何比特流(或被称为几何切片)以及零个或更多个编码后的属性比特流(或被称为属性切片)的TLV封装结构。即,根据类型信息,各个TLV结构可以包括序列参数集、几何参数集、属性参数集、几何切片、属性切片和元数据切片中的一个。在一个实施方式中,由TLV封装结构构成的G-PCC比特流可以被直接发送到接收方。在另一实施方式中,由TLV封装结构构成的G-PCC比特流可以由图14、图15或图18的文件/段封装器封装到文件/段中并被发送到接收方。
根据实施方式,发送处理器51005或文件/段封装器51006或单独的模块/部件可以生成包括编码几何图形比特流、零个或更多个编码后的属性比特流和/或参数集的TLV封装结构。本公开中的G-PCC比特流由TLV封装结构构成。
图41示出了根据实施方式的TLV封装结构的示例。各个TLV封装结构由TLV类型、TLV长度和TLV载荷组成。在本公开中,TLV类型可以被称为关于TLV载荷的类型信息,TLV长度可以被称为关于TLV载荷的长度信息,并且TLV载荷可以被称为载荷(或载荷字节)。根据实施方式,通过关于TLV载荷的类型信息来区分TLV载荷中所包含的数据。另外,通过关于TLV载荷的长度信息来指示TLV载荷的长度。TLV封装结构的TLV载荷可以包括SPS、GPS、一个或更多个APS、图块库、几何切片、一个或更多个属性切片以及一个或更多个元数据切片。根据实施方式,根据关于TLV载荷的类型信息,各个TLV封装结构的TLV载荷可以包含SPS、GPS、一个或更多个APS、图块库、几何切片、一个或更多个属性切片和一个或更多个元数据切片中的一个。
SPS中所包含的信息可以包括图24的SPS中所包含的部分或全部信息,并且为了细节,相应地参照对图24的描述。图块库中所包含的信息可以包括图30的图块库中所包含的部分或全部信息,并且为了细节,相应地参照对图30的描述。GPS中所包含的信息可以包括图27的GPS中所包含的部分或全部信息,并且为了细节,相应地参照对图27的描述。APS中所包含的信息可以包括图28的APS中所包含的部分或全部信息,并且为了细节,相应地参照对图28的描述。
至于几何切片的细节,请参照对图32至图34的描述。至于属性切片的细节,请参照对图35至图37的描述。
接收器可以使用元数据来解码几何或属性切片,或渲染重构的点云。根据实施方式,元数据可以被包含G-PCC比特流中。
例如,当如图2或图14中所示点云根据观看方向(或视口)而具有不同的颜色值时,元数据可以是与点云的属性值当中的关于每种颜色的信息关联的观看方位(或视口)。例如,在构成点云的点从(0,0,0)观看时显示的颜色与从(0,90,0)观看时显示的颜色不同地渲染的情况下,可以存在与各个点关联的两种颜色信息。另外,为了在渲染操作中根据用户的观看方位(或视口)来渲染适当的颜色信息,应该发送与对应的颜色信息关联的观看方位(或视口)。为此,各个元数据切片可以包含一个或更多个观看方位(或视口),并可以包含关于切片的信息,该切片包括与其关联的属性信息。
由此,播放器可以根据用户的观看方位(或视口)基于适当元数据切片中所包含的信息来寻找关联的属性切片,对其进行解码,并基于解码结果来执行渲染。相应地,可以渲染和提供根据用户的观看方位(视口)的属性值。
图42示出了根据实施方式的tlv_encapsulation()的示例性句法结构。在实施方式中,图42的tlv_enlucation()包括tlv_type字段、tlv_num_payload_bytes字段和tlv_payload_byte字段。
tlv_type字段指示tlv_payload_byte字段中所包含的数据的类型。
tlv_num_payload_bytes字段指示tlv_payload_byte字段的长度。
tlv_payload_byte字段重复与tlv_num_payload_bytes字段的值一样的次数,并包含由tlv_type字段指示的数据。
在一个实施方式中,tlv_type字段对应于图41的TLV类型,tlv_num_payload_bytes字段对应于图41的TLV长度,并且tlv_payload_byte字段对应于图41的TLV载荷。
图43示例性示出了根据实施方式的分配给tlv_type字段的TLV封装结构的载荷类型。
参照图43,在一个实施方式中,等于0的tlv_type字段指示TLV封装结构的载荷中所包含的数据是序列参数集。等于1的tlv_type字段指示数据是几何参数集。等于2的tlv_type字段指示数据是几何切片。等于3的tlv_type字段指示数据是属性参数集。等于4的tlv_type字段指示数据是属性切片。等于5的tlv_type字段指示数据是图块库(或图块参数集)。等于6的tlv_type字段指示数据是帧边界标记。等于7的tlv_type字段指示数据是元数据切片。根据实施方式的几何切片包含独立于另一切片来解码的几何数据。根据实施方式的属性切片包含独立于另一切片来解码的属性数据。根据实施方式的元数据切片包含独立于另一切片来解码的元数据。
本领域的技术人员可以容易地改变指派给tlv_type字段的值的含义、顺序、删除、添加等,因此本发明将不限于上述实施方式。
在实施方式中,TLV封装结构的载荷符合高效视频编码(HEVC)网络抽象层(NAL)单元的格式。
如上所述,由TLV封装结构构成的G-PCC比特流可以原样地被发送到接收方,或者可以以文件/段的形式被封装并由图14、图15或图18的文件/段封装器发送到接收方。
根据实施方式,可以由图14、图15或图18的发送装置的文件/段封装器将G-PCC比特流封装到文件中并发送该文件。根据实施方式,可以由图14、图16或图20的接收装置的文件/段解封装器将文件解封装为G-PCC比特流。
例如,可以由图14、图15或图18的文件/段封装器将由携带参数集、几何切片(或被称为编码后的几何比特流)和零个或更多个属性切片(或被称为编码后的属性比特流)的TLV封装结构组成的G-PCC比特流封装在基于ISOBMFF(ISO基本媒体文件格式)的文件格式中。
在这种情况下,根据实施方式,由TLV封装结构组成的G-PCC比特流可以被存储在基于ISOBMFF的文件中的单个轨道或多个轨道中。
根据实施方式,基于ISOBMFF的文件可以被称为容器(container)、容器文件、媒体文件、G-PCC文件等。具体地,文件可以由可以被称为ftyp、moov或mdat的盒和/或信息构成。
ftyp盒(文件类型盒)可以提供与对应文件的文件类型或文件兼容性相关的信息。接收器可以通过参照ftyp盒来识别文件。
Mdat盒被称为媒体数据盒,并包含实际的媒体数据。根据实施方式,几何切片(或被称为编码后的几何比特流)和零个或更多个属性切片(或被称为编码后的属性比特流)被包括在文件中的mdat盒的样本中。根据实施方式,样本可以被称为G-PCC样本。
也被称为电影盒的moov盒可以包含关于文件的媒体数据的元数据。例如,其可以包含解码和播放对应媒体数据所必需的信息,并可以包括关于文件的轨道和样本的信息。moov盒可以用作所有元数据的容器。moov盒可以是元数据相关盒当中的最高层的盒。
根据实施方式,moov盒包括提供与文件的轨道相关的信息的trak盒。trak盒包括提供对应轨道的媒体信息的mdia盒(MediaBox)和用于在轨道和与轨道对应的文件的样本之间进行参考的对应的轨道参考容器(tref)盒。
mdia盒可以包括提供关于对应媒体数据的信息的媒体信息容器(minf)盒和指示流的类型的处理程序(hdlr)盒(HandlerBox)。
minf盒可以包括提供与mdat盒的样本相关的元数据的样本表(stbl)盒。
stbl盒可以包括提供关于所采用的编码类型的信息和编码类型所必需的初始化信息的样本描述(stsd)盒。
根据实施方式,stsd盒可以包括针对轨道的样本条目。
根据实施方式,诸如序列参数集、几何参数集、属性参数集和图块库这样的信令信息(或元数据)可以被包含在文件中的moov盒的样本条目或mdat盒的样本中。
在本公开中,文件中的G-PCC比特流的轨道携带部分或全部可以被称为G-PCC轨道。根据实施方式,G-PCC轨道可以被定义为携带几何切片(或被称为编码后的几何比特流)或属性切片(或被称为编码后的属性比特流)或几何切片和属性切片二者的体视觉轨道。
根据实施方式,可以通过mdia盒(MediaBox)的hdlr盒(HandlerBox)中的体视觉媒体处理程序类型“volv”和/或mdia盒(MediaBox)的minf盒中的体视觉媒体头部(vvhd)来标识体视觉轨道。minf盒被称为媒体信息容器或媒体信息盒。minf盒被包括在mdia盒中。mdia盒被包括在trak盒中。trak盒被包括在文件的moov盒中。在文件中可以存在单个体视觉轨道或多个体视觉轨道。
根据实施方式,体视觉轨道可以使用MediaInformationBox中的VolumetricVisualMediaHeaderBox。MediaInformationBox被称为minf盒,并且VolumetricVisualMediaHeaderBox被称为vvhd盒。根据实施方式,可以如下地定义体视觉媒体头部(vvhd)盒。
盒类型:“vvhd”
容器:MediaInformationBox
强制性:是
数量:严格一个
下面示出了根据实施方式的体视觉媒体头部盒(即,vvhd类型盒)的句法。
aligned(8)class VolumetricVisualMediaHeaderBox
extends FullBox(‘vvhd’,version=0,1){
}
在以上的句法中,version字段可以具有指示盒版本的整数值。
根据实施方式,体视觉轨道可以如下使用VolumetricVisualSampleEntry以发送信令信息。
class VolumetricVisualSampleEntry(codingname)extends SampleEntry(codingname){
unsigned int(8)[32]compressorname;
//other boxes from derived specifications
在以上的句法中,compressorname字段指示出于提供信息目的的压缩器的名称。
根据实施方式,VolumetricVisualSampleEntry所继承的样本条目(即,VolumetricVisualSampleEntry的上级类)包括GPCC解码器配置盒(GPCCConfigurationBox)。
根据实施方式,GPCCConfigurationBox可以包含如下的GPCCDecoderConfigurationRecord()。
class GPCCConfigurationBox extends Box(‘gpcC'){
GPCCDecoderConfigurationRecord()GPCCConfig;
}
根据实施方式,GPCCDecoderConfigurationRecord()提供针对基于几何的点云内容的G-PCC解码器配置信息。
根据实施方式,可以如下地定义GPCCDecoderConfigurationRecord()的句法。
aligned(8)class GPCCDecoderConfigurationRecord{
unsigned int(8)configurationVersion=1;
unsigned int(8)profile_idc;
unsigned int(24)profile_compatibility_flags
unsigned int(8)level_idc;
unsigned int(8)numOfSetupUnitArrays;
for(i=0;i<numOfSetupUnitArrays;i++){
unsigned int(7)SetupUnitType;
bit(1)SetupUnit completeness;
unsigned int(8)numOfSepupUnit;
for(i=0;numOfSepupUnit;i++){
tlv_encapsulation setupUnit;
}
}
//additional fields
}
configurationVersion是版本字段。对记录的不兼容更改由版本号的更改指示。另外,对该记录的兼容扩展将扩展该字段,并且不会更改配置版本代码。
对于当解码由该记录描述的流时激活的所有参数集而言,profile_idc字段、profile_compatibility_flags字段和level_idc字段的值都是有效的。
profile_idc字段指示与该配置记录关联的流符合的配置资料。根据实施方式,profile_idc字段可以包括用于指示G-PCC的特定配置资料的配置资料代码。
当profile_compatibility_flags字段的值为1时,其指示比特流符合由profile_idc字段指示的配置资料。根据实施方式,profile_compatibility_flags字段中的各个位可以仅在所有参数集都设置该位时才被设置。
level_idc字段包括配置资料级别代码。根据实施方式,级别指示level_idc应当指示与所有参数集中针对最高层级指示的最高级别相等或比其大的能力的级别。
numOfSetupUnitArrays字段可以指示由setupUnitTye字段指示的类型的G-PCC设置单元的数组的数目。即,其指示GPCCDecoderConfigurationRecord()中所包括的G-PCC设置单元的数组的数目。
根据实施方式,迭代次数与numOfSetupUnitArrays字段的值一样的迭代语句被包含在GPCCDecoderConfigurationRecord()中。迭代语句可以包括setupUnit数组。在这种情况下,根据实施方式,i被初始化为0,并且每当执行迭代语句时递增1。迭代迭代语句,直到i的值变得等于numOfSetupUnitArrays的值。
setupUnit数组包括由存在GPCCDecoderConfigurationRecord()的体视觉样本条目引用的比特流的恒定G-PCC TLV封装结构。在本公开中,G-PCC TLV封装结构的类型被限制为指示序列参数集、几何参数集、属性参数集和图块库中的一个。
setupUnitType字段指示G-PCC设置单元的类型。即,setupUnitTye字段的值可以是指示SPS、GPS、APS和图块库的值中的一个。
等于1的setupUnit完整性可以指示给定类型的所有设置单元都在后续数组中而流中没有。等于0的setupUnit完整性可以指示所指示类型的附加设置单元可以在流中。
numOfSetupUnits字段指示由setupUnitTye字段指示的类型的G-PCC设置单元的数目。
根据实施方式,迭代次数与numOfSetupUnits字段的值一样的迭代语句被包含在GPCCDecoderConfigurationRecord()中。迭代语句可以包含setupUnit。在这种情况下,根据实施方式,i被初始化为0,并且每当执行迭代语句时递增1。迭代迭代语句,直到i的值变得等于numOfSetupUnits字段的值。
setupUnit是携带由setupUnitTye字段指示的类型(例如,SPS、GPS、APS或图块库(或TPS))的设置单元的TLV封装结构的实例。
根据实施方式,体视觉轨道可以使用VolumetricVisualSample进行实际数据发送。
根据实施方式,体视觉样本条目可以被称为样本条目或G-PCC样本条目,并且VolumetricVisualSample可以被称为样本或G-PCC样本。
根据实施方式,在文件中可以存在单个体视觉轨道或多个体视觉轨道。
根据实施方式,单个体视觉轨道可以被称为单个轨道或G-PCC单个轨道,并且多个体视觉轨道可以被称为多个轨道或多个G-PCC轨道。
根据实施方式,信令处理器51002和/或文件/段封装器51006可以在样本条目中添加盒或FullBox形式的与样本的分组、轨道的分组、G-PCC比特流的单个轨道的封装、或G-PCC比特流的多个轨道的封装相关的信令信息或用于支持空间访问的信令信息。信令信息可以包括GPCC条目信息盒(GPCCEntryInfoBox)、GPCC组件类型盒(GPCCComponentTypeBox)、立方体区域信息盒(CubicRegionInfoBox)、3D边界框信息盒(3DBoundingBoxInfoBox)或图块库盒(TileInventoryBox)中的至少一个。下面,将详细地描述相应的盒。
G-PCC条目信息结构
根据实施方式,可以如下地定义GPCCEntryInfoBox的句法。
class GPCCEntryInfoBox extends Box('gpsb'){
GPCCEntryInfoStruct();
}
在以上的句法中,具有样本条目类型“gpsb”的GPCCEntryInfoBox可以包括GPCCEntryInfoStruct()。
可以如下地定义GPCCEntryInfoStruct()的句法。
aligned(8)class GPCCEntryInfoStruct{
unsigned int(1)main_entry_flag;
unsigned int(1)dependent_on;
if(dependent_on){//non-entry
unsigned int(16)dependency_id;
}
}
GPCCEntryInfoStruct()可以包括main_entry_flag字段和dependent_on字段。
main_entry_flag字段指示其是否是用于对G-PCC比特流进行解码的进入点。
dependent_on字段指示其解码是否依赖于其他。当存在于样本条目中时,dependent_on字段指示轨道中样本的解码依赖于其他轨道。
当dependent_on字段的值为真时,GPCCEntryInfoStruct()还可以包括dependency_id字段。
dependency_id字段指示用于对关联数据进行解码的轨道的标识符。当dependency_id字段存在于样本条目中时,其指示携带G-PCC子比特流的轨道的标识符,该轨道中样本的解码依赖于该G-PCC子比特流。当dependency_id字段存在于样本组中时,其指示携带G-PCC子比特流的关联样本的标识符,该样本的解码依赖于该G-PCC子比特流。
根据实施方式,包括GPCCEntryInfoStruct()或GPCCEntryInfoStruct()的GPCCEntryInfoBox中所包括的信息可以被称为G-PCC条目信息。
根据实施方式,G-PCC条目信息被用于多个轨道并可以在样本条目中通知。
G-PCC分量信息结构
根据实施方式,可以如下地定义G-PCC分量类型盒(GPCCComponentTypeBox)的句法。
aligned(8)class GPCCComponentTypeBox extends FullBox('gtyp',version=0,0){
GPCCComponentTypeStruct();
}
根据实施方式,具有样本条目类型“gtyp”的GPCCComponentTypeBox可以包含GPCCComponentTypeStruct()。
可以如下地定义GPCCComponentTypeStruct()的句法。
aligned(8)class GPCCComponentTypeStruct{
unsigned int(8)numOfComponents;
for(i=0;i<numOfComponents;i++){
unsigned int(8)gpcc_type;
if(gpcc_type==4)
unsigned int(8)AttrIdx;
}
//additional fields
}
numOfComponents字段指示在GPCCComponentTypeStruct中通知的G-PCC分量的数目。
根据实施方式,迭代次数与numOfComponents字段的值一样的迭代语句可以被包括在GPCCComponentTypeStruct中。迭代语句可以包括gpcc_type字段。在这种情况下,根据实施方式,i被初始化为0,并且每当执行迭代语句时递增1。迭代迭代语句,直到i的值变得等于numOfComponents的值。
gpcc_type字段指示G-PCC分量的类型。例如,等于2的gpcc_type可以指示几何分量。等于4的gpcc_type可以指示属性分量。
当gpcc_type字段的值为4时,即,当其指示属性分量时,迭代语句还可以包括AttrIdx字段。
AttrIdx字段可以指示在SPS()中通知的属性的标识符。
根据实施方式,G-PCC分量类型盒(GPCCComponentTypeBox)可以被包括在用于多个轨道的样本条目中。当在携带部分或全部G-PCC比特流的轨道的样本条目中存在GPCCComponentTypeBox时,GPCCComponentTypeStruct()可以指示由相应轨道携带的一个或更多个G-PCC分量类型。
根据实施方式,GPCCComponentTypeStruct()或包括GPCCComponentTypeStruct()的GPCCComponentTypeBox可以被称为G-PCC分量信息。
3D点信息结构
根据实施方式,可以如下地定义3D点信息结构(3DPointStruct)的句法。
aligned(8)class 3DPointStruct()
{
unsigned int(16)pos_x;
unsigned int(16)pos_y;
unsigned int(16)pos_z;
}
3DPointStruct()可以包含pos_x字段、pos_y字段和pos_z字段。
pos_x字段、pos_y字段和pos_z字段可以指示笛卡尔坐标中的x、y和z偏移。
根据实施方式,3D点信息(3DPointStruct)可以被包括在立方体区域信息中。
立方体区域信息结构
根据实施方式,立方体区域信息盒(CubicRegionInfoBox)可以包含CubicRegionStruct()和/或CubicRegionSetStruct()。
根据实施方式,可以如下地定义包含CubicRegionSetStruct()的CubicRegionInfoBox的句法。
aligned(8)class CubicRegionInfoBox extends FullBox(‘gpcr’,0,0){
CubicRegionSetStruct();
}
根据实施方式,可以如下地定义具有样本条目类型“gpcr”的CubicRegionInfoBox中所包含的CubicRegionSetStruct()的句法。
aligned(8)class CubicRegionSetStruct()
{
unsinged int(16)num_regions;
unsigned int(1)tile_id_present;
for(i=0;i<num_regions;i++){
CubicRegionStruct();
if(tile_id_present){
unsigned int(8)num_tiles[i];
for(int j=0;j<num_tiles;j++)
unsigned int(16)tile_id[j];
}
}
}
num_regions字段可以指示CubicRegionSetStruct()中所包含的空间区域的数目。即,num_regions字段可以指示点云数据的3D空间区域的数目。
tile_id_present字段指示是否存在与对应空间区域相关的图块的标识符。例如,等于0的tile_id_present字段可以指示不存在与空间区域相关的图块的标识符。等于1的tile_id_present字段可以指示存在与空间区域相关的图块的标识符。
根据实施方式,迭代次数与num_regions字段的值一样的第一迭代语句可以被包括在CubicRegionSetStruct()中。第一迭代语句可以包括CubicRegionStruct()。在这种情况下,根据实施方式,i被初始化为0,并且每当执行第一迭代语句时递增1。迭代第一迭代语句,直到i的值变得等于num_regions字段的值。
CubicRegionStruct()提供关于一些或全部点云数据的3D空间区域信息,由锚点以及与锚点相关的沿X、Y和Z轴的空间区域大小来指示。
根据实施方式,当tile_id_present字段的值为真(即,1)时,第一迭代语句还可以包含num_tiles[i]字段。
num_tiles[i]字段指示与第i空间区域相关的图块的数目。
根据实施方式,第一迭代语句可以包括迭代次数与num_tiles[i]字段的值一样的第二迭代语句。第二迭代语句可以包含tile_id[j]字段。在这种情况下,根据实施方式,j被初始化为0,并且每当执行第二迭代语句时递增1。迭代迭代语句,直到j值变得等于num_tiles[i]字段的值。
tile_id[j]字段指示与第i空间区域相关的第j图块的标识符。
即,第二迭代语句包括用于标识第i空间区域的点云数据所属的图块的标识信息。
根据实施方式,可以如下地定义CubicRegionStruct()的句法。
aligned(8)class CubicRegionStruct()
{
unsinged int(16)cubic_region_id;
3DPointStruct anchor_point;
unsigned int(16)cubic_region_dx;
unsigned int(16)cubic_region_dy;
unsigned int(16)cubic_region_dz;
}
CubicRegionStruct()可以包含cubic_region_id字段、anchor_point字段、cubic_region_dx字段、cubic_region_dy字段和cubic_region_dz字段。
cubic_region_id字段可以指示对应的立方体区域(或对应的空间区域)的标识符。
anchor_point字段可以指示立方体区域的原点。
cubic_region_dx、cubic_region_dy和cubic_region_dz可以指示该立方体区域的沿着X、Y、Z轴分别相对于由anchor_point指示的点的扩展。
CubicRegionInfoBox还可以包括与空间区域相关的图块信息。例如,当第i空间区域涉及两个图块时,可以提供与第i空间区域相关的两个图块的标识符。
如上所述,CubicRegionInfoBox提供相关3D空间区域信息,包括锚点的X、Y和Z坐标以及沿着X、Y和Z轴的与锚点相关的空间区域的大小。根据实施方式,当CubicRegionInfoBox存在于携带几何比特流和/或属性比特流的轨道的样本条目中时,其指示关于轨道中携带的点云数据的静态3D空间区域信息。
根据实施方式,CubicRegionSetStruct()和/或包含CubicRegionSetStruct()的CubicRegionInfoBox、或包含CubicRegionStruct()的CubicRegionSetStruct()、或CubicRegionSetStruct()、或CubicRegionStruct()中所包括的信息可以被称为立方体区域信息、3D区域信息、3D空间区域信息或空间区域信息。
根据实施方式,立方体区域信息可以被包括在G-PCC 3D边界框信息、单个轨道的样本条目、多个轨道的样本条目、用于样本分组的信息或用于轨道分组的信息中。
G-PCC 3D边界框信息结构
根据实施方式,可以如下地定义3D边界框信息盒(3DBoundingBoxInfoBox)的句法。
aligned(8)class 3DBoundingBoxInfoBox extends FullBox(‘gpbb’,0,0){
3DBoundingBoxInfoStruct();
}
根据实施方式,具有样本条目类型“gpbb”的3DBoundingBoxInfoBox可以包含3DBoundingBoxInfoStruct()。
可以如下地定义3DBoundingBoxInfoStruct()的句法。
aligned(8)class 3DBoundingBoxInfoStruct extends CubicRegionStruct(){
unsinged int(16)3d_bb_log2_scale;
CubicRegionStruct 3d_bb_info;
unsigned int(7)reserved=0;
unsinged int(1)source_presence;
if(source_presence){
unsinged int(16)3d_bb_log2_scale_src;
CubicRegionStruct 3d_bb_src_info;
}
}
3DBoundingBoxInfoStruct继承了CubicRegionStruct(),并可以包括3d_bb_log2_scale字段、3d_bb_info和source_presence字段。
3d_bb_info可以包括关于点云数据的3D边界框信息。3D边界框信息可以包括点云数据的区域的沿着X、Y、Z轴的原点和扩展。
3d_bb_log2_scale可以指示用于缩放由3d_bb_info中的字段指示的3D边界框信息的缩放因子。
source_presence可以指示是否存在源点云数据的3D边界框信息。
当source_presence的值为真时,即,当其指示存在源点云数据的边界框信息时,3DboundingBoxInfoStruct()可以包括3d_bb_log2_scale_src和3d_bb_src_info。
3d_bb_src_info可以指示3D边界框信息。3D边界框信息可以包括源点云数据的区域的沿着X、Y、Z轴的原点和扩展。
3d_bb_log2_scale_src可以指示用于缩放由3d_bb_src_info中的字段指示的源点云数据的3D边界框信息的缩放因子。
根据实施方式,3DBoundingBoxInfoStruct()或包括3DBoundingBoxInfoStruct()的3DBoundingBoxInfoBox中所包括的信息可以被称为G-PCC 3D边界框信息或3D边界框信息。
根据实施方式,G-PCC 3D边界框信息可以被包括在单个轨道的样本条目、多个轨道的样本条目、分组样本的信息或分组轨道的信息中。
G-PCC 3D图块信息结构
根据实施方式,可以如下地定义3D图块信息(TileInfoStruct)的句法。
aligned(8)class TileInfoStruct()
{
unsinged int(16)tile_id;
unsinged int(16)tile_frame_idx;
unsigned int(16)tile_bounding_box_offset_x;
unsigned int(16)tile_bounding_box_offset_y;
unsigned int(16)tile_bounding_box_offset_z;
unsigned int(16)tile_bounding_box_size_width;
unsigned int(16)tile_bounding_box_size_height;
unsigned int(16)tile_bounding_box_size_depth;
}
TileInfoStruct()可以包括tile_id字段、tile_frame_idx字段、tile_bounding_box_offset_x字段、tile_bounding_box_offset_y字段、tile_bounding_box_offset_z字段、tile_bounding_box_size_width字段、tile_bounding_box_size_height字段和tile_bounding_box_size_depth字段。
tile_id字段指示对应3D图块的标识符。
tile_frame_idx字段指定与3D图块关联的关联点云帧的标识符。
tile_bounding_box_offset_x字段、tile_bounding_box_offset_y字段和tile_bounding_box_offset_z字段可以指示笛卡尔坐标中的3D图块的x、y和z偏移。
tile_bounding_box_size_width字段、tile_bounding_box_size_height字段和tile_bounding_box_size_depth字段指示笛卡尔坐标中的3D图块的宽度、高度和深度。
根据实施方式,3D图块信息(称为TileInfoStruct或G-PCC 3D图块信息)可以被包括在用于3D图块轨道分组的信令信息中。
G-PCC 3D图块库信息结构
根据实施方式,可以如下地定义图块库盒(TileInventoryBox)的句法。
aligned(8)class TileInventoryBox extends FullBox(‘gpti’,0,0){
TileInventoryStruct();
}
根据实施方式,具有样本条目类型“gpti”的TileInventoryBox可以包含TileInventoryStruct()。
根据实施方式,可以如下地定义TileInventoryStruct()的句法结构。
aligned(8)class TileInventoryStruct()
{
unsinged int(16)tile_frame_idx;
unsigned int(16)num_tiles_minus1;
for(i=0;I<num_tiles_minus1;i++){
unsinged int(16)tile_id;
unsigned int(16)tile_bounding_box_offset_x[i];
unsigned int(16)tile_bounding_box_offset_y[i];
unsigned int(16)tile_bounding_box_offset_z[i];
unsigned int(16)tile_bounding_box_size_width[i];
unsigned int(16)tile_bounding_box_size_height[i];
unsigned int(16)tile_bounding_box_size_depth[i];
}
}
TileInventoryStruct()可以包含tile_frame_idx字段和num_tiles_minus1字段。
tile_frame_idx可以指定与图块库结构(或盒)关联的关联点云帧的标识符。
num_tiles_minus1字段加1可以指定图块库中存在的图块边界框的数目。
根据实施方式,TileInventoryStruct()可以包含迭代次数与num_tiles_minus1的值一样的迭代语句。在这种情况下,根据实施方式,i被初始化为0,并且每当执行迭代语句时递增1。迭代迭代语句,直到i的值变得等于num_tiles_minus1字段的值。
迭代语句可以包含tile_id字段、tile_bounding_box_offset_x[i]字段、tile_bounding_box_offset_y[i]字段、tile_bounding_box_offset_z[i]字段、tile_bounding_box_size_width[i]字段、tile_bounding_box_size_height[i]和tile_bounding_box_size_depth[i]字段。
tile_id字段可以指示第i图块的标识符。
tile_bounding_box_offset_x[i]字段、tile_bounding_box_offset_y[i]字段和tile_bounding_box_offset_z[i]字段可以指示笛卡尔坐标中第i图块的x、y和z偏移。
tile_bounding_box_size_width[i]字段、tile_bounding_box_size_height[i]字段和tile_bounding_box_size_depth[i]字段指示笛卡尔坐标中的第i图块的宽度、高度和深度。
根据实施方式,TileInventoryStruct()中所包括的信息或包含TileInventoryStruct()的TileInventoryBox可以被称为G-PCC 3D图块库信息或3D图块库信息。
根据实施方式,G-PCC 3D图块库信息可以被包括在单个轨道的样本条目、多个轨道的样本条目、用于样本分组的信息或用于轨道分组的信息中。
样本组
根据实施方式,图14、图15或图18的文件/段封装器可以将一个或更多个样本分组,以生成样本组。根据实施方式,图14、图15或图18的文件/段封装器、元数据处理器或信令处理器可以通知与样本中的样本组、样本组或样本条目关联的信令信息。即,与样本组关联的样本组信息可以被添加到样本、样本组或样本条目。下面将把样本组信息随样本组一起详细描述。根据实施方式,样本组信息可以是3D边界框样本组信息、3D区域样本组信息、3D图块样本组信息、3D图块库样本组信息等。
3D边界框样本组
根据实施方式,可以应用相同3D边界框的一个或更多个样本可以被分组。该样本组可以被称为3D边界框样本组。
根据实施方式,可以如下地定义与3D边界框样本组关联的3D边界框样本组信息(GPCC3DBoundingBoxSampleGroupDescriptionEntry)的句法。
aligned(8)class GPCC3DBoundingBoxSampleGroupDescriptionEntry()
extends SampleGroupDescriptionEntry(‘3bsg’){
3DBoundingBoxInfoStruct();
}
根据实施方式,具有分组类型“3bsg”的3D边界框样本组信息(GPCC3DBoundingBoxSampleGroupDescriptionEntry)可以包含3DBoundingBoxInfoStruct()。换言之,用于样本分组的“3bsg”grouping_type表示将轨道中的样本指派给该样本组中携带的3D边界框样本组信息。
根据实施方式,当存在具有等于“3bsg”的grouping_type的SampleToGroupBox时,存在具有相同分组类型的伴随SampleGroupDescriptionBox,并且伴随SampleGroupDescriptionBox包含样本所属的该样本组的ID。
3DBoundingBoxInfoStruct()包括应用于3D边界框样本组的样本的3D边界框信息。
已在“G-PCC 3D边界框信息结构”中详细地描述3D边界框信息(即,3DBoundingBoxInfoStruct()中所包含的字段),因此将跳过其描述,以避免冗余描述。
空间区域样本组
根据实施方式,与相同3D区域关联的一个或更多个样本可以被分组。该样本组可以被称为空间区域样本组。
根据实施方式,可以如下地定义与空间区域样本组关联的3D区域(或包括立方体区域的空间区域)样本组信息(GPCCCubicRegionSampleGroupDescriptionEntry)的句法。
aligned(8)class GPCCCubicRegionSampleGroupDescriptionEntry()
extends SampleGroupDescriptionEntry(‘srsg’){
CubicRegionStruct();
}
根据实施方式,具有分组类型“srsg”的3D区域(或包括立方体区域的空间区域)样本组信息(GPCCCubicRegionSampleGroupDescriptionEntry)可以包括CubicRegionStruct()。换言之,用于样本分组的“srsg”grouping_type表示将轨道中的样本指派给该样本组中携带的空间区域(包括立方体区域)样本组信息。
根据实施方式,当存在具有等于“srsg”的grouping_type的SampleToGroupBox时,存在具有相同分组类型的伴随SampleGroupDescriptionBox,并且伴随SampleGroupDescriptionBox包含样本所属的样本组的ID。
CubicRegionStruct()包含应用于空间区域样本组的样本的立方体区域信息。
至于立方体区域信息,即,CubicRegionStruct()中所包含的字段,请参照以上在“立方体区域信息结构”中给出的详细描述。为了避免冗余的描述,将跳过其描述。
空间区域集样本组
根据实施方式,与相同的一个或更多个3D区域关联的一个或更多个样本可以被分组。该样本组可以被称为空间区域集样本组。
根据实施方式,可以如下地定义与空间区域集样本组关联的一个或更多个3D区域(或包括立方体区域的一个或更多个空间区域)的样本组信息(GPCCCubicRegionSetSampleGroupDescriptionEntry)的句法。
aligned(8)class GPCCCubicRegionSetSampleGroupDescriptionEntry()
extends SampleGroupDescriptionEntry(‘sssg’){
CubicRegionSetStruct();
}
根据实施方式,具有分组类型“sssg”的3D区域(或包括立方体区域的空间区域)样本组信息(GPCCCubicRegionSetSampleGroupDescriptionEntry)可以包括CubicRegionSetStruct()。换言之,用于样本分组的“sssg”grouping_type表示将轨道中的样本指派给该空间区域集样本组中携带的一个或更多个空间区域(包括立方体区域)样本组信息。
根据实施方式,当存在具有等于“sssg”的grouping_type的SampleToGroupBox时,存在具有相同分组类型的伴随SampleGroupDescriptionBox,并且伴随SampleGroupDescriptionBox包含样本所属的该样本组的ID。
CubicRegionSetStruct()包含关于应用于样本组中的样本的一个或更多个空间区域(包括立方体区域)的信息。
至于关于一个或更多个空间区域(包括立方体区域)的信息,即,CubicRegionSetStruct()中所包括的字段,请参照以上在“立方体区域信息结构”中给出的详细描述。为了避免冗余的描述,将跳过其描述。
3D图块样本组
根据实施方式,与相同3D图块关联的一个或更多个样本可以被分组。该样本组可以被称为3D图块样本组。
根据实施方式,可以如下地定义与3D图块样本组关联的3D图块样本组信息(GPCC3DTileSampleGroupDescriptionEntry)的句法。
aligned(8)class GPCC3DTileSampleGroupDescriptionEntry()
extends SampleGroupDescriptionEntry(‘3tsg’){
TileInfoSturct();
}
根据实施方式,具有分组类型“3tsg”的3D图块样本组信息(GPCC3DTileSampleGroupDescriptionEntry)可以包括TileInfoSturct()。换言之,用于样本分组的“3tsg”grouping_type表示将轨道中的样本指派给样本组中携带的3D图块样本组信息。
根据实施方式,当存在具有等于“3tsg”的grouping_type的SampleToGroupBox时,存在具有相同分组类型的伴随SampleGroupDescriptionBox,并且伴随SampleGroupDescriptionBox包含样本所属的样本组的ID。
TileInfoSturct()包含应用于样本组中的样本的3D图块信息。
至于3D图块信息,即,TileInfoSturct()中所包含的字段,请参照以上在“G-PCC3D图块信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
3D图块库样本组
根据实施方式,与相同图块库信息关联的一个或更多个样本可以被分组。该样本组可以被称为3D图块库样本组。
根据实施方式,可以如下地定义与3D图块库样本组关联的3D图块库样本组信息(GPCC3DTileInventorySampleGroupDescriptionEntry)的句法。
aligned(8)class GPCC3DTileInventorySampleGroupDescriptionEntry()
extends SampleGroupDescriptionEntry(‘tisg’){
TileInventoryStruct();
}
根据实施方式,具有分组类型“tisg”的3D图块库样本组信息(GPCC3DTileInventorySampleGroupDescriptionEntry)可以包括TileInventoryStruct()。换言之,用于样本分组的“tisg”grouping_type表示将轨道中的样本指派给样本组中携带的图块库样本组信息。
根据实施方式,当存在具有等于“tisg”的grouping_type的SampleToGroupBox时,存在具有相同分组类型的伴随SampleGroupDescriptionBox,并且伴随SampleGroupDescriptionBox包含样本所属的样本组的ID。
TileInventoryStruct()包含应用于样本组中的样本的3D图块库信息。
至于3D图块库信息,即,TileInventoryStruct()中所包含的字段,请参照以上在“G-PCC 3D图块库信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
轨道组
根据实施方式,图14、图15或图18的文件/段封装器可以将一个或更多个轨道分组,以生成轨道组。根据实施方式,图14、图15或图18的文件/段封装器、元数据处理器或信令处理器可以通知与样本中的轨道组、轨道组或样本条目关联的信令信息。即,与轨道组关联的轨道组信息可以被添加到样本、轨道组或样本条目。下面将把轨道组信息随轨道组一起进行以下详细描述。根据实施方式,轨道组信息可以包括3D边界框轨道组信息、点云合成轨道组信息、空间区域轨道组信息、3D图块轨道组信息、3D图块库轨道组信息等。
3D边界框轨道组
根据实施方式,可以应用相同3D边界框的一个或更多个轨道可以被分组。该轨道组可以被称为3D边界框轨道组。
根据实施方式,可以如下地定义与3D边界框轨道组关联的3D边界框轨道组信息(GPCC3DBoundingBoxTrackGroupBox)的句法。
aligned(8)class GPCC3DBoundingBoxTrackGroupBox
extends TrackGroupTypeBox(‘3btg’){
3DBoundingBoxInfoStruct();
}
根据实施方式,具有轨道组类型“3btg”的3D边界框轨道组信息(GPCC3DBoundingBoxTrackGroupBox)可以包括3DBoundingBoxInfoStruct()。根据实施方式,具有等于“3btg”的track_group_type的TrackGroupTypeBox指示该轨道属于与3D边界框轨道组信息(即,3D边界框轨道组)关联的一组轨道。根据实施方式,属于相同3D边界框轨道组信息的轨道具有用于track_group_type“3btg”的相同的track_group_id值,并且来自3D边界框轨道组信息的轨道的track_group_id与来自任何其它3D边界框轨道组信息的轨道的track_group_id不同。
3DBoundingBoxInfoStruct()包含应用于3D边界框轨道组的轨道的3D边界框信息。例如,当存在携带3D边界框信息的定时元数据轨道时,3DBoundingBoxInfoStruct()指示关联点云数据的初始3D边界框信息。
至于3D边界框信息,即,3DBoundingBoxInfoStruct()中所包含的字段,请参照以上在“G-PCC 3D边界框信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
G-PCC点云合成轨道组
根据实施方式,当点云数据被分割并存储到一个或更多个轨道中时,携带属于相同点云数据的数据的一个或更多个轨道可以被分组。该轨道组可以称为G-PCC点云合成轨道组。
根据实施方式,可以如下地定义与G-PCC点云合成轨道组关联的点云合成轨道组信息(GPCCCompositionTrackGroupBox)的句法。
aligned(8)class GPCCCompositionTrackGroupBox
extends TrackGroupTypeBox(‘gctg’){
3DBoundingBoxInfoStruct();
}
根据实施方式,具有轨道组类型“gctg”的点云合成轨道组信息(GPCCCompositionTrackGroupBox)可以包括3DBoundingBoxInfoStruct()。根据实施方式,具有等于“gctg”的track_group_type的TrackGroupTypeBox指示该轨道属于与相同源点云数据关联的一组轨道(即,G-PCC点云合成轨道组)。
根据实施方式,属于相同点云数据的轨道具有用于等于“gctg”的track_group_type的相同的track_group_id值,并且来自一个点云数据的轨道的track_group_id与来自任何其它点云数据的轨道的track_group_id不同。
3DBoundingBoxInfoStruct()包含应用于G-PCC点云合成轨道组的轨道的3D边界框信息。
至于3D边界框信息,即,3DBoundingBoxInfoStruct()中所包含的字段,请参照以上在“G-PCC 3D边界框信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
空间区域轨道组
根据实施方式,当点云数据被分割并存储到一个或更多个轨道中时,携带属于点云数据的相同3D区域的数据的一个或更多个轨道可以被分组。该轨道组可以被称为空间区域轨道组。
根据实施方式,可以如下地定义与空间区域轨道组关联的空间区域轨道组信息(GPCCCubicRegionTrackGroupBox)的句法。
aligned(8)class GPCCCubicRegionTrackGroupBox
extends TrackGroupTypeBox(‘srtg’){
CubicRegionStruct();
}
根据实施方式,具有轨道组类型“srtg”的空间区域轨道组信息(GPCCCubicRegionTrackGroupBox)可以包括CubicRegionStruct()。根据实施方式,具有等于“srtg”的track_group_type的TrackGroupTypeBox指示该轨道属于与相同空间区域(即,空间区域轨道组)关联的一组轨道。
根据实施方式,属于相同空间区域的轨道具有用于track_group_type“srtg”的相同的track_group_id值。来自一个空间区域的轨道的track_group_id不同于来自任何空间区域的轨道的track_group_id。
CubicRegionStruct()包含应用于空间区域轨道组的轨道的立方体区域信息(或空间区域信息)。至于立方体区域信息,即,CubicRegionStruct()中所包含的字段,请参照以上在“立方体区域信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
根据实施方式,当存在携带关联的空间区域信息的定时元数据轨道时,其可以指示初始空间区域信息。
根据实施方式,各个轨道可以属于一个或更多个空间区域轨道组。
3D图块轨道组
根据实施方式,携带属于点云数据的相同3D图块的数据的一个或更多个轨道可以被分组。该轨道组可以被称为3D图块轨道组。
根据实施方式,可以如下地定义与3D图块轨道组关联的3D图块轨道组信息(GPCC3DTileTrackGroupBox)的句法。
aligned(8)class GPCC3DTileTrackGroupBox
extends TrackGroupTypeBox(‘3dtg’){
TileInfoStruct();
}
根据实施方式,具有轨道组类型“3dtg”的3D图块轨道组信息(GPCC3DTileTrackGroupBox)可以包括TileInfoStruct()。根据实施方式,具有track_group_type“3dtg”的TrackGroupTypeBox指示该轨道属于与相同3D图块(即,3D图块轨道组)关联的一组轨道。
根据实施方式,属于相同3D图块的轨道具有用于等于“3dtg”的track_group_type的相同的track_group_id值。另外,来自一个3D图块的轨道的track_group_id不同于来自任何其它3D图块的轨道的track_group_id。
TileInfoStruct()包含应用于3D图块轨道组的轨道的3D图块信息。至于3D图块信息,即,TileInfoSturct()中所包含的字段,请参照以上在“G-PCC 3D图块信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
根据实施方式,当存在携带关联的3D图块信息或空间区域信息的定时元数据轨道时,其指示初始3D图块信息。
根据实施方式,各个轨道可以属于一个或更多个3D图块轨道组。
3D图块库轨道组
根据实施方式,应用点云数据的相同图块库的一个或更多个轨道可以被分组。该轨道组可以被称为3D图块库轨道组。
根据实施方式,可以如下地定义与3D图块库轨道组关联的3D图块库轨道组信息(GPCCTileInventoryTrackGroupBox)的句法。
aligned(8)class GPCCTileInventoryTrackGroupBox
extends TrackGroupTypeBox(‘titg’){
TileInventoryStruct();
}
根据实施方式,具有轨道组类型“titg”的3D图块库轨道组信息(GPCCTileInventoryTrackGroupBox)可以包括TileInventoryStruct()。根据实施方式,具有等于“titg”的track_group_type的TrackGroupTypeBox指示该轨道属于与应用相同图块库信息的一组轨道(即,3D图块库轨道组)。
根据实施方式,属于相同图块库的轨道具有用于track_group_type“titg”的相同的track_group_id值。另外,来自一个图块库的轨道的track_group_id不同于来自任何其它图块库的轨道的track_group_id。
TileInventoryStruct()包含应用于3D图块库轨道组的轨道的3D图块库信息。至于3D图块库信息,即,TileInventoryStruct()中所包含的字段,请参照以上在“G-PCC 3D图块库信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
根据实施方式,当存在携带相关的图块库信息或空间区域信息的定时元数据轨道时,其可以指示初始图块库信息。
根据实施方式,各个轨道可以属于一个或更多个图块库轨道组。
如以上描述的GPCCConfigurationBox、GPCCEntryInfoBox、GPCCComponentTypeBox、CubicRegionInfoBox、3DBoundingBoxInfoBox或TileInventoryBox中的至少一个可以被包含在单个轨道的样本条目和/或文件中多个轨道的样本条目中。根据实施方式,单个轨道的样本条目可以包含GPCCConfigurationBox、3DBoundingBoxInfoBox、CubicRegionInfoBox和TileInventoryBox。根据实施方式,多个轨道的样本条目可以包含GPCCConfigurationBox、GPCCEntryInfoBox、GPCCComponentTypeBox、3DBoundingBoxInfoBox、CubicRegionInfoBox和TileInventoryBox。
根据实施方式,用于存储G-PCC比特流的单个轨道的样本条目(GPCCSampleEntry())和/或多个轨道的样本条目(GPCCSampleEntry())可以继承体视觉样本条目(VolumetricVisualSampleEntry)。
图44例示了根据实施方式的用于存储G-PCC比特流的单个轨道的G-PCC文件的结构的示图。即,示出了包含单个轨道的基于ISOBMFF的文件的示例性布局。
在图44中,基于ISOBMFF的文件可以被称为容器、容器文件、媒体文件、G-PCC文件等。具体地,文件可以由可以被称为ftyp、moov或mdat的盒和/或信息构成。
根据实施方式,文件的moov盒中所包括的stsd盒(SampleDescriptionBox)可以包括用于存储G-PCC比特流的单个轨道的样本条目。根据实施方式,存储G-PCC比特流的单个轨道可以被称为G-PCC轨道。
根据实施方式,序列参数集、几何参数集、属性参数集和图块库可以被包含在文件中的moov盒的样本条目或mdat盒的样本中。
根据实施方式,几何切片(或被称为编码后的几何比特流)和零个或更多个属性切片(或被称为编码后的属性比特流)被包含在文件中的mdat盒的样本中。
根据实施方式,当G-PCC比特流被存储在文件的单个轨道中时,各个样本可以包含多个G-PCC分量。即,各个样本由一个或更多个TLV封装结构构成。根据实施方式,序列参数集、几何参数集、属性参数集、图块库、几何切片和属性切片均被称为G-PCC分量。
根据实施方式,可以如下地定义单个轨道的样本条目。
样本条目类型:“gpe1”、“gpeg”
容器:SampleDescriptionBox
强制性:“gpe1”或“gpeg”样本条目是强制性的数量:可以存在一个或更多个样本条目
样本条目类型“gpe1”或“gpeg”是强制性的,并且可以存在一个或更多个样本条目。
根据实施方式,G-PCC轨道可以使用具有样本条目类型“gpe1”或“gpeg”的VolumetricVisualSampleEntry。
根据实施方式,G-PCC轨道的样本条目可以包含GPCCConfigurationBox。GPCCConfigurationBox可以包含GPCCDecoderConfigurationRecord()。
GPCCDecoderConfigurationRecord()可以包含configurationVersion字段、profile_idc字段、profile_compatibility_flags字段、level_idc字段、numOfSetupUnitArrays字段、SetupUnitType字段、completeness字段、numOfSepupUnit字段、和setupUnit字段中的至少一个。至于各个字段的细节,请参照以上给出的关于各个具有相同名称的字段的描述。
根据实施方式,GPCCDecoderConfigurationRecord()中所包含的setupUnit数组字段可以包括包含一个SPS的TLV封装结构。
根据实施方式,当样本条目类型为“gpe1”时,所有参数集(例如,SPS、GPS、APS、图块库(或图块参数集))被包括在setupUnits的数组中。
根据实施方式,当样本条目类型为“gpeg”时,参数集可以被包括在setupUnits的数组(即,样本条目)中或在流(即,样本)中。
以下是具有样本条目类型“gpe1”的GPCCSampleEntry的句法的示例。
aligned(8)class GPCCSampleEntry()
extends VolumetricVisualSampleEntry('gpe1'){
GPCCConfigurationBox config;//mandatory
3DBoundingBoxInfoBox();
CubicRegionInfoBox();
TileInventoryBox();
}
根据实施方式,具有样本条目类型“gpe1”的GPCCSampleEntry可以包含GPCCConfigurationBox、3DBoundingBoxInfoBox()、CubicRegionInfoBox()和TileInventoryBox()。
3DBoundingBoxInfoBox()指示关于与该轨道中携带的样本相关的点云数据的3D边界框信息。至于3D边界框信息的细节,即,3DBoundingBoxInfoBox()中所包含的字段,请参照以上在“G-PCC 3D边界框信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
CubicRegionInfoBox()指示轨道中的样本中携带的点云数据的一个或更多个空间区域信息。至于一个或更多个空间区域信息即CubicRegionInfoBox()中所包含的字段的细节,请参照以上在“立方体区域信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
TileInventoryBox()指示轨道中的样本中携带的点云数据的3D图块库信息。至于3D图块库信息即TileInventoryStruct()中所包含的字段的细节,请参照以上在“G-PCC3D图块库信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
图45例示了根据实施方式的当G-PCC比特流被存储在文件的单个轨道中时的mdat盒的示例性样本结构的示图。
即,图45中的样本包括包含几何切片(即,编码后的几何比特流)的几何TLV封装结构。当存在时,样本还可以包括包含一个或更多个参数集的参数集TLV封装结构。另外,当存在时,样本还可以包括包含一个或更多个属性切片(即,编码后的属性比特流)的属性TLV封装结构。
当各个样本由多个TLV封装结构构成时,必须访问样本中的各个TLV封装结构。这是因为接收装置需要首先对几何切片进行解码,并且需要基于解码后的几何对属性切片进行解码。
另外,当样本由多个TLV封装结构构成时,多个TLV封装结构中的各个TLV封装结构可以被存储在子样本中。根据实施方式,子样本可以被称为G-PCC子样本。例如,当样本包含包括参数集的参数集TLV封装结构、包括几何切片的几何TLV封装结构和包括属性切片的属性TLV封装结构时,参数集TLV封装结构、几何TLV封装结构和属性TLV封装结构均被存储在子样本中。根据实施方式,子样本包含仅一个TLV封装结构。
在这种情况下,为了使得能够访问样本中的各个G-PCC分量,需要子样本中携带的TLV封装结构的类型。
下面描述在G-PCC比特流被存储在单个轨道中的情况下给出的样本格式的句法。
在下面示出的句法中,各个样本(GPCCSample)可以对应于单个点云帧,并由属于相同呈现时间的一个或更多个TLV封装结构构成。各个TLV封装结构可以包含单种类型的TLV载荷(或被称为G-PCC载荷),例如,几何切片或属性切片。另外,样本可以是自包含式的(例如,同步样本)。
aligned(8)class GPCCSample
{
unsigned int GPCCLength=sample_size;//Size of Sample
for(i=0;i<GPCCLength;)//to end of the sample
{
tlv_encapsulation gpcc_unit;
i+=(1+4)+gpcc_unit.tlv_num_payload_bytes;
}
}
在以上的句法中,GPCCLength字段指示样本的长度,并且gpcc_unit字段包括包含单个G-PCC分量(例如,几何切片)的TLV封装结构的实例。
下面描述子样本的句法。
根据实施方式,G-PCC子样本包含仅一个TLV封装结构。根据实施方式,一个SubSampleInformationBox可以存在于moov盒的SampleTableBox(stbl)中或各个MovieFragmentBoxes(moof)的TrackFragmentBox(traf)中。
如果存在SubSampleInformationBox,则TLV封装结构的8位类型值,并且如果TLV封装结构包含属性载荷,则属性索引的6位值可以被包括在SubSampleInformationBox中的子样本条目的32位的codec_specific_parameters字段中。根据实施方式,可以通过解析SubSampleInformationBox中的子样本条目的codec_specific_parameters字段来识别各个子样本的类型。
可以如下地定义SubSampleInformationBox的codec_specific_parameters字段。
unsigned int(8)PayloadType;
if(PayloadType==4){//attribute payload
unsigned int(6)AttrIdx;
bit(18)reserved=0;
}
else
bit(24)reserved=0;
在以上的子样本句法中,PayloadType字段指示子样本中的TLV封装结构的tlv_type。例如,当参数PayloadType的值为4时,其可以指示属性切片(即,属性载荷)。
AttrIdx字段指示子样本中的包含属性载荷的TLV封装结构的属性信息的标识符。这可以与子样本中的包含属性载荷的TLV封装结构的ash_attr_sps_attr_idx相同。
图46是例示了根据实施方式的用于存储G-PCC比特流的多个轨道的基于ISOBMFF的G-PCC文件结构的示图。即,该图示出了当其它G-PCC分量在单独的轨道中携带时G-PCC比特流的多轨道容器的示例。
在图46中,基于ISOBMFF的文件可以被称为容器、容器文件、媒体文件、G-PCC文件等。具体地,文件可以由可以被称为ftyp、moov或mdat的盒和/或信息构成。
根据实施方式,当G-PCC比特流在基于ISOBMFF的文件的多个轨道中携带时,各个几何或属性切片可以被映射到单独轨道。例如,几何切片(被称为几何子流、编码后的几何比特流或编码几何切片比特流)被映射到轨道1,并且属性切片(被称为属性子流、编码后的属性比特流或编码属性切片比特流)被映射到轨道2。
根据实施方式,携带几何切片的轨道(例如,轨道1)可以被称为几何轨道或G-PCC几何轨道,并且携带属性切片的轨道(例如,轨道2)可以称为属性轨道或G-PCC属性轨道。另外,几何轨道可以被定义为携带几何切片的体视觉轨道,并且属性轨道可以被定义为携带属性切片的体视觉轨道。
根据实施方式,携带包含几何切片和属性切片二者的G-PCC比特流的部分的轨道可以被称为复用轨道。
根据实施方式,当几何切片和属性切片被存储在分开的轨道中时,轨道中的各个样本包含携带单个G-PCC分量的数据的至少一个TLV封装结构。在这种情况下,各个样本不包含几何和属性二者,并不包含多个属性。
根据实施方式,G-PCC比特流的多轨道封装使得G-PCC播放器能够有效地访问G-PCC分量中的一个。例如,接收装置应该首先对几何进行解码,然后基于解码后的几何对属性进行解码。换言之,G-PCC播放器应该在属性比特流之前访问携带几何比特流的轨道。
根据实施方式,当G-PCC比特流在多个轨道中携带时,需要满足以下条件以使G-PCC播放器有效地访问G-PCC分量中的一个。
当由TLV封装结构构成的G-PCC比特流在多个轨道中携带时,携带几何比特流(或几何切片)的轨道应当是进入点。
然后,在样本条目中,添加用于指示该轨道中所包含的流的作用的新盒。在实施方式中,新盒是上述的GPCCComponentTypeBox。即,GPCCComponentTypeBox可以被包含在用于多个轨道的样本条目中。
GPCCComponentTypeBox可以包含GPCCComponentTypeStruct()。
当在携带部分或全部G-PCC比特流的轨道的样本条目中存在GPCCComponentTypeBox时,GPCCComponentTypeStruct()可以指示由各个轨道携带的一个或更多个G-PCC分量类型,例如,几何和属性。
例如,当被包含在GPCCComponentTypeStruct()中的gpcc_type等于2时,其可以指示几何分量。等于4的gpcc_type可以指示属性分量。另外,当gpcc_type等于4时,即,当其指示属性分量时,还可以包括AttrIdx字段,其指示在SPS()中通知的属性的标识符。
至于与G-PCC分量类型即GPCCComponentTypeStruct()中所包含的字段相关的信息的细节,请参照“G-PCC分量信息结构”的详细描述。为了避免冗余的描述,将跳过其描述。
根据实施方式,当G-PCC比特流在多个轨道中携带时,可以如下定义样本条目的句法。
样本条目类型:“gpc1”或“gpcg”
容器:SampleDescriptionBox(“stsd”)
强制性:“gpc1”、“gpcg”样本条目是强制性的数量:可以存在一个或更多个样本条目
样本条目类型“gpc1”或“gpcg”是强制性的,并且可以存在一个或更多个样本条目。
多个轨道(例如,几何或属性轨道)可以使用具有样本条目类型“gpc1”或“gpcg”的VolumetricVisualSampleEntry。
根据实施方式,多个轨道的样本条目可以包含G-PCC解码器配置盒(GPCCConfigurationBox)。GPCCConfigurationBox可以包含G-PCC解码器配置记录(GPCCDecoderConfigurationRecord())。
根据实施方式,GPCCDecoderConfigurationRecord()提供针对基于几何的点云内容的解码器配置信息。
根据实施方式,序列参数集、几何参数集、属性参数集或图块库中的至少一个可以被包含在样本条目中的GPCCDecoderConfigurationRecord()中。
GPCCDecoderConfigurationRecord()可以包含configurationVersion字段、profile_idc字段、profile_compatibility_flags字段、level_idc字段、numOfSetupUnitArrays字段、SetupUnitType字段、completeness字段、numOfSepupUnit字段、和tlv_encapsulation setupUnit字段中的至少一个。至于各个字段的细节,参照以上给出的关于各个具有相同名称的字段的描述。
在一个实施方式中,GPCCDecoderConfigurationRecord()中的设置单元的数组和轨道的样本中所包含的所有数据被存储在TLV封装结构中。另外,可以使用多个样本条目来指示使用不同配置或参数集的G-PCC数据的部分。
根据实施方式,GPCCDecoderConfigurationRecord()中所包含的设置单元的数组可以包含包括一个SPS的TLV封装结构。
根据实施方式,当样本条目类型为“gpc1”或“gpcq”时,GPCCComponentTypeBox存在于样本条目中。
在实施方式中,当样本条目类型为“gpc1”时,SPS、GPS和图块库可以全部被包含在携带几何比特流的几何轨道的样本条目中的setupUint数组中。另外,所有相关的APS可以被包括在携带属性比特流的属性轨道的样本条目中的setupUint数组中。
在一个实施方式中,当样本条目类型为“gpcg”时,SPS、APS、GPS或图块库可以被包含在轨道的样本条目(即,setupUint数组)中或轨道的样本(即,流)中。
以下示出具有样本条目类型“gpc1”的G-PCC样本条目(GPCCSampleEntry)的示例性句法。
aligned(8)class GPCCSampleEntry()extends VolumetricVisualSampleEntry(‘gpc1’){
GPCCConfigurationBox config;
GPCCComponentTypeBox();
GPCCEntryInfoBox();
3DBoundingBoxInfoBox();
CubicRegionInfoBox();
TileInventoryBox();
}
根据实施方式,具有样本条目类型“gpc1”的GPCCSampleEntry可以包含GPCCConfigurationBox、GPCCComponentTypeBox()、GPCCEntryInfoBox()、3DBoundingBoxInfoBox()、CubicRegionInfoBox()和TileInventoryBox()。
GPCCConfigurationBox包含GPCCDecoderConfigurationRecord()。GPCCDecoderConfigurationRecord()提供针对G-PCC比特流的解码器配置信息。根据实施方式,SPS、GPS、APS或图块库中的至少一个可以被包含在样本条目中的GPCCDecoderConfigurationRecord()的设置单元的数组中。由于以上已详细描述GPCCDecoderConfigurationRecord(),因此将跳过其描述,以避免冗余描述。
3DBoundingBoxInfoBox()指示与该轨道上携带的样本关联的点云数据的3D边界框信息。至于3D边界框信息即3DBoundingBoxInfoBox()中所包含的字段的细节,请参照以上在“G-PCC 3D边界框信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
GPCCComponentTypeBox()指示各个轨道中携带的G-PCC分量的类型。根据实施方式,当多种类型的G-PCC分量数据在一个轨道中复用时,例如,当几何子流和属性子流在一个轨道中复用时,GPCCComponentTypeBox可以指示在相应轨道中携带的多个G-PCC分量的类型。根据实施方式,当指示多种分量类型并且不存在分量类型样本组时,在GPCCComponentTypeBox中通知的分量类型的顺序可以指示轨道中的各个样本中的关联子样本的顺序。至于与G-PCC分量类型即GPCCComponentTypeBox()中所包含的字段相关的信息的细节,请参照以上在“G-PCC分量信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
GPCCEntryInfoBox()表示关于轨道的条目信息。例如,其可以指示轨道是否是用于解码G-PCC比特流的进入点。至于与进入点相关的信息,即,GPCCEntryInfoBox()中所包含的字段,请参照以上在“G-PCC条目信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
CubicRegionInfoBox()指示轨道中的样本中携带的点云数据的一个或更多个空间区域信息。至于一个或更多个空间区域信息即CubicRegionInfoBox()中所包含的字段的细节,请参照以上在“立方体区域信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
TileInventoryBox()指示轨道中的样本中携带的点云数据的3D图块库信息。至于3D图块库信息即TileInventoryStruct()中所包含的字段的细节,请参照以上在“G-PCC3D图块库信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
图47是例示了根据实施方式的在由TLV封装结构构成的G-PCC比特流被存储在多个轨道中的情况下的mdat盒的样本的示例性结构的示图。根据实施方式,各个样本包含一个或更多个TLV封装结构。在这种情况下,各个样本不包含几何和属性二者,并不包含多个属性。
在图47中,几何轨道(或被称为G-PCC几何轨道)的样本包括包含几何切片的几何TLV封装结构,但不包括包含属性切片的属性TLV封装结构。类似地,属性轨道(或被称为G-PCC属性轨道)的样本包括包含属性切片的属性TLV封装结构,但不包括包含几何切片的几何TLV封装结构。然而,当存在参数集时,参数集可以被包含在TLV封装结构中的几何轨道的样本和/或属性轨道的样本中。
根据实施方式,在G-PCC比特流被存储在多个轨道中的情况下,可以如下定义样本格式的句法。
aligned(8)class GPCCSample
{
unsigned int GPCCLength=sample_size;//Size of Sample
for(i=0;i<GPCCLength;)//to end of the sample
{
tlv_encapsulation gpcc_unit;
i+=(1+4)+gpcc_unit.tlv_num_payload_bytes;
}
}
在以上句法中,G-PCC样本(GPCCsample)可以对应于单个点云帧,并可以包括属于相同呈现时间的一个或更多个TLV封装结构。各个TLV封装结构包括单种类型的TLV载荷(或被称为G-PCC载荷),例如,几何切片、属性切片或参数集。
如果在样本条目中存在GPCCComponentTypeBox,则各个样本都包含携带几何切片或属性切片的单个TLV封装结构。另外,各个样本可以可选地包含携带参数集的零个或更多个TLV封装结构。
在以上的句法中,GPCCLength字段指示样本的长度,并且gpcc_unit字段包括包含单个G-PCC分量(例如,几何切片)的TLV封装结构的实例。
根据实施方式,当多种类型的G-PCC分量数据在一个轨道中复用时,例如,当几何切片和属性切片在一个轨道中复用时,在各个样本中可以存在一个或更多个子样本。换言之,当一个样本由多个G-PCC TLV封装结构构成时,多个G-PCC TLV封装结构中的各个G-PCCTLV封装结构可以被作为子样本存储。例如,当样本包括包含参数集的参数集TLV封装结构和包含几何切片的几何TLV封装结构时,参数集TLV封装结构和几何TLV封装结构均被作为子样本存储。作为另一示例,当样本包括包含参数集的参数集TLV封装结构和包含属性切片的属性TLV封装结构时,参数集TLV封装结构和属性TLV封装结构均被作为子样本存储。根据实施方式,子样本包含仅一个TLV封装结构。
根据实施方式,子样本包含仅一个TLV封装结构。
根据实施方式,一个SubSampleInformationBox可以存在于moov盒的SampleTableBox(stbl)中或各个MovieFragmentBoxes(moof)的TrackFragmentBox(traf)中。
如果存在SubSampleInformationBox,则TLV封装结构的8位类型值,并且如果TLV封装结构包含属性载荷,则属性索引的6位值可以被包括在SubSampleInformationBox中的子样本条目的32位codec_specific_parameters字段中。根据实施方式,可以通过解析SubSampleInformationBox中的子样本条目的codec_specific_parameters字段来识别各个子样本的类型。
可以如下地定义SubSampleInformationBox的codec_specific_parameters字段。
unsigned int(8)PayloadType;
if(PayloadType==4){//attribute payload
unsigned int(6)AttrIdx;
bit(18)reserved=0;
}
else
bit(24)reserved=0;
在以上的子样本句法中,PayloadType字段指示子样本中的TLV封装结构的tlv_type。例如,当参数PayloadType的值为4时,其可以指示属性切片(即,属性载荷)。
AttrIdx字段指示子样本中的包含属性载荷的TLV封装结构的属性信息的标识符。这可以指示子样本中的包含属性载荷的TLV封装结构的ash_attr_sps_attr_idx。
根据实施方式,当不存在SubSampleInformationBox时,样本中的子样本的顺序可以符合在样本条目或样本组中通知的分量类型的顺序。
根据实施方式,当几何切片(或几何比特流)和属性切片(或属性比特流)在单独的轨道中携带时,可以添加新盒以链接轨道。在实施方式中,新盒可以被称为TrackReferenceTypeBox。
在实施方式中,TrackReferenceTypeBox被添加到几何轨道的样本条目中的TrackBox(trak盒)中的TrackReferenceBox(tref盒)。根据实施方式,TrackReferenceTypeBox包含指定供几何轨道引用的轨道的track_ID的数组。根据实施方式,为了将几何轨道与属性轨道链接,几何轨道的样本条目中的TrackReferenceTypeBox的reference_type标识关联的属性轨道。这些轨道参考类型的4CC如下。
“gpca”:所引用的轨道包含G-PCC属性数据的编码比特流。
图48的(a)至(d)例示了根据实施方式的在单个轨道或多个轨道中携带点云数据的示例。
图48的(a)是示出了根据实施方式的3D空间区域与图块之间的关联性的示例。根据实施方式,图块是点云数据的整体边界框内的特定矩形长方体,并且3D空间区域是整体边界框的3D空间的特定3D体积。因此,各个3D空间区域都与一个或更多个图块相关。在图48的(a)的示例中,3DRegion#0与图块#0相关,并且3Dregion#1与图块#1和图块#2相关。此时,3DRegion#0可以包括图块#0的一些数据或全部数据,并且3Dregion#1可以包括图块#1的一些数据或全部数据和图块#2的一些数据或全部数据。
在这种情况下,在立方体区域信息(3D空间区域信息)中通知3D空间区域与图块之间的关联信息(也被称为链接信息或映射信息)。例如,立方体区域信息(3D空间区域信息)可以包括用于标识3DRegion#0和3DRegion#1中的每一者的区域标识信息、用于标识与3DRegion#0相关的图块#0的标识信息以及用于标识与3DRegion#1相关的图块#1和图块#2中的每一者的标识信息。
因此,其使得接收装置能够空间访问点云数据,因为接收装置可以基于立方体区域信息(3D空间区域信息)来获知3D空间区域与图块之间的关联性。
在图48的(b)的示例中,图块#0在样本#0的子样本#0中携带,图块#1在样本#0的子样本#1中携带,并且图块#2在样本#0的子样本#2中携带。在这种情况下,轨道的样本条目可以包含上述的SubSampleInformation。
在图48的(c)的示例中,与3DRegion#0和3DRegion#1相关的图块#0至#3的几何切片和属性切片在单个G-PCC轨道上携带。在这种情况下,单个G-PCC轨道的样本条目可以包含上述GPCCConfigurationBox、3DBoundingBoxInfoBox()、CubicRegionInfoBox()和TileInventoryBox()。
在图48的(d)的示例中,与3DRegion#0相关的图块#0的几何切片在几何轨道#1中携带;与3DRegion#0相关的图块#0的属性切片在属性轨道#1中携带;与3DRegion#1相关的图块#1和图块#2的几何切片在几何轨道#2中携带;并且与3DRegion#1相关的图块#1和图块#2的属性切片在属性轨道#2中携带。在这种情况下,各个轨道的样本条目可以包含上述GPCCConfigurationBox、GPCCComponentTypeBox()、GPCCEntryInfoBox()、3DBoundingBoxInfoBox()、CubicRegionInfoBox()和TileInventoryBox()。另外,几何轨道#1和属性轨道#1可以使用“gpca”轨道参考来链接,并且几何轨道#2和属性轨道#2可以使用“gpca”轨道参考来链接。
根据实施方式,在将G-PCC比特流封装到文件中,图14、图15或图18的文件/段封装器可以生成携带G-PCC比特流中所包含的元数据的元数据轨道。根据实施方式,元数据轨道可以被称为定时元数据轨道。
根据实施方式,定时元数据轨道中携带的元数据可以包含3D边界框信息、3D空间区域信息(或立方体区域信息)、3D图块信息或图块库信息中的至少一个。
根据实施方式,携带3D边界框信息的定时元数据轨道可以被称为3D边界框定时元数据轨道,并且携带3D空间区域信息的定时元数据轨道可以被称为3D空间区域定时元数据。根据实施方式,携带3D图块信息或图块库信息的定时元数据轨道可以被称为3D图块定时元数据轨道。
根据实施方式,3D边界框定时元数据轨道表示可以随时间推移动态变化的3D边界框信息。根据实施方式,可以使用“cdsc”轨道参考将3D边界框定时元数据轨道链接到携带部分或全部G-PCC比特流的相应轨道。根据实施方式,可以使用“cdsc”轨道参考将3D边界框定时元数据轨道链接到携带部分或全部G-PCC比特流的相应轨道组。内容描述参考“cdsc”将描述性或元数据轨道链接到其描述的内容。根据实施方式,可以使用“cdsc”轨道参考将元数据轨道链接到其描述的轨道。
根据实施方式,3D边界框信息(3DBoundingBoxInfoStruct())可以在3D边界框定时元数据轨道的样本条目和/或样本中携带。
根据实施方式,可以如下地定义3D边界框定时元数据轨道中的样本条目(GPCC3DBBSampleEntry)的句法。
aligned(8)class GPCC3DBBSampleEntry extends MetadataSampleEntry('dy3b'){
3DBoundingBoxInfoStruct();
}
根据实施方式,3D边界框定时元数据轨道的GPCC3DBBSampleEntry可以包含3DBoundingBoxInfoStruct(),并且3DBoundingBoxInfoStruct()包含包括相关点云数据的初始3D边界框信息的3D边界框信息。
根据实施方式,可以如下地定义3D边界框定时元数据轨道中的GPCC3DBBSample的句法。
aligned(8)class GPCC3DBBSample{
3DBoundingBoxInfoStruct();
}
根据实施方式,3D边界框定时元数据轨道的GPCC3DBBSample可以包含3DBoundingBoxInfoStruct()。3DBoundingBoxInfoStruct()表示的是随时间推移动态变化的相关点云数据的3D边界框信息。
例如,当携带部分或全部几何比特流的轨道具有3D边界框定时元数据轨道时,轨道中携带的点云数据的关联的3D边界框信息可以被视为是动态的。
至于3D边界框信息,即,3D边界框定时元数据轨道的样本条目和/或样本中所包含的3DBoundingBoxInfoStruct()中所包含的字段,请参照以上在“G-PCC 3D边界框信息”中给出的详细描述。将跳过其描述,以避免冗余描述。
根据实施方式,3D空间区域定时元数据轨道表示可以随时间推移动态变化的3D空间区域信息。根据实施方式,可以使用“cdsc”轨道参考将3D空间区域定时元数据轨道链接到携带关联的G-PCC比特流的相应轨道。根据实施方式,可以使用“cdsc”轨道参考将3D空间区域定时元数据轨道链接到携带关联的G-PCC比特流的相应轨道组。
根据实施方式,3D空间区域信息可以在3D空间区域定时元数据轨道的样本条目和/或样本中携带。
根据实施方式,可以如下地定义3D空间区域定时元数据轨道中的样本条目(GPCCSpatialRegionSampleEntry)的句法。
aligned(8)class GPCCSpatialRegionSampleEntry extendsMetadataSampleEntry(‘dy3r’){
CubicRegionInfoBox();
}
根据实施方式,3D空间区域定时元数据轨道的GPCCSpatialRegionSampleEntry可以包含CubicRegionInfoBox()。CubicRegionInfoBox()包含包括关联点云数据的初始3D空间区域信息的3D空间区域信息。即,CubicRegionInfoBox()可以包含应用于关联点云数据的默认3D空间区域信息。
根据实施方式,可以如下地定义3D空间区域定时元数据轨道中的样本(GPCCSpatialRegionSample)的句法。
aligned(8)class GPCCSpatialRegionSample{
CubicRegionSetStruct();
}
根据实施方式,3D空间区域定时元数据轨道的样本(GPCCSpatialRegionSample)可以包含CubicRegionSetStruct()。CubicRegionSetStruct()表示动态变化的点云数据的关联的3D空间区域信息。
例如,当携带部分或全部几何比特流的轨道具有3D空间区域定时元数据轨道时,轨道中携带的点云数据的关联的3D空间区域信息可以被视为是动态的。
至于3D边界框信息即3D空间区域定时元数据轨道的样本条目中所包含的CubicRegionInfoBox()和/或样本中所包含的CubicRegionSetStruct()中所包含的字段的细节,请参照以上在“G-PCC 3D边界框信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
根据实施方式,3D图块定时元数据轨道表示可以随时间推移动态变化的3D图块信息或图块库信息。根据实施方式,可以使用“cdsc”轨道参考将3D图块定时元数据轨道链接到携带关联的G-PCC比特流的相应轨道。根据实施方式,可以使用“cdsc”轨道参考将3D空间区域定时元数据轨道链接到携带关联的G-PCC比特流的相应轨道组。
根据实施方式,3D图块信息或图块库信息在3D图块定时元数据轨道的样本条目和/或样本中携带。
根据实施方式,可以如下地定义3D图块定时元数据轨道中的样本条目(GPCCTileInventorySampleEntry)的句法。
aligned(8)class GPCCTileInventorySampleEntry extendsMetadataSampleEntry('dyti'){
TileInfoStruct();
}
或者
aligned(8)class GPCCTileInventorySampleEntry extendsMetadataSampleEntry('dyti'){
TileInventoryBox();
}
根据实施方式,3D图块定时元数据轨道的样本条目(GPCCTileInventorySampleEntry)可以包含TileInfoStruct()或TileInventoryBox()。TileInfoStruct()可以包含包括关联的点云数据的初始3D图块信息的3D图块信息,并且TileInventoryBox()可以包含包括关联的点云数据的初始图块库信息的图块库信息。即,TileInfoStruct()可以包含应用于关联的点云数据的默认3D图块信息,并且TileInventoryBox()可以包含应用于关联的点云数据的默认图块库信息。
根据实施方式,可以如下地定义3D图块定时元数据轨道中的样本(GPCCTileInventorySample)的句法。
aligned(8)class GPCCTileInventorySample{
TileInfoStruct();
}
或者
aligned(8)class GPCCTileInventorySample{
TileInventoryStruct();
}
根据实施方式,3D图块定时元数据轨道的样本(GPCCTileInventorySample)可以包含TileInfoStruct()或TileInventoryStruct()。TileInfoStruct()表示动态变化的关联的点云数据的动态变化的3D图块信息,其动态地变化。TileInventoryStruct()表示关联的点云数据的动态变化的图块库信息。
例如,如果携带部分或全部几何比特流的轨道具有3D空间区域定时元数据轨道,则轨道中携带的点云数据的关联的3D图块信息或图块库信息可以被视为是动态的。
至于3D图块信息即3D图块定时元数据轨道的样本和/或样本条目中所包含的TileInfoStruct()中所包含的字段的细节,请参照以上在“G-PCC 3D图块信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。至于图块库信息即TileInventoryStruct()和/或TileInventoryBox()中所包含的字段的细节,请参照以上在“G-PCC 3D图块库信息结构”中给出的详细描述。将跳过其描述,以避免冗余描述。
如上所述,点云数据(即,边界框)可以被分割为一个或更多个图块,并且一个或更多个图块与一个或更多个3D空间区域相关。另外,用于支持点云数据的空间访问的信令信息(例如,3D边界框信息、3D空间区域信息、图块信息或图块库信息)不会随时间推移而变化(也被称为静态)或者可以随时间推移动态变化。在本公开中,随时间推移不变化的信令信息可以被称为静态信令信息,并且随时间推移动态变化的信令信息可以被称为动态信令信息。例如,3D空间区域信息可以是静态3D空间区域信息或动态3D空间区域信息。
根据实施方式,当点云数据(例如,3D图)可以被动态地获取时,分割为一个或更多个图块可以随时间推移是动态的。因此,空间区域与点云数据的对应部分之间的关联性也可以是动态的。根据实施方式,为了使得能够在解码之前对点云数据进行空间访问,需要以文件级别(或文件格式级别)有效地指示空间区域与对应的点云数据之间的关联性。为此目的,如上所述,发送装置可以使静态信令信息通过携带几何信息和/或属性信息和/或参数集的轨道携带,并使可以随时间推移动态变化的信息通过定时元数据轨道携带。
即,诸如3D边界框信息、3D空间区域信息、图块信息和/或图块库信息这样的信令信息可以在单个轨道或多个轨道中的样本、样本条目或样本组、轨道组、单独元数据轨道的样本或样本条目中传送。
相应地,接收装置或播放器可以基于信令信息来提取、解码或渲染仅存在于必要空间区域中的点云数据。
另外,当与特定3D图块区域关联的点云数据在一个或更多个轨道中传送时,可以提供与轨道分组相关的信令信息,以允许将要使用该区域的点云数据的接收装置从关联的轨道获取点云数据。具体地,与对应的轨道组关联的动态信息可以在元数据轨道等中传送。
图49是根据实施方式的用于发送点云数据的方法的流程图。
根据实施方式的点云数据发送方法可以包括对点云数据进行编码的操作71001、将包含编码后的点云数据和信令信息的比特流封装到文件中的操作71002以及发送文件的操作71003。
在对点云数据进行编码的操作71001中,可以进行图1的点云视频编码器10002、图2的编码20001、图4的点云视频编码器、图12的点云视频编码器、图15的点云编码和图18的点云编码器的操作中的一些或全部。
对点云数据进行编码的操作71001可以包括对点云数据的几何数据(或被称为几何信息)进行编码以及对点云数据的属性数据(或被称为属性信息)进行编码。在这种情况下,根据实施方式,可以以3D块单元(例如,切片单元或包括一个或更多个切片的图块单元)执行编码操作。为此目的,在编码之前,可以实施将点云数据(即,边界框)分割为一个或更多个图块并将各个图块分割为一个或更多个切片的过程。此时,一个或更多个图块可以与一个或更多个3D空间区域相关。
在实施方式中,将包含编码后的点云数据和信令信息的G-PCC比特流封装到文件中的操作71002包括将由图41中所示的TLV封装结构构成的G-PCC比特流封装到基于ISOBMFF的文件中。根据实施方式,将包含编码后的点云数据和信令信息的G-PCC比特流封装到文件中的操作71002可以由图14、图15或图18的文件/段封装器执行。
根据实施方式,G-PCC比特流中所包含的TLV封装结构可以包含诸如SPS、GPS、APS或图块库(或TPS)、几何数据(被称为编码后的几何比特流或几何切片)、属性数据(被称为编码后的属性比特流或属性切片)和/或元数据(或编码元数据比特流或元数据切片)这样的信令信息。元数据也可以被视为信令信息。至于相应TLV封装结构的细节,请参照以上参照图41至图43进行的描述。将跳过其描述。
当G-PCC比特流被封装到文件中时,G-PCC比特流可以被存储在文件的单个轨道或多个轨道中。当G-PCC比特流被存储在文件的单个轨道或多个轨道中(即,在单个轨道或多个轨道中发送)时,SPS、GPS、APS或图块库(或TPS)可以被包括在轨道的样本条目或样本中。然而,几何比特流(即,几何切片)、属性比特流(即,属性切片)和/或元数据比特流(即,元数据切片)被包括在轨道的样本中。在这种情况下,当样本由多个TLV封装结构构成时,多个TLV封装结构中的各个TLV封装结构可以被作为子样本存储。至于当由TLV封装结构构成的G-PCC比特流被存储在文件的单个轨道或多个轨道中时文件的详细结构,请参照以上参照图44至图47进行的描述。
另外,当在如上所述的封装操作71002中将G-PCC比特流存储在文件的单个轨道或多个轨道中时,可以执行相关样本的分组和相关轨道的分组。
根据实施方式,用于支持点云数据的空间访问的信令信息(即,与一个或更多个3D空间区域相关的信息)可以包括3D边界框信息、3D空间区域信息以及图块信息或图块库信息。在封装操作71002中,信令信息可以在单个轨道或多个轨道中的样本、样本条目或样本组、轨道组、或单独的元数据轨道中通知。
根据实施方式,随时间推移不变化的静态信令信息可以在单个轨道或多个轨道中的样本、样本条目或样本组或轨道组中通知,而随时间推移动态变化的动态信令信息可以在元数据轨道的样本中通知。另外,初始3D边界框信息、初始3D空间区域信息、初始图块信息或初始图块库信息可以在元数据轨道的样本条目中通知。
图50是根据实施方式的用于接收点云数据的方法的流程图。
点云数据接收方法可以包括接收文件的操作81001、将接收到的文件解封装为包含点云数据和信令信息的比特流的操作81002以及对点云数据进行解码的操作81003以及渲染解码后的点云数据的操作81003。
根据实施方式,图41的G-PCC比特流可以被存储在接收操作81001中接收的基于ISOBMFF的文件的单个轨道或多个轨道中。
根据实施方式,在解封装操作81002中,执行解封装以从接收到的文件中的单个轨道或多个轨道的样本条目和/或样本获取由图41的TLV封装结构构成的G-PCC比特流。
TLV封装结构可以包含诸如SPS、GPS、APS或图块库(或TPS)、几何切片(或几何比特流)、零个或更多个属性切片(或属性比特流)和/或元数据切片(或元数据比特流)这样的信令信息。至于相应的TLV封装结构的细节,请参照对图41至图43的描述。
根据实施方式,在解封装操作81002中,可以从单个轨道或多个轨道中的样本、样本条目、样本组或轨道组或者从单独的元数据轨道获取用于支持空间访问的信令信息。用于支持空间访问的信令信息(即,与一个或更多个3D空间区域相关的信息)可以包括3D边界框信息、3D空间区域信息(或立方体区域信息)、图块信息和/或图块库信息。
根据实施方式,在解封装操作81002中,可以由图14、图16或图20的文件/段解封装器执行解封装。
根据实施方式,在解封装操作81002或解码操作81003中,可以从构成G-PCC比特流的TLV封装结构获取诸如SPS、GPS、APS或图块库(或TPS)、几何切片(或几何比特流)、零个或更多个属性切片(或属性比特流)和/或元数据切片(或元数据比特流)这样的信令信息。
根据实施方式,解码操作81003可以包括几何解码操作、属性解码操作和点云数据重构操作。在几何解码操作中,基于信令信息来执行几何数据(或被称为几何信息)的解码。在属性解码操作中,基于信令信息来执行属性数据(或属性信息)的解码。在点云数据重构操作中,基于解码后的几何数据和解码后的属性数据来重构(恢复)点云数据。在解码操作81003中,可以以3D块单元(例如,切片单元或包括一个或更多个切片的图块单元)执行解码。此外,可以在解封装操作81002或解码操作81003中使用用于支持空间访问的信令信息(即,与一个或更多个3D空间区域相关的信息)。信令信息可以包括3D边界框信息、3D空间区域信息(或立方体区域信息)、图块信息和/或图块库信息。例如,解码操作81003可以基于用于支持空间访问的信令信息(即,文件级别的信令信息)对属于与特定3D空间区域相关的图块的几何数据和属性数据进行解码。
根据实施方式,在解码操作81003中,当重构(或恢复)的点云数据是图块单元和/或切片单元时,可以基于比特流级别的信令信息来实施发送方的空间分割的逆过程。例如,当如图19中所示在发送方将边界框分割为图块和切片时,可以基于信令信息来组合切片和/或图块,以重构点云数据的边界框。作为另一示例,可以通过基于信令信息组合一些切片和/或一些图块来重构边界框的一部分。
在解码操作81003中,可以执行图1的点云视频解码器10006、图2的解码20003、图11的点云视频解码器、图13的点云视频解码器、图14的点云解码、图16的点云解码和图20的点云视频解码器的操作中的一些或全部。
根据实施方式,在渲染操作81004中,可以根据各种渲染方法来渲染重构的点云数据。例如,点云内容中的点可以被渲染为具有一定厚度的顶点、以顶点位置为中心的特定最小尺寸的立方体或以顶点位置为中心的圆。根据实施方式,渲染操作81004可以基于信令信息来通过显示器(例如,VR/AR显示器、通用显示器等)将点云内容的全部或部分提供给用户。信令信息可以是在解封装操作81002中获取的3D边界框信息、3D空间区域信息(或立方体区域信息)、图块信息、图块库信息、从感测/跟踪单元获取的头方位信息和视口信息中的至少一个。
渲染操作81004可以由图1的渲染器10007、图2的渲染20004、图13的渲染器13011、图14的渲染器或图16的点云渲染器执行。
这样,接收装置或播放器可以基于用于支持空间访问的信令信息来提取、解码或渲染仅存在于必要空间区域中的点云数据。
上述各个部分、模块或单元可以是执行存储在存储器(或存储单元)中的连续过程的软件、处理器或硬件部分。在以上实施方式中描述的各个步骤可以由处理器、软件或硬件部分执行。在以上实施方式中描述的各个模块/块/单元可以作为处理器、软件或硬件操作。另外,实施方式提出的方法可以被作为代码执行。该代码可以被写到处理器可读存储介质上,因此,供被由设备提供的处理器读取。
在本说明书中,当部分“包括”或“包含”元件时,这意味着,该部分还包括或包括另一个元件,除非另外提到。另外,说明书中公开的术语“...模块(或单元)”意指用于处理至少一个功能或操作的单元,并且可以由硬件、软件或硬件与软件的组合来实现。
尽管为了简便起见参考附图中的每一个说明了实施方式,但可以通过合并在附图中例示的实施方式来设计新的实施方式。如果本领域的技术人员设计出记录有用于执行以上描述中提到的实施方式的程序的计算机可读的记录介质,则该记录介质可以落入所附权利要求书及其等同物的范围内。
设备和方法可以不受上述实施方式的配置和方法的限制。上述实施方式可以通过完全或部分地相互选择性组合来配置,以使得能够进行各种修改。
尽管已经参考附图描述了优选实施方式,但本领域技术人员将领会,在不脱离在所附权利要求书中描述的本公开的精神或范围的情况下,可以在实施方式中进行各种修改和变形。这种修改将不被独立于实施方式的技术思路或观点来理解。
实施方式的设备的各种元件可以由硬件、软件、固件或其组合来实现。实施方式中的各种元件可以由单个芯片(例如,单个硬件电路)来实现。根据实施方式,根据实施方式的部件可以被分别实现为单独的芯片。根据实施方式,根据实施方式的设备的至少一个或更多个部件可以包括能够执行一个或更多个程序的一个或更多个处理器。所述一个或更多个程序可以执行根据实施方式的操作/方法中的任一个或更多个,或包括用于执行其的指令。用于执行根据实施方式的设备的方法/操作的可执行指令可以被存储在非暂态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 (15)

1.一种点云数据发送方法,所述点云数据发送方法包括以下步骤:
对点云数据进行编码;
将包括编码后的点云数据的比特流封装到文件中;以及
发送所述文件,
其中,所述比特流被存储在所述文件的单个轨道中或多个轨道中,
其中,所述文件还包括信令数据,
其中,所述信令数据包括至少一个参数集和空间区域信息,
其中,所述编码后的点云数据包括几何数据和属性数据。
2.根据权利要求1所述的点云数据发送方法,
其中,所述点云数据被划分为一个或更多个3D空间区域,并且其中,所述空间区域信息至少包括用于标识各个3D空间区域的标识信息、锚点的位置信息、或各个3D空间区域的大小信息,所述锚点表示各个3D空间区域的原点。
3.根据权利要求2所述的点云数据发送方法,
其中,所述空间区域信息是随时间推移不变化的静态空间区域信息,或随时间推移动态变化的动态空间区域信息。
4.根据权利要求1所述的点云数据发送方法,
其中,所述比特流由数据单元构成,
其中,各个数据单元包括类型信息、长度信息和载荷,
其中,所述类型信息指示所述载荷中的数据的类型,所述长度信息指示所述载荷的长度,并且所述载荷包括所述几何数据、所述属性数据、和所述至少一个参数集中的一者。
5.根据权利要求1所述的点云数据发送方法,
其中,在所述比特流被存储在所述文件的多个轨道中的情况下,所述信令数据还包括用于指示各个轨道中存储的分量的类型的分量类型信息,其中,所述分量是所述几何数据或属性数据,并且其中,所述分量类型信息在各个轨道的样本条目中通知。
6.一种点云数据发送装置,所述点云数据发送装置包括:
编码器,所述编码器对点云数据进行编码;
封装器,所述封装器将包括编码后的点云数据的比特流封装到文件中;以及
发送器,所述发送器发送所述文件,
其中,所述比特流被存储在所述文件的单个轨道中或多个轨道中,
其中,所述文件还包括信令数据,
其中,所述信令数据包括至少一个参数集和空间区域信息,
其中,所述编码后的点云数据包括几何数据和属性数据。
7.根据权利要求6所述的点云数据发送装置,
其中,所述点云数据被划分为一个或更多个3D空间区域,并且其中,所述空间区域信息至少包括用于标识各个3D空间区域的标识信息、锚点的位置信息、或各个3D空间区域的大小信息,所述锚点表示各个3D空间区域的原点。
8.根据权利要求7所述的点云数据发送装置,
其中,所述空间区域信息是随时间推移不变化的静态空间区域信息或随时间推移动态变化的动态空间区域信息。
9.根据权利要求6所述的点云数据发送装置,
其中,所述比特流由数据单元构成,
其中,各个数据单元包括类型信息、长度信息和载荷,并且
其中,所述类型信息指示所述载荷中的数据的类型,所述长度信息指示所述载荷的长度,并且所述载荷包括所述几何数据、所述属性数据、和所述至少一个参数集中的一者。
10.根据权利要求6所述的点云数据发送装置,
其中,在所述比特流被存储在所述文件的多个轨道中的情况下,所述信令数据还包括用于指示各个轨道中存储的分量的类型的分量类型信息,其中,所述分量是几何数据或所述属性数据,并且其中,所述分量类型信息在各个轨道的样本条目中通知。
11.一种点云数据接收装置,该点云数据接收装置包括:
接收器,所述接收器接收文件;
解封装器,所述解封装器将所述文件解封装为包括点云数据的比特流,其中,所述比特流存储在所述文件的单个轨道中或多个轨道中,并且其中,所述文件还包括信令数据;
解码器,所述解码器基于所述信令数据对所述点云数据的一部分或全部进行解码;以及
渲染器,所述渲染器渲染解码后的点云数据的一部分或全部,
其中,所述信令数据包括至少一个参数集和空间区域信息,
其中,所述点云数据包括几何数据和属性数据。
12.根据权利要求11所述的点云数据接收装置,
其中,所述点云数据被划分为一个或更多个3D空间区域,并且其中,所述空间区域信息至少包括用于标识各个3D空间区域的标识信息、锚点的位置信息、或各个3D空间区域的大小信息,所述锚点表示各个3D空间区域的原点。
13.根据权利要求12所述的点云数据接收装置,
其中,所述空间区域信息是随时间推移不变化的静态空间区域信息或随时间推移动态变化的动态空间区域信息。
14.根据权利要求11所述的点云数据接收装置,
其中,所述比特流由数据单元构成,
其中,各个数据单元包括类型信息、长度信息和载荷,并且
其中,所述类型信息指示所述载荷中的数据的类型,所述长度信息指示所述载荷的长度,并且所述载荷包括所述几何数据、所述属性数据、和所述至少一个参数集中的一者。
15.根据权利要求11所述的点云数据接收装置,
其中,在所述比特流被存储在所述文件的多个轨道中的情况下,所述信令数据还包括用于指示各个轨道中存储的分量的类型的分量类型信息,其中,所述分量是所述几何数据或所述属性数据,并且其中,所述分量类型信息在各个轨道的样本条目中通知。
CN202180028369.1A 2020-04-14 2021-01-15 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 Active CN115398926B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063009955P 2020-04-14 2020-04-14
US63/009,955 2020-04-14
PCT/KR2021/000587 WO2021210763A1 (ko) 2020-04-14 2021-01-15 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Publications (2)

Publication Number Publication Date
CN115398926A true CN115398926A (zh) 2022-11-25
CN115398926B CN115398926B (zh) 2023-09-19

Family

ID=78007230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180028369.1A Active CN115398926B (zh) 2020-04-14 2021-01-15 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法

Country Status (5)

Country Link
US (1) US11315270B2 (zh)
EP (1) EP4138397A4 (zh)
KR (1) KR102355634B1 (zh)
CN (1) CN115398926B (zh)
WO (1) WO2021210763A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11350132B2 (en) * 2020-01-08 2022-05-31 Qualcomm Incorporated High level syntax for geometry-based point cloud compression
US11954891B2 (en) * 2020-06-30 2024-04-09 Electronics And Telecommunications Research Institute Method of compressing occupancy map of three-dimensional point cloud
CN116781913A (zh) * 2022-03-11 2023-09-19 腾讯科技(深圳)有限公司 点云媒体的编解码方法及相关产品
US11880499B2 (en) * 2022-05-12 2024-01-23 Science Applications International Corporation Systems and methods for providing observation scenes corresponding to extended reality (XR) content
WO2023249999A1 (en) * 2022-06-23 2023-12-28 Innopeak Technology, Inc. System and method for geometry point cloud coding
WO2024006436A1 (en) * 2022-07-01 2024-01-04 Innopeak Technology, Inc. Bitstream encoding and decoding for geometry point cloud coding
CN115396647B (zh) * 2022-08-22 2024-04-26 腾讯科技(深圳)有限公司 一种沉浸媒体的数据处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3429206A1 (en) * 2017-07-13 2019-01-16 Thomson Licensing Method and device for encoding a point cloud
US20190087978A1 (en) * 2017-09-18 2019-03-21 Apple Inc. Point cloud compression using non-cubic projections and masks
US20190197739A1 (en) * 2017-12-22 2019-06-27 Samsung Electronics Co., Ltd. Handling duplicate points in point cloud compression
CN110012279A (zh) * 2018-01-05 2019-07-12 上海交通大学 基于3d点云数据的分视角压缩和传输方法及系统
WO2020070379A1 (en) * 2018-10-03 2020-04-09 Nokia Technologies Oy Method and apparatus for storage and signaling of compressed point clouds

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390110B2 (en) * 2012-05-02 2016-07-12 Level Set Systems Inc. Method and apparatus for compressing three-dimensional point cloud data
EP3170047A4 (en) * 2014-07-15 2018-05-30 Ostendo Technologies, Inc. Preprocessor for full parallax light field compression
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
US11037361B2 (en) * 2016-08-19 2021-06-15 Movidius Ltd. Path planning using sparse volumetric data
US10535161B2 (en) * 2017-11-09 2020-01-14 Samsung Electronics Co., Ltd. Point cloud compression using non-orthogonal projection
EP3489900A1 (en) * 2017-11-23 2019-05-29 Thomson Licensing Method, apparatus and stream for encoding/decoding volumetric video
US10939129B2 (en) * 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US10909726B2 (en) * 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
WO2019199092A1 (ko) * 2018-04-11 2019-10-17 삼성전자 주식회사 멀티미디어 시스템에서의 데이터 처리 장치 및 방법
KR20210074278A (ko) * 2018-09-18 2021-06-21 브이아이디 스케일, 인크. 포인트 클라우드 압축 비트 스트림 포맷을 위한 방법 및 장치
WO2020071111A1 (ja) * 2018-10-02 2020-04-09 ソニー株式会社 情報処理装置および情報処理方法、並びにプログラム
US11284091B2 (en) * 2019-03-25 2022-03-22 Apple Inc. Video based point cloud compression-patch alignment and size determination in bounding box
EP3712854A1 (en) * 2019-03-19 2020-09-23 Nokia Technologies Oy Method and apparatus for storage and signaling of static point cloud data
US11388437B2 (en) * 2019-06-28 2022-07-12 Tencent America LLC View-position and angle dependent processing of point cloud data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3429206A1 (en) * 2017-07-13 2019-01-16 Thomson Licensing Method and device for encoding a point cloud
US20190087978A1 (en) * 2017-09-18 2019-03-21 Apple Inc. Point cloud compression using non-cubic projections and masks
US20190197739A1 (en) * 2017-12-22 2019-06-27 Samsung Electronics Co., Ltd. Handling duplicate points in point cloud compression
CN110012279A (zh) * 2018-01-05 2019-07-12 上海交通大学 基于3d点云数据的分视角压缩和传输方法及系统
WO2020070379A1 (en) * 2018-10-03 2020-04-09 Nokia Technologies Oy Method and apparatus for storage and signaling of compressed point clouds

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
D. GRAZIOSI等: "An overview of ongoing point cloud compression standardization activities: video-based (V-PCC) and geometry-based (G-PCC)", APSIPA *
JIANQIANG WANG 等: "Learned Point Cloud Geometry Compression", ARXIV:1990.12037V1 *

Also Published As

Publication number Publication date
KR102355634B1 (ko) 2022-02-08
KR20210127600A (ko) 2021-10-22
WO2021210763A1 (ko) 2021-10-21
US20210319571A1 (en) 2021-10-14
EP4138397A4 (en) 2024-03-27
EP4138397A1 (en) 2023-02-22
US11315270B2 (en) 2022-04-26
CN115398926B (zh) 2023-09-19

Similar Documents

Publication Publication Date Title
US11122102B2 (en) Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus and point cloud data reception method
KR102406846B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN115398926B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US20210329052A1 (en) Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus and point cloud data reception method
CN115443652B (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN115398890B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
EP3992910A1 (en) Apparatus and method for processing point cloud data
CN114930813A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
KR20210132200A (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신장치 및 포인트 클라우드 데이터 수신 방법
US20220368751A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
JP2023509537A (ja) ポイントクラウドデ-タ送信装置、ポイントクラウドデ-タ送信方法、ポイントクラウドデ-タ受信装置及びポイントクラウドデ-タ受信方法
US11601634B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
KR102373833B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US20240137578A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN115769583A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115668919A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115380528A (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
US20220351421A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN115428442B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US20230014844A1 (en) Transmission device of point cloud data and method performed by transmission device, and reception device of point cloud data and method performed by reception device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant