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

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

Info

Publication number
CN116724556A
CN116724556A CN202280009138.0A CN202280009138A CN116724556A CN 116724556 A CN116724556 A CN 116724556A CN 202280009138 A CN202280009138 A CN 202280009138A CN 116724556 A CN116724556 A CN 116724556A
Authority
CN
China
Prior art keywords
point cloud
cloud data
slice
data
attribute
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
CN202280009138.0A
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 CN116724556A publication Critical patent/CN116724556A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/134Methods 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/167Position within a video image, e.g. region of interest [ROI]
    • 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

Landscapes

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

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示出了根据实施方式的几何编码树的层组结构和属性编码树的对齐层组结构;
图28示出了根据实施方式的几何树的层组和属性编码树的独立层组结构;
图29示出了根据实施方式的参数集的语法;
图30示出了根据实施方式的几何数据单元报头;
图31示出了根据实施方式的组合树编码模式与直接编码模式的示例;
图32示出了根据实施方式的推断的直接编码模式(IDCM)的概述;
图33示出了根据实施方式的算术熵编码(AEC)比特流和直接编码(DC)比特流的示例;
图34示出了根据实施方式的几何树结构和切片段的示例以及多个AEC切片和一个DC切片的示例;
图35示出了根据实施方式的几何树结构和切片段的示例以及AEC切片和DC切片的示例;
图36示出了根据实施方式的几何树结构和切片段的示例以及AEC切片和DC切片的示例;
图37示出了根据实施方式的序列参数集(SPS)(seq_parameter_set())和几何参数集;
图38示出了根据实施方式的几何数据单元报头(或称为几何切片报头)的语法结构;
图39示出了根据实施方式的点云数据发送装置的结构;
图40示出了根据实施方式的点云数据接收装置;
图41是根据实施方式的点云数据接收装置的流程图;
图42例示了根据实施方式的点云数据发送/接收装置对点云数据的主要区域的有效率的处理的示例;
图43示出了根据实施方式的层组结构和子组边界框;
图44示出了根据实施方式的几何参数集。
图45示出了根据实施方式的属性参数集;
图46示出了根据实施方式的几何数据单元报头和属性数据单元报头;
图47例示了根据实施方式的发送和接收点云数据的方法;
图48例示了根据实施方式的发送和接收点云数据的方法;
图49例示了根据实施方式的发送点云数据的方法;并且
图50例示了根据实施方式的接收点云数据的方法。
具体实施方式
现在,将详细参照本公开的优选实施方式,在附图中例示了这些实施方式的示例。下文将参照附图给出的详细描述旨在解释本公开的示例性实施方式,而非示出能够根据本公开实现的仅有的实施方式。以下详细描述包括具体细节,以提供对本公开的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践本公开。
虽然在本公开中使用的大多数术语已选自本领域中广泛使用的通用术语,但一些术语已由申请人任意选择,并且在下面的描述中将根据需要详细解释它们的含义。因此,应当基于术语的本意而非它们的简单名称或含义来理解本公开。
图1示出了根据实施方式的示例性点云内容提供系统。
图1中例示的点云内容提供系统可以包括发送装置10000和接收装置10004。发送装置10000和接收装置10004能够进行有线或无线通信,以发送和接收点云数据。
根据实施方式的点云数据发送装置10000可以获得和处理点云视频(或点云内容),并发送该点云视频(或点云内容)。根据实施方式,发送装置10000可以包括固定站、基站收发器系统(BTS)、网络、人工智能(AI)装置和/或系统、机器人、AR/VR/XR装置和/或服务器。根据实施方式,发送装置10000可以包括被配置为使用无线电接入技术(例如,5G新RAT(NR)、长期演进(LTE))与基站和/或其它无线装置执行通信的装置、机器人、车辆、AR/VR/XR装置、便携式装置、家用电器、物联网(IoT)装置和AI装置/服务器。
根据实施方式的发送装置10000包括点云视频获取器10001、点云视频编码器10002和/或发送器(或通信模块)10003。
根据实施方式的点云视频获取器10001通过诸如捕获、合成或生成这样的处理过程获取点云视频。点云视频是由作为处于3D空间中的点的集合的点云表示的点云内容,并可以被称为点云视频数据。根据实施方式的点云视频可以包括一个或更多个帧。一帧表示静止图像/图片。因此,点云视频可以包括点云图像/帧/图片,并可以被称为点云图像、帧或图片。
根据实施方式的点云视频编码器10002对所获取的点云视频数据进行编码。点云视频编码器10002可以基于点云压缩编码对点云视频数据进行编码。根据实施方式的点云压缩编码可以包括基于几何的点云压缩(G-PCC)编码和/或基于视频的点云压缩(V-PCC)编码或下一代编码。根据实施方式的点云压缩编码不限于上述实施方式。点云视频编码器10002可以输出包含编码后的点云视频数据的比特流。比特流可以不仅包含编码后的点云视频数据,而且包含与点云视频数据的编码相关的信令信息。
根据实施方式的发送器10003发送包含编码后的点云视频数据的比特流。根据实施方式的比特流被封装在文件或段(例如,流传输段)中,并通过诸如广播网络和/或宽带网络这样的各种网络传输。尽管未在图中示出,但发送装置10000可以包括被配置为执行封装操作的封装器(或封装模块)。根据实施方式,封装器可以被包括在发送器10003中。根据实施方式,文件或段可以通过网络发送到接收装置10004,或被存储在数字存储介质(例如,USB、SD、CD、DVD、蓝光、HDD、SSD等)中。根据实施方式的发送器10003能够通过4G、5G、6G等网络与接收装置10004(或接收器10005)进行有线/无线通信。另外,发送器可以根据网络系统(例如,4G、5G或6G通信网络系统)执行必要的数据处理操作。发送装置10000可以以按需方式发送封装后的数据。
根据实施方式的接收装置10004包括接收器10005、点云视频解码器10006和/或渲染器10007。根据实施方式,接收装置10004可以包括被配置为使用无线电接入技术(例如,5G新RAT(NR)、长期演进(LTE))与基站和/或其它无线装置执行通信的装置、机器人、车辆、AR/VR/XR装置、便携式装置、家用电器、物联网(IoT)装置和AI装置/服务器。
根据实施方式的接收器10005从网络或存储介质接收包含点云视频数据的比特流或其中封装有比特流的文件/段。接收器10005可以根据网络系统(例如,4G、5G、6G等通信网络系统)执行必要的数据处理。根据实施方式的接收器10005可以对接收到的文件/段进行解封装并输出比特流。根据实施方式,接收器10005可以包括被配置为执行解封装操作的解封装器(或解封装模块)。解封装器可以被实现为与接收器10005分开的元件(或部件)。
点云视频解码器10006对包含点云视频数据的比特流进行解码。点云视频解码器10006可以根据对点云视频数据进行编码的方法(例如,在点云视频编码器10002的操作的逆处理中)对点云视频数据进行解码。因此,点云视频解码器10006可以通过执行点云解压缩编码来解码点云视频数据,点云解压缩编码是点云压缩的逆过程。点云解压缩编码包括G-PCC编码。
渲染器10007对解码后的点云视频数据进行渲染。渲染器10007可以通过不仅渲染点云视频数据而且渲染音频数据来输出点云内容。根据实施方式,渲染器10007可以包括被配置为显示点云内容的显示器。根据实施方式,显示器可以被实现为单独的装置或部件,而不是被包括在渲染器10007中。
图中虚线所指示的箭头表示由接收装置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(多边形文件格式或斯坦福三角格式)文件。当点云视频具有一个或更多个帧时,所获取的点云视频可以包括一个或更多个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变换器(RAHT)40008、LOD生成器(生成LOD)40009、提升变换(提升)器40010、系数量化器(量化系数)40011和/或算术编码器(算术编码)40012。
坐标变换器40000、量化器40001、八叉树分析器40002、表面近似分析器40003、算术编码器40004和几何重构器40005可以执行几何编码。根据实施方式的几何编码可以包括八叉树几何编码、直接编码、三角汤(trisoup)几何编码和熵编码。直接编码和三角汤几何编码被选择性地或组合地应用。几何编码不限于上述示例。
如图中所示,根据实施方式的坐标变换器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树或莫顿码(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表示八叉树的深度。用下式确定d的值。在下式中,(xint n,yint n,zint n)表示量化点的位置(或位置值)。
如图6的上部的中间所示,整个3D空间可以根据分区被划分为八个空间。每个划分空间由具有六个面的立方体表示。如图6的右上侧所示,基于坐标系的轴(例如,X轴、Y轴和Z轴)再次划分八个空间中的每一个。因此,每个空间被划分成八个更小的空间。所划分的更小空间也由具有六个面的立方体表示。应用该划分方案,直到八叉树的叶节点成为体素为止。
图6的下部示出了八叉树占用码。生成八叉树的占用码,以指示通过划分一个空间而产生的八个划分空间中的每一个是否包含至少一个点。因此,单个占用码由八个子节点表示。每个子节点表示所划分空间的占用,并且子节点具有1位的值。因此,占用码被表示为8位代码。也就是说,当在与子节点对应的空间中包含至少一个点时,该节点被赋予值1。当在对应于子节点的空间中不包含点(空间为空)时,该节点被赋予值0。由于图6中示出的占用码为00100001,因此它指示与八个子节点当中的第三个子节点和第八个子节点对应的空间各自包含至少一个点。如图中所示,第三个子节点和第八个子节点中的每一个具有8个子节点,并且子节点用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)估计通过减法而获得的值的平方和。
估计和的最小值,并根据具有最小值的轴来执行投影处理。例如,当元素x为最小时,每个顶点相对于块的中心投影到x轴上,并投影到(y,z)平面上。当通过投影到(y,z)平面上而获得的值为(ai,bi)时,通过atan2(bi,ai)估计θ的值,并根据θ的值对顶点进行排序。下面的表1示出了根据顶点的数目来创建三角形的顶点组合。顶点被从1到n地排序。下面的表1示出对于四个顶点,可以根据顶点的组合来构造两个三角形。第一个三角形可以由排序的顶点当中的顶点1、2和3组成,并且第二个三角形可以由排序顶点当中的顶点3、4和1组成。
表2-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)可以对通过从每个点的属性(属性值)中减去预测的属性(属性值)而获得的残差(可以被称为残差属性、残差属性值或属性预测残差)进行量化和反量化。如下表中所示地配置该量化处理。
表.属性预测残差量化伪代码
当每个点的预测器具有邻近点时,根据实施方式的点云编码器(例如,算术编码器40012)可以如上所述对量化和反量化后的残差值执行熵编码。当每个点的预测器没有邻近点时,根据实施方式的点云编码器(例如,算术编码器40012)可以在不执行上述操作的情况下,对相应点的属性执行熵编码。
根据实施方式的点云编码器(例如,提升变换器40010)可以生成每个点的预测器,设置计算出的LOD并将邻近点登记到预测器中,并根据到邻近点的距离设置权重以执行提升变换编码。根据实施方式的提升变换编码类似于上述预测变换编码,但不同之处在于权重被累加地应用于属性值。如下地配置根据实施方式的向属性值累加地应用权重的处理。
1)创建用于存储每个点的权重值的数组Quantization Weight(QW)(量化权重)。QW的所有元素的初始值为1.0。将在预测器中登记的邻居节点的预测器索引的QW值乘以当前点的预测器的权重,并将通过乘法而获得的值相加。
2)提升预测处理:从现有属性值中减去通过将点的属性值乘以权重而获得的值,以计算预测属性值。
3)创建被称为更新权重(updateweight)的临时数组,并将该临时数组更新并初始化为零。
4)将通过将针对所有预测器计算出的权重乘以存储在QW中的与预测器索引对应的权重而计算出的权重累加地添加到更新权重数组以作为邻居节点的索引。将通过将邻居节点的索引的属性值乘以计算出的权重而获得的值累加地添加到更新数组。
5)提升更新处理:将针对所有预测器的更新数组的属性值除以预测器索引的更新权重数组的权重值,并将现有的属性值与通过除法而获得的值相加。
6)通过针对所有预测器将通过提升更新处理而更新的属性值乘以(存储在QW中的)通过提升预测处理而更新的权重来计算预测属性。根据实施方式的点云编码器(例如,系数量化器40011)对预测的属性值进行量化。另外,点云编码器(例如,算术编码器40012)对量化后的属性值执行熵编码。
根据实施方式的点云编码器(例如,RAHT变换器40008)可以执行RAHT变换编码,其中使用与八叉树中较低级别的节点关联的属性来预测较高级别的节点的属性。RAHT变换编码是通过八叉树后向扫描进行的属性帧内编码的示例。根据实施方式的点云编码器从体素扫描整个区域,并在每个步骤中重复将体素合并成较大块的合并处理,直至到达根节点。根据实施方式的合并处理仅在被占用节点上执行。合并处理不在空节点上执行。合并处理在空节点正上方的上部节点上执行。
下面的式表示RAHT变换矩阵。在该式中,表示级别l处的体素的平均属性值。可以基于/>和/>来计算/>和/>的权重是/>
这里,是低通值并被用在下一更高级别处的合并处理中。/>表示高通系数。每个步骤中的高通系数被量化并经历熵编码(例如,通过算术编码器40012编码)。权重被计算为/>通过/>和/>计算根节点如下。
图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详细描述地配置占用码。
当应用三角汤(trisoup)几何编码时,根据实施方式的表面近似合成器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执行与算术编码器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、预测/提升/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可以表示构成云计算基础设施的一部分或存在于云计算基础设施中的网络。这里,可以使用3G网络、4G或长期演进(LTE)网络或5G网络配置云网络1400。
服务器1460可以通过云网络1400连接到机器人1410、自动驾驶车辆1420、XR装置1430、智能电话1440、家用电器14500/或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装置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的发送装置10000、图1的点云视频编码器10002、图1的发送器10003、图2的获取20000/编码20001/发送20002、图4的编码器、图12的发送装置、图14的装置、图15、图39、图47和图48的编码器、图39的发送方法等的术语。
根据实施方式的点云数据接收方法/装置被解释为指代图1的接收装置10004、接收器10005、图1的点云视频解码器10006、图2的发送20002/解码20003/渲染20004、图10和图11的解码器、图13的接收装置、图14的装置、图15、图40、图47和图48的解码器、图50的接收方法等的术语。
根据实施方式的用于发送或接收点云数据的方法/装置可以被简单地称为方法/装置。
根据实施方式,构成点云数据的几何数据、几何信息和位置信息将被解释为具有相同的含义。构成点云数据的属性数据、属性信息和属性信息将被解释为具有相同的含义。
根据实施方式的点云数据发送/接收方法/装置提出了一种用于本地访问的点云数据的分段和发送/接收的方法(用于空间随机访问的切片分段)。
例如,当直接压缩模式被用于位置压缩时,提出了一种配置和发送/接收更适于可扩展PCC服务的切片段的方法。
参照根据图4和图11中示出的实施方式的点云数据发送/接收装置(可以被称为编码器/解码器),点云数据包括每个数据的几何(例如,XYZ坐标)和属性(例如,颜色、反射率、强度、灰度级、不透明度等)。在点云压缩(PCC)中,执行基于八叉树的压缩,以有效率地压缩三维空间中的非均匀分布,并且以基于八叉树的压缩为基础压缩属性信息。图4中和图11中示出的PCC发送装置和接收装置可以通过每个组件装置处理根据实施方式的操作。
图15例示了根据实施方式的编码、发送和解码点云数据的过程。
图15的每个部件可以对应于硬件、软件、处理器和/或其组合。
点云编码器15000是实施根据实施方式的发送方法的发送装置,并且可以可缩放地编码和发送点云数据。
点云解码器15010是实施根据实施方式的接收方法的接收装置,并且可以可缩放地解码点云数据。
由编码器15000接收的源数据可以包括几何数据和/或属性数据。
编码器15000对点云数据进行可缩放的编码,但没有立即生成部分PCC比特流。替代地,当它接收到完整的几何数据和完整的属性数据时,它将数据存储在连接到编码器的存储器中。然后,编码器可以执行用于部分编码的转码,并且生成并发送部分PCC比特流。解码器15010可以接收并解码部分PCC比特流,以重构部分几何和/或部分属性。
在接收到完整的几何和完整的属性时,编码器15000可以将数据存储在连接到编码器的存储器中,并且利用低量化参数(QP)将点云数据转码,以生成并发送完整的PCC比特流。解码器15010可以接收并解码完整的PCC比特流,以重构完整的几何和/或完整的属性。解码器15010可以通过数据选择从完整PCC比特流中选择部分几何和/或部分属性。
根据实施方式的方法/装置通过将作为点云数据的关于数据点的位置信息和诸如颜色/亮度/反射率这样的特征信息划分为几何信息和属性信息来压缩和发送点云数据。在这种情况下,具有层的八叉树结构可以根据细节程度来配置,或者PCC数据可以根据细节层次(LoD)来配置。然后,可以基于配置的结构或数据来执行可缩放点云数据编码和表示。在这种情况下,由于接收器的性能或传送速率,可以仅解码或表示点云数据的一部分。
在该过程中,根据实施方式的方法/装置可以预先去除不必要的数据。换句话说,当仅需要发送可缩放PCC比特流的一部分(即,在可缩放解码中仅解码一些层)时,没有办法选择并仅发送必要的部分。因此,1)必要的部分需要在解码之后被重新编码(15020),或者2)接收器必须在整个数据被传送到其之后选择性应用操作(15030)。然而,在情况1)下,由于用于解码和重新编码(15020)的时间,导致可能出现延迟。在情况2)下,由于发送了不必要数据,导致带宽效率可能下降。另外,当使用固定带宽时,可能需要降低数据质量来发送(15030)。
因此,根据实施方式的方法/装置可以定义点云数据的切片分段结构,并且发信号通知用于可缩放发送的可缩放层和切片结构。
在实施方式中,为了确保有效率的比特流传送和解码,可以将比特流划分为特定单元来处理。
对于基于八叉树的几何压缩,根据实施方式的方法/装置可以一起使用基于熵的编码和直接编码。在这种情况下,需要有效率地利用可缩放性的切片配置。
根据实施方式的单元可以被称为LOD、层、切片等。LOD是与属性数据编码中的LOD相同的术语,但可以意指用于比特流的分层结构的数据单元。这可以是与基于点云数据的层级结构(例如,八叉树或多个树的深度(层次))的一个深度或两个或更多个深度的束对应的概念。类似地,层被设置用于生成子比特流的单元,并且是与一个深度或两个或更多个深度的束对应的概念,并且可以对应于一个LOD或两个或更多个LOD。另外,切片是用于配置子比特流的单元,并且可以对应于一个深度、一个深度的一部分、或两个或更多个深度。另外,它可以对应于一个LOD、一个LOD的一部分或两个或更多个LOD。根据实施方式,LOD、层和切片可以彼此对应,或者LOD、层和切片中的一个可以被包括在另一个中。另外,根据实施方式的单元可以包括LOD、层、切片、层组或子组,并且可以被称为彼此互补。
在根据实施方式的方法/装置中,提出了用于点云数据的切片的细分结构。
在根据实施方式的方法/装置中,提出了用于可缩放发送的切片结构和关于可缩放层的信令信息。
在根据实施方式的方法/装置中,提出了层组和/或子组和切片分段的定义。
在根据实施方式的方法/装置中,提出了当使用直接编码时用于增加可缩放性效率的独立切片配置方法和信令信息。
在根据实施方式的方法/装置中,提出了当使用直接编码时用于增加可缩放性效率的基于层组的切片配置方法和信令。
图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例示了根据实施方式的选择几何数据和属性数据的方法。
根据实施方式的比特流选择
当需要如上所述地选择比特流时,根据实施方式的方法/装置可以选择如图21中所示的比特流级别的数据:1)几何和属性的对称选择;2)几何和属性的不对称选择;或3)以上两种方法的组合。
1)几何和属性的对称选择
参照图示了仅高达LoD1(LOD 0+R1)的LOD被选择(19000)并且被发送或解码的情况的图19,与对应于上层的R2(LOD 2中的新部分)对应的信息被去除以便进行发送/解码。
2)几何和属性的不对称选择
根据实施方式的方法/装置可以不对称地发送几何和属性。仅去除上层的属性(属性R2)(19001),并且可以选择并且发送/解码所有几何(三角形八叉树结构中的级别0(根级别)至级别7(叶级别))(19011)。
参照图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例示了根据实施方式的配置包括点云数据的切片的方法。
根据实施方式的切片配置
根据实施方式的发送方法/装置/编码器可以通过在切片结构中将比特流分段来配置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中的每一个的部分数据可以被配置为一个切片。
根据实施方式的编码器和对应于编码器的装置可以对点云数据进行编码,并且可以生成并发送包括编码数据和与点云数据相关的参数信息的比特流。
此外,在生成比特流时,可以根据实施方式基于比特流结构来生成比特流(参见例如图16至图20)。相应地,根据实施方式的接收装置、解码器和对应装置可以接收和解析被配置为适于选择性部分数据解码的比特流,并且部分地解码并且有效率地提供点云数据(参见图15)。
根据实施方式的可缩放发送
根据实施方式的点云数据发送方法/装置可以可缩放地发送包含点云数据的比特流,并且根据实施方式的点云数据接收方法/装置可以可缩放地接收和解码比特流。
当如图16至图20中示出的根据实施方式的比特流被用于可缩放发送时,选择接收器所需的切片需要的信息可以被发送到接收器。可缩放发送可以意味着仅发送或解码比特流的一部分而不是解码整个比特流,其结果可以是低分辨率点云数据。
当向基于八叉树的几何比特流应用可缩放发送时,点云数据可能需要配置有针对从根节点到叶节点的每个八叉树层(图16)的比特流的范围仅直至特定八叉树层的信息。
为此目的,目标八叉树层应该不依赖于关于较低八叉树层的信息。这可以是共同应用于几何编码和属性编码的约束。
另外,在可缩放发送中,需要传送用于供发送器/接收器选择可缩放层的可缩放结构。考虑到根据实施方式的八叉树结构,所有八叉树层都可以支持可缩放发送,或者可以仅允许特定八叉树层或更低层的可缩放发送。当切片包括八叉树层中的一些时,可以指示其中包括切片的可缩放层。由此,可以确定在比特流阶段,切片是必要/不必要的。在图20的(a)的示例中,从根节点开始的黄色部分构成一个可缩放层,而不支持可缩放发送。以下八叉树层可以一一对应地与可缩放层相匹配。通常,可以针对与叶节点对应的部分支持可缩放性。如图23的(c)中所示,当在切片中包括多个八叉树层时,可以定义为应当针对层配置一个可缩放层。
在这种情况下,可缩放发送和可缩放解码可以根据目的分别使用。可以在不涉及解码器的情况下出于选择直至特定层的信息的目的,在发送/接收侧使用可缩放发送。使用可缩放解码以在编码期间选择特定层。即,可缩放发送可以(在比特流阶段)支持压缩状态下的不涉及解码器的必要信息选择,使得信息可以由接收器发送或确定。另一方面,可缩放解码可以在编码/解码过程中支持仅直至所需部分的编码/解码数据,并且因此,可以在这种情况下被用作可缩放表示。
在这种情况下,用于可缩放发送的层配置可以不同于用于可缩放解码的层配置。例如,就可缩放发送而言,包括叶节点的三个底部八叉树层可以构成一个层。然而,当在可缩放解码方面包括所有层信息时,可以针对叶节点层n、叶节点层n-1、叶节点层n-2中的每一个执行可缩放解码。
下文中,将描述用于上述层配置的切片结构和用于可缩放发送的信令方法。
图21示出了根据实施方式的比特流配置。
根据实施方式的方法/装置可以生成如图21中所示的比特流。比特流可以包含编码后的几何数据和属性数据,并且还包含参数信息。
以下,描述参数信息的语法和语义。
根据实施方式,关于分离的切片的信息可以如下地在比特流的参数集和SEI消息中定义。
比特流可以包括序列参数集(SPS)、几何参数集(GPS)、属性参数集(APS)、几何切片报头和属性切片报头。在这方面,根据应用或系统,将要应用的范围和方法可以在对应或单独的位置中定义并且被不同地使用。即,根据信号的发送位置,信号可以具有不同的含义。如果信号是在SPS中定义的,则可以将其等同地应用于整个序列。如果信号是在GPS中定义的,则这可以指示信号用于位置重构。如果信号是在APS中定义的,则这可以指示信号应用于属性重构。如果信号是在TPS中定义的,则这可以指示信号仅应用于图块内的点。如果信号是在切片中传送的,则这可以指示信号仅应用于切片。另外,将要应用的范围和方法可以根据应用或系统在对应的位置或单独的位置中定义,以被不同地使用。另外,当下面定义的语法元素除了当前点云数据流之外还适用于多个点云数据流时,它们可以被携带在上级参数集中。
本文中使用的缩写是:SPS:序列参数集;GPS:几何参数集;APS:属性参数集;TPS:图块参数集;Geom:几何比特流=几何切片报头+几何切片数据;Attr:属性比特流=属性切片报头+属性切片数据。
虽然实施方式独立于编码技术来定义信息,但可以结合编码技术来定义信息。为了支持区域上不同的可缩放性,可以在比特流的图块参数集中定义信息。另外,当下面定义的语法元素不仅适用于当前点云数据流而且适用于多个点云数据流时,它们可以被携带在上级参数集等中。
另选地,可以针对比特流定义网络抽象层(NAL)单元,并且可以传送诸如layer_id这样的用于选择层的相关信息。由此,可以在系统级选择比特流。
下文中,根据实施方式的参数(可以被称为元数据、信令信息等)可以在根据实施方式的发送器的过程中生成,并且被发送到根据实施方式的接收器,以在重构过程中使用。
例如,参数可以由根据稍后将描述的实施方式的发送装置的元数据处理器(或元数据生成器)生成,并且可以由根据实施方式的接收装置的元数据解析器获取。
下文中,将参考图22至图25描述比特流中所包含的参数的语法/语义。
图22示出了根据实施方式的序列参数集和几何参数集的语法。
图23示出了根据实施方式的属性参数集的语法。
图24示出了根据实施方式的几何数据单元报头的语法。
图25示出了根据实施方式的属性数据单元报头的语法。
scalable_transmission_enable_flag:当等于1时,它可以指示比特流被配置为适于可缩放发送。即,当比特流由多个切片构成时,可以在比特流阶段选择信息。可缩放层配置信息可以被发送以指示在发送器或接收器中切片选择可用,并且几何和/或属性被压缩以启用部分解码。当scalable_transmission_enable_flag为1时,接收器或发送器的转码器可以用于确定是否允许几何和/或属性可缩放发送。转码器可以联接到或包括在发送装置和接收装置中。
geom_scalable_transmission_enable_flag和attr_scalable_transmission_enable_flag:当等于1时,它们可以指示几何或属性被压缩以启用可缩放发送。
例如,对于几何,标志可以指示几何由基于八叉树的层构成,或者考虑到可缩放发送、已执行切片分割(参见图23)。
当geom_scalable_transmission_enable_flag或attr_scalable_transmission_enable_flag为1时,接收器可以得知可缩放发送可用于几何或属性。
例如,等于1的geom_scalable_transmission_enable_flag可以指示使用基于八叉树的几何编码,并且禁用QTBT,或者通过按BT-QT-OT的顺序执行编码来以诸如八叉树这样的形式对几何进行编码。
等于1的attr_scalable_transmission_enable_flag可以指示通过使用可缩放LOD生成来使用预提升编码或者使用可缩放RAHT(例如,基于Haar的RAHT)。
num_scalable_layers可以指示支持可缩放发送的层的数量。根据实施方式,层可以意指LOD。
scalable_layer_id指定构成可缩放发送的层的指示符。当可缩放层由多个切片构成时,公共信息可以通过scalable_layer_id而携带在参数集中,并且不同的信息可以根据切片而携带在数据单元报头中。
num_octree_layers_in_scalable_layer可以指示包括在构成可缩放发送的层中或者与构成可缩放发送的层对应的八叉树层的数量。当没有基于八叉树配置可缩放层时,它可以参照对应的层。
tree_depth_start可以指示包括在构成可缩放发送的层中或者与构成可缩放发送的层对应的八叉树层当中的起始八叉树深度(相对最接近根)。
tree_depth_end可以指示包括在构成可缩放发送的层中或者与构成可缩放发送的层对应的八叉树层当中的最后一个八叉树深度(相对最接近叶)。
node_size可以指示当通过可缩放发送重构可缩放层时输出点云数据的节点大小。例如,当node_size等于1时可以指示叶节点。尽管实施方式假定XYZ节点大小是恒定的,但可以通过发信号通知在诸如(r(半径),phi,theta)这样的变换坐标中的XYZ方向或每个方向上的大小来指示任意节点大小。
num_nodes可以指示对应可缩放层中所包括的节点的数量。
num_slices_in_scalable_layer可以指示属于可缩放层的切片的数量。
slice_id指定用于区分切片或数据单元的指示符,并且可以传送属于可缩放层的数据单元的指示符。
aligned_slice_structure_enabled_flag:当等于1时,这可以指示属性可缩放层结构和/或切片配置与几何可缩放层结构和/或切片配置相匹配。在这种情况下,可以通过关于几何可缩放层结构和/或切片配置的信息来标识关于属性可缩放层结构和/或切片配置的信息。即,几何层/切片结构与属性层/切片结构相同。
slice_id_offset可以指示用于基于几何切片id来获得属性切片或数据单元的偏移。根据实施方式,当aligned_slice_structure_enabled_flag为1时,即,当属性切片结构与几何切片结构相匹配时,可以如下地基于几何切片id来获得属性切片id。
Slice_id(attr)=slice_id(geom)slice_id_offset
在这种情况下,几何参数集中提供的值可以用于作为用于配置属性切片结构的变量的num_scalable_layers、scalable_layer_id tree_depth_start、tree_depth_end,node_size,num_nodes和num_slices_in_scalable_layer。
corresponding_geom_scalable_layer可以指示与属性可缩放层结构对应的几何可缩放层。
num_tree_depth_in_data_unit可以指示包括属于数据单元的节点的树深度。
tree_depth可以指示树深度。
num_nodes可以指示属于数据单元的节点当中的属于tree_depth的节点的数量。
aligned_geom_data_unit_id可以在属性数据单元符合相应几何数据单元的可缩放发送层结构/切片结构时指示几何数据单元ID。
ref_slice_id可以用于指代应该在当前切片之前解码的切片(参见例如图18至图20)。
图26示出了根据实施方式的基于单切片的几何树结构和基于分段切片的几何树结构。
如图26中所示,根据实施方式的方法/装置可以配置用于发送点云数据的切片。
图26示出了不同切片结构中包含的几何树结构。根据G-PCC技术,整个编码比特流可以被包含在单个切片中。对于多个切片,每个切片可以包含子比特流。切片的次序可以与子比特流的次序相同。比特流可以按几何树的广度优先次序累积,并且每个切片可以与一组树层相匹配(参见图26)。分段切片可以继承G-PCC比特流的分层结构。
切片可能不影响先前切片,就像在几何树中较高层不影响较低层一样。
根据实施方式的分段切片在误差鲁棒性、有效发送、感兴趣区域的支持等方面是有效的。
1)差错恢复力
与单切片结构相比,分段切片对差错可以更具恢复性。当切片包含帧的整个比特流时,数据丢失可能影响整个帧数据。另一方面,当比特流被分段为多个切片时,甚至在一些其它切片丢失时,不受丢失影响的一些切片也可以被解码。
2)可缩放发送
可以支持具有不同能力的多个解码器。当编码数据在单个切片中时,可以在编码之前确定编码点云的LOD。因此,可以独立地发送具有不同分辨率的点云数据的多个预编码比特流。就大带宽或存储空间而言,这可能是低效的。
当生成PCC比特流并且将其包括在分段切片中时,单个比特流可以支持不同级别的解码器。从解码器的角度来看,接收器可以选择目标层并且可以将部分选择的比特流传送到解码器。类似地,通过使用单个PCC比特流而不将整个比特流分段,可以在发送器侧有效率地生成部分PCC比特流。
3)基于区域的空间可缩放性
关于G-PCC要求,基于区域的空间可缩放性可以被如下地定义。压缩比特流可以被配置为具有一个或更多个层。特定的感兴趣区域可以利用附加层而具有高密度,并且所述层可以从较低层预测。
为了支持该要求,必须支持区域的不同详细表示。例如,在VR/AR应用中,可以以低精度表示远侧的物体,并且可以以高精度表示附近的物体。另选地,解码器可以根据请求来增加感兴趣区域的分辨率。可以使用诸如几何八叉树和可缩放属性编码方案这样的G-PCC的可缩放结构来实现该操作。解码器应该基于包括整个几何或属性的当前切片结构来访问整个比特流。这可以导致在带宽、存储器和解码器方面效率低。另一方面,当比特流被分段为多个切片并且每个切片根据可缩放层包括子比特流时,根据实施方式的解码器可以在有效率地解析比特流之前按需要选择切片。
图27示出了根据实施方式的几何编码树的层组结构和属性编码树的对齐层组结构。
根据实施方式的方法/装置可以使用如图27中所示的点云数据的层级结构来生成切片层组。
根据实施方式的方法/装置可以应用不同切片中所包含的几何和属性比特流的分段。另外,从树深度的角度,可以使用部分树信息中所包含的每个切片以及几何和属性编码的编码树结构。
图27的(a)示出了几何树结构和所提出的切片段的示例。
例如,可以在八叉树中配置8个层,并且可以使用5个切片来包含一个或更多个层的子比特流。组表示一组几何树层。例如,组1包括层0至4,组2包括层5,并且组3包括层6和7。另外,组可以被划分为三个子组。在每个子组中存在父子对。组3-1至3-3是组3的子组。当使用可缩放属性编码时,树结构与几何树结构相同。可以使用相同的八叉树-切片映射来创建属性切片段(图27的(b))。
层组表示诸如八叉树层和LoD层这样的在G-PCC编码中生成的层结构单元的束。
子组可以基于一个层组的位置信息来表示邻近节点的集合。另选地,邻近点的集合可以基于层组中的最低层(可以是最接近根侧的层,并且可以是在图27中的组3的情况下的层6)来配置,可以按莫顿码(Morton code)次序来配置,可以基于距离来配置,或者可以根据编码次序来配置。另外,可以定义规则,使得具有父子关系的节点存在于同一子组中。
当定义子组时,可以在层的中间形成边界。关于是否在边界处保持连续性,可以使用sps_entropy_continuation_enabled_flag、gsh_entropy_continuation_flag等来指示是否连续地使用熵,并且可以提供ref_slice_id。由此,可以保持与先前切片的延续。
图28示出了根据实施方式的几何树的层组和属性编码树的独立层组结构。
根据实施方式的方法/装置可以生成基于几何的切片层和基于属性的切片层,如图28中所示。
属性编码层可以具有与几何编码树的结构不同的结构。参照图28的(b),可以独立于几何树结构来定义组。
为了高效地使用G-PCC的分层结构,可以提供与几何和属性分层结构配对的切片的分段。
对于几何切片段,每个切片段可以包含来自层组的编码数据。这里,层组被定义为一组连续的树层,树层的开始深度和结束深度可以是树深度中的特定数字,并且开始深度小于结束深度。
对于属性切片段,每个切片段可以包含来自层组的编码数据。这里,根据属性编码方案,层可以是树深度或LOD。
切片段中的编码数据的次序可以与单个切片中的编码数据的次序相同。
作为比特流中所包括的参数集,可以提供以下。
在几何参数集中,对应于几何树层的层组结构需要通过例如组的数量、组标识符、组中的树深度的数量以及组中的子组的数量来描述。
在属性参数集中,指示切片结构是否与几何切片结构对齐的指示信息是必要的。定义了组的数量、组标识符、树深度的数量和段的数量来描述层组结构。
在切片报头中定义以下元素。
在几何切片报头中,可以定义组标识符、子组标识符等来标识每个切片的组和子组。
在属性切片报头中,当属性层结构没有与几何组对齐时,必须标识每个切片的组和子组。
图29示出了根据实施方式的参数集的语法。
图29的语法可以与图22至图25的参数信息一起被包括在图21的比特流中。
num_layer_groups_minus1+1指定层组的数量,其中,层组表示作为几何或属性编码树结构的一部分的一组连续的树层。
layer_group_id指定第i层组的层组标识符。
num_tree_depth_minus1+1指定第i层组中所包含的树深度的数量。
num_subgroups_minus1+1指定第i层组中的子组的数量。
等于1的aligned_layer_group_structure_flag指定属性切片的层组和子组结构与几何层组和子组结构相同。等于0的aligned_layer_group_structure_flag指定属性切片的层组和子组结构与几何层组和子组结构不相同。
geom_parameter_set_id指定包含与属性层组结构对齐的层组和子组结构信息的几何参数集标识符。
图30示出了根据实施方式的几何数据单元报头。
图30的报头可以与图22至图25的参数信息一起被包括在图21的比特流中。
subgroup_id指定由layer_group_id指示的层组中的子组的指示符。subgroup_id的范围可以是0至num_subgroups_minus1。
layer_group_id和subgroup_id可以用于指示切片的次序,并且可以用于按比特流次序对切片进行排序。
根据实施方式的发送方法/装置和编码器可以通过将点云数据划分为用于发送的单元来发送点云数据。通过比特流生成器,可以将数据划分并打包为适于根据分层结构信息在比特流单元中选择必要信息的单元(图33至图35)。
根据实施方式的接收方法/装置和解码器可以基于比特流层来重构几何数据和属性数据(图33至图35)。
在这种情况下,子比特流分类器可以基于比特流报头中的信息来向解码器传送适当的数据。另选地,在该过程中,可以选择接收器需要的层。
基于图26至图28的切片分层比特流,可以参考必要的参数信息来选择几何切片和/或属性切片,然后进行解码和渲染。
基于图26至图28的实施方式,可以根据层来划分和发送压缩数据,并且可以在没有单独的转码过程的情况下,在比特流阶段中选择性地仅发送预压缩数据的必要部分。该方案在存储空间方面可能是有效率的,因为每个流仅需要一个存储空间。还使得能够在(比特流选择器)带宽方面实现有效率的发送,因为在发送之前仅选择必要的层。
另外,根据实施方式的接收方法/装置可以逐个切片地接收比特流,并且接收器可以根据将要根据解码器性能或应用领域表示的点云数据的密度来选择性将比特流发送到解码器。在这种情况下,由于在解码之前进行选择,因此可以提高解码器效率,并且可以支持各种性能的解码器。
图31图示了根据实施方式的组合树编码模式和直接编码模式的示例。
即,当执行基于八叉树的压缩时,存在于类似位置处的点的位置可以以束表示,因此所需比特的数量可以减少。然而,如图31中所示,当在占用节点的后代节点当中不存在兄弟节点(31000)时,基于八叉树的压缩不能具有显著的效果。因此,在这种情况下,通过以直接模式执行节点(即,点)31000的直接编码,可以提高编码效率和压缩速度。
也就是说,参照八叉树结构,基于当前点(节点),可以提供最多8个后代节点。8个后代节点可以包括被占用的节点和/或未被占用的节点。
如果基于当前点不存在后代节点和/或兄弟节点,则很可能不存在类似的邻近点。相应地,通过在节点(点)之间生成期望值来生成残差值,残差可能变大,精度可能降低,或者可能出现等待时间。在这种情况下,点的位置值可以通过点的直接编码来发送(例如,图31中的31000)。
作为确定是否执行直接编码的方法,根据实施方式的方法/装置可以如下基于与邻近节点的关系来确定直接编码的使用。即,当满足以下特定条件时,可以操作直接压缩方法。
1)基于父的资格条件:从当前节点(点)的父节点的角度来看,只有当前节点是被占用的孩子,并且从父的父(祖父母)的角度来看,最多有一个被占用的孩子(即,父的被占用兄弟)(即,存在2个被占用的孩子)。
2)6N的资格条件:从父节点的角度来看,只有当前节点是被占用的孩子,并且6个邻居(面对面接触的节点)未被占用。
例如,在这种情况下,可以确定直接编码是可用的。在这种情况下,只有当所包括的点的数量小于或等于阈值时,才可以应用推断的直接编码模式(IDCM)。当执行IDCM时,指示执行IDCM的信息、点的数量和指示点位置(即,对应于未被八叉树编码的剩余深度的部分)的XYZ值的信息可以被包括在参数集中的至少一个中并且被传送到接收装置。
图32示出了根据实施方式的IDCM的概述。
根据实施方式的直接压缩操作可以由一个或更多个处理器或集成电路来执行,该处理器或集成电路被配置为与图1的发送装置10000、图1的点云视频编码器10002、图2的编码、图4的点云视频编码器、图12的发送装置、图14的装置、图39的点云数据发送装置或与其对应的一个或更多个存储器进行通信。一个或更多个存储器可以存储用于处理/控制根据实施方式的操作的程序。根据实施方式的点云发送装置/方法的每个组件可以用硬件、软件、处理器和/或其组合来实现。一个或更多个处理器可以控制本文中描述的各种操作。处理器可以被称为控制器等。在一些实施方式中,操作可以由固件、软件和/或其组合来执行。固件、软件和/或其组合可以被存储在处理器或存储器中。
根据实施方式的直接解压缩操作可以由一个或更多个处理器或集成电路来执行,该处理器或集成电路被配置为与图1的接收装置10004、图1的点云视频解码器10006、图2的解码、图10的解码器、图11的解码器、图13的接收装置、图14的装置、图50的点云数据接收装置或与其对应的一个或更多个存储器进行通信。一个或更多个存储器可以存储用于处理/控制根据实施方式的操作的程序。根据实施方式的点云接收装置/方法的每个组件可以用硬件、软件、处理器和/或其组合来实现。一个或更多个处理器可以控制本文中描述的各种操作。处理器可以被称为控制器等。在一些实施方式中,操作可以由固件、软件和/或其组合来执行。固件、软件和/或其组合可以被存储在处理器或存储器中。
参照作为示例的图32,根据点的分布,父节点32000可以具有多达8个孩子,并且特定的孩子32001还可以具有孩子32002。在这种情况下,孩子32001是孩子32002的父节点。另外,可以确定是否在孩子32002处另外执行八叉树分割和预测编码或直接模式编码。
当确定直接模式编码可用时(32003),检查点32002的邻近节点(邻近点)的数量是否小于或等于阈值th。当点32002的邻近节点(邻近点)的数量小于或等于阈值th时,可以启用直接模式。另外,对于一个或更多个点中的每一个,可以对位置值的x、y和z坐标信息进行直接编码。根据实施方式,位置值可以基于八叉树的子立方体来表示。
在另一实施方式中,当点32002的邻近节点(邻近点)的数量超过阈值th时,预测编码的压缩效率可以高于直接编码的压缩效率,因此直接模式被禁用,并且节点可以被进一步分割以生成八叉树。即,当确定直接模式编码不可用时(32004),可以基于该点,将八叉树另外分割成基于八叉树的子立方体。
如上所述,当执行直接压缩时,当前深度或更小的x、y和z位置信息被直接发送到接收装置。在这种情况下,每个独立的位置信息被压缩,因此即使当使用算术熵压缩时,压缩效率也可能不高。
因此,在这种情况下,发送装置/方法可以对x、y和z值执行直接压缩(或称为编码)。在这种情况下,直接编码比特流(图33)可以独立于算术熵编码比特流(图33)来发送。
图33例示了根据实施方式的算术熵编码(AEC)比特流和直接编码(DC)比特流的示例。
当几何树结构被划分成用于可缩放发送的层组和/或子组时,可以通过根据每个层组和/或子组划分AEC比特流来配置切片。在一个实施方式中,当配置多个切片时,每个切片包括AEC比特流的一部分,即,AEC子比特流。另外,可以针对DC比特流配置单独的切片。在这种情况下,每个切片中所包括的比特流的类型可以被划分成AEC比特流和DC比特流。因此,当执行几何部分解码时,接收装置可以选择包括所需的AEC比特流的切片,并且在包括DC比特流的切片当中选择关于所需深度的DC点的信息。
在本公开中,为了简单起见,包括AEC比特流的切片将被称为AEC切片,并且包括DC比特流的切片将被称为DC切片。
图34示出了根据实施方式的几何树结构和切片段的示例以及多个AEC切片和一个DC切片的示例。
即,DC比特流被携带在一个切片中。
图34例示了基于7个八叉树深度执行位置压缩的情况。在这种情况下,几何树结构(即,八叉树结构)具有3个组,并且被划分成总共5个层组(例如,3个组中的一个再次被划分成3个子组),并且5个层组的AEC比特流分别被包括在5个切片中(例如,切片1至切片5)。在这种情况下,当使用直接压缩时,DC比特流可以在单独的切片(例如,切片6)中发送。根据实施方式,切片6中所包括的DC比特流可以根据八叉树深度被依次发送。参照作为示例的图34的(b),深度4的DC比特流、深度5的DC比特流、深度6的DC比特流和深度7的DC比特流按此顺序被包括在切片6中。该示例对应于从深度4开始执行直接编码的情况。
当接收装置仅使用关于高达八叉树深度5(即,组2)的深度的信息时,接收装置可以选择切片1和2,以通过AEC解码器重构对应于八叉树深度5的AEC比特流。另外,接收装置可以选择切片6,并且重新选择与切片6中的深度4和5对应的DC比特流,以通过DC解码器重构比特流。即,接收装置可以通过DC解码器独立地重构直接压缩点的位置。
在这种情况下,DC解码器可以从x、y和z位置信息选择并仅使用相应层所需的信息。
在下面的示例中,八叉树深度A是执行直接编码的八叉树深度,并且八叉树深度B是八叉树深度A之后的八叉树深度,并且可以是通过从完整的八叉树深度N中减去八叉树深度A而获得的值。即,当定义八叉树深度B=八叉树深度(N-A)时,DC压缩叶节点的位置可以被定义为DC之前的AEC占用节点位置处的DC位置,如下式5中所示。即,当执行直接编码时,如果在通过八叉树编码朝向叶节点执行编码时满足预设条件,则执行直接编码。在式5的示例中,当直接编码开始的深度是深度B时,通过将先前深度(例如,深度A,八叉树编码的深度)相对于深度B的位置与直接编码位置级联来获得最终节点位置。换句话说,它是用于在完全执行解码时找到该位置的表达式。
[式5]
叶节点位置(x或y或z)
=八叉树深度A处的占用节点位置(来自上层的AEC比特流)<<八叉树深度B+八叉树深度A之后的DC位置
在式5中,“八叉树深度A处的占用节点位置<<八叉树深度B”意味着“八叉树深度A处的占用节点位置”应该向左进行比特偏移达“八叉树深度B”。
另外,当八叉树深度C是部分解码中的目标八叉树深度时(其中八叉树深度C<全八叉树深度N,并且八叉树深度C>八叉树深度A),如果执行部分几何解码,则点/节点的位置可以如下式6中定义。
[式6]
八叉树深度C处的部分解码节点位置(x或y或z)
=八叉树深度A处的(AEC)占用节点位置<<八叉树深度(C-A)+八叉树深度A之后的DC位置>>八叉树深度(B-(C-A))
式6是式5的应用。即,由于执行部分解码时位置改变,因此在该式中获得了此时改变的位置。
例如,在用八叉树解码的位置之后添加DC位置。在这种情况下,在该式中,考虑因部分解码而损失的节点(或深度)。考虑到由于部分解码而损失的深度,排除该部分的深度的位置偏移和级联。
图35示出了根据实施方式的几何树结构和切片段的示例以及AEC切片和DC切片的示例。
即,图35例示了用于发送DC比特流的另一种方法。在该示例中,DC比特流被按八叉树深度划分,并且每个划分的DC比特流通过每个切片发送。即,与所划分的DC比特流的数量一样多的用于DC的切片被分段。
在这个示例中,DC比特流被划分成三个DC组。可以根据层组来划分DC组。例如,当几何树结构被划分成三个层组(组1、组2和组3)时,DC比特流也被划分成三个DC组(DC组1、DC组2和DC组3)。在该示例中,子组没有应用于DC比特流。然而,在应用领域中,子组也可以以相同的方式划分。在这种情况下,DC组3可以进一步被划分为三个DC组,即,DC组3-1、DC组3-2和DC组3-3(即,三个DC子组)。根据实施方式,三个DC组(DC组1、DC组2和DC组3)的DC比特流分别在三个切片(切片6至切片8)中发送。在该示例中,深度4(即,DC组1)的DC比特流被包括在切片6中,深度5(即,DC组2)的DC比特流被包括在切片7中,并且深度6和7(即,DC组3)的DC比特流被包括在切片8中。
另选地,用于将DC比特流划分成组的标准和用于将AEC比特流划分成组的标准可以根据应用领域分别应用。
当接收装置仅对高达八叉树深度5的信息进行解码时,它可以选择切片1和2,并且通过AEC解码器对切片1和2中所包括的AEC比特流执行AEC解码(即,重构),并且可以通过DC解码器对切片6、7中所包括的DC比特流执行DC解码(即,重构)。
在这种情况下,为了允许接收装置根据八叉树深度选择DC切片,可以将每个DC切片中所包括的比特流的层组或八叉树深度信息发送到接收装置。
图36示出了根据实施方式的几何树结构和切片段的示例以及AEC切片和DC切片的示例。
即,图36例示了用于发送DC比特流的另一种方法。在所例示的示例中,根据八叉树深度彼此相匹配的AEC比特流和DC比特流通过同一片被一起发送。在这种情况下,在实施方式中,用于划分AEC比特流的标准与用于划分DC比特流的标准相同。例如,使用相同的层组分割方法来划分AEC比特流和DC比特流。
当接收装置仅使用高达八叉树深度5的信息时,选择切片1和2。切片1和2包括属于组1的AEC比特流和DC比特流。因此,当选择切片1和2时,切片1和2中所包括的AEC比特流可以通过AEC解码器经历AEC解码,并且DC比特流可以通过DC解码器经历DC解码。换句话说,在接收装置仅使用高达八叉树深度5的八叉树深度的情况下,与AEC/DC比特流类型无关,只需要基于层组信息来选择切片1和2。相应地,可以更有效率地操作切片选择处理。
虽然在本公开中描述了在一个切片中包括不同的几何编码比特流的方法,但相同的方法可以应用于其中不同属性编码比特流被包括在一个切片中或者几何编码比特流和属性比特流被包括在一个切片中的应用领域。在这种情况下,不同类型的比特流可以具有不同的层组。另选地,不同类型的比特流可以具有相同的层组结构。在这种情况下,它们可以有效率地用在诸如可缩放发送和空间可缩放性这样的应用领域中。
图21示出了根据实施方式的用于发送/接收的点云数据的示例性比特流结构。根据实施方式,从图1、图2、图4和图12中的任一个的点云视频编码器输出的比特流可以采取图21中示出的形式。
根据实施方式,点云数据的比特流提供了图块或切片,使得点云数据可以划分成区域并被处理。比特流的区域可以具有不同的重要性级别。相应地,当点云数据被分割为图块时,可以向相应图块应用不同的滤波器(编码方法)或不同的滤波器单元。当点云数据被分割为切片时,可以向相应切片应用不同的滤波器和不同的滤波器单元。
当点云数据通过将数据分割为区域而被压缩时,根据实施方式的发送装置和接收装置可以以高级语法结构发送和接收比特流,以在分割的区域中选择性发送属性信息。
通过根据如图21中所示的比特流结构发送点云数据,根据实施方式的发送装置可以允许根据重要性级别不同地应用编码操作,并且允许在重要区域中使用高质量的编码方法。另外,它可以根据点云数据的特性来支持有效率的编码和发送,并且根据用户需求来提供属性值。
由于根据实施方式的接收装置根据如图34中所示的比特流结构接收点云数据,因此它可以根据接收装置的处理能力对(划分为图块或切片的)各个区域应用不同的滤波(解码方法),而不是对整个点云数据使用复杂的解码(滤波)方法。由此,对于对用户而言重要的区域,可以确保更好的图像质量,并且可以在系统中确保适当的等待时间。
当根据实施方式的几何比特流、属性比特流和/或信令比特流(或信令信息)被配置在一个比特流(或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,并且可以在基于图块的编码和/或解码中被添加到图块和/或切片报头。
根据实施方式,关于分段(分离)的切片的信息和/或与直接编码相关的信息可以在SPS、GPS、APS、TPS或SEI消息中的至少一个中被发信号通知。另外,关于分段(分离)的切片的信息和/或与直接编码相关的信息可以在几何切片报头(或称为几何数据单元报头)或属性切片报头(或称为属性数据单元报头)中的至少一个中被发信号通知。
根据实施方式,关于分段(分离的)的切片的信息和/或与直接编码相关的信息可以根据应用或系统被定义在对应的位置或单独的位置,使得将要应用的范围和方法可以被不同地使用。作为在稍后将在本公开中描述的语法中使用的术语的字段可以具有与参数或语法元素相同的含义。
即,信号(即,关于分段(分离)的切片的信息和/或与直接编码相关的信息)可以根据信号被发送的位置具有不同的含义。如果信号是在SPS中定义的,则可以将其等同地应用于整个序列。如果信号是在GPS中定义的,则这可以指示信号用于位置重构。如果信号是在APS中定义的,则这可以指示信号应用于属性重构。如果信号是在TPS中定义的,则这可以指示信号仅应用于图块内的点。如果信号是在切片中传送的,则这可以指示信号仅应用于切片。另外,当字段(或称为语法元素)除了当前点云数据流之外还适用于多个点云数据流时,它们可以被携带在上级参数集中。
根据实施方式,参数(可以被称为元数据、信令信息等)可以由元数据处理器(或元数据生成器)、信令处理器或发送装置的处理器生成,并且被发送到接收装置,以在解码/重构过程中使用。例如,由发送装置生成和发送的参数可以由接收装置的元数据解析器获取。
在该实施方式中,已描述独立于编码技术来定义信息。然而,在其它实施方式中,可以结合编码技术来定义信息。为了支持区域上不同的可缩放性,可以在图块参数集中定义信息。另选地,可以定义网络抽象层(NAL)单元,并且可以传送诸如layer_id这样的用于选择层的相关信息(例如,关于分段(分离)的切片的信息和/或与直接编码相关的信息),使得甚至可以在系统级选择比特流。
图37示出了根据实施方式的序列参数集(SPS)(seq_parameter_set())和几何参数集。
根据实施方式,参数集可以被包括在图21的比特流中,并且可以由编码器生成并且由解码器解码。
根据实施方式的SPS可以包括main_profile_compatibility_flag字段、unique_point_positions_constraint_flag字段、level_idc字段、sps_seq_parameter_set_id字段、sps_bounding_box_present_flag字段、sps_source_scale_factor_numerator_minus1字段、sps_source_scale_factor_denominator_minus1字段、sps_num_attribute_sets字段、log2_max_frame_idx字段、axis_coding_order字段、sps_bypass_stream_enabled_flag字段和sps_extension_flag字段。
main_profile_compatibility_flag字段可以指示比特流是否符合主配置文件。例如,等于1的main_profile_compatibility_flag可以指示比特流符合主配置文件。例如,等于0的main_profile_compatibility_flag可以指示比特流符合除了主配置文件之外的配置文件。
当unique_point_positions_constraint_flag等于1时,在当前SPS所引用的每个点云帧中,所有输出点都可以具有唯一位置。当unique_point_positions_constraint_flag等于0时,在当前SPS引用的任何点云帧中,两个或更多个输出点可以具有相同的位置。例如,即使当各个切片中的所有点都是唯一的时,帧中的切片和其它点也可以交叠。在这种情况下,unique_point_positions_constraint_flag被设置为0。
level_idc指示比特流符合的级别。
sps_seq_parameter_set_id提供了SPS的标识符,以供其它语法元素参考。
sps_bounding_box_present_flag字段指示在SPS中是否存在边界框。例如,等于1的sps_bounding_box_present_flag指示在SPS中存在边界框,并且等于0的sps_bounding_box_present_flag指示边界框的大小未定义。
根据实施方式,当sps_bounding_box_present_flag等于1时,SPS还可以包括sps_bounding_box_offset_x字段、sps_bounding_box_offset_y字段、sps_bounding_box_offset_z字段、sps_bounding_box_offset_log2_scale字段、sps_bounding_box_size_width字段、sps_bounding_box_size_height字段和sps_bounding_box_size_depth字段。
sps_bounding_box_offset_x指示源边界框在笛卡尔坐标中的x偏移。当源边界框的x偏移不存在时,sps_bounding_box_offset_x的值为0。
sps_bounding_box_offset_y指示源边界框在笛卡尔坐标中的y偏移。当源边界框的y偏移不存在时,sps_bounding_box_offset_y的值为0。
sps_bounding_box_offset_z指示源边界框在笛卡尔坐标中的z偏移。当源边界框的z偏移不存在时,sps_bounding_box_offset_z的值为0。
sps_bounding_box_offset_log2_scale指示用于缩放量化的x、y和z源边界框偏移的比例因子。
sps_bounding_box_size_width指示源边界框在笛卡尔坐标中的宽度。当不存在源边界框的宽度时,sps_bounding_box_size_width的值可以为1。
sps_bounding_box_size_height指示源边界框在笛卡尔坐标中的高度。当不存在源边界框的高度时,sps_bounding_box_size_height的值可以为1。
sps_bounding_box_size_depth指示源边界框在笛卡尔坐标中的深度。当不存在源边界框的深度时,sps_bounding_box_size_depth的值可以为1。
sps_source_scale_factor_numerator_minus1加1指示源点云的缩放因子分子。
sps_source_scale_factor_denominator_minus1加1指示源点云的缩放因子分母。
sps_num_attribute_sets指示比特流中编码属性的数目。
根据实施方式的SPS包括重复次数与sps_num_attribute_sets字段的值一样多的迭代语句。在实施方式中,i被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句,直到i的值变得等于sps_num_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_minus1[i]字段、attribute_cicp_colour_primaries[i]字段、attribute_cicp_transfer_charchients[i]字段、attribute_cicp_matrix_coeffs[i]字段和attribute_cicp_video_full_range_flag[i]字段。
attribute_secondary_bitdepth_minus1[i]加1指定第i属性信号的次分量的位深度。
attribute_cicp_colour_primaries[i]指示第i属性的颜色属性源原色的色度坐标。
attribute_cicp_transfer_attributes[i]要么指示颜色属性的参考光电传递特性函数作为标称真实值范围为0至1的源输入线性光学强度的函数,要么指示参考电光传递特性函数的逆作为输出线性光学强度的函数。
attribute_cicp_matrix_coeffs[i]描述了在从第i属性的绿色、蓝色和红色或Y、Z和X原色推导亮度和色度信号时使用的矩阵系数。
attribute_cicp_video_full_range_flag[i]指定从第i属性的E′Y、E′PB和E′PR或E′R、E′G和E′B真实值分量信号推导出的亮度和色度信号的范围和黑色水平。
known_attribute_label_flag[i]字段指示是否针对第i属性发信号通知know_attribute_label[i]字段或attribute_label_four_bytes[i]字段。例如,当known_attribute_label_flag[i]等于0时,指示针对第i属性发信号通知known_attribute_label[i]字段。等于1的known_attribute_label_flag[i]指示针对第i属性发信号通知attribute_label_four_bytes[i]字段。
known_attribute_label[i]指明第i属性的类型。例如,等于0的known_attribute_label[i]字段可以指明第i属性是颜色。等于1的known_attribute_label[i]可以指明第i属性是反射率。等于2的known_attribute_label[i]可以指明第i属性是帧索引。另外,等于4的known_attribute_label[i]指明第i属性是透明度。等于5的known_attribute_label[i]指明第i属性是法线。
attribute_label_four_bytes[i]指示具有4字节代码的已知属性类型。
根据实施方式,等于0的attribute_label_four_bytes[i]可以指示第i属性是颜色。等于1的attribute_label_four_bytes[i]可以指明第i属性是反射率。等于2的attribute_label_four_bytes[i]可以指示第i属性是帧索引。等于4的attribute_label_four_bytes[i]可以指示第i属性是透明度。等于5的attribute_label_four_bytes[i]可以指示第i属性是法线。
log2_max_frame_idx指示用于发信号通知语法变量frame_idx的位的数目。
axis_coding_order指明X、Y和Z输出轴标记与重构点云RecPic[pointidx][axis]中的三个位置分量之间的对应性,其中axis=0、...、2。
等于1的sps_bypass_stream_enabled_flag指明在读取比特流时可以使用旁路编码模式。作为另一示例,等于0的sps_bypass_stream_enabled_flag指明在读取比特流时不使用旁路编码模式。
sps_extension_flag指示在SPS语法结构中是否存在sps_extension_data语法结构。例如,等于1的sps_extension_present_flag指明在SPS语法结构中存在sps_extension_data语法结构。等于0的sps_extension_present_flag指示不存在该语法结构。
当sps_extension_flag字段的值为1时,根据实施方式的SPS还可以包括sps_extension_data_flag字段。
sps_extension_data_flag可以具有任何值。
图37示出了根据实施方式的SPS(sequency_parameter_set())的语法结构的另一实施方式。
图37的SPS还可以包括scalable_transmission_enable_flag字段。scalable_transmission_enable_flag指示比特流配置是否被建立为适于可缩放发送。例如,等于1的scalable_transmission_enable_flag指示比特流配置被建立为适于可缩放发送。即,它可以指示几何树结构和/或属性树结构由多个切片构成,因此可以在比特流阶段选择信息,指示关于分段(分离)的切片的信息和/或与直接编码相关的信息(例如,可缩放层配置信息)通过GPS、APS、TPS、切片报头、SEI消息等发送,以允许发送装置或接收装置执行切片选择,并且指示几何和/或属性被压缩以实现部分解码。即,当scalable_transmission_enable_flag的值为1时,接收装置或接收装置的转码器可以基于该值来识别几何和/或属性可缩放发送可用。
根据实施方式,图37的scalable_transmission_enable_flag字段可以被包括在图37的SPS中的任何位置。
图37示出了根据本公开的GPS(geometry_parameter_set())的语法结构的实施方式。GPS可以包括关于对一个或更多个切片中所包括的点云数据的几何信息进行编码的方法的信息。
根据实施方式,GPS可以包括gps_geom_parameter_set_id字段、gps_seq_parameter_set_id字段、gps_box_present_flag字段、unique_geometry_points_flag字段、geometry_planar_mode_flag字段、geometry_angular_mode_flag字段、neighbour_context_restriction_flag字段、inferred_direct_coding_mode_enabled_flag字段、bitwise_occupancy_coding_flag字段、adjacent_child_contextualization_enabled_flag字段、log2_neighbour_avail_boundary字段、log2_intra_pred_max_node_size字段、log2_trisoup_node_size字段、geom_scaling_enabled_flag字段、gps_implicit_geom_partition_flag字段和gps_extension_flag字段。
gps_geom_parameter_set_id提供GPS的标识符,以供其它语法元素参考。
gps_seq_parameter_set_id指明激活的SPS的sps_seq_parameter_set_id的值。
gps_box_present_flag指明是否在引用当前GPS的几何切片报头中提供附加边界框信息。例如,等于1的gps_box_present_flag字段可以指明在引用当前GPS的几何切片报头中提供附加边界框信息。相应地,当gps_box_present_flag字段的值为1时,GPS还可以包括gps_gsh_box_log2_scale_present_flag字段。
gps_gsh_box_log2_scale_present_flag指示是否在引用当前GPS的每个几何切片报头中发信号通知gps_gsh_box_log2_scale。例如,等于1的gps_gsh_box_log2_scale_present_flag可以指示在引用当前GPS的每个几何切片报头中发信号通知gps_gsh_box_log2_scale。作为另一示例,等于0的gps_gsh_box_log2_scale_present_flag可以指示在引用当前GPS的每个几何切片报头中不发信号通知gps_gsh_box_log2_scale并且在当前GPS的gps_gsh_box_log2_scale字段中发信号通知所有切片的公共缩放比例。
当gps_gsh_box_log2_scale_present_flag字段的值为0时,GPS还可以包括gps_gsh_box_log2_scale字段。
gps_gsh_box_log2_scale指示引用当前GPS的所有切片的边界框原点的公共缩放因子。
unique_geometry_points_flag指示在当前引用GPS的所有切片中,所有输出点是否在一个切片中具有唯一位置。例如,等于1的unique_geometry_points_flag指示在引用当前GPS的所有切片中,所有输出点在切片内具有唯一位置。等于0的unique_geometry_points_flag字段指示在引用当前GPS的所有切片中,输出点中的两个或更多个可以在切片内具有相同的位置。
geometry_planar_mode_flag字段指示平面编码模式是否被激活。例如,等于1的geometry_planar_mode_flag指示平面编码模式是激活的。等于0的geometry_planar_mode_flag指示平面编码模式未激活。
当geometry_planar_mode_flag字段的值为1(即,TRUE)时,GPS还可以包括geom_planar_mode_th_idcm字段、geom_planar_mode_th[1]字段和geom_planar_mode_th[2]字段。
geom_planar_mode_th_idcm字段可以指明用于直接编码模式的激活阈值的值。
geom_planar_mode_th[i]指明对于范围为0…2中的i,用于沿着针对平面编码模式的第i个最可能方向的平面编码模式的激活阈值的值是有效的。
geometry_angular_mode_flag指示角度编码模式是否是激活的。例如,等于1的geometry_angular_mode_flag字段可以指示角度编码模式是激活的。等于0的geometry_angular_mode_flag字段可以指示角度编码模式未激活。
当geometry_angular_mode_flag字段的值为1(即,TRUE)时,GPS还可以包括lidar_head_position[0]字段、lidar_head_position[1]字段、lidar_head_position[2]字段、number_lasers字段、planar_buffer_disabled字段、implicit_qtbt_angular_max_node_min_dim_log2_to_split_z字段和implicit_qtbt_angular_max_diff_to_split_z字段。
lidar_head_position[0]字段、lidar_head_position[1]字段和lidar_head_position[2]字段可以指明lidar报头在具有内部轴的坐标系中的(X,Y,Z)坐标。
number_lasers指明用于角度编码模式的激光器的数目。
根据实施方式的GPS包括重复次数与number_lasers字段的值一样多的迭代语句。在实施方式中,i被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句,直到i的值变得等于number_lasers字段的值。该迭代语句可以包括laser_angle[i]字段和laser_correction[i]字段。
laser_angle[i]指明第i个激光器的仰角相对于由第0个和第1个内部轴限定的水平平面的正切
laser_correction[i]指明沿着第二内轴对与lidar_head_position[2]相关的第i个激光器位置的校正。
等于1的planar_buffer_disabled指示在对平面模式下的平面位置和平面模式标志进行编码的过程中没有使用利用缓冲器跟踪最近的节点。等于0的planar_buffer_disabled指示使用利用缓冲器跟踪最近的节点。
implicit_qtbt_angular_max_node_min_dim_log2_to_split_z指明节点大小的log2值,在该值以下,节点的水平切分优先于垂直切分。
implicit_qtbt_angular_max_diff_to_split_z指明节点所允许的超过水平节点大小比率的最大垂直的log2值。
等于0的neighbour_context_restriction_flag指示用从位于当前节点的父节点内部的邻近节点确定的上下文对当前节点的几何节点占用率进行编码。等于1的neighbour_context_restriction_flag指示用从位于当前节点的父节点之内或之外的邻近节点确定的上下文对当前节点的几何节点占用几何节点占用率进行编码。
inferred_direct_coding_mode_enabled_flag指示在几何节点语法中是否存在direct_mode_flag。例如,等于1的inferred_direct_coding_mode_enabled_flag指示在几何节点语法中存在direct_mode_flag。例如,等于0的inferred_direct_coding_mode_enabled_flag指示在几何节点语法中不存在direct_mode_flag。
bitwise_occupancy_coding_flag指示是否使用语法元素ocupancy_map的逐位上下文化对几何节点占用率进行编码。例如,等于1的bitwise_occupancy_coding_flag指示使用语法元素ocupancy_map的逐位上下文化对几何节点占用率进行编码。例如,等于0的bitwise_occupancy_coding_flag指示使用目录编码语法元素occupancy_byte对几何节点占用率进行编码。
adjacent_child_contextualization_enabled_flag指示邻近八叉树节点的相邻孩子是否被用于逐位占用上下文化。例如,等于1的adjacent_child_contextualization_enabled_flag指示邻近八叉树节点的相邻孩子用于逐位占用上下文化。例如,等于0的adjacent_child_contextualization_enabled_flag指示邻近八叉树节点的孩子不用于占用上下文化。
log2_neighbour_avail_boundary指明解码过程中使用的变量NeighbAvailBoundary的值。例如,当neighbour_context_restriction_flag等于1时,NeighbAvailabilityMask可以被设置为1。例如,当neighbour_context_restriction_flag等于0时,NeighbAvailabilityMask可以被设置为1<<log2_neighbour_avail_boundary。
log2_intra_pred_max_node_size指明有资格占用帧内预测的八叉树节点大小。
log2_trisoup_node_size将变量TrisoupNodeSize指定为三角形节点的大小。
geom_scaling_enabled_flag指明在几何切片解码过程期间是否应用针对几何位置的缩放过程。例如,等于1的geom_scaling_enabled_flag指明在几何切片解码过程期间应用针对几何位置的缩放过程。等于0的geom_scaling_enabled_flag指明几何位置不需要缩放。
geom_base_qp指示几何位置量化参数的基本值。
gps_implicit_geom_partition_flag指示是否针对序列或切片启用隐式几何分割。例如,等于1指明针对序列或切片启用隐式几何分割。等于0的gps_implicit_geom_partition_flag指明针对序列或切片禁用隐式几何分割。当gps_implicit_geom_partition_flag等于1时,发信号通知以下两个字段,即,gps_max_num_implicit_qtbt_before_ot字段和gps_min_size_implicit_qtbt字段。
gps_max_num_implicit_qtbt_before_ot指明在OT分割之前隐式QT和BT分割的最大数目。然后,变量K如下地由gps_max_num_implicit_qtbt_before_ot初始化。
K=gps_max_num_implicit_qtbt_before_ot。
gps_min_size_implicit_qtbt指明隐式QT和BT分割的最小大小。然后,如下地由gps_min_size_implicit_qtbt初始化变量M:
M=gps_min_size_implicit_qtbt
gps_extension_flag指示在GPS语法结构中是否存在gps_extension_data语法结构。例如,等于1的gps_extension_flag指示在GPS语法中存在gps_extension_data语法结构。例如,等于0的gps_extension_flag指明在GPS语法中不存在gps_extension_data语法结构。
当gps_extension_flag等于1时,根据实施方式的GPS还可以包括gps_extension_data_flag字段。
gps_extension_data_flag可以具有任何值。它的存在和值不影响解码器对配置文件的一致性。
根据实施方式,GPS还可以包括geom_tree_type字段。例如,等于0的geom_tree_type指示位置信息(或几何)使用八叉树来编码。等于1的geom_tree_type指示使用预测树对位置信息(或几何)进行编码。
根据实施方式,当SPS中所包括的scalable_transmission_enable_flag字段的值为1时,GPS可以包括geom_scalable_transmission_enable_flag字段。
在一个实施方式中,等于1的geom_scalable_transmission_enable_flag指示几何被压缩以启用可缩放发送。
例如,它可以指示几何由基于八叉树的层构成或者切片分割(参见图24等)是考虑到可缩放发送来执行的。
例如,等于1的geom_scalable_transmission_enable_flag可以指示使用基于八叉树的几何编码,并且禁用QTBT,或者通过按BT(二叉树)-QT(四叉树)-OT(八叉树)的顺序执行编码来以诸如八叉树这样的形式对几何进行编码。
当geom_scalable_transmission_enable_flag等于1时,GPS还可以包括num_scalable_layer字段。
num_scalable_layers可以指示支持可缩放发送的层的数量。根据实施方式的层可以意指LOD。
根据实施方式,GPS包括重复次数与number_scalable_lasers字段的值一样多的迭代语句。在实施方式中,i被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句,直到i的值变得等于num_scalable_layers字段的值。迭代语句可以包括scalable_layer_id[i]字段和num_slices_in_scalable_layer[i]字段。
scalable_layer_id[i]字段可以指定第i个可缩放层的标识符。即,它指定构成可缩放发送的可缩放层的指示符。根据实施方式,当可缩放层由多个切片构成时,公共信息可以通过参数集中的scalable_layer_id字段来发送,而其它独立信息可以根据切片通过数据单元报头来发送。
根据实施方式,当geom_tree_type等于0时,即,当使用八叉树对位置信息(即,几何)进行编码时,GPS还可以包括num_octree_layers_in_scalable_layer[i]字段、tree_depth_start[i]字段、tree_depth_end[i]字段、node_size[i]字段和num_nodes[i]字段。
num_octree_layers_in_scalable_layer[i]可以指示包括在构成可缩放发送的第i个可缩放层中或对应于该层的八叉树层的数目。当没有基于八叉树来配置可缩放层时,num_octree_layers_in_scalable_layer[i]可以指代对应的层。
tree_depth_start[i]可以指示包括在构成可缩放发送的可缩放层中或者对应于该可缩放层的八叉树层当中的(相对最接近根的)起始八叉树深度。
tree_depth_end[i]可以指示包括在构成可缩放发送的第i个可缩放层中或者对应于该可缩放层的八叉树层当中的(相对最接近叶的)最后一个八叉树深度。
node_size[i]可以指示当通过可缩放发送重构第i个可缩放层时输出点云数据的节点大小。例如,等于1的node_size[i]可以指示叶节点。尽管实施方式假定XYZ节点大小是恒定的,但可以通过发信号通知在诸如(r(半径),phi,theta)这样的变换坐标中的每个方向或XYZ方向上的大小来指示任意节点大小。
num_slices_in_scalable_layer[i]可以指示属于第i个可缩放层的切片的数量。
根据实施方式,GPS包括重复次数与num_slices_in_scalable_layer[i]字段的值一样多的迭代语句。在实施方式中,j被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句,直到j的值变得等于num_slices_in_scalable_layer[i]字段的值。该迭代语句可以包括sub_group_id[i][j]字段、num_nodes_in_subgroup[i][j]字段、bitstream_type[i][j]字段和slice_id[i][j]字段。
sub_group_id[i][j]字段指明属于第i个可缩放层的第j个切片中所包括的子组的标识符。即,sub_group_id[i][j]字段指明由layer_group_id字段指示的层组中的子组的指示符。subgroup_id的范围是0至num_subgroups_minus1[layer_group_id],其中,subgroup_id指示同一layer_group_id中切片的次序。
num_nodes_in_subgroup[i][j]指示与属于第i个可缩放层的第j个切片相关的节点的数量。即,num_nodes_in_subgroup[i][j]指示几何数据单元中所包括的节点的数量。根据实施方式,几何数据单元中的所有num_nodes之和指明几何数据单元中节点的总数。
bitstream_type[i][j]指示属于第i个可缩放层的第j个切片中所包括的比特流的类型。根据实施方式,bitstream_type可以指示切片中所包括的比特流的类型。等于0的bitstream_type可以指示比特流是算术熵编码(AEC)比特流。等于1的bitstream_type可以指示比特流是直接编码(DC)比特流。等于2的bitstream_type可以指示AEC比特流和DC比特流一起存在于切片中。
slice_id[i][j]指明用于标识属于第i个可缩放层的第j个切片的标识符。即,slice_id[i][j]可以指明用于区分切片或数据单元的指示符,并且可以传送属于切片层的数据单元(或称为切片)的指示符。
根据实施方式,与图38的直接编码相关的信息和/或关于分段(分离)的切片的信息可以被包括在图37的GPS中的任何位置。
图38示出了根据实施方式的几何数据单元报头(或称为几何切片报头)的语法结构。
根据实施方式的几何数据单元报头可以包括slice_id字段和bitstream_type字段。
slice_id指明用于标识数据单元(即,切片)的标识符。即,slice_id指明用于区分切片或数据单元的指示符,并且可以传送属于切片层的数据单元(或称为切片)的指示符。
bitstream_type指示切片中所包括的比特流的类型。根据实施方式,bitstream_type可以指示切片中所包括的比特流的类型。等于0的bitstream_type可以指示比特流是算术熵编码(AEC)比特流。等于1的bitstream_type可以指示比特流是直接编码(DC)比特流。等于2的bitstream_type可以指示AEC比特流和DC比特流一起存在于切片中。
根据实施方式,当geom_scalable_transmission_enable_flag字段的值为1时,几何数据单元报头还可以包括scalable_layer_id字段、num_tree_depth_in_data_unit字段和bitstream_type字段。
scalable_layer_id可以指明与数据单元(即,切片)相关的可缩放层的标识符。即,它指明用于构成可缩放发送的可缩放层的指示符。根据实施方式,当可缩放层由多个切片构成时,公共信息可以通过参数集中的scalable_layer_id字段发送,并且其它独立信息可以根据切片通过图43的数据单元报头发送。
当对应于scalable_layer_id的可缩放层中存在多个子组时,几何数据单元报头还可以包括sub_group_id字段。
sub_group_id指明属于由scalable_layer_id指明的可缩放层的子组的标识符。即,sub_group_id指明由layer_group_id指示的层组中的子组的指示符。subgroup_id的范围是0至num_subgroups_minus1[layer_group_id],其中,subgroup_id指示同一layer_group_id中切片的次序。
num_tree_depth_in_data_unit可以指明包括属于数据单元(即,切片)的节点的树深度的数目。
根据实施方式,几何数据单元报头包括重复次数与num_tree_depth_in_data_unit的值一样多的迭代语句。在实施方式中,i被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句,直到i的值变得等于num_tree_depth_in_data_unit的值。该迭代语句可以包括tree_depth[i]字段、num_nodes[i]字段和num_nodes_in_subgroup[i][sub_group_id]字段。
tree_depth[i]可以指示第i个树深度。即,tree_depth可以指示树深度。
num_nodes[i]可以指示第i个树深度中所包括的节点的数目。即,num_nodes[i]可以指示属于数据单元的节点当中的属于第i个树深度(tree_depth)的节点的数量。
num_nodes_in_subgroup[i][sub_group_id]指示与数据单元(即,切片)相关的节点的数目。即,num_nodes_in_subgroup[i]指示包括在由sub_group_id指示的子组中所包括的节点的数目。根据实施方式,几何数据单元中的所有num_nodes之和指明几何数据单元中节点的总数。
num_points指明属性数据单元中的点的数量。属性数据单元中的所有num_points的总和指明属性数据单元中的点的总数。
根据实施方式,当bitstream_type等于2,即,AEC比特流和DC比特流一起存在于切片中时,几何数据单元报头还可以包括dc_bitstream_offset字段、dc_bitstream_length字段和dc_backward_enabled_flag字段。
根据实施方式,dc_bitstream_offset和dc_bitstream_length可以指示切片中DC比特流的起始/结束位置以及DC比特流的总长度。即,当bitstream_type等于2时,AEC比特流和DC比特流可以一起存在于一个切片中。在这种情况下,可以指示DC比特流的起始/结束位置和DC比特流的总长度。
等于1的dc_backward_enabled_flag可以指示DC比特流以相反的顺序被包括在包括AEC比特流和DC比特流二者的切片中。在这种情况下,切片的比特流的结尾可以是DC比特流的开头,并且dc_bitstream_offset可以是DC比特流的结尾。等于0的dc_backward_enabled_flag指示DC比特流以与AEC比特流相同的方向被包括在包括AEC比特流和DC比特流二者的切片中。在这种情况下,可以看出,DC比特流从dc_bitstream_offset开始,并且DC比特流在整个比特流(即,dc_bitstream_offset+dc_bitstream_length)的结尾处结束。
根据实施方式,几何数据单元报头还可以包括ref_slice_id字段。
ref_slice_id字段可以用于指示必须在当前切片的解码之前的切片(参见例如图19至图21的报头)。
根据实施方式,图38的关于分段(分离)的切片的信息和/或与直接编码相关的信息可以被包括在几何切片报头(即,几何数据单元报头)中的任何位置。
图39示出了根据实施方式的点云数据发送装置的结构。
根据实施方式的图39的发送装置对应于图1的发送装置10000、图1的点云视频编码器10002、图1的发送器10003、图2的获取20000/编码20001/发送20002、图4的编码器、图12的发送装置、图14的装置、图18的编码器等。图39的每个部件可以对应于硬件、软件、处理器和/或其组合。
下面,描述根据实施方式的编码器和发送器的操作。
当点云数据被输入到发送装置时,几何编码器60010对位置信息(几何数据(例如,XYZ坐标、phi-theta坐标等))进行编码,并且属性编码器60020对属性数据(例如,颜色、反射率、强度、灰度级、不透明度、介质、材料、光泽度等)进行编码。
压缩(编码)后的数据被划分为用于发送的单元。数据可以由子比特流生成器60040划分为适于根据分层结构信息在比特流单元中选择必要信息的单元,然后可以被打包。
根据实施方式,八叉树编码几何比特流被输入到八叉树编码几何比特流分段部分60041,并且直接编码几何比特流被输入到直接编码几何比特流分段部分60042。
八叉树编码几何比特流分段部分60041基于由层-组结构生成器60030生成的与直接编码相关的信息和/或关于分段(分离)的切片的信息,将八叉树编码几何比特流划分成一个或更多个组和/或子组。至于细节,参见上面描述的图15到图33。将跳过对其的详细描述。
另外,直接编码几何比特流分段部分60042基于由层-组结构生成器60030生成的与直接编码相关的信息和/或关于分段(分离)的切片的信息,将直接编码几何比特流划分成一个或更多个组和/或子组。至于细节,参见上面描述的图15到图33。将跳过对其的详细描述。
八叉树编码几何比特流分段部分60041的输出和直接编码几何比特流分段部分60042的输出被输入到几何比特流结合部分60043。
几何比特流结合部分60043基于由层-组结构生成器60030生成的与直接编码相关的信息和/或关于分段(分离)的切片的信息来执行几何比特流结合处理,并且以逐层组为基础将子比特流输出到分段切片生成器60045。例如,几何比特流结合部分60043执行在切片内将AEC比特流和DC比特流级联的处理。最终切片由几何比特流结合部分60043创建。
编码属性比特流分段部分60044基于由层-组结构生成器60030生成的与直接编码相关的信息和/或关于分段(分离)的切片的信息,将编码属性比特流划分成一个或更多个组和/或子组。属性信息的一个或更多个组和/或子组可以与几何信息的一个或更多个组和/或子组链接,或者可以被独立地生成。至于细节,参见上面描述的图15到图33。将跳过对其的详细描述。
分段切片生成器60045基于由元数据生成器60050生成的直接编码相关信息和/或关于分段(分离)的切片的信息,根据从几何比特流结合部分60043和/或编码属性比特流分段部分60044接收的输入,将一个切片分段为多个切片。每个子比特流通过每个切片分段发送。在这种情况下,AEC比特流和DC比特流可以通过一个切片发送,或者可以通过不同的切片发送。
复用器60060针对每一层复用分段切片生成器60045的输出和元数据生成器60050的输出,并且将复用后的输出提供到发送器60070。至于由层-组结构生成器60030和/或元数据生成器生成的与直接编码相关的信息和/或关于分段(分离)的切片的信息,参照图34至图48。
即,如本公开中提出的,当不同类型的比特流(例如,AEC比特流和DC比特流)被包括在一个切片中时,由几何编码器60010生成的比特流(例如,AEC比特流和DC比特流)可以根据目的而被分离。然后,根据由层-组结构生成器60030和/或元数据生成器生成的与直接编码相关的信息和/或关于分段(分离)的切片的信息(即,层-组信息),相应切片或相邻信息可以被包括在一个切片中。根据实施方式,关于分段(分离)的切片的信息和/或与直接编码相关的信息(例如,诸如比特流类型、比特流偏移、比特流长度和比特流方向这样的信息外加根据每个切片id的层-组信息、层-组中所包括的层信息、节点数量、层深度信息和子组中所包括的节点数量)可以从元数据生成器60050发送。可以在SPS、APS、GPS、几何数据单元报头、属性数据单元报头或SEI消息中发信号通知关于分段(分离)的切片的信息和/或与直接编码相关的信息(例如,诸如比特流类型、bitstream_offset、bitstream_length和比特流方向这样的信息外加根据每个切片id的层-组信息、层-组中所包括的层信息、节点数量、层深度信息和子组中所包括的节点数量)。至于关于分段(分离)的切片的信息和/或与直接编码相关的信息(例如,诸如比特流类型、bitstream_offset、bitstream_length和比特流方向这样的信息外加根据每个切片id的层-组信息、层-组中所包括的层信息、节点数量、层深度信息和子组中所包括的节点数量)的细节,参见图34至图48。将跳过对其的详细描述。
图40示出了根据实施方式的点云数据接收装置。
图40的接收装置的每个部件的操作可以遵循图39的发送装置的对应部件的操作或其反向过程。
图41是根据实施方式的点云数据接收装置的流程图。
即,图41更详细地例示了图40中示出的子比特流分类器的操作。换句话说,假定几何数据和属性数据从发送器可缩放地发送。
接收装置以逐个切片为基础接收数据,并且元数据解析器传送诸如SPS、GPS、APS和TPS这样的参数集信息(例如,关于分段(分离)的切片的信息和/或与直接编码相关的信息)。基于所传送的信息,可以确定可缩放性。当数据是可缩放的时,如图41中所示地识别用于可缩放发送的切片结构(65011)。首先,可以基于GPS中携带的诸如num_scalable_layers、scalable_layer_id、tree_depth_start、tree_depth_end、node_size、num_nodes、num_slices_in_scalable_layer和slice_id这样的信息来标识几何切片结构。
当aligned_slice_structure_enabled_flag等于1时(65017),也可以以相同的方式识别属性切片结构(例如,基于八叉树对几何进行编码,基于可缩放LoD或可缩放RAHT对属性进行编码,并且通过相同切片分割生成的几何/属性切片对针对相同的八叉树层而言具有相同数量的节点)。
当结构相同时,根据目标可缩放层确定几何切片id的范围,并且通过slice_id_offset确定属性切片id的范围。根据所确定的范围(65012至65014、65018和65019)来选择几何/属性切片。
当aligned_slice_sturcture_enabled_flag=0时,可以基于通过APS传送的诸如num_scalable_layers、scalable_layer_id、tree_depth_start、tree_depth_end、node_size、num_nodes、num_slices_in_scalable_layer和slice_id这样的信息来分别标识属性切片结构,并且可以根据可缩放操作来限制必要的属性切片id的范围。基于该范围,可以在重构之前通过每个切片id选择所需的切片(65019、65020和65021)。通过以上过程选择的几何/属性切片作为输入被发送到解码器。
以上,已基于接收器的可缩放发送或可缩放选择描述了根据切片结构的解码过程。然而,当scalable_transmission_enabled_flag等于0时,可以跳过geom/attr切片id的范围确定操作,并且可以选择全部切片,使得它们甚至可以在非可缩放操作中使用。即使在这种情况下,关于先前切片的信息(例如,属于更高层的切片或由ref_slice_id指定的切片)可以通过利用诸如SPS、GPS、APS或TPS这样的参数集传送的切片结构信息(例如,关于分段(分离)的切片的信息和/或与直接编码相关的信息)来使用。
如上所述,可以基于可缩放发送来接收比特流,并且可以基于比特流中所包括的参数信息来识别可缩放比特流结构。可以估计几何可缩放层。
可以基于geom_slice_id来识别几何切片。
可以基于slice_id来选择几何切片。
解码器可以对所选择的几何切片进行解码。
当比特流中所包括的aligned_slice_structure_enabled_flag等于1时,可以检查与几何切片对应的属性切片ID。可以基于slice_id_offset来访问属性切片。
可以基于slice_id来选择属性切片。
解码器可以解码所选择的属性切片。
当aligned_slice_structure_enabled_flag不等于1时,可以估计属性可缩放层。可以基于属性切片ID来识别属性切片。
可以基于slice_id来选择属性切片。
在本公开中,当存在不同类型的几何比特流(例如,AEC比特流和DC比特流)时,可以在切片选择操作中选择不同比特流的范围中所包括的所有切片。当不同类型的比特流被包括在一个切片中时,可以基于偏移信息和长度信息来分离比特流,并且分离后的比特流可以经历其中比特流被级联成一个比特流以根据层-组次序进行解码的级联操作。该操作可以被包括为将由层-组分离的比特流处理成连续比特流的过程,并且可以基于层-组信息按顺序对比特流进行排序。可以并行处理的比特流可以在没有级联操作的情况下在解码器中被处理。
根据实施方式的发送装置具有以下效果。
对于点云数据,发送装置可以根据特定标准来划分和发送压缩数据。当使用根据实施方式的分层编码时,可以根据层来划分和发送压缩后的数据。因此,可以提高发送侧的存储和发送效率。
参照图15和图16,可以压缩和提供点云数据的几何和属性。在基于PCC的服务中,可以根据接收器性能或发送环境来调节数据的量或压缩率。
在点云数据被配置在一个切片中的情况下,当接收器性能或发送环境改变时,1)适于每个环境的比特流可以被单独地转码和存储,并且可以在发送时被选择,或者2)在发送之前可能需要转码。在这种情况下,如果将要支持的接收器环境的数量增加或者发送环境频繁变化,则可能引起与存储空间相关的问题或由于转码而导致的延迟。
图42例示了根据实施方式的点云数据发送/接收装置对点云数据的主要区域的有效率的处理的示例。
图1的发送装置10002、图1的编码器10002、图1的接收装置、图1的解码器10006、图2的编码和解码、图4的编码器、图11的解码器、图12的发送装置、图13的接收装置、图14的XR装置1430、图15的编码器和解码器、图39至图41的编码器和解码器等可以支持基于ROI的主要区域的有效率的编码/解码或根据区域具有不同分辨率的编码/解码。作为支持其的方法,可以使用根据实施方式的切片分段结构。相应地,根据实施方式的方法/装置可以提供诸如空间随机存取、基于ROI的逐区域数据分辨率以及接收器效率提高这样的效果。
例如,当作为点云数据目标的对象是人时,人的头部区域可以是感兴趣区域,并且腿部区域可以不是感兴趣区域。对应于感兴趣区域的数据需要具有高数据分辨率,并且不对应于感兴趣区域的数据可以具有低数据分辨率。由此,可以实现有效率的数据处理。
根据实施方式的方法/装置可以通过层-组结构和对应的切片分割来支持诸如表现出低性能的实况流传输或装置这样的需要低等待时间或低复杂度的用例。对于表现出低性能的装置,当点或编码层的数量大时,解码可能是繁琐的。在这种情况下,可以使用通过切片分割启用的可缩放发送来接收和解码部分比特流。由此,可以减少所需的时间和复杂度。然而,因为跳过了详细层,所以输出点云数据的质量可能劣化。
另外,如果可以由解码器执行逐区域解码,则可以降低复杂度,同时保持感兴趣区域(ROI)中的高质量。通过根据ROI改变解码深度,即,通过对用于ROI的整个编码层进行解码并且对用于非ROI的较少编码层进行解码,低性能装置和高性能装置二者都可以有效地生成点云数据。这可以是目的是以有效率的方式提供对ROI的直接访问的空间随机访问应用的主要用例。实施方式包括用于支持基于层-组结构的空间访问的切片分割方法。
图43示出了根据实施方式的层组结构和子组边界框。
图1的发送装置10002、图1的编码器10002、图1的接收装置、图1的解码器10006、图2的编码和解码、图4的编码器、图11的解码器、图12的发送装置、图13的接收装置、图14的XR装置1430、图15的编码器和解码器、图39至图41的编码器和解码器等可以应用如图43中所示的层-组结构中的切片分割。
在该示例中,提供了8个编码层,并且较低层的编码取决于先前层的编码信息(即,占用率)。在生成切片分段时,编码层被分组为三个不同的层组,并且层组的集合与编码层的集合相同。另外,最后两个层组被划分成几个子组。层组2具有两个子组并且层组3有四个子组。层组或子组分别被包含在7个不同的切片分段中。
通过这样的切片分割,根据实施方式的点云数据接收装置可以选择应用程序所需的切片,由此提高解码和渲染效率。例如,当应用仅需要子组3-3的数据时,接收器可以选择包含子组3-3的数据的切片6。另外,考虑到层之间的编码相关性,可能需要用于层组1和子组2-2的先前切片1和3。对于空间接入用例,可以假定同一层-组的子组之间没有相关性。基于切片分割,由于切片更少,导致解码复杂度可以降低。
根据实施方式的子组边界框:
考虑到从解码之前的切片选择获得效率,有必要提供对每个切片的数据的描述以找到包含目标数据的切片。实施方式提议将信号发送到用于空间访问用例的子组中所包含的数据的边界框。图43示出了在每个层组中提出的子组边界框。考虑到每个编码层的节点大小,所有层组的边界与序列或帧的边界框相同。另外,假定在先前子组的边界内执行子组划分。因此,子组2-1和2-2的边界框处于层组1的边界框中,并且子组3-1和3-2以及子组3-3和3-4的边界框可以处于子组2-1和2-2中。
层-组1的子组边界框可以对应于帧和/或边界框。
对于下层组,可以划分上子组边界框。即,下子组边界框的集合是上层组的子组边界框。
当需要子组3-1的边界框(组)时,可以仅解码框(组)3-1、框(组)2-1和框(组)1。
当存在每个子组的子组边界框时,可以通过将每个切片的边界框与ROI进行比较、选择其子组边界框与ROI相关的切片然后解码所选择的切片来执行空间访问。例如,假设ROI处于子组3-3中。在这种情况下,可以通过将ROI与子组边界框进行比较来选择层-组1和子组2-2和3-3。通过对相应的切片1、3和6进行解码,可以以子组3-1的高数据分辨率和其它区域的低数据分辨率来执行对ROI的有效率的访问。对于实时流传输或低等待时间使用,可以在接收每个切片分段时执行选择和解码。
根据实施方式的方法/装置可以用数据单元报头或层组信息来发信号通知参数集中的子组边界框信息,以在解码之前启用切片选择。下面,描述以上项目的语法示例。
根据实施方式的切片选择的信息可以不仅包括位置范围,而且还包括属性范围、法向量范围和属性类型。
根据实施方式的信令示例:(图21的比特流中所包括的信令信息(图44至图46)的示例)
根据本公开的实施方式,关于分离的切片的信息可以如下在参数集中定义。它可以在序列参数集、几何参数集、属性参数集、SEI消息、几何切片报头和属性切片报头中定义。根据应用和系统,它可以被定义在对应的或单独的位置,以不同地使用将要应用的范围和方法。即,根据信号的发送位置,信号可以具有不同的含义。如果信号是在SPS中定义的,则可以将其等同地应用于整个序列。如果信号是在GPS中定义的,则这可以指示信号用于位置重构。如果信号是在APS中定义的,则这可以指示信号应用于属性重构。如果信号是在TPS中定义的,则这可以指示信号仅应用于图块内的点。如果信号是在切片中传送的,则这可以指示信号仅应用于切片。另外,将要应用的范围和方法可以根据应用或系统在对应的位置或单独的位置中定义,以被不同地使用。另外,当下面定义的语法元素除了当前点云数据流之外还适用于多个点云数据流时,它们可以被携带在上级参数集中。
虽然实施方式独立于编码技术定义信息,但可以结合编码技术来定义信息。为了支持区域上不同的可缩放性,可以在图块参数集中定义信息。另外,当下面定义的语法元素不仅适用于当前点云数据流而且适用于多个点云数据流时,它们可以被携带在上级参数集等中。
另选地,可以定义网络抽象层(NAL)单元,并且可以传送诸如layer_id这样的用于选择层的相关信息。由此,可以在系统级选择比特流。
下文中,根据实施方式的参数(可以被称为元数据、信令信息等)可以在根据下述实施方式的发送器的过程中生成,并且被发送到根据实施方式的接收器,以在重构过程中使用。
例如,参数可以由根据稍后将描述的实施方式的发送装置的元数据处理器(或元数据生成器)生成,并且可以由根据实施方式的接收装置的元数据解析器获取。
考虑具有层-组结构的切片分段。在该示例中,存在8个其中较低层的编码取决于先前层的编码信息(例如,占用率)的编码层。在创建切片分段时,编码层被分组为3个不同的层-组,并且层-组的聚合与整个编码层相同。另外,第二和第三层-组被划分为多个子组:层-组2被划分为2个子-组并且层-组3被划分为4个子组。每个层-组或子组被包含在不同的切片分段中。考虑具有层-组结构的切片分段。在该示例中,存在8个其中较低层的编码取决于先前层的编码信息(例如,占用率)的编码层。在创建切片分段时,编码层被分组为3个不同的层-组,并且层-组的聚合与整个编码层相同。另外,第二和第三层-组被划分为多个子组:层-组2被划分为2个子-组并且层-组3被划分为4个子组。每个层-组或子组被包含在不同的切片分段中。
考虑具有层-组结构的切片分段。在该示例中,存在8个其中较低层的编码取决于先前层的编码信息(例如,占用率)的编码层。在创建切片分段时,编码层被分组为3个不同的层-组,并且层-组的聚合与整个编码层相同。另外,第二和第三层-组被划分为多个子组:层-组2被划分为2个子-组并且层-组3被划分为4个子组。每个层-组或子组被包含在不同的切片分段中。考虑具有层-组结构的切片分段。在该示例中,存在8个其中较低层的编码取决于先前层的编码信息(例如,占用率)的编码层。在创建切片分段时,编码层被分组为3个不同的层-组,并且层-组的聚合与整个编码层相同。另外,第二和第三层-组被划分为多个子组:层-组2被划分为2个子-组并且层-组3被划分为4个子组。每个层-组或子组被包含在不同的切片分段中。
利用具有层-组结构的切片分段,接收器可以通过部分解码产生逐区域的不同分辨率。例如,考虑需要子组3-3中的数据的一个应用。在这种情况下,接收器可以对切片6但不对切片4、5和7进行解码。由于层之间的编码相关性,也需要先前的切片。基于切片分段,由于切片数量减少,导致解码复杂度降低。
针对空间访问用例使用切片分段的重要事情之一是接收器如何找到它针对ROI需要的切片。在本文献中,提出使用子组边界框来描述切片中的数据分布。在图1(b)中,例示了每个层-组中提出的子组边界框。考虑到每个编码层的节点大小,所有层-组的边界与序列或帧的边界框相同。另外,假定在先前子组的边界内执行子组划分。因此,子组2-1和2-2的边界框在层-组1的边界框内。另外,子组3-1和3-2和子组3-3和3-4的边界框分别处于子组2-1和2-2的边界内。
给定子组边界框,空间访问可以通过将每个切片的边界框与ROI进行比较、选择其子组边界框与ROI相关的切片然后对所选择的切片进行解码的过程来执行。在示例中,将选择切片1、3和6,因为ROI分别处于层-组1、子组2-2和3-3的子组边界框内。通过对所选择的切片进行解码,产生显示ROI的高数据分辨率和其它区域的低数据分辨率的输出点云。注意的是,假定对于有效的空间访问,同一层-组中的子组之间不存在相关性。在实时流传输或低等待时间用例的情况下,可以在接收每个切片分段时执行选择和解码,这将提高时间效率。
图44示出了根据实施方式的几何参数集。
图45示出了根据实施方式的属性参数集。
图44和图45中的参数由根据图1等的实施方式的编码器生成并且在图21的比特流中传送,并且由根据图1等的实施方式的解码器解析。
num_layer_groups_minus1+1指明层组的数量,其中,层组表示作为几何(或属性)编码树结构的一部分的一组连续的树层。num_layer_groups_minus1可以在0至编码树层数的范围内。
layer_group_id指明第i个几何或属性层组的层组标识符。
num_tree_depth_minus1+1指明第i个层组中所包含的树深度的数量。可以通过将i等于0至num_layer_groups_minus1的所有(num_tree_depth_minus1[i]+1)相加来推导树深度的总数。
num_subgroups_minus1加1指定第i个层组中的子组的数量。
subgroup_id指明由layer_group_id指示的第i个层组的第j个子组的指示符。
subgroup_bbox_origin指明第i个层组的第j个子组的子组边界框的原点。在边界框的8个顶点当中,它可以具有接近xyz原点的值。
subgroup_bbox_size指明第i个层组的第j个子组的子组边界框的大小。它可以具有沿着每个轴的从边界框原点到最大值的距离。指示原点和大小的单元可以基于叶节点大小来表示。如果使用另一表示单元,则可以发信号通知它。
等于1的aligned_layer_group_structure_flag指明属性切片的层组和子组结构与几何层组和子组结构相同。等于0的aligned_layer_group_structure_flag指明属性切片的层组和子组结构可以与几何层组和子组结构不相同。
geom_parameter_set_id指明包含与属性层组结构对齐的层组和子组结构信息的几何参数集标识符。
子子组的数量(num_child_subgroups_minus1):指示第i个层级组的第j个子组中的子组的数量。
child_subgroup_id指明第i个层组的第j个子组的子子组的标识符。
图46示出了根据实施方式的几何数据单元报头和属性数据单元报头。
图46示出了图21的比特流中所包括的参数信息。
至于图46中所包括的参数,参照图44和图45的描述。
参照图15,根据实施方式的点云数据发送装置可以提供以下效果。
对于点云数据,发送装置可以按照根据实施方式的标准划分和发送压缩数据。例如,当使用分层编码时,可以根据层来划分和发送压缩数据。在这种情况下,可以提高发送侧的存储和发送效率。
图15例示了其中压缩并提供点云数据的几何和属性的实施方式。在基于PCC的服务中,可以根据接收器性能或发送环境来调节数据的量或压缩率。在如常规情况中一样点云数据被绑定在一个切片中的情况下,当接收器性能或发送环境改变时,1)适于每个环境的比特流可以被单独地转码和存储,并且可以在发送时被选择,或者2)在发送之前可能需要转码操作。在这种情况下,如果将要支持的接收器环境的数量增加或者发送环境频繁变化,则可能引起与存储空间相关的问题或由于转码而导致的延迟。
图47例示了根据实施方式的发送和接收点云数据的方法。
图1的发送装置、图1的编码器10002、图1的接收装置、图1的解码器10006、图2的编码和解码、图4的编码器、图11的解码器、图12的发送装置、图13的接收装置、图14的XR装置1430、图15的编码器和解码器、图39至图41的编码器和解码器等可以通过如图47中所示地分割数据来发送/接收点云数据。图47中的每个部件可以对应于硬件、软件、处理器和/或其组合。
当根据实施方式根据层来划分和发送压缩数据时,可以在没有单独的转码过程的情况下,在比特流阶段中选择性仅发送预压缩数据的必要部分。该方案在存储空间方面可能是有效率的,因为每个流仅需要一个存储空间。还使得能够在(比特流选择器)带宽方面实现有效率的发送,因为在发送之前仅选择必要的层。
根据实施方式的点云数据接收方法/装置可以提供以下效果。
图48例示了根据实施方式的发送和接收点云数据的方法。
图1的发送装置10002、图1的编码器10002、图1的接收装置、图1的解码器10006、图2的编码和解码、图4的编码器、图11的解码器、图12的发送装置、图13的接收装置、图14的XR装置1430、图15的编码器和解码器、图39至图41的编码器和解码器等可以通过如图48中所示地分割数据来发送/接收点云数据。图48中的每个部件可以对应于硬件、软件、处理器和/或其组合。
实施方式包括根据点云数据的特定标准划分和发送压缩数据的方法。当使用分层编码时,可以根据层来划分和发送压缩数据。在这种情况下,可以提高接收侧的效率。
图48例示了在发送由层构成的点云数据的情况下发送侧和接收侧的操作。在这种情况下,当不管接收器性能如何都传送用于重构整个PCC数据的信息时,接收器需要通过解码来重构点云数据,然后仅选择与所需层对应的数据(数据选择或子采样)。在这种情况下,由于所发送的比特流已经被解码,因此在目标是低等待时间的接收器中可能出现延迟,或者根据接收器性能,解码可能失败。
根据实施方式,当比特流被划分为切片并且被传送时,接收器可以按照根据解码器性能或应用领域将要表示的点云数据的密度来选择性将比特流传送到解码器。在这种情况下,由于在解码之前进行选择,因此可以提高解码器效率,并且可以支持各种性能的解码器。
相应地,根据实施方式的用于发送和接收点云数据的方法/装置可以基于所提出的操作和信令方案提供对点云数据的有效率的空间随机访问。
实施方式的各种元件可以由硬件、软件、固件或其组合来实现。实施方式中的各种元件可以由诸如单个硬件电路这样的单个芯片来实现。根据实施方式,元件可以分别由单独的芯片选择性执行。根据实施方式,可以在包括用于执行根据实施方式的操作的指令的一个或更多个处理器中执行实施方式的元件中的至少一个。
根据上述实施方式的操作可以由根据实施方式的发送装置和/或接收装置执行。发送/接收装置可以包括被配置为发送和接收媒体数据的发送器/接收器、被配置为存储根据实施方式的过程的指令(程序代码、算法、流程图和/或数据)的存储器以及被配置为控制发送/接收装置的操作的处理器。
处理器可以被称为控制器等,并且可以对应于例如硬件、软件和/或其组合。根据上述实施方式的操作可以由处理器执行。另外,处理器可以被实现为用于上述实施方式的操作的编码器/解码器。
图49例示了根据实施方式的发送点云数据的方法。
S4900:根据实施方式的点云数据发送方法可以包括对点云数据进行编码。
编码可以包括图1的点云视频编码器10002、图1的发送装置10000、图2的编码20001、图4的编码器、图12的发送装置、图14的XR装置1430、图15的可缩放编码器、图21的比特流生成、图39的(子)比特流生成器、逐区域(逐层)编码/发送等的操作。
S4910:点云数据发送方法还可以包括发送包括点云数据的比特流。
发送可以包括图1的发送器10003、图2的发送20002以及图21至图25的比特流发送的操作。
图50例示了根据实施方式的接收点云数据的方法。
S5000:根据实施方式的点云数据接收方法可以包括接收包括点云数据的比特流。
接收可以包括图1的接收装置10004、图1的接收器10005、根据图2的发送的接收20002以及图21至图25的比特流接收的操作。
S5010:点云数据接收方法还可以包括对点云数据进行解码。
解码可以包括图1的点云视频解码器10006、图2的解码20003、图10和图11的解码器、图13的接收装置、图14的XR装置1430、图15的解码器和可缩放解码器、图40的(子)比特流分类器、图41的接收/解码过程以及图42至图48的逐区域(逐层)接收/解码的操作。
根据实施方式,可以基于用于空间访问的切片/子组边界框结构来发送/接收点云数据。例如,可以通过生成包括下子组边界框的上层组的子边界框结构(包括层级分层结构)来压缩和重构点。可以生成并且发送指示这些操作的信令信息。
参照图1,根据实施方式的用于发送点云数据的方法可以包括对点云数据进行编码以及发送包括点云数据的比特流。
参照图42,点云数据的编码可以包括基于一个或更多个区域对点云数据进行编码。
参照图43,点云数据的编码可以包括对点云数据的几何数据进行编码以及对点云数据的属性数据进行编码,其中,点云数据可以基于分层结构来表示。
参照图43,层组和子边界框可以彼此具有相关(包含)关系。例如,点云数据可以基于具有一个或更多个深度的树来表示,其中,深度可以对应于层。可以生成包括一个或更多个层的层组。层组可以包括一个或更多个层中所包含的点云数据的子组。子组可以包括与点云数据的区域对应的边界框。对应于下层的子组的边界框可以属于对应于上层的子组的边界框。
组和子组可以被解释为彼此对应的概念。术语“子”被解释为意味着部分。类似地,边界框和子边界框可以被解释为彼此对应的概念。
参照图44,可以生成并发送/接收根据实施方式的层/子组参数信息。比特流可以包括关于点云数据的层组的子组的边界框的信息。比特流可以包括关于层组的子组的子子组的信息。
参照图47,可以基于层来选择性发送比特流。点云数据的编码可以包括基于点云数据的区域的层结构对点云数据进行编码,并且比特流的发送可以包括发送一个或更多个层的点云数据。
根据实施方式的接收方法/装置可以对应于根据实施方式的发送方法/装置,并且可以执行其操作的逆过程。
用于接收点云数据的方法可以包括接收包括点云数据的比特流以及对点云数据进行解码。点云数据的解码可以包括基于一个或更多个区域对点云数据进行编码。点云数据的解码可以包括对点云数据的几何数据进行解码以及对点云数据的属性数据进行解码,其中,点云数据可以基于分层结构来表示。点云数据可以基于具有一个或更多个深度的树来表示,其中,深度可以对应于层。可以生成包括一个或更多个层的层组。层组可以包括一个或更多个层中所包含的点云数据的子组。子组可以包括与点云数据的区域对应的边界框(可以被称为子边界框)。对应于较低层的子组的边界框(被称为子边界框)可以属于对应于较高层的子组的边界框。比特流可以包括关于点云数据的层组的子组的边界框的信息。比特流可以包括关于层组的子组的子子组的信息。
比特流的接收可以包括接收一个或更多个层的点云数据,并且点云数据的解码可以包括基于点云数据的区域的层结构对点云数据进行解码。
已在方法和/或装置方面描述了实施方式,并且方法的描述和装置的描述可以彼此互补地应用。
尽管为了简单起见已分别描述了附图,但可以通过组合各个图中例示的实施方式来设计新的实施方式。本领域的技术人员需要的其上记录有用于执行上述实施方式的程序的计算机可读取的记录介质的设计也落入所附权利要求及其等同物的范围内。根据实施方式的装置和方法可以不受上述实施方式的配置和方法的限制。通过选择性组合所有或一些实施方式,可以对实施方式进行各种修改。尽管已参考附图描述了优选实施方式,但本领域的技术人员将领会,在不脱离在所附权利要求书中描述的本公开的精神或范围的情况下,可以在实施方式中进行各种修改和变型。这种修改不应从实施方式的技术思路或角度单独理解。
实施方式的装置的各种元件可以由硬件、软件、固件或其组合来实现。实施方式中的各种元件可以由单个芯片(例如,单个硬件电路)来实现。根据实施方式,根据实施方式的部件可以被分别实现为单独的芯片。根据实施方式,根据实施方式的装置的至少一个或更多个部件可以包括能够执行一个或更多个程序的一个或更多个处理器。所述一个或更多个程序可以执行根据实施方式的操作/方法中的任一个或更多个,或包括用于执行其的指令。用于执行根据实施方式的装置的方法/操作的可执行指令可以被存储在非暂态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 (20)

