[go: up one dir, main page]

CN121239854A - 编码方法、解码方法、装置及电子设备 - Google Patents

编码方法、解码方法、装置及电子设备

Info

Publication number
CN121239854A
CN121239854A CN202410862743.3A CN202410862743A CN121239854A CN 121239854 A CN121239854 A CN 121239854A CN 202410862743 A CN202410862743 A CN 202410862743A CN 121239854 A CN121239854 A CN 121239854A
Authority
CN
China
Prior art keywords
vertex
grid
sub
merging
information
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
Application number
CN202410862743.3A
Other languages
English (en)
Inventor
邹文杰
黄海迪
张伟
杨付正
吕卓逸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN202410862743.3A priority Critical patent/CN121239854A/zh
Priority to PCT/CN2025/103811 priority patent/WO2026002113A1/zh
Publication of CN121239854A publication Critical patent/CN121239854A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)

Abstract

本申请公开了一种编码方法、解码方法、装置及电子设备,属于编解码技术领域,本申请实施例的方法包括编码端对三维网格的多个子网格进行编码,获取第一码流;所述编码端对所述第一码流进行解码,获取多个重建子网格;所述编码端根据所述多个重建子网格和所述三维网格获取目标合并信息,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;所述编码端对所述目标合并信息进行编码,获取第二码流;所述编码端基于所述第一码流和所述第二码流,生成目标码流。

Description

编码方法、解码方法、装置及电子设备
技术领域
本申请涉及编解码技术领域,并且更具体地,涉及一种编码方法、解码方法、装置及电子设备。
背景技术
近年来,随着多媒体技术的迅速发展,相关研究成果迅速产业化,并成为人们生活中不可或缺的重要组成部分。三维模型成为继音频、图像、视频之后的新一代数字化媒体。三维网格是一种常用的三维模型表示方式。三维网格模型与传统的图像、视频等多媒体相比具有更强的交互性和逼真性的特点,使其在商业、制造业、建筑业、教育、医学、娱乐、艺术、军事等各个领域都得到了越来越广泛的应用。
随着人们对三维网格模型在视觉效果上越来越高的需求,三维网格模型的数据规模和复杂度也在急剧地增长,对三维网格数据进行高效压缩成为实现三维网格数据方便地传输、存储和处理的关键。例如编码端将三维网格划分为多个子网格,对每个子网格进行简化以及量化等操作,这些操作能降低码流大小,但同时也降低了解码端对于三维网格的恢复性能。因此,如何保证解码网格的恢复性能是一项亟需解决的问题。
发明内容
本申请实施例提供一种编码方法、解码方法、装置及电子设备,能够提升解码网格的恢复性能。
第一方面,提供了一种编码方法,由编码端执行,该方法包括:
编码端对三维网格的多个子网格进行编码,获取第一码流;
所述编码端对所述第一码流进行解码,获取多个重建子网格;
所述编码端根据所述多个重建子网格和所述三维网格获取目标合并信息,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
所述编码端对所述目标合并信息进行编码,获取第二码流;
所述编码端基于所述第一码流和所述第二码流,生成目标码流。
第二方面,提供了一种解码方法,由解码端执行,该方法包括:
解码端获取三维网格对应的目标码流,其中,所述三维网格包括多个子网格;
所述解码端对所述目标码流进行解码,获取多个重建子网格和目标合并信息,其中,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
所述解码端根据所述目标合并信息,对所述多个重建子网格进行合并处理。
第三方面,提供了一种编码装置,包括:
第一编码模块,用于对三维网格的多个子网格进行编码,获取第一码流;
解码模块,用于所述编码端对所述第一码流进行解码,获取多个重建子网格;
获取模块,用于根据所述多个重建子网格和所述三维网格获取目标合并信息,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
第二编码模块,用于对所述目标合并信息进行编码,获取第二码流;
生成模块,用于基于所述第一码流和所述第二码流,生成目标码流。
第四方面,提供了一种解码装置,包括:
获取模块,用于获取三维网格对应的目标码流,其中,所述三维网格包括多个子网格;
解码模块,用于对所述目标码流进行解码,获取多个重建子网格和目标合并信息,其中,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
合并处理模块,用于根据所述目标合并信息,对所述多个重建子网格进行合并处理。
第五方面,提供了一种电子设备,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的编码方法的步骤。
第六方面,提供了一种电子设备,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第二方面所述的解码方法的步骤。
第七方面,提供了一种电子设备,包括:存储器,被配置为存储三维网格数据,以及处理电路,被配置为实现如第一方面所述的编码方法的步骤,或者实现如第二方面所述的解码方法的步骤。
第八方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤。
第九方面,提供了一种编解码系统,包括:编码端设备及解码端设备,所述编码端设备可用于执行如第一方面所述的方法的步骤,所述解码端设备可用于执行如第二方面所述的方法的步骤。
第十方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法的步骤,或实现如第二方面所述的方法的步骤。
第十一方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述程序/程序产品被至少一个处理器执行以实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤。
在本申请实施例中,编码端可以对原始网格中的多个子网格进行编码得到第一码流,基于第一码流进行网格重建,得到多个重建子网格,然后基于多个重建子网格和原始网格获取目标合并信息,并对该目标合并信息进行编码,获取第二码流,基于第一码流和第二码流生成目标码流后发送给解码端,从而解码端可以通过对目标码流进行解码获取该多个重建子网格和该目标合并信息,然后基于该目标合并信息对该多个重建子网格进行合并处理,有利于提升解码网格的恢复性能。
附图说明
图1-图4是对原始三维网格进行划分得到多个子网格的示意图。
图5是本申请实施例提供的一种编码方法的示意性图。
图6是本申请实施例提供的一种编码框架的示意性图。
图7是本申请实施例提供的一种子网格合并过程的示意图。
图8是本申请实施例提供的一种子网格合并流程的示意图。
图9是本申请实施例提供的一种解码方法的示意性图。
图10是本申请实施例提供的一种解码框架的示意性图。
图11是本申请实施例提供的一种子网格合并流程的示意图。
图12是根据本申请实施例提供的一种编码装置的示意性框图。
图13是根据本申请实施例提供的一种解码装置的示意性框图。
图14是根据本申请实施例提供的一种电子设备的示意性框图。
图15是根据本申请实施例提供的一种终端的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,本申请中的“或”表示所连接对象的至少其中之一。例如“A或B”涵盖三种方案,即,方案一:包括A且不包括B;方案二:包括B且不包括A;方案三:既包括A又包括B。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例中的编码端、编码装置以及解码端和解码装置可以为终端,该终端也可以称作终端设备或用户终端(User Equipment,UE),终端可以是手机、平板电脑、膝上型电脑(Laptop Computer)或称为笔记本电脑、个人数字助理(Personal DigitalAssistant,PDA)、掌上电脑、上网本、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、移动上网装置(Mobile Internet Device,MID)、增强现实
(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴式设备(Wearable Device)或车载设备(VUE)、行人终端(PUE)、智能家居(具有无线通信功能的家居设备,如冰箱、电视、洗衣机或者家具等)、游戏机、个人计算机(personalcomputer,PC)、柜员机或者自助机等终端侧设备,可穿戴式设备包括:智能手表、智能手环、智能耳机、智能眼镜、智能首饰(智能手镯、智能手链、智能戒指、智能项链、智能脚镯、智能脚链等)、智能腕带、智能服装等。需要说明的是,在本申请实施例并不限定终端的具体类型。
为便于理解本申请实施例,对本申请相关的三维网格技术进行说明。
近年来,随着多媒体技术的迅速发展,相关研究成果迅速产业化,并成为人们生活中不可或缺的重要组成部分。三维模型成为继音频、图像、视频之后的新一代数字化媒体。三维网格和点云是两种常用的三维模型表示方式。三维网格模型与传统的图像、视频等多媒体相比具有更强的交互性和逼真性的特点,使其在商业、制造业、建筑业、教育、医学、娱乐、艺术、军事等各个领域都得到了越来越广泛的应用。
而随着人们对三维网格模型在视觉效果上越来越高的需求,以及许多更加成熟的三维扫描技术和三维建模软件的涌现,通过三维扫描设备或三维建模软件获取的三维网格模型的数据规模和复杂度也急剧地增长。因此,如何高效压缩三维网格数据是实现三维网格数据方便地传输、存储和处理的关键。
三维网格包含拓扑信息、几何信息及属性信息三种主要信息。其中,拓扑信息,也叫做连接关系信息(或称连接信息),用于描述网格中顶点和面片等元素之间的连接关系;几何信息包括网格中所有顶点的三维坐标;属性信息记录了附着在网格上的其它信息,比如法向量、纹理坐标以及颜色等。对三维网格数据的压缩往往就是针对这三种信息分别按照其数据特性进行压缩。另外,对于带有纹理图的三维网格,还需要对纹理图进行压缩。
视频图像邻域的国际标准组织(Moving Picture Experts Group,MPEG)正在制定新的动态三维网格压缩标准,例如基于视频的动态三维网格压缩(Video-based DynamicMesh Compression,V-DMC),并采纳了基于Edgebreaker的三维网格编解码方案,以实现对三维网格几何信息、连接信息以及属性信息的压缩。同时,该标准还采纳了子网格(submesh)的概念,允许输入的三维网格被划分为多个子网格且各子网格能独立进行编解码。例如,在编码前使用基于bounding box的划分方案对输入的三维网格进行划分得到划分后的子网格。然后对各个子网格采用基于Edgebreaker的方法将三维网格的连接信息、几何信息和属性信息分别进行独立编码并进行存储。其中,可以使用Edgebreaker算法编码连接信息。对几何信息和属性信息中的如纹理坐标的编码则可以采用常规的压缩方法,即对数据进行量化、预测压缩(平行四边形预测)和熵编码。由于该工具采用了连接关系驱动的编码方法,对几何信息和属性信息的编码将遵循连接信息的编码顺序。在解码端,解码完各子网格后,直接将各子网格的信息添加到一个新的网格中,得到最终的解码网格。
对于目前的V-DMC的实现方案,在无损模式下,对于包含多个子网格的三维网格编解码,在解码端进行子网格合并时,直接将各重建子网格直接添加进一个新的网格而得到的最终的解码网格,并没有删除被重复划分的相邻子网格的边界点,因此,降低了解码网格的恢复性能。
以图1为例,原始网格包括三个独立的部分,原始网格划分为子网格0~子网格5,子网格中的加粗部分代表子网格间被重复划分的信息,也即,重建子网格时需要合并重复信息的部分。对于需要合并重复信息的子网格,如图2中的子网格0、子网格1和子网格2,以及子网格4和子网格5,在编码时可以编码子网格合并时所需的合并信息,例如哪个子网格需要进行重复信息的合并,子网格需要和哪个子网格进行重复信息的合并等。
对于需要合并重复信息的子网格,以几何信息为例,可以通过判断子网格间是否具有相同的几何坐标获取边界顶点信息。但边界顶点不一定是被重复划分的顶点,以图2为例,原始网格中具有相同几何坐标但不同顶点索引的重复顶点对4和4’分别被划分到子网格0中的0点和子网格1中的4点,对于子网格0中的0点和子网格1中的4点,其分别为子网格0和子网格1中具有相同几何坐标的边界顶点,但其不是被重复划分的顶点。因此,可以通过编码指示边界顶点是否为被重复划分的顶点的标识信息来区分边界顶点是否为被重复划分的顶点。
在一些情况中,还需要考虑一些特殊情况,例如原始网格中的重复顶点存在于子网格边界上的情况。以图3和图4为例。以几何信息为例,图3和图4所示的原始网格中的0点和0’点、图3和图4中子网格0中的0点和0’点以及图3中子网格1中的2点和2’点分别是具有相同几何坐标但不同顶点索引的重复顶点对,子网格中的加粗标注是原始网格中被重复划分的信息,图4中的虚线标注的是在子网格合并时需要保留的存在于子网格边界上的原始网格中的重复信息。在分别对子网格1和子网格2进行独立的无损编解码后,需要在解码端对重建的子网格0和重建的子网格1进行合并操作,合并子网格0和子网格1中的重复信息。此时,需要判断边界顶点是被重复划分的需要合并的顶点(如图3中的子网格0的0’点或子网格1中的2’点),还是未被重复划分的需要保留的顶点(如图4中的子网格0中的0’点)。而对于被重复划分的非重复顶点,可以直接通过子网格间的具有相同几何坐标的顶点来判断对应关系;而对于被重复划分的重复顶点,则需要进行单独判断。因此,可以通过编码被重复划分的顶点是否为原始网格中的重复顶点的标识信息来区分重复顶点的情况,同时,对于边界上被重复划分的重复顶点,还可以编码在需要与其进行合并的子网格中的对应顶点信息,例如目标顶点索引。
因此,本申请实施例提供了一种编解码方案,编码端可以获取重建子网格中的合并信息,并将该合并信息编码为码流发送给解码端,从而解码端可以解码码流获取该合并信息,进而根据该合并信息对重建子网格进行合并处理,从而能够恢复出高质量的解码网格。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的编码方法和编码方法进行说明。其中,该编码方法可以由编码端执行,解码方法可以由解码端执行,其中,编码端和解码端可以由软件、硬件或其组合实现,当其由硬件实现时,编码端可以被称为编码端设备,解码端可以被称为解码端设备。
图5是本申请实施例提供的一种编码方法的示意性流程图,如图5所示,该编码方法100包括如下至少部分步骤:
S101,编码端对三维网格的多个子网格进行编码,获取第一码流;
应理解,本申请并不限定该三维网格的来源,例如可以来自三维扫描设备,或者,也可以来自三维建模软件等。可选的,该三维网格可以是视频帧对应的三维网格。
在本申请实施例中,三维网格或称原始网格,或者原始三维网格。
在一些实施例中,所述方法100还包括:
编码端对三维网格进行子网格划分,得到多个子网格。
例如,在对三维网格进行编码之前,编码端首先将三维网格划分为多个子网格,然后对该多个子网格分别进行编码,获取第一码流,其中,第一码流或称子网格码流。
需要说明的是,本申请并不限定子网格的划分方式,例如可以使用基于包围盒(bounding box)的划分方式、基于八叉树(Octree)的划分方式、基于K-D树的划分方式等。以下,以基于bounding box的子网格划分方式为例,说明子网格划分的具体实现。
在一些实施例中,所述三维网格包括拓扑信息、几何信息和属性信息。可选的,所述三维网格还可以包括纹理图。其中,该拓扑信息或称连接关系信息,连接信息,该拓扑信息用于描述三维网格中的点、线、面的布局、结构以及连接关系。几何信息用于描述三维网格中的各元素的位置、形状和大小等属性,例如几何信息可以包括三维网格中的所有顶点的三维坐标,边的长度和方向、面的形状和大小等。属性信息用于描述附着在三维网格上的其他信息,例如法向量、纹理坐标、颜色信息材料信息等。
在一些实施例中,所述编码端对三维网格进行子网格划分,得到多个子网格,包括:
根据所述三维网格的几何坐标,获取所述三维网格所在的三维空间中的boundingbox范围;
基于所述bounding box范围在特定轴(例如x轴或y轴或z轴)的坐标范围划分得到多个子网格的bounding box范围,例如将该坐标范围等分得到多个子网格的bounding box范围,可选的,等分数量可以是预先设置的,或者,根据输入所要求的的子网格个数确定;
根据每个子网格的bounding box范围,遍历所述三维网格中的所有面,将满足该bounding box范围的顶点以面为单位划分到对应的子网格中,遍历完每个子网格的bounding box范围之后,可以得到划分后的多个子网格。
在一些实施例中,所述编码端对三维网格的多个子网格进行编码,获取第一码流,包括:
所述编码端对三维网格的每个子网格中的连接信息进行编码,得到连接信息码流;
所述编码端对三维网格的每个子网格中的几何信息进行编码,得到几何信息码流;
所述编码端对三维网格的每个子网格中的属性信息进行编码,得到属性信息码流;
对所述连接信息码流、几何信息码流和属性信息码流进行混流,获取第一码流。
应理解,本申请实施例对于编码端对子网格的编码方法不作具体限定。例如编码端可以采用基于EdgeBreaker的编码方法,或者,基于八叉树的编码方法,基于四叉树的编码方法,基于特征的编码方法等。以下以基于EdgeBreaker的编码方法为例,说明子网格的编码方法。
在一些实施例中,所述编码端对三维网格的多个子网格进行编码,获取第一码流,包括:
所述编码端对所述多个子网格中的非流形结构进行拆分,得到流形结构;
然后对所述流形网格进行连接信息、几何信息和属性信息的编码,得到连接信息码流、几何信息码流和属性信息码流;
对连接信息码流、几何信息码流和属性信息码流进行混流,获取第一码流。
可选的,针对连接信息编码,编码端可以采用Edgebreaker的编码方法,本申请对于具体的编码算法不作限定。例如通过建立CornerTable来表示三维网格的连接关系,并利用CornerTable遍历三维网格中的所有三角形,生成Edgebreaker的CLERS模式字符串。然后可以使用熵编码的方式对CLERS模式字符串进行编码,得到连接信息码流。
可选的,针对几何信息编码,编码端可以采用常规的编码算法,例如差值预测编码算法、平行四边形预测编码算法等,例如编码端可以按照连接信息的编码顺序采用例如差值预测编码算法、平行四边形预测编码算法等多种编码算法对几何信息进行编码,得到几何信息码流,本申请对于具体的编码算法不作限定。
可选的,三维网格的属性信息一般包括纹理坐标、法向量等,以纹理坐标为例。针对纹理坐标,编码端可以采用常规的编码算法,例如差值预测编码算法、平行四边形预测编码算法、相似三角形预测编码算法等,例如编码端可以按照连接信息的编码顺序采用例如差值预测编码算法、平行四边形预测编码算法以及相似三角形预测编码算法等多种编码算法对属性信息进行编码,得到属性信息码流,本申请对于具体的编码算法不作限定。
S102,所述编码端对所述第一码流进行解码,获取多个重建子网格。
其中,编码端对第一码流进行解码所采用的解码方法和编码端获取第一码流所采用的编码方法相互对应,该编码端对第一码流进行解码和解码端对第一码流进行解码所采用的解码方式相同,具体的解码方式在解码端进行详细说明。
S103,所述编码端根据所述多个重建子网格和所述三维网格获取目标合并信息,所述目标合并信息包括所述多个重建子网格对应的子网格相关合并信息和顶点相关合并信息中的至少一项。
S104,所述编码端对所述目标合并信息进行编码,获取第二码流。
S105,所述编码端基于所述第一码流和所述第二码流,生成目标码流。
需要说明的是,编码端利用第一码流进行网格重建,然后基于重建子网格获取目标合并信息,能够保证获取的合并信息的准确性,进而保证解码端获取的合并信息的准确性,保证解码网格的重建质量。
在一些实施例中,合并信息也可以称为重复信息,即划分子网格时被重复划分的信息,或者说,被划分到至少两个子网格中的信息。
在一些实施例中,所述子网格相关合并信息用于指示所述多个重建子网格中的目标子网格和/或与所述目标子网格进行合并的合并子网格,所述目标子网格是所述多个重建子网格中需要合并的子网格。
在一些实施例中,所述子网格相关合并信息包括以下至少一项:
所述多个重建子网格中的每个重建子网格对应的第一指示信息,用于指示所述重建子网格是否为目标子网格,所述目标子网格为需要合并的重建子网格;
所述目标子网格对应的第二指示信息,用于指示需要与所述目标子网格进行合并的合并子网格。
可选的,编码端可以采用二进制表示第一指示信息,例如,可以采用1比特指示,该1比特设置为0表示该重建子网格不需要与其他重建子网格进行合并,换言之,不需要对该重建子网格执行合并重复信息操作,设置为1表示重建子网格需要与其他重建子网格进行合并,换言之,需要对该重建子网格执行合并重复信息操作。
应理解,本申请对于第一指示信息的编码方式不作限定,作为示例而非限定,可以采用1比特定长编码方式对第一指示信息进行编码。
可选的,第二指示信息可以用于指示与目标子网格进行合并的合并子网格对应的子网格索引,可选的,第二指示信息所占的比特数可以根据子网格的最大索引值所占的比特数确定,例如,最大索引值为8,第二指示信息可以占3比特,又例如,最大索引值为10,第二指示信息可以占4比特等。
应理解,本申请对于第二指示信息的编码不作限定,例如,可以根据子网格的最大索引值采用定长编码的方式进行编码,或者,也可以采用可变字节数的8比特组无符号整数编码方式,或者,也可以使用差值编码的方式,本申请并不限于此。以差值编码方式为例,可以将第一个目标子网格对应的第二指示信息所指示的索引值编码进码流,其他目标子网格对应的第二指示信息所指示的索引值均采用编码该索引值和一个索引值(例如第一个索引值,或上一个索引值)的差值的方式。
以图1所示场景为例,需要合并的子网格包括子网格0、子网格1和子网格2,以及子网格4和子网格5,因此,这几个子网格对应的第一指示信息可以设置为1,表示该子网格是需要合并的目标子网格,子网格3对应的第一指示信息可以设置为0,表示子网格3是不需要合并的子网格。与子网格0进行合并的子网格包括子网格1和子网格2,因此,子网格0对应的第二指示信息可以指示子网格1和子网格2对应的网格索引。与子网格1合并的子网格包括子网格0和子网格2,因此,子网格1对应的第二指示信息可以指示子网格0和子网格2对应的网格索引。与子网格2合并的子网格包括子网格0和子网格1,因此,子网格2对应的第二指示信息可以指示子网格0和子网格1对应的网格索引。与子网格4合并的子网格包括子网格5,因此,子网格4对应的第二指示信息可以指示子网格5对应的网格索引。与子网格5合并的子网格包括子网格4,因此,子网格5对应的第二指示信息可以指示子网格4对应的网格索引。
在一些实施例中,所述顶点相关合并信息用于指示重建子网格中需要合并的目标顶点和/或所述目标顶点对应的合并顶点。即,需要对哪些顶点执行合并重复信息操作,这些需要执行合并重复信息操作的顶点与哪些顶点进行合并。
在一些实施例中,所述目标合并信息包括至少一个重建子网格对应的顶点相关合并信息,其中,所述至少一个重建子网格包括所述多个重建子网格中除第一重建子网格之外的重建子网格,所述第一重建子网格是作为初始合并网格的子网格;或者,所述至少一个重建子网格包括所述多个重建子网格中需要合并的重建子网格。
可选的,所述顶点相关合并信息包括以下至少一项:
重建子网格中的边界顶点的数量;
重建子网格中的边界顶点对应的第一标识,用于标识所述边界顶点是否为所述三维网格中的第一类顶点,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点;
重建子网格中的第一类顶点的数量;
对所述边界顶点对应的第一标识进行编码得到的编码序列的字节大小;
重建子网格中的第一类顶点对应的第二标识,用于标识所述第一类顶点是否为所述三维网格中的第二类顶点,其中,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
对所述第一类顶点对应的第二标识进行编码得到的编码序列的字节大小;
重建子网格中的特定顶点对应的目标顶点索引,所述目标顶点索引用于指示与所述特定顶点在合并网格中进行合并的合并顶点对应的顶点索引,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点;
重建子网格中的特定顶点的数量,其中,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点;
重建子网格中的顶点信息中被划分的属性信息的数量。
在一些实施例中,所述顶点相关合并信息可以包括针对几何信息的顶点相关合并信息,可选的,还包括针对至少一个属性信息的顶点相关合并信息,或者,也可以包括一组顶点相关合并信息,不区分几何信息和属性信息。
可选的,几何信息可以包括但不限于几何坐标,所述至少一个属性信息可以包括但不限于纹理坐标、法向量等。以下以几何信息为几何坐标为例进行说明,但本申请并不限于此。
在本申请实施例中,第一类顶点或称被重复划分的顶点,即被划分到至少两个子网格中的顶点,第二类顶点或称重复顶点,若存在至少两个顶点的顶点信息相同,则该至少两个顶点认为是重复顶点,第一标识或称重复划分标识,第二标识或称重复顶点标识,上述名称仅为示例,本申请对上述命名不作限定。
可选的,第一标识可以采用1比特标识,该1比特的不同取值用于指示边界顶点是否为第一类顶点,例如取值为1表示是第一类顶点,取值为0表示不是第一类顶点。
可选的,第二标识可以采用1比特标识,该1比特的不同取值用于指示第一类顶点是否为第二类顶点,例如取值为1表示是第二类顶点,取值为0表示不是第二类顶点。
结合图2至图4中的顶点的具体示例,说明顶点相关合并信息的具体实现。
例如,图2中子网格0中的顶点1和子网格1中的顶点5是被重复划分的边界顶点,因此,顶点1和顶点5对应的第一标识可以设置为1;子网格0中的顶点0和子网格1中的顶点4是边界顶点,且是重复顶点但不是被重复划分的顶点,因此顶点0和顶点4对应的第一标识可以设置为0,但不对其进行第二标识的标注。
又例如,图3中子网格0中的顶点3和子网格1中的顶点4是被重复划分的边界顶点,因此这两个顶点对应的第一标识可以设置为1;子网格0中的顶点2和子网格1中的顶点3是被重复划分的边界顶点,因此这两个顶点对应的第一标识可以设置为1;子网格0中的顶点0和子网格1中的顶点2是被重复划分的边界顶点,因此这两个顶点对应的第一标识可以设置为1;子网格0中的顶点0’和子网格1中的顶点2’是被重复划分的边界顶点,因此这两个顶点对应的第一标识可以设置为1;同时,子网格0中的顶点0和顶点0’具有相同的顶点信息,但对应不同的顶点索引,因此,这两个顶点是还是重复顶点,可以将这两个顶点对应的第二标识可以设置为1;同理,子网格0中的顶点2和顶点2’也是重复顶点,可以将这两个顶点对应的第二标识可以设置为1。即,子网格0中的顶点0和0’特定顶点,对于特定顶点,可以记录其对应的目标顶点索引,对于子网格0中的顶点0对应的目标顶点索引是子网格1中的顶点2,对于子网格0中的顶点0’对应的目标顶点索引是子网格1中的顶点2’对应的顶点索引。类似的,子网格1中的顶点2和2’也是特定顶点,可以记录这两个顶点分别对应的目标顶点索引是子网格0中的顶点0和顶点0’对应的顶点索引。
再例如,图4中子网格0中的顶点0、顶点1和顶点2以及子网格1中的顶点1、顶点2和顶点3是被重复划分的边界顶点,可以设置这些顶点对应的第一标识为1,同时子网格0中的顶点0还是重复顶点,可以设置顶点0对应的第二标识为1,子网格0中的边界顶点0’是重复顶点,但不是被重复划分的顶点,因此,将顶点0’的第一标识设置为0,但不对其进行第二标识的标注。
对于以上举例,若其中一个子网格为初始重建子网格或者为已合并网格,则可以只对另一个子网格的边界顶点进行相应的标识。
应理解,本申请对于第一标识、第二标识、目标顶点索引的编码方式不作具体限定,例如可以采用上下文自适应算术熵编码的方式对第一标识或第二标识进行编码,但本申请并不限于此。对于特定顶点对应的目标顶点索引,可以采用例如差值编码的方式对其进行编码,即除了第一个需要编码的目标顶点索引直接写入码流外,编码其余每个索引与前一个索引的差值,本申请对此不作限定。
以下,具体实施例,说明目标合并信息的获取方式。
在本申请一些实施例中,所述编码端根据所述多个重建子网格和所述三维网格获取目标合并信息,包括:
根据所述三维网格获取所述三维网格对应的第一映射关系,所述第一映射关系用于描述所述三维网格中的顶点和/或三角形相关的映射关系;
基于所述第一映射关系和所述多个重建子网格,获取所述多个重建子网格中的每个重建子网格对应的第二映射关系,所述第二映射关系用于指示所述重建子网格和所述三维网格中的顶点之间的映射关系;
根据所述第一映射关系、所述多个重建子网格和所述每个重建子网格对应的第二映射关系,获取所述目标合并信息。
在一些实施例中,所述第一映射关系包括但不限于以下至少一项:
所述三维网格中的顶点信息和顶点索引之间的映射关系,记为第一子映射关系;
所述三维网格中的三角形的的三个顶点的顶点信息与三角形索引之间的映射关系,记为第二子映射关系;
所述三维网格中的三角形索引与三角形的顶点索引之间的映射关系,记为第三子映射关系。
在一些实施例中,三角形的的三个顶点的顶点信息可以表示三角形的方向,或者说,三角形的三个顶点在三角形中的排列顺序,或者说,三角形的三个顶点的旋转方向。
在一些实施例中,顶点信息仅包括几何坐标,或者,包括几何坐标和至少一个属性信息,可选的,所述至少一个属性信息可以包括但不限于纹理坐标、法向量等,以下以顶点信息包括几何坐标为例进行说明,但本申请并不限于此,相应的,顶点索引可以几何顶点对应的顶点索引(简称几何顶点索引),三角形的顶点索引可以是几何三角形的顶点索引,对于顶点信息包括属性信息来说,顶点索引可以是属性顶点对应的顶点索引,三角形的顶点索引可以是属性三角形的顶点索引。
在一些实施例中,顶点信息包括几何坐标,所述第一子映射关系可以为三维网格中的几何坐标和顶点索引(或者说,几何顶点索引)之间的映射关系,第二子映射关系可以为三维网格中的三角形的的三个顶点的几何坐标与三角形索引之间的映射关系。
在一些实施例中,顶点信息包括几何坐标和纹理坐标,所述第二子映射关系可以为三维网格中的三角形的的三个顶点的几何坐标和纹理坐标与三角形索引之间的映射关系。
在一些实施例中,所述第二映射关系可以采用所述重建子网格中的顶点索引和所述三维网格中的顶点索引之间的映射关系表示,或者,也可以采用其他表示方式,本申请对此不作限定。
在一些实施例中,所述根据所述三维网格获取所述三维网格对应的第一映射关系,包括以下至少一项:
遍历所述三维网格中的所有顶点,构建所述三维网格中的顶点信息和顶点索引之间的映射关系;
遍历所述三维网格中的三角形,获取所述三角形的三个顶点的顶点信息以及所述三个顶点的顶点信息对应的三角形索引,基于所述三角形的三个顶点的顶点信息以及所述三个顶点的顶点信息对应的三角形索引构建所述三维网格中的顶点信息与三角形索引之间的映射关系以及所述三维网格中的三角形索引与三角形的顶点索引之间的映射关系。
对于三维网格中的顶点信息和顶点索引之间的映射关系,以顶点信息为几何坐标为例,说明该映射关系的构建方式,对于其他顶点信息,如属性信息中的纹理坐标、法向量等构建方式类似,这里不再赘述。具体的,遍历原始网格中的所有顶点,在此过程中构建三维网格中的几何坐标与几何顶点索引间的映射关系。
对于三维网格中的顶点信息与三角形索引之间的映射关系,其中,顶点信息包括几何坐标,或者,顶点信息可以包括几何坐标和至少一个属性信息,例如纹理坐标、法向量等。以顶点信息包括几何坐标+纹理坐标为例说明三维网格中的顶点信息和三角形索引之间的映射关系的构建方式,对于其他顶点信息构建方式类似,这里不再赘述。具体的,遍历三维网格中的三角形,记录各个三角形的三个顶点对应的几何坐标和纹理坐标,并记录各个三角形的三个顶点的顶点信息对应的三角形索引,从而构建三维网格中的顶点信息与三角形索引之间的映射关系以及三角形索引与三角形的顶点索引之间的映射关系。可选的,对于三角形索引与三角形的顶点索引之间的映射关系中的三角形的顶点索引可以指几何三角形的顶点索引或者属性三角形的顶点索引。
在一些实施例中,所述基于所述第一映射关系和所述多个重建子网格,获取所述多个重建子网格中的每个重建子网格对应的第二映射关系,包括:
遍历所述多个重建子网格中的每个重建子网格;
对于遍历到的当前重建子网格,遍历所述当前重建子网格中的三角形,获取所述三角形的三个顶点的顶点索引以及所述三角形的三个顶点的顶点信息;
根据所述三角形的三个顶点的顶点索引和所述三角形的三个顶点的顶点信息,确定所述三角形的三个顶点的顶点索引在所述三角形中的排列顺序;
根据所述三角形的三个顶点的顶点信息、所述三角形的三个顶点的顶点索引在所述三角形中的排列顺序和所述第一映射关系中的三角形的三个顶点的顶点信息和三角形索引之间的映射关系,确定所述三角形在所述三维网格中匹配的目标三角形对应的三角形索引;
根据所述目标三角形对应的三角形索引、所述第一映射关系中的三角形索引和三角形的顶点索引之间的映射关系以及所述第一映射关系中的三角形的三个顶点的顶点信息和三角形的顶点索引之间的映射关系,获取所述目标三角形的三个顶点的顶点索引以及所述目标三角形的三个顶点的顶点索引在所述目标三角形中的排列顺序;
根据所述三角形的三个顶点的顶点索引、所述三角形的三个顶点的顶点索引在所述三角形中的排列顺序、所述目标三角形的三个顶点的顶点索引以及所述目标三角形的三个顶点的顶点索引在所述目标三角形中的排列顺序,构建所述当前重建子网格中的顶点索引和所述三维网格中的顶点索引之间的映射关系。
以第二映射关系为重建子网格的顶点索引和三维网格的顶点索引之间的映射关系,并以顶点索引为几何顶点索引为例说明第二映射关系的构建方式,但本申请并不限于此。
具体的,遍历重建子网格,构建重建子网格的几何顶点索引与三维网格的几何顶点索引之间的映射关系。对于遍历到的当前重建子网格,遍历当前重建子网格的三角形,记录当前三角形的三个顶点的顶点信息(如几何坐标+纹理坐标)以及三个顶点的几何顶点索引,根据三角形的三个顶点的几何顶点索引和三角形的三个顶点的顶点信息,确定三角形的三个顶点的几何顶点索引在三角形中的排列顺序。然后根据三角形的三个顶点的顶点信息、第一映射关系中的三角形的三个顶点的顶点信息与三角形索引之间的映射关系以及三角形的三个顶点的几何顶点索引的排列顺序,确定当前三角形在三维网格中匹配的目标三角形对应的三角形索引。然后根据目标三角形对应的三角形索引和第一映射关系中的三角形索引与三角形的几何顶点索引之间的映射关系获取目标三角形的三个顶点的几何顶点索引,根据所述目标三角形的三个顶点的几何顶点索引以及所述第一映射关系中的顶点信息和几何顶点索引的映射关系,确定所述目标三角形的三个顶点的几何顶点索引在目标三角形中的排列顺序。根据三角形的三个顶点的顶点索引、目标三角形的三个顶点的顶点索引、所述三角形的三个顶点的顶点索引在所述三角形中的排列顺序以及目标三角形的三个顶点的顶点索引在所述目标三角形中的排列顺序构建重建子网格中的几何顶点索引与三维网格的几何顶点索引之间的映射关系。
应理解,对于重建子网格与三维网格间的其他顶点信息(如属性信息中的纹理坐标、法向量)的映射关系的构建方式类似,这里不再赘述。
在本申请一些实施例中,所述根据所述第一映射关系、所述多个重建子网格和所述每个重建子网格对应的第二映射关系,获取所述目标合并信息,包括以下至少一项:
在所述多个重建子网格中选择第一重建子网格作为当前合并网格;
构建所述当前合并网格对应的第三映射关系,其中,所述第三映射关系用于指示所述当前合并网格中的顶点信息和顶点索引之间的映射关系;
根据所述第一重建子网格对应的第二映射关系构建所述当前合并网格对应的第四映射关系,所述第四映射关系用于指示所述当前合并网格中的顶点索引和所述三维网格中的顶点索引之间的映射关系;
遍历所述多个重建子网格中除所述第一重建子网格之外的重建子网格,根据所述第一映射关系、所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系以及第四映射关系,确定所述重建子网格中的第一类顶点和所述第二类顶点中的至少一项;
根据所述重建子网格中的第一类顶点和所述第二类顶点中的至少一项,获取所述目标合并信息。
在一些实施例中,顶点信息包括几何坐标,第三映射关系可以是当前合并网格中的几何坐标和顶点索引之间的映射关系。
需要说明的是,在本申请实施例中,编码端和解码端段对于选择的初始化重建子网格的理解一致,例如编码端可以通过向解码端传输初始子网格指示信息告知解码端合并重建子网格时所选择的初始化重建子网格的信息,或者,也可以默认编码端和解码端采用一致的初始重建子网格选择方式,例如都选择第一个被遍历到的重建子网格作为初始合并网格,或者,都选择编号最小的重建子网格作为初始合并网格。然后遍历其余重建子网格,将合并网格与遍历到的当前重建子网格进行合并操作,例如在合并过程中判断不需要执行合并重复信息操作的子网格可以直接添加进合并网格中,对于需要执行合并重复信息操作的子网格合并到合并网格中,并获取目标合并信息。
可选的,顶点信息为几何坐标,第三映射关系可以是当前合并网格中的几何坐标和几何顶点索引之间的映射关系,第四映射关系可以是当前合并网格中的几何顶点索引和三维网格中的几何顶点索引之间的映射关系。
在本申请一些实施例中,所述根据所述第一映射关系、所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系以及第四映射关系,确定所述重建子网格中的第一类顶点和所述第二类顶点中的至少一项,包括以下至少一项:
遍历所述重建子网格中的所有顶点,根据所述当前合并网格对应的第三映射关系确定当前顶点是否存在于所述当前合并网格中;
若所述当前顶点不处于所述当前合并网格中,确定所述当前顶点不是所述第一类顶点,将所述当前顶点确定为待添加顶点;或者
若所述当前顶点处于所述当前合并网格中,根据所述第一映射关系中的顶点信息和顶点索引之间的映射关系确定所述当前顶点是否为第二类顶点;
在所述当前顶点不是第二类顶点的情况下,将所述当前顶点的第一标识设置为用于标识所述当前顶点是第一类顶点,将所述当前顶点的第二标识设置为用于标识所述顶点不是第二类顶点,并且将所述当前顶点在三角形中的顶点索引更新为所述当前合并网格中的合并顶点对应的顶点索引,其中,所述合并顶点和所述当前顶点的顶点信息相同;
在所述当前顶点是第二类顶点的情况下,根据所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系和第四映射关系,确定所述当前顶点是否为第一类顶点;
在所述当前顶点不是所述第一类顶点的情况下,将所述当前顶点的第一标识设置为用于标识所述当前顶点不是第一类顶点,并将所述当前顶点确定为待添加顶点;
在所述当前顶点是第一类顶点的情况下,将所述当前顶点的第一标识设置为用于标识所述当前顶点是第一类顶点,将所述当前顶点的第二标识设置为用于标识所述当前顶点是第二类顶点,将所述当前顶点在三角形中的顶点索引更新为所述当前合并网格中的合并顶点对应的顶点索引,并将所述合并顶点对应的顶点索引作为所述当前顶点对应的目标顶点索引,其中,所述合并顶点和所述当前顶点的顶点信息相同;
在遍历完所述重建子网格中的所有顶点的情况下,将获取的所有待添加顶点添加到所述当前合并网格中,更新所述待添加顶点在所述当前合并网格中的顶点索引,并更新所述当前合并网格对应的第三映射关系和第四映射关系。
综上,编码端可以将重建子网格中的非边界顶点确定为待添加顶点;将重建子网格中的非被重复划分的顶点确定为待添加顶点;将重建子网格中的是被重复划分的非重复顶点的第一标识设置为1,第二标识设置为0;将重建子网格中的重复划分的重复顶点的第一标识设置为1,第二标识设置为1;将重建子网格中的待添加顶点添加到当前合并网格中,并根据当前合并网格中的顶点索引的编号顺序对待添加顶点对应的顶点索引进行编号;将重建子网格中的被重复划分的非重复顶点在三角形中对应的顶点索引更新为当前合并网格中具有相同几何坐标的顶点的顶点索引;将重建子网格中的被重复划分的重复顶点在三角形中对应的顶点索引更新为当前合并网格中的合并顶点的目标顶点索引,其中,该被重复划分的重复顶点和合并顶点的几何坐标相同,并且在三维网格中对应的顶点索引相同。
在本申请一些实施例中,所述根据所述第一映射关系中的顶点信息和顶点索引之间的映射关系确定所述当前顶点是否为第二类顶点,包括:
根据所述当前顶点的顶点信息以及所述第一映射关系,确定所述三维网格中是否存在至少两个顶点的顶点信息和所述当前顶点的顶点信息相同,但对应的顶点索引不同;
若存在至少两个顶点的顶点信息和所述当前顶点的顶点信息相同但对应的顶点索引不同,确定所述当前顶点是所述第二类顶点。
也即,若三维网格中存在至少两个顶点的顶点信息相同,但对应的顶点索引不同,则认为该至少两个顶点为第二类顶点,若该至少两个顶点中包括当前顶点,则该当前顶点是第二类顶点。
在本申请一些实施例中,所述根据所述重建子网格对应的第二映射关系和所述当前合并网格对应的第三映射关系和第四映射关系,确定所述当前顶点是否为第一类顶点,包括:
根据所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系和第四映射关系,确定所述当前合并网格中是否存在至少一个顶点的顶点信息和所述当前顶点的顶点信息相同,并且所述至少一个顶点信息在所述三维网格中对应的的顶点索引和所述当前顶点在所述三维网格中对应的顶点索引相同;
若存在,确定所述当前顶点为第一类顶点;或者,若不存在,确定所述当前顶点不是第一类顶点。
也即,若三维网格中存在至少一个顶点的顶点信息和索引与当前顶点均相同,则认为该当前顶点是第一类顶点。
在本申请一些实施例中,所述方法100还包括:
根据所述重建子网格中的第一类顶点,确定所述重建子网格中的三角形为待添加三角形还是第一类三角形,所述第一类三角形是所述三维网格中被拆分到至少两个子网格中的三角形;
将所述待添加三角形添加至所述当前合并网格中,或者,不将所述第一类三角形添加到所述当前合并网格中。
在本申请一些实施例中,所述根据所述重建子网格中的第一类顶点,确定所述重建子网格中的三角形为待添加三角形还是第一类三角形,包括:
根据所述重建子网格中的所述三角形的三个顶点是否为第一类顶点以及所述三个顶点所在的三角形是否存在于所述当前合并网格中,确定所述三角形为待添加三角形还是第一类三角形;
其中,若所述三角形的三个顶点均为第一类顶点,并且所述三个顶点所在的三角形存在于所述当前合并网格中,确定所述三角形是所述第一类三角形;或者
若所述三角形的三个顶点中存在不是第一类顶点的顶点,或者所述三个顶点所在的三角形不存在于所述当前合并网格中,确定所述三角形是所述待添加三角形。
在一些实施例中,第一类三角形或称被重复划分的三角形,即被拆分到至少两个子网格中的三角形。
具体的,在当前重建子网格中的所有顶点遍历结束后,编码端将记录的待添加顶点,添加进当前合并网格中,并更新这些顶点在当前子网格中所在三角形中的顶点索引。同时编码端还可以更新合并网格中的几何坐标与顶点索引的映射关系,并根据当前子网格的映射关系顶点索引与三维网格的顶点索引间的映射关系更新当前合并网格中的顶点索引与三维网格的顶点索引之间的映射关系。编码端还可以将更新后的当前子网格中的三角形添加到当前合并网格中,例如编码端首先判断三角形是否为被重复划分的三角形,例如可以根据三角形中的三个顶点是否为被重复划分的点以及该三角形是否存在于当前合并网格中确定该三角形是否为被重复划分的三角形。例如,编码端可以在三角形的三个顶点为被重复划分的点的情况下,再确定该三角形是否存在于当前合并网格中,从而确定该三角形是否为被重复划分的三角形。例如,若三角形的三个顶点均为被重复划分的顶点,并且该三角形存在于当前合并网格中,则可以确定该三角形为被重复划分的三角形,否则,若三角形的三个顶点存在一个不是被重复划分的顶点,或者,该三角形不存在于当前合并网格中,则可以确定该三角形不是被重复划分的三角形。
对于被重复划分的三角形,编码端不将该三角形添加到当前合并网格中,对于未被重复划分的三角形,编码端将该三角形添加到当前合并网格中,得到更新后的合并网格。编码端可以根据更新后的当前合并网格可以更新当前合并网格中的映射关系,并获得当前重建子网格对应的顶点相关合并信息。其中,当前合并网格的映射关系包括当前合并网格中几何坐标与顶点索引的映射关系、当前合并网格的顶点索引与原始网格的顶点索引之间的映射关系等。
在一些实施例中,编码端可以根据三角形的方向确定三角形是否存在于当前合并网格中,例如根据三角形三个顶点的顶点信息和三角形三个顶点的排列顺序,判断当前合并网格中是否存在与该三角形三个顶点的顶点信息相同且顶点信息的排列顺序按逆时针或者顺时针排列与该三角形排列顺序相同的三角形,若存在,则该三角形存在于当前合并网格中,否则,该三角形不存在于当前合并网格中。
在当前重建子网格中的所有顶点遍历结束后,编码端可以获知子网格相关合并信息,例如哪些重建子网格需要执行合并重复信息操作,例如,若一个重建子网格中不包括被重复划分的顶点,则该重建子网格不需要执行合并重复信息操作,则可以将该重建子网格对应的第一指示信息设置为0,在合并重建子网格时,可以执行向当前合并网格中添加顶点、更新三角形的连接关系和向当前合并网格中添加三角形的操作,同时在添加三角形时可以跳过对重复划分的三角形的判断步骤。或者,若一个重建子网格中存在至少一个被重复划分的顶点,则可以确定该重建子网格需要执行合并重复信息操作,则可以将该重建子网格对应的第一指示信息设置为1,然后按照如前文描述的方式执行向当前合并网格中添加顶点、更新三角形的连接关系和向当前合并网格中添加三角形的操作。
在遍历完所有重建子网格之后,可以获得子网格相关合并信息以及子网格对应的顶点相关合并信息,从而可以获得目标合并信息。
需要说明的是,在顶点信息包括几何坐标时,编码端可以获取几何坐标相关的合并信息,当顶点信息还包括属性信息时,编码端还可以获取属性信息相关的合并信息,例如,通过单独的过程获取属性信息相关的合并信息,或者,在获取几何坐标相关的合并信息的过程中,获取属性信息对应的合并信息。
在本申请一些实施例中,所述编码端基于所述第一码流和所述第二码流,生成目标码流,包括:
所述编码端对所述第一码流和第二码流进行混流,生成目标码流。
可选的,若所述三维网格还包括纹理图,所述方法100还包括:
所述编码端对纹理图进行编码,获取第三码流。
进一步的,所述编码端基于所述第一码流和所述第二码流,生成目标码流,可以包括:
所述编码端基于所述第一码流、所述第二码流和所述第三码流,生成码流。
例如,对所述第一码流,所述第二码流和所述第三码流进行混流,生成目标码流。
图6示出了本申请实施例提供的一种编码框架,该编码端可以执行图5中的编码流程。其中,上述编码框架可以包括子网格编码过程、目标合并信息编码过程,可选的,还包括纹理图编码过程。在子网格编码过程中,可以对三维网格的多个子网格进行编码得到子网格码流(即第一码流)。在目标合并信息编码过程中,可以对目标合并信息进行编码得到目标合并信息码流(即第二码流)。在纹理图编码过程中,可以对三维网格的纹理图进行编码得到纹理图码流(即第三码流)。
对于子网格编码过程,编码端执行的流程如下:
1、子网格划分:此过程的输入是三维网格,输出是划分后的多个子网格。
例如,可以基于bounding box的划分方式将三维网格划分为多个子网格,具体的划分方式参考前述实施例的相关描述,为了简洁,这里不再赘述。可选的,也可以采用其他划分方式,本申请对此不作限定。
2、子网格压缩:该流程可以包括子网格编码和子网格解码两个部分,这里对子网格编码过程进行说明,子网格解码过程和解码端的子网格解码过程一致,详细说明参见解码端子网格解码过程。
子网格编码过程的输入是划分后的多个子网格,输出是子网格码流。例如,在该流程中,编码端可以对连接信息、几何信息和属性信息分别进行编码,得到连接信息码流、几何信息码流和属性信息码流,进一步将该连接信息码流、几何信息码流和属性信息码流进行混流,得到子网格码流。
可选的,编码端可以基于Edgebeaker的编码方法对子网格进行编码,得到子网格码流,例如,编码端可以首先对输入子网格进行预处理,例如对几何重复顶点进行去重(可选)、对非流形结构进行必要的拆分等操作。然后对处理后的网格进行连接信息、几何信息和属性信息以及预处理产生的信息如非流形结构信息的编码。
针对连接关系编码,编码端可以采用Edgebreaker方法编码三维网格的连接关系。例如通过建立CornerTable来表示网格的连接关系,并利用CornerTable遍历网格中的所有三角形,生成Edgebreaker的CLERS模式字符串。然后可以使用熵编码的方式对CLERS模式字符串进行编码,得到连接关系码流。
针对几何信息编码,编码端可以采用常规的编码算法,例如差值预测编码算法、平行四边形预测编码算法等,例如编码端可以按照连接信息的编码顺序采用例如差值预测编码算法、平行四边形预测编码算法等多种编码算法对几何信息进行编码,得到几何信息码流。
可选的,三维网格的属性信息一般包括纹理坐标、法向量等,以纹理坐标为例。针对纹理坐标,编码端可以采用常规的编码算法,例如差值预测编码算法、平行四边形预测编码算法、相似三角形预测编码算法等,例如编码端可以按照连接信息的编码顺序采用例如差值预测编码算法、平行四边形预测编码算法以及相似三角形预测编码算法等多种编码算法对属性信息进行编码,得到属性信息码流。
对于非流形结构信息编码,编码端可以按照几何编码顺序和/或属性编码顺序采用如熵编码的方式进行编码。
子网格解码过程输入的是子网格码流,输出的是多个重建子网格。在编码端获得重建子网格后,可选地,编码端可以执行对比重建子网格与原始子网格的步骤,获得最终的重建子网格和网格差异信息,并对网格差异信息进行编码,得到网格差异信息码流。
对于目标合并信息编码过程,编码端执行的流程如下:
1、原始网格中的映射关系(即第一映射关系)获取
该过程的输入是原始网格,输出是第一映射关系。
可选的,第一映射关系包括但不限于顶点信息与顶点索引之间的映射关系、顶点信息与三角形索引之间的映射关系、三角形索引与三角形的顶点索引之间的映射关系中的至少一项。其中,第一映射关系的构建方式参考前述实施例的相关描述,为了简洁,这里不再赘述。
2、重建子网格对应的第二映射关系获取
该过程的输入可以是重建子网格和第一映射关系,输出是重建子网格对应的第二映射关系。其中,第二映射关系的构建方式参考前述实施例的相关描述,为了简洁,这里不再赘述。
3、目标合并信息获取
该过程输入的是重建子网格、第一映射关系以及重建子网格对应的第二映射关系,输出的是目标合并信息。
以第二映射关系为重建子网格的顶点索引与原始网格顶点索引之间的映射关系为例进行说明。该过程可以利用对重建子网格的合并操作来获取目标合并信息,图7示出了一种重建子网格的合并过程,通过遍历输入的重建子网格进行两两合并操作,并不断更新合并网格直到得到最终的重建网格,并在此过程中获得目标合并信息。下面以几何顶点的合并过程进行举例说明具体的合并方式。
首先在输出的多个重建子网格中选择一个重建子网格初始化为合并网格,同时构建当前合并网格中的映射关系,其中,初始重建子网格的选择方式参考前述实施例的相关描述,为了简洁,这里不再赘述。例如构建当前合并网格中的几何坐标与几何顶点索引间的映射关系,以及根据重建子网格中的顶点索引与原始网格中的顶点索引之间的映射关系构建当前合并网格中的顶点索引与原始网格中的顶点索引之间的映射关系。
图8示出了将子网格与当前合并网格进行合并操作的执行流程,在以下的示例中以顶点信息为几何坐标为例进行说明,但本申请并不限于此。例如,可以包括如下步骤:
遍历当前重建子网格中的顶点,例如顶点索引为vIdx,在当前重建子网格中的顶点未遍历完(即vIdx<cur_submesh.points.size())的情况下,对当前顶点执行步骤a中的判断。
步骤a,确定当前顶点是否存在于当前合并网格中。
例如,编码端可以通过当前合并网格中的几何坐标与顶点索引之间的映射关系(即第一子映射关系)确定当前顶点的几何坐标是否存在于当前的合并网格中。若当前顶点的几何坐标不存在于当前合并网格中,则表示当前顶点不为当前重建子网格的边界顶点,即该当前顶点不是合并子网格时需要合并的顶点,此时记录当前顶点为待添加顶点;若当前顶点的几何坐标存在于当前合并网格中,则表示当前顶点是当前重建子网格的边界顶点,则执行步骤b。
步骤b,确定当前顶点是否为原始网格中的重复顶点。
例如,编码端可以根据第一映射关系中的几何坐标与顶点索引之间的映射关系(即第一子映射关系)确定当前顶点是否为原始网格中的重复顶点。若根据当前顶点的几何坐标结合第一映射关系中的几何坐标与顶点索引之间的映射关系确定原始网格中存在至少两个顶点的几何坐标和当前顶点的几何坐标相同,但是对应的顶点索引不同,则确定该当前顶点为原始网格中的重复顶点,否则该当前顶点为需要合并的被重复划分的非重复顶点。若当前顶点为需要合并的被重复划分的非重复顶点,可以将该当前顶点的第一标识设置为1,将该当前顶点的第二标识设置为0,同时,编码端可以将当前顶点所在三角形中的该当前顶点对应的顶点索引更新为当前合并网格中的合并顶点的顶点索引,其中,合并顶点和当前顶点的几何坐标相同,并且合并顶点和当前顶点在原始网格中对应的顶点索引相同。在当前顶点为原始网格中的重复顶点时,进一步执行步骤c。
步骤c,确定当前顶点是否为原始网格中的被重复划分的顶点。
例如,编码端可以根据当前重建子网格的顶点索引与原始网格的顶点索引之间的映射关系(即当前重建子网格对应的第二映射关系)、当前合并网格中的几何坐标与顶点索引之间的映射关系(即当前合并网格对应的第三映射关系)以及当前合并网格的顶点索引与原始网格的顶点索引之间的映射关系(即当前合并网格对应的第四映射关系)确定当前顶点是否为原始网格中被重复划分的顶点。例如,若在当前合并网格中存在与当前顶点的几何坐标相同的顶点,并且该顶点在原始网格中的顶点索引和当前顶点在原始网格中的顶点索引相同,则确定该当前顶点为被重复划分的顶点,该顶点为当前顶点在当前合并网格中对应的合并顶点,该合并顶点的顶点索引为该当前顶点对应的目标顶点索引;或者,若当前合并网格不存在满足上述条件的顶点,则当前顶点不是被重复划分的顶点。若当前顶点不是被重复划分的顶点,则当前顶点不是合并重建子网格时需要合并重复信息的顶点,将当前顶点的第一标识置为0,并记录当前点为待添加顶点;若当前顶点是被重复划分的顶点,则执行步骤d。
步骤d,将当前顶点的第一标识标识置为1,并将当前顶点的第二标识置为1,并记录当前顶点在当前合并网格中对应的目标顶点索引,然后将当前顶点所在三角形中的顶点索引更新为当前顶点在当前合并网格中对应的目标顶点索引。
在当前重建子网格中的所有顶点遍历结束后,将记录的待添加顶点,添加进当前合并网格中,并更新这些顶点在当前子网格中所在三角形中的顶点索引。同时编码端还可以更新当前合并网格中的几何坐标与顶点索引的映射关系,并根据当前子网格的顶点索引与原始网格的顶点索引间的映射关系更新当前合并网格中的顶点索引与原始网格的顶点索引之间的映射关系。编码端还可以将更新后的当前子网格中的三角形添加进当前合并网格中,例如,首先判断三角形是否为被重复划分的三角形,例如可以根据三角形中的三个顶点是否为被重复划分的点以及该三角形是否存在于当前合并网格中确定该三角形是否为被重复划分的三角形。例如,若三角形的三个顶点均为被重复划分的顶点,并且该三角形存在于当前合并网格中,则可以确定该三角形为被重复划分的三角形,否则,该三角形不是被重复划分的三角形,具体判断方式参考前述实施例的相关描述,为了简洁,这里不再赘述。对于被重复划分的三角形,则不将该三角形添加到当前合并网格中,对于未被重复划分的三角形,则将该三角形添加到当前合并网格中,得到更新后的合并网格。编码端可以根据更新后的当前合并网格可以更新当前合并网格中的映射关系,并获得当前重建子网格对应的顶点相关合并信息。其中,当前合并网格的映射关系包括当前合并网格中几何坐标与顶点索引的映射关系、当前合并网格的顶点索引与原始网格的顶点索引之间的映射关系等。
4、目标合并信息编码
该过程的输入是目标合并信息,输出是目标合并信息码流。
在一些实施例中,目标合并信息包括所述多个重建子网格中的子网格相关合并信息和/或顶点相关合并信息。
其中,对子网格相关合并信息和顶点相关合并信息中的具体信息的编码方式参考前述实施例的相关描述,为了简洁,这里不再赘述。
综上,在本申请实施例中,编码端可以对原始网格中的多个子网格进行编码得到第一码流,基于第一码流(子网格码流)进行网格重建,得到多个重建子网格,然后基于多个重建子网格和原始网格获取目标合并信息,并对该目标合并信息进行编码,获取第二码流,基于第一码流和第二码流生成目标码流后发送给解码端,从而解码端可以通过对目标码流进行解码获取该多个重建子网格和该目标合并信息,然后基于该目标合并信息对该多个重建子网格进行合并处理,提升解码网格的恢复性能。
图9是本申请实施例提供的一种解码方法的示意性流程图,如图9所示,该解码方法500包括如下至少部分步骤:
S501,解码端获取三维网格对应的目标码流,其中,所述三维网格包括多个子网格;
S502,所述解码端对所述目标码流进行解码,获取多个重建子网格和目标合并信息,其中,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
S503,所述解码端根据所述目标合并信息,对所述多个重建子网格进行合并处理。
应理解,在本申请实施例中,解码端的解码行为和编码端的编码行为相互对应,类似描述,可以参考编码端的相关描述。
在一些实施例中,解码端获取三维网格对应的目标码流可以包括:
解码端从编码端获取三维网格对应的目标码流。
在一些实施例中,所述解码端对所述目标码流进行解码,获取多个重建子网格和目标合并信息,包括:
所述解码端对所述目标码流进行解流,得到第一码流和第二码流;
所述解码端对所述第一码流进行解码,获取所述多个重建子网格;
所述解码端对所述第二码流进行解码,获取所述目标合并信息。
在一些实施例中,所述解码端对所述第一码流进行解码,获取所述多个重建子网格,包括:
对所述第一码流进行解流,得到连接信息码流、几何信息码流和属性信息码流;
对所述连接信息码流进行解码,得到连接信息;
对所述几何信息码流进行解码,得到几何信息;
对所述属性信息码流进行解码,得到属性信息。
可选的,针对连接信息解码,解码端可以首先对连接信息码流进行解码得到模式字符串,然后,按照特定顺序(例如正序或逆序)遍历模式字符串,根据模式字符串对应的模式重建连接关系。可选的,解码端还可以将连接信息的解码顺序输入至几何信息和属性信息解码模块。
可选的,针对几何信息解码,解码端可以根据连接信息的解码顺序对几何信息码流进行解码得到几何信息,例如,采用编码端相对应的解码方法对几何信息码流进行解码。
可选的,针对属性信息解码,解码端可以根据连接信息的解码顺序对属性信息码流进行解码得到属性信息,例如,采用编码端相对应的解码方法对属性信息码流进行解码。
进一步的,解码端可以根据解码得到的连接信息、几何信息和属性信息重建流形网格,得到多个重建子网格。
应理解,在本申请实施例中,编码端基于第一码流获取多个重建子网格和解码端基于第一码流获取多个重建子网格的实现方式相同,也即,编码端可以采用和解码端相同的解码方式进行网格重建,然后编码端可以基于重建子网格和原始网格获取目标合并信息,能够保证获取的合并信息的准确性,进而保证解码端获取的合并信息的准确性,保证解码网格的重建质量。
在一些实施例中,所述子网格相关合并信息用于指示所述多个重建子网格中的目标子网格和/或与所述目标子网格进行合并的合并子网格,所述目标子网格是所述多个重建子网格中需要合并的子网格。
在一些实施例中,所述子网格相关合并信息包括以下至少一项:
所述多个重建子网格中的每个重建子网格对应的第一指示信息,用于指示所述重建子网格是否为目标子网格,所述目标子网格为需要合并的重建子网格;
所述目标子网格对应的第二指示信息,用于指示需要与所述目标子网格进行合并的合并子网格。
在一些实施例中,所述顶点相关合并信息用于指示重建子网格中需要合并的目标顶点和/或所述目标顶点对应的合并顶点。
在一些实施例中,所述顶点相关合并信息包括以下至少一项:
重建子网格中的边界顶点的数量;
重建子网格中的边界顶点对应的第一标识,用于标识所述边界顶点是否为所述三维网格中的第一类顶点,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点;
重建子网格中的第一类顶点的数量;
对所述边界顶点对应的第一标识进行编码得到的编码序列的字节大小;
重建子网格中的第一类顶点对应的第二标识,用于标识所述第一类顶点是否为所述三维网格中的第二类顶点,其中,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
对所述第一类顶点对应的第二标识进行编码得到的编码序列的字节大小;
重建子网格中的特定顶点对应的目标顶点索引,所述目标顶点索引用于指示与所述特定顶点在合并网格中进行合并的合并顶点对应的顶点索引,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点;
重建子网格中的特定顶点的数量,其中,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点。
在一些实施例中,所述目标合并信息包括至少一个重建子网格对应的顶点相关合并信息,其中,所述至少一个重建子网格包括所述多个重建子网格中除第一重建子网格之外的重建子网格,所述第一重建子网格是作为初始合并网格的子网格;或者,所述至少一个重建子网格包括所述多个重建子网格中需要合并的重建子网格。
其中,子网格相关合并信息和顶点相关合并信息的具体实现参考编码端的相关描述,为了简洁,这里不再赘述。
在一些实施例中,所述解码端根据所述目标合并信息,对所述多个重建子网格进行合并处理,包括以下至少一项:
在所述多个重建子网格中选择第一重建子网格作为当前合并网格;
构建所述当前合并网格对应的第三映射关系,其中,所述第三映射关系用于指示所述当前合并网格中的顶点信息和顶点索引之间的映射关系;
遍历所述多个重建子网格中除所述第一重建子网格之外的重建子网格,根据所述当前合并网格对应的第三映射关系确定所述重建子网格中的边界顶点和非边界顶点中的至少一项;
将所述重建子网格中的非边界顶点确定为待添加顶点;
根据所述目标合并信息,确定所述边界顶点中的待添加顶点、第一类顶点和所述第二类顶点中的至少一项,其中,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
根据确定的所述重建子网格中的待添加顶点、第一类顶点和所述第二类顶点中的至少一项,对所述重建子网格和所述当前合并网格进行合并处理。
应理解,解码端的子网格合并过程与编码端获取目标合并信息的过程类似。例如,解码端选择第一重建子网格的方式和编码端选择第一重建子网格的方式相同,并且,解码端可以按照与编码端在获取目标合并信息过程中相对应的遍历方式遍历重建子网格,通过遍历输入的重建子网格根据目标合并信息合并到当前合并网络,并不断更新合并网格直到得到最终的解码网格。
在本申请一些实施例中,所述根据所述目标合并信息,确定所述边界顶点中的待添加顶点、第一类顶点和所述第二类顶点中的至少一项,包括以下至少一项:
根据解码得到的所述边界顶点对应的第一标识确定所述边界顶点是否为第一类顶点;
在所述边界顶点不是第一类顶点的情况下,将所述边界顶点确定为待添加顶点;
在所述边界顶点是第一类顶点的情况下,根据所述第一类顶点对应的第二标识确定所述边界顶点是否还是第二类顶点;
在所述边界顶点不是第二类顶点的情况下,将所述当前合并网格中具有相同顶点信息的顶点确定为所述边界顶点的合并顶点;
在所述边界顶点还是第二类顶点的情况下,所述边界顶点为所述重建子网格中的特定顶点,根据所述特定顶点对应的目标顶点索引确定与所述边界顶点进行合并的合并顶点。
在本申请一些实施例中,所述根据确定的所述重建子网格中的待添加顶点、第一类顶点和所述第二类顶点中的至少一项,对所述重建子网格和所述当前合并网格进行合并处理,包括以下至少一项:
将所述待添加顶点添加到所述当前合并网格中,并更新所述待添加顶点在所述当前合并网格中对应的顶点索引;
将所述重建子网格中的第一边界顶点和所述当前合并网格中的第一合并顶点合并,并将所述第一边界顶点在三角形中的顶点索引更新为所述当前合并网格中的所述第一合并顶点的顶点索引,其中,所述第一合并顶点和所述第一边界顶点对应相同的顶点信息,其中,所述第一边界顶点为所述重建子网格中是第一类顶点但不是第二类顶点的边界顶点;
将所述重建子网格中的第二边界顶点与第二合并顶点合并,并将所述第二边界顶点在三角形中的顶点索引更新为所述当前合并网格中的所述第二合并顶点的顶点索引,其中,所述第二合并顶点是所述第二边界顶点对应的目标顶点索引所指示的顶点,其中,所述第二边界顶点为所述重建子网格中是第一类顶点并且是第二类顶点的边界顶点。
在本申请一些实施例中,所述方法500还包括:
根据所述重建子网格中的第一类顶点,确定所述重建子网格中的三角形为待添加三角形还是第一类三角形,所述第一类三角形是所述三维网格中被拆分到至少两个子网格中的三角形;
将所述待添加三角形添加至所述当前合并网格中,或者,不将所述第一类三角形添加到所述当前合并网格中。
在本申请一些实施例中,所述根据所述重建子网格中的第一类顶点,确定所述重建子网格中的三角形为待添加三角形还是第一类三角形,包括:
根据所述重建子网格中的所述三角形的三个顶点是否为第一类顶点以及所述三个顶点所在的三角形是否存在于所述当前合并网格中,确定所述三角形为待添加三角形还是第一类三角形;
其中,若所述三角形的三个顶点均为第一类顶点,并且所述三个顶点所在的三角形存在于所述当前合并网格中,确定所述三角形是所述第一类三角形;或者
若所述三角形的三个顶点中存在不是第一类顶点的顶点,或者所述三个顶点所在的三角形不存在于所述当前合并网格中,确定所述三角形是所述待添加三角形。
其中,解码端确定重建子网格中的三角形是待添加三角形还是第一类三角形的具体实现参考编码端的相关描述,为了简洁,这里不再赘述。
图10示出了本申请实施例提供的一种解码框架,该解码端可以执行图9中的解码流程。其中,上述解码框架可以包括子网格解码过程、目标合并信息解码过程、子网格合并过程,可选的,还包括纹理图解码过程。在子网格解码过程中,可以对子网格码流(即第一码流)进行解码得到多个重建子网格。在目标合并信息解码过程中,可以对目标合并信息码流(即第二码流)进行解码得到目标合并信息。在纹理图解码过程中,可以对纹理图码流(即第三码流)进行解码获得三维网格的纹理图。在子网格合并过程中,可以基于解码得到的目标合并信息对多个重建子网格进行合并处理,得到解码网格。
对于子网格解码过程,解码端执行的流程如下:
此过程的输入是子网格码流,输出是重建子网格。可选的,子网格的解码可以包括连接关系解码、几何信息解码、属性信息解码、非流形结构信息解码以及可选的网格差异信息解码。解码端可以采用与编码端使用的编码方法相对应的解码方法解码各信息。下面以基于Edgebreaker的三维网格解码方法为例进行具体描述。
针对连接关系解码,解码端首先解码得到模式字符串。按照某种顺序(正序或逆序)遍历模式字符串,根据字符串中相对应的模式来重建连接关系。此外,将顶点的遍历顺序输出至几何信息解码、属性信息解码以及非流形结构信息解码模块。
对于几何信息解码,可以按照连接关系的解码顺序采用与编码端相对应的解码方法,解码得到几何信息。
对于属性信息解码,可以按照连接关系解码顺序采用与编码端相对应的解码方法,解码得到属性信息。
对于非流形结构信息解码,可以按照连接关系的解码顺序采用与编码端相对应的解码方法解码得到非流形结构信息。
对于网格差异信息解码,解码端可以采用与编码端相对应的解码方法解码得到网格差异信息。进一步,解码端可以根据解码得到的连接关系、几何信息和属性信息以及非流形结构信息,得到重建子网格。然后进行可能的恢复重复点、根据网格差异信息调整重建网格等步骤,获得最终的重建子网格。
对于目标合并信息解码过程,解码端执行的流程如下:
对于此过程,解码端可以采用与编码端对应的解码方式对目标合并信息进行解码,例如对子网格相关合并信息进行解码,对顶点相关合并信息进行解码。
对于子网格相关合并信息中的第一指示信息,解码端可以对各个子网格对应的第一指示信息可以采用1比特定长解码得到。
对于子网格相关合并信息中的第二指示信息,解码端可以根据解码得到的第一指示信息对需要执行合并重复信息操作的子网格的第二指示信息进行解码,例如可以采用定长解码的形式进行解码,也可以使用可变字节数的8比特无符号整数解码方式,还可以使用差值解码的方式,本申请对此不作限定。以差值解码方式为例进行说明,解码端可以从码流对应位置中读取目标子网格对应的合并子网格索引,除第一个索引即为原始索引值外,解码得到每个索引与前一个索引的差值,并进行相应的累加操作得到每个目标子网格对应的合并子网格索引。应理解,本申请对于第一指示信息和第二指示信息的解码方式不作限定,只要与编码端相对应即可。
对于子网格对应的顶点相关合并信息,解码端可以对除了作为初始合并网格的子网格外的其余子网格的顶点相关合并信息进行解码,也可以只对标识了需要执行合并重复信息操作的子网格对应的顶点相关合并信息解码,只要与编码端的行为相对应即可。
对于边界顶点的第一标识、第一类顶点的第二标识,解码端可以采用上下文自适应算术熵解码的方式,本申请对此不作限定,只要与解码端的行为相对应即可。
对于特定顶点对应的目标顶点索引,解码端可以采用例如差值解码的方式对其进行解码,例如,从码流对应位置中读取目标顶点索引,除第一个索引即为原始索引值外,解码得到每个索引与前一个索引的差值,并进行相应的累加操作得到每个目标索引值。应理解,本申请对于顶点相关合并信息的解码方式不作限定,只要与编码端相对应即可。
对于子网格合并过程,解码端执行的流程如下:
此过程的输入是多个重建子网格以及目标合并信息,输出是解码网格。
在此过程中,解码端的子网格合并过程与编码端获取目标合并信息的过程类似。例如,解码端可以按照与编码端相同的方式选择初始合并网络,并且解码端可以按照与编码端在获取目标合并信息过程中相对应的遍历方式遍历重建子网格,通过遍历输入的重建子网格根据目标合并信息进行两两合并操作,并不断更新合并网格直到得到最终的解码网格。以下以几何顶点的合并为例说明具体的合并过程。
首先,解码端根据解码的初始子网格指示信息指示的初始化重建子网格初始化合并网格,或者使用与编码端相对应的初始重建子网格的选择方式初始化合并网格,并构建当前合并网格对应的第三映射关系,如几何坐标与顶点索引之间的映射关系。然后遍历其余重建子网格,根据目标合并信息进行子网格合并操作,子网格合并流程与编码端获取目标合并信息的流程类似。具体地,在遍历其余重建子网格将重建子网格与当前合并网格进行合并操作时,解码端可以根据解码得到子网格相关合并信息以及重建子网格对应的顶点相关合并信息执行后续判断流程,也可以只根据重建子网格对应的顶点相关合并信息执行后续流程,具体执行方式与编码信息相对应即可。
例如,若第一指示信息指示当前重建子网格为不需要进行合并重复信息操作的子网格,则针对该重建子网格,解码端可以跳过后续流程中遍历重建子网格所有顶点的判断操作,直接将当前重建子网格中的所有顶点记录为待添加顶点,然后执行后续向当前合并网格中添加顶点、更新三角形的连接关系和向当前合并网格中添加三角形的操作。同时在添加三角形时可以跳过对被重复划分的三角形的判断步骤。或者,若第一指示信息指示当前重建子网格为需要进行合并重复信息操作的重建子网格,则按照图11中的步骤执行子网格合并操作。
对于只根据子网格的顶点相关合并信息执行子网格合并操作的方式,解码端则直接按照如下步骤执行子网格合并操作。此种方式对于不需要执行合并重复信息操作的子网格直接通过以下判断操作添加进合并网格中,对于需要执行合并重复信息操作的子网格也可以通过以下判断执行相应的合并重复信息的操作并将其合并到合并网格中。
图11示出了一种将重建子网格与当前合并网格进行合并操作的具体流程。
具体的,以几何顶点为例,遍历当前重建子网格中的顶点,例如顶点索引为vIdx,在当前重建子网格中的顶点未遍历完(即vIdx<cur_submesh.points.size())的情况下,对当前顶点执行步骤1中的判断。
步骤1,确定当前顶点是否存在于当前合并网格中。
例如,解码端可以通过当前合并网格中的几何坐标与顶点索引之间的映射关系确定当前顶点的几何坐标是否存在于当前合并网格中。若当前顶点的几何坐标不存在于当前合并网格中,则表示当前顶点不为当前重建子网格的边界顶点,即该当前顶点不是合并子网格时需要合并的顶点,此时记录当前顶点为待添加顶点;若当前顶点的几何坐标存在于当前合并网格中,则表示当前顶点是当前重建子网格的边界顶点,则执行步骤2。
步骤2,确定当前顶点是否为被重复划分的顶点。
例如,解码端可以根据解码得到的边界顶点对应的第一标识确定当前顶点是否为原始网格中的被重复划分的顶点,若当前顶点不是被重复划分的顶点,则该当前顶点不是合并网格时需要进行合并重复信息操作的顶点,此时,记录当前顶点为待添加顶点,或者,若当前顶点是被重复划分的边界顶点,则执行步骤3。
步骤3,确定当前顶点是否为重复顶点。
例如,解码端可以根据解码端得到的第一类顶点对应的第二标识确定当前顶点是否为原始网格中的重复顶点。若当前顶点不是原始网格中的重复顶点,则可以将当前合并网格中与该当前顶点的几何坐标相同的顶点作为合并顶点,并将当前顶点所在三角形中的顶点索引更新为该合并顶点的顶点索引。或者,若当前顶点为原始网格中的重复顶点,则当前顶点为原始网格中的特定顶点,可以根据解码得到的特定顶点对应的目标顶点索引确定当前顶点在当前合并网格中的合并顶点,并将当前点所在三角形中的顶点索引更新为该合并顶点的顶点索引。
在当前重建子网格中的所有顶点遍历结束后,解码端可以将记录的待添加顶点,添加进当前合并网格中,并将这些顶点在当前子网格中所在三角形中的顶点索引更新为其添加到合并网格后的顶点索引。解码端还可以更新当前合并网格中的几何坐标与顶点索引之间的映射关系,然后将更新后的当前重建子网格中的三角形添加进当前合并网格中。例如解码端可以首先判断当前重建子网格中的三角形为被重复划分的三角形,例如可以根据三角形中的三个顶点是否为被重复划分的顶点以及三个顶点是否存在于当前合并网格中确定三角形为被重复划分的三角形,具体判断方式参考编码端的具体说明。对于被重复划分的三角形,解码端可以不对其执行添加操作;对于未被重复划分的三角形,解码端可以对其执行添加操作,从而得到更新后的当前合并网格。然后可以根据更新后的当前合并网格可以更新当前合并网格对应的第三映射关系,如几何坐标与顶点索引之间的映射关系。
迭代上述过程,直至所有重建子网格被遍历完成,得到最终的解码网格。
需要说明的是,以上以基于几何坐标对应的合并信息对重建子网格进行合并处理为例进行说明,当对于其他顶点信息对应的合并信息,解码端还可以基于其他顶点信息对应的合并信息执行上述过程,或者,也可以在基于几何坐标对应的合并信息对重建子网格进行合并处理的过程中,基于其他顶点信息对应的合并信息对重建子网格进行合并处理,本申请对于具体的执行过程不作限定。
在本申请实施例中,还对缝合补充增强信息(Supplemental enhancementinformation,SEI)信息语法的语法结构进行设计。
例如增加了以下变量中的至少一项:
zp_number_of_geo_border_verts[k][p];
zp_coded_is_geo_dup_divided_sizes[k][p];
zp_geo_dup_divided_flags[k][p][j];
zp_number_of_geo_dup_dup_verts[k][p];
zp_number_of_geo_dup_divided_verts[k][p];
zp_coded_is_geo_dup_dup_sizes[k][p];
zp_geo_dup_dup_flags[k][p][j];
zp_target_geo_merged_vert_idx_delta;
zp_mesh_attribute_count[k];
zp_number_of_attr_border_verts[k][p][attrIdx];
zp_coded_is_attr_dup_divided_sizes[k][p][attrIdx];
zp_attr_dup_divided_flags[k][p][attrIdx][j];
zp_number_of_attr_dup_dup_verts[k][p][attrIdx];
zp_number_of_attr_dup_divided_verts[k][p][attrIdx];
zp_coded_is_attr_dup_dup_sizes[k][p][attrIdx];zp_attr_dup_dup_flags[k][p][attrIdx][j];
zp_target_attr_merged_vert_idx_delta[k][p][attrIdx][j]。
在一些实施例中,SEI信息的语法结构可以如下所示:
其中,zp_instances_updated表示在当前缝合SEI信息中将被更新的缝合实例数量。
其中,zp_instance_index[i]表示数组ZipperingMethod中的第i个缝合实例索引,该索引将由当前SEI信息更新。
其中,zp_instance_cancel_flag[k]等于1表示ZipperingMethod[k]的值和所有与索引为k的缝合实例相关的参数应该分别设置为0和它们的默认值。
其中,zp_method_type[k]表示缝合方法,即ZipperingMethod[k],用于处理当前帧的三维网格。表1输出了zp_method_type[k]的取值和解释的对应关系
表1
可选的,本申请实施例的提供的编解码方法能够实现的缝合方法可称为无损缝合方法,可以通过zp_method_type[k]的预留值例如3来表示。
zp_method_type[k]大于3的值保留供ISO/IEC将来使用。符合本版本文档的位流不包含这样的zp_method_type[k]值,这是比特流一致性的要求。解码器应该忽略包含zp_method_type[k]保留值的缝合SEI信息。zp_method_type[k]的默认值为0。
zp_number_of_submeshes_minus1[k]加1表示被当前SEI信息缝合的submesh的数量。zp_number_of_submeshes_minus1[k]的值的范围0-MaxNumSubmeshes[frameIdx]–1。zp_number_of_submeshes_minus1[k]的默认值为0。
其中,zp_number_of_geo_border_verts[k][p]表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的子网格中的几何边界顶点的数量。
其中,zp_coded_is_geo_dup_divided_sizes[k][p]表示第一标识
zp_geo_dup_divided_flags[k][p][j]的算术编码序列的字节大小,包含最终的字节对齐。
其中,zp_geo_dup_divided_flags[k][p][j]等于1表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的子网格中第j个解码几何边界顶点为被重复划分的几何顶点。zp_geo_dup_divided_flags[k][p][j]等于0表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的子网格中第j个解码几何边界顶点不是被重复划分的几何顶点。
其中,zp_number_of_geo_dup_dup_verts[k][p]表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的子网格的被重复划分的几何顶点中在原始网格中的几何重复顶点的数量。
其中,zp_number_of_geo_dup_divided_verts[k][p]表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的子网格中的被重复划分的几何顶点的数量。
其中,zp_coded_is_geo_dup_dup_sizes[k][p]表示第二标识
zp_geo_dup_dup_flags[k][p][j]的算术编码序列的字节大小,包含最终的字节对齐。
其中,zp_geo_dup_dup_flags[k][p][j]等于1表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的submesh的第j个被重复划分的几何顶点为原始网格中的重复的几何顶点。zp_geo_dup_dup_flags[k][p][j]等于0表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的submesh的第j个被重复划分的几何顶点不为原始网格中的重复的几何顶点。
其中,zp_target_geo_merged_vert_idx_delta[k][p][j],当j大于0时,表示第j个被重复划分的重复的几何顶点的目标顶点索引与第(j-1)个被重复划分的重复的几何顶点的目标顶点索引之间的差值。当j等于0,zp_target_geo_merged_vert_idx_delta[k][p][j]表示被重复划分的几何顶点中的第1个重复的几何顶点的目标顶点索引。其中,p表示索引为p的子网格,k表示在当前帧的三维网格中索引为k的缝合实例。
其中,zp_mesh_attribute_count[k]表示在当前帧的三维网格中对于索引为k的缝合实例来说,划分的属性的数量。
其中,zp_number_of_attr_border_verts[k][p][attrIdx]表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的submesh中的第attrIdx个属性的边界顶点的数量。
其中,zp_coded_is_attr_dup_divided_sizes[k][p][attrIdx]表示第一标识zp_attr_dup_divided_flags[k][p][attrIdx][j]的算术编码序列的字节大小,包含最终的字节对齐。
其中,zp_attr_dup_divided_flags[k][p][attrIdx][j]等于1表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的子网格中第attrIdx个属性的第j个解码边界顶点为被重复划分的属性顶点。zp_attr_dup_divided_flags[k][p][j]等于0表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的子网格中第attrIdx个属性的第j个解码边界顶点不为被重复划分的属性顶点。
其中,zp_number_of_attr_dup_dup_verts[k][p][attrIdx]表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的submesh的第attrIdx个属性的被重复划分的顶点中的在原始网格中的重复顶点的数量。
其中,zp_number_of attr_dup_divided_verts[k][p][attrIdx]表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的submesh的第attrIdx个属性的被重复划分的顶点的数量。
其中,zp_coded_is_attr_dup_dup_sizes[k][p][attrIdx]表示二进制重复指示信息zp_attr_dup_dup_flags[k][p][attrIdx][j]的算术编码序列的字节大小,包含最终的字节对齐。
其中,zp_attr_dup_dup_flags[k][p][attrIdx][j]等于1表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的submesh的第attrIdx个属性的第j个被重复划分的顶点为原始网格中的重复的属性顶点。zp_attr_dup_dup_flags[k][p][attrIdx][j]等于0表示在当前帧的三维网格中对于索引为k的缝合实例来说,索引为p的submesh的第attrIdx个属性的第j个被重复划分的顶点不为原始网格中的重复的属性顶点。
其中,zp_target_attr_merged_vert_idx_delta[k][p][attrIdx][j]当j大于0时,表示第attrIdx个属性的第j个被重复划分的重复顶点的目标顶点索引与第attrIdx个属性的第(j-1)个被重复划分的重复顶点的目标顶点索引之间的差值。当j等于0时,zp_target_attr_merged_vert_idx_delta[k][p][attrIdx][j]表示第attrIdx个属性的被重复划分的顶点中的第1个重复顶点的目标顶点索引。其中,p表示索引为p的submesh,k表示在当前帧的三维网格中索引为k的缝合实例。
综上,在本申请实施例中,编码端可以对原始网格中的多个子网格进行编码得到第一码流,基于第一码流(子网格码流)进行网格重建,得到多个重建子网格,然后基于多个重建子网格和原始网格获取目标合并信息,并对该目标合并信息进行编码,获取第二码流,基于第一码流和第二码流生成目标码流后发送给解码端,从而解码端可以通过对目标码流进行解码获取该多个重建子网格和该目标合并信息,然后基于该目标合并信息对该多个重建子网格进行合并处理,提升解码网格的恢复性能。
本申请实施例提供的编码方法,执行主体可以为编码装置。本申请实施例中以编码装置执行编码方法为例,说明本申请实施例提供的编码装置。
图12示出了根据本申请实施例的编码装置600的示意性框图。如图12所示,该编码装置600包括:
第一编码模块610,用于对三维网格的多个子网格进行编码,获取第一码流;
解码模块620,用于对所述第一码流进行解码,获取多个重建子网格;
获取模块630,用于根据所述多个重建子网格和所述三维网格获取目标合并信息,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
第二编码模块640,用于对所述目标合并信息进行编码,获取第二码流;
生成模块650,基于所述第一码流和所述第二码流,生成目标码流。
在一些实施例中,所述子网格相关合并信息用于指示所述多个重建子网格中的目标子网格和/或与所述目标子网格进行合并的合并子网格,所述目标子网格是所述多个重建子网格中需要合并的子网格。
在一些实施例中,所述子网格相关合并信息包括以下至少一项:
所述多个重建子网格中的每个重建子网格对应的第一指示信息,用于指示所述重建子网格是否为目标子网格,所述目标子网格为需要合并的重建子网格;
所述目标子网格对应的第二指示信息,用于指示需要与所述目标子网格进行合并的合并子网格。
在一些实施例中,所述顶点相关合并信息用于指示重建子网格中需要合并的目标顶点和/或所述目标顶点对应的合并顶点。
在一些实施例中,所述顶点相关合并信息包括以下至少一项:
重建子网格中的边界顶点的数量;
重建子网格中的边界顶点对应的第一标识,用于标识所述边界顶点是否为所述三维网格中的第一类顶点,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点;
重建子网格中的第一类顶点的数量;
对所述边界顶点对应的第一标识进行编码得到的编码序列的字节大小;
重建子网格中的第一类顶点对应的第二标识,用于标识所述第一类顶点是否为所述三维网格中的第二类顶点,其中,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
对所述第一类顶点对应的第二标识进行编码得到的编码序列的字节大小;
重建子网格中的特定顶点对应的目标顶点索引,所述目标顶点索引用于指示与所述特定顶点在合并网格中进行合并的合并顶点对应的顶点索引,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点;
重建子网格中的特定顶点的数量,其中,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点。
在一些实施例中,所述目标合并信息包括至少一个重建子网格对应的顶点相关合并信息,其中,所述至少一个重建子网格包括所述多个重建子网格中除第一重建子网格之外的重建子网格,所述第一重建子网格是作为初始合并网格的子网格;或者,所述至少一个重建子网格包括所述多个重建子网格中需要合并的重建子网格。
在一些实施例中,所述获取模块630还用于:
根据所述三维网格获取所述三维网格对应的第一映射关系,所述第一映射关系用于描述所述三维网格中的顶点和/或三角形相关的映射关系;
基于所述第一映射关系和所述多个重建子网格,获取所述多个重建子网格中的每个重建子网格对应的第二映射关系,所述第二映射关系用于指示所述重建子网格和所述三维网格中的顶点之间的映射关系;
根据所述第一映射关系、所述多个重建子网格和所述每个重建子网格对应的第二映射关系,获取所述目标合并信息。
在一些实施例中,所述第一映射关系包括以下至少一项:
所述三维网格中的顶点信息和顶点索引之间的映射关系;
所述三维网格中的三角形的的三个顶点的顶点信息与三角形索引之间的映射关系;
所述三维网格中的三角形索引与三角形的顶点索引之间的映射关系。
在一些实施例中,所述第二映射关系包括所述重建子网格中的顶点索引和所述三维网格中的顶点索引之间的映射关系。
在一些实施例中,所述获取模块630还用于执行以下至少一项:
遍历所述三维网格中的所有顶点,构建所述三维网格中的顶点信息和顶点索引之间的映射关系;
遍历所述三维网格中的三角形,获取所述三角形的三个顶点的顶点信息以及所述三个顶点的顶点信息对应的三角形索引,基于所述三角形的三个顶点的顶点信息以及所述三个顶点的顶点信息对应的三角形索引构建所述三维网格中的顶点信息与三角形索引之间的映射关系以及所述三维网格中的三角形索引与三角形的顶点索引之间的映射关系。
在一些实施例中,所述获取模块630还用于:
遍历所述多个重建子网格中的每个重建子网格;
对于遍历到的当前重建子网格,遍历所述当前重建子网格中的三角形,获取所述三角形的三个顶点的顶点索引以及所述三角形的三个顶点的顶点信息;
根据所述三角形的三个顶点的顶点索引和所述三角形的三个顶点的顶点信息,确定所述三角形的三个顶点的顶点索引在所述三角形中的排列顺序;
根据所述三角形的三个顶点的顶点信息、所述三角形的三个顶点的顶点索引在所述三角形中的排列顺序和所述第一映射关系中的三角形的三个顶点的顶点信息和三角形索引之间的映射关系,确定所述三角形在所述三维网格中匹配的目标三角形对应的三角形索引;
根据所述目标三角形对应的三角形索引、所述第一映射关系中的三角形索引和三角形的顶点索引之间的映射关系以及所述第一映射关系中的三角形的三个顶点的顶点信息和三角形的顶点索引之间的映射关系,获取所述目标三角形的三个顶点的顶点索引以及所述目标三角形的三个顶点的顶点索引在所述目标三角形中的排列顺序;
根据所述三角形的三个顶点的顶点索引、所述三角形的三个顶点的顶点索引在所述三角形中的排列顺序、所述目标三角形的三个顶点的顶点索引以及所述目标三角形的三个顶点的顶点索引在所述目标三角形中的排列顺序,构建所述当前重建子网格中的顶点索引和所述三维网格中的顶点索引之间的映射关系。
在一些实施例中,所述获取模块630还用于执行以下至少一项:
在所述多个重建子网格中选择第一重建子网格作为当前合并网格;
构建所述当前合并网格对应的第三映射关系,其中,所述第三映射关系用于指示所述当前合并网格中的顶点信息和顶点索引之间的映射关系;
根据所述第一重建子网格对应的第二映射关系构建所述当前合并网格对应的第四映射关系,所述第四映射关系用于指示所述当前合并网格中的顶点索引和所述三维网格中的顶点索引之间的映射关系;
遍历所述多个重建子网格中除所述第一重建子网格之外的重建子网格,根据所述第一映射关系、所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系以及第四映射关系,确定所述重建子网格中的第一类顶点和所述第二类顶点中的至少一项;
根据所述重建子网格中的第一类顶点和所述第二类顶点中的至少一项,获取所述目标合并信息。
在一些实施例中,所述装置还包括:处理模块,用于执行以下至少一项:
遍历所述重建子网格中的所有顶点,根据所述当前合并网格对应的第三映射关系确定当前顶点是否存在于所述当前合并网格中;
若所述当前顶点不处于所述当前合并网格中,确定所述当前顶点不是所述第一类顶点,将所述当前顶点确定为待添加顶点;或者
若所述当前顶点处于所述当前合并网格中,根据所述第一映射关系中的顶点信息和顶点索引之间的映射关系确定所述当前顶点是否为第二类顶点;
在所述当前顶点不是第二类顶点的情况下,将所述当前顶点的第一标识设置为用于标识所述当前顶点是第一类顶点,将所述当前顶点的第二标识设置为用于标识所述顶点不是第二类顶点,并且将所述当前顶点在三角形中的顶点索引更新为所述当前合并网格中的合并顶点对应的顶点索引,其中,所述合并顶点和所述当前顶点的顶点信息相同;
在所述当前顶点是第二类顶点的情况下,根据所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系和第四映射关系,确定所述当前顶点是否为第一类顶点;
在所述当前顶点不是所述第一类顶点的情况下,将所述当前顶点的第一标识设置为用于标识所述当前顶点不是第一类顶点,并将所述当前顶点确定为待添加顶点;
在所述当前顶点是第一类顶点的情况下,将所述当前顶点的第一标识设置为用于标识所述当前顶点是第一类顶点,将所述当前顶点的第二标识设置为用于标识所述当前顶点是第二类顶点,将所述当前顶点在三角形中的顶点索引更新为所述当前合并网格中的合并顶点对应的顶点索引,并将所述合并顶点对应的顶点索引作为所述当前顶点对应的目标顶点索引,其中,所述合并顶点和所述当前顶点的顶点信息相同,并且所述合并顶点和所述当前顶点在所述三维网格中对应的顶点索引相同;
在遍历完所述重建子网格中的所有顶点的情况下,将获取的所有待添加顶点添加到所述当前合并网格中,更新所述待添加顶点在所述当前合并网格中的顶点索引,并更新所述当前合并网格对应的第三映射关系和第四映射关系。
在一些实施例中,所述处理模块还用于:
根据所述当前顶点的顶点信息以及所述第一映射关系,确定所述三维网格中是否存在至少两个顶点的顶点信息和所述当前顶点的顶点信息相同,但对应的顶点索引不同;
若存在至少两个顶点的顶点信息和所述当前顶点的顶点信息相同但对应的顶点索引不同,确定所述当前顶点是所述第二类顶点。
在一些实施例中,所述处理模块还用于:
根据所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系和第四映射关系,确定所述当前合并网格中是否存在至少一个顶点的顶点信息和所述当前顶点的顶点信息相同,并且所述至少一个顶点信息在所述三维网格中对应的的顶点索引和所述当前顶点在所述三维网格中对应的顶点索引相同;
若存在,确定所述当前顶点为第一类顶点;或者,若不存在,确定所述当前顶点不是第一类顶点。
在一些实施例中,所述装置还包括:
处理模块,用于根据所述重建子网格中的第一类顶点,确定所述重建子网格中的三角形为待添加三角形还是第一类三角形,所述第一类三角形是所述三维网格中被拆分到至少两个子网格中的三角形;
将所述待添加三角形添加至所述当前合并网格中,或者,不将所述第一类三角形添加到所述当前合并网格中。
在一些实施例中,所述处理模块还用于:
根据所述重建子网格中的所述三角形的三个顶点是否为第一类顶点以及所述三个顶点所在的三角形是否存在于所述当前合并网格中,确定所述三角形为待添加三角形还是第一类三角形;
其中,若所述三角形的三个顶点均为第一类顶点,并且所述三个顶点所在的三角形存在于所述当前合并网格中,确定所述三角形是所述第一类三角形;或者
若所述三角形的三个顶点中存在不是第一类顶点的顶点,或者所述三个顶点所在的三角形不存在于所述当前合并网格中,确定所述三角形是所述待添加三角形。
本申请实施例提供的解码方法,执行主体可以为解码装置。本申请实施例中以解码装置执行解码为例,说明本申请实施例提供的解码装置。
图13示出了根据本申请实施例的解码装置700的示意性框图。如图13所示,该解码装置700包括:
获取模块710,用于获取三维网格对应的目标码流,其中,所述三维网格包括多个子网格;
解码模块720,用于对所述目标码流进行解码,获取多个重建子网格和目标合并信息,其中,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
合并处理模块730,用于根据所述目标合并信息,对所述多个重建子网格进行合并处理。
在一些实施例中,所述子网格相关合并信息用于指示所述多个重建子网格中的目标子网格和/或与所述目标子网格进行合并的合并子网格,所述目标子网格是所述多个重建子网格中需要合并的子网格。
在一些实施例中,所述子网格相关合并信息包括以下至少一项:
所述多个重建子网格中的每个重建子网格对应的第一指示信息,用于指示所述重建子网格是否为目标子网格,所述目标子网格为需要合并的重建子网格;
所述目标子网格对应的第二指示信息,用于指示需要与所述目标子网格进行合并的合并子网格。
在一些实施例中,所述顶点相关合并信息用于指示重建子网格中需要合并的目标顶点和/或所述目标顶点对应的合并顶点。
在一些实施例中,所述顶点相关合并信息包括以下至少一项:
重建子网格中的边界顶点的数量;
重建子网格中的边界顶点对应的第一标识,用于标识所述边界顶点是否为所述三维网格中的第一类顶点,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点;
重建子网格中的第一类顶点的数量;
对所述边界顶点对应的第一标识进行编码得到的编码序列的字节大小;
重建子网格中的第一类顶点对应的第二标识,用于标识所述第一类顶点是否为所述三维网格中的第二类顶点,其中,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
对所述第一类顶点对应的第二标识进行编码得到的编码序列的字节大小;
重建子网格中的特定顶点对应的目标顶点索引,所述目标顶点索引用于指示与所述特定顶点在合并网格中进行合并的合并顶点对应的顶点索引,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点;
重建子网格中的特定顶点的数量,其中,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点。
在一些实施例中,所述目标合并信息包括至少一个重建子网格对应的顶点相关合并信息,其中,所述至少一个重建子网格包括所述多个重建子网格中除第一重建子网格之外的重建子网格,所述第一重建子网格是作为初始合并网格的子网格;或者,所述至少一个重建子网格包括所述多个重建子网格中需要合并的重建子网格。
在一些实施例中,所述合并处理模块730还用于执行以下至少一项:
在所述多个重建子网格中选择第一重建子网格作为当前合并网格;
构建所述当前合并网格对应的第三映射关系,其中,所述第三映射关系用于指示所述当前合并网格中的顶点信息和顶点索引之间的映射关系;
遍历所述多个重建子网格中除所述第一重建子网格之外的重建子网格,根据所述当前合并网格对应的第三映射关系确定所述重建子网格中的边界顶点和非边界顶点中的至少一项;
将所述重建子网格中的非边界顶点确定为待添加顶点;
根据所述目标合并信息,确定所述边界顶点中的待添加顶点、第一类顶点和所述第二类顶点中的至少一项,其中,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
根据确定的所述重建子网格中的待添加顶点、第一类顶点和所述第二类顶点中的至少一项,对所述重建子网格和所述当前合并网格进行合并处理。
在一些实施例中,所述合并处理模块730还用于执行以下至少一项:
根据解码得到的所述边界顶点对应的第一标识确定所述边界顶点是否为第一类顶点;
在所述边界顶点不是第一类顶点的情况下,将所述边界顶点确定为待添加顶点;
在所述边界顶点是第一类顶点的情况下,根据所述第一类顶点对应的第二标识确定所述边界顶点是否还是第二类顶点;
在所述边界顶点不是第二类顶点的情况下,将所述当前合并网格中具有相同顶点信息的顶点确定为所述边界顶点的合并顶点;
在所述边界顶点还是第二类顶点的情况下,所述边界顶点为所述重建子网格中的特定顶点,根据所述特定顶点对应的目标顶点索引确定与所述边界顶点进行合并的合并顶点。
在一些实施例中,所述根据确定的所述重建子网格中的待添加顶点、第一类顶点和所述第二类顶点中的至少一项,对所述重建子网格和所述当前合并网格进行合并处理,包括以下至少一项:
将所述待添加顶点添加到所述当前合并网格中,并更新所述待添加顶点在所述当前合并网格中对应的顶点索引;
将所述重建子网格中的第一边界顶点和所述当前合并网格中的第一合并顶点合并,并将所述第一边界顶点在三角形中的顶点索引更新为所述当前合并网格中的所述第一合并顶点的顶点索引,其中,所述第一合并顶点和所述第一边界顶点对应相同的顶点信息,其中,所述第一边界顶点为所述重建子网格中是第一类顶点但不是第二类顶点的边界顶点;
将所述重建子网格中的第二边界顶点与第二合并顶点合并,并将所述第二边界顶点在三角形中的顶点索引更新为所述当前合并网格中的所述第二合并顶点的顶点索引,其中,所述第二合并顶点是所述第二边界顶点对应的目标顶点索引所指示的顶点,其中,所述第二边界顶点为所述重建子网格中是第一类顶点并且是第二类顶点的边界顶点。
在一些实施例中,所述合并处理模块730还用于执行以下至少一项:
根据所述重建子网格中的第一类顶点,确定所述重建子网格中的三角形为待添加三角形还是第一类三角形,所述第一类三角形是所述三维网格中被拆分到至少两个子网格中的三角形;
将所述待添加三角形添加至所述当前合并网格中,或者,不将所述第一类三角形添加到所述当前合并网格中。
在一些实施例中,所述合并处理模块730还用于执行以下至少一项:
根据所述重建子网格中的所述三角形的三个顶点是否为第一类顶点以及所述三个顶点所在的三角形是否存在于所述当前合并网格中,确定所述三角形为待添加三角形还是第一类三角形;
其中,若所述三角形的三个顶点均为第一类顶点,并且所述三个顶点所在的三角形存在于所述当前合并网格中,确定所述三角形是所述第一类三角形;或者
若所述三角形的三个顶点中存在不是第一类顶点的顶点,或者所述三个顶点所在的三角形不存在于所述当前合并网格中,确定所述三角形是所述待添加三角形。
本申请实施例提供的编码装置和解码装置能够实现图5至图11的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
如图14所示,本申请实施例还提供一种电子设备800,包括处理器801和存储器802,存储器802上存储有可在所述处理器801上运行的程序或指令,例如,该电子设备800为编码端设备时,该程序或指令被处理器801执行时实现上述编码方法实施例的各个步骤,且能达到相同的技术效果。该电子设备800为解码端设备时,该程序或指令被处理器801执行时实现上述解码方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
可选的,存储器802可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬驱动器、蓝光光盘、数字多功能光盘(Digital Versatile Disc,DVD)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、闪存、易失性或非易失性存储器或者用于存储三维网格数据的任何其他合适的数字存储介质。
可选的,处理器801可以实现图5至图11所示实施例中的编码端或解码端的功能。
本申请实施例还提供一种电子设备,包括:存储器,被配置为存储三维网格数据;以及处理电路,被配置为实现如上述编码方法和解码方法实施例的各个步骤。
本申请实施例还提供一种电子设备,包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如图5至图11所示方法实施例中的步骤。该设备实施例与上述方法实施例对应,上述方法实施例的各个实施过程和实现方式均可适用于该终端实施例中,且能达到相同的技术效果。
上述电子设备可以是终端,也可以为除终端之外的其他设备,例如服务器、网络附属存储器(Network Attached Storage,NAS)等。
其中,终端可以是手机、平板电脑(Tablet Personal Computer)、膝上型电脑(Laptop Computer)、笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)、掌上电脑、上网本、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、移动上网装置(Mobile Internet Device,MID)、增强现实(Augmented Reality,AR)、虚拟现实(Virtual Reality,VR)设备、混合现实(mixed reality,MR)设备、机器人、可穿戴式设备(Wearable Device)、飞行器(flight vehicle)、车载设备(Vehicle User Equipment,VUE)、船载设备、行人终端(Pedestrian User Equipment,PUE)、智能家居(具有无线通信功能的家居设备,如冰箱、电视、洗衣机或者家具等)、游戏机、个人计算机(PersonalComputer,PC)、柜员机或者自助机等终端侧设备。可穿戴式设备包括:智能手表、智能手环、智能耳机、智能眼镜、智能首饰(智能手镯、智能手链、智能戒指、智能项链、智能脚镯、智能脚链等)、智能腕带、智能服装等。其中,车载设备也可以称为车载终端、车载控制器、车载模块、车载部件、车载芯片或车载单元等。需要说明的是,在本申请实施例并不限定终端的具体类型。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是云服务器,该云服务器可以提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、或以大数据和人工智能平台为基础的云计算服务等。
以电子设备为终端为例,图15为实现本申请实施例的一种终端的硬件结构示意图。
该终端900包括但不限于:射频单元901、网络模块902、音频输出单元903、输入单元904、传感器905、显示单元906、用户输入单元907、接口单元908、存储器909以及处理器910等中的至少部分部件。
本领域技术人员可以理解,终端900还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器9 10逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗管理等功能。图15中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本申请实施例中,输入单元9 04可以包括图形处理单元(GraphicsProcessing Unit,GPU)9 041和麦克风9 042,图形处理器9 041对在视频采集模式或图像采集模式中由图像采集装置(如摄像头)获得的静态图片或视频的图像数据进行处理,或者可以对获得的点云数据或三维网格数据进行处理。显示单元9 06可包括显示面板9 061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板9 061。用户输入单元9 07包括触控面板9 071以及其他输入设备9 072中的至少一种。触控面板9
071,也称为触摸屏。触控面板9 071可包括触摸检测装置和触摸控制器两个部分。其他输入设备9 072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
本申请实施例中,射频单元9 01接收来自网络侧设备的下行数据后,可以传输给处理器910进行处理;另外,射频单元901可以向网络侧设备发送上行数据。通常,射频单元901包括但不限于天线、放大器、收发信机、耦合器、低噪声放大器、双工器等。
存储器909可用于存储软件程序或指令以及各种数据。存储器909可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器909可以包括易失性存储器或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器x09包括但不限于这些和任意其它适合类型的存储器。
处理器910可包括一个或多个处理单元;可选的,处理器910集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器910中。
在一些实现方式中,该处理器910用于:
编码端对三维网格的多个子网格进行编码,获取第一码流;
所述编码端对所述第一码流进行解码,获取多个重建子网格;
所述编码端根据所述多个重建子网格和所述三维网格获取目标合并信息,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
所述编码端对所述目标合并信息进行编码,获取第二码流;
所述编码端基于所述第一码流和所述第二码流,生成目标码流。
可以理解,本实施例中提及的各实现方式的实现过程可以参照编码方法实施例的相关描述,并达到相同或相应的技术效果,为避免重复,在此不再赘述。
在另一些实现方式中,该处理器910用于:
解码端获取三维网格对应的目标码流,其中,所述三维网格包括多个子网格;
所述解码端对所述目标码流进行解码,获取多个重建子网格和目标合并信息,其中,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
所述解码端根据所述目标合并信息,对所述多个重建子网格进行合并处理。
可以理解,本实施例中提及的各实现方式的实现过程可以参照解码方法实施例的相关描述,并达到相同或相应的技术效果,为避免重复,在此不再赘述。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述图5至图11方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的终端中的处理器。所述可读存储介质,包括计算机可读存储介质,如ROM、RAM、磁碟或者光盘等。在一些示例中,可读存储介质可以是非瞬态的可读存储介质。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述图5至图11方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片可以包括系统级芯片(也可称为系统芯片、芯片系统或片上系统芯片),也可以包括独立显示芯片等。
本申请实施例另提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述计算机程序/程序产品被至少一个处理器执行以实现上述图5至图11方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供了一种编解码系统,包括:编码端设备及解码端设备,所述编码端设备可用于执行如上所述的编码方法的步骤,所述解码端设备可用于执行如上所述的解码方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助计算机软件产品加必需的通用硬件平台的方式来实现,当然也可以通过硬件。该计算机软件产品存储在存储介质(如ROM、RAM、磁碟、光盘等)中,包括若干指令,用以使得终端或者网络侧设备执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式的实施方式,这些实施方式均属于本申请的保护之内。

