CN117426093A - 点云编解码方法、装置、点云编解码器及存储介质 - Google Patents
点云编解码方法、装置、点云编解码器及存储介质 Download PDFInfo
- Publication number
- CN117426093A CN117426093A CN202180098761.3A CN202180098761A CN117426093A CN 117426093 A CN117426093 A CN 117426093A CN 202180098761 A CN202180098761 A CN 202180098761A CN 117426093 A CN117426093 A CN 117426093A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- prediction
- point cloud
- attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 199
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000013519 translation Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 24
- 108091026890 Coding region Proteins 0.000 claims description 12
- 239000013598 vector Substances 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 23
- 238000013139 quantization Methods 0.000 description 21
- 238000006243 chemical reaction Methods 0.000 description 13
- 230000009466 transformation Effects 0.000 description 13
- 230000006835 compression Effects 0.000 description 12
- 238000007906 compression Methods 0.000 description 12
- 230000009977 dual effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000001502 supplementing effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007654 immersion Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101000638069 Homo sapiens Transmembrane channel-like protein 2 Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 102100032054 Transmembrane channel-like protein 2 Human genes 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供一种点云编解码方法、装置、点云编解码器及存储介质,其中,所述点云解码方法包括:解码点云码流,确定与点云对应的至少一个待解码节点;在与待解码节点对应的第一候选节点中,确定第一预测节点;若第一预测节点的数量小于M1,在第二候选节点中确定第二预测节点,其中,第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,第二节点顺序是对点云进行平移处理后得到的节点的重排序;根据第一预测节点和第二预测节点的属性重建值进行预测得到待解码节点的属性预测值。本申请可以提高属性预测的准确度,提升点云编码效率。
Description
本申请涉及点云编解码技术领域,尤其涉及一种点云编解码方法、点云编解码装置、编点云解码器及计算机可读存储介质。
通过采集设备对物体表面进行采集,形成点云数据,点云数据包括几十万甚至更多的点。在视频制作过程中,将点云数据以点云媒体文件的形式在点云编码设备和点云解码设备之间传输。但是,如此庞大的点给传输带来了挑战,因此,点云编码设备需要对点云数据进行压缩后传输。
目前通过预测来减少或消除点云数据中的冗余信息,以实现点云数据的压缩。但是目前的点云预测准确性差。
发明内容
本申请实施例提供了一种一种点云编解码方法、点云编解码装置、编点云解码器及计算机可读存储介质,以提高点云属性编码的准确性,提升点云编码效率。
第一方面,本申请实施例提供一种点云解码方法,包括:
解码点云码流,确定与点云对应的至少一个待解码节点以及包含所述至少一个待解码节点对应的第一解码顺序;
在待解码节点在第一解码顺序中的序号大于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
若确定的第一预测节点的数量小于M1,在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
第二方面,本申请实施例提供了一种点云编码方法,包括:
对点云进行划分,得到与点云对应的至少一个待编码节点,确定与所述至少一个待编码节点对应的第一编码顺序,其中,待编码节点为对点云进行划分得到的体素单元voxel;
在待编码节点在第一编码顺序中的序号大于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
若确定的第一预测节点的数量小于M1,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
第三方面,本申请实施例提供了一种点云解码装置,包括
节点确定模块,用于解码点云码流,确定与点云对应的至少一个待解码节点以及包含所述至少一个待解码节点对应的第一解码顺序;
第一预测节点确定模块,用于在待解码节点在第一解码顺序中的序号大于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
第二预测节点确定模块,用于在确定的第一预测节点的数量小于M1的情况下,在与待解码节点对 应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
属性预测模块,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
第四方面,本申请实施例提供了一种点云编码装置,包括:
点云划分模块,用于对点云进行划分,得到与点云对应的至少一个待编码节点,确定与所述至少一个待编码节点对应的第一编码顺序,其中,待编码节点为对点云进行划分得到的体素单元voxel;
第一预测节点确定模块,用于在待编码节点在第一编码顺序中的序号大于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
第二预测节点确定模块,用于在确定的第一预测节点的数量小于M1时,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
属性预测模块,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
第五方面,本申请实施例提供了一种点云解码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第六方面,本申请实施例提供了一种点云编码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,本申请实施例提供了一种点云编码系统,包括上述第三方面所述的点云解码器和上述第四方面所述的点云编码器。
第八方面,本申请实施例提供了一种数据流,包括根据上述第二方面的点云编码方法生成的属性码流。
第九方面,提供了一种芯片,用于实现上述第一方面至第二方面中的任一方面或其各实现方式中的方法。具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备执行如上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十一方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十二方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
图1(a)为本申请实施例涉及的点云图像整体示意图;
图1(b)为本申请实施例涉及的点云图像局部放大示意图;
图2(a)为本申请实施例涉及的点云图像的六个观看角度示意图;
图2(b)为本申请实施例涉及的点云图像的数据存储格式示意图;
图3为本申请实施例涉及的一种点云编解码系统的示意性框图;
图4为本申请实施例提供的点云编码器的示意性框图;
图5为本申请实施例提供的点云解码器的示意性框图;
图6(a)为本申请实施例提供的点云包围盒的示意图;
图6(b)为本申请实施例提供的点云包围盒的八叉树划分示意图;
图7(a)为本申请实施例提供的2*2莫顿码在二维空间中的编码顺序的示意图;
图7(b)为本申请实施例提供的4*4莫顿码在二维空间中的编码顺序的示意图;
图7(c)为本申请实施例提供的8*8莫顿码在二维空间中的编码顺序的示意图;
图8为本申请实施例提供的莫顿码在三维空间中的编码顺序的示意图;
图9为本申请实施例提供的一种点云编码方法的流程示意图;
图10(a)为本申请实施例提供的共面节点的示意图;
图10(b)为本申请实施例提供的共线节点的示意图;
图10(c)为本申请实施例提供的共点节点的示意图;
图11为本申请实施例提供的一种点云编码方法的流程示意图;
图12为本申请实施例提供的一种点云解码方法的流程示意图;
图13为本申请实施例提供的一种点云解码方法的流程示意图;
图14为本申请实施例提供的一种点云编码装置的结构示意图;
图15为本申请实施例提供的一种点云解码装置的结构示意图;
图16是本申请实施例提供的电子设备的示意性框图。
本申请可应用于点云上采样技术领域,例如可以应用于点云压缩技术领域。
为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:
点云(Point Cloud)是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。举例来说,如图1(a)-(b)所示,其中,图1(a)为三维点云图像的示意图。图1(b)为该点云图像的局部放大图,可以看到,点云表面是由分布稠密的点所组成的。
点云数据(Point Cloud Data)是点云的具体记录形式,点云中的点可以包括点的位置信息(也称几何信息)和点的属性信息。二维图像在每一个像素点均有信息表达,分布规则,因此不需要额外记录其位置信息;然而点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。与二维图像类似,采集过程中每一个位置均有对应的属性信息,通常为RGB颜色值,颜色值反映物体的色彩;对于点云来说,每一个点所对应的属性信息除了颜色信息以外,还有比较常见的是反射率(reflectance)值,反射率值反映物体的表面材质。因此,点云数据通常包括三维位置信息所组成的几何信息(x,y,z)和三维颜色信息(r,g,b)、一维反射率信息(r)所组成的属性信息。其中,所述颜色信息可以是任意一种色彩空间上的信息。例如,所述颜色信息可以是(RGB)。再如,所述颜色信息可以是于亮度色度(YcbCr,YUV)信息。例如,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色,U和V表示为色度(Chroma)用于描述色差信息。例如,根据激光测量原理得到的点云,所述点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,所述点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,所述点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。
如图2(a)-(b)所示为一幅点云图像及其对应的数据存储格式,其中,图2(a)提供了点云图像的六个观看角度;图2(b)展示了该点云图像的数据存储格式,由文件头信息部分和数据部分组成,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容,如图2(b)中的点云为“.ply”格式,由ASCII码表示,总点数为207242,每个点具有三维位置信息xyz和三维颜色信息rgb。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等。
点云的采集主要有以下途径:计算机生成、3D激光扫描、3D摄影测量等。计算机可以生成虚拟三维物体及场景的点云;3D激光扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云;3D摄影测量可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能,伴随着应用需求的增长,海量3D点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。
点云可以按获取的途径分为:密集型点云和稀疏性点云。
点云按照数据的时序类型划分为:第一类静态点云:即物体是静止的,获取点云的设备也是静止的;第二类动态点云:物体是运动的,但获取点云的设备是静止的;第三类动态获取点云:获取点云的设备是运动的。
按点云的用途分为两大类:类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地 理信息系统、视觉分拣机器人、抢险救灾机器人等场景;类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
以帧率为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.33·2=0.66GB。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。
在本实施例中,提供了一种点云编/解码方法,可以应用于点云编解码框架中,对点云数据进行压缩。点云压缩一般采用点云几何信息和属性信息分别压缩的方式,在编码端,首先在几何编码器中编码点云几何信息,然后将重建几何信息作为附加信息输入到属性编码器中,辅助点云属性的压缩;在解码端,首先在几何解码器中解码点云几何信息,然后将解码后的几何信息作为附加信息输入到属性解码器中,辅助点云属性的压缩。
图3为本申请实施例涉及的一种点云编解码系统的示意性框图。需要说明的是,图3只是一种示例,本申请实施例的点云编解码系统包括但不限于图3所示。如图3所示,该点云编解码系统100包含编码设备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可包含点云采集装置(例如,扫描仪)、点云存档、点云输入接口、计算机图形系统中的至少一个,其中,点云输入接口用于从点云内容提供者处接收点云数据,计算机图形系统用于产生点云数据。
点云编码器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)显示器或其它类型的显示装置。
此外,图3仅为实例,本申请实施例的技术方案不限于图3,例如本申请的技术还可以应用于单侧的点云编码或单侧的点云解码。
目前的点云编码器可以采用运动图像专家组(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。
下面以图4和图5所示的编解码框架为例,对本申请实施例可适用的点云编码器和点云解码器进行说明。
图4是本申请实施例提供的点云编码器的示意性框图。
由上述可知点云中的点可以包括点的几何信息和点的属性信息,因此,点云中的点的编码主要包括几何编码和属性编码。
几何编码的过程包括:对点云中的点进行预处理,例如坐标变换、量化和移除重复点等;接着,对预处理后的点云进行几何编码,例如构建八叉树,基于构建的八叉树进行几何编码形成几何码流。同时,基于构建的八叉树输出的几何信息,对点云数据中各点的几何信息进行重建,得到各点的几何信息的重建值。
属性编码过程包括:通过给定输入点云的几何信息的重建信息和属性信息的原始值,选择预测模式进行点云预测,对预测后的结果进行量化,并进行算术编码形成属性码流。
如图4所示,几何编码可通过以下单元实现:
坐标转换(Tanmsform coordinates)单元201、量化和移除重复点(Quantize and remove points)单元202、八叉树分析(Analyze octree)单元203、几何重建(Reconstruct geometry)单元204以及第一算术编码(Arithmetic enconde)单元205。
坐标转换单元201可用于将点云中点的世界坐标变换为相对坐标。例如,点的几何坐标分别减去xyz坐标轴的最小值,相当于去直流操作,以实现将点云中的点的坐标从世界坐标转换为相对坐标。
量化和移除重复点单元202可通过量化减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标,基于此,可通过去重操作将重复的点删除;例如,具有相同量化位置和不同属性信息的多个云可通过属性转换合并到一个云中。在本申请的一些实施例中,量化和移除重复点单元202为可选的单元模块。
八叉树分析单元203可利用八叉树(octree)编码方式编码量化的点的几何信息。例如,采用八叉树结构对点云空间进行递归划分,每次将当前子块划分成八个相同大小的子块,由此,点的位置可以和八叉树的位置一一对应,并判断每个子块的占有码字情况,当子块内不包含点时记为空,否则记为非空,在递归划分的最后一层记录所有块的占有码字信息,进行几何编码。
几何重建单元204可以基于八叉树分析单元203输出的位置信息进行位置重建,得到点云数据中各点的位置信息的重建值。
第一算术编码单元205可以采用熵编码方式对八叉树分析单元203输出的位置信息进行算术编码,即将八叉树分析单元203输出的位置信息利用算术编码方式生成几何码流;几何码流也可称为几何比特流(geometry bitstream)。
属性编码可通过以下单元实现:
颜色空间转换(Transform colors)单元210、属性转化(Transfer attributes)单元211、属性预测单元213、量化系数(Quantize coefficients)单元215以及第二算术编码单元216。
需要说明的是,点云编码器200可包含比图2更多、更少或不同的功能组件。
颜色空间转换单元210可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。
属性转化单元211可用于转换点云中点的属性信息,以最小化属性失真。例如,属性转化单元211可用于得到点的属性信息的原始值(属性原始值)。例如,所述属性信息可以是点的颜色信息。
经过属性转化单元211转换得到点的属性信息的原始值后(属性重上色),对点云中的点进行预测。
属性预测单元213对属性信息进行属性预测,其中,首先需要将点云进行重排序,重排序的方式是莫顿码(当然,也可以是其他的排序方式),因此属性编码的遍历顺序为莫顿顺序(对应的也可以是其 他排序方式对应的顺序)。在本实施例中,属性预测方法可以为基于莫顿顺序的单点预测,即按照莫顿顺序从当前待编码点向前回溯一个点,找到的点为当前待编码点的预测参考点,然后将预测参考点的属性重建值作为属性预测值。
量化单元215可用于量化点的属性信息的残差值。例如,若所述量化单元215和所述预测变换单元213相连,则所述量化单元可用于量化所述预测变换单元213输出的点的属性信息的残差值。
例如,对预测变换单元213输出的点的属性信息的残差值使用量化步长进行量化,以实现提升系统性能。
第二算术编码单元216对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。
图5是本申请实施例提供的点云解码器的示意性框图。
如图5所示,解码器300可以从编码设备获取点云码流,通过解析码得到点云中的点的几何信息和属性信息。点云的解码包括几何解码和属性解码。
几何解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的几何信息进行重建,以得到点的几何信息的重建信息;对点的几何信息的重建信息进行坐标变换,得到点的几何信息。
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于几何解码过程中获取的点的位置信息的重建信息,并且进行点云预测得到预测值,预测值与残差值相加得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间反转化,以得到解码点云。
如图5所示,几何解码可通过以下单元实现:
第一算数解码单元301、八叉树分析(synthesize octree)单元302、几何重建(Reconstruct geometry)单元304以及坐标反转换(inverse transform coordinates)单元305。
属性编码可通过以下单元实现:
第二算数解码单元310、反量化(inverse quantize)系数单元311、属性预测单元313以及颜色空间反转换(inverse trasform colors)单元315。
按照与编码端相同的方式构建莫顿顺序,通过第二算数解码单元310对属性码流进行熵解码,得到量化后的残差信息;然后通过反量化系数单元311进行反量化,得到点云残差;按照与属性编码相同的方式,通过属性预测单元313获得当前待解码点的属性预测值,然后将属性预测值与残差值相加,可以恢复出当前待解码点的YUV属性值;最后,通过颜色空间反转换单元315进行颜色空间反变换得到解码属性信息。
需要说明的是,解压缩是压缩的逆过程,类似的,解码器300中的各个单元的功能可参见编码器200中相应的单元的功能。另外,点云解码器300可包含比图5更多、更少或不同的功能组件。
上述是编解码框架下的点云编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于G-PCC编解码框架下的点云编解码器的基本流程,但不限于该框架及流程。
在介绍本申请实施例所提出的具体的点云编/解码方法之前,首先介绍点云中块的划分方式。
具体的,如图6(a)首先将整幅点云放置在一个正方体包围盒内,点云中点的坐标表示为(x
k,y
k,z
k),k=0,…,K-1,其中K是点云的总点数,点云在x、y、z方向上的边界值分别为:
x
min=min(x
0,x
1,…,x
K-1)
y
min=min(y
0,y
1,…,y
K-1)
z
min=min(z
0,z
1,…,z
K-1)
x
max=max(x
0,x
1,…,x
K-1)
y
max=max(y
0,y
1,…,y
K-1)
z
max=max(z
0,z
1,…,z
K-1)
则包围盒的原点(x
origin,y
origin,z
origin)可以计算如下:
x
origin=int(floor(x
min))
y
origin=int(floor(y
min))
z
origin=int(floor(z
min))
包围盒在x、y、z方向上的尺寸可以计算如下:
BoudingBoxSize
x=int(x
max-x
origin)+1
BoudingBoxSize
y=int(y
max-y
origin)+1
BoudingBoxSize
z=int(z
max-z
origin)+1
然后如图6(b)对包围盒进行八叉树划分,每次得到八个子块,然后对子块中的非空块(包含点的块) 进行再一次的八叉树划分,如此递归划分直到某个深度(例如划分至最小值),将最终大小的非空子块称作体素(voxel),每个voxel中包含一个或多个点,将这些点的几何位置归一化为voxel的中心点,该中心点的属性值取voxel中所有点的属性值的平均值。即,将点云规则化成空间中的块(子块),可以便于描述点云中点与点之间的关系(例如,点与点之间的几何关系),从而可以在编解码过程中按照一定的顺序对voxel进行编码(例如,莫顿顺序)。
在本实施例中,对点云进行编解码是按照一定的顺序对每一个voxel进行编解码的,即编码每一个voxel所代表的点(后称为“节点”),在当前进行编解码的voxel即为当前节点(在编码端为待编码节点,在解码端为待解码节点)。
上述按照一定的顺序对每一个voxel进行编解码中,该顺序可以是莫顿顺序,也可以是希尔伯特顺序,还可以是任意的可以用于点云编码顺序的其他顺序,在此处不作限定。
下面对以莫顿顺序为例进行说明。
图7(a)-(c)展示了莫顿码在二维空间中的编码顺序,以8*8大小的块为例,其中箭头的顺序表示莫顿顺序下点的编码顺序。图7(a)为块中2*2个像素的“z”字形莫顿编码顺序,图7(b)为4个2*2块之间的“z”字形莫顿编码顺序,图7(c)为4个4*4块之间的“z”字形莫顿编码顺序,组成为整个8*8块的莫顿编码顺序。扩展到三维空间中的莫顿编码顺序如图8所示,图中展示了16个节点,每个“z”字内部,每个“z”与“z”之间的莫顿编码顺序都是先沿x轴方向编码,再沿y轴,最后沿z轴。
在本实施例中,提出了一种点云编码方法和点云解码方法,具体涉及属性预测的部分,具体涉及图4的属性预测单元213、以及图5的属性预测单元313对应的部分,能提高属性预测的准确性,提升编码效率。
在点云压缩技术的属性预测部分,对于颜色属性,在编码端,主要参考当前节点的相邻节点对当前节点进行预测得到属性预测值,预测得到的属性预测值用于计算残差信息,将残差信息传输到解码端;解码端接收并解析码流后,经反变换与反量化等步骤得到残差信息,解码端以相同过程预测得到属性预测值,与残差信息叠加后得到当前节点的属性重建值。
下面结合属性预测的部分对本申请实施例提出的点云编码方法进行详细描述。
具体的,图9示出了本申请实施例提出的一种点云编码方法的流程示意图。根据图9所示,上述点云编码方法包括如图9所示的步骤S102-S106:
步骤S102:对点云进行划分,得到与点云对应的至少一个待编码节点;
步骤S104:在待编码节点在第一编码顺序中的序号大于N的情况下,确定至少一个预测节点;
步骤S106:根据所述至少一个预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
如前所述,对点云进行八叉树划分,得到多个voxel,每一个voxel为一个节点;然后在编码的过程中,按照莫顿顺序或者其他顺序(即第一编码顺序)对每一个节点(待编码节点)依次进行属性预测,得到待编码节点的属性预测值,并根据待编码节点的属性原始值计算对应的残差值,然后经过量化等过程之后进行编码,生成对应的属性码流,并传输到解码端。
其中,对待编码节点按照第一编码顺序进行属性预测的过程中,需要确定与待编码节点对应的一个或多个参考节点(即一个或多个预测节点,这里的预测节点是在待编码节点之前已经完成了编码的节点,只有已编码节点才能作为参考节点),然后根据一个或多个预测节点的属性重建值来对当前的待编码节点的属性值进行预测,得到对应的属性预测值。
其中,在待编码节点为第一编码顺序中的第1个节点(在编码顺序中的序号为0)的情况下,因为是进行编码的第一个点,不存在已经编码完成的节点可以作为预测节点,因此,在这种情况下直接将待编码节点的属性预测值设置为预设值,例如,该预设值可以为(128,128,128)或(0,0,0)或(255,255,255),也可以是其他的预设值,在这里不做限定。
在其他实施例中,在待编码节点为第一编码顺序中的第2个节点(在编码顺序中的序号为1)的情况下,仅存在第1个节点(在编码顺序中的序号为0)这一个已经编码完成的节点,因此,将第1个节点(在编码顺序中的序号为0)作为预测节点来进行当前的待编码节点的属性值的预测。例如,直接将带编码节点的属性预测值设置为等于第1个节点(在编码顺序中的序号为0)的属性重建值。
在其他实施例中,在待编码节点为第一编码顺序中的第3个节点(在编码顺序中的序号为2)的情况下,存在第1、2个节点(在编码顺序中的序号为0、1)这2个已经编码完成的节点,因此,将第1、2个节点(在编码顺序中的序号为0、1)作为预测节点来进行当前的待编码节点的属性值的预测。例如,将第1、2个节点(在编码顺序中的序号为0、1)的属性重建值的加权平均值来作为第3个节点在编码顺序中的序号为2)的属性预测值。
在待编码节点为第4个节点(在编码顺序中的序号为3)以及后续的节点的情况下,可选的已经编码完成的节点数量较多,在这种情况下,可以基于各个节点与待编码节点之间的空间关系、或者基于第 一编码顺序等来选择一个或多个预测节点来进行属性预测。
当然,在其他实施例中,还可以设置为在编码顺序中的序号为N以上的情况采用上述预测节点的确定方式,而不是仅仅直接使用在当前的待编码节点之前的所有的已编码完成的节点来作为预测节点。在这里,N为正整数,且N可以等于2,也可以等于1、2、4、5、6、7、8以及其他的预设值,在这里不做限定。例如,在一个实施例中,仅对第1个待编码节点进行如上的属性预测值的确定,其他节点均根据下述的根据预测节点进行属性预测的方式。
需要说明的是,在这里,节点在编码顺序中的排序是从0开始的,因此,对于序号为0,1,2的节点采用上述的方式来确定属性预测值。在其他实施例中,节点在编码顺序中的排序还可以是从1开始的,只需要相应的对序号进行对应的修改即可。
下面介绍多种不同的确定预测节点的方法:
(一)基于空间关系的属性预测方法,根据节点与待编码节点之间的空间关系选择预测节点,可以通过空间关系找到待编码节点的相邻节点;
(二)基于双莫顿的属性预测方法,第一编码顺序为莫顿顺序1,对点云中的点进行平移之后重新获取对应的第二节点顺序为莫顿顺序2,在莫顿顺序1和莫顿顺序2中待编码节点前后的若干个节点中根据节点与待编码节点之间的距离选择预测节点,可以提高属性预测的准确度;
(三)基于空间关系和双莫顿结合的属性预测方法,首先根据空间关系选择预测节点,然后根据双莫顿的方式对预测节点进行补充,能综合两种预测方式下的优点,更进一步的提高属性预测的准确度。
下面分别对上述3种属性预测方法中预测节点的确定过程,其中,在待编码节点为第一编码顺序中的前N个节点的情况下,根据前述的方式确定待编码节点的预测节点和/或属性预测值,其在各个不同的实施例中均可以采用相同的方式进行属性预测值的确定。在待编码节点为第一编码顺序中的前N个节点之后的待编码节点的情况下,可以按照如下的方式确定预测节点,然后根据预测节点来对待编码节点的属性值进行预测,得到属性预测值。
在一个具体的实施例中,可以采用基于空间关系的属性预测方法对待编码节点进行属性预测。
具体利用节点与节点之间的几何关系(共面、共线、共点),以待编码节点的几何共面、共线、共点节点作为预测节点,并且作为预测节点的节点还需要满足条件:在待编码节点之前已经编码完成。然后根据确定的多个预测节点的属性重建值来对待编码节点的属性值进行预测,得到属性预测值。
首先对节点与节点之间的几何关系进行介绍,以说明预测节点可选的共面、共线、共点的节点有哪些。
如图10(a)-(c)所示,假设待编码节点的序号为7,共有6个面,12条边,8个节点,如图10(a)所示,共面节点有序号3、5、6、14、21、35对应的6个节点,如图10(b)所示,共线节点有序号1、2、4、10、12、17、20、28、33、34、42、49对应的12个节点,如图10(c)所示,共点节点有序号0、8、16、24、32、40、48、56对应的8个节点。
在所有这些共面共线共点节点中,无论待编码节点的位置如何,可能满足“在待编码节点之前编码完成”条件的为共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点0、8、16、24、32、40、48,因此预测节点在这些节点中产生。也就是说,预测节点产生于序号3、5、6、1、2、4、10、12、17、20、33、34、0、8、16、24、32、40、48对应的19个节点。
需要说明的是,在这19个节点中,并不是所有的节点都一定能被作为预测节点,这是因为,对于当前节点来讲,序号3、5、6、1、2、4、10、12、17、20、33、34、0、8、16、24、32、40、48对应的节点可能为空,也就是说,对应的voxel中没有点;并且,在对待编码节点进行预测时,上述19个节点并不一定都已经编码完成,未编码完成的节点无法作为预测节点,只有在待编码节点之前已经编码完成的节点才能作为预测节点。
进一步的,根据确定的多个预测节点来对待编码节点的属性值进行预测,得到属性预测值的过程,可以是根据权重值对多个预测节点进行加权平均的过程。其中,各个预测节点的权重值可以是一致的,也可以是不一致的。例如,将各个预测节点的权重值设置为固定常数;例如,针对不同的序号,分别设置对应的权重值;例如,预测节点的权重值为该预测节点与待编码节点之间的距离值的倒数,其中,距离可以为几何曼哈顿距离或几何欧式距离。在一个具体的实施例中,将权重值设为预测节点与待编码节点的几何曼哈顿距离的倒数,即共面节点权重为1,共线节点权重为1/2,共点节点权重为1/3。然后计算所有预测节点的属性重建值的加权平均值为待编码节点的属性预测值。
具体实施中,上述点云编码方法中,对待编码节点进行属性预测的步骤包括如下的步骤1.1)至步骤1.3),其中,仅给出了对于编码顺序下的第N个节点后的节点执行的相应的步骤(前N个节点的属性预测请参见前面描述的实施例):
步骤1.1)以待编码节点的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点 节点1、8、16、24、32、40、48作为预测节点的查找范围,确定多个预测节点,其中,预测节点的数量可以为3-6个,也就是说,在本步骤中确定了最少M1个、最多M2个节点作为预测节点。其中,M1、M2为正整数,且M2大于M1,例如,M1=3,M2=6。
计算所有预测节点的属性重建值的加权平均值作为待编码节点的属性预测值,
其中
为预测节点的属性重建值,w
i为预测节点的权重。
其中,在以待编码节点的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48作为查找范围进行预测节点的查找时,如前所述的预测节点的要求,需要查找不为空且在待编码节点之前已经编码完成的节点作为预测节点。因为为空的节点已经编码完成的节点的数量不一定,因此,在当前步骤下确定的预测节点的数量可能小于6个(以M2=6为例进行说明),例如为4,5,6个。其中,不为空且已经编码完成的节点数量大于6的情况下,按照共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48的顺序,取排序在前6个节点作为预测节点。
假设在共面共线共点范围内确定的预测节点数小于M1(例如,M1=3)个,则在待编码节点第一编码顺序下的前32个点中查找与待编码节点之间的距离最近的点,补齐M1个节点作为预测节点。其中,节点与待编码节点之间的距离为几何曼哈顿距离或几何欧式距离。
然后根据确定的多个预测节点进行加权平均来获取待编码节点的属性预测值。
1.2)残差值为待编码节点的属性原始值和属性预测值之间的差,然后对残差值进行变换、量化等操作;
1.3)将属性预测值与反量化、反变换等操作后的残差信息叠加,得到待编码节点的属性重建值作为后续编码单元的参考信息。
在一个具体的实施例中,可以采用基于双莫顿的属性预测方法对待编码节点进行属性预测。
具体的,在点云编码对应的第一编码顺序下(莫顿顺序1),预测节点可以是在该莫顿顺序1下在待编码节点之前的前P1个节点中产生。然后,将点云在x、y、z坐标上分别加1(相当于进行平移向量为(1,1,1)的平移,还可以是其他平移向量),根据这个新的几何坐标生成新的编码顺序(莫顿顺序2),预测节点还可以是在莫顿顺序2下待编码节点的前P2个节点和后P个节点当中产生。即最终的预测节点在这P1+P2+P3个节点当中产生。其中,P1=8,P2=4,P3=4。
具体实施中,上述点云编码方法中,对待编码节点进行属性预测的步骤包括如下的步骤2.1)至2.3),其中,仅给出了对于编码顺序下的第N个节点后的节点执行的相应的步骤(前N个节点的属性预测请参见前面描述的实施例):
2.1)按照莫顿顺序1,预测节点在待编码节点的莫顿顺序1下的前8个点当中产生;然后将点在x、y、z坐标上分别加1,根据这个新的几何坐标生成新的莫顿顺序2,预测节点在待编码节点的莫顿顺序2下的前4个节点和后4个节点当中产生。最终的预测节点在这16个节点当中产生,选择距离最近的3个节点作为预测节点,计算所有预测节点的属性重建值的加权平均值作为当前节点的属性预测值,
其中
为预测节点的属性重建值,w
i为预测节点的权重。
2.2)残差值为待编码节点的原始属性值和属性预测值之间的差,然后对残差值进行变换、量化等操作;
2.3)将属性预测值与反量化、反变换等操作后的残差信息叠加,得到待编码节点的属性重建值作为后续编码单元的参考信息。
在一个具体的实施例中,可以采用基于空间关系和双莫顿结合的属性预测方法对待编码节点进行属性预测。
具体的,对于编码的第N个节点后的节点,执行如下的步骤3.1)至3.5):
3.1)基于空间关系,确定待编码节点的一个或多个第一候选节点,在第一候选节点中确定至少一个节点作为第一预测节点。也就说,第一预测节点的数量为至少一个。
其中,第一候选节点是根据空间关系选择的节点,例如可以是从待编码节点的共面节点、待编码节点的共线节点和待编码节点的共点节点中产生的。在一个实施例中,第一候选节点具体包括如图10(a)-(c)所示的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48这19个节点。
在第一候选节点中确定第一预测节点的过程中,需要查找不为空(即对应的voxel不为空,包含了具体的点)、且在待编码节点之前已经完成了编码的节点来作为预测节点。具体实施中,按照共面节点 3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48的顺序,取排序在前的、不为空、且在待编码节点之前编码完成的Q1个节点作为预测节点,其中,Q1为小于等于3或6的正整数。例如,在当前步骤中,从第一候选节点中确定3个第一预测节点(即,Q1=3);需要说明的,在本步骤中,确定的第一预测节点的数量也可能小于3个。
如前所述,可能从第一候选节点中无法确定出足够数量的第一预测节点,例如,第一候选节点仅包含了2个不为空且已经编码完成的节点的情况,第一预测节点的数量为2。在这种情况下,需要进一步的结合双莫顿的方法对预测节点进行补充。
3.2)假设在3.1)中确定的第一预测节点数小于M1(例如,小于3),则采用基于双莫顿的方式对预测节点进行补充。
首先按照莫顿顺序1,将待编码节点的莫顿顺序1下的前P1(例如,P1=8)个节点作为第二候选节点;然后将节点在x、y、z坐标上分别加1,根据这个新的几何坐标生成新的莫顿顺序2(第二节点顺序),将在待编码节点的莫顿顺序2下的前P2(P2=4)个节点和后P3(P3=4)个节点作为第二候选节点。最终的预测节点在这P1+P2+P3(16)个第二候选节点当中产生。
具体在第二候选节点中根据候选节点与待编码节点之间的距离,选择距离最近的Q2个节点作为第二预测节点。
在一种实现方式中,直接在第二候选节点中根据候选节点与待编码节点之间的距离选择固定数量Q2(例如,Q2=3)个节点作为第二预测节点,也就是说,最终确定的第一预测节点和第二预测节点的数量为Q1+Q2,而考虑到前述确定的第一预测节点的数量为1-2个(小于3个),因此,第一预测节点和第二预测节点的总数量为4-5个。
在一种实现方式中,在第二候选节点中根据候选节点与待编码节点之间的距离选择Q2个节点作为第二预测节点,以使得第一预测节点和第二预测节点的数量总和为预设值(例如,3或者6)。在这种情况下,第一预测节点和第二预测节点的总数量为3个或6个。
在一种实现方式中,在根据节点与待编码节点之间的距离选择了第二预测节点之后,还需要进一步的判断是否所有的预测节点均为最佳的预测节点。具体的,可以根据节点与待编码节点之间的距离来判断。以第一预测节点和第二预测节点的总数量为6个为例进行说明。对第二候选节点中未被选定为第二预测节点的节点中,判断是否存在候选节点与待编码节点之间的第一距离小于第二预测节点的节点与待编码节点之间的第二距离,若存在,则需要将相应的候选节点替换到第二预测节点中节点,以使得最终确定的第二预测节点与待编码节点之间的距离为所有第二候选节点中的较小值,保证预测节点与待编码节点之间足够接近,提高属性预测的准确性。
具体实施中,根据第二候选节点中未被选定为第二预测节点的节点与待编码节点之间的距离从小到大对节点进行遍历,执行上述判断是否存在候选节点与待编码节点之间的第一距离小于第二预测节点的节点与待编码节点之间的第二距离,若存在,则需要将相应的候选节点替换到第二预测节点中节点的步骤,直至第二候选节点中未被选定为第二预测节点的所有节点与待编码节点之间的距离均小于第二预测节点与待编码节点之间的距离结束。
进一步的,上述计算节点与节点之间的库里可以为几何曼哈顿距离或几何欧式距离,也可以是其他节点之间的距离计算方式。
3.3)根据所有预测节点(包括第一预测节点和第二预测节点)的属性重建值来对待编码节点的属性值进行预测,得到待编码节点的属性预测值。
具体实施中,计算第一预测节点和第二预测节点的属性重建值的加权平均值作为待编码节点的属性预测值,
其中
为第一预测节点或第二预测节点的属性重建值,w
i为第一预测节点或第二预测节点的权重值。
其中,各个预测节点的权重值可以是一致的,也可以是不一致的。例如,将各个预测节点的权重值设置为固定常数。例如,针对不同的序号,分别设置对应的权重值。例如,预测节点的权重值为该预测节点与待编码节点之间的距离值的倒数,其中,距离可以为几何曼哈顿距离或几何欧式距离。
在一个具体的实施例中,将权重值设为预测节点与待编码节点的几何曼哈顿距离的倒数,即共面节点权重为1,共线节点权重为1/2,共点节点权重为1/3。
3.4)残差值为待编码节点的属性原始值和属性预测值之间的差,然后对残差值进行变换、量化等操作;
3.5)将属性预测值与反量化、反变换等操作后的残差信息叠加,得到待编码节点的属性重建值作 为后续编码单元的参考信息。
进一步的,如图11所示,给出了上述基于空间关系和双莫顿结合的点云编码方法的流程示意图。其中,所述点云编码方法包括了如图11所示的步骤S202-S208:
步骤S202:对点云进行划分,得到与点云对应的至少一个待编码节点;
步骤S204:在待编码节点在第一编码顺序中的序号大于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点;
步骤S206:在确定的第一预测节点的数量小于M1的情况下,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序;
步骤S208:根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
上述步骤S202-S208的具体执行请参见前述点云编码方法的具体描述,在这里不再赘述。
上述基于空间关系的属性预测方法,可以通过空间关系直接找到待编码节点的临近节点,很好的对当前节点的属性值进行预测。而上述基于双莫顿的属性预测方法,可以尽可能的增大预测准确性,提升编码效率。
但是,在其他实施例中,在上述基于空间关系的属性预测方法中,因为预测节点的相关信息(例如属性重建值)是存储在缓存中的,而缓存大小是有限的,也就是说,可能存在缓存中找不到临近节点的情况,从而也会对属性预测的效果产生一定的影响。而上述基于双莫顿的属性预测方法中,对于属性预测准确性的提升也是有限的,并不一定能达到最优的预测效果。而相对于前述基于空间关系的属性预测方法、以及基于双莫顿的属性预测方法,前述基于空间关系和双莫顿结合的属性预测方法,通过结合空间近距离与双莫顿的预测节点的查找方法,既能准确定位到当前节点的临近节点,又能在临近节点不可得的情况下通过双莫顿来扩展预测节点从而尽可能增大预测准确性,从而提升编码效率。
进一步的,请参见图12,图12示出了本申请实施例提出的一种点云解码方法的流程示意图。根据图12所示,上述点云解码方法包括如图12所示的步骤S302-S306:
步骤S302:解码点云码流,确定与点云对应的至少一个待解码节点;
步骤S304:在待解码节点在第一解码顺序中的序号大于N的情况下,确定至少一个预测节点;
步骤S306:根据所述至少一个预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
在编码端对点云进行八叉树划分,得到多个voxel之后,即可按照一定的编码顺序对每一个voxel(待编码节点)进行编码;而在解码端,在进行几何信息的解码之后,即可确定在编码端对应的编码顺序,从而在解码端也根据相应的顺序进行解码,在这里,称为第一解码顺序。
然后在解码的过程中,按照莫顿顺序或者其他顺序(即第一解码顺序)对每一个节点(待解码节点)依次进行属性预测,得到待解码节点的属性预测值,并根据待解码节点的残差值和属性预测值计算属性重建值,根据每一个待编码节点的属性重建值确定重建点云,完成点云的解码过程。
其中,对待编码节点按照第一编码顺序进行属性预测的过程中,需要确定与待编码节点对应的一个或多个参考节点(即一个或多个预测节点,这里的预测节点是在待编码节点之前已经完成了编码的节点,只有已编码节点才能作为参考节点),然后根据一个或多个预测节点的属性重建值来对当前的待编码节点的属性值进行预测,得到对应的属性预测值。
其中,在待解码节点为第一解码顺序中的第1个节点的情况下,因为是进行解码的第一个点,不存在已经解码完成的节点可以作为预测节点,因此,在这种情况下直接将待解码节点的属性预测值设置为预设值,例如,该预设值可以为(128,128,128)或(0,0,0)或(255,255,255),也可以是其他的预设值,在这里不做限定。
在其他实施例中,在待解码节点为第一解码顺序中的第2个节点的情况下,仅存在第1个节点这一个已经解码完成的节点,因此,将第1个节点作为预测节点来进行当前的待解码节点的属性值的预测。例如,直接将带解码节点的属性预测值设置为等于第1个节点的属性重建值。
在其他实施例中,在待解码节点为第一解码顺序中的第3个节点的情况下,存在第1、2个节点这2个已经解码完成的节点,因此,将第1、2个节点作为预测节点来进行当前的待解码节点的属性值的预测。例如,将第1、2个节点的属性重建值的加权平均值来作为第3个节点的属性预测值。
在待解码节点为第4个节点以及后续的节点的情况下,可选的已经解码完成的节点数量较多,在这种情况下,可以基于各个节点与待解码节点之间的空间关系、或者基于第一解码顺序等来选择一个或多个预测节点来进行属性预测。
当然,在其他实施例中,还可以设置为在解码顺序中的序号为N以上的情况采用上述预测节点的 确定方式,而不是仅仅直接使用在当前的待解码节点之前的所有的已解码完成的节点来作为预测节点。在这里,N为正整数,且N可以等于3,也可以等于1、2、4、5、6、7、8以及其他的预设值,在这里不做限定。例如,在一个实施例中,仅对第1个待解码节点进行如上的属性预测值的确定,其他节点均根据下述的根据预测节点进行属性预测的方式。
下面介绍多种不同的确定预测节点的方法:
(一)基于空间关系的属性预测方法,根据节点与待解码节点之间的空间关系选择预测节点,可以通过空间关系找到待解码节点的相邻节点;
(二)基于双莫顿的属性预测方法,第一解码顺序为莫顿顺序1,对点云中的点进行平移之后重新获取对应的第二节点顺序为莫顿顺序2,在莫顿顺序1和莫顿顺序2中待解码节点前后的若干个节点中根据节点与待解码节点之间的距离选择预测节点,可以提高属性预测的准确度;
(三)基于空间关系和双莫顿结合的属性预测方法,首先根据空间关系选择预测节点,然后根据双莫顿的方式对预测节点进行补充,能综合两种预测方式下的优点,更进一步的提高属性预测的准确度。
下面分别对上述3种属性预测方法中预测节点的确定过程,其中,在待解码节点为第一解码顺序中的前N个节点的情况下,根据前述的方式确定待解码节点的预测节点和/或属性预测值,其在各个不同的实施例中均可以采用相同的方式进行属性预测值的确定。在待解码节点为第一解码顺序中的前N个节点之后的待解码节点的情况下,可以按照如下的方式确定预测节点,然后根据预测节点来对待解码节点的属性值进行预测,得到属性预测值。
在一个具体的实施例中,可以采用基于空间关系的属性预测方法对待解码节点进行属性预测。
具体利用节点与节点之间的几何关系(共面、共线、共点),以待解码节点的几何共面、共线、共点节点作为预测节点,并且作为预测节点的节点还需要满足条件:在待解码节点之前已经解码完成。然后根据确定的多个预测节点的属性重建值来对待解码节点的属性值进行预测,得到属性预测值。
首先对节点与节点之间的几何关系进行介绍,以说明预测节点可选的共面、共线、共点的节点有哪些。
如图10(a)-(c)所示,假设待解码节点的序号为7,共有6个面,12条边,8个节点,如图10(a)所示,共面节点有序号3、5、6、14、21、35对应的6个节点,如图10(b)所示,共线节点有序号1、2、4、10、12、17、20、28、33、34、42、49对应的12个节点,如图10(c)所示,共点节点有序号0、8、16、24、32、40、48、56对应的8个节点。
在所有这些共面共线共点节点中,无论待解码节点的位置如何,可能满足“在待解码节点之前解码完成”条件的为共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点0、8、16、24、32、40、48,因此预测节点在这些节点中产生。也就是说,预测节点产生于序号3、5、6、1、2、4、10、12、17、20、33、34、0、8、16、24、32、40、48对应的19个节点。
需要说明的是,在这19个节点中,并不是所有的节点都一定能被作为预测节点,这是因为,对于当前节点来讲,序号3、5、6、1、2、4、10、12、17、20、33、34、0、8、16、24、32、40、48对应的节点可能为空,也就是说,对应的voxel中没有点;并且,在对待解码节点进行预测时,上述19个节点并不一定都已经解码完成,未解码完成的节点无法作为预测节点,只有在待解码节点之前已经解码完成的节点才能作为预测节点。
进一步的,根据确定的多个预测节点来对待解码节点的属性值进行预测,得到属性预测值的过程,可以是根据权重值对多个预测节点进行加权平均的过程。其中,各个预测节点的权重值可以是一致的,也可以是不一致的。例如,将各个预测节点的权重值设置为固定常数;例如,针对不同的序号,分别设置对应的权重值;例如,预测节点的权重值为该预测节点与待解码节点之间的距离值的倒数,其中,距离可以为几何曼哈顿距离或几何欧式距离。在一个具体的实施例中,将权重值设为预测节点与待解码节点的几何曼哈顿距离的倒数,即共面节点权重为1,共线节点权重为1/2,共点节点权重为1/3。然后计算所有预测节点的属性重建值的加权平均值为待解码节点的属性预测值。
具体实施中,上述点云解码方法中,对待解码节点进行属性预测的步骤包括如下的步骤4.1)至步骤4.2),其中,仅给出了对于解码顺序下的第N个节点后的节点执行的相应的步骤(前N个节点的属性预测请参见前面描述的实施例):
步骤4.1)以待解码节点的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48作为预测节点的查找范围,确定多个预测节点,其中,预测节点的数量可以为3-6个,也就是说,在本步骤中确定了最少M1个、最多M2个节点作为预测节点。其中,M1、M2为正整数,且M2大于M1,例如,M1=3,M2=6。
计算所有预测节点的属性重建值的加权平均值作为待解码节点的属性预测值,
其中
为预测节点的属性重建值,w
i为预测节点的权重。
其中,在以待解码节点的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48作为查找范围进行预测节点的查找时,如前所述的预测节点的要求,需要查找不为空且在待解码节点之前已经解码完成的节点作为预测节点。因为为空的节点已经解码完成的节点的数量不一定,因此,在当前步骤下确定的预测节点的数量可能小于6个(以M2=6为例进行说明),例如为4,5,6个。其中,不为空且已经解码完成的节点数量大于6的情况下,按照共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48的顺序,取排序在前6个节点作为预测节点。
假设在共面共线共点范围内确定的预测节点数小于M1(例如,M1=3)个,则在待解码节点第一解码顺序下的前32个点中查找与待解码节点之间的距离最近的点,补齐M1个节点作为预测节点。其中,节点与待解码节点之间的距离为几何曼哈顿距离或几何欧式距离。
然后根据确定的多个预测节点进行加权平均来获取待解码节点的属性预测值。
4.2)残差值为编码端根据节点的属性原始值和属性预测值之间的差确定的,在当前解码端,根据属性预测值和残差值可以确定待解码节点的属性重建值。
在一个具体的实施例中,可以采用基于双莫顿的属性预测方法对待解码节点进行属性预测。
具体的,在点云解码对应的第一解码顺序下(莫顿顺序1),预测节点可以是在该莫顿顺序1下在待解码节点之前的前P1个节点中产生。然后,将点云在x、y、z坐标上分别加1(相当于进行平移向量为(1,1,1)的平移,还可以是其他平移向量),根据这个新的几何坐标生成新的解码顺序(莫顿顺序2),预测节点还可以是在莫顿顺序2下待解码节点的前P2个节点和后P个节点当中产生。即最终的预测节点在这P1+P2+P3个节点当中产生。其中,P1=8,P2=4,P3=4。
具体实施中,上述点云解码方法中,对待解码节点进行属性预测的步骤包括如下的步骤5.1)至5.2),其中,仅给出了对于解码顺序下的第N个节点后的节点执行的相应的步骤(前N个节点的属性预测请参见前面描述的实施例):
5.1)按照莫顿顺序1,预测节点在待解码节点的莫顿顺序1下的前8个点当中产生;然后将点在x、y、z坐标上分别加1,根据这个新的几何坐标生成新的莫顿顺序2,预测节点在待解码节点的莫顿顺序2下的前4个节点和后4个节点当中产生。最终的预测节点在这16个节点当中产生,选择距离最近的3个节点作为预测节点,计算所有预测节点的属性重建值的加权平均值作为当前节点的属性预测值,
其中
为预测节点的属性重建值,w
i为预测节点的权重。
5.2)残差值为解码端根据节点的属性原始值和属性预测值之间的差确定的,在当前解码端,根据属性预测值和残差值可以确定待解码节点的属性重建值。
在一个具体的实施例中,可以采用基于空间关系和双莫顿结合的属性预测方法对待解码节点进行属性预测。
具体的,对于解码的第N个节点后的节点,执行如下的步骤6.1)至6.4):
6.1)基于空间关系,确定待解码节点的一个或多个第一候选节点,在第一候选节点中确定至少一个节点作为第一预测节点。也就说,第一预测节点的数量为至少一个。
其中,第一候选节点是根据空间关系选择的节点,例如可以是从待解码节点的共面节点、待解码节点的共线节点和待解码节点的共点节点中产生的。在一个实施例中,第一候选节点具体包括如图10(a)-(c)所示的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48这19个节点。
在第一候选节点中确定第一预测节点的过程中,需要查找不为空(即对应的voxel不为空,包含了具体的点)、且在待解码节点之前已经完成了解码的节点来作为预测节点。具体实施中,按照共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48的顺序,取排序在前的、不为空、且在待解码节点之前解码完成的Q1个节点作为预测节点,其中,Q1为小于等于3或6的正整数。例如,在当前步骤中,从第一候选节点中确定3个第一预测节点(即,Q1=3);需要说明的,在本步骤中,确定的第一预测节点的数量也可能小于3个。在其他实施例中,Q1还可以等于1,2,4,5,6中的一个,或者等于其他正整数值。
如前所述,可能从第一候选节点中无法确定出足够数量的第一预测节点,例如,第一候选节点仅包含了2个不为空且已经解码完成的节点的情况,第一预测节点的数量为2。在这种情况下,需要进一步的结合双莫顿的方法对预测节点进行补充。
6.2)假设在6.1)中确定的第一预测节点数小于M1(例如,小于3),则采用基于双莫顿的方式对预测节点进行补充。
首先按照莫顿顺序1,将待解码节点的莫顿顺序1下的前P1(例如,P1=8)个节点作为第二候选节点;然后将节点在x、y、z坐标上分别加1,根据这个新的几何坐标生成新的莫顿顺序2(第二节点顺序),将在待解码节点的莫顿顺序2下的前P2(P2=4)个节点和后P3(P3=4)个节点作为第二候选节点。最终的预测节点在这P1+P2+P3(16)个第二候选节点当中产生。
具体在第二候选节点中根据候选节点与待解码节点之间的距离,选择距离最近的Q2个节点作为第二预测节点。
在一种实现方式中,直接在第二候选节点中根据候选节点与待解码节点之间的距离选择固定数量Q2(例如,Q2=3)个节点作为第二预测节点,也就是说,最终确定的第一预测节点和第二预测节点的数量为Q1+Q2,而考虑到前述确定的第一预测节点的数量为1-2个(小于3个),因此,第一预测节点和第二预测节点的总数量为4-5个。在其他实施例中,Q2还可以是其他正整数值,例如Q2为1、2、4、5、6或者其他正整数值。
在一种实现方式中,在第二候选节点中根据候选节点与待解码节点之间的距离选择Q2个节点作为第二预测节点,以使得第一预测节点和第二预测节点的数量总和为预设值M2(例如,3,4,5,6)。在这种情况下,第一预测节点和第二预测节点的总数量为3,4,5,6中的一个。
在一种实现方式中,在根据节点与待解码节点之间的距离选择了第二预测节点之后,还需要进一步的判断是否所有的预测节点均为最佳的预测节点。具体的,可以根据节点与待解码节点之间的距离来判断。以第一预测节点和第二预测节点的总数量为6个(还可以是M2的其他的取值)为例进行说明。对第二候选节点中未被选定为第二预测节点的节点中,判断是否存在候选节点与待解码节点之间的第一距离小于第二预测节点的节点与待解码节点之间的第二距离,若存在,则需要将相应的候选节点替换到第二预测节点中节点,以使得最终确定的第二预测节点与待解码节点之间的距离为所有第二候选节点中的较小值,保证预测节点与待解码节点之间足够接近,提高属性预测的准确性。
具体实施中,根据第二候选节点中未被选定为第二预测节点的节点与待解码节点之间的距离从小到大对节点进行遍历,执行上述判断是否存在候选节点与待解码节点之间的第一距离小于第二预测节点的节点与待解码节点之间的第二距离,若存在,则需要将相应的候选节点替换到第二预测节点中节点的步骤,直至第二候选节点中未被选定为第二预测节点的所有节点与待解码节点之间的距离均小于第二预测节点与待解码节点之间的距离结束。
进一步的,上述计算节点与节点之间的库里可以为几何曼哈顿距离或几何欧式距离,也可以是其他节点之间的距离计算方式。
6.3)根据所有预测节点(包括第一预测节点和第二预测节点)的属性重建值来对待解码节点的属性值进行预测,得到待解码节点的属性预测值。
具体实施中,计算第一预测节点和第二预测节点的属性重建值的加权平均值作为待解码节点的属性预测值,
其中
为第一预测节点或第二预测节点的属性重建值,w
i为第一预测节点或第二预测节点的权重值。
其中,各个预测节点的权重值可以是一致的,也可以是不一致的。例如,将各个预测节点的权重值设置为固定常数。例如,针对不同的序号,分别设置对应的权重值。例如,预测节点的权重值为该预测节点与待解码节点之间的距离值的倒数,其中,距离可以为几何曼哈顿距离或几何欧式距离。
在一个具体的实施例中,将权重值设为预测节点与待解码节点的几何曼哈顿距离的倒数,即共面节点权重为1,共线节点权重为1/2,共点节点权重为1/3。
6.4)残差值为编码端根据节点的属性原始值和属性预测值之间的差确定的,在当前解码端,根据属性预测值和残差值可以确定待解码节点的属性重建值。
进一步的,如图13所示,给出了上述基于空间关系和双莫顿结合的点云解码方法的流程示意图。其中,所述点云解码方法包括了如图13所示的步骤S402-S408:
步骤S402:解码点云码流,确定与点云对应的至少一个待解码节点;
步骤S404:在待解码节点在第一解码顺序中的序号大于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点;
步骤S406:在确定的第一预测节点的数量小于M1的情况下,在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码 节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序;
步骤S408:根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
上述步骤S402-S408的具体执行请参见前述点云解码方法的具体描述,在这里不再赘述。
上述基于空间关系的属性预测方法,可以通过空间关系直接找到待解码节点的临近节点,很好的对当前节点的属性值进行预测。而上述基于双莫顿的属性预测方法,可以尽可能的增大预测准确性,提升解码效率。
但是,在其他实施例中,在上述基于空间关系的属性预测方法中,因为预测节点的相关信息(例如属性重建值)是存储在缓存中的,而缓存大小是有限的,也就是说,可能存在缓存中找不到临近节点的情况,从而也会对属性预测的效果产生一定的影响。而上述基于双莫顿的属性预测方法中,对于属性预测准确性的提升也是有限的,并不一定能达到最优的预测效果。而相对于前述基于空间关系的属性预测方法、以及基于双莫顿的属性预测方法,前述基于空间关系和双莫顿结合的属性预测方法,通过结合空间近距离与双莫顿的预测节点的查找方法,既能准确定位到当前节点的临近节点,又能在临近节点不可得的情况下通过双莫顿来扩展预测节点从而尽可能增大预测准确性,从而提升解码效率。
为了进一步说明本申请实施例的技术效果,将本申请实施例提出的方案在AVS最新的点云压缩平台PCRM3.0上进行了测试,其中,对上述基于空间关系和双莫顿结合的预测方法对应的编/解码方法的编码效率进行了测试,具体的测试结果如表1-4所示。
表1
表2
表3
表4
根据表1-4所示,上述基于空间关系和双莫顿结合的预测方法对应的编/解码方法在两个实施例下都有明显的性能提升。
进一步的,在本实施例中,还提供了一种数据流,该数据流可以是属性码流,是根据如前所述的点云编码方法生成的包含了待编码点云的残差值对应的比特流。该数据流产生的步骤可以参见如前所述的点云编码方法,在这里不进行赘述。
上文结合图3至图13,详细描述了本申请的点云编码方法和点云解码方法的实施例,下文结合图14至图16,详细描述本申请的装置实施例。
具体参见图14,图14示出了一种点云编码装置的结构示意图。
具体的,如图14所示,上述点云编码装置包括:
点云划分模块402,用于对点云进行划分,得到与点云对应的至少一个待编码节点,确定与所述至少一个待编码节点对应的第一编码顺序,其中,待编码节点为对点云进行划分得到的体素单元voxel;
第一预测节点确定模块404,用于在待编码节点在第一编码顺序中的序号大于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
第二预测节点确定模块406,用于在确定的第一预测节点的数量小于M1时,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
属性预测模块408,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
在一个实施例中,所述第一编码顺序和第二节点顺序为莫顿顺序或希尔伯特顺序。
在一个实施例中,N=3。
在一个实施例中,属性预测模块408还用于在待编码节点在第一编码顺序中的序号为1的情况下,将待编码点云的属性预测值设置为预设值。
在一个实施例中,所述预设值为(128,128,128)、(0,0,0)和(255,255,255)中的一个。
在一个实施例中,第一预测节点确定模块404还用于在待编码节点在第一编码顺序中的序号为2的情况下,将在第一编码顺序中序号为1的节点作为第一预测节点;
属性预测模块408还用于根据所述第一预测节点的属性重建值确定待编码节点的属性预测值,其中,待编码节点的属性预测值等于所述第一预测节点的属性重建值。
在一个实施例中,第一预测节点确定模块404还用于在待编码节点在第一编码顺序中的序号为3的情况下,将在第一编码顺序中序号为1和2的节点作为第一预测节点;
属性预测模块408还用于根据所述第一预测节点的属性重建值确定待编码节点的属性预测值,待编码节点的属性预测值设置为等于第一预测节点的属性重建值的加权平均值。
在一个实施例中,所述多个第一候选节点包括待编码节点的共面节点、待编码节点的共线节点和待编码节点的共点节点中的一个或多个。
在一个实施例中,所述待编码节点的共面节点包括索引为3、5和6的节点,所述待编码节点的共线节点包括索引为1、2、4、10、12、17、20、33和34的节点,所述待编码节点的共点节点包括索引为1、8、16、24、32、40和48的节点。
在一个实施例中,第一预测节点确定模块404还用于按照待编码节点的共面节点、待编码节点的共线节点、待编码节点的共点节点的顺序,在第一候选节点中查找不为空、且在待编码节点之前已编码的Q1个节点作为第一预测节点,其中,Q1为小于等于6的正整数。
在一个实施例中,M1=3。
在一个实施例中,所述第二候选节点包括在第一编码顺序下在待编码节点之前的P1个节点;所述第二候选节点包括在第二节点顺序下在待编码节点之前的P2个节点和在编码节点之后的P3个节点。
在一个实施例中,P1=8,P2=4,P3=4。
在一个实施例中,所述第二节点顺序是对点云中的点进行平移处理之后得到的节点的重排序。
在一个实施例中,进行平移处理的平移向量为(1,1,1)。
在一个实施例中,第二预测节点确定模块406还用于在所述多个第二候选节点中,根据节点与待编码节点之间的距离确定至少一个节点作为第二预测节点。
在一个实施例中,节点与待编码节点之间的距离为几何曼哈顿距离或几何欧式距离。
在一个实施例中,第二预测节点确定模块406还用于在所述多个第二候选节点中,确定与待编码节点之间的距离最小的Q2个节点作为第二预测节点,其中,Q2=3。
在一个实施例中,第二预测节点确定模块406还用于在所述多个第二候选节点中,确定与待编码节点之间的距离最小的至少一个节点作为第二预测节点,其中,第二预测节点的数量与第一预测节点的数量的和值为M2,其中,M2=3或6。
在一个实施例中,第二预测节点确定模块406还用于在第一预测节点的数量和第二预测节点的数量的和值为M2的情况下,判断第二候选节点中未被选择的节点中是否存在节点与待编码节点之间的第一距离小于各个第二预测节点中的节点与待编码节点之间的第二距离;若存在,将从第二距离对应的预测节点所述第二预测节点中删除,并将第一距离对应的节点添加到所述第二预测节点中。
在一个实施例中,第一预测节点的数量和第二预测节点的数量的和值小于等于6。
在一个实施例中,属性预测模块408还用于按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待编码节点的属性预测值。
在一个实施例中,所述预设的权重值为固定值。
在一个实施例中,属性预测模块408还用于针对每一个第一预测节点和/或每一个第二预测节点, 根据预测节点与待编码节点之间的位置关系确定该第一预测节点和/或第二预测节点的权重值。
在一个实施例中,属性预测模块408还用于针对每一个第一预测节点和/或每一个第二预测节点,计算与待编码节点之间的距离的倒数,并做该第一预测节点和/或第二预测节点的权重值。
在一个实施例中,预测节点与待编码节点之间的距离为几何曼哈顿距离或几何欧式距离。
在一个实施例中,属性预测模块408还用于根据公式
计算待编码节点的属性预测值
其中,
为第一预测节点或第二预测节点的属性重建值,w
i为第一预测节点或第二预测节点的权重值,R为第一预测节点和/或第二预测节点构成的集合。
在一个实施例中,属性预测模块408还用于对所述待编码节点的属性预测值进行编码,得到属性码流。
具体参见图15,图15示出了一种点云解码装置的结构示意图。
具体的,如图15所示,上述点云解码装置包括:
节点确定模块502,用于解码点云码流,确定与点云对应的至少一个待解码节点以及包含所述至少一个待解码节点对应的第一解码顺序;
第一预测节点确定模块504,用于在待解码节点在第一解码顺序中的序号大于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
第二预测节点确定模块506,用于在确定的第一预测节点的数量小于M1的情况下,在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
属性预测模块508,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
在一个实施例中,所述第一解码顺序和第二节点顺序为莫顿顺序或希尔伯特顺序。
在一个实施例中,N=3。
在一个实施例中,属性预测模块508还用于在待解码节点在第一解码顺序中的序号为1的情况下,将待解码点云的属性预测值设置为预设值。
在一个实施例中,所述预设值为(128,128,128)、(0,0,0)和(255,255,255)中的一个。
在一个实施例中,第一预测节点确定模块504在待解码节点在第一解码顺序中的序号为2的情况下,将在第一解码顺序中序号为1的节点作为第一预测节点;
属性预测模块508还用于根据所述第一预测节点的属性重建值确定待解码节点的属性预测值,其中,待解码节点的属性预测值等于所述第一预测节点的属性重建值。
在一个实施例中,第一预测节点确定模块504在待解码节点在第一解码顺序中的序号为3的情况下,将在第一解码顺序中序号为1和2的节点作为第一预测节点;
属性预测模块508还用于根据所述第一预测节点的属性重建值确定待解码节点的属性预测值,其中,待解码节点的属性预测值设置为等于第一预测节点的属性重建值的加权平均值。
在一个实施例中,所述多个第一候选节点包括待解码节点的共面节点、待解码节点的共线节点和待解码节点的共点节点中的一个或多个。
在一个实施例中,所述待解码节点的共面节点包括索引为3、5和6的节点,所述待解码节点的共线节点包括索引为1、2、4、10、12、17、20、33和34的节点,所述待解码节点的共点节点包括索引为1、8、16、24、32、40和48的节点。
在一个实施例中,第一预测节点确定模块504按照待解码节点的共面节点、待解码节点的共线节点、待解码节点的共点节点的顺序,在第一候选节点中查找不为空、且在待解码节点之前已解码的Q1个节点作为第一预测节点,其中,Q1为小于等于3或6的正整数。
在一个实施例中,M1=3。
在一个实施例中,所述第二候选节点包括在第一解码顺序下在待解码节点之前的P1个节点;所述第二候选节点包括在第二节点顺序下在待解码节点之前的P2个节点和在解码节点之后的P3个节点。
在一个实施例中,P1=8,P2=4,P3=4。
在一个实施例中,所述第二节点顺序是对点云中的点进行平移处理之后得到的节点的重排序。
在一个实施例中,进行平移处理的平移向量为(1,1,1)。
在一个实施例中,第二预测节点确定模块506在所述多个第二候选节点中,根据节点与待解码节点 之间的距离确定至少一个节点作为第二预测节点。
在一个实施例中,节点与待解码节点之间的距离为几何曼哈顿距离或几何欧式距离。
在一个实施例中,第二预测节点确定模块506在所述多个第二候选节点中,确定与待解码节点之间的距离最小的Q2个节点作为第二预测节点,其中,Q2=3。
在一个实施例中,第二预测节点确定模块506在所述多个第二候选节点中,确定与待解码节点之间的距离最小的至少一个节点作为第二预测节点,以使得第二预测节点的数量与第一预测节点的数量的和值为M2,其中,M2为3、4、5或6。
在一个实施例中,第二预测节点确定模块506在第一预测节点的数量和第二预测节点的数量的和值为M2的情况下,判断第二候选节点中未被选择的节点中是否存在节点与待解码节点之间的第一距离小于各个第二预测节点中的节点与待解码节点之间的第二距离;若存在,将从第二距离对应的预测节点所述第二预测节点中删除,并将第一距离对应的节点添加到所述第二预测节点中。
在一个实施例中,第一预测节点的数量和第二预测节点的数量的和值小于等于6。
在一个实施例中,属性预测模块508还用于按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待解码节点的属性预测值。
在一个实施例中,所述预设的权重值为固定值。
在一个实施例中,属性预测模块508还用于针对每一个第一预测节点和/或每一个第二预测节点,根据预测节点与待解码节点之间的位置关系确定该第一预测节点和/或第二预测节点的权重值。
在一个实施例中,属性预测模块508还用于针对每一个第一预测节点和/或每一个第二预测节点,计算与待解码节点之间的距离的倒数,并做该第一预测节点和/或第二预测节点的权重值。
在一个实施例中,预测节点与待解码节点之间的距离为几何曼哈顿距离或几何欧式距离。
在一个实施例中,属性预测模块508还用于根据公式
计算待解码节点的属性预测值
其中,
为第一预测节点或第二预测节点的属性重建值,w
i为第一预测节点或第二预测节点的权重值,R为第一预测节点和/或第二预测节点构成的集合。
在一个实施例中,属性预测模块508还用于解析码流,确定待解码节点的残差值;根据残差值和属性预测值确定待解码节点的属性重建值。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。
上文中结合附图从功能单元的角度描述了本申请实施例的装置和系统。应理解,该功能单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件单元组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。可选地,软件单元可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图16是本申请实施例提供的电子设备的示意性框图。其中,该电子设备可以是点云编码器也可以是点云解码器。
如图16所示,该电子设备30可以为本申请实施例所述的点云上采样装置,或者点云解码器,或者为模型训练装置,该电子设备30可包括:
存储器33和处理器32,该存储器33用于存储计算机程序34,并将该程序代码34传输给该处理器32。换言之,该处理器32可以从存储器33中调用并运行计算机程序34,以实现本申请实施例中的方法。
例如,该处理器32可用于根据该计算机程序34中的指令执行上述方法中的步骤。
在本申请的一些实施例中,该处理器32可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器33包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(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)。
在本申请的一些实施例中,该计算机程序34可以被分割成一个或多个单元,该一个或者多个单元被存储在该存储器33中,并由该处理器32执行,以完成本申请提供的方法。该一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序34在该电子设备30中的执行过程。
如图16所示,该电子设备30还可包括:
收发器33,该收发器33可连接至该处理器32或存储器33。
其中,处理器32可以控制该收发器33与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器33可以包括发射机和接收机。收发器33还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字点云光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
本申请实施例中,无论是编码器还是解码器,在对当前节点(待编码节点或待解码节点)进行属性 预测的过程中,对于当前节点解码顺序中的序号大于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;并且,如果确定的第一预测节点的数量小于M1,则需要进一步的在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;根据至少一个第一预测节点、或至少一个第一预测节点和至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。这样,可以将基于空间关系属性预测方法和基于双莫顿的属性预测方法进行结合,以得到基于空间关系和双莫顿结合的属性预测方法,既能够准确的定位到当前节点的相邻节点,也能够在相邻节点不可得的情况下尽可能的提高属性预测的准确度,提升编解码效率。
Claims (63)
- 一种点云解码方法,其中,包括:解码点云码流,确定与点云对应的至少一个待解码节点;在待解码节点在第一解码顺序中的序号大于等于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;若确定的第一预测节点的数量小于M1,在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
- 根据权利要求1所述的点云解码方法,其中,所述第一解码顺序和第二节点顺序为莫顿顺序或希尔伯特顺序。
- 根据权利要求1所述的点云解码方法,其中,N=3。
- 根据权利要求1所述的点云解码方法,其中,所述方法还包括:在待解码节点在第一解码顺序中的序号为0的情况下,将待解码点云的属性预测值设置为预设值。
- 根据权利要求4所述的点云解码方法,其中,所述预设值为(128,128,128)、(0,0,0)和(255,255,255)中的一个。
- 根据权利要求1所述的点云解码方法,其中,所述方法还包括:在待解码节点在第一解码顺序中的序号为1的情况下,将在第一解码顺序中序号为0的节点作为第一预测节点;根据所述第一预测节点的属性重建值确定待解码节点的属性预测值,其中,待解码节点的属性预测值等于所述第一预测节点的属性重建值。
- 根据权利要求1所述的点云解码方法,其中,所述方法还包括:在待解码节点在第一解码顺序中的序号为2的情况下,将在第一解码顺序中序号为0和2的节点作为第一预测节点;根据所述第一预测节点的属性重建值确定待解码节点的属性预测值,其中,待解码节点的属性预测值设置为等于第一预测节点的属性重建值的加权平均值。
- 根据权利要求1所述的点云解码方法,其中,所述多个第一候选节点包括待解码节点的共面节点、待解码节点的共线节点和待解码节点的共点节点中的一个或多个。
- 根据权利要求8所述的点云解码方法,其中,所述待解码节点的共面节点包括索引为3、5和6的节点,所述待解码节点的共线节点包括索引为1、2、4、10、12、17、20、33和34的节点,所述待解码节点的共点节点包括索引为1、8、16、24、32、40和48的节点。
- 根据权利要求9所述的点云解码方法,其中,所述在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,还包括:按照待解码节点的共面节点、待解码节点的共线节点、待解码节点的共点节点的顺序,在第一候选节点中查找不为空、且在待解码节点之前已解码的Q1个节点作为第一预测节点,其中,Q1为小于等于3或6的正整数。
- 根据权利要求1所述的点云解码方法,其中,M1=3。
- 根据权利要求1所述的点云解码方法,其中,所述第二候选节点包括在第一解码顺序下在待解码节点之前的P1个节点;所述第二候选节点包括在第二节点顺序下在待解码节点之前的P2个节点和在解码节点之后的P3个节点。
- 根据权利要求12所述的点云解码方法,其中,P1=8,P2=4,P3=4。
- 根据权利要求1所述的点云解码方法,其中,所述第二节点顺序是对点云中的点进行平移处理之后得到的节点的重排序。
- 根据权利要求1所述的点云解码方法,其中,进行平移处理的平移向量为(1,1,1)。
- 根据权利要求1所述的点云解码方法,其中,所述在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,包括:在所述多个第二候选节点中,根据节点与待解码节点之间的距离确定至少一个节点作为第二预测节 点。
- 根据权利要求16所述的点云解码方法,其中,节点与待解码节点之间的距离为几何曼哈顿距离或几何欧式距离。
- 根据权利要求16所述的点云解码方法,其中,所述在所述多个第二候选节点中,根据节点与待解码节点之间的距离确定至少一个节点作为第二预测节点,还包括:在所述多个第二候选节点中,确定与待解码节点之间的距离最小的Q2个节点作为第二预测节点,其中,Q2=3。
- 根据权利要求16所述的点云解码方法,其中,所述在所述多个第二候选节点中,根据节点与待解码节点之间的距离确定至少一个节点作为第二预测节点,还包括:在所述多个第二候选节点中,确定与待解码节点之间的距离最小的至少一个节点作为第二预测节点,以使得第二预测节点的数量与第一预测节点的数量的和值为M2,其中,M2为3、4、5或6。
- 根据权利要求19所述的点云解码方法,其中,所述方法还包括:在第一预测节点的数量和第二预测节点的数量的和值为6的情况下,判断第二候选节点中未被选择的节点中是否存在节点与待解码节点之间的第一距离小于各个第二预测节点中的节点与待解码节点之间的第二距离;若存在,将从第二距离对应的预测节点所述第二预测节点中删除,并将第一距离对应的节点添加到所述第二预测节点中。
- 根据权利要求1所述的点云解码方法,其中,第一预测节点的数量和第二预测节点的数量的和值小于等于6。
- 根据权利要求1所述的点云解码方法,其中,所述根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值,还包括:按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待解码节点的属性预测值。
- 根据权利要求22所述的点云解码方法,其中,所述预设的权重值为固定值。
- 根据权利要求22所述的点云解码方法,其中,针对每一个第一预测节点和/或每一个第二预测节点,根据预测节点与待解码节点之间的位置关系确定该第一预测节点和/或第二预测节点的权重值。
- 根据权利要求22所述的点云解码方法,其中,针对每一个第一预测节点和/或每一个第二预测节点,计算与待解码节点之间的距离的倒数,并做该第一预测节点和/或第二预测节点的权重值。
- 根据权利要求25所述的点云解码方法,其中,预测节点与待解码节点之间的距离为几何曼哈顿距离或几何欧式距离。
- 根据权利要求22所述的点云解码方法,其中,所述按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待解码节点的属性预测值,还包括:根据公式计算待解码节点的属性预测值 其中, 为第一预测节点或第二预测节点的属性重建值,w i为第一预测节点或第二预测节点的权重值,R为第一预测节点和/或第二预测节点构成的集合。
- 根据权利要求1所述的点云解码方法,其中,所述方法还包括:解析码流,确定待解码节点的残差值;根据残差值和属性预测值确定待解码节点的属性重建值。
- 一种点云解码装置,其中,所述装置包括:节点确定模块,用于解码点云码流,确定与点云对应的至少一个待解码节点;第一预测节点确定模块,用于在待解码节点在第一解码顺序中的序号大于等于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;第二预测节点确定模块,用于在确定的第一预测节点的数量小于M1的情况下,在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;属性预测模块,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一 个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
- 一种点云解码器,包括处理器和存储器;所述存储器用于存储计算机程序;所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行如权利要求1-28任一项所述的方法。
- 一种点云编码方法,其中,所述方法包括:对点云进行划分,得到与点云对应的至少一个待编码节点,其中,待编码节点为对点云进行划分得到的体素单元voxel;在待编码节点在第一编码顺序中的序号大于等于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;若确定的第一预测节点的数量小于M1,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
- 根据权利要求31所述的点云编码方法,其中,所述第一编码顺序和第二节点顺序为莫顿顺序或希尔伯特顺序。
- 根据权利要求31所述的点云编码方法,其中,N=3。
- 根据权利要求33所述的点云编码方法,其中,所述方法还包括:在待编码节点在第一编码顺序中的序号为0的情况下,将待编码点云的属性预测值设置为预设值。
- 根据权利要求34所述的点云编码方法,其中,所述预设值为(128,128,128)、(0,0,0)和(255,255,255)中的一个。
- 根据权利要求33所述的点云编码方法,其中,所述方法还包括:在待编码节点在第一编码顺序中的序号为1的情况下,将在第一编码顺序中序号为0的节点作为第一预测节点;根据所述第一预测节点的属性重建值确定待编码节点的属性预测值,其中,待编码节点的属性预测值等于所述第一预测节点的属性重建值。
- 根据权利要求33所述的点云编码方法,其中,所述方法还包括:在待编码节点在第一编码顺序中的序号为2的情况下,将在第一编码顺序中序号为0和1的节点作为第一预测节点;根据所述第一预测节点的属性重建值确定待编码节点的属性预测值,待编码节点的属性预测值设置为等于第一预测节点的属性重建值的加权平均值。
- 根据权利要求31所述的点云编码方法,其中,所述多个第一候选节点包括待编码节点的共面节点、待编码节点的共线节点和待编码节点的共点节点中的一个或多个。
- 根据权利要求38所述的点云编码方法,其中,所述待编码节点的共面节点包括索引为3、5和6的节点,所述待编码节点的共线节点包括索引为1、2、4、10、12、17、20、33和34的节点,所述待编码节点的共点节点包括索引为1、8、16、24、32、40和48的节点。
- 根据权利要求39所述的点云编码方法,其中,所述在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,还包括:按照待编码节点的共面节点、待编码节点的共线节点、待编码节点的共点节点的顺序,在第一候选节点中查找不为空、且在待编码节点之前已编码的Q1个节点作为第一预测节点,其中,Q1为小于等于6的正整数。
- 根据权利要求31所述的点云编码方法,其中,M1=3。
- 根据权利要求31所述的点云编码方法,其中,所述第二候选节点包括在第一编码顺序下在待编码节点之前的P1个节点;所述第二候选节点包括在第二节点顺序下在待编码节点之前的P2个节点和在编码节点之后的P3个节点。
- 根据权利要求42所述的点云编码方法,其中,P1=8,P2=4,P3=4。
- 根据权利要求31所述的点云编码方法,其中,所述第二节点顺序是对点云中的点进行平移处理之后得到的节点的重排序。
- 根据权利要求31所述的点云编码方法,其中,进行平移处理的平移向量为(1,1,1)。
- 根据权利要求31所述的点云编码方法,其中,所述在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,包括:在所述多个第二候选节点中,根据节点与待编码节点之间的距离确定至少一个节点作为第二预测节点。
- 根据权利要求46所述的点云编码方法,其中,节点与待编码节点之间的距离为几何曼哈顿距离或几何欧式距离。
- 根据权利要求46所述的点云编码方法,其中,所述在所述多个第二候选节点中,根据节点与待编码节点之间的距离确定至少一个节点作为第二预测节点,还包括:在所述多个第二候选节点中,确定与待编码节点之间的距离最小的Q2个节点作为第二预测节点,其中,Q2=3。
- 根据权利要求46所述的点云编码方法,其中,所述在所述多个第二候选节点中,确定与待编码节点之间的距离最小的至少一个节点作为第二预测节点,还包括:在所述多个第二候选节点中,确定与待编码节点之间的距离最小的至少一个节点作为第二预测节点,以使得第二预测节点的数量与第一预测节点的数量的和值为M2,其中,M2为3、4、5或6。
- 根据权利要求49所述的点云编码方法,其中,所述方法还包括:在第一预测节点的数量和第二预测节点的数量的和值为6的情况下,判断第二候选节点中未被选择的节点中是否存在节点与待编码节点之间的第一距离小于各个第二预测节点中的节点与待编码节点之间的第二距离;若存在,将从第二距离对应的预测节点所述第二预测节点中删除,并将第一距离对应的节点添加到所述第二预测节点中。
- 根据权利要求31所述的点云编码方法,其中,第一预测节点的数量和第二预测节点的数量的和值小于等于6。
- 根据权利要求31所述的点云编码方法,其中,所述根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值,还包括:按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待编码节点的属性预测值。
- 根据权利要求52所述的点云编码方法,其中,所述预设的权重值为固定值。
- 根据权利要求52所述的点云编码方法,其中,针对每一个第一预测节点和/或每一个第二预测节点,根据预测节点与待编码节点之间的位置关系确定该第一预测节点和/或第二预测节点的权重值。
- 根据权利要求52所述的点云编码方法,其中,针对每一个第一预测节点和/或每一个第二预测节点,计算与待编码节点之间的距离的倒数,并做该第一预测节点和/或第二预测节点的权重值。
- 根据权利要求55所述的点云编码方法,其中,预测节点与待编码节点之间的距离为几何曼哈顿距离或几何欧式距离。
- 根据权利要求52所述的点云编码方法,其中,所述按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待编码节点的属性预测值,还包括:根据公式计算待编码节点的属性预测值 其中, 为第一预测节点或第二预测节点的属性重建值,w i为第一预测节点或第二预测节点的权重值,R为第一预测节点和/或第二预测节点构成的集合。
- 根据权利要求31所述的点云编码方法,其中,所述方法还包括:对所述待编码节点的属性预测值进行编码,得到属性码流。
- 一种点云编码装置,其中,所述装置包括:点云划分模块,用于对点云进行划分,得到与点云对应的至少一个待编码节点,其中,待编码节点为对点云进行划分得到的体素单元voxel;第一预测节点确定模块,用于在待编码节点在第一编码顺序中的序号大于等于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;第二预测节点确定模块,用于在确定的第一预测节点的数量小于M1时,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后 的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;属性预测模块,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
- 一种点云编码器,包括处理器和存储器;所述存储器用于存储计算机程序;所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行如权利要求31-58任一项所述的方法。
- 一种点云编码系统,包括如权利要求30所述的点云解码器和如权利要求60所述的点云编码器。
- 一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至28或31至58任一项所述的方法。
- 一种数据流,其中,所述数据流包括根据权利要求31至58任一项所述的点云编码方法所生成属性码流。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/099883 WO2022257150A1 (zh) | 2021-06-11 | 2021-06-11 | 点云编解码方法、装置、点云编解码器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117426093A true CN117426093A (zh) | 2024-01-19 |
Family
ID=84425649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180098761.3A Pending CN117426093A (zh) | 2021-06-11 | 2021-06-11 | 点云编解码方法、装置、点云编解码器及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117426093A (zh) |
WO (1) | WO2022257150A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10861196B2 (en) * | 2017-09-14 | 2020-12-08 | Apple Inc. | Point cloud compression |
CN111405284B (zh) * | 2020-03-30 | 2022-05-31 | 北京大学深圳研究生院 | 一种基于点云密度的属性预测方法及设备 |
WO2021196029A1 (zh) * | 2020-03-31 | 2021-10-07 | 深圳市大疆创新科技有限公司 | 一种用于点云编码、解码的方法和设备 |
CN112218079B (zh) * | 2020-08-24 | 2022-10-25 | 北京大学深圳研究生院 | 一种基于空间顺序的点云分层方法、点云预测方法及设备 |
CN112565794B (zh) * | 2020-12-03 | 2022-10-04 | 西安电子科技大学 | 一种点云孤立点编码、解码方法及装置 |
-
2021
- 2021-06-11 WO PCT/CN2021/099883 patent/WO2022257150A1/zh active Application Filing
- 2021-06-11 CN CN202180098761.3A patent/CN117426093A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022257150A1 (zh) | 2022-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11483363B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US20220321912A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US20230164353A1 (en) | Point cloud data processing device and processing method | |
US11601488B2 (en) | Device and method for transmitting point cloud data, device and method for processing point cloud data | |
US20230171431A1 (en) | Device for transmitting point cloud data, method for transmitting point cloud data, device for receiving point cloud data, and method for receiving point cloud data | |
US20230059625A1 (en) | Transform-based image coding method and apparatus therefor | |
US20220337872A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
EP4258671A1 (en) | Point cloud attribute predicting method, encoder, decoder, and storage medium | |
CN115086658B (zh) | 点云数据的处理方法、装置、存储介质及编解码设备 | |
US11395004B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US20220319053A1 (en) | Point cloud data processing device and method | |
US20220239946A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
CN117426093A (zh) | 点云编解码方法、装置、点云编解码器及存储介质 | |
US20240037799A1 (en) | Point cloud coding/decoding method and apparatus, device and storage medium | |
CN115474041B (zh) | 点云属性的预测方法、装置及相关设备 | |
WO2024065269A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
US20240087174A1 (en) | Coding and decoding point cloud attribute information | |
US20230412837A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
WO2024065271A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
US20230377208A1 (en) | Geometry coordinate scaling for ai-based dynamic point cloud coding | |
US20240020885A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
CN115086716B (zh) | 点云中邻居点的选择方法、装置及编解码器 | |
CN118075464A (zh) | 点云属性的预测方法、装置及编解码器 | |
WO2024065272A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
US20240185467A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |