首页 / 专利库 / 人工智能 / n元语法 / 点云编解码方法和编解码器

编解码方法和编解码器

阅读:68发布:2020-05-11

专利汇可以提供编解码方法和编解码器专利检索,专利查询,专利分析的服务。并且本 申请 公开了点 云 编解码方法和编 解码器 ,涉及编解码技术领域,用于提供有效地对点云数据进行编解码的技术方案。该点云编码方法包括:获取点云组的并集占用图的辅助信息;其中,该点云组包括N 帧 点云,N≥2,N是整数,该并集占用图是该N帧点云中具有匹配关系的N个patch的占用图的并集;该并集占用图的辅助信息用于确定该N个patch的辅助信息;将语法元素编入码流,该语法元素包括该并集占用图的辅助信息。本申请提供的技术方案有助于在不影响编解码性能的前提下,节省码流传输开销。,下面是编解码方法和编解码器专利的具体信息内容。

1.一种点编码方法,其特征在于,包括:
获取点云组的并集占用图的辅助信息;其中,所述点云组包括N点云,N≥2,N是整数,所述并集占用图是所述N帧点云中具有匹配关系的N个点云patch的占用图的并集;所述并集占用图的辅助信息用于确定所述N个patch的辅助信息;
将语法元素编入码流,所述语法元素包括所述并集占用图的辅助信息。
2.根据权利要求1所述的点云编码方法,其特征在于,所述并集占用图的辅助信息包括以下信息中的至少一种:所述并集占用图在全局占用图中的坐标值、所述并集占用图在全局占用图中的尺寸信息和所述并集占用图对应在三维空间中的坐标值;
其中,所述全局占用图是对所述点云组中的多个所述并集占用图进行打包得到的占用图。
3.根据权利要求1或2所述的点云编码方法,其特征在于,所述语法元素还包括:所述N个patch中的一个或多个patch的对应辅助信息与所述并集占用图的辅助信息的差值。
4.根据权利要求1至3任一项所述的点云编码方法,其特征在于,所述获取所述点云组的并集占用图的辅助信息,包括:
基于所述N个patch的辅助信息,获取所述并集占用图的辅助信息。
5.根据权利要求4所述的点云编码方法,其特征在于,所述基于所述N个patch的辅助信息,获取所述并集占用图的辅助信息,包括:
当所述并集占用图的辅助信息包括所述并集占用图在全局占用图中的坐标值时,将所述N个patch的占用图在对应点云的占用图中的最大坐标值或最小坐标值,作为所述并集占用图在全局占用图中的坐标值;
和/或,当所述并集占用图的辅助信息包括所述并集占用图在全局占用图中的尺寸信息时,将所述N个patch的占用图在对应点云的占用图中的最大尺寸的信息作为所述并集占用图在全局占用图中的尺寸信息;
和/或,当所述并集占用图的辅助信息包括所述并集占用图对应在三维空间中的坐标值时,将所述N个patch在对应点云中的最大坐标值或最小坐标值作为所述并集占用图对应在三维空间中的坐标值。
6.根据权利要求4或5所述的点云编码方法,其特征在于,所述方法还包括:
根据所述N帧点云中的多个patch的辅助信息,重构所述N帧点云;其中,所述多个patch包括所述N个patch。
7.根据权利要求1至6任一项所述的点云编码方法,其特征在于,所述点云组是帧组GOF或子GOF,所述子GOF包括一个GOF中连续的多帧点云。
8.根据权利要求7所述的点云编码方法,其特征在于,若所述点云组是所述子GOF,所述语法元素还包括:表示所述子GOF包含的点云在所述子GOF所属的GOF中的位置的信息。
9.根据权利要求8所述的点云编码方法,其特征在于,所述表示所述子GOF包含的点云在所述子GOF所属的GOF中的位置的信息,包括:所述子GOF包含的起始帧的编号,和/或所述子GOF包含的点云的帧数。
10.一种点云解码方法,其特征在于,包括:
解析码流,以得到语法元素,所述语法元素包括点云组的并集占用图的辅助信息,所述点云组包括N帧点云,N≥2,N是整数,所述并集占用图是所述N帧点云中具有匹配关系的N个点云块patch的占用图的并集;
根据解析得到的所述并集占用图的辅助信息,确定所述N个patch的辅助信息;
基于所述N帧点云中的多个patch的辅助信息,重构所述N帧点云;其中,所述多个patch包括所述N个patch。
11.根据权利要求10所述的点云解码方法,其特征在于,所述并集占用图的辅助信息包括以下信息中的至少一种:所述并集占用图在全局占用图中的坐标值、所述并集占用图在全局占用图中的尺寸信息和所述并集占用图对应在三维空间中的坐标值;
其中,所述全局占用图是对所述点云组中的多个所述并集占用图进行打包得到的占用图。
12.根据权利要求10或11所述的点云解码方法,其特征在于,所述语法元素还包括:所述N个patch中的一个或多个patch的对应辅助信息与所述并集占用图的辅助信息的差值;
所述根据解析得到的所述并集占用图的辅助信息,确定所述N个patch的辅助信息,包括:
根据解析得到的所述并集占用图的辅助信息,以及所述N个patch中的一个或多个patch的对应辅助信息与所述并集占用图的辅助信息的差值,确定所述N个patch的辅助信息。
13.根据权利要求10至12任一项所述的点云解码方法,其特征在于,所述点云组是帧组GOF或子GOF,所述子GOF包括一个GOF中连续的多帧点云。
14.根据权利要求13所述的点云解码方法,其特征在于,若所述点云组是所述子GOF,所述语法元素还包括:表示所述子GOF包含的点云在所述子GOF所属的GOF中的位置的信息;所述方法还包括:
根据解析得到的所述表示所述子GOF包含的点云在所述子GOF所属的GOF中的位置的信息,确定所述子GOF包含的点云在所述子GOF所属的GOF中的位置。
15.根据权利要求14所述的点云解码方法,其特征在于,所述表示所述子GOF包含的点云在所述子GOF所属的GOF中的位置的信息,包括:所述子GOF包含的起始帧的编号和/或所述子GOF包含的点云的帧数。
16.一种点云编码方法,其特征在于,包括:
确定指示信息,所述指示信息指示是否采用目标点云编码方法对点云组中的N个点云块patch的辅助信息进行编码,所述目标点云编码方法包括权利要求1至9任一项所述的点云编码方法;所述点云组包括N帧点云,N≥2,N是整数;所述N个patch是所述N帧点云中具有匹配关系的N个patch;
将所述指示信息编入码流。
17.一种点云解码方法,其特征在于,包括:
解析码流,以得到指示信息,所述指示信息指示是否采用目标点云解码方法对点云组中的N个点云块patch的辅助信息进行解码,所述目标点云解码方法包括权利要求10至15任一项所述的点云解码方法;所述点云组包括N帧点云,N≥2,N是整数;所述N个patch是所述N帧点云中具有匹配关系的N个patch;
当所述指示信息指示采用所述目标点云解码方法进行解码时,采用所述目标点云解码方法对所述N个patch的辅助信息进行处理。
18.一种编码器,其特征在于,包括:
打包模块,用于获取点云组的并集占用图的辅助信息;其中,所述点云组包括N帧点云,N≥2,N是整数,所述并集占用图是所述N帧点云中具有匹配关系的N个点云块patch的占用图的并集;所述并集占用图的辅助信息用于确定所述N个patch的辅助信息;
辅助信息编码模块,用于将语法元素编入码流,所述语法元素包括所述并集占用图的辅助信息。
19.根据权利要求18所述的编码器,其特征在于,所述并集占用图的辅助信息包括以下信息中的至少一种:所述并集占用图在全局占用图中的坐标值、所述并集占用图在全局占用图中的尺寸信息和所述并集占用图对应在三维空间中的坐标值;
其中,所述全局占用图是对所述点云组中的多个所述并集占用图进行打包得到的占用图。
20.根据权利要求18或19所述的编码器,其特征在于,所述语法元素还包括:所述N个patch中的一个或多个patch的对应辅助信息与所述并集占用图的辅助信息的差值。
21.根据权利要求18至20任一项所述的编码器,其特征在于,所述打包模块具体用于:
基于所述N个patch的辅助信息,获取所述并集占用图的辅助信息。
22.根据权利要求21所述的编码器,其特征在于,所述打包模块具体用于:
当所述并集占用图的辅助信息包括所述并集占用图在全局占用图中的坐标值时,将所述N个patch的占用图在对应点云的占用图中的最大坐标值或最小坐标值,作为所述并集占用图在全局占用图中的坐标值;
和/或,当所述并集占用图的辅助信息包括所述并集占用图在全局占用图中的尺寸信息时,将所述N个patch的占用图在对应点云的占用图中的最大尺寸的信息作为所述并集占用图在全局占用图中的尺寸信息;
和/或,当所述并集占用图的辅助信息包括所述并集占用图对应在三维空间中的坐标值时,将所述N个patch在对应点云中的最大坐标值或最小坐标值作为所述并集占用图对应在三维空间中的坐标值。
23.根据权利要求21或22所述的编码器,其特征在于,所述编码器还包括:
点云重构模块,用于根据所述N帧点云中的多个patch的辅助信息,重构所述N帧点云;
其中,所述多个patch包括所述N个patch。
24.根据权利要求18至23任一项所述的编码器,其特征在于,所述点云组是帧组GOF或子GOF,所述子GOF包括一个GOF中连续的多帧点云。
25.根据权利要求24所述的编码器,其特征在于,若所述点云组是所述子GOF,所述语法元素还包括:表示所述子GOF包含的点云在所述子GOF所属的GOF中的位置的信息。
26.根据权利要求25所述的编码器,其特征在于,所述表示所述子GOF包含的点云在所述子GOF所属的GOF中的位置的信息,包括:所述子GOF包含的起始帧的编号和/或所述子GOF包含的点云的帧数。
27.一种解码器,其特征在于,包括:
辅助信息解码模块,用于解析码流,以得到语法元素,所述语法元素包括点云组的并集占用图的辅助信息,所述点云组包括N帧点云,N≥2,N是整数,所述并集占用图是所述N帧点云中具有匹配关系的N个点云块patch的占用图的并集;根据解析得到的所述并集占用图的辅助信息,确定所述N个patch的辅助信息;
点云重构模块,用于基于所述N帧点云中的多个patch的辅助信息,重构所述N帧点云;
其中,所述多个patch包括所述N个patch。
28.根据权利要求27所述的解码器,其特征在于,所述并集占用图的辅助信息包括以下信息中的至少一种:所述并集占用图在全局占用图中的坐标值、所述并集占用图在全局占用图中的尺寸信息和所述并集占用图对应在三维空间中的坐标值;
其中,所述全局占用图是对所述点云组中的多个所述并集占用图进行打包得到的占用图。
29.根据权利要求27或28所述的解码器,其特征在于,所述语法元素还包括:所述N个patch中的一个或多个patch的对应辅助信息与所述并集占用图的辅助信息的差值;
在所述根据解析得到的所述并集占用图的辅助信息,确定所述N个patch的辅助信息的方面,所述辅助信息解码模块具体用于:根据解析得到的所述并集占用图的辅助信息,以及所述N个patch中的一个或多个patch的对应辅助信息与所述并集占用图的辅助信息的差值,确定所述N个patch的辅助信息。
30.根据权利要求27至29任一项所述的解码器,其特征在于,所述点云组是帧组GOF或子GOF,所述子GOF包括一个GOF中连续的多帧点云。
31.根据权利要求30所述的解码器,其特征在于,若所述点云组是所述子GOF,所述语法元素还包括:表示所述子GOF包含的点云在所述子GOF所属的GOF中的位置的信息;
所述辅助信息解码模块还用于,根据解析得到的所述表示所述子GOF包含的点云在所述子GOF所属的GOF中的位置的信息,确定所述子GOF包含的点云在所述子GOF所属的GOF中的位置。
32.根据权利要求31所述的解码器,其特征在于,所述表示所述子GOF包含的点云在所述子GOF所属的GOF中的位置的信息,包括:所述子GOF包含的起始帧的编号和/或所述子GOF包含的点云的帧数。
33.一种编码器,其特征在于,包括:
打包模块,用于确定指示信息,所述指示信息指示是否采用目标点云编码方法对点云组中的N个点云块patch的辅助信息进行编码,所述目标点云编码方法包括权利要求1至9任一项所述的点云编码方法;所述点云组包括N帧点云,N≥2,N是整数;所述N个patch是所述N帧点云中具有匹配关系的N个patch;
辅助信息编码模块,用于将所述指示信息编入码流。
34.一种解码器,其特征在于,包括:辅助信息解码模块和点云重构模块;
所述辅助信息解码模块,用于解析码流,以得到指示信息,所述指示信息指示是否采用目标点云解码方法对点云组中的N个点云块patch的辅助信息进行解码,所述目标点云解码方法包括权利要求10至15任一项所述的点云解码方法;所述点云组包括N帧点云,N≥2,N是整数;所述N个patch是所述N帧点云中具有匹配关系的N个patch;
当所述指示信息指示采用所述目标点云解码方法进行解码时,所述辅助信息解码模块和所述点云重构模块采用所述目标点云解码方法对所述N个patch的辅助信息进行处理。
35.一种编码装置,其特征在于,包括存储器和处理器;其中,所述存储器用于存储程序代码;所述处理器用于调用所述程序代码,以执行如权利要求1至9任一项或权利要求16所述的点云编码方法。
36.一种解码装置,其特征在于,包括存储器和处理器;其中,所述存储器用于存储程序代码;所述处理器用于调用所述程序代码,以执行如权利要求10至15任一项或权利要求17所述的点云解码方法。
37.一种计算机可读存储介质,其特征在于,包括程序代码,当所述程序代码在计算机上运行时,使得所述计算机执行如权利要求1至9任一项或权利要求16所述的点云编码方法。
38.一种计算机可读存储介质,其特征在于,包括程序代码,当所述程序代码在计算机上运行时,使得所述计算机执行如权利要求10至15任一项或权利要求17所述的点云解码方法。

说明书全文

编解码方法和编解码器

技术领域

[0001] 本申请涉及编解码技术领域,尤其涉及点云(point cloud)编解码方法和编解码器。

背景技术

[0002] 随着3d传感器(例如3d扫描仪)技术的不断发展,采集点云数据越来越便捷,所采集的点云数据的规模也越来越大,因此,如何有效地对点云数据进行编码,成为迫切需要解决的问题。发明内容
[0003] 本申请实施例提供了点云编解码方法和编解码器,用于提供有效地对点云数据进行编解码的技术方案,具体的,有助于在不影响编解码性能的前提下,节省码流传输开销。
[0004] 第一方面,提供一种点云编码方法,包括:获取点云组的并集占用图的辅助信息;其中,该点云组包括N点云,N≥2,N是整数,该并集占用图是该N帧点云中具有匹配关系的N个点云(patch)的占用图的并集;该并集占用图的辅助信息用于确定(具体的,用于解码器确定)该N个patch的辅助信息(auxiliary information);将语法元素编入码流,该语法元素包括该并集占用图的辅助信息。该技术方案的执行主体可以是编码器
[0005] 其中,该N个patch中的每个patch来自该N帧点云中的一帧点云,且不同patch来自不同的点云。例如,假设N=4,则4帧点云中具有匹配关系的4个patch分别来自于或分别被包括于该4帧点云。与一个patch具有匹配关系的patch是目标patch的匹配patch,目标patch是该patch或者该patch的匹配patch。该N个patch中的每个patch均可以被称为是全局匹配patch(global matched patch)。
[0006] 由于并集占用图与该并集占用图对应的N个patch的占用图之间的相关性,例如并集占用图在全局占用图中的位置信息,对应于上述N个patch的占用图在其所属的点云的占用图中的位置信息,和/或并集占用图是该N个patch的占用图的并集等,因此,可以通过并集占用图的辅助信息表示或近似表示该N个patch的辅助信息。这样,在不影响编解码性能的前提下,可以节省码流传输开销。
[0007] 在一种可能的设计中,并集占用图的辅助信息包括以下信息中的至少一种:并集占用图在全局占用图中的坐标值、并集占用图在全局占用图中的尺寸信息和并集占用图对应在三维空间中的坐标值。全局占用图是对该点云组中的多个并集占用图进行打包得到的占用图。
[0008] 其中,并集占用图在全局占用图中的坐标值包括:并集占用图的u0和/或v0。
[0009] 其中,并集占用图在全局占用图中的尺寸信息包括:并集占用图的sizeU0和/或sizeV0。
[0010] 其中,并集占用图对应在三维空间中的坐标值,是指该并集占用图对应的N个patch在三维空间中的最小(或最大)坐标值。以最小坐标值为例,并集占用图对应在三维空间中的坐标值可以包括:该N个patch在三维空间中的最小u1值、最小v1值和/或最小d1值。
[0011] 在一种可能的设计中,上述N个patch中的一个或多个patch的对应辅助信息与该并集占用图的辅助信息的差值。该一个或多个patch的对应辅助信息是指与该并集占用图的辅助信息是同类型的辅助信息,例如均是u0等。该可能的设计使用差分方式传输并集占用图对应的一个或多个patch的辅助信息,这样,有助于提高N个patch中的该一个或多个patch的辅助信息的准确度和/或设置灵活性。具体实现的过程中,可选的,如果该N个patch中的某个patch的辅助信息与该并集占用图的辅助信息相同,则该某个patch的辅助信息与该并集占用图的辅助信息的差值为0,则该差值可以不被编入码流。
[0012] 在一种可能的设计中,获取该点云组的并集占用图的辅助信息,包括:基于上述N个patch的辅助信息,获取该并集占用图的辅助信息。
[0013] 在一种可能的设计中,基于该N个patch的辅助信息,获取该并集占用图的辅助信息,包括:
[0014] 当该并集占用图的辅助信息包括该并集占用图在全局占用图中的坐标值时,将该N个patch的占用图在对应点云的占用图中的最大坐标值或最小坐标值,作为该并集占用图在全局占用图中的坐标值。例如,将该N个patch的占用图的u0的最小值或最大值作为该并集占用图的u0;和/或将该N个patch的占用图的v0的最小值或最大值作为该并集占用图的v0。
[0015] 和/或,当该并集占用图的辅助信息包括该并集占用图在全局占用图中的尺寸信息时,将该N个patch的占用图在对应点云的占用图中的最大尺寸的信息作为该并集占用图在全局占用图中的尺寸信息。例如,将该N个patch的占用图的sizeU0的最大值作为并集占用图的sizeV0,和/或将该N个patch的占用图的sizeU0的最大值作为并集占用图的sizeV0。
[0016] 和/或,当该并集占用图的辅助信息包括该并集占用图对应在三维空间中的坐标值时,将该N个patch在对应点云中的最大坐标值或最小坐标值作为该并集占用图对应在三维空间中的坐标值。例如,以最小坐标值为例,将该N个patch的u1中的最小值作为该并集占用图的u1的值,将该N个patch的v1中的最小值作为该并集占用图的v1的值,该N个patch的d1中的最小值作为该并集占用图的d1的值。
[0017] 其中,一个patch的占用图在对应点云的占用图中的坐标轴,是该patch的占用图在该patch所属的点云的占用图中的坐标值。一个patch在对应点云中的坐标值,是该patch在该patch所属的点云中的坐标值。
[0018] 在一种可能的设计中,该方法还包括:根据上述N帧点云中的多个patch(如所有patch)的辅助信息,重构上述N帧点云。其中,该多个patch包括上述N个patch。
[0019] 在一种可能的设计中,该点云组是帧组(group of frame,GOF)GOF或子GOF,子GOF包括一个GOF中连续的多帧点云。
[0020] 在一种可能的设计中,若该点云组是子GOF,上述语法元素还包括表示该子GOF包含的点云(如每帧点云)在该子GOF所属的GOF中的位置的信息,例如该子GOF的起始帧的编号和/或该子GOF所包含的帧数等。
[0021] 第二方面,提供一种点云解码方法,包括:解析码流,以得到语法元素,该语法元素包括点云组的并集占用图的辅助信息,该点云组包括N帧点云,N≥2,N是整数,该并集占用图是N帧点云中具有匹配关系的N个patch的占用图的并集;根据解析得到的该并集占用图的辅助信息,确定该N个patch的辅助信息;基于该N帧点云中的多个patch的辅助信息,重构该N帧点云;其中,该多个patch包括该N个patch。该技术方案的执行主体可以是解码器。可选的,该方法还可以包括显示经重构的点云。
[0022] 在一种可能的设计中,并集占用图的辅助信息包括以下信息中的至少一种:并集占用图在全局占用图中的坐标值、并集占用图在全局占用图中的尺寸信息和并集占用图对应在三维空间中的坐标值。其中,全局占用图是对点云组中的多个并集占用图进行打包得到的占用图。
[0023] 在一种可能的设计中,该语法元素还包括:该N个patch中的一个或多个patch的对应辅助信息与该并集占用图的辅助信息的差值。该情况下,根据解析得到的该并集占用图的辅助信息,确定该N个patch的辅助信息,包括:根据解析得到的该并集占用图的辅助信息,以及该N个patch中的一个或多个patch的对应辅助信息与并集占用图的辅助信息的差值,确定该N个patch的辅助信息。例如,将该并集占用图的辅助信息以及该N个patch的其中一个patch的对应辅助信息与并集占用图的辅助信息的差值求和,得到该patch的对应辅助信息。
[0024] 在一种可能的设计中,该点云组是GOF或子GOF。子GOF包括一个GOF中连续的多帧点云。
[0025] 在一种可能的设计中,若该点云组是子GOF,上述语法元素还包括:表示子GOF包含的每帧点云在子GOF所属的GOF中的位置的信息,例如该子GOF的起始帧的编号和/或该子GOF所包含的帧数等。该情况下,上述方法还包括:根据解析得到的表示该子GOF包含的每帧点云在该子GOF所属的GOF中的位置的信息,确定该子GOF包含的每帧点云在该子GOF所属的GOF中的位置。
[0026] 第二方面或第二方面提供的任意一种可能的设计与第一方面或第一方面对应的可能的设计相对应,因此,第二方面或第二方面提供的任意一种可能的设计中的相关内容的解释、具体实现方式,以及有益效果的描述均可以参考上述第一方面或第一方面可能的设计中的描述,或根据上述第一方面或第一方面可能的设计中的描述推理得到,此处不再赘述。
[0027] 第三方面,提供一种点云编码方法,包括:确定指示信息,并将该指示信息编入码流。该指示信息指示是否采用目标点云编码方法对点云组中的N个patch的辅助信息进行编码,该目标点云编码方法包括上述第一方面或第一方面提供的任意一种可能的设计所描述的点云编码方法;该点云组包括N帧点云,N≥2,N是整数;该N个patch是该N帧点云中具有匹配关系的N个patch。也就是说,本申请实施例提供的技术方案支持从候选的至少两种点云编码方法中选择出目标点云编码方法的技术方案。
[0028] 第四方面,提供一种点云解码方法,包括:解析码流,以得到指示信息,该指示信息指示是否采用目标点云解码方法对点云组中的N个patch的辅助信息进行解码,该目标点云解码方法包括上述第二方面或第二方面提供的任意一种可能的设计所描述点云解码方法;该点云组包括N帧点云,N≥2,N是整数;该N个patch是该N帧点云中具有匹配关系的N个patch;当该指示信息指示采用目标点云解码方法进行解码时,采用目标点云解码方法对该N个patch的辅助信息进行处理。也就是说,本申请实施例提供的技术方案支持从候选的至少两种点云解码方法中选择出目标点云解码方法的技术方案。
[0029] 第五方面,提供一种编码器,包括:用于执行上述第一方面或第一方面任意一种可能的设计提供的方法的各个模块,或者用于执行上述第三方面或第三方面任意一种可能的设计提供的方法的各个模块。
[0030] 在一种可能的实现方式中,可以根据上述第一/三方面或第一/三方面中任意一种可能的实现方式所提供的方法对编码器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
[0031] 在一种可能的实现方式中,该编码器包括打包模块和辅助信息编码模块。
[0032] 例如,应用于上述第一方面的技术方案时,打包模块用于获取点云组的并集占用图的辅助信息;该点云组包括N帧点云,N≥2,N是整数,该并集占用图是该N帧点云中具有匹配关系的N个patch的占用图的并集;该并集占用图的辅助信息用于确定该N个patch的辅助信息。辅助信息编码模块用于将包含该并集占用图的辅助信息的语法元素编入码流。
[0033] 又如,应用于上述第三方面的技术方案时,打包模块用于确定指示信息,该指示信息指示是否采用目标点云编码方法对点云组中的N个patch的辅助信息进行编码,该目标点云编码方法包括上述第一方面或第一方面提供的任意一种可能的设计所描述的点云编码方法;该点云组包括N帧点云,N≥2,N是整数;该N个patch是该N帧点云中具有匹配关系的N个patch。辅助信息编码模块用于将该指示信息编入码流。
[0034] 第六方面,提供一种解码器,包括:用于执行上述第二方面或第二方面任意一种可能的设计提供的方法的各个模块,或者用于执行上述第四方面或第四方面任意一种可能的设计提供的方法的各个模块。
[0035] 在一种可能的实现方式中,可以根据上述第二/四方面或第二/四方面中任意一种可能的实现方式所提供的方法对解码器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
[0036] 在一种可能的实现方式中,该解码器包括辅助信息解码模块和点云重构模块。
[0037] 例如,应用于上述第二方面的技术方案时,辅助信息解码模块用于解析码流,以得到语法元素,该语法元素包括该点云组的并集占用图的辅助信息,该并集占用图是该N帧点云中具有匹配关系的N个patch的占用图的并集;根据解析得到的该并集占用图的辅助信息,确定该N个patch的辅助信息。点云重构模块用于基于该N帧点云中的多个patch的辅助信息,重构该N帧点云;其中,该多个patch包括该N个patch。
[0038] 又如,应用于上述第四方面的技术方案时,辅助信息解码模块用于解析码流,以得到指示信息,该指示信息指示是否采用目标点云解码方法对点云组中的N个patch的辅助信息进行解码,该目标点云解码方法包括上述第二方面或第二方面提供的任意一种可能的设计所描述点云解码方法;该点云组包括N帧点云,N≥2,N是整数;该N个patch是该N帧点云中具有匹配关系的N个patch;以及,当该指示信息指示采用目标点云解码方法进行解码时,采用目标点云解码方法对该N个patch的辅助信息进行解码。点云重构模块用于基于解码得到的该N帧点云中的多个patch的辅助信息,重构所述N帧点云;该多个patch包括该N个patch。
[0039] 第七方面,提供一种用于编码点云数据的设备,该设备可以包括:
[0040] 存储器,用于存储点云数据。
[0041] 编码器,用于执行上述第一方面或第一方面的任意一种可能的设计,或者第三方面或第三方面的任意一种可能的设计所描述的点云编码方法。
[0042] 第八方面,提供一种编码装置,该装置包括存储器和处理器。存储器用于存储程序代码;处理器用于调用该程序代码,以执行第一方面或第一方面的任意一种可能的设计,或者第三方面或第三方面的任意一种可能的设计所描述的点云编码方法。
[0043] 第九方面,提供一种用于解码点云数据的设备,该设备可以包括:
[0044] 存储器,用于存储点云数据。
[0045] 解码器,用于执行上述第二方面或第二方面的任意一种可能的设计,或者第四方面或第四方面的任意一种可能的设计所描述的点云解码方法。
[0046] 第十方面,提供一种解码装置,该装置包括存储器和处理器。存储器用于存储程序代码;处理器用于调用该程序代码,以执行第二方面或第二方面的任意一种可能的设计,或者第四方面或第四方面的任意一种可能的设计所描述的点云解码方法。
[0047] 第十一方面,提供一种计算机可读存储介质,该计算机可读存储介质存储了程序代码,当该程序代码在计算机上运行时,使得该计算机执行第一方面或第一方面的任一种可能的设计,或者第三方面或第三方面的任一种可能的设计所描述的点云编码方法的部分或全部步骤。
[0048] 第十二方面,提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行第一方面或第一方面的任意一种可能的设计,或者第三方面或第三方面的任意一种可能的设计所描述的点云编码方法的部分或全部步骤。
[0049] 第十三方面,提供一种计算机可读存储介质,该计算机可读存储介质存储了程序代码,当该程序代码在计算机上运行时,使得该计算机执行第二方面或第二方面的任一种可能的设计,或者第四方面或第四方面的任一种可能的设计所描述的点云解码方法的部分或全部步骤。
[0050] 第十四方面,提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行第二方面或第二方面的任意一种可能的设计,或者第四方面或第四方面的任意一种可能的设计所描述的点云解码方法的部分或全部步骤。
[0051] 应当理解的是,上述提供的相关装置/设备/计算机可读存储介质/计算机程序产品的有益效果均可以对应参考对应方面提供的方法实施例的有益效果,此处不再赘述。
[0052] 应当理解的是,本申请实施例中的术语“至少一个(种/帧)”包括一个(种帧)或多个(种帧)。“多个(种帧)”是指两个(种帧)或两个(种帧)以上。例如,A、B和C中的至少一种,包括:单独存在A、单独存在B、同时存在A和B、同时存在A和C、同时存在B和C,以及同时存在A、B和C。本申请实施例中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请实施例中的术语字符“/”,一般表示前后关联对象是一种“或”的关系。在公式中,字符“/”表示除法运算,如A/B表示A除以B。附图说明
[0053] 图1为可适用于本申请实施例的一种实例的打包方法的流程示意图;
[0054] 图2和图3为基于图1所示的打包方法的一个示例过程示意图;
[0055] 图4为可适用于本申请实施例的一种实例的点云译码系统的示意性框图
[0056] 图5为可用于本申请实施例的一种实例的编码器的示意性框图;
[0057] 图6为可适用于本申请实施例的一种实例的点云、patch以及点云的占用图的示意图;
[0058] 图7为可用于本申请实施例的一种实例的解码器的示意性框图;
[0059] 图8为本申请实施例提供的一种点云编码方法的流程示意图;
[0060] 图9为本申请实施例提供的一种点云解码方法的流程示意图;
[0061] 图10为本申请实施例提供的另一种点云编码方法的流程示意图;
[0062] 图11为本申请实施例提供的另一种点云解码方法的流程示意图;
[0063] 图12为本申请实施例提供的一种编码器的示意性框图;
[0064] 图13为本申请实施例提供的一种解码器的示意性框图;
[0065] 图14为本申请实施例提供的一种译码设备的示意性框图。

具体实施方式

[0066] 为了便于理解本申请实施例提供的技术方案,以下对本申请实施例涉及的技术及术语进行说明。
[0067] 在动态图像专家组(moving picture expert group,MPEG)点云编码方法中,编码器首先将待编码点云(即当前帧或者当前帧点云)按照一定准则分割成若干个patch,这些patch相互之间没有交叠区域。然后,将每个patch从三维空间投影到二维平面,得到一个二维图像(即patch的占用图)。接着,将所有patch的占用图(或者降低分辨率后的patch的占用图)按照某种规则紧密的排列在一张二维图像上,得到当前帧占用图。这种排列patch的占用图的方法称为打包(packing)。具体的,将该点云的各patch按照特定的顺序进行排列例如按照各patch的占用图的宽/高降序排列;然后,按照排列后的各patch的顺序,依次将patch的占用图插入该点云占用图的可用区域中,得到该点云的占用图。后续,按照打包顺序生成当前帧深度图和当前帧纹理图。其中,当前帧深度图是各patch经过投影得到的深度按照打包顺序产生的一张二维图像。当前帧纹理图是各patch经过投影得到的纹理图按照打包顺序产生的一张二维图像。当前帧占用图是一张2值二维图像,用于表示该二维图像的各像素位置是否被点云中某点占据。通常,为了节约编码比特,当前帧占用图的分辨率低于当前帧深度图和当前帧纹理图的分辨率。为了方便描述,下文中均以不考虑分辨率是否降低为例进行说明。
[0068] 为了提高编码或压缩效率,一种打包方法如图1所示,图1所示的方法包括如下步骤:
[0069] 步骤1:获取点云组的全局匹配patch。该点云组包括N帧点云。N≥2,N是整数。
[0070] 其中,一帧点云的全局匹配patch是指该帧点云中的且在点云组中除该帧点云之外的各帧点云中均能找到具有匹配关系的patch的patch。同时,与该patch具有匹配关系的patch是全局匹配patch。其中,与一个patch具有匹配关系的patch是目标patch的匹配patch,目标patch是该patch或者该patch的匹配patch。可选的,一帧点云中的一个patch在另一帧点云中的匹配patch,可以是该另一帧点云中的与该patch的交并比(intersection over union,IoU)最大且该IoU大于或等于预设阈值的patch。
[0071] 对于任一全局匹配patch来说,与该全局匹配patch具有匹配关系的patch的个数是N-1。
[0072] 步骤2:确定与M个集合对应的M个并集占用图,每个集合包括N个全局匹配patch,该N个全局匹配patch是N帧点云中具有匹配关系的patch(或跨N帧点云中具有匹配关系的patch)。可选的,第m个集合对应的并集占用图是第m个集合中的各全局匹配patch的占用图的并集;1≤m≤M,m和M均是整数。
[0073] 其中,并集占用图也可以称为并集占用图。
[0074] 一个集合包括的N个全局匹配patch是跨N帧点云中具有匹配关系的patch,可以理解为:该N个全局匹配patch中的每个全局匹配patch来自于(或所属)一帧点云、不同全局匹配patch来自于不同点云、且该N个全局匹配patch具有匹配关系。
[0075] 一个全局匹配patch所属的集合对应的并集占用图覆盖该全局匹配patch的占用图。
[0076] 可选的,编码器在执行步骤2之后,该方法还可以包括:
[0077] 步骤2a:获取并集占用图的辅助信息。其中,关于并集占用图的辅助信息的具体描述,以及获得并集占用图的辅助信息的具体实现方式等均可以参考下文,此处不再赘述。当然,本申请实施例对步骤2a与步骤3~4的顺序不进行限定。
[0078] 步骤3:对上述M个并集占用图进行打包,得到全局占用图(即最终的占用图)。其中,全局占用图用于确定M个并集占用图在全局占用图中的位置。其中,打包的过程可以认为是对全局占用图进行更新的过程,如将这M个并集占用图按照从上到下,从左到右的顺序排列在全局占用图的可用空间,得到最终的占用图。具体方法可以参考现有技术,此处不再赘述。
[0079] 步骤4:对N帧点云中的每帧点云进行打包,得到N帧点云的占用图。第n帧点云中的第m个全局匹配patch的占用图在第n帧点云的占用图中的位置(第一位置),对应于M个并集占用图中的第m个并集占用图在全局占用图中的位置(第二位置);1≤n≤N,n是整数。
[0080] 其中,第一位置对应于第二位置可以包括:第一位置的坐标值与第二位置的坐标值相同;或者第一位置的坐标值在其坐标系下与第二位置的坐标值在其坐标系下实质性相同;或者第一位置的坐标值与第二位置的坐标值不相同,但第二位置所在的位置范围覆盖第一位置所在的位置范围。其中,第一位置的坐标值可通过第n帧点云的占用图中的第m个全局匹配patch的占用图在第n帧点云的占用图中的位置坐标来表征。第二位置的坐标值可通过第m个并集占用图在全局占用图中的位置坐标来表征。第一位置所在的位置范围是第m个全局匹配patch的占用图所占的区域,第二位置所在的位置范围是第m个并集占用图所占的区域。
[0081] 以下通过一个简单的示例,对图1中的打包方法进行说明。
[0082] 图2和图3为基于图1提供的打包方法的一个示例的过程示意图。图2和图3中,假设点云组包括4帧点云,每帧点云包括10个patch,且全局匹配patch分别是:点云1中的patch11、patch12和patch13;点云2中的patch21、patch22和patch23;点云3中的patch31、patch32和patch33;点云4中的patch41、patch42和patch43。并且,patch11、patch21、patch31和patch41具有匹配关系,这些patch组成集合1。patch12、patch22、patch32和patch42具有匹配关系,这些patch组成集合2。patch13、patch23、patch33和patch43具有匹配关系,这些patch组成集合3。也就是说,上述M个集合具体是集合1~3,且每个集合包含4个具有匹配关系的patch。
[0083] 基于该示例得到的全局占用图可以如图2所示。图2中的较大矩形表示全局占用图,图2中的椭圆、三形和较小矩形分别表示集合1~3对应的并集patch占用图。
[0084] 基于该示例,执行上述步骤4之后,点云1的占用图可以如图3中的(a)所示,点云2的占用图可以如图3中的(b)所示。图3仅示意出了点云1的占用图和点云2的占用图中的部分patch的占用图,且没有示意出点云3和点云4的占用图。
[0085] 对比图2和图3可知,patch11的占用图在点云1的占用图中的位置和patch21的占用图在点云2的占用图中的位置均对应并集patch占用图1在全局占用图中的位置;patch12的占用图在点云1的占用图中的位置和patch22的占用图在点云2的占用图中的位置均对应并集patch占用图2在全局占用图中的位置;patch13的占用图在点云1的占用图中的位置和patch23的占用图在点云2的占用图中的位置均对应并集patch占用图3在全局占用图中的位置。
[0086] 作为一个示例,关于图1所示的技术方案中的相关内容的解释以及具体实现方式的说明,可以例如但不限于参考申请人其他的在先申请的专利
[0087] 按照传统的点云编码方法,编码器需要将一帧点云中的各patch的信息编入码流。这样,会导致较大的码流传输开销。为此,本申请实施例提供了点云编解码方法和编解码器,用以在不影响编解码性能的前提下,节省码流传输开销。
[0088] 为了说明patch的信息,首先说明点云译码系统中定义的坐标系。对于帧级别占用图(二维图像)来说,通常定义横轴是U0轴,纵轴是V0轴。对于点云(三维空间)来说,通常定义横轴为U1轴、纵轴是V1轴,垂直于U1轴和V1轴的坐标轴是D1轴。也就是说,U1轴是世界坐标系中的X轴,V1轴是世界坐标系中的Y轴,D轴是世界坐标系中的Z轴。
[0089] patch的信息的示例以及描述可以参考以下表1:
[0090] 表1
[0091]patch的信息 描述
u0 patch级别占用图在帧级别占用图中的U0坐标轴中的坐标值
v0 patch级别占用图在帧级别占用图中的V0坐标轴中的坐标值
sizeU0 patch级别占用图在帧级别占用图上的宽度(即在U0轴上的尺寸)
sizeV0 patch级别占用图在帧级别占用图上的高度(即在V0轴上的尺寸)
u1 patch在三维空间的U1坐标轴中的坐标值
v1 patch在三维空间的V1坐标轴中的坐标值
d1 patch在三维空间的D1坐标轴中的坐标值
[0092] 基于表1,当patch级别的占用图是点云中的patch的占用图时,帧级别的占用图可以是该点云的占用图。当patch级别的占用图是并集占用图时,帧级别的占用图可以是全局占用图。下文涉及到的patch的信息的解释均可以参考表1,在此统一说明,下文不再赘述。
[0093] 以下,说明可用于本申请实施例的系统架构的示意性框图和装置的示意性框图。
[0094] 图4为可用于本申请实施例的一种实例的点云译码系统1的示意性框图。术语“点云译码”或“译码”可一般地指代点云编码或点云解码。点云译码系统1的编码器100可以根据本申请提出的任一种点云编码方法对待编码点云进行编码。点云译码系统1的解码器200可以根据本申请提出的与编码器使用的点云编码方法相对应的点云解码方法对待解码点云进行解码。
[0095] 如图4所示,点云译码系统1包含源装置10和目的地装置20。源装置10产生经编码点云数据。因此,源装置10可被称为点云编码装置。目的地装置20可对由源装置10所产生的经编码的点云数据进行解码。因此,目的地装置20可被称为点云解码装置。源装置10、目的地装置20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、带电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
[0096] 源装置10和目的地装置20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
[0097] 目的地装置20可经由链路30从源装置10接收经编码点云数据。链路30可包括能够将经编码点云数据从源装置10移动到目的地装置20的一或多个媒体或装置。在一个实例中,链路30可包括使得源装置10能够实时将经编码点云数据直接发送到目的地装置20的一或多个通信媒体。在此实例中,源装置10可根据通信标准(例如无线通信协议)来调制经编码点云数据,且可将经调制的点云数据发送到目的地装置20。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(radio frequency,RF)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备。
[0098] 在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通过输入接口240从存储装置40存取经编码点云数据。存储装置40可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、数字多功能光盘(digital versatile disc,DVD)、只读光盘(compact disc read-only memory,CD-ROM)、快闪存储器、易失性或非易失性存储器,或用于存储经编码点云数据的任何其它合适的数字存储媒体。
[0099] 在另一实例中,存储装置40可对应于文件服务器或可保持由源装置10产生的经编码点云数据的另一中间存储装置。目的地装置20可经由流式传输或下载从存储装置40存取所存储的点云数据。文件服务器可为任何类型的能够存储经编码的点云数据并且将经编码的点云数据发送到目的地装置20的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传输协议(file transfer protocol,FTP)服务器、网络附属存储(network attached storage,NAS)装置或本地磁盘驱动器。目的地装置20可通过任何标准数据连接(包含因特网连接)来存取经编码点云数据。这可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线路(digital subscriber line,DSL)、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码点云数据的两者的组合。经编码点云数据从存储装置40的传输可为流式传输、下载传输或两者的组合。
[0100] 图4中所说明的点云译码系统1仅为实例,并且本申请的技术可适用于未必包含点云编码装置与点云解码装置之间的任何数据通信的点云译码(例如,点云编码或点云解码)装置。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。点云编码装置可对数据进行编码并且将数据存储到存储器,和/或点云解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。
[0101] 在图4的实例中,源装置10包含数据源120、编码器100和输出接口140。在一些实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发送器(或称为发射器)。数据源120可包括点云捕获装置(例如,摄像机)、含有先前捕获的点云数据的点云存档、用以从点云内容提供者接收点云数据的点云馈入接口,和/或用于产生点云数据的计算机图形系统,或点云数据的这些来源的组合。
[0102] 编码器100可对来自数据源120的点云数据进行编码。在一些实例中,源装置10经由输出接口140将经编码点云数据直接发送到目的地装置20。在其它实例中,经编码点云数据还可存储到存储装置40上,供目的地装置20以后存取来用于解码和/或播放。
[0103] 在图4的实例中,目的地装置20包含输入接口240、解码器200和显示装置220。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码点云数据。显示装置220可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置220显示经解码点云数据。显示装置220可包括多种显示装置,例如,液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其它类型的显示装置。
[0104] 尽管图4中未图示,但在一些方面,编码器100和解码器200可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器(multiplexer-demultiplexer,MUX-DEMUX)单元或其它硬件软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么MUX-DEMUX单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(user datagram protocol,UDP)等其它协议。
[0105] 编码器100和解码器200各自可实施为例如以下各项的多种电路中的任一者:一个或多个微处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程阵列(field-programmable gate array,FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行所述指令从而实施本申请技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。编码器100和解码器200中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
[0106] 本申请可大体上将编码器100称为将某些信息“发信号通知”或“发送”到例如解码器200的另一装置。术语“发信号通知”或“发送”可大体上指代用以对经压缩点云数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
[0107] 如图5所示,为可用于本申请实施例的一种实例的编码器100的示意性框图。图5是以MPEG(Moving Picture Expert Group)点云压缩(Point Cloud Compression,PCC)编码框架为例进行说明的。在图5的实例中,编码器100可以包括patch信息生成模块101、打包模块102、深度图生成模块103、纹理图生成模块104、第一填充模块105、基于图像或视频的编码模块106、占用图编码模块107、辅助信息编码模块108和复用模块109等。另外,编码器100还可以包括点云滤波模块110、第二填充模块111和点云重构模块112等。其中:
[0108] patch信息生成模块101,用于采用某种方法将一帧点云分割产生多个patch,以及获得所生成的patch的相关信息等。其中,patch是指一帧点云中部分点构成的集合,通常一个连通区域对应一个patch。patch的相关信息可以包括但不限于以下信息中的至少一项:点云所分成的patch的个数、patch在三维空间中的位置信息、patch的法线坐标轴的索引、patch从三维空间投影到二维空间产生的深度图、patch的深度图大小(例如深度图的宽和高)、patch从三维空间投影到二维空间产生的占用图等。该相关信息中的部分,如点云所分成的patch的个数、patch的法线坐标轴的索引、patch的深度图大小、patch在点云中的位置信息、patch的占用图的尺寸信息等,可以作为辅助信息被发送到辅助信息编码模块108,以进行编码(即压缩编码)。每个patch的占用图可以被发送到打包模块102进行打包。再一方面,各patch在该点云占用图中的具体位置信息和各patch的深度图等可以被发送到深度图生成模块103。
[0109] 打包模块102获得该点云的占用图后,一方面可以将该点云的占用图经第二填充模块111进行填充后发送到占用图编码模块107以进行编码。另一方面可以利用该点云的占用图指导深度图生成模块103生成该点云的深度图和指导纹理图生成模块104生成该点云的纹理图。
[0110] 应用于本申请实施例提供的技术方案时,作为一个示例,打包模块102还可以将打包过程中生成的并集占用图的辅助信息等发送给辅助信息编码模块108,以将并集占用图的辅助信息等编入码流,这样,不需要通过码流传输与该并集占用图对应的全局匹配patch的相关信息,因此,可以节省码流开销。关于该技术方案中的术语以及具体实现方式均可以参考下文。另外,将并集占用图的辅助信息编入码流的模块也可以是独立于辅助信息编码模块108的一个模块,本申请实施例对此不进行限定。
[0111] 深度图生成模块103,用于根据点云的占用图、该点云的各patch的占用图和深度信息,生成该点云的深度图,并将所生成的深度图发送到第一填充模块105,以对深度图中的空白像素进行填充,得到经填充的深度图。
[0112] 纹理图生成模块104,用于根据点云的占用图、该点云的各patch的占用图和纹理信息,生成该点云的纹理图,并将所生成的纹理图发送到第一填充模块105,以对纹理图中的空白像素进行填充,得到经填充的纹理图。
[0113] 经填充的深度图和经填充的纹理图被第一填充模块105发送到基于图像或视频的编码模块106,以进行基于图像或视频的编码。后续:
[0114] 一方面,基于图像或视频的编码模块106、占用图编码模块107、辅助信息编码模块108,将所得到的编码结果(即码流)发送到复用模块109,以合并成一个码流,该码流可以被发送到输出接口140。
[0115] 另一方面,基于图像或视频的编码模块106所得到的编码结果(即码流)发送到点云重构模块112进行点云重构,以得到经重构的点云(即得到重构的点云几何信息)。具体的,对基于图像或视频的编码模块106所得到的经编码的深度图进行视频解码,获得点云的解码深度图,利用解码深度图、该点云的占用图和各patch的辅助信息,获得重构的点云几何信息。其中,点云的几何信息是指点云中的点(例如点云中的每个点)在三维空间中的坐标值。
[0116] 可选的,点云重构模块112还可以将点云的纹理信息和重构的点云几何信息发送到着色模块,着色模块用于对重构点云进行着色,以获得重构点云的纹理信息。
[0117] 可选的,纹理图生成模块104还可以基于经点云滤波模块110对重构的点云几何信息进行滤波得到的信息,生成该点云的纹理图。
[0118] 如图6所示,为可适用于本申请实施例的一种实例的点云、patch以及点云的占用图的示意图。其中,图6中的(a)为一帧点云的示意图,图6中的(b)为基于图6中的(a)获得的点云的patch的示意图,图6中的(c)为图6中的(b)所示的各patch映射到二维平面上所得到的各patch的占用图经打包得到的该点云的占用图的示意图。其中,图6中的(c)所示的点云的占用图,可以是依据上文中图1所示的方法得到的。
[0119] 如图7所示,为可用于本申请实施例的一种实例的解码器200的示意性框图。其中,图7中是以MPEG PCC解码框架为例进行说明的。在图7的实例中,解码器200可以包括解复用模块201、基于图像或视频的解码模块202、占用图解码模块203、辅助信息解码模块204、点云重构模块205、点云滤波模块206和点云的纹理信息重构模块207。其中:
[0120] 解复用模块201用于将输入的码流(即合并的码流)发送到相应解码模块。具体的,将包含经编码的纹理图的码流和经编码的深度图的码流发送给基于图像或视频的解码模块202;将包含经编码的占用图的码流发送给占用图解码模块203,将包含经编码的辅助信息的码流发送给辅助信息解码模块204。
[0121] 基于图像或视频的解码模块202,用于对接收到的经编码的纹理图和经编码的深度图进行解码;然后,将解码得到的纹理图信息发送给点云的纹理信息重构模块207,将解码得到的深度图信息发送给点云重构模块205。占用图解码模块203,用于对接收到的包含经编码的占用图的码流进行解码,并将解码得到的占用图信息发送给点云重构模块205。辅助信息解码模块204,用于对接收到的经编码的辅助信息进行解码,并将解码得到的指示辅助信息的信息发送给点云重构模块205。
[0122] 点云重构模块205,用于根据接收到的占用图信息和辅助信息对点云的几何信息进行重构。经重构的点云的几何信息经点云滤波模块206滤波之后,被发送到点云的纹理信息重构模块207。作为一个示例,点云重构模块205执行的重构过程可以参考上文中点云重构模块112所执行的重构过程。
[0123] 点云的纹理信息重构模块207,用于对点云的纹理信息进行重构,得到经重构的点云。
[0124] 可以理解的,图7所示的解码器200仅为示例,具体实现时,解码器200可以包括比图7中所示的更多或更少的模块。本申请实施例对此不进行限定。
[0125] 以下,结合附图对本申请实施例提供的点云编解码方法和编解码器进行说明。
[0126] 如图8所示,为本申请实施例提供的一种点云编码方法的流程示意图。作为一个示例,结合图4,图8所示的方法的执行主体可以是编码器100。图8所示的方法包括如下步骤:
[0127] S101:获取点云组的并集占用图的辅助信息;其中,该点云组包括N帧点云,N≥2,N是整数,并集占用图是该N帧点云中具有匹配关系的N个patch的占用图的并集;并集占用图的辅助信息用于确定该N个patch的辅助信息。例如,基于该N个patch的辅助信息,获取该并集占用图的辅助信息。
[0128] 点云组包括至少两帧点云,例如在时间上连续的至少两帧点云。
[0129] 可选的,点云组可以是一个或多个GOF,通常是指一个GOF。GOF中点云的帧数是可配置的。本申请实施例对一个GOF所包含的点云的帧数不进行限定,例如,一个GOF可以包含32帧点云。关于GOF的确定方式可以参考现有技术。
[0130] 可选的,点云组可以是一个子GOF,该子GOF可以由一个GOF中的时间上连续的多帧点云构成。一个GOF可以包括至少两个子GOF,该至少两个子GOF中的任意两个子GOF所包含的点云的帧数可以相等,也可以不相等。
[0131] 具体实现的过程中,编码器和解码器可以基于同一预定义(如通过协议预定义)方式将一个GOF分为至少两个子GOF。或者,编码器可以将一个GOF分为至少两个子GOF(如根据GOF中包含的点云间的内容之间的连续性将一个GOF分为至少两个子GOF),然后将表示该至少两个子GOF在该GOF中的位置的信息(即每个子GOF包括哪些点云的信息)编入码流,以使得解码器通过解析码流得到的信息获取该至少两个子GOF在该GOF中的位置。
[0132] 可选的,表示该至少两个子GOF在该GOF中的位置的信息可以包括:每个子GOF的起始帧(即第一帧点云)的编号和/或每个子GOF所包含的帧数等。可以理解的,第一个子GOF的起始帧的编号也可以不被编入码流和/或其中一个GOF所包含的帧数也可以不被编入码流。该可选的实施例可以应用于该至少两个子GOF中的每个子GOF包括的帧数均相同的场景中,也可以应用于该至少两个子GOF中的部分或全部子GOF包括的帧数不同的场景中。
[0133] 也就是说,在一种可选的实现方式,当点云组是子GOF时,上述语法元素还可以包括表示子GOF中的每帧点云在该子GOF所属的GOF中的位置的信息,例如,该子GOF包含的起始帧的编号和/或该子GOF包含的点云的帧数。
[0134] 可选的,如果该至少两个子GOF中的每个子GOF包括的帧数均相同,则表示该至少两个子GOF在该GOF中的位置的信息可以包括:一个子GOF包括的点云的帧数,或一个GOF包含的子GOF的个数。
[0135] 点云组的并集占用图的数量可以是一个或多个,例如结合图1所示的打包方法,点云组的并集占用图的数量是M。S101中的并集占用图可以是点云组中的任意一个并集占用图。关于并集占用图、具有匹配关系的patch等相关术语的描述可以参考上文,此处不再赘述。
[0136] S101中的N个patch中的每个patch可以认为是上文中所描述的全局匹配patch。该N个patch中的每个patch来自一帧点云,且不同patch来自不同点云。关于全局匹配patch的相关解释可以参考上文,此处不再赘述。
[0137] 并集占用图的辅助信息,是指用于描述该并集占用图的信息,例如但不限于包括以下信息中的至少一种:该并集占用图在全局占用图中的坐标值、该并集占用图在全局占用图中的尺寸信息和该并集占用图对应在三维空间中的坐标值。全局占用图是对点云组中的多个并集占用图进行打包得到的占用图。关于全局占用图的相关描述可以参考上文,此处不再赘述。
[0138] 其中,并集占用图在全局占用图中的坐标值,包括:并集占用图在全局占用图中的U0轴上的坐标值(如并集占用图的u0),和/或V0轴上的坐标值(如并集占用图的v0)。具体实现时,编码器可以将并集占用图对应的N个patch的占用图的u0的最小值或最大值等作为该并集占用图的u0;和/或将并集占用图对应的N个patch的占用图的v0的最小值或最大值等作为该并集占用图的v0。
[0139] 其中,并集占用图在全局占用图中的尺寸信息,包括:并集占用图在全局占用图中的U0轴上的尺寸信息(如并集占用图的sizeU0),和/或V0轴上的尺寸信息(如并集占用图的sizeV0)。具体实现时,编码器可以将该并集占用图对应的N个patch的占用图的sizeU0的最大值作为并集占用图的sizeU0,和/或将该并集占用图对应的N个patch的占用图的sizeU0的最大值作为并集占用图的sizeV0。
[0140] 其中,并集占用图对应在三维空间中的坐标值,是指该并集占用图对应的N个patch在三维空间中的最小(或最大等)坐标值。以最小坐标值为例,并集占用图对应在三维空间中的坐标值可以包括:该N个patch在三维空间中的U1轴上的最小坐标值(如最小u1值)、在V1轴上的最小坐标值(如最小v1值),和/或在D1轴上的最小坐标值(如最小d1值)。
[0141] 在一种实现场景中,S101中获取并集占用图的辅助信息的步骤可以在编码器获得并集占用图之后得到,例如,结合图1所示的打包方法,可以在执行打包方法的过程中得到,当然也可以在执行打包方法之后得到,本申请实施例对此不进行限定。
[0142] 并集占用图的辅助信息用于确定该N个patch的辅助信息,可以理解为:并集占用图的辅助信息用于解码器确定该N个patch的辅助信息。
[0143] 为了便于描述,本申请实施例中,将S101中的N个patch称为S101中的并集占用图对应的N个patch。在此统一说明,下文不再赘述。
[0144] S102:将语法元素编入码流,该语法元素包括该并集占用图的辅助信息。
[0145] 上述S101~S102是从一个并集占用图对应的N个patch的角度说明点云编码方法的,具体实现时,对于点云组中的任意一个或多个并集占用图对应的patch(即全局匹配patch)均可以基于S101~S102执行点云编码方法。对于点云组中的其他patch,本申请实施例对其所适用的点云编码方法不进行限定,例如可以按照现有技术提供的任意一种点云编码方法如MPEG点云编码方法进行编码。该其他patch可以包括全部的非全局匹配patch,进一步可以包括除按照上述S101~S102执行点云编码方法的全局匹配patch之外的其他全局匹配patch。
[0146] 具体实现的过程中,作为一个示例,编码器可以在针对一个并集占用图对应的N个patch执行S101~S102之后,再针对另一个并集占用图对应的N个patch执行S101~102,直至执行完所有需要采用本申请实施例提供的技术方案进行编码的并集占用图对应的patch。作为另一个示例,编码器可以在依次或同时针对需要采用本申请实施例提供的技术方案进行编码的并集占用图对应的patch,执行上述S101之后,再依次或同时针对这并集占用图对应的patch执行上述S102,本申请实施例对此不进行限定。
[0147] 可以理解的,由于并集占用图与该并集占用图对应的N个patch的占用图之间的相关性,例如并集占用图在全局占用图中的位置信息,对应于上述N个patch的占用图在其所属的点云的占用图中的位置信息,和/或并集占用图是该N个patch的占用图的并集等,因此,可以通过并集占用图的辅助信息表示或近似表示该N个patch的辅助信息。
[0148] 本申请实施例提供的点云编码方法中,编码器将并集占用图的辅助信息编入码流,以使得解码器基于该并集占用图的辅助信息确定该并集占用图对应的N个patch的辅助信息。这样,相比现有技术中在码流中直接传输这N个patch的辅助信息的技术方案,本申请实施例提供的技术方案有助于在不影响编解码性能的前提下,节省码流传输开销。
[0149] 可选的,图8所示的方法还包括以下步骤S103:
[0150] S103:根据上述N帧点云中的多个patch(如所有patch)的辅助信息,重构N帧点云;其中,该多个patch包括上述N个patch。S103的具体实现方式可以参考上文,此处不再赘述。
[0151] 本申请实施例对S101~S102和S103的执行顺序不进行限定,例如,先执行S101~S102再执行S103,或先执行S103再执行S101~S102,或执行S101~S102的过程中执行S103等。
[0152] 可选的,图8所示的实施例中的语法元素还包括上述N个patch中的一个或多个patch(例如所有patch)的对应辅助信息与该并集占用图的辅助信息的差值。
[0153] 其中,该一个或多个patch的对应辅助信息,是指与该并集占用图的辅助信息是同类型的辅助信息。例如,并集占用图的辅助信息和该一个或多个patch的对应辅助信息均是u0或均是v0;或者,均是sizeU0或均是sizeV0;或者,均是u1或均是d1或均是v1。
[0154] 该可选的实现方式可以理解为使用差分方式传输并集占用图对应的一个或多个patch的辅助信息。虽然并集占用图与该并集占用图对应的N个patch的占用图之间的相关性,但是,并集占用图的辅助信息和该N个patch的辅助信息可能并不完全相同。因此,使用差分方式传输并集占用图对应的一个或多个patch的辅助信息,有助于提高N个patch中的该一个或多个patch的辅助信息的准确度和/或设置灵活性。例如,可以提高该一个或多个patch的u0、v0、u1、v1和/或d1的准确度。例如,可以提高该一个或多个patch的sizeU0和/或sizeV0的设置灵活性,也就是说,不必局限于该一个或多个patch的sizeU0与该并集占用图的sizeU0相等,和/或不必局限于该一个或多个patch的sizeV0与该并集占用图的sizeV0相等。
[0155] 具体实现的过程中,语法元素中是否包含上述N个patch中的一个或多个patch(例如所有patch)的对应辅助信息与该并集占用图的辅助信息的差值,可以是预定义的如通过协议预定义的,也可以是编码器将指示是否包含该差值的指示信息编入码流并发送给解码器。
[0156] 如图9所示,为本申请实施例提供的一种点云编码方法的流程示意图。作为一个示例,结合图4,图9所示的方法的执行主体可以是解码器200。图9所示的方法包括如下步骤:
[0157] S201:解析码流,以得到语法元素,该语法元素包括点云组的并集占用图的辅助信息,该点云组包括N帧点云,N≥2,N是整数,该并集占用图是该N帧点云中具有匹配关系的N个patch的占用图的并集。
[0158] 可选的,该语法元素还包括上述N个patch中的一个或多个patch(例如所有patch)的对应辅助信息与该并集占用图的辅助信息的差值。该可选的方式与图8所示的实施例中的语法元素包括该差值的实施例相对应。
[0159] S202:根据解析得到的该并集占用图的辅助信息,确定该N个patch的辅助信息。
[0160] 例如,对于任意一个并集占用图来说,若语法元素包括该并集占用图的辅助信息,不包括该并集占用图的对应的N个patch中的任意一个patch的对应辅助信息与该并集占用图的辅助信息的差值,则解码器可以将该并集占用图的辅助信息作为该N个patch中的每个patch的对应辅助信息。
[0161] 又如,对于任意一个并集占用图来说,若语法元素包括该并集占用图的辅助信息,且包括该并集占用图的对应的N个patch中的一个或多个patch的对应辅助信息与该并集占用图的辅助信息的差值,则对于该一个或多个patch中的每个patch来说,解码器可以基于该并集占用图的辅助信息与该patch的对应辅助信息之间的差值,确定该patch的对应辅助信息,具体的,对该并集占用图的辅助信息和该差值求和,得到该patch的对应辅助信息。可选的,如果该N个patch还包括除该一个或多个patch之外的其他patch,则对于该其他patch中的每个patch来说,解码器可以将该并集占用图的辅助信息作为该N个patch的对应辅助信息。
[0162] 可以理解的,对于点云组中的非并集占用图对应的每个patch(即点云组中的非全局匹配patch)来说,解码器可以通过解析码流,获得该patch的辅助信息的方法可以参考现有技术。
[0163] S203:基于该N帧点云中的多个patch(例如所有patch)的辅助信息,重构该N帧点云;其中,该多个patch包括该N个patch。S203的具体实现方式可以参考上文,此处不再赘述。
[0164] 本实施例提供的任一种点云解码方法与图8所示的实施例中相应的点云编码方法对应,因此,本实施例中相关术语、具体实现方式以及有益效果的描述均可以参考上述点云编码方法的实施例,此处不再赘述。例如,点云组包括GOF或子GOF等。其中,关于解码器如何获得子GOF在该子GOF所属的GOF中的位置可以参考上文,此处不再赘述。又如,关于本实施例中的N个patch的相关描述等等均可以参考上文。
[0165] 如图10所示,为本申请实施例提供的一种点云编码方法的流程示意图。作为一个示例,结合图4,图10所示的方法的执行主体可以是编码器100。图10所示的方法包括如下步骤:
[0166] S301:确定指示信息,该指示信息指示是否采用目标点云编码方法对点云组中的N个patch的辅助信息进行编码。目标点云编码方法可以是本申请实施例提供的任意一种点云编码方法,例如图8所示的点云编码方法。其中,该点云组包括N帧点云,N≥2,N是整数;该N个patch是该N帧点云中具有匹配关系的N个patch。
[0167] 具体实现的过程中,编码器可以支持至少两种编码方法,该至少两种的其中一种可以是本申请实施例提供的任一种点云编码方法如图8所示的点云编码方法,其他其他点云编码方法可以是现有技术或未来提供的任意一种点云编码方法。
[0168] 可选的,该指示信息可以是目标点云编码/解码方法的索引。具体实现的过程中,编码器和解码器可以预先约定编码器/解码器所支持的至少两种点云编码/解码方法的索引,然后,在编码器确定目标编码方法之后,将目标编码方法的索引或该目标编码方法对应的解码方法的索引作为指示信息编入码流。本申请实施例对编码器如何确定目标编码方法是编码器所支持的至少两种编码方法中的哪一种不进行限定,例如根据码流传输开销确定目标编码方法。
[0169] S302:将该指示信息编入码流。
[0170] 具体实现的过程中,该方法还包括如下步骤S303:
[0171] S303:根据目标点云编码方法对该N个patch的辅助信息进行编码。例如,根据图8所示的点云编码方法对该N个patch的辅助信息进行编码。
[0172] 本实施例提供了一种选择目标编码方法的技术方案,该技术方案可以应用于编码器支持至少两种点云编码方法的场景中。也就是说,本申请实施例支持编码器从候选的至少两种点云编码方法中选择目标点云编码方法的技术方案。
[0173] 如图11所示,为本申请实施例提供的一种点云解码方法的流程示意图。作为一个示例,结合图4,图11所示的方法的执行主体可以是解码器200。图11所示的方法包括如下步骤:
[0174] S401:解析码流,以得到指示信息,该指示信息指示是否采用目标点云解码方法对点云组中的N个patch的辅助信息进行解码。目标点云解码方法可以是本申请实施例提供的任意一种点云解码方法,例如图9所示的点云解码方法。其中,该点云组包括N帧点云,N≥2,N是整数;该N个patch是该N帧点云中具有匹配关系的N个patch。
[0175] S402:当该指示信息指示采用目标点云解码方法进行解码时,采用目标点云解码方法对该N个patch的辅助信息进行处理。具体可以参考上述S201~S203。
[0176] 本实施例提供的点云解码方法与图10提供的点云编码方法相对应。因此,本实施例中相关内容的解释、具体实现方式以及有益效果的描述均可以参考上述图10所示的实施例。本申请实施例支持编码器从候选的至少两种点云解码方法中选择目标点云解码方法的技术方案。
[0177] 以下,以点云组是一个子GOF(subGOF)为例,说明实现上文提供的码流格式的示例。具体的,表示GOF中的全局匹配patch的辅助信息(group_of_frames_auxiliary_information)的码流的格式可以如表2所示:
[0178] 表2
[0179]
[0180] 其中,表2中的group_of_frames_size表示GOF中包含的点云的帧数,subGOFsize表示子GOF中包含的点云的帧数。
[0181] 基于表2,表示子GOF中的全局匹配patch(即具有匹配关系的全局匹配patch)的辅助信息(subGOF_global_matched_patch_auxiliary_information)的码流的格式可以如表3所示:
[0182] 表3
[0183]
[0184] 其中,global_matched_patch_count表示一帧中的全局匹配patch的个数。表3中是以该集合中的各全局patch的u0和d0采用差分方式传输,且u1、v1和d1均采用该集合对应的并集占用图的对应辅助信息为例进行说明的。另外,unionpatch[i].normal_axis表示并集占用图的法线坐标轴索引,可以理解的,一个并集占用图对应的所有patch的法线坐标轴相同,因此,可以使用并集占用图的法线坐标轴索引表示该所有patch的法线坐标轴。
[0185] 基于表2,表示一帧中的所有patch的辅助信息(具体是指u1、v1和d1)的码流的格式可以如表4所示:
[0186] 表4
[0187]
[0188] 其中,表4中是以全局匹配patch的u1、v1和d1通过差分方式传输为例进行说明的。
[0189] 上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0190] 本申请实施例可以根据上述方法示例对编码器和解码器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0191] 图12为本申请实施例提供的一种编码器120的示意性框图。编码器120可以用于执行图8或图10所示的点云编码方法。编码器120包括打包模块1201和辅助信息编码模块1202。
[0192] 在一些实施例中:打包模块1201用于获取点云组的并集占用图的辅助信息;该点云组包括N帧点云,N≥2,N是整数,该并集占用图是该N帧点云中具有匹配关系的N个patch的占用图的并集;该并集占用图的辅助信息用于确定该N个patch的辅助信息。辅助信息编码模块1202用于将语法元素编入码流,该语法元素包括该并集占用图的辅助信息。例如,结合图8,打包模块1201可以用于执行S101,辅助信息编码模块1202可以用于执行S102。
[0193] 可选的,并集占用图的辅助信息包括以下信息中的至少一种:并集占用图在全局占用图中的坐标值、并集占用图在全局占用图中的尺寸信息和并集占用图对应在三维空间中的坐标值。全局占用图是对点云组中的多个并集占用图进行打包得到的占用图。
[0194] 可选的,上述语法元素还包括:该N个patch中的一个或多个patch的对应辅助信息与该并集占用图的辅助信息的差值。
[0195] 可选的,打包模块1201具体用于:基于该N个patch的辅助信息,获取该并集占用图的辅助信息。
[0196] 可选的,当该并集占用图的辅助信息包括该并集占用图在全局占用图中的坐标值时,打包模块1201具体用于:将该N个patch的占用图在对应点云的占用图中的最大坐标值或最小坐标值,作为该并集占用图在全局占用图中的坐标值;
[0197] 可选的,当该并集占用图的辅助信息包括该并集占用图在全局占用图中的尺寸信息时,打包模块1201具体用于:将该N个patch的占用图在对应点云的占用图中的最大尺寸的信息作为该并集占用图在全局占用图中的尺寸信息;
[0198] 可选的,当该并集占用图的辅助信息包括该并集占用图对应在三维空间中的坐标值时,打包模块1201具体用于:将该N个patch在对应点云中的最大坐标值或最小坐标值作为该并集占用图对应在三维空间中的坐标值。
[0199] 可选的,编码器120还包括点云重构模块1203,用于根据该N帧点云中的多个patch的辅助信息,重构该N帧点云;其中,该多个patch包括该N个patch。例如,结合图8,点云重构模块1203可以用于执行S103。
[0200] 可选的,该点云组是GOF或子GOF,该子GOF包括一个GOF中连续的多帧点云。
[0201] 可选的,若该点云组是该子GOF,上述语法元素还包括:表示该子GOF包含的点云(如每帧点云)在该子GOF所属的GOF中的位置的信息。例如,该子GOF包含的起始帧的编号,和/或该子GOF包含的点云的帧数。换言之,根据该子GOF包含的起始帧的编号,和/或该子GOF包含的点云的帧数可以直接或间接地推导出该子GOF包含的每帧点云在该子GOF所属的GOF中的位置。
[0202] 在另一些实施例中:打包模块1201用于确定指示信息,该指示信息指示是否采用目标点云编码方法对点云组中的N个patch的辅助信息进行编码,目标点云编码方法包括上述图10所示的点云编码方法;该点云组包括N帧点云,N≥2,N是整数;该N个patch是该N帧点云中具有匹配关系的N个patch。辅助信息编码模块1202用于将该指示信息编入码流。具体实现的过程中,编码器120还包括点云重构模块1203,用于根据该N帧点云中的多个patch的辅助信息,重构该N帧点云;该多个patch包括该N个patch。例如,结合图10,打包模块1201可以用于执行S301,辅助信息编码模块1202可以用于执行S302,点云重构模块1203可以用于执行S303。
[0203] 作为一个示例,打包模块1201可以对应图5中的打包模块102,辅助信息编码模块1202可以对应图5中的辅助信息编码模块108。当然不限于此。点云重构模块1203具体可以对应
[0204] 图5中的点云重构模块112。需要说明的是,打包模块1201与重构模块1203可以直接连接,也可以是通过其他功能模块间接连接,例如,一种间接连接的示例可以参考图5中打包模块102与点云重构模块112之间的间接连接关系。
[0205] 图13为本申请实施例提供的一种解码器130的示意性框图。解码器130可以用于执行图9或图11所示的点云解码方法。解码器130包括辅助信息解码模块1301和点云重构模块1302。
[0206] 在一些实施例中,辅助信息解码模块1301用于解析码流,以得到语法元素,该语法元素包括点云组的并集占用图的辅助信息,该点云组包括N帧点云,N≥2,N是整数,该并集占用图是该N帧点云中具有匹配关系的N个patch的占用图的并集;根据解析得到的该并集占用图的辅助信息,确定该N个patch的辅助信息。点云重构模块1302用于基于该N帧点云中的多个patch的辅助信息,重构该N帧点云;其中,该多个patch包括该N个patch。例如,结合图9,辅助信息解码模块1301可以用于执行S201和S202,点云重构模块1302可以用于执行S203。
[0207] 可选的,并集占用图的辅助信息包括以下信息中的至少一种:并集占用图在全局占用图中的坐标值、并集占用图在全局占用图中的尺寸信息和并集占用图对应在三维空间中的坐标值。全局占用图是对该点云组中的多个并集占用图进行打包得到的占用图。
[0208] 可选的,上述语法元素还包括:该N个patch中的一个或多个patch的对应辅助信息与该并集占用图的辅助信息的差值。该情况下,在根据解析得到的该并集占用图的辅助信息,确定该N个patch的辅助信息的方面,辅助信息解码模块1301具体用于:根据解析得到的该并集占用图的辅助信息,以及该N个patch中的一个或多个patch的对应辅助信息与该并集占用图的辅助信息的差值,确定该N个patch的辅助信息。
[0209] 可选的,该点云组是GOF或子GOF,该子GOF包括一个GOF中连续的多帧点云。
[0210] 可选的,若该点云组是子GOF,上述语法元素还包括:表示该子GOF包含的点云(如每帧点云)在该子GOF所属的GOF中的位置的信息,例如,该子GOF包含的起始帧的编号,和/或该子GOF包含的点云的帧数。该情况下,辅助信息解码模块1301还用于,根据解析得到的表示该子GOF包含的点云在该子GOF所属的GOF中的位置的信息,确定该子GOF包含的点云(如每帧点云)在该子GOF所属的GOF中的位置。
[0211] 在另一些实施例中:辅助信息解码模块1501用于解析码流,以得到指示信息,该指示信息指示是否采用目标点云解码方法对点云组中的N个patch的辅助信息进行解码,目标点云解码方法包括上述图11所示的点云解码方法;该点云组包括N帧点云,N≥2,N是整数;该N个patch是该N帧点云中具有匹配关系的N个patch。当该指示信息指示采用目标点云解码方法进行解码时,辅助信息解码模块1501和点云重构模块1502采用该目标点云解码方法对该N个patch的辅助信息进行处理。例如,结合图11,辅助信息解码模块1501可以用于执行S401,辅助信息解码模块1501和点云重构模块1502可以用于执行S402。其中,该处理过程中辅助信息解码模块1501和点云重构模块1502所执行的步骤可以参考上述实施例。例如,在该处理过程中,结合图9,辅助信息解码模块1501可以用于执行S201和S202,点云重构模块
1502可以用于执行S203。
[0212] 作为一个示例,辅助信息解码模块1301可以对应图7中的辅助信息解码模块204,点云重构模块1302可以对应图7中的点云重构模块205。
[0213] 可以理解的,本申请实施例的编解码器中的各个模块为实现本申请对应的点云编解码方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本申请对应的点云编解码方法中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见本文中对图像滤波方法的介绍,为简洁起见,本文将不再赘述。
[0214] 图14为用于本申请实施例的编码设备或解码设备(简称为译码设备160,或者点云译码设备160)的一种实现方式的示意性框图。其中,译码设备160可以包括处理器1610、存储器1630和总线系统1650。其中,处理器1610和存储器1630通过总线系统1650相连,该存储器1630用于存储指令,该处理器1610用于执行该存储器1630存储的指令,以执行本申请描述的各种点云编码或解码方法,尤其是基于当前图像块的块尺寸对当前图像块进行滤波的方法。为避免重复,这里不再详细描述。
[0215] 在本申请实施例中,处理器1610可以是中央处理单元(central processing unit,CPU),处理器1610还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0216] 存储器1630可以包括ROM设备或者RAM设备。任何其他适宜类型的存储设备也可以用作存储器1630。存储器1630可以包括由处理器1610使用总线1650访问的代码和数据1631。存储器1630可以进一步包括操作系统1633和应用程序1635,该应用程序1635包括允许处理器1610执行本申请描述的点云编码或解码方法(尤其是本申请描述的基于当前图像块的块尺寸对当前图像块进行滤波的方法)的至少一个程序。例如,应用程序1635可以包括应用1至N,其进一步包括执行在本申请描述的点云编码或解码方法的点云编码或解码应用(简称点云译码应用)。
[0217] 总线系统1650除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1650。
[0218] 可选的,译码设备160还可以包括一个或多个输出设备,诸如显示器1670。在一个示例中,显示器1670可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器1670可以经由总线1650连接到处理器1610。
[0219] 本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
[0220] 作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、DVD和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
[0221] 可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。在一种示例下,编码器100及解码器200中的各种说明性逻辑框、单元、模块可以理解为对应的电路器件或逻辑元件。
[0222] 本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
[0223] 以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