Encoding method, decoding method and terminal
By generating the target bit stream and using the first, second and third bit streams to encode and decode 3D meshes, the problem of encoding and decoding failure after distortion compression is solved, and the correct processing of texture coordinates and attribute information is achieved.
Patent Information
- Application Number
- JP2024560721
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-04-12
- Filing Date
- 2023-04-10
- Publication Date
- 2025-04-30
- Estimated Expiration
- 2043-04-10
AI Technical Summary
When distorted compression of 3D meshes is performed in the prior art, the corresponding relationship between texture coordinates and vertex positions may be greatly offset, resulting in failure of encoding and decoding.
By generating a target bit stream, the 3D meshes are encoded and decoded using the first bit stream, the second bit stream and the third bit stream. Among them, the first bit stream is based on the geometric information of the target 3D meshes, the second bit stream is based on the reconstructed grid connection information, and the third bit stream includes the attribute information or the target 3D meshes and the texture image through the attribute encoding method.
It effectively solves the problem of encoding and decoding failure after distortion compression, ensuring the correct adjustment of texture coordinates and the accurate acquisition of attribute information.
Smart Images

Figure 2025513889000001_ABST
Abstract
Description
[Technical field]
[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims priority to Chinese Patent Application No. 202210378876.4, filed in China on April 12, 2022, the entire contents of which are incorporated herein by reference.
[0002] The present application relates to the technical field of encoding and decoding, and more particularly to an encoding method, a decoding method, and a terminal. [Background technology]
[0003] 3D meshes can be considered the most mainstream representation of 3D models in the past few years and play an important role in many applications. Due to their simplicity, a large amount of hardware algorithms are integrated into the graphics processing units of computers, tablets and smartphones that are specialized for rendering 3D meshes.
[0004] In all application fields using 3D mesh, such as computational simulation, entertainment, medical imaging, digital cultural heritage, computer design, e-commerce, etc., the requirements for mesh accuracy are constantly increasing, the amount of data required is also rapidly increasing, and at present, a large amount of 3D models need to be accessed through the Internet. Due to the above problems, the processing, visualization, transmission and storage of 3D meshes become increasingly complicated. 3D mesh compression is an important measure to solve the above problems. It can greatly reduce the size of the data amount and is favorable for the processing, storage and transmission of 3D meshes.
[0005] Generally, geometric information is the most important information in a 3D mesh because it describes the shape of a 3D object. Geometric information can be compressed by video-based point cloud compression standards, while some applications do not need to restore the model to its original accuracy, so lossy compression is often used. For 3D meshes with texture maps, the texture map also needs to be compressed. However, lossy compression of the geometric information of a 3D mesh may cause a large deviation in the correspondence between the texture coordinates corresponding to each vertex in the 3D mesh and the position of each vertex in the texture map corresponding to the 3D mesh. After reconstructing the geometric information, the texture coordinates cannot be adjusted correctly according to the reconstructed mesh, which will result in failure in encoding and decoding. Summary of the Invention [Problem to be solved by the invention]
[0006] The embodiments of the present application provide an encoding method, a decoding method, and a terminal capable of solving the problem that encoding / decoding is likely to fail when geometric information is lossy compressed. [Means for solving the problem]
[0007] In a first aspect, A step of obtaining a first bitstream by encoding first information corresponding to a target 3D mesh at an encoding end, the first information being determined based on geometric information corresponding to the target 3D mesh; The encoding end determines a second bit stream based on connection information corresponding to a first reconstructed mesh, and the first reconstructed mesh is determined based on the first information and the target 3D mesh; The encoding end determines a third bitstream through an object information and attribute encoding method, in which the object information includes attribute information corresponding to the first reconstructed mesh, or includes the object 3D mesh and an object texture map corresponding to the object 3D mesh; and generating a target bitstream based on the first bitstream, the second bitstream, and the third bitstream, at the encoding end.
[0008] In a second aspect, A decoding end decodes the obtained target bitstream to obtain first information, decoding information, an attribute coding method, and a third bitstream; The decoding end obtains geometric information corresponding to a target 3D mesh based on the first information; determining, by the decoding end, connectivity information corresponding to the target 3D mesh based on the decoding information; and determining, at the decoding end, attribute information corresponding to the target 3D mesh according to the third bitstream and the attribute encoding method.
[0009] In the third aspect, an encoding module for obtaining a first bitstream by encoding first information corresponding to a target 3D mesh, the first information being determined based on geometric information corresponding to the target 3D mesh; a first determination module for determining a second bit stream based on connectivity information corresponding to a first reconstructed mesh, the first reconstructed mesh being determined based on the first information and the target three-dimensional mesh; A second determination module for determining a third bitstream according to an object information and attribute coding method, wherein the object information includes attribute information corresponding to the first reconstructed mesh, or includes the object 3D mesh and an object texture map corresponding to the object 3D mesh; a generating module for generating a target bitstream based on the first bitstream, the second bitstream and the third bitstream.
[0010] In the fourth aspect: a decoding module for decoding the obtained target bitstream to obtain first information, decoding information, an attribute coding method, and a third bitstream; an acquisition module for acquiring geometric information corresponding to a target 3D mesh based on the first information; a third determination module for determining connectivity information corresponding to the target 3D mesh according to the decoded information; a fourth determining module for determining attribute information corresponding to the target 3D mesh according to the third bitstream and the attribute encoding method.
[0011] In a fifth aspect, there is provided a terminal comprising a processor and a memory, wherein the memory stores programs or commands executable by the processor, and wherein, when the programs or commands are executed by the processor, steps of the method according to the first aspect are realized, or steps of the method according to the second aspect are realized.
[0012] In a sixth aspect, there is provided a readable storage medium having stored thereon a program or command which, when executed by a processor, causes the steps of the method according to the first aspect to be realized or causes the steps of the method according to the second aspect to be realized.
[0013] In a seventh aspect, there is provided a chip comprising a processor and a communication interface, the communication interface and the processor being coupled to each other, the processor executing a program or command to realize the method according to the first aspect, or being used to realize the method according to the second aspect.
[0014] In an eighth aspect, there is provided a computer program / program product stored on a storage medium and executed by at least one processor to perform the steps of the method according to the first aspect or to perform the steps of the method according to the second aspect. Effect of the Invention
[0015] In an embodiment of the present application, a first bitstream is obtained by encoding first information corresponding to a target 3D mesh, a second bitstream is determined according to connection information corresponding to the first reconstructed mesh, where the first reconstructed mesh is determined according to the first information and the target 3D mesh, and a third bitstream is determined by target information and an attribute encoding method, where the target information includes attribute information corresponding to the first reconstructed mesh, or includes a target 3D mesh and a target texture map corresponding to the target 3D mesh, and a target bitstream is generated according to the first bitstream, the second bitstream and the third bitstream. In the above technical solution, the third bitstream is obtained by encoding the attribute information corresponding to the first reconstructed mesh by an attribute encoding method, or the third bitstream is obtained using the target 3D mesh and the target texture map by an attribute encoding method, so that the attribute information bitstream is obtained by the above method after lossy compression of the geometric information of the target 3D mesh, and encoding failure can be avoided. [Brief description of the drawings]
[0016] [Figure 1]1 is a flowchart of an encoding method provided by an embodiment of the present application; [Diagram 2] FIG. 13 is a schematic diagram of the vertex merging process in mesh simplification. [Diagram 3] FIG. 1 is a schematic diagram of a mesh-based refinement process. [Figure 4] 1 is a schematic diagram of eight directions of a patch array. [Diagram 5] FIG. 2 is a schematic diagram of the encoding process of high-precision geometric information. [Figure 6] FIG. 1 is a schematic diagram of a raw patch. [Figure 7] FIG. 1 is a schematic diagram (part 1) of encoding connection relationships in an embodiment of the present application. [Figure 8] FIG. 2 is a schematic diagram (part 2) of encoding connection relationships in an embodiment of the present application. [Figure 9] FIG. 2 is a schematic diagram of encoding attribute information in an embodiment of the present application; [Figure 10(a)] 1 is an image showing a 3D mesh of an object in an embodiment of the present application. [Figure 10(b)] FIG. 11 is an effect diagram of a target texture map in an embodiment of the present application. [Figure 10(c)] FIG. 13 is an effect diagram of a reconstructed texture map in an embodiment of the present application. [Figure 11] 4 is a flowchart of a decoding method provided by an embodiment of the present application; [Figure 12] FIG. 1 is a block diagram of a geometric information reconstruction. [Figure 13] FIG. 2 is a structural diagram of an encoding device provided by an embodiment of the present application; [Figure 14] FIG. 2 is a structural diagram of a decoding device provided by an embodiment of the present application; [Figure 15] FIG. 2 is a structural diagram of a communication device provided by an embodiment of the present application; [Figure 16] FIG. 2 is a hardware structure schematic diagram of a terminal provided by an embodiment of the present application; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0017] Hereinafter, the technical solutions in the embodiments of the present application will be clearly described with reference to the drawings in the embodiments of the present application, and it should be understood that the described embodiments are only a part 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 belong to the protection scope of the present application.
[0018] The terms "first", "second", etc. in the specification and claims of this application are not intended to describe a particular order or sequence, but are intended to distinguish between similar objects. The terms used in this manner may be substituted for each other where appropriate, so that the embodiments of this application may be performed in an order other than that shown or described herein, and it should be understood that the objects distinguished by "first" and "second" generally belong to one category, the number of objects is not limited, for example, the first object may be one or more. In addition, in the specification and claims, "and / or" refers to at least one of the objects connected, and the symbol " / " generally refers to the related objects before and after being in an "or" relationship.
[0019] The predictive coding device corresponding to the predictive coding method and the predictive decoding device corresponding to the predictive decoding method in the embodiments of the present application may both be a terminal, which may be called a terminal device or a user terminal (User Equipment, UE). The terminal may be a mobile phone, a tablet personal computer, a laptop computer also called a notebook computer, a personal digital assistant (PDA), a personal digital assistant, a netbook, an ultra-mobile personal computer (UMPC), a mobile Internet device (Mobile Internet Device, MID), an augmented reality (AR) / virtual reality (VR) device, a robot, a wearable device or a vehicle user equipment (VUE), a pedestrian user equipment (PUE), a smart home (home equipment having a wireless communication function, such as a refrigerator, a television, a washing machine, or furniture), a game console, a personal computer (personal computer, etc.), a mobile phone, a tablet personal computer (tablet personal computer), a laptop computer (also called a notebook computer), a personal digital assistant (PDA ... personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant (PDA), a personal digital assistant The terminal may be a terminal side device such as a smart computer, PC, an automated teller machine or a kiosk, and the wearable device includes a smart watch, a smart wristband, a smart earphone, a smart glass, smart jewelry (smart bangle, smart bracelet, smart ring, smart necklace, smart anklet bangle, smart anklet, etc.), a smart wrist strap, smart wear, etc. It should be noted that the specific type of the terminal is not limited in the embodiments of the present application.
[0020] In the following, the encoding method provided by the embodiments of the present application will be described in detail by several embodiments and their application scenarios with reference to the drawings.
[0021] Please refer to Fig. 1, which is a flow chart of the encoding method provided by this application. The encoding method provided by this embodiment includes the following steps S101, S102, S103 and S104.
[0022] In S101, an encoding end obtains a first bitstream by encoding first information corresponding to a target 3D mesh.
[0023] The target 3D mesh may be a 3D mesh corresponding to any video frame.
[0024] In this step, first information corresponding to the target 3D mesh may be determined according to the geometric information corresponding to the target 3D mesh, and the first information may be encoded to obtain a first bitstream. For a specific definition of the first information and a specific technical solution for obtaining the first information, please refer to the following embodiments.
[0025] In S102, the encoding end determines a second bitstream based on the connectivity information corresponding to the first reconstructed mesh.
[0026] In this step, the encoding end may perform geometric reconstruction according to the encoding information of the first information. It should be noted that the geometric reconstruction here means obtaining 3D coordinates through the encoding information. Furthermore, the encoding end performs mesh reconstruction according to the reconstructed geometric information and the target 3D mesh to obtain a first reconstructed mesh, and obtains connection information corresponding to the first reconstructed mesh according to the first reconstructed mesh. The connection information indicates the connection relationship between vertices in the mesh.
[0027] It should be noted that by using the encoded information of the geometric information to perform mesh reconstruction, and then obtaining the connectivity information based on the first reconstructed mesh, it is possible to ensure that the connectivity information is obtained accurately.
[0028] It should be further explained that after obtaining the first reconstructed mesh, the encoding end obtains the connection information of the first reconstructed mesh, and then encodes the connection information to obtain a bit stream corresponding to the connection information, i.e., a second bit stream.
[0029] In S103, the encoding end determines a third bitstream according to the object information and an attribute encoding method.
[0030] It should be understood that the state identifier in the subsequent embodiments can be used to indicate the attribute encoding method, and the above target information includes attribute information corresponding to the first reconstructed mesh, or includes a target 3D mesh and a target texture map corresponding to the target 3D mesh.
[0031] In an optional embodiment, after obtaining the first reconstructed mesh, attribute information corresponding to the first reconstructed mesh is obtained, and the encoding end encodes the attribute information to obtain a bitstream corresponding to the attribute information, i.e., a third bitstream, where the attribute information includes, but is not limited to, mesh UV coordinate attributes and texture maps.
[0032] In another optional embodiment, a target 3D mesh and a target texture map corresponding to the target 3D mesh are used to generate reconstructed texture coordinate information and a reconstructed texture map, and the reconstructed texture coordinate information and the reconstructed texture map are encoded to obtain a bit stream corresponding to the attribute information, i.e., a third bit stream.
[0033] In another optional embodiment, a reconstructed texture coordinate information is generated using a target 3D mesh, a reconstructed texture map is generated using the reconstructed texture coordinate information, the target 3D mesh, and a target texture map corresponding to the target 3D mesh, and the reconstructed texture map is encoded to obtain a bit stream corresponding to the attribute information, i.e., a third bit stream.
[0034] In S104, the encoding end generates a target bitstream based on the first bitstream, the second bitstream, and the third bitstream.
[0035] In this step, after obtaining the first bitstream, the second bitstream and the third bitstream, a target bitstream is generated by synthesizing the first bitstream, the second bitstream and the third bitstream.
[0036] In an embodiment of the present application, a first bitstream is obtained by encoding first information corresponding to a target 3D mesh, a second bitstream is determined according to connection information corresponding to the first reconstructed mesh, where the first reconstructed mesh is determined according to the first information and the target 3D mesh, and a third bitstream is determined by target information and an attribute encoding method, where the target information includes attribute information corresponding to the first reconstructed mesh, or includes a target 3D mesh and a target texture map corresponding to the target 3D mesh, and a target bitstream is generated according to the first bitstream, the second bitstream and the third bitstream. In the above technical solution, the third bitstream is obtained by encoding the attribute information corresponding to the first reconstructed mesh by an attribute encoding method, or the third bitstream is obtained using the target 3D mesh and the target texture map by an attribute encoding method, so that the attribute information bitstream is obtained by the above method after lossy compression of the geometric information of the target 3D mesh, and encoding failure can be avoided.
[0037] Optionally, prior to the step of encoding first information corresponding to the target 3D mesh, obtaining a target 3D mesh by performing a simplification process on the 3D mesh to be encoded when the encoding mode is a lossy encoding mode; If the mode is lossless encoding, determining the 3D mesh to be encoded as a target 3D mesh.
[0038] In this step, if the video encoding mode is a lossy encoding mode, the 3D mesh to be encoded is simplified, and the simplified 3D mesh is determined as the target 3D mesh. By simplifying the 3D mesh, the compression efficiency of the geometric information of the 3D mesh is improved and the amount of data is effectively reduced.
[0039] If the encoding mode of the video is a lossless encoding mode, the 3D mesh to be encoded can be determined as the direct target 3D mesh.
[0040] Optionally, the step of obtaining a target 3D mesh by simplifying the 3D mesh to be encoded includes: The encoding end includes a step of obtaining a target 3D mesh by performing a simplification process on the 3D mesh to be encoded based on a quantization parameter.
[0041] It should be noted that the quantization parameters referred to in this application mainly include quantization parameters in three components, namely, the X direction, the Y direction, and the Z direction.
[0042] Optionally, the step of obtaining a target 3D mesh by simplifying the target 3D mesh based on a quantization parameter includes: The encoding end includes a step of obtaining a target 3D mesh by adjusting the position coordinates of at least some of the vertices in the 3D mesh to be encoded after vertex merging to a multiple of a quantization parameter when performing vertex merging in the 3D mesh to be encoded.
[0043] It should be noted that when setting the position coordinates of the vertices after merging, the quantization parameter is taken into consideration and set to a multiple of the quantization parameter, and the multiple can be any value according to requirements, so that the initial position of the vertex can be restored without requiring additional information during dequantization, and the amount of data consumed by high-precision geometric information is reduced.
[0044] A specific method for implementing the simplification process will be described below.
[0045] The input initial mesh, i.e., the 3D mesh to be encoded, is first subjected to a mesh simplification operation. The simplified operation and the corresponding error metric are key to mesh simplification. The mesh simplification operation here may be edge-based simplification. As shown in FIG. 2, by merging two vertices on one edge, the number of patches and the number of vertices can be reduced. In addition, the mesh may be simplified by a mesh simplification method such as point-based.
[0046] During mesh simplification, an error metric for simplification needs to be defined. For example, the sum of the coefficients of the equations of all faces adjacent to a vertex may be selected as the error metric of the vertex, and the error metric of the corresponding edge is the sum of the error metrics of the two vertices at the edge. After the simplification operation method and error metric are determined, the simplification of the mesh can be started. For example, the mesh may be divided into one or more local meshes, and the error of each edge may be obtained by first calculating the vertex error of the initial mesh in the patch. Then, all edges in the patch may be arranged according to the error according to a certain rule, for example, smallest first. After each simplification, the edges may be merged according to a certain rule, for example, the edge with the smallest error is selected to be merged, and the position of the vertex after the merge may be calculated, the error of all edges associated with the vertex after the merge may be updated, and the arrangement order of the edges may be updated. Through iteration, the faces of the mesh are simplified to a desired number.
[0047] The specific process includes the following steps 1, 2, and 3.
[0048] 1. Calculate the vertex error The vertex error can be defined as the sum of the coefficients of the equations of all the faces adjacent to a vertex. For example, if all the adjacent faces are planes,
number
number
[0049] From Equation 2,
number
number
[0050] 2. Vertex merging One of the main steps in the vertex merging process is to determine the position of the vertex after merging. According to the error equation 3, we may select the vertex position that can make the error as small as possible. For example, by taking the partial derivative with respect to equation 3,
number
number
[0051] As can be seen from the above formula, the point that minimizes the error can be found only when the matrix A is invertible. Therefore, various methods are possible for the vertex positions after merging. Considering the quality of mesh simplification, the vertex positions that minimize the error are selected when the matrix A is invertible, but when the matrix A is irreversible, the point that minimizes the error among the points including either one of the two end points of the edge may be selected. Considering the complexity of mesh simplification, the midpoint or either one of the two end points of the edge may be directly selected as the position of the vertex after merging. Considering the quantization efficiency after mesh simplification, it is also necessary to adjust the vertex positions after merging. Since high-precision information needs to be coded separately after quantization, by adjusting some of the vertex positions after merging to multiples of the corresponding quantization parameters, the initial positions can be restored without requiring additional information during dequantization, and the amount of data consumed by high-precision geometric information is reduced.
[0052] Once it is determined how to select the position of the vertex after merging, the vertex merging process can begin. For example, the error may be calculated for all edges in the initial mesh first, and then arranged according to a rule, such as ascending order, according to the error. At each iteration, an edge whose error satisfies a certain rule, such as the edge with the smallest error, is selected. Both end points of the edge are removed from the vertices of the mesh, and the merged vertex is added to the vertex set of the mesh. All or part of the vertices adjacent to the two vertices before merging are set as adjacent vertices of the merged vertex, and then the error metrics of all points connected to the merged vertex are updated to obtain the error of the newly generated edge. Then, the arrangement order of the edges is updated from the entire patch. The above process is repeated until the number of faces required for lossy coding is reached.
[0053] 3. Update of consolidated financial statements After vertices are merged, some vertices are removed from the vertex set while many new vertices are added, so the connections between the vertices need to be updated. For example, in the vertex merging process, the two pre-merged vertices corresponding to the post-merged vertex may be determined. Thus, the update of the connections can be achieved by simply replacing all the indices of the two pre-merged vertices that appear on the face with the indices of the post-merged vertex, and then deleting the faces with the duplicated indices.
[0054] The above is the main process of mesh simplification. In addition, a 3D mesh may have attribute information, and the attribute information may need to be simplified. For a mesh with attribute information such as texture coordinates, color, normal vector, etc., the vertex error with attribute information may be calculated by expanding the vertex coordinates to a higher dimension. Take the texture coordinates as an example, if the vertex coordinate is (x,y,z) and the texture coordinate is (u,v), the expanded vertex becomes (x,y,z,u,v). Given an expanded triangle T=(p,q,r), to determine the error metric in the high-dimensional space, we first calculate two standard orthogonal vectors, namely:
number
number
number
number
[0055] Since e1 and e2 are two vectors in the plane in which T lies, the term on the left side of Equation 9 is the square of the distance from the vertex to the plane in which T lies, i.e.
number
number
number
number
[0056] Having obtained the above error metric, we can carry out the same subsequent steps as for the 3D information in the previous sentence, thereby achieving mesh simplification with attribute information.
[0057] Generally, the edges of an image tend to attract people's attention more, which affects people's evaluation of the image quality. Similarly, in 3D meshes, people tend to notice the boundary parts easily. Therefore, whether or not the boundary is maintained is one of the factors that affect the quality in mesh simplification. The boundary of a mesh is generally a geometry boundary and a texture boundary. If an edge belongs to only one face, the edge is a geometric boundary. If there are two or more texture coordinates at the same vertex, the vertex is a texture coordinate boundary. These boundaries should not be merged during mesh simplification. Therefore, each time simplification is performed, it is necessary to first determine whether the vertex at the edge is a boundary point, and if it is, it can be skipped and proceed to the next iteration.
[0058] Optionally, the step of obtaining a first bitstream by encoding first information corresponding to the target 3D mesh comprises: The encoding end obtains first information by quantizing geometric information of the target 3D mesh; The encoding end encodes the first information to obtain a first bitstream.
[0059] The geometric information may be understood to be the coordinates of vertices in the target 3D mesh, which coordinates typically refer to 3D coordinates.
[0060] Here, the first information includes at least one of the following A11, A12, and A13.
[0061] A11 is the first precision geometric information. It should be noted that the first precision geometric information may also be understood as low precision geometric information, that is, low precision geometric information means the geometric information of the target 3D mesh after quantization, i.e., the 3D coordinate information of each vertex contained in the target 3D mesh after quantization.
[0062] A12 is the second precision geometric information. It should be noted that the second precision geometric information may be understood to be high precision geometric information, and the high precision geometric information may be regarded as the geometric information lost during the quantization process, i.e., the lost three-dimensional coordinate information.
[0063] A13 is information on the completion point. It should be explained that the information on the complement points means information on points that require additional processing that occurs during the quantization process. In other words, the complement points are points that require additional processing that occur during the quantization process, such as overlapping points whose coordinate positions overlap, and by processing the overlapping points, they can be restored to their original positions after inverse quantization.
[0064] Optionally, the information of the complementary point includes at least one of the following A131, A132, A133.
[0065] A131 is the index of the vertex in the first precision geometric information that corresponds to the complemented point. It should be noted that by identifying the index, it is possible to know which points in the quantized mesh identify multiple points in the pre-quantization 3D mesh, i.e., multiple points in the pre-quantization 3D mesh will overlap after quantization, and the low-precision geometric information of the complementary points can be determined by the vertex index.
[0066] A132 is the third precision geometric information of the complemented point. It should be clarified that the third precision geometric information may be understood as low precision geometric information of the interpolated point, ie, the quantized three-dimensional coordinate information of the interpolated point.
[0067] A133 is the fourth precision geometric information of the complement point. It should be noted that the fourth precision geometric information may be understood as high precision geometric information of the interpolated point, that is, the three-dimensional coordinate information lost during the quantization process of the interpolated point.
[0068] It should be noted here that in a concrete application, which points are hidden after quantization can be determined by A131 and A133, or A132 and A133.
[0069] It should be mentioned that after obtaining the first information, the first information can be encoded, and the encoded bitstream can be determined as the first bitstream.
[0070] Optionally, the step of obtaining first information by quantizing geometric information of the object 3D mesh comprises: The encoding end includes a step of obtaining first precision geometric information by quantizing each vertex in the target 3D mesh based on a quantization parameter of each component.
[0071] It should be noted that the quantization parameters of each component can be flexibly set according to usage needs, and the quantization parameters mainly include quantization parameters in three components of the X direction, Y direction, and Z direction.
[0072] Typically, for quantization that does not require high accuracy, only low-precision geometric information may be retained after quantization, but for quantization that requires high accuracy, it is necessary to record not only low-precision geometric information but also high-precision geometric information during quantization, so that accurate mesh reconstruction can be achieved during decoding.
[0073] Optionally, in the above case, the step of obtaining first information by quantizing geometric information of the target 3D mesh further comprises: The encoding end includes a step of obtaining second-precision geometric information based on the first-precision geometric information and a quantization parameter of each component.
[0074] For example, let the three-dimensional coordinates of a vertex be (x, y, z) and the quantization parameter be (QP x ,QP y ,QP z ), then the low-precision geometric information (x l ,y l ,z l ) and high-precision geometric information (x h ,y h ,z h The calculation process of is as shown in Equation 14 to Equation 19.
number
number
number
number
number
number
[0075] There are multiple calculation methods possible for the f1 function, and a relatively common calculation method is to divide the initial coordinates of each dimension by the quantization parameter of the dimension, as shown in Equation 20 to Equation 22. Here, / is a division operator, and the result of the division operation may be rounded in different ways, such as rounding up, rounding down, or rounding up. There are also various calculation methods for the f2 function, and the realization methods corresponding to Equation 20 to Equation 22 are as shown in Equation 23 to Equation 25, where * is a multiplication operator.
number
number
number
number
number
number
[0076] When the quantization parameter is an integer power of 2, the f1 and f2 functions can be realized by bit operations as shown in Equations 26 to 31.
number
number
number
number
number
number
[0077] Quantization parameter QP x , Q.P. y and QP z It should be noted that QP can be flexibly set regardless of the calculation method of the f1 and f2 functions. First, the quantization parameters of different components are not necessarily equal, and by utilizing the correlation between the quantization parameters of different components, x and QP y and QP z A relationship between the quantization parameters may be established, and different quantization parameters may be set for different components. Secondly, the quantization parameters of different spatial regions are not necessarily equal, and the quantization parameters may be adaptively set according to the sparseness of the vertex distribution in the local region.
[0078] It should be noted that the high-precision geometric information includes detailed information of the contours of the 3D mesh. To further improve the compression efficiency, the high-precision geometric information (x h ,y h ,z h ) may be further processed. In a 3D mesh model, the importance of high-precision geometric information of vertices in different regions is different. In regions with sparse distribution of vertices, the distortion of high-precision geometric information does not significantly affect the visual effect of the 3D mesh. In this case, in order to improve the compression efficiency, it is possible to choose to further quantize the high-precision geometric information or to only reserve the high-precision geometric information of some points.
[0079] During the quantization process, there is a possibility that multiple points will overlap at the same position after quantization.
[0080] In the above case, optionally, the step of obtaining first information by quantizing geometric information of the target 3D mesh includes: The encoding end includes a step of determining information of a complementary point based on geometric information of the target 3D mesh and the first precision geometric information.
[0081] That is, after obtaining the low-precision geometric information of all vertices, the points where the low-precision geometric information overlap are coded as complementary points separately. The geometric information of complementary points can be similarly divided into two parts, low-precision geometric information and high-precision geometric information, and depending on the application's requirements for compression distortion, it is possible to choose to reserve all complementary points or only a part of them. The high-precision geometric information of complementary points can be further quantized, or only the high-precision geometric information of some points can be reserved.
[0082] It should be explained that the geometric information of the target 3D mesh needs to be quantized to obtain the first information, and then the first information needs to be encoded to obtain the final bitstream.
[0083] Optionally, the step of obtaining a first bitstream by encoding the first information further comprises: The encoding end processes the first information to obtain second information, the second information including at least one of an occupancy image and a geometric image; and obtaining a first bitstream by encoding the second information.
[0084] It should be noted that since the types of information contained in the first information are different, when processing the first information, each different type of information is processed separately. In the following, the implementation process of obtaining the first bitstream from the perspective of each different information will be described.
[0085] 1. The first information includes first precision geometric information. Optionally, when the first information includes first precision geometric information, the step of obtaining second information by processing the first information includes: The encoding terminal performs 3D patch division on the first precision geometric information; The encoding end obtains a two-dimensional patch by two-dimensional projection of the divided three-dimensional patch; The encoding end obtains two-dimensional image information by packing the two-dimensional patches; The encoding end includes a step of obtaining an occupancy image of a first precision and a geometric image of a first precision based on the two-dimensional image information.
[0086] It should be noted that in this case, the low-precision geometric information is mainly divided into patches to obtain a number of 3D patches. A specific implementation of this step is that the encoding end determines the projection plane of each vertex included in the first-precision geometric information, the encoding end divides the vertices included in the first-precision geometric information into patches based on the projection plane, and the encoding end obtains each divided patch by clustering the vertices included in the first-precision geometric information. That is, the patch division process mainly includes: first, estimating the normal vector of each vertex, selecting the candidate projection plane with the smallest angle between the plane normal vector and the vertex normal vector as the projection plane of the vertex, then initially dividing the vertices based on the projection plane, and constructing the vertices with the same projection plane and connected as a patch, and finally optimizing the clustering result by a fine division algorithm to obtain a final 3-dimension patch (3D patch).
[0087] A specific implementation of the process of obtaining a 3D patch from first precision geometric information is described in detail below.
[0088] First, we estimate the normal vector of each point. The tangent plane and its corresponding normal are defined based on the nearest neighbor vertices m of each point with a predefined search distance. The KD tree separates the data and finds the point p i is used to find neighboring points near the centroid of the set
number
number
[0089] The vertex normal vector is estimated by the feature decomposition method, and the calculation process is shown in Equation 33.
number
[0090] In the initial partitioning stage, we first select a projection plane for each vertex. We then estimate the normal vector of the vertex.
number
number
number
[0091] The fine subdivision process can reduce the time complexity of the algorithm through a mesh-based algorithm. The flow of the mesh-based fine subdivision algorithm is shown in FIG. 3, specifically including:
[0092] First, the number of repetitions (numiterations) is set to 0, and it is determined whether the number of repetitions is below the maximum number of repetitions (it should be explained that the maximum number of repetitions can be set according to the usage needs), and if it is below, the following steps 301, 302, 303, 304, 305, 306, 307, and 308 are executed.
[0093] In step 301, the (x,y,z) geometric coordinate space is divided into voxels.
[0094] It should be noted that the geometric coordinate space here refers to a geometric coordinate space composed of quantized first-precision geometric information. For example, in the case of a 10-bit Mesh with a voxel size of 8, the number of voxels on each coordinate is 1024 / 8=128, and the total number of voxels in this coordinate space is 128×128×128.
[0095] Step 302 searches for filled voxels, which are voxels that contain at least one point in the mesh.
[0096] In step 303, a smoothing value in each projection plane of each filled voxel is calculated, denoted as voxScoreSmooth, where the smoothing value in a projection plane of a voxel is the number of points aggregated in that projection plane by the initial segmentation process.
[0097] In step 304, the KD-Tree partition is used to search for nearby filled voxels, denoted as nnFilledVoxels, i.e., the nearest filled voxel for each filled voxel (within a search radius and / or limited to a maximum number of neighboring voxels).
[0098] In step 305, the smoothing value (scoreSmooth) of each filled voxel is calculated using the voxel smoothing value in each projection plane of the neighboring filled voxels, and the calculation process is shown in Equation 35:
number
[0099] In step 306, the normal value is calculated using the normal vector of the vertex and the normal vector of the candidate projection plane, and the normal value is set as scoreNormal. The calculation process is shown in Equation 36:
number
[0100] In step 307, the final value of each voxel in each projection plane is calculated by scoreSmooth and scoreNormal, and the calculation process is as shown in Equation 37:
number
[0101] In step 308, the vertices are clustered using the values in step 307 to obtain finely divided patches.
[0102] The above process is repeated multiple times until the correct patch is obtained.
[0103] Furthermore, the encoding end obtains a 2D patch by 2D projection of the divided 3D patch.
[0104] As a matter of explanation, this process involves projecting a 3D patch onto a 2-dimensional plane to obtain a 2-dimension patch (2D patch).
[0105] The encoding end obtains the two-dimensional image information by packing the two-dimensional patches.
[0106] It should be noted that this step realizes patch packing, and the purpose of patch packing is to arrange 2D patches into one two-dimensional image. The basic principle of patch packing is to arrange the patches on the two-dimensional image so that they do not overlap, or arrange the non-pixel parts of the patches on the two-dimensional image so that they partially overlap. By using algorithms such as arrangement by priority and arrangement by time domain uniformity, the patches can be arranged more tightly and have time domain uniformity, thereby improving coding performance.
[0107] Assume that the resolution of a 2D image is WxH and the minimum block size of the patch array is defined to be T, which specifies the minimum distance between different patches placed in this 2D mesh.
[0108] First, patches are inserted into a 2D mesh according to the non-overlapping principle. Each patch occupies an area of an integer number of T×T blocks, and adjacent patches are expected to be separated by a distance of at least one T×T block. If there is not enough space to place the next patch, the image height is doubled and patch placement continues.
[0109] In order to more tightly align the patches, the patch can select multiple different alignment directions. For example, as shown in Figure 4, eight different alignment directions can be adopted, including 0 degrees, 180 degrees, 90 degrees, 270 degrees, and mirroring of these four directions.
[0110] In order to obtain higher performance in adapting to inter-frame prediction in video encoders, a patch ordering method with temporal uniformity is adopted. In one group of frames (GOF), all patches of the first frame are ordered in descending order. For other frames in the GOF, the order of patches is adjusted using a temporal uniformity algorithm.
[0111] Here, it should be further explained that after obtaining 2D image information, patch information can be obtained based on information during the process of obtaining the 2D image information, and then the patch information can be encoded to obtain a patch information sub-bitstream.
[0112] It should be noted here that in the process of acquiring 2D image information, it is necessary to record information on patch division, information on patch projection plane, and information on patch packing position; therefore, the patch information records operation information of each step in the process of acquiring a 2D image, i.e., the patch information includes information on patch division, information on patch projection plane, and information on patch packing position.
[0113] It should be explained that the process of acquiring the occupancy image is mainly to use the patch arrangement information obtained by patch packing to set the positions where vertices exist in the 2D image as 1 and the remaining positions as 0 to obtain the occupancy image. The process of acquiring the geometric image is mainly to store the distance from each vertex to the projection plane in the process of obtaining the 2D patch by projection, and this distance is called depth. The compression of the low-precision geometric image is to obtain the low-precision geometric image by arranging the depth value of each vertex in the 2D patch to the position of the vertex in the occupancy image.
[0114] Second, the first information includes second precision geometric information. Optionally, when the first information includes second precision geometric information, the step of obtaining second information by processing the first information further comprises: The encoding terminal obtains an arrangement order of vertices included in the first precision geometric information; The encoding end includes a step of generating a second precision geometric image by arranging second precision geometric information corresponding to vertices included in the first precision geometric information in a two-dimensional image.
[0115] It should be noted that the high-precision geometric information is arranged in a two-dimensional image by a raw patch arrangement method, and the high-precision geometric information corresponding to the vertices in the low-precision geometric image is arranged in the two-dimensional image to obtain a raw patch, so that a high-precision geometric image is generated. As shown in FIG. 5, it is mainly divided into step 501, step 502, and step 501.
[0116] In step 501, the arrangement order of the vertices is obtained, and the low-precision geometric image is scanned row by row from left to right, and the scan order of each vertex is set as the arrangement order of the vertices in the raw patch.
[0117] In step 502, a raw patch is generated.
[0118] It should be noted that the raw patch is a rectangular patch formed by arranging the three-dimensional coordinates of the vertices row by row, as shown in Fig. 4. According to the arrangement order of the vertices obtained in step 501, the high-precision geometric information of the vertices is sequentially arranged to obtain the high-precision geometric information raw patch.
[0119] In step 503, the high precision geometric information is arranged into a two-dimensional image to generate a high precision geometric image.
[0120] It should be noted that, when obtaining a geometric image sub-bitstream by encoding, the encoding end obtains the geometric image sub-bitstream by encoding a first precision geometric image and a second precision geometric image.
[0121] 3. The first information contains the information of the complement point Optionally, when the first information includes information of the complement point, the step of obtaining second information by processing the first information includes: The encoding end arranges the third precision geometric information of the complemented points as a first raw patch; The encoding end arranges the fourth precision geometric information of the complemented points as a second raw patch in the same arrangement order as the first raw patch; The encoding end includes compressing the first raw patch and the second raw patch to obtain a geometric image of the complemented point.
[0122] It should be noted that in the embodiment of the present application, the low-precision part and the high-precision part into which the geometric information of the complement point is divided are coded respectively. First, the low-precision geometric information of the complement point is arranged in an arbitrary order as a complement point low-precision raw patch, then the high-precision geometric information is arranged in the same order as the complement point low-precision raw patch as a complement point high-precision raw patch, and finally, the complement point low-precision raw patch and the high-precision raw patch are compressed, and several compression methods are available. Among them, one method is to encode the value in the raw patch by methods such as run-length coding, entropy coding, etc., and the other method is to add the complement point low-precision raw patch to the blank area in the low-precision geometric image, and add the complement point high-precision raw patch to the blank area in the high-precision geometric image to obtain the geometric image of the complement point.
[0123] Optionally, the step of determining a second bit stream based on connectivity information corresponding to the first reconstructed mesh includes: The encoding end determines vertices to be sorted within a first spatial range based on the spatial angles of adjacent triangular patches in a first reconstructed mesh, the first spatial range being a spatial range in which a target vertex of a triangle to be encoded is located in the first reconstructed mesh, and the vertices to be sorted include the target vertex; The encoding end obtains sorting information of the target vertex by sorting the vertices to be sorted; The encoding end obtains encoding information of the triangle to be encoded according to encoding information corresponding to sorting information of the target vertex; The encoding end updates a set of edges according to a first predetermined rule; The encoding end re-determines the triangles to be encoded based on the updated edge set until the encoding information of all the triangles to be encoded in the first reconstructed mesh is obtained; the encoding end obtains the second bit stream by encoding the encoding information of all the triangles to be encoded; Here, the first predetermined rule includes adding two edges, excluding a first edge, of the triangle to be encoded to the edge set, and removing the first edge from the edge set.
[0124] In this embodiment, the encoding end first encodes geometric information based on a target 3D mesh, then reconstructs the geometric information, and performs mesh reconstruction using the encoding information of the reconstructed geometric information. Then, it obtains connectivity information based on the first reconstructed mesh, thereby ensuring the acquisition of accurate connectivity information.
[0125] Here, the reconstructed geometric information includes index information of vertices in the target 3D mesh.
[0126] In an embodiment of the present application, the 3D mesh may be divided into at least one triangular patch, each triangular patch including at least one triangle.
[0127] Based on the spatial angles of adjacent triangular patches in the 3D mesh, some vertices within the first spatial range can be cleaned out and the remaining vertices can be the vertices to be sorted.
[0128] Optionally, the first spatial extent is: a spatial extent between the first sphere and the second sphere; Here, the centers of the first sphere and the second sphere are the same, the radius of the first sphere and the radius of the second sphere are different, and the center of the sphere is a target position on the first edge of the triangle to be encoded, for example, the center of the sphere is the midpoint of the first edge of the triangle to be encoded.
[0129] In this embodiment, the vertices to be sorted are sorted according to a predetermined sorting criterion, for example, the sorting criterion may be sorting according to the distance between the vertices and the midpoint of the first edge of the triangle to be encoded, or the sorting criterion may be sorting according to the size of the radius of the circumscribing circle of the triangle formed by the vertices and the first edge. Of course, the sorting criterion may be other criteria, and is not specifically limited here.
[0130] Here, by further deleting vertices in the first spatial range according to the spatial angles of the adjacent triangular patches, the number of vertices to be sorted can be reduced, that is, the bit information used in the sorting information of the target vertices can be reduced; Alternatively, the encoding end obtains the encoding information by encoding sorting information of the target vertex when the target condition is satisfied, but obtains the encoding information by encoding an index of the target vertex when the target condition is not satisfied. For example, the target condition is that the number of vertices to be sorted in the first spatial range is less than a predetermined threshold, and / or the sorting order of the target vertex is less than a predetermined value. When the number of vertices to be sorted in the first spatial range is small, or when the sorting order of the target vertex is small, the number of bits occupied by the encoding information corresponding to the sorting information is small, so that in this case, by encoding the sorting information of the target vertex, the number of encoding bits can be effectively reduced. On the other hand, when the number of vertices to be sorted is large, or when the sorting order of the target vertex is large, the number of encoding bits can be effectively reduced by encoding the index of the target vertex rather than encoding the sorting information.
[0131] In this embodiment, after obtaining the encoding information for encoding the triangle, the encoding end updates the edge set according to a first predetermined rule, and the encoding end re-determines the triangle to be encoded according to the updated edge set until the encoding information of every triangle in the 3D mesh is obtained. A second bitstream is obtained by encoding the encoding information of all triangles in the first reconstructed mesh.
[0132] Here, the first predetermined rule includes adding two edges, excluding a first edge, of the triangle to be encoded to an edge set, and removing the first edge from the edge set.
[0133] In the embodiment of the present application, based on the spatial angles of adjacent triangular patches in the 3D mesh, a part of the vertices in the first spatial range is excluded, and the vertices to be sorted are determined based on the excluded vertices, that is, the number of vertices to be sorted is reduced. In this way, when encoding the sorting information of the target vertices, the number of bits occupied by the encoding information can be further reduced, and the encoding efficiency can be further effectively improved.
[0134] Optionally, before the step of determining the vertices to be sorted in the first spatial range based on the spatial angles of adjacent triangular patches in the first reconstructed mesh, the method further comprises: The coding edge selects a first edge from a set of edges corresponding to a first reconstructed mesh, the set of edges being a set of at least one edge of an encoded triangle in the first reconstructed mesh; The encoding terminal determines a triangle to be encoded based on the first edge and the vertices corresponding to the first edge, wherein target vertices of the triangle to be encoded are vertices corresponding to the first edge excluding two vertices connected to the first edge, and the target vertices can also be described as opposite vertices of the first edge.
[0135] Optionally, the step of determining the vertices to be sorted within the first spatial range based on the spatial angles of adjacent triangular patches in the first reconstructed mesh includes: The encoding end includes a step of determining vertices to be sorted within a first spatial range based on spatial angles of the adjacent triangular patches when the triangle to be encoded is a triangle other than a predetermined type of triangle.
[0136] Optionally, the predetermined type of triangles are: A triangle having an angle with the encoded triangle that is smaller than a predetermined angle; The invention includes at least one of the following: triangles in which two vertices overlap or three vertices are collinear, specifically, triangles in which two vertices overlap or three vertices are collinear.
[0137] Optionally, the method further comprises: The encoding end further includes a step of obtaining encoding information of the triangle to be encoded based on encoding information corresponding to target vertex information of the triangle to be encoded when the triangle to be encoded is a predetermined type of triangle.
[0138] For example, when the triangle to be encoded is a triangle of the specified type, the index of the target vertex of the triangle to be encoded is directly encoded, and the encoding information of the triangle to be encoded is obtained based on the encoding information corresponding to the index of the target vertex.
[0139] In the embodiments of the present application, when encoding the vertex index, a direct binary representation may be used, or an encoding algorithm such as Huffman may be used, and no specific encoding method is limited here.
[0140] Optionally, the step of determining the vertices to be sorted within the first spatial range based on the spatial angles of adjacent triangular patches in the first reconstructed mesh includes: The encoding end obtains remaining vertices by excluding all vertices of a first target triangle from vertices within the first spatial range; the encoding end determining vertices to be sorted in the first spatial range based on the remaining vertices; Here, the first target triangle is a triangle whose angle with an adjacent already-encoded triangle is smaller than an angle threshold, and one edge of the first target triangle is the same as the first edge of the triangle to be encoded.
[0141] Optionally, the coding information of the triangle to be coded further comprises coding information of the angle threshold.
[0142] Here, the angle threshold is encoded to enable the decoding end to obtain the angle threshold based on the encoding information, and the vertices to be sorted in the first spatial range are determined based on the angle threshold, and in this method, the encoding end can flexibly set the angle threshold.
[0143] Of course, a certain angle threshold may be agreed upon in advance, and the encoding end and the decoding end determine the vertices to be sorted in the first spatial range based on the pre-agreed angle threshold, and the encoding end does not need to code the angle threshold.
[0144] Optionally, the method further comprises: The encoding end further includes a step of obtaining encoding information of the triangle to be encoded by encoding target vertex information of the triangle to be encoded within a second spatial range, the second spatial range being a range other than the first spatial range within the first reconstructed mesh.
[0145] Optionally, the coding information of the triangle to be coded further comprises coding information of the first spatial extent.
[0146] For example, the radii of the first and second spheres are encoded, and the implementation allows the first spatial range to be flexibly set.
[0147] Of course, the encoding end and the decoding end may predetermine the size of the first spatial range, and in this method, the encoding end does not need to encode the first spatial range.
[0148] In a specific embodiment of the present application, at the encoding end, the input 3D mesh is divided into one or more patches, and an initial triangle is selected in each patch, and the 3D mesh is the first reconstructed mesh. The vertex index of the initial triangle is encoded, and the edge of the initial triangle is put into a set of edges (i.e., an edge set). An edge in the edge set is selected, and its opposite vertex is determined, and the triangle formed by the edge and the opposite vertex is the triangle to be encoded. For example, the edge selected in each iteration may be τ, and its opposite vertex v, and the triangle to be encoded adjacent to the edge may be encoded. As shown in FIG. 7 and FIG. 8, the process of encoding the connection relationship may specifically include the following steps (1), (2), (3), and (4).
[0149] (1) If a predetermined condition is satisfied, the vertex index of the triangle may be directly coded, or the triangle may be coded by other methods. The predetermined condition may be that the triangle to be coded belongs to a plurality of types of special triangles, for example, that it belongs to a degenerate surface (two points overlap or three points are collinear), or that the angle between the triangle and the coded triangle is smaller than a certain angle, or that the number of vertices in the first spatial range is greater than a predetermined number, or that the target vertex is located outside the second spatial range, for example, within the first spatial range, or that the sort order of the target vertex among the vertices in the first spatial range is equal to or greater than a predetermined value, and the predetermined condition may be flexibly set as necessary. The two edges of the triangle to be coded, excluding the edge τ, are added to the edge set, and the edge τ is removed from the set. Then, according to a certain criterion, another edge of the triangle to be coded (an edge other than edge τ) may be taken from the edge set, followed by coding the triangle adjacent to that edge, and the next edge τ may be selected, for example, in the order of input / output.
[0150] (2) If the above-mentioned predetermined condition is not satisfied, determine the spatial range in which the opposite vertex v is located (i.e., the above-mentioned first spatial range), and encode the spatial range. Traverse all vertices in the spatial range in the patch, clean and remove all vertices of the new triangle formed with the edge τ whose angle with the encoded adjacent triangle is smaller than a certain angle, and encode the angle value.
[0151] The spatial extent may be determined by the geometric properties of the adjacent triangular patches, spatial angles, or other criteria. For example, the spatial extent may be determined by the minimum radius R min and the maximum radius R max Combination with {R min ,R max} may be encoded as the part between two concentric spheres in {R min ,R max} pair.
[0152] Optionally, the angle value may be encoded.
[0153] (3) Traverse all vertices in the spatial range and sort them according to a certain sorting criterion. For example, the sorting criterion may be the distance from vertex v to the midpoint of edge τ, or the radius of the circumscribing circle of the triangle formed with edge τ. In the sorting order, the order of opposite vertex v is encoded.
[0154] (4) Add the two edges of the newly coded triangle, excluding edge τ, to the edge set, remove edge τ from the edge set, and then select another edge of the newly coded triangle from the set according to a certain criterion, and then code the triangle adjacent to that edge.
[0155] The encoding process is repeated for each patch of the 3D mesh until the encoding of the triangles in each patch is completed. If the edge set is empty but there are uncoded triangles, select an initial triangle from the remaining uncoded triangles and repeat the encoding process.
[0156] Optionally, the encoding end determines the third bitstream according to an object information and attribute encoding method, When the attribute encoding method is a first attribute encoding method, the encoding end determines a third bitstream according to attribute information corresponding to the first reconstructed mesh; When the attribute encoding method is the second attribute encoding method or the third attribute encoding method, the encoding end includes a step of determining a third bitstream based on the target 3D mesh and a target texture map corresponding to the target 3D mesh.
[0157] In this embodiment, as described above, the attribute encoding method can be indicated by the state identifier, and the state identifier can be understood as a customized switch identifier. It should be understood that the first reconstructed mesh is a 3D mesh obtained by lossy compressing the geometric information of the target 3D mesh and then reconstructing the lossy compressed geometric information.
[0158] When the state identifier is used to indicate a first attribute encoding method, it indicates that during the process of lossy compressing the geometric information of the target 3D mesh, no deviation occurs in the correspondence between the texture coordinates corresponding to each vertex in the target 3D mesh and the positions of each vertex in the texture map corresponding to the target 3D mesh, and in this case, a third bitstream is obtained by encoding the attribute information corresponding to the first reconstructed mesh.
[0159] When the state identifier is used to indicate the second attribute encoding method, it indicates that a large deviation may occur in the correspondence between the texture coordinates corresponding to each vertex in the target 3D mesh and the position of each vertex in the texture map corresponding to the target 3D mesh during lossy compression of the geometric information of the target 3D mesh. Thus, a third bitstream can be determined based on the target 3D mesh and the target texture map corresponding to the target 3D mesh, the third bitstream including a first sub-bitstream and a second sub-bitstream, in which the first sub-bitstream is a sub-bitstream obtained by encoding reconstructed texture coordinate information in the information, and the second sub-bitstream is a sub-bitstream obtained by encoding the reconstructed texture map in the attribute information.
[0160] When the state identifier is used to indicate the third attribute encoding method, it indicates that during the process of lossy compressing the geometric information of the target 3D mesh, a large deviation may occur in the correspondence between the texture coordinates corresponding to each vertex in the target 3D mesh and the position of each vertex in the texture map corresponding to the target 3D mesh. Thus, a third bitstream can be determined based on the target 3D mesh and the target texture map corresponding to the target 3D mesh, and in the encoding method, only the reconstructed texture map is encoded, and the reconstructed texture coordinate information is not encoded, in order to save bit rate.
[0161] It should be understood that in the above and subsequent embodiments, reconstructed texture coordinate information means regenerated texture coordinate information, and reconstructed texture map means regenerated texture map.
[0162] In this embodiment, a state identifier is customized and set in advance, and an attribute encoding method is further provided based on the state identifier, and attribute information corresponding to the target 3D mesh is encoded, thereby achieving saving in encoding bit rate.
[0163] Optionally, the attribute information includes texture coordinate information and a texture map for indicating texture coordinates corresponding to each vertex in the target 3D mesh, and the step of determining a third bitstream based on the attribute information corresponding to the first reconstructed mesh includes: a step of obtaining a first sub-bitstream by entropy coding a first object coordinate difference value at the encoding end, the first object coordinate difference value being obtained based on the texture coordinate information; the encoding end obtaining a second sub-bitstream by encoding the texture map by a video encoder; The encoding end includes a step of obtaining a third bitstream by combining the first sub-bitstream and the second sub-bitstream.
[0164] It should be understood that the attribute information includes texture coordinate information and a texture map, and the texture coordinate information includes texture coordinates corresponding to each vertex, i.e., UV coordinates for indicating the texture color values of the corresponding vertices.
[0165] In this embodiment, the encoded geometric information is reconstructed, and a first reconstructed mesh is obtained based on the reconstructed geometric information and the simplified mesh. Then, it is determined whether the UV coordinates corresponding to each vertex in the first reconstructed mesh match the UV coordinates corresponding to the same vertex in the simplified mesh. If they do not match, the order of the UV coordinates in the simplified mesh is adjusted to match the order in the reconstructed first mesh.
[0166] For specific technical solutions for determining the coordinate difference value, please refer to the following examples.
[0167] After the first object coordinate difference value is determined, the first object coordinate difference value is entropy coded to form a UV coordinate sub-bitstream, where the UV coordinate sub-bitstream is also referred to as a first sub-bitstream.
[0168] In this embodiment, after obtaining a texture map corresponding to the first reconstructed mesh, the texture map may be directly encoded by a video encoder to form a texture map sub-bitstream, where the texture map sub-bitstream is also referred to as a second sub-bitstream, where the video encoder includes but is not limited to a High Efficiency Video Coding (HEVC) encoder and a Versatile Video Coding (VVC) encoder.
[0169] After obtaining the first sub-bitstream and the second sub-bitstream, a third bitstream is formed by combining the first sub-bitstream and the second sub-bitstream.
[0170] In this embodiment, the first object coordinate difference value is entropy coded, and the texture map is coded by a video encoder to form a third bitstream, thereby achieving efficient compression of the attribute information and reducing the amount of data.
[0171] Optionally, before the step of obtaining a first sub-bitstream by entropy coding the first object coordinate difference value, the method further comprises: The encoding edge selects a second edge from a set of edges corresponding to a first reconstructed mesh, the set of edges being a set of at least one edge of an encoded triangle indicated by the texture coordinate information; the encoding end determining a prediction triangle based on the second edge and a vertex corresponding to the second edge; The encoding end determines, as prediction vertices, vertices corresponding to the second edge in the prediction triangle, excluding two vertices connected to the second edge; The method includes a step in which the encoding end determines a coordinate difference value between the predicted vertex and an actual vertex as the first target coordinate difference value, wherein the actual vertices are vertices corresponding to the second edge in the triangle to be encoded, excluding two vertices connected to the second edge.
[0172] For ease of understanding, refer to FIG. 9. In the scene shown in FIG. 9, τ1 represents the second edge, and A1 represents a vertex corresponding to the second edge. A triangle S1 can be determined based on the second edge and the vertex corresponding to the second edge, and a predicted triangle S2 is determined for the triangle S1 by a parallelogram prediction method. Furthermore, among the vertices corresponding to the second edge in the predicted triangle, the vertices excluding the two vertices connected to the second edge are determined as predicted vertices, that is, the A2 point shown in FIG. 9.
[0173] An actual vertex in a first reconstructed mesh is obtained, and the actual vertex is a vertex corresponding to a second edge in a triangle to be encoded, excluding two vertices connected to the second edge, the triangle to be encoded is S3 shown in Figure 9, and the actual vertex is point A3 shown in Figure 9. A coordinate difference value between the predicted vertex and the actual vertex is calculated, and the coordinate difference value is determined as a first target coordinate difference value.
[0174] Optionally, the step of determining a third bitstream based on the target 3D mesh and a target texture map corresponding to the target 3D mesh at the encoding end includes: When the attribute encoding method is a second attribute encoding method, the encoding end performs a surface spectrum processing on the target 3D mesh to obtain reconstructed texture coordinate information; the encoding end rasterizing the object texture map using the object 3D mesh, the object texture map, and the reconstructed texture coordinate information to obtain a reconstructed texture map; the encoding end performs entropy encoding on the second object coordinate difference value to obtain a first sub-bitstream, the second object coordinate difference value being obtained based on the reconstructed texture coordinate information; the encoding end obtaining a second sub-bitstream by encoding the reconstructed texture map by a video encoder; The encoding end obtains a third bitstream based on the first sub-bitstream and the second sub-bitstream.
[0175] Alternatively, the reconstructed texture coordinate information can be obtained by isometric charts (ISO-charts) algorithm, and the specific embodiment of performing surface spectrum processing on the target 3D mesh is described in detail below.
[0176] 1. Surface spectrum analysis Surface spectral analysis parameterizes the target 3D mesh by the isometric feature mapping (IsoMap) dimensionality reduction method, which specifically includes the following steps a), b), c), and d).
[0177] a) A symmetric matrix D of squared geodesic distances between surface points N Calculate.
[0178] b)D N Double center and normalize to B N The calculation process is as shown in the following formula:
number
number
[0179] c) B N The feature value λ i and the corresponding feature vector
number
[0180] d) Each point i in the original surface has an embedding in the new space, the N-dimensional vector
number
number
number
[0181] Furthermore, the parameterization may introduce distortions and warping since the mapping from high-dimensional space to low-dimensional space is not equidistant. For each vertex i, the Geodesic Distance Distortion (GDD) of its embedding is defined as
number
number
[0182] When n=2, surface spectral analysis produces a surface parameterization that minimizes the sum of squares of the GDD over all vertices.
[0183] 2. Stretch optimization Since the 3D space is not equidistant from the 2D space, the parameterization may cause distortion or warping, and a stretch optimization process is required to eliminate the distortion phenomenon.
[0184] Consider a triangle T with 2D texture coordinates p1, p2, p3, where p i =(s i ,t i ) and the corresponding three-dimensional coordinates are expressed as q1, q2, and q3. The calculation process of the affine mapping S(p)=S(s,t)=q is as shown in the following formula:
number
number
number
number
number
[0185] Then, the matrix [S S ,S t Calculate the large and small singular values of . The calculation process is as follows:
number
number
number
number
number
number
[0186] The entire 3D mesh
number
number
number
number
number
[0187] According to the above formulas 48 and 49, the stretch optimization process is performed on the target 3D mesh.
[0188] 3. Surface Spectral Clustering By using surface spectral clustering, the target 3D mesh processed by stretch optimization is divided into multiple charts, and the specific algorithm process is shown in the following a), b), c), d), e), and f).
[0189] a) sorting the feature values and corresponding feature vectors obtained from the spectral analysis in descending order, i.e., λ1 ≥ λ2 ≥ ... ≥ λ N Let us assume that.
[0190] b) λ n / λ n+1 The top n feature values and feature vectors that maximize
[0191] c) For each vertex i in the target 3D mesh, its n-dimensional embedding coordinates
number
[0192] 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.
[0193] e) generating m≦2n representative points by removing representative points whose distance is less than a distance threshold, optionally the distance threshold being 10 times the average edge length of the target 3D mesh;
[0194] f) Clustering is simultaneously performed around the representative points, and the 3D mesh is divided into m charts.
[0195] 4. Boundary optimization After obtaining multiple charts, the graph cut algorithm is used to optimize the boundaries between the charts. Specifically, one of the adjacent charts is defined as chart A and the other as chart B. There is an intermediate region C between the two charts. The capacity between two adjacent triangles fi and fj in the intermediate region C is calculated. Then, the maximum flow algorithm and / or minimum cut algorithm are used to find the boundary edges based on the capacity, and the boundary edges between the adjacent triangles fj are optimized. i and f j is determined to be included in chartA or chartB, which generates a new boundary between chartA and chartB.
[0196] The above capacity is defined as shown in the following formula.
number
[0197] The calculation process of Equation 50 will be specifically explained below.
[0198]
number
[0199]
number
number
[0200] Finally, the charts generated by the above process are packed into a two-dimensional texture region using a chart packing algorithm to generate reconstructed texture coordinate information.
[0201] A specific embodiment for performing rasterization processing on a target texture map will be described in detail below.
[0202] a) First, obtain the maximum search distance by calculating the size of the bounding box corresponding to the target 3D mesh.
[0203] b) Calculating the boundary edges in texture space of the second reconstructed mesh.
[0204] c) Divide the faces in the target 3D mesh into a uniform grid.
[0205] d) Traversing all the faces in the second reconstructed mesh and rasterizing the target texture map to obtain a reconstructed texture map.
[0206] The process of rasterizing a target texture map for one face in the second reconstructed mesh will be specifically described below.
[0207] Calculate the size of a bounding box in texture space of the current surface (any surface in the second reconstructed mesh), sample the center point of each pixel within the bounding box, and obtain a pixel position in the target texture map of the current surface, optionally the pixel position being the position of three pixel points.
[0208] By searching for three pixel points in the target 3D mesh that are closest to the above three pixel points within the maximum search distance, a surface corresponding to the current surface in the target 3D mesh is obtained, and the surface is called the closest surface.
[0209] Calculate pixel locations corresponding to three pixel points of the nearest surface in the target texture map, and RGBA values corresponding to each pixel location, where the RGBA values refer to the red, green, blue and alpha color space corresponding to the pixel point, and assign the RGBA values to the pixel locations corresponding to the three pixel points in the reconstructed texture map.
[0210] Optionally, the boundaries may be smoothed by converting the alpha values of pixel points at the boundary edges to 255. Optionally, the reconstructed texture map may be filled using a pull-push filling algorithm to conserve bitstream.
[0211] For ease of understanding, please refer to Figures 10(a) to 10(c), where Figure 10(a) is an image shown by a target 3D mesh, Figure 10(b) is an effect diagram of a target texture map, and Figure 10(c) is an effect diagram of a reconstructed texture map.
[0212] In this embodiment, after obtaining the reconstructed texture coordinate information, it is determined whether the UV coordinates corresponding to each vertex in the target 3D mesh match the reconstructed UV coordinates corresponding to the vertex indicated in the reconstructed texture coordinate information, and if they do not match, the UV coordinates corresponding to each vertex in the target 3D mesh may be adjusted so that they match the reconstructed UV coordinates corresponding to the vertex.
[0213] A specific embodiment for determining the second coordinate difference value is the same as the embodiment for determining the first coordinate difference value, so a duplicated description will be omitted here.
[0214] After determining the second object coordinate difference value, the second object coordinate difference value is entropy coded to form a UV coordinate sub-bitstream, where the UV coordinate sub-bitstream is also referred to as a first sub-bitstream. In this embodiment, after obtaining a reconstructed texture map, the texture map sub-bitstream may be directly coded by a video encoder to form a texture map sub-bitstream, where the texture map sub-bitstream is also referred to as a second sub-bitstream. The first sub-bitstream and the second sub-bitstream are combined to form a third bitstream.
[0215] Optionally, the step of determining a third bitstream based on the target 3D mesh and a target texture map corresponding to the target 3D mesh at the encoding end includes: When the attribute encoding method is a third attribute encoding method, the encoding end performs a surface spectrum processing on the target 3D mesh to obtain reconstructed texture coordinate information; the encoding end rasterizing the object texture map using the object 3D mesh, the object texture map, and the reconstructed texture coordinate information to obtain a reconstructed texture map; The encoding end includes a step of obtaining a third bitstream by encoding the reconstructed texture map by a video encoder.
[0216] As described above, if the state identifier indicates a three-attribute encoding method, then only the reconstructed texture map is encoded to generate a third bitstream.
[0217] In this embodiment, when the attribute encoding method is the third attribute encoding method, the reconstructed texture coordinate information is obtained by performing surface spectrum processing on the target 3D mesh. It should be understood that the specific embodiment for performing surface spectrum processing on the target 3D mesh is the same as the specific embodiment of surface spectrum processing mentioned in the above embodiment, and therefore the overlapping description is omitted here.
[0218] After obtaining the reconstructed texture coordinate information, the target texture map is rasterized using the target 3D mesh, the target texture map, and the reconstructed texture coordinate information to obtain a reconstructed texture map. It should be understood that the specific embodiment for rasterizing the target texture map is the same as the specific embodiment of the rasterization mentioned in the above embodiment, and therefore the overlapping description will be omitted here.
[0219] In this embodiment, since the state identifier indicates a third attribute encoding method, the third bitstream is obtained by encoding only the reconstructed texture map by the video encoder, thereby saving the encoding bitrate.
[0220] In the following, the decoding method provided by the embodiments of the present application will be described in detail by several embodiments and their application scenarios with reference to the drawings.
[0221] Please refer to Figure 11, which is a flow chart of the decoding method provided by the present application. The decoding method provided by this embodiment includes the following steps S1101, S1102, S1103, and S1104.
[0222] In S1101, the decoding end decodes the acquired target bitstream to obtain the first information, the decoding information, the attribute coding method, and the third bitstream.
[0223] The target bitstream may be a bitstream obtained by encoding the target 3D mesh by an encoding end. When decoding, the decoding end first decodes geometric information, and then decodes the connection relationship according to the geometric information.
[0224] The first information and the third bit stream are defined in the same manner as the first information and the third bit stream in the above embodiment, and therefore a duplicated description will be omitted here.
[0225] As mentioned above, the state identifier can indicate the attribute encoding method.
[0226] In S1102, the decoding end obtains geometric information corresponding to a target 3D mesh based on the first information.
[0227] The decoding end obtains the target 3D mesh by performing an inverse quantization operation on the first information, and specific technical solutions for obtaining the target 3D mesh are referred to in the following embodiments.
[0228] In S1103, the decoding end determines connectivity information corresponding to the target 3D mesh based on the decoding information.
[0229] The decoding end determines each triangle in the target 3D mesh according to the decoding information, and obtains the connection information corresponding to the target 3D mesh. For the specific technical solution of determining each triangle in the target 3D mesh according to the decoding information, please refer to the following embodiment.
[0230] In S1104, the decoding end determines attribute information corresponding to the target 3D mesh according to the third bitstream and the attribute encoding method.
[0231] The decoding end determines attribute information corresponding to the target 3D mesh through the third bitstream and the attribute encoding method, and as mentioned above, the attribute information includes but is not limited to mesh UV coordinate attribute and texture map. For a specific technical solution of determining attribute information corresponding to the target 3D mesh through the third bitstream and the attribute encoding method, please refer to the following embodiments.
[0232] In an embodiment of the present application, the acquired target bitstream is decoded to obtain first information, decoding information, an attribute coding method, and a third bitstream, geometric information corresponding to the target 3D mesh is acquired according to the first information, connectivity information corresponding to the target 3D mesh is determined according to the decoding information, and attribute information corresponding to the target 3D mesh is determined through the third bitstream and the attribute coding method. In the above technical solution, the decoding method for the third bitstream is determined through the attribute coding method, thereby obtaining accurate attribute information and avoiding decoding failure.
[0233] The step of obtaining first information by decoding the obtained target bitstream includes: The decoding end obtains an object sub-bitstream including a patch information sub-bitstream, an occupancy image sub-bitstream, and a geometric image sub-bitstream according to the obtained object bitstream; The decoding end obtains second information including at least one of an occupancy image and a geometric image according to the target sub-bitstream; The decoding terminal obtains the first information based on the second information.
[0234] Optionally, when the first information includes first precision geometric information, the step of acquiring the first information based on the second information includes: The decoding terminal obtains two-dimensional image information based on the occupancy image of the first precision and the geometric image of the first precision; The decoding terminal obtains a two-dimensional patch based on the two-dimensional image information; The decoding end obtains a 3D patch by 3D backprojecting the 2D patch according to patch information corresponding to the patch information sub-bitstream; The decoding end obtains first precision geometric information based on the 3D patch.
[0235] Optionally, when the first information includes second precision geometric information, the step of acquiring the first information based on the second information includes: The decoding end includes a step of obtaining second precision geometric information based on a second precision geometric image.
[0236] Optionally, when the first information includes information of the complement point, the step of acquiring the first information based on the second information includes: The decoding end determines, based on a geometric image of the complement point, a first raw patch corresponding to the third precision geometric information of the complement point, and a second raw patch corresponding to the fourth precision geometric information of the complement point; The decoding end determines information of a complementary point based on the first raw patch and the second raw patch.
[0237] It should be noted that in the embodiment of the present application, the low-precision part and the high-precision part into which the geometric information of the complement point is divided are decoded respectively. First, the geometric image of the complement point is decompressed, and several decompression methods are available. Among them, one method is to decode the geometric image by methods such as run-length decoding, entropy decoding, etc., and another method is to extract the low-precision raw patch of the complement point from the low-precision geometric image, extract the high-precision raw patch of the complement point from the high-precision geometric image, and then obtain the low-precision geometric information of the complement point from the low-precision raw patch of the complement point in a specific order, and obtain the high-precision geometric information from the high-precision raw patch of the complement point in a specific order. Here, it should be noted that the specific order is obtained by the decoding end analyzing the bit stream, that is, the encoding end informs the decoding end through the bit stream about the order in which the low-precision raw patch of the complement point and the high-precision raw patch of the complement point are generated.
[0238] Optionally, the step of obtaining geometric information corresponding to the target 3D mesh based on the first information further comprises: The decoding terminal determines coordinates of each vertex in the first-precision geometric information based on the first-precision geometric information and a quantization parameter of each component; The decoding end determines geometric information corresponding to the target 3D mesh based on coordinates of each vertex in the target 3D mesh and second precision geometric information.
[0239] It should be noted that the geometric information reconstruction process in the embodiment of the present application is a process of reconstructing a 3D geometric model using information such as patch information, occupancy image, low-precision geometric image and high-precision geometric image. As shown in Fig. 12, the specific process mainly includes the following four steps: step 1201, step 1202, step 1203 and step 1204.
[0240] In step 1201, a 2D patch is obtained. It should be explained that 2D patch acquisition refers to extracting the occupancy information and depth information of the 2D patch from the occupancy image and the geometric image by using the patch information. The patch information includes the position and size of the bounding box of each 2D patch in the occupancy image and the low-precision geometric image, and the occupancy information and low-precision geometric information of the 2D patch can be directly obtained by using the patch information, the occupancy image, and the low-precision geometric image. For high-precision geometric information, the high-precision geometric information in the high-precision raw patch is associated with the vertices of the low-precision geometric image according to the vertex scanning order of the low-precision geometric image, thereby obtaining high-precision geometric information of the 2D patch. For the geometric information of the complement point, the low-precision raw patch and the high-precision raw patch of the complement point can be directly decoded to obtain the low-precision geometric information and high-precision geometric information of the complement point.
[0241] In step 1202, the 3D patch is reconstructed. It should be noted that the reconstruction of a 3D patch refers to reconstructing the vertices of a 2D patch as a low-precision 3D patch using the occupancy information and low-precision geometric information of the 2D patch. The occupancy information of the 2D patch includes the positions of the vertices relative to the coordinate origin in the local coordinate system of the patch projection plane, and the depth information includes the depth values of the vertices in the projection plane normal direction. Therefore, the occupancy information and depth information can be used to reconstruct the 2D patch as a low-precision 3D patch in the local coordinate system.
[0242] In step 1203, the low precision geometric model is reconstructed. It should be explained that the reconstruction of a low-precision geometric model refers to the reconstruction of the entire low-precision 3D geometric model by the reconstructed low-precision 3D patch. The patch information includes the transformation relationship by which the 3D patch is transformed from the local coordinate system to the global coordinate system of the 3D geometric model, and the low-precision 3D geometric model is obtained by transforming all the 3D patches into the global coordinate system by the coordinate transformation relationship. In addition, for the interpolation points, the geometric information in the low-precision raw patch is directly used to obtain the low-precision coordinate value of the interpolation point in the global coordinate system, thereby obtaining a complete low-precision 3D geometric model.
[0243] In step 1204, a high precision geometric model is reconstructed. The reconstruction of a high-precision geometric model refers to the process of reconstructing a high-precision geometric model by using high-precision geometric information based on a low-precision geometric model. In the process of obtaining a 2D patch, the high-precision geometric information and the low-precision geometric information are matched, and the high-precision 3D coordinates of the vertices can be reconstructed based on the high-precision geometric information and the low-precision geometric information of the vertices. Depending on the usage needs, the high-precision 3D coordinates of all vertices can be reconstructed, or the high-precision 3D coordinates of some vertices can be reconstructed. The high-precision 3D coordinates (x r ,y r ,z r The calculation process of is as shown in Equation 54 to Equation 56.
number
number
number
number
number
number
number
number
number
[0244] Optionally, the step of obtaining geometric information corresponding to the target 3D mesh based on the first information further comprises: The method further includes a step in which the decoding end determines geometric information corresponding to the target 3D mesh based on information of the complemented points and coordinates of each vertex in the first precision geometric information.
[0245] Selectively, The information on the complementation point is an index of a vertex in the first precision geometric information corresponding to the interpolated point; Third-precision geometric information of the complemented point, which is three-dimensional coordinate information of the complemented point quantized; and fourth precision geometric information of the interpolated point, which is three-dimensional coordinate information lost in the process of quantizing the interpolated point.
[0246] Optionally, the step of determining connectivity information corresponding to the target 3D mesh based on the decoded information further comprises: When the decoding information includes sorting information of the target vertex, the decoding end sorts the target vertices by determining the target vertices in a first spatial range based on the spatial angles of adjacent triangular patches in the target 3D mesh, the sorting information being the order of the target vertex among the vertices in the first spatial range, and the first spatial range being the spatial range in which the target vertex of the triangle to be decoded in the target 3D mesh is located; The decoding terminal determines a target vertex of the triangle to be decoded from the vertices to be sorted based on the sorting result of the vertices to be sorted and the sorting information of the target vertex; The decoding terminal determines the triangle to be decoded based on the target vertex and a first edge of the triangle to be decoded; updating the edge set according to a second predetermined rule; The decoding end re-determines a first edge based on the updated edge set until each triangle to be decoded in the target 3D mesh is determined; Here, the second predetermined rule includes adding two edges, excluding the first edge, of the triangle to be decoded to the edge set, and removing the first edge from the edge set.
[0247] The vertex information may be an index of the vertex.
[0248] In this embodiment, the vertices to be sorted are sorted according to a predetermined sorting criterion, for example, the sorting criterion may be sorting according to the distance between the vertices and the midpoint of the first edge of the triangle to be encoded, or the sorting criterion may be sorting according to the size of the radius of the circumscribing circle of the triangle formed by the vertices and the first edge. Of course, the sorting criterion may be other criteria, and is not specifically limited here.
[0249] Optionally, the method further comprises: The method further includes a step in which, when the decoding information includes vertex information of the target vertex, the decoding terminal determines a target vertex of the triangle to be decoded based on the vertex information.
[0250] Optionally, the method further comprises: The decoding terminal obtains target vertex information of a triangle to be decoded within a second spatial range based on the decoding information, and the second spatial range is a range other than the first spatial range in the target three-dimensional mesh; The method further includes a step in which the decoding end determines a target vertex of the triangle to be decoded based on the target vertex information.
[0251] Optionally, the step of determining the vertices to be sorted within the first spatial range based on the spatial angles of adjacent triangular patches in the target 3D mesh further comprises: The decoding end obtains remaining vertices by excluding all vertices of a second target triangle from vertices within the first spatial range; the decoding end determining vertices to be sorted in the first spatial range based on the remaining vertices; Here, the second target triangle is a triangle whose angle with an adjacent decoded triangle is smaller than an angle threshold, and one edge of the second target triangle is the same as the first edge of the triangle to be decoded.
[0252] Optionally, the method further comprises: The method further includes a step of the decoding end obtaining information of the angle threshold based on the decoding information.
[0253] Optionally, the method further comprises: The method further includes a step of the decoding end obtaining information of the first spatial range based on the decoding information.
[0254] For example, radius information of the two spheres is obtained based on the decoded information.
[0255] In a specific embodiment of the present application, the decoding end first decodes geometric information, and then decodes the connection relationship based on the geometric information. The process of decoding the connection relationship may specifically include the following (1), (2), and (3):
[0256] (1) Decode the vertices of the initial triangle and store the edges of the initial triangle in an edge set. Extract edge τ from the edge set according to a criterion used by the encoder. If the codeword to be decoded is a vertex index, decode the vertex directly to make it its opposite vertex v. Form a new decoded triangle with the vertex v and edge τ, add the two edges of the triangle, excluding edge τ, to the edge set, and remove edge τ in the set according to a rule, e.g., a queue tip criterion. Extract the next edge according to a rule, and then decode the triangle adjacent to the edge, e.g., extract the edge at the queue tip.
[0257] (2) If the codeword to be decoded is not a vertex index, decode and determine the spatial range of the pair of vertices v. For example, the two concentric spheres of radius {R min ,R max}, traverse all vertices in the range between the concentric spheres, and clean and remove all vertices of the new triangle formed with edge τ that have an angle with the decoded triangle that is less than a certain angle.
[0258] (3) For the remaining vertices in the spatial range where the opposite vertex v is located, sort the vertices according to the same sorting criterion as the encoding end. Decode the order corresponding to the opposite vertex v in the triangle to be decoded, look up the table to obtain the opposite vertex v, and construct the decoded triangle. Add the two edges of the newly decoded triangle, excluding edge τ, to the edge set, and remove edge τ in the set according to a certain rule, for example, a queue tip criterion. The next edge is taken according to a certain rule, and then the triangle adjacent to that edge is decoded, for example, the rule may be to take the edge at the queue tip.
[0259] The decoding process is repeated for the bitstream of each patch until the decoding of the triangles in each patch is complete, and finally the patches are merged into one complete mesh.
[0260] Alternatively, the third bitstream includes a first sub-bitstream and a second sub-bitstream, and the attribute information includes texture coordinate information and a texture map for indicating texture coordinates corresponding to each vertex in the target 3D mesh; The step of determining attribute information corresponding to the target 3D mesh by the third bitstream and the attribute encoding method includes: When the attribute encoding method is a first attribute encoding method, the decoding end determines texture coordinates corresponding to each vertex of the target 3D mesh according to the first sub-bitstream; The decoding end includes a step of obtaining a texture map corresponding to the target 3D mesh by decoding the second sub-bitstream using a video decoder.
[0261] It should be understood that the third bitstream includes the first sub-bitstream and the second sub-bitstream, and the attribute information includes texture coordinate information and a texture map.
[0262] In this embodiment, the third bitstream is decoded to obtain a first sub-bitstream and a second sub-bitstream, and the texture coordinates corresponding to each vertex are determined according to the first sub-bitstream. For a specific technical solution of determining the texture coordinates corresponding to each vertex, please refer to the following embodiment.
[0263] In this embodiment, a texture map corresponding to a target 3D mesh may be obtained by directly encoding the texture map through a video decoder, and the file format of the texture map may be a format such as jpg, png, etc. Here, the video decoder includes, but is not limited to, a HEVC decoder and a VVC decoder.
[0264] Optionally, the step of determining texture coordinates corresponding to each vertex in the target 3D mesh based on the first sub-bitstream further comprises: the decoding end obtaining a prediction residual corresponding to each decoded triangle by entropy decoding the first sub-bitstream; The decoding end selects, for any one of the decoded triangles, a second edge from an edge set corresponding to the target 3D mesh, the edge set being a set of at least one edge of the decoded triangle in the target 3D mesh; determining a prediction triangle based on the second edge and a vertex corresponding to the second edge; The decoding terminal determines, as prediction vertices, vertices corresponding to the second edge in the prediction triangle, excluding two vertices connected to the second edge; The method includes a step in which the decoding end determines an actual vertex corresponding to the decoded triangle based on the predicted vertex and the prediction residual, and the coordinates of the actual vertex in the target 3D mesh are texture coordinates.
[0265] The decoding end obtains a prediction residual corresponding to each decoded triangle by entropy decoding the first sub-bitstream, and obtains an actual vertex corresponding to each triangle by adding the coordinate of the predicted vertex corresponding to each triangle and the corresponding prediction residual.
[0266] The process of determining the predicted vertices corresponding to the triangle is the reverse process of the above-mentioned predicted vertex determination, that is, select a second edge from an edge set corresponding to the target 3D mesh, determine a predicted triangle according to the second edge and the vertices corresponding to the second edge by the parallelogram rule, and determine the vertices corresponding to the second edges in the predicted triangle, excluding the two vertices connected to the second edge, as the predicted vertices, where the above-mentioned edge set is a set of at least one edge of a decoded triangle in the target 3D mesh.
[0267] Optionally, the step of determining attribute information corresponding to the target 3D mesh by the third bitstream and the attribute encoding method further comprises: When the attribute encoding method is a second attribute encoding method, the decoding end determines reconstructed texture coordinates corresponding to each vertex of the target 3D mesh according to the first sub-bitstream; The decoding end includes a step of obtaining a reconstructed texture map corresponding to the target 3D mesh by decoding the second sub-bitstream by a video decoder.
[0268] In this embodiment, when the attribute encoding method is the second attribute encoding method, it indicates that the third bitstream includes a first sub-bitstream and a second sub-bitstream, and as described above, the first sub-bitstream is a bitstream that encodes reconstructed texture coordinate information, and the second sub-bitstream is a bitstream that encodes a reconstructed texture map. In this case, the decoding end determines reconstructed texture coordinates corresponding to each vertex of the target 3D mesh based on the first sub-bitstream, and decodes the second sub-bitstream by a video decoder to obtain a reconstructed texture map corresponding to the target 3D mesh.
[0269] Optionally, the step of determining attribute information corresponding to the target 3D mesh by the third bitstream and the attribute encoding method further comprises: When the attribute encoding method is a third attribute encoding method, the decoding end determines reconstructed texture coordinates corresponding to each vertex in the target 3D mesh according to the third bitstream; The decoding end includes a step of obtaining a reconstructed texture map corresponding to the target 3D mesh by decoding the third bitstream by a video decoder.
[0270] In this embodiment, when the attribute encoding method is the third attribute encoding method, it indicates that the third bitstream includes a second sub-bitstream, and as described above, the second sub-bitstream is a bitstream obtained by encoding a reconstructed texture map. In this case, the decoding end decodes the second sub-bitstream by a video decoder to obtain a reconstructed texture map corresponding to the target 3D mesh.
[0271] In this embodiment, when the attribute encoding method is the third attribute encoding method, the third bitstream includes a second sub-bitstream encoding a reconstructed texture map. In this case, the video decoder decodes the second sub-bitstream to obtain a reconstructed texture map corresponding to the target 3D mesh, and the decoding end decodes to obtain residual values corresponding to the reconstructed texture coordinate values of each vertex, obtains predicted texture coordinate values of each vertex according to the decoded geometric information, and determines target texture coordinate values, i.e., target texture coordinate information, according to the reconstructed texture coordinate values and predicted texture coordinate values.
[0272] The encoding method provided by the embodiment of the present application may be executed by an encoding device. In the embodiment of the present application, the encoding device provided by the embodiment of the present application will be described by taking the encoding method executed by the encoding device as an example.
[0273] As shown in FIG. 13, the encoding device 1300 an encoding module 1301 for obtaining a first bitstream by encoding first information corresponding to a target 3D mesh; a first determination module 1302 for determining a second bitstream based on connectivity information corresponding to the first reconstruction mesh; a second determining module 1303 for determining a third bitstream according to an object information and attribute coding manner; a generating module 1304 for generating a target bitstream based on the first bitstream, the second bitstream and the third bitstream.
[0274] Optionally, the encoding device 1300 further comprises: a simplification module for performing a simplification process on the 3D mesh to be encoded to obtain a target 3D mesh when the encoding mode is a lossy encoding mode; and a determining module for determining, when in a lossless encoding mode, the 3D mesh to be encoded as a target 3D mesh.
[0275] Optionally, the simplification module specifically comprises: It is used to obtain a target 3D mesh by performing a simplification process on the 3D mesh to be encoded based on the quantization parameter.
[0276] Optionally, the simplification module further specifically comprises: When performing vertex merging in the 3D mesh to be encoded, the quantization parameter is used to obtain a target 3D mesh by adjusting the position coordinates of at least some of the vertices in the 3D mesh to be encoded after the vertex merging to a multiple of the quantization parameter.
[0277] Optionally, the encoding module 1301 specifically comprises: obtaining first information by quantizing geometric information of the target 3D mesh; and obtaining a first bitstream by encoding the first information.
[0278] Optionally, the encoding module 1301 further specifically comprises: The quantization parameter is used to obtain first precision geometric information by quantizing each vertex in the target 3D mesh based on the quantization parameter of each component.
[0279] Optionally, the encoding module 1301 further specifically comprises: The quantization parameter is used to obtain second-precision geometric information based on the first-precision geometric information and the quantization parameter of each component.
[0280] Optionally, the encoding module 1301 further specifically comprises: The method is used to determine information of a complementary point based on the geometric information of the target 3D mesh and the first precision geometric information.
[0281] Optionally, the encoding module 1301 further specifically comprises: obtaining second information by processing the first information; and obtaining a first bitstream by encoding the second information.
[0282] Optionally, the encoding module 1301 further specifically comprises: Dividing the first precision geometric information into three-dimensional patches; obtaining a two-dimensional patch by two-dimensional projection of the segmented three-dimensional patch; obtaining two-dimensional image information by packing the two-dimensional patches; obtaining an occupancy image of a first precision and a geometric image of a first precision based on the two-dimensional image information.
[0283] Optionally, the encoding module 1301 further specifically comprises: acquiring patch information based on information obtained during the process of acquiring two-dimensional image information; and obtaining a sub-bitstream of patch information by encoding the patch information.
[0284] Optionally, the encoding module 1301 further specifically comprises: Obtaining an arrangement order of vertices included in the first precision geometric information; and generating a second-precision geometric image by arranging second-precision geometric information corresponding to vertices included in the first-precision geometric information in a two-dimensional image.
[0285] Optionally, the encoding module 1301 further specifically comprises: The first precision geometric image and the second precision geometric image are used to obtain a sub-bitstream of the geometric image by encoding the first precision geometric image and the second precision geometric image.
[0286] Optionally, the encoding module 1301 further specifically comprises: arranging the third precision geometric information of the complemented points as a first raw patch; arranging the fourth precision geometric information of the complemented points as a second raw patch in the same arrangement order as the first raw patch; and obtaining a geometric image of the complementary points by compressing the first raw patch and the second raw patch.
[0287] Optionally, the first determination module 1302 specifically determines: determining vertices to be sorted within a first spatial range based on spatial angles of adjacent triangular patches in the first reconstructed mesh; obtaining sorting information of the target vertex by sorting the vertices to be sorted at the encoding end; obtaining coding information of the triangle to be coded based on coding information corresponding to sorting information of the target vertex; updating the set of edges according to a first predetermined rule; re-determining the triangles to be coded based on the updated edge set until coding information of all the triangles to be coded in the first reconstructed mesh is obtained; and obtaining the second bitstream by encoding the encoding information of all of the triangles to be encoded.
[0288] Optionally, the first determination module 1302 further specifically determines: selecting a first edge from the edge set corresponding to the first reconstructed mesh; determining a triangle to be encoded based on the first edge and a vertex corresponding to the first edge.
[0289] Optionally, the first determination module 1302 further specifically determines: If the triangle to be coded is a triangle other than a predetermined type triangle, the spatial angles of the adjacent triangular patches are used to determine the vertices to be sorted in the first spatial range.
[0290] Optionally, the first determination module 1302 may further specifically: When the triangle to be coded is a triangle of a predetermined type, coding information of the triangle to be coded is obtained based on coding information corresponding to target vertex information of the triangle to be coded.
[0291] Optionally, the first determination module 1302 further specifically determines: obtaining remaining vertices by eliminating all vertices of a first object triangle from the vertices within the first spatial range; determining vertices to be sorted within the first spatial range based on the remaining vertices.
[0292] Optionally, the first determination module 1302 further specifically determines: It is used to obtain the coding information of the triangle to be coded by coding the target vertex information of the triangle to be coded within the second spatial range.
[0293] Optionally, the second determination module 1303 specifically determines: When the attribute encoding method is a first attribute encoding method, determining a third bitstream according to attribute information corresponding to the first reconstructed mesh; and when the attribute encoding method is the second attribute encoding method or the third attribute encoding method, determining a third bitstream based on the target 3D mesh and a target texture map corresponding to the target 3D mesh.
[0294] Optionally, the second determination module 1303 further specifically determines: obtaining a first sub-bitstream by entropy coding the first object coordinate difference value; obtaining a second sub-bitstream by encoding the texture map by a video encoder at the encoding end; and obtaining a third bitstream by synthesizing the first sub-bitstream and the second sub-bitstream at the encoding end.
[0295] Optionally, the second determination module 1303 further specifically determines: selecting a second edge from the edge set corresponding to the first reconstructed mesh; determining a predicted triangle based on the second edge and a vertex corresponding to the second edge; determining, as predicted vertices, vertices corresponding to the second edge in the predicted triangle, excluding two vertices connected to the second edge; determining a coordinate difference value between the predicted vertex and the actual vertex as the first target coordinate difference value.
[0296] Optionally, the second determination module 1303 further specifically determines: When the attribute encoding method is a second attribute encoding method, performing a surface spectrum processing on the target 3D mesh to obtain reconstructed texture coordinate information; rasterizing the object texture map using the object 3D mesh, the object texture map, and the reconstructed texture coordinate information to obtain a reconstructed texture map; obtaining a first sub-bitstream by entropy coding the second object coordinate difference value; encoding the reconstructed texture map by a video encoder to obtain a second sub-bitstream; and obtaining a third bitstream based on the first sub-bitstream and the second sub-bitstream.
[0297] Optionally, the second determination module 1303 further specifically determines: When the attribute encoding method is a third attribute encoding method, performing a surface spectrum processing on the target 3D mesh to obtain reconstructed texture coordinate information; rasterizing the object texture map using the object 3D mesh, the object texture map, and the reconstructed texture coordinate information to obtain a reconstructed texture map; and encoding the reconstructed texture map by a video encoder to obtain a third bitstream.
[0298] In an embodiment of the present application, a first bitstream is obtained by encoding first information corresponding to a target 3D mesh, a second bitstream is determined according to connection information corresponding to the first reconstructed mesh, where the first reconstructed mesh is determined according to the first information and the target 3D mesh, and a third bitstream is determined by target information and an attribute encoding method, where the target information includes attribute information corresponding to the first reconstructed mesh, or includes a target 3D mesh and a target texture map corresponding to the target 3D mesh, and a target bitstream is generated according to the first bitstream, the second bitstream and the third bitstream. In the above technical solution, the third bitstream is obtained by encoding the attribute information corresponding to the first reconstructed mesh by an attribute encoding method, or the third bitstream is obtained using the target 3D mesh and the target texture map by an attribute encoding method, so that the attribute information bitstream is obtained by the above method after lossy compression of the geometric information of the target 3D mesh, and encoding failure can be avoided.
[0299] The encoding device provided in the embodiment of the present application can realize each process realized in the embodiment of the encoding method in Fig. 1, and achieve the same technical effects. In order to avoid duplication, detailed description will be omitted here.
[0300] The decoding method provided by the embodiment of the present application may be executed by a decoding device. In the embodiment of the present application, the decoding device provided by the embodiment of the present application will be described by taking the decoding method executed by the decoding device as an example.
[0301] As shown in FIG. 14, a decoding device 1400 includes: a decoding module 1401 for obtaining first information, decoding information, an attribute coding method, and a third bitstream by decoding the obtained target bitstream; an obtaining module 1402 for obtaining geometric information corresponding to a target 3D mesh based on the first information; a third determination module 1403 for determining connectivity information corresponding to the target 3D mesh based on the decoded information; a fourth determining module 1404 for determining attribute information corresponding to the target 3D mesh according to the third bitstream and the attribute encoding method.
[0302] Optionally, the decoding module 1401 specifically comprises: obtaining a target sub-bitstream based on the obtained target bitstream; obtaining second information based on the target sub-bitstream; and acquiring the first information based on the second information.
[0303] Optionally, the decoding module 1401 further specifically comprises: obtaining two-dimensional image information based on the occupancy image of a first precision and the geometric image of a first precision; obtaining a two-dimensional patch based on the two-dimensional image information; obtaining a 3D patch by 3D backprojecting the 2D patch according to patch information corresponding to the patch information sub-bitstream; and obtaining first precision geometric information based on the 3D patch.
[0304] Optionally, the decoding module 1401 further specifically comprises: It is used to obtain second precision geometric information based on the second precision geometric image.
[0305] Optionally, the decoding module 1401 further specifically comprises: determining, based on a geometric image of the complemented point, a first raw patch corresponding to third-precision geometric information of the complemented point, and a second raw patch corresponding to fourth-precision geometric information of the complemented point; determining information of a complementary point based on the first raw patch and the second raw patch.
[0306] Optionally, the acquisition module 1402 specifically includes: determining coordinates of each vertex in the first-precision geometric information based on the first-precision geometric information and a quantization parameter of each component; determining geometric information corresponding to the target 3D mesh based on the coordinates of each vertex in the target 3D mesh and second precision geometric information.
[0307] Optionally, the acquisition module 1402 further specifically includes: The geometric information corresponding to the target 3D mesh is determined based on the information of the complementary points and the coordinates of each vertex in the first precision geometric information.
[0308] Optionally, the third determination module 1403 specifically determines: When the decoded information includes sorting information of the target vertices, sorting the target vertices by determining the target vertices in a first spatial range according to spatial angles of adjacent triangular patches in the target 3D mesh; determining a target vertex of the triangle to be decoded from the vertices to be sorted based on the sorting result of the vertices to be sorted and the sorting information of the target vertex; determining the triangle to be decoded based on the target vertex and a first edge of the triangle to be decoded; updating the set of edges according to a second predetermined rule; re-determining the first edges based on the updated edge set until each triangle to be decoded in the target 3D mesh has been determined.
[0309] Optionally, the third determination module 1403 may further specifically: When the decoding information includes vertex information of the target vertex, the decoding information is used to determine the target vertex of the triangle to be decoded based on the vertex information.
[0310] Optionally, the third determination module 1403 may further specifically: obtaining target vertex information of a triangle to be decoded within a second spatial range according to the decoding information; and determining a target vertex of the triangle to be decoded based on the target vertex information.
[0311] Optionally, the third determination module 1403 may further specifically: obtaining remaining vertices by excluding all vertices of a second object triangle from the vertices within the first spatial range; determining vertices to be sorted within the first spatial range based on the remaining vertices.
[0312] Optionally, the third determination module 1403 may further specifically: The decoded information is used to obtain the angle threshold information.
[0313] Optionally, the third determination module 1403 may further specifically: Used to obtain information of the first spatial range based on the decoded information.
[0314] Optionally, the fourth determination module 1404 specifically determines: if the attribute encoding method is a first attribute encoding method, determining texture coordinates corresponding to each vertex of the target 3D mesh based on the first sub-bitstream; and obtaining a texture map corresponding to the target 3D mesh by decoding the second sub-bitstream with a video decoder.
[0315] Optionally, the fourth determination module 1404 further specifically determines obtaining a prediction residual corresponding to each decoded triangle by entropy decoding the first sub-bitstream; selecting a second edge from the edge set corresponding to the target 3D mesh for any one of the decoded triangles; determining a predicted triangle based on the second edge and a vertex corresponding to the second edge; determining, as predicted vertices, vertices corresponding to the second edge in the predicted triangle, excluding two vertices connected to the second edge; determining actual vertices corresponding to the decoded triangles based on the predicted vertices and the prediction residuals.
[0316] Optionally, the fourth determination module 1404 further specifically determines determining, when the attribute encoding method is a second attribute encoding method, a reconstructed texture coordinate corresponding to each vertex of the target 3D mesh based on the first sub-bitstream; and obtaining a reconstructed texture map corresponding to the target 3D mesh by decoding the second sub-bitstream with a video decoder.
[0317] Optionally, the fourth determination module 1404 further specifically determines When the attribute encoding method is a third attribute encoding method, determining reconstructed texture coordinates corresponding to each vertex of the target 3D mesh according to the third bitstream at the decoding end; and obtaining a reconstructed texture map corresponding to the target 3D mesh by decoding the third bitstream by a video decoder at the decoding end.
[0318] In an embodiment of the present application, the acquired target bitstream is decoded to obtain first information, an attribute encoding method, decoding information, and a third bitstream, and geometric information corresponding to the target 3D mesh is obtained according to the first information, connectivity information corresponding to the target 3D mesh is determined according to the decoding information, and attribute information corresponding to the target 3D mesh is determined through the third bitstream and the attribute encoding method. In the above technical solution, the decoding method for the third bitstream is determined through the attribute encoding method, thereby obtaining accurate attribute information and avoiding decoding failure.
[0319] The encoding device and the decoding device in the embodiment of the present application may be electronic devices, for example electronic devices having an operating system, or may be components in electronic devices, for example integrated circuits or chips. The electronic devices may be terminals or other devices other than terminals. Exemplarily, the terminals may include, but are not limited to, the types of terminals 11 listed above, and the other devices may be servers, network attached storage (Network Attached Storage, NAS), etc., and are not specifically limited in the embodiment of the present application.
[0320] The decoding device provided by the embodiment of the present application can implement each process implemented by the method embodiment of Figure 11, and achieve the same technical effect. In order to avoid repetition, detailed description will be omitted here.
[0321] Optionally, as shown in Fig. 15, an embodiment of the present application further provides a communication device 1500. The communication device 1500 includes a processor 1501 and a memory 1502, and the memory 1502 stores a program or command executable by the processor 1501. For example, when the communication device 1500 is a terminal, when the program or command is executed by the processor 1501, each step of the embodiment of the encoding method described above can be realized and the same technical effect can be achieved, or each step of the embodiment of the decoding method described above can be realized and the same technical effect can be achieved.
[0322] An embodiment of the present application further provides a terminal. The terminal includes a processor and a communication interface, the processor 1501: obtaining a first bitstream by encoding first information corresponding to a target 3D mesh; determining a second bit stream based on connectivity information corresponding to the first reconstructed mesh; determining a third bitstream according to an object information and attribute coding method; and generating a target bitstream based on the first bitstream, the second bitstream and the third bitstream.
[0323] Or, the processor 1501 Decoding the obtained target bitstream to obtain first information, decoding information, an attribute coding method, and a third bitstream; obtaining geometric information corresponding to a target 3D mesh based on the first information; determining connectivity information corresponding to the target 3D mesh based on the decoded information; determining attribute information corresponding to the target 3D mesh according to the third bitstream and the attribute encoding method.
[0324] The terminal embodiment corresponds to the above-mentioned terminal side method embodiment, and each implementation process and embodiment of the above-mentioned method embodiment can be applied to the terminal embodiment, and the same technical effects can be achieved. Specifically, Figure 16 is a hardware structure schematic diagram of a terminal that realizes the embodiment of this application.
[0325] The terminal 1600 includes components such as, but not limited to, a radio frequency unit 1601, a network module 1602, an audio output unit 1603, an input unit 1604, a sensor 1605, a display unit 1606, a user input unit 1607, an interface unit 1608, a memory 1609, and a processor 1610.
[0326] Those skilled in the art can understand that the terminal 1600 may further include a power source (e.g., a battery) for powering each component, and the power source may be logically connected to the processor 1610 through a power management system, and the power management system may further realize functions such as charge / discharge management and power consumption management. The structure of the terminal shown in FIG. 16 is not intended to limit the terminal, and the terminal may include more or fewer components than those shown, or a combination of some components, or a different component arrangement, and detailed descriptions thereof will be omitted here.
[0327] It should be understood that in the embodiment of the present application, the input unit 1604 may include a graphics processing unit (GPU) 16041 for processing image data of still or video captured by an image capture device (e.g., a camera) in a video capture mode or an image capture mode, and a microphone 16042. The display unit 1606 may include a display panel 16061, which may be arranged in the form of a liquid crystal display, an organic light emitting diode, etc. The user input unit 1607 includes at least one of a touch panel 16071 and other input devices 16072. The touch panel 16071 is also called a touch screen. The touch panel 16071 may include two parts: a touch detection device and a touch controller. The other input devices 16072 may include, but are not limited to, a physical keyboard, a function button (e.g., a volume control button, a switch button, etc.), a trackball, a mouse, and an operation lever, and detailed description thereof will be omitted here.
[0328] In the embodiment of the present application, the high frequency unit 1601 may receive downlink data from the network side device and then transmit the data to the processor 1610 for processing, and the high frequency unit 1601 may transmit uplink data to the network side device. Typically, the high frequency unit 1601 includes, but is not limited to, an antenna, an amplifier, a receiver-transmitter, a coupler, a low-noise amplifier, a duplexer, etc.
[0329] The memory 1609 can be used to store software programs or commands and various data. The memory 1609 may mainly include a first storage area for storing programs or commands and a second storage area for storing data, in which the first storage area can store an operating system, application programs or commands required for at least one function (e.g., audio playback function, image playback function, etc.), etc. The memory 1609 may also include a volatile memory or a non-volatile memory, or may include both a volatile memory and a non-volatile memory. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be Random Access Memory (RAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), Synch link Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM). Memory 1609 in embodiments of the present application includes, but is not limited to, these and any other suitable types of memory.
[0330] The processor 1610 may include one or more processing units, and optionally, an application processor that mainly processes operations related to an operating system, a user interface, and application programs, etc., and a modem processor that mainly processes wireless communication signals, such as a baseband processor, are integrated into the processor 1610. It can be understood that the modem processor does not have to be integrated into the processor 1610.
[0331] Here, the processor 1610: obtaining a first bitstream by encoding first information corresponding to a target 3D mesh; determining a second bit stream based on connectivity information corresponding to the first reconstructed mesh; determining a third bitstream according to an object information and attribute coding method; and generating a target bitstream based on the first bitstream, the second bitstream and the third bitstream.
[0332] Or, the processor 1601 Decoding the obtained target bitstream to obtain first information, decoding information, an attribute coding method, and a third bitstream; obtaining geometric information corresponding to a target 3D mesh based on the first information; determining connectivity information corresponding to the target 3D mesh based on the decoded information; determining attribute information corresponding to the target 3D mesh according to the third bitstream and the attribute encoding method.
[0333] The embodiment of the present application further provides a readable storage medium, which stores a program or command, and when the program or command is executed by a processor, the processes of the above encoding method embodiment are realized, or the processes of the above decoding method embodiment are realized, and the same technical effect can be achieved. In order to avoid repetition, detailed description is omitted here.
[0334] Here, the processor is the processor in the terminal according to the above embodiment. The readable storage medium includes a computer readable storage medium such as a computer read only memory ROM, a random access memory RAM, a magnetic disk, or an optical disk.
[0335] The embodiment of the present application further provides a chip, the chip includes a processor and a communication interface, the communication interface and the processor are coupled, the processor is used to execute a program or command, and realize each process of the embodiment of the encoding method or realize each process of the embodiment of the decoding method, and can achieve the same technical effect. In order to avoid repetition, detailed description is omitted here.
[0336] It should be understood that the chips referred to in the embodiments of this application may also be referred to as system level chips, system chips, chip systems, or systems on chips, and the like.
[0337] The embodiments of the present application further provide a computer program / program product, which is stored in a storage medium and can be executed by at least one processor to realize each process of the above encoding method embodiment or each process of the above decoding method embodiment, and can achieve similar technical effects. To avoid duplication, detailed description is omitted here.
[0338] It should be explained that in this specification, the terms "comprise", "consist of" or any other variation are intended to include a non-exclusive inclusion, whereby a process, method, article, or apparatus that includes a set of elements includes not only those elements, but also other elements not expressly stated or inherent to such process, method, article, or apparatus. Unless otherwise specified, an element limited by the phrase "comprises a" does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes the element. It should also be pointed out that the scope of the method and apparatus in the embodiments of this application is not limited to performing functions in the order shown or discussed, but may include performing functions substantially simultaneously or in the reverse order depending on such functions, for example, the described method may be performed in a different order than described, and various steps may be added, omitted, or combined. Also, features described with reference to any example may be combined in other examples.
[0339] From the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be realized in the form of a combination of software and a necessary common hardware platform, and of course, they can also be realized by hardware, but in many cases the former is a more preferred embodiment. Based on this view, the technical solutions of the present application can be essentially or 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 commands that cause a terminal (which may be a mobile phone, a computer, a server, an air conditioner, or a network side device, etc.) to execute the methods described in the embodiments of the present application.
[0340] Although the examples of the present application have been described above with reference to the drawings, the present application is not limited to the above-mentioned specific embodiments, which are merely illustrative and not limiting. Based on the suggestions of the present application, many forms that a person skilled in the art can make without departing from the spirit of the present application and the scope of protection of the claims are all within the scope of protection of the present application. [Explanation of symbols]
[0341] 1400 Decoding device 1401 Decryption Module 1402 Acquisition Module 1403 Third Decision Module 1404 4th Decision Module 1500 Communication Equipment 1501 Processor 1502 Memory 1600 terminals 1601 High Frequency Unit 1602 Network Module 1603 Audio Output Unit 1604 Input Unit 1605 Sensor 1606 Display Unit 1607 User Input Unit 1608 Interface Unit 1609 Memory 1610 Processor
Claims
1. A step of obtaining a first bitstream by encoding first information corresponding to a target 3D mesh at an encoding end, the first information being determined based on geometric information corresponding to the target 3D mesh; The encoding end determines a second bit stream based on connection information corresponding to a first reconstructed mesh, and the first reconstructed mesh is determined based on the first information and the target three-dimensional mesh; The encoding end determines a third bitstream through an object information and attribute encoding method, in which the object information includes attribute information corresponding to the first reconstructed mesh, or includes the object 3D mesh and an object texture map corresponding to the object 3D mesh; the encoding end generating a target bitstream based on the first bitstream, the second bitstream and the third bitstream.
2. prior to said step of encoding first information corresponding to the three-dimensional mesh of interest, obtaining a target 3D mesh by performing a simplification process on the 3D mesh to be encoded when the encoding mode is a lossy encoding mode; The method of claim 1 , further comprising: if in a lossless encoding mode, determining the 3D mesh to be encoded as a target 3D mesh.
3. The step of obtaining a target 3D mesh by simplifying the 3D mesh to be encoded includes: The method according to claim 2 , further comprising the step of: obtaining a target three-dimensional mesh by performing a simplification process on the three-dimensional mesh to be encoded based on a quantization parameter at the encoding end.
4. The step of obtaining a target 3D mesh by simplifying the target 3D mesh based on a quantization parameter includes:
4. The method according to claim 3, further comprising a step of: when the encoding end performs vertex merging in the three-dimensional mesh to be encoded, adjusting position coordinates of at least some of the vertices in the three-dimensional mesh to be encoded after the vertex merging to a multiple of a quantization parameter to obtain a target three-dimensional mesh.
5. The step of obtaining a first bitstream by encoding first information corresponding to a target 3D mesh comprises: The encoding end obtains first information including at least one of first precision geometric information, second precision geometric information, and complementary point information by quantizing geometric information of the target 3D mesh; The encoding end encodes the first information to obtain a first bitstream; 2. The method according to claim 1, wherein the first precision geometric information is geometric information of the target 3D mesh quantized, the second precision geometric information is geometric information lost during the quantization process of the target 3D mesh, and the information of the complemented points is information of points that require additional processing generated during the quantization process.
6. The step of obtaining first information by quantizing geometric information of the object 3D mesh comprises:
6. The method of claim 5, wherein the encoding stage includes obtaining first precision geometric information by quantizing each vertex in the target 3D mesh based on a quantization parameter for each component.
7. The step of obtaining first information by quantizing geometric information of the object 3D mesh comprises: The method of claim 5 , further comprising: obtaining second-precision geometric information based on the first-precision geometric information and a quantization parameter of each component at the encoding end.
8. The step of obtaining first information by quantizing geometric information of the object 3D mesh comprises: The method of claim 5 , wherein the encoding stage includes determining complementary point information based on geometric information of the target 3D mesh and the first precision geometric information.
9. The step of obtaining a first bitstream by encoding the first information comprises: The encoding end processes the first information to obtain second information including at least one of an occupancy image and a geometric image; and obtaining a first bitstream by encoding the second information.
10. When the first information includes first precision geometric information, the step of obtaining second information by processing the first information includes: The encoding terminal performs three-dimensional patch division on the first precision geometric information; The encoding end obtains a two-dimensional patch by two-dimensional projection of the divided three-dimensional patch; The encoding end obtains two-dimensional image information by packing the two-dimensional patches; The method of claim 9 , further comprising: the encoding end obtaining an occupancy image of a first precision and a geometric image of a first precision based on the two-dimensional image information.
11. After the step of obtaining two-dimensional image information by packing the two-dimensional patches, The encoding terminal acquires patch information based on information during the acquisition of two-dimensional image information; The method of claim 10 , further comprising: the encoding end obtaining a sub-bitstream of patch information by encoding the patch information.
12. When the first information includes second-precision geometric information, the step of obtaining second information by processing the first information includes: The encoding terminal acquires an arrangement order of vertices included in the first precision geometric information; 10. The method of claim 9, further comprising: generating a second precision geometric image by arranging second precision geometric information corresponding to vertices included in the first precision geometric information in a two-dimensional image.
13. The step of encoding the second information further comprises: The method of claim 9 , wherein the encoding end includes obtaining sub-bitstreams of a geometric image by encoding a first precision geometric image and a second precision geometric image.
14. When the first information includes information of the complement point, the step of acquiring second information by processing the first information includes: The encoding end arranges the third precision geometric information of the complemented points as a first raw patch; The encoding end arranges the fourth precision geometric information of the complemented points as second raw patches in the same arrangement order as the first raw patches; The method of claim 9 , wherein the encoding step includes compressing the first raw patch and the second raw patch to obtain a geometric image of a complementary point.
15. The step of determining a second bit stream based on connectivity information corresponding to the first reconstructed mesh includes: The encoding end determines vertices to be sorted within a first spatial range based on the spatial angles of adjacent triangular patches in a first reconstructed mesh, the first spatial range being a spatial range in which a target vertex of a triangle to be encoded is located in the first reconstructed mesh, and the vertices to be sorted include the target vertex; The encoding end obtains sorting information of the target vertex by sorting the vertices to be sorted; The encoding end obtains encoding information of the triangle to be encoded according to encoding information corresponding to sorting information of the target vertex; updating the edge set according to a first predetermined rule; the encoding end re-determines the triangles to be encoded based on the updated edge set until encoding information of all the triangles to be encoded in the first reconstructed mesh is obtained; the encoding end obtains the second bit stream by encoding the encoding information of all the triangles to be encoded; 2. The method of claim 1, wherein the first predetermined rule includes adding two edges, excluding a first edge, of the triangle to be encoded to the edge set and removing the first edge from the edge set.
16. Prior to the step of determining vertices to be sorted within a first spatial range based on spatial angles of adjacent triangular patches in the first reconstructed mesh, The coding edge selects a first edge from a set of edges corresponding to a first reconstructed mesh, the set of edges being a set of at least one edge of an encoded triangle in the first reconstructed mesh; 16. The method of claim 15, further comprising: a step of determining a triangle to be coded based on the first edge and the vertices corresponding to the first edge, the target vertices of the triangle to be coded being the vertices corresponding to the first edge excluding two vertices connected to the first edge.
17. The step of determining vertices to be sorted within a first spatial range based on spatial angles of adjacent triangular patches in the first reconstructed mesh includes:
17. The method of claim 16, wherein the encoding step includes determining vertices to sort within a first spatial range based on spatial angles of the adjacent triangular patches when the triangle to be encoded is a triangle other than a predetermined type of triangle.
18. The method of claim 16, further comprising: when the triangle to be coded is a predetermined type of triangle, the encoding end obtains coding information of the triangle to be coded based on coding information corresponding to target vertex information of the triangle to be coded.
19. The step of determining vertices to be sorted within a first spatial range based on spatial angles of adjacent triangular patches in the first reconstructed mesh includes: The encoding end obtains remaining vertices by excluding all vertices of a first target triangle from vertices within the first spatial range; the encoding end determining vertices to be sorted in the first spatial range based on the remaining vertices; 16. The method of claim 15, wherein the first target triangle is a triangle having an angle with an adjacent already-coded triangle that is less than an angle threshold, and the first target triangle has one edge that is the same as the first edge of the triangle to be coded.
20. The method of claim 15, further comprising a step in which the encoding end obtains encoding information of the triangle to be encoded by encoding target vertex information of the triangle to be encoded within a second spatial range, the second spatial range being a range other than the first spatial range within the first reconstructed mesh.
21. The encoding end determines a third bitstream according to an object information and attribute encoding method, When the attribute coding method is a first attribute coding method indicating coding of attribute information corresponding to the first reconstructed mesh, the encoding end determines a third bitstream based on the attribute information corresponding to the first reconstructed mesh; 2. The method of claim 1, further comprising: when the attribute encoding method is a second attribute encoding method indicating encoding for reconstructed texture coordinate information and a reconstructed texture map, or a third attribute encoding method indicating encoding for a reconstructed texture map, the encoding end determining a third bitstream based on the target 3D mesh and a target texture map corresponding to the target 3D mesh, wherein the reconstructed texture coordinate information and the reconstructed texture map are determined based on the target 3D mesh and the target texture map.
22. The attribute information includes texture coordinate information and a texture map for indicating texture coordinates corresponding to each vertex in the target three-dimensional mesh, and the step of determining a third bitstream based on the attribute information corresponding to the first reconstructed mesh includes: a step of obtaining a first sub-bitstream by entropy coding a first object coordinate difference value at the encoding end, the first object coordinate difference value being obtained based on the texture coordinate information; the encoding end obtaining a second sub-bitstream by encoding the texture map by a video encoder; The method of claim 21 , further comprising: the encoding end obtaining a third bitstream based on the first sub-bitstream and the second sub-bitstream.
23. before the step of obtaining a first sub-bitstream by entropy coding the first object coordinate difference values, The encoding edge selects a second edge from a set of edges corresponding to a first reconstructed mesh, the set of edges being a set of at least one edge of an encoded triangle indicated by the texture coordinate information; determining a prediction triangle based on the second edge and a vertex corresponding to the second edge; The encoding end determines, as prediction vertices, vertices corresponding to the second edge in the prediction triangle, excluding two vertices connected to the second edge; 23. The method of claim 22, further comprising: a step in which the encoding terminal determines a coordinate difference value between the predicted vertex and an actual vertex as the target coordinate difference value, the actual vertex being a vertex corresponding to the second edge in the triangle to be encoded, excluding two vertices connected to the second edge.
24. The step of determining a third bitstream based on the target 3D mesh and a target texture map corresponding to the target 3D mesh by the encoding end includes: When the attribute encoding method is a second attribute encoding method, the encoding end performs a surface spectrum processing on the target 3D mesh to obtain reconstructed texture coordinate information; the encoding end rasterizing the object texture map using the object 3D mesh, the object texture map, and the reconstructed texture coordinate information to obtain a reconstructed texture map; a step of obtaining a first sub-bitstream by entropy coding the second object coordinate difference value at the encoding end, the second object coordinate difference value being obtained based on the reconstructed texture coordinate information; the encoding end obtaining a second sub-bitstream by encoding the reconstructed texture map by a video encoder; The method of claim 21 , further comprising: the encoding end obtaining a third bitstream based on the first sub-bitstream and the second sub-bitstream.
25. The step of determining a third bitstream based on the target 3D mesh and a target texture map corresponding to the target 3D mesh by the encoding end includes: When the attribute encoding method is a third attribute encoding method, the encoding end performs a surface spectrum processing on the target 3D mesh to obtain reconstructed texture coordinate information; the encoding end rasterizing the object texture map using the object 3D mesh, the object texture map, and the reconstructed texture coordinate information to obtain a reconstructed texture map; 22. The method of claim 21, wherein the encoding step includes: obtaining a third bitstream by encoding the reconstructed texture map by a video encoder.
26. A decoding end decodes the obtained target bitstream to obtain first information, decoding information, an attribute coding method, and a third bitstream; The decoding end obtains geometric information corresponding to a target 3D mesh based on the first information; determining, by the decoding end, connectivity information corresponding to the target 3D mesh based on the decoding information; and determining, at the decoding end, attribute information corresponding to the target 3D mesh according to the third bitstream and the attribute encoding method.
27. the first information includes at least one of first-precision geometric information, second-precision geometric information, and information on complementary points, the first-precision geometric information being geometric information obtained by quantizing the target 3D mesh, the second-precision geometric information being geometric information lost during a quantization process of the target 3D mesh, and the information on complementary points being information on points that require additional processing and that are generated during the quantization process; The step of obtaining first information by decoding the obtained target bitstream includes: The decoding end obtains an object sub-bitstream including a patch information sub-bitstream, an occupancy image sub-bitstream, and a geometric image sub-bitstream according to the obtained object bitstream; The decoding end obtains second information including at least one of an occupancy image and a geometric image based on the target sub-bitstream; The method of claim 26, further comprising: the decoding end obtaining the first information based on the second information.
28. When the first information includes first-precision geometric information, the step of acquiring the first information based on the second information includes: The decoding terminal obtains two-dimensional image information based on the first precision occupancy image and the first precision geometric image; The decoding terminal obtains a two-dimensional patch based on the two-dimensional image information; The decoding end obtains a three-dimensional patch by three-dimensional backprojecting the two-dimensional patch according to patch information corresponding to the patch information sub-bitstream; The method of claim 27, further comprising: the decoding end obtaining first precision geometric information based on the 3D patch.
29. When the first information includes second-precision geometric information, the step of acquiring the first information based on the second information includes:
28. The method of claim 27, further comprising the step of: the decoding end obtaining second precision geometric information based on a second precision geometric image.
30. When the first information includes information on the complement point, the step of acquiring the first information based on the second information includes: The decoding end determines, based on a geometric image of the complement point, a first raw patch corresponding to a third precision geometric information of the complement point, and a second raw patch corresponding to a fourth precision geometric information of the complement point; The method of claim 27, further comprising: the decoding end determining information of a complementary point based on the first raw patch and the second raw patch.
31. The step of obtaining geometric information corresponding to a target 3D mesh based on the first information includes: The decoding terminal determines coordinates of each vertex in the first-precision geometric information based on the first-precision geometric information and a quantization parameter of each component; The method of claim 26, further comprising: determining, at the decoding end, geometric information corresponding to the target 3D mesh based on coordinates of each vertex in the target 3D mesh and second precision geometric information.
32. The step of obtaining geometric information corresponding to a target 3D mesh based on the first information includes: The method of claim 31 , further comprising: determining geometric information corresponding to the target 3D mesh based on complementary point information and coordinates of each vertex in the first precision geometric information at the decoding end.
33. determining connectivity information corresponding to the target 3D mesh based on the decoded information, When the decoding information includes sorting information of the target vertex, the decoding end sorts the target vertices by determining the target vertices in a first spatial range based on the spatial angles of adjacent triangular patches in the target 3D mesh, the sorting information being the order of the target vertex among the vertices in the first spatial range, and the first spatial range being the spatial range in which the target vertex of the triangle to be decoded in the target 3D mesh is located; The decoding terminal determines a target vertex of the triangle to be decoded from the vertices to be sorted based on the sorting result of the vertices to be sorted and the sorting information of the target vertex; The decoding terminal determines the triangle to be decoded based on the target vertex and a first edge of the triangle to be decoded; updating the edge set according to a second predetermined rule; The decoding end re-determines a first edge based on the updated edge set until each triangle to be decoded in the target 3D mesh is determined; 27. The method of claim 26, wherein the second predetermined rule includes adding two edges, excluding the first edge, of the triangle to be decoded to the edge set and removing the first edge from the edge set.
34. 34. The method of claim 33, further comprising: when the decoding information includes vertex information of the target vertex, the decoding terminal determines a target vertex of the triangle to be decoded based on the vertex information.
35. a step of the decoding end obtaining target vertex information of a triangle to be decoded within a second spatial range based on the decoding information, the second spatial range being a range other than the first spatial range in the target three-dimensional mesh; The method of claim 33, further comprising: the decoding end determining, based on the target vertex information, a target vertex of the triangle to be decoded.
36. The step of determining vertices to be sorted within a first spatial range based on spatial angles of adjacent triangular patches in a target 3D mesh includes: The decoding end obtains remaining vertices by excluding all vertices of a second target triangle from vertices within the first spatial range; the decoding end determining vertices to be sorted within the first spatial range based on the remaining vertices; 34. The method of claim 33, wherein the second target triangle is a triangle having an angle with an adjacent decoded triangle that is less than an angle threshold, and the second target triangle has one edge that is the same as a first edge of the triangle to be decoded.
37. The method of claim 36, further comprising the step of the decoding end obtaining the angle threshold information based on the decoding information.
38. The method of claim 33, further comprising the step of: the decoding end obtaining information of the first spatial range based on the decoding information.
39. the third bitstream includes a first sub-bitstream and a second sub-bitstream, and the attribute information includes texture coordinate information and a texture map for indicating texture coordinates corresponding to each vertex in the target 3D mesh; determining attribute information corresponding to the target 3D mesh by the third bitstream and the attribute encoding method, When the attribute encoding method is a first attribute encoding method, the decoding end determines texture coordinates corresponding to each vertex of the target 3D mesh based on the first sub-bitstream; 27. The method of claim 26, further comprising: the decoding end obtaining a texture map corresponding to the target 3D mesh by decoding the second sub-bitstream with a video decoder.
40. determining texture coordinates corresponding to each vertex in the target 3D mesh based on the first sub-bitstream, The decoding end obtains a prediction residual corresponding to each decoded triangle by entropy decoding the first sub-bitstream; The decoding end selects, for any one of the decoded triangles, a second edge from an edge set corresponding to a target 3D mesh, the edge set being a set of at least one edge of a decoded triangle in the target 3D mesh; determining a prediction triangle based on the second edge and a vertex corresponding to the second edge; The decoding terminal determines, as prediction vertices, vertices corresponding to the second edge in the prediction triangle, excluding two vertices connected to the second edge; 40. The method of claim 39, further comprising: a step in which the decoding end determines an actual vertex corresponding to the decoded triangle based on the predicted vertex and the prediction residual, the coordinates of the actual vertex in the target 3D mesh being texture coordinates.
41. the third bitstream includes a first sub-bitstream and a second sub-bitstream, and the attribute information includes reconstructed texture coordinate information and a reconstructed texture map for indicating reconstructed texture coordinates corresponding to each vertex in the target 3D mesh; determining attribute information corresponding to the target 3D mesh by the third bitstream and the attribute encoding method, When the attribute encoding method is a second attribute encoding method, the decoding end determines reconstructed texture coordinates corresponding to each vertex in the target 3D mesh based on the first sub-bitstream; 27. The method of claim 26, further comprising: the decoding end obtaining a reconstructed texture map corresponding to the target 3D mesh by decoding the second sub-bitstream with a video decoder.
42. The attribute information includes reconstructed texture coordinate information and a reconstructed texture map; determining attribute information corresponding to the target 3D mesh by the third bitstream and the attribute encoding method, When the attribute encoding method is a third attribute encoding method, the decoding end determines reconstructed texture coordinates corresponding to each vertex in the target 3D mesh according to the third bitstream; 27. The method of claim 26, further comprising: the decoding end obtaining a reconstructed texture map corresponding to the target 3D mesh by decoding the third bitstream with a video decoder.
43. an encoding module for obtaining a first bitstream by encoding first information corresponding to a target 3D mesh, the first information being determined based on geometric information corresponding to the target 3D mesh; a first determination module for determining a second bit stream based on connectivity information corresponding to a first reconstructed mesh, the first reconstructed mesh being determined based on the first information and the target three-dimensional mesh; A second determination module for determining a third bitstream according to an object information and attribute coding method, wherein the object information includes attribute information corresponding to the first reconstructed mesh, or includes the object 3D mesh and an object texture map corresponding to the object 3D mesh; a generating module for generating a target bitstream based on the first bitstream, the second bitstream and the third bitstream.
44. a decoding module for decoding the obtained target bitstream to obtain first information, decoding information, an attribute coding method, and a third bitstream; an acquisition module for acquiring geometric information corresponding to a target 3D mesh based on the first information; a third determination module for determining connectivity information corresponding to the target 3D mesh based on the decoded information; a fourth determining module for determining attribute information corresponding to the target 3D mesh according to the third bitstream and the attribute encoding method.
45. A terminal comprising a processor and a memory, the memory storing a program or command executable by the processor, the program or command being executed by the processor to realize steps of the encoding method according to any one of claims 1 to 25 or to realize steps of the decoding method according to any one of claims 26 to 42.
46. A readable storage medium having stored thereon a program or command which, when executed by a processor, causes the steps of the encoding method of any one of claims 1 to 25 to be realized, or the steps of the decoding method of any one of claims 26 to 42 to be realized.
Citation Information
Patent Citations
Mesh Compression Using Estimated Texture Coordinates
JP2024516343A
Method and apparatus for encoding / decoding 3D meshes - Patents.com
JP2025505366A
Three-Dimensional Mesh Compression Using a Video Encoder
US20210090301A1
Mesh compression via point cloud representation
WO2021116838A1
A method, an apparatus and a computer program product for volumetric video encoding and decoding
WO2021136878A1