掌桥专利:专业的专利平台
掌桥专利
首页

点云属性编码解码方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:58:30


点云属性编码解码方法、装置、电子设备及存储介质

技术领域

本申请涉及点云数据处理技术领域,尤其涉及一种点云属性编码解码方法、装置、电子设备及存储介质。

背景技术

现有点云属性编码技术主要针对单维属性,对于多维属性,现有技术将多维属性中的每个单维属性独立处理,独立处理的过程中存在几何信息重复计算步骤,因而增加了编解码所需时间和运算资源,也没有考虑多维属性间的属性相关性。因此,如何提高点云多维属性的编解码效率,成为了亟待解决的技术问题。

发明内容

本申请实施例的主要目的在于提出一种点云属性编码解码方法、装置、电子设备及存储介质,旨在提高点云属性的编解码效率。

为实现上述目的,本申请实施例的第一方面提出了一种点云属性编码方法,包括:

获取待编码点云,所述待编码点云包括多维属性;

对所述待编码点云的多维属性进行属性维度分组,得到属性维度分组和属性维度分组指示信息;

根据多个属性维度间的共用和/或相关信息对所述属性维度分组内的单维属性进行编码计算,得到目标编码属性系数;

对所述属性维度分组指示信息进行熵编码,并根据预设顺序对所述目标编码属性系数进行熵编码,得到点云码流。

在一些实施例,所述属性维度分组指示信息,包括以下任意一种:

将所述属性维度分组内的单维属性维度个数,设置为所述属性维度分组指示信息;

或,将所述单维属性所属的属性维度分组编号,设置为所述属性维度分组指示信息。

在一些实施例,所述待编码点云包括几何信息,所述根据多个属性维度间的共用和/或相关信息对所述属性维度分组内的单维属性进行编码计算,得到目标编码属性系数,包括以下任意一种:

依次获取一个或若干个点的一组所述属性维度分组内的单维属性;通过共用几何信息的计算结果对一组所述属性维度分组内的单维属性进行编码计算,得到所述目标编码属性系数;

和/或,依次获取一个或若干个点的一组所述属性维度分组内的单维属性;对一组所述属性维度分组内的单维属性进行编码计算,得到一组编码属性系数;对一组所述编码属性系数进行属性间去相关计算,得到所述目标编码属性系数。

在一些实施例,所述预设顺序包括以下任意一种:

将属性维度的排列顺序设置为所述预设顺序的第一顺序,将点云中的点的排列顺序设置为所述预设顺序的第二顺序;

或,将所述点云中的点的排列顺序设置为所述第一顺序,将所述属性维度的排列顺序设置为所述第二顺序;

或,将所述点云中的点按点数进行分组得到点数分组,将所述点数分组内的点的排列顺序设置为所述第一顺序,将所述属性维度的排列顺序设置为所述第二顺序,将点数分组的顺序设置为所述设定顺序的第三顺序;

或,将所述点云中的点按点数进行分组得到点数分组,对所述点数分组内的点的属性系数依据动态范围进行重排序,得到属性系数重排序,将所述属性系数重排序设置为所述第一顺序,将所述点数分组的顺序设置为所述第二顺序。

为实现上述目的,本申请实施例的第二方面提出了一种点云属性解码方法,包括:

获取点云码流;

解码所述点云码流得到属性维度分组指示信息,根据所述属性维度分组指示信息和预设顺序对所述点云码流进行熵解码,得到一组熵解码属性系数;

根据多个属性维度间的共用和/或相关信息对一组所述熵解码属性系数进行解码计算,得到一组重建点云属性。

在一些实施例,所述根据多个属性维度间的共用和/或相关信息对一组所述熵解码属性系数进行解码计算,得到一组重建点云属性,包括以下任意一种:

依次获取一个或若干个点的一组所述熵解码属性系数;通过共用几何数据的计算结果对一组所述熵解码属性系数进行解码计算,得到一组重建点云属性;

和/或,依次获取一个或若干个点的一组所述熵解码属性系数;对一组所述熵解码属性系数进行属性间逆去相关计算,得到更新的熵解码属性系数;对所述更新的熵解码属性系数进行解码计算,得到一组重建点云属性。

为实现上述目的,本申请实施例的第三方面提出了一种点云属性编码装置,包括:

点云获取模块,用于获取待编码点云,所述待编码点云包括多维属性;

属性分组模块,用于对所述待编码点云的多维属性进行属性维度分组,得到属性维度分组和属性维度分组指示信息;

编码计算模块,用于根据多个属性维度间的共用和/或相关信息对所述属性维度分组内的单维属性进行编码计算,得到目标编码属性系数;

熵编码模块,用于对所述属性维度分组指示信息进行熵编码,并根据预设顺序对所述目标编码属性系数进行熵编码,得到点云码流。

为实现上述目的,本申请实施例的第四方面提出了一种点云属性解码装置,包括:

码流获取模块,用于获取点云码流;

熵解码模块,用于解码所述点云码流得到属性维度分组指示信息,根据所述属性维度分组指示信息和预设顺序对所述点云码流进行熵解码,得到一组熵解码属性系数;

解码计算模块,用于根据多个属性维度间的共用和/或相关信息对一组所述熵解码属性系数进行解码计算,得到一组重建点云属性。

为实现上述目的,本申请实施例的第五方面提出了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面和/或第二方面所述的方法。

为实现上述目的,本申请实施例的第六方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面和/或第二方面所述的方法。

本申请提出的点云属性编码解码方法、装置、电子设备及存储介质,其先获取待编码点云,待编码点云包括多维属性,对多维属性进行属性维度分组,得到属性维度分组和属性维度分组指示信息,根据多个属性维度间的共用和/或相关信息逐一对属性维度分组内的单维属性进行编码计算,得到目标编码属性系数,对属性维度分组指示信息进行熵编码,并根据预设顺序对目标编码属性系数进行熵编码,得到点云码流。通过将待编码点云中的多维属性进行属性维度分组得到属性维度分组和属性维度分组指示信息,根据多个属性维度间的共用和/或相关信息对属性维度分组内的单维属性进行编码计算,得到目标编码属性系数,并对属性维度分组指示信息进行熵编码,并根据预设顺序对目标编码属性系数进行熵编码,得到点云码流,能够提高点云属性的编码效率。

通过获取点云码流,解码得到属性维度分组指示信息,根据属性维度分组指示信息和预设顺序对点云码流进行熵解码,得到一组熵解码属性系数,根据多个属性维度间的共用和/或相关信息逐一对一组熵解码属性系数进行解码计算,得到一组重建点云属性。通过解码点云码流得到属性维度分组指示信息,根据属性维度分组指示信息和预设顺序对点云码流进行熵解码,得到一组熵解码属性系数,根据多个属性维度间的共用和/或相关信息对熵解码属性系数进行解码计算,以重建点云属性,能够提高点云属性的解码效率。

附图说明

图1是本申请实施例提供的点云属性编码方法的流程示意图;

图2-1是本申请实施例提供的一个属性维度分组指示信息示意图;

图2-2是本申请实施例提供的另一属性维度分组指示信息示意图;

图2-3是本申请实施例提供的又一属性维度分组指示信息示意图;

图3-1是本申请实施例提供的一个预设顺序示意图;

图3-2是本申请实施例提供的另一预设顺序示意图;

图3-3是本申请实施例提供的又一预设顺序示意图;

图3-4是本申请实施例提供的又一预设顺序示意图;

图4是本申请实施例提供的点云属性解码方法的流程示意图;

图5-1是本申请实施例提供的又一预设顺序示意图;

图5-2是本申请实施例提供的又一预设顺序示意图;

图5-3是本申请实施例提供的又一预设顺序示意图;

图5-4是本申请实施例提供的又一预设顺序示意图;

图6是本申请实施例提供的点云属性编码装置的结构示意图;

图7是本申请实施例提供的点云属性解码装置的结构示意图;

图8是本申请实施例提供的电子设备的硬件结构示意图。

附图标记说明:

点云获取模块601、属性分组模块602、编码计算模块603、熵编码模块604;

码流获取模块701、熵解码模块702、解码计算模块703。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

目前,现有点云属性编码技术主要针对单维属性,对于多维属性,现有技术将多维属性中的每个属性独立处理,在独立处理的过程中存在几何重复计算步骤,进而增加编解码所需时间和运算资源,也没有利用多维属性间的属性相关性。因此,如何提高点云属性的编解码效率,成为了亟待解决的技术问题。

基于此,本申请实施例提供了一种点云属性编码解码方法、装置、电子设备及存储介质,旨在提高点云属性的编解码效率。

本申请实施例提供的方法和装置、电子设备及存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中提供的方法。

本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据用户信息、用户行为数据,用户历史数据以及用户位置信息等与用户身份或特性相关的数据进行相关处理时,都会先获得用户的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取用户的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的用户相关数据。

图1是本申请实施例提供的点云属性编码方法的一个可选的流程示意图,图1中的方法可以包括但不限于包括步骤S101至步骤S104。

步骤S101,获取待编码点云,待编码点云包括多维属性;

步骤S102,对待编码点云的多维属性进行属性维度分组,得到属性维度分组和属性维度分组指示信息;

步骤S103,根据多个属性维度间的共用和/或相关信息对属性维度分组内的单维属性进行编码计算,得到目标编码属性系数;

步骤S104,对属性维度分组指示信息进行熵编码,并根据预设顺序对目标编码属性系数进行熵编码,得到点云码流。

本申请实施例所示意的步骤S101至步骤S104,通过获取待编码点云,其中,待编码点云包括多维属性,对多维属性数据按维度进行分组,得到一个或多个属性维度分组,和属性维度分组指示信息,根据多个属性维度间的共用和/或相关信息逐一对属性维度分组内的单维属性进行编码计算,得到目标编码属性系数,对属性维度分组指示信息进行熵编码,并根据预设顺序对目标编码属性系数进行熵编码,得到点云码流。通过将待编码点云中的多维属性按维度分组得到属性维度分组和属性维度分组指示信息,根据多个属性维度间的共用和/或相关信息对属性维度分组内的单维属性进行编码计算,得到目标编码属性系数,并对属性维度分组指示信息进行熵编码,并根据预设顺序对目标编码属性系数进行熵编码,得到点云码流,能够提高点云属性的编码效率。

在一些实施例的步骤S101中,当前待编码点云包括多维属性,其中,多维属性可以包括例如颜色、一维反射率、高维反射率和天文点云数据等,天文点云数据中的天文观测数据往往维度量级在100~1000。

在一些实施例的步骤S102中,对待编码点云的多维属性数据进行属性维度分组,得到属性维度分组,可以根据待编码点云属性的分布特性分析多维属性之间的相关性,得到相关性分析结果,根据相关性分析结果将相关性较大的多维属性分在一组,得到1个或多个属性维度分组。

和/或,对待编码点云的多维属性数据进行属性维度分组,得到属性维度分组,可以根据待编码点云属性的分布特性分析多维属性之间的数值动态范围,得到动态范围分析结果,根据动态范围分析结果对将动态范围接近的多维属性分在一组,得到1个或多个属性维度分组。

和/或,对待编码点云的多维属性数据进行属性维度分组,得到属性维度分组,可以根据用户需求,对待编码点云的多维属性进行属性维度分组,得到属性维度分组。需要说明的是,基于待编码点云属性的分布特性和/或用户的应用需求,对所有维度的单维属性进行分组。例如,针对高维反射率属性,通过预处理,分析高维反射率属性中的多维属性间的相关性和数值动态范围,将相关性高的多维属性分在一组或将数值动态范围相近的多维属性分在一组。其中,高维反射率属性的每一维是一个单维属性数据。或者,可以根据用户的需求,对于天文模拟数据,将来自同一物理量(速度,磁场强度等)的多维属性分为一组。

在一些实施例的步骤S102中,对待编码点云的多维属性数据进行属性维度分组,得到属性维度分组指示信息,可以根据属性维度分组内的单维属性维度个数进行设置,得到属性维度分组指示信息;或者,根据单维属性所属的属性维度分组编号进行设置,得到属性维度分组指示信息。属性维度分组指示信息用以指示单维属性所属的属性维度分组。

例如,根据属性维度分组内的单维属性维度个数进行设置,得到属性维度分组指示信息。待分组的属性维度为N,将N维单维属性分成M组,属性维度分组指示信息可以表示为数组A:[a1,a2…aM],其中a1+a2+…+aM=N,am表示第m个属性维度分组有am维单维属性。具体的,按照属性数据排列顺序,编号1至a1的单维属性属于第1属性维度分组,a1+1至a1+a2编号的单维属性属于第2属性维度分组,依次类推。如图2-1,具体的,按照属性维度排列顺序,设N=15,15维单维属性维度编号为1至15,属性维度分组指示信息数组A1为:[2,3,5,1,4],表示属性维度编号为1至2的单维属性属于第1属性维度分组,属性维度编号为3至5的单维属性属于第2属性维度分组,依次类推,属性维度编号为12至15的单维属性属于第5属性维度分组。

再例如,根据单维属性所属的属性维度分组编号进行设置,得到属性维度分组指示信息。待分组的属性维度为N,属性维度分组指示信息可以表示为数组B:[b1,b2,…,bN],bn取值范围为1~M的整数,表示第n个单维属性属于第bn组,其中n取值范围为1~N的整数。如图2-2,具体的,按照属性维度排列顺序,设15维单维属性维度编号为1至15,属性维度分组指示信息数组B1为:[1,1,2,2,2,3,3,3,3,3,4,5,5,5,5],属性维度编号为1至2的单维属性属于第1属性维度分组,属性维度编号为3至5的单维属性属于第2属性维度分组,依次类推,属性维度编号为12至15的单维属性属于第5属性维度分组。或者,如图2-3,设5维单维属性维度编号为1至5,属性维度分组指示信息数组B2为:[1,2,1,2,2],属性维度编号为1和3的单维属性属于第1属性维度分组,属性维度编号2,4,和5的单维属性属于第2属性维度分组。

在一些实施例的步骤S103中,待编码点云包括几何信息,根据多个属性维度间的共用和/或相关信息对属性维度分组内的单维属性进行编码计算,得到目标编码属性系数,可以是,依次获取一个或若干个点的一组属性维度分组内的单维属性,通过共用几何信息的计算结果,对一组属性维度分组内的单维属性进行编码计算,得到目标编码属性系数;或者,依次获取一个或若干个点的一组属性维度分组内的单维属性,对一组属性维度分组内的单维属性进行编码计算,得到一组编码属性系数,对一组编码属性系数进行属性间去相关计算,得到目标编码属性系数。

需要说明的是,在进行编码计算时,对属性维度分组内的多维属性进行几何相关的编码计算,共用几何信息的计算结果,可以避免每个单维属性重复进行几何计算,提升编码效率。基于共用几何信息的计算结果进行编码计算时,属性维度分组内的多维属性可以独立或并行计算。

具体的,在属性预测时,需要确定待编码点的邻居点,并计算邻居点到待编码点的几何距离,基于该几何距离计算属性预测值。对于属性维度分组内的多维属性,可以共用邻居点信息及其邻居点到待解码点的几何距离计算结果。例如,在属性预测时,根据属性维度分组指示信息,待处理的属性维度分组包含G个点,每个点包含H维属性。在邻居点搜索计算时,对于待处理点第g点,在已属性解码重建的点,例如前序的点中,搜索距离待处理的第g点几何距离最近的三个邻居点,P1,P2,P3。对于H维属性,搜索邻居点的计算只需要1次,H维属性搜索邻居点的计算可以共用邻居点搜索结果。在属性预测值计算时,根据邻居点P1,P2,P3,共用基于几何距离的权重信息,计算H维属性的预测值,例如,Ah=(w1xA1h+w2xA2h+w2xA3h)/(w1+w2+w3),其中Ah为待处理点第h维属性预测值,A1h,A2h,A3h为邻居点P1,P2,P3的第h维属性解码重建值,w1,w2,w3为待处理点到邻居点P1,P2,P3的距离的倒数,对于H维属性,w1,w2,w3的计算只需要1次,H维属性预测值的计算可以共用基于几何距离的权重计算结果w1,w2,w3。

具体的,在属性变换时,在一些方法里,可以基于点云中的点的几何构建一维变换组或多层变换树结构,对于属性维度分组内的多维属性,可以共用构建的一维变换组或多层变换树。

例如,在属性变换时,根据属性维度分组指示信息,待处理的属性维度分组包含G个点,每个点包含H维属性。在构建一维变换组时,根据每个点的几何坐标计算排序码,例如莫顿码、希尔伯特码等,按照几何排序码排序,依次比较邻近两点的右移K位后的排序码,比较结果相同的两点,划分为同一个变换分组;或者,在构建一维变换组时,根据每个点的几何坐标计算排序码,例如莫顿码、希尔伯特码等,按照几何排序码排序,依次比较邻近两点的几何距离,将几何距离较小的排序相邻点,划分为同一个变换分组。对于H维属性,以上变换分组的计算步骤只需要1次,分组结果可以共用。在编码计算时,基于变换分组结果,依次获取第h维属性的一组变换分组内的属性值或属性预测残差值,再对这一变换分组内的属性值或属性预测残差值进行DCT变换,获得第h维属性的一组变换分组内的属性编码系数,其中h=1~H。H维属性变换系数的分组计算可以共用一维变换组。

再例如,在属性变换时,根据属性维度分组指示信息,待处理的属性维度分组包含G个点,每个点包含H维属性。在构建多层变换树时,需要根据点的几何坐标信息对G点进行多层结构计算。具体的,自下而上构建L层结构,对于L层结构的第l层,按照节点的排列顺序,依次计算邻近两点的距离,例如欧式距离,如果距离小于阙值,则在第l-1层生成一个节点作为这两点的父节点,这两点坐标连线的中点为父节点的坐标,以此类推,直到第1层。对于H维属性,以上多层结构的计算步骤只需要1次,可以共用。在计算属性编码系数时,基于多层结构,依次处理第h维属性,其中h=1~H,首先自下而上遍历每一层,对多层结构中的每对变换节点进行Haar变换,得到DC系数,再自上而下遍历每一层,对多层结构中的每对变换节点进行Haar变换,得到AC系数,最后将第一层节点的DC系数和所有AC系数作为属性编码系数。

在进行编码计算时,对属性维度分组内的多维属性进行属性相关的编码计算,对一组编码属性系数进行多个维度属性间去相关计算,可以利用多个维度属性间相关性提升属性编码性能。基于多个维度属性间去相关计算进行编码计算时,属性维度分组内的多维属性至少依赖首先编码的一个维度的属性系数,不能完全独立计算。

例如,去相关计算方法1,对一组属性维度分组,经过计算,对于组内一个点的H维属性得到该点的一组编码系数C=[c1,c2,…,cH],可以对组内编码属性系数进行去相关计算,对组内一个点的H维编码属性系数进行二次残差计算得到目标编码属性系数D=[c1,c2-c1,c3-c1,…,cH-c1]=[d1,d2,…,dH]。

再例如,去相关计算方法2,对一组属性维度分组,经过计算,对于组内一个点的H维属性得到该点的一组编码系数C=[c1,c2,…,cH],可以对组内编码属性系数进行去相关计算,对组内一个点的H维编码属性系数进行二次残差计算得到目标编码属性系数D=[c1,c2-c1,c3-c2,…,cH-cH-1]=[d1,d2,…,dH];

再例如,去相关计算方法3,对一组属性维度分组,经过计算,对组内一个点的H维编码属性系数进行H元DCT变换,计算得到目标编码属性系数D=TxC=[dc,ac1,…,acH-1],T为H元DCT变换矩阵。

在一些实施例的步骤103中,根据多个属性维度间的共用和/或相关信息对属性维度分组内的单维属性进行编码计算,得到目标编码属性系数,基于用户需求,还可以对每个属性维度分组设定一个计算模式标志。这样可以基于用户需求,不同分组可以采用不同计算模式。

例如,对于一个N维属性点云,按照单维属性维度排列顺序依次分M组,数组A:[a1,a2…aM]表示属性维度分组情况,其中a1+a2+…+aM=N,am表示第m组属性维度分组有am维单维属性,其中m=1,2,…,M。数组F:[f1,f2,…,fM]表示属性维度分组的计算模式,fm表示第m组属性维度分组的计算模式标志。fm=0表示第m组属性维度分组内的单维属性可以相互独立计算;fm=1表示第m组属性维度分组内的单维属性使用了多个维度属性间去相关计算,不能独立计算。其中,独立计算表示组内的各个单维属性数据独立,可以根据应用需求,单独计算某个单维属性。

再例如:对于一个N维属性点云,按照单维属性维度排列顺序依次分M组,数组A:[a1,a2…aM]表示属性维度分组情况,其中a1+a2+…+aM=N,am表示第m组属性维度分组有am维单维属性,其中m=1~M。数组F:[f1,f2,…,fM]表示属性维度分组的计算模式,fm表示第m组属性维度分组的计算模式。fm=0时表示第m组属性维度分组内的单维属性不使用属性间去相关计算方法,可以相互独立计算;fm=1表示第m组属性维度分组内的单维属性使用去相关计算方法1;fm=2表示第m组属性维度分组内的单维属性使用去相关计算方法2;fm=3表示第m组属性维度分组内的单维属性使用去相关计算方法3。

在一些实施例的步骤103中,根据多个属性维度间的共用和/或相关信息对属性维度分组内的单维属性进行编码计算,得到目标编码属性系数,基于用户需求,还可以对每个属性维度分组内划分的子组设定一个计算模式标志。这样可以基于用户需求,在一组属性维度分组内,可以采用共用几何计算模式,不同子组可以采用不同属性间去相关计算模式。

例如,对于一个N维属性点云,按照单维属性维度排列顺序依次分M组,数组A:[a1,a2…aM]表示属性维度分组情况,其中a1+a2+…+aM=N,am表示第m组属性维度分组有am维单维属性,其中m=1~M。对于第m组属性维度分组,按照单维属性维度排列顺序依次分Jm组,数组Am:[a1m,a2m…aJm]表示第m组属性维度分组内模式分组情况,其中a1m+a2m+…+aJm=am,ajm表示第m组属性维度分组内第j组模式分组有ajm维单维属性,其中j=1~J。数组Fm:[f1m,f2m,…,fJm]表示第m组属性维度分组的计算模式,fjm表示第m组属性维度分组内第j组模式分组的计算模式。fjm=0表示第m组属性维度分组内第j组模式分组内的单维属性不使用属性间去相关计算方法;fjm=1表示第m组属性维度分组内第j组模式分组的单维属性使用去相关计算方法1;fjm=2表示第m组属性维度分组内第j组模式分组的单维属性使用去相关计算方法2;fjm=3表示第m组属性维度分组内第j组模式分组的单维属性使用去相关计算方法3。

在一些实施例的步骤S104中,对属性维度分组指示信息进行熵编码,并根据预设顺序对目标编码属性系数进行熵编码,得到点云码流。例如,可以使用1个熵编码器编码所有维度目标编码属性系数,也可以使用多个熵编码器编码不同的单维属性系数。

在一些实施例的步骤S104中,根据预设顺序对目标编码属性系数进行熵编码,其中,预设顺序可以是,将属性维度的排列顺序设置为预设顺序的第一顺序,将点云中的点的排列顺序设置为预设顺序的第二顺序;或者,将点云中的点的排列顺序设置为预设顺序的第一顺序,将属性维度的排列顺序设置为预设顺序的第二顺序;或者,将点云中的点按点数进行分组得到点数分组,将点数分组内的点的排列顺序设置为预设顺序的第一顺序,将属性维度的排列顺序设置为预设顺序的第二顺序,将点数分组的顺序设置为预设顺序的第三顺序;或者,将点云中的点按点数进行分组得到点数分组,对点数分组内的点的属性系数依据动态范围进行重排序,得到属性系数重排序,将属性系数重排序设置为预设顺序的第一顺序,将点数分组的顺序设置为预设顺序的第二顺序。通过属性维度的排列顺序、点云中的点的排列顺序、点数分组的排列顺序、点数分组内的点的排列顺序和属性系数重排序设置预设顺序,依序按照预设顺序的第一顺序、第二顺序和第三顺序对目标编码系数进行熵编码,可以按照属性相关性较高的顺序作为优先顺序,提升编码性能。

例如,熵编码预设顺序1,根据预设顺序1熵编码目标编码属性系数,其中,预设顺序1可以是,将属性维度的排列顺序设置为预设顺序1的第一顺序,将点云中的点的排列顺序设置为预设顺序1的第二顺序。设待处理的属性维度分组包含G个点,每个点包含H维属性,待处理的属性维度分组中的目标编码属性系数可以表示为矩阵R,矩阵R的大小为GxH。具体的,如图3-1,用于熵编码的预设顺序1为,首先按照属性维度排列顺序排序,再按照点云中的点的排列顺序排序,即[r11,r12,r13,r21,r22,r23,…,r71,r72,r73]。图中线条表示用于熵编码的预设顺序1。

再例如,熵编码预设顺序2,根据预设顺序2熵编码目标编码属性系数,其中,预设顺序2可以是,将点云中的点的排列顺序设置为预设顺序2的第一顺序,将属性维度的排列顺序设置为预设顺序2的第二顺序。设待处理的属性维度分组包含G个点,每个点包含H维属性,待处理的属性维度分组中的目标编码属性系数可以表示为矩阵R,矩阵R的大小为GxH。具体的,如图3-2,用于熵编码的预设顺序2为,首先按照点云中的点的排列顺序排序,再按照属性维度排列顺序排序,即[r11,r21,r31,r41,r51,r61,r71,r12,…,r72,r13,r23,r33,r43,r53,r63,r73]。图中线条表示用于熵编码的预设顺序2。

又例如,熵编码预设顺序3,根据预设顺序3熵编码目标编码属性系数,其中,预设顺序3可以是,将点云中的点按点数进行分组得到点数分组,将点数分组内的点的排列顺序设置为预设顺序3的第一顺序,将属性维度的排列顺序设置为预设顺序3的第二顺序,将点数分组的顺序设置为预设顺序3的第三顺序。设待处理的属性维度分组中的目标编码属性系数包含G个点,每个点包含H维属性,待处理的属性维度分组中的目标编码属性系数可以表示为矩阵R,矩阵R的大小为GxH。具体的,如图3-3,用于熵编码的预设顺序3为,将点云中的点按点数分组,将点数分组内的点的排列顺序设置为第一顺序,将属性维度的排列顺序设置为第二顺序,将点数分组的顺序设置为第三顺序,即[r11,r21,r12,r22,r13,r23,r31,r41,r51,r32,r42,r52,r33,r43,r53,…]。图中线条表示用于熵编码的预设顺序3。

又例如,熵编码预设顺序4,根据预设顺序4熵编码目标编码属性系数,其中,预设顺序4可以是,将点云中的点按点数进行分组得到点数分组,对点数分组内的点的属性系数依据动态范围进行重排序,得到属性系数重排序,将属性系数重排序设置为预设顺序4的第一顺序,将点数分组的顺序设置为预设顺序4的第二顺序。设待处理的属性维度分组中的目标编码属性系数包含G个点,每个点包含H维属性,待处理的属性维度分组中的目标编码属性系数可以表示为矩阵R,矩阵R的大小为GxH。具体的,如图3-4,矩阵R内每一行的元素经H元DCT变换,得到一个dc系数和H-1个ac系数,对属性系数依据动态范围进行重排序,将动态范围大的dc系数排列在一起,将动态范围小的ac系数排列在一起,一种属性系数的排序为[dc11,dc21,ac12,ac13,ac22,ac23,ac32,ac33,ac42,ac43,ac52,ac53,dc31,dc41,dc51,dc61,dc71,ac62,ac63,…]。图中线条表示用于熵编码的预设顺序4。

在一些实施例的步骤104中,根据预设顺序对目标编码属性系数进行熵编码,基于用户需求,还可以对每个属性维度分组设定一个预设顺序标志。这样可以基于用户需求,不同分组可以采用不同预设顺序。

例如,对于一个N维属性点云,按照单维属性维度排列顺序依次分M组,数组A:[a1,a2…aM]表示属性维度分组情况,其中a1+a2+…+aM=N,am表示第m组属性维度分组有am维单维属性,其中m=1~M。数组S:[s1,s2,…,sM]表示属性维度分组的预设顺序,sm表示第m组属性维度分组的预设顺序标志。sm=0表示第m组属性维度分组的预设顺序为预设顺序1;sm=1表示第m组属性维度分组的预设顺序为预设顺序2;sm=2表示第m组属性维度分组的预设顺序为预设顺序3;sm=3表示第m组属性维度分组的预设顺序为预设顺序4。

在一些实施例的步骤104中,对属性维度分组指示信息进行熵编码后,还可以包括:对计算模式标志信息进行熵编码;和/或,对预设顺序标志信息进行熵编码。

图4是本申请实施例提供的点云属性解码方法的一个可选的流程示意图,图4中的方法可以包括但不限于包括步骤S401至步骤S404:

步骤S401,获取点云码流;

步骤S402,解码点云码流得到属性维度分组指示信息,根据属性维度分组指示信息和预设顺序对点云码流进行熵解码,得到一组熵解码属性系数;

步骤S403,根据多个属性维度间的共用和/或相关信息对一组熵解码属性系数进行解码计算,得到一组重建点云属性。

本申请实施例所示意的步骤S401至步骤S403,通过获取点云码流,对点云码流解码,得到属性维度分组指示信息,根据属性维度分组指示信息和预设顺序对点云码流进行熵解码,得到一组熵解码属性系数,根据多个属性维度间的共用和/或相关信息对一组熵解码属性系数进行解码计算,得到一组重建点云属性。通过解码点云码流得到属性维度分组指示信息,根据属性维度分组指示信息和预设顺序对点云码流进行熵解码,得到一组熵解码属性系数,根据多个属性维度间的共用和/或相关信息对熵解码属性系数进行解码计算,以重建点云属性,能够提高点云属性的解码效率。

在一些实施例的步骤S402中,从点云码流中解码得到属性维度分组指示信息,属性维度分组指示信息可以是属性维度分组内的单维属性维度个数;或者,属性维度分组指示信息可以是单维属性所属的属性维度分组编号。属性维度分组指示信息用以指示单维属性所属的属性维度分组。

例如,属性维度分组指示信息可以是属性维度分组内的单维属性维度个数。待分组的属性维度为N,将N维单维属性分成M组,属性维度分组指示信息可以表示为数组A:[a1,a2…aM],其中a1+a2+…+aM=N,am表示第m个属性维度分组有am维单维属性。具体的,按照属性数据排列顺序,编号1至a1的单维属性属于第1属性维度分组,a1+1至a1+a2编号的单维属性属于第2属性维度分组,依次类推。作为举例,具体的,属性维度分组指示信息数组A:[2,3,5,1,4],表示属性维度编号为1至2的单维属性属于第1属性维度分组,属性维度编号为3至5的单维属性属于第2属性维度分组,依次类推,属性维度编号为12至15的单维属性属于第5属性维度分组。

再例如,属性维度分组指示信息可以是单维属性所属的属性维度分组编号。待分组的属性维度为N,属性维度分组指示信息可以表示为数组B:[b1,b2,…,bN],bn取值范围为1~M的整数,表示第n个单维属性属于第bn组。作为举例,具体的,属性维度分组指示信息数组B1:[1,1,2,2,2,3,3,3,3,3,4,5,5,5,5],表示属性维度编号为1至2的单维属性属于第1属性维度分组,属性维度编号为3至5的单维属性属于第2属性维度分组,依次类推,属性维度编号为12至15的单维属性属于第5属性维度分组。再作为举例,属性维度分组指示信息数组B2:[1,2,1,2,2],表示属性维度编号为1和3的单维属性属于第1属性维度分组,属性维度编号2,4,和5的单维属性属于第2属性维度分组。

在一些实施例的步骤S402中,根据属性维度分组指示信息和预设顺序对点云码流进行熵解码,得到一组熵解码属性系数,其中,预设顺序可以是,将属性维度的排列顺序设置为预设顺序的第一顺序,将点云中的点的排列顺序设置为预设顺序的第二顺序;或者,将点云中的点的排列顺序设置为预设顺序的第一顺序,预设顺序的将属性维度的排列顺序设置为预设顺序的第二顺序;或者,将点云中的点按点数进行分组得到点数分组,将点数分组内的点的排列顺序设置为预设顺序的第一顺序,将属性维度的排列顺序设置为预设顺序的第二顺序,将点数分组的顺序设置为预设顺序的第三顺序;或者,将点云中的点按点数进行分组得到点数分组,对点数分组内的点的属性系数依据动态范围进行重排序,得到属性系数重排序,将属性系数重排序设置为预设顺序的第一顺序,将点数分组的顺序设置为预设顺序的第二顺序。通过属性维度的排列顺序、点云中的点的排列顺序、点数分组的排列顺序、点数分组内的点的排列顺序和属性系数重排序设置预设顺序,依序按照预设顺序的第一顺序、第二顺序、第三顺序对点云码流进行熵解码,得到一组熵解码属性系数,可以按照属性相关性较高的顺序作为优先顺序,提升解码性能。

例如,熵解码预设顺序1,根据属性维度分组指示信息和预设顺序1对点云码流进行熵解码,得到一组熵解码属性系数,其中,预设顺序1可以是,将属性维度的排列顺序设置为预设顺序1的第一顺序,将点云中的点的排列顺序设置为预设顺序1的第二顺序。假设,根据属性维度分组指示信息,待处理的属性维度分组包含G个点,每个点包含H维属性,将熵解码得到的GxH个属性系数[c1,c2,…,cGH-1,cGH],其中cGH表示第GxH个系数,首先按照属性维度排列顺序排序,再按照点云中的点的排列顺序排序,得到一组熵解码属性系数,表示为矩阵R,矩阵R的大小为GxH。矩阵元素排列顺序如图5-1所示。

再例如,熵解码预设顺序2,根据属性维度分组指示信息和预设顺序2对点云码流进行熵解码,得到一组熵解码属性系数,其中,预设顺序2可以是,将点云中的点的排列顺序设置为预设顺序2的第一顺序,将属性维度的排列顺序设置为预设顺序2的第二顺序。假设,根据属性维度分组指示信息,待处理的属性维度分组包含G个点,每个点包含H维属性,将熵解码得到的GxH个属性系数[c1,c2,…,cGH-1,cGH],其中cGH表示第GxH个系数,首先按照点云中的点的排列顺序排序,再按照属性维度排列顺序排序,得到一组熵解码属性系数,表示为矩阵R,矩阵R的大小为GxH。矩阵元素排列顺序如图5-2所示,其中cHG表示第HxG个系数,所以cHG即为cGH。

又例如,熵解码预设顺序3,根据属性维度分组指示信息和预设顺序3对点云码流进行熵解码,得到一组熵解码属性系数,其中,预设顺序3可以是,将点云中的点按点数进行分组得到点数分组,将点数分组内的点的排列顺序设置为预设顺序3的第一顺序,将属性维度的排列顺序设置为预设顺序3的第二顺序,将点数分组的顺序设置为预设顺序3的第三顺序。假设,根据属性维度分组指示信息,待处理的属性维度分组包含G个点,每个点包含H维属性,将熵解码得到的GxH个属性系数[c1,c2,…,cGH-1,cGH],其中cGH表示第GxH个系数,首先按照点数分组内的点的排列顺序排序,再按照属性维度的排列顺序排序,再按照点数分组的顺序排序,得到一组熵解码属性系数,表示为矩阵R,矩阵R的大小为GxH,G1+G2+…+Gp=G。矩阵元素排列顺序如图5-3所示,其中cHG表示第HxG个系数,所以cHG即为cGH;cHG1表示第HxG1个系数,cHG1+HG2表示第HxG1+HxG2个系数。

又例如,熵解码预设顺序4,根据属性维度分组指示信息和预设顺序4对点云码流进行熵解码,得到一组熵解码属性系数,其中,预设顺序4可以是,将点云中的点按点数进行分组得到点数分组,对点数分组内的点的属性系数依据动态范围进行重排序,得到属性系数重排序,将属性系数重排序设置为预设顺序4的第一顺序,将点数分组的顺序设置为预设顺序4的第二顺序。假设,根据属性维度分组指示信息,待处理的属性维度分组包含G个点,每个点包含H维属性,将熵解码得到的GxH个属性系数[c1,c2,…,cGH-1,cGH],其中cGH表示第GxH个系数,首先按照点数分组内的点的预设排列顺序排序,再按照点数分组的顺序排序,得到一组熵解码属性系数,表示为矩阵R,矩阵R的大小为GxH,G1+G2+…+Gp=G。例如,p=3时,矩阵元素排列顺序如图5-4所示,其中cHG表示第HxG个系数,所以cHG即为cGH;cHG1表示第HxG1个系数,cHG1+HG2表示第HxG1+HxG2个系数。

在一些实施例的步骤S402中,根据预设顺序对点云码流进行熵解码前,还可以包括解码点云码流得到预设顺序标志信息。预设顺序标志信息可以标识每一组属性维度分组使用的预设顺序。不同分组预设顺序可以不同。

例如,对于一个N维属性,按照单维属性维度排列顺序依次分M组,数组A:[a1,a2…aM]表示属性维度分组情况,其中a1+a2+…+aM=N,am表示第m组属性维度分组有am个单维属性,其中m=1~M。数组S:[s1,s2,…,sM]表示属性维度分组的预设顺序,sm表示第m组属性维度分组的预设顺序标志。sm=0表示第m组属性维度分组的预设顺序为预设顺序1;sm=1表示第m组属性维度分组的预设顺序为预设顺序2;sm=2表示第m组属性维度分组的预设顺序为预设顺序3;sm=3表示第m组属性维度分组的预设顺序为预设顺序4。

在一些实施例的步骤S403中,根据多个属性维度间的共用和/或相关信息对一组熵解码属性系数进行解码计算,得到一组重建点云属性,其中,解码计算可以是,对一组属性维度分组的熵解码属性系数,根据多个属性维度间的共用和/或相关信息进行解码计算,得到一组重建点云属性,可以是,依次获取一个或若干个点的一组属性维度分组内的熵解码属性系数,通过共用几何信息的计算结果,对一组属性维度分组内的单维属性进行解码计算,得到一组重建点云属性;和/或,依次获取一个或若干个点的一组属性维度分组内的熵解码属性系数,对一组熵解码属性系数进行属性间逆去相关计算,得到逆去相关解码属性系数,对一组属性维度分组内的逆去相关解码属性系数进行解码计算,得到一组重建点云属性。

需要说明的是,在进行解码计算时,对一组属性维度分组内的熵解码属性系数进行几何相关的解码计算,共用几何信息的计算结果,可以避免每个单维属性重复进行几何计算,提升解码效率。基于共用几何信息的计算结果进行解码计算时,属性维度分组内的多个单维熵解码属性系数可以独立或并行计算。

具体的,在属性预测时,需要确定待解码点的邻居点,并计算邻居点到待解码点的几何距离,基于该几何距离计算属性预测值。对于属性维度分组内的多个单维熵解码属性系数,可以共用邻居点信息及其邻居点到待解码点的几何距离计算结果。

例如,在属性预测时,根据属性维度分组指示信息,待处理的属性维度分组包含G个点,每个点包含H维属性。在邻居点搜索计算时,对于待处理点第g点,在已属性解码重建的点,例如前序的点中,搜索距离待处理的第g点几何距离最近的三个邻居点,P1,P2,P3。对于H维属性,搜索邻居点的计算只需要1次,H维属性搜索邻居点的计算可以共用邻居点搜索结果。在属性预测值计算时,根据邻居点P1,P2,P3,共用基于几何距离的权重信息,计算H维属性的预测值,例如,Ah=(w1xA1h+w2xA2h+w2xA3h)/(w1+w2+w3),其中Ah为待处理点第h维属性预测值,A1h,A2h,A3h为邻居点P1,P2,P3的第h维属性解码重建值,w1,w2,w3为待处理点到邻居点P1,P2,P3的距离的倒数,对于H维属性,w1,w2,w3的计算只需要1次,H维属性预测值的计算可以共用基于几何距离的权重计算结果w1,w2,w3。

具体的,在属性变换时,在一些方法里,基于点云中的点的几何构建一维变换组或多层变换树结构,对于属性维度分组内的多个单维熵解码属性系数,可以共用构建的一维变换组或多层变换树。

例如,在属性变换时,根据属性维度分组指示信息,待处理的属性维度分组包含G个点,每个点包含H维属性。在确定一维变换组时,根据每个点的几何坐标计算排序码,例如莫顿码、希尔伯特码等,获取右移位数K,按照原始数据点的排列顺序,依次比较邻近两点的右移K位后的排序码,比较结果相同的两点,划分为同一个变换分组;或者,在构建一维变换组时,根据每个点的几何坐标计算排序码,例如莫顿码、希尔伯特码等,按照几何排序码排序,依次比较邻近两点的几何距离,将几何距离较小的排序相邻点,划分为同一个变换分组。对于H维属性,以上变换分组的计算只需要1次,变换分组结果可以共用。

再例如,在属性变换时,根据属性维度分组指示信息,待处理的属性维度分组包含G个点,每个点包含H维属性。在构建多层变换树时,需要根据点的几何坐标信息对G点进行多层结构计算。具体的,自下而上构建L层结构,对于L层结构的第l层,按照节点的排列顺序,依次计算邻近两点的距离,例如欧式距离,如果距离小于阙值,则在第l-1层生成一个节点作为这两点的父节点,这两点坐标连线的中点为父节点的坐标,以此类推,直到第1层。在进行解码计算时,基于多层结构,依次处理第h维属性,其中h=1~H,自上而下遍历每一层,对多层结构中的每对变换节点进行Haar逆变换,得到第h维属性的重建属性值。对于H维属性,以上多层变换树构建的计算步骤只需要1次,多层变换树构建结果可以共用。

需要说明的是,在进行解码计算时,对一组属性维度分组内的多维熵解码属性系数进行属性相关的解码计算,进行多个维度属性系数间逆去相关计算。基于多个维度属性系数间逆去相关计算进行解码计算时,属性维度分组内的多个单维熵解码属性系数至少依赖首先解码的一个维度的属性系数,不能完全独立计算。

例如,逆去相关计算方法1,对于一组属性维度分组内一个点的H维熵解码属性系数D=[d1,d2,…,dH],可以对组内熵解码属性系数进行逆去相关计算。对组内一个点的H维熵解码属性系数进行逆二次残差计算得到逆去相关解码属性系数C=[c1,c2,…,cH]=[d1,d2+d1,d3+d1,…,dH+d1],其中c1=d1。

再例如,逆去相关计算方法2,对于一组属性维度分组内一个点的H维熵解码属性系数D=[d1,d2,…,dH],可以对组内熵解码属性系数进行逆去相关计算。对组内一个点的H维熵解码属性系数进行逆二次残差计算得到逆去相关解码属性系数C=[c1,c2,…,cH]=[d1,d2+c1,d3+c2,…,dH+cH-1],其中c1=d1。

又例如,逆去相关计算方法3,对于一组属性维度分组内一个点的H维熵解码属性系数D=[d1,d2,…,dH]=[dc,ac1,…,acH-1],可以对组内熵解码属性系数进行逆去相关计算。对组内一个点的H维熵解码属性系数进行H元逆DCT变换,计算得到逆去相关解码属性系数C=DxT

在一些实施例的步骤403前,还可以包括解码点云码流得到计算模式标志信息。计算模式标志信息可以标识每一组属性维度分组使用的计算模式。不同属性维度分组计算模式可以不同。

例如,对于一个N维属性,按照单维属性维度排列顺序依次分M组,数组A:[a1,a2…aM]表示属性维度分组情况,其中a1+a2+…+aM=N,am表示第m组属性维度分组有am维单维属性,其中m=1~M。数组F:[f1,f2,…,fM]表示属性维度分组的计算模式,fm表示第m组属性维度分组的计算模式标志。fm=0表示第m组属性维度分组内的单维属性可以相互独立计算;fm=1表示第m组属性维度分组内的单维属性使用了多个维度属性间去相关计算,不能独立计算。其中,独立计算表示组内的各个单维属性数据独立,可以根据应用需求,单独计算某个单维属性。

再例如:对于一个N维属性点云,按照单维属性维度排列顺序依次分M组,数组A:[a1,a2…aM]表示属性维度分组情况,其中a1+a2+…+aM=N,am表示第m组属性维度分组有am维单维属性,其中m=1~M。数组F:[f1,f2,…,fM]表示属性维度分组的计算模式,fm表示第m组属性维度分组的计算模式。fm=0时表示第m组属性维度分组内的单维属性不使用属性间去相关计算方法,可以相互独立计算;fm=1表示第m组属性维度分组内的单维属性使用去相关计算方法1,在进行解码计算时可以使用逆去相关方法1;fm=2表示第m组属性维度分组内的单维属性使用去相关计算方法2,在进行解码计算时可以使用逆去相关方法2;fm=3表示第m组属性维度分组内的单维属性使用去相关计算方法3,在进行解码计算时可以使用逆去相关方法3。

在一些实施例的步骤403前,还可以包括解码点云码流得到属性维度分组内每组模式子组的计算模式标志。属性维度分组内模式分组的计算模式标志信息可以标识属性维度分组内每一组模式分组使用的计算模式。一组属性维度分组内不同模式分组计算模式可以不同。

例如,对于一个N维属性,按照单维属性维度排列顺序依次分M组,数组A:[a1,a2…aM]表示属性维度分组情况,其中a1+a2+…+aM=N,am表示第m组属性维度分组有am维单维属性,其中m=1~M。对于第m组属性维度分组,按照单维属性维度排列顺序依次分Jm组,数组Am:[a1m,a2m…aJm]表示第m组属性维度分组内模式分组情况,其中a1m+a2m+…+aJm=am,ajm表示第m组属性维度分组内第j组模式分组有ajm维单维属性,其中j=1~J。数组Fm:[f1m,f2m,…,fJm]表示第m组属性维度分组的计算模式,fjm表示第m组属性维度分组内第j组模式分组的计算模式。fjm=0表示第m组属性维度分组内第j组模式分组内的单维属性不使用属性间去相关计算方法;fjm=1表示第m组属性维度分组内第j组模式分组的单维属性使用去相关计算方法1,在进行解码计算时可以使用逆去相关方法1;fjm=2表示第m组属性维度分组内第j组模式分组的单维属性使用去相关计算方法2,在进行解码计算时可以使用逆去相关方法2;fjm=3表示第m组属性维度分组内第j组模式分组的单维属性使用去相关计算方法3,在进行解码计算时可以使用逆去相关方法3。

请参阅图6,本申请实施例还提供一种点云属性编码装置,可以实现上述点云属性编码方法,点云属性编码装置应用于编码器,该装置包括:点云获取模块601、属性分组模块602、编码计算模块603和熵编码模块604。

点云获取模块601用于获取待编码点云,其中,待编码点云包括多维属性。属性分组模块602用于对待编码点云的多维属性进行属性维度分组,得到属性维度分组和属性维度分组指示信息。编码计算模块603用于根据多个属性维度间的共用和/或相关信息对属性维度分组内的单维属性进行编码计算,得到目标编码属性系数。熵编码模块604用于对属性维度分组指示信息进行熵编码,并根据预设顺序对目标编码属性系数进行熵编码,得到点云码流。通过将待编码点云中的多维属性按维度分组得到属性维度分组和属性维度分组指示信息,根据多个属性维度间的共用和/或相关信息对属性维度分组内的单维属性进行编码计算,得到目标编码属性系数,并对属性维度分组指示信息进行熵编码,并根据预设顺序对目标编码属性系数进行熵编码,得到点云码流,能够提高点云属性的编码效率。

该点云属性编码装置的具体实施方式与上述点云属性编码方法的具体实施例基本相同,在此不再赘述。

请参阅图7,本申请实施例还提供一种点云属性解码装置,可以实现上述点云属性解码方法,点云属性解码装置应用于解码器,该装置包括:码流获取模块701、熵解码模块702、解码计算模块703。

码流获取模块701用于获取点云码流。熵解码模块702用于解码点云码流得到属性维度分组指示信息,根据属性维度分组指示信息和预设顺序对点云码流进行熵解码,得到一组熵解码属性系数。解码计算模块703根据多个属性维度间的共用和/或相关信息对一组解码属性系数进行解码计算,得到一组重建点云属性。

通过解码点云码流得到属性维度分组指示信息,根据属性维度分组指示信息和预设顺序对点云码流进行熵解码,得到一组熵解码属性系数,根据多个属性维度间的共用和/或相关信息对熵解码属性系数进行解码计算,以重建点云属性,能够提高点云属性的解码效率。

该点云解码装置的具体实施方式与上述点云解码方法的具体实施例基本相同,在此不再赘述。

本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述点云属性编码方法和/或点云属性解码方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。

请参阅图8,图8示意了另一实施例的电子设备的硬件结构,电子设备包括:

处理器801,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;

存储器802,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器802可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器802中,并由处理器801来调用执行本申请实施例的点云属性编码方法和/或点云属性解码方法;

输入/输出接口803,用于实现信息输入及输出;

通信接口804,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;

总线805,在设备的各个组件(例如处理器801、存储器802、输入/输出接口803和通信接口804)之间传输信息;

其中处理器801、存储器802、输入/输出接口803和通信接口804通过总线805实现彼此之间在设备内部的通信连接。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述点云属性编码方法和/或点云属性解码方法。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。

本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。

以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。

相关技术
  • 文本属性字段的匹配方法、装置、电子设备及存储介质
  • 电子设备的显示控制方法、装置、电子设备和存储介质
  • 电子设备控制方法及装置、电子设备及存储介质
  • 数据分布存储方法、装置、存储介质及电子设备
  • 存储清理方法、装置、电子设备及存储介质
  • 自适应点云属性编码的方法、装置、电子设备和存储介质
  • 点云编解码中的属性预测方法、装置、设备及存储介质
技术分类

06120116501609