CN114079793B - 一种基于新的处理顺序的点云属性解码方法和装置 - Google Patents
一种基于新的处理顺序的点云属性解码方法和装置 Download PDFInfo
- Publication number
- CN114079793B CN114079793B CN202011063672.9A CN202011063672A CN114079793B CN 114079793 B CN114079793 B CN 114079793B CN 202011063672 A CN202011063672 A CN 202011063672A CN 114079793 B CN114079793 B CN 114079793B
- Authority
- CN
- China
- Prior art keywords
- attribute
- point
- points
- hilbert
- current point
- 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.)
- Active
Links
Images
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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/62—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding by frequency transforming in three dimensions
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
针对莫顿序下相邻点之前的三维空间距离会发生周期性跳跃的缺点,为了进一步的点云属性的编码效率,本发明提出了一种基于新的处理顺序的点云属性解码方法和装置。使用Hilbert序作为点云属性的编码顺序,在Hilbert序下当前待点前序若干个点中查找当前待点三维空间上的近邻点,使用这些近邻点作为当前待点的预测点。由于Hilbert序下相近的点三维空间上也相近,特别的,最坏情况下,Hilbert序上距离为n的两点三维空间上的距离小于等于n1/2,而Morton序上距离为n的两点三维空间上的距离有可能大于点云维度长的最大值,且在K较小的时候,Hilbert序上当前点前序K个点距离当前点的平均距离小于Morton序上当前点前序K个点距离当前点的平均距离。因此采用Hilbert序可以更大概率的找到和当前点三维空间上更相近的邻居点,从而使得预测点的属性值和当前待点的属性值更相关,进而提升点云属性的编码效率。
Description
技术领域
本发明专利属于点云编码领域,具体涉及一种基于新的处理顺序的点云属性解码方法和装置。
背景技术
支持虚拟现实技术(VR,Virtual Reality)和增强现实技术(AR,AugmentedReality)的应用是21世纪媒体技术的下一个重要挑战。这些应用连同三维数据采集、三维渲染和计算机视觉使得新兴的沉浸式媒体体验在不久的将来成为可能。点云是一种十分理想的三维场景和三维对象的表现形式,其由三维空间中无规则分布并且无连接的一组点构成,构成点云的每一个点都有几何信息以及可选的属性信息。其中几何信息用来表达三维物体的结构,由三维位置坐标x、y、z构成;而属性信息则用来表达三维场景或者对象的表面属性,常见的属性信息有颜色、反射率、法线和透明度等。点云的数据规模十分庞大,例如一个质量较好的表达三维对象的点云大约有几十万到几百万个点。为了便于点云数据的存储和传输,对于点云数据的压缩十分有必要。
点云压缩算法大多是基于体素化点云的,体素化点云具有处理方便、精度可控等优点。体素化点云是指点的位置坐标被量化到立方体网格内的点云,每个立方体网格的中点的坐标代表该立方体网格中点的坐标,因此编码点云的位置信息时只需要编码立方体网格的索引即可,位置精度可由立方体网格的大小来控制。
目前,对于点云属性编码大都基于莫顿序(Morton Order)来查找若干个最近邻点,然后使用这些最近邻点的属性进行加权来预测当前点的属性值。其中莫顿序是根据点的莫顿码(Morton Code)大小对点云中的点进行排序得到的点序,而每个点的莫顿码可以由点的位置坐标得到,具体的,是将点的各个维度坐标按照二进制位的每个位依序交错放置得到。[1]中基于莫顿序来查找近邻点,其中若细节层次(LoD,Level of Detail)数量为1,会从莫顿序下当前点前若干个已编码点中找到3个距离当前点最近的点,然后使用这些点的属性值的加权平均来预测当前点的属性值,若细节层次数量大于1,则会从按莫顿序排好序的已编码细节层次的点中找到第一个莫顿码大于当前点莫顿码的点,然后在这个找到的点的周围找到3个距离当前点最近的点,使用这些点的属性值的加权平均来预测当前点的属性值。[2]中同样基于莫顿码进行属性预测,其中对于稀疏点云,直接使用莫顿序下当前点的前三个点属性值的加权平均来预测当前点的属性值,对于密集点云,首先从莫顿序下当前点的前若干个点中查找和当前点共面和共线的点,若找得到,则用这些共面共线点的属性值的加权平均来预测当前点的属性值,否则直接使用莫顿序下当前点的前一点预测当前点的属性值。
理论上讲,预测点和当前点的三维空间距离越近,预测点的属性和当前点的属性相关性越强,属性预测的也就越准确,失真不变的情况下所需的码率也就越低。由于莫顿序下相邻或者相近的点之前的三维空间距离会周期性的发生幅度不等的跳跃,导致莫顿序下相邻点之前的三维空间距离周期性的忽近忽远,因此莫顿码具有较差的空间近邻特性,那么利用莫顿序进行最近邻搜索找到的最近点就会不理想。
Hilbert曲线是一种连续的分形空间填充曲线,也被称为Hilbert空间填充曲线,它首先由德国数学家大卫希尔伯特于1891年发现,其可以将高维空间映射到1维。 Hilbert曲线具有良好的空间近邻特性,Hilbert的空间近邻特性是指在一维空间相近的数据点在高维空间也是相近的。由于其空间近邻特性,Hilbert曲线和其离散近似应用十分广泛。例如,人们广泛将其用在数据库索引、内存管理图像处理和动态负载平衡等领域。本发明用到的是Hilbert曲线在3维空间的离散近似。
发明内容
针对莫顿序下相邻点之前的三维空间距离会发生周期性跳跃的缺点,为了进一步的点云属性的编码效率,本发明提出了一种基于新的处理顺序的点云属性解码方法和装置。使用Hilbert序作为点云属性的编码顺序,在Hilbert序下当前点前序若干个点中查找当前点三维空间上的近邻点,使用这些近邻点作为当前点的预测点。由于 Hilbert序下相近的点三维空间上也相近,特别的,最坏情况下,Hilbert序上距离为n的两点三维空间上的距离小于等于而Morton序上距离为n的两点三维空间上的距离有可能大于点云维度长的最大值,且在K较小的时候,Hilbert序上当前点前序K个点距离当前点的平均距离小于Morton序上当前点前序K个点距离当前点的平均距离。因此采用Hilbert序可以更大概率的找到和当前点三维空间上更相近的邻居点,从而使得预测点的属性值和当前点的属性值更相关,进而提升点云属性的编码效率。
本发明的第一目的是提供一种基于新的处理顺序的点云属性解码方法,包括如下内容:
使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值,其中Hilbert序是点云中的点按照其对应的Hilbert码从小到大或者从大到小排序得到的点序;
从码流中解码出当前点的属性残差值;
根据当前点的属性预测值和解码出的属性残差值获得当前点的重建属性值。
作为优选,所述的基于新的处理顺序的点云属性解码方法,其特征在于,所述Hilbert序下前序解码点重建属性值的加权平均值包括:
选取Hilbert序下前序n个解码点作为当前点的属性预测点,n是自然数;
使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值。
作为优选,所述的基于新的处理顺序的点云属性解码方法,其特征在于,所述Hilbert序下前序解码点重建属性值的加权平均值包括:
选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,L是大于0的自然数,n是自然数;
使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值。
作为优选,所述的基于新的处理顺序的点云属性解码方法,其特征在于,所述Hilbert序下前序解码点重建属性值的加权平均值包括:
选取Hilbert序下前序L个点中当前点的共面点和共线点作为当前点的属性预测点,其中共面点是该点所在立方体与当前点所在立方体有一个公共面的点,共线点是指该点所在立方体与当前点所在立方体有一个公共边的点,L是大于0的自然数;
赋予共面点和共线点权重ωpl和ωpo,其中ωpl和ωpo是大于等于0的实数,ωpl大于ωpo;
使用共面点和共线点重建属性值的加权平均值作为当前点的属性预测值。
作为优选,所述的基于新的处理顺序的点云属性解码方法还可以有另外一种实现形式,其特征在于包括,
构建L层细节层次(LODi)i=0,1…L-1,其中,LODi是重建点云的子集, LODL-1为整个重建点云,L是大于0的自然数;获得当前点的n个属性预测点,令(Ri=LODi-LODi-1)i=1…L-1,R0= LOD0,对于Ri中Hilbert码为H的点P,从LODi-1中Hilbert码范围在 [H1,H2](H1≤H≤H2)内的点里面选取n个与点P距离最近的点,将这n个点作为当前点的属性预测点,n是自然数;
使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值;
从码流中解码出当前点的属性残差值;
根据当前点的属性预测值和解码出的属性残差值获得当前点的重建属性值。
以下约定本发明中的表达方法:
1.点云中点的三维几何坐标记为(X1,X2,X3)N,其中X1,X2,X3按二进制展开分别表示为:
二进制展开的左边代表高位、右边代表低位,其中N为大于0的整数、表示坐标位宽。
作为优选,一种基于新的处理顺序的点云属性解码方法包括:
其中,函数根据本次处理的二进制位的状态statei和本次处理的二进制位生成本次处理的二进制位对应的Hilbert码子码,mi不同时有不同的 生成Hilbert码子码的机理是根据由statei确定的Hilbert子曲线的形状以及由本次处理的二进制位确定的 Hilbert子曲线上的序号确定Hilbert码子码,函数根据本次处理的二进制位的状态statei和本次处理的二进制位生成下次处理的二进制位的状态statei+1,mi不同时有不同的 生成下次处理的二进制位的状态statei+1的机理是根据由statei确定的Hilbert子曲线的形状以及由本次处理的二进制位确定的Hilbert子曲线上的序号确定下次处理的二进制位的状态statei+1,二进制位对应的状态和二进制位对应的 Hilbert子曲线的形状一一对应,共进行p次处理,各次处理的mi的总和为 N,即
按照Hilbert从小到大或者从大到小的序,依次从码流中解码得到点云的重建属性信息。
本发明第二目的在于提供一种基于新的处理顺序的点云属性解码装置,其包括:
属性预测值获取模块:该模块输入是已重建的点云,输出是当前点的属性预测值,该模块使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值,其中Hilbert序是点云中的点按照其对应的Hilbert码从小到大或者从大到小排序得到的点序;
属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值;
重建属性值获取模块:该模块输入是属性残差和属性预测值,输出是当前点的重建属性值,该模块根据当前点的属性预测值和解码出的属性残差值获得当前点的重建属性值。
作为优选,所述的基于新的处理顺序的点云属性解码装置,其特征在于,所述Hilbert序下前序解码点重建属性值的加权平均值包括:
属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序n个解码点作为当前点的属性预测点,n 是自然数;
属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值。
作为优选,所述的基于新的处理顺序的点云属性解码装置,其特征在于,所述Hilbert序下前序解码点重建属性值的加权平均值包括:
属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,L是大于0的自然数,n是自然数;
属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值。
作为优选,所述的基于新的处理顺序的点云属性解码装置,其特征在于,所述Hilbert序下前序解码点重建属性值的加权平均值包括:
属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序L个点中当前点的共面点和共线点作为当前点的属性预测点,其中共面点是该点所在立方体与当前点所在立方体有一个公共面的点,共线点是指该点所在立方体与当前点所在立方体有一个公共边的点,L是大于0的自然数;
属性预测点赋权模块:该模块输入是属性预测点,输出是带权重的属性预测点,该模块赋予共面点和共线点权重ωpl和ωpo,其中ωpl和ωpo是大于等于0 的实数,ωpl大于ωpo;
属性预测值计算模块:该模块输入是带权重的属性预测点,输出是当前点的属性预测值,该模块使用共面点和共线点重建属性值的加权平均值作为当前点的属性预测值。
作为优选,所述的基于新的处理顺序的点云属性解码装置还可以有另外一种实现形式,其特征在于包括,
LOD构建模块:该模块的输入是重建的点云几何,输出是构建好的LOD,该模块构建L层细节层次(LODi)i=0,1…L-1,其中,LODi是重建点云的子集,LODL-1为整个重建点云,L是大于0的自然数;属性预测点获取模块:该模块的输入是构建好的LOD,输出是当前点的属性预测点,该模块获得当前点的n个属性预测点,令(Ri=LODi- LODi-1)i=1…L-1,R0=LOD0,对于Ri中Hilbert码为H的点P,从LODi-1中Hilbert码范围在[H1,H2](H1≤H≤H2)内的点里面选取n个与点P距离最近的点,将这n个点作为当前点的属性预测点,n是自然数;
属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值;
属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值;
重建属性值获取模块:该模块输入是属性残差和属性预测值,输出是当前点的重建属性值,该模块根据当前点的属性预测值和解码出的属性残差值获得当前点的重建属性值。
作为优选,一种基于新的处理顺序的点云属性解码方法包括:
Hilbert码生成模块:该模块输入是重建的点云几何坐标,输出是与点云几何坐标对应的Hilbert码,该模块从高位到低位依次处理点云中重建点的三维几何坐标(X1,X2,X3)N的各二进制位,其中第i次处理:根据重建点的三维几何坐标中的(3*mi)个二进制位、生成对应的Hilbert码子码
其中,函数根据本次处理的二进制位的状态statei和本次处理的二进制位生成本次处理的二进制位对应的Hilbert码子码,mi不同时有不同的 生成Hilbert码子码的机理是根据由 statei确定的Hilbert子曲线的形状以及由本次处理的二进制位确定的 Hilbert子曲线上的序号确定Hilbert码子码,函数根据本次处理的二进制位的状态statei和本次处理的二进制位生成下次处理的二进制位的状态statei+1,mi不同时有不同的 生成下次处理的二进制位的状态statei+1的机理是根据由statei确定的Hilbert子曲线的形状以及由本次处理的二进制位确定的Hilbert子曲线上的序号确定下次处理的二进制位的状态statei+1,二进制位对应的状态和二进制位对应的 Hilbert子曲线的形状一一对应,共进行p次处理,各次处理的mi的总和为 N,即
属性解码模块:该模块的输入是属性码流,输出是重建的点云属性,该模块按照Hilbert从小到大或者从大到小的序,依次从码流中解码得到点云的重建属性信息。
由于采用Hilbert序有着最好的空间近邻特性,因此可以更大概率的找到和当前点三维空间上更相近的邻居点作为预测点,从而使得预测点的属性值和当前点的属性值更相关,进而在实现复杂度不变的前提下提升点云属性的压缩效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明涉及的三维Hilbert曲线的示意图;
图2是本发明实施例算法流程图;
图3是本发明专利实施例装置示意图;
具体实施方式
为了进一步理解本发明,下面结合实施例对本发明的优选实施方案进行描述,但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。
为了表述方便,做如下定义:
对于n个二进制数X1,X2,…,Xn,X1X2…Xn表示将这n个二进制数按位拼接在一起,且左边的数是高位,右边的数是低位。
如果一个D维超立方体的各个维度均被2n等分,则该超立方体被称为D维n阶超立方体,使用表示,使用(X1,X2…Xd…XD)表示D维n阶超立方体中最小子立方体的的坐标,其中,0≤Xd<2n,1≤d≤D。一个穿行于中最小子立方体的曲线被称为D维n阶Hilbert曲线,用表示,D维n阶超立方体中每个最小子立方体在上的扫描顺序索引称为该最小子立方体的Hilbert码,用 从0开始。
D维1阶Hilbert曲线在D维1阶超立方体中扫描最小立方体的顺序就是gray 码的顺序,例如对于三维而言,扫描顺序为0、1、2、3、4、5、6、7的子立方体的 gray码的分别是000、001、011、010、110、111、101、100,正好是子立方体的坐标,因此可以根据gray码来生成D维1阶曲线的Hilbert码。
使用符号(x1x2…xK)b表示K位b进制数,其中0≤xk<b,1≤k≤K。
Gray码编码函数为
G((x1x2…xK)2)=(g1g2…gK)2,
(g1g2…gK)2是(x1x2…xK)2的gray码,计算公式如下
(g1g2…gK)2=(x1x2…xK)2∧((x1x2…xK)2>>1)
其中∧为按位异或运算符,>>为右移运算符。
Gray码解码函数为
DG((g1g2…gK)2)=(x1x2…xK)2
其中xk=DGk((g1g2…gK)2)
计算公式如下
x1=DG1((g1g2…gK)2)=g1,
Hilbert曲线是自相似的,曲线的生成是一个递归的过程,n+1阶Hilbert曲线,需要用到n阶Hilbert曲线,具体的:将D维1阶超立方体的2D个子立方体对应的位置看做D维空间的2D个象限,那么对于n+1阶Hilbert曲线而言,需要将n阶 Hilbert曲线直接拷贝或者经过镜像翻转之后放在n+1阶Hilbert曲线的某个象限,然后将相邻象限的n阶Hilbert曲线或者镜像翻转后的n阶Hilbert曲线的起点和和终点连接起来,这样就构成了n+1阶曲线。用到的翻转主要有两种:镜像翻转1 和镜像翻转2,这两种翻转都是沿着某个超平面的镜像翻转,其中
这两种翻转都是保序,即曲线上的各个点翻转前后在曲线上的相对位置不变。
Hilbert子曲线是有方向的,方向可由起点坐标和终点坐标唯一确定,且起点和终点的坐标只有一位不同。例如3维1阶Hilbert曲线的起点坐标为DG(0)=000,终点坐标为DG(7)=100。分别使用Bq和Eq表示D维1阶在象限q的子曲线的起点和终点坐标(如前所述,象限q的坐标可由gray码G(q)得到),那么对于三维,有B0= 000,E0=010,B1=000,E1=100,B2=000,E2=100,B3=110,E3= 111,B4=110,E4=111,B5=101,E5=001,B6=101,E6=001,B7= 001,E7=011。
可由起点和终点的坐标确定将各个子曲线变为相似于1阶曲的线镜像翻转。
后续均只考虑三维空间,即D=3,给定一个点的三维坐标(X1,X2,X3),按照二进制展开为
象限q的镜像翻转1
得到3位数 代表镜像翻转1的翻转规则,具体翻转规则如下,由于入点和出点坐标只有一位不同,所以G(0)∧DG(7)和Bq∧Eq都只有一位为1,所以的各个二进制位中要么只有两个1,要么全为0,如果的第i位和第j位为1,那么交换坐标Xi和Xj,1≤i,j≤3。
象限q的镜像翻转2
Hilbert编码是根据给定的坐标(X1,X2,X3)计算Hilbert码HCodeN= (C1C2…Cn…CN-1CN)的过程,其中Cn是每层的3位二进制子码,n依次取1到N进行以下计算依次获得Cn
实施例1
本实施例的一种基于新的处理顺序的点云属性解码方法,如图2所示,包含以下内容,
对于重建的点云几何,跟据其三维空间坐标生成与其相关联的Hilbert码,如前面所述的,对于给定的三维坐标为(X1,X2,X3)的点,其坐标按二进制展开为
则可以通过以下过程求出点(X1,X2,X3)的Hilbert码HCodeN= (C1C2…Cn…CN-1CN),其中Cn是3位二进制子码,n依次取1到N进行以下计算依次获得Cn:
按照Hilbert序依次处理点云中的点的属性值,对于当前点的属性值执行如下步骤进行处理:
1)使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值,其中Hilbert序是点云中的点按照其对应的Hilbert码从小到大或者从大到小排序得到的点序:选取Hilbert序下当前点的前1个点点P,设其属性值分别为则属性值即为当前点的属性预测值;
2)从码流中解码出当前点的属性残差值R;
本实施例的一种基于新的处理顺序的点云属性解码方法,包含以下内容,
对于重建的点云几何,跟据其三维空间坐标生成与其相关联的Hilbert码,如前面所述的,对于给定的三维坐标为(X1,X2,X3)的点,其坐标按二进制展开为
则可以通过以下过程求出点(X1,X2,X3)的Hilbert码HCodeN= (C1C2…Cn…CN-1CN),其中Cn是3位二进制子码,n依次取1到N进行以下计算依次获得Cn:
按照Hilbert序依次处理点云中的点的属性值,对于当前点的属性值执行如下步骤进行处理:
1)选取Hilbert序下前序n个解码点作为当前点的属性预测点,n是自然数,本实施例中n取3:选取Hilbert序下当前点的前3个点Pi= (Xi,Yi,Zi),i=1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)从码流中解码出当前点的属性残差值R;
本实施例的一种基于新的处理顺序的点云属性解码方法,包含以下内容,
对于重建的点云几何,跟据其三维空间坐标生成与其相关联的Hilbert码,如前面所述的,对于给定的三维坐标为(X1,X2,X3)的点,其坐标按二进制展开为
则可以通过以下过程求出点(X1,X2,X3)的Hilbert码HCodeN= (C1C2…Cn…CN-1CN),其中Cn是3位二进制子码,n依次取1到N进行以下计算依次获得Cn:
按照Hilbert序依次处理点云中的点的属性值,对于当前点的属性值执行如下步骤进行处理:
1)选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,n是自然数,本实施例中n取3:在Hilbert序下当前点的前128个点中查找3个距离当前点最近的点,令其为Pi=(Xi,Yi,Zi),i= 1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)从码流中解码出当前点的属性残差值R;
实施例4
本实施例的一种基于新的处理顺序的点云属性解码方法,包含以下内容,
对于重建的点云几何,跟据其三维空间坐标生成与其相关联的Hilbert码,如前面所述的,对于给定的三维坐标为(X1,X2,X3)的点,其坐标按二进制展开为
则可以通过以下过程求出点(X1,X2,X3)的Hilbert码HCodeN= (C1C2…Cn…CN-1CN),其中Cn是3位二进制子码,n依次取1到N进行以下计算依次获得Cn:
按照Hilbert序依次处理点云中的点的属性值,对于当前点的属性值执行如下步骤进行处理:
1)选取Hilbert序下前序L个点中当前点的共面点和共线点作为当前点的属性预测点,其中共面点是该点所在立方体与当前点所在立方体有一个公共面的点,共线点是指该点所在立方体与当前点所在立方体有一个公共边的点,L是大于0的自然数,本实施例中L取128:在Hilbert序下当前点的前128个点中查找与当前点共面和共线的邻居点,设最终找到的邻居点的个数为k,若k不为0,则设这些邻居点为(Pi)i=12..k,每一个邻居点的属性值为(Ai)i=12..k;
2)赋予共面点和共线点权重ωpl和ωpo,其中ωpl和ωpo是大于等于0的实数,ωpl大于ωpo,本实施例中令ωpl=2,ωpo=1,:每一个邻居点的权重为(ωi)i=12..k,其中对距离为1的邻居点赋权重为2,对距离为的邻居点赋权重为2;
4)从码流中解码出当前点的属性残差值R;
实施例5
本实施例的一种基于新的处理顺序的点云属性解码方法,包含以下内容,
对于重建的点云几何,跟据其三维空间坐标生成与其相关联的Hilbert码,如前面所述的,对于给定的三维坐标为(X1,X2,X3)的点,其坐标按二进制展开为
则可以通过以下过程求出点(X1,X2,X3)的Hilbert码HCodeN= (C1C2…Cn…CN-1CN),其中Cn是3位二进制子码,n依次取1到N进行以下计算依次获得Cn:
获得当前点的n个属性预测点,令(Ri=LODi-LODi-1)i=1…L-1,R0=LOD0,对于Ri中Hilbert码为H的点P,从LODi-1中Hilbert码范围在[H1,H2](H1≤H≤ H2)内的点里面选取n个与点P距离最近的点,将这n个点作为当前点的属性预测点,n是自然数,本实施例中n取3,令这3个属性预测点为Pi=(Xi,Yi,Zi),i= 1,2,3,设其属性值分别为(Ai)i=1,2,3;
使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
从码流中解码出当前点的属性残差值R;
实施例6
本实施例的一种基于新的处理顺序的点云属性解码装置,如图3所示,包含以下模块,
Hilbert码生成模块:该模块的输入是重建的点云几何,输出是含有Hilbert码的点云几何,该模块对于重建的点云几何,跟据其三维空间坐标生成与其相关联的Hilbert码,如前面所述的,对于给定的三维坐标为(X1,X2,X3)的点,其坐标按二进制展开为
则可以通过以下过程求出点(X1,X2,X3)的Hilbert码HCodeN= (C1C2…Cn…CN-1CN),其中Cn是3位二进制子码,n依次取1到N进行以下计算依次获得Cn:
按照Hilbert序依次处理点云中的点的属性值,对于当前点的属性值执行如下模块进行处理:
1)属性预测值获取模块:该模块输入是已重建的点云,输出是当前点的属性预测值,该模块使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值,其中Hilbert序是点云中的点按照其对应的Hilbert码从小到大或者从大到小排序得到的点序:选取Hilbert序下当前点的前1个点点P,设其属性值分别为则属性值即为当前点的属性预测值;
2)属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
实施例7
本实施例的一种基于新的处理顺序的点云属性解码装置,包含以下模块,
Hilbert码生成模块:该模块的输入是重建的点云几何,输出是含有Hilbert码的点云几何,该模块对于重建的点云几何,跟据其三维空间坐标生成与其相关联的Hilbert码,如前面所述的,对于给定的三维坐标为(X1,X2,X3)的点,其坐标按二进制展开为
则可以通过以下过程求出点(X1,X2,X3)的Hilbert码HCodeN= (C1C2…Cn…CN-1CN),其中Cn是3位二进制子码,n依次取1到N进行以下计算依次获得Cn:
按照Hilbert序依次处理点云中的点的属性值,对于当前点的属性值执行如下模块进行处理:
1)属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序n个解码点作为当前点的属性预测点,n是自然数,本实施例中n取3:选取Hilbert序下当前点的前 3个点Pi=(Xi,Yi,Zi),i=1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
实施例8
本实施例的一种基于新的处理顺序的点云属性解码装置,包含以下模块,
Hilbert码生成模块:该模块的输入是重建的点云几何,输出是含有Hilbert码的点云几何,该模块对于重建的点云几何,跟据其三维空间坐标生成与其相关联的 Hilbert码,如前面所述的,对于给定的三维坐标为(X1,X2,X3)的点,其坐标按二进制展开为
则可以通过以下过程求出点(X1,X2,X3)的Hilbert码HCodeN= (C1C2…Cn…CN-1CN),其中Cn是3位二进制子码,n依次取1到N进行以下计算依次获得Cn:
按照Hilbert序依次处理点云中的点的属性值,对于当前点的属性值执行如下模块进行处理:
1)属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,n是自然数,本实施例中n取3:在 Hilbert序下当前点的前128个点中查找3个距离当前点最近的点,令其为Pi=(Xi,Yi,Zi),i=1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
实施例9
本实施例的一种基于新的处理顺序的点云属性解码装置,包含以下模块,
Hilbert码生成模块:该模块的输入是重建的点云几何,输出是含有Hilbert码的点云几何,该模块对于重建的点云几何,跟据其三维空间坐标生成与其相关联的 Hilbert码,如前面所述的,对于给定的三维坐标为(X1,X2,X3)的点,其坐标按二进制展开为
则可以通过以下过程求出点(X1,X2,X3)的Hilbert码HCodeN= (C1C2…Cn…CN-1CN),其中Cn是3位二进制子码,n依次取1到N进行以下计算依次获得Cn:
按照Hilbert序依次处理点云中的点的属性值,对于当前点的属性值执行如下模块进行处理:
1)属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序L个点中当前点的共面点和共线点作为当前点的属性预测点,其中共面点是该点所在立方体与当前点所在立方体有一个公共面的点,共线点是指该点所在立方体与当前点所在立方体有一个公共边的点,L是大于0的自然数,本实施例中L取128:在Hilbert序下当前点的前128个点中查找与当前点共面和共线的邻居点,设最终找到的邻居点的个数为k,若k不为0,则设这些邻居点为 (Pi)i=12..k,每一个邻居点的属性值为(Ai)i=12..k;
2)属性预测点赋权模块:该模块输入是属性预测点,输出是带权重的属性预测点,该模块赋予共面点和共线点权重ωpl和ωpo,其中ωpl和ωpo是大于等于0的实数,ωpl大于ωpo,本实施例中令ωpl=2,ωpo=1:每一个邻居点的权重为(ωi)i=12..k,其中对距离为1的邻居点赋权重为2,对距离为的邻居点赋权重为2;
3)属性预测值计算模块:该模块输入是带权重的属性预测点,输出是当前点的属性预测值,该模块使用共面点和共线点重建属性值的加权平均值作为当前点的属性预测值:使用以下公式计算这些邻居点(Pi)i=12..k的属性值的加权平均值,将该加权平均值作为当前点的属性预测值
4)属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
实施例10
本实施例的一种基于新的处理顺序的点云属性解码装置,包含以下模块,
Hilbert码生成模块:该模块的输入是重建的点云几何,输出是含有Hilbert码的点云几何,该模块对于重建的点云几何,跟据其三维空间坐标生成与其相关联的 Hilbert码,如前面所述的,对于给定的三维坐标为(X1,X2,X3)的点,其坐标按二进制展开为
则可以通过以下过程求出点(X1,X2,X3)的Hilbert码HCodeN= (C1C2…Cn…CN-1CN),其中Cn是3位二进制子码,n依次取1到N进行以下计算依次获得Cn:
LOD构建模块:该模块的输入是重建的点云几何,输出是构建好的LOD,该模块构建L层细节层次(LODi)i=0,1…L-1,其中,LODi是重建点云的子集, LODL-1为整个重建点云,L是大于0的自然数,本实施例中L取10;
属性预测点获取模块:该模块的输入是构建好的LOD,输出是当前点的属性预测点,该模块获得当前点的n个属性预测点,令(Ri=LODi-LODi-1)i=1…L-1,R0= LOD0,对于Ri中Hilbert码为H的点P,从LODi-1中Hilbert码范围在 [H1,H2](H1≤H≤H2)内的点里面选取n个与点P距离最近的点,将这n个点作为当前点的属性预测点,n是自然数,本实施例中n取3,令这3个属性预测点为Pi= (Xi,Yi,Zi),i=1,2,3,设其属性值分别为(Ai)i=1,2,3;
属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
实施例11
本实施例的一种基于新的处理顺序的点云属性解码方法,如图2所示,包含以下内容,
当解码的几何点为hilbert序时,直接按照解码序处理点云属性,对于当前点的属性值执行如下步骤进行处理:
1)使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值,其中Hilbert序是点云中的点按照其对应的Hilbert码从小到大或者从大到小排序得到的点序:选取Hilbert序下当前点的前1个点点P,设其属性值分别为则属性值即为当前点的属性预测值;
2)从码流中解码出当前点的属性残差值R;
实施例12
本实施例的一种基于新的处理顺序的点云属性解码方法,包含以下内容,
当解码的几何点为hilbert序时,直接按照解码序处理点云属性,对于当前点的属性值执行如下步骤进行处理:
1)选取Hilbert序下前序n个解码点作为当前点的属性预测点,n是自然数,本实施例中n取3:选取Hilbert序下当前点的前3个点Pi= (Xi,Yi,Zi),i=1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)从码流中解码出当前点的属性残差值R;
实施例13
本实施例的一种基于新的处理顺序的点云属性解码方法,包含以下内容,
当解码的几何点为hilbert序时,直接按照解码序处理点云属性,对于当前点的属性值执行如下步骤进行处理:
1)选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,n是自然数,本实施例中n取3:在Hilbert序下当前点的前128个点中查找3个距离当前点最近的点,令其为Pi=(Xi,Yi,Zi),i= 1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)从码流中解码出当前点的属性残差值R;
实施例14
本实施例的一种基于新的处理顺序的点云属性解码方法,包含以下内容,
当解码的几何点为hilbert序时,直接按照解码序处理点云属性,对于当前点的属性值执行如下步骤进行处理:
1)选取Hilbert序下前序L个点中当前点的共面点和共线点作为当前点的属性预测点,其中共面点是该点所在立方体与当前点所在立方体有一个公共面的点,共线点是指该点所在立方体与当前点所在立方体有一个公共边的点,L是大于0的自然数,本实施例中L取128:在Hilbert序下当前点的前128个点中查找与当前点共面和共线的邻居点,设最终找到的邻居点的个数为k,若k不为0,则设这些邻居点为(Pi)i=12..k,每一个邻居点的属性值为(Ai)i=12..k;
2)赋予共面点和共线点权重ωpl和ωpo,其中ωpl和ωpo是大于等于0的实数,ωpl大于ωpo,本实施例中令ωpl=2,ωpo=1:每一个邻居点的权重为 (ωi)i=12..k,其中对距离为1的邻居点赋权重为2,对距离为的邻居点赋权重为2;
4)从码流中解码出当前点的属性残差值R;
实施例15
本实施例的一种基于新的处理顺序的点云属性解码装置,如图3所示,包含以下模块,
当解码的几何点为hilbert序时,直接按照解码序处理点云属性,对于当前点的属性值执行如下模块进行处理:
1)属性预测值获取模块:该模块输入是已重建的点云,输出是当前点的属性预测值,该模块使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值,其中Hilbert序是点云中的点按照其对应的Hilbert码从小到大或者从大到小排序得到的点序:选取Hilbert序下当前点的前1个点点P,设其属性值分别为则属性值即为当前点的属性预测值;
2)属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
实施例16
本实施例的一种基于新的处理顺序的点云属性解码装置,包含以下模块,
当解码的几何点为hilbert序时,直接按照解码序处理点云属性,对于当前点的属性值执行如下模块进行处理:
1)属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序n个解码点作为当前点的属性预测点,n是自然数,本实施例中n取3:选取Hilbert序下当前点的前 3个点Pi=(Xi,Yi,Zi),i=1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
实施例17
本实施例的一种基于新的处理顺序的点云属性解码装置,包含以下模块,
当解码的几何点为hilbert序时,直接按照解码序处理点云属性,对于当前点的属性值执行如下模块进行处理:
1)属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,n是自然数,本实施例中n取3:在 Hilbert序下当前点的前128个点中查找3个距离当前点最近的点,令其为Pi=(Xi,Yi,Zi),i=1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
实施例18
本实施例的一种基于新的处理顺序的点云属性解码装置,包含以下模块,
当解码的几何点为hilbert序时,直接按照解码序处理点云属性,对于当前点的属性值执行如下模块进行处理:
1)属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序L个点中当前点的共面点和共线点作为当前点的属性预测点,其中共面点是该点所在立方体与当前点所在立方体有一个公共面的点,共线点是指该点所在立方体与当前点所在立方体有一个公共边的点,L是大于0的自然数,本实施例中L取128:在Hilbert序下当前点的前128个点中查找与当前点共面和共线的邻居点,设最终找到的邻居点的个数为k,若k不为0,则设这些邻居点为 (Pi)i=12..k,每一个邻居点的属性值为(Ai)i=12..k,;
2)属性预测点赋权模块:该模块输入是属性预测点,输出是带权重的属性预测点,该模块赋予共面点和共线点权重ωpl和ωpo,其中ωpl和ωpo是大于等于0的实数,ωpl大于ωpo,本实施例中令ωpl=2,ωpo=1:每一个邻居点的权重为(ωi)i=12..k,其中对距离为1的邻居点赋权重为2,对距离为的邻居点赋权重为2;
3)属性预测值计算模块:该模块输入是带权重的属性预测点,输出是当前点的属性预测值,该模块使用共面点和共线点重建属性值的加权平均值作为当前点的属性预测值:使用以下公式计算这些邻居点(Pi)i=12..k的属性值的加权平均值,将该加权平均值作为当前点的属性预测值
4)属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
实施例19
本实施例的一种基于新的处理顺序的点云属性解码方法,包含以下内容,
从高位到低位依次处理点云中重建点的三维几何坐标(X1,X2,X3)N的各二进制位,其中第i次处理:根据重建点的三维几何坐标中的(3*mi)个二进制位、生成对应的Hilbert码子码本实施例中N=bitWidth、X1=x、X2=y、X3=z,每次固定都只处理1位即mi=1,p=bitWidth,对应查表操作 HilbertTable[state][pos][1],对应查表操作HilbertTable [state][pos][0],通过以下方法获得被解码点的希尔伯特(Hilbert)码HCode:
其中>>为按位右移操作,<<为按位左移操作,用到的查找表HilbertCode如下:
按照Hilbert从小到大或者从大到小的序,依次从码流中解码得到点云的重建属性信息,对于当前点的属性值执行如下步骤进行处理:
1)选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,n是自然数,本实施例中n取3:在Hilbert序下当前点的前128个点中查找3个距离当前点最近的点,令其为Pi=(Xi,Yi,Zi),i= 1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)从码流中解码出当前点的属性残差值R;
实施例20
本实施例的一种基于新的处理顺序的点云属性解码装置,包含以下模块,
Hilbert码生成模块:该模块输入是重建的点云几何坐标,输出是与点云几何坐标对应的Hilbert码,该模块从高位到低位依次处理点云中重建点的三维几何坐标 (X1,X2,X3)N的各二进制位,其中第i次处理:根据重建点的三维几何坐标中的 (3*mi)个二进制位、生成对应的Hilbert码子码本实施例中N=bitWidth、 X1=x、X2=y、X3=z,每次固定都只处理1位即mi=1,p=bitWidth,对应查表操作HilbertTable[state][pos][1],对应查表操作HilbertTable[state][pos][0],通过以下方法获得被解码点的希尔伯特(Hilbert)码HCode:
其中>>为按位右移操作,<<为按位左移操作,用到的查找表HilbertCode如下:
属性解码模块:该模块的输入是属性码流,输出是重建的点云属性,该模块按照Hilbert从小到大或者从大到小的序,依次从码流中解码得到点云的重建属性信息,对于当前点的属性值执行如下模块进行处理:
1)属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,n是自然数,本实施例中n取3:在 Hilbert序下当前点的前128个点中查找3个距离当前点最近的点,令其为Pi=(Xi,Yi,Zi),i=1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z| a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
实施例21
本实施例的一种基于新的处理顺序的点云属性解码方法,包含以下内容,
从高位到低位依次处理点云中重建点的三维几何坐标(X1,X2,X3)N的各二进制位,其中第i次处理:根据重建点的三维几何坐标中的(3*mi)个二进制位、生成对应的Hilbert码子码本实施例中N=bitWidth且为偶数、X1=x、X2=y、 X3=z,每次固定都只处理2位即mi=2,p=bitWidth/2,对应查表操作HilbertTable[state][pos][1],对应查表操作 HilbertTable[state][pos][0],通过以下方法获得被解码点的希尔伯特(Hilbert) 码HCode:
其中>>为按位右移操作,<<为按位左移操作,用到的查找表HilbertCode如下:
按照Hilbert从小到大或者从大到小的序,依次从码流中解码得到点云的重建属性信息,对于当前点的属性值执行如下步骤进行处理:
1)选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,n是自然数,本实施例中n取3:在Hilbert序下当前点的前128个点中查找3个距离当前点最近的点,令其为Pi=(Xi,Yi,Zi),i= 1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z| a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)从码流中解码出当前点的属性残差值R;
实施例22
本实施例的一种基于新的处理顺序的点云属性解码装置,包含以下模块,
从高位到低位依次处理点云中重建点的三维几何坐标(X1,X2,X3)N的各二进制位,其中第i次处理:根据重建点的三维几何坐标中的(3*mi)个二进制位、生成对应的Hilbert码子码本实施例中N=bitWidth且为偶数、X1=x、X2=y、 X3=z,每次固定都只处理2位即mi=2,p=bitWidth/2,对应查表操作HilbertTable[state][pos][1],对应查表操作 HilbertTable[state][pos][0],通过以下方法获得被解码点的希尔伯特(Hilbert) 码HCode:
其中>>为按位右移操作,<<为按位左移操作,用到的查找表HilbertCode如下:
属性解码模块:该模块的输入是属性码流,输出是重建的点云属性,该模块按照Hilbert从小到大或者从大到小的序,依次从码流中解码得到点云的重建属性信息,对于当前点的属性值执行如下模块进行处理:
1)属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,n是自然数,本实施例中n取3:在 Hilbert序下当前点的前128个点中查找3个距离当前点最近的点,令其为Pi=(Xi,Yi,Zi),i=1,2,3,设其属性值分别为(Ai)i=1,2,3;
2)属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这3个属性预测点重建属性值的加权平均值作为当前点的属性预测值:分别求得3个点的权重(ωi)i=1,2,3,
其中di是点Pi距离当前点(X,Y,Z)的距离,至少可以是以下距离之一:
◆欧氏距离
◆欧氏距离的平方
di=a(Xi-X)2+b(Yi-Y)2+c(Zi-Z)2
◆切比雪夫距离
di=max(a|Xi-X|,b|Yi-Y|,c|Zi-Z|)
◆曼哈顿距离
di=a|Xi-X|+b|Yi-Y|+c|Zi-Z|
a、b、c为三个维度的加权系数,用来控制三个维度的权重,本实施例中,加权系数a、b、c分别取值为a=2、b=1、c=3;
3)属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值R;
参考文献
[1]“DoC for ISO/IEC CD 23090-9Geometry-based Point CloudCompression”, ISO/IEC JTC1/SC29 WG11 Doc.W19094,Brussels,Belgium,Jan.2020.
[2]“AVS点云编码探索模型软件描述(PCEM V0.3)”,AVS Doc N2828,Online,Apr.2020。
Claims (12)
1.一种基于新的处理顺序的点云属性解码方法,其特征在于包括:
从高位到低位依次处理点云中重建点的三维几何坐标(X1,X2,X3)N的各二进制位,得到所述重建点的Hilbert码,其中
第i次处理得到Hilbert码的第i个子码、共mi位,包括:
即根据由本次处理的二进制位的状态statei确定的Hilbert子曲线的形状、由本次处理的二进制位确定的Hilbert子曲线上的序号,确定本次处理所得到的Hilbert码子码其中mi不同时有不同的函数;
生成二进制位的状态statei+1:
即根据由本次处理的二进制位的状态statei确定的Hilbert子曲线的形状、由本次处理的二进制位确定的Hilbert子曲线上的序号,确定下次处理的二进制位的状态statei+1,mi不同时有不同的所述二进制位对应的状态和所述二进制位对应的Hilbert子曲线的形状一一对应;
共进行p次处理,各次处理的mi的总和为N,即
按照Hilbert码从小到大或者从大到小的序,依次从码流中解码得到点云的重建属性信息。
2.权利要求1所述的基于新的处理顺序的点云属性解码方法,其特征在于,
所述的解码得到点云的重建属性信息包括:
使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值,所述Hilbert序是指点云中的点按照其对应的所述Hilbert码从小到大或者从大到小排序得到的序;
从码流中解码出当前点的属性残差值;
根据当前点的属性预测值和解码出的属性残差值获得当前点的重建属性值。
3.权利要求2所述的基于新的处理顺序的点云属性解码方法,其特征在于,所述使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值包括:
选取Hilbert序下前序n个解码点作为当前点的属性预测点,n是自然数;
使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值。
4.权利要求2所述的基于新的处理顺序的点云属性解码方法,其特征在于,所述使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值包括:
选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,L是大于0的自然数,n是自然数;
使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值。
5.权利要求2所述的基于新的处理顺序的点云属性解码方法,其特征在于,所述使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值包括:
选取Hilbert序下前序L个点中当前点的共面点和共线点作为当前点的属性预测点,其中共面点是该点所在立方体与当前点所在立方体有一个公共面的点,共线点是指该点所在立方体与当前点所在立方体有一个公共边的点,L是大于0的自然数;
赋予共面点和共线点权重ωpl和ωpo,其中ωpl和ωpo是大于等于0的实数,ωpl大于ωpo;
使用共面点和共线点重建属性值的加权平均值作为当前点的属性预测值。
6.权利要求1所述的基于新的处理顺序的点云属性解码方法,其特征在于,
所述的解码得到点云的重建属性信息包括:
获得当前点P的n个属性预测点:令(Ri=LODi-LODi-1)i=1…L-1,R0=LOD0,P点的所述Hilbert码记为H,对于Ri中的点P,从LODi-1中Hilbert码范围在[H1,H2]内的点里面选取n个与点P距离最近的点,将这n个点作为当前点的属性预测点,n是自然数,所述的H1≤H,所述的H2≥H;
使用这n个属性预测点的重建属性值的加权平均值作为当前点的属性预测值;
从码流中解码出当前点的属性残差值;
根据当前点的属性预测值和解码出的属性残差值获得当前点的重建属性值。
7.一种基于新的处理顺序的点云属性解码装置,其特征在于包括:
Hilbert码生成模块:该模块输入是重建的点云几何坐标,输出是与点云几何坐标对应的Hilbert码,该模块从高位到低位依次处理点云中重建点的三维几何坐标(X1,X2,X3)N的各二进制位,得到所述重建点的Hilbert码,其中
第i次处理得到Hilbert码的第i个子码、共mi位,包括:
生成二进制位的状态statei+1:
即根据由本次处理的二进制位的状态statei确定的Hilbert子曲线的形状、由本次处理的二进制位确定的Hilbert子曲线上的序号,确定下次处理的二进制位的状态statei+1,mi不同时有不同的所述二进制位对应的状态和所述二进制位对应的Hilbert子曲线的形状一一对应;
共进行p次处理,各次处理的mi的总和为N,即
属性解码模块:该模块的输入是属性码流,输出是重建的点云属性,该模块按照Hilbert从小到大或者从大到小的序,依次从码流中解码得到点云的重建属性信息。
8.权利要求7所述的基于新的处理顺序的点云属性解码装置,所述的属性解码模块的特征在于包括:
属性预测值获取模块:该模块输入是已重建的点云,输出是当前点的属性预测值,该模块使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值,所述Hilbert序是指点云中的点按照其对应的所述Hilbert码从小到大或者从大到小排序得到的点序;
属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值;
重建属性值获取模块:该模块输入是属性残差和属性预测值,输出是当前点的重建属性值,该模块根据当前点的属性预测值和解码出的属性残差值获得当前点的重建属性值。
9.权利要求8所述的基于新的处理顺序的点云属性解码装置,其特征在于,所述使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值包括:
属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取所述Hilbert序下前序n个解码点作为当前点的属性预测点,n是自然数;
属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值。
10.权利要求8所述的基于新的处理顺序的点云属性解码装置,其特征在于,所述使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值包括:
属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序L个点中n个距离当前点最近的点作为当前点的属性预测点,L是大于0的自然数,n是自然数;
属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值。
11.权利要求8所述的基于新的处理顺序的点云属性解码装置,其特征在于,所述使用Hilbert序下前序解码点重建属性值的加权平均值作为当前点的属性预测值包括:
属性预测点获取模块:该模块输入是已重建的点云,输出是当前点的属性预测点,该模块选取Hilbert序下前序L个点中当前点的共面点和共线点作为当前点的属性预测点,其中共面点是该点所在立方体与当前点所在立方体有一个公共面的点,共线点是指该点所在立方体与当前点所在立方体有一个公共边的点,L是大于0的自然数;
属性预测点赋权模块:该模块输入是属性预测点,输出是带权重的属性预测点,该模块赋予共面点和共线点权重ωpl和ωpo,其中ωpl和ωpo是大于等于0的实数,ωpl大于ωpo;
属性预测值计算模块:该模块输入是带权重的属性预测点,输出是当前点的属性预测值,该模块使用共面点和共线点重建属性值的加权平均值作为当前点的属性预测值。
12.权利要求7所述的基于新的处理顺序的点云属性解码装置,所述的属性解码模块的特征在于包括:
LOD构建模块:该模块的输入是重建的点云几何,输出是构建好的LOD,该模块构建L层细节层次(LODi)i=0,1…L-1,其中,LODi是重建点云的子集, LODL-1为整个重建点云,L是大于0的自然数;
属性预测点获取模块:该模块的输入是构建好的LOD,输出是当前点的属性预测点,该模块获得当前点P的n个属性预测点,令(Ri=LODi-LODi-1)i=1…L-1,R0=LOD0,P点的所述Hilbert码记为H,对于Ri中的点P,从LODi-1中Hilbert码范围在[H1,H2]内的点里面选取n个与点P距离最近的点,将这n个点作为当前点的属性预测点,n是自然数,所述的H1≤H,所述的H2≥H;
属性预测值计算模块:该模块输入是属性预测点,输出是当前点的属性预测值,该模块使用这n个属性预测点重建属性值的加权平均值作为当前点的属性预测值;
属性残差解码模块:该模块输入是码流,输出是属性残差,该模块从码流中解码出当前点的属性残差值;
重建属性值获取模块:该模块输入是属性残差和属性预测值,输出是当前点的重建属性值,该模块根据当前点的属性预测值和解码出的属性残差值获得当前点的重建属性值。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21857586.8A EP4199520A4 (en) | 2020-08-16 | 2021-08-13 | METHOD AND DEVICE FOR ENCODING AND DECODING POINT CLOUD ATTRIBUTES |
US18/021,453 US20230351640A1 (en) | 2020-08-16 | 2021-08-13 | Point cloud attribute encoding and decoding method and device |
PCT/CN2021/112484 WO2022037491A1 (zh) | 2020-08-16 | 2021-08-13 | 一种点云属性编解码方法和装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020108223520 | 2020-08-16 | ||
CN202010822352 | 2020-08-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114079793A CN114079793A (zh) | 2022-02-22 |
CN114079793B true CN114079793B (zh) | 2023-02-28 |
Family
ID=80282864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011063672.9A Active CN114079793B (zh) | 2020-08-16 | 2020-09-30 | 一种基于新的处理顺序的点云属性解码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114079793B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105957142A (zh) * | 2016-04-19 | 2016-09-21 | 南京师范大学 | 一种面向TIN构建的Hilbert排序方法 |
CN110892725A (zh) * | 2017-07-13 | 2020-03-17 | 交互数字Vc控股公司 | 一种用于编码/解码表示3d对象的点云的方法和装置 |
CN111145090A (zh) * | 2019-11-29 | 2020-05-12 | 鹏城实验室 | 一种点云属性编码方法、解码方法、编码设备及解码设备 |
CN111405284A (zh) * | 2020-03-30 | 2020-07-10 | 北京大学深圳研究生院 | 一种基于点云密度的属性预测方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10372728B2 (en) * | 2016-09-16 | 2019-08-06 | Oracle International Corporation | System and method providing a scalable and efficient space filling curve approach to point cloud feature generation |
-
2020
- 2020-09-30 CN CN202011063672.9A patent/CN114079793B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105957142A (zh) * | 2016-04-19 | 2016-09-21 | 南京师范大学 | 一种面向TIN构建的Hilbert排序方法 |
CN110892725A (zh) * | 2017-07-13 | 2020-03-17 | 交互数字Vc控股公司 | 一种用于编码/解码表示3d对象的点云的方法和装置 |
CN111145090A (zh) * | 2019-11-29 | 2020-05-12 | 鹏城实验室 | 一种点云属性编码方法、解码方法、编码设备及解码设备 |
CN111405284A (zh) * | 2020-03-30 | 2020-07-10 | 北京大学深圳研究生院 | 一种基于点云密度的属性预测方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114079793A (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109257604B (zh) | 一种基于tmc3点云编码器的颜色属性编码方法 | |
CN110572655B (zh) | 一种基于邻居权重的参数选取和传递的点云属性编码和解码的方法及设备 | |
WO2022042539A1 (zh) | 一种基于空间顺序的点云分层方法、点云预测方法及设备 | |
CN106846425A (zh) | 一种基于八叉树的散乱点云压缩方法 | |
CN114793484A (zh) | 点云编码方法、点云解码方法、装置及存储介质 | |
WO2020169983A1 (en) | Facial shape representation and generation system and method | |
WO2022037491A1 (zh) | 一种点云属性编解码方法和装置 | |
Pereira et al. | Point cloud coding: A privileged view driven by a classification taxonomy | |
CN116977536A (zh) | 一种基于混合神经辐射场的无边界场景新视角合成方法 | |
CN110097581B (zh) | 基于点云配准icp算法构建k-d树的方法 | |
Fan et al. | Deep geometry post-processing for decompressed point clouds | |
CN114079793B (zh) | 一种基于新的处理顺序的点云属性解码方法和装置 | |
CN109063834B (zh) | 一种基于卷积特征响应图的神经网络剪枝方法 | |
Mohamed et al. | Speeding up fractal image compression by genetic algorithms | |
Huang et al. | Patch-Wise LiDAR Point Cloud Geometry Compression Based on Autoencoder | |
CN113453018B (zh) | 一种点云属性值预测方法和装置 | |
CN110349228B (zh) | 一种数据驱动最小二乘预测的三角网格压缩方法 | |
CN115512077A (zh) | 一种基于多层动态特征点云的隐式三维场景表征方法 | |
Qiu et al. | Rich-information watermarking scheme for 3D models of oblique photography | |
CN113096199A (zh) | 一种基于莫顿码的点云属性预测方法、装置和介质 | |
CN113505801B (zh) | 一种用于超维计算的图像编码方法 | |
Chakrapani et al. | Hybrid genetic-simulated annealing approach for fractal image compression | |
CN116152054B (zh) | 利用时间迭代方式来提高存储量和回忆精度的图像超分辨率方法 | |
WO2021139796A1 (zh) | 莫顿码的构建方法、编码器、解码器、及存储介质 | |
Lu et al. | Dynamically restricted codebook-based vector quantisation scheme for mesh geometry compression |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |