Encoding method, decoding method, apparatus, and device
By determining and encoding non-manifold structure information at the encoding end and merging repeated vertices at the decoding end, the problem of lossless decoding of non-manifold structures in the prior art is solved, and the complete lossless decoding of the three-dimensional grid is realized.
Patent Information
- Application Number
- PCT/CN2024/100848
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-30
- Filing Date
- 2024-06-24
- Publication Date
- 2025-01-02
AI Technical Summary
When the existing three-dimensional grid encoding technology deals with non-manifold structures, the decoding end cannot fully realize lossless decoding, resulting in the output grid increasing the split points than the input grid, and lossless encoding cannot be achieved.
By determining the connection relationship between geometric vertices and attribute vertices in the original mesh at the encoding end, non-manifold structure information, including the non-manifold identification of the target vertices and the index information of the repeated vertices, and combining repeated vertices based on this information at the decoding end. , restore the non-manifold structure of the original mesh.
Lossless decoding of a three-dimensional grid containing a non-manifold structure is achieved, ensuring the integrity and accuracy of the encoding and decoding process.
Smart Images

Figure CN2024100848_02012025_PF_FP_ABST
Abstract
Description
Coding method, decoding method, device and equipment
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to Chinese Patent Application No. 202310802666.8 filed in China on June 30, 2023, the entire contents of which are incorporated herein by reference. Technical Field
[0003] The present application belongs to the field of coding and decoding technology, and specifically relates to a coding method, a decoding method, a device and equipment. Background Art
[0004] With the increasing demand for visual effects of 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 obtained by three-dimensional scanning equipment or three-dimensional modeling software are also growing rapidly. Therefore, how to efficiently encode three-dimensional mesh data is the key to conveniently transmitting, storing and processing three-dimensional mesh data. In related technologies, when encoding a three-dimensional mesh containing a non-manifold structure, an 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 splitting the non-manifold structure. However, the decoding end cannot fully achieve lossless decoding of three-dimensional meshes containing non-manifold structures based on the identifier of the geometric vertices.
[0005] Summary of the Invention
[0006] The embodiments of the present application provide an encoding method, a decoding method, an apparatus and a device, which can solve the problem that decoding based on non-manifold identification of geometric vertices cannot fully achieve lossless decoding of three-dimensional meshes containing non-manifold structures.
[0007] In a first aspect, an encoding method is provided, comprising:
[0008] The encoder determines first indication information, where the first indication information is used to indicate whether the geometric vertices and the attribute vertices in the original mesh have the same connection relationship;
[0009] The encoding end determines one or two groups of non-manifold structure information based on the first indication information, each group of the non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split; the target repeated vertex is the repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices;
[0010] The encoding end encodes the first indication information and the one or two groups of non-manifold structure information to obtain a first code stream.
[0011] In a second aspect, a decoding method is provided, comprising:
[0012] The decoding end decodes the first code stream to obtain decoding information, wherein the decoding information includes first indication information and one or two groups of non-manifold structure information, each group of the non-manifold structure information including: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split, the target repeated vertex is a repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices, and the first indication information is used to indicate whether the geometric vertex and the attribute vertex in the original mesh have the same connection relationship;
[0013] The decoding end restores the non-manifold structure in the original grid according to the decoding information.
[0014] In a third aspect, an encoding device is provided, comprising:
[0015] A first determining module, configured to determine first indication information, wherein the first indication information is used to indicate whether the geometric vertices and the attribute vertices in the original mesh have the same connection relationship;
[0016] A second determination module is configured to determine one or two groups of non-manifold structure information based on the first indication information, each group of the non-manifold structure information including: non-manifold identification information of a target vertex and index information of a target repeated vertex; the target vertex includes geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split; the target repeated vertex is a repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices;
[0017] The first acquisition module is configured to encode the first indication information and the one or two groups of non-manifold structure information to obtain a first code stream.
[0018] In a fourth aspect, a decoding device is provided, comprising:
[0019] a fourth acquisition module, configured to decode the first code stream to obtain decoding information, wherein the decoding information includes first indication information and one or two groups of non-manifold structure information, each group of the non-manifold structure information including: non-manifold identification information of a target vertex and index information of a target repeated vertex; the target vertex includes geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained by splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split, the target repeated vertex is a repeated vertex generated when the encoder splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices, and the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship;
[0020] A restoration module is used to restore the non-manifold structure in the original grid according to the decoded information.
[0021] In a fifth aspect, a coding device is provided, comprising a processor and a communication interface, wherein the processor is used to determine first indication information, the first indication information being used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; based on the first indication information, one or two groups of non-manifold structure information are determined, each group of the non-manifold structure information including: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split; the target repeated vertex is a repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertex includes geometric repeated vertices and attribute repeated vertices; the first indication information and the one or two groups of non-manifold structure information are encoded to obtain a first code stream.
[0022] In a sixth aspect, a decoding device is provided, comprising a processor and a communication interface, wherein the processor is used to decode a first code stream to obtain decoding information, the decoding information comprising first indication information and one or two groups of non-manifold structure information, each group of the non-manifold structure information comprising: non-manifold identification information of a target vertex and index information of a target repeated vertex; the target vertex comprises a geometric vertex and an attribute vertex in a manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split, the target repeated vertex is a repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertex comprises a geometric repeated vertex and an attribute repeated vertex, the first indication information is used to indicate whether the geometric vertex and the attribute vertex in the original mesh have the same connection relationship; according to the decoding information, the non-manifold structure in the original mesh is restored.
[0023] In the seventh aspect, an electronic device is provided, which includes a processor and a memory, wherein the memory stores programs or instructions that can be run on the processor, and when the program or instructions are executed by the processor, the steps of the method described in the first aspect or the second aspect are implemented.
[0024] In an eighth aspect, a coding and decoding system is provided, comprising: a coding device and a decoding device, wherein the coding device can be used to execute the steps of the coding method as described in the first aspect, and the decoding device can be used to execute the steps of the decoding method as described in the second aspect.
[0025] In the ninth aspect, a readable storage medium is provided, on which a program or instruction is stored. When the program or instruction is executed by a processor, the steps of the method described in the first aspect are implemented, or the steps of the method described in the second aspect are implemented.
[0026] In the tenth aspect, a chip is provided, which includes a processor and a communication interface, the communication interface and the processor are coupled, and the processor is used to run programs or instructions to implement the method as described in the first aspect, or to implement the method as described in the second aspect.
[0027] In the eleventh aspect, a computer program / program product is provided, which is stored in a storage medium and is executed by at least one processor to implement the steps of the method described in the first aspect, or to implement the steps of the method described in the second aspect.
[0028] In an embodiment of the present application, an encoding end determines first indication information, where the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; the encoding end determines one or two groups of non-manifold structure information based on the first indication information, where each group of non-manifold structure information includes: non-manifold identification information of a target vertex and index information of a target repeated vertex; the target vertex includes a geometric vertex and the attribute vertex in a manifold mesh, and the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the target vertex is a vertex generated when the non-manifold structure is split; the target repeated vertex is a repeated vertex generated when the non-manifold structure in the original mesh is split, and the target repeated vertex includes a geometric repeated vertex and an attribute repeated vertex; the first indication information and the one or two groups of non-manifold structure information are encoded to obtain a first code stream. Through the above scheme, the decoding end can decode and obtain the non-manifold identification information of the geometric vertices and attribute vertices in the manifold mesh and the index information of the target repeated vertices. Based on the non-manifold identification information of the geometric vertices and attribute vertices and the index information of the target repeated vertices, the geometric repeated vertices and attribute repeated vertices generated by splitting the non-manifold structure can be merged to restore the non-manifold structure of the original mesh, thereby fully realizing lossless decoding of the original mesh containing the non-manifold structure. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] Figure 1 shows a schematic diagram of the five modes of the Edgebreaker encoding method;
[0030] FIG2 is a schematic diagram showing a flow chart of an encoding method according to an embodiment of the present application;
[0031] FIG3 is a schematic diagram showing a three-dimensional grid lossless coding framework according to an embodiment of the present application;
[0032] FIG4 is a schematic diagram showing the correspondence between edges and corners in a manifold mesh according to an embodiment of the present application;
[0033] FIG5 is a schematic diagram showing the angle relationship in an embodiment of the present application;
[0034] FIG6 is a schematic diagram showing traversal rules of five modes of the Edgebreaker encoding method in an embodiment of the present application;
[0035] FIG7 is a schematic diagram showing two adjacent triangles in a grid according to an embodiment of the present application;
[0036] FIG8 is a schematic diagram showing UV coordinate prediction based on three-dimensional to two-dimensional projection in an embodiment of the present application;
[0037] FIG9 is a schematic flow chart showing a decoding method according to an embodiment of the present application;
[0038] FIG10 is a schematic diagram showing a three-dimensional grid lossless decoding framework according to an embodiment of the present application;
[0039] FIG11 is a schematic diagram showing a module of an encoding device according to an embodiment of the present application;
[0040] FIG12 is a schematic diagram showing a module of a decoding device according to an embodiment of the present application;
[0041] FIG13 is a block diagram showing a structure of an electronic device according to an embodiment of the present application;
[0042] FIG14 shows a structural block diagram of an encoding device or a decoding device according to an embodiment of the present application. DETAILED DESCRIPTION
[0043] The following will be combined with the accompanying drawings in the embodiments of this application to clearly describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field are within the scope of protection of this application.
[0044] The terms "first", "second", etc. in this application are used to distinguish similar objects, and are not used to describe a specific order or sequence. It should be understood that the terms used in this way are interchangeable where appropriate, so that the embodiments of the present application can be implemented in an order other than those illustrated or described herein, and the objects distinguished by "first" and "second" are generally of the same type, and do not limit the number of objects, for example, the first object can be one or more. In addition, "or" in this application represents at least one of the connected objects. For example, "A or B" covers three options, namely, Option 1: including A but not including B; Option 2: including B but not including A; Option 3: including both A and B. The character " / " generally indicates that the objects associated before and after are in an "or" relationship.
[0045] The term "indication" in this application can be either a direct indication (or explicit indication) or an indirect indication (or implicit indication). A direct indication can be understood as the sender explicitly informing the receiver of specific information, the operation to be performed, or the requested result, etc. in the instruction sent; an indirect indication can be understood as the receiver determining the corresponding information based on the instruction sent by the sender, or making a judgment and determining the operation to be performed or the requested result, etc. based on the judgment result.
[0046] It is worth noting that the technology described in the embodiments of the present application is not limited to the Long Term Evolution (LTE) / LTE-Advanced (LTE-A) system, but can also be used in 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 the present application are often used interchangeably, and the described technology can be used for the systems and radio technologies mentioned above, as well as for other systems and radio technologies. The following description describes a New Radio (NR) system for example purposes, and NR terminology is used in most of the following description, but these technologies can also be applied to systems other than NR systems, such as 6th Generation (6G) communication systems.
[0047] In order to enable those skilled in the art to better understand the embodiments of the present application, the following description is first given.
[0048] With the rapid development of multimedia technology, related research results have been rapidly industrialized and have become an indispensable part of people's lives. Three-dimensional models have become the next generation of digital media, following audio, images, and video. Three-dimensional meshes and point clouds are two commonly used representations of 3D models. Compared to traditional multimedia such as images and videos, 3D mesh models offer greater interactivity and realism, leading to their increasing application in various fields, including commerce, manufacturing, construction, education, medicine, entertainment, art, and the military.
[0049] With the increasing demand for visually appealing 3D mesh models and the emergence of more sophisticated 3D scanning technologies and 3D modeling software, the size and complexity of 3D mesh data captured by 3D scanning equipment or 3D modeling software are rapidly increasing. Therefore, efficiently compressing 3D mesh data is crucial for its convenient transmission, storage, and processing.
[0050] A 3D mesh often contains three main types of information: topology, geometry, and attributes. Topology, also known as connectivity information, describes the connections between elements such as vertices and facets in the mesh. Geometric information is the 3D coordinates of all vertices in the mesh. Attribute information records other information attached to the mesh, such as normal vectors, texture coordinates, and color. 3D mesh data compression often targets these three types of information, individually based on their data characteristics. Furthermore, for 3D meshes with texture maps, the texture maps also need to be compressed.
[0051] Draco is a library for compressing and decompressing three-dimensional (3D) geometric meshes and point clouds. It aims to improve the storage and transmission of 3D graphics and significantly accelerate the encoding, transmission, and decoding of 3D data. Draco supports compression of 3D mesh geometry, connectivity, and attribute information. Draco supports both lossy and near-lossless modes. Furthermore, Draco's Edgebreaker compression method for encoding connectivity relationships is currently one of the most efficient methods for encoding 3D mesh connectivity information.
[0052] However, Edgebreaker requires the mesh to be encoded to have a manifold structure. For meshes with non-manifold structures, Draco must split them into manifold structures to correctly encode them. However, Draco does not merge these split structures at the decoder end. This results in the decoder outputting meshes with more split points than the original mesh input to the encoder. This prevents Draco from losslessly encoding these meshes with non-manifold structures.
[0053] The Moving Pictures Experts Group (MPEG), an international standards organization specializing in video and image processing, is developing a new standard for dynamic 3D mesh compression (Video-based Dynamic Mesh Coding, V-DMC). Currently, they are also using an Edgebreaker-based solution for encoding static 3D meshes, temporarily reusing the Draco codec. MPEG is also exploring the implementation of an Edgebreaker-based 3D mesh codec provided by MPEG to compress 3D mesh geometry, connectivity, and attribute information. Because Edgebreaker requires the mesh to be encoded to be a manifold structure, the currently proposed solution involves splitting 3D meshes with non-manifold structures into manifold structures for encoding. Therefore, for the lossless mode, the Edgebreaker-based 3D mesh codec implementation provided by MPEG will record and encode the index information of duplicate points generated by non-manifold splitting at the encoding end, and add an identifier to each geometric vertex of the split manifold mesh to indicate whether it is a duplicate point generated by non-manifold splitting. However, when the geometric vertices and attribute vertices have different connection relationships (the two are not one-to-one corresponding), the decoding end cannot determine the non-manifold identifier of the attribute vertex based on the non-manifold identifier of the geometric vertex, and thus cannot determine the attribute vertices added due to the splitting of the non-manifold structure, and thus cannot achieve lossless decoding of the 3D mesh containing the non-manifold structure.
[0054] The Edgebreaker-based 3D mesh compression tool currently provided by MPEG encodes and stores the connectivity, geometry, and attribute information of a 3D mesh separately. The core module, encoding the connectivity information, uses the Edgebreaker algorithm. Conventional compression methods are used to encode the geometry and attribute information, namely, data quantization, predictive compression (e.g., parallelogram prediction), and entropy coding. Because the tool uses a connectivity-driven encoding method, the encoding of the geometry and attribute information follows the encoding order of the connectivity information. This approach implicitly embeds the vertex order of the connectivity encoding within the vertex order of the geometry information, avoiding the need to transmit the vertex order of the connectivity encoding separately, thereby saving this bit overhead.
[0055] The Edgebreaker method is a 3D mesh connectivity encoding method with advantages such as good compression performance, ease of implementation, and an upper limit on the compression ratio. The Edgebreaker method itself only describes how to compress the 3D mesh connectivity information; further compression is achieved through geometric information compression and entropy coding.
[0056] Edgebreaker encoding can compress triangular meshes that are homeomorphic to a sphere to a compression efficiency of 2 bits per triangle or less. The encoding algorithm uses five different modes (called C, L, E, R, and S) to access each triangle of the mesh in depth-first order. Each triangle is labeled according to the mode it is in, generating a CLERS string that provides a compact representation of the mesh's connectivity.
[0057] Figure 1 shows the five modes of the Edgebreaker method. The Edgebreaker method divides the mesh into a traversed portion and an untraversed portion, with the boundary between the two portions being called the active boundary. During the Edgebreaker encoding process, the triangle to be traversed is accessed through the active edges on the active boundary, and the mode to be used is determined based on the relationship between the active edge and the triangle in which it resides. The other vertex in the triangle containing the active edge is called the third vertex. If the third vertex is not on the active boundary, the current triangle is marked in C mode. If the third vertex is on the active boundary and is the next vertex of the current active edge in counterclockwise order, the current triangle is marked in R mode. If the third vertex is on the active boundary and is the previous vertex of the current active edge in counterclockwise order, the current triangle is marked in L mode. If the third vertex is on the active boundary and is both the previous vertex and the next vertex of the current active edge in counterclockwise order, the current triangle is marked in E mode. If the third vertex is on the active edge, but is neither the previous vertex nor the next vertex of the current active edge in counterclockwise order, then the current triangle is marked as S mode.
[0058] After marking each triangle, the active boundary is updated and the next active edge is selected according to certain rules. After traversing all triangles, the obtained CLERS string is entropy encoded to achieve higher compression efficiency.
[0059] The encoding method provided in the embodiments of the present application is described in detail below through some embodiments and their application scenarios in conjunction with the accompanying drawings.
[0060] As shown in FIG2 , an embodiment of the present application provides an encoding method, including:
[0061] Step 201: The encoder determines first indication information, where the first indication information is used to indicate whether geometric vertices and attribute vertices in the original mesh have the same connection relationship.
[0062] In the embodiment of the present application, when the geometric vertices in the original mesh correspond one-to-one with the attribute vertices, the geometric vertices in the original mesh and the attribute vertices have the same connection relationship; when the geometric vertices in the original mesh and the attribute vertices do not correspond one-to-one with each other, the geometric vertices in the original mesh and the attribute vertices have different connection relationships. Optionally, the attribute vertices are UV vertices.
[0063] Optionally, the original grid is a three-dimensional grid, which can be understood as a three-dimensional grid corresponding to any video frame.
[0064] Optionally, the first indication information may be represented by an identifier. For example, if the 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 the identifier is set to 0, it indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships. Alternatively, the first indication information may be represented by whether or not difference information between the attribute connection relationship and the geometric connection relationship exists. If the difference information does not exist, the geometric vertices and attribute vertices have the same connection relationship. If the difference information exists, the geometric vertices and attribute vertices have different connection relationships.
[0065] Of course, the above-mentioned first indication information can also be expressed in other forms, and this application does not limit its specific expression method.
[0066] Step 202: The encoding end determines one or two groups of non-manifold structure information based on the first indication information, and each group of the non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, and the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split; the target repeated vertex is the repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertex includes geometric repeated vertices and attribute repeated vertices.
[0067] In an embodiment of the present application, non-manifold identification information is used to indicate whether the target vertex is a duplicate vertex generated when the non-manifold structure is split. For example, when the non-manifold identification information is 1, it indicates that the vertex is a duplicate vertex generated when the non-manifold structure is split. When the non-manifold identification information is 0, it indicates that the vertex is not a duplicate vertex generated when the non-manifold structure is split.
[0068] In an embodiment of the present application, one or two groups of non-manifold structure information are determined through the first indication information. Based on the one or two groups of non-manifold structure information, non-manifold identification information of geometric vertices and attribute vertices and index information of geometric repeated vertices and attribute repeated vertices can be obtained, thereby facilitating the decoding end to achieve lossless decoding of three-dimensional meshes containing non-manifold structures based on the non-manifold identification information of the geometric vertices and attribute vertices and index information of the geometric repeated vertices and attribute repeated vertices.
[0069] Optionally, in an embodiment of the present application, if each edge of the mesh is shared by at most two facets and there are no non-manifold points, then the mesh is a manifold mesh; otherwise, it is called a non-manifold mesh.
[0070] Step 203: The encoding end encodes the first indication information and the one or two groups of non-manifold structure information to obtain a first code stream.
[0071] In the scheme of the embodiment of the present application, the encoding end determines first indication information, where the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; the encoding end determines one or two groups of non-manifold structure information based on the first indication information, and each group of non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, and the manifold mesh is obtained after the non-manifold structure in the original mesh is split, and the non-manifold identification information is used to indicate whether the target vertex is a vertex generated when the non-manifold structure is split; the target repeated vertex is a repeated vertex generated when the non-manifold structure in the original mesh is split, and the target repeated vertex includes a geometric repeated vertex and an attribute repeated vertex; the first indication information and the one or two groups of non-manifold structure information are encoded to obtain a first code stream. Through the above scheme, the decoding end can decode and obtain the non-manifold identification information of the geometric vertices and attribute vertices in the manifold mesh and the index information of the target repeated vertices. Based on the non-manifold identification information of the geometric vertices and attribute vertices and the index information of the target repeated vertices, the geometric repeated vertices and attribute repeated vertices generated by splitting the non-manifold structure can be merged to restore the non-manifold structure of the original mesh, thereby fully realizing lossless decoding of the original mesh containing the non-manifold structure.
[0072] Optionally, the first code stream further includes: encoding information of second indication information, where the second indication information is used to indicate whether a non-manifold structure exists in the original grid.
[0073] The second indication information may be represented by an identifier. For example, if the identifier is set to 1, it indicates that a non-manifold structure exists in the original mesh; if the identifier is set to 0, it indicates that no non-manifold structure exists in the original mesh.
[0074] Of course, the above-mentioned second indication information can also be expressed in other forms, and this application does not limit its specific expression method.
[0075] Optionally, the encoder determines, according to the first indication information, one or two sets of non-manifold structure information, including at least one of the following:
[0076] In a case where the first indication information indicates that the geometric vertices and the attribute vertices in the original mesh have the same connection relationship, the encoder determines a set of non-manifold structure information, wherein the geometric vertices and the attribute vertices in the manifold mesh share non-manifold identification information in the set of non-manifold structure information, and the geometric duplicate vertices and the attribute duplicate vertices in the manifold mesh share index information in the set of non-manifold structure information; or
[0077] When the first indication information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, the encoding end determines two sets of non-manifold structure information, wherein the geometric vertices and geometric repeated vertices in the manifold mesh correspond to one set of non-manifold structure information in the two sets of non-manifold structure information, and the attribute vertices and attribute repeated vertices in the manifold mesh correspond to the other set of non-manifold structure information in the two sets of non-manifold structure information.
[0078] In the scheme of the embodiment of the present 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. In the case where the geometric vertices and attribute vertices have different connection relationships, after splitting the non-manifold structure, a non-manifold identification information needs to be 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 duplicate points and attribute duplicate points generated by splitting the non-manifold structure are recorded and encoded respectively, that is, two sets of non-manifold structure information are determined, so as to fully realize the lossless encoding of three-dimensional meshes based on Edgebreaker. In the case where the geometric vertices and attribute vertices have the same connection relationship, only one set of index information of the duplicate points generated by splitting the non-manifold structure and one set of non-manifold identification information of the target vertices are recorded, that is, one set of non-manifold structure information is determined.
[0079] In addition, the repeated vertices in the embodiments of the present application can also be described as repeated points.
[0080] Optionally, the method further includes:
[0081] The encoding end encodes the manifold grid to obtain a second bitstream, wherein the manifold grid is obtained by the encoding end after splitting the non-manifold structure in the original grid;
[0082] The encoding end obtains a total code stream of the original grid according to the first code stream and the second code stream.
[0083] In an embodiment of the present application, when the decoding end restores the non-manifold structure, in addition to the non-manifold identification information and the index information of the repeated vertices, the decoded manifold mesh is also required. Based on the decoded manifold mesh, the non-manifold identification information and the index information of the repeated vertices, the non-manifold structure can be restored.
[0084] Optionally, the encoding end encodes the manifold grid to obtain a second code stream, including:
[0085] The encoding end encodes the target information of the manifold grid to obtain the second code stream;
[0086] The target information includes connection relationship, geometric information and attribute information.
[0087] Optionally, the attribute information includes UV coordinates, ie, texture coordinates. UV coordinates are information describing the texture of vertices of a three-dimensional mesh.
[0088] In an embodiment of the present application, the edgebreaker method can be used to encode the connection relationship to obtain a CLERS pattern string that can concisely represent the connection relationship. The pattern string is then compressed using entropy coding to obtain a connection relationship sub-codestream (also described as a connection relationship codestream). A method such as parallelogram prediction is used to encode the geometric information of the mesh to obtain a geometric information sub-codestream (also described as a geometric information codestream). A method such as similar triangle prediction is used to encode the UV coordinates in the mesh attribute information to obtain an attribute information sub-codestream (also described as an attribute information codestream). The second codestream described above is obtained based on the connection relationship sub-codestream, the geometric information sub-codestream, and the attribute information sub-codestream.
[0089] Optionally, in the method of the embodiment of the present application, the total bitstream of the original grid further includes:
[0090] The third code stream is obtained by encoding the texture map information of the original grid.
[0091] In the embodiment of the present application, a video encoder may be used to encode the texture map information to obtain a sixth code stream, namely a texture map sub-code stream (which may also be described as a texture map code stream).
[0092] The three-dimensional mesh coding framework in the embodiment of the present application is shown in FIG3. In the preprocessing step, it is first determined whether the geometric vertices and UV vertices have the same connection relationship, and then the input mesh with non-manifold structure is split to obtain a manifold mesh, and the duplicate points generated by splitting the non-manifold are recorded. Then, it is necessary to encode the information indicating whether the geometric vertices and attribute vertices in the manifold mesh have the same connection relationship; for the manifold mesh, the Edgebreaker method is used to encode the connection information to obtain a pattern string, and entropy encoding is performed on it; the geometric information of the manifold mesh is encoded, for example, a parallelogram prediction coding method can be used, and the encoding method of the geometric information is not limited here; if the mesh has attribute information such as UV coordinates, it can be encoded using methods such as similar triangle prediction coding, and the encoding method of the attribute information is not limited here; when encoding non-manifold structure information, first encode the representation information of whether there is a non-manifold structure in the mesh (i.e., the second indication information). If a mesh contains non-manifold structures, two cases are considered: If the geometric vertices and attribute vertices in the mesh have the same connectivity, the non-manifold identification information for one set of vertices and the index information of the duplicate points generated by removing the non-manifold structures are encoded in the same coding order. If the geometric vertices and attribute vertices in the mesh have different connectivity, the non-manifold identification information for the two sets of vertices and the index information of the duplicate points generated by removing the non-manifold structures are encoded in the coding order of the geometric coordinates and attribute coordinates respectively. Finally, the multiple streams are mixed to obtain the final output stream.
[0093] The specific implementation of the encoding process is described below, and the UV in the embodiment can also be described as a texture, that is, an example of attribute information:
[0094] As shown in Figure 3, the 3D mesh lossless coding framework of this application is mainly divided into five parts: splitting non-manifold structures in preprocessing, connection relationship coding, geometric information coding, attribute information coding, and non-manifold structure information coding. They are introduced below. In the embodiment of this application, the overall attribute information can be described as UV coordinates (texture coordinates) and the attribute vertices can be described as UV vertices (texture vertices).
[0095] 1) Splitting non-manifold structures in preprocessing;
[0096] Input: original mesh;
[0097] Output: information indicating whether the geometric vertices and UV vertices in the mesh have the same connection relationship, manifold mesh, and duplicate points generated by decomposing non-manifolds;
[0098] The preprocessing step may also include filtering out duplicate points, adding virtual points, and other preprocessing modules required for encoding.
[0099] Before dismantling the non-manifold structure, first determine whether the geometric vertices and UV vertices have the same connection relationship. You can first determine whether the number of geometric vertices is consistent with the number of UV vertices. If they are consistent, then determine whether the geometric triangles are consistent with the UV triangles, that is, their connection relationships. If the geometric triangles are inconsistent with the UV triangles, the geometric vertices and UV vertices have different connection relationships; if the number of geometric vertices is inconsistent with the number of UV vertices, but the number of geometric triangles is consistent with the number of UV triangles, then the geometric vertices and UV vertices also have different connection relationships. You can also use other methods to determine, and the determination method is not limited here. At the same time, for information indicating whether the geometric vertices and UV vertices have the same connection relationship, for example, you can set an identifier that the geometric vertices and UV vertices in a mesh have the same connection relationship to indicate that, and the representation method is not limited here.
[0100] Splitting non-manifold structures is mainly divided into two parts: splitting non-manifold edges and splitting non-manifold points.
[0101] The first step in splitting non-manifold edges is to find them. The criterion for determining a non-manifold edge is that an edge exists in three or more triangles at the same time. The specific implementation method is: either establish a data structure to store the triangles where each edge is located, and find the non-manifold edge by querying the number of triangles corresponding to the edge; or construct a corner table to establish a correspondence between corners and edges in the mesh, and then find the non-manifold edge. Specifically, for a manifold mesh, each edge is opposite to at most two corners, and the two opposite corners are called opposite corners. As shown in Figure 4, angle a and angle d are opposite to edge bc, and angle a and angle d are opposite corners; for non-manifold edges, there will be three or more opposite corners. Therefore, non-manifold edges can also be found through the correspondence between angles and edges.
[0102] The second step in splitting a non-manifold edge is to add vertices and modify the connectivity. After finding a non-manifold edge, duplicate vertices are created for each of the two vertices of the non-manifold edge. A triangle t containing the non-manifold edge is selected, and the third vertex of that triangle forms a new triangle t' with the two newly added vertices. This process is then repeated until the non-manifold edge is converted to a manifold edge.
[0103] To split non-manifold points, you first need to build a Corner Table and establish a correspondence between each vertex and the corner of the vertex. Perform two steps for each vertex. In the first step, starting from a corner of the vertex, traverse all the corners adjacent to the corner and forming a fan in sequence, and mark the vertex and the traversed corners as traversed. If after executing the above process, there are still vertices that have not been traversed, then it means that the vertex is a non-manifold point. In the second step, for each non-manifold point, create a duplicate point and modify the connection relationship, connecting the corners that were not traversed in the first step to the newly added duplicate point, and splitting the non-manifold point into two manifold vertices. Repeat this process until all vertices are converted into manifold points.
[0104] If the geometric vertices and UV vertices have the same connection relationship, the above process is executed once, and a set of duplicate point information generated by the process is recorded; if the geometric vertices and UV vertices have different connection relationships, the above process is executed once based on the geometric vertices and UV vertices respectively: the CornerTable of the geometric vertices and UV vertices are constructed respectively, and the geometric non-manifold edges and geometric non-manifold points, the texture non-manifold edges and UV non-manifold points are split respectively, and the geometric duplicate point information and UV duplicate point information generated by the process are recorded respectively.
[0105] 2) Connection relationship encoding;
[0106] Input: The connectivity relationship of the manifold mesh, which indicates whether the geometric vertices and UV vertices in the mesh have the same connectivity relationship;
[0107] Output: Encoded connection relationship sub-code stream and vertex encoding order;
[0108] This application uses the Edgebreaker method to encode the connection relationship of a three-dimensional mesh. It establishes a CornerTable to represent the connection relationship of the mesh, and uses the CornerTable to traverse all triangles in the mesh to generate the Edgebreaker CLERS pattern string.
[0109] CornerTable is used to represent the relationship between corners, vertices and triangles in a mesh. Before building CornerTable, you first need to number the corners, traverse the triangles in the order of the triangles in the mesh, and number the corners of each triangle in counterclockwise order. If the mesh has f triangles, then the mesh will have 3f corners. The advantage of this numbering is that the number of the triangle where the current corner is located can be calculated through the number of the corner, as shown in Formula 1; you can also calculate the previous corner c in the counterclockwise direction of the current corner c. p and the next angle c n The serial number is shown in Formula 2 and Formula 3.
[0110] f i = c / 3 (1)
[0111] Among them, c is the index of the current angle, f i is the number of the triangle where the current angle c is located, " / " is integer division, and the result is rounded down.
[0112] c p =(f i *3)+(c-1) % 3 (2)
[0113] Among them, c is the index of the current angle, f i is the serial number of the triangle where the current angle c is located, "*" is multiplication, and "%" is modulo operation.
[0114] c p = (f i *3)+(c+1) % 3 (3)
[0115] Among them, c is the index of the current angle, f i is the serial number of the triangle where the current angle c is located, "*" is multiplication, and "%" is modulo operation.
[0116] The Corner Table consists of four parts: V-table, O-table, U-table, and M-table. 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 the flags indicating whether each triangle has been traversed during the traversal process, and the M-table stores the flags indicating whether each vertex has been traversed during the traversal process.
[0117] Using the Corner Table, we can construct the relationship shown in Figure 5, where c represents the current corner, cp represents the previous corner of the current corner (counterclockwise), and cn represents the next corner of the current corner. co is the opposite corner of the current corner c, which can be obtained by querying the O table. ct is the serial number of the triangle in which c is located, which can be calculated using Formula 1. cv represents the vertex of the current corner, which can be obtained by querying the V table. cl represents the corner to the left of the current corner c, which is obtained by querying the opposite corner of cp in the O table; cr represents the corner to the right of the current corner c, which is obtained by querying the opposite corner of cn in the O table.
[0118] After using the Corner Table to establish the relationships between corners, vertices, and triangles, we can traverse the mesh in a spiral order to obtain the Edgebreaker CLERS pattern string representing the mesh connectivity. The judgment conditions and traversal rules for the five patterns are shown in Figure 6. The currently traversed angle is x. If the vertex xv corresponding to x has not been visited, the current triangle is in C mode, and the next triangle to be traversed is the triangle where xr is located; otherwise, if the triangle where xl is located has been visited, the current triangle is in L mode, and the next triangle to be traversed is the triangle where xr is located; if the triangle where xr is located has been visited, the current triangle is in R mode, and the next triangle to be traversed is the triangle where xl is located; if the vertex xv has been visited, and the triangles where xl and xr are located have not been visited, then the current triangle is in S mode. At this time, the traversal path will produce two branches. The depth-first traversal principle is adopted. The first triangle traversed is the triangle where xr is located, and the triangle where xl is located is stored in the stack. After waiting for the branch where xr is located to be traversed, the triangle where xl is located is traversed; if the triangles where xl and xr are located have been visited, the mode of the current triangle is E, and the end point of the current traversal path branch has been traversed.
[0119] Randomly select an initial triangle in the mesh, traverse the triangles in the mesh according to the above rules, and generate a CLERS pattern string. When the traversal path ends but there are still untraversed triangles in the mesh, randomly select an untraversed triangle and start the next traversal until all triangles in the mesh have been traversed.
[0120] Entropy coding is used to compress the CLERS pattern string to obtain the final connection information code stream.
[0121] If the geometric vertices and UV vertices have the same connection relationship, the above process only needs to be executed once; if the geometric vertices and UV vertices have different connection relationships, since the number of geometric triangles and texture triangles is consistent and corresponding, but the corresponding geometric indexes and UV indexes are not one-to-one corresponding, it is only necessary to build a CLERS pattern string and encode it according to the geometric CornerTable. In this case, for the UV vertices, after the pattern string encoding of each connected area of the geometric vertex is completed, the traversed corners are traversed, and the difference information between the texture connection relationship and the geometric connection relationship is recorded and encoded according to the TC table and OTC table of the UV vertex. Among them, the TC table stores the UV vertex index corresponding to each corner in the texture triangle, and the OTC table stores each diagonal index in the texture triangle.
[0122] 3) Geometric information encoding;
[0123] Input: Geometric information and connection relationship encoding order of manifold mesh;
[0124] Output: geometric information sub-code stream and geometric information coding order;
[0125] There are many methods for encoding geometric information, such as differential prediction coding, parallelogram prediction coding, and multi-parallelogram prediction coding. The specific encoding method is not emphasized here. For example, consider the parallelogram prediction coding algorithm: Assume that four vertices, a, b, c, and d, form two adjacent triangles in the mesh shown in Figure 7.
[0126] The geometric information of points a, b, and c has been encoded, and the geometric information of point d is yet to be encoded. Then, the predicted value d' of the geometric coordinates of point d can be calculated using Formula 4.
[0127] d′(x,y,z)=b(x,y,z)+c(x,y,z)-a(x,y,z) (4)
[0128] After obtaining d', the difference Δd between d' and the three-dimensional coordinates of point d is calculated using formula (5):
[0129] Δd(x,y,z)=d(x,y,z)-d′(x,y,z) (5)
[0130] Perform entropy coding on Δd to obtain a code stream of geometric information.
[0131] For triangles that cannot be predicted using parallelograms, such as those at the mesh boundary, a difference encoding method is used to encode the geometric information. This method uses the coordinates of adjacent encoded vertices as the predicted values of the current vertex coordinates, and calculates and predicts the residual.
[0132] 4) Attribute information encoding;
[0133] Input: attribute information and connection relationship encoding order of manifold mesh;
[0134] Output: attribute information sub-code stream and encoding order of attribute information;
[0135] 3D mesh attribute information generally includes UV coordinates and normal vectors. Taking UV coordinates as an example, there are many ways to encode UV coordinates, including differential prediction coding, parallelogram prediction coding, and similar triangle prediction coding. The specific encoding methods are not discussed here. The following describes the similar triangle prediction algorithm.
[0136] First, select a triangle in a three-dimensional mesh as the initial triangle, directly encode the UV coordinates of the three vertices of the initial triangle without predicting them, and store the edges of the initial triangle in an edge set. This set can be a data structure that meets certain access criteria. Then take out an edge τ from a set and predict the UV coordinates of the opposite vertex of τ in the next new triangle. And put the two sides of the new triangle except τ into the set. Let the point to be predicted be point C, the two end points of the edge τ be N and P respectively, the opposite vertex of the triangle adjacent to the new triangle through τ be O, and the projection point of C on τ be X. As shown in Figure 8, since the UV coordinates of points N, P, and O are encoded before point C, these three points can be used to predict the UV coordinates of point C. The specific calculation process is as follows:
[0137] Let C uv ,X uv ,N uv ,P uv ,O uv are the UV coordinates of each point, C G ,X G ,N G ,P G ,O G are the geometric coordinates of each point.
[0138] First calculate the UV coordinate of point X:
[0139] in, are the vector representations of the geometric coordinates between the corresponding points, for example, The vector representation of the geometric coordinates between point N and point P, The vector representation of the geometric coordinates between point N and point C, The vector representation of the geometric coordinates between point N and point X, A vector representation of the geometric coordinates between point X and point C;
[0140] They are vector representations of the UV coordinates between the corresponding points, for example, The vector representation of the UV coordinates between point N and point X, A vector representation of the UV coordinates between point X and point C.
[0141] Calculating vectors Rotated() means flipping the vector 90 degrees:
[0142] Finally calculate the predicted UV coordinates Pred of point C C :
[0143] in, and Both represent the vectors of the UV coordinates between point C and point O, but in different value representations.
[0144] After obtaining the UV coordinate prediction value, subtract it from the original UV coordinate to obtain the residual value.
[0145] The steps to encode UV coordinates are as follows:
[0146] (1) Select an initial triangle from the connectivity relationship and directly encode the UV coordinates of the three vertices of the initial triangle without prediction. Store the edges of the initial triangle in the edge set.
[0147] (2) Select an edge τ from the set according to the access criteria and encode the UV coordinates of the vertices of the new triangle formed by τ. Using the projection relationship of the triangle from 3D to 2D, calculate the predicted value of the point to be encoded according to the UV coordinate prediction value calculation process described above. Subtract the predicted value from the original UV coordinate value to obtain the residual.
[0148] (3) Add the two edges of the new triangle to the edge set and remove the edge τ at the top of the set. Take the next edge from the set and continue encoding the UV coordinates of the vertices of the triangles adjacent to that edge. Return to step (3) until the UV coordinates of all vertices are encoded.
[0149] Entropy encodes the UV coordinate residual and outputs the UV coordinate code stream.
[0150] 5) Non-manifold structural information encoding;
[0151] Input: information indicating whether the geometric vertices and UV vertices in the mesh have the same connection relationship, information indicating whether there is a non-manifold structure in the mesh, non-manifold identifiers of vertices, index information of duplicate points generated by removing non-manifolds, geometric information encoding order, attribute information encoding order;
[0152] Output: non-manifold structure information sub-code stream;
[0153] First, encode information indicating whether a non-manifold structure exists in the grid. This can be indicated by setting a flag indicating whether a non-manifold structure exists in the grid, or by the number of duplicate points generated by removing the non-manifold structure in the grid. Take setting a flag indicating whether a non-manifold structure exists as an example: if there is no non-manifold structure in the grid, that is, the number of duplicate points generated by removing the non-manifold is 0, set the flag to 0, and there is no need to encode the non-manifold flag of the vertex and the index information of the duplicate points generated by removing the non-manifold; if there is a non-manifold structure in the grid, that is, the number of duplicate points generated by removing the non-manifold is greater than 0, set the flag to 1, and then encode the non-manifold flag of the vertex and the index information of the duplicate points generated by removing the non-manifold.
[0154] The duplicate points generated by non-manifold removal include geometric duplicate points and UV duplicate points. Depending on whether the geometric vertices and UV vertices in the mesh have the same connection relationship, the non-manifold identification information of the encoded vertices and the index information of the duplicate points generated by the non-manifold removal 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, the geometric coordinates and UV coordinates are in a one-to-one correspondence, then the non-manifold identification information of a group of vertices and the index information of the duplicate points generated by the non-manifold removal are directly encoded, and the index information can be obtained according to the encoding order of the geometric coordinates and UV coordinates on the encoding end; the second case is when the geometric vertices and UV vertices in the mesh have different connection relationships, such as when one geometric coordinate corresponds to multiple texture coordinates, then the non-manifold identification information of the geometric vertices and the index information of the geometric duplicate points generated by the non-manifold removal, the non-manifold identification information of the UV vertices and the index information of the UV duplicate points generated by the non-manifold removal are encoded respectively, and the index information can be obtained according to the encoding order of the geometric coordinates and the encoding order of the UV coordinates on the encoding end. The representation of the duplicate point index information generated by dismantling the non-manifold structure can be the target vertex index that needs to be merged when restoring the non-manifold, or it can be the duplicate point group index: points with the same index belong to the same duplicate point group, that is, they have the same vertex information. There is no restriction on its representation here.
[0155] The specific implementation is as follows: if the geometric vertices and UV vertices in the mesh have the same connectivity, a flag is set for each vertex in the manifold mesh to indicate whether the point at the current position is a duplicate point generated by removing the non-manifold structure, and the index information of the duplicate points generated by removing the non-manifold is encoded. If the geometric vertices and UV vertices in the mesh have different connectivity relationships, a flag is set for each geometric vertex and each UV vertex in the manifold mesh to indicate whether the geometric vertex and UV vertex at the current position are duplicate points generated by removing the non-manifold structure, and the index information of the geometric duplicate points and UV duplicate points generated by removing the non-manifold are encoded respectively. The binary string sequence obtained by arranging the flags in the corresponding encoding order and the index information of the duplicate points generated by removing the non-manifold are then entropy encoded to obtain the non-manifold structure information code stream.
[0156] The non-manifold structure information bitstream can be stored in multiple ways within the total bitstream: one is to store the non-manifold structure information bitstream as a separate sub-bitstream; another is to store the geometric non-manifold structure information bitstream within the geometric information sub-bitstream and the UV non-manifold structure information bitstream within the attribute information sub-bitstream; or, alternatively, to store the geometric non-manifold structure information bitstream and the UV non-manifold structure information bitstream as two sub-bitstreams within the total bitstream. The storage method of the non-manifold structure information bitstream within the total bitstream is not emphasized here.
[0157] It should be noted that this application does not limit the order of encoding the three-dimensional mesh connection relationship and the vertex information. It can be that the geometric information, attribute information and non-manifold structure information are encoded at the same time as the connection relationship is encoded; or it can be that after the connection relationship is encoded, the geometric information, attribute information and non-manifold structure information are encoded in sequence according to the encoding order of the connection relationship.
[0158] When encoding the geometric information and attribute information of vertices, the geometric information and attribute information of duplicate points generated by splitting non-manifolds can be skipped and encoded only once, or can not be skipped. There is no restriction here on whether to skip encoding the geometric information and attribute information of duplicate points generated by splitting non-manifolds.
[0159] According to the above-mentioned scheme of the embodiment of the present application, the encoding end determines first indication information, which is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; the encoding end determines one or two groups of non-manifold structure information based on the first indication information, and each group of non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, and the manifold mesh is obtained after the non-manifold structure in the original mesh is split, and the non-manifold identification information is used to indicate whether the target vertex is a vertex generated when the non-manifold structure is split; the target repeated vertex is a repeated vertex generated when the non-manifold structure in the original mesh is split, and the target repeated vertex includes geometric repeated vertices and attribute repeated vertices; the first indication information and the one or two groups of non-manifold structure information are encoded to obtain a first code stream. Through the above scheme, the decoding end can decode and obtain the non-manifold identification information of the geometric vertices and attribute vertices in the manifold mesh and the index information of the target repeated vertices. Based on the non-manifold identification information of the geometric vertices and attribute vertices and the index information of the target repeated vertices, the geometric repeated vertices and attribute repeated vertices generated by splitting the non-manifold structure can be merged to restore the non-manifold structure of the original mesh, thereby fully realizing lossless decoding of the original mesh containing the non-manifold structure.
[0160] As shown in FIG9 , the embodiment of the present application further provides a decoding method, including:
[0161] Step 901: The decoding end decodes the first bitstream to obtain decoding information, wherein the decoding information includes first indication information and one or two groups of non-manifold structure information, each group of the non-manifold structure information including: non-manifold identification information of a target vertex and index information of a target repeated vertex; the target vertex includes geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained by splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split, the target repeated vertex is a repeated vertex generated when the encoder splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices, and the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship;
[0162] Step 902: The decoding end restores the non-manifold structure in the original grid according to the decoding information.
[0163] In an embodiment of the present application, the decoding end decodes the first code stream to obtain first indication information and one or two groups of non-manifold structure information, each group of non-manifold structure information including: non-manifold identification information of the target vertex and index information of the target repeated vertex; based on the first indication information and the one or two groups of non-manifold structure information, the non-manifold structure in the original mesh is restored. Through the above scheme, the decoding end can decode and obtain the non-manifold identification information of the geometric vertices and attribute vertices in the manifold mesh and the index information of the target repeated vertices. Based on the non-manifold identification information of the geometric vertices and attribute vertices and the index information of the target repeated vertices, the geometric repeated vertices and attribute repeated vertices generated by splitting the non-manifold structure can be merged to restore the non-manifold structure of the original mesh, thereby being able to fully realize lossless decoding of the original mesh containing the non-manifold structure.
[0164] Optionally, the decoding information further includes second indication information, where the second indication information is used to indicate whether a non-manifold structure exists in the original grid;
[0165] The decoding end restores the non-manifold structure in the original grid according to the decoded information, including:
[0166] In a case where the second indication information indicates that a non-manifold structure exists in the original mesh, the non-manifold structure in the original mesh is restored according to the first indication information and the one or two sets of non-manifold structure information.
[0167] Optionally, the decoding end decodes the first code stream to obtain decoding information, including:
[0168] The decoding end decodes the first code stream to obtain first indication information and second indication information;
[0169] In a case where the first indication information indicates that the geometric vertices and the attribute vertices in the original mesh have the same connection relationship, decoding from the first code stream to obtain a set of non-manifold structure information, wherein the geometric vertices and the attribute vertices in the manifold mesh share non-manifold identification information in the set of non-manifold structure information, and the geometric repeated vertices and the attribute repeated vertices in the manifold mesh share index information in the set of non-manifold structure information; or
[0170] When the first indication 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 decoded from the first code stream, wherein the geometric vertices and geometric repeated vertices in the manifold mesh correspond to one set of non-manifold structure information in the two sets of non-manifold structure information, and the attribute vertices and attribute repeated vertices in the manifold mesh correspond to the other set of non-manifold structure information in the two sets of non-manifold structure information.
[0171] Optionally, the decoding end restoring the non-manifold structure in the original grid according to the first indication information and the one or two sets of non-manifold structure information includes:
[0172] The decoding end decodes the second code stream to obtain target information of the manifold mesh, wherein the target information includes connection relationship, geometric information and attribute information;
[0173] Reconstructing a manifold grid according to target information of the manifold grid;
[0174] The non-manifold structure in the original mesh is restored according to the reconstructed manifold mesh, the first indication information and the one or two sets of non-manifold structure information.
[0175] At the decoding end, entropy decoding obtains the CLERS pattern string, and the pattern string is used to reconstruct the connection relationship. The geometric information of the mesh is decoded using methods such as parallelogram inverse prediction, and the UV coordinates of the mesh are decoded using methods such as similar triangle inverse prediction. When decoding non-manifold structure information, the indication information of whether there is a non-manifold structure in the mesh is first decoded. If there is a non-manifold structure in the mesh, the non-manifold identification information of the vertex and the index information of the duplicate points generated by disassembling the non-manifold are further decoded to obtain the duplicate points generated by disassembling the non-manifold. The duplicate points generated by disassembling the non-manifold are merged, and the connection relationship is adjusted to restore the non-manifold structure in the mesh. Through the codec framework, lossless encoding and decoding of meshes containing non-manifold structures can be completed.
[0176] Optionally, in an embodiment of the present application, the decoding end further decodes the third code stream to obtain texture map information, and reconstructs the grid based on the texture map and the grid obtained by restoring the non-manifold structure.
[0177] The 3D mesh decoding framework in an embodiment of the present application is shown in FIG10 . First, information indicating whether the geometric vertices and UV vertices in the mesh have the same connectivity relationship is decoded. A connectivity relationship substream is entropy decoded to obtain a pattern string. If the geometric vertices and UV vertices have the same connectivity relationship, only one set of connectivity relationships needs to be reconstructed. If the geometric vertices and UV vertices have different connectivity relationships, the connectivity relationships of the geometric coordinates and UV coordinates need to be reconstructed separately. The mesh's geometric information is decoded using a decoding method corresponding to the encoder. The mesh's attribute information is decoded using a decoding method corresponding to the encoder. When decoding non-manifold structure information, information indicating whether the mesh contains a non-manifold structure is first decoded. If the mesh contains a non-manifold structure, two cases are considered: if the geometric vertices and UV vertices in the mesh have the same connectivity relationship, further decoding is performed to obtain non-manifold identification information for one set of vertices and index information for duplicate points resulting from decomposing the non-manifold structure. If the geometric vertices and UV vertices in the mesh have different connectivity relationships, non-manifold identification information for two sets of vertices and index information for duplicate points resulting from decomposing the non-manifold structure are decoded. In the post-processing step, the duplicate points generated by the non-manifold removal will be merged, and the connection relationship will be adjusted to restore the non-manifold structure in the mesh, completing the lossless encoding and decoding of the mesh containing the non-manifold structure.
[0178] It should be noted that the post-processing step may also include post-processing modules required for correct decoding, such as restoring filtered duplicate points, deleting added virtual vertices, etc. For ease of explanation, FIG10 only lists the modules for restoring non-manifold structures targeted by this application.
[0179] The specific implementation of the decoding process is described below:
[0180] As shown in Figure 10, the 3D mesh lossless decoding framework of this patent is mainly divided into six parts: connection relationship decoding, geometric information decoding, attribute information decoding, non-manifold structure information decoding, manifold mesh reconstruction, and non-manifold structure recovery in post-processing. The following is a description of each part:
[0181] 1) Connection relationship decoding;
[0182] Input: The connection relationship sub-code stream to be decoded, indicating whether the geometric vertices and UV vertices have the same connection relationship;
[0183] Output: connectivity of the manifold mesh and the decoded vertex order;
[0184] First, decode the connection relationship sub-code stream to obtain a pattern string. Traverse the pattern string in a certain order (forward or reverse order), and reconstruct the connection relationship according to the corresponding pattern in the string. Consistent with the encoding end, if 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 reconstruct the geometric connection relationship in the current connected area based on the decoded string, and then traverse the corners in the area and the difference information between the texture connection relationship and the geometric connection relationship in the decoded geometric connected area to reconstruct the connection relationship of the UV vertices. In addition, the traversal order of the vertices is output to the geometric information and attribute information decoding module.
[0185] 2) Geometric information decoding;
[0186] Input: Geometric information sub-code stream, decoding order of connection relationship;
[0187] Output: Geometric information of the manifold mesh.
[0188] The decoding process of the mesh geometric coordinates is the inverse of the encoding process: first, entropy decoding is performed to obtain the coordinate prediction residual. Then, based on the decoded triangle, the predicted coordinates of the point to be decoded are predicted according to the parallelogram rule. The predicted coordinates are added to the residual value obtained by entropy decoding to obtain the geometric coordinate position to be decoded. The vertex traversal order here is the same as the vertex order of the encoded geometric information. Note that the geometric coordinates of the initial triangle do not use predictive coding, but directly encode their geometric coordinate values. After the geometric coordinates of the triangle are decoded at the decoding end, it is used as the initial triangle to start traversing and decoding the geometric coordinates of the vertices of other triangles. In addition, other decoding methods may also be used here. The specific decoding method is not emphasized, as long as it corresponds to the encoding end.
[0189] 3) attribute information decoding;
[0190] Input: attribute information code stream to be decoded, decoding order of connection relationship;
[0191] Output: attribute information of manifold mesh reconstruction.
[0192] Taking UV coordinates as an example, the decoding method corresponding to the UV coordinates and the encoding end is not emphasized here. The following describes the decoding process using the similar triangle prediction algorithm.
[0193] The steps to decode UV coordinates are as follows:
[0194] (1) Entropy decoding of UV coordinate code stream.
[0195] (2) Decode the UV coordinates of the three vertices of the initial triangle. The prediction value is not calculated here. The initial triangle directly encodes its UV coordinates instead of encoding the residual. Store the edges of the initial triangle in the edge set.
[0196] (3) Select an edge τ from the set according to the access criteria and decode the UV coordinates of the vertices of the new triangle formed by τ. First, use the 3D to 2D mapping relationship of the triangle to calculate the UV coordinate prediction value of the point to be decoded in the same calculation method as the encoder. Then, add the prediction value to the residual of entropy decoding to obtain the reconstructed UV coordinate.
[0197] (4) Add the two edges of the new triangle to the edge set and remove the edge τ at the top of the set. Take the next edge from the set and continue decoding the UV coordinates of the vertices of the triangles adjacent to the edge. Return to step (3) until the UV coordinates of all vertices are decoded.
[0198] 4) Decoding of non-manifold structural information;
[0199] Input: non-manifold structure information sub-stream, information indicating whether the geometric vertices and UV vertices in the mesh have the same connection relationship, the decoding order of geometric information, and the decoding order of attribute information;
[0200] Output: Information indicating whether there is a non-manifold structure in the mesh, the non-manifold identifier of the vertex, and the index information of duplicate points generated by removing the non-manifold;
[0201] First, decode the information indicating whether a non-manifold structure exists in the mesh. For example, if this information is a flag indicating whether a non-manifold exists, if the flag is 0, then the non-manifold identification information of the vertex and the index information of the duplicate points generated by removing the non-manifold do not need to be decoded, and the subsequent module for recovering the non-manifold structure is skipped. If the flag is 1, then the non-manifold identification information of the vertex and the index information of the duplicate points generated by removing the non-manifold structure are decoded.
[0202] The decoding of the non-manifold identification information of vertices and the index information of duplicate points generated by removing the non-manifold structure uses a method corresponding to the encoding end. It is divided into two cases based on whether the geometric vertices and UV vertices have the same connection relationship: if the geometric vertices and UV vertices have the same connection relationship, entropy decoding is used to obtain the non-manifold identification information of a set of vertices and the index information of duplicate points generated by removing the non-manifold structure; if the geometric vertices and UV vertices have different connection relationships, the non-manifold identification information of the geometric vertices and the index information of the geometric duplicate points generated by removing the non-manifold structure, and the non-manifold identification information of the UV vertices and the index information of the UV duplicate points generated by removing the non-manifold structure are decoded separately. This information is recorded and output to the non-manifold structure recovery module.
[0203] 5) Reconstruct the manifold mesh;
[0204] Input: connection relationship of manifold mesh, geometric information of manifold mesh, attribute information of manifold mesh;
[0205] Output: manifold mesh;
[0206] The manifold mesh can be directly reconstructed by using the connection relationship, geometric information, and attribute information of the manifold mesh.
[0207] 6) Recover non-manifold structures;
[0208] Input: manifold mesh, non-manifold identifiers of vertices, index information of duplicate points generated by removing non-manifolds, and information indicating whether the geometric vertices and UV vertices in the mesh have the same connectivity relationship;
[0209] Output: Reconstructed non-manifold mesh
[0210] The recovery process for non-manifold edges and non-manifold points is the same. For example, using the index information of duplicate points generated by splitting a non-manifold as the duplicate point group index, we can first traverse all vertices in decoding order and create a hash table based on the non-manifold identifiers of the vertices. The key of the hash table is the duplicate point group index generated by splitting 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 generated by disassembling the non-manifold structure, the current vertex corresponds to the current vertex's index, that is, its index is not updated. If the current vertex is a duplicate point generated by disassembling the non-manifold structure and is the target vertex to be merged into its duplicate point group, the current vertex corresponds to the current vertex's index, that is, its index is not updated, and the duplicate point group index of the current vertex 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 generated by disassembling the non-manifold structure but is not the target vertex to be merged into its duplicate point group, the index of the target vertex to be merged into the reconstructed manifold mesh is searched in the hash table based on the duplicate point group index of the current point, so as to merge the duplicate points generated by disassembling the non-manifold structure, that is, update the current vertex index to the index of the target vertex to be merged into. Finally, update the geometric coordinate list and UV coordinate list, and update the indices of the geometric vertices and UV vertices in the connection relationship to obtain the reconstructed non-manifold mesh.
[0211] If the geometric vertices and UV vertices have the same connection relationship, the above process is executed once to obtain a non-manifold mesh with the same connection relationship between the reconstructed geometric vertices and UV vertices; if the geometric vertices and UV vertices have different connection relationships, the geometric vertices and UV vertices are traversed in the decoding order of the geometric vertices and UV vertices respectively, and a geometric hash table and a UV hash table are established according to the non-manifold identifiers of the geometric vertices and UV vertices respectively, and the index information of the geometric duplicate points generated by splitting the non-manifold and the index of the geometric target vertex to be merged in the reconstructed manifold mesh, the index information of the UV duplicate points generated by splitting the non-manifold and the index of the UV target vertex to be merged in the reconstructed manifold mesh are stored respectively, and the above judgment and merging operations of the duplicate points generated by splitting the non-manifold are performed respectively, and the geometric coordinate list and the UV coordinate list are updated, and the geometric vertex index and the UV vertex index in the connection relationship are updated to obtain a non-manifold mesh with different connection relationships between the reconstructed geometric vertices and UV vertices.
[0212] In the decoding method of the embodiment of the present application, the decoding end decodes the first code stream to obtain first indication information, second indication information and one or two groups of non-manifold structure information, each group of the non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; based on the first indication information, the second indication information and the one or two groups of non-manifold structure information, the non-manifold structure in the original mesh is restored. Through the above scheme, the decoding end can decode and obtain the non-manifold identification information of the geometric vertices and attribute vertices in the manifold mesh and the index information of the target repeated vertices. Based on the non-manifold identification information of the geometric vertices and attribute vertices and the index information of the target repeated vertices, the geometric repeated vertices and attribute repeated vertices generated by splitting the non-manifold structure can be merged to restore the non-manifold structure of the original mesh, thereby being able to fully realize lossless decoding of the original mesh containing the non-manifold structure.
[0213] The encoding method provided in the embodiment of the present application can be executed by an encoding device. In the embodiment of the present application, the encoding device provided in the embodiment of the present application is described by taking the encoding method executed by the encoding device as an example.
[0214] As shown in FIG11 , an embodiment of the present application further provides an encoding device 1100, including:
[0215] A first determining module 1101 is configured to determine first indication information, where the first indication information is used to indicate whether geometric vertices and attribute vertices in the original mesh have the same connection relationship;
[0216] The second determination module 1102 is used to determine one or two groups of non-manifold structure information based on the first indication information, each group of the non-manifold structure information including: non-manifold identification information of the target vertex and index information of the target repeated 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 is split, and the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split; the target repeated vertex is the repeated vertex generated when the encoder performs split processing on the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices;
[0217] The first acquisition module 1103 is configured to encode the first indication information and the one or two sets of non-manifold structure information to obtain a first code stream.
[0218] Optionally, the first code stream further includes: encoding information of second indication information, where the second indication information is used to indicate whether a non-manifold structure exists in the original grid.
[0219] Optionally, the second determining module is configured to perform at least one of the following:
[0220] In a case where the first indication information indicates that the geometric vertices and the attribute vertices in the original mesh have the same connection relationship, determining a set of non-manifold structure information, wherein the geometric vertices and the attribute vertices in the manifold mesh share non-manifold identification information in the set of non-manifold structure information, and the geometric duplicate vertices and the attribute duplicate vertices in the manifold mesh share index information in the set of non-manifold structure information; or
[0221] When the first indication 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, wherein the geometric vertices and geometric repeated vertices in the manifold mesh correspond to one set of non-manifold structure information in the two sets of non-manifold structure information, and the attribute vertices and attribute repeated vertices in the manifold mesh correspond to the other set of non-manifold structure information in the two sets of non-manifold structure information.
[0222] Optionally, the device of the embodiment of the present application further includes:
[0223] A second acquisition module is configured to encode the manifold grid to obtain a second bitstream, wherein the manifold grid is obtained by the encoder end splitting the non-manifold structure in the original grid;
[0224] The third acquisition module is configured to obtain a total code stream of the original grid according to the first code stream and the second code stream.
[0225] Optionally, the second acquisition module is used to encode the target information of the manifold grid to obtain the second code stream;
[0226] The target information includes connection relationship, geometric information and attribute information.
[0227] In the apparatus of an embodiment of the present application, an encoding end determines first indication information, where the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; the encoding end determines one or two groups of non-manifold structure information based on the first indication information, where each group of non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the target vertex is a vertex generated when the non-manifold structure is split; the target repeated vertex is a repeated vertex generated when the non-manifold structure in the original mesh is split, and the target repeated vertex includes a geometric repeated vertex and an attribute repeated vertex; the first indication information and the one or two groups of non-manifold structure information are encoded to obtain a first code stream. Through the above scheme, the decoding end can decode and obtain the non-manifold identification information of the geometric vertices and attribute vertices in the manifold mesh and the index information of the target repeated vertices. Based on the non-manifold identification information of the geometric vertices and attribute vertices and the index information of the target repeated vertices, the geometric repeated vertices and attribute repeated vertices generated by splitting the non-manifold structure can be merged to restore the non-manifold structure of the original mesh, thereby fully realizing lossless decoding of the original mesh containing the non-manifold structure.
[0228] As shown in FIG12 , the embodiment of the present application further provides a decoding device 1200, including:
[0229] A fourth acquisition module 1201 is configured to decode the first bitstream to obtain decoding information, the decoding information including first indication information and one or two groups of non-manifold structure information, each group of non-manifold structure information including: non-manifold identification information of a target vertex and index information of a target repeated vertex; the target vertex includes geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained by splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split, the target repeated vertex is a repeated vertex generated when the encoder splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices, and the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship;
[0230] The restoration module 1202 is configured to restore the non-manifold structure in the original grid according to the decoded information.
[0231] Optionally, the decoding information further includes second indication information, where the second indication information is used to indicate whether a non-manifold structure exists in the original grid;
[0232] The recovery module is used to:
[0233] In a case where the second indication information indicates that a non-manifold structure exists in the original mesh, the non-manifold structure in the original mesh is restored according to the first indication information and the one or two sets of non-manifold structure information.
[0234] Optionally, the fourth acquisition module includes:
[0235] A first acquisition submodule is used to decode the first code stream to obtain first indication information and second indication information;
[0236] a second acquisition submodule, configured to, when the first indication information indicates that the geometric vertices and the attribute vertices in the original mesh have the same connection relationship, decode from the first bitstream to obtain a set of non-manifold structure information, wherein the geometric vertices and the attribute vertices in the manifold mesh share non-manifold identification information in the set of non-manifold structure information, and the geometric repeated vertices and the attribute repeated vertices in the manifold mesh share index information in the set of non-manifold structure information; or
[0237] A third acquisition submodule is used to decode from the first code stream to obtain two sets of non-manifold structure information when the first indication information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, wherein the geometric vertices and geometric repeated vertices in the manifold mesh correspond to one set of non-manifold structure information in the two sets of non-manifold structure information, and the attribute vertices and attribute repeated vertices in the manifold mesh correspond to the other set of non-manifold structure information in the two sets of non-manifold structure information.
[0238] Optionally, the recovery module includes:
[0239] a fourth acquisition submodule, configured to decode the second code stream to obtain target information of the manifold mesh, wherein the target information includes connection relationship, geometric information, and attribute information;
[0240] A reconstruction submodule, configured to reconstruct a manifold grid according to target information of the manifold grid;
[0241] A restoration submodule is configured to restore the non-manifold structure in the original mesh according to the reconstructed manifold mesh, the first indication information, and the one or two sets of non-manifold structure information.
[0242] The device of the embodiment of the present application decodes the first code stream to obtain first indication information, second indication information and one or two groups of non-manifold structure information, each group of non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; based on the first indication information, the second indication information and the one or two groups of non-manifold structure information, the non-manifold structure in the original mesh is restored. Through the above scheme, the decoding end can decode and obtain the non-manifold identification information of the geometric vertices and attribute vertices in the manifold mesh and the index information of the target repeated vertices. Based on the non-manifold identification information of the geometric vertices and attribute vertices and the index information of the target repeated vertices, the geometric repeated vertices and attribute repeated vertices generated by splitting the non-manifold structure can be merged to restore the non-manifold structure of the original mesh, thereby being able to fully realize lossless decoding of the original mesh containing the non-manifold structure.
[0243] The encoding device or decoding device in the embodiments of the present application can be an electronic device, such as an electronic device with an operating system, or a component in an electronic device, such as an integrated circuit or chip. The electronic device can be a terminal or other device other than a terminal. Exemplary other devices can be servers, network attached storage (NAS), etc., which are not specifically limited in the embodiments of the present application.
[0244] The encoding device provided in the embodiment of the present application can implement the various processes implemented in the method embodiment of Figure 2 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
[0245] The decoding device provided in the embodiment of the present application can implement the various processes implemented in the method embodiment of Figure 9 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
[0246] Optionally, as shown in Figure 13, an embodiment of the present application also provides an electronic device 1300, including a processor 1301 and a memory 1302, and the memory 1302 stores a program or instruction that can be run on the processor 1301. When the program or instruction is executed by the processor 1301, the various steps of the above-mentioned encoding method or decoding method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.
[0247] An embodiment of the present application also provides an encoding device, including a processor and a communication interface, the processor being configured to determine first indication information, the first indication information being configured to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; determining one or two groups of non-manifold structure information based on the first indication information, each group of the non-manifold structure information comprising: non-manifold identification information of a target vertex and index information of a target repeated vertex; the target vertex comprising a geometric vertex and an attribute vertex in a manifold mesh, the manifold mesh being obtained after splitting the non-manifold structure in the original mesh, the non-manifold identification information being configured to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split; the target repeated vertex is a repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertices comprise geometric repeated vertices and attribute repeated vertices; encoding the first indication information and the one or two groups of non-manifold structure information to obtain a first code stream.
[0248] An embodiment of the present application also provides a decoding device, including a processor and a communication interface, the processor being used to decode a first code stream to obtain decoding information, the decoding information including first indication information and one or two groups of non-manifold structure information, each group of the non-manifold structure information including: non-manifold identification information of a target vertex and index information of a target repeated vertex; the target vertex includes geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split, the target repeated vertex is a repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices, the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; based on the decoding information, the non-manifold structure in the original mesh is restored.
[0249] Specifically, Figure 14 is a schematic diagram of the hardware structure of an encoding device or decoding device that implements an embodiment of the present application.
[0250] The encoding device or decoding device includes but is not limited to: a radio frequency unit 1401, a network module 1402, an audio output unit 1403, an input unit 1404, a sensor 1405, a display unit 1406, a user input unit 1407, an interface unit 1408, a memory 1409 and at least some of the components of the processor 1410.
[0251] Those skilled in the art will appreciate that the encoding device or decoding device may further include a power supply (such as a battery) to power each component. The power supply may be logically connected to the processor 1410 via a power management system, thereby implementing functions such as charging, discharging, and power consumption management through the power management system. The device structure shown in FIG14 does not constitute a limitation of the device. The device may include more or fewer components than shown, or combine certain components, or have different component arrangements, which will not be described in detail here.
[0252] It should be understood that in an embodiment of the present application, the input unit 1404 may include a graphics processing unit (GPU) 14041 and a microphone 14042, and the graphics processor 14041 processes the image data of a static picture or video obtained by an image capture device (such as a camera) in a video capture mode or an image capture mode. The display unit 1406 may include a display panel 14061, and the display panel 14061 may be configured in the form of a liquid crystal display, an organic light emitting diode, etc. The user input unit 1407 includes a touch panel 14071 and at least one of other input devices 14072. The touch panel 14071 is also called a touch screen. The touch panel 14071 may include two parts: a touch detection device and a touch controller. Other input devices 14072 may include, but are not limited to, a physical keyboard, function keys (such as volume control keys, switch keys, etc.), a trackball, a mouse, and an operating stick, which will not be repeated here.
[0253] In the embodiment of the present application, after receiving downlink data from a network-side device, the radio frequency unit 1401 may transmit the data to the processor 1410 for processing. Furthermore, the radio frequency unit 1401 may send uplink data to the network-side device. Typically, the radio frequency unit 1401 includes, but is not limited to, an antenna, an amplifier, a transceiver, a coupler, a low-noise amplifier, a duplexer, and the like.
[0254] The memory 1409 can be used to store software programs or instructions and various data. The memory 1409 may mainly include a first storage area for storing programs or instructions and a second storage area for storing data, wherein the first storage area may store an operating system, applications or instructions required for at least one function (such as a sound playback function, an image playback function, etc.). In addition, the memory 1409 may include a volatile memory or a non-volatile memory, or the memory 1409 may include both volatile and non-volatile memory. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. Volatile memory can be random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The memory 1409 in the embodiment of the present application includes but is not limited to these and any other suitable types of memory.
[0255] Processor 1410 may include one or more processing units. Optionally, processor 1410 integrates an application processor and a modem processor. The application processor primarily handles operations related to the operating system, user interface, and application programs, while the modem processor primarily processes wireless communication signals, such as a baseband processor. It is understood that the modem processor may not be integrated into processor 1410.
[0256] Optionally, when the device is an encoding device:
[0257] Processor 1410 is configured to determine first indication information, where the first indication information is used to indicate whether geometric vertices and attribute vertices in the original mesh have the same connection relationship;
[0258] According to the first indication information, one or two groups of non-manifold structure information are determined, each group of the non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split; the target repeated vertex is the repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices;
[0259] The first indication information and the one or two groups of non-manifold structure information are encoded to obtain a first code stream.
[0260] Optionally, the first code stream further includes: encoding information of second indication information, where the second indication information is used to indicate whether a non-manifold structure exists in the original grid.
[0261] Optionally, the processor 1410 is further configured to:
[0262] In a case where the first indication information indicates that the geometric vertices and the attribute vertices in the original mesh have the same connection relationship, determining a set of non-manifold structure information, wherein the geometric vertices and the attribute vertices in the manifold mesh share non-manifold identification information in the set of non-manifold structure information, and the geometric duplicate vertices and the attribute duplicate vertices in the manifold mesh share index information in the set of non-manifold structure information; or
[0263] When the first indication 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, wherein the geometric vertices and geometric repeated vertices in the manifold mesh correspond to one set of non-manifold structure information in the two sets of non-manifold structure information, and the attribute vertices and attribute repeated vertices in the manifold mesh correspond to the other set of non-manifold structure information in the two sets of non-manifold structure information.
[0264] Optionally, the processor 1410 is further configured to:
[0265] Encoding the manifold grid to obtain a second bitstream, wherein the manifold grid is obtained by the encoder end splitting the non-manifold structure in the original grid;
[0266] A total code stream of the original grid is obtained according to the first code stream and the second code stream.
[0267] Optionally, the processor 1410 is further configured to: encode target information of the manifold grid to obtain the second code stream; wherein the target information includes connection relationship, geometric information, and attribute information.
[0268] Optionally, when the above-mentioned device is a decoding device:
[0269] Processor 1410 is configured to decode a first bitstream to obtain decoding information, the decoding information including first indication information and one or two sets of non-manifold structure information, each set of non-manifold structure information including: non-manifold identification information of a target vertex and index information of a target duplicate vertex; the target vertex includes geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained by splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the target vertex is a duplicate vertex generated when the non-manifold structure is split, the target duplicate vertex is a duplicate vertex generated when the encoder splits the non-manifold structure in the original mesh, and the target duplicate vertices include geometric duplicate vertices and attribute duplicate vertices, and the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship;
[0270] The non-manifold structure in the original grid is restored according to the decoded information.
[0271] Optionally, the decoding information further includes second indication information, where the second indication information is used to indicate whether a non-manifold structure exists in the original grid;
[0272] Optionally, the processor 1410 is further configured to:
[0273] In a case where the second indication information indicates that a non-manifold structure exists in the original mesh, the non-manifold structure in the original mesh is restored according to the first indication information and the one or two sets of non-manifold structure information.
[0274] Optionally, the processor 1410 is further configured to:
[0275] The decoding end decodes the first code stream to obtain first indication information and second indication information;
[0276] In a case where the first indication information indicates that the geometric vertices and the attribute vertices in the original mesh have the same connection relationship, decoding from the first code stream to obtain a set of non-manifold structure information, wherein the geometric vertices and the attribute vertices in the manifold mesh share non-manifold identification information in the set of non-manifold structure information, and the geometric repeated vertices and the attribute repeated vertices in the manifold mesh share index information in the set of non-manifold structure information; or
[0277] When the first indication 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 decoded from the first code stream, wherein the geometric vertices and geometric repeated vertices in the manifold mesh correspond to one set of non-manifold structure information in the two sets of non-manifold structure information, and the attribute vertices and attribute repeated vertices in the manifold mesh correspond to the other set of non-manifold structure information in the two sets of non-manifold structure information.
[0278] Optionally, the processor 1410 is further configured to:
[0279] Decoding the second code stream to obtain target information of the manifold mesh, wherein the target information includes connection relationship, geometric information, and attribute information;
[0280] Reconstructing a manifold grid according to target information of the manifold grid;
[0281] The non-manifold structure in the original mesh is restored according to the reconstructed manifold mesh, the first indication information and the one or two sets of non-manifold structure information.
[0282] In an embodiment of the present application, first indication information is determined, where the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; the encoding end determines one or two groups of non-manifold structure information based on the first indication information, where each group of non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, and the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the target vertex is a vertex generated when the non-manifold structure is split; the target repeated vertex is a repeated vertex generated when the non-manifold structure in the original mesh is split, and the target repeated vertex includes a geometric repeated vertex and an attribute repeated vertex; the first indication information and the one or two groups of non-manifold structure information are encoded to obtain a first code stream. Through the above scheme, the decoding end can decode and obtain the non-manifold identification information of the geometric vertices and attribute vertices in the manifold mesh and the index information of the target repeated vertices. Based on the non-manifold identification information of the geometric vertices and attribute vertices and the index information of the target repeated vertices, the geometric repeated vertices and attribute repeated vertices generated by splitting the non-manifold structure can be merged to restore the non-manifold structure of the original mesh, thereby fully realizing lossless decoding of the original mesh containing the non-manifold structure.
[0283] An embodiment of the present application also provides a readable storage medium, on which a program or instruction is stored. When the program or instruction is executed by a processor, the various processes of the above-mentioned encoding method or decoding method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.
[0284] The processor is the processor in the device 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.
[0285] An embodiment of the present application further provides a chip, which includes a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the various processes of the above-mentioned encoding method or decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
[0286] It should be understood that the chip mentioned in the embodiments of the present application can also be called a system-level chip, a system chip, a chip system or a system-on-chip chip, etc.
[0287] An embodiment of the present application further provides a computer program / program product, which is stored in a storage medium. The computer program / program product is executed by at least one processor to implement the various processes of the above-mentioned encoding method or decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
[0288] An embodiment of the present application further provides a coding and decoding system, including: a coding device or a decoding device, wherein the coding device can be used to execute the steps of the coding method described above, and the decoding device can be used to execute the steps of the decoding method described above.
[0289] It should be noted that, in this article, the terms "comprise", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the statement "comprises a ..." does not exclude the presence of other identical elements in the process, method, article or device comprising the element. In addition, it should be noted that the scope of the methods and devices in the embodiments of the present application is not limited to performing functions in the order shown or discussed, and may also include performing functions in a substantially simultaneous manner or in the opposite order according to the functions involved. For example, the described method may be performed in an order different from that described, and various steps may also be added, omitted, or combined. In addition, the features described with reference to certain examples may be combined in other examples.
[0290] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus the necessary general hardware platform, and of course can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present application, or the part that contributes to the relevant technology, can be embodied in the form of a computer software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), including a number of instructions for enabling a terminal (which can be a mobile phone, computer, server, air conditioner, or network equipment, etc.) to execute the methods described in each embodiment of the present application.
[0291] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of this application, ordinary technicians in this field can also make many forms without departing from the purpose of this application and the scope of protection of the claims, all of which are within the protection of this application.
Claims
1. A coding method, comprising: The encoder determines first indication information, where the first indication information is used to indicate whether the geometric vertices and the attribute vertices in the original mesh have the same connection relationship; The encoding end determines one or two groups of non-manifold structure information according to the first indication information, each group of the non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split; the target repeated vertex is the repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices; The encoding end encodes the first indication information and the one or two groups 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: encoding information of second indication information, where the second indication information is used to indicate whether there is a non-manifold structure in the original grid.
3. The method according to claim 1 or 2, wherein: The encoder determines, according to the first indication information, one or two sets of non-manifold structure information, including at least one of the following: In a case where the first indication information indicates that the geometric vertices and the attribute vertices in the original mesh have the same connection relationship, the encoding end determines a set of non-manifold structure information, wherein the geometric vertices and the attribute vertices in the manifold mesh share non-manifold identification information in the set of non-manifold structure information, and the geometric repeated vertices and the attribute repeated vertices in the manifold mesh share index information in the set of non-manifold structure information; or, When the first indication information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, the encoding end determines two sets of non-manifold structure information, wherein the geometric vertices and geometric repeated vertices in the manifold mesh correspond to one set of non-manifold structure information in the two sets of non-manifold structure information, and the attribute vertices and attribute repeated vertices in the manifold mesh correspond to the other set of non-manifold structure information in the two sets of non-manifold structure information.
4. The method according to any one of claims 1 to 3, wherein: The method further comprises: The encoding end encodes the manifold grid to obtain a second bitstream, wherein the manifold grid is obtained after the encoding end performs a splitting process on the non-manifold structure in the original grid; The encoding end obtains a total bitstream of the original grid according to the first bitstream and the second bitstream.
5. The method according to claim 4, wherein: The encoding end encodes the manifold grid to obtain a second code stream, including: The encoding end encodes the target information of the manifold grid to obtain the second code stream; The target information includes connection relationship, geometric information and attribute information.
6. A decoding method, comprising: The decoding end decodes the first code stream to obtain decoding information, wherein the decoding information includes the first indication information and a One or two groups of non-manifold structure information, each group of the non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes geometric vertices and attribute vertices in a manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split, the target repeated vertex is a repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertex includes geometric repeated vertices and attribute repeated vertices, and the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; The decoding end restores the non-manifold structure in the original grid according to the decoding information.
7. The method according to claim 6, wherein: The decoded information further includes second indication information, where the second indication information is used to indicate whether there is a non-manifold structure in the original grid; The decoding end restores the non-manifold structure in the original grid according to the decoded information, including: When the second indication information indicates that a non-manifold structure exists in the original mesh, the non-manifold structure in the original mesh is restored according to the first indication information and the one or two sets of non-manifold structure information.
8. The method according to claim 6 or 7, wherein: The decoding end decodes the first code stream to obtain decoding information, including: The decoding end decodes the first code stream to obtain first indication information and second indication information; In the case where the first indication information indicates that the geometric vertices and the attribute vertices in the original mesh have the same connection relationship, a set of non-manifold structure information is decoded from the first code stream, wherein the geometric vertices and the attribute vertices in the manifold mesh share non-manifold identification information in the set of non-manifold structure information, and the geometric repeated vertices and the attribute repeated vertices in the manifold mesh share index information in the set of non-manifold structure information; or, When the first indication 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 decoded from the first code stream, wherein the geometric vertices and geometric repeated vertices in the manifold mesh correspond to one set of non-manifold structure information in the two sets of non-manifold structure information, and the attribute vertices and attribute repeated vertices in the manifold mesh correspond to the other set of non-manifold structure information in the two sets of non-manifold structure information.
9. The method according to claim 7, wherein: The decoding end restores the non-manifold structure in the original grid according to the first indication information and the one or two sets of non-manifold structure information, including: The decoding end decodes the second code stream to obtain target information of the manifold grid, wherein the target information includes connection relationship, geometric information and attribute information; Reconstructing a manifold grid according to target information of the manifold grid; The non-manifold structure in the original mesh is restored according to the reconstructed manifold mesh, the first indication information and the one or two sets of non-manifold structure information.
10. An encoding device, comprising: A first determination module, used to determine first indication information, where the first indication information is used to indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; The second determining module is used to determine one or two groups of non-manifold structure information according to the first indication information, each group The non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes the geometric vertex and the attribute vertex in the manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split; the target repeated vertex is a repeated vertex generated when the encoder splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices; The first acquisition module is used to encode the first indication information and the one or two groups of non-manifold structure information to obtain a first code stream.
11. The device according to claim 10, wherein: The first code stream further includes: encoding information of second indication information, where the second indication information is used to indicate whether there is a non-manifold structure in the original grid.
12. The device according to claim 10 or 11, wherein: The second determining module is configured to perform at least one of the following: In the case where the first indication information indicates that the geometric vertices and the attribute vertices in the original mesh have the same connection relationship, determining a set of non-manifold structure information, wherein the geometric vertices and the attribute vertices in the manifold mesh share non-manifold identification information in the set of non-manifold structure information, and the geometric repeated vertices and the attribute repeated vertices in the manifold mesh share index information in the set of non-manifold structure information; or, When the first indication 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, wherein the geometric vertices and geometric repeated vertices in the manifold mesh correspond to one set of non-manifold structure information in the two sets of non-manifold structure information, and the attribute vertices and attribute repeated vertices in the manifold mesh correspond to the other set of non-manifold structure information in the two sets of non-manifold structure information.
13. The device according to any one of claims 10 to 12, wherein: Also includes: A second acquisition module is used to encode the manifold grid to obtain a second bit stream, wherein the manifold grid is obtained after the encoder performs a splitting process on the non-manifold structure in the original grid; The third acquisition module is used to obtain the total code stream of the original grid according to the first code stream and the second code stream.
14. The device according to claim 13, wherein: The second acquisition module is used to encode the target information of the manifold grid to obtain the second code stream; The target information includes connection relationship, geometric information and attribute information.
15. A decoding device, comprising: A fourth acquisition module is used to decode the first code stream to obtain decoding information, wherein the decoding information includes first indication information and one or two groups of non-manifold structure information, each group of the non-manifold structure information includes: non-manifold identification information of the target vertex and index information of the target repeated vertex; the target vertex includes geometric vertices and attribute vertices in the manifold mesh, the manifold mesh is obtained after splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the target vertex is a repeated vertex generated when the non-manifold structure is split, the target repeated vertex is a repeated vertex generated when the encoding end splits the non-manifold structure in the original mesh, and the target repeated vertices include geometric repeated vertices and attribute repeated vertices, and the first indication information is used Indicate whether the geometric vertices and attribute vertices in the original mesh have the same connection relationship; The recovery module is used to recover the non-manifold structure in the original grid according to the decoded information.
16. The device according to claim 15, wherein: The decoded information further includes second indication information, where the second indication information is used to indicate whether there is a non-manifold structure in the original grid; The recovery module is used to restore the non-manifold structure in the original mesh according to the first indication information and the one or two groups of non-manifold structure information when the second indication information indicates that the non-manifold structure exists in the original mesh.
17. The device according to claim 15 or 16, wherein: The fourth acquisition module includes: A first acquisition submodule, used for decoding the first code stream to obtain first indication information and second indication information; a second acquisition submodule, configured to, when the first indication information indicates that the geometric vertices and the attribute vertices in the original mesh have the same connection relationship, decode from the first bitstream to obtain a set of non-manifold structure information, wherein the geometric vertices and the attribute vertices in the manifold mesh share the non-manifold identification information in the set of non-manifold structure information, and the geometric repeated vertices and the attribute repeated vertices in the manifold mesh share the index information in the set of non-manifold structure information; or, A third acquisition submodule is used to decode from the first code stream to obtain two sets of non-manifold structure information when the first indication information indicates that the geometric vertices and attribute vertices in the original mesh have different connection relationships, wherein the geometric vertices and geometric repeated vertices in the manifold mesh correspond to one set of non-manifold structure information in the two sets of non-manifold structure information, and the attribute vertices and attribute repeated vertices in the manifold mesh correspond to the other set of non-manifold structure information in the two sets of non-manifold structure information.
18. The device according to claim 16, wherein: The recovery module comprises: A fourth acquisition submodule is used to decode the second code stream to obtain target information of the manifold grid, wherein the target information includes connection relationship, geometric information and attribute information; A reconstruction submodule, used for reconstructing a manifold grid according to target information of the manifold grid; A restoration submodule is used to restore the non-manifold structure in the original mesh according to the reconstructed manifold mesh, the first indication information, the second indication information and the one or two sets of non-manifold structure information.
19. An electronic device comprising a processor and a memory, wherein the memory stores a program or instruction that can be run on the processor, and when the program or instruction is executed by the processor, the steps of the encoding method as described in any one of claims 1 to 5 are implemented, or the steps of the decoding method as described in any one of claims 6 to 9 are implemented.
20. A readable storage medium storing a program or instruction, wherein the program or instruction, when executed by a processor, implements the steps of the encoding method according to any one of claims 1 to 5, or implements the steps of the decoding method according to any one of claims 6 to 9.
Citation Information
Patent Citations
Coding method, decoding method, coding device and decoding device for three-dimensional grid data
CN104243958A
Grid coding method and device, communication equipment and readable storage medium
CN117956174A
System for estimating driver's drive intention and method thereof
KR102362101B1
Methods and apparatus for the efficient compression of non-manifold polygonal meshes
US6452596B1
3D data transmission device, 3D data transmission method, 3D data reception device, and 3D data reception method
WO2023014086A1
