CN118055254A - 点云属性编解码方法、装置、设备 - Google Patents

点云属性编解码方法、装置、设备 Download PDF

Info

Publication number
CN118055254A
CN118055254A CN202410247250.9A CN202410247250A CN118055254A CN 118055254 A CN118055254 A CN 118055254A CN 202410247250 A CN202410247250 A CN 202410247250A CN 118055254 A CN118055254 A CN 118055254A
Authority
CN
China
Prior art keywords
attribute
current point
attribute information
point
points
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410247250.9A
Other languages
English (en)
Inventor
朱文婕
许晓中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202410247250.9A priority Critical patent/CN118055254A/zh
Publication of CN118055254A publication Critical patent/CN118055254A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供了一种点云属性的预测方法、装置,可以应用于点云编解码、视频播放等技术领域,该方法包括:若当前点为当前点云中的重复点时,通过确定该当前点的属性预测模式,其中属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,其中前序点为所述当前点云的属性解码顺序中位于当前点之前的属性已解码点;接着,基于当前点的属性预测模式,对当前点的属性信息进行预测,得到当前点的属性预测值;进而基于当前点的属性预测值,确定当前点的属性重建值。这样可以实现对重复点的属性信息的预测和编解码,进而提升了点云的属性编解码性能。

Description

点云属性编解码方法、装置、设备
技术领域
本申请实施例涉及点云编解码技术领域,尤其涉及一种点云属性编解码方法、装置、设备。
背景技术
通过采集设备对物体表面进行采集,形成点云数据,点云数据包括几十万甚至更多的点。如此庞大的数据量给点云数据的传输带来了挑战,因此,需要对点云数据进行压缩后传输。
点云数据的压缩也称为编码,主要包括位置信息的编码和属性信息的编码,在属性信息编码时,通过预测来减小或消除点云数据中的冗余信息。
点云数据中存在重复点,如何对重复点进行属性预测,成为本领域技术人员亟待解决的技术问题。
发明内容
本申请提供一种点云属性编解码方法、装置、设备及存储介质,可以实现对点云数据中的重复点的属性信息进行预测和编码。
第一方面,本申请提供一种点云属性解码方法,包括:
若属性待解码的当前点为当前点云中的重复点时,则确定所述当前点的属性预测模式,所述属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,所述前序点为所述当前点云的属性解码顺序中位于所述当前点之前的属性已解码点,所述K为正整数;
基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值;
基于所述当前点的属性预测值,确定所述当前点的属性重建值。
第二方面,本申请提供一种点云属性编码方法,包括:
若当前点云中属性信息待编码的当前点为所述当前点云中的重复点时,则确定所述当前点的属性预测模式,所述属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,所述前序点为所述当前点云的属性编码顺序中位于所述当前点之前的属性已解码点,所述K为正整数;
基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值;
基于所述当前点的属性预测值,对所述当前点的属性信息进行编码,得到码流。
第三方面,提供了一种点云属性解码装置,包括:
预测模式确定单元,用于若属性待解码的当前点为当前点云中的重复点时,则确定所述当前点的属性预测模式,所述属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,所述前序点为所述当前点云的属性解码顺序中位于所述当前点之前的属性已解码点,所述K为正整数;
预测单元,用于基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值;
重建单元,用于基于所述当前点的属性预测值,确定所述当前点的属性重建值。
第四方面,提供了一种点云属性编码装置,包括:
预测模式确定单元,用于若当前点云中属性信息待编码的当前点为所述当前点云中的重复点时,则确定所述当前点的属性预测模式,所述属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,所述前序点为所述当前点云的属性编码顺序中位于所述当前点之前的属性已解码点,所述K为正整数;
预测单元,用于基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值;
编码单元,用于基于所述当前点的属性预测值,对所述当前点的属性信息进行编码,得到码流。
第五方面,提供了一种编码器,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面其各实现方式中的方法。
第六方面,提供了一种解码器,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,提供了一种芯片,用于实现上述第一方面至第二方面中任一方面或其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第八方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第九方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
综上,本申请若当前点为当前点云中的重复点时,通过确定该当前点的属性预测模式,其中属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,其中前序点为所述当前点云的属性解码顺序中位于当前点之前的属性已解码点,K为正整数;接着,基于当前点的属性预测模式,对当前点的属性信息进行预测,得到当前点的属性预测值;进而基于当前点的属性预测值,确定当前点的属性重建值。这样可以实现对重复点的属性信息的预测和编解码,进而提升了点云的属性编解码性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例涉及的一种点云视频编解码系统的示意性框图;
图2是本申请实施例提供的编码框架的示意性框图;
图3是本申请实施例提供的解码框架的示意性框图;
图4为预测变换树的原理示意图;
图5为本申请实施例提供的一实施例的点云属性解码方法的流程图;
图6为本申请实施例提供的一实施例的点云属性编码方法的流程图;
图7是本申请实施例的一点云属性的预测装置的示意性框图;
图8是本申请实施例的一点云属性的预测装置的示意性框图;
图9是本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。在本发明实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
本申请实施例提供的点云数据编解码方法,可以应用于点云传输、视频播放、点云编解码等各种领域,可以实现对点云数据中重复点的属性信息的准确预测和编码,进而提升点云数据的编解码效果。
为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:
点云(Point Cloud)是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。
点云数据(Point Cloud Data)是点云的具体记录形式,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息和/或反射率等等。例如,所述颜色信息可以是任意一种色彩空间上的信息。例如,所述颜色信息可以是(RGB)。再如,所述颜色信息可以是于亮度色度(YcbCr,YUV)信息。例如,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色,U和V表示为色度(Chroma)用于描述色差信息。例如,根据激光测量原理得到的点云,所述点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,所述点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,所述点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。
点云数据的获取途径可以包括但不限于以下至少一种:(1)计算机设备生成。计算机设备可以根据虚拟三维物体及虚拟三维场景的生成点云数据。(2)3D(3-Dimension,三维)激光扫描获取。通过3D激光扫描可以获取静态现实世界三维物体或三维场景的点云数据,每秒可以获取百万级点云数据;(3)3D摄影测量获取。通过3D摄影设备(即一组摄像机或具有多个镜头和传感器的摄像机设备)对现实世界的视觉场景进行采集以获取现实世界的视觉场景的点云数据,通过3D摄影可以获得动态现实世界三维物体或三维场景的点云数据。(4)通过医学设备获取生物组织器官的点云数据。在医学领域可以通过磁共振成像(Magnetic Resonance Imaging,MRI)、电子计算机断层扫描(Computed Tomography,CT)、电磁定位信息等医学设备获取生物组织器官的点云数据。
点云可以按获取的途径分为:密集型点云和稀疏性点云。
点云按照数据的时序类型划分为:
第一静态点云:即物体是静止的,获取点云的设备也是静止的;
第二类动态点云:物体是运动的,但获取点云的设备是静止的;
第三类动态获取点云:获取点云的设备是运动的。
按点云的用途分为两大类:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
图1为本申请实施例涉及的一种点云编解码系统的示意性框图。需要说明的是,图1只是一种示例,本申请实施例的点云编解码系统包括但不限于图1所示。如图1所示,该点云编解码系统包含编码设备110和解码设备120。其中编码设备用于对点云数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的点云数据。
本申请实施例的编码设备110可以理解为具有点云编码功能的设备,解码设备120可以理解为具有点云解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、点云游戏控制台、车载计算机等。
在一些实施例中,编码设备110可以经由信道130将编码后的点云数据(如码流)传输给解码设备120。信道130可以包括能够将编码后的点云数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
在一个实例中,信道130包括使编码设备110能够实时地将编码后的点云数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的点云数据,且将调制后的点云数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的点云数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的点云数据。
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的点云数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的点云数据。可选的,该存储服务器可以存储编码后的点云数据且可以将该编码后的点云数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
一些实施例中,编码设备110包含点云编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。
在一些实施例中,编码设备110除了包括点云编码器112和输入接口113外,还可以包括点云源111,点云源111可以理解为获取点云数据的源头。
点云源111可包含点云采集装置(例如,扫描仪)、点云存档、点云输入接口、计算机图形系统中的至少一个。其中,点云输入接口用于从点云内容提供者处接收点云数据,计算机图形系统用于产生点云数据。
点云编码器112对来自点云源111的点云数据进行编码,产生码流。点云编码器112经由输出接口113将编码后的点云数据直接传输到解码设备120。编码后的点云数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
在一些实施例中,解码设备120包含输入接口121和点云解码器122。
在一些实施例中,解码设备120除包括输入接口121和点云解码器122外,还可以包括显示装置123。
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接收编码后的点云数据。
点云解码器122用于对编码后的点云数据进行解码,得到解码后的点云数据,并将解码后的点云数据传输至显示装置123。
显示装置123显示解码后的点云数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
此外,图1仅为实例,本申请实施例的技术方案不限于图1,例如本申请的技术还可以应用于单侧的点云编码或单侧的点云解码。
由于点云是海量点的集合,存储所述点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此对点云进行压缩是很有必要的。
截止目前,可通过点云编码框架对点云进行压缩。
点云编码框架可以是运动图像专家组(Moving Picture Experts Group,MPEG)提供的基于几何的点云压缩(Geometry Point Cloud Compression,G-PCC)编解码框架或基于视频的点云压缩(Video Point Cloud Compression,V-PCC)编解码框架,也可以是音点云编码标准(Audio Video Standard,AVS)组织提供的AVS-PCC编解码框架。G-PCC及AVS-PCC均针对静态的稀疏型点云,其编码框架大致相同。G-PCC编解码框架可用于针对第一静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。
下面以G-PCC编解码框架对本申请实施例可适用的编解码器进行说明。
图2是本申请实施例涉及的点云编码器的一种示意性框图。
如图2所示,点云编码器200可以从采集设备获取点云的位置信息(也称为几何信息或几何位置)和属性信息。点云的编码包括位置编码和属性编码。
位置编码的过程包括:对点云中的点进行预处理,例如坐标变换、量化和移除重复点等;接着,对预处理后的点云进行几何编码,例如构建八叉树,或构建预测树,基于构建的八叉树或预测树进行几何编码形成几何码流。同时,基于构建的八叉树或预测树输出的位置信息,对点云数据中各点的位置信息进行重建,得到各点的位置信息的重建值。
属性编码过程包括:通过给定输入点云的位置信息的重建信息和属性信息的原始值,选择三种预测模式的一种进行点云预测,对预测后的结果进行量化,并进行算术编码形成属性码流。
如图2所示,位置编码可通过以下单元实现:
坐标转换(Tanmsform coordinates)单元201、体素(Voxelize)单元202、八叉树划分(Analyze octree)单元203、几何重建(Reconstruct geometry)单元204、算术编码(Arithmetic enconde)单元205、表面拟合单元(Analyze surface approximation)206。
坐标转换单元201可用于将点云中点的世界坐标变换为相对坐标。例如,点的几何坐标分别减去xyz坐标轴的最小值,相当于去直流操作,以实现将点云中的点的坐标从世界坐标转换为相对坐标。
体素(Voxelize)单元202也称为量化和移除重复点(Quantize and removepoints)单元,可通过量化减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标,基于此,可通过去重操作将重复的点删除;例如,具有相同量化位置和不同属性信息的多个云可通过属性转换合并到一个云中。在本申请的一些实施例中,体素单元202为可选的单元模块。
八叉树划分单元203可利用八叉树(octree)编码方式,编码量化的点的位置信息。例如,将点云按照八叉树的形式进行划分,由此,点的位置可以和八叉树的位置一一对应,通过统计八叉树中有点的位置,并将其标识(flag)记为1,以进行几何编码。
在一些实施例中,在基于三角面片集(trianglesoup,trisoup)的几何信息编码过程中,同样也要通过八叉树划分单元203对点云进行八叉树划分,但区别于基于八叉树的几何信息编码,该trisoup不需要将点云逐级划分到边长为1X1X1的单位立方体,而是划分到block(子块)边长为W时停止划分,基于每个block中点云的分布所形成的表面,得到该表面与block的十二条边所产生的至多十二个vertex(交点),通过表面拟合单元206对交点进行表面拟合,对拟合后的交点进行几何编码。
几何重建单元204可以基于八叉树划分单元203输出的位置信息或表面拟合单元206拟合后的交点进行位置重建,得到点云数据中各点的位置信息的重建值。或者,基于预测树构建单元207输出的位置信息进行位置重建,得到点云数据中各点的位置信息的重建值。
算术编码单元205可以采用熵编码方式对八叉树分析单元203输出的位置信息或对表面拟合单元206拟合后的交点进行算术编码,生成几何码流;几何码流也可称为几何比特流(geometry bitstream)。
属性编码可通过以下单元实现:
颜色转换(Transform colors)单元210、重着色(Transfer attributes)单元211、区域自适应分层变换(Region Adaptive Hierarchical Transform,RAHT)单元212、生成LOD(Generate LOD)单元213以及提升(lifting transform)单元214、量化系数(Quantizecoefficients)单元215以及算术编码单元216。
需要说明的是,点云编码器200可包含比图2更多、更少或不同的功能组件。
颜色转换单元210可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。
重着色单元211利用重建的几何信息,对颜色信息进行重新着色,使得未编码的属性信息与重建的几何信息对应起来。
经过重着色单元211转换得到点的属性信息的原始值后,可选择任一种变换单元,对点云中的点进行变换。变换单元可包括:RAHT变换212和提升(lifting transform)单元214。其中,提升变化依赖生成细节层(level of detail,LOD)。
RAHT变换和提升变换中的任一项可以理解为用于对点云中点的属性信息进行预测,以得到点的属性信息的预测值,进而基于点的属性信息的预测值得到点的属性信息的残差值。例如,点的属性信息的残差值可以是点的属性信息的原始值减去点的属性信息的预测值。
在本申请的一实施例中,生成LOD单元生成LOD的过程包括:根据点云中点的位置信息,获取点与点之间的欧式距离;根据欧式距离,将点分为不同的细节表达层。在一个实施例中,可以将欧式距离进行排序后,将不同范围的欧式距离划分为不同的细节表达层。例如,可以随机挑选一个点,作为第一细节表达层。然后计算剩余点与该点的欧式距离,并将欧式距离符合第一阈值要求的点,归为第二细节表达层。获取第二细节表达层中点的质心,计算除第一、第二细节表达层以外的点与该质心的欧式距离,并将欧式距离符合第二阈值的点,归为第三细节表达层。以此类推,将所有的点都归到细节表达层中。通过调整欧式距离的阈值,可以使得每层LOD层的点的数量是递增的。应理解,LOD划分的方式还可以采用其它方式,本申请对此不进行限制。
量化单元215可用于量化点的属性信息的残差值。例如,若量化单元215和RAHT变换单元212相连,则量化单元215可用于量化RAHT变换单元212输出的点的属性信息的残差值。
算术编码单元216可使用零行程编码(Zero run length coding)对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。
结合图2,本申请对于几何结构编码,主要操作和处理如下:
(1)预处理(Pre-processing):包括坐标变换(Transform coordinates)和体素化(Voxelize)。通过缩放和平移的操作,将3D空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
(2)几何编码(Geometry encoding):几何编码中包含两种模式,可在不同条件下使用:
(a)基于八叉树的几何编码(Octree):八叉树是一种树形数据结构,在3D空间划分中,对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用‘1’和‘0’指示,获得占用码信息(occupancy code)作为点云几何信息的码流。
(b)基于三角表示的几何编码(Trisoup):将点云划分为一定大小的块(block),定位点云表面在块的边缘的交点并构建三角形。通过编码交点位置实现几何信息的压缩。
(3)几何量化(Geometry quantization):量化的精细程度通常由量化参数(QP)来决定,QP取值越大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。在点云编码中,量化是直接对点的坐标信息进行的。
(4)几何熵编码(Geometry entropy encoding):针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(CABAC,Content Adaptive Binary Arithmetic Coding)。
对于属性信息编码,主要操作和处理如下:
(1)属性重上色(Recoloring):有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复3D点云的各点坐标信息。在原始点云中寻找对应一个或多个邻居点的属性信息,作为该重建点的属性信息。
(2)属性预测编码(Predition):属性预测编码时,通过对几何信息或属性信息的邻近关系,选择一个或多个点作为预测值,并求加权平均获得最终属性预测值,对真实值与预测值之间的差值进行编码。
(3)属性变换编码(Transform):属性变换编码中包含三种模式,可在不同条件下使用。
(a)预测变换编码(Predicting Transform):根据距离选择子点集,将点云划分成多个不同的细节层(Level of Detail,LoD),实现由粗糙到精细化的点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的残差信号。其中,最底层的点作为参考信息进行编码。
(b)提升变换编码(Lifting Transform):在LoD相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性值,获得对应的残差信号。
(c)分层区域自适应变换编码(Region Adaptive Hierarchical Transform,RAHT):属性信息经过RAHT变换,将信号转换到变换域中,称之为变换系数。
(4)属性信息量化(Attribute quantization):量化的精细程度通常由量化参数(QP)来决定。在预测变换编码及提升变换编码中,是对残差值进行量化后进行熵编码;在RAHT中,是对变换系数进行量化后进行熵编码。
(5)属性熵编码(Attribute entropy coding):量化后的属性残差信号或变换系数一般使用行程编码(run length coding)及算数编码(arithmetic coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
图3是本申请实施例涉及的点云解码器的一种示意性框图。
如图3所示,点云解码器300可以从编码设备获取点云的码流,通过解析码得到点云中的点的位置信息和属性信息。点云的解码包括位置解码和属性解码。
位置解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的位置信息进行重建,以得到点的位置信息的重建信息;对点的位置信息的重建信息进行坐标变换,得到点的位置信息。点的位置信息也可称为点的几何信息。
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择三种预测模式的一种进行点云预测,得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间反转化,以得到解码点云。
如图3所示,位置解码可通过以下单元实现:
算数解码单元301、八叉树重构(synthesize octree)单元302、表面重构单元(Synthesize suface approximation)303、几何重建(Reconstruct geometry)单元304、坐标系反变换(inverse transform coordinates)单元305。
属性编码可通过以下单元实现:
算数解码单元310、反量化(inverse quantize)单元311、RAHT逆变换单元312、生成LOD(Generate LOD)单元313、提升逆变换(Inverselifting)单元314以及颜色反变换(inverse trasform colors)单元315。
需要说明的是,解压缩是压缩的逆过程,类似的,解码器300中的各个单元的功能可参见编码器200中相应的单元的功能。另外,点云解码器300可包含比图3更多、更少或不同的功能组件。
解压缩是压缩的逆过程,类似的,点云解码器300中的各个单元的功能可参见编码框架200中相应的单元的功能。
在解码端,解码器获得压缩码流后,首先进行熵解码,获得各种模式信息及量化后的几何信息以及属性信息。首先,几何信息经过逆量化,得到重建的3D点位置信息。另一方面,属性信息经过逆量化得到残差信息,并根据采用的变换模式确认参考信号,得到重建的属性信息,按顺序与几何信息一一对应,产生输出的重建点云数据。
例如,点云解码器300可根据点云中点与点之间的欧式距离将点云划分为多个LoD;然后,依次对LoD中点的属性信息进行解码;例如,计算零行程编码技术中零的数量(zero_cnt),以基于zero_cnt对残差进行解码;接着,解码框架300可基于解码出的残差值进行逆量化,并基于逆量化后的残差值与当前点的预测值相加得到该点云的重建值,直到解码完所有的点云。当前点将会作为后续LoD中点的最近邻居,并利用当前点的重建值对后续点的属性信息进行预测。
由上述图2可知,点云编码器200从功能上主要包括了两部分:位置编码模块和属性编码模块,其中位置编码模块用于实现点云的位置信息的编码,形成几何码流,属性编码模块用于实现点云的属性信息的编码,形成属性码流,本申请主要涉及属性信息的编码。
需要说明的是,编码端属性信息编码时确定的预测、量化、编码、滤波等模式信息或者参数信息等在必要时携带在属性码流中。解码端通过解析属性码流及根据已有信息进行分析确定与编码端相同的预测、量化、编码、滤波等模式信息或者参数信息,从而保证编码端获得的属性信息的重建值和解码端获得的属性信息的重建值相同。
上述是基于G-PCC编解码框架下的点云编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于G-PCC编解码框架下的点云编解码器的基本流程,但不限于该框架及流程。
下面对本申请实施例涉及的相关技术进行介绍:
在一些基于重复点的预测值方法中,令当前待解码点为Pj,其坐标为(xPj,yPj,zPj),其前一个已解码的点为Pj-1,其坐标为(xPj-1,yPj-1,zPj-1)。如果(xPj,yPj,zPj)与(xPj-1,yPj-1,zPj-1)相等,定义重复点标志位isDuplicatePoint=1,将点Pj-1作为待解码点Pj的预测点。
在当前待解码点为重复点时,针对反射率属性,该重复点的属性预测值为前一个点的重建属性值,无需解析其符号位,即默认为非负数。
针对颜色属性,重复点的Y或R分量属性预测值为前一个点的属性重建值,无需解析其符号位,即默认为非负数。
其中,颜色残差编码顺序开关orderSwitch是二值变量。值为‘0’表示颜色残差编码顺序是YUV/RGB顺序;值为‘1’表示颜色残差编码顺序是UYV/GRB顺序。
基于重复点的预测值方案在多重属性(同时具有颜色和反射率等)情况下,处于关闭状态。
下面对点云的属性预测过程进行介绍。
点云的属性编码主要包括如下步骤:
步骤一,对点云进行重排序。
获取点云的坐标(x,y,z),基于空间填充曲线生成每个点的莫顿码或希尔伯特码,并由小到大排序得到莫顿序或希尔伯特序;
以几何坐标的莫顿码为例,点云中点的几何位置用三维笛卡尔坐标(X,Y,Z)表示。用N比特来表示每个坐标值,k-th点的坐标(Xk,Yk,Zk)可以表示成
k-th点对应的莫顿码可以表示如下:
将每三个比特用八进制数表示则k-th点对应的莫顿码可以表示成
步骤二,基于排序后的点云进行邻居点的选择。
其中邻居点的选择方式至少包括如下几种:
第一种方式是,基于距离的邻居点选择,具体步骤如下:
在莫顿序或希尔伯特序的前maxNumOfNeighbours个邻居候选点中,计算每个点(x1,y1,z1)到当前待解码点(x,y,z)的曼哈顿距离d=|x-x1|+|y-y1|+|z-z1|。
在一种示例中,确定距离最近的k个点作为当前待解码点的邻居。
在一种示例中,确定k个距离最小的点中的最大距离值,将所有距离小于等于最大距离值的邻居候选点作为当前点的邻居,最终确定距离最近的m个点作为当前待解码点的最近邻。
第二方式是,基于空间关系和距离的选择邻居点,具体步骤如下:
步骤1,确定初始块大小,即确定各点对应码字的初始右移位数N。在此基础上,N+3则为对应的父块范围。
步骤2,点云按照一定顺序遍历,例如当前待解码点P在其所在B块的父块及与其共面、共线以及共点的邻居块的范围内的已解码点(限制在前K个点的范围内)进行最近邻的搜索。
步骤3,若未找够邻居点,则按基于距离的方法进行邻居点选择。
下面是一个基于距离的邻居点选择方法示例,对颜色、反射率或同时存在颜色和反射率的点云数据的处理有所不同。
情况1,对于颜色属性,基于替换最远点的预测点全搜索。
首先,令当前待解码组有L个点,当前待解码点Pi为几何解码点重排序后的第i个点,组内第0个点Ps为根据colorReorderMode确定的顺序(原始顺序或莫顿或希尔伯特)重排序后的第s个点(0≤i,s<N,N为待解码点的总数),Pi为组内第n个点(0≤n<L)。对于基于预测算法的解码过程一,当前待解码组只有1个点,i=s,Pi和Ps为同一个点。
接着,确定邻居预测点。
令预测参考点集为Sp,长度上限为aps中的maxNumOfNeighbours。Sp中包含了当前点索引之前的最多maxNumOfNeighbours个已解码点的坐标重建值与颜色重建值。对于当前待解码点Pi,邻居预测点的计算方法如下:
如果s=0,则无需查找,将{128,128,128}作为预测值;
如果s=1,则P0为邻居预测点;
如果s=2,则P0,P1为邻居预测点;
如果3<=s<maxNumOfNeighbours,则Pi-1、Pi-2、Pi-3为邻居预测点;
如果i>=maxNumOfNeighbours,在Sp中遍历查找当前待解码点Pi(xi,yi,zi)的3个距离最近点及最多13个等距离点作为当前待解码点的邻居预测点。对于Sp中任一点Pj(xj,yj,zj),距离d计算采用曼哈顿距离,定义为:d=|xi-xj|+|yi-yj|+|zi-zj|。如果两个点距离相同,则优先选择最先遍历的顶点。
其中,3个距离最近点及最多13个等距离点作为当前点的预测点的搜索方式如下:
(1)距离最近点集合初始化为空集。当邻居预测点集合中的点数小于3个,即在处理当前点的Sp中的前3个点Pi-1、Pi-2、Pi-3时,按照索引从大到小的顺序将这3个点插入距离最近点集合,且每插入一个点之后,都要根据距离最近点集合中的点与当前待解码点之间的距离,对距离最近点集合中的点进行升序排序,使得排序之后的三个点的距离满足d1<=d2<=d3。这里dk表示距离最近点集合中第k点与当前解码点的距离,k=1,2,3。
(2)继续在Sp中按照索引递减顺序搜索第j点,当距离最近点集合中的点数等于3个时,若第j点与当前待解码点之间的距离dj等于d3,则将第n点加入到等距离点集合中;若第j点与当前待解码点之间的距离dj小于d3,则将d3对应的点移出距离最近点集合并令dtemp=d3,并将j点加入距离最近点集合,加入新点后再次根据距离最近点集合中的点与当前待解码点之间的距离对距离最近点集合中的点进行升序排序,然后将重排序后的d3与被移出点的距离dtemp进行比较,若dtemp=d3,则将被移出的点加入到等距离点集合中,否则将等距离点集合清空;
(3)直到搜索完Sp中的所有点,最终获得3个距离最近点以及最多13个等距离点作为当前点的预测点。
然后,确定最远点。
如果s>maxNumOfNeighbours,在Sp内[n,maxNumOfNeighbours-1]查找距离Pi最远的点,假设距离Pi最远点的距离为Dmax,若存在多个与Pi距离为Dmax的点,按照Sp中的索引从小到大排序,确定第一个为最远点进行交换,将该最远点的坐标重建值及颜色重建值与Sp的第n个点进行交换。
最后,更新预测参考点集。
在当前组L个点全部预测、重构完成后,更新预测参考点集。
如果0<=s<maxNumOfNeighbours,将当前待解码组L个点的坐标重建值及颜色重建值放入Sp,以当前点Pi为例,将其放入Sp的第m个点,m等于i%maxNumOfNeighbours。
如果s>maxNumOfNeighbours,用当前待解码组L个点的坐标重建值及颜色重建值替换Sp的前L个点的信息,以当前点Pi为例,用其替换Sp的第n个点。
情况2,对于反射率属性,基于替换最远点和空间偏倚的预测点全搜索。
首先,将几何解码后的点的三维笛卡尔坐标中的z轴坐标乘以aps中的空间偏倚系数axisBias,x轴、y轴坐标不变,再进行几何解码点重排序。
令当前待解码组有L个点,当前待解码点Pi为几何解码点重排序后的第i个点,组内第0个点Ps为根据reflReorderMode确定的顺序(原始顺序或莫顿或莫顿或希尔伯特)重排序后的第s个点(0≤i,s<N,N为待解码点的总数),Pi为组内第n个点(0≤n<L)。对于预测算法,当前待解码组只有1个点,i=s,Pi和Ps为同一个点。
接着,确定邻居预测点。
令预测参考点集为Sp,长度上限为aps中的maxNumOfNeighbours。Sp中包含了当前点索引之前的最多maxNumOfNeighbours个已解码点的坐标重建值与反射率重建值。对于当前待解码点Pi,邻居预测点的计算方法如下:
如果s=0,不进行邻居预测点查找,将{0}作为预测值;
如果s=1,则P0为预测点;
如果s=2,则P0,P1为预测点;
如果3<=s<maxNumOfNeighbours,则Pi-1、Pi-2、Pi-3为邻居预测点;
如果i>maxNumOfNeighbours,在Sp中遍历查找与当前待解码点Pi(xi,yi,zi)距离最近的3个点作为当前待解码点的邻居预测点Pj(xj,yj,zj),对于Sp中任一点Pj(xj,yj,zj),距离d计算采用曼哈顿距离,定义为:d=|xi-xj|+|yi-yj|+|zi-zj|。
然后,确定最远点。
如果s>=maxNumOfNeighbours,在Sp内[n,maxNumOfNeighbours-1]查找距离Pi最远的点,假设距离Pi最远点的距离为Dmax,若存在多个与Pi距离为Dmax的点,按照Sp中的索引从小到大排序,确定第一个为最远点进行交换,将该最远点的坐标重建值及反射率重建值与Sp的第n个点进行交换。
最后,更新预测参考点集。
在当前组L个点全部预测、重构完成后,更新预测参考点集:
如果0<=s<maxNumOfNeighbours,将当前待解码组L个点的坐标重建值及反射率重建值放入Sp,以当前点Pi为例,将其放入Sp的第m个点,m等于i%maxNumOfNeighbours。
如果s>=maxNumOfNeighbours,用当前待解码组L个点的坐标重建值及反射率重建值替换Sp的前L个点的信息,以当前点Pi为例,用其替换Sp的第n个点。
情况3,多属性点云的预测点查找。
首先,对于包含多种属性类型的点云,维护一个长度上限为maxNumOfNeighbours的预测参考点集,记为Sp,Sp中包含了顶点的坐标,颜色,反射率。令当前待解码组有L个点,当前待解码点Pi为几何解码点重排序后的第i个点,组内第0个点Ps为希尔伯特重排序后的第s个点(0≤i,s<N,N为待解码点的总数),Pi为组内第n个点(0≤n<L)。对于预测算法,当前待解码组只有1个点,i=s,Pi和Ps为同一个点。
当crossAttrTypePred=0,分别采用情况1和情况2的方法对颜色属性和反射率属性进行预测。
当crossAttrTypePred=1,在属性预测时,对于在先预测属性采用情况1和情况2的对应方法对颜色属性和反射率属性进行预测点寻找,对于在后预测属性采用情况1和情况2的对应方法对颜色属性和反射率属性进行预测点寻找,其中查找距离最近的点所用的距离改用综合距离dis。并用情况1和情况2的对应方法确定最远点,在后预测属性完成预测后统一进行最远点交换及更新。
在属性预测变换时,对于在先预测属性采用情况1和情况2的对应方法对反射率属性和颜色属性性进行预测点寻找,对于在后预测属性采用情况1和情况2的对应方法对颜色属性和反射率属性进行预测点寻找,其中查找距离最近的点所用的距离改用综合距离dis。
在后预测属性的预测点寻找结束后,如果s>=maxNumOfNeighbours,在Sp内[n,maxNumOfNeighbours-1]查找距离Pi几何信息距离disGeom最远的点,假设距离Pi最远点的距离为Dmax,若存在多个与Pi距离为Dmax的点,按照Sp中的索引从小到大排序,确定第一个为最远点进行交换,将该最远点的坐标与反射率重构值、颜色重构值与Sp的第n个点进行交换。
在当前组L个点全部预测、重构完成后,更新预测参考点集:
如果0<=s<maxNumOfNeighbours,将当前待解码组L个点的坐标与反射率重构值、颜色重构值放入Sp,以当前点Pi为例,将其放入Sp的第m个点,m等于i除以maxNumOfNeighbours的余数。
如果s>=maxNumOfNeighbours,用当前待解码组L个点的坐标与反射率重构值、颜色重构值值替换Sp的前L个点的信息,以当前点Pi为例,用其替换Sp的第n个点。
步骤三,基于预测点的属性重建值,确定的当前待解码点的属性预测值。
在一些实施例中,基于距离的加权计算:
用邻居点与当前点之间的曼哈顿距离的倒数作为权重,最后计算k个邻居的属性重构值的加权平均获得属性预测值。
其中,当前点的几何坐标为Pj=(xj,yj,zj),查找到的k个预测点的坐标为:(xjn,yjn,zjn)n=1,2,...,k
对k个颜色属性预测点,定义:wjn=|xj-xjn|+|yj-yjn|+|zj-zjn|,其中n=1,2,...,k。
对k个反射率属性预测点,定义:wjn=|xj-xjn|+|yj-yjn|+θ|zj-zjn|,其中n=1,2,...,k,空间偏倚系数θ=aps.axisBias。
k个预测点的属性重建值为:
在一种示例中,k个预测点的权重计算如下公式(1)所示:
在一种示例中,当前点的属性预测值Aj′可以通过如下公式(2)计算得到:
在一些实施例中,基于距离和其他参数的加权计算:
假设当前点的几何坐标为Pj=(xj,yj,zj)。
查找到的p个预测点中,距离小于最大距离值的邻居候选点有k个,坐标为:(xjn,yjn,zjn)n=1,2,...,k,属性重建值为
k个预测点的权重为:其中,n=1,2,...,k。
查找到的p个预测点中,距离等于最大距离值的同距离点有r个,坐标为:(xjm,yjm,zjm)m=1,2,...,k,属性重建值为
优化系数dwm的计算方法如下:
当attrQuantParam=0时,dwm=1/r;
当attrQuantParam>0时,dwm=1。
r个同距离点的优化权重为:其中,m=1,2,…,r。
当k=0时,当前点的属性预测值计算方式如公式(3)所示:
其中,m=1,2,…,r。
当k>0时,当前点的属性预测值计算方式如公式(4)所示:
其中,n=1,2,…,k;m=1,2,…,r。
在一些实施例中,还可以基于小波变换的属性编码,对点云的属性信息进行编码。具体的,包括如下步骤:
首先,预测变换树的构建。
如图4所示,基于排序点云数据以及排序点云数据之间的距离构建多层预测变换树结构过程包括:
对于有N个几何点的点云,构建M层预测变换结构。将N个点作为最低层(M层)的节点,计算当前点i与下一点i+1的距离di。如果di 2小于距离阈值thm,点i和点i+1为变换模式,两点合并构成它们在M-1层的父节点。这些父节点构成M-1层的节点,且按照合并的先后顺序排列,父节点的几何坐标为其两个子节点的中点位置。如果di 2大于距离阈值thm,点i为预测模式,继续处理下一个点。
对M-1层的所有节点,按照上述步骤合并,构成M-2层的节点,以此类推,对每一层的节点进行合并。当第m层的节点数少于128或者第m层的节点数大于等于m+1层的节点数的一半时,对所有节点进行两两合并,无需判断距离关系。当一层内没有节点合并时停止。
距离阈值的初始值,即最底层的距离阈值thM计算方法是,点云平均空间包围盒边长meanBB的平方除以点云点数numPoints,再除以预设比例ratio,最后取不小于1的整数。示例性,如公式(5)所示:
其中,预设比例ratio由aps中的colorInitPredTransRatio或reflInitPredTransRatio计算获得。示例性的,可以根据如下公式(6)计算得到:
ratio=2colorInitPredTransRatio
ratio=2reflInitPredTransRatio (6)
其中,第m层距离阈值thm的更新方法为,第(m+1)层距离阈值乘上第(m+1)层节点数Nm+1,然后除以第m层节点数Nm,最后取不小于1的整数。示例性的,如公式(7)所示:
在构建预测变换树的过程中,同一层的距离阈值thm也在更新。在第m层的构建过程中,统计连续出现预测编码模式节点和变换编码模式节点的个数,记为Np和Nt。对于点i,如果Np大于阈值Tp,更新距离阈值thm=thm*2;如果Nt大于阈值Tt且距离阈值thm不为1,更新距离阈值thm=max(1,thm/2)。使用更新后的距离阈值thm对后续点间距离进行比较。
划分结束后得到一个M层预测变换树结构,基于此结构,进行分层变换和预测。
接着,属性变换系数的反变换和预测。
基于M层预测变换树结构以及对应的解码方式分别对各节点进行点云属性解码。获取反量化后的属性变换系数(第一层的重建DC系数和其他层的重建AC系数),和反量化后的直流残差系数(重建DC残差系数),自上而下逐层解码。
(1)对属性变换系数(第一层的重建DC系数和其他层的重建AC系数),直流残差系数(重建DC残差系数)进行基于层的矫正。
分别对第一层节点的重建DC系数乘以(C)M-1,对第m层节点的重建AC系数乘以(C)M-m,对第m+1层节点的重建DC残差系数乘以(C)M-m-1,(m=1,2,…M-1)。
(2)对矫正后的属性变换系数进行反变换与预测。
属性变换系数的反变换:对第m层的第j个节点,输入为j节点的属性变换系数(重建DC系数b1,重建AC系数b2),如公式(8)所示逆变换输出对应两个子节点的重建DC系数a1和a2
a1=(b1+b2)/2
a2=(b1-b2)/2 (8)
如此,遍历m层的所有节点。
(3)直流残差系数的预测补偿。
对第m+1层的第j个节点,如果其没有父节点,则在层内搜索其距离最近的K(K=3)个已经计算过重建DC系数的节点,搜索范围为前向128点和后序128点,利用9.3.9.1方法计算j节点的DC预测值。将DC预测值与重建直流残差系数相加得到j节点的重建DC系数。如此,遍历m+1层的所有节点。
若已重建DC系数的节点为m个,步骤如下:
1.当m=0时,颜色属性测值为{128,128,128},反射率属性的预测值为0;
2.当m<=K时,该m个节点为邻居预测点;
3.当m>K时,颜色属性采用K(K=3)个距离最近点及最多13个等距离点作为当前点的邻居预测点;反射率属性采用K(K=3)个距离最近点作为当前点的邻居预测点;
基于m=1,2,…,M-2,M-1,自上而下的遍历M层结构的每一层并且循环执行上述步骤(2)和步骤(3),进行相关计算。最终预测变换树的第M层,每个节点的重建DC系数即为该点的属性解码值。
在一些实施例中,可以基于预测与变换融合的属性编码,对点云的属性信息进行编码。
首先对经过颜色空间转换和重着色的待编码点云按照希尔伯特码由小到大进行重排序,然后采用自适应的分组和相应的K元变换。具体过程如下:
(1)点云分组
i)基于空间填充曲线的序对点云依次进行分组,将希尔伯特码前L位相同的点归为一组。
ii)细分组。当同组的点数多于预设限制点数时,进行细分组。
iii)可根据前序组的分组点数情况进行调整。
(2)组内预测
预测点选择范围在当前组第一个点的前序maxNumOfNeighbours个点中。
i)根据已有的预测方法进行逐点预测。
ii)对各组选择或计算统一的预测值。如均采用当前组的第一个点的预测值作为当前组的预测值。
(3)基于残差值变换
每组点的预测属性残差值进行K_i元DCT变换(K_i=2…8),将变换系数进行量化熵编码。K_i=1时,不进行任何变换计算,直接将属性残差值进行量化熵编码。对所得变换系数进行量化。
上述对点云的属性编码相关过程进行介绍。在点云数据中存在重复点,目前的点云的属性编码方法,对重复点的属性编码过程未进行明确规定,例如,当存在重复点且采用普通预测值计算时并未进行规定,进而导致点云的属性编码性能低。
为了解决该技术问题,本申请实施例提出了一种点云属性的编解码方法,可以实现对点云中重复点的属性信息的可靠性编解码。具体的,若当前点为当前点云中的重复点时,则确定该当前点的属性预测模式,其中属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,其中前序点为所述当前点云的属性解码顺序中位于当前点之前的属性已解码点,K为正整数;接着,基于当前点的属性预测模式,对当前点的属性信息进行预测,得到当前点的属性预测值;进而基于当前点的属性预测值,确定当前点的属性重建值。这样可以实现对重复点的属性信息的预测和编解码,进而提升了点云的属性编解码性能。
下面结合具体的实施例,对本申请实施例涉及的点云编解码方法进行介绍。
首先,以解码端为例,对本申请实施例提供的点云解码方法进行介绍。
图5为本申请一实施例提供的点云解码方法流程示意图。本申请实施例的点云解码方法可以由上述图1或图3所示的点云解码设备或点云解码器完成。
如图5所示,本申请实施例的点云解码方法包括:
S101、若属性待解码的当前点为当前点云中的重复点时,则确定当前点的属性预测模式。
其中,属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,前序点为当前点云的属性解码顺序中位于当前点之前的属性已解码点,K为正整数。
需要说明的是,本实施例涉及点云的属性信息的解码过程,点云的属性信息解码是在点云的位置信息解码后执行的。其中点云的位置信息也称为点云的几何信息。
本申请实施例中,当前点为当前点云中属性信息待解码的点,在一些示例中,当前点也称为当前待解码点、当前属性待解码的点等。已解码点可以理解为几何信息已解码的点和属性信息已解码的点。具体的,点云码流包括几何码流和属性码流,解码端首先对点云的几何码流进行解码,得到点云中点的几何信息的重建值。接收,对点云的属性码流进行解码,得到点云中点的属性信息的重建值,点云中点的几何信息和属性信息结合,得到解码后的点云。本申请实施例涉及到点云属性码流的解码过程。
在对点云的属性码流的解码过程中,对点云中每个点的解码过程相同,以点云中待解码的当前点为例,首先判断该当前点是否为重复点。
若当前点不是重复点时,获得点云中已解码点,并从这些已解码点中选择当前点的至少一个邻居点。根据当前点的至少一个邻居点的属性信息的重建值,得到当前点属性信息的预测值,再根据当前点属性信息的预测值和点云的属性码流中解析出当前点的属性信息的残差值,得到当前点的属性信息的重建值。
若当前点为重复点时,则确定当前点的属性预测方法,其中当前点的属性预测方法包括本申请提出的重复点属性预测方法和其他的预测方法。
在一种示例中,将编解码端默认的预测方法,确定为当前点的属性预测方法。
在一些示例中,解码端解码码流,得到属性预测方法的标志位,进而基于该标志位,确定当前点的属性预测方法。
在一种示例中,基于当前点云的数据类型,确定当前点的属性预测方法。
解码端基于上述步骤,若确定出当前点的属性预测方法为本申请实施例提出的重复点属性预测方法时,则采用本申请实施例的方法进行属性预测。
下面对判断当前点是否为重复点的过程进行介绍。
在本申请实施例中,解码端至少可以通过如下几种方式,判断当前点是否为重复点:
方式1,获取当前点云的已解码点,确定当前点与每一个已解码点之间的距离,进而基于当前点与每一个已解码点之间的距离,判断该当前点是否为重复点。
其中,已解码点是指几何信息和属性信息均已解码的点。基于当前点的坐标信息和已解码点的坐标信息,确定当前点与每一个已解码点之间的距离。进而基于距离,判断当前点是否为重复点。例如,若当前点与一个或几个已解码点之间的距离为0时,则将该当前点确定为重复点。
在一些实施例中,若当前点云包括多种属性信息,则确定当前点与已解码点之间的距离包括如下步骤11至步骤14:
步骤11、基于当前点的几何信息与已解码点的几何信息,确定当前点与已解码点之间的几何距离;
步骤12、基于当前点的属性信息和已解码点的属性信息,确定当前点与已解码点之间的属性距离;
步骤13、基于几何距离和属性信息,确定当前点与已解码点之间的综合距离;
步骤14、基于综合距离,确定当前点与已解码点之间的距离。
在该实施例中,当前点云包括多种属性信息包括如下几种示例:
示例1,当前点云包括多种单分量属性信息。例如反射率属性信息为一种单分量属性信息,本申请实施例的当前点云包括像反射率等多种单分量的属性信息。
示例2,当前点云包括多种多分量属性信息。例如,颜色属性信息为一种多分量属性信息,例如包括Y分量、U分量和V分量,或者包括R分量、G分量和B分量。本申请实施例的当前点云包括像颜色等多种多分量的属性信息。
示例3,当前点云包括至少一种单分量属性信息和至少一种多分量属性信息。例如,当前点云包括反射率这一种单分量属性信息和颜色这一种多分量属性信息。
在本申请实施例中,若当前点云包括多种属性信息时,则可以将当前点与已解码点之间的综合距离,确定为当前点与已解码点之间的距离。
下面对当前点与已解码点之间的综合距离的具体计算过程进行介绍:
首先,计算当前点与备选选点之间的几何距离disGeom。
例如,将当前点与备选选点之间的曼哈顿距离,确定为当前点与已解码点之间的几何距离。
接着,计算当前点与备选选点之间的属性距离disGeom。其中,属性距离为当前点与已解码点之间的已解码属性信息的残差的绝对值。
在一种示例中,根据如下公式(9),确定当前点与已解码点的反射率属性信息之间距离:
disAttr1=|curRefl-neighRefl| (9)
其中,curRefl表示当前点的反射率,neighRefl表示已解码点的反射率。
在一种示例中,根据如下公式(10),确定当前点与已解码点的颜色属性信息距离:
其中,curColor表示当前点的颜色,neighColor表示已解码点的颜色,0、1和3表示颜色的3个分量,即YUV或RGB。
然后,根据当前点与已解码点之间的几何距离disGeom和属性距离disAttr,计算当前点与已解码点之间的综合距离dis。
在一种示例中,根据如下公式(11),确定当前点与已解码点之间的综合距离dis:
上述公式(11)中的maxGeom表示几何信息的最大值,其计算公式如公式(12)所示:
上述公式(11)中的maxAttr表示已编码属性信息的最大值,其计算公式如下所示:
对于反射率属性信息:
maxAttr=(1<<reflOutputDepth)-1
对于颜色属性信息:
maxAttr=3·((1<<colorOutputDepth)-1)
其中reflOutputDepth和colorOutputDepth分别表示反射率和颜色的比特深度。
上述公式(11)中的λ表示属性信息距离在综合距离计算过程中的权重。
在一种示例中,λ的计算公式如公式(13)所示:
λ=-crossAttrType PredParam1·attrQuantParm
+crossAttrType PredParam2 (13)
其中,attrQuantParm表示后预测属性量化参数,crossAttrTypePredParam1和crossAttrTypePredParam2分别表示在权重计算过程中的参数。
示例性的,当已解码属性类型为反射率时:crossAttrTypePredParam1=6554,crossAttrTypePredParam2=1258291。
示例性的,当已解码属性类型为颜色时:crossAttrTypePredParam1=1311,crossAttrTypePredParam2=157286。
基于上述步骤,对于每一个已解码点,解码端可以确定出当前点与已解码点之间的综合距离。进而基于该综合距离,确定为当前点与已解码点之间的距离,例如将当前点与已解码点之间的综合距离,确定为当前点与已解码点之间的距离,或者对当前点与已解码点之间的综合距离进行调整,作为当前点与已解码点之间的距离。
这样基于当前点与已解码点之间的综合距离,判断当前点是否为重复点时,可以提升判断的准确性。
解码端除了采用方式1,判断当前点是否为重复点外,还可以通过如下方式2的方法,判断当前点是否为重复点。
方式2,解码端解码码流,得到当前点的重复点标志位,基于该重复点标志位,确定当前点是否为重复点,其中重复点标志位用于指示当前点是否为重复点。
在本申请实施例中,编码端在确定当前点是否为重复点后,对当前点的重复点标志位进行置位后,写入码流。例如,若编码端确定当前点为重复点时,则将该当前点的重复点标志位置为第一数值(例如1)后写入码流。若编码端确定当前点为重复点时,则将该当前点的重复点标志位置为第二数值(例如0)后写入码流。
这样解码端可以通过解码码流,得到当前点的重复点标志位,进而基于该重复点标志位确定当前点是否为重复点。例如,若该重复点标志位的值为第一数值(例如1)时,则表示当前点为重复点,若该重复点标志位的值为第二数值(例如0)时,则表示当前点为不是重复点。
方式3,基于当前点的几何坐标和当前点云中已解码点的几何坐标,确定当前点是否为重复点。
例如,将当前点的几何坐标与每一个已解码点的几何坐标进行比较,若当前点的几何坐标与一个或几个已解码点的几何坐标一致时,则确定当前点为重复点。
方式3,基于当前点的排序码和当前点云中已解码点的排序码,确定当前点是否为重复点,其中排序码为点云排序中将点云中点的几何坐标进行转换后的码字。
由上述描述可知,在对点云进行属性编码时,将对点云中点的坐标进行转换,例如转换为莫顿码,进而基于点云中点的莫顿码对点云进行排序,进而对排序后的点云进行属性编码。在本申请实施例中,将上述莫顿码记为排序码。这样在重复点检测时,可以将当前点的排序码(例如莫顿码)与每一个已解码点的排序码进行比较,若当前点的莫顿码与一个或几个已解码点的莫顿码一致时,则确定当前点为重复点。
在本申请实施例中,解码端在对当前点的属性信息进行解码时,首先基于上述步骤,判断当前点是否为重复点。若确定当前点为重复点时,则解码端从基于前序点的属性预测模式和基于K个邻居点的属性预测模式中,确定该当前点的属性预测模式。
其中,当前点的前序点为当前点云的属性解码顺序中位于当前点之前的属性已解码点。
在一种示例中,当前点的前序点为当前点云的属性解码顺序中位于当前点之前的一个属性已解码点。
在一种示例中,当前点的前序点为当前点云的属性解码顺序中位于当前点之前的多个属性已解码点。
在一种示例中,当前点的前序点可以是当前点的重复点,即当前点的前序点的坐标信息与当前点的坐标信息相同或相近。
在一种示例中,当前点的前序点可以不是当前点的重复点,即当前点的前序点的坐标信息与当前点的坐标信息可以不同。
在本申请实施例中,若当前点为重复点时,则当前点的属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个。
其中,基于前序点的属性预测模式是指基于当前点的前序点的属性重建值,确定当前点的属性预测值的模式。例如,将前序点的属性重建值,确定为当前点的属性预测值的模式。
基于K个邻居点的属性预测模式是指基于当前点的K个邻居点的属性重建值,确定当前点的属性预测值的模式。例如,将当前点的K个邻居点的属性重建值的加权平均值,确定为当前点的属性预测值的模式。
本申请实施例对解码端确定当前点的属性预设模式的具体方式不做限制。
在一种可能的实现方式中,编码端和解码端默认基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的一种属性预测模式为当前点的属性预测模式。例如,编码端和解码端默认基于前序点的属性预测模式为当前点(或当前点云)的属性预测模式。
在一种可能的实现方式中,编码端从基于前序点的属性预测模式和基于K个邻居点的属性预测模式中选出一种属性预测模式作为当前点的属性预测模式。例如,编码端随机从基于前序点的属性预测模式和基于K个邻居点的属性预测模式中选一种属性预测模式作为当前点的属性预测模式。或者,编码端从基于前序点的属性预测模式和基于K个邻居点的属性预测模式中选出代价最小的一种属性预测模式,作为当前点的属性预测模式。接着,编码端将选出的当前点的属性预测模式的指示信息写入码流。这样解码端通过解码码流,得到当前点的属性预测模式的指示信息,进而基于该指示信息,得到当前点的属性预测模式。例如,若当前点的属性预测模式为基于前序点的属性预测模式时,则将指示信息中的标志位置为0,若当前点的属性预测模式为基于K个邻居点的属性预测模式时,则将指示信息中的标志位置为1。解码端可以基于该指示信息中标志位的取值,得到当前点的属性预测模式。
在一种可能的实现方式中,解码端还可以基于当前点云的类型,确定当前点的属性预测模式。例如,编码端和解码端约定对于一些类型的点云使用基于前序点的属性预测模式进行属性预测,对于一些类型的点云使用基于K个邻居点的属性预测模式进行属性预测。这样解码端可以基于当前点云的类型,得到当前点的属性预测模式。
在本申请实施例中,若当前点为重复点,解码端基于上述步骤,确定出当前点的属性预测模式。接着,执行如下S102的步骤。
S102、基于当前点的属性预测模式,对当前点的属性信息进行预测,得到当前点的属性预测值。
在本申请实施例中,若当前点为重复点时,则从基于前序点的属性预测模式和基于K个邻居点的属性预测模式中,确定当前点的属性预测模式。接着,使用当前点的属性预测模式,对当前点的属性信息进行预测,得到当前点的属性预测值。
下面对解码端基于当前点的属性预测模式,对当前点的属性信息进行预测进行介绍。
在本申请实施例中,解码端基于当前点的属性预测模式,对当前点的属性信息进行预测主要包括如下几种情况:
情况1,若当前点的属性预测模式为基于前序点的属性预测模式时,则上述S102包括如下S102-A1至S102-A2的步骤:
S102-A1、确定当前点的属性预测子模式,属性预测子模式包括单分量属性预测模式和多分量属性预测模式中的至少一个;
S102-A2、基于当前点的属性预测子模式,对当前点进行属性预测,得到当前点的属性预测值。
在该情况1中,若当前点的属性预测模式为基于前序点的属性预测模式时,该基于前序点的属性预测模式包括多种属性预测子模式,例如包括单分量属性预测模式和多分量属性预测模式。解码端从单分量属性预测模式和多分量属性预测模式中确定当前点的属性预测子模式。
本申请实施例对确定当前点的属性预测子模式的具体方式不做限制。
在一种可能的实现方式中,编码端和解码端默认将单分量属性预测模式和多分量属性预测模式中一种属性预测模式,确定为当前点的属性预测子模式。
在一种可能的实现方式中,解码端通过解码码流,得到当前点的属性预测子模式的指示信息,进而基于该指示信息,得到当前点的属性预测子模式。例如,编码端从单分量属性预测模式和多分量属性预测模式中选出一种属性预测模式作为当前点的属性预测子模式。例如,编码端随机从单分量属性预测模式和多分量属性预测模式中选出一种属性预测模式中选一种属性预测模式作为当前点的属性预测子模式。或者,编码端从单分量属性预测模式和多分量属性预测模式中选出一种属性预测模式中选出代价最小的一种属性预测模式,作为当前点的属性预测子模式。接着,编码端将选出的当前点的属性预测子模式的指示信息写入码流。这样解码端可以解码码流中的指示信息,得到当前点的属性预测子模式。
在一种可能的实现方式中,解码端还可以基于当前点云的属性信息的类型,确定当前点的属性预测子模式。此时,上述S102-A1包括如下S102-A11至S102-A12的步骤:
S102-A11、确定当前点云的属性信息的类型,其中属性信息的类型包括单分量属性信息、多分量属性信息和多种属性信息中的至少一个,多种属性信息包括如下至少一个:N1种单分量属性信息、N2种多分量属性信息、N3种单分量属性信息且N4种多分量属性信息,N1和N2均为大于1的正整数,N3和N4为正整数;
S102-A12、基于当前点云的属性信息的类型,确定当前点的属性预测子模式。
在本申请实施例中,不同属性类型的点云,所使用的属性预测子模式可能不同。基于此,在本申请实施例中,若当前点的属性预测模式为基于前序点的属性预测模式时,还需要确定当前点云的属性信息的类型,进而基于当前点云的属性信息的类型,确定当前点的属性预测子模式。
在本申请实施例中,点云的属性信息的类型包括单分量属性信息、多分量属性信息和多种属性信息中的至少一个。
其中,单分量属性信息是指只包括一个分量的属性信息,例如反射率属性。
多分量属性信息是指包括多个分量的属性信息,例如颜色属性,包括3个颜色分量,分别为Y、U、V这3个分量,或者R、G、B这3个分量。
多种属性信息是指包括N1种单分量属性信息(即包括多种单分量属性信息)、或者包括N2种多分量属性信息(即包括多种多分量属性信息)、或者包括N3种单分量属性信息且N4种多分量属性信息(即包括至少一种单分量属性信息和至少一种多分量属性信息)中的至少一个。例如多种属性信息包括如下几种示例:
示例1,当前点云的多种属性信息包括多种单分量属性信息。例如,当前点云包括像反射率等多种单分量的属性信息。
示例2,当前点云的多种属性信息包括多种多分量属性信息。例如,当前点云包括像颜色等多种多分量的属性信息。
示例3,当前点云的多种属性信息包括至少一种单分量属性信息和至少一种多分量属性信息。例如,当前点云包括反射率这一种单分量属性信息和颜色这一种多分量属性信息。
下面对上述S102-A2中,基于当前点云的属性信息的类型,确定当前点的属性预测子模式的具体过程进行介绍。
本申请实施例中,基于当前点云的属性信息的类型,从单分量属性预测模式和多分量属性预测模式中的至少一个中,确定当前点的属性预测子模式。
本申请实施例对单分量属性预测模式和多分量属性预测模式的具体方式不做限制。
在一些示例中,单分量属性预测模式可以是指将当前点的前序点的单分量属性信息的重建值,确定为当前点的该单分量属性信息的预测值。例如,将前序点的反射率的重建值,确定为当前点的反射率的预测值。
在一种示例中,单分量属性预测模式包括如下至少一种模式:
模式1,将前序点的第一属性信息的属性重建值,确定为当前点的第一属性信息的属性预测值,且将默认符号确定为当前点的第一属性信息的残差符号,其中第一属性信息为任意一种单分量属性信息,或者解码第一属性信息的残差符号。
模式2,将默认值确定为当前点的第一属性信息的属性预测值,且将默认符号确定为当前点的第一属性信息的残差符号或者,解码第一属性信息的残差符号。
在一些示例中,多分量属性预测模式可以是指将前序点的第二属性信息的M个分量中的一个或多个分量的属性重建值,确定为当前点的第二属性信息的一个或多个分量的属性预测值,其中第二属性信息为任意一种包括M个分量的多分量属性信息,所述M为大于1的正整数。
在一种示例中,多分量属性预测模式包括如下至少一种模式:
模式1,将前序点的第二属性信息的M个分量的属性重建值,确定为当前点的第二属性信息的M个分量的属性预测值,并将默认符号确定为当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为当前点的第二属性信息中M1个分量的残差符号,且解码当前点的第二属性信息的M个分量中除M1分量之外的M2个分量的残差符号,或者,解码当前点的第二属性信息的M个分量的残差符号,M1和M2均为正整数,且M1与M2之和等于M。
模式2,将前序点的第二属性信息的M个分量中的P个分量的属性重建值,确定为当前点的第二属性信息的P个分量的属性预测值,将默认值确定为当前点的第二属性信息的M-P个分量的属性预测值,并将默认符号确定为当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为当前点的第二属性信息的P个分量的残差符号,且解码当前点的第二属性信息的M-P个分量的残差符号,或者,解码当前点的第二属性信息的M个分量的残差符号,P为小于M的正整数。
模式3,将前序点的第二属性信息的M个分量中的R个分量的属性重建值,确定为当前点的第二属性信息的R个分量的属性预测值,采用基于K个邻居点的属性预测方式确定为当前点的第二属性信息的M-R个分量的属性预测值,并将默认符号确定为当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为当前点的第二属性信息的R个分量的残差符号,且解码当前点的第二属性信息的M-R个分量的残差符号,或者,解码当前点的第二属性信息的M个分量的残差符号,R为小于M的正整数。
本申请实施例对解码端基于当前点云的属性信息的类型,确定当前点的属性预测子模式的具体方式不做限制。
在一种可能的实现方式中,若当前点云的属性信息的类型为单分量属性信息时,则将单分量属性预测模式确定为当前点的属性预测子模式。
例如,将前序点的第一属性信息的属性重建值,确定为当前点的第一属性信息的属性预测值,且跳过对当前点的第一属性信息的残差符号位的解码,而是将默认符号确定为当前点的第一属性信息的残差符号,其中第一属性信息为任意一种单分量属性信息。
再例如,将默认值确定为当前点的第一属性信息的属性预测值,且跳过对当前点的第一属性信息的残差符号位的解码,而是将默认符号确定为当前点的第一属性信息的残差符号。
在一种可能的实现方式中,若当前点云的属性信息的类型为多分量属性信息时,则将多分量属性预测模式确定为当前点的属性预测子模式。
例如,将前序点的第二属性信息的M个分量的属性重建值,确定为当前点的第二属性信息的M个分量的属性预测值,并将默认符号确定为当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为当前点的第二属性信息中M1个分量的残差符号,且解码当前点的第二属性信息的M个分量中除M1分量之外的M2个分量的残差符号,或者,解码当前点的第二属性信息的M个分量的残差符号。
再例如,将前序点的第二属性信息的M个分量中的P个分量的属性重建值,确定为当前点的第二属性信息的P个分量的属性预测值,将默认值确定为当前点的第二属性信息的M-P个分量的属性预测值,并将默认符号确定为当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为当前点的第二属性信息的P个分量的残差符号,且解码当前点的第二属性信息的M-P个分量的残差符号,或者,解码当前点的第二属性信息的M个分量的残差符号。
再例如,将前序点的第二属性信息的M个分量中的R个分量的属性重建值,确定为当前点的第二属性信息的R个分量的属性预测值,采用基于K个邻居点的属性预测方式确定为当前点的第二属性信息的M-R个分量的属性预测值,并将默认符号确定为当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为当前点的第二属性信息的R个分量的残差符号,且解码当前点的第二属性信息的M-R个分量的残差符号,或者,解码当前点的第二属性信息的M个分量的残差符号。
需要说明的是,上述示例只有几种当前点云的属性信息的类型为多分量属性信息时,当前点的几种可能属性预测子模式。基于上述几种可能属性预测子模式的推导得到的属性预测子模式,也可以作为当前点的可能属性预测子模式。
在一种可能的实现方式中,若当前点云的属性信息的类型为多种属性信息时,则基于当前点云所包括的多种属性信息,从单分量属性预测模式和多分量属性预测模式中,确定当前点的属性预测子模式。例如,采用单分量属性预测模式,对当前点的单分量属性信息进行预测,使用多分量属性预测模式,对当前点的多分量属性信息进行预测。
在一些实施例中,解码端基于当前点云所包括的多种属性信息,从单分量属性预测模式和多分量属性预测模式中,确定当前点的属性预测子模式,至少包括如下示例所示的方式:
示例1,若当前点云包括N1种单分量属性信息时,则将单分量属性预测模式确定为当前点的N1种单分量属性信息中至少一种单分量属性信息的属性预测子模式。
举例说明,当前点云包括第一种单分量属性信息和第二种单分量属性信息。此时,在一种示例中,可以将单分量属性预测模式,确定为当前点的第一种单分量属性信息的属性预测子模式。例如将当前点的前序点的第一种单分量属性信息的重建值,确定为当前点的第一种单分量属性信息的预测值。在一种示例中,可以将单分量属性预测模式,确定为当前点的第一种单分量属性信息和第二种单分量属性信息的属性预测子模式。例如,将当前点的前序点的第一种单分量属性信息的重建值,确定为当前点的第一种单分量属性信息的预测值,以及将当前点的前序点的第二种单分量属性信息的重建值,确定为当前点的第二种单分量属性信息的预测值。
示例2,若当前点云包括N2种多分量属性信息时,则将多分量属性预测模式确定为当前点的N2种多分量属性信息中至少一种多分量属性信息的属性预测子模式。
举例说明,当前点云包括第一种多分量属性信息和第二种多分量属性信息。此时,在一种示例中,可以将多分量属性预测模式,确定为当前点的第一种多分量属性信息的属性预测子模式。例如将当前点的前序点的第一种多分量属性信息(例如第二属性信息)的一个或多个分量的重建值,确定为当前点的第一种多属性信息的一个或多个分量的预测值。在一种示例中,可以将多分量属性预测模式,确定为当前点的第一种多分量属性信息和第二种多分量属性信息的属性预测子模式。例如,将当前点的前序点的第一种多分量属性信息的一个或多个分量的重建值,确定为当前点的第一种多分量属性信息的一个或多个分量的预测值,以及将当前点的前序点的第二种多分量属性信息的一个或多个分量的重建值,确定为当前点的第二种多分量属性信息的一个或多个分量的预测值。
示例3,若当前点云包括N3种单分量属性信息和N4种多分量属性信息时,则将单分量属性预测模式确定为N3种单分量属性信息中至少一种单分量属性信息的属性预测子模式,和/或,将多分量属性预测模式确定为N4种多分量属性信息中至少一种多分量属性信息的属性预测子模式。
举例说明,假设当前点云包括一种单分量属性信息A和一种多分量属性信息B。在一种示例中,将单分量属性预测模式确定为单分量属性信息A的属性预测子模式。例如,将当前点的前序点的单分量属性信息A的重建值,确定为当前点的单分量属性信息A的预测值。在一种示例中,将多分量属性预测模式确定为多分量属性信息B的属性预测子模式。例如,将当前点的前序点的多分量属性信息B的一个或多个分量的重建值,确定为当前点的多分量属性信息B的一个或多个分量的预测值。
解码端基于上述步骤,确定出当前点的属性预测子模式后,执行上述S102-A2的步骤,基于当前点的属性预测子模式,对当前点进行属性预测,得到当前点的属性预测值。
例如,若当前点的属性预测子模式为单分量属性预测模式时,则将当前点前序点的第一属性信息的属性重建值,确定为当前点的第一属性信息的属性预测值,其中第一属性信息为任意一种单分量属性信息。例如,将前序点的反射率的重建值,确定为当前点的反射率的预测值。
再例如,若当前点的属性预测子模式为单分量属性预测模式时,则将默认值,确定为当前点的第一属性信息的属性预测值。例如,将默认值,确定为当前点的反射率的预测值。
再例如,若当前点的属性预测子模式为多分量属性预测模式时,则将前序点的第二属性信息的M个分量的属性重建值,确定为当前点的第二属性信息的M个分量的属性预测值。或者,将前序点的第二属性信息的M个分量中的P个分量的属性重建值,确定为当前点的第二属性信息的P个分量的属性预测值,将默认值确定为当前点的第二属性信息的M-P个分量的属性预测值。或者,将前序点的第二属性信息的M个分量中的Q个分量的属性重建值,确定为当前点的第二属性信息的Q个分量的属性预测值,将默认值确定为当前点的第二属性信息的M-Q个分量的属性预测值。或者,将前序点的第二属性信息的M个分量中的R个分量的属性重建值,确定为当前点的第二属性信息的R个分量的属性预测值,采用第一属性预测方式确定为当前点的第二属性信息的M-R个分量的属性预测值。
再例如,若当前点的第一属性信息的属性预测子模式为单分量属性预测模式,当前点的第二属性信息的属性预测模式为多分量属性预测模式时,则使用单分量属性预测模式,对当前点的第一属性信息进行预测,得到当前点的第一属性信息的预测值。使用多分量属性预测模式,对当前点的第二属性信息进行预测,得到当前点的第二属性信息的预测值。
上文对当前点的属性预测模式为基于前序点的属性预测模式时,对当前点的属性信息进行预测的过程进行介绍。下面结合情况2,对当前点的属性预测模式为基于K个邻居点的属性预测模式时,当前点的属性预测过程进行介绍。
情况2,若当前点的属性预测模式为基于K个邻居点的属性预测模式时,则上述S102包括如下S102-B1和S102-B2的步骤:
S102-B1、从当前点的备选点集中选出K个邻居点;
S102-B2、基于K个邻居点中的至少一个邻居点的属性重建值,确定当前点的属性预测值。
在该情况2中,若当前点的属性预测模式为基于K个邻居点的属性预测模式时,则从当前点的备选点集中选出K个邻居点,其中K个邻居点的选择方式可以基于上述实施例的描述,例如基于距离进行邻居点选择,或者基于空间关系和距离进行邻居点选择。接着,基于当前点的K个邻居点中至少一个邻居点的属性重建值,来确定当前点的属性预测值。
本申请实施例对基于K个邻居点中的至少一个邻居点的属性重建值,确定当前点的属性预测值的具体方式不做限制。
在一些实施例中,直接将K1个邻居点的属性重建值的平均值,确定为当前点的属性预测值。
在一些实施例中,从K个邻居点中选出与当前点的距离小于或等于预设值的K1个邻居点,基于K1个邻居点的属性重建值,确定当前点的属性预测值,K1为小于或等于K的正整数。
本申请实施例对上述预设值的具体取值不做限制,例如可以无限接近0的正数,或者为0。该K1个邻居点可以理解为当前点的重复点,这样可以基于这K1个邻居点的属性重建值,确定当前点的属性预测值。
在一种示例中,可以将K1个邻居点中任意一个邻居点的属性重建值,确定为当前点的属性预测值。
在一种示例中,可以将K1个邻居点的属性重建值的平均值,确定为当前点的属性预测值。
在一种示例中,确定K1个邻居点的权重,进而基于K1个邻居点的权重和K1个邻居点的属性重建值,确定当前点的属性预测值。
本申请实施例对确定K1个邻居点的权重的具体方式不做限制。
由于这K1个邻居点为当前点的重复点,距离当前点的距离为0,因此无法基于距离的倒数来确定这K1个邻居点的权重。
在一种可能的实现方式中,本申请实施例可以将这K1个邻居点的权重设置为预设值(例如预设值=1)。
在一种可能的实现方式中,本申请实施例还可以为这K1个邻居点设置不完全相同的权重。例如将为这K1个邻居点设置完全不同的权重,或者为这K1个邻居点中的部分邻居点设置不同的权重,为部分邻居点设置相同的权重。
在一种可能的实现方式中,可以基于K1个邻居点的属性重建值的大小,确定这K1个邻居点的权重。例如,邻居点的属性重建值越大,则对应的权重越大,邻居点的属性重建值越小,则对应的权重越小。
基于上述步骤,确定出K1个邻居点中每一个邻居点的权重后,基于这K1个邻居点的权重和K1个邻居点的属性重建值,确定当前点的属性预测值。
例如,基于K1个邻居点中每一个邻居点的权重,对K1个邻居点的属性重建值进行加权求和后取平均,即将K1个邻居点的属性重建值的加权平均值,确定为当前点的属性预测值。
在一种可能的实现方式中,确定K个邻居点中K1个邻居点的权重以及K-K1个邻居点的权重,基于K个邻居点中各邻居点的权重,将K个邻居点的属性重建值的加权平均值,确定为当前点的属性预测值。
其中,K1个邻居点的权重的确定方式与上述相同。其中,K-K1个邻居点的权重可以参照上述实施例的方式确定,例如,对于K-K1个邻居点中的邻居点1,将该邻居点1与当前点的距离的倒数,确定为该邻居点1的权重。确定出K个邻居点中每一个邻居点的权重后,将这K个邻居点的属性重建值的平均值,确定为当前点的属性预测值。
上述实施例对当前点的属性预测模式为基于前序点的属性预测模式时,当前点的属性预测值的确定过程进行介绍,以及对当前点的属性预测模式为基于K个邻居点的属性预测模式时,当前点的属性预测值的确定过程进行介绍。接着,执行如下S103的步骤。
S103、基于当前点的属性预测值,确定当前点的属性重建值。
在本申请实施例中,若当前点为重复点时,解码端基于上述步骤,确定出当前点的属性预测值,进而确定当前点的属性残差值,基于当前点的属性预测值和属性残差值,确定当前点的属性重建值。
在一些实施例中,编码端将当前点的属性残差值的绝对值和残差符号写入码流。这样解码端可以通过解码码流,得到当前点的属性残差值的绝对值和残差符号,进而基于当前点的属性残差值的绝对值和残差符号,得到当前点的属性残差值。
在一些实施例中,若当前点的属性预测模式为基于前序点的属性预测模式时,则上述S103可以包括如下S103-A至S103-D的步骤:
S103-A、解码码流,确定当前点的属性残差值的绝对值;
S103-B、基于当前点的属性预测子模式,确定当前点的属性残差值的残差符号;
S103-C、基于属性残差值的绝对值和残差符号,得到当前点的属性残差值;
S103-D、基于当前点的属性残差值和属性预测值,得到当前点的属性重建值。
在该实施例中,若当前点的属性预测模式为基于前序点的属性预测模式,则解码端解码码流,得到当前点的属性残差值的绝对值,同时,基于当前点的属性预测子模式,确定当前点的属性残差值的残差符号。
例如,若当前点的属性预测子模式包括单分量属性预测模式时,则将默认符号确定为当前点的单分量属性信息(例如第一属性信息)的残差符号,进而跳过对当前点的单分量属性信息的残差符号的解码。或者解码当前点的单分量属性信息的残差符号。
再例如,若当前点的属性预测子模式包括多分量属性预测模式中的模式1时,则将默认符号确定为当前点的多分量属性信息(例如第二属性信息)中M1个分量的残差符号,且解码当前点的第二属性信息的M个分量中除M1分量之外的M2个分量的残差符号。或者,将默认符号确定为当前点的第二属性信息的M个分量的残差符号。或者,解码当前点的第二属性信息的M个分量的残差符号。
再例如,若当前点的属性预测子模式包括多分量属性预测模式中的模式2时,则将默认符号确定为当前点的第二属性信息的P个分量的残差符号,并解码当前点的第二属性信息的M-P个分量的残差符号。或者,将默认符号确定为当前点的第二属性信息的M个分量的残差符号。或者,解码当前点的第二属性信息的M个分量的残差符号。
再例如,若当前点的属性预测子模式包括多分量属性预测模式中的模式3时,则将默认符号确定为当前点的第二属性信息的R个分量的残差符号,并解码当前点的第二属性信息的M-R个分量的残差符号。或者,将默认符号确定为当前点的第二属性信息的M个分量的残差符号。或者,解码当前点的第二属性信息的M个分量的残差符号。
也就是说,在本申请实施例中,若当前点包括单分量属性信息和/或多分量属性信息,且单分量属性信息和/或多分量属性信息中的至少一个分量采用前序点进行预测时,可以对这些分量的残差符号可以全部不解码(即使用默认值),或部分解码部分不解码,或者全部解码。
在一种示例中,若当前点包括1种单分量属性信息和/或1种多分量属性信息,假设该单分量属性信息使用前序点进行预测,和/或该多分量属性信息中的全部分量使用前序点进行预测。此时,对该单分量属性的残差符号和/或多分量属性信息的各分量的残差符号均不解码,将默认符号确定为该单分量属性的残差符号和/或多分量属性信息的各分量的残差符号。
在一种示例中,若当前点包括1种单分量属性信息和/或1种多分量属性信息,假设该单分量属性信息使用前序点进行预测,和/或该多分量属性信息中的全部分量使用前序点进行预测。此时,对该单分量属性的残差符号和/或多分量属性信息的各分量的残差符号均进行解码。
在一种示例中,若当前点包括1种单分量属性信息和/或1种多分量属性信息,假设该单分量属性信息使用前序点进行预测,和/或该多分量属性信息中的全部分量使用前序点进行预测。此时,对该单分量属性的残差符号和/或多分量属性信息的部分分量的残差符号不进行解码,对剩余分量的残差符号进行解码。
解码端基于上述步骤,确定出当前点的残差符号后,将当前点的属性残差值的绝对值和该残差符号进行组合,得到当前点的属性残差值。例如,当前点的属性残差值的绝对值为a,属性残差符号为“-”,这可以确定当前点的属性残差值为-a。
最后,基于当前点的属性预测值和属性残差值,确定当前点的属性重建值。例如,将当前点的属性预测值和属性残差值相加,得到当前点的属性重建值。
本申请实施例提供的点云属性解码方法,可以实现对点云中重复点的属性信息的快速有效预测和解码。具体的,若当前点为当前点云中的重复点时,则确定该当前点的属性预测模式,其中属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,其中前序点为所述当前点云的属性解码顺序中位于当前点之前的属性已解码点,K为正整数;接着,基于当前点的属性预测模式,对当前点的属性信息进行预测,得到当前点的属性预测值;进而基于当前点的属性预测值,确定当前点的属性重建值。这样可以实现对重复点的属性信息的预测和编解码,进而提升了点云的属性编解码性能。
上文结合图5对解码端的点云属性解码方法进行了介绍,下面结合图6,以编码端为例,对本申请的技术方案进行介绍。
图6为本申请实施例提供的一实施例的点云属性解码方法的流程图。本申请实施例的点云属性编码方法可以由上述图1或图2所示的点云编码设备完成。
如图6所示,本申请实施例的点云属性编码方法包括:
S201、若属性待编码的当前点为当前点云中的重复点时,则确定当前点的属性预测模式。
其中,属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,前序点为当前点云的属性编码顺序中位于当前点之前的属性已编码点,K为正整数。
需要说明的是,本实施例涉及点云的属性信息的编码过程,点云的属性信息编码是在点云的位置信息编码后执行的。其中点云的位置信息也称为点云的几何信息。
编码端在当前点云进行编码之前,首先基于对当前点云进行排序。
在一些实施例中,编码端可以通过如下步骤1和步骤2,对当前点云进行排序:
步骤1、基于当前点云中点的几何信息,对当前点云中的点进行排序,得到第一排序;
步骤2、对于第一排序中的重复点,则基于重复点的属性信息,对第一排序中的重复点进行排序,得到当前点云的属性编码顺序。
在本申请实施例中,当前点云中可能包括重复点和非重复点,在排序时,首先基于当前点云中点的几何信息,对当前点云中的点进行排序,得到第一排序。例如,获取当前点云中点的坐标(x,y,z),基于空间填充曲线生成每个点的莫顿码或希尔伯特码,并由小到大排序得到莫顿序或希尔伯特序,将该莫顿序或希尔伯特序称为当前点云的第一排序。
由于重复点的坐标相同,因此第一排序中的重复点无法实现准确排序,此时,对于第一排序中的重复点,则可以基于重复点的属性信息,对第一排序中的重复点进行排序,得到当前点的属性编码顺序。
在本申请实施例中,基于重复点的属性信息,对第一排序中的重复点进行排序,得到当前点云的属性编码顺序具体包括如下几种方式:
方式1,若重复点的属性信息包括一种单分量属性信息时,则按照单分量属性信息的大小,对第一排序中的重复点进行排序,得到当前点云的属性编码顺序。
例如,当前点云中包括重复点1、重复点2和重复点3,重复点1、重复点2和重复点3包括单分量属性信息,例如包括反射率属性。编码端基于几何信息对当前点云中的点进行排序,得到第一排序后,对于第一排序中的重复点1、重复点2和重复点3,按照这3个重复点的反射率的大小,对这3个重复点进行从小到大或从大到小的排序,得到当前点云的属性编码顺序。
方式2,若重复点的属性信息包括一种多分量属性信息时,则按照多分量属性信息中的一个分量下的属性信息的大小,对第一排序中的重复点进行排序,得到当前点云的属性编码顺序。
例如,当前点云中包括重复点1、重复点2和重复点3,这3个重复点包括多分量属性信息,例如包括颜色属性。编码端基于几何信息对当前点云中的点进行排序,得到第一排序后,对于第一排序中的重复点1、重复点2和重复点3,按照这3个重复点的颜色属性中的Y分量(也可以为U分量或V分量)的大小,对这3个重复点进行从小到大或从大到小的排序,得到当前点云的属性编码顺序。
方式3,若重复点的属性信息包括一种多分量属性信息时,则按照述多个分量属性信息中的每一个分量下的属性信息的大小,对第一排序中的重复点进行分别排序,得到当前点云的属性编码顺序。
例如,当前点云中包括重复点1、重复点2和重复点3,这3个重复点包括多分量属性信息,例如包括颜色属性。编码端基于几何信息对当前点云中的点进行排序,得到第一排序后,对于第一排序中的重复点1、重复点2和重复点3,按照这3个重复点的颜色属性中的Y分量的大小,对这3个重复点进行从小到大或从大到小的排序,得到Y分量下当前点云的属性编码顺序。按照这3个重复点的颜色属性中的U分量的大小,对这3个重复点进行从小到大或从大到小的排序,得到U分量下当前点云的属性编码顺序。按照这3个重复点的颜色属性中的V分量的大小,对这3个重复点进行从小到大或从大到小的排序,得到V分量下当前点云的属性编码顺序。也就是说,在方式3中,对于颜色属性,编码端可以得到YUV这3个分量中每一个分量下的属性编码顺序。
方式4,若重复点属性信息包括N1种单分量属性信息时,则按照N1种单分量属性信息中的一种单分量属性信息的大小,对第一排序中的重复点进行排序,得到当前点云的属性编码顺序。或者,按照述N1种单分量属性信息中的每一种单分量下的属性信息的大小,对第一排序中的重复点进行分别排序,得到当前点云的N1种单分量属性信息对应的属性编码顺序,N1为大于1的正整数。
举例说明,重复点包括单分量属性信息1和单分量属性信息2,则按照重复点的单分量属性信息1(或者单分量属性信息2)对第一排序中的重复点进行排序,得到当前点云的属性编码顺序。或者,按照重复点的单分量属性信息1对第一排序中的重复点进行排序,得到单分量属性信息1对应的属性编码顺序,按照重复点的单分量属性信息2对第一排序中的重复点进行排序,得到单分量属性信息2对应的属性编码顺序。
方式5,若重复点的属性信息包括N2种多分量属性信息时,则按照N2种多分量属性信息中的第i种多分量属性信息的一个分量下的属性信息的大小,对第一排序中的重复点进行排序,得到当前点云的属性编码顺序;或者,按照述N2种多分量属性信息中的每一种多分量的一个分量下的属性信息的大小,对第一排序中的重复点进行分别排序,得到当前点云的N2种属性信息对应的属性编码顺序,N2为大于1的正整数,i为小于或等于N2的正整数;或者,按照述N2种多分量属性信息中的每一种多分量的每一个分量下的属性信息的大小,对第一排序中的重复点进行分别排序,得到当前点云的N2种属性信息中每一个分量对应的属性编码顺序,N2为大于1的正整数,i为小于或等于N2的正整数。
举例说明,重复点包括多分量属性信息1和多分量属性信息2,其中多分量属性信息1包括2个分量,多分量属性信息2包括3个分量。此时的排序方式至少包括如下几种:
第1种、按照多分量属性信息1(或多分量属性信息2)中的一个分量的大小,对第一排序中的重复点进行排序,得到当前点云的属性编码顺序。
第2种、按照多分量属性信息1中的一个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息1对应的属性编码顺序。按照多分量属性信息2中的一个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息2对应的属性编码顺序。
第3种、按照多分量属性信息1中的第一个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息1中的第一个分量对应的属性编码顺序。按照多分量属性信息1中的第二个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息1中的第二个分量对应的属性编码顺序。按照多分量属性信息2中的第一个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息2中的第一个分量对应的属性编码顺序。按照多分量属性信息2中的第二个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息2中的第二个分量对应的属性编码顺序。按照多分量属性信息2中的第三个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息2中的第三个分量对应的属性编码顺序。
方式6,若重复点的属性信息包括N3种单分量属性信息和N4种多分量属性信息时,按照N3种单分量属性信息中的一种或每种单分量属性信息的大小,和/或按照N4种多分量属性信息中一种或每种多分量属性信息的一个分量或每个分量下的属性信息的大小,对第一排序中的重复点进行分别排序,得到当前点云的各属性编码顺序,N3和N4为正整数。
该方式6可以基于上述方式1至方式5中的任意一种或组合得到。
举例说明,假设重复点包括1种单分量属性信息1和1种多分量属性信息2,其中多分量属性信息2包括3个分量。此时的排序方式至少包括如下几种:
第1种:按照单分量属性信息1的大小,对第一排序中的重复点进行排序,得到当前点云的属性编码顺序。
第2种:按照多分量属性信息1中一个分量的大小,对第一排序中的重复点进行排序,得到当前点云的属性编码顺序。
第3种:按照多分量属性信息1中第一个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息1中的第一个分量对应的属性编码顺序。按照多分量属性信息1中第二个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息1中的第二个分量对应的属性编码顺序。按照多分量属性信息1中第三个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息1中的第三个分量对应的属性编码顺序。
第4种:按照单分量属性信息1的大小,对第一排序中的重复点进行排序,得到当前点云的单分量属性信息1对应的属性编码顺序。按照多分量属性信息1中一个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息1对应的属性编码顺序。
第5种:按照单分量属性信息1的大小,对第一排序中的重复点进行排序,得到当前点云的单分量属性信息1对应的属性编码顺序。按照多分量属性信息1中第一个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息1中的第一个分量对应的属性编码顺序。按照多分量属性信息1中第二个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息1中的第二个分量对应的属性编码顺序。按照多分量属性信息1中第三个分量的大小,对第一排序中的重复点进行排序,得到当前点云的多分量属性信息1中的第三个分量对应的属性编码顺序。
编码端基于上述步骤,对当前点云进行排序后,对当前点云中点的属性信息进行编码。
本申请实施例中,当前点为当前点云中属性信息待编码的点,在一些示例中,当前点也称为当前待编码点、当前属性待编码的点等。已编码点可以理解为几何信息和属性信息均已编码的点。
编码端在对当前点云的编码过程中,对当前点云中每个点的编码过程相同,以点云中待编码的当前点为例。在对当前点进行属性编码时,首先判断该当前点是否为重复点。判断过程可以参照上述实施例的描述,在此不再赘述。
若当前点不是重复点时,获得当前点云中已编码点,并从这些已编码点中选择当前点的至少一个邻居点。根据当前点的至少一个邻居点的属性信息,得到当前点属性信息的预测值。
若当前点为重复点时,则确定当前点的属性预测方法,其中当前点的属性预测方法包括本申请提出的重复点属性预测方法和其他的预测方法。
在一种示例中,将编解码端默认的预测方法,确定为当前点的属性预测方法。
在一些示例中,编码端从预设的多种属性预测方法中,选择一种(例如随机选择一种,或基于编码代价选择一种)属性预测方法,作为当前点的属性预测方法。此时,编码端还需要将选择的当前点的属性预测方法指示给解码端,例如在码流中写入用于指示当前点的属性预测方法的标志位。
在一种示例中,基于当前点云的数据类型,确定当前点的属性预测方法。
编码端确定出当前点的属性预测方法为本申请实施例提出的重复点属性预测方法时,则可以采用本申请实施例的方法进行属性预测。
若确定当前点为重复点,且采用本申请实施例提出的重复点属性预测方法进行预测时,则编码端从基于前序点的属性预测模式和基于K个邻居点的属性预测模式中,确定该当前点的属性预测模式。
其中,当前点的前序点为当前点云的属性编码顺序中位于当前点之前的属性已编码点。
在本申请实施例中,若当前点为重复点时,则当前点的属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个。
其中,基于前序点的属性预测模式是指基于当前点的前序点的属性重建值,确定当前点的属性预测值的模式。例如,将前序点的属性重建值,确定为当前点的属性预测值的模式。
基于K个邻居点的属性预测模式是指基于当前点的K个邻居点的属性重建值,确定当前点的属性预测值的模式。例如,将当前点的K个邻居点的属性重建值的加权平均值,确定为当前点的属性预测值的模式。
本申请实施例对编码端确定当前点的属性预设模式的具体方式不做限制。
在一种可能的实现方式中,编码端和解码端默认基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的一种属性预测模式为当前点的属性预测模式。例如,编码端和解码端默认基于前序点的属性预测模式为当前点(或当前点云)的属性预测模式。
在一种可能的实现方式中,编码端从基于前序点的属性预测模式和基于K个邻居点的属性预测模式中,随机选一种属性预测模式作为当前点的属性预测模式。或者,编码端从基于前序点的属性预测模式和基于K个邻居点的属性预测模式中,选出代价最小的一种属性预测模式,作为当前点的属性预测模式。接着,编码端将选出的当前点的属性预测模式的指示信息写入码流。例如,若当前点的属性预测模式为基于前序点的属性预测模式时,则将指示信息中的标志位置为0,若当前点的属性预测模式为基于K个邻居点的属性预测模式时,则将指示信息中的标志位置为1。解码可以基于该指示信息中标志位的取值,得到当前点的属性预测模式。
在一种可能的实现方式中,编码端还可以基于当前点云的类型,确定当前点的属性预测模式。例如,编码端和解码端约定对于一些类型的点云使用基于前序点的属性预测模式进行属性预测,对于一些类型的点云使用基于K个邻居点的属性预测模式进行属性预测。这样编码端可以基于当前点云的类型,得到当前点的属性预测模式。
在本申请实施例中,若当前点为重复点,编码端基于上述步骤,确定出当前点的属性预测模式。接着,执行如下S202的步骤。
S202、基于当前点的属性预测模式,对当前点的属性信息进行预测,得到当前点的属性预测值。
在本申请实施例中,若当前点为重复点时,则从基于前序点的属性预测模式和基于K个邻居点的属性预测模式中,确定当前点的属性预测模式。接着,使用当前点的属性预测模式,对当前点的属性信息进行预测,得到当前点的属性预测值。
下面对编码端基于当前点的属性预测模式,对当前点的属性信息进行预测进行介绍。
在本申请实施例中,编码端基于当前点的属性预测模式,对当前点的属性信息进行预测主要包括如下几种情况:
情况1,若当前点的属性预测模式为基于前序点的属性预测模式时,则上述S202包括如下S202-A1至S202-A3的步骤:
S202-A1、确定当前点云的属性信息的类型,其中属性信息的类型包括单分量属性信息、多分量属性信息和多种属性信息中的至少一个,多种属性信息包括如下至少一个:N1种单分量属性信息、N2种多分量属性信息、N3种单分量属性信息且N4种多分量属性信息,N1和N2均为大于1的正整数,N3和N4为正整数;
S202-A2、基于当前点云的属性信息的类型,确定当前点的属性预测子模式,属性预测子模式包括单分量属性预测模式和多分量属性预测模式中的至少一个;
S202-A3、基于当前点的属性预测子模式,对当前点进行属性预测,得到当前点的属性预测值。
下面对上述S202-A2中,基于当前点云的属性信息的类型,确定当前点的属性预测子模式的具体过程进行介绍。
本申请实施例中,基于当前点云的属性信息的类型,从单分量属性预测模式和多分量属性预测模式中的至少一个中,确定当前点的属性预测子模式。
本申请实施例对单分量属性预测模式和多分量属性预测模式的具体方式不做限制。
在一种示例中,单分量属性预测模式包括如下至少一种模式:
模式1,将前序点的第一属性信息的属性重建值,确定为当前点的第一属性信息的属性预测值,且将默认符号确定为当前点的第一属性信息的残差符号,其中第一属性信息为任意一种单分量属性信息,或者编码第一属性信息的残差符号;或者,
模式2,将默认值确定为当前点的第一属性信息的属性预测值,且将默认符号确定为当前点的第一属性信息的残差符号或者,编码第一属性信息的残差符号。
在一些示例中,多分量属性预测模式可以是指将前序点的第二属性信息的M个分量中的一个或多个分量的属性重建值,确定为当前点的第二属性信息的一个或多个分量的属性预测值,其中第二属性信息为任意一种包括M个分量的多分量属性信息,所述M为大于1的正整数。
在一种示例中,多分量属性预测模式包括如下至少一种模式:
模式1,将前序点的第二属性信息的M个分量的属性重建值,确定为当前点的第二属性信息的M个分量的属性预测值,并将默认符号确定为当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为当前点的第二属性信息中M1个分量的残差符号,且编码当前点的第二属性信息的M个分量中除M1分量之外的M2个分量的残差符号,或者,编码当前点的第二属性信息的M个分量的残差符号,M1和M2均为正整数,且M1与M2之和等于M;
模式2,将前序点的第二属性信息的M个分量中的P个分量的属性重建值,确定为当前点的第二属性信息的P个分量的属性预测值,将默认值确定为当前点的第二属性信息的M-P个分量的属性预测值,并将默认符号确定为当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为当前点的第二属性信息的P个分量的残差符号,且编码当前点的第二属性信息的M-P个分量的残差符号,或者,编码当前点的第二属性信息的M个分量的残差符号,P为小于M的正整数;
模式3,将前序点的第二属性信息的M个分量中的R个分量的属性重建值,确定为当前点的第二属性信息的R个分量的属性预测值,采用基于K个邻居点的属性预测方式确定为当前点的第二属性信息的M-R个分量的属性预测值,并将默认符号确定为当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为当前点的第二属性信息的R个分量的残差符号,且编码当前点的第二属性信息的M-R个分量的残差符号,或者,编码当前点的第二属性信息的M个分量的残差符号,R为小于M的正整数。
本申请实施例对编码端基于当前点云的属性信息的类型,确定当前点的属性预测子模式的具体方式不做限制。
在一种可能的实现方式中,若当前点云的属性信息的类型为单分量属性信息时,则将单分量属性预测模式确定为当前点的属性预测子模式。
在一种可能的实现方式中,若当前点云的属性信息的类型为多分量属性信息时,则将多分量属性预测模式确定为当前点的属性预测子模式。
需要说明的是,上述示例只有几种当前点云的属性信息的类型为多分量属性信息时,当前点的几种可能属性预测子模式。基于上述几种可能属性预测子模式的推导得到的属性预测子模式,也可以作为当前点的可能属性预测子模式。
在一种可能的实现方式中,若当前点云的属性信息的类型为多种属性信息时,则基于当前点云所包括的多种属性信息,从单分量属性预测模式和多分量属性预测模式中,确定当前点的属性预测子模式。例如,采用单分量属性预测模式,对当前点的单分量属性信息进行预测,使用多分量属性预测模式,对当前点的多分量属性信息进行预测。
在一些实施例中,编码端基于当前点云所包括的多种属性信息,从单分量属性预测模式和多分量属性预测模式中,确定当前点的属性预测子模式,至少包括如下示例所示的方式:
示例1,若当前点云包括N1种单分量属性信息时,则将单分量属性预测模式确定为当前点的N1种单分量属性信息中至少一种单分量属性信息的属性预测子模式。
示例2,若当前点云包括N2种多分量属性信息时,则将多分量属性预测模式确定为当前点的N2种多分量属性信息中至少一种多分量属性信息的属性预测子模式。
示例3,若当前点云包括N3种单分量属性信息和N4种多分量属性信息时,则将单分量属性预测模式确定为N3种单分量属性信息中至少一种单分量属性信息的属性预测子模式,和/或,将多分量属性预测模式确定为N4种多分量属性信息中至少一种多分量属性信息的属性预测子模式。
编码端基于上述步骤,确定出当前点的属性预测子模式后,执行上述S202-A3的步骤,基于当前点的属性预测子模式,对当前点进行属性预测,得到当前点的属性预测值。
上文对当前点的属性预测模式为基于前序点的属性预测模式时,对当前点的属性信息进行预测的过程进行介绍。下面结合情况2,对当前点的属性预测模式为基于K个邻居点的属性预测模式时,当前点的属性预测过程进行介绍。
情况2,若当前点的属性预测模式为基于K个邻居点的属性预测模式时,则上述S202包括如下S202-B1和S202-B2的步骤:
S202-B1、从当前点的备选点集中选出K个邻居点;
S202-B2、基于K个邻居点中的至少一个邻居点的属性重建值,确定当前点的属性预测值。
本申请实施例对基于K个邻居点中的至少一个邻居点的属性重建值,确定当前点的属性预测值的具体方式不做限制。
在一些实施例中,直接将K1个邻居点的属性重建值的平均值,确定为当前点的属性预测值。
在一些实施例中,从K个邻居点中选出与当前点的距离小于或等于预设值的K1个邻居点,基于K1个邻居点的属性重建值,确定当前点的属性预测值,K1为小于或等于K的正整数。
在一种示例中,可以将K1个邻居点中任意一个邻居点的属性重建值,确定为当前点的属性预测值。
在一种示例中,可以将K1个邻居点的属性重建值的平均值,确定为当前点的属性预测值。
在一种示例中,确定K1个邻居点的权重,进而基于K1个邻居点的权重和K1个邻居点的属性重建值,确定当前点的属性预测值。
本申请实施例对确定K1个邻居点的权重的具体方式不做限制。
由于这K1个邻居点为当前点的重复点,距离当前点的距离为0,因此无法基于距离的倒数来确定这K1个邻居点的权重。
在一种可能的实现方式中,本申请实施例可以将这K1个邻居点的权重设置为预设值(例如预设值=1)。
在一种可能的实现方式中,本申请实施例还可以为这K1个邻居点设置不完全相同的权重。例如将为这K1个邻居点设置完全不同的权重,或者为这K1个邻居点中的部分邻居点设置不同的权重,为部分邻居点设置相同的权重。
在一种可能的实现方式中,可以基于K1个邻居点的属性重建值的大小,确定这K1个邻居点的权重。例如,邻居点的属性重建值越大,则对应的权重越大,邻居点的属性重建值越小,则对应的权重越小。
在一种示例中,确定K个邻居点中K1个邻居点的权重以及K-K1个邻居点的权重,基于K个邻居点中各邻居点的权重,将K个邻居点的属性重建值的加权平均值,确定为当前点的属性预测值。
上述实施例对当前点的属性预测模式为基于前序点的属性预测模式时,当前点的属性预测值的确定过程进行介绍,以及对当前点的属性预测模式为基于K个邻居点的属性预测模式时,当前点的属性预测值的确定过程进行介绍。接着,执行如下S203的步骤。
S203、基于当前点的属性预测值,对当前点的属性信息进行编码。
在本申请实施例中,若当前点为重复点时,编码端基于上述步骤,确定出当前点的属性预测值。接着基于当前点的属性信息和属性预测值,确定当前点的属性残差值,基于对当前点的属性残差值进行编码,得到码流。
其中,对当前点的属性残差值进行编码时,对当前点的属性残差值的绝对值和残差符号进行编码。
在一些实施例中,编码端可以基于当前点的属性预测子模式,确定是否对当前点的属性残差值的残差符号进行编码。
例如,若当前点的属性预测子模式包括单分量属性预测模式时,则将默认符号确定为当前点的单分量属性信息(例如第一属性信息)的残差符号,进而跳过对当前点的单分量属性信息的残差符号的编码。或者编码当前点的单分量属性信息的残差符号。
再例如,若当前点的属性预测子模式包括多分量属性预测模式中的模式1时,则将默认符号确定为当前点的多分量属性信息(例如第二属性信息)中M1个分量的残差符号,且编码当前点的第二属性信息的M个分量中除M1分量之外的M2个分量的残差符号。或者,将默认符号确定为当前点的第二属性信息的M个分量的残差符号。或者,编码当前点的第二属性信息的M个分量的残差符号。
再例如,若当前点的属性预测子模式包括多分量属性预测模式中的模式2时,则将默认符号确定为当前点的第二属性信息的P个分量的残差符号,并编码当前点的第二属性信息的M-P个分量的残差符号。或者,将默认符号确定为当前点的第二属性信息的M个分量的残差符号。或者,编码当前点的第二属性信息的M个分量的残差符号。
再例如,若当前点的属性预测子模式包括多分量属性预测模式中的模式3时,则将默认符号确定为当前点的第二属性信息的R个分量的残差符号,并编码当前点的第二属性信息的M-R个分量的残差符号。或者,将默认符号确定为当前点的第二属性信息的M个分量的残差符号。或者,编码当前点的第二属性信息的M个分量的残差符号。
应理解,编码端中点云属性编码方法为上述解码端中点云属性解码方法的逆过程。上述编码端中点云属性编码方法中的步骤可以参考解码端中点云属性解码方法中的相应步骤,为了避免重复,在此不再赘述。
本申请实施例提供的点云属性编码方法,可以实现对点云中重复点的属性信息的快速有效预测和编码。具体的,若当前点为当前点云中的重复点时,则确定该当前点的属性预测模式,其中属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,其中前序点为所述当前点云的属性编码顺序中位于当前点之前的属性已编码点;接着,基于当前点的属性预测模式,对当前点的属性信息进行预测,得到当前点的属性预测值;进而基于当前点的属性预测值,对当前点进行属性编码。这样可以实现对重复点的属性信息的预测和编码,进而提升了点云的属性编编码性能。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图5至图6,详细描述了本申请的方法实施例,下文结合图7至图9,详细描述本申请的装置实施例。
图7是本申请实施例的一点云属性解码装置的示意性框图。该装置10可以为解码设备,也可以为解码设备中的一部分。
如图7所示,点云属性解码装置10可包括:
预测模式确定单元11,用于若属性待解码的当前点为当前点云中的重复点时,则确定所述当前点的属性预测模式,所述属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,所述前序点为所述当前点云的属性解码顺序中位于所述当前点之前的属性已解码点,所述K为正整数;
预测单元12,用于基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值;
重建单元13,用于基于所述当前点的属性预测值,确定所述当前点的属性重建值。
在一些实施例中,若所述当前点的属性预测模式为所述基于前序点的属性预测模式时,则预测单元12,具体用于确定所述当前点的属性预测子模式,所述属性预测子模式包括单分量属性预测模式和多分量属性预测模式中的至少一个;基于所述当前点的属性预测子模式,对所述当前点进行属性预测,得到所述当前点的属性预测值。
在一些实施例中,预测单元12,具体用于确定所述当前点云的属性信息的类型,所述属性信息的类型包括单分量属性信息、多分量属性信息和多种属性信息中的至少一个,所述多种属性信息包括如下至少一个:N1种单分量属性信息、N2种多分量属性信息、N3种单分量属性信息且N4种多分量属性信息,所述N1和N2均为大于1的正整数,所述N3和N4为正整数;基于所述当前点云的属性信息的类型,确定所述当前点的属性预测子模式。
在一些实施例中,预测单元12,具体用于若所述当前点云的属性信息的类型为所述单分量属性信息时,则将所述单分量属性预测模式确定为所述当前点的属性预测子模式;若所述当前点云的属性信息的类型为所述多分量属性信息时,则将所述多分量属性预测模式确定为所述当前点的属性预测子模式;若所述当前点云的属性信息的类型为所述多种属性信息时,则基于所述当前点云所包括的多种属性信息,从所述单分量属性预测模式和所述多分量属性预测模式中,确定所述当前点的属性预测子模式。
在一些实施例中,预测单元12,具体用于若所述当前点云包括N1种单分量属性信息时,则将所述单分量属性预测模式确定为所述当前点的所述N1种单分量属性信息中至少一种单分量属性信息的属性预测子模式;若所述当前点云包括N2种多分量属性信息时,则将所述多分量属性预测模式确定为所述当前点的所述N2种多分量属性信息中至少一种多分量属性信息的属性预测子模式;若所述当前点云包括N3种单分量属性信息和N4种多分量属性信息时,则将所述单分量属性预测模式确定为所述N3种单分量属性信息中至少一种单分量属性信息的属性预测子模式,和/或,将所述多分量属性预测模式确定为所述N4种多分量属性信息中至少一种多分量属性信息的属性预测子模式。
在一些实施例中,重建单元13,具体用于解码码流,确定所述当前点的属性残差值的绝对值;基于所述当前点的属性预测子模式,确定所述当前点的属性残差值的残差符号;基于所述属性残差值的绝对值和残差符号,得到所述当前点的属性残差值;基于所述当前点的属性残差值和属性预测值,得到所述当前点的属性重建值。
在一些实施例中,所述单分量属性预测模式包括如下至少一种:将所述前序点的第一属性信息的属性重建值,确定为所述当前点的第一属性信息的属性预测值,且将默认符号确定为所述当前点的第一属性信息的残差符号,或者解码所述第一属性信息的残差符号,所述第一属性信息为单分量属性信息;或者,将默认值确定为所述当前点的第一属性信息的属性预测值,且将默认符号确定为所述当前点的第一属性信息的残差符号,或者,解码所述第一属性信息的残差符号。
在一些实施例中,所述多分量属性预测模式为将所述前序点的第二属性信息的M个分量中的一个或多个分量的属性重建值,确定为所述当前点的第二属性信息的一个或多个分量的属性预测值,所述第二属性信息为包括M个分量的多分量属性信息,所述M为大于1的正整数。
在一些实施例中,所述多分量属性预测模式包括如下至少一种:将所述前序点的第二属性信息的M个分量的属性重建值,确定为所述当前点的第二属性信息的M个分量的属性预测值,并将默认符号确定为所述当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为所述当前点的第二属性信息中M1个分量的残差符号,且解码所述当前点的第二属性信息的M个分量中除所述M1分量之外的M2个分量的残差符号,或者,解码所述当前点的第二属性信息的M个分量的残差符号,所述M1和M2均为正整数,且M1与M2之和等于M;将所述前序点的第二属性信息的M个分量中的P个分量的属性重建值,确定为所述当前点的第二属性信息的P个分量的属性预测值,将默认值确定为所述当前点的第二属性信息的M-P个分量的属性预测值,并将默认符号确定为所述当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为所述当前点的第二属性信息的P个分量的残差符号,且解码所述当前点的第二属性信息的M-P个分量的残差符号,或者,解码所述当前点的第二属性信息的M个分量的残差符号,所述P为小于M的正整数;将所述前序点的第二属性信息的M个分量中的R个分量的属性重建值,确定为所述当前点的第二属性信息的R个分量的属性预测值,采用基于K个邻居点的属性预测方式确定为所述当前点的第二属性信息的M-R个分量的属性预测值,并将默认符号确定为所述当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为所述当前点的第二属性信息的R个分量的残差符号,且解码所述当前点的第二属性信息的M-R个分量的残差符号,或者,解码所述当前点的第二属性信息的M个分量的残差符号,所述R为小于M的正整数。
在一些实施例中,预测模式确定单元11,还用于确定所述当前点与所述当前点云中已解码点之间的距离,基于所述距离,确定所述当前点是否为所述重复点;或者,基于所述当前点的几何坐标和所述当前点云中已解码点的几何坐标,确定所述当前点是否为重复点;或者,基于所述当前点的排序码和所述当前点云中已解码点的排序码,确定所述当前点是否为重复点,其中所述排序码为点云排序中将点云中点的几何坐标进行转换后的码字。
在一些实施例中,若所述当前点云包括多种属性信息时,预测模式确定单元11,具体用于基于所述当前点的几何信息与所述备选点的几何信息,确定所述当前点与所述备选点之间的几何距离;基于所述当前点的属性信息和所述备选点的属性信息,确定所述当前点与所述备选点之间的属性距离;基于所述几何距离和所述属性信息,确定所述当前点与所述备选点之间的综合距离;基于所述综合距离,确定所述当前点与所述备选点之间的距离。
在一些实施例中,若所述当前点的属性预测模式为所述基于K个邻居点的属性预测模式时,则预测单元12,具体用于从所述当前点的备选点集中选出K个邻居点;基于所述K个邻居点中的至少一个邻居点的属性重建值,确定所述当前点的属性预测值。
在一些实施例中,预测单元12,具体用于将所述K个邻居点的属性重建值的平均值,确定为所述当前点的属性预测值;或者,从所述K个邻居点中选出与所述当前点的距离小于或等于预设值的K1个邻居点,基于所述K1个邻居点的属性重建值,确定所述当前点的属性预测值,所述K1为小于或等于K的正整数。
在一些实施例中,预测单元12,具体用于将所述K1个邻居点的属性重建值的平均值,确定为所述当前点的属性预测值;或者,确定所述K个邻居点中K1个邻居点的权重,将所述K1个邻居点的属性重建值的加权平均值,确定为所述当前点的属性预测值;或者,确定所述K个邻居点中K1个邻居点的权重以及K-K1个邻居点的权重,基于所述K个邻居点中各邻居点的权重,将所述K个邻居点的属性重建值的加权平均值,确定为所述当前点的属性预测值。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图7所示的装置可以执行上述图5所示方法的实施例,并且装置中的各个模块的前述和其它操作和/或功能分别为了实现解码器对应的方法实施例,为了简洁,在此不再赘述。
图8是本申请实施例的一点云属性编码装置的示意性框图。该装置20可以为编码设备,也可以为编码设备中的一部分。
如图8所示,点云属性编码装置20可包括:
预测模式确定单元21,用于若当前点云中属性信息待编码的当前点为所述当前点云中的重复点时,则确定所述当前点的属性预测模式,所述属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,所述前序点为所述当前点云的属性编码顺序中位于所述当前点之前的属性已解码点,所述K为正整数;
预测单元22,用于基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值;
编码单元23,用于基于所述当前点的属性预测值,对所述当前点的属性信息进行编码,得到码流。
在一些实施例中,预测模式确定单元21,在确定所述当前点是否为重复点之前,还用于基于所述当前点云中点的几何信息,对所述当前点云中的点进行排序,得到第一排序;对于所述第一排序中的重复点,则基于所述重复点的属性信息,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序。
在一些实施例中,预测模式确定单元21,具体用于若所述重复点的属性信息包括一种单分量属性信息时,则按照所述单分量属性信息的大小,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序;若所述重复点的属性信息包括一种多分量属性信息时,则按照所述多分量属性信息中的一个分量下的属性信息的大小,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序,或者,按照所述述多个分量属性信息中的每一个分量下的属性信息的大小,对所述第一排序中的重复点进行分别排序,得到所述当前点云的属性编码顺序;若所述重复点的属性信息包括N1种单分量属性信息时,则按照所述N1种单分量属性信息中的一种单分量属性信息的大小,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序;或者,按照所述述N1种单分量属性信息中的每一种单分量下的属性信息的大小,对所述第一排序中的重复点进行分别排序,得到所述当前点云的N1种单分量属性信息对应的属性编码顺序,所述N1为大于1的正整数;若所述重复点的属性信息包括N2种多分量属性信息时,则按照所述N2种多分量属性信息中的第i种多分量属性信息的一个分量下的属性信息的大小,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序;或者,按照所述述N2种多分量属性信息中的每一种多分量的一个分量下的属性信息的大小,对所述第一排序中的重复点进行分别排序,得到所述当前点云的N2种属性信息对应的属性编码顺序,所述N2为大于1的正整数,所述i为小于或等于N2的正整数;或者,按照所述述N2种多分量属性信息中的每一种多分量的每一个分量下的属性信息的大小,对所述第一排序中的重复点进行分别排序,得到所述当前点云的N2种属性信息中每一个分量对应的属性编码顺序,所述N2为大于1的正整数,所述i为小于或等于N2的正整数;若所述重复点的属性信息包括N3种单分量属性信息和N4种多分量属性信息时,按照所述N3种单分量属性信息中的一种或每种单分量属性信息的大小,和/或按照所述N4种多分量属性信息中一种或每种多分量属性信息的一个分量或每个分量下的属性信息的大小,对所述第一排序中的重复点进行分别排序,得到所述当前点云的各属性编码顺序,所述N3和N4为正整数。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图8所示的装置可以执行上述图6所示方法实施例,并且装置中的各个模块的前述和其它操作和/或功能分别为了实现编码器对应的方法实施例,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图9是本申请实施例提供的电子设备的示意性框图,图9的电子设备可以为上述的点云编码器或者为点云解码器。
如图9所示,该电子设备30可包括:
存储器31和处理器32,该存储器31用于存储计算机程序33,并将该程序代码33传输给该处理器32。换言之,该处理器32可以从存储器31中调用并运行计算机程序33,以实现本申请实施例中的方法。
例如,该处理器32可用于根据该计算机程序33中的指令执行上述方法200中的步骤。
在本申请的一些实施例中,该处理器32可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器31包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序33可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器31中,并由该处理器32执行,以完成本申请提供的录制页面的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序33在该电子设备30中的执行过程。
如图9所示,该电子设备30还可包括:
收发器34,该收发器34可连接至该处理器32或存储器31。
其中,处理器32可以控制该收发器34与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器34可以包括发射机和接收机。收发器34还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

