Three-dimensional grid lossless coding and decoding method and coding and decoding device
The method splits 3D meshes based on geometric and attribute connections to identify non-manifold structures, enabling no-loss encoding and complete compression of meshes with diverse vertex connections, overcoming existing technology limitations.
Patent Information
- Application Number
- CN202410050856.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-12
- Publication Date
- 2025-07-15
AI Technical Summary
The existing lossless mesh coding technology cannot effectively handle the differences in geometric and attribute connection relationships when non-manifold structures exist in three-dimensional mesh, resulting in the inability to perform lossless compression coding.
By splitting the three-dimensional grid, the manifold structure grid is obtained, and the second identifier is determined based on the repeated points generated during the splitting process, the mapping relationship between the original vertex index and the repeated point group index is obtained, and the coding is combined with the consistency of the geometric and attribute connection relationships is encoded to generate the target code stream.
Lossless encoding when there is a non-manifold structure of the three-dimensional mesh, fills the gaps in the prior art, and can effectively handle the different connection relationships between geometric and attribute vertices.
Smart Images

Figure CN120321402A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of three-dimensional mesh data processing, and particularly relates to a method and device for lossless encoding and decoding of three-dimensional meshes, as well as an encoding and decoding device. Background Art
[0002] The Moving Picture Experts Group of the International Organization for Standardization ( Moving Pictures Experts Group, MPEG ) is formulating an encoding standard for three-dimensional meshes, V-DMC. In the V-DMC standard, lossless encoding is an important type of encoding method. The three-dimensional mesh compression tool based on Edgebreaker currently provided by MPEG encodes and stores the connection information, geometric information, and attribute information of the three-dimensional mesh separately. The core module, that is, the module for encoding connection information, uses the Edgebreaker algorithm. The encoding of geometric information and attribute information adopts conventional compression methods, that is, quantizing the data, predictive compression (parallelogram prediction), and entropy encoding. Since this tool adopts a connection-relationship-driven encoding method, the encoding of geometric information and attribute information will follow the encoding order of the connection information. In this way, the vertex order encoded by the connection relationship is implicitly included in the vertex order of the geometric information and / or attribute information to avoid separately transmitting the vertex order encoded by the connection relationship, thereby saving the bit overhead of this part. However, the existing lossless mesh encoding technology lacks completeness when performing lossless encoding on three-dimensional meshes. When there are non-manifold structures in the mesh and there are different connection relationship information between geometric vertices and between attribute vertices, the existing technology cannot perform lossless compression encoding on the attribute information and its connection relationship information. Summary of the Invention
[0003] In order to solve the above problems existing in the prior art, the present invention provides a method and device for lossless encoding and decoding of three-dimensional meshes, as well as an encoding and decoding device. The technical solution of the present invention is as follows:
[0004] In a first aspect, the present invention provides a method for lossless encoding of a three-dimensional mesh, including:
[0005] According to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh, splitting the three-dimensional mesh to obtain corresponding manifold structure meshes, and determining a second identifier according to the situation of duplicate points generated during the splitting process, where the second identifier is used to indicate the existence situation of non-manifold structure information in the three-dimensional mesh;
[0006] If the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are different, and the second identifier indicates the existence of non-manifold structure information in the three-dimensional mesh, obtain the mapping relationship between the original vertex indices and the corresponding duplicate point group indices in the manifold mesh generated during the splitting process, and perform three-dimensional mesh encoding based on the mapping relationship, the second identifier, and the manifold structure mesh to obtain the target bitstream corresponding to the three-dimensional mesh.
[0007] In a second aspect, the present invention further provides a three-dimensional mesh lossless encoding device, including:
[0008] A splitting module, configured to split the three-dimensional mesh according to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh, obtain the corresponding manifold structure mesh, and determine a second identifier according to the situation of duplicate points generated during the splitting process, where the second identifier is used to indicate the existence situation of non-manifold structure information in the three-dimensional mesh;
[0009] An encoding module, configured to, if the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are different, and the second identifier indicates the existence of non-manifold structure information in the three-dimensional mesh, obtain the mapping relationship between the original vertex indices and the corresponding duplicate point group indices in the manifold mesh generated during the splitting process, and perform three-dimensional mesh encoding based on the mapping relationship, the second identifier, and the manifold structure mesh to obtain the target bitstream corresponding to the three-dimensional mesh.
[0010] In a third aspect, the present invention further provides a three-dimensional mesh lossless decoding method, including:
[0011] Perform de-streaming processing on the input target bitstream to obtain a non-manifold structure information bitstream, a connection relationship sub-bitstream, a geometric information sub-bitstream, and an attribute information sub-bitstream corresponding to the target bitstream, where the target bitstream is obtained by encoding the three-dimensional mesh through any of the three-dimensional mesh lossless encoding methods provided in the first aspect;
[0012] Perform decoding processing on the input target bitstream to obtain the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh;
[0013] Perform decoding processing on the connection relationship sub-bitstream, the geometric information sub-bitstream, and the attribute information sub-bitstream respectively to obtain the geometric information of the manifold mesh corresponding to the geometric information sub-bitstream, the geometric information decoding order, the attribute information of the manifold mesh corresponding to the attribute information sub-bitstream, and the attribute information decoding order;
[0014] Decode the non-manifold structure information bitstream according to the consistency of the geometric information decoding order, the attribute information decoding order, the geometric connection relationship, and the attribute connection relationship, to obtain a second identifier corresponding to the 3D mesh. The second identifier is used to indicate whether there is non-manifold structure information in the 3D mesh. If the second identifier indicates that there is non-manifold structure information in the 3D mesh, further decode the non-manifold structure information bitstream according to the consistency of the geometric connection relationship and the attribute connection relationship, the geometric information decoding order, and / or the attribute information decoding order, to obtain the first identifier of each geometric point and / or the first identifier of each attribute point corresponding to the 3D mesh, as well as the index information of the geometric duplicate points and / or the index information of the attribute duplicate points corresponding to the corresponding 3D mesh. The first identifier is used to identify whether the corresponding point is a duplicate point generated during the splitting process;
[0015] Reconstruct the 3D mesh according to the non-manifold structure information in the 3D mesh, the connection relationship of the manifold mesh, the connection relationship decoding order, the consistency of the geometric connection relationship and the attribute connection relationship, the geometric information of the manifold mesh, the geometric information decoding order, the attribute information of the manifold mesh, and the attribute information decoding order.
[0016] In a fourth aspect, the present invention further provides a 3D mesh lossless decoding device, including:
[0017] A bitstream demultiplexing module, configured to demultiplex the input target bitstream to obtain a non-manifold structure information bitstream, a connection relationship sub-bitstream, a geometric information sub-bitstream, and an attribute information sub-bitstream corresponding to the target bitstream. The target bitstream is obtained by encoding a 3D mesh using any of the 3D mesh lossless encoding methods provided in the first aspect;
[0018] A decoding module, configured to decode the target bitstream to obtain the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the 3D mesh;
[0019] The decoding module is further configured to separately decode the connection relationship sub-bitstream, the geometric information sub-bitstream, and the attribute information sub-bitstream to obtain the geometric information of the manifold mesh corresponding to the geometric information sub-bitstream, the geometric information decoding order, the attribute information of the manifold mesh corresponding to the attribute information sub-bitstream, and the attribute information decoding order;
[0020] The decoding module is further configured to decode the non-manifold structure information bitstream according to the geometric information decoding order, the attribute information decoding order, and the consistency between the geometric connection relationship and the attribute connection relationship, so as to obtain a second identifier corresponding to the three-dimensional mesh. The second identifier is used to indicate whether there is non-manifold structure information in the three-dimensional mesh. If the second identifier indicates that there is non-manifold structure information in the three-dimensional mesh, the non-manifold structure information bitstream is further decoded according to the consistency between the geometric connection relationship and the attribute connection relationship, the geometric information decoding order, and / or the attribute information decoding order, so as to obtain a first identifier of each geometric point and / or a first identifier of each attribute point corresponding to the three-dimensional mesh, and the index information of the geometric duplicate points and / or the index information of the attribute duplicate points corresponding to the corresponding three-dimensional mesh. The first identifier is used to identify whether the corresponding point is a duplicate point generated during the splitting process;
[0021] The reconstruction module is configured to reconstruct the three-dimensional mesh according to the non-manifold structure information in the three-dimensional mesh, the connection relationship of the manifold mesh, the connection relationship decoding order, the consistency between the geometric connection relationship and the attribute connection relationship, the geometric information of the manifold mesh, the geometric information decoding order, the attribute information of the manifold mesh, and the attribute information decoding order.
[0022] Advantages of the present invention:
[0023] The three-dimensional mesh lossless encoding and decoding method and encoding and decoding device provided by the present invention split the three-dimensional mesh according to the consistency between the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh, obtain the corresponding manifold structure mesh, and determine the second identifier according to the situation of the duplicate points generated during the splitting process. The second identifier is used to indicate the presence of non-manifold structure information in the three-dimensional mesh; if the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are different, and the second identifier indicates that there is non-manifold structure information in the three-dimensional mesh, the mapping relationship between the original vertex index and the corresponding duplicate point group index in the manifold mesh generated during the splitting process is obtained, and the three-dimensional mesh is encoded according to the mapping relationship, the second identifier, and the manifold structure mesh to obtain the target bitstream corresponding to the three-dimensional mesh, which can realize lossless encoding of the three-dimensional mesh when there is a non-manifold structure in the three-dimensional mesh and there are different connection relationships between geometric vertices and between attribute vertices, filling the technical gap.
[0024] The present invention will be further described in detail below with reference to the accompanying drawings and embodiments. Description of the Drawings
[0025] Figure 1 It is a schematic diagram of a mode of an EB method provided by the present invention;
[0026] Figure 2 It is a schematic diagram of using EB to encode a two-dimensional mesh provided by the present invention;
[0027] Figure 3 Schematic diagram of a lossless coding method for a three-dimensional grid provided by the present invention;
[0028] Figure 4a Schematic diagram of a non-manifold structure grid provided by the present invention;
[0029] Figure 4b Another schematic diagram of a non-manifold structure grid provided by the present invention;
[0030] Figure 5 Schematic diagram of a parallelogram prediction coding provided by the present invention;
[0031] Figure 6 Schematic diagram of UV coordinate prediction in attribute information based on three-dimensional to two-dimensional projection for prediction provided by the present invention;
[0032] Figure 7 Schematic diagram of the structure of a three-dimensional grid lossless coding device provided by the present invention;
[0033] Figure 8 Schematic diagram of the process of a lossless coding method for a three-dimensional grid provided by the present invention;
[0034] Figure 9 Schematic diagram of the structure of a three-dimensional grid lossless decoding device provided by the present invention. Detailed implementation manners
[0035] The following further describes the present invention in detail with specific embodiments, but the implementation manners of the present invention are not limited thereto.
[0036] The Edgebreaker (EB) method is a three-dimensional grid connection relationship coding method with advantages such as good compression performance, easy implementation, and the ability to give the upper limit of the compression ratio. The EB method itself only describes the compression method of three-dimensional grid connection information, and the compression of three-dimensional grids can only be achieved through geometric information compression and entropy coding, etc.
[0037] The compression efficiency of the EB coding technology for triangular meshes homeomorphic to a sphere can reach 2 bits or less per triangle. The coding algorithm uses five different modes, namely C, L, E, R, and S, which access each triangle of the grid in a depth-first order. According to the mode of each triangle, it is marked to generate a CLERS string, obtaining a compact representation of the grid connection relationship.
[0038] The five modes of the EB method are as Figure 1As shown in the figure. The EB method divides the grid into a traversed part and an untraversed part, and the boundary between the two parts is called the active boundary. During the encoding process of EB, the triangles to be traversed are accessed through the active edges on the active boundary, and which mode to use is selected according to the relationship between the active edge and the triangle it is in. The other vertex in the triangle where the active edge is located is called the third vertex. If the third vertex is not on the active boundary, then the current triangle is marked as the C mode. If the third vertex is on the active boundary and, in counterclockwise order, is the next vertex of the current active edge vertex, then the current triangle is marked as the R mode. If the third vertex is on the active boundary and, in counterclockwise order, is the previous vertex of the current active edge vertex, then the current triangle is marked as the L mode. If the third vertex is on the active boundary and, in counterclockwise order, is both the previous vertex and the next vertex of the current active edge vertex, then the current triangle is marked as the E mode. If the third vertex is on the active boundary but, in counterclockwise order, is neither the previous vertex nor the next vertex of the current active edge vertex, then the current triangle is marked as the S mode. After each triangle is marked, the active boundary is updated, and the next active edge is selected according to certain rules. After all the triangles are traversed, entropy encoding is performed on the obtained CLERS string, and higher compression efficiency can be obtained.
[0039] Figure 2 It is a schematic diagram of a method for encoding a two-dimensional grid using EB provided by the present invention. According to the encoding rules of EB, the final entropy-encoded mode codeword is CCRRSLCRSERRELCRRRCRRRE.
[0040] Since the five modes of the EB method cannot handle non-manifold grids, the grid must be converted into a manifold grid before using the EB method.
[0041] Based on this, the present invention provides a lossless encoding and decoding method for three-dimensional grids. The lossless encoding method for three-dimensional grids provided by the present invention is as Figure 3 shown, and specifically includes:
[0042] S301. According to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional grid, the three-dimensional grid is split to obtain the corresponding manifold structure grid, and the second identifier is determined according to the situation of the duplicate points generated during the splitting process.
[0043] Among them, the second identifier is used to indicate the existence situation of non-manifold structure information in the three-dimensional grid.
[0044] A manifold structure grid means that if all vertices in the grid have a neighborhood homomorphism with an open or closed fan, then the grid is a manifold grid.
[0045] A non - manifold structured mesh refers to a mesh with non - manifold edges or non - manifold points. Refer to Figure 4, where Figure 4(a) is a mesh with non - manifold edges. A non - manifold edge means an edge where more than two triangles intersect, and such an edge is a non - manifold edge. Figure 4(b) is a mesh with non - manifold points. A non - manifold point means its neighborhood is not equal to an open or closed sector.
[0046] The lossless encoding method for 3D meshes provided by the present invention is applicable not only to manifold structured meshes but also to non - manifold structured meshes. If duplicate points are generated during the splitting process of a 3D mesh, it indicates that there is non - manifold structure information in the 3D structure, which is a non - manifold structure.
[0047] For example, if geometric duplicate points are generated during the splitting process of a 3D mesh, it indicates that there is geometric non - manifold structure information in the 3D structure; if attribute duplicate points are generated during the splitting process of a 3D mesh, it indicates that there is attribute non - manifold structure information in the 3D structure. Geometric duplicate points refer to points with duplicate geometric information with existing points. Attribute duplicate points refer to points with duplicate attribute information with existing points.
[0048] In a possible implementation, there is only one second identifier. Different values of this second identifier respectively correspond to the situation where there is no non - manifold structure information in the 3D mesh, the situation where there is only geometric non - manifold structure information in the 3D mesh, the situation where there is only attribute non - manifold structure information in the 3D mesh, and the situation where there are both geometric non - manifold structure information and attribute non - manifold structure information in the 3D mesh.
[0049] In another possible implementation, there are two second identifiers, namely the geometric second identifier and the attribute second identifier. Among them, different values of the geometric second identifier correspond to the situation where there is no geometric non - manifold structure information in the 3D mesh and the situation where there is geometric non - manifold structure information in the 3D mesh; different values of the attribute second identifier correspond to the situation where there is no attribute non - manifold structure information in the 3D mesh and the situation where there is attribute non - manifold structure information in the 3D mesh.
[0050] Optionally, when there are two second identifiers, the value of any second identifier can be a set specific value, such as 0, 1. Taking the geometric second identifier as an example, when the value of the geometric second identifier is 0, it means there is no geometric non - manifold structure, and when the value of the geometric second identifier is 1, it means there is geometric non - manifold structure. When there are two second identifiers, the value of any second identifier can also directly be the number of corresponding duplicate points. Continuing with the geometric second identifier as an example, when the value of the geometric second identifier is 0, it means there are no geometric duplicate points, and correspondingly there is no geometric non - manifold structure; when the value of the geometric second identifier is N (N is a positive integer greater than or equal to 1), it means there are N geometric duplicate points, and correspondingly there is geometric non - manifold structure.
[0051] The splitting of non-manifold structures mainly includes: splitting non-manifold edges and splitting non-manifold points. The first step in splitting non-manifold edges is to find non-manifold edges.
[0052] In one possible implementation, finding non-manifold edges includes: establishing a data structure to store the triangles where each edge lies, and finding non-manifold edges by querying the number of triangles corresponding to that edge.
[0053] In one possible implementation, finding non-manifold edges includes: establishing the correspondence between corners and edges in the grid by constructing a CornerTable, and then finding non-manifold edges.
[0054] The second step in splitting non-manifold edges is to add vertices and modify the connection relationships. After finding non-manifold edges, duplicate vertices are created for the two vertices of the non-manifold edge respectively. Select a triangle t where the non-manifold edge lies, and make the third vertex in this triangle form a new triangle t' with the two newly added vertices. Replace the original triangle t with t', and iterate this process until the non-manifold edge is converted into a manifold edge.
[0055] Splitting non-manifold points first requires constructing a CornerTable to establish the correspondence between each vertex and the corners of that vertex. Two steps are performed for each vertex. The first step is to start from a certain corner of the vertex, and sequentially traverse all the corners adjacent to this corner and forming a sector. Mark the vertex and the traversed corners as traversed. If there are still vertices with un-traversed corners after performing the above process, it means that the vertex is a non-manifold point. The second step is to create a duplicate point for each non-manifold point and modify the connection relationships. Connect the un-traversed corners in the first step to the newly added duplicate point, and split the non-manifold point into two manifold vertices. Repeat this process until all vertices are converted into manifold points.
[0056] Optionally, before splitting the 3D mesh, it also includes: determining whether there are the same connection relationships between the original geometric vertices and the original attribute vertices of the 3D mesh, and encoding to represent the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the 3D mesh.
[0057] For example: An identification information can be set to represent whether there are the same connection relationships between the geometric points and the attribute points in the mesh, and there is no specific limit.
[0058] Optionally, before encoding, common preprocessing contents such as filtering duplicate points and adding virtual points can also be performed to process relevant points.
[0059] S302. If the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are different, and the second identifier indicates that there is non-manifold structure information in the three-dimensional mesh, obtain the mapping relationship between the original vertex indices and the corresponding duplicate point group indices in the manifold meshes generated during the splitting process, and perform three-dimensional mesh encoding based on the mapping relationship, the second identifier, and the manifold structure meshes to obtain the target bitstream corresponding to the three-dimensional mesh.
[0060] Optionally, if the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are different, and the second identifier indicates that there is no non-manifold structure information in the three-dimensional mesh, perform three-dimensional mesh encoding based on the second identifier and the manifold structure meshes to obtain the target bitstream corresponding to the three-dimensional mesh.
[0061] In a possible implementation manner, performing three-dimensional mesh encoding based on the mapping relationship, the second identifier, and the manifold structure meshes to obtain the target bitstream corresponding to the three-dimensional mesh includes:
[0062] 1). Encode the manifold structure meshes according to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh to obtain a connection relationship sub-bitstream, a geometric information sub-bitstream, an attribute information sub-bitstream, the encoding order of the geometric information corresponding to the geometric points in the manifold structure meshes, and the encoding order of the attribute information corresponding to the attribute points in the manifold structure meshes.
[0063] In a possible implementation manner, encoding the manifold structure meshes according to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh to obtain a connection relationship sub-bitstream, a geometric information sub-bitstream, an attribute information sub-bitstream, the geometric information encoding order in the manifold structure meshes, and the attribute information encoding order in the manifold structure meshes includes:
[0064] a). Perform connection relationship encoding on the meshes of the manifold structure according to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh to obtain a connection relationship sub-bitstream and a connection relationship encoding order.
[0065] Exemplarily, the connection relationship of a three-dimensional mesh can be encoded using the EB method. By establishing a CornerTable to represent the connection relationship of the mesh and traversing all the triangles in the mesh using the CornerTable, the CLERS pattern string of the EB is generated. The CornerTable is used to represent the relationship between the corners, vertices, and triangles in the mesh. Before constructing the CornerTable, the corners need to be numbered first. Traverse the triangles in the order of the triangular patches in the mesh, and number the corners in counterclockwise order for each triangle. Through the serial number of the corner, the serial number of the triangle where the current corner is located can be calculated. After establishing the relationship between the corners, vertices, and triangles using the CornerTable, the mesh can be traversed in a spiral order to obtain the CLERS pattern string of the EB representing the connection relationship of the mesh. When the traversal path ends but there are still triangles in the mesh that have not been traversed, randomly select an untraversed triangle and start the next traversal until all the triangles in the mesh have been traversed. Use entropy coding to compress the CLERS pattern string to obtain the final connection information bitstream.
[0066] If the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are consistent, the above encoding process can be executed once; if the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are inconsistent, since the number of corresponding geometric triangles and attribute triangles is the same and they correspond, but the corresponding geometric indexes and attribute indexes are not in a one-to-one correspondence relationship, only one CLERS pattern string needs to be constructed and encoded according to the geometric CornerTable. In this case, for the attributes, after the pattern string encoding of each connected region of the geometry is completed, traverse the corners that have been traversed, and record and encode the difference information between the attribute connection relationship and the geometric connection relationship according to the CornerTable information of the attributes, such as: texture gap information.
[0067] b), According to the encoding order of the connection relationship, encode the geometric information of the mesh of the manifold structure to obtain the geometric information sub-bitstream and the geometric information encoding order.
[0068] Multiple methods can be used to encode geometric information (such as geometric coordinates), such as the differential prediction coding algorithm, the parallelogram prediction coding algorithm, the multi-parallelogram prediction coding algorithm, etc., and there is no specific limitation.
[0069] Exemplarily, taking geometric coordinates as an example, see Figure 5 , Using parallelogram prediction coding, there are four vertices a, b, c, and d, forming the following Figure 3Two adjacent triangles in the shown grid. Among them, the geometric coordinates of points a, b, and c are encoded, and the geometric coordinates of point d are to be encoded. Then, the predicted value d' of the geometric coordinates of point d can be calculated using the vertex rule of the parallelogram. After obtaining d', calculate the difference between d' and the three-dimensional coordinates of point d and perform entropy encoding on it to obtain the bitstream of geometric information.
[0070] For triangles that cannot be predicted using the parallelogram, such as triangles at the grid boundary, the differential encoding method is used to encode geometric information. That is, use the coordinate values of adjacent encoded vertices as the predicted values of the current vertex coordinates, and calculate and predict the residuals.
[0071] c), According to the encoding order of the connection relationship, encode the attribute information of the mesh of the manifold structure to obtain the sub-bitstream of attribute information and the encoding order of attribute information.
[0072] The three-dimensional mesh attribute information generally includes texture coordinates, normal vectors, etc. Taking texture coordinates as an example. There are many encoding methods that can be adopted for texture coordinates, including differential prediction encoding, parallelogram prediction encoding, and similar triangle prediction encoding, etc., without specific limitations.
[0073] Exemplarily, the similar triangle prediction algorithm is adopted. First, select a triangle in a three-dimensional mesh as the initial triangle, directly encode the texture coordinates of the three vertices of the initial triangle without prediction, and store the sides of the initial triangle in the edge set. This set can be a data structure that meets certain access criteria. Then, take out an edge τ in the set and predict the texture coordinates of the opposite vertex of τ in the next new triangle. And put the two sides other than τ in the new triangle into the set. Denote the point to be predicted as point C, the two endpoints of edge τ are N and P respectively, the opposite vertex of the triangle adjacent to the new triangle through τ is O, and the projection point of C on τ is X. As Figure 6 shown, since the texture coordinates of points N, P, and O are all encoded prior to point C, the texture coordinates of point C can be predicted using these three points.
[0074] 2), If the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are different, and the second identifier indicates that there is non-manifold structure information in the three-dimensional mesh, then obtain the mapping relationship between the original vertex index and the corresponding repeated point group index in the manifold mesh generated during the splitting process, and determine the non-manifold structure information bitstream according to the second identifier, the geometric information encoding order, the attribute information encoding order, and the mapping relationship.
[0075] Optionally, the mapping relationship includes one or more of the first mapping relationship between the original geometric vertex index and the geometric repeated point group index in the manifold mesh generated during the splitting process, and the second mapping relationship between the original attribute vertex index and the attribute repeated point group index in the manifold mesh generated during the splitting process.
[0076] Correspondingly, according to the second identifier, the geometric information coding order, the attribute information coding order, and the mapping relationship, the non-manifold structure information bitstream is determined, including:
[0077] Encode the second identifier to obtain a first encoding result;
[0078] If the second identifier indicates that there is geometric non-manifold information in the three-dimensional mesh, then according to the first mapping relationship between the original geometric vertex indices and the geometric duplicate point group indices in the manifold mesh generated during the splitting process, determine the first identifier of each geometric point corresponding to the three-dimensional mesh, and according to the geometric information coding order, encode the first identifier of the geometric point to obtain a second encoding result. According to the first mapping relationship and the geometric information coding order, determine the index information of the geometric duplicate points, and encode the index information of the geometric duplicate points to obtain a third encoding result. The first identifier is used to identify whether the corresponding point is a duplicate point generated during the splitting process. All geometric points in the geometric duplicate point group have the same geometric information.
[0079] And / or, if the second identifier indicates that there is attribute non-manifold information in the three-dimensional mesh, then according to the second mapping relationship between the original attribute vertex indices and the attribute duplicate point group indices in the manifold mesh generated during the splitting process, determine the first identifier of each attribute point corresponding to the three-dimensional mesh, and according to the attribute information coding order, encode the first identifier of the attribute point to obtain a fourth encoding result. According to the second mapping relationship and the attribute information coding order, determine the index information of the attribute duplicate points, and encode the index information of the attribute duplicate points to obtain a fifth encoding result. All attribute points in the attribute duplicate point group have the same attribute information;
[0080] Obtain the non-manifold structure information bitstream according to the first encoding result, the second encoding result and the third encoding result, and / or the fourth encoding result and the fifth encoding result.
[0081] It should be noted that when the geometric connection relationship corresponding to the three-dimensional mesh is consistent with the attribute connection relationship, if there is a non-manifold structure, when performing the corresponding process of splitting the non-manifold structure in step S301, only a set of mapping relationships generated by this process will be recorded; when the geometric connection relationship and the attribute connection relationship are inconsistent, if there is a non-manifold structure in the geometry, the splitting process will be executed once for the geometric vertices, the CornerTable of the geometry will be constructed, the non-manifold edges and non-manifold points of the geometry will be split, and the first mapping relationship between the original geometric vertex index and the geometric duplicate point group index in the manifold mesh generated by this process will be recorded; if there is a non-manifold structure in the attributes, the splitting process will be executed once for the attribute vertices, the CornerTable of the attributes will be constructed, the non-manifold edges and non-manifold points of the attributes will be split, and the second mapping relationship between the original attribute vertex index and the attribute duplicate point group index in the manifold mesh generated by this process will be recorded.
[0082] The duplicate points generated by splitting the three-dimensional mesh include two parts: geometric duplicate points and attribute duplicate points. To identify whether the corresponding points are duplicate points generated during the splitting process, in one possible implementation, a flag bit is set for each vertex in the manifold mesh to represent the first identifier. Exemplarily, when the first identifier is 0, it means that the corresponding geometric point or the corresponding attribute point is not a duplicate point generated during the process of splitting the non-manifold, and when the first identifier is 1, it means that the corresponding geometric point or the corresponding attribute point is a duplicate point generated during the process of splitting the non-manifold.
[0083] In one possible implementation, the representation method of the geometric duplicate point index information can be the geometric target vertex index that needs to be merged when restoring the geometric non-manifold structure, or the geometric duplicate point group index. The representation method of the attribute duplicate point index information can be the attribute target vertex index that needs to be merged when restoring the attribute non-manifold structure, or the attribute duplicate point group index. There is no specific limitation.
[0084] The non-manifold structure information bitstream can be stored in the total bitstream in various ways: one is to use the non-manifold structure information bitstream as a separate sub-bitstream; another is to store the bitstream related to the geometric non-manifold structure information in the geometric information sub-bitstream and store the bitstream related to the attribute non-manifold structure information in the attribute information sub-bitstream; it is also possible to store the bitstream related to the geometric non-manifold structure information and the bitstream related to the attribute non-manifold structure information as two sub-bitstreams in the total bitstream. The storage method of the non-manifold structure information bitstream in the total bitstream is not emphasized here.
[0085] It should be noted that the present invention does not emphasize the order of encoding the three-dimensional grid connection relationship and vertex information. It can be encoding geometric information, attribute information, and non-manifold structure information while encoding the connection relationship; or it can be encoding geometric information, attribute information, and non-manifold structure information in sequence according to the encoding order of the connection relationship after encoding the connection relationship. When encoding the geometric information and attribute information of vertices, the geometric information and attribute information of duplicate points generated by splitting the three-dimensional grid can be skipped (i.e., encoded only once), or not skipped. Here, it is not emphasized whether to skip the encoding of the geometric information and attribute information of duplicate points generated by splitting the three-dimensional grid.
[0086] 3), performing a mixing process on the connection relationship sub-bitstream, geometric information sub-bitstream, attribute information sub-bitstream, and non-manifold structure information bitstream to obtain the target bitstream corresponding to the three-dimensional grid.
[0087] The lossless encoding method for a three-dimensional grid provided by the present invention, through
[0088] According to the consistency of the geometric connection relationship and attribute connection relationship corresponding to the three-dimensional grid, splitting the three-dimensional grid to obtain the corresponding manifold structure grid, and determining a second identifier according to the situation of duplicate points generated during the splitting process, where the second identifier is used to indicate the presence of non-manifold structure information in the three-dimensional grid; if the geometric connection relationship and attribute connection relationship corresponding to the three-dimensional grid are different, and the second identifier indicates the presence of non-manifold structure information in the three-dimensional grid, then obtaining the mapping relationship between the original vertex index and the corresponding duplicate point group index in the manifold grid generated during the splitting process, and performing three-dimensional grid encoding according to the mapping relationship, the second identifier, and the manifold structure grid to obtain the target bitstream corresponding to the three-dimensional grid, which can realize lossless encoding of the three-dimensional grid when there is a non-manifold structure in the three-dimensional grid and different connection relationships exist between geometric vertices and between attribute vertices, filling the technical gap.
[0089] Figure 7 is a structural schematic diagram of a three-dimensional grid lossless encoding device provided by the present invention, as Figure 7 shown, the device includes:
[0090] A splitting module 71, configured to split the three-dimensional grid according to the consistency of the geometric connection relationship and attribute connection relationship corresponding to the three-dimensional grid, obtain the corresponding manifold structure grid, and determine a second identifier according to the situation of duplicate points generated during the splitting process, where the second identifier is used to indicate the presence of non-manifold structure information in the three-dimensional grid.
[0091] An encoding module 72, configured to, if the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are different, and the second identifier indicates that there is non-manifold structure information in the three-dimensional mesh, obtain the mapping relationship between the original vertex indices and the corresponding duplicate point group indices in the manifold meshes generated during the splitting process, and perform three-dimensional mesh encoding based on the mapping relationship, the second identifier, and the manifold structure mesh to obtain the target bitstream corresponding to the three-dimensional mesh.
[0092] When decoding a three-dimensional mesh at the decoding end, if the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are consistent and non-manifold structure needs to be restored, only the geometric non-manifold structure information needs to be decoded and the information can be reused for attributes; if the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are inconsistent and non-manifold structure needs to be restored, the information required to restore the non-manifold structure for geometry and / or attributes needs to be decoded separately.
[0093] Correspondingly, the present invention further provides a method for lossless decoding of a three-dimensional mesh, as Figure 8 shown, the method specifically includes:
[0094] S801. Perform de-streaming processing on the input target bitstream to obtain a non-manifold structure information bitstream, a connection relationship sub-bitstream, a geometry information sub-bitstream, and an attribute information sub-bitstream corresponding to the target bitstream.
[0095] Wherein, the target bitstream is obtained by encoding a three-dimensional mesh through any three-dimensional mesh lossless encoding method provided by the method embodiments shown in Figure 3 .
[0096] S802. Perform decoding processing on the input target bitstream to obtain the consistency situation of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh.
[0097] S803. Perform decoding processing on the connection relationship sub-bitstream, the geometry information sub-bitstream, and the attribute information sub-bitstream respectively to obtain the geometry information of the manifold mesh corresponding to the geometry information sub-bitstream, the geometry information decoding order, the attribute information of the manifold mesh corresponding to the attribute information sub-bitstream, and the attribute information decoding order.
[0098] In a possible implementation manner, performing decoding processing on the connection relationship sub-bitstream, the geometry information sub-bitstream, and the attribute information sub-bitstream respectively includes:
[0099] a). Perform decoding processing on the connection relationship sub-bitstream to obtain the connection relationship of the manifold mesh corresponding to the connection relationship sub-bitstream and the connection relationship decoding order.
[0100] Exemplarily, first decode the connection relation sub-bitstream to obtain a pattern string. Traverse the pattern string in a certain order (forward or reverse order), and reconstruct the connection relation according to the corresponding pattern in the string. Consistent with the encoding end, if the geometric connection relation and the attribute connection relation of the three-dimensional grid are the same, only one set of connection relations needs to be reconstructed; if the geometric connection relation and the attribute connection relation of the three-dimensional grid are different, first reconstruct the connection relation of the geometric points in the current connected region according to the decoded string, and then in the decoded geometric connected region, traverse the difference information between the connection relations of the corners and the attribute points in this region and the connection relations of the geometric points, and reconstruct the connection relation of the attribute points.
[0101] b), According to the connection relation decoding order, perform decoding processing on the geometric information sub-bitstream to obtain the geometric information of the manifold grid corresponding to the geometric information sub-bitstream and the geometric information decoding order.
[0102] The decoding process of the grid geometric points is the reverse process of the encoding process: first entropy-decode the geometric coordinate prediction residuals of the geometric points, and then predict the predicted coordinates of the geometric points to be decoded according to the decoded triangles according to the parallelogram rule. Adding the predicted coordinates to the residuals entropy-decoded can obtain the coordinate positions of the geometric points 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 decoding the geometric coordinates of the triangle 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.
[0103] c), According to the connection relation decoding order, perform decoding processing on the attribute information sub-bitstream to obtain the attribute information of the manifold grid corresponding to the attribute information sub-bitstream and the attribute information decoding order.
[0104] Taking the texture coordinates in the attribute information as an example, the decoding method corresponding to the encoding end for the texture coordinates is not emphasized here. The following describes the decoding process using the similar triangle prediction algorithm.
[0105] The steps for decoding the texture coordinates are as follows:
[0106] 1. Entropy-decode the texture coordinate bitstream.
[0107] 2. Decode the texture coordinates of the three vertices of the initial triangle. Here, the predicted values are not calculated. The initial triangle directly encodes its texture coordinates instead of encoding the residuals. Store the sides of the initial triangle in the edge set.
[0108] 3. Select an edge τ from the set according to the access criterion, and decode the texture coordinates of the vertices of the new triangle formed by τ. First, use the three-dimensional to two-dimensional mapping relationship of the triangle and the same calculation method as the encoding end to calculate the predicted value of the texture coordinates of the point to be decoded. Then, add the predicted value to the residual decoded by entropy to obtain the reconstructed texture coordinates.
[0109] 4. Add the two edges of the new triangle to the edge set, and remove the edge τ at the top of the set. Take out the next edge from the set, continue to decode the texture coordinates of the vertices of the triangle adjacent to this edge, and return to step 3 until the texture coordinates of all vertices are decoded.
[0110] S804. Decode the non-manifold structure information bitstream according to the consistency of the geometric information decoding order, the attribute information decoding order, the geometric connection relationship, and the attribute connection relationship, to obtain the second identifier corresponding to the three-dimensional mesh. If the second identifier indicates the existence of a non-manifold structure in the three-dimensional mesh, further decode the non-manifold structure information bitstream according to the consistency of the geometric connection relationship, the attribute connection relationship, the geometric information decoding order, and / or the attribute information decoding order, to obtain the first identifier of each geometric point and / or each attribute point corresponding to the three-dimensional mesh, and the index information of the geometric duplicate points and / or the index information of the attribute duplicate points corresponding to the corresponding three-dimensional mesh.
[0111] Among them, the first identifier is used to identify whether the corresponding point is a duplicate point generated during the splitting process.
[0112] The second identifier is used to indicate whether there is non-manifold structure information in the three-dimensional mesh.
[0113] In a possible implementation manner, decoding the non-manifold structure information bitstream includes:
[0114] If the second identifier indicates the existence of geometric non-manifold information in the three-dimensional mesh, further decode the non-manifold structure information bitstream according to the consistency of the geometric information decoding order, the geometric connection relationship, and the attribute connection relationship, to obtain the first identifier of the geometric points corresponding to the three-dimensional mesh, the index information of the geometric duplicate points corresponding to the three-dimensional mesh, and the first identifier is used to identify whether the corresponding point is a duplicate point generated during the splitting process;
[0115] and / or,
[0116] If the second identifier indicates the existence of attribute non-manifold information in the three-dimensional mesh, further decode the non-manifold structure information bitstream according to the consistency of the attribute information decoding order, the geometric connection relationship, and the attribute connection relationship, to obtain the first identifier of the attribute points corresponding to the three-dimensional mesh, the index information of the attribute duplicate points corresponding to the three-dimensional mesh.
[0117] S805. Reconstruct the three-dimensional mesh based on the non-manifold structure information in the three-dimensional mesh, the connection relationship of the manifold mesh, the decoding order of the connection relationship, the consistency of the geometric connection relationship and the attribute connection relationship, the geometric information of the manifold mesh, the decoding order of the geometric information, the attribute information of the manifold mesh and the decoding order of the attribute information.
[0118] In one possible implementation, the three-dimensional mesh is reconstructed based on the non-manifold structural information in the three-dimensional mesh, the connection relationship of the manifold mesh, the decoding order of the connection relationship, the consistency of the geometric connection relationship and the attribute connection relationship, the geometric information of the manifold mesh, the decoding order of the geometric information, the attribute information of the manifold mesh and the decoding order of the attribute information, including: reconstructing the manifold mesh corresponding to the three-dimensional mesh based on the connection relationship of the manifold mesh, the geometric information of the manifold mesh, and the attribute information of the manifold mesh; reconstructing the three-dimensional network based on the manifold mesh, the consistency of the geometric connection relationship and the attribute connection relationship, and the non-manifold structural information in the three-dimensional mesh.
[0119] Specifically, the recovery process of non-manifold edges and non-manifold points is the same. Taking the duplicate point index information generated by splitting the three-dimensional mesh as the duplicate point group index as an example, points with the same vertex information (geometric information and / or attribute information) belong to the same duplicate point group. First, all vertices can be traversed in the decoding order of the vertices (geometric points and / or attribute points), and a hash table is established based on the first identifier of the vertex. The key of the hash table is the duplicate point group index generated by splitting the three-dimensional mesh, and the value is the index of the target vertex to be merged. If the current vertex is not a duplicate point generated by splitting the 3D mesh, the current vertex corresponds to the index of the current vertex, that is, its index is not updated; if the current vertex is a duplicate point generated by splitting the 3D mesh and is the target vertex to be merged into the duplicate point group, the current vertex corresponds to the index of the current vertex, 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 splitting the 3D mesh, but is not the target vertex to be merged into the duplicate point group, the index of the target vertex to be merged into the reconstructed manifold mesh is searched in the hash table according to the duplicate point group index of the current point, so as to merge the duplicate points generated by splitting the 3D mesh, that is, update the index of the current vertex to the index of the target vertex to be merged into. Finally, update the geometric coordinate list and attribute coordinate list, and update the indexes of the geometric vertices and attribute vertices in the connection relationship to obtain the reconstructed non-manifold mesh.
[0120] If the geometric connection relationship and the attribute connection relationship of the three-dimensional mesh are consistent, perform the above process once to obtain a non-manifold mesh in which the reconstructed geometric points and attribute points have the same connection relationship; if the geometric connection relationship and the attribute connection relationship of the three-dimensional mesh are inconsistent, and if there is geometric non-manifold structure information, traverse the geometric points in the decoding order of the geometric points, and establish a geometric hash table based on the first identifier of the geometric points to store the index information of the geometric duplicate points generated by splitting the three-dimensional mesh and the index of the geometric target vertex to be merged into in the reconstructed manifold mesh. Perform the above operations of judging and merging the duplicate points generated by splitting the three-dimensional mesh respectively, and update the geometric coordinate list and the geometric vertex index in the connection relationship. Similarly, if there is attribute non-manifold structure information, traverse the attribute points in the decoding order of the attribute points, and establish an attribute hash table based on the first identifier of the attribute points to store the index information of the attribute duplicate points generated by splitting the three-dimensional mesh and the index of the attribute target vertex to be merged into in the reconstructed manifold mesh. Perform the above operations of judging and merging the duplicate points generated by splitting the three-dimensional mesh, and update the attribute coordinate list and the attribute vertex index in the connection relationship. Finally, a non-manifold mesh in which the reconstructed geometric points and attribute points have different connection relationships is obtained.
[0121] Figure 9 The structural schematic diagram of a three-dimensional mesh lossless decoding device provided by the present invention is as Figure 9 shown. The device includes:
[0122] A de-streaming module 91, configured to perform de-streaming processing on the input target bitstream to obtain a non-manifold structure information bitstream, a connection relationship sub-bitstream, a geometric information sub-bitstream, and an attribute information sub-bitstream corresponding to the target bitstream. The target bitstream is obtained by Figure 3 encoding a three-dimensional mesh by using any three-dimensional mesh lossless encoding method provided by the method embodiments shown.
[0123] A decoding module 92, configured to perform decoding processing on the target bitstream to obtain the consistency situation of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh.
[0124] The decoding module 92 is further configured to perform decoding processing on the connection relationship sub-bitstream, the geometric information sub-bitstream, and the attribute information sub-bitstream respectively to obtain the geometric information of the manifold mesh corresponding to the geometric information sub-bitstream, the geometric information decoding order, the attribute information of the manifold mesh corresponding to the attribute information sub-bitstream, and the attribute information decoding order.
[0125] The decoding module 92 is further configured to perform decoding processing on the non-manifold structure information bitstream according to the decoding order of geometric information, the decoding order of attribute information, and the consistency between the geometric connection relationship and the attribute connection relationship, so as to obtain a second identifier corresponding to the 3D mesh. The second identifier is used to indicate whether there is non-manifold structure information in the 3D mesh. If the second identifier indicates that there is non-manifold structure information in the 3D mesh, further decoding processing is performed on the non-manifold structure information bitstream according to the consistency between the geometric connection relationship and the attribute connection relationship, the decoding order of geometric information and / or the decoding order of attribute information, so as to obtain the first identifier of each geometric point and / or the first identifier of each attribute point corresponding to the 3D mesh, as well as the index information of geometric duplicate points and / or the index information of attribute duplicate points corresponding to the corresponding 3D mesh. The first identifier is used to identify whether the corresponding point is a duplicate point generated during the splitting process.
[0126] The reconstruction module 93 is configured to reconstruct the 3D mesh according to the non-manifold structure information in the 3D mesh, the connection relationship of the manifold mesh, the connection relationship decoding order, the consistency between the geometric connection relationship and the attribute connection relationship, the geometric information of the manifold mesh, the geometric information decoding order, the attribute information of the manifold mesh, and the attribute information decoding order.
[0127] Furthermore, for indicating whether to restore the non-manifold structure by adding identification marks in the bitstream, the present invention provides two feasible syntax schemes. The present invention proposes corresponding syntax and semantics in the standard text. The relevant syntax structure needs to have indication information indicating whether the attribute and the geometry have different connection relationships, indication information indicating whether to restore the non-manifold structure, and non-manifold structure information. The present invention proposes two design implementation schemes based on the syntax structure of the V-DMC standard being developed by MPEG.
[0128] Scheme 1: A scheme based on the information representing the method of restoring the non-manifold structure
[0129] 1) Syntax and semantics related to geometric information
[0130] Table 1 Geometric coding parameters of the 3D mesh
[0131]
[0132] mesh_position_deduplicate_method represents the method of restoring the non-manifold structure.
[0133] As shown in the following table, when the value is 0, it indicates not to restore the non-manifold structure; when the value is greater than or equal to 1, it indicates that the non-manifold structure needs to be restored. Among them, when the value is 1, it indicates using the default method of restoring the non-manifold structure; when the value is greater than 1, it is an interface reserved for other possible methods.
[0134] Table 2 Meanings of mesh_position_deduplicate_method parameters
[0135]
[0136]
[0137] Table 3 3D mesh geometric information
[0138]
[0139] Table 4 3D mesh geometric non-manifold structure information
[0140]
[0141]
[0142] The value of mesh_position_deduplicate_count_minus1 plus 1 represents the number of duplicate points generated by splitting non-manifold structures, including the number of original vertices to be split and the number of newly added vertices during the splitting process.
[0143] mesh_position_deduplicate_idx[i] specifies the common value of duplicate vertices generated by splitting non-manifold structures belonging to the same parent vertex, that is, points with the same mesh_position_deduplicate_idx[i] value have the same geometric coordinates.
[0144] mesh_position_deduplicate_start_positions represents the number of starting geometric vertices.
[0145] mesh_position_coded_is_duplicate_size represents the byte size after arithmetic coding of the non-manifold structure identification information of vertices.
[0146] mesh_position_is_duplicate_flag[i] indicates whether the i-th decoded vertex is a duplicate point generated by splitting non-manifold structures. When its value is 1, it means the i-th decoded vertex is a duplicate point generated by non-manifold structures.
[0147] 2) Syntax and semantics related to attribute information
[0148] Table 5 3D mesh attribute coding parameters
[0149]
[0150] mesh_attribute_separate_index_flag[index] indicates whether the attribute has a different connection relationship with the geometry. When the value is 1, it means there is a different connection relationship. Among them, different index values represent different attributes.
[0151] mesh_attribute_deduplicate_method[index] represents the method for restoring the information required for the non-manifold structure of the attribute. As shown in the following table, when the value is 0, it means not to restore the non-manifold structure of the attribute; when it is greater than or equal to 1, it means that the non-manifold structure needs to be restored. Among them, when the value is 1, it represents using the default method for restoring the non-manifold structure of the attribute; when the value is greater than 1, it is an interface reserved for other possible methods. Among them, different index values represent different attributes.
[0152] Table 6 Meaning of mesh_attribute_deduplicate_method[index] parameter
[0153]
[0154]
[0155] Table 7 3D mesh attribute information
[0156]
[0157] mesh_attribute_start_count[i] represents the number of starting attribute vertices that have not been predicted. Among them, different i values represent different attributes.
[0158] Table 8 3D mesh attribute non-manifold structure information
[0159]
[0160]
[0161] mesh_attribute_deduplicate_count_minus1[index], adding 1 to its value represents the number of duplicate points of the attribute generated by splitting the non-manifold structure, including the number of original attribute vertices to be split and the number of new attribute vertices added during the splitting process. Among them, different index values represent different attributes.
[0162] mesh_attribute_deduplicate_idx[index][i] specifies the common value of the attribute duplicate vertices generated by splitting non-manifolds that belong to the same attribute parent vertex. That is, points with the same mesh_attribute_deduplicate_idx[index][i] value have the same attribute value. Among them, different index values represent different attributes.
[0163] mesh_attribute_coded_is_duplicate_size[index] represents the byte size after arithmetic coding of the non-manifold structure identification information of the attribute vertices. Among them, different index values represent different attributes.
[0164] mesh_attribute_is_duplicate_flag[index][i] indicates whether the i-th attribute vertex is an attribute duplicate point generated by splitting non-manifolds. When its value is 1, it means that the i-th decoded attribute vertex is an attribute duplicate point generated by the non-manifold structure. Among them, different index values represent different attributes.
[0165] Scheme 2: A scheme based on the identification information of whether non-manifold structure information needs to be transmitted
[0166] 1) Geometric information-related syntax and semantics
[0167] Table 9 Three-dimensional mesh geometric coding parameters
[0168]
[0169] mesh_position_is_deduplicate_flag indicates whether non-manifold structure information needs to be transmitted. When its value is 1, it means that non-manifold structure information needs to be transmitted.
[0170] Table 10 Three-dimensional mesh geometric information
[0171]
[0172] Table 11 Three-dimensional mesh geometric non-manifold structure information
[0173]
[0174] mesh_position_deduplicate_count_minus1. After adding 1 to its value, it represents the number of duplicate points generated by splitting non-manifold structures, including the number of original vertices to be split and the number of newly added vertices during the splitting process.
[0175] mesh_position_deduplicate_idx[i] specifies the common value of the duplicate vertices generated by splitting non-manifolds that belong to the same parent vertex, that is, points with the same mesh_position_deduplicate_idx[i] value have the same geometric coordinates.
[0176] mesh_position_deduplicate_start_positions represents the number of starting geometric vertices.
[0177] mesh_position_coded_is_duplicate_size represents the byte size after arithmetic coding of the non-manifold structure identification information of the vertices.
[0178] mesh_position_is_duplicate_flag[i] indicates whether the i-th decoded vertex is a duplicate point generated by splitting non-manifolds. When its value is 1, it means that the i-th decoded vertex is a duplicate point generated by the non-manifold structure.
[0179] 2) Syntax and semantics related to attribute information
[0180] Table 12 3D mesh attribute coding parameters
[0181]
[0182] mesh_attribute_separate_index_flag[index] indicates whether the attribute has a different connection relationship with the geometry. When the value is 1, it means having a different connection relationship. Among them, different index values represent different attributes.
[0183] mesh_attribute_is_deduplicate_flag[index] indicates whether it is necessary to transmit non-manifold structure information. When the value is 1, it means it is necessary to transmit non-manifold structure information. Among them, different index values represent different attributes.
[0184] Table 13 3D mesh attribute information
[0185]
[0186]
[0187] mesh_attribute_start_count[i] represents the number of starting attribute vertices that are not predicted. Among them, different i values represent different attributes.
[0188] Table 14 3D mesh attribute non-manifold structure information
[0189]
[0190] Adding 1 to the value of mesh_attribute_deduplicate_count_minus1[index] represents the number of duplicate points of the attributes generated by splitting the non-manifold structure, including the number of original attribute vertices to be split and the number of newly added attribute vertices during the splitting process. Among them, different index values represent different attributes.
[0191] mesh_attribute_deduplicate_idx[index][i] specifies the common value of the attribute duplicate vertices generated by splitting the non-manifold that belong to the same attribute parent vertex, that is, points with the same mesh_attribute_deduplicate_idx[index][i] value have the same attribute value. Among them, different index values represent different attributes.
[0192] mesh_attribute_coded_is_duplicate_size[index] represents the byte size after arithmetic coding of the non-manifold structure identification information of the attribute vertices. Among them, different index values represent different attributes.
[0193] mesh_attribute_is_duplicate_flag[index][i] represents the identification of whether the i-th attribute vertex is an attribute duplicate point generated by splitting the non-manifold. When its value is 1, it means that the i-th decoded attribute vertex is an attribute duplicate point generated by the non-manifold structure. Among them, different index values represent different attributes.
[0194] The present invention also provides a schematic structural diagram of an electronic device, including a processor, a communication interface, a memory, and a communication bus. Among them, the processor, the communication interface, and the memory complete mutual communication through the communication bus.
[0195] The memory is used to store a computer program.
[0196] The processor is used to implement the steps provided in the above method embodiments when executing the program stored on the memory.
[0197] The above content is a further detailed description of the present invention in combination with specific preferred embodiments, and it cannot be determined that the specific implementation of the present invention is only limited to these descriptions. For those of ordinary skill in the technical field to which the present invention belongs, without departing from the concept of the present invention, several simple deductions or substitutions can be made, which should all be regarded as belonging to the protection scope of the present invention.
Claims
1. A lossless coding method for a three-dimensional grid, characterized in that, Including: According to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional grid, splitting the three-dimensional grid to obtain the corresponding manifold structure grid, and determining a second identifier according to the situation of duplicate points generated during the splitting process, where the second identifier is used to indicate the existence of non-manifold structure information in the three-dimensional grid; If the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional grid are different, and the second identifier indicates the existence of non-manifold structure information in the three-dimensional grid, then obtain the mapping relationship between the original vertex index and the corresponding duplicate point group index in the manifold grid generated during the splitting process, and perform three-dimensional grid encoding according to the mapping relationship, the second identifier, and the manifold structure grid to obtain the target bitstream corresponding to the three-dimensional grid.
2. The method according to claim 1, characterized in that, The performing three-dimensional grid encoding according to the mapping relationship, the second identifier, and the manifold structure grid to obtain the target bitstream corresponding to the three-dimensional grid includes: Encoding the manifold structure grid according to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional grid to obtain a connection relationship sub-bitstream, a geometric information sub-bitstream, an attribute information sub-bitstream, the encoding order of the geometric information corresponding to the geometric points in the manifold structure grid, and the encoding order of the attribute information corresponding to the attribute points in the manifold structure grid; If the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional grid are different, and the second identifier indicates the existence of non-manifold structure information in the three-dimensional grid, then obtain the mapping relationship between the original vertex index and the corresponding duplicate point group index in the manifold grid generated during the splitting process, and determine the non-manifold structure information bitstream according to the second identifier, the geometric information encoding order, the attribute information encoding order, and the mapping relationship; Performing a multiplexing process on the connection relationship sub-bitstream, the geometric information sub-bitstream, the attribute information sub-bitstream, and the non-manifold structure information bitstream to obtain the target bitstream corresponding to the three-dimensional grid.
3. The method according to claim 2, characterized in that, The mapping relationship includes one or more of the first mapping relationship between the original geometric vertex index and the geometric duplicate point group index in the manifold grid generated during the splitting process and the second mapping relationship between the original attribute vertex index and the attribute duplicate point group index in the manifold grid generated during the splitting process; The determining the non-manifold structure information bitstream according to the second identifier, the geometric information encoding order, the attribute information encoding order, and the mapping relationship includes: Encoding the second identifier to obtain a first encoding result; If the second identifier indicates the existence of geometric non - manifold information in the three - dimensional grid, then according to the first mapping relationship between the original geometric vertex indices and the geometric duplicate point group indices in the manifold grid generated during the splitting process, determine the first identifier of each geometric point corresponding to the three - dimensional grid, and according to the geometric information encoding order, encode the first identifier of the geometric point to obtain a second encoding result. According to the first mapping relationship and the geometric information encoding order, determine the index information of the geometric duplicate points, and encode the index information of the geometric duplicate points to obtain a third encoding result. The first identifier is used to identify whether the corresponding point is a duplicate point generated during the splitting process, and all geometric points in the geometric duplicate point group have the same geometric information; And / or, if the second identifier indicates the existence of attribute non - manifold information in the three - dimensional grid, then according to the second mapping relationship between the original attribute vertex indices and the attribute duplicate point group indices in the manifold grid generated during the splitting process, determine the first identifier of each attribute point corresponding to the three - dimensional grid, and according to the attribute information encoding order, encode the first identifier of the attribute point to obtain a fourth encoding result. According to the second mapping relationship and the attribute information encoding order, determine the index information of the attribute duplicate points, and encode the index information of the attribute duplicate points to obtain a fifth encoding result. All attribute points in the attribute duplicate point group have the same attribute information; Obtain the non - manifold structure information bitstream according to the first encoding result, the second encoding result, and the third encoding result, and / or the fourth encoding result and the fifth encoding result.
4. The method according to claim 3, wherein Before splitting the three - dimensional grid, the method further includes: Determine whether there is the same connection relationship between the original geometric vertices and between the original attribute vertices of the three - dimensional grid, and encode to represent the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three - dimensional grid.
5. According to the method according to any one of claims 1-4, characterized in that, Encoding the manifold structure grid according to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three - dimensional grid to obtain a connection relationship sub - bitstream, a geometric information sub - bitstream, an attribute information sub - bitstream, as well as the geometric information encoding order in the manifold structure grid and the attribute information encoding order in the manifold structure grid, includes: According to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three - dimensional grid, perform connection relationship encoding on the grid of the manifold structure to obtain a connection relationship sub - bitstream and a connection relationship encoding order; According to the connection relationship encoding order, perform geometric information encoding on the grid of the manifold structure to obtain a geometric information sub - bitstream and a geometric information encoding order; According to the connection relationship encoding order, perform attribute information encoding on the grid of the manifold structure to obtain an attribute information sub - bitstream and an attribute information encoding order.
6. A three-dimensional grid lossless encoding device, characterized in that, Including: A splitting module, configured to split a three-dimensional mesh according to the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh, obtain corresponding manifold structure meshes, and determine a second identifier according to the situation of duplicate points generated during the splitting process, where the second identifier is used to indicate the existence of non-manifold structure information in the three-dimensional mesh; An encoding module, configured to, if the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh are different, and the second identifier indicates that there is non-manifold structure information in the three-dimensional mesh, obtain the mapping relationship between the original vertex indices and the corresponding duplicate point group indices in the manifold meshes generated during the splitting process, and perform three-dimensional mesh encoding according to the mapping relationship, the second identifier, and the manifold structure meshes to obtain the target bitstream corresponding to the three-dimensional mesh.
7. A method for lossless decoding of a three-dimensional grid, characterized in that, Including: Performing de-streaming processing on the input target bitstream to obtain a non-manifold structure information bitstream, a connection relationship sub-bitstream, a geometric information sub-bitstream, and an attribute information sub-bitstream corresponding to the target bitstream, where the target bitstream is obtained by encoding a three-dimensional mesh through the three-dimensional mesh lossless encoding method described in any one of claims 1-5; Performing decoding processing on the input target bitstream to obtain the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh; Performing decoding processing on the connection relationship sub-bitstream, the geometric information sub-bitstream, and the attribute information sub-bitstream respectively to obtain the geometric information of the manifold meshes corresponding to the geometric information sub-bitstream, the geometric information decoding order, the attribute information of the manifold meshes corresponding to the attribute information sub-bitstream, and the attribute information decoding order; Performing decoding processing on the non-manifold structure information bitstream according to the geometric information decoding order, the attribute information decoding order, and the consistency of the geometric connection relationship and the attribute connection relationship to obtain the second identifier corresponding to the three-dimensional mesh, where the second identifier is used to indicate whether there is non-manifold structure information in the three-dimensional mesh. If the second identifier indicates that there is non-manifold structure in the three-dimensional mesh, further perform decoding processing on the non-manifold structure information bitstream according to the consistency of the geometric connection relationship and the attribute connection relationship, the geometric information decoding order, and / or the attribute information decoding order to obtain the first identifier of each geometric point and / or the first identifier of each attribute point corresponding to the three-dimensional mesh, and the index information of the geometric duplicate points and / or the index information of the attribute duplicate points corresponding to the three-dimensional mesh, where the first identifier is used to identify whether the corresponding point is a duplicate point generated during the splitting process; Reconstructing the three-dimensional mesh according to the non-manifold structure information in the three-dimensional mesh, the connection relationship of the manifold meshes, the connection relationship decoding order, the consistency of the geometric connection relationship and the attribute connection relationship, the geometric information of the manifold meshes, the geometric information decoding order, the attribute information of the manifold meshes, and the attribute information decoding order.
8. The method according to claim 7, wherein Reconstructing the three-dimensional mesh according to the non-manifold structure information in the three-dimensional mesh, the connection relationship of the manifold mesh, the decoding order of the connection relationship, the consistency of the geometric connection relationship and the attribute connection relationship, the geometric information of the manifold mesh, the decoding order of the geometric information, the attribute information of the manifold mesh, and the decoding order of the attribute information, includes: Reconstructing the manifold mesh corresponding to the three-dimensional mesh according to the connection relationship of the manifold mesh, the geometric information of the manifold mesh, and the attribute information of the manifold mesh; Reconstructing the three-dimensional network according to the manifold mesh, the consistency of the geometric connection relationship and the attribute connection relationship, and the non-manifold structure information in the three-dimensional mesh.
9. The method according to claim 8, wherein Performing decoding processing on the non-manifold structure information bitstream, including: If the second identifier indicates that there is geometric non-manifold information in the three-dimensional mesh, further performing decoding processing on the non-manifold structure information bitstream according to the decoding order of the geometric information and the consistency of the geometric connection relationship and the attribute connection relationship, to obtain the first identifier of the geometric points corresponding to the three-dimensional mesh and the index information of the geometric duplicate points corresponding to the three-dimensional mesh, where the first identifier is used to identify whether the corresponding point is a duplicate point generated during the splitting process; And / or If the second identifier indicates that there is attribute non-manifold information in the three-dimensional mesh, further performing decoding processing on the non-manifold structure information bitstream according to the decoding order of the attribute information and the consistency of the geometric connection relationship and the attribute connection relationship, to obtain the first identifier of the attribute points corresponding to the three-dimensional mesh and the index information of the attribute duplicate points corresponding to the three-dimensional mesh.
10. A three-dimensional grid lossless decoding device, characterized in that, Includes: A bitstream parsing module, configured to perform bitstream parsing on the input target bitstream to obtain the non-manifold structure information bitstream, the connection relationship sub-bitstream, the geometric information sub-bitstream, and the attribute information sub-bitstream corresponding to the target bitstream, where the target bitstream is obtained by encoding a three-dimensional mesh using the three-dimensional mesh lossless encoding method according to any one of claims 1-5; A decoding module, configured to perform decoding processing on the target bitstream to obtain the consistency of the geometric connection relationship and the attribute connection relationship corresponding to the three-dimensional mesh; The decoding module is further configured to perform decoding processing on the connection relationship sub-bitstream, the geometric information sub-bitstream, and the attribute information sub-bitstream respectively, to obtain the geometric information of the manifold mesh corresponding to the geometric information sub-bitstream, the decoding order of the geometric information, the attribute information of the manifold mesh corresponding to the attribute information sub-bitstream, and the decoding order of the attribute information. The decoding module is further configured to decode the non-manifold structure information bitstream according to the geometric information decoding order, the attribute information decoding order, and the consistency between the geometric connection relationship and the attribute connection relationship, so as to obtain a second identifier corresponding to the three-dimensional mesh. The second identifier is used to indicate whether there is non-manifold structure information in the three-dimensional mesh. If the second identifier indicates that there is non-manifold structure in the three-dimensional mesh, further decode the non-manifold structure information bitstream according to the consistency between the geometric connection relationship and the attribute connection relationship, the geometric information decoding order, and / or the attribute information decoding order, so as to obtain a first identifier of each geometric point and / or a first identifier of each attribute point corresponding to the three-dimensional mesh, as well as index information of geometric duplicate points and / or index information of attribute duplicate points corresponding to the corresponding three-dimensional mesh. The first identifier is used to identify whether the corresponding point is a duplicate point generated during the splitting process; The reconstruction module is configured to reconstruct the three-dimensional mesh according to the non-manifold structure information in the three-dimensional mesh, the connection relationship of the manifold mesh, the connection relationship decoding order, the consistency between the geometric connection relationship and the attribute connection relationship, the geometric information of the manifold mesh, the geometric information decoding order, the attribute information of the manifold mesh, and the attribute information decoding order.