CN116965019A - 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法 - Google Patents
点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法 Download PDFInfo
- Publication number
- CN116965019A CN116965019A CN202280019705.0A CN202280019705A CN116965019A CN 116965019 A CN116965019 A CN 116965019A CN 202280019705 A CN202280019705 A CN 202280019705A CN 116965019 A CN116965019 A CN 116965019A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- data
- information
- attribute
- motion
- 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
- 238000000034 method Methods 0.000 title claims abstract description 193
- 230000011664 signaling Effects 0.000 claims abstract description 114
- 230000033001 locomotion Effects 0.000 claims description 197
- 239000013598 vector Substances 0.000 claims description 108
- 238000009877 rendering Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 44
- 230000008569 process Effects 0.000 description 56
- 238000013139 quantization Methods 0.000 description 53
- 238000005192 partition Methods 0.000 description 45
- 230000006835 compression Effects 0.000 description 25
- 238000007906 compression Methods 0.000 description 25
- 238000012545 processing Methods 0.000 description 25
- 238000000638 solvent extraction Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 24
- 238000005516 engineering process Methods 0.000 description 24
- 230000009466 transformation Effects 0.000 description 23
- 230000015654 memory Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 238000002310 reflectometry Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 230000001131 transforming effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 229920002430 Fibre-reinforced plastic Polymers 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 239000011151 fibre-reinforced plastic Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- 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/136—Incoming video signal characteristics or properties
-
- 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
公开了根据实施例的一种点云数据发送方法、云数据发送设备、云数据接收方法及云数据接收设备。根据实施例的点云数据发送方法可以包括下述步骤:对点云数据的几何数据进行编码;基于几何数据对点云数据的属性数据进行编码;以及发送编码的几何数据、编码的属性数据和信令数据。
Description
技术领域
实施例涉及用于处理点云内容的方法和装置。
背景技术
点云内容是由点云表示的内容,其是属于表示三维空间(或者体积)的坐标系的点的集合。点云内容可以表达以三个维度配置的媒体,并且被用于提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、扩展现实(XR)和自驾驶服务的各种服务。然而,需要几万到几十万的点数据来表示点云内容。因此,需要用于高效处理大量点数据的方法。
发明内容
技术问题
为解决上述问题而设计的本公开的目的是提供一种用于有效地发送和接收点云的点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法。
本公开的另一个目的是提供一种用于解决时延和编码/解码复杂度的点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法。
本公开的另一目的是提供一种点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法,其通过改进对基于几何的点云压缩(G-PCC)的属性信息进行编码的技术来改进点云的压缩性能。
本公开的另一个目的是提供一种点云数据发送设备、点云数据传输方法、点云数据接收设备和点云数据接收方法,其用于高效地压缩和发送通过LiDAR(激光雷达)设备捕获的点云数据并且接收该点云数据。
本公开的另一个目的是提供一种用于对通过LiDAR设备捕获的点云数据进行高效的帧间预测压缩的点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法。
本公开的另一目的是提供一种点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法,其用于将点云数据拆分成用于通过LiDAR设备捕获的点云数据的高效帧间预测压缩的特定单元。
本公开的目的不限于前述目的,并且本领域的普通技术人员在查阅以下描述时,以上未提到的本公开的其他目的将变得清楚。
技术方案
为了实现这些目的和其他优点并且根据本公开的目的,如本文所体现和广泛描述的,根据实施例的发送点云数据的方法可以包括对点云数据的几何数据进行编码、基于几何数据对点云数据的属性数据进行编码、以及发送编码的几何数据、编码的属性数据和信令数据。
在一个实施例中,对几何数据进行编码可以包括将几何数据拆分成一个或多个预测单元并且在拆分的预测单元中的每个中对几何数据进行帧间预测编码。
在一个实施例中,点云数据由包括一个或多个激光器的激光雷达捕获。
在一个实施例中,拆分可以包括基于仰角、半径或方位角中的一个或者两个或更多个的组合将几何数据拆分成一个或多个预测单元。
在一个实施例中,信令数据可以包括用于识别仰角的量值的信息、用于识别半径的量值的信息或用于识别方位角的量值的信息中的至少一个,其中该信息可以形成将几何数据拆分成一个或多个预测单元的基础。
在一些实施例中,用于帧间预测的运动矢量可以被应用于拆分的预测单元中的每个,其中信令数据可以包括用于指示运动矢量是否被应用于拆分的预测单元中的每个的指示信息,其中根据指示信息,信令数据可以进一步包括运动矢量。
根据实施例的点云数据发送设备可以包括:几何编码器,其被配置成对点云数据的几何数据进行编码;属性编码器,其被配置成基于几何数据对点云数据的属性数据进行编码;以及发射器,其被配置成发送编码的几何数据、编码的属性数据和信令数据。
在实施例中,几何编码器可以包括拆分器,其被配置成将几何数据拆分成一个或多个预测单元;以及帧间预测器,其被配置成针对拆分的预测单元中的每个对几何数据进行帧间预测编码。
在一个实施例中,点云数据由包括一个或多个激光器的LiDAR捕获。
在一个实施例中,拆分器可以基于仰角、半径或方位角中的一个或者两个或更多个的组合,将几何数据拆分成一个或多个预测单元。
在一个实施例中,信令数据可以包括用于识别仰角的量值的信息、用于识别半径的量值的信息或用于识别方位角的量值的信息中的至少一个,其中该信息可以形成将几何数据拆分成一个或多个预测单元的基础。
在一些实施例中,用于帧间预测的运动矢量可以被应用于拆分的预测单元中的每个,其中信令数据可以包括用于指示运动矢量是否被应用于拆分的预测单元中的每个的指示信息,以及其中根据指示信息,该信令数据可以进一步包括运动矢量。
根据实施例的接收点云数据的方法可以包括接收几何数据、属性数据和信令数据;基于信令数据来解码几何数据;基于信令数据和解码的几何数据对属性数据进行解码;以及渲染基于解码的几何数据和解码的属性数据重构的点云数据。
在一个实施例中,几何解码可以包括基于信令数据将用于几何数据的参考数据拆分成一个或多个预测单元,以及针对拆分的预测单元中的每个对几何数据进行帧间预测解码。
在一个实施例中,点云数据由在发送侧处的包括一个或多个激光器的LiDAR捕获。
在一个实施例中,拆分可以包括基于信令数据将参考数据拆分成基于仰角、半径或方位角中的一个或者两个或更多个的组合的一个或多个预测单元。
在一个实施例中,信令数据可以包括用于识别仰角的量值的信息、用于识别半径的量值的信息或用于识别方位角的量值的信息中的至少一个,其中该信息可以形成将几何数据拆分成一个或多个预测单元的基础。
在一些实施例中,用于帧间预测的运动矢量可以被应用于拆分的预测单元中的每个,其中信令数据可以包括用于指示运动矢量是否被应用于拆分的预测单元中的每个的指示信息,其中根据指示信息,信令数据可以进一步包括运动矢量。
有益效果
根据实施例的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可以提供好质量的点云服务。
根据实施例的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可以实现各种视频编解码方法。
根据实施例的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可以提供通用点云内容,诸如自主驾驶服务。
根据实施例的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可以执行用于独立编码和解码点云数据的点云数据的空间自适应分区,从而改进并行处理并提供可缩放性。
根据实施例的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可以通过以图块和/或切片为单位分区点云数据来执行编码和解码,并为其用信号发送必要的数据,从而改进点云的编码和解码性能。
考虑到内容的特性,根据实施例的点云数据发送方法、点云数据发送设备、点云数据接收方法和点云数据接收设备可以支持将点云数据拆分成作为预测单元的LPU/PU的方法。因此,基于通过参考帧的帧间预测的压缩技术可以被应用于由LiDAR捕获的并且具有多个帧的点云。由此,可以通过扩展由局部运动矢量可预测的区域来减少用于编码点云数据所需的时间,使得不需要额外的计算。
附图说明
附图被包括以提供本公开的进一步理解,并且被并入本申请中且构成本申请的一部分,附图图示本公开的实施例并且与描述一起用于说明本公开的原理。在附图中:
图1图示根据实施例的示例性点云内容提供系统。
图2是图示根据实施例的点云内容提供操作的框图。
图3图示根据实施例的捕获点云视频的示例性过程。
图4图示根据实施例的点云视频编码器的示例性框图。
图5图示根据实施例的3D空间中的体素的示例。
图6图示根据实施例的八叉树和占用码的示例。
图7图示根据实施例的邻居节点图案的示例。
图8图示根据实施例的用于每个LOD的点云内容的点配置的示例。
图9图示根据实施例的用于每个LOD的点云内容的点配置的示例。
图10图示根据实施例的点云视频解码器的框图的示例。
图11图示根据实施例的点云视频解码器的示例。
图12图示根据实施例的用于发送设备的点云视频编码的配置。
图13图示根据实施例的用于接收设备的点云视频解码的配置。
图14图示根据实施例的与用于发送和接收点云数据的方法/设备可操作地连接的示例性结构。
图15(a)和图15(b)是图示根据实施例的旋转LiDAR学习模型的示例的图;
图16(a)和16(b)是图示根据实施例的比较根据相对于车辆中心的相同方位角的弧的长度的示例的图;
图17是图示根据实施例的基于半径的LPU拆分和运动可能性的示例的图;
图18图示根据实施例的基于半径执行点云数据的LPU拆分的具体示例;
图19是图示根据实施例的PU拆分的示例的图;
图20是图示根据实施例的点云发送设备的另一示例的图;
图21是图示根据实施例的几何编码器和属性编码器的操作的示例的图;
图22是图示根据实施例的基于LPU/PU拆分对几何进行编码的方法的示例的流程图;
图23是图示根据实施例的点云接收设备的另一示例的图;
图24是图示根据实施例的几何解码器和属性解码器的操作的示例的图;
图25是图示根据实施例的基于LPU/PU拆分来解码几何的方法的示例的流程图;
图26图示根据实施例的用于发送/接收的点云数据的比特流结构的示例。
图27示出根据本公开的实施例的序列参数集的语法结构;
图28示出根据本公开的实施例的几何参数集的语法结构;
图29示出根据本公开的另一个实施例的几何参数集的语法结构;
图30示出根据本公开的实施例的图块参数集的语法结构;
图31示出根据本公开的另一实施例的图块参数集的语法结构;
图32示出根据本公开的实施例的几何切片比特流()的语法结构;
图33示出根据本公开的实施例的几何切片报头的语法结构的实施例;
图34示出根据本公开的另一实施例的几何切片报头的语法结构;
图35示出根据本公开的另一实施例的几何PU报头的语法结构;
图36示出根据本公开的实施例的属性切片比特流()的语法结构;以及
图37示出根据本公开的实施例的属性切片报头的语法结构。
具体实施例
现在,将参考附图根据本文中公开的示例性实施例详细给出描述。为了参考附图简要描述,可为相同或等同的部件提供相同的标号,其描述将不再重复。应该注意,以下示例仅用于体现本公开,并不限制本公开的范围。本发明所属技术领域的专家从本公开的详细描述和示例中可以容易地推断出的内容将被解释为在本公开的范围内。
本说明书中的详细描述应该在所有方面都被解释为图示性而非限制性的。本公开的范围应该由所附权利要求及其法律等同物来确定,并且落入所附权利要求的含义和等同范围内的所有改变旨在被涵盖在本文中。
现在,将详细参考本公开的优选实施例,在附图中图示这些实施例的示例。下文将参考附图给出的详细描述旨在解释本公开的示例性实施例,而非示出可以根据本公开实现的仅有的实施例。以下详细描述包括具体细节,以提供对本公开的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践本公开。虽然在本说明书中使用的大多数术语已选自本领域中广泛使用的通用术语,但申请人已任意选择一些术语,并且在下面的描述中将根据需要详细解释它们的含义。因此,应当基于术语的本意而非它们的简单名称或含义来理解本公开。另外,以下的附图和详细描述不应该被解释为限于具体描述的实施例,而应该被解释为包括附图和详细描述中描述的实施例的等同物或替代物。
图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中所示,可以基于一个或更多个相机的捕获操作来生成点云内容。在这种情况下,坐标系在每个相机之中是不同的,因此,点云内容提供系统可以在捕获操作之前校准一个或更多个相机以设置全局坐标系。另外,点云内容提供系统可以通过将任意图像和/或视频与通过上述捕获技术捕获的图像和/或视频进行合成来生成点云内容。点云内容提供系统在其生成表示虚拟空间的点云内容时不可以执行图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基于量化位置来执行体素化,以重构量化点。体素化意味着在3D空间中表示位置信息的最小单位。根据实施例的点云内容(或3D点云视频)的点可以被包括在一个或更多个体素中。作为体积与像素的复合词的术语体素是指当基于表示3D空间的轴(例如,X轴、Y轴和Z轴)将3D空间划分成单元(单元=1.0)时生成的3D立方空间。量化器40001可以将3D空间中的点的组与体素匹配。根据实施例,一个体素可以仅包括一个点。根据实施例,一个体素可以包括一个或更多个点。为了将一个体素表示为一个点,可以基于体素中包括的一个或更多个点的位置来设置体素的中心点的位置。在这种情况下,可以组合一个体素中包括的所有位置的属性并将这些属性分配给该体素。
根据实施例的八叉树分析器40002执行八叉树几何编译(或八叉树编译)从而以八叉树结构呈现体素。八叉树结构表示基于八叉树结构与体素匹配的点。
根据实施例的表面近似分析器40003可以对八叉树进行分析和近似。根据实施例的八叉树分析和近似是分析包含多个点的区域以高效提供八叉树和体素化的处理。
根据实施例的算术编码器40004对八叉树和/或近似的八叉树执行熵编码。例如,编码方案包括算术编码。作为编码的结果,生成几何比特流。
颜色变换器40006、属性变换器40007、RAHT变换器40008、LOD生成器40009、提升变换器40010、系数量化器40011和/或算术编码器40012执行属性编码。如上所述,一个点可以具有一个或更多个属性。根据实施例的属性编码同样应用于一个点所具有的属性。然而,当属性(例如,颜色)包括一个或更多个元素时,属性编码独立地应用于每个元素。根据实施例的属性编码包括颜色变换编译、属性变换编译、区域自适应分层变换(RAHT)编译、基于差值的分层最近邻预测(预测变换)编译和具有更新/提升步骤(提升变换)的基于差值的分层最近邻预测编译。根据点云内容,可以选择性使用上述的RAHT编译、预测变换编译和提升变换编译,或者可以使用一个或更多个编译方案的组合。根据实施例的属性编码不限于上述示例。
根据实施例的颜色变换器40006执行变换属性中包括的颜色值(或纹理)的颜色变换编译。例如,颜色变换器40006可以变换颜色信息的格式(例如,从RGB到YCbCr)。可以根据属性中包括的颜色值可选地应用根据实施例的颜色变换器40006的操作。
根据实施例的几何重构器40005重构(解压缩)八叉树和/或近似的八叉树。几何重构器40005基于分析点的分布的结果来重构八叉树/体素。重构的八叉树/体素可以被称为重构的几何结构(恢复的几何结构)。
根据实施例的属性变换器40007执行属性变换,以基于未被执行几何编码的位置和/或重构的几何结构来变换属性。如上所述,由于属性取决于几何结构,因此属性变换器40007可以基于重构的几何信息来变换属性。例如,基于体素中包括的点的位置值,属性变换器40007可以变换该位置处的点的属性。如上所述,当基于体素中包括的一个或更多个点的位置来设置体素中心的位置时,属性变换器40007变换所述一个或更多个点的属性。当执行三联体几何编码时,属性变换器40007可以基于三联体几何编码来变换属性。
属性变换器40007可以通过计算从每个体素的中心的位置(或位置值)起特定位置/半径内的邻居点的属性或属性值(例如,每个点的颜色或反射率)的平均值来执行属性变换。属性变换器40007可以在计算平均值时根据该中心到每个点的距离来应用权重。因此,每个体素都有位置和计算出的属性(或属性值)。
属性变换器40007可以基于K-D树或莫顿码(Morton code)搜索存在于距每个体素的中心的位置特定位置/半径内的邻居点。K-D树是二叉搜索树,并支持能够基于位置来管理点数据结构以便可以快速执行最近邻搜索(NNS)的。通过将表示所有点的3D位置的坐标(例如,(x,y,z))呈现为位值并混合所述位来生成莫顿码。例如,当表示点的位置的坐标为(5,9,1)时,坐标的位值为(0101,1001,0001)。以z、y和x的顺序根据位索引混合位值产生010001000111。该值被表示为十进制数1095。也就是说,具有坐标(5,9,1)的点的莫顿码值为1095。属性变换器40007可以基于莫顿码值对点进行排序,并通过深度优先遍历处理执行NNS。在属性变换操作之后,当在用于属性编译的另一变换处理中需要NNS时,使用K-D树或莫顿码。
如图中所示,变换的属性被输入到RAHT变换器40008和/或LOD生成器40009。
根据实施例的RAHT变换器40008基于重构的几何信息执行用于预测属性信息的RAHT编译。例如,RAHT变换器40008可以基于与八叉树中较低级别的节点关联的属性信息来预测八叉树中较高级别的节点的属性信息。
根据实施例的LOD生成器40009生成细节级别(LOD)。根据实施例的LOD是点云内容的细节度。随着LOD值的减小,表明点云内容的细节度下降。随着LOD值的增大,表明点云内容的细节增强。可以按LOD对点进行分类。
根据实施例的提升变换器40010执行基于权重来变换点云的属性的提升变换编译。如上所述,可以可选地应用提升变换编译。
根据实施例的系数量化器40011基于系数对属性编码的属性进行量化。
根据实施例的算术编码器40012基于算术编译对量化的属性进行编码。
尽管在该图中未示出,但图4的点云视频编码器的元件可以由包括一个或更多个处理器或集成电路的硬件、软件、固件或其组合来实现,该处理器或集成电路被配置成与点云内容提供设备中包括的一个或更多个存储器通信。所述一个或更多个处理器可以执行上述图4的点云视频编码器的元件的操作和/或功能中的至少一个。另外,一个或更多个处理器可以操作或执行软件程序和/或指令的集合,以执行图4的点云视频编码器的元件的操作和/或功能。根据实施例的一个或更多个存储器可以包括高速随机存取存储器,或包括非易失性存储器(例如,一个或更多个磁盘存储设备、闪存设备或其他非易失性固态存储设备)。
图5示出根据实施例的体素的示例。
图5示出位于由三个轴即X轴、Y轴和Z轴构成的坐标系表示的3D空间中的体素。如参考图4描述的,点云视频编码器(例如,量化器40001)可以执行体素化。体素是指当基于表示3D空间的轴(例如,X轴、Y轴和Z轴)将3D空间划分成单元(单元=1.0)时生成的3D立方空间。图5示出通过八叉树结构生成的体素的示例,在该八叉树结构中,由两个极点(0,0,0)和(2d,2d,2d)定义的立方轴对齐的边界框被递归地细分。一个体素包括至少一个点。可以根据与体素组的位置关系来估计体素的空间坐标。如上所述,体素具有像2D图像/视频的像素一样的属性(诸如,颜色或反射率)。体素的细节与参考图4描述的细节相同,因此省略对其的描述。
图6示出根据实施例的八叉树和占用码的示例。
如参考图1至图4描述的,点云内容提供系统(点云视频编码器10002)或点云视频编码器的八叉树分析器40002基于八叉树结构来执行八叉树几何编译(或八叉树编译),以高效地管理体素的区域和/或位置。
图6的上部示出八叉树结构。根据实施例的点云内容的3D空间由坐标系的轴(例如,X轴、Y轴和Z轴)表示。八叉树结构是通过递归细分由两个极点(0,0,0)和(2d,2d,2d)定义的立方轴对齐的边界框来创建的。这里,2d可以被设置为构成围绕点云内容(或点云视频)的所有点的最小边界框的值。这里,d表示八叉树的深度。在等式1中确定d的值。在等式1中,(xint n,yint n,zint n)表示量化点的位置(或位置值)。
等式1
/>
如图6的上部的中间所示,整个3D空间可以根据分区被划分成八个空间。每个划分空间由具有六个面的立方体表示。如图6的右上侧所示,基于坐标系的轴(例如,X轴、Y轴和Z轴)再次划分八个空间中的每一个。因此,每个空间被划分成八个更小的空间。所划分的更小空间也由具有六个面的立方体表示。应用该分区方案,直到八叉树的叶节点成为体素。
图6的下部示出八叉树占用码。生成八叉树的占用码,以指示通过划分一个空间而产生的八个划分空间中的每一个是否包含至少一个点。因此,单个占用码由八个子节点表示。每个子节点表示所划分空间的占用,并且子节点具有1位的值。因此,占用码被表示为8位代码。也就是说,当在与子节点对应的空间中包含至少一个点时,该节点被赋予值1。当在对应于子节点的空间中不包含点(空间为空)时,该节点被赋予值0。由于图6中示出的占用码为00100001,因此它指示与八个子节点之中的第三个子节点和第八个子节点对应的空间相应包含至少一个点。如图中所示,第三个子节点和第八个子节点中的每一个具有8个子节点,并且子节点用8位占用码表示。该图示出第三个子节点的占用码为10000111,并且第八个子节点的占用码为01001111。根据实施例的点云视频编码器(例如,算术编码器40004)可以对占用码执行熵编码。为了提高压缩效率,点云视频编码器可以对占用码执行帧内/帧间编码。根据实施例的接收设备(例如,接收设备10004或点云视频解码器10006)基于占用码来重构八叉树。
根据实施例的点云视频编码器(例如,八叉树分析器40002)可以执行体素化和八叉树编译,以存储点的位置。然而,点并不总是均匀地分布在3D空间中,因此会有其中存在较少点的特定区域。因此,对整个3D空间执行体素化是低效的。例如,当特定区域包含的点较少时,不需要在特定区域中执行体素化。
因此,对于上述特定区域(或八叉树的叶节点以外的节点),根据实施例的点云视频编码器可以跳过体素化并执行直接编译,以对特定区域中包括的点的位置直接进行编码。根据实施例的直接编译点的坐标被称为直接编译模式(DCM)。根据实施例的点云视频编码器还可以基于表面模型来执行三联体几何编码,以基于体素来重构特定区域(或节点)中的点的位置。三联体几何编码是将对象表示为一系列三角形网格的几何编码。因此,点云视频解码器可以从网格表面生成点云。可以选择性执行根据实施例的三联体几何编码和直接编译。另外,可以结合八叉树几何编译(或八叉树编译)来执行根据实施例的三联体几何编码和直接编译。
为了执行直接编译,应该启用使用直接模式以应用直接编译的选项。将被应用直接编译的节点不是叶节点,并且在特定节点内应该存在少于阈值的点。另外,将应用直接编译的点的总数不应超过预设阈值。当满足以上条件时,根据实施例的点云视频编码器(或算术编码器40004)可以对点的位置(或位置值)执行熵编译。
根据实施例的点云视频编码器(例如,表面近似分析器40003)可以确定八叉树的特定级别(小于八叉树的深度d的级别),并且可以从该级别开始使用表面模型来执行三联体几何编码,以基于体素来重构节点的区域中的点的位置(三联体模式)。根据实施例的点云视频编码器可以指定将应用三联体几何编码的级别。例如,当特定级别等于八叉树的深度时,点云视频编码器不在三联体模式下操作。换句话说,根据实施例的点云视频编码器可以仅在所指定的级别小于八叉树的深度值时才在三联体模式下操作。根据实施例的所指定级别处的节点的3D立方区域被称为块。一个块可以包括一个或更多个体素。块或体素可以对应于拼块。几何结构被表示为每个块内的表面。根据实施例的表面可以与块的每个边缘最多相交一次。
一个块有12个边缘,因此在一个块中至少存在12个交点。每个交点被称为顶点(或顶端点)。当在共享边缘的所有块之中至少存在一个与该边缘相邻的被占用体素时,检测到沿该边缘存在的顶点。根据实施例的被占用体素是指包含点的体素。沿着边缘检测到的顶点的位置是沿着共享该边缘的所有块之中的与该边缘相邻的所有体素的边缘的平均位置。
一旦检测到顶点,根据实施例的点云视频编码器就可以对边缘的起始点(x,y,z)、边缘的方向矢量(Δx,Δy,Δz)和顶点位置值(边缘内的相对位置值)执行熵编码。当应用三联体几何编码时,根据实施例的点云视频编码器(例如,几何重构器40005)可以通过执行三角形重构、上采样和体素化处理来生成恢复的几何结构(重构的几何结构)。
处于块的边缘处的顶点确定穿过块的表面。根据实施例的表面是非平面多边形。在三角形重构处理中,基于边缘的起始点、边缘的方向矢量和顶点的位置值来重构由三角形表示的表面。根据等式2,通过以下操作执行三角形重构处理:i)计算每个顶点的质心值,ii)从每个顶点值减去中心值,以及iii)估计通过减法而获得的值的平方和。
等式2
然后,估计和的最小值,并根据具有最小值的轴来执行投影处理。例如,当元素x为最小时,每个顶点相对于块的中心投影到x轴上,并投影到(y,z)平面上。当通过投影到(y,z)平面上而获得的值为(ai,bi)时,通过atan2(bi,ai)估计θ的值,并根据θ的值对顶点进行排序。下面的表1示出根据顶点的数目来创建三角形的顶点组合。顶点被从1到n地排序。下面的表1示出对于四个顶点,可以根据顶点的组合来构造两个三角形。第一个三角形可以由排序的顶点之中的顶点1、2和3组成,并且第二个三角形可以由排序顶点之中的顶点3、4和1组成。
[表1]从排序为1,…,n的顶点形成的三角形
[表1]
执行上采样处理,以沿着三角形的边在中间添加点并执行体素化。所添加的点是基于上采样因子和块的宽度产生的。所添加的点被称为细化顶点。根据实施例的点云视频编码器可以对细化顶点进行体素化。另外,点云视频编码器可以基于体素化位置(或位置值)来执行属性编码。图7图示根据实施例的邻居节点模式的示例。为了提高点云视频的压缩效率,根据实施例的点云视频编码器可以基于上下文自适应算术编译来执行熵编译。如参考图1至图6描述的,图1的点云内容提供系统或点云视频编码器10002或图4的点云视频编码器或算术编码器40004可以立即对占用码执行熵编译。另外,点云内容提供系统或点云视频编码器可以基于当前节点的占用码和邻近节点的占用来执行熵编码(帧内编码),或基于前一帧的占用码来执行熵编码(帧间编码)。根据实施例的帧表示同时产生的点云视频的集合。根据实施例的帧内编码/帧间编码的压缩效率可以取决于被参考的邻近节点的数目。当位增加时,操作变复杂,但编码可以偏向一侧,从而可以增加压缩效率。例如,当给定3位上下文时,需要使用23=8种方法执行编译。为进行编译而划分的部分影响了实现方式的复杂度。因此,必须满足适当水平的压缩效率和复杂度。
图7图示基于邻居节点的占用来获得占用模式的处理。根据实施例的点云视频编码器确定八叉树的每个节点的邻居节点的占用,并获得邻居模式的值。使用该邻居节点模式来推断节点的占用模式。图7的上部示出与节点对应的立方体(处于中间的立方体)以及与立方体共享至少一个面的六个立方体(邻居节点)。图中示出的节点是相同深度的节点。图中示出的数字分别表示与六个节点关联的权重(1、2、4、8、16和32)。根据邻近节点的位置依次指派权重。
图7的下部示出邻居节点模式值。邻居节点模式值是乘以被占用邻居节点(具有点的邻居节点)的权重的值之和。因此,邻居节点模式值为0至63。当邻居节点模式值为0时,指示该节点的邻居节点之中不存在具有点的节点(未占用节点)。当邻居节点模式值为63时,指示所有邻居节点都是被占用节点。如图中所示,由于被指派权重1、2、4和8的邻居节点是被占用节点,因此邻居节点模式值为15即1、2、4和8之和。点云视频编码器可以根据邻居节点模式值执行编译(例如,当邻居节点模式值为63时,可以执行64种编译)。根据实施例,点云视频编码器可以通过改变邻居节点模式值(例如,基于通过其将64改变为10或6的表)来降低编译复杂度。
图8图示根据实施例的每个LOD中的点配置的示例。
如参考图1至图7描述的,在执行属性编码之前,重构(解压缩)编码的几何结构。当应用直接编译时,几何重构操作可以包括改变直接编码的点的放置(例如,将直接编码的点放置在点云数据的前面)。当应用三联体几何编码时,通过三角形重构、上采样和体素化来执行几何重构处理。由于属性取决于几何结构,因此基于重构的几何结构执行属性编码。
点云视频编码器(例如,LOD生成器40009)可以通过LOD对点进行分类(重新组织或者分组)。图8示出与LOD对应的点云内容。图8中的最左侧图片表示原始点云内容。图8左侧起的第二个图片表示最低LOD中的点的分布,并且图8中的最右侧图片表示最高LOD中的点的分布。也就是说,最低LOD中的点稀疏地分布,并且最高LOD中的点密集地分布。也就是说,随着LOD在由图8的底部处指示的箭头所指的方向上上升,点之间的空间(或距离)变窄。
图9图示根据实施例的每个LOD的点配置的示例。
如参考图1至图8描述的,点云内容提供系统或点云视频编码器(例如,图1的点云视频编码器10002、图4的点云视频编码器或LOD生成器40009)可以生成LOD。通过根据设置的LOD距离值(或一组欧几里得距离)将点重新组织为一组细化级别来生成LOD。LOD生成处理不仅由点云视频编码器执行,而且由点云视频解码器执行。
图9的上部示出分布在3D空间中的点云内容的点的示例(P0至P9)。在图9中,原始顺序表示LOD生成之前点P0至P9的顺序。在图9中,基于LOD的顺序表示根据LOD生成的点的顺序。通过LOD重新组织点。另外,高LOD包含属于较低LOD的点。如图9中所示,LOD0包含P0、P5、P4和P2。LOD1包含LOD0的点、P1、P6和P3。LOD2包含LOD0的点、LOD1的点、P9、P8和P7。
如参考图4描述的,根据实施例的点云视频编码器可以选择性或组合地执行基于LOD的预测变换编译、基于LOD的提升变换编译和RAHT变换编译。
根据实施例的点云视频编码器可以为点生成预测器,以执行基于LOD的预测变换编译来设置每个点的预测属性(或预测属性值)。也就是说,可以针对N个点生成N个预测器。根据实施例的预测器可以基于每个点的LOD值、与存在于针对每个LOD的设定距离内的邻居点有关的加索引信息以及到邻居点的距离来计算权重(=1/距离)。
根据实施例的预测属性(或属性值)被设置为通过将每个点的预测器中设置的邻居点的属性(或属性值)(例如,颜色、反射率等)乘以基于到每个邻居点的距离计算出的权重(或权重值)而获得的值的平均值。根据实施例的点云视频编码器(例如,系数量化器40011)可以对通过从每个点的属性(即,原始属性值)中减去每个点的预测属性(或属性值)而获得的每个点的残差(可以被称为残差属性、残差属性值、属性预测残差值或预测错误属性值等)进行量化和逆量化。如表2中所示来配置针对发送设备中的残差属性值执行的量化处理。如表3中所示来配置针对接收设备中的残差属性值执行的逆量化处理。
[表2]
[表3]
/>
当每个点的预测器具有邻居点时,根据实施例的点云视频编码器(例如,算术编码器40012)可以如上所述对量化和逆量化的残差属性值执行熵编译。当每个点的预测器没有邻居点时,根据实施例的点云视频编码器(例如,算术编码器40012)可以在不执行上述操作的情况下,对对应点的属性执行熵编译。根据实施例的点云视频编码器(例如,提升变换器40010)可以生成每个点的预测器,设置计算出的LOD并将邻居点登记到预测器中,并根据到邻居点的距离设置权重以执行提升变换编译。根据实施例的提升变换编译类似于上述预测变换编译,但不同之处在于权重被累加地应用于属性值。如下地配置根据实施例的向属性值累加地应用权重的处理。1)创建用于存储每个点的权重值的数组Quantization Weight(QW)(量化权重)。QW的所有元素的初始值为1.0。将在预测器中登记的邻居节点的预测器索引的QW值乘以当前点的预测器的权重,并将通过乘法而获得的值相加。
2)提升预测处理:从现有属性值中减去通过将点的属性值乘以权重而获得的值,以计算预测属性值。
3)创建被称为更新权重(updateweight)的临时数组,并将该临时数组更新并初始化为零。
4)将通过将针对所有预测器计算出的权重乘以存储在QW中的与预测器索引对应的权重而计算出的权重累加地添加到更新权重数组以作为邻居节点的索引。将通过将邻居节点的索引的属性值乘以计算出的权重而获得的值累加地添加到更新数组。
5)提升更新处理:将针对所有预测器的更新数组的属性值除以预测器索引的更新权重数组的权重值,并将现有的属性值与通过除法而获得的值相加。
6)通过针对所有预测器将通过提升更新处理而更新的属性值乘以(存储在QW中的)通过提升预测处理而更新的权重来计算预测属性。根据实施例的点云视频编码器(例如,系数量化器40011)对预测的属性值进行量化。另外,点云视频编码器(例如,算术编码器40012)对量化的属性值执行熵编译。
根据实施例的点云视频编码器(例如,RAHT变换器40008)可以执行RAHT变换编译,其中使用与八叉树中较低级别的节点关联的属性来预测较高级别的节点的属性。RAHT变换编译是通过八叉树后向扫描进行的属性帧内编译的示例。根据实施例的点云视频编码器从体素扫描整个区域,并在每个步骤中重复将体素合并成较大块的合并处理,直至到达根节点。根据实施例的合并处理仅在被占用节点上执行。合并处理不在空节点上执行。合并处理在紧接在空节点上方的上节点上执行。
下面的等式3表示RAHT变换矩阵。在等式3中,表示级别l处的体素的平均属性值。可以基于/>和/>来计算/> 和/>的权重是和/>
[等式3]
这里,是低通值并被用在下一更高级别处的合并处理中。/>表示高通系数。每个步骤中的高通系数被量化并经历熵编译(例如,通过算术编码器40012编码)。权重被计算为/>如等式4地通过/>和/>计算根节点。
[等式4]
gDC的值也像高通系数一样被量化并经历熵编译。
图10图示根据实施例的点云视频解码器。
图10中图示的点云视频解码器是图1中描述的点云视频解码器10006的示例,并可以执行与图1中图示的点云视频解码器10006的操作相同或类似的操作。如图中所示,点云视频解码器可以接收一个或更多个比特流中包含的几何比特流和属性比特流。点云视频解码器包括几何解码器和属性解码器。几何解码器对几何比特流执行几何解码,并输出解码的几何结构。属性解码器基于解码的几何对属性比特流执行属性解码,并输出解码的属性。使用解码的几何结构和解码的属性来重构点云内容(解码的点云)。
图11图示根据实施例的点云视频解码器。
图11中图示的点云视频解码器是图10中图示的点云视频解码器的示例,并可以执行作为图1至图9中图示的点云视频编码器的编码操作的逆处理的解码操作。
如参考图1和图10描述的,点云视频解码器可以执行几何解码和属性解码。几何解码是在属性解码之前执行的。
根据实施例的点云视频解码器包括算术解码器(算术解码)11000、八叉树合成器(合成八叉树)11001、表面近似合成器(合成表面近似)11002和几何重构器(重构几何结构)11003、坐标逆变换器(逆变换坐标)11004、算术解码器(算术解码)11005、逆量化器(逆量化)11006、RAHT变换器11007、LOD生成器(生成LOD)11008、逆提升器(逆提升)11009和/或逆颜色变换器(逆变换颜色)11010。
算术解码器11000、八叉树合成器11001、表面近似合成器11002和几何重构器11003以及坐标逆变换器11004可以执行几何解码。根据实施例的几何解码可以包括直接解码和三联体几何解码。直接解码和三联体几何解码被选择性应用。几何解码不限于上述示例,并作为参考图1至图9描述的几何编码的逆处理来执行。
根据实施例的算术解码器11000基于算术编译对接收到的几何比特流进行解码。算术解码器11000的操作对应于算术编码器40004的逆处理。
根据实施例的八叉树合成器11001可以通过从解码的几何比特流(或作为解码结果而被保护的关于几何结构的信息)获取占用码来生成八叉树。如参考图1至图9详细描述地配置占用码。
当应用三联体几何编码时,根据实施例的表面近似合成器11002可以基于解码的几何结构和/或所生成的八叉树来合成表面。
根据实施例的几何重构器11003可以基于表面和/或解码的几何结构来重新生成几何结构。如参考图1至图9描述的,直接编译和三联体几何编码被选择性应用。因此,几何重构器11003直接导入并添加关于应用了直接编译的点的位置信息。当应用三联体几何编码时,几何重构器11003可以通过执行几何重构器40005的重构操作(例如,三角形重构、上采样和体素化)来重构几何结构。细节与参考图6描述的细节相同,因此省略对其的描述。重构的几何结构可以包括不包含属性的点云图片或帧。
根据实施例的坐标逆变换器11004可以通过基于重构的几何结构变换坐标来获取点的位置。
算术解码器11005、逆量化器11006、RAHT变换器11007、LOD生成器11008、逆提升器11009和/或逆颜色变换器11010可以执行参考图10描述的属性解码。根据实施例的属性解码包括区域自适应分层变换(RAHT)解码、基于差值的分层最近邻预测(预测变换)解码和具有更新/提升步骤(提升变换)的基于差值的分层最近邻预测解码。可以选择性使用上述三种解码方案,或可以使用一种或更多种解码方案的组合。根据实施例的属性解码不限于上述示例。
根据实施例的算术解码器11005通过算术编译对属性比特流进行解码。
根据实施例的逆量化器11006对作为解码结果而被保护的关于解码的属性比特流或属性的信息进行逆量化,并输出逆量化的属性(或属性值)。可以基于点云视频编码器的属性编码来选择性应用逆量化。
根据实施例,RAHT变换器11007、LOD生成器11008和/或逆提升器11009可以处理重构的几何结构和逆量化的属性。如上所述,RAHT变换器11007、LOD生成器11008和/或逆提升器11009可以选择性执行与点云视频编码器的编码对应的解码操作。
根据实施例的颜色逆变换器11010执行逆变换编译,以对解码的属性中包括的颜色值(或纹理)进行逆变换。可以基于点云视频编码器的颜色变换器40006的操作选择性执行颜色逆变换器11010的操作。
尽管在该图中未示出,但图11的点云视频解码器的元件可以由包括一个或更多个处理器或集成电路的硬件、软件、固件或其组合来实现,该处理器或集成电路被配置成与点云内容提供设备中包括的一个或更多个存储器通信。所述一个或更多个处理器可以执行上述图11的点云视频解码器的元件的操作和/或功能中的至少一个或更多个。另外,一个或更多个处理器可以操作或执行软件程序和/或指令的集合,以执行图11的点云视频解码器的元件的操作和/或功能。
图12图示根据实施例的发送设备。
图12中示出的发送设备是图1的发送设备10000(或图4的点云视频编码器)的示例。图12中图示的发送设备可以执行与参考图1至图9描述的点云视频编码器的操作和方法相同或类似的操作和方法中的一个或更多个。根据实施例的发送设备可以包括数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用码生成器12003、表面模型处理器12004、帧内/帧间编码处理器12005、算术编码器12006、元数据处理器12007、颜色变换处理器12008、属性变换处理器12009、预测/提升/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的操作和/或八叉树生成方法相同或相似的操作和/或方法。当应用三联体几何编码时,根据实施例的表面模型处理器1302可以基于表面模型方法来执行三联体几何解码和相关的几何重构(例如,三角形重构、上采样、体素化)。表面模型处理器1302执行与表面近似合成器11002和/或几何重构器11003的操作相同或类似的操作。
根据实施例的逆量化处理器1305可以对解码的几何结构进行逆量化。
根据实施例的元数据解析器1306可以解析接收到的点云数据中包含的元数据,例如,设定值。元数据解析器1306可以传递元数据以进行几何解码和/或属性解码。元数据与参考图12描述的元数据相同,并且因此省略对其的详细描述。
算术解码器13007、逆量化处理器13008、预测/提升/RAHT逆变换处理器13009和颜色逆变换处理器13010执行属性解码。属性解码与参考图1至图10描述的属性解码相同或类似,并且因此省略对其的详细描述。
根据实施例的算术解码器13007可以通过算术编译对属性比特流进行解码。算术解码器13007可以基于重构的几何结构对属性比特流进行解码。算术解码器13007执行与算术解码器11005的操作和/或编译相同或类似的操作和/或编译。
根据实施例的逆量化处理器13008可以对解码的属性比特流进行逆量化。逆量化处理器13008执行与逆量化器11006的操作和/或逆量化方法相同或相似的操作和/或方法。
根据实施例的预测/提升/RAHT逆变换器13009可以处理重构的几何结构和逆量化的属性。预测/提升/RAHT逆变换处理器1301执行与RAHT变换器11007、LOD生成器11008和/或逆提升器11009的操作和/或解码相同或类似的操作和/或解码中的一个或更多个。根据实施例的颜色逆变换处理器13010执行逆变换编译,以对解码的属性中包括的颜色值(或纹理)进行逆变换。颜色逆变换处理器13010执行与颜色逆变换器11010的操作和/或逆变换编译相同或类似的操作和/或逆变换编译。根据实施例的渲染器13011可以渲染点云数据。
图14示出根据实施例的与用于发送和接收点云数据的方法/设备可操作地可连接的示例性结构。
图14的结构表示其中服务器17600、机器人17100、自驾驶车辆17200、XR设备17300、智能手机17400、家用电器17500和/或头戴式显示器(HMD)17700中的至少一个被连接到云网络17100的配置。机器人17100、自驾驶车辆17200、XR设备17300、智能手机17400或家用电器17500被称为设备。另外,XR设备17300可以对应于根据实施例的点云压缩数据(PCC)设备,或可以可操作地连接到PCC设备。
云网络17000可以表示构成云计算基础设施的部分或存在于云计算基础设施中的网络。这里,可以使用3G网络、4G或长期演进(LTE)网络或5G网络来配置云网络17000。
服务器17600可以通过云网络17000被连接到机器人17100、自驾驶车辆17200、XR设备17300、智能手机17400、家用电器17500和/或HMD 17700中的至少一个,并可以辅助所连接的设备17100至17700的过程的至少一部分。
HMD 17700表示根据实施例的XR设备和/或PCC设备的实现类型中的一种。根据实施例的HMD型设备包括通信单元、控制单元、存储器、I/O单元、传感器单元和电源单元。
下文中,将描述应用了上述技术的设备17100至17500的各种实施例。根据上述实施例,图14中图示的设备17100至17500可以可操作地连接/联接到点云数据发送设备和接收设备。
<PCC+XR>
XR/PCC设备17300可以采用PCC技术和/或XR(AR+VR)技术,并可以被实现为HMD、设置在车辆中的平视显示器(HUD)、电视、移动电话、智能电话、计算机、可穿戴设备、家用电器、数字标牌、车辆、固定式机器人或移动机器人。
XR/PCC设备17300可以分析通过各种传感器或从外部设备获取的3D点云数据或图像数据,并生成关于3D点的位置数据和属性数据。由此,XR/PCC设备17300可以获取关于周围空间或真实对象的信息,并渲染和输出XR对象。例如,XR/PCC设备17300可以将包括关于识别出的对象的辅助信息的XR对象与识别出的对象匹配,并输出相匹配的XR对象。
<PCC+自驾驶+XR>
自驾驶车辆17200可以通过应用PCC技术和XR技术被实现为移动机器人、车辆、无人驾驶飞行器等。
应用XR/PCC技术的自驾驶车辆17200可以表示设置有用于提供XR图像的设备的自驾驶车辆或作为XR图像中控制/交互目标的自驾驶车辆。具体地,作为XR图像中的控制/交互目标的自驾驶车辆17200可以与XR设备17300区分开,并可以在操作上连接到XR设备17300。
具有用于提供XR/PCC图像的设备的自驾驶车辆17200可以从包括相机的传感器获取传感器信息,并输出基于所获取的传感器信息而生成的XR/PCC图像。例如,自驾驶车辆17200可以具有HUD并向其输出XR/PCC图像,由此向乘员提供与真实对象或屏幕上存在的对象相对应的XR/PCC对象。
当XR/PCC对象被输出到HUD时,可以输出XR/PCC对象的至少一部分以与乘员的眼睛注视的真实对象交叠。另一方面,当XR/PCC对象被输出到设置在自驾驶车辆内部的显示器上时,可以输出XR/PCC对象的至少一部分以与屏幕上的对象交叠。例如,自驾驶车辆17200可以输出与诸如道路、另一车辆、交通灯、交通标牌、两轮车、行人和建筑物的对象相对应的XR/PCC对象。
根据实施例的虚拟现实(VR)技术、增强现实(AR)技术、混合现实(MR)技术和/或点云压缩(PCC)技术适用于各种设备。
换句话说,VR技术是只提供真实世界对象、背景等的CG图像的显示技术。另一方面,AR技术是指在真实对象的图像上示出虚拟创建的CG图像的技术。MR技术与上述AR技术的类似之处在于,待示出的虚拟对象与真实世界混合和组合。然而,MR技术与AR技术的不同之处在于,AR技术明确区分了真实对象与作为CG图像创建的虚拟对象并使用虚拟对象作为真实对象的补充对象,而MR技术将虚拟对象视为与真实对象具有等同特性的对象。更具体地,MR技术应用的示例是全息图服务。
最近,VR、AR和MR技术有时被称为扩展现实(XR)技术,而没有被明确彼此区分开。因此,本公开的实施例适用于VR、AR、MR和XR技术中的任一种。基于PCC、V-PCC、G-PCC技术的编/解码适用于这种技术。
根据实施例的PCC方法/设备可以应用于提供自驾驶服务的车辆。
提供自驾驶服务的车辆连接到PCC设备,以用于有线/无线通信。
当根据实施例的点云压缩数据(PCC)发送/接收设备连接到车辆以用于有线/无线通信时,该设备可以接收/处理与可以与自驾驶服务一起提供的AR/VR/PCC服务相关的内容数据,并将其发送到车辆。在PCC发送/接收设备被安装在车辆上的情况下,PCC发送/接收设备可以根据通过用户接口设备输入的用户输入信号接收/处理与AR/VR/PCC服务相关的内容数据,并将其提供给用户。根据实施例的车辆或用户接口设备可以接收用户输入信号。根据实施例的用户输入信号可以包括指示自驾驶服务的信号。
如上所述,点云内容提供系统可以使用一个或多个相机(例如,能够确保深度信息的红外相机、能够提取与深度信息相对应的颜色信息的RGB相机等)、投影仪(例如,被配置成确保深度信息等的红外图案投影仪等)、LiDAR等以生成点云内容(或点云数据)。
LiDAR指的是被配置成通过测量照射光以从被摄体反射并返回所需的时间来测量距离的设备。它提供有关现实世界的精确三维信息作为在大范围和长距离上的点云数据。如此大容量的点云数据可以在计算机视觉技术被采用的各种领域中被广泛使用,诸如自主驾驶汽车、机器人、3D地图制作等。也就是说,LiDAR设备使用雷达系统,该雷达系统被配置成通过发射激光脉冲并测量激光脉冲在被摄体(即,反射器)上反射所需的时间来测量反射器位置的坐标,以便于生成点云内容。根据实施例,可以通过LiDAR设备提取深度信息。通过LiDAR设备生成的点云内容可以由多个帧组成,并且多个帧可以集成为一个内容。
这些LiDAR可能由不同仰角θ(i)i=1,…,N的N个激光器(N=16、32、64等)组成。激光器可以在沿着相对于Z轴的方位角旋转的同时捕获点云数据,如图15(a)和/或15(b)中所示。这种类型称为旋转LiDAR模型。通过旋转LiDAR模型捕获的点云内容具有角度特性。
图15(a)和图15(b)是图示根据实施例的旋转LiDAR学习模型的示例的图。
参考图15(a)和图15(b),激光i可以击中对象M,并且M的位置可以被估计为笛卡尔坐标系中的(x,y,z)。在这种情况下,当由于激光传感器的固定位置、直线前进(straightforward)特性、以及传感器在某个方位角的旋转等对象M的位置在笛卡尔坐标系中表示为(r,φ,i)而不是(x,y,z)时,可以导出点之中的规则,有利于压缩。
因此,对于旋转LiDAR设备捕获的数据,当利用这种特性在几何编码/解码过程中应用角度模式时,可以增加压缩效率。角度模式是一种利用(r,φ,i)而不是(x,y,z)压缩数据的方法。这里,r表示半径,φ表示方位或方位角,并且i表示LiDAR的第i个激光器(例如,激光折射率)。换句话说,通过LiDAR设备生成的点云内容的帧可以被配置成单独的帧而不是组合在一起,并且其原点可以是0,0,0。相应地,通过将帧改变为球坐标系统中,可以使用角度模式。
根据实施例,当移动/或静止车辆中的LiDAR设备捕获点云时,可以使用角度模式(r,i)。在这种情况下,随着半径r相对于相同的方位角增加,圆弧可以被拉长。例如,当相对于同一方位/>半径r1<r2时,如图16(a)所示,arc2<arc2可以成立。
图16(a)和图16(b)是图示根据实施例的比较根据相对于车辆中心的相同方位角的弧的长度的示例的图。
换句话说,当使用角度模式时,LiDAR获取的点云内容可能会在相同的方位内移动,即使它随着更加远离捕捉设备而移动很多。从这个意义上说,因此可以更好地捕获附近区域中的对象的运动。换句话说,近距离区域中的对象(即,靠近中心的区域中的对象)即使对于小的运动也可能具有大的方位,并且因此可以更好地捕获对象的运动。相比之下,远离中心的区域中的对象即使实际上移动很多,但因为弧度大,所以看起来移动很小。
简而言之,在相同方位内移动的对象具有相同的弧度变化率。因此,对象离中心越近(即,半径越小),即使当它轻微移动时,它在方位上的移动也越大。随着对象到中心(即,半径)的距离增加,即使当它移动很多时,但在方位方面对象可能会出现一点移动。
根据实施例,此特性可以取决于LiDAR的精度而变化。随着精度减少(即,一次执行旋转的角度增加),可以增强前述的特性。即,旋转角度大意味着方位角大。随着方位角的增加,可以更好地捕捉近距离区域中对象的运动。
因此,靠近车辆(即,LiDAR设备)的对象的微小运动看起来很大,并且很可能是局部运动矢量。当对象远离车辆时,相同的运动可能不明显,并且因此在没有任何局部运动矢量的情况下该运动更有可能被全局运动矢量覆盖。这里,全局运动矢量可以表示通过比较参考帧和当前帧而获得的整体运动的变化矢量,并且局部运动矢量可以表示特定区域中的运动变化的矢量。
因此,为了将基于与参考帧的帧间预测的压缩技术应用于LiDAR捕获并且具有多个帧的点云数据,可能需要一种考虑内容的特性将点云数据拆分成作为预测单元的最大预测单元(LPU)的方法和/或预测单元(PU)。
本公开支持考虑内容的特性将点云数据拆分成LPU和/或PU的方法,以便于对由LiDAR捕获的并且具有多个帧的点云数据利用参考帧执行帧间预测。由此,本公开可以加宽利用局部运动矢量可预测的区域,使得不需要额外的计算,从而减少对点云数据进行编码所需的时间。在本公开中,为了简单起见,LPU可以被称为第一预测单元并且PU可以被称为第二预测单元。
关于根据实施例的帧间预测,将描述以下术语的定义。
1)I(帧内)帧;P(预测)帧;B(双向)帧。
要编码/解码的帧可以被划分为I帧、P帧和B帧。帧可以被称为图片等。
例如,可以按照I帧→P帧→(B帧)→(I帧|P帧)→…的顺序来发送帧。B帧可以被省略。
2)参考帧
参考帧可以是涉及对当前帧进行编码/解码的帧。
用于当前P帧的编码/解码所涉及的紧接在前的I帧或P帧可以被称为参考帧。用于当前B帧的编码/解码所涉及的紧接在前的I帧或P帧以及紧接随后的I帧或P帧可以被称为参考帧。
3)帧和帧内预测编译/帧间预测编译
可以对I帧执行帧内预测编译,并且可以对P帧和B帧执行帧间预测编译。
当P帧相对于先前参考帧的变化率大于特定阈值时,可以如在I帧的情况下一样对P帧执行帧内预测编译。
4)确定I(帧内)帧的准则
在多个帧之中,每第k帧可以被指定为I帧。可替选地,可以设置与帧之间的相关性相关的得分,并且可以将具有高得分的帧配置成I帧。
5)I帧的编码/解码
在对具有多个帧的点云数据进行编码/解码时,可以基于八叉树或预测树对I帧的几何结构进行编码/解码。然后,可以基于重构的几何信息,基于预测/提升变换方案或RAHT方案来对关于I帧的属性信息进行编码/解码。
6)P帧的编码/解码
在对具有多个帧的点云数据进行编码/解码中,根据实施例,可以基于参考帧对P帧进行编码/解码。
在这种情况下,用于P帧的帧间预测的编码单元可以是帧、图块、切片、或者LPU或PU。为此,本公开可以将点云数据或帧或图块或切片拆分(或划分)成LPU和/或PU。例如,本公开可以将拆分成切片的点再次拆分成LPU和/或PU。
另外,要拆分的点云内容、帧、图块、切片等可以被称为点云数据。换句话说,属于要拆分的点云内容的点、属于帧的点、属于图块的点以及属于切片的点可以被称为点云数据。
根据本公开的实施例,可以基于仰角来执行点云数据的分区或分段。在本公开的实施例中,点云数据可以基于仰角被拆分成LPU和/或PU。
在本公开的实施例中,可以基于半径来拆分点云数据。在本公开的实施例中,可以基于半径将点云数据拆分成LPU和/或PU。
在本公开的实施例中,可以基于方位角来拆分点云数据。在本公开的实施例中,可以基于方位角将点云数据拆分成LPU和/或PU。
在本公开的实施例中,可以通过组合基于仰角的拆分、基于半径的拆分和基于方位角的拆分中的一个或多个来拆分点云数据。根据本公开的实施例,可以通过组合基于仰角的拆分、基于半径的拆分和基于方位角的拆分中的一个或多个来将点云数据拆分成LPU和/或PU。
在本公开的实施例中,可以通过组合基于仰角的拆分、基于半径的拆分和基于方位角的拆分中的一个或多个来将点云数据拆分成LPU。
在本公开的实施例中,可以通过组合基于仰角的拆分、基于半径的拆分和基于方位角的拆分中的一个或多个来将点云数据拆分成PU。
在本公开的实施例中,可以通过组合基于仰角的拆分、基于半径的拆分和基于方位角的拆分中的一个或多个来将点云数据拆分成LPU,并且然后通过组合基于仰角的拆分、基于半径的拆分和基于方位角的拆分中的一个或多种另外地拆分成一个或多个PU。
在本公开的实施例中,PU可以被拆分成更小的PU。
根据本公开的实施例,通过组合基于仰角的拆分、基于半径的拆分和基于方位角的拆分中的一个或多个来针对每个拆分区域确定是否应用运动矢量。根据本公开的实施例,可以对通过组合基于仰角的拆分、基于半径的拆分和基于方位角的拆分中的一个或多个拆分的每个区域来检查率失真优化(RDO)以确定是否对每个区域应用运动矢量。在本公开的实施例中,可以用信号发送是否对每个区域应用运动矢量。这里,拆分的区域或拆分的块可以是LPU或PU。
在本公开的实施例中,用信号发送用于LPU拆分和/或PU拆分的方法。
根据实施例,LPU/PU拆分和基于帧间预测的编码(即,压缩)可以由发送侧处的几何编码器执行,并且LPU/PU拆分和基于帧间预测的解码(即,重构)可以由接收侧处的几何解码器执行。
在下文中,将描述用于通过LiDAR捕获的点云数据的LPU拆分方法。
根据实施例,最大预测单元(LPU)可以是用于拆分点云内容(或帧)以进行帧间预测(即,帧间预测)的最大单元。可以执行LPU分区以应用全局运动矢量。
根据实施例,由LiDAR捕获的多个帧(多帧)在帧之间的变化中可以具有以下特性。
即,帧距离中心越近,将出现局部运动矢量的概率就越高。此外,基于全局运动矢量在属于特定角度的区域之中的最远区域中将产生新点的可能性高。
图17是图示根据实施例的基于半径的LPU拆分和运动可能性的示例的图。即,图17图示基于半径将LiDAR捕获的点云数据拆分成五个区域(或称为块)的示例。
当如图17中所示基于半径拆分点云数据时,基于全局运动,可能存在局部运动矢量很可能出现矢量的区域,即,具有移动对象的区域50010和可能出现新对象的区域50030。因此,区域50030很可能具有附加点,并且区域50010可以是在其中应当应用局部运动矢量的区域。在其他区域中,可以通过应用全局运动矢量进行预测来简单地获得与当前帧相似的点的位置。
根据实施例,LPU拆分准则可以基于如图17或者图18中的半径来指定。
图18图示根据实施例的基于半径执行点云数据的LPU拆分的具体示例。即,图18图示用作用于LPU拆分的参考的半径的大小为r的示例。
图18仅仅是用于帮助本领域的技术人员理解本公开的实施例。取决于点云数据(或点云内容或帧)的特性,可以基于方位角或仰角执行点云数据的LPU拆分。
在本公开中,通过基于半径的拆分、基于方位角的拆分和基于仰角的拆分中的一个或者两个或更多个的组合,将点云数据拆分成一个或多个LPU,可以仅被预测有全局运动矢量的区域被扩展以消除额外计算的需要。因此,可以减少用于点云数据的编码的执行时间,即,可以缩短编码执行时间。
在下文中,描述了一种用于将由LiDAR捕获的点云数据进行PU拆分或将点云数据拆分成LPU的方法。可以执行PU拆分以应用局部运动矢量。
根据实施例,被拆分成LPU以进行帧间预测(即,帧间预测)的点云数据(或点云内容或区域或块)可以被再次拆分成一个或多个PU。
根据实施例,PU拆分是将全局运动矢量应用于LPU的过程,如果结果与当前帧不匹配,则检查局部运动矢量是否存在,将LPU拆分成一个或多个PU,并且找到用于每个PU的局部运动矢量。
根据实施例,当根据区域中局部运动矢量出现的可能性再次将区域拆分成更小的PU时,可以减少用于子拆分和根据子拆分的运动矢量搜索的处理器,并且据此不需要额外的计算。因此,可以减少编码执行时间。
本公开可以将点云数据(或点云内容)的以下特征应用于PU拆分方法。
1)随着仰角的增加,局部运动矢量发生的可能性可能减少。这是因为随着仰角的增加,数据是静止的天空或建筑物的可能性也会增加。换句话说,不存在局部运动的可能性高。
2)当仰角非常低时,局部运动矢量出现的可能性可能很低。这是因为随着仰角的降低,数据是道路的可能性会增加。
可能存在对象存在于拆分的LPU或PU中的特定方位角内的可能性。在这种情况下,可以通过实验来设置用于PU拆分的方位角(例如,在PU拆分期间用作参考的方位角)。此外,可以存在可以包括具有一个帧的差的移动的人的方位角,并且可以包括移动的汽车的方位角可以是恒定的。根据实施例,当通过实验找到典型方位角时,存在能够分离要应用局部运动矢量的区域的高可能性。
可能存在对象存在于拆分的LPU或PU内的特定半径内的可能性。在这种情况下,可以通过实验来设置用于PU拆分的半径(例如,用作用于PU拆分的参考的半径)。此外,可以存在可以包括具有一个帧的差的移动的人的半径,并且可以包括移动的车辆的半径可以是恒定的。根据实施例,一旦通过实验找到典型半径,则存在能够分离要应用局部运动矢量的区域的高可能性。
因此,在本实施例中,当点云数据被拆分成LPU,并且然后再次将LPU拆分成一个或多个PU时,拆分成LPU的块(或区域)可以基于运动块仰角(motion_block_pu_elevation)e被另外拆分。当没有局部运动矢量能够匹配到额外的拆分的块(或区域)时,可以再次执行额外的拆分。在这种情况下,可以基于(或通过应用)运动块方位角(motion_block_pu_azimuth)来另外拆分块。然而,当局部运动矢量不能被匹配到基于运动块方位角φ额外的拆分的块(或区域)时,可以基于运动块半径(motion_block_pu_radius)r再次执行额外的拆分。可替选地,该块可以被另外拆分以具有PU块(或区域)的一半大小。
图19是图示根据实施例的PU拆分的示例的图。在这种情况下,可以基于运动块仰角(motion_block_pu_elevation)e、运动块方位角(motion_block_pu_azimuth)和运动块半径(motion_block_pu_radius)r中的一个或者两个或更多个的组合来执行PU拆分。这里,运动块仰角(motion_block_pu_elevation)e表示用于PU拆分的参考仰角的大小,运动块方位角(motion_block_pu_azimuth)/>表示用于PU拆分的参考方位角的大小,并且运动块半径(motion_block_pu_radius)r表示用于PU拆分的参考半径的大小。在这种情况下,PU拆分可以被应用于帧、图块或切片。
根据实施例,当通过组合运动块仰角(motion_block_pu_elevation)e、运动块方位角(motion_block_pu_azimuth)和运动块半径(motion_block_pu_radius)r中的两个或更多个来执行PU拆分时,能够以各种顺序执行。例如,可以按照以下顺序执行PU拆分:仰角->方位角->半径、仰角->半径->方位角、方位角->仰角->半径、方位角->半径->仰角、半径->仰角->方位角或半径->方位角->仰角、仰角->方位角、仰角->半径、方位角->仰角、方位角->半径、半径->仰角和半径->方位角。
因此,本实施例可以通过扩展利用局部运动矢量可预测的区域而不需要额外的计算来减少编码执行时间。
在下文中,描述一种用于支持根据基于八叉树的内容特性的LPU/PU拆分的方法。
在本公开中,当期望将LPU拆分和PU拆分与基于八叉树的几何编码中的八叉树占用比特匹配时,可以通过执行以下过程来设置适当的大小。
也就是说,可以由中心参考运动块半径(motion_block_pu_radius)r覆盖的八叉树节点的大小可以被设置为运动块大小(motion_block_size)。并且,基于设置的大小,LPU拆分可能不被执行直至特定的八叉树级别。
在拆分成LPU之后,可以确定用于PU拆分的轴的顺序。例如,轴的顺序可以被指定并且应用为xyz、xzy、yzx、yxz、zxy或zyx。
本实施例可以支持根据八叉树结构和内容的特性一起应用LPU/PU拆分方法的方法。LPU/PU拆分的基本目标是扩宽通过可能的局部运动矢量可预测的区域,以消除对额外的计算的需要并减少编码执行时间。
图20是图示根据实施例的点云发送设备的另一示例的图。
根据实施例的点云发送设备可以包括数据输入单元51001、坐标变换单元51002、量化处理器51003、空间分区器51004、信令处理器51005、几何编码器51006、属性编码器51007以及发送处理器51008。根据实施例,坐标变换单元51002、量化处理器51003、空间分区器51004、几何编码器51006和属性编码器51007可以被称为点云视频编码器。
图20的点云数据发送设备可以对应于图1的发送设备10000、图1的点云视频编码器10002、图1的发射器10003、图2的获取20000/编码20001/发送20002、图4的点云视频编码器、图12的发送设备、图14的设备等。图20和相应图中的各个组件可以对应于软件、硬件、连接到存储器的处理器和/或其组合。
数据输入单元51001可以执行图1的点云视频获取单元10001的一些或全部操作,或者可以执行图12的数据输入单元12000的一些或全部操作。坐标变换单元51002可以执行图4的坐标变换单元40000的一些或全部操作。此外,量化处理器51003可以执行图4的量化单元40001的一些或全部操作,或者可以执行图12的量化处理器12001的一些或全部操作。也就是说,数据输入单元51001可以接收数据以对点云数据进行编码。数据可以包括几何数据(其可以被称为几何、几何信息等)、属性数据(其可以被称为属性、属性信息等)以及指示与编译相关的设置的参数信息。
坐标变换单元51002可以支持点云数据的坐标变换,诸如改变xyz轴或将数据从xyz笛卡尔坐标系变换成球面坐标系。
量化处理器51003可以对点云数据进行量化。例如,可以根据缩放(缩放=几何量化值)设置,通过将点云数据的位置的x、y、z值乘以缩放来调整缩放。缩放值可以遵循设定值或者作为参数信息被包括在比特流中并且被递送到接收器。
空间分区器51004可以基于边界框和/或子边界框将由量化处理器51003量化并输出的点云数据空间拆分成一个或多个3D块。例如,空间分区器51004可以将量化的点云数据分区成图块或切片以用于逐区域接入或内容的并行处理。在一个实施例中,用于空间分区的信令信息由信令处理器51005进行熵编码,并且然后以比特流的形式通过发送处理器51008发送。
在一个实施例中,点云内容可以是诸如演员的一个人、多个人、一个对象或多个对象。在更大的范围内,可能是用于自主驾驶的地图,或者是机器人的室内导航的地图。在这种情况下,点云内容可能是大量本地连接的数据。在这种情况下,不能立即对点云内容进行编码/解码,并且因此可以在压缩点云内容之前执行图块分区。例如,建筑物中的房间#101可以被分区成一个图块,并且建筑物中的房间#102可以被分区成另一图块。为了通过对分区的图块应用并行化来支持快速编码/解码,可以将图块再次分区(或拆分)成切片。此操作可以被称为切片分区(或拆分)。
也就是说,根据实施例,图块可以表示由点云数据占据的3D空间的部分区域(例如,矩形立方体)。根据实施例,图块可以包括一个或多个切片。根据实施例的图块可以被分区成一个或多个切片,并且因此点云视频编码器可以并行地对点云数据进行编码。
切片可以表示可以由根据实施例的点云视频编码器独立编码的数据(或比特流)的单元和/或可以由点云视频解码器独立解码的数据(或比特流)的单元。切片可以是由点云数据所占据的3D空间中的数据的集合,或者点云数据之中的一些数据的集合。根据实施例的切片可以表示包括在根据实施例的图块中的区域或点的集合。根据实施例,可以基于一个图块中包括的点的数量将图块分区成一个或多个切片。例如,一个图块可以是由点的数量分区的点的集合。根据实施例,图块可以基于点的数量被分区成一个或多个切片,并且一些数据可以在分区过程中被拆分或合并。也就是说,切片可以是可以在对应的图块内独立编码的单元。以这种方式,通过空间分区获得的图块可以被分区成一个或多个切片以用于快速且高效的处理。
根据实施例的点云视频编码器可以在逐切片的基础上或逐图块的基础上对点云数据进行编码,其中图块包括一个或多个切片。另外,根据实施例的点云视频编码器可以对每个图块或每个切片执行不同的量化和/或变换。
由空间分区器51004进行空间拆分的一个或多个3D块(例如,切片)的位置被输出到几何编码器51006,并且属性信息(或属性)被输出到属性编码器51007。位置可以是关于包括在分区的单元(框、块、图块、图块组或切片)中的点的位置信息,并且被称为几何信息。
几何编码器51006通过对从空间分区器51004输出的位置执行帧间预测或基于帧内预测的编码来输出几何比特流。在这种情况下,几何编码器51006可以通过应用上述用于P帧的基于帧间预测的编码的LPU/PU拆分方法将帧、图块或切片拆分成LPU和/或PU,并且找到并分配对应于每个拆分的区域(即,LPU或PU)的运动矢量以进行运动补偿。此外,几何编码器51006可以重构编码的几何信息并将重构的信息输出到属性编码器51007。
属性编码器51007基于从几何编码器51006输出的重构的几何来编码(即,压缩)从空间分区器51004输出的属性(例如,拆分的属性源数据),并输出属性比特流。
图21是图示根据实施例的几何编码器51006和属性编码器51007的操作的示例的图。
在实施例中,可以在空间分区器51004和体素化处理器53001之间进一步提供量化处理器。量化处理器对由空间分区器51004空间分区的一个或多个3D块(例如,切片)的位置进行量化。在这种情况下,量化处理器可以执行图4的量化单元40001的一些或全部操作,或者执行图12的量化处理器12001的一些或全部操作。当在空间分区器51004和体素化处理器53001之间进一步设置量化处理器时,图20的量化处理器51003可以或者不可以被省略。
根据实施例的体素化处理器53001基于一个或多个空间分区的3D块(例如,切片)的位置或其量化位置来执行体素化。体素化指的是在3D空间中表达位置信息的最小单位。也就是说,体素化处理器53001可以支持将缩放点的几何位置值舍入为整数的过程。根据实施例的点云内容(或3D点云视频)的点可以包括在一个或多个体素中。根据实施例,一个体素可以包括一个或多个点。在实施例中,在执行体素化之前执行量化的情况下,多个点可以属于一个体素。
在本公开中,当两个或更多个点包括在一个体素中时,这两个或更多个点被称为重复点。也就是说,在几何编码过程中,可以通过几何量化和体素化来生成重复点。
体素化处理器53001可以在没有合并这些点的情况下输出属于一个体素的重复点,或者可以将重复点合并为一个点来输出。
当输入点云数据的帧(即,输入点所属的帧)是I帧时,根据实施例的几何信息帧内预测器53003可以将几何帧内预测编译应用于I帧的几何信息。帧内预测编译方法可以包括八叉树编译、预测树编译和三元组编译。
为此,参考指配数字符号53002的元件(或称为确定器)检查从体素化处理器53001输出的点是否属于I帧或P帧。
当由确定器53002检查的帧是P帧时,根据实施例的LPU/PU拆分器53004可以将由空间分区器51004分区成图块或切片的点拆分成LPU/PU以支持帧间预测,并且查找并分配与拆分的区域(即,LPU/PU)相对应的运动矢量。已经参考图15至图19详细描述了将点云数据(例如,切片)的点拆分成LPU和/或PU的方法,并且因此下面将省略其描述以避免冗余描述。稍后将详细描述与LPU/PU拆分相关的信令。
根据本公开,当P帧相对于先前参考帧的变化率大于特定阈值时,可以如在I帧的情况下那样对P帧执行帧内预测编译。例如,当整个帧的变化较多并且从而变化率超出特定阈值的范围时,可以对P帧执行帧内预测编译,而不是帧间预测编译。这是因为当变化率高时,帧内预测编译可能比帧间预测编译更加准确和高效。这里,前一参考帧是从参考帧缓冲器53009提供的。
为此,指配参考数字53005的元件(或称为确定器)检查变化率是否大于阈值。
当确定器53005确定P帧和参考帧之间的变化率大于阈值时,P帧被输出到几何信息帧内预测器53003以执行帧内预测。当确定器53005确定变化率不大于阈值时,将被拆分成LPU和/或PU以执行帧间预测的P帧输出到运动补偿应用单元53006。
根据实施例的运动补偿应用单元53006可以将运动矢量应用到拆分的LPU/PU以生成预测几何信息。
根据实施例的几何信息帧间预测器53007可以基于当前帧和其中已执行运动补偿的参考帧之间的几何预测值中的差来执行基于八叉树的帧间编译、基于预测树的帧间编译、或基于三元组的帧间编译。
几何信息帧内预测器53003可以将几何帧内预测编译应用于通过确定器53005输入的P帧的几何信息。帧内预测编译方法可以包括八叉树编译、预测树编译和三元组编译。
根据实施例的几何信息熵编码器53008对基于帧内预测由几何信息帧内预测器53003编译的几何信息或者基于帧间预测由几何信息帧间预测器53007编译的几何信息执行熵编码,并输出几何比特流(或称为几何信息比特流)。
根据实施例的几何重构基于通过基于帧内预测的编译或基于帧间预测的编译改变的位置来恢复(或重构)几何信息,并且向属性编码器51007输出重构的几何信息(或称为重构的几何)。也就是说,因为属性信息依赖于几何信息(位置),所以需要恢复(或重构)的几何信息来压缩属性信息。另外,重构的几何信息被存储在参考帧缓冲器53009中,使得在P帧的帧间预测编译中被提供作为先前参考帧。参考帧缓冲器53009还将重构的属性信息存储在属性编码器51007中。也就是说,存储在参考帧缓冲器53009中的重构的几何信息和重构的属性信息可以用作用于通过几何编码器51006的几何信息帧间预测器53007和属性编码器51007的属性信息帧间预测器55005进行几何信息帧间预测编译和属性信息帧间预测编译的先前参考帧。
属性编码器51007的颜色变换处理器55001对应于图4的颜色变换单元40006或图12的颜色变换处理器12008。根据实施例的颜色变换处理器55001执行对从数据输入单元51001和/或空间分区器51004提供的属性中包括的颜色值(或纹理)进行变换的颜色变换编译。例如,颜色变换处理器55001可以变换颜色信息的格式(例如,从RGB到YCbCr)。可以根据包括在属性中的颜色值来选择性地应用根据实施例的颜色变换处理器55001的操作。在另一实施例中,颜色变换处理器55001可以基于重构的几何执行颜色变换编译。
根据实施例,属性编码器51007可以根据有损编译是否被应用于几何信息来执行重新着色。为此,指配参考数字55002的元件(或称为确定器)检查几何编码器51006是否对几何信息应用有损编译。
例如,当由确定器55002确定有损编译已被应用于几何信息时,重新着色器55003执行颜色重新调整(或重新着色)以重新配置由于丢失点而导致的属性(颜色)。也就是说,重新着色器55003可以找到并重新配置适合于源点云数据中丢失点的位置的属性值。换句话说,当因为缩放被应用于几何信息而使位置信息值被改变时,重新着色器55003可以预测适合于已改变的位置的属性值。
根据实施例,可以根据是否合并重复点来可选地应用重新着色器53003的操作。根据实施例,重复点的合并可以由几何编码器51006的体素化处理器53001执行。
在本公开的实施例中,当属于体素的点被体素化处理器53001合并为一个点时,重新着色器55003可以执行颜色重新调整(即,重新着色)。
重新着色器55003执行与图4的属性变换单元40007或者图12的属性变换处理器12009的操作和/或方法相同或相似的操作和/或方法。
当由确定器55002确定有损编译没有被应用到几何信息时,由指配有参考数字55004的元件(或者被称为确定器)检查基于帧间预测的编码是否被应用到几何信息。
当由确定器55004确定基于帧间预测的编码不应用于几何信息时,属性信息帧内预测器55006对输入的属性信息执行帧内预测编译。根据实施例,由属性信息帧内预测器55006执行的帧内预测编码方法可以包括预测变换编译、提升变换编译和RAHT编译。
当由确定器55004确定基于帧间预测的编码被应用于几何信息时,属性信息帧间预测器55005对输入的属性信息执行帧间预测编译。根据实施例,属性信息帧间预测器55005可以基于当前帧与运动补偿参考帧之间的属性预测值的差来对残差进行编译。
根据实施例的属性信息熵编码器55008对由属性信息帧内预测器55006基于帧内预测编码的属性信息或者由属性信息帧间预测器55005基于帧间预测编码的属性信息执行熵编码,并输出属性比特流(或称为属性信息比特流)。
根据实施例的属性重构器基于通过帧内预测编译或帧间预测编译改变的属性来恢复(或重构)属性信息,并将重构的属性信息(或称为重构属性)存储在帧缓冲器53009中。即,存储在参考帧缓冲器53009中的重构的几何信息和重构的属性信息可以被用作先前的参考帧,用于通过属性编码器51007的几何信息帧间预测器53007和属性信息帧间预测器55005进行几何信息的帧间预测编译和属性信息的帧间预测编译。
接下来,将结合信令来描述LPU/PU拆分器53004。
也就是说,在LPU/PU拆分器53004中,可以通过用于将点云数据划分成LPU的参考类型信息(motion_block_lpu_split_type)应用于点云数据来将点云数据(例如,在每帧、图块或切片基础上输入的点)拆分成LTU,并且然后用信号发送所应用的类型信息。根据实施例,用于将数据划分成LPU的参考类型信息(motion_block_lpu_split_type)可以包括基于半径的拆分、基于方位角的拆分和基于仰角的拆分。在本公开的实施例中,用于将数据划分成LPU的参考类型信息(motion_block_lpu_split_type)被包括在与帧间预测相关的LPU/PU分区选项信息(或者被称为与帧间预测相关的信息)中。
在根据用于将数据划分成LPU的参考类型信息(motion_block_lpu_split_type)拆分点云数据中,LPU/PU拆分器53004可以将参考信息(例如,motion_block_lpu_radius、motion_block_lpu_azimuth或motion_block_lpu_elevation)应用到点云数据,并且然后用信号发送应用的值。根据实施例,用于拆分成LPU的参考信息可以包括半径的大小、方位角的大小和仰角的大小(例如,motion_block_lpu_radius、motion_block_lpu_azimuth或motion_block_lpu_elevation)。在本公开的实施例中,用于拆分成LPU的参考信息(例如,motion_block_lpu_radius、motion_block_lpu_azimuth或motion_block_lpu_elevation)被包括在帧间预测相关的LPU/PU分区选项信息中。
当存在与LPU相对应的局部运动矢量时,LPU/PU拆分器53004可以用信号发送该运动矢量。此时,当通过应用全局运动矢量获得预测值的更好RDO时,可以不将局部运动矢量用信号发送给LPU。根据实施例,可以用信号发送指示运动矢量是否存在的信息(motion_vector_flag)。在本公开的实施例中,指示运动矢量是否存在的信息(motion_vector_flag)可以被包括在与帧间预测相关的LPU/PU分区选项信息中。
当与LPU相对应的局部运动矢量存在并且存在各种变化时,LPU/PU拆分器53004可以附加地将LPU拆分成一个或多个PU并且执行为每个PU找到局部运动矢量的过程。
LPU/PU拆分器53004可以通过将用于将LPU拆分成一个或多个PU的拆分参考顺序类型信息(motion_block_pu_split_type)应用于LPU,将LPU拆分成一个或多个PU,并且然后用信号发送所应用的拆分的参考顺序类型信息(motion_block_pu_split_type)。拆分的参考顺序类型可以包括基于半径→基于方位角→基于仰角的拆分、基于半径→基于仰角→基于方位角的拆分、基于方位角→基于半径→基于仰角的拆分、基于方位角→基于仰角→基于半径的拆分、基于仰角→基于半径→基于方位角的拆分、以及基于仰角→基于方位角→基于半径的拆分。在本公开的实施例中,用于划分成一个或多个PU的拆分的参考顺序类型信息(motion_block_pu_split_type)被包括在与帧间预测相关的LPU/PU分区选项信息中。
当基于八叉树执行几何编译时,LPU/PU拆分器53004可以通过将用于拆分成PU的八叉树相关的参考顺序类型信息(Motion_block_pu_split_octree_type)应用于八叉树,将LPU拆分成PU,并且然后用信号发送所应用的类型信息。拆分的参考顺序类型可以包括基于x→y→z的拆分、基于x→z→y的拆分、基于y→x→z的拆分、基于y→z→x的拆分、基于z→x→y的拆分以及基于z→y→x的拆分。在本公开的实施例中,用于划分成PU的八叉树相关的参考顺序类型信息(Motion_block_pu_split_octree_type)被包括在与帧间预测相关的LPU/PU分区选项信息中。
在根据用于划分成PU的参考类型信息(motion_block_pu_split_type)将点云数据或LPU拆分成一个或多个PU时,LPU/PU拆分器53004可以通过应用参考信息(例如,motion_block_pu_radius、motion_block_pu_azimuth、motion_block_pu_elevation)将数据或LPU拆分成一个或多个PU,并且然后用信号发送所应用的值。用于拆分的参考信息可以包括半径的大小、方位角的大小和仰角的大小。可替选地,在拆分成PU的每个步骤中,大小可以被减少到当前大小的一半。在本公开的实施例中,作为用于拆分成PU的参考的信息(例如,motion_block_pu_radius、motion_block_pu_azimuth、motion_block_pu_elevation)被包括在帧间预测相关的LPU/PU分区选项信息中。
当与PU相对应的局部运动矢量存在并且存在各种变化时,LPU/PU拆分器53004可以执行将PU拆分成一个或多个更小的PU并且找到局部运动矢量的过程。在这种情况下,可以用信号发送指示PU是否已经被进一步拆分成一个或多个更小的PU的信息。在本公开的实施例中,指示PU是否被进一步拆分成一个或多个更小的PU的信息被包括在与帧间预测相关的LPU/PU分区选项信息中。
当存在对应于PU的局部运动矢量时,LPU/PU拆分器53004用信号发送运动矢量(pu_motion_vector_xyz)。另外,可以用信号发送指示运动矢量是否存在的信息(pu_has_motion_vector_flag)。在本公开的实施例中,运动矢量和/或指示运动矢量是否存在的信息(pu_has_motion_vector_flag)可以被包括在与帧间预测相关的LPU/PU分区选项信息中。
LPU/PU拆分器53004用信号发送对应于LPU/PU的块(或区域)是否已被拆分。在本公开的实施例中,指示与LPU/PU相对应的块(或区域)是否已经被拆分的信息被包括在与帧间预测相关的LPU/PU分区选项信息中。
接收最小PU大小信息(motion_block_pu_min_radius、motion_block_pu_min_azimuth、motion_block_pu_min_elevation)的LPU/PU拆分器53004可以执行仅直至对应大小的拆分/局部运动矢量搜索,并且用信号发送相应的值。这里,根据实施例,相应的值可以被包括在与帧间预测相关的LPU/PU分区选项信息中。
在本发明的实施例中,帧间预测相关的LPU/PU分区选项信息可以在GPS、TPS或几何切片报头中被用信号发送。在这种情况下,与帧间预测相关的LPU/PU分区选项信息可以由信令处理器61002处理。
如上所述,帧间预测相关的LPU/PU分区选项信息可以包括用于拆分成LPU的参考类型信息(motion_block_lpu_split_type)、作为用于LPU拆分的参考的信息(例如,motion_block_lpu_radius、motion_block_lpu_azimuth或motion_block_lpu_elevation)、指示运动矢量是否存在的信息(motion_vector_flag)、用于拆分成PU的拆分的参考顺序类型信息(motion_block_pu_split_type)、用于拆分成PU的八叉树相关参考顺序类型信息(Motion_block_pu_split_octree_type)、作为用于拆分成PU的参考的信息(例如,motion_block_pu_radius、motion_block_pu_azimuth或motion_block_pu_elevation)、与PU相对应的局部运动矢量信息、指示与LPU/PU相对应的块(或区域)是否被拆分的信息、以及最小PU大小信息(例如,motion_block_pu_min_radius、Motion_block_pu_min_azimuth或motion_block_pu_min_elevation)中的至少一个。另外,与帧间预测相关的LPU/PU分区选项信息可以进一步包括用于识别PU所属的图块的信息、用于识别PU所属的切片的信息、关于包括在切片中的PU的数量的信息、以及用于识别每个PU的信息。在本公开中,根据本领域的技术人员可以添加、删除或修改要包括在帧间预测相关的LPU/PU分区选项信息中的信息,并且因此实施例不限于上述示例。
图22是图示根据实施例的基于LPU/PU拆分对几何进行编码的方法的示例的流程图。
在图22中,操作57001至57003表示LPU/PU拆分器53004的详细操作,操作57004和57005表示运动补偿应用单元53007的详细操作,并且操作57006是几何信息帧间预测器53007的详细操作。
也就是说,在操作57001中,找到要应用于LPU的全局运动矢量。在操作57002中,点云数据可以基于半径、方位角和仰角中的一个或两个或更多个的组合被拆分成LPU,以便于应用在操作57001中找到的全局运动矢量。在操作57003中,当存在与LPU相对应的局部运动矢量并且存在各种变化时,将LPU进一步拆分成一个或多个PU,并为PU内的每个拆分的PU找到局部运动矢量。在操作57001和57003中,可以通过应用率失真优化(RDO)来选择最佳(即,最优)运动矢量。在操作57004中,可以通过将全局运动矢量应用到拆分的LPU来执行全局运动补偿。在操作57005中,可以通过将局部运动矢量应用于拆分的PU来执行局部运动补偿。在操作57006中,可以基于当前帧和运动补偿参考帧之间的预测值的差来执行基于八叉树的帧间编译、基于预测树的帧间编译或基于三元组的帧间编译。
同时,由几何编码器51006基于帧内预测或帧间预测压缩和输出的几何比特流以及由属性编码器51007基于帧内预测或帧间预测压缩和输出的属性比特流被发送到发送处理器51008。
根据实施例的发送处理器51008可以执行与图12的发送处理器12012的操作和/或发送方法相同或相似的操作和/或发送方法,并且执行与图1的发射器10003的操作和/或发送方法相同或相似的操作和/或发送方法。对于详情,将会参考图1或者图12的描述。
根据实施例的发送处理器51008可以分别发送从几何编码器51006输出的几何比特流、从属性编码器51007输出的属性比特流以及从信令处理器51005输出的信令比特流,或者可以将比特流复用成一个比特流以被发送。
根据实施例的发送处理器51008可以将比特流封装到文件或片段(例如,流片段)中,并且然后通过诸如广播网络和/或宽带网络的各种网络发送被封装的比特流。
根据实施例的信令处理器51005可以生成和/或处理信令信息并且以比特流的形式将其输出到发送处理器51008。由信令处理器51005生成和/或处理的信令信息将被提供给几何编码器51006、属性编码器51007和/或发送处理器51008,用于进行几何编码、属性编码和发送处理。可替选地,信令处理器51005可以接收由几何编码器51006、属性编码器51007和/或发送处理器51008生成的信令信息。
在本公开中,信令信息可以在每个参数集(序列参数集(SPS)、几何参数集(GPS)、属性参数集(APS)、图块参数集(TPS)等等)的基础上被用信号发送并且传送。此外,它可以基于每个图像的编译单元(诸如切片或图块)被用信号发送和传送。在本公开中,信令信息可以包括与点云数据相关的元数据(例如,设定值),并且可以被提供给几何编码器51006、属性编码器51007和/或发送处理器51008,用于进行几何编码、属性编码和发送处理。取决于应用,信令信息也可以在系统侧处被定义,诸如文件格式、HTTP上的动态自适应流(DASH)或MPEG媒体传输(MMT),或者在有线接口侧被定义,诸如高清多媒体接口(HDMI)、显示端口、视频电子标准协会(VESA)或CTA。
根据实施例的方法/设备可以用信号发送相关信息以添加/执行实施例的操作。根据实施例的信令信息可以由发送设备和/或接收设备使用。
在本公开的实施例中,可以在几何参数集、图块参数集和几何切片报头中的至少一个中用信号发送要用于几何信息的帧间预测的帧间预测相关的LPU/PU分区选项信息。可替选地,它可以在单独的PU报头(称为geom_pu_header)中被用信号发送。
图23是示出根据实施例的另一示例性点云接收设备的图。
根据实施例的点云接收设备可以包括接收处理器61001、信令处理器61002、几何解码器61003、属性解码器61004和后处理器61005。根据实施例,几何解码器61003和属性解码器61004可以被称为点云视频解码器。根据实施例,点云视频解码器可以被称为PCC解码器、PCC解码单元、点云解码器、点云解码单元等。
图23的点云接收设备可以对应于接收设备10004、接收器10005、图1的点云视频解码器10006、图2的发送-解码-渲染20002-20003-20004、图11的点云视频解码器、图13的接收设备、图14的设备等等。图23和对应图中的每个元件可以对应于软件、硬件、连接到存储器的处理器和/或其组合。
根据实施例的接收处理器61001可以接收单个比特流,或者可以分别接收几何比特流(也称为几何信息比特流)、属性比特流(也称为属性信息比特流)和信令比特流。当接收到文件和/或片段时,根据实施例的接收处理器61001可以解封装接收到的文件和/或片段并将解封装的文件和/或片段作为比特流输出。
当接收(或解封装)单个比特流时,根据实施例的接收处理器61001可以从单个比特流解复用几何比特流、属性比特流和/或信令比特流。接收处理器61001可以将解复用的信令比特流输出到信令处理器61002,将几何比特流输出到几何解码器61003,并且将属性比特流输出到属性解码器61004。
当分别接收(或解封装)几何比特流、属性比特流和/或信令比特流时,根据实施例的接收处理器61001可以将信令比特流递送到信令处理器61002,将几何比特流递送到几何解码器61003,并且将属性比特流递送到属性解码器61004。
信令处理器61002可以从输入信令比特流解析信令信息,例如,包含在SPS、GPS、APS、TPS、元数据等中的信息,处理解析的信息,并将处理的信息提供给几何解码器61003、属性解码器61004和后处理器61005。在另一实施例中,在解码对应的切片数据之前,也可以由信令处理器61002解析在几何切片报头和/或属性切片报头中包含的信令信息。也就是说,当点云数据在发送侧处被分区成图块和/或切片时,TPS包括每个图块中包括的切片的数量,并且因此根据实施例的点云视频解码器可以检查切片的数量并且快速解析信息以进行并行解码。
因此,根据本公开的点云视频解码器可以在接收到具有减少的数据量的SPS时快速解析包含点云数据的比特流。接收设备可以在接收到图块时对图块进行解码,并且可以基于每个图块中包括的GPS和APS来对每个切片进行解码。从而,可以最大化解码效率。可替选地,接收设备可以通过基于在GPS、TPS、几何切片报头和/或PU报头中用信号发送的帧间预测相关的LPU/PU分区选项信息对用于每个PU的点云数据进行帧间预测解码来最大化解码效率。
也就是说,几何解码器61003可以通过基于信令信息(例如,几何相关参数)对压缩的几何比特流执行图20的几何编码器51006的操作的逆过程来重构几何。由几何解码器61003恢复(或重构)的几何被提供给属性解码器61004。这里,几何相关的参数可以包括用于几何信息的帧间预测重构的帧间预测相关的LPU/PU分区选项信息。
属性解码器61004可以通过基于信令信息(例如,属性相关参数)和重构的几何对压缩的属性比特流执行图20的属性编码器51007的操作的逆过程来恢复属性。根据实施例,当点云数据在发送侧被分区成图块和/或切片时,几何解码器61003和属性解码器61004在逐个图块的基础上和/或逐个切片的基础上执行几何解码和属性解码。
图24是图示根据实施例的几何解码器61003和属性解码器61004的操作的示例的图。
图24的几何解码器61003中包括的几何信息熵编码器63001、解量化处理器63007和坐标逆变换器63008可以执行图11的算术解码器11000和坐标逆变换单元11004的一些或全部操作,或者执行图13的算术解码器13002和逆量化处理器13005的一些或全部操作。由几何解码器61003重构的位置被输出到后处理器61005。
根据实施例,当通过几何参数集(GPS)、图块参数集(TPS)、几何切片报头以及几何PU报头中的至少一个用信号发送用于几何信息的帧间预测重构的帧间预测相关的LPU/PU分区选项信息时,它可以由信令处理器61002获得并将其提供给几何解码器61003,或者可以由几何解码器61003直接获得。
根据实施例,帧间预测相关的LPU/PU分区选项信息可以包括用于拆分成LPU的参考类型信息(motion_block_lpu_split_type)、作为用于LPU拆分的参考的信息(例如,motion_block_lpu_radius、motion_block_lpu_azimuth或motion_block_lpu_elevation)、指示运动矢量是否存在的信息(motion_vector_flag)、用于拆分成PU的拆分的参考顺序类型信息(motion_block_pu_split_type)、用于拆分成PU的八叉树相关参考顺序类型信息(Motion_block_pu_split_octree_type)、作为用于拆分成PU的参考的信息(例如,motion_block_pu_radius、motion_block_pu_azimuth或motion_block_pu_elevation)、与PU相对应的局部运动矢量信息、指示与LPU/PU相对应的块(或区域)是否被拆分的信息、以及最小PU大小信息(例如,motion_block_pu_min_radius、Motion_block_pu_min_azimuth或motion_block_pu_min_elevation)中的至少一个。另外,与帧间预测相关的LPU/PU分区选项信息可以进一步包括用于识别PU所属的图块的信息、用于识别PU所属的切片的信息、关于包括在切片中的PU的数量的信息、以及用于识别每个PU的信息。在本公开中,根据本领域的技术人员可以添加、删除或修改要包括在帧间预测相关的LPU/PU分区选项信息中的信息,并且因此实施例不限于上述示例。
也就是说,几何信息熵解码器63001对输入的几何比特流进行熵解码。
根据实施例,当在发送侧将基于帧内预测的编码应用于几何信息时,几何解码器61003对几何信息执行基于帧内预测的重构。另一方面,当在发送侧将基于帧间预测的编码应用于几何信息时,几何解码器61003对几何信息执行基于帧间预测的重构。
为此,指配参考数字63002的元件(或称为确定器)检查是否将基于帧内预测的编译或基于帧间预测的编译应用于几何信息。
当由确定器63002确定基于帧内预测的编译被应用于几何信息时,熵解码的几何信息被提供给几何信息帧内预测重构器63003。另一方面,当通过确定器63002确定将基于帧间预测的编译应用于几何信息时,将熵解码的几何信息输出到LPU/PU拆分器63004。
几何信息帧内预测重构器63003基于帧内预测方法来解码并重构几何信息。也就是说,几何信息帧内预测重构器63003可以重构通过几何帧内预测编译预测的几何信息。帧内预测编译方法可以包括基于八叉树的编译、以及基于预测树的编译、基于三元组的编译。
当要解码的几何信息的帧是P帧时,LPU/PU拆分器63004使用被发信号发送以支持基于帧间预测重构的帧间预测相关的LPU/PU分区选项信息将参考帧拆分成LPU/PU并指示LPU/PU拆分。
根据实施例的运动补偿应用单元63005可以通过将运动矢量(例如,在信令信息中接收的)应用到从参考帧拆分的LPU/PU来生成预测几何信息。
根据实施例的几何信息帧间预测重构器63006基于帧间预测来解码并重构几何信息。即,可以基于关于运动补偿参考帧的几何信息来重构通过几何帧间预测编译的几何信息。根据实施例的帧间预测编译可以包括基于八叉树的帧间编译、基于预测树的帧间编译和基于三元组的帧间编译。
由几何信息帧内预测重构器63003重构的几何信息或由几何信息帧间预测重构器63006重构的几何信息被输入到几何信息逆变换/解量化处理器63007。
几何信息逆变换/解量化处理器63007对重构的几何信息执行由发射器的几何信息变换/量化处理器51003执行的变换的逆过程,并且结果可以乘以缩放(=几何量化值)以通过解量化生成重构的几何信息。也就是说,几何信息变换/解量化处理器63007可以通过将包括在信令信息中的缩放(缩放=几何量化值)应用于重构点的几何位置的x、y和z值来对几何信息进行解量化。
坐标逆变换器63008可以执行由发射器的坐标变换单元51002对解量化的几何信息执行的坐标变换的逆过程。例如,坐标逆变换器63008可以在发送侧上重构改变的xyz轴或者将变换的坐标逆变换成xyz直角坐标。
根据实施例,由几何信息变换/解量化处理器63007解量化的几何信息通过几何重构过程被存储在参考帧缓冲器63009中,并且还被输出到用于属性解码的属性解码器61004。
根据实施例,属性解码器61004的属性残差信息熵解码器65001可以对输入属性比特流进行熵解码。
根据实施例,当基于帧内预测的编码被应用于发送侧处的属性信息时,属性解码器61004对属性信息执行基于帧内预测的重构。另一方面,当基于帧间预测的编码被应用于发送侧处的属性信息时,属性解码器61004对属性信息执行基于帧间预测的重构。
为此,指配参考数字65002的元件(或称为确定器)检查是否将基于帧内预测的编译或基于帧间预测的编译应用于属性信息。
当确定器65002确定基于帧内预测的编译被应用于属性信息时,熵解码的属性信息被提供给属性信息帧内预测重构器65004。另一方面,当确定器65002确定基于帧内预测的编译被应用到属性信息时,熵解码的属性信息被提供给属性信息帧内预测重构器65003。
属性信息帧间预测重构器65003基于帧间预测方法来解码并重构属性信息。即,重构通过帧间预测编译预测的属性信息。
属性信息帧内预测重构器65004基于帧内预测方法来解码并重构属性信息。即,重构通过帧内预测编译预测的属性信息。帧内编译方法可以包括预测变换编译、提升变换编译和RAHT编译。
根据实施例,重构的属性信息可以被存储在参考帧缓冲器63009中。存储在参考帧缓冲器63009中的几何信息和属性信息可以被提供给几何信息帧间预测重构器63003和属性信息帧间预测重构器65003作为先前参考帧。
逆颜色变换处理器65005执行用于对重构的属性信息中包括的颜色值(或纹理)进行逆变换的逆变换编译,并且然后将属性输出到后处理器61005。逆颜色变换处理器65005执行与图11的逆颜色变换单元11010或图13的逆颜色变换处理器13010的操作和/或逆变换编译相同或相似的操作和/或逆变换编译。
后处理器61005可以通过将由几何解码器61003重构并输出的几何信息(即,位置)与由属性解码器61004重构并输出的属性信息进行匹配来重构点云数据。另外,当重构的点云数据是以图块和/或切片为单位时,后处理器61005可以基于信令信息来执行与发送侧的空间分区相反的过程。
接下来,将关于信令来描述几何解码器61003的LPU/PU拆分器63004。在实施例中,信令处理器61002重构在GPS、TPS、几何切片报头和/或几何PU报头中的至少一个中接收到的帧间预测相关的LPU/PU分区选项信息,并将其提供给LPU/PU拆分器63004。
LPU/PU拆分器63004可以通过将用于将参考帧划分成LPU的参考类型信息(motion_block_lpu_split_type)应用到参考帧来将参考帧拆分成LPU,并且然后重构发送的运动矢量。在本公开的实施例中,在GPS、TPS或几何切片报头中的至少一个中接收用于划分成LPU的参考类型信息(motion_block_lpu_split_type)。
在通过应用用于划分成LPU的参考类型信息(motion_block_lpu_split_type)来拆分参考帧时,LPU/PU拆分器63004可以通过将参考信息(例如,motion_block_lpu_radius、motion_block_lpu_azimuth或motion_block_lpu_elevation)应用于参考帧来拆分参考帧。根据实施例,用于拆分成LPU的参考信息可以包括半径大小、方位角大小和仰角大小(例如,motion_block_lpu_radius、motion_block_lpu_azimuth或motion_block_lpu_elevation)。在本公开的实施例中,用于拆分成LPU的参考信息(例如,motion_block_lpu_radius、motion_block_lpu_azimuth或motion_block_lpu_elevation)被包括在GPS、TPS或几何切片报头中的至少之一中并且被接收。
当指示与LPU相对应的局部运动矢量是否存在的信息(motion_vector_flag)指示运动矢量存在时,LPU/PU拆分器63004可以重构运动矢量。在本公开的实施例中,指示对应于LPU的局部运动矢量是否存在的信息(motion_vector_flag)以及相应的运动矢量被包括在GPS、TPS或几何切片报头中的至少之一中并且被接收。
当指示LPU是否被拆分成PU的信息指示LPU被拆分成PU时,LPU/PU拆分器63004可以进一步将LPU拆分成一个或多个PU。
LPU/PU拆分器63004可以通过将用于划分成PU的参考顺序类型信息(motion_block_pu_split_type)应用于LPU来将LPU拆分成一个或多个PU。拆分参考顺序类型可以包括基于半径→基于方位角→基于仰角的拆分、基于半径→基于仰角→基于方位角的拆分、基于方位角→基于半径→基于仰角的拆分、基于方位角→基于仰角→基于半径的拆分、基于仰角→基于半径→基于方位角的拆分、以及基于仰角→基于方位角→基于半径的拆分。在本公开的实施例中,用于划分成PU的参考顺序类型信息(motion_block_pu_split_type)被包括在GPS、TPS或几何切片报头中的至少之一中并且被接收。
当基于八叉树应用几何编译时,LPU/PU拆分器63004可以基于用于划分成PU的八叉树相关参考顺序类型(motion_block_pu_split_octree_type)将八叉树结构拆分成一个或多个PU。用于划分成PU的八叉树相关的参考顺序类型可以包括基于x→y→z的拆分、基于x→z→y的拆分、基于y→x→z的拆分、基于y→z→x的拆分、基z→x→y的拆分、以及基于z→y→x的拆分。
在本公开的实施例中,用于划分成PU的八叉树相关参考顺序类型(motion_block_pu_split_octree_type)被包括在GPS、TPS或几何切片报头中的至少之一中并被接收。
在根据用于划分成PU的参考类型信息(motion_block_pu_split_type)将LPU拆分成PU时,LPU/PU拆分器63004可以通过应用作为对LPU的参考的信息(例如,motion_block_pu_radius、motion_block_pu_azimuth或motion_block_pu_elevation)将LPU拆分成一个或多个PU。作为用于拆分的参考的信息可以包括半径、方位角和仰角。在本公开的实施例中,作为用于拆分成PU的参考的信息(例如,motion_block_pu_radius、motion_block_pu_azimuth或motion_block_pu_elevation)可以被包括在GPS、TPS或几何切片报头中的至少之一中并被接收。
LPU/PU拆分器63004可以通过将最小PU大小信息(例如,motion_block_pu_min_radius、motion_block_pu_min_azimuth或motion_block_pu_min_elevation)应用于PU来再次拆分PU。在本公开的实施例中,最小PU大小信息(例如,motion_block_pu_min_radius、motion_block_pu_min_azimuth或motion_block_pu_min_elevation)可以被包括在GPS、TPS或几何切片报头中的至少一个中并被接收。
在本公开中,帧间预测相关的LPU/PU分区选项信息可以包括用于拆分成LPU的参考类型信息(motion_block_lpu_split_type)、作为用于LPU拆分的参考的信息(例如,motion_block_lpu_radius、motion_block_lpu_azimuth、或motion_block_lpu_elevation)、指示运动矢量是否存在的信息(motion_vector_flag)、用于拆分成PU的拆分参考顺序类型信息(motion_block_pu_split_type)、用于拆分成PU的八叉树相关参考顺序类型信息(Motion_block_pu_split_octree_type)、作为用于拆分成PU的参考的信息(例如,motion_block_pu_radius、motion_block_pu_azimuth、或motion_block_pu_elevation)、与PU相对应的局部运动矢量信息、指示与LPU/PU相对应的块(或区域)是否被拆分的信息、以及最小PU大小信息(例如,motion_block_pu_min_radius、motion_block_pu_min_azimuth或motion_block_pu_min_elevation)中的至少一个。在本公开中,根据本领域的技术人员可以添加、删除或修改要包括在帧间预测相关的LPU/PU分区选项信息中的信息,并且因此实施例不限于上述示例。
图25是图示根据实施例的基于LPU/PU拆分来解码几何的方法的示例的流程图。
在图25中,步骤67001是几何信息熵编码器63001的详细操作,步骤67003是LPU/PU拆分器63004的详细操作,并且步骤67002和67004是运动补偿应用单元67005的详细操作。步骤67006是几何信息帧间预测重构器63006的详细操作。
也就是说,在步骤67001中,对几何比特流执行熵解码。熵解码的一个示例是算术解码。
在步骤67002中,通过将全局运动矢量应用于熵解码的几何信息来执行全局运动补偿。在步骤67003中,将熵解码的几何信息拆分成LPU/PU。在步骤67004中,可以通过将局部运动矢量应用于拆分的LPU/PU来执行局部运动补偿。在本公开的实施例中,全局运动矢量和/或局部运动矢量被包括在GPS、TPS、几何切片报头或几何PU报头中的至少之一中并被接收。上面已经详细描述了LPU/PU拆分,下面将跳过对其的描述。
存储在参考帧缓冲器中的先前参考帧(即,参考点云)可以被提供给步骤67002以执行全局运动补偿。
对于局部运动补偿,可以将在步骤67002中经受全局运动补偿的世界坐标或先前参考帧(即,参考点云)的车辆坐标提供给步骤67004。
在步骤67004中,基于帧间预测对局部运动补偿几何信息进行解码和重构。
图26是图示根据实施例的用于发送/接收的点云数据的比特流结构的示例的图。
根据实施例,在图26中,术语“切片”可以被称为“数据单元”。
此外,在图26中,每个缩写词具有下述含义。每个缩写词可以在等同含义的范围内由另一个术语引用。SPS:序列参数集;GPS:几何参数集;APS:属性参数集;TPS:图块参数集;Geom:几何比特流=几何切片报头+[几何PU报头+几何PU数据]|几何切片数据);Attr:属性(属性比特流=属性数据单元报头+[属性PU报头+属性PU数据]|属性数据单元数据)。
本公开可以用信号发送相关信息以便于添加/执行迄今为止所描述的实施例。根据实施例的信令信息可以在发送侧处的点云视频编码器或接收侧处的点云视频解码器中使用。
根据实施例的点云视频编码器可以通过对如上所述的几何信息和属性信息进行编码生成如图26中所示的比特流。另外,与点云数据相关的信令信息可以在点云视频编码器的几何编码器、属性编码器或信令处理器中的至少之一中生成和处理,并且可以被包括在比特流中。
作为示例,被配置成执行几何编码和/或属性编码的点云视频编码器可以生成如图26所示的编码的点云(或包括点云的比特流)。另外,与点云数据相关的信令信息可以由点云数据发送设备的元数据处理器生成和处理,并且被包括在点云中,如图26中所示。
根据实施例的信令信息可以由点云视频解码器的几何解码器、属性解码器或信令处理器中的至少之一接收/获得。
根据实施例的比特流可以被划分成几何比特流、属性比特流和信令比特流并被发送/接收,或者可以发送/接收一个组合的比特流。
当根据实施例的几何比特流、属性比特流和信令比特流被配置成一个比特流时,该比特流可以包括一个或多个子比特流。根据实施例的比特流可以包括用于序列级信令的序列参数集(SPS)、用于几何信息编译的信令的几何参数集(GPS)、用于属性信息编译的信令的一个或多个属性参数集(APS)(APS0、APS1)、用于图块级信令的图块参数集(TPS)、以及一个或多个切片(切片0到切片n)。也就是说,根据实施例的点云数据的比特流可以包括一个或多个图块,并且每个图块可以是包括一个或多个切片(切片0至切片n)的一组切片。根据实施例的TPS可以包含关于一个或多个图块中的每个的信息(例如,关于边界框的坐标值信息和高度/大小信息)。每个切片可以包括一个几何比特流(Geom0)和一个或多个属性比特流(Attr0和Attr1)。例如,第一切片(切片0)可以包括一个几何比特流(Geom0)和一个或多个属性比特流(Attr0、Attr1)。
每个切片或几何比特流(或称为几何切片)可以由几何切片报头和一个或多个几何PU(Geom PU0、Geom PU1)组成。每个几何PU可以由几何PU报头(geom PU报头)和几何PU数据(geom PU数据)组成。
每个切片中的每个属性比特流(或称为属性切片)可以由属性切片报头和一个或多个属性PU(Attr PU0、Attr PU1)组成。每个属性PU可以由属性PU报头(attr PU报头和属性PU数据(attr PU数据)组成。
根据实施例,帧间预测相关的LPU/PU分区选项信息(或称为帧间预测相关信息)可以被添加到GPS和/或TPS中并且用信号发送。
根据实施例,帧间预测相关的LPU/PU分区选项信息(或称为帧间预测相关信息)可以被添加到用于每个切片的几何切片报头中并且用信号发送。
根据实施例,帧间预测相关LPU/PU分区选项信息(或称为帧间预测相关信息)可以在几何PU报头中被用信号发送。
根据实施例,可以在点云数据的参数集(例如,SPS、GPS、APS和TPS(或称为图块库存)等)和/或相应切片的报头中重新定义对点云数据的编码和/或解码所需的参数。例如,它们可以在几何信息的编码和/或解码中被添加到GPS,并且可以在基于图块的编码和/或解码中被添加到图块(TPS)和/或切片报头。此外,当执行基于PU的编码和/或解码时,参数可以被添加到几何PU报头和/或属性PU报头。
如图26中所示,点云数据的比特流被划分成图块、切片、LPU和/或PU,使得点云数据可以被划分成区域并被处理。比特流的区域可以具有不同的重要性级别。因此,当点云数据被分区成图块时,可以将不同的滤波器(编码方法)或不同的滤波器单元应用于各自的图块。当点云数据被分区成切片时,可以将不同的滤波器或不同的滤波器单元应用于各自的切片。另外,当点云数据被划分成PU时,可以分别对PU应用不同的滤波器和不同的滤波器单元。
通过根据如图26中所示的比特流结构发送点云数据,根据实施例的发送设备可以允许根据重要性级别来不同地应用编码操作,并且允许在重要区域中使用高质量的编码方法。此外,还可以根据点云数据的特性来支持高效的编码和传输,并根据用户需求提供属性值。
当根据实施例的接收设备根据如图26中所示的比特流结构接收点云数据时,可以根据接收设备的处理能力将不同的滤波(解码方法)应用于各自的区域(划分成图块或切片),而不是对整个点云数据使用复杂的解码(滤波)方法。从而,可以为对用户重要的区域提供更好的图像质量,并且可以在系统中确保适当的时延。
如上所述,提供图块或切片以通过按区域分区点云数据来处理点云数据。在按区域分区点云数据时,可以设置为每个区域生成不同的邻近点的集合的选项。从而,可以提供具有低复杂度和稍低可靠性的选择方法,或者具有高复杂度和高可靠性I的选择方法。
根据实施例,GPS、TPS、几何切片报头或几何PU报头中的至少一个可以包括与帧间预测相关的LPU/PU分区选项信息。根据实施例,帧间预测相关的LPU/PU分区选项信息(或者被称为帧间预测相关信息)可以包括用于拆分成LPU的参考类型信息(motion_block_lpu_split_type)、作为用于LPU拆分的参考的信息(例如,motion_block_lpu_radius、motion_block_lpu_azimuth或motion_block_lpu_elevation)、指示运动矢量是否存在的信息(motion_vector_flag)、用于拆分成PU的拆分参考顺序类型信息(motion_block_pu_split_type)、用于拆分成PU的八叉树相关参考顺序类型信息(motion_block_pu_split_octree_type)、作为用于拆分成PU的参考的信息(例如,motion_block_pu_radius、motion_block_pu_azimuth或motion_block_pu_elevation)、与PU相对应的局部运动矢量信息、指示与LPU/PU相对应的块(或区域)是否被拆分的信息、以及最小PU大小信息(例如,motion_block_pu_min_radius、motion_block_pu_min_azimuth或motion_block_pu_min_elevation)。另外,与帧间预测相关的LPU/PU分区选项信息可以进一步包括用于识别PU所属的图块的信息、用于识别PU所属的切片的信息、关于包括在切片中的PU的数量的信息、以及用于识别每个PU的信息。
作为在本公开中稍后将描述的语法中使用的术语的字段可以具有与参数或语法元素相同的含义。
图27示出根据本公开的序列参数集(SPS)(seq_parameter_set_rbsp())的语法结构的实施例。SPS可以包括关于点云数据比特流的序列信息。特别地,在此示例中,SPS包括与帧间预测相关的LPU/PU分区选项信息。
根据实施例的SPS可以包括profile_idc字段、profile_compatibility_flags字段、level_idc字段、sps_bounding_box_present_flag字段、sps_source_scale_factor字段、sps_seq_parameter_set_id字段、sps_num_attribute_sets字段以及sps_extension_present_flag字段。
profile_idc字段指示比特流所符合的简档。
等于1的profile_compatibility_flags字段可以指示比特流符合由profile_idc指示的简档。
level_idc字段指示比特流符合的级别。
sps_bounding_box_present_flag字段指示是否在SPS中用信号发送源边界框信息。源边界框信息可以包括关于源边界框的偏移和大小信息。例如,等于1的sps_bounding_box_present_flag字段指示在SPS中用信号发送源边界框信息。sps_bounding_box_present_flag字段等于0指示源边界框信息未用信号发送。sps_source_scale_factor字段指示源点云的缩放因子。
sps_seq_parameter_set_id字段提供SPS的标识符以供其他语法元素参考。
sps_num_attribute_sets字段指示比特流中编译的属性的数量。
sps_extension_present_flag字段指定sps_extension_data语法结构是否存在于SPS语法结构中。例如,等于1的sps_extension_present_flag字段指定sps_extension_data语法结构存在于SPS语法结构中。等于0的sps_extension_present_flag字段指定该语法结构不存在。当不存在时,推断sps_extension_present_flag字段的值等于0。
当sps_bounding_box_present_flag字段等于1时,根据实施例的SPS可以进一步包括sps_bounding_box_offset_x字段、sps_bounding_box_offset_y字段、sps_bounding_box_offset_z字段、sps_bounding_box_scale_factor字段、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_scale_factor字段指示笛卡尔坐标中源边界框的缩放因子。当源边界框的缩放因子不存在时,sps_bounding_box_scale_factor的值可以为1。
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包括重复与sps_num_attribute_sets字段的值一样多的迭代语句。在实施例中,i被初始化为0,并且每次迭代语句被执行时递增了1。重复迭代语句,直到i的值变得等于sps_num_attribute_sets字段的值。迭代语句可以包括attribute_dimension[i]字段、attribute_instance_id[i]字段、attribute_bitdepth[i]字段、attribute_cicp_colour_primaries[i]字段、attribute_cicp_transfer_characteristics[i]字段、attribute_cicp_matrix_coeffs[i]字段、attribute_cicp_video_full_range_flag[i]字段和known_attribute_label_flag[i]字段。
attribute_dimension[i]字段指定第i个属性的分量数量。
attribute_instance_id[i]字段指定第i个属性的实例ID。
attribute_bitdepth[i]字段指定第i个属性信号的比特深度。
attribute_cicp_colour_primaries[i]字段指示第i个属性的颜色属性源原色的色度坐标。
attribute_cicp_transfer_characteristics[i]字段指示作为具有标称实值范围为0至1的源输入线性光强度的函数的颜色属性的参考光电传递特性函数,或者指示作为输出线性光强度的函数的参考电光传递特性的逆。
attribute_cicp_matrix_coeffs[i]字段描述用于从绿色、蓝色和红色或Y、Z和X原色导出亮度和色度信号的矩阵系数。
attribute_cicp_video_full_range_flag[i]字段指示从E'Y、E'PB和E'PR或E'R、E'G和E'B实值分量信号导出的亮度和色度信号的黑级别和范围。
known_attribute_label[i]字段指定是否为第i个属性用信号发送know_attribute_label字段或attribute_label_four_bytes字段。例如,等于0的known_attribute_label_flag[i]字段的值指定为第i个属性用信号发送known_attribute_label字段。等于1的known_attribute_label_flag[i]字段指定为第i个属性用信号发送attribute_label_four_bytes字段。
known_attribute_label[i]字段可以指定属性类型。例如,等于0的known_attribute_label[i]字段可以指定第i个属性是颜色。等于1的known_attribute_label[i]字段指定第i个属性是反射率。等于2的known_attribute_label[i]字段可以指定第i个属性是帧索引。
attribute_label_four_bytes字段用4字节码指示已知的属性类型。
在此示例中,attribute_label_four_bytes字段当等于0时指示颜色,并且当等于1时指示反射率。
根据实施例,当sps_extension_present_flag字段等于1时,SPS可以进一步包括sps_extension_data_flag字段。
sps_extension_data_flag字段可以具有任何值。
图28示出根据本公开的几何参数集(geometry_parameter_set())(GPS)的语法结构。根据实施例的GPS可以包括关于对关于包括在一个或多个切片中的点云数据的几何信息进行编码的方法的信息。
根据实施例,GPS可以包括gps_geom_parameter_set_id字段、gps_seq_parameter_set_id字段、gps_box_present_flag字段、unique_geometry_points_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字段和gps_extension_present_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_gsh_box_log2_scale字段是否在参考当前GPS的每个几何切片报头中用信号发送。例如,等于1的gps_gsh_box_log2_scale_present_flag字段可以指定gps_gsh_box_log2_scale字段在参考当前GPS的每个几何切片报头中用信号发送。作为另一示例,等于0的gps_gsh_box_log2_scale_present_flag字段可以指定在每个几何切片报头中不用信号发送gps_gsh_box_log2_scale字段并且在当前GPS的gps_gsh_box_log2_scale字段中用信号发送所有切片的公共缩放。
当gps_gsh_box_log2_scale_present_flag字段等于0时,GPS可以进一步包括gps_gsh_box_log2_scale字段。
gps_gsh_box_log2_scale字段指示参考当前GPS的所有切片的边界框原点的公共缩放因子。
unique_geometry_points_flag字段指示是否所有输出点都具有唯一位置。例如,等于1的unique_geometry_points_flag字段指示所有输出点都具有唯一的位置。等于0的unique_geometry_points_flag字段指示在参考当前GPS的所有切片中两个或更多个输出点可能具有相同的位置。
neighbor_context_restriction_flag字段指示用于八叉树占用编译的上下文。例如,等于0的neighbor_context_restriction_flag字段指示八叉树占用编译使用从六个邻近父节点确定的上下文。等于1的neighbor_context_restriction_flag字段指示八叉树占用编译使用仅从兄弟节点确定的上下文。
inferred_direct_coding_mode_enabled_flag字段指示direct_mode_flag字段是否存在于几何节点语法中。例如,等于1的inferred_direct_coding_mode_enabled_flag字段指示direct_mode_flag字段可能存在于几何节点语法中。例如,等于0的inferred_direct_coding_mode_enabled_flag字段指示direct_mode_flag字段不存在于几何节点语法中。
bitwise_occupancy_coding_flag字段指示是否使用语法元素占用图的按比特上下文化对几何节点占用进行编码。例如,等于1的bitwise_occupancy_coding_flag字段指示使用语法元素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的值如下:
NeighbAvailBoundary=2log2_neighbour_avail_boundary
例如,当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作为三角形节点的大小。
TrisoupNodeSize=1<<log2_trisoup_node_size
gps_extension_present_flag字段指定gps_extension_data语法结构是否存在于GPS语法结构中。例如,等于1的gps_extension_present_flag指定gps_extension_data语法结构存在于GPS语法中。例如,等于0的gps_extension_present_flag指定此语法结构不存在于GPS语法中。
当gps_extension_present_flag字段的值等于1时,根据实施例的GPS可以进一步包括gps_extension_data_flag字段。
gps_extension_data_flag字段可以具有任何值。它的存在和值不影响解码器与简档的一致性。
图29示出根据实施例的包括帧间预测相关的LPU/PU分区选项信息的几何参数集(geometry_parameter_set())(GPS)的语法结构的示例。信令信息的名称可以在信令信息的含义和功能的范围内被理解。
在图29中,gps_geom_parameter_set_id字段提供用于GPS的标识符以供其他语法元素参考。
gps_seq_parameter_set_id字段指定用于活动SPS的sps_seq_parameter_set_id的值。
geom_tree_type字段指示几何信息的编译类型。例如,geom_tree_type等于0可以指示使用八叉树对几何信息(即,位置信息)进行编译,并且geom_tree_type等于1可以指示使用预测树对信息进行编译。
根据实施例的GPS可以包括用于每个LPU所motion_block_lpu_split_type字段。
motion_block_lpu_split_type字段可以指定用于执行应用于帧的LPU拆分的参考类型。例如,在motion_block_lpu_split_type的值之中,0可以指示基于半径的LPU拆分,1可以指示基于方位角的LPU拆分,并且2可以指示基于仰角的LPU拆分。
当motion_block_lpu_split_type字段的值为0时,GPS可以进一步包括motion_block_lpu_radius字段。Motion_block_lpu_radius字段可以指定作为用于应用于帧的LPU拆分的参考的半径的大小。
当motion_block_lpu_split_type字段的值为1时,GPS可以进一步包括motion_block_lpu_azimuth字段。Motion_block_lpu_azimuth字段可以指定作为用于应用于帧的LPU拆分的参考的方位角的大小。
当motion_block_lpu_split_type字段的值为2时,GPS可以进一步包括motion_block_lpu_elevation字段。Motion_block_lpu_elevation字段可以指定作为用于应用于帧的LPU拆分的参考的仰角的大小。
在本公开中,motion_block_lpu_radius、motion_block_lpu_azimuth和motion_block_lpu_elevation被称为用于LPU拆分的参考信息。
根据实施例的GPS可以包括用于每个PU的motion_block_pu_split_octree_type字段、motion_block_pu_split_type字段、motion_block_pu_radius字段、motion_block_pu_azimuth字段、motion_block_pu_elevation字段、motion_block_pu_min_radius字段、motion_block_pu_min_azimuth字段或motion_block_minth字段中的至少一个。
例如,当geom_tree_type等于0时(即,其指示使用八叉树对几何信息(即,位置信息)进行编译),GPS包括motion_block_pu_split_octree_type字段。
当geom_tree_type字段等于1时(即,其指示使用预测树对几何信息(即,位置信息)进行编译),GPS包括motion_block_pu_split_type字段、motion_block_pu_radius字段、motion_block_pu_azimuth字段、motion_block_min_azi_elevation字段、motion_block_muth字段、motion_block_radius字段、motion_block_pu_min_elevation字段。
motion_block_pu_split_octree_type字段指示当基于八叉树执行几何编译时用于划分成PU的八叉树相关的参考顺序类型信息。即,motion_block_pu_split_octree_type字段指定当基于应用于帧的八叉树应用几何编译时用于划分成PU的参考顺序类型。
例如,在motion_block_pu_split_octree_type字段的值之中,0可以指示基于x→y→z的拆分应用,1可以指示基于x→z→y的拆分应用,并且2可以指示基于y→x→z的拆分应用。3可以指示基于y→z→x的拆分应用,4可以指示基于z→x→y的拆分应用,并且5可以指示基于z→y→x的拆分应用。
motion_block_pu_split_type字段被称为用于将LPU拆分成PU的拆分参考顺序类型信息,并且可以指定用于将LPU划分成应用于帧的PU的参考类型。
例如,在motion_block_pu_split_type字段的值之中,0可以指示基于半径→基于方位角→基于仰角的拆分应用,1可以指示基于半径→基于仰角→基于方位角的拆分应用,并且2可以指示基于方位角→基于半径→基于仰角的拆分应用。3可以指示基于方位角→基于仰角→基于半径的拆分应用,4可以指示基于仰角→基于半径→基于方位角的拆分应用,并且5可以指示基于仰角→基于方位角→基于半径的拆分应用。
motion_block_pu_radius字段可以指定作为用于应用于帧的PU拆分的参考的半径的大小。
motion_block_pu_azimuth字段可以指定作为用于应用于帧的PU拆分的参考的方位角的大小。
motion_block_pu_elevation字段可以指定作为用于应用于帧的PU拆分的参考的仰角的大小。
在本公开中,motion_block_pu_radius、motion_block_pu_azimuth和motion_block_pu_elevation被称为用作用于拆分成PU的参考的信息。
motion_block_pu_min_radius字段可以指定作为用于应用于帧的PU拆分的参考的最小半径的大小。当PU块的半径的大小小于最小半径的大小时,不执行进一步的拆分。
motion_block_pu_min_azimuth字段可以指定作为用于应用于帧的PU拆分的参考的最小方位角的大小。当PU块的方位角的大小小于最小方位角的大小时,不执行进一步的拆分。
motion_block_pu_min_elevation字段可以指定作为用于应用于帧的PU拆分的参考的最小仰角的大小。当PU块的仰角大小小于最小仰角大小时,不进行进一步的拆分。
在本公开中,motion_block_pu_min_radius、motion_block_pu_min_azimuth和motion_block_pu_min_elevation被称为最小PU大小信息。
根据实施例,图29的帧间预测相关的LPU/PU分区选项信息可以包括在图28的GPS中的任何位置中。
图30示出根据本公开的实施例的图块参数集(tile_parameter_set())(TPS)的语法结构。根据实施例,TPS可以被称为图块库存。根据实施例的TPS包括与每个图块相关的信息。
根据实施例的TPS包括num_tiles字段。
num_tiles字段指示为比特流用信号发送的图块的数量。如果不存在,则num_tilesis推断为0。
根据实施例的TPS包括重复与num_tiles字段的值一样多的迭代语句。在一个实施例中,i被初始化为0,并且每次执行迭代语句时递增了1。重复迭代语句,直到i的值变成等于num_tiles字段的值。迭代语句可以包括tile_bounding_box_offset_x[i]字段、tile_bounding_box_offset_y[i]字段、tile_bounding_box_offset_z[i]字段、tile_bounding_box_size_width[i]字段、tile_bounding_box_size_height[i]字段和tile_bounding_box_size_depth[i]字段。
tile_bounding_box_offset_x[i]字段指示笛卡尔坐标中第i个图块的x偏移。
tile_bounding_box_offset_y[i]字段指示笛卡尔坐标中第i个图块的y偏移。
tile_bounding_box_offset_z[i]字段指示笛卡尔坐标中第i个图块的z偏移。
tile_bounding_box_size_width[i]字段指示笛卡尔坐标中第i个图块的宽度。
tile_bounding_box_size_height[i]字段指示笛卡尔坐标中第i个图块的高度。
tile_bounding_box_size_depth[i]字段指示笛卡尔坐标中第i个图块的深度。
图31示出根据实施例的包括与帧间预测相关的LPU/PU分区选项信息的图块参数集(tile_parameter_set())(TPS)的语法结构的示例。信令信息的名称可以在信令信息的含义和功能的范围内被理解。
在图31中,num_tiles字段、tile_bounding_box_offset_x[i]字段和tile_bounding_box_offset_y[i]字段与参考图30描述的相同,并且因此下面将跳过对其的描述。
根据实施例的TPS可以包括用于每个LPU的motion_block_lpu_split_type字段。
motion_block_lpu_split_type字段可以指定用于执行应用于图块的LPU拆分的参考类型。例如,在motion_block_lpu_split_type的值之中,0可以指示基于半径的LPU拆分,1可以指示基于方位角的LPU拆分,并且2可以指示基于仰角的LPU拆分。
当motion_block_lpu_split_type字段的值为0时,TPS可以进一步包括motion_block_lpu_radius字段。Motion_block_lpu_radius字段可以指定作为用于应用于图块的LPU拆分的参考的半径的大小。
当motion_block_lpu_split_type字段的值为1时,TPS可以进一步包括motion_block_lpu_azimuth字段。Motion_block_lpu_azimuth字段可以指定作为用于应用于图块的LPU拆分的参考的方位角的大小。
当motion_block_lpu_split_type字段的值为2时,TPS可以进一步包括motion_block_lpu_elevation字段。Motion_block_lpu_elevation字段可以指定作为用于应用于图块的LPU拆分的参考的仰角的大小。
在本公开中,motion_block_lpu_radius、motion_block_lpu_azimuth和motion_block_lpu_elevation被称为用于LPU拆分的参考信息。
根据实施例的TPS可以包括用于每个PU的motion_block_pu_split_octree_type字段、motion_block_pu_split_type字段、motion_block_pu_radius字段、motion_block_pu_azimuth字段、motion_block_pu_elevation字段、motion_block_pu_min_radius字段、motion_block_pu_min_azimuth字段或motion_block_minth字段中的至少一个。
例如,当geom_tree_type等于0时(即,其指示使用八叉树对几何信息(即,位置信息)进行编译),TPS包括motion_block_pu_split_octree_type字段。
当geom_tree_type字段等于1时(即,其指示使用预测树对几何信息(即,位置信息)进行编译),TPS包括motion_block_pu_split_type字段、motion_block_pu_radius字段、motion_block_pu_azimuth字段、motion block min azi elevation字段、motionblock muth字段、motion_block_radius字段、motion_block_pu_min_elevation字段。
motion_block_pu_split_octree_type字段指示当基于八叉树执行几何编译时用于划分成PU的八叉树相关的参考顺序类型信息。也就是说,motion_block_pu_split_octree_type字段指定当基于应用于图块的八叉树应用几何编译时用于划分成PU的参考顺序类型。
例如,在motion_block_pu_split_octree_type字段的值之中,0可以指示基于x→y→z的拆分应用,1可以指示基于x→z→y的拆分应用,并且2可以指示基于y→x→z的拆分应用。3可以指示基于y→z→x的拆分应用,4可以指示基于z→x→y的拆分应用,并且5可以指示基于z→y→x的拆分应用。
motion_block_pu_split_type字段被称为用于将LPU划分成PU的拆分参考顺序类型信息,并且可以指定用于将LPU划分成应用于帧的PU的参考类型。
例如,在motion_block_pu_split_type字段的值之中,0可以指示基于半径→基于方位角→基于仰角的拆分应用,1可以指示基于半径→基于仰角→基于方位角的拆分应用,并且2可以指示基于方位角→基于半径→基于仰角的拆分应用。3可以指示基于方位角→基于仰角→基于半径的拆分应用,4可以指示基于仰角→基于半径→基于方位角的拆分应用,并且5可以指示基于仰角→基于方位角→基于半径的拆分应用。
motion_block_pu_radius字段可以指定作为用于应用于图块的PU拆分的参考的半径的大小。
motion_block_pu_azimuth字段可以指定作为用于应用于图块的PU拆分的参考的方位角的大小。
motion_block_pu_elevation字段可以指定作为用于应用于图块的PU拆分的参考的仰角的大小。
在本公开中,motion_block_pu_radius、motion_block_pu_azimuth和motion_block_pu_elevation被称为用作用于拆分成PU的参考的信息。
motion_block_pu_min_radius字段可以指定作为用于应用于图块的PU拆分的参考的最小半径的大小。当PU块的半径的大小小于最小半径的大小时,不执行进一步的拆分。
motion_block_pu_min_azimuth字段可以指定作为用于应用于图块的PU拆分的参考的最小方位角的大小。当PU块的方位角的大小小于最小方位角的大小时,不执行进一步的拆分。
motion_block_pu_min_elevation字段可以指定作为用于应用于图块的PU拆分的参考的最小仰角的尺寸。当PU块的仰角大小小于最小仰角大小时,不执行进一步的拆分。
在本公开中,motion_block_pu_min_radius、motion_block_pu_min_azimuth和motion_block_pu_min_elevation被称为最小PU大小信息。
根据实施例,图31的帧间预测相关的LPU/PU分区选项信息可以被包括在图30的TPS中的任何位置中。
图32示出根据本公开的几何切片bitstream()的语法结构的实施例。
根据实施例的几何切片比特流(geometry_slice_bitstream())可以包括几何切片报头(geometry_slice_header())和几何切片数据(geometry_slice_data())。
图33示出根据本公开的几何切片报头(geometry_slice_header())的语法结构的实施例。
根据实施例的由发送设备发送的比特流(或由接收设备接收的比特流)可以包含一个或多个切片。每个切片可以包括几何切片和属性切片。几何切片包括几何切片报头(GSH)。属性切片包括属性切片报头(ASH)。
根据实施例的几何切片报头(geometry_slice_header())可以包括gsh_geom_parameter_set_id字段、gsh_tile_id字段、gsh_slice_id字段、gsh_max_node_size_log2字段、gsh_num_points字段和byte_alignment()字段。
当GPS中包括的gps_box_present_flag字段的值为“真”(例如,1),并且gps_gsh_box_log2_scale_present_flag字段的值为“真”(例如,1)时,根据实施例的几何切片报头(geometry_slice_header())可以进一步包括gsh_box_log2_scale字段、gsh_box_origin_x字段、gsh_box_origin_y字段和gsh_box_origin_z字段。
gsh_geom_parameter_set_id字段指定活动GPS的gps_geom_parameter_set_id的值。
gsh_tile_id字段指定由GSH参考的图块id的值。
gsh_slice_id指定切片的id以供其他语法元素参考。
gsh_box_log2_scale字段指定切片的边界框原点的缩放因子。
gsh_box_origin_x字段指定由gsh_box_log2_scale字段的值缩放的边界框原点的x值。
gsh_box_origin_y字段指定由gsh_box_log2_scale字段的值缩放的边界框原点的y值。
gsh_box_origin_z字段指定由gsh_box_log2_scale字段的值缩放的边界框原点的z值。
gsh_max_node_size_log2指定根几何八叉树节点的大小。
gbh_points_number指定在相应切片内编译的点的数量。
图34示出根据实施例的包括帧间预测相关的LPU/PU分区选项信息的geometry_slice_header()的语法结构的示例。信令信息的名称可以在信令信息的含义和功能的范围内被理解。
根据实施例的由发送设备发送的比特流(或者由接收设备接收的比特流)可以包括一个或多个切片。
在图34中,gsh_geometry_parameter_set_id字段、gsh_tile_id字段和gsh_slice_id字段与图33的那些相同,因此将跳过其描述以避免冗余描述。
根据实施例的几何切片报头可以包括用于每个LPU的motion_block_lpu_split_type字段。
motion_block_lpu_split_type字段可以指定用于执行应用于切片的LPU拆分的参考类型。例如,在motion_block_lpu_split_type的值之中,0可以指示基于半径的LPU拆分,1可以指示基于方位角的LPU拆分,并且2可以指示基于仰角的LPU拆分。
当motion_block_lpu_split_type字段的值为0时,几何切片报头可以进一步包括motion_block_lpu_radius字段。motion_block_lpu_radius字段可以指定作为用于应用于切片的LPU拆分的参考的半径的大小。
当motion_block_lpu_split_type字段的值为1时,几何切片报头可以进一步包括motion_block_lpu_azimuth字段。motion_block_lpu_azimuth字段可以指定作为用于应用于切片的LPU拆分的参考的方位角的大小。
当motion_block_lpu_split_type字段的值为2时,几何切片报头可以进一步包括motion_block_lpu_elevation字段。Motion_block_lpu_elevation字段可以指定作为用于应用于切片的LPU拆分的参考的仰角的大小。
在本公开中,motion_block_lpu_radius、motion_block_lpu_azimuth和motion_block_lpu_elevation被称为用于LPU拆分的参考信息。
根据实施例的几何切片报头可以包括用于每个PU的motion_block_pu_split_octree_type字段、motion_block_pu_split_type字段、motion_block_pu_radius字段、motion_block_pu_azimuth字段、motion_block_pu_elevation字段、motion_block_pu_min_radius字段、motion_block_pu_min_azimuth字段或motion_block_minth字段中的至少一个。
例如,当geom_tree_type等于0时(即,其指示使用八叉树对几何信息(即,位置信息)进行编译),几何切片报头包括motion_block_pu_split_octree_type字段。
当geom_tree_type字段等于1时(即,其指示使用预测树对几何信息(即,位置信息)进行编译),几何切片报头包括motion_block_pu_split_type字段、motion_block_pu_radius字段、motion_block_pu_azimuth字段、motion_block_min_azi_elevation字段、motion_block_muth字段、motion_block_radius字段、motion_block_pu_min_elevation字段。
motion_block_pu_split_octree_type字段指示当基于八叉树执行几何编译时用于划分成PU的八叉树相关的参考顺序类型信息。也就是说,motion_block_pu_split_octree_type字段指定当基于应用于图块的八叉树应用几何编译时用于划分成PU的参考顺序类型。
例如,在motion_block_pu_split_octree_type字段的值之中,0可以指示基于x→y→z的拆分应用,1可以指示基于x→z→y的拆分应用,并且2可以基于指示y→x→z的拆分应用。3可以指示基于y→z→x的拆分应用,4可以指示基于z→x→y的拆分应用,并且5可以指示基于z→y→x的拆分应用。
motion_block_pu_split_type字段被称为用于将LPU划分成PU的拆分参考顺序类型信息,并且可以指定用于将LPU拆分成应用于帧的PU的参考类型。
例如,在motion_block_pu_split_type字段的值之中,0可以指示基于半径→基于方位角→基于仰角的拆分应用,1可以指示基于半径→基于仰角→基于方位角的拆分应用,并且2可以指示基于方位角→基于半径→基于仰角的拆分应用。3可以指示基于方位角→基于仰角→基于半径的拆分应用,4可以指示基于仰角→基于半径→基于方位角的拆分应用,并且5可以指示基于仰角→基于方位角→基于半径的拆分应用。
motion_block_pu_radius字段可以指定作为用于应用于切片的PU拆分的参考的半径的大小。
motion_block_pu_azimuth字段可以指定作为用于应用于切片的PU拆分的参考的方位角的大小。
motion_block_pu_elevation字段可以指定作为应用于切片的PU拆分的参考的仰角的大小。
在本公开中,motion_block_pu_radius、motion_block_pu_azimuth和motion_block_pu_elevation被称为用作用于拆分成PU的参考的信息。
motion_block_pu_min_radius字段可以指定作为用于应用于切片的PU拆分的参考的最小半径的大小。当PU块的半径的大小小于最小半径的大小时,不执行进一步的拆分。
motion_block_pu_min_azimuth字段可以指定作为用于应用于切片的PU拆分的参考的最小方位角的大小。当PU块的方位角的大小小于最小方位角的大小时,不执行进一步的拆分。
motion_block_pu_min_elevation字段可以指定作为用于应用于切片的PU拆分的参考的最小仰角的大小。当PU块的仰角大小小于最小仰角大小时,不执行进一步的拆分。
在本公开中,motion_block_pu_min_radius、motion_block_pu_min_azimuth和motion_block_pu_min_elevation被称为最小PU大小信息。
根据实施例,图34的帧间预测相关的LPU/PU分区选项信息可以被包括在图33的几何切片报头中的任何位置中。
根据实施例,切片可以被拆分成一个或多个PU。例如,几何切片可以由几何切片报头和一个或多个几何PU组成。在这种情况下,每个几何PU可以由几何PU报头和几何PU数据组成。
图35示出根据实施例的包括帧间预测相关的LPU/PU分区选项信息的几何PU报头(geom_pu_header())的语法结构的示例。信令信息的名称可以在信令信息的含义和功能的范围内被理解。
根据实施例的几何PU报头可以包括pu_tile_id字段、pu_slice_id字段和pu_cnt字段。
pu_tile_id字段指定用于识别PU所属的图块的图块标识符(ID)。
pu_slice_id字段指定用于识别PU所属的切片的切片标识符(ID)。
pu_cnt字段指定包括在由pu_slice_id字段的值识别的切片中的PU的数量。
根据实施例的几何PU报头包括迭代与pu_cnt字段的值一样多的次数的循环。在实施例中,puIdx被初始化为0,每次执行循环时递增了1,并且循环迭代直到puIdx的值达到pu_cnt字段的值。该循环可以包括pu_id[puIdx]字段、pu_split_flag[puIdx]字段和pu_has_motion_vector_flag[puIdx]字段。
pu_id[puIdx]字段指定用于识别切片中包括的PU之中的与puIdx相对应的PU的PU标识符(ID)。
pu_split_flag[puIdx]字段指定随后是否进一步拆分包括在切片中的PU之中的与puIdx相对应的PU。
pu_has_motion_vector_flag[puIdx]字段指定切片中包括的PU之中的与puIdx相对应的PU是否具有运动矢量。
例如,当pu_has_motion_vector_flag[puIdx]字段的值为1时,其可以指示PU具有运动矢量。当该值为0时,其可以指示PU不具有运动矢量。
根据实施例,当pu_has_motion_vector_flag[puIdx]字段的值为1时,其指示由pu_id[puIdx]字段的值识别的PU具有运动矢量。在这种情况下,几何PU报头可以进一步包括pu_motion_vector_xyz[pu_id][k]字段。
pu_motion_vector_xyz[pu_id][k]字段可以指定应用于由pu_id字段识别的第k个PU的运动矢量。
图36示出根据本公开的实施例的属性切片比特流()的语法结构。
根据实施例的属性切片比特流(attribute_slice_bitstream())可以包括属性切片报头(attribute_slice_header())和属性切片数据(attribute_slice_data())。
图37示出根据本公开的实施例的属性切片报头(attribute_slice_header())的语法结构。
根据实施例的属性切片报头(attribute_slice_header())可以包括ash_attr_parameter_set_id字段、ash_attr_sps_attr_idx字段、ash_attr_geom_slice_id字段、ash_attr_layer_qp_delta_present_flag字段和ash_attr_region_qp_delta_present_flag字段。
当APS中的aps_slice_qp_delta_present_flag字段的值为真(例如,1)时,根据实施例的属性切片报头(attribute_slice_header())可以进一步包括ash_attr_qp_delta_luma字段。当attribute_dimension_minus1[0ash_dimension_minus1]的值大于0时,属性切片报头可以进一步包括ash_attr_qp_delta_chroma字段。
ash_attr_parameter_set_id字段指示当前活动APS中的aps_attr_parameter_set_id字段的值。
ash_attr_sps_attr_idx字段指示当前活动SPS中设置的属性。
ash_attr_geom_slice_id字段指示当前几何切片报头中的gsh_slice_id字段的值。
ash_attr_qp_delta_luma字段指示从活动属性参数集中的初始切片qp导出的亮度增量量化参数qp。
ash_attr_qp_delta_chroma字段指示从活动属性参数集中的初始切片qp导出的色度增量量化参数qp。
在这方面,变量InitialSliceQpY和InitialSliceQpC被导出如下。
InitialSliceQpY=aps_attrattr_initial_qp+ash_attr_qp_delta_luma
InitialSliceQpC=aps_attrattr_initial_qp+aps_attr_chroma_qp_offset+ash_attr_qp_delta_chroma
ash_attr_layer_qp_delta_present_flag字段指示ash_attr_layer_qp_delta_luma字段和ash_attr_layer_qp_delta_chroma字段是否存在于针对每个层的属性切片报头(ASH)中。例如,当ash_attr_layer_qp_delta_present_flag字段的值为1时,其指示ash_attr_layer_qp_delta_luma字段和ash_attr_layer_qp_delta_chroma字段存在于ASH中。当值为0时,其指示该字段不存在。
当ash_attr_layer_qp_delta_present_flag字段的值为真时,ASH可以进一步包括ash_attr_num_layer_qp_minus1字段。
ash_attr_num_layer_qp_minus1字段加1指示通过其用信号发送ash_attr_qp_delta_luma字段和ash_attr_qp_delta_chroma字段的层的数量。当没有用信号发送ash_attr_num_layer_qp字段时,ash_attr_num_layer_qp字段的值将为0。根据实施例,可以通过将0添加到ash_attr_num_layer_qp_minus1字段的值来获得指定层数的NumLayerQp(NumLayerQp=ash_attr_num_layer_qp_minus1+1)。
根据实施例,当ash_attr_layer_qp_delta_present_flag字段的值为真时,几何切片报头可以包括迭代与NumLayerQp的值一样多的次数的循环。在这样的情况下,在实施例中,i可以初始化为0,并且每次执行循环时递增了1,并且循环递增直到i的值达到NumLayerQp的值。此循环包含ash_attr_layer_qp_delta_luma[i]字段。另外,当attribute_dimension_minus1[ash_attr_sps_attr_idx]字段的值大于0时,循环可以进一步包括ash_attr_layer_qp_delta_chroma[i]字段。
ash_attr_layer_qp_delta_luma字段指示来自每层中的InitialSliceQpY的亮度增量量化参数(qp)。
ash_attr_layer_qp_delta_chroma字段指示来自每层中的InitialSliceQpC的色度增量量化参数(qp)。
具有i=0…NumLayerQPNumQPLayer-1的变量SliceQpY[i]和SliceQpC[i]被如下导出。
for(i=0;i<NumLayerQPNumQPLayer;i++){
SliceQpY[i]=InitialSliceQpY+ash_attr_layer_qp_delta_luma[i]
SliceQpC[i]=InitialSliceQpC+ash_attr_layer_qp_delta_chroma[i]
}
当ash_attr_region_qp_delta_present_flag字段的值为1时,根据实施例的属性切片报头(attribute_slice_header())指示ash_attr_region_qp_delta、区域边界框原点和大小存在于当前属性切片报头中。当ash_attr_region_qp_delta_present_flag字段的值为0时,其指示ash_attr_region_qp_delta、区域边界框原点和大小不存在于当前属性切片报头中。
也就是说,当ash_attr_layer_qp_delta_present_flag字段的值为1时,属性切片报头可以进一步包括ash_attr_qp_region_box_origin_x字段、ash_attr_qp_region_box_origin_y字段、ash_attr_qp_region_box_origin_z字段、ash_attr_qp_region_box_width字段、ash_attr_qp_region_box_width字段、ash_attr_qp_region_box_height字段、ash_attr_qp_region_box_depth字段和ash_attr_region_qp_delta字段。
ash_attr_qp_region_box_origin_x字段指示区域边界框相对于slice_origin_x的x偏移。
ash_attr_qp_region_box_origin_y字段指示区域边界框相对于slice_origin_y的y偏移。
ash_attr_qp_region_box_origin_z字段指示区域边界框相对于slice_origin_z的z偏移。
ash_attr_qp_region_box_size_width字段指示区域边界框的宽度。
ash_attr_qp_region_box_size_height字段指示区域边界框的高度。
ash_attr_qp_region_box_size_depth字段指示区域边界框的深度。
ash_attr_region_qp_delta字段指示来自由ash_attr_qp_region_box字段指定的区域的SliceQpY[i]和SliceQpC[i]的增量qp。
根据实施例,指定区域框增量量化参数的变量RegionboxDeltaQp被设置为等于ash_attr_region_qp_delta字段的值(RegionboxDeltaQp=ash_attr_region_qp_delta)。
如上所述,当通过移动/或静止车辆中的LiDAR设备来捕获点云时,可以使用角度模式(r、i)。在这种情况下,对于相同的方位角,当半径r增加时,弧度可以增加。因此,靠近于车辆的对象的小运动看起来很大并且很可能是局部运动矢量。在对象远离车辆的情况下,即使与靠近车辆的对象相同的运动也可能无法被揭示,并且因此很可能在没有局部运动矢量的情况下被全局运动矢量覆盖。此外,移动对象很可能根据捕获对象的主要区域被拆分成PU。
为了将通过参考帧的帧间预测压缩技术应用到具有这种特性的点云,本公开支持通过反映内容的特性来拆分成作为预测单元的LPU/PU的方法。
因此,在本公开中,可以通过扩展由局部运动矢量可预测的区域来减少编码执行时间,使得不需要额外的计算。此外,因为执行PU拆分以获得分离对象的效果,即使运动对象没有被准确地拆分,也可以改进针对点云数据帧间预测的压缩效率。
以这种方式,发送方法/设备可以有效地压缩点云数据以发送数据,并且发送用于其的信令信息。因此,接收方法/设备还可以有效地解码/重构点云数据。
上述每个部分、模块或单元可以是执行存储在存储器(或存储单元)中的连续过程的软件、处理器或硬件部分。在以上实施例中描述的步骤中的每一个可以由处理器、软件或硬件部分执行。在以上实施例中描述的每个模块/块/单元可以作为处理器、软件或硬件操作。另外,实施例提出的方法可以被作为代码执行。该代码可以被写在处理器可读存储介质上,并因此被由装置提供的处理器读取。
在说明书中,当部分“包括”或“包含”元件时,这意味着,该部分还包含或包括另一个元件,除非另外提到。另外,说明书中公开的术语“...模块(或单元)”意指用于处理至少一个功能或操作的单元,并且可以由硬件、软件或硬件与软件的组合来实现。
尽管为了简便起见参考附图中的每一个说明了实施例,但可以通过合并在附图中例示的实施例来设计新的实施例。如果本领域的技术人员设计出其中记录有用于执行以上描述中提到的实施例的程序的计算机可读的记录介质,则其可以落入所附权利要求书及其等同物的范围内。
装置和方法不受上述实施例的配置和方法的限制。上述实施例可以通过完全或部分地选择性地相互组合来配置,以使得能够进行各种修改。
尽管已经参考附图描述了优选实施例,但本领域技术人员将领会,在不脱离在所附权利要求书中描述的本公开的精神或范围的情况下,可以在实施例中进行各种修改和变型。这种修改将不被独立于实施例的技术思路或观点进行理解。
实施例的装置的各种元件可以由硬件、软件、固件或其组合来实现。实施例中的各种元件可以由单个芯片(例如,单个硬件电路)来实现。根据实施例,根据实施例的部件可以被分别实现为单独的芯片。根据实施例,根据实施例的设备的部件中的至少一个或更多个可以包括能够执行一个或更多个程序的一个或更多个处理器。所述一个或更多个程序可以执行根据实施例的操作/方法中的任一个或更多个,或包括用于执行其的指令。用于执行根据实施例的设备的方法/操作的可执行指令可以被存储在被配置为由一个或更多个处理器执行的非暂态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二者。换句话说,本文中的术语“或”应该被解释为“另外地或另选地”。
实施例的各种元件可以通过硬件、软件、固件或其组合实现。实施例中的各种元件可以由单个芯片执行,诸如,单个硬件电路。根据实施例,该元件可以分别由单独的芯片选择性地执行。根据实施例,实施例的至少一个元件可以在包括用于执行根据实施例的操作的指令的一个或多个处理器中执行。
根据本说明书中描述的实施例的操作可以由包括根据实施例的一个或者多个存储器和/或一个或者多个处理器的发送/接收设备来执行。一个或者多个存储器可以存储用于处理/控制根据实施例的操作的程序,并且一个或者多个处理器可以控制本说明书中描述的各种操作。一个或者多个处理器可以被称为控制器等。在实施例中,操作可以由固件、软件和/或其组合来执行。固件、软件和/或其组合可以被存储在处理器或存储器中。
可以使用诸如第一和第二的术语来描述实施例的各种元件。然而,根据实施例的各种部件不应该受以上术语限制。这些术语只是用于将一个元件与另一个区分开。例如,第一用户输入信号可以被称为第二用户输入信号。类似地,第二用户输入信号可以被称为第一用户输入信号。这些术语的使用应该被解释为不脱离各种实施例的范围。第一用户输入信号和第二用户输入信号这两者都是用户输入信号,但不意指相同的用户输入信号,除非上下文另有明确指示。用于描述实施例的术语仅是出于描述特定实施例的目的使用的,并不旨在是限制实施例。如对实施例的描述和权利要求书中所使用的,单数形式“一(a)”、“一个(an)”和“该(the)”包括复数指示物,除非上下文另有明确规定。表述“和/或”用于包括所有可能的术语组合。诸如“包括”或“具有”的术语旨在指示图、数字、步骤、元件和/或部件的存在,并且应当被理解为不排除存在另外的图形、数字、步骤、元件和/或部件的可能性。
如本文中使用的,诸如“如果”和“当”这样的条件表述不限于可选情况,而旨在当满足特定条件时被解释为根据特定条件执行相关操作或解释相关定义。实施例可以包括在权利要求及其等效物的范围内的变化/修改。对于本领域的技术人员来说显而易见的是,在不脱离本公开的精神和范围的情况下,能够对本公开进行各种修改和变化。因此,本公开旨在覆盖落入所附权利要求及其等效物的范围内所提供的本公开的修改和变化。
本发明的模式
已经在用于本公开的最佳模式中描述了详情。
工业实用性
对于本领域的技术人员来说显而易见的是,在不脱离实施例的精神或范围的情况下,在实施例的范围内进行各种修改和变化是可能的。因此,实施例旨在涵盖所附权利要求及其等效物内提供的实施例的修改和变化。
Claims (15)
1.一种发送点云数据的方法,所述方法包括:
对所述点云数据的几何数据进行编码;
基于所述几何数据对所述点云数据的属性数据进行编码;以及
发送编码的几何数据、编码的属性数据和信令数据,
其中,对所述几何数据进行编码包括:
将所述几何数据拆分成一个或多个预测单元;以及
以帧间预测的方式,在拆分的预测单元中的每个中,对所述几何数据进行编码。
2.根据权利要求1所述的方法,其中,所述点云数据由包括一个或多个激光器的激光雷达捕获。
3.根据权利要求1所述的方法,其中,所述拆分包括:
基于仰角、半径或方位角中的一个或者两个或更多个的组合将所述几何数据拆分成一个或多个预测单元。
4.根据权利要求3所述的方法,
其中,所述信令数据包括下述中的至少一个:
用于识别所述仰角的量值的信息;
用于识别所述半径的量值的信息;或
用于识别所述方位角的量值的信息,以及
其中,所述信息形成将所述几何数据拆分成一个或多个预测单元的基础。
5.根据权利要求3所述的方法,
其中,用于所述帧间预测的运动矢量被应用于所述拆分的预测单元中的每个,
其中,所述信令数据包括用于指示所述运动矢量是否被应用于所述拆分的预测单元中的每个的指示信息,以及
其中,根据所述指示信息,所述信令数据进一步包括所述运动矢量。
6.一种用于发送点云数据的设备,包括:
几何编码器,所述几何编码器被配置成对所述点云数据的几何数据进行编码;
属性编码器,所述属性编码器被配置成基于所述几何数据对所述点云数据的属性数据进行编码;以及
发射器,所述发射器被配置成发送编码的几何数据、编码的属性数据和信令数据,
其中,所述几何编码器包括:
拆分器,所述拆分器被配置成将所述几何数据拆分成一个或多个预测单元;以及
帧间预测器,所述帧间预测器被配置成以帧间预测的方式在拆分的预测单元中的每个中对所述几何数据进行编码。
7.根据权利要求6所述的设备,其中,所述点云数据由包括一个或多个激光器的激光雷达捕获。
8.根据权利要求6所述的设备,其中,所述拆分器基于仰角、半径或方位角中的一个或者两个或更多个的组合,将所述几何数据拆分成一个或多个预测单元。
9.根据权利要求8所述的设备,
其中,所述信令数据包括下述中的至少一个:
用于识别所述仰角的量值的信息;
用于识别所述半径的量值的信息;或
用于识别所述方位角的量值的信息,以及
其中,所述信息形成将所述几何数据拆分成一个或多个预测单元的基础。
10.根据权利要求8所述的设备,
其中,用于所述帧间预测的运动矢量被应用于所述拆分的预测单元中的每个,
其中,所述信令数据包括用于指示所述运动矢量是否被应用于所述拆分的预测单元中的每个的指示信息,
其中,根据所述指示信息,所述信令数据进一步包括所述运动矢量。
11.一种接收点云数据的方法,所述方法包括:
接收几何数据、属性数据和信令数据;
基于所述信令数据,对所述几何数据进行解码;
基于所述信令数据和解码的几何数据,对所述属性数据进行解码;以及
渲染基于所述解码的几何数据和解码的属性数据重构的点云数据,
其中,所述几何数据的解码包括:
基于所述信令数据将用于所述几何数据的参考数据拆分成一个或多个预测单元,以及
以帧间预测的方式在拆分的预测单元的每个中对所述几何数据进行解码。
12.根据权利要求11所述的方法,其中,所述点云数据由发送侧上的包括一个或多个激光器的激光雷达捕获。
13.根据权利要求11所述的方法,其中,所述拆分包括:
基于所述信令数据将所述参考数据拆分成基于仰角、半径或方位角中的一个或者两个或更多个的组合的一个或多个预测单元。
14.根据权利要求13所述的方法,
其中,所述信令数据包括下述中的至少一个:
用于识别所述仰角的量值的信息;
用于识别所述半径的量值的信息;或
用于识别所述方位角的量值的信息,以及
其中,所述信息形成将所述几何数据拆分成一个或多个预测单元的基础。
15.根据权利要求13所述的方法,
其中,用于所述帧间预测的运动矢量被应用于所述拆分的预测单元中的每个,
其中,所述信令数据包括用于指示所述运动矢量是否被应用于所述拆分的预测单元中的每个的指示信息,以及
其中,根据所述指示信息,所述信令数据进一步包括所述运动矢量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210029892 | 2021-03-08 | ||
KR10-2021-0029892 | 2021-03-08 | ||
PCT/KR2022/001702 WO2022191436A1 (ko) | 2021-03-08 | 2022-02-03 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116965019A true CN116965019A (zh) | 2023-10-27 |
Family
ID=83228231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280019705.0A Pending CN116965019A (zh) | 2021-03-08 | 2022-02-03 | 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240179346A1 (zh) |
EP (1) | EP4307661A1 (zh) |
CN (1) | CN116965019A (zh) |
WO (1) | WO2022191436A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11954891B2 (en) * | 2020-06-30 | 2024-04-09 | Electronics And Telecommunications Research Institute | Method of compressing occupancy map of three-dimensional point cloud |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101930896B1 (ko) * | 2013-10-22 | 2018-12-19 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 이미지 디코딩 장치 및 이미지 디코딩 방법 |
WO2019079093A1 (en) * | 2017-10-19 | 2019-04-25 | Interdigital Vc Holdings, Inc. | METHOD AND DEVICE FOR PREDICTIVE CODING / DECODING OF A POINT CLOUD |
WO2020141260A1 (en) * | 2019-01-02 | 2020-07-09 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
WO2020146341A1 (en) * | 2019-01-07 | 2020-07-16 | Futurewei Technologies, Inc. | Point cloud bitstream structure and auxiliary information differential coding |
-
2022
- 2022-02-03 CN CN202280019705.0A patent/CN116965019A/zh active Pending
- 2022-02-03 EP EP22767333.2A patent/EP4307661A1/en active Pending
- 2022-02-03 WO PCT/KR2022/001702 patent/WO2022191436A1/ko active Application Filing
- 2022-02-03 US US18/549,764 patent/US20240179346A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240179346A1 (en) | 2024-05-30 |
WO2022191436A1 (ko) | 2022-09-15 |
EP4307661A1 (en) | 2024-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113615204B (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
US11138688B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
CN114503571A (zh) | 点云数据发送装置和方法、点云数据接收装置和方法 | |
CN114503586A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN114930397A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN113597771A (zh) | 用于处理点云数据的设备和方法 | |
CN115462083A (zh) | 发送点云数据的设备、发送点云数据的方法、接收点云数据的设备和接收点云数据的方法 | |
CN114175100A (zh) | 用于处理点云数据的方法和装置 | |
CN115428467B (zh) | 点云数据发送设备和方法、点云数据接收设备和方法 | |
CN114073086A (zh) | 点云数据处理设备和方法 | |
CN114073092A (zh) | 用于处理点云数据的设备和方法 | |
CN114097229A (zh) | 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法 | |
US20220230360A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
CN115918092A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN115668919A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN116458162A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN115210765A (zh) | 点云数据发送装置、发送方法、处理装置和处理方法 | |
KR20230173094A (ko) | 포인트 클라우드 데이터 전송 방법, 포인트 클라우드데이터 전송 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치 | |
CN116349229A (zh) | 点云数据发送装置和方法、点云数据接收装置和方法 | |
US20230045663A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
EP4307661A1 (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 | |
JP7425207B2 (ja) | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法 | |
CN116438799A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN114009046A (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 |