编码方法、解码方法和装置与流程

文档序号:18250403发布日期:2019-07-24 09:41阅读:141来源:国知局
编码方法、解码方法和装置与流程
本申请实施例涉及图像处理
技术领域
,尤其涉及一种编码方法、解码方法和装置。
背景技术
:随着计算机技术和三维(ThreeDimensions,3D)传感器技术的不断发展,采集点云数据越来越便捷,采集的数据质量也越来越高,数据规模也越来越大。所谓点云或者点云数据,是指通过测量仪器得到的产品外观表面的点数据集合。面对海量的点云数据,如何有效的对点云数据进行高质量压缩、编码、存储和传输变得非常重要。对点云数据进行处理时,一种常用的处理方法为:首先,对当前帧的点云数据进行分割获得多个点云块(也称为patch)。对多个点云块进行投影形成多个二维图像块。对所有的二维图像块进行打包操作(也称为packing),形成深度图和纹理图(如果点云数据带有颜色信息的话)。然后,对深度图和纹理图进行基于图像或者视频编码的方式进行编码,以及对点云块的边信息进行编码。这种方法充分利用了成熟的编码优势,能够得到很高的编码效率。但是,连续帧的点云数据之间具有很强的相关性。上述方法仅针对每一帧点云数据进行单独处理,导致编码压缩性能的损失。技术实现要素:本申请实施例提供一种编码方法、解码方法和装置,提升了编码压缩性能。第一方面,本申请实施例提供一种编码方法,该方法包括:在当前帧的M个第一点云块中确定X个第一点云块,获取X个第一点云块的边信息和X个第二点云块的边信息,根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值,对X组边信息差值进行编码。通过第一方面提供的编码方法,利用前后两帧点云数据的关联性,通过对根据X个第一点云块的边信息和X个第二点云块的边信息得到的X组边信息差值进行编码,降低了编码损耗,提升了编码压缩性能。可选的,在第一方面的一种可能的实施方式中,若X<M,还包括:获取M个第一点云块中剩余的Y个第一点云块的边信息,Y=M-X。获取Y个第一点云块的边信息的最大值A。根据最大值A确定Y个第一点云块的边信息对应的第一编码比特数。对第一编码比特数进行编码。采用第一编码比特数对Y个第一点云块的边信息进行编码。通过该可能的实施方式提供的编码方法,根据剩余的Y个第一点云块的边信息确定编码所需比特数,避免了根据所有M个第一点云块的边信息确定编码所需比特数,减小了数据处理数据量,提升了编码的效率和合理性,提升了编码性能。可选的,在第一方面的一种可能的实施方式中,若X<M,且边信息为Z种,Z>1,还包括:获取M个第一点云块中剩余的Y个第一点云块的Z种边信息,Y=M-X;获取X个第一点云块的第k种边信息的最大值Bk和Y个第一点云块的第k种边信息的最大值Ak,k=1,…,Z;若最大值Bk大于或者等于最大值Ak,则确定第一标识信息中与第k种边信息对应的比特位为第一符号;若最大值Bk小于最大值Ak,则确定第一标识信息中与第k种边信息对应的比特位为第二符号;若第一标识信息中每个比特位均为第一符号,则确定第二标识信息为第一符号,并对第二标识信息编码;根据最大值Bk确定Y个第一点云块的第k种边信息对应的第二编码比特数,并采用第二编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z;若第一标识信息中至少一个比特位为第二符号,则确定第二标识信息为第二符号,对第一标识信息和第二标识信息进行编码;若第一标识信息中与第k种边信息对应的比特位为第一符号,则根据最大值Bk确定Y个第一点云块的第k种边信息对应的第二编码比特数,并采用第二编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z;若第一标识信息中与第k种边信息对应的比特位为第二符号,则根据最大值Ak确定Y个第一点云块的第k种边信息对应的第三编码比特数,对第三编码比特数进行编码,并采用第三编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z。通过该可能的实施方式提供的编码方法,通过将X个第一点云块的边信息的最大值与Y个第一点云块的边信息的最大值进行比较,进而可以确定Y个第一点云块的边信息对应的编码比特数。当采用根据X个第一点云块的边信息的最大值确定的编码比特数对Y个第一点云块的边信息进行编码时,进一步压缩了码流,提高了编码效率和压缩性能。可选的,在第一方面的一种可能的实施方式中,预设的匹配关系通过下述步骤确定:获取当前帧的前一帧中N个第二点云块,N为正整数。对于N个第二点云块中的第i个第二点云块,i=1,…,N,获取第i个第二点云块与j个尚未匹配的第一点云块之间的关联值Qij,并确定出关联值最大的Qik,其中,j个尚未匹配的第一点云块的投影方向与第i个第二点云块的投影方向相同。若Qik大于预设阈值,则确定Qik对应的第k个第一点云块与第i个第二点云块匹配,其中,第k个第一点云块为j个尚未匹配的第一点云块中的一个。可选的,在第一方面的一种可能的实施方式中,若确定出O个第一点云块存在匹配关系,则在当前帧的M个第一点云块中确定X个第一点云块,包括:在O个第一点云块中确定X个第一点云块,O个第一点云块为与N个第二点云块匹配的第一点云块,O≥X。可选的,在第一方面的一种可能的实施方式中,关联值Qij为第一参考值与第二参考值的商。第一参考值为第一占用矩阵和第二占用矩阵的交集区域的面积,第二参考值为第一占用矩阵和第二占用矩阵的并集区域的面积。或者,第一参考值为第一占用矩阵的有效区域和第二占用矩阵的有效区域的交集区域中包含的像素点个数,第二参考值为第一占用矩阵的有效区域和第二占用矩阵的有效区域的并集区域中包含的像素点个数。其中,第一占用矩阵的有效区域为第j个第一点云块根据投影方向在二维平面投影后实际占用的区域,第二占用矩阵的有效区域为第i个第二点云块根据投影方向在二维平面投影后实际占用的区域,第一占用矩阵为第一占用矩阵的有效区域对应的矩阵区域,第二占用矩阵为第二占用矩阵的有效区域对应的矩阵区域。可选的,在第一方面的一种可能的实施方式中,在确定预设的匹配关系之前,还可以包括:对M个第一点云块进行排序。通过该可能的实施方式提供的编码方法,通过对M个第一点云块进行排序,可以提升第一点云块和第二点云块的匹配速度,进而提升编码处理速度。可选的,在第一方面的一种可能的实施方式中,预设的匹配关系包括:按照X个第一点云块的排列顺序和X个第二点云块的排列顺序,X个第一个点云块中的第k个第一点云块与X个第二个点云块中的第k个第二点云块匹配,k=1,…,X。通过该可能的实施方式提供的编码方法,设置排序相同的第一点云块和第二点云块匹配,简化了匹配关系,提升了编码速度。可选的,在第一方面的一种可能的实施方式中,根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值,包括:将X个第一点云块的边信息分别和与X个第一点云块匹配的X个第二点云块的边信息之间的差值确定为X组边信息差值。方法还包括:获取匹配信息,匹配信息指示了X个第一点云块与X个第二点云块之间的匹配关系。对匹配信息进行编码。通过该可能的实施方式提供的编码方法,将排序相同的第一点云块和第二点云块的边信息对应相减获得X组边信息差值,简化了差值计算的复杂度,提升了编码速度。可选的,在第一方面的一种可能的实施方式中,根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值,包括:按照X个第一点云块的排列顺序和X个第二点云块的排列顺序,将X个第一个点云块中第k个第一点云块的边信息与X个第二个点云块中第k个第二点云块的边信息之间的差值,确定为X组边信息差值中的第k组边信息差值,k=1,…,X。通过该可能的实施方式提供的编码方法,将X个第一点云块的边信息分别和与X个第一点云块匹配的X个第二点云块的边信息之间的差值确定为X组边信息差值,提升了编码的准确性,进而提升了编码性能。可选的,在第一方面的一种可能的实施方式中,还包括:根据M确定第四编码比特数。采用第四编码比特数对X进行编码。第二方面,本申请实施例提供一种解码方法,该方法包括:根据码流获得当前帧X个第一点云块的X组边信息差值。获取X个第二点云块的边信息。根据X组边信息差值和X个第二点云块的边信息获得X个第一点云块的边信息。可选的,在第二方面的一种可能的实施方式中,若X<M,方法还包括:根据码流获得第一编码比特数,第一编码比特数为编码装置根据M个第一点云块中剩余的Y个第一点云块的边信息的最大值A确定的,Y=M-X。采用第一编码比特数根据码流获得Y个第一点云块的边信息。可选的,在第二方面的一种可能的实施方式中,若X<M,且边信息为Z种,Z>1,方法还包括:根据码流获得第二标识信息;若第二标识信息为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z;若第二标识信息为第二符号,则获得第一标识信息;若第一标识信息中与第k种边信息对应的比特位为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z;若第一标识信息中与第k种边信息对应的比特位为第二符号,则根据码流获得第三编码比特数,采用第三编码比特数根据码流获得Y个第一点云块的第k种边信息,第三编码比特数为编码装置根据Y个第一点云块的第k种边信息的最大值Ak确定的,k=1,…,Z。可选的,在第二方面的一种可能的实施方式中,方法还包括:根据M确定第四编码比特数。采用第四编码比特数根据码流获得X。第三方面,本申请实施例提供一种编码装置,包括:确定模块、获取模块和编码模块。确定模块用于在当前帧的M个第一点云块中确定X个第一点云块。获取模块用于获取X个第一点云块的边信息和X个第二点云块的边信息。编码模块用于根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值,对X组边信息差值进行编码。可选的,在第三方面的一种可能的实施方式中,若X<M,获取模块还用于:获取M个第一点云块中剩余的Y个第一点云块的边信息,Y=M-X。获取Y个第一点云块的边信息的最大值A。编码模块还用于:根据最大值A确定Y个第一点云块的边信息对应的第一编码比特数。对第一编码比特数进行编码。采用第一编码比特数对Y个第一点云块的边信息进行编码。可选的,在第三方面的一种可能的实施方式中,若X<M,且边信息为Z种,Z>1,获取模块还用于:获取M个第一点云块中剩余的Y个第一点云块的Z种边信息,Y=M-X。获取X个第一点云块的第k种边信息的最大值Bk和Y个第一点云块的第k种边信息的最大值Ak,k=1,…,Z。编码模块还用于:若最大值Bk大于或者等于最大值Ak,则确定第一标识信息中与第k种边信息对应的比特位为第一符号;若最大值Bk小于最大值Ak,则确定第一标识信息中与第k种边信息对应的比特位为第二符号;若第一标识信息中每个比特位均为第一符号,则确定第二标识信息为第一符号,并对第二标识信息编码;根据最大值Bk确定Y个第一点云块的第k种边信息对应的第二编码比特数,并采用第二编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z;若第一标识信息中至少一个比特位为第二符号,则确定第二标识信息为第二符号,对第一标识信息和第二标识信息进行编码;若第一标识信息中与第k种边信息对应的比特位为第一符号,则根据最大值Bk确定Y个第一点云块的第k种边信息对应的第二编码比特数,并采用第二编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z;若第一标识信息中与第k种边信息对应的比特位为第二符号,则根据最大值Ak确定Y个第一点云块的第k种边信息对应的第三编码比特数,对第三编码比特数进行编码,并采用第三编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z。可选的,在第三方面的一种可能的实施方式中,确定模块具体用于通过下述步骤确定预设的匹配关系:获取当前帧的前一帧中N个第二点云块,N为正整数。对于N个第二点云块中的第i个第二点云块,i=1,…,N,获取第i个第二点云块与j个尚未匹配的第一点云块之间的关联值Qij,并确定出关联值最大的Qik,其中,j个尚未匹配的第一点云块的投影方向与第i个第二点云块的投影方向相同。若Qik大于预设阈值,则确定Qik对应的第k个第一点云块与第i个第二点云块匹配,其中,第k个第一点云块为j个尚未匹配的第一点云块中的一个。可选的,在第三方面的一种可能的实施方式中,若确定出O个第一点云块存在匹配关系,确定模块具体用于:在O个第一点云块中确定X个第一点云块,O个第一点云块为与N个第二点云块匹配的第一点云块,O≥X。可选的,在第三方面的一种可能的实施方式中,关联值Qij为第一参考值与第二参考值的商。第一参考值为第一占用矩阵和第二占用矩阵的交集区域的面积,第二参考值为第一占用矩阵和第二占用矩阵的并集区域的面积。或者,第一参考值为第一占用矩阵的有效区域和第二占用矩阵的有效区域的交集区域中包含的像素点个数,第二参考值为第一占用矩阵的有效区域和第二占用矩阵的有效区域的并集区域中包含的像素点个数。其中,第一占用矩阵的有效区域为第j个第一点云块根据投影方向在二维平面投影后实际占用的区域,第二占用矩阵的有效区域为第i个第二点云块根据投影方向在二维平面投影后实际占用的区域,第一占用矩阵为第一占用矩阵的有效区域对应的矩阵区域,第二占用矩阵为第二占用矩阵的有效区域对应的矩阵区域。可选的,在第三方面的一种可能的实施方式中,预设的匹配关系包括:按照X个第一点云块的排列顺序和X个第二点云块的排列顺序,X个第一个点云块中的第k个第一点云块与X个第二个点云块中的第k个第二点云块匹配,k=1,…,X。可选的,在第三方面的一种可能的实施方式中,编码模块具体用于:将X个第一点云块的边信息分别和与X个第一点云块匹配的X个第二点云块的边信息之间的差值确定为X组边信息差值。获取模块还用于,获取匹配信息,匹配信息指示了X个第一点云块与X个第二点云块之间的匹配关系。编码模块还用于,对匹配信息进行编码。可选的,在第三方面的一种可能的实施方式中,编码模块具体用于:按照X个第一点云块的排列顺序和X个第二点云块的排列顺序,将X个第一个点云块中第k个第一点云块的边信息与X个第二个点云块中第k个第二点云块的边信息之间的差值,确定为X组边信息差值中的第k组边信息差值,k=1,…,X。可选的,在第三方面的一种可能的实施方式中,编码模块还用于:根据M确定第四编码比特数。采用第四编码比特数对X进行编码。第四方面,本申请实施例提供一种解码装置,包括:解码模块和获取模块。解码模块用于根据码流获得当前帧X个第一点云块的X组边信息差值。获取模块用于获取X个第二点云块的边信息。解码模块还用于,根据X组边信息差值和X个第二点云块的边信息获得X个第一点云块的边信息。可选的,在第四方面的一种可能的实施方式中,若X<M,解码模块还用于:根据码流获得第一编码比特数,第一编码比特数为编码装置根据M个第一点云块中剩余的Y个第一点云块的边信息的最大值A确定的,Y=M-X。采用第一编码比特数根据码流获得Y个第一点云块的边信息。可选的,在第四方面的一种可能的实施方式中,若X<M,且边信息为Z种,Z>1,解码模块还用于:根据码流获得第二标识信息;若第二标识信息为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z;若第二标识信息为第二符号,则获得第一标识信息;若第一标识信息中与第k种边信息对应的比特位为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z;若第一标识信息中与第k种边信息对应的比特位为第二符号,则根据码流获得第三编码比特数,采用第三编码比特数根据码流获得Y个第一点云块的第k种边信息,第三编码比特数为编码装置根据Y个第一点云块的第k种边信息的最大值Ak确定的,k=1,…,Z。可选的,在第四方面的一种可能的实施方式中,解码模块还用于:根据M确定第四编码比特数。采用第四编码比特数根据码流获得X。结合上述第一方面以及第一方面的各可能的实施方式、第二方面以及第二方面的各可能的实施方式、第三方面以及第三方面的各可能的实施方式、第四方面以及第四方面的各可能的实施方式,X个第一个点云块与X个第二点云块存在预设的匹配关系,X个第二点云块包含在当前帧的前一帧中。其中,X小于或者等于M,且X和M均为正整数。边信息包括下列中的至少一种:点云块在三维坐标系中的X坐标最小值、点云块在三维坐标系中的Y坐标最小值、点云块在三维坐标系中的Z坐标最小值、点云块根据投影方向在占用图中的X坐标最小值和点云块根据投影方向在占用图中的Y坐标最小值。第五方面,本申请实施例提供一种编码器,该编码器包括处理器和存储器,存储器用于存储指令,处理器用于执行存储器中存储的指令,以使编码器执行上述第一方面的方法。上述第五方面的编码器还可以包括收发器,该收发器用于和其他设备通信。第六方面,本申请实施例提供一种解码器,该解码器包括处理器和存储器,存储器用于存储指令,处理器用于执行存储器中存储的指令,以使解码器执行上述第二方面的方法。上述第六方面的解码器还可以包括收发器,该收发器用于和其他设备通信。第七方面,本申请实施例提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现第一方面或第二方面任一项所述的方法。第八方面,本申请实施例提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。编码器或者解码器的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得编码器或者解码器实施第一方面或者第二方面的各种实施方式提供的方法。本申请第九方面提供一种芯片,所述芯片可应用于编码器,所述芯片包括:至少一个通信接口,至少一个处理器,至少一个存储器,所述通信接口、存储器和处理器通过总线互联,所述处理器调用所述存储器中存储的计算机程序,以执行本申请第一方面提供的编码方法。本申请第十方面提供一种芯片,所述芯片可应用于解码器,所述芯片包括:至少一个通信接口,至少一个处理器,至少一个存储器,所述通信接口、存储器和处理器通过总线互联,所述处理器调用所述存储器中存储的计算机程序,以执行本申请第二方面提供的解码方法。本申请实施例提供一种编码方法、解码方法和装置。利用前后两帧点云数据的关联性,在当前帧的M个第一点云块中确定X个第一点云块,X个第一个点云块与当前帧的前一帧中的X个第二点云块存在预设的匹配关系。根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值。通过对X组边信息差值进行编码,降低了编码损耗,提升了编码性能。附图说明图1为现有的分割点云数据的示意图;图2为现有的占用图的示意图;图3为现有的点云数据打包方法的流程图;图4为现有的编码方法的流程图;图5为本申请实施例一提供的编码方法的流程图;图6为本申请实施例二提供的编码方法的流程图;图7为本申请实施例三提供的编码方法的流程图;图8为本申请实施例一提供的解码方法的流程图;图9为本申请实施例涉及的占用图的示意图;图10为本申请实施例一提供的编码装置的结构示意图;图11为本申请实施例一提供的解码装置的结构示意图;图12为本申请实施例一提供的编码器的结构示意图;图13为本申请实施例一提供的解码器的结构示意图。具体实施方式本申请实施例提供的编码方法、解码方法和装置,旨在解决目前针对每一帧点云数据进行单独处理导致的编码压缩性能损失的技术问题。下面对现有的点云数据的处理方法进行简单的介绍。涉及四个阶段,分别为:点云数据分割阶段、点云数据打包(也称为packing)阶段、边信息编码阶段和边信息解码阶段。(1)点云数据分割阶段按照预设规则对点云数据进行分割获得多个点云块(也称为patch)。其中,每个点云块都是一个连通区域,且任意两个点云块没有交叠区域。示例性的,图1为现有的分割点云数据的示意图。图1左侧示出了三维坐标系下的点云数据,所述点云数据包括通过测量仪器得到的人像11外观表面的点数据集合。三维坐标系包括x轴、y轴和z轴。以z轴负方向作为投影方向,图1右侧示出了对点云数据的分割结果。为了方便说明,在x轴和y轴确定的二维平面上对点云块进行说明。如图1右侧所示,点云数据可以分割为6个点云块,分别为点云块12~点云块17。需要说明,三维坐标系中根据三个坐标轴一共有6个投影方向,分别为:x轴正方向、x轴负方向、y轴正方向、y轴负方向、z轴正方向和z轴负方向。点云数据可以在至少一个投影方向上进行分割形成多个点云块。(2)点云数据打包(packing)阶段打包(packing)问题在数学上是一个优化问题,是指如何将大小不同的盒子放到一个容器中,目标是使得容器越稠密越好或者所用容器个数越少越好。点云数据的打包问题,是指对于形状各异的多个点云块,根据投影方向经过三维到二维的投影,可以将所有的点云块按照某种规则紧密的排列在一张二维图像上,目标是使得二维图像中包含的缝隙越少越好或者目标图像越小越好。这个排列所有点云块的过程就称为点云数据打包(packing)。该阶段可以实现点云块从三维到二维的投影以及获得点云块对应的边信息。首先对涉及的相关概念进行介绍。1)投影图点云块经过三维到二维的投影按照打包顺序形成的二维的投影图。投影图可以包括深度投影图和纹理投影图。深度投影图是各个点云块经过投影得到的深度图,按照打包顺序生成的二维图像。纹理投影图是各个点云块经过投影得到的纹理图,按照打包顺序生成的二维图像。深度投影图和纹理投影图可以具有相同的长度和宽度。2)占用图(也称为occupancymap)占用图是一个2值二维图像,用于表示上述投影图中某个像素位置是否被点云数据中的某点占据。通常,为了节约编码比特,占用图的分辨率低于投影图的分辨率。示例性的,图2为现有的占用图的示意图。图2中左侧和右侧分别示出了相邻的前后两帧点云块对应的占用图。其中,不同的字母表示点云块的投影方向或者法向轴不同。字母A~F可以依次表示投影方向或者法向轴为:x轴正方向、y轴正方向、z轴正方向、x轴负方向、y轴负方向和z轴负方向。示例性的,图2左侧包括点云块21~25,图2右侧包括点云块31~35。其中,连续分布的相同字母显示的点(像素点)表示被一个点云块占据,点云块实际占用的区域可以称为有效区域。没有字母显示的点表示没有被点云数据占据,这些点形成的区域可以称为无效区域。3)边信息边信息可以指示点云块的位置信息。下面通过表1进行说明。在表1中,u1、v1和d1指示了点云块在三维坐标系中的位置,在点云数据分割结束后,可以获得点云块的u1、v1和d1。在表1中,sizeU和sizeV指示了点云块在投影图中的宽度和高度。点云块根据投影方向经过三维到二维的投影后,可以获得sizeU和sizeV。sizeU与sizeU0之间,sizeV和sizeV0之间可以具有一定的对应关系。具体的,可以与占用图的分辨率相关。u0、v0、sizeU0和sizeV0指示了点云块在占用图中的位置。根据sizeU和sizeV可以获得sizeU0和sizeV0。将所有的点云块按照某种规则紧密的排列在占用图上,可以获得u0和v0。表1点云块的边信息图3为现有的点云数据打包方法的流程图。如图3所示,现有的点云数据打包方法,针对每一帧点云数据单独处理,可以包括:S101、将当前帧的点云块进行排序。具体的,可以按照点云块在二维平面投影后的高度从大到小的顺序对点云块进行排序。对于高度相同的多个点云块,可以按照点云块在二维平面投影后的宽度从大到小的顺序对多个点云块进行排序,从而可以完成对所有点云块的排序。按照上述方法,可以获得当前帧点云块的排序为patch[1],…,patch[i],…,patch[M],0<i≤M,M为当前帧点云块的个数。S102、获取当前帧占用图的高度和宽度的初始值。计算公式如下:占用图的宽度的最小值=投影图的宽度的最小值/占用图的分辨率。占用图的宽度的初始值=max(占用图的宽度的最小值,第i个点云块在占用图中的宽度+1),0<i≤M。占用图的高度的最小值=投影图的高度的最小值/占用图的分辨率。占用图的高度的初始值=max(占用图的高度的最小值,第i个点云块在占用图中的高度),0<i≤M。占用图的初始大小=占用图的高度的初始值×占用图的宽度的初始值。S103、根据当前帧点云块的排列顺序依次获取第i个点云块patch[i],0<i≤M。S104、在占用图中按照从左向右以及从上向下的方向判断是否可以插入第i个点云块patch[i]。若可以插入第i个点云块patch[i],则获取第i个点云块patch[i]在占用图中的位置u0和v0。之后,返回执行S103,直至获取第M个点云块patch[M]。若占用图中没有可以插入第i个点云块patch[i]的位置,则执行S105。其中,占用图中已经被点云块占据的位置,不可以插入新的点云块。S105、将占用图的高度和宽度加倍。并返回执行S104,直至可以插入第i个点云块patch[i]。下面结合图2通过具体示例说明。参见图2左侧,假设前5个点云块的排序依次为点云块21~25,投影方向分别用字母C、F、A、D和A标识。假设占用图足够大,即不考虑S105。点云数据打包方法如下。按照点云块的排列顺序,首先获得点云块21。在占用图中按照从左向右以及从上向下的方向插入点云块21。然后,获得点云块22。在占用图中按照从左向右以及从上向下的方向插入点云块22。再获得点云块23。在占用图中按照从左向右以及从上向下的方向插入点云块23。再获得点云块24。在占用图中按照从左向右以及从上向下的方向插入点云块24。再获得点云块25。在占用图中按照从左向右以及从上向下的方向插入点云块25。在完成点云数据打包(packing)后,可以确定当前帧所有的点云块在占用图中的位置。之后,可以对点云块的边信息进行编码。(3)边信息编码阶段主要涉及对点云块的如下几种边信息进行编码。边信息可以包括u0,v0,u1,v1,d1,sizeU0和sizeV0中的至少一种。对于u0,v0,u1,v1和d1,可以采用固定比特数的定长编码。对于sizeU0和sizeV0,可以采用指数哥伦布(GlombRice)编码。需要说明,对其他边信息进行编码也可以采用上述编码方法。编码方法的输入信息为当前帧点云块的个数M和每个点云块的边信息。对输入信息进行编码可以获得码流,所述码流作为解码装置的输入信息。图4为现有的编码方法的流程图。如图4所示,现有的编码方法针对每一帧点云块的边信息单独处理,可以包括:S201、对当前帧点云块的个数M进行32bit编码。例如,M=200。编码后的码流可以包括0xC8。S202、对点云块的边信息进行编码,边信息包括u0,v0,u1,v1和d1中的至少一种。对于每一种边信息,获取当前帧所有点云块的边信息的最大值。根据所述最大值确定编码所需的编码比特数,并对所述编码比特数进行8bit编码。对当前帧所有点云块的边信息采用所述编码比特数进行编码。下面通过具体示例进行说明。假设边信息包括u0和v0。当前帧点云块的个数为3个。3个点云块的边信息u0的十进制取值分别为2、5和9。3个点云块的边信息v0的十进制取值分别为3、4和7。编码方法具体如下:对于边信息u0,当前帧3个点云块的边信息u0为{2,5,9},最大值为9。对于9采用固定比特数的定长编码,编码所需的编码比特数为4。首先对编码比特数4进行8bit编码,编码后的码流包括0x4。然后,采用编码比特数4对当前帧3个点云块的边信息u0依次编码,编码后的码流包括0x2、0x5和0x9。对于边信息v0,当前帧3个点云块的边信息v0为{3,4,7},最大值为7。对于7采用固定比特数的定长编码,编码所需的编码比特数为3。首先对编码比特数3进行8bit编码,编码后的码流包括0x3。然后,采用编码比特数3对当前帧3个点云块的边信息v0依次编码,编码后的码流包括0x3、0x4和0x7。S203、对点云块的边信息进行编码,边信息包括sizeU0和sizeV0。对于边信息sizeU0,获取当前帧第i个点云块的边信息差值delta_sizeU0=sizeU0–pre_sizeU0,依次对delta_sizeU0进行指数GlombRice编码。其中,sizeU0为第i个点云块的边信息sizeU0,pre_sizeU0为第i-1个点云块的边信息sizeU0,0<i≤M。对于边信息sizeV0,获取当前帧第i个点云块的边信息差值delta_sizeV0=pre_sizeV0-sizeV0,依次对delta_sizeV0进行指数GlombRice编码。其中,sizeV0为第i个点云块的边信息sizeV0,pre_sizeV0为第i-个点云块的边信息sizeV0。其中,在获取当前帧第1个点云块的边信息差值时,pre_sizeU0可以为第一预设值,例如为0。pre_sizeV0可以第二预设值。需要说明,在编码过程中,对于S202和S203的执行顺序不做限定。在S202中,如果边信息为多种,对于各种边信息的编码顺序不做限定。例如,如果边信息为3种,分别为u1,v1和d1。编码顺序可以为:…,当前帧中前一个点云块的u1,v1和d1编码,当前帧中当前点云块的u1,v1和d1编码,当前帧中下一个点云块的u1,v1和d1编码,…。编码顺序还可以为:当前帧中所有点云块的u1编码,当前帧中所有点云块的v1编码,当前帧中所有点云块的d1编码。相似的,在S203中,对于sizeU0和sizeV0的编码顺序不做限定。需要说明,编码装置和解码装置可以预先定义编码和解码顺序。(4)边信息解码阶段解码方法的输入信息为编码装置输出的码流。解码方法与编码方法相对应。下面以边信息包括u0,v0,u1,v1,d1,sizeU0和sizeV0,且u0,v0,u1,v1,d1编码在前,sizeU0和sizeV0编码在后为示例,对现有的解码方法进行说明。现有的解码方法针对每一帧点云块的边信息单独处理,可以包括:S301、从码流中解码32bit,获得当前帧点云块的个数M。S302、从码流中连续解码5个8bit,依次获得u0,v0,u1,v1和d1的最大值编码所需要的编码比特数。S303、根据当前帧点云块的个数M和u0,v0,u1,v1和d1分别对应的编码比特数,依次从码流中解码获得当前帧各个点云块的u0,v0,u1,v1和d1的值。S304、根据当前帧点云块的个数M,根据指数GlombRice方法解码出当前帧各个点云块的sizeU0的差分值delta_sizeU0,以及当前帧各个点云块的sizeV0的差分值delta_sizeV0。根据sizeU0=pre_sizeU0+delta_sizeU0和sizeV0=pre_sizeV0–delta_sizeV0获得当前帧各个点云块的sizeU0和sizeV0的值。可见,现有的边信息编码方法和解码方法,仅针对每一帧点云块的边信息进行单独的编码处理和解码处理,而连续帧的点云数据之间具有很强的相关性,导致边信息编码的压缩性能损失。下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。本申请说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。图5为本申请实施例一提供的编码方法的流程图。本实施例提供的编码方法,执行主体可以为编码装置。如图5所示,本实施例提供的编码方法,可以包括:S401、在当前帧的M个第一点云块中确定X个第一点云块。其中,X个第一个点云块与X个第二点云块存在预设的匹配关系,X个第二点云块包含在当前帧的前一帧中。其中,X小于或者等于M,且X和M均为正整数。具体的,当前帧的点云块可以称为第一点云块,当前帧的第一点云块的个数为M。当前帧的前一帧的点云块可以称为第二点云块。当前帧的X个第一个点云块与前一帧的X个第二点云块存在预设的匹配关系。也就是说,通过X个第一个点云块和X个第二点云块,说明了连续帧的点云数据之间具有一定的相关性。在后续编码和解码时,可以利用该相关性。需要说明的是,本实施例对于M和X的具体取值不做限定。而且,如果将前一帧的第二点云块的个数定义为N0,则X小于或者等于N0。也就是说,X≤min(M,N0),min(M,N0)为M和N0中的较小值。可选的,X可以为预设数值,对于编码装置和解码装置均为已知的数值。例如,X=min(M,N0)。S402、获取X个第一点云块的边信息和X个第二点云块的边信息。其中,边信息可以参见表1,此处不再赘述。需要说明的是,边信息可以包括但不仅限于表1示出的各种边信息,还可以包括其他与点云块相关的信息。可选的,边信息还可以包括点云块的索引值,所述索引值指示了一个点云块在所有点云块中的排列顺序。例如,按照当前帧M个第一点云块的排列顺序,第一点云块的索引值可以依次为0,1,2,…,M-2,M-1,或者是1,2,…,M-1,M。S403、根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值。具体的,根据1个第一点云块的边信息和1个第二点云块的边信息可以得到1组边信息差值。这样,根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值。需要说明的是,本实施例对于边信息的个数不做限定,边信息可以为1种,也可以为多种。当边信息为1种时,1组边信息差值仅包括1个数值。当边信息为多种时,1组边信息差值包括多个数值,每个数值与一个边信息对应。下面结合表1通过具体示例进行说明。假设边信息为1种,具体为表1中的u0。则1组边信息差值delta_u0=u0–pre_u0。其中,公式中的u0表示第一点云块的边信息u0,公式中的pre_u0表示第二点云块的边信息u0。假设边信息为7种,具体为表1中的u0,v0,u1,v1,d1,sizeU0和sizeV0。则1组边信息差值delta_x=x–pre_x。其中,公式中的x表示第一点云块的边信息x,公式中的pre_x表示第二点云块的边信息x,x可以为u0,v0,u1,v1,d1,sizeU0和sizeV0。即,1组边信息差值为{delta_u0,delta_v0,delta_u1,delta_v1,delta_d1,delta_sizeU0,delta_sizeV0}。可选的,在一种实现方式中,根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值,可以包括:按照X个第一点云块的排列顺序和X个第二点云块的排列顺序,将X个第一个点云块中第k个第一点云块的边信息与X个第二个点云块中第k个第二点云块的边信息之间的差值,确定为X组边信息差值中的第k组边信息差值,k=1,…,X。具体的,X个第一点云块和X个第二点云块存在预设的匹配关系。在该种实现方式中,按照X个第一点云块的排列顺序和X个第二点云块的排列顺序,排序相同的第一点云块和第二点云块匹配。因此,第k个第一点云块的边信息与第k个第二点云块的边信息之间的差值,确定为第k组边信息差值。通过将排序相同的第一点云块和第二点云块的边信息对应相减获得X组边信息差值,简化了差值计算的复杂度,提升了编码速度。可选的,在另一种实现方式中,根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值,可以包括:将X个第一点云块的边信息分别和与X个第一点云块匹配的X个第二点云块的边信息之间的差值确定为X组边信息差值。还可以包括:获取匹配信息,匹配信息指示了X个第一点云块与X个第二点云块之间的匹配关系。对匹配信息进行编码。具体的,X个第一点云块和X个第二点云块存在预设的匹配关系。在该种实现方式中,相互匹配的第一点云块和第二点云块分别在X个第一点云块和X个第二点云块中的排列顺序可能相同,也可能不同。将X个第一点云块的边信息分别和与X个第一点云块匹配的X个第二点云块的边信息之间的差值确定为X组边信息差值,提升了编码的准确性,进而提升了编码性能。可选的,匹配信息可以包括X个第一点云块的索引值和X个第二点云块的索引值。例如,X=3。3个第一点云块的索引值分别为0,1,2。3个第二点云块的索引值分别为0,1,2。假设,索引值为0的第一点云块与索引值为0的第二点云块匹配、索引值为1的第一点云块与索引值为2的第二点云块匹配、索引值为2的第一点云块与索引值为1的第二点云块匹配。那么匹配信息可以包括:3个第一点云块的索引值{0,1,2}和3个第二点云块的索引值{0,2,1}。可选的,匹配信息可以包括X个第一点云块的索引值以及X个索引差值,X个索引差值为X个第一点云块的索引值和与X个第一点云块匹配的X个第二点云块的索引值之间的差值。还以上述示例为例。X个第一点云块的索引值为{0,1,2}。与X个第一点云块匹配的X个第二点云块的索引值为{0,2,1}。则X个索引差值可以为{0-0,1-2,2-1}={0,-1,1}。因此,匹配信息可以包括:3个第一点云块的索引值{0,1,2}和3个索引差值{0,-1,1}。可选的,若X个第一点云块的排序和与X个第一点云块匹配的X个第二点云块的排序相同,则匹配信息可以包括1bit指示信息。可选的,所述1bit指示信息可以为0或者1。通过1bit指示信息指示相互匹配的第一点云块和第二点云块的排序相同,进一步压缩了码流,提升了编码效率。S404、对X组边信息差值进行编码。具体的,由于X个第一个点云块与X个第二点云块存在预设的匹配关系,根据X个第一点云块的边信息和X个第二点云块的边信息得到了X组边信息差值。通过对X组边信息差值进行编码,考虑了前后两帧数据的关联性,降低了编码损耗,提升了编码压缩性能。需要说明的是,本实施例对X组边信息差值进行编码的方法不做限定,可以采用现有的编码方法,只要编码方法和解码方法对应即可。可选的,对X组边信息差值进行编码,可以采用指数GlombRice编码。可见,本实施例提供的编码方法,通过在当前帧的M个第一点云块中确定X个第一点云块,X个第一个点云块与当前帧的前一帧中的X个第二点云块存在预设的匹配关系,通过对根据X个第一点云块的边信息和X个第二点云块的边信息得到的X组边信息差值进行编码,考虑了前后两帧数据的关联性,降低了编码损耗,提升了编码压缩性能。可选的,本实施例提供的编码方法,还可以包括:对M进行编码。需要说明的是,本实施例对M进行编码的方法不做限定,可以采用现有的编码方法,只要编码方法和解码方法对应即可。可选的,对M进行编码,可以采用预设编码比特数进行定长编码。本实施例对于预设编码比特数的具体取值不做限定。例如可以为32bit。可选的,本实施例提供的编码方法,还可以包括:对X进行编码。具体的,对X进行编码,以便在解码时可以明确获知当前帧中与前一帧的第二点云块匹配的第一点云块的个数,提升了编码效率。可选的,对X进行编码,可以包括:根据M确定第四编码比特数。采用第四编码比特数对X进行编码。具体的,X小于或者等于M,因此可以通过M确定对X进行编码所需的最大编码比特数(第四编码比特数)。进而,采用第四编码比特数对X进行编码,可以进一步压缩码流,提升编码压缩性能。下面通过具体示例进行说明。例如,M=200,X=90。根据M=200可以确定第四编码比特数为16bit。则可以采用16bit对X进行编码,编码后的码流可以包括0x5A。可选的,在一种实现方式中,预设的匹配关系可以通过下述步骤确定:获取当前帧的前一帧中N个第二点云块,N为正整数。对于N个第二点云块中的第i个第二点云块,i=1,…,N,获取第i个第二点云块与j个尚未匹配的第一点云块之间的关联值Qij,并确定出关联值最大的Qik。其中,j个尚未匹配的第一点云块的投影方向与第i个第二点云块的投影方向相同。若Qik大于预设阈值,则确定Qik对应的第k个第一点云块与第i个第二点云块匹配,其中,第k个第一点云块为j个尚未匹配的第一点云块中的一个。若Qik小于或者等于预设阈值,则确定没有第一点云块与第i个第二点云块匹配。下面通过具体示例进行说明。假设N=10。按照第二点云块的排列顺序,10个第二点云块可以标识为pre_patch[i],i=1,…,10,对应的索引值可以为1~10。M=20。按照第一点云块的排列顺序,20个第一点云块可以标识为patch[k],k=1,…,20,对应的索引值可以为1~20。预设阈值可以标识为thr。遍历N个第二点云块。首先,获取pre_patch[1](索引值为1),并遍历第一集合。第一集合包括未被匹配的T个第一点云块。此时,T=M=20。第一集合包括20个第一点云块,可以标识为pre_patch[j],j=1,…,20,对应的索引值为1~20。假设第一集合中与pre_patch[1]具有相同投影方向的第一点云块为patch[1]和patch[2]。获取pre_patch[1]与patch[1]之间的关联值Q11,pre_patch[1]与patch[2]之间的关联值Q12。假设Q11>Q12,则比较Q11与预设阈值thr的大小。如果Q11>thr,则确定pre_patch[1]与patch[1]匹配。也就是说,当前帧索引值为1的第一点云块与前一帧索引值为1的第二点云块匹配。在第一集合中删除patch[1](索引值为1)形成新的第一集合。此时,新的第一集合包括19个第一点云块,可以重新标识为pre_patch[j],0<j≤19,对应的索引值为2~20。继续遍历N个第二点云块,获取pre_patch[2](索引值为2),并遍历第一集合。此时,T=19。假设第一集合中与pre_patch[2]具有相同投影方向的第一点云块为patch[3]和patch[4],获取pre_patch[2]与patch[3]之间的关联值Q23,pre_patch[2]与patch[4]之间的关联值Q24。假设Q24>Q23,则比较Q24与预设阈值thr的大小。如果Q24<thr,则说明在当前帧中没有与pre_patch[2]匹配的第一点云块。此时,第一集合不变。之后,继续遍历下一个第二点云块,直至遍历完N个第二点云块为止。可见,通过遍历N个第二点云块和M个第一点云块,比较投影方向相同的第一点云块与第二点云块之间的关联值,可以确定与N个第二点云块存在一一匹配关系的所有第一点云块。需要说明的是,本实施例对于预设阈值的具体取值不做限定,根据需要进行设置。需要说明的是,本实施例对于N的具体取值不做限定,根据需要进行设置。其中,N≤N0,N0为前一帧的第二点云块的个数。需要说明的是,本实施例对于如何从N0个第二点云块中获取N个第二点云块不做限定。例如,可以按照N0个第一点云块的排列顺序获取前N个第一点云块。可选的,关联值Qij可以为第一参考值与第二参考值的商。所述第一参考值为第一占用矩阵和第二占用矩阵的交集区域的面积,第二参考值为第一占用矩阵和第二占用矩阵的并集区域的面积。或者,第一参考值为第一占用矩阵的有效区域和第二占用矩阵的有效区域的交集区域中包含的像素点个数,第二参考值为第一占用矩阵的有效区域和第二占用矩阵的有效区域的并集区域中包含的像素点个数。其中,第一占用矩阵的有效区域为第j个第一点云块根据投影方向在二维平面投影后实际占用的区域,第二占用矩阵的有效区域为第i个第二点云块根据投影方向在二维平面投影后实际占用的区域,第一占用矩阵为第一占用矩阵的有效区域对应的矩阵区域,第二占用矩阵为第二占用矩阵的有效区域对应的矩阵区域。可选的,在确定预设的匹配关系之前,还可以包括:对M个第一点云块进行排序。具体的,可以按照第一点云块在占用图上的高度从大到小的顺序对M个第一点云块进行排序。对于高度相同的多个第一点云块,可以按照第一点云块在占用图上的宽度从大到小的顺序对多个第一点云块进行排序,进而完成对M个第一点云块的排序。示例性的,如图2右侧所示,仅以点云块31~34的排序为例进行说明。按照点云块在占用图上的高度从大到小排序,依次为:点云块31、点云块32和点云块33、点云块34。由于点云块32和点云块33在占用图上的高度相同,再按照点云块在占用图上的宽度从大到小的顺序对点云块32和点云块33排序。因此,点云块31~34排序后的顺序依次为:点云块31、点云块32、点云块33、点云块34。在确定当前帧的M个第一点云块和前一帧的N个第二点云块之间的匹配关系之前,通过对M个第一点云块进行排序,可以提升第一点云块和第二点云块的匹配速度,进而提升编码处理速度。可选的,本实施例提供的编码方法,若确定出O个第一点云块存在匹配关系,在当前帧的M个第一点云块中确定X个第一点云块,可以包括:在O个第一点云块中确定X个第一点云块,O个第一点云块为与N个第二点云块匹配的第一点云块,O≥X。具体的,可以在与N个第二点云块匹配的所有第一点云块中确定X个第一点云块。也就是说,X≤O,O为与N个第二点云块存在一一匹配关系的第一点云块的个数。可选的,在另一种实现方式中,预设的匹配关系可以包括:按照X个第一点云块的排列顺序和X个第二点云块的排列顺序,X个第一个点云块中的第k个第一点云块与X个第二个点云块中的第k个第二点云块匹配,k=1,…,X。通过设置排序相同的第一点云块和第二点云块匹配,简化了匹配关系,提升了编码速度。需要说明的是,在编码过程中,对X组边信息差值进行编码和对M进行编码的执行顺序不做限定。如果边信息为多种,在对X组边信息差值进行编码的过程中,对于各种边信息的编码顺序不做限定。只要编码装置和解码装置预先定义编码和解码顺序即可。本实施例提供了一种编码方法,包括:在当前帧的M个第一点云块中确定X个第一点云块,获取X个第一点云块的边信息和X个第二点云块的边信息,根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值,对X组边信息差值和M进行编码。本实施例提供的编码方法,利用前后两帧点云数据的关联性,通过对根据X个第一点云块的边信息和X个第二点云块的边信息得到的X组边信息差值进行编码,降低了编码损耗,提升了编码压缩性能。图6为本申请实施例二提供的编码方法的流程图。本实施例提供的编码方法,在图5所示方法实施例一的基础上,提供了编码方法的另一种实现方式,主要涉及在X<M时,提供了对M个第一点云块中除X个第一点云块之外的剩余的Y个第一点云块的边信息的编码方法。如图6所示,本实施例提供的编码方法,还可以包括:S501、获取M个第一点云块中剩余的Y个第一点云块的边信息。其中,Y=M-X。S502、获取Y个第一点云块的边信息的最大值A。S503、根据最大值A确定Y个第一点云块的边信息对应的第一编码比特数。S504、对第一编码比特数进行编码。S505、采用第一编码比特数对Y个第一点云块的边信息进行编码。需要说明的是,本实施例对第一编码比特数进行编码的实现方式不做限定。可选的,可以采用预设比特数对第一编码比特数进行编码。本实施例对于预设编码比特数的具体数值不做限定,例如为8bit。需要说明的是,本实施例对于边信息的个数不做限定。可选的,边信息可以包括下列中的至少一种:点云块在三维坐标系中的X坐标最小值(u1),点云块在三维坐标系中的Y坐标最小值(v1),点云块在三维坐标系中的Z坐标最小值(d1),点云块根据投影方向在占用图中的X坐标最小值(u0),点云块根据投影方向在占用图中的Y坐标最小值(v0)。下面结合表1通过示例进行说明。假设M=10,X=7,Y=3。边信息包括u0和v0。在对7个第一点云块的边信息编码后,需要对剩余的3个第一点云块的边信息进行编码。剩余的3个第一点云块的边信息u0的十进制取值分别为2、5和9。剩余的3个第一点云块的边信息v0的十进制取值分别为3、4和7。预设编码比特数为8bit。编码方法具体如下:对于边信息u0,3个第一点云块的边信息u0为{2,5,9},最大值为9,编码所需的编码比特数为4。首先对编码比特数4进行8bit编码,编码后的码流包括0x4。然后,采用编码比特数4对3个第一点云块的边信息u0依次编码,编码后的码流包括0x2、0x5和0x9。对于边信息v0,3个第一点云块的边信息v0为{3,4,7},最大值为7,编码所需的编码比特数为3。首先对编码比特数3进行8bit编码,编码后的码流包括0x3。然后,采用编码比特数3对3个第一点云块的边信息v0依次编码,编码后的码流包括0x3、0x4和0x7。需要说明的是,在编码过程中,对Y个第一点云块的边信息和第三编码比特数进行编码的执行顺序不做限定。如果边信息为多种,对于各种边信息的编码顺序不做限定。只要编码装置和解码装置预先定义编码和解码顺序即可。本实施例提供了一种编码方法,包括:获取Y个第一点云块的边信息,获取Y个第一点云块的边信息的最大值A,根据最大值A确定Y个第一点云块的边信息对应的第一编码比特数,采用预设编码比特数对第一编码比特数进行编码,采用第一编码比特数对Y个第一点云块的边信息进行编码。本实施例提供的编码方法,根据剩余的Y个第一点云块的边信息确定编码所需比特数,避免了根据所有M个第一点云块的边信息确定编码所需比特数,减小了数据处理数据量,提升了编码的效率和合理性,提升了编码性能。图7为本申请实施例三提供的编码方法的流程图。本实施例提供的编码方法,在图5所示方法实施例一的基础上,提供了编码方法的又一种实现方式,主要涉及在X<M时,提供了对M个第一点云块中除X个第一点云块之外的剩余的Y个第一点云块的边信息的编码方法。如图7所示,本实施例提供的编码方法,还可以包括:S601、获取M个第一点云块中剩余的Y个第一点云块的Z种边信息。其中,Y=M-X,Z≥1。S602、获取X个第一点云块的第k种边信息的最大值Bk和Y个第一点云块的第k种边信息的最大值Ak,k=1,…,Z。S603、若最大值Bk大于或者等于最大值Ak,则确定第一标识信息中与第k种边信息对应的比特位为第一符号,根据最大值Bk确定Y个第一点云块的第k种边信息对应的第二编码比特数,并采用第二编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z。S604、若最大值Bk小于最大值Ak,则确定第一标识信息中与第k种边信息对应的比特位为第二符号,根据最大值Ak确定Y个第一点云块的第k种边信息对应的第三编码比特数,对第三编码比特数进行编码,并采用第三编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z。S605、对第一标识信息进行编码。可选的,第一符号可以为0,第二符号可以为1。或者,第一符号可以为1,第二符号可以为0。可选的,边信息可以包括下列中的至少一种:点云块在三维坐标系中的X坐标最小值(u1),点云块在三维坐标系中的Y坐标最小值(v1),点云块在三维坐标系中的Z坐标最小值(d1),点云块根据投影方向在占用图中的X坐标最小值(u0),点云块根据投影方向在占用图中的Y坐标最小值(v0)。需要说明的是,本实施例对第三编码比特数进行编码的实现方式不做限定。可选的,可以采用预设比特数对第三编码比特数进行编码。本实施例对于预设编码比特数的具体数值不做限定,例如为8bit。需要说明的是,本实施例对第一标识信息进行编码的实现方式不做限定。可选的,可以采用预设比特数对第一标识信息进行编码。本实施例对于预设编码比特数的具体数值不做限定,例如为8bit或者为Zbit,Z为边信息的个数。下面结合表1通过具体示例进行详细说明。假设边信息有5种,分别为u0,v0,u1,v1和d1。则第一标识信息包括5bit,通过A=abcde标识。其中,每个比特位a,b,c,d,e分别与u0,v0,u1,v1和d1一一对应。第一符号为0,第二符号为1。X个第一点云块的5种边信息u0,v0,u1,v1,d1的最大值分别为max_u0,max_v0,max_u1,max_v1,max_d1。Y个第一点云块的5种边信息u0,v0,u1,v1,d1的最大值分别为max_u0’,max_v0’,max_u1’,max_v1’,max_d1’。对于边信息u0,如果max_u0≥max_u0’,则a=0。此时,可以根据max_u0确定Y个第一点云块的边信息u0对应的第二编码比特数,并采用第二编码比特数对Y个第一点云块的边信息u0进行编码。例如,max_u0=7,第二编码比特数为3。采用第二编码比特数3对Y个第一点云块的边信息u0进行编码。如果max_u0<max_u0’,则a=1。此时,可以根据max_u0’确定Y个第一点云块的边信息u0对应的第三编码比特数,采用第三编码比特数对Y个第一点云块的边信息u0进行编码。相似的,对于边信息v0,u1,v1和d1,根据比较结果可以确定b,c,d,e是0还是1。第一标识信息的具体取值可以参见表2。表2第一标识信息和第二标识信息FA=abcdeFA=abcdeFA=abcdeFA=abcde000000101000110000111000100001101001110001111001100010101010110010111010100011101011110011111011100100101100110100111100100101101101110101111101100110101110110110111110100111101111110111111111在本实施例中,对于X个第一点云块的边信息,是通过对X组边信息差值进行编码实现的。X个第一点云块的边信息编码在前,相应的,X个第一点云块的边信息解码也在前。也就是说,解码装置会首先获得X个第一点云块的边信息。编码时,通过将X个第一点云块的边信息的最大值与Y个第一点云块的边信息的最大值进行比较,如果X个第一点云块的边信息的最大值大于或者等于Y个第一点云块的边信息的最大值,则可以将根据X个第一点云块的边信息的最大值确定的编码所需比特数作为对Y个第一点云块的边信息进行编码时的编码比特数,从而对Y个第一点云块的边信息进行编码。这样,就不需要对Y个第一点云块的边信息对应的编码比特数专门编码并通知给解码装置,进一步压缩了码流,提高了编码效率和压缩性能。相应的,解码时,根据第一标识信息中的各个比特位的取值,如果Y个第一点云块的边信息对应的编码比特数为根据X个第一点云块的边信息的最大值确定的,则根据已经解码获得的X个第一点云块的边信息获得Y个第一点云块的边信息对应的编码比特数,进而可以根据所述编码比特数进一步解析码流获得Y个第一点云块的边信息。可选的,本实施例提供的编码方法,若边信息为Z种,Z>1时,对第一标识信息进行编码之前,还可以包括:确定第一标识信息中至少一个比特位为第二符号。具体的,当边信息为多种时,对于部分边信息,X个第一点云块的边信息的最大值大于或者等于Y个第一点云块的边信息的最大值。对于另一部分边信息,X个第一点云块的边信息的最大值小于Y个第一点云块的边信息的最大值。此时,对第一标识信息编码。可选的,还可以包括:确定第二标识信息为第二符号。对第二标识信息进行编码。具体的,第二标识信息(用F表示)为1bit,指示了X个第一点云块的Z种边信息的最大值是否均大于或者等于Y个第一点云块的Z种边信息的最大值。在该种场景下,第二标识信息为第二符号。Z种边信息中,对于部分边信息,X个第一点云块的边信息的最大值大于或者等于Y个第一点云块的边信息的最大值。对于另一部分边信息,X个第一点云块的边信息的最大值小于Y个第一点云块的边信息的最大值。此时,可以对第一标识信息和第二标识信息均进行编码。可选的,可以对第一标识信息和第二标识信息分别编码。即,采用预设比特数对第一标识信息进行编码,采用1bit对第二标识信息进行编码。例如,若第一标识信息A=abcde,则可以采用5bit对A进行编码。采用1bit对第二标识信息进行编码。可选的,可以采用预设比特数对第一标识信息和第二标识信息进行联合编码。例如,若第一标识信息A=abcde,第二标识信息F=f,则可以通过一个字节对abcdef或者fabcde进行编码。可选的,本实施例提供的编码方法,若边信息为Z种,Z>1,且第一标识信息中每个比特位均为第一符号,还可以包括:确定第二标识信息为第一符号。仅对第二标识信息进行编码。具体的,第二标识信息(用F表示)为1bit。在该种场景下,第二标识信息为第一符号。Z种边信息中,对于每一种边信息,X个第一点云块的边信息的最大值大于或者等于Y个第一点云块的边信息的最大值。此时,不执行S604。仅需要对1bit的第二标识信息进行编码即可,进一步压缩了码流,提高了编码效率和压缩性能。示例性的,第二标识信息的具体取值可以参见表2。需要说明的是,在编码过程中,对Y个第一点云块的边信息、对第一标识信息和/或第二标识信息、对第三编码比特数进行编码的执行顺序不做限定。如果边信息为多种,对于各种边信息的编码顺序不做限定。只要编码装置和解码装置预先定义编码和解码顺序即可。示例性的,下面给出一种具体的编码顺序。步骤1:获取M个第一点云块中剩余的Y个第一点云块的Z种边信息,Y=M-X。步骤2:获取X个第一点云块的第k种边信息的最大值Bk和Y个第一点云块的第k种边信息的最大值Ak,k=1,…,Z。步骤3:若最大值Bk大于或者等于最大值Ak,则确定第一标识信息中与第k种边信息对应的比特位为第一符号。若最大值Bk小于最大值Ak,则确定第一标识信息中与第k种边信息对应的比特位为第二符号。步骤4:若第一标识信息中每个比特位均为第一符号,则确定第二标识信息为第一符号,并对第二标识信息编码。根据最大值Bk确定Y个第一点云块的第k种边信息对应的第二编码比特数,并采用第二编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z。步骤5:若第一标识信息中至少一个比特位为第二符号,则确定第二标识信息为第二符号,对第一标识信息和第二标识信息进行编码。若第一标识信息中与第k种边信息对应的比特位为第一符号,则根据最大值Bk确定Y个第一点云块的第k种边信息对应的第二编码比特数,并采用第二编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z。若第一标识信息中与第k种边信息对应的比特位为第二符号,则根据最大值Ak确定Y个第一点云块的第k种边信息对应的第三编码比特数,对第三编码比特数进行编码,并采用第三编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z。本实施例提供的编码方法,通过将X个第一点云块的边信息的最大值与Y个第一点云块的边信息的最大值进行比较,进而可以确定Y个第一点云块的边信息对应的编码比特数。当采用根据X个第一点云块的边信息的最大值确定的编码比特数对Y个第一点云块的边信息进行编码时,进一步压缩了码流,提高了编码效率和压缩性能。图8为本申请实施例一提供的解码方法的流程图。本实施例提供的解码方法,与图5~图7所示方法实施例提供的编码方法对应。如图8所示,本实施例提供的解码方法,可以包括:S701、根据码流获得当前帧X个第一点云块的X组边信息差值。其中,当前帧的M个第一点云块包括X个第一点云块,X个第一个点云块与当前帧的前一帧的X个第二点云块存在预设的匹配关系,X小于或者等于M,且X和M均为正整数。S702、获取X个第二点云块的边信息。S703、根据X组边信息差值和X个第二点云块的边信息获得X个第一点云块的边信息。可选的,若X<M,本实施例提供的解码方法,还包括:根据码流获得第一编码比特数,第一编码比特数为编码装置根据M个第一点云块中剩余的Y个第一点云块的边信息的最大值A确定的,Y=M-X;采用第一编码比特数根据码流获得Y个第一点云块的边信息。可选的,若X<M,且边信息为Z种,Z≥1,本实施例提供的解码方法,还包括:根据码流获得第一标识信息;若第一标识信息中与第k种边信息对应的比特位为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z;若第一标识信息中与第k种边信息对应的比特位为第二符号,则根据码流获得第三编码比特数,采用第三编码比特数根据码流获得Y个第一点云块的第k种边信息,第三编码比特数为编码装置根据Y个第一点云块的第k种边信息的最大值Ak确定的,k=1,…,Z。可选的,若X<M,且边信息为Z种,Z>1,本实施例提供的解码方法,还包括:根据码流获得标识信息。若标识信息包括第一标识信息,且第一标识信息中与第k种边信息对应的比特位为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z。若标识信息包括第一标识信息,且第一标识信息中与第k种边信息对应的比特位为第二符号,则根据码流获得第三编码比特数,采用第三编码比特数根据码流获得Y个第一点云块的第k种边信息,第三编码比特数为编码装置根据Y个第一点云块的第k种边信息的最大值Ak确定的,k=1,…,Z。若标识信息包括第二标识信息,且第二标识信息为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z。若标识信息包括第一标识信息和第二标识信息,第二标识信息为第二符号且第一标识信息中与第k种边信息对应的比特位为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z。若标识信息包括第一标识信息和第二标识信息,第二标识信息为第二符号且第一标识信息中与第k种边信息对应的比特位为第二符号,则根据码流获得第三编码比特数,采用所述第三编码比特数根据所述码流获得所述Y个第一点云块的第k种边信息,所述第三编码比特数为编码装置根据所述Y个第一点云块的第k种边信息的最大值Ak确定的,k=1,…,Z。示例性的,假设标识信息包括第一标识信息和第二标识信息,下面给出一种具体的解码顺序。步骤11:根据码流获得第二标识信息。步骤12:若第二标识信息为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z。步骤13:若第二标识信息为第二符号,则获得第一标识信息。步骤14:若第一标识信息中与第k种边信息对应的比特位为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z。步骤15:若第一标识信息中与第k种边信息对应的比特位为第二符号,则根据码流获得第三编码比特数,采用第三编码比特数根据码流获得Y个第一点云块的第k种边信息,第三编码比特数为编码装置根据Y个第一点云块的第k种边信息的最大值Ak确定的,k=1,…,Z。其中,步骤13中,获得第一标识信息的方式根据第一标识信息和第二标识信息的编码方式确定。可选的,若第一标识信息和第二标识信息分别编码,例如,第一标识信息采用Zbit编码,第二标识信息采用1bit编码,则解码码流获得第一标识信息。可选的,若第一标识信息和第二标识信息联合编码,例如,通过一个字节对第一标识信息和第二标识信息编码,则在步骤11中,已经获得了第一标识信息。可选的,根据X组边信息差值和X个第二点云块的边信息获得X个第一点云块的边信息,包括:按照X组边信息差值的排列顺序和X个第二点云块的排列顺序,将X组边信息差值中第k组边信息差值与X个第二点云块中第k个第二点云块的边信息之间的和,确定为X个第一点云块中第k个第一点云块的边信息,k=1,…,Z。可选的,根据X组边信息差值和X个第二点云块的边信息获得X个第一点云块的边信息,包括:根据码流获得匹配信息,匹配信息指示了X个第一点云块与X个第二点云块之间的匹配关系。根据匹配信息、X组边信息差值和X个第二点云块的边信息获得X个第一点云块的边信息。可选的,本实施例提供的解码方法,还包括:根据M确定第四编码比特数。采用第四编码比特数根据码流获得X。可选的,边信息包括下列中的至少一种:点云块在三维坐标系中的X坐标最小值(u1),点云块在三维坐标系中的Y坐标最小值(v1),点云块在三维坐标系中的Z坐标最小值(d1),点云块根据投影方向在占用图中的X坐标最小值(u0),点云块根据投影方向在占用图中的Y坐标最小值(v0)。本申请实施例提供的解码方法,与图5~图7所示方法实施例提供的编码方法对应,其技术原理和技术效果类似,此处不再赘述。本申请实施例还提供一种点云数据打包方法,执行主体可以为编码器,用于解决目前仅针对每一帧点云数据进行单独的打包处理而导致的点云块在时间和空间不一致的技术问题。图2中左侧和右侧分别示出了相邻的前后两帧点云数据对应的占用图。如图2左侧所示,单独对前一帧的点云块进行排序,前5个点云块的排序依次为点云块21~25。按照点云块的排列顺序依次在占用图中插入点云块21~25。如图2右侧所示,单独对后一帧的点云块进行排序,前5个点云块的排序依次为点云块31~35。按照点云块的排列顺序依次在占用图中插入点云块31~35。由于单独对每一帧的点云块进行排序,导致了图2左侧的点云块21、点云块22与图2右侧的点云块31、点云块32在前后两帧的占用图上位置不同。破坏了点云块在时间和空间上的一致性,导致后续对点云块的边信息进行编码时造成压缩性能的损失,影响编码性能。本申请实施例提供的点云数据打包方法,主要涉及图3中步骤S101,其他步骤与图3中相似。本申请实施例提供的点云数据打包方法,对当前帧的M个第一点云块进行排序,可以包括:获取当前帧的前一帧中N个第二点云块,N为正整数。对于N个第二点云块中的第i个第二点云块,i=1,…,N,获取第i个第二点云块与j个尚未匹配的第一点云块之间的关联值Qij,并确定出关联值最大的Qik。其中,j个尚未匹配的第一点云块的投影方向与第i个第二点云块的投影方向相同。若Qik大于预设阈值,则确定Qik对应的第k个第一点云块与第i个第二点云块匹配,其中,第k个第一点云块为j个尚未匹配的第一点云块中的一个。若Qik小于或者等于预设阈值,则确定没有第一点云块与第i个第二点云块匹配。根据N个第二点云块的排列顺序,将与N个第二点云块匹配的第一点云块依次排序。需要说明的是,本实施例对于没有与N个第二点云块匹配上的第一点云块的排列顺序不做限定。可选的,关联值Qij可以为第一参考值与第二参考值的商。所述第一参考值为第一占用矩阵和第二占用矩阵的交集区域的面积,第二参考值为第一占用矩阵和第二占用矩阵的并集区域的面积。或者,第一参考值为第一占用矩阵的有效区域和第二占用矩阵的有效区域的交集区域中包含的像素点个数,第二参考值为第一占用矩阵的有效区域和第二占用矩阵的有效区域的并集区域中包含的像素点个数。其中,第一占用矩阵的有效区域为第j个第一点云块根据投影方向在二维平面投影后实际占用的区域,第二占用矩阵的有效区域为第i个第二点云块根据投影方向在二维平面投影后实际占用的区域,第一占用矩阵为第一占用矩阵的有效区域对应的矩阵区域,第二占用矩阵为第二占用矩阵的有效区域对应的矩阵区域。可选的,在获取当前帧的前一帧中N个第二点云块之前,还可以包括:对M个第一点云块进行排序。详细说明请参见图5所示方法实施例,其技术原理和技术效果类似,此处不再赘述。下面通过具体示例说明。图9为本申请实施例涉及的占用图的示意图。图9中左侧和右侧分别示出了相邻的前后两帧点云块对应的占用图。如图9左侧所示,以点云块41~44为例,前一帧点云块41~44的排序依次为点云块41~44。如图9右侧所示,对当前帧的点云块进行排序时,需要与点云块41~44进行匹配。匹配后,点云块51~54的排序依次为点云块51~54。确保了前后两帧中具有匹配关系的点云块在占用图中具有相同的位置,保证了点云块在时间和空间上的一致性。因此,在后续对点云块的边信息进行编码时可以提升编码压缩性能。本实施例提供的点云数据打包方法,根据前一帧点云块的排序获得当前帧点云块的排序,确保了前后两帧的点云块在时间和空间上的一致性,提升了后续的编码压缩性能。本实施例还提供一种编码装置,包括处理模块,用于执行本申请实施例提供的点云数据打包方法,其技术原理和技术效果类似,此处不再赘述。图10为本申请实施例一提供的编码装置的结构示意图。本申请实施例提供的编码装置,用于执行图5~图7所示任一方法实施例提供的编码方法。如图10所示,本申请实施例提供的编码装置,可以包括:确定模块61,用于在当前帧的M个第一点云块中确定X个第一点云块。X个第一个点云块与X个第二点云块存在预设的匹配关系,X个第二点云块包含在当前帧的前一帧中。其中,X小于或者等于M,且X和M均为正整数。获取模块62,用于获取X个第一点云块的边信息和X个第二点云块的边信息。编码模块63,用于根据X个第一点云块的边信息和X个第二点云块的边信息得到X组边信息差值,对X组边信息差值进行编码。可选的,若X<M,获取模块62还用于:获取M个第一点云块中剩余的Y个第一点云块的边信息,Y=M-X。获取Y个第一点云块的边信息的最大值A。编码模块63还用于:根据最大值A确定Y个第一点云块的边信息对应的第一编码比特数。对第一编码比特数进行编码。采用第一编码比特数对Y个第一点云块的边信息进行编码。可选的,若X<M,且边信息为Z种,Z>1,获取模块62还用于:获取M个第一点云块中剩余的Y个第一点云块的Z种边信息,Y=M-X。获取X个第一点云块的第k种边信息的最大值Bk和Y个第一点云块的第k种边信息的最大值Ak,k=1,…,Z。编码模块63还用于:若最大值Bk大于或者等于最大值Ak,则确定第一标识信息中与第k种边信息对应的比特位为第一符号。若最大值Bk小于最大值Ak,则确定第一标识信息中与第k种边信息对应的比特位为第二符号。若第一标识信息中每个比特位均为第一符号,则确定第二标识信息为第一符号,并对第二标识信息编码。根据最大值Bk确定Y个第一点云块的第k种边信息对应的第二编码比特数,并采用第二编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z。若第一标识信息中至少一个比特位为第二符号,则确定第二标识信息为第二符号,对第一标识信息和第二标识信息进行编码。若第一标识信息中与第k种边信息对应的比特位为第一符号,则根据最大值Bk确定Y个第一点云块的第k种边信息对应的第二编码比特数,并采用第二编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z。若第一标识信息中与第k种边信息对应的比特位为第二符号,则根据最大值Ak确定Y个第一点云块的第k种边信息对应的第三编码比特数,对第三编码比特数进行编码,并采用第三编码比特数对Y个第一点云块的第k种边信息进行编码,k=1,…,Z。可选的,确定模块61具体用于通过下述步骤确定预设的匹配关系:获取当前帧的前一帧中N个第二点云块,N为正整数。对于N个第二点云块中的第i个第二点云块,i=1,…,N,获取第i个第二点云块与j个尚未匹配的第一点云块之间的关联值Qij,并确定出关联值最大的Qik,其中,j个尚未匹配的第一点云块的投影方向与第i个第二点云块的投影方向相同。若Qik大于预设阈值,则确定Qik对应的第k个第一点云块与第i个第二点云块匹配,其中,第k个第一点云块为j个尚未匹配的第一点云块中的一个。可选的,若确定出O个第一点云块存在匹配关系,确定模块61具体用于:在O个第一点云块中确定X个第一点云块,O个第一点云块为与N个第二点云块匹配的第一点云块,O≥X。可选的,关联值Qij为第一参考值与第二参考值的商。第一参考值为第一占用矩阵和第二占用矩阵的交集区域的面积,第二参考值为第一占用矩阵和第二占用矩阵的并集区域的面积。或者,第一参考值为第一占用矩阵的有效区域和第二占用矩阵的有效区域的交集区域中包含的像素点个数,第二参考值为第一占用矩阵的有效区域和第二占用矩阵的有效区域的并集区域中包含的像素点个数。其中,第一占用矩阵的有效区域为第j个第一点云块根据投影方向在二维平面投影后实际占用的区域,第二占用矩阵的有效区域为第i个第二点云块根据投影方向在二维平面投影后实际占用的区域,第一占用矩阵为第一占用矩阵的有效区域对应的矩阵区域,第二占用矩阵为第二占用矩阵的有效区域对应的矩阵区域。可选的,预设的匹配关系包括:按照X个第一点云块的排列顺序和X个第二点云块的排列顺序,X个第一个点云块中的第k个第一点云块与X个第二个点云块中的第k个第二点云块匹配,k=1,…,X。可选的,编码模块63具体用于:将X个第一点云块的边信息分别和与X个第一点云块匹配的X个第二点云块的边信息之间的差值确定为X组边信息差值。获取模块62还用于,获取匹配信息,匹配信息指示了X个第一点云块与X个第二点云块之间的匹配关系。编码模块63还用于,对匹配信息进行编码。可选的,编码模块63具体用于:按照X个第一点云块的排列顺序和X个第二点云块的排列顺序,将X个第一个点云块中第k个第一点云块的边信息与X个第二个点云块中第k个第二点云块的边信息之间的差值,确定为X组边信息差值中的第k组边信息差值,k=1,…,X。可选的,编码模块63还用于:根据M确定第四编码比特数。采用第四编码比特数对X进行编码。可选的,边信息包括下列中的至少一种:点云块在三维坐标系中的X坐标最小值、点云块在三维坐标系中的Y坐标最小值、点云块在三维坐标系中的Z坐标最小值、点云块根据投影方向在占用图中的X坐标最小值和点云块根据投影方向在占用图中的Y坐标最小值。本实施例提供的编码装置,可以执行图5~图7所示任一实施例提供的编码方法,其技术原理和技术效果类似,此处不再赘述。图11为本申请实施例一提供的解码装置的结构示意图。本申请实施例提供的解码装置,用于执行图8所示方法实施例提供的解码方法。如图11所示,本申请实施例提供的解码装置,可以包括:解码模块72,用于根据码流获得当前帧X个第一点云块的X组边信息差值。其中,当前帧的M个第一点云块包括X个第一点云块,X个第一个点云块与当前帧的前一帧的X个第二点云块存在预设的匹配关系,X小于或者等于M,且X和M均为正整数。获取模块71,用于获取X个第二点云块的边信息。解码模块72还用于,根据X组边信息差值和X个第二点云块的边信息获得X个第一点云块的边信息。可选的,若X<M,解码模块72还用于:根据码流获得第一编码比特数,第一编码比特数为编码装置根据M个第一点云块中剩余的Y个第一点云块的边信息的最大值A确定的,Y=M-X。采用第一编码比特数根据码流获得Y个第一点云块的边信息。可选的,若X<M,且边信息为Z种,Z>1,解码模块72还用于:根据码流获得第二标识信息。若第二标识信息为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z。若第二标识信息为第二符号,则获得第一标识信息。若第一标识信息中与第k种边信息对应的比特位为第一符号,则根据X个第一点云块的第k种边信息的最大值Bk确定第二编码比特数,采用第二编码比特数根据码流获得M个第一点云块中剩余的Y个第一点云块的第k种边信息,k=1,…,Z。若第一标识信息中与第k种边信息对应的比特位为第二符号,则根据码流获得第三编码比特数,采用第三编码比特数根据码流获得Y个第一点云块的第k种边信息,第三编码比特数为编码装置根据Y个第一点云块的第k种边信息的最大值Ak确定的,k=1,…,Z。可选的,解码模块72还用于:根据M确定第四编码比特数。采用第四编码比特数根据码流获得X。本实施例提供的解码装置,可以执行图8所示实施例提供的解码方法,其技术原理和技术效果类似,此处不再赘述。图12为本申请实施例一提供的编码器的结构示意图。如图12所示,本实施例提供的编码器,可以包括:处理器81和存储器82。其中,所述存储器82用于存储指令。所述处理器81用于执行所述存储器中存储的指令,以使所述编码器执行图5~图7所示任一实施例提供的编码方法,具体实现方式和技术效果类似,这里不再赘述。该编码还可以包括收发器83,所述收发器83用于和其他设备通信。图13为本申请实施例一提供的解码器的结构示意图。如图13所示,本实施例提供的解码器,可以包括:处理器91和存储器92。其中,所述存储器92用于存储指令。所述处理器91用于执行所述存储器中存储的指令,以使所述网络设备执行图8所示实施例提供的解码方法,具体实现方式和技术效果类似,这里不再赘述。该解码器还可以包括收发器93,所述收发器93用于和其他设备通信。可以理解,本申请实施例中的处理器可以是中央处理器(CPU),通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC),现场可编程门阵列(FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solidstatedisk(SSD))等。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1