1.一种发送点云数据的方法,该方法包括以下步骤:
对点云数据进行编码;以及
发送包括所述点云数据的比特流。
2.根据权利要求1所述的方法,其中,对所述点云数据进行编码的步骤包括以下步骤:
基于一个或更多个区域对所述点云数据进行编码。
3.根据权利要求1所述的方法,其中,对所述点云数据进行编码包括:
对所述点云数据的几何数据进行编码;以及
对所述点云数据的属性数据进行编码,
其中,所述点云数据基于层结构来表示。
4.根据权利要求3所述的方法,其中,所述点云数据基于具有一个或更多个深度的树来表示,
其中,所述深度对应于层,
其中,生成包括一个或更多个层的层组,
其中,
所述层组包括所述一个或更多个层中所包括的点云数据的子组;
所述子组包括与所述点云数据的区域对应的边界框;并且
对应于下层的子组的边界框属于对应于上层的子组的边界框。
5.根据权利要求1所述的方法,其中,所述比特流包括关于所述点云数据的层组的子组的边界框的信息,
其中,所述比特流包括关于所述层组的子组的子子组的信息。
6.根据权利要求1所述的方法,其中,对所述点云数据进行编码的步骤包括以下步骤:
基于所述点云数据的区域的层结构对所述点云数据进行编码,
其中,所述比特流的发送包括:
发送一个或更多个层的点云数据。
7.一种用于发送点云数据的设备,该设备包括:
编码器,所述编码器被配置为对点云数据进行编码;以及
发送器,所述发送器被配置为发送包括所述点云数据的比特流。
8.根据权利要求7所述的设备,其中,被配置为对所述点云数据进行编码的所述编码器基于一个或更多个区域对所述点云数据进行编码。
9.根据权利要求7所述的设备,其中,被配置为对所述点云数据进行编码的所述编码器包括:
几何编码器,所述几何编码器被配置为对所述点云数据的几何数据进行编码;以及
属性编码器,所述属性编码器被配置为对所述点云数据的属性数据进行编码,
其中,所述点云数据基于层结构来表示。
10.根据权利要求9所述的设备,其中,所述点云数据基于具有一个或更多个深度的树来表示,
其中,所述深度对应于层,
其中,生成包括一个或更多个层的层组,
其中,
所述层组包括所述一个或更多个层中所包括的点云数据的子组;
所述子组包括与所述点云数据的区域对应的边界框;并且
对应于下层的子组的边界框属于对应于上层的子组的边界框。
11.根据权利要求6所述的设备,其中,所述比特流包括关于所述点云数据的层组的子组的边界框的信息,
其中,所述比特流包括关于所述层组的子组的子子组的信息。
12.根据权利要求7所述的设备,其中,被配置为对所述点云数据进行编码的所述编码器基于所述点云数据的区域的层结构对所述点云数据进行编码;
其中,被配置为发送所述比特流的所述发送器发送用于一个或更多个层的点云数据。
13.一种接收点云数据的方法,该方法包括以下步骤:
接收包括点云数据的比特流;以及
对所述点云数据进行解码。
14.根据权利要求13所述的方法,其中,对所述点云数据进行解码的步骤包括以下步骤:
基于一个或更多个区域对所述点云数据进行解码。
15.根据权利要求13所述的方法,其中,对所述点云数据进行解码的步骤包括以下步骤:
对所述点云数据的几何数据进行解码;以及
对所述点云数据的属性数据进行解码,
其中,所述点云数据基于层结构来表示。
16.根据权利要求15所述的方法,其中,所述点云数据基于具有一个或更多个深度的树来表示,
其中,所述深度对应于层,
其中,生成包括一个或更多个层的层组,
其中,
所述层组包括所述一个或更多个层中所包括的点云数据的子组;
所述子组包括与所述点云数据的区域对应的边界框;并且
对应于下层的子组的边界框属于对应于上层的子组的边界框。
17.根据权利要求16所述的方法,其中,所述比特流包括关于所述点云数据的层组的子组的边界框的信息,
其中,所述比特流包括关于所述层组的子组的子子组的信息。
18.根据权利要求13所述的方法,其中,所述比特流的接收包括:
接收一个或更多个层的点云数据,
其中,对所述点云数据进行解码包括:
基于所述点云数据的区域的层结构对所述点云数据进行解码。
19.一种用于接收点云数据的设备,该设备包括:
接收器,所述接收器被配置为接收包括点云数据的比特流;以及
解码器,所述解码器被配置为对所述点云数据进行解码。
20.根据权利要求13所述的设备,其中,被配置为对所述点云数据进行解码的所述解码器基于一个或更多个区域对所述点云数据进行解码。
CN202280009138.0A 2021-01-06 2022-01-03 点云数据发送装置和方法、点云数据接收装置和方法 Pending CN116724556A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163134555P 2021-01-06 2021-01-06
US63/134,555 2021-01-06
PCT/KR2022/000003 WO2022149810A1 (ko) 2021-01-06 2022-01-03 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Publications (1)

