CN112470469B - 一种用于点云编码、解码的方法和设备 - Google Patents
一种用于点云编码、解码的方法和设备 Download PDFInfo
- Publication number
- CN112470469B CN112470469B CN202080004086.9A CN202080004086A CN112470469B CN 112470469 B CN112470469 B CN 112470469B CN 202080004086 A CN202080004086 A CN 202080004086A CN 112470469 B CN112470469 B CN 112470469B
- Authority
- CN
- China
- Prior art keywords
- identifier
- point cloud
- coding
- bits
- position information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 112
- 241000209094 Oryza Species 0.000 claims description 11
- 235000007164 Oryza sativa Nutrition 0.000 claims description 11
- 235000009566 rice Nutrition 0.000 claims description 11
- 238000000638 solvent extraction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 5
- 239000000523 sample Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 2
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- 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
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供一种用于点云编解码的方法,该方法包括:获取码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息的编码方式;根据所述切换后的编码方式,对所述位置信息的编码比特进行解码。该方法可以增加对点云编码和解码的灵活性,提高对点云编码和解码的效率以及性能。
Description
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本申请涉及编解码领域,并且更为具体地,涉及一种用于点云编码、解码的方法和设备。
背景技术
点云是空间物体或场景的一种表现形式,是由空间中一组无规则分布、表达空间物体或场景的空间结构和表面属性的离散点所构成,一个点云的数据可以包括描述坐标信息的空间坐标,以及进一步包括该位置坐标的属性。为了准确反映空间中的信息,所需离散点的数目是巨大的。为了减少点云存储和传输时所占用的带宽,需要对点云进行编码压缩处理,而如何提高对点云的编解码性能成为一项亟待解决的问题。
发明内容
本申请提供一种用于点云编码、解码的方法和设备,可以增加对点云编码和解码的灵活性,提高对点云编码和解码的效率以及性能。
第一方面,提供一种用于点云编码的方法,包括:
获取码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息编码方式;
根据所述切换后的编码方式,对所述位置信息的编码比特进行解码。
第二方面,提供一种用于点云解码的方法,包括:
生成码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息编码方式;
发送所述码流。
第三方面,提供一种用于点云解码的设备,所述设备包括:存储器和处理器,
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
获取码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息编码方式;
根据所述切换后的编码方式,对所述位置信息的编码比特进行解码。
第四方面,提供一种用于点云编码的设备,所述设备包括:存储器和处理器,
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
生成码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息编码方式,所述点云的位置信息的编码比特是采用所述切换后的编码方式进行编码得到的;
发送所述码流。
第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面所述的方法或上述第二方面所述的方法。
基于上述技术方案,在点云编码或解码过程中增加第一标识符和第二标识符,其中该第一标识符用于指示切换点云的位置信息的编码方式,该第二标识符用于指示切换后的编码方式。这样,在点云编码或解码过程中,可以灵活地根据点云点的数量和分布的变化采用最合适的编码方式对点云进行编码或解码,增加了对点云编码和解码的灵活性,提高对点云编码和解码的效率以及性能。
附图说明
图1是本申请实施例提供的一种现有点云编码流程的示意图;
图2是本申请实施例提供的一种现有点云解码流程的示意图;
图3是本申请实施例提供的一种立方体八叉树划分的示意图;
图4是本申请实施例提供的一种八叉树节点逐层划分的示意图;
图5是本申请实施例提供的一种用于点云编码的方法的流程示意图;
图6是本申请实施例提供的一种用于点云解码的方法的流程示意图;
图7是本申请实施例提供的一种可能的宽度优先的解码方式的示意图;
图8是本申请实施例提供的另一种可能的宽度优先的解码方式的示意图;
图9是本申请实施例提供的点云解码设备的结构示意图;
图10是本申请实施例提供的点云编码设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
应理解,本文中的具体的例子只是为了帮助本领域技术人员更好地理解本申请实施例,而非限制本申请实施例的范围。
还应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还应理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本申请实施例对此并不限定。
除非另有说明,本申请实施例所使用的所有技术和科学术语与本申请的技术领域的技术人员通常理解的含义相同。本申请中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本申请的范围。
为了便于理解本申请实施例提供的技术方案,首先描述本申请实施例涉及的一些概念。
点云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成。为了准确反映空间中的信息,所需离散点的数目是巨大的。为了减少点云存储和传输时所占用的带宽,可以对点云进行编码压缩处理。点云可以由离散点构成,下文将点云中的离散点称为点云点。点云的数据可以包括描述该点云中的点云点的位置坐标的信息,以及进一步可以包括点云点的属性的信息。其中,点云点的位置坐标可以为三维位置坐标(x,y,z)。点云点的属性信息可以包括点云点的反射率和/或颜色等。
为了准确反映空间的信息,点云中包括的点云点的数量通常是较大的。为了减少点云的数据存储和传输时所占用的带宽,需要对点云进行编码压缩处理。以下将结合图1至图2描述如何对点云进行编码和解码处理。
如图1所示,图1是本申请实施例提供的一种现有点云编码流程的示意图,图1所示的编码过程包括以下步骤中的部分或全部。
在101中,向编码器中输入点云的数据。
其中,点云的数据可以包括几何位置以及属性信息。
在102中,对点云的数据点的位置坐标进行平移和量化。
例如,可以根据位置坐标在三个轴的最大值、最小值之间的差值,以及根据输入参数确定的量化精度,对每个点云点的位置坐标进行量化,将输入的点云点的位置坐标转换为大于等于零的整数坐标。
在103中,对处理后的位置坐标进行编码。
本申请实施例中,可以使用多叉树编码的方式对位置坐标进行编码。其中,所述的多叉树可以是八叉树、四叉树、二叉树等;也可以是其中两种叉树的混合,或是三种叉树的混合。
其中,在进行多叉树编码时,可以在各层,对相应的节点进行多叉树的划分,并利用比特体现该节点的多叉树的划分情况,具体可以是节点划分得到各个子节点中的数据存在情况。
相应地,在进行多叉树解码时,在各层,可以获取对应的比特,根据获取的比特对相应的节点进行多叉树的划分。
在进行多叉树划分时,每层多叉树的划分可以利用当前节点的中心点的坐标进行子节点的划分,通过中心点将当前节点划分为多个子节点,然后可以判断每个子节点内是否存在点云点,对存在点云点的子节点会再进一步进行划分,直至子节点划分至预设大小,例如,可以划分到边长为1的子节点时停止划分。
首先,可以根据多个点云点的位置坐标,比如该点云点的经过几何量化和/或去除重复坐标之后的位置坐标,选择三个方向维度(x,y,z)方向上的位置坐标的最大值和最小值,并根据选定值确定待划分的初始化空间。该初始化空间例如可以是图3所示的立方体盒子。该立方体盒子的边长的取值通常需要满足如下条件:该边长的取值为2的整数次幂,该边长的取值大于或等于,并且最接近多个点云点在三个方向维度上的位置坐标的最大值中的最大值。
在确定初始化空间之后,对该初始化空间进行多层的多叉树划分。以八叉树为例,例如图4所示,图4中黑色方块表示当前子节点内含有点云点,白色方块表示当前子块内不含有点云点。在对节点301进行八叉树划分时,依次判断每个子节点内是否含有点云点,以图4中的第一层为例,第一次划分的八叉树中第三个节302点含有点云点,剩余七个节点不含有点云点,则这样的划分可以用8比特来表示,具体为0010 0000。接着可以对含有点云点的子节点302接着进行划分,即图4中的第二层划分,在第二层中,第三个节点303与第八个节点304内含有点云点,则这次的八叉树划分可以用00100001来表示。接着,可以依次对这两个有点云点的子节点进行划分。
在第三层首先划分左边的子节点303,划分结果如图4中第三层左半部分所示,第一个子节点305和第四个子节点306内含有点云点,则这次的八叉树划分可以用1001 0000进行表示。其次对第二层的第二个有点云点的子节点304进行划分,划分结果如图4中第三层右半部分所示,第二个子节点307和第八个子节点308内含有点云点,则这次八叉树划分可以用0100 0001所表示。后面层的划分与前面描述相似,按照相同方式逐层进行划分。
这样,图4中的划分结果对应的二进制码流即为0010 0000 0010 0001
1001 0000 0100 0001……。当划分到最后一层,即子块的边长为1的时候,此时已经到达八叉树划分的最深位置,即到达了当前八叉树的叶子节点,不需要再进一步划分,这时需要编码当前叶子节点内含有的点云点的数目。当前叶子节点内含有一个点云点时,直接编码一个0进行表示。当前叶子节点内含有不止一个点云点时,可以设当前叶子节点内含有n个点云点,此时会先编码一个1,接着编码数值(n-1)。
在104中,对多叉树编码后得到的码流进行熵编码,得到几何码流。
依次将前面编码表示多叉树划分的二进制比特流逐比特送入编码引擎中进行熵编码,接着将表示叶子节点内含有点云点数目的二进制比特流送入算术编码引擎中进行熵编码。根据上述流程即可以实现对点云的位置坐标的编码。
通过步骤101至步骤104,完成对点云的位置坐标的编码。点云的位置坐标编码与属性信息编码通常是分开进行的。下面,通过步骤105至步骤110,可以完成对点云的属性信息的编码。
在105中,进行多叉树重建。
该步骤用于获取多叉树编码后的位置坐标的顺序,按照位置坐标的顺序所对应的属性信息进行压缩编码。
在106中,对属性信息进行空间转换。
例如,当属性值为颜色时,可以选择进行颜色空间转化。
在107中,进行属性插值。
该步骤为可选的,在位置坐标改变(比如点云点的点数改变或者点云点与点云点之间的距离改变)的情况下,例如进行了去重复点的情况下,才需要进行属性插值,例如当属性值为颜色时,需要进行重上色。
去重复点是导致几何信息改变的一种原因。根据原始的点云点的几何位置和属性信息,以及重构的点云点的几何位置,可以为重构点云点云点计算新的属性值,使得重构的点云点和原始的点云点之间的属性误差最小。
例如,可以采用如下过程:
步骤3、对于原始的点云点中的每个数据点,在重构的点云点中寻找与之距离最近的点云点,对于重构的点云点令U(i)=(Xk(i))k∈{1,...,D(i)}为原始的点云中均以点云点为最近点的点集,其中,D(i)为U(i)中包括的点云点的个数。U(i)可以为空,也可以包括一个或者多个点云点;
步骤4、为每个重构的点云点计算重构的属性信息,其中,若U(i)为空,那么直接将步骤2中得到的属性值Ai *作为重构的属性值赋给/>若U(i)不为空,则为数据点/>重构的属性值为U(i)中的所有数据点的属性均值,计算公式如下:
在108中,进行属性预测。
在进行属性预测时,在一种实现方式中,首先需要基于莫顿码对点云进行重排序,生成可用于属性预测的点云点顺序。根据AVS,在对属性值进行编码时,莫顿码主要基于莫顿查询表进行计算得到,例如,可以采用如下过程:
步骤1、遍历重构的点云,得到当前数据点对应的几何坐标x、y、z;
步骤2、根据几何坐标查询莫顿表,计算当前数据点对应的莫顿码;
步骤3、基于莫顿码对点云进行重排序。
接着,采用例如前项差分预测等方式,对排序后的点云进行属性预测,并根据预测值和原始值得到属性残差。
在109中,对该属性残差进行残差量化。
在110中,对量化后的系数值进行熵编码,得到属性码流。
将属性编码得到的属性值送入算术编码引擎中进行熵编码,最终得到压缩编码后的码流。根据上述流程即可以实现对点云的属性信息的编码。
之后可以将上述编码后的得到的几何码流和属性码流输出到存储器中进行存储,或者可以传送到解码端。
应理解,以上提到的点云点的数据可以包括属性的信息,但应理解,本申请实施例中,点云点的数据也可以不包括属性的信息,仅包括位置坐标的信息。
点云的解码过程为点云的编码过程的逆过程,图4是本申请实施例提供的一种现有点云解码流程的示意图,图4所示的解码过程包括以下步骤中的部分或全部。
在401中,获取待解码的码流。
例如,可以从存储器中获取该码流,或者获取编码端传送的该码流。
在402中,对该码流进行熵解码。
从该步骤中可以分别获得位置坐标对应的码流和属性信息对应的码流。
在403中,进行多叉树重建。
例如,可以先确定点云的初始化空间,其中初始化空间的尺寸可以由编码端写入码流,解码端从码流中获取。然后对初始化空间进行多叉树划分。解码端采用与编码端一致的空间划分方式对初始化空间进行划分。通过划分的多叉树中的多个子节点及其对应的二进制比特流得到点云点的位置坐标。
在404中,对点云点的位置坐标进行逆量化。
在405中,对点云点的位置坐标进行逆坐标平移。
至此可以获得点云点的位置坐标。接着,对点云点的属性信息进行解码。
在406中,对属性信息对应的码流进行逆量化。
在407中,基于位置坐标解码后的位置坐标,进行属性重建。
在408中,进行逆空间变换。
至此,可以获得点云点的属性信息。
将上述解码得到的位置信息和该属性信息合并后,即可得到点云。
应理解,解码过程中的各个步骤的细节,具体可以参考前文针对编码过程的对应部分的描述,此处不再赘述。
随着编码技术的发展,对点云的编码性能的要求越来越高。现有的点云编码方案中对于位置坐标进行多叉树划分编码的过程采用了基于广度优先的顺序进行多叉树的遍历,对存在点云点的多叉树子块再进一步迭代多叉树划分的方案。这种方案,存在较高复杂度,并且在一些只含一个叶子节点的子块的划分表示上存在编码比特的浪费。这样在一定程度上影响了多叉树编码在压缩率这项性能指标上的表现。另外,对位置坐标的多叉树划分过程是基于广度优先的顺序进行多叉树的遍历,这种划分过程是逐层进行,只有当一层划分结束后才可以进行下面一层的划分,这种方案对点云压缩的并行化带来了较大的困难。
本申请实施例针对上述问题提出,在对点云进行压缩编码或解码时,可以实时根据点云点的数量和/或分布的情况切换不同的编码方式,而编码方式之间的切换可以通过第一标识符和第二标识符来指示。通过该方法可以增加点云编码和解码的灵活性,降低点云编码和解码过程中的开销,降低点云编码和解码的复杂度,提高点云编码和解码的性能。
本申请实施例提出的用于点云编码和解码的方法可以分别应用于点云编码设备和点云解码设备,例如光电雷达、激光雷达等设备,该点云编码设备和点云解码设备可以设置在智能终端(如手机、平板电脑等)上。在一些实现方式中,本申请实施例还可应用于飞行器(如无人机)上,在其他实现方式中,本申请实施例还可以应用于其他可移动平台(如无人船、无人汽车、机器人等)上,本申请实施例不做具体限定。
另外,本申请实施例中的点云的多叉树中的节点也可以称为块,相应地,子节点可以称为子块。这里的节点(或块)和子节点(或子块)是相对的概念。例如,对于多叉树划分的某一层而言,该层的一个节点可以是其上面一层或多层的子节点。
下面结合附图对本申请实施例提供的用于点云编码、解码的方法进行示意性说明。本申请实施例提供的点云编码和解码的方法可以应用于各种技术领域,包括但不限于数字音视频编解码技术标准(Audio Video Standard,AVS)技术领域。
具体请参见图5和图6,图5是本申请实施例提供的一种用于点云编码的方法的流程示意图。图5所示的方法500可以应用于前述的点云编码设备。具体地,本申请实施例所述的方法500包括如下步骤。
在510中,生成码流。
其中,该码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特。该第一标识符用于指示切换该点云的位置信息的编码方式,该第二标识符用于指示切换后的该点云的位置信息的编码方式。
在520中,发送该码流。
其中,该码流中的该点云的位置信息的编码比特可以是采用切换后的编码方式进行编码得到的。
图6是本申请实施例提供的一种用于点云解码的方法的流程示意图。点云解码的过程与点云编码的方式相对应。图6所示的方法600可以应用于前述的点云解码设备。具体地,本申请实施例所述的方法600包括如下步骤。
在610中,获取码流。
其中,该码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特。该第一标识符用于指示切换该点云的位置信息的编码方式,该第二标识符用于指示切换后的该点云的位置信息编码方式。
在620中,根据切换后的编码方式,对该位置信息的编码比特进行解码。
可见,本申请实施例中,在码流中增加第一标识符和第二标识符,其中该第一标识符用于指示对点云的位置信息的编码方式的切换,该第二标识符用于指示切换后的编码方式。从而在点云编码或解码过程中,可以灵活地根据点云点的数量和分布的情况,采用最合适的编码方式对点云进行编码或解码,增加了对点云编码和解码的灵活性,提高对点云编码和解码的效率以及性能。
在一种实现方式中,实时点云可以是光探测装置对待探测物体进行光探测例如激光探测所得到。该光探测装置诸如可以为光电雷达、或激光雷达、激光扫描仪等设备。本申请实施例中的编码设备可以集成于光探测装置中。
需要说明的是,该激光雷达是一种感知传感器,可以获得场景的三维信息。其基本原理为主动对被探测对象发射激光脉冲信号,并获得其反射回来的脉冲信号,根据发射信号和接收信号之间的时间差计算被测对象的距离探测器的深度信息;基于激光雷达的已知发射方向,获得被测对象相对激光雷达的角度信息;结合前述深度信息和角度信息得到海量的探测点,称为点云。
本申请实施例中,对点云的编码可以采用多种不同的编码方式。在一种实现方式中,可以为不同编码方式分别编号,不同编码方式对应不同编号。第一标识符指示的是编码方式之间进行了切换,而第二标识符具体指示切换后的编码方式,例如该编码方式对应的编号。举例来说,编号0代表第一种编码方式,编号1代表第二种编码方式,编号2代表第三种编码方式,编号4代表第四种编码方式,……,等等。当需要进行编码方式的切换时,编码端在码流中添加第一标识符以指示编码方式的切换。相应地,解码端获得第一标识符后就可以知道需要切换编码方式,接着就会从第二标识符中获取切换后的编码方式,从而使用切换后的编码方式继续解码。例如,第二标识符为2bit,则上述编号0对应的第一种编码方式可以使用00表示,第二标识符为00;上述编号1对应的第二种编码方式则可以使用01表示,第二标识符为01。
第二标识符的长度可以由需要表示的编码方式的数量,以及对第二标识符进行编码的编码方式决定。本申请实施例中,第二标识符可以采用定长码编码或者变长码编码的方式进行编码。采用定长码编码或者变长码编码的方式进行编码可以简化编码过程并降低编解码的时间开销,以及无需在码流中加入较多的编码信息,从而可以提高压缩率。
其中,定长码的位宽可以由编码端和解码端事先约定,例如将对位宽的规定写入标准中;或者,定长码的位宽可以写入码流中,例如写入码流的几何头信息中,其中几何头信息可以解释为几何位置坐标编码的头信息。举例来说,假设定长码的位宽为3,则通过000-111最多可以表示8种编码方式;假设定长码的位宽为4,则通过0000-1111最多可以表示16种编码方式。
在一种实现方式中,当在码流的头信息中指示定长码的位宽时,第二标识符可以仅用于指示多种编码技术中的特定几种编码技术。例如,假设存在多种编码技术,但是基于某些原因,例如使用频率或者实现代价等,第二标识符可以仅用于指示其中特定的几种编码技术,以特定的两种编码技术为例,分别为第一种编码技术和第二种编码技术。这两种编码技术可以是编码端和解码端约定的例如使用频率最高或者最易实现的两种编码方式。这时,使用1比特就可以指示这两种编码方式,比如第二标识符为0时表示切换至第一种编码技术,第二标识符为1时表示切换至第二种编码技术。解码端根据第二标识符可以确定切换至第一种编码技术还是第二种编码技术。
进一步地,特定几种编码技术可以通过码流指示给编码端,例如在头信息中指示特定编码技术。假设存在八种编码技术,编号依次为0、1、2、3、4、5、6、7,其中,第二标识符用于指示八种编码技术中特定的几种编码技术,以特定的两种编码技术为例,分别为第六种编码技术和第七种编码技术。这时,可以在头信息中指示第二标识符的位宽为1bit,并指示第六种编码技术和第七种编码技术分别对应的编号,假设索引0对应编号为5的第六种编码技术,索引1对应编号为6的第七种编码技术。当编码端在编码该码流时,如果需要切换对点云的位置信息的编码方式,则编码第二标识符为0时表示切换至第六种编码技术,编码第二标识符为1时表示切换至第七种编码技术。解码端从头信息中获取第二标识符的位宽,以及第六种编码技术和第七种编码技术各自对应的索引后,就可以根据该码流中的第二标识符确定切换至第六种编码技术还是第七种编码技术。
变长码编码例如可以是截断莱斯编码、K阶指数哥伦布编码、或者一元码编码等,其中K为0或正整数。
对于截断莱斯编码,假设门限值为cMax,莱斯参数为R,切换后的编码方式对应的编号为Idx。截断莱斯码由前缀码和后缀码串联而成,前缀值P=Idx>>R。若P小于值(cMax>>R),则前缀码由P个1和一个0组成,长度为P+1;若P大于或等于值(cMax>>R),则前缀码由(cMax>>R)个1组成,长度为(cMax>>R)。当切换后的编码方式对应的编号Idx小于cMax时,其后缀值S=Idx-(P<<R)。后缀码为S的二元化串,长度为R。当编号Idx大于或等于cMax时,无后缀码。其中,莱斯码的参数R和cMax等可以由编解码端和解码端事先约定,例如在标准中规定。
对于K阶指数哥伦布编码,指数哥伦布码由前缀和后缀两部分组成,前缀和后缀都依赖于指数哥伦布码的阶数k。切换后的编码方式对应的编号值I的k阶指数哥伦布码,例如可以采用如下步骤生成:
步骤1、将非负整数I以二进制形式表示出来,并去掉最低的k个比特位之后加1;
步骤2、计算留下的比特位数,将此数减一,即是需要增加的前缀零的个数;
步骤3、将步骤1中去掉的最低k个比特位补回比特串尾部。
假设切换后的编码方式对应的编号为4,那么其一阶指数哥伦布编码可以按照如下步骤计算:
步骤1、4的二进制表示为100,去掉最低1个比特位0后变为10,再加1后变为11;
步骤2、11的比特数为2,因此前缀中0的个数为1;
步骤3、在比特串最低比特位补上步骤1中去掉的0,形成的最终码字即为0110。
因此,当对第二标识符采用一阶指数哥伦布编码时,如果切换后的编码方式对应的编号为4,则编码后的第二标识符即为0110。
对于k阶哥伦布码编码,前缀由m个连续的0和一个1构成,后缀由m+k构成,是I-2k(2m-1)的二进制表示。据此即可实现对编码的二值化。
其中,k阶哥伦布码编码的阶数k可以是编码端和解码端事先约定好的,例如在标准中规定。
对于一元码编码,切换后的编码方式对应的编号值I可以被定义为:I-1后面紧跟着1个0,或者I-1后面紧跟着1个1。例如:
编码I-->code;
编码1-->0;
编码2-->10;
编码3-->110;
编码4-->1110。
除了上面介绍的几种方式,还可以采用其他二值化方案对切换后的编码方式对应的编号进行编码。编码了第二标识符后,就可以在需要进行编码方式切换时,切换到第二标识符所指示的编号对应的编码方式上,从而使用切换后的编码方式对点云的位置信息进行编解或解码。
在一种实现方式中,本申请实施例中的点云采用多叉树划分的方式进行位置划分,码流中的该点云的位置信息包括该多叉树的第N层的第一节点中的点云点的位置信息,N为大于或等于1的整数。
当该点云采用多叉树划分的方式进行位置划分时,第一标识符例如可以由多个0组成,其中,0的数量与对该点云进行位置划分所采用的多叉树相关。例如,多叉树为M叉树时,第一标识符中的0的数量等于M,M为正整数。
假设M=8,即第N层是采用八叉树划分的方式得到的,则第一标识符为八比特0,即0000 0000;假设M=4,即第N层是采用四叉树划分的方式得到的,则第一标识符为四比特0,即0000;假设M=2,即第N层是采用二叉树划分的方式得到的,则第一标识符为二比特0,即00。
相应地,在解码端,当进行多叉树解码时,如果是八叉树划分的方式,则当解码到八比特0时进行编码方式的切换;如果是四叉树划分的方式,则当解码到四比特0时进行编码方式的切换;如果是二叉树划分的方式,则当解码到二比特0时进行编码方式的切换;
第一标识符指示编码方式的切换,具体切换到哪种编码方式由第二标识符指示。该点云的多叉树的第N层的第一节点中的点云点的位置信息采用第二标识符指示的编码方式,即切换后的编码方式进行编码。
本申请实施例对第二标识符的位置不做限定。
例如,第二标识符可以位于码流的几何头信息中。该码流中点云的位置信息的编码比特可以位于第一标识符之后。这时,解码端可以从该码流的头信息中获取切换后的编码方式,并在获取第一标识符之后采用切换后的编码方式对该码流中位置信息的编码比特进行解码。
或者,第二标识符可以位于该第一标识符之后,例如位于上述八比特0即00000000之后、四比特0即0000之后、或者2比特0即00之后。在一种实现方式中,该第二标识符可以与该第一标识符相邻。
码流中点云的位置信息的编码比特可以位于第二标识符之后。解码端在根据第一标识符确定编码方式的切换后,可以接着从第二标识符中获取切换后的编码方式,并使用切换后的编码方式对该码流中位置信息的编码比特进行解码。在一种实现方式中,该点云的位置信息的编码比特与该第二标识符相邻。
举例来说,如果第N层是采用八叉树划分的方式得到的,编码端可以先编码第一标识符,即八比特0,接着使用定长码编码或变长码编码第二标识符,即切换后的编码方式对应的编号,然后切换编码方式,并使用切换后的编码方式对点云的位置信息进行编码;如果第N层是采用四叉树划分的方式得到的,编码端可以先编码第一标识符,即四比特0,接着使用定长码编码或变长码编码第二标识符,即切换后的编码方式对应的编号,然后切换编码方式,并使用切换后的编码方式对点云的位置信息进行编码;如果第N层是采用二叉树划分的方式得到的,编码端可以先编码第一标识符,即二比特0,接着使用定长码编码或变长码编码第二标识符,即切换后的编码方式对应的编号,然后切换编码方式,并使用切换后的编码方式对点云的位置信息进行编码。
相应地,在解码端,在进行多叉树解码时,如果是八叉树,当解码到八比特0时,再解码第二标识符,例如根据与编码端约定的位宽进行定长码解码,或者根据与编码端约定的二值化方案的逆二值化过程进行变长码解码,得到切换后的编码方式对应的编号,从而切换到该编号对应的编码方式,并使用切换后的编码方式对点云的位置信息进行解码;如果是四叉树,当解码到四比特0时,再解码第二标识符,得到切换后的编码方式对应的编号,从而切换到该编号对应的编码方式,并使用切换后的编码方式对点云的位置信息进行解码;如果是二叉树,当解码到二比特0时,再解码第二标识符,得到切换后的编码方式对应的编号,从而切换到该编号对应的编码方式,并使用切换后的编码方式对点云的位置信息进行解码。
本申请实施例中的方法可以应于存在多种编码方式的情况下。所述多种编码方式可以是广度优先的编码方式或者深度优先的编码方式,也可以是其他类型的编码方式比如孤立点编码的方式。第二标识符可以指示广度优先的编码方式,也可以指示深度优先的编码方式,也可以指示其他类型的编码方式。例如,假设广度优先的编码方式对应的编号为0,深度优先的编码方式对应的编号为1,孤立点编码的方式对应的编号为2,第二标识符位于第一标识符之后。那么,在第一标识符之后,如果编码编号0,则表示切换至广度优先的编码方式对点云的位置坐标进行编码;如果编码编号1,则表示切换至深度优先的编码方式对点云的位置坐标进行编码;如果编码编号2,则表示切换至孤立点编码方式对点云的位置坐标进行编码。
其中,广度优先的编码方式例如可以是前述针对图4所描述的编码方式。
采用孤立点编码方式对多叉树第N层的第一节点进行编码时,在满足第一节点仅含有一个点云点,且第一节点内的该点云点的待编码莫顿码位数之和大于未到达最小边长方向的数目的二倍时,例如可以首先编码八比特0作为第一标识符,接着编码孤立点编码方式对应的编号作为第二标识符,由于第一节点内仅含有一个点云点,则接着直接编码该点云点的几何坐标对应莫顿码的末编码的比特。具体可以按照x,y,z的顺序依次编码,其中已经达到最小边长的方向不需要编码。
采用深度优先的编码方式对多叉树第N层的第一节点进行编码时,在第一节点中的点云点的数量或者分布满足预设条件时,可以对第一节点中的点云点在该多叉树中各层的节点的索引进行编码。也就是说,在对第一节点进行编码时,第一节点的码流中包含第一节点中的点云点在多叉树中各层的节点的索引。
其中,当第N层是采用八叉树划分得到时,该索引可以为0至7,对应用3比特即000~111表示;当第N层是采用四叉树划分得到时,该索引可以为0至3,对应用2比特即00~11表示;当第N层是采用二叉树划分得到时,该索引可以为0至1,对应用1比特即0~1表示。
例如,其中的一种深度优先的编码方式在满足以下条件时采用:第一节点在第N层之下的最底层的叶子节点的数量小于或等于2;或者,第一节点的全部点云点的数量小于或等于2,且第一节点多叉树划分得到的层数大于或等于2。在一种实现方式中,可以设置指示位用于指示第一节点在某一层中含有点云点的节点的数量为1或2,比如,指示位为0时,用于指示该层中含有点云点的节点的数量为1;指示位为1时,用于指示该层中含有点云点的节点的数量为2。
假设广度优先、深度优先和孤立点编码方式对应的编号分别为编号0、编号1和编号2,采用宽度为2的定长码对编号0、编号1和编号2进行编码,得到的第二标识符分别为00、01、10。以图7为例,在对节点701进行八叉树划分编码时,可以编码第一标识符8比特的0,即00000000,用于表示编码方式的切换,然后编码切换后的编码方式对应的编号,用于表示切换后的编码方式,这里假设为宽度优先的编码方式,即01。接着使用切换后的编码方式对节点701的位置信息进行编码。具体地,切换后的宽度优先的编码方式可以为:添加该指示位0,用于指示第一层有1个节点有点云点,然后再对节点701八叉树划分得到的第一层的第3个子节点702对应的索引2进行编码得到010,然后再添加第二指示位0,用于指示第二层有1个节点有点云点,接着再对第一层的第3个子节点702八叉树划分得到的第二层的第1个子节点703对应的索引0进行编码得到000。因此,采用第二标识符指示的编码方式对节点701进行八叉树划分编码后得到的码流为000000000100100000。
相应地,对于解码端而言,在对第一节点在第N层之下的每一层的码流进行解码时,当解码到用于指示编码方式切换的第一标识符,例如解码到8比特的0即00000000时,接着解码第二标识符即01,获取切换后的宽度优先的编码方式。接着使用切换后的编码方式解码用于指示第一节点在当前层中含有点云点的节点的数量,接着解码当前层含有点云点的子节点的索引,然后解码在当前层之下的一层含有点云点的子节点的索引,直至对第一节点在第N层之下的每一层含有点云点的子节点的索引解码完成为止。
又例如,其中的另一种深度优先的编码方式在满足以下条件时采用:多叉树第N层的第一节点在第N层之下中至少连续Q层中特定节点的分布相同,该特定节点为包含点云点的节点,Q为预设的正整数。其中,第一节点在第N层之下中至少连续Q层中特定节点的分布相同是指,第一节点在第N层之下中至少连续Q层中每层包括点云点的子节点的索引相同。
假设广度优先、深度优先和孤立点编码方式对应的编号分别为编号0、编号1和编号2,采用宽度为2的定长码对编号0、编号1和编号2进行编码,得到的第二标识符分别为00、01、10。以图8为例,八叉树划分得到第0层的节点801包括点云点,对节点801进行八叉树划分得到第1层的第3个子节点802包括点云点、以及第8个子节点803包括点云点,再对第1层的第3个子节点802进行八叉树划分得到第2层的第3个子节点804包括点云点、以及第8个子节点805包括点云点,接着对第1层的第8个子节点803进行八叉树划分得到第2层的第3个子节点806包括点云点、以及第8个子节点807包括点云点。
假设每一层的节点的索引从左到右依次为0至7,由于节点801在第1层和第2层中连续2层的点云点分布相同,即,节点801在第1层的第3个子节点和第8个子节点中包括点云点,以及第1层的第3个子节点在第2层的第3个子节点和第8个子节点中包括点云点,以及第1层的第8个子节点在第2层的第3个子节点和第8个子节点中包括点云点。因此,在对节点801进行八叉树划分编码时,可以首先编码第一标识符8比特的0,即00000000,用于表示编码方式的切换,然后编码切换后的编码方式对应的编号,用于表示切换后的编码方式,这里假设切换至宽度优先的编码方式,即01。然后对具有相同点云分布的层数的3比特索引即000-111进行编码,此处对具有相同点云分布的层数的3比特索进行编码即为对索引2-1=1进行编码得到001。在编码了相同点云分布的层数的索引后,如果到达了叶子节点,则停止编码,如果还没有到达叶子节点,则继续进行八叉树划分。此处在编码了层数索引001之后还没有到达叶子节点,则接着再对节点801八叉树划分得到的第1层的第3个子节点802对应的索引2进行编码得到010,接着再对所述第1层的第8个子节点803对应的索引7进行编码得到111;接着再对所述第1层的第3个子节点802八叉树划分得到的第2层的第3个子节点804对应的索引2进行编码得到010,以及对第1层的第3个子节点802八叉树划分得到的第2层的第8个子节点805对应的索引7进行编码得到111;再对所述第1层的第8个子节点803八叉树划分得到的第2层的第3个子节点806对应的索引2进行编码得到010,以及对所述第1层的第8个子节点803八叉树划分得到的第2层的第8个子节点807对应的索引7进行编码得到111。因此,采用第二标识符指示的编码方式对节点1101进行编码后得到的码流为0000000001001010111010111010111。
相应地,对于解码端而言,在对第一节点在第N层之下的每一层的码流进行解码时,当解码到用于指示编码方式切换的第一标识符,例如解码到8比特的0即00000000时,接着解码第二标识符,获取切换后的编码方式例如宽度优先的编码方式即01,接着使用切换后的编码方式解码第一节点在第N层之下特定节点的分布相同的层数,然后对第一节点在第N层之下每一层的特定节点的索引进行解码。
应理解,广度优先的编码方式中可以存在多种具体的编码方式,深度优先的编码方式中也可以存在多种具体的编码方式。本申请实施例中的第二标识符也可以指示广度优先和深度优先的编码方式中的某种具体的编码方式。
例如,深度优先的编码方式可以包括上述分别针对图7和图8所描述的两种编码方式,这两种编码方式可以对应不同的编号。假设当前使用的编码方式为广度优先的编码方式,当编码至多叉树第N层的第一节点时,如果确定采用深度优先中的第一种编码方式,则在编码第一标识符后,接着编码第一种编码方式对应的编号作为第二标识符,并使用第一种编码方式对第一节点的位置信息进行编码,例如图7所示;如果确定采用深度优先中的第二种编码方式,则在编码第一标识符后,接着编码第二种编码方式对应的编号作为第二标识符,并使用第二种编码方式对第一节点的位置信息进行编码,例如图8所示。
图9是本申请实施例提供的一种点云解码设备的结构示意图,具体的,所述点云解码设备包括:存储器901、处理器902、以及通信接口903。通信接口903可以为有线接口(包括但不限于WAN口)或者无线接口(例如wifi、4G、5G或未来演进的其他通信接口)。
存储器901可以包括易失性存储器(Volatile Memory);存储器901也可以包括非易失性存储器(Non-Volatile Memory);存储器901还可以包括上述种类的存储器的组合。处理器902可以是中央处理器(Central Processing Unit,CPU)。处理器902还可以进一步包括硬件点云解码设备。上述硬件点云解码设备可以是专用集成电路(Application-Specific Integrated Circuit,ASIC),可编程逻辑器件(Programmable Logic Device,PLD)、或者二者的组合。具体例如可以是复杂可编程逻辑器件(Complex ProgrammableLogic Device,CPLD)、现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)、或者其中的任意组合。
在一种实现方式中,存储器901用于存储程序,当程序被执行时所述处理器902可以调用存储器901中存储的程序,用于执行如下步骤:
通过通信接口903获取码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息的编码方式;
根据所述切换后的编码方式,对所述位置信息的编码比特进行解码。
在一种实现方式中,所述第二标识符位于所述第一标识符之后。
在一种实现方式中,所述第二标识符与所述第一标识符相邻。
在一种实现方式中,所述点云的位置信息的编码比特位于所述第二标识符之后。
在一种实现方式中,所述点云的位置信息的编码比特与所述第二标识符相邻。
在一种实现方式中,所述第二标识符位于所述码流的几何头信息中。
在一种实现方式中,所述第二标识符采用定长码编码。
在一种实现方式中,所述定长码的长度为预设值。
在一种实现方式中,所述第二标识符采用变长码编码。
在一种实现方式中,所述变长码编码包括截断莱斯编码、K阶指数哥伦布编码和一元码编码中的任意一种,K为0或者正整数。
在一种实现方式中,所述点云采用多叉树划分的方式进行位置划分,所述点云的位置信息包括所述多叉树的第N层的第一节点中的点云点的位置信息,N为大于或等于1的整数。
在一种实现方式中,所述第一标识符为多个0,其中,0的数量与对所述点云进行位置划分所采用的多叉树相关。
在一种实现方式中,所述多叉树为M叉树,所述第一标识符中0的数量等于所述M,M为正整数。
在一种实现方式中,所述第N层是采用八叉树划分的方式得到的,所述第一标识符为八比特0;或者,所述第N层是采用四叉树划分的方式得到的,所述第一标识符为四比特0;或者,所述第N层是采用二叉树划分的方式得到的,所述第一标识符为二比特0。
在一种实现方式中,所述切换后的编码方式包括广度优先的编码方式、深度优先的编码方式、或者孤立点编码方式。
本申请实施例中,点云解码设备在获取码流中的第一标识符时,可以根据该第一标识符确定编码方式的切换,在解码到第二标识符时,可以根据该第二标识符确定切换后的编码方式,并使用切换后的编码方式对该码流进行解码。这样,在点云编码或解码过程中,可以灵活地根据点云点的数量和分布的变化采用最合适的编码方式对点云进行编码或解码,增加了对点云编码和解码的灵活性,提高对点云编码和解码的效率以及性能。
请参见图10,图10是本申请实施例提供的一种点云编码设备的结构示意图,具体的,所述点云编码设备包括:存储器1001、处理器1002以及通信接口1003。通信接口1003可以为有线接口(包括但不限于WAN口)或者无线接口(例如wifi、4G、5G或未来演进的其他通信接口)。
存储器1001可以包括易失性存储器(Volatile Memory);存储器1001也可以包括非易失性存储器(Non-Volatile Memory);存储器1001还可以包括上述种类的存储器的组合。处理器1002可以是中央处理器(Central Processing Unit,CPU)。处理器1002还可以进一步包括硬件点云编码设备。上述硬件点云编码设备可以是专用集成电路(Application-Specific Integrated Circuit,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)、或者二者的组合。具体例如可以是复杂可编程逻辑器件(Complex ProgrammableLogic Device,CPLD)、现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)、或者其中的任意组合。
在一种实现方式中,存储器1001用于存储程序,当程序被执行时所述处理器1002可以调用存储器1001中存储的程序,用于执行如下步骤:
生成码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息的编码方式,所述点云的位置信息的编码比特是采用所述切换后的编码方式进行编码得到的;
通过通信接口1003发送所述码流。
在一种实现方式中,所述第二标识符位于所述第一标识符之后。
在一种实现方式中,所述第二标识符与所述第一标识符相邻。
在一种实现方式中,所述点云的位置信息的编码比特位于所述第二标识符之后。
在一种实现方式中,所述点云的位置信息的编码比特与所述第二标识符相邻。
在一种实现方式中,所述第二标识符位于所述码流的几何头信息中。
在一种实现方式中,所述第二标识符采用定长码编码。
在一种实现方式中,所述定长码的长度为预设值。
在一种实现方式中,所述第二标识符采用变长码编码。
在一种实现方式中,所述变长码编码包括截断莱斯编码、K阶指数哥伦布编码和一元码编码中的任意一种,K为0或者正整数。
在一种实现方式中,所述点云采用多叉树划分的方式进行位置划分,所述点云的位置信息包括所述多叉树的第N层的第一子块中的点云点的位置信息,N为大于或等于1的整数。
在一种实现方式中,所述第一标识符为多个0,其中,0的数量与对所述点云进行位置划分所采用的多叉树相关。
在一种实现方式中,所述多叉树为M叉树,所述第一标识符中0的数量等于所述M,M为正整数。
在一种实现方式中,所述第N层是采用八叉树划分的方式得到的,所述第一标识符为八比特0;或者,所述第N层是采用四叉树划分的方式得到的,所述第一标识符为四比特0;或者,所述第N层是采用二叉树划分的方式得到的,所述第一标识符为二比特0。
在一种实现方式中,所述切换后的编码方式包括广度优先的编码方式、深度优先的编码方式、或者孤立点编码方式。
本申请实施例中,点云编码设备在切换编码方式进行编码时,在码流中增加第一标识符和第二标识符,其中该第一标识符用于指示编码方式的切换,该第二标识符用于指示切换后的编码方式。这样,在点云编码或解码过程中,可以灵活地根据点云点的数量和分布的变化采用最合适的编码方式对点云进行编码或解码,增加了对点云编码和解码的灵活性,提高对点云编码和解码的效率以及性能。
本申请实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例图5中描述的用于点云编码的方法或者图6中描述的用于点云解码的方法;也可实现图9中所述的点云解码设备,或图10中所述的点云编码设备,在此不再赘述。
所述计算机可读存储介质可以是前述任一项实施例所述的设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、或者随机存储记忆体(RandomAccess Memory,RAM)等。
以上所揭露的仅为本申请部分实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (61)
1.一种用于点云解码的方法,其特征在于,包括:
获取码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息的编码方式;
根据所述切换后的编码方式,对所述位置信息的编码比特进行解码。
2.根据权利要求1所述的方法,其特征在于,所述第二标识符位于所述第一标识符之后。
3.根据权利要求2所述的方法,其特征在于,所述第二标识符与所述第一标识符相邻。
4.根据权利要求2或3所述的方法,其特征在于,所述点云的位置信息的编码比特位于所述第二标识符之后。
5.根据权利要求4所述的方法,其特征在于,所述点云的位置信息的编码比特与所述第二标识符相邻。
6.根据权利要求1所述的方法,其特征在于,所述第二标识符位于所述码流的几何头信息中。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述第二标识符采用定长码编码。
8.根据权利要求7所述的方法,其特征在于,所述定长码的长度为预设值。
9.根据权利要求1至3中任一项所述的方法,其特征在于,所述第二标识符采用变长码编码。
10.根据权利要求9所述的方法,其特征在于,所述变长码编码包括截断莱斯编码、K阶指数哥伦布编码和一元码编码中的任意一种,K为0或者正整数。
11.根据权利要求1至3任一项所述的方法,其特征在于,所述点云采用多叉树划分的方式进行位置划分,所述点云的位置信息包括所述多叉树的第N层的第一节点中的点云点的位置信息,N为大于或等于1的整数。
12.根据权利要求11所述的方法,其特征在于,所述第一标识符为多个0,其中,0的数量与对所述点云进行位置划分所采用的多叉树相关。
13.根据权利要求12所述的方法,其特征在于,所述多叉树为M叉树,所述第一标识符中0的数量等于所述M,M为正整数。
14.根据权利要求13所述的方法,其特征在于,
所述第N层是采用八叉树划分的方式得到的,所述第一标识符为八比特0;或者,
所述第N层是采用四叉树划分的方式得到的,所述第一标识符为四比特0;或者,
所述第N层是采用二叉树划分的方式得到的,所述第一标识符为二比特0。
15.根据权利要求1至3中任一项所述的方法,其特征在于,所述切换后的编码方式包括广度优先的编码方式、深度优先的编码方式、或者孤立点编码方式。
16.一种用于点云编码的方法,其特征在于,包括:
生成码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息的编码方式,所述点云的位置信息的编码比特是采用所述切换后的编码方式进行编码得到的;
发送所述码流。
17.根据权利要求16所述的方法,其特征在于,所述第二标识符位于所述第一标识符之后。
18.根据权利要求17所述的方法,其特征在于,所述第二标识符与所述第一标识符相邻。
19.根据权利要求17或18所述的方法,其特征在于,所述点云的位置信息的编码比特位于所述第二标识符之后。
20.根据权利要求19所述的方法,其特征在于,所述点云的位置信息的编码比特与所述第二标识符相邻。
21.根据权利要求16所述的方法,其特征在于,所述第二标识符位于所述码流的几何头信息中。
22.根据权利要求16至18中任一项所述的方法,其特征在于,所述第二标识符采用定长码编码。
23.根据权利要求22所述的方法,其特征在于,所述定长码的长度为预设值。
24.根据权利要求16至18中任一项所述的方法,其特征在于,所述第二标识符采用变长码编码。
25.根据权利要求24所述的方法,其特征在于,所述变长码编码包括截断莱斯编码、K阶指数哥伦布编码和一元码编码中的任意一种,K为0或者正整数。
26.根据权利要求16至18任一项所述的方法,其特征在于,所述点云采用多叉树划分的方式进行位置划分,所述点云的位置信息包括所述多叉树的第N层的第一子块中的点云点的位置信息,N为大于或等于1的整数。
27.根据权利要求26所述的方法,其特征在于,所述第一标识符为多个0,其中,0的数量与对所述点云进行位置划分所采用的多叉树相关。
28.根据权利要求27所述的方法,其特征在于,所述多叉树为M叉树,所述第一标识符中0的数量等于所述M,M为正整数。
29.根据权利要求28所述的方法,其特征在于,
所述第N层是采用八叉树划分的方式得到的,所述第一标识符为八比特0;或者,
所述第N层是采用四叉树划分的方式得到的,所述第一标识符为四比特0;或者,
所述第N层是采用二叉树划分的方式得到的,所述第一标识符为二比特0。
30.根据权利要求16至18中任一项所述的方法,其特征在于,所述切换后的编码方式包括广度优先的编码方式、深度优先的编码方式、或者孤立点编码方式。
31.一种点云解码设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于调用所述程序,其中,当所述程序被执行时,用于执行以下操作:
获取码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息的编码方式;
根据所述切换后的编码方式,对所述位置信息的编码比特进行解码。
32.根据权利要求31所述的设备,其特征在于,所述第二标识符位于所述第一标识符之后。
33.根据权利要求32所述的设备,其特征在于,所述第二标识符与所述第一标识符相邻。
34.根据权利要求31或32所述的设备,其特征在于,所述点云的位置信息的编码比特位于所述第二标识符之后。
35.根据权利要求34所述的设备,其特征在于,所述点云的位置信息的编码比特与所述第二标识符相邻。
36.根据权利要求31所述的设备,其特征在于,所述第二标识符位于所述码流的几何头信息中。
37.根据权利要求31至33中任一项所述的设备,其特征在于,所述第二标识符采用定长码编码。
38.根据权利要求37所述的设备,其特征在于,所述定长码的长度为预设值。
39.根据权利要求31至33中任一项所述的设备,其特征在于,所述第二标识符采用变长码编码。
40.根据权利要求39所述的设备,其特征在于,所述变长码编码包括截断莱斯编码、K阶指数哥伦布编码和一元码编码中的任意一种,K为0或者正整数。
41.根据权利要求31至33任一项所述的设备,其特征在于,所述点云采用多叉树划分的方式进行位置划分,所述点云的位置信息包括所述多叉树的第N层的第一节点中的点云点的位置信息,N为大于或等于1的整数。
42.根据权利要求41所述的设备,其特征在于,所述第一标识符为多个0,其中,0的数量与对所述点云进行位置划分所采用的多叉树相关。
43.根据权利要求42所述的设备,其特征在于,所述多叉树为M叉树,所述第一标识符中0的数量等于所述M,M为正整数。
44.根据权利要求43所述的设备,其特征在于,
所述第N层是采用八叉树划分的方式得到的,所述第一标识符为八比特0;或者,
所述第N层是采用四叉树划分的方式得到的,所述第一标识符为四比特0;或者,
所述第N层是采用二叉树划分的方式得到的,所述第一标识符为二比特0。
45.根据权利要求31至33中任一项所述的设备,其特征在于,所述切换后的编码方式包括广度优先的编码方式、深度优先的编码方式、或者孤立点编码方式。
46.一种点云编码设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于调用所述程序,其中,当所述程序被执行时,用于执行以下操作:
生成码流,其中,所述码流包括第一标识符、第二标识符、以及点云的位置信息的编码比特,所述第一标识符用于指示切换所述点云的位置信息的编码方式,所述第二标识符用于指示切换后的所述点云的位置信息的编码方式,所述点云的位置信息的编码比特是采用所述切换后的编码方式进行编码得到的;
发送所述码流。
47.根据权利要求46所述的设备,其特征在于,所述第二标识符位于所述第一标识符之后。
48.根据权利要求47所述的设备,其特征在于,所述第二标识符与所述第一标识符相邻。
49.根据权利要求47或48所述的设备,其特征在于,所述点云的位置信息的编码比特位于所述第二标识符之后。
50.根据权利要求49所述的设备,其特征在于,所述点云的位置信息的编码比特与所述第二标识符相邻。
51.根据权利要求46所述的设备,其特征在于,所述第二标识符位于所述码流的几何头信息中。
52.根据权利要求46至48中任一项所述的设备,其特征在于,所述第二标识符采用定长码编码。
53.根据权利要求52所述的设备,其特征在于,所述定长码的长度为预设值。
54.根据权利要求46至48中任一项所述的设备,其特征在于,所述第二标识符采用变长码编码。
55.根据权利要求54所述的设备,其特征在于,所述变长码编码包括截断莱斯编码、K阶指数哥伦布编码和一元码编码中的任意一种,K为0或者正整数。
56.根据权利要求46至48任一项所述的设备,其特征在于,所述点云采用多叉树划分的方式进行位置划分,所述点云的位置信息包括所述多叉树的第N层的第一子块中的点云点的位置信息,N为大于或等于1的整数。
57.根据权利要求56所述的设备,其特征在于,所述第一标识符为多个0,其中,0的数量与对所述点云进行位置划分所采用的多叉树相关。
58.根据权利要求57所述的设备,其特征在于,所述多叉树为M叉树,所述第一标识符中0的数量等于所述M,M为正整数。
59.根据权利要求58所述的设备,其特征在于,
所述第N层是采用八叉树划分的方式得到的,所述第一标识符为八比特0;或者,
所述第N层是采用四叉树划分的方式得到的,所述第一标识符为四比特0;或者,
所述第N层是采用二叉树划分的方式得到的,所述第一标识符为二比特0。
60.根据权利要求46至48中任一项所述的设备,其特征在于,所述切换后的编码方式包括广度优先的编码方式、深度优先的编码方式、或者孤立点编码方式。
61.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至30任一项所述方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/082593 WO2021196029A1 (zh) | 2020-03-31 | 2020-03-31 | 一种用于点云编码、解码的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112470469A CN112470469A (zh) | 2021-03-09 |
CN112470469B true CN112470469B (zh) | 2023-07-07 |
Family
ID=74802666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080004086.9A Active CN112470469B (zh) | 2020-03-31 | 2020-03-31 | 一种用于点云编码、解码的方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112470469B (zh) |
WO (1) | WO2021196029A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117097898A (zh) * | 2021-03-12 | 2023-11-21 | 腾讯科技(深圳)有限公司 | 基于点云属性预测的解码、编码方法、解码器及编码器 |
CN117426093A (zh) * | 2021-06-11 | 2024-01-19 | Oppo广东移动通信有限公司 | 点云编解码方法、装置、点云编解码器及存储介质 |
CN115474064A (zh) * | 2021-06-11 | 2022-12-13 | 维沃移动通信有限公司 | 编码、解码控制方法及装置 |
CN113486276A (zh) * | 2021-08-02 | 2021-10-08 | 北京京东乾石科技有限公司 | 点云压缩、点云渲染方法,装置,设备以及存储介质 |
CN115396647B (zh) * | 2022-08-22 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 一种沉浸媒体的数据处理方法、装置、设备及存储介质 |
CN118175276A (zh) * | 2022-12-09 | 2024-06-11 | 维沃移动通信有限公司 | 点云编码方法、点云解码方法及终端 |
WO2024175011A1 (en) * | 2023-02-21 | 2024-08-29 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for point cloud coding |
CN118678092A (zh) * | 2023-03-17 | 2024-09-20 | 维沃移动通信有限公司 | 编码处理方法、解码处理方法及相关设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11297346B2 (en) * | 2016-05-28 | 2022-04-05 | Microsoft Technology Licensing, Llc | Motion-compensated compression of dynamic voxelized point clouds |
CN108668136A (zh) * | 2017-03-28 | 2018-10-16 | 华为技术有限公司 | 图像编/解码方法、视频编/解码器及视频编解码系统 |
EP3429207A1 (en) * | 2017-07-13 | 2019-01-16 | Thomson Licensing | A method and apparatus for encoding/decoding a colored point cloud representing the geometry and colors of a 3d object |
CN110662087B (zh) * | 2018-06-30 | 2021-05-11 | 华为技术有限公司 | 点云编解码方法和编解码器 |
CN110719497B (zh) * | 2018-07-12 | 2021-06-22 | 华为技术有限公司 | 点云编解码方法和编解码器 |
US11012713B2 (en) * | 2018-07-12 | 2021-05-18 | Apple Inc. | Bit stream structure for compressed point cloud data |
CN111699697B (zh) * | 2019-06-14 | 2023-07-11 | 深圳市大疆创新科技有限公司 | 一种用于点云处理、解码的方法、设备及存储介质 |
-
2020
- 2020-03-31 CN CN202080004086.9A patent/CN112470469B/zh active Active
- 2020-03-31 WO PCT/CN2020/082593 patent/WO2021196029A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN112470469A (zh) | 2021-03-09 |
WO2021196029A1 (zh) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112470469B (zh) | 一种用于点云编码、解码的方法和设备 | |
CN111699697B (zh) | 一种用于点云处理、解码的方法、设备及存储介质 | |
CN111699683B (zh) | 一种点云编码方法、点云解码方法及相关设备 | |
CN111615791B (zh) | 在点云压缩中使用直接编码的方法和设备 | |
CN113632492B (zh) | 一种用于点云处理、解码的方法、设备及存储介质 | |
CN115379190B (zh) | 一种点云处理方法、装置及计算机设备、存储介质 | |
US11935270B2 (en) | Predictive geometry coding in G-PCC | |
CN112449754A (zh) | 一种数据编码、数据解码方法、设备及存储介质 | |
JP6178798B2 (ja) | 終了可能な空間ツリー型位置符号化および復号 | |
CN114095735A (zh) | 一种基于块运动估计和运动补偿的点云几何帧间预测方法 | |
KR20220163951A (ko) | 지오메트리 기반 포인트 클라우드 압축에서 변환을 예측하기 위한 예측자 인덱스 시그널링 | |
US11936909B2 (en) | Prediction method, encoder, decoder, and computer storage medium | |
CN112384950A (zh) | 点云的编解码方法及装置 | |
CA3153825A1 (en) | Methods and devices for tree switching in point cloud compression | |
CN112740702A (zh) | 点云的编解码方法和装置 | |
CN112740707A (zh) | 点云的编解码方法和装置 | |
KR20220164700A (ko) | 지오메트리 기반 포인트 클라우드 압축을 위한 트라이수프 신택스 시그널링 | |
KR102181812B1 (ko) | 3차원 메쉬모델의 압축 및 압축해제 시스템 및 방법 | |
CN112514397A (zh) | 点云的编解码方法和装置 | |
CN115917604A (zh) | 点云解码装置、点云解码方法及程序 | |
WO2020248562A1 (zh) | 一种用于点云处理、解码的方法、设备及存储介质 | |
WO2021046817A1 (zh) | 点云数据的编解码方法、系统和存储介质 | |
CN112384955A (zh) | 三维数据点的编解码方法和装置 | |
CA3203882A1 (en) | Point cloud encoding and decoding method, encoder, decoder and computer storage medium | |
WO2021108970A1 (zh) | 点云处理方法、编码器、解码器及存储介质 |
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 |