Claims (20)

1.一种点云属性解码方法,其特征在于,包括:
若属性待解码的当前点为当前点云中的重复点时,则确定所述当前点的属性预测模式,所述属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,所述前序点为所述当前点云的属性解码顺序中位于所述当前点之前的属性已解码点,所述K为正整数;
基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值;
基于所述当前点的属性预测值,确定所述当前点的属性重建值。
2.根据权利要求1所述的方法,其特征在于,若所述当前点的属性预测模式为所述基于前序点的属性预测模式时,则所述基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值,包括:
确定所述当前点的属性预测子模式,所述属性预测子模式包括单分量属性预测模式和多分量属性预测模式中的至少一个;
基于所述当前点的属性预测子模式,对所述当前点进行属性预测,得到所述当前点的属性预测值。
3.根据权利要求2所述的方法,其特征在于,所述确定所述当前点的属性预测子模式,包括:
确定所述当前点云的属性信息的类型,所述属性信息的类型包括单分量属性信息、多分量属性信息和多种属性信息中的至少一个,所述多种属性信息包括如下至少一个:N1种单分量属性信息、N2种多分量属性信息、N3种单分量属性信息且N4种多分量属性信息,所述N1和N2均为大于1的正整数,所述N3和N4为正整数;
基于所述当前点云的属性信息的类型,确定所述当前点的属性预测子模式。
4.根据权利要求3所述的方法,其特征在于,所述基于所述当前点云的属性信息的类型,确定所述当前点的属性预测子模式,包括:
若所述当前点云的属性信息的类型为所述单分量属性信息时,则将所述单分量属性预测模式确定为所述当前点的属性预测子模式;
若所述当前点云的属性信息的类型为所述多分量属性信息时,则将所述多分量属性预测模式确定为所述当前点的属性预测子模式;
若所述当前点云的属性信息的类型为所述多种属性信息时,则基于所述当前点云所包括的多种属性信息,从所述单分量属性预测模式和所述多分量属性预测模式中,确定所述当前点的属性预测子模式。
5.根据权利要求4所述的方法,其特征在于,所述基于所述当前点云所包括的多种属性信息,从所述单分量属性预测模式和所述多分量属性预测模式中,确定所述当前点的属性预测子模式,包括:
若所述当前点云包括N1种单分量属性信息时,则将所述单分量属性预测模式确定为所述当前点的所述N1种单分量属性信息中至少一种单分量属性信息的属性预测子模式;
若所述当前点云包括N2种多分量属性信息时,则将所述多分量属性预测模式确定为所述当前点的所述N2种多分量属性信息中至少一种多分量属性信息的属性预测子模式;
若所述当前点云包括N3种单分量属性信息和N4种多分量属性信息时,则将所述单分量属性预测模式确定为所述N3种单分量属性信息中至少一种单分量属性信息的属性预测子模式,和/或,将所述多分量属性预测模式确定为所述N4种多分量属性信息中至少一种多分量属性信息的属性预测子模式。
6.根据权利要求2所述的方法,其特征在于,所述基于所述当前点的属性预测值,确定所述当前点的属性重建值,包括:
解码码流,确定所述当前点的属性残差值的绝对值;
基于所述当前点的属性预测子模式,确定所述当前点的属性残差值的残差符号;
基于所述属性残差值的绝对值和残差符号,得到所述当前点的属性残差值;
基于所述当前点的属性残差值和属性预测值,得到所述当前点的属性重建值。
7.根据权利要求2-6任一项所述的方法,其特征在于,所述单分量属性预测模式包括如下至少一种:
将所述前序点的第一属性信息的属性重建值,确定为所述当前点的第一属性信息的属性预测值,且将默认符号确定为所述当前点的第一属性信息的残差符号,或者解码所述第一属性信息的残差符号,所述第一属性信息为单分量属性信息;或者,
将默认值确定为所述当前点的第一属性信息的属性预测值,且将默认符号确定为所述当前点的第一属性信息的残差符号,或者,解码所述第一属性信息的残差符号。
8.根据权利要求3-6任一项所述的方法,其特征在于,所述多分量属性预测模式为将所述前序点的第二属性信息的M个分量中的一个或多个分量的属性重建值,确定为所述当前点的第二属性信息的一个或多个分量的属性预测值,所述第二属性信息为包括M个分量的多分量属性信息,所述M为大于1的正整数。
9.根据权利要求8所述的方法,其特征在于,所述多分量属性预测模式包括如下至少一种:
将所述前序点的第二属性信息的M个分量的属性重建值,确定为所述当前点的第二属性信息的M个分量的属性预测值,并将默认符号确定为所述当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为所述当前点的第二属性信息中M1个分量的残差符号,且解码所述当前点的第二属性信息的M个分量中除所述M1分量之外的M2个分量的残差符号,或者,解码所述当前点的第二属性信息的M个分量的残差符号,所述M1和M2均为正整数,且M1与M2之和等于M;
将所述前序点的第二属性信息的M个分量中的P个分量的属性重建值,确定为所述当前点的第二属性信息的P个分量的属性预测值,将默认值确定为所述当前点的第二属性信息的M-P个分量的属性预测值,并将默认符号确定为所述当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为所述当前点的第二属性信息的P个分量的残差符号,且解码所述当前点的第二属性信息的M-P个分量的残差符号,或者,解码所述当前点的第二属性信息的M个分量的残差符号,所述P为小于M的正整数;
将所述前序点的第二属性信息的M个分量中的R个分量的属性重建值,确定为所述当前点的第二属性信息的R个分量的属性预测值,采用基于K个邻居点的属性预测方式确定为所述当前点的第二属性信息的M-R个分量的属性预测值,并将默认符号确定为所述当前点的第二属性信息的M个分量的残差符号,或者,将默认符号确定为所述当前点的第二属性信息的R个分量的残差符号,且解码所述当前点的第二属性信息的M-R个分量的残差符号,或者,解码所述当前点的第二属性信息的M个分量的残差符号,所述R为小于M的正整数。
10.根据权利要求3所述的方法,其特征在于,确定所述当前点是否为重复点,包括:
确定所述当前点与所述当前点云中已解码点之间的距离,基于所述距离,确定所述当前点是否为所述重复点;或者,
基于所述当前点的几何坐标和所述当前点云中已解码点的几何坐标,确定所述当前点是否为重复点;或者,
基于所述当前点的排序码和所述当前点云中已解码点的排序码,确定所述当前点是否为重复点,其中所述排序码为点云排序中将点云中点的几何坐标进行转换后的码字。
11.根据权利要求10所述的方法,其特征在于,若所述当前点云包括多种属性信息时,所述确定所述当前点与所述当前点的备选点集中的备选点之间的距离,包括:
基于所述当前点的几何信息与所述备选点的几何信息,确定所述当前点与所述备选点之间的几何距离;
基于所述当前点的属性信息和所述备选点的属性信息,确定所述当前点与所述备选点之间的属性距离;
基于所述几何距离和所述属性信息,确定所述当前点与所述备选点之间的综合距离;
基于所述综合距离,确定所述当前点与所述备选点之间的距离。
12.根据权利要求1所述的方法,其特征在于,若所述当前点的属性预测模式为所述基于K个邻居点的属性预测模式时,则所述基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值,包括:
从所述当前点的备选点集中选出K个邻居点;
基于所述K个邻居点中的至少一个邻居点的属性重建值,确定所述当前点的属性预测值。
13.根据权利要求12所述的方法,其特征在于,所述基于所述K个邻居点中的至少一个邻居点的属性重建值,确定所述当前点的属性预测值,包括:
将所述K个邻居点的属性重建值的平均值,确定为所述当前点的属性预测值;或者,
从所述K个邻居点中选出与所述当前点的距离小于或等于预设值的K1个邻居点,基于所述K1个邻居点的属性重建值,确定所述当前点的属性预测值,所述K1为小于或等于K的正整数。
14.根据权利要求13所述的方法,其特征在于,所述基于所述K1个邻居点的属性重建值,确定所述当前点的属性预测值,包括:
将所述K1个邻居点的属性重建值的平均值,确定为所述当前点的属性预测值;或者,
确定所述K个邻居点中K1个邻居点的权重,将所述K1个邻居点的属性重建值的加权平均值,确定为所述当前点的属性预测值;或者,
确定所述K个邻居点中K1个邻居点的权重以及K-K1个邻居点的权重,基于所述K个邻居点中各邻居点的权重,将所述K个邻居点的属性重建值的加权平均值,确定为所述当前点的属性预测值。
15.一种点云属性编码方法,其特征在于,包括:
若当前点云中属性信息待编码的当前点为所述当前点云中的重复点时,则确定所述当前点的属性预测模式,所述属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,所述前序点为所述当前点云的属性编码顺序中位于所述当前点之前的属性已解码点,所述K为正整数;
基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值;
基于所述当前点的属性预测值,对所述当前点的属性信息进行编码,得到码流。
16.根据权利要求15所述的方法,其特征在于,在确定所述当前点是否为重复点之前,所述方法还包括:
基于所述当前点云中点的几何信息,对所述当前点云中的点进行排序,得到第一排序;
对于所述第一排序中的重复点,则基于所述重复点的属性信息,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序。
17.根据权利要求16所述的方法,其特征在于,所述基于所述重复点的属性信息,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序,包括:
若所述重复点的属性信息包括一种单分量属性信息时,则按照所述单分量属性信息的大小,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序;
若所述重复点的属性信息包括一种多分量属性信息时,则按照所述多分量属性信息中的一个分量下的属性信息的大小,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序,或者,按照所述述多个分量属性信息中的每一个分量下的属性信息的大小,对所述第一排序中的重复点进行分别排序,得到所述当前点云的属性编码顺序;
若所述重复点的属性信息包括N1种单分量属性信息时,则按照所述N1种单分量属性信息中的一种单分量属性信息的大小,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序;或者,按照所述述N1种单分量属性信息中的每一种单分量下的属性信息的大小,对所述第一排序中的重复点进行分别排序,得到所述当前点云的N1种单分量属性信息对应的属性编码顺序,所述N1为大于1的正整数;
若所述重复点的属性信息包括N2种多分量属性信息时,则按照所述N2种多分量属性信息中的第i种多分量属性信息的一个分量下的属性信息的大小,对所述第一排序中的重复点进行排序,得到所述当前点云的属性编码顺序;或者,按照所述述N2种多分量属性信息中的每一种多分量的一个分量下的属性信息的大小,对所述第一排序中的重复点进行分别排序,得到所述当前点云的N2种属性信息对应的属性编码顺序,所述N2为大于1的正整数,所述i为小于或等于N2的正整数;或者,按照所述述N2种多分量属性信息中的每一种多分量的每一个分量下的属性信息的大小,对所述第一排序中的重复点进行分别排序,得到所述当前点云的N2种属性信息中每一个分量对应的属性编码顺序,所述N2为大于1的正整数,所述i为小于或等于N2的正整数;
若所述重复点的属性信息包括N3种单分量属性信息和N4种多分量属性信息时,按照所述N3种单分量属性信息中的一种或每种单分量属性信息的大小,和/或按照所述N4种多分量属性信息中一种或每种多分量属性信息的一个分量或每个分量下的属性信息的大小,对所述第一排序中的重复点进行分别排序,得到所述当前点云的各属性编码顺序,所述N3和N4为正整数。
18.一种点云属性解码装置,其特征在于,包括:
预测模式确定单元,用于若属性待解码的当前点为当前点云中的重复点时,则确定所述当前点的属性预测模式,所述属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,所述前序点为所述当前点云的属性解码顺序中位于所述当前点之前的属性已解码点,所述K为正整数;
预测单元,用于基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值;
重建单元,用于基于所述当前点的属性预测值,确定所述当前点的属性重建值。
19.一种点云属性编码装置,其特征在于,包括:
预测模式确定单元,用于若当前点云中属性信息待编码的当前点为所述当前点云中的重复点时,则确定所述当前点的属性预测模式,所述属性预测模式包括基于前序点的属性预测模式和基于K个邻居点的属性预测模式中的至少一个,所述前序点为所述当前点云的属性编码顺序中位于所述当前点之前的属性已解码点,所述K为正整数;
预测单元,用于基于所述当前点的属性预测模式,对所述当前点的属性信息进行预测,得到所述当前点的属性预测值;
编码单元,用于基于所述当前点的属性预测值,对所述当前点的属性信息进行编码,得到码流。
20.一种计算机设备,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现如上述权利要求1至14或15至17任一项所述的方法。
CN202410247250.9A 2024-03-04 2024-03-04 点云属性编解码方法、装置、设备 Pending CN118055254A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410247250.9A CN118055254A (zh) 2024-03-04 2024-03-04 点云属性编解码方法、装置、设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410247250.9A CN118055254A (zh) 2024-03-04 2024-03-04 点云属性编解码方法、装置、设备

