点云编解码方法和编解码器与流程

文档序号:20272768发布日期:2020-04-03 19:14阅读:217来源:国知局
点云编解码方法和编解码器与流程

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



背景技术:

随着3d传感器(例如3d扫描仪)技术的不断发展,采集点云数据越来越便捷,所采集的点云数据的规模也越来越大,因此,如何有效地对点云数据进行编解码,成为迫切需要解决的问题。



技术实现要素:

本申请实施例提供了点云编解码方法和编解码器,有助于提高编解码性能。

第一方面,提供了一种点云译码方法,包括:将待译码点云经填充的占用图中的待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块;根据经处理过的占用图,重构待译码点云,该经处理过的占用图包括该经置零的像素块。

如果不加说明,第一方面或第一方面的任意一种可能的设计中的“译码”均可以替换为编码,该情况下,执行主体可以是编码器,待译码点云可以是待编码点云。或者“译码”可以替换为解码,该情况下,执行主体可以是解码器,待译码点云可以是待解码点云。换言之,从编码的角度来看,本申请实施例的点云译码方法是点云编码方法,该情况下,执行主体可以是编码器,待译码点云可以是待编码点云;从解码的角度来看,本申请实施例的点云译码方法是点云解码方法,该情况下,执行主体可以是解码器,待译码点云可以是待解码点云。

需要说明的是,如果点云译码方法是点云解码方法,则待译码点云经填充的占用图具体是待解码点云经填充的占用图。解码器所接收到的待解码点云的占用图是编码器对待编码点云的占用图进行填充后得到的经填充的占用图,也就是说,解码器所接收到的待解码点云的占用图即是待解码点云经填充的占用图。

可选的,目标预设位置是该待处理边界像素块中的,且与目标有效像素之间的距离大于或等于预设阈值的无效像素所在的位置;或者,目标预设位置是该待处理边界像素块中的,且与目标有效像素所在的直线(line)之间的距离大于或等于预设阈值的无效像素所在的位置。其中,目标有效像素所在的直线与待处理边界像素块的类型相关,具体示例可以参考下文。其中,目标有效像素,是指译码器估计得到的最有可能是有效像素的像素。无效像素,是指待处理边界像素块中的填充之前像素值为0的像素。有效像素,是指待处理边界像素块中的填充之前像素值为1的像素。需要说明的是,本申请实施例中所描述的目标有效像素所在的直线可以替换为目标有效像素所在的线条。

本技术方案中,将待译码点云经填充的占用图中的待处理边界像素块中的目标预设位置的像素的值置零,并根据经处理过的占用图重构该待译码点云,该经处理过的占用图包括经置零的像素块。换句话说,该点云译码方法在重构待译码点云之前执行了对待译码点云经填充的占用图的滤波(或平滑处理)。这样,通过合理设置目标预设位置,有助于将经填充的占用图中的像素值为1的无效像素置零,相比直接采用经填充的占用图重构待译码点云的方案,本技术方案经重构的点云中的outlier点较少,因此,有助于提高编解码性能。

在一种可能的设计中,将待译码点云经填充的占用图中的待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块,包括:确定待译码点云经填充的占用图中的待处理边界像素块的类型;根据待处理边界像素块的类型,采用对应的目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。

在一种可能的设计中,确定待译码点云的占用图中的待处理边界像素块的类型,包括:基于待处理边界像素块的空域相邻像素块是否是无效像素块,估计待处理边界像素块中的无效像素在待处理边界像素块中的方位信息;或者,基于待处理边界像素块在填充前的像素块的空域相邻像素块是否是无效像素块,估计待处理边界像素块中的无效像素在待处理边界像素块中的方位信息。不同类型的边界像素块对应无效像素在边界像素块中不同的方位信息。

其中,无效像素块是指所包含的像素的值全为0的像素块。有效像素块是指所包含的至少一个像素的值为1的像素块。有效像素块包括边界像素块和非边界像素块。

待处理边界像素块的空域相邻像素块包括与该像素块相邻的,且位于该像素块的正上方、正下方、正左方、正右方、左上方、左下方、右上方和右下方的一个或多个像素块。

在一种可能的设计中,根据待处理边界像素块的类型,采用对应的目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块,包括:根据边界像素块的多种类型与多种处理方式之间的映射关系,确定待处理边界像素块的类型对应的处理方式;若待处理边界像素块的类型对应一种处理方式,则将待处理边界像素块的类型对应的处理方式作为目标处理方式;或者,若待处理边界像素块的类型对应多种处理方式,则将待处理边界像素块的类型对应的多种处理方式的其中一种处理方式作为目标处理方式;采用目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。该可能的设计中的映射关系可以是预定义的。

在一种可能的设计中,根据待处理边界像素块的类型,采用对应的目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块,包括:根据待处理边界像素块的类型查表,得到待处理边界像素块的类型对应的处理方式,该表包括边界像素块的多种类型与多种处理方式之间的映射关系;若待处理边界像素块的类型对应一种处理方式,则将待处理边界像素块的类型对应的处理方式作为目标处理方式;或者,若待处理边界像素块的类型对应多种处理方式,则将待处理边界像素块的类型对应的多种处理方式的其中一种处理方式作为目标处理方式;采用目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。

在一种可能的设计中,待译码点云是待编码点云,待处理边界像素块的类型对应多种处理方式;该方法还包括:将标识信息编入码流,标识信息表示待处理边界像素块的目标处理方式。一种类型对应多种处理方式的技术方案,处理方式多样化,因此有助于提高编解码效率。标识信息具体可以是目标处理方式的索引。该标识信息是帧级别的信息。

在一种可能的设计中,待译码点云是待编码点云,若待处理边界像素块的类型对应多种处理方式,将待处理边界像素块的类型对应多种的处理方式的其中一种处理方式作为目标处理方式,包括:根据待处理边界像素块在填充之前的像素块中的像素值为0的像素的位置,从待处理边界像素块的类型对应的多种处理方式中选择一种处理方式作为目标处理方式。这样,有助于使得重建得到的点云中的outlier点较少,从而提高编解码效率。

在一种可能的设计中,待译码点云是待解码点云,若待处理边界像素块的类型对应多种处理方式,根据待处理边界像素块的类型,采用对应的目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块,包括:根据待处理边界像素块的类型,解析码流,以得到标识信息;该标识信息用于表示目标处理方式;采用目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。

在一种可能的设计中,如果待处理边界像素块的预设方位的空域相邻像素块是无效像素块,则估计得到待处理边界像素块中的无效像素在待处理边界像素块中的预设方位;其中,预设方位是正上方、正下方、正左方、正右方、左上方、右上方、左下方和右下方中的其中一种或者至少两种的组合。

在一种可能的设计中,如果待处理边界像素块在填充前的像素块的预设方位的空域相邻像素块是无效像素块,则估计得到待处理边界像素块中的无效像素在待处理边界像素块中的预设方位;其中,预设方位是正上方、正下方、正左方、正右方、左上方、右上方、左下方和右下方中的其中一种或者至少两种的组合。

在一种可能的设计中,待处理边界像素块的空域相邻像素块包括:与待处理边界像素块相邻且位于待处理边界像素块的正上方、正下方、正左方和正右方的像素块。该情况下:

若待处理边界像素块的预设方向的空域相邻像素块是无效像素块,且其他空域相邻像素块均是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的预设方向;预设方向包括正上方、正下方、正左方和正右方中的其中一种或至少两种的组合。

或者,若待处理边界像素块的正上方和正右方的像素块为无效像素块,且待处理边界像素块的正下方和正左方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的右上方。

或者,若待处理边界像素块的正下方和正左方的像素块为无效像素块,且待处理边界像素块的正上方和正右方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的左下方。

或者,若待处理边界像素块的正上方和正左方的像素块为无效像素块,且待处理边界像素块的正下方和正右方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的左上方。

或者,若待处理边界像素块的正下方和正右方的像素块为无效像素块,且待处理边界像素块的正上方和正左方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的右下方。

在一种可能的设计中,待处理边界像素块的空域相邻像素块包括与待处理边界像素块相邻的且位于待处理边界像素块的左上方、右上方、左下方和右下方的像素块。该情况下,若待处理边界像素块的预设方向的空域相邻像素块是无效像素块,且其他空域相邻像素块均是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的预设方向;预设方向包括左上方、右上方、左下方和右下方其中一种或至少两种。

在一种可能的设计中,待处理边界像素块的空域相邻像素块包括:与待处理边界像素块相邻的且位于待处理边界像素块的正上方、正下方、正左方、正右方、左上方、右上方、左下方和右下方的像素块。该情况下,若待处理边界像素块的预设方向的空域相邻像素块是无效像素块,且其他空域相邻像素块均是有效像素块,则方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的预设方向;预设方向包括左上方、右上方、左下方或右下方。

在一种可能的设计中,待处理边界像素块是对待译码点云的占用图执行填充的基本填充单位。由于填充导致重构的点云中包含outlier点,因此,以基本填充单位作为待处理边界像素块的基本单位,有助于减少重构的点云中包含outlier点,从而有助于提高编解码性能。

第二方面,提供了一种点云译码方法,包括:对待译码点云经填充的占用图中的像素值执行腐蚀操作,得到经腐蚀的占用图。根据经腐蚀的占用图,重构待译码点云。本技术方案,通过腐蚀操作实现对待译码点云经填充的占用图中的像素值执行腐蚀,从而重构待译码点云。这样,相比直接采用经填充的占用图重构待译码点云的方案,本技术方案经重构的点云中的outlier点较少,因此,有助于提高编解码性能。

在一种可能的设计中,腐蚀操作的基本腐蚀单位小于或等于对待译码点云占用图执行填充操作的基本填充单位。例如,基本腐蚀单位可以是一个像素。

第三方面,提供了一种点云编码方法,包括:确定指示信息,该指示信息用于指示是否按照目标编码方法对待编码点云的占用图进行处理;目标编码方法包括如上述第一方面或第二方面提供的任一种点云译码方法(具体是点云编码方法);将该指示信息编入码流。

第四方面,提供了一种点云解码方法,包括:解析码流,以得到指示信息,该指示信息用于指示是否按照目标解码方法对待解码点云的占用图进行处理;目标解码方法包括上述第一方面或第二方面提供的任一种点云译码方法(具体是点云解码方法);当该指示信息用于指示按照目标解码方法对待解码点云的占用图进行处理时,按照目标解码方法对待解码点云的占用图进行处理。

第五方面,提供了一种译码器,包括:占用图滤波模块,用于将待译码点云经填充的占用图中的待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块;点云重构模块,用于根据经处理过的占用图,重构待译码点云,该经处理过的占用图包括该经置零的像素块。

第六方面,提供了一种译码器,包括:占用图滤波模块,用于对待译码点云经填充的占用图中的像素值执行腐蚀操作,得到经腐蚀的占用图。点云重构模块,用于根据经腐蚀的占用图,重构待译码点云。

第七方面,提供了一种编码器,包括:辅助信息编码模块,用于确定指示信息,以及将该指示信息编入码流;该指示信息用于指示是否按照目标编码方法对待编码点云的占用图进行处理;目标编码方法包括上述第一方面及其可能的设计,或第二方面及其可能的设计提供的任一种点云译码方法(具体是点云编码方法)。

第八方面,提供了一种解码器,包括:辅助信息解码模块,用于解析码流,以得到指示信息,该指示信息用于指示是否按照目标解码方法对待解码点云的占用图进行处理;目标解码方法包括上述第一方面及其可能的设计,或第二方面及其可能的设计提供的任一种点云译码方法(具体是点云解码方法)。占用图滤波模块,用于当该指示信息用于指示按照目标解码方法对待解码点云的占用图进行处理时,按照目标解码方法对待解码点云的占用图进行处理。

第九方面,提供一种译码装置,包括:存储器和处理器;其中,该存储器用于存储程序代码;该处理器用于调用该程序代码,以执行上述第一方面及其可能的设计,或第二方面及其可能的设计提供的任一种点云译码方法。

第十方面,提供一种编码装置,包括:存储器和处理器;其中,该存储器用于存储程序代码;该处理器用于调用该程序代码,以执行上述第三方面提供的点云编码方法。

第十一方面,提供一种解码装置,包括:存储器和处理器;其中,该存储器用于存储程序代码;该处理器用于调用该程序代码,以执行上述第四方面提供的点云编码方法。

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

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

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

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

附图说明

图1为可用于本申请实施例的一种实例的点云译码系统的示意性框图;

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

图3为可适用于本申请实施例的一种点云、点云的patch以及点云的占用图的示意图;

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

图5为可适用于本申请实施例的一种点云的占用图填充前后的对比示意图;

图6为本申请实施例提供的一种点云译码方法的流程示意图;

图7为本申请实施例提供的一种目标预设位置的示意图;

图8为本申请实施例提供的另一种目标预设位置的示意图;

图9为本申请实施例提供的另一种目标预设位置的示意图;

图10为本申请实施例提供的像素块的类型的索引、判别方式图、示意图以及描述信息的对应关系的示意图;

图11为本申请实施例提供的一种确定目标预设位置的像素的示意图;

图12为本申请实施例提供的另一种确定目标预设位置的像素的示意图;

图13为本申请实施例提供的另一种确定目标预设位置的像素的示意图;

图14为本申请实施例提供的另一种确定目标预设位置的像素的示意图;

图15为本申请实施例提供的两种类型为1的待处理边界像素块在填充之前的像素块的示意图;

图16为本申请实施例提供的一种码流结构的示意图;

图17为本申请实施例提供的另一种点云译码方法的流程示意图;

图18为可适用于本申请一实施例的几种核b的示意图;

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

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

图21为本申请实施例提供的一种译码器的示意性框图;

图22a为本申请实施例提供的另一种译码器的示意性框图;

图22b为本申请实施例提供的另一种译码器的示意性框图;

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

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

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

具体实施方式

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

图1为可用于本申请实施例的一种实例的点云译码系统1的示意性框图。术语“点云译码”或“译码”可一般地指代点云编码或点云解码。点云译码系统1的编码器100可以根据本申请提出的任一种点云编码方法对待编码点云进行编码。点云译码系统1的解码器200可以根据本申请提出的与编码器使用的点云编码方法相对应的点云解码方法对待解码点云进行解码。

如图1所示,点云译码系统1包含源装置10和目的地装置20。源装置10产生经编码点云数据。因此,源装置10可被称为点云编码装置。目的地装置20可对由源装置10所产生的经编码的点云数据进行解码。因此,目的地装置20可被称为点云解码装置。源装置10、目的地装置20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、带电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。

源装置10和目的地装置20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。

目的地装置20可经由链路30从源装置10接收经编码点云数据。链路30可包括能够将经编码点云数据从源装置10移动到目的地装置20的一或多个媒体或装置。在一个实例中,链路30可包括使得源装置10能够实时将经编码点云数据直接发送到目的地装置20的一或多个通信媒体。在此实例中,源装置10可根据通信标准(例如无线通信协议)来调制经编码点云数据,且可将经调制的点云数据发送到目的地装置20。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(radiofrequency,rf)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备。

在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通过输入接口240从存储装置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仅为实例,并且本申请的技术可适用于未必包含点云编码装置与点云解码装置之间的任何数据通信的点云译码(例如,点云编码或点云解码)装置。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。点云编码装置可对数据进行编码并且将数据存储到存储器,和/或点云解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。

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

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

在图1的实例中,目的地装置20包含输入接口240、解码器200和显示装置220。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码点云数据。显示装置220可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置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等。另外,编码器100还可以包括点云滤波模块110、第二填充模块111和点云重构模块112等。其中:

patch信息生成模块101,用于采用某种方法将一帧点云分割产生多个patch,以及获得所生成的patch的相关信息等。其中,patch是指一帧点云中部分点构成的集合,通常一个连通区域对应一个patch。patch的相关信息可以包括但不限于以下信息中的至少一项:点云所分成的patch的个数、每个patch在三维空间中的位置信息、每个patch的法线坐标轴的索引、每个patch从三维空间投影到二维空间产生的深度图、每个patch的深度图大小(例如深度图的宽和高)、每个patch从三维空间投影到二维空间产生的占用图等。该相关信息中的部分,如点云所分成的patch的个数,每个patch的法线坐标轴的索引,每个patch的深度图大小、每个patch在点云中的位置信息、每个patch的占用图的尺寸信息等,可以作为辅助信息被发送到辅助信息编码模块108,以进行编码(即压缩编码)。每个patch的占用图可以被发送到打包模块102进行打包,具体的,将该点云的各patch按照特定的顺序进行排列例如按照各patch的占用图的宽/高降序(或升序)排列;然后,按照排列后的各patch的顺序,依次将patch的占用图插入该点云占用图的可用区域中,得到该点云的占用图。再一方面,各patch在该点云占用图中的具体位置信息和各patch的深度图等可以被发送到深度图生成模块103。

打包模块102获得该点云的占用图后,一方面可以将该点云的占用图经第二填充模块111进行填充后发送到占用图编码模块107以进行编码。另一方面可以利用该点云的占用图指导深度图生成模块103生成该点云的深度图和指导纹理图生成模块104生成该点云的纹理图。

如图3所示,为可适用于本申请实施例的一种点云、点云的patch以及点云的占用图的示意图。其中,图3中的(a)为一帧点云的示意图,图3中的(b)为基于图3中的(a)获得的点云的patch的示意图,图3中的(c)为图3中的(b)所示的各patch映射到二维平面上所得到的各patch的占用图经打包得到的该点云的占用图的示意图。

深度图生成模块103,用于根据该点云的占用图、该点云的各patch的占用图和深度信息,生成该点云的深度图,并将所生成的深度图发送到第一填充模块105,以对深度图中的空白像素点进行填充,得到经填充的深度图。

纹理图生成模块104,用于根据该点云的占用图、该点云的各patch的占用图和纹理信息,生成该点云的纹理图,并将所生成的纹理图发送到第一填充模块105,以对纹理图中的空白像素点进行填充,得到经填充的纹理图。

经填充的深度图和经填充的纹理图被第一填充模块105发送到基于图像或视频的编码模块106,以进行基于图像或视频的编码。后续:

一方面,基于图像或视频的编码模块106、占用图编码模块107、辅助信息编码模块108,将所得到的编码结果(即码流)发送到复用模块109,以合并成一个码流,该码流可以被发送到输出接口140。

另一方面,基于图像或视频的编码模块106所得到的编码结果(即码流)发送到点云重构模块112进行点云重构得到经重构的点云(具体是得到重构的点云几何信息)。具体的,对基于图像或视频的编码模块106所得到的经编码的深度图进行视频解码,获得该点云的解码深度图,利用解码深度图、该点云的占用图和各patch的辅助信息,获得重构的点云几何信息。其中,点云的几何信息是指点云中的点(例如点云中的每个点)在三维空间中的坐标值。应用于在本申请实施例时,这里的“该点云的占用图”可以是该点云经滤波模块113滤波(或称为平滑处理)后得到的占用图。可选的,点云重构模块112还可以将该点云的纹理信息和重构的点云几何信息发送到着色模块,着色模块用于对重构点云进行着色,以获得重构点云的纹理信息。可选的,纹理图生成模块104还可以基于经点云滤波模块110对重构的点云几何信息进行滤波得到的信息生成该点云的纹理图。

以下,对占用图滤波模块113进行详细描述。

占用图滤波模块113位于第二填充模块111和点云重构模块112之间,用于对接收到第二填充模块111发送的点云经填充的占用图进行滤波,并将经滤波的占用图发送给点云重构模块112。该情况下,点云重构模块112基于该点云经滤波的占用图重构点云。其中,对点云经填充的占用图进行滤波(也可以称为平滑处理),具体可以体现为:将点云经填充的占用图中的一些像素的值置0。具体的,可以根据点云经填充的占用图中的待处理边界像素块的类型,采用对应的目标处理方式将该待处理边界像素块中的目标预设位置的像素的值置0,该方案的具体示例及相关解释可以参考下文。

可选的,占用图滤波模块113还与打包模块102和辅助信息编码模块108连接,如图2中的虚线所示。占用图滤波模块113还用于根据打包模块102发送的点云的占用图确定待处理边界像素块对应的目标处理方式,并将目标处理方式的标识信息作为辅助信息发送给辅助信息编码模块108,并由辅助信息编码模块108将该标识信息编入码流。

需要说明的是,该可选的实现方式中将目标处理方式的标识信息作为辅助信息并由辅助信息编码模块108将其编入码流为例进行说明的,可替换的,目标处理方式的标识信息也可以由独立于辅助信息编码模块108的一个编码模块将其编入码流,并将该码流发送到复用模块109,以得到合并的码流。另外,该可选的实现方式中是以占用图滤波模块113根据打包模块102发送的点云的占用图确定待处理边界像素块对应的目标处理方式为例进行说明的,可替换的,占用图滤波模块113也可以不依赖于打包模块102发送的点云的占用图,确定目标处理方式。该情况下,占用图滤波模块113可以不与打包模块102连接。

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

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

解复用模块201用于将输入的码流(即合并的码流)发送到相应解码模块。具体的,将包含经编码的纹理图的码流和经编码的深度图的码流发送给基于图像或视频的解码模块202;将包含经编码的占用图的码流发送给占用图解码模块203,将包含经编码的辅助信息的码流发送给辅助信息解码模块204。

基于图像或视频的解码模块202,用于对接收到的经编码的纹理图和经编码的深度图进行解码;然后,将解码得到的纹理图信息发送给点云的纹理信息重构模块207,将解码得到的深度图信息发送给点云重构模块205。占用图解码模块203,用于对接收到的包含经编码的占用图的码流进行解码,并将解码得到的占用图信息发送给点云重构模块205。应用于在本申请实施例时,发送给点云重构模块205的占用图信息可以是经占用图滤波模块208进行滤波后得到的占用图的信息。辅助信息解码模块204,用于对接收到的经编码的辅助信息进行解码,并将解码得到的指示辅助信息的信息发送给点云重构模块205。

点云重构模块205,用于根据接收到的占用图信息和辅助信息对点云的几何信息进行重构,具体的重构过程可以参考编码器100中的点云重构模块112的重构过程,此处不再赘述。经重构的点云的几何信息经点云滤波模块206滤波之后,被发送到点云的纹理信息重构模块207。点云的纹理信息重构模块207用于对点云的纹理信息进行重构,得到经重构的点云。

以下,对占用图滤波模块208进行详细描述。

占用图滤波模块208位于占用图解码模块203与点云重构模块205之间,用于对占用图解码模块203发送的占用图信息所表示的占用图进行滤波,并将滤波得到的占用图的信息发送给点云重构模块205。其中,这里的占用图是点云经填充的占用图,对点云经填充的占用图进行滤波,具体可以体现为:将点云经填充的占用图中的一些像素的值置0。具体的,可以根据点云经填充的占用图中的待处理边界像素块的类型,采用对应的目标处理方式将该待处理边界像素块中的目标预设位置的像素的值置0,该方案的具体示例及相关解释可以参考下文。

可选的,占用图滤波模块113还与辅助信息解码模块204连接,如图4中的虚线所示,用于接收辅助信息解码模块204解析码流得到的目标处理方式的标识信息。该可选的实现方式与上文中“占用图滤波模块113还与打包模块102和辅助信息编码模块108连接”的实施例或该实施例的上述替换方案相对应。换句话说,如果编码器100使用该实施例或该实施例的上述替换方案进行编码,则解码器200可以使用该可选的实现方式进行解码。

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

需要说明的是,编码器100中的点云滤波模块110,以及解码器200中的点云滤波模块206可以去除经重构的点云中的明显的噪声特征的像素如游离点、毛躁边界等。也就是说,使用点云滤波模块能够去除经重构的点云中的一部分outlier点(即离群点或异常点)。但是,如果仅通过点云滤波模块能够去除经重构的点云中的outlier点,则效果不佳。

考虑到经重构的点云中的outlier点的根本原因是由于对点云的占用图进行填充,本申请实施例提供了新的点云编解码方法和编解码器。

为了便于理解本申请实施例提供的技术方案,以下,对填充过程进行说明。

填充是为了节省码流开销而引入的对点云的占用图进行处理的步骤。一种填充方法可以包括:遍历点云的占用图中的每个b0*b0的像素块,不同b0*b0的像素块之间无交叠。对于任意一个b0*b0的像素块来说,如果该像素块中的至少一个像素的值为1,则将该像素块内的所有像素的值均填充为1(即均置为1)。其中,b0*b0是执行填充的基本填充单位。b0是一个基本填充单位包含的像素的一行/列包含的像素的个数。b0通常取2个整数幂,例如b0=2、4、8、16等。填充后的点云的占用图的分辨率是b0*b0,在此统一说明,下文不再赘述。

如图5所示,为可适用于本申请实施例的一种点云的占用图填充前后的对比示意图。其中,该点云填充之前的占用图如图5中的左上图所示,该点云填充之后的占用图如图5中的右上图所示。图5的左上图的局部占用图如图5中的左下图所示,对该局部占用图进行填充后得到的占用图如图5中的右下图所示。

结合图5可知,对点云的占用图进行填充具体是对点云的占用图中的边界像素块进行填充。该边界像素块如图5中的左下图中的灰色框所示。

虽然执行填充操作可以节省码流开销,但是会导致点云经填充的占用图产生锯齿状的边缘,如图5中的右下图所示的白色部分的像素的边缘。被填充的像素(即填充之前像素值为0且填充之后像素值为1的像素)在编码器100中经点云重构模块112对点云进行重构之后,以及在解码器200中经点云重构模块205对点云进行重构之后,均会成为经重构的点云中的outlier点。

为此,本申请实施例提供了能够有效减少点云的占用图因填充导致重构后的点云出现的outlier点,从而提高编解码性能。具体的,在编码端和/或解码端重构点云之前,对该点云经填充的占用图进行滤波,并采用该点云滤波后的占用图重构点云。

需要说明的是,上述填充方法仅为示例,其不对本申请实施例可适用的填充方法构成限定。原则上,本申请实施例中提供的“对点云经填充的占用图进行滤波,从而使用点云经滤波的占用图重构点云”的技术方案中的“点云经填充的占用图”可以是采用任意一种填充方法对点云的占用图进行填充之后得到的占用图。

以下,对本申请实施例提供的点云编码、解码方法进行说明。需要说明的是,结合图1所示的点云译码系统,下文中的任一种点云编码方法可以是点云译码系统中的源装置10执行的,更具体的,是由源装置10中的编码器100执行的;下文中的任一种点云解码方法可以是点云译码系统中的目的装置20执行的,更具体的,是由目的装置20中的解码器200执行的。

为了描述上的简洁,如果不加说明,下文中描述的点云译码方法可以包括点云编码方法或点云解码方法。当点云译码方法具体是点云编码方法时,图6所示的实施例中的待译码点云具体是待编码点云;当点云译码方法具体是点云解码方法时,图6所示的实施例中的待译码点云具体是待解码点云。

如图6所示,为本申请实施例提供的一种点云译码方法的流程示意图。该方法可以包括:

s101:确定待译码点云经填充的占用图中的待处理边界像素块的类型。

点云经填充的占用图中的像素块可以分为无效像素块和有效像素块。其中,无效像素块是指所包含的像素的值全为0的像素块,如图5的右下图中的黑色部分所包含的像素块。有效像素块是指所包含的至少一个像素的值为1的像素块,如图5的右下图中的白色部分所包含的像素块。可选的,待处理边界像素块是对待译码点云的占用图执行填充的基本填充单位。下文的具体示例中均以此为例进行说明,在此统一说明,下文不再赘述。

有效像素块包括边界像素块和非边界像素块。其中,如果一个有效像素块的所有空域相邻像素块均是有效像素块,则该有效像素块是非边界像素块,如图5的右下图中的白色部分中非边缘的像素块;否则,该像素块是边界像素块,如图5的右下图中白色部分中的且与黑色部分相邻的像素块。s101中的待处理边界像素块可以是待译码点云经填充的占用图中的任意一个边界像素块。本申请实施例对如何确定经填充的占用图中的边界像素块的具体实现方法不进行限定,例如可以参考现有技术。

待处理边界像素块的空域相邻像素块包括与该像素块相邻的,且位于该像素块的正上方、正下方、正左方、正右方、左上方、左下方、右上方和右下方的一个或多个像素块。具体实现的过程中,译码器可以根据两个像素块的坐标,确定这两个像素块是否相邻,以及这两个像素块中的一个像素块相对另一个像素块的方位。

在一种实现方式中,s101可以包括:基于待处理边界像素块的空域相邻像素块是否是无效像素块,估计待处理边界像素块中的无效像素(或有效像素)在待处理边界像素块中的方位信息;其中,不同类型的待处理边界像素块对应不同的方位信息。例如,先在该点云的经填充的占用图中,获取待处理边界像素块的空域相邻像素块,然后,通过确定这些空域相邻像素块是否是无效像素块(或者是否是有效像素块),确定待处理边界像素块的类型。

在另一种实现方式中,s101可以包括:基于待处理边界像素块在填充前的像素块的空域相邻像素块是否是无效像素块,估计待处理边界像素块中的无效像素在待处理边界像素块中的方位信息。例如,先在该点云的填充前的占用图中获取待处理边界像素块在填充前的像素块,以及待处理边界像素块在填充前的像素块的空域相邻像素块,然后,通过确定这些空域相邻像素块是否是无效像素块(或者是否是有效像素块),确定待处理边界像素块的类型。

待处理边界像素块中的无效像素,是指待处理边界像素块中的填充之前像素值为0的像素。待处理边界像素块中的有效像素,是指待处理边界像素块中的填充之前像素值为1的像素。根据上文中的描述并结合图5,不难理解,待处理边界像素块中的像素的值均为1,但是待处理边界像素块中的一些像素在填充之前的像素值是0,这些像素被称为无效像素,另一些像素在填充之前的像素值是1,这些像素被称为有效像素。

待处理边界像素块中的无效像素在待处理边界像素块中的方位信息可以包括以下至少一种:正上方、正下方、正左方、正右方、左上方、左下方、右上方和右下方。可以理解的,若待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是正上方,则待处理边界像素块中的有效像素在待处理边界像素块中的方位信息是正下方;若待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是右上方,则待处理边界像素块中的有效像素在待处理边界像素块中的方位信息是左下方。其他示例与此类似,此处不再一一列举。

需要说明的是,如果不加说明,本申请中的方位信息均是指待处理边界像素块中的无效像素在待处理边界像素块中的方位信息,在此统一说明,下文不再赘述。

不同类型的待处理边界像素块对应不同的方位信息。例如,若待处理边界像素块中的无效像素在待处理边界像素块的正上方,则可以将待处理边界像素块的类型标记为类型a。再如,若待处理边界像素块中的无效像素在待处理边界像素块的正上方和正下方,则可以将待处理边界像素块的类型标记为类型b。又如,若待处理边界像素块中的无效像素在待处理边界像素块的正上方、正左方和右下方,则可以将待处理边界像素块的类型标记为类型c。其他示例不再一一列举。

可选的,如果待处理边界像素块(或者待处理边界像素块填充之前的像素块)的预设方位的空域相邻像素块是无效像素块,则估计得到待处理边界像素块中的无效像素在待处理边界像素块中的预设方位。其中,该预设方位是正上方、正下方、正左方、正右方、左上方、右上方、左下方和右下方中的其中一种或者至少两种的组合。

可以理解的,如果待处理边界像素块的预设方位的像素块是无效像素块,说明待处理边界像素块内部的该预设方位的像素是无效像素的概率,大于该预设方位的像素是有效像素的概率,因此本申请实施例中译码器估计的该预设方位的像素是无效像素。例如,如果待处理边界像素块的正上方的像素块是无效像素块,说明待处理边界像素块内部的正上方的像素是无效像素的概率,大于该正上方的像素是有效像素的概率,因此本申请实施例中译码器估计的该正上方的像素是无效像素,该示例可以结合图5获得。其他示例不再一一列举。

s102:根据待处理边界像素块的类型,采用对应的目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。

上述s101~s102可以认为是“将待译码点云经填充的占用图中的待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块”的一种具体实现方式。

可选的,目标预设位置是该待处理边界像素块中的,且与目标有效像素之间的距离大于或等于预设阈值的无效像素所在的位置;或者,目标预设位置是该待处理边界像素块中的,且与目标有效像素所在的直线之间的距离大于或等于预设阈值的无效像素所在的位置。其中,标有效像素所在的直线与待处理边界像素块的类型相关,具体示例可以参考下文。

目标有效像素,是指译码器估计得到的最有可能是有效像素的像素。例如,根据待处理边界像素块中的无效像素(或有效像素)在该待处理边界像素块中的方位信息,估计得到的待处理边界像素块中的最有可能是有效像素的像素。

例如,若待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是正上方,则待处理边界像素块中的有效像素在待处理边界像素块中的方位信息是正下方,该情况下,待处理边界像素块中的目标有效像素是该待处理边界像素块中的最下方一行的像素。如图7所示,为可适用于该示例的一种目标预设位置的示意图。图7中是以待处理边界像素块是4*4的像素块,且预设阈值是2(具体是2个单位距离,其中一个单位距离是水平或竖直方向上相邻两个像素之间的距离)为例进行说明的。

再如,若待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是左下方,则待处理边界像素块中的有效像素在待处理边界像素块中的方位信息是右上方,该情况下,待处理边界像素块中的目标有效像素是该待处理边界像素块中的最右上方的一个或多个像素。如图8所示,为可适用于该示例的一种目标预设位置的示意图。其中,图8中的(a)是以目标预设位置是该待处理边界像素块中的,且与目标有效像素所在的直线之间的距离大于或等于预设阈值的无效像素所在的位置为例进行说明,图8中的(b)是以目标预设位置是该待处理边界像素块中的,且与目标有效像素之间的距离大于或等于预设阈值的无效像素所在的位置为例进行说明的。并且,图8中,待处理边界像素块是4*4的像素块,且预设阈值是2(具体是2个单位距离,其中一个单位距离是是45度斜线方向上相邻两个像素之间的距离)。

又如,若待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是正上方和左下方,则待处理边界像素块中的有效像素在待处理边界像素块中的方位信息是正下方和右上方,该情况下,待处理边界像素块中的目标有效像素是该待处理边界像素块中的最下方一行的像素,以及最右上方的一个或多个像素,如图9中的(a)的阴影部分所示。预设像素位置如图9中的(b)中的黑色部分所示。

其他示例与此类似,此处不再一一列举。

s103:根据经处理过的占用图,重构待译码点云,该经处理过的占用图包括经置零的像素块。例如,根据经编码的深度图进行视频解码,获得该点云的解码深度图,利用解码深度图、该点云的经处理过的占用图和各patch的辅助信息,获得重构的点云几何信息。