Claims (44)

1.一种编码方法,其特征在于,包括:
编码端对三维网格的多个子网格进行编码,获取第一码流;
所述编码端对所述第一码流进行解码,获取多个重建子网格;
所述编码端根据所述多个重建子网格和所述三维网格获取目标合并信息,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
所述编码端对所述目标合并信息进行编码,获取第二码流;
所述编码端基于所述第一码流和所述第二码流,生成目标码流。
2.根据权利要求1所述的方法,其特征在于,所述子网格相关合并信息用于指示所述多个重建子网格中的目标子网格和/或与所述目标子网格进行合并的合并子网格,所述目标子网格是所述多个重建子网格中需要合并的子网格。
3.根据权利要求1或2所述的方法,其特征在于,所述子网格相关合并信息包括以下至少一项:
所述多个重建子网格中的每个重建子网格对应的第一指示信息,用于指示所述重建子网格是否为目标子网格,所述目标子网格为需要合并的重建子网格;
所述目标子网格对应的第二指示信息,用于指示需要与所述目标子网格进行合并的合并子网格。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述顶点相关合并信息用于指示重建子网格中需要合并的目标顶点和/或所述目标顶点对应的合并顶点。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述顶点相关合并信息包括以下至少一项:
重建子网格中的边界顶点的数量;
重建子网格中的边界顶点对应的第一标识,用于标识所述边界顶点是否为所述三维网格中的第一类顶点,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点;
对所述边界顶点对应的第一标识进行编码得到的编码序列的字节大小;
重建子网格中的第一类顶点的数量,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点;
重建子网格中的第一类顶点对应的第二标识,用于标识所述第一类顶点是否为所述三维网格中的第二类顶点,其中,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
对所述第一类顶点对应的第二标识进行编码得到的编码序列的字节大小;
重建子网格中的特定顶点对应的目标顶点索引,所述目标顶点索引用于指示与所述特定顶点在合并网格中进行合并的合并顶点对应的顶点索引,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点;
重建子网格中的特定顶点的数量,其中,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述目标合并信息包括至少一个重建子网格对应的顶点相关合并信息,其中,所述至少一个重建子网格包括所述多个重建子网格中除第一重建子网格之外的重建子网格,所述第一重建子网格是作为初始合并网格的子网格;或者,所述至少一个重建子网格包括所述多个重建子网格中需要合并的重建子网格。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述编码端根据所述多个重建子网格和所述三维网格获取目标合并信息,包括:
根据所述三维网格获取所述三维网格对应的第一映射关系,所述第一映射关系用于描述所述三维网格中的顶点和/或三角形相关的映射关系;
基于所述第一映射关系和所述多个重建子网格,获取所述多个重建子网格中的每个重建子网格对应的第二映射关系,所述第二映射关系用于指示所述重建子网格和所述三维网格中的顶点之间的映射关系;
根据所述第一映射关系、所述多个重建子网格和所述每个重建子网格对应的第二映射关系,获取所述目标合并信息。
8.根据权利要求7所述的方法,其特征在于,所述第一映射关系包括以下至少一项:
所述三维网格中的顶点信息和顶点索引之间的映射关系;
所述三维网格中的三角形的的三个顶点的顶点信息与三角形索引之间的映射关系;
所述三维网格中的三角形索引与三角形的顶点索引之间的映射关系。
9.根据权利要求7或8所述的方法,其特征在于,所述第二映射关系包括所述重建子网格中的顶点索引和所述三维网格中的顶点索引之间的映射关系。
10.根据权利要求7-9中任一项所述的方法,其特征在于,所述根据所述三维网格获取所述三维网格对应的第一映射关系,包括以下至少一项:
遍历所述三维网格中的所有顶点,构建所述三维网格中的顶点信息和顶点索引之间的映射关系;
遍历所述三维网格中的三角形,获取所述三角形的三个顶点的顶点信息以及所述三个顶点的顶点信息对应的三角形索引,基于所述三角形的三个顶点的顶点信息以及所述三个顶点的顶点信息对应的三角形索引构建所述三维网格中的顶点信息与三角形索引之间的映射关系以及所述三维网格中的三角形索引与三角形的顶点索引之间的映射关系。
11.根据权利要求7-10中任一项所述的方法,其特征在于,所述基于所述第一映射关系和所述多个重建子网格,获取所述多个重建子网格中的每个重建子网格对应的第二映射关系,包括:
遍历所述多个重建子网格中的每个重建子网格;
对于遍历到的当前重建子网格,遍历所述当前重建子网格中的三角形,获取所述三角形的三个顶点的顶点索引以及所述三角形的三个顶点的顶点信息;
根据所述三角形的三个顶点的顶点索引和所述三角形的三个顶点的顶点信息,确定所述三角形的三个顶点的顶点索引在所述三角形中的排列顺序;
根据所述三角形的三个顶点的顶点信息、所述三角形的三个顶点的顶点索引在所述三角形中的排列顺序和所述第一映射关系中的三角形的三个顶点的顶点信息和三角形索引之间的映射关系,确定所述三角形在所述三维网格中匹配的目标三角形对应的三角形索引;
根据所述目标三角形对应的三角形索引、所述第一映射关系中的三角形索引和三角形的顶点索引之间的映射关系以及所述第一映射关系中的三角形的三个顶点的顶点信息和三角形的顶点索引之间的映射关系,获取所述目标三角形的三个顶点的顶点索引以及所述目标三角形的三个顶点的顶点索引在所述目标三角形中的排列顺序;
根据所述三角形的三个顶点的顶点索引、所述三角形的三个顶点的顶点索引在所述三角形中的排列顺序、所述目标三角形的三个顶点的顶点索引以及所述目标三角形的三个顶点的顶点索引在所述目标三角形中的排列顺序,构建所述当前重建子网格中的顶点索引和所述三维网格中的顶点索引之间的映射关系。
12.根据权利要求7-11中任一项所述的方法,其特征在于,所述根据所述第一映射关系、所述多个重建子网格和所述每个重建子网格对应的第二映射关系,获取所述目标合并信息,包括以下至少一项:
在所述多个重建子网格中选择第一重建子网格作为当前合并网格;
构建所述当前合并网格对应的第三映射关系,其中,所述第三映射关系用于指示所述当前合并网格中的顶点信息和顶点索引之间的映射关系;
根据所述第一重建子网格对应的第二映射关系构建所述当前合并网格对应的第四映射关系,所述第四映射关系用于指示所述当前合并网格中的顶点索引和所述三维网格中的顶点索引之间的映射关系;
遍历所述多个重建子网格中除所述第一重建子网格之外的重建子网格,根据所述第一映射关系、所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系以及第四映射关系,确定所述重建子网格中的第一类顶点和第二类顶点中的至少一项;
根据所述重建子网格中的第一类顶点和第二类顶点中的至少一项,获取所述目标合并信息。
13.根据权利要求12所述的方法,其特征在于,所述根据所述第一映射关系、所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系以及第四映射关系,确定所述重建子网格中的第一类顶点和所述第二类顶点中的至少一项,包括以下至少一项:
遍历所述重建子网格中的所有顶点,根据所述当前合并网格对应的第三映射关系确定当前顶点是否存在于所述当前合并网格中;
若所述当前顶点不处于所述当前合并网格中,确定所述当前顶点不是所述第一类顶点,将所述当前顶点确定为待添加顶点;或者
若所述当前顶点处于所述当前合并网格中,根据所述第一映射关系中的顶点信息和顶点索引之间的映射关系确定所述当前顶点是否为第二类顶点;
在所述当前顶点不是第二类顶点的情况下,将所述当前顶点的第一标识设置为用于标识所述当前顶点是第一类顶点,将所述当前顶点的第二标识设置为用于标识所述顶点不是第二类顶点,并且将所述当前顶点在三角形中的顶点索引更新为所述当前合并网格中的合并顶点对应的顶点索引,其中,所述合并顶点和所述当前顶点的顶点信息相同;
在所述当前顶点是第二类顶点的情况下,根据所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系和第四映射关系,确定所述当前顶点是否为第一类顶点;
在所述当前顶点不是所述第一类顶点的情况下,将所述当前顶点的第一标识设置为用于标识所述当前顶点不是第一类顶点,并将所述当前顶点确定为待添加顶点;
在所述当前顶点是第一类顶点的情况下,将所述当前顶点的第一标识设置为用于标识所述当前顶点是第一类顶点,将所述当前顶点的第二标识设置为用于标识所述当前顶点是第二类顶点,将所述当前顶点在三角形中的顶点索引更新为所述当前合并网格中的合并顶点对应的顶点索引,并将所述合并顶点对应的顶点索引作为所述当前顶点对应的目标顶点索引,其中,所述合并顶点和所述当前顶点的顶点信息相同,并且所述合并顶点和所述当前顶点在所述三维网格中对应的顶点索引相同;
在遍历完所述重建子网格中的所有顶点的情况下,将获取的所有待添加顶点添加到所述当前合并网格中,更新所述待添加顶点在所述当前合并网格中的顶点索引,并更新所述当前合并网格对应的第三映射关系和第四映射关系。
14.根据权利要求13所述的方法,其特征在于,所述根据所述第一映射关系中的顶点信息和顶点索引之间的映射关系确定所述当前顶点是否为第二类顶点,包括:
根据所述当前顶点的顶点信息以及所述第一映射关系,确定所述三维网格中是否存在至少两个顶点的顶点信息和所述当前顶点的顶点信息相同,但对应的顶点索引不同;
若存在至少两个顶点的顶点信息和所述当前顶点的顶点信息相同但对应的顶点索引不同,确定所述当前顶点是所述第二类顶点。
15.根据权利要求13或14所述的方法,其特征在于,所述根据所述重建子网格对应的第二映射关系和所述当前合并网格对应的第三映射关系和第四映射关系,确定所述当前顶点是否为第一类顶点,包括:
根据所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系和第四映射关系,确定所述当前合并网格中是否存在至少一个顶点的顶点信息和所述当前顶点的顶点信息相同,并且所述至少一个顶点信息在所述三维网格中对应的的顶点索引和所述当前顶点在所述三维网格中对应的顶点索引相同;
若存在,确定所述当前顶点为第一类顶点;或者,若不存在,确定所述当前顶点不是第一类顶点。
16.根据权利要求12-15中任一项所述的方法,其特征在于,所述方法还包括:
根据所述重建子网格中的第一类顶点,确定所述重建子网格中的三角形为待添加三角形还是第一类三角形,所述第一类三角形是所述三维网格中被拆分到至少两个子网格中的三角形;
将所述待添加三角形添加至所述当前合并网格中,或者,不将所述第一类三角形添加到所述当前合并网格中。
17.根据权利要求16所述的方法,其特征在于,所述根据所述重建子网格中的第一类顶点,确定所述重建子网格中的三角形为待添加三角形还是第一类三角形,包括:
根据所述重建子网格中的所述三角形的三个顶点是否为第一类顶点以及所述三个顶点所在的三角形是否存在于所述当前合并网格中,确定所述三角形为待添加三角形还是第一类三角形;
其中,若所述三角形的三个顶点均为第一类顶点,并且所述三个顶点所在的三角形存在于所述当前合并网格中,确定所述三角形是所述第一类三角形;或者
若所述三角形的三个顶点中存在不是第一类顶点的顶点,或者所述三个顶点所在的三角形不存在于所述当前合并网格中,确定所述三角形是所述待添加三角形。
18.一种解码方法,其特征在于,包括:
解码端获取三维网格对应的目标码流,其中,所述三维网格包括多个子网格;
所述解码端对所述目标码流进行解码,获取多个重建子网格和目标合并信息,其中,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
所述解码端根据所述目标合并信息,对所述多个重建子网格进行合并处理。
19.根据权利要求18所述的方法,其特征在于,所述子网格相关合并信息用于指示所述多个重建子网格中的目标子网格和/或与所述目标子网格进行合并的合并子网格,所述目标子网格是所述多个重建子网格中需要合并的子网格。
20.根据权利要求18或19所述的方法,其特征在于,所述子网格相关合并信息包括以下至少一项:
所述多个重建子网格中的每个重建子网格对应的第一指示信息,用于指示所述重建子网格是否为目标子网格,所述目标子网格为需要合并的重建子网格;
所述目标子网格对应的第二指示信息,用于指示需要与所述目标子网格进行合并的合并子网格。
21.根据权利要求18-20中任一项所述的方法,其特征在于,所述顶点相关合并信息用于指示重建子网格中需要合并的目标顶点和/或所述目标顶点对应的合并顶点。
22.根据权利要求18-21中任一项所述的方法,其特征在于,所述顶点相关合并信息包括以下至少一项:
重建子网格中的边界顶点的数量;
重建子网格中的边界顶点对应的第一标识,用于标识所述边界顶点是否为所述三维网格中的第一类顶点,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点;
重建子网格中的第一类顶点的数量;
对所述边界顶点对应的第一标识进行编码得到的编码序列的字节大小;
重建子网格中的第一类顶点对应的第二标识,用于标识所述第一类顶点是否为所述三维网格中的第二类顶点,其中,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
对所述第一类顶点对应的第二标识进行编码得到的编码序列的字节大小;
重建子网格中的特定顶点对应的目标顶点索引,所述目标顶点索引用于指示与所述特定顶点在合并网格中进行合并的合并顶点对应的顶点索引,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点;
重建子网格中的特定顶点的数量,其中,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点。
23.根据权利要求18-22中任一项所述的方法,其特征在于,所述目标合并信息包括至少一个重建子网格对应的顶点相关合并信息,其中,所述至少一个重建子网格包括所述多个重建子网格中除第一重建子网格之外的重建子网格,所述第一重建子网格是作为初始合并网格的子网格;或者,所述至少一个重建子网格包括所述多个重建子网格中需要合并的重建子网格。
24.根据权利要求18-23中任一项所述的方法,其特征在于,所述解码端根据所述目标合并信息,对所述多个重建子网格进行合并处理,包括以下至少一项:
在所述多个重建子网格中选择第一重建子网格作为当前合并网格;
构建所述当前合并网格对应的第三映射关系,其中,所述第三映射关系用于指示所述当前合并网格中的顶点信息和顶点索引之间的映射关系;
遍历所述多个重建子网格中除所述第一重建子网格之外的重建子网格,根据所述当前合并网格对应的第三映射关系确定所述重建子网格中的边界顶点和非边界顶点中的至少一项;
将所述重建子网格中的非边界顶点确定为待添加顶点;
根据所述目标合并信息,确定所述边界顶点中的待添加顶点、第一类顶点和第二类顶点中的至少一项,其中,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
根据确定的所述重建子网格中的待添加顶点、第一类顶点和第二类顶点中的至少一项,对所述重建子网格和所述当前合并网格进行合并处理。
25.根据权利要求24所述的方法,其特征在于,所述根据所述目标合并信息,确定所述边界顶点中的待添加顶点、第一类顶点和所述第二类顶点中的至少一项,包括以下至少一项:
根据解码得到的所述边界顶点对应的第一标识确定所述边界顶点是否为第一类顶点;
在所述边界顶点不是第一类顶点的情况下,将所述边界顶点确定为待添加顶点;
在所述边界顶点是第一类顶点的情况下,根据所述第一类顶点对应的第二标识确定所述边界顶点是否还是第二类顶点;
在所述边界顶点不是第二类顶点的情况下,将所述当前合并网格中具有相同顶点信息的顶点确定为所述边界顶点的合并顶点;
在所述边界顶点还是第二类顶点的情况下,所述边界顶点为所述重建子网格中的特定顶点,根据所述特定顶点对应的目标顶点索引确定与所述边界顶点进行合并的合并顶点。
26.根据权利要求24或25所述的方法,其特征在于,所述根据确定的所述重建子网格中的待添加顶点、第一类顶点和所述第二类顶点中的至少一项,对所述重建子网格和所述当前合并网格进行合并处理,包括以下至少一项:
将所述待添加顶点添加到所述当前合并网格中,并更新所述待添加顶点在所述当前合并网格中对应的顶点索引;
将所述重建子网格中的第一边界顶点和所述当前合并网格中的第一合并顶点合并,并将所述第一边界顶点在三角形中的顶点索引更新为所述当前合并网格中的所述第一合并顶点的顶点索引,其中,所述第一合并顶点和所述第一边界顶点对应相同的顶点信息,其中,所述第一边界顶点为所述重建子网格中是第一类顶点但不是第二类顶点的边界顶点;
将所述重建子网格中的第二边界顶点与第二合并顶点合并,并将所述第二边界顶点在三角形中的顶点索引更新为所述当前合并网格中的所述第二合并顶点的顶点索引,其中,所述第二合并顶点是所述第二边界顶点对应的目标顶点索引所指示的顶点,其中,所述第二边界顶点为所述重建子网格中是第一类顶点并且是第二类顶点的边界顶点。
27.根据权利要求24-26中任一项所述的方法,其特征在于,所述方法还包括:
根据所述重建子网格中的第一类顶点,确定所述重建子网格中的三角形为待添加三角形还是第一类三角形,所述第一类三角形是所述三维网格中被拆分到至少两个子网格中的三角形;
将所述待添加三角形添加至所述当前合并网格中,或者,不将所述第一类三角形添加到所述当前合并网格中。
28.根据权利要求27所述的方法,其特征在于,所述根据所述重建子网格中的第一类顶点,确定所述重建子网格中的三角形为待添加三角形还是第一类三角形,包括:
根据所述重建子网格中的所述三角形的三个顶点是否为第一类顶点以及所述三个顶点所在的三角形是否存在于所述当前合并网格中,确定所述三角形为待添加三角形还是第一类三角形;
其中,若所述三角形的三个顶点均为第一类顶点,并且所述三个顶点所在的三角形存在于所述当前合并网格中,确定所述三角形是所述第一类三角形;或者
若所述三角形的三个顶点中存在不是第一类顶点的顶点,或者所述三个顶点所在的三角形不存在于所述当前合并网格中,确定所述三角形是所述待添加三角形。
29.一种编码装置,其特征在于,包括:
第一编码模块,用于对三维网格的多个子网格进行编码,获取第一码流;
解码模块,用于对所述第一码流进行解码,获取多个重建子网格;
获取模块,用于根据所述多个重建子网格和所述三维网格获取目标合并信息,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
第二编码模块,用于对所述目标合并信息进行编码,获取第二码流;
生成模块,用于基于所述第一码流和所述第二码流,生成目标码流。
30.根据权利要求29所述的装置,其特征在于,所述子网格相关合并信息用于指示所述多个重建子网格中的目标子网格和/或与所述目标子网格进行合并的合并子网格,所述目标子网格是所述多个重建子网格中需要合并的子网格。
31.根据权利要求29或30所述的装置,其特征在于,所述子网格相关合并信息包括以下至少一项:
所述多个重建子网格中的每个重建子网格对应的第一指示信息,用于指示所述重建子网格是否为目标子网格,所述目标子网格为需要合并的重建子网格;
所述目标子网格对应的第二指示信息,用于指示需要与所述目标子网格进行合并的合并子网格。
32.根据权利要求29-31中任一项所述的装置,其特征在于,所述顶点相关合并信息用于指示重建子网格中需要合并的目标顶点和/或所述目标顶点对应的合并顶点。
33.根据权利要求29-32中任一项所述的装置,其特征在于,所述顶点相关合并信息包括以下至少一项:
重建子网格中的边界顶点的数量;
重建子网格中的边界顶点对应的第一标识,用于标识所述边界顶点是否为所述三维网格中的第一类顶点,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点;
重建子网格中的第一类顶点的数量;
对所述边界顶点对应的第一标识进行编码得到的编码序列的字节大小;
重建子网格中的第一类顶点对应的第二标识,用于标识所述第一类顶点是否为所述三维网格中的第二类顶点,其中,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
对所述第一类顶点对应的第二标识进行编码得到的编码序列的字节大小;
重建子网格中的特定顶点对应的目标顶点索引,所述目标顶点索引用于指示与所述特定顶点在合并网格中进行合并的合并顶点对应的顶点索引,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点;
重建子网格中的特定顶点的数量,其中,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点。
34.根据权利要求29-33中任一项所述的装置,其特征在于,所述获取模块还用于:
根据所述三维网格获取所述三维网格对应的第一映射关系,所述第一映射关系用于描述所述三维网格中的顶点和/或三角形相关的映射关系;
基于所述第一映射关系和所述多个重建子网格,获取所述多个重建子网格中的每个重建子网格对应的第二映射关系,所述第二映射关系用于指示所述重建子网格和所述三维网格中的顶点之间的映射关系;
根据所述第一映射关系、所述多个重建子网格和所述每个重建子网格对应的第二映射关系,获取所述目标合并信息。
35.根据权利要求34所述的装置,其特征在于,所述获取模块还用于执行以下至少一项:
在所述多个重建子网格中选择第一重建子网格作为当前合并网格;
构建所述当前合并网格对应的第三映射关系,其中,所述第三映射关系用于指示所述当前合并网格中的顶点信息和顶点索引之间的映射关系;
根据所述第一重建子网格对应的第二映射关系构建所述当前合并网格对应的第四映射关系,所述第四映射关系用于指示所述当前合并网格中的顶点索引和所述三维网格中的顶点索引之间的映射关系;
遍历所述多个重建子网格中除所述第一重建子网格之外的重建子网格,根据所述第一映射关系、所述重建子网格对应的第二映射关系、所述当前合并网格对应的第三映射关系以及第四映射关系,确定所述重建子网格中的第一类顶点和第二类顶点中的至少一项;
根据所述重建子网格中的第一类顶点和第二类顶点中的至少一项,获取所述目标合并信息。
36.一种解码装置,其特征在于,
获取模块,用于获取三维网格对应的目标码流,其中,所述三维网格包括多个子网格;
解码模块,用于对所述目标码流进行解码,获取多个重建子网格和目标合并信息,其中,所述目标合并信息包括所述多个重建子网格中的子网格相关合并信息和顶点相关合并信息中的至少一项;
合并处理模块,用于根据所述目标合并信息,对所述多个重建子网格进行合并处理。
37.根据权利要求36所述的装置,其特征在于,所述子网格相关合并信息用于指示所述多个重建子网格中的目标子网格和/或与所述目标子网格进行合并的合并子网格,所述目标子网格是所述多个重建子网格中需要合并的子网格。
38.根据权利要求36或37所述的装置,其特征在于,所述子网格相关合并信息包括以下至少一项:
所述多个重建子网格中的每个重建子网格对应的第一指示信息,用于指示所述重建子网格是否为目标子网格,所述目标子网格为需要合并的重建子网格;
所述目标子网格对应的第二指示信息,用于指示需要与所述目标子网格进行合并的合并子网格。
39.根据权利要求36-38中任一项所述的装置,其特征在于,所述顶点相关合并信息用于指示重建子网格中需要合并的目标顶点和/或所述目标顶点对应的合并顶点。
40.根据权利要求36-39中任一项所述的装置,其特征在于,所述顶点相关合并信息包括以下至少一项:
重建子网格中的边界顶点的数量;
重建子网格中的边界顶点对应的第一标识,用于标识所述边界顶点是否为所述三维网格中的第一类顶点,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点;
重建子网格中的第一类顶点的数量;
对所述边界顶点对应的第一标识进行编码得到的编码序列的字节大小;
重建子网格中的第一类顶点对应的第二标识,用于标识所述第一类顶点是否为所述三维网格中的第二类顶点,其中,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
对所述第一类顶点对应的第二标识进行编码得到的编码序列的字节大小;
重建子网格中的特定顶点对应的目标顶点索引,所述目标顶点索引用于指示与所述特定顶点在合并网格中进行合并的合并顶点对应的顶点索引,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点;
重建子网格中的特定顶点的数量,其中,所述特定顶点为所述三维网格中的第一类顶点,并且所述特定顶点为所述三维网格中的第二类顶点。
41.根据权利要求36-40中任一项所述的装置,其特征在于,所述合并处理模块还用于执行以下至少一项:
在所述多个重建子网格中选择第一重建子网格作为当前合并网格;
构建所述当前合并网格对应的第三映射关系,其中,所述第三映射关系用于指示所述当前合并网格中的顶点信息和顶点索引之间的映射关系;
遍历所述多个重建子网格中除所述第一重建子网格之外的重建子网格,根据所述当前合并网格对应的第三映射关系确定所述重建子网格中的边界顶点和非边界顶点中的至少一项;
将所述重建子网格中的非边界顶点确定为待添加顶点;
根据所述目标合并信息,确定所述边界顶点中的待添加顶点、第一类顶点和第二类顶点中的至少一项,其中,所述第一类顶点为所述三维网格中被划分到至少两个子网格的顶点,所述第二类顶点为所述三维网格中的至少两个具有相同顶点信息但顶点索引不同的顶点;
根据确定的所述重建子网格中的待添加顶点、第一类顶点和所述第二类顶点中的至少一项,对所述重建子网格和所述当前合并网格进行合并处理。
42.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至17任一项所述的编码方法的步骤,或实现如权利要求18至28所述的解码方法的步骤。
43.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至17任一项所述的编码方法的步骤,或实现如权利要求18至28所述的解码方法的步骤。
44.一种芯片,其特征在于,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如权利要求1至17任一项所述的编码方法的步骤,或实现如权利要求18至28所述的解码方法的步骤。
CN202410862743.3A 2024-06-28 2024-06-28 编码方法、解码方法、装置及电子设备 Pending CN121239854A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202410862743.3A CN121239854A (zh) 2024-06-28 2024-06-28 编码方法、解码方法、装置及电子设备
PCT/CN2025/103811 WO2026002113A1 (zh) 2024-06-28 2025-06-26 编码方法、解码方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410862743.3A CN121239854A (zh) 2024-06-28 2024-06-28 编码方法、解码方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN121239854A true CN121239854A (zh) 2025-12-30

