点云编码方法及设备与流程
未命名
10-18
阅读:164
评论:0
1.本技术实施例涉及点云编码技术领域,尤其涉及一种点云编码方法及设备。
背景技术:
2.点云数据包括几十万甚至更多的点,在视频制作过程中,将点云数据以点云媒体文件的形式在点云编码设备和点云解码设备之间传输。但是,如此庞大的点给传输带来了挑战,因此,点云编码设备需要对点云数据进行压缩后传输。
3.点云的压缩也称为点云的编码,在点云编码过程中,若采用预测树编码时,在将当前节点连接到预测树中时,还需要生成当前节点作为父节点时预测值,并将生成的预测值添加至预测树的搜索集合中。但是,目前生成预测值的方式单一,无法满足点云的编码需求,进而影响点云的编码效果。
技术实现要素:
4.本技术提供一种点云编码方法及设备,可以提高预测值的生成准确性,进而提升点云的编码效果。
5.第一方面,本技术提供一种点云编码方法,包括:
6.从n种预测值生成方式中,确定当前节点对应的目标生成方式,所述当前节点为点云的预测树中的一个节点,所述预测值生成方式用于生成加入预测树搜索集合的预测值,所述n为正整数;
7.基于所述目标生成方式,确定将所述当前节点作为父节点时所生成的目标预测值;
8.将所述目标预测值,加入所述搜索集合。
9.第二方面,本技术提供一种点云编码装置,包括:
10.处理单元,用于从n种预测值生成方式中,确定当前节点对应的目标生成方式,所述当前节点为点云的预测树中的一个节点,所述预测值生成方式用于生成加入预测树搜索集合的预测值,所述n为正整数;
11.预测值确定单元,用于基于所述目标生成方式,确定将所述当前节点作为父节点时所生成的目标预测值;
12.加入单元,用于将所述目标预测值,加入所述搜索集合。
13.第三方面,提供了一种编码器,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
14.第四方面,提供了一种芯片,用于实现上述第一方面中任一方面或其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面中任一方面或其各实现方式中的方法。
15.第五方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程
序使得计算机执行上述第一方面中任一方面或其各实现方式中的方法。
16.第六方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面中任一方面或其各实现方式中的方法。
17.第七方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面中任一方面或其各实现方式中的方法。
18.综上,编码端在将当前节点作为父节点,生成新的预测值时,首先从n种预测值生成方式中,确定当前节点对应的目标生成方式,进而基于该目标生成方式,确定将当前节点作为父节点时所生成的目标预测值,并将生成的目标预测值,加入搜索集合中。即本技术从n种预测值生成方式中,确定当前节点对应的目标生成方式,丰富了预测值的生成方式,可以满足点云的编码需求,进而提升点云的编码准确性。
附图说明
19.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1a为三维点云图像示意图;
21.图1b为图1a的局部放大图;
22.图2示出了点云图像的六个观看角度示意图;
23.图3为本技术实施例涉及的一种点云编解码系统的示意性框图;
24.图4a是本技术实施例提供的点云编码器的示意性框图;
25.图4b是本技术实施例提供的点云解码器的示意性框图;
26.图5为八叉树编码示意图;
27.图6a为avs预测树编码结构示意图;
28.图6b为mpeg预测树编码结构示意图;
29.图7a为基于预测树的编码框架示意图;
30.图7b为基于预测树的解码框架示意图;
31.图8a和图8b为预测树编码示意图;
32.图9为本技术一实施例提供的点云编码方法流程示意图;
33.图10是本技术实施例提供的点云编码装置的示意性框图;
34.图11是本技术实施例提供的电子设备的示意性框图。
具体实施方式
35.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
36.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。在本发明实施例中,“与a对应的b”表示b与a相关联。在一种实现方式中,可以根据a确定b。但还应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。在本技术的描述中,除非另有说明,“多个”是指两个或多于两个。
37.本技术可应用于点云编解码领域、硬件点云编解码领域、专用电路点云编解码领域、实时点云编解码领域等。例如,本技术的方案可结合至其它专属或行业标准而操作,所述标准包含itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263、iso/iecmpeg-4visual,itu-th.264(还称为iso/iecmpeg-4avc),包含可分级视频编解码(svc)及多视图视频编解码(mvc)扩展。应理解,本技术的技术不限于任何特定编解码标准或技术。
38.为了便于理解本技术的实施例,首先对本技术实施例涉及到的相关概念进行如下简单介绍:
39.点云(point cloud)是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。图1a为三维点云图像示意图,图1b为图1a的局部放大图,由图1a和图1b可知,点云表面是由分布稠密的点所组成的。
40.二维图像在每一个像素点均有信息表达,分布规则,因此不需要额外记录其位置信息;然而点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。与二维图像类似,采集过程中每一个位置均有对应的属性信息。
41.点云数据(point cloud data)是点云的具体记录形式,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息、反射率信息、法向量信息等等。颜色信息反映物体的色彩,反射率(reflectance)信息反映物体的表面材质。所述颜色信息可以是任意一种色彩空间上的信息。例如,所述颜色信息可以是(rgb)。再如,所述颜色信息可以是于亮度色度(ycbcr,yuv)信息。例如,y表示明亮度(luma),cb(u)表示蓝色色差,cr(v)表示红色,u和v表示为色度(chroma)用于描述色差信息。例如,根据激光测量原理得到的点云,所述点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,所述点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,所述点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。如图2示出了一幅点云图像,其中,图2示出了点云图像的六个观看角度,表1示出了由文件头信息部分和数据部分组成的点云数据存储格式:
42.表1
[0043][0044]
表1中,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容,例如,本例中的点云为“.ply”格式,由ascii码表示,总点数为207242,每个点具有三维位置信息xyz和三维颜色信息rgb。
[0045]
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等。
[0046]
点云数据的获取途径可以包括但不限于以下至少一种:(1)计算机设备生成。计算机设备可以根据虚拟三维物体及虚拟三维场景的生成点云数据。(2)3d(3-dimension,三维)激光扫描获取。通过3d激光扫描可以获取静态现实世界三维物体或三维场景的点云数据,每秒可以获取百万级点云数据;(3)3d摄影测量获取。通过3d摄影设备(即一组摄像机或具有多个镜头和传感器的摄像机设备)对现实世界的视觉场景进行采集以获取现实世界的视觉场景的点云数据,通过3d摄影可以获得动态现实世界三维物体或三维场景的点云数据。(4)通过医学设备获取生物组织器官的点云数据。在医学领域可以通过磁共振成像(magnetic resonance imaging,mri)、电子计算机断层扫描(computed tomography,ct)、电磁定位信息等医学设备获取生物组织器官的点云数据。
[0047]
点云数据,从数据的获取方式划分,可以分为密集型点云和稀疏型点云。
[0048]
点云按照数据的时序类型划分为:
[0049]
第一类静态点云:即物体是静止的,获取点云的设备也是静止的;
[0050]
第二类动态点云:物体是运动的,但获取点云的设备是静止的;
[0051]
第三类动态获取点云:获取点云的设备是运动的。
[0052]
按点云的用途分为两大类:
[0053]
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;
[0054]
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
[0055]
上述点云获取技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能,伴随着应用需求的增长,海量3d点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。
[0056]
以帧率为30fps(帧每秒)的点云视频为例,每帧点云的点数为70万,每个点具有坐
标信息xyz(float)和颜色信息rgb(uchar),则10s点云视频的数据量大约0.7million
·
(4byte
·
3+1byte
·
3)
·
30fps
·
10s=3.15gb,而yuv采样格式为4:2:0,帧率为24fps的1280
·
720二维视频,其10s的数据量约为1280
·
720
·
12bit
·
24frames
·
10s≈0.33gb,10s的两视角3d视频的数据量约为0.33x2=0.66gb。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。
[0057]
下面对点云编解码的相关知识进行介绍。
[0058]
图3为本技术实施例涉及的一种点云编解码系统的示意性框图。需要说明的是,图3只是一种示例,本技术实施例的点云编解码系统包括但不限于图3所示。如图3所示,该点云编解码系统100包含编码设备110和解码设备120。其中编码设备用于对点云数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的点云数据。
[0059]
本技术实施例的编码设备110可以理解为具有点云编码功能的设备,解码设备120可以理解为具有点云解码功能的设备,即本技术实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、点云游戏控制台、车载计算机等。
[0060]
在一些实施例中,编码设备110可以经由信道130将编码后的点云数据(如码流)传输给解码设备120。信道130可以包括能够将编码后的点云数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
[0061]
在一个实例中,信道130包括使编码设备110能够实时地将编码后的点云数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的点云数据,且将调制后的点云数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
[0062]
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的点云数据。存储介质包含多种本地存取式数据存储介质,例如光盘、dvd、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的点云数据。
[0063]
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的点云数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的点云数据。可选的,该存储服务器可以存储编码后的点云数据且可以将该编码后的点云数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(ftp)服务器等。
[0064]
一些实施例中,编码设备110包含点云编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。
[0065]
在一些实施例中,编码设备110除了包括点云编码器112和输入接口113外,还可以包括点云源111。
[0066]
点云源111可包含点云采集装置(例如,扫描仪)、点云存档、点云输入接口、计算机图形系统中的至少一个,其中,点云输入接口用于从点云内容提供者处接收点云数据,计算
机图形系统用于产生点云数据。
[0067]
点云编码器112对来自点云源111的点云数据进行编码,产生码流。点云编码器112经由输出接口113将编码后的点云数据直接传输到解码设备120。编码后的点云数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
[0068]
在一些实施例中,解码设备120包含输入接口121和点云解码器122。
[0069]
在一些实施例中,解码设备120除包括输入接口121和点云解码器122外,还可以包括显示装置123。
[0070]
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接收编码后的点云数据。
[0071]
点云解码器122用于对编码后的点云数据进行解码,得到解码后的点云数据,并将解码后的点云数据传输至显示装置123。
[0072]
显示装置123显示解码后的点云数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(lcd)、等离子体显示器、有机发光二极管(oled)显示器或其它类型的显示装置。
[0073]
此外,图3仅为实例,本技术实施例的技术方案不限于图3,例如本技术的技术还可以应用于单侧的点云编码或单侧的点云解码。
[0074]
现代主流的点云编码技术,针对不同的点云数据类型,可以分为基于几何结构的点云编码以及基于投影的点云编码。以国际标准组织运动图像专家组(moving picture experts group,mpeg)中的基于几何的点云压缩(geometry-based point cloud compression,g-pcc),以及中国国家数字视音频编解码标准中点云编码标准avs-pcc为例进行介绍。
[0075]
g-pcc及avs-pcc均针对静态的稀疏型点云,其编码框架大致相同,下面以gpcc编解码框架为例,对本技术实施例可适用的点云编码器和点云解码器进行说明。
[0076]
图4a是本技术实施例提供的点云编码器的示意性框图。
[0077]
由上述可知点云中的点可以包括点的位置信息和点的属性信息,因此,点云中的点的编码主要包括位置编码和属性编码。在一些示例中点云中点的位置信息又称为几何信息,对应的点云中点的位置编码也可以称为几何编码。
[0078]
在gpcc编码框架中,点云的几何信息和对应的属性信息是分开编码的。
[0079]
如下图4a所示,目前g-pcc的几何编解码可分为基于八叉树的几何编解码和基于预测树的几何编解码。
[0080]
其中,对于几何结构编码,主要操作和处理如下:
[0081]
1)预处理(pre-processing):包括坐标变换(transform coordinates)和体素化(voxelize)。通过缩放和平移的操作,将3d空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
[0082]
2)几何编码(geometry encoding):几何编码中包含两种模式,可在不同条件下使用。
[0083]
(a)基于八叉树的几何编码(octree):八叉树是一种树形数据结构,在3d空间划分中,对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用
‘1’
和
‘0’
指示,获得占用码信息(occupancy code)作为点云几何信息
的码流。
[0084]
(b)基于三角表示的几何编码(trisoup):将点云划分为一定大小的块(block),定位点云表面在块的边缘的交点并构建三角形。通过编码交点位置实现几何信息的压缩。
[0085]
3)几何量化(geometry quantization):量化的精细程度通常由量化参数(qp)来决定,qp取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率。相反,qp取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。在点云编码中,量化是直接对点的坐标信息进行的。
[0086]
4)几何熵编码(geometry entropy encoding):针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(cabac,content adaptive binary arithmetic coding)。
[0087]
如图4a所示,位置编码可通过以下单元实现:
[0088]
坐标转换(tanmsform coordinates)单元201、体素(voxelize)单元202、八叉树划分(analyze octree)单元203、几何重建(reconstruct geometry)单元204、第一算术编码(arithmetic enconde)单元205、表面拟合单元(analyze surface approximation)206。
[0089]
坐标转换单元201可用于将点云中点的世界坐标变换为相对坐标。例如,点的几何坐标分别减去xyz坐标轴的最小值,相当于去直流操作,以实现将点云中的点的坐标从世界坐标转换为相对坐标。
[0090]
体素(voxelize)单元202也称为量化和移除重复点(quantize and remove points)单元,可通过量化减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标,基于此,可通过去重操作将重复的点删除;例如,具有相同量化位置和不同属性信息的多个云可通过属性转换合并到一个云中。在本技术的一些实施例中,体素单元202为可选的单元模块。
[0091]
八叉树划分单元203可利用八叉树(octree)编码方式,编码量化的点的位置信息。例如,将点云按照八叉树的形式进行划分,由此,点的位置可以和八叉树的位置一一对应,通过统计八叉树中有点的位置,并将其标识(flag)记为1,以进行几何编码。
[0092]
在一些实施例中,在基于三角面片集(trianglesoup,trisoup)的几何信息编码过程中,同样也要通过八叉树划分单元203对点云进行八叉树划分,但区别于基于八叉树的几何信息编码,该trisoup不需要将点云逐级划分到边长为1x1x1的单位立方体,而是划分到block(子块)边长为w时停止划分,基于每个block中点云的分布所形成的表面,得到该表面与block的十二条边所产生的至多十二个vertex(交点),通过表面拟合单元206对交点进行表面拟合,对拟合后的交点进行几何编码。
[0093]
几何重建单元204可以基于八叉树划分单元203输出的位置信息或表面拟合单元206拟合后的交点进行位置重建,得到点云数据中各点的位置信息的重建值。
[0094]
算术编码单元205可以采用熵编码方式对八叉树分析单元203输出的位置信息或对表面拟合单元206拟合后的交点进行算术编码,生成几何码流;几何码流也可称为几何比特流(geometry bitstream)。
[0095]
对于属性信息编码,主要操作和处理如下:
[0096]
1)属性重上色(recoloring):有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复3d点云的各点坐标信息。在原始点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
[0097]
2)属性变换编码(transform):属性变换编码中包含三种模式,可在不同条件下使用。
[0098]
(a)预测变换编码(predicting transform):根据距离选择子点集,将点云划分成多个不同的层级(level of detail,lod),实现由粗糙到精细化的点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的残差信号。其中,最底层的点作为参考信息进行编码。
[0099]
(b)提升变换编码(lifting transform):在lod相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性值,获得对应的残差信号。
[0100]
(c)分层区域自适应变换编码(region adaptive hierarchical transform,raht):属性信息经过raht变换,将信号转换到变换域中,称之为变换系数。
[0101]
3)属性信息量化(attribute quantization):量化的精细程度通常由量化参数(qp)来决定。在预测变换编码及提升变换编码中,是对残差值进行量化后进行熵编码;在raht中,是对变换系数进行量化后进行熵编码。
[0102]
4)属性熵编码(attribute entropy coding):量化后的属性残差信号或变换系数一般使用行程编码(run length coding)及算数编码(arithmetic coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
[0103]
属性编码可通过以下单元实现:
[0104]
颜色转换(transform colors)单元210、重着色(transfer attributes)单元211、区域自适应分层变换(region adaptive hierarchical transform,raht)单元212、生成lod(generate lod)单元213以及提升(lifting transform)单元214、量化系数(quantize coefficients)单元215以及算术编码单元216。
[0105]
需要说明的是,点云编码器200可包含比图4a更多、更少或不同的功能组件。
[0106]
颜色转换单元210可用于将点云中点的rgb色彩空间变换为ycbcr格式或其他格式。
[0107]
重着色单元211利用重建的几何信息,对颜色信息进行重新着色,使得未编码的属性信息与重建的几何信息对应起来。
[0108]
经过重着色单元211转换得到点的属性信息的原始值后,可选择任一种变换单元,对点云中的点进行变换。变换单元可包括:raht变换212和提升(lifting transform)单元214。其中,提升变化依赖生成细节层(level of detail,lod)。
[0109]
raht变换和提升变换中的任一项可以理解为用于对点云中点的属性信息进行预测,以得到点的属性信息的预测值,进而基于点的属性信息的预测值得到点的属性信息的残差值。例如,点的属性信息的残差值可以是点的属性信息的原始值减去点的属性信息的预测值。
[0110]
量化单元215可用于量化点的属性信息的残差值。例如,若量化单元215和raht变换单元212相连,则量化单元215可用于量化raht变换单元212输出的点的属性信息的残差值。
[0111]
算术编码单元216可使用零行程编码(zero run length coding)对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。
[0112]
图4b是本技术实施例提供的点云解码器的示意性框图。
[0113]
如图4b所示,解码器300可以从编码设备获取点云码流,通过解析码得到点云中的点的位置信息和属性信息。点云的解码包括位置解码和属性解码。
[0114]
位置解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的位置信息进行重建,以得到点的位置信息的重建信息;对点的位置信息的重建信息进行坐标变换,得到点的位置信息。点的位置信息也可称为点的几何信息。
[0115]
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择如下raht逆变换和提升逆变换中的一种进行点云预测,得到预测值,预测值与残差值相加得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间逆转换,以得到解码点云。
[0116]
如图4b所示,位置解码可通过以下单元实现:
[0117]
算数解码单元301、八叉树合成(synthesize octree)单元302、表面拟合单元(synthesize suface approximation)303、几何重建(reconstruct geometry)单元304、逆坐标变换(inverse transformcoordinates)单元305。
[0118]
属性编码可通过以下单元实现:
[0119]
算数解码单元310、反量化(inverse quantize)单元311、raht逆变换单元312、生成lod(generate lod)单元313、提升逆变换(inverse lifting)单元314以及逆颜色转换(inverse trasformcolors)单元315。
[0120]
需要说明的是,解压缩是压缩的逆过程,类似的,解码器300中的各个单元的功能可参见编码器200中相应的单元的功能。另外,点云解码器300可包含比图4b更多、更少或不同的功能组件。
[0121]
上述是基于gpcc编解码框架下的点云编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本技术适用于该基于gpcc编解码框架下的点云编解码器的基本流程,但不限于该框架及流程。
[0122]
下面对基于八叉树的几何编码和基于预测树的几何编码进行介绍。
[0123]
八叉树是一种树形数据结构,目前在g-pcc或是avs-pcc中主要采用八叉树结构对点云进行划分。对3d空间中的点云数据,八叉树划分方式是逐层次地对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用
‘1’
和
‘0’
指示,如图5所示,获得占用码信息(occupancy code)作为点云几何信息的码流。
[0124]
基于莫顿序(morton)实现八叉树的构建,即将点云数据的3d坐标信息通过查询莫顿顺序表,转换成对应的莫顿码。根据每一位莫顿码的排序,获得每层八叉树的对应点。目前主流的点云编码技术是利用八叉树划分对点云数据进行表示,对几何信息和属性信息采用不同的处理流程。
[0125]
预测树编码是,基于搜索集合,将所有点链接成为一个单一的预测树,每个点以其前一个点或前几个点的信号值进行预测。该方法作为点云信号预测的一种选项,可设置为作用于整体原始点云数据,也可以作用于八叉树子节点或者其他方式获得的点云数据子
集。图6a为avs预测树编码结构示意图,图6b为mpeg预测树编码结构示意图。
[0126]
此外,g-pcc中已有的预测编码技术,利用点间的距离搜索建立预测树。每个顶点只能根据其在树中的前序点进行预测。每一个点都与其他点相连接,并指示每个点链接的点个数和四种预测模式之一。
[0127]
示例性的,四种预测模式如下:
[0128]
mode0:无预测;
[0129]
mode1:delta预测,采用parent点预测(i.e.,p0);
[0130]
mode2:linear预测,采用parent点和grandparent点预测(i.e.,2p0-p1);
[0131]
mode3:parallelogram预测,采用parent,grandparent and grand-grandparent点预测(i.e.,p0+p1-p2)。
[0132]
其中,p0、p1、p2分别为当前节点的父结点、祖父结点、曾祖父结点的位置。通过对当前节点选取最佳的预测模式进行预测。例如将率失真代价最小的预测模式,确定为当前节点的最佳预测模式。
[0133]
基于预测树的几何编码包括:首先,点云中的点按照一定的顺序进行排列(默认顺序,莫顿顺序,方位角顺序或径向距离顺序等)。接着,采用kd-tree(高时延慢速模式)搜索或有限范围内的最近邻点搜索进行预测点的搜索及预测树构建。最开始搜索集合为空,所有的点按照预先排列的顺序进行处理。对当前点p在搜索集合中进行搜索k个最近邻点,选择其中一个作为预测点,将当前点连接到预测点(父节点)。编码预测点的子节点个数,根据对应的预测残差值估计比特位数,确定当前点对应的预测模式信息。其次,将当前点作为父节点,生成新的预测值被添加至搜索集合,直到所有点都遍历过。最后获得整体的预测树结构,编解码各个节点的重复点个数,子节点个数,预测模式,以及根据预测模式确定的预测残差值。
[0134]
本技术实施例主要涉及预测树编解码,下面对预测树编解码框架进行介绍。
[0135]
图7a为基于预测树的编码框架示意图,图7b为基于预测树的解码框架示意图。
[0136]
目前,基于预测树的编解码技术至少包括两种,第一种是基于kd-tree的编解码技术,另一种是基于角度模式的预测编码技术,下面对这两种技术进行介绍。
[0137]
首先对基于kd-tree的编码技术的过程进行介绍。
[0138]
基于kd-tree的编码技术的过程主要分为五步:重排序、建立预测树、选择预测模式、生成预测值。下面对这5个步骤分别进行介绍:
[0139]
1)重排序
[0140]
对体素化后的点云进行重排序以构建更高效的预测树。可选的,可用的排序方法有无序、莫顿序、方位角序和径向距离序。目前,默认的排序方法是按方位角排序。
[0141]
2)建立预测树
[0142]
示例性的,可以利用kd-tree来进行最近邻查找。在开始时,kd-tree是空的,按照选定的顺序进行依次访问每个节点,利用当前节点的位置在kd-tree中查找k个最近邻,并且按照一定的准则将查找到的最近邻作为当前点的子节点进行预测。在预测过程中,确定出如下信息:
[0143]
当前节点的几何预测残差大小;
[0144]
当前节点的子节点数目;
[0145]
每种预测模式所选取的频率。
[0146]
接着,基于当前节点创建新的预测模式,并且将每种预测模式对应的位置添加到kd-tree中。不断重复这个过程,直至遍历完所有节点,建立整个预测树编码结构。
[0147]
3)选择预测模式
[0148]
可选的,以深度优先顺序遍历建立的预测树,树中的每个节点只能由其祖先来预测。基于此,各种预测策略都是有可能的。
[0149]
4)生成预测值
[0150]
根据所选择的预测模式对树中每个节点的几何位置进行预测,并生成对应的预测值和预测残差。目前点的几何预测包括笛卡尔坐标预测,具体过程如下:
[0151]
若当前节点为预测树的根节点,则预测模式选择mode0,即当前节点的柱面坐标无预测,对应的笛卡尔坐标预测值为(0,0,0)。
[0152]
若当前节点不是根节点,且预测模式选择mode1时,当前点的笛卡尔坐标通过其父节点的几何重建坐标进行预测;
[0153]
若当前节点不是根节点,且预测模式选择mode2或mode3时,当前点的笛卡尔坐标通过对应的预测方式进行预测,可得当前节点笛卡尔坐标的预测值为
[0154]
利用当前节点最佳的预测模式,对当前点的笛卡尔坐标(x,y,z)进行预测,利用当前点的笛卡尔坐标(x,y,z)的笛卡尔坐标进行差分预测,得到笛卡尔坐标系下的预测残差(r
x
,ry,rz)。
[0155]
此时,即为当前点的几何预测值,(r
x
,ry,rz)即为当前点的几何预测残差。在基于kd-tree结构进行几何预测编码时,每个节点首先需要对当前节点的子节点数目进行编码,其次编码当前节点的预测模式,以及当前节点对应的(r
x
,ry,rz)预测残差。目前g_pcc针对(r
x
,ry,rz)采用的是无损的算术编码。
[0156]
下面对基于kd-tree的解码技术的过程进行介绍。
[0157]
基于kd-tree的解码技术主要包括四步:解析预测模式、生成预测值、重建预测树、重建几何点云。下面分别进行介绍:
[0158]
1)生成预测值
[0159]
根据解码得到的当前点采用的预测模式及其祖先的重建几何坐标对当前点的几何坐标进行预测并生成对应的预测值,具体过程如下:
[0160]
若当前节点为预测树的根节点,则预测模式选择mode0,即当前节点的柱面坐标无预测,对应的笛卡尔坐标预测值为(0,0,0)。
[0161]
若当前节点不是根节点,且预测模式选择mode1时,当前点的笛卡尔坐标通过其父节点的几何重建坐标进行预测;
[0162]
若当前节点不是根节点,且预测模式选择mode2或mode3时,当前点的笛卡尔坐标通过对应的预测方式进行预测,可得当前节点笛卡尔坐标的预测值为
[0163]
2)重建几何点云
[0164]
按照以下公式(1)利用解码得到的笛卡尔坐标残差(r
x
,ry,rz)和当前点的预测笛卡尔坐标计算当前点的重建笛卡尔坐标(x,y,z)。
[0165][0166]
最终,即得到了重建的体素化后的点云。
[0167]
下面对基于角度模式的预测编码技术的过程进行介绍。
[0168]
基于角度模式的预测编码技术的过程主要分为五步:重排序、坐标转换、建立预测树、选择预测模式、生成预测值。下面分别进行介绍:
[0169]
1)重排序
[0170]
对体素化后的点云进行重排序以构建更高效的预测树,可用的排序方法有无序、莫顿序、方位角序和径向距离序,目前,默认的排序方法是按方位角排序。为此,将每个点的笛卡尔坐标(x,y,z)转化为极坐标(r,φ,tanθ),并依次根据方位角φ、半径r和仰角正切值tanθ对各点进行排序。
[0171]
2)坐标转换
[0172]
根据排序后的结果遍历点云,将点由笛卡尔坐标(x,y,z)按照以下公式(2)转换为柱面坐标(r,φ,i)并进行存储。
[0173][0174][0175][0176]
其中,i即点对应的laserid(一个典型的激光雷达系统可能有16、32或64个laser scanner,每个laser的先验信息不同即仰角θ和在垂直方向上的高度zlaser不同),i的确定是通过循环不同laser的先验信息,在每次循环中利用点的r、先验信息和以上转换公式计算点的z分量,并计算该转换而来的z分量与点的原始z分量之间的偏差,进而从不同laserid中选择出偏差最小的作为该点的i,此过程对点云在空间中垂直方向的非均匀分布进行了处理,使其规则化。
[0177]
在一些实施例中,将上述柱面坐标(r,φ,i)使用如下公式(3)进行量化:
[0178][0179][0180][0181]
其中,(qr,or)和(q
φ
,o
φ
)分别是控制和的精度的量化参数。sign(t)函数是如果t为正则返回1,否则返回(-1)。|t|是t的绝对值。
[0182]
为避免浮点数计算,和tan(θ(i))
i=1...n
的值根据如下公式(4)被预先计算并量化如下:
[0183]
[0184][0185]
其中,和(q
θ
,o
θ
)分别是控制和的精度的量化参数。
[0186]
笛卡尔坐标系的重建过程如公式(5)所示:
[0187][0188][0189][0190]
其中,app_cos(.)和app_sin(.)是cos(.)和sin(.)的近似值。计算可以使用定点表示、查找表和线性插值。
[0191]
注意,由于量化、近似、模型不精确和模型参数不精确等各种原因,可能与(x,y,z)不同:
[0192]
设(r
x
,ry,rz)是如公式(6)定义的重建残差:
[0193][0194][0195][0196]
首先编码模型参数and the量化参数q
θ
and q
φ
。
[0197]
其次,基于lidar的特性来选择预测值(predictor)。比如,laser绕z轴的旋转速度一般是恒定的,角度预测如公式(7)所示:
[0198][0199]
其中,(δ
φ
(k))
k=1
…k是设定的角速度。k是写在码流中或者由编解码端都可以通过计算获得的参数。n(j)是可能被跳过的点数。是写在码流中或者由编解码端都可以通过计算获得的参数。
[0200]
最后编码残差值(r
x
,ry,rz)。
[0201]
解码流程是对应的。
[0202]
此方法还可以采用快速模式,简单快速的建立预测树,如8a和图8b图所示。每个点都采用相同laser id的前一个点作为父节点,若该父节点不可用,则采用不同laser id的最近距离点。
[0203]
熵编码技术
[0204]
对量化(有损情况下)后的有符号属性预测残差或变换系数进行二值化和处理。主要包括变长编码和基于上下文的自适应二进制算术编码(cabac)。
[0205]
变长编码,是采用不同长度的码字表示需要编码的残差或系数。需要根据符号出现的概率设计码长。常用的包括指数哥伦布编码(exp-golomb)和算术编码。
[0206]
基于上下文的自适应二进制算术编码(cabac)主要包括如下步骤:
[0207]
二值化:cabac使用二进制算数编码,这意味着仅仅有两个数字(1或0)被编码。一个非二进制的数值符号,比如一个转换系数或者运动适量,在算术编码之前会首先被二值化或者转化成二进制码字。这个过程类似于将一个数值转化成可变长码字(7.4.1),但是这
个二进制码字在传输之前会通过算术编码器进一步的编码。
[0208]
上下文模型选择:上下文模型就是一个概率模型,这个模型是根据最近的被编码的数据符号的统计数字而选择的一个模型。这个模型保存了每个
‘
bin’是1或者0的概率。
[0209]
算术编码:算术编码器根据选择的概率模型(参考第三章)对每一个
‘
bin’进行编码。
[0210]
概率更新:被选中的上下文模型会根据实际的编码值而去更新。例如,如果bin的值是1,那么1的频率计数会增加。
[0211]
由上述可知,预测树编码是基于搜索集合的,即在搜索集合所包括的预测值搜索当前节点的k个预测值,且基于这k个预测值,确定当前节点的父节点,进而将当前节点与预测树中的父节点进行链接。在确定完当前节点的父节点后,将当前节点作为父节点,生成新的预测值添加至搜索集合中。但是,目前当前节点作为父节点,生成新的预测值的方式单一,使得生成的新的预测值可能不够准确,进而影响点云的编码效果。
[0212]
为了解决该技术问题,本技术实施例中,编码端在将当前节点作为父节点,生成新的预测值时,首先从n种预测值生成方式中,确定当前节点对应的目标生成方式,进而基于该目标生成方式,得到将当前节点作为父节点时所生成的目标预测值,并将生成的目标预测值,加入搜索集合中。即本技术实施例中,从n种预测值生成方式中,确定当前节点对应的目标生成方式,丰富了预测值的生成方式,可以满足点云的编码需求,进而提升点云的编码效果。
[0213]
下面结合具体的实施例,对本技术实施例涉及的点云编码方法进行介绍。
[0214]
图9为本技术一实施例提供的点云编码方法流程示意图。本技术实施例的点云编码方法可以由上述图3或图4a所示的点云编码设备完成。
[0215]
如图9所示,本技术实施例的点云编码方法包括:
[0216]
s101、从n种预测值生成方式中,确定当前节点对应的目标生成方式。
[0217]
其中,当前节点为点云的预测树中的一个节点,上述预测值生成方式用于生成加入预测树搜索集合的预测值,所述n为正整数。
[0218]
由上述可知,点云包括几何信息和属性信息,对点云的编码包括几何编码和属性编码。本技术实施例涉及点云的几何编码。
[0219]
在一些实施例中,点云的几何信息也称为点云的位置信息,因此,点云的几何编码也称为点云的位置编码。
[0220]
在基于预测树的编码方式中,编码端基于点云的几何信息,构建点云的预测树结构,预测树由多个节点组成,每一个节点包括点云中的至少一个点。也就是说,在预测树编码中,将点云中的点划分至预测树中的节点上,通过对预测树中节点的编码,实现对点云中点的编码。
[0221]
本技术实施例中,对于预测树中的每一个点的编码过程基本相同,为了便于描述,以预测树中的当前节点为例,对本技术实施例的编码过程进行介绍。
[0222]
在一些实施例中,当前节点可以理解为预测树中的任意一个节点。
[0223]
在一些实施例中,当前节点可以理解为预测树中当前正等待编码的一个节点。
[0224]
在本技术实施例中,编码端在对当前节点进行编码时,在搜索集合所包括的预测值搜索当前节点的k个预测值,且基于这k个预测值,确定当前节点的父节点,进而将当前节
点与预测树中的父节点进行链接。在确定完当前节点的父节点后,将当前节点作为父节点,生成新的预测值添加至搜索集合中。但是,目前当前节点作为父节点,生成新的预测值的方式单一,无法满足点云的编码需求,进而影响点云的编码效果。
[0225]
为了解决该技术问题,本技术实施例中,编码端在将当前节点作为父节点,生成新的预测值时,首先从n种预测值生成方式中,确定当前节点对应的目标生成方式,进而基于该目标生成方式,得到将当前节点作为父节点时所生成的目标预测值,并将生成的目标预测值,加入搜索集合中。即本技术实施例中,从n种预测值生成方式中,确定当前节点对应的目标生成方式,丰富了预测值的生成方式,可以满足点云的编码需求,进而提升点云的编码准确性。
[0226]
本技术实施例对上述n种预测值生成方式的具体类型不做限制。
[0227]
在一些实施例中,上述n种预测值生成方式包括基于预测模式的生成方式和基于预测值的生成方式中的至少一个。
[0228]
由上述可知,预测模式包括delta预测模式、linear预测模式和parallelogram预测模式中的任意一个。
[0229]
上述基于预测模式的生成方式可以包括如下至少一种子生成方式:
[0230]
第一种:基于全部预测模式的预测值生成方式,即将delta预测模式、linear预测模式和parallelogram预测模式这3种预测模式生成的预测值,均加入搜索集合的方式。
[0231]
第二种,基于2种预测模式的预测值生成方式,即将delta预测模式、linear预测模式和parallelogram预测模式中的2种预测模式生成的预测值,均加入搜索集合的方式。
[0232]
可选地,基于这2种预测模式的选择方式不同,该基于2种预测模式的预测值生成方式可以包括不同的子方式,例如包括基于delta+linear预测模式的预测值生成方式、基于delta+parallelogram预测模式的预测值生成方式和基于linear+parallelogram预测模式的预测值生成方式。
[0233]
第三种,基于1种预测模式的预测值生成方式,即delta预测模式、linear预测模式和parallelogram预测模式中的1种预测模式生成的预测值,加入搜索集合的方式。
[0234]
可选地,基于这1种预测模式的选择方式不同,该基于1种预测模式的预测值生成方式可以包括不同的子方式,例如包括基于delta预测模式的预测值生成方式、基于linear预测模式的预测值生成方式和基于parallelogram预测模式的预测值生成方式。
[0235]
上述基于预测值的生成方式可以理解为将不同预测模式生成的预测值中的一个或多个预测值,加入到搜索集合的方式。
[0236]
本技术实施例对确定将预测值中的哪一个或哪几个预测值加入到搜索集合的方式不做限制。
[0237]
在一种示例中,基于预测值对应的点是否为点云中的真实点,确定是否将该预测值加入到搜索集合中的方式。例如,若该预测值对应的点为点云中的真实点时,则将该预测值加入到搜索集合,若该预测值对应的点不是点云中的真实点时,则确定不将该预测值加入到搜索集合。
[0238]
在一些实施例中,本技术实施例的n种预测值生成除了包括上述基于预测模式的生成方式和基于预测值的生成方式中的至少一个外,还可能包括其他的预测值生成方式。
[0239]
下面对编码端从n种预测值生成方式中,确定当前节点对应的目标生成方式的过
程进行介绍。
[0240]
本技术实施例对编码端从n种预测值生成方式中,确定当前节点对应的目标生成方式的具体方式不做限制。
[0241]
在一些实施例中,编码端可以随机从n种预测值生成方式中,选择一个预测值生成方式,作为当前节点对应的目标生成方式。
[0242]
在一些实施例中,编码端通过如下s101-a的步骤,从从n种预测值生成方式中,确定当前节点对应的目标生成方式:
[0243]
s101-a、基于默认的预测值生成方式、点云的特性、q个点的统计特性、当前节点的k个预测值中的至少一个,从n种预测值生成方式中,确定目标生成方式,
[0244]
其中,q个点为当前节点之前的p个点、或者为当前节点所在的第一点云组之前的第二点云组中的部分或全部点,第一点云组和第二点云组为点云被划分为m个点云组中的不同点云组,q、p、m均为正整数。
[0245]
在该实施例中,编码端可以基于默认的预测值生成方式、点云的特性、q个点的统计特性、当前节点的k个预测值中的至少一个,来从这n种预测值生成方式中,确定目标生成方式。这样可以提高目标生成方式的选择准确性,进行提高了基于预测树的点云预测准确性,进一步提高点云的编码效果。
[0246]
本技术实施例对点云的具体特性不做限制。
[0247]
在一种示例中,点云的特性包括如下至少一个:点云的数据类型、点云中点的排列特性和点云的分布特性。
[0248]
其中,点云的数据类型可以包括:点云数据的获取方式、点云的用途、点云的过去途径等信息,对点云数据进行不同的分类。例如,对于不同的点云数据类型,可以选择不同的预测值生成方式。
[0249]
其中,点云中点的排列特性包括点云中点的整体排列特性、当前点(即当前节点)所在的点云区域中点的排列特性中的至少一个。例如,针对点云中存在的平面等区域,可以采用更简洁的预测值生成方式(例如基于全部预测模式的预测值生成方式)进行处理。
[0250]
其中,点云的分布特性可以包括点云的整体分布特征、当前点(或当前节点)所在的点云区域的分布特性。
[0251]
示例性的,点云的分布特性包括如下至少一个:目标点云的点数、几何动态范围、体密度和面密度,其中目标点云为点云整体或当前节点所在的点云片或第一点云组。
[0252]
其中,q个点的统计特性可以理解为对当前点节点(即当前点)之前的p个点、或对当前节点所在的第一点组之前的第二点组中的部分或全部点的某一个或某几个特性进行统计,所得到的统计特性。可选地,上述q个点还可以是父节点、祖父节点、属于同一父节点的其他节点、属于同一祖父节点的其他节点等。
[0253]
示例性的,q个点的统计特性包括如下至少一个:q个点的预测模式的统计特性、q个点的索引的统计特性和q个点对应的预测值的统计特性、q个点对应的子节点数的统计特性。也就是说,编码端可以对q个点的预测模式、q个点的索引、q个点对应的预测值和q个点对应的子节点数的统计特性中的至少一个进行统计,得到q个点的统计特性。
[0254]
其中,当前节点的k个预测值为当前节点在确定父节点时,从搜索集合中搜索到的距离当前节点最近的k个预测值。
[0255]
本技术实施例中,编码端可以基于上述于默认的预测值生成方式、点云的特性、q个点的统计特性、当前节点的k个预测值中的至少一个,从n种预测值生成方式中,确定当前节点对应的目标生成方式,这样可以增加目标生成方式的确定准确性,进而提升点云的编码效果。
[0256]
在一些实施例中,编码端基于默认的预测值生成方式、点云的特性、q个点的统计特性、当前节点的k个预测值中的至少一个,从n种预测值生成方式中,确定目标生成方式可以是,编码端首先基于点云的特性、q个点的统计特性、当前节点的k个预测值中的至少一个,从n种预测值生成方式中,确定目标生成方式。若编码端基于点云的特性、q个点的统计特性、当前节点的k个预测值中的至少一个,无法从n种预测值生成方式中,确定出目标生成方式时,则编码端将默认的预测值生成方式,确定为当前节点对应的目标生成方式。
[0257]
本技术实施例对编码端基于点云的特性、q个点的统计特性、当前节点的k个预测值中的至少一个,从n种预测值生成方式中,确定目标生成方式的具体方式不做限制。
[0258]
在一些实施例中,编码端基于点云的特性、q个点的统计特性、当前节点的k个预测值中的一个,从n种预测值生成方式中,确定目标生成方式。
[0259]
例如,编码端基于点云的特性,从n种预测值生成方式中,确定目标生成方式。示例性的,基于点云的数据类型、点云中点的排列特性和点云的分布特性中的至少一个,从n种预测值生成方式中,确定目标生成方式。例如,设置点数阈值thres1和thres2,假设目标点云的点数为m,若thres1《m《thres2,选择第一种预测值生成方式(例如基于delta的预测值生成方式),否则选择第二种预测值生成方式(例如基于所有预测模式的预测值生成方式)。
[0260]
再例如,编码端基于q个点的统计特性,从n种预测值生成方式中,确定目标生成方式。示例性的,基于q个点的预测模式的统计特性、q个点的索引的统计特性和q个点对应的预测值的统计特性中的至少一个,从n种预测值生成方式中,确定目标生成方式。
[0261]
再例如,编码端基于当前节点的k个预测值,从n种预测值生成方式中,确定目标生成方式。
[0262]
在一些实施例中,编码端基于点云的特性、q个点的统计特性、当前节点的k个预测值中的任意两个,从n种预测值生成方式中,确定目标生成方式。
[0263]
例如,编码端基于点云的特性和q个点的统计特性,从n种预测值生成方式中,确定目标生成方式。
[0264]
再例如,编码端基于点云的特性和当前节点的k个预测值,从n种预测值生成方式中,确定目标生成方式。
[0265]
再例如,编码端基于q个点的统计特性和当前节点的k个预测值,从n种预测值生成方式中,确定目标生成方式。
[0266]
在一些实施例中,编码端基于点云的特性、q个点的统计特性和当前节点的k个预测值,从n种预测值生成方式中,确定出目标生成方式。
[0267]
下面对编码端基于q个点的统计特性,从n种预测值生成方式中,确定当前节点对应的目标生成方式的具体过程进行介绍。
[0268]
在一些实施例中,上述s101-a包括如下s101-a1的步骤:
[0269]
s101-a1、基于q个点的统计特性,从n种预测值生成方式中,确定当前节点对应的目标生成方式。
[0270]
由上述可知,q个点为当前节点之前的p个点、或者为当前节点所在的第一点云组之前的第二点云组中的部分或全部点,第一点云组和第二点云组为点云被划分为m个点云组中的不同点云组,q、p、m均为正整数。
[0271]
也就是说,在一些实施例中,若q个点为当前节点之前的p个点时,编码端基于当前节点(当前点)之前的p个点的统计特性,确定当前节点对应的目标生成方式。在该实施例中,编码端可以逐点确定预测值生成方式。例如,对于点云中的所有点或部分点中的每一个点,基于该点之前的p个点的统计特性,确定该点所在的节点对应的目标生成方式,实现对这每一个点的预测准确性,进而提升点云的编码效果。
[0272]
在一些实施例中,若q个点为第二点云组中的部分或全部点时,编码端可以基于第二点云组中部分或全部点的统计特性,确定当前节点对应的目标生成方式。
[0273]
在该实施例中,编码端将点云中的点划分为多个点云组,例如,对点云进行排序,将排序后点云均匀或非均匀的划分为m个点云组,每个点云组中包括多个点。示例性的,将排序后的点云每隔1000个点划分为一组,得到m个点云组。对于这m个点云组中的每一个点云组,同一个点云组中的点使用相同的预测值生成方式。基于此,编码端在确定当前节点对应的目标生成方式时,首先确定当前节点所在的点云组,为了便于描述,将该当前节点所在的点云组记为第一点云组。需要说明的是,由于当前节点包括一个或几个点,因此当前节点所在的点云组可以理解为当前节点中的点所在的点云组。接着,确定该第一点云组对应的预测值生成方式,进而将该第一点云组对应的预测值生成方式,确定为当前节点的预测模式。
[0274]
其中,第一点云组对应的预测值生成方式是基于第一点云值之前的第二点云组的全部或部分点的统计特性确定的。也就是说,在该实施例中,编码端每隔几个点,确定一次预测值生成方式,例如每隔1000个点,确定一次预测值生成方式。
[0275]
在本技术实施例中,编码端基于当前节点之前的p个点的统计特性,确定当前节点对应的目标生成方式,与编码端基于第二点云组的全部或部分点的统计特性,确定当前节点对应的目标生成方式的具体过程基本一致。为了便于描述,在本技术实施例中,使用q个点代替当前节点之前的p个点,以及使用q个点代替第二点云组的全部或部分点。
[0276]
下面对编码端基于q个点的统计特性,确定当前节点对应的目标生成方式的具体过程进行介绍。
[0277]
由上述可知,q个点的统计特性包括q个点的预测模式的统计特性、q个点的索引的统计特性、q个点对应的预测值的统计特性、q个点对应的子节点数的统计特性中的至少一个。也就是说,编码端可以q个点的预测模式的统计特性、q个点的索引的统计特性、q个点对应的预测值的统计特性、q个点对应的子节点数的统计特性中的至少一个,确定当前节点对应的目标生成方式。
[0278]
在本技术实施例中,编码端基于q个点的统计特性,确定当前节点对应的目标生成方式的具体方式包括但不限于如下几种:
[0279]
方式一,若q个点的统计特性包括q个点的预测模式的统计特性时,s101-a1包括s101-a1-a、基于q个点的预测模式的统计特性,从n种预测值生成方式中,确定当前节点对应的目标生成方式。
[0280]
在该方式一中,编码端对q个点的预测模式进行统计分析,确定这q个点的预测模
式的统计特性,进而基于这q个点的预测模式的统计特性,确定当前节点对应的目标生成方式。
[0281]
本技术实施例对编码端基于q个点的预测模式的统计特性,从n种预测值生成方式中,确定当前节点对应的目标生成方式的具体方式不做限制。
[0282]
示例一,编码端将q个点中的中间点采用的预测模式,确定为当前节点对应的目标生成方式。例如,上述q个点中的中间点采用的预测模式为delta预测模式,这样可以将delta预测模式确定当前节点对应的目标生成方式。
[0283]
示例二,编码端将q个点中预测模式相同的点划分为一类,得到t个分类,t为正整数;基于q个分类中点数最多的分类对应的预测模式,从n种预测值生成方式中,确定目标生成方式。
[0284]
在该示例二中,编码端对q个点的预测模式进行归类,将预测模式相同的点归为一类,这样可以得到t个分类,将这t个分类中包括的点数最多的分类对应的预测模式,确定为当前节点对应的目标生成方式。
[0285]
例如,编码端将q个点中多个点采用的预测模式,确定为当前节点对应的目标生成方式。示例性的,上述q个点中的多数点采用的预测模式为delta预测模式,这样可以将delta预测模式确定当前节点对应的目标生成方式。
[0286]
方式二,若q个点的统计特性包括q个点的索引的统计特性时,s101-a1包括s101-a1-b、基于q个点的索引的统计特性,从n种预测值生成方式中,确定当前节点对应的目标生成方式。
[0287]
在该方式二中,编码端对q个点的索引进行统计分析,确定这q个点的索引的统计特性,进而基于这q个点的索引的统计特性,确定当前节点对应的目标生成方式。
[0288]
本技术实施例对编码端基于q个点的索引的统计特性,从n种预测值生成方式中,确定当前节点对应的目标生成方式的具体方式不做限制。
[0289]
示例一,编码端确定q个点的索引大于预设索引的第一点数,将该第一点数与一个预设阈值进行比较,若该第一点数小于该预设阈值时,则将n个预测值生成方式中的预测值生成方式1,确定为当前节点对应的目标生成方式。若该第一点数大于或等于该预设阈值时,则将n个预测值生成方式中的预测值生成方式2,确定为当前节点对应的目标生成方式。
[0290]
示例二,编码端将q个点的索引值与这q个点的父节点的索引值进行比较,确定这q个点中索引值与父节点的索引值之间的间隔小于预设值的点的个数。若q个点中至少r个点的索引值与父节点的索引值之间的间隔小于预设值时,则将n种预测值生成方式中的第一预测值生成方式,确定为目标生成方式,该第一预测值生成方式为基于预测模式的生成方式的一种子预测值生成方式。若q个点中至少r个点的索引值与父节点的索引值之间的间隔小于预设值时,则将n种预测值生成方式中的除第一预测值生成方式中的另一种预测值生成方式,确定为目标生成方式。
[0291]
在该示例二中,对上述预设值的具体大小不做限制。
[0292]
例如,上述预设值为2。也就是说,若q个点中至少r个点的父节点的索引值为其前一个点时,则将n种预测值生成方式中的第一预测值生成方式,确定为目标生成方式。
[0293]
方式三,若q个点的统计特性包括q个点对应的预测值的统计特性时,s101-a1包括s101-a1-c、基于q个点的索引的统计特性,从n种预测值生成方式中,确定当前节点对应的
目标生成方式。
[0294]
其中,上述q个点对应的预测值,可以理解为q个点中每一个点在确定父节点时,从搜索集合中选出的距离该点最近的k个预测值。因此,q个点对应的预测值可以理解为q个点分别对应的k个预测值,或q个点各自的k个预测值。
[0295]
在该方式三中,编码端对q个点中每个点的k个预测值进行统计分析,确定这q个点对应的预测值的统计特性,进而基于这q个点对应的预测值的统计特性,确定当前节点对应的目标生成方式。
[0296]
本技术实施例对编码端基于q个点对应的预测值的统计特性,从n种预测值生成方式中,确定当前节点对应的目标生成方式的具体方式不做限制。
[0297]
在一些实施例中,编码端从q个点中每一个点的k个预测值中,确定出预测值大于某预设阈值的预测值的个数,若该个数大于预设个数时,则选择n个预测值生成方式中的一种预测值生成方式作为当前节点对应的目标生成方式。若该个数小于或等于预设个数时,则选择n个预测值生成方式中的另一种预测值生成方式作为当前节点对应的目标生成方式。
[0298]
在一些实施例中,上述s101-a1-c包括如下s101-a1-c1和s101-a1-c2的步骤:
[0299]
s101-a1-c1、对于q个点中的每一个点,确定点与点的k个预测值之间的距离分布特性、点与点的第一预测值或第一预测节点之间的第一距离、点的k个预测值所对应的不同预测节点的预测值的差异值中的至少一个,k为正整数,第一预测值为k个预测值中的一个预测值,第一预测节点为k个预测值对应的节点中的一个节点;
[0300]
s101-a1-c2、基于q个点中的每一个点对应的距离分布特性、第一距离和差异值中的至少一个,从n种预测值生成方式中,确定目标生成方式。
[0301]
在该实施例中,q个点中的每一个点的预测值的统计特性包括该点与该点的k个预测值之间的距离分布特性、该点与该点的第一预测值或第一预测节点之间的第一距离、该点的k个预测值所对应的不同预测节点的预测值的差异值中的至少一个。
[0302]
编码端对于q个点中的每一个点,确定该点与该点的k个预测值之间的距离分布特性、该点与该点的第一预测值或第一预测节点之间的第一距离、该点的k个预测值所对应的不同预测节点的预测值的差异值中的至少一个,进而基于这q个点中每一个点对应的距离分布特性、第一距离和差异值中的至少一个,从n种预测值生成方式中,确定当前节点对应的目标生成方式。
[0303]
在该实施例中,编码端确定q个点中每一个点对应的距离分布特性、第一距离和差异值的具体方式基本一致,为了便于描述,以确定q个点中某一个点对应的距离分布特性、第一距离和差异值为例进行说明。
[0304]
本技术实施例对编码端确定点对应的距离分布特性的具体方式不做限制。
[0305]
在一些实施例中,编码端确定该点与该点的k个预测值之间的最大距离和最小距离之间的差异值、该点与该点的k个预测值之间的距离方差值、该点与该点的k个预测值之间的距离相关系数中的至少一个;将该点对应的差异值、距离方差值和距离相关系数中的至少一个,确定为该点对应的距离分布特性。
[0306]
其中,编码端确定该点与该点的k个预测值之间的最大距离和最小距离之间的差异值可以是,基于该点的位置信息,确定该点与该点的k个预测值中每一个预测值之间的距
离,得到k个距离,从这k个距离中选出最大距离和最小距离,将该最大距离与该最小距离之间的差值,确定为点与该点的k个预测值之间的最大距离和最小距离之间的差异值。
[0307]
其中,编码端确定该点与该点的k个预测值之间的距离方差值可以是,基于该点的位置信息,确定该点与该点的k个预测值中每一个预测值之间的距离,得到k个距离,确定这k个距离的方差值,记为该点与该点的k个预测值之间的距离方差值。
[0308]
其中,编码端确定该点与该点的k个预测值之间的距离相关系数可以是,确定该点与该点的k个预测值之间的距离协方差和距离方差值,进而基于该点与该点的k个预测值之间的距离协方差和距离方差,确定该点与该点的k个预测值之间的距离相关系数。
[0309]
在本技术实施例中,将上述该点对应的差异值、距离方差值和距离相关系数中的至少一个,确定为该点对应的距离分布特性。
[0310]
编码端可以基于上述方法,确定出q个点中每一个点对应的距离分布特性,例如确定q个点中每一个点对应的差异值、距离方差值和距离相关系数中的至少一个,确定当前节点对应的目标生成方式。
[0311]
例如,若q个点中全部点或预设点数个点对应的差异值满足预设差异值、和/或q个点中全部点或预设点数个点对应的距离方差值满足预设距离方差值、和/或q个点中全部点或预设点数个点对应的距离相关系数满足预设距离相关系数,则将n个预测值生成方式中的某一个预测值生成方式,确定为当前节点对应的目标生成方式。
[0312]
本技术实施例中,编码端确定q个点中每一个点对应的第一距离的方式基本相同,在此以一个点为例进行说明。
[0313]
首先,编码端确定该点的第一预测值或第一预测节点。
[0314]
其中该第一预测值为该点的k个预测值中的一个预测值。例如为任意一个预测值。再例为k个预测值中与该当前节点之间的距离最小的一个预测值。
[0315]
其中,该第一预测节点为该点的k个预测值对应的预测节点中的一个预测节点。例如,将k个预测值对应的节点中的任意一个节点,确定为该点对应的第一预测节点。再例如,将该k个预测值中第一预测值对应的节点,确定为该点对应的第一预测节点。
[0316]
接着,编码端确定该点与该点的第一预测值或第一预测节点之间的距离,将该距离记为第一距离。
[0317]
本技术实施例中,编码端确定q个点中每一个点对应的差异值的方式基本相同,在此以一个点为例进行说明。
[0318]
本技术实施例对编码端确定该点的k个预测值所对应的不同预测节点的预测值的差异值的具体方式不做限制。
[0319]
在一些实施例中,假设该点的k个预测值对应s个预测节点,对于这s个预测节点中的每一个预测节点,从k个预测值中确定该预测节点对应的至少一个预测值,进而可以得到至少s个预测值,其中s为大于1的正整数。接着,确定这至少一个s个预测值之间的差异值。
[0320]
本技术实施例对上述基于q个点中的每一个点对应的距离分布特性、第一距离和差异值中的至少一个,从n种预测值生成方式中,确定目标生成方式的具体方式不做限制。
[0321]
在一些实施例中,编码端基于q个点中的每一个点对应的距离分布特性、第一距离和差异值中的一个或多个,从n种预测值生成方式中,确定目标生成方式。
[0322]
在一些实施例中,编码端基于于q个点中的每一个点对应的第一距离,从n种预测
值生成方式中,确定目标生成方式,此时上述s101-a1-c2包括如下步骤:
[0323]
s101-a1-c21、基于q个点中每一个点对应的第一距离,确定第一距离的平均值;
[0324]
s101-a1-c22、基于第一距离的平均值,从n种预测值生成方式中,确定目标生成方式。
[0325]
在该实施例中,若编码端基于q个点中每一个点对应的第一距离,从n种预测值生成方式中,确定目标生成方式时,编码端可以首先确定这q个点的第一距离的平均值,进而基于该第一距离的平均值,从n种预测值生成方式中,确定目标生成方式。例如,若该第一距离的平均值大于某一个值时,将n种预测值生成方式中的一种预测值生成方式,确定为当前节点对应的目标生成方式,若该第一距离的平均值小于或等于某一个值时,将n种预测值生成方式中的另一种预测值生成方式,确定为当前节点对应的目标生成方式。
[0326]
在一些实施例中,上述s101-a1中基于q个点的统计特性,从n种预测值生成方式中,确定当前节点对应的目标生成方式,包括:若当前节点所包括的点为排序后点云中第m个点之后的点,或者当前节点满足预设条件时,则基于q个点的统计特性,从n种预测值生成方式中,确定目标生成方式,m为正整数。也就是说,在该实施例中,编码端从排序后点云的第m个点开始,确定点所在的节点的目标生成方式,或者对于排序后的点云中的每一个点,若该点满足预设条件时,则确定该点所在节点的目标生成方式。
[0327]
上述对编码端基于q个点的统计特性,从n种预测值生成方式中,确定目标生成方式的具体过程进行介绍。
[0328]
在一些实施例中,上述s101-a包括如下s101-a2的步骤
[0329]
s101-a2、基于当前节点的k个预测值,从n种预测值生成方式中,确定目标生成方式。
[0330]
本技术实施例对编码端基于当前节点的k个预测值,从n种预测值生成方式中,确定出当前节点对应的目标生成方式的具体方式不做限制。
[0331]
在一些实施例中,若当前节点的k个预测值中大于某预设值的预测值的个数大于k2时,则将n种预测值生成方式中某一个预测值生成方式,确定为当前节点对应的目标生成方式。若当前节点的k个预测值中大于某预设值的预测值的个数小于或等于k2时,,则将n种预测值生成方式中另一个预测值生成方式,确定为当前节点对应的目标生成方式。
[0332]
在一些实施例中,编码端确定当前节点与当前节点的k个预测值每一个预测值之间的距离,为了便于描述,将该距离记为第二距离,这样可以得到k个第二距离。确定这k个第二距离中的最大距离和最小距离之间的相关值。
[0333]
示例性的,编码端基于如下公式(8),确定k个第二距离中的最大距离和最小距离之间的相关值ratio:
[0334]
ratio=(dmax-dmin)/dmax
ꢀꢀꢀꢀ
(8)
[0335]
其中,dmax为k个第二距离中的最大距离,dmin为k个第二距离中的最小距离。
[0336]
编码端基于上述步骤,确定出k个第二距离中的最大距离和最小距离之间的相关值后,基于该相关值,确定当前节点对应的目标生成方式。例如,若ratio小于预设值thres1时,将n种预测值生成方式中的一个预测值生成方式,确定为当前节点对应的目标生成方式,若ratio大于或等于thres1时,将n种预测值生成方式中的另一个预测值生成方式,确定为当前节点对应的目标生成方式。
[0337]
在一些实施例中,上述s101-a2包括如下s101-a21和s101-a22的步骤:
[0338]
s101-a21、确定当前节点与当前节点的k个预测值中每一个预测值之间的第二距离;
[0339]
s101-a22、基于第二距离和第一阈值,从n种预测值生成方式中,确定目标生成方式。
[0340]
在该实施例中,编码端基于当前节点的位置信息,确定当前节点与当前节点的k个预测值中每一个预测值之间的第二距离,得到k个第二距离。基于该k个第二距离和第一阈值,确定目标生成方式。
[0341]
在一些实施例中,上述第一阈值为预设值。
[0342]
在一些实施例中,上述第一阈值是基于当前节点之前的w个点中的每一个点与对应的k个预测值之间的距离确定的。
[0343]
在一种示例中,对于w个点中每一个点,确定该点与该点的k个预测值之间的距离,接着,确定w个点中每一个点对应的距离的平均值,记为平均值1,将该平均值1作为第一阈值。编码端确定k个第二距离的平均值,记为平均值2,这样将平均值2与平均值1进行比较,确定当前节点对应的目标生成方式。例如,若该平均值2大于或等于平均值1(即第一阈值)时,则将n种预测值生成方式中的某一种预测值生成方式,确定为当前节点对应的目标生成方式。再例如,若该该平均值2小于平均值1(即第一阈值)时,则将n种预测值生成方式中的另一种预测值生成方式,确定为当前节点对应的目标生成方式。
[0344]
在一种示例中,对于w个点中每一个点,确定该点与该点的k个预测值之间的距离,接着,确定w个点中每一个点对应的距离的平均值,记为平均值1,将该平均值1作为第一阈值。接着,编码端将当前节点与k个预测值之间的距离,即k个第二距离与上述平均值1(即第一阈值)进行比较,确定当前节点对应的目标生成方式。例如,若该k个第二距离均大于或等于平均值1(即第一阈值)时,则将n种预测值生成方式中的某一种预测值生成方式,确定为当前节点对应的目标生成方式。再例如,若该k个第二距离均小于平均值1(即第一阈值)时,则将n种预测值生成方式中的另一种预测值生成方式,确定为当前节点对应的目标生成方式。
[0345]
在一种示例中,对于w个点中每一个点,确定该点与该点的k个预测值之间的距离,接着,确定w个点中每一个点对应的距离的平均值,记为平均值1,将该平均值1作为第一阈值。对于上述k个第二距离,确定k个第二距离中的最大距离和最小距离之间的相关值ratio。若该相关值ratio小于某一阈值值、且k个第二距离中每一个第二距离均小于平均值1(即第一阈值)时,则将n种预测值生成方式中的某一种预测值生成方式,确定为当前节点对应的目标生成方式,否则将n种预测值生成方式中的另一种预测值生成方式,确定为当前节点对应的目标生成方式。
[0346]
由上述可知,在本技术实施例中,编码端在确定当前节点对应的目标生成方式时,上述各参数可以单独进行使用,也可以组合使用。
[0347]
编码端基于上述步骤,确定出当前节点对应的目标生成方式后,执行如下s101的步骤。
[0348]
s102、基于目标生成方式,确定将当前节点作为父节点时所生成的目标预测值。
[0349]
编码端基于上述步骤,确定出当前节点对应的目标生成方式后,基于该目标生成
方式,确定将当前节点作为父节点时所生成的目标预测值。
[0350]
在本技术实施例中,基于目标生成方式的不同,确定将当前节点作为父节点时所生成的目标预测值的方式至少包括如下几种:
[0351]
方式一,若目标生成方式为基于预测模式的生成方式时,则将当前节点作为父节点时,对应的至少一个预测模式下的预测值,确定为目标预测值。
[0352]
例如,将当前节点作为父节点时,确定所有预测模式下的预测值,例如确定delta预测模式、linear预测模式和parallelogram预测模式这3种预测模式下的预测值,得到3个预测值,将这3个预测值确定为当前节点作为父节点时所生成的3个目标预测值。
[0353]
再例如,将当前节点作为父节点时,确定至少两种预测模式下的预测值,例如确定delta预测模式、linear预测模式和parallelogram预测模式中任意2种预测模式下的预测值,得到2个预测值,将这2个预测值确定为当前节点作为父节点时所生成的2个目标预测值。
[0354]
再例如,将当前节点作为父节点时,确定一种预测模式下的预测值,例如确定delta预测模式、linear预测模式和parallelogram预测模式中任意1种预测模式下的预测值,得到1个预测值,将这1个预测值确定为当前节点作为父节点时所生成的1个目标预测值。
[0355]
方式二,若目标生成方式为基于预测值的生成方式时,则将当前节点作为父节点时对应的多个预测值中的一个或多个预测值,确定为目标预测值。
[0356]
例如,将当前节点作为父节点时,确定所有预测模式下的预测值,例如确定delta预测模式、linear预测模式和parallelogram预测模式这3种预测模式下的预测值,得到3个预测值。从这3个预测值选择至少一个预测值,作为当前节点对应的目标预测值。
[0357]
本技术实施例对将当前节点作为父节点时对应的多个预测值中的一个或多个预测值,确定为目标预测值的具体方式不做限制。
[0358]
在一种可能的实现方式中,对于多个预测值中的每一个预测值,若该预测值对应的点为点云中的真实点时,则将该预测值确定为目标预测值。
[0359]
例如,对于上述确定的3个预测值中的每一个预测值,若该预测值对应的点为点云中的真实点时,则将预测值作为当前节点对应的一个目标预测值。若该预测值对应的点不是点云中的真实点时,则不将预测值作为当前节点对应的一个目标预测值。
[0360]
编码端基于上述步骤,确定出将当前节点作为父节点时所生成的目标预测值后,执行如下s103的步骤。
[0361]
s103、将目标预测值,加入搜索集合。
[0362]
编码端基于上述步骤,从n种预测值生成方式中,确定当前节点对应的目标生成方式,且基于目标生成方式,确定将当前节点作为父节点时所生成的目标预测值,进而将生成的目标预测值添加至预测树的搜索集合中。
[0363]
在一些实施例中,编码端在从n种预测值生成方式中,确定当前节点对应的目标生成方式之前,本技术实施例的方法还包括确定当前节点的父节点的过程。下面通过步骤1和步骤2对确定当前节点的父节点的方式进行介绍:
[0364]
步骤1、在搜索集合所包括的预测值中,搜索与当前节点之间的距离最小的k个预测值,k为大于1的正整数;
[0365]
步骤2、从k个预测值对应的节点中,确定当前节点的父节点。
[0366]
在该实施例中,编码端在将点云中的当前点添加至预测树中时,首先确定该当前点所在的当前节点在预测树中的父节点,具体是,从预测树的搜索集合中,搜索与当前节点之间的距离最小的k个预测值,进而从这k个预测值对应的节点中,确定当前节点的父节点。例如,从这k个预测值对应的节点(即预测节点)中,确定一个节点作为当前节点的父节点。
[0367]
本技术实施例对从k个预测值对应的节点中,确定当前节点的父节点的具体方法不做限制。
[0368]
在一些实施例中,确定k个预测值对应的节点中每一个节点与当前节点之间的距离,将与当前节点之间的距离最小的一个节点,确定为当前节点的父节点。
[0369]
在一些实施例中,上述步骤2包括如下步骤:
[0370]
步骤21、从k个预测值中,确定与当前节点之间的距离最小的预测值;
[0371]
步骤22、若距离最小的预测值包括w个预测值时,则从w个预测值对应的节点中,确定当前节点的父节点,w为大于1且小于或等于k的正整数。
[0372]
在该实施例中,若确定k个预测值与当前节点之间的距离,若这k个预测值中与当前节点之间的距离最小的预测值包括w个预测值,也就是说,这k个预测值中存在多个与当前节点距离最小且相等的预测值时,从这多个距离最小且相等的预测值(例如w个预测值)对应的节点中,确定当前节点的父节点。
[0373]
本技术实施例对编码端从上述w个预测值对应的节点中,确定当前节点的父节点的具体方式不做限制。
[0374]
在一种可能的实现方式中,将这w个预测值对应的节点中的任意一个节点,确定为当前节点的父节点。
[0375]
在一种可能的实现方式中,上述步骤22包括如下步骤221:
[0376]
步骤221、基于w个预测值对应的节点所包括的子节点个数、预测模式和索引值中的至少一个,从w个预测值对应的节点中确定当前节点的父节点。
[0377]
在该实现方式中,编码端确定这w个预测值对应的节点所包括的子节点个数、预测模式和索引值中的至少一个,进而基于w个预测值对应的节点所包括的子节点个数、预测模式和索引值中的至少一个,从w个预测值对应的节点中确定当前节点的父节点。
[0378]
在本技术实施例中,上述步骤221至少包括如下示例所示的几种可能的实现方式:
[0379]
在一种示例中,编码端基于w个预测值对应的节点所包括的子节点个数、预测模式和索引值中,从w个预测值对应的节点中确定当前节点的父节点。
[0380]
在一种示例中,编码端基于w个预测值对应的节点所包括的子节点个数、预测模式和索引值中的至少两个,从w个预测值对应的节点中确定当前节点的父节点。
[0381]
在一种示例中,编码端基于w个预测值对应的节点所包括的子节点个数、预测模式和索引值中的任意一个,从w个预测值对应的节点中确定当前节点的父节点。
[0382]
例如,编码端基于w个预测值对应的节点所包括的子节点个数,从w个预测值对应的节点中确定当前节点的父节点。例如,编码端将w个预测值对应的节点中包括的子节点个数最少的节点,确定为当前节点的父节点。
[0383]
再例如,编码端基于w个预测值对应的节点的预测模式,从w个预测值对应的节点中确定当前节点的父节点。例如,编码端将w个预测值对应的节点中预测模式为第三预测模
式的节点,确定为当前节点的父节点。本技术实施例对第三预测模式的具体类型不做限制。例如,第三预测模式为delta预测模式。
[0384]
在一些实施例中,上述步骤2还可以是,若当前节点的k个预测值包括第二预测节点的不同预测模式生成的k2个预测值时,则将该第二预测节点确定为当前节点的父节点,该第二预测点为k个预测值对应的预测节点中的一个预测节点。
[0385]
在一种示例中,如公式(9)所示,上述k2个预测值可能相同:
[0386][0387]
其中,q为当前点(即当前节点),p0为父节点,p1为祖父节点,p2为曾祖父节点。
[0388]
上文对编码端确定当前节点的父节点,以及确定将当前节点作为父节点时所生成的目标预测值的过程进行介绍。
[0389]
为了进一步介绍本技术实施例的方法,下面通过几个示例,对本技术实施例提高的点云编码方法进行进一步介绍。
[0390]
示例1,本技术实施例的点云编码方法包括如下步骤a1至步骤a6:
[0391]
步骤a1、根据点云体密度和点数,设定加入搜索集合的初始目标生成方式;
[0392]
步骤a2、假设当前点q对应索引值为qindx,qindx为0时,搜索集合为空集,q的父节点为默认节点;
[0393]
步骤a3、若qindx》0,则在搜索集合中搜索k个与当前点q距离最小的预测值,这k个预测值分别对应s个预测节点;
[0394]
步骤a4、从当前节点的k个预测值中,选择与当前点q距离最小(设距离为d0)的预测值,其对应的预测节点为p0;若存在多个距离为d0的预测值,判定其对应的s1个预测节点的子节点个数,选择其中子节点个数最小的节点作为当前节点的父节点;
[0395]
步骤a5、从n种预测值生成方式中,确定当前点q对应的目标生成方式。
[0396]
例如,确定当前节点的k个预测值与当前节点之间的距离,得到k个距离值。对于这k个距离值,计算ratio=(dmax-dmin)/dmax,即最大距离值和最小距离值之间的关系;当ratio《thres1时,将n种预测值生成方式中的一种预测值生成方式,确定为当前节点的目标生成方式,反之n种预测值生成方式中的另一种预测值生成方式,确定为当前节点的目标生成方式;
[0397]
步骤a6、重复上述a2到a5的步骤直到所有点都遍历完成;基于所得的预测节点和预测模式等信息,对各个点的几何信息进行编码。
[0398]
示例2,本技术实施例的点云编码方法包括如下步骤b1至步骤b6:
[0399]
步骤b1、根据点云体密度和点数,设定加入搜索集合的初始目标生成方式;
[0400]
步骤b2、假设当前点q对应索引值为qindx,qindx为0时,搜索集合为空集,q的父节点为默认节点;
[0401]
步骤b3、若qindx》0,则在搜索集合中搜索k个与当前点q距离最小的预测值,这k个预测值分别对应s个预测节点;
[0402]
步骤b4、从当前节点的k个预测值中,选择与当前点q距离最小(设距离为d0)的预测值,其对应的预测节点为p0;若存在多个距离为d0的预测值,判定其对应的s1个预测节点的子节点个数,选择其中子节点个数最小的节点作为当前节点的父节点。示例性的,若子节点个数也相同,则选择索引值较大的作为当前节点的父节点。
[0403]
步骤b5、从n种预测值生成方式中,确定当前点q对应的目标生成方式。
[0404]
例如,从第m1个点开始,计算前序m2个点对应的d0的均值dmean;确定当前节点的k个预测值与当前节点之间的距离,得到k个距离值。若当前点的k个预测值对应的距离值都小于dmean(或d0《dmean)时,将n种预测值生成方式中的一种预测值生成方式,确定为当前节点的目标生成方式,反之n种预测值生成方式中的另一种预测值生成方式,确定为当前节点的目标生成方式;
[0405]
步骤b6、重复上述b2到b5的步骤直到所有点都遍历完成;基于所得的预测节点和预测模式等信息,对各个点的几何信息进行编码。
[0406]
示例3,本技术实施例的点云编码方法包括如下步骤c1至步骤c6:
[0407]
步骤c1、根据点云体密度和点数,设定加入搜索集合的初始目标生成方式;
[0408]
步骤c2、假设当前点q对应索引值为qindx,qindx为0时,搜索集合为空集,q的父节点为默认节点;
[0409]
步骤c3、若qindx》0,则在搜索集合中搜索k个与当前点q距离最小的预测值,这k个预测值分别对应s个预测节点;
[0410]
步骤c4、从当前节点的k个预测值中,选择与当前点q距离最小(设距离为d0)的预测值,其对应的预测节点为p0;若存在多个距离为d0的预测值,判定其对应的s1个预测节点的子节点个数,选择其中子节点个数最小的节点作为当前节点的父节点。示例性的,若子节点个数也相同,则选择索引值较大的作为当前节点的父节点。
[0411]
步骤c5、从n种预测值生成方式中,确定当前点q对应的目标生成方式。
[0412]
例如,从第m1个点开始,计算前序m2个点对应的d0的均值dmean。确定当前节点的k个预测值与当前节点之间的距离,得到k个距离值,对于这k个距离值,计算ratio=(dmax-dmin)/dmax,即最大距离值和最小距离值之间的关系。若当ratio《thres1且d0《dmean时,将n种预测值生成方式中的一种预测值生成方式,确定为当前节点的目标生成方式,反之n种预测值生成方式中的另一种预测值生成方式,确定为当前节点的目标生成方式;
[0413]
步骤c6、重复上述c2到c5的步骤直到所有点都遍历完成;基于所得的预测节点和预测模式等信息,对各个点的几何信息进行编码。
[0414]
需要说明的是,上述示例一至示例三只是一种示例,本技术实施例中,确定当前节点的父节点,以及确定当前节点对应的目标生成方式,包括但不限于上述示例所示的方法。
[0415]
本技术实施例提供的点云编码方法,编码端在将当前节点作为父节点,生成新的预测值时,首先从n种预测值生成方式中,确定当前节点对应的目标生成方式,进而基于该目标生成方式,得到将当前节点作为父节点时所生成的目标预测值,并将生成的目标预测值,加入搜索集合中。即本技术实施例中,从n种预测值生成方式中,确定当前节点对应的目标生成方式,丰富了预测值的生成方式,可以满足点云的编码需求,进而提升点云的编码效果。
[0416]
应理解,图9仅为本技术的示例,不应理解为对本技术的限制。
[0417]
以上结合附图详细描述了本技术的优选实施方式,但是,本技术并不限于上述实施方式中的具体细节,在本技术的技术构思范围内,可以对本技术的技术方案进行多种简单变型,这些简单变型均属于本技术的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本技术对各种可能的组合方式不再另行说明。又例如,本技术的各种不同的实施方式之间也可以进行任意组合,只要其不违背本技术的思想,其同样应当视为本技术所公开的内容。
[0418]
还应理解,在本技术的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。另外,本技术实施例中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。具体地,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0419]
上文结合图9,详细描述了本技术的方法实施例,下文结合图11,详细描述本技术的装置实施例。
[0420]
图10是本技术实施例提供的点云编码装置的示意性框图。
[0421]
如图10所示,该点云编码装置10可包括:
[0422]
处理单元11,用于从n种预测值生成方式中,确定当前节点对应的目标生成方式,所述当前节点为点云的预测树中的一个节点,所述预测值生成方式用于生成加入预测树搜索集合的预测值,所述n为正整数;
[0423]
预测值确定单元12,用于基于所述目标生成方式,确定将所述当前节点作为父节点时所生成的目标预测值;
[0424]
加入单元13,用于将所述目标预测值,加入所述搜索集合。
[0425]
在一些实施例中,所述n种预测值生成方式包括基于预测模式的生成方式和基于预测值的生成方式中的至少一个。
[0426]
在一些实施例中,处理单元11,具体用于基于默认的预测值生成方式、所述点云的特性、q个点的统计特性、所述当前节点的k个预测值中的至少一个,从所述n种预测值生成方式中,确定所述目标生成方式,其中,所述q个点为所述当前节点之前的p个点、或者为所述当前节点所在的第一点云组之前的第二点云组中的部分或全部点,所述第一点云组和所述第二点云组为所述点云被划分为m个点云组中的不同点云组,所述q、p、m均为正整数。
[0427]
在一些实施例中,所述点云的特性包括如下至少一个:所述点云的数据类型、所述点云中点的排列特性和所述点云的分布特性。
[0428]
在一些实施例中,所述点云的分布特性包括如下至少一个:目标点云的点数、几何动态范围、体密度和面密度,所述目标点云为所述点云整体或所述当前节点所在的点云片或第一点云组。
[0429]
在一些实施例中,所述q个点的统计特性包括如下至少一个:所述q个点的预测模式的统计特性、所述q个点的索引的统计特性、所述q个点对应的预测值的统计特性和q个点对应的子节点数的统计特性。
[0430]
在一些实施例中,处理单元11,具体用于基于所述q个点的统计特性,从所述n种预
测值生成方式中,确定当前节点对应的目标生成方式。
[0431]
在一些实施例中,若所述q个点的统计特性包括所述q个点的预测模式的统计特性时,处理单元11,具体用于基于所述q个点的预测模式的统计特性,从所述n种预测值生成方式中,确定当前节点对应的目标生成方式。
[0432]
在一些实施例中,处理单元11,具体用于基于所述q个点中预测模式相同的点划分为一类,得到t个分类,所述t为正整数;基于所述q个分类中点数最多的分类对应的预测模式,从所述n种预测值生成方式中,确定所述目标生成方式。
[0433]
在一些实施例中,若所述q个点的统计特性包括所述q个点的索引的统计特性时,处理单元11,具体用于基于所述q个点的索引的统计特性,从所述n种预测值生成方式中,确定当前节点对应的目标生成方式。
[0434]
在一些实施例中,处理单元11,具体用于若所述q个点中至少r个点的索引值与父节点的索引值之间的间隔小于预设值时,则将所述n种预测值生成方式中的第一预测值生成方式,确定为所述目标生成方式,所述第一预测值生成方式为所述基于预测模式的生成方式的一种子预测值生成方式。
[0435]
在一些实施例中,若所述q个点的统计特性包括所述q个点对应的预测值的统计特性时,在一些实施例中,处理单元11,具体用于基于所述q个点对应的预测值的统计特性,从所述n种预测值生成方式中,确定当前节点对应的目标生成方式。
[0436]
在一些实施例中,处理单元11,具体用于对于q个点中的每一个点,确定所述点与所述点的k个预测值之间的距离分布特性、所述点与所述点的第一预测值或第一预测节点之间的第一距离、所述点的k个预测值所对应的不同预测节点的预测值的差异值中的至少一个,所述k为正整数,所述第一预测值为所述k个预测值中的一个预测值,所述第一预测节点为所述k个预测值对应的节点中的一个节点;基于所述q个点中的每一个点对应的距离分布特性、第一距离和差异值中的至少一个,从所述n种预测值生成方式中,确定所述目标生成方式。
[0437]
在一些实施例中,处理单元11,具体用于确定所述点与所述点的k个预测值之间的最大距离和最小距离之间的差异值、所述点与所述点的k个预测值之间的距离方差值、所述点与所述点的k个预测值之间的距离相关系数中的至少一个;将所述点对应的差异值、距离方差值和距离相关系数中的至少一个,确定为所述点对应的距离分布特性。
[0438]
在一些实施例中,所述第一预测值为所述点的k个预测值中与所述当前节点之间的距离最小的一个预测值,所述第一预测节点为所述第一预测值对应的父节点。
[0439]
在一些实施例中,处理单元11,具体用于对于所述点的k个预测值所对应的s个预测节点中的每一个预测节点,从所述k个预测值中选出所述预测节点的至少一个预测值,得到至少s个预测值,所述s为大于1的正整数;确实所述至少s个预测值之间的差异值。
[0440]
在一些实施例中,处理单元11,具体用于基于所述q个点中每一个点对应的第一距离,确定所述第一距离的平均值;基于所述第一距离的平均值,从所述n种预测值生成方式中,确定所述目标生成方式。
[0441]
在一些实施例中,处理单元11,具体用于若所述当前节点所包括的点为排序后点云中第m个点之后的点,或者所述当前节点满足预设条件时,则基于所述q个点的统计特性,从所述n种预测值生成方式中,确定所述目标生成方式,所述m为正整数。
[0442]
在一些实施例中,处理单元11,具体用于基于所述当前节点的k个预测值,从所述n种预测值生成方式中,确定所述目标生成方式。
[0443]
在一些实施例中,处理单元11,具体用于确定所述当前节点与所述当前节点的k个预测值中每一个预测值之间的第二距离,得到k个第二距离;基于所述第二距离和第一阈值,从所述n种预测值生成方式中,确定所述目标生成方式。
[0444]
在一些实施例中,所述第一阈值是基于所述当前节点之前的w个点中的每一个点与对应的k个预测值之间的距离确定的,w为正整数。
[0445]
在一些实施例中,预测值确定单元12,具体用于若所述目标生成方式为基于预测模式的生成方式时,则将所述当前节点作为父节点时,对应的至少一个预测模式下的预测值,确定为所述目标预测值;若所述目标生成方式为基于预测值的生成方式时,则将所述当前节点作为父节点时对应的多个预测值中的一个或多个预测值,确定为所述目标预测值。
[0446]
在一些实施例中,预测值确定单元12,具体用于对于所述多个预测值中的每一个预测值,若所述预测值对应的点为所述点云中的真实点时,则将所述预测值确定为所述目标预测值。
[0447]
在一些实施例中,处理单元11,在从n种预测值生成方式中,确定当前节点对应的目标生成方式之前,还用于在所述搜索集合所包括的预测值中,搜索与所述当前节点之间的距离最小的k个预测值,所述k为大于1的正整数;从所述k个预测值对应的节点中,确定所述当前节点的父节点。
[0448]
在一些实施例中,预测值确定单元12,具体用于从所述k个预测值中,确定与所述当前节点之间的距离最小的预测值;若所述距离最小的预测值包括w个预测值时,则从所述w个预测值对应的节点中,确定所述当前节点的父节点,所述w为大于1且小于或等于k的正整数。
[0449]
在一些实施例中,预测值确定单元12,具体用于基于所述w个预测值对应的节点所包括的子节点个数、预测模式和索引值中的至少一个,从所述w个预测值对应的节点中确定所述当前节点的父节点。
[0450]
在一些实施例中,预测值确定单元12,具体用于将所述w个预测值对应的节点中包括的子节点个数最少的节点,确定为所述当前节点的父节点。
[0451]
在一些实施例中,预测值确定单元12,具体用于将所述w个预测值对应的节点中预测模式为第三预测模式的节点,确定为所述当前节点的父节点。
[0452]
在一些实施例中,预测值确定单元12,具体用于若所述k个预测值包括第二预测节点的不同预测模式生成的k2个预测值时,则将所述第二预测节点确定为所述当前节点的父节点,所述第二预测点为所述k个预测值对应的预测节点中的一个预测节点。
[0453]
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图10所示的点云编码装置10可以对应于执行本技术实施例的点云编码方法中的相应主体,并且点云编码装置10中的各个单元的前述和其它操作和/或功能分别为了实现点云编码方法中的相应流程,为了简洁,在此不再赘述。
[0454]
上文中结合附图从功能单元的角度描述了本技术实施例的装置和系统。应理解,该功能单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件单元组合实现。具体地,本技术实施例中的方法实施例的各步骤可以通过处理器中的
硬件的集成逻辑电路和/或软件形式的指令完成,结合本技术实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。可选地,软件单元可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。。
[0455]
图11是本技术实施例提供的电子设备的示意性框图,图11的电子设备可以为上述的编码器。
[0456]
如图11所示,该电子设备30可包括:
[0457]
存储器31和处理器32,该存储器31用于存储计算机程序33,并将该程序代码33传输给该处理器32。换言之,该处理器32可以从存储器31中调用并运行计算机程序33,以实现本技术实施例中的方法。
[0458]
例如,该处理器32可用于根据该计算机程序33中的指令执行上述方法200中的步骤。
[0459]
在本技术的一些实施例中,该处理器32可以包括但不限于:
[0460]
通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
[0461]
在本技术的一些实施例中,该存储器31包括但不限于:
[0462]
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(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 data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0463]
在本技术的一些实施例中,该计算机程序33可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器31中,并由该处理器32执行,以完成本技术提供的录制页面的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序33在该电子设备中的执行过程。
[0464]
如图11所示,该电子设备30还可包括:
[0465]
收发器34,该收发器34可连接至该处理器32或存储器31。
[0466]
其中,处理器32可以控制该收发器34与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器34可以包括发射机和接收机。收发器34还可以进一步包括天线,天线的数量可以为一个或多个。
[0467]
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括
数据总线之外,还包括电源总线、控制总线和状态信号总线。
[0468]
根据本技术的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。
[0469]
本技术实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
[0470]
根据本技术的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
[0471]
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地实现本技术实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,dvd))、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0472]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0473]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0474]
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
[0475]
以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本技术的保护范围之内。因此,本技术的保护范围应以该权利要求的保护范围为准。
技术特征:
1.一种点云编码方法,其特征在于,包括:从n种预测值生成方式中,确定当前节点对应的目标生成方式,所述当前节点为点云的预测树中的一个节点,所述预测值生成方式用于生成加入预测树搜索集合的预测值,所述n为正整数;基于所述目标生成方式,确定将所述当前节点作为父节点时所生成的目标预测值;将所述目标预测值,加入所述搜索集合。2.根据权利要求1所述的方法,其特征在于,所述n种预测值生成方式包括基于预测模式的生成方式和基于预测值的生成方式中的至少一个。3.根据权利要求2所述的方法,其特征在于,所述从n种预测值生成方式中,确定当前节点对应的目标生成方式,包括:基于默认的预测值生成方式、所述点云的特性、q个点的统计特性、所述当前节点的k个预测值中的至少一个,从所述n种预测值生成方式中,确定所述目标生成方式,其中,所述q个点为所述当前节点之前的p个点、或者为所述当前节点所在的第一点云组之前的第二点云组中的部分或全部点、或者为,所述第一点云组和所述第二点云组为所述点云被划分为m个点云组中的不同点云组,所述q、p、m均为正整数;所述点云的特性包括如下至少一个:所述点云的数据类型、所述点云中点的排列特性和所述点云的分布特性;所述q个点的统计特性包括如下至少一个:所述q个点的预测模式的统计特性、所述q个点的索引的统计特性、所述q个点对应的预测值的统计特性和所述q个点对应的子节点数的统计特性。4.根据权利要求3所述的方法,其特征在于,所述点云的分布特性包括如下至少一个:目标点云的点数、几何动态范围、体密度和面密度,所述目标点云为所述点云整体或所述当前节点所在的点云片或所述第一点云组。5.根据权利要求3所述的方法,其特征在于,所述基于默认的预测值生成方式、所述点云的特性、q个点的统计特性、所述当前节点的k个预测值中的至少一个,从所述n种预测值生成方式中,确定所述目标生成方式,包括:基于所述q个点的统计特性,从所述n种预测值生成方式中,确定所述目标生成方式。6.根据权利要求5所述的方法,其特征在于,基于所述q个点的预测模式的统计特性,从所述n种预测值生成方式中,确定所述目标生成方式,包括:基于所述q个点中预测模式相同的点划分为一类,得到t个分类,所述t为正整数;基于所述q个分类中点数最多的分类对应的预测模式,从所述n种预测值生成方式中,确定所述目标生成方式。7.根据权利要求5所述的方法,其特征在于,基于所述q个点的索引的统计特性,从所述n种预测值生成方式中,确定所述目标生成方式,包括:若所述q个点中至少r个点的索引值与父节点的索引值之间的间隔小于预设值时,则将所述n种预测值生成方式中的第一预测值生成方式,确定为所述目标生成方式,所述第一预测值生成方式为所述基于预测模式的生成方式的一种子预测值生成方式。8.根据权利要求5所述的方法,其特征在于,基于所述q个点对应的预测值的统计特性,从所述n种预测值生成方式中,确定所述目标生成方式,包括:
对于q个点中的每一个点,确定所述点与所述点的k个预测值之间的距离分布特性、所述点与所述点的第一预测值或第一预测节点之间的第一距离、所述点的k个预测值所对应的不同预测节点的预测值的差异值中的至少一个,所述k为正整数,所述第一预测值为所述点的k个预测值中与所述当前节点之间的距离最小的一个预测值,所述第一预测节点为所述第一预测值对应的父节点;基于所述q个点中的每一个点对应的距离分布特性、第一距离和差异值中的至少一个,从所述n种预测值生成方式中,确定所述目标生成方式。9.根据权利要求8所述的方法,其特征在于,所述确定所述点与所述点的k个预测值对应的点之间的距离分布特性,包括:确定所述点与所述点的k个预测值之间的最大距离和最小距离之间的差异值、所述点与所述点的k个预测值之间的距离方差值、所述点与所述点的k个预测值之间的距离相关系数中的至少一个;将所述点对应的差异值、距离方差值和距离相关系数中的至少一个,确定为所述点对应的距离分布特性。10.根据权利要求8所述的方法,其特征在于,所述确定所述点的k个预测值所对应的不同预测节点的预测值的差异值,包括:对于所述点的k个预测值所对应的s个预测节点中的每一个预测节点,从所述k个预测值中选出所述预测节点的至少一个预测值,得到至少s个预测值,所述s为大于1的正整数;确实所述至少s个预测值之间的差异值。11.根据权利要求8所述的方法,其特征在于,基于所述q个点中每一个点对应的第一距离,从所述n种预测值生成方式中,确定所述目标生成方式,包括:基于所述q个点中每一个点对应的第一距离,确定所述第一距离的平均值;基于所述第一距离的平均值,从所述n种预测值生成方式中,确定所述目标生成方式。12.根据权利要求5所述的方法,其特征在于,所述基于所述q个点的统计特性,从所述n种预测值生成方式中,确定当前节点对应的目标生成方式,包括:若所述当前节点所包括的点为排序后点云中第m个点之后的点,或者所述当前节点满足预设条件时,则基于所述q个点的统计特性,从所述n种预测值生成方式中,确定所述目标生成方式,所述m为正整数。13.根据权利要求4所述的方法,其特征在于,基于所述当前节点的k个预测值,从所述n种预测值生成方式中,确定所述目标生成方式,包括:确定所述当前节点与所述当前节点的k个预测值中每一个预测值之间的第二距离,得到k个第二距离;基于所述第二距离和第一阈值,从所述n种预测值生成方式中,确定所述目标生成方式;其中,所述第一阈值是基于所述当前节点之前的w个点中的每一个点与对应的k个预测值之间的距离确定的,w为正整数。14.根据权利要求1-13任一项所述的方法,其特征在于,所述基于所述目标生成方式,确定将所述当前节点作为父节点时所生成的目标预测值,包括:若所述目标生成方式为基于预测模式的生成方式时,则将所述当前节点作为父节点
时,对应的至少一个预测模式下的预测值,确定为所述目标预测值;若所述目标生成方式为基于预测值的生成方式时,则将所述当前节点作为父节点时对应的多个预测值中的一个或多个预测值,确定为所述目标预测值。15.根据权利要求14所述的方法,其特征在于,所述将所述当前节点作为父节点时对应的多个预测值中的一个或多个预测值,确定为所述目标预测值,包括:对于所述多个预测值中的每一个预测值,若所述预测值对应的点为所述点云中的真实点时,则将所述预测值确定为所述目标预测值。16.根据权利要求1-13任一项所述的方法,还包括:在所述搜索集合所包括的预测值中,搜索与所述当前节点之间的距离最小的k个预测值,所述k为大于1的正整数;从所述k个预测值对应的节点中,确定所述当前节点的父节点。17.根据权利要求16所述的方法,其特征在于,所述从所述k个预测值对应的节点中,确定所述当前节点的父节点,包括:从所述k个预测值中,确定与所述当前节点之间的距离最小的预测值;若所述距离最小的预测值包括w个预测值时,则基于所述w个预测值对应的节点所包括的子节点个数、预测模式和索引值中的至少一个,从所述w个预测值对应的节点中确定所述当前节点的父节点,所述w为大于1且小于或等于k的正整数。18.根据权利要求17所述的方法,其特征在于,所述基于所述w个预测值对应的节点所包括的子节点个数、预测模式和索引值中的至少一个,从所述w个预测值对应的节点中确定所述当前节点的父节点,包括:将所述w个预测值对应的节点中包括的子节点个数最少的节点,或者将所述w个预测值对应的节点中预测模式为第三预测模式的节点,确定为所述当前节点的父节点。19.根据权利要求16所述的方法,其特征在于,所述从所述k个预测值对应的节点中,确定所述当前节点的父节点,包括:若所述k个预测值包括第二预测节点的不同预测模式生成的k2个预测值时,则将所述第二预测节点确定为所述当前节点的父节点,所述第二预测点为所述k个预测值对应的预测节点中的一个预测节点,所述k2为小于或等于k的正整数。20.一种电子设备,其特征在于,包括处理器和存储器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序以实现如上述权利要求1至19任一项所述的方法。
技术总结
本申请提供了一种点云编码方法及设备,可应用于沉浸式媒体、自动驾驶等领域,包括:在将当前节点作为父节点,生成新的预测值时,首先从N种预测值生成方式中,确定当前节点对应的目标生成方式,进而基于该目标生成方式,确定将当前节点作为父节点时所生成的目标预测值,并将生成的目标预测值,加入搜索集合中。即本申请从N种预测值生成方式中,确定当前节点对应的目标生成方式,丰富了预测值的生成方式,可以满足点云的编码需求,进而提升点云的编码准确性。准确性。准确性。
技术研发人员:朱文婕 许晓中
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2023.07.24
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
