基于混合编码的点云属性编解码方法及装置

文档序号:815513 发布日期:2021-03-26 浏览:13次 >En<

阅读说明:本技术 基于混合编码的点云属性编解码方法及装置 (Point cloud attribute coding and decoding method and device based on hybrid coding ) 是由 张伟 杨付正 代娜 孙泽星 于 2020-12-03 设计创作,主要内容包括:本发明公开了一种基于混合编码的点云属性编解码方法及装置,所述编码方法包括:获取原始点云数据;基于重建几何信息对原始点云数据的属性信息进行空间变换和属性插值预测,得到重构点云属性信息;对重构点云属性信息进行处理,得到待编码信息;根据待编码信息的分布特性,采用不同的编码方式对其进行编码处理,得到属性码流信息。本发明提供的基于混合编码的点云属性编码方法降低了码流大小,提升了编码性能。(The invention discloses a point cloud attribute coding and decoding method and device based on hybrid coding, wherein the coding method comprises the following steps: acquiring original point cloud data; performing spatial transformation and attribute interpolation prediction on attribute information of original point cloud data based on the reconstruction geometric information to obtain reconstructed point cloud attribute information; processing the reconstructed point cloud attribute information to obtain information to be encoded; and according to the distribution characteristics of the information to be coded, coding the information by adopting different coding modes to obtain attribute code stream information. The point cloud attribute coding method based on the hybrid coding reduces the size of a code stream and improves the coding performance.)

基于混合编码的点云属性编解码方法及装置

技术领域

本发明属于三维重建技术领域,具体涉及一种基于混合编码的点云属性编解码方法及装置。

背景技术

点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。点云中的每个点至少具有三维位置信息,根据应用场景的不同,还可能具有色彩、材质或其他信息。通常,点云中的每个点都具有相同数量的附加属性。

点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,因而应用广泛。现有的一些点云数据应用场景,根据数据使用和处理特点的不同,目前主要可归为两大类别:类别一是机器感知点云,例如自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人;类别二是人眼感知点云,例如数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等应用场景。针对以上不同的点云应用场景,其相应的点云表示和压缩的需求也进行了进一步细化。

目前,我国数字音视频编解码标准工作组(AVS,Audio Video coding StandardWorkgroup of China)正在制订面向点云的压缩编码标准。在AVS提供的平台上,点云的几何信息和属性信息是分开进行编解码的。现阶段,属性编码主要针对颜色信息和反射率信息进行,其主要是对输入点云的属性信息经过预测得到预测残差,并对预测残差进行量化后,直接进行熵编码以得到属性码流信息的。

然而,上述方法在进行熵编码时没有考虑到属性预测残差的分布特性,比如对于残差连续为零的状况,若直接进行熵编码,会使编码码流较大,编码效率较低,影响编码性能。

发明内容

为了解决现有技术中存在的上述问题,本发明提供了一种基于混合编码的点云属性编解码方法及装置。本发明要解决的技术问题通过以下技术方案实现:

一种基于混合编码的点云属性编码方法,包括:

获取原始点云数据;

基于重建几何信息对所述原始点云数据的属性信息进行空间变换和属性插值预测,得到重构点云属性信息;

对所述重构点云属性信息进行处理,得到待编码信息;

根据所述待编码信息的分布特性,采用不同的编码方式对其进行编码处理,得到属性码流信息。

在本发明的一个实施例中,对所述重构点云属性信息进行处理,得到待编码信息,包括:

对所述重构点云属性信息进行属性预测处理,得到预测残差;

对所述预测残差进行量化处理,得到量化残差,并将该量化残差作为待编码信息。

在本发明的一个实施例中,根据所述待编码信息的分布特性,采用不同的编码方式对其进行编码处理,得到属性码流信息,包括:

遍历每个点的量化残差,统计所述量化残差连续为零的数目;其中,所述量化残差包括至少一个分量;

若判断该点的当前量化残差不为零,则对所述量化残差连续为零的数目进行熵编码,并在编码后清零该数目,重新进行计数;

对所述当前量化残差进行熵编码;

重复上述步骤,直至完成所有点的量化残差编码,得到属性码流信息。

在本发明的一个实施例中,对所述量化残差连续为零的数目进行熵编码,包括:

根据量化参数确定第一预设值;

若判断所述量化残差连续为零的数目小于第一预设值,则利用第一标志位和第二标志位分别表示该数目的值是否为0或者1,并在该数目为0或者1时,对所述第一标志位和所述第二标志位分别分配第一数量个上下文进行算术编码;

若所述量化残差连续为零的数目小于所述第一预设值,且该数目不为0和1时,对该数目值减去2,并对该数目值减去2之后的值分配第二数量个上下文进行算术编码;

若判断所述量化残差连续为零的数目大于或等于所述第一预设值时,对该数目值减去该第一预设值,并对该数目值减去第一预设值之后的值分配第三数量个上下文进行算术编码。

在本发明的一个实施例中,对所述当前量化残差进行熵编码,包括:

对所述当前量化残差的每个分量依次进行编码,若判断当前量化残差分量为0,则利用上下文对其进行熵编码;

若判断所述当前量化残差分量不为0,则对所述当前量化残差的符号进行旁路编码,并在所述当前量化残差分量的绝对值为1或者2时,利用上下文对其进行熵编码;

若判断所述当前量化残差分量的绝对值大于等于3,则对该分量绝对值减去3,并利用指数哥伦布码对该分量绝对值减去3之后的值进行编码。

在本发明的一个实施例中,所述利用指数哥伦布码对该分量值减去3之后的值进行编码,包括:

若判断当前量化残差为反射率属性信息,则采用K1阶指数哥伦布码对其进行编码;

若判断当前量化残差为颜色属性信息,则采用K2阶指数哥伦布码对其进行编码。

在本发明的一个实施例中,对所述重构点云属性信息进行处理,得到待编码信息,还包括:

对所述重构点云属性信息进行属性变换,得到变换系数,并将量化后的变换系数作为待编码信息;或者

对所述重构点云属性信息进行属性预测处理,得到预测残差,并对所述预测残差进行属性变换,得到变换系数,将量化后的变换系数作为待编码信息。

本发明的另一个实施例还提供了一种基于混合编码的点云属性编码装置,包括:

第一信息获取模块,用于获取原始点云数据;

点云属性重构模块,用于基于重建几何信息对所述原始点云数据的属性信息进行空间变换和属性插值预测,得到重构点云属性信息;

数据处理模块,用于对所述重构点云属性信息进行处理,得到待编码信息;

混合编码模块,用于根据所述待编码信息的分布特性,采用不同的编码方式对其进行编码处理,得到属性码流信息。

本发明的又一个实施例还提供了一种基于混合编码的点云属性解码方法,包括:

获取属性码流信息;

根据不同解码方式对所述属性码流信息依次进行解码,得到解码数据;其中,所述解码数据包括量化后的预测残差或者变换系数;

根据所述解码数据对点云数据进行属性重建,得到重建属性信息;

对所述重建属性信息进行逆空间变换,得到解码的点云属性信息。

本发明的再一个实施例还提供了一种基于混合编码的点云属性解码装置,包括:

第二信息获取模块,用于获取属性码流信息;

混合解码模块,用于根据不同解码方式对所述属性码流信息依次进行解码,得到解码数据;其中,所述解码数据包括量化后的预测残差或者变换系数;

属性重建模块,用于根据所述解码数据对点云数据进行属性重建,得到重建属性信息;

逆空间变换模块,用于对所述重建属性信息进行逆空间变换,得到解码的点云属性信息。

与现有技术相比,本发明的有益效果:

1、本发明提供的点云属性编码方法在进行编码操作时,充分考虑了待编码信息的分布特性,根据不同的分布情况,采用不同的编码方式,在不增加编码复杂度的前提下降低编码码流大小,提升了编码性能;

2、本发明在对预测残差进行编码时,通过统计量化后的预测残差连续为零的数目并对其采用游程编码这种高效编码方法,同时对非零属性残差进行熵编码,从而实现对预测残差的混合编码,整体上提升了编码效率;

3、本发明在对量化后的预测残差连续为零的数目进行编码时,以量化参数作为依据,自适应的设置第一预设值,并据此选择不同的编码方式,使得编码结果与系统参数相适应,从而取得更好的编码效果。

附图说明

图1为本发明实施例提供的一种基于混合编码的点云属性编码方法的流程示意图;

图2为本发明实施例提供的另一种基于混合编码的点云属性编码方法的流程示意图;

图3为本发明实施例提供的一种基于混合编码的点云属性编码装置的结构示意图;

图4为本发明实施例提供的一种基于混合编码的点云属性解码方法的流程示意图;

