点云滤波方法、装置及存储介质与流程

文档序号:21549132发布日期:2020-07-21 10:43阅读:182来源:国知局
点云滤波方法、装置及存储介质与流程

本申请涉及数据处理技术领域,特别涉及一种点云滤波方法、装置及存储介质。



背景技术:

随着三维传感技术的不断发展,点云的采集越来越便捷,并且采集到的点云的质量也越来越高,规模也越来越大。为了对大规模的点云进行高效的存储和传输,通常需要对点云进行编码和解码。在编码的过程中,需要对采集到的点云进行分割以得到多个点云块,并通过多个点云块生成点云占用图,并对点云占用图进行下采样处理。通过下采样处理后的点云占用图进行点云几何的重构,以得到重构点云。而且在解码的过程中,也会通过下采样处理后的点云占用图进行点云几何的重构,以得到重构点云。然而,由于下采样处理通常会降低点云占用图的分辨率,因此重构点云中每个点云块的边界处会存在噪声点。并且在点云几何的重构过程中,每个点云块都会存在重构误差,因此会增加重构点云中相邻两个点云块之间的距离,从而在两个相邻点云块之间产生缝隙。由于噪声点和缝隙等瑕疵会降低重构点云的质量,因此需要对重构点云进行滤波,以去除噪声点和缝隙等瑕疵来提高重构点云的质量。

相关技术中,提供了一种点云滤波方法,包括:通过点云占用图确定重构点云中每个点云块的边界点,将重构点云的包围盒划分为多个三维网格,并确定落入每个三维网格中的重构点,从而按照落入每个三维网格中的重构点确定每个三维网格的质心位置。对于每个点云块中的任一边界点,确定这个边界点落入的三维网格,并确定与这个边界点落入的三维网格相邻的至少一个三维网格。确定该至少一个三维网格的质心位置,并将该至少一个三维网络的质心位置作为这个边界点的邻域重构点的质心位置,从而确定这个边界点所处位置与这个边界点的邻域重构点的质心位置之间的距离。如果该距离大于距离阈值,则用于该至少一个三维网格的质心位置更新这个边界点的位置。以此类推,直到遍历完重构点云的所有点云块中的所有边界点,以实现重构点云的滤波。

然而,上述划分三维网格、确定相邻的至少一个三维网格等步骤均是在三维空间中实现,而且上述过程需要确定每个三维网格的质心位置,但大部分的三维网格的质心位置后续不会被用到,因此上述该过程较为复杂,而且还需要额外的内存来存储每个三维网格的质心位置。



技术实现要素:

本申请提供了一种点云滤波方法、装置及存储介质,有助于提高点云滤波的效率。

第一方面,提供了一种点云滤波方法,包括:从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块;通过相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点;根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波。

如果不加说明,第一方面或第一方面的任意一种可能的设计中的执行主体可以是编码器或者解码器。

需要说明的是,重构点云可以是由如图2所示的编码器100中的点云重构模块113对当前帧点云的几何进行重构,得到的点云。重构点云也可以是由如图6所示的解码器200中的点云重构模块206对当前帧点云的几何进行重构,得到的点云。一个或多个点云块可以是重构点云中的所有点云块,当然该一个或多个点云块也可以是该重构点云中的部分点云块。当前点云块可以是重构点云包括的一个或多个点云块中的任一点云块,当然当前点云块也可以是重构点云包括的一个或多个点云块中的某一指定的点云块。当前点云块的相邻点云块是与当前点云块在三维空间中具有相邻关系的点云块。另外,当前边界点可以是当前点云块中的任一边界点,当前边界点也可以是当前点云块中某一指定的边界点。

本技术方案中,由于相邻点云块投影到对应的投影平面上的像素点与相邻点云块中的重构点对应,因此可以通过该相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点。最后再根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波,得到平滑的重构点云。由于该点云滤波方法通过二维空间的投影平面就可以确定出当前边界点在三维空间中的相邻重构点,使得确定当前边界点的相邻重构点的过程更加简单,进而降低了滤波的复杂度,提高了编码效率。

在本申请中,当前点云块中可能存在当前边界点的相邻重构点,当前点云块的相邻点云块中也可能存在当前边界点的相邻重构点。但是,在一种可能的情况中,可以只从当前点云块的相邻点云块中确定当前边界点的相邻重构点。

也即是,在一种可能的设计中,通过相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点,包括:从相邻点云块对应的投影平面中,确定当前像素点的m个相邻像素点,其中,当前边界点对应于相邻点云块对应的投影平面中的当前像素点,m为正整数;根据当前像素点的m个相邻像素点,确定当前边界点的l个相邻重构点,l为正整数。

应当理解的是,当前边界点与当前像素点的对应是投影关系上的一种对应。当前像素点的说法是为了与当前边界点对应,以表示当前像素点是当前边界点在相邻点云块对应的投影平面上对应的像素点。另外,当前边界点的l个相邻重构点,即是当前边界点的一个或多个相邻重构点。也就是说,l为大于或等于1的整数。

在一种可能的设计中,从相邻点云块对应的投影平面中,确定当前像素点的m个相邻像素点,包括:当当前边界点在相邻点云块对应的投影平面上进行投影后,获得经投影过的相邻点云块对应的投影平面,其中,经投影过的相邻点云块对应的投影平面上包括:与当前边界点对应的一个当前像素点和与相邻点云块中的p个重构点对应的q个像素点,p和q为正整数;从经投影过的相邻点云块对应的投影平面上确定当前像素点的m个相邻像素点,m个相邻像素点被包括于相邻点云块包括的p个重构点所对应的q个像素点中。

由于三维空间中的多个点可能对应二维平面上的同一个点,也即是,重构点云中的多个重构点可能对应二维平面上的同一个像素点,因此,对于相邻点云块中的p个重构点,该p个重构点在相邻点云块对应的投影平面上可能对应q个像素点。其中,q可能与p相等,也可能小于p。后续,对于m个相邻像素点对应的n个第一候选重构点、s个相邻像素点对应的u个相邻重构点、t个相邻像素点对应的e个第二候选重构点,以及x个重构点对应的y个像素点是同样的道理,后续不再赘述。

在一种可能的设计中,根据当前像素点的m个相邻像素点,确定当前边界点的l个相邻重构点,包括:从n个第一候选重构点中,确定对应的第一深度差值小于深度阈值的第一候选重构点为当前边界点的相邻重构点,其中,第一深度差值为第一深度分别与n个第一候选重构点中每个第一候选重构点相对于相邻点云块对应的投影平面的深度之间的深度差值,第一深度为当前边界点相对于相邻点云块对应的投影平面的深度,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,n为正整数。

由于m个相邻像素点与当前像素点存在相邻关系,且n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,而且基于上述描述,重构点云中的多个重构点可能对应二维平面上的同一个像素点,此时,对应同一像素点的多个重构点相对于相邻点云块对应的投影平面的深度不同,因此,为了提高确定当前边界点的相邻重构点的准确性,可以通过第一深度差值,从n个第一候选重构点中选择当前边界点的一个或多个相邻重构点。

在一种可能的设计中,根据当前像素点的m个相邻像素点,确定当前边界点的l个相邻重构点,包括:从n个第一候选重构点中,确定对应的第一距离小于第一距离阈值的第一候选重构点为当前边界点的相邻重构点,其中,第一距离为当前边界点与n个第一候选重构点中每个第一候选重构点之间的距离,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,n为正整数。

由于m个相邻像素点与当前像素点存在相邻关系,且n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,而且基于上述描述,重构点云中的多个重构点可能对应二维平面上的同一个像素点,此时,对应同一像素点的多个重构点相对于相邻点云块对应的投影平面的深度不同,因此,为了提高当前边界点的相邻重构点的准确性,可以根据当前像素点的二维坐标和当前边界点相对于相邻点云块对应的投影平面的深度,以及m个相邻像素点的二维坐标和n个第一候选重构点中每个第一候选重构点相对于相邻点云块对应的投影平面的深度,来确定第一距离,进而通过第一距离,从n个第一候选重构点中选择当前边界点的一个或多个相邻重构点。对于这种情况,可以直接基于当前边界点在相邻点云块对应的投影平面上的投影情况,以及n个第一候选重构点在相邻点云块对应的投影平面上的投影情况,确定当前边界点的一个或多个相邻重构点,而无需返回至三维空间去计算。

当然,在本申请中,也可以返回至三维空间中计算,具体地,可以根据当前边界点的三维坐标,以及n个第一候选重构点中每个第一候选重构点的三维坐标,确定第一距离,进而通过第一距离,从n个第一候选重构点中选择当前边界点的一个或多个相邻重构点。

需要说明的是,不仅可以按照上述两种方式,根据当前像素点的m个相邻像素点,确定所述当前边界点的l个相邻重构点,还可以通过其他的方式来确定,比如,可以直接将n个第一候选重构点确定为当前边界点的l个相邻重构点,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,此时n与l相等。

基于上述描述,当前点云块和相邻点云块中都可能存在当前边界点的相邻重构点。因此,在一种可能的情况中,可以从当前点云块和相邻点云块中确定当前边界点的相邻重构点。

也即是,在一种可能的设计中,通过相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点,包括:从当前点云块对应的投影平面和相邻点云块对应的投影平面中,确定当前像素点的s个相邻像素点,其中,当前边界点对应于相邻点云块对应的投影平面中的当前像素点,s为正整数;根据s个相邻像素点,确定当前边界点的u个相邻重构点,u为正整数。

应当理解的是,当前边界点的u个相邻重构点,即是当前边界点的一个或多个相邻重构点。也就是说,u为大于或等于1的整数。

在一种可能的设计中,从当前点云块对应的投影平面和相邻点云块对应的投影平面中,确定当前像素点的s个相邻像素点,包括:当当前边界点在相邻点云块对应的投影平面上进行投影后,获得经投影过的相邻点云块对应的投影平面,其中,相邻点云块对应的投影平面上包括:与当前边界点对应的一个当前像素点和与相邻点云块中的p个重构点对应的q个像素点,p和q为正整数;从当前点云块对应的投影平面上,确定当前边界点投影到当前点云块对应的投影平面上的当前像素点i的t个相邻像素点,从经投影过的相邻点云块对应的投影平面上,确定当前边界点投影到相邻点云块对应的投影平面上的当前像素点j的m个相邻像素点,t个相邻像素点被包括于当前点云块包括的x个重构点所对应的y个像素点中,m个相邻像素点被包括于相邻点云块包括的p个重构点所对应的q个像素点中,t和m之和为s,t、x和y为正整数。

由于在这种情况中,不仅需要从当前点云块中确定当前边界点的相邻重构点,还需要从当前点云块的相邻点云块中确定当前边界点的相邻重构点,因此,需要将当前边界点在当前点云块对应的投影平面上进行投影,还需要将当前边界点在当前点云块的相邻点云块对应的投影平面上进行投影。也即是,当前边界点在当前点云块对应的投影平面上存在一个当前像素点,在当前点云块的相邻点云块对应的投影平面上也存在一个当前像素点。为了便于描述,将当前边界点投影到当前点云块对应的投影平面上的当前像素点称为当前像素点i,将当前边界点投影到当前点云块的相邻点云块对应的投影平面上的当前像素点称为当前像素点j。

在一种可能的设计中,根据s个相邻像素点,确定当前边界点的u个相邻重构点,包括:从n个第一候选重构点中,确定对应的第一深度差值小于深度阈值的第一候选重构点为当前边界点的相邻重构点;从e个第二候选重构点中,确定对应的第二深度差值小于深度阈值的第二候选重构点为当前边界点的相邻重构点,其中,第一深度差值为第一深度分别与n个第一候选重构点中每个第一候选重构点相对于相邻点云块对应的投影平面的深度之间的深度差值,第二深度差值为第二深度分别与e个第二候选重构点中每个第二候选重构点相对于当前点云块对应的投影平面的深度之间的深度差值,第一深度为当前边界点相对于相邻点云块对应的投影平面的深度,第二深度为当前边界点相对于当前点云块对应的投影平面的深度,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,e个第二候选重构点为t个相邻像素点在重构点云中对应的重构点,n和t为正整数

在一种可能的设计中,根据s个相邻像素点,确定当前边界点的u个相邻重构点,包括:从n个第一候选重构点中,确定对应的第一距离小于第一距离阈值的第一候选重构点为当前边界点的相邻重构点;从e个第二候选重构点中,确定对应的第二距离小于第一距离阈值的第二候选重构点为当前边界点的相邻重构点,其中,第一距离为当前边界点与n个第一候选重构点中每个第一候选重构点之间的距离,第二距离为当前边界点与e个第二候选重构点中每个第二候选重构点之间的距离,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,e个第二候选重构点为t个相邻像素点在重构点云中对应的重构点,n和t为正整数。

需要说明的是,不仅可以通过上述两种可能的实现方式,根据s个相邻像素点,确定当前边界点的u个相邻重构点。还可以通过其他的方式来确定,比如,可以直接将s个相邻像素点在重构点云中对应的重构点确定为当前边界点的u个相邻重构点。其中,s个相邻像素点中包括当前边界点投影到当前点云块对应的投影平面上的当前像素点i的t个相邻像素点,以及当前边界点投影到相邻点云块对应的投影平面上的当前像素点j的m个相邻像素点,因此,在这种情况下,t个相邻像素点在重构点云中对应的e个第二候选重构点和m个相邻像素点在重构点云中对应的n个第一候选重构点,为当前边界点的u个相邻重构点。也即是,在这种情况下,e和n之和为u。

在一种可能的设计中,从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块,包括:确定一个或多个点云块中每个点云块的包围盒;从一个或多个点云块中,确定包围盒与当前点云块的包围盒存在重叠部分的点云块为当前点云块的相邻点云块。

需要说明的是,包围盒是一种体积稍大于点云块且特性简单的几何体。包围盒可以将点云块包括的所有重构点包围在其中。包围盒可以是包括多个平面的几何体,本申请实施例对此不做具体限定。例如,包围盒可以是六面体等。

由于在三维空间中,每个点云块都可以由一个或多个重构点组成,该一个或多个重构点通常是在三维空间中离散分布的点,所以先确定每个点云块的包围盒,即可将每个点云块在三维空间中的区域进行了划分。通常情况下,包围盒具有重叠部分的两个点云块可以认为是相邻的点云块。因此这样的条件下,可以确定包围盒与当前点云块的包围盒存在重叠部分的点云块为当前点云块的相邻点云块,使得确定当前点云块的相邻点云块的过程更加便捷。

在一种可能的设计中,从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块,包括:确定一个或多个点云块中每个点云块的扩展包围盒,扩展包围盒是对一个或多个点云块中每个点云块的包围盒经扩展得到的;从一个或多个点云块中,确定扩展包围盒与当前点云块的扩展包围盒存在重叠部分的点云块为当前点云块的相邻点云块。

需要说明的是,扩展包围盒是对点云块的包围盒经扩展得到的包围盒。扩展包围盒可以通过以包围盒的几何中心为扩展中心发散式地将包围盒的体积扩展预设比例而得到,预设比例可以根据使用需求进行设置,本申请实施例对此不做具体限定。例如,预设比例可以为5%等,也即是扩展包围盒通过以包围盒的几何中心为扩展中心发散式地将包围盒的体积扩展5%得到的。当然,对包围盒的扩展还可以是别的实现方式。

由于在一种可能的情况中,当前点云块的包围盒和与其相邻的某些点云块的包围盒不存在重叠部分。此时,当确定包围盒与当前点云盒的包围盒存在重叠部分的点云块为当前点云块的相邻点云块时,容易将某些与当前点云块相邻的点云块排除掉,使得确定出来的相邻点云块的结果不准确。因此,这种情况下,可以先确定一个或多个点云块中每个点云块的扩展包围盒,然后再确定扩展包围盒与当前点云块的扩展包围盒存在重叠部分的点云块为当前点云块的相邻点云块,可以使确定出的当前点云块的相邻点云块的结果更加准确。

在一种可能的设计中,从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块,包括:确定一个或多个点云块中每个点云块的包围盒和当前边界点对应的三维空间体,所述三维空间体为所述当前边界点的相邻重构点所处的空间体;从一个或多个点云块中,选择包围盒与当前点云块的包围盒和当前边界点对应的三维空间体均存在重叠部分的点云块为当前点云块的相邻点云块。

由于在一种可能的情况中,当前点云块的相邻点云块的数量较多,而这些相邻点云块中的部分点云块可能明显不存在当前边界点的相邻重构点,因此,为了降低计算复杂度,需要从一个或多个点云块中,选择包围盒不仅与当前点云块的包围盒存在重叠部分,还需要与当前边界点对应的三维空间体存在重叠部分的点云块,将选择的点云块作为当前点云块的相邻点云块。

在一种可能的设计中,从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块,包括:确定一个或多个点云块中每个点云块的扩展包围盒和当前边界点对应的三维空间体,扩展包围盒是对一个或多个点云块中每个点云块的包围盒经扩展得到的,所述三维空间体为所述当前边界点的相邻重构点所处的空间体;从一个或多个点云块中,选择扩展包围盒与当前点云块的扩展包围盒和当前边界点对应的三维空间体均存在重叠部分的点云块为当前点云块的相邻点云块。

由于在一种可能的情况中,当前点云块的相邻点云块的数量较多,而这些相邻点云块中的部分点云块可能明显不存在当前边界点的相邻重构点,因此,为了降低计算复杂度,需要从一个或多个点云块中,选择扩展包围盒不仅与当前点云块的扩展包围盒存在重叠部分,还需要与当前边界点对应的三维空间体存在重叠部分的点云块,将选择的点云块作为当前点云块的相邻点云块。

在一种可能的设计中,根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波,包括:确定当前边界点的一个或多个相邻重构点的质心位置;如果质心位置与当前边界点所处位置之间的距离大于第二距离阈值,则更新当前边界点的位置,其中,当前边界点更新后的位置对应质心位置。

应当理解的是,当前边界点是当前点云块中的一个边界点,对当前边界点的滤波可以适用于当前点云块中的每个边界点,此处对当前点云块中的其他边界点的滤波不再赘述,当完成对当前点云块的所有边界点的滤波之后,即完成了对当前点云块的滤波。而且,对当前点云块的滤波也适用于重构点云中的其他点云块的滤波,当完成对重构点云中的所有点云块的滤波之后,即完成了对重构点云的滤波。也即是,本申请以当前点云块的当前边界点为对象对本申请的技术方案进行解释,当前点云块的其它边界点的滤波过程不再赘述。而且本申请针对整个重构点云的滤波过程,能降低点云滤波的复杂度,提高编解码效率,即可以遍历整个重构点云,对重构点云中的多个/所有点云块中的多个/所有边界点完成滤波。一旦点云数据规模越大,本申请提供的技术方案的复杂度降低的效果越好。

第二方面,提供了一种点云编码方法,包括:确定指示信息,该指示信息用于指示是否按照目标滤波方法对待编码点云的重构点云进行处理,目标滤波方法包括包括如上述第一方面提供的任一种点云滤波方法;将该指示信息编入码流。

第三方面,提供了一种点云解码方法,包括:解析码流,以得到指示信息,该指示信息用于指示是否按照目标滤波方法对待解码点云的重构点云进行处理,目标滤波方法包括如上述第一方面提供的任一种点云滤波方法;当该指示信息用于指示按照目标滤波方法对待解码点云的重构点云进行处理时,按照目标滤波方法对待解码点云的重构点云进行滤波处理。

第四方面,提供了一种点云滤波装置,包括:点集确定单元,用于从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块;通过相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点;滤波处理单元,用于根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波。

第五方面,提供了一种编码器,包括:点云滤波模块,用于按照目标滤波方法对待编码点云的重构点云进行滤波处理;辅助信息编码模块,用于确定指示信息,以及,将该指示信息编入码流,该指示信息用于指示是否按照目标滤波方法对待编码点云的重构点云进行处理,目标滤波方法包括上述第一方面提供的点云滤波方法。

第六方面,提供了一种解码器,包括:辅助信息解码模块,用于解析码流,以得到指示信息,该指示信息用于指示是否按照目标滤波方法对待解码点云的重构点云进行处理,目标滤波方法包括如上述第一方面提供的任一种点云滤波方法;点云滤波模块,用于当该指示信息用于指示按照目标滤波方法对待解码点云的重构点云进行处理时,按照目标滤波方法对待解码点云的重构点云进行滤波处理。

第七方面,提供了一种编码器,包括:点云滤波模块,点云滤波模块为上述第四方面提供的点云滤波装置;纹理图生成模块,用于根据滤波处理后的重构点云生成待编码点云的纹理图。

也即是,点云滤波模块,用于从待编码点云的重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块,通过相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点,根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波;纹理图生成模块,用于根据滤波处理后的重构点云生成待编码点云的纹理图。

第八方面,提供了一种解码器,包括:点云滤波模块,点云滤波模块为上述第四方面提供的点云滤波装置;纹理信息重构模块,用于对滤波处理后的重构点云的纹理信息进行重构。

也即是,点云滤波模块,用于从待解码点云的重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块,通过相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点,根据当前边界点的相邻重构点集合,对当前点云块进行滤波;纹理信息重构模块,用于对滤波处理后的重构点云的纹理信息进行重构。

第九方面,本申请还提供一种计算机可读存储介质,包括程序代码,该程序代码在计算机上运行时,使得该计算机执行如上述第一方面及其可能的设计提供的任一种点云译码方法。

第十方面,本申请还提供一种计算机可读存储介质,包括程序代码,该程序代码在计算机上运行时,使得该计算机执行上述第二方面提供的点云编码方法。

第十一方面,本申请还提供一种计算机可读存储介质,包括程序代码,该程序代码在计算机上运行时,使得该计算机执行上述第三方面提供的点云编码方法。

应当理解的是,上述提供的任一种编解码器、处理装置、编解码装置和计算机可读存储介质的有益效果均可以对应参考上文对应方面提供的方法实施例的有益效果,不再赘述。

附图说明

图1为本申请实施例提供的一种点云译码系统的示意性框图。

图2为可用于本申请实施例的一种编码器的示意性框图。

图3为可适用于本申请实施例的一种点云的示意图。

图4为可适用于本申请实施例的一种点云的patch的示意图。

图5为可适用于本申请实施例的一种点云的占用图的示意图。

图6为可用于本申请实施例的一种解码器的示意性框图。

图7为本申请实施例提供的一种点云滤波方法的流程示意图。

图8为本申请实施例提供的一种确定当前点云块的相邻点云块的实施方式的二维示意图以及对应的描述信息的的汇总表。

图9为本申请实施例提供的确定当前像素点的m个相邻像素点的示意图。

图10为本申请实施例提供的第一种确定当前边界点的相邻重构点的示意图。

图11为本申请实施例提供的第二种确定当前边界点的相邻重构点的示意图。

图12为本申请实施例提供的第三种确定当前边界点的相邻重构点的示意图。

图13为本申请实施例提供的第四种确定当前边界点的相邻重构点的示意图。

图14为本申请实施例提供的一种点云编码方法的流程示意图。

图15为本申请实施例提供的一种点云解码方法的流程示意图。

图16为本申请实施例提供的一种点云滤波装置的示意性框图。

图17为本申请实施例提供的第一种编码器的示意性框图。

图18为本申请实施例提供的第一种解码器的示意性框图。

图19为本申请实施例提供的第二种编码器的示意性框图。

图20为本申请实施例提供的第二种解码器的示意性框图。

图21为用于本申请实施例的译码设备的一种实现方式的示意性框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。

本申请实施例中的术语“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。

在对本申请实施例进行详细的解释说明之前,先对本申请实施例的实施环境进行介绍:

本申请实施例提供的一种实施环境包括点云译码系统。图1为本申请实施例提供的一种点云译码系统的示意性框图。其中,术语“点云译码”或“译码”可一般地指代点云编码或点云解码。参见图1,点云译码系统包括源装置10、目的地装置20、链路30和存储装置40。其中,源装置10可以产生经编码的点云数据。因此,源装置10也可以被称为点云编码装置。目的地装置20可以对由源装置10所产生的经编码的点云数据进行解码。因此,目的地装置20也可以被称为点云解码装置。链路30可以接收源装置10所产生的经编码的点云数据,并可以将该经编码的点云数据传输给目的地装置20。存储装置40可以接收源装置10所产生的经编码的点云数据,并可以将该经编码的点云数据进行存储,这样的条件下,目的地装置20可以直接从存储装置40中获取经编码的点云数据。或者,存储装置40可以对应于文件服务器或可以保存由源装置10产生的经编码的点云数据的另一中间存储装置,这样的条件下,目的地装置20可以经由流式传输或下载存储装置40存储的经编码的点云数据。

源装置10和目的地装置20均可以包括一个或多个处理器以及耦合到该一个或多个处理器的存储器,该存储器可以包括随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、带电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、快闪存储器、可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体等。例如,源装置10和目的地装置20均可以包括桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。

链路30可以包括能够将经编码的点云数据从源装置10传输到目的地装置20的一个或多个媒体或装置。在一种可能的实现方式中,链路30可以包括能够使源装置10实时地将经编码的点云数据直接发送到目的地装置20的一个或多个通信媒体。在本申请实施例中,源装置10可以根据通信标准来调制经编码的点云数据,该通信标准可以为无线通信协议等,并且可以将经调制的点云数据发送给目的地装置20。该一个或多个通信媒体可以包括无线和/或有线通信媒体,例如该一个或多个通信媒体可以包括射频(radiofrequency,rf)频谱或一个或多个物理传输线。该一个或多个通信媒体可以形成基于分组的网络的一部分,基于分组的网络可以为局域网、广域网或全球网络(例如,因特网)等。该一个或多个通信媒体可以包括路由器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备等,本申请实施例对此不做具体限定。

在一种可能的实现方式中,存储装置40可以将接收到的由源装置10发送的经编码的点云数据进行存储,目的地装置20可以直接从存储装置40中获取经编码的点云数据。这样的条件下,存储装置40可以包括多种分布式或本地存取的数据存储媒体中的任一者,例如,该多种分布式或本地存取的数据存储媒体中的任一者可以为硬盘驱动器、蓝光光盘、数字多功能光盘(digitalversatiledisc,dvd)、只读光盘(compactdiscread-onlymemory,cd-rom)、快闪存储器、易失性或非易失性存储器,或用于存储经编码点云数据的任何其它合适的数字存储媒体等。

在一种可能的实现方式中,存储装置40可以对应于文件服务器或可以保存由源装置10产生的经编码点云数据的另一中间存储装置,目的地装置20可经由流式传输或下载存储装置40存储的点云数据。文件服务器可以为能够存储经编码的点云数据并且将经编码的点云数据发送给目的地装置20的任意类型的服务器。在一种可能的实现方式中,文件服务器可以包括网络服务器、文件传输协议(filetransferprotocol,ftp)服务器、网络附属存储(networkattachedstorage,nas)装置或本地磁盘驱动器等。目的地装置20可以通过任意标准数据连接(包括因特网连接)来获取经编码点云数据。任意标准数据连接可以包括无线信道(例如,wi-fi连接)、有线连接(例如,数字用户线路(digitalsubscriberline,dsl)、电缆调制解调器等),或适合于获取存储在文件服务器上的经编码的点云数据的两者的组合。经编码的点云数据从存储装置40的传输可为流式传输、下载传输或两者的组合。

图1所示的点云译码系统仅为一种可能的实现方式,并且本申请的技术不仅可以适用于图1所示的可以对点云进行编码的源装置10,以及可以对经编码的点云数据进行解码的目的地装置20,还可以适用于其他可以对点云进行编码和对经编码的点云数据进行解码的装置,本申请实施例对此不做具体限定。

在图1所示的点云译码系统中,源装置10包括数据源120、编码器100和输出接口140。在一些实施例中,输出接口140可以包括调节器/解调器(调制解调器)和/或发送器,其中发送器也可以称为发射器。数据源120可以包括点云捕获装置(例如,摄像机等)、含有先前捕获的点云数据的点云存档、用于从点云内容提供者接收点云数据的点云馈入接口,和/或用于产生点云数据的计算机图形系统,或点云数据的这些来源的组合。

数据源可以向编码器100发送点云,编码器100可以对接收到由数据源120发送的点云进行编码,得到经编码的点云数据。编码器可以将经编码的点云数据发送给输出接口。在一些实施例中,源装置10经由输出接口140将经编码的点云数据直接发送到目的地装置20。在其它实施例中,经编码的点云数据还可存储到存储装置40上,供目的地装置20以后获取并用于解码和/或播放。

在图1的实施例中,目的地装置20包括输入接口240、解码器200和显示装置220。在一些实施例中,输入接口240包括接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码的点云数据,然后再发送给解码器200,解码器200可以对接收到的经编码的点云数据进行解码,得到经解码的点云数据。解码器可以将经解码的点云数据发送给显示装置220。显示装置220可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置220显示经解码的点云数据。显示装置220可以为多种类型中的任一种类型的显示装置,例如,显示装置220可以为液晶显示器(liquidcrystaldisplay,lcd)、等离子显示器、有机发光二极管(organiclight-emittingdiode,oled)显示器或其它类型的显示装置。

尽管图1中未示出,但在一些方面,编码器100和解码器200可各自与音频编码器和解码器集成,且可以包括适当的多路复用器-多路分用器(multiplexer-demultiplexer,mux-demux)单元或其它硬件和软件,用于共同数据流或单独数据流中的音频和视频两者的编码。在一些实施例中,如果适用的话,那么mux-demux单元可符合ituh.223多路复用器协议,或例如用户数据报协议(userdatagramprotocol,udp)等其它协议。

编码器100和解码器200各自可为以下各项电路中的任一者:一个或多个微处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一个或多个处理器在硬件中执行所述指令从而实施本申请技术。前述内容(包括硬件、软件、硬件与软件的组合等)中的任一者可被视为一个或多个处理器。编码器100和解码器200中的每一者都可以包括在一个或多个编码器或解码器中,所述编码器或所述解码器中的任一者可以集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。

本申请可大体上将编码器100称为将某些信息“发信号通知”或“发送”到例如解码器200的另一装置。术语“发信号通知”或“发送”可大体上指代用于对经压缩点云数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。

图2为本申请实施例提供的一种编码器100的示意性框图。图2是以mpeg(movingpictureexpertgroup)点云压缩(pointcloudcompression,pcc)编码框架为例进行说明的。参见图2,编码器100可以包括点云块(patch)信息生成模块101、打包模块102、深度图生成模块103、纹理图生成模块104、深度图填充模块105、纹理图填充模块106、基于图像或视频的编码模块107、占用图编码模块108、辅助信息编码模块109、复用模块110、点云占用图下采样模块111、点云占用图填充模块112、点云重构模块113和点云滤波模块114。

patch信息生成模块101可以接收由数据源120发送的一帧或多帧点云,为了方便描述,后续统一以当前帧点云进行说明。patch信息生成模块101可以确定当前帧点云包括的每个点在三维空间坐标系中的三维坐标,以及每个点在三维空间中的法线方向矢量,并根据确定出的每个点在三维空间中的法线方向矢量和预定义的投影平面将当前帧点云分割为多个patch,每个patch包括当前帧点云中的一个或多个点,且每个patch是一个连通区域。其中,预定义的投影平面可以是当前帧点云的包围盒中的平面,也即是,当前帧点云的包围盒包括的平面可以作为多个patch的投影平面,且每个patch都有一个对应的投影平面。然后patch信息生成模块101将该多个patch中的每个patch从三维空间投影到对应的投影平面上,每个patch对应的投影平面都对应着一个索引。在将每个patch从三维空间投影到对应的投影平面上之后,可以得到每个patch的占用图和每个patch的深度图。其中,任一patch的占用图可以是由将该patch投影到对应的投影平面上得到的与该patch包括的点对应的像素点组成的图。patch信息生成模块101还可以确定每个patch包括的每个点相对于对应的投影平面的深度,以及每个patch包括的每个点投影到二维投影平面的二维坐标等。在一种可能的实现方式中,任一patch的占用图中的像素点是将该patch包括的点的三维坐标转换到对应的投影平面上的二维坐标来确定的。patch信息生成模块可以将每个patch的占用图进行存储,或者不存储。另外,patch信息生成模块101还可以将当前帧点云中的每个点在三维空间中的法线方向矢量、每个patch在三维空间坐标系中的坐标、每个patch包括的每个点投影到对应的投影平面的二维坐标、每个patch包括的每个点相对于对应的投影平面的深度、以及每个patch对应的投影平面对应的索引等每个patch的空间信息作为辅助信息发送给辅助信息编码模块109,以进行编码,也可以称为进行压缩编码。patch信息生成模块101还可以将每个patch的占用图和每个patch的空间信息发送给打包模块102。另外,patch信息生成模块101还可以将每个patch的深度图发送给深度图生成模块103。

打包模块102可以将接收到的由patch信息生成模块101发送的每个patch的占用图和每个patch的空间信息进行打包,得到当前帧点云的占用图。具体地,打包模块102可以将每个patch按照特定的顺序进行排列,例如按照每个patch的占用图的宽/高降序(或升序)排列,然后,按照排列后的每个patch的顺序,依次将每个patch的占用图插入当前帧点云的占用图的可用区域中,得到当前帧点云的占用图以及当前帧点云的patch打包信息。打包模块102可以将当前帧点云的占用图发送给点云占用图下采样模块111,打包模块102还可以将当前帧点云的patch打包信息发送给深度图生成模块103和辅助信息编码模块109。

需要说明的是,为了更加直观地了解本申请技术中涉及的点云、点云的patch以及点云的占用图,参见图3、图4和图5,图3为可适用于本申请实施例的一帧点云的示意图,图4为该帧点云的patch的示意图,图5为图4所示的该帧点云的每个patch投影到对应的投影平面上所得到的每个patch的占用图,经打包模块102打包得到的该帧点云的占用图的示意图。

图3所示的点云可以是本申请实施例中的当前帧点云,图4所示的点云的patch可以是本申请实施例中的当前帧点云的patch,图5所示的点云的占用图可以是本申请实施例中的当前帧点云的占用图。辅助信息编码模块109在接收到由打包模块102发送的当前帧点云的打包信息,以及由patch信息生成模块101发送的每个patch的空间信息之后,可以将当前帧点云的打包信息和每个patch的空间信息进行编码,得到包括经编码的辅助信息的码流,然后将得到的包括经编码的辅助信息的码流发送给复用模块110。

深度图生成模块103可以在接收到由打包模块102发送的当前帧点云的patch打包信息,以及由patch信息生成模块101发送的每个patch的深度图打包之后,根据当前帧点云的patch打包信息和每个patch的深度图生成当前帧点云的深度图。然后将所生成的当前帧点云的深度图发送给深度图填充模块105,以对当前帧点云的深度图中的空白像素点进行填充,得到经填充的当前帧点云的深度图。深度图填充模块105可以将得到的经填充的当前帧点云的深度图发送给基于图像或视频的编码模块107,以对经填充的当前帧点云的深度图进行基于图像或视频的编码,得到重构的当前点云的深度图,以及包括经编码的当前帧点云的深度图的码流,并可以将得到的重构的当前帧点云的深度图发送给点云重构模块113,将包括经编码的当前帧点云的深度图的码流发送给复用模块110。

点云占用图下采样模块111可以将接收到的由打包模块102发送的当前帧点云的占用图进行下采样处理,以得到低分辨率的当前帧点云的占用图。其中,下采样处理可以提高处理当前帧点云占用图的效率而减少当前帧点云占用图的采样点,下采样处理后得到的当前帧点云占用图的分辨率通常会比下采样处理前小。之后点云占用图下采样模块111还可以将该低分辨率的当前帧点云的占用图发送给占用图编码模块108和点云占用图填充模块112。占用图编码模块108可以对接收到的低分辨率的当前帧点云的占用图进行编码,得到包括经编码的低分辨率的当前帧点云的占用图的码流,占用图编码模块108还可以将包括经编码的低分辨率的当前帧点云的占用图的码流发送给复用模块110。点云占用图填充模块112根据接收到的低分辨率的当前帧点云的占用图对于具有原始分辨率的当前帧点云的占用图进行填充,得到经填充的当前帧点云的占用图,该经填充的当前帧点云的占用图具有原始分辨率。具体地,将具有原始分辨率的当前帧点云的占用图的一个像素块,全部填充为和该低分辨率的当前帧点云的占用图中对应的像素块的值相同的值,得到经填充的当前帧点云的占用图。点云占用图填充模块112还可以将经填充的当前帧点云的占用图发送给点云重构模块113。

点云重构模块113可以根据接收到的由点云占用图填充模块112发送的经填充的当前帧点云的占用图、由基于图像或视频的编码模块107发送的重构的当前帧点云的深度图、以及辅助信息(patch打包信息和patch空间信息)对当前帧点云的几何进行重构,以输出重构点云,另外,点云重构模块113还可以输出重构点云中重构点和patch的对应关系,以及重构点云中重构点的打包位置。点云重构模块113可以将重构点云、重构点云中重构点和patch的对应关系发送给点云滤波模块114,点云重构模块113还可以将重构点云中重构点的打包位置发送给纹理生成模块104。

点云滤波模块114在接收到由点云重构模块113发送的重构点云、重构点云中重构点和patch的对应关系之后,可以对重构点云进行滤波。具体地,可以是去除重构点云中明显的噪声点和缝隙等瑕疵以得到经滤波的重构点云,也可以称为平滑的重构点云。或者也可以说,点云滤波块114可以对重构点云进行平滑处理。具体地,点云滤波模块114可以从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块。然后通过相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点,最后再根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波。

纹理图生成模块104在接收到由点云滤波模块114发送的平滑的重构点云、由点云重构模块113发送的重构点云中重构点的打包位置,以及由数据源120发送的当前帧点云之后,可以根据平滑的重构点云、重构点云中重构点的打包位置和当前帧点云生成当前帧点云的纹理图,并可以将所生成的当前帧点云的纹理图发送给纹理图填充模块106,以对当前帧点云的纹理图中的空白像素点进行填充,得到经填充的当前帧点云的纹理图。纹理图填充模块106可以将得到的经填充的当前帧点云的纹理图发送给基于图像或视频的编码模块107,以对经填充的当前帧点云的纹理图进行基于图像或视频的编码,得到包括重构的当前帧点云的纹理图的码流。基于图像或视频的编码模块107还可以将得到的包括重构的当前帧点云的纹理图的码流发送给复用模块110。

通过上述描述,基于图像或视频的编码模块107、占用图编码模块108、辅助信息编码模块109可以将得到的码流发送给复用模块110,复用模块110可以将接收到的这些码流合并成一个合并的码流,并将该合并的码流发送给输出接口140。输出接口140可以将该合并的码流发送给解码器200。

应当理解的是,图2所示的编码器100仅为本申请提供的一种实施例,在具体的实现方式中,编码器100可以包括比图2中所示的模块更多或更少的模块。本申请实施例对此不做具体限定。

图6为本申请实施例提供的一种解码器200的示意性框图。图6是以mpegpcc解码框架为例进行说明的。参见图6,解码器200可以包括解复用模块201、基于图像或视频的解码模块202、占用图解码模块203、辅助信息解码模块204、点云占用图填充模块205、点云重构模块206、点云滤波模块207和点云的纹理信息重构模块208。

解复用模块201可以通过输入接口204接收由编码器100的输出接口140发送的合并的码流,并将该合并的码流发送到相应解码模块。具体地,解复用模块201将包括经编码的当前帧点云的纹理图的码流和经编码的当前帧点云的深度图的码流,发送给基于图像或视频的解码模块202,将包括经编码的低分辨率的当前帧点云的占用图的码流发送给占用图解码模块203,将包括经编码的辅助信息的码流发送给辅助信息解码模块204。

基于图像或视频的解码模块202可以对接收到的包括经编码的当前帧点云的纹理图的码流和包括经编码的当前帧点云的深度图的码流进行解码,得到重构的当前帧点云的纹理图信息和重构的当前帧点云的深度图信息,并可以将该重构的当前帧点云的纹理图信息发送给点云的纹理信息重构模块208,将该重构的当前帧点云的深度图信息发送给点云重构模块206。占用图解码模块203可以对接收到的包括经编码的低分辨率的当前帧点云的占用图的码流进行解码,得到重构的低分辨率的当前帧点云的占用图信息,并将该重构的低分辨率的当前帧点云的占用图信息发送给点云占用图填充模块205。点云占用图填充模块205根据重构的低分辨率的当前帧点云的占用图信息,可以得到重构的具有原始分辨率的当前帧点云的占用图信息,然后将该重构的具有原始分辨率的当前帧点云的占用图信息发送给点云重构模块206。为了方便描述,后续统一将重构的具有原始分辨率的当前帧点云的占用图信息,简称为重构的当前帧点云的占用图信息。辅助信息解码模块204可以对接收到的包括经编码的辅助信息的码流进行解码,得到辅助信息,并可以将该辅助信息发送给点云重构模块206。

点云重构模块206可以根据接收到的由基于图像或视频的解码模块202发送的重构的当前帧点云的深度图信息、由点云占用图填充模块205发送的重构的当前帧点云的占用图信息,以及由辅助信息解码模块204发送的辅助信息对当前帧点云的几何进行重构,得到重构点云。该重构点云与编码器100中的点云重构模块112得到的重构点云类似,且具体的重构过程可以参考编码器100中的点云重构模块112的重构过程,此处不再赘述。点云重构模块206还可以将该重构点云发送给点云滤波模块207。点云滤波模块207可以根据接收到的重构点云,对重构点云进行滤波,得到平滑的重构点云,具体的滤波过程可以参考编码器100中的点云滤波模块114的滤波过程,此处不再赘述。点云滤波模块207可以将该平滑的重构点云发送给点云的纹理信息重构模块208。点云的纹理信息重构模块208在接收到由点云滤波模块207发送的平滑的重构点云,以及由基于图像或视频的解码模块202发送的重构的当前帧点云的纹理图信息之后,可以对重构点云的纹理信息进行重构,得到经纹理信息重构的重构点云。

应当理解的是,图6所示的解码器200仅为示例,具体实现时,解码器200可以包括比图6中所示的更多或更少的模块。本申请实施例对此不进行限定。

以下,对本申请实施例提供的点云滤波方法进行说明。需要说明的是,结合图1所示的点云译码系统、图2所示的编码器100的示意性框图,以及图6所示的解码器200的示意性框图,下文中的任一种点云滤波方法可以是点云译码系统中的编码器100执行的,更具体地,可以是编码器100中的点云滤波模块114执行的;下文中的任一种点云滤波方法可以是点云译码系统中的解码器200执行的,更具体地,是解码器200中的点云滤波模块207执行的。

图7是本申请实施例提供的一种点云滤波方法的流程图,该方法应用于点云译码系统。参见图7,该方法包括:

s701:从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块。

需要说明的是,重构点云可以是由如图2所示的编码器100中的点云重构模块113对当前帧点云的几何进行重构,得到的点云。重构点云也可以是由如图6所示的解码器200中的点云重构模块206对当前帧点云的几何进行重构,得到的点云。为了方便描述,后续统一以由如图2所示的编码器100中的点云重构模块113对当前帧点云的几何进行重构,得到的重构点云为例进行说明。重构点云包括一个或多个重构点,该一个或多个重构点是组成该重构点云的点,且该一个或多个重构点为三维空间中的点。重构点云包括的一个或多个点云块中的每个点云块都可以由一个或多个重构点组成,且该一个或多个点云块中的每个点云块都是一个连通区域。另外,一个或多个点云块可以是重构点云中的所有点云块,当然该一个或多个点云块也可以是该重构点云中的部分点云块。

另外,当前点云块可以是重构点云包括的一个或多个点云块中的任一点云块,当然当前点云块也可以是重构点云包括的一个或多个点云块中的某一指定的点云块。当前点云块的相邻点云块是与当前点云块在三维空间中具有相邻关系的点云块。

其中,s701的实现方式可以是以下四种实现方式中的任意一种。其中,可以参见图8,图8为以下四种实现方式的二维示意图以及对应的描述信息的汇总表。

第一种可能的实现方式,s701可以包括:确定一个或多个点云块中每个点云块的包围盒,从该一个或多个点云块中,确定包围盒与当前点云块的包围盒存在重叠部分的点云块为当前点云块的相邻点云块。

需要说明的是,包围盒是一种体积稍大于点云块且特性简单的几何体。包围盒可以将点云块包括的所有重构点包围在其中。包围盒可以是包括多个平面的几何体,本申请实施例对此不做具体限定。例如,包围盒可以是六面体等。

由于在三维空间中,每个点云块都可以由一个或多个重构点组成,该一个或多个重构点通常是在三维空间中离散分布的点,所以先确定每个点云块的包围盒,即可将每个点云块在三维空间中的区域进行了划分。通常情况下,包围盒具有重叠部分的两个点云块可以认为是相邻的点云块。因此这样的条件下,可以确定包围盒与当前点云块的包围盒存在重叠部分的点云块为当前点云块的相邻点云块,使得确定当前点云块的相邻点云块的过程更加便捷。

应当理解的是,在如图2所示的编码器100中,重构点云包括的一个或多个点云块的包围盒可以作为一项数据输入到点云滤波模块114中,类似地,在如图6所示的解码器200中,重构点云包括的一个或多个点云块的包围盒可以作为一项数据输入到点云滤波模块207中。

第二种可能的实现方式,s701可以包括:确定一个或多个点云块中每个点云块的扩展包围盒,从该一个或多个点云块中,确定扩展包围盒与当前点云块的扩展包围盒存在重叠部分的点云块为当前点云块的相邻点云块。

需要说明的是,扩展包围盒是对点云块的包围盒经扩展得到的包围盒。扩展包围盒可以通过以包围盒的几何中心为扩展中心发散式地将包围盒的体积扩展预设比例而得到,预设比例可以根据使用需求进行设置,本申请实施例对此不做具体限定。例如,预设比例可以为5%等,也即是扩展包围盒通过以包围盒的几何中心为扩展中心发散式地将包围盒的体积扩展5%得到的。当然,对包围盒的扩展还可以是别的实现方式。

由于在一种可能的情况中,当前点云块的包围盒和与其相邻的某些点云块的包围盒不存在重叠部分。此时,当确定包围盒与当前点云盒的包围盒存在重叠部分的点云块为当前点云块的相邻点云块时,容易将某些与当前点云块相邻的点云块排除掉,使得确定出来的相邻点云块的结果不准确。因此,这种情况下,可以先确定一个或多个点云块中每个点云块的扩展包围盒,然后再确定扩展包围盒与当前点云块的扩展包围盒存在重叠部分的点云块为当前点云块的相邻点云块,可以使确定出的当前点云块的相邻点云块的结果更加准确。

应当理解的是,在如图2所示的编码器100中,重构点云包括的一个或多个点云块的扩展包围盒可以作为一项数据输入到点云滤波模块114中,类似地,在如图6所示的解码器200中,重构点云包括的一个或多个点云块的扩展包围盒可以作为一项数据输入到点云滤波模块207中。

第三种可能的实现方式,s701可以包括:确定一个或多个点云块中每个点云块的包围盒和当前边界点对应的三维空间体,三维空间体为当前边界点的相邻重构点所处的空间体,从一个或多个点云块中,选择包围盒与当前点云块的包围盒和当前边界点对应的三维空间体均存在重叠部分的点云块为当前点云块的相邻点云块。

需要说明的是,当前边界点可以是当前点云块中的任一边界点,当前边界点也可以是当前点云块中某一指定的边界点。由于当前点云块是由一个或多个重构点组成的,该一个或多个重构点都是位于三维空间中的点,而当前点云块中的边界点是该一个或多个重构点中位于当前点云块的边界位置的重构点,因此当前点云块中的边界点也是三维空间中的点,当前边界点也即是三维空间中的点。

另外,本申请实施例是在二维平面上确定当前点云块的边界点。具体地,对于当前点云块中的任一重构点,可以根据当前点云块的占用图中该任一重构点对应的像素点的相邻像素点是否全部为有效像素点来判断,即是当该任一重构点在当前点云块的占用图中对应的像素点的相邻像素点不全为有效像素点时,可以确定该任一重构点为当前点云块的边界点。其中,有效像素点是指其对应的重构点与该任一重构点属于同一点云块,即当前点云块。对于其他点云块的边界点也是按照这个方法来确定。

由于在一种可能的情况中,当前点云块的相邻点云块的数量较多,而这些相邻点云块中的部分点云块可能明显不存在当前边界点的相邻重构点,而且,当前边界点对应的三维空间体为当前边界点的相邻重构点所处的空间体,因此,为了降低计算复杂度,需要从一个或多个点云块中,选择包围盒不仅与当前点云块的包围盒存在重叠部分,还需要与当前边界点对应的三维空间体存在重叠部分的点云块,将选择的点云块作为当前点云块的相邻点云块。

需要说明的是,当前边界点对应的三维空间体可以是以当前边界点为圆心,以第二距离阈值为半径的球体,当然,也可以是指以当前边界点为圆心,以第二距离的二倍为边长的正方体。

应当理解的是,在如图2所示的编码器100中,重构点云包括的一个或多个点云块的包围盒和当前边界点对应的三维空间体可以作为一项数据输入到点云滤波模块114中,类似地,在如图6所示的解码器200中,重构点云包括的一个或多个点云块的包围盒和当前边界点对应的三维空间体可以作为一项数据输入到点云滤波模块207中。

第四种可能的实现方式,s701可以包括:确定一个或多个点云块中每个点云块的扩展包围盒和当前边界点对应的三维空间体,从一个或多个点云块中,选择扩展包围盒与当前点云块的扩展包围盒和当前边界点对应的三维空间体均存在重叠部分的点云块为当前点云块的相邻点云块。

由于在一种可能的情况中,当前点云块的相邻点云块的数量较多,而这些相邻点云块中的部分点云块可能明显不存在当前边界点的相邻重构点,因此,为了降低计算复杂度,需要从一个或多个点云块中,选择扩展包围盒不仅与当前点云块的扩展包围盒存在重叠部分,还需要与当前边界点对应的三维空间体存在重叠部分的点云块,将选择的点云块作为当前点云块的相邻点云块。

应当理解的是,在如图2所示的编码器100中,重构点云包括的一个或多个点云块的扩展包围盒和当前边界点对应的三维空间体可以作为一项数据输入到点云滤波模块114中,类似地,在如图6所示的解码器200中,重构点云包括的一个或多个点云块的扩展包围盒和当前边界点对应的三维空间体可以作为一项数据输入到点云滤波模块207中。

s702:通过当前点云块的相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点。

需要说明的是,相邻点云块对应的投影平面是指与相邻点云块存在投影关系的二维平面,相邻点云块对应的投影平面可以是相邻点云块的包围盒中的一个平面。相邻点云块中的重构点的法线方向矢量与相邻点云块对应的投影平面的法线方向矢量之间的夹角小于预设夹角,且该预设夹角可以设置的较小。另外,相邻点云块投影到对应的投影平面上可以是,将相邻点云块中的重构点的三维坐标转换为相邻点云块对应的投影平面上的二维坐标。其中重构点的三维坐标可以根据预先设置的三维空间坐标系来确定,重构点转换为相邻点云块对应的投影平面上的二维坐标可以根据设置在相邻点云块对应的投影平面上的二维坐标系来确定,三维空间坐标系和相邻点云块对应的投影平面上的二维坐标系之间存在旋转平移关系,该旋转平移关系可以通过旋转平移矩阵来表示。为了较为方便地将相邻点云块中的重构点的三维坐标转换为相邻点云块对应的投影平面上的二维坐标,该二维坐标系的两个坐标轴的方向可以与该三维坐标系的三个坐标轴中的两个坐标轴的方向相同,这样的条件下,可以较为简单快速地确定出该三维平面与该二维平面之间的旋转平移矩阵,从而可以较为简便地将相邻点云块中的重构点的三维坐标转换为相邻点云块对应的投影平面上的二维坐标。

另外,当前边界点的一个或多个相邻重构点是与当前边界点具有相邻关系的重构点。而且,在本申请实施例中,可以只根据相邻点云块中当前边界点的相邻重构点,对当前点云块进行滤波,当然,也可以根据当前点云块和相邻点云块中当前边界点的相邻重构点,对当前点云块进行滤波。因此,接下来通过两种可能的情况对当前边界点的一个或多个相邻重构点的确定方式进行说明。

第一种可能的情况,s702可以包括如下步骤(1)-(2)。

(1):从相邻点云块对应的投影平面中,确定当前像素点的m个相邻像素点,其中,当前边界点对应于相邻点云块对应的投影平面中的当前像素点,m为正整数。

需要说明的是,当前像素点可以是将当前边界点的三维坐标转换为相邻点云块对应的投影平面上的二维坐标对应的像素点,应当理解的是,当前边界点与当前像素点的对应是投影关系上的一种对应。当前像素点的说法是为了与当前边界点对应,以表示当前像素点是当前边界点在相邻点云块对应的投影平面上对应的像素点。

其中,步骤(1)可以通过如下步骤(1-1)-(1-2)来实现。

(1-1):当前边界点在相邻点云块对应的投影平面上进行投影后,获得经投影过的相邻点云块对应的投影平面,其中,经投影过的相邻点云块对应的投影平面上包括:与当前边界点对应的一个当前像素点和与相邻点云块中的p个重构点对应的q个像素点,p和q为正整数。

需要说明的是,由于图2所示的编码器100中的patch(点云块)信息生成模块101,可以将重构点云对应的原始点云分割为一个或多个原始点云块,然后将该一个或多个原始点云块中的每个原始点云块投影到对应的投影平面上,也即对于该一个或多个原始点云块中的任一原始点云块,将该原始点云块中的点的三维坐标转换为该原始点云块对应的投影平面上的二维坐标,该二维坐标对应的点即为该原始点云块中的点在对应的投影平面上的像素点。patch信息生成模块101可以将每个原始点云块投影过的投影平面进行存储,或者不存储。应当理解的是,每个原始点云块投影过的投影平面可以认为是每个原始点云块的占用图。

那么当前边界点在相邻点云块对应的投影平面上进行投影后,获得的经投影过的相邻点云块对应的投影平面上可以包括:与当前边界点对应的一个当前像素点和与相邻点云块中的p个重构点对应的q个像素点。另外,在patch信息生成模块101没有将每个原始点云块投影过的投影平面进行存储的条件下,相邻点云块对应的投影平面是一个不包含任何重构点对应的像素点的投影平面。那么在当前边界点在相邻点云块对应的投影平面上进行投影之前,可以先将相邻点云块中的p个重构点投影到对应的投影平面上,得到与p个重构点对应的q个像素点的投影平面。这样的条件下,当前边界点在相邻点云块对应的投影平面上进行投影后,获得的经投影过的相邻点云块对应的投影平面上可以包括:与当前边界点对应的一个当前像素点和与相邻点云块中的p个重构点对应的q个像素点。

由于三维空间中的多个点可能对应二维平面上的同一个点,也即是,重构点云中的多个重构点可能对应二维平面上的同一个像素点,因此,对于相邻点云块中的p个重构点,该p个重构点在相邻点云块对应的投影平面上可能对应q个像素点。其中,q可能与p相等,也可能小于p。后续,对于m个相邻像素点对应的n个第一候选重构点、s个相邻像素点对应的u个相邻重构点、t个相邻像素点对应的e个第二候选重构点,以及x个重构点对应的y个像素点是同样的道理,后续不再赘述。

(1-2):从经投影过的相邻点云块对应的投影平面上确定当前像素点的m个相邻像素点,m个相邻像素点被包括于相邻点云块包括的p个重构点所对应的q个像素点中。

从经投影过的相邻点云块对应的投影平面上确定当前像素点的m个相邻像素点的实现方式可以包括多种,比如,可以确定经投影过的相邻点云块对应的投影平面上的像素点与当前像素点之间的距离,将与当前像素点之间的距离小于第三距离阈值的像素点作为当前像素点的m个相邻像素点。又比如,在经投影过的相邻点云块对应的投影平面上,以当前像素点为圆心,以第一预设阈值为半径绘制圆形区域,将该圆形区域内所包括的像素点作为当前像素点的m个相邻像素点。再比如,在经投影过的相邻点云块对应的投影平面上,以当前像素点为中心,以第二预设阈值为边长绘制正方形区域,将该正方向区域内所包括的像素点作为当前像素点的m个相邻像素点。当然也可以通过其他方式确定当前像素点的m个相邻像素点,本申请实施例对此不做具体限定。例如,参见图9,确定当前像素点的m个相邻像素点可以是以当前像素点为圆心,以r为半径的圆所包括的像素点。或者确定当前像素点的m个相邻像素点可以是以当前像素点为中心,以2r为边长的正方形所包括的像素点。

(2):根据当前像素点的m个相邻像素点,确定当前边界点的l个相邻重构点。

其中,步骤(2)可以通过如下两种可能的实现方式中的任意一种可能的实现方式来实现。

第一种可能的实现方式:从n个第一候选重构点中,确定对应的第一深度差值小于深度阈值的第一候选重构点为当前边界点的相邻重构点,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,n为正整数。

需要说明的是,第一深度为当前边界点相对于相邻点云块对应的投影平面的深度,第一深度差值为第一深度分别与n个第一候选重构点中每个第一候选重构点相对于相邻点云块对应的投影平面的深度之间的深度差值。应当理解的是,第一深度为当前边界点沿投影方向上相对于相邻点云块对应的投影平面的距离,第一深度差值为第一深度分别与n个第一候选重构点中每个第一候选重构点相对于相邻点云块对应的投影平面的深度之间的深度差值的绝对值。

基于上述步骤(1)中对确定当前像素点的m个相邻像素点的说明,在相邻点云块对应的投影平面上,m个相邻像素点与当前像素点之间的距离在一定范围内。但是与m个相邻像素点对应的n个第一候选重构点是三维空间中的点,由于三维空间中的多个点可能对应二维平面上的同一个点,也即是,重构点云中的多个重构点可能对应二维平面上的同一个像素点。此时,对应同一像素点的多个重构点相对于相邻点云块对应的投影平面的深度不同,也就是说,n个第一候选重构点中每个第一候选重构点相对于相邻点云块对应的投影平面的深度可能是不相同的,也即n个第一候选重构点中每个第一候选重构点与相邻点云块对应的投影平面之间的距离可能是不相同的。所以可能存在第一深度与某些第一候选重构点相对于相邻点云块对应的投影平面的深度之间的差值大于深度阈值的情况。应当理解的是,这些第一候选重构点与当前边界点之间没有相邻关系,因此不能作为当前边界点的相邻重构点。所以可以确定对应的第一深度差值小于深度阈值的第一候选重构点为当前边界点的相邻重构点,使得确定出的当前边界点的相邻重构点更准确。其中,深度阈值可以根据使用需求预先进行设置,本申请实施例对此不做具体限定。

例如,如图10所示,图10中与m个相邻像素点中的相邻像素点a’对应的第一候选重构点为第一候选重构点a,第一深度与第一候选重构点a相对于相邻点云块对应的投影平面的深度之间的深度差值明显大于深度阈值,所以第一候选重构点a不能作为当前边界点的相邻重构点。

第二种可能的实现方式:从n个第一候选重构点中,确定对应的第一距离小于第一距离阈值的第一候选重构点为当前边界点的相邻重构点,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,n为正整数。

需要说明的是,第一距离为当前边界点与n个第一候选重构点中每个第一候选重构点之间的距离。

由于与m个相邻像素点对应的n个第一候选重构点是三维空间中的点,基于上述步骤(1)中对确定当前像素点的m个相邻像素点的说明,在相邻点云块对应的投影平面上,m个相邻像素点与当前像素点之间的距离在一定范围内。也可以理解为m个相邻像素点与当前像素点之间的距离比较近。但是与m个相邻像素点对应的n个第一候选重构点是三维空间中的点,而且基于上述描述,重构点云中的多个重构点可能对应二维平面上的同一个像素点,所以可能存在第一距离大于第一距离阈值的第一候选重构点,也即可能存在与当前边界点之间距离较远的第一候选重构点。应当理解的是,与当前边界点之间的距离较远的第一候选重构点与当前边界点之间没有相邻关系,因此不能作为当前边界点的相邻重构点。所以可以确定对应的第一距离小于第一距离阈值的第一候选重构点为当前边界点的相邻重构点。其中第一距离阈值可以可以根据使用需求预先进行设置,本申请实施例对此不做具体限定。

例如,如图11所示,设置第一距离阈值为r,图11中与m个相邻像素点中的相邻像素点b’对应的第一候选重构点为第一候选重构点b,第一候选重构点b与当前边界点之间的第一距离明显大于第一距离阈值r,所以第一候选重构点b不能作为当前边界点的相邻重构点。

其中,将重构点云中的重构点投影到二维平面时,可以记录每个重构点相对于投影平面的深度,而且在投影之后,还可以确定重构点对应的像素点的二维坐标。这样,当确定当前边界点与n个第一候选重构点中每个第一候选重构点之间的距离时,可以根据当前像素点的二维坐标和当前边界点相对于相邻点云块对应的投影平面的深度,以及m个相邻像素点的二维坐标和n个第一候选重构点中每个第一候选重构点相对于相邻点云块对应的投影平面的深度来确定。也即是,可以直接基于当前边界点在相邻点云块对应的投影平面上的投影情况,以及n个第一候选重构点在相邻点云块对应的投影平面上的投影情况,确定当前边界点与n个第一候选重构点中每个第一候选重构点之间的距离,而无需返回至三维空间去计算。

当然,在本申请实施例中,也可以返回至三维空间中计算,具体地,可以根据当前边界点的三维坐标,以及n个第一候选重构点中每个第一候选重构点的三维坐标,确定当前边界点与n个第一候选重构点中每个第一候选重构点之间的距离。

需要说明的是,在本申请实施例中,不仅可以按照上述两种可能的实现方式,根据当前像素点的m个相邻像素点,确定所述当前边界点的l个相邻重构点,还可以通过其他的方式来确定,比如,可以直接将n个第一候选重构点确定为当前边界点的l个相邻重构点,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,此时n与l相等。

至此,已完成对上述s702的第一种可能的情况的说明,接下来对s702的第二种可能的情况进行说明。

第二种可能的情况,s702可以包括如下步骤(3)-(4)。

(3):从当前点云块对应的投影平面和相邻点云块对应的投影平面中,确定当前像素点的s个相邻像素点,其中,当前边界点对应于相邻点云块对应的投影平面中的当前像素点,所述s为正整数。

由于在三维空间中,与当前边界点相邻的重构点除过当前点云块的相邻点云块中的重构点之外,还有当前点云块中的除过当前边界点之外的重构点。所以为了使确定出的当前边界点的相邻重构点的精确度更高,还可以从当前点云块对应的投影平面和相邻点云块对应的投影平面共同来确定当前像素点的s个相邻像素点。

其中,步骤(3)可以通过如下步骤(3-1)-步骤(3-2)来实现。

(3-1):当当前边界点在相邻点云块对应的投影平面上进行投影后,获得经投影过的相邻点云块对应的投影平面,其中,相邻点云块对应的投影平面上包括:与当前边界点对应的一个当前像素点和与相邻点云块中的p个重构点对应的q个像素点,p和q为正整数。

需要说明的是,步骤(3-1)与上述步骤(1-1)类似,所以此处不再赘述。

(3-2):从当前点云块对应的投影平面上,确定当前边界点投影到当前点云块对应的投影平面上的当前像素点i的t个相邻像素点,从经投影过的相邻点云块对应的投影平面上,确定当前边界点投影到相邻点云块对应的投影平面上的当前像素点j的m个相邻像素点,t个相邻像素点被包括于当前点云块包括的x个重构点所对应的y个像素点中,m个相邻像素点被包括于相邻点云块包括的p个重构点所对应的q个像素点中,t和m之和为s,t、x和y为正整数。

由于第二种可能的情况中,不仅从当前点云块中确定当前边界点的相邻重构点,还需要从当前点云块的相邻点云块中确定当前边界点的相邻重构点,因此,需要将当前边界点在当前点云块对应的投影平面上进行投影,还需要将当前边界点在当前点云块的相邻点云块对应的投影平面上进行投影。也即是,当前边界点在当前点云块对应的投影平面上存在一个当前像素点,在当前点云块的相邻点云块对应的投影平面上也存在一个当前像素点。为了便于描述,将当前边界点投影到当前点云块对应的投影平面上的当前像素点称为当前像素点i,将当前边界点投影到当前点云块的相邻点云块对应的投影平面上的当前像素点称为当前像素点j。

另外,从当前点云块对应的投影平面上,确定当前边界点投影到当前点云块对应的投影平面上的当前像素点i的t个相邻像素点的方式,以及从经投影过的相邻点云块对应的投影平面上,确定当前边界点投影到相邻点云块对应的投影平面上的当前像素点j的m个相邻像素点的方式,与上述步骤(1-2)中确定当前像素点的m个相邻像素点的方式相同或相似,此处不再赘述。

(4):根据当前像素点的s个相邻像素点,确定当前边界点的u个相邻重构点。

其中,步骤(4)可以通过如下两种可能实现方式中的任意一种可能实现方式来实现。

第一种可能的实现方式,步骤(4)可以包括:从n个第一候选重构点中,确定对应的第一深度差值小于深度阈值的第一候选重构点为当前边界点的相邻重构点;从e个第二候选重构点中,确定对应的第二深度差值小于深度阈值的第二候选重构点为当前边界点的相邻重构点,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,e个第二候选重构点为t个相邻像素点在重构点云中对应的重构点,n和t为正整数。

需要说明的是,第一深度为当前边界点相对于相邻点云块对应的投影平面的深度,第二深度为当前边界点相对于当前点云块对应的投影平面的深度。第一深度差值为第一深度分别与n个第一候选重构点中每个第一候选重构点相对于相邻点云块对应的投影平面的深度之间的深度差值,第二深度差值为第二深度分别与e个第二候选重构点中每个第二候选重构点相对于当前点云块对应的投影平面的深度之间的深度差值。第二深度与第一深度类似,第二深度差值与第一深度差值类似,第一深度和第一深度差值均已在上述步骤(2)的第一种可能的实现方式中做过说明,所以此处对第二深度和第二深度差值不再赘述。

由于第二种可能的情况中,不仅需要从当前点云块的相邻点云块中确定当前边界点的相邻重构点,还需要从当前点云块中确定当前边界点的相邻重构点。因此,需要确定当前边界点在当前点云块的相邻点云块中的相邻重构点,还需要确定当前边界点在当前点云块中的相邻重构点。也即是需要从n个第一候选重构点中,确定对应的第一深度差值小于深度阈值的第一候选重构点为当前边界点的相邻重构点,还需要从e个第二候选重构点中,确定对应的第二深度差值小于深度阈值的第二候选重构点为当前边界点的相邻重构点。其中,从e个第二候选重构点中,确定对应的第二深度差值小于深度阈值的第二候选重构点为当前边界点的相邻重构点的方式,与从n个第一候选重构点中,确定对应的第一深度差值小于深度阈值的第一候选重构点为当前边界点的相邻重构点的方式类似,具体可以参考上述步骤(2)的第一种可能的实现方式,此处不再赘述。下面通过举例来对此实现方式进行说明。

例如,如图12所示,图12中与m个相邻像素点中的相邻像素点a’对应的第一候选重构点为第一候选重构点a,第一深度与第一候选重构点a相对于相邻点云块对应的投影平面的深度之间的深度差值明显大于深度阈值,所以第一候选重构点a不能作为当前边界点的相邻重构点。与t个相邻像素点中的相邻像素点c’对应的第二候选重构点为第二候选重构点c,第二深度与第二候选重构点c相对于当前点云块对应的投影平面的深度之间的深度差值明显大于深度阈值,所以第二候选重构点c不能作为当前边界点的相邻重构点。

第二种可能的实现方式,步骤(4)可以包括:从n个第一候选重构点中,确定对应的第一距离小于第一距离阈值的第一候选重构点为当前边界点的相邻重构点;从e个第二候选重构点中,确定对应的第二距离小于第一距离阈值的第二候选重构点为当前边界点的相邻重构点,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,e个第二候选重构点为t个相邻像素点在重构点云中对应的重构点,n和t为正整数。

需要说明的是,第一距离为当前边界点与n个第一候选重构点中每个第一候选重构点之间的距离,第二距离为当前边界点与e个第二候选重构点中每个第二候选重构点之间的距离。第二距离与第一距离类似,第一距离已在上述步骤(2)的第二种可能的实施方式中做过说明,所以此处对第二距离不再赘述。下面通过举例来对此实现方式进行说明。

例如,如图13所示,图13中设置第一距离阈值为r。图13中与m个相邻像素点中的相邻像素点b’对应的第一候选重构点为第一候选重构点b,第一候选重构点b与当前边界点之间的第一距离明显大于第一距离阈值r,所以第一候选重构点b不能作为当前边界点的相邻重构点。与t个相邻像素点中的相邻像素点d’对应的第二候选重构点为第二候选重构点d,第二候选重构点d与当前边界点之间的第二距离明显大于第一距离阈值r,所以第二候选重构点d不能作为当前边界点的相邻重构点。

值得说明的是,由于与当前边界点具有相邻关系的重构点,除过当前点云块的相邻点云块中的重构点之外,还可以是当前点云块中除过当前边界点之外的其他重构点。因此,第二种可能的情况中,不仅从当前点云块的相邻点云块中确定当前边界点的相邻重构点,而且从当前点云块中确定当前边界点的相邻重构点,使得确定出的当前边界点的相邻重构点的结果更加精确。

需要说明的是,在本申请实施例中,不仅可以按照上述两种可能的实现方式,根据s个相邻像素点,确定当前边界点的u个相邻重构点,还可以通过其他的方式来确定,比如,可以直接将当前像素点的s相邻像素点在重构点云中对应的重构点确定为当前边界点的u个相邻重构点。其中,s个相邻像素点中包括当前边界点投影到当前点云块对应的投影平面上的当前像素点i的t个相邻像素点,以及当前边界点投影到相邻点云块对应的投影平面上的当前像素点j的m个相邻像素点,因此,在这种情况下,t个相邻像素点在重构点云中对应的e个第二候选重构点和m个相邻像素点在重构点云中对应的n个第一候选重构点,为当前边界点的u个相邻重构点。也即是,在这种情况下,e和n之和为u。

至此,已完成对s702的说明,也即通过s702确定出了当前点云块中当前边界点的一个或多个相邻重构点。接下来通过s703来对当前点云块的滤波进行说明。

s703:根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波。

需要说明的是,滤波是对当前点云块去除噪声点和缝隙等瑕疵的操作,本申请实施例中,当重构点云是由如图2所示的编码器100中的点云重构模块113得到的,那么滤波就可以是编码器100中的点云滤波模块114来执行。当重构点云是由如图6所示的解码器200中的点云重构模块206得到的,那么滤波就可以是解码器200中的点云滤波模块207来执行。

其中,根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波的实现过程包括:确定当前边界点的一个或多个相邻重构点的质心位置。如果质心位置与当前边界点所处位置之间的距离大于第二距离阈值,则更新当前边界点的位置,其中,当前边界点更新后的位置对应该质心位置。

其中,一个或多个相邻重构点的质心位置可以通过一个或多个相邻重构点的三维坐标来确定。具体地,可以确定一个或多个相邻重构点的三维坐标中的x坐标之和,并将x坐标之和除以一个或多个相邻重构点的总个数,得到一个或多个相邻重构点的质心的x坐标。同理,可以确定一个或多个相邻重构点的三维坐标中的y坐标之和,并将y坐标之和除以一个或多个相邻重构点的总个数,得到一个或多个相邻重构点的质心的y坐标;可以确定一个或多个相邻重构点的三维坐标中的z坐标之和,并将z坐标之和除以一个或多个相邻重构点的总个数,得到一个或多个相邻重构点的质心的z坐标。这样,即可得到质心的三维坐标,即质心位置。

在一种可能的实现方式中,更新当前边界点的位置,即是指用质心位置更新当前边界点的位置。

需要说明的是,当一个或多个相邻重构点的质心位置与当前边界点所处的位置之间的距离大于第二距离阈值时,表明该当前边界点为当前点云块的噪声点,因此,可以用于该一个或多个相邻重构点的质心位置更新当前边界点的位置,来去除当前边界点,也即去除当前点云块的噪声点。

应当理解的是,在一种可能的实现方式中,当对当前点云块中的部分边界点进行滤波之后,可以认为完成了对当前点云块的滤波。比如,当对当前点云块中的当前边界点进行滤波之后,可以认为完成了对当前点云块的滤波。当然,为了达到更好的滤波效果,当对当前点云块的所有边界点进行滤波之后,可以认为完成了对当前点云块的滤波。其中,当前边界点是当前点云块中的一个边界点,上述对当前边界点的滤波可以适用于当前点云块中的每个边界点,此处对当前点云块中的其他边界点的滤波不再赘述。同理,在一种可能的实现方式中,当对重构点云中的部分点云块进行滤波之后,可以认为完成了对当前点云块的滤波。比如,对当前点云块进行滤波之后,可以认为完成了对重构点云的滤波。当然,为了达到更好的滤波效果,当对重构点云中的所有点云块进行滤波之后,可以认为完成了对重构点云的滤波。其中,对当前点云块的滤波也适用于重构点云中的其他点云块的滤波,此处对重构点云中的其他点云块的滤波不再赘述。也即是,本申请以当前点云块的当前边界点为对象对本申请的技术方案进行解释,当前点云块的其它边界点的滤波过程不再赘述。而且本申请针对整个重构点云的滤波过程,能降低点云滤波的复杂度,提高编解码效率,即可以遍历整个重构点云,对重构点云中的多个/所有点云块中的多个/所有边界点完成滤波。一旦点云数据规模越大,本申请提供的技术方案的复杂度降低的效果越好。

本实施例提供的点云滤波方法中,先从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块。由于相邻点云块投影到对应的投影平面上的像素点与相邻点云块中的重构点对应,因此可以通过该相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点。最后再根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波,得到平滑的重构点云。由于该点云滤波方法通过二维空间的投影平面就可以确定出当前边界点在三维空间中的相邻重构点,使得确定当前边界点的相邻重构点的过程更加简单,进而降低了滤波的复杂度,提高了编码效率。

图14为本申请实施例提供的一种点云编码方法的流程示意图。本实施例的执行主体可以是编码器。如图14所示,该方法可以包括:

s1401:确定指示信息,该指示信息用于指示是否按照目标滤波方法对待编码点云的重构点云进行处理;目标滤波方法包括本申请实施例提供的任一种点云滤波方法。例如可以是图7所示的点云滤波方法。

具体实现的过程中,滤波方法可以有至少两种,该至少两种的其中一种可以是本申请实施例提供的任一种点云滤波方法,其他种可以是现有技术或未来提供的点云滤波方法。

可选地,该指示信息具体可以是目标滤波方法的索引。具体实现的过程中,编码器可以预先约定编码器所支持的至少两种点云滤波方法的索引,然后,在编码器确定目标滤波方法之后,将目标滤波方法的索引作为指示信息编入码流。本申请实施例对编码器如何确定目标滤波方法是编码器所支持的至少两种滤波方法中的哪一种不进行限定。

s1401:将该指示信息编入码流。其中,该指示信息是帧级别的信息。

图15为本申请实施例提供的一种点云解码方法的流程示意图。本实施例的执行主体可以是解码器。如图15所示,该方法可以包括:

s1501:解析码流,以得到指示信息,该指示信息用于指示是否按照目标滤波方法对待解码点云的重构点云进行处理;目标滤波方法包括本申请实施例提供的任一种点云滤波方法。例如可以是图7所示的点云滤波方法。该指示信息是帧级别的信息。

s1502:当该指示信息用于指示按照目标滤波方法对待解码点云的重构点云进行处理时,按照目标滤波方法对待解码点云的重构点云进行滤波处理。

本实施例提供的点云解码方法与图14提供的点云编码方法相对应。

上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对编码器/解码器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图16为本申请实施例提供的一种点云滤波装置1600的示意性框图。如图16所示,点云滤波装置1600可以包括点集确定单元1601和滤波处理单元1602。点云滤波装置1600可以是图2中的点云滤波模块114,点云滤波装置1600可以是图6中的点云滤波模块207。

在一些实施例中:

在一种可行的实施方式中,点集确定单元1601,用于从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块;通过相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点。滤波处理单元1602,用于根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波。例如,结合图7,点集确定单元1601可以用于执行s701和s702,滤波处理单元1602可以用于执行s703。

在一种可行的实施方式中,点集确定单元1601具体用于:从相邻点云块对应的投影平面中,确定当前像素点的m个相邻像素点,其中,当前边界点对应于相邻点云块对应的投影平面中的当前像素点,m为正整数。根据m个相邻像素点,确定当前边界点的l个相邻重构点。

在一种可行的实施方式中,在从相邻点云块对应的投影平面中,确定当前像素点的m个相邻像素点的方面,点集确定单元1601具体用于:当当前边界点在相邻点云块对应的投影平面上进行投影后,获得经投影过的相邻点云块对应的投影平面,其中,相邻点云块对应的投影平面上包括:与当前边界点对应的一个当前像素点和与相邻点云块中的p个重构点对应的q个像素点,p和q为正整数。从经投影过的相邻点云块对应的投影平面上确定当前像素点的m个相邻像素点,m个相邻像素点被包括于相邻点云块包括的p个重构点所对应的q个像素点中。

在一种可行的实施方式中,在根据m个相邻像素点,确定当前边界点的l个相邻重构点的方面,点集确定单元1601具体用于:从n个第一候选重构点中,确定对应的第一深度差值小于深度阈值的第一候选重构点为当前边界点的相邻重构点,其中,第一深度差值为第一深度分别与n个第一候选重构点中每个第一候选重构点相对于相邻点云块对应的投影平面的深度之间的深度差值,第一深度为当前边界点相对于相邻点云块对应的投影平面的深度,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,n为正整数。

在一种可行的实施方式中,在根据m个相邻像素点,确定当前边界点的l个相邻重构点的方面,点集确定单元1601具体用于:从n个第一候选重构点中,确定对应的第一距离小于第一距离阈值的第一候选重构点为当前边界点的相邻重构点,其中,第一距离为当前边界点与n个第一候选重构点中每个第一候选重构点之间的距离,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,n为正整数。

在一种可行的实施方式中,点集确定单元1601具体用于:从当前点云块对应的投影平面和相邻点云块对应的投影平面中,确定当前像素点的s个相邻像素点,其中,当前边界点对应于相邻点云块对应的投影平面中的当前像素点,s为正整数;根据s个相邻像素点,确定当前边界点的u个相邻重构点。

