Coding method, decoding method, device and apparatus
By separating the coding process into multiple streams and selectively omitting texture coordinate coding, the method addresses low efficiency in 3D mesh coding, achieving reduced coding rates and improved efficiency.
Patent Information
- Application Number
- JP2024570781
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-05-31
- Filing Date
- 2023-05-24
- Publication Date
- 2025-12-01
- Estimated Expiration
- 2043-05-24
AI Technical Summary
Existing coding methods for 3D meshes result in low efficiency due to the large amount of UV coordinate data, leading to high coding rates.
A coding method that separates the coding process into three streams: one for a base mesh with reconstructed texture coordinate information, one for mesh difference information, and one for reconstructed texture map information, allowing for selective omission of texture coordinate coding based on identifier information.
This approach significantly reduces coding rate and improves efficiency by selectively omitting texture coordinate coding, thereby enhancing the overall coding process.
Smart Images

Figure 0007778253000043 
Figure 0007778253000044 
Figure 0007778253000045
Abstract
Description
[Technical Field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims priority from 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 belongs to the technical field of codecs, and in particular to coding methods, decoding methods, devices and equipment. [Background technology]
[0003] 3D meshes can be considered 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, tablets, and smart phones, which are dedicated to rendering 3D meshes.
[0004] Texture coordinates, also known as UV coordinates, are information describing the vertex texture of a 3D mesh. Because the amount of UV coordinate data is relatively large in a 3D mesh, 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: 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 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; the coding side obtaining a third codestream based on reconstructed texture map information, wherein the reconstructed texture map information is 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 decomposing the acquired target codestream to obtain a first codestream, a second codestream and a third codestream, wherein the first codestream is obtained based on a base mesh corresponding to a target 3D mesh, the second codestream is obtained based on mesh difference information, and 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 codestream 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; If the decoding side determines 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.
[0008] According to a third aspect, there is provided a coding device for use on the 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 codestream, wherein the base mesh includes reconstructed texture coordinate information corresponding to the target 3D mesh, and the first identifier information is used to characterize whether the first coding module codes the reconstructed texture coordinate information; a first acquisition module for acquiring a second codestream 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 being 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 reconstructed texture map information being obtained based on 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.
[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; and 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, the 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 adapted to implement the steps of the method of the first aspect when executed by the processor.
[0011] According to a sixth aspect, there is provided a coding device including a processor and a communications interface, wherein the processor is used to: code a base mesh corresponding to a target 3D mesh based on first identifier information to obtain a first codestream, wherein 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; obtain a second codestream based on mesh difference information, wherein 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; obtain a third codestream based on reconstructed texture map information, wherein the reconstructed texture map information is obtained based on the first codestream and the second codestream; and generate a target codestream based on the first codestream, the second codestream, and the third codestream.
[0012] According to a seventh aspect, there is provided a decoding apparatus, the 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 adapted to perform the steps of the method of the second aspect when executed by the processor.
[0013] According to an eighth aspect, there is provided a decoding device including a processor and a communication interface, wherein the processor decomposes an 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 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; if determining 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; If it is determined that the first codestream does not contain reconstructed texture coordinate information, the method is used to generate reconstructed texture coordinate information, and to reconstruct 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 adapted to perform steps of the coding method according to the first aspect, and the decoding device being adapted 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 performing the steps of the method according to the first aspect or performing the steps of the method according to the second aspect when executed by a processor.
[0016] According to an eleventh aspect, there is provided a chip, the chip including a processor and a communication interface, the communication interface being coupled to the processor, the processor running a program or instruction to implement the method of the first aspect or to be 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. [Effects of the Invention]
[0018] In an embodiment of the present application, the coding side codes a base mesh corresponding to a target 3D mesh based on first identifier information, the base mesh including reconstructed texture coordinate information corresponding to the target 3D mesh, obtains a first code stream, obtains a second code stream based on mesh difference information, and obtains a third code stream based on the reconstructed texture map information, and generates a target code stream based on the first code stream, the second code stream, and the third code stream. Because the amount of reconstructed texture coordinate data in the 3D mesh is relatively large, in an embodiment of the present application, it can choose not to code the reconstructed texture coordinate information in the base mesh based on the first identifier information, thereby significantly reducing the coding rate and improving coding efficiency. [Brief explanation of the drawings]
[0019] [Figure 1] 1 is a flowchart of a coding method according to an embodiment of the present application; [Figure 2] FIG. 1 is a coding framework diagram of a 3D mesh in an embodiment of the present application. [Figure 3] FIG. 1 is a schematic diagram of a pre-treatment module in an embodiment of the present application. [Figure 4] FIG. 10 is a schematic diagram of a vertex integration process in a mesh simplification process in an embodiment of the present application. [Figure 5] FIG. 1 is a schematic diagram of a point subdivision method in an embodiment of the present application. [Figure 6] FIG. 1 is a schematic diagram of a displacement calculation method in an embodiment of the present application. [Figure 7] 1 is a schematic diagram of the five modes of operation defined in EB. [Figure 8] 1 is a predicted schematic diagram of a geometric coordinate parallelogram. [Figure 9] 1 is a flowchart of a decoding method according to an embodiment of the present application; [Figure 10] 1 is a schematic diagram of a 3D mesh decoding framework in an embodiment of the present application; [Figure 11] 1 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] 1 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] 1 is a structural schematic diagram of a communication device according to an embodiment of the present application; DETAILED DESCRIPTION OF THE INVENTION
[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 fall within the scope of protection of the present application.
[0021] The terms "first," "second," etc. in the specification and claims of this application are intended to distinguish between similar objects and are not intended to describe a particular order or sequence. It should be understood that terms used in this manner are interchangeable where appropriate, so that embodiments of this application may be performed in orders other than those illustrated or described herein, and that objects distinguished by "first" and "second" are generally of the same type and do not limit the number of objects; for example, a first object may be one or more. Furthermore, "and / or" in the specification and claims indicates at least one of the connected objects, and the character " / " generally indicates 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 described techniques may be used in the above-mentioned systems and radio technologies, as well as other systems and radio technologies. The following description describes a New Radio (NR) system for illustrative purposes, and NR terminology is used in most of the following description. However, these techniques may also be used in applications other than NR system applications, such as sixth generation (6G) networks. th This may be applied to 6G (6th Generation) communication systems.
[0023] Hereinafter, the coding method and decoding method according to the embodiments of the present application will be described in detail with reference to several examples and application scenarios 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 3D 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 3D mesh, and the first identifier information is used to characterize whether to code the reconstructed texture coordinate information.
[0026] In the 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, if the first identifier information is 1, it indicates that the reconstructed texture coordinate information needs to be coded, and if 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 coordinates, i.e., UV coordinates, corresponding to each vertex, which are used to characterize the texture color values of the corresponding vertex.
[0028] It should be noted 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, connectivity 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 after integration, a base mesh code stream, i.e., the first code stream, may be obtained.
[0031] Step 102: The coding side obtains a second code stream based on mesh difference information, which 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 the difference information between the base mesh after thinning and the 3D mesh to be coded.
[0033] Optionally, a thinning interpolation (refinement) process is performed on the geometric information and UV coordinates of the base mesh, and the displacement vector between the interpolated point and the nearest point of the original mesh (the 3D 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] The reconstructed texture map information is then 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 the first codestream, the second codestream and the 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 an embodiment of the present application, the coding side codes a base mesh corresponding to a target 3D mesh based on first identifier information, the base mesh including reconstructed texture coordinate information corresponding to the target 3D mesh, obtains a first code stream, obtains a second code stream based on mesh difference information, and obtains a third code stream based on the reconstructed texture map information, and generates a target code stream based on the first code stream, the second code stream, and the third code stream. Because the amount of reconstructed texture coordinate data in the 3D mesh is relatively large, in an embodiment of the present application, it can choose not to code the reconstructed texture coordinate information in the base mesh based on the first identifier information, thereby significantly reducing the coding rate and improving coding efficiency.
[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 codestream, 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 the embodiment of the present application, in the lossy coding mode, the 3D mesh to be coded is pre-processed, and this pre-processing may be a simplification process, for example, a simplification operation of the geometric relationships and connection relationships, that is, reducing the number of mesh vertices and edges while keeping the mesh structure as much as possible, and further reducing the data volume 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 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 codestream. if the first identifier information is characterized by 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 that the reconstructed texture coordinate information corresponding to the target 3D mesh is not coded, coding the geometric information and connectivity relationship information to obtain a first codestream.
[0045] In the embodiment of the present application, the user may set the first identifier information according to actual needs, that is, the user may choose 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 dequantization process on the first codestream to obtain a reconstructed base mesh; performing decoding and inverse quantization on the second codestream to obtain target mesh difference information; and generating reconstructed texture map information according to a texture map generation algorithm based on the reconstructed base mesh and the target mesh difference information. Optionally, in an embodiment of the present application, the reconstructed texture coordinate information is generated according to a texture coordinate resampling algorithm based on the geometric information and connectivity information of the base mesh corresponding to the target 3D mesh.
[0047] The method for generating this reconstructed texture coordinate information is the same as that used in the related art, and will not be described further here.
[0048] Optionally, the coding side obtains the second codestream based on 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.
[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 mesh difference information needs to be updated 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] After updating the mesh difference information, the mesh difference information is transformed, for example, by wavelet transform. The transformed displacement information is quantized and arranged into pixel point values of the image according to a certain rule, for example, z-scan order. 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 this embodiment, the coding side codes the preprocessed mesh (called the base mesh), displacement information representing the difference between the base mesh and the original mesh, and reconstructed texture map attribute information: 1) Preprocess the 3D mesh in lossy mode. For example, simplify the geometric and connectivity relationships, i.e., reduce the number of mesh vertices and edges while maintaining the mesh structure as much as possible, thereby further reducing the amount of 3D mesh data. 2) Regenerate UV coordinates for the simplified mesh using a UV coordinate resampling algorithm. In this application, the simplified geometric information, connectivity relationships, and newly generated UV coordinates based on the simplified mesh are called the base mesh. 3) Code the geometric information, connectivity relationships, and newly generated UV coordinates of the base mesh using any static mesh coding method, and then integrate the code stream to obtain the base mesh code stream. Note that whether to code the UV coordinates of the base mesh is determined by the identifier. 4) The preprocessing module performs refinement on the geometric information and UV coordinates of the base mesh to calculate the displacement vector between the interpolated point and the nearest point of the original mesh. In the displacement information coding module, the thinning 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 the displacement information after decoding and dequantization. 7) A mesh is reconstructed using the reconstructed base mesh and the displacement information after decoding and dequantization. 8) A texture map generation algorithm is employed using the reconstructed mesh to generate a new texture map, and the newly generated texture map is coded using a video encoder. 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 present application mainly includes a mesh preprocessing module, a base mesh coding module, and a video-based displacement information coding module. As shown in Figure 2, the 3D mesh coding framework first preprocesses the input 3D mesh with a texture map (i.e., the 3D mesh to be coded). The preprocessing module is shown in Figure 3. The preprocessing module allows the user to choose whether to slice the 3D mesh. The sliced information forms patch information. Then, sampling simplification is performed on the 3D mesh. The simplified mesh then undergoes surface parameterization, generating new UV coordinates (reconstructed texture coordinate information). This process also changes some geometric information. After surface parameterization, a base mesh (including geometric information, connectivity, and UV coordinates) is obtained and output as a first pass. Furthermore, a thinning interpolation operation is performed on the base mesh geometric information and UV coordinates, and the offset vector between the interpolated point and its projection point along the patch normal vector on the original mesh is calculated and output as displacement information. At this point, the preprocessing module outputs the base mesh and displacement information. As shown in FIG. 2, the preprocessed output base mesh is then subjected to a quantization operation, followed by coding of the geometric information, connectivity, and UV coordinates. It should be noted that the coding of the base mesh here can be replaced with any 3D mesh coding method. This module can selectively code the UV coordinates. If connectivity coding is not selected, 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 sub-code stream by the base mesh coding module. Video coding is then performed on the image to obtain the displacement information sub-code stream. The coded base mesh then needs to be decoded and reconstructed to obtain the reconstructed base mesh.The coded displacement information is decoded and dequantized to obtain decoded and dequantized displacement information. Then, a mesh is reconstructed using the reconstructed base mesh and the decoded and dequantized displacement information. A texture map generation algorithm is employed using the reconstructed mesh to generate a new texture map, 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 can be edge-based simplification. As shown in Figure 4, merging two vertices of one edge can achieve the goal of reducing the number of faces and vertices. In addition, mesh simplification methods based on points, etc. can also be used to simplify the mesh.
[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 can be selected as the error metric of this vertex, and the error metric of the corresponding edge can be the sum of the error metrics of the two vertices on the edge. After the simplification method and error metric are determined, mesh simplification can begin. For example, the mesh can be divided into one or more local meshes, and the vertex errors of the initial meshes in the patch can be calculated to obtain the error of each edge. Then, all edges in the patch can be arranged according to the error based on a rule, such as a growth rule. Each simplification can merge edges according to a rule, for example, by selecting the edge with the smallest error, calculating the vertex position after the merge, updating the errors of all edges associated with the merged vertex, and updating the order of the edges. Through iteration, the mesh faces can be simplified to a certain expected number.
[0057] The specific process includes:
[0058] 1. Calculation of vertex error The vertex error may be defined as the sum of the coefficients of the equations of all the adjacent faces of a vertex. For example, each adjacent face defines a plane, and may be expressed as Equation 1:
[0059]
number
number
[0060] Further 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 begin. For example, calculate the errors of all edges in the initial mesh and sort them according to a certain standard, such as increasing order, according to the errors. At each iteration, select an edge whose error satisfies a certain rule, such as 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. All or some of the adjacent vertices of the two vertices before merging are set as adjacent vertices of the vertex after merging, and update the error metrics of all points connected to this vertex merging, thereby obtaining the error of the newly generated edge. Then, update the sorting order of the edges from the global of the patch. The above process is repeated until the number of faces required to satisfy the lossy coding is reached.
[0064] 3. Connection update After vertex integration, some vertices are removed from the vertex set and many new vertices are added, so the connections between the vertices need to be updated. For example, during the vertex integration process, the two vertices before integration that correspond to the vertex after integration can be determined. The indices of the two vertices before integration that appear on all faces are replaced with the indices of the vertex after integration, and the faces with repeated indices are deleted, thereby achieving the goal of updating the connections.
[0065] The above is the main process of mesh simplification. At the same time, 3D meshes may carry additional attribute information, which may need to be simplified. For meshes with attribute information, such as texture coordinates, color, and normal vectors, the vertex coordinates can be expanded to higher dimensions, thereby calculating the vertex error with attribute information. Take texture coordinates as an example. If the vertex coordinates are (x,y,z) and the texture coordinates are (u,v), the expanded vertex will be (x,y,z,u,v). Let the expanded triangle be T=(p,q,r). To determine the error metric in the high-dimensional space, first calculate two standard orthogonal vectors, namely:
number
number
number
number
[0066] Since e1 and e2 are two vectors on the plane on which T lies, the term on the left side of Equation 9 is the square of the distance from the vertex to the plane on which T lies, i.e.
number
number
[0067] After obtaining the error metric, the following steps can be carried out similar to the previous three-dimensional information, thereby realizing the simplification of the mesh with attribute information.
[0068] Generally, the edges of an image attract people's attention, thereby affecting their evaluation of the image's quality. Similarly, with 3D meshes, people tend to notice boundaries. Therefore, whether or not to preserve boundaries is also a factor affecting the quality of mesh simplification. Mesh boundaries generally include geometric shape boundaries and texture boundaries. 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 texture coordinate boundary. During mesh simplification, these boundaries should not be merged. Therefore, during each simplification, it is determined whether the vertex on this edge is a boundary point. If it is, it is skipped and the next iteration can proceed directly.
[0069] The selective mesh parameterization method will now be specifically described.
[0070] This mesh parameterization method includes:
[0071] (1) Regenerate UV coordinates Input: The original 3D mesh to be processed (with or without UV coordinates) Output: Regenerated UV coordinates.
[0072] This method uses the ISO-charts algorithm to obtain reconstructed texture coordinate information. This algorithm uses spectral analysis to achieve stretch-driven 3D mesh parameterization, and then 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) calculate a surface spectral analysis and provide 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 separate the surface into charts, e) Optimizing the chart boundary using a graph cut algorithm; f) Iteratively split the charts until they meet the stretch criteria, Below, we will introduce the four main parts of the above method: surface spectrum analysis, stretch optimization, surface spectrum clustering, and boundary optimization.
[0074] 1. Surface spectrum analysis Surface spectral analysis parameterizes a target 3D mesh based on the isometric feature mapping (IsoMap) dimensionality reduction method. Given a set of high-dimensional points, IsoMap calculates the geodesic distance along the manifold as a sequence of jumps between adjacent points. A multidimensional scaling (MDS) algorithm is then applied to these geodesic distances to find a set of points embedded in a low-dimensional space with similar pairwise distances. The surface computation process for a given set of N points is as follows:
[0075] a) A symmetric matrix D of squared geodesic distances between surface points N Calculate b)D N Double centering and normalization are performed 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 calculate the n << N largest eigenvalues and the corresponding eigenvectors, and generate the n-dimensional embedding of all points.
[0080] Note that since the mapping from high-dimensional space to 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
Number
[0082] In the case of n = 2, surface spectrum analysis generates the square of the GDD of all vertices and the minimum surface parameterization.
[0083] It should be noted that the Isomap algorithm is the geodesic distance calculated 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 transition from 3D to 2D space is not uniform, the parameterization introduces distortions and requires a stretch optimization process to eliminate clipping phenomena. Distortion can be measured in many ways, including angle or area preservation, or parameter distance stretching or shrinking on the surface. The focus of this algorithm is distance distortion, specifically the definition of geometric stretch, which is the average stretch of surface local distances L 2 and worst case stretch L ∞ We define two conjectures:
[0085] Consider a triangle T with two-dimensional texture coordinates p1, p2, and p3, where p i =(s i ,t i ), and the corresponding three-dimensional coordinates are represented as q1, q2, and q3. 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 ∞ depends only on one worst-case point in the domain, so L ∞ Stretching is difficult to control by any method, but L 2 Going through several iterations to minimize the stretch can significantly improve the results.
[0092] 3. Surface spectral cluster If the parameterization generated by spectral 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 spectral analysis are used to calculate several representative vertices, and charts are simultaneously grown around these representative points. This method is called surface spectral clustering. The specific algorithm process is as follows:
[0093] a) Sort the feature values from the spectral analysis and the corresponding feature vectors from largest to smallest, i.e., λ1 ≥ λ2 ≥ ... ≥ λ N is.
[0094] b)λ n / λ n+1 Obtain n feature values and a feature vector (n≦10) before maximizing.
[0095] c) For each vertex i in the target 3D mesh, its n-dimensional embedded 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 representative points whose distance is less than a distance threshold to generate m≦2n representative points, where optionally the distance threshold is 10 times the average edge length of the target 3D mesh.
[0098] f) Using the geodesic distances calculated in the surface spectral analysis, the 3D mesh is divided into m parts by simultaneously growing charts around the representative point. 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 vertex).
[0099] 4. Boundary optimization After obtaining multiple charts, we use a graph cut algorithm to optimize the boundaries between each chart. Chart boundaries must satisfy two targets: 1) they should pass through high curvature regions without being too disjointed, and 2) they should minimize embedded clipping of the boundary charts. This algorithm expresses the optimal boundary problem as a graph cutting problem. For simplicity, we will now discuss the binary case, where a surface is divided into two. When subdividing into two or more charts, we consider the adjacent charts of each pair in turn.
[0100] Suppose we are searching for an optimal boundary between chart A and chart B. An initial division is generated using surface spectral clusters. Then, an intermediate region C is generated by extending one region on both sides of the initial division boundary. The size of the intermediate region is directly proportional to the total area of the unpeeled patch. We now construct an undirected flow network diagram from C using an extension of the method in the graph cut algorithm. Here, two adjacent triangles f in the graph cut algorithm are i and f j The definition of "capacity" between
[0101]
number
[0102]
number
[0103] The second term in Equation 26 measures the built-in 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 costly, especially when the number of model vertices increases. Therefore, to speed up the calculation, in practical applications, the Iso-charts algorithm adopts the landmark Isomap, an extension of the Isomap algorithm. At the same time, the landmark Isomap algorithm is also used to calculate the inset coordinates of intermediate region vertices during boundary optimization to further reduce inset clipping.
[0107] Finally, the charts generated in the above process are packed into a 2D texture region using the chart packing algorithm used in the MCGIM algorithm, resulting in a 3D mesh of regenerated UV coordinates.
[0108] (2) Mesh thinning.
[0109] Input: Base mesh (including attribute information), Output: The thinned mesh.
[0110] In the embodiments of this application, any mesh thinning scheme can be used to thin the base mesh. One possible thinning scheme is the midpoint refinement scheme, which subdivides each triangle into four sub-triangles at each subdivision iteration, as shown in Figure 5. A new vertex is introduced at the middle of each edge. The refinement process is applied independently to the geometry and texture coordinates because the connectivity between the geometry and texture coordinates is generally different. The refinement scheme is implemented by subdividing the newly introduced vertices v 12 Position Pos(v 12 ) is calculated and shown below.
[0111]
number
[0112] The same process is used to calculate the texture coordinates of the newly created vertices. For 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 illustrates the basic concept of the preprocessing method 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 line) is called the "original curve." It is first downsampled to generate a basic curve / line called the "simplified curve." The subdivision method is then applied to the resulting 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, connectivity coding, geometric information coding, UV coordinate coding, and texture map coding, which are described below.
[0118] (1) Quantization Input: Geometry and UV coordinates of the base mesh, Output: quantized geometry and UV coordinates, First, the 3D coordinates of the vertices of the input mesh are quantized to obtain the geometric information after quantization.
[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 for is as follows:
[0120] Formula 32:x q =f1(x,QP x ) Equation 33:y q =f1(x,QP y ) Formula 34:z q =f1(z,QP z ) Here, the f1 function in Equations 32 to 34 is a quantization function, whose inputs are coordinates of a certain dimension and a quantization coefficient of this dimension, and whose output is the coordinate value after quantization.
[0121] The f1 function may be calculated in various ways, and one relatively common way is to calculate by dividing the original coordinate of each dimension by the quantization coefficient of that dimension, as shown in Equations 35 to 37. Here, " / " is a division operator, and different methods can be used to round the result of the division operation, such as rounding up, rounding down, or rounding up.
[0122] Formula 35:x q =x / QP x Equation 36:y q =y / QP y Formula 37:z q =z / QP z When the quantization coefficient is an integer power of 2, the f1 function can be realized using bit operations, for example, as shown in Equations 38 to 40.
[0123] Formula 38:X q =x≫log2QP x Equation 39:Y q =y≫log2QP y Formula 40:Z q =z≫log2QP z It should be noted that, of course, no matter which calculation method is used for the f1 function, the quantization coefficient QP x , Q.P. y and QP z can be set flexibly. First, the quantization coefficients of different components are not necessarily equal, and the QP x , Q.P. y and QP z By establishing the relationship between the vertices, different quantization coefficients can be set for different components, and then the quantization coefficients of different spatial regions are not necessarily equal, 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 coordinates 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 connectivity coding method is the Edgebreaker (EB) algorithm. After traversing each triangle in a triangular mesh model, the EB algorithm obtains a string sequence consisting of five characters: C, L, E, R, and S. It then codes this string sequence using the Huffman 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, as well as one edge e, are on the boundary; L and R represent different directions of the current edge e, respectively; S represents the need to split the graphics into two parts and simultaneously record branch information using an additional offset or other operation; and E represents the topology case where all three edges of the triangle are on the boundary.
[0128] This algorithm codes the mesh in a spiral fashion. During the mesh traversal process, a directed boundary consisting of edges is always maintained, which divides the mesh into traversed and untraversed parts. Each time a triangle is traversed, a topology relationship operator between the triangle and the boundary is output, dividing the polygon into the already-coded parts. The specific traversal process is as follows: First, a triangle is selected to form the initial boundary, and one of its edges is selected as the current edge. The Edgebreaker algorithm employs five operators C, L, E, R, and S to record the topology relationship between the current triangle and the boundary. Based on the arrow direction of each operator, the next edge is selected as the current edge, and the algorithm continues to determine the operation mode corresponding to the vertex to be coded. This cycle continues until all vertices are traversed. At this point, a string of operators from the traversal process is obtained, and this string can be entropy coded. Furthermore, the EB algorithm requires that the vertex order of the traversal be output to the geometry information and UV coordinate coding module. According to the EB coding rules, the final entropy coding mode code is CCRRSLCRSERRELCRRRCRRRE.
[0129] (3) Geometric information coding Input: quantized geometric information, connectivity relations and connectivity relation coding vertex order, Output: Connectivity 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 Figure 8, triangle S1 is a triangle whose geometric coordinates have already been coded. The traversal method for the vertices to be coded is the same as the vertex order used to code the connectivity relationships when coding connectivity relationships. When connectivity relationships are not coded, the vertex traversal order is the same as the vertex order in the base mesh. When coding traversal, one edge is selected as the currently traversed edge τ1, and the triangle formed by another vertex whose connectivity has already been coded is used as a half parallelogram to predict the 3D geometric coordinates of the vertex to be coded corresponding to the current edge, i.e., point A2 in the figure is the predicted vertex. Then, the coordinate difference 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, connectivity and connectivity coding vertex order, Output: UV coordinate subcode stream after coding.
[0134] You may code the UV coordinates using a parallelogram prediction method such as: Referring to Figure 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 relationships when coding the connectivity relationships. When connectivity relationships are not coded, the vertex traversal order is the same as the vertex order in the base mesh. When coding traversal, one edge is selected as the edge τ1 currently being traversed, 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 edge, i.e., point A2 in the figure is the predicted vertex. At this time, the coordinate difference 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 base mesh coding 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 (the identifier determines whether to use the decoded UV coordinates or the base mesh UV coordinates before coding), the vertex offset vector values in the displacement information are modified. The updated displacement information is then coded. One possible method for coding the displacement information is linear wavelet transform.
[0138] 1) Conversion and updating of displacement information Input: Displacement information, Output: 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 updating 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 quantizing the transformed displacement information, the transformed displacement information can be arranged into a 2D image using the following method.
[0145] Method 1: Traverse coefficients from low frequency to high frequency.
[0146] Method 2: For each coefficient, determine the index of the NxM pixel block (e.g., N=M=16) into which the block should be stored in raster order. The position within the NxM pixel block is calculated using Morton order.
[0147] Other ordering schemes may be used, such as zigzag ordering, raster ordering, etc. The encoder should explicitly signal the ordering scheme used in the bit flow.
[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 side. 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) Texture map regeneration Input: Reconstructed mesh, original texture map Output: The newly generated texture map The algorithm steps to generate 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) Traverse all faces in the target 3D mesh and rasterize the target texture map using the RGBA values corresponding to the original texture map.
[0155] e) Calculate the bounding box in the texture space of the current surface, and then sample the center point of each pixel within this bounding box. Determine the pixel position corresponding to the current surface by determining the relationship between the sampling points and the inside or outside of the current surface and whether the external sampling points at the boundary of the current surface affect the inside of the current surface in texture space.
[0156] f) Within the maximum search distance, search for the closest point of each of the three points of the current surface 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 surface, thereby obtaining the corresponding texture coordinates in the original 3D mesh of the current surface.
[0157] g) Based on the corresponding texture coordinates, calculate the pixel RGBA value at the corresponding position of the original texture map on the corresponding face in the original mesh and assign the value to the corresponding pixel position in the target texture map on 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 boundary edge are converted to 255 to smooth the boundary, and finally, to make coding easier and save code streams, the generated target texture map is filled using a pull-push filling algorithm (you can choose whether to fill).
[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 Versatile Video Coding (VVC) encoder, to form an attribute subcode stream. The video encoder may be any video encoder.
[0161] Finally, each sub-codestream is mixed to form an output mesh coding codestream.
[0162] In an embodiment of the present application, the coding side codes a base mesh corresponding to a target 3D mesh based on first identifier information, the base mesh including reconstructed texture coordinate information corresponding to the target 3D mesh, obtains a first code stream, obtains a second code stream based on mesh difference information, and obtains a third code stream based on the reconstructed texture map information, and generates a target code stream based on the first code stream, the second code stream, and the third code stream. Because the amount of reconstructed texture coordinate data in the 3D mesh is relatively large, in this embodiment, it can choose not to code the reconstructed texture coordinate information in the base mesh based on the first identifier information, thereby significantly reducing the coding rate and improving coding efficiency.
[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, which is used to characterize the 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 contains 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 contain reconstructed texture coordinate information, it generates reconstructed texture coordinate information, and reconstructs 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 significantly save the coding rate and improve the coding efficiency in the lossy mode.
[0167] Optionally, the method of the present application includes: The decoding side decomposes the acquired target codestream to obtain first identifier information for identifying 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 codestream to obtain a first codestream, a second codestream and a third codestream, 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 includes: generating the reconstructed texture coordinate information based on the geometric information and connectivity information according to 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 codestream to obtain a first codestream, a second codestream and a third codestream; The decoding side decomposes the acquired target codestream to obtain a first codestream, a second codestream, a third codestream, and a fourth codestream, and the fourth codestream is determined according to slice information of the target 3D mesh; 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 may comprise reconstructing 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 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 a third decoding result corresponding to the third codestream may comprise reconstructing 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 the generated reconstructed texture coordinate information.
[0175] In an embodiment of the present application, the 3D mesh decoding framework, as shown in FIG. 10, first decomposes the target code stream into a patch information subcode stream, a geometric information subcode stream, a connectivity subcode stream, a UV coordinate subcode stream (if present), a texture map subcode stream, and a displacement information subcode stream. Each of these subcode streams is decoded. For example, if the code stream includes a UV coordinate subcode stream, UV coordinates do not need to be regenerated. For example, if the code stream does not include UV coordinates, 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 subcode stream and the displacement information subcode stream are decoded using a video decoder. The geometric information, connectivity, and UV coordinate subcode streams are decoded using a decoder corresponding to the coding method of the coding side. The decoding of various information is described 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 based on the corresponding mode in the string, and the vertex traversal attributes 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 of the coding process: first, the coordinate prediction residual is entropy decoded. Based on the already decoded triangles, the predicted coordinates of the point to be decoded are predicted according to the parallelogram rule. Adding the entropy-decoded residual value to the predicted coordinates yields the geometric coordinate position to be decoded. The vertex traverse order here is the same as the vertex order used to code 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 are coded directly without predictive coding. After decoding the geometric coordinates of this triangle, the decoding side begins 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; the specific prediction method is not emphasized.
[0180] After decoding the geometric information, 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 UV coordinates based on the first identifier) Input: UV coordinate code stream to be decoded, the decoding order of the geometric information and connection relationship after decoding and modification, Output: Reconstructed UV coordinates of the 3D mesh.
[0182] If the codestream includes a UV coordinate sub-codestream, the decoding process of the mesh UV coordinates is the reverse of the coding process: first, the coordinate prediction residual is entropy decoded. Then, based on the triangles already decoded, the predicted coordinates of the points to be decoded are predicted according to the parallelogram rule. The entropy-decoded residual value is added to the predicted coordinates to obtain the UV coordinate position to be decoded. Note that the UV coordinates of the initial triangle are coded directly without predictive coding. After decoding the UV coordinates of this triangle, the decoding side starts traverse decoding of the UV coordinates of the vertices of other triangles as the initial triangle. Alternatively, two or three parallelogram pairs may be used to predict the UV coordinates to be decoded; the specific prediction method is not emphasized.
[0183] If the codestream does not include a UV coordinate sub-codestream, the UV coordinates are generated using the same UV coordinate generation algorithm as the coding side, and the geometric information and connectivity obtained by decoding are used.
[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 values in the displacement information to displace the corresponding vertices 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 a frame-by-frame texture map, 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 significantly save the coding 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 used in the coding side, which includes: 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 codestream, wherein 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; a first obtaining module 1102 for obtaining a second codestream 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 being 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, wherein the reconstructed texture map information is obtained based on the first codestream and the second codestream; 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: 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: if the first identifier information is characterized by 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 is characterized in that it does not code 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 decoding and dequantization processes 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 decoding and inverse quantization on the second codestream to obtain target mesh difference information; and a second generation module for generating reconstructed texture map information according to a texture map generation algorithm based on the reconstructed base mesh and the target mesh difference information.
[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 sub-module 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 codestream, performing a simplification process on the three-dimensional mesh to be coded to obtain the target three-dimensional mesh when in a lossy coding mode, and determining the three-dimensional mesh to be coded as the target three-dimensional mesh when in a lossless coding mode.
[0196] Optionally, the first generating 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.
[0197] In an embodiment of the present application, the coding side codes a base mesh corresponding to a target 3D mesh based on first identifier information to obtain a first code stream, and obtains a second code stream based on mesh difference information, and generates a target code stream based on 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 an embodiment of the present application, it can choose not to code the reconstructed texture coordinate information in the base mesh based on the first identifier information, thereby significantly reducing the coding rate and improving coding efficiency.
[0198] This device embodiment corresponds to the coding method embodiment shown in Figure 1 above, and in the above method embodiment, all implementation processes and realization methods 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 Figure 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 the embodiment of the present application further includes instructions or programs stored in the 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 methods performed by each module shown in FIG. 11, and achieves the same technical effect, which will not be further described here to avoid repetition.
[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 decoding, which includes: 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, 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, and 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 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.
[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 decoding 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.
[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 based on slice information of the 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 significantly save the coding rate and improve the coding efficiency in the lossy mode.
[0209] It should be noted that this device embodiment corresponds to the method embodiment shown in Figure 9 above, and all implementation methods related to the decoding side in the method embodiment above can be applied to this device embodiment, and the same technical effects can be achieved, 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 operable 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 further described here to avoid repetition of description.
[0211] An embodiment of the present application further provides a coding device 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 further described here to avoid repetition of description.
[0212] The embodiments of the present application further provide 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, and in order to avoid repetition of description, it will not be further described here.
[0213] Wherein, the processor is the processor in the decoding device described in the above embodiment. The readable storage medium includes a computer readable storage medium, such as a computer read only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[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, wherein the processor is used for: coding a base mesh corresponding to a target 3D 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 3D 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 3D mesh to be coded, and the target 3D mesh is obtained based on the 3D 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.
[0216] The embodiment of this coding device corresponds to the embodiment of the above coding method, and the implementation processes and realization methods of the above method embodiments can all be applied to the embodiment of this coding device, and the same technical effects can be achieved.
[0217] An embodiment of the present application further provides a decoding device, including a processor and a communication interface, wherein the processor decomposes an 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; and 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 the codestream contains 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 contain reconstructed texture coordinate information.
[0218] This embodiment of the decoding device corresponds to the embodiment of the above-mentioned decoding method, and the implementation processes and realization methods of the above-mentioned method embodiments can all be applied to this embodiment of the decoding device, and the same technical effects can be achieved.
[0219] Specifically, an embodiment of the present application further provides a decoding device. Specifically, the structure of the decoding device is as shown in Figure 14, where 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 run on the processor 1401, where the processor 1401 calls the instructions or programs in the memory 1403 to perform the methods implemented by the modules shown in Figure 13, and achieves the same technical effects. To avoid repetition, these instructions or programs will not be further described here.
[0220] Optionally, as shown in Figure 15, an 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, if the communication device 1500 is a coding device, when the program or instruction is executed by the processor 1501, it can realize each step of the embodiment of the coding method and achieve the same technical effect. If the communication device 1500 is a decoding device, when the program or instruction is executed by the processor 1501, it can realize each step of the embodiment of the decoding method and achieve the same technical effect, and in order to avoid repetition, it will not be described further here.
[0221] An embodiment of the present application further provides a chip, the chip including a processor and a communication interface, the communication interface coupled to the processor, the processor running a program or instruction, used to realize each process of the embodiment of the above coding method or decoding method, and can achieve the same technical effect, 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 this application may be referred to as system level chips, system chips, chip systems, or system-on-chips.
[0223] The embodiments of the present application further provide 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-mentioned coding method or decoding method embodiments and achieve the same technical effects, and will not be further described here to avoid repetition.
[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 steps of the coding method described in Figure 1. The decoding device may be the decoding device shown in Figure 14, which can be used to perform steps of the decoding method described in Figure 9 and can achieve the same technical effect, and will not be further described here to avoid repetition.
[0225] It should be noted that, in this specification, the terms "comprises," "includes," and any other variations thereof are intended to cover the non-exclusive "comprises," whereby a process, method, article, or apparatus comprising a set of elements not only includes those elements, but also other elements not expressly listed or inherent in such process, method, article, or apparatus. Absent further limitations, an element defined by the phrase "comprises one of" does not preclude the presence of other identical elements in the process, method, article, or apparatus comprising that element. It should be noted that the scope of the methods and apparatuses 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 may be performed in a different order than described, and various steps may be added, omitted, or combined. Furthermore, features described with reference to some examples may be combined in other examples.
[0226] As will be apparent to those skilled in the art from the above description of the embodiments, 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, in substance or in part dependent on the related art, may be 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 a number of instructions for causing a terminal (which may be a mobile phone, computer, server, air conditioner, network device, etc.) to execute the methods described in each embodiment of the present application.
[0227] Although the embodiments of the present application have been described above in conjunction with the drawings, 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 teachings of the present application into account and implement many forms without departing from the spirit and scope of the claims, all of which fall within the scope of protection of the present 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 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; the coding side obtaining a third codestream based on reconstructed texture map information, wherein the reconstructed texture map information is 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 codestream; if the first identifier information is characterized by 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 the method of claim 3, further comprising coding the geometric information and connectivity relationship information to obtain a first codestream when the first identifier information characterizes not coding reconstructed texture coordinate information corresponding to the target 3D mesh.
5. before the coding side obtains the third codestream based on the reconstructed texture map information, performing a decoding and dequantization process on the first codestream to obtain a reconstructed base mesh; performing decoding and inverse quantization on the second codestream 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 the second codestream based on 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 codestream, 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. The coding side generating a target codestream based on the first codestream, the second codestream, and the third codestream, obtaining a fourth codestream based on slice information of the target 3D mesh; deriving the target codestream based on the first codestream, the second codestream, the third codestream, and the fourth codestream.
9. A decoding method comprising: a decoding side decomposing the acquired target codestream to obtain a first codestream, a second codestream and a third codestream, wherein the first codestream is obtained based on a base mesh corresponding to a target 3D mesh, the second codestream is obtained based on mesh difference information, and 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 codestream 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 codestream to obtain first identifier information for identifying 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 codestream to obtain a first codestream, a second codestream and a third codestream. 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 any one of claims 9 to 11, further comprising geometric and connectivity information corresponding to the target 3D mesh.
13. The decoding side decomposes the acquired target codestream to obtain a first codestream, a second codestream and a third codestream. The decoding side decomposes the acquired target codestream to obtain a first codestream, a second codestream, a third codestream, and a fourth codestream, and the fourth codestream 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 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 wherein 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.
14. 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.
15. 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 of claim 9 when executed by the 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