图5为本发明实施例提供的一种基于混合编码的点云属性解码装置的结构示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

实施例一

请参见图1,图1为本发明实施例提供的一种基于混合编码的点云属性编码方法的流程示意图,包括:

步骤1:获取原始点云数据;

在本实施例中,设获取到的原始点云包含N个点,记为P(i)(i=0,1…N-1),每点对应的原始属性值为An,n=0,1,...N-1。

步骤2:基于重建几何信息对所述原始点云数据的属性信息进行空间变换和属性插值预测,得到重构点云属性信息。

一般而言,在进行属性编码时,通常采用有损编码模式,也即有损压缩。因此,需要将点云数据的颜色信息从RGB颜色空间转换到亮度和色度颜色空间。

具体地,基于重建几何信息将原始点云数据的属性信息中的颜色信息从RGB颜色空间转换到亮度和色度(例如YUV)颜色空间。

然后,对点云数据进行属性插值处理,使得未编码的属性信息与重建的几何信息对应起来,得到重构点云属性信息。

步骤3:对重构点云属性信息进行处理,得到待编码信息。

进一步地,本实施例可以通过对重构点云属性信息进行属性预测处理,得到预测残差;然后对预测残差进行量化处理,得到量化残差,并将该量化残差作为待编码信息。

具体地,设通过属性预测后得到的预测属性值为Bn,n=0,1,…,N-1,将原始属性值An,n=0,1,...N-1与预测属性值进行差分后得到预测残差Xn,n=0,1,…,N-1,然后根据预设的量化参数QP对该预测残差进行量化,并将量化后得到的量化残差作为待编码信息进行熵编码。

步骤4:根据待编码信息的分布特性,采用不同的编码方式对其进行编码处理,得到属性码流信息。

本实施例提供的点云属性编码方法在进行编码操作时,充分考虑了待编码信息的分布特性,根据不同的分布情况,采用不同的编码方式,在不增加编码复杂度的前提下降低编码码流大小,提升了编码性能。

下面以量化后的预测残差,也即量化残差作为待编码信息进行详细说明。请参见图2,图2为本发明实施例提供的另一种基于混合编码的点云属性编码方法的流程示意图,其中,run_length表示量化残差连续为零的数目,residual表示量化残差,delta表示残差分量。

具体地,步骤4包括:

41)遍历每个点的量化残差,统计量化残差连续为零的数目;其中,所述量化残差包括至少一个分量。

由于现有的点云属性编码主要是针对反射率信息和颜色进行的,因此,对于量化残差,其可以是反射率的量化残差,也可以是颜色属性的量化残差。对于反射率的量化残差,其包括一个分量,对于颜色属性的量化残差,其可能包括三个分量,例如Y、U、V分量。

需要说明的是,对于具有多个分量的颜色属性残差,其多个分量均为零,才视为该量化残差为零。

遍历每个点的量化残差,判断其是否为零,并通过变量run_length统计其数目。

42)若判断该点的当前量化残差不为零,则对量化残差连续为零的数目进行熵编码,并在编码后清零该数目,重新进行计数。

在本实施例中,若碰到当前量化残差不为零时,也即至少有一个量化残差的分量不为零,则对当前的数目run_length进行编码,具体编码方式如下:

a)根据量化参数确定第一预设值。

具体地,由于采用不同的量化参数QP进行量化得到的残差其连续为零的数目分布有所不同。若采用较小的量化参数,则得到的残差连续为零的数目也会较小。相应的,则需要选择较小的第一预设值M作为数目run_length编码方式的选择依据。其中,M大于等于2。

例如,本实施例可在量化参数QP小于32时,设置M为2。在量化参数大于32时,相应的增大M的值。

b)若判断量化残差连续为零的数目小于第一预设值,则利用第一标志位和第二标志位分别表示该数目的值是否为0或者1,并在该数目为0或者1时,对第一标志位和第二标志位分别分配第一数量个上下文进行算术编码。

具体地,本实施例采用isZero和isOne分别表示第一标志位和第二标志位,其分别指示run_length的值是否为0或者1,第一数量可以设置为2。当run_length的值为0或者1时,对isZero和isOne分别分配2个上下文进行算术编码。

c)若量化残差连续为零的数目小于所述第一预设值,且该数目不为0和1时,对该数目值减去2,并对该数目值减去2之后的值分配第二数量个上下文进行算术编码。

