Encoding method, decoding method, apparatus and device

The encoding method addresses the challenge of reversible decoding for non-manifold structures by determining vertex connectivity and encoding relevant information, allowing for accurate reconstruction of three-dimensional meshes.

JP2026516908APending Publication Date: 2026-05-26VIVO MOBILE COMM CO LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
VIVO MOBILE COMM CO LTD
Filing Date
2024-06-24
Publication Date
2026-05-26

AI Technical Summary

Technical Problem

Existing encoding methods for three-dimensional mesh models, particularly those with non-manifold structures, fail to achieve reversible decoding due to inconsistencies in the connection relationships between geometric and attribute vertices, leading to incomplete reconstruction of the original mesh.

Method used

An encoding method that determines the connectivity relationship between geometric and attribute vertices, partitions non-manifold structures, and encodes non-manifold identifier and index information to ensure reversible decoding, using Edgebreaker-based encoding for connection relationships and additional information for geometric and attribute vertices.

Benefits of technology

Enables complete reversible decoding of three-dimensional meshes with non-manifold structures by integrating geometric and attribute duplicate vertices, ensuring accurate reconstruction of the original mesh.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026516908000001_ABST
    Figure 2026516908000001_ABST
Patent Text Reader

Abstract

This application discloses an encoding method, a decoding method, an apparatus and an apparatus, the method of an embodiment of this application comprising: determining first indicator information to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connectivity relationship; determining one or two sets of non-manifold structure information based on the first indicator information, each set of non-manifold structure information including non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex including geometric vertices and attribute vertices in the manifold mesh, the non-manifold identifier information used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex being a duplicate vertex that occurred when the non-manifold structure in the original mesh was partitioned, the target duplicate vertex including geometric duplicate vertices and attribute duplicate vertices; and encoding the first indicator information and one or two sets of non-manifold structure information to obtain a first code stream.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0005] ,

[0001] (Cross - reference to Related Applications) This application claims the priority of Chinese Patent Application No. 202310802666.8, filed in China on June 30, 2023, and the entire content of the said application is incorporated herein by reference.

[0002] This application belongs to the field of codec technology, and specifically relates to encoding methods, decoding methods, devices, and equipment.

Background Art

[0003] The demand for visual effects for three - dimensional mesh models is increasing, and with the emergence of many more mature three - dimensional scanning technologies and three - dimensional modeling software, the data scale and complexity of three - dimensional mesh models obtained by three - dimensional scanning devices or three - dimensional modeling software are also increasing rapidly. Therefore, how to efficiently encode three - dimensional mesh data is the key to realizing the easy transmission, storage, and processing of three - dimensional mesh data. In related technologies, when encoding a three - dimensional mesh including a non - manifold structure, one identifier is set for the geometric vertices in the manifold mesh corresponding to the three - dimensional mesh to determine whether it is a point generated by dividing the non - manifold structure. However, the decoding terminal cannot fully realize the reversible decoding of the three - dimensional mesh including the non - manifold structure based on the identifiers of the geometric vertices.

Summary of the Invention

Problems to be Solved by the Invention

[0004] The embodiments of this application provide an encoding method, a decoding method, a device, and equipment that can solve the problem that the decoding terminal cannot fully realize the reversible decoding of a three - dimensional mesh including a non - manifold structure based on the non - manifold identifiers of geometric vertices.

Means for Solving the Problems

[0005] According to the first aspect, an encoding method is provided, and this method is The encoding termination involves determining a first indicator information to show whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship, The encoding termination determines one or two sets of non-manifold structure information based on the first instruction information, wherein each set of non-manifold structure information includes non-manifold identifier information for a target vertex and index information for a target duplicate vertex, the target vertex includes a geometric vertex in the manifold mesh and the attribute vertex, the manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes a geometric duplicate vertex and an attribute duplicate vertex. The encoding termination includes encoding the first instruction information and the one or two sets of non-manifold structure information to obtain a first code stream.

[0006] According to a second aspect, a decoding method is provided, which is: The decoding terminal decodes a first code stream and obtains decoding information, wherein the decoding information includes first instruction information and one or two sets of non-manifold structure information, each set of non-manifold structure information includes non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex includes a geometric vertex in a manifold mesh and the attribute vertex, the manifold mesh is obtained after partitioning the non-manifold structure in the original mesh, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when partitioning the non-manifold structure, the target duplicate vertex is a duplicate vertex that occurred when the coding terminal partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes a geometric duplicate vertex and an attribute duplicate vertex, and the first instruction information is used to indicate whether the geometric vertex and the attribute vertex in the original mesh have the same connectivity relationship. The decoding termination includes recovering the non-manifold structure in the original mesh based on the decoding information.

[0007] According to a third aspect, an encoding device is provided, which device is A first determination module for determining first indicator information to show whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship, A second decision module for determining one or two sets of non-manifold structure information based on the first instruction information, wherein each set of non-manifold structure information includes non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex includes a geometric vertex in the manifold mesh and the attribute vertex, the manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes a geometric duplicate vertex and an attribute duplicate vertex, It includes a first acquisition module for encoding the first instruction information and the one or two sets of non-manifold structure information to obtain a first code stream.

[0008] According to a fourth aspect, a decoding device is provided, which is A fourth acquisition module for decoding a first code stream and obtaining decoded information, wherein the decoded information includes a first instruction information and one or two sets of non-manifold structure information, each set of non-manifold structure information includes a non-manifold identifier information for a target vertex and an index information for a target duplicate vertex, the target vertex includes a geometric vertex in a manifold mesh and the attribute vertex, the manifold mesh is obtained after partitioning the non-manifold structure in the original mesh, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when partitioning the non-manifold structure, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes a geometric duplicate vertex and an attribute duplicate vertex, and the first instruction information is used to indicate whether the geometric vertex and attribute vertex in the original mesh have the same connection relationship. The system includes a recovery module for recovering the non-manifold structure in the original mesh based on the aforementioned decoding information.

[0009] According to a fifth aspect, an encoding device is provided, the encoding device comprising a processor and a communication interface, wherein the processor determines a first instruction information to indicate whether geometric vertices and attribute vertices in the original mesh have the same connectivity relationship, and determines one or two sets of non-manifold structure information based on the first instruction information, each set of non-manifold structure information comprising non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex comprising geometric vertices in the manifold mesh and attribute vertices, and the multi The manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the non-manifold structure in the original mesh was partitioned, and the target duplicate vertex includes geometric duplicate vertices and attribute duplicate vertices, and is used to encode the first instruction information and the one or two sets of non-manifold structure information to obtain the first code stream.

[0010] According to the sixth aspect, a decoding device is provided, the decoding device comprising a processor and a communication interface, wherein the processor decodes a first code stream and obtains decoding information, the decoding information comprising a first instruction information and one or two sets of non-manifold structure information, each set of the non-manifold structure information comprising non-manifold identifier information of a target vertex and index information of target duplicate vertices, the target vertex comprising geometric vertices in a manifold mesh and attribute vertices, the manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned. The non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes geometric duplicate vertices and attribute duplicate vertices, and the first instruction information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship, and to recover the non-manifold structure in the original mesh based on the decoding information.

[0011] According to the seventh aspect, an electronic device is provided, including a processor and a memory, wherein the memory stores a program or instruction that can be executed on the processor, and when the program or instruction is executed by the processor, a step of the method according to the first or second aspect is realized.

[0012] According to the eighth aspect, a codec system is provided, which includes an encoding device and a decoding device, wherein the encoding device may be used to perform the steps of the encoding method described in the first aspect, and the decoding device may be used to perform the steps of the decoding method described in the second aspect.

[0013] According to the ninth aspect, a readable storage medium is provided, the readable storage medium storing a program or instruction, and when the program or instruction is executed by a processor, a step of the method according to the first aspect is realized, or a step of the method according to the second aspect is realized.

[0014] According to the tenth aspect, a chip is provided, the chip comprising a processor and a communication interface, the communication interface being coupled with the processor, the processor being used to execute a program or instructions, to implement the method according to the first aspect, or to implement the method according to the third aspect.

[0015] According to the eleventh aspect, a computer program / program product is provided, the computer program / program product is stored in a storage medium, and the computer program / program product is executed by at least one processor to realize a step of the method according to the first aspect, or a step of the method according to the second aspect. [Effects of the Invention]

[0016] In the embodiments of this application, the encoding termination determines first instruction information to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connectivity relationship, the encoding termination determines one or two sets of non-manifold structure information based on the first instruction information, each set of non-manifold structure information includes non-manifold identifier information for a target vertex and index information for a target duplicate vertex, the target vertex includes the geometric vertices and attribute vertices in the manifold mesh, the manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the non-manifold structure in the original mesh has been partitioned, and the target duplicate vertex includes the geometric duplicate vertex and the attribute duplicate vertex, and the first instruction information and the one or two sets of non-manifold structure information are encoded to obtain a first code stream. The above solution allows the decoding terminal to perform decoding and obtain non-manifold identifier information for geometric vertices and attribute vertices in the manifold mesh, as well as index information for target duplicate vertices. Based on this non-manifold identifier information for geometric vertices and attribute vertices, and index information for target duplicate vertices, the non-manifold structure of the original mesh can be recovered by integrating both the geometric duplicate vertices and attribute duplicate vertices that resulted from the partitioning of the non-manifold structure, thereby completely achieving reversible decoding of the original mesh containing the non-manifold structure. [Brief explanation of the drawing]

[0017] [Figure 1] A schematic diagram of the five patterns of Edgebreaker coding methods. [Figure 2] A schematic flowchart of the encoding method according to an embodiment of this application. [Figure 3] A schematic diagram of the lossless encoding framework for a three-dimensional mesh according to an embodiment of this application. [Figure 4] A schematic diagram showing the correspondence between edges and angles in a manifold mesh according to an embodiment of this application. [Figure 5]Schematic diagram of angular relationship in an embodiment of this application. [Figure 6] Schematic diagram of traversal rules for five patterns of the Edgebreaker encoding method in an embodiment of this application. [Figure 7] Schematic diagram of two adjacent triangles in the mesh of an embodiment of this application. [Figure 8] Schematic prediction diagram for predicting UV coordinates based on projection from three dimensions to two dimensions in an embodiment of this application. [Figure 9] Schematic flowchart diagram of the decoding method in an embodiment of this application. [Figure 10] Schematic diagram of the reversible decoding framework for a three-dimensional mesh in an embodiment of this application. [Figure 11] Schematic module diagram of the encoding device in an embodiment of this application. [Figure 12] Schematic module diagram of the decoding device in an embodiment of this application. [Figure 13] Structural block diagram of an electronic device in an embodiment of this application. [Figure 14] Structural block diagram of the encoding device or decoding device in an embodiment of this application.

Modes for Carrying Out the Invention

[0018] The following clearly and completely describes the technical solutions in the embodiments of this application in conjunction with the drawings in the embodiments of this application. Obviously, the described embodiments are some but not all of the embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments in this application shall fall within the protection scope of this application.

[0019] The terms "first," "second," etc., used in this application are intended to distinguish similar objects and not to describe a specific order or sequence. It should be understood that these terms are interchangeable where appropriate, so that the embodiments of this application can be carried out in an order other than those illustrated or described herein, and the objects distinguished by "first" and "second" are generally of the same kind and do not limit the number of objects; for example, the first object may be one or more. In this application, "or" represents at least one of the connected objects. For example, "A or B" covers three solutions: Solution 1: includes A but not B, Solution 2: includes B but not A, Solution 3: includes both A and B. The letter " / " generally indicates that the preceding and succeeding objects are in an "or" relationship.

[0020] The term "instruction" as used in this application may be direct (or explicit) or indirect (or implicit). Here, a direct instruction may be understood as the sender clearly informing the receiver of specific information, operations to be performed, or desired results in the instructions sent by the sender, while an indirect instruction may be understood as the receiver determining or judging the corresponding information based on the instructions sent by the sender, and determining the operations to be performed or desired results based on the judgment.

[0021] It should be noted that the technologies described in the embodiments of this application are not limited to Long Term Evolution (LTE) / LTE-Advanced (LTE-A) systems, but are also applicable to other wireless communication systems, such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Orthogonal Frequency Division Multiple Access (OFDMA), Single-carrier Frequency-Division Multiple Access (SC-FDMA), or other systems. The terms "system" and "network" in the embodiments of this application are always used interchangeably, and the technologies described may be applied to the systems and wireless technologies mentioned above, or to other systems and wireless technologies. The following description illustrates a New Radio (NR) system and uses NR terminology in most of the following descriptions; however, these technologies may also be applied to systems other than NR systems, such as 6th Generation (6G) communication systems.

[0022] To help those skilled in the art better understand the embodiments of this application, they will first be described as follows.

[0023] With the rapid development of multimedia technology, related research results are rapidly being industrialized and have become an essential component of people's lives. Three-dimensional models will become the next generation of digital media, following audio, images, and video. Three-dimensional meshes and point clouds are two commonly used three-dimensional model representation methods. Compared to conventional multimedia such as images and videos, three-dimensional mesh models have stronger interactivity and realism, and are therefore increasingly being applied in various fields such as commerce, manufacturing, construction, education, medicine, entertainment, art, and military.

[0024] With the increasing demand for visual effects on three-dimensional mesh models, and the emergence of many more mature three-dimensional scanning technologies and three-dimensional modeling software, the data size and complexity of three-dimensional mesh models acquired by three-dimensional scanning equipment or three-dimensional modeling software are rapidly increasing. Therefore, how to efficiently compress three-dimensional mesh data is key to enabling the easy transmission, storage, and processing of three-dimensional mesh data.

[0025] A single three-dimensional mesh often contains three main types of information simultaneously: topology, geometry, and attribute information. Topology, also known as connectivity information, is used to describe the connection relationships between vertices and elements such as patches in the mesh. Geometry information consists of the three-dimensional coordinates of all vertices in the mesh, and attribute information records other information attached to the mesh, such as normal vectors, texture coordinates, and color. Compression of three-dimensional mesh data generally involves compressing these three types of information according to their respective data characteristics. In the case of three-dimensional meshes with texture maps, it may also be necessary to compress the texture maps.

[0026] Draco is a library for compressing and decompressing three-dimensional (3D) geometric meshes and point clouds, aiming to improve the storage and transmission of 3D graphics and significantly accelerate the encoding, transmission, and decoding of 3D data. Draco supports the compression of geometric, connection, and attribute information of three-dimensional meshes. Draco supports both lossy and near-lossy patterns. The Edgebreaker compression method used by Draco when encoding connection relationships is currently one of the most efficient methods for encoding three-dimensional mesh connection information.

[0027] However, Edgebreaker requires that the mesh to be encoded be a manifold structure, and for meshes that have a non-manifold structure, Draco cannot encode them correctly unless it divides them into a manifold structure. However, Draco does not merge the divided structures at the decoding end, so the mesh output from the decoding end has more divided points than the original mesh input from the encoding end. As a result, Draco cannot reversibly encode meshes that have such non-manifold structures.

[0028] The Moving Pictures Experts Group (MPEG), an international standardization organization for video images, is developing a new dynamic 3D mesh compression standard (Video-based Dynamic Mesh Coding, V-DMC). Currently, even when encoding static 3D meshes, they are adopting an Edgebreaker-based solution and have chosen to temporarily multiplex the Draco codec. At the same time, MPEG is attempting to implement an Edgebreaker-based 3D mesh codec by MPEG to achieve compression of geometric, connection, and attribute information of 3D meshes. Since Edgebreaker requires the mesh to be encoded to have a manifold structure, the currently proposed solution divides 3D meshes with non-manifold structures into manifold structures before encoding. Therefore, for reversible patterns, the three-dimensional mesh codec based on Edgebreaker provided by MPEG records and encodes the duplicate point index information generated by partitioning the non-manifold at the end of encoding, and adds a single identifier to each geometric vertex of the partitioned manifold mesh to indicate whether or not it is a duplicate point generated by partitioning the non-manifold. However, when the geometric vertices and attribute vertices have different connection relationships (they do not correspond one-to-one), the decoding end cannot determine the non-manifold identifier of the attribute vertex based on the non-manifold identifier of the geometric vertex. As a result, it cannot determine the attribute vertices that have increased due to partitioning the non-manifold structure, and furthermore, it cannot achieve reversible decoding of a three-dimensional mesh containing a non-manifold structure.

[0029] The Edgebreaker-based 3D mesh compression tool currently offered by MPEG encodes and stores connection information, geometric information, and attribute information of a 3D mesh, respectively. The core module, which encodes connection information, uses the Edgebreaker algorithm. General compression methods are employed for encoding geometric and attribute information, namely quantization, predictive compression (e.g., parallelogram prediction), and entropy coding of the data. Because this tool employs a connection-driven encoding method, the encoding of geometric and attribute information follows the encoding order of the connection information. By embedding the vertex order of the encoding of connection relationships into the vertex order of the geometric information in this manner, the transmission of the vertex order of the encoding of connection relationships is avoided, thereby saving bit overhead in this part.

[0030] The Edgebreaker method is an encoding method for three-dimensional mesh connection relationships that has advantages such as high compression performance, ease of implementation, and the ability to set an upper limit on the compression ratio. The Edgebreaker method itself only describes the method for compressing three-dimensional mesh connection information; it is necessary to achieve compression of the three-dimensional mesh through geometric information compression and entropy coding, etc.

[0031] Edgebreaker coding technology can achieve a compression efficiency of 2 bits or less per triangle for triangular meshes in phase with a sphere. The coding algorithm accesses each triangle in the mesh in depth-first order using five different patterns (called C, L, E, R, and S). Based on the pattern in which each triangle lies, it is marked, a CLERS string is generated, and a compact representation of the mesh connection relationships is obtained.

[0032] The five patterns of the Edgebreaker method are shown in Figure 1. The Edgebreaker method divides the mesh into traversed and untraversed parts, and the boundary between the two parts is called the movable boundary. In the Edgebreaker encoding process, the triangles to be traversed are accessed by movable edges on the movable boundary, and the pattern to use is selected based on the relationship between the movable edge and the triangle in which it is located. Another vertex in the triangle in which the movable edge is located is called the third vertex. If the third vertex is not on the movable boundary, the current triangle is marked as pattern C. If the third vertex is on the movable boundary and, according to counterclockwise order, is the vertex after the current movable edge vertex, the current triangle is marked as pattern R. If the third vertex is on the movable boundary and, according to counterclockwise order, is the vertex before the current movable edge vertex, the current triangle is marked as pattern L. If the third vertex is on the movable boundary and, according to counterclockwise order, is the vertex before the current movable edge vertex and is the vertex after the current movable edge, the current triangle is marked as pattern E. The current triangle is marked as an S-pattern if the third vertex lies on a movable boundary, but, in counterclockwise order, is neither the vertex immediately preceding the current movable edge vertex nor the vertex immediately following the current movable edge.

[0033] Each time a triangle is marked, the movable boundary is updated, and the next movable edge is selected according to a set rule. After traversing all triangles, entropy coding is performed on the resulting CLERS string to achieve higher compression efficiency.

[0034] The encoding method according to the embodiments of this application will be described in detail below with reference to the drawings, using several embodiments and their application scenarios.

[0035] As shown in Figure 2, the embodiment of this application provides an encoding method, and this method is Step 201: The encoding termination includes determining a first indicator information to show whether the geometric vertices and attribute vertices in the original mesh have the same connectivity relationship.

[0036] In the embodiments of this application, when geometric vertices in the original mesh correspond one-to-one with attribute vertices, the geometric vertices and attribute vertices in the original mesh have the same connection relationship, and when geometric vertices in the original mesh do not correspond one-to-one with attribute vertices, the geometric vertices and attribute vertices in the original mesh have different connection relationships. Selectively, these attribute vertices are UV vertices.

[0037] Selectively, the original mesh is a three-dimensional mesh. This original mesh may be understood as a three-dimensional mesh corresponding to any video frame.

[0038] Selectively, the first instruction information described above may be represented by a single identifier. For example, if this identifier is set to 1, it indicates that the geometric vertices and attribute vertices in the original mesh have the same connection relationship, and if this identifier is set to 0, it indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships. Alternatively, it may be represented using whether or not difference information exists between attribute connection relationships and geometric connection relationships. If such difference information does not exist, the geometric vertices and attribute vertices have the same connection relationship, and if such difference information exists, the geometric vertices and attribute vertices have different connection relationships.

[0039] Of course, the first instruction information mentioned above may be expressed in other forms, and this application does not limit the specific form of expression.

[0040] Step 202: The encoding terminal determines one or two sets of non-manifold structure information based on the first instruction information, each set of non-manifold structure information includes non-manifold identifier information for a target vertex and index information for a target duplicate vertex, the target vertex includes a geometric vertex in the manifold mesh and the attribute vertex, the manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding terminal partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes a geometric duplicate vertex and an attribute duplicate vertex.

[0041] In the embodiments of this application, non-manifold identifier information indicates whether a target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned. For example, if the non-manifold identifier information is 1, it indicates that the vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, and if the non-manifold identifier information is 0, it indicates that the vertex is not a duplicate vertex that occurred when the non-manifold structure was partitioned.

[0042] In the embodiments of this application, one or two sets of non-manifold structure information can be determined by the first instruction information, and based on this one or two sets of non-manifold structure information, non-manifold identifier information for geometric vertices and attribute vertices and index information for geometrically overlapping vertices and attribute overlapping vertices can be obtained, thereby facilitating the reversible decoding of a three-dimensional mesh including a non-manifold structure based on this non-manifold identifier information for geometrically overlapping vertices and attribute vertices and index information for geometrically overlapping vertices and attribute overlapping vertices.

[0043] Selectively, in the embodiments of this application, a mesh is called a manifold mesh if each edge of the mesh is shared by a maximum of two patches and there are no non-manifold points; otherwise, it is called a non-manifold mesh.

[0044] Step 203: The encoding termination encodes the first instruction information and the one or two sets of non-manifold structure information to obtain the first code stream.

[0045] In the solution of the embodiment of this application, the encoding termination determines first instruction information to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connectivity relationship, the encoding termination determines one or two sets of non-manifold structure information based on the first instruction information, each set of non-manifold structure information includes non-manifold identifier information for a target vertex and index information for a target duplicate vertex, the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, the manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the non-manifold structure in the original mesh has been partitioned, and the target duplicate vertex includes the geometric duplicate vertex and the attribute duplicate vertex, and the first instruction information and the one or two sets of non-manifold structure information are encoded to obtain a first code stream. The above solution allows the decoding terminal to perform decoding and obtain non-manifold identifier information for geometric vertices and attribute vertices in the manifold mesh, as well as index information for target duplicate vertices. Based on this non-manifold identifier information for geometric vertices and attribute vertices, and index information for target duplicate vertices, the non-manifold structure of the original mesh can be recovered by integrating both the geometric duplicate vertices and attribute duplicate vertices that resulted from the partitioning of the non-manifold structure, thereby completely achieving reversible decoding of the original mesh containing the non-manifold structure.

[0046] Selectively, the first code stream further includes encoded information of a second instruction information, which is used to indicate whether or not a non-manifold structure exists in the original mesh.

[0047] The second instruction information described above may be represented by a single identifier. For example, if this identifier is set to 1, it indicates that a non-manifold structure exists in the original mesh, and if this identifier is set to 0, it indicates that a non-manifold structure does not exist in the original mesh.

[0048] Of course, the second instruction information mentioned above may be expressed in other forms, and this application does not limit the specific form of expression.

[0049] Selectively, the encoding termination determines one or two sets of non-manifold structure information based on the first instruction information, When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have the same connection relationship, the encoding termination determines a set of non-manifold structure information, wherein the geometric vertices and attribute vertices in the manifold mesh share non-manifold identifier information in the set of non-manifold structure information, and the geometric overlapping vertices and attribute overlapping vertices in the manifold mesh share index information in the set of non-manifold structure information, or When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have different connectivity relationships, the encoding termination determines two sets of non-manifold structure information, where the geometric vertices and geometrically overlapping vertices in the manifold mesh correspond to one set of non-manifold structure information from the two sets of non-manifold structure information, and the attribute vertices and attribute overlapping vertices in the manifold mesh correspond to the other set of non-manifold structure information from the two sets of non-manifold structure information, at least one of these.

[0050] In the solution of the embodiment of this application, when encoding a mesh containing a non-manifold structure, it is first determined whether the geometric vertices and attribute vertices in the mesh have the same connection relationship. If the geometric vertices and attribute vertices have different connection relationships, the non-manifold structure is divided, and then one non-manifold identifier information is set for each geometric vertex and each attribute vertex of the manifold mesh and encoded. At the same time, the index information of the geometric overlapping points and attribute overlapping points that arise from dividing the non-manifold structure is recorded and encoded. In other words, by determining two sets of non-manifold structure information, reversible encoding of a three-dimensional mesh based on Edgebreaker can be fully realized. If the geometric vertices and attribute vertices have the same connection relationship, only the index information of the overlapping points that arise from dividing one set of non-manifold structures and the non-manifold identifier information of one set of target vertices are recorded, that is, one set of non-manifold structure information is determined.

[0051] In addition, the overlapping vertices in the embodiments of this application may be described as overlapping points.

[0052] Selectively, the above method, The encoding termination encodes the manifold mesh and obtains a second code stream, wherein the manifold mesh is obtained after the encoding termination has partitioned the non-manifold structure in the original mesh. The encoding termination further includes obtaining the total code stream of the original mesh based on the first code stream and the second code stream.

[0053] In the embodiments of this application, when the decoding terminal recovers the non-manifold structure, it requires the non-manifold identifier information and the index information of the duplicate vertices, as well as the decoded manifold mesh. Based on the decoded manifold mesh, the non-manifold identifier information, and the index information of the duplicate vertices, the non-manifold structure can be recovered.

[0054] Selectively, the encoding termination encodes the manifold mesh to obtain a second code stream. The encoding termination includes encoding the target information of the manifold mesh and obtaining the second code stream, Here, the target information includes connection relationships, geometric information, and attribute information.

[0055] Selectively, the attribute information includes UV coordinates, i.e., texture coordinates. UV coordinates are information that describes the vertex texture of a three-dimensional mesh.

[0056] In the embodiments of this application, the connection relationships are encoded using an Edgebreaker method to obtain a CLERS pattern string that can concisely represent the connection relationships, the pattern string is compressed using entropy encoding to obtain a connection relationship subcode stream (which may also be described as a connection relationship code stream), the geometric information of the mesh is encoded using a method such as parallelogram prediction to obtain a geometric information subcode stream (which may also be described as a geometric information code stream), the UV coordinates in the mesh attribute information are encoded using a method such as similar triangle prediction to obtain an attribute information subcode stream (which may also be described as an attribute information code stream). Based on the connection relationship subcode stream, the geometric information subcode stream and the attribute information subcode stream, the above second code stream is obtained.

[0057] Selectively, in the method of the embodiment of this application, the total code stream of the original mesh is The system further includes a third code stream obtained by encoding the texture map information of the original mesh.

[0058] In the embodiments of this application, a video encoder may be used to encode the texture map information to obtain a third code stream, namely a texture map subcode stream (which may also be described as a texture map code stream).

[0059] The three-dimensional mesh coding framework in the embodiment of this application, as shown in Figure 3, first determines in the preprocessing step whether the geometric vertices and UV vertices have the same connection relationship, then divides the input mesh containing the non-manifold structure to obtain a manifold mesh, and records the overlapping points that occurred as a result of dividing the non-manifold. Next, it is necessary to encode information indicating whether the geometric vertices and attribute vertices in the manifold mesh have the same connection relationship. For the manifold mesh, the connection information is encoded using the Edgebreaker method to obtain a pattern string, and then entropy coding is performed on it to encode the geometric information of the manifold mesh. For example, a parallelogram prediction coding method may be used, and the method of encoding geometric information is not limited here. If attribute information such as UV coordinates exists in the mesh, for example, a similar triangle prediction coding method may be used for encoding, and the method of encoding attribute information is not limited here. When encoding non-manifold structure information, first it is encoded whether the mesh contains representation information of the non-manifold structure (i.e., second instruction information). When a non-manifold structure exists in the mesh, it is divided into two cases: if the geometric vertices and attribute vertices in the mesh have the same connection relationship, the non-manifold identifier information of one set of vertices and the index information of the duplicate points resulting from the division of the non-manifold structure are encoded according to the same encoding order; if the geometric vertices and attribute vertices in the mesh have different connection relationships, the non-manifold identifier information of two sets of vertices and the index information of the duplicate points resulting from the division of the non-manifold structure are encoded according to the encoding order of geometric coordinates and attribute coordinates, respectively. Finally, the multiple code streams are mixed to obtain the final output code stream.

[0060] The following describes a specific implementation method for the encoding process, and the UVs in the examples may also be described as textures; that is, this is an illustrative explanation of attribute information.

[0061] As shown in Figure 3, the reversible coding framework for three-dimensional meshes of this application is mainly divided into five parts: partitioning of non-manifold structures in preprocessing, coding of connection relationships, coding of geometric information, coding of attribute information, and coding of non-manifold structure information. Each of these is described below, and the total attribute information of the embodiment of this application can be described exemplarily as UV coordinates (texture coordinates), and attribute vertices can be described exemplarily as UV vertices (texture vertices). 1) Decomposition of non-manifold structures in pretreatment Input: Original mesh Output: Information indicating whether geometric vertices and UV vertices in the mesh have the same connection relationship, manifold mesh, and overlapping points resulting from the subdivision of non-manifolds. The preprocessing step may include other preprocessing modules necessary for encoding, such as filtering duplicate points and adding virtual points.

[0062] Before removing non-manifold structures, first determine whether the geometric vertices and UV vertices have the same connection relationship. Alternatively, first determine whether the number of geometric vertices matches the number of UV vertices. If they match, determine whether the connection relationship between geometric triangles matches the connection relationship between UV triangles. If the geometric triangles and UV triangles do not match, the geometric vertices and UV vertices have different connection relationships. If the number of geometric vertices does not match the number of UV vertices, but the number of geometric triangles matches the number of UV triangles, then the geometric vertices and UV vertices have different connection relationships. Other methods of determination are also possible, and the method of determination is not limited here. Simultaneously, information indicating whether the geometric vertices and UV vertices have the same connection relationship may be represented, for example, by setting an identifier for geometric vertices and UV vertices with the same connection relationship in a single mesh, and the method of representation is not limited here.

[0063] The partitioning of non-manifold structures can be broadly divided into two parts: partitioning of non-manifold edges and partitioning of non-manifold vertices.

[0064] The first step in dividing non-manifold edges is to find them. The condition for identifying a non-manifold edge is that one edge exists in three or more triangles simultaneously. Specifically, this can be achieved by establishing a data structure to store the triangles in which each edge is located and querying the number of triangles corresponding to this edge to find non-manifold edges, or by constructing a corner table to establish the correspondence between angles in the mesh and edges, and then finding non-manifold edges. Specifically, for a manifold mesh, each edge faces at most two angles, and these two opposing angles are called diagonals. As shown in Figure 4, angles a and d face edge bc, and angles a and d are diagonals, but for non-manifold edges, there are three or more diagonals. Therefore, non-manifold edges can also be found by the correspondence between angles and edges.

[0065] The second step in splitting a non-manifold edge is to add vertices and modify the connection relationships. After finding a non-manifold edge, duplicate vertices are created for each of the two vertices of the non-manifold edge, a triangle t on which the non-manifold edge is located is selected, a new triangle t' is constructed with the third vertex of this triangle and the two newly added vertices, the original triangle t is replaced with t', and this process is repeated until the non-manifold edge is converted into a manifold edge.

[0066] To partition non-manifold points, it is first necessary to construct a Corner Table and establish the correspondence between each vertex and its angles. For each vertex, a two-step operation is performed. In the first step, starting from an angle of a vertex, all angles adjacent to that angle and forming a sector are traversed in order, and the vertex and the traversed angles are marked as traversed. If, after performing the above process, there are still vertices with untraversed angles, these vertices are indicated as non-manifold points. In the second step, for each non-manifold point, one duplicate point is created, the connection relationships are corrected, and angles not traversed in the first step are connected to the newly added duplicate point, thus partitioning the non-manifold point into two manifold vertices. This process is repeated until all vertices are converted into manifold points.

[0067] If the geometric vertices and UV vertices have the same connection relationship, the above process is executed once, and the information of a set of overlapping points generated in this process is recorded. If the geometric vertices and UV vertices have different connection relationships, the above process is executed once for each of the geometric vertices and UV vertices. Corner tables are constructed for the geometric vertices and UV vertices, and the edges and points of the geometric non-manifold are separated, and the edges of the texture and the points of the UV non-manifold are separated, and the information of the geometric overlapping points and UV overlapping points generated in this process are recorded.

[0068] 2) Encoding of connection relationships Input: Connection relationships of a manifold mesh representing information on whether geometric vertices and UV vertices in the mesh have the same connection relationship. Output: Encoded connection relationship subcode streams and vertex coding order This application describes how to represent the connection relationships of a three-dimensional mesh by encoding them using the Edgebreaker method and establishing a Corner Table, and how to generate an Edgebreaker CLERS pattern string by traversing all triangles in the mesh using the Corner Table.

[0069] Corner tables are used to show the relationship between corners, vertices, and triangles in a mesh. Before constructing a corner table, it is necessary to number the corners. This is done by traversing the triangles according to the order of the triangle patches in the mesh, and numbering the corners of each triangle in a counterclockwise order. If the mesh has f triangle patches, the mesh will have 3f corners. The advantage of numbering in this way is that the number of the triangle to which the current corner belongs can be calculated from the corner number, as shown in Equation 1, and further in the counterclockwise direction, the number of the triangle immediately preceding the current corner c.

number

number

[0070]

number

number

[0071]

number

number

[0072]

number

number

[0073] The Corner Table consists of four parts: the V-table, O-table, U-table, and M-table. Here, the V-table stores the vertex index corresponding to each corner, the O-table stores the diagonal index of each corner, the U-table stores an identifier indicating whether or not each triangle was scanned during the scanning process, and the M-table stores an identifier indicating whether or not each vertex was scanned during the scanning process.

[0074] Using the Corner Table, we can construct the relationships shown in Figure 5, where c represents the current angle, cp represents the angle immediately preceding the current angle c (in the counterclockwise direction), and cn represents the angle following the current angle c. co is the diagonal angle to the current angle c and can be obtained by searching the O table. ct is the triangle number where c is located and may be calculated by Equation 1. cv represents the vertex of the current angle and can be obtained by searching the V table. cl represents the left angle of the current angle c and can be obtained by searching the diagonal angle of cp in the O table, and cr represents the right angle of the current angle c and can be obtained by searching the diagonal angle of cn in the O table.

[0075] After constructing the relationships between corners, vertices, and triangles using a Corner Table, the mesh can be traversed in a spiral order to obtain the Edgebreaker CLERS pattern string representing the mesh connection relationships. The five pattern determination conditions and traverse rules are shown in Figure 6. If the currently traversed corner is x, and the corresponding vertex xv has never been accessed, the current triangle is pattern C, and the next triangle to be traversed is the triangle at xr; otherwise, if the triangle at xl has been accessed, the current triangle is pattern L, and the next triangle to be traversed is the triangle at xr; if the triangle at xr has been accessed, the current triangle is pattern R, and the next triangle to be traversed is the triangle at xl, and vertex xv has been accessed. If neither the triangles where xl and xr are located have been accessed, the current triangle is an S pattern. In this case, the traverse path has two branches. Adopting the depth-first traverse principle, the first triangle to be traversed is the triangle where xr is located. The triangle where xl is located is stored in the stack, and after the traverse of the branch where xr is located is complete, the triangle where xl is located must be traversed. If both the triangles where xl and xr are located have been accessed, the current triangle pattern is an E pattern. In this case, the traverse is to the endpoint of the current traverse path branch.

[0076] A randomly selected initial triangle in the mesh is used to traverse the triangles in the mesh according to the rules described above, generating a CLERS pattern string. If the traverse path is complete but the mesh still consists of traversed triangles, a randomly selected untraversed triangle is used to begin the next traverse until all triangles in the mesh have been traversed.

[0077] Entropy coding is used to compress the CLERS pattern string and obtain the final connection information code stream.

[0078] If the geometric vertices and UV vertices have the same connection relationship, the above process only needs to be performed once. If the geometric vertices and UV vertices have different connection relationships, the number of geometric triangles and texture triangles match and correspond, but since the corresponding geometric index and UV index do not have a one-to-one relationship, it is sufficient to construct and encode the CLERS pattern string once based on the geometric corner table. On the other hand, in this case, for UV vertices, after encoding the pattern strings of each connected region of the geometric vertices is completed, the already traversed corners are traversed, and the difference information between the texture connection relationship and the geometric connection relationship is recorded and encoded based on the TC table and OTC table of the UV vertices. Here, the TC table stores the UV vertex index corresponding to each corner in the texture triangle, and the OTC table stores the diagonal index in the texture triangle.

[0079] 3) Encoding of geometric information Input: Geometric information of the manifold mesh and the coding order of its connection relationships. Output: Subcode streams of geometric information and coded order of geometric information The encoded geometric information may employ various methods, such as differential predictive coding algorithms, parallelogram predictive coding algorithms, and multi-parallelogram predictive coding algorithms, and specific coding methods will not be emphasized here. Taking the parallelogram predictive coding algorithm as an example, four vertices a, b, c, and d are established, forming two adjacent triangles in the mesh shown in Figure 7.

[0080] Here, if the geometric information of points a, b, and c has already been encoded, and the geometric information of point d needs to be encoded, then the predicted value d' of the geometric coordinates of point d can be calculated using Equation 4.

[0081]

number

number

number

number

[0082] For triangles that cannot be predicted using parallelograms, such as triangles on the mesh boundary, geometric information is encoded using a differential coding method. That is, the coordinate values ​​of adjacent coded vertices are used as predicted values ​​for the current vertex coordinates, and the residuals are calculated to make a prediction.

[0083] 4) Encoding of attribute information Input: Manifold mesh attribute information and coding order of connection relationships Output: Attribute information subcode stream and attribute information encoding order Three-dimensional mesh attribute information generally includes UV coordinates and normal vectors, with UV coordinates being used as an example. Various encoding methods can be used for UV coordinates, including differential prediction coding, parallelogram prediction coding, and similar triangle prediction coding; specific encoding methods will not be emphasized here. The similar triangle prediction algorithm will be described below.

[0084] First, a triangle in a three-dimensional mesh is selected as the initial triangle. The UV coordinates of the three vertices of the initial triangle are directly encoded without prediction, and the edges of the initial triangle are stored in an edge set. This set may be a data structure that satisfies certain access criteria. Next, edge τ is taken from the set, and the UV coordinates of the corresponding vertices of τ in the next new triangle are predicted. Then, the two edges other than τ in the new triangle are placed into the set. The point to be predicted is denoted as point C, the endpoints of edge τ are N and P respectively, the corresponding vertices of the triangle adjacent to the new triangle via τ are O, and the projection point of C onto τ is X. As shown in Figure 8, the UV coordinates of points N, P, and O are all encoded before point C, so the UV coordinate of point C can be predicted using these three points. The specific calculation flow is as follows.

number

number

[0085] First, calculate the UV coordinates of point X.

number

number

number

number

number

number

number

number

number

[0086] Vector

number

number

number

number

number

number

[0087] After obtaining the predicted UV coordinates, subtract them from the original UV coordinates to obtain the residual values.

[0088] The steps for encoding UV coordinates are as follows: (1) Select an initial triangle from the connectivity relationships and directly encode the UV coordinates of the three vertices of the initial triangle without making any predictions. Store the edges of the initial triangle in the edge set.

[0089] (2) Select edge τ from the set according to the access criteria and encode the UV coordinates for the vertices of the new triangle formed with τ. Using the projection relationship of the triangle from three dimensions to two dimensions, calculate the predicted values ​​of the points to be encoded according to the UV coordinate prediction calculation process described above. Subtract the predicted values ​​from the original UV coordinate values ​​to obtain the residuals.

[0090] (3) Add the two edges of the new triangle to the edge set and remove the vertex edge τ from the set. Take the next edge from the set and continue encoding the UV coordinates of the pair of vertices of the triangle adjacent to this edge until the encoding of the UV coordinates of all vertices is complete, then return to step (3).

[0091] The UV coordinate residuals are entropy encoded, and a UV coordinate code stream is output.

[0092] 5) Encoding of non-manifold structure information Input: Information indicating whether the geometric vertices and UV vertices in the mesh have the same connection relationship, information indicating whether a non-manifold structure exists in the mesh, non-manifold identifiers for vertices, index information of duplicate points resulting from the division of the non-manifold, encoding order of geometric information, encoding order of attribute information Output: Non-manifold structure information subcode stream First, information indicating whether or not a non-manifold structure exists in the mesh is encoded. This can be represented by setting an identifier for whether or not a non-manifold structure exists in a single mesh, or by the number of duplicate points generated by partitioning the non-manifold structure in the mesh. Let's take setting an identifier for whether or not a non-manifold structure exists as an example. If a non-manifold structure does not exist in the mesh, i.e., if the number of duplicate points generated by partitioning the non-manifold is 0, the identifier is set to 0, and there is no need to encode the non-manifold identifier of the vertices and the duplicate point index information generated by partitioning the non-manifold. If a non-manifold structure exists in the mesh, i.e., if the number of duplicate points generated by partitioning the non-manifold is greater than 0, the identifier is set to 1, and the non-manifold identifier of the vertices and the duplicate point index information generated by partitioning the non-manifold are encoded.

[0093] The duplicate points resulting from the partitioning of a non-manifold include two parts: geometric duplicate points and UV duplicate points. Depending on whether the geometric vertices and UV vertices in the mesh have the same connectivity relationship, the non-manifold identifier of the encoded vertex and the index information of the duplicate points resulting from the partitioning of the non-manifold are divided into two cases. The first case is when the geometric vertices and UV vertices in the mesh have the same connection relationship, that is, there is a one-to-one correspondence between geometric coordinates and UV coordinates. In this case, the non-manifold identifier information of a pair of vertices and the index information of duplicate points resulting from the division of the non-manifold structure are directly encoded, and the index information can be obtained based on the encoding order of the geometric coordinates and UV coordinates at the end of encoding. The second case is when the geometric vertices and UV vertices in the mesh have different connection relationships. For example, when one geometric coordinate corresponds to multiple texture coordinates, the non-manifold identifier information of the geometric vertices and the index information of geometric duplicate points resulting from the division of the non-manifold, and the non-manifold identifier information of the UV vertices and the index information of UV duplicate points resulting from the division of the non-manifold structure are encoded, respectively, and the index information can be obtained based on the encoding order of the geometric coordinates and the encoding order of the UV coordinates at the end of encoding. The representation method for the duplicate point index information resulting from the division of the non-manifold structure may be a target vertex index that needs to be integrated when recovering the non-manifold, or it may be a duplicate point group index. Points with the same index belong to the same duplicate point group, meaning they have the same vertex information, and the method of representation is not limited here.

[0094] The specific implementation is as follows: If the geometric vertices and UV vertices in the mesh have the same connection relationship, one flag bit is set for each vertex in the manifold mesh, used to indicate whether the point at the current position is a duplicate point resulting from the division of a non-manifold structure, and the index information of the duplicate point resulting from the division of the non-manifold is encoded. If the geometric vertices and UV vertices in the mesh have different connection relationships, one flag bit is set for each geometric vertex and each UV vertex in the manifold mesh, used to indicate whether the geometric vertex and UV vertex at the current position are duplicate points resulting from the division of a non-manifold structure, respectively, and the index information of the geometric duplicate point and the index information of the UV duplicate point resulting from the division of the non-manifold are encoded, respectively. Next, entropy coding is performed on the binary string sequence obtained by arranging the flag bits according to the corresponding coding order, and on the index information of the duplicate point resulting from the division of the non-manifold shape, to obtain a code stream of non-manifold structure information.

[0095] There may be multiple ways to store the code streams of non-manifold structure information in the total code stream. One way is to store the code streams of non-manifold structure information as a single, one-channel subcode stream. Another way is to store the code streams of geometric non-manifold structure information in the subcode stream of geometric information and the code streams of UV non-manifold structure information in the subcode stream of attribute information. Alternatively, the code streams of geometric non-manifold structure information and UV non-manifold structure information may be stored in the total code stream as two-channel subcode streams. The method of storing the code streams of non-manifold structure information in the total code stream is not emphasized here.

[0096] It should be explained that this application does not limit the order in which the encoding of three-dimensional mesh connection relationships and the encoding of vertex information are performed. Geometric information, attribute information, and non-manifold structure information may be encoded simultaneously with the encoding of connection relationships. Alternatively, after completing the encoding of connection relationships, the geometric information, attribute information, and non-manifold structure information may be encoded sequentially based on the encoding order of the connection relationships.

[0097] When encoding the geometric and attribute information of vertices, the encoding of the geometric and attribute information of duplicate points resulting from the partitioning of a nonmanifold may be skipped, that is, encoded only once, or not. Here, there is no limitation on whether or not to skip the encoding of the geometric and attribute information of duplicate points resulting from the partitioning of a nonmanifold.

[0098] In the above solution of the embodiment of this application, the encoding termination determines first instruction information to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connectivity relationship, the encoding termination determines one or two sets of non-manifold structure information based on the first instruction information, each set of non-manifold structure information includes non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex includes the geometric vertex in the manifold mesh and the attribute vertex, the manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the non-manifold structure in the original mesh has been partitioned, and the target duplicate vertex includes the geometric duplicate vertex and the attribute duplicate vertex, and the first instruction information and the one or two sets of non-manifold structure information are encoded to obtain a first code stream. The above solution allows the decoding terminal to perform decoding and obtain non-manifold identifier information for geometric vertices and attribute vertices in the manifold mesh, as well as index information for target duplicate vertices. Based on this non-manifold identifier information for geometric vertices and attribute vertices, and index information for target duplicate vertices, the non-manifold structure of the original mesh can be recovered by integrating both the geometric duplicate vertices and attribute duplicate vertices that resulted from the partitioning of the non-manifold structure, thereby completely achieving reversible decoding of the original mesh containing the non-manifold structure.

[0099] As shown in Figure 9, embodiments of the present application further provide a decoding method which includes the following steps. Step 901: The decoding terminal decodes the first code stream and obtains decoding information, the decoding information comprising first instruction information and one or two sets of non-manifold structure information, each set of non-manifold structure information comprising non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex comprising a geometric vertex in a manifold mesh and attribute vertices, the manifold mesh obtained after partitioning the non-manifold structure in the original mesh, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when partitioning the non-manifold structure, the target duplicate vertex is a duplicate vertex that occurred when the coding terminal partitioned the non-manifold structure in the original mesh, and the target duplicate vertex comprises a geometric duplicate vertex and an attribute duplicate vertex, the first instruction information is used to indicate whether the geometric vertex and attribute vertex in the original mesh have the same connectivity relationship. Step 902: The decoding terminal recovers the non-manifold structure in the original mesh based on the decoding information.

[0100] In the embodiments of this application, the decoding terminal decodes a first code stream to obtain first instruction information and one or two sets of non-manifold structure information, each set of non-manifold structure information including non-manifold identifier information for target vertices and index information for target duplicate vertices, and recovers the non-manifold structure in the original mesh based on the first instruction information and the one or two sets of non-manifold structure information. With the above solution, the decoding terminal can decode to obtain non-manifold identifier information for geometric vertices and attribute vertices in the manifold mesh, and index information for target duplicate vertices, and based on this non-manifold identifier information for geometric vertices and attribute vertices and index information for target duplicate vertices, it can integrate both the geometric duplicate vertices and attribute duplicate vertices that resulted from the partitioning of the non-manifold structure to recover the non-manifold structure of the original mesh, thereby fully realizing reversible decoding of the original mesh containing the non-manifold structure.

[0101] Selectively, the decoding information further includes second indicator information for indicating whether or not a non-manifold structure exists in the original mesh, The decoding termination recovers the non-manifold structure in the original mesh based on the decoding information. If the second instruction information indicates that a non-manifold structure exists in the original mesh, the method includes recovering the non-manifold structure in the original mesh based on the first instruction information and the one or two sets of non-manifold structure information.

[0102] Selectively, the decoding terminal decodes the first code stream and obtains the decoded information. The decoding terminal decodes the first code stream and obtains the first instruction information and the second instruction information. When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have the same connection relationship, the first code stream is decoded to obtain a set of non-manifold structure information, wherein the geometric vertices and attribute vertices in the manifold mesh share non-manifold identifier information in the set of non-manifold structure information, and the geometrically overlapping vertices and attribute overlapping vertices in the manifold mesh share index information in the set of non-manifold structure information, or When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, the first code stream is decoded to obtain two sets of non-manifold structure information, wherein the geometric vertices and geometrically overlapping vertices in the manifold mesh correspond to one set of non-manifold structure information from the two sets of non-manifold structure information, and the attribute vertices and attribute overlapping vertices in the manifold mesh correspond to the other set of non-manifold structure information from the two sets of non-manifold structure information.

[0103] Selectively, the decoding termination recovers the non-manifold structure in the original mesh based on the first instruction information and the one or two sets of non-manifold structure information. The decoding termination decodes the second code stream to obtain target information of the manifold mesh, wherein the target information includes connection relationships, geometric information, and attribute information. Based on the target information of the aforementioned manifold mesh, the manifold mesh is reconstructed, This includes recovering the non-manifold structure in the original mesh based on the reconstructed manifold mesh, the first instruction information, and the one or two sets of non-manifold structure information.

[0104] At the end of the decoding process, the CLERS pattern string is obtained by entropy decoding, and the connection relationships are reconstructed using the pattern string. The geometric information of the mesh is decoded using methods such as inverse parallelogram prediction, and the UV coordinates of the mesh are decoded using methods such as inverse similar triangle prediction. When decoding non-manifold structure information, first, information indicating whether or not a non-manifold structure exists in the mesh is decoded. If a non-manifold structure exists in the mesh, further decoding is performed to obtain non-manifold identifier information for the vertices and duplicate point index information generated by dividing the non-manifold. The duplicate points generated by dividing the non-manifold are integrated, the connection relationships are adjusted, and the non-manifold structure in the mesh is further recovered. The codec framework can complete the reversible decoding of meshes containing non-manifold structures.

[0105] Selectively, in the embodiments of this application, the decoding terminal further decodes a third code stream to obtain texture map information and reconstructs the mesh based on the texture map and the mesh obtained by recovering the non-manifold structure.

[0106] The three-dimensional mesh decoding framework in the embodiment of this application is shown in Figure 10. First, information indicating whether the geometric vertices and UV vertices in the mesh have the same connection relationship is decoded, the connection relationship subcode stream is entropy-decoded to obtain a pattern string, and if the geometric vertices and UV vertices have the same connection relationship, it is sufficient to reconstruct only one set of connection relationships, and if the geometric vertices and UV vertices have different connection relationships, it is necessary to reconstruct the connection relationships of the geometric coordinates and the connection relationships of the UV coordinates respectively. The geometric information of the mesh is decoded using a decoding method corresponding to the coding end, the attribute information of the mesh is decoded using a decoding method corresponding to the coding end, and when decoding the non-manifold structure information, first the information indicating whether or not a non-manifold structure exists in the mesh is decoded, and if a non-manifold structure exists in the mesh, it is divided into two cases. If the geometric vertices and UV vertices in the mesh have the same connection relationship, further decoding is performed to obtain non-manifold identifier information for one set of vertices and index information for duplicate points generated by dividing the non-manifold. If the geometric vertices and UV vertices in the mesh have different connection relationships, non-manifold identifier information for two sets of vertices and index information for duplicate points generated by dividing the non-manifold structure are decoded. In the post-processing step, the duplicate points generated by dividing the non-manifold are merged, the connection relationships are adjusted, the non-manifold structure in the mesh is restored, and the reversible decoding of the mesh containing the non-manifold structure is completed.

[0107] It should be noted that the post-processing steps may include post-processing modules necessary for accurate decoding, such as recovering filtered duplicate points and removing added virtual vertices. For convenience of explanation, Figure 10 lists only the modules for recovering the non-manifold structure covered by this application.

[0108] The specific implementation method for the decryption process is explained below.

[0109] As shown in Figure 10, the reversible decoding framework for three-dimensional meshes of this application is mainly divided into six parts: connectivity decoding, geometric information decoding, attribute information decoding, non-manifold structure information decoding, manifold mesh reconstruction, and recovery of non-manifold structure in post-processing. Each of these is described below.

[0110] 1) Decoding of connection relationships Input: Connection relationship subcode stream to be decoded, information indicating whether geometric vertices and UV vertices have the same connection relationship. Output: Connection relationships of the manifold mesh and vertex order of decoding First, the connection relationship subcode stream is decoded to obtain a pattern string. The pattern string is traversed according to a certain order (forward or reverse), and the connection relationships are reconstructed based on the corresponding patterns in the string. If the coding end is matched and the geometric vertices and UV vertices have the same connection relationship, only one set of connection relationships needs to be reconstructed. If the geometric vertices and UV vertices have different connection relationships, first, the geometric connection relationships in the current communication region are reconstructed based on the decoded string, and then, in the already decoded geometric communication region, the difference information between the corner and texture connection relationships and the geometric connection relationships in this region is traversed to reconstruct the connection relationships of the UV vertices. The traverse order of the vertices is output to the geometric information and attribute information decoding module.

[0111] 2) Decoding of geometric information Input: Subcode stream of geometric information, decoding order of connection relationships Output: Geometric information of the manifold mesh.

[0112] The decoding process for mesh geometric coordinates is the inverse process of the encoding process. First, the coordinate prediction residuals are entropy-decoded. Next, the predicted coordinates of the points to be decoded are predicted according to the parallelogram method based on the decoded triangles. Adding the residual values ​​obtained by entropy decoding to the predicted coordinates gives the geometric coordinate positions of the points to be decoded. The vertex traverse order here is the same as the vertex order of the encoded geometric information. It should be noted that the geometric coordinates of the initial triangles are encoded directly without using predictive coding. After decoding the geometric coordinates of these triangles at the end of the decoding process, the traverse decoding of the geometric coordinates of the vertices of other triangles is started, using them as the initial triangles. It is also possible to use other decoding methods here, and it is sufficient to address the encoding end without emphasizing specific decoding methods.

[0113] 3) Decryption of attribute information Input: Code stream of attribute information to be decrypted, decryption order of connection relationships Output: Attribute information of the manifold mesh reconstruction.

[0114] Using UV coordinates as an example, the decoding method where UV coordinates correspond to the coding end will not be emphasized here. Below, we will describe the decoding process using a similar triangle prediction algorithm.

[0115] The steps for decoding the UV coordinates are as follows: (1) Entropy-decode the UV coordinate code stream.

[0116] (2) The UV coordinates of the three vertices of the initial triangle are decoded. Predicted values ​​are not calculated here. The initial triangle directly encodes its UV coordinates, rather than encoding the residuals. The edges of the initial triangle are stored in the edge set.

[0117] (3) Select an edge τ from the set according to the access criteria and decode the UV coordinates for the vertices of the new triangle formed with τ. First, use the three-dimensional to two-dimensional mapping relationship of the triangle to calculate the predicted UV coordinates of the points to be decoded using a calculation method that matches the coding termination. Then, add the residuals of the predicted values ​​and the entropy decoding to obtain the reconstructed UV coordinates.

[0118] (4) Add the two edges of the new triangle to the edge set and remove the vertex edge τ from the set. Take the next edge from the set and continue decoding the UV coordinates of the paired vertices of the triangle adjacent to this edge until the decoding of the UV coordinates of all vertices is complete, then return to step (3).

[0119] 4) Decoding of non-manifold structure information Input: Non-manifold structure information subcode stream, information indicating whether geometric vertices and UV vertices in the mesh have the same connection relationship, decoding order of geometric information and decoding order of attribute information. Output: Information indicating whether or not a non-manifold structure exists in the mesh, non-manifold identifiers for vertices, and duplicate point index information resulting from the subdivision of the non-manifold. First, the data is decoded to obtain indicator information indicating whether or not a non-manifold structure exists in the mesh. For example, if this information is an identifier indicating whether or not a non-manifold exists, if the identifier is 0, there is no need to decode the non-manifold identifier information of the vertices and the index information of the duplicate points generated by dividing the non-manifold, and the subsequent module for recovering the non-manifold structure is skipped. If the identifier is 1, the non-manifold identifier of the vertices and the index information of the duplicate points generated by dividing the non-manifold structure are decoded.

[0120] The decoding of the index information of duplicate points resulting from the decomposition of the non-manifold identifier information and non-manifold structure of vertices employs a method corresponding to the encoding termination and is divided into two cases based on whether the geometric vertices and UV vertices have the same connectivity relationship. If the geometric vertices and UV vertices have the same connectivity relationship, entropy decoding is performed to obtain the index information of duplicate points resulting from the decomposition of the non-manifold identifier information and non-manifold structure of a pair of vertices. If the geometric vertices and UV vertices have different connectivity relationships, the index information of geometric duplicate points resulting from the decomposition of the non-manifold identifier information and non-manifold structure of geometric vertices, and the index information of UV duplicate points resulting from the decomposition of the non-manifold identifier information and non-manifold structure of UV vertices are decoded and obtained, respectively. This information is recorded and output to the non-manifold structure recovery module.