在一种可行的实施方式中,在从当前点云块对应的投影平面和相邻点云块对应的投影平面中,确定当前像素点的s个相邻像素点的方面,点集确定单元1601具体用于:当当前边界点在相邻点云块对应的投影平面上进行投影后,获得经投影过的相邻点云块对应的投影平面,其中,相邻点云块对应的投影平面上包括:与当前边界点对应的一个当前像素点和与相邻点云块中的p个重构点对应的q个像素点,p和q为正整数;从当前点云块对应的投影平面上确定当前边界点投影到当前点云块对应的投影平面上的当前像素点i的t个相邻像素点,从经投影过的相邻点云块对应的投影平面上确定当前边界点投影到相邻点云块对应的投影平面上的当前像素点j的m个相邻像素点,t个相邻像素点被包括于当前点云块包括的x个重构点所对应的y个像素点中,m个相邻像素点被包括于相邻点云块包括的p个重构点所对应的q个像素点中,t和m之和为s,t、x和y为正整数。

在一种可行的实施方式中,在根据s个相邻像素点,确定当前边界点的u个相邻重构点的方面,点集确定单元1601具体用于:从n个第一候选重构点中,确定对应的第一深度差值小于深度阈值的第一候选重构点为当前边界点的相邻重构点,从e个第二候选重构点中,确定对应的第二深度差值小于深度阈值的第二候选重构点为当前边界点的相邻重构点,其中,第一深度差值为第一深度分别与n个第一候选重构点中每个第一候选重构点相对于相邻点云块对应的投影平面的深度之间的深度差值,第二深度差值为第二深度分别与e个第二候选重构点中每个第二候选重构点相对于当前点云块对应的投影平面的深度之间的深度差值,第一深度为当前边界点相对于相邻点云块对应的投影平面的深度,第二深度为当前边界点相对于当前点云块对应的投影平面的深度,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,e个第二候选重构点为t个相邻像素点在重构点云中对应的重构点,n和t为正整数。

在一种可行的实施方式中,在根据s个相邻像素点,确定当前边界点的u个相邻重构点的方面,点集确定单元1601具体用于:从n个第一候选重构点中,确定对应的第一距离小于第一距离阈值的第一候选重构点为当前边界点的相邻重构点,从e个第二候选重构点中,确定对应的第二距离小于第一距离阈值的第二候选重构点为当前边界点的相邻重构点,其中,第一距离为当前边界点与n个第一候选重构点中每个第一候选重构点之间的距离,第二距离为当前边界点与e个第二候选重构点中每个第二候选重构点之间的距离,n个第一候选重构点为m个相邻像素点在重构点云中对应的重构点,e个第二候选重构点为t个相邻像素点在重构点云中对应的重构点,n和t为正整数。

在一种可行的实施方式中,在从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块的方面,点集确定单元1601具体用于:确定一个或多个点云块中每个点云块的包围盒;从一个或多个点云块中,确定包围盒与当前点云块的包围盒存在重叠部分的点云块为当前点云块的相邻点云块。

在一种可行的实施方式中,在从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块的方面,点集确定单元1601具体用于:确定一个或多个点云块中每个点云块的扩展包围盒,扩展包围盒是对一个或多个点云块中每个点云块的包围盒经扩展得到的;从一个或多个点云块中,确定扩展包围盒与当前点云块的扩展包围盒存在重叠部分的点云块为当前点云块的相邻点云块。

在一种可行的实施方式中,在从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块的方面,点集确定单元1601具体用于:确定一个或多个点云块中每个点云块的包围盒和当前边界点对应的三维空间体,当前边界点对应的三维空间体为当前边界点的相邻重构点所处的空间体;从一个或多个点云块中,选择包围盒与当前点云块的包围盒和当前边界点对应的三维空间体均存在重叠部分的点云块为当前点云块的相邻点云块。

在一种可行的实施方式中,在从重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块的方面,点集确定单元1601具体用于:确定一个或多个点云块中每个点云块的扩展包围盒和当前边界点对应的三维空间体,扩展包围盒是对一个或多个点云块中每个点云块的包围盒经扩展得到的,当前边界点对应的三维空间体为当前边界点的相邻重构点所处的空间体;从一个或多个点云块中,选择扩展包围盒与当前点云块的扩展包围盒和当前边界点对应的三维空间体均存在重叠部分的点云块为当前点云块的相邻点云块。

在一种可行的实施方式中,滤波处理单元1602具体用于:确定当前边界点的一个或多个相邻重构点的质心位置;如果质心位置与当前边界点所处位置之间的距离大于第二距离阈值,则更新当前边界点的位置,其中,当前边界点更新后的位置对应质心位置。

应当理解的是,本申请实施例提供的点云滤波装置1600中的各单元为实现上文提供的相应的方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本申请点云滤波方法中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见上文中相应方法的介绍,为简洁起见,本文将不再赘述。

图17为本申请实施例提供的一种编码器1700的示意性框图。如图17所示,编码器1700可以包括点云滤波模块1701和辅助信息编码模块1702。例如,编码器1700可以是图1中的编码器100,该情况下,点云滤波模块1701可以是图2中的点云滤波模块114,辅助信息编码模块1702可以是图2中的辅助信息编码模块109。其中,点云滤波模块1701,用于按照目标滤波方法对待编码点云的重构点云进行滤波处理。辅助信息编码模块1702,用于确定指示信息,以及,将该指示信息编入码流。该指示信息用于指示是否按照目标滤波方法对待编码点云的重构点云进行处理;目标滤波方法可以是上文提供的如图7所示的点云滤波方法。

应当理解的是,具体实现的过程中,点云滤波模块1701还包括点集确定单元1703和滤波处理单元1704,用于按照目标滤波方法对待编码点云的重构点云进行处理。其中,点集确定单元1703所执行的步骤可以参考上述点集确定单元1601所执行的步骤,滤波处理单元1704所执行的步骤可以参考上述滤波处理单元1602所执行的步骤,此处不再赘述。

应当理解的是,本申请实施例提供的编码器1700中的模块为实现上文提供的相应的方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本申请点云滤波方法中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见上文中相应方法的介绍,为简洁起见,本文将不再赘述。

图18为本申请实施例提供的一种解码器1800的示意性框图。如图18所示,解码器1800可以包括:辅助信息解码模块1801和点云滤波模块1802。例如,解码器1800可以是图1中的解码器200,该情况下,辅助信息解码模块1801可以是图6中的辅助信息解码模块204,点云滤波模块1802可以是图6中的点云滤波模块207。其中,辅助信息解码模块1801,用于解析码流,以得到指示信息,该指示信息用于指示是否按照目标滤波方法对待解码点云的重构点云进行处理;目标滤波方法可以是上文提供的如图7所示的点云滤波方法。点云滤波模块1802,用于当指示信息用于指示按照目标滤波方法对待解码点云的重构点云进行处理时,按照目标滤波方法对待解码点云的重构点云进行滤波处理。具体的处理过程可以参考上文,此处不再赘述。其中,辅助信息解码模块1801所执行的步骤可以参考上述辅助信息解码模块1702所执行的步骤,此处不再赘述。

应当理解的是,本申请实施例提供的解码器1800中的模块为实现上文提供的相应的方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本申请点云滤波方法中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见上文中相应方法的介绍,为简洁起见,本文将不再赘述。

图19为本申请实施例提供的一种编码器1900的示意性框图。如图19所示,编码器1900可以包括点云滤波模块1901和纹理图生成模块1902。例如,编码器1900可以是图1中的编码器100,该情况下,点云滤波模块1901可以是图2中的点云滤波模块114,纹理图生成模块1902可以是图2中的纹理图生成模块104。其中,点云滤波模块1901为上述点云滤波装置1600。纹理图生成模块1902,用于根据滤波处理后的重构点云生成待编码点云的纹理图。

也即是,点云滤波模块1901,用于从待编码点云的重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块,通过相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点,根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波。纹理图生成模块1902,用于根据滤波处理后的重构点云生成待编码点云的纹理图。

应当理解的是,具体实现的过程中,点云滤波模块1901还包括点集确定单元1903(图中未示出)和滤波处理单元1904(图中未示出),用于按照目标滤波方法对待编码点云的重构点云进行处理。其中,点集确定单元1903所执行的步骤可以参考上述点集确定单元1601所执行的步骤,滤波处理单元1904所执行的步骤可以参考上述滤波处理单元1602所执行的步骤,此处不再赘述。

应当理解的是,本申请实施例提供的编码器1900中的各模块为实现上文提供的相应的方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本申请点云滤波方法中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见上文中相应方法的介绍,为简洁起见,本文将不再赘述。

图20为本申请实施例提供的一种解码器2000的示意性框图。如图20所示,解码器2000可以包括:点云滤波模块2001和纹理信息重构模块2002。例如,解码器2000可以是图1中的解码器200,该情况下,点云滤波模块2001可以是图6中的点云滤波模块207,纹理信息重构模块2002可以是图6中的纹理信息重构模块208。其中,点云滤波模块2001为上述图16中的点云滤波装置1600;纹理信息重构模块2002,用于对滤波处理后的重构点云的纹理信息进行重构。

也即是,点云滤波模块2001,用于从待编码点云的重构点云包括的一个或多个点云块中,确定当前点云块的相邻点云块,通过相邻点云块对应的投影平面,确定当前点云块中当前边界点的一个或多个相邻重构点,根据当前边界点的一个或多个相邻重构点,对当前点云块进行滤波;纹理信息重构模块2002,用于对滤波处理后的重构点云的纹理信息进行重构。

应当理解的是,具体实现的过程中,点云滤波模块2001还包括点集确定单元2003(图中未示出)和滤波处理单元2004(图中未示出),用于按照目标滤波方法对待编码点云的重构点云进行处理。其中,点集确定单元2003所执行的步骤可以参考上述点集确定单元1601所执行的步骤,滤波处理单元2004所执行的步骤可以参考上述滤波处理单元1602所执行的步骤,此处不再赘述。

应当理解的是,本申请实施例提供的解码器2000中的各模块为实现上文提供的相应的方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本申请点云滤波方法中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见上文中相应方法的介绍,为简洁起见,本文将不再赘述。

图21为用于本申请实施例的编码设备或解码设备(简称为译码设备2100)的一种实现方式的示意性框图。其中,译码设备2100可以包括处理器2110、存储器2130和总线系统2150。其中,处理器2110和存储器2130通过总线系统2150相连,该存储器2130用于存储指令,该处理器2110用于执行该存储器2130存储的指令,以执行本申请描述的各种点云滤波方法。为避免重复,这里不再详细描述。

在本申请实施例中,该处理器2110可以是中央处理单元(centralprocessingunit,cpu),该处理器2110还可以是其他通用处理器、dsp、asic、fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器2130可以包括rom设备或者ram设备。任何其他适宜类型的存储设备也可以用作存储器2130。存储器2130可以包括由处理器2110使用总线2150访问的代码和数据2131。存储器2130可以进一步包括操作系统2133和应用程序2135,该应用程序2135包括允许处理器2110执行本申请描述的点云编码或解码方法(尤其是本申请描述的对当前点云块进行滤波的方法)的至少一个程序。例如,应用程序2135可以包括应用1至n,其进一步包括执行在本申请描述的点云编码或解码方法的点云编码或解码应用(简称点云译码应用)。

该总线系统2150除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统2150。

可选地,译码设备2100还可以包括一个或多个输出设备,诸如显示器2170。在一个示例中,显示器2170可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器2170可以经由总线2150连接到处理器2110。

本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于非暂时性的有形计算机可读存储媒体,或通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。

作为实施例而非限制,此类计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(dsl)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、dsl或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(cd)、激光光盘、光学光盘、dvd和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。

可通过例如一或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。在一种示例下,编码器100及解码器200中的各种说明性逻辑框、单元、模块可以理解为对应的电路器件或逻辑元件。

本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(ic)或一组ic(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。

以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1