Publications (1)

Publication Number Publication Date
CN118055254A true CN118055254A (zh) 2024-05-17

Family

ID=91048303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410247250.9A Pending CN118055254A (zh) 2024-03-04 2024-03-04 点云属性编解码方法、装置、设备

Country Status (1)

Country Link
CN (1) CN118055254A (zh)

Similar Documents

Publication Publication Date Title
US11282239B2 (en) Device and method of transmitting point cloud data, device and method of processing point cloud data
TW202141984A (zh) 用於在基於幾何形狀的點雲壓縮中的預測變換的預測器索引訊號傳遞
US11601488B2 (en) Device and method for transmitting point cloud data, device and method for processing point cloud data
CN115299055A (zh) 基于几何形状的点云压缩的trisoup语法信令
EP4258671A1 (en) Point cloud attribute predicting method, encoder, decoder, and storage medium
JP2023543752A (ja) 点群コーデック方法及びシステム、並びに点群エンコーダ及び点群デコーダ
WO2022131948A1 (en) Devices and methods for sequential coding for point cloud compression
CN115086658B (zh) 点云数据的处理方法、装置、存储介质及编解码设备
US20230209099A1 (en) Point cloud data processing device and processing method
CN118055254A (zh) 点云属性编解码方法、装置、设备
CN115474041B (zh) 点云属性的预测方法、装置及相关设备
CN115086716B (zh) 点云中邻居点的选择方法、装置及编解码器
US20240037799A1 (en) Point cloud coding/decoding method and apparatus, device and storage medium
WO2024026712A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2023024840A1 (zh) 点云编解码方法、编码器、解码器及存储介质
WO2023103565A1 (zh) 点云属性信息的编解码方法、装置、设备及存储介质
CN116866615A (zh) 点云编码方法及设备
WO2024065269A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2024065406A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2024065271A1 (zh) 点云编解码方法、装置、设备及存储介质
US20230206510A1 (en) Point cloud data processing device and processing method
CN117321991A (zh) 点云属性的预测方法、装置及编解码器
CN117354496A (zh) 点云编解码方法、装置、设备及存储介质
CN116248893A (zh) 基于预测树的点云编码方法、装置、设备及存储介质
CN115733990A (zh) 点云编解码方法、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination