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

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

Info

Publication number
CN116508318A
CN116508318A CN202180073263.3A CN202180073263A CN116508318A CN 116508318 A CN116508318 A CN 116508318A CN 202180073263 A CN202180073263 A CN 202180073263A CN 116508318 A CN116508318 A CN 116508318A
Authority
CN
China
Prior art keywords
point cloud
data
attribute
slice
geometric
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180073263.3A
Other languages
English (en)
Inventor
吴炫默
吴世珍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Publication of CN116508318A publication Critical patent/CN116508318A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Communication Control (AREA)

Abstract

根据实施方式的点云数据发送方法可以包括以下步骤:对点云数据的几何数据进行编码;基于几何数据对点云数据的属性数据进行编码;以及发送编码后的几何数据、编码后的属性数据和信令数据。

Description

点云数据发送装置、点云数据发送方法、点云数据接收装置及 点云数据接收方法
技术领域
实施方式涉及用于处理点云内容的方法和设备。
背景技术
点云内容是由点云表示的内容,点云是属于表示三维空间(或体积)的坐标系的点的集合。点云内容可以表示以三维配置的媒体,并用于提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、扩展现实(XR)和自动驾驶这样的各种服务。然而,需要几万到几十万个点数据来表示点云内容。因此,需要高效处理大量点数据的方法。
换句话说,需要高吞吐量来发送和接收点云的数据。因此,在发送和接收点云数据的过程中(其中执行了用于压缩的编码和用于解压缩的解码),由于点云数据量大,所以计算操作是复杂且耗时的。
发明内容
技术问题
为解决上述问题而设计的本公开的目的是提供用于高效地发送和接收点云的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的是提供用于应对等待时间和编码/解码复杂度的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的目的不限于上文已经描述的内容,并且本公开的范围可以扩展到可以由本领域技术人员基于本文档的全部内容推断的其它目的。
技术方案
为了实现这些目的和其它优点并且根据实施方式,一种点云数据发送方法包括以下步骤:对点云数据的几何数据进行编码;基于所述几何数据对所述点云数据的属性数据进行编码;以及发送编码后的几何数据、编码后的属性数据和信令数据。
在一个实施方式中,所述编码后的几何数据可以被分段成一个或更多个几何切片,其中,所述一个或更多个几何切片中的一个几何切片可以包含基于直接编码的几何数据和基于算术熵编码的几何数据。
在一个实施方式中,所述编码后的几何数据可以被分段成一个或更多个几何切片,其中,所述一个或更多个几何切片中的一个几何切片可以包含基于直接编码的几何数据,并且所述一个或更多个几何切片中的一个几何切片可以包含基于算术熵编码的几何数据。
在一个实施方式中,所述编码后的属性数据可以被分段成一个或更多个属性切片。
在一个实施方式中,所述信令数据可以包括关于所述一个或更多个切片的信息以及与直接编码相关的信息。
根据实施方式,一种点云数据发送装置包括:几何编码器,所述几何编码器被配置为对点云数据的几何数据进行编码;属性编码器,所述属性编码器被配置为基于所述几何数据对所述点云数据的属性数据进行编码;以及发送器,所述发送器被配置为发送编码后的几何数据、编码后的属性数据和信令数据。
在一个实施方式中,所述编码后的几何数据可以被分段成一个或更多个几何切片,其中,所述一个或更多个几何切片中的一个几何切片可以包含基于直接编码的几何数据和基于算术熵编码的几何数据。
在一个实施方式中,所述编码后的几何数据可以被分段成一个或更多个几何切片,其中,所述一个或更多个几何切片中的一个几何切片可以包含基于直接编码的几何数据,并且所述一个或更多个几何切片中的一个几何切片可以包含基于算术熵编码的几何数据。
在一个实施方式中,所述编码后的属性数据可以被分段成一个或更多个几何切片。
在一个实施方式中,所述信令数据可以包括关于所述一个或更多个切片的信息以及与直接编码相关的信息。
根据实施方式,一种点云数据接收装置可以包括以下步骤:接收几何数据、属性数据和信令数据;基于所述信令数据对所述几何数据进行解码;基于所述信令数据和解码后的几何数据对所述属性数据进行解码;以及基于所述信令数据对解码后的点云数据进行渲染。
在一个实施方式中,所述几何数据可以被包含在一个或更多个几何切片中,其中,所述一个或更多个几何切片中的一个几何切片可以包含基于直接编码的几何数据和基于算术熵编码的几何数据。
在一个实施方式中,所述几何数据可以被包含在一个或更多个几何切片中,其中,所述一个或更多个几何切片中的一个几何切片可以包含基于直接编码的几何数据,并且所述一个或更多个几何切片中的一个几何切片可以包含基于算术熵编码的几何数据。
在一个实施方式中,所述属性数据被包含在一个或更多个属性切片中。
在一个实施方式中,所述信令数据可以包括关于所述一个或更多个切片的信息以及与直接编码相关的信息。
有益效果
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云接收装置可以提供高质量的点云服务。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云接收装置可以实现各种视频编解码方法。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云接收装置可以提供诸如自动驾驶服务(或自主驾驶服务)这样的通用点云内容。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以执行点云数据的空间自适应分割以独立地对点云数据进行编码和解码,由此提高并行处理并提供可扩展性。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以通过以图块和/或切片为单位对点云数据进行分割来执行编码和解码并因此用信号通知必要数据,由此提高点云的编码和解码性能。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以根据预定准则划分并发送点云数据的压缩数据。另外,当使用分层编码时,可以根据层对压缩数据进行划分和发送。因此,可以提高发送装置的存储和发送效率。
根据基于实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置,当比特流被划分成切片并被递送时,接收器可以根据解码器性能或要表示的点云数据的密度选择性地将比特流递送至解码器。在这种情况下,当在解码之前执行选择时,可以提高解码器效率,并且可以支持各种性能的解码器。另外,当使用直接压缩时,可以通过独立切片或基于层组的切片配置提高可缩放性效率。
附图说明
附图被包括进来以提供对本公开的进一步理解,并且被并入本申请的部分中并构成本申请的部分,附图例示了本公开的实施方式并与说明书一起用来说明本公开的原理。
图1例示了根据实施方式的示例性点云内容提供系统。
图2是例示了根据实施方式的点云内容提供操作的框图。
图3例示了根据实施方式的捕获点云视频的示例性过程。
图4例示了根据实施方式的点云视频编码器的示例性框图。
图5例示了根据实施方式的3D空间中的体素的示例。
图6例示了根据实施方式的八叉树和占用码的示例。
图7例示了根据实施方式的邻近节点图案的示例。
图8例示了根据实施方式的针对每个LOD的点云内容的点配置的示例。
图9例示了根据实施方式的针对每个LOD的点云内容的点配置的示例。
图10例示了根据实施方式的点云视频解码器的框图的示例。
图11例示了根据实施方式的点云视频解码器的示例。
图12例示了根据实施方式的发送装置的点云视频编码的配置。
图13例示了根据实施方式的接收装置的点云视频解码的配置。
图14例示了根据实施方式的可结合点云数据方法/装置操作的示例性结构。
图15和图16例示了根据实施方式的对点云数据进行编码、发送和解码的过程。
图17是例示了根据实施方式的基于层的点云数据配置的示例的图。
图18的(a)示出了根据实施方式的几何数据的比特流结构,并且图18的(b)示出了根据实施方式的属性数据的比特流结构。
图19是示出了根据实施方式的用于递送被划分成层(或LoD)的比特流的比特流配置的示例的图。
图20例示了根据实施方式的当将几何比特流和属性比特流复用成一个比特流时使用的比特流排序方法的示例。
图21例示了根据实施方式的当将几何比特流和属性比特流复用成一个比特流时使用的比特流排序方法的另一示例。
图22的(a)至图22的(c)是例示了根据实施方式的对称几何属性选择的示例的图。
图23的(a)至图23的(c)是例示了根据实施方式的非对称几何属性选择的示例的图。
图24的(a)至图24的(c)例示了根据实施方式的配置包括点云数据的切片的方法的示例。
图25的(a)是示出了根据实施方式的包括在单个切片中的几何树结构的示例的图,并且图25的(b)是示出了包括在分段后的切片中的几何树结构的示例的图。
图26的(a)是示出了根据实施方式的被包含在单个切片中的几何树结构的示例的图,并且图26的(b)是示出了被包含在分段后的切片中的几何树结构的示例的图。
图27的(a)是示出了根据实施方式的被包含在单个切片中的几何树结构的另一示例的图,并且图27的(b)是示出了被包含在分段后的切片中的几何树结构的另一示例的图。
图28例示了根据实施方式的八叉树和直接模式的示例。
图29是例示了根据实施方式的直接编码的流程图。
图30的(a)是示出了算术熵编码(AEC)后的比特流的示例的图,并且图30的(b)是示出了直接编码(DC)后的比特流的示例的图。
图31的(a)是示出了根据实施方式的几何树结构和切片分段的另一示例的图,并且图31的(b)是示出了根据实施方式的多个AEC切片和一个DC切片的示例的图。
图32的(a)是示出了根据实施方式的几何树结构和切片分段的另一示例的图,并且图32的(b)是示出了根据实施方式的AEC切片和DC切片的另一示例的图。
图33的(a)是示出了根据实施方式的几何树结构和切片分段的另一示例的图,并且图33的(b)是示出了根据实施方式的AEC切片和DC切片的另一示例的图。
图34是示出了根据实施方式的用于发送/接收的点云数据的示例性比特流结构的图。
图35示出了根据实施方式的序列参数集的语法结构的实施方式。
图36示出了根据实施方式的序列参数集的语法结构的另一实施方式。
图37示出了根据实施方式的几何参数集的语法结构的示例。
图38示出了根据实施方式的几何参数集的语法结构的另一示例。
图39示出了根据实施方式的属性参数集的语法结构的示例。
图40示出了根据实施方式的属性参数集的语法结构的示例。
图41示出了根据实施方式的几何切片比特流()的语法结构的示例。
图42示出了根据实施方式的几何切片头的语法结构的示例。
图43示出了根据实施方式的几何数据单元头的语法结构的示例。
图44示出了根据实施方式的几何数据单元的语法结构的示例。
图45示出了根据实施方式的属性切片比特流()的语法结构的示例。
图46示出了根据实施方式的属性切片头的语法结构的示例。
图47示出了根据实施方式的属性数据单元头的语法结构的另一示例。
图48示出了根据实施方式的属性数据单元的语法结构的另一示例。
图49是例示了根据实施方式的点云发送装置的另一示例的图。
图50是例示了根据实施方式的点云接收装置的另一示例的框图。
图51是例示了根据实施方式的点云接收装置的操作的示例的流程图。
图52例示了根据实施方式的点云数据的编码、发送和解码。
具体实施方式
现在,将参照附图根据本文中公开的示例性实施方式详细给出描述。为了参照附图简要描述,可为相同或等同的部件提供相同的标号,其描述将不再重复。应该注意,以下示例仅用于体现本公开,并不限制本公开的范围。本公开所属技术领域的专家从本公开的详细描述和示例中可以容易地推断出的内容将被解释为在本公开的范围内。
本说明书中的详细描述应该在所有方面都被解释为例示性而非限制性的。本公开的范围应该由所附权利要求及其法律等同物来确定,并且落入所附权利要求的含义和等同范围内的所有改变旨在被涵盖在本文中。
现在,将详细参照本公开的优选实施方式,在附图中例示了这些实施方式的示例。下文将参照附图给出的详细描述旨在解释本公开的示例性实施方式,而非示出可以根据本公开实现的仅有的实施方式。以下详细描述包括具体细节,以提供对本公开的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践本公开。虽然在本公开中使用的大多数术语已选自本领域中广泛使用的通用术语,但申请人已任意选择一些术语,并且在下面的描述中将根据需要详细解释它们的含义。因此,应当基于术语的本意而非它们的简单名称或含义来理解本公开。另外,以下的附图和详细描述不应该被解释为限于具体描述的实施方式,而应该被解释为包括附图和详细描述中描述的实施方式的等同物或替代物。
图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中所示,可以基于一个或更多个相机的捕获操作来生成点云内容。在这种情况下,坐标系在每个相机当中是不同的,因此,点云内容提供系统可以在捕获操作之前校准一个或更多个相机以设置全局坐标系。另外,点云内容提供系统可以通过将任意图像和/或视频与通过上述捕获技术捕获的图像和/或视频进行合成来生成点云内容。点云内容提供系统在其生成表示虚拟空间的点云内容时不可以执行图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)几何编码和熵编码。直接编码和三角汤几何编码被选择性地或组合地应用。几何编码不限于上述示例。
如图中所示,根据实施方式的坐标变换单元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变换所述一个或更多个点的属性。当执行三角汤几何编码时,属性变换单元40007可以基于三角汤几何编码来变换属性。
属性变换单元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]
如图6的上部的中间所示,整个3D空间可以根据分区被划分为八个空间。每个划分空间由具有六个面的立方体表示。如图6的右上侧所示,基于坐标系的轴(例如,X轴、Y轴和Z轴)再次划分八个空间中的每一个。因此,每个空间被划分成八个更小的空间。所划分的更小空间也由具有六个面的立方体表示。应用该划分方案,直到八叉树的叶节点成为体素为止。
图6的下部示出了八叉树占用码。生成八叉树的占用码,以指示通过划分一个空间而产生的八个划分空间中的每一个是否包含至少一个点。因此,单个占用码由八个子节点表示。每个子节点表示所划分空间的占用,并且子节点具有1位的值。因此,占用码被表示为8位代码。也就是说,当在与子节点对应的空间中包含至少一个点时,该节点被赋予值1。当在对应于子节点的空间中不包含点(空间为空)时,该节点被赋予值0。由于图6中示出的占用码为00100001,因此它指示与八个子节点当中的第三个子节点和第八个子节点对应的空间各自包含至少一个点。如图中所示,第三个子节点和第八个子节点中的每一个具有8个子节点,并且子节点用8位占用码表示。该图示出第三个子节点的占用码为10000111,并且第八个子节点的占用码为01001111。根据实施方式的点云视频编码器(例如,算术编码器40004)可以对占用码执行熵编码。为了提高压缩效率,点云视频编码器可以对占用码执行帧内/帧间编码。根据实施方式的接收装置(例如,接收装置10004或点云视频解码器10006)基于占用码来重构八叉树。
根据实施方式的点云视频编码器(例如,八叉树分析单元40002)可以执行体素化和八叉树编码,以存储点的位置。然而,点并不总是均匀地分布在3D空间中,因此会有其中存在较少点的特定区域。因此,对整个3D空间执行体素化是低效的。例如,当特定区域包含的点较少时,不需要在特定区域中执行体素化。
因此,对于上述特定区域(或八叉树的叶节点以外的节点),根据实施方式的点云视频编码器可以跳过体素化并执行直接编码,以对特定区域中包括的点的位置直接进行编码。根据实施方式的直接编码点的坐标被称为直接编码模式(DCM)。根据实施方式的点云视频编码器还可以基于表面模型来执行三角汤几何编码,以基于体素来重构特定区域(或节点)中的点的位置。三角汤几何编码是将对象表示为一系列三角形网格的几何编码。因此,点云视频解码器可以从网格表面生成点云。可以选择性执行根据实施方式的三角汤几何编码和直接编码。另外,可以结合八叉树几何编码(或八叉树编码)来执行根据实施方式的三角汤几何编码和直接编码。
为了执行直接编码,应该启用使用直接模式以应用直接编码的选项。将被应用直接编码的节点不是叶节点,并且在特定节点内应该存在少于阈值的点。另外,将应用直接编码的点的总数不应超过预设阈值。当满足以上条件时,根据实施方式的点云视频编码器(或算术编码器40004)可以对点的位置(或位置值)执行熵编码。
根据实施方式的点云视频编码器(例如,表面近似分析单元40003)可以确定八叉树的特定层次(小于八叉树的深度d的层次),并且可以从该层次开始使用表面模型来执行三角汤几何编码,以基于体素来重构节点的区域中的点的位置(三角汤模式)。根据实施方式的点云视频编码器可以指定将应用三角汤几何编码的层次。例如,当特定层次等于八叉树的深度时,点云视频编码器不在三角汤模式下操作。换句话说,根据实施方式的点云视频编码器可以仅在所指定的层次小于八叉树的深度值时才在三角汤模式下操作。根据实施方式的所指定层次处的节点的3D立方区域被称为块。一个块可以包括一个或更多个体素。块或体素可以对应于砖。几何结构被表示为每个块内的表面。根据实施方式的表面可以与块的每个边缘最多相交一次。
一个块有12个边缘,因此在一个块中至少存在12个交点。每个交点被称为顶点(或顶端点)。当在共享边缘的所有块当中至少存在一个与该边缘相邻的被占用体素时,检测到沿该边缘存在的顶点。根据实施方式的被占用体素是指包含点的体素。沿着边缘检测到的顶点的位置是沿着共享该边缘的所有块当中的与该边缘相邻的所有体素的边缘的平均位置。
一旦检测到顶点,根据实施方式的点云视频编码器就可以对边缘的起始点(x,y,z)、边缘的方向矢量(Δx,Δy,Δz)和顶点位置值(边缘内的相对位置值)执行熵编码。当应用三角汤几何编码时,根据实施方式的点云视频编码器(例如,几何重构单元40005)可以通过执行三角形重构、上采样和体素化处理来生成恢复后的几何结构(重构的几何结构)。
处于块的边缘处的顶点确定穿过块的表面。根据实施方式的表面是非平面多边形。在三角形重构处理中,基于边缘的起始点、边缘的方向矢量和顶点的位置值来重构由三角形表示的表面。根据式2,通过以下操作执行三角形重构处理:①计算每个顶点的质心值(centroid value),②从每个顶点值减去中心值,以及③估计通过减法而获得的值的平方和。
[式2]
然后,估计和的最小值,并根据具有最小值的轴来执行投影处理。例如,当元素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]
执行上采样处理,以沿着三角形的边在中间添加点并执行体素化。所添加的点是基于上采样因子和块的宽度产生的。所添加的点被称为细化顶点。根据实施方式的点云视频编码器可以对细化顶点进行体素化。另外,点云视频编码器可以基于体素化位置(或位置值)来执行属性编码。
图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描述的,在执行属性编码之前,重构(解压缩)编码后的几何结构。当应用直接编码时,几何重构操作可以包括改变直接编码后的点的放置(例如,将直接编码后的点放置在点云数据的前面)。当应用三角汤几何编码时,通过三角形重构、上采样和体素化来执行几何重构处理。由于属性取决于几何结构,因此基于重构的几何结构执行属性编码。
点云视频编码器(例如,LOD生成器40009)可以通过LOD对点进行分类(或重新组织)。图8示出了与LOD对应的点云内容。图8中的最左侧图片表示原始点云内容。图8左侧起的第二个图片表示最低LOD中的点的分布,并且图8中的最右侧图片表示最高LOD中的点的分布。也就是说,最低LOD中的点稀疏地分布,并且最高LOD中的点密集地分布。也就是说,随着LOD在由图8底部处指示的箭头所指的方向上上升,点之间的空间(或距离)变窄。
图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)可以如上所述对量化和逆量化后的残差属性值执行熵编码。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中,表示层次l处的体素的平均属性值。可以基于/>和/>来计算/>和/>的权重是和/>
[式3]
这里,是低通值并被用在下一更高层次处的合并处理中。/>表示高通系数。每个步骤中的高通系数被量化并经历熵编码(例如,通过算术编码器40012编码)。权重被计算为/>如式4地通过/>和/>计算根节点。
[式4]
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可以执行几何解码。根据实施方式的几何解码可以包括直接解码和三角汤几何解码。直接解码和三角汤几何解码被选择性应用。几何解码不限于上述示例,并作为参考图1至图9描述的几何编码的逆处理来执行。
根据实施方式的算术解码器11000基于算术编码对接收到的几何比特流进行解码。算术解码器11000的操作对应于算术编码器40004的逆处理。
根据实施方式的八叉树合成器11001可以通过从解码后的几何比特流(或作为解码结果而被保护的关于几何结构的信息)获取占用码来生成八叉树。如参考图1至图9详细描述地配置占用码。
当应用三角汤几何编码时,根据实施方式的表面近似合成器11002可以基于解码后的几何结构和/或所生成的八叉树来合成表面。
根据实施方式的几何重构单元11003可以基于表面和/或解码后的几何结构来重新生成几何结构。如参考图1至图9描述的,直接编码和三角汤几何编码被选择性应用。因此,几何重构单元11003直接导入并添加关于应用了直接编码的点的位置信息。当应用三角汤几何编码时,几何重构单元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可以基于表面模型来执行三角汤几何编码,以基于体素来重构特定区域(或节点)中的点的位置。表面模型处理器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的操作和/或八叉树生成方法相同或相似的操作和/或方法。当应用三角汤几何编码时,根据实施方式的表面模型处理器13004可以基于表面模型方法来执行三角汤几何解码和相关的几何重构(例如,三角形重构、上采样、体素化)。表面模型处理器13004执行与表面近似合成器11002和/或几何重构单元11003的操作相同或类似的操作。
根据实施方式的逆量化处理器13005可以对解码后的几何结构进行逆量化。
根据实施方式的元数据解析器13006可以解析接收到的点云数据中包含的元数据,例如,设定值。元数据解析器13006可以传递元数据以进行几何解码和/或属性解码。元数据与参考图12描述的元数据相同,因此省略对其的详细描述。
算术解码器13007、逆量化处理器13008、预测/提升/RAHT逆变换处理器13009和颜色逆变换处理器13010执行属性解码。属性解码与参考图1至图10描述的属性解码相同或类似,因此省略对其的详细描述。
根据实施方式的算术解码器13007可以通过算术编码对属性比特流进行解码。算术解码器13007可以基于重构的几何对属性比特流进行解码。算术解码器13007执行与算术解码器11005的操作和/或编码相同或类似的操作和/或编码。
根据实施方式的逆量化处理器13008可以对解码后的属性比特流进行逆量化。逆量化处理器13008执行与逆量化单元11006的操作和/或逆量化方法相同或相似的操作和/或方法。
根据实施方式的预测/提升/RAHT逆变换处理器13009可以处理重构的几何和逆量化后的属性。预测/提升/RAHT逆变换处理器13009执行与RAHT变换器11007、LOD生成器11008和/或逆提升器11009的操作和/或解码相同或类似的操作和/或解码中的一个或更多个。根据实施方式的颜色逆变换处理器13010执行逆变换编码,以对解码后的属性中包括的颜色值(或纹理)进行逆变换。颜色逆变换处理器13010执行与逆颜色变换单元11010的操作和/或逆变换编码相同或类似的操作和/或逆变换编码。根据实施方式的渲染器13011可以渲染点云数据。
图14示出了根据实施方式的可与用于发送和接收点云数据的方法/装置在工作时连接的示例性结构。
图14的结构表示其中服务器17600、机器人17100、自动驾驶车辆17200、XR装置17300、智能电话17400、家用电器17500和/或头戴式显示器(HMD)17700中的至少一个连接到云网络17000的配置。机器人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的各种实施方式。根据上述实施方式,图14中例示的装置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服务相关的内容数据,并将其提供给用户。根据实施方式的车辆或用户接口装置可以接收用户输入信号。根据实施方式的用户输入信号可以包括指示自动驾驶服务的信号。
根据实施方式的点云数据发送方法/装置被解释为指代图1的发送装置10000、图1的点云视频编码器10002、图1的发送器10003、图2的获取20000/编码20001/发送20002、图4的点云视频编码器、图12的发送装置、图14的装置、图49的发送方法等的术语。
根据实施方式的点云数据接收方法/装置被解释为指代接收装置10004、图1的接收器10005、图1的点云视频解码器10006、图2的发送20002/解码20003/渲染20004、图10的解码器、图11的点云视频解码器、图13的接收装置、图14的装置、图50的接收装置等的术语。
根据实施方式的发送或接收点云数据的方法/装置可以简称为方法/装置。
根据实施方式,构成点云数据的几何数据、几何信息和位置信息将被解释为具有相同的含义。构成点云数据的属性数据、属性信息和属性信息将被解释为具有相同的含义。
根据实施方式的方法/装置可以在考虑可缩放发送的情况下处理点云数据。
关于根据实施方式的方法/装置,本文公开了一种用于在发送和接收点云数据时根据接收器性能或发送速度高效地支持数据的一部分的选择性解码的方法。具体地,在本公开中提出以数据单元递送的几何数据和属性数据被划分成语义单元(诸如几何八叉树和细节层次(LoD)),使得可以选择必要的信息,或者可以在比特流单元中移除不必要的信息。
根据实施方式,本公开解决了用于构造由点云构成的数据结构的技术。具体地,本公开描述了一种用于封装和处理相关信令信息以有效地递送基于层配置的点云数据的方法,并且提出了将所述方法应用于基于可缩放点云压缩(PCC)的服务的方法。具体地,本公开提出了一种当直接压缩模式用于位置压缩时构造更适合于可缩放PCC服务的切片分段并且发送/接收所述切片分段的方法。
参考根据图4和图11所示的实施方式的点云数据发送/接收装置(其可以简称为编码器/解码器),点云数据由点集合组成。所述点中的每个点包括几何信息(或几何或几何数据)和属性信息(或属性或属性数据)。几何信息是关于每个点的三维位置信息(xyz)。也就是说,每个点的位置由表示三维空间的坐标系中的参数(例如,表示空间的三个轴(诸如,X轴、Y轴和Z轴)的参数(x,y,z))表示。属性信息表示点的颜色(RGB、YUV等)、反射率、法向量、透明度等。在点云压缩(PCC)中,执行基于八叉树的压缩,以高效地压缩三维空间中的非均匀分布,并且根据基于八叉树的压缩来压缩属性信息。图4和图11所示的点云视频编码器和点云视频解码器可以通过相应部件来处理根据实施方式的操作。
根据实施方式,发送装置对关于点云数据的几何信息(例如,位置)和属性信息(例如,颜色/亮度/反射率等)进行压缩,并将压缩后的信息发送给接收装置。点云数据可以根据八叉树结构来配置,该八叉树结构具有根据细节程度或细节层次(LoD)的层。然后,可以基于配置执行可缩放点云数据编码和表示。在这种情况下,可以根据接收装置的性能或传送速率仅对点云数据的一部分进行解码或表示。然而,目前没有预先移除不必要的数据的方法。
也就是说,在仅需要发送可缩放点云压缩比特流的一部分的情况下(例如,在可缩放解码中仅对层的一部分进行解码),不能选择和发送必要的部分。因此,如图15所示,需要发送装置在解码之后对必要的部分进行重新编码,或者当整个数据被递送到接收装置时,要求接收装置在解码之后选择性地应用必要的数据。
然而,在图15的情况下,由于用于解码和重新编码的时间,所以可能发生延迟。在图16的情况下,由于向接收装置发送不必要的数据,所以带宽效率可能劣化。此外,当使用固定带宽时,可能需要降低数据质量来发送数据。
因此,根据实施方式的方法/装置可以提供切片,使得点云可以被划分成待处理的区域。
具体地,在基于八叉树的位置压缩的情况下,可以一起使用基于熵的压缩和直接压缩。就这一点而言,本文提出了一种用于高效地利用可缩放性的切片配置。
此外,关于根据实施方式的方法/装置,可以定义点云数据的切片分段结构,并且可以用信号通知用于可缩放发送的可缩放层和切片结构。
根据实施方式的方法/装置可以按特定单元划分和处理比特流,以进行高效的比特流递送和解码。
根据实施方式的方法/装置可以实现按比特流单元的分层后的点云数据的选择性发送和解码。
根据实施方式的单元可以称为LOD、层、切片等。LOD是与属性数据编码中的LOD相同的术语,但可以表示比特流的分层后的结构的数据单元。LOD可以是基于点云数据的层结构(例如,八叉树或多个树的深度(层次))对应于一个深度或两个或更多个深度的束的概念。类似地,层被提供,以生成子比特流的单元,并且是对应于一个深度或两个或更多个深度的束的概念,并且可以对应于一个LOD或两个或更多个LOD。此外,切片是用于配置子比特流的单元的单元,并且可以对应于一个深度、一个深度的一部分或两个或更多个深度。此外,切片可以对应于一个LOD、一个LOD的一部分或两个或更多个LOD。根据实施方式,LOD、层和切片可以彼此相对应,或者LOD、层和切片中的一者可以包括在另一者中。此外,根据实施方式的单元可以包括LOD、层、切片、层组或子组,并且可以互换地指代。根据实施方式,在八叉树结构中,层、深度、层次和深度层次可以具有相同的含义。
图17是例示了根据实施方式的基于层的点云数据配置的示例的图。图17例示了八叉树结构的示例,其中,根节点的深度层次被设置为0,并且叶节点的深度层次被设置为7。
根据实施方式的方法/装置可以如图17所示配置基于层的点云数据,以对点云数据进行编码和解码。
根据实施方式的点云数据的分层可以取决于应用领域在SNR、空间分辨率、颜色、时间频率、比特深度等方面具有层结构,并且可以基于八叉树结构或LOD结构在数据密度增加的方向上构建层。
也就是说,当基于八叉树结构生成LOD时,LOD可以被定义为在细节增加的方向上(也就是说,在八叉树深度层次增加的方向上)增加。在本公开中,层可以具有与层次、深度和深度层次相同的含义。
参考图17,例如,在除了根节点层次(或称为根层次)之外具有7个深度层次的八叉树结构中,LOD 0被配置为包括从根节点层次到八叉树深度层次4的层次,并且LOD 1被配置为包括从根节点层次到八叉树深度层次5的层次,并且LOD 2被配置为包括从根节点层次到八叉树深度层次7的层次。
图18的(a)示出了根据实施方式的几何数据的比特流结构,并且图18的(b)示出了根据实施方式的属性数据的比特流结构。
根据实施方式的方法/装置可以基于如图17所示的八叉树结构的分层生成LOD,并且如图18的(a)和图18的(b)所示配置几何比特流和属性比特流。
根据实施方式的发送装置可以根据数据类型将通过点云压缩获取的比特流划分成几何比特流和属性比特流,以发送该比特流。
在这种情况下,每个比特流可以由切片组成并被发送。根据实施方式,几何比特流(例如,图18的(a))和属性比特流(例如,图18的(b))可以各自被配置为一个切片并且不管层信息还是LoD信息而被递送。在这种情况下,为了仅使用层或LoD中的一些,应当执行对比特流进行解码的操作、仅选择要使用的部分并移除不必要的部分的操作以及仅基于必要信息进行重新编码的操作。
本公开提出将比特流划分成层(或LoD)以避免这种不必要的中间操作的方法。
图19是示出了根据实施方式的用于递送被划分成层(或LoD)的比特流的比特流配置的示例的图。
例如,在基于LoD的PCC技术的情况下,较低LoD包括在较高LoD中。也就是说,较高LoD包括较低LoD的所有点。另外,当关于包括在当前LoD中但未包括在先前LoD中的点(也就是说,最新添加到每个LoD的点)的信息被定义为R(其余或保留)时,发送装置可以将初始LoD信息和每个LoD中最新包括的信息R划分成独立的单元(例如,切片)并发送该单元,如图19所示。
换句话说,与先前LoD相比,最新添加以配置每个LoD的点集合可以被定义为信息R。图19示出了LoD1包括LoD0和信息R1并且LoD2包括LoD1和信息R2的示例。
根据实施方式,针对一个或更多个八叉树深度层次采样的点可以被确定为属于信息R的数据。也就是说,针对一个或更多个八叉树深度层次采样的点集合(也就是说,与被占用节点匹配的点)可以被定义为信息R。根据另一实施方式,可以根据预定准则将针对一个八叉树深度层次采样的点划分成多条信息R。在这种情况下,可以如下考虑将一个八叉树深度层次划分成多条信息R的各种准则。例如,当一个八叉树深度层次被划分成M条信息R时,M条信息R可以被配置为使得信息R中的数据可以具有连续的莫顿码,或者可以被分组,以使得信息R中的数据具有通过将莫顿码顺序索引除以M而获得的相同余数。另选地,M条信息R可以通过在分组为兄弟节点(sibling node)时将数据分组在相同位置来配置。根据另一实施方式,如果需要,则多个八叉树深度层次中的一些采样后的点可以被确定为信息R。
在图19的示例中,根据实施方式,几何比特流和属性比特流各自被划分成三个切片。每个切片包括头和包含实际数据(例如,几何数据、属性数据)的有效载荷(也称为数据单元)。头可以包含关于对应切片的信息。另外,头还可以包含与先前切片、先前LoD或用于LoD配置的先前层相关的参考信息。
例如,参考图19,几何比特流被划分成承载属于LoD0的几何数据的切片、承载属于信息R1的几何数据的切片以及承载属于信息R2的几何数据的切片。属性比特流被划分成承载属于LoD0的属性数据的切片、承载属于信息R1的属性数据的切片以及承载属于信息R2的属性数据的切片。
根据实施方式的接收方法/装置可以接收被划分成LOD或层的比特流,并且可以高效地仅对要使用的数据进行解码而无需复杂的中间过程。
就这一点而言,可以应用各种实施方式来发送比特流。
例如,可以分别递送几何比特流和属性比特流。另选地,几何比特流和属性比特流可以被复用成一个比特流,以被递送。
此外,当每个比特流包含LoD0以及一条或更多条信息R时,LoD0以及一条或更多条信息R的递送顺序可以不同。
在图19的示例中,分别递送几何比特流和属性比特流。在这种情况下,依次递送包括几何比特流的LoD0和两条信息R(R1、R2),并且依次递送包括属性比特流的LoD0和两条信息R(R1、R2)。
图20例示了根据实施方式的当将几何比特流和属性比特流复用成一个比特流时使用的比特流排序方法的示例。
根据实施方式的发送方法/装置可以在发送比特流时串行地发送几何数据和属性数据,如图20所示。在该操作中,取决于数据类型,可以首先发送整个几何数据(或称为几何信息),然后可以发送属性数据(或称为属性信息)。在这种情况下,可以基于所发送的比特流信息快速地重构几何数据。
参考图20,例如,包含几何数据的层(LOD)可以首先定位在比特流中,并且包含属性数据的层(LOD)可以定位在几何层之后。由于属性数据依赖于几何数据,因此,包含几何数据的层(LOD)可以定位在包含属性数据的层(LOD)之前。图20示出了依次递送包含几何数据的LoD0和两条信息R(R1、R2)然后依次递送包含属性数据的LoD0和两条信息R(R1、R2)的示例。就这一点而言,根据实施方式,可以以各种方式改变位置。另外,可以在几何头之间进行参考,并且还可以在属性头与几何头之间进行参考。
图21例示了根据实施方式的当将几何比特流和属性比特流复用成一个比特流时使用的比特流排序方法的另一示例。
在发送比特流时,根据实施方式的发送方法/装置可以串行地发送几何数据和属性数据,如图21所示。在这种情况下,构成包含几何数据和属性数据的同一层的比特流可以被绑定并发送。在这种情况下,当使用用于几何和属性的并行解码的压缩技术时,可以缩短解码执行时间。就这一点而言,需要首先处理的信息(低LoD和几何应当在属性之前)可以首先被定位。
图21示出了发送包含几何数据的LoD0、包含属性数据的LoD0、包含几何数据的信息R1、包含属性数据的信息R1、包含几何数据的信息R2和包含属性数据的信息R2的序列的示例。在这种情况下,可以根据实施方式以各种方式改变位置。另外,可以在几何头之间以及在属性头与几何头之间进行参考。
根据实施方式的发送/接收方法/装置可以在发送和接收比特流时在比特流层次高效地选择应用领域中期望的层(或LoD)。在根据图20所示的实施方式的比特流排序方法对几何进行分组和发送时,在选择比特流层次之后,中间可能存在空部分。在这种情况下,可能需要重新定位比特流。
如图21所示的通过根据层对几何数据和属性数据进行绑定和发送,可以选择性地递送必要的信息和/或可以根据应用领域选择性地移除不必要的信息,如图22的(a)至图22的(c)或图23的(a)至图23的(c)所示。
图22的(a)至图22的(c)是例示了根据实施方式的对称几何-属性选择的示例的图。
例如,参考图22的(a)至图22的(c),当需要根据实施方式选择比特流的一部分时,发送装置选择并发送仅到LoD1的数据(即,LoD0+R1),并且对应于上层的信息R2(即,LoD2的新部分)被从比特流移除并且不被发送。在对称几何-属性选择的情况下,同一层的几何数据和属性数据被同时选择和发送,或者被同时选择和移除。
图22的(a)至图22的(c)是例示了根据实施方式的对称几何-属性选择的示例的图。在非对称几何-属性选择的情况下,同一层的几何数据和属性数据中的仅一者被选择和发送或移除。
例如,参考图23的(a)至图23的(c),当需要根据实施方式选择比特流的一部分时,发送装置选择并发送包含几何数据和属性数据的LoD1(LoD0+R1)、包含属性数据的LoD1(LoD0+R1)和包含几何数据的R2,并从比特流移除包含属性数据的R2,以使其不被发送。也就是说,针对属性数据,选择并发送除上层(R2)的数据之外的数据。针对几何数据,发送八叉树结构的所有层(从层次0(根层次)到层次7(叶层次))的数据。
当需要根据实施方式选择比特流的一部分时,可以通过图22的(a)至图22的(c)的对称几何-属性选择方法、图23的(a)至图23的(c)的非对称几何-属性选择方法或对称几何-属性选择方法和非对称几何-属性选择方法的组合来选择比特流的一部分。
上述比特流的分段、比特流的一部分的选择等旨在支持点云数据的可缩放性。
参考图17,当点云数据以八叉树结构表达并按LOD(或层)分类时,可以支持可缩放编码/解码(可缩放性)。
根据实施方式的可缩放性功能可以包括切片级可缩放性和/或八叉树级可缩放性。
根据实施方式的LoD可以用作用于指示一个或更多个八叉树层的集合的单元。此外,LoD可以意味着要逐切片地配置的八叉树的绑定。
可以以广泛的意义使用根据实施方式的LOD,诸如用于通过在属性编码/解码中扩展LOD的含义来详细地划分数据的单元。
也就是说,可以针对每个八叉树层提供通过实际八叉树层(或可缩放属性层)的空间可缩放性。然而,如果在比特流解析之前按切片层次配置了可缩放性,则可以以LoD为单位进行选择。
例如,参考图17,在八叉树结构中,根层次到层次4对应于LoD0,并且根层次到层次5对应于LoD1。此外,根层次到层次8(即,叶层次)对应于LoD2。
换句话说,在图17的示例中,当以切片为单位使用可缩放性时,所提供的可缩放操作对应于LoD0、LoD1和LoD2的三个步骤,并且八叉树结构可以在解码操作中提供的可缩放操作对应于从根层次到叶层次的8个步骤。
根据实施方式,当LoD0到LoD2由相应切片组成时,接收器或发送器的转码器(参考图15)可以仅选择LoD0、选择LoD0和LoD1或选择LoD0、LoD1和LoD2进行可缩放处理。
例如,当仅选择了LoD0时,最大八叉树层次是4,并且在解码操作中可以从八叉树层0至4当中选择一个可缩放层。在这种情况下,接收装置可以将通过最大八叉树层次(或深度)获得的节点大小视为叶节点,并且可以将节点大小作为信令信息来发送。
例如,当选择了LoD0和LoD1时,可以添加层5。因此,最大八叉树层次可以是5,并且在解码操作期间可以从八叉树层0至5当中选择一个可缩放层。在这种情况下,接收装置可以将通过最大八叉树层次(或深度)获得的节点大小视为叶节点,并且可以将节点大小作为信令信息来发送。根据实施方式,八叉树深度、八叉树层和八叉树层次可以是数据被详细划分成的单位。
例如,当选择了LoD0、LoD1和LoD2时,可以添加层6和层7。因此,最大八叉树层次可以是7,并且在解码操作期间可以从八叉树层0至7当中选择一个可缩放层。在这种情况下,接收装置可以将通过最大八叉树层次(或深度)获得的节点大小视为叶节点,并且可以将节点大小作为信令信息来发送。
图24的(a)至图24的(c)例示了根据实施方式的配置包括点云数据的切片的方法的示例。
根据实施方式的发送方法/装置/编码器可以通过以切片结构对比特流进行分段来配置G-PCC比特流。用于详细数据表示的数据单位可以是切片。
例如,一个或更多个八叉树层可以与切片匹配。
根据实施方式的发送方法/装置(例如,编码器)可以通过在扫描顺序51000的方向上扫描包括在八叉树中的节点(点)来基于切片51001配置比特流。切片可以包括八叉树结构中的一个或更多个层次的节点、可以仅包括特定层次的节点或者可以仅包括特定层次的一些节点。另选地,切片可以仅包括一个或更多个层次的一些节点。
图24的(a)示出了由7个切片组成的示例性八叉树结构。在该示例中,切片51002可以包括层次0到层次4的节点,并且切片51003可以包括层次5的一些节点。切片51004可以包括层次5的一些节点,并且切片51005可以包括层次5的一些其它节点。也就是说,在图24的(a)中,层次5被划分成三个切片。类似地,在图24的(a)中,层次6(即,叶层次)也被划分成三个切片。换句话说,切片可以由特定层次的一些节点组成。
图24的(b)示出了由四个切片组成的示例性八叉树结构。在该示例中,切片包括层次0到层次3的节点和层次4的一些节点,并且另一切片包括层次4的剩余节点和层次5的一些节点。另外,另一切片包括层次5的剩余节点和层次6的一些节点,并且另一切片包括层次6的剩余节点。
图24的(c)示出了由五个切片组成的示例性八叉树结构。切片由层次0到层次3的节点组成,并且四个切片由层次4到层次6的节点组成。也就是说,切片由层次4的一些节点、层次5的一些节点和层次6的一些节点组成。
换句话说,如图24的(b)和图24的(c)所示,当多个八叉树层与切片匹配时,层中的每个层的仅一些节点可以包括在切片中。当多个切片以这种方式构成几何/属性帧时,可以通过信令信息向接收装置发送接收装置配置层所需的信息。例如,信令信息可以包括关于包括在每个切片中的层的信息和关于包括在每个层中的节点的信息。
根据实施方式的编码器和与编码器相对应的装置可以对点云数据进行编码、生成并发送包含编码后的数据和关于点云数据的信令信息(或参数信息)的比特流。
此外,根据实施方式,在生成比特流时,可以基于比特流结构(例如,参考图18至图24等)生成比特流。因此,根据实施方式的接收装置、解码器、对应装置等可以接收并解析被配置为适合于对一些数据进行选择性解码的比特流,从而仅解码和高效地提供点云数据的一部分(参考图16)。
接下来,将描述点云数据的可缩放发送。
根据实施方式的点云数据发送方法/装置可以对包含点云数据的比特流进行可缩放地发送,并且根据实施方式的点云数据接收方法/装置可以可缩放地接收比特流并对该比特流进行解码。
当具有图15至图24所示的结构的比特流用于可缩放发送时,用于选择接收装置所需的切片的信令信息可以被发送到接收装置。可缩放发送可以不意味着发送或解码整个比特流,而是可以意味着仅发送或解码比特流的一部分。因此,可以提供低分辨率点云数据。
当根据实施方式将可缩放发送应用于基于八叉树的几何比特流时,对于从根节点到叶节点的每个八叉树层(图17)的比特流,可能需要使用仅直到特定八叉树层的信息来配置点云数据。
为此,目标八叉树层不应当对较低八叉树层信息具有依赖性。这可以是共同应用于几何/属性编码的约束。
另外,在可缩放发送中,允许发送/接收装置选择可缩放层的可缩放结构需要被发送到接收装置。考虑到根据实施方式的八叉树结构,所有八叉树层可以支持可缩放发送,或者可以仅针对特定八叉树层和较低层允许可缩放发送。例如,当包括八叉树层中的一些八叉树层时,可以将信令信息递送给接收装置以指示包括切片的可缩放层。因此,接收装置可以在比特流步骤中确定切片是否是必要的/不必要的。在图24的(a)的示例中,层次0(即,根层次)到层次4 51002可以构成一个可缩放层而不支持可缩放发送,并且较低八叉树层可以与可缩放层以一一对应的方式匹配。通常,可以针对对应于叶节点的部分支持可缩放性。如图24的(c)所示,当切片中包括多个八叉树层时,可以定义一个可缩放层应当被配置用于这些层。
在这种情况下,可缩放发送和可缩放解码可以根据目的单独使用。根据实施方式,可以使用可缩放发送,以使发送/接收装置在没有解码器的操作的情况下选择直到特定层的信息。根据实施方式,可缩放解码可以用于在编码期间选择特定层。也就是说,可缩放发送可以支持对必要信息的选择,而不涉及处于压缩状态(即,在比特流级中)的解码器,使得发送装置或接收装置可以确定特定层。另一方面,在可缩放解码的情况下,可以针对仅直到编码/解码过程中的必要部分的信息支持编码/解码。因此,可缩放解码可以用于诸如可缩放表示的操作。
在这种情况下,用于可缩放发送的层配置可以不同于用于可缩放解码的层配置。例如,包括叶节点的较低三个八叉树层可以就可缩放发送而言构成一个层。另一方面,就可缩放解码而言,当包括所有层信息时,可以针对叶节点层中的每一者、叶节点层-1和叶节点层-2启用可缩放解码。
稍后将更详细地描述用于层配置的切片结构和用于上述可缩放发送的信令方法。
如上文所描述的,接收装置可以基于可缩放发送接收比特流,并且基于比特流中包含的信令信息(或称为参数信息)确定可缩放比特流结构。
另外,可以估计几何可缩放层,并且可以基于几何切片id识别几何切片。此外,可以基于切片id选择和解码几何切片。
当比特流中包括的aligned_slice_structure_enabled_flag等于1时,可以检查与几何切片相对应的属性切片ID,并且可以基于slice_id_offset访问属性切片。另外,可以基于slice_id选择属性切片,并且解码器可以对所选择的属性切片进行解码。
当aligned_slice_structure_enabled_flag不等于1时,可以估计属性可缩放层。此外,可以基于属性切片id识别属性切片,并且可以基于切片id选择属性切片。
根据实施方式的发送装置和接收装置具有如下效果。
点云压缩数据可以根据特定准则被划分并被发送。另外,当使用分层编码时,点云压缩数据可以根据层被划分并被发送。因此,可以提高发送装置的存储和发送效率,并且可以提高接收装置的解码效率。
根据本公开,可以使用层组和子组递送比特流,并且可以进一步执行切片分段。
图25的(a)是示出了根据实施方式的被包含在单个切片中的几何树结构的示例的图,并且图25的(b)是示出了被包含在分段后的切片中的几何树结构的示例的图。
根据实施方式的方法/装置可以配置一个或更多个切片以递送点云数据,如图25的(a)和图25的(b)所示。
也就是说,根据G-PCC技术,整个编码比特流可以包括在单个切片中,如图25的(a)所示。此外,在如图25的(b)所示的多个切片的情况下,每个切片可以包括子比特流。切片的顺序可以与子比特流的顺序相同。换句话说,比特流可以以几何树的宽度优先顺序累积,并且每个切片可以与一组树层匹配,如图25的(b)所示。此外,分段后的切片可以继承G-PCC比特流的分层结构。
此外,以下切片可能不影响先前切片,就像较高层不影响几何树中的较低层。
根据实施方式的分段后的切片在差错稳健性、高效发送、对关注区域的支持等方面是高效的。
1)差错恢复
与单切片结构相比,分段后的切片可能对差错更稳健。当切片包含帧的整个比特流时,数据丢失可以影响整个帧数据。另一方面,当比特流被分段成多个切片时,即使当至少一个切片丢失时也不会受到损失影响的至少一个切片可以被解码。
2)可缩放发送
本公开可以考虑可以支持具有不同能力的多个解码器的情况。
当单个切片中包括编码后的点云数据(即,点云压缩(PCC)比特流)时,可以在编码之前确定编码后的点云数据的LOD。因此,可以独立地发送具有不同分辨率的点云数据的多个预编码比特流。这在大带宽或存储空间方面可能是低效的。
当在分段后的切片中包括编码后的点云数据(即,点云压缩(PCC)比特流)时,单个比特流可以支持不同层次的解码器。从解码器角度来看,接收装置可以选择目标层并且可以将部分选择的比特流递送到解码器。类似地,通过使用单个比特流而不分割整个比特流,可以由发送装置高效地生成部分比特流。
3)基于区域的空间可缩放性
关于根据实施方式的G-PCC要求,可以如下定义基于区域的空间可缩放性。也就是说,压缩比特流可以由一个或更多个层组成。因此,特定的关注区域可以通过附加层而具有较高密度,并且可以从较低层预测层。
为了支持这种要求,需要支持逐区域的不同的详细表示。例如,在VR/AR应用中,期望以更低的精度表示远对象,并且以更高的精度表示更接近的对象。此外,解码器可以根据请求提高关注区域的分辨率。可以使用G-PCC的可缩放结构(诸如,几何八叉树和可缩放属性编码方案)来实现该操作。
根据实施方式,解码器应基于包括整个几何或属性的当前切片结构访问整个比特流。这可能导致带宽、存储器和解码器方面的低效。另一方面,当比特流被分段成多个切片并且每个切片根据可缩放层包括子比特流时,根据实施方式的解码器可以在高效地解析比特流之前根据需要选择切片。
图26的(a)是示出了根据实施方式的几何树结构和切片分段的示例的图,并且图26的(b)是示出了根据实施方式的属性树结构和切片分段的示例的图。具体地,图26的(b)示出了与图26的(a)的几何树结构对齐的属性树结构的示例。
根据实施方式的方法/装置可以使用如图26的(a)和图26的(b)所示的点云数据的层结构来生成切片层组。
根据实施方式的方法/装置可以应用包括在不同切片中的几何比特流和属性比特流的分段。另外,在树深度方面,可以使用几何和属性编码的编码树结构以及包括在部分树信息中的每个切片。
例如,参考图26的(a),八叉树中存在8个层,并且5个切片用于包含一个或更多个层的子比特流。根据实施方式,组表示几何树层组。例如,组1包括层0至层4,组2包括层5,组3包括层6和层7。
另外,特定组可以被划分成一个或更多个子组。例如,参考图26的(a),组3被划分成三个子组(组3-1、组3-2和组3-3)。在这种情况下,父和子对存在于每个子组中。也就是说,组3-1至组3-3是组3的子组。在如图26的(a)所示的几何编码树的层组结构中,切片1用于包含属于组1的几何子比特流,并且切片2用于包含属于组2的几何子比特流。此外,切片3用于包含属于子组3-1的几何子比特流,切片4用于包含属于子组3-2的几何子比特流,并且切片5用于包含属于子组3-3的几何子比特流。
在一个环境中,当使用可缩放属性编码并且属性树结构与几何树结构相同时,可以使用相同的八叉树切片映射来生成属性切片分段,如图26的(b)所示。也就是说,在如图26的(b)所示的属性编码树的对齐层组结构中,切片6用于包含属于组1的属性子比特流,并且切片7用于包含属于组2的属性子比特流。切片8用于包含属于子组3-1的属性子比特流,切片9用于包含属于子组3-2的属性子比特流,并且切片10用于包含属于子组3-3的属性子比特流。
在本公开中,层组称为组并且表示G-PCC编码中出现的一组层结构单元,诸如,八叉树层和LoD层。
根据实施方式的子组可以基于针对一个层组的位置信息被表示为相邻节点集合。另选地,可以基于最低层(其可以是最靠近根的层,并且在图26中的组3的情况下可以是层6)来配置束。子组可以被配置为按莫顿码顺序彼此相邻的节点束、基于距离的相邻节点的束或根据编码顺序彼此相邻的节点束。另外,父子关系中的节点可以被指定为存在于同一子组中。
当子组被定义时,边界出现在层的中间,并且信令信息(例如,sps_entropy_continuation_enabled_flag、gsh_entropy_continuation_flag等)用于指示在边界处是否保持连续性。也就是说,信令信息可以用于指示是否连续使用熵,并且可以提供ref_slice_id。因此,可以连续地保持与先前切片的连续性。
图27的(a)是示出了根据实施方式的几何树结构和切片分段的另一示例的图,并且图27的(b)是示出了根据实施方式的属性树结构和切片分段的另一示例的图。具体地,图27的(b)的属性编码树(或称为属性树)的层组结构独立于图27的(a)的几何编码树(或称为几何树)的几何层组结构。也就是说,属性编码树的属性编码层与几何编码树的几何编码层不同。换句话说,图27的(a)和图27的(b)示出了根据实施方式的几何编码树(或称为几何树)的层组结构和属性编码树(或称为属性树)的独立层组结构。
根据实施方式的方法/装置可以如图27的(a)和图27的(b)所示的基于几何比特流生成几何编码树并且基于属性比特流生成属性编码树。在这种情况下,属性编码树的属性编码层可以具有与几何编码树的几何编码层的结构不同的结构。参考图27的(b),可以独立于几何树结构中的组来定义属性树结构中的组。
例如,参考图27的(a),针对可缩放几何编码,八叉树中存在8个层,并且5个切片用于包含一个或更多个层的几何子比特流。根据实施方式,组表示几何树层组。例如,组1包括层0至层4,组2包括层5,并且组3包括层6和层7。此外,特定组可以被划分成一个或更多个子组。例如,参考图27的(a),组3被划分成三个子组(seg1、seg2和seg3)。在这种情况下,父和子对存在于每个子组中。在如图27的(a)所示的几何编码树的层组结构中,切片1用于包含属于组1的几何子比特流,并且切片2用于包含属于组2的几何子比特流。此外,切片3用于包含属于子组1(seg1)的几何子比特流,切片4用于包含属于子组2(seg2)的几何子比特流,并且切片5用于包含属于子组3(seg3)的几何子比特流。
例如,参考图27的(b),针对可缩放属性编码,八叉树中存在6个层,并且3个切片用于包含一个或更多个层的属性子比特流。根据实施方式,组表示一组属性树层。例如,组1包括层0至层2,组2包括层3和层4,并且组3包括层6。在如图27的(b)所示的属性编码树的层组结构中,切片6用于包含属于组1的属性子比特流,切片7用于包含属于组2的属性子比特流,并且切片8用于包含属于组3的属性子比特流。
本公开提出了与几何和属性层结构配对的切片的分段,以高效地使用G-PCC分层结构。
根据实施方式,针对几何切片分段,每个切片分段可以包含来自一个层组的编码后的数据。这里,在一个实施方式中,层组可以被定义为一组连续的树层,树层的起始深度和结束深度可以是树深度中的特定数目,并且起始深度可以小于结束深度。
根据实施方式,针对属性切片分段,每个切片分段可以包含来自一个层组的编码后的数据。这里,层(或称为树层)可以是根据属性编码方案的树深度(或称为层次)或LOD。
在一个实施方式中,切片分段中的编码后的数据的顺序可以与单个切片中的编码后的数据的顺序相同。
根据实施方式,与层组结构相关的信令信息可以包括在参数集中的至少一个参数集中。根据实施方式的参数集可以包括序列参数集、几何参数集、属性参数集或图块参数集。
在一个实施方式中,需要对与几何树层相对应的层组结构的描述。为此,几何参数集可以包括关于组的数目的信息(num_layer_groups_minus1)、组标识符信息(layer_group_id)、关于组中的树深度的数目的信息(num_tree_depth)以及关于组中的子组的数目的信息(num_subgroups)。根据实施方式,与层组结构相关的信令信息可以包括num_layer_groups_minus1、layer_group_id、num_tree_depth或num_subgroups中的至少一者。
num_layer_groups_minus1加1指定层组的数目,其中层组表示作为几何编码树结构的部分的一组连续树层。
layer_group_id指定第i层组的层组标识符。
num_tree_depth指定被包含在第i层组中的树深度的数目。
num_subgroups指定包括在第i层组中的子组的数目。
在一个实施方式中,需要对与属性树层相对应的层组结构的描述。为此,属性参数集可以包括关于组的数目的信息(num_layer_groups_minus1)、组标识符信息(layer_group_id)、关于组中的树深度的数目的信息(num_tree_depth_minus1)以及关于组中的子组的数目的信息(num_subgroups_minus1)。也就是说,在属性参数集中定义num_layer_groups_minus1、layer_group_id、num_tree_depth_minus1和num_subgroups_minus1,以描述层组结构。另外,需要指示属性切片结构是否与几何切片结构对齐的指示信息(aligned_layer_group_structure_flag),并且属性参数集还可以包括该指示信息(aligned_layer_group_structure_flag)。根据实施方式,与层组结构相关的信令信息可以包括num_layer_groups_minus1、layer_group_id、num_tree_depth_minus1、num_subgroups_minus1或aligned_layer_group_structure_flag中的至少一者。
aligned_layer_group_structure_flag等于1指定属性切片的层组和子组结构与几何层组和子组结构相同。aligned_layer_group_structure_flag等于0指定属性切片的层组和子组结构与几何层组和子组结构不相同。
根据实施方式,当aligned_layer_group_structure_flag等于1时,属性参数集包括几何参数集标识信息(geom_parameter_set_id)。当aligned_layer_group_structure_flag等于0时,属性参数集包括关于组的数目的信息(num_layer_groups_minus1)、组标识符信息(layer_group_id)、关于组中的树深度的数目的信息(num_tree_depth_minus1)和关于组中的子组的数目的信息(num_subgroups_minus1)。
geom_parameter_set_id指定几何参数集标识符,其包含关于与属性层组结构对齐的层组和子组结构的信息。
num_layer_groups_minus1加1指定层组的数目,其中,层组表示作为属性编码树结构的部分的一组连续树层。
layer_group_id指定第i层组的层组标识符。
num_tree_depth_minus1加1指定被包含在第i层组中的树深度的数目。
num_subgroups_minus1加1指定包括在第i层组中的子组的数目。
根据实施方式,与层组结构相关的信令信息可以包括在几何切片头和属性切片头中的至少一者中。根据实施方式,几何切片头具有与几何数据单元头相同的含义,并且属性切片头具有与属性数据单元头相同的含义。
在一个实施方式中,几何切片头包括组标识信息(layer_group_id)和/或子组标识信息(subgroup_id),以标识每个切片的组和子组。
layer_group_id指定用于标识对应切片的组的层组标识符。
subgroup_id指定用于标识由layer_group_id标识的层组中的子组的子组标识符。
在一个实施方式中,当属性层结构不与几何切片结构(或几何组)对齐时,包括layer_group_id和/或subgroup_id,以标识每个切片的组和子组。
layer_group_id指定用于标识对应切片的组的层组标识符。
subgroup_id指定用于标识由layer_group_id标识的层组中的子组的子组标识符。
在本公开中,layer_group_id和subgroup_id可以用于指示切片的顺序并且可以用于按比特流顺序对切片进行排序。
在本公开中,针对基于八叉树的位置压缩,当点密度高时,可以基于节点之间的相关性来提高压缩效率。
然而,当点密度低时,与复杂操作相比,压缩效率降低,因为随着深度增加,节点之间的相关性降低。为了解决该问题,可以使用当节点之间的相关性低时直接压缩点位置的直接压缩。图28例示了根据实施方式的组合树编码和直接编码模式的示例。也就是说,当执行基于八叉树的压缩时,可以以束表示存在于类似位置的点的位置,并因此可以减少所需比特的数目。然而,如图28所示,当被占用节点(53000)的后代节点当中没有兄弟节点时,基于八叉树的压缩可能没有显著影响。因此,在这种情况下,通过以直接模式对节点(即,点)53000执行直接编码,可以提高编码效率和压缩速度。
也就是说,参考八叉树结构,可以基于当前点(节点)提供最多8个后代节点。8个后代节点可以包括被占用的节点和/或未被占用的节点。
如果没有基于当前点的后代节点和/或兄弟节点,则很可能不存在类似的相邻点。因此,当通过在节点(点)之间生成预测值来生成残差时,残差可能变得较大,准确度可能降低,或者可能发生延迟。在这种情况下,可以通过对该点(例如,图28中的53000)执行直接编码来发送该点的位置值。
作为根据实施方式的确定是否执行直接编码的方法,根据实施方式的方法/装置可以如下基于与相邻节点的相关性确定直接编码的使用。也就是说,直接压缩方法可以在满足以下特定条件时工作。
1)基于父资格的条件:从当前节点(点)的父节点的角度来看,仅当前节点是被占用的子,并且从父的父(祖父)的角度来看,存在至多一个被占用的子(即,父的被占用的兄弟)(即,存在2个被占用的子)。
2)6N资格的条件:从父节点的角度来看,仅当前节点是被占用的子,并且6个邻居(面对面接触的节点)未被占用。
例如,在这种情况下,可以确定直接编码是可用的。在这种情况下,仅当包括的点的数目小于或等于阈值时,才可以应用推断的直接编码模式(IDCM)。当执行IDCM时,指示执行IDCM的信息、点的数目以及指示点位置(即,对应于未八叉树编码的剩余深度的部分)的XYZ值的信息可以包括在参数集中的至少一个参数集中并且被递送到接收装置。
图29是例示了根据实施方式的IDCM的概述的流程图。
根据实施方式的直接压缩操作可以通过图1的发送装置10000、图1的点云视频编码器10002、图2的编码、图4的点云视频编码器、图12的发送装置、图14的装置、图49的点云数据发送装置或一个或更多个处理器或集成电路(该一个或更多个处理器或集成电路被配置为与对应于该一个或更多个处理器或集成电路的一个或更多个存储器进行通信)来执行。一个或更多个存储器可以存储用于处理/控制根据实施方式的操作的程序。根据实施方式的点云发送装置/方法的每个部件可以用硬件、软件、处理器和/或其组合来实现。一个或更多个处理器可以控制本文描述的各种操作。处理器可以称为控制器等。根据实施方式的操作可以由固件、软件和/或其组合来执行。固件、软件和/或其组合可以存储在处理器或存储器中。
根据实施方式的直接解压缩操作可以通过图1的接收装置10004、图1的点云视频解码器10006、图2的解码、图10的解码器、图11的解码器、图13的接收装置、图14的装置、图50的点云数据接收装置或一个或更多个处理器或集成电路(该一个或更多个处理器或集成电路被配置为与对应于该一个或更多个处理器或集成电路的一个或更多个存储器进行通信)来执行。一个或更多个存储器可以存储用于处理/控制根据实施方式的操作的程序。根据实施方式的点云接收装置/方法的每个部件可以用硬件、软件、处理器和/或其组合来实现。一个或更多个处理器可以控制本文描述的各种操作。处理器可以称为控制器等。根据实施方式的操作可以由固件、软件和/或其组合来执行。固件、软件和/或其组合可以存储在处理器或存储器中。
参考图29作为示例,根据点的分布,父节点55000可以具有多达8个子,并且特定子55001可以进一步具有子55002。在这种情况下,子55001是子55002的父节点。另外,可以确定是否在子55002处进一步执行八叉树分割和预测编码还是直接模式编码。
当确定直接模式编码可用时(55003),检查点55002的邻居节点(邻居点)的数目是否小于或等于阈值(th)。当点55002的邻居节点(邻居点)的数目小于或等于阈值(th)时,可以启用直接模式。另外,关于一个或更多个点中的每个点的位置的x、y和z坐标信息可以是直接编码的。根据实施方式,可以基于八叉树的子立方体(sub-cube)表示位置值。
在另一实施方式中,当点55002的邻居节点(邻居点)的数目超过阈值th时,预测编码的压缩效率可以高于直接编码的压缩效率,并因此可以禁用直接模式,并且可以进一步拆分节点以生成八叉树。也就是说,当确定直接模式编码不可用时(55004),八叉树可以基于该点进一步拆分成基于八叉树的子立方体。
如上所述,当执行直接压缩时,关于当前深度和较低深度的x、y和z位置信息被直接发送到接收装置。在这种情况下,由于独立位置信息被压缩,所以即使使用算术熵压缩,压缩效率也可能不是高的。
因此,在这种情况下,发送装置/方法可以对x、y和z值执行直接压缩(或称为编码)。在这种情况下,可以独立于算术熵编码后的比特流(图30的(a))发送直接编码后的比特流(图30的(b))。图30的(a)是示出了算术熵编码(AEC)后的比特流的示例的图,并且图30的(b)是示出了直接编码(DC)后的比特流的示例的图。
当几何树结构被划分成用于可缩放发送的层组和/或子组时,可以通过根据每个层组和/或子组划分AEC比特流来配置切片。在一个实施方式中,当配置了多个切片时,每个切片包括AEC比特流的一部分,也就是说,AEC子比特流。另外,可以针对DC比特流配置单独切片。在这种情况下,包括在每个切片中的比特流类型可以被划分成AEC比特流和DC比特流。因此,当执行几何部分解码时,接收装置可以选择包括所需AEC比特流的切片,并且选择关于包括DC比特流的切片中的所需深度的DC点的信息。
在本公开中,为简单起见,包括AEC比特流的切片称为AEC切片,并且包括DC比特流的切片称为DC切片。
图31的(a)是示出了根据实施方式的几何树结构和切片分段的另一示例的图,并且图31的(b)是示出了根据实施方式的多个AEC切片和一个DC切片的示例的图。也就是说,DC比特流承载在一个切片中。
图31的(a)例示了基于7个八叉树深度执行位置压缩的情况。在这种情况下,几何树结构(即,八叉树结构)包括3个组并且被划分成5个层组(例如,3个组之一被划分成3个子组),并且5个层组的AEC比特流分别包括在5个切片(例如,切片1至切片5)中。在这种情况下,当使用直接编码时,可以在单独切片(例如,切片6)中发送DC比特流。根据实施方式,可以根据八叉树深度顺序地发送包括在切片6中的DC比特流。参考图31的(b),例如,深度为4的DC比特流、深度为5的DC比特流、深度为6的DC比特流和深度为7的DC比特流以这种顺序包括在切片6中。该示例对应于在深度4处开始执行直接编码的情况。
当接收装置仅使用关于多达八叉树深度5(即,组2)的深度的信息时,接收装置可以选择切片1和切片2来通过AEC解码器重构对应于八叉树深度5的AEC比特流。另外,接收装置可以选择切片6,并且在切片6中重新选择对应于深度4和深度5的DC比特流来通过DC解码器重构比特流。也就是说,接收装置可以通过DC解码器独立地重构直接编码后的点的位置。
在这种情况下,DC解码器可以从x、y和z位置信息仅选择和使用对应层的必要信息。
在下面的示例中,八叉树深度A是执行直接编码的八叉树深度,并且八叉树深度B是八叉树深度A之后的八叉树深度,并且可以是通过从全八叉树深度N中减去八叉树深度A而获得的值。也就是说,当定义八叉树深度B=八叉树深度(N-A)时,DC压缩后的叶节点的位置可以被定义为在DC之前的AEC占用的节点位置处的DC位置,如下面的式5所示。也就是说,在执行直接编码时,如果在通过八叉树编码向叶节点执行编码的同时满足预设条件,则执行直接编码。在该示例中,当直接编码开始的深度是深度B时,通过将先前深度(例如,深度A、八叉树编码后的深度)相对于深度B的位置级联到直接编码后的位置而获得最终节点位置。换句话说,式5是用于在完全执行解码时找到位置的式。
[式5]
叶节点位置(x或y或z)
=八叉树深度A处的占用节点位置(来自上层的AEC比特流)<<八叉树深度B+八叉树深度A之后的DC位置
在式5中,“八叉树深度A处的占用节点位置<<八叉树深度B”意味着“八叉树深度A处的占用节点位置”应该被向左比特移位“八叉树深度B”。
另外,当八叉树深度C是以部分解码为目标的八叉树深度(其中,八叉树深度C<全八叉树深度N,并且八叉树深度C>八叉树深度A)时,如果执行部分几何解码,则点/节点的位置可以如下式6定义。
[式6]
八叉树深度C处的部分解码节点位置(x或y或z)
=八叉树深度A处的占用节点位置(来自AEC)<<八叉树深度(C-A)+八叉树深度A之后的DC位置>>八叉树深度(B-(C-A))
式6是式5的应用。也就是说,当执行部分解码时,位置改变,并且该式用于获得此时改变的位置。
例如,在八叉树解码位置之后添加DC位置。在这种情况下,在该式中考虑通过部分解码损失的节点(或深度)。在考虑由于部分解码而丢失的深度的情况下,排除该部分的深度的位置被移位和级联。
图32的(a)是示出了根据实施方式的几何树结构和切片分段的另一示例的图,并且图32的(b)是示出了根据实施方式的AEC切片和DC切片的另一示例的图。
也就是说,图32的(a)和图32的(b)例示了用于发送DC比特流的另一方法。在该示例中,DC比特流除以八叉树深度,并且每个划分后的DC比特流通过每个切片发送。也就是说,与划分后的DC比特流的数目相同数目的DC的切片被分段。
图32的(a)和图32的(b)例示了DC比特流被划分成三个DC组。DC组可以根据层组来划分。例如,当几何树结构被划分成三个层组(组1、组2和组3)时,DC比特流也被划分成三个DC组(DC组1、DC组2和DC组3)。参考图32的(a)和图32的(b),子组不应用于DC比特流。然而,在应用领域中,也可以以相同的方式划分子组。在这种情况下,DC组3可以进一步划分成三个DC组,也就是说,DC组3-1、DC组3-2和DC组3-3(即,三个DC子组)。根据实施方式,三个DC组(DC组1、DC组2和DC组3)的DC比特流分别在三个切片(切片6至切片8)中发送。图32的(b)示出了深度4的DC比特流(即,DC组1)包括在切片6中、深度5的DC比特流(即,DC组2)包括在切片7中并且深度6和深度7的DC比特流(即,DC组3)包括在切片8中的示例。
另选地,可以根据应用领域分别应用将DC比特流划分成组的准则和将AEC比特流划分成组的准则。
当接收装置仅解码直到八叉树深度5的信息时,其可以选择切片1和切片2并通过AEC解码器对包括在切片1和切片2中的AEC比特流执行AEC解码(即,重构),并且可以选择切片6和切片7并通过DC解码器对包括在切片6、切片7中的DC比特流执行DC解码(即,重构)。
在这种情况下,为了允许接收装置根据八叉树深度选择DC切片,关于每个DC切片中包括的比特流的层组或八叉树深度信息可以被发送至接收装置。
图33的(a)是示出了根据实施方式的几何树结构和切片分段的另一示例的图,并且图33的(b)是示出了根据实施方式的AEC切片和DC切片的另一示例的图。
也就是说,图33的(a)和图33的(b)例示了用于发送DC比特流的另一方法。在所示示例中,根据八叉树深度彼此匹配的AEC比特流和DC比特流通过同一切片一起发送。在这种情况下,在实施方式中,用于划分AEC比特流的准则与用于划分DC比特流的准则相同。例如,使用相同的层组划分方法对AEC比特流和DC比特流进行划分。
当接收装置仅使用直到八叉树深度5的信息时,选择切片1和切片2。切片1和切片2包括属于组1的AEC比特流和DC比特流。因此,当选择切片1和切片2时,可以通过AEC解码器对包括在切片1和切片2中的AEC比特流进行AEC解码,并且可以通过DC解码器对DC比特流进行DC解码。换句话说,在接收装置使用仅直到八叉树深度5的八叉树深度的情况下,仅需要基于层组信息选择切片1和切片2,而不管AEC/DC比特流类型如何。因此,可以更高效地操作切片选择过程。
虽然本公开中描述了在一个切片中包括不同的几何编码比特流的方法,但是甚至在不同属性编码比特流包括在一个切片中或者几何编码比特流和属性比特流包括在一个切片中的应用领域中,也可以使用该方法。在这种情况下,不同类型的比特流可以具有不同的层组。另选地,不同类型的比特流可以具有相同的层组结构。在这种情况下,它们可以高效地用于诸如可缩放发送和空间可缩放性的应用领域。
图34例示了根据实施方式的用于发送/接收的点云数据的比特流结构的示例。根据实施方式,从图1、图2、图4、图12和图49的点云视频编码器中的任一者输出的比特流可以具有图34的形式。
根据实施方式,点云数据的比特流提供图块或切片,使得点云数据可以根据区域被划分和处理。根据实施方式的比特流的每个区域可以具有不同的重要性。因此,当点云数据被划分成图块时,可以将不同滤波器(编码方法)和不同滤波器单元应用于每个图块。另外,当点云数据被划分成切片时,可以将不同滤波器和不同滤波器单元应用于每个切片。
当将点云数据划分成区域并压缩点云数据时,根据实施方式的发送装置和接收装置可以利用高级语法结构发送和接收比特流,以选择性地发送划分后的区域中的属性信息。
根据实施方式的发送装置根据如图34所示的比特流的结构发送点云数据,使得可以根据重要性应用不同编码操作,并且可以在重要区域中使用具有良好质量的编码方法。另外,可以支持根据点云数据的特征的高效编码和发送,并且可以提供根据用户需求的属性值。
根据实施方式的接收装置接收根据图34所示的比特流的结构的点云数据,使得可以根据接收装置的处理能力将不同滤波(解码方法)应用于每个区域(被划分成图块或切片的区域),而不是针对整个点云数据使用复杂的解码(滤波)方法。因此,可以提供对于用户重要的区域中更好的图片质量,并且可以确保适当的系统延迟。
当如图34所示根据实施方式的几何比特流、属性比特流和/或信令比特流(或信令信息)由一个比特流(或G-PCC比特流)组成时,比特流可以包括一个或更多个子比特流。根据实施方式的比特流包括用于序列层次信令的SPS、用于用信号通知几何信息编码的GPS、用于用信号通知属性信息编码的一个或更多个APS(APS0和APS1)、用于图块层次信令的图块清单(也称为TPS)以及一个或更多个切片(切片0至切片n)。也就是说,根据实施方式的点云数据的比特流可以包括一个或更多个图块,并且每个图块可以是包括一个或更多个切片(切片0至切片n)的切片组。根据实施方式的图块清单(即,TPS)可以包括关于一个或更多个图块中的每个图块的信息(例如,图块边界框的坐标值信息和高度/大小信息)。每个切片可以包括一个几何比特流Geo0和/或一个或更多个属性比特流Attr0和Attr1。例如,切片0可以包括一个几何比特流Geo00和一个或更多个属性比特流Attr00和Attr10
每个切片内的几何比特流可以包括几何切片头(geom_slice_header)和几何切片数据(geom_slice_data)。根据实施方式,每个切片内的几何比特流也可以称为几何数据单元,几何切片头也可以称为几何数据单元头,并且几何切片数据也可以称为几何数据单元数据。
每个切片中的每个属性比特流可以包括属性切片头(attr_slice_header)和属性切片数据(attr_slice_data)。根据实施方式,每个切片中的属性切片头也可以称为属性数据单元,属性切片头也可以称为属性数据单元头,并且属性切片数据也可以称为属性数据单元数据。
根据实施方式,点云数据的编码和/或解码所需的参数可以在点云数据和/或对应切片的头的参数集(例如,SPS、GPS、APS和TPS(或称为图块清单)等)中新定义。例如,它们可以在编码和/或解码几何信息时被添加到GPS,并且可以在基于图块的编码和/或解码时被添加到图块和/或切片头。
根据实施方式,可以在SPS、GPS、APS、TPS或SEI消息中的至少一者中用信号通知关于分段(分离)切片的信息和/或与直接编码相关的信息。此外,可以在几何切片头(或称为几何数据单元头)或属性切片头(或称为属性数据单元头)中的至少一者中用信号通知关于分段(分离)切片的信息和/或与直接编码相关的信息。
根据实施方式,取决于应用或系统,可以在对应位置或分离位置中定义关于分段(分离)切片的信息和/或与直接编码相关的信息,使得可以不同地使用要应用的范围和方法。作为将在本公开中稍后描述的语法中使用的术语的字段可以具有与参数或语法元素相同的含义。
也就是说,取决于信号被发送的位置,信号(即,关于分段(分离)切片的信息和/或与直接编码相关的信息)可以具有不同含义。如果在SPS中定义了信号,则它可以等同地应用于整个序列。如果在GPS中定义了信号,则这可以指示信号用于位置重构。如果在APS中定义了信号,则这可以指示信号被应用于属性重构。如果在TPS中定义了信号,则这可以指示信号仅被应用于图块内的点。如果信号在切片中被递送,则这可以指示信号仅被应用于切片。另外,当字段(或称为语法元素)适用于多个点云数据流以及当前点云数据流时,它们可以承载在上级参数集中。
根据实施方式,参数(其可以称为元数据、信令信息等)可以由元数据处理器(或元数据生成器)、信令处理器或发送装置的处理器生成,并且被发送至接收装置以在解码/重构过程中使用。例如,由发送装置生成和发送的参数可以由接收装置的元数据解析器获取。
在该实施方式中,已经描述了独立于编码技术来定义信息。然而,在其它实施方式中,可以结合编码技术来定义信息。为了支持区域性地不同可缩放性,可以在图块参数集中定义信息。另选地,可以定义网络抽象层(NAL)单元,并且可以递送用于选择层的相关信息(例如,关于分段(分离)切片的信息和/或与直接编码相关的信息)(诸如,layer_id),使得即使在系统层次也可以选择比特流。
图35示出了根据本公开的序列参数集(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字段、sps_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_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_attitude_sets字段的值。迭代语句可以包括attribute_dimension_minus1[i]字段以及attribute_instance_id[i]字段。attribute_dimension_minus1[i]加1指示第i属性的分量的数目。
attribute_instance_id[i]字段指定第i属性的实例ID。
根据实施方式,当attribute_dimension_minus1[i]字段的值大于1时,迭代语句还可以包括attribute_secondary_bitdepth_minus1[i]字段、attribute_cicp_colour_primaries[i]字段、attribute_cicp_transfer_characteristics[i]字段、attribute_cicp_matrix_coeffs[i]字段和attribute_cicp_video_full_range_flag[i]字段。
attribute_secondary_bitdepth_minus1[i]加1指定第i属性信号的次级分量的比特深度。
attribute_cicp_colour_primaries[i]指示第i属性的颜色属性源原色的色度坐标。
attribute_cicp_transfer_characteristics[i]或者指示作为具有0到1的标称实值范围的源输入线性光强度的函数的颜色属性的参考光电传输特性函数,或者指示作为输出线性光强度的函数的参考电光转换特性函数的逆。
attribute_cicp_matrix_coeffs[i]描述用于从第i属性的绿色、蓝色和红色或Y、Z和X原色推导亮度和色度信号的矩阵系数。
attribute_cicp_video_full_range_flag[i]指定从第i属性的E'Y、E'PB和E'PR或E'R、E'G和E'B实值分量信号推导的亮度和色度信号的黑色等级和范围。
known_attribute_label_flag[i]字段指示针对第i属性用信号通知known_attribute_label[i]字段还是attribute_label_four_bytes[i]字段。例如,当known_attribute_label_flag[i]等于0时,这指示针对第i属性用信号通知known_attribute_label[i]字段。known_attribute_label_flag[i]等于1指示针对第i属性用信号通知attribute_label_four_bytes[i]字段。
known_attribute_label[i]指定第i属性的类型。例如,等于0的known_attribute_label[i]可以指定第i属性是颜色。等于1的known_attribute_label[i]可以指定第i属性是反射率。等于2的known_attribute_label[i]可以指定第i属性是帧索引。而且,等于4的known_attribute_label[i]指定第i属性是透明度。等于5的known_attribute_label[i]指定第i属性是法线(normals)。
attribute_label_four_bytes[i]指示具有4字节代码的已知属性类型。
根据实施方式,等于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输出轴标记与重构的点云RecPic[pointidx][axis]中的三个位置分量之间的对应关系,其中轴=0··2。
等于1的sps_bypass_stream_enabled_flag指定可以在读比特流时使用旁路编码模式。作为另一示例,等于0的sps_bypass_stream_enabled_flag指定在读比特流时不使用旁路编码模式。
sps_extension_flag指示sps_extension_data语法结构是否存在于SPS语法结构中。例如,等于1的sps_extension_present_flag指示sps_extension_data语法结构存在于SPS语法结构中。sps_extension_present_flag等于0指示该语法结构不存在。
当sps_extension_flag字段的值为1时,根据实施方式的SPS还可以包括sps_extension_data_flag字段。
sps_extension_data_flag可以具有任何值。
图36示出了根据实施方式的sequency_parameter_set()(SPS)的语法结构的另一实施方式。
图36的SPS还可以包括scalable_transmission_enable_flag字段。scalable_transmission_enable_flag指示比特流配置是否被建立为适合于可缩放发送。例如,等于1的scalable_transmission_enable_flag指示比特流配置被建立为适合于可缩放发送。也就是说,其可以指示几何树结构和/或属性树结构由多个切片组成,并因此可以在比特流级选择信息,关于分段(分离)切片的该信息和/或与直接编码相关的信息(例如,可缩放层配置信息)通过GPS、APS、TPS、切片头、SEI消息等发送,以允许发送装置或接收装置执行切片选择,并且压缩几何和/或属性,以启用部分解码。也就是说,当scalable_transmission_enable_flag的值是1时,接收装置或接收装置的转码器可以基于该值来识别几何和/或属性可缩放发送是可用的。
根据实施方式,图36的scalable_transmission_enable_flag字段可以包括在图35的SPS中的任何位置。
图37示出了根据本公开的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字段、geometry_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字段、geom_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字段中用信号通知针对所有切片的公共缩放(common 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指示角度编码模式是否激活的。例如,等于1的geometry_angular_mode_flag字段可以指示角度编码模式是激活的。等于0的geometry_angular_mode_flag字段可以指示角度编码模式不是激活的。
当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_zfield字段。
lidar_head_position[0]字段、lidar_head_position[1]字段和lidar_head_position[2]字段可以指定具有内部轴的坐标系中的激光雷达头的(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和第一内部轴限定的水平面的切线。
laser_correction[i]指定沿着第二内部轴的相对于lidar_head_position[2]的第i激光位置的校正。
等于1的planar_buffer_disabled指示利用缓冲器跟踪最近节点不用于在平面模式下编码平面模式标志和平面位置的过程中。等于0的planar_buffer_disabled指示使用利用缓冲器跟踪最近节点。
implicit_qtbt_angular_max_node_min_dim_log2_to_split_z指定节点大小的log2值,低于所述节点大小的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字段指示使用字典编码语法元素ocupancy_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指定针对序列或切片启用隐式几何分割。等于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分割的最大数目。接着,变量K由gps_max_num_implicit_qtbt_before_ot如下初始化。
K=gps_max_num_implicit_qtbt_before_ot。
gps_min_size_implicit_qtbt指定隐式QT和BT分割的最小大小。然后,变量M由gps_min_size_implicit_qtbt如下初始化。
M=gps_min_size_implicit_qtbt
gps_extension_flag指示gps_extension_data语法结构是否存在于GPS语法结构中。例如,等于1的gps_extension_flag指示gps_extension_data语法结构存在于GPS语法中。例如,等于0的gps_extension_flag指示gps_extension_data语法结构不存在于GPS语法中。
当gps_extension_flag等于1时,根据实施方式的GPS还可以包括gps_extension_data_flag字段。
gps_extension_data_flag可以具有任何值。其存在及值不影响解码器对配置文件的符合性。
根据实施方式,GPS还可以包括geom_tree_type字段。例如,等于0的geom_tree_type指示使用八叉树对位置信息(或几何)进行编码。等于1的geom_tree_type指示使用预测树对位置信息(或几何)进行编码。
图38示出了根据实施方式的包含关于分段(分离)切片的信息和/或与直接编码相关的信息的几何参数集(GPS)的语法结构的实施方式。
根据实施方式,当包括在SPS中的scalable_transmission_enable_flag字段的值是1时,GPS可以包括geom_scalable_transmission_enable_flag字段。
在一个实施方式中,等于1的geom_scalable_transmission_enable_flag指示几何被压缩,以实现可缩放发送。
例如,它可以指示几何由基于八叉树的层组成,或切片分割(参考图24等)是在考虑可缩放发送的情况下执行的。
例如,等于1的geom_scalable_transmission_enable_flag可以指示使用基于八叉树的几何编码,并且禁用QTBT,或者通过按照BT(二叉树)-QT(四叉树)-OT(八叉树)的顺序执行编码以诸如八叉树的形式来编码几何。
当geom_scalable_transmission_enable_flag等于1时,GPS还可以包括num_scalable_layer字段。
num_scalable_layers可以指示支持可缩放发送的层的数目。根据实施方式的层可以表示LOD。
根据实施方式,GPS包括迭代次数与num_scalable_layers字段的值一样的循环。在实施方式中,i被初始化为0,并且每次循环被执行时递增1。循环迭代,直到i的值达到num_scalable_layers字段的值。循环可以包括scalable_layer_id[i]字段和num_slices_in_scalable_layer[i]字段。
scalable_layer_id[i]字段可以指定第i可缩放层的标识符。也就是说,它指定构成可缩放发送的可缩放层的指示符。根据实施方式,当可缩放层由多个切片组成时,可以通过参数集中的scalable_layer_id字段来发送共同信息,并且可以根据切片通过数据单元头来发送其它个体信息。
根据实施方式,当geom_tree_type等于0时,也就是说,当使用八叉树对位置信息(即,几何)进行编码时,GPS还可以包括num_octree_layers_in_scalable_layer[i]字段、tree_depth_start[i]字段、tree_depth_end[i]字段、node_size[i]字段和num_nodes[i]字段。
num_octree_layers_in_scalable_layer[i]可以指示构成可缩放发送的第i可缩放层中包括的或对应于构成可缩放发送的第i可缩放层的八叉树层的数目。当未基于八叉树配置可缩放层时,num_octree_layers_in_scalable_layer[i]可以指对应层。
tree_depth_start[i]可以指示构成可缩放发送的第i可缩放层中包括的或对应于构成可缩放发送的第i可缩放层的八叉树层当中的起始八叉树深度(相对最靠近根)。
tree_depth_end[i]可以指示构成可缩放发送的第i可缩放层中包括的或对应于构成可缩放发送的第i可缩放层的八叉树层当中的最后八叉树深度(相对最靠近叶)。
node_size[i]可以指示通过可缩放发送重构第i可缩放层时的输出点云数据的节点大小。例如,等于1的node_size[i]可以指示叶节点。尽管实施方式假设XYZ节点大小是恒定的,但是可以通过用信号通知XYZ方向或变换坐标中的每个方向(诸如,(r(半径)、θ))中的大小来指示任何节点大小。
num_slices_in_scalable_layer[i]可以指示属于第i可缩放层的切片的数目。
根据实施方式,GPS可以包括迭代次数与num_slices_in_scalable_layer[i]字段的值相同的循环。在实施方式中,j被初始化为0,并且每次循环被执行时递增1。循环迭代,直到j的值达到num_slices_in_scalable_layer[i]字段的值。循环可以包括sub_group_id[i][j]字段、num_nodes_in_subgroup[i][j]字段、bitstream_type[i][j]字段和slice_id[i][j]字段。
sub_group_id[i][j]字段指定属于第i可缩放层的第j切片中包括的子组的标识符。也就是说,sub_group_id[i][j]字段指定由layer_group_id字段指示的层组中的子组的指示符。subgroup_id的范围是0至num_subgroups_minus1[layer_group_id],其中subgroup_id指示同一layer_group_id中的切片的顺序。
num_nodes_in_subgroup[i][j]指示与属于第i可缩放层的第j切片相关的节点的数目。也就是说,num_nodes_in_subgroup[i][j]指示几何数据单元中包括的节点的数目。根据实施方式,几何数据单元中的所有num_nodes的总和指定几何数据单元中的节点的总数。
bitstream_type[i][j]指示属于第i可缩放层的第j切片中包括的比特流的类型。根据实施方式,bitstream_type可以指示包括在切片中的比特流的类型。bitstream_type等于0可以指示比特流是算术熵编码(AEC)比特流。bitstream_type等于1可以指示比特流是直接编码(DC)比特流。bitstream_type等于2可以指示在切片中存在AEC比特流和DC比特流两者。
slice_id[i][j]指定用于标识属于第i可缩放层的第j切片的标识符。也就是说,slice_id[i][j]可以指定用于区分切片或数据单元的指示符,并且可以递送用于属于切片层的数据单元(或称为切片)的指示符。
根据实施方式,图38的关于分段(分离)切片的信息和/或与直接编码相关的信息可以包括在图37的GPS中的任何位置。
图39示出了根据本公开的属性参数集(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字段指示属性的编码类型。
根据实施方式,等于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语法元素。例如,等于0的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加1指定将用于预测的最近邻居的最大数目。根据实施方式,NumPredNearestNeighbours的值被设置为等于lifting_num_pred_nearest_neighbours。
lifting_search_range_minus1加1指定用于确定要用于预测的最近邻居并建立基于距离的细节层次(LOD)的搜索范围。可以通过将1与lifting_search_range_minus1字段的值加1来获得用于指定搜索范围的变量LiftingSearchRange(LiftingSearchRange=lifting_search_range_minus1+1)。
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字段指定用于属性编码的细节层次的数目。用于指定LOD的数目的变量LevelDetailCount可以通过将lifting_num_detail_levels_minus1字段的值加1来获得。(LevelDetailCount=lifting_num_detail_levels_minus1+1)。
根据实施方式,当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)时,还可以包括lifting_sampling_distance_squared_offset[idx]字段。
lifting_sampling_period_minus2[idx]加2指定细节层次idx的采样周期。
lifting_sampling_distance_squared_scale_minu1[idx]加1指定用于推导细节层次idx的采样距离的平方的比例因子。
lifting_sampling_distance_squared_offset[idx]字段指定用于推导细节层次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_prediction_enabled_flag字段的值为真时,APS还可以包括raht_prediction_threshold 0字段和raht_prediction_threshold1字段。
raht_prediction_threshold0字段指定终止来自邻居点的变换权重预测的阈值。
raht_prediction_threshold1字段指定跳过来自邻居点的变换权重预测的阈值。
aps_extension_flag字段指定aps_extension_data_flag语法结构是否存在于APS语法结构中。例如,等于1的aps_extension_flag指示aps_extension_data语法结构存在于APS语法结构中。例如,等于0的aps_extension_flag指示aps_extension_data语法结构不存在于APS语法结构中。
当aps_extension_flag字段的值为1时,根据实施方式的APS还可以包括aps_extension_data_flag字段。
aps_extension_data_flag字段可以具有任何值。其存在及值不影响解码器对配置文件的符合性。
根据实施方式的APS还可以包括与基于LoD的属性压缩相关的信息。
图40示出了根据实施方式的包含关于分段(分离)切片的信息和/或与直接编码相关的信息的attribute_parameter_set()(APS)的语法结构的实施方式。
根据实施方式,当包括在SPS中的scalable_transmission_enable_flag字段的值是1时,APS可以包括attr_scalable_transmission_enable_flag字段。
在一个实施方式中,attr_scalable_transmission_enable_flag等于1指示属性被压缩以启用可缩放发送。例如,attr_scalable_transmission_enable_flag等于1可以指示使用可缩放LOD生成来执行预测提升编码或可缩放RAHS(例如,基于Haar的RAHT)。
当attr_scalable_transmission_enable_flag字段的值是1时,APS还可以包括aligned_slice_structure_enabled_flag字段。
aligned_slice_structure_enabled_flag等于1可以指示属性可缩放层结构和/或切片配置与几何可缩放层结构和/或切片配置匹配。在这种情况下,可以从关于几何可缩放层结构和/或切片配置的信息来识别关于属性可缩放层结构和/或切片配置的信息。也就是说,几何层/切片结构与属性层/切片结构相同。
根据实施方式,当aligned_slice_structure_enabled_flag字段的值是1时,APS可以包括num_scalable_layers字段。
num_scalable_layers可以指示支持可缩放发送的层的数目。根据实施方式的层可以表示LOD。
根据实施方式,APS包括迭代次数与num_scalable_layers字段的值相同的循环。在实施方式中,i被初始化为0,并且每次循环被执行时递增1。循环迭代,直到i的值达到num_scalable_layers字段的值。循环可以包括num_slice_in_scalable_layer[i]字段。
num_slices_in_scalable_layer[i]可以指示属于第i可缩放层的切片的数目。
根据实施方式,APS可以包括迭代次数与num_slices_in_scalable_layer[i]字段的值相同的循环。在实施方式中,j被初始化为0,并且每次循环被执行时递增1。循环迭代,直到j的值达到num_slices_in_scalable_layer[i]字段的值。循环可以包括slice_id_offset[i][j]字段。
slice_id_offsets[i][j]字段指示属于第i可缩放层的第j切片的偏移。也就是说,其可以指示用于基于几何切片id获得属性切片或数据单元的偏移。根据实施方式,当aligned_slice_structure_enabled_flag等于1时,也就是说,当属性切片结构与几何切片结构匹配时,可以如下基于几何切片id获得属性切片id。
Slice_id(attr)=slice_id(geom)+slice_id_offset
在这种情况下,几何参数集中提供的值可以用于对属性切片结构进行配置的变量,例如,num_scalable_layers字段、scalable_layer_id字段、tree_depth_start字段、tree_depth_end字段、node_size字段、num_nodes字段和num_slice_in_scalable_layer字段。
根据实施方式,当aligned_slice_structure_enabled_flag等于0时,也就是说,当属性切片结构与几何切片结构不匹配时,APS可以包括num_scalable_layers字段。
num_scalable_layers可以指示支持可缩放发送的层的数目。
根据实施方式,APS包括迭代次数与num_scalable_layers字段的值相同的循环。在实施方式中,i被初始化为0,并且每次循环被执行时递增1。循环迭代,直到i的值达到num_scalable_layers字段的值。循环可以包括num_slices_in_scalable_layer[i]字段。循环还可以包括scalable_layer_id[i]字段、corresponding_geom_scalable_layer[i]字段、num_octree_layers_in_scalable_layer[i]字段、tree_depth_start[i]字段、tree_depth_end[i]字段、node_size[i]字段、num_nodes[i]字段和num_slices_in_scalable_layer[i]字段。
scalable_layer_id[i]可以指定第i可缩放层的标识符。也就是说,它指定构成可缩放发送的可缩放层的指示符。根据实施方式,当可缩放层由多个切片组成时,可以通过参数集中的scalable_layer_id字段来发送共同信息,并且可以根据切片通过数据单元头来发送其它个体信息。
corresponding_geom_scalable_layer[i]可以指示与关于第i可缩放层的属性可缩放层结构相对应的几何可缩放层。
num_octree_layers_in_scalable_layer[i]可以指示包括属于与第i可缩放层相关的数据单元(或切片)的节点的树深度。
tree_depth_start[i]可以指示构成可缩放发送的第i可缩放层中包括的或对应于构成可缩放发送的第i可缩放层的八叉树层当中的起始八叉树深度(相对最靠近根)。
tree_depth_end[i]可以指示构成可缩放发送的第i可缩放层中包括的或对应于构成可缩放发送的第i可缩放层的八叉树层当中的最后八叉树深度(相对最靠近叶)。
node_size[i]可以指示通过可缩放发送重构第i可缩放层时的输出点云数据的节点大小。例如,等于1的node_size[i]可以指示叶节点。尽管实施方式假设XYZ节点大小是恒定的,但是可以通过用信号通知XYZ方向或变换坐标中的每个方向(诸如,(r(半径)、θ))中的大小来指示任何节点大小。
num_nodes[i]可以指示属于对应数据单元(或切片)的节点当中属于tree_depth的节点的数目。
num_slices_in_scalable_layer[i]可以指示属于第i可缩放层的切片的数目。
根据实施方式,APS可以包括迭代次数与num_slices_in_scalable_layer[i]字段的值相同的循环。在实施方式中,j被初始化为0,并且每次循环被执行时递增1。循环迭代,直到j的值达到num_slices_in_scalable_layer[i]字段的值。循环可以包括slice_id[i][j]字段。
slice_id[i][j]指定用于标识属于第i可缩放层的第j切片的标识符。也就是说,slice_id[i][j]可以指定用于区分切片或数据单元的指示符,并且可以递送用于属于切片层的数据单元(或称为切片)的指示符。
根据实施方式,图40中的关于分段(分离)切片的信息和/或与直接编码相关的信息可以包括在图39的APS中的任何位置。
图41是例示了根据本公开的几何切片比特流()的语法结构的实施方式的图。
根据实施方式的几何切片比特流(geometry_slice_bitstream())可以包括几何切片头(geometry_slice_header())和几何切片数据(geometry_slice_data())。根据实施方式,几何切片比特流也称为几何数据单元,几何切片头也称为几何数据单元头,并且几何切片数据也称为几何数据单元数据。
图42示出了根据本公开的几何切片头(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维度中的边界框大小,即,在解码过程中使用的如下MaxNodesize_XLog2。
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}
当gps_implicit_geom_partition_flag等于0时,gsh_log2_max_nodesize字段指定根几何八叉树节点的大小。
这里,变量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_ofsets_depth字段。
geom_octree_qp_offsets_depth字段指定几何八叉树的深度。
图43示出了根据实施方式的用于关于分段(分离)切片的信息和/或与直接编码相关的信息的几何数据单元头(或称为几何切片头)的语法结构的实施方式。
根据实施方式的几何数据单元头可以包括slice_id字段和bitstream_type字段。
slice_id指定用于识别数据单元(即,切片)的标识符。也就是说,slice_id指定用于区分切片或数据单元的指示符,并且可以递送用于属于切片层的数据单元(或称为切片)的指示符。
bitstream_type指示切片中包括的比特流的类型。根据实施方式,bitstream_type可以指示包括在切片中的比特流的类型。bitstream_type等于0可以指示比特流是算术熵编码(AEC)比特流。bitstream_type等于1可以指示比特流是直接编码(DC)比特流。bitstream_type等于2可以指示在切片中一起存在AEC比特流和DC比特流。
根据实施方式,当geom_scalable_transmission_enable_flag等于1时,几何数据单元头还可以包括scalable_layer_id字段、num_tree_depth_in_data_unit字段和bitstream_type字段。
scalable_layer_id可以指定与数据单元(即,切片)相关的可缩放层的标识符。也就是说,其指定用于构成可缩放发送的可缩放层的指示符。根据实施方式,当可缩放层由多个切片组成时,可以在参数集中的scalable_layer_id字段中承载共同信息,并且可以根据切片在图43的数据单元头中承载其它个体信息。
当多个子组存在于对应于scalable_layer_id的可缩放层中时,几何数据单元头还可以包括sub_group_id字段。
sub_group_id指定属于由scalable_layer_id指定的可缩放层的子组的标识符。也就是说,sub_group_id指定由layer_group_id指示的层组中的子组的指示符。subgroup_id的范围是0至num_subgroups_minus1[layer_group_id],其中,subgroup_id指示同一layer_group_id中的切片的顺序。
num_tree_depth_in_data_unit可以指示包括属于数据单元(即,切片)的节点的树深度的数目。
根据实施方式,几何数据单元头包括迭代次数与num_tree_depth_in_data_unit的值相同的循环。在实施方式中,i被初始化为0,并且每次循环被执行时递增1。循环迭代,直到i的值达到num_tree_depth_in_data_unit的值。该循环可以包括tree_depth[i]字段、num_nodes[i]字段和num_node_in_subgroup[i][sub_group_id]字段。
tree_depth[i]可以指示第i树深度。也就是说,tree_depth可以指示树深度。
num_nodes[i]可以指示包括在第i树深度中的节点的数目。也就是说,num_nodes[i]可以指示属于数据单元的节点当中的属于第i树深度(tree_depth)的节点的数目。
num_nodes_in_subgroup[i][sub_group_id]指示与数据单元(即,切片)相关的节点的数目。也就是说,num_nodes_in_subgroup[i]指示由sub_group_id指示的子组中包括的节点的数目。根据实施方式,几何数据单元中的所有num_nodes的总和指定几何数据单元中的节点的总数。
根据实施方式,当bitstream_type等于2(也就是说,在切片中一起存在AEC比特流和DC比特流)时,几何数据单元头还可以包括dc_bitstream_offset字段、dc_bitstream_length字段和dc_backward_enabled_flag字段。
根据实施方式,dc_bitstream_offset和dc_bitstream_length可以指示切片中的DC比特流的开始/结束位置和DC比特流的总长度。也就是说,当bitstream_type等于2时,AEC比特流和DC比特流可以一起存在于一个切片中。在这种情况下,可以指示DC比特流的开始/结束位置和DC比特流的总长度。
dc_backward_enabled_flag等于1可以指示DC比特流以反向顺序包括在包括AEC比特流和DC比特流两者的切片中。在这种情况下,切片的比特流的结束可以是DC比特流的开始,并且dc_bitstream_offset可以是DC比特流的结束。dc_backward_enabled_flag等于0指示DC比特流以与AEC比特流相同的方向包括在包括AEC比特流和DC比特流两者的切片中。在这种情况下,可以看出,DC比特流从dc_bitstream_offset开始,并且在整个比特流结束时结束(即,dc_bitstream_offset+dc_bitstream_length)。
根据实施方式,几何数据单元头还可以包括ref_slice_id字段。
ref_slice_id字段可以用于指示必须在当前切片之前以用于对当前切片进行解码的切片(例如,参见图19至图21的头)。
根据实施方式,图43的关于分段(分离)切片的信息和/或与直接编码相关的信息可以包括在图42的几何切片头(即,几何数据单元头)中的任何位置处。
图44是例示了根据本公开的几何切片数据(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_slice_data()。也就是说,当三角形节点的大小大于0时,经受三角汤几何编码的几何比特流通过geometry_trisoup_data()发送。
图45示出了根据本公开的attribute_slice_bitstream()的语法结构的实施方式。
根据实施方式的属性切片比特流(attribute_slice_bitstream())可以包括属性切片头(attribute_slice_header())和属性切片数据(attribute_slice_data())。根据实施方式,属性切片比特流可以称为属性数据单元,属性切片头可以称为属性数据单元头,并且属性切片数据可以称为属性数据单元数据。
图46示出了根据本公开的属性切片头(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时,属性切片头还可以包括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_attr_layer_qp_delta_luma字段和ash_attr_layer_qp_delta_chroma字段是否存在于ASH中。例如,当ash_attr_layer_qp_delta_present_flag字段的值为1时,其指示ash_attr_layer_qp_delta_luma字段和ash_attr_layer_qp_delta_chroma字段存在于ASH中。当值为0时,其指示字段不存在。
当ash_attr_layer_qp_delta_present_flag字段的值为真时,ASH还可以包括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。根据实施方式,可以通过将ash_attr_num_layer_qp_minus1字段的值加1来获得指定层的数目的NumLayerQp(NumLayerQp=ash_attr_num_layer_qp_minus1+1)。
根据实施方式,当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]
}
等于1的ash_attr_region_qp_delta_present_flag指示根据实施方式,在当前属性切片头(attribute_slice_header())中存在ash_attr_region_qp_delta、区域边界框原点和大小。等于0的ash_attr_region_qp_delta_present_flag指示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字段指示相对于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字段指示来自由ash_attr_qp_region_box字段指定的区域的SliceQpY[i]和SliceQpC[i]的增量qp(delta qp)。
根据实施方式,将指定区域框增量量化参数的变量RegionboxDeltaQp设置为等于ash_attr_region_qp_delta字段的值(RegionboxDeltaQp=ash_attr_region_qp_delta)。
图43示出了根据实施方式的针对关于分段(分离)切片的信息和/或与直接编码相关的信息的属性数据单元头(或称为属性切片头)的语法结构的实施方式。
根据实施方式的属性数据单元头可以包括slice_id字段和ref_slice_id字段。
slice_id指定用于标识数据单元(即,切片)的标识符。也就是说,slice_id指定用于区分切片或数据单元的指示符,并且可以递送用于属于切片层的数据单元(或称为切片)的指示符。
ref_slice_id字段可以用于指示必须在当前切片之前以用于对当前切片进行解码的切片(例如,参见图19至图21的头)。
根据实施方式,当APS中包括的attr_scalable_transmission_enable_flag字段等于1并且aligned_slice_structure_enabled_flag等于1时,属性数据单元头还可以包括aligned_geom_data_unit_id字段。当aligned_slice_structure_enabled_flag等于0时,属性数据单元头还可以包括scalable_layer_id字段和num_tree_depth_in_data_unit字段。
当属性数据单元符合几何数据单元的可缩放发送层结构/切片结构时,aligned_geom_data_unit_id字段可以承载对应几何数据单元id。
scalable_layer_id可以指定与切片(或数据单元)相关的可缩放层的标识符。也就是说,其指定用于构成可缩放发送的可缩放层的指示符。根据实施方式,当可缩放层由多个切片组成时,可以在参数集中的scalable_layer_id字段中承载共同信息,并且可以根据切片在图47的数据单元头中承载其它个体信息。
num_tree_depth_in_data_unit可以指示包括属于数据单元(即,切片)的节点的树深度的数目。
根据实施方式,属性数据单元头包括迭代次数与num_tree_depth_in_data_unit的值相同的循环。在实施方式中,i被初始化为0,并且每次循环被执行时递增1。循环迭代,直到i的值达到num_tree_depth_in_data_unit的值。该循环可以包括tree_depth[i]字段和num_nodes[i]字段。
tree_depth[i]可以指示第i树深度。也就是说,tree_depth可以指示树深度。
num_nodes[i]可以指示包括在第i树深度中的节点的数目。也就是说,num_nodes[i]可以指示属于数据单元的节点当中的属于第i树深度(tree_depth)的节点的数目。
根据实施方式,图47的关于分段(分离)切片的信息和/或与直接编码相关的信息可以包括在图46的属性切片头(即,属性数据单元头)中的任何位置处。
图47示出了根据本公开的attribute_slice_data()的语法结构的实施方式。根据实施方式的attribute_slice_data()可以承载属于对应切片的属性比特流。attribute_slice_data()可以包括关于点云的一些或全部的属性或属性相关数据。
在图48的属性切片数据(attribute_slice_data())中,维度=attribute_dimension[ash_attr_sps_attr_idx]指示由属性切片头中的ash_attr_sps_attr_idx字段标识的属性集的attribute_dimension。attribute_dimension指示构成属性的分量的数目。根据实施方式的属性指示反射率、颜色等。因此,分量的数目在属性之间不同。例如,对应于颜色的属性可以具有三个颜色分量(例如,RGB)。因此,对应于反射率的属性可以是一维属性,并且对应于颜色的属性可以是三维属性。
根据实施方式的属性可以按维度被属性编码。
例如,对应于反射率的属性和对应于颜色的属性可以各自被属性编码。此外,根据实施方式的属性可以被属性编码在一起,而不管维度如何。例如,对应于反射率的属性和对应于颜色的属性可以被属性编码在一起。
在图48中,零运行(zerorun)指定残差之前的0的数目。
此外,在图48中,根据实施方式,i表示属性的第i点的值。在一个实施方式中,在APS中用信号通知attr_coding_type字段和lifting_adaptive_prediction_threshold字段。
图48中的MaxNumPredictors是点云数据解码过程中使用的变量,并且可以如下基于在APS中用信号通知的lifting_adaptive_prediction_threshold字段的值来获得。
MaxNumPredictors=lifting_max_num_direct_predicots+1
这里,lifting_max_num_direct_predicots指示将用于直接预测的预测子的最大数目。
根据实施方式的predIndex[i]指定用于解码属性的第i点值的预测子索引(或称为预测模式)。predIndex[i]的值的范围从0至lifting_max_num_direct_predictors的值。
图49示出了根据实施方式的点云数据发送装置的结构。
图49的发送装置对应于图1的发送装置10000、图1的点云视频编码器10002、图1的发送器10003、图2的获取20000/编码20001/发送20002、图4的编码器、图12的发送装置、图14的装置、图18的编码器等。图49的每个部件可以对应于硬件、软件、处理器和/或其组合。
下面描述根据实施方式的编码器和发送器的操作。
当点云数据被输入到发送装置时,几何编码器60010对位置信息(几何数据(例如,XYZ坐标、(phi-theta)坐标等)进行编码,并且属性编码器60020对属性数据(例如,颜色、反射率、强度、灰度、不透明度、介质、材料、光泽度等)进行编码。
压缩(编码)数据被划分成用于发送的单元。数据可以由子比特流生成器60040划分成适合于根据分层结构信息选择比特流单元中的必要信息,并接着可以对该数据进行打包。
根据实施方式,八叉树编码后的几何比特流被输入到八叉树编码后的几何比特流分段部60041,并且直接编码后的几何比特流被输入到直接编码后的几何比特流分段部60042。
八叉树编码后的几何比特流分段部60041基于关于分段(分离)切片的信息和/或与由层组结构生成器60030生成的直接编码相关的信息将八叉树编码后的几何比特流划分成一个或更多个组和/或子组。将跳过其详细描述。具体地,参见上面给出的图15至图33的描述。
另外,直接编码后的几何比特流分段部60042基于关于分段(分离)切片的信息和/或与由层组结构生成器60030生成的直接编码相关的信息将直接编码后的几何比特流划分成一个或更多个组和/或子组。将跳过其详细描述。具体地,参见上面给出的图15至图33的描述。
八叉树编码后的几何比特流分段部60041的输出和直接编码后的几何比特流分段部60042的输出被输入到几何比特流绑定部60043。
几何比特流绑定部60043基于关于分段(分离)切片的信息和/或与由层组结构生成器60030生成的直接编码相关的信息执行几何比特流绑定过程,并且逐层组地将子比特流输出到分段后的切片生成器60045。例如,几何比特流绑定部60043级联切片内的AEC比特流和DC比特流。最终切片由几何比特流绑定部60043创建。
编码后的属性比特流分段部60044基于关于分段(分离)切片的信息和/或与由层组结构生成器60030生成的直接编码相关的信息将编码后的属性比特流划分成一个或更多个组和/或子组。属性信息的一个或更多个组和/或子组可以与几何信息的一个或更多个组和/或子组链接,或者可以独立地生成。具体地,参见上述图15至图33。将跳过其详细描述。
分段后的切片生成器60045根据从几何比特流绑定部60043和/或编码后的属性比特流分段部60044接收的输入,基于由元数据生成器60050生成的关于分段(分离)切片的信息和/或直接编码相关信息将一个切片分段成多个切片。每个子比特流承载在每个切片分段中。在这种情况下,AEC比特流和DC比特流可以承载在一个切片中,或者可以承载在不同切片中。
复用器60060复用分段后的切片生成器60045的输出和每个层的元数据生成器60050的输出,并将复用后的输出提供到发送器60070。由层组结构生成器60030和/或元数据生成器生成的针对关于分段(分离)切片的信息和/或与直接编码相关的信息,可以参考图34至图48。
也就是说,如本公开中所提出的,当不同类型的比特流(例如,AEC比特流和DC比特流)包含在一个切片中时,由几何编码器60010生成的比特流(例如,AEC比特流和DC比特流)可以根据目的被分离。然后,可以根据由层组结构生成器60030和/或元数据生成器生成的关于分段(分离)切片的信息和/或与直接编码相关的信息(即,层组信息),在一个切片中包括相应切片或邻接信息。根据实施方式,可以通过元数据生成器60050发送关于分段(分离)切片的信息和/或与直接编码相关的信息(例如,除了根据每个切片id的层组信息之外的诸如比特流类型、bitstream_offset、bitstream_length和比特流方向的信息、包括在层组中的层信息、节点的数目、层深度信息和包括在子组中的节点的数目)。可以在SPS、APS、GPS、几何数据单元头、属性数据单元头或SEI消息中用信号通知关于分段(分离)切片的信息和/或与直接编码相关的信息(例如,除了根据每个切片id的层组信息之外的诸如比特流类型、bitstream_offset、bitstream_length和比特流方向的信息、包括在层组中的层信息、节点的数目、层深度信息和包括在子组中的节点的数目)。针对关于分段(分离)切片的信息和/或与直接编码相关的信息(例如,除了根据每个切片id的层组信息之外的诸如比特流类型、bitstream_offset、bitstream_length和比特流方向的信息、包括在层组中的层信息、节点的数目、层深度信息和包括在子组中的节点的数目)的细节,参见图34至图48。将跳过其详细描述。
图50示出了根据实施方式的点云数据接收装置的结构。
根据图50的实施方式的接收装置对应于图1的接收装置10004、图1的接收器10005、图1的点云视频解码器10006、图2的发送20002/解码20003/渲染20004、图10和图11的解码器、图13的接收装置、图14的装置等。图50的每个部件可以对应于硬件、软件、处理器和/或其组合。
下面公开根据实施方式的解码器/接收器的操作。
当比特流被输入到接收装置的接收器61010时,接收器61010向解复用器61020输出比特流,并且解复用器61020划分包含位置信息和属性信息的比特流以及包括关于分段(分离)的切片的信息和/或与直接编码相关的信息的信令信息。
包含位置信息和属性信息的划分后的比特流被输出到子比特流分类器61040,并且划分后的信令信息被输出到元数据解析器61030。
子比特流分类器61040基于一个或更多个切片的每个头中的信息处理包括位置信息和属性信息的比特流。然后,子比特流分类器61040将包含几何信息的比特流(或子比特流)输出到几何解码器61050,并且将包含属性信息的比特流(或子比特流)输出到属性解码器61060。
另选地,在该过程中,可以选择接收器所需的层。几何数据和属性数据可以分别由几何解码器61050和属性解码器61060根据数据的特性从分类后的比特流重构,并且然后可以被转换成由渲染器61070最终输出的格式。
根据实施方式,子比特流分类器61040可以包括切片选择器61040、比特流拆分器61042和比特流分段级联器61043。子比特流分类器61040可以称为解码预处理。
根据实施方式,子比特流分类器61040可以基于元数据解析器获取的元数据(例如,关于分段(分离)切片的信息和/或与直接编码相关的信息)对比特流进行分类/选择。
关于分段(分离)切片的信息和/或与直接编码相关的信息可以包括除了根据每个切片id的层组信息之外的诸如比特流类型、bitstream_offset、bitstream_length和比特流方向的信息、包括在层组中的层信息、节点的数目、层深度信息和包括在子组中的节点的数目。将跳过其详细描述。细节将参考图34至图48。
根据实施方式,切片选择器61040基于关于分段(分离)切片的信息和/或与直接编码相关的信息(其由元数据解析器61030解析以用于可缩放解码)从多个切片当中选择一个或更多个切片。
根据实施方式,当所选择的切片包含不同类型的几何比特流(例如,AEC比特流和DC比特流)时,可以通过比特流拆分器61042单独地解码每个比特流。
根据实施方式,基于八叉树编码的AEC比特流和DC比特流可以在对应切片中分离并且由几何解码器61050处理。在这种情况下,可以基于关于分段(分离)切片的信息和/或与直接编码相关的信息(例如,比特流类型、bitstream_offset、bitstream_length和比特流方向信息)在切片中分离AEC比特流和DC比特流。另外,针对分离后的比特流,可以包括按原始顺序级联相同类型的比特流分段的操作。该操作可以由比特流分段级联器61043执行。该操作可以包括在将通过层组分离的比特流处理成连续比特流的过程中,并且可以基于层组信息对比特流进行按顺序排序。可以由几何解码器61050处理可以并行处理的比特流,而无需级联操作。
图50的接收装置的每个部件的操作可以遵循图49的发送装置的对应部件的操作或其反向过程。
图51是根据实施方式的点云数据接收装置的流程图。
也就是说,图51更详细地例示了图50所示的子比特流分类器的操作。换句话说,假设从发送器可缩放地发送几何数据和属性数据。
接收装置逐切片地接收数据,并且元数据解析器在SPS、GPS、APS、TPS等中递送参数集信息(例如,关于分段(分离)切片的信息和/或与直接编码相关的信息)。基于所递送的信息,可以确定可缩放性。当数据是可缩放的时,用于可缩放发送的切片结构被识别,如图51(65011)所示。首先,可以基于诸如在GPS中承载的num_scalable_layers、scalable_layer_id、tree_depth_start、tree_depth_end、node_size、num_nodes、num_slices_in_scalable_layer和slice_id的信息识别几何切片结构。
当aligned_slice_structure_enabled_flag等于1(65017)时,还可以以相同方式识别属性切片结构(例如,基于八叉树对几何进行编码,基于可缩放LoD或可缩放RAHT对属性进行编码,并且通过同一切片分割生成的几何/属性切片对对于同一八叉树层具有相同数目的节点)。
当结构相同时,根据目标可缩放层确定几何切片id的范围,并且通过slice_id_offset确定属性切片id的范围。根据所确定的范围选择几何/属性切片(65012至65014、65018和65019)。
当aligned_slice_sturcutre_enabled_flag=0时,可以基于诸如num_scalable_layers、scalable_layer_id tree_depth_start、tree_depth_end、node_size、num_nodes、num_slices_in_scalable_layer和slice_id的通过APS递送的信息单独地识别属性切片结构,并且可以根据可缩放操作限制必要的属性切片id的范围。基于该范围,可以在重构之前通过每个切片id选择所需切片(65019、65020和65021)。通过上述过程选择的几何/属性切片作为输入被发送到解码器。
以上已经基于接收器的可缩放发送或可缩放选择描述了根据切片结构的解码过程。然而,当scalable_transmission_enabled_flag等于0时,可以跳过确定几何/属性切片id的范围的过程,并且可以选择整个切片,使得它们甚至可以在不可缩放操作中使用。即使在这种情况下,可以通过借助于诸如SPS、GPS、APS或TPS的参数集(例如,关于分段(分离)切片的信息和/或与直接编码相关的信息)递送的切片结构信息使用关于先前切片(例如,属于较高层的切片或由ref_slice_id指定的切片)的信息。
如上文所描述的,可以基于可缩放发送接收比特流,并且可以基于比特流中包括的参数信息识别可缩放比特流结构。可以估计几何可缩放层。
可以基于geom_slice_id识别几何切片。
可以基于slice_id选择几何切片。
解码器可以对所选择的几何切片进行解码。
当包含在比特流中的aligned_slice_structure_enabled_flag等于1时,可以检查对应于几何切片的属性切片ID。可以基于slice_id_offset访问属性切片。
可以基于slice_id选择属性切片。
解码器可以对所选择的属性切片进行解码。
当aligned_slice_structure_enabled_flag不等于1时,可以估计属性可缩放层。可以基于属性切片id识别属性切片。
可以基于slice_id选择属性切片。
在本公开中,当存在不同类型的几何比特流(例如,AEC比特流和DC比特流)时,可以在切片选择操作中选择包括在不同比特流的范围中的所有切片。当不同类型比特流包括在一个切片中时,可以基于偏移信息和长度信息分离比特流,并且将分离后的比特流级联成一个比特流,以根据层组顺序进行解码。该操作可以包括在处理由层组分离成连续比特流的比特流的过程中。可以基于层组信息按顺序对比特流进行排序。可以由解码器处理可以并行处理的比特流,而无需级联操作。
根据实施方式的发送装置具有如下效果。
针对点云数据,发送装置可以根据特定准则划分和发送压缩数据。当使用根据实施方式的分层编码时,可以根据层对压缩数据进行划分和发送。因此,可以在发送侧提高存储和发送效率。
参考图15和图16,可以压缩并提供点云数据的几何和属性。在基于PCC的服务中,可以根据接收器性能或发送环境调整压缩率或数据量。
在一个切片中配置有点云数据的情况下,当接收器性能或发送环境改变时,1)适合于每个环境的比特流可以被单独转码和存储,并且可以在发送时被选择,或2)在发送之前可能需要转码操作。在这种情况下,如果要支持的接收器环境的数目增加或发送环境频繁地改变,则可以提高与存储空间相关的问题或由转码导致的延迟。
图52例示了根据实施方式的点云数据的发送/接收。
为了解决上述问题,根据实施方式的方法/装置可以如图52所示处理点云数据。
当根据实施方式根据层划分和发送压缩数据时,可以在比特流级中仅选择性地发送预压缩数据的必要部分,而无需单独的转码。存储空间可以被高效地操作,因为每个流仅需要一个存储空间。另外,可以在(比特流选择器)带宽方面实现高效发送,因为在发送之前仅选择了必要的层。
根据实施方式的接收方法/装置可以提供如下效果。
根据实施方式,可以根据点云数据的单个准则来划分和发送压缩数据。当使用分层编码时,可以根据层对压缩数据进行划分和发送。在这种情况下,可以提高接收侧的效率。
图15和图16例示了在由层组成的点云数据的发送的情况下在发送侧和接收侧的操作。在这种情况下,当不管接收器性能如何而递送用于重构整个PCC数据的信息时,接收器需要通过解码来重构点云数据,然后仅选择对应于所需的层的数据(数据选择或子采样)。在这种情况下,由于所发送的比特流已经被解码,所以以低延迟为目标的接收器可能会出现延迟,或根据接收器性能可能解码失败。
因此,当比特流被划分成切片并被递送时,接收器可以根据要根据解码器性能或应用领域来表示的点云数据的密度来选择性地将比特流递送给解码器。在这种情况下,由于在解码之前执行选择,因此可以提高解码器效率,并且可以支持各种性能的解码器。
根据实施方式的方法/装置可以使用层组和子组递送比特流,并且进一步执行切片分段。
上述每个部分、模块或单元可以是执行存储在存储器(或存储单元)中的连续过程的软件、处理器或硬件部分。在以上实施方式中描述的每个步骤可以由处理器、软件或硬件部分执行。在以上实施方式中描述的每个模块/块/单元可以作为处理器、软件或硬件操作。另外,实施方式提出的方法可以被作为代码执行。该代码可以被写到处理器可读存储介质上,因此,供被由设备提供的处理器读取。
在本说明书中,当部分“包括”或“包含”元件时,这意味着,该部分还包括或包括另一个元件,除非另外提到。另外,说明书中公开的术语“...模块(或单元)”意指用于处理至少一个功能或操作的单元,并且可以由硬件、软件或硬件与软件的组合来实现。
尽管为了简便起见参考附图中的每一个说明了实施方式,但可以通过合并在附图中例示的实施方式来设计新的实施方式。如果本领域的技术人员设计出记录有用于执行以上描述中提到的实施方式的程序的计算机可读的记录介质,则该记录介质可以落入所附权利要求书及其等同物的范围内。
设备和方法可以不受上述实施方式的配置和方法的限制。上述实施方式可以通过完全或部分地相互选择性组合来配置,以使得能够进行各种修改。
尽管已经参考附图描述了优选实施方式,但本领域技术人员将领会,在不脱离在所附权利要求书中描述的本公开的精神或范围的情况下,可以在实施方式中进行各种修改和变形。这种修改将不被独立于实施方式的技术思路或观点来理解。
实施方式的设备的各种元件可以由硬件、软件、固件或其组合来实现。实施方式中的各种元件可以由单个芯片(例如,单个硬件电路)来实现。根据实施方式,根据实施方式的部件可以被分别实现为单独的芯片。根据实施方式,根据实施方式的设备的至少一个或更多个部件可以包括能够执行一个或更多个程序的一个或更多个处理器。所述一个或更多个程序可以执行根据实施方式的操作/方法中的任一个或更多个,或包括用于执行其的指令。用于执行根据实施方式的设备的方法/操作的可执行指令可以被存储在非暂态CRM或配置为由一个或更多个处理器执行的其它计算机程序产品中,或可以被存储在暂态CRM或配置为由一个或更多个处理器执行的其它计算机程序产品中。另外,根据实施方式的存储器可以被用作不仅覆盖易失性存储器(例如,RAM)而且覆盖非易失性存储器、闪存存储器和PROM的概念。另外,它还可以按诸如通过互联网发送这样的载波形式实现。另外,处理器可读记录介质可以分布于通过网络连接的计算机系统,使得处理器可读代码可以以分布式方式来存储和执行。在本文献中,术语“/”和“,”应该被解释为指示“和/或”。例如,表述“A/B”可以意指“A和/或B”。另外,“A、B”可以意指“A和/或B”。另外,“A/B/C”可以意指“A、B和/或C中的至少一个”。“A、B、C”可以意指“A、B和/或C中的至少一个”。
另外,在本文献中,术语“或”应该被解释为“和/或”。例如,表述“A或B”可以意指1)仅A、2)仅B和/或3)A和B二者。换句话说,本文献中的术语“或”应该被解释为“另外地或另选地”。
实施方式的各种元件可以通过硬件、软件、固件或其组合来实现。实施方式中的各种元件可以由诸如单个硬件电路的单个芯片来执行。根据实施方式,元件可以分别由单独的芯片选择性地执行。根据实施方式,实施方式的元件中的至少一个可以在包括用于执行根据实施方式的操作的指令的一个或更多个处理器中执行。
根据本文档中描述的实施方式的操作可以由包括根据实施方式的一个或更多个存储器和/或一个或更多个处理器的发送/接收装置来执行。一个或更多个存储器可以存储用于处理/控制根据实施方式的操作的程序,并且一个或更多个处理器可以控制本文档中描述的各种操作。一个或更多个处理器可以称为控制器等。根据实施方式的操作可以通过固件、软件和/或其组合来执行。固件、软件和/或其组合可以存储在处理器或存储器中。
可以使用诸如第一和第二这样的术语来描述实施方式的各种元素。然而,根据实施方式的各种部件不应该受以上术语限制。这些术语只是用于将一个元素与另一个区分开。例如,第一用户输入信号可以被称为第二用户输入信号。类似地,第二用户输入信号可以被称为第一用户输入信号。这些术语的使用应该被解释为不脱离各种实施方式的范围。第一用户输入信号和第二用户输入信号二者都是用户输入信号,但不意指相同的用户输入信号,除非上下文另有明确指示。
用于描述实施方式的术语仅是出于描述特定实施方式的目的使用的,并不旨在是限制实施方式。如对实施方式的描述和权利要求书中所使用的,单数形式“一”、“一个”和“该”包括复数指示物,除非上下文另有明确规定。表述“和/或”用于包括所有可能的术语组合。诸如“包括”或“具有”这样的术语旨在指示图、数字、步骤、元件和/或部件的存在,而应当被理解为不排除图、数字、步骤、元件和/或部件的附加存在的可能性。如本文中使用的,诸如“如果”和“当”这样的条件表述不限于可选情况,而旨在当满足特定条件时被解释为根据特定条件执行相关操作或解释相关定义。
本公开的模式
如上所述,已经以执行实施方式的最佳模式描述了相关内容。
工业实用性
如上所述,实施方式可以完全或部分应用于点云数据发送/接收装置和系统。本领域的技术人员将清楚,可以在实施方式的范围内对实施方式进行各种修改或变形。因此,实施方式旨在涵盖本公开的修改和变形,前提是它们落入所附权利要求书及其等同物的范围内。

Claims (15)

1.一种发送点云数据的方法,所述方法包括以下步骤:
对所述点云数据的几何数据进行编码;
基于所述几何数据对所述点云数据的属性数据进行编码;以及
发送编码后的几何数据、编码后的属性数据和信令数据。
2.根据权利要求1所述的方法,
其中,所述编码后的几何数据被分段成一个或更多个几何切片,并且
其中,所述一个或更多个几何切片中的一个几何切片包含基于直接编码的几何数据和基于算术熵编码的几何数据。
3.根据权利要求1所述的方法,
其中,所述编码后的几何数据被分段成一个或更多个几何切片,并且
其中,所述一个或更多个几何切片中的一个几何切片包含基于直接编码的几何数据,并且所述一个或更多个几何切片中的一个几何切片包含基于算术熵编码的几何数据。
4.根据权利要求1所述的方法,其中,所述编码后的属性数据被分段成一个或更多个属性切片。
5.根据权利要求1所述的方法,其中,所述信令数据包括关于所述一个或更多个切片的信息以及与直接编码相关的信息。
6.一种发送点云数据的装置,所述装置包括:
几何编码器,所述几何编码器被配置为对所述点云数据的几何数据进行编码;
属性编码器,所述属性编码器被配置为基于所述几何数据对所述点云数据的属性数据进行编码;
发送器,所述发送器被配置为发送编码后的几何数据、编码后的属性数据和信令数据。
7.根据权利要求6所述的装置,
其中,所述编码后的几何数据被分段成一个或更多个几何切片,并且
其中,所述一个或更多个几何切片中的一个几何切片包含基于直接编码的几何数据和基于算术熵编码的几何数据。
8.根据权利要求6所述的装置,
其中,所述编码后的几何数据被分段成一个或更多个几何切片,并且
其中,所述一个或更多个几何切片中的一个几何切片包含基于直接编码的几何数据,并且所述一个或更多个几何切片中的一个几何切片包含基于算术熵编码的几何数据。
9.根据权利要求6所述的装置,其中,所述编码后的属性数据被分段成一个或更多个属性切片。
10.根据权利要求6所述的装置,其中,所述信令数据包括关于所述一个或更多个切片的信息以及与直接编码相关的信息。
11.一种接收点云数据的方法,所述方法包括以下步骤:
接收几何数据、属性数据和信令数据;
基于所述信令数据对所述几何数据进行解码;
基于所述信令数据和解码后的几何数据对所述属性数据进行解码;以及
基于所述信令数据对解码后的点云数据进行渲染。
12.根据权利要求11所述的方法,
其中,所述几何数据被包含在一个或更多个几何切片中,并且
其中,所述一个或更多个几何切片中的一个几何切片包含基于直接编码的几何数据和基于算术熵编码的几何数据。
13.根据权利要求11所述的方法,
其中,所述几何数据被包含在一个或更多个几何切片中,并且
其中,所述一个或更多个几何切片中的一个几何切片包含基于直接编码的几何数据,并且所述一个或更多个几何切片中的一个几何切片包含基于算术熵编码的几何数据。
14.根据权利要求11所述的方法,其中,所述属性数据被包含在一个或更多个属性切片中。
15.根据权利要求11所述的方法,其中,所述信令数据包括关于所述一个或更多个切片的信息以及与直接编码相关的信息。
CN202180073263.3A 2020-10-30 2021-11-01 点云数据发送装置、点云数据发送方法、点云数据接收装置及点云数据接收方法 Pending CN116508318A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20200143690 2020-10-30
KR10-2020-0143690 2020-10-30
PCT/KR2021/015587 WO2022092971A1 (ko) 2020-10-30 2021-11-01 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Publications (1)

