CN116033186A - 一种点云数据处理方法、装置、设备以及介质 - Google Patents
一种点云数据处理方法、装置、设备以及介质 Download PDFInfo
- Publication number
- CN116033186A CN116033186A CN202211736445.7A CN202211736445A CN116033186A CN 116033186 A CN116033186 A CN 116033186A CN 202211736445 A CN202211736445 A CN 202211736445A CN 116033186 A CN116033186 A CN 116033186A
- Authority
- CN
- China
- Prior art keywords
- node
- decoded
- neighbor
- target
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种点云数据处理方法、装置、设备以及介质,该方法包括:获取点云数据的压缩码流;在待解码节点为点云数据的第一几何结构中的第一节点时,确定与待解码节点具有空间相邻关系的已解码邻居节点;在已解码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,确定已解码邻居节点的目标占位信息;基于目标占位信息对压缩码流中的待解码节点的节点几何信息进行解码;节点几何信息包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。采用本申请,可以在基于混合树结构进行几何编码的情况下,提升压缩码流的解码效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种点云数据处理方法、装置、设备以及介质。
背景技术
在现有的点云编码架构中,可以采用块结构编码方法来实现点云数据的几何编码,即以宏块(Largest Coding Unit,LCU)作为基本的编码单元,且对每个宏块可以采用特定的几何结构(或几何编码方式,如划分树、预测树等)进行编码。
发明人在实践中发现,在基于块结构编码方法所得到的点云数据的压缩码流中,可能同时存在基于划分树编码的几何信息的码流和基于预测树编码的几何信息的码流,在这种情况下,若当前待解码的节点为划分树节点,只会考虑同样为划分树节点的邻居节点的占位情况来对该节点自身的占位码进行解码;类似的,若当前待解码的节点为预测树节点,只会考虑该节点内部的节点构建情况。由于没有充分考虑不同类型几何结构中的邻居节点的相关信息,会导致压缩码流的解码效率较低。
发明内容
本申请实施例提供了一种点云数据处理方法、装置、设备以及介质,可以在基于混合树结构进行几何编码的情况下,提升压缩码流的解码效率。
本申请实施例一方面提供了一种点云数据处理方法,包括:
获取点云数据的压缩码流;
在待解码节点为点云数据的第一几何结构中的第一节点时,确定与待解码节点具有空间相邻关系的已解码邻居节点;
在已解码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,确定已解码邻居节点的目标占位信息;
基于目标占位信息对压缩码流中的待解码节点的节点几何信息进行解码;节点几何信息包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
本申请实施例一方面提供了一种点云数据处理方法,包括:
在待编码节点为点云数据的第一几何结构中的第一节点时,确定与待编码节点具有空间相邻关系的已编码邻居节点;
在已编码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,确定已编码邻居节点的目标占位信息;
基于目标占位信息对待编码节点的节点几何信息进行编码,得到点云数据的压缩码流;节点几何信息包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
本申请实施例一方面提供了一种点云数据处理装置,包括:
码流获取模块,用于获取点云数据的压缩码流;
邻居确定模块,用于在待解码节点为点云数据的第一几何结构中的第一节点时,确定与待解码节点具有空间相邻关系的已解码邻居节点;
占位确定模块,用于在已解码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,确定已解码邻居节点的目标占位信息;
几何解码模块,用于基于目标占位信息对压缩码流中的待解码节点的节点几何信息进行解码;节点几何信息包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
其中,在第一几何结构的结构类型为划分树类型时,作为待解码节点的第一节点为划分树类型所对应的划分树中的节点,且在第二几何结构的结构类型为预测树类型时,作为已解码邻居节点的第二节点为预测树类型所对应的预测树中的节点;
占位确定模块包括:
第一策略获取单元,用于基于位于预测树中的第二节点的第一空间解码数据信息,获取与第一节点相关联的第一混合解码优化策略;
第一占位确定单元,用于基于第一混合解码优化策略确定已解码邻居节点的目标占位信息。
其中,第一占位确定单元包括:
父节点查找子单元,用于将待解码节点的父节点所在的划分层确定为父节点层,基于第一混合解码优化策略,在父节点层中,查找父节点的邻居父节点;若查找到的邻居父节点中存在位于预测树中的邻居父节点,则将位于预测树中的邻居父节点作为已解码邻居节点;
第一占位确定子单元,用于将已解码邻居节点的占位码的取值设置为第一码值,基于具有第一码值的已解码邻居节点的占位码确定已解码邻居节点的目标占位信息。
其中,第一占位确定单元包括:
子节点查找子单元,用于将待解码节点所在的划分层作为子节点层,基于第一混合解码优化策略,在子节点层中,查找待解码节点的邻居子节点;
第二占位确定子单元,用于若查找到的邻居子节点的父节点中存在位于预测树中的父节点,则在将位于预测树中的父节点作为已解码邻居节点时,将已解码邻居节点中的邻居子节点作为目标邻居子节点,基于目标邻居子节点的占位码确定已解码邻居节点的目标占位信息。
其中,目标邻居子节点的占位码的取值为默认码值;默认码值为第一码值或第二码值。
其中,目标邻居子节点的占位码是由已解码邻居节点所属的编码单元所采用的划分树类型所确定的。
其中,目标邻居子节点的占位码是由基于目标划分树类型对已解码邻居节点进行划分后所得到的真实占位码所确定的;目标划分树类型包含八叉树划分类型、四叉树划分类型和二叉树划分类型中的一种。
其中,目标邻居子节点的占位码是由与已解码邻居节点相关联的解码信息所确定的。
其中,解码信息包括已解码邻居节点的点云统计信息;目标邻居子节点的占位码是由点云统计信息和与点云统计信息相关联的统计阈值所确定的;点云统计信息包括已解码邻居节点中的点云点数和已解码邻居节点中的点云密度中的一种。
其中,解码信息包括已解码邻居节点所在的预测树的重建点;在目标邻居子节点的重建点与待解码节点之间的空间距离为目标空间距离时,目标邻居子节点的占位码是由目标空间距离小于距离阈值时所得到的第一码值所确定的。
其中,解码信息包括已解码邻居节点的参考已解码邻居节点的占位码;目标邻居子节点的占位码是由参考已解码邻居节点的占位码所确定的。
其中,解码信息包括与待解码节点具有同一父节点的划分树邻居子节点的子节点占位码;划分树邻居子节点为划分树中已解码的邻居子节点;目标邻居子节点的占位码是由子节点占位码所确定的。
其中,在子节点占位码指示位于子节点层的划分树邻居子节点处于占用状态时,位于子节点层的目标邻居子节点处于占用状态,且目标邻居子节点的占位码是由目标邻居子节点处于占用状态时所得到的第一码值所确定的。
其中,划分树邻居子节点中包含与已解码邻居节点之间距离最小的目标划分树邻居子节点;目标邻居子节点的占位码是由目标划分树邻居子节点的子节点占位码所确定的。
其中,目标邻居子节点的占位码是由待解码节点所在的划分深度与深度阈值的关联关系所确定的;关联关系包括划分深度小于深度阈值时的第一关联关系和划分深度大于深度阈值时的第二关联关系中的一种。
其中,目标邻居子节点的邻居节点类型包含与待解码节点共面的共面邻居子节点、与待解码节点共线的共线邻居子节点、与待解码节点共点的共点邻居子节点、以及在待解码节点所在坐标系的目标维度负方向上,距离待解码节点L个子节点边长处的近距邻居子节点中的一种或多种;L为大于1的正整数。
其中,在第一几何结构的结构类型为预测树类型时,作为待解码节点的第一节点为预测树类型所对应的第一预测树中的节点,且在第二几何结构的结构类型为划分树类型时,作为已解码邻居节点的第二节点为划分树类型所对应的划分树中的节点;
占位确定模块包括:
第二策略获取单元,用于基于位于划分树中的第二节点的第二空间解码数据信息,获取与第一节点相关联的第二混合解码优化策略;
第二占位确定单元,用于基于第二混合解码优化策略,将已解码邻居节点的占位码作为已解码邻居节点的目标占位信息。
其中,目标占位信息用于确定已解码邻居节点的重建点;已解码邻居节点的重建点用于作为待解码节点对应的第二预测树的起始点或待解码节点的独立参考点;第二预测树是通过已解码邻居节点的重建点对第一预测树进行重构后所确定的;独立参考点独立于第一预测树;
几何解码模块具体用于将第二预测树中的第一预测参考点或独立参考点作为目标参考点,基于目标参考点的重建坐标位置信息对待解码节点的预测树残差信息进行解码。
其中,在第一几何结构的结构类型为预测树类型时,作为待解码节点的第一节点为预测树类型所对应的第一预测树中的节点,且在已解码邻居节点为与第一几何结构具有相同结构类型的第三几何结构中的第三节点时,作为已解码邻居节点的第三节点为预测树类型所对应的第三预测树中的节点;
装置还包括:
残差解码模块,用于基于第三预测树的起始点或第三预测树的终止点确定目标参考点,基于目标参考点的重建坐标位置信息对待解码节点的预测树残差信息进行解码。
其中,残差解码模块具体用于在将第三预测树的起始点或第三预测树的终止点作为目标起始点时,通过目标起始点对第一预测树进行重构,得到待解码节点对应的重构预测树;重构预测树的起始点为目标起始点;将重构预测树中的第二预测参考点作为目标参考点。
其中,目标参考点为第三预测树的起始点或第三预测树的终止点,且目标参考点独立于第一预测树。
本申请实施例一方面提供了一种点云数据处理装置,包括:
节点确定模块,用于在待编码节点为点云数据的第一几何结构中的第一节点时,确定与待编码节点具有空间相邻关系的已编码邻居节点;
信息确定模块,用于在已编码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,确定已编码邻居节点的目标占位信息;
几何编码模块,用于基于目标占位信息对待编码节点的节点几何信息进行编码,得到点云数据的压缩码流;节点几何信息包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,解码设备可以获取点云数据的压缩码流,且在待解码节点为该点云数据的第一几何结构中的第一节点时,可以确定与待解码节点具有空间相邻关系的已解码邻居节点;进一步,在已解码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,解码设备可以确定已解码邻居节点的目标占位信息,进而可以基于目标占位信息对压缩码流中的待解码节点的节点几何信息进行解码;其中,该节点几何信息可包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。由此可见,在对压缩码流进行解码的过程中,当解码到的任意一个待解码节点所在的几何结构(即上述第一几何结构)与相应的已解码邻居节点所在的几何结构(即上述第二几何结构)不相同时,解码设备可以充分利用该已解码邻居节点的目标占位信息来对该待解码节点的节点几何信息进行解码,而非只考虑相同结构类型的几何结构中的邻居节点或该待解码节点内部的相关信息,从而可以在第一几何结构为划分树、且第二几何结构为预测树时,提升划分树占位信息的解码效率,或者,在第一几何结构为预测树、且第二几何结构为划分树时,提升预测树残差信息的解码效率,进而可以从整体上提升压缩码流的解码效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种点云媒体***的架构示意图;
图2a是本申请实施例提供的一种点云编码框架示意图;
图2b是本申请实施例提供的一种点云解码框架示意图;
图3是本申请实施例提供的一种点云包围盒的示意图;
图4a是本申请实施例提供的一种八叉树划分示意图;
图4b是本申请实施例提供的一种八叉树划分示意图;
图5是本申请实施例提供的一种不对称点云包围盒的示意图;
图6a是本申请实施例提供的一种四叉树划分示意图;
图6b是本申请实施例提供的一种二叉树划分示意图;
图7a是本申请实施例提供的一种AVS预测树编码结构示意图;
图7b是本申请实施例提供的一种MPEG预测树编码结构示意图;
图8是本申请实施例提供的一种块结构编码示意图;
图9是本申请实施例提供的一种点云数据处理方法的流程示意图;
图10是本申请实施例提供的一种父节点层相邻关系的示意图;
图11是本申请实施例提供的一种子节点层相邻关系的示意图;
图12是本申请实施例提供的一种基于块结构的混合树编码的场景示意图;
图13是本申请实施例提供的一种基于块结构的混合树编码的场景示意图;
图14是本申请实施例提供的一种父节点层相邻关系的示意图;
图15是本申请实施例提供的一种父节点层相邻关系的示意图;
图16是本申请实施例提供的一种点云数据处理方法的流程示意图;
图17是本申请实施例提供的一种点云数据处理装置的结构示意图;
图18是本申请实施例提供的一种点云数据处理装置的结构示意图;
图19是本申请实施例提供的一种计算机设备的结构示意图;
图20是本申请实施例提供的一种点云数据处理***的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面对本申请实施例涉及的一些技术术语进行介绍:
一、沉浸媒体:
沉浸媒体(也可称为沉浸式媒体)是指能够提供沉浸式的媒体内容,使沉浸于该媒体内容中的业务对象能够获得现实世界中视觉、听觉等感官体验的媒体文件。沉浸媒体按照业务对象在消费媒体内容时的自由度(Degree of Freedom,简称DoF),可以分为3DoF媒体、3DoF+媒体以及6DoF媒体。其中,点云媒体即为一种典型的6DoF媒体,本申请后续实施例中均以沉浸媒体为点云媒体为例进行说明。此外,这里的业务对象可以为进行沉浸式媒体(例如点云媒体)消费的用户(即观看者)。
二、点云:
点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。点云中的每个点至少具有三维位置信息,根据应用场景的不同,还可能具有色彩、材质或其他信息。通常,点云中的每个点都具有相同数量的附加属性。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,因而应用广泛,包括虚拟现实(Virtual Reality,VR)游戏、计算机辅助设计(Computer Aided Design,CAD)、地理信息***(Geography Information System,GIS)、自动导航***(AutonomousNavigation System,ANS)、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等。
点云的获取主要有以下途径:计算机生成、3D(3-Dimensional,三维)激光扫描、3D摄影测量等。计算机可以生成虚拟三维物体及场景的点云。3D扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云。3D摄像可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。此外,在医学领域,由MRI(MagneticResonance Imaging,磁共振成像)、CT(Computed Tomography,电子计算机断层扫描)、电磁定位信息,可以获得生物组织器官的点云。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能。伴随着大规模的点云数据不断积累,点云数据的高效存储、传输、发布、共享和标准化,成为点云应用的关键。
三、DoF(自由度):
本申请中DoF是指业务对象在观看沉浸媒体(如点云媒体)时支持的运动并产生内容交互的自由度,可以包括3DoF(三自由度)、3DoF+和6DoF(六自由度)。其中,3DoF是指业务对象头部围绕x轴、y轴、z轴旋转的三种自由度。3DoF+是在三自由度的基础上,业务对象还拥有沿x轴、y轴、z轴有限运动的自由度。6DoF是在三自由度的基础上,业务对象还拥有沿x轴、y轴、z轴***的自由度。
四、ISOBMFF(ISO Based Media File Format,基于ISO(International StandardOrganization,国际标准化组织)标准的媒体文件格式):是媒体文件的封装标准,较为典型的ISOBMFF文件即MP4(Moving Picture Experts Group 4,动态图像专家组4)文件。
本申请实施例涉及点云媒体的数据处理技术,下面将对点云媒体的数据处理过程中的一些概念进行介绍。
可以理解,点云媒体从采集到被消费的完整处理过程具体可以包括:点云采集,点云编码(Point Cloud Compression,PCC),点云文件封装,点云文件传输,点云文件解封装,点云解码和最终的视频呈现。
其中,点云采集是指通过多个相机从不同角度采集到点云数据。点云编码则是指通过压缩技术,将原始视频格式的文件转换为另一种视频格式文件。从点云数据的获取方式看,点云数据可以分为相机拍摄到的以及计算机生成的两种方式,由于统计特性的不同,其对应的压缩编码方式也可能有所区别,常用的压缩编码方式具体可以包括HEVC(HighEfficiency Video Coding,国际视频编码标准HEVC/H.265),VVC(Versatile VideoCoding,国际视频编码标准VVC/H.266),AVS(Audio Video Coding Standard,中国国家视频编码标准),AVS3(由AVS标准组推出的第三代视频编码标准),MPEG(Moving PictureExpert Group,国际视音频编解码标准)等。
在点云编码后,则需要对编码后的数据流(即点云码流)进行封装并传输给业务对象,点云文件封装是指按照封装格式(或容器,或文件容器),将已经编码压缩好的点云码流按照一定的格式存放在一个文件中,常见的封装格式包括AVI格式(Audio VideoInterleaved,音频视频交错格式)或者ISOBMFF格式。在一个实施例中,将点云码流按照如ISOBMFF的文件格式封装在文件容器中形成点云文件(也可称为媒体文件、封装文件、视频文件),该点云文件可由多个轨道(Track)组成,比如可以包含一个视频轨道、一个音频轨道以及一个字幕轨道。
编码设备(或内容制作设备)执行上述编码过程和文件封装过程后,可以将点云文件传输到解码设备(或内容消费设备),解码设备则可在进行解封装、解码等逆操作后,进行最终媒体内容的呈现。其中,点云文件可基于各种传输协议发送到解码设备,这里的传输协议可包括但不限于:DASH(dynamic adaptive streaming over HTTP,基于HTTP的动态自适应流是一种自适应比特率流技术)、HLS(HTTP Live Streaming,动态码率自适应传输)协议、SMTP(Smart Media Transport Protocol,智能媒体传输协议)、TCP(TransmissionControl Protocol,传输控制协议)等。
可以理解,解码设备的文件解封装的过程与上述的文件封装过程是相逆的,解码设备可按照封装时的文件格式要求对点云文件进行解封装,得到点云码流。解码设备的解码过程与编码过程也是相逆的,例如,该解码设备可对点云码流解码,还原出媒体内容。
为便于理解,请参见图1,图1是本申请实施例提供的一种点云媒体***的架构示意图。如图1所示,该点云媒体***可以包括编码设备(例如,编码设备100A)和解码设备(例如,解码设备100B),编码设备可以是指点云媒体的提供者(例如点云媒体的内容制作者)所使用的计算机设备,该计算机设备可以是终端(如PC(Personal Computer,个人计算机)、智能移动设备(如智能手机)等)或服务器。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。解码设备可以是指点云媒体的使用者(例如点云媒体的观看者,即业务对象)所使用的计算机设备,该计算机设备可以是终端(如PC(Personal Computer,个人计算机)、智能移动设备(如智能手机)、VR设备(如VR头盔、VR眼镜等)、智能家电、车载终端、飞行器等),该计算机设备可集成有客户端。其中,这里的客户端可以为具有显示文字、图像、音频以及视频等数据信息功能的客户端,包括但不限于多媒体客户端(例如,视频客户端)、社交类客户端(例如,即时通信客户端)、资讯类客户端(例如,新闻客户端)、娱乐客户端(例如,游戏客户端)、购物客户端、车载客户端、浏览器等。其中,该客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客户端)中的嵌入式子客户端,在此不做限定。
可以理解的是,本申请涉及点云媒体的数据处理技术可以依托于云技术进行实现;例如,将云服务器作为编码设备。云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
点云媒体的数据处理过程包括在编码设备侧的数据处理过程及在解码设备侧的数据处理过程。
在编码设备侧的数据处理过程主要包括:(1)点云媒体的媒体内容的获取与制作过程;(2)点云媒体的编码及文件封装的过程。在解码设备侧的数据处理过程主要包括:(1)点云媒体的文件解封装及解码的过程;(2)点云媒体的渲染过程。另外,编码设备与解码设备之间涉及点云媒体的传输过程,该传输过程可以基于各种传输协议来进行,此处的传输协议可包括但不限于:DASH协议、HLS协议、SMTP协议、TCP协议等。
下面将结合图1,分别对点云媒体的数据处理过程中涉及的各个过程进行介绍。
一、在编码设备侧的数据处理过程:
(1)点云媒体的媒体内容的获取与制作过程。
1)点云媒体的媒体内容的获取过程。
点云媒体的媒体内容是通过捕获设备采集现实世界的声音-视觉场景获得的。在一种实现中,捕获设备可以是指设于编码设备中的硬件组件,例如捕获设备是指终端的麦克风、摄像头、传感器等。另一种实现中,该捕获设备也可以是与编码设备相连接的硬件装置,例如与服务器相连接的摄像头,用于为编码设备提供点云媒体的媒体内容的获取服务。该捕获设备可以包括但不限于:音频设备、摄像设备及传感设备。其中,音频设备可以包括音频传感器、麦克风等。摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等。传感设备可以包括激光设备、雷达设备等。捕获设备的数量可以为多个,这些捕获设备被部署在现实空间中的一些特定位置以同时捕获该空间内不同角度的音频内容和视频内容,捕获的音频内容和视频内容在时间和空间上均保持同步。本申请实施例可以将由部署在特定位置的捕获设备所采集到的用于提供多自由度(如6DoF)观看体验的三维空间的媒体内容称作点云媒体。
例如,以获取点云媒体的视频内容为例进行说明,如图1所示,视觉场景10A(例如真实世界的视觉场景)可以由编码设备100A相连接的一组相机阵列捕获,或者,可以由与编码设备100A相连接的具有多个摄像头和传感器的摄像设备捕获。采集结果可以为源点云数据10B(即点云媒体的视频内容)。
2)点云媒体的媒体内容的制作过程。
应当理解,本申请实施例所涉及的点云媒体的媒体内容的制作过程可以理解为点云媒体的内容制作的过程,且这里的点云媒体的内容制作主要由部署在多个位置的相机或相机阵列拍摄得到的点云数据等形式的内容制作而成,比如,编码设备可以将点云媒体从三维的表示转换成二维的表示。这里的点云媒体可以包含几何信息、属性信息、占位图信息以及图集数据等,点云媒体在编码前一般需要进行特定处理,例如点云数据在编码前需要切割、映射等过程。
此外,需要说明的是,由于采用捕获设备可以捕获到全景视频,这样的视频经编码设备处理并传输至解码设备进行相应的数据处理后,解码设备侧的业务对象需要通过执行一些特定动作(如头部旋转)来观看360度的视频信息,而执行非特定动作(如移动头部)并不能获得相应的视频变化,VR体验不佳,因此需要额外提供与全景视频相匹配的深度信息,来使业务对象获得更优的沉浸度和更佳的VR体验,这就涉及6DoF制作技术。当业务对象可以在模拟的场景中较自由地移动时,称为6DoF。采用6DoF制作技术进行点云媒体的视频内容的制作时,捕获设备一般会选用激光设备、雷达设备等,捕获空间中的点云数据。
(2)点云媒体的编码及文件封装的过程。
捕获到的音频内容可直接进行音频编码形成点云媒体的音频码流。捕获到的视频内容可进行视频编码,得到点云媒体的视频码流。此处需要说明的是,如果采用6DoF制作技术,在视频编码过程中需要采用特定的编码方式(如基于传统视频编码的点云压缩方式)进行编码。将音频码流和视频码流按照点云媒体的文件格式(如ISOBMFF)封装在文件容器中形成点云媒体的媒体文件资源,该媒体文件资源可以是媒体文件或媒体片段形成的点云媒体的媒体文件;并按照点云媒体的文件格式要求采用媒体呈现描述信息(即MediaPresentation Description,简称MPD)记录该点云媒体的媒体文件资源的元数据,此处的元数据是对与点云媒体的呈现有关的信息的总称,该元数据可包括对媒体内容的描述信息、对视窗的描述信息以及对媒体内容呈现相关的信令信息等等。可以理解,编码设备会存储经过数据处理过程之后形成的媒体呈现描述信息和媒体文件资源,这里的媒体呈现描述信息和媒体文件资源可以根据一个特定的媒体文件格式,封装成一个用于下发给解码设备的点云文件。
具体的,在一种实施方式中,采集的音频会被编码成相应的音频码流,点云媒体的几何信息、属性信息以及占位图信息可以采用传统的视频编码方式,而点云媒体的图集数据可以采用熵编码方式。然后,按一定格式(如ISOBMFF)将编码的媒体封装在文件容器中并结合描述媒体内容属性的元数据和视窗元数据,根据一个特定的媒体文件格式组成一个媒体文件或者组成一个初始化片段和媒体片段。
例如,如图1所示,编码设备100A对源点云数据10B中的一个或多个数据帧进行点云媒体编码,例如,采用基于几何结构的点云压缩(Geometry-based Point CloudCompression,G-PCC),从而得到编码后的点云码流10E(即视频码流,例如G-PCC码流),包括几何码流(即对几何信息进行编码后得到的码流)以及属性码流(即对属性信息进行编码后得到的码流)。随后,编码设备100A可以根据特定的媒体文件格式(如ISOBMFF),将一个或多个编码后的码流封装成一个用于本地回放的媒体文件10F,或者,封装成一个用于流式传输的包含一个初始化片段和多个媒体片段的片段序列10Fs。此外,编码设备100A中的文件封装器也可以将相关元数据添加到媒体文件10F或片段序列10Fs中。进一步,编码设备100A可以采用某种传输机制(如DASH、SMT)将片段序列10Fs传输到解码设备100B,或者,将媒体文件10F传输到解码设备100B。在一些实施方式中,解码设备100B可以为一个播放器。
二、在解码设备侧的数据处理过程:
(3)点云媒体的文件解封装及解码的过程。
解码设备可以通过编码设备的推荐或按照解码设备侧的业务对象需求自适应动态从编码设备获得点云媒体的媒体文件资源和相应的媒体呈现描述信息,例如解码设备可根据业务对象的头部/眼睛的位置信息确定业务对象的观看方向和观看位置,再基于确定的观看方向和观看位置动态向编码设备请求获得相应的媒体文件资源。媒体文件资源和媒体呈现描述信息通过传输机制(如DASH、SMT)由编码设备传输给解码设备。解码设备侧的文件解封装的过程与编码设备侧的文件封装过程是相逆的,解码设备按照点云媒体的文件格式(例如,ISOBMFF)要求对媒体文件资源进行解封装,得到音频码流和视频码流。解码设备侧的解码过程与编码设备侧的编码过程是相逆的,解码设备对音频码流进行音频解码,还原出音频内容;解码设备对视频码流进行视频解码,还原出视频内容。
例如,如图1所示,编码设备100A中的文件封装器输出的媒体文件10F与解码设备100B中输入文件解封装器的媒体文件10F'是相同的。文件解封装器对媒体文件10F'或接收到的片段序列10F's进行文件解封装处理,并提取出编码后的点云码流10E',同时解析相应的元数据,随后可以对点云码流10E'进行点云媒体解码,得到解码后的视频信号10D',且可以从视频信号10D'重建点云数据(即还原出的视频内容)。其中,媒体文件10F和媒体文件10F'可以包括轨道格式定义,它可能包含对轨道中的样本所包含的基本流的约束。
(4)点云媒体的渲染过程。
解码设备根据媒体文件资源对应的媒体呈现描述信息中与渲染相关的元数据,对音频解码得到的音频内容及视频解码得到的视频内容进行渲染,渲染完成即实现了对该内容的播放输出。
例如,如图1所示,解码设备100B可以基于当前的观看位置、观看方向或视窗,对前述重建得到的点云数据进行渲染,并显示在头戴式显示器或任何其他显示设备的屏幕上。其中,当前的视窗可以由各种类型的传感器确定,例如,这里的传感器可以包括头部检测传感器,可能还有位置检测传感器或者眼睛检测传感器。除了被解码设备100B用来获取解码后得到的点云数据的适当部分外,当前的观看位置或观看方向也可以用于解码优化。此外,在视窗相关的传输中,当前的观看位置和观看方向也会被传递给解码设备100B中的策略模块,该策略模块可以根据当前的观看位置和观看方向确定要接收的轨道。
上述可知,解码设备可以动态地从编码设备侧获取点云媒体对应的媒体文件资源,由于媒体文件资源是由编码设备对捕获到的音视频内容进行编码以及封装后所得到的,因此,解码设备接收到编码设备返回的媒体文件资源后,需要先对该媒体文件资源进行解封装,得到相应的音视频码流,随后再对该音视频码流进行解码,最终才能将解码后的音视频内容呈现给业务对象。这里的点云媒体可以包括但不限于V-PCC(Video-based PointCloud Compression,基于传统视频编码的点云压缩)点云媒体、G-PCC(即基于几何模型的点云压缩)点云媒体。
在本申请实施例中,可以将从三维空间中捕获到的点云中的每个点(可简称为点云点)的表示数据统称为点云数据,也就是说,每个点云点都可以用对应的点云数据来进行表示。对于点云数据,从数据的获取方式划分,可以分为密集型点云和稀疏型点云;从数据的时序类型划分,可以分为静态点云和动态点云,本申请实施例对点云数据类型不做限定。可以理解,这里的点云数据可以包括每个点云点的几何信息和属性信息,其中,几何信息具体可以包括点云点在三维空间中的三维位置信息(也可称为坐标位置信息),例如可以用点云点在三维空间所在坐标系下的x、y、z坐标来表示其几何位置,此外,还可以将每个点云点的坐标位置信息统称为点云数据的空间坐标位置信息;属性信息可以包括点云点的属性,如对应的标量特征(如反射率)和矢量特征(如颜色)。
其中,目前主流的点云编码技术,针对不同的点云数据类型,可分为基于几何结构的点云编码以及基于投影的点云编码,例如,在基于几何结构的点云编码中,可以利用特定的几何结构(如八叉树)对点云数据进行表示,并对相应的几何信息和属性信息采用不同的编码处理流程。需要说明的是,本申请实施例将在点云编解码层面进行相关优化,为便于理解,下面将以基于几何结构的点云编码为例,对点云编解码的主要处理过程进行阐述。
请一并参见图2a,图2a是本申请实施例提供的一种点云编码框架示意图。该点云编码框架适用于MPEG中的基于几何结构的点云编码G-PCC以及AVS中的点云编码标准AVS-PCC,且G-PCC和AVS-PCC均可针对静态的稀疏型点云。如图2a所示,该点云编码框架具体可以包括几何信息编码(也可称为几何结构编码)和属性信息编码,下面将结合图2a,分别对几何信息编码和属性信息编码的主要操作和处理进行介绍。
一、几何信息编码的主要处理过程:
(1)预处理(Pre-processing):对几何信息的预处理可以包括坐标变换(Transform coordinates)和体素化(Voxelize),即通过缩放和平移的操作,将3D空间中的点云数据的空间坐标位置信息由浮点数形式转换成整数形式,并将其最小几何位置移至坐标原点处。首先,可以对原始的几何信息(即原始的空间坐标位置信息)进行坐标变换,以使坐标变换后的所有点云点均包含在一个多面体(如六面体)包围盒中,该多面体包围盒也可称为点云包围盒。其中,可以通过原始的几何信息来确定该点云包围盒的原点和尺寸,例如,假设输入点云的k-th点(即第k个点云点)的浮点类型的坐标(即k-th点的空间坐标位置信息)表示为(xk,yk,zk),其中,k=0,…,K-1,K是点云中的点数,坐标点(xmin,ymin,zmin,)和(xmax,ymax,zmax,)可表示如下:
xmin=min(x0,x1,…,xK-1) (1)
ymin=min(y0,y1,…,yK-1) (2)
zmin=min(z0,z1,…,zK-1) (3)
xmax=max(x0,x1,…,xK-1) (4)
ymax=max(y0,y1,…,yK-1) (5)
zmax=max(z0,z1,…,zK-1) (6)
其中,函数min(s0,s1,…,sK-1)表示取当前输入的最小值,函数max(s0,s1,…,sK-1)表示取当前输入的最大值。点云包围盒表示包含输入点云中所有点的最大多面体(例如,长方体)。其中,点云包围盒的原点(xorigin,yorigin,zorigin)可以计算如下:
xorigin=int(floor(xmin)) (7)
yorigin=int(floor(ymin)) (8)
zorigin=int(floor(zmin)) (9)
相应的,该点云包围盒在x、y、z方向上的尺寸可以计算如下:
BoudingBoxSizex=int(xmax-xorigin)+1 (10)
BoudingBoxSizey=int(ymax-yorigin)+1 (11)
BoudingBoxSizez=int(zmax-zorigin)+1 (12)
其中,int(s)是取整函数,floor(s)函数返回小于或等于s的最大整数值。
为便于理解,请一并参见图3,图3是本申请实施例提供的一种点云包围盒的示意图。如图3所示的点云包围盒是一个包含有所有相关点云点的长方体,在一些场景中构建的点云包围盒还可以为长宽高均相等的正方体,本申请实施例对点云包围盒的形状不做限定。
其次,可以对坐标变换后的几何信息进行量化(Geometry quantization),这里的几何量化主要起到缩放的作用(如对点云点的坐标进行四舍五入),其中,量化的精细程度通常由量化参数(Quantization Parameter,QP)来决定,QP取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。在点云编码中,几何量化是直接对点的坐标信息进行的。可以理解,在这样的量化取整之后,可能会存在位置相同的多个点云点(即具有相同的几何信息),称为重复点,此时可以根据相关参数来决定是否删除重复点。进一步,可以将量化位置相同、属性不同的多个点合并为一个点,与单个点相关的属性可由属性变换模块计算。几何量化、移除重复点和为剩余点分配属性的过程可称为体素化。
(2)几何编码(Geometry encoding):几何编码中包含多种模式,可在不同条件下使用。
(a)基于划分树的几何编码:本申请实施例中的划分树具体可以包括八叉树(Octree,OT)、四叉树(Quad-tree,QT)、二叉树(Binary-tree,BT)等多种类型的树形数据结构,其中,八叉树是最常见的三维点云几何编码方法,如目前在G-PCC和AVS-PCC中主要采用八叉树结构对点云进行划分,而在三维场景的包围盒长宽高不对称时,在某些情况下八叉树可以简化为四叉树或者二叉树划分,在本申请实施例中,可以将基于八叉树的几何编码、基于四叉树的几何编码、以及基于二叉树的几何编码统称为划分树编码方法。为便于理解,此处以八叉树为例进行介绍。对3D空间中的点云数据,八叉树划分方式是逐层次地对预先设定的点云包围盒进行均匀划分,如果三维场景的点云包围盒是个大小为(2N-1,2N-1,2N-1)的立方体(即正方体),将该立方体称为八叉树的根节点,对该根节点进行八叉树划分,即该立方体可被递归地划分成8个子立方体,对应于八叉树的8个子节点(即各子立方体称为根节点的子节点),如果其中一个子节点中包含至少一个三维点(即点云点),那么这个子节点会进一步划分为8个更小的子节点(即子立方体),直到划分到最小单元,即1×1×1大小的子立方体(即单位立方体),整个划分过程采用广度优先遍历(Breath First Search,BFS,也可称为宽度优先搜索或横向优先搜索)。这里N表示最大的八叉树划分层数。这样,除了叶节点(即单位立方体),八叉树中的每个节点都具有八个子节点。对八叉树各个子节点各以1个比特来表示其是否被占用(即是否包含点云中的点),例如,以第一码值(例如,‘1’)表示子节点被占用(即该子节点至少包含点云中的一个点),以第二码值(例如,‘0’)表示子节点不被占用(即该子节点不包含任何点),该比特可称为占位码或占用码(occupancy code),可以理解,被占用的子节点会进一步划分成八个子节点,最终可基于获得的占位码信息确定几何信息的码流。此外,本申请实施例对第一码值和第二码值的具体取值不做限定。
其中,可以基于莫顿码(Morton code)实现八叉树的构建,例如,可将点云数据的3D坐标信息通过查询莫顿顺序表或者通过相关计算,转换成对应的莫顿码,进而根据每一位莫顿码的排序,按照广度优先从根节点(即第0层)开始获得每层八叉树的对应节点,直到所有的节点成为叶节点时完成八叉树的构建。可以理解的是,在每次八叉树节点划分时,该节点的占位码会包含八个比特(b7b6b5b4b3b2b1b0),每个比特分别表示该节点的八个子节点的占用情况。
为便于理解,请参见图4a-图4b,图4a-图4b是本申请实施例提供的一种八叉树划分示意图。如图4a所示的立方体可以被划分为8个子立方体,对应于八叉树的8个子节点,假设其占位码可以按照如图4a所示的顺序编码,即从位置0开始按顺序编码到位置7,可以理解,实际应用中还可以按照需要设计其他编码顺序,这里不做限定。如图4b所示,假设在该立方体对应的节点中,位置0处的子节点(可称为子节点0)以及位置7处的子节点(可称为子节点7)被占用,则其对应的占位码可为10000001;进一步地,可以分别将位置0处的子节点以及位置7处的子节点划分为8个更小的子节点,从而根据各子节点的占用情况得到子节点0和子节点7对应的占位码,例如,子节点0对应的占位码为00011000,子节点7对应的占位码为10001000。
可以理解的是,如果三维场景的点云包围盒长宽高不对称,即点云包围盒是个大小为的长方体,其中,Dx≠Dy≠Dz,如图5所示,图5是本申请实施例提供的一种不对称点云包围盒的示意图,图5所示的点云包围盒可以是任意大小的长方体,以便更好地适应于三维场景或对象的形状。由于点云包围盒可能不是一个对称的立方体,因此在某些情况下,节点可能不会(或不能)沿着所有方向划分,也就是说,此时八叉树可以简化为四叉树或二叉树划分,为便于理解,请一并参见图6a,图6a是本申请实施例提供的一种四叉树划分示意图。如图6a所示,四叉树划分可以沿着x、y、z三个方向中的任意两个方向进行划分,例如图6a依次展示了沿着x-y、x-z、y-z方向进行四叉树划分的结果,可以理解,四叉树编模式中只需要编码4个比特,比八叉树编码节省4个比特,例如,与上述图4a中所示的八叉树划分方式相比,如图6a中的第一个图所示,沿x-y轴进行四叉树划分所得到的占位信息,可以只对位置0、2、4、6上对应的比特进行编码,而跳过的位置1、3、5、7上对应的比特可以在解码端推测出为0。类似的,请一并参见图6b,图6b是本申请实施例提供的一种二叉树划分示意图。如图6b所示,二叉树划分可以沿着x、y、z三个方向中的任意一个方向进行划分,例如图6b依次展示了沿着x、y、z方向进行二叉树划分的结果,可以理解,二叉树编模式中只需要编码2个比特,比八叉树编码节省6个比特,例如,与上述图4a中所示的八叉树划分方式相比,如图6b中的第一个图所示,沿x轴进行二叉树划分所得到的占位信息,可以只对位置0和4上对应的比特进行编码,而跳过的其余6个比特可以在解码端推测出为0。
可以理解的是,在实际应用中可以根据需要制定相应的划分策略,以在满足指定条件时执行相应的二叉树、四叉树或八叉树划分,本申请实施例对采用的划分策略不做限定。
(b)基于预测树的几何编码(Predictive tree):也可称为预测几何编码(Predictive geometry coding),是一种与基于划分树的几何编码相并列的方案,具有支持低延迟的应用程序或流媒体、低复杂度解码等有点,它首先在点云上定义一个预测结构,这种结构可以用一个预测树来描述,其中点云中的每个点都与预测树的一个节点相关联。每个节点只能以预测树中的一个或多个祖先(ancestor,即在预测树中位于该节点前面的节点)进行预测,具体可根据指定的预测模式进行选择,这里对采用的具体预测模式不进行限定。
例如,可选的,在AVS中,预测树可采取单链结构,为便于理解,请参见图7a,图7a是本申请实施例提供的一种AVS预测树编码结构示意图。如图7a所示,首先可以基于指定的根节点选取规则来选取根节点,然后在剩余所有点所确定的KD(K-Dimensional)树中搜索与根节点最近的点作为根节点的唯一子节点,同时在KD树中去除该子节点;再按同样的方法在KD树中搜索该子节点最近邻点作为其子节点;以此类推,完成整个单链预测树的构造。在所有点链接成为一个单一的预测树后,每个点均可以其前一个点的信号值(即坐标信息)进行预测。该方法作为点云信号预测的一种选项,既可设置为作用于整体原始点云数据,也可以作用于八叉树子节点(即与基于划分树的几何编码相结合)或者其他方式获得的点云数据子集,这里不做限定。
又例如,可选的,在MPEG中,采用parent-child结构构建预测树,为便于理解,请参见图7b,图7b是本申请实施例提供的一种MPEG预测树编码结构示意图。如图7b所示,同样可以先基于指定的根节点选取规则选取根节点(Root vertex),然后可按顺序逐个点搜索已构建树中的最近邻点作为parent(即祖先),若parent所具有的child(可称为子节点)个数小于预设的maxChildNum(即最大子节点数,也可称为子节点数量阈值),则可作为该节点的一个child点(如图7b中具有一个或多个child(或children)的树枝节点(Branchvertex)),链接入预测树,因此该预测树会出现多链结构。此外,G-PCC中的预测编码技术,可利用点间的距离搜索建立预测树。其中,每一个点都与其他点相连接,并指示每个点链接的点个数和其所采用的四种预测模式之一,这四种预测模式如下:
1)不预测;
2)采用parent点预测,即前一个点;
3)采用parent点和grandparent点预测;
4)采用parent,grandparent和grand-grandparent点预测。
可以理解,预测树中的每个节点均可以根据其所采用的预测模式进行预测,这里对所采用的具体预测模式不做限定。对于预测树的某个节点x,在确定其参考点(如该节点x的前一个点)后,可以利用该参考点的几何坐标重建值来对该节点x进行预测,从而得到预测几何坐标,进而可以将该节点x的原始几何坐标(即节点x的坐标位置信息)和预测几何坐标进行差分,从而得到对应的残差信息,本申请实施例可以将该残差信息称为预测树残差信息,最终可基于得到的预测树残差信息确定几何信息的码流。
(c)基于三角表示的几何编码(Trisoup):将点云划分为一定大小的块(block),定位点云表面在块的边缘的交点并构建三角形,通过编码交点位置实现几何信息的压缩。
(3)几何熵编码(Geometry entropy encoding):针对划分树(如八叉树)的占位码信息(也可称为划分树占位信息)或预测树残差信息,进行统计压缩编码,最后可输出二值化(0或1)的压缩码流(即几何码流)。这里的统计压缩编码是一种无损编码方式,可以有效地降低表达同样的信号所需要的码率。常用的统计压缩编码方式如基于上下文的二值化算术编码(CABAC,Content Adaptive Binary Arithmetic Coding)。
二、属性信息编码的主要处理过程:
(1)属性重上色(Recoloring):有损编码情况下,在几何信息编码后,需编码设备解码并重建几何信息,即恢复3D点云的各点坐标信息。进而可以在原始点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息(即将未编码的属性信息与重建的几何信息对应起来)。
(2)属性变换编码(Attribute coding或Transform):属性变换编码中包含四种属性变换模式,可在不同条件下使用。
(a)预测:根据距离或空间关系等信息,在已编码点中确定待编码点的邻居点作为预测点,根据设定的准则计算该点的预测值。计算当前点属性值与预测值之间的差值作为属性残差信息,对属性残差信息进行量化、变换(可选)及熵编码;
(b)变换:利用DCT(Discrete Cosine Transform,离散余弦变换)、Haar(哈尔变换,是一种正交归一化变换)等变换方法,对属性信息进行分组、变换,对变换系数做量化;通过逆量化,逆变换后得到属性重建值;计算原始属性和属性重建值的差值得到属性残差信息并对其量化;将量化后的变换系数和属性残差信息编码;
(c)预测变换:利用预测获得的残差值信号进行变换;
(d)变换预测:将变换后的参数信息进行预测;
(3)属性量化(Attribute quantization):量化的精细程度通常由量化参数(QP)来决定。例如,在预测变换编码及提升变换编码中,是对残差值进行量化后进行熵编码;在RAHT中,是对变换系数进行量化后进行熵编码。
(4)属性熵编码(Attribute entropy coding):量化后的属性残差信息或变换系数一般使用行程编码(run length coding)及算数编码(arithmetic coding)实现最终的压缩,从而得到属性码流。相应的编码模式、量化参数等信息也同样采用熵编码器进行编码。
进一步的,请一并参见图2b,图2b是本申请实施例提供的一种点云解码框架示意图。类似的,该点云解码框架适用于G-PCC以及AVS-PC。如图2b所示,该点云解码框架具体可以包括几何码流解码和属性码流解码,可以理解的是,解码过程与编码过程互逆,即几何码流解码过程与上述几何信息编码过程是相逆的,属性码流解码与上述属性信息编码过程是相逆的。下面将结合图2b,分别对几何码流解码和属性码流解码的主要操作和处理进行介绍。
一、几何码流解码的主要处理过程:
根据上述几何信息编码过程,可以理解,解码设备在获得几何码流(即前述压缩码流)后,首先进行几何熵解码,得到相应的划分树占位信息或预测树残差信息,从而可以基于得到的划分树占位信息重构划分树,或者,基于得到的预测树残差信息重构预测树,进而可以基于重构的划分树或预测树得到体素化后的几何信息(如量化后的几何信息),对其进行后处理(包含逆体素化和逆坐标变换)操作后,即可得到重建的3D点位置信息(即重建的几何信息)。
二、属性码流解码的主要处理过程:
根据上述属性信息编码过程,可以理解,解码设备在获得属性码流后,首先对属性码流进行熵解码,得到各种模式信息和量化后的属性信息,对其进行反量化后得到属性残差信息或变换系数,从而可以根据采用的属性变换模式确认参考信号,得到重建的属性信息,并按顺序与重建的几何信息一一对应,从而输出重建的点云数据。
可以理解的是,在上述图2a所示的点云编码框架中,可以采用块结构编码方法,该方法引入类似于视频编码中编码块的概念,将三维空间划分成若干大小的不重叠的编码宏块(LCU),每个宏块作为基本的编码单元,这里对划分得到的宏块数量不做限定。用户可以设置划分树(如八叉树)划分深度,或者通过相关参数(如nodeSizeLog2,即节点尺寸参数),来控制3D宏块的大小,这里对宏块的大小不做限定。例如,当八叉树划分到每个节点的大小为并且满足下列条件时:
nodeSizeLog2>max(dx,dy,dz) (13)
每个节点按照宏块进行编码。其中,这里的划分深度表示几何划分的深度,根节点的深度可定义为0,每划分一次深度值增加1。
为便于理解,请参见图8,图8是本申请实施例提供的一种块结构编码示意图。如图8所示,在2D四叉树划分场景下,假设从第二层开始按照宏块顺序编码,每一个宏块可以看作一个单独的树划分结构。目前实现中,每个编码宏块内部可采用广度优先遍历,例如,在宏块1内部,先遍历第二层(节点1),再遍历第三层(节点2、节点3),第四层(节点4、节点5)。这种块结构编码方法具有很高的灵活性,例如,对每个宏块,可以根据其特性采用不同的几何编码方式,例如,对图8所示的宏块1采用基于划分树的几何编码,对图8所示的宏块2采用基于预测树的几何编码,本申请实施例对宏块所采用的几何编码方式不做限定。此外,也可以在对一个宏块几何编码完后进行属性编码,这样不需要等待整个点云几何编码后才能进行属性编码,从而可以提升编码方式的灵活性。
基于此,针对不同宏块采用不同的几何编码方式时所造成的编解码效率低下的问题,本申请实施例提供了一种基于混合树结构的几何编解码优化方法,在划分树编码时,可利用预测树的编码信息推导作为邻居节点及子节点的占位情况,从而提高划分树占位码的编码效率;在预测树编码时,可利用划分树的占位情况,提高预测树的编码效率。类似的,在划分树解码或预测树解码时,也可以相应地提高解码效率。
为便于理解和说明,本申请实施例将划分树和预测树统称为几何结构(或称为树形数据结构),二者具有不同的结构类型,其中,可以将划分树对应的结构类型称为划分树类型,将预测树对应的结构类型称为预测树类型,且这里的划分树可包含但不限于八叉树、四叉树、二叉树等基于空间划分的几何结构。需要说明的是,由于编码过程与解码过程互逆,因此本申请实施例中的很多相似名称实际上是同一信息或内容在编码端和解码端的区别表述,例如,在编码端,本申请实施例可以将当前待编码的节点称为待编码节点,该待编码节点可以为当前待编码宏块中的任意一个节点;同时,可以将与待编码节点具有空间相邻关系且已经编码过的节点称为已编码邻居节点。类似的,在解码端,本申请实施例可以将当前待解码的节点称为待解码节点,该待解码节点可以为当前待解码宏块中的任意一个节点;同时,可以将与待解码节点具有空间相邻关系且已经解码过的节点称为已解码邻居节点。其中,需要注意的是,本申请实施例中的空间相邻关系可以是多种多样的,例如共面、共线、共点等,因此已编码邻居节点(或已解码邻居节点)的邻居节点类型也存在多种可能,这里不做限定。
可以理解的是,在编码端,在待编码节点为点云数据的第一几何结构中的第一节点时,编码设备可以确定与待编码节点具有空间相邻关系的已编码邻居节点;进一步地,在已编码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,编码设备可以确定已编码邻居节点的目标占位信息,进而可以基于目标占位信息对待编码节点的节点几何信息进行编码,从而得到点云数据的压缩码流(即前述几何码流)。这里的节点几何信息可包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。其中,第一几何结构和第二几何结构可具有不同的结构类型,这里对二者的具体结构类型不做限定,例如,在第一几何结构的结构类型为划分树类型时,第二几何结构的结构类型为预测树类型,且此时待编码节点的节点几何信息为划分树占位信息;又例如,反过来,在第一几何结构的结构类型为预测树类型时,第二几何结构的结构类型为划分树类型,且此时待编码节点的节点几何信息为预测树残差信息;其中,第一节点可以为在第一几何结构中当前待编码的节点,相应的,第二节点可以为在第二几何结构中与第一节点具有空间相邻关系且已经编码过的节点。由此可见,在对点云数据的几何信息进行编码的过程中,当编码到的任意一个待编码节点所在的几何结构(即上述第一几何结构)与相应的已编码邻居节点所在的几何结构(即上述第二几何结构)不相同时,编码设备可以充分利用该已编码邻居节点的目标占位信息来对该待编码节点的节点几何信息进行编码,而非只考虑相同结构类型的几何结构中的邻居节点或该待编码节点内部的相关信息,从而可以在第一几何结构为划分树、且第二几何结构为预测树时,提升划分树占位信息的编码效率,或者,在第一几何结构为预测树、且第二几何结构为划分树时,提升预测树残差信息的编码效率,进而可以从整体上提升几何信息的编码效率。
类似的,可以理解的是,在解码端,解码设备可以获取点云数据的压缩码流,且在待解码节点为该点云数据的第一几何结构中的第一节点时,可以确定与待解码节点具有空间相邻关系的已解码邻居节点;进一步,在已解码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,解码设备可以确定已解码邻居节点的目标占位信息,进而可以基于目标占位信息对压缩码流中的待解码节点的节点几何信息进行解码;其中,该节点几何信息可包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。由此可见,在对压缩码流进行解码的过程中,当解码到的任意一个待解码节点所在的几何结构(即上述第一几何结构)与相应的已解码邻居节点所在的几何结构(即上述第二几何结构)不相同时,解码设备可以充分利用该已解码邻居节点的目标占位信息来对该待解码节点的节点几何信息进行解码,而非只考虑相同结构类型的几何结构中的邻居节点或该待解码节点内部的相关信息,从而可以在第一几何结构为划分树、且第二几何结构为预测树时,提升划分树占位信息的解码效率,或者,在第一几何结构为预测树、且第二几何结构为划分树时,提升预测树残差信息的解码效率,进而可以从整体上提升压缩码流的解码效率。
综上可知,本申请实施例提供的一种基于混合划分树和预测树的点云几何编解码优化方法,可以基于预测树编码的节点,提高划分树的占位码编码效率;反之,也可以基于划分树的占用码情况,提高预测树的预测效率。
应当理解,本申请实施例提供的方法可以应用于3D点云编解码的产品中,可以包括但不限于点云媒体***的服务器端(即编码设备侧)、播放器端(即解码设备侧)以及中间节点(例如,SMT(Smart Media Transport,智能媒体传输)接收实体、SMT发送实体)等环节。其中,编码设备进行几何编码优化的具体过程,以及解码设备进行几何解码优化的具体过程,可以参见下述图9-图16所对应实施例的描述。
进一步地,请参见图9,图9是本申请实施例提供的一种点云数据处理方法的流程示意图。该方法可由点云媒体***中的解码设备(例如,上述图1所对应实施例中的解码设备100B)来执行,比如,该解码设备可以为集成有客户端(例如视频客户端)的终端。该方法至少可以包括以下步骤S101-步骤S104:
步骤S101,获取点云数据的压缩码流;
可以理解的是,编码设备在对点云数据进行编码后,可以得到相应的点云码流,并可将其封装为点云文件发送至解码端进行处理,其中,该点云码流可包括对几何信息进行编码后得到的压缩码流(即几何码流)以及对属性信息进行编码后所得到的属性码流。相应的,解码设备在接收到该点云文件后,可以对其进行解封装,从而得到相应的点云码流,进而可在对该点云码流进行解码时获取其中的压缩码流。其中,编码设备生成压缩码流的具体过程可以参见下述图16所对应实施例中的描述。此外,需要说明的是,由于本申请实施例重点针对几何编解码过程进行优化,因此这里对属性编解码的具体过程不再进行赘述。
步骤S102,在待解码节点为点云数据的第一几何结构中的第一节点时,确定与待解码节点具有空间相邻关系的已解码邻居节点;
为便于理解和区分,本申请实施例可以将当前待解码的几何结构称为第一几何结构,相应的,在该第一几何结构中待解码的节点可称为第一节点,这里将不对第一几何结构的结构类型进行限定,也就是说,第一几何结构的结构类型既可以为划分树类型,也可以为预测树类型。而无论第一几何结构的结构类型是什么,在待解码节点为第一几何结构中的第一节点时,作为待解码节点的第一节点始终可以由点云数据的空间坐标位置信息所确定,且该确定过程已在编码设备侧执行,即编码设备在对点云数据进行编码时,可以对所有点云数据的原始坐标位置信息进行预处理,并可基于预处理后得到的坐标位置信息构建需要的划分树或预测树,从而可以确定包含该第一节点在内的所有相关节点(具体过程可以参见上述图2a所对应实施例中的描述)。
可以理解,在待解码节点为上述第一节点时,与该待解码节点具有空间相邻关系的已解码邻居节点可以存在多种情况。例如,从空间结构上看,这里的空间相邻关系可以包括与待解码节点的父节点具有直接相邻关系时的父节点层相邻关系(也可理解为与待解码节点具有间接相邻关系)和与待解码节点(也可称为待解码子节点)具有直接相邻关系时的子节点层相邻关系中的一种或多种,且这里对待解码节点在其父节点中的位置不做限定,例如,假设上述图4a所示的节点为待解码节点的父节点,那么该待解码节点可以位于位置0~位置7中的任意一个位置。其中,该父节点层相邻关系可以包括但不限于与待解码节点的父节点共面的第一共面相邻关系、与待解码节点的父节点共线的第一共线相邻关系等,相应的,本申请实施例可以将与待解码节点具有父节点层相邻关系、且已经解码的节点统称为邻居父节点。其中,该子节点层相邻关系可以包括但不限于与待解码节点共面的第二共面相邻关系、与待解码节点共线的第二共线相邻关系、与待解码节点共点的共点相邻关系以及在指定方向上与待解码节点相距指定距离的近距相邻关系等,相应的,本申请实施例可以将与待解码节点具有子节点层相邻关系、且已经解码的节点统称为邻居子节点。可以理解,后续解码设备就可以利用这些邻居父节点和邻居子节点中的任意一种或多种已解码邻居节点的相关信息(如占位信息)来对待解码节点进行解码,且此处对已解码邻居节点所在的几何结构的结构类型也不进行限定,也就是说,已解码邻居节点既可以为划分树节点,也可以为预测树节点。
为便于理解,请一并参见图10,图10是本申请实施例提供的一种父节点层相邻关系的示意图。如图10所示,假设最中间的黑色填充块为待解码节点的父节点(即图10中莫顿序号为13的节点),以该父节点为中心,这种方式拥有更大的感受野,可以利用其周围已解码的最多18个相邻父块(即邻居父节点),具体可包括与该父节点共面的6个共面邻居父节点(如图10中莫顿序号为4的节点)以及与该父节点共线的12个共线邻居父节点(如图10中莫顿序号为1的节点),可以理解,这里的共面邻居父节点与待解码节点的父节点具有上述第一共面相邻关系,而共线邻居父节点则与待解码节点的父节点具有上述第一共线相邻关系。实际应用中,可以从图10所示的这18个邻居父节点中确定当前待解码节点需要的已解码邻居节点。
为便于理解,请一并参见图11,图11是本申请实施例提供的一种子节点层相邻关系的示意图。如图11所示,以x维度上的节点边长最短为例,假设图中的灰色节点为当前待解码子节点(即待解码节点),而虚线框节点为当前节点(即待解码节点的父节点),其余实线框节点为各待解码子节点选取的邻居子节点(也可称为待解码子节点的参考节点),图11示例性地展示了在八叉树广度优先遍历的划分方式下,各位置上的待解码子节点(即子节点0-子节点7)的邻居子节点,例如,每个位置上的待解码子节点的邻居子节点具体可以包括与该待解码子节点同层的左前下方向3个共面邻居子节点、3个共线邻居子节点、1个共点邻居子节点以及在节点边长最短的维度(如x维度)的负方向上,距离待解码子节点2个子节点边长处的近距邻居子节点。其中,左前下方向可以为待解码节点所在坐标系中各维度坐标轴的负方向。可以理解,这里的共面邻居子节点与待解码子节点具有上述第二共面相邻关系,共线邻居子节点与待解码子节点具有上述第二共线相邻关系,共点邻居子节点与待解码子节点具有上述共点相邻关系,近距邻居子节点与待解码子节点具有上述近距相邻关系。可选的,待解码子节点还可以有位于其他位置上的邻居子节点,这里不再一一列举。
可以理解,对于任意一个待解码节点来说,解码设备可以根据解码需要确定与该待解码节点具有某种空间相邻关系的已解码邻居节点,这里的已解码邻居节点的数量可以为一个或多个,且不同已解码邻居节点与待解码节点之间的空间相邻关系可以为上述列举的任意一种空间相邻关系,这里不做限定。此外,本申请实施例对已解码邻居节点所在几何结构的结构类型也不进行限定。
需要注意的是,以第一几何结构中的第一节点为节点x为例,在该节点x为划分树中的节点(即划分树节点)时,由于划分树节点具有真实的父节点、子节点等层级划分,因此该节点x的父节点可理解为该节点x所处的多面体(可参见上述图4a-图4b所对应实施例中的描述);而在该节点x为预测树中的节点(即预测树节点)时,由于预测树节点不存在父节点、子节点等层级划分,因此该节点x的父节点可理解为该节点x所处的宏块(可参见上述图7a-图7b所对应实施例中的描述)。
步骤S103,在已解码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,确定已解码邻居节点的目标占位信息;
由上述步骤S102可知,对于任意一个待解码节点来说,与其具有某种空间相邻关系的已解码邻居节点可能存在多种情况,即待解码节点所在的几何结构的结构类型与其已解码邻居节点所在的几何结构的结构类型可以相同,也可以不相同,例如,假设待解码节点为节点A1时,节点A1不论是划分树节点还是预测树节点,若其已解码邻居节点的数量为多个(如包括节点A2、节点A3等),则这多个已解码邻居节点可能只包括一种邻居节点,例如节点A2和节点A3均为划分树节点或者均为预测树节点;又或者,这多个已解码邻居节点可能同时包括多种邻居节点,例如节点A2为划分树节点,节点A3为预测树节点。本申请实施例主要针对待解码节点所在的几何结构的结构类型与已解码邻居节点所在的几何结构的结构类型不相同时的解码方式进行优化,而对于待解码节点所在的几何结构的结构类型与已解码邻居节点所在的几何结构的结构类型相同时的场景,仍可沿用现有的解码方式,本申请实施例对此不进行赘述。基于此,以一个已解码邻居节点为例,当该已解码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,解码设备可以确定该已解码邻居节点的目标占位信息,以为后续对待解码节点的解码提供更多有效信息。其中,这里的第二几何结构是指具有与第一几何结构不相同的结构类型的几何结构,相应的,第二节点是指在该第二几何结构中与第一节点具有某种空间相邻关系、且已经解码的节点。
可以理解的是,本申请实施例针对第一几何结构和第二几何结构对应的具体结构类型,提供了两种不同的混合解码优化策略,下面将分别对这两种混合解码优化策略进行阐述。
可选的,在一种实施方式中,在第一几何结构的结构类型为划分树类型时,作为待解码节点的第一节点为划分树类型所对应的划分树中的节点(即划分树节点),且在第二几何结构的结构类型为预测树类型时,作为已解码邻居节点的第二节点为预测树类型所对应的预测树中的节点(即预测树节点)。此时,在空间相邻关系中,可以将位于划分树中的第一节点与位于预测树中的第二节点之间的空间相邻关系作为第一空间相邻关系,这里的第一空间相邻关系可以包括上述举例的父节点层相邻关系和子节点层相邻关系中的任意一种或多种。在确定已解码邻居节点为上述预测树中的第二节点时,进一步,解码设备可以基于位于该预测树中的第二节点的第一空间解码数据信息,获取与第一节点相关联的第一混合解码优化策略,进而可以基于第一混合解码优化策略确定已解码邻居节点的目标占位信息。其中,这里的第一空间解码数据信息可以包括第二节点本身的一些空间关系或相关的解码信息;由于预测树节点本身不具备真实的占位码信息(因为实际上没有对预测树节点进行划分),因此本申请实施例可基于第一混合解码优化策略对作为已解码邻居节点的预测树节点进行占位情况的推断或判定;且本申请实施例中的第一混合解码优化策略,针对不同的情况(如第二节点所具备的多种第一空间解码数据信息)会对应于不同的策略内容,这些策略内容可以同时使用,也可以分别使用,这里不进行限定。
为便于理解,请一并参见图12,图12是本申请实施例提供的一种基于块结构的混合树编码的场景示意图。如图12所示,以划分树为八叉树为例,图中的灰色填充块表示预测树节点(例如节点B),无颜色填充块表示划分树节点(例如节点A),其余未填充部分均为空(即占位码为0)。假设当前待解码节点为节点A,解码设备可以通过查找对应已解码邻居节点(例如,节点B)的占位信息(即目标占位信息)的情况,来对节点A的占位码(即划分树占位信息)进行解码。此外,可选的,解码设备可以根据已解码邻居节点的占位信息确定节点A的上下文模型来对节点A的占位码进行解码。
其中,可选的,解码设备可以将待解码节点的父节点所在的划分层确定为父节点层(如上述节点A的父节点所在的划分层),且可以基于第一混合解码优化策略,在该父节点层中,查找该待解码节点的父节点的邻居父节点;若查找到的邻居父节点中存在位于预测树中的邻居父节点,则可以将该位于预测树中的邻居父节点作为已解码邻居节点,此时,上述第一空间相邻关系具体可包括该已解码邻居节点与待解码节点之间的父节点层相邻关系(如前述第一共面相邻关系、第一共线相邻关系等);随后,可以将该已解码邻居节点的占位码的取值设置为第一码值(例如,1),且可以基于具有第一码值的已解码邻居节点的占位码确定已解码邻居节点的目标占位信息。以上述图12所示的节点A为例,解码设备可以查找节点A的父节点的邻居父节点的占位情况,若查找到的邻居父节点为预测树节点(如上述节点B的父节点,这里作为邻居父节点的预测树节点可理解为LCU层级),则其占位情况为1。
可选的,解码设备可以将待解码节点所在的划分层(如上述节点A所在的划分层)作为子节点层,进而可以基于第一混合解码优化策略,在该子节点层中,查找待解码节点的邻居子节点;若查找到的邻居子节点(如上述节点B)的父节点中存在位于预测树中的父节点,则可以在将位于预测树中的父节点作为已解码邻居节点时,将该已解码邻居节点中的邻居子节点作为目标邻居子节点(如上述节点B),随后可以基于目标邻居子节点的占位码确定已解码邻居节点的目标占位信息。以上述图12所示的节点A为例,解码设备可以查找节点A的邻居子节点的占位情况,设当前节点A所在的划分深度为D(D为正整数),则在节点A的部分或全部邻居子节点(如上述节点B)的父节点为预测树节点时,可以获取这些位于预测树节点中的邻居子节点的占位情况用于解析当前节点A的占位码。对于这类情况,本申请实施例提供的第一混合解码优化策略包括但不限于以下内容:
(1)目标邻居子节点的占位码的取值可以为默认码值,该默认码值可以为第一码值(如1)或第二码值(如0)。也就是说,解码设备可以默认目标邻居子节点的占位码,例如直接默认上述节点B的占位码为1或0。
(2)目标邻居子节点的占位码可以由已解码邻居节点所属的编码单元(如宏块)所采用的划分树类型所确定,也就是说,在采用块结构编码方法时,解码设备可以根据块结构划分的方式来判断目标邻居子节点的占位码。其中,可选的,在待解码节点所在的划分深度D处于第一划分范围时,划分树类型是由第一几何划分策略所确定的,这里的第一几何划分策略可以包含用于对点云包围盒进行划分的二叉树划分策略和四叉树划分策略中的一种,其中,采用二叉树划分策略对点云包围盒进行划分时所确定的划分树类型为二叉树划分类型,类似的,采用四叉树划分策略对点云包围盒进行划分时所确定的划分树类型为四叉树划分类型。可选的,在划分深度处于第二划分范围时,划分树类型是由第二几何划分策略所确定的,这里的第二几何划分策略可以包含用于对点云包围盒进行划分的二叉树划分策略、四叉树划分策略和八叉树划分策略中的一种,其中,采用八叉树划分策略对点云包围盒进行划分时所确定的划分树类型为八叉树划分类型。其中,点云包围盒是对点云数据的空间坐标位置信息进行预处理后所得到的(可参见上述图2a所对应实施例中的相关描述)。可以理解,上述第一划分范围不同于第二划分范围,这里对具体的划分范围不做限定,同时,对目标邻居子节点的占位码与划分深度为D时的划分树类型之间的判定条件也不做限定,例如,若划分深度为D时的划分树类型为二叉树划分类型,则目标邻居子节点的占位码的取值可以为第一码值(如1);又例如,若划分深度为D时的划分树类型为八叉树划分类型,则目标邻居子节点的占位码的取值可以为第二码值(如0)。
在一些实施例中,可以通过定义两个划分参数来定义不同的划分顺序,具体包括第一划分参数K和第二划分参数M,其中,0≤K≤max(dx,dy,dz)-min(dx,dy,dz),0≤M≤min(dx,dy,dz),这里对第一划分参数K和第二划分参数M的具体取值均不限定。第一划分参数K可用于指示上述第一划分范围(即0~K层),即在前K层划分中,可以采用第一几何划分策略(如二叉树划分策略或者四叉树划分策略)。第二划分参数M则可表示四叉树划分策略和二叉树划分策略对应的最小划分尺寸,即最后M层划分必须采用八叉树划分策略,换句话说,在K层之后(上述第二划分范围),可以采用第二几何划分策略(如二叉树划分策略、四叉树划分策略或者八叉树划分策略)。其中,当dx≠dy≠dz时,二叉树划分策略可优先于四叉树划分策略。可选的,在前K层划分中(即划分深度D处于第一划分范围时),可采用如表1所示的第一几何划分策略进行划分,在K层之后(即划分深度D处于第二划分范围时),可采用如表2所示的第二几何划分策略进行划分,当表1和表2中的条件均不满足时,可执行八叉树划分策略。
表1隐式几何划分决策方法(前K层)
沿着x-y轴QT | 沿着x-z轴QT | 沿着y-z轴QT | |
条件 | <![CDATA[d<sub>z</sub><d<sub>x</sub>=d<sub>y</sub>]]> | <![CDATA[d<sub>y</sub><d<sub>x</sub>=d<sub>z</sub>]]> | <![CDATA[d<sub>x</sub><d<sub>y</sub>=d<sub>z</sub>]]> |
沿着x轴BT | 沿着y轴BT | 沿着z轴BT | |
条件 | <![CDATA[d<sub>y</sub><d<sub>x</sub>andd<sub>z</sub><d<sub>x</sub>]]> | <![CDATA[d<sub>x</sub><d<sub>y</sub>andd<sub>z</sub><d<sub>y</sub>]]> | <![CDATA[d<sub>x</sub><d<sub>z</sub>andd<sub>y</sub><d<sub>z</sub>]]> |
表2隐式几何划分决策方法(K层之后)
由上述表1和表2可知,只有在满足指定条件的前提下才能执行相应的几何划分策略。本申请实施例还可以支持其他不同的几何划分策略,这里不再进行赘述。
(3)目标邻居子节点的占位码可以由基于目标划分树类型对已解码邻居节点进行划分后所得到的真实占位码所确定,也就是说,解码设备可以对已解码邻居节点进行划分,从而获得其真实占位码。其中,这里的目标划分树类型可包含八叉树划分类型、四叉树划分类型和二叉树划分类型中的任意一种,这里不做限定,例如,可以对已解码邻居节点进行八叉树划分,得到的8比特的真实占位码可确定目标邻居子节点的占位码,但不需要对该占位码进行编码或解码。
(4)目标邻居子节点的占位码可以由与已解码邻居节点相关联的解码信息所确定,也就是说,解码设备可以根据已解码邻居节点相关联的解码信息(可理解为前面解码得到的与已解码邻居节点相关的一些信息)来对目标邻居子节点的占位码进行判定,包括但不限于以下方法:
(a)上述解码信息可以包括已解码邻居节点的点云统计信息,此时目标邻居子节点的占位码可以由该点云统计信息以及与该点云统计信息相关联的统计阈值所确定,其中,这里的点云统计信息可包括已解码邻居节点中的点云点数和已解码邻居节点中的点云密度中的一种。也就是说,解码设备可以根据已解码邻居节点的点云统计信息对目标邻居子节点的占位码进行判定,例如,在检测到已解码邻居节点中的点云点数大于设定的第一统计阈值时,可以判定目标邻居子节点的占位码的取值为第一码值(如1),反之,在检测到已解码邻居节点中的点云点数小于或等于第一统计阈值时,可以判定目标邻居子节点的占位码的取值为第二码值(如0);又例如,类似的,在检测到已解码邻居节点中的点云密度大于设定的第二统计阈值时,可以判定目标邻居子节点的占位码的取值为第一码值(如1),反之,在检测到已解码邻居节点中的点云密度小于或等于第二统计阈值时,可以判定目标邻居子节点的占位码的取值为第二码值(如0)。这里对第一统计阈值和第二统计阈值的具体取值不做限定,实际应用中可根据需要来设定。
(b)上述解码信息可以包括已解码邻居节点所在的预测树的重建点,可以理解,在预测树完成解码后,可以得到对应的多个重建点,如目标邻居子节点的重建点,此时解码设备可以根据预测树的重建点与待解码节点(或待解码节点的参考邻居子节点)之间的空间距离和预设的距离阈值来进行判定,且这里对距离阈值的具体取值不做限定。也就是说,在目标邻居子节点的重建点与待解码节点之间的空间距离为目标空间距离时,该目标邻居子节点的占位码是由目标空间距离小于距离阈值时所得到的第一码值所确定的。本申请实施例提供了两种距离判定方式,下面分别进行阐述:
可选的,以预测树中的目标邻居子节点为例,假设目标邻居子节点的重建点与待解码节点之间的空间距离为第一目标空间距离(例如,d1),若解码设备在预测树中查找到的与待解码节点之间的空间距离小于距离阈值(例如,距离阈值为dis,d1<dis)的重建点为该目标邻居子节点的重建点,则此时目标邻居子节点的占位码可以由第一目标空间距离小于距离阈值时所得到的第一码值(如1)所确定。在本申请实施例中,由于待解码节点的具***置信息是未知的,因此可以采用待解码节点的几何中心点或者其所在点云包围盒的顶点等位置信息作为该待解码节点的参考坐标点(如P1),进而解码设备可以搜索预测树中的重建点,若其中存在某个重建点P2(如前述目标邻居子节点的重建点)到P1的空间距离小于预设的距离阈值,则可以将重建点P2对应的邻居子节点的占位码判定为1。
又或者,可选的,仍以预测树中的目标邻居子节点为例,假设目标邻居子节点的重建点与待解码节点的参考邻居子节点之间的空间距离为第二目标空间距离(例如,d2),若解码设备在预测树中查找到的与该参考邻居子节点之间的空间距离小于距离阈值(例如,距离阈值为dis,d2<dis)的重建点为该目标邻居子节点的重建点,则此时目标邻居子节点的占位码可以由第二目标空间距离小于距离阈值时所得到的第一码值(如1)所确定。在本申请实施例中,参考邻居子节点具体可以是与待解码节点相邻的任意一个真实存在的邻居子节点(不限定其所在的几何结构的结构类型),也可以是仅用于此处进行距离判定的一个并非真实存在的邻居子节点(如点云包围盒的中心点),类似的,这里可以采用参考邻居子节点的几何中心点或者其所在点云包围盒的顶点或中心点等位置信息作为该待解码节点的参考坐标点(如P3),进而解码设备可以搜索预测树中的重建点,若其中存在某个重建点P2(如前述目标邻居子节点的重建点)到P3的空间距离小于预设的距离阈值,则可以将重建点P2对应的邻居子节点的占位码判定为1。
可以理解,当有多个(如S个,且S为正整数)邻居子节点都属于前述已解码邻居节点时(即目标邻居子节点的数量为S个时),可进行S次类似的距离判定。
(c)上述解码信息可以包括已解码邻居节点的参考已解码邻居节点的占位码,这里的参考已解码邻居节点具体可以为已解码邻居节点的其他已解码的邻居节点,该参考已解码邻居节点可以处于划分树或预测树,这里不做限定,此时,目标邻居子节点的占位码可以由参考已解码邻居节点的占位码所确定。例如,请再次参见图12,当节点B为节点A的已解码邻居节点时,假设图12中的节点C为节点B的邻居节点,且节点C为划分树节点,此时节点C可作为节点B的参考已解码邻居节点,则解码设备可以根据节点C的占位码推断节点B的占位码,例如,在节点C的占位码为1时,节点B的占位码推断也为1。
(d)上述解码信息可以包括与待解码节点具有同一父节点的划分树邻居子节点的子节点占位码,这里的划分树邻居子节点可以为划分树中已解码的邻居子节点,此时目标邻居子节点的占位码可以由子节点占位码所确定。例如,如图12所示,假设节点D与节点A具有同一父节点(即二者均为划分树节点),且该节点D为节点A在同一子节点层中的邻居子节点,此时节点D可以为节点B的邻居子节点或同层子节点,则解码设备可以根据节点A的划分树邻居子节点(如节点D)的占位码来推测邻居预测树节点(如节点B)的占位情况,可包括但不限于以下情况:
(d1)可选的,在上述子节点占位码指示位于待解码节点(如节点A)所在的子节点层的划分树邻居子节点(如节点D)处于占用状态时,位于同一子节点层的目标邻居子节点(如节点B)也处于占用状态(或者,当划分树邻居子节点为目标邻居子节点的邻居子节点时,预测该目标邻居子节点也处于占用状态),且目标邻居子节点的占位码可以由目标邻居子节点处于占用状态时所得到的第一码值(如1)所确定。也就是说,当解码设备检测到待解码节点的父节点中只有同层子节点被占用时,已解码邻居节点中可推断为只有同层的子节点(如目标邻居子节点)被占用。
(d2)可选的,上述划分树邻居子节点中可包含与已解码邻居节点之间距离(如l2距离(即欧式距离)、曼哈顿距离等,这里不做限定)最小的目标划分树邻居子节点,此时,目标邻居子节点的占位码可以由目标划分树邻居子节点的子节点占位码所确定,也就是说,解码设备可以根据与已解码邻居节点之间距离最近的划分树邻居子节点(即目标划分树邻居子节点)的占位情况来进行判定。
(5)可选的,目标邻居子节点的占位码可以由待解码节点所在的划分深度(即前述划分深度D)与深度阈值的关联关系所确定,这里的关联关系可以包括划分深度小于深度阈值时的第一关联关系和划分深度大于深度阈值时的第二关联关系中的一种。也就是说,解码设备可以根据划分深度D判定目标邻居子节点的占位码,例如,假设深度阈值设置为D1,那么D<D1时的关联关系可以为第一关联关系,D>D1时的关联关系可以为第二关联关系,基于第一关联关系所确定的第一邻居点查找方式与基于第二关联关系所确定的第二邻居点查找方式可以相同,也可以不同,例如,第一邻居点查找方式和第二邻居点查找方式可以为上述阐述的内容(1)-(4)中的任意一项或者其他类似的未举例阐述的方式,这里不做限定。
此外,在本申请实施例中,用于对待解码节点的划分树占位信息进行解码的上下文模型是由邻居节点的占位码信息所确定的,可以理解的是,当前点云编码框架中设计了各式各样的上下文模型(例如针对稀疏型点云的上下文模型和针对密集型点云的上下文模型等),用以对相关的占位码进行熵编码和熵解码,邻居节点(包括邻居父节点、邻居子节点等)的定义也需根据采用的不同上下文模型进行具体分析,这里以目标邻居子节点为例进行说明:目标邻居子节点的邻居节点类型可以包含但不限于与待解码节点共面的共面邻居子节点、与待解码节点共线的共线邻居子节点、与待解码节点共点的共点邻居子节点、以及在待解码节点所在坐标系的目标维度负方向上,距离待解码节点L个子节点边长处的近距邻居子节点中的一种或多种,其中,L为大于1的正整数(如L=2),可以参见上述图11中的一些示例性的邻居子节点。这里的目标维度可以为待解码节点所在坐标系的任意一个维度,例如,目标维度可以是x、y、z三个维度中节点边长最短的维度,这里不做限定。可以理解,对于邻居节点数量较多的情况,不同邻居节点的占位码可以组合考虑也可以独立考虑,此处不做限制。
可选的,在另一种实施方式中,在第一几何结构的结构类型为预测树类型时,作为待解码节点的第一节点为预测树类型所对应的第一预测树中的节点(即预测树节点),且在第二几何结构的结构类型为划分树类型时,作为已解码邻居节点的第二节点为划分树类型所对应的划分树中的节点(即划分树节点)。此时,在空间相邻关系中,可以将位于第一预测树中的第一节点与位于划分树中的第二节点之间的空间相邻关系作为第二空间相邻关系,这里的第二空间相邻关系同样可以包括上述举例的父节点层相邻关系和子节点层相邻关系中的一种或多种,具体可以参见上述对第一空间相邻关系的阐述,这里不再进行赘述。在确定已解码邻居节点为上述划分树中的第二节点时,进一步地,解码设备可以基于位于该划分树中的第二节点的第二空间解码数据信息,获取与第一节点相关联的第二混合解码优化策略,进而可以基于第二混合解码优化策略,将已解码邻居节点的占位码作为已解码邻居节点的目标占位信息。其中,这里的第二空间解码数据信息可以包括第二节点相关的解码信息。可以理解,由于划分树节点本身具备真实的占位码信息,因此可以直接使用已解码邻居节点的占位码而无需像对预测树节点一样进行一系列推断。
为便于理解,请一并参见图13,图13是本申请实施例提供的一种基于块结构的混合树编码的场景示意图。如图13所示,图中的灰色填充块表示预测树节点(例如节点E和节点G),无颜色填充块表示划分树节点(例如节点F),其余未填充部分均为空(即占位码为0)。假设当前待解码节点为节点E,解码设备可以根据对应已解码邻居节点(例如节点F和节点G)的划分树占用码信息或预测树解码信息,对节点E的预测树残差信息进行解码。这里以已解码邻居节点为划分树节点(如节点F)为例,当节点F为当前节点E的已解码邻居节点时,解码设备可以快速获取到由该节点F的占位码所确定的重建点,后续就可利用该重建点对节点E进行解码,其具体过程可以参见下述步骤S104。
步骤S104,基于目标占位信息对压缩码流中的待解码节点的节点几何信息进行解码;节点几何信息包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
可以理解,在获得相关邻居节点的占位信息后,解码设备就可以利用这些占位信息(包括上述目标占位信息以及其它位于与第一几何结构相同的几何结构中的邻居节点的占位信息)对压缩码流中的待解码节点的节点几何信息进行解码,以实现对待解码节点的几何信息的重建,然而,由上述步骤S103可知,在第一几何结构的结构类型为划分树类型或预测树类型时,所得到的目标占位信息是不相同的,其用于解码的节点几何信息也是不同的。因此,下面将分别对划分树占位信息和预测树残差信息码的相关解码过程进行阐述。
可选的,在一种实施方式中,当待解码节点为划分树节点,且已解码邻居节点为预测树节点时,可以通过上述步骤S103推断得到已解码邻居节点的目标占位信息,并结合其他已解码的划分树邻居节点的占位信息,对待解码节点的划分树占位信息进行解码。可选的,本申请实施例可以采用上下文模型对该划分树占位信息进行解码,即解码设备在获取到已解码邻居节点的目标占位信息后,可以基于该目标占位信息以及其他已解码的划分树邻居节点的占位信息,确定与待解码节点的划分树占位信息相关联的目标上下文模型,进而可以基于该目标上下文模型对该划分树占位信息进行熵解码,后续就可利用熵解码后得到的占位码来重建该待解码节点的坐标位置信息。
为便于理解,本申请实施例将对两种确定上下文模型的方法(包括第一上下文模型确定方法和第二上下文模型确定方法)进行简单介绍,上述目标上下文模型既可以为通过第一上下文模型确定方法所确定的上下文模型,也可以为通过第二上下文模型确定方法所确定的上下文模型,还可以使用其他的上下文模型,这里不做限定。
例如,第一上下文模型确定方法可以包括子节点层的邻居预测和父节点层的邻居预测。针对子节点层的邻居预测,在八叉树广度优先遍历的划分方式下,解码当前点(即待解码子节点的父节点)的待解码子节点时能够获得的邻居参考信息(即占位信息)具体可以包括左前下三个方向(即各坐标轴的负方向)的邻居子节点的占位信息。如上述图11所示,子节点层的上下文模型设计可如下:对于待解码子节点所在的子节点层,可以查找与待解码子节点同层的左前下方向3个共面邻居子节点、3个共线邻居子节点、1个共点邻居子节点以及节点边长最短的维度(如x维度)上负方向距离当前待解码子节点两个子节点边长处的近距邻居子节点的占位情况。其中,可以优先对3个共面邻居子节点、3个共线邻居子节点以及节点边长最短的维度上负方向距离当前待解码子节点两个子节点边长处的近距邻居子节点的占位情况进行详细考虑,可以理解,这7个节点的占位情况共有27=128种情况。如果不全为不占据,则共有27-1=127种情况,可以为每种情况分配1个上下文;若这7个节点全为不占据,则进一步考虑共点邻居子节点的占位情况。该共点邻居子节点有2种可能,即占据或不占据。同理,可以为该共点邻居子节点被占据的情况单独分配1个上下文,若该共点邻居子节点也为不占据,则考虑接下来要阐述的父节点层邻居的占位情况。即待解码子节点的同层邻居子节点共对应127+2-1=128个上下文。
针对父节点层的邻居预测,如果待解码子节点的上述8个同层邻居子节点都未被占据,则可以参见图14,图14是本申请实施例提供的一种父节点层相邻关系的示意图,图14所示的四组邻居父节点可以理解为是上述图10所示的18个邻居父节点的子集。此时可以考虑如图14所示的待解码子节点的父节点所在的父节点层的四组邻居父节点的占位情况。其中虚线框节点为待解码子节点的父节点(也可称为当前节点),实线边框为邻居父节点。图中所示的右上后方向为各坐标轴的正方向。对于父节点层(也可称为当前节点层),首先考虑该父节点的右上后3个共面邻居父节点。该父节点右上后共面的3个共面邻居父节点的占位情况共有23=8种可能,为不全为不占据的情况各分配一个上下文,再考虑待解码子节点位于该父节点的位置(如上述图4a所示的8个位置),则该组共面邻居父节点共提供(8-1)×8=56个上下文。如果该父节点的右上后3个共面邻居父节点都不占据,那么继续考虑父节点层其余三组邻居父节点。具体的,可以考虑最近被占据的邻居父节点与该父节点的节点距离。具体的邻居父节点分布与节点距离的对应关系如表3所示。
表3
父节点层占位情况 | 节点距离 |
左前下共面邻居占据或右上后共线邻居占据 | 1 |
左前下共面邻居、右上后共线邻居都不占据且左前下共线邻居占据 | 2 |
当前节点层的四组邻居都不占据 | 3 |
由表3可知,节点距离共有3个取值,可以为这3个取值情况各分配1个上下文,再考虑待解码子节点位于其父节点的位置情况,则共3×8=24个上下文。至此,第一上下文模型确定方法总共分配了128+56+24=208个上下文模型,采用这种方式,解码设备可以根据待解码子节点在子节点层的邻居子节点的占位码和在父节点层的邻居父节点的占位码(其中可能包括前述作为已解码邻居节点的预测树节点的目标占位信息和其他已解码的划分树邻居节点的占位信息),确定目标模型索引,从而可以基于该目标模型索引在上述208个上下文模型中确定该待解码子节点的目标上下文模型。
又例如,第二上下文模型确定方法可以使用双层上下文参考关系配置,如式(14)所示,第一层是与当前待解码子节点的父节点相邻的已解码相邻块(即邻居父节点)的占用情况(即ctxIdxParent),第二层是与待解码子节点同一划分深度下的相邻已解码块(即邻居子节点)的占用情况(即ctxIdxChild)。
idx=LUT[ctxIdxParent][ctxIdxChild] (14)
首先,对于每一个待解码子节点,第二层的ctxIdxChild如式(15)所示,表示与待解码子节点l2距离(即欧氏距离)为1的3个邻居子节点(如上述图11所示的左前下方向3个共面邻居子节点)的占用情况。其次,第一层的ctxIdxParent,对于不同待解码子节点的相对位置,可以通过查表方式寻找与其共面和共线的邻居父节点,并通过其占用情况根据式(16)计算得到ctxIdxParent。请参见图15,图15是本申请实施例提供的一种父节点层相邻关系的示意图。如图15所示,每个子图显示了第i个子节点找到的6个邻居父节点的相对位置关系,其中包含3个共面邻居父节点(Pi,0,Pi,1,Pi,2)和3个共线邻居父节点(Pi,3,Pi,4,Pi,5)。每个子节点和邻居父节点的位置关系可通过上述表3方式获取,下述表4描述了子节点i和其邻居父节点j的关系,表4中的数字对应图10中的莫顿序号,该方式考虑了不同子节点位置以及几何上的中心旋转对称性。式(16)中采用的方式是3个共面邻居父节点占用情况的排列组合以及3个共线邻居父节点占用的个数加和。因此,该方法中使用的上下文模型数量最多为23×25=256个。类似的,采用这种方式,解码设备可以根据待解码子节点在子节点层的邻居子节点的占位码和在父节点层的邻居父节点的占位码(其中可能包括前述作为已解码邻居节点的预测树节点的目标占位信息和其他已解码的划分树邻居节点的占位信息),确定目标模型索引,从而可以基于该目标模型索引在上述256个上下文模型中确定该待解码子节点的目标上下文模型。
表4
可以理解,解码设备可以采用通过上述任意一种方式确定的目标上下文模型来对待解码子节点的划分树占位信息进行熵解码,从而可以节省码率,且提高解码效率。
可选的,在另一种实施方式中,当待解码节点为预测树节点,且已解码邻居节点为划分树节点时,可以通过上述步骤S103得到的已解码邻居节点的目标占位信息,并结合其他已解码的预测树邻居节点的解码信息(如重建点的坐标位置信息),对待解码节点的预测树残差信息进行解码。具体来说,已解码邻居节点的目标占位信息可用于确定已解码邻居节点的重建点,在获得已解码邻居节点的重建点后,解码设备可将该重建点作为待解码节点对应的第二预测树的起始点(即根节点)或待解码节点的独立参考点,也就是说,可选的,可以通过已解码邻居节点的重建点来对原来的第一预测树进行重构,从而可以得到以该重建点作为起始点的第二预测树;又或者,可选的,也可以直接将已解码邻居节点的重建点作为独立于第一预测树的独立参考点。进一步地,解码设备可以将第二预测树中的第一预测参考点或独立参考点作为目标参考点,并可基于目标参考点的重建坐标位置信息对待解码节点的预测树残差信息进行解码,后续就可以利用解码后的预测树残差信息来重建该待解码节点的坐标位置信息。其中,本申请实施例对编码端所采用的预测模式不做限制,而第二预测树的结构可以由采用的预测模式所确定,因此,相应的,重构得到的第二预测树可能是图7a所示的单链结构,则此时的第一预测参考点可以为待解码节点在第二预测树中的前一个节点;或者,可选的,重构得到的第二预测树也可能是图7b所示的多链结构,则此时的第一预测参考点可以为待解码节点在第二预测树中的前一个节点A1(即parent点),或者为节点A1和节点A1的前一个节点A2(即grandparent点),又或者,为节点A1、节点A2以及节点A2的前一个节点A3(即grand-grandparent点),本申请实施例对此不进行限定。
此外,可以理解,在上述第一几何结构的结构类型为预测树类型时,作为待解码节点的第一节点为预测树类型所对应的第一预测树中的节点(如上述图13中的节点E),而在上述已解码邻居节点为与第一几何结构具有相同结构类型的第三几何结构中的第三节点时,作为已解码邻居节点的第三节点为预测树类型所对应的第三预测树中的节点(如上述图13中的节点G),也就是说,此时待解码节点和已解码邻居节点均为预测树节点,且这里的第一预测树和第三预测树可以为相同的预测树,也可以为不同的预测树,这里不做限定。在这种情况下,解码设备可以基于第三预测树的起始点(如上述节点G所在预测树的起始点)或第三预测树的终止点(如上述节点G所在预测树的终止点)来确定目标参考点,进而可以基于目标参考点的重建坐标位置信息对待解码节点的预测树残差信息进行解码。
其中,可选的,在将第三预测树的起始点或第三预测树的终止点作为目标起始点时,解码设备可以通过该目标起始点对原来的第一预测树进行重构,从而得到待解码节点对应的重构预测树,可以理解,该重构预测树的起始点即为目标起始点。进一步地,解码设备可以将该重构预测树中的第二预测参考点作为目标参考点,这里对第二预测参考点的选择可以依赖于编码端所采用的预测模式,具体可以参见上述对第一预测参考点的阐述,这里不再进行赘述。
又或者,可选的,可以直接将第三预测树的起始点或第三预测树的终止点作为目标参考点,则此时该目标参考点独立于第一预测树。
上述可知,当待解码节点为预测树节点(如上述图13中的节点E)时,其已解码邻居节点可能包含有预测树节点(如上述图13中的节点G)和划分树节点(如上述图13中的节点F),本申请实施例在前文对这两种情况都进行了说明,可以理解,由于已解码邻居节点可以同时包含预测树节点和划分树节点,因此前文所阐述的相关混合解码优化策略可以同时使用,也可以分别使用,此处不做限定。
其中,可选的,针对如何在上述第一预测参考点、独立参考点,或第二预测参考点、第三预测树的起始点以及第三预测树的终止点中确定目标参考点,本申请实施例还可以在压缩码流中添加相应的参考模式选择信息进行指示,这样解码设备就可以通过解析该参考模式选择信息来确定需要的目标参考点。
由此可见,在对压缩码流进行解码的过程中,当解码到的任意一个待解码节点所在的几何结构(即上述第一几何结构)与相应的已解码邻居节点所在的几何结构(即上述第二几何结构)不相同时,解码设备可以充分利用该已解码邻居节点的目标占位信息来对该待解码节点的节点几何信息进行解码,而非只考虑相同结构类型的几何结构中的邻居节点或该待解码节点内部的相关信息,从而可以在第一几何结构为划分树、且第二几何结构为预测树时,提升划分树占位信息的解码效率,或者,在第一几何结构为预测树、且第二几何结构为划分树时,提升预测树残差信息的解码效率,进而可以从整体上提升压缩码流的解码效率。此外,对于待解码节点和已解码邻居节点均为预测树节点的情况,本申请实施例也进行了一定的拓展,可以丰富预测树残差信息的解码方式,同时提升预测树残差信息的解码效率。
进一步地,请参见图16,图16是本申请实施例提供的一种点云数据处理方法的流程示意图。该方法可由点云媒体***中的编码设备(例如,上述图1所对应实施例中的编码设备100A)来执行,比如,该编码设备可以为服务器。该方法至少可以包括以下步骤S201-步骤S203:
步骤S201,在待编码节点为点云数据的第一几何结构中的第一节点时,确定与待编码节点具有空间相邻关系的已编码邻居节点;
具体的,编码设备在获取到点云数据后,可以对其几何信息和属性信息分别进行编码,可以理解的是,编码设备对几何信息进行编码时可以采用块结构编码方法,将三维空间划分为多个宏块,且对每个宏块,可以根据其特性采用不同的几何编码方式,例如,可以采用基于划分树的几何编码或基于预测树的几何编码等。在编码过程中,编码设备会遵循一定的编码顺序,假设当前编码到的任意一个待编码节点为点云数据的第一几何结构中的第一节点,则编码设备可以先确定与该待编码节点具有空间相邻关系的已编码邻居节点,以便后续可以利用已编码邻居节点的一些信息对待编码节点进行编码。其中,这里的有空间相邻关系可以包括与待编码节点的父节点(也可称为当前节点)具有直接相邻关系时的父节点层相邻关系(也可理解为与待编码节点具有间接相邻关系)和与待编码节点(也可称为待编码子节点)具有直接相邻关系时的子节点层相邻关系中的一种或多种。
可以理解的是,由于解码过程和编码过程是相逆的,因此该步骤的具体过程以及相关名词的阐述均可以参见上述图9所对应实施例中的步骤S102,这里不再进行赘述。
步骤S202,在已编码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,确定已编码邻居节点的目标占位信息;
可以理解,在已编码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,本申请实施例可以对基于混合树的几何编码进行优化。
例如,可选的,在一种实施方式中,在第一几何结构的结构类型为划分树类型时,作为待编码节点的第一节点为划分树类型所对应的划分树中的节点,且在第二几何结构的结构类型为预测树类型时,作为已编码邻居节点的第二节点为预测树类型所对应的预测树中的节点;基于此,在空间相邻关系中,可以将位于划分树中的第一节点与位于预测树中的第二节点之间的空间相邻关系作为第一空间相邻关系;编码设备可以基于位于该预测树中的第二节点的第一空间编码数据信息,获取与第一节点相关联的第一混合编码优化策略,且可以基于第一混合编码优化策略确定已编码邻居节点的目标占位信息。其中,这里的第一空间编码数据信息可以包括第二节点本身的一些空间关系或相关的编码信息。
其中,可选的,编码设备可以将待编码节点的父节点所在的划分层确定为父节点层,且可以基于第一混合编码优化策略,在该父节点层中,查找该待编码节点的父节点的邻居父节点;若查找到的邻居父节点中存在位于预测树中的邻居父节点,则可以将位于预测树中的邻居父节点作为已编码邻居节点;随后,可以将已编码邻居节点的占位码的取值设置为第一码值(例如,1),且可以基于具有第一码值的已编码邻居节点的占位码确定已编码邻居节点的目标占位信息。
其中,可选的,解码设备可以将待编码节点所在的划分层作为子节点层,进而可以基于第一混合编码优化策略,在子节点层中,查找待编码节点的邻居子节点;若查找到的邻居子节点的父节点中存在位于预测树中的父节点,则可以在将位于预测树中的父节点作为已编码邻居节点时,将该已编码邻居节点中的邻居子节点作为目标邻居子节点,随后可以基于目标邻居子节点的占位码确定已编码邻居节点的目标占位信息。
其中,可选的,目标邻居子节点的占位码的取值可以为默认码值,该默认码值可以为第一码值(如1)或第二码值(如0)。
其中,可选的,目标邻居子节点的占位码可以由已编码邻居节点所属的编码单元(如宏块)所采用的划分树类型所确定。其中,在待编码节点所在的划分深度D处于第一划分范围时,划分树类型是由第一几何划分策略所确定的;第一几何划分策略包含用于对点云包围盒进行划分的二叉树划分策略和四叉树划分策略中的一种;在划分深度处于第二划分范围时,划分树类型是由第二几何划分策略所确定的;第二几何划分策略包含用于对点云包围盒进行划分的二叉树划分策略、四叉树划分策略和八叉树划分策略中的一种;第一划分范围不同于第二划分范围;点云包围盒是对点云数据的空间坐标位置信息进行预处理后所得到的。
其中,可选的,目标邻居子节点的占位码可以由基于目标划分树类型对已编码邻居节点进行划分后所得到的真实占位码所确定;目标划分树类型可以包含八叉树划分类型、四叉树划分类型和二叉树划分类型中的一种。
其中,可选的,目标邻居子节点的占位码可以由与已编码邻居节点相关联的编码信息所确定。
其中,可选的,上述编码信息可以包括已编码邻居节点的点云统计信息;目标邻居子节点的占位码可以由点云统计信息以及与该点云统计信息相关联的统计阈值所确定;该点云统计信息可以包括已编码邻居节点中的点云点数和已编码邻居节点中的点云密度中的一种。
其中,可选的,上述编码信息可以包括已编码邻居节点所在的预测树的重建点,可以理解,在对预测树进行重建后,可以得到对应的多个重建点,如目标邻居子节点的重建点,此时编码设备可以根据预测树的重建点与待编码节点(或待编码节点的参考邻居子节点)之间的空间距离和预设的距离阈值来进行判定,且这里对距离阈值的具体取值不做限定。也就是说,在目标邻居子节点的重建点与待编码节点之间的空间距离为目标空间距离时,该目标邻居子节点的占位码是由目标空间距离小于距离阈值时所得到的第一码值(如1)所确定的。
其中,可选的,上述编码信息可以包括已编码邻居节点的参考已编码邻居节点的占位码;目标邻居子节点的占位码可以由参考已编码邻居节点的占位码所确定。
其中,可选的,上述编码信息可以包括与待编码节点具有同一父节点的划分树邻居子节点的子节点占位码;划分树邻居子节点为划分树中已编码的邻居子节点;目标邻居子节点的占位码可以由子节点占位码所确定。
其中,可选的,在子节点占位码指示位于待编码节点所在的子节点层的划分树邻居子节点处于占用状态时,位于同一子节点层的目标邻居子节点也处于占用状态,且目标邻居子节点的占位码可以由目标邻居子节点处于占用状态时所得到的第一码值(如1)所确定。
其中,可选的,划分树邻居子节点中可以包含与已编码邻居节点之间距离(如欧式距离、曼哈顿距离等,这里不做限定)最小的目标划分树邻居子节点;目标邻居子节点的占位码可以由目标划分树邻居子节点的子节点占位码所确定。
其中,可选的,目标邻居子节点的占位码可以由待编码节点所在的划分深度与深度阈值的关联关系所确定的;该关联关系可以包括划分深度小于深度阈值时的第一关联关系和划分深度大于深度阈值时的第二关联关系中的一种。
其中,可选的,目标邻居子节点的邻居节点类型可以包含与待编码节点共面的共面邻居子节点、与待编码节点共线的共线邻居子节点、与待编码节点共点的共点邻居子节点、以及在待编码节点所在坐标系的目标维度负方向上,距离待编码节点L个子节点边长处的近距邻居子节点中的一种或多种;L为大于1的正整数。
类似的,可选的,在一种实施方式中,在第一几何结构的结构类型为预测树类型时,作为待编码节点的第一节点为预测树类型所对应的第一预测树中的节点,且在第二几何结构的结构类型为划分树类型时,作为已编码邻居节点的第二节点为划分树类型所对应的划分树中的节点;基于此,在空间相邻关系中,可以将位于第一预测树中的第一节点与位于划分树中的第二节点之间的空间相邻关系作为第二空间相邻关系。编码设备可以基于位于该划分树中的第二节点的第二空间编码数据信息,获取与第一节点相关联的第二混合编码优化策略,且可以基于第二混合编码优化策略,将已编码邻居节点的占位码作为已编码邻居节点的目标占位信息。其中,这里的第二空间编码数据信息可以包括第二节点相关的编码信息。
可以理解的是,由于解码过程和编码过程是相逆的,因此该步骤的具体过程以及相关名词的阐述均可以参见上述图9所对应实施例中的步骤S103,这里不再进行赘述。
步骤S203,基于目标占位信息对待编码节点的节点几何信息进行编码,得到点云数据的压缩码流;节点几何信息包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
可以理解的是,在获得上述目标占位信息后,编码设备就可以利用该目标占位信息对待编码节点的节点几何信息进行编码,以实现对几何信息的压缩,从而得到点云数据的压缩码流。
可选的,在一种实施方式中,当待编码节点为划分树节点,且已编码邻居节点为预测树节点时,可以通过上述步骤S202推断得到已编码邻居节点的目标占位信息,并结合其他已编码的划分树邻居节点的占位信息,对待编码节点的划分树占位信息进行编码。例如,编码设备可以基于获取到的已编码邻居节点的目标占位信息和其他已解码的划分树邻居节点的占位信息,确定与待编码节点的划分树占位信息相关联的目标上下文模型,进而可以基于该目标上下文模型对该划分树占位信息进行熵编码,从而得到相应的压缩码流。其中,这里的目标上下文模型包括但不限于通过前述第一上下文模型确定方法或第二上下文模型确定方法所确定的上下文模型。
可选的,在另一种实施方式中,当待编码节点为预测树节点,且已编码邻居节点为划分树节点时,可以通过上述步骤S202得到的已编码邻居节点的目标占位信息,并结合其他已解码的预测树邻居节点的编码信息(如重建点的坐标位置信息),对待编码节点的预测树残差信息进行编码,从而得到点云数据的压缩码流。
例如,结合上述图9所对应实施例中的步骤S104,在一些实施例中,目标占位信息可用于确定已编码邻居节点的重建点,且该重建点可用于作为待编码节点对应的第二预测树的起始点或待编码节点的独立参考点,这里的第二预测树是通过已编码邻居节点的重建点对第一预测树进行重构后所确定的,即第二预测树的起始点为该重建点;此外,独立参考点独立于第一预测树。基于此,编码设备可以将第二预测树中的第一预测参考点或独立参考点作为目标参考点,进而可以基于目标参考点的重建坐标位置信息进行预测,得到预测坐标位置信息;随后,编码设备可以基于该预测坐标位置信息和待编码节点的原始坐标位置信息确定待编码节点的预测树残差信息,且可以将得到的预测树残差信息作为待编码节点的节点几何信息,进而可以对该节点几何信息进行编码,以得到点云数据的压缩码流。
此外,在一些实施例中,在第一几何结构的结构类型为预测树类型时,作为待编码节点的第一节点为预测树类型所对应的第一预测树中的节点,且在已编码邻居节点为与第一几何结构具有相同结构类型的第三几何结构中的第三节点时,作为已编码邻居节点的第三节点为预测树类型所对应的第三预测树中的节点;编码设备可以基于第三预测树的起始点或第三预测树的终止点确定目标参考点,进而可以基于目标参考点的重建坐标位置信息进行预测,得到预测坐标位置信息;随后,编码设备可以基于该预测坐标位置信息和待编码节点的原始坐标位置信息确定待编码节点的预测树残差信息,且可以将得到的预测树残差信息作为待编码节点的节点几何信息,并对该节点几何信息进行编码,以得到点云数据的压缩码流。
其中,可选的,基于第三预测树的起始点或第三预测树的终止点确定目标参考点的过程可以为:在将第三预测树的起始点或第三预测树的终止点作为目标起始点时,编码设备可以通过目标起始点对第一预测树进行重构,从而得到待编码节点对应的重构预测树,可以理解,该重构预测树的起始点即为目标起始点。进一步地,编码设备可以将该重构预测树中的第二预测参考点作为目标参考点。
又或者,可选的,可以直接将第三预测树的起始点或第三预测树的终止点作为目标参考点,则此时目标参考点独立于第一预测树。
可以理解的是,由于解码过程和编码过程是相逆的,因此该步骤的具体过程以及相关名词的阐述均可以参见上述图9所对应实施例中的步骤S104,这里不再进行赘述。
由此可见,在对点云数据的几何信息进行编码的过程中,当编码到的任意一个待编码节点所在的几何结构(即上述第一几何结构)与相应的已编码邻居节点所在的几何结构(即上述第二几何结构)不相同时,编码设备可以充分利用该已编码邻居节点的目标占位信息来对该待编码节点的节点几何信息进行编码,而非只考虑相同结构类型的几何结构中的邻居节点或该待编码节点内部的相关信息,从而可以在第一几何结构为划分树、且第二几何结构为预测树时,提升划分树占位信息的编码效率,或者,在第一几何结构为预测树、且第二几何结构为划分树时,提升预测树残差信息的编码效率,进而可以从整体上提升几何信息的编码效率。
请参见图17,是本申请实施例提供的一种点云数据处理装置的结构示意图。如图17所示,点云数据处理装置1可以是运行于解码设备(例如,上述解码设备100B)的一个计算机程序(包括程序代码),例如该点云数据处理装置1为一个应用软件;可以理解的是,该点云数据处理装置1可以用于执行本申请实施例提供的点云数据处理方法中的相应步骤。如图17所示,该点云数据处理装置1可以包括:码流获取模块11、邻居确定模块12、占位确定模块13、几何解码模块14、残差解码模块15;
码流获取模块11,用于获取点云数据的压缩码流;
邻居确定模块12,用于在待解码节点为点云数据的第一几何结构中的第一节点时,确定与待解码节点具有空间相邻关系的已解码邻居节点;
占位确定模块13,用于在已解码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,确定已解码邻居节点的目标占位信息;
其中,在第一几何结构的结构类型为划分树类型时,作为待解码节点的第一节点为划分树类型所对应的划分树中的节点,且在第二几何结构的结构类型为预测树类型时,作为已解码邻居节点的第二节点为预测树类型所对应的预测树中的节点;
占位确定模块13可以包括:第一策略获取单元131、第一占位确定单元132;
第一策略获取单元131,用于基于位于预测树中的第二节点的第一空间解码数据信息,获取与第一节点相关联的第一混合解码优化策略;
第一占位确定单元132,用于基于第一混合解码优化策略确定已解码邻居节点的目标占位信息。
其中,第一占位确定单元132可以包括:父节点查找子单元1321、第一占位确定子单元1322、子节点查找子单元1323、第二占位确定子单元1324;
父节点查找子单元1321,用于将待解码节点的父节点所在的划分层确定为父节点层,基于第一混合解码优化策略,在父节点层中,查找父节点的邻居父节点;若查找到的邻居父节点中存在位于预测树中的邻居父节点,则将位于预测树中的邻居父节点作为已解码邻居节点;
第一占位确定子单元1322,用于将已解码邻居节点的占位码的取值设置为第一码值,基于具有第一码值的已解码邻居节点的占位码确定已解码邻居节点的目标占位信息。
子节点查找子单元1323,用于将待解码节点所在的划分层作为子节点层,基于第一混合解码优化策略,在子节点层中,查找待解码节点的邻居子节点;
第二占位确定子单元1324,用于若查找到的邻居子节点的父节点中存在位于预测树中的父节点,则在将位于预测树中的父节点作为已解码邻居节点时,将已解码邻居节点中的邻居子节点作为目标邻居子节点,基于目标邻居子节点的占位码确定已解码邻居节点的目标占位信息。
其中,父节点查找子单元1321、第一占位确定子单元1322、子节点查找子单元1323、第二占位确定子单元1324的具体实现方式可以参见上述图9所对应实施例中的步骤S103,这里不再进行赘述。
其中,目标邻居子节点的占位码的取值为默认码值;默认码值为第一码值或第二码值。
其中,目标邻居子节点的占位码是由已解码邻居节点所属的编码单元所采用的划分树类型所确定的。
其中,目标邻居子节点的占位码是由基于目标划分树类型对已解码邻居节点进行划分后所得到的真实占位码所确定的;目标划分树类型包含八叉树划分类型、四叉树划分类型和二叉树划分类型中的一种。
其中,目标邻居子节点的占位码是由与已解码邻居节点相关联的解码信息所确定的。
其中,解码信息包括已解码邻居节点的点云统计信息;目标邻居子节点的占位码是由点云统计信息和与点云统计信息相关联的统计阈值所确定的;点云统计信息包括已解码邻居节点中的点云点数和已解码邻居节点中的点云密度中的一种。
其中,解码信息包括已解码邻居节点所在的预测树的重建点;在目标邻居子节点的重建点与待解码节点之间的空间距离为目标空间距离时,目标邻居子节点的占位码是由目标空间距离小于距离阈值时所得到的第一码值所确定的。
其中,解码信息包括已解码邻居节点的参考已解码邻居节点的占位码;目标邻居子节点的占位码是由参考已解码邻居节点的占位码所确定的。
其中,解码信息包括与待解码节点具有同一父节点的划分树邻居子节点的子节点占位码;划分树邻居子节点为划分树中已解码的邻居子节点;目标邻居子节点的占位码是由子节点占位码所确定的。
其中,在子节点占位码指示位于子节点层的划分树邻居子节点处于占用状态时,位于子节点层的目标邻居子节点处于占用状态,且目标邻居子节点的占位码是由目标邻居子节点处于占用状态时所得到的第一码值所确定的。
其中,划分树邻居子节点中包含与已解码邻居节点之间距离最小的目标划分树邻居子节点;目标邻居子节点的占位码是由目标划分树邻居子节点的子节点占位码所确定的。
其中,目标邻居子节点的占位码是由待解码节点所在的划分深度与深度阈值的关联关系所确定的;关联关系包括划分深度小于深度阈值时的第一关联关系和划分深度大于深度阈值时的第二关联关系中的一种。
其中,目标邻居子节点的邻居节点类型包含与待解码节点共面的共面邻居子节点、与待解码节点共线的共线邻居子节点、与待解码节点共点的共点邻居子节点、以及在待解码节点所在坐标系的目标维度负方向上,距离待解码节点L个子节点边长处的近距邻居子节点中的一种或多种;L为大于1的正整数。
其中,在第一几何结构的结构类型为预测树类型时,作为待解码节点的第一节点为预测树类型所对应的第一预测树中的节点,且在第二几何结构的结构类型为划分树类型时,作为已解码邻居节点的第二节点为划分树类型所对应的划分树中的节点;
占位确定模块13可以包括:第二策略获取单元133、第二占位确定单元134;
第二策略获取单元133,用于基于位于划分树中的第二节点的第二空间解码数据信息,获取与第一节点相关联的第二混合解码优化策略;
第二占位确定单元134,用于基于第二混合解码优化策略,将已解码邻居节点的占位码作为已解码邻居节点的目标占位信息。
其中,第一策略获取单元131、第一占位确定单元132、第二策略获取单元133、第二占位确定单元134的具体实现方式可以参见上述图9所对应实施例中的步骤S103,这里不再进行赘述。
几何解码模块14,用于基于目标占位信息对压缩码流中的待解码节点的节点几何信息进行解码;节点几何信息包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
其中,目标占位信息用于确定已解码邻居节点的重建点;已解码邻居节点的重建点用于作为待解码节点对应的第二预测树的起始点或待解码节点的独立参考点;第二预测树是通过已解码邻居节点的重建点对第一预测树进行重构后所确定的;独立参考点独立于第一预测树;
几何解码模块14具体用于将第二预测树中的第一预测参考点或独立参考点作为目标参考点,基于目标参考点的重建坐标位置信息对待解码节点的预测树残差信息进行解码。
其中,在第一几何结构的结构类型为预测树类型时,作为待解码节点的第一节点为预测树类型所对应的第一预测树中的节点,且在已解码邻居节点为与第一几何结构具有相同结构类型的第三几何结构中的第三节点时,作为已解码邻居节点的第三节点为预测树类型所对应的第三预测树中的节点;
装置还包括:
残差解码模块15,用于基于第三预测树的起始点或第三预测树的终止点确定目标参考点,基于目标参考点的重建坐标位置信息对待解码节点的预测树残差信息进行解码。
其中,残差解码模块15具体用于在将第三预测树的起始点或第三预测树的终止点作为目标起始点时,通过目标起始点对第一预测树进行重构,得到待解码节点对应的重构预测树;重构预测树的起始点为目标起始点;将重构预测树中的第二预测参考点作为目标参考点。
其中,目标参考点为第三预测树的起始点或第三预测树的终止点,且目标参考点独立于第一预测树。
其中,码流获取模块11、邻居确定模块12、占位确定模块13、几何解码模块14、残差解码模块15的具体实现方式可以参见上述图9所对应实施例中的步骤S101-步骤S104,这里不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图18,是本申请实施例提供的一种点云数据处理装置的结构示意图。如图18所示,点云数据处理装置2可以是运行于编码设备(例如,上述编码设备100A)的一个计算机程序(包括程序代码),例如该点云数据处理装置2为一个应用软件;可以理解的是,该点云数据处理装置2可以用于执行本申请实施例提供的点云数据处理方法中的相应步骤。如图18所示,该点云数据处理装置2可以包括:节点确定模块21、信息确定模块22、几何编码模块23;
节点确定模块21,用于在待编码节点为点云数据的第一几何结构中的第一节点时,确定与待编码节点具有空间相邻关系的已编码邻居节点;
信息确定模块22,用于在已编码邻居节点为不同于第一几何结构的第二几何结构中的第二节点时,确定已编码邻居节点的目标占位信息;
几何编码模块23,用于基于目标占位信息对待编码节点的节点几何信息进行编码,得到点云数据的压缩码流;节点几何信息包含与第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
其中,节点确定模块21、信息确定模块22、几何编码模块23的具体实现方式可以参见上述图16所对应实施例中的步骤S201-步骤S203,这里不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图19,是本申请实施例提供的一种计算机设备的结构示意图。如图19所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图19所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在如图19所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文图9、图16任一个所对应实施例中对该点云数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的点云数据处理装置1和点云数据处理装置2所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图9、图16任一个所对应实施例中对点云数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的点云数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图9、图16任一个所对应实施例提供的方法。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图20,图20是本申请实施例提供的一种点云数据处理***的结构示意图。如图20所示,该点云数据处理***3可以包含点云数据处理装置1a和点云数据处理装置2a。其中,点云数据处理装置1a可以为上述图17所对应实施例中的点云数据处理装置1,可以理解的是,该点云数据处理装置1a可以集成在上述图1所对应实施例中的编码设备100B,因此,这里将不再进行赘述。其中,点云数据处理装置2a可以为上述图18所对应实施例中的点云数据处理装置2,可以理解的是,该点云数据处理装置2a可以集成在上述图1对应实施例中的编码设备100A,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的点云数据处理***实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (26)
1.一种点云数据处理方法,其特征在于,包括:
获取点云数据的压缩码流;
在待解码节点为所述点云数据的第一几何结构中的第一节点时,确定与所述待解码节点具有空间相邻关系的已解码邻居节点;
在所述已解码邻居节点为不同于所述第一几何结构的第二几何结构中的第二节点时,确定所述已解码邻居节点的目标占位信息;
基于所述目标占位信息对所述压缩码流中的所述待解码节点的节点几何信息进行解码;所述节点几何信息包含与所述第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
2.根据权利要求1所述的方法,其特征在于,在所述第一几何结构的结构类型为划分树类型时,作为所述待解码节点的所述第一节点为所述划分树类型所对应的划分树中的节点,且在所述第二几何结构的结构类型为预测树类型时,作为所述已解码邻居节点的所述第二节点为所述预测树类型所对应的预测树中的节点;
所述确定所述已解码邻居节点的目标占位信息,包括:
基于位于所述预测树中的所述第二节点的第一空间解码数据信息,获取与所述第一节点相关联的第一混合解码优化策略;
基于所述第一混合解码优化策略确定所述已解码邻居节点的目标占位信息。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一混合解码优化策略确定所述已解码邻居节点的目标占位信息,包括:
将所述待解码节点的父节点所在的划分层确定为父节点层,基于所述第一混合解码优化策略,在所述父节点层中,查找所述父节点的邻居父节点;
若查找到的邻居父节点中存在位于所述预测树中的邻居父节点,则将位于所述预测树中的邻居父节点作为所述已解码邻居节点;
将所述已解码邻居节点的占位码的取值设置为第一码值,基于具有所述第一码值的所述已解码邻居节点的占位码确定所述已解码邻居节点的目标占位信息。
4.根据权利要求2所述的方法,其特征在于,所述基于所述第一混合解码优化策略确定所述已解码邻居节点的目标占位信息,包括:
将所述待解码节点所在的划分层作为子节点层,基于所述第一混合解码优化策略,在所述子节点层中,查找所述待解码节点的邻居子节点;
若查找到的邻居子节点的父节点中存在位于所述预测树中的父节点,则在将位于所述预测树中的父节点作为所述已解码邻居节点时,将所述已解码邻居节点中的邻居子节点作为目标邻居子节点,基于所述目标邻居子节点的占位码确定所述已解码邻居节点的目标占位信息。
5.根据权利要求4所述的方法,其特征在于,所述目标邻居子节点的占位码的取值为默认码值;所述默认码值为第一码值或第二码值。
6.根据权利要求4所述的方法,其特征在于,所述目标邻居子节点的占位码是由所述已解码邻居节点所属的编码单元所采用的划分树类型所确定的。
7.根据权利要求4所述的方法,其特征在于,所述目标邻居子节点的占位码是由基于目标划分树类型对所述已解码邻居节点进行划分后所得到的真实占位码所确定的;所述目标划分树类型包含八叉树划分类型、四叉树划分类型和二叉树划分类型中的一种。
8.根据权利要求4所述的方法,其特征在于,所述目标邻居子节点的占位码是由与所述已解码邻居节点相关联的解码信息所确定的。
9.根据权利要求8所述的方法,其特征在于,所述解码信息包括所述已解码邻居节点的点云统计信息;所述目标邻居子节点的占位码是由所述点云统计信息和与所述点云统计信息相关联的统计阈值所确定的;所述点云统计信息包括所述已解码邻居节点中的点云点数和所述已解码邻居节点中的点云密度中的一种。
10.根据权利要求8所述的方法,其特征在于,所述解码信息包括所述已解码邻居节点所在的所述预测树的重建点;在所述目标邻居子节点的重建点与所述待解码节点之间的空间距离为目标空间距离时,所述目标邻居子节点的占位码是由所述目标空间距离小于距离阈值时所得到的第一码值所确定的。
11.根据权利要求8所述的方法,其特征在于,所述解码信息包括所述已解码邻居节点的参考已解码邻居节点的占位码;所述目标邻居子节点的占位码是由所述参考已解码邻居节点的占位码所确定的。
12.根据权利要求8所述的方法,其特征在于,所述解码信息包括与所述待解码节点具有同一父节点的划分树邻居子节点的子节点占位码;所述划分树邻居子节点为所述划分树中已解码的邻居子节点;所述目标邻居子节点的占位码是由所述子节点占位码所确定的。
13.根据权利要求12所述的方法,其特征在于,在所述子节点占位码指示位于所述子节点层的所述划分树邻居子节点处于占用状态时,位于所述子节点层的所述目标邻居子节点处于所述占用状态,且所述目标邻居子节点的占位码是由所述目标邻居子节点处于所述占用状态时所得到的第一码值所确定的。
14.根据权利要求12所述的方法,其特征在于,所述划分树邻居子节点中包含与所述已解码邻居节点之间距离最小的目标划分树邻居子节点;所述目标邻居子节点的占位码是由所述目标划分树邻居子节点的子节点占位码所确定的。
15.根据权利要求4所述的方法,其特征在于,所述目标邻居子节点的占位码是由所述待解码节点所在的划分深度与深度阈值的关联关系所确定的;所述关联关系包括所述划分深度小于所述深度阈值时的第一关联关系和所述划分深度大于所述深度阈值时的第二关联关系中的一种。
16.根据权利要求4所述的方法,其特征在于,所述目标邻居子节点的邻居节点类型包含与所述待解码节点共面的共面邻居子节点、与所述待解码节点共线的共线邻居子节点、与所述待解码节点共点的共点邻居子节点、以及在所述待解码节点所在坐标系的目标维度负方向上,距离所述待解码节点L个子节点边长处的近距邻居子节点中的一种或多种;L为大于1的正整数。
17.根据权利要求1所述的方法,其特征在于,在所述第一几何结构的结构类型为预测树类型时,作为所述待解码节点的所述第一节点为所述预测树类型所对应的第一预测树中的节点,且在所述第二几何结构的结构类型为划分树类型时,作为所述已解码邻居节点的所述第二节点为所述划分树类型所对应的划分树中的节点;
所述确定所述已解码邻居节点的目标占位信息,包括:
基于位于所述划分树中的所述第二节点的第二空间解码数据信息,获取与所述第一节点相关联的第二混合解码优化策略;
基于所述第二混合解码优化策略,将所述已解码邻居节点的占位码作为所述已解码邻居节点的目标占位信息。
18.根据权利要求17所述的方法,其特征在于,所述目标占位信息用于确定所述已解码邻居节点的重建点;所述已解码邻居节点的重建点用于作为所述待解码节点对应的第二预测树的起始点或所述待解码节点的独立参考点;所述第二预测树是通过所述已解码邻居节点的重建点对所述第一预测树进行重构后所确定的;所述独立参考点独立于所述第一预测树;
所述基于所述目标占位信息对所述压缩码流中的所述待解码节点的节点几何信息进行解码,包括:
将所述第二预测树中的第一预测参考点或所述独立参考点作为目标参考点,基于所述目标参考点的重建坐标位置信息对所述待解码节点的预测树残差信息进行解码。
19.根据权利要求1所述的方法,其特征在于,在所述第一几何结构的结构类型为预测树类型时,作为所述待解码节点的所述第一节点为所述预测树类型所对应的第一预测树中的节点,且在所述已解码邻居节点为与所述第一几何结构具有相同结构类型的第三几何结构中的第三节点时,作为所述已解码邻居节点的所述第三节点为所述预测树类型所对应的第三预测树中的节点;
所述方法还包括:
基于所述第三预测树的起始点或所述第三预测树的终止点确定目标参考点,基于所述目标参考点的重建坐标位置信息对所述待解码节点的预测树残差信息进行解码。
20.根据权利要求19所述的方法,其特征在于,所述基于所述第三预测树的起始点或所述第三预测树的终止点确定目标参考点,包括:
在将所述第三预测树的起始点或所述第三预测树的终止点作为目标起始点时,通过所述目标起始点对所述第一预测树进行重构,得到所述待解码节点对应的重构预测树;所述重构预测树的起始点为所述目标起始点;
将所述重构预测树中的第二预测参考点作为目标参考点。
21.根据权利要求19所述的方法,其特征在于,所述目标参考点为所述第三预测树的起始点或所述第三预测树的终止点,且所述目标参考点独立于所述第一预测树。
22.一种点云数据处理方法,其特征在于,包括:
在待编码节点为点云数据的第一几何结构中的第一节点时,确定与所述待编码节点具有空间相邻关系的已编码邻居节点;
在所述已编码邻居节点为不同于所述第一几何结构的第二几何结构中的第二节点时,确定所述已编码邻居节点的目标占位信息;
基于所述目标占位信息对所述待编码节点的节点几何信息进行编码,得到所述点云数据的压缩码流;所述节点几何信息包含与所述第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
23.一种点云数据处理装置,其特征在于,包括:
码流获取模块,用于获取点云数据的压缩码流;
邻居确定模块,用于在待解码节点为所述点云数据的第一几何结构中的第一节点时,确定与所述待解码节点具有空间相邻关系的已解码邻居节点;
占位确定模块,用于在所述已解码邻居节点为不同于所述第一几何结构的第二几何结构中的第二节点时,确定所述已解码邻居节点的目标占位信息;
几何解码模块,用于基于所述目标占位信息对所述压缩码流中的所述待解码节点的节点几何信息进行解码;所述节点几何信息包含与所述第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
24.一种点云数据处理装置,其特征在于,包括:
节点确定模块,用于在待编码节点为点云数据的第一几何结构中的第一节点时,确定与所述待编码节点具有空间相邻关系的已编码邻居节点;
信息确定模块,用于在所述已编码邻居节点为不同于所述第一几何结构的第二几何结构中的第二节点时,确定所述已编码邻居节点的目标占位信息;
几何编码模块,用于基于所述目标占位信息对所述待编码节点的节点几何信息进行编码,得到所述点云数据的压缩码流;所述节点几何信息包含与所述第一几何结构的结构类型相关联的划分树占位信息和预测树残差信息中的任意一种。
25.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与所述存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使所述计算机设备执行权利要求1-22任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使具有所述处理器的计算机设备执行权利要求1-22任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211736445.7A CN116033186A (zh) | 2022-12-30 | 2022-12-30 | 一种点云数据处理方法、装置、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211736445.7A CN116033186A (zh) | 2022-12-30 | 2022-12-30 | 一种点云数据处理方法、装置、设备以及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116033186A true CN116033186A (zh) | 2023-04-28 |
Family
ID=86071933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211736445.7A Pending CN116033186A (zh) | 2022-12-30 | 2022-12-30 | 一种点云数据处理方法、装置、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116033186A (zh) |
-
2022
- 2022-12-30 CN CN202211736445.7A patent/CN116033186A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220159312A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US20240121418A1 (en) | Apparatus and method for processing point cloud data | |
KR102609776B1 (ko) | 포인트 클라우드 데이터 처리 방법 및 장치 | |
US20220130075A1 (en) | Device and method for processing point cloud data | |
KR20200140824A (ko) | 3d 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치 | |
US20220366610A1 (en) | Point cloud data processing method and apparatus | |
US20220256190A1 (en) | Point cloud data processing apparatus and method | |
US20220230360A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
CN114009046A (zh) | 用于处理点云数据的装置和方法 | |
US20230154052A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method | |
US20230171431A1 (en) | Device for transmitting point cloud data, method for transmitting point cloud data, device for receiving point cloud data, and method for receiving point cloud data | |
US12003769B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
CN115396645A (zh) | 一种沉浸媒体的数据处理方法、装置、设备及存储介质 | |
EP4228267A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US20220360823A1 (en) | Device and method for processing point cloud data | |
CN116016951A (zh) | 点云处理方法、装置、设备及存储介质 | |
US20230206510A1 (en) | Point cloud data processing device and processing method | |
EP4161074A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method | |
CN116438799A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
US20220327742A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method | |
CN116033186A (zh) | 一种点云数据处理方法、装置、设备以及介质 | |
US20230281878A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method | |
EP4369716A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US20230412837A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
US20240020885A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device |
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 |