CN112017292A - 网格译码方法和装置 - Google Patents
网格译码方法和装置 Download PDFInfo
- Publication number
- CN112017292A CN112017292A CN201910473513.7A CN201910473513A CN112017292A CN 112017292 A CN112017292 A CN 112017292A CN 201910473513 A CN201910473513 A CN 201910473513A CN 112017292 A CN112017292 A CN 112017292A
- Authority
- CN
- China
- Prior art keywords
- grid
- patch
- current
- mesh
- grid element
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 123
- 230000006870 function Effects 0.000 claims description 32
- 238000003860 storage Methods 0.000 claims description 26
- 238000005457 optimization Methods 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 16
- 238000012856 packing Methods 0.000 claims description 5
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 44
- 238000013461 design Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 13
- 238000005192 partition Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 238000000638 solvent extraction Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了网格译码方法和装置,涉及网格编解码技术领域,有助于实现多帧三维网络的二维纹理图之间具有时空一致性,从而提高三维网格的编解码性能。本申请中,将编码和解码统称为译码。网格译码方法包括:根据当前网格的参考网格中的参考块patch所包含的网格元素,确定当前网格中第一patch所包含的网格元素;根据第一patch以及第一patch对应的二维纹理图,重构当前带纹理的网格。
Description
技术领域
本申请涉及网格编解码技术领域,尤其涉及网格译码方法和装置。
背景技术
带纹理图的三维网格(mesh)是一种常见的对真实世界物体的数字化表示,其基本原理为:在渲染三维网格时,把二维纹理图(atlas)映射到三维网格上以增强渲染的真实感。其中,纹理图通常指物体表面呈现的纹理,同时也包括在物体的光滑表明上的彩色图案。三维网格通常指由多个网格元素构成的三维形状的顶点、边和面。网格元素可以为三角面、多边形等。通俗的讲就是把二维的带有图案的图片贴到三维网格上来增强显示的真实感。参见图1,为带纹理图的三维网格示意图。其中,图1中的(a)图为人体的三维网格示意图,(b)图为该人体的二维纹理图示意图,(c)图为带纹理图的三维网格示意图。具体的,将(b)图中的二维纹理图映射到(a)图中的人体的三维网格图上,即可以得到(c)图中较为真实的人体三维图像。
在对多帧三维网格进行编码的过程中,如果该多帧三维网格的二维纹理图之间具有时空一致性,则后续对这些二维纹理图进行视频压缩编码时,可以提高压缩效率,从而提高视频编解码性能,进而提高三维网格的编解码性能。其中,具有时空一致性的多帧二维纹理图,是指在时间序列上存在空间一致性的多帧纹理图。具体的,该多帧三维网格的其中一帧网格的一个或多个块(patch)的展开图在该帧网格的二维纹理图中的位置,与另一帧网络的相应patch的展开图在该另一帧网格的纹理图中的位置相对应(如相同或相似)。其中,patch包括一个或多个网格元素。“相同”包括完全相同或实质相同。参见图2,为一种多帧三维网格的纹理图的示意图。其中,图2中的(a)图表示在空间上任意排列的多帧三维网格的纹理图,即不具有时空一致性的多帧三维网格的纹理图;图2中的(b)图表示具有时空一致性的多帧三维网格的纹理图。
因此,如何实现多帧三维网络的二维纹理图之间具有时空一致性,从而提高三维网格的编解码性能,成为亟待解决的技术问题。
发明内容
本申请实施例提供了网格译码方法和装置,有助于实现多帧三维网络的二维纹理图之间具有时空一致性,从而提高三维网格的编解码性能。本申请实施例中,将编码和解码统称为译码。
第一方面,提供了一种网格译码方法,包括:首先,根据当前网格的参考网格中的参考块patch所包含的网格元素,确定当前网格中第一patch所包含的网格元素;其中,参考patch所包含的网格元素与第一patch所包含的网格元素对应;然后根据第一patch以及该第一patch对应的二维纹理图,重构当前带纹理的网格。本技术方案,基于参考网格所包含的网格元素与当前网格所包含的网格元素之间的对应关系,对当前网格进行patch划分,这样有助于实现多帧网格的patch划分结果之间具有时空一致性,从而有助于实现该多帧三维网络的二维纹理图之间具有时空一致性,进而提高三维网格的编解码性能。
可选的,参考网格是指对当前网格进行patch划分的过程(具体是指初始patch划分过程)中所参考(或所基于的)的网格。不同网格中具有对应关系的网格元素指示该不同网格中的同一部位。
在一种可能的设计中,该方法还包括:获取当前网格中的网格元素与参考网格中的网格元素之间的对应关系。基于此,根据当前网格的参考网格中的参考patch所包含的网格元素,确定当前网格中第一patch所包含的网格元素,包括:根据当前网格中的网格元素与参考网格中的网格元素之间的对应关系,以及参考patch所包含的网格元素,确定该第一patch所包含的网格元素。这样,根据当前网格中的网格元素与参考网格中网格元素的对应关系,能够快速确定当前网格中第一patch中的网格元素,使得patch划分结果之间具有时空一致性,进而提高三维网格的编解码性能。
在一种可能的设计中,该当前网格包括第一网格元素,获取当前网格中的网格元素与参考网格中的网格元素之间的对应关系,具体包括:根据该第一网格元素对应的体素立方,确定参考网格中的且与该第一网格元素对应的网格元素。
在一种可能的设计中,参考网格和当前网格均为基准网格,根据该第一网格元素对应的体素立方,确定在该参考网格中的且与该第一网格元素对应的网格元素,包括:根据第一网格元素对应的体素立方,在当前网格中获取第一预设范围,在参考网格中获取第二预设范围。第一预设范围是当前网格中的包含体素立方的范围,第二预设范围在参考网格中的位置与第一预设范围在当前网格中的位置相同。然后将候选网格元素集合中的第二网格元素作为与第一网格元素对应的网格元素。其中,候选网格元素集合是第二预设范围内的网格元素构成的集合;第二网格元素是候选网格元素集合中的与目标网格元素之间的距离最近的网格元素,且第二网格元素与目标网格元素之间的距离小于或等于预设距离;目标网格元素在参考网格中的位置与第一网格元素在当前网格中的位置相同。这样,通过网格元素与体素立方的对应关系,可以快速地确定出网格元素之间的对应关系,且并行度高,能够大大缩减计算时间。
在一种可能的设计中,该当前网格还包括第三网格元素,该方法还包括:如果该第三网格元素与参考网格中的每个网格元素均不存在对应关系,那么将该第三网格元素作为该当前网格中的第二patch。该情况下,根据第一patch以及第一patch对应的二维纹理图重构当前带纹理的网格,可以包括:根据第一patch、第一patch对应的二维纹理图、第二patch以及第二patch对应的二维纹理图,重构当前带纹理的网格。
在一种可能的设计中,该方法还包括:根据当前网格的前N帧网格所分成的patch构建优化函数;其中,优化函数包括以下至少一种约束项:多帧网格所分成的patch的一致性、纹理缝隙的可见程度、patch的易摊平程度、patch的易打包程度以及纹理图的空间利用程度;N≥1,且N是整数。可选的,该优化函数也可以包含其中至少两种约束项。然后,根据该优化函数,对当前网格所分成的patch进行重划分,得到重划分后的patch。基于此,根据第一patch以及第一patch对应的二维纹理图重构当前带纹理的网格,具体包括:根据重划分后的patch以及重划分后的patch对应的二维纹理图,重构当前带纹理的网格。这样,通过对patch进行重划分,有助于获得更加合理的patch划分结果,有助于使得生成的二维纹理图具有低扭曲、少接缝和/或纹理空间高利用率的特点,从而有助于进一步提高三维网格的编解码性能。
在一种可能的设计中,该方法还包括:根据第四网格元素的纹理坐标,确定第五网格元素的纹理坐标。其中,第四网格元素是参考patch中的网格元素,第五网格元素是第一patch中的网格元素,第四网格元素与第五网格元素对应。该情况下,根据第一patch以及第一patch对应的二维纹理图重构当前带纹理的网格,具体包括,根据第一patch、第一patch对应的二维纹理图以及第五网格元素的纹理坐标,重构当前带纹理的网格。
其中,第五网格元素与第一网格元素可以相同,也可以不同。第五网格元素与第三网格元素不同。当第五网格元素为第一网格元素,第四网格元素可以为第二网格元素。
在一种可能的设计中,当前网格和参考网格是不同待译码网格,或者,当前网格和参考网格是不同待译码网格的基准网格。
在一种可能的设计中,该译码方法是编码方法,该方法还包括:生成码流,该码流包括第一指示信息,第一指示信息用于指示第一网格元素对应的体素立方。
在一种可能的设计中,该译码方法是编码方法,该方法还包括:生成码流,该码流包括第二指示信息。当当前网格是待编码网格时,该第二指示信息用于指示待编码网格的几何信息;或者,当当前网格是待编码网格的基准网格时,第二指示信息用于指示该待编码网格的基准网格的几何信息和形变场参数。
在一种可能的设计中,该方法还包括:解析码流,以得到第一指示信息,该第一指示信息用于指示第一网格元素所对应的体素立方。相应的,根据该第一指示信息所指示的体素立方,确定参考网格中的且与第一网格元素对应的网格元素。在该可能的设计中,该网格译码方法具体是网格解码方法。
在一种可能的设计中,该方法还包括:解析码流,以得到第二指示信息。其中,当当前网格是待解码网格时,该第二指示信息用于指示待解码网格的几何信息;或者当该当前网格是待解码网格的基准网格时,该第二指示信息用于指示该待解码网格的基准网格的几何信息和形变场参数。该情况下,根据第一patch以及第一patch对应的二维纹理图重构当前带纹理的网格,具体包括:根据第二指示信息所指示的信息、第一patch以及第一patch对应的二维纹理图,重构当前带纹理的网格。在该可能的设计中,该网格译码方法具体是网格解码方法。
第二方面,提供了一种网格译码器,该译码器包括用于执行上述第一方面中的任意一种可能的设计中的方法的模块(或单元)。
第三方面,提供了一种网格译码装置,该译码装置包括存储器和处理器。该处理器调用存储在该存储器中的程序代码以执行第一方面中任意一种可能的设计中的方法的部分或全部步骤。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储了程序代码,其中,该程序代码包括用于执行第一方面中的任意一种可能的设计中的方法的部分或全部步骤的指令。
应当理解的是,上述提供的任一种网格译码装置、网格译码器和计算机可读存储介质的有益效果均可以对应参考上文对应方面提供的方法实施例的有益效果,此处不再赘述。
附图说明
图1为可用于本申请实施例的带纹理的三维网格的示意图;
图2为可用于本申请实施例的一种多帧三维网格的纹理图的示意图;
图3为可用于本申请实施例的一种实例的网格译码系统的示意性框图;
图4为可用于本申请实施例的待译码网格和待译码网格的基准网格的关系示意图;
图4A为可用于本申请实施例的一种体素立方与网格之间的关系示意图;
图5为可用于本申请实施例的一种实例的编码器的示意性框图;
图6为可用于本申请实施例的一种待编码网格、待编码网格中各patch的示意图、网格中各patch的展开图、以及待编码网格的展开图的示意图;
图7为可用于本申请实施例的一种纹理映射的示意图;
图8为可用于本申请实施例的一种实例的解码器的示意性框图;
图9为本申请实施例提供的一种网格译码方法的流程示意图;
图10为本申请实施例提供的一种划分patch的示意图;
图11为本申请实施例的一种生成纹理坐标的示意图;
图12为本申请实施例提供的一种查找与当前网格中一个网格元素对应的网格元素的方法的流程示意图;
图13为本申请实施例提供的一种查找当前网格中一个网格元素对应的网格元素的过程示意图;
图14为本申请实施例提供的另一种网格译码方法流程示意图;
图15为本申请实施例提供的一种patch链的示意图;
图16为本申请实施例提供的一种对当前网格初始划分的patch进行重划分的示意图;
图17为本申请实施例的一种初始划分patch和重划分patch的示意图;
图18为本申请实施例提供的一种网格译码器的结构示意图;
图19为本申请实施例提供的一种网格编码器的结构示意图;
图20为本申请实施例提供的一种网格解码器的结构示意图。
具体实施方式
本申请实施例中的术语“至少一个”包括一个或多个。“多个”是指两个或两个以上。例如,A、B和C中的至少一种,包括:单独存在A、单独存在B、同时存在A和B、同时存在A和C、同时存在B和C,以及同时存在A、B和C。在本申请的描述中“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
图3为可用于本申请实施例的一种实例的三维网格译码系统1的示意性框图。术语“网格译码”一般地指代网格编码或网格解码。网格译码系统1的编码器100可以根据本申请提出的任一种网格编码方法对待编码网格进行编码。网格译码系统1的解码器200可以根据本申请提出的与编码器使用的网格编码方法相对应的网格解码方法对待解码网格进行解码。
如图3所示,网格译码系统1包含源装置10和目的地装置20。源装置10产生经编码网格数据。因此,源装置10可被称为网格编码装置。目的地装置20可对由源装置10所产生的经编码的网格数据进行解码。因此,目的地装置20可被称为网格解码装置。源装置10、目的地装置20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、带电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
源装置10和目的地装置20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
目的地装置20可经由链路30从源装置10接收经编码网格数据。链路30可包括能够将经编码网格数据从源装置10移动到目的地装置20的一或多个媒体或装置。在一个实例中,链路30可包括使得源装置10能够实时将经编码网格数据直接发送到目的地装置20的一或多个通信媒体。在此实例中,源装置10可根据通信标准(例如无线通信协议)来调制经编码网格数据,且可将经调制的网格数据发送到目的地装置20。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(radio frequency,RF)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备。
在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通过输入接口240从存储装置40存取经编码网格数据。存储装置40可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、数字多功能光盘(digitalversatile disc,DVD)、只读光盘(compact disc read-only memory,CD-ROM)、快闪存储器、易失性或非易失性存储器,或用于存储经编码网格数据的任何其它合适的数字存储媒体。
在另一实例中,存储装置40可对应于文件服务器或可保持由源装置10产生的经编码网格数据的另一中间存储装置。目的地装置20可经由流式传输或下载从存储装置40存取所存储的网格数据。文件服务器可为任何类型的能够存储经编码的网格数据并且将经编码的网格数据发送到目的地装置20的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传输协议(file transfer protocol,FTP)服务器、网络附属存储(networkattached storage,NAS)装置或本地磁盘驱动器。目的地装置20可通过任何标准数据连接(包含因特网连接)来存取经编码网格数据。这可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线路(digital subscriber line,DSL)、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码网格数据的两者的组合。经编码网格数据从存储装置40的传输可为流式传输、下载传输或两者的组合。
图3中所说明的网格译码系统1仅为实例,并且本申请的技术可适用于未必包含网格编码装置与网格解码装置之间的任何数据通信的网格译码(例如,网格编码或网格解码)装置。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。网格编码装置可对数据进行编码并且将数据存储到存储器,和/或网格解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。
在图3的实例中,源装置10包含数据源120、编码器100和输出接口140。在一些实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发送器(或称为发射器)。数据源120可包括网格捕获装置(例如,摄像机)、含有先前捕获的网格数据的网格存档、用以从网格内容提供者接收网格数据的网格馈入接口,和/或用于产生网格数据的计算机图形系统,或网格数据的这些来源的组合。其中,输入数据源120的数据可以为相机的位姿信息、RGBs信息、depths信息等,以生成编码器100的输入数据,如带纹理的待编码网格。
编码器100可对来自数据源120的网格数据进行编码。在一些实例中,源装置10经由输出接口140将经编码网格数据直接发送到目的地装置20。在其它实例中,经编码网格数据还可存储到存储装置40上,供目的地装置20以后存取来用于解码和/或播放。
在图3的实例中,目的地装置20包含输入接口240、解码器200和显示装置220。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码网格数据。显示装置220可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置220显示经解码网格数据。显示装置220可包括多种显示装置,例如,液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其它类型的显示装置。
尽管图3中未图示,但在一些方面,编码器100和解码器200可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器(multiplexer-demultiplexer,MUX-DEMUX)单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么MUX-DEMUX单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(user datagram protocol,UDP)等其它协议。
编码器100和解码器200各自可实施为例如以下各项的多种电路中的任一者:一个或多个微处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件或其任何组合以用于执行本申请实施例所提供的方法。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的计算机可读存储媒体(例如可以是非易失性计算机可读存储媒体)中,且可使用一或多个处理器在硬件中执行所述指令从而实施本申请实施例所提供的技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。编码器100和解码器200中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
本申请可大体上将编码器100称为将某些信息“发信号通知”或“发送”到例如解码器200的另一装置。术语“发信号通知”或“发送”可大体上指代用以对经压缩网格数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
下面,对本申请中所涉及到的名词进行解释说明:
基准网格:在动态三维网格重建的过程中,将网格序列中待译码网格和该待译码网格之前的帧所采集到的网格信息进行“去运动”操作(即把每一帧采集到的网格信息进行变换,使得变换后的网格信息对应的运动和网格序列中的特定一帧网格(如第一帧网格)的运动相同),并融合在一起形成的网格。其中,网格序列是时间上连续的多帧网格构成的序列。作为一个示例,网格序列中,第二基准网格和第一基准网格形状相似。其中,第一基准网格是第一网格的基准网格,第二基准网格是第二网格的基准网格。第二网格是时间上在第一网格之后的网格。
可选的,网格序列可以是一个或多个帧组(group of frame,GOF),一个GOF是指时间上连续的N帧网格构成的序列,N是大于1的整数。本申请实施例对N的具体取值不进行限定,例如N=32或64等。或者,网格序列可以是一个GOF中的部分连续的网格构成的序列。
形变场参数:基准网格经过非刚性形变得到待译码网格。其中,非刚性形变可以由形变场参数表示。
具体的,在同一网格序列中,同一帧网格与其对应的基准网格具有相同的拓扑结构,即同一帧网格与其对应的基准网格具有相同的网格元素、相同的网格元素个数、相同的顶点数目以及相同的网格元素之间的连接关系。不同待译码网格的基准网格之间具有相似的几何形状,但所包含的网格元素的个数、顶点数目可以相同,也可以不同。如图4所示,待译码网格n和该待译码网格n的基准网格具有相同的拓扑结构;待译码网格n-1的基准网格与待译码网格n的基准网格具有相似的几何形状。
体素立方:对三维网格的所在的固定空间区域进行均匀剖分,所得到的每一个子立方体称为一个体素立方。其中,该固定空间区域包含该三维网格的全部。在一种示例中,一个体素立方包括一个或多个网格元素。如图4A所示,该图中每个小的立方体都为一个体素立方。
如图5所示,为可用于本申请实施例的一种实例的编码器100的示意性框图。在图5的实例中,编码器100可以包括:patch信息生成模块101、几何信息生成模块102、纹理图生成模块103、基于图像或视频的编码模块104、辅助信息编码模块105、几何信息编码模块106、复用模块107以及重构模块108。其中:
patch信息生成模块101,用于采用某种方法将待编码网格划分成多个patch,并获得所生成的patch的相关信息,以及将所划分的各patch映射到二维平面得到patch的展开图,然后将所划分的各patch的展开图进行打包生成待编码网格的展开图等。可选的,待编码网格可以为带纹理的待编码网格。对此,本申请不做具体限定。patch是由连通的网格元素构成的一片区域,且同一patch中的网格元素的空间位置是相邻的。一个patch可以包括一个或多个网格元素。网格元素可以为三角面、多边形等。patch的相关信息可以包括但不限于以下信息中的至少一项:待编码网格所分成的patch的个数、每个patch从三维空间映射到二维空间产生的patch的展开图、网格元素之间的对应关系等。该相关信息中的部分如网格元素之间的对应关系等,可以作为辅助信息被发送到辅助信息编码模块105,以进行编码(即压缩编码)。
如图6所示,为可用于本申请实施例的一种待编码网格、待编码网格的patch待编码、网格中各patch的展开图、以及待编码网格的展开图的示意图。其中,在图6中的(a)图为带纹理的待编码网格的示意图。图6中的(b)图为不带纹理待编码网格示意图。图6中的(c)图为基于图6中的(b)图获得的待编码网格所包含的各patch的示意图。其中,一个连通区域表示一个patch。图6中的(d)图为图6中的(c)图所示的各patch映射到二维平面后获得的待编码网格中每个patch的展开图的示意图。图6中的(e)图为基于图6中(d)图中所有patch的展开图打包或得到的待编码网格的展开图的示意图。
纹理图生成模块103:用于根据该待编码网格的展开图、纹理信息、几何信息生成模块102中生成的待编码网格的几何信息,以及由重构模块108的输出信息,生成待编码网格的二维纹理图。如图6中的(f)图所示。其中,图6中的(f)图是基于图6中的(e)图得到的。然后,将生成的二维纹理图以及纹理坐标发送到基于图像或视频的编码模104,以进行基于图像或视频的编码。其中,在一个示例中,几何信息包括待编码网格的几何信息;或,待编码网格的基准网格(canonical mesh)的几何信息以及形变场参数(warping fieldparameter)。重构模块108的输出信息请参考下文,这里就不再赘述。纹理坐标是指三维网格中的网格元素在二维纹理图上对应区域位置信息。具体的,以图7中三维网格上所示出的三角面为一个网格元素为例,该三角面通过纹理坐标(即图中三个角的顶点坐标分别为(0.5,0.8)、(0.3,0.2)以及(0.7,0.2))映射到二维纹理图上。
在本申请的一些实施例中,关于纹理坐标,纹理图生成模块103可以不需要向基于图像或视频的编码模块104发送待编码网格中的每个网格的纹理坐标,而是仅向基于图像或视频的编码模块104发送纹理坐标更新量。其中,纹理坐标更新量,可以为新的网格元素的纹理坐标。其中,新的网格元素为当前网格中在参考网格中没有对应关系的网格元素。当前网格可以是待编码网格或者待编码网格的基准网格。具体的,确定网格元素之间的对应关系的实现方法请参照下文。
经纹理图生成模块103生成纹理图以及纹理坐标发送到基于图像或视频的编码模块104,以进行编码,后续:
一方面,基于图像或视频的编码模块104、辅助信息编码模块105以及几何信息编码模块106将所获得的编码结果(即码流)发送到复用模块107,以合并成一个码流,该码流可以被发送到输出接口140。
另一方面,基于复用模块107所获得的合并后的码流发送到重构模块108进行网格重构,以重构当前带纹理的网格,进而获得重构的当前带纹理的网格的纹理坐标以及几何信息,以作为下一帧待编码网格中纹理图生成模块的输入。
具体的,对重构模块108所获得的合并后的码流进行解码,以得到解码后的二维纹理图、当前网格的几何信息以及当前网格的辅助信息,利用解码后的几何信息以及辅助信息得到的当前网格的纹理坐标,以作为下一帧待编码网格生成二维纹理图时的输入信息。
可以理解的,图5所示的编码器100仅为示例,具体实现时,编码器100可以包括比图5中所示的更多或更少的模块。本申请实施例对此不进行限定。
如图8所示,为可用于本申请实施例的一种实例的解码器200的示意性框图。在图8的实例中,解码器200可以包括:解复用模块201、基于图像或视频的解码模块202、几何信息解码模块203、辅助信息解码模块204和重构模块205。其中:
解复用模块201用于将输入的码流(即合并的码流)发送到相应解码模块。具体的,将包含经编码的纹理图的码流发送给基于图像或视频的解码模块202;将包含经编码的几何信息的码流发送给几何信息解码模块203,将包含经编码的辅助信息的码流发送给辅助信息解码模块204。
基于图像或视频的解码模块202,用于对接收到的经编码的纹理图进行解码;然后将解码获得的纹理图信息发送给网格纹理信息重构模块205。
基于几何信息解码模块203,用于对接收到的经编码的几何信息进行解码;然后将解码获得的几何信息发送给网格纹理信息重构模块205。
基于辅助信息解码模块204,用于对接收到的经编码的辅助信息进行解码,并将解码获得的指示辅助信息的信息发送给网格纹理信息重构模块205。
网格纹理信息重构模块205,用于根据接收到的纹理图信息、几何信息和辅助信息对网格的纹理信息进行重构,以得到经重构的当前带纹理的网格。
可以理解的,图8所示的解码器200仅为示例,具体实现时,解码器200可以包括比图8中所示的更多或更少的模块。本申请实施例对此不进行限定。
以下,对本申请实施例提供的网格译码方法进行说明。需要说明的是,结合图3所示的网格译码系统,下文中的任一种网格译码方法可以是网格译码中的源装置10执行的,更具体的,是由源装置10中的编码器100执行的。
如图9所示,为本申请实施例提供的一种网格译码方法的流程示意图。图9所示的方法可以包括如下步骤:
S101:译码器获取参考网格中的网格元素与当前网格中的网格元素之间的对应关系。
参考网格,是对当前网格进行patch划分的过程(具体是指初始patch划分过程)中所参考(或所基于的)的网格。可选的,参考网格和当前网格所表示的内容之间具有相似性。例如,参考网格和当前网格是表示同一个人物的不同姿势的网格。又如,参考网格和当前网格中均包含同一片风景区域等。
在一种实现方式中,当前网格可以是网格序列中的非首帧网格之外的任一帧待译码网格。该情况下,参考网格可以是待译码网格之前的任一帧网格。例如参考网格是当前网格的前一帧网格。
在另一种实现方式中,当前网格可以是网格序列中非首帧网格之外的任一帧待译码网格的基准网格。该情况下,参考网格可以是待译码网格之前的任一帧网格的基准网格。例如参考网格是当前网格的前一帧网格的基准网格。需要说明的是,为了便于描述,下文中的具体示例中均是以当前网格和参考网格均是基准网格为例进行说明的。
可以理解的,对于网格序列中的任意一帧或多帧(比如网格序列中的第一帧网格等)网格来说,译码器可以采用现有技术中的patch划分方式(例如,随机采样块划分方式、保语义的划分方式或保patch块易摊平方式等)对该一帧或多帧网格进行patch划分。
不同网格中具有对应关系的网格元素指示该不同网格中的同一部位。例如,假设参考网格和当前网格是表示同一个人物的不同的网格,那么,参考网格中的表示该人物的鼻子的网格元素,与当前网格中表示该人物的鼻子的网格元素之间具有对应关系。
当参考网格和当前网格均是基准网格时,不同网格中具有对应关系的网格元素指示该不同网格中的同一部位,具体包括:不同网格中具有对应关系的网格元素指示该不同网格中的同一位置。例如,假设参考网格和当前网格是表示同一个人物的基准网格,那么,参考网格中表示人物食指指尖的网格元素在参考网格中的位置,与当前网格中表示该人物的食指指尖的网格元素在当前网格中的位置相同。
在具体实现的过程中,参考网格中可能包含与当前网格中的部分或全部网格元素对应的网格元素,也可能不包含当前网格中的任意一个网格元素对应的网格元素。可以理解的是,对于给定的当前网格来说,参考网格与当前网格所表示的内容的相似度越高,译码器可以在参考网格中找到与当前网格所包含的越多网格元素相对应的网格元素。
可选的,S101可以包括:译码器查找(如串行或并行查找)当前网格中的每个网格元素在参考网格中是否存在对应的网格元素,从而获取参考网格中的网格元素与当前网格中的网格元素之间的对应关系。
本申请实施例对译码器如何获取参考网格中的网格元素与当前网格中的网格元素之间的对应关系不进行限定。具体的,译码器可以通过现有技术中的方法来获取该对应关系。例如,通过近似最近邻域(approximate nearest neighbor,ANN)库建立树结构,来获取该对应关系。另外,本申请实施例还提供了基于体素立方(voxel cube)来获取该对应关系的方法,具体的,基于当前网格中的任意一个网格元素所对应的体素立方来查找该网格元素在参考网格中所对应的网格元素,例如可以参考下述图12和图13。
可选的,如果基于体素立方来获取参考网格中的网格元素与当前网格中的网格元素之间的对应关系,那么:
当译码器是编码器时,该方法还包括:编码器生成码流,该码流中包括第一指示信息,该第一指示信息用于指示待编码网格中的每个网格元素对应的体素立方。另外,基于该实现方式,本申请实施例对S102~S105和编码器生成码流的步骤之间的顺序不进行限定。例如,可以先执行S102~S105,再执行编码器生成码流,或者可以先执行编码器生成码流再执行S102~S105,或者可以在执行S102~S105的过程中执行编码器生成码流。
相应的,当译码器是解码器时,该解码器接收编码器传输的码流,并解析码流以得到该用于指示网格元素对应的体素立方的第一指示信息。基于此,S101可以包括:解码器根据该第一指示信息所指示的待编码网格中的至少一个网格元素(如每个网格元素)对应的体素立方,确定参考网格中的网格元素与当前网格中的网格元素之间的对应关系。
可以理解的是,如果基于有技术中的方法来实现S101获取参考网格中的网格元素与当前网格中的网格元素之间的对应关系,那么,编码器可以不需要将第一指示信息编入码流。
S102:译码器根据参考网格中的网格元素与当前网格中的网格元素之间的对应关系,将当前网格划分为至少一个patch。
可选的,译码器可以根据参考网格中的网格元素与当前网格中的网格元素之间的对应关系,在当前网格中查找与参考patch所包含的每个网格元素分别对应的网格元素(该步骤标记为步骤1)。其中,参考patch是参考网格中的任意一个patch。如果查找到,则将所查找到的网格元素构成的集合作为一个patch(标记为第一patch)。其中,参考patch所包含的部分或全部网格元素与第一patch所包含的网格元素一一对应。如果没有查找到,则将参考网格中的另一个网格元素作为参考patch,并返回执行步骤1。直至遍历完参考网格中的所有patch(即针对参考网格中的每个patch均执行完本段中所描述的方法)。
如果遍历完参考网格中的所有patch之后,当前网格中不存在剩余网格元素,则对当前网格进行patch划分的过程结束。如果遍历完参考网格中的所有patch之后,当前网格中还存在与参考网格中的每个网格元素均不存在对应关系的网格元素(标记为剩余网格元素),则将每个剩余网格元素分别作为当前网格中的一个patch。此时,对当前网格进行patch划分的过程结束。
为了便于理解该可选的实现方式,以下结合图10对该可选的实现方式进行说明。
图10中的(a)图中主要示出了参考网格中的网格元素与当前网格中的网格元素之间的对应关系,以及参考网格的patch划分情况等。图10中的(b)图主要示出了基于a图所确定的当前网格的patch划分情况。
在图10中,每个节点(node)表示一个网格元素。图10中的(a)图和(b)图中的第一列均表示参考网格,包括网格元素11~18;第二列均表示当前网格,包括网格元素21~27。在时间轴t(即时序)上,参考网格位于当前网格之前。
在图10中,对于同一帧网格中的不同网格元素来说,如果由一条竖边连接,则表示该不同网格元素是空间相邻的,即可以作为同一patch中的网格元素。当然,具体实现的过程中,是否将这不同网格元素作为同一patch中的网格元素,还需要基于S102中可选的实现方式进行确定。例如,网格元素11和网格元素12是空间相邻的网格元素。
在图10中,对于不同帧网格中的不同网格元素来说,如果由一条横边连接,则表示该不同网格元素之间存在对应关系。例如,网格元素12和网格元素21之间存在对应关系。
在图10中,同一虚线框中的网格元素表示同一patch中的网格元素。例如,参考图10中的(a)图,网格元素11构成一个patch;网格元素12和网格元素13构成一个patch。
基于图10中的(a)图,译码器可以通过执行如下步骤1~5,实现对当前网格进行patch划分,以得到如图10中的(b)图所示的patch划分情况。
步骤1:在当前网格中查找与patch11中所包含的网格元素11对应的网格元素,本次查找结果为没有查找到。
步骤2:在当前网格中查找与patch12中所包含的网格元素12和13对应的网格元素,本次查找结果为仅查找到了与网格元素12对应的网格元素21,因此,可以将网格元素21作为当前网格中的一个patch(标记为patch21)。
步骤3:在当前网格中查找与patch13中所包含的网格元素14、15和16对应的网格元素,本次查找结果为查找到了与网格元素14、15和16分别对应的网格元素22、23和24,因此,可以将网格元素22、23和24作为当前网格中的一个patch(标记为patch22)。
步骤4:在当前网格中查找与patch14中所包含的网格元素17和18对应的网格元素,本次查找结果为查找到了与网格元素17和18分别对应的网格元素26和27,因此,可以将网格元素26和27作为当前网格中的一个patch(标记为patch23)。
上述步骤1~4可以串行执行,也可以并行执行。并且,本申请实施例不限定步骤1~4的执行顺序。
步骤5:执行上述步骤1~4之后,当前网格中存在剩余网格元素,即网格元素25。该情况下,可以将网格元素25作为当前网格中的一个patch(标记为patch24)。
至此,实现了将当前网格划分成了patch21~24。
S103:译码器获取该至少一个patch中的每个patch对应的二维纹理图。该步骤的具体实现方式可以参考现有技术,此处不再赘述。
S104:译码器获取当前网格中的每个网格元素的纹理坐标。
可选的,对于当前网格中的任意一个网格元素(标记为第一网格元素)来说,如果参考网格中存在与第一网格元素对应的网格元素,则根据与第一网格元素对应的网格元素的纹理坐标确定第一网格元素的纹理坐标。例如,将与第一网格元素对应的网格元素的纹理坐标通过重心插值的方式得到第一网格元素的纹理坐标。如图11所示,当前网格中的网格元素Fn,i与参考网格中的网格元素Fn-1,j对应(如步骤①所示),因此,可以将参考网格中的网格元素Fn-1,j的每个顶点的纹理坐标通过重心插值的方式生成当前网格中网格元素Fn,i的每个顶点的纹理坐标(如步骤②所示)。另外,如果参考网格中不存在与第一网格元素对应的网格元素,则可以基于现有技术中的方法获取第一网格元素的纹理坐标。
基于该可选的实现方式,当译码器是编码器时,编码器可以不需要将第一网格元素的纹理坐标编入码流,这样,可以节省码流传输开销。另外,基于该可选的实现方式,本申请实施例对S102~S103和S104之间的顺序不进行限定。例如,可以先执行S102~S103再执行S104,或者可以先执行S104再执行S102~S103,或者可以在执行S102~S103的过程中执行S104。
当然,作为该可选的实现方式的一种可替换的实现方式,译码器可以不基于是否能够在参考网格中找到对应的网格元素,确定第一网格元素的纹理坐标,而是直接基于现有技术中提供的方法确定第一网格元素的纹理坐标。该情况下,本申请实施例对S101~S103和S104之间的顺序不进行限定。
S105:译码器根据该至少一个patch中的每个patch对应的二维纹理图,以及当前网格中的网格元素(如每个网格元素)的纹理坐标,重构当前带纹理的网格。
具体的,译码器根据第一patch、第一patch对应的二维纹理图以及第一patch中的每个网格元素的纹理坐标,重构当前带纹理的网格。或者,译码器根据第一patch、第一patch对应的二维纹理图、第一patch中的每个网格元素的纹理坐标、第二patch、第二patch对应的二维纹理图以及第二patch中的每个网格元素的纹理坐标,重构当前带纹理的网格。
其中,重构当前带纹理的网格的具体实现方式可以参考现有技术或者参考上述图5中关于重构的说明。
可选的,当译码器是编码器时,编码器生成的码流还包括第二指示信息。其中,当当前网格是待编码网格时,该第二指示信息用来指示待编码网格的几何信息;或者,当当前网格是待编码网格的基准网格时,该第二指示信息用来指示待编码网格的基准网格的几何信息和形变场参数。另外,基于该可选的实现方式,本申请实施例对编码器生成该码流与步骤S101~S104之间的执行顺序不做限定。例如,可以在执行完步骤S101~S104之后再生成该码流,或者先生成该码流之后再执行步骤S101~S104,或者也可以在执行S101~S104的过程中生成该码流。
相应的,当译码器是解码器时,该解码器接收编码器传输的码流,并解析码流以得到该第二指示信息。上述步骤S105可以包括:解码器根据该第二指示信息所指示的几何信息、该至少一个patch以及该patch对应的二维纹理图重构当前带纹理的网格。
本实施例提供的网格译码方法,根据参考网格中的网格元素与当前网格中的网格元素之间的对应关系,以及参考网格的patch划分结果,对当前网格进行patch划分。如果网格序列中的连续多帧网格,均基于该方法进行patch划分,那么,有助于实现该连续多帧网格的patch划分结果之间具有时空一致性。例如,图17中的(a)图为参考网格划分patch的示意图;图17中的(b)图为基于参考网格的划分patch结果来划分当前网格得到的划分patch的结果的示意图;图17中的(c)图即基于(b)图中的方法对连续多帧网格划分patch的结果的示意图。基于该连续多帧网格划分patch的结果,有助于生成具有时空一致性二维纹理图,从而有助于提高二维纹理图的压缩效率,进而提高三维网格的编解码性能。
以下,结合图12和图13说明本申请实施例提供的查找与当前网格中一个网格元素对应的网格元素的方法。该方法可以作为上述S101的一种具体实现方式。
图12为查找与当前网格中一个网格元素对应的网格元素的方法的流程示意图。图13为基于图12提供的方法查找当前网格中一个网格元素对应的网格元素的过程示意图。图12和图13是以“网格序列包括网格1至网格N,且参考网格是该网格序列中的第n-1帧网格,当前网格是该网格序列中的第n帧网格,N和n皆为正整数,且1<n≤N”为例进行说明的。
图12所示的方法包括如下步骤:
其中,本申请实施例对如何获取网格元素对应的体素立方的方法不做具体限定。具体的,可以通过现有技术中的方法获取网格元素对应的体素立方。例如:可以通过使用已有的Marching Cubes算法,由截断符号距离函数(truncated signed distance function,TSDF)生成三维网格,该三维网格中的每个网格元素属于唯一一个体素立方。其中,TSDF是三维模型隐式表示的一种方法。
S101-2:译码器根据体素立方确定第一预设范围,并根据该第一预设范围,在参考网格中确定第二预设范围。其中,该第一预设范围在当前网格中的位置和该第二预设范围在参考网格中的位置相同。在该第二预设范围内查找第n-1帧网格中所包含的网格元素。本实施例中,将该第二预设范围内所包含的网格元素称为候选网格元素集合。该步骤可以对应图13中的步骤②和③。
当然具体实现时不限于此,例如,该第一预设范围可以包括以该体素立方为中心点,且半径为R所圈定的范围。其中,R大于0。可以理解的是,该预设范围值越小,其在参考网格中找到的对应关系越准确。
S101-3:译码器判断该候选网格元素集合是否为非空集合。
若是,则执行S101-4。若否,则执行S101-7。
S101-4:译码器确定该候选网格元素集合中的与目标网格元素距离最近的网格元素Fn-1,j。其中,目标网格元素在参考网格中位置与网格元素Fn,i在当前网格中的相同。Fn-1,j表示第n-1帧网格中的第j个网格元素,j是大于或等于1的整数。
其中,如果候选网格元素集合包含目标网格元素,则将该目标网格元素作为与该网格元素Fn,i对应的网格元素。如果该候选网格元素集合不包含该目标网格元素,则按照下面的步骤确定网格元素Fn,i对应的网格元素。
S101-5:译码器判断网格元素Fn-1,j与目标网格元素之间的距离是否小于或等于预设阈值。
若是,则执行S101-6。若否,则执行S101-7。
本申请实施例对预设阈值的具体取值不进行限定。可以理解的是,当前网格中越多的网格元素与参考网格之间存在对应关系,则当前网格中有越多的网格元素的纹理坐标可以不用码流中传输,因此可以节省码流传输开销;基于此,预设阈值的取值可以较大。另一方面,预设阈值的取值越大时,基于该预设阈值所确定的具有对应关系的网格元素的准确性越低。因此,具体实现时,可以基于不同帧中网格元素之间的对应关系的准确度和节省码流传输开销等因素确定预设阈值的取值。
S101-6:译码器确定网格元素Fn-1,j为网格元素Fn,i对应的网格元素。
执行S101-6之后,则结束。
S101-7:译码器确定网格元素Fn,i在参考网格中没有对应的网格元素。
执行S101-7之后,则结束。
本实施例提供的根据获取当前网格中网格元素与对应的体素立方的对应关系的方法,来获取当前网格中的网格元素与参考网格中网格元素的对应关系,与现有技术中获取网格元素的对应关系的方法(例如:ANN)相比,能够快速得到网格元素间的对应关系,从而快速生成具有时空一致的二维纹理图。
以下,通过图14对本申请实施例提供的另一种网格译码方法进行说明。本实施例中以网格序列为时间上连续的N帧网格构成的序列为例说明,其中,N为大于1的整数。图14所示的方法包括:
S201-S202:可以参考上述S101-S102。当然本申请实施例不限于此。
S203:译码器获取当前网格的前R帧网格所划分的patch所构成的patch链。其中,当前网格为网格序列中第n帧网格,n和R均为整数,且1<n<N,R≥2。
patch链,是指当前网格中连续的前R帧网格中具有对应关系的patch所构成的集合。其中,假设该前R帧网格包括网格1和网格2,网格1和网格2相邻,网格1包括patch1,网格2包括patch2,patch1所包含的网格元素与patch2所包含的网格元素之间具有对应关系,则patch1与patch2之间具有对应关系。假设该前R帧网格还包括网格3,且网格2和网格3相邻,网格3包括patch3,patch2与patch3具有对应关系,则patch1、patch2和patch3之间具有对应关系,则由patch1、patch2和patch3构成的集合称为patch链。例如,如图15中所示,虚线框中的pathc1、patch2和patch3构成一条patch链。其中,图15中是以R=3为例进行说明的。
S204:译码器根据当前网格的前R帧网格所划分成的patch构建优化函数。其中,优化函数包括以下至少一项约束项:多帧网格所分成的patch的一致性、纹理缝隙的可见程度、patch的易摊平程度、patch的易打包程度以及纹理图的空间利用程度。
可选的,给定优化函数,例如,Etotal=f(x*Ecoherence,y*Eseamless,z*Eparameterization),其中,Ecoherence用来衡量多帧网格(该示例中具体是该当前网格的前R帧网格)所分成的patch的一致性,Eseamless用来衡量纹理缝隙的可见程度,Eparameterization用来衡量patch的易摊平程度。x,y和z分别为对应参数的权重,x>0,y>0,z>0。
S205:译码器根据该优化函数以及当前网格的前R帧网格所构成的patch链,对当前网格所划分成的至少一个patch(后续称作当前网格初始划分的patch)进行重划分,得到重划分后的patch。
如图16所示,为本申请实施例提供的一种对当前网格初始划分的patch进行重划分的示意图。其中,对当前网格初始划分的patch结果,如图16中(a)图所示。具体的,网格元素11为patch1,网格元素12为patch2,网格元素13和14构成patch3,网格元素15为patch4,网格元素16为patch5。基于此,根据所构建的优化函数,可以将网格元素15和16分别构成的patch4和patch5优化为一个patch6。当然,根据所构建的优化函数中参数的权重不同,其优化结果也可能不同。例如,如果更注重于二维纹理图中少接缝,则给予参数Eseamless更大的权重,以获得重划分后的patch所生成的二维纹理图具有更少的接缝。本申请实施例对此不作具体限定。
可选的,当所构建的优化函数的约束项包括多帧网格所分成的patch的一致性时,步骤S205可以包括:将满足预设条件的多个patch链合并成一个patch链,根据合并后的patch划分结果对当前网格初始划分的patch进行重划分,得到重划分后的patch。其中,预设条件包括:该多个patch链中属于同一帧的patch是空间相邻的,并且,同一patch链中属于相邻网格的patch所包含的网格元素一一对应。如图16中所示:第一patch链与第二patch链空间相邻,且同一patch链中(例如:第一patch链或第二patch链)中的相邻网格的patch中所包含的网格元素一一对应。因此,可以将该第一patch链与第二patch链合并,得到第三patch链,如图16中(b)图所示。根据合并后的第三patch链对当前网格中的patch2和patch3进行重划分,最后将该patch2和patch3合并为一个patch,得到patch7。
本实施例中是以对当前网格的初始划分的patch进行重划分。
可选的,在具体实现的过程中,对当前网格进行patch的初始划分时,译码器中通常已缓存了前几帧网格的初始划分的patch结果,此时,在进行patch重划分时,可以结合该前几帧网格与当前网格初始划分的patch的结果一同进行重划分,以作为下一帧待译码网格划分patch时的参考。例如,将图17中的(c)图即某4帧网格按照初始划分的patch的结果示意图,对其进行重划分后,得到图17中(d)图中的patch重划分的结果,此时,不仅仅对该图中的第4帧网格的patch进行了重划分,也对该第4帧网格之前的3帧进行了重划分。
S206:译码器获取该重划分后的patch中的每个patch对应的二维纹理图,以及当前网格中的每个网格元素的纹理坐标。
具体的,该步骤中获取每个patch对应的二维纹理图的具体实现方式可以参考现有技术。获取当前网格中每个网格元素的纹理坐标可参照上述S104中的实现方式,此处不再赘述。
S207:译码器根据该重划分后的patch中的每个patch对应的二维纹理图,以及当前网格中的网格元素(如每个网格元素)的纹理坐标,重构当前带纹理的网格。
其中,重构当前带纹理的网格的具体实现方式可以参考现有技术。
本实施例提供的网格译码方法的有益效果可以图9所示的实施例的有益效果。此外,本实施例中对当前网格初始划分的patch进行重划分,有助于使得生成的二维纹理图具有低扭曲、少接缝和/或纹理空间高利用率的特点,从而有助于进一步提高三维网格的编解码性能。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对编码器/解码器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图18所示,为本申请实施例提供的一种网格译码器180的示意性框图。网格译码器180可以用于执行本申请实施例提供的任意一种网格译码方法,如图9或图14所示的网格译码方法。
网格译码器180可以包括第一确定模块1801和重构模块1802。具体的:当网格译码器180为网格编码器时,该第一确定模块1801所执行的操作具体可以由上述图4编码器100中的patch信息生成模块101执行。重构模块1802所执行的操作具体可以由图4编码器100中的重构模块108执行。当网格译码器180为网格解码器时,该第一确定模块1801以及重构模块1802所执行的操作具体可以由上述解码器的重构模块205执行。
在一些实施例中,第一确定模块1801,用于根据当前网格的参考网格中的参考块patch所包含的网格元素,确定当前网格中第一patch所包含的网格元素。其中,参考patch所包含的网格元素与第一patch所包含的网格元素对应。重构模块1802,用于根据第一patch以及第一patch对应的二维纹理图,重构当前带纹理的网格。例如,结合图9,第一确定模块1801可以用于执行S101-S102,重构模块1802可以用于执行S105。
可选的,第一确定模块1801还用于,获取当前网格中的网格元素与参考网格中的网格元素之间的对应关系。第一确定模块1801在执行根据当前网格的参考网格中的参考patch所包含的网格元素,确定当前网格中第一patch所包含的网格元素时,具体用于:根据当前网格中的网格元素与参考网格中的网格元素之间的对应关系,以及参考patch所包含的网格元素,确定该第一patch所包含的网格元素。例如,结合图12,第一确定模块1801可以用于执行S101-1至S101-7。
可选的,当前网格包括第一网格元素,第一确定模块1801在执行获取当前网格中的网格元素与参考网格中的网格元素之间的对应关系时,具体用于:根据第一网格元素对应的体素立方,确定参考网格中的且与第一网格元素对应的网格元素。
可选的,参考网格和当前网格均是基准网格;第一确定模块1801执行根据第一网格元素对应的体素立方,确定参考网格中的且与第一网格元素对应的网格元素时,具体用于:根据第一网格元素对应的体素立方,在当前网格中获取第一预设范围,在参考网格中获取第二预设范围。其中,第一预设范围是当前网格中的包含“第一网格元素对应的体素立方”的范围,第二预设范围在参考网格中的位置与第一预设范围在当前网格中的位置相同。然后,将候选网格元素集合中的第二网格元素作为与第一网格元素对应的网格元素。其中,候选网格元素集合是第二预设范围内的网格元素构成的集合;第二网格元素是候选网格元素集合中的与目标网格元素之间的距离最近的网格元素,且第二网格元素与目标网格元素之间的距离小于或等于预设距离;目标网格元素在参考网格中的位置与第一网格元素在当前网格中的位置相同。
可选的,第一确定模块1801还用于:当前网格还包括第三网格元素,如果该第三网格元素与参考网格中的每个网格元素均不存在对应关系,则将该第三网格元素作为该当前网格中的第二patch。重构模块1802具体用于:根据第一patch、第一patch对应的二维纹理图、第二patch以及第二patch对应的二维纹理图,重构当前带纹理的网格。例如,结合图9,第一确定模块1801可以用于执行S101和S102。重构模块1802可以执行S105。又如,第一确定模块1801可以用于执行步骤1至步骤5。
可选的,第一确定模块1801,用于根据当前网格的前N帧网格所分成的patch构建优化函数;然后,根据优化函数,对当前网格所分成的patch进行重划分,得到重划分后的patch。其中,优化函数包括以下至少一种约束项:多帧网格所分成的patch的一致性、纹理缝隙的可见程度、patch的易摊平程度、patch的易打包程度以及纹理图的空间利用程度;N≥1,且N是整数;当前网格所分成的patch包括第一patch。可选的,该优化函数也可以包含其中至少两种约束项。重构模块1802具体用于:根据重划分后的patch以及重划分后的patch对应的二维纹理图,重构当前带纹理的网格。例如,结合图14,第一确定模块1801可以用于执行S201至S205。重构模块1802,可以用于执行S206和S207。
可选的,网格译码器180还包括第二确定模块1803,用于:根据第四网格元素的纹理坐标,确定第五网格元素的纹理坐标。其中,第四网格元素是参考patch中的网格元素,第五网格元素是第一patch中的网格元素,第四网格元素与第五网格元素对应。重构模块1802具体用于:根据第一patch、第一patch对应的二维纹理图以及第五网格元素的纹理坐标,重构当前带纹理的网格。例如,结合图9,重构模块1402可以用于执行步骤S104。具体的,当网格译码器180为网格编码器时,该第二确定模块1803所执行的操作可以由上述图4的编码器100中的纹理图生成模块103执行。当网格译码器180为网格解码器时,该第二确定模块1803所执行的操作可以由上述图8的解码器200中的重构模块205执行。
可选的,当前网格和参考网格是不同待译码网格,或者,当前网格和参考网格是不同待译码网格的基准网格。
可选的,当网格译码器180具体是网格编码器时,如图19所示,该网格编码器还可以包括编码模块1804。编码模块1804用于:生成码流,该码流包括第一指示信息,第一指示信息用于指示第一网格元素对应的体素立方。例如,编码模块1804所执行的操作可以由上述图4的编码器100中的辅助信息编码模块105执行。
可选的,该网格译码器180是网格编码器时,编码模块1804用于:生成码流,该码流包括第二指示信息。当当前网格是待编码网格时,该第二指示信息用于指示待编码网格的几何信息;或者,当当前网格是待编码网格的基准网格时,第二指示信息用于指示该待编码网格的基准网格的几何信息和形变场参数。例如,编码模块1804所执行的操作可以由上述图4的编码器100中的几何信息编码模块106执行。
可选的,当网格译码器180具体是网格解码器时,如图20所示,该网格解码器还可以包括解码模块1805。解码模块1805用于:解析码流,以得到第一指示信息,该第一指示信息用于指示第一网格元素所对应的体素立方。第一确定模块1801用于根据该第一指示信息所指示的体素立方,确定参考网格中的且与第一网格元素对应的网格元素。例如,解码模块1805所执行的操作可以由上述图8的解码器200中的辅助信息解码模块204执行。
可选的,该网格译码器180是网格解码器时,解码模块1805用于:解析码流,以得到第二指示信息。其中,当当前网格是待解码网格时,该第二指示信息用于指示待解码网格的几何信息;或者当该当前网格是待解码网格的基准网格时,该第二指示信息用于指示该待解码网格的基准网格的几何信息和形变场参数。重构模块1802具体用于,根据第二指示信息所指示的信息、第一patch以及第一patch对应的二维纹理图,重构当前带纹理的网格。例如,解码模块1805所执行的操作可以由上述图8的解码器200中的几何信息解码模块203执行。
可以理解的,本申请实施例提供的网格译码器180中的各模块为实现上文提供的相应的方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本申请实施例中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见上文中相应方法的介绍,为简洁起见,本文将不再赘述。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)计算机可读存储媒体(例如可以是非暂时性的有形计算机可读存储媒体),或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以执行用于实施本申请中描述的技术的指令、代码。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行用于实施本申请中描述的方法的指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,技术可完全实施于一或多个电路或逻辑元件中。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (26)
1.一种网格译码方法,其特征在于,包括:
根据当前网格的参考网格中的参考块patch所包含的网格元素,确定所述当前网格中第一patch所包含的网格元素;其中,所述参考patch所包含的网格元素与所述第一patch所包含的网格元素对应;
根据所述第一patch以及所述第一patch对应的二维纹理图,重构当前带纹理的网格。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述当前网格中的网格元素与所述参考网格中的网格元素之间的对应关系;
所述根据当前网格的参考网格中的参考patch所包含的网格元素,确定所述当前网格中第一patch所包含的网格元素,包括:
根据所述当前网格中的网格元素与所述参考网格中的网格元素之间的对应关系,以及所述参考patch所包含的网格元素,确定所述第一patch所包含的网格元素。
3.根据权利要求2所述的方法,其特征在于,所述当前网格包括第一网格元素;所述获取所述当前网格中的网格元素与所述参考网格中的网格元素之间的对应关系,包括:
根据所述第一网格元素对应的体素立方,确定所述参考网格中的且与所述第一网格元素对应的网格元素。
4.根据权利要求3所述的方法,其特征在于,所述参考网格和所述当前网格均是基准网格;所述根据所述第一网格元素对应的体素立方,确定所述参考网格中的且与所述第一网格元素对应的网格元素,包括:
根据所述第一网格元素对应的体素立方,在所述当前网格中获取第一预设范围;其中,所述第一预设范围是所述当前网格中的包含所述体素立方的范围;
在所述参考网格中获取第二预设范围;其中,所述第二预设范围在所述参考网格中的位置与所述第一预设范围在所述当前网格中的位置相同;
将候选网格元素集合中的第二网格元素作为与所述第一网格元素对应的网格元素;其中,所述候选网格元素集合是所述第二预设范围内的网格元素构成的集合;所述第二网格元素是所述候选网格元素集合中的与目标网格元素之间的距离最近的网格元素,且所述第二网格元素与所述目标网格元素之间的距离小于或等于预设距离;所述目标网格元素在所述参考网格中的位置与所述第一网格元素在所述当前网格中的位置相同。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述当前网格包括第三网格元素,所述方法还包括:
如果所述第三网格元素与所述参考网格中的每个网格元素均不存在对应关系,则将所述第三网格元素作为所述当前网格中的第二patch;
所述根据所述第一patch以及所述第一patch对应的二维纹理图,重构带纹理的所述当前网格,包括:
根据所述第一patch、所述第一patch对应的二维纹理图、所述第二patch以及所述第二patch对应的二维纹理图,重构带纹理的所述当前网格。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
根据所述当前网格的前N帧网格所分成的patch构建优化函数;其中,所述优化函数包括以下至少一种约束项:多帧网格所分成的patch的一致性、纹理缝隙的可见程度、patch的易摊平程度、patch的易打包程度以及纹理图的空间利用程度;N≥1,所述N是整数;
根据所述优化函数,对所述当前网格所分成的patch进行重划分,得到重划分后的patch;其中,所述当前网格所分成的patch包括所述第一patch;
所述根据所述第一patch以及所述第一patch对应的二维纹理图,重构带纹理的所述当前网格,包括:
根据所述重划分后的patch以及所述重划分后的patch对应的二维纹理图,重构带纹理的所述当前网格。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
根据第四网格元素的纹理坐标,确定第五网格元素的纹理坐标;其中,所述第四网格元素是所述参考patch中的网格元素,所述第五网格元素是所述第一patch中的网格元素,所述第四网格元素与所述第五网格元素对应;
所述根据所述第一patch以及所述第一patch对应的二维纹理图,重构带纹理的所述当前网格,包括:
根据所述第一patch、所述第一patch对应的二维纹理图以及所述第五网格元素的纹理坐标,重构带纹理的所述当前网格。
8.根据权利要求1至7中任一项所述的方法,其特征在于,
所述当前网格和所述参考网格是不同待译码网格;
或者,所述当前网格和所述参考网格是不同待译码网格的基准网格。
9.根据权利要求3或4所述的方法,其特征在于,所述译码方法是编码方法,所述方法还包括:
生成码流,所述码流包括第一指示信息,所述第一指示信息用于指示所述第一网格元素对应的体素立方。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述网格译码方法是网格编码方法;所述方法还包括:
生成码流,所述码流包括第二指示信息;当所述当前网格是待编码网格时,所述第二指示信息用于指示所述待编码网格的几何信息;或者,当所述当前网格是待编码网格的基准网格时,所述第二指示信息用于指示所述待编码网格的基准网格的几何信息和形变场参数。
11.根据权利要求3或4所述的方法,其特征在于,所述网格译码方法是网格解码方法,所述方法还包括:
解析码流,以得到第一指示信息;所述第一指示信息用于指示所述第一网格元素所对应的体素立方;
所述根据所述第一网格元素对应的体素立方,确定所述参考网格中的且与所述第一网格元素对应的网格元素,包括:
根据所述第一指示信息所指示的体素立方,确定所述参考网格中的且与所述第一网格元素对应的网格元素。
12.根据权利要求1至9中任一项所述的方法,其特征在于,所述网格译码方法是网格解码方法,所述方法还包括:
解析码流,以得到第二指示信息;其中,当所述当前网格是待解码网格时,所述第二指示信息用于指示所述待解码网格的几何信息;或者当所述当前网格是待解码网格的基准网格时,所述第二指示信息用于指示所述待解码网格的基准网格的几何信息和形变场参数;
所述根据所述第一patch以及所述第一patch对应的二维纹理图,重构带纹理的所述当前网格,包括:
根据所述第二指示信息所指示的信息、所述第一patch以及所述第一patch对应的二维纹理图,重构带纹理的所述当前网格。
13.一种网格译码器,其特征在于,包括:
第一确定模块:用于根据当前网格的参考网格中的参考块patch所包含的网格元素,确定所述当前网格中第一patch所包含的网格元素;其中,所述参考patch所包含的网格元素与所述第一patch所包含的网格元素对应;
重构模块:用于根据所述第一patch以及所述第一patch对应的二维纹理图,重构带纹理的所述当前网格。
14.根据权利要求13所述的网格译码器,其特征在于,
所述第一确定模块还用于:获取所述当前网格中的网格元素与所述参考网格中的网格元素之间的对应关系;
所述第一确定模块在执行所述根据当前网格的参考网格中的参考patch所包含的网格元素,确定所述当前网格中第一patch所包含的网格元素时,具体用于:根据所述当前网格中的网格元素与所述参考网格中的网格元素之间的对应关系,以及所述参考patch所包含的网格元素,确定所述第一patch所包含的网格元素。
15.根据权利要求14所述的网格译码器,其特征在于,所述当前网格包括第一网格元素;
所述第一确定模块在执行获取所述当前网格中的网格元素与所述参考网格中的网格元素之间的对应关系时,具体用于:根据所述第一网格元素对应的体素立方,确定所述参考网格中的且与所述第一网格元素对应的网格元素。
16.根据权利要求15所述的网格译码器,其特征在于,所述参考网格和所述当前网格均是基准网格;所述第一确定模块执行所述根据所述第一网格元素对应的体素立方,确定所述参考网格中的且与所述第一网格元素对应的网格元素时,具体用于:
根据所述第一网格元素对应的体素立方,在所述当前网格中获取第一预设范围;其中,所述第一预设范围是所述当前网格中的包含所述体素立方的范围;
在所述参考网格中获取第二预设范围;其中,所述第二预设范围在所述参考网格中的位置与所述第一预设范围在所述当前网格中的位置相同;
将候选网格元素集合中的第二网格元素作为与所述第一网格元素对应的网格元素;其中,所述候选网格元素集合是所述第二预设范围内的网格元素构成的集合;所述第二网格元素是所述候选网格元素集合中的与目标网格元素之间的距离最近的网格元素,且所述第二网格元素与所述目标网格元素之间的距离小于或等于预设距离;所述目标网格元素在所述参考网格中的位置与所述第一网格元素在所述当前网格中的位置相同。
17.根据权利要求14至16中任一项所述的网格译码器,其特征在于,所述当前网格包括第三网格元素,所述第一确定模块还用于:如果所述第三网格元素与所述参考网格中的每个网格元素均不存在对应关系,则将所述第三网格元素作为所述当前网格中的第二patch;
所述重构模块具体用于:根据所述第一patch、所述第一patch对应的二维纹理图、所述第二patch以及所述第二patch对应的二维纹理图,重构带纹理的所述当前网格。
18.根据权利要求13至17中任一项所述的网格译码器,其特征在于,
所述第一确定模块还用于:根据所述当前网格的前N帧网格所分成的patch构建优化函数;其中,所述优化函数包括以下至少一种约束项:多帧网格所分成的patch的一致性、纹理缝隙的可见程度、patch的易摊平程度、patch的易打包程度以及纹理图的空间利用程度;N≥1,所述N是整数;根据所述优化函数,对所述当前网格所分成的patch进行重划分,得到重划分后的patch;其中,所述当前网格所分成的patch包括所述第一patch;
所述重构模块具体用于:根据所述重划分后的patch以及所述重划分后的patch对应的二维纹理图,重构带纹理的所述当前网格。
19.根据权利要求13至18中任一项所述的网格译码器,其特征在于,所述网格译码器还包括:
第二确定模块:用于根据第四网格元素的纹理坐标,确定第五网格元素的纹理坐标;其中,所述第四网格元素是所述参考patch中的网格元素,所述第五网格元素是所述第一patch中的网格元素,所述第四网格元素与所述第五网格元素对应;
所述重构模块具体用于:根据所述第一patch、所述第一patch对应的二维纹理图以及所述第五网格元素的纹理坐标,重构带纹理的所述当前网格。
20.根据权利要求13至19中任一项所述的网格译码器,其特征在于,
所述当前网格和所述参考网格是不同待译码网格;
或者,所述当前网格和所述参考网格是不同待译码网格的基准网格。
21.根据权利要求15或16所述的网格译码器,其特征在于,所述网格译码器是网格编码器,所述网格编码器还包括:
编码模块:用于生成码流,所述码流包括第一指示信息,所述第一指示信息用于指示所述第一网格元素对应的体素立方。
22.根据权利要求13至21中任一项所述的网格译码器,其特征在于,所述网格译码器是网格编码器,所述网格编码器还包括:
编码模块:用于生成码流,所述码流包括第二指示信息;当所述当前网格是待编码网格时,所述第二指示信息用于指示所述待编码网格的几何信息;或者,当所述当前网格是待编码网格的基准网格时,所述第二指示信息用于指示所述待编码网格的基准网格的几何信息和形变场参数。
23.根据权利要求15或16所述的网格译码器,其特征在于,所述网格译码器是网格解码器,所述网格解码器还包括:
解码模块:用于解析码流,以得到第一指示信息;所述第一指示信息用于指示所述第一网格元素所对应的体素立方;
所述第一确定模块具体用于:根据所述第一指示信息所指示的体素立方,确定所述参考网格中的且与所述第一网格元素对应的网格元素。
24.根据权利要求13至21中任一项所述的网格译码器,其特征在于,所述网格译码器是网格解码器,所述网格解码器还包括:
解码模块:用于解析码流,以得到第二指示信息;其中,当所述当前网格是待解码网格时,所述第二指示信息用于指示所述待解码网格的几何信息;或者当所述当前网格是待解码网格的基准网格时,所述第二指示信息用于指示所述待解码网格的基准网格的几何信息和形变场参数;
所述重构模块具体用于:根据所述第二指示信息所指示的信息、所述第一patch以及所述第一patch对应的二维纹理图,重构带纹理的所述当前网格。
25.一种网格译码装置,其特征在于,包括存储器和处理器;所述存储器用于存储程序代码;所述处理器用于调用所述程序代码,以执行如权利要求1至12中任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910473513.7A CN112017292A (zh) | 2019-05-31 | 2019-05-31 | 网格译码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910473513.7A CN112017292A (zh) | 2019-05-31 | 2019-05-31 | 网格译码方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112017292A true CN112017292A (zh) | 2020-12-01 |
Family
ID=73506391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910473513.7A Pending CN112017292A (zh) | 2019-05-31 | 2019-05-31 | 网格译码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112017292A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626509A (zh) * | 2009-08-10 | 2010-01-13 | 北京工业大学 | 三维网格编码、解码方法及编码、解码装置 |
CN103927746A (zh) * | 2014-04-03 | 2014-07-16 | 北京工业大学 | 一种三维网格序列的配准及压缩方法 |
CN105469448A (zh) * | 2014-09-11 | 2016-04-06 | 上海华博信息服务有限公司 | 一种异形幕影片制作方法 |
US20170293817A1 (en) * | 2016-04-08 | 2017-10-12 | Intelligent Security Systems Corporation | Systems and methods for recognizing symbols in images |
CN109118588A (zh) * | 2018-09-25 | 2019-01-01 | 武汉大势智慧科技有限公司 | 一种基于块分解的彩色lod模型自动生成方法 |
-
2019
- 2019-05-31 CN CN201910473513.7A patent/CN112017292A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626509A (zh) * | 2009-08-10 | 2010-01-13 | 北京工业大学 | 三维网格编码、解码方法及编码、解码装置 |
CN103927746A (zh) * | 2014-04-03 | 2014-07-16 | 北京工业大学 | 一种三维网格序列的配准及压缩方法 |
CN105469448A (zh) * | 2014-09-11 | 2016-04-06 | 上海华博信息服务有限公司 | 一种异形幕影片制作方法 |
US20170293817A1 (en) * | 2016-04-08 | 2017-10-12 | Intelligent Security Systems Corporation | Systems and methods for recognizing symbols in images |
CN109118588A (zh) * | 2018-09-25 | 2019-01-01 | 武汉大势智慧科技有限公司 | 一种基于块分解的彩色lod模型自动生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210029381A1 (en) | Method and apparatus for obtaining global matched patch | |
US11132818B2 (en) | Predicting attributes for point cloud compression according to a space filling curve | |
US11450031B2 (en) | Significant coefficient flag encoding for point cloud attribute compression | |
US11895307B2 (en) | Block-based predictive coding for point cloud compression | |
US11538196B2 (en) | Predictive coding for point cloud compression | |
US11454710B2 (en) | Point cloud compression using a space filling curve for level of detail generation | |
JP7263521B2 (ja) | インターフレーム点群属性符号化のための方法並びにその、装置およびコンピュータプログラム | |
KR20200039757A (ko) | 포인트 클라우드 압축 | |
US11388442B2 (en) | Point cloud encoding method, point cloud decoding method, encoder, and decoder | |
CN111435551B (zh) | 点云滤波方法、装置及存储介质 | |
CN110944187B (zh) | 点云编码方法和编码器 | |
US12058370B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
CN113544747B (zh) | 用于点云编解码的几何合并模式的方法和装置 | |
KR20220127837A (ko) | Haar 기반 포인트 클라우드 코딩을 위한 방법 및 장치 | |
US11418769B1 (en) | Viewport adaptive volumetric content streaming and/or rendering | |
CN114598883A (zh) | 点云属性的预测方法、编码器、解码器及存储介质 | |
CN111327897B (zh) | 点云编码方法和编码器 | |
JP2024515737A (ja) | 動的メッシュアライメントへの並列アプローチ | |
CN112017292A (zh) | 网格译码方法和装置 | |
WO2023173238A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2023023914A1 (zh) | 帧内预测、编解码方法及装置、编解码器、设备、介质 | |
WO2022257150A1 (zh) | 点云编解码方法、装置、点云编解码器及存储介质 | |
WO2023173237A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2023024842A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2022257143A1 (zh) | 帧内预测、编解码方法及装置、编解码器、设备、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |