CN117197263A - 编码方法、解码方法、装置及设备 - Google Patents
编码方法、解码方法、装置及设备 Download PDFInfo
- Publication number
- CN117197263A CN117197263A CN202210613984.5A CN202210613984A CN117197263A CN 117197263 A CN117197263 A CN 117197263A CN 202210613984 A CN202210613984 A CN 202210613984A CN 117197263 A CN117197263 A CN 117197263A
- Authority
- CN
- China
- Prior art keywords
- code stream
- information
- grid
- target
- dimensional grid
- 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 160
- 238000004422 calculation algorithm Methods 0.000 claims description 41
- 238000003860 storage Methods 0.000 claims description 11
- 238000012952 Resampling Methods 0.000 claims description 6
- 238000013467 fragmentation Methods 0.000 claims description 6
- 238000006062 fragmentation reaction Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 4
- 238000006073 displacement reaction Methods 0.000 description 52
- 230000008569 process Effects 0.000 description 38
- 239000013598 vector Substances 0.000 description 28
- 238000013139 quantization Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 13
- 238000007781 pre-processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000002829 reductive effect Effects 0.000 description 9
- 238000010183 spectrum analysis Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 230000005484 gravity Effects 0.000 description 5
- 230000003595 spectral effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000001172 regenerating effect Effects 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000011069 regeneration method Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000509579 Draco Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000013441 quality evaluation Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种编码方法、解码方法、装置及设备,属于编解码技术领域,本申请实施例的编码方法,包括:编码端根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,基础网格包括目标三维网格对应的重建纹理坐标信息,第一标识信息用于表征是否对重建纹理坐标信息进行编码;编码端根据网格差异信息,获取第二码流,网格差异信息用于表征基础网格与待编码的三维网格之间的差异信息,目标三维网格是基于待编码的三维网格得到的;所述编码端根据重建的纹理图信息,获取第三码流,重建的纹理图信息是根据第一码流和第二码流得到的;编码端根据所述第一码流、第二码流和所述第三码流,生成目标码流。
Description
技术领域
本申请属于编解码技术领域,具体涉及一种编码方法、解码方法、装置及设备。
背景技术
三维网格(Mesh)可以被认为是过去多年来最流行的三维模型的表示方法,其在许多应用程序中扮演着重要的角色。它的表示简便,因此被大量以硬件算法集成到电脑、平板电脑和智能手机的图形处理单元中,专门用于渲染三维网格。
纹理坐标,又称为UV坐标是一种描述三维网格顶点纹理的信息。UV坐标数据量在三维网格中比重较大,现有方案中对UV坐标进行编码会消耗大量的码率,导致三维网格编码效率低。
发明内容
本申请实施例提供一种编码方法、解码方法、装置及设备,能够解决现有方案中三维网格编码效率低的问题。
第一方面,提供了一种编码方法,包括:
编码端根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,所述第一标识信息用于表征是否对所述重建纹理坐标信息进行编码;
所述编码端根据网格差异信息,获取第二码流,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的;
所述编码端根据重建的纹理图信息,获取第三码流,所述重建的纹理图信息是根据所述第一码流和第二码流得到的;
所述编码端根据所述第一码流、所述第二码流和所述第三码流,生成目标码流。
第二方面,提供一种解码方法,包括:
解码端对获取的目标码流进行分解,得到第一码流、第二码流和第三码流,所述第一码流是基于目标三维网格对应的基础网格得到的,所述第二码流是基于网格差异信息得到的,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的,所述第三码流是根据重建的纹理图信息得到的;
在所述解码端确定所述第一码流包括重建纹理坐标信息的情况下,根据所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格;
在所述解码端确定所述第一码流未包括重建纹理坐标信息的情况下,生成重建纹理坐标信息,并根据生成的重建纹理坐标信息、所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格。
第三方面,提供了一种编码装置,应用于编码端,包括:
第一编码模块,用于根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,所述第一标识信息用于表征是否对所述重建纹理坐标信息进行编码;
第一获取模块,用于根据网格差异信息,获取第二码流,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的;
第二获取模块,用于根据重建的纹理图信息,获取第三码流,所述重建的纹理图信息是根据所述第一码流和第二码流得到的;
第一生成模块,用于根据所述第一码流、所述第二码流和所述第三码流,生成目标码流。
第四方面,提供了一种解码装置,应用于解码端,包括:
第六获取模块,用于对获取的目标码流进行分解,得到第一码流、第二码流和第三码流,所述第一码流是基于目标三维网格对应的基础网格得到的,所述第二码流是基于网格差异信息得到的,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的,所述第三码流是根据重建的纹理图信息得到的;
重建模块,用于在所述解码端确定所述第一码流包括重建纹理坐标信息的情况下,根据所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格;和/或,用于在所述解码端确定所述第一码流未包括重建纹理坐标信息的情况下,生成重建纹理坐标信息,并根据生成的重建纹理坐标信息、所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格。
第五方面,提供了一种编码设备,该编码设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第六方面,提供了一种编码设备,包括处理器及通信接口,其中,所述处理器用于根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,所述第一标识信息用于表征是否对所述重建纹理坐标信息进行编码;根据网格差异信息,获取第二码流,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的;根据重建的纹理图信息,获取第三码流,所述重建的纹理图信息是根据所述第一码流和第二码流得到的;根据所述第一码流、所述第二码流和所述第三码流,生成目标码流。
第七方面,提供了一种解码设备,该解码设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第二方面所述的方法的步骤。
第八方面,提供了一种解码设备,包括处理器及通信接口,其中,所述处理器用于对获取的目标码流进行分解,得到第一码流、第二码流和第三码流,所述第一码流是基于目标三维网格对应的基础网格得到的,所述第二码流是基于网格差异信息得到的,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的,所述第三码流是根据重建的纹理图信息得到的;
在确定所述第一码流包括重建纹理坐标信息的情况下,根据所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格;
在确定所述第一码流未包括重建纹理坐标信息的情况下,生成重建纹理坐标信息,并根据生成的重建纹理坐标信息、所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格。
第九方面,提供了一种编解码系统,包括:编码设备及解码设备,所述编码设备可用于执行如第一方面所述的编码方法的步骤,所述解码设备可用于执行如第二方面所述的解码方法的步骤。
第十方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤。
第十一方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法,或实现如第二方面所述的方法。
第十二方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述计算机程序/程序产品被至少一个处理器执行以实现如第一方面所述的方法的步骤,或实现如第二方面所述的方法的步骤。
在本申请实施例中,编码端根据第一标识信息对目标三维网格对应的基础网格进行编码,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,获取第一码流,根据网格差异信息,获取第二码流,并根据重建的纹理图信息,获取第三码流,根据所述第一码流、所述第二码流和第三码流,生成目标码流。由于重建纹理坐标数据量在三维网格中比重较大,本申请实施例中根据第一标识信息可以选择不对基础网格中的重建纹理坐标信息进行编码,可以极大地节省码率,提高编码效率。
附图说明
图1是本申请实施例的编码方法的流程示意图;
图2是本申请实施例中三维网格的编码框架图;
图3是本申请实施例中预处理模块的示意图;
图4是本申请实施例中网格简化过程中合并顶点过程的示意图;
图5是本申请实施例的中点细分法的示意图;
图6是本申请实施例中位移计算方法的示意图;
图7是EB中定义的五种操作模式的示意图;
图8是几何坐标平行四边形的预测示意图;
图9是本申请实施例的解码方法的流程示意图;
图10是本申请实施例中三维网格解码框架的示意图;
图11是本申请实施例的编码装置的模块示意图;
图12是本申请实施例的编码设备的结构示意图;
图13是本申请实施例的解码装置的模块示意图;
图14是本申请实施例的解码设备的结构示意图;
图15是本申请实施例的通信设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。
值得指出的是,本申请实施例所描述的技术不限于长期演进型(Long TermEvolution,LTE)/LTE的演进(LTE-Advanced,LTE-A)系统,还可用于其他无线通信系统,诸如码分多址(Code Division Multiple Access,CDMA)、时分多址(Time DivisionMultiple Access,TDMA)、频分多址(Frequency Division Multiple Access,FDMA)、正交频分多址(Orthogonal Frequency Division Multiple Access,OFDMA)、单载波频分多址(Single-carrier Frequency Division Multiple Access,SC-FDMA)和其他系统。本申请实施例中的术语“系统”和“网络”常被可互换地使用,所描述的技术既可用于以上提及的系统和无线电技术,也可用于其他系统和无线电技术。以下描述出于示例目的描述了新空口(New Radio,NR)系统,并且在以下大部分描述中使用NR术语,但是这些技术也可应用于NR系统应用以外的应用,如第6代(6th Generation,6G)通信系统。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的编码方法、解码方法进行详细地说明。
如图1所示,本申请实施例提供了一种编码方法,包括:
步骤101:编码端根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,所述第一标识信息用于表征是否对所述重建纹理坐标信息进行编码。
本申请实施例中,通过第一标识信息来确定是否对目标三维网格对应的重建纹理坐标信息进行编码,例如,该第一标识信息为1时,表示需要对重建纹理坐标信息进行编码,该第一标识信息为0时,表示无需对重建纹理坐标信息进行编码。
上述重建纹理坐标信息包括每个顶点对应的重建纹理坐标,即UV坐标,上述UV坐标用于表征对应的顶点的纹理颜色值。
需要说明的是,本申请中所说的目标三维网格可以理解为任意视频帧对应的三维网格。
可选地,所述基础网格还包括所述目标三维网格对应的几何信息和连接关系信息。
可选地,本申请实施例中,可以使用任意网格编码方法对上述基础网格中的几何信息、连接关系信息、重建纹理坐标信息(如果根据第一标识信息确定需要进行编码)进行编码,,合并后得到基础网格码流,即上述第一码流。
步骤102:所述编码端根据网格差异信息,获取第二码流,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的。
可选地,所述网格差异信息用于表征细化处理后的基础网格与待编码的三维网格之间的差异信息。
可选地,对基础网格的几何信息和UV坐标进行细化插值(refinement)处理,然后计算插值点与原始网格(待编码的三维网格)最近邻点的位移向量,通过该位移向量得到上述网络差异信息。
步骤103:所述编码端根据重建的纹理图信息,获取第三码流,所述重建的纹理图信息是根据所述第一码流和第二码流得到的。
这里,对重建的纹理图信息进行编码,得到第三码流。可选地,通过视频编码器对上述重建的纹理图信息进行编码。
步骤104:所述编码端根据所述第一码流和所述第二码流,生成目标码流。
本步骤中,在得到第一码流、第二码流和第三码流之后,对上述第一码流、第二码流和第三码流进行混流,生成目标码流。
需要说明的是,本申请实施例的编码方法适用于有损模式编码。
本申请实施例中,编码端根据第一标识信息对目标三维网格对应的基础网格进行编码,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,获取第一码流,根据网格差异信息,获取第二码流,并根据重建的纹理图信息,获取第三码流,根据所述第一码流、所述第二码流和第三码流,生成目标码流。由于重建纹理坐标数据量在三维网格中比重较大,本申请实施例中根据第一标识信息可以选择不对基础网格中的重建纹理坐标信息进行编码,可以极大地节省码率,提高编码效率。
可选地,所述编码端根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流之前,还包括:
在处于有损编码模式的情况下,对待编码的三维网格进行简化处理,得到目标三维网格;
在处于无损编码模式的情况下,将待编码的三维网格,确定为目标三维网格。
本申请实施例中,在有损编码模式中,对待编码的三维网格进行预处理,该预处理可以是简化处理,例如可以对几何和连接关系进行简化操作,即在尽量保持网格结构的情况下减少网格顶点和边的数量,进而减少三维网格的数据量。
可选地,所述编码端根据所述第一码流和所述第二码流,生成目标码流,包括:
对所述第一标识信息进行编码,得到编码后的第一标识信息;
根据所述编码后的第一标识信息、所述第一码流和所述第二码流,生成目标码流。
本申请实施例中,可以在目标码流中携带上述第一标识信息,这样,解码端可以根据该第一标识信息确定是否需要生成重建纹理坐标信息。
可选地,所述编码端根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,包括:
在所述第一标识信息表征对所述目标三维网格对应的重建纹理坐标信息进行编码的情况下,对所述几何信息、连接关系信息和重建纹理坐标信息进行编码,得到第一码流;
和/或,在所述第一标识信息表征对所述目标三维网格对应的重建纹理坐标信息不进行编码的情况下,对所述几何信息和连接关系信息进行编码,得到第一码流。
本申请实施例中,可以由用户根据实际需求来设置上述第一标识信息,即由用户选择是否对上述重建纹理坐标信息进行编码。
可选地,所述编码端根据重建的纹理图信息,获取第三码流之前,还包括:
对所述第一码流进行解码和反量化处理,得到重建基础网格;
对所述第二码流进行解码和反量化处理,得到目标网格差异信息;
根据所述重建基础网格和所述目标网格差异信息,按照纹理图生成算法生成重建的纹理图信息。可选地,本申请实施例中,根据目标三维网格对应的基础网格的所述几何信息和连接关系信息,按照纹理坐标重采样算法,生成所述重建纹理坐标信息。
该重建纹理坐标信息的生成方式与现有生成方式相同,此处不再赘述。
可选地,所述编码端根据网格差异信息,获取第二码流,包括:
对所述第一码流进行解码,获取所述第一码流对应的重建网格;
根据所述重建网格,对所述网格差异信息进行更新,得到更新后的网格差异信息;
对更新后的网格差异信息进行编码,得到所述第二码流。
本申请实施例中,由于编码端对基础网格进行有损压缩,为了提高网格差异信息的准确性,需要基于基础网格码流解码后的重建网格,对网格差异信息进行更新,使得网格差异信息能够更准确的表示基础网格与原始网格(待编码网格)的差异。
另外,在对网格差异信息进行更新后对其进行变换,比如小波变换。再将变换后的位移信息进行量化并按照一定的规则,如z扫描顺序将变换后的网格差异信息排列至图像的像素点值中。对图像进行视频编码。
可选地,所述编码端根据所述第一码流、所述第二码流和所述第三码流,生成目标码流,包括:
根据所述目标三维网格的分片信息,获取第四码流;
根据所述第一码流、第二码流、第三码流和第四码流,得到所述目标码流。
本申请实施例中,对于编码端而言,分别针对预处理得到的网格(称为基础网格)、用于表示基础网格与原始网格差异的位移信息和重建的纹理图属性信息进行编码:1)在有损模式中,对三维网格进行预处理。例如可以对几何和连接关系进行简化操作,即在尽量保持网格结构的情况下减少网格顶点和边的数量,进而减少三维网格的数据量。2)对于简化后得到的网格,使用UV坐标重采样算法重新生成UV坐标。本申请中将简化后的几何信息、连接关系和基于简化后网格新生成的UV坐标称为基础网格;3)使用任意静态网格编码方法对基础网格的几何信息、连接关系、新生成的UV坐标进行编码,合并码流后得到基础网格码流。需要注意的是,是否对基础网格的UV坐标进行编码由标识来决定;4)在预处理模块中对基础网格的几何信息和UV坐标进行细化插值(refinement),计算插值点与原始网格最近邻点的位移向量。在位移信息编码模块编码细化插值算法参数和位移向量得到位移信息码流。5)对编码后的基础网格进行解码和重建,得到重建的基础网格。6)对编码后的位移信息进行解码和反量化,得到解码和反量化后的位移信息。7)使用重建的基础网格和解码反量化后的位移信息重建网格。8)使用重建网格采用纹理图生成算法生成新的纹理图,使用视频编码器对新生成的纹理图进行编码。9)把得到的各路子码流混流成为编码器的输出码流。
本申请实施例的三维网格编码框架主要包括网格预处理模块、基础网格编码模块和基于视频的位移信息编码模块等。三维网格编码框架图如图2所示,首先,对输入含纹理图的三维网格(即待编码的三维网格)进行预处理。预处理模块如图3所示。在预处理模块中,可以选择是否对三维网格进行分片。分片的信息形成片(patch)信息。接着对三维网格进行抽样简化。然后对简化后的网格进行表面参数化处理,即生成新的UV坐标(重建纹理坐标信息)。在此过程中,部分几何信息也会出现变化。经过表面参数化后得到基础网格(包括几何信息、连接关系和UV坐标)并作为一路输出。此外,将基础网格几何信息和UV坐标进行细化插值操作,并计算插值点与其在原始网格上延面片法向量投影点之间的偏移向量作为位移信息输出。至此,预处理模块输出基础网格和位移信息。如图2所示,接下来对预处理输出的基础网格进行量化操作,继而对几何信息、连接关系和UV坐标分别进行编码。值得注意的是,此处对基础网格的编码可以替换为任意三维网格编码方法。在该模块中,可以选择性的对UV坐标进行编码。如果选择不对连接关系编码,在解码端需要使用与编码端相同的UV坐标生成方法对UV坐标进行重建。将基础网格各部分码流共同作为基础网格编码模块的输出,即基础网格子码流。对图像进行视频编码得到位移信息子码流。另外,需要对编码后的基础网格进行解码和重建,得到重建的基础网格。对编码后的位移信息进行解码和反量化,得到解码和反量化后的位移信息。然后使用重建的基础网格和解码反量化后的位移信息重建网格。使用重建网格采用纹理图生成算法生成新的纹理图并使用视频编码器对新生成的纹理图进行编码。最后,将patch信息子码流、基础网格子码流和位移信息子码流进行混流,得到编码的输出码流。
下面对简化处理的具体实现方式说明如下。
对于输入的原始网格,即待编码的三维网格,首先进行网格简化的操作。网格简化的重点在于简化的操作以及对应的误差度量。这里的网格简化操作可以为基于边的简化。如图4所示,可以通过合并一条边的两个顶点来达到减少面片数和顶点数的目的。此外,还可通过基于点等网格简化方式对网格进行简化。
在网格简化的过程中需要定义简化的误差度量。例如,可以选取顶点所有相邻面的方程系数之和作为该顶点的误差度量,相应的边的误差度量即为边上两顶点的误差度量之和。在确定好简化操作的方式以及误差度量后就可以开始对网格进行简化。例如,可以将网格分为一片或多片局部网格,先计算片中初始网格的顶点误差来得到每条边的误差。然后将片内的所有边按误差按照某规则,如按照从小到大的规则进行排列。每次简化可以按照某种规则对边进行合并,如选取误差最小的边进行合并,同时计算合并后的顶点位置并更新所有与合并后顶点相关的边的误差,更新边排列的顺序。通过迭代将网格的面简化到某一预期数量。
具体过程包括:
1、顶点误差的计算
顶点误差可以定义为顶点所有相邻面的方程的系数之和。例如,每个相邻面都定义了一个平面,可以用公式一表示:
公式一:D2=(nTv+d)2=vT(nnT)v+2dnTv+d2;
其中,D为任意顶点到平面的距离,n为平面的单位法向量,v为顶点的位置向量,d为常数。用二次曲面的形式表示为公式二:Q=(A,b,c)=(nnT,dn,d2);
其中,Q为顶点误差,A,b,c为表示公式一中相应符号的系数。
从公式二进而得到公式三:Q(v)=vTAv+2bTv+c;
由顶点误差为该顶点所有相邻面的方程系数之和,则可令Q1(v)+Q2(v)=(Q1+Q2)(v)=(A1+A2,b1+b2,c1+c2)(v),则由可以得到合并产生的误差为/>其中,Q(v)为顶点误差,v为对应的顶点,Q1(v)为v相邻平面1的方程,Q2(v)为v相邻平面2的方程,A1,A2,b1,b2,c1,c2为各自相对应的系数。当然,若存在多个相邻面则可向公式四中继续添加相应的平面误差方程。
2、合并顶点
合并顶点过程的一个主要步骤为确定合并后顶点的位置。根据误差公式三,可以选择能让误差尽可能小的顶点位置。例对通过对公式三求偏导数,可以得到,公式四:
公式五:
由上式可知,只有在矩阵A可逆的情况下,才能求得使误差最小的点。因此,此处对于合并后的顶点位置可以有多种取法。如果考虑网格简化的质量,在矩阵A可逆的情况下,选取使误差最小的顶点位置;在矩阵A不可逆的情况下,可以选择边上包括两端点的其中一个使误差最小的点。如果考虑网格简化的复杂度,可以直接选取边的中点或者两端点的其中一个作为合并后的顶点的位置。如果考虑网格简化后量化的效率,还需要调整合并后的顶点位置。由于量化后对于高精度信息需要单独编码,因此,将一部分合并后的顶点位置调整为相应量化参数的倍数,确保在反量化时不需要额外的信息便可恢复原始位置,将减少高精度的几何信息所消耗的数据量。
确定了如何选取合并后的顶点位置后,便可以开始合并顶点的过程。例如,可以先计算初始网格中所有的边的误差,将其按误差按照某规格,如从小到大的顺序进行排列。每次迭代,选取误差满足某规则的边,如误差最小的边。从网格顶点中移除边的两个端点并添加合并后的顶点到网格顶点的集合中。将合并前的两个顶点的所有或部分相邻顶点作为合并后的顶点的相邻顶点,然后更新与该合并顶点相连接的所有点的误差度量,从而得到新产生的边的误差。然后从片的全局来更新边的排列顺序。循环上述过程,直到达到满足有损编码所需要的面数。
3、更新连接关系
在合并顶点之后,由于顶点集中删除了一部分顶点,同时又添加了许多新的顶点,因此需要更新顶点之间的连接关系。例如,在合并顶点过程中可以确定合并后的顶点对应的合并之前的两个顶点。只需要用合并后的顶点的索引替换所有在面中出现的合并之前的两个顶点的索引,然后删除具有重复索引的面,就可以达到更新连接关系的目的。
以上即为网格简化的主要过程。同时,三维网格还可能会携带有属性信息,对属性信息也可能需简化。对于带有属性信息的网格,如纹理坐标,颜色,法向量等,可以将顶点坐标扩展到更高的维度从而计算带有属性信息的顶点误差。以纹理坐标为例,设顶点坐标为(x,y,z),纹理坐标为(u,v),则扩展后的顶点为(x,y,z,u,v)。设扩展后的三角形T=(p,q,r),为了确定高维空间上的误差度量,首先计算两个标准正交向量,即:
公式六:
公式七:
其中,e1,e2为T所在平面上的两个向量,q为,e2为,此处"·"代表向量的点乘,它定义了该高维平面上的一个坐标轴,以p为原点。考虑一个任意点v,另u=p-v,由公式八:‖u‖2=(u·e1)2+…+(μ·en)2;
即公式九:(u·e3)2+…+(u·en)2=‖μ‖2-(μ·e1)2-(u·e2)2。
由于e1,e2为T所在平面上的两个向量,则公式九左边项即为顶点到T所在平面的距离的平方,即公式十:D2=‖μ‖2-(μ·e1)2-(u·e2)2;
对其进行展开并合并后可得到与公式三类似的方程,其中:
公式十一:
公式十二:b=(p·e1)e1+(p·e2)e2-p;
公式十三:c=p·p-(p·e1)2-(p·e2)2。
得到上述误差度量后,则可以进行与之前三维信息一样的后续步骤,从而实现了对于带有属性信息的网格的简化。
通常来说,图像的边缘部分更能吸引人们的注意力,从而影响人们对于该图像的质量评价。三维网格也是如此,人们往往更容易注意到边界部分。因此,是否保持边界也是网格简化中影响质量的一个因素。网格的边界一般为几何形状的边界以及纹理的边界。当一条边只属于一个面时,该边即为一个几何边界。当同一个顶点具有两个或多个纹理坐标时,该顶点即为纹理坐标的边界。在网格简化时,以上边界均不应被合并。因此,在每次简化时可以先判断该边上的顶点是否为边界点,若为边界点则跳过,直接进行下一次迭代。
下面对一种可选地网格参数化方法进行具体说明。
该网格参数化方法包括:
(1)UV坐标的重新生成
输入:待处理的原始三维网格(可包含UV坐标也可以不包含UV坐标)
输出:重新生成的UV坐标。
该方法中,可以使用ISO-charts算法得到重建纹理坐标信息,该算法使用谱分析实现拉伸驱动的三维网格参数化,将三维网格进行UV展开、分片并打包到二维纹理域。设定一个拉伸阈值。该算法的具体实现过程如下:
a)计算表面谱分析,提供一个初始参数化;
b)执行拉伸优化的迭代;
c)如果此派生参数化的拉伸小于阈值,则停止;
d)执行表面谱聚类来将表面划分为charts;
e)使用graph cut算法优化chart边界;
f)迭代分割charts直到满足拉伸准则;
下面就上述表面谱分析、拉伸优化、表面谱聚类、边界优化四个主要部分分别进行介绍。
1、表面谱分析
表面谱分析基于IsoMap(isometric feature mapping)降维方法对目标三维网格进行参数化。给定一组高维点,IsoMap计算沿流形的测地距离(geodesic distance)作为相邻点之间的跳跃序列。然后将MDS(multidimensional scaling)算法应用于这些测地线距离,以找到嵌入在低维空间中具有相似成对距离的一组点。给定点数为N的表面,其计算过程如下:
a)计算表面点之间的测地距离平方的对称矩阵DN;
b)对DN进行双中心化和归一化得BN,其计算过程如下所示:
公式十四:
其中,I是N维单位矩阵,1是长度为N的单位向量。
c)计算BN的特征值λi及相应的特征向量
d)对于原始表面的每个点i,它在新空间中的嵌入为N维向量它的第j个元素的计算过程如下所示:
公式十五:
BN的特征值λi和相应的特征向量构成了表面形状的谱分解。大特征值对应的特征向量表示表面上的全局低频特征,小特征值对应的特征向量表示高频细节。将高能、低频分量作为chartification和参数化的基础。
虽然需要N个特征值来完全表示一个有N个顶点的表面,但它们中的一小部分能量通常占据大部分能量。因此,只计算n<<N个最大特征值和相应的特征向量,来产生所有点的n维嵌入。
此外,由于高维空间到低维空间的映射不是等距的,该参数化会导致畸变失真。对于每个顶点i,其在嵌入下的测地距离畸变失真(GDD)定义如下所示:
公式十六:
其中,是顶点i的n维嵌入坐标,dgeo(i,j)是点i和点j之间的测地距离。
当n=2时,表面谱分析产生一个所有顶点的GDD平方和最小的表面参数化。
需要注意的是,Isomap算法虽然是沿流形计算的测地距离,但针对输入三维网格存在某些非流形的情况,此方案会进行相应的预处理来消除这些非流形的存在。
2、拉伸优化
由于三维空间到二维空间不是等距的,参数化会导致畸变失真,为了消除失真现象,需要进行拉伸优化处理。畸变失真可以用很多方法来测量,包括角度或区域的保存情况,或者在表面上拉伸或收缩多少参数距离。此算法中关注的是距离畸变,特别是对几何拉伸的定义,其定义了表面局部距离的平均拉伸L2和最坏情况下的拉伸L∞两个测度。
假设一个带有二维纹理坐标p1,p2,p3的三角形T,其中pi=(si,ti),相应的三维坐标表示为q1,q2,q3,仿射映射S(p)=S(s,t)=q的计算过程如下所示:
公式十七:S(p)=(<p,p2,p3>q1+<p,p3,p1>q2+<p,p1,p2>q3)/<p1,p2,p3>
其中,<a,b,c>表示三角形abc的面积。由于该映射是仿射的,所以它的偏导数在(s,t)上是常数,其计算过程如下所示:
公式十八:
公式十九:
其中,A=<p1,p2,p3>=((s2-s1)(t3-t1)-(s3-s1)(t2-t1))/2
然后计算得Jacobian矩阵[Ss,St]的较大和较小奇异值,计算过程如下所示:
公式二十:
公式二十一:
其中,a=Ss·Ss,b=Ss·St,c=St·St。奇异值γmax,γmin表示单位长度向量从二维纹理域映射到三维表面时获得的最大长度和最小长度,即最大和最小的局部“拉伸”。在三角形T上的两个拉伸测度定义如下所示:
公式二十二:
公式二十三:L∞(T)=γmax
在整个三维网格M={Ti}上拉伸测度的定义如下所示:
公式二十四:
公式二十五:
其中,A′(Ti)是三角形Ti在三维空间中的表面面积。
由于L∞仅依赖域中的一个最坏情况点,L∞拉伸对任何方法来说都很难控制,但经过几次L2拉伸最小化的迭代可以显著地改善结果。
3、表面谱聚类
如果通过谱分析产生的参数化未能满足拉伸阈值,则它将被划分为更小的charts。由于模型的全局特征对应较大的特征值,因此使用它们进行划分。利用谱分析的结果计算几个代表性顶点,然后围绕这些代表点同时grow charts,该方法称为表面谱聚类。具体算法过程如下:
a)将来自谱分析的特征值和相应的特征向量进行从大到小排序,即λ1≥λ2≥...≥λN。
b)得到使λn/λn+1最大化的前n个特征值和特征向量(n≤10)。
c)对目标三维网格中的每个顶点i,计算它的n维嵌入坐标
d)对n个嵌入坐标的每一个,找到坐标最大和最小的两个点,并把它们设置为2n个代表点。
e)移走那些距离小于距离阈值的代表点,产生m≤2n个代表点,可选地,距离阈值为目标三维网格平均边缘长度的10倍。
f)利用表面谱分析中计算的测地距离,通过在代表点周围同时grow charts,将三维网格划分为m个部分。每个三角形被分配给有与该三角形最近的代表点的chart中(从三角形到代表点的测地距离计算为三角形的三个顶点到代表顶点测地距离的平均值)。
4、边界优化
在得到多个charts后,使用graph cut算法对各个charts之间的边界进行优化。Charts边界应满足两个目标:1)它们应在不太参差不齐的情况下穿过高曲率区域,2)它们应将其边界charts的嵌入失真降至最低。此算法将最优边界问题表述为一个grap cutting问题。为了简单起见,下面讨论将表面一分为二的二元情况。当细分成两个以上的charts时,则依次考虑每一对相邻的charts。
假设在chart A和chart B之间寻找一个最佳边界,初始划分是使用表面谱聚类生成的。然后通过将一个区域扩展到初始分割边界的两侧来生成一个中间区域C。中间区域的大小与未剥离patch的总面积成正比。现在利用graph cut算法中方法的扩展从C构建无向流网络图。
此处将graph cut算法中两个相邻三角形fi和fj之间的“capacity”定义修改以下公式二十六所示:
公式二十六:c(fi,fj)=αcang(fi,fj)+(1-α)cdistort(fi,fj)
公式二十六中的第一项对应于沿具有高二面角的边进行非参差不齐切割的第一个目标,计算过程如公式二十七所示:
公式二十七:
其中,dang(fi,fj)=1-cosαij,αij是三角形fi和fj法线之间的角度,avg(dang)是相邻三角形之间的平均角距离。
式二十六中的第二项测量了嵌入失真,计算过程如公式二十八和公式二十九所示:
公式二十八:
公式二十九:ddistort(fi,fj)=|GDDA(fi)-GDDB(fi)|+|GDDA(fj)-GDDB(fj)|
其中,GDDA(fi)和GDDB(fi)分别是三角形fi在chart A或chart B诱导下嵌入的GDD,avg(ddistort)是所有相邻三角形对上的ddistort(fi,fj)的平均。cdistort(fi,fj)的这种定义更倾向于其相邻三角形平衡了chart A和chart B确定的嵌入之间的GDD的边界边。换句话说,切割应避免将三角形放置在错误的一侧,以产生不必要的变形。
公式二十六中的权重参数α是对上述两个目标的权衡。
此拉伸驱动的chartification和参数化算法的简单实现的花费很大,尤其随着模型顶点数量增加的时候。因此为了加快计算速度,在实际应用中,Iso-charts算法采用了Isomap的扩展算法landmark Isomap。同时,landmark Isomap算法也被用于边界优化时计算中间区域顶点的嵌入坐标,以进一步减小嵌入失真。
最后,利用MCGIM算法中使用的chart packing的算法把上述过程生成的charts打包到二维纹理域上。最终就可以得到重新生成UV坐标的三维网格。
(2)网格细化。
输入:基础网格(包含属性信息);
输出:细化后的网格。
本申请实施例中,可以使用任意网格细化方案对基础网格进行细化。一种可行的细化方案是中点细分方案,它在每次细分迭代中将每个三角形细分为4个子三角形,如图5所示。在每个边的中间引入新顶点。细分过程独立地应用于几何和纹理坐标,因为几何和纹理坐标的连通性通常不同。细分方案计算新引入的顶点v12在边(v1,v2)中心的位置Pos(v12),如下所示:
公式三十:
公式三十中,Pos(v1)和Pos(v2)是顶点v1和v2的位置。
相同的过程用于计算新创建的顶点的纹理坐标。对于法线向量,额外的归一化步骤如下:
公式三十一:
式中,N(v12),N(v1)和N(v2)是分别对应与顶点v12,v1和v2的法向量。||x||是对向量x的模2运算。
(3)位移信息计算。
输入:细化后的网格和原始网格(包含属性信息);
输出:位移信息。
图6使用2D曲线展示了预处理方案的基本思想。相同的概念应用于输入3D网格以生成基础网格和位移场。在图6中,输入的2D曲线(由2D折线表示),称为“原始曲线”,首先进行下采样以生成基本曲线/折线,称为“简化曲线”。然后将细分方案应用于简化得到的多段线以生成“细化曲线或细分曲线”。随后对细分的多段线进行变形,以获得更好的原始曲线近似值。即,为细分网格的每个顶点计算位移矢量(图6中的箭头所示),使位移曲线的形状尽可能接近原始曲线的形状。这些位移矢量就是该模块输出的位移信息。
本申请实施例中,基础网格的编码可以使用现有的网格编码器Draco,主要包括五部分:量化、连接关系编码、几何信息编码、UV坐标编码和纹理图编码,下面分别进行说明。
(1)量化
输入:基础网格的几何信息和UV坐标;
输出:量化后的几何信息和UV坐标;
首先,对输入网格的顶点三维坐标进行量化,得到量化后的几何信息。
设某顶点的三维坐标为(x,y,z),量化系数为(QPx,QPy,QPz),量化后的几何信息(xq,yq,zq)的计算过程如下:
公式三十二:xq=f1(x,QPx)
公式三十三:yq=f1(y,QPy)
公式三十四:zq=f1(z,QPz)
其中,公式三十二至公式三十四中的f1函数是量化函数,量化函数的输入为某一维度的坐标和该维度的量化系数,输出为量化后的坐标值。
f1函数可以有多种计算方式,比较通用的一种计算方式如公式三十五至公式三十七所示,使用每个维度的原始坐标除以该维度的量化系数来计算。其中,“/”为除法运算符,对除法运算的结果可以采用不同的方式进行舍入,如四舍五入、向下取整、向上取整等。
公式三十五:xq=x/QPx
公式三十六:yq=y/QPy
公式三十七:zq=z/QPz
当量化系数为2的整数次幂时,f1函数可以使用位运算实现,如公式三十八至公式四十:
公式三十八:xq=x>>log2QPx
公式三十九:yq=y>>log2QPy
公式四十:zq=z>>log2QPz
值得注意的是,无论f1函数采用哪种计算方式,量化系数QPx、QPy和QPz都可以灵活设置。首先,不同分量的量化系数并不一定相等,可以利用不同分量量化参数的相关性,建立QPx、QPy和QPz之间的关系,为不同分量设置不同的量化系数;其次,不同空间区域的量化系数也不一定相等,可以根据局部区域顶点分布的稀疏程度自适应的设置量化参数。
对二维UV坐标的量化与三维坐标量化类似,减少一个维度的量化即可。
(2)连接关系编码。
输入:基础网格连接关系;
输出:编码后的连接关系子码流和顶点编码顺序。
一种可用的连接关系编码方法为Edgebreaker(EB)算法。EB算法通过遍历三角网格模型的每个三角形后,获得由C、L、E、R、S这5个字符组成的字符串序列,然后用霍夫曼编码方法编码这个字符串序列。EB中定义的五种操作模式如图7所示。其中,C表示待编码顶点v不在边界上的拓扑情况;L和R表示待编码顶点v在边界上且当前三角形除了当前边外还有一条边e在边界上,L和R分别表示e在当前边的不同方向;S把图形分成两部分,同时需要用额外的偏移或其他操作记录分支信息;E表示三角形的3条边都在边界上。
该算法以螺旋形的形式对网格进行编码。在遍历网格过程中始终维持一个由边组成的有向边界,这个边界把网格分成已遍历部分和未遍历部分。然后每遍历一个三角形就输出一个该三角形及边界的拓扑关系操作符,并把该多边形归入已编码部分。其具体遍历过程如下:先选择任意一个三角形形成最初的边界,再选择任意一条边为当前边。Edgebreaker算法采用5个操作符C、L、E、R和S记录当前三角形与边界的拓扑关系。根据不同操作符中箭头的指向,选择下一条作为当前边的边,继续判断待编码顶点所对应的操作模式。按照该步骤循环操作,直至遍历所有顶点。此时,可以得到遍历过程中的操作符串并对该字符串进行熵编码。另外,使用EB算法还需要输出遍历的顶点顺序给几何信息和UV坐标编码模块。根据EB的编码规则,最终熵编码的模式码字为CCRRSLCRSERRELCRRRCRRRE。
(3)几何信息编码
输入:量化后的几何信息、连接关系和连接关系编码顶点顺序;
输出:编码后的连接关系子码流。
本申请实施例中,可以使用如下平行四边形预测法对几何坐标进行编码:
如图8所示,三角形S1为当前已编码过几何坐标的三角形,对待编码顶点的遍历方式在编码连接关系时与编码连接关系的顶点顺序相同。当不编码连接关系时,顶点遍历顺序与基础网格中的顶点顺序相同。在进行编码遍历时,选取一边作为当前正遍历到的边τ1,使用连接已编码的另外一顶点形成的三角形作为半个平行四边形去预测当前边所对的待编码顶点的三维几何坐标,即图中的A2点作为预测顶点。此时,计算预测顶点与真实顶点(A3)的坐标差值并使用熵编码对其进行编码形成几何信息子码流。其中,S2为预测三角形,S3为待编码三角形。
另外,此处还可以使用两个或者三个平四边形对对待编码几何坐标进行预测,此处不强调具体的编码方法。
(4)UV坐标编码(通过标识控制是否编码UV坐标)
输入:基础网格的UV坐标、连接关系和连接关系编码顶点顺序;
输出:编码后的UV坐标子码流。
可以使用如下平行四边形预测法对UV坐标进行编码:
请参照图8,三角形S1为当前已编码过UV坐标的三角形,对待编码顶点的遍历方式在编码连接关系时与编码连接关系的顶点顺序相同。当不编码连接关系时,顶点遍历顺序与基础网格中的顶点顺序相同。在进行编码遍历时,选取一边作为当前正遍历到的边τ1,使用连接已编码的另外一顶点形成的三角形作为半个平行四边形去预测当前边所对的待编码顶点的UV坐标,即图中的A2点作为预测顶点。此时,计算预测顶点与真实顶点的坐标差值并使用熵编码对其进行编码形成UV坐标子码流。
另外,此处还可以使用两个或者三个平四边形对对待编码UV坐标进行预测,此处不强调具体的编码方法。
如标识标记不需要编码UV坐标,则跳过该模块不编码UV坐标。
在完成基础网格的编码后,需要解码基础网格码流来获得失真后的几何信息和UV坐标。如标识标记不编码UV坐标,则使用基础网格的UV坐标来修正顶点偏移。根据解码的几何信息和UV坐标(根据标识判断使用解码后UV坐标还是编码前的基础网格UV坐标)来修正位移信息中的顶点偏移矢量值。而后,对更新过的位移信息进行编码,一种可行的位移信息编码方式为线性小波变换。
1)位移信息的变换和更新
输入:位移信息;
输出:变换后的位移信息。
更新过程为:
公式四十一:
式中,v*是顶点v的相邻顶点的集合。Signal(v)是顶点v的几何或属性值。
小波变换的过程为:
公式四十二:
式中,v是在v1和v2的边的中点插入的顶点。Signal(v),Signal(v1)和Signal(v2)分别是顶点v,v1和v2的几何或属性值。
注意,方案中的更新过程可以跳过,即不对位移信息进行更新而直接编码位移信息。
2)变换后的位移信息编码
输入:变换后的位移信息
输出:位移信息子码流
对变换后的位移信息进行量化后,可以使用以下方法变换后的位移信息排布到2D图像中:
方法1:从低频到高频遍历系数。
方法2:对于每个系数,确定应按照块的光栅顺序存储的NxM像素块的索引(例如,N=M=16)。NxM像素块内的位置是通过使用莫顿顺序来计算的。
也可以使用其他排布方案,例如之字形顺序、光栅顺序等。编码器可以在比特流中明确地用信号通知所使用的排布方案。
在将信息排布进2D图像后,可以使用任意视频编码器对图像进行编码得到位移信息子码流。
在编码纹理图前,需要将位移信息子码流进行解码和反量化得到失真后的位移信息。该操作可以保证编解码端使用信息的一致性。使用重建基础网格和失真后的位移信息联合生成重建网格。使用重建网格和原始纹理图生成新的纹理图。
(5)纹理图重生成
输入:重建网格、原始纹理图
输出:新生成的纹理图
使用重建网格和原始纹理图生成新纹理图的算法步骤如下:
a)首先计算原始三维网格bounding box,获得最大搜索距离。
b)计算目标三维网格在纹理空间中的边界边。
c)将原始三维网格中的面划分为均匀grid。
d)遍历目标三维网格中的所有面,利用原始纹理图对应的RGBA值光栅化目标纹理图。
e)计算当前面在纹理空间中的bounding box,然后在此bounding box范围内采样出各个像素的中心点,通过判断采样点与当前面的内外关系以及在当前面边界处的外部采样点在纹理空间中对当前面内部是否有影响来确定当前面对应的像素位置。
f)在最大搜索距离内搜索已划分为均匀grid的原始三维网格中距离目标三维网格当前面的三个点中各自的最近点,得到最近面,该面即作为当前面在原始网格中对应的面,从而得到当前面在原始三维网格中对应的纹理坐标。
g)根据对应的纹理坐标计算出原始网格中对应的面中在原始纹理图相应位置的像素RGBA值并赋值给目标三维网格中当前面在目标纹理图中对应的像素位置。
h)直至遍历完所有面,光栅化结束。
i)将边界边上像素的alpha值转化为255来平滑边界,最后为了便于编码、节省码流,利用pull push填充算法对生成的目标纹理图进行填充。(可以选择是否进行填充)
对于新的纹理图,通常可以直接使用视频编码器对逐帧的纹理图有进行编码,如使用HEVC、VVC等编码器,形成属性子码流。此处的视频编码器可以选用任意的视频编码器。
最后,将各路子码流进行混流后形成输出的网格编码码流。
本申请实施例中,编码端根据第一标识信息对目标三维网格对应的基础网格进行编码,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,获取第一码流,根据网格差异信息,获取第二码流,并根据重建的纹理图信息,获取第三码流,根据所述第一码流、所述第二码流和第三码流,生成目标码流。由于重建纹理坐标数据量在三维网格中比重较大,申请实施例中根据第一标识信息可以选择不对基础网格中的重建纹理坐标信息进行编码,可以极大地节省码率,提高编码效率。
如图9所示,本申请实施例还提供了一种解码方法,包括:
步骤901:解码端对获取的目标码流进行分解,得到第一码流、第二码流和第三码流,所述第一码流是基于目标三维网格对应的基础网格得到的,所述第二码流是基于网格差异信息得到的,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的,所述第三码流是根据重建的纹理图信息得到的。
步骤902:在所述解码端确定所述第一码流包括重建纹理坐标信息的情况下,根据所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格;
步骤903:在所述解码端确定所述第一码流未包括重建纹理坐标信息的情况下,生成重建纹理坐标信息,并根据生成的重建纹理坐标信息、所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格。
本申请实施例中,编码端根据第一标识信息可以选择不对基础网格中的重建纹理坐标信息进行编码,该情况下解码端可根据已解码的信息生成重建纹理坐标信息,在有损模式下,可以极大地节省码率,提高编码效率。
可选地,本申请实施例的方法,还包括:
所述解码端对获取的目标码流进行分解,得到第一标识信息,所述第一标识信息用于表征编码端是否对重建纹理坐标信息进行编码;
根据所述第一标识信息,确定所述第一码流是否包括重建纹理坐标信息。
本申请实施例中,编码端对用于指示是否对重建纹理坐标信息进行编码的第一标识信息进行编码,这样,使得解码端能够根据该第一标识信息确定是否需要生成重建纹理坐标信息。
可选地,解码端对获取的目标码流进行分解,得到第一码流、第二码流和第三码流之后,还包括:
对所述第一码流进行解码处理,得到第一解码结果;
根据所述第一解码结果,确定所述第一码流是否包括重建纹理坐标信息。
本申请实施例中,编码端也可不对上述第一标识信息进行编码,该情况下解码端可根据第一解码结果确定是否包含重建纹理坐标信息。
可选地,所述第一解码结果还包括:
所述目标三维网格对应的几何信息和连接关系信息。
可选地,所述生成重建纹理坐标信息,包括:
根据所述几何信息和连接关系信息,按照纹理坐标重采样算法,生成所述重建纹理坐标信息。
这里,解码端采用与编码端相同的UV坐标生成方法对UV坐标进行重建,得到重建纹理坐标信息。
可选地,解码端对获取的目标码流进行分解,得到第一码流、第二码流和第三码流,包括:
解码端对获取的目标码流进行分解,得到第一码流、第二码流、第三码流和第四码流,所述第四码流是基于目标三维网格的分片信息确定的;以及
所述根据所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格,包括:根据所述第一解码结果、第二解码结果、第三解码结果和所述第四码流对应的第四解码结果,重建所述目标三维网格;或者,所述根据生成的重建纹理坐标信息、所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格,包括:根据所述第一解码结果、第二解码结果、第三解码结果、所述第四码流对应的第四解码结果和生成的重建纹理坐标信息,重建所述目标三维网格。
本申请实施例中,三维网格的解码框架如图10所示,首先,将目标码流分解成patch信息子码流、几何信息子码流、连接关系子码流,UV坐标子码流(如果有)、纹理图子码流和位移信息子码流。分别对这些子码流进行解码;如码流中包括UV坐标子码流,则不需要重新生成UV坐标;如码流中不包含UV坐标,则需要使用与编码端相同的UV坐标生成算法重新生成UV坐标。最后,使用各路解码信息重建出三维网格。其中,对纹理图子码流和位移信息子码流使用视频解码器进行解码。对几何信息、连接关系和UV坐标子码流使用与编码端编码方法对应的解码器进行解码。下面对各种信息的解码进行介绍。
1)连接关系解码
输入:待解码的连接关系子码流;
输出:三维网格的连接关系和解码的顶点顺序。
先对连接关系子码流进行解码得到模式字符串。根据字符串中相对应的模式按照编码的顺序来重建连接关系,并将顶点的遍历属性输出至几何信息和UV坐标解码模块。
2)几何信息解码
输入:几何信息子码流、解码的位移信息和连接关系的解码顺序;
输出:三维网格的几何信息。
网格几何坐标的解码过程是编码过程的逆过程:先熵解码出坐标预测残差。再根据已解码三角形按照平行四边法则预测出待解码点的预测坐标。将预测坐标加上熵解码出的残差值即可得到待解码的几何坐标位置。这里的顶点遍历顺序在编码连接关系时与编码连接关系的顶点顺序相同。当不编码连接关系时,顶点遍历顺序与基础网格中的顶点顺序相同。注意,初始三角形的几何坐标不使用预测编码,而是直接编码它们的几何坐标值。在解码端解码出该三角形的几何坐标后作为初始三角形开始遍历解码其他三角形顶点的几何坐标。另外,此处还可能使用两个或者三个平四边形对对待解码的UV坐标进行预测,不强调具体的预测方法。
在解码出几何信息后,需要使用解码的位移信息对解码得到的几何信息进行修正。修正方式为使用位移信息中的位移值将对应顶点沿着法向量方向进行位移。最后得到修正后的几何信息。
3)UV坐标解码及重建(是否解码UV坐标根据第一标识决定)
输入:待解码的UV坐标码流、解码并修正后的几何信息和连接关系的解码顺序;
输出:三维网格重建的UV坐标信息。
如果码流中包含UV坐标子码流,网格UV坐标的解码过程是编码过程的逆过程:先熵解码出坐标预测残差。再根据已解码三角形按照平行四边法则预测出待解码点的预测坐标。将预测坐标加上熵解码出的残差值即可得到待解码的UV坐标位置。注意,初始三角形的UV坐标不使用预测编码,而是直接编码它们的UV坐标值。在解码端解码出该三角形的UV坐标后作为初始三角形开始遍历解码其他三角形顶点的UV坐标。另外,此处还可能使用两个或者三个平四边形对对待解码的UV坐标进行预测,不强调具体的预测方法。
如码流中不包含UV坐标子码流,则使用与编码端相同的UV坐标生成算法,使用解码得到的几何信息和连接关系来生成UV坐标。
在解码或重建出UV坐标后,需要使用解码的位移信息对解码得到的UV坐标进行修正。修正方式为使用位移信息中的位移值将对应顶点沿着法向量方向进行位移。最后得到修正后的UV坐标。
4)纹理图解码
输入:纹理图子码流;
输出:纹理图。
直接使用视频解码器对纹理图进行解码,可以得到逐帧的纹理图,此处不强调纹理图的文件格式,格式可以为jpg、png等等。
本申请实施例中,编码端根据第一标识信息可以选择不对基础网格中的重建纹理坐标信息进行编码,该情况下解码端可根据已解码的信息生成重建纹理坐标信息,在有损模式下,可以极大地节省码率,提高编码效率。
本申请实施例提供的编码方法,执行主体可以为编码装置。本申请实施例中以编码装置执行编码方法为例,说明本申请实施例提供的编码装置。
如图11所示,本申请实施例还提供了一种编码装置1100,应用于编码端,包括:
第一编码模块1101,用于根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,所述第一标识信息用于表征是否对所述重建纹理坐标信息进行编码;
第一获取模块1102,用于根据网格差异信息,获取第二码流,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的;
第二获取模块1103,用于根据重建的纹理图信息,获取第三码流,所述重建的纹理图信息是根据所述第一码流和第二码流得到的;
第一生成模块1104,用于根据所述第一码流、所述第二码流和所述第三码流,生成目标码流。
可选地,所述第一生成模块包括:
第一获取子模块,用于对所述第一标识信息进行编码,得到编码后的第一标识信息;
第一生成子模块,用于根据所述编码后的第一标识信息、所述第一码流和所述第二码流,生成目标码流。
可选地,所述基础网格还包括所述目标三维网格对应的几何信息和连接关系信息。
可选地,所述第一编码模块用于:
在所述第一标识信息表征对所述目标三维网格对应的重建纹理坐标信息进行编码的情况下,对所述几何信息、连接关系信息和重建纹理坐标信息进行编码,得到第一码流;
和/或,在所述第一标识信息表征对所述目标三维网格对应的重建纹理坐标信息不进行编码的情况下,对所述几何信息和连接关系信息进行编码,得到第一码流。
可选地,本申请实施例的装置,还包括:
第三获取模块,用于在第二获取模块根据重建的纹理图信息,获取第三码流之前,对所述第一码流进行解码和反量化处理,得到重建基础网格;
第四获取模块,用于对所述第二码流进行解码和反量化处理,得到目标网格差异信息;
第二生成模块,用于根据所述重建基础网格和所述目标网格差异信息,按照纹理图生成算法生成重建的纹理图信息。
可选地,所述第一获取模块包括:
第二获取子模块,用于对所述第一码流进行解码,获取所述第一码流对应的重建网格;
更新子模块,用于根据所述重建网格,对所述网格差异信息进行更新,得到更新后的网格差异信息;
第一编码子模块,用于对更新后的网格差异信息进行编码,得到所述第二码流。
可选地,本申请实施例的装置,还包括:
第五获取模块,用于在第一编码模块根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流之前,在处于有损编码模式的情况下,对待编码的三维网格进行简化处理,得到目标三维网格;在处于无损编码模式的情况下,将待编码的三维网格,确定为目标三维网格。
可选地,所述第一生成模块包括:
第三获取子模块,用于根据所述目标三维网格的分片信息,获取第四码流;
第四获取子模块,用于根据所述第一码流、第二码流、第三码流和第四码流,得到所述目标码流。
本申请实施例中,编码端根据第一标识信息对目标三维网格对应的基础网格进行编码,获取第一码流,并根据网格差异信息,获取第二码流,根据所述第一码流和所述第二码流,生成目标码流。由于重建纹理坐标数据量在三维网格中比重较大,本申请实施例中根据第一标识信息可以选择不对基础网格中的重建纹理坐标信息进行编码,可以极大地节省码率,提高编码效率。
该装置实施例与上述图1所示的编码方法实施例对应,上述方法实施例中关于编码端的各个实施过程和实现方式均可适用于该装置实施例中,且能达到相同的技术效果。
具体地,本申请实施例还提供了一种编码设备,如图12所示,该编码设备1200包括:处理器1201、网络接口1202和存储器1203。其中,网络接口1202例如为通用公共无线接口(common public radio interface,CPRI)。
具体地,本申请实施例的编码设备1200还包括:存储在存储器1203上并可在处理器1201上运行的指令或程序,处理器1201调用存储器1203中的指令或程序执行图11所示各模块执行的方法,并达到相同的技术效果,为避免重复,故不在此赘述。
本申请实施例提供的解码方法,执行主体可以为解码装置。本申请实施例中以解码装置执行解码方法为例,说明本申请实施例提供的解码装置。
如图13所示,本申请实施例还提供了一种解码装置1300,应用于解码端,包括:
第六获取模块1301,用于对获取的目标码流进行分解,得到第一码流、第二码流和第三码流,所述第一码流是基于目标三维网格对应的基础网格得到的,所述第二码流是基于网格差异信息得到的,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的,所述第三码流是根据重建的纹理图信息得到的;
重建模块1302,用于在所述解码端确定所述第一码流包括重建纹理坐标信息的情况下,根据所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格;和/或,用于在所述解码端确定所述第一码流未包括重建纹理坐标信息的情况下,生成重建纹理坐标信息,并根据生成的重建纹理坐标信息、所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格。
可选地,本申请实施例的装置,还包括:
第七获取模块,用于对获取的目标码流进行分解,得到第一标识信息,所述第一标识信息用于表征编码端是否对重建纹理坐标信息进行编码;
第一确定模块,用于根据所述第一标识信息,确定所述第一码流是否包括重建纹理坐标信息。
可选地,本申请实施例的装置,还包括:
第八获取模块,用于在第六获取模块对获取的目标码流进行分解,得到第一码流、第二码流和第三码流之后,对所述第一码流进行解码处理,得到第一解码结果;
第二确定模块,用于根据所述第一解码结果,确定所述第一码流是否包括重建纹理坐标信息。
可选地,所述第一解码结果还包括:
所述目标三维网格对应的几何信息和连接关系信息。
可选地,所述重建模块用于根据所述几何信息和连接关系信息,按照纹理坐标重采样算法,生成所述重建纹理坐标信息。
可选地,所述第六获取模块用于对获取的目标码流进行分解,得到第一码流、第二码流、第三码流和第四码流,所述第四码流是基于目标三维网格的分片信息确定的;以及
所述重建模块用于根据所述第一解码结果、第二解码结果、第三解码结果和所述第四码流对应的第四解码结果,重建所述目标三维网格;或者,根据所述第一解码结果、第二解码结果、第三解码结果、所述第四码流对应的第四解码结果和生成的重建纹理坐标信息,重建所述目标三维网格。
本申请实施例中,编码端根据第一标识信息可以选择不对基础网格中的重建纹理坐标信息进行编码,该情况下解码端可根据已解码的信息生成重建纹理坐标信息,在有损模式下,可以极大地节省码率,提高编码效率。
需要说明的是,该装置实施例是与上述图9所示的方法实施例对应的装置,上述方法实施例中的所有关于解码端的实现方式均适用于该装置实施例中,也能达到相同的技术效果,在此不再赘述。
本申请实施例还提供一种解码设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的程序或指令,该程序或指令被处理器执行时实现上述的解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种编码设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的程序或指令,该程序或指令被处理器执行时实现上述的解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种可读存储介质,计算机可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述的编码方法或解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的解码设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本申请实施例还提供了一种编码设备,包括处理器及通信接口,其中,处理器用于根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,所述第一标识信息用于表征是否对所述重建纹理坐标信息进行编码;根据网格差异信息,获取第二码流,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的;根据重建的纹理图信息,获取第三码流,所述重建的纹理图信息是根据所述第一码流和第二码流得到的;根据所述第一码流、所述第二码流和所述第三码流,生成目标码流。
该编码设备实施例是与上述编码方法实施例对应的,上述方法实施例的各个实施过程和实现方式均可适用于该编码设备实施例中,且能达到相同的技术效果。
本申请实施例还提供了一种解码设备,包括处理器及通信接口,其中,所述处理器用于对获取的目标码流进行分解,得到第一码流、第二码流和第三码流,所述第一码流是基于目标三维网格对应的基础网格得到的,所述第二码流是基于网格差异信息得到的,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于所述待编码的三维网格得到的,所述第三码流是根据重建的纹理图信息得到的;在所述第一码流包括重建纹理坐标信息的情况下,根据所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格;在确定所述第一码流未包括重建纹理坐标信息的情况下,生成重建纹理坐标信息,并根据生成的重建纹理坐标信息、所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格。
该解码设备实施例是与上述解码方法实施例对应的,上述方法实施例的各个实施过程和实现方式均可适用于该解码设备实施例中,且能达到相同的技术效果。
具体地,本申请实施例还提供了一种解码设备。具体地,该解码设备的结构如图14所示,该解码设备1400包括:处理器1401、网络接口1402和存储器1403。其中,网络接口1402例如为通用公共无线接口(common public radio interface,CPRI)。具体地,本申请实施例的解码设备1400还包括:存储在存储器1403上并可在处理器1401上运行的指令或程序,处理器1401调用存储器1403中的指令或程序执行图13所示各模块执行的方法,并达到相同的技术效果,为避免重复,故不在此赘述。
可选的,如图15所示,本申请实施例还提供一种通信设备1500,包括处理器1501和存储器1502,存储器1502上存储有可在所述处理器1501上运行的程序或指令,例如,该通信设备1500为编码设备时,该程序或指令被处理器1501执行时实现上述编码方法实施例的各个步骤,且能达到相同的技术效果。该通信设备1500为解码设备时,该程序或指令被处理器1501执行时实现上述解码方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述编码方法或解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。
本申请实施例另提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述计算机程序/程序产品被至少一个处理器执行以实现上述编码方法或解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供了一种通信系统,至少包括:编码设备和解码设备。所述编码设备可以为如图12所示的编码设备,可用于执行如图1所述的编码方法的步骤。所述解码设备可以为如图14所示的解码设备,可用于执行如图9所述的解码方法的步骤。且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (31)
1.一种编码方法,其特征在于,包括:
编码端根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,所述第一标识信息用于表征是否对所述重建纹理坐标信息进行编码;
所述编码端根据网格差异信息,获取第二码流,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的;
所述编码端根据重建的纹理图信息,获取第三码流,所述重建的纹理图信息是根据所述第一码流和第二码流得到的;
所述编码端根据所述第一码流、所述第二码流和所述第三码流,生成目标码流。
2.根据权利要求1所述的方法,其特征在于,所述编码端根据所述第一码流和所述第二码流,生成目标码流,包括:
对所述第一标识信息进行编码,得到编码后的第一标识信息;
根据所述编码后的第一标识信息、所述第一码流和所述第二码流,生成目标码流。
3.根据权利要求1所述的方法,其特征在于,所述基础网格还包括所述目标三维网格对应的几何信息和连接关系信息。
4.根据权利要求3所述的方法,其特征在于,所述编码端根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,包括:
在所述第一标识信息表征对所述目标三维网格对应的重建纹理坐标信息进行编码的情况下,对所述几何信息、连接关系信息和重建纹理坐标信息进行编码,得到第一码流;
和/或,在所述第一标识信息表征对所述目标三维网格对应的重建纹理坐标信息不进行编码的情况下,对所述几何信息和连接关系信息进行编码,得到第一码流。
5.根据权利要求3所述的方法,其特征在于,所述编码端根据重建的纹理图信息,获取第三码流之前,还包括:
对所述第一码流进行解码和反量化处理,得到重建基础网格;
对所述第二码流进行解码和反量化处理,得到目标网格差异信息;
根据所述重建基础网格和所述目标网格差异信息,按照纹理图生成算法生成重建的纹理图信息。
6.根据权利要求1所述的方法,其特征在于,所述编码端根据网格差异信息,获取第二码流,包括:
对所述第一码流进行解码,获取所述第一码流对应的重建网格;
根据所述重建网格,对所述网格差异信息进行更新,得到更新后的网格差异信息;
对更新后的网格差异信息进行编码,得到所述第二码流。
7.根据权利要求1所述的方法,其特征在于,所述编码端根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流之前,还包括:
在处于有损编码模式的情况下,对待编码的三维网格进行简化处理,得到目标三维网格;
在处于无损编码模式的情况下,将待编码的三维网格,确定为目标三维网格。
8.根据权利要求1所述的方法,其特征在于,所述编码端根据所述第一码流、所述第二码流和所述第三码流,生成目标码流,包括:
根据所述目标三维网格的分片信息,获取第四码流;
根据所述第一码流、第二码流、第三码流和第四码流,得到所述目标码流。
9.一种解码方法,其特征在于,包括:
解码端对获取的目标码流进行分解,得到第一码流、第二码流和第三码流,所述第一码流是基于目标三维网格对应的基础网格得到的,所述第二码流是基于网格差异信息得到的,所述网格差异信息用于表征所述基础网格与待编码三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的,所述第三码流是根据重建的纹理图信息得到的;
在所述解码端确定所述第一码流包括重建纹理坐标信息的情况下,根据所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格;
在所述解码端确定所述第一码流未包括重建纹理坐标信息的情况下,生成重建纹理坐标信息,并根据生成的重建纹理坐标信息、所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格。
10.根据权利要求9所述的方法,其特征在于,还包括:
所述解码端对获取的目标码流进行分解,得到第一标识信息,所述第一标识信息用于表征编码端是否对重建纹理坐标信息进行编码;
根据所述第一标识信息,确定所述第一码流是否包括重建纹理坐标信息。
11.根据权利要求9所述的方法,其特征在于,解码端对获取的目标码流进行分解,得到第一码流、第二码流和第三码流之后,还包括:
对所述第一码流进行解码处理,得到第一解码结果;
根据所述第一解码结果,确定所述第一码流是否包括重建纹理坐标信息。
12.根据权利要求9或至11任一项所述的方法,其特征在于,所述第一解码结果还包括:
所述目标三维网格对应的几何信息和连接关系信息。
13.根据权利要求12所述的方法,其特征在于,所述生成重建纹理坐标信息,包括:
根据所述几何信息和连接关系信息,按照纹理坐标重采样算法,生成所述重建纹理坐标信息。
14.根据权利要求9所述的方法,其特征在于,解码端对获取的目标码流进行分解,得到第一码流、第二码流和第三码流,包括:
解码端对获取的目标码流进行分解,得到第一码流、第二码流、第三码流和第四码流,所述第四码流是基于目标三维网格的分片信息确定的;以及
所述根据所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格,包括:根据所述第一解码结果、第二解码结果、第三解码结果和所述第四码流对应的第四解码结果,重建所述目标三维网格;或者,所述根据生成的重建纹理坐标信息、所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格,包括:根据所述第一解码结果、第二解码结果、第三解码结果、所述第四码流对应的第四解码结果和生成的重建纹理坐标信息,重建所述目标三维网格。
15.一种编码装置,应用于编码端,其特征在于,包括:
第一编码模块,用于根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流,所述基础网格包括所述目标三维网格对应的重建纹理坐标信息,所述第一标识信息用于表征是否对所述重建纹理坐标信息进行编码;
第一获取模块,用于根据网格差异信息,获取第二码流,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的;
第二获取模块,用于根据重建的纹理图信息,获取第三码流,所述重建的纹理图信息是根据所述第一码流和第二码流得到的;
第一生成模块,用于根据所述第一码流、所述第二码流和所述第三码流,生成目标码流。
16.根据权利要求15所述的装置,其特征在于,所述第一生成模块包括:
第一获取子模块,用于对所述第一标识信息进行编码,得到编码后的第一标识信息;
第一生成子模块,用于根据所述编码后的第一标识信息、所述第一码流和所述第二码流,生成目标码流。
17.根据权利要求15所述的装置,其特征在于,所述基础网格还包括所述目标三维网格对应的几何信息和连接关系信息。
18.根据权利要求17所述的装置,其特征在于,所述第一编码模块用于:
在所述第一标识信息表征对所述目标三维网格对应的重建纹理坐标信息进行编码的情况下,对所述几何信息、连接关系信息和重建纹理坐标信息进行编码,得到第一码流;
和/或,在所述第一标识信息表征对所述目标三维网格对应的重建纹理坐标信息不进行编码的情况下,对所述几何信息和连接关系信息进行编码,得到第一码流。
19.根据权利要求17所述的装置,其特征在于,还包括:
第三获取模块,用于在第二获取模块根据重建的纹理图信息,获取第三码流之前,对所述第一码流进行解码和反量化处理,得到重建基础网格;
第四获取模块,用于对所述第二码流进行解码和反量化处理,得到目标网格差异信息;
第二生成模块,用于根据所述重建基础网格和所述目标网格差异信息,按照纹理图生成算法生成重建的纹理图信息。
20.根据权利要求15所述的装置,其特征在于,所述第一获取模块包括:
第二获取子模块,用于对所述第一码流进行解码,获取所述第一码流对应的重建网格;
更新子模块,用于根据所述重建网格,对所述网格差异信息进行更新,得到更新后的网格差异信息;
第一编码子模块,用于对更新后的网格差异信息进行编码,得到所述第二码流。
21.根据权利要求15所述的装置,其特征在于,还包括:
第五获取模块,用于在第一编码模块根据第一标识信息,对目标三维网格对应的基础网格进行编码,获取第一码流之前,在处于有损编码模式的情况下,对待编码的三维网格进行简化处理,得到目标三维网格;在处于无损编码模式的情况下,将待编码的三维网格,确定为目标三维网格。
22.根据权利要求15所述的装置,其特征在于,所述第一生成模块包括:
第三获取子模块,用于根据所述目标三维网格的分片信息,获取第四码流;
第四获取子模块,用于根据所述第一码流、第二码流、第三码流和第四码流,得到所述目标码流。
23.一种解码装置,应用于解码端,其特征在于,包括:
第六获取模块,用于对获取的目标码流进行分解,得到第一码流、第二码流和第三码流,所述第一码流是基于目标三维网格对应的基础网格得到的,所述第二码流是基于网格差异信息得到的,所述网格差异信息用于表征所述基础网格与待编码的三维网格之间的差异信息,所述目标三维网格是基于待编码的三维网格得到的,所述第三码流是根据重建的纹理图信息得到的;
重建模块,用于在所述解码端确定所述第一码流包括重建纹理坐标信息的情况下,根据所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格;和/或,用于在所述解码端确定所述第一码流未包括重建纹理坐标信息的情况下,生成重建纹理坐标信息,并根据生成的重建纹理坐标信息、所述第一码流对应的第一解码结果、所述第二码流对应的第二解码结果和所述第三码流对应的第三解码结果,重建目标三维网格。
24.根据权利要求23所述的装置,其特征在于,还包括:
第七获取模块,用于对获取的目标码流进行分解,得到第一标识信息,所述第一标识信息用于表征编码端是否对重建纹理坐标信息进行编码;
第一确定模块,用于根据所述第一标识信息,确定所述第一码流是否包括重建纹理坐标信息。
25.根据权利要求23所述的装置,其特征在于,还包括:
第八获取模块,用于在第六获取模块对获取的目标码流进行分解,得到第一码流、第二码流和第三码流之后,对所述第一码流进行解码处理,得到第一解码结果;
第二确定模块,用于根据所述第一解码结果,确定所述第一码流是否包括重建纹理坐标信息。
26.根据权利要求23或至25任一项所述的装置,其特征在于,所述第一解码结果还包括:
所述目标三维网格对应的几何信息和连接关系信息。
27.根据权利要求26所述的装置,其特征在于,所述重建模块用于根据所述几何信息和连接关系信息,按照纹理坐标重采样算法,生成所述重建纹理坐标信息。
28.根据权利要求23所述的装置,其特征在于,所述第六获取模块用于对获取的目标码流进行分解,得到第一码流、第二码流、第三码流和第四码流,所述第四码流是基于目标三维网格的分片信息确定的;以及
所述重建模块用于根据所述第一解码结果、第二解码结果、第三解码结果和所述第四码流对应的第四解码结果,重建所述目标三维网格;或者,根据所述第一解码结果、第二解码结果、第三解码结果、所述第四码流对应的第四解码结果和生成的重建纹理坐标信息,重建所述目标三维网格。
29.一种编码设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至8任一项所述的编码方法的步骤。
30.一种解码设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求9至14任一项所述的解码方法的步骤。
31.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至8任一项所述的编码方法的步骤,或者实现如权利要求9至14任一项所述的解码方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210613984.5A CN117197263A (zh) | 2022-05-31 | 2022-05-31 | 编码方法、解码方法、装置及设备 |
PCT/CN2023/096097 WO2023231872A1 (zh) | 2022-05-31 | 2023-05-24 | 编码方法、解码方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210613984.5A CN117197263A (zh) | 2022-05-31 | 2022-05-31 | 编码方法、解码方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117197263A true CN117197263A (zh) | 2023-12-08 |
Family
ID=88983732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210613984.5A Pending CN117197263A (zh) | 2022-05-31 | 2022-05-31 | 编码方法、解码方法、装置及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117197263A (zh) |
WO (1) | WO2023231872A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100668714B1 (ko) * | 2005-01-14 | 2007-01-16 | 한국전자통신연구원 | 효과적인 텍스처 매핑을 위한 3차원 메쉬 정보의 텍스처좌표 부호화 및 복호화 방법 |
CN101626509B (zh) * | 2009-08-10 | 2011-02-02 | 北京工业大学 | 三维网格编码、解码方法及编码、解码装置 |
CN104243958B (zh) * | 2014-09-29 | 2016-10-05 | 联想(北京)有限公司 | 三维网格数据的编码、解码方法以及编码、解码装置 |
GB2560319B (en) * | 2017-03-06 | 2020-09-02 | Canon Kk | Improved encoding and decoding of texture mapping data in textured 3D mesh models |
US11450030B2 (en) * | 2019-09-24 | 2022-09-20 | Apple Inc. | Three-dimensional mesh compression using a video encoder |
-
2022
- 2022-05-31 CN CN202210613984.5A patent/CN117197263A/zh active Pending
-
2023
- 2023-05-24 WO PCT/CN2023/096097 patent/WO2023231872A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023231872A1 (zh) | 2023-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Krivokuća et al. | A volumetric approach to point cloud compression–part ii: Geometry compression | |
Huang et al. | Octree-Based Progressive Geometry Coding of Point Clouds. | |
Peng et al. | Technologies for 3D mesh compression: A survey | |
US9734595B2 (en) | Method and apparatus for near-lossless compression and decompression of 3D meshes and point clouds | |
KR101669873B1 (ko) | 삼차원 메쉬 압축장치 및 방법 | |
Waschbüsch et al. | Progressive Compression of Point-Sampled Models. | |
EP3993424A1 (en) | Transform method, inverse transform method, coder, decoder and storage medium | |
WO2021184380A1 (zh) | 点云编码方法和解码方法、编码器、解码器、及存储介质 | |
WO2021062772A1 (zh) | 预测方法、编码器、解码器及计算机存储介质 | |
Caillaud et al. | Progressive compression of arbitrary textured meshes | |
GB2561824A (en) | Encoding and decoding of geometry data in a 3D model based on evaluated regularity of the model | |
Krivokuća et al. | A volumetric approach to point cloud compression | |
CN117197263A (zh) | 编码方法、解码方法、装置及设备 | |
CN116843855A (zh) | 编码方法及终端 | |
Cohen-Or et al. | Multi-way geometry encoding | |
Yusov | Real-time deformable terrain rendering with DirectX 11 | |
WO2023193709A1 (zh) | 编码、解码方法、装置及设备 | |
WO2023155778A1 (zh) | 编码方法、装置及设备 | |
WO2023197990A1 (zh) | 编码方法、解码方法及终端 | |
WO2023155794A1 (zh) | 编码、解码方法、装置及设备 | |
WO2023179706A1 (zh) | 编码方法、解码方法及终端 | |
Lavoué et al. | Subdivision surface fitting for efficient compression and coding of 3D models | |
CN118678092A (zh) | 编码处理方法、解码处理方法及相关设备 | |
WO2024212981A1 (zh) | 一种三维网格序列编解码方法及装置 | |
WO2023174337A1 (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 |