Publication Number Publication Date
CN116508318A true CN116508318A (zh) 2023-07-28

Family

ID=81382983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180073263.3A Pending CN116508318A (zh) 2020-10-30 2021-11-01 点云数据发送装置、点云数据发送方法、点云数据接收装置及点云数据接收方法

Country Status (4)

Country Link
US (1) US20230386088A1 (zh)
EP (1) EP4240014A1 (zh)
CN (1) CN116508318A (zh)
WO (1) WO2022092971A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11954891B2 (en) * 2020-06-30 2024-04-09 Electronics And Telecommunications Research Institute Method of compressing occupancy map of three-dimensional point cloud

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
KR20200007733A (ko) * 2018-07-13 2020-01-22 한국전자통신연구원 Pcc 데이터의 효과적인 압축을 위한 부호화/복호화 방법 및 장치
US20210304354A1 (en) * 2018-07-13 2021-09-30 Electronics And Telecommunications Research Institute Method and device for encoding/decoding scalable point cloud
US11049266B2 (en) * 2018-07-31 2021-06-29 Intel Corporation Point cloud viewpoint and scalable compression/decompression

Also Published As

Publication number Publication date
EP4240014A1 (en) 2023-09-06
US20230386088A1 (en) 2023-11-30
WO2022092971A1 (ko) 2022-05-05

Similar Documents

Publication Publication Date Title
CN113615204B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN114503571A (zh) 点云数据发送装置和方法、点云数据接收装置和方法
CN114616827A (zh) 点云数据发送装置及方法、点云数据接收装置及方法
CN114930397A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115398926B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115462083A (zh) 发送点云数据的设备、发送点云数据的方法、接收点云数据的设备和接收点云数据的方法
CN115428467B (zh) 点云数据发送设备和方法、点云数据接收设备和方法
US20220230360A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11765387B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN114009046A (zh) 用于处理点云数据的装置和方法
US11895341B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN115668919A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115210765A (zh) 点云数据发送装置、发送方法、处理装置和处理方法
EP4228267A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20220383552A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
EP4373096A1 (en) Point cloud data transmission device and method, and point cloud data reception device and method
US20220351421A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20230386088A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20220321914A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN117581541A (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN116965019A (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN116438799A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN114402624A (zh) 点云数据处理设备和方法
US20240137578A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
EP4373097A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method

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