Family

ID=98145954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410862743.3A Pending CN121239854A (zh) 2024-06-28 2024-06-28 编码方法、解码方法、装置及电子设备

Country Status (2)

Country Link
CN (1) CN121239854A (zh)
WO (1) WO2026002113A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10616574B2 (en) * 2018-06-04 2020-04-07 Tencent America LLC Methods and apparatus for extended merge mode with adaptive grid size in video coding
KR20230137234A (ko) * 2022-03-21 2023-10-04 현대자동차주식회사 옥트리 기반 삼각형 코딩을 이용하는 메시 압축 방법 및 장치
CN117333633A (zh) * 2022-06-24 2024-01-02 维沃移动通信有限公司 无损编码方法、无损解码方法、装置及设备
CN117372648A (zh) * 2022-06-30 2024-01-09 维沃移动通信有限公司 无损编码方法、无损解码方法、装置及设备
US20240095965A1 (en) * 2022-09-20 2024-03-21 Tencent America LLC Duplicate vertices merging in mesh compression

Also Published As

Publication number Publication date
WO2026002113A1 (zh) 2026-01-02

Similar Documents

Publication Publication Date Title
US10552987B2 (en) Encoding and decoding of texture mapping data in textured 3D mesh models
Maglo et al. 3d mesh compression: Survey, comparisons, and emerging trends
US6445389B1 (en) Compression of polygonal models with low latency decompression
EP2805307B1 (en) Method and apparatus for compressing texture information of three-dimensional (3d) models
US20240087174A1 (en) Coding and decoding point cloud attribute information
CN115914650A (zh) 点云编解码方法、编码器、解码器及存储介质
CN114598883A (zh) 点云属性的预测方法、编码器、解码器及存储介质
Caillaud et al. Progressive compression of arbitrary textured meshes
WO2023179710A1 (zh) 编码方法及终端
US12120347B2 (en) Method, an apparatus and a computer program product for video encoding and video decoding
CN121239854A (zh) 编码方法、解码方法、装置及电子设备
CN121488277A (zh) 子网格缝合
KR20260011162A (ko) 부호화 방법, 복호화 방법, 장치 및 기기
CN120958824A (zh) 点云编解码方法、装置、设备及存储介质
CN117915105A (zh) 网格编码方法、网格解码方法及相关设备
CN120835149A (zh) 编码方法、解码方法、装置及电子设备
Isenburg Compression and streaming of polygon meshes
CN120833386A (zh) 三维网格信息编码方法、解码方法、装置及设备
Bajaj et al. Compression and coding of large cad models
US20250037321A1 (en) Encoding method, decoding method, and terminal
US12524919B2 (en) Point cloud coding/decoding method and apparatus, device and storage medium
Dvořák et al. Survey of Inter‐Prediction Methods for Time‐Varying Mesh Compression
CN120852697A (zh) 三维网格编码方法、三维网格解码方法及相关设备
WO2023179706A1 (zh) 编码方法、解码方法及终端
CN119228916A (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