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

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

Info

Publication number
CN116458162A
CN116458162A CN202180074577.5A CN202180074577A CN116458162A CN 116458162 A CN116458162 A CN 116458162A CN 202180074577 A CN202180074577 A CN 202180074577A CN 116458162 A CN116458162 A CN 116458162A
Authority
CN
China
Prior art keywords
slice
point cloud
data
attribute
context
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
CN202180074577.5A
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 CN116458162A publication Critical patent/CN116458162A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

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)
  • Image Generation (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的(c)例示了根据实施方式的被建立以发送属于图块的点云数据的树层和切片之间的匹配关系的示例。
图19是例示根据实施方式的点云数据的基于层的配置的示例的图。
图20是例示根据实施方式的几何比特流和属性比特流被包括在相应切片中的示例的图。
图21的(a)是例示根据实施方式的将几何比特流划分成多个切片的示例的图。
图21的(b)是例示根据实施方式的将属性比特流划分成多个切片的示例的图。
图22的(a)是例示根据实施方式的将几何比特流划分成多个切片的另一示例的图。
图22的(b)是例示根据实施方式的将属性比特流划分成多个切片的另一示例的图。
图23例示了根据实施方式的对几何比特流和属性比特流进行排序的示例性方法。
图24例示了根据实施方式的对几何比特流和属性比特流进行排序的另一示例性方法。
图25的(a)是例示根据实施方式的比特流结构中的切片之间的依赖性的示例的图。
图25的(b)是例示根据实施方式的当发生切片间依赖性时相应切片中生成的上下文的示例的图。
图25的(c)至图25的(e)是例示根据实施方式的当发生切片间依赖性时上下文缓冲控制的示例的图。
图26的(a)至图26的(d)是例示根据实施方式的邻居结构的示例的图。
图27是例示根据实施方式的用于发送/接收的点云数据的比特流结构的示例的图。
图28示出根据实施方式的序列参数集的语法结构的实施方式。
图29示出根据实施方式的序列参数集的语法结构的实施方式。
图30示出根据实施方式的几何参数集的示例性语法结构。
图31示出根据实施方式的几何参数集的另一示例性语法结构。
图32示出根据实施方式的属性参数集的示例性语法结构。
图33示出根据实施方式的属性参数集的示例性语法结构。
图34示出根据实施方式的geometry_slice_bitstream()的示例性语法结构。
图35示出根据实施方式的几何切片头的示例性语法结构。
图36示出根据实施方式的几何数据单元头的示例性语法结构。
图37示出根据实施方式的几何数据单元的示例性语法结构。
图38示出根据实施方式的attribute_slice_bitstream()的示例性语法结构。
图39示出根据实施方式的属性切片头的示例性语法结构。
图40示出根据实施方式的属性数据单元头的另一示例性语法结构。
图41示出根据实施方式的属性数据单元的另一示例性语法结构。
图42例示了根据实施方式的点云发送装置的另一示例。
图43是例示根据实施方式的点云接收装置的另一示例的框图。
具体实施方式
现在,将参照附图根据本文中公开的示例性实施方式详细给出描述。为了参照附图简要描述,可为相同或等同的部件提供相同的标号,其描述将不再重复。应该注意,以下示例仅用于体现本公开,并不限制本公开的范围。本发明所属技术领域的专家从本公开的详细描述和示例中可以容易地推断出的内容将被解释为在本公开的范围内。
本说明书中的详细描述应该在所有方面都被解释为例示性而非限制性的。本公开的范围应该由所附权利要求及其法律等同物来确定,并且落入所附权利要求的含义和等同范围内的所有改变旨在被涵盖在本文中。
现在,将详细参照本公开的优选实施方式,在附图中例示了这些实施方式的示例。下文将参照附图给出的详细描述旨在解释本公开的示例性实施方式,而非示出可以根据本公开实现的仅有的实施方式。以下详细描述包括具体细节,以提供对本公开的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践本公开。虽然在本说明书中使用的大多数术语已选自本领域中广泛使用的通用术语,但申请人已任意选择一些术语,并且在下面的描述中将根据需要详细解释它们的含义。因此,应当基于术语的本意而非它们的简单名称或含义来理解本公开。另外,以下的附图和详细描述不应该被解释为限于具体描述的实施方式,而应该被解释为包括附图和详细描述中描述的实施方式的等同物或替代物。
图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中。
图中虚线所指示的箭头表示由接收装置10004获取的反馈信息的传输路径。反馈信息是用于反映与消费点云内容的用户的交互性的信息,并包括关于用户的信息(例如,头部取向信息、视口信息等)。特别地,当点云内容是需要与用户交互的服务(例如,自驾驶服务等)的内容时,反馈信息可以被提供到内容发送方(例如,发送装置10000)和/或服务提供商。根据实施方式,反馈信息可以在接收装置10004和发送装置10000中使用,或可以不提供。
根据实施方式的头部取向信息可以表示关于用户头部的位置、取向、角度和运动的信息。根据实施方式的接收装置10004可以基于头部取向信息来计算视口信息。视口信息是与用户正在观看的点云视频的区域(也就是说,客户当前正在观看的区域)有关的信息。也就是说,视口信息是关于用户当前在点云视频中查看的区域的信息。换句话说,视口或视口区域可以表示用户在点云视频中正在观看的区域。视点是用户在点云视频中正在观看的点,并且可以表示视口区域的中心点。也就是说,视口是以视点为中心的区域,并且该区域的大小和形状可以由视场(FOV)确定。因此,接收装置10004可以基于装置所支持的竖直或水平FOV以及头部取向信息来提取视口信息。另外,接收装置10004可以基于头部取向信息和/或视口信息来执行凝视分析等,以确定用户消费点云视频的方式、用户在点云视频中凝视的区域以及凝视时间。根据实施方式,接收装置10004可以将包括凝视分析结果的反馈信息发送到发送装置10000。根据实施方式,诸如VR/XR/AR/MR显示器的装置可以基于用户头部的位置/取向和由装置支持的垂直或水平FOV来提取视口区域。根据实施方式,头部取向信息和视口信息可以称为反馈信息、信令信息或元数据。
可以在渲染和/或显示处理中获取根据实施方式的反馈信息。反馈信息可以由接收装置10004中包括的一个或更多个传感器来取得。根据实施方式,反馈信息可以由渲染器10007或单独的外部元件(或装置、部件等)来取得。图1中的虚线表示发送由渲染器10007取得的反馈信息的处理。反馈信息不仅可以被发送到发送侧,而且可以由接收侧消费。也就是说,点云内容提供系统可以基于反馈信息来处理(编码/解码/渲染)点云数据。例如,点云视频解码器10006和渲染器10007可以基于反馈信息(也就是说,头部取向信息和/或视口信息)来仅针对用户当前正观看的区域的点云视频优先进行解码和渲染。
接收装置10004可以将反馈信息发送到发送装置10000。发送装置10000(或点云视频编码器10002)可以基于反馈信息来执行编码操作。因此,点云内容提供系统可以基于反馈信息来高效地处理必要数据(例如,对应于用户头部位置的点云数据)而不是处理(编码/解码)整个点云数据,并向用户提供点云内容。
根据实施方式,发送装置10000可以被称为编码器、发送装置、发送器、发送系统等,并且接收装置10004可以被称为解码器、接收装置、接收器、接收系统等。
(通过获取/编码/发送/解码/渲染的一系列处理)在根据实施方式的图1的点云内容提供系统中处理的点云数据可以被称为点云内容数据或点云视频数据。根据实施方式,点云内容数据可以被用作涵盖与点云数据相关的元数据或信令信息的概念。
图1中例示的点云内容提供系统的元件可以由硬件、软件、处理器和/或其组合来实现。
图2是例示了根据实施方式的点云内容提供操作的框图。
图2的框图示出了图1中描述的点云内容提供系统的操作。如上所述,点云内容提供系统可以基于点云压缩编码(例如,G-PCC)来处理点云数据。
根据实施方式的点云内容提供系统(例如,点云发送装置10000或点云视频获取单元10001)可以获取点云视频(20000)。点云视频由属于用于表示3D空间的坐标系的点云表示。根据实施方式的点云视频可以包括Ply(多边形文件格式或斯坦福三角格式)文件。当点云视频具有一个或更多个帧时,所获取的点云视频可以包括一个或更多个Ply文件。Ply文件包含诸如点几何和/或属性这样的点云数据。几何包括点的位置。每个点的位置可以由表示三维坐标系(例如,由X、Y和Z轴构成的坐标系)的参数(例如,X、Y和Z轴的值)来表示。属性包括点的属性(例如,关于每个点的纹理、颜色(YCbCr或RGB)、反射率r、透明度等的信息)。点有一个或更多个属性。例如,点可以有作为颜色的属性或作为颜色和反射率的两个属性。根据实施方式,几何可以被称为位置、几何信息、几何数据等,并且属性可以被称为属性、属性信息、属性数据等。点云内容提供系统(例如,点云发送装置10000或点云视频获取单元10001)可以根据与点云视频的获取处理相关的信息(例如,深度信息、颜色信息等)取得点云数据。
根据实施方式的点云内容提供系统(例如,发送装置10000或点云视频编码器10002)可以对点云数据进行编码(20001)。点云内容提供系统可以基于点云压缩编码对点云数据进行编码。如上所述,点云数据可以包括点的几何和属性。因此,点云内容提供系统可以执行对几何进行编码的几何编码,并输出几何比特流。点云内容提供系统可以执行对属性进行编码的属性编码,并输出属性比特流。根据实施方式,点云内容提供系统可以基于几何编码来执行属性编码。根据实施方式的几何比特流和属性比特流可以被复用并作为一个比特流输出。根据实施方式的比特流还可以包含与几何编码和属性编码相关的信令信息。
根据实施方式的点云内容提供系统(例如,发送装置10000或发送器10003)可以发送编码后的点云数据(20002)。如图1中例示的,编码后的点云数据可以由几何比特流和属性比特流表示。另外,编码后的点云数据可以以比特流的形式连同与点云数据的编码相关的信令信息(例如,与几何编码和属性编码相关的信令信息)一起发送。点云内容提供系统可以封装携带编码后的点云数据的比特流,并以文件或段的形式发送该比特流。
根据实施方式的点云内容提供系统(例如,接收装置10004或接收器10005)可以接收包含编码后的点云数据的比特流。另外,点云内容提供系统(例如,接收装置10004或接收器10005)可以对比特流进行解复用。
点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以对在比特流中发送的编码后的点云数据(例如,几何比特流、属性比特流)进行解码。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以基于与比特流中包含的点云视频数据的编码相关的信令信息对点云视频数据进行解码。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以对几何比特流进行解码,以重构点的位置(几何)。点云内容提供系统可以通过基于重构的几何对属性比特流进行解码来重构点的属性。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以基于根据重构的几何的位置和解码后的属性来重构点云视频。
根据实施方式的点云内容提供系统(例如,接收装置10004或渲染器10007)可以渲染解码后的点云数据(20004)。点云内容提供系统(例如,接收装置10004或渲染器10007)可以使用各种渲染方法来渲染通过解码处理解码的几何和属性。点云内容中的点可以被渲染为具有一定厚度的顶点、以对应顶点位置为中心的具有特定最小尺寸的立方体或以对应顶点位置为中心的圆。通过显示器(例如,VR/AR显示器、常见显示器等)向用户提供渲染后的点云内容的全部或部分。
根据实施方式的点云内容提供系统(例如,接收装置10004)可以保护反馈信息(20005)。点云内容提供系统可以基于反馈信息来编码和/或解码点云数据。根据实施方式的点云内容提供系统的反馈信息和操作与参考图1描述的反馈信息和操作相同,因此省略对其的详细描述。
图3例示了根据实施方式的捕获点云视频的示例性处理。
图3例示了参考图1至图2描述的点云内容提供系统的示例性点云视频捕获处理。
点云内容包括表示位于各种3D空间(例如,表示真实环境的3D空间、表示虚拟环境的3D空间等)中的对象和/或环境的点云视频(图像和/或视频)。因此,根据实施方式的点云内容提供系统可以使用一个或更多个相机(例如,能够对深度信息进行保护的红外相机、能够提取与深度信息对应的颜色信息的RGB相机等)、投影仪(例如,用于对深度信息进行保护的红外图案投影仪)、LiDRA等来捕获点云视频。根据实施方式的点云内容提供系统可以从深度信息中提取由3D空间中的点构成的几何的形状,并从颜色信息中提取每个点的属性以对点云数据进行保护。可以基于面向内技术和面向外技术中的至少一种来捕获根据实施方式的图像和/或视频。
图3的左部例示了面向内技术。面向内技术是指用设置在中心对象周围的一个或更多个相机(或相机传感器)捕获中心对象的图像的技术。可以使用面向内技术生成向用户提供关键对象的360度图像的点云内容(例如,向用户提供对象(例如,诸如角色、玩家、对象或演员这样的关键对象)的360度图像的VR/AR内容)。
图3的右部例示了面向外技术。面向外技术是指用设置在中心对象周围的一个或更多个相机(或相机传感器)捕获中心对象的环境而非中心对象的图像的技术。可以使用面向外技术生成用于提供从用户的角度出现的周围环境的点云内容(例如,表示可以提供给自驾驶车辆的用户的外部环境的内容)。
如图中所示,可以基于一个或更多个相机的捕获操作来生成点云内容。在这种情况下,坐标系在每个相机当中是不同的,因此,点云内容提供系统可以在捕获操作之前校准一个或更多个相机以设置全局坐标系。另外,点云内容提供系统可以通过将任意图像和/或视频与通过上述捕获技术捕获的图像和/或视频进行合成来生成点云内容。点云内容提供系统在其生成表示虚拟空间的点云内容时不可以执行图3中描述的捕获操作。根据实施方式的点云内容提供系统可以对所捕获的图像和/或视频执行后处理。换句话说,点云内容提供系统可以去除不需要的区域(例如,背景),识别所捕获的图像和/或视频连接到的空间,并且当存在空间孔时执行填充空间孔的操作。
点云内容提供系统可以通过对从每个相机保护的点云视频的点执行坐标变换来生成一条点云内容。点云内容提供系统可以基于每个相机位置的坐标对点执行坐标变换。因此,点云内容提供系统可以生成表示一个宽范围的内容,或可以生成具有高密度点的点云内容。
图4例示了根据实施方式的示例性点云视频编码器。
图4示出了图1的点云视频编码器10002的示例。点云视频编码器重构并编码点云数据(例如,点的位置和/或属性),以根据网络条件或应用来调整点云内容的质量(例如,无损、有损或接近无损)。当点云内容的总大小大时(例如,对于30fps,给出60Gbps的点云内容),点云内容提供系统可能无法实时地流传输该内容。因此,点云内容提供系统可以基于最大目标比特率重构点云内容,以根据网络环境等提供该点云内容。
如参考图1至图2描述的,点云视频编码器可以执行几何编码和属性编码。几何编码在属性编码之前执行。
根据实施方式的点云视频编码器包括坐标变换单元40000、量化单元40001、八叉树分析单元40002、表面近似分析单元40003、算术编码器40004、几何重构单元40005、颜色变换单元40006、属性变换单元40007、RAHT单元40008、LOD生成器40009、提升变换单元40010、系数量化单元40011和/或算术编码器40012。
坐标变换单元40000、量化单元40001、八叉树分析单元40002、表面近似分析单元40003、算术编码器40004和几何重构单元40005可以执行几何编码。根据实施方式的几何编码可以包括八叉树几何编码、直接编码、trisoup(trisoup)几何编码和熵编码。直接编码和trisoup几何编码被选择性地或组合地应用。几何编码不限于上述示例。
如图中所示,根据实施方式的坐标变换单元40000接收位置并将其变换为坐标。例如,位置可以被变换为三维空间(例如,由XYZ坐标系表示的三维空间)中的位置信息。根据实施方式的三维空间中的位置信息可以被称为几何信息。
根据实施方式的量化单元40001对几何信息进行量化。例如,量化单元40001可以基于所有点的最小位置值(例如,X、Y和Z轴中的每一个上的最小值)来量化点。量化单元40001执行以下量化操作:将每个点的位置值与最小位置值之间的差乘以预设的量化缩放值,然后通过对通过乘法获得的值进行四舍五入来找到最接近的整数值。因此,一个或更多个点可以具有相同的量化位置(或位置值)。根据实施方式的量化单元40001基于量化位置来执行体素化,以重构量化点。体素化意味着在3D空间中表示位置信息的最小单位。根据实施方式的点云内容(或3D点云视频)的点可以被包括在一个或更多个体素中。作为体积与像素的复合词的术语体素是指当基于表示3D空间的轴(例如,X轴、Y轴和Z轴)将3D空间划分为单元(单元=1.0)时生成的3D立方空间。量化单元40001可以将3D空间中的点的组与体素匹配。根据实施方式,一个体素可以仅包括一个点。根据实施方式,一个体素可以包括一个或更多个点。为了将一个体素表示为一个点,可以基于体素中包括的一个或更多个点的位置来设置体素的中心点的位置。在这种情况下,可以组合一个体素中包括的所有位置的属性并将这些属性分配给该体素。
根据实施方式的八叉树分析单元40002执行八叉树几何编码(或八叉树编码)从而以八叉树结构呈现体素。八叉树结构表示基于八叉树结构与体素匹配的点。
根据实施方式的表面近似分析单元40003可以对八叉树进行分析和近似。根据实施方式的八叉树分析和近似是分析包含多个点的区域以高效提供八叉树和体素化的处理。
根据实施方式的算术编码器40004对八叉树和/或近似的八叉树执行熵编码。例如,编码方案包括算术编码。作为编码的结果,生成几何比特流。
颜色变换单元40006、属性变换单元40007、RAHT单元40008、LOD生成器40009、提升变换单元40010、系数量化单元40011和/或算术编码器40012执行属性编码。如上所述,一个点可以具有一个或更多个属性。根据实施方式的属性编码同样应用于一个点所具有的属性。然而,当属性(例如,颜色)包括一个或更多个元素时,属性编码独立地应用于每个元素。根据实施方式的属性编码包括颜色变换编码、属性变换编码、区域自适应分层变换(RAHT)编码、基于内插的分层最近邻预测(预测变换)编码和具有更新/提升步骤(提升变换)的基于内插的分层最近邻预测编码。根据点云内容,可以选择性使用上述的RAHT编码、预测变换编码和提升变换编码,或者可以使用一个或更多个编码方案的组合。根据实施方式的属性编码不限于上述示例。
根据实施方式的颜色变换单元40006执行变换属性中包括的颜色值(或纹理)的颜色变换编码。例如,颜色变换单元40006可以变换颜色信息的格式(例如,从RGB到YCbCr)。可以根据属性中包括的颜色值可选地应用根据实施方式的颜色变换单元40006的操作。
根据实施方式的几何重构单元40005重构(解压缩)八叉树和/或近似的八叉树。几何重构单元40005基于分析点的分布的结果来重构八叉树/体素。重构的八叉树/体素可以被称为重构的几何(恢复的几何)。
根据实施方式的属性变换单元40007执行属性变换,以基于未被执行几何编码的位置和/或重构的几何来变换属性。如上所述,由于属性取决于几何,因此属性变换单元40007可以基于重构的几何信息来变换属性。例如,基于体素中包括的点的位置值,属性变换单元40007可以变换该位置处的点的属性。如上所述,当基于体素中包括的一个或更多个点的位置来设置体素中心的位置时,属性变换单元40007变换所述一个或更多个点的属性。当执行trisoup几何编码时,属性变换单元40007可以基于trisoup几何编码来变换属性。
属性变换单元40007可以通过计算从每个体素的中心的位置(或位置值)起特定位置/半径内的邻近点的属性或属性值(例如,每个点的颜色或反射率)的平均值来执行属性变换。属性变换单元40007可以在计算平均值时根据该中心到每个点的距离来应用权重。因此,每个体素都有位置和计算出的属性(或属性值)。
属性变换单元40007可以基于K-D树或莫顿码(Morton code)搜索存在于距每个体素的中心的位置特定位置/半径内的邻近点。K-D树是二叉搜索树,并支持能够基于位置来管理点数据结构以便可以快速执行最近邻搜索(NNS)的。通过将表示所有点的3D位置的坐标(例如,(x,y,z))呈现为位值并混合所述位来生成莫顿码。例如,当表示点的位置的坐标为(5,9,1)时,坐标的位值为(0101,1001,0001)。以z、y和x的顺序根据位索引混合位值产生010001000111。该值被表示为十进制数1095。也就是说,具有坐标(5,9,1)的点的莫顿码值为1095。属性变换单元40007可以基于莫顿码值对点进行排序,并通过深度优先遍历处理执行NNS。在属性变换操作之后,当在用于属性编码的另一变换处理中需要NNS时,使用K-D树或莫顿码。
如图中所示,变换后的属性被输入到RAHT单元40008和/或LOD生成器40009。
根据实施方式的RAHT单元40008基于重构的几何信息执行用于预测属性信息的RAHT编码。例如,RAHT单元40008可以基于与八叉树中较低层次的节点关联的属性信息来预测八叉树中较高层次的节点的属性信息。
根据实施方式的LOD生成器40009生成细节层次(LOD)。根据实施方式的LOD是点云内容的细节度。随着LOD值的减小,表明点云内容的细节度下降。随着LOD值的增大,表明点云内容的细节增强。可以按LOD对点进行分类。
根据实施方式的提升变换单元40010执行基于权重来变换点云的属性的提升变换编码。如上所述,可以可选地应用提升变换编码。
根据实施方式的系数量化单元40011基于系数对属性编码后的属性进行量化。
根据实施方式的算术编码器40012基于算术编码对量化后的属性进行编码。
尽管在该图中未示出,但图4的点云视频编码器的元件可以由包括一个或更多个处理器或集成电路的硬件、软件、固件或其组合来实现,该处理器或集成电路被配置为与点云内容提供设备中包括的一个或更多个存储器通信。所述一个或更多个处理器可以执行上述图4的点云视频编码器的元件的操作和/或功能中的至少一者。另外,一个或更多个处理器可以操作或执行软件程序和/或指令的集合,以执行图4的点云视频编码器的元件的操作和/或功能。根据实施方式的一个或更多个存储器可以包括高速随机存取存储器,或包括非易失性存储器(例如,一个或更多个磁盘存储装置、闪存装置或其它非易失性固态存储装置)。
图5示出了根据实施方式的体素的示例。
图5示出了位于由三个轴即X轴、Y轴和Z轴构成的坐标系表示的3D空间中的体素。如参考图4描述的,点云视频编码器(例如,量化单元40001)可以执行体素化。体素是指当基于表示3D空间的轴(例如,X轴、Y轴和Z轴)将3D空间划分为单元(单元=1.0)时生成的3D立方空间。图5示出了通过八叉树结构生成的体素的示例,在该八叉树结构中,由两个极点(0,0,0)和(2d,2d,2d)定义的立方轴对齐的边界框被递归地细分。一个体素包括至少一个点。可以根据与体素组的位置关系来估计体素的空间坐标。如上所述,体素具有像2D图像/视频的像素一样的属性(诸如,颜色或反射率)。体素的细节与参考图4描述的细节相同,因此省略对其的描述。
图6示出了根据实施方式的八叉树和占用代码的示例。
如参考图1至图4描述的,点云内容提供系统(点云视频编码器10002)或点云视频编码器的八叉树分析单元40002基于八叉树结构来执行八叉树几何编码(或八叉树编码),以高效地管理体素的区域和/或位置。
图6的上部示出了八叉树结构。根据实施方式的点云内容的3D空间由坐标系的轴(例如,X轴、Y轴和Z轴)表示。八叉树结构是通过递归细分由两个极点(0,0,0)和(2d,2d,2d)定义的立方轴对齐的边界框来创建的。这里,2d可以被设置为构成围绕点云内容(或点云视频)的所有点的最小边界框的值。这里,d表示八叉树的深度。在式1中确定d的值。在式1中,(xint n,yint n,zint n)表示量化点的位置(或位置值)。
[式1]
如图6的上部的中间所示,整个3D空间可以根据分区被划分为八个空间。每个划分空间由具有六个面的立方体表示。如图6的右上侧所示,基于坐标系的轴(例如,X轴、Y轴和Z轴)再次划分八个空间中的每一个。因此,每个空间被划分成八个更小的空间。所划分的更小空间也由具有六个面的立方体表示。应用该划分方案,直到八叉树的叶节点成为体素为止。
图6的下部示出了八叉树占用代码。生成八叉树的占用代码,以指示通过划分一个空间而产生的八个划分空间中的每一个是否包含至少一个点。因此,单个占用代码由八个子节点表示。每个子节点表示所划分空间的占用,并且子节点具有1位的值。因此,占用代码被表示为8位代码。也就是说,当在与子节点对应的空间中包含至少一个点时,该节点被赋予值1。当在对应于子节点的空间中不包含点(空间为空)时,该节点被赋予值0。由于图6中示出的占用代码为00100001,因此它指示与八个子节点当中的第三个子节点和第八个子节点对应的空间各自包含至少一个点。如图中所示,第三个子节点和第八个子节点中的每一个具有8个子节点,并且子节点用8位占用代码表示。该图示出第三个子节点的占用代码为10000111,并且第八个子节点的占用代码为01001111。根据实施方式的点云视频编码器(例如,算术编码器40004)可以对占用代码执行熵编码。为了提高压缩效率,点云视频编码器可以对占用代码执行帧内/帧间编码。根据实施方式的接收装置(例如,接收装置10004或点云视频解码器10006)基于占用代码来重构八叉树。
根据实施方式的点云视频编码器(例如,八叉树分析单元40002)可以执行体素化和八叉树编码,以存储点的位置。然而,点并不总是均匀地分布在3D空间中,因此会有其中存在较少点的特定区域。因此,对整个3D空间执行体素化是低效的。例如,当特定区域包含的点较少时,不需要在特定区域中执行体素化。
因此,对于上述特定区域(或八叉树的叶节点以外的节点),根据实施方式的点云视频编码器可以跳过体素化并执行直接编码,以对特定区域中包括的点的位置直接进行编码。根据实施方式的直接编码点的坐标被称为直接编码模式(DCM)。根据实施方式的点云视频编码器还可以基于表面模型来执行trisoup几何编码,以基于体素来重构特定区域(或节点)中的点的位置。trisoup几何编码是将对象表示为一系列三角形网格的几何编码。因此,点云视频解码器可以从网格表面生成点云。可以选择性执行根据实施方式的trisoup几何编码和直接编码。另外,可以结合八叉树几何编码(或八叉树编码)来执行根据实施方式的trisoup几何编码和直接编码。
为了执行直接编码,应该启用使用直接模式以应用直接编码的选项。将被应用直接编码的节点不是叶节点,并且在特定节点内应该存在少于阈值的点。另外,将应用直接编码的点的总数不应超过预设阈值。当满足以上条件时,根据实施方式的点云视频编码器(或算术编码器40004)可以对点的位置(或位置值)执行熵编码。
根据实施方式的点云视频编码器(例如,表面近似分析单元40003)可以确定八叉树的特定层次(小于八叉树的深度d的层次),并且可以从该层次开始使用表面模型来执行trisoup几何编码,以基于体素来重构节点的区域中的点的位置(trisoup模式)。根据实施方式的点云视频编码器可以指定将应用trisoup几何编码的层次。例如,当特定层次等于八叉树的深度时,点云视频编码器不在trisoup模式下操作。换句话说,根据实施方式的点云视频编码器可以仅在所指定的层次小于八叉树的深度值时才在trisoup模式下操作。根据实施方式的所指定层次处的节点的3D立方区域被称为块。一个块可以包括一个或更多个体素。块或体素可以对应于砖。几何被表示为每个块内的表面。根据实施方式的表面可以与块的每个边缘最多相交一次。
一个块有12个边缘,因此在一个块中至少存在12个交点。每个交点被称为顶点(或顶端点)。当在共享边缘的所有块当中至少存在一个与该边缘相邻的被占用体素时,检测到沿该边缘存在的顶点。根据实施方式的被占用体素是指包含点的体素。沿着边缘检测到的顶点的位置是沿着共享该边缘的所有块当中的与该边缘相邻的所有体素的边缘的平均位置。
一旦检测到顶点,根据实施方式的点云视频编码器就可以对边缘的起始点(x,y,z)、边缘的方向矢量(Δx,Δy,Δz)和顶点位置值(边缘内的相对位置值)执行熵编码。当应用trisoup几何编码时,根据实施方式的点云视频编码器(例如,几何重构单元40005)可以通过执行三角形重构、上采样和体素化处理来生成恢复后的几何(重构的几何)。
处于块的边缘处的顶点确定穿过块的表面。根据实施方式的表面是非平面多边形。在三角形重构处理中,基于边缘的起始点、边缘的方向矢量和顶点的位置值来重构由三角形表示的表面。根据式2,通过以下操作执行三角形重构处理:①计算每个顶点的质心值,②从每个顶点值减去中心值,以及③估计通过减法而获得的值的平方和。
[式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描述的,在执行属性编码之前,重构(解压缩)编码后的几何。当应用直接编码时,几何重构操作可以包括改变直接编码后的点的放置(例如,将直接编码后的点放置在点云数据的前面)。当应用trisoup几何编码时,通过三角形重构、上采样和体素化来执行几何重构处理。由于属性取决于几何,因此基于重构的几何执行属性编码。
点云视频编码器(例如,LOD生成器40009)可以通过LOD对点进行分类(重新组织或分组)。附图示出了与LOD对应的点云内容。图中的最左侧图片表示原始点云内容。图左侧起的第二个图片表示最低LOD中的点的分布,并且图中的最右侧图片表示最高LOD中的点的分布。也就是说,最低LOD中的点稀疏地分布,并且最高LOD中的点密集地分布。也就是说,随着LOD在由图底部处指示的箭头所指的方向上上升,点之间的空间(或距离)变窄。
图9例示了根据实施方式的每个LOD的点配置的示例。
如参考图1至图8描述的,点云内容提供系统或点云视频编码器(例如,图1的点云视频编码器10002、图4的点云视频编码器或LOD生成器40009)可以生成LOD。通过根据设置的LOD距离值(或一组欧几里得距离)将点重新组织为一组细化层次来生成LOD。LOD生成处理不仅由点云视频编码器执行,而且由点云视频解码器执行。
图9的上部示出了分布在3D空间中的点云内容的点的示例(P0至P9)。在图9中,原始顺序表示LOD生成之前点P0至P9的顺序。在图9中,基于LOD的顺序表示根据LOD生成的点的顺序。通过LOD重新组织点。另外,高LOD包含属于较低LOD的点。如图9中所示,LOD0包含P0、P5、P4和P2。LOD1包含LOD0的点、P1、P6和P3。LOD2包含LOD0的点、LOD1的点、P9、P8和P7。
如参考图4描述的,根据实施方式的点云视频编码器可以选择性或组合地执行基于LOD的预测变换编码、基于LOD的提升变换编码和RAHT变换编码。
根据实施方式的点云视频编码器可以为点生成预测器,以执行基于LOD的预测变换编码来设置每个点的预测属性(或预测属性值)。也就是说,可以针对N个点生成N个预测器。根据实施方式的预测器可以基于每个点的LOD值、与存在于针对每个LOD的设定距离内的邻近点有关的加索引信息以及到邻近点的距离来计算权重(=1/距离)。
根据实施方式的预测属性(或属性值)被设置为通过将每个点的预测器中设置的邻居点的属性(或属性值)(例如,颜色、反射率等)乘以基于到每个邻居点的距离计算出的权重(或权重值)而获得的值的平均值。根据实施方式的点云视频编码器(例如,系数量化单元40011)可以对通过从每个点的属性(即,原始属性值)中减去每个点的预测属性(或属性值)而获得的每个点的残差(可以被称为残差属性、残差属性值、属性预测残差值或预测错误属性值等)进行量化和逆量化。如表2中所示来配置针对发送装置中的残差属性值执行的量化处理。如表3中所示来配置针对接收装置中的残差属性值执行的逆量化处理。
[表2]
[表3]
当每个点的预测器具有邻居点时,根据实施方式的点云视频编码器(例如,算术编码器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可以执行几何解码。根据实施方式的几何解码可以包括直接解码和trisoup几何解码。直接解码和trisoup几何解码被选择性应用。几何解码不限于上述示例,并作为参考图1至图9描述的几何编码的逆处理来执行。
根据实施方式的算术解码器11000基于算术编码对接收到的几何比特流进行解码。算术解码器11000的操作对应于算术编码器40004的逆处理。
根据实施方式的八叉树合成器11001可以通过从解码后的几何比特流(或作为解码结果而被保护的关于几何的信息)获取占用代码来生成八叉树。如参考图1至图9详细描述地配置占用代码。
当应用trisoup几何编码时,根据实施方式的表面近似合成器11002可以基于解码后的几何和/或所生成的八叉树来合成表面。
根据实施方式的几何重构单元11003可以基于表面和/或解码后的几何来重新生成几何。如参考图1至图9描述的,直接编码和trisoup几何编码被选择性应用。因此,几何重构单元11003直接导入并添加关于应用了直接编码的点的位置信息。当应用trisoup几何编码时,几何重构单元11003可以通过执行几何重构单元40005的重构操作(例如,三角形重构、上采样和体素化)来重构几何。细节与参考图6描述的细节相同,因此省略对其的描述。重构的几何可以包括不包含属性的点云图片或帧。
根据实施方式的坐标逆变换器11004可以通过基于重构的几何变换坐标来获取点的位置。
算术解码器11005、逆量化单元11006、RAHT变换器11007、LOD生成器11008、逆提升器11009和/或逆颜色变换单元11010可以执行参考图10描述的属性解码。根据实施方式的属性解码包括区域自适应分层变换(RAHT)解码、基于内插的分层最近邻预测(预测变换)解码和具有更新/提升步骤(提升变换)的基于内插的分层最近邻预测解码。可以选择性使用上述三种解码方案,或可以使用一种或更多种解码方案的组合。根据实施方式的属性解码不限于上述示例。
根据实施方式的算术解码器11005通过算术编码对属性比特流进行解码。
根据实施方式的逆量化单元11006对作为解码结果而被保护的关于解码后的属性比特流或属性的信息进行逆量化,并输出逆量化后的属性(或属性值)。可以基于点云视频编码器的属性编码来选择性应用逆量化。
根据实施方式,RAHT变换器11007、LOD生成器11008和/或逆提升器11009可以处理重构的几何和逆量化后的属性。如上所述,RAHT变换器11007、LOD生成器11008和/或逆提升器11009可以选择性执行与点云视频编码器的编码对应的解码操作。
根据实施方式的逆颜色变换单元11010执行逆变换编码,以对解码后的属性中包括的颜色值(或纹理)进行逆变换。可以基于点云视频编码器的颜色变换单元40006的操作选择性执行逆颜色变换单元11010的操作。
尽管在该图中未示出,但图11的点云视频解码器的元件可以由包括一个或更多个处理器或集成电路的硬件、软件、固件或其组合来实现,该处理器或集成电路被配置为与点云内容提供设备中包括的一个或更多个存储器通信。所述一个或更多个处理器可以执行上述图11的点云视频解码器的元件的操作和/或功能中的至少一个或更多个。另外,一个或更多个处理器可以操作或执行软件程序和/或指令的集合,以执行图11的点云视频解码器的元件的操作和/或功能。
图12例示了根据实施方式的发送装置。
图12中示出的发送装置是图1的发送装置10000(或图4的点云视频编码器)的示例。图12中例示的发送装置可以执行与参考图1至图9描述的点云视频编码器的操作和方法相同或类似的操作和方法中的一个或更多个。根据实施方式的发送装置可以包括数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码生成器12003、表面模型处理器12004、帧内/帧间编码处理器12005、算术编码器12006、元数据处理器12007、颜色变换处理器12008、属性变换处理器12009、LOD/提升/RAHT变换处理器12010、算术编码器12011和/或发送处理器12012。
根据实施方式的数据输入单元12000接收或获取点云数据。数据输入单元12000可以执行与点云视频获取单元10001的操作和/或获取方法(或参考图2描述的获取处理20000)相同或类似的操作和/或获取方法。
数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码生成器12003、表面模型处理器12004、帧内/帧间编码处理器12005和算术编码器12006执行几何编码。根据实施方式的几何编码与参考图1至图9描述的几何编码相同或类似,因此省略对其的详细描述。
根据实施方式的量化处理器12001对几何(例如,点的位置值)进行量化。量化处理器12001的操作和/或量化与参考图4描述的量化单元40001的操作和/或量化相同或类似。细节与参考图1至图9描述的细节相同。
根据实施方式的体素化处理器12002对点的量化后位置值进行体素化。体素化处理器12002可以执行与参考图4描述的量化单元40001的操作和/或体素化处理相同或类似的操作和/或处理。细节与参考图1至图9描述的细节相同。
根据实施方式的八叉树占用代码生成器12003基于八叉树结构对点的体素化位置执行八叉树编码。八叉树占用代码生成器12003可以生成占用代码。八叉树占用代码生成器12003可以执行与参考图4和图6描述的点云视频编码器(或八叉树分析单元40002)的操作和/或方法相同或类似的操作和/或方法。细节与参考图1至图9描述的细节相同。
根据实施方式的表面模型处理器12004可以基于表面模型来执行trisoup几何编码,以基于体素来重构特定区域(或节点)中的点的位置。表面模型处理器12004可以执行与参考图4描述的点云视频编码器(例如,表面近似分析单元40003)的操作和/或方法相同或类似的操作和/或方法。细节与参考图1至图9描述的细节相同。
根据实施方式的帧内/帧间编码处理器12005可以对点云数据执行帧内/帧间编码。帧内/帧间编码处理器12005可以执行与参考图7描述的帧内/帧间编码相同或类似的编码。细节与参考图7描述的细节相同。根据实施方式,帧内/帧间编码处理器12005可以被包括在算术编码器12006中。
根据实施方式的算术编码器12006对点云数据的八叉树和/或近似的八叉树执行熵编码。例如,编码方案包括算术编码。算术编码器12006执行与算术编码器40004的操作和/或方法相同或类似的操作和/或方法。
根据实施方式的元数据处理器12007处理关于点云数据的元数据(例如,设定值),并将其提供到诸如几何编码和/或属性编码这样的必要处理过程。另外,根据实施方式的元数据处理器12007可以生成和/或处理与几何编码和/或属性编码相关的信令信息。可以与几何编码和/或属性编码分开地对根据实施方式的信令信息进行编码。可以对根据实施方式的信令信息进行交织。
颜色变换处理器12008、属性变换处理器12009、LOD/提升/RAHT变换处理器12010和算术编码器12011执行属性编码。根据实施方式的属性编码与参考图1至图9描述的属性编码相同或类似,因此省略对其的详细描述。
根据实施方式的颜色变换处理器12008执行颜色变换编码,以变换属性中包括的颜色值。颜色变换处理器12008可以基于重构的几何来执行颜色变换编码。重构的几何与参考图1至图9描述的相同。另外,它执行与参考图4描述的颜色变换单元40006的操作和/或方法相同或类似的操作和/或方法。省略对其的详细描述。
根据实施方式的属性变换处理器12009执行属性变换,以基于重构的几何和/或未被执行几何编码的位置来变换属性。属性变换处理器12009执行与参考图4描述的属性变换单元40007的操作和/或方法相同或类似的操作和/或方法。省略对其的详细描述。根据实施方式的LOD/提升/RAHT变换处理器12010可以通过RAHT编码、预测变换编码和提升变换编码中的任一种或其组合对变换后的属性进行编码。LOD/提升/RAHT变换处理器12010执行与参考图4描述的RAHT单元40008、LOD生成器40009和提升变换单元40010的操作相同或类似的操作中的至少一者。另外,预测变换编码、提升变换编码和RAHT变换编码与参考图1至图9描述的那些相同,因此省略对其的详细描述。
根据实施方式的算术编码器12011可以基于算术编码对编码后的属性进行编码。算术编码器12011执行与算术编码器40012的操作和/或方法相同或类似的操作和/或方法。
根据实施方式的发送处理器12012可以发送包含编码后的几何和/或编码后的属性和/或元数据(或称为元数据信息)的每个比特流,或发送配置有编码后的几何和/或编码后的属性和/或元数据的一个比特流。当根据实施方式的编码后的几何和/或编码后的属性和/或元数据被配置成一个比特流时,该比特流可以包括一个或更多个子比特流。根据实施方式的比特流可以包含信令信息,该信令信息包括用于序列级信令的序列参数集(SPS)、用于几何信息编码的信令的几何参数集(GPS)、用于属性信息编码的信令的属性参数集(APS)以及用于拼块级信令的拼块参数集(TPS或拼块清单)和切片数据。切片数据可以包括关于一个或更多个切片的信息。根据实施方式的一个切片可以包括一个几何比特流Geom00以及一个或更多个属性比特流Attr00和Attr10。根据实施方式的TPS(或拼块清单)可以包括关于一个或更多个拼块的每个拼块的信息(例如,关于边界框的高度/大小信息和坐标信息)。几何比特流可以包含头部和有效载荷。根据实施方式的几何比特流的头部可以包含GPS中包括的参数集标识符(geom_parameter_set_id)、拼块标识符(geom_tile_id)和切片标识符(geom_slice_id)以及关于有效载荷中包含的数据的信息。如上所述,根据实施方式的元数据处理器12007可以生成和/或处理信令信息,并将其发送到发送处理器12012。根据实施方式,用于执行几何编码的元件和用于执行属性编码的元件可以彼此共享数据/信息,如虚线所指示的。根据实施方式的发送处理器12012可以执行与发送器10003的操作和/或发送方法相同或类似的操作和/或发送方法。细节与参考图1和图2描述的细节相同,因此省略对其的描述。
图13例示了根据实施方式的接收装置。
图13中例示的接收装置是图1的接收装置10004(或图10和图11的点云视频解码器)的示例。图13中例示的接收装置可以执行与参考图1至图11描述的点云视频解码器的操作和方法相同或类似的操作和方法中的一个或更多个。
根据实施方式的接收装置包括接收器13000、接收处理器13001、算术解码器13002、基于占用代码的八叉树重构处理器13003、表面模型处理器(三角形重构、上采样、体素化)13004、逆量化处理器13005、元数据解析器13006、算术解码器13007、逆量化处理器13008、LOD/提升/RAHT逆变换处理器13009、颜色逆变换处理器13010和/或渲染器13011。根据实施方式的用于解码的每个元件可以执行根据实施方式的用于编码的对应元件的操作的逆处理。
根据实施方式的接收器13000接收点云数据。接收器13000可以执行与图1的接收器10005的操作和/或接收方法相同或类似的操作和/或接收方法。省略对其的详细描述。
根据实施方式的接收处理器13001可以从接收到的数据获取几何比特流和/或属性比特流。接收处理器13001可以被包括在接收器13000中。
算术解码器13002、基于占用代码的八叉树重构处理器13003、表面模型处理器13004和逆量化处理器13005可以执行几何解码。根据实施方式的几何解码与参考图1至图10描述的几何解码相同或类似,因此省略对其的详细描述。
根据实施方式的算术解码器13002可以基于算术编码对几何比特流进行解码。算术解码器13002执行与算术解码器11000的操作和/或编码相同或类似的操作和/或编码。
根据实施方式的基于占用代码的八叉树重构处理器13003可以通过从解码后的几何比特流(或作为解码结果而被取得的关于几何的信息)获取占用代码来重构八叉树。基于占用代码的八叉树重构处理器13003执行与八叉树合成器11001的操作和/或八叉树生成方法相同或相似的操作和/或方法。当应用trisoup几何编码时,根据实施方式的表面模型处理器13004可以基于表面模型方法来执行trisoup几何解码和相关的几何重构(例如,三角形重构、上采样、体素化)。表面模型处理器13004执行与表面近似合成器11002和/或几何重构单元11003的操作相同或类似的操作。
根据实施方式的逆量化处理器13005可以对解码后的几何进行逆量化。
根据实施方式的元数据解析器13006可以解析接收到的点云数据中包含的元数据,例如,设定值。元数据解析器13006可以传递元数据以进行几何解码和/或属性解码。元数据与参考图12描述的元数据相同,因此省略对其的详细描述。
算术解码器13007、逆量化处理器13008、预测/提升/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的装置、图42的发送方法等的术语。
根据实施方式的点云数据接收方法/装置被解释为指代图1的接收装置10004、接收器10005、图1的点云视频解码器10006、图2的传输20002/解码20003/渲染20004、图10的解码器、图11的点云视频解码器、图13的接收装置、图14的装置、图43的接收装置等的术语。
根据实施方式的用于发送或接收点云数据的方法/装置可以被简称为方法/装置。
根据实施方式,构成点云数据的几何数据、几何信息和位置信息将被解释为具有相同的含义。构成点云数据的属性数据、属性信息和属性信息将被解释为具有相同的含义。
根据实施方式的方法/装置可以考虑可缩放传输来处理点云数据。
根据实施方式的方法/装置在发送和接收点云数据时可能由于接收器性能、传输速度等而需要部分数据的选择性解码。在这方面,描述高效地支持选择性解码的方法。
为此,在本公开中,几何数据和属性数据可被划分成诸如几何八叉树和LoD(细节层次)的单元,以选择在比特流级别所需的信息或去除不必要的信息。
另外,在本公开中,几何数据和属性数据可以在多个切片中发送,使得接收装置可以执行选择性解码或并行解码。
根据实施方式,几何比特流和/或属性比特流和/或几何比特流和属性比特流被复用的点云比特流结构可以被细分,并且细分的比特流可以逐切片来发送。由此,接收装置可以执行选择性解码或并行解码。
在实施方式中,将讨论构造由点云组成的数据结构的技术。具体地,提出了减小在配置切片时由于分段而可能发生的性能劣化并且减少接收器上的负担的方法。参考图4和图11所示的根据实施方式的点云数据发送/接收装置(可以简称为编码器/解码器),点云数据由点集组成。各个点包括几何信息(或者几何或几何数据)和属性信息(或者属性或属性数据)。几何信息是关于各个点的三维位置信息(xyz)。即,各个点的位置由表示三维空间的坐标系中的参数(例如,表示空间的三个轴的参数(x,y,z),例如X轴、Y轴和Z轴)表示。属性信息表示点的颜色(RGB、YUV等)、反射率、法向量、透明度等。在点云压缩(PCC)中,执行基于八叉树的压缩以高效地压缩三维空间中的非均匀分布,并且根据基于八叉树的压缩来压缩属性信息。图4和图11所示的点云视频编码器和点云视频解码器可以通过相应组件来处理根据实施方式的操作。
根据实施方式,发送装置压缩关于点云数据的几何信息(例如,位置)和属性信息(例如,颜色/亮度/反射率等)并且将压缩的信息发送到接收装置。在这种情况下,点云数据可以根据八叉树结构来配置,该八叉树结构具有根据细节程度或细节层次(LoD)的层。然后,可以基于该配置执行可缩放点云数据编码和表示。在这种情况下,可以根据接收装置的性能或传输速率仅对点云数据的一部分进行解码或表示。
即,在仅需要发送可缩放点云压缩比特流的一部分的情况下(例如,当在可缩放解码中仅对一部分层进行解码时),无法选择和发送必要部分。因此,如图15所示,发送装置需要在解码之后对必要部分重新编码。另选地,在整个数据被传送到接收装置之后,接收装置需要在解码之后选择性地应用必要部分。
然而,在图15的情况下,由于用于解码和重新编码的时间,可能出现延迟。另外,在图16的情况下,由于向接收装置传输不必要的数据,带宽效率可能劣化。此外,当使用固定带宽时,为了传输,可能需要降低数据质量。
因此,为了解决这一问题,根据实施方式的方法/装置可以提供切片,使得点云可以被划分成区域并处理。
具体地,在根据实施方式的方法/装置中,切片可以被划分并发送。当切片被独立地编码时,由于熵连续性的劣化,压缩效率可能降低。在这方面,在根据实施方式的方法/装置中,提出了在分离的切片之间连续地使用熵的方法。在这方面,可以通过预先发送关于连续使用的切片的信息来高效地管理接收装置的资源。另外,可能有必要使用另一切片的信息来引用分离的切片的边界处的邻居。在这方面,本文提出了在切片边界处进行处理以便保证切片之间的独立性的方法,以便于并行处理或增加压缩效率。在根据实施方式的装置和方法中,提出了当在多个切片之间给定熵连续性时由接收装置高效地执行缓冲管理的方法。
另外,在根据实施方式的方法/装置中,可以定义点云数据的切片分段结构,并且可以用信号通知用于可缩放传输的可缩放层和切片结构。
另外,根据本公开,几何数据和属性数据可以通过多个切片发送。由此,接收装置可以执行选择性解码或并行解码。
根据实施方式,方法/装置将切片分段(或划分、分离或分割)成多个切片并且通过多个分段切片来发送点云比特流。由此,可以支持接收装置的选择性解码或并行解码。
在这方面,本公开可以将图块定义为分段切片的上位概念。根据实施方式,图块可以被视为构成输入数据的树的子树。另外,各个图块可以被视为包括相对于构成输入数据的树结构在特定树深度处的占用节点的子树深度的单元。
图17例示了根据实施方式的以树结构配置一个或更多个图块的示例。
参考图17,作为示例,树深度2的占用节点被视为根的四个子树被配置成不同的图块。例如,基于点云数据(例如,几何数据)的树结构可以被划分成分别由50001、50003、50005和50007指示的四个图块。图17所示的图块的数量仅是示例性实施方式以便于本领域技术人员理解。图块的数量可以变化。另外,可以通过各个数据单元发送属于各个图块的点云数据。这里,各个图块可以独立地配置。在这种情况下,可以执行并行处理。另外,图块可以由一个或更多个切片组成。
图18的(a)至图18的(c)例示了根据实施方式的被建立以发送属于图块的点云数据的树层和切片之间的匹配关系的示例。
当根据实施方式的发送方法/装置/编码器以切片结构划分点云比特流时,可以配置切片(详细单元)。用于详细数据表示的数据单元可以是切片。
例如,一个或更多个八叉树层可以与切片匹配。
根据实施方式的发送方法/装置(例如,编码器)可以通过在扫描顺序51000方向上扫描包括在八叉树中的节点(点)来配置基于切片51001的比特流。切片可以包括八叉树结构中的一个或更多个级别的节点,可以仅包括特定级别的节点,或者可以仅包括特定级别的一些节点。另选地,其可以仅包括一个或更多个级别的一些节点。
图18的(a)示出由7个切片组成的示例性八叉树结构。在此示例中,切片51002可以包括级别0至级别4的节点。切片51003可以包括级别5的一些节点,切片51004可以包括级别5的一些节点,切片51005可以包括级别5的一些其它节点。即,在图18的(a)中,级别5被划分成三个切片。类似地,在图18的(a)中,级别6(即,叶级别)也被划分成三个切片。换言之,切片可以配置有特定级别的一些节点。
图18的(b)示出由四个切片组成的示例性八叉树结构。在此示例中,切片由级别0至级别3的节点和级别4的一些节点组成,另一切片由级别4的剩余节点和级别5的一些节点组成。另外,另一切片由级别5的剩余节点和级别6的一些节点组成,另一切片由级别6的剩余节点组成。
图18的(c)示出由五个切片组成的示例性八叉树结构。切片由级别0至级别3的节点组成,四个切片由级别4至级别6的节点组成。即,切片由级别4的一些节点、级别5的一些节点和级别6的一些节点组成。
换言之,如图18的(b)和图18的(c)所示,当多个八叉树层与切片匹配时,切片中可以仅包括各个层的一些节点。当多个切片这样构成几何/属性帧时,接收装置配置层所需的信息可以通过信令信息发送到接收装置。例如,信令信息可以包括各个切片中所包括的层信息和各个层中所包括的节点信息。在图18的(a)至图18的(c)中,空心圆(例如,51007)可以用于指示编码单元,实心圆(例如,51008)可以指示对应切片的终点(或前一切片的起点)。
根据实施方式的编码器和与编码器对应的装置可以对点云数据进行编码,并且生成并发送包括编码的数据和关于点云数据的信令信息(或参数信息)的比特流。
此外,可以基于根据实施方式的比特流结构来生成比特流。因此,根据实施方式的接收装置、解码器、对应装置等可以接收并解析被配置为适合于一些数据的选择性解码的比特流,从而仅解码点云数据的一部分并高效地提供它。
接下来,将描述点云数据的可缩放传输。
根据实施方式的点云数据发送方法/装置可以可缩放地发送包括点云数据的比特流,根据实施方式的点云数据接收方法/装置可以可缩放地接收比特流并对其解码。
当图18的(a)至图18的(c)所示的结构用于可缩放传输时,用于选择接收装置所需的切片的信令信息可以被发送到接收装置。可缩放传输并非意指发送或解码整个比特流,而是意指仅发送或解码比特流的一部分。因此,接收装置可以提供低分辨率点云数据(或内容)。
当对根据实施方式的基于八叉树的几何比特流应用可缩放传输时,对于从根节点到叶节点的各个八叉树层的比特流,应该允许仅使用直至特定八叉树层的信息来构造点云数据。
为此,目标八叉树层不应依赖于较低八叉树层信息。这可以是共同应用于几何/属性编码的约束。
另外,在可缩放传输中,发送/接收装置需要向接收装置发送用于选择可缩放层的可缩放结构。考虑根据实施方式的八叉树结构,所有八叉树层均可以支持可缩放传输,或者仅对于特定八叉树层或更低的层可以允许可缩放传输。例如,包括一些八叉树层,信令信息可以被传送到接收装置以指示包括切片的可缩放层。因此,接收装置可以在比特流步骤中确定切片是否是必要/不必要的。在图18的(a)的示例中,级别0(即,根级别)至级别4 51002可以构成一个可缩放层而不支持可缩放传输,较低的八叉树层可以与可缩放层以一一对应方式匹配。通常,对于与叶节点对应的部分,可以支持可缩放性。如图18的(c)所示,当多个八叉树层包括在切片中时,可以定义应为这些层配置一个可缩放层。
在这种情况下,可缩放传输和可缩放解码可以根据目的单独地使用。根据实施方式,可以使用可缩放传输以便于发送/接收装置选择直至特定层的信息,而无需解码器的操作。根据实施方式,可缩放解码可以用于在编码期间选择特定层的目的。即,可缩放传输可以支持在压缩状态(即,在比特流阶段)选择必要信息而不涉及解码器,使得发送或接收装置可以确定特定层。另一方面,在可缩放解码的情况下,可以仅支持编码/解码直至编码/解码过程中所需的部分。因此,在可缩放表示的情况下可以使用可缩放解码。
在这种情况下,用于可缩放传输的层配置可以不同于用于可缩放解码的层配置。例如,从可缩放传输的角度,包括叶节点的较低三个八叉树层可以构成一个层。另一方面,从可缩放解码的角度,当包括所有层信息时,对于叶节点层中的每一个,叶节点层1和叶节点层2,可缩放解码可能是可能的。
上述层配置的切片结构和可缩放传输的信令方法将稍后更详细地描述。
如上所述,根据实施方式的方法/装置可以将比特流划分成特定单元并处理,以便于高效比特流传输和解码。
根据实施方式的方法/装置使得由层组成的点云数据能够在比特流级别选择性地发送和解码。
根据实施方式的单元可以被称为LOD、层、切片等。LOD是与属性数据编码中的LOD相同的术语,但可以意指用于比特流的分层结构的数据单元。根据实施方式的LOD可以是基于点云数据的层次结构与一个深度或一束两个或更多个深度对应的概念,例如八叉树或多个树的深度(级别)。类似地,提供层以生成子比特流的单元并且是与一个深度或一束两个或更多个深度对应的概念,并且可以对应于一个LOD或两个或更多个LOD。另外,切片是用于配置子比特流的单元的单元,并且可以对应于一个深度、一个深度的一部分或者两个或更多个深度。另外,切片可以对应于一个LOD、一个LOD的一部分或者两个或更多个LOD。根据实施方式,LOD、层和切片可以彼此对应,或者LOD、层和切片中的一个可以包括在另一个中。另外,根据实施方式的单元可以包括LOD、层、切片、层组或子组,并且可以被称为彼此互补。根据实施方式,在八叉树结构中,层、深度、级别和深度级别可以具有相同的含义。
图19是例示根据实施方式的点云数据的基于层的配置的示例的图。图19示出根节点的深度级别被设定为0并且叶节点的深度级别被设定为7的示例性八叉树结构。
根据实施方式的发送方法/装置可以配置如图19所示的基于层的点云数据,以对点云数据进行编码和解码。
根据实施方式的点云数据的分层可以根据应用领域在SNR、空间分辨率、颜色、时间频率、位深等方面具有层结构,并且可以基于八叉树结构或LOD结构在数据密度增加的方向上构造层。
即,当基于八叉树结构生成LOD时,它们可以被定义为使得LOD在细节增加的方向上(即,在八叉树深度级别增加的方向上)增加。在本公开中,层可以具有与级别、深度和深度级别相同的含义。
参考图19,例如,在除了根节点级别(或称为根级别)之外具有7个深度级别的八叉树结构中,LOD 0被配置为包括从根节点级别到八叉树深度级别4的级别,LOD 1被配置为包括从根节点级别到八叉树深度级别5的级别,LOD 2被配置为包括从根节点级别到八叉树深度级别7的级别。
根据实施方式,通过点云压缩获取的比特流可以通过如图20所示根据数据类型划分成几何比特流和属性比特流来传送。在这种情况下,各个比特流可以被配置成切片并发送。
图20是例示根据实施方式的几何比特流和属性比特流包括在相应切片中的示例的图。即,参考图20,包括几何数据的几何比特流可以被配置成切片0,包括属性数据的属性比特流可以被配置成切片1。
根据实施方式的方法/装置可以如图19所示基于八叉树结构的分层来生成LOD,并且如图20所示配置几何比特流和属性比特流。
当几何比特流和属性比特流被配置在一个切片中并被传送而与层信息或LoD信息无关时,应该执行解码比特流的操作、仅选择期望部分并去除不必要部分的操作以及仅基于必要信息重新编码比特流的操作以仅使用一部分层或LoD。
本公开提出了将比特流划分成多个切片并发送比特流的方法以避免这些不必要的中间操作。
图21的(a)是例示根据实施方式的将几何比特流划分成多个切片的示例的图,图21的(b)是例示根据实施方式的将属性比特流划分成多个切片的示例的图。
即,当比特流被划分成多个切片并发送到接收装置时,几何比特流和属性比特流可以被划分成多个切片并被发送,如图21的(a)和图21的(b)所示。各个切片由切片头(也称为数据单元头)和切片数据(也称为数据单元数据)组成。在这种情况下,切片头包括与该切片和/或引用切片(例如,先前切片)有关的引用信息,并且切片数据包括实际比特流。
在这种情况下,各个分割的切片可以独立地存在。即,在图21的(a)和图21的(b)的示例中,可以在切片0、切片1和切片2之间没有相关性的情况下对几何切片(切片0、切片1、切片2)进行编码。在这种情况下,由于各个切片可以独立地编码,所以三个几何编码器可以在并行处理方面同时操作。因此,可以在实时编码/解码等的应用领域中基于执行时间最高效地配置切片。例如,在层之间的相关性较差的预测几何编码的情况下,切片可以彼此独立地配置,如图21的(a)所示。在这种情况下,可以通过信令信息向接收装置指示可独立解码的切片的数量,从而允许接收装置执行并行操作。这种方案可以同等地或类似地应用于属性切片(切片3、切片4和切片5)。
作为另一方法,当比特流被划分成多个切片并被发送时,可以考虑切片之间的相关性,如图22的(a)和图22的(b)所示。图22的(a)是例示根据实施方式的将几何比特流划分成多个切片的另一示例的图,图22的(b)是例示根据实施方式的将属性比特流划分成多个切片的另一示例的图。
例如,对于基于八叉树的几何编码,可以通过顺序地且累积地使用关于先前节点的上下文信息来增强压缩性能。另外,在邻居搜索和帧内预测中,首先使用关于邻居(或外围)节点的解码占用信息。在这种情况下,可以使用关于先前切片的信息。另选地,关于在前切片的信息可以用于并行处理。在这种情况下,如图22的(a)和图22的(b)所示,出现切片之间的依赖性。在这种情况下,可以通过信令信息将关于在前切片的信息传送到接收装置以指定该信息。
图22的(a)例示了切片2引用切片1并且切片1引用切片0的示例。图22的(b)例示了切片5引用切片4并且切片4引用切片3的示例。
在这方面,各种实施方式可以作为比特流排序方法来应用,以用于通过多个切片传送几何比特流和属性比特流。
图23例示了根据实施方式的对几何比特流和属性比特流进行排序的示例性方法。
在发送比特流时,根据实施方式的发送方法/装置可以顺序发送几何数据(或称为几何比特流或几何信息)和属性数据(或称为属性比特流或属性信息),如图23所示。在此操作中,根据数据类型,可以首先发送整个几何数据,然后可以发送属性数据。在这种情况下,可以基于发送的比特流信息快速地重构几何数据。
图23例示了包含几何数据的切片0、切片1、切片2、包含属性数据的切片3、切片4和切片5依次发送的示例。在这种情况下,位置可以根据实施方式改变。另外,可以在几何头之间以及属性头和几何头之间进行引用。
图24例示了根据实施方式的对几何比特流和属性比特流进行排序的另一示例性方法。
在发送比特流时,根据实施方式的发送方法/装置可以收集并发送构成同一层的几何比特流和属性比特流,如图24所示。在这种情况下,通过使用能够并行解码几何和属性的压缩技术,解码执行时间可以缩短。在这种情况下,可以首先放置需要首先处理的信息(即,较低LoD,其中,几何必须在属性之前)。
图24例示了包含几何数据的切片0、包含属性数据的切片3、包含几何数据的切片1、包含属性数据的切片4、包含几何数据的切片2和包含属性数据的切片5依次发送的示例。在这种情况下,位置可以根据实施方式改变。另外,可以在几何头之间以及属性头和几何头之间进行引用。
根据实施方式的发送/接收方法/装置可以在发送和接收比特流时在比特流级别高效地选择应用领域中期望的层(或LoD)。在根据实施方式的比特流排序方法中,如图23所示收集和发送几何信息可能在选择特定比特流级别之后在中间生成空部分。在这种情况下,比特流可能需要重排。
通过如图24所示根据层捆绑并发送几何数据和属性数据,根据应用领域,可以选择性地传送必要信息和/或可以选择性地去除不必要信息。
例如,参考图24,当需要选择比特流的一部分时,发送装置可以仅选择并发送一个层的几何切片0和属性切片3以及另一层的几何切片1和属性切片4,并且从比特流去除另一层的几何切片2和属性切片5。即,在对称几何-属性选择的情况下,同一层的几何数据和属性数据被同时选择并被发送,或者被同时选择并被去除。
例如,参考图24,当需要选择比特流的一部分时,发送装置可以选择并发送一个层的几何切片0和属性切片3、另一层的几何切片1和属性切片4以及另一层的几何切片2和属性切片5之间的几何切片2,并且从比特流去除属性切片5。即,在不对称几何-属性选择的情况下,仅同一层的几何数据和属性数据中的一个被选择并被发送或去除。
上述比特流的分段和比特流的一部分的选择旨在支持点云数据的可缩放性。
以下,将描述连续切片操作和上下文缓冲器的管理。根据实施方式,上下文缓冲器可以包括图43的接收装置的几何缓冲器和/或属性缓冲器。
如上所述,在基于八叉树的几何编码中,可以通过顺序地且累积地使用关于先前节点的上下文信息来增加压缩性能。另外,在邻居搜索和帧内预测中,首先使用关于邻居(或外围)节点的解码占用信息。在这种情况下,可以使用关于先前切片的信息。另选地,关于在前切片的信息可以用于并行处理。在这种情况下,出现切片之间的依赖性。
在依赖切片的情况下,使用关于先前切片的信息来对后续切片进行编码,可以解决通过划分切片而导致的编码效率的劣化。在几何编码中,可以连续地使用诸如基于上下文的自适应二进制算术编码(CABAC)上下文、上下文映射、字典LuT和平面编码变量的信息。当这样连续地使用上下文时,有必要控制上下文缓冲器。
图25的(a)是例示根据实施方式的比特流结构中的切片之间的依赖性的示例的图。图25的(b)是例示当如图25的(a)所示出现切片间依赖性时相应切片中生成的上下文的示例的图。图25的(c)至图25的(e)是例示根据实施方式的当出现切片间依赖性时上下文缓冲控制的示例的图。
图25的(a)例示了比特流被划分成多个切片并被发送,因此切片2和切片3使用切片0的信息并且切片4使用切片3的信息的示例。即,切片2和切片3依赖于切片0,切片4依赖于切片3。例如,由于基于切片0的上下文信息(例如,几何数据或属性数据)执行切片2的编码,所以切片2的编码可以在切片0的编码完成之后开始。在图25的(a)中,切片0被切片2和切片3引用,因此切片0被其它切片引用的次数可为2。相反,切片1独立于其它切片。因此,切片1的数据(例如,几何数据或属性数据)可以独立地编码,而与其它切片无关。
尽管考虑树被划分成切片的情况描述了图25的(a)的实施方式,但这仅是示例。即,关于另一图块、另一拼块或另一帧的连续性信息、上下文用途信息和邻居引用状态甚至可以用于划分成图块的比特流,图块是包括按区域划分的子树或拼块或帧的概念。
当属于各个切片的数据(例如,几何数据或属性数据)由编码器编码时,为各个切片生成上下文。这里,编码器可以是图1的点云视频编码器10002、图2的编码20001、图4的点云视频编码器、图12的发送装置、图42的编码器等。
参考图25的(b),当第一切片(切片0)的数据输入到编码器时,通过编码生成作为上下文信息的上下文A。然后,当编码器对第二切片(切片1)的数据进行编码时,生成上下文B。当编码器对第三切片(切片2)的数据进行编码时,生成上下文A'。另外,当编码器对第四切片(切片3)的数据进行编码时,生成上下文A”,当编码器对第五切片(切片4)的数据进行编码时,生成上下文C。例如,上下文A'引用上下文A,但独立(或不同)于上下文A。即,上下文A'是通过更新上下文A而配置的上下文。
然后,接收装置将各个切片的上下文存储在上下文缓冲器中。
此时,如图25的(c)所示,当所有上下文在没有上下文缓冲器的控制的情况下存储在上下文缓冲器中时,存储空间可能变得不足,或者成本可能增加以确保更大的存储空间。
因此,本公开提出了高效地控制上下文缓冲器的方法。图25的(d)和图25的(e)是例示根据实施方式的上下文缓冲控制的示例的图。
参考图25的(d),当第一切片(切片0)的数据输入到发送装置的编码器时,通过编码生成作为上下文信息的上下文A。由于上下文A被一个或更多个后续切片(例如,切片2、切片3以及未示出的其它切片)使用,所以上下文A被存储在接收装置中的上下文缓冲器中。在这种情况下,发送装置可以通过信令信息(例如,缓冲控制相关信息)向接收装置发送关于使用切片0的上下文的切片(例如,切片2和切片3)的信息。因此,接收装置可以高效地控制缓冲器(或上下文缓冲器)。例如,后续切片当中使用上下文A的切片的总数(=N)(例如,num_context_reuse_minus1)可以通过信令信息(例如,缓冲控制相关信息或计数器)发送到接收装置。例如,在图25的(a)的情况下,N可为3。对于大于0的N,当在上下文A被存储在接收装置的上下文缓冲器中之后上下文A被其它切片引用N次时,可以从上下文缓冲器去除上下文A。在图25的(d)中,“in”意指将上下文存储在上下文缓冲器中,“out”意指将上下文从上下文缓冲器去除。
根据实施方式,由于切片0被切片2、切片3和未示出的其它切片使用,所以作为切片0的上下文,上下文A没有从上下文缓冲器被去除,而是保持存储(上下文A(in))。
根据实施方式,切片1被独立地编码(或解码)而与切片0和后续切片无关,因此作为切片2的上下文,上下文B可以在被处理之后立即从上下文缓冲器被去除(上下文B(in/out))。根据实施方式,当切片0被处理时,切片1可以同时被并行处理。由此,执行时间可以缩短。
根据实施方式,切片2引用切片0,但与后续切片无关。因此,作为切片2的上下文,上下文A'可以在上下文缓冲器中在被处理之后立即被去除(上下文A’(in/out))。由于切片2的编码(或解码)基于作为切片0的上下文(或上下文信息)的上下文A执行,所以切片0的编码(或解码)可以在切片0的编码(或解码)完成之后开始。由于切片2未被后续切片引用,所以它可以在其编码(或解码)完成之后从上下文缓冲器被删除。
根据实施方式,由于在切片4和未示出的其它切片中使用切片3,所以作为切片3的上下文,上下文A”没有从上下文缓冲器被去除,而是保持存储(上下文A”(in))。类似于切片2,切片3的编码(或解码)基于切片0的上下文A执行。因此,切片3的编码(或解码)可以同时与切片2的编码(或解码)并行执行。由此,执行时间可以缩短。然而,切片3中生成的上下文(即,上下文A”)在存储在上下文缓冲器中之后未被去除,因为它用于后续切片的编码(或解码)。存储在上下文缓冲器中的上下文A”用于切片4的编码(或解码)。
根据实施方式,切片4引用切片3,但与后续切片无关。因此,作为切片4的上下文,上下文C可以在上下文缓冲器中在被处理之后立即被去除(上下文C(in/out))。
根据实施方式,在特定切片的编码之后生成的上下文存储在上下文缓冲器中的时段可以基于切片被至少一个后续切片引用的次数来确定。
当如上所述存在关于上下文缓冲器的附加信息时,可以通过基于关于上下文是否被附加使用以及上下文被附加使用多少次的信息在上下文不再使用时从上下文缓冲器去除上下文来高效地管理上下文缓冲器。即,与后续切片无关的切片的上下文可以在上下文缓冲器中被处理之后立即被去除。由此,可以高效地控制上下文缓冲器。另外,当可基于依赖性信息执行并行处理时,可以通过同时执行来缩短执行时间。
图25的(e)示出当两个或更多个切片被并行处理时执行的上下文缓冲控制的示例。
例如,当切片0和切片1被并行处理时,切片0的上下文A和切片1的上下文B被同时存储在上下文缓冲器中。在这方面,由于切片0被切片2、切片3和未示出的其它切片使用,所以上下文A没有从上下文缓冲器被去除,而是保持存储(上下文A(in))。然而,切片1与切片0和后续切片无关,因此上下文B在被处理之后立即从上下文缓冲器被去除(上下文B(in/out))。
作为另一示例,当切片2和切片3被并行处理时,切片2的上下文A'和切片3的上下文A”被同时存储在上下文缓冲器中。由于在后续切片中没有使用切片2,所以上下文A'在上下文缓冲器中被处理之后立即被去除(上下文A'(in/out))。然而,在切片4中使用切片3,因此上下文A”没有从上下文缓冲器被去除,而是保持存储(上下文A”(in))。
以下,将描述连续切片操作(邻居连续性)。
根据实施方式,当通过划分切片来执行编码时,位置上相邻的节点可存在于不同的切片中。
图26的(a)至图26的(d)是例示根据实施方式的邻居结构的示例的图。
作为示例,在图26的(a)至图26的(d)的邻居结构中,位于中心的节点53000存在于切片的边界处,节点1、8和32可以存在于相同的切片中,但是节点2、4和16可以存在于一个或更多个不同的切片中。在这种情况下,考虑到与邻居(或外围)节点的关系,根据切片之间是否有依赖性,可以使用或不使用邻居节点。例如,当使用邻居节点时,可以用信号通知切片与包括各个邻居节点的切片之间的依赖性。图26的(a)至图26的(d)示出6个依赖邻居节点、18个依赖邻居节点和32个依赖邻居节点以及位于中心的节点的示例。当依赖性未被确认时,可以在不存在对应邻居节点,所有邻居节点被占用,或者邻居节点未被占用(即,未占用)的假设下使用邻居搜索。当使用这种假设时,相关信息可以通过信令信息发送到接收装置。在这种情况下,在各个切片可被独立地处理的意义上,可存在并行处理的可能性。相反,当准确地使用关于邻居节点的信息时,可能需要邻居切片的处理结果。可以在诸如获得几何编码的占用图、LoD生成的邻居搜索和RAHT的预测的操作中使用与邻居节点的这种关系。
尽管考虑树被划分成切片的情况描述了图26的(a)至图26的(d),但连续性信息、上下文用途信息和邻居引用状态甚至可以用于划分成图块的比特流,图块是包括按区域划分的子树或拼块或帧的概念。
图27是例示根据实施方式的用于发送/接收的点云数据的比特流结构的示例的图。根据实施方式,从图1、图2、图4、图12和图42中的任一个的点云视频编码器输出的比特流可以采取图27的形式。
根据实施方式,点云数据的比特流提供拼块或切片,使得点云数据可以被划分成区域并被处理。比特流的区域可以具有不同的重要性级别。因此,当点云数据被分割成拼块时,不同的滤波器(编码方法)或不同的滤波器单元可以应用于相应拼块。当点云数据被分割成切片时,不同的滤波器或不同的滤波器单元可以应用于相应切片。
当点云数据被分割成区域并被压缩时,根据实施方式的发送装置和接收装置可以按高级语法结构发送和接收比特流,以便在分割的区域中选择性传输属性信息。
根据实施方式的发送装置可以根据如图27所示的比特流结构发送点云数据。因此,可以提供针对重要区域应用不同的编码操作并使用质量良好的编码方法的方法。另外,可以根据点云数据的特性支持高效编码和传输,并且可以根据用户要求提供属性值。
根据实施方式的接收装置可以根据如图27所示的比特流结构接收点云数据。因此,可以对相应区域(分割为切片的拼块或区域)应用不同的滤波(解码)方法,而非对整个点云数据应用复杂的解码(滤波)方法。因此,可以确保对用户重要的区域中更好的图像质量以及对系统适当的等待时间。
当根据实施方式的几何比特流、属性比特流和/或信令比特流(或信令信息)如图27所示配置在一个比特流(或G-PCC比特流)中时,比特流可以包括一个或更多个子比特流。根据实施方式的比特流可以包括用于序列级信令的序列参数集(SPS)、用于几何信息编码的信令的几何参数集(GPS)以及用于属性信息编码的信令的一个或更多个属性参数集(APS)APS0和APS1、用于拼块级信令的拼块清单(或称为TPS)以及一个或更多个切片(切片0至切片n)。即,根据实施方式的点云数据的比特流可以包括一个或更多个拼块。各个拼块可以是包括一个或更多个切片(切片0至切片n)的切片组。根据实施方式的拼块清单(即,TPS)可以包括关于一个或更多个拼块中的每一个的信息(例如,关于拼块边界框的坐标值信息和高度/尺寸信息)。各个切片可以包括一个几何比特流(Geom0)和/或一个或更多个属性比特流(Attr0、Attr1)。例如,切片0可以包括一个几何比特流Geom00和一个或更多个属性比特流Attr00和Attr10
各个切片中的几何比特流可以由几何切片头(geom_slice_header)和几何切片数据(geom_slice_data)组成。根据实施方式,各个切片中的几何比特流可以被称为几何数据单元,几何切片头可以被称为几何数据单元头,几何切片数据可以被称为几何数据单元数据。
各个切片中的属性比特流可以由属性切片头(attr_slice_header)和属性切片数据(attr_slice_data)组成。根据实施方式,各个切片中的属性比特流可以被称为属性数据单元,属性切片头可以被称为属性数据单元头,属性切片数据可以被称为属性数据单元数据。
根据实施方式,点云数据的编码和/或解码所需的参数可以在点云数据的参数集(例如,SPS、GPS、APS和TPS(或称为拼块清单)等)和/或对应切片的头中新定义。例如,它们可以在几何信息的编码和/或解码中被添加到GPS,并且可以在基于拼块的编码和/或解码中被添加到拼块(TPS)和/或切片头。
根据实施方式,与切片有关的信息(称为切片相关信息)和/或与缓冲控制有关的信息(称为缓冲控制相关信息)可以在SPS、GPS、APS、TPS或SEI消息中的至少一个中用信号通知。另外,与切片有关的信息(称为切片相关信息)和/或与缓冲控制有关的信息(称为缓冲控制相关信息)可以在几何切片头(称为几何数据单元头)或属性切片头(称为属性数据单元头)中的至少一个中用信号通知。
根据实施方式,切片相关信息和/或缓冲控制相关信息可以根据应用或系统在对应位置或单独位置中定义,使得要应用的范围和方法可以不同地使用。作为将在本公开中稍后描述的语法中使用的术语,字段可以具有与参数或语法元素相同的含义。
即,信号(例如,切片相关信息和/或缓冲控制相关信息)可以根据信号发送的位置具有不同的含义。当信号在SPS中定义时,其可以同等地应用于整个系列。当信号在GPS中定义时,这可以指示信号用于位置重构。当信号在APS中定义时,这可以指示信号应用于属性重构。当信号在TPS中定义时,这可以指示信令仅应用于拼块内的点。当信号在切片中传送时,这可以指示信令仅应用于切片。另外,当字段(或称为语法元素)适用于多个点云数据流以及当前点云数据流时,它们可以承载在上位参数集中。
根据实施方式,参数(可以被称为元数据、信令信息等)可以由发送装置的元数据处理器(或元数据生成器)、信令处理器或处理器生成,并且可以被发送到接收装置并在解码/重构操作中使用。例如,由发送装置生成并发送的参数可以由接收装置的元数据解析器获取。
在此实施方式中,描述了独立于编码技术定义信息。然而,在其它实施方式中,信息可以结合编码技术来定义。为了支持区域上不同的可缩放性,可以在拼块参数集中定义信息。
另选地,可以定义网络抽象层(NAL)单元,并且可以传送用于选择层的相关信息(例如,切片相关信息和/或缓冲控制相关信息),例如layer_id。由此,甚至可以在系统级别选择比特流。
图28示出根据本公开的序列参数集(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字段可以指示比特流是否符合主配置文件。例如,main_profile_compatibility_flag字段等于1可以指示比特流符合主配置文件。又如,main_profile_compatibility_flag字段等于0可以指示比特流符合主配置文件以外的配置文件。
当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中是否存在边界框。例如,sps_bounding_box_present_flag字段等于1指示SPS中存在边界框,sps_bounding_box_present_flag字段等于0指示边界框的尺寸未定义。
当sps_bounding_box_present_flag字段等于1时,根据实施方式的SPS还可以包括sps_bounding_box_offset_x字段、sps_bounding_box_offset_y字段、sps_bounding_box_offset_z字段、sps_bounding_box_offset_log2_scale字段、sps_bounding_box_size_width字段、sps_bounding_box_size_height字段和sps_bounding_box_size_depth字段。
sps_bounding_box_offset_x字段指示源边界框的x偏移(笛卡尔坐标)。当源边界框的x偏移不存在时,sps_bounding_box_offset_x的值为0。
sps_bounding_box_offset_y字段指示源边界框的y偏移(笛卡尔坐标)。当源边界框的y偏移不存在时,sps_bounding_box_offset_y的值为0。
sps_bounding_box_offset_z字段指示源边界框的z偏移(笛卡尔坐标)。当源边界框的z偏移不存在时,sps_bounding_box_offset_z的值为0。
sps_bounding_box_offset_log2_scale字段指示对量化的x、y和z源边界框偏移进行缩放的缩放因子。
sps_bounding_box_size_width字段指示源边界框的宽度(笛卡尔坐标)。当源边界框的宽度不存在时,sps_bounding_box_size_width字段的值可为1。
sps_bounding_box_size_height字段指示源边界框的高度(笛卡尔坐标)。当源边界框的高度不存在时,sps_bounding_box_size_height字段的值可为1。
sps_bounding_box_size_depth字段指示源边界框的深度(笛卡尔坐标)。当源边界框的深度不存在时,sps_bounding_box_size_depth字段的值可为1。
sps_source_scale_factor_numerator_minus1字段加1指示源点云的缩放因子分子。
sps_source_scale_factor_denominator_minus1字段加1指示源点云的缩放因子分母。
sps_num_attribute_sets字段指示比特流中的编码属性的数量。
根据实施方式的SPS包括被重复sps_num_attribute_sets字段的值那么多次的迭代语句。在实施方式中,i被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句,直至i的值变得等于sps_num_attribute_sets字段的值。迭代语句可以包括attribute_dimension_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_minus[i]字段、attribute_cicp_colour_primaries[i]字段、attribute_cicp_transfer_characteristics[i]字段、attribute_cicp_matrix_coeffs[i]字段、attribute_cicp_video_full_range_flag[i]字段和known_attribute_label_flag[i]字段。
attribute_secondary_bitdepth_minus[i]加1指定第i属性信号的第二分量的位深。
attribute_cicp_colour_primaries[i]字段指示第i属性的颜色属性源原色的色度坐标。
attribute_cicp_transfer_characteristics[i]字段指示作为具有0到1的标称实值范围的源输入线性光强度的函数的颜色属性的参考光电传递特性函数,或者指示作为输出线性光强度的函数的参考电光传递特性函数的逆。
attribute_cicp_matrix_coeffs[i]字段描述在从绿色、蓝色和红色或Y、Z和X原色推导亮度信号和色度信号时使用的矩阵系数。
attribute_cicp_video_full_range_flag[i]字段指示从E′Y、E′PB和E′PR或E′R、E′G和E′B实值分量信号推导的亮度信号和色度信号的黑色电平和范围。
known_attribute_label_flag[i]字段指定对于第i属性是否用信号通知know_attribute_label[i]字段或attribute_label_four_bytes[i]字段。例如,known_attribute_label_flag[i]字段的值等于0指定对于第i属性用信号通知known_attribute_label字段。known_attribute_label_flag[i]字段等于1指定对于第i属性用信号通知attribute_label_four_bytes[i]字段。
known_attribute_label[i]字段指示第i属性的类型。例如,当known_attribute_label[i]字段的值为0时,其可以指示第i属性是颜色。当known_attribute_label[i]字段的值为1时,其可以指示第i属性是反射率。当known_attribute_label[i]字段的值为2时,其可以指示第i属性是帧索引。另外,当known_attribute_label[i]字段的值为4时,其指示第i属性是透明度。当known_attribute_label[i]字段的值为5时,其指示第i属性是法向。
attribute_label_four_bytes[i]字段指示4字节代码中的已知属性类型。
根据实施方式,当attribute_label_four_bytes[i]的值为0时,其可以指示第i属性是颜色。当attribute_label_four_bytes[i]字段的值为1时,其可以指示第i属性是反射率。当attribute_label_four_bytes[i]字段的值为2时,其可以指示第i属性是帧索引。当attribute_label_four_bytes[i]字段的值为4时,其可以指示第i属性是透明度。当attribute_label_four_bytes[i]字段的值为5时,其可以指示第i属性是法向。
log2_max_frame_idx字段指定用于用信号通知frame_idx语法变量的比特数。
axis_coding_order字段i指定X、Y和Z输出轴标签与重构的点云RecPic[pointidx][axis]中的三个位置分量之间的对应关系,其中axis=0,...,2。
sps_bypass_stream_enabled_flag字段等于1可以指定在读取比特流时使用旁路编码模式。作为另一示例,sps_bypass_stream_enabled_flag字段等于0可以指定在读取比特流时不使用旁路编码模式。
sps_extension_flag字段指示sps_extension_data语法结构是否存在于对应SPS语法结构中。例如,当sps_extension_present_flag字段等于1时,其指示sps_extension_data语法结构存在于SPS语法结构中。当sps_extension_present_flag字段等于0时,其指示sps_extension_data语法结构不存在于SPS语法结构中。
根据实施方式,当sps_extension_flag字段等于1时,SPS还可以包括sps_extension_data_flag字段。
sps_extension_data_flag字段可以具有任何值。
图29示出根据实施方式的SPS(sequency_parameter_set())的语法结构的另一实施方式。
图29的SPS还可以包括字段sps_entropy_continuation_enabled_flag。例如,sps_entropy_continuation_enabled_flag等于1指示切片的初始熵上下文状态可取决于在前切片的最终熵上下文状态。sps_entropy_continuation_enabled_flag等于0指定各个切片的初始熵上下文状态是独立的。
根据实施方式,图29的字段sps_entropy_continuation_enabled_flag可以被包括在图28的SPS中的任何位置。
图30示出根据本公开的几何参数集(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的几何切片头中提供附加边界框信息。例如,gps_box_present_flag字段等于1可以指定在引用当前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字段。例如,gps_gsh_box_log2_scale_present_flag字段等于1可以指定在引用当前GPS的各个几何切片头中用信号通知gps_gsh_box_log2_scale字段。作为另一示例,gps_gsh_box_log2_scale_present_flag字段等于0可以指定在各个几何切片头中不用信号通知gps_gsh_box_log2_scale字段并且在当前GPS的gps_gsh_box_log2_scale字段中用信号通知用于所有切片的公共缩放。
当gps_gsh_box_log2_scale_present_flag字段等于0时,GPS还可以包括gps_gsh_box_log2_scale字段。
gps_gsh_box_log2_scale字段指示引用当前GPS的所有切片的边界框原点的公共缩放因子。
unique_geometry_points_flag字段指示在引用当前GPS的所有切片中所有输出点在切片内是否具有唯一位置。例如,unique_geometry_points_flag字段等于1指示在引用当前GPS的所有切片中,所有输出点在切片内具有唯一位置。unique_geometry_points_flag字段等于0指示在引用当前GPS的所有切片中,输出点中的两个或更多个可以在切片内具有相同的位置。
geometry_planar_mode_flag字段指示平面编码模式是否被启用。例如,geometry_planar_mode_flag字段等于1指示平面编码模式被启用。geometry_planar_mode_flag等于0指示平面编码模式未被启用。
当geometry_planar_mode_flag字段等于1(即,真)时,GPS还可以包括geom_planar_mode_th_idcm字段、geom_planar_mode_th[1]字段以及geom_planar_mode_th[2]字段。
geom_planar_mode_th_idcm字段可以指定直接编码模式的启用阈值的值。
geom_planar_mode_th[i]字段指定对于0…2范围内的i,沿着平面编码模式高效的第i最可能方向,平面编码模式的启用阈值的值。
geometry_angular_mode_flag字段指示角度编码模式是否是活动的。例如,当geometry_angular_mode_flag字段等于1时,其可以指示角度编码模式是活动的。当geometry_angular_mode_flag字段等于0时,其可以指示角度编码模式不是活动的。
当geometry_angular_mode_flag字段的值为1(即,真)时,GPS还可以包括lidar_head_position[0]字段、lidar_head_position[1]字段、lidar_head_position[2]字段、number_lasers字段、planar_buffer_disabled字段、implicit_qtbt_angular_max_node_min_dim_log2_to_split_z字段以及implicit_qtbt_angular_max_diff_to_split_z字段。
lidar_head_position[0]字段、lidar_head_position[1]字段和lidar_head_position[2]字段可以表示激光雷达头在具有内部轴的坐标系中的(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激光位置的校正。
当planar_buffer_disabled字段等于1时,其指示利用缓冲器跟踪最近节点不用于在平面模式下对平面模式标志字段和平面位置进行编码的过程。当planar_buffer_disabled字段等于0时,其指示使用利用缓冲器跟踪最近节点。
implicit_qtbt_angular_max_node_min_dim_log2_to_split_z字段指示节点大小的log2值,低于该值,节点的水平拆分优于垂直拆分。
implicit_qtbt_angular_max_diff_to_split_z字段指示对于节点允许的最大垂直与水平节点大小比率的log2值。
neighbour_context_restriction_flag字段等于0指示当前节点的几何节点占用利用从位于当前节点的父节点内的邻近节点确定的上下文来编码。neighbour_context_restriction_flag字段等于1指示当前节点的几何节点占用利用从位于当前节点的父节点内或外的邻近节点确定的上下文来编码。
inferred_direct_coding_mode_enabled_flag字段指示direct_mode_flag字段是否存在于几何节点语法中。例如,inferred_direct_coding_mode_enabled_flag字段等于1指示direct_mode_flag字段可以存在于几何节点语法中。例如,inferred_direct_coding_mode_enabled_flag字段等于0指示direct_mode_flag字段不存在于几何节点语法中。
bitwise_occupancy_coding_flag字段指示是否使用语法元素占用图的逐位上下文化对几何节点占用进行编码。例如,bitwise_occupancy_coding_flag字段等于1指示几何节点占用使用语法元素ocupancy_map的逐位上下文化来编码。例如,bitwise_occupancy_coding_flag字段等于0指示几何节点占用使用字典编码语法元素ocupancy_byte来编码。
adjacent_child_contextualization_enabled_flag字段指示邻近八叉树节点的相邻子节点是否用于逐位占用上下文化。例如,adjacent_child_contextualization_enabled_flag字段等于1指示邻近八叉树节点的相邻子节点用于逐位占用上下文化。例如,adjacent_child_contextualization_enabled_flag字段等于0指示邻近八叉树节点的子节点不用于占用上下文化。
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字段指示在几何切片解码过程期间是否调用针对几何位置的缩放过程。例如,geom_scaling_enabled_flag字段等于1指定在几何切片解码过程期间调用针对几何位置的缩放过程。geom_scaling_enabled_flag字段等于0指定几何位置不需要缩放。
geom_base_qp字段指定几何位置量化参数的基值。
gps_implicit_geom_partition_flag字段指定对于序列或切片是否启用隐式几何分割。例如,gps_implicit_geom_partition_flag字段等于1指定对于序列或切片启用隐式几何分割。gps_implicit_geom_partition_flag字段等于0指定对于序列或切片禁用隐式几何分割。当gps_implicit_geom_partition_flag字段等于1时,用信号通知以下两个字段,即,gps_max_num_implicit_qtbt_prior_ot和gps_min_size_implicit_qtbt。
gps_max_num_implicit_qtbt_prior_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语法结构中。例如,gps_extension_flag字段等于1指定gps_extension_data语法结构存在于GPS语法中。例如,gps_extension_flag字段等于0指定该语法结构不存在于GPS语法中。
当gps_extension_flag字段的值等于1时,根据实施方式的GPS还可以包括gps_extension_data_flag字段。
gps_extension_data_flag字段可以具有任何值。其存在和值不影响解码器对配置文件的一致性。
根据实施方式,GPS还可以包括字段geom_tree_type。例如,geom_tree_type等于0指示位置信息(或几何)使用八叉树来编码。geom_tree_type等于1指示位置信息(或几何)使用预测树来编码。
图31示出根据实施方式的包括切片相关信息和/或缓冲控制相关信息的GPS(geometry_parameter_set())的语法结构的实施方式。
根据实施方式,GPS可以包括字段geom_slice_segmentation_enabled_flag。
例如,geom_slice_segmentation_enabled_flag等于1可以指示几何比特流被划分成多个切片并被发送。在这种情况下,这可以通过并行处理、可缩放传输和空间可缩放性可能的附加条件来告知。另外,geom_slice_segmentation_enabled_flag等于1可以指示在各个单切片中发送几何比特流。
根据实施方式,图31的切片相关信息和/或缓冲控制相关信息可以被包括在图30的GPS中的任何位置。
图32示出根据本公开的属性参数集(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字段指示属性的编码类型。
根据实施方式,当attr_coding_type字段的值为0时,可以指示编码类型为预测权重提升。当attr_coding_type字段的值为1时,可以指示编码类型为RAHT。当attr_coding_type字段的值为2时,可以指示编码类型为固定权重提升。
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语法元素。例如,aps_slice_qp_delta_present_flag字段等于1指定在ASH中存在ash_attr_qp_delta_luma和ash_attr_qp_delta_chroma语法元素。例如,aps_slice_qp_delta_present_flag字段等于0指定在ASH中不存在ash_attr_qp_delta_luma和ash_attr_qp_delta_chroma语法元素。
当attr_coding_type字段的值为0或2(即,编码类型是预测权重提升或固定权重提升)时,根据实施方式的APS还可以包括lifting_num_pred_nearest_neighbours_minus1字段、lifting_search_range_minus1字段以及lifting_neighbour_bias[k]字段。
lifting_num_pred_nearest_neighbours_minus1字段加1指定要用于预测的最近邻居的最大数量。根据实施方式,NumPredNearedtNeighbours的值被设定为等于lifting_num_pred_nearest_neighbours_minus1字段的值。
lifting_search_range_minus1字段加1指定用于确定要用于预测的最近邻居并构建基于距离的细节层次的搜索范围。用于指定搜索范围的变量LiftingSearchRange可以通过将1与lifting_search_range_minus1字段的值相加来获取(LiftingSearchRange=lifting_search_range_minus1+1)。
lifting_neighbour_bias[k]字段指定用于在作为最近邻居推导过程的一部分计算两个点之间的欧几里得距离时对第k分量进行加权的偏置。
根据实施方式,当attr_coding_type字段的值为2时,即,当编码类型指示固定权重提升时,APS还可以包括lifting_scalability_enabled_flag字段。
lifting_scalability_enabled_flag字段指定属性解码过程是否允许输入几何点的修剪的八叉树解码结果。例如,lifting_scalability_enabled_flag字段等于1指定属性解码过程允许输入几何点的修剪的八叉树解码结果。lifting_scalability_enabled_flag字段等于0指定属性解码过程需要输入几何点的完整八叉树解码结果。
当lifting_scalability_enabled_flag字段的值为假时,根据实施方式的APS还可以包括lifting_num_detail_levels_minus1字段。
lifting_num_detail_levels_minus1字段加1指定用于属性编码的细节层次的数量。用于指定LOD的数量的变量LevelDetailCount可以通过将1与lifting_num_detail_levels_minus1字段的值相加来获取(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)。例如,lifting_lod_regular_sampling_enabled_flag字段等于1指定使用常规采样策略来构建细节层次(LOD)。lifting_lod_regular_sampling_enabled_flag字段等于0指定相反使用基于距离的采样策略。
当lifting_scalability_enabled_flag字段的值为假时,根据实施方式的APS可以包括被重复lifting_num_detail_levels_minus1字段的值那么多次的迭代语句。在实施方式中,索引(idx)被初始化为0并且每次执行迭代语句时递增1,并且重复迭代语句,直至索引(idx)大于lifting_num_detail_levels_minus1字段的值。当lifting_lod_regular_sampling_enabled_flag字段的值为真(例如,1)时,该迭代语句可以包括lifting_sampling_period_minus2[idx]字段,当lifting_lod_regular_sampling_enabled_flag字段的值为假(例如,0)时,该迭代语句可以包括lifting_sampling_distance_squared_scale_minus1[idx]字段。另外,当idx的值不为0(即,idx!=0)时,APS还可以包括lifting_sampling_distance_squared_offset[idx]字段。
lifting_sampling_period_minus2[idx]字段加2指定细节层次idx的采样时段。
lifting_sampling_distance_squared_scale_minus1[idx]字段加1指定用于推导LOD idx的采样距离的平方的缩放因子。
lifting_sampling_distance_squared_offset[idx]字段指定用于推导LOD idx的采样距离的平方的偏移。
当attr_coding_type字段的值为0时,即,当编码类型为预测权重提升时,根据实施方式的APS还可以包括lifting_adaptive_prediction_threshold字段、lifting_intra_lod_prediction_num_layers字段、lifting_max_num_direct_predictors字段以及inter_component_prediction_enabled_flag字段。
lifting_adaptive_prediction_threshold字段指定启用自适应预测的阈值。根据实施方式,指定切换自适应预测器选择模式的阈值的变量AdaptivePredictionThreshold被设定为等于lifting_adaptive_prediction_threshold字段的值(AdaptivePredictionThreshold=lifting_adaptive_prediction_threshold)。
lifting_intra_lod_prediction_num_layers字段指定同一LOD层中的解码的点可被引用以生成目标点的预测值的LOD层的数量。例如,lifting_intra_lod_prediction_num_layers字段等于变量LevelDetailCount的值指示目标点对于所有LOD层可以引用同一LOD层中的解码的点。例如,lifting_intra_lod_prediction_num_layers字段等于0指示目标点不会对任何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,则指定多分量属性的主分量用于预测非主分量的重构值。inter_component_prediction_enabled_flag字段等于0指定所有属性分量均独立地重构。
当attr_coding_type字段的值为1时,即,当属性编码类型为RAHT时,根据实施方式的APS还可以包括raht_prediction_enabled_flag字段。
raht_prediction_enabled_flag字段指定在RAHT解码过程中是否启用来自邻居点的变换权重预测。例如,raht_prediction_enabled_flag字段等于1指定在RAHT解码过程中启用来自邻居点的变换权重预测。raht_prediction_enabled_flag字段等于0指定在RAHT解码过程中禁用变换权重预测。
根据实施方式,当raht_prediction_enabled_flag字段的值为真时,APS还可以包括raht_prediction_threshold0字段和raht_prediction_threshold1字段。
raht_prediction_threshold0字段指定结束来自邻居点的变换权重预测的阈值。
raht_prediction_threshold1字段指定跳过来自邻居点的变换权重预测的阈值。
aps_extension_flag字段指定aps_extension_data语法结构是否存在于APS语法结构中。例如,aps_extension_flag字段等于1指定aps_extension_data语法结构存在于APS语法结构中。例如,aps_extension_flag字段等于0指定该语法结构不存在于APS语法结构中。
当aps_extension_flag字段的值为1时,根据实施方式的APS还可以包括aps_extension_data_flag字段。
aps_extension_data_flag字段可以具有任何值。其存在和值不影响解码器对配置文件的一致性。
根据实施方式的APS还可以包括与基于LoD的属性压缩有关的信息。
图32示出根据实施方式的包括切片相关信息和/或缓冲控制相关信息的APS(attribute_parameter_set())的语法结构的实施方式。
根据实施方式,APS可以包括字段attr_slice_segmentation_enabled_flag。
例如,attr_slice_segmentation_enabled_flag等于1可以指示属性比特流被划分成多个切片并被发送。在这种情况下,这可以通过并行处理、可缩放传输和空间可缩放性可能的附加条件来告知。另外,attr_slice_segmentation_enabled_flag等于1可以指示在各个单切片中发送属性比特流。
根据实施方式,图33的分段(分离)的切片相关信息和/或与直接编码有关的信息可以被包括在图32的APS中的任何位置。
图34示出根据实施方式的geometry_slice_bitstream()的语法结构的实施方式。
根据实施方式的几何切片比特流(geometry_slice_bitstream())可以包括几何切片头(geometry_slice_header())和几何切片数据(geometry_slice_data())。根据实施方式,几何切片比特流可以被称为几何数据单元,几何切片头可以被称为几何数据单元头,几何切片数据可以被称为几何数据单元数据。
图35示出根据本公开的几何切片头(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字段。例如,geom_octree_qp_offsets_enabled_flag字段等于1指定在几何切片头中存在geom_octree_qp_offsets_depth字段。geom_octree_qp_offsets_enabled_flag字段等于0指定不存在geom_octree_qp_offsets_depth字段。
geom_octree_qp_offsets_depth字段指定几何八叉树的深度。
图36示出根据实施方式的包括切片相关信息和/或缓冲控制相关信息的几何数据单元头(或称为几何切片头)的语法结构的实施方式。
根据实施方式的几何数据单元头可以包括字段slice_id和字段dependent_neighbour_enabled_flag。
slice_id指定用于标识数据单元(即,切片)的标识符。即,slice_id可以指定用于区分切片或数据单元的指示符,并且承载属于切片层的数据单元(或称为切片)的指示符。另选地,slice_id可以标识对应切片头以供其它语法元素引用。
例如,dependent_neighbour_enabled_flag等于1可以指示在编码操作中应该使用切片之外的邻居信息。dependent_neighbour_enabled_flag等于0可以指示仅使用内部信息(而不使用切片之外的邻居信息)来估计邻居关系。
当sps_entropy_continuation_enabled_flag的值为假(即,0)时,根据实施方式的几何数据单元头还可以包括字段gsh_entropy_continuation_flag。当sps_entropy_continuation_enabled_flag的值为真(即,1)时,几何数据单元头还可以包括字段gsh_prev_slice_id。
字段sps_entropy_continuation_enabled_flag被包括在SPS中。当该字段的值为0时,其指定各个切片的初始熵上下文状态是独立的。
例如,gsh_entropy_continuation_flag等于1可以指示在当前几何数据单元的熵编码中使用的解析状态依赖于先前几何数据单元的最终解析状态。另外,gsh_entropy_continuation_flag等于1可以指示在引用当前几何数据单元的属性数据单元的熵编码中使用的解析状态依赖于先前属性数据单元的最终解析状态。
例如,gsh_entropy_continuation_flag等于0可以指示在当前几何数据单元和引用当前几何数据单元的属性数据单元的熵编码中使用的解析状态不依赖于任何先前数据单元。根据实施方式,比特流一致性的要求是当当前几何数据单元是点云帧中的第一数据单元时gsh_entropy_continuation_flag等于0。
gsh_prev_slice_id指定按比特流顺序的在前(或先前)几何数据单元的gsh_slice_id(或slice_id)的值。
当geom_slice_segmentation_enabled_flag等于1时,几何数据单元头还可以包括字段context_reuse_flag。另外,当context_reuse_flag等于1时,几何数据单元头还可以包括字段num_context_reuse_minus1。
geom_slice_segmentation_enabled_flag等于1指示几何比特流被划分成多个切片并被发送。
例如,context_reuse_flag字段等于1可以指示在至少一个后续切片中使用当前切片的上下文。根据实施方式,当接收装置使用上下文缓冲控制时,当前切片的上下文可以被存储在上下文缓冲器中以用于至少一个后续切片。context_reuse_flag等于0可以指示当前切片的上下文不同于后续切片。
num_context_reuse_minus1加1可以指示当前切片的上下文用于后续切片的次数。
例如,当接收装置使用上下文缓冲控制时,当前切片的上下文可以通过计数器(称为上下文引用计数器)被引用num_context_reuse_minus1+1那么多次,然后从上下文缓冲器被删除。
根据实施方式的几何数据单元头包括被重复num_context_reuse_minus1的值那么多次的迭代语句。在实施方式中,i被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句,直至i的值变得等于num_context_reuse_minus1的值。迭代语句可以包括字段subsequent_slice_id。
字段subsequent_slice_id可以指定用于标识使用当前上下文的第i后续切片的标识符。即,字段subsequent_slice_id可以用于指定使用当前切片的上下文的后续切片。
例如,当接收装置使用上下文缓冲控制并且提供通过subsequent_slice_id指定的切片(即,后续切片)时,计数器(或称为上下文引用计数器)可以如下所示递减,或者当前上下文可以通过计数器被引用num_context_reuse_minus1+1那么多次,然后从上下文缓冲器被删除。即,每次在后续切片中使用当前上下文时,计数器递减1。然后,当计数器达到0时,从上下文缓冲器删除该上下文。
NumContextReuse=num_context_reuse_minus1+1
If(subsequent_slice_id==slice_id)
NumContextReuse=NumContextReuse-1
当dependent_neighbour_enabled_flag字段等于1时,根据实施方式的几何数据单元头还可以包括字段num_neighbour_slice,当dependent_neighbour_enabled_flag等于0时还可以包括字段neighbor_occupancy_type。
当引用切片之外的节点信息时,字段num_neighbor_slice可以指示包括对应节点的切片的数量。
当不引用切片之外的节点信息时,字段neighbor_occupancy_type可以定义针对对应节点进行的假设。例如,neighbor_occupancy_type等于0可以指示不存在对应邻居节点。neighbor_occupancy_type等于1可以指示所有邻居节点均被占用。neighbor_occupancy_type等于2可以指示邻居节点是非占用节点。neighbor_occupancy_type等于3可以指示使用关于切片中相对于中心节点对称的节点的占用信息。
根据实施方式的几何数据单元头包括被重复num_neighbor_slice的值那么多次的迭代语句。在实施方式中,i被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句,直至i的值变得等于num_neighbor_slice字段的值。迭代语句可以包括字段neighbor_slice_id。
当引用切片之外的节点信息时,字段neighbor_slice_id可以指定用于标识包括对应节点的第i切片的标识符。
根据实施方式,图36的切片相关信息和/或缓冲控制相关信息可以被包括在图35的几何切片头(即,几何数据单元头)中的任何位置。
图37示出根据本公开的几何切片数据(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时,经受trisoup几何编码的几何比特流通过geometry_trisoup_data()发送。
图38示出根据本公开的attribute_slice_bitstream()的语法结构的实施方式。
根据实施方式,属性切片比特流被称为属性数据单元,属性切片头被称为属性数据单元头,属性切片数据被称为属性数据单元数据。根据实施方式的属性切片比特流(attribute_slice_bitstream())可以包括属性切片头(attribute_slice_header())和属性切片数据(attribute_slice_data())。
图39示出根据本公开的属性切片头(attribute_slice_header())的语法结构的实施方式。
根据实施方式的属性切片头(attribute_slice_header())可以包括ash_attr_parameter_set_id字段、ash_attr_sps_attr_idx字段、ash_attr_geom_slice_id字段、ash_attr_layer_qp_delta_present_flag字段和ash_attr_region_qp_delta_present_flag字段。
当APS的aps_slice_qp_delta_present_flag字段的值为“真”(例如,1)时,attribute_slice_header()还可以包括ash_attr_qp_delta_luma字段,并且当attribute_dimension_minus1[ash_attr_sps_attr_idx]字段的值大于0时,attribute_slice_header()还可以包括ash_attr_qp_delta_chroma字段。
ash_attr_parameter_set_id字段指定当前活动APS的aps_attr_parameter_set_id字段的值。
ash_attr_sps_attr_idx字段指定当前活动SPS中的属性集。
ash_attr_geom_slice_id字段指定当前几何切片头的gsh_slice_id字段的值。
ash_attr_qp_delta_luma字段指定活动属性参数集中从初始切片qp推导的亮度增量量化参数(qp)。
ash_attr_qp_delta_chroma字段指定活动属性参数集中从初始切片qp推导的色度增量qp。
变量InitialSliceQpY和InitialSliceQpC如下推导。
InitialSliceQpY=aps_attrattr_initial_qp+ash_attr_qp_delta_luma
InitialSliceQpC=aps_attrattr_initial_qp+aps_attr_chroma_qp_offset+
ash_attr_qp_delta_chroma
ash_attr_layer_qp_delta_present_flag字段指示ash_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中。ash_attr_layer_qp_delta_present_flag字段等于0指示ash_attr_layer_qp_delta_luma字段和ash_attr_layer_qp_delta_chroma字段不存在于ASH中。
当ash_attr_layer_qp_delta_present_flag字段的值为真时,属性切片头还可以包括ash_attr_num_layer_qp_minus1字段。
ash_attr_num_layer_qp_minus1加1字段指示用信号通知ash_attr_qp_delta_luma字段和ash_attr_qp_delta_chroma字段的层数。当没有用信号通知ash_attr_num_layer_qp字段时,ash_attr_num_layer_qp字段的值将为0。根据实施方式,指定层数的NumLayerQp可以通过将0与ash_attr_num_layer_qp_minus1字段的值相加来获得(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]
}
当ash_attr_region_qp_delta_present_flag字段的值等于1时,根据实施方式的属性切片头(attribute_slice_header())指示ash_attr_region_qp_delta、区域边界框原点和大小存在于当前属性切片头中。ash_attr_region_qp_delta_present_flag字段等于0指示ash_attr_region_qp_delta、区域边界框原点和大小不存在于当前ASH中。
换言之,当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字段指定从指定的区域的SliceQpY[i]和SliceQpC[i]的增量qp。
根据实施方式,指定区域框增量量化参数的变量RegionboxDeltaQp被设定为等于ash_attr_region_qp_delta字段的值(RegionboxDeltaQp=ash_attr_region_qp_delta)。
图40示出根据实施方式的包括切片相关信息和/或缓冲控制相关信息的属性数据单元头(或称为属性切片头)的语法结构的实施方式。
属性数据单元头可以包括字段slice_id和字段dependent_neighbor_enabled_flag。
slice_id字段指示用于标识对应数据单元(即,切片)的标识符。即,slice_id字段指示用于区分切片或数据单元的指示符,并且可以传送属于切片层的数据单元(或称为切片)的指示符。另选地,slice_id字段可以标识对应切片头以供其它语法元素引用。
例如,dependent_neighbour_enabled_flag等于1可以指示在编码操作中应该使用切片之外的邻居信息。dependent_neighbour_enabled_flag等于0可以指示仅使用内部信息(而不使用切片之外的邻居信息)来估计邻居关系。
当sps_entropy_continuation_enabled_flag的值为假(即,0)时,根据实施方式的属性数据单元头还可以包括字段ash_entropy_continuation_flag。当sps_entropy_continuation_enabled_flag的值为真(即,1)时,属性数据单元头还可以包括字段ash_prev_slice_id。
字段sps_entropy_continuation_enabled_flag被包括在SPS中。当该字段的值为0时,其指定各个切片的初始熵上下文状态是独立的。
例如,ash_entropy_continuation_flag等于1可以指示在当前属性数据单元的熵编码中使用的解析状态依赖于先前属性数据单元的最终解析状态。ash_entropy_continuation_flag等于0可以指示在当前属性数据单元的熵编码中使用的解析状态不依赖于任何先前数据单元。根据实施方式,比特流一致性的要求是当当前属性数据单元是点云帧中的第一数据单元时ash_entropy_continuation_flag等于0。
ash_prev_slice_id指定按比特流顺序的在前属性数据单元的ash_slice_id(或slice_id)的值。
当attr_slice_segmentation_enabled_flag等于1时,属性数据单元头还可以包括字段context_reuse_flag。另外,当context_reuse_flag等于1时,属性数据单元头还可以包括字段num_context_reuse_minus1。
attr_slice_segmentation_enabled_flag等于1指示属性比特流被划分成多个切片并被发送。
例如,context_reuse_flag字段等于1可以指示在至少一个后续切片中使用当前切片的上下文。根据实施方式,当接收装置使用上下文缓冲控制时,当前切片的上下文可以被存储在上下文缓冲器中以用于至少一个后续切片。context_reuse_flag等于0可以指示当前切片的上下文不用于后续切片。
num_context_reuse_minus1加1可以指示当前切片的上下文用于后续切片的次数。
例如,当接收装置使用上下文缓冲控制时,当前切片的上下文可以通过计数器(称为上下文引用计数器)被引用num_context_reuse_minus1+1那么多次,然后从上下文缓冲器被删除。
根据实施方式的属性数据单元头包括被重复num_context_reuse_minus1的值那么多次的迭代语句。在实施方式中,i被初始化为0并且每次执行迭代语句时递增1。重复迭代语句,直至i的值变得等于num_context_reuse_minus1的值。迭代语句可以包括字段subsequent_slice_id。
字段subsequent_slice_id可以指定用于标识使用当前上下文的第i后续切片的标识符。即,字段subsequent_slice_id可以用于指定使用当前切片的上下文的后续切片。
例如,当接收装置使用上下文缓冲控制并且提供通过subsequent_slice_id指定的切片(即,后续切片)时,计数器(或称为上下文引用计数器)可以如下所示递减,或者当前上下文可以通过计数器被引用num_context_reuse_minus1+1那么多次,然后从上下文缓冲器被删除。
NumContextReuse=num_context_reuse_minus1+1
If(subsequent_slice_id==slice_id)
NumContextReuse=NumContextReuse-1
当dependent_neighbour_enabled_flag字段等于1时,根据实施方式的属性数据单元头还可以包括字段num_neighbour_slice,当dependent_neighbour_enabled_flag等于0时,根据实施方式的属性数据单元头还可以包括字段neighbor_occupancy_type。
当引用切片之外的节点信息时,字段num_neighbor_slice可以指示包括对应节点的切片的数量。
当不引用切片之外的节点信息时,字段neighbor_occupancy_type可以定义针对对应节点进行的假设。例如,neighbor_occupancy_type等于0可以指示不存在对应邻居节点。neighbor_occupancy_type等于1可以指示所有邻居节点被占用。neighbor_occupancy_type等于2可以指示邻居节点是非占用节点。neighbor_occupancy_type等于3可以指示使用关于切片中相对于中心节点对称的节点的占用信息。
根据实施方式的属性数据单元头包括被重复num_neighbor_slice的值那么多次的迭代语句。在实施方式中,i被初始化为0并且每次执行迭代语句时递增1。重复迭代语句,直至i的值变得等于num_neighbor_slice字段的值。迭代语句可以包括字段neighbor_slice_id。
当引用切片之外的节点信息时,字段neighbor_slice_id可以指定用于标识包括对应节点的第i切片的标识符。
根据实施方式,图40的切片相关信息和/或缓冲控制相关信息可以被包括在图39的属性切片头(即,属性数据单元头)中的任何位置。
图41示出根据本公开的实施方式的属性切片数据(attribute_slice_data())的语法结构。属性切片数据(attribute_slice_data())可以承载属于对应切片的属性比特流。属性切片数据可以包括关于点云的一部分或全部的属性或属性相关数据。
在图41中的attribute_slice_data()中,dimension=attribute_dimension[ash_attr_sps_attr_idx]表示属性切片头中的ash_attr_sps_attr_idx所标识的属性集的attribute_dimension。attribute_dimension指示构成属性的分量的数量。根据实施方式的属性表示反射率、颜色等。因此,在属性之间分量的数量不同。例如,与颜色对应的属性可以具有三个颜色分量(例如,RGB)。因此,与反射率对应的属性可以是一维属性,与颜色对应的属性可以是三维属性。
根据实施方式的属性可以基于每维度被属性编码。
例如,与反射率对应的属性和与颜色对应的属性可以分别被属性编码。根据实施方式的属性可以被属性编码而与维度无关。例如,与反射率对应的属性和与颜色对应的属性可以被一起属性编码。
在图41中,zerorun指定残差之前的0的数量。
在图41中,i表示属性的第i点值。根据实施方式,在APS中用信号通知字段attr_coding_type和lifting_adaptive_prediction_threshold。
图41的MaxNumPredictors是在点云数据解码操作中使用的变量,并且可以如下基于在APS中用信号通知的lifting_adaptive_prediction_threshold字段的值来获取。
MaxNumPredictors=lifting_max_num_direct_predicots+1
这里,lifting_max_num_direct_predictors指示要用于直接预测的预测器的最大数量。
根据实施方式,predIindex[i]指定对属性的第i点值进行解码的预测器索引(或预测模式)。predIndex[i]的值在0至lifting_max_num_direct_predictors的值的范围内。
图42示出根据实施方式的点云数据发送装置的结构。
图42的发送装置对应于图1的发送装置10000、图1的点云视频编码器10002、图1的发送器10003、图2的获取20000/编码20001/传输20002、图4的编码器、图12的发送装置、图14的装置、图20的编码器等。图42的各个组件可以对应于硬件、软件、处理器和/或其组合。
根据实施方式的编码器和发送器如下所述操作。
当点云数据输入到发送装置时,几何编码器60010对点云数据中的位置信息(几何数据(例如,XYZ坐标、phi-theta坐标等)进行编码,并且属性编码器60020对点云数据中的属性数据(例如,颜色、反射率、强度、灰度、不透明度、介质、材料、光泽度等)进行编码。
压缩(编码)的数据被划分成用于传输的单元。数据可被子比特流生成器60040根据分层结构信息划分成适合于在比特流单元中选择必要信息的单元,然后可被打包。
根据实施方式,从几何编码器60010输出的几何比特流和/或从属性编码器60020输出的属性比特流输入到子比特流生成器60040。子比特流生成器60040通过基于从元数据生成器60030输出的切片相关信息和/或缓冲控制相关信息将各个比特流分段为多个子比特流来配置多个切片。对于各个比特流的分段和切片的配置的细节,将参考上述图17至图24,并且将省略细节的描述。根据实施方式,切片相关信息包括分层结构信息。切片相关信息指示参考图17至图24描述的比特流的配置、排序和选择以及切片配置,并且表示图27至图41所示的信息等。
根据实施方式,包括分层结构信息的切片相关信息和/或缓冲控制相关信息可以由元数据生成器60030生成。
切片相关信息和/或缓冲控制相关信息可以被包括在要发送到接收装置的SPS、GPS、TPS、APS、几何切片头、属性切片头和SEI消息中的至少一个中。切片相关信息和/或缓冲控制相关信息可以包括字段sps_entropy_continuation_enabled_flag、geom_slice_segmentation_enabled_flag、attr_slice_segmentation_enabled_flag、slice_id、gsh_entropy_continuation_flag、gsh_prev_slice_id、context_reuse_flag、num_context_reuse_minus1、subsequent_slice_id、dependent_neighbour_enabled_flag、num_neighbour_slice、neighbour_slice_id、neighbour_occupancy_type、ash_continuation_flag、ash_prev_slice_id中的一个或更多个。对于上述各个字段的细节,将参考图27至图41的描述,并且将省略字段的详细描述。
在另一实施方式中,子比特流生成器60040可以对各个比特流进行分段,生成指示分段处理的切片相关信息(或分层结构信息),并且将切片相关信息发送到元数据生成器60030。元数据生成器60030可以从编码器60010和60020接收指示几何编码处理和属性编码处理的信息,并且生成元数据(参数)。
根据实施方式,子比特流生成器60040基于元数据生成器60030所提供的切片相关信息和/或缓冲控制相关信息来执行切片分段操作,以便通过多个切片发送从几何比特流分段的多个子比特流。另外,子比特流生成器60040基于元数据生成器60030所提供的切片相关信息和/或缓冲控制相关信息来执行切片分段操作,以便通过多个切片发送从属性比特流分段的多个子比特流。即,几何比特流(或几何数据)和属性比特流(或属性数据)中的每一个可以通过多个切片来发送。因此,接收装置可以执行选择性解码或并行解码。
根据实施方式,可以首先发送包含几何数据的多个切片,然后可以发送包含属性数据的多个切片。对于细节,将参考图23的描述,并且本文中将省略细节的描述。
根据其它实施方式,几何数据的切片和属性数据的切片可以根据层来发送。对于细节,将参考图24的描述,并且本文中将省略细节的描述。
根据实施方式,多个切片可以彼此独立,或者可以彼此具有依赖关系。根据实施方式,对于基于八叉树的几何编码,可以通过顺序地且累积地使用关于先前节点的上下文信息来增强压缩性能。另外,在邻居搜索和帧内预测中,首先使用关于邻居(或外围)节点的解码的占用信息。在这种情况下,可以使用关于先前切片的信息。另选地,关于在前切片的信息可以用于并行处理。在这种情况下,出现切片之间的依赖性。在另一实施方式中,至少一个切片可以是独立的而与另一切片无关。对于具有依赖性的切片和/或独立切片的细节,将参考图20至图25的描述,并且本文中将省略细节的描述。
根据实施方式,当属于各个切片的数据(例如,几何数据或属性数据)由编码器编码时,为各个切片生成上下文。在这方面,当连续地使用上下文时,有必要控制接收装置的上下文缓冲器。根据实施方式,已参考图25和图26描述了关于上下文缓冲控制的细节,因此将省略其描述。另外,已参考图27至图41描述了用于接收装置的上下文缓冲器的控制的信令信息(例如,切片相关信息和/或缓冲控制相关信息),因此本文中将省略其描述。
复用器60060将从子比特流生成器60040输出的多个段和元数据生成器60050所生成的信令信息复用,并且将复用的数据输出到发送器60070。可以针对各个层执行复用器60050的复用。对于元数据生成器60030所生成的切片相关信息和/或缓冲控制相关信息的细节,参考图27至图41。
根据实施方式的发送器60060发送由复用器60050复用的数据(或切片中的比特流)。根据实施方式的比特流可以被封装在文件或段(例如,流传输段)中并经由诸如广播网络和/或宽带网络的各种网络发送。尽管图中未示出,发送器60060可以包括被配置为执行封装操作的封装器(或封装模块)。
图43示出根据实施方式的点云接收装置的结构。
图43的根据实施方式的接收装置对应于接收装置10004、图1的接收器10005、图1的点云视频解码器10006、图2的传输20002/解码20003/渲染20004、图10的解码器、图11的解码器、图13的接收装置、图14的装置等。图43的各个组件可以对应于硬件、软件、处理器和/或其组合。
根据实施方式的解码器/接收器如下操作。
当比特流输入到接收装置的接收器65010时,接收器65010将比特流输出到解复用器65020,并且解复用器65020将比特流划分成包括几何信息和属性信息的比特流、包括切片相关信息和/或缓冲控制相关信息的信令信息。
包括划分的几何信息和属性信息的比特流被输出到子比特流分类器65040,并且划分的信令信息被输出到元数据解析器65030。
子比特流分类器65040基于一个或更多个切片中的每一个的头中的信息和/或切片相关信息和/或缓冲控制相关信息来处理包括几何信息和属性信息的比特流。然后,它将包括几何信息的比特流(或子比特流)输出到几何解码器65060,并将包括属性信息的比特流(或子比特流)输出到属性解码器65080。
另选地,在此过程中,可以选择接收器所需的层。几何数据和属性数据可以分别由几何解码器65060和属性解码器65080根据数据的特性从分类的比特流重构,然后可以被转换为用于由渲染器65090最终输出的格式。
根据实施方式,子比特流分类器可以基于元数据解析器65030所获取的元数据(例如,切片相关信息和/或缓冲控制相关信息)来分类/选择比特流。
切片相关信息和/或缓冲控制相关信息可以通过SPS、GPS、TPS、APS、几何切片头、属性切片头或SEI消息中的至少一个来接收。切片相关信息和/或缓冲控制相关信息可以包括字段sps_entropy_continuation_enabled_flag、geom_slice_segmentation_enabled_flag、attr_slice_segmentation_enabled_flag、slice_id、gsh_entropy_continuation_flag、gsh_prev_slice_id、context_reuse_flag、num_context_reuse_minus1、subsequent_slice_id、dependent_neighbour_enabled_flag、num_neighbour_slice、neighbour_slice_id、neighbour_occupancy_type、ash_continuation_flag和ash_prev_slice_id中的一个或更多个。对于上述各个字段的细节,将参考图27至图41的描述,并且将省略字段的详细描述。
根据实施方式,点云数据包括关于各个点的位置(即,几何)信息和诸如颜色/亮度/反射率的属性信息,这些信息被压缩并被发送到接收装置。在这方面,为了允许接收装置根据接收装置的性能或传输速度仅解码或表示点云数据的一部分,发送装置可以将点云数据(或编码的比特流)划分成多个切片。然后,用信号通知多个切片,并且定义切片之间的依赖性。由此,当前切片使用先前切片中生成的信息。在这种情况下,需要控制接收装置的缓冲器。
根据实施方式,几何解码器60060可以基于从元数据解析器65030提供的切片相关信息和/或缓冲控制相关信息来控制几何缓冲器65050。根据实施方式,几何缓冲器65050可以是参考图25和图26描述的上下文缓冲器。例如,当在后续切片中使用当前切片的几何上下文时,当前切片的几何上下文被存储在几何缓冲器65050中并匹配。可以使用存储的信息,直至上下文计数器(例如,N或num_reuse_minus1)变为0或者当接收到匹配的后续切片标识符(slice_id)时。另选地,当如参考图26所描述使用邻居节点信息(例如,dependent_neighbour_enabled_flag==1)时,节点信息可以被存储在几何缓冲器65050中并且在必要时使用。对于几何缓冲器65050的管理(或控制)的细节,将参考图25和图41,并且本文中将省略细节的描述。
根据实施方式,属性解码器60680可以基于从元数据解析器65030提供的切片相关信息和/或缓冲控制相关信息来控制属性缓冲器65070。根据实施方式,属性缓冲器65070可以是参考图25和图26描述的上下文缓冲器。对于属性缓冲器65070的管理(或控制)的细节,将参考图25和图41,并且本文中将省略细节的描述。
如上所述,为了高效管理接收装置的缓冲器(或上下文缓冲器),可以提供信令以指示在后续切片中是否使用关于当前切片的编码信息/节点信息(例如,切片相关信息和/或缓冲控制相关信息),并且可以基于该指示来管理当前切片的上下文在缓冲器中的存储和删除。由此,可以高效地管理接收器的缓冲器。即,即使当发送装置将点云数据划分成多个切片并将其发送时,也可以通过允许使用连续编码信息和/或邻居节点信息来增强压缩效率。另外,由于接收装置被允许识别在后续切片中是否使用关于当前切片的编码信息/节点信息(例如,切片相关信息和/或缓冲控制相关信息),所以可以高效地执行缓冲管理。例如,接收装置可以通过预先确定在后续切片中是否使用当前切片的上下文来高效地管理资源。
上述每个部分、模块或单元可以是执行存储在存储器(或存储单元)中的连续过程的软件、处理器或硬件部分。在以上实施方式中描述的每个步骤可以由处理器、软件或硬件部分执行。在以上实施方式中描述的每个模块/块/单元可以作为处理器、软件或硬件操作。另外,实施方式提出的方法可以被作为代码执行。该代码可以被写到处理器可读存储介质上,因此,供被由设备提供的处理器读取。
在本说明书中,当部分“包括”或“包含”元件时,这意味着,该部分还包括或包括另一个元件,除非另外提到。另外,说明书中公开的术语“...模块(或单元)”意指用于处理至少一个功能或操作的单元,并且可以由硬件、软件或硬件与软件的组合来实现。
尽管为了简便起见参考附图中的每一个说明了实施方式,但可以通过合并在附图中例示的实施方式来设计新的实施方式。如果本领域的技术人员设计出记录有用于执行以上描述中提到的实施方式的程序的计算机可读的记录介质,则该记录介质可以落入所附权利要求书及其等同物的范围内。
设备和方法可以不受上述实施方式的配置和方法的限制。上述实施方式可以通过完全或部分地相互选择性组合来配置,以使得能够进行各种修改。
尽管已经参考附图描述了优选实施方式,但本领域技术人员将领会,在不脱离在所附权利要求书中描述的本公开的精神或范围的情况下,可以在实施方式中进行各种修改和变形。这种修改将不被独立于实施方式的技术思路或观点来理解。
实施方式的设备的各种元件可以由硬件、软件、固件或其组合来实现。实施方式中的各种元件可以由单个芯片(例如,单个硬件电路)来实现。根据实施方式,根据实施方式的部件可以被分别实现为单独的芯片。根据实施方式,根据实施方式的设备的至少一个或更多个部件可以包括能够执行一个或更多个程序的一个或更多个处理器。所述一个或更多个程序可以执行根据实施方式的操作/方法中的任一个或更多个,或包括用于执行其的指令。用于执行根据实施方式的设备的方法/操作的可执行指令可以被存储在非暂态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.根据权利要求2所述的方法,
其中,所述信令数据包括切片相关信息和缓冲控制相关信息。
4.根据权利要求3所述的方法,
其中,所述缓冲控制相关信息至少包括用于指示当前切片的上下文是否被至少一个其它切片引用的信息,或者当所述当前切片的所述上下文被所述至少一个其它切片引用时用于标识所述当前切片的所述上下文被引用的次数的信息。
5.一种用于发送点云数据的设备,该设备包括:
几何编码器,该几何编码器被配置为对所述点云数据的几何数据进行编码;
属性编码器,该属性编码器被配置为基于所述几何数据对所述点云数据的属性数据进行编码;以及
发送器,该发送器被配置为发送编码的几何数据、编码的属性数据和信令数据。
6.根据权利要求5所述的设备,
其中,所述编码的几何数据被分段为多个切片,
其中,所述多个切片中的一个的上下文被至少一个其它切片引用。
7.根据权利要求6所述的设备,
其中,所述信令数据包括切片相关信息和缓冲控制相关信息。
8.根据权利要求7所述的设备,其中,所述缓冲控制相关信息至少包括用于指示当前切片的上下文是否被至少一个其它切片引用的信息,或者当所述当前切片的所述上下文被所述至少一个其它切片引用时用于标识所述当前切片的所述上下文被引用的次数的信息。
9.一种接收点云数据的方法,该方法包括以下步骤:
接收几何数据、属性数据和信令数据;
基于所述信令数据对所述几何数据进行解码;
基于所述信令数据和解码的几何数据对所述属性数据进行解码;以及
基于所述信令数据来渲染解码的点云数据。
10.根据权利要求9所述的方法,
其中,所述几何数据被包括在多个切片中,
其中,所述多个切片中的一个的上下文被至少一个其它切片引用。
11.根据权利要求10所述的方法,
其中,所述信令数据包括切片相关信息和缓冲控制相关信息。
12.根据权利要求11所述的方法,
其中,所述缓冲控制相关信息至少包括用于指示当前切片的上下文是否被至少一个其它切片引用的信息,或者当所述当前切片的所述上下文被所述至少一个其它切片引用时用于标识所述当前切片的所述上下文被引用的次数的信息。
13.根据权利要求11所述的方法,其中,对所述几何数据进行解码的步骤包括以下步骤:
基于所述切片相关信息和所述缓冲控制相关信息来控制当前切片的上下文的缓冲存储。
14.根据权利要求13所述的方法,其中,对所述几何数据进行解码的步骤包括以下步骤:
当基于所述切片相关信息和所述缓冲控制相关信息确定所述当前切片的所述上下文未被所述至少一个其它切片引用时,从缓冲器删除所述当前切片的所述上下文。
15.根据权利要求13所述的方法,其中,对所述几何数据进行解码的步骤包括以下步骤:
当基于所述切片相关信息和所述缓冲控制相关信息确定所述当前切片的所述上下文被所述至少一个其它切片引用时,在所述当前切片的上下文被所述至少一个其它切片引用之后,从缓冲器删除所述当前切片的所述上下文。
CN202180074577.5A 2020-11-05 2021-11-05 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 Pending CN116458162A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20200146596 2020-11-05
KR10-2020-0146596 2020-11-05
PCT/KR2021/016037 WO2022098152A1 (ko) 2020-11-05 2021-11-05 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Publications (1)

Publication Number Publication Date
CN116458162A true CN116458162A (zh) 2023-07-18

Family

ID=81457286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180074577.5A Pending CN116458162A (zh) 2020-11-05 2021-11-05 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法

Country Status (5)

Country Link
US (2) US11765387B2 (zh)
EP (1) EP4243413A1 (zh)
JP (1) JP2023548393A (zh)
CN (1) CN116458162A (zh)
WO (1) WO2022098152A1 (zh)

Families Citing this family (3)

* 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
JP2023548393A (ja) * 2020-11-05 2023-11-16 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
US11611775B2 (en) * 2021-01-19 2023-03-21 Tencent America LLC Method and apparatus for point cloud coding

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1365592A3 (en) * 2002-05-20 2005-02-09 Broadcom Corporation System, method, and apparatus for decoding flexibly ordered macroblocks
US7813431B2 (en) * 2002-05-20 2010-10-12 Broadcom Corporation System, method, and apparatus for decoding flexibility ordered macroblocks
US20160234498A1 (en) * 2015-02-05 2016-08-11 Sharp Laboratories Of America, Inc. Methods and systems for palette table coding
US10148961B2 (en) * 2015-05-29 2018-12-04 Qualcomm Incorporated Arithmetic coder with multiple window sizes
EP3516874A4 (en) * 2016-12-14 2019-08-14 SZ DJI Technology Co., Ltd. SYSTEM AND METHOD FOR SUPPORTING VIDEOBITSTREAM SWITCHING
WO2020005758A1 (en) * 2018-06-29 2020-01-02 Interdigital Vc Holdings, Inc. Wavefront parallel processing of luma and chroma components
WO2020011717A1 (en) * 2018-07-11 2020-01-16 Telefonaktiebolaget Lm Ericsson (Publ) Video based point cloud codec bitstream specification
KR102660514B1 (ko) * 2018-07-13 2024-04-24 한국전자통신연구원 스케일러블 포인트 클라우드 부호화/복호화 방법 및 장치
WO2020059611A1 (ja) * 2018-09-20 2020-03-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11615557B2 (en) * 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
JP2023548393A (ja) * 2020-11-05 2023-11-16 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法

Also Published As

Publication number Publication date
US11765387B2 (en) 2023-09-19
EP4243413A1 (en) 2023-09-13
JP2023548393A (ja) 2023-11-16
US20220174317A1 (en) 2022-06-02
WO2022098152A1 (ko) 2022-05-12
US20230379499A1 (en) 2023-11-23

Similar Documents

Publication Publication Date Title
CN114503571B (zh) 点云数据发送装置和方法、点云数据接收装置和方法
US11882303B2 (en) Apparatus and method for processing point cloud data
CN114616827A (zh) 点云数据发送装置及方法、点云数据接收装置及方法
CN114503586A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN114930853A (zh) 点云数据发送装置、发送方法、处理装置和处理方法
US11765387B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN114073092A (zh) 用于处理点云数据的设备和方法
US20220230360A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
EP4161073A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20240137578A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
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
US12003769B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception 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
CN117730539A (zh) 点云数据发送设备和方法以及点云数据接收设备和方法
CN116438799A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN116965019A (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN114402624A (zh) 点云数据处理设备和方法
CN117157983A (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备以及点云数据接收方法
CN118202655A (zh) 发送点云数据的装置、发送点云数据的方法、接收点云数据的装置和接收点云数据的方法
CA3184622A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method
CN118202657A (zh) 点云数据发送装置和方法以及点云数据接收装置和方法
CN118020304A (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备以及点云数据接收方法

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