Publication Number Publication Date
CN116724556A true CN116724556A (zh) 2023-09-08

Family

ID=82358190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280009138.0A Pending CN116724556A (zh) 2021-01-06 2022-01-03 点云数据发送装置和方法、点云数据接收装置和方法

Country Status (5)

Country Link
US (1) US20220230360A1 (zh)
EP (1) EP4277284A1 (zh)
CN (1) CN116724556A (zh)
MX (1) MX2023007152A (zh)
WO (1) WO2022149810A1 (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
WO2024014935A1 (ko) * 2022-07-15 2024-01-18 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2024049147A1 (ko) * 2022-08-30 2024-03-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11290758B2 (en) * 2017-08-30 2022-03-29 Samsung Electronics Co., Ltd. Method and apparatus of point-cloud streaming
EP3467782A1 (en) * 2017-10-06 2019-04-10 Thomson Licensing Method and device for generating points of a 3d scene
EP3554082A1 (en) * 2018-04-11 2019-10-16 InterDigital VC Holdings, Inc. A method and device for coding the geometry of a point cloud
WO2020189976A1 (ko) * 2019-03-16 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 처리 장치 및 방법
KR102609776B1 (ko) * 2019-05-30 2023-12-05 엘지전자 주식회사 포인트 클라우드 데이터 처리 방법 및 장치
US11979607B2 (en) * 2019-05-30 2024-05-07 Lg Electronics Inc. Apparatus and method for processing point cloud data
KR20200144401A (ko) * 2019-06-18 2020-12-29 삼성전자주식회사 3차원 데이터를 압축하는 방법 및 장치 및 3차원 데이터를 재구성하는 방법 및 장치
US11381840B2 (en) * 2019-06-26 2022-07-05 Tencent America LLC Implicit quadtree or binary-tree geometry partition for point cloud coding
US10992947B2 (en) * 2019-06-28 2021-04-27 Blackberry Limited Planar mode in octree-based point cloud coding
CN114009025A (zh) * 2019-07-02 2022-02-01 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
WO2021002594A1 (ko) * 2019-07-04 2021-01-07 엘지전자 주식회사 포인트 클라우드 데이터 처리 장치 및 방법
WO2021049333A1 (ja) * 2019-09-11 2021-03-18 ソニー株式会社 情報処理装置、情報処理方法、再生処理装置及び再生処理方法

Also Published As

Publication number Publication date
MX2023007152A (es) 2023-07-21
WO2022149810A1 (ko) 2022-07-14
EP4277284A1 (en) 2023-11-15
US20220230360A1 (en) 2022-07-21

Similar Documents

Publication Publication Date Title
CN114503571A (zh) 点云数据发送装置和方法、点云数据接收装置和方法
CN114616827A (zh) 点云数据发送装置及方法、点云数据接收装置及方法
CN114930397A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN114930853A (zh) 点云数据发送装置、发送方法、处理装置和处理方法
CN115462083A (zh) 发送点云数据的设备、发送点云数据的方法、接收点云数据的设备和接收点云数据的方法
CN115428467B (zh) 点云数据发送设备和方法、点云数据接收设备和方法
US20220230360A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
EP4090028A1 (en) Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus, and point cloud data reception method
EP3992911A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11765387B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN114073092A (zh) 用于处理点云数据的设备和方法
US20230260163A1 (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
EP4373096A1 (en) Point cloud data transmission device and method, and point cloud data reception device and method
US20220351421A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20230386088A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN117581541A (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
EP4068789A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN116438799A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN116965019A (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN114402624A (zh) 点云数据处理设备和方法
EP4373097A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN117157983A (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