[0121] 5) Reconstruction of the manifold mesh Input: Connection relationships of the manifold mesh, geometric information of the manifold mesh, attribute information of the manifold mesh Output: Manifold mesh The manifold mesh can be directly reconstructed using the connection relationships, geometric information, and attribute information of the manifold mesh.

[0122] 6) Recovery of non-manifold structure Input: Manifold mesh, non-manifold identifier of vertices, duplicate point index information resulting from subdividing the non-manifold, information indicating whether geometric vertices and UV vertices in the mesh have the same connection relationship. Output: Reconstruction of non-manifold mesh The recovery process for non-manifold edges and non-manifold vertices is the same. Taking the example that the index information of duplicate vertices resulting from the partitioning of a non-manifold is the duplicate vertex group index, one may first traverse all vertices according to the vertex decoding order and establish a hash table according to the non-manifold identifier of the vertices. The key of the hash table is the duplicate vertex group index resulting from the partitioning of the non-manifold, and the value is the index of the target vertex to be merged. If the current vertex is not a duplicate point resulting from the subdivision of the non-manifold structure, the current vertex corresponds to the current vertex's index, i.e., the index is not updated. If the current vertex is a duplicate point resulting from the subdivision of the non-manifold structure, and the group of duplicate points it occupies is the target vertex to be merged with, the current vertex corresponds to the current vertex's index, i.e., the index is not updated. The index of the current vertex's duplicate point group and the index of the current vertex in the reconstructed manifold mesh are added to the hash table. If the current vertex is a duplicate point resulting from the subdivision of the non-manifold, but the group of duplicate points it occupies is not the target vertex to be merged with, the index of the target vertex to be merged in the reconstructed manifold mesh is searched in the hash table based on the duplicate point group index of the current point, and the operation to merge the duplicate points resulting from the subdivision of the non-manifold is performed, i.e., the current vertex index is updated to the index of the corresponding target vertex to be merged with. Finally, the geometric coordinate list and UV coordinate list are updated, and the indices of the geometric vertices and UV vertices in the connection relationships are updated to obtain the reconstructed non-manifold mesh.

[0123] If the geometric vertices and UV vertices have the same connectivity relationship, the above process is executed once to obtain a non-manifold mesh in which the reconstructed geometric vertices and UV vertices have the same connectivity relationship. If the geometric vertices and UV vertices have different connectivity relationships, the geometric vertices and UV vertices are traversed according to the decoding order of the geometric vertices and UV vertices, respectively, and a geometric hash table and a UV hash table are established based on the non-manifold identifiers of the geometric vertices and UV vertices, respectively. The index in the reconstructed manifold mesh of the geometric target vertex to be integrated with the index information of the geometric overlapping points generated by dividing the non-manifold, and the index in the reconstructed manifold mesh of the UV target vertex to be integrated with the index information of the UV overlapping points generated by dividing the non-manifold are stored, respectively. The above determination and the operation to integrate the overlapping points generated by dividing the non-manifold are executed, respectively, and the geometric coordinate list and UV coordinate list are updated, the geometric vertex index and UV vertex index in the connectivity relationship are updated, and a non-manifold mesh in which the reconstructed geometric vertices and UV vertices have different connectivity relationships is obtained.

[0124] In the decoding method of the embodiment of this application, the decoding terminal decodes a first code stream to obtain first instruction information, second instruction information, and one or two sets of non-manifold structure information, each set of non-manifold structure information including non-manifold identifier information for target vertices and index information for target duplicate vertices, and recovers the non-manifold structure in the original mesh based on the first instruction information, second instruction information, and the one or two sets of non-manifold structure information. With the above solution, the decoding terminal can decode to obtain non-manifold identifier information for geometric vertices and attribute vertices in the manifold mesh, and index information for target duplicate vertices, and based on this non-manifold identifier information for geometric vertices and attribute vertices and index information for target duplicate vertices, it can integrate both the geometric duplicate vertices and attribute duplicate vertices that arose from the division of the non-manifold structure to recover the non-manifold structure of the original mesh, thereby completely achieving reversible decoding of the original mesh containing the non-manifold structure.

[0125] In the encoding method according to the embodiment of this application, the execution body may be an encoding device. In the embodiment of this application, the encoding device according to the embodiment of this application will be described using the example that the encoding device performs the encoding method.

[0126] As shown in Figure 11, the embodiment of this application further provides an encoding device 1100, which encoding device 1100 is A first determination module 1101 for determining first indicator information to show whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship, A second decision module 1102 for determining one or two sets of non-manifold structure information based on the first instruction information, wherein each set of non-manifold structure information includes non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex includes a geometric vertex in the manifold mesh and the attribute vertex, the manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes a geometric duplicate vertex and an attribute duplicate vertex, It includes a first acquisition module 1103 for encoding the first instruction information and the one or two sets of non-manifold structure information to obtain a first code stream.

[0127] Selectively, the first code stream further includes encoded information of a second instruction information, which is used to indicate whether or not a non-manifold structure exists in the original mesh.

[0128] Selectively, the second decision module, When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have the same connection relationship, a set of non-manifold structure information is determined, wherein the geometric vertices and attribute vertices in the manifold mesh share non-manifold identifier information in the set of non-manifold structure information, and the geometric overlapping vertices and attribute overlapping vertices in the manifold mesh share index information in the set of non-manifold structure information, or When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, the method is used to determine two sets of non-manifold structure information, where the geometric vertices and geometrically overlapping vertices in the manifold mesh correspond to one set of the two sets of non-manifold structure information, and the attribute vertices and attribute overlapping vertices in the manifold mesh correspond to the other set of the two sets of non-manifold structure information, to perform at least one of these actions.

[0129] Selectively, the apparatus of the embodiments of this application is A second acquisition module for encoding the manifold mesh and obtaining a second code stream, wherein the manifold mesh is obtained after the encoding termination has been processed to partition the non-manifold structure in the original mesh, The system further includes a third acquisition module for obtaining the total code stream of the original mesh based on the first code stream and the second code stream.

[0130] Selectively, the second acquisition module is used to encode the target information of the manifold mesh in order to obtain the second code stream. Here, the target information includes connection relationships, geometric information, and attribute information.

[0131] In the apparatus of the embodiment of this application, the encoding terminal determines first instruction information to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connectivity relationship, the encoding terminal determines one or two sets of non-manifold structure information based on the first instruction information, each set of non-manifold structure information includes non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex includes the geometric vertex in the manifold mesh and the attribute vertex, the manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the non-manifold structure in the original mesh has been partitioned, and the target duplicate vertex includes the geometric duplicate vertex and the attribute duplicate vertex, the first instruction information and the one or two sets of non-manifold structure information are encoded to obtain a first code stream. The above solution allows the decoding terminal to perform decoding and obtain non-manifold identifier information for geometric vertices and attribute vertices in the manifold mesh, as well as index information for target duplicate vertices. Based on this non-manifold identifier information for geometric vertices and attribute vertices, and index information for target duplicate vertices, the non-manifold structure of the original mesh can be recovered by integrating both the geometric duplicate vertices and attribute duplicate vertices that resulted from the partitioning of the non-manifold structure, thereby completely achieving reversible decoding of the original mesh containing the non-manifold structure.

[0132] As shown in Figure 12, the embodiment of this application further provides a decoding device 1200, A fourth acquisition module 1201 for decoding a first code stream and obtaining decoded information, wherein the decoded information includes first instruction information and one or two sets of non-manifold structure information, each set of non-manifold structure information includes non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex includes a geometric vertex in a manifold mesh and attribute vertices, the manifold mesh is obtained after partitioning the non-manifold structure in the original mesh, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when partitioning the non-manifold structure, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes a geometric duplicate vertex and an attribute duplicate vertex, and the first instruction information is used to indicate whether the geometric vertex and attribute vertex in the original mesh have the same connection relationship. The system includes a recovery module 1202 for recovering the non-manifold structure in the original mesh based on the aforementioned decoding information.

[0133] Selectively, the decoding information further includes second indicator information for indicating whether or not a non-manifold structure exists in the original mesh, The recovery module is When the second instruction information indicates that a non-manifold structure exists in the original mesh, it is used to recover the non-manifold structure in the original mesh based on the first instruction information and the one or two sets of non-manifold structure information.

[0134] Selectively, the fourth acquisition module is: A first acquisition submodule for decoding the first code stream and obtaining the first instruction information and the second instruction information, When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have the same connection relationship, a second acquisition submodule for decoding from the first code stream to obtain a set of non-manifold structure information, wherein the geometric vertices and attribute vertices in the manifold mesh share non-manifold identifier information in the set of non-manifold structure information, and the geometric overlapping vertices and attribute overlapping vertices in the manifold mesh share index information in the set of non-manifold structure information, or When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, a third acquisition submodule for decoding from the first code stream to obtain two sets of non-manifold structure information includes a third acquisition submodule in which the geometric vertices and geometrically overlapping vertices in the manifold mesh correspond to one set of non-manifold structure information out of two sets of non-manifold structure information, and the attribute vertices and attribute overlapping vertices in the manifold mesh correspond to the other set of non-manifold structure information out of two sets of non-manifold structure information.

[0135] Selectively, the recovery module, A fourth acquisition submodule for decoding the second code stream and obtaining target information of the manifold mesh, wherein the target information includes connection relationships, geometric information and attribute information, Based on the target information of the manifold mesh, a reconstruction submodule for reconstructing the manifold mesh, The system includes a recovery submodule for recovering the non-manifold structure in the original mesh based on the reconstructed manifold mesh, the first instruction information, and the one or two sets of non-manifold structure information.

[0136] The apparatus of the embodiment of this application decodes a first code stream to obtain first instruction information, second instruction information, and one or two sets of non-manifold structure information, each set of non-manifold structure information including non-manifold identifier information for target vertices and index information for target duplicate vertices, and recovers the non-manifold structure in the original mesh based on the first instruction information, second instruction information, and the one or two sets of non-manifold structure information. With the above solution, the decoding terminal can decode to obtain non-manifold identifier information for geometric vertices and attribute vertices in the manifold mesh, and index information for target duplicate vertices, and based on this non-manifold identifier information for geometric vertices and attribute vertices and index information for target duplicate vertices, it can integrate both the geometric duplicate vertices and attribute duplicate vertices that resulted from the partitioning of the non-manifold structure to recover the non-manifold structure of the original mesh, thereby completely achieving reversible decoding of the original mesh containing the non-manifold structure.

[0137] The encoding or decoding device in the embodiments of this application may be an electronic device, such as an electronic device having an operating system, or a component of an electronic device, such as an integrated circuit or a chip. This electronic device may be a terminal or other device. Other exemplary devices may be a server, network-attached storage (NAS), etc., and the embodiments of this application are not specifically limited.

[0138] The encoding apparatus according to the embodiment of this application can implement each process realized by the embodiment of the method shown in Figure 2 and achieve the same technical effects, and to avoid repetition of the explanation, it will not be explained further here.

[0139] The decoding apparatus according to the embodiment of this application can implement each process realized by the embodiment of the method shown in Figure 9 and achieve the same technical effects, and to avoid repetition of the explanation, it will not be explained further here.