具体地,第二数量值可以设置为3,即当run_length的值小于M,且其值不是0,也不是1,则对run_length减去2,然后对(run_length-2)分配3个上下文进行算术编码。

d)若判断量化残差连续为零的数目大于或等于所述第一预设值时,对该数目值减去该第一预设值,并对该数目值减去第一预设值之后的值分配第三数量个上下文进行算术编码。

具体地,第三数量值可以设置为3,即当run_length的值大于M,则对run_length减去M,然后对(run_length-M)分配3个上下文进行算术编码。

对数目run_length编码完成后,将其值置为0,以便重新开始计数。

本实施例在对连续值为零的量化残差数目进行编码时,以量化参数作为依据,自适应的设置第一预设值,并据此选择不同的编码方式,使得编码结果与系统参数相适应,从而取得更好的编码效果。

43)对当前量化残差进行熵编码。

在步骤42)进行run_length熵编码后,还需要对当前不为零的量化残差进行编码,具体如下:

43-1)对当前量化残差的每个分量依次进行编码,若判断当前量化残差分量为0,则利用上下文对其进行熵编码。

43-2)若判断当前量化残差分量不为0,则对当前量化残差的符号进行旁路编码,并在当前量化残差分量的绝对值为1或者2时,利用上下文对其进行熵编码。

具体地,由于预测残差是由原始属性值与预测属性值进行差分后得到的,所以量化残差的值可能为正数、负数或者零。因此,在进行编码前首先要求对其符号进行判断并编码。

优选的,本实施例采用bypass coding(旁路编码)对量化残差的符号进行编码。

在对符号进行编码后,分配一个上下文对残差绝对值是否为1进行熵编码,在属性残差绝对值大于1的情况下同样分配一个上下文对属性残差绝对值是否等于2进行熵编码。

43-3)若判断当前量化残差分量的绝对值大于等于3,则对该分量绝对值减去3,并利用指数哥伦布码对该分量绝对值减去3之后的值进行编码。

具体地,若判断当前量化残差为反射率属性信息,则采用K1阶指数哥伦布码对其进行编码。

可选地,本实施例采用3-阶指数哥伦布码对当前量化残差进行编码。

若判断当前量化残差为颜色属性信息,则采用K2阶指数哥伦布码对其进行编码。

可选地,本实施例采用1-阶指数哥伦布码对当前量化残差进行编码。

44)重复上述步骤41)-43),直至完成所有点的量化残差编码,得到属性码流信息。

需要说明是,在对反射率进行编码时,当对反射率采用的预测方式为自适应选择预测时,由于该方法是将当前待预测点的前N个点的重建属性值存入一个Buffer,然后在这N个点中选择重建属性值与当前待预测点的真实属性值残差最小的点作为预测点,所以需要对预测点在该Buffer中的索引min_idx进行编码,则此时的编码次序为:首先判断量化残差delta是否为0,若delta=0,则对run_length进行累加计数,同时将每一个预测点的索引存储起来。当遇到量化残差非零时,首先对run_length进行编码,然后对被存储的每一个min_idx进行编码,最后对该非零delta进行编码,将run_length置为0重新开始计数。

本实施例在对量化后的预测残差进行编码时,充分考虑了预测残差的分布特性,结合有效的游程编码和K阶指数哥伦布编码方式,具体通过统计预测残差连续为零的数目并对其采用游程编码这种高效编码方法,同时对非零属性残差进行熵编码,从而实现对量化后的预测残差的混合编码,整体上提升了编码效率。

在本发明的另一个实施例中,对所述重构点云属性信息进行处理,得到待编码信息,还包括:

对重构点云属性信息进行属性变换,得到变换系数,并将量化后的变换系数作为待编码信息;或者

对重构点云属性信息进行属性预测处理,得到预测残差,并对预测残差进行属性变换,得到变换系数,将量化后的变换系数作为待编码信息。

在该实施例中,待编码信息为变换系数经过量化后的信息,该变换系数可以是DCT变换或RAHT变换得到的变换系数,具体地编码过程同量化后的预测残差的编码过程,在此不再赘述。

实施例二

在上述实施例一的基础上,本实施例还提供了一种基于混合编码的点云属性编码装置,请参见图3,图3为本发明实施例提供的一种基于混合编码的点云属性编码装置的结构示意图,其包括:

第一信息获取模块11,用于获取原始点云数据;

点云属性重构模块12,用于基于重建几何信息对所述原始点云数据的属性信息进行空间变换和属性插值预测,得到重构点云属性信息;