本申请实施例提供的点云译码方法,将待译码点云经填充的占用图中的待处理边界像素块中的目标预设位置的像素的值置零,并根据经处理过的占用图重构该待译码点云,该经处理过的占用图包括经置零的像素块。换句话说,该点云译码方法在重构待译码点云之前执行了对待译码点云经填充的占用图的滤波(或平滑处理)。这样,通过合理设置目标预设位置,有助于将经填充的占用图中的像素值为1的无效像素置0,相比直接采用经填充的占用图重构待译码点云的方案,本申请实施例提供的技术方案经重构的点云中的outlier点较少,因此,有助于提高编解码性能。

以下,基于所依据的空域相邻像素块不同,说明待处理边界像素块的类型(或待处理边界像素块中的无效像素在待处理边界像素块中的方位信息)的具体实现方式。

需要说明的是,这里描述的所依据的空域相邻像素块是指,确定待处理边界像素块的类型时,所依据的空域相邻像素块。而不应理解为待处理边界像素块所具有的空域相邻像素块。例如,可能存在一个待处理边界像素块的空域相邻像素块包括8个像素块,但是基于下述情况一时,仅依据该待处理边界像素块的正上方、正下方、正左方和正右方的像素块,来确定待处理边界像素块的类型。其他示例与此类似,此处不再一一列举。

情况一:待处理边界像素块的空域相邻像素块包括:与所述待处理边界像素块相邻且位于待处理边界像素块的正上方、正下方、正左方和正右方的像素块。该情况下,待处理边界像素块中的无效像素在待处理边界像素块中的方位信息可以包括以下任一种:

方式1a:若待处理边界像素块的预设方向的空域相邻像素块是无效像素块,且其他空域相邻像素块均是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的预设方向;该预设方向包括正上方、正下方、正左方和正右方中的其中一种或至少两种的组合。

具体的,若该预设方向是正上方,则可以将方式1a所描述的方位信息对应的待处理边界像素块类型称为类型1。若该预设方向是正下方,则可以将方式1a所描述的方位信息对应的待处理边界像素块类型称为类型2。若该预设方向是正左方,则可以将方式1a所描述的方位信息对应的待处理边界像素块类型称为类型7。若该预设方向是正右方,则可以将方式1a所描述的方位信息对应的待处理边界像素块类型称为类型8。

方式1b:若待处理边界像素块的正上方和正右方的像素块为无效像素块,且待处理边界像素块的正下方和正左方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的右上方。示例的,该方位信息对应的待处理边界像素块类型称为类型3。

或者,若待处理边界像素块的正下方和正左方的像素块为无效像素块,且待处理边界像素块的正上方和正右方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的左下方。示例的,该方位信息对应的待处理边界像素块类型称为类型4。

或者,若待处理边界像素块的正上方和正左方的像素块为无效像素块,且待处理边界像素块的正下方和正右方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的左上方。示例的,该方位信息对应的待处理边界像素块类型称为类型5。

或者,若待处理边界像素块的正下方和正右方的像素块为无效像素块,且待处理边界像素块的正上方和正左方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的右下方。示例的,该方位信息对应的待处理边界像素块类型称为类型6。

情况二:待处理边界像素块的空域相邻像素块包括:与待处理边界像素块相邻的且位于待处理边界像素块的正上方、正下方、正左方、正右方、左上方、右上方、左下方和右下方的像素块。该情况下,若待处理边界像素块的预设方向的空域相邻像素块是无效像素块,且其他空域相邻像素块均是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的预设方向;预设方向包括左上方、右上方、左下方或右下方。

具体的:若该预设方向是右上方,则可以将该方位信息对应的待处理边界像素块类型称为类型9。若该预设方向是左下方,则可以将该方位信息对应的待处理边界像素块类型称为类型10。若该预设方向是左上方,则可以将该方位信息对应的待处理边界像素块类型称为类型11。若该预设方向是右下方,则可将该方位信息对应的待处理边界像素块类型称为类型12。

上述像素块的类型的索引(如上述类型1~12)、判别方式图、示意图以及描述信息等可以参考图10。其中,图10中的每个小方格表示一个像素块,最中心的标记有五角星的像素块表示待处理边界像素块,黑色标记的像素块表示无效像素块,白色标记的像素块表示有效像素块,斜线阴影标记的像素块表示有效像素块或无效像素块。

例如,图10所示的表格中的第一行中的判别方式图表示:当待处理边界像素块的空域相邻像素块中的正上方的像素块是无效像素块,且正下方、正左方和正右方的像素块均是有效像素块时,判定该待处理边界像素块的类型是类型1。该行中的示意图表示:待处理边界像素块的空域相邻像素块具有以下特征:正上方的像素块是无效像素块,且正下方、正左方和正右方的像素块均是有效像素块;且左上方、右上方、左下方和右下方的像素块是有效像素块或无效像素块。其他示例与此类似,此处不再一一列举。

情况三:待处理边界像素块的空域相邻像素块包括与待处理边界像素块相邻的且位于待处理边界像素块的左上方、右上方、左下方和右下方的像素块。该情况下,若待处理边界像素块的预设方向的空域相邻像素块是无效像素块,且其他空域相邻像素块均是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的预设方向;预设方向包括左上方、右上方、左下方和右下方其中一种或至少两种。

以下,基于待处理边界像素块的类型说明目标预设位置的具体实现方式。在此之前,首先说明以下几点:

第一,下文中的p[i]表示待译码点云经填充的占用图中的第i个边界像素块,p[i].type==j表示边界像素块p[i]的类型的索引是j。

第二,为了便于描述,附图(如图11~图14)中对像素进行了编号,其中,这些附图中的每个小方格表示一个像素。另外下文中的具体示例分别以b0=2、4或8为例进行说明。

第三,无论待处理边界像素块是哪一种类型,以及无论该类型对应一种还是多种处理方式,编码器和解码器均采用同一种方式对待处理边界块进行处理。

基于待处理边界像素块的类型说明目标预设位置的具体实现方式,可以包括:

如果p[i].type==1,则令p(x,y)为b0*b0块中的一点,bl为去除强度参数,且bl∈[0,b0);当p(x,y)满足x∈(0,b0],y∈(0,bl]时,p(x,y)=0即将p点作为目标预设位置。

如果p[i].type==2,则令p(x,y)为b0*b0块中的一点,bl为去除强度参数,且bl∈[0,b0);当p(x,y)满足x∈(0,b0],y∈(b0-bl,b0]时,p(x,y)=0即将p点作为目标预设位置。

如图11所示,为本申请实施例提供的一种确定目标预设位置的像素的示意图。

基于图11,如果p[i].type==1,那么:

当b0=2时,目标预设位置的像素可以是待处理边界像素块中的编号为{1}的像素。

当b0=4时,目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}或者{1,2,3}的像素。

当b0=8时,目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}、{1,2,3}、{1,2,3,4}、{1,2,3,4,5}、{1,2,3,4,5,6}或{1,2,3,4,5,6,7}。

基于图11,如果p[i].type==2,那么:

当b0=2时,目标预设位置的像素可以是待处理边界像素块中的编号为{2}的像素。

当b0=4时,目标预设位置的像素可以是待处理边界像素块中的编号为{4}、{3,4}或者{2,3,4}的像素。

当b0=8时,目标预设位置的像素可以是待处理边界像素块中的编号为{7}、{6,7}、{5,6,7}、{4,5,6,7}、{3,4,5,6,7}、{2,3,4,5,6,7}或{1,2,3,4,5,6,7}。

如果p[i].type==3或者p[i].type==9,则令p(x,y)为b0*b0块中的一点,x,y∈[0,b0),bc为去除强度参数,且bc∈[-b0+2,b0-1];当p(x,y)满足x-ky-bc+1<0时,p(x,y)=0即将p点作为目标预设位置。其中,k>0。

如果p[i].type==4或者p[i].type==10,则令p(x,y)为b0*b0块中的一点,x,y∈[0,b0),bc为去除强度参数,且bc∈[-b0+2,b0-1];当p(x,y)满足x-ky+bc-1<0时,p(x,y)=0即将p点作为目标预设位置。其中,k>0。

如图12所示,为本申请实施例提供的一种确定目标预设位置的像素的示意图。

基于图12,如果p[i].type==3或9,那么:

当b0=2时,目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}或{1,2,3}的像素。

当b0=4时,如果待处理边界像素块如b0=4对应的第1个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}、{1,2,3}……或{1,2,3……7}的像素;如果待处理边界像素块如b0=4对应的第2个图或第3个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}、{1,2,3}……或{1,2,3……6}的像素。

当b0=8时,如果待处理边界像素块如b0=8对应的第1个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}、{1,2,3}……或{1,2,3……15}的像素;如果待处理边界像素块如b0=8对应的第1个图,目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}、{1,2,3}……或{1,2,3……12}的像素。

基于图12,如果p[i].type==4或10,那么:

当b0=2时,目标预设位置的像素可以是待处理边界像素块中的编号为{3}、{2,3}或{1,2,3}的像素。

当b0=4时,如果待处理边界像素块如b0=4对应的第1个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{7}、{6,7}、{5,6,7}……或{1,2,3……7}的像素;如果待处理边界像素块如b0=4对应的第2个图或第3个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{6}、{5,6}、{4,5,6}……或{1,2,3……6}的像素。

当b0=8时,如果待处理边界像素块如b0=8对应的第1个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{15}、{14,15}、{13,14,15}、{12,13,14,15}……或{1,2,3……15}的像素;如果待处理边界像素块如b0=8对应的第1个图,目标预设位置的像素可以是待处理边界像素块中的编号为{11}、{11,12}、{10,11,12}……或{1,2,3……12}的像素。

如果p[i].type==5或者p[i].type==11,则令p(x,y)为b0*b0块中的一点,x,y∈[0,b0),bc为去除强度参数,且bc∈[-b0+2,b0-1]。当p(x,y)满足x+ky-b0+bc<0时,p(x,y)=0即将p点作为目标预设位置。其中,k>0。

如果p[i].type==6,或者p[i].type==12,则令p(x,y)为b0*b0块中的一点,x,y∈[0,b0),bc为去除强度参数,且bc∈[-b0+2,b0-1]。当p(x,y)满足x+ky-b0-bc+2>0时,p(x,y)=0即将p点作为目标预设位置。其中,k>0。

如图13所示,为本申请实施例提供的一种确定目标预设位置的像素的示意图。

基于图13,如果p[i].type==5或11,那么:

当b0=2时,目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}或{1,2,3}的像素。

当b0=4时,如果待处理边界像素块如b0=4对应的第1个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}……或{1,2……7}的像素;如果待处理边界像素块如b0=4对应的第2个图或第3个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}、{1,2,3}……或{1,2,3……6}的像素。

当b0=8时,如果待处理边界像素块如b0=8对应的第1个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}、{1,2,3}……或{1,2,3……15}的像素;如果待处理边界像素块如b0=8对应的第2个图或第3个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}、{1,2,3}……或{1,2,3……12}的像素。

基于图13,p[i].type==6或12,那么:

当b0=2时,目标预设位置的像素可以是待处理边界像素块中的编号为{3}、{2,3}或{1,2,3}的像素。

当b0=4时,如果待处理边界像素块如b0=4对应的第1个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{7}、{6,7}、{5,6,7}……或{1,2,3……7}的像素;如果待处理边界像素块如b0=4对应的第2个图或第3个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{6}、{5,6}、{4,5,6}……或{1,2,3……6}的像素。

当b0=8时,如果待处理边界像素块如b0=8对应的第1个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{15}、{14,15}、{13,14,15}、{12,13,14,15}……或{1,2,3……15}的像素;如果待处理边界像素块如b0=8对应的第2个图或第3个图,则目标预设位置的像素可以是待处理边界像素块中的编号为{12}、{11,12}、{10,11,12}……或{1,2,3……12}的像素。

如果p[i].type==7,则令p(x,y)为b0*b0块中的一点,bl为去除强度参数,且bl∈[0,b0)。当p(x,y)满足x∈(b0-bl,b0],y∈(0,b0]时,p(x,y)=0即将p点作为目标预设位置。其中,k>0。

如果p[i].type==8,则令p(x,y)为b0*b0块中的一点,bl为去除强度参数,且bl∈[0,b0)。当p(x,y)满足x∈(0,bl],y∈(0,b0]时,p(x,y)=0即将p点作为目标预设位置。其中,k>0。

如图14所示,为本申请实施例提供的一种确定目标预设位置的像素的示意图。

基于图14,如果p[i].type==7,那么:

当b0=2时,目标预设位置的像素可以是待处理边界像素块中的编号为{2}或{1,2}的像素。

当b0=4时,目标预设位置的像素可以是待处理边界像素块中的编号为{4}、{3,4}……或{1,2……4}的像素。

当b0=8时,目标预设位置的像素可以是待处理边界像素块中的编号为{8}、{7,8}……或{1,2……8}的像素。

基于图13,p[i].type==8,那么:

当b0=2时,目标预设位置的像素可以是待处理边界像素块中的编号为{1}或{1,2}的像素。

当b0=4时,目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}或{1,2……4}的像素。

当b0=8时,目标预设位置的像素可以是待处理边界像素块中的编号为{1}、{1,2}……或{1,2……8}的像素。

需要说明的是,上文中描述的目标预设位置的像素的具体实现方式仅为示例,实际实现时不限于此。

可选的,上述s102可以包括如下步骤s102a~s102c:

s102a:根据边界像素块的多种类型与多种处理方式之间的映射关系,确定待处理边界像素块的类型对应的处理方式。

s102b:若待处理边界像素块的类型对应一种处理方式,则将待处理边界像素块的类型对应的处理方式作为目标处理方式;或者,若待处理边界像素块的类型对应多种处理方式,则将待处理边界像素块的类型对应的多种处理方式的其中一种处理方式作为目标处理方式。

其中,一种处理方式可以对应一种目标预设位置。

s102c:采用目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。

在该可选的实现方式中,编码器和解码器可以预定义(如通过协议预定义)边界像素块的多种类型与多种处理方式之间的映射关系,例如预定义边界像素块的多种类型的标识信息与多种处理方式的标识信息之间的映射关系。

本申请实施例中对上述映射关系的具体体现形式不进行限定,例如可以是表格,或者是公式,或者是根据条件进行逻辑判断(例如ifelse或者switch操作等)等。下文中主要以映射关系的具体体现表格为例进行说明。基于此,执行s102时,译码器可以通过查表,得到待处理边界像素块的类型对应的处理方式。可以理解的,上述映射关系具体体现在一个或多个表格中,本申请实施例对此不进行限定。为了便于描述,本申请实施例均以这些表格具体体现在一个表格中为例进行说明。在此统一说明,下文不再赘述。基于此,上述s102a具体可以包括:根据待处理边界像素块的类型查表,得到待处理边界像素块的类型对应的处理方式,该表包括边界像素块的多种类型与多种处理方式之间的映射关系。

如果待处理边界像素块对应一种处理方式,则编码器和解码器均可以通过预定义的上述映射关系,获得目标处理方式。因此,该情况下,编码器可以不用向解码器发送用于表示目标处理方式的标识信息,这样可以节省码流传输开销。例如,根据上文中的描述,基于图11,假设待处理边界像素块的类型的索引是1,且b0=4,则该类型对应的一种处理方式(即目标处理方式)可以是:将待处理边界像素块中的编号为{1}的像素置0。

如果待处理边界像素块对应多种处理方式,则编码器可以从该多种处理方式中选择一种处理方式作为目标处理方式。例如,根据待处理边界像素块在填充之前的像素块中的像素值为0的像素的位置,从待处理边界像素块的类型对应的多种处理方式中选择一种处理方式作为目标处理方式。例如,根据上文中的描述,基于图11,假设待处理边界像素块的类型的索引是1,则该类型对应的多种处理方式可以是:将待处理边界像素块中的编号为{1}的像素置0,以及将待处理边界像素块中的编号为{1,2}的像素置0。目标处理方式可以是将待处理边界像素块中的编号为{1}的像素置0,或者将待处理边界像素块中的编号为{1,2}的像素置0。

可选的,将待处理边界像素块的类型对应多种的处理方式的其中一种处理方式作为目标处理方式,可以包括:根据待处理边界像素块在填充之前的像素块中的像素值为0的像素的位置,从待处理边界像素块的类型对应的多种处理方式中选择一种处理方式作为目标处理方式。其中,所选择的目标处理方式使得待处理边界像素块中的最多的无效像素置0。

例如,如图15所示,为本申请实施例提供的两种类型为1的待处理边界像素块(即无效像素在待处理边界像素块内部的正上方)在填充之前的像素块的示意图。其中,如果待处理边界像素块在填充之前如图15中的(a)所示,即第1行中的像素为无效像素,则目标处理方式可以是将待处理边界像素块中的编号为{1}的像素置0。如果待处理边界像素块在填充之前如图15中的(b)所示,即第1行和第2行中的像素为无效像素,则目标处理方式可以是将待处理边界像素块中的编号为{1,2}的像素置0。其中,图15中是以待处理边界像素块的大小是4*4为例进行说明的。其他示例的原理与此类似,此处不再赘述。

可选的,如果待处理边界像素块对应多种处理方式,则编码器可以将标识信息编入码流,该标识信息表示待处理边界像素块的目标处理方式。该情况下,对于解码器来说,上述s102可以包括:根据待处理边界像素块的类型,解析码流,以得到该标识信息;然后采用目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。

可以理解的,如果待处理边界像素块的空域相邻像素块包括8个,则该待处理边界像素块的空域相邻像素块可能的组合共有28种,这28种的其中一种或者至少两种可以作为一种类型,例如如图10所示的若干种类型。另外,除了上文中所列举的边界像素块的类型之外,边界像素块还可以被归为其他类型。实际实现的过程中,由于待处理边界像素块的空域相邻像素块可能的组合比较多,因此,可以选择出现概率比较高的类型,或者执行本申请实施例提供的置零处理后对编码效率增益贡献较大的类型,来执行本申请实施例提供的技术方案,对于其他类型,可以不执行本申请实施例提供的技术方案。基于此,对于解码器来说,可以根据待处理边界像素块的类型(具体是指按照本申请实施例提供的技术方案进行编解码的边界像素块的类型,或者对应多种处理方式的边界像素块的类型),确定是否解析码流。其中,这里的码流是指携带目标处理方式的标识信息的码流。

例如,假设编码器和解码器预定义:针对如图10所示的各种类型的边界像素块,按照本申请实施例提供的技术方案进行编解码;那么,对于解码器来说,当确定一个待处理边界像素块的类型是图10中所示的其中一种类型时,解析码流,以得到该类型对应的目标处理方式;当该待处理边界像素块的类型不是图10中所示的类型时,不解析码流。这样,不需要在码流中传输每个待处理边界像素块的每种类型以及每种类型对应的目标处理方式,因此可以节省码流传输开销。

如图16所示,为本申请实施例提供的一种码流结构的示意图。图16中的每个带箭头的连线表示一个边界像素块与该边界像素块的目标处理方式的标识信息之间的对应关系。图16中的数字表示边界像素块的索引。

上文中描述了基于预定义的边界像素块的类型与处理方式之间的映射关系,确定待处理边界像素块的目标处理方式的技术方案。可替换的,编码器可以动态确定待处理边界图像块的类型对应的目标处理方式,然后将目标处理方式的相关信息编入码流,该情况下,解码器可以通过解析该码流,获得该目标处理方式。作为一个示例,目标处理方式的相关信息可以包括:被置零的像素的索引(如坐标值等)。

如图17所示,为本申请实施例提供的一种点云译码方法的流程示意图。该方法可以包括:

s201:对待译码点云经填充的占用图中的像素值执行腐蚀操作,得到经腐蚀的占用图。

s202:根据经腐蚀的占用图,重构待译码点云。

其中,腐蚀操作具体可以是计算机视觉中的腐蚀操作。可选的,腐蚀操作的基本腐蚀单位小于或等于对待译码点云占用图执行填充操作的基本填充单位。

以下,以基本腐蚀单位是一个像素为例对腐蚀操作进行说明。

具体的,s201可以包括:遍历待译码点云经填充的占用图p中每一个像素p[x][y],其中,x和y分别为x轴和y轴坐标值;将像素p[x][y]与核b进行卷积操作,得到经腐蚀(或经滤波)的像素q[x][y]。具体公式如下:q[x][y]=min(x',y'):element(x',y')≠0p[x+x'][y+y']。其中,该公式表示q[x][y]是核b中的各像素的值中的最小值,p[x+x'][y+y']是核b中的像素(x+x',y+y')的值。

其中,核b可以是任意形状和大小,一般为正方形或者圆形,具体可以参考现有技术。核b一般会定义一个锚点,该锚点一般为核b的中心点。作为一个示例,核b可以为图18中的任意一种。其中,在图18中,白色方块表示像素值为0的像素,阴影方块表示像素值为1的像素,五角星所在的像素块为锚点。图18中的核b是5*5的核b。

具体实现的过程中,可以取占用图p中的像素p[x][y],将图18中某一个核b(具体是哪一种可以编码器和解码器预定义的,当然本申请实施例不限于此)的锚点与p[x][y]对齐,如果核b中阴影方块所示位置在p[x][y]像素点对应邻域点中有至少一个像素的值为0,则q[x][y]取值为0,否则q[x][y]取值为1。

可以理解的,核b的半径决定腐蚀操作的影响像素的多少。核b的半径越大,被腐蚀掉的像素点越多;核b的半径越小,被腐蚀掉的像素点越少。

本实施例提供的点云编码方法中,通过腐蚀操作实现对待译码点云经填充的占用图中的像素值执行腐蚀,从而重构待译码点云。这样,相比直接采用经填充的占用图重构待译码点云的方案,本技术方案经重构的点云中的outlier点较少,因此,有助于提高编解码性能。

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

s301:确定指示信息,该指示信息用于指示是否按照目标编码方法对待编码点云的占用图进行处理;目标编码方法包括本申请实施例提供的任一种点云编码方法,例如可以是图6或图17所示的点云译码方法,且这里的译码具体是指编码。

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

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

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

本实施例提供了一种选择目标编码方法的技术方案,该技术方案可以应用于编码器支持至少两种点云编码方法的场景中。

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

s401:解析码流,以得到指示信息,该指示信息用于指示是否按照目标解码方法对待解码点云的占用图进行处理;目标解码方法包括本申请实施例提供的任一种点云解码方法,例如可以是图6或图17所示的点云译码方法,且这里的译码具体是指解码。具体是与图19中所描述的编码方法相对应的解码方法。其中,该指示信息是帧级别的信息。

s402:当该指示信息用于指示按照目标解码方法对待解码点云的占用图进行处理时,按照目标解码方法对待解码点云的占用图进行处理。其中,具体的处理过程可以参考上文。

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

例如,上述指示信息可以是标识removeoutlier。

对于编码端来说,作为一个示例,如果确定不使用本申请实施例提供的技术方案进行编码(具体是去除outlier点),则令removeoutlier等于0。如果确定使用本申请实施例提供的技术方案进行编码(具体是去除outlier点),则令removeoutlier等于1。

进一步的,如果removeoutlier等于1,那么:对于任一种类型的像素块,如果所对应的处理方式仅有一种,则不需要将该类型对应的目标处理方式的标识信息写入码流。对于任一种类型的像素块,如果所对应的处理方式有多种,则需要将该类型对应的目标处理方式的标识信息写入码流。

以如图10所示的各种类型均对应多种处理方式为例,对于点云经填充的占用图中的第i个像素块p[i]来说:如果p[i].type==0,说明此块为满块,即该块在点云经填充的占用图的内部,不需要去掉无效像素,因此不需要写入码流信息;如果p[i].type!=0,说明此块为边界像素块,则将p[i].oindex以固定比特数写入码流,该固定比特数取决于编码器和解码器预定义的该类型对应的处理方式的个数。

对于解码端来说,解析码流,得到标识removeoutlier。如果removeoutlier等于0,则不使用本申请实施例提供的技术方案进行编码(具体是去除outlier点)。如果removeoutlier等于1,则使用本申请实施例提供的技术方案进行编码(具体是去除outlier点)。

进一步的,如果removeoutlier等于1,那么:对于点云经填充的占用图中的第i个像素块p[i]来说,如果p[i].type==0,说明此块为满块,不需要从码流中解析得到该块对应的目标处理方式。如果p[i].type!=0,则从码流中解析p[i].oindex,根据p[i].oindex选择和编码端一样的去掉无效点方法。具体的码流格式可以如表1所示:

表1

其中,表1中的w表示点云的深度图的宽,w/b0表示点云的占用图的宽。h表示点云的深度图的高,h/b0表示点云的占用图的高。u(1)表示比特数是1,u(8)表示比特数是8,u(nx)表示比特数是可变的,具体为nx,x=1、2……x。

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

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

如图21所示,为本申请实施例提供的一种译码器170的示意性框图。译码器170具体可以是编码器或解码器。译码器170可以包括占用图滤波模块1701和点云重构模块1702。例如,假设译码器170是编码器,则具体可以是图2中的编码器100,该情况下,占用图滤波模块1701可以是占用图滤波模块113,点云重构模块1702可以是点云重构模块112。又如,假设译码器170是解码器,则具体可以是图4中的解码器200,该情况下,占用图滤波模块1701可以是占用图滤波模块208,点云重构模块1702可以是点云重构模块205。

在一些实施例中:

在一种可行的实施方式中,占用图滤波模块1701用于将待译码点云经填充的占用图中的待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。点云重构模块1702,用于根据经处理过的占用图,重构待译码点云,经处理过的占用图包括经置零的像素块。例如,结合图6,占用图滤波模块1701可以用于执行s101和s102,点云重构模块1702可以用于执行s103。

在一种可行的实施方式中,占用图滤波模块1701具体用于:确定待译码点云经填充的占用图中的待处理边界像素块的类型;根据待处理边界像素块的类型,采用对应的目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。例如,结合图6,占用图滤波模块1701可以用于执行s101和s102。

在一种可行的实施方式中,在确定所译码点云的占用图中的待处理边界像素块的类型的方面,占用图滤波模块1701具体用于:基于待处理边界像素块的空域相邻像素块是否是无效像素块,估计待处理边界像素块中的无效像素在待处理边界像素块中的方位信息;或者,基于待处理边界像素块在填充前的像素块的空域相邻像素块是否是无效像素块,估计待处理边界像素块中的无效像素在待处理边界像素块中的方位信息。其中,不同类型的边界像素块对应不同的方位信息。

在一种可行的实施方式中,如果待处理边界像素块的预设方位的空域相邻像素块是无效像素块,则估计得到待处理边界像素块中的无效像素在待处理边界像素块中的预设方位;其中,预设方位是正上方、正下方、正左方、正右方、左上方、右上方、左下方和右下方中的其中一种或者至少两种的组合。

在一种可行的实施方式中,如果待处理边界像素块在填充前的像素块的预设方位的空域相邻像素块是无效像素块,则估计得到待处理边界像素块中的无效像素在待处理边界像素块中的预设方位;其中,预设方位是正上方、正下方、正左方、正右方、左上方、右上方、左下方和右下方中的其中一种或者至少两种的组合。

在一种可行的实施方式中,目标预设位置是待处理边界像素块中的,与目标有效像素之间的距离大于或等于预设阈值的无效像素所在的位置。或者,目标预设位置是待处理边界像素块中的,且与目标有效像素所在的直线之间的距离大于或等于预设阈值的无效像素所在的位置;该直线与待处理边界像素块的类型相关。

在一种可行的实施方式中,在根据待处理边界像素块的类型,采用对应的目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块的方面,占用图滤波模块1701具体用于:根据边界像素块的多种类型与多种处理方式之间的映射关系,确定待处理边界像素块的类型对应的处理方式;若待处理边界像素块的类型对应一种处理方式,则将待处理边界像素块的类型对应的处理方式作为目标处理方式;或者,若待处理边界像素块的类型对应多种处理方式,则将待处理边界像素块的类型对应的多种处理方式的其中一种处理方式作为目标处理方式;采用目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。

在一种可行的实施方式中,在根据所述待处理边界像素块的类型,采用对应的目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块的方面,占用图滤波模块1701具体用于:根据待处理边界像素块的类型查表,得到待处理边界像素块的类型对应的处理方式,该表包括边界像素块的多种类型与多种处理方式之间的映射关系;若待处理边界像素块的类型对应一种处理方式,则将待处理边界像素块的类型对应的处理方式作为目标处理方式;或者,若待处理边界像素块的类型对应多种处理方式,则将待处理边界像素块的类型对应的多种处理方式的其中一种处理方式作为目标处理方式;采用目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。

在一种可行的实施方式中,待处理边界像素块的空域相邻像素块包括:与待处理边界像素块相邻且位于待处理边界像素块的正上方、正下方、正左方和正右方的像素块。该情况下,以下提供无效像素在待处理边界像素块中的方位信息的具体实现方式:

若待处理边界像素块的预设方向的空域相邻像素块是无效像素块,且其他空域相邻像素块均是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的预设方向;预设方向包括正上方、正下方、正左方和正右方中的其中一种或至少两种的组合。

或者,若待处理边界像素块的正上方和正右方的像素块为无效像素块,且待处理边界像素块的正下方和正左方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的右上方。

或者,若待处理边界像素块的正下方和正左方的像素块为无效像素块,且待处理边界像素块的正上方和正右方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的左下方。

或者,若待处理边界像素块的正上方和正左方的像素块为无效像素块,且待处理边界像素块的正下方和正右方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的左上方。

或者,若待处理边界像素块的正下方和正右方的像素块为无效像素块,且待处理边界像素块的正上方和正左方的像素块是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的右下方。

在一种可行的实施方式中,待处理边界像素块的空域相邻像素块包括与待处理边界像素块相邻的且位于待处理边界像素块的左上方、右上方、左下方和右下方的像素块。该情况下,若待处理边界像素块的预设方向的空域相邻像素块是无效像素块,且其他空域相邻像素块均是有效像素块,则待处理边界像素块中的无效像素在待处理边界像素块中的方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的预设方向;预设方向包括左上方、右上方、左下方和右下方其中一种或至少两种。

在一种可行的实施方式中,待处理边界像素块的空域相邻像素块包括:与待处理边界像素块相邻的且位于待处理边界像素块的正上方、正下方、正左方、正右方、左上方、右上方、左下方和右下方的像素块。该情况下,若待处理边界像素块的预设方向的空域相邻像素块是无效像素块,且其他空域相邻像素块均是有效像素块,则方位信息是:待处理边界像素块中的无效像素位于待处理边界像素块中的预设方向;预设方向包括左上方、右上方、左下方或右下方。

在一种可行的实施方式中,待处理边界像素块是对待译码点云的占用图执行填充的基本填充单位。

在一种可行的实施方式中,译码器170是编码器,待译码点云是待编码点云,待处理边界像素块的类型对应多种处理方式。该情况下,如图22a所示,编码器还包括辅助信息编码模块1703,用于将标识信息编入码流,标识信息表示待处理边界像素块的目标处理方式。例如,结合图2,辅助信息编码模块1703具体可以是辅助信息编码模块108。

在一种可行的实施方式中,译码器170是编码器,待译码点云是待编码点云,若待处理边界像素块的类型对应多种处理方式,在将待处理边界像素块的类型对应多种的处理方式的其中一种处理方式作为目标处理方式的方面,占用图滤波模块1701具体用于:根据待处理边界像素块在填充之前的像素块中的像素值为0的像素的位置,从待处理边界像素块的类型对应的多种处理方式中选择一种处理方式作为目标处理方式。

在一种可行的实施方式中,译码器170是解码器,待译码点云是待解码点云,待处理边界像素块的类型对应多种处理方式。该情况下,如图22b所示,解码器还包括辅助信息解码模块1704,用于根据待处理边界像素块的类型,解析码流,以得到目标处理方式的标识信息;目标处理方式的标识信息用于指示目标处理方式。在采用目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块方面,占用图滤波模块1701具体用于:采用该标识信息指示的目标处理方式将待处理边界像素块中的目标预设位置的像素的值置零,得到经置零的像素块。

在另一些实施例中:

在一种可行的实施方式中,占用图滤波模块1701,用于对待译码点云经填充的占用图中的像素值执行腐蚀操作,得到经腐蚀的占用图。点云重构模块1702,用于根据经腐蚀的占用图,重构待译码点云。例如,结合图17,占用图滤波模块1701可以用于执行s201,点云重构模块1702可以用于执行s202。

在一种可行的实施方式中,腐蚀操作的基本腐蚀单位小于或等于对待译码点云占用图执行填充操作的基本填充单位。

如图23所示,为本申请实施例提供的一种编码器180的示意性框图。编码器180可以包括辅助信息编码模块1801。例如,编码器180可以是图2中的编码器100,该情况下,辅助信息编码模块1801可以是辅助信息编码模块108。其中,辅助信息编码模块1801,用于确定指示信息,以及,将该指示信息编入码流。该指示信息用于指示是否按照目标编码方法对待编码点云的占用图进行处理;目标编码方法包括上文提供的任意一种点云译码方法(具体是点云编码方法),如图6或图17所示的点云译码方法。

可以理解的,具体实现的过程中,编码器180还包括占用图滤波模块1802和点云重构模块1803,用于按照目标编码方法对待编码点云的占用图进行处理。其中,占用图滤波模块1802所执行的步骤可以参考上述占用图滤波模块1701所执行的步骤,点云重构模块1803所执行的步骤可以参考上述点云重构模块1702所执行的步骤,此处不再赘述。

如图24所示,为本申请实施例提供的一种解码器190的示意性框图。解码器190可以包括:辅助信息解码模块1901、占用图滤波模块1902和点云重构模块1903。其中,辅助信息解码模块1901,用于解析码流,以得到指示信息,指示信息用于指示是否按照目标解码方法对待解码点云的占用图进行处理;目标解码方法包括上文提供的任意一种点云译码方法(具体是点云解码方法),如图6或图17所示的点云译码方法。占用图滤波模块1902和点云重构模块1903,用于当该指示信息用于指示按照目标解码方法对待解码点云的占用图进行处理时,按照目标解码方法对待解码点云的占用图进行处理,具体的处理过程可以参考上文,此处不再赘述。其中,占用图滤波模块1902和点云重构模块1903所执行的步骤可以分别参考上述占用图滤波模块1701和点云重构模块1702所执行的步骤,此处不再赘述。

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

图25为用于本申请实施例的编码设备或解码设备(简称为译码设备210)的一种实现方式的示意性框图。其中,译码设备210可以包括处理器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。

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

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

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

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

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

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

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