Coding method, decoding method, device and apparatus
The proposed coding method addresses the low coding efficiency of 3D mesh coding by generating a target code stream from base mesh, mesh difference, and texture map information, with the option to exclude reconstructed texture coordinates, thereby enhancing coding efficiency.
Patent Information
- Application Number
- JP2024570781
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-05-31
- Filing Date
- 2023-05-24
- Publication Date
- 2025-06-05
- Estimated Expiration
- 2043-05-24
AI Technical Summary
Existing 3D mesh coding methods suffer from low coding efficiency due to the large amount of UV coordinate data, which consumes a significant coding rate.
A coding method that codes a base mesh corresponding to a target 3D mesh, obtaining a first code stream based on reconstructed texture coordinate information, a second code stream based on mesh difference information, and a third code stream based on reconstructed texture map information, and then generates a target code stream from these components. The method allows for the option not to code reconstructed texture coordinate information to reduce the code rate.
This approach significantly reduces the code rate and improves coding efficiency by selectively choosing not to code reconstructed texture coordinate information, thereby optimizing the coding process for 3D meshes.
Smart Images

Figure 2025517560000001_ABST
Abstract
Description
[Technical field]
[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims priority to Chinese Patent Application No. 202210613984.5, filed in China on May 31, 2022, the entire contents of which are incorporated herein by reference.
[0002] The present application relates to the technical field of codecs, and in particular to coding methods, decoding methods, devices and apparatuses. [Background technology]
[0003] 3D Meshes can be considered as the most popular representation of 3D models in the past few years and have played an important role in many application programs. Due to their simplicity, hardware algorithms are heavily integrated into the graphics processing units of computers, tablet PCs and smart phones, dedicated to rendering 3D Meshes.
[0004] Texture coordinates, also known as UV coordinates, are information describing 3D mesh vertex textures. The amount of UV coordinate data is relatively large in a 3D mesh, so coding UV coordinates in related technical solutions consumes a large amount of coding rate, resulting in low 3D mesh coding efficiency. Summary of the Invention [Problem to be solved by the invention]
[0005] The embodiments of the present application provide a coding method, a decoding method, an apparatus and a device, which can solve the problem of low 3D mesh coding efficiency in related technical solutions. [Means for solving the problem]
[0006] According to a first aspect, there is provided a coding method, the coding method comprising the steps of: A coding side codes a base mesh corresponding to a target 3D mesh according to first identifier information to obtain a first code stream, where the base mesh includes reconstructed texture coordinate information corresponding to the target 3D mesh, and the first identifier information is used to characterize whether to code the reconstructed texture coordinate information; The coding side obtains a second code stream according to mesh difference information, where the mesh difference information is used to characterize difference information between the base mesh and the 3D mesh to be coded, and the target 3D mesh is obtained according to the 3D mesh to be coded; The coding side obtains a third codestream based on reconstructed texture map information, the reconstructed texture map information being obtained based on the first codestream and the second codestream; The coding side generates a target codestream based on the first codestream, the second codestream and the third codestream.
[0007] According to a second aspect, there is provided a decoding method, the decoding method comprising the steps of: a decoding side decomposes the acquired target code stream to obtain a first code stream, a second code stream and a third code stream, in which the first code stream is obtained based on a base mesh corresponding to a target 3D mesh, the second code stream is obtained based on mesh difference information, the mesh difference information is used to characterize difference information between the base mesh and the 3D mesh to be coded, the target 3D mesh is obtained based on the 3D mesh to be coded, and the third code stream is obtained based on reconstructed texture map information; if the decoding side determines that the first codestream includes reconstructed texture coordinate information, reconstructing a target 3D mesh based on a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream; When the decoding side determines that the first codestream does not include reconstructed texture coordinate information, generating reconstructed texture coordinate information, and reconstructing a target three-dimensional mesh based on the generated reconstructed texture coordinate information, a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream.
[0008] According to a third aspect, there is provided a coding device for use on a coding side, the coding device comprising: a first coding module for coding a base mesh corresponding to a target 3D mesh based on first identifier information to obtain a first code stream, the base mesh including reconstructed texture coordinate information corresponding to the target 3D mesh, and the first identifier information is used to characterize whether to code the reconstructed texture coordinate information; a first obtaining module for obtaining a second code stream based on mesh difference information, the mesh difference information being used to characterize difference information between the base mesh and the 3D mesh to be coded, and the target 3D mesh is obtained based on the 3D mesh to be coded; a second acquisition module for acquiring a third codestream based on reconstructed texture map information, the second acquisition module obtaining the third codestream based on the reconstructed texture map information and the first codestream and the second codestream; A first generation module for generating a target codestream based on the first codestream, the second codestream and the third codestream.
[0009] According to a fourth aspect, there is provided a decoding device for use on a decoding side, the decoding device comprising: a sixth acquisition module for decomposing the acquired target code stream to obtain a first code stream, a second code stream and a third code stream, wherein the first code stream is obtained based on a base mesh corresponding to a target 3D mesh, the second code stream is obtained based on mesh difference information, the mesh difference information is used to characterize difference information between the base mesh and the 3D mesh to be coded, the target 3D mesh is obtained based on the 3D mesh to be coded, and the third code stream is obtained based on reconstructed texture map information; a reconstruction module for reconstructing a target 3D mesh based on a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream when the decoding side determines that the first codestream includes reconstructed texture coordinate information, and / or for generating reconstructed texture coordinate information when the decoding side determines that the first codestream does not include reconstructed texture coordinate information, and for reconstructing a target 3D mesh based on the generated reconstructed texture coordinate information, the first decoding result corresponding to the first codestream, the second decoding result corresponding to the second codestream, and the third decoding result corresponding to the third codestream.
[0010] According to a fifth aspect, there is provided a coding apparatus comprising a processor and a memory, the memory storing a program or instructions operable to run on the processor, the program or instructions being operable, when executed by the processor, to implement the steps of the method of the first aspect.
[0011] According to a sixth aspect, there is provided a coding device including a processor and a communication interface, wherein the processor is used for: coding a base mesh corresponding to a target three-dimensional mesh based on first identifier information to obtain a first code stream, wherein the base mesh includes reconstructed texture coordinate information corresponding to the target three-dimensional mesh, and the first identifier information is used to characterize whether to code the reconstructed texture coordinate information; obtaining a second code stream based on mesh difference information, wherein the mesh difference information is used to characterize difference information between the base mesh and the three-dimensional mesh to be coded, and the target three-dimensional mesh is obtained based on the three-dimensional mesh to be coded; obtaining a third code stream based on reconstructed texture map information, wherein the reconstructed texture map information is obtained based on the first code stream and the second code stream; and generating a target code stream based on the first code stream, the second code stream and the third code stream.
[0012] According to a seventh aspect, there is provided a decoding apparatus comprising a processor and a memory, the memory storing a program or instructions operable to run on the processor, the program or instructions being operable, when executed by the processor, to implement the steps of the method of the second aspect.
[0013] According to an eighth aspect, there is provided a decoding device including a processor and a communication interface, wherein the processor is configured to decompose a captured target code stream to obtain a first code stream, a second code stream and a third code stream, wherein the first code stream is obtained based on a base mesh corresponding to a target three-dimensional mesh, the second code stream is obtained based on mesh difference information, the mesh difference information being used to characterize difference information between the base mesh and the three-dimensional mesh to be coded, the target three-dimensional mesh is obtained based on the three-dimensional mesh to be coded, and the third code stream is obtained based on reconstructed texture map information; reconstructing a target 3D mesh based on a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream when determining that the first codestream includes reconstructed texture coordinate information; When it is determined that the first codestream does not include reconstructed texture coordinate information, generating reconstructed texture coordinate information, and reconstructing a target 3D mesh based on the generated reconstructed texture coordinate information, a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream.
[0014] According to a ninth aspect, there is provided a codec system including a coding device and a decoding device, the coding device being operable to perform steps of the coding method according to the first aspect and the decoding device being operable to perform steps of the decoding method according to the second aspect.
[0015] According to a tenth aspect, there is provided a readable storage medium having a program or instructions stored thereon, the program or instructions, when executed by a processor, performing steps of the method according to the first aspect or performing steps of the method according to the second aspect.
[0016] According to an eleventh aspect, there is provided a chip, the chip including a processor and a communication interface, the communication interface coupled to the processor, the processor running a program or instructions to implement the method of the first aspect or used to implement the method of the second aspect.
[0017] According to a twelfth aspect, there is provided a computer program / program product, the computer program / program product being stored on a storage medium, the computer program / program product being executed by at least one processor to implement the steps of the method according to the first aspect or to implement the steps of the method according to the second aspect. Effect of the Invention
[0018] In the embodiment of the present application, the coding side codes a base mesh corresponding to a target 3D mesh according to first identifier information, the base mesh includes reconstructed texture coordinate information corresponding to the target 3D mesh, obtains a first code stream, obtains a second code stream according to mesh difference information, and obtains a third code stream according to reconstructed texture map information, and generates a target code stream according to the first code stream, the second code stream and the third code stream. Because the amount of reconstructed texture coordinate data is relatively large in the 3D mesh, in the embodiment of the present application, it can choose not to code the reconstructed texture coordinate information in the base mesh according to the first identifier information, so that the code rate can be greatly saved and the coding efficiency can be improved. [Brief description of the drawings]
[0019] [Figure 1] 1 is a flowchart of a coding method according to an embodiment of the present application; [Diagram 2] FIG. 2 is a coding framework diagram of a 3D mesh in an embodiment of the present application. [Diagram 3] FIG. 2 is a schematic diagram of a pre-treatment module in an embodiment of the present application. [Figure 4] FIG. 13 is a schematic diagram of a vertex integration process in a mesh simplification process in an embodiment of the present application. [Diagram 5] FIG. 2 is a schematic diagram of a point subdivision method in an embodiment of the present application. [Figure 6] FIG. 2 is a schematic diagram of a displacement calculation method in an embodiment of the present application. [Figure 7] FIG. 1 is a schematic diagram of the five operation modes defined in EB. [Figure 8] FIG. 2 is a schematic diagram of a predicted geometric coordinate parallelogram. [Figure 9] 4 is a flowchart of a decoding method according to an embodiment of the present application; [Figure 10] FIG. 1 is a schematic diagram of a 3D mesh decoding framework in an embodiment of the present application; [Figure 11] FIG. 2 is a module schematic diagram of a coding device according to an embodiment of the present application; [Figure 12] FIG. 2 is a structural schematic diagram of a coding device according to an embodiment of the present application; [Figure 13] FIG. 2 is a module schematic diagram of a decoding device according to an embodiment of the present application; [Figure 14] FIG. 2 is a structural schematic diagram of a decoding device according to an embodiment of the present application; [Figure 15] FIG. 2 is a structural schematic diagram of a communication device according to an embodiment of the present application; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0020] The following clearly describes the technical solutions in the embodiments of the present application in conjunction with the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only some of the embodiments of the present application, and not all of the embodiments. All other embodiments obtained by those skilled in the art based on the embodiments of the present application are all within the scope of protection of the present application.
[0021] The terms "first," "second," etc. in the specification and claims of the present application are intended to distinguish between similar objects and are not intended to describe a particular order or sequence. It is to be understood that the terms so used are interchangeable where appropriate, such that the embodiments of the present application may be performed in an order other than that shown or described herein, and that the objects distinguished by "first" and "second" are generally of the same type and do not limit the number of objects, e.g., the first object may be one or more. It is to be noted that "and / or" in the specification and claims represents at least one of the objects connected, and the character " / " generally represents an "or" relationship between the related objects.
[0022] It should be noted that the techniques described in the embodiments of the present application are not limited to Long Term Evolution (LTE) / LTE-Advanced (LTE-A) systems, but can also be applied to other wireless communication systems, such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Orthogonal Frequency Division Multiple Access (OFDMA), Single-carrier Frequency Division Multiple Access (SC-FDMA), and other systems. The terms "system" and "network" in the embodiments of the present application are always used interchangeably, and the techniques described may be used in the above-mentioned systems and radio technologies, or in other systems and radio technologies. Although the following description describes a New Radio (NR) system for illustrative purposes, and NR terminology is used in most of the following description, these techniques may also be used in applications other than NR system applications, such as sixth generation (6G) and 7G (8G) systems. th This may be applied to a 6G (6th Generation) communication system.
[0023] Hereinafter, the coding method and the decoding method according to the embodiments of the present application will be described in detail with reference to several embodiments and application scenarios thereof in conjunction with the drawings.
[0024] As shown in FIG. 1, an embodiment of the present application provides a coding method, which includes the following steps:
[0025] Step 101: The coding side codes a base mesh corresponding to a target three-dimensional mesh based on first identifier information to obtain a first code stream, wherein the base mesh includes reconstructed texture coordinate information corresponding to the target three-dimensional mesh, and the first identifier information is used to characterize whether to code the reconstructed texture coordinate information.
[0026] In an embodiment of the present application, the first identifier information is used to determine whether to code the reconstructed texture coordinate information corresponding to the target 3D mesh. For example, when the first identifier information is 1, it indicates that the reconstructed texture coordinate information needs to be coded, and when the first identifier information is 0, it indicates that the reconstructed texture coordinate information does not need to be coded.
[0027] The reconstructed texture coordinate information includes reconstructed texture or UV coordinates corresponding to each vertex, which are used to characterize the texture color values of the corresponding vertex.
[0028] It should be clarified that a target 3D mesh in the present application can be understood as a 3D mesh corresponding to any video frame.
[0029] Optionally, the base mesh further includes geometric information and connectivity information corresponding to the target 3D mesh.
[0030] Optionally, in the embodiments of the present application, any mesh coding method may be used to code the geometric information, connection relationship information, and reconstructed texture coordinate information in the base mesh (if it is determined that they need to be coded based on the first identifier information), and obtain a base mesh code stream, i.e., the first code stream, after integration.
[0031] Step 102: The coding side obtains a second code stream based on mesh difference information, where the mesh difference information is used to characterize difference information between the base mesh and the 3D mesh to be coded, and the target 3D mesh is obtained based on the 3D mesh to be coded.
[0032] Optionally, the mesh difference information is used to characterize difference information between a base mesh after thinning and the 3D mesh to be coded.
[0033] Optionally, a refinement process is performed on the geometric information and UV coordinates of the base mesh, and the displacement vector between the interpolation point and the nearest point of the original mesh (the three-dimensional mesh to be coded) is calculated, and the above network difference information is obtained by this displacement vector.
[0034] Step 103: The coding side obtains a third codestream based on the reconstructed texture map information, and the reconstructed texture map information is obtained based on the first codestream and the second codestream.
[0035] Then, the reconstructed texture map information is coded to obtain a third codestream. Optionally, the reconstructed texture map information is coded by a video encoder.
[0036] Step 104: The coding side generates a target codestream based on the first codestream, the second codestream and the third codestream.
[0037] In this step, after obtaining a first codestream, a second codestream and a third codestream, the first codestream, the second codestream and the third codestream are mixed to generate a target codestream.
[0038] It should be noted that the coding method of the embodiments of the present application is applied to lossy mode coding.
[0039] In the embodiment of the present application, the coding side codes a base mesh corresponding to a target 3D mesh according to first identifier information, the base mesh includes reconstructed texture coordinate information corresponding to the target 3D mesh, obtains a first code stream, obtains a second code stream according to mesh difference information, and obtains a third code stream according to reconstructed texture map information, and generates a target code stream according to the first code stream, the second code stream and the third code stream. Because the amount of reconstructed texture coordinate data is relatively large in the 3D mesh, in the embodiment of the present application, it can choose not to code the reconstructed texture coordinate information in the base mesh according to the first identifier information, so that the code rate can be greatly saved and the coding efficiency can be improved.
[0040] Optionally, before the coding side codes a base mesh corresponding to the target 3D mesh according to the first identifier information to obtain a first code stream, When in a lossy coding mode, simplifying the 3D mesh to be coded to obtain a target 3D mesh; and if in a lossless coding mode, determining the 3D mesh to be coded as a target 3D mesh.
[0041] In an embodiment of the present application, in a lossy coding mode, the 3D mesh to be coded is preprocessed, which may be a simplification process, for example, a simplification operation of geometric relationships and connection relationships, that is, reducing the number of mesh vertices and edges while retaining the mesh structure as much as possible, and further reducing the data amount of the 3D mesh.
[0042] Optionally, the coding side generating a target codestream based on the first codestream and the second codestream includes: coding the first identifier information to obtain coded first identifier information; generating a target codestream based on the coded first identifier information, the first codestream and the second codestream.
[0043] In an embodiment of the present application, the above first identifier information can be carried in the target code stream, and thus the decoding side can determine whether it needs to generate reconstructed texture coordinate information based on this first identifier information.
[0044] Optionally, the coding side codes a base mesh corresponding to the target 3D mesh according to the first identifier information to obtain a first code stream. if the first identifier information is characterized as coding reconstructed texture coordinate information corresponding to the target 3D mesh, coding the geometric information, connectivity information and reconstructed texture coordinate information to obtain a first codestream; and / or, when the first identifier information characterizes not coding reconstructed texture coordinate information corresponding to the target 3D mesh, coding the geometric information and connectivity relationship information to obtain a first codestream.
[0045] In the embodiment of the present application, a user may set the first identifier information according to actual needs, that is, a user may select whether to code the reconstructed texture coordinate information.
[0046] Optionally, before the coding side obtains the third codestream based on the reconstructed texture map information, performing a decoding and inverse quantization process on the first codestream to obtain a reconstructed base mesh; performing a decoding and inverse quantization process on the second code stream to obtain target mesh difference information; and generating reconstructed texture map information according to the reconstructed base mesh and the target mesh difference information according to a texture map generating algorithm. Optionally, in an embodiment of the present application, generating the reconstructed texture coordinate information according to a texture coordinate resampling algorithm according to the geometric information and connection relationship information of a base mesh corresponding to a target 3D mesh.
[0047] The method of generating this reconstructed texture coordinate information is the same as that in the related art, and will not be described further here.
[0048] Optionally, the coding side obtains a second code stream based on mesh difference information, decoding the first codestream to obtain a reconstructed mesh corresponding to the first codestream; updating the mesh difference information based on the reconstructed mesh to obtain updated mesh difference information; and coding the updated mesh difference information to obtain the second codestream.
[0049] In the embodiment of the present application, since the coding side performs lossy compression on the base mesh, in order to improve the accuracy of the mesh difference information, the coding side needs to update the mesh difference information based on the reconstructed mesh after decoding the base mesh code stream, so that the mesh difference information can more accurately represent the difference between the base mesh and the original mesh (the mesh to be coded).
[0050] In addition, the mesh difference information is transformed after updating, for example, wavelet transformed, the transformed displacement information is quantized, and the transformed mesh difference information is arranged into pixel point values of the image according to a certain rule, for example, z scanning order, and video coding is performed on the image.
[0051] Optionally, the coding side generating a target codestream based on the first codestream, the second codestream and the third codestream includes: obtaining a fourth codestream based on slice information of the target 3D mesh; and deriving the target codestream based on the first codestream, the second codestream, the third codestream, and the fourth codestream.
[0052] In the embodiment of the present application, the coding side respectively codes the mesh obtained by preprocessing (called base mesh), the displacement information for representing the difference between the base mesh and the original mesh, and the reconstructed texture map attribute information: 1) Preprocess the 3D mesh in lossy mode. For example, simplify the geometrical relationship and the connection relationship, that is, reduce the number of mesh vertices and edges while keeping the mesh structure as much as possible, and further reduce the data amount of the 3D mesh. 2) Regenerate the UV coordinates using a UV coordinate resampling algorithm for the mesh obtained after simplification. In this application, the simplified geometrical information, the connection relationship, and the newly generated UV coordinates based on the simplified mesh are called the base mesh; 3) Code the geometrical information, the connection relationship, and the newly generated UV coordinates of the base mesh using any static mesh coding method, and obtain the base mesh code stream after integrating the code stream. It should be noted that whether to code the UV coordinates of the base mesh is determined by the identifier; 4) In the preprocessing module, refinement is performed on the geometrical information and UV coordinates of the base mesh, and the displacement vector between the interpolation point and the closest point of the original mesh is calculated. In a displacement information coding module, the thinning-out interpolation algorithm parameters and the displacement vector are coded to obtain a displacement information code stream; 5) The coded base mesh is decoded and reconstructed to obtain a reconstructed base mesh; 6) The coded displacement information is decoded and dequantized to obtain displacement information after decoding and dequantization; 7) The reconstructed base mesh and the displacement information after decoding and dequantization are used to reconstruct a mesh; 8) The reconstructed mesh is used to adopt a texture map generation algorithm to generate a new texture map, and a video encoder is used to code the newly generated texture map; 9) Each of the obtained sub-code streams is mixed into the encoder's output code stream.
[0053] The 3D mesh coding framework of the embodiment of the present application mainly includes a mesh pre-processing module, a base mesh coding module, a video-based displacement information coding module, etc. As shown in FIG. 2, the 3D mesh coding framework diagram first pre-processes the input 3D mesh including texture map (i.e., the 3D mesh to be coded). The pre-processing module is shown in FIG. 3. In the pre-processing module, it is possible to select whether to slice the 3D mesh. The sliced information forms patch information. Then, sampling simplification is performed on the 3D mesh. Then, a surface parameterization process is performed on the simplified mesh, that is, new UV coordinates (reconstructed texture coordinate information) are generated. In this process, some geometric information is also changed. After the surface parameterization, a base mesh (including geometric information, connection relationship and UV coordinates) is obtained and is output as a path. In addition, a thinning interpolation operation is performed on the base mesh geometric information and UV coordinates, and the offset vector between the interpolation point and the projection point along the patch normal vector on the original mesh is calculated and output as displacement information. Up to this point, the pre-processing module outputs the base mesh and the displacement information. As shown in FIG. 2, the preprocessed output base mesh is then subjected to a quantization operation, and then the geometric information, the connection relationship and the UV coordinates are coded respectively. It should be noted that the coding of the base mesh here can be replaced by any 3D mesh coding method. This module can selectively code the UV coordinates. If the connection relationship is not selected for coding, the decoding side needs to reconstruct the UV coordinates using the same UV coordinate generation method as the coding side. The code streams of each part of the base mesh are jointly output as the base mesh coding module, that is, the base mesh sub-code stream. The image is subjected to video coding to obtain the displacement information sub-code stream. In addition, the coded base mesh needs to be decoded and reconstructed to obtain the reconstructed base mesh.The coded displacement information is decoded and dequantized to obtain the decoded and dequantized displacement information. Then, the reconstructed base mesh and the decoded and dequantized displacement information are used to reconstruct a mesh. The reconstructed mesh is used to generate a new texture map by adopting a texture map generation algorithm, and the newly generated texture map is coded using a video encoder. Finally, the patch information sub-code stream, the base mesh sub-code stream and the displacement information sub-code stream are mixed to obtain an output code stream for coding.
[0054] A specific implementation method for the simplified processing will be described below.
[0055] The input original mesh, i.e., the 3D mesh to be coded, is first subjected to a mesh simplification operation. The focus of mesh simplification is the simplification operation and the corresponding error metric. The mesh simplification operation here may be edge-based simplification. As shown in FIG. 4, the two vertices of one edge can be combined to achieve the purpose of reducing the number of faces and vertices. In addition, the mesh can be simplified by a mesh simplification method based on points, etc.
[0056] In the mesh simplification process, it is necessary to define the error metric of the simplification. For example, the sum of the equation coefficients of all adjacent faces of a vertex may be selected as the error metric of this vertex, and the error metric of the corresponding edge is the sum of the error metric of the two vertices on the edge. After the simplification operation method and error metric are determined, the mesh simplification can be started. For example, the mesh may be divided into one or more local meshes, and the vertex errors of the initial mesh in the patch may be calculated to obtain the error of each edge. Then, all edges in the patch may be arranged according to the error based on a certain rule, for example, the rule of increasing. Each simplification may combine edges according to a certain rule, for example, the edge with the smallest error may be selected for combination, and the vertex position after combination may be calculated and the errors of all edges related to the vertices after combination may be updated, and the order of the edges arranged may be updated. By iterating, the faces of the mesh are simplified to a certain expected number.
[0057] The specific process includes:
[0058] 1. Calculate the vertex error The vertex error may be defined as the sum of the coefficients of the equations of all the adjacent faces of the vertex. For example, each adjacent face may define a plane, and may be expressed as Equation 1:
[0059]
number
number
[0060] From Equation 2,
number
number
number
[0061] 2. Vertex integration One major step in the vertex integration process is to determine the position of the vertex after integration. Based on the error formula 3, we can select the vertex position that minimizes the error. For example, by taking the partial derivative of formula 3,
number
[0062]
number
[0063] After determining how to select the vertex positions after merging, the vertex merging process can be started. For example, calculate the errors of all edges in the initial mesh, and arrange them according to a certain standard, for example, in order of increasing error. At each iteration, choose an edge whose error satisfies a certain rule, for example, the edge with the smallest error. Remove the two end points of the edge from the mesh vertex, and add the vertex after merging to the set of mesh vertices. Take all or some of the adjacent vertices of the two vertices before merging as the adjacent vertices of the vertex after merging, and update the error metric of all points connected to this vertex merging, thereby obtaining the error of the newly generated edge. Then update the ordering order of the edges from the global of the patch. The above process is cyclical until the number of faces required to satisfy the lossy coding is reached.
[0064] 3. Connection update After vertex integration, some vertices are deleted from the vertex set and many new vertices are added, so the connection relationships between vertices need to be updated. For example, in the vertex integration process, the two vertices before integration corresponding to the vertex after integration may be determined. The indexes of the two vertices before integration that appear on all faces are replaced with the indexes of the vertex after integration, and the faces with the repeated indexes are deleted, so that the purpose of updating the connection relationships can be achieved.
[0065] The above is the main process of mesh simplification. At the same time, 3D mesh may carry more attribute information, and the attribute information may need to be simplified. For meshes with attribute information, such as texture coordinates, colors, normal vectors, etc., the vertex coordinates can be expanded to higher dimensions, so as to calculate the vertex error with attribute information. Take texture coordinates as an example, the vertex coordinates are (x,y,z) and the texture coordinates are (u,v), and the vertex after expansion is (x,y,z,u,v). The expanded triangle is T=(p,q,r), and to determine the error metric in the high-dimensional space, first calculate two standard orthogonal vectors, namely:
number
number
number
number
[0066] e 1 ,e 2are two vectors on the plane in which T lies, so the term on the left of Equation 9 is the square of the distance from the vertex to the plane in which T lies, i.e.
number
number
[0067] After obtaining the error metric, the same subsequent steps as with the previous 3D information can be carried out, thereby realizing the simplification of the mesh with attribute information.
[0068] Generally, the edge part of an image can attract people's attention, which affects people's quality evaluation of the image. The same is true for 3D meshes, and people tend to notice the boundary part easily. Therefore, whether to preserve the boundary is also a factor that affects the quality in mesh simplification. The boundary of a mesh is generally the boundary of a geometric shape and the boundary of a texture. If an edge belongs to only one face, this edge is a geometric boundary. If the same vertex has two or more texture coordinates, this vertex is a boundary of texture coordinates. When simplifying a mesh, none of the above boundaries should be integrated. Therefore, for each simplification, it is judged whether the vertex on this edge is a boundary point, and if it is, it is skipped and the next iteration can be performed directly.
[0069] The selective mesh parameterization method is specifically described below.
[0070] This mesh parameterization method includes:
[0071] (1) Regenerating UV coordinates Input: The original 3D mesh to be processed (with or without UV coordinates) Output: Regenerated UV coordinates.
[0072] In this method, the reconstructed texture coordinate information can be obtained using the ISO-charts algorithm, which uses spectrum analysis to realize stretch-driven 3D mesh parameterization, and performs UV unwrapping and slicing on the 3D mesh to package it into a 2D texture region. A stretch threshold is set. The specific implementation process of this algorithm is as follows:
[0073] a) calculating a surface spectral analysis and providing an initial parameterization; b) performing stretch optimization iterations; c) stopping if the stretch of this derived parameterization is less than a threshold; d) Run a surface spectrum cluster to split the surface into charts, e) Optimizing the chart boundary using a graph cut algorithm; f) repeatedly split the charts until they meet the stretch criterion; Below, we introduce the above four main parts, namely, surface spectrum analysis, stretch optimization, surface spectrum clustering, and boundary optimization, respectively.
[0074] 1. Surface spectrum analysis Surface spectrum analysis parameterizes a target 3D mesh based on the isometric feature mapping (IsoMap) dimensionality reduction method. Given a set of high-dimensional points, IsoMap computes the geodesic distances along the manifold as a sequence of jumps between adjacent points. Then, a multidimensional scaling (MDS) algorithm is applied to these geodesic distances to find a set of points embedded in a low-dimensional space with similar pairwise distances. The computation process for a surface given N points is as follows:
[0075] a) A symmetric matrix D of squared geodesic distances between surface points N Calculate b)D N Do double centering and normalization on B N The calculation process is as follows:
[0076]
number
number
[0077] c) B N The feature value λ i and the corresponding feature vector
number
number
[0078]
number
number
[0079] N eigenvalues are required to fully represent one surface with N vertices, but only a small part of their energy generally occupies most of the energy. Therefore, only the n << N largest eigenvalues and the corresponding eigenvectors are calculated to generate the n-dimensional embedding of all points.
[0080] Note that since the mapping from a high-dimensional space to a low-dimensional space is not equidistant, this parameterization causes distortion. For each vertex i, the definition of the geodesic distance distortion (GDD) under its embedding is shown as follows.
[0081] [Number] Here, [Number] is the n-dimensional embedding coordinate of vertex i, and d geo (i, j) is the geodesic distance between point i and point j.
[0082] In the case of n = 2, surface spectral analysis generates the square of the GDD of all vertices and the minimum surface parameterization.
[0083] It should be noted that the Isomap algorithm calculates the geodesic distance along the manifold. When there are some non-manifolds in the input three-dimensional mesh, this scheme performs the corresponding preprocessing to eliminate the existence of these non-manifolds.
[0084] 2. Stretch Optimization Since the 3D to 2D space is not equally spaced, the parameterization introduces distortions and requires a stretch optimization process to eliminate clipping phenomena. Distortion can be measured in many ways, including the conservation of angles or areas, or the parameter distance stretching or shrinking on the surface. The focus of this algorithm is distance distortion, and in particular the definition of geometric stretch, which is the average stretch of the surface local distances L 2 and the worst case stretch L ∞ We define two conjectures:
[0085] 2D texture coordinate p 1 , p 2 , p 3 Suppose there is a triangle T with p i =(s i ,t i ) and the corresponding three-dimensional coordinates are q 1 , q 2 , q 3 The calculation process of the affine mapping S(p)=S(s,t)=q is shown as follows:
[0086]
number
number
[0087]
number
number
number
number
[0088]
number
number
[0089]
number
[0090]
number
number
[0091] L ∞ Since depends only on one worst-case point in the domain, L ∞ Stretching is difficult to control by any method, but L 2 Going through several iterations of minimizing the stretch can improve the results significantly.
[0092] 3. Surface spectrum cluster If the parameterization generated by the spectrum analysis cannot meet the stretch threshold, it is divided into smaller charts. The global features of the model correspond to relatively large feature values, so they are used for division. The results of the spectrum analysis are used to calculate several representative vertices, and then the charts are simultaneously grown around these representative points, which is called surface spectrum clustering. The specific algorithm process is as follows:
[0093] a) Sort the feature values from the spectrum analysis and the corresponding feature vectors from largest to smallest, i.e., λ 1 ≧λ 2 ≧...≧λ N It is.
[0094] b) λ n / λ n+1 Obtain n feature values and feature vectors (n≦10) before maximizing.
[0095] c) For each vertex i in the target 3D mesh, its n-dimensional embedding coordinates
number
[0096] d) For each of the n embedded coordinates, find the two points with the maximum and minimum coordinates, and set them as the 2n representative points.
[0097] e) moving the keypoints whose distance is less than a distance threshold to generate m≦2n keypoints, where optionally the distance threshold is 10 times the target 3D mesh average edge length;
[0098] f) Using the geodesic distances calculated in the surface spectral analysis, the 3D mesh is divided into m parts by simultaneously growing the charts around the representative points. Each triangle is assigned to the chart that has the closest representative point to this triangle (the geodesic distance calculation from a triangle to the representative point is the average of the geodesic distances from the three vertices of the triangle to the representative point).
[0099] 4. Boundary optimization After obtaining multiple charts, a graph cut algorithm is used to optimize the boundaries between each chart. The chart boundaries should satisfy two targets: 1) they should pass through high curvature regions without being too disjointed, and 2) they should minimize the intrinsic clipping of the boundary charts. The algorithm expresses the optimal boundary problem as a graph cutting problem. For simplicity, we will describe below the binary case where the surface is split into two. When subdividing into more than two charts, we consider the adjacent charts of each pair in turn.
[0100] Suppose we are looking for an optimal boundary between chart A and chart B. An initial partition is generated using surface spectrum clusters. Then, an intermediate region C is generated by extending a region on both sides of the initial partition boundary. The size of the intermediate region is directly proportional to the total area of the unpeeled patch. We now use an extension of the method in the graph cut algorithm to construct an undirected flow network graph from C. Here, the graph cut algorithm uses two adjacent triangles f i and f j The definition of “capacity” between
[0101]
number
[0102]
number
[0103] The second term in Equation 26 measures the embedded clipping, and the calculation process is shown in Equations 28 and 29.
[0104]
number
number
[0105] The weighting parameter α in Equation 26 is a tradeoff between the two targets.
[0106] The simple implementation of this stretch-driven chartification and parameterization algorithm is very costly, especially when the number of model vertices increases. Therefore, in order to speed up the calculation speed, in practical applications, the Iso-charts algorithm adopts the landmark Isomap, an extension algorithm of Isomap. At the same time, the landmark Isomap algorithm is also used to calculate the embedding coordinates of mid-range vertices during boundary optimization to further reduce embedding clipping.
[0107] Finally, we use the chart packing algorithm used in the MCGIM algorithm to pack the charts generated in the above process into a 2D texture region, and finally obtain a 3D mesh of the regenerated UV coordinates.
[0108] (2) Mesh thinning.
[0109] Input: Base mesh (including attribute information), Output: The thinned mesh.
[0110] In the embodiment of the present application, any mesh thinning scheme can be used to thin the base mesh. One possible thinning scheme is the midpoint subdivision scheme, which subdivides each triangle into four sub-triangles at each subdivision iteration, as shown in FIG. 5. A new vertex is introduced in the middle of each edge. The subdivision process is applied independently to the geometric and texture coordinates, since the connectivity of the geometric and texture coordinates is generally different. The subdivision scheme is to use the newly introduced vertices v 12 Side of (v 1 ,v 2 ) Position at the center Pos(v 12 ) was calculated and is shown below.
[0111]
number
[0112] The same process is used to calculate the texture coordinates of the newly created vertices. For the normal vectors, an additional normalization step is as follows:
[0113]
number
number
[0114] (3) Displacement information calculation.
[0115] Input: Thinned mesh and original mesh (including attribute information), Output: Displacement information.
[0116] Figure 6 shows the basic idea of the pre-processing scheme using 2D curves. The same concept is applied to an input 3D mesh to generate a base mesh and a displacement field. In Figure 6, the input 2D curve (represented by a 2D broken line) is called the "original curve" and is first downsampled to generate a basic curve / broken line called the "simplified curve". The subdivision scheme is then applied to the simplified polyline to generate a "thinned or subdivision curve". The subdivision polyline is then deformed to obtain a better approximation of the original curve. That is, a displacement vector (indicated by the arrow in Figure 6) is calculated for each vertex of the mesh to make the shape of the displacement curve as close as possible to the shape of the original curve. These displacement vectors are the displacement information output by this module.
[0117] In the embodiment of the present application, the coding of the base mesh can use the mesh encoder Draco in the related art, which mainly includes five parts: quantization, connection relationship coding, geometric information coding, UV coordinate coding and texture map coding, which are described respectively below.
[0118] (1) Quantization Input: Geometry and UV coordinates of the base mesh, Output: quantized geometry and UV coordinates, First, the three-dimensional coordinates of the vertices of the input mesh are quantized to obtain the quantized geometric information.
[0119] Let the three-dimensional coordinates of a vertex be (x, y, z), and the quantization coefficient be (QP x ,QP y ,QP z ), then the geometric information after quantization (x q ,y q ,z q The calculation process of is as follows:
[0120] Formula 32:x q =f 1 (x,QP x ) Equation 33:y q =f 1 (x,QP y ) Formula 34:z q =f 1 (z,QP z ) Here, f in Equation 32 to Equation 34 1 The function is a quantization function, whose inputs are a coordinate in a certain dimension and a quantization coefficient in this dimension, and whose output is the coordinate value after quantization.
[0121] f 1The function may have various calculation methods, and one relatively common calculation method is to divide the original coordinates of each dimension by the quantization coefficient of this dimension, as shown in Equation 35 to Equation 37. Here, " / " is a division operator, and different methods can be adopted to round the result of the division operation, such as rounding up, rounding down, and rounding up.
[0122] Formula 35:x q =x / QP x Equation 36:y q =y / QP y Formula 37:z q =z / QP z If the quantization coefficient is an integer power of 2, f 1 The functions can be realized using bit operations, for example, Equations 38 to 40.
[0123] Formula 38:X q =x≫log 2 QP x Equation 39:Y q =y≫log 2 QP y Formula 40:Z q =z≫log 2 QP z Of course, it should be noted that f 1 Regardless of the calculation method used by the function, the quantization coefficient QP x , Q.P. y and QP z can be flexibly set. First, the quantization coefficients of different components are not necessarily equal, and the QP x , Q.P. y and QP z , and different quantization coefficients can be set for different components; then, the quantization coefficients of different spatial regions are not necessarily equal either, and the quantization parameters can be adaptive according to the degree of sparseness of the local region vertex distribution.
[0124] Quantization of two-dimensional UV coordinates and three-dimensional coordinate quantization are similar, and it is sufficient to reduce the quantization of one dimension.
[0125] (2) Connection coding.
[0126] Input: Base mesh connectivity, Output: The connectivity subcode stream and vertex coding order after coding.
[0127] One possible connection coding method is the Edgebreaker (EB) algorithm. After traversing each triangle in the triangular mesh model, the EB algorithm obtains a string sequence consisting of five characters C, L, E, R, and S, and then codes the string sequence by the Hoffman coding method. The five operation modes defined in EB are shown in Figure 7. Here, C represents the topology case where the vertex v to be coded is not on the boundary, L and R represent the topology case where the vertex v to be coded is on the boundary and the current edge of the current triangle and one edge e are on the boundary, L and R respectively represent different directions of the current edge of e, S represents the need to split the graphics into two parts and record branch information at the same time with additional offset or other operations, and E represents the three edges of the triangle are all on the boundary.
[0128] This algorithm codes the mesh in a spiral format. In the mesh traversal process, a directed boundary consisting of edges is always maintained, which divides the mesh into traversed and untraversed parts. Then, every time a triangle is traversed, a topological relationship operator for the triangle and the boundary is output, and the polygon is divided into the coded parts. The specific traversal process is as follows: First, select any triangle to form the first boundary, and select any edge as the current edge. The Edgebreaker algorithm employs five operators C, L, E, R and S to record the topological relationship between the current triangle and the boundary. Based on the arrow direction in different operators, select the next edge as the edge of the current edge, and continue to determine the operation mode corresponding to the vertex to be coded. The operation is cycled according to this step until all vertices are traversed. At this time, the operator string in the traversal process can be obtained and the string can be entropy coded. In addition, the use of the EB algorithm requires that the vertex order of the traversal be output to the geometric information and UV coordinate coding module. Based on the coding rules of EB, the final entropy coding mode code is CCRRSLCRSERRELCRRRCRRRE.
[0129] (3) Geometric information coding Input: quantized geometric information, connectivity and connectivity coding vertex order, Output: A connected subcode stream after coding.
[0130] In an embodiment of the present application, the geometric coordinates can be coded using a parallelogram prediction method as follows:
[0131] As shown in FIG. 8, triangle S1 is a triangle whose geometric coordinates have been coded at present, and the traversal method for the vertices to be coded is the same as the vertex order for coding the connectivity relations when coding the connectivity relations. When the connectivity relations are not coded, the vertex traversal order is the same as the vertex order in the base mesh. When coding traversal is performed, one side is selected as the currently traversed side τ1, and the triangle formed by another vertex whose connectivity has been coded is used as a half parallelogram to predict the three-dimensional geometric coordinates of the vertex to be coded corresponding to the current side, that is, the point A2 in the figure is the predicted vertex. At this time, the coordinate difference value between the predicted vertex and the actual vertex (A3) is calculated and coded using entropy coding to form a geometric information sub-code stream. Here, S2 is the predicted triangle, and S3 is the triangle to be coded.
[0132] Also, two or three parallelogram pairs may be used here to predict the geometric coordinates to be coded, and no specific coding method is emphasized here.
[0133] (4) UV coordinate coding (control whether to code UV coordinates by identifier) Input: UV coordinates of the base mesh, vertex order with connectivity and connectivity coding, Output: UV coordinate subcode stream after coding.
[0134] You may code the UV coordinates using a parallelogram prediction method like this: Referring to Fig. 8, triangle S1 is a triangle whose UV coordinates have already been coded, and the traversal method for the vertices to be coded is the same as the vertex order for coding the connectivity relationship when coding the connectivity relationship. When the connectivity relationship is not coded, the vertex traversal order is the same as the vertex order in the base mesh. When coding traversal is performed, one side is selected as the currently traversed side τ1, and the triangle formed by another vertex whose connectivity has already been coded is used as a half parallelogram to predict the UV coordinates of the vertex to be coded corresponding to the current side, that is, point A2 in the figure is the predicted vertex. At this time, the coordinate difference value between the predicted vertex and the actual vertex is calculated and coded using entropy coding to form a UV coordinate sub-code stream.
[0135] Also, two or three parallelogram pairs may be used here to predict the UV coordinates to be coded, and no specific coding method is emphasized here.
[0136] If there is no need to code UV coordinates for the identifier mark, skip this module and do not code UV coordinates.
[0137] After the coding of the base mesh is completed, the base mesh code stream needs to be decoded to obtain the geometric information and UV coordinates after clipping. If the UV coordinates are not coded in the identifier mark, the UV coordinates of the base mesh are used to modify the vertex offsets. Based on the decoded geometric information and UV coordinates (based on the identifier, it is determined whether to use the UV coordinates after decoding or the UV coordinates of the base mesh before coding), the vertex offset vector values in the displacement information are modified. Then, the updated displacement information is coded, and one possible displacement information coding method is a linear wavelet transform.
[0138] 1) Conversion and updating of displacement information Input: Displacement information, Output: The transformed displacement information.
[0139] The update process is as follows:
[0140]
number
[0141] The process of wavelet transformation is as follows.
[0142]
number
[0143] It should be noted that the update process in the scheme can be skipped, that is, the displacement information can be directly coded without updating the displacement information.
[0144] 2) Coding of displacement information after transformation Input: Transformed displacement information Output: Displacement information subcode stream After the transformed displacement information is quantized, the transformed displacement information can be aligned into a 2D image using the following method.
[0145] Method 1: Traverse coefficients from low to high frequencies.
[0146] Method 2: For each coefficient, determine the index of the NxM pixel block into which it should be stored in the block's raster order (eg, N=M=16). The position within the NxM pixel block is calculated using Morton order.
[0147] Other ordering schemes may be used, e.g. zigzag ordering, raster ordering, etc. The encoder should explicitly signal the ordering scheme used in the bitflow.
[0148] After the information is arranged into a 2D image, the image can be coded using any video encoder to obtain the displacement information sub-codestream.
[0149] Before coding the texture map, the displacement information sub-codestream needs to be decoded and dequantized to obtain the clipped displacement information. This operation can ensure the consistency of the information used by the codec end. A reconstructed mesh is generated using a combination of the reconstructed base mesh and the clipped displacement information. A new texture map is generated using the reconstructed mesh and the original texture map.
[0150] (5) Regenerate texture maps Input: reconstructed mesh, original texture map Output: The newly generated texture map. The algorithm steps for generating a new texture map using the reconstructed mesh and the original texture map are as follows:
[0151] a) First, calculate the bounding box of the original 3D mesh and obtain the maximum search distance.
[0152] b) Compute the boundary edges in the texture space of the target 3D mesh.
[0153] c) Divide the faces in the original 3D mesh into a uniform grid.
[0154] d) Traversing every face in the target 3D mesh and rasterizing the target texture map using the RGBA values corresponding to the original texture map.
[0155] e) Calculate a bounding box in the texture space of the current face, and then determine the pixel position corresponding to the current face by sampling the center point of each pixel within the bounding box and judging the relationship between the sampling points and the inside and outside of the current face and whether the external sampling points at the boundary of the current face affect the inside of the current face in the texture space.
[0156] f) Within the maximum search distance, search for the closest point of each of the three points of the current face of the target 3D mesh in the original 3D mesh already divided into a uniform grid, obtain the closest face, and set this face as the corresponding face in the original mesh of the current face, thereby obtaining the corresponding texture coordinates in the original 3D mesh of the current face.
[0157] g) Based on the corresponding texture coordinates, calculate pixel RGBA values at corresponding locations of the original texture map for the corresponding face in the original mesh and apply the values to corresponding pixel locations in the target texture map for the current face in the target 3D mesh.
[0158] h) Once all faces have been traversed, rasterization is complete.
[0159] i) The alpha values of the pixels on the border are converted to 255 to smooth the border, and finally, the generated target texture map is filled using a pull-push filling algorithm to make it easier to code and save code streams (you can choose whether to fill or not).
[0160] For a new texture map, a video encoder may be used to directly code the texture map frame by frame, for example, a High Efficiency Video Coding (HEVC) or a generic video coding (VVC) encoder may be used to form an attribute subcode stream. The video encoder may be any video encoder.
[0161] Finally, each sub-codestream is mixed and then an output mesh coding codestream is formed.
[0162] In the embodiment of the present application, the coding side codes a base mesh corresponding to a target 3D mesh according to first identifier information, the base mesh includes reconstructed texture coordinate information corresponding to the target 3D mesh, obtains a first code stream, obtains a second code stream according to mesh difference information, and obtains a third code stream according to reconstructed texture map information, and generates a target code stream according to the first code stream, the second code stream and the third code stream. Because the amount of reconstructed texture coordinate data is relatively large in the 3D mesh, in the embodiment of the application, it can choose not to code the reconstructed texture coordinate information in the base mesh according to the first identifier information, so that the code rate can be greatly saved and the coding efficiency can be improved.
[0163] As shown in FIG. 9, an embodiment of the present application further provides a decoding method, including the following steps: Step 901: The decoding side decomposes the acquired target code stream to obtain a first code stream, a second code stream and a third code stream, where the first code stream is obtained based on a base mesh corresponding to a target 3D mesh, the second code stream is obtained based on mesh difference information, the mesh difference information is used to characterize difference information between the base mesh and the 3D mesh to be coded, the target 3D mesh is obtained based on the 3D mesh to be coded, and the third code stream is obtained based on reconstructed texture map information.
[0164] Step 902: If the decoding side determines that the first codestream includes reconstructed texture coordinate information, reconstruct a target 3D mesh based on a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream.
[0165] Step 903: If the decoding side determines that the first codestream does not include reconstructed texture coordinate information, generate reconstructed texture coordinate information, and reconstruct a target 3D mesh based on the generated reconstructed texture coordinate information, the first decoding result corresponding to the first codestream, the second decoding result corresponding to the second codestream, and the third decoding result corresponding to the third codestream.
[0166] In an embodiment of the present application, the coding side can choose not to code the reconstructed texture coordinate information in the base mesh based on the first identifier information, in which case the decoding side can generate the reconstructed texture coordinate information based on the already decoded information, which can greatly save the code rate and improve the coding efficiency in the lossy mode.
[0167] Optionally, the method of the present application further comprises: The decoding side decomposes the acquired target code stream to obtain first identifier information for characterizing whether the coding side codes the reconstructed texture coordinate information; and determining whether the first codestream includes reconstructed texture coordinate information based on the first identifier information.
[0168] In an embodiment of the present application, the coding side codes first identifier information to indicate whether to code reconstructed texture coordinate information, and thus the decoding side can determine whether it needs to generate reconstructed texture coordinate information based on this first identifier information.
[0169] Optionally, the decoding side decomposes the acquired target code stream to obtain a first code stream, a second code stream and a third code stream, and then: decoding the first codestream to obtain a first decoding result; and determining, based on the first decoding result, whether the first codestream includes reconstructed texture coordinate information.
[0170] In an embodiment of the present application, the coding side may not code the above first identifier information, in which case the decoding side can determine whether the first decoding result includes reconstructed texture coordinate information.
[0171] Optionally, the first decoding result is The target 3D mesh further includes geometric information and connectivity information corresponding to the target 3D mesh.
[0172] Optionally, generating the reconstructed texture coordinate information further comprises: generating the reconstructed texture coordinate information based on the geometric information and connectivity information in accordance with a texture coordinate resampling algorithm;
[0173] Here, the decoding side reconstructs the UV coordinates using the same UV coordinate generation method as the coding side, and obtains reconstructed texture coordinate information.
[0174] Optionally, the decoding side decomposes the acquired target code stream to obtain a first code stream, a second code stream and a third code stream. The decoding side decomposes the acquired target code stream to obtain a first code stream, a second code stream, a third code stream and a fourth code stream, and the fourth code stream is determined according to slice information of the target 3D mesh; reconstructing a target three-dimensional mesh based on a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream comprises reconstructing the target three-dimensional mesh based on the first decoding result, the second decoding result, the third decoding result, and a fourth decoding result corresponding to the fourth codestream; or reconstructing a target three-dimensional mesh based on the generated reconstructed texture coordinate information, the first decoding result corresponding to the first codestream, the second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream comprises reconstructing the target three-dimensional mesh based on the first decoding result, the second decoding result, the third decoding result, the fourth decoding result corresponding to the fourth codestream and the generated reconstructed texture coordinate information.
[0175] In the embodiment of the present application, the 3D mesh decoding framework, as shown in FIG. 10, firstly decomposes the target code stream into a patch information sub-code stream, a geometric information sub-code stream, a connectivity sub-code stream, a UV coordinate sub-code stream (if any), a texture map sub-code stream and a displacement information sub-code stream. These sub-code streams are decoded respectively, and for example, when the code stream includes a UV coordinate sub-code stream, there is no need to regenerate the UV coordinates, and for example, when the code stream does not include the UV coordinates, the UV coordinates need to be regenerated using the same UV coordinate generation algorithm as the coding side. Finally, the 3D mesh is reconstructed using each decoding information. Here, the texture map sub-code stream and the displacement information sub-code stream are decoded using a video decoder. The geometric information, connectivity and UV coordinate sub-code streams are decoded using a decoder corresponding to the coding method of the coding side. The decoding of various information is introduced below.
[0176] 1) Connection Decoding Input: A connection-related subcode stream to be decoded; Output: 3D mesh connectivity and decoded vertex order.
[0177] First, the connection sub-code stream is decoded to obtain a mode string, and then the connection is reconstructed according to the coding order according to the corresponding mode in the string, and the traversal attributes of the vertices are output to the geometry information and UV coordinate decoding module.
[0178] 2) Geometric information decoding Input: Geometric information sub-code stream, decoded displacement information and connection relationship decoding order; Output: Geometric information of the 3D mesh.
[0179] The mesh geometric coordinate decoding process is the reverse process of the coding process: first, entropy decode the coordinate prediction residual; predict the predicted coordinate of the point to be decoded according to the parallelogram rule based on the triangles already decoded; add the entropy decoded residual value to the predicted coordinate to obtain the geometric coordinate position to be decoded; the vertex traverse order here is the same as the vertex order for coding the connectivity relationship when coding the connectivity relationship; when the connectivity relationship is not coded, the vertex traverse order is the same as the vertex order in the base mesh; the geometric coordinates of the initial triangle do not use predictive coding, but directly code their geometric coordinate values; after decoding the geometric coordinates of this triangle, the decoding side starts traverse decoding of the geometric coordinates of the vertices of other triangles as the initial triangle; it is also possible to predict the UV coordinates to be decoded using two or three parallelogram pairs here, and the specific prediction method is not emphasized.
[0180] After the geometric information is decoded, the decoded displacement information needs to be used to modify the geometric information obtained by decoding. The modification method is to use the displacement value in the displacement information to displace the corresponding vertex along the normal vector direction. Finally, the modified geometric information is obtained.
[0181] 3) UV coordinate decoding and reconstruction (determining whether to decode the UV coordinate based on the first identifier) Input: UV coordinate code stream to be decoded, the decoding sequence of the geometric information and connection relationship after decoding and correction; Output: Reconstructed UV coordinates of the 3D mesh.
[0182] When the code stream includes a UV coordinate sub-code stream, the decoding process of the mesh UV coordinate is the reverse process of the coding process: first, entropy decode the coordinate prediction residual. Then, based on the triangles already decoded, predict the predicted coordinates of the points to be decoded according to the parallelogram rule. By adding the entropy decoded residual value to the predicted coordinates, the UV coordinate position to be decoded can be obtained. Note that the UV coordinates of the initial triangle do not use predictive coding, but directly code their UV coordinate values. After the decoding side decodes the UV coordinates of this triangle, it starts traverse decoding of the UV coordinates of the vertices of other triangles as the initial triangle. Also, two or three parallelogram pairs may be used to predict the UV coordinates to be decoded, and the specific prediction method is not emphasized.
[0183] If the codestream does not include a UV coordinate sub-codestream, the same UV coordinate generation algorithm as that of the coding side is used to generate UV coordinates using the geometric information and connection relationships obtained by decoding.
[0184] After decoding or reconstructing the UV coordinates, the decoded displacement information needs to be used to modify the decoded UV coordinates. The modification method is to use the displacement value in the displacement information to displace the corresponding vertex along the normal vector direction. Finally, the modified UV coordinates are obtained.
[0185] 4) Texture map decoding Input: Texture map subcode stream, Output: Texture map.
[0186] A video decoder can be directly used to decode the texture map to obtain the texture map frame by frame, where the file format of the texture map is not emphasized, and the format can be jpg, png, etc.
[0187] In an embodiment of the present application, the coding side can choose not to code the reconstructed texture coordinate information in the base mesh based on the first identifier information, in which case the decoding side can generate the reconstructed texture coordinate information based on the already decoded information, which can greatly save the code rate and improve the coding efficiency in the lossy mode.
[0188] The execution body of the coding method according to the embodiment of the present application may be a coding device. In the embodiment of the present application, the coding device executes the coding method as an example, and the coding device according to the embodiment of the present application will be described.
[0189] As shown in FIG. 11, the embodiment of the present application further provides a coding device 1100 for use in coding side, the coding device 1100 comprising: a first coding module 1101 for coding a base mesh corresponding to a target 3D mesh based on first identifier information to obtain a first code stream, the base mesh including reconstructed texture coordinate information corresponding to the target 3D mesh, and the first identifier information is used to characterize whether to code the reconstructed texture coordinate information; a first acquisition module 1102 for acquiring a second code stream based on mesh difference information, the mesh difference information being used to characterize difference information between the base mesh and the 3D mesh to be coded, and the target 3D mesh is obtained based on the 3D mesh to be coded; a second acquisition module 1103 for acquiring a third codestream based on reconstructed texture map information, the second acquisition module 1103 acquiring a third codestream based on the reconstructed texture map information, the second acquisition module 1103 acquiring a third codestream based on the reconstructed texture map information; A first generating module 1104 for generating a target codestream based on the first codestream, the second codestream and the third codestream.
[0190] Optionally, the first generating module further comprises: a first obtaining sub-module for coding the first identifier information and obtaining the coded first identifier information; a first generating sub-module for generating a target codestream based on the coded first identifier information, the first codestream and the second codestream.
[0191] Optionally, the base mesh further includes geometric information and connectivity information corresponding to the target 3D mesh.
[0192] Optionally, the first coding module comprises: if the first identifier information is characterized as coding reconstructed texture coordinate information corresponding to the target 3D mesh, coding the geometric information, the connectivity information and the reconstructed texture coordinate information to obtain a first codestream; And / or, when the first identifier information is characterized as not coding reconstructed texture coordinate information corresponding to the target 3D mesh, it is used to code the geometric information and connectivity relationship information to obtain a first codestream.
[0193] Optionally, the device of the present application comprises: a third acquisition module for performing a decoding and dequantization process on the first codestream to obtain a reconstructed base mesh before the second acquisition module acquires a third codestream based on the reconstructed texture map information; a fourth obtaining module for performing a decoding and inverse quantization process on the second code stream to obtain target mesh difference information; and a second generating module for generating reconstructed texture map information based on the reconstructed base mesh and the target mesh difference information according to a texture map generating algorithm.
[0194] Optionally, the first acquisition module: a second obtaining sub-module for decoding the first codestream and obtaining a reconstructed mesh corresponding to the first codestream; an update submodule for updating the mesh difference information based on the reconstructed mesh to obtain updated mesh difference information; a first coding sub-module for coding the updated mesh difference information to obtain the second codestream.
[0195] Optionally, the device of the present application comprises: The first coding module further includes a fifth acquisition module for coding a base mesh corresponding to the target three-dimensional mesh based on the first identifier information, and before obtaining the first code stream, when in a lossy coding mode, performing a simplification process on the three-dimensional mesh to be coded to obtain the target three-dimensional mesh, and when in a lossless coding mode, determining the three-dimensional mesh to be coded as the target three-dimensional mesh.
[0196] Optionally, the first generating module further comprises: a third acquisition sub-module for acquiring a fourth codestream based on slice information of the target 3D mesh; and a fourth obtaining sub-module for obtaining the target codestream based on the first codestream, the second codestream, the third codestream, and the fourth codestream.
[0197] In the embodiment of the present application, the coding side codes a base mesh corresponding to a target 3D mesh according to the first identifier information, obtains a first code stream, and obtains a second code stream according to the mesh difference information, and generates a target code stream according to the first code stream and the second code stream. Because the amount of reconstructed texture coordinate data in the 3D mesh is relatively large, in the embodiment of the present application, it can choose not to code the reconstructed texture coordinate information in the base mesh according to the first identifier information, so that the code rate can be greatly saved and the coding efficiency can be improved.
[0198] This device embodiment corresponds to the coding method embodiment shown in FIG. 1 above, and in the above method embodiment, each implementation process and realization manner related to the coding side can be applied to this device embodiment, and the same technical effects can be achieved.
[0199] Specifically, an embodiment of the present application further provides a coding device, and as shown in Fig. 12, the coding device 1200 includes a processor 1201, a network interface 1202, and a memory 1203. Here, the network interface 1202 is, for example, a common public radio interface (CPRI).
[0200] Specifically, the coding device 1200 of an embodiment of the present application further includes instructions or programs stored in memory 1203 and capable of running on the processor 1201, and the processor 1201 calls the instructions or programs in the memory 1203 to execute the method performed by each module shown in FIG. 11, and achieves the same technical effect, which will not be described further here in order to avoid repetition of description.
[0201] The execution body of the decoding method according to the embodiment of the present application may be a decoding device. In the embodiment of the present application, the decoding device according to the embodiment of the present application will be described by taking the decoding method as an example.
[0202] As shown in FIG. 13, the embodiment of the present application further provides a decoding device 1300 for use in a decoding side, the decoding device 1300 comprising: a sixth acquisition module 1301 for decomposing the acquired target code stream to obtain a first code stream, a second code stream and a third code stream, where the first code stream is obtained based on a base mesh corresponding to a target 3D mesh, the second code stream is obtained based on mesh difference information, the mesh difference information is used to characterize difference information between the base mesh and the 3D mesh to be coded, the target 3D mesh is obtained based on the 3D mesh to be coded, and the third code stream is obtained based on reconstructed texture map information; a reconstruction module 1302 for reconstructing a target 3D mesh based on a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream when the decoding side determines that the first codestream includes reconstructed texture coordinate information, and / or generating reconstructed texture coordinate information when the decoding side determines that the first codestream does not include reconstructed texture coordinate information, and for reconstructing a target 3D mesh based on the generated reconstructed texture coordinate information, the first decoding result corresponding to the first codestream, the second decoding result corresponding to the second codestream, and the third decoding result corresponding to the third codestream.
[0203] Optionally, the device of the present application comprises: a seventh obtaining module for decomposing the obtained target code stream to obtain first identifier information for characterizing whether the coding side codes the reconstructed texture coordinate information; and a first determination module for determining whether the first codestream includes reconstructed texture coordinate information based on the first identifier information.
[0204] Optionally, the device of the present application comprises: an eighth acquisition module for decomposing the target code stream acquired by the sixth acquisition module to obtain a first code stream, a second code stream and a third code stream, and then performing a decoding process on the first code stream to obtain a first decoding result; and a second determining module for determining, based on the first decoding result, whether the first codestream includes reconstructed texture coordinate information.
[0205] Optionally, the first decoding result is The target 3D mesh further includes geometric information and connectivity information corresponding to the target 3D mesh.
[0206] Optionally, the reconstruction module is adapted to generate the reconstructed texture coordinate information according to a texture coordinate resampling algorithm based on the geometric information and connectivity information.
[0207] Optionally, the sixth acquisition module is used to decompose the acquired target code stream to obtain a first code stream, a second code stream, a third code stream and a fourth code stream, and the fourth code stream is determined according to slice information of a target 3D mesh; The reconstruction module is used to reconstruct the target 3D mesh based on the first decoding result, the second decoding result, the third decoding result and a fourth decoding result corresponding to the fourth codestream, or to reconstruct the target 3D mesh based on the first decoding result, the second decoding result, the third decoding result, the fourth decoding result corresponding to the fourth codestream and generated reconstructed texture coordinate information.
[0208] In an embodiment of the present application, the coding side can choose not to code the reconstructed texture coordinate information in the base mesh based on the first identifier information, in which case the decoding side can generate the reconstructed texture coordinate information based on the already decoded information, which can greatly save the code rate and improve the coding efficiency in the lossy mode.
[0209] It should be noted that this apparatus embodiment is an apparatus corresponding to the method embodiment shown in FIG. 9 above, and all the implementation methods related to the decoding side in the above method embodiment can be applied to this apparatus embodiment to achieve the same technical effects, and will not be further described here.
[0210] An embodiment of the present application further provides a decoding device including a processor, a memory, and a program or instruction stored on the memory and capable of running on the processor, which, when executed by the processor, can realize each process of the above-mentioned decoding method embodiment and achieve the same technical effect, and will not be described further here in order to avoid repetition of description.
[0211] An embodiment of the present application further provides a coding apparatus including a processor, a memory, and a program or instruction stored on the memory and operable on the processor, which, when executed by the processor, can realize each process of the above coding method embodiment and achieve the same technical effect, and will not be described further here in order to avoid repetition of description.
[0212] An embodiment of the present application further provides a computer-readable storage medium, which stores a program or instruction, and when the program or instruction is executed by a processor, it can realize each process of the above-mentioned coding method or decoding method embodiment and achieve the same technical effect, which will not be described further here in order to avoid repetition of description.
[0213] Wherein, the processor is the processor in the decoding device according to the above embodiment. The readable storage medium includes a computer readable storage medium, such as a computer read only memory ROM, a random access memory RAM, a magnetic disk or an optical disk.
[0214] Here, the computer-readable storage medium includes, for example, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0215] An embodiment of the present application further provides a coding device, including a processor and a communication interface, where the processor is used for: coding a base mesh corresponding to a target three-dimensional mesh based on first identifier information to obtain a first code stream, where the base mesh includes reconstructed texture coordinate information corresponding to the target three-dimensional mesh, and the first identifier information is used to characterize whether to code the reconstructed texture coordinate information; obtaining a second code stream based on mesh difference information, where the mesh difference information is used to characterize difference information between the base mesh and the three-dimensional mesh to be coded, and the target three-dimensional mesh is obtained based on the three-dimensional mesh to be coded; obtaining a third code stream based on reconstructed texture map information, where the reconstructed texture map information is obtained based on the first code stream and the second code stream; and generating a target code stream based on the first code stream, the second code stream and the third code stream.
[0216] The embodiment of this coding device corresponds to the embodiment of the above coding method, and each implementation process and realization manner of the embodiment of the above method can be applied to the embodiment of this coding device and can achieve the same technical effects.
[0217] An embodiment of the present application further provides a decoding device, including a processor and a communication interface, in which the processor decomposes the acquired target code stream to obtain a first code stream, a second code stream and a third code stream, in which the first code stream is obtained based on a base mesh corresponding to a target three-dimensional mesh, the second code stream is obtained based on mesh difference information, the mesh difference information is used to characterize difference information between the base mesh and the three-dimensional mesh to be coded, the target three-dimensional mesh is obtained based on the three-dimensional mesh to be coded, and the third code stream is obtained based on reconstructed texture map information; and reconstructing a target 3D mesh based on a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream, if it is determined that the first codestream includes reconstructed texture coordinate information; and generating reconstructed texture coordinate information and reconstructing a target 3D mesh based on the generated reconstructed texture coordinate information, the first decoding result corresponding to the first codestream, the second decoding result corresponding to the second codestream, and the third decoding result corresponding to the third codestream, if it is determined that the first codestream does not include reconstructed texture coordinate information.
[0218] This embodiment of the decoding device corresponds to the embodiment of the above-mentioned decoding method, and each implementation process and realization manner of the above-mentioned method embodiment can be applied to this embodiment of the decoding device, and the same technical effects can be achieved.
[0219] Specifically, the embodiment of the present application further provides a decoding device. Specifically, the structure of the decoding device is as shown in Fig. 14, the decoding device 1400 includes a processor 1401, a network interface 1402 and a memory 1403. Here, the network interface 1402 is, for example, a common public radio interface (CPRI). Specifically, the decoding device 1400 of the embodiment of the present application further includes instructions or programs stored in the memory 1403 and can run on the processor 1401, and the processor 1401 calls the instructions or programs in the memory 1403 to execute the method executed by each module shown in Fig. 13, and achieves the same technical effect, and will not be described further here in order to avoid repetition.
[0220] Optionally, as shown in Fig. 15, the embodiment of the present application further provides a communication device 1500 including a processor 1501 and a memory 1502, and the memory 1502 stores a program or instruction that can run on the processor 1501, for example, when the communication device 1500 is a coding device, the program or instruction can be executed by the processor 1501 to realize each step of the embodiment of the coding method and achieve the same technical effect. When the communication device 1500 is a decoding device, the program or instruction can be executed by the processor 1501 to realize each step of the embodiment of the decoding method and achieve the same technical effect, and will not be described further here to avoid repetition.
[0221] An embodiment of the present application further provides a chip, the chip including a processor and a communication interface, the communication interface being coupled to the processor, the processor being used to run a program or instruction to realize each process of the embodiment of the above coding method or decoding method, and the same technical effect can be achieved, and in order to avoid repetition of description, no further description will be given here.
[0222] It should be understood that the chips referred to in the embodiments of the present application may be referred to as system level chips, system chips, chip systems, or systems on chips.
[0223] An embodiment of the present application further provides a computer program / program product, which is stored in a storage medium, and which can be executed by at least one processor to realize each process of the above coding method or decoding method embodiment and achieve the same technical effect, which will not be described further here in order to avoid repetition of description.
[0224] An embodiment of the present application further provides a communication system including at least a coding device and a decoding device. The coding device may be the coding device shown in Figure 12, and may be used to perform the steps of the coding method described in Figure 1. The decoding device may be the decoding device shown in Figure 14, and may be used to perform the steps of the decoding method described in Figure 9, and may achieve the same technical effect, and will not be further described here to avoid repetition.
[0225] It should be explained that in this specification, the terms "comprise", "include", or any other variants thereof are intended to cover the non-exclusive "comprise", whereby a process, method, article, or apparatus that includes a set of elements includes not only those elements, but also other elements not expressly listed or inherent to such process, method, article, or apparatus. In the absence of further limitations, an element limited by the phrase "comprises one of" does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes this element. It should be pointed out that the scope of the method and apparatus in the embodiments of this application is not limited to performing functions in the order shown or discussed, but may include performing functions in an essentially simultaneous manner or in the reverse order based on the functions involved, for example, the described method can be performed in a different order than described, and various steps can be added, omitted, or combined. Also, features described with reference to some examples can be combined in other examples.
[0226] From the above description of the embodiments, it is clear to those skilled in the art that the methods of the above embodiments can be realized in the form of software and a necessary general-purpose hardware platform. Of course, they can also be realized in hardware, but in many cases the former is a more preferred embodiment. Based on this understanding, the technical solution of the present application may be substantially or partly based on the related art embodied in the form of a computer software product, which is stored in a storage medium (e.g., ROM / RAM, magnetic disk, optical disk) and includes some instructions for causing a terminal (which may be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) to execute the methods described in the embodiments of the present application.
[0227] The above describes the embodiments of the present application in conjunction with the drawings, but the present application is not limited to the above specific embodiments. The above specific embodiments are merely illustrative and not limiting. Those skilled in the art can take the suggestions of this application and make many forms without departing from the spirit and scope of the claims of this application, all of which belong to the protection scope of this application.
Claims
1. 1. A coding method comprising: A coding side codes a base mesh corresponding to a target 3D mesh according to first identifier information to obtain a first code stream, where the base mesh includes reconstructed texture coordinate information corresponding to the target 3D mesh, and the first identifier information is used to characterize whether to code the reconstructed texture coordinate information; The coding side obtains a second code stream according to mesh difference information, where the mesh difference information is used to characterize difference information between the base mesh and the 3D mesh to be coded, and the target 3D mesh is obtained according to the 3D mesh to be coded; The coding side obtains a third codestream based on reconstructed texture map information, the reconstructed texture map information being obtained based on the first codestream and the second codestream; the coding side generating a target codestream based on the first codestream, the second codestream and the third codestream.
2. generating a target codestream based on the first codestream and the second codestream by the coding side, coding the first identifier information to obtain coded first identifier information; 2. The method of claim 1, further comprising generating a target codestream based on the coded first identifier information, the first codestream and the second codestream.
3. The method of claim 1 , wherein the base mesh further comprises geometric and connectivity information corresponding to the target 3D mesh.
4. The coding side codes a base mesh corresponding to the target 3D mesh according to the first identifier information to obtain a first code stream. if the first identifier information is characterized as coding reconstructed texture coordinate information corresponding to the target 3D mesh, coding the geometric information, connectivity information and reconstructed texture coordinate information to obtain a first codestream; and / or if the first identifier information characterizes not coding reconstructed texture coordinate information corresponding to the target 3D mesh, coding the geometric information and connectivity relationship information to obtain a first codestream.
5. before the coding side obtains a third codestream based on the reconstructed texture map information; performing a decoding and inverse quantization process on the first codestream to obtain a reconstructed base mesh; performing a decoding and inverse quantization process on the second code stream to obtain target mesh difference information; The method of claim 3 , further comprising: generating reconstructed texture map information based on the reconstructed base mesh and the target mesh difference information according to a texture map generation algorithm.
6. The coding side obtains a second code stream according to the mesh difference information, decoding the first codestream to obtain a reconstructed mesh corresponding to the first codestream; updating the mesh difference information based on the reconstructed mesh to obtain updated mesh difference information; and coding the updated mesh difference information to obtain the second codestream.
7. Before the coding side codes a base mesh corresponding to the target 3D mesh according to the first identifier information to obtain a first code stream, When in a lossy coding mode, simplifying the 3D mesh to be coded to obtain a target 3D mesh; The method of claim 1 , further comprising: if in a lossless coding mode, determining the 3D mesh to be coded as a target 3D mesh.
8. generating a target codestream based on the first codestream, the second codestream, and the third codestream by the coding side; obtaining a fourth codestream based on slice information of the target 3D mesh; 2. The method of claim 1, further comprising: deriving the target codestream based on the first codestream, the second codestream, the third codestream, and the fourth codestream.
9. A decoding method comprising the steps of: a decoding side decomposes the acquired target code stream to obtain a first code stream, a second code stream and a third code stream, in which the first code stream is obtained based on a base mesh corresponding to a target 3D mesh, the second code stream is obtained based on mesh difference information, the mesh difference information is used to characterize difference information between the base mesh and the 3D mesh to be coded, the target 3D mesh is obtained based on the 3D mesh to be coded, and the third code stream is obtained based on reconstructed texture map information; if the decoding side determines that the first codestream includes reconstructed texture coordinate information, reconstructing a target 3D mesh based on a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream; generating reconstructed texture coordinate information when the decoding side determines that the first codestream does not include reconstructed texture coordinate information, and reconstructing a target three-dimensional mesh based on the generated reconstructed texture coordinate information, a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream.
10. The decoding side decomposes the acquired target code stream to obtain first identifier information for characterizing whether the coding side codes the reconstructed texture coordinate information; 10. The method of claim 9, further comprising: determining whether the first codestream includes reconstructed texture coordinate information based on the first identifier information.
11. The decoding side decomposes the acquired target code stream to obtain a first code stream, a second code stream and a third code stream. decoding the first codestream to obtain a first decoding result; 10. The method of claim 9, further comprising: determining whether the first codestream includes reconstructed texture coordinate information based on the first decoding result.
12. The first decoding result is The method of claim 9 , further comprising geometric and connectivity information corresponding to the target 3D mesh.
13. The generating of the reconstructed texture coordinate information includes: The method of claim 12 , comprising generating the reconstructed texture coordinate information according to a texture coordinate resampling algorithm based on the geometric information and connectivity information.
14. Decomposing the acquired target code stream by the decoding side to obtain a first code stream, a second code stream and a third code stream; The decoding side decomposes the acquired target code stream to obtain a first code stream, a second code stream, a third code stream and a fourth code stream, and the fourth code stream is determined according to slice information of the target 3D mesh; 10. The method of claim 9, wherein reconstructing a target three-dimensional mesh based on a first decoding result corresponding to the first code stream, a second decoding result corresponding to the second code stream, and a third decoding result corresponding to the third code stream comprises reconstructing the target three-dimensional mesh based on the first decoding result, the second decoding result, the third decoding result, and a fourth decoding result corresponding to the fourth code stream; or wherein reconstructing a target three-dimensional mesh based on the generated reconstructed texture coordinate information, the first decoding result corresponding to the first code stream, the second decoding result corresponding to the second code stream, and a third decoding result corresponding to the third code stream comprises reconstructing the target three-dimensional mesh based on the first decoding result, the second decoding result, the third decoding result, the fourth decoding result corresponding to the fourth code stream, and the generated reconstructed texture coordinate information.
15. A coding device used on the coding side, a first coding module for coding a base mesh corresponding to a target 3D mesh based on first identifier information to obtain a first code stream, the base mesh including reconstructed texture coordinate information corresponding to the target 3D mesh, and the first identifier information is used to characterize whether to code the reconstructed texture coordinate information; a first obtaining module for obtaining a second code stream based on mesh difference information, the mesh difference information being used to characterize difference information between the base mesh and the 3D mesh to be coded, and the target 3D mesh is obtained based on the 3D mesh to be coded; a second acquisition module for acquiring a third codestream based on reconstructed texture map information, the second acquisition module obtaining the third codestream based on the reconstructed texture map information and the first codestream and the second codestream; a first generating module for generating a target codestream based on the first codestream, the second codestream and the third codestream.
16. The first generation module: a first obtaining sub-module for coding the first identifier information and obtaining the coded first identifier information; 16. The apparatus of claim 15, further comprising: a first generating sub-module for generating a target codestream based on the coded first identifier information, the first codestream and the second codestream.
17. The apparatus of claim 15 , wherein the base mesh further comprises geometric and connectivity information corresponding to the target three-dimensional mesh.
18. The first coding module comprises: if the first identifier information is characterized as coding reconstructed texture coordinate information corresponding to the target 3D mesh, coding the geometric information, connectivity information and reconstructed texture coordinate information to obtain a first codestream; and / or when the first identifier information characterizes not coding reconstructed texture coordinate information corresponding to the target 3D mesh, the device is used to code the geometric information and connectivity information to obtain a first codestream.
19. a third acquisition module for performing a decoding and dequantization process on the first codestream to obtain a reconstructed base mesh before the second acquisition module acquires a third codestream based on the reconstructed texture map information; a fourth obtaining module for performing a decoding and inverse quantization process on the second code stream to obtain target mesh difference information; 20. The apparatus of claim 17, further comprising: a second generation module for generating reconstructed texture map information based on the reconstructed base mesh and the target mesh difference information according to a texture map generation algorithm.
20. The first acquisition module includes: a second obtaining sub-module for decoding the first codestream and obtaining a reconstructed mesh corresponding to the first codestream; an update submodule for updating the mesh difference information based on the reconstructed mesh to obtain updated mesh difference information; and a first coding sub-module for coding the updated mesh difference information to obtain the second codestream.
21. The apparatus of claim 15, further comprising a fifth obtaining module for, before the first coding module codes a base mesh corresponding to the target three-dimensional mesh based on the first identifier information, and, when in a lossy coding mode, simplifies the three-dimensional mesh to be coded to obtain the target three-dimensional mesh before obtaining the first code stream, and, when in a lossless coding mode, determines the three-dimensional mesh to be coded as the target three-dimensional mesh.
22. The first generation module: a third acquisition sub-module for acquiring a fourth codestream based on slice information of the target 3D mesh; and a fourth obtaining sub-module for obtaining the target codestream based on the first codestream, the second codestream, the third codestream, and the fourth codestream.
23. A decoding device used on the decoding side, a sixth acquisition module for decomposing the acquired target code stream to obtain a first code stream, a second code stream and a third code stream, wherein the first code stream is obtained based on a base mesh corresponding to a target 3D mesh, the second code stream is obtained based on mesh difference information, the mesh difference information is used to characterize difference information between the base mesh and the 3D mesh to be coded, the target 3D mesh is obtained based on the 3D mesh to be coded, and the third code stream is obtained based on reconstructed texture map information; a reconstruction module for reconstructing a target three-dimensional mesh based on a first decoding result corresponding to the first codestream, a second decoding result corresponding to the second codestream, and a third decoding result corresponding to the third codestream when the decoding side determines that the first codestream includes reconstructed texture coordinate information, and / or for generating reconstructed texture coordinate information when the decoding side determines that the first codestream does not include reconstructed texture coordinate information, and for reconstructing a target three-dimensional mesh based on the generated reconstructed texture coordinate information, the first decoding result corresponding to the first codestream, the second decoding result corresponding to the second codestream, and the third decoding result corresponding to the third codestream.
24. a seventh obtaining module for decomposing the obtained target code stream to obtain first identifier information for characterizing whether the coding side codes the reconstructed texture coordinate information; and a first determination module for determining whether the first codestream includes reconstructed texture coordinate information based on the first identifier information.
25. an eighth acquisition module for decomposing the target code stream acquired by the sixth acquisition module to obtain a first code stream, a second code stream and a third code stream, and then performing a decoding process on the first code stream to obtain a first decoding result; and a second determination module for determining, based on the first decoding result, whether the first codestream includes reconstructed texture coordinate information.
26. The first decoding result is 26. The apparatus of claim 23, further comprising geometric and connectivity information corresponding to the target three-dimensional mesh.
27. The apparatus of claim 26, wherein the reconstruction module is adapted to generate the reconstructed texture coordinate information according to a texture coordinate resampling algorithm based on the geometric information and connectivity information.
28. The sixth acquisition module is used for decomposing the acquired target code stream to obtain a first code stream, a second code stream, a third code stream and a fourth code stream, and the fourth code stream is determined according to slice information of a target 3D mesh; 24. The apparatus of claim 23, wherein the reconstruction module is used to reconstruct the target three-dimensional mesh based on the first decoding result, the second decoding result, the third decoding result and a fourth decoding result corresponding to the fourth codestream, or to reconstruct the target three-dimensional mesh based on the first decoding result, the second decoding result, the third decoding result, a fourth decoding result corresponding to the fourth codestream and generated reconstructed texture coordinate information.
29. A coding device comprising a processor and a memory, the memory storing a program or instructions operable on the processor, the program or instructions implementing the steps of the coding method according to any one of claims 1 to 8 when executed by the processor.
30. A decoding device comprising a processor and a memory, the memory storing a program or instructions operable on the processor, the program or instructions implementing the steps of the decoding method according to any one of claims 9 to 14 when executed by the processor.
31. A readable storage medium having a program or instructions stored therein, the program or instructions implementing the steps of the coding method of any one of claims 1 to 8, or the decoding method of any one of claims 9 to 14, when executed by a processor.
Citation Information
Patent Citations
Information processing apparatus, information processing method, data structure, and program
JP2021022122A
Method and apparatus for dynamic mesh compression
JP2023547173A
Mesh Compression Using Estimated Texture Coordinates
JP2024516343A
Method and apparatus for encoding / decoding 3D meshes - Patents.com
JP2025505366A
Encoding and decoding of texture mapping data in textured 3D mesh models
US20180253867A1