数据处理模块13,用于对所述重构点云属性信息进行处理,得到待编码信息;

混合编码模块14,用于根据所述待编码信息的分布特性,采用不同的编码方式对其进行编码处理,得到属性码流信息。

本实施例提供的基于混合编码的点云属性编码装置可实现上述实施例一所述的基于混合编码的点云属性编码方法,具体实现过程在此不再赘述。

实施例三

本实施例还提供的了一种基于混合编码的点云属性解码方法,请参见图4,图4为本发明实施例提供的一种基于混合编码的点云属性解码方法的流程示意图,包括:

步骤一:获取属性码流信息。

具体地,由于在编码阶段,其先对预测残差连续为零的数目run_length进行编码,然后对当前不为0的预测残差进行判断并依次编码的,也即编码得到的属性码流信息是按照run_length和预测残差间隔排列的。因此,相应的在解码阶段,获得的待解码的属性码流信息也是按照此方式进行排列的。

步骤二:根据不同解码方式对属性码流信息依次进行解码,得到解码数据;其中,所述解码数据包括量化后的预测残差或者变换系数。

具体地,当获取到属性码流信息之后,即可根据码流顺序判断出某一段二进制码是run_length编码还是量化后的预测残差编码,从而进一步得到不同的编码方式以及相应的解码方式。

例如,对于量化后的预测残差编码,若某位编码为0、1或者2,说明在编码阶段是采用算术编码直接进行编码的,则对应的直接采用算数解码方式,即直接返回残差0、1或者2。若某位编码不为0、1或者2,则说明其编码阶段采用的是指数哥伦布编码方式,然后根据头信息具体得到该编码是对颜色属性进行编码的还是对反射率进行编码的,若是对颜色属性进行编码的,则采取与编码阶段对应的1-阶指数哥伦布码进行解码,若是对反射率属性,则采取对应的3-阶指数哥伦布码进行解码。然后根据不同的解码方式,对属性码流信息分段进行解码,直至完成整个属性码流信息解码操作,得到解码数据。

由于在编码阶段采用的待编码信息可以是量化后的预测残差或者变换系数,相应的,在解码阶段,得到的解码数据也可以是量化后的预测残差及其残差连续为零的数目run_length或者变换系数及其对应的run_length。

步骤三:根据解码数据对点云数据进行属性重建,得到重建属性信息。

首先,对解码得到的量化后的预测残差或者变换系数进行反量化处理,得到预测残差或者变换系数。

然后根据预测残差或者变换系数对点云数据进行属性预测,或者属性变换,得到重建的属性信息。

步骤四:对重建属性信息进行逆空间变换,得到解码的点云属性信息。

对重建的属性信息进行逆空间变换,将其从YUV空间转换至RGB空间,至此,完成点云属性解码。

实施例四

在上述实施例三的基础上,本实施例还提供了一种基于混合编码的点云属性解码装置,请参见图5,图5为本发明实施例提供的一种基于混合编码的点云属性解码装置的结构示意图,其包括:

第二信息获取模块21,用于获取属性码流信息;

混合解码模块22,用于根据不同解码方式对所述属性码流信息依次进行解码,得到解码数据;其中,所述解码数据包括量化后的预测残差或者变换系数;

属性重建模块23,用于根据所述解码数据对点云数据进行属性重建,得到重建属性信息;

逆空间变换模块24,用于对所述重建属性信息进行逆空间变换,得到解码的点云属性信息。

本实施例提供的基于混合编码的点云属性解码装置可实现上述实施例一所述的基于混合编码的点云属性解码方法,具体实现过程在此不再赘述。

实施例五

为了进一步说明上述实施例一的有益效果,本实施例将上述实施例一提供的基于混合编码的点云属性编码方法在在AVS平台上对部分属性信息为颜色的序列在C2(几何无损,属性有损)条件下进行测试,其结果如下表所示:

其中,Luma表示明亮度,Chroma Cb和Chroma Cr表示色度,参数BD-rate表示性能。

从上表可以看出,所有序列的BD-rate均为负值,而BD-rate为负时表示性能变好,在此基础上BD-rate的绝对值越大,则性能的增益越大。由此说明本发明提供的基于混合编码的点云属性编码方法的BD-rate有较为明显的提升,说明其编码性能得到了提升。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种虚拟现实的测量和显示方法、装置、以及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类