[0140] Selectively, as shown in Figure 13, embodiments of the present application further provide an electronic device 1300 including a processor 1301 and a memory 1302, the memory 1302 storing a program or instruction that can be executed by the processor 1301, and when this program or instruction is executed by the processor 1301, each step of the embodiment of the encoding or decoding method described above can be realized and the same technical effect can be achieved. To avoid repetition of the explanation, no further explanation is provided here.

[0141] Embodiments of the present application further provide an encoding device comprising a processor and a communication interface, wherein the processor determines first instruction information to indicate whether geometric vertices and attribute vertices in an original mesh have the same connectivity relationship, and determines one or two sets of non-manifold structure information based on the first instruction information, each set of non-manifold structure information comprising non-manifold identifier information of a target vertex and index information of a target duplicate vertex, wherein the target vertex comprises geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained after a partitioning process of the non-manifold structure in the original mesh, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the non-manifold structure in the original mesh was partitioned, and the target duplicate vertex comprises geometric duplicate vertices and attribute duplicate vertices, and the encoding terminal is used to encode the first instruction information and the one or two sets of non-manifold structure information to obtain a first code stream.

[0142] Embodiments of this application further provide a decoding device comprising a processor and a communication interface, wherein the processor decodes a first code stream and obtains decoded information, the decoded information comprising a first instruction information and one or two sets of non-manifold structure information, each set of the non-manifold structure information comprising non-manifold identifier information of a target vertex and index information of target duplicate vertices, the target vertex comprising geometric vertices in a manifold mesh and attribute vertices, the manifold mesh obtained after the non-manifold structure in the original mesh has been partitioned, The non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes geometric duplicate vertices and attribute duplicate vertices, the first instruction information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship, and is used to recover the non-manifold structure in the original mesh based on the decoding information.

[0143] Specifically, Figure 14 is a schematic diagram of the hardware structure of an encoding device or decoding device that realizes an embodiment of the present application.

[0144] This encoding or decoding device includes, but is not limited to, some of the following components: radio frequency unit 1401, network module 1402, audio output unit 1403, input unit 1404, sensor 1405, display unit 1406, user input unit 1407, interface unit 1408, memory 1409, and processor 1410.

[0145] As those skilled in the art will understand, the encoding or decoding device may further include a power supply (e.g., a battery) to power each component, and the power supply may be logically connected to the processor 1410 by a power management system, thereby enabling functions such as charge / discharge management and power consumption management by the power management system. The device structure shown in Figure 14 does not constitute a limitation on the device, and the device may include more or fewer components than those shown, or combinations of some components, or different arrangements of components, which will not be described further here.

[0146] It should be understood that, in the embodiments of this application, the input unit 1404 may include a graphics processing unit (GPU) 14041 and a microphone 14042, the graphics processor 14041 processing still images or video image data obtained by an image capture device (e.g., a camera) in video capture mode or image capture mode. The display unit 1406 may include a display panel 14061, which may be arranged in the form of a liquid crystal display, organic light-emitting diodes, etc. The user input unit 1407 includes at least one of a touch panel 14071 and other input devices 14072. The touch panel 14071 is also called a touchscreen. The touch panel 14071 may include two parts: a touch detection device and a touch controller. The other input devices 14072 may include, but are not limited to, a physical keyboard, function keys (e.g., volume control buttons, switch buttons, etc.), a trackball, a mouse, or an operating lever, and will not be described further here.

[0147] In the embodiments of this application, the radio frequency unit 1401 can receive downlink data from network-side equipment and transmit it to the processor 1410 for processing, and the radio frequency unit 1401 can also transmit uplink data to network-side equipment. Generally, the radio frequency unit 1401 includes, but is not limited to, an antenna, amplifier, transceiver, coupler, low-noise amplifier, duplexer, etc.

[0148] Memory 1409 may be used to store software programs or instructions and various types of data. Memory 1409 may include a first storage area mainly for storing programs or instructions and a second storage area for storing data, where the first storage area can store an operating system, an application program or instructions necessary for at least one function (e.g., audio playback function, image playback function, etc.), etc. Memory 1409 may also include volatile memory or non-volatile memory, or memory 1409 may include both volatile and non-volatile memory. Here, non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (Erasable PROM, EPROM), electrically erasable programmable read-only memory (Electrically EPROM, EEPROM), or flash memory. Volatile memory may be random access memory (RAM), static random access memory (Static RAM, SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (Synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (Double Data Rate SDRAM, DDRSDRAM), enhanced synchronous dynamic random access memory (Enhanced SDRAM, ESDRAM), synchronous link dynamic random access memory (Synch link DRAM, SLDRAM), and direct memory bus random access memory (Direct Rambus RAM, DRRAM). Memory 1409 in the embodiments of this application includes, but is not limited to, these and any other suitable types of memory.

[0149] The processor 1410 may include one or more processing units, and optionally, the processor 1410 integrates an application processor and a modem processor, where the application processor mainly handles operations related to the operating system, user interface and application programs, and the modem processor mainly handles wireless communication signals, such as a baseband processor. To be clear, the above modem processor does not have to be integrated into the processor 1410.

[0150] Selectively, if this device is an encoding device: The processor 1410 determines first indicator information to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship, Based on the first instruction information, one or two sets of non-manifold structure information are determined, wherein each set of non-manifold structure information includes non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex includes a geometric vertex in the manifold mesh and the attribute vertex, the manifold mesh is obtained after the non-manifold structure in the original mesh is partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes a geometric duplicate vertex and an attribute duplicate vertex. It is used to encode the first instruction information and the one or two sets of non-manifold structure information to obtain the first code stream.

[0151] Selectively, the first code stream further includes encoded information of a second instruction information, which is used to indicate whether or not a non-manifold structure exists in the original mesh.

[0152] Selectively, the processor 1410 further, When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have the same connection relationship, a set of non-manifold structure information is determined, wherein the geometric vertices and attribute vertices in the manifold mesh share non-manifold identifier information in the set of non-manifold structure information, and the geometric overlapping vertices and attribute overlapping vertices in the manifold mesh share index information in the set of non-manifold structure information, or When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, two sets of non-manifold structure information are determined, where the geometric vertices and geometrically overlapping vertices in the manifold mesh correspond to one set of non-manifold structure information out of the two sets, and the attribute vertices and attribute overlapping vertices in the manifold mesh correspond to the other set of non-manifold structure information out of the two sets.

[0153] Selectively, the processor 1410 further, The method involves encoding the manifold mesh to obtain a second code stream, wherein the manifold mesh is obtained after the encoding termination has partitioned the non-manifold structure in the original mesh. This is used to obtain the total code stream of the original mesh based on the first code stream and the second code stream.

[0154] Selectively, the processor 1410 is further used to encode target information of the manifold mesh to obtain the second code stream, where the target information includes connectivity relationships, geometric information, and attribute information.

[0155] Selectively, if the above device is a decoding device, The processor 1410 decodes a first code stream and obtains decoded information, wherein the decoded information includes first instruction information and one or two sets of non-manifold structure information, each set of non-manifold structure information includes non-manifold identifier information of a target vertex and index information of a target duplicate vertex, the target vertex includes a geometric vertex in a manifold mesh and the attribute vertex, the manifold mesh is obtained after partitioning the non-manifold structure in the original mesh, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes a geometric duplicate vertex and an attribute duplicate vertex, and the first instruction information is used to indicate whether the geometric vertex and the attribute vertex in the original mesh have the same connection relationship. Based on the aforementioned decoded information, it is used to recover the non-manifold structure in the original mesh.

[0156] Selectively, the decoding information further includes second indicator information for indicating whether or not a non-manifold structure exists in the original mesh, Selectively, the processor 1410 further, When the second instruction information indicates that a non-manifold structure exists in the original mesh, it is used to recover the non-manifold structure in the original mesh based on the first instruction information and the one or two sets of non-manifold structure information.

[0157] Selectively, the processor 1410 further, The decoding terminal decodes the first code stream and obtains the first instruction information and the second instruction information. When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have the same connection relationship, the first code stream is decoded to obtain a set of non-manifold structure information, wherein the geometric vertices and attribute vertices in the manifold mesh share non-manifold identifier information in the set of non-manifold structure information, and the geometrically overlapping vertices and attribute overlapping vertices in the manifold mesh share index information in the set of non-manifold structure information, or When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, the first code stream is decoded to obtain two sets of non-manifold structure information, where the geometric vertices and geometrically overlapping vertices in the manifold mesh correspond to one set of non-manifold structure information out of the two sets of non-manifold structure information, and the attribute vertices and attribute overlapping vertices in the manifold mesh correspond to the other set of non-manifold structure information out of the two sets of non-manifold structure information.

[0158] Selectively, the processor 1410 further, The second code stream is decoded to obtain target information of the manifold mesh, wherein the target information includes connection relationships, geometric information, and attribute information. Based on the target information of the aforementioned manifold mesh, the manifold mesh is reconstructed, It is used to recover the non-manifold structure in the original mesh based on the reconstructed manifold mesh, the first instruction information, and the one or two sets of non-manifold structure information.

[0159] In the embodiments of this application, first instruction information is determined to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connectivity relationship, the encoding termination determines one or two sets of non-manifold structure information based on the first instruction information, each set of non-manifold structure information includes non-manifold identifier information for a target vertex and index information for a target duplicate vertex, the target vertex includes the geometric vertices and attribute vertices in the manifold mesh, the manifold mesh is obtained after the non-manifold structure in the original mesh has been partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the non-manifold structure in the original mesh has been partitioned, and the target duplicate vertex includes the geometric duplicate vertex and the attribute duplicate vertex, and the first instruction information and the one or two sets of non-manifold structure information are encoded to obtain a first code stream. The above solution allows the decoding terminal to perform decoding and obtain non-manifold identifier information for geometric vertices and attribute vertices in the manifold mesh, as well as index information for target duplicate vertices. Based on this non-manifold identifier information for geometric vertices and attribute vertices, and index information for target duplicate vertices, the non-manifold structure of the original mesh can be recovered by integrating both the geometric duplicate vertices and attribute duplicate vertices that resulted from the partitioning of the non-manifold structure, thereby completely achieving reversible decoding of the original mesh containing the non-manifold structure.

[0160] Embodiments of this application further provide a readable storage medium in which a program or instruction is stored, and when this program or instruction is executed by a processor, each process of the embodiment of the encoding or decoding method described above can be realized and the same technical effects can be achieved, and to avoid repetition of the description, no further explanation is provided here.

[0161] Here, the processor is the processor in the apparatus described in the above embodiment. The readable storage medium includes a computer-readable storage medium, such as a computer read-only memory ROM, a random access memory RAM, a magnetic disk, or an optical disk.

[0162] Embodiments of this application further provide a chip comprising a processor and a communication interface, the communication interface being coupled with the processor, the processor executing a program or instructions and being used to implement each process of the embodiment of the encoding or decoding method and achieving the same technical effects, which are not described further herein to avoid repetition of the description.

[0163] It should be understood that the chips referred to in the embodiments of this application may also be called system-level chips, system chips, chip systems, or system-on-a-chip, etc.

[0164] Embodiments of this application further provide a computer program / program product in which the computer program / program product is stored in a storage medium and executed by at least one processor to realize each process of the above-described embodiment of the encoding method or decoding method and achieve the same technical effects, and to avoid repetition of the description, no further description is provided here.

[0165] Embodiments of this application further provide a codec system including an encoding device or a decoding device, wherein the encoding device may be used to perform the steps of the encoding method described above, and the decoding device may be used to perform the steps of the decoding method described above.

[0166] It should be noted that, in this specification, the terms “include,” “incorporate,” or any other variation thereof are intended to cover non-exclusive “include,” thereby including not only those elements but also other elements not explicitly listed, or elements specific to such process, method, article, or apparatus. Unless otherwise specified, an element limited by the phrase “includes one of…” is not excluded from the existence of other identical elements in a process, method, article, or apparatus containing that element. It should also be noted that the scope of methods and apparatus in embodiments of this application is not limited to performing functions in the order shown or discussed, but may include performing functions in a manner that is essentially simultaneous or in reverse order based on the functions involved, for example, performing methods described in a different procedure than that described, and adding, omitting, or combining various steps. Furthermore, features described by reference to some examples may be combined with other examples.

[0167] As will be readily apparent to those skilled in the art from the above description of the embodiments, the methods of the above embodiments can be implemented in the form of software and a necessary general-purpose hardware platform. Of course, they may also be implemented in hardware, but in many cases the former is a more preferred embodiment. With this understanding in mind, the technical invention of this application may be embodied in substance or in part in relation to the art in the form of a computer software product, which is stored on a single storage medium (e.g., ROM / RAM, magnetic disk, optical disk) and contains some instructions for causing a terminal (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to perform the methods of each embodiment of this application.

[0168] The above describes embodiments of this application with reference to the drawings, but this application is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can, by the suggestion of this application, make many forms, as long as they do not deviate from the spirit and claims of this application, and all of these fall within the scope of protection of this application. [Explanation of Symbols]

[0169] 1100 Encoding device 1101 First Decision Module 1102 Second Decision Module 1103 First acquisition module 1200 Decoder 1201 Fourth acquisition module 1202 Recovery Module 1300 Electronic equipment 1301 Processor 1302 memory 1401 Radio frequency unit 1402 Network Module 1403 Audio Output Unit 1404 Input Unit 1405 Sensor 1406 Display Unit 1407 User Input Unit 1408 Interface Unit 1409 memory 1410 Processor 14041 Graphics Processor 14042 Microphone 14061 Display Panel 14071 Touch Panel 14072 Input devices

Claims

1. An encoding method, The encoding termination involves determining first indicator information to show whether the geometric vertices and attribute vertices in the original mesh have the same connection relationships, The encoding termination determines one or two sets of non-manifold structure information based on the first instruction information, wherein each set of non-manifold structure information includes non-manifold identifier information for a target vertex and index information for a target duplicate vertex, the target vertex includes geometric vertices and attribute vertices in the manifold mesh, the manifold mesh is obtained after the non-manifold structure in the original mesh is partitioned, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes geometric duplicate vertices and attribute duplicate vertices. An encoding method comprising the encoding termination encoding the first instruction information and the one or two sets of non-manifold structure information to obtain a first code stream.

2. The method according to claim 1, wherein the first code stream further includes encoded information of a second instruction information, the second instruction information is used to indicate whether or not a non-manifold structure exists in the original mesh.

3. The encoding termination determines one or two sets of non-manifold structure information based on the first instruction information, When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have the same connectivity relationship, the encoding termination determines a set of non-manifold structure information, wherein the geometric vertices and attribute vertices in the manifold mesh share non-manifold identifier information in the set of non-manifold structure information, and the geometrically overlapping vertices and attribute overlapping vertices in the manifold mesh share index information in the set of non-manifold structure information, or The method according to claim 1 or 2, wherein, when the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have different connectivity relationships, the encoding termination determines two sets of non-manifold structure information, wherein the geometric vertices and geometrically overlapping vertices in the manifold mesh correspond to one set of non-manifold structure information from the two sets of non-manifold structure information, and the attribute vertices and attribute overlapping vertices in the manifold mesh correspond to the other set of non-manifold structure information from the two sets of non-manifold structure information.

4. The aforementioned method, The encoding termination encodes the manifold mesh and obtains a second code stream, wherein the manifold mesh is obtained after the encoding termination has partitioned the non-manifold structure in the original mesh. The method according to any one of claims 1 to 3, further comprising the encoding termination obtaining the total code stream of the original mesh based on the first code stream and the second code stream.

5. The encoding termination encodes the manifold mesh and obtains a second code stream, The encoding termination includes encoding the target information of the manifold mesh and obtaining the second code stream, The method according to claim 4, wherein the target information includes connection relationships, geometric information, and attribute information.

6. A decryption method, The decoding terminal decodes a first code stream and obtains decoding information, wherein the decoding information includes first instruction information and one or two sets of non-manifold structure information, each set of non-manifold structure information includes non-manifold identifier information for a target vertex and index information for a target duplicate vertex, the target vertex includes geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained after partitioning the non-manifold structure in the original mesh, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the coding terminal partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes geometric duplicate vertices and attribute duplicate vertices, and the first instruction information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connectivity relationship. A decoding method wherein the decoding termination includes recovering the non-manifold structure in the original mesh based on the decoding information.

7. The decoded information further includes a second indicator information for indicating whether or not a non-manifold structure exists in the original mesh, The decoding termination recovers the non-manifold structure in the original mesh based on the decoding information. The method according to claim 6, wherein, when the second instruction information indicates the presence of a non-manifold structure in the original mesh, the method further includes recovering the non-manifold structure in the original mesh based on the first instruction information and the one or two sets of non-manifold structure information.

8. The decoding terminal decodes the first code stream and obtains the decoded information, The decoding terminal decodes the first code stream and obtains the first instruction information and the second instruction information. When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have the same connection relationship, the first code stream is decoded to obtain a set of non-manifold structure information, wherein the geometric vertices and attribute vertices in the manifold mesh share non-manifold identifier information in the set of non-manifold structure information, and the geometrically overlapping vertices and attribute overlapping vertices in the manifold mesh share index information in the set of non-manifold structure information, or The method according to claim 6 or 7, wherein, when the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, the first code stream is decoded to obtain two sets of non-manifold structure information, wherein the geometric vertices and geometrically overlapping vertices in the manifold mesh correspond to one set of non-manifold structure information from the two sets of non-manifold structure information, and the attribute vertices and attribute overlapping vertices in the manifold mesh correspond to the other set of non-manifold structure information from the two sets of non-manifold structure information.

9. The decoding termination recovers the non-manifold structure in the original mesh based on the first instruction information and the one or two sets of non-manifold structure information. The decoding termination decodes the second code stream to obtain target information of the manifold mesh, wherein the target information includes connection relationships, geometric information, and attribute information. Based on the target information of the aforementioned manifold mesh, the manifold mesh is reconstructed, The method according to claim 7, comprising recovering the non-manifold structure in the original mesh based on the reconstructed manifold mesh, the first instruction information, and the one or two sets of non-manifold structure information.

10. An encoding device, A first determination module for determining first indicator information to show whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship, A second decision module for determining one or two sets of non-manifold structure information based on the first instruction information, wherein each set of non-manifold structure information includes non-manifold identifier information for a target vertex and index information for a target duplicate vertex, the target vertex includes geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained after partitioning the non-manifold structure in the original mesh, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes geometric duplicate vertices and attribute duplicate vertices, An encoding device comprising a first acquisition module for encoding the first instruction information and the one or two sets of non-manifold structure information to obtain a first code stream.

11. The apparatus according to claim 10, wherein the first code stream further includes encoded information of a second instruction information, the second instruction information is used to indicate whether or not a non-manifold structure exists in the original mesh.

12. The second decision module is, When the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have the same connection relationship, a set of non-manifold structure information is determined, wherein the geometric vertices and attribute vertices in the manifold mesh share non-manifold identifier information in the set of non-manifold structure information, and the geometrically overlapping vertices and attribute overlapping vertices in the manifold mesh share index information in the set of non-manifold structure information, or The apparatus according to claim 10 or 11, which is used to determine two sets of non-manifold structure information when the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, wherein the geometric vertices and geometrically overlapping vertices in the manifold mesh correspond to one set of non-manifold structure information from the two sets of non-manifold structure information, and the attribute vertices and attribute overlapping vertices in the manifold mesh correspond to the other set of non-manifold structure information from the two sets of non-manifold structure information.

13. A second acquisition module for encoding the manifold mesh and obtaining a second code stream, wherein the manifold mesh is obtained after the encoding termination has been processed to partition the non-manifold structure in the original mesh, The apparatus according to any one of claims 10 to 12, further comprising a third acquisition module for obtaining the total code stream of the original mesh based on the first code stream and the second code stream.

14. The second acquisition module is used to encode the target information of the manifold mesh in order to obtain the second code stream. The apparatus according to claim 13, wherein the target information includes connection relationships, geometric information, and attribute information.

15. A decoding device, A fourth acquisition module for decoding a first code stream and obtaining decoded information, wherein the decoded information includes a first instruction information and one or two sets of non-manifold structure information, each set of non-manifold structure information includes non-manifold identifier information for a target vertex and index information for a target duplicate vertex, the target vertex includes geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained after partitioning the non-manifold structure in the original mesh, the non-manifold identifier information is used to indicate whether the target vertex is a duplicate vertex that occurred when the non-manifold structure was partitioned, the target duplicate vertex is a duplicate vertex that occurred when the encoding termination partitioned the non-manifold structure in the original mesh, and the target duplicate vertex includes geometric duplicate vertices and attribute duplicate vertices, and the first instruction information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connectivity relationship. A decoding device comprising a recovery module for recovering the non-manifold structure in the original mesh based on the decoding information.

16. The decoded information further includes a second indicator information for indicating whether or not a non-manifold structure exists in the original mesh, The apparatus according to claim 15, wherein the recovery module is used to recover a non-manifold structure in the original mesh based on the first instruction information and the one or two sets of non-manifold structure information when the second instruction information indicates that a non-manifold structure exists in the original mesh.

17. The fourth acquisition module is, A first acquisition submodule for decoding the first code stream and obtaining the first instruction information and the second instruction information, A second acquisition submodule for decoding from the first code stream to obtain a set of non-manifold structure information, where the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have the same connection relationship, wherein the second acquisition submodule shares non-manifold identifier information in the set of non-manifold structure information, and the geometric overlapping vertices and attribute overlapping vertices in the manifold mesh share index information in the set of non-manifold structure information, or Apparatus according to claim 15 or 16, wherein, when the first instruction information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, the apparatus includes a third acquisition submodule for decoding from the first code stream to obtain two sets of non-manifold structure information, wherein the geometric vertices and geometrically overlapping vertices in the manifold mesh correspond to one set of non-manifold structure information from the two sets of non-manifold structure information, and the attribute vertices and attribute overlapping vertices in the manifold mesh correspond to the other set of non-manifold structure information from the two sets of non-manifold structure information.

18. The recovery module is A fourth acquisition submodule for decoding the second code stream and obtaining target information of the manifold mesh, wherein the target information includes connection relationships, geometric information and attribute information, Based on the target information of the manifold mesh, a reconstruction submodule for reconstructing the manifold mesh, The apparatus according to claim 16, comprising a recovery submodule for recovering the non-manifold structure in the original mesh based on the reconstructed manifold mesh, the first instruction information, the second instruction information, and the one or two sets of non-manifold structure information.

19. Electronic device comprising a processor and memory, wherein the memory stores a program or instruction that can be executed on the processor, and when the program or instruction is executed by the processor, the electronic device performs the steps of the encoding method described in any one of claims 1 to 5, or the steps of the decoding method described in any one of claims 6 to 9.

20. A readable storage medium wherein a program or instruction is stored in the readable storage medium, and when the program or instruction is executed by a processor, the steps of the encoding method described in any one of claims 1 to 5 or the steps of the decoding method described in any one of claims 6 to 9 are performed.