CN118556397A - 点云数据发送方法、点云数据发送装置、点云数据接收方法及点云数据接收装置 - Google Patents
点云数据发送方法、点云数据发送装置、点云数据接收方法及点云数据接收装置 Download PDFInfo
- Publication number
- CN118556397A CN118556397A CN202380016900.2A CN202380016900A CN118556397A CN 118556397 A CN118556397 A CN 118556397A CN 202380016900 A CN202380016900 A CN 202380016900A CN 118556397 A CN118556397 A CN 118556397A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- cloud data
- subgroup
- group
- information
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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 bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
根据实施方式的点云数据发送方法可以包括以下步骤:对点云数据进行编码;以及发送包括点云数据的比特流。另外,根据实施方式的点云数据发送装置可以包括:用于对点云数据进行编码的编码器;以及用于发送包括点云数据的比特流的发送器。
Description
技术领域
实施方式涉及一种用于处理点云内容的方法和装置。
背景技术
点云内容是由点云表示的内容,点云是属于表示三维空间的坐标系的点集合。点云内容可表达在三个维度配置的媒体,并且用于提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)和自驾驶服务的各种服务。然而,需要数万至数十万的点数据来表示点云内容。因此,需要一种高效地处理大量点数据的方法。
发明内容
技术问题
实施方式提供了一种用于高效地处理点云数据的装置和方法。实施方式提供了一种用于解决时延和编码/解码复杂度的点云数据处理方法和装置。
实施方式的技术范围不限于上述技术目的,可扩展至本领域技术人员基于本文所公开的整个内容可推断出的其它技术目的。
技术方案
为了实现这些目的和其它优点,并且根据本公开的目的,如本文中实现和广泛描述的,一种发送点云数据的方法可以包括:对点云数据进行编码;以及发送包含点云数据的比特流。在本公开的另一方面,一种接收点云数据的方法可以包括:接收包含点云数据的比特流;以及对点云数据进行解码。
有益效果
根据实施方式的装置和方法可高效地处理点云数据。
根据实施方式的装置和方法可提供高质量的点云服务。
根据实施方式的装置和方法可提供点云内容以用于提供诸如VR服务和自驾驶服务的通用服务。
附图说明
附图被包括以提供本公开的进一步理解,并且被并入本申请中并构成本申请的一部分,附图示出本公开的实施方式并与描述一起用于说明本公开的原理。为了更好地理解下面描述的各种实施方式,应该结合附图参考以下实施方式的描述。贯穿附图将使用相同的标号来表示相同或相似的部分。
附图被包括以提供本公开的进一步理解,并且被并入本申请中并构成本申请的一部分,附图示出本公开的实施方式并与描述一起用于说明本公开的原理。为了更好地理解下面描述的各种实施方式,应该结合附图参考以下实施方式的描述。贯穿附图将使用相同的标号来表示相同或相似的部分。在图中:
图1示出了根据实施方式的示例性点云内容提供系统。
图2是示出了根据实施方式的点云内容提供操作的框图。
图3示出了根据实施方式的捕获点云视频的示例性过程。
图4示出了根据实施方式的示例性点云编码器。
图5示出了根据实施方式的体素的示例。
图6示出了根据实施方式的八叉树和占用代码的示例。
图7示出了根据实施方式的邻居节点图案的示例。
图8示出了根据实施方式的各个LOD中的点配置的示例。
图9示出了根据实施方式的各个LOD中的点配置的示例。
图10示出了根据实施方式的点云解码器。
图11示出了根据实施方式的点云解码器。
图12示出了根据实施方式的发送装置。
图13示出了根据实施方式的接收装置。
图14示出了根据实施方式的可与点云数据发送/接收方法/装置结合操作的示例性结构。
图15示出了根据实施方式的对点云数据进行编码、发送和解码的过程;
图16示出了根据实施方式的基于层的点云数据配置以及几何比特流和属性比特流的结构;
图17示出了根据实施方式的比特流的配置;
图18示出了根据实施方式的比特流排序方法;
图19示出了根据实施方式的选择几何数据和属性数据的方法;
图20示出了根据实施方式的配置包括点云数据的切片的方法;
图21示出了根据实施方式的几何编码层结构;
图22示出了根据实施方式的层组和子组的结构;
图23示出了根据实施方式的基于层组的点云数据的表示;
图24示出了根据实施方式的用于发送和接收点云数据的装置/方法;
图25示出了根据实施方式的编码方法;
图26示出了根据实施方式的解码方法;
图27示出了根据实施方式的比特流配置;
图28a和图28b示出了根据实施方式的序列参数集的语法;
图29示出了根据实施方式的从属几何数据单元报头的语法;
图30示出了根据实施方式的层组结构清单(inventory)的语法;
图31示出了根据实施方式的点云数据发送/接收装置/方法;
图32示出了根据实施方式的点云数据发送/接收装置/方法;
图33示出了根据实施方式的点云数据发送/接收装置/方法;
图34示出了根据实施方式的发送点云数据的方法;以及
图35示出了根据实施方式的接收点云数据的方法。
具体实施方式
现在将详细参考本公开的优选实施方式,其示例示出于附图中。下面将参照附图给出的详细描述旨在说明本公开的示例性实施方式,而非示出可根据本公开实现的仅有实施方式。以下详细描述包括具体细节以便提供本公开的彻底理解。然而,对于本领域技术人员而言将显而易见的是,本公开可在没有这些具体细节的情况下实践。
尽管本公开中使用的大多数术语选自本领域中广泛使用的通用术语,但是一些术语由申请人任意选择并且在以下描述中根据需要详细说明其含义。因此,本公开应该基于术语的预期含义而非其简单名称或含义来理解。
图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。根据实施方式的反馈信息可在渲染和/或显示过程中获取。根据实施方式的反馈信息可由包括在接收装置10004中的一个或更多个传感器取得。根据实施方式,反馈信息可由渲染器10007或单独的外部元件(或装置、组件等)取得。图1中的虚线表示发送渲染器10007所取得的反馈信息的过程。点云内容提供系统可基于反馈信息来处理(编码/解码)点云数据。因此,点云视频解码器10006可基于反馈信息来执行解码操作。接收装置10004可将反馈信息发送到发送装置10000。发送装置10000(或点云视频数据编码器10002)可基于反馈信息来执行编码操作。因此,点云内容提供系统可基于反馈信息高效地处理必要数据(例如,与用户的头部位置对应的点云数据)而非处理(编码/解码)整个点云数据,并将点云内容提供给用户。
根据实施方式,发送装置10000可被称为编码器、发送装置、发送器等,接收装置10004可被称为解码器、接收装置、接收器等。
根据实施方式的图1的点云内容提供系统中(通过获取/编码/传输/解码/渲染的一系列过程)处理的点云数据可被称为点云内容数据或点云视频数据。根据实施方式,点云内容数据可用作涵盖与点云数据有关的元数据或信令信息的概念。
图1所示的点云内容提供系统的元件可由硬件、软件、处理器和/或其组合实现。
图2是示出了根据实施方式的点云内容提供操作的框图。
图2的框图示出图1中描述的点云内容提供系统的操作。如上所述,点云内容提供系统可基于点云压缩编码(例如,G-PCC)来处理点云数据。
根据实施方式的点云内容提供系统(例如,点云发送装置10000或点云视频获取器10001)可获取点云视频(20000)。点云视频由属于用于表达3D空间的坐标系的点云表示。根据实施方式的点云视频可包括Ply(Polygon文件格式或Stanford Triangle格式)文件。当点云视频具有一个或更多个帧时,所获取的点云视频可包括一个或更多个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相机等)、投影仪(例如,取得深度信息的红外图案投影仪)、LiDAR等来捕获点云视频。根据实施方式的点云内容提供系统可从深度信息提取由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变换器(RAHT)40008、LOD生成器(生成LOD)40009、提升变换器(提升)40010、系数量化器(量化系数)40011和/或算术编码器(算术编码)40012。
坐标变换器40000、量化器40001、八叉树分析器40002、表面近似分析器40003、算术编码器40004和几何重构器40005可执行几何编码。根据实施方式的几何编码可包括八叉树几何编码、预测树几何编码、直接编码、三联体几何编码和熵编码。直接编码和三联体几何编码选择性地或组合应用。几何编码不限于上述示例。
如图所示,根据实施方式的坐标变换器40000接收位置并将其变换为坐标。例如,位置可被变换为三维空间(例如,由XYZ坐标系表示的三维空间)中的位置信息。根据实施方式的三维空间中的位置信息可被称为几何信息。
根据实施方式的量化器40001将几何量化。例如,量化器40001可基于所有点的最小位置值(例如,X、Y和Z轴中的每一个上的最小值)来将点量化。量化器40001执行量化操作:将最小位置值与各个点的位置值之间的差乘以预设量化缩放值,然后通过对通过乘法获得的值进行舍入来寻找最近整数值。因此,一个或更多个点可具有相同的量化位置(或位置值)。根据实施方式的量化器40001基于量化位置执行体素化以重构量化点。如像素(包含2D图像/视频信息的最小单元)的情况中一样,根据实施方式的点云内容(或3D点云视频)的点可包括在一个或更多个体素中。作为体积和像素的复合体,术语体素是指当基于表示3D空间的轴(例如,X轴、Y轴和Z轴)将3D空间划分成单元(单位=1.0)时生成的3D立方空间。量化器40001可使3D空间中的点组与体素匹配。根据实施方式,一个体素可仅包括一个点。根据实施方式,一个体素可包括一个或更多个点。为了将一个体素表示为一个点,体素的中心的位置可基于包括在体素中的一个或更多个点的位置来设定。在这种情况下,包括在一个体素中的所有位置的属性可被组合并指派给体素。
根据实施方式的八叉树分析器40002执行八叉树几何编码(或八叉树编码)以按八叉树结构呈现体素。八叉树结构表示基于八进制树结构与体素匹配的点。
根据实施方式的表面近似分析器40003可分析并近似八叉树。根据实施方式的八叉树分析和近似是分析包含多个点的区域以高效地提供八叉树和体素化的过程。
根据实施方式的算术编码器40004对八叉树和/或近似八叉树执行熵编码。例如,编码方案包括算术编码。作为编码结果,生成几何比特流。
颜色变换器40006、属性变换器40007、RAHT变换器40008、LOD生成器40009、提升变换器40010、系数量化器40011和/或算术编码器40012执行属性编码。如上所述,一个点可具有一个或更多个属性。根据实施方式的属性编码同样应用于一个点所具有的属性。然而,当属性(例如,颜色)包括一个或更多个元素时,对各个元素独立地应用属性编码。根据实施方式的属性编码包括颜色变换编码、属性变换编码、区域自适应分层变换(RAHT)编码、基于插值的分层最近邻居预测(预测变换)编码以及具有更新/提升步骤的基于插值的分层最近邻居预测(提升变换)编码。根据点云内容,可选择性地使用上述RAHT编码、预测变换编码和提升变换编码,或者可使用一个或更多个编码方案的组合。根据实施方式的属性编码不限于上述示例。
根据实施方式的颜色变换器40006执行变换包括在属性中的颜色值(或纹理)的颜色变换编码。例如,颜色变换器40006可变换颜色信息的格式(例如,从RGB到YCbCr)。可选地,可根据包括在属性中的颜色值来应用根据实施方式的颜色变换器40006的操作。
根据实施方式的几何重构器40005重构(解压缩)八叉树和/或近似八叉树。几何重构器40005基于分析点分布的结果来重构八叉树/体素。重构的八叉树/体素可被称为重构的几何(恢复的几何)。
根据实施方式的属性变换器40007执行属性变换以基于重构的几何和/或不执行几何编码的位置来变换属性。如上所述,由于属性依赖于几何,因此,属性变换器40007可基于重构的几何信息来变换属性。例如,基于包括在体素中的点的位置值,属性变换器40007可变换该位置处的点的属性。如上所述,当基于包括在体素中的一个或更多个点的位置来设定体素的中心位置时,属性变换器40007变换一个或更多个点的属性。当执行三联体几何编码时,属性变换器40007可基于三联体几何编码来变换属性。
属性变换器40007可通过计算距各个体素的中心位置(或位置值)特定位置/半径内的邻近点的属性或属性值(例如,各个点的颜色或反射率)的平均来执行属性变换。属性变换器40007可在计算平均时根据从中心到各个点的距离来应用权重。因此,各个体素具有位置和计算的属性(或属性值)。
属性变换器40007可基于K-D树或莫顿码(莫顿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表示八叉树的深度。d的值在下式中确定。在下式中,(xint n,yint n,zint n)表示量化的点的位置(或位置值)。
如图6的上部的中间所示,整个3D空间可根据分区被划分成八个空间。各个划分的空间由具有六个面的立方体表示。如图6的右上部所示,八个空间中的每一个基于坐标系的轴(例如,X轴、Y轴和Z轴)再次划分。因此,各个空间被划分成八个更小的空间。所划分的更小的空间也由具有六个面的立方体表示。应用该分割方案,直至八叉树的叶节点变为体素。
图6的下部示出八叉树占用代码。生成八叉树的占用代码以指示通过划分一个空间而生成的八个划分的空间中的每一个是否包含至少一个点。因此,单个占用代码由八个子节点表示。各个子节点表示划分的空间的占用,并且子节点具有1比特的值。因此,占用代码被表示为8比特代码。即,当与子节点对应的空间中包含至少一个点时,节点被指派值1。当与子节点对应的空间中不包含点(空间为空)时,节点被指派值0。由于图6所示的占用代码为00100001,因此,指示与八个子节点当中的第三子节点和第八子节点对应的空间各自包含至少一个点。如图所示,第三子节点和第八子节点中的每一个具有八个子节点,并且子节点由8比特占用代码表示。附图示出第三子节点的占用代码为10000111,并且第八子节点的占用代码为01001111。根据实施方式的点云编码器(例如,算术编码器40004)可对占用代码执行熵编码。为了增加压缩效率,点云编码器可对占用代码执行帧内/帧间编码。根据实施方式的接收装置(例如,接收装置10004或点云视频解码器10006)基于占用代码来重构八叉树。
根据实施方式的点云编码器(例如,图4的点云编码器或八叉树分析器40002)可执行体素化和八叉树编码以存储点位置。然而,点并不总是在3D空间中均匀分布,因此可能有存在较少点的特定区域。因此,对整个3D空间执行体素化是低效的。例如,当特定区域包含很少点时,在该特定区域中不需要执行体素化。
因此,对于上述特定区域(或八叉树的叶节点以外的节点),根据实施方式的点云编码器可跳过体素化并执行直接编码以直接对包括在特定区域中的点位置进行编码。根据实施方式的直接编码点的坐标被称为直接编码模式(DCM)。根据实施方式的点云编码器还可基于表面模型执行三联体几何编码,其要基于体素来重构特定区域(或节点)中的点位置。三联体几何编码是将对象表示为一系列三角形网格的几何编码。因此,点云解码器可从网格表面生成点云。根据实施方式的直接编码和三联体几何编码可选择性地执行。另外,根据实施方式的直接编码和三联体几何编码可与八叉树几何编码(或八叉树编码)组合执行。
为了执行直接编码,应该启用使用直接模式以应用直接编码的选项。要应用直接编码的节点不是叶节点,在特定节点内应该存在小于阈值的点。另外,要应用直接编码的点的总数不应超过预设阈值。当满足上述条件时,根据实施方式的点云编码器(或算术编码器40004)可对点位置(或位置值)执行熵编码。
根据实施方式的点云编码器(例如,表面近似分析器40003)可确定八叉树的特定级别(小于八叉树的深度d的级别),并且可从该级别开始使用表面模型以执行三联体几何编码,以基于体素来重构节点区域中的点位置(三联体模式)。根据实施方式的点云编码器可指定要应用三联体几何编码的级别。例如,当特定级别等于八叉树的深度时,点云编码器不在三联体模式下操作。换言之,仅当指定的级别小于八叉树的深度值时,根据实施方式的点云编码器才可在三联体模式下操作。根据实施方式的指定级别的节点的3D立方区域被称为块。一个块可包括一个或更多个体素。块或体素可对应于方块。几何被表示为各个块内的表面。根据实施方式的表面可与块的各条边相交至多一次。
一个块具有12条边,因此一个块中存在至少12个交点。各个交点被称为顶点。当共享边的所有块当中存在与边相邻的至少一个占用体素时,检测沿着边存在的顶点。根据实施方式的占用体素是指包含点的体素。沿着边检测到的顶点位置是沿着共享边的所有块当中与边相邻的所有体素的边的平均位置。
一旦检测到顶点,根据实施方式的点云编码器就可对边的起点(x,y,z)、边的方向向量(Δx,Δy,Δz)和顶点位置值(边内的相对位置值)执行熵编码。当应用三联体几何编码时,根据实施方式的点云编码器(例如,几何重构器40005)可通过执行三角形重构、上采样和体素化过程来生成恢复的几何(重构的几何)。
位于块的边处的顶点确定穿过块的表面。根据实施方式的表面是非平面多边形。在三角形重构过程中,基于边的起点、边的方向向量和顶点的位置值来重构由三角形表示的表面。三角形重构过程这样执行:i)计算各个顶点的质心值,ii)从各个顶点值减去中心值,并且iii)估计通过减法获得的值的平方和。
RRR
估计和的最小值,并且根据具有最小值的轴执行投影过程。例如,当元素x最小时,各个顶点相对于块的中心投影在x轴上,并且投影在(y,z)平面上。当通过(y,z)平面上的投影获得的值为(ai,bi)时,通过atan2(bi,ai)估计θ的值,并且基于θ的值对顶点进行排序。下表示出了根据顶点数量创建三角形的顶点组合。顶点从1至n排序。下表示出对于四个顶点,可根据顶点组合构造两个三角形。第一个三角形可由排序的顶点当中的顶点1、2和3组成,第二个三角形可由排序的顶点当中的顶点3、4和1组成。
从按1,…,n排序的顶点形成的三角形
n三角形
3(1,2,3)
4(1,2,3),(3,4,1)
5(1,2,3),(3,4,5),(5,1,3)
6(1,2,3),(3,4,5),(5,6,1),(1,3,5)
7(1,2,3),(3,4,5),(5,6,7),(7,1,3),(3,5,7)
8(1,2,3),(3,4,5),(5,6,7),(7,8,1),(1,3,5),(5,7,1)
9(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,1,3),(3,5,7),(7,9,3)
10(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,1),(1,3,5),(5,7,9),(9,1,5)
11(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,11),(11,1,3),(3,5,7),(7,9,11),(11,3,7)
12(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,11),(11,12,1),(1,3,5),(5,7,9),(9,11,1),(1,5,9)
执行上采样过程以沿着三角形的边在中间添加点,并且执行体素化。所添加的点基于上采样因子和块的宽度来生成。添加的点被称为细化顶点。根据实施方式的点云编码器可将细化顶点体素化。另外,点云编码器可基于体素化的位置(或位置值)来执行属性编码。
图7示出了根据实施方式的邻居节点图案的示例。
为了增加点云视频的压缩效率,根据实施方式的点云编码器可基于上下文自适应算术编码来执行熵编码。
如参照图1至图6所描述的,点云内容提供系统或点云编码器(例如,点云视频编码器10002、图4的点云编码器或算术编码器40004)可立即对占用代码执行熵编码。另外,点云内容提供系统或点云编码器可基于当前节点的占用代码和邻近节点的占用来执行熵编码(帧内编码),或者基于先前帧的占用代码执行熵编码(帧间编码)。根据实施方式的帧表示同时生成的点云视频的集合。根据实施方式的帧内编码/帧间编码的压缩效率可取决于所参考的邻近节点的数量。当比特增加时,运算变得复杂,但是编码可偏向一侧,这可增加压缩效率。例如,当给出3比特上下文时,需要使用23=8种方法来执行编码。为编码划分的部分影响实现复杂度。因此,有必要满足适当级别的压缩效率和复杂度。
图7示出基于邻居节点的占用来获得占用图案的过程。根据实施方式的点云编码器确定八叉树的各个节点的邻居节点的占用并且获得邻居图案的值。邻居节点图案用于推断节点的占用图案。图7的上部示出与节点对应的立方体(位于中间的立方体)以及与该立方体共享至少一个面的六个立方体(邻居节点)。图中所示的节点是相同深度的节点。图中所示的数字分别表示与六个节点关联的权重(1、2、4、8、16和32)。根据邻近节点的位置依次指派权重。
图7的下部示出邻居节点图案值。邻居节点图案值是乘以占用邻居节点(具有点的邻居节点)的权重的值之和。因此,邻居节点图案值为0至63。当邻居节点图案值为0时,指示节点的邻居节点当中不存在具有点的节点(无占用节点)。当邻居节点图案值为63时,指示所有邻居节点均是占用节点。如图所示,由于指派有权重1、2、4和8的邻居节点是占用节点,因此,邻居节点图案值为15(1、2、4和8之和)。点云编码器可根据邻居节点图案值执行编码(例如,当邻居节点图案值为63时,可执行64种类型的编码)。根据实施方式,点云编码器可通过改变邻居节点图案值(例如,基于将64改变为10或6的表)来降低编码复杂度。
图8示出了根据实施方式的各个LOD中的点配置的示例。
如参照图1至图7所描述的,在执行属性编码之前将编码的几何重构(解压缩)。当应用直接编码时,几何重构操作可包括改变直接编码的点的放置(例如,将直接编码的点放置在点云数据前面)。当应用三联体几何编码时,通过三角形重构、上采样和体素化来执行几何重构过程。由于属性依赖于几何,因此,基于重构的几何来执行属性编码。
点云编码器(例如,LOD生成器40009)可按LOD对点进行分类(或者重新组织)。图中示出与LOD对应的点云内容。图中最左侧画面表示原始点云内容。图中左起第二个画面表示最低LOD中的点分布,图中最右侧画面表示最高LOD中的点分布。即,最低LOD中的点稀疏分布,最高LOD中的点密集分布。即,随着LOD在图底部所指示的箭头所指的方向上升高,点之间的空间(或距离)变窄。
图9示出了根据实施方式的用于各个LOD的点配置的示例。
如参照图1至图8所描述的,点云内容提供系统或点云编码器(例如,点云视频编码器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所描述的,根据实施方式的点云编码器可选择性地或组合地执行预测变换编码、提升变换编码和RAHT变换编码。
根据实施方式的点云编码器可为点生成预测器以执行用于设定各个点的预测属性(或预测属性值)的预测变换编码。即,可为N个点生成N个预测器。根据实施方式的预测器可基于各个点的LOD值、关于存在于各个LOD的设定距离内的邻近点的索引信息以及到邻近点的距离来计算权重(=1/距离)。
根据实施方式的预测属性(或属性值)被设定为通过将各个点的预测器中设定的邻居点的属性(或属性值)(例如,颜色、反射率等)乘以基于到各个邻居点的距离计算的权重(或权重值)而获得的值的平均。根据实施方式的点云编码器(例如,系数量化器40011)可量化和逆量化通过从各个点的属性(属性值)减去预测属性(属性值)而获得的残差(可称为残差属性、残差属性值或属性预测残差、属性残差)。量化过程如下表所示配置。
[表1]
属性预测残差量化伪代码
| int PCCQuantization(int value,int quantStep){ |
| if(value>=0){ |
| return floor(value/quantStep+1.0/3.0); |
| }else{ |
| return-floor(-value/quantStep+1.0/3.0); |
| } |
| } |
[表2]
属性预测残差逆量化伪代码
| int PCCInverseQuantization(int value,int quantStep){ |
| if(quantStep==0){ |
| return value; |
| }else{ |
| return value*quantStep; |
| } |
| } |
当各个点的预测器具有邻居点时,根据实施方式的点云编码器(例如,算术编码器40012)可如上所述对量化和逆量化的残差值执行熵编码。当各个点的预测器没有邻居点时,根据实施方式的点云编码器(例如,算术编码器40012)可对对应点的属性执行熵编码,而不执行上述操作。
根据实施方式的点云编码器(例如,提升变换器40010)可生成各个点的预测器,设定计算的LOD并在预测器中注册邻居点,并且根据到邻居点的距离来设定权重以执行提升变换编码。根据实施方式的提升变换编码类似于上述预测变换编码,但不同之处在于,对属性值累积地应用权重。根据实施方式对属性值累积地应用权重的过程配置如下。
1)创建用于存储各个点的权重值的阵列量化权重(QW)。QW的所有元素的初始值为1.0。将预测器中注册的邻居节点的预测器索引的QW值乘以当前点的预测器的权重,并将通过乘法获得的值相加。
2)提升预测过程:从现有属性值减去通过将点的属性值乘以权重而获得的值,以计算预测属性值。
3)创建称为updateweight和update的临时阵列,并且将临时阵列初始化为零。
4)将通过将针对所有预测器计算的权重乘以存储在与预测器索引对应的QW中的权重而计算的权重与updateweight阵列累加,作为邻居节点的索引。将通过将邻居节点索引的属性值乘以所计算的权重而获得的值与update阵列累加。
5)提升更新过程:将所有预测器的update阵列的属性值除以预测器索引的updateweight阵列的权重值,并将现有属性值与通过除法获得的值相加。
6)针对所有预测器通过将通过提升更新过程更新的属性值乘以通过提升预测过程更新的权重(存储在QW中)来计算预测属性。根据实施方式的点云编码器(例如,系数量化器40011)量化预测属性值。另外,点云编码器(例如,算术编码器40012)对量化属性值执行熵编码。
根据实施方式的点云编码器(例如,RAHT变换器40008)可执行RAHT变换编码,其中使用与八叉树中较低级别的节点关联的属性来预测较高级别的节点的属性。RAHT变换编码是通过八叉树向后扫描进行属性帧内编码的示例。根据实施方式的点云编码器从体素开始扫描整个区域并且在每一步重复将体素合并为更大的块的合并过程,直至到达根节点。仅对占用节点执行根据实施方式的合并过程。不对空节点执行合并过程。对空节点正上方的上节点执行合并过程。
下式表示RAHT变换矩阵。在该式中,表示级别l的体素的平均属性值。可基于和来计算。和的权重为和
这里,是低通值并且在次高级别的合并过程中使用。表示高通系数。每一步的高通系数被量化并经受熵编码(例如,由算术编码器400012编码)。权重被计算为通过和创建根节点如下。
gDC的值也像高通系数一样被量化并经受熵解码。
图10示出了根据实施方式的点云解码器。
图10所示的点云解码器是图1中描述的点云视频解码器10006的示例,并且可执行与图1所示的点云视频解码器10006的操作相同或相似的操作。如图所示,点云解码器可接收包含在一个或更多个比特流中的几何比特流和属性比特流。点云解码器包括几何解码器和属性解码器。几何解码器对几何比特流执行几何解码并输出解码的几何。属性解码器基于解码的几何和属性比特流执行属性解码,并且输出解码的属性。解码的几何和解码的属性用于重构点云内容(解码的点云)。
图11示出了根据实施方式的点云解码器。
图11所示的点云解码器是图10所示的点云解码器的示例,并且可执行解码操作,其是图1至图9所示的点云编码器的编码操作的逆过程。
如参照图1和图10所描述的,点云解码器可执行几何解码和属性解码。几何解码在属性解码之前执行。
根据实施方式的点云解码器包括算术解码器(算术解码)11000、八叉树合成器(合成八叉树)11001、表面近似合成器(合成表面近似)11002和几何重构器(重构几何)11003、坐标逆变换器(逆变换坐标)11004、算术解码器(算术解码)11005、逆量化器(逆量化)11006、RAHT变换器11007、LOD生成器(生成LOD)11008、逆提升器(逆提升)11009和/或颜色逆变换器(逆变换颜色)11010。
算术解码器11000、八叉树合成器11001、表面近似合成器11002、几何重构器11003和坐标逆变换器11004可执行几何解码。根据实施方式的几何解码可包括直接解码和三联体几何解码。直接编码和三联体几何解码选择性地应用。几何解码不限于上述示例,并且作为参照图1至图9描述的几何编码的逆过程执行。
根据实施方式的算术解码器11000基于算术编码将所接收的几何比特流解码。算术解码器11000的操作对应于算术编码器40004的逆过程。
根据实施方式的八叉树合成器11001可通过从解码的几何比特流获取占用代码(或关于作为解码结果取得的几何的信息)来生成八叉树。占用代码如参照图1至图9详细描述那样配置。
当应用三联体几何编码时,根据实施方式的表面近似合成器11002可基于解码的几何和/或生成的八叉树来合成表面。
根据实施方式的几何重构器11003可基于表面和/或解码的几何重新生成几何。如参照图1至图9所描述的,选择性地应用直接编码和三联体几何编码。因此,几何重构器11003直接导入关于应用了直接编码的点的位置信息并将其相加。当应用三联体几何编码时,几何重构器11003可通过执行几何重构器40005的重构操作(例如,三角形重构、上采样和体素化)来重构几何。细节与参照图6描述的那些相同,因此省略其描述。重构的几何可包括不包含属性的点云画面或帧。
根据实施方式的坐标逆变换器11004可通过基于重构的几何变换坐标来获取点位置。
算术解码器11005、逆量化器11006、RAHT变换器11007、LOD生成器11008、逆提升器11009和/或颜色逆变换器11010可执行参照图10描述的属性解码。根据实施方式的属性解码包括区域自适应分层变换(RAHT)解码、基于插值的分层最近邻居预测(预测变换)解码以及具有更新/提升步骤的基于插值的分层最近邻居预测(提升变换)解码。上述三个解码方案可选择性地使用,或者可使用一个或更多个解码方案的组合。根据实施方式的属性解码不限于上述示例。
根据实施方式的算术解码器11005通过算术编码对属性比特流进行解码。
根据实施方式的逆量化器11006逆量化关于解码的属性比特流或作为解码结果取得的属性的信息,并且输出逆量化的属性(或属性值)。可基于点云编码器的属性编码选择性地应用逆量化。
根据实施方式,RAHT变换器11007、LOD生成器11008和/或逆提升器11009可处理重构的几何和逆量化的属性。如上所述,RAHT变换器11007、LOD生成器11008和/或逆提升器11009可选择性地执行与点云编码器的编码对应的解码操作。
根据实施方式的颜色逆变换器11010执行逆变换编码以逆变换包括在解码的属性中的颜色值(或纹理)。可基于点云编码器的颜色变换器40006的操作选择性地执行颜色逆变换器11010的操作。
尽管图中未示出,图11的点云解码器的元件可由包括被配置为与包括在点云提供装置中的一个或更多个存储器通信的一个或更多个处理器或集成电路的硬件、软件、固件或其组合实现。一个或更多个处理器可执行上述图11的点云解码器的元件的操作和/或功能中的至少一个或更多个。另外,一个或更多个处理器可操作或执行用于执行图11的点云解码器的元件的操作和/或功能的软件程序和/或指令集合。
图12示出了根据实施方式的发送装置。
图12所示的发送装置是图1的发送装置10000(或图4的点云编码器)的示例。图12所示的发送装置可执行与参照图1至图9描述的点云编码器的那些相同或相似的一个或更多个操作和方法。根据实施方式的发送装置可包括数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码生成器12003、表面模型处理器12004、帧内/帧间编码处理器12005、算术编码器12006、元数据处理器12007、颜色变换处理器12008、属性变换处理器12009、预测/提升/RAHT变换处理器12010、算术编码器12011和/或传输处理器12012。
根据实施方式的数据输入单元12000接收或获取点云数据。数据输入单元12000可执行与点云视频获取器10001的操作和/或获取方法(或参照图2描述的获取过程20000)相同或相似的操作和/或获取方法。
数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码生成器12003、表面模型处理器12004、帧内/帧间编码处理器12005和算术编码器12006执行几何编码。根据实施方式的几何编码与参照图1至图9描述的几何编码相同或相似,因此省略其详细描述。
根据实施方式的量化处理器12001量化几何(例如,点的位置值)。量化处理器12001的操作和/或量化与参照图4描述的量化器40001的操作和/或量化相同或相似。细节与参照图1至图9描述的那些相同。
根据实施方式的体素化处理器12002将点的量化的位置值体素化。体素化处理器12002可执行与参照图4描述的量化器40001的操作和/或体素化过程相同或相似的操作和/或过程。细节与参照图1至图9描述的那些相同。
根据实施方式的八叉树占用代码生成器12003基于八叉树结构对点的体素化的位置执行八叉树编码。八叉树占用代码生成器12003可生成占用代码。八叉树占用代码生成器12003可执行与参照图4和图6描述的点云编码器(或八叉树分析器40002)的操作和/或方法相同或相似的操作和/或方法。细节与参照图1至图9描述的那些相同。
根据实施方式的表面模型处理器12004可基于表面模型执行三联体几何编码以基于体素重构特定区域(或节点)中的点位置。表面模型处理器12004可执行与参照图4描述的点云编码器(例如,表面近似分析器40003)的操作和/或方法相同或相似的操作和/或方法。细节与参照图1至图9描述的那些相同。
根据实施方式的帧内/帧间编码处理器12005可对点云数据执行帧内/帧间编码。帧内/帧间编码处理器12005可执行与参照图7描述的帧内/帧间编码相同或相似的编码。细节与参照图7描述的那些相同。根据实施方式,帧内/帧间编码处理器12005可包括在算术编码器12006中。
根据实施方式的算术编码器12006对点云数据的八叉树和/或近似八叉树执行熵编码。例如,编码方案包括算术编码。算术编码器12006执行与算术编码器40004的操作和/或方法相同或相似的操作和/或方法。
根据实施方式的元数据处理器12007处理关于点云数据的元数据(例如,设定值),并将其提供给诸如几何编码和/或属性编码的必要处理过程。另外,根据实施方式的元数据处理器12007可生成和/或处理与几何编码和/或属性编码有关的信令信息。根据实施方式的信令信息可与几何编码和/或属性编码分开编码。根据实施方式的信令信息可被交织。
颜色变换处理器12008、属性变换处理器12009、预测/提升/RAHT变换处理器12010和算术编码器12011执行属性编码。根据实施方式的属性编码与参照图1至图9描述的属性编码相同或相似,因此省略其详细描述。
根据实施方式的颜色变换处理器12008执行颜色变换编码以变换包括在属性中的颜色值。颜色变换处理器12008可基于重构的几何来执行颜色变换编码。重构的几何与参照图1至图9描述的相同。另外,其执行与参照图4描述的颜色变换器40006的操作和/或方法相同或相似的操作和/或方法。省略其详细描述。
根据实施方式的属性变换处理器12009执行属性变换以基于重构的几何和/或不执行几何编码的位置来变换属性。属性变换处理器12009执行与参照图4描述的属性变换器40007的操作和/或方法相同或相似的操作和/或方法。省略其详细描述。根据实施方式的预测/提升/RAHT变换处理器12010可通过RAHT编码、预测变换编码和提升变换编码中的任一种或组合对变换的属性进行编码。预测/提升/RAHT变换处理器12010执行与参照图4描述的RAHT变换器40008、LOD生成器40009和提升变换器40010的操作相同或相似的至少一个操作。另外,预测变换编码、提升变换编码和RAHT变换编码与参照图1至图9描述的那些相同,因此省略其详细描述。
根据实施方式的算术编码器12011可基于算术编码对编码的属性进行编码。算术编码器12011执行与算术编码器400012的操作和/或方法相同或相似的操作和/或方法。
根据实施方式的传输处理器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、预测/提升/RAHT逆变换处理器13009、颜色逆变换处理器13010和/或渲染器13011。根据实施方式的各个解码元件可执行根据实施方式的对应编码元件的操作的逆过程。
根据实施方式的接收器13000接收点云数据。接收器13000可执行与图1的接收器10005的操作和/或接收方法相同或相似的操作和/或接收方法。省略其详细描述。
根据实施方式的接收处理器13001可从所接收的数据获取几何比特流和/或属性比特流。接收处理器13001可包括在接收器13000中。
算术解码器13002、基于占用代码的八叉树重构处理器13003、表面模型处理器13004和逆量化处理器13005可执行几何解码。根据实施方式的几何解码与参照图1至图10描述的几何解码相同或相似,因此省略其详细描述。
根据实施方式的算术解码器13002可基于算术编码对几何比特流进行解码。算术解码器13002执行与算术解码器11000的操作和/或编码相同或相似的操作和/或编码。
根据实施方式的基于占用代码的八叉树重构处理器13003可通过从解码的几何比特流(或关于作为解码结果取得的几何的信息)获取占用代码来重构八叉树。基于占用代码的八叉树重构处理器13003执行与八叉树的合成器11001的操作和/或八叉树生成方法相同或相似的操作和/或方法。当应用三联体几何编码时,根据实施方式的表面模型处理器13004可基于表面模型方法来执行三联体几何解码和相关几何重构(例如,三角形重构、上采样、体素化)。表面模型处理器13004执行与表面近似合成器11002和/或几何重构器11003的操作相同或相似的操作。
根据实施方式的逆量化处理器13005可逆量化解码的几何。
根据实施方式的元数据解析器13006可解析包含在所接收的点云数据中的元数据(例如,设定值)。元数据解析器13006可将元数据传递给几何解码和/或属性解码。元数据与参照图12描述的元数据相同,因此省略其详细描述。
算术解码器13007、逆量化处理器13008、预测/提升/RAHT逆变换处理器13009和颜色逆变换处理器13010执行属性解码。属性解码与参照图1至图10描述的属性解码相同或相似,因此省略其详细描述。
根据实施方式的算术解码器13007可通过算术编码对属性比特流进行解码。算术解码器13007可基于重构的几何对属性比特流进行解码。算术解码器13007执行与算术解码器11005的操作和/或编码相同或相似的操作和/或编码。
根据实施方式的逆量化处理器13008可逆量化解码的属性比特流。逆量化处理器13008执行与逆量化器11006的操作和/或逆量化方法相同或相似的操作和/或方法。
根据实施方式的预测/提升/RAHT逆变换处理器13009可处理重构的几何和逆量化的属性。预测/提升/RAHT逆变换处理器13009执行与RAHT变换器11007、LOD生成器11008和/或逆提升器11009的操作和/或解码相同或相似的一个或更多个操作和/或解码。根据实施方式的颜色逆变换处理器13010执行逆变换编码以逆变换包括在解码的属性中的颜色值(或纹理)。颜色逆变换处理器13010执行与颜色逆变换器11010的操作和/或逆变换编码相同或相似的操作和/或逆变换编码。根据实施方式的渲染器13011可渲染点云数据。
图14示出了根据实施方式的可与点云数据发送/接收方法/装置结合操作的示例性结构。
图14的结构表示服务器1460、机器人1410、自驾驶车辆1420、XR装置1430、智能电话1440、家用电器1450和/或头戴式显示器(HMD)1470中的至少一个连接到云网络1400的配置。机器人1410、自驾驶车辆1420、XR装置1430、智能电话1440或家用电器1450被称为装置。此外,XR装置1430可对应于根据实施方式的点云数据(PCC)装置或者可操作上连接到PCC装置。
云网络1400可表示构成云计算基础设施的一部分或存在于云计算基础设施中的网络。这里,云网络1400可使用3G网络、4G或长期演进(LTE)网络或5G网络来配置。
服务器1460可经由云网络1400连接到机器人1410、自驾驶车辆1420、XR装置1430、智能电话1440、家用电器1450和/或HMD 1470中的至少一个,并且可辅助连接的装置1410至1470的至少一部分处理。
HMD 1470表示根据实施方式的XR装置和/或PCC装置的实现类型之一。根据实施方式的HMD型装置包括通信单元、控制单元、存储器、I/O单元、传感器单元和电源单元。
在下文中,将描述应用了上述技术的装置1410至1450的各种实施方式。图14所示的装置1410至1450可操作上连接/联接到根据上述实施方式的点云数据发送装置和接收装置。
<PCC+XR>
XR/PCC装置1430可采用PCC技术和/或XR(AR+VR)技术,并且可被实现为HMD、设置在车辆中的平视显示器(HUD)、电视、移动电话、智能电话、计算机、可穿戴装置、家用电器、数字标牌、车辆、固定机器人或移动机器人。
XR/PCC装置1430可分析通过各种传感器或从外部装置获取的3D点云数据或图像数据并生成关于3D点的位置数据和属性数据。由此,XR/PCC装置1430可获取关于周围空间或真实对象的信息,并且渲染和输出XR对象。例如,XR/PCC装置1430可使包括关于所识别的对象的辅助信息的XR对象与所识别的对象匹配并输出匹配的XR对象。
<PCC+XR+移动电话>
XR/PCC装置1430可通过应用PCC技术被实现为移动电话1440。
移动电话1440可基于PCC技术解码和显示点云内容。
<PCC+自驾驶+XR>
自驾驶车辆1420可通过应用PCC技术和XR技术被实现为移动机器人、车辆、无人驾驶飞行器等。
应用了XR/PCC技术的自驾驶车辆1420可表示设置有用于提供XR图像的手段的自驾驶车辆,或者作为XR图像中的控制/交互目标的自驾驶车辆。具体地,作为XR图像中的控制/交互目标,自驾驶车辆1420可与XR装置1430相区分并且可操作上与之连接。
具有用于提供XR/PCC图像的手段的自驾驶车辆1420可从包括相机的传感器获取传感器信息,并且基于所获取的传感器信息来输出所生成的XR/PCC图像。例如,自驾驶车辆1420可具有HUD并向其输出XR/PCC图像,从而向乘客提供与真实对象或呈现在画面上的对象对应的XR/PCC对象。
当XR/PCC对象被输出到HUD时,可输出XR/PCC对象的至少一部分以与乘客的眼睛所指向的真实对象交叠。另一方面,当XR/PCC对象输出在设置在自驾驶车辆内的显示器上时,可输出XR/PCC对象的至少一部分以与画面上的对象交叠。例如,自驾驶车辆1220可输出与诸如道路、另一车辆、交通灯、交通标志、两轮车、行人和建筑物的对象对应的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至图14所描述的,点云数据由点集合组成,每个点可具有几何数据(几何信息)和属性数据(属性信息)。几何数据是每个点的三维位置(例如,x、y和z轴的坐标值)。也就是说,每个点的位置由表示三维空间的坐标系中的参数指示(例如,表示空间的三个轴(x、y和z轴)的参数(x,y,z))。属性信息可包括颜色(RGB、YUV等)、反射率、常量以及透明度。属性信息可以以标量或向量的形式来表示。
根据实施方式,根据点云数据的类型和获取方法,点云数据可被分类为针对静态点云数据的类别1、针对动态点云数据的类别2以及针对通过动态移动获取的点云数据的类别3。类别1由针对对象或空间的具有高密度点的单个帧的点云组成。类别3数据可被划分成基于帧的数据和单个帧的融合数据,基于帧的数据具有在移动时获取的多个帧,单个帧的融合数据将由LiDAR传感器针对大空间获取的点云与作为2D图像获取的彩色图像相匹配。
根据实施方式的点云数据发送方法/装置被解释为指代图1的发送装置10000、点云视频编码器10002和发送器10003、图2的获取20000/编码20001/发送20002、图4的编码器、图12的发送装置、图14的装置、图15和图24的编码器、图31至图33的编码器、图25和图34的发送方法等的术语。根据实施方式的点云数据接收方法/装置被解释为指代图1的接收装置10004、接收器10005和点云视频解码器10006、图2的发送20002/解码20003/渲染20004、图10和图11的解码器、图13的接收装置、图14的装置、图15和图24的解码器、图31至图33的解码器、图26和图35的接收方法等的术语。
根据实施方式的点云数据接收方法/装置被解释为指代图1的接收装置10004、接收器10005和点云视频解码器10006、图2的发送20002/解码20003/渲染20004、图10和图11的解码器、图13的接收装置、图14的装置、图15和图24的解码器、图31至图33的解码器、图26和图35的接收方法等的术语。
根据实施方式的用于发送/接收点云数据的方法/装置可被称为根据实施方式的方法/装置。
根据实施方式,构成点云数据的几何数据、几何信息、位置信息等被解释为具有相同的含义。构成点云数据的属性数据、属性信息等被解释为具有相同的含义。
根据实施方式的方法/装置可执行分割和发送/接收点云数据的方法以用于本地访问(用于空间随机访问的切片分段)。
实施方式包括一种用于在必要时由于发送和接收点云数据中的接收器性能或传输速度而高效地支持对一部分数据的选择性解码的方法。实施方式包括一种用于通过将在数据单元中传递的几何和属性数据划分成诸如几何八叉树和细节级别(LoD)的语义单元来选择比特流单元中的必要信息或去除不必要信息的方法。
实施方式包括一种配置由点云组成的数据结构的方法。更具体地,实施方式公开了一种用于有效地传送基于层配置的PCC数据的分组和信令方法,并且包括将该分组和信令方法应用于可缩放的基于PCC的服务的方法。具体地,实施方式包括一种配置切片分段并发送和接收该切片分段的方法,以便于在直接压缩模式用于位置压缩时更适合于可缩放PCC服务。此外,实施方式可提供一种用于高效存储和发送具有宽分布和高点密度的大量点云数据的压缩结构。
参照图4和图11,点云数据由每个数据的位置(例如,XYZ坐标)和属性(例如,颜色、反射率、强度、灰度、不透明度等)组成。在点云压缩(PCC)中,执行基于八叉树的压缩以高效地压缩三维空间中不均匀分布的分布特性,并且基于此压缩属性信息。图4和图11是PCC的发送侧和接收侧的流程图。根据实施方式的操作可由PCC的发送侧和接收侧的各个组件来处理。
图15示出了根据实施方式的编码、发送和解码点云数据的过程。
图15所示的过程或方法的组件可以是由硬件、软件、处理器和/或其任何组合执行的过程或方法。
点云编码器15000是根据实施方式的执行根据实施方式的发送方法的点云数据发送装置,并且可缩放地对点云数据进行编码和发送点云数据。
点云解码器15010是根据实施方式的执行根据实施方式的接收方法的接收装置,并且可缩放地对点云数据进行解码。
由编码器15000接收的源数据可以是包括几何数据和/或属性数据的点云数据。
编码器15000可以可缩放地对点云数据进行编码,而不直接生成部分PCC比特流。相反,当它接收到完整的几何数据和完整的属性数据时,它可将该数据存储在连接到编码器的存储装置中。然后,编码器可执行部分编码的代码转换,并生成和发送部分PCC比特流。解码器15010可接收部分PCC比特流并对部分PCC比特流以进行解码重构部分几何和/或部分属性。
在接收到完整的几何和完整的属性时,编码器15000可将数据存储在连接到编码器的存储装置中,并用低量化参数(QP)对点云数据进行代码转换以生成并发送完整PCC比特流。解码器15010可接收完整PCC比特流并对完整PCC比特流进行解码以重构完整的几何和/或完整的属性。另外,解码器15010可通过数据选择从完整PCC比特流中选择部分几何和/或部分属性。
根据实施方式的方法/装置通过将作为点云数据的关于数据点的位置信息和诸如颜色/亮度/反射率的特征信息划分为几何信息和属性信息来压缩和发送点云数据。在这种情况下,可根据细节程度来配置具有层的八叉树结构,或者可根据细节级别(LoD)来配置PCC数据。然后,可基于所配置的结构或数据来执行可缩放点云数据编码和表示。在这种情况下,由于接收器的性能或传送速率,仅可解码或表示点云数据的一部分。
在这个过程中,根据实施方式的方法/装置可预先去除不必要的数据。当仅需要发送可缩放PCC比特流的一部分时(即,在可缩放解码中仅对一些层进行解码),无法仅选择和发送必要部分。因此,1)必要部分需要在解码之后被重新编码(15020),或者2)接收器应当在整个比特流被传送到其之后选择性地应用该比特流(15030)。然而,在情况1)中,由于用于解码和重新编码的时间(15020),可能发生延迟。在情况2)中,带宽效率可能由于不必要数据的发送而劣化。此外,当使用固定带宽时,可能需要降低用于发送的数据质量(15030)。
因此,根据实施方式的方法/装置可定义点云数据的切片分段结构,并发信号通知用于可缩放发送的可缩放层和切片结构。
在实施方式中,为了确保高效的比特流传递和解码,比特流可被划分为待处理的特定单元。
针对基于八叉树的几何压缩,根据实施方式的用于发送和接收点云数据的方法/装置可一起使用基于熵的编码和直接编码。在这种情况下,需要用于高效利用可缩放性的切片配置。
另外,根据实施方式的点云数据发送/接收方法/装置可解决由大量比特流引起的延迟问题,该大量比特流被处理以在处理具有宽分布和高点密度的大量点云数据时访问关注区域。
根据实施方式的点云数据发送/接收方法/装置可采用用于大量点云数据的低延迟压缩的分层点云数据结构。分层点云数据结构可表示诸如八叉树或细节级别(LoD)的树结构。根据实施方式的编码器过程可利用保存和加载的编码器、几何占用图集更新等。根据实施方式的解码器过程可利用父子组的检测、输入父节点选择等。
根据实施方式的树结构可表示数据密度随级别或深度逐渐增加的数据结构。除了八叉树或LoD之外,还可以多种方式构造树结构。
在根据实施方式的方法/装置中,提出了针对点云数据的切片的分段结构。
在根据实施方式的方法/装置中,提出了与用于可缩放发送的可缩放层和切片结构相关的信令信息。
在根据实施方式的方法/装置中,提出了层组和/或子组和切片分段的定义。
关于根据实施方式的方法/装置,提出了用于大量点云数据的低延迟压缩的分层点云数据结构。
图16示出了根据实施方式的基于层的点云数据配置以及几何比特流和属性比特流的结构。
如图16所示,根据实施方式的发送/接收方法/装置可配置基于层的点云数据,以用于通过在比特流单元中选择性地传递和解码数据来高效地发送和解码。
根据实施方式的发送/接收方法/装置可配置如图16所示的基于层的点云数据以对点云数据进行编码和解码。
根据应用领域,点云数据的分层可在SNR、空间分辨率、颜色、时间频率、比特深度等方面具有层结构,并且可基于八叉树结构或LOD结构在数据密度增加的方向上配置层。
根据实施方式的方法/装置可基于如图16所示的分层来配置、编码和解码几何比特流和属性比特流。
由根据实施方式的发送装置/编码器通过点云压缩获取的比特流可根据数据类型被划分为几何数据比特流和属性数据比特流并被发送。
根据实施方式的每个比特流可由切片组成。与层信息或LoD信息无关地,几何数据比特流和属性数据比特流可各自配置为一个切片并被传递。在这种情况下,当仅要使用层或LoD的一部分时,可能需要以下操作:1)对比特流进行解码,2)仅选择期望部分并去除不必要部分,以及3)仅基于必要信息再次执行编码。
图17示出了根据实施方式的比特流配置。
根据实施方式的发送方法/装置可生成如图17所示的比特流,并且根据实施方式的接收方法/装置可如图17所示对包含在比特流中的点云数据进行解码。
根据实施方式的比特流配置
实施方式可采用将比特流划分为层(LoD的级别或八叉树的深度)的方法以避免不必要的中间步骤。
例如,在基于LoD的PCC技术的情况下,较低的LoD包括在较高LoD中。包括在当前LoD中但不包括在先前LoD中的信息(即,新包括在每个LoD中的信息)可被称为R(Rest)。如图17所示,初始LoD信息和新包括在每个LoD中的信息R可在每个独立单元中被划分和发送。
根据实施方式的发送方法/装置可对几何数据进行编码并生成几何比特流。可针对每个LOD或层配置几何比特流。几何比特流可包括针对每个LOD或层的报头(几何报头)。报头可包括用于下一LOD或下一层的参考信息。当前LOD(层)还可包括未包括在先前LOD(层)中的信息R(几何数据)。
根据实施方式的发送方法/装置可对属性数据进行编码并生成属性比特流。可针对每个LOD或层配置属性比特流,并且属性比特流可包括针对每个LOD或层的报头(属性报头)。报头可包括用于下一LOD或下一层的参考信息。当前LOD(层)还可包括未包括在先前LOD(层)中的信息R(属性数据)。
根据实施方式的接收方法/装置可接收由LOD或层组成的比特流,并且仅对必要的数据进行高效解码,而无需任何复杂的中间过程。
图18示出了根据实施方式的比特流排序方法。
根据实施方式的方法/装置可如图18所示对图17的比特流进行排序。
根据实施方式的比特流排序方法
在发送比特流时,如图18所示,根据实施方式的发送方法/装置可顺次发送几何和属性。在该操作中,根据数据类型,可首先发送整个几何信息(几何数据),然后可发送属性信息(属性数据)。在这种情况下,可基于所传递的比特流信息快速重构几何信息。
在图18的(a)中,例如,包含几何数据的层(LOD)可首先位于比特流中,并且包含属性数据的层(LOD)可位于几何层之后。由于属性数据依赖于几何数据,因此,可首先放置几何层。另外,根据实施方式,可不同地改变位置。还可在几何报头之间或者在属性报头与几何报头之间进行参考。
参照图18的(b),可收集和传递构成包含几何数据和属性数据的相同层的比特流。在这种情况下,通过使用能够并行解码几何和属性的压缩技术,可缩短解码执行时间。在这种情况下,首先可放置需要首先处理的信息(较低的LoD,其中几何必须先于属性)。
第一层1800包含与最低LOD 0(层0)相对应的几何数据和属性数据以及每个报头。第二层1810包括LOD 0(层0),并且还包含未包括在LOD 0(层0)中的关于新的和更详细的层1(LOD 1)的点的几何数据和属性数据作为信息R1。第三层1820可随后以类似的方式放置。
当发送和接收比特流时,根据实施方式的发送/接收方法/装置可在比特流级别高效地选择应用字段中期望的层(或LoD)。在根据实施方式的比特流排序方法中,收集和发送几何信息(图18)在比特流级别选择之后可能在中间生成空部分。在这种情况下,可能需要重新排列比特流。在根据每个层捆绑和传递几何和属性的情况下(图18),可如下根据应用领域选择性地去除不必要的信息。
图19示出了根据实施方式的选择几何数据和属性数据的方法。
当需要选择比特流时,如图19所示,根据实施方式的方法/装置可在比特流级别选择数据:1)几何和属性的对称选择;2)几何和属性的非对称选择;或3)两种方法的组合。
1)对称几何-属性选择
图19示出了选择属于LoD1(LOD 0+R1)的数据(19000)并发送或解码,并且去除与和高层相对应的R2(LOD 2的新部分)相对应的信息(19010)以发送和解码数据的情况。
2)非对称几何和属性选择
根据实施方式的方法/装置可不对称地传递几何和属性。可去除高层的属性R219011,并且可选择和发送/解码所有几何(从三角形的八叉树结构的级别0(根级别)至级别7(叶级别))(19001)。
参照图16,当点云数据以八叉树结构表示并被分层地划分成LOD(或层)时,可以支持可缩放编码/解码(可缩放性)。
根据实施方式的可缩放性功能可包括切片级别可缩放性和/或八叉树级别可缩放性。
根据实施方式的细节级别(LoD)可用作表示一个或更多个八叉树层的集合的单元。另外,它可意指一束八叉树层被配置为切片。
在属性编码/解码中,根据实施方式的LOD可被扩展并用作用于在更广泛的意义上详细划分数据的单元。
可针对每个八叉树层提供实际八叉树层(或可缩放属性层)的空间可缩放性。然而,当在比特流解析之前以切片配置可缩放性时,可根据实施方式以LoD进行选择。
在八叉树结构中,LOD0可对应于根级别至级别4,LOD1可对应于根级别至级别5,并且LOD2可对应于根级别至作为叶级别的级别7。
也就是说,如图16所示,当以切片利用可缩放性时,如在可缩放发送的情况下,所提供的可缩放步骤可对应于LoD0、LoD1和LoD2的三个步骤,并且在解码操作中可由八叉树结构提供的可缩放步骤可与从根到叶的八个步骤相对应。
根据实施方式,在图16中,例如,当LoD0至LoD2被配置为相应的切片时,接收器或发送器的代码转换器(图15的代码转换器15040)可以1)仅选择LoD0,2)选择LoD0和LoD1,或者3)选择LoD0、LoD1和LoD2,以用于可缩放处理。
示例1:当仅选择LoD0时,最大八叉树级别可以是4,并且在解码过程中可从八叉树层0至4当中选择一个可缩放层。在这种情况下,接收器可以将通过最大八叉树深度可获得的节点大小视为叶节点,并且可通过信令信息发送节点大小。
示例2:当选择LoD0和LoD1时,可添加层5。因而,最大八叉树级别可以是5,并且在解码过程中可从八叉树层0至5当中选择一个可缩放层。在这种情况下,接收器可以将通过最大八叉树深度可获得的节点大小视为叶节点,并且可通过信令信息发送节点大小。
根据实施方式,八叉树深度、八叉树层和八叉树级别可表示数据被详细划分成的单元。
示例3:当选择LoD0、LoD1和LoD2时,可添加层6和层7。因此,最大八叉树级别可以是7,并且在解码过程中可从八叉树层0至7当中选择一个可缩放层。在这种情况下,接收器可以将通过最大八叉树深度可获得的节点大小视为叶节点,并且可通过信令信息发送节点大小。
图20示出了根据实施方式的配置包括点云数据的切片的方法。
图20示出了根据实施方式的切片配置。
根据实施方式的发送方法/装置/编码器可通过将比特流分段成切片结构来配置G-PCC比特流。用于详细数据表示的数据单元可以是切片。
根据实施方式的切片可意指其中点云数据被分割的数据单元。也就是说,切片表示点云数据的一部分。
例如,一个或更多个八叉树层可与一个切片匹配。
根据实施方式的发送方法/装置(例如,编码器)可通过在扫描顺序2000的方向上扫描包括在八叉树中的节点(点)来基于切片2001配置比特流。
在图20的(a)中,八叉树层中的一些节点可包括在一个切片中。
八叉树层(例如,级别0至级别4)可构成一个切片2002。
八叉树层(例如,级别5)的部分数据可构成每个切片2003、2004、2005。
八叉树层(例如,级别6)的部分数据可构成每个切片。
在图20的(b)和图20的(c)中,当多个八叉树层与一个切片匹配时,可仅包括每个层的一些节点(或点)。这样,当多个切片构成一个几何/属性帧时,配置层所需的信息可被传递给接收器。该信息可包括关于包括在每个切片中的层的信息和关于包括在每个层中的节点的信息。
在图20的(b)中,八叉树层(例如,级别0至级别3)以及级别4的部分数据可配置为一个切片。
八叉树层的部分数据(例如,级别4的部分数据和级别5的部分数据)可配置为一个切片。
八叉树层的部分数据(例如,级别5的部分数据和级别6的部分数据)可配置为一个切片。
八叉树层(例如,级别6)的部分数据可配置为一个切片。
在图20的(c)中,八叉树层(例如,级别0至级别4)的数据可配置为一个切片。
来自八叉树层的级别5、级别6和级别7中的每一者的部分数据可配置为一个切片。
切片可包含与多个八叉树层相对应的数据。例如,切片可包含与该数据的子节点相对应的来自八叉树层级别6或八叉树层级别7的数据以及来自八叉树层级别5的一些数据。
根据实施方式的编码器和与该编码器相对应的装置可对点云数据进行编码,并且生成和发送包含编码的数据和与点云数据相关的参数信息的比特流。
在生成比特流时,可基于根据实施方式的比特流结构来生成比特流(例如,参见图16至图20)。因此,根据实施方式的接收装置、解码器和对应装置可接收和解析被配置为适合于选择性部分数据解码的比特流,并且对点云数据进行部分解码和高效地提供点云数据(见图15)。
根据实施方式的可缩放发送
根据实施方式的点云数据发送方法/装置可缩放地发送包含点云数据的比特流,并且根据实施方式的点云数据接收方法/装置可以可缩放地接收比特流和对比特流进行解码。
当根据图16至图20所示的实施方式的比特流用于可缩放发送时,选择接收器要求的切片所需的信息可被发送到接收器。可缩放发送可意指仅发送或解码比特流的一部分,而不是对整个比特流进行解码,并且其结果可以是低分辨率点云数据。
当对基于八叉树的几何比特流应用可缩放发送时,应该允许点云数据被配置有范围从根节点到叶节点的八叉树层(图16)中的每一个的比特流的直到特定八叉树层的信息。
为此,目标八叉树层应该不依赖于关于较低八叉树层的信息。这可以是公共地应用于几何编码和属性编码的限制。
另外,在可缩放发送中,需要传递用于发送器/接收器选择可缩放层的可缩放结构。就根据实施方式的八叉树结构而言,所有八叉树层都可支持可缩放发送。然而,仅针对特定的八叉树层或较低的层允许可缩放发送。当切片包括一些八叉树层时,其中包括切片的可缩放层可被指示为使得可确定在比特流阶段切片是否是必要的/不必要的。在图20的(a)的示例中,从根节点开始的黄色部分构成一个可缩放层而不支持可缩放发送,而随后的八叉树层可以一对一对应的方式与可缩放层匹配。通常,可针对与叶节点相对应的部分支持可缩放性。如图23的(c)所示,当在切片中包括多个八叉树层时,可定义一个可缩放层将被配置用于这些层。
在这种情况下,可缩放发送和可缩放解码可分别用于不同的目的。可缩放发送可出于选择直到特定层的信息而不涉及解码器的目的在发送/接收侧使用。可缩放解码用于在编码期间选择特定层。也就是说,可缩放发送可支持对必要信息的选择,而不涉及处于压缩状态(在比特流阶段)的解码器,以使得信息可由发送器或接收器确定。另一方面,可缩放解码可在编码/解码中仅支持直到必要部分的编码/解码数据,并因此可在这种情况下用作可缩放表示。
在这种情况下,用于可缩放发送的层配置可与用于可缩放解码的层配置不同。例如,就可缩放发送而言,包括叶节点的三个底部八叉树层可构成一层。然而,就可缩放解码而言,当包括所有层信息时,可对叶节点层(叶节点层1、叶节点层2)中的每一者执行可缩放解码。
图21示出了根据实施方式的几何编码层结构。
当启用细粒度切片时,根据实施方式的G-PCC比特流可被切片成多个子比特流。为了有效地使用G-PCC的分层结构,每个切片可包括来自部分编码层或部分区域的编码数据。利用与编码层结构配对的切片分割,可以高效的方式支持可缩放发送或空间随机访问的使用情况。
基于层组的切片分段
切片分段可包含从如下定义的层组中编码的数据。
层组可被定义为一组连续的树层,其中,该组树层的开始深度和结束深度可以是树深度中的任意数,并且开始深度可小于结束深度。在切片分段中编码的数据的顺序可与在单个切片中编码的数据的顺序相同。
例如,给定具有八个层的几何编码层结构,如图21的(a)所示,存在三个层组,每个层组与不同的切片匹配。层组1用于编码层0至4,层组2用于编码层5,并且层组3用于编码层6和7。如图21的(b)所示,当发送或选择前两个切片时,解码的输出将是部分层0至5。通过使用层组结构中的切片,可支持编码层的部分解码而不访问整个比特流。
根据实施方式的比特流和点云数据可以基于编码层的切片分段为基础来生成。通过在编码过程的编码层的末尾对比特流进行切片,根据实施方式的方法/装置可选择相关切片,从而支持可缩放发送或部分解码。
图21的(a)示出了具有8个层的几何编码层结构,其中每个切片对应于层组。层组12100包括编码层0至4。层组2 2101包括编码层5。层组3 2102是编码层6和7的组。当几何(或属性)是具有八个级别(深度)的树结构时,可通过将与一个或更多个级别(深度)相对应的数据进行分组来分层地配置比特流。每个组可包括在一个切片中。
图21的(b)示出了当从三个组当中选择两个切片时的解码的输出。当解码器选择组1和组2时,选择树的级别(深度)0至5的部分层。也就是说,通过使用层组结构的切片,即使不访问整个比特流,也可支持编码层的部分解码。
针对根据实施方式的部分解码过程,根据实施方式的编码器可生成基于层组结构生成的三个切片。根据实施方式的解码器可通过从三个切片当中选择两个切片来执行部分解码。
根据实施方式的比特流可包括基于层组的切片2104和2105。每个切片可包括包含与包括在切片中的点云数据(几何数据和/或属性数据)相关的信令信息的报头。根据实施方式的接收方法/装置可基于包括在切片中的报头来选择切片并对包含在切片的有效载荷中的点云数据进行解码。
考虑到除了层组结构之外的空间随机访问的使用情况,根据实施方式的方法/装置还可将层组划分成几个子组(子组)。子组是互斥的,并且子组的集合可与层组相同。由于每个子组的点形成空间域中的边界,因此,子组可由子组边界框信息表示。基于空间信息,层组和子组结构可通过选择覆盖关注区域(ROI)的切片来支持对ROI的访问。通过高效地将ROI与关于每个切片的边界框信息进行比较,可支持帧或拼块内的空间随机访问。
根据实施方式的方法/装置可配置用于传递点云数据的切片,如图21所示。
整个编码的比特流可包括在单个切片中。针对多个切片,每个切片可包含子比特流。切片的顺序可与子比特流的顺序相同。每个切片可与树结构中的层组匹配。
正如几何树的高层不影响低层一样,切片可以不影响先前的切片。
根据实施方式的分段的切片在误差稳定性、有效发送、关注区域的支持等方面是有效的。
1)错误恢复
与单个切片结构相比,分段的切片可对错误更有弹性。当切片包含帧的整个比特流时,数据丢失可能影响整个帧数据。另一方面,当比特流被分段为多个切片时,即使在一些其它切片丢失时,也可对未受丢失影响的切片进行解码。
2)可缩放发送
可支持具有不同能力的多个解码器。当编码的数据在单个切片中时,可在编码之前确定编码的点云的LOD。因此,可独立地发送具有点云数据的不同分辨率的多个预编码的比特流,这在大带宽或存储空间方面可能是低效的。
当生成比特流并将其包括在分段的切片中时,单个比特流可支持不同级别的解码器。从解码器的角度来看,接收器可选择目标层,并且可将部分选择的比特流传递到解码器。类似地,通过在不分割整个比特流的情况下使用单个PCC比特流,可在发送侧高效地生成部分PCC比特流。
3)基于区域的空间可缩放性
针对基于区域的空间可缩放性,压缩的比特流可配置为具有一个或更多个层。特定ROI可具有附加层和较高密度,并且可从低层预测层。
可能需要区域的不同详细表示。例如,在VR/AR应用中,可用低准确度表示远处对象,并且可用高准确度表示附近对象。另选地,解码器可根据请求增加ROI的分辨率。该操作可使用几何八叉树和G-PCC的可缩放结构(诸如可缩放属性编码方案)来实现。当解码器基于包含整个几何或属性的当前切片结构来访问整个比特流时,可能在带宽、存储器和解码器方面导致低效率。另一方面,当比特流被分段为多个切片并且每个切片包含根据可缩放层的子比特流时,根据实施方式的解码器可根据需要高效地选择切片。
根据实施方式的方法/装置可使用点云数据的树结构(或层结构)来生成层组。
在几何编码层结构(例如,八叉树结构)内存在八个层,并且可使用三个切片来包含一个或更多个层。组表示一组层。例如,组1包括层0至4,组2包括层5,组3包括层6和7。当使用可缩放属性编码时,树结构与几何树结构相同。相同的八叉树切片映射可用于创建属性切片分段。
根据实施方式的层组表示在G-PCC编码中生成的一束层结构单(例如,八叉树层或LoD层)。
子组可表示为层组内的邻近节点的集合。它可配置为按莫顿码顺序的邻近节点的集合、基于距离的邻近节点的集合或者基于编码顺序的邻近节点的集合。父-子关系中的节点也可存在于子组内。
当子组被定义时,边界出现在层的中间,并且在边界处是否存在熵延续(entropycontinuation)可通过诸如entropy_continuation_enabled_flag的参数来发信号通知。延续还可通过经由ref_slice_id参考先前切片来维持。
根据实施方式的树结构可以是八叉树结构,并且根据实施方式的属性层结构或属性编码树可包括细节级别(LOD)结构。换句话说,用于点云数据的树结构可包括与深度或级别的层相对应,并且这些层可被分组。
根据实施方式的方法/装置(例如,图4的八叉树分析器40002或LOD生成器40009、图11的八叉树合成器11001或LOD生成器11008)可生成几何的八叉树结构或属性的LOD树结构。此外,可基于树结构的层对点云数据进行分组。
参照图21,多个层被分组成第一组至第三组。组可在其内进一步划分成子组以形成子组。
切片可包含来自层组的编码的数据。这里,层组被定义为一组连续的树层,其中,树层的开始深度和结束深度可以是树深度中的特定数,其中,开始小于结束。
虽然图21示出了几何编码层结构作为树结构的示例,但是可类似地创建用于属性的编码层结构。
图22示出了根据实施方式的层组和子组的结构。
参照图22,点云数据和比特流可被定界并由边界框表示。
在图22中,示出了与子组相对应的边界框和子组结构。层组2和3分别被划分成两个子组(组2-1、组2-2)和四个子组(组3-1、组3-2、组3-3、组3-4),并且包含在不同的切片中。给定层组和子组的切片以及边界框信息,空间访问可通过以下步骤来执行:1)将每个切片的边界框与ROI进行比较,2)选择其中子组边界框与ROI交叠的切片以及3)对所选切片进行解码。
当在区域3-3中考虑ROI时,切片1、3和6被选择为覆盖ROI的子组2-2和3-3以及层组1的子组边界框。假设针对有效的空间访问,在来自相同层组的子组之间没有依赖性。针对直播流或低时延使用情况,可在接收到每个切片分段时执行选择和解码以增加时间效率。
根据实施方式的方法/装置可将数据表示为由在编码几何和/或属性时的层(其可被称为深度、级别等)组成的树2200。与层(深度/级别)相对应的点云数据可被分组为层组(或组)2201。每个层组可进一步划分(分段)为子组2202。每个子组可配置为切片以生成比特流。
根据实施方式的接收装置可接收比特流,选择特定切片,对包括在切片中的子组进行解码,以及对与子组相对应的边界框进行解码。例如,当选择切片1时,可对与层组1相对应的边界框2203进行解码。层组1可以是与最大区域相对应的数据。当显示用于层组1的附加详细区域时,根据实施方式的方法/装置可选择切片3和/或切片6,并且可针对包括在层组1的区域中的详细区域分层地和部分地访问子组2-2和/或子组3-3的边界框(点云数据)。
由图22的层组和子组进行的点云数据的编码和解码可由图1的发送/接收装置、图2的编码和解码、图4的发送装置/方法、图11的接收装置/方法、图12和图13的发送/接收装置/方法、图14的装置、图15的编码器和解码器、图24的编码器和解码器、图31至图33的编码器和解码器以及图34和图35的发送/接收方法来执行。
图23示出了根据实施方式的基于层组的点云数据的表示。
根据实施方式的装置/方法可利用基于可缩放性和空间访问能力的层组切片来提供对大规模点云数据或密集点云数据的高效访问。由于大量的点和大尺寸的数据,点云数据可能花费大量的时间来渲染或显示内容。因此,作为另选方法,可基于观看者的兴趣来调节细节级别。例如,当观看者远离场景或对象时,结构或全局区域信息比局部详细信息更重要,而当观看者移近特定区域或对象时,需要关于ROI的详细信息。使用自适应方法,根据实施方式的渲染器可高效地向观看者提供足够质量的数据。图23示出了针对基于ROI而改变的三级观看距离而增加细节的示例。
图23中的高级视图示出粗略细节、中级视图示出中等细节、并且低级视图示出精细细节。
图24示出了根据实施方式的用于发送和接收点云数据的装置/方法。
当使用层组切片来生成G-PCC比特流时,可支持多分辨率ROI。
参照图24,分层切片的可缩放性和空间可访问性可以支持多分辨率ROI。在图24中,编码器2400可生成每个层组的空间子组的比特流切片或八叉树层组的比特流切片。根据请求,选择并发送匹配每个分辨率的ROI的切片。与基于拼块的方法相比,整个比特流的大小减小,因为其不包括超出所请求的ROI的细节。在接收阶段,解码器2402可组合切片以生成三个输出:1)来自层组切片1的高级视图输出;2)来自层组切片1和层组2的所选子组的中级视图输出;以及3)来自层组2和层组3以及层组1的所选子组的高质量细节的低级视图输出。由于可渐进地生成输出,因此,接收器可提供诸如缩放的观看体验,其中分辨率从高级视图到低级视图渐进地增加。
根据实施方式,编码器2400可与作为点云编码器的几何编码器和属性编码器相对应。编码器可基于层组(或组)对点云数据进行切片。层可被称为树的深度、LOD的级别等。如部分2400-1所示,几何的八叉树的深度和/或属性层的级别可被划分为层组(或子组)。
切片选择器2401与编码器2400一起可选择划分的切片(或子切片),并且选择性地和部分地将诸如层组1的数据发送到层组3。
解码器2402可对选择性地和部分地发送的点云数据进行解码。例如,它可基于层组1(其具有高的深度/层/级别或索引0,或者接近根)来对高级视图进行解码。此后,可通过基于层组1和层组2单独增加层组1上的深度/级别的索引来对中级视图进行解码。可基于层组1至层组3来对低级视图进行解码。
参照图24,根据实施方式的编码器2400可接收点云数据作为输入,并将其切片为层组。也就是说,点云数据可被分层地构造并划分为层组。分层结构可指八叉树结构或细节级别(LoD)。部分2400-1表示被划分为层组的点云数据。切片选择器2401可选择层组(或对应的切片),并且所选切片被发送到解码器2402。解码器2402可仅重构层组1,重构层组1和层组2,或者通过根据用户的期望组合所接收的切片来重构所有接收的层组。层组是分层的并且具有不同的细节级别。仅重构层组1可能导致更宽的重构范围和更少的细节。重构所有层组1至3可能导致更窄的重构范围和更多的细节。
图25示出了根据实施方式的编码方法。
图25的点云数据的编码可由图1的发送装置、图2的编码、图4的发送装置/方法、图12的发送装置/方法、图14的装置、图15的编码器、图24的编码器、图31至图33的编码器和/或图34的发送方法,或其任何组合来执行。
根据实施方式的编码方法可包括基于层组和子组参照上下文信息来执行编码。上下文信息可被称为上下文状态信息、编码器状态信息等。
根据实施方式的发送/接收装置/方法可将点云数据划分为层组(或子组),并且可基于层组对点云数据进行编码和解码。
根据实施方式,可在每层组/子组的基础上将几何比特流划分成切片,并且可高效地压缩和重构几何位置信息。为了确保切片之间的编码独立性,根据实施方式的层组切片可限制关于子组边界框之外的节点的信息的使用。在这种情况下,上下文参考的延续可用于减少编码效率的损失。
在对一个切片进行编码时使用的上下文信息可在对另一切片进行编码时使用。可基于存在于一个几何树中的节点之间的相关性来使用上下文信息以增强编码效率。在考虑层组之间的局部相关性的情况下,当参考切片的子组边界框包括所参考的切片的子组边界框或与所参考的切片的子组边界框相同时,可建立上下文参考关系。
当切片处于子子组与父子组的关系或者祖子组与子子组的关系时,可通过使用上下文信息来提高编码效率。为了减少存储上下文信息的缓冲器的负担,关于第一切片的上下文信息可用于对随后的切片进行编码/解码。
可假设子组边界框之外的节点是未被占用的节点。也就是说,当关于每个节点的几何位置信息被编码时,存在于包括每个节点的切片中的节点(即,属于相同子组的节点)可被当作邻居。基于此,可确定关于编码目标节点的邻居占用信息。在这种情况下,针对快速实现,可将关于邻居节点的占用信息存储在图集中。在使用关于图集中的节点的占用信息时,可另外确定该节点是否在当前节点所属的子组的边界框的bbox_max和bbox_min的范围内,从而仅选择性地使用属于该子组的节点。这确保了可通过不允许在对节点进行编码时使用属于其它子组的邻居节点信息来独立地编码层组内的每个子组。
为了使用上下文参考信息的延续,确定每个节点的层组索引和子组索引,并且根据每个索引的参考上下文可用作在每个子组的开始处的上下文信息的初始值。在编码操作中,可与子组顺序无关地存在节点,并且可通过存储和加载编码器上下文状态的过程来确保在子组中连续使用上下文信息。
在深度改变时的时间,根据实施方式的发送和接收装置确定层组是否改变,并且根据该确定执行不同的操作。
树结构(例如,八叉树或LOD)中的节点之间的父-子节点关系可表示为在较低级别的节点与在较高级别的节点之间的连接。另外,包含一定数量的节点的框区域可表示层组或子组。层组或子组可对应于一个或更多个切片。
在对层组、子组或切片进行编码/解码中,根据实施方式的点云数据发送/接收装置/方法可通过加载基于参考层组、参考子组或参考切片的上下文信息来执行编码/解码。也就是说,可基于上下文信息对分组的点云数据进行编码/解码。
根据实施方式的发送/接收装置/方法可对属于层组或子组的点云数据执行算术编码并保存上下文信息,并且可加载所保存的上下文信息以对属于层组或子组的点云数据执行算术编码。
在对属于层组、子组或切片的点云数据进行编码/解码中,根据实施方式的点云数据发送/接收装置/方法可通过加载所保存的参考层组、参考子组或参考切片的上下文来执行编码/解码。这里,参考层组、参考子组或参考切片可包括与属于要编码/解码的层组、子组或切片的节点的父节点相对应的节点。
根据实施方式的点云数据发送/接收装置/方法基于关于第一组的上下文信息对第二组进行编码/解码,并且保存关于第二组的上下文信息。所保存的关于第二组的上下文信息可用于对第三组进行编码/解码。在这种情况下,第一组至第三组可以是基于任意层的组。此外,第一组可以是与比第二组更低的层相对应的组。更具体地,第一组可以是与第二组的父组相对应的组。属于较低级别层的节点可以是与属于较高级别层的节点的父节点相对应的节点。
根据实施方式的点云数据发送/接收装置/方法可保存父层组、父子组或父切片的上下文,并且可在对子层组、子子组或子切片进行编码/解码时使用所保存的上下文。父组或切片可位于树结构中比子组或切片低的级别,并且属于父组(层组或子组)/切片的节点可与属于子组/切片的节点具有父-子关系。
每当树结构(例如,八叉树或LOD)的深度或级别开始,或者在层组(或子组或切片)的开始点或层组(或子组、切片)连续的八叉树深度处,根据实施方式的点云数据发送装置/方法就可设定或初始化上下文、邻居搜索范围或平面缓冲器信息。树结构的深度(或层)开始的时间指示何时到达树结构的深度(或层)中的最左侧节点。当树结构(八叉树或LOD结构)的深度(或级别)在相同的组(层组或子组、切片)内改变时,可不执行上述信息的初始化或设定。
根据实施方式,在对点云数据进行编码和解码时,可通过在对点云数据进行编码和解码时基于层组、子组或切片之间的关联延续参考层组、参考子组或参考切片的上下文来对当前层组、子组或切片进行编码/解码。根据实施方式的点云数据发送/接收装置/方法通过使用与参考层组、参考子组或参考切片相关的信息来提高比特流的压缩效率。
应用上下文延续可意指在编码/解码操作中延续使用关于相关参考层组、相关参考子组或相关参考切片的上下文信息(上下文模型、算术模型或概率范围信息)。在对点云数据进行编码/解码时,根据实施方式的点云数据发送/接收装置/方法可延续使用基于与当前组(层组或子组)或切片相关的参考组(参考层组或参考子组)或参考切片的上下文。上下文的延续是否可用(切片或组之间是否存在关系)可通过信令信息来定义。根据实施方式,当在编码/解码时存在经编码/解码的参考切片或参考组时,发送/接收装置/方法可基于与参考切片或参考组相关的上下文信息来对当前切片或当前组进行编码/解码。也就是说,可通过应用上下文延续来对当前切片或组进行编码/解码。
根据实施方式的上下文信息可指点云数据,例如,由图4和图11的算术编码器和/或算术解码器在对几何数据和/或属性数据进行编码和/或解码时生成的附加信息。根据实施方式,在根据实施方式的编码和/或解码中对当前点云数据进行编码/解码时,可以基于根据先前点云数据计算的上下文信息来高效地压缩和重构当前点云数据。
在下文中,将描述算术编码。
算术编码是用于无损压缩的熵编码算法之一。算术编码可用单个实数n代替整个消息。
算术编码可基于消息中出现的符号的出现概率划分0.0至1.0的范围。例如,假设消息中符号“a”的出现概率为60%,消息中符号“b”的出现概率为20%,并且消息中符号“c”的出现概率为20%。在第一步骤中,0.0至1.0的范围可被划分成表示符号“a”的出现概率的0.0至0.6的范围、表示符号“b”的出现概率的0.6至0.8的范围以及表示符号“c”的出现概率的0.8至1.0的范围。在这种情况下,将诸如0.0至1.0的概率范围被划分的比率称为概率模型(或概率模式)或上下文模型。
例如,在对符号“abc”应用算术编码时,第一编码符号为“a”,因此它对应于0.0至0.6的范围。在下一步骤中,将与“a”相对应的0.0至0.6的范围再次划分成60%、20%和20%的比例。因此,0.0至0.6的范围可划分成0.0至0.36的范围、0.36至0.48的范围和0.48至0.6的范围。接下来,第二编码符号为“b”,因此它对应于0.36至0.48的范围。当与“b”相对应的0.36至0.48的范围进一步划分成60%、20%和20%的比例时,其可划分成0.36至0.432的范围、0.432至0.456的范围和0.456至0.48的范围。接下来,第三编码符号为“c”,因此它对应于0.456至0.48的范围。也就是说,在算术编码中,根据概率模型或上下文模型再次划分与编码符号相对应的范围,然后选择根据下一编码符号划分的范围中的任一者。通过重复该过程,算术编码被操作。
在上面的示例中,在对消息“abc”进行编码之后推导出的概率范围对应于0.456至0.48的范围。因此,消息“abc”可被编码成该范围内的实数。例如,实数0.47可表示“abc”。值0.47被发送到根据实施方式的解码器。解码器可在根据上下文模型划分的概率范围中检查0.47的值所属的概率范围,并且将消息解码成与该概率范围相对应的符号。
概率模型(或概率模式)或上下文模型可以是根据算术编码算法最初确定的模型,或通过在执行编码/解码时检查符号的出现概率而配置的模型。可在编码/解码操作期间更新概率模型或上下文模型。
根据实施方式的点云数据发送/接收装置在执行编码/解码时应用上下文延续,这意指通过参考切片或参考组的算术编码计算的概率范围来对当前切片或当前组进行延续编码。例如,当在参考切片的算术编码中推导的最后概率范围是0.456至0.48时,可根据上下文模型或概率模型再次划分从0.456到0.48的范围以对当前切片进行延续编码。也就是说,针对每一个切片或组(层组或子组),可不初始化概率范围或上下文模型。相反,可延续通过关系搜索推导的参考切片的概率范围来对当前切片进行编码/解码。
在编码/解码时,根据实施方式的点云数据发送/接收装置/方法可使用上下文自适应二进制算术编码(CABAC)。用于切片或组的算术编码的上下文模型(或概率模式)可针对每一个切片或组来初始化,或者可在当前切片或当前组中重新使用在相关参考切片或参考组中使用的概率模式。
另外,当前切片可在从相关参考切片推导的概率范围内被延续编码,或者可使用概率范围信息进行解码。在切片具有类似特性的情况下,可通过重用概率模式来利用符号间冗余。由此,可提高压缩效率。使用与在参考切片中使用的概率模式相同的概率模式具有与使用参考切片的上下文模型相同的含义。即使在除了CABAC之外的算术编码、霍夫曼编码或范围编码中,也可重新使用参考切片的概率模式或上下文模型。
编码器过程
层组切片编码器的输入是描述层组切片的结构的参数和点云数据。在每个树深度的开始处,可使用层组结构参数来确定目标树深度的层组。与层组索引一起,可使用子组边界框来确定每个节点的子组索引。当节点的子组改变时,保存由先前的子组编码器使用的上下文状态和缓冲器,并且加载当前子组编码器的上下文状态和缓冲器。当单独的编码器用于每个子组时,上下文状态可在子组内继续。此外,为了将邻居节点限制在与当前节点相同的子组中,可考虑在图集边界上的子组边界来更新几何占用图集的范围。这两种方法确保了每个编码的比特流可在没有关于邻居子组的节点信息的情况下被独立解码。可针对所有树深度中的所有节点递归地执行该过程。当到达目标树深度处的节点末尾时,生成与每个层组的子组一对一匹配的精细粒度切片(FGS)。在下面的代码中描述了用于独立解码的技术。
保存并加载编码器(用层组和子组确定)
为了确保根据实施方式的每个子组的独立解码,需要保存和加载编码器状态(或上下文信息)。可对树层的每个节点执行该过程以提供灵活的子组分割。
针对每个树层,针对层组内的所有树深度确定并固定树层的层组。由于层组是连续的树层的集合,因此,层组索引在层组的开始处改变。利用固定的层组,确定子组。由于子组是在子组边界框内定界的节点集合,因此,通过比较节点的位置和子组边界框来找到节点的子组。每当子组或层组改变,保存先前子组的编码器状态(或上下文信息)以供将来使用,并且加载当前子组的编码器状态(或上下文信息)以用于延续编码。
下面给出代码。
for(depth=0;depth<maxDepth;depth++){
//根据实施方式的发送/接收方法/装置可执行树结构的从深度0到最大深度的以下操作。
//确定层组索引,其中,确定层组索引。
if(depth==0){
//如果深度为0,则这是树结构的开始,这意指层组的开始。
curLayerGroupId=0;
curSubgroupId=0;
//初始化当前层组索引(curLayerGroupId)和当前子组索引(curSubgroupId)。初始化表示所述当前层组的子组的索引以及层组的索引。
load current context state;
//加载当前上下文状态信息。
sum_layers=numLayersPerLayerGroup[curLayerGroupId];
}
else if(depth==sum_layers){
//如果深度等于层的总和(sum_layers),则这指示层组改变的点。
prevLayerGroupId=curLayerGroupId++;
//由于层组改变,因此,当前层组的索引值变为先前层组的索引值,并且当前层组索引的值递增1。
prevSubgroupId=curSubgroupId;
curSubgroupId=0;
//当前子组索引变为先前子组索引,并且在新层组中将子组索引初始化为0。
save previous encoder state;
load current encoder state;
//保存先前编码器的上下文信息(编码器状态信息),并且加载当前编码器的上下文信息(编码器状态信息)。
sum_layers+=numLayersPerLayerGroup[curLayerGroupId];
}
else if(numSubgroupsMinus1[curLayerGroupId]>0){
//表示在不改变层组的情况下增大八叉树深度的情况。
prevSubgroupId=curSubgroupId;
curSubgroupId=0;
//保留层组索引,当前子组索引变为先前子组索引,并且当前子组索引(curSubgroupId)被初始化为0。子组随着深度改变而改变。)
//如果使用子组,则需要初始化。
save previous encoder state;
reload current encoder state;
//保存先前编码器上下文状态。
//加载当前编码器上下文状态。它可被初始化为基于层组索引和子组索引的参考上下文。)
}
for(all nodes in curLayerGroupId){
//针对当前层组中的所有节点确定子组索引。
if(!(nodePos>=bbox_min&&nodePos<bbox_max)){
for(i=0;i<=numSubgroupsMinus1[curLayerGroupId];i++){
//循环被执行i次,i等于层组中的子组数。
if(nodePos>=bbox_min[i]&&nodePos<bbox_max[i]){
//如果节点的位置高于子组的最小边界值并且低于子组的最大边界值,则指示该节点被包括在该子组中。
prevSubgroupId=curSubgroupId;
curSubgroupId=i;
//当前子组索引变为先前子组索引,并且当前子组索引被设置为i。
save previous encoder state;
//保存并加载编码器状态,其中,保存先前编码器上下文信息。
if(first node of the current subgroup)
load reference encoder state;
//如果它是当前子组中的第一节点,则加载参考编码器状态(或参考上下文信息)。
else
reload current encoder state;
//如果它不是当前子组中的第一节点,则重新加载当前编码器状态(或当前上下文信息)。
break;
}}}}
}
根据代码的内容,根据实施方式的发送/接收装置/方法可通过在子组之间或层组之间参考上下文状态(或上下文信息)来对点云数据进行编码或解码。在这种情况下,根据实施方式的发送/接收装置/方法可通过将指示节点的位置的信息与关于子组的边界框信息进行比较来确定节点是否对应于子组。然后,可基于该节点是否属于该子组来参考上下文信息。
根据实施方式的发送/接收装置/方法可更新几何占用图集。
为了考虑几何占用图集中的子组边界,可在MortonMap3D类中定义_maxRange和_minRange。如果图集是在子组中,则_maxRange和_minRange可分别被设置为0和立方体的边长度。如果子组的最小边界大于图集的最小值,则_minRange可被设置为子组边界的最小值。如果子组的最大边界小于图集的最大值,则_maxRange可被设置为子组边界的最大值。这些范围可用于激活图集的与子组边界框交叠的一部分,并且该活动区域中的节点可用作邻居。这确保可在没有来自邻居子组的节点的情况下对精细粒度切片(FGS)进行解码。
class MortonMap3D{
setRange(){
for(m=0;m<3;m++){
//_maxRange
if(bboxMax<atlasOrigin+_cubeSize)
_maxRange[m]=bboxMax-atlasOrigin;
else
_maxRange[m]=_cubeSize;
//_minRange
if(bboxMin>atlasOrigin)
_minRange[m]=bboxMin-atlasOrigin;
else
_minRange[m]=0;
}}
}
参照图25,根据实施方式的发送装置/方法可执行包括确定层组(S2501)、确定属于层组的子组(S2502)、确定子组是否已经改变(S2503)的操作。当子组已改变时,它可保存和加载上下文状态信息(S2504)。然后,更新几何占用图集(S2505)。在子组没有改变的情况下,可立即更新几何占用图集(S2505)。
确定层组(S2501),确定子组(S2502),确定子组是否已经改变(S2503)以及更新图集(S2505)可根据上述代码执行。
根据实施方式的发送/接收装置/方法可通过将指示节点位置的信息与子组的边界框信息(最小值和最大值)进行比较来确定节点所属的子组。因此,可通过基于节点所属的子组和层组加载上下文信息来对节点进行编码或解码,并且可通过参考所保存的与另一子组或层组相关的上下文信息来对节点进行编码或解码。
该节点可被编码(S2506),并且可确定该节点是否是该子组中的最后一个节点(S2507)。基于确定的结果,可针对与层组或子组相对应的所有节点(或点)重复该过程。一旦对树结构中给定深度处的所有节点进行了编码,就可确定该深度是否是树结构中的最后一个深度(S2508),并且可基于确定结果对下一深度重复该过程。
可生成数据单元报头以生成关于上下文信息的参考关系的信令信息,并且根据实施方式的接收装置/方法可基于信令信息对点云数据进行解码。
图26示出了根据实施方式的解码方法。
图26中的基于层组和子组的点云数据的解码可由图1的接收装置、图2的解码、图11的接收装置/方法、图13的接收装置/方法、图14的装置、图15的解码器、图24的解码器、图31至图33的解码器、图35的发送和接收方法或其任何组合来执行。
几何解码器过程
针对第一精细粒度切片(FGS)的层组切片参考SW的解码过程包括对参数集进行解析、对数据单元报头进行解析和对数据单元进行解码。当启用层组切片时,如果后续的从属几何数据单元具有相同的切片ID,则它们可被视为针对第一切片的FGS。考虑到父子组与子子组之间的节点继承和上下文参考,假设FGS的顺序按layer_group_id和subgroup_id以升序排序。
在对从属数据单元进行解码之前,将先前切片的上下文状态、输出节点和层组参数保存在缓冲器中以用于下一切片。在根据实施方式的解码中,在对从属数据单元报头进行解析之后,可通过找到其子组边界框是当前子组边界框的超集的子组来检测当前子组的父组。一旦确定了父子组,就选择当前从属数据单元的父节点。通过使用所选择的节点作为解码过程的初始节点,当前从属数据单元被解码直到由当前层组覆盖的树层。递归地执行从属数据单元的解码过程直到几何比特流的结尾。
根据实施方式的从属数据单元可对应于节点、子组或层组。
在下文中,描述了用于找到父子组和父节点的过程。
父子组检测
在对FGS进行解码时,父子组的节点可用作子子组的输入以便于在层组边界内提供延续解码。这是由于层组切片的分层结构,并且可基于父-子空间关系来触发。子子组是父子组的子集,并且子子组的边界框在空间上与同一层组中的其它子子组的边界框是排它的。
基于该关系,可通过找到当前切片的空间超集来检测父子组的切片。父子组可通过将关于先前层组级别的子组的边界框信息与在数据单元报头中发信号通知的subgroup_bbox_origin和subgroup_bbox_size进行比较来找到。
以下是搜索父子组的代码。
parentLayerGroup=curLayerGroup–1;
//当前层组的索引值减1变为父层组的索引。
for(i=0;i<numSubgroups[parentLayerGroup];i++){
//循环被执行的次数与属于父层组的子组的数量一样多。
if(_bboxMin[parentLayerGroup][i]<=curBboxMin
&&_bboxMax[parentLayerGroup][i]>curBboxMin){
//将当前边界框的最小值和最大值与属于父层组的子组的边界框的最小值和最大值进行比较。
parentSubgroup=i;
//如果当前子组的边界框落入属于父层组的子组的边界框内,则父子组的索引被设置为i。
break;
}
}
根据上面的代码,为了检测当前子组的父子组,根据实施方式的接收装置/方法可将关于当前子组的边界框信息与关于其它子组的边界框信息进行比较。由此,它可检测其它子组中的哪一个是当前子组的父子组。然后,为了对当前子组进行解码,可参考关于父子组的上下文信息。由此,可执行高效的解码。
此外,为了高效解码,用于搜索父子组索引的起点可被指定为先前父子组。这是基于切片在层组和子组增大的方向上被排序的假设,并且若必要的话可添加切片重新排序。
以下是搜索父子组的代码。
parentLayerGroup=curLayerGroup-1;
if(层组的开始)
start=_prevParentSubgroupStart;
else
start=_prevParentSubgroup;//如果它不是层组的起点,则搜索以先前父子组开始。
for(i=start;i<numSubgroups[parentLayerGroup];i++){
if(_bboxMin[parentLayerGroup][i]<=curBboxMin
&&_bboxMax[parentLayerGroup][i]>curBboxMin){
parentSubgroup=i;
break;
}
}
_prevParentSubgroup=parentSubgroup;
输入父节点选择
在对从属切片进行解码时,父子组的输出节点可用作输入以对子子组进行解码。当父子组和子子组的子组边界框相同时,使用由父子组生成的所有节点。另一方面,当子组的子组边界框是父子组的子集时,根据实施方式的解码器需要选择实际的父节点。为了找到父节点,父子组的每个节点可与子子组的边界边界框(boundary bounding box)进行比较。
以下是搜索父节点的代码。
for(node=inNodes.begin();node!=inNodes.end();node++){
if(node.Pos>=bbox_min&&node.Pos<bbox_max)
fifo.emplace_back(node);
else
continue;
}
为了提高父节点选择的效率,可使用每个节点的选择状态。这是基于父节点只能包括在一个子组中的条件。
此外,当父子组边界框与当前子组边界框相同(在原点和大小上)时,父子组中的所有节点可以是当前子组的父节点。在这种情况下,可省略父节点选择过程以提高解码器效率。
for(node=inNodes.begin();node!=inNodes.end();node++){
if(node.IsSelectedFlag==false&&
(node.Pos>=bbox_min&&node.Pos<bbox_max)){
fifo.emplace_back(node);
node.IsSelectedFlag=true;
}
else
continue;
}
参照图26,根据实施方式的接收装置/方法包括对数据单元报头进行解析和对数据单元进行解析。根据实施方式,数据单元可包括点云数据,并且数据单元报头可包括对点云数据进行解码所需的参数信息。参数信息可以是图28至图30中公开的信息。数据单元可与可与层组或子组匹配的切片相对应。
参照图26,根据实施方式的接收装置/方法可确定是否启用层组切片(S2601),并且可响应于确定结果而不同地操作。当执行层组切片时,可更新层组参数和缓冲器(S2602),并且可对从属数据单元报头进行解析(S2603)。根据实施方式的接收装置/方法然后可检测父子组(S2604)并选择父节点输入(S2605)以对点云数据进行解码。然后,它可对从属数据单元进行解析(S2606),确定是否到达比特流的末尾(S2607),并且生成点云输出(S2608)。
参照图26描述的检测父子组(S2604)和选择父节点输入(S2605)可由上述代码执行。
图27示出了根据实施方式的比特流配置。
根据实施方式的方法/装置可生成如图27所示的比特流。比特流可包含编码的几何数据和属性数据,并且还包含参数信息。
参数信息可包括用于参照图15至图26描述的层配置的切片结构和用于可缩放发送的信令信息。
下面描述参数信息的语法和语义。
根据实施方式,可如下在比特流和SEI消息的参数集中定义关于分离的切片的信息。
比特流可包含序列参数集(SPS)、几何参数集(GPS)、属性参数集(APS)、几何切片报头和属性切片报头。几何切片报头可被称为几何数据单元报头,并且属性切片报头可被称为属性数据单元报头。也就是说,切片可被称为数据单元。
参数信息可根据信号被发送的位置而具有不同的含义。当在SPS中定义信号时,这可指示该信号被同等地应用于整个序列。当在GPS中定义信号时,这可指示该信号用于位置重构。当在APS中定义信号时,这可指示该信号被应用于属性重构。当在TPS中定义信号时,这可指示该信号仅被应用于拼块中的点。当在切片中传递信号时,这可指示信号仅应用于切片。另外,根据应用或系统,要应用的范围和方法可被定义在对应的位置或单独的位置以便被不同地使用。另外,当下面定义的语法元素可应用于多个点云数据流以及当前点云数据流时,它们可被承载在上级参数集中。
缩写含义如下。
SPS:序列参数集,GPS:几何参数集,APS:属性参数集,TPS:拼块参数集,Geom:几何比特流=几何切片报头+几何切片数据,Attr:属性比特流=属性切片报头+属性切片数据。
虽然实施方式独立于编码技术来定义信息,但是可结合编码技术来定义信息。为了支持局部不同的可缩放性,可在比特流中的拼块参数集中定义信息。另外,当下面定义的语法元素不仅可应用于当前点云数据流而且可应用于多个点云数据流时,它们可被承载在上级参数集等中。
另选地,可针对比特流定义网络抽象层(NAL)单元,并且可传递用于选择层的相关信息(诸如layer_id)。由此,可在系统级别选择比特流。
在下文中,根据实施方式的参数(其可被称为元数据、信令信息等)可在根据实施方式的发送器的过程中生成,并且被发送到根据实施方式的接收器,以在点云数据的重构中使用。
例如,参数可由根据实施方式的发送装置的元数据处理器(或元数据生成器)生成(这将在后面描述),并且可由根据实施方式的接收装置的元数据解析器获取。
描述层组结构的参数可在不同的级别发信号通知。公共结构信息在SPS中描述,并且每个层组或子组的细节可在切片报头中发信号通知。另外,引入层组结构清单和从属切片报头来描述总体层组结构。
下面描述切片的定义和用于发信号通知切片的方法。
1)切片的定义
A.切片:表示用一个独立精细粒度切片和零个或更多个从属精细粒度切片编码的点集合。
B.从属精细粒度切片:表示切片中的数据单元,该切片依赖于同一切片内的先前数据单元。
C.独立精细粒度切片:表示切片中的第一(几何)数据单元。
2)在SPS中启用精细粒度切片。
3)可由从属数据单元报头承载包括上下文继承(或参考)和切片特定的边界框的用于解码从属精细粒度切片的所需信息。
4)可定义层组结构清单以描述精细粒度切片之间的关系。
根据实施方式的精细粒度切片可与根据实施方式的层组或子组匹配。
在下文中,将参照图28至图30描述包含在比特流中的参数的语法/语义。
图28a和图28b示出了根据实施方式的序列参数集的语法。
图28a和图28b的语法可包含在图27的比特流中、由根据实施方式的编码器生成并由解码器解码。
序列参数集的语义
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_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。
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[i]字段。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属性是常量。
axis_coding_order指定X、Y和Z输出轴标签与重构的点云RecPic[pointidx][axis]中三个位置分量之间的对应关系,其中axis=0..2。
bypass_stream_enabled_flag等于1指定旁路编码模式可用于读取比特流。作为另一示例,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_flag等于1时,根据实施方式的SPS还可包括sps_extension_data_flag字段。sps_extension_data_flag字段可具有任何值。
layer_group_enabled_flag等于1指定切片的几何比特流包含在与编码层组或其子组匹配的多个切片中。layer_group_enabled_flag等于0指定切片的几何比特流包含在单个切片中。
num_layer_groups_minus1加1指定表示作为几何编码树结构的一部分的连续树层的组的层组的数量。num_layer_groups_minus1应在0至编码树层数的范围内。
layer_group_id指定切片的层组的标识符。layer_group_id在0至num_layer_groups_minus1的范围内。
num_layers_minus1加1指定包括在第i层组中的编码层的数量。可通过将针对i的所有(num_layers_minus1[i]+1)从0加到num_layer_groups_minus1来推导层组的总数量。
subgroup_enabled_flag等于1指示第i层组被划分成两个或更多个子组。在这种情况下,子组中的点集合与层组中的点集合相同。当第i层组的subgroup_enabled_flag等于1,并且j大于或等于i时,第j层组的subgroup_enabled_flag将等于1。subgroup_enabled_flag等于0指示当前层组包含在单个切片中而不被划分成多个子组。
subgroup_bbox_origin_bits_minus1加1指示语法元素subgroup_bbox_origin的以比特为单位的长度。
subgroup_bbox_size_bits_minus1加1指示语法元素subgroup_bbox_size的以比特为单位的长度。
图29示出了根据实施方式的从属几何数据单元报头的语法。
图29的语法可包括在图27的比特流中、由根据实施方式的编码器生成并由解码器解码。
从属几何数据单元报头的语义
dgdu_geometry_parameter_set_id指示由gps_geom_parameter_set_id指示的活动GPS。dgdu_geometry_parameter_set_id的值应等于对应切片的gdu_geometry_parameter_set_id的值。
dgdu_slice_id指示当前从属几何数据单元所属的切片。
layer_group_id指示切片的层组标识符。layer_group_id在0至num_layer_groups_minus1的范围内。当不存在时,layer_group_id被推断为0。
subgroup_id指示layer_group_id所参考的层组的子组标识符。subgroup_id在0至num_subgroups_minus1[layer_group_id]的范围内。subgroup_id指示同一layer_group_id中的切片的顺序。当不存在时,subgroup_id可被推断为0。
subgroup_bbox_origin指示由layer_group_id指示的第j层组的由subgroup_id指示的第i子组的子组边界框的原点的位置。
subgroup_bbox_size指示由layer_group_id指示的第j层组的由subgroup_id指示的第i子组的子组边界框的大小。
通过subgroup_bbox_origin和subgroup_bbox_size描述子组内点的边界框。当i和j不相等时,第i子组的边界框区域与第j子组的边界框不交叠。
ref_layer_group_id指示用于当前从属数据单元的上下文参考的层组标识符。ref_layer_group_id在0至当前从属数据单元的layer_group_id的范围内。从属数据单元可对应于层组或子组。
ref_subgroup_id指示由ref_layer_group_id指示的层组的参考子组的标识符。ref_subgroup_id在0至由ref_layer_group_id指示的层组的num_subgroup_id_minus1的范围内。
图30示出了根据实施方式的层组结构清单的语法。
图30的语法可包括在图27的比特流中、由根据实施方式的编码器生成并由解码器解码。
层组结构清单的语法
lgsi_seq_parameter_set_id指示sps_seq_parameter_set_id的值。比特流一致性的要求是lgsi_seq_parameter_set_id等于0。
lgsi_frame_ctr_lsb_bits指定语法元素lgsi_frame_ctr_lsb的以比特为单位的长度。
lgsi_frame_ctr_lsb指定组结构清单对其有效的FrameCtr的lgsi_frame_ctr_lsb_bits的最低有效位。层组结构清单保持有效,直到它被另一层组结构清单替换。
lgsi_num_slice_ids_minus1加1可指示层组结构清单中的切片的数量。
lgsi_slice_id指定层组结构清单内的第sid切片的切片ID。比特流一致性的要求是lgsi_slice_id的所有值在层组结构清单中是唯一的。
lgsi_num_layer_groups_minus1+1指示层组的数量。
lasi_subgroup_bbox_origin_bits_minus1加1指示语法元素lgsi_subgroup_bbox_origin的以比特为单位的长度。
lgsi_subgroup_bbox_size_bits_minus1加1指示语法元素lgsi_subgroup_bbox_size的以比特为单位的长度。
lgsi_layer_group_id指定层的标识符。
lgsi_num_layers_minus1加1指示第sid切片中的第i层组的切片中的编码的层的数量。对第n层组进行解码所需的编码的层的总数量等于针对从0到n的i的1gsi_num_layers_minus1[sid][i]+1的和。
lgsi_num_subgroups_minus1加1指定第sid切片中的第i层组中的子组的数量。
lgsi_subgroup_id指示子组的标识符。lgsi_subgroup_id在0至lgsi_num_subgroups_minus1的范围内。
lgsi_parent_subgroup_id指示由lgsi_subgroup_id指示的子组的父子组的标识符。lgsi_parent_subgroup_id在由lgsi_subgroup_id指示的层组中处于0至gi_num_subgroups_minus1的范围内。
lgsi_subgroup_bbox_origin指示由lgsi_layer_group_id指示的层组的由lgsi_subgroup_id指示的子组的子组边界框的原点。
lgsi_subgroup_bbox_size指示由lgsi_layer_group_id指示的层组的由lgsi_subgroup_id指示的子组的子组边界框的大小。
lgsi_origin_bits_minus1加1指示语法元素lgsi_origin_xyz的以比特为单位的长度。
lgsi_origin_xyz指示所有分区的原点。lgsi_origin_xyz[k]的值可等于sps_bounding_box_offset[k]。
lgsi_origin_log2_scale指示用于缩放lgsi_origin_xyz的分量的缩放因子。lgsi_origin_log2_scale的值应等于sps_bounding_box_offset_log2_scale。
图31示出了根据实施方式的点云数据发送/接收装置/方法。
根据实施方式的点云数据发送装置/方法,诸如图1的发送装置10000、点云视频编码器10002和发送器10003、图2的获取20000/编码20001/发送20002、图4的编码器、图12的发送装置、图14的装置、图15的编码器、或图1的接收装置10004、接收器10005和点云视频解码器10006、图2的发送20002/解码20003/渲染20004、图10和图11的解码器、图13的接收装置、图14的装置和图15的解码器可对层结构中的点云数据进行编码或解码。图31的每个组件可对应于硬件、软件、处理器和/或其组合。
根据实施方式的点云数据发送/接收装置/方法可通过根据接收器的性能或传输环境调整压缩率或数据的数量来在基于PCC的服务中发送和接收点云数据。在当点云数据被捆绑在单个切片中时接收器性能或传输环境改变的情况下,每个环境的比特流可被预代码转换并被单独存储以在传输时选择,或者可在传输之前代码转换。然而,在接收器的环境增加或传输环境频繁改变的情况下,可能由于存储空间问题或代码转换而发生延迟。
图32示出了根据实施方式的点云数据发送/接收装置/方法。
根据实施方式的点云数据发送装置/方法,诸如图1的发送装置10000、点云视频编码器10002和发送器10003、图2的获取20000-编码20001-发送20002、图4的编码器、图12的发送装置、图14的装置、图15的编码器、或图1的接收装置10004、接收器10005和点云视频解码器10006、图2的发送20002-解码20003-渲染20004、图10和图11的解码器、图13的接收装置、图14的装置和图15的解码器可对层结构中的点云数据进行编码或解码。图32的每个组件可对应于硬件、软件、处理器和/或其组合。
根据实施方式的根据层划分和传递压缩数据允许在没有单独的代码转换操作的情况下在比特流阶段中仅选择性地传递预压缩数据的必要部分。这在存储空间方面是高效的,因为每流只需要一个存储空间。它在(比特流选择器)带宽方面也是高效的,因为在发送之前只选择必要的层。
参照图32,根据实施方式的编码器3201可选择比特流中的必要部分(比特流选择器)。此外,根据实施方式,可将所选比特流发送到解码器3202。解码器3202可从接收的比特流重构部分几何和部分属性。
图33示出了根据实施方式的点云数据发送/接收装置/方法。
根据实施方式的点云数据发送装置/方法,诸如图1的发送装置10000、点云视频编码器10002和发送器10003、图2的获取20000-编码20001-发送20002、图4的编码器、图12的发送装置、图14的装置、图15的编码器、或图1的接收装置10004、接收器10005和点云视频解码器10006、图2的发送20002-解码20003-渲染20004、图10和图11的解码器、图13的接收装置、图14的装置和图15的解码器可对层结构中的点云数据进行编码或解码。图33的每个组件可对应于硬件、软件、处理器和/或其组合。
实施方式包括一种基于给定准则对点云的压缩数据进行分段和发送的方法。当使用分层编码时,可根据层划分压缩数据,这可增加接收侧的效率。
图33示出了在发送由层组成的点云数据的情况下在发送侧和接收侧的操作。如果与接收器的性能无关地发送使得能够重构整个点云数据的信息,则接收器需要在通过解码重构点云数据之后执行选择与所需层相对应的数据的过程(即,数据选择或子采样)。在这种情况下,由于传递的比特流已经被解码,因此,在目标为低延迟的接收器中可能出现延迟,或者根据接收器性能可能不执行解码。
根据实施方式,当比特流被划分成切片并被传递时,接收器可根据解码器性能或要根据应用领域表示的点云数据的密度选择性地将比特流传递到解码器。在这种情况下,通过在解码之前执行选择,可提高解码器效率,并且可支持具有各种性能的解码器。换句话说,根据实施方式的发送/接收装置可选择要发送和接收的比特流,并且可通过对所选比特流进行重构来支持不同性能的解码器。
根据实施方式的点云数据发送/接收方法/装置基于所提出的操作、信令方案等提供对点云数据的高效空间随机访问。
根据实施方式的方法/装置可执行包括基于根据层组的分区结构对点云数据进行编码和解码的操作,以用于具有低延迟的大点云编码。
具体地,可提供一种用于高效地存储和发送具有宽分布和高点密度的大量点云数据的压缩结构。
另外,对于具有宽分布和高密度点的大的点云,由于需要处理大量比特流以访问关注区域,因此,可能出现延迟问题。根据实施方式的方法/装置可解决该延迟问题。
对于根据实施方式的用于压缩具有低延迟的大点云数据的分层点云结构,可使用拼块/方块/切片层组/切片子组、拼块/切片层组/切片子组、切片层组/切片子组或层组bbox→子组bbox关系。
图34示出了根据实施方式的发送点云数据的方法。
根据实施方式的点云数据发送方法包括对点云数据进行编码(S3400)和发送包含点云数据的比特流(S3401)。
S3400和S3401可对应于参照图1、图2、图4、图12、图14、图15、图24、图25和图31至图33描述的点云数据编码和发送。
点云数据的编码包括生成点云数据的树结构。树结构可表示包括可按深度(或级别)区分的层的结构(例如,八叉树或细节级别(LOD))。根据实施方式的树结构可包括分层层,每个分层层可通过树结构的深度或级别来区分。例如,在八叉树结构中,深度从根节点到叶节点增加,并且相同深度的节点可构成单层。
此外,点云数据的编码可包括基于树结构的层将点云数据划分成多个组。至少一个组可包括多个子组。这些组可表示层组。
根据实施方式的发送/接收装置可以树结构配置点云数据并且基于层配置组。例如,多个层可配置为一个层组。根据实施方式的树结构可包括多个层组。层组可进一步划分为子组,并且层组可包括多个子组。
根据实施方式的树结构、层组和子组在图16、图19和图20至图22中示出。
根据实施方式的点云数据的编码包括基于上下文信息对属于子组的点云数据进行编码。例如,当属于第一层组的子组之一是第一子组并且属于第二层组的子组之一是第二子组时,可基于关于第一子组的上下文信息对属于第二子组的点云数据进行编码。可保存关于第二子组的上下文信息以用于对属于另一子组的点云数据进行编码。换句话说,根据实施方式的点云数据的编码可包括基于关于第一子组的上下文信息对第二子组进行编码,以及保存关于第二子组的上下文信息。
参照图25描述根据实施方式的基于上下文信息的编码。
根据实施方式的点云数据的编码可包括检测当前节点(或点)所属的子组,以及基于关于检测到的子组的信息对当前节点(或点)进行编码。当前节点可表示要编码的节点(或点)。例如,可将当前节点所属的子组检测为第二子组,然后可参照第一子组的上下文对当前节点进行编码。在这种情况下,第一子组可包括属于第二子组的父子组的点云数据。检测子组可具有与确定子组相同的含义。换句话说,可基于针对每个子组定义的边界框信息来检测包含当前节点的子组。另选地,可通过向子组指派索引来确定子组。
根据实施方式,父子组可包括子子组。在树结构中,父子组可对应于子子组的超集。因为属于父子组的点云数据和属于子子组的点云数据是相关的,所以可通过基于关于属于父子组的点云数据的上下文信息对属于子子组的点云数据进行编码来提高编码效率。父子组可属于较低层组,而子子组可属于较高层组。点云数据的密度在较高层组中较高。
当检测到当前节点所属的子组时,根据实施方式的发送装置/方法可将关于当前节点的位置信息与关于该子组的边界框信息进行比较。例如,如果当前节点的位置处于子组的边界框内,则可认识到该子组是当前节点所属的子组。可将关于当前节点的位置信息与子组的边界框的最小值和最大值进行比较。
根据实施方式的发送装置/方法可操作以生成与前述操作相关的信令信息,并且将信令信息传递到根据实施方式的接收装置。根据实施方式的接收方法可包括接收相关信令信息,以及基于信令信息对点云数据进行解码。相关信令信息在图28至图30中示出。
根据实施方式的比特流包含指示构成树结构的层组中的至少一个层组是否包括多个子组的信息。例如,该信息可以是如图28所述的subgroup_enabled_flag。此外,根据实施方式的比特流可包含关于子组的边界框的原点信息和大小信息。该信息可表示如图29所描述的参数subgroup_bbox_origin和subgroup_bbox_size。
根据前述实施方式的发送方法的每个步骤可由编码器和发送器来执行。此外,每个步骤可由诸如处理器和存储器的硬件和软件的组合来执行。每个步骤可由多个物理上分离的组件来执行,或者多个步骤可由单个组件来执行。可使用诸如单元、模块或块的术语来指代能够执行每个步骤的组件。例如,根据实施方式的生成树结构的步骤可由树结构生成单元来执行。
图35示出了根据实施方式的接收点云数据的方法。
根据实施方式的接收点云数据的方法可对应于图34的发送方法。
根据实施方式的接收点云数据的方法包括接收包含点云数据的比特流(S3500)和解码点云数据(S3501)。
S3500和S3501可对应于参照图1、图2、图11、图13、图14、图15、图24、图26和图31至图33描述的点云数据的接收和解码。
点云数据的解码包括配置点云数据的树结构。树结构可表示包括可按深度(或级别)区分的层的结构(例如,八叉树或细节级别(LOD))。根据实施方式的树结构可包括分层层,每个分层层可通过树结构的深度或级别来区分。例如,在八叉树结构中,深度从根节点到叶节点增加,并且相同深度的节点可构成单层。
此外,点云数据的解码可包括基于树结构的层将点云数据划分成多个组。至少一个组可包括多个子组。这些组可表示层组。
根据实施方式的发送/接收装置可以树结构配置点云数据并且基于层配置组。例如,多个层可配置为一个层组。根据实施方式的树结构可包括多个层组。层组可进一步划分成子组,并且层组可包括多个子组。
根据实施方式的树结构、层组和子组在图16、图19和图20至图22中示出。
根据实施方式的点云数据的解码包括基于上下文信息对属于子组的点云数据进行解码。例如,当属于第一层组的子组之一是第一子组并且属于第二层组的子组之一是第二子组时,可基于关于第一子组的上下文信息对属于第二子组的点云数据进行解码。可保存关于第二子组的上下文信息以用于对属于另一子组的点云数据进行解码。换句话说,根据实施方式的点云数据的解码可包括基于关于第一子组的上下文信息对第二子组进行解码,以及保存关于第二子组的上下文信息。
参照图26描述根据实施方式的基于上下文信息的解码。
根据实施方式的点云数据的解码可包括检测当前节点(或点)所属的子组,以及基于关于检测到的子组的信息对当前节点(或点)进行解码。当前节点可表示要解码的节点(或点)。例如,可将当前节点所属的子组检测为第二子组,然后可参照第一子组的上下文对当前节点进行解码。在这种情况下,第一子组可包括属于第二子组的父子组的点云数据。
根据实施方式,父子组可包括子子组。在树结构中,父子组可对应于子子组的超集。因为属于父子组的点云数据和属于子子组的点云数据是相关的,所以可通过基于关于属于父子组的点云数据的上下文信息对属于子子组的点云数据进行编码来提高编码效率。父子组可属于较低层组,而子子组可属于较高层组。点云数据的密度在较高层组中较高。
根据实施方式的点云数据的解码还可包括检测父子组。例如,当第一子组是第二子组的父子组时,可检测第一子组以便于对属于第二子组的节点(或点)进行解码。在父子组的检测中,可通过找到低于第二子组所属的第二层组的第一层组,并将关于第一层组中的子组的边界框信息与关于第二子组的边界框信息进行比较来检测第二子组的父子组。边界框信息包括最大和最小信息。一旦检测到作为第二子组的父子组的第一子组,就可基于关于第一子组的上下文信息来对包括在第二子组中的节点(或点)进行解码。
根据实施方式的接收装置/方法可基于边界框信息来检测节点所属的子组和父子组,而无需单独的参考层组信息或参考子组信息。
在检测当前节点所属的子组中,根据实施方式的接收装置/方法可将关于当前节点的位置信息与关于该子组的边界框信息进行比较。例如,如果当前节点的位置处于子组的边界框内,则可确定该子组是当前节点所属的子组。可将关于当前节点的位置信息与子组的边界框的最小值和最大值进行比较。
根据实施方式的接收装置/方法可接收相关信令信息并且基于此解码点云数据。相关信令信息参照图28至图30进行了描述。
根据实施方式的比特流包含指示构成树结构的层组中的至少一个层组是否包括多个子组的信息。例如,该信息可以是如图28所述的subgroup_enabled_flag。此外,根据实施方式的比特流可包含关于子组的边界框的原点信息和大小信息。该信息可表示如图29所描述的参数subgroup_bbox_origin和subgroup_bbox_size。
根据前述实施方式的接收方法的每个步骤可由解码器和发送器来执行。此外,每个步骤可由诸如处理器和存储器的硬件和软件的组合来执行。每个步骤可由多个物理上分离的组件来执行,或者多个步骤可由单个组件来执行。可使用诸如单元、模块或块的术语来指代能够执行每个步骤的组件。例如,根据实施方式的生成树结构的步骤可由树结构生成单元来执行。
根据实施方式的发送/接收装置/方法可将针对点云数据的子组和层组配置为参照关于相关父子组的上下文信息来对节点(或点)进行编码和解码,从而提高数据处理的效率。即使没有接收到关于单独参考的组的标识符信息,接收侧也可基于边界框信息来检测父子组。因此,可高效地发送/接收参数。此外,可基于关于子组的边界框信息来优化几何占用图集的范围,并且可不参考子组的边界框的范围之外的邻居节点。因此,可高效地执行数据处理过程。
根据实施方式的点云数据的解码可包括以下操作:1)确定层组信息,2)确定子组信息,和/或3)更新图集信息。操作中的每一个可对应于根据实施方式的点云数据发送/接收方法/装置的每个操作。
1)确定层组信息可包括以下操作。可依次执行每个操作,并且根据实施方式可跳过一些操作:
在层组的起点初始化层组索引、子组索引和子组边界框。除了在新层组的起点之外,在层组改变的点处,递增层组索引并将子组索引初始化为0。
加载保存在缓冲器中的上下文状态(或上下文信息)并且初始化关于当前子组的上下文信息。这里,上下文信息可被初始化为基于层组索引和子组索引的参考上下文。
更新关于子组边界框的信息(例如,范围等)。当深度增加而层组不改变时,维持层组索引,将子组索引初始化为0,并且保存先前上下文状态。基于层组索引和子组索引将上下文初始化为参考上下文。
更新关于子组边界框的信息。
2)子组信息的确定可包括以下操作。可依次执行每个操作,并且根据实施方式可跳过一些操作。
确定当前节点(或点)的位置是否包含在先前节点的子组边界框内。检测包含当前节点的子组并且更新子组的索引。当节点是子组的开始时,基于当前节点的层组索引和子组索引来检测父节点信息。
初始化所保存的上下文信息。可基于层组索引和子组索引将上下文信息初始化为参考上下文。
当子组未改变时,初始化临时保存的上下文信息。可基于层组索引和子组索引将上下文初始化为参考上下文。
更新关于子组边界框的信息。
3)图集信息的更新可包括以下操作。可依次执行每个操作,并且根据实施方式可跳过一些操作。
将用于确定邻居是否在图集中的范围更新为子组边界框的范围。
根据子组边界框更新在图集内新定义的邻居的范围。这里,在子组边界框的边界小于图集的边界的情况下,基于子组边界框更新图集的边界范围。
根据实施方式的点云数据发送装置/方法可更新子组信息。可每点(或节点)更新子组信息。在子组的开始处以及在子组连续的节点的位置处,可更新上下文、邻居搜索范围和平面缓冲器信息。子组可对应于一个或更多个切片。根据实施方式的切片可被称为作为包含在比特流中的单个单元的单元。
由于根据实施方式子组可在层组内改变,因此,可通过在每个点(或节点)处检查关于子组的信息来更新关于子组的信息。
当邻居节点的范围受限时,可基于子组边界框来更新用于有效地使用关于邻居节点的预先保存的占用信息的图集的范围。
根据实施方式的树结构、层结构等可被称为数据结构。
数据结构可表示针对几何数据的八叉树结构和/或针对属性数据的LOD结构。根据实施方式的数据结构可以依赖关系和分层结构来表示点云数据,其中,可通过深度、级别等来区分上层和下层。此外,根据实施方式的包括在数据结构中的八叉树结构、LOD、层结构等可互换地引用。
根据实施方式的数据结构可由几何编码器的八叉树合成器11001和属性编码器的LOD生成器11008生成。类似地,在接收侧,它可由解码器的每个对应组件来处理。
根据实施方式的树结构可包括层组。
层组可包括包含点云数据的父-子节点。层组可如在父层组和子层组的关系中分层地配置。
单层组可被包括在切片中,或者多层组可被包括在切片中以用于发送/接收。此外,层组可被划分(分段)成多个子组。可基于解码器性能、分辨率和ROI来将每个层组和子组传递到接收器。
可对包括在切片中的每个层组执行编码/解码。编码/解码可按顺序从父节点进行到子节点。也就是说,编码/解码可从较低层组进行到较高层组。
根据实施方式的上下文信息可指在由图4和图11的算术编码器和/或算术解码器对点云数据(例如,几何数据和/或属性数据)进行编码和/或解码时所生成的附加信息。当根据实施方式对当前点云数据进行编码和/或解码时,可基于从先前点云数据推导的上下文信息来高效地压缩和重构当前点云数据。
可通过存储和加载关于切片的子组边界框的上下文信息来利用上下文加载和参考,该切片的子组边界框与当前切片的子组边界框对应或包括当前切片的子组边界框或被包括在当前切片的子组边界框中。当前子组边界框和参考子组边界框可以是父-子关系。
可高效地设定子组边界框的大小。位于超过子组边界框的大小的区域中的节点可被认为是未被占用的节点。换句话说,当从当前点的邻居点执行预测编码时,邻居点的搜索范围可被限制在子组边界框的区域内。
发送/接收点云数据的方法可包括存储上下文。当终止当前层组或当前子组的编码/解码并对下一切片、下一层组或下一子组进行编码/解码时,可保存先前上下文信息。通过加载层组0至N(包括子组)的上下文并保存该上下文,可在不加重缓冲器负担的情况下对点云数据进行编码/解码。
根据实施方式的发送/接收装置/方法可通过参考处于高度相关的父-子关系的组或切片的上下文来提高编码/解码效率。因此,可并行处理多个组,这可提高处理效率。
根据实施方式的发送/接收装置/方法可通过在为包含点云数据的比特流配置切片时考虑分层结构来支持低延迟压缩,并且可高效地部分重构点云数据。
根据实施方式的发送/接收装置/方法可通过基于点云数据的分层结构参照关于与当前子组相关的父子组的上下文信息执行编码/解码来增加压缩效率。此外,在参考与当前子组相关的父子组中,可基于关于子组的边界框信息以及索引信息来检测父子组,从而减少发送/接收数据的量并提高数据处理过程的效率。
按照方法和/或装置描述了实施方式,并且方法的描述和装置的描述可彼此互补地应用。
尽管为了简单起见单独描述了附图,但是可通过将各个图中所示的实施方式组合来设计新的实施方式。根据本领域技术人员的需要设计可由计算机读取的记录有用于执行上述实施方式的程序的记录介质也落在所附权利要求及其等同物的范围内。根据实施方式的装置和方法可不限于上述实施方式的配置和方法。可通过选择性地组合所有或一些实施方式来对实施方式进行各种修改。尽管参照附图描述了优选实施方式,但本领域技术人员将理解,在不脱离所附权利要求中描述的本公开的精神或范围的情况下,可对实施方式进行各种修改和变化。这些修改不应从实施方式的技术思想或观点单独地理解。
实施方式的装置的各种元件可由硬件、软件、固件或其组合实现。实施方式中的各种元件可由单个芯片(例如,单个硬件电路)实现。根据实施方式,根据实施方式的组件可分别被实现为单独的芯片。根据实施方式,根据实施方式的装置的至少一个或更多个组件可包括能够执行一个或更多个程序的一个或更多个处理器。一个或更多个程序可执行根据实施方式的任一个或更多个操作/方法或者包括用于执行其的指令。用于执行根据实施方式的装置的方法/操作的可执行指令可被存储在被配置为由一个或更多个处理器执行的非暂时性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 (19)
1.一种发送点云数据的方法,所述方法包括以下步骤:
对点云数据进行编码;以及
发送包含所述点云数据的比特流。
2.根据权利要求1所述的方法,其中,对所述点云数据进行编码的步骤包括:
生成所述点云数据的树结构;以及
基于所述树结构的层将所述点云数据划分成多个组,
其中,所述组中的至少一个包括多个子组。
3.根据权利要求2所述的方法,其中,对所述点云数据进行编码的步骤包括:
基于上下文信息对属于所述子组的所述点云数据进行编码。
4.根据权利要求3所述的方法,其中,对所述点云数据进行编码的步骤包括:
基于与第一子组相关的上下文信息来对第二子组进行编码;以及
保存与所述第二子组相关的上下文信息。
5.根据权利要求4所述的方法,其中,所述第一子组包含属于所述第二子组的父子组的点云数据。
6.根据权利要求5所述的方法,其中,通过对关于节点的位置信息与关于所述子组的边界框信息进行比较来检测所述子组。
7.根据权利要求6所述的方法,其中,所述比特流包含指示所述组中的至少一个是否包括所述多个子组的信息。
8.根据权利要求7所述的方法,其中,所述比特流包含与所述子组的所述边界框相关的大小信息和原点信息。
9.一种用于发送点云数据的装置,所述装置包括:
编码器,所述编码器被配置为对点云数据进行编码;以及
发送器,所述发送器被配置为发送包含所述点云数据的比特流。
10.一种接收点云数据的方法,所述方法包括以下步骤:
接收包含点云数据的比特流;以及
对所述点云数据进行解码。
11.根据权利要求10所述的方法,其中,对所述点云数据进行解码的步骤包括:
生成所述点云数据的树结构;以及
基于所述树结构的层将所述点云数据划分成多个组,
其中,所述组中的至少一个包括多个子组。
12.根据权利要求11所述的方法,其中,对所述点云数据进行解码的步骤包括:
基于上下文信息对属于所述子组的所述点云数据进行解码。
13.根据权利要求12所述的方法,其中,对所述点云数据进行解码的步骤包括:
基于与第一子组相关的上下文信息对第二子组进行解码;以及
保存与所述第二子组相关的上下文信息。
14.根据权利要求13所述的方法,其中,所述第一子组包含属于所述第二子组的父子组的点云数据。
15.根据权利要求14所述的方法,其中,通过对关于节点的位置信息与关于所述子组的边界框信息进行比较来确定所述子组。
16.根据权利要求15所述的方法,其中,基于关于所述第二子组的所述边界框信息来检测所述第一子组。
17.根据权利要求16所述的方法,其中,所述比特流包含指示所述组中的至少一个是否包括所述多个子组的信息。
18.根据权利要求17所述的方法,其中,所述比特流包含与所述子组的所述边界框相关的大小信息和原点信息。
19.一种用于接收点云数据的装置,所述装置包括:
接收器,所述接收器被配置为接收包含点云数据的比特流;以及
解码器,所述解码器被配置为对所述点云数据进行解码。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2022-0004629 | 2022-01-12 | ||
| KR20220004629 | 2022-01-12 | ||
| PCT/KR2023/000574 WO2023136627A1 (ko) | 2022-01-12 | 2023-01-12 | 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN118556397A true CN118556397A (zh) | 2024-08-27 |
Family
ID=87279377
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202380016900.2A Pending CN118556397A (zh) | 2022-01-12 | 2023-01-12 | 点云数据发送方法、点云数据发送装置、点云数据接收方法及点云数据接收装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20250071347A1 (zh) |
| EP (1) | EP4465628A4 (zh) |
| KR (1) | KR20240117567A (zh) |
| CN (1) | CN118556397A (zh) |
| WO (1) | WO2023136627A1 (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021261237A1 (ja) * | 2020-06-22 | 2021-12-30 | ソニーグループ株式会社 | 情報処理装置および方法 |
| US20240323434A1 (en) * | 2021-07-15 | 2024-09-26 | Lg Electronics Inc. | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method |
| US20250124601A1 (en) * | 2022-01-13 | 2025-04-17 | Lg Electronics Inc. | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method |
| WO2025159622A1 (ko) * | 2024-01-22 | 2025-07-31 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070230564A1 (en) * | 2006-03-29 | 2007-10-04 | Qualcomm Incorporated | Video processing with scalability |
| FI3514968T3 (fi) * | 2018-01-18 | 2023-05-25 | Blackberry Ltd | Menetelmiä ja laitteita pistepilvien entropiakoodausta varten |
| CN110662087B (zh) * | 2018-06-30 | 2021-05-11 | 华为技术有限公司 | 点云编解码方法和编解码器 |
| JP7359153B2 (ja) * | 2018-09-28 | 2023-10-11 | ソニーグループ株式会社 | 画像処理装置および方法 |
| CN117978993A (zh) * | 2020-01-08 | 2024-05-03 | Lg电子株式会社 | 对点云数据进行编码/解码的设备 |
| KR20210152186A (ko) * | 2020-06-08 | 2021-12-15 | 한국전자통신연구원 | 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치 |
| US11770562B2 (en) * | 2020-06-23 | 2023-09-26 | Qualcomm Incorporated | High-level syntax for geometry-based point cloud compression |
-
2023
- 2023-01-12 WO PCT/KR2023/000574 patent/WO2023136627A1/ko not_active Ceased
- 2023-01-12 KR KR1020247020777A patent/KR20240117567A/ko active Pending
- 2023-01-12 CN CN202380016900.2A patent/CN118556397A/zh active Pending
- 2023-01-12 EP EP23740470.2A patent/EP4465628A4/en active Pending
- 2023-01-12 US US18/723,055 patent/US20250071347A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP4465628A4 (en) | 2025-12-03 |
| KR20240117567A (ko) | 2024-08-01 |
| WO2023136627A1 (ko) | 2023-07-20 |
| EP4465628A1 (en) | 2024-11-20 |
| US20250071347A1 (en) | 2025-02-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114503586B (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
| CN114073085B (zh) | 点云数据处理方法和设备 | |
| CN114175100B (zh) | 用于处理点云数据的方法和装置 | |
| CN115918092B (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
| CN114073086B (zh) | 点云数据处理设备和方法 | |
| CN114009046A (zh) | 用于处理点云数据的装置和方法 | |
| KR102294613B1 (ko) | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 | |
| US20240386615A1 (en) | Point cloud data transmission device and method, and point cloud data reception device and method | |
| US20240323434A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| US12400369B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| US20220230360A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| EP4465628A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
| US20250095211A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
| US20250133233A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
| US20250182338A1 (en) | Point cloud data processing device and processing method | |
| US20240331206A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| CN118160314A (zh) | 点云数据发送装置及方法与点云数据接收装置及方法 | |
| CN118235411A (zh) | 点云数据发送方法、点云数据发送装置、点云数据接收方法及点云数据接收装置 | |
| CN118020304A (zh) | 点云数据发送设备、点云数据发送方法、点云数据接收设备以及点云数据接收方法 | |
| CN119586133A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置及点云数据接收方法 | |
| CN114667542A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置以及点云数据接收方法 | |
| US20230334703A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| CN116438799A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
| CN119137958A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置及点云数据接收方法 | |
| US20230281878A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |