WO2025002018A1 - 编码方法、解码方法、装置及设备 - Google Patents

编码方法、解码方法、装置及设备 Download PDF

Info

Publication number
WO2025002018A1
WO2025002018A1 PCT/CN2024/100834 CN2024100834W WO2025002018A1 WO 2025002018 A1 WO2025002018 A1 WO 2025002018A1 CN 2024100834 W CN2024100834 W CN 2024100834W WO 2025002018 A1 WO2025002018 A1 WO 2025002018A1
Authority
WO
WIPO (PCT)
Prior art keywords
manifold
information
repeated
vertices
mesh
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2024/100834
Other languages
English (en)
French (fr)
Inventor
邹文杰
张伟
杨付正
吕卓逸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to EP24830663.1A priority Critical patent/EP4738259A1/en
Priority to KR1020257041341A priority patent/KR20260011162A/ko
Publication of WO2025002018A1 publication Critical patent/WO2025002018A1/zh
Priority to US19/411,830 priority patent/US20260094304A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding

Definitions

  • the present application belongs to the field of coding and decoding technology, and specifically relates to a coding method, a decoding method, a device and equipment.
  • the embodiments of the present application provide an encoding method, a decoding method, an apparatus and a device, which can solve the problem of how to efficiently achieve lossless encoding of three-dimensional meshes.
  • a coding method comprising:
  • the encoder splits the non-manifold structure in the original grid to obtain a manifold grid
  • the encoding end adds non-manifold identification information to the repeated vertices in the manifold mesh, and determines index information of a first repeated vertex among the repeated vertices, wherein the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split;
  • the encoding end encodes the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream, and the first indication information is used to indicate whether there is a non-manifold structure in the original mesh.
  • a decoding method comprising:
  • the decoding end decodes the first code stream to obtain decoding information, wherein the decoding information includes non-manifold identification information and index information of the first repeated vertex, wherein the first repeated vertex is the non-manifold structure in the original mesh split.
  • the generated duplicate vertices, the non-manifold identification information is used to indicate whether the duplicate vertices are duplicate vertices generated when the non-manifold structure is split;
  • the decoding end restores the non-manifold structure in the original grid according to the decoding information.
  • an encoding device comprising:
  • the first acquisition module is used to split the non-manifold structure in the original grid to obtain a manifold grid
  • a first processing module used for adding non-manifold identification information to repeated vertices in the manifold mesh, and determining index information of a first repeated vertex among the repeated vertices, wherein the non-manifold identification information is used for indicating whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split;
  • the second acquisition module is used to encode the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream.
  • a decoding device comprising:
  • a fifth acquisition module configured to decode the first code stream to obtain decoding information, wherein the decoding information includes non-manifold identification information and index information of a first repeated vertex, wherein the first repeated vertex is a repeated vertex generated by splitting a non-manifold structure in an original mesh, and the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split;
  • the second processing module is used to restore the non-manifold structure in the original grid according to the decoded information.
  • a coding device comprising a processor and a communication interface, wherein the processor is used to split a non-manifold structure in an original mesh to obtain a manifold mesh; add non-manifold identification information to repeated vertices in the manifold mesh, and determine the index information of the first repeated vertex in the repeated vertices, wherein the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split; encode the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream.
  • a decoding device comprising a processor and a communication interface, wherein the processor is used to decode a first code stream to obtain decoding information, the decoding information comprising non-manifold identification information and index information of a first repeated vertex, the first repeated vertex is a repeated vertex generated by splitting a non-manifold structure in an original mesh, and the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split; according to the decoding information, the non-manifold structure in the original mesh is restored.
  • an electronic device comprising a processor and a memory, wherein the memory stores programs or instructions that can be run on the processor, and when the programs or instructions are executed by the processor, the steps of the method described in the first aspect or the second aspect are implemented.
  • a coding and decoding system comprising: a coding device and a decoding device, wherein the coding device can be used to execute the steps of the coding method as described in the first aspect, and the decoding device can be used to execute the steps of the decoding method as described in the second aspect.
  • a readable storage medium stores a program or an instruction, wherein the program When the program or instruction is executed by the processor, the steps of the method described in the first aspect are implemented, or the steps of the method described in the second aspect are implemented.
  • a chip comprising a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run a program or instruction to implement the method described in the first aspect, or to implement the method described in the second aspect.
  • a computer program/program product is provided, wherein the computer program/program product is stored in a storage medium, and the computer program/program product is executed by at least one processor to implement the steps of the method described in the first aspect, or to implement the steps of the method described in the second aspect.
  • the encoding end performs a splitting process on the non-manifold structure in the original mesh to obtain a manifold mesh; adds non-manifold identification information to the repeated vertices in the manifold mesh, and determines the index information of the first repeated vertex in the repeated vertices, the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split; the encoding end encodes the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream.
  • the decoding end can restore the non-manifold structure of the original mesh based on the non-manifold identification information and the index information of the first repeated vertex obtained by decoding the first code stream, thereby achieving the purpose of lossless encoding of the original mesh. Because the encoding end only adds non-manifold identification to the repeated points in the manifold mesh when encoding the mesh containing the non-manifold structure, instead of adding non-manifold identification to each vertex in the manifold mesh, it can more efficiently achieve lossless encoding of the three-dimensional mesh.
  • Figure 1 shows a schematic diagram of five modes of Edgebreaker encoding method
  • FIG2 is a schematic diagram showing a flow chart of an encoding method according to an embodiment of the present application.
  • FIG3 is a schematic diagram of a three-dimensional grid lossless coding framework according to an embodiment of the present application.
  • FIG4 is a schematic diagram showing the correspondence between edges and corners in a manifold grid according to an embodiment of the present application.
  • FIG5 is a schematic diagram showing the angle relationship in an embodiment of the present application.
  • FIG6 is a schematic diagram showing traversal rules of five modes of the Edgebreaker encoding method in an embodiment of the present application.
  • FIG7 is a schematic diagram showing two adjacent triangles in a grid according to an embodiment of the present application.
  • FIG8 is a schematic diagram showing UV coordinate prediction based on three-dimensional to two-dimensional projection in an embodiment of the present application.
  • FIG9 is a schematic diagram showing a flow chart of a decoding method according to an embodiment of the present application.
  • FIG10 is a schematic diagram showing a three-dimensional grid lossless decoding framework according to an embodiment of the present application.
  • FIG11 is a schematic diagram showing a module of an encoding device according to an embodiment of the present application.
  • FIG12 is a schematic diagram showing a module of a decoding device according to an embodiment of the present application.
  • FIG13 is a block diagram showing a structure of an electronic device according to an embodiment of the present application.
  • FIG14 is a block diagram showing the structure of an encoding device or a decoding device according to an embodiment of the present application.
  • first, second, etc. of the present application are used to distinguish similar objects, and are not used to describe a specific order or sequence. It should be understood that the terms used in this way are interchangeable where appropriate, so that the embodiments of the present application can be implemented in an order other than those illustrated or described herein, and the objects distinguished by “first” and “second” are generally of one type, and the number of objects is not limited, for example, the first object can be one or more.
  • “or” in the present application represents at least one of the connected objects.
  • “A or B” covers three schemes, namely, Scheme 1: including A but not including B; Scheme 2: including B but not including A; Scheme 3: including both A and B.
  • the character "/" generally indicates that the objects associated with each other are in an "or” relationship.
  • indication in this application can be a direct indication (or explicit indication) or an indirect indication (or implicit indication).
  • a direct indication can be understood as the sender explicitly informing the receiver of specific information, operations to be performed, or request results in the sent indication;
  • an indirect indication can be understood as the receiver determining the corresponding information according to the indication sent by the sender, or making a judgment and determining the operation to be performed or the request result according to the judgment result.
  • LTE Long Term Evolution
  • LTE-A Long Term Evolution-Advanced
  • CDMA Code Division Multiple Access
  • TDMA Time Division Multiple Access
  • FDMA Frequency Division Multiple Access
  • OFDMA Orthogonal Frequency Division Multiple Access
  • SC-FDMA Single-carrier Frequency-Division Multiple Access
  • NR New Radio
  • 6G 6th Generation
  • Three-dimensional models have become a new generation of digital media after audio, images, and videos.
  • Three-dimensional grids and point clouds are two commonly used ways to represent three-dimensional models.
  • three-dimensional grid models Compared with traditional multimedia such as images and videos, three-dimensional grid models have stronger interactivity and realism, making them more and more widely used in various fields such as commerce, manufacturing, construction, education, medicine, entertainment, art, and military.
  • a 3D mesh often contains three main types of information: topological information, geometric information, and attribute information.
  • Topological information also known as connectivity information, is used to describe the connection between elements such as vertices and facets in the mesh; geometric information is the 3D coordinates of all vertices in the mesh; attribute information records other information attached to the mesh, such as normal vectors, texture coordinates (i.e. UV coordinates), and colors.
  • the compression of 3D mesh data is often based on the compression of these three types of information according to their data characteristics.
  • the texture maps also need to be compressed.
  • Draco is a library for compressing and decompressing three-dimensional (3D) geometric meshes and point clouds. It aims to improve the storage and transmission of 3D graphics and greatly accelerate the encoding, transmission and decoding of 3D data. Draco supports the compression of 3D mesh geometry information, connection information and attribute information. Draco supports lossy mode and near-lossless mode. In addition, the Edgebreaker compression method used by Draco to encode connection relationships is currently one of the most efficient methods for encoding 3D mesh connection information.
  • Edgebreaker requires the mesh to be encoded to be a manifold structure.
  • Draco must split them into manifold structures to encode them correctly.
  • Draco does not merge the split structures at the decoding end, which makes the mesh output by the decoding end have more split points than the original mesh input by the encoding end. This will cause Draco to be unable to losslessly encode such meshes with non-manifold structures.
  • the Moving Pictures Experts Group (MPEG), an international standards organization for video image neighborhood, is developing a new dynamic 3D mesh compression standard (Video-based Dynamic Mesh Coding, V-DMC).
  • V-DMC Video-based Dynamic Mesh Coding
  • MPEG is also trying to implement the Edgebreaker-based 3D mesh codec provided by MPEG to achieve compression of 3D mesh geometry information, connection information, and attribute information. Since Edgebreaker requires the mesh to be encoded to be a manifold structure, the currently proposed solution will split the 3D mesh with non-manifold structure into a manifold structure and then encode it.
  • the Edgebreaker-based 3D mesh codec provided by MPEG will record and encode the index information of duplicate points generated by the removal of non-manifolds at the encoding end, and add an identifier to each vertex of the manifold mesh after the removal to indicate whether it is a duplicate point generated by the removal of non-manifolds, so that the non-manifold structure of the original 3D mesh can be restored at the decoding end based on the identifier and the index information of duplicate points generated by the removal of non-manifolds to achieve lossless encoding of the 3D mesh.
  • the removal of the non-manifold structure is achieved by adding duplicate points with the same geometric information and attribute information, in the decoded 3D mesh, only the duplicate points may be the points newly added due to the removal of non-manifolds. If a flag is set for each vertex to determine whether it is a point generated by the removal of non-manifolds, it will cause certain coding redundancy.
  • the above two solutions are three-dimensional mesh compression solutions based on Edgebreaker, and both have the problem of splitting the non-manifold structure that may exist in the input mesh.
  • For lossless compression it is necessary to restore the non-manifold structure that may exist in the original three-dimensional mesh at the decoding end. Therefore, a new lossless encoding method based on Edgebreaker that can achieve non-manifold three-dimensional mesh is proposed, which is of great significance for achieving lossless encoding of non-manifold meshes more efficiently.
  • the 3D mesh compression tool currently provided by MPEG based on Edgebreaker converts the connection information, geometry
  • the information and attribute information are encoded and stored separately.
  • the core module that is, the module that encodes the connection information, uses the Edgebreaker algorithm.
  • Conventional compression methods are used to encode the geometric information and attribute information, that is, data quantization, prediction compression (for example: parallelogram prediction) and entropy coding. Since the tool uses a connection relationship driven encoding method, the encoding of geometric information and attribute information will follow the encoding order of the connection information. In this way, the vertex order of the connection relationship encoding is implicitly included in the vertex order of the geometric information to avoid the separate transmission of the vertex order of the connection relationship encoding, thereby saving this part of the bit overhead.
  • the Edgebreaker method is a 3D mesh connection relationship encoding method with the advantages of good compression performance, easy implementation, and the ability to provide an upper limit for compression ratio.
  • the Edgebreaker method itself only describes the compression method of 3D mesh connection information, and the compression of 3D meshes can only be achieved through geometric information compression and entropy coding.
  • Edgebreaker encoding technology can compress triangular meshes that are homeomorphic to the sphere to 2 bits or less per triangle.
  • the encoding algorithm uses five different modes (called C, L, E, R, and S) to access each triangle of the mesh in depth-first order. Each triangle is marked according to the mode it is in, and a CLERS string is generated to obtain a compact representation of the mesh connectivity.
  • the five modes of the Edgebreaker method are shown in Figure 1.
  • the Edgebreaker method divides the mesh into a traversed part and an untraversed part, and the boundary between the two parts is called the active boundary.
  • the triangle to be traversed is accessed through the active edge on the active boundary, and the mode to be used is selected according to the relationship between the active edge and the triangle in which it is located.
  • the other vertex in the triangle where the active edge is located is called the third vertex. If the third vertex is not on the active boundary, the current triangle is marked as C mode. If the third vertex is on the active boundary and is the next vertex of the current active edge in counterclockwise order, the current triangle is marked as R mode.
  • the current triangle is marked as L mode. If the third vertex is on the active boundary and is both the previous vertex of the current active edge vertex and the next vertex of the current active edge in counterclockwise order, the current triangle is marked as E mode. If the third vertex is on the active boundary, but in counterclockwise order, it is neither the previous vertex of the current active edge vertex nor the next vertex of the current active edge, then the current triangle is marked as S mode.
  • the active boundary is updated and the next active edge is selected according to certain rules.
  • the obtained CLERS string is entropy encoded to obtain higher compression efficiency.
  • an embodiment of the present application provides an encoding method, including:
  • Step 201 The encoder splits the non-manifold structure in the original grid to obtain a manifold grid.
  • the original grid is a three-dimensional grid.
  • the original grid can be understood as a three-dimensional grid corresponding to any video frame.
  • the non-manifold structure in the embodiment of the present application includes at least one of a non-manifold edge and a non-manifold point.
  • the non-manifold edge mentioned above refers to an edge in the mesh that exists in at least three triangles at the same time.
  • the mesh is a manifold mesh, otherwise it is called a non-manifold mesh.
  • the original mesh is split into manifold meshes to facilitate subsequent encoding based on an encoding scheme in related technologies, for example, encoding is performed using a three-dimensional mesh encoder based on Edgebreaker.
  • Step 202 The encoding end adds non-manifold identification information to the repeated vertices in the manifold mesh, and determines the index information of the first repeated vertex among the repeated vertices, wherein the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split.
  • the repeated vertices include the first repeated vertices and the second repeated vertices.
  • the second repeated vertices are repeated vertices in the original mesh before the non-manifold structure is split.
  • non-manifold identification information is used to indicate whether the repeated vertices (i.e., repeated points) in the manifold mesh are repeated vertices generated when the non-manifold structure is split. For example, when the non-manifold identification information is 1, it indicates that the repeated vertices are repeated vertices generated when the non-manifold structure is split. When the non-manifold identification information is 0, it indicates that the repeated vertices are not repeated vertices generated when the non-manifold structure is split.
  • Step 203 The encoding end encodes the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream
  • the manifold mesh contains two types of duplicate points: one is the duplicate points existing in the original input mesh itself (i.e., the second duplicate vertices in this application), and the other is the duplicate points newly generated due to the splitting of the non-manifold structure (i.e., the first duplicate vertices mentioned above).
  • the encoding end performs a splitting process on the non-manifold structure in the original mesh to obtain a manifold mesh; adds non-manifold identification information to the repeated vertices in the manifold mesh, and determines the index information of the first repeated vertex in the repeated vertices, the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split; the encoding end encodes the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream.
  • the decoding end can restore the non-manifold structure of the original mesh based on the non-manifold identification information and the index information of the first repeated vertex obtained by decoding the first code stream, thereby realizing lossless encoding of the original mesh.
  • the encoder When encoding a mesh containing a non-manifold structure, the encoder only adds a non-manifold identifier to the repeated points in the manifold mesh, rather than adding a non-manifold identifier to each vertex in the manifold mesh, thereby enabling more efficient lossless encoding of the three-dimensional mesh.
  • the first code stream further includes encoding information of first indication information, where the first indication information is used to indicate whether a non-manifold structure exists in the original grid.
  • the method of the embodiment of the present application further includes:
  • the encoding end encodes the manifold grid to obtain a second code stream.
  • the encoding end obtains a total bitstream of the original grid according to the first bitstream and the second bitstream.
  • the decoding end when restoring a non-manifold structure, requires, in addition to the non-manifold identification information and the index information of the first repeated vertex, the above-mentioned manifold mesh.
  • the decoding end can restore the non-manifold structure based on the manifold mesh, the non-manifold identification information and the index information of the first repeated vertex.
  • the encoding end encodes the manifold grid to obtain a second bitstream, including:
  • the encoding end encodes the second target information of the manifold grid to obtain the second code stream
  • the second target information includes connection relationship, geometric information and attribute information.
  • the attribute information includes UV coordinates, ie, texture coordinates.
  • UV coordinates are information describing the texture of vertices of a three-dimensional mesh.
  • the Edgebreaker method can be used to encode the connection relationship to obtain a CLERS pattern string that can concisely represent the connection relationship, and the pattern string can be compressed using entropy coding to obtain a connection relationship sub-code stream (which can also be described as a connection relationship code stream);
  • the geometric information of the grid can be encoded using methods such as parallelogram prediction to obtain a geometric information sub-code stream (which can also be described as a geometric information code stream);
  • the UV coordinates in the attribute information of the grid can be encoded using methods such as similar triangle prediction to obtain an attribute information sub-code stream (which can also be described as an attribute information code stream).
  • the above-mentioned second code stream is obtained.
  • the determining index information of a first repeated vertex among the repeated vertices includes:
  • the index information of the first repeated vertex is determined according to the encoding order of at least one of the geometric information and the attribute information in the manifold mesh.
  • the above-mentioned first repeated vertices include geometric repeated vertices and attribute repeated vertices.
  • the index information of the first repeated vertices can be obtained according to the encoding order of the encoded geometric information or the attribute information. If the geometric vertices and the attribute vertices in the manifold mesh have different connection relationships, the index information of the geometric repeated vertices in the first repeated vertices can be obtained according to the encoding order of the geometric information, and the index information of the attribute repeated vertices in the first repeated vertices can be obtained according to the encoding order of the attribute information.
  • the first repeated vertices include geometric repeated vertices and attribute repeated vertices
  • the geometric repeated vertices and the attribute repeated vertices share a set of non-manifold structure information, and the non-manifold structure information includes non-manifold identification information and index information; or,
  • the geometric repeated vertices correspond to a first group of non-manifold structure information
  • the attribute repeated vertices correspond to a second group of non-manifold structure information
  • the first group of non-manifold structure information and the second group of non-manifold structure information both include non-manifold identification information and index information.
  • the geometric vertices in the manifold mesh and the attribute vertices have the same connection relationship, which means that the geometric vertices in the manifold mesh and the attribute vertices have a one-to-one correspondence.
  • the geometric vertices in the manifold mesh and the attribute vertices have different connection relationships, which means that the geometric vertices in the manifold mesh and the attribute vertices do not have a one-to-one correspondence.
  • attribute vertices in the embodiments of the present application may also be described as UV vertices.
  • the total bitstream of the original grid further includes:
  • the third code stream is obtained by encoding the second indication information, and the second indication information is used to indicate whether the geometric vertices and attribute vertices in the manifold mesh have the same connection relationship.
  • the second indication information is encoded so that the decoding end can know whether to obtain one set of non-manifold structure information or two sets of non-manifold structure information.
  • the total bitstream of the original grid further includes:
  • a fourth code stream is obtained by encoding third indication information of repeated vertices in the manifold mesh, wherein the third indication information is used to indicate whether geometric information and attribute information of the repeated vertices are repeatedly encoded.
  • the decoding end can know whether the geometric information and attribute information of the repeated vertices are repeatedly/multiple encoded, so that the decoding end can decode and obtain the corresponding repeated vertices.
  • the total bitstream of the original grid further includes:
  • a fifth code stream wherein the fifth code stream is obtained by encoding fourth indication information of vertices in the manifold mesh, wherein the fourth indication information is used to indicate whether the vertex is a repeated vertex.
  • encoding the connection relationship, geometric information and attribute information simultaneously means that when encoding, the encoding order of the three is not in particular order, and they are encoded simultaneously.
  • the decoding end can determine which are repeated vertices during the decoding process, and then determine which are repeated vertices generated by splitting the non-manifold structure based on the non-manifold identifiers of the repeated vertices.
  • the total bitstream of the original grid further includes:
  • the sixth code stream is obtained by encoding the texture map information of the original grid.
  • the texture map information may be encoded by a video encoder to obtain a sixth bitstream, namely a texture map sub-bitstream (which may also be described as a texture map bitstream).
  • the three-dimensional grid coding framework in the embodiment of the present application is shown in FIG3.
  • the repeated points of the original grid i.e., the second repeated points
  • the original grid with non-manifold structure is split to obtain a manifold grid
  • the repeated points i.e., the first repeated points generated by splitting the non-manifold structure are recorded
  • the The Edgebreaker method encodes the connection information, obtains the pattern string, and performs entropy encoding on it; encodes the geometric information of the manifold mesh, for example, the parallelogram prediction coding method can be used, and the encoding method of the geometric information is not limited here
  • the mesh has attribute information such as UV coordinates, it can be encoded using methods such as similar triangle prediction coding, and the encoding method of the attribute information is not limited here; when encoding non-manifold structure information, first encode the indication information whether there is a non-manifold structure in the mesh
  • the non-manifold identification information of the repeated points and the index information of the repeated points generated by removing the non-manifold structure are further encoded according to the encoding order of the vertices.
  • the non-manifold identification information about the repeated points is encoded by encoding a flag bit for each repeated vertex in the split manifold mesh to identify whether the repeated point is generated by removing the non-manifold structure.
  • the multiple code streams are mixed to obtain the final output code stream (i.e., the total code stream).
  • the three-dimensional mesh lossless coding framework of this application is mainly divided into five parts: splitting non-manifold structure in preprocessing, connection relationship coding, geometric information coding, attribute information coding and non-manifold structure information coding. The following are introduced respectively:
  • the preprocessing step may also include filtering out duplicate points, adding virtual points and other preprocessing modules required for encoding.
  • FIG3 only lists the modules for splitting non-manifold structures targeted by the present application.
  • the hash table is the three-dimensional coordinates of the vertex
  • the value is the number of occurrences of the vertex with the three-dimensional coordinates
  • the number of occurrences greater than 1 indicates that it is a duplicate point, so as to find, judge and record the duplicate points in the original grid.
  • Splitting non-manifold structures is mainly divided into two parts: splitting non-manifold edges and splitting non-manifold points.
  • the first step in splitting non-manifold edges is to find them.
  • the criterion for determining a non-manifold edge is that an edge exists in three or more triangles at the same time.
  • the specific implementation method is: you can establish a data structure to store the triangles where each edge is located, and find the non-manifold edges by querying the number of triangles corresponding to the edge; you can also construct a Corner Table to establish the correspondence between angles and edges in the grid, and then find the non-manifold edges. Specifically, for a manifold grid, each edge is opposite to at most two angles, and the two opposite angles are called opposite angles.
  • angle a and angle d are opposite to edge bc, and angle a and angle d are opposite angles; for non-manifold edges, there will be three or more opposite angles. Therefore, non-manifold edges can also be found through the correspondence between angles and edges.
  • the second step of splitting non-manifold edges is to add vertices and modify the connection relationship. After finding the non-manifold edge, create duplicate vertices for the two vertices of the non-manifold edge, select a triangle t where the non-manifold edge is located, make the third vertex in the triangle and the two newly added vertices form a new triangle t', replace the original triangle t with t', and iterate this process until the non-manifold edge is converted into a manifold edge.
  • the first step is to start from a corner of the vertex and traverse the corners adjacent to the corner. All the corners that form a sector are marked as traversed. If there are still vertices with untraversed corners after executing the above process, it means that the vertex is a non-manifold point.
  • the second step for each non-manifold point, create a duplicate point and modify the connection relationship, connect the untraversed corners in the first step to the newly added duplicate point, and split the non-manifold point into two manifold vertices. Repeat this process until all vertices are converted into manifold points.
  • Input connectivity of the manifold mesh
  • Output the encoded connection relationship sub-code stream and vertex encoding order
  • This application uses the Edgebreaker method to encode the connection relationship of the three-dimensional mesh. It establishes a Corner Table to represent the connection relationship of the mesh, and uses the CornerTable to traverse all triangles in the mesh to generate the Edgebreaker CLERS pattern string.
  • c is the index of the current angle
  • fi is the serial number of the triangle where the current angle c is located
  • "*" is multiplication
  • % is modulo operation.
  • c p (f i *3)+(c+1)%3 (3)
  • c is the index of the current angle
  • fi is the serial number of the triangle where the current angle c is located
  • "*" is multiplication
  • "%” is modulo operation.
  • Corner Table consists of four parts: V, O, U, and M.
  • the V table stores the vertex index corresponding to each corner
  • the O table stores the diagonal index of each corner
  • the U table stores the flag of whether each triangle has been traversed during the traversal process
  • the M table stores the flag of whether each vertex has been traversed during the traversal process.
  • Corner Table can be used to construct the relationship shown in Figure 5, where c represents the current corner, c.p represents the previous corner of the current corner c (counterclockwise), and c.n represents the next corner of the current corner c. c.o is the opposite corner of the current corner c, which can be obtained by querying the O table.
  • c.t is the serial number of the triangle where c is located, which can be calculated by formula 1.
  • c.v represents the vertex of the current corner, which can be obtained by querying the V table.
  • c.l represents the corner to the left of the current corner c, which is obtained by querying the opposite corner of c.p in the O table;
  • c.r represents the corner to the right of the current corner c, which is obtained by querying the opposite corner of c.n in the O table.
  • the traversal path will produce two branches. The principle of depth-first traversal is adopted.
  • the first triangle traversed is the triangle where xr is located, and the triangle where xl is located is stored in the stack. After waiting for the branch where xr is located to be traversed, the triangle where xl is located is traversed; if the triangles where xl and xr are located have been visited, the mode of the current triangle is E, and the traversal has reached the end of the current traversal path branch.
  • Randomly select an initial triangle in the mesh traverse the triangles in the mesh according to the above rules, and generate a CLERS pattern string.
  • the traversal path ends, but there are still untraversed triangles in the mesh randomly select an untraversed triangle and start the next traversal until all triangles in the mesh have been traversed.
  • Entropy coding is used to compress the CLERS pattern string to obtain the final connection information code stream.
  • Input The geometric information and connection relationship encoding order of the manifold mesh
  • the difference coding method is used to encode geometric information, that is, the coordinate values of adjacent encoded vertices are used as the predicted values of the current vertex coordinates to calculate and predict the residual.
  • Input attribute information and connection relationship encoding order of manifold mesh
  • the three-dimensional mesh attribute information generally includes UV coordinates, normal vectors, etc. Taking UV coordinates as an example, there are many encoding methods that can be used for UV coordinates, including difference prediction encoding, parallelogram prediction encoding, and similar triangle prediction encoding. The specific encoding method is not emphasized here. The similar triangle prediction algorithm is described below.
  • C uv , X uv , N uv , P uv , O uv be the UV coordinates of each point respectively
  • C G , X G , NG , PG , O G be the geometric coordinates of each point.
  • UV coordinates between the corresponding points are vector representations of the UV coordinates between the corresponding points, for example, A vector representation of the UV coordinates between point N and point X. A vector representation of the UV coordinates between point X and point C.
  • Rotated() means flipping the vector 90 degrees:
  • Input information indicating whether there is a non-manifold structure in the grid, non-manifold identification of duplicate points, index information of duplicate points generated by removing non-manifolds, encoding order of geometric information, encoding order of attribute information;
  • encode information indicating whether there is a non-manifold structure in the grid i.e., the first indication information.
  • This information can be indicated by setting a flag indicating whether there is a non-manifold structure in the grid, or by using the number of duplicate points generated by removing the non-manifold structure in the grid.
  • the representation method is not limited here.
  • a flag indicating whether there is a non-manifold structure Take setting a flag indicating whether there is a non-manifold structure as an example: if there is no non-manifold structure in the grid, that is, the number of duplicate points generated by removing the non-manifold is 0, set the flag to 0, and there is no need to encode the non-manifold flag of the duplicate points and the index information of the duplicate points (i.e., the first duplicate vertex) generated by removing the non-manifold; if there is a non-manifold structure in the grid, that is, the number of duplicate points generated by removing the non-manifold is greater than 0, set the flag to 1, and then encode the non-manifold flag of the duplicate points and the index information of the duplicate points generated by removing the non-manifold.
  • the duplicate points generated by the removal of non-manifolds include geometric duplicate points and attribute duplicate points. If the case of whether the geometric vertices and attribute vertices (such as UV vertices) have the same connection relationship is considered, it is divided into two cases: the first case is that when the geometric vertices and attribute vertices in the mesh have the same connection relationship, a group of duplicate points' non-manifold identifiers and the index information of the duplicate points generated by the removal of the non-manifold are directly encoded, and the index information can be obtained according to the encoding order of the geometric information and the attribute information at the encoding end; the second case is that when the geometric vertices and the attribute vertices in the mesh have different connection relationships, two groups of duplicate points' non-manifold identifiers and the index information of the duplicate points generated by the removal of the non-manifold are encoded, and the index information can be obtained according to the encoding order of the geometric information and the encoding order of the attribute information at
  • the representation method of the index information of the duplicate points generated by the removal of the non-manifold structure can be the target vertex index that needs to be merged when restoring the non-manifold structure, or it can be the index of the duplicate point group: points with the same index belong to the same duplicate point group, that is, they have the same vertex information, and the representation method is not limited here.
  • the specific implementation is: a flag is set for each repeated vertex in the manifold grid to indicate whether the point at the current position is a repeated point caused by dismantling the non-manifold, and the index information of the repeated points caused by dismantling the non-manifold is recorded; then the binary string sequence obtained by arranging the flags in the corresponding coding order and the index information of the repeated points generated by dismantling the non-manifold structure are entropy encoded to obtain the non-manifold structure information code stream.
  • non-manifold structure information bitstream in the total bitstream: one is to store the non-manifold structure information bitstream as a separate sub-bitstream; another is to store the geometric non-manifold structure information bitstream in the geometric information sub-bitstream, and store the attribute non-manifold structure information bitstream in the attribute information sub-bitstream; the geometric non-manifold structure information bitstream and the attribute non-manifold structure information bitstream can also be stored as two sub-bitstreams in the total bitstream.
  • the storage method of the non-manifold structure information bitstream in the total bitstream is not emphasized here.
  • the geometry and attribute information of duplicate points can be skipped, that is, only encoded once, or not skipped. Whether to skip the encoding of the geometry and attribute information of duplicate points is not emphasized here. However, if the encoding of the geometry and attribute information of duplicate points is skipped, additional information needs to be transmitted to indicate whether the geometry and attribute information of the vertex is skipped, otherwise the geometry information of the skipped coded vertices cannot be decoded. Specifically, a flag may be set for each vertex to indicate whether the geometric information and attribute information of the vertex are skipped for encoding, and the representation method is not limited here.
  • the sequence of encoding the connection relationship of the three-dimensional mesh and encoding the vertex information is not limited. It can be that the geometric information, attribute information and non-manifold structure information are encoded while encoding the connection relationship; it can also be that after encoding the connection relationship, the geometric information, attribute information and non-manifold structure information are encoded in sequence according to the encoding order of the connection relationship.
  • the geometric information, attribute information and non-manifold structure information are encoded while encoding the connection relationship, it is necessary to add information indicating whether the vertex is a duplicate point, so that it can be determined which are duplicate points during the decoding process, and then determine which are duplicate points caused by disassembling non-manifolds based on the non-manifold identifiers of the duplicate points.
  • a duplicate point identifier can be set for each vertex to indicate whether the vertex is a duplicate point.
  • the representation method is not limited here.
  • the geometric vertex and the UV vertex have the same connection relationship
  • the information can be represented by setting an identifier to indicate whether the geometric vertex and the UV vertex have the same connection relationship, and the representation method is not limited here.
  • the encoding end splits the non-manifold structure in the original mesh to obtain a manifold mesh; adds non-manifold identification information to the repeated vertices in the manifold mesh, and determines the index information of the first repeated vertex in the repeated vertices, the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split; the encoding end encodes the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream.
  • the decoding end can restore the non-manifold structure of the original mesh based on the non-manifold identification information and the index information of the first repeated vertex obtained by decoding the first code stream, thereby achieving the purpose of lossless encoding of the original mesh. Because the encoding end only adds non-manifold identification to the repeated points in the manifold mesh when encoding the mesh containing the non-manifold structure, instead of adding non-manifold identification to each vertex in the manifold mesh, it can more efficiently achieve lossless encoding of the three-dimensional mesh.
  • the embodiment of the present application further provides a decoding method, including:
  • Step 901 The decoding end decodes the first code stream to obtain decoding information, wherein the decoding information includes non-manifold identification information and index information of the first repeated vertex, wherein the first repeated vertex is a repeated vertex generated by splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split.
  • the decoding information includes non-manifold identification information and index information of the first repeated vertex, wherein the first repeated vertex is a repeated vertex generated by splitting the non-manifold structure in the original mesh, and the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split.
  • Step 902 The decoding end restores the non-manifold structure in the original grid according to the decoding information.
  • the decoding end decodes the first code stream to obtain non-manifold identification information and index information of the first repeated vertex; based on the index information of the first repeated vertex and the non-manifold identification information, the non-manifold structure in the original mesh is restored.
  • the non-manifold structure of the original mesh can be restored based on the non-manifold identification information obtained by decoding the first code stream and the index information of the first repeated vertex, thereby achieving the purpose of lossless encoding of the original mesh. Since non-manifold identification is only added to the repeated points in the manifold mesh, rather than adding non-manifold identification to each vertex in the manifold mesh, lossless encoding and decoding of three-dimensional meshes can be achieved more efficiently.
  • the decoding information further includes first indication information, where the first indication information is used to indicate whether a non-manifold structure exists in the original grid;
  • the decoding end restores the non-manifold structure in the original grid according to the decoded information, including:
  • the non-manifold structure in the original mesh is restored according to the index information of the first repeated vertices and the non-manifold identification information.
  • restoring the non-manifold structure in the original mesh according to the index information of the first repeated vertices and the non-manifold identification information includes:
  • the non-manifold structure in the original mesh is restored according to the reconstructed manifold mesh, the index information of the first repeated vertices, and the non-manifold identification information.
  • the decoding end decodes the second code stream to obtain the second target information of the manifold mesh.
  • entropy decoding obtains the CLERS pattern string, and the pattern string is used to reconstruct the connection relationship.
  • the geometric information of the mesh is decoded using methods such as parallelogram inverse prediction, and the UV coordinates in the mesh attribute information are decoded using methods such as similar triangle inverse prediction.
  • the non-manifold structure information the information indicating whether there is a non-manifold structure in the mesh (ie, the first indication information) is first decoded.
  • the non-manifold identification information of the duplicate points and the index information of the duplicate points generated by the removal of the non-manifold structure are further decoded to obtain the duplicate points.
  • the duplicate points generated by the removal of the non-manifold structure are merged, and the connection relationship is adjusted, thereby restoring the non-manifold structure in the mesh, and realizing lossless encoding and decoding of meshes containing non-manifold structures.
  • restoring the non-manifold structure in the original mesh according to the reconstructed manifold mesh, the index information of the first repeated vertices, and the non-manifold identification information includes:
  • the fourth indication information is obtained by decoding the fifth code stream, and the fourth indication information is used to indicate whether the vertices in the manifold mesh are repeated vertices.
  • the fourth indication information obtained by decoding at the decoding end can determine which are repeated vertices when the geometric information, attribute information and connection relationship of the manifold mesh are encoded at the same time, and then determine which are repeated vertices generated by splitting the non-manifold structure based on the non-manifold identifiers of the repeated vertices.
  • the decoding end decodes the second code stream to obtain the second target information of the manifold grid, including:
  • the third indication information is obtained by decoding the fourth bit stream, and the third indication information is used to indicate whether the geometric information and attribute information of the repeated vertices are repeatedly encoded.
  • the decoding end can learn whether to repeat/multiple-encode the geometric information and attribute information of the repeated vertices through the third indication information obtained through decoding, so that the decoding end can decode and obtain the corresponding repeated vertices.
  • the first repeated vertices include geometric repeated vertices and attribute repeated vertices
  • the geometric repeated vertices and the attribute repeated vertices share a set of non-manifold structure information, and the non-manifold structure information includes non-manifold identification information and index information; or,
  • the geometric repeated vertices correspond to a first group of non-manifold structure information
  • the attribute repeated vertices correspond to a second group of non-manifold structure information
  • the first group of non-manifold structure information and the second group of non-manifold structure information both include non-manifold identification information and index information.
  • the geometric vertices in the manifold mesh and the attribute vertices have the same connection relationship, which means that the geometric vertices in the manifold mesh and the attribute vertices have a one-to-one correspondence.
  • the geometric vertices in the manifold mesh and the attribute vertices have different connection relationships, which means that the geometric vertices in the manifold mesh and the attribute vertices do not have a one-to-one correspondence.
  • the method of the embodiment of the present application further includes:
  • the second indication information it is determined whether the geometric vertices and the attribute vertices in the manifold mesh have the same connection relationship.
  • the method of the embodiment of the present application further includes:
  • the sixth code stream is decoded to obtain texture map information of the original grid.
  • the three-dimensional mesh decoding framework in the embodiment of the present application is shown in FIG10.
  • Entropy decoding connection relationship sub-code stream obtain the mode string, and reconstruct the connection relationship; use the decoding method corresponding to the encoding end to decode the geometric information of the mesh; use the decoding method corresponding to the encoding end to decode the attribute information of the mesh; when decoding the non-manifold structure information, first decode whether there is a non-manifold structure in the mesh (i.e., the first indication information), if there is a non-manifold structure in the mesh, then further decode to obtain the non-manifold identification of the repeated points and the repeated point index information generated by the non-manifold removal.
  • the post-processing step can also include the post-processing modules required for correct decoding such as restoring the filtered repeated points and deleting the added virtual vertices.
  • FIG10 only lists the modules for restoring the non-manifold structure targeted by this application.
  • connection relationship decoding As shown in Figure 10, the 3D mesh lossless decoding framework of this application is mainly divided into six parts: connection relationship decoding, geometric information decoding, attribute information decoding, non-manifold structure information decoding, reconstruction of manifold mesh, and recovery of non-manifold structure in post-processing. The following are introduced respectively:
  • Input the connection relationship sub-code stream to be decoded
  • Output connectivity of the manifold mesh and the decoded vertex order
  • connection relationship sub-code stream decodes the connection relationship sub-code stream to obtain the pattern string. Traverse the pattern in a certain order (forward or reverse order). The connection relationship is reconstructed according to the corresponding pattern in the string. In addition, the vertex traversal order is output to the geometry information and attribute information decoding module.
  • Output Geometric information of the manifold mesh.
  • the decoding process of the mesh geometric coordinates is the inverse process of the encoding process: first, entropy decode the coordinate prediction residual. Then, based on the decoded triangle, predict the predicted coordinates of the point to be decoded according to the parallelogram law. Add the predicted coordinates to the residual value obtained by entropy decoding to get the geometric coordinate position to be decoded.
  • the vertex traversal order here is the same as the vertex order of the encoded geometric information.
  • the geometric coordinates of the initial triangle do not use predictive coding, but directly encode their geometric coordinate values. After the geometric coordinates of the triangle are decoded at the decoding end, it is used as the initial triangle to start traversing and decoding the geometric coordinates of the vertices of other triangles. In addition, other decoding methods may also be used here. The specific decoding method is not emphasized, as long as it corresponds to the encoding end.
  • Input non-manifold structure information sub-code stream, geometric information decoding order and attribute information decoding order;
  • Output information indicating whether there is a non-manifold structure in the grid, the non-manifold identification of duplicate points, and the index information of duplicate points generated by removing the non-manifold structure.
  • decode the information indicating whether there is a non-manifold structure in the grid Take the information as an example of whether there is a non-manifold structure: if the flag is 0, there is no need to decode the non-manifold flag of the duplicate points and the index information of the duplicate points generated by removing the non-manifold structure, and skip the subsequent module for recovering the non-manifold structure; if the flag is 1, decode the non-manifold flag of the duplicate points and the index information of the duplicate points generated by removing the non-manifold structure.
  • the decoding of the non-manifold identification of the repeated points and the index information of the repeated points generated by removing the non-manifold structure adopts the method corresponding to the encoding end. First, entropy decoding is performed to obtain the non-manifold identification of the repeated points, and then the index information of the repeated points generated by removing the non-manifold structure is decoded and recorded. This information is output to the non-manifold structure recovery module.
  • the manifold mesh can be directly reconstructed by using the connection relationship, geometric information, and attribute information of the manifold mesh.
  • Input manifold grid, non-manifold identifiers of duplicate points, and index information of duplicate points generated by removing non-manifold structures
  • the recovery process of non-manifold edges and non-manifold points is the same.
  • find duplicate points in the manifold grid for example, using hash tables or kd-tree methods.
  • the hash table as an example, a hash table is established, the key of the hash table is the coordinates of the vertex, and the value is the number of occurrences of the vertex with the coordinates, so as to find, judge and record duplicate points.
  • the current vertex corresponds to the index of the current vertex, that is, its index is not updated; if the current vertex is a duplicate point generated by splitting the non-manifold, the index information of the duplicate point generated by splitting the non-manifold is used to judge whether it is the target vertex to be merged with the point with the current vertex information. If it is the target vertex to be merged, the current vertex corresponds to the index of the current vertex, and its index is not updated.
  • the operation of merging the duplicate points generated by splitting the non-manifold is performed, that is, the index of the current point is updated to the index of the corresponding target vertex to be merged.
  • the geometric information list and the attribute information list are updated, and the index values of the geometric points and attribute points in the connection relationship are updated to obtain the reconstructed non-manifold mesh.
  • the decoding end decodes the first bitstream to obtain non-manifold identification information and index information of the first repeated vertex; according to the index information of the first repeated vertex and the non-manifold identification information, the non-manifold structure in the original mesh is restored.
  • the index information of the complex vertices restores the non-manifold structure of the original mesh, thereby achieving the purpose of lossless encoding of the original mesh. Since non-manifold identifiers are only added to the repeated points in the manifold mesh, rather than adding non-manifold identifiers to each vertex in the manifold mesh, lossless encoding and decoding of the three-dimensional mesh can be achieved more efficiently.
  • the encoding method provided in the embodiment of the present application may be executed by an encoding device.
  • the encoding device provided in the embodiment of the present application is described by taking the encoding method executed by the encoding device as an example.
  • the embodiment of the present application further provides an encoding device 1100, including:
  • a first acquisition module 1101 is used to split the non-manifold structure in the original mesh to obtain a manifold mesh
  • a first processing module 1102 is used to add non-manifold identification information to repeated vertices in the manifold mesh, and determine index information of a first repeated vertex among the repeated vertices, wherein the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split;
  • the second acquisition module 1103 is used to encode the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream.
  • the first code stream further includes encoding information of first indication information, where the first indication information is used to indicate whether a non-manifold structure exists in the original grid.
  • the device of the embodiment of the present application further includes:
  • a third acquisition module used for encoding the manifold grid to obtain a second code stream
  • the fourth acquisition module is used to obtain the total code stream of the original grid according to the first code stream and the second code stream.
  • the third acquisition module is used to encode the second target information of the manifold grid to obtain the second code stream;
  • the second target information includes connection relationship, geometric information and attribute information.
  • the first repeated vertices include geometric repeated vertices and attribute repeated vertices
  • the geometric repeated vertices and the attribute repeated vertices share a set of non-manifold structure information, and the non-manifold structure information includes non-manifold identification information and index information; or,
  • the geometric repeated vertices correspond to a first group of non-manifold structure information
  • the attribute repeated vertices correspond to a second group of non-manifold structure information
  • the first group of non-manifold structure information and the second group of non-manifold structure information both include non-manifold identification information and index information.
  • the total bitstream of the original grid further includes:
  • the third code stream is obtained by encoding the second indication information, and the second indication information is used to indicate whether the geometric vertices and attribute vertices in the manifold mesh have the same connection relationship.
  • the total bitstream of the original grid further includes:
  • a fourth code stream wherein the fourth code stream is obtained by encoding third indication information of repeated vertices in the manifold mesh, wherein the third indication information is used to indicate whether the geometric information and attribute information of the repeated vertices are repeated. coding.
  • the total bitstream of the original grid further includes:
  • a fifth code stream wherein the fifth code stream is obtained by encoding fourth indication information of vertices in the manifold mesh, wherein the fourth indication information is used to indicate whether the vertex is a repeated vertex.
  • the encoding device of the embodiment of the present application performs a splitting process on the non-manifold structure in the original mesh to obtain a manifold mesh; adds non-manifold identification information to the repeated vertices in the manifold mesh, and determines the index information of the first repeated vertex in the repeated vertices, wherein the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split; the encoding end encodes the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream.
  • the decoding end can restore the non-manifold structure of the original mesh based on the non-manifold identification information and the index information of the first repeated vertex obtained by decoding the first code stream, thereby achieving the purpose of lossless encoding of the original mesh. Since the encoding end only adds non-manifold identification to the repeated points in the manifold mesh when encoding the mesh containing the non-manifold structure, instead of adding non-manifold identification to each vertex in the manifold mesh, it is possible to more efficiently achieve lossless encoding of the three-dimensional mesh.
  • the embodiment of the present application further provides a decoding device 1200, including:
  • a fifth acquisition module 1201 is used to decode the first code stream to obtain decoding information, wherein the decoding information includes non-manifold identification information and index information of a first repeated vertex, wherein the first repeated vertex is a repeated vertex generated by splitting a non-manifold structure in an original mesh, and the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split;
  • the second processing module 1202 is used to restore the non-manifold structure in the original grid according to the decoded information.
  • the decoding information further includes first indication information, where the first indication information is used to indicate whether a non-manifold structure exists in the original grid;
  • the second processing module is used to restore the non-manifold structure in the original mesh according to the index information of the first repeated vertices and the non-manifold identification information when the first indication information indicates that the non-manifold structure exists in the original mesh.
  • the second processing module includes:
  • a reconstruction submodule configured to reconstruct the manifold mesh according to second target information of the manifold mesh, wherein the second target information is obtained by decoding the second bitstream, and the second target information includes connection relationship, geometric information, and attribute information;
  • a restoration submodule is used to restore the non-manifold structure in the original mesh according to the reconstructed manifold mesh, the index information of the first repeated vertices and the non-manifold identification information.
  • the restoration submodule is used to restore the non-manifold structure in the original mesh according to the reconstructed manifold mesh, the index information of the first repeated vertices, the non-manifold identification information and the fourth indication information;
  • the fourth indication information is obtained by decoding the fifth code stream, and the fourth indication information is used to indicate whether the vertices in the manifold mesh are repeated vertices.
  • the device of the embodiment of the present application further includes:
  • the sixth acquisition module is used to decode the second code stream to obtain the second target information of the manifold grid.
  • the sixth acquisition module is used to decode the second code stream according to the third indication information of repeated vertices in the manifold mesh, and acquire the geometric information and attribute information of the manifold mesh;
  • the third indication information is obtained by decoding the fourth bit stream, and the third indication information is used to indicate whether the geometric information and attribute information of the repeated vertices are repeatedly encoded.
  • the first repeated vertices include geometric repeated vertices and attribute repeated vertices
  • the geometric repeated vertices and the attribute repeated vertices share a set of non-manifold structure information, and the non-manifold structure information includes non-manifold identification information and index information; or,
  • the geometric repeated vertices correspond to a first group of non-manifold structure information
  • the attribute repeated vertices correspond to a second group of non-manifold structure information
  • the first group of non-manifold structure information and the second group of non-manifold structure information both include non-manifold identification information and index information.
  • the device of the embodiment of the present application further includes:
  • a seventh acquisition module configured to decode the third bitstream to acquire second indication information, wherein the second indication information is used to indicate whether the geometric vertices and the attribute vertices in the manifold mesh have the same connection relationship;
  • a determination module is used to determine whether the geometric vertices and attribute vertices in the manifold mesh have the same connection relationship according to the second indication information.
  • the decoding device of the embodiment of the present application decodes the first code stream to obtain first indication information, non-manifold identification information, and index information of the first repeated vertex; when the first indication information indicates that there is a non-manifold structure in the original mesh, the non-manifold structure in the original mesh is restored based on the index information of the first repeated vertex and the non-manifold identification information.
  • the non-manifold structure of the original mesh can be restored based on the non-manifold identification information and the index information of the first repeated vertex obtained by decoding the first code stream, thereby achieving the purpose of lossless encoding of the original mesh. Since non-manifold identification is only added to the repeated points in the manifold mesh, rather than adding non-manifold identification to each vertex in the manifold mesh, lossless encoding and decoding of three-dimensional meshes can be achieved more efficiently.
  • the encoding device or decoding device in the embodiments of the present application may be an electronic device, such as an electronic device with an operating system, or a component in an electronic device, such as an integrated circuit or a chip.
  • the electronic device may be a terminal, or may be other devices other than a terminal.
  • Exemplary other devices may be servers, network attached storage (NAS), etc., which are not specifically limited in the embodiments of the present application.
  • the encoding device provided in the embodiment of the present application can implement each process implemented by the method embodiment of Figure 2 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • the decoding device provided in the embodiment of the present application can implement each process implemented by the method embodiment of Figure 9 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • the embodiment of the present application further provides an electronic device 1300, including a processor 1301 and
  • the memory 1302 stores programs or instructions that can be executed on the processor 1301.
  • the program or instruction is executed by the processor 1301, the various steps of the above-mentioned encoding method or decoding method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it is not repeated here.
  • the embodiment of the present application also provides a coding device, including a processor and a communication interface, the processor is used to split the non-manifold structure in the original mesh to obtain a manifold mesh; add non-manifold identification information to the repeated vertices in the manifold mesh, and determine the index information of the first repeated vertex in the repeated vertices, the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split; encode the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream.
  • This device embodiment corresponds to the above-mentioned encoding method embodiment, and each implementation process and implementation method of the above-mentioned method embodiment can be applied to this device embodiment and can achieve the same technical effect.
  • the embodiment of the present application also provides a decoding device, including a processor and a communication interface, the processor is used to decode the first code stream to obtain decoding information, the decoding information includes non-manifold identification information and index information of the first repeated vertex, the first repeated vertex is a repeated vertex generated by splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split; according to the decoding information, the non-manifold structure in the original mesh is restored.
  • This device embodiment corresponds to the above-mentioned decoding method embodiment, and each implementation process and implementation method of the above-mentioned method embodiment can be applied to this device embodiment and can achieve the same technical effect.
  • FIG14 is a schematic diagram of the hardware structure of an encoding device or a decoding device for implementing an embodiment of the present application.
  • the encoding device or decoding device includes but is not limited to: a radio frequency unit 1401, a network module 1402, an audio output unit 1403, an input unit 1404, a sensor 1405, a display unit 1406, a user input unit 1407, an interface unit 1408, a memory 1409 and at least some of the components of the processor 1410.
  • the encoding device or decoding device may further include a power source (such as a battery) for supplying power to each component, and the power source may be logically connected to the processor 1410 through a power management system, so as to implement functions such as charging, discharging, and power consumption management through the power management system.
  • a power source such as a battery
  • the device structure shown in FIG14 does not constitute a limitation on the device, and the device may include more or fewer components than shown in the figure, or combine certain components, or arrange components differently, which will not be described in detail here.
  • the input unit 1404 may include a graphics processor (GPU) 14041 and a microphone 14042, and the graphics processor 14041 processes the image data of a static picture or video obtained by an image capture device (such as a camera) in a video capture mode or an image capture mode.
  • the display unit 1406 may include a display panel 14061, and the display panel 14061 may be configured in the form of a liquid crystal display, an organic light emitting diode, etc.
  • the user input unit 1407 includes a touch panel 14071 and at least one of other input devices 14072.
  • the touch panel 14071 is also called a touch screen.
  • the touch panel 14071 may include two parts: a touch detection device and a touch controller.
  • Other input devices 14072 may include, but are not limited to, a physical keyboard, function keys (such as a volume control button, a switch button, etc.), a trackball, a mouse, and a joystick, which will not be repeated here.
  • the radio frequency unit 1401 can transmit the data to the processor 1410 for processing; in addition, the radio frequency unit 1401 can send uplink data to the network side device.
  • the radio frequency unit 1401 includes but is not limited to an antenna, an amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, etc.
  • the memory 1409 can be used to store software programs or instructions and various data.
  • the memory 1409 may mainly include a first storage area for storing programs or instructions and a second storage area for storing data, wherein the first storage area may store an operating system, an application program or instruction required for at least one function (such as a sound playback function, an image playback function, etc.), etc.
  • the memory 1409 may include a volatile memory or a non-volatile memory, or the memory 1409 may include both volatile and non-volatile memories.
  • 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 a random access memory (RAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (SDRAM), a double data rate synchronous dynamic random access memory (DDRSDRAM), an enhanced synchronous dynamic random access memory (ESDRAM), a synchronous link dynamic random access memory (SLDRAM) and a direct memory bus random access memory (DRRAM).
  • the memory 1409 in the embodiment of the present application includes but is not limited to these and any other suitable types of memory.
  • the processor 1410 may include one or more processing units; optionally, the processor 1410 integrates an application processor and a modem processor, wherein the application processor mainly processes operations related to an operating system, a user interface, and application programs, and the modem processor mainly processes wireless communication signals, such as a baseband processor. It is understandable that the modem processor may not be integrated into the processor 1410.
  • the device is an encoding device:
  • the processor 1410 is used to split the non-manifold structure in the original grid to obtain a manifold grid
  • the encoding end adds non-manifold identification information to the repeated vertices in the manifold mesh, and determines index information of a first repeated vertex among the repeated vertices, wherein the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split;
  • the encoding end encodes the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream.
  • the first code stream further includes encoding information of first indication information, where the first indication information is used to indicate whether a non-manifold structure exists in the original grid.
  • processor 1410 is further configured to:
  • a total code stream of the original grid is obtained according to the first code stream and the second code stream.
  • processor 1410 is further configured to:
  • the second target information includes connection relationship, geometric information and attribute information.
  • the first repeated vertices include geometric repeated vertices and attribute repeated vertices
  • the geometric repeated vertices and the attribute repeated vertices share a set of non-manifold structure information, and the non-manifold structure information includes non-manifold identification information and index information; or,
  • the geometric repeated vertices correspond to a first group of non-manifold structure information
  • the attribute repeated vertices correspond to a second group of non-manifold structure information
  • the first group of non-manifold structure information and the second group of non-manifold structure information both include non-manifold identification information and index information.
  • the total bitstream of the original grid further includes:
  • the third code stream is obtained by encoding the second indication information, and the second indication information is used to indicate whether the geometric vertices and attribute vertices in the manifold mesh have the same connection relationship.
  • the total bitstream of the original grid further includes:
  • a fourth code stream is obtained by encoding third indication information of repeated vertices in the manifold mesh, wherein the third indication information is used to indicate whether geometric information and attribute information of the repeated vertices are repeatedly encoded.
  • the total bitstream of the original grid further includes:
  • a fifth code stream wherein the fifth code stream is obtained by encoding fourth indication information of vertices in the manifold mesh, wherein the fourth indication information is used to indicate whether the vertex is a repeated vertex.
  • the above device is a decoding device:
  • Processor 1410 is used to decode the first code stream to obtain decoding information, where the decoding information includes non-manifold identification information and index information of first repeated vertices, where the first repeated vertices are repeated vertices generated by splitting the non-manifold structure in the original mesh, the non-manifold identification information is used to indicate whether the repeated vertices are repeated vertices generated when the non-manifold structure is split, and the first indication information is used to indicate whether there is a non-manifold structure in the original mesh;
  • the decoding end restores the non-manifold structure in the original grid according to the decoding information.
  • the decoding information further includes first indication information, where the first indication information is used to indicate whether a non-manifold structure exists in the original grid;
  • the processor 1410 is further configured to:
  • the non-manifold structure in the original mesh is restored according to the index information of the first repeated vertices and the non-manifold identification information.
  • the second target information is obtained by decoding the stream, wherein the second target information includes connection relationship, geometric information and attribute information;
  • the non-manifold structure in the original mesh is restored according to the reconstructed manifold mesh, the index information of the first repeated vertices, and the non-manifold identification information.
  • processor 1410 is further configured to:
  • the fourth indication information is obtained by decoding the fifth code stream, and the fourth indication information is used to indicate whether the vertices in the manifold mesh are repeated vertices.
  • processor 1410 is further configured to:
  • the second code stream is decoded to obtain second target information of the manifold grid.
  • processor 1410 is further configured to:
  • the third indication information is obtained by decoding the fourth bit stream, and the third indication information is used to indicate whether the geometric information and attribute information of the repeated vertices are repeatedly encoded.
  • the first repeated vertices include geometric repeated vertices and attribute repeated vertices
  • the geometric repeated vertices and the attribute repeated vertices share a set of non-manifold structure information, and the non-manifold structure information includes non-manifold identification information and index information; or,
  • the geometric repeated vertices correspond to a first group of non-manifold structure information
  • the attribute repeated vertices correspond to a second group of non-manifold structure information
  • the first group of non-manifold structure information and the second group of non-manifold structure information both include non-manifold identification information and index information.
  • processor 1410 is further configured to:
  • the second indication information it is determined whether the geometric vertices and the attribute vertices in the manifold mesh have the same connection relationship.
  • the non-manifold structure in the original mesh is split to obtain a manifold mesh; non-manifold identification information is added to the repeated vertices in the manifold mesh, and the index information of the first repeated vertex in the repeated vertices is determined, the non-manifold identification information is used to indicate whether the repeated vertex is a repeated vertex generated when the non-manifold structure is split, and the first repeated vertex is a repeated vertex generated when the non-manifold structure is split; the encoding end encodes the non-manifold identification information and the index information of the first repeated vertex to obtain a first code stream.
  • the decoding end can restore the non-manifold structure of the original mesh based on the non-manifold identification information and the index information of the first repeated vertex obtained by decoding the first code stream, thereby achieving the purpose of lossless encoding of the original mesh.
  • the encoder When encoding a mesh containing a non-manifold structure, the encoder only adds non-manifold identifiers to repeated points in the manifold mesh instead of adding non-manifold identifiers to each vertex in the manifold mesh, thereby enabling more efficient lossless encoding of three-dimensional meshes.
  • An embodiment of the present application also provides a readable storage medium, on which a program or instruction is stored.
  • a program or instruction is stored.
  • each process of the above-mentioned encoding method or decoding method embodiment is implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.
  • the processor is the processor in the device described in the above embodiment.
  • the readable storage medium includes a computer readable storage medium, such as a computer read-only memory ROM, a random access memory RAM, a magnetic disk or an optical disk.
  • An embodiment of the present application further provides a chip, which includes a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the various processes of the above-mentioned encoding method or decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • the chip mentioned in the embodiments of the present application can also be called a system-level chip, a system chip, a chip system or a system-on-chip chip, etc.
  • the embodiments of the present application further provide a computer program/program product, which is stored in a storage medium.
  • the computer program/program product is executed by at least one processor to implement the various processes of the above-mentioned encoding method or decoding method embodiments, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • An embodiment of the present application further provides a coding and decoding system, including: a coding device or a decoding device, wherein the coding device can be used to execute the steps of the coding method described above, and the decoding device can be used to execute the steps of the decoding method described above.
  • the technical solution of the present application can be embodied in the form of a computer software product, which is stored in a storage medium (such as ROM/RAM, magnetic disk, optical disk), and includes a number of instructions for a terminal (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in each embodiment of the present application.
  • a storage medium such as ROM/RAM, magnetic disk, optical disk
  • a terminal which can be a mobile phone, computer, server, air conditioner, or network device, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种编码方法、解码方法、装置及设备,属于编解码技术领域,本申请实施例的编码方法包括:编码端对原始网格中的非流形结构进行拆分处理,得到流形网格;所述编码端对所述流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;所述编码端对所述非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。

Description

编码方法、解码方法、装置及设备
相关申请的交叉引用
本申请主张在2023年06月30日在中国提交的中国专利申请No.202310802552.3的优先权,其全部内容通过引用包含于此。
技术领域
本申请属于编解码技术领域,具体涉及一种编码方法、解码方法、装置及设备。
背景技术
随着人们对三维网格模型在视觉效果上越来越高的需求,以及许多更加成熟的三维扫描技术和三维建模软件的涌现,通过三维扫描设备或三维建模软件获取的三维网格模型的数据规模和复杂度也在急剧地增长着。因此,如何高效编码三维网格数据是实现三维网格数据方便地传输、存储和处理的关键。相关技术中,为了实现三维网格的无损编码,在对包含非流形结构的三维网格进行编码时,需要对由三维网格拆分除非流形结构后得到的流形网格中的每个顶点设置一个标识来判断其是否是由于拆分非流形结构产生的点,在流形网格中的顶点数量较多的情况下,该编码方式会造成较大的比特开销,不利于高效地实现三维网格的无损编码。
发明内容
本申请实施例提供一种编码方法、解码方法、装置及设备,能够解决如何高效地实现三维网格的无损编码的问题。
第一方面,提供了一种编码方法,包括:
编码端对原始网格中的非流形结构进行拆分处理,得到流形网格;
所述编码端对所述流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;
所述编码端对所述非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流,所述第一指示信息用于指示所述原始网格中是否存在非流形结构。
第二方面,提供了一种解码方法,包括:
解码端对第一码流进行解码,得到解码信息,所述解码信息包括非流形标识信息以及第一重复顶点的索引信息,所述第一重复顶点是对原始网格中的非流形结构进行拆分处理 产生的重复顶点,所述非流形标识信息用于指示重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点;
所述解码端根据所述解码信息,恢复原始网格中的非流形结构。
第三方面,提供了一种编码装置,包括:
第一获取模块,用于对原始网格中的非流形结构进行拆分处理,得到流形网格;
第一处理模块,用于对所述流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;
第二获取模块,用于对所述非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。
第四方面,提供了一种解码装置,包括:
第五获取模块,用于对第一码流进行解码,得到解码信息,所述解码信息包括非流形标识信息以及第一重复顶点的索引信息,所述第一重复顶点是对原始网格中的非流形结构进行拆分处理产生的重复顶点,所述非流形标识信息用于指示重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点;
第二处理模块,用于根据所述解码信息,恢复原始网格中的非流形结构。
第五方面,提供了一种编码装置,包括处理器及通信接口,其中,所述处理器用于对原始网格中的非流形结构进行拆分处理,得到流形网格;对所述流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;对所述非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。
第六方面,提供了一种解码装置,包括处理器及通信接口,其中,所述处理器用于对第一码流进行解码,得到解码信息,所述解码信息包括非流形标识信息以及第一重复顶点的索引信息,所述第一重复顶点是对原始网格中的非流形结构进行拆分处理产生的重复顶点,所述非流形标识信息用于指示重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点;根据所述解码信息,恢复原始网格中的非流形结构。
第七方面,提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面或第二方面所述的方法的步骤。
第八方面,提供了一种编解码系统,包括:编码装置及解码装置,所述编码装置可用于执行如第一方面所述的编码方法的步骤,所述解码装置可用于执行如第二方面所述的解码方法的步骤。
第九方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程 序或指令被处理器执行时实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤。
第十方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法,或实现如第二方面所述的方法。
第十一方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述计算机程序/程序产品被至少一个处理器执行以实现如第一方面所述的方法的步骤,或实现如第二方面所述的方法的步骤。
在本申请实施例中,编码端对原始网格中的非流形结构进行拆分处理,得到流形网格;对流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;编码端对非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。通过上述方案,使得解码端能够基于该第一码流解码得到的非流形标识信息和第一重复顶点的索引信息恢复出原始网格的非流形结构,从而实现了对原始网格进行无损编码的目的。由于编码端在编码包含非流形结构的网格时,只对流形网格中的重复点添加非流形标识,而并非是对流形网格中的每个顶点添加非流形标识,从而能够更高效地实现三维网格的无损编码。
附图说明
图1表示Edgebreaker编码方法的五种模式示意图;
图2表示本申请实施例的编码方法的流程示意图;
图3表示本申请实施例的三维网格无损编码框架示意图;
图4表示本申请实施例的流形网格中边与角的对应示意图;
图5表示本申请实施例中的角关系示意图;
图6表示本申请实施例中Edgebreaker编码方法的五种模式的遍历规则示意图;
图7表示本申请实施例的网格中相邻的两个三角形的示意图;
图8表示本申请实施例中预测基于三维到二维投影的UV坐标预测示意图;
图9表示本申请实施例的解码方法的流程示意图;
图10表示本申请实施例的三维网格无损解码框架示意图;
图11表示本申请实施例的编码装置的模块示意图;
图12表示本申请实施例的解码装置的模块示意图;
图13表示本申请实施例的电子设备的结构框图;
图14表示本申请实施例的编码装置或解码装置的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,本申请中的“或”表示所连接对象的至少其中之一。例如“A或B”涵盖三种方案,即,方案一:包括A且不包括B;方案二:包括B且不包括A;方案三:既包括A又包括B。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请的术语“指示”既可以是一个直接的指示(或者说显式的指示),也可以是一个间接的指示(或者说隐含的指示)。其中,直接的指示可以理解为,发送方在发送的指示中明确告知了接收方具体的信息、需要执行的操作或请求结果等内容;间接的指示可以理解为,接收方根据发送方发送的指示确定对应的信息,或者进行判断并根据判断结果确定需要执行的操作或请求结果等。
值得指出的是,本申请实施例所描述的技术不限于长期演进型(Long Term Evolution,LTE)/LTE的演进(LTE-Advanced,LTE-A)系统,还可用于其他无线通信系统,诸如码分多址(Code Division Multiple Access,CDMA)、时分多址(Time Division Multiple Access,TDMA)、频分多址(Frequency Division Multiple Access,FDMA)、正交频分多址(Orthogonal Frequency Division Multiple Access,OFDMA)、单载波频分多址(Single-carrier Frequency-Division Multiple Access,SC-FDMA)或其他系统。本申请实施例中的术语“系统”和“网络”常被可互换地使用,所描述的技术既可用于以上提及的系统和无线电技术,也可用于其他系统和无线电技术。以下描述出于示例目的描述了新空口(New Radio,NR)系统,并且在以下大部分描述中使用NR术语,但是这些技术也可应用于NR系统以外的系统,如第6代(6th Generation,6G)通信系统。
为使本领域技术人员能够更好地理解本申请实施例,首先进行如下说明。
随着多媒体技术的迅速发展,相关研究成果迅速产业化,并成为人们生活中不可或缺的重要组成部分。三维模型成为继音频、图像、视频之后的新一代数字化媒体。三维网格和点云是两种常用的三维模型表示方式。三维网格模型与传统的图像、视频等多媒体相比具有更强的交互性和逼真性的特点,使其在商业、制造业、建筑业、教育、医学、娱乐、艺术、军事等各个领域都得到了越来越广泛的应用。
而随着人们对三维网格模型在视觉效果上越来越高的需求,以及许多更加成熟的三维扫描技术和三维建模软件的涌现,通过三维扫描设备或三维建模软件获取的三维网格模型的数据规模和复杂度也在急剧地增长着。因此,如何高效压缩三维网格数据是实现三维网 格数据方便地传输、存储和处理的关键。
一个三维网格往往同时包含了拓扑信息、几何信息及属性信息三种主要信息。拓扑信息,也叫做连接性关系信息,用于描述网格中顶点和面片等元素之间的连接关系;几何信息是网格中所有顶点的三维坐标;属性信息则记录了附着在网格上的其它信息,比如法向量、纹理坐标(即UV坐标)以及颜色等。对三维网格数据的压缩往往就是针对这三种信息分别按照其数据特性进行压缩。另外,对于带有纹理图的三维网格,还需要对纹理图进行压缩。
Draco是一个用于压缩和解压缩三维(3-Dimensional,3D)几何网格和点云的库,旨在改善3D图形的存储和传输,大幅加速3D数据的编码、传输和解码。Draco支持对三维网格几何信息、连接信息以及属性信息的压缩。Draco支持有损模式和近无损模式。此外,Draco编码连接关系时使用的Edgebreaker压缩方法是目前编码三维网格连接信息最高效的方法之一。
但是Edgebreaker要求待编码网格为流形结构,对于存在非流形结构的网格,Draco必须要将其拆分成流形结构才能正确地编码。然而,Draco在解码端不会对拆分出的结构进行合并,这就使得解码端输出的网格相比于编码端输入的原始网格会多出拆分出的点。这会导致Draco不能无损编码这类存在非流形结构的网格。
视频图像邻域的国际标准组织动态图像专家组(Moving Pictures Experts Group,MPEG)正在制定新的动态三维网格压缩标准(基于视频的动态三维网格编码,Video-based Dynamic Mesh Coding,V-DMC),目前在编码静态三维网格时也选择采用基于Edgebreaker的方案且暂时复用了Draco编解码器。同时MPEG也在尝试实现由MPEG提供的基于Edgebreaker的三维网格编解码器,以实现对三维网格几何信息、连接信息以及属性信息的压缩。由于Edgebreaker要求待编码网格为流形结构,因此在目前提出的方案中会对存在非流形结构的三维网格拆分成流形结构再进行编码。因此针对无损模式,MPEG提供的基于Edgebreaker的三维网格编解码器实现在编码端会记录并编码由于拆非流形而产生的重复点索引信息,并对拆开后的流形网格的每个顶点添加一个标识来表示其是否是由于拆非流形而产生的重复点,从而在解码端依据该标识和由于拆非流形而产生的重复点索引信息恢复原始三维网格的非流形结构以实现三维网格的无损编码。由于拆除非流形结构是通过增加具有相同几何信息和属性信息的重复点实现的,在解码出的三维网格中只有在重复点中才有可能是由于拆非流形而新增的点,如果对每个顶点都设置一个标识来判断其是否是由于拆非流形产生的点会造成一定的编码冗余。
上述两种方案都是基于Edgebreaker实现的三维网格压缩方案,且都存在需要拆分输入网格中可能存在的非流形结构的问题。而针对无损压缩,需要在解码端恢复原始三维网格可能存在的非流形结构。因此,提出一种新的基于Edgebreaker的能实现非流形三维网格的无损编码方法,对能更高效地实现非流形网格的无损编码具有重要意义。
MPEG目前提供的基于Edgebreaker的三维网格压缩工具将三维网格的连接信息、几何 信息和属性信息分别进行编码并进行存储。其中的核心模块,即编码连接信息的模块使用了Edgebreaker算法。对几何信息和属性信息的编码则采用了常规的压缩方法,即对数据进行量化、预测压缩(例如:平行四边形预测)和熵编码。由于该工具采用了连接关系驱动的编码方法,对几何信息和属性信息的编码将遵循连接信息的编码顺序。通过这种方式将连接关系编码的顶点顺序隐含在几何信息的顶点顺序中来避免单独传输连接关系编码的顶点顺序,从而节省了这部分的比特开销。
Edgebreaker方法是具有压缩性能好、便于实现、可以给出压缩比上限等优点的一种三维网格连接关系编码方法。Edgebreaker方法本身只描述了三维网格连接信息的压缩方法,还要通过几何信息压缩和熵编码等才能实现对三维网格的压缩。
Edgebreaker编码技术对与球体同胚的三角形网格的压缩效率能够达到每个三角形2位或更少。编码算法使用五种不同的模式(称为C、L、E、R和S)以深度优先顺序访问网格的每个三角形。根据每个三角形所处的模式,对其进行标记,生成CLERS字符串,得到对网格连接关系的紧凑表示。
Edgebreaker方法的五种模式,如图1所示。Edgebreaker方法将网格分为已遍历部分和未遍历部分,两部分的边界被称为活动边界。在Edgebreaker的编码过程中,通过活动边界上的活动边访问待遍历的三角形,并根据活动边与其所处三角形的关系来选择使用哪种模式。将活动边所在三角形中的另一个顶点称为第三个顶点。如果第三个顶点不处于活动边界上,那么当前三角形标记为C模式。如果第三个顶点处于活动边界上,并且按照逆时针顺序,处于当前活动边顶点的下一个,那么当前三角形标记为R模式。如果第三个顶点处于活动边界上,并且按照逆时针顺序,处于当前活动边顶点的上一个,那么当前三角形标记为L模式。如果第三个顶点处于活动边界上,并且按照逆时针顺序,既是当前活动边顶点的上一个顶点,又是当前活动边的下一个顶点,那么当前三角形标记为E模式。如果第三个顶点处于活动边界上,但是按照逆时针顺序,既不是当前活动边顶点的上一个顶点,又不是当前活动边的下一个顶点,那么当前三角形标记为S模式。
在每次标记一个三角形之后,都会更新活动边界,并按照一定规则选择下一个活动边。当遍历完所有的三角形之后,对得到的CLERS字符串进行熵编码,可以得到更高的压缩效率。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的编码方法进行详细地说明。
如图2所示,本申请实施例提供了一种编码方法,包括:
步骤201:编码端对原始网格中的非流形结构进行拆分处理,得到流形网格。
可选地,所述原始网格为三维网格。该原始网格可以理解为任意视频帧对应的三维网格。
本申请实施例中的非流形结构包括非流形边和非流形点中的至少一项。
上述非流形边是指网格中同时存在于至少三个三角形中的边。
上述非流形点可通过以下方式确定:
首先构建角表(Corner Table),建立原始网格中每个顶点和该顶点的角之间的对应关系。从顶点对应的某一个角开始,依次遍历与该角相邻且构成一个扇形的所有角,将顶点和遍历到的角标记为已遍历。如果在执行完上述过程后,有顶点仍存在未遍历过的角,则说明该顶点为非流形点。
可选地,本申请实施例中,如果网格的每个边最多被两个面片共用,且不存在非流形点,那么这个网格就是流形网格(manifold mesh),否则称为非流形网格(non-manifold mesh)。
本步骤中,通过将原始网格拆分为流形网格,以便于后续基于相关技术中的编码方案进行编码,例如,采用基于Edgebreaker的三维网格编码器进行编码。
步骤202:所述编码端对所述流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点。
上述重复顶点包括所述第一重复顶点和第二重复顶点。所述第二重复顶点为对所述非流形结构进行拆分处理之前所述原始网格中的重复顶点。
本申请实施例中,通过非流形标识信息来指示流形网格中的重复顶点(即重复点)是否为对所述非流形结构进行拆分处理时产生的重复顶点,例如,该非流形标识信息为1时,表示重复顶点是对所述非流形结构进行拆分处理时产生的重复顶点,该非流形标识信息为0时,表示重复顶点不是对所述非流形结构进行拆分处理时产生的重复顶点。
步骤203:所述编码端对所述非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流
由于拆分非流形结构是通过增加具有相同几何信息和属性信息的重复点实现的,因此,流形网格中包含两种重复点:一种是原始输入网格本身存在的重复点(即本申请中的第二重复顶点),一种是由于拆非流形结构而新产生的重复点(即上述第一重复顶点)。在原始网格中存在非流形结构的情况下,需要对上述两种重复点的非流形标识信息以及第一重复点的索引信息进行编码,以便于解码端根据该非流形标识信息和索引信息,将由于拆分非流形结构而产生的重复顶点进行合并,并调整连接关系,从而恢复原始网格中的非流形结构,实现含有非流形结构的三维网格的无损编码。
在本申请实施例中,编码端对原始网格中的非流形结构进行拆分处理,得到流形网格;对流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;编码端对非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。通过上述方案,使得解码端能够基于该第一码流解码得到的非流形标识信息和第一重复顶点的索引信息恢复出原始网格的非流形结构,从而实现了对原始网格进行无损编码 的目的。由于编码端在编码包含非流形结构的网格时,只对流形网格中的重复点添加非流形标识,而并非是对流形网格中的每个顶点添加非流形标识,从而能够更高效地实现三维网格的无损编码。
可选地,所述第一码流还包括第一指示信息的编码信息,所述第一指示信息用于指示所述原始网格中是否存在非流形结构。
可选地,本申请实施例的方法还包括:
所述编码端对所述流形网格进行编码,得到第二码流。
所述编码端根据所述第一码流和所述第二码流,得到所述原始网格的总码流。
本申请实施例中,解码端在恢复非流形结构时,除了需要所述非流形标识信息以及所述第一重复顶点的索引信息外,还需要上述流形网格,通过对流形网格进行编码使得解码端根据该流形网格、所述非流形标识信息以及所述第一重复顶点的索引信息,能够恢复出非流形结构。
可选地,所述编码端对所述流形网格进行编码,得到第二码流,包括:
所述编码端对所述流形网格的第二目标信息进行编码,得到所述第二码流;
其中,所述第二目标信息包括连接关系、几何信息以及属性信息。
可选地,所述属性信息包括UV坐标,即纹理坐标。UV坐标是一种描述三维网格顶点纹理的信息。
在本申请的实施例中,可以使用Edgebreaker方法编码连接关系,得到可以简洁表示连接关系的CLERS模式字符串,使用熵编码对模式字符串进行压缩,得到连接关系子码流(也可描述为连接关系码流);使用如平行四边形预测等方法编码网格的几何信息,得几何信息子码流(也可描述为几何信息码流);使用如相似三角形预测等方法编码网格的属性信息中的UV坐标,得到属性信息子码流(也可描述为属性信息码流)。基于连接关系子码流、几何信息子码流以及属性信息子码流,得到上述第二码流。
可选地,所述确定所述重复顶点中的第一重复顶点的索引信息,包括:
根据所述流形网格中几何信息和属性信息中至少一项的编码顺序,确定所述第一重复顶点的索引信息。
上述第一重复顶点包括几何重复顶点和属性重复顶点,在所述流形网格中的几何顶点和所述属性顶点具有相同的连接关系的情况下,可根据编码几何信息或属性信息的编码顺序得到第一重复顶点的索引信息,若所述流形网格中的几何顶点和所述属性顶点具有不同的连接关系的情况下,可根据几何信息的编码顺序得到第一重复顶点中的几何重复顶点的索引信息,并根据属性信息的编码顺序得到第一重复顶点中的属性重复顶点的索引信息。
可选地,所述第一重复顶点包括几何重复顶点和属性重复顶点;
在所述流形网格中的几何顶点和所述属性顶点具有相同的连接关系的情况下,所述几何重复顶点和所述属性重复顶点共用一组非流形结构信息,所述非流形结构信息包括非流形标识信息和索引信息;或,
在所述流形网格中的几何顶点和所述属性顶点具有不同的连接关系的情况下,所述几何重复顶点对应第一组非流形结构信息,且所述属性重复顶点对应第二组非流形结构信息,所述第一组非流形结构信息和所述第二组非流形结构信息均包括非流形标识信息和索引信息。
本申请实施例中,流形网格中的几何顶点和所述属性顶点具有相同的连接关系是指流形网格中的几何顶点和属性顶点一一对应。流形网格中的几何顶点和所述属性顶点具有不同的连接关系是指流形网格中的几何顶点和属性顶点不是一一对应。
需要说明的是,本申请实施例中的属性顶点也可举例描述为UV顶点。
可选地,所述原始网格的总码流还包括:
第三码流,所述第三码流是对第二指示信息进行编码得到的,所述第二指示信息用于指示所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系。
这里,通过对上述第二指示信息进行编码,以便于解码端能够获知获取一组非流形结构信息还是获取两组非流形结构信息。
可选地,所述原始网格的总码流还包括:
第四码流,所述第四码流是对所述流形网格中的重复顶点的第三指示信息进行编码得到的,所述第三指示信息用于指示是否对所述重复顶点的几何信息和属性信息进行了重复编码。
本申请实施例中,通过对第三指示信息进行编码,使得解码端能够获知是否对重复顶点的几何信息和属性信息进行重复/多次编码,以便于解码端能够解码获取相应的重复顶点。
可选地,在所述编码端对所述连接关系、几何信息以及属性信息同时进行编码的情况下,所述原始网格的总码流还包括:
第五码流,所述第五码流是对所述流形网格中顶点的第四指示信息进行编码得到的,所述第四指示信息用于指示所述顶点是否为重复顶点。
这里,对所述连接关系、几何信息以及属性信息同时进行编码是指在进行编码时,三者的编码顺序不分先后,同时进行编码。
这里,通过对上述第四指示信息进行编码,使得解码端能够在解码过程中判断哪些是重复顶点,从而再依据重复顶点的非流形标识判断出哪些是由于拆分非流形结构而产生的重复顶点。
可选地,所述原始网格的总码流还包括:
第六码流,所述第六码流是对所述原始网格的纹理图信息进行编码得到的。
本申请实施例中,可用视频编码器编码纹理图信息,得到第六码流,即纹理图子码流(也可描述为纹理图码流)。
本申请实施例中的三维网格编码框架,如图3所示,在预处理步骤中,首先查找并记录原始网格的重复点(即第二重复点),并对存在非流形结构的原始网格进行拆分以得到流形网格,记录因拆非流形结构而产生的重复点(即第一重复点);然后,对流形网格,使用 Edgebreaker方法编码连接信息,得到模式字符串,并对其进行熵编码;编码流形网格的几何信息,例如可以使用平行四边形预测编码方法,此处不限制几何信息的编码方法;如果网格存在UV坐标等属性信息,可以使用如相似三角形预测编码等方法进行编码,此处不限制属性信息的编码方法;编码非流形结构信息时,首先编码网格中是否存在非流形结构的指示信息。如果网格中存在非流形结构,则进一步按照顶点的编码顺序编码重复点的非流形标识信息和拆非流形结构而产生的重复点的索引信息。此处关于重复点的非流形标识信息,是通过为拆分后的流形网格中的每个重复顶点编码一个标志位,来标识该重复点是否是拆非流形结构而产生的。最后,将多路码流进行混流,得到最终输出码流(即总码流)。
下面对编码处理的具体实现方式说明如下:
如图3所示,本申请的三维网格无损编码框架主要分为五部分:预处理中的拆分非流形结构、连接关系编码、几何信息编码、属性信息编码以及非流形结构信息编码。下面分别进行介绍:
1)预处理中的拆分非流形结构;
输入:原始网格;
输出:流形网格和重复点(包含原始网格中的重复点和拆非流形结构而产生的重复点);
在预处理步骤也可以包含滤除重复点,添加虚拟点等其它编码所需的预处理模块。为方便说明,图3中仅列出了本申请针对的拆分非流形结构的模块。
在拆除非流形结构前,首先查找并记录原始输入网格中的重复点,例如可以使用哈希表等方法进行查找。以哈希表为例,建立一个哈希表,哈希表的键为顶点的三维坐标,值为具有该三维坐标的顶点的出现次数,出现次数大于1则说明是重复点,以此来查找判断和记录原始网格中的重复点。
拆分非流形结构主要分为两部分:拆分非流形边和拆分非流形点。
拆分非流形边的第一步是找到非流形边。非流形边的判断条件是一条边同时存在于三个或更多的三角形中。具体实现的方法:可以建立一个数据结构来存储每条边所在的三角形,通过查询该边对应的三角形数量找出非流形边;也可以通过构造Corner Table来建立网格中角和边之间的对应关系,进而找出非流形边。具体地,对于流形网格,每条边最多与两个角相对,相对的两个角称为对角。如图4所示,角a与角d与边bc相对,角a与角d为对角;而对于非流形边,会有三个或更多的对角。因此,通过角与边的对应关系也可以找出非流形边。
拆分非流形边的第二步是添加顶点,并修改连接关系。在找到非流形边后,为非流形边的两个顶点分别创建重复顶点,选择非流形边所在的一个三角形t,使该三角形中的第三个顶点与新添加的两个顶点构成新的三角形t’,用t’替换原三角形t,迭代此过程直到非流形边转化成流形边。
拆分非流形点首先需要构建Corner Table,建立每个顶点和该顶点的角之间的对应关系。对于每一个顶点执行两步操作。第一步,从顶点的某一个角开始,依次遍历与该角相邻且 构成一个扇形的所有角,将顶点和遍历到的角标记为已遍历。如果在执行完上述过程后,有顶点仍存在未遍历过角,则说明该顶点为非流形点。第二步,对于每个非流形点,创建一个重复点,并修改连接关系,将第一步中未遍历到的角连接到新添加的重复点,将非流形点拆分为两个流形顶点。重复这一过程,直到所有的顶点都转换成流形点为止。
在上述过程中,需记录下在拆非流形结构时产生的重复点。
2)连接关系编码;
输入:流形网格的连接关系;
输出:编码后的连接关系子码流和顶点编码顺序;
本申请使用Edgebreaker方法编码三维网格的连接关系,通过建立Corner Table来表示网格的连接关系,并利用CornerTable遍历网格中的所有三角形,生成Edgebreaker的CLERS模式字符串。
Corner Table用于表示网格中的角与顶点以及三角形之间的关系。在构建Corner Table之前首先需要对角进行编号,按照网格中三角形面片的顺序遍历三角形,对于每个三角形按照逆时针顺序为角进行编号,如果网格有f个三角形面片,那么网格会有3f个角。这样编号的好处是,通过角的序号,可以计算出当前角所在的三角形序号,如公式1所示;还可以计算出按照逆时针方向,当前角c的前一个角c_p和后一个角c_n的序号,如公式2和公式3所示。
fi=c/3                               (1)
其中,c为当前角的索引,fi为当前角c所在三角形的序号,“/”为整数除法,对所得结果向下取整。
cp=(fi*3)+(c-1)%3                      (2)
其中,c为当前角的索引,fi为当前角c所在三角形的序号,“*”为乘法,“%”为取模运算。
cp=(fi*3)+(c+1)%3                     (3)
其中,c为当前角的索引,fi为当前角c所在三角形的序号,“*”为乘法,“%”为取模运算。
Corner Table包含四部分:分别是V表、O表、U表以及M表。其中,V表存储每个角对应的顶点索引,O表存储每个角的对角索引,U表存储在遍历过程中每个三角形是否被遍历过的标识,M表存储在遍历过程中每个顶点是否被遍历过的标识。
利用Corner Table可以构造如图5所示的关系,其中c表示当前角,c.p表示当前角c的前一个角(按逆时针方向),c.n表示当前角c的下一个角。c.o为当前角c的对角,可以查询O表得到。c.t为c所在三角形的序号,可以由公式1计算得到。c.v表示当前角的顶点,可以查询V表得到。c.l表示当前角c左边的角,通过查询O表中c.p的对角得到;c.r表示当前角c右边的角,通过查询O表中c.n的对角得到。
利用Corner Table构建起角与顶点及三角形之间的关系后,可以按照螺旋形顺序遍历网 格,得到表示网格连接关系的Edgebreaker的CLERS模式字符串。此时,五种模式的判断条件以及遍历规则如图6所示。当前遍历的角为x,如果x所对应的顶点x.v没有被访问过,那么当前的三角形为C模式,并且下一个待遍历的三角形为x.r所在的三角形;否则,如果x.l所在的三角形被访问过,那么当前的三角形为L模式,并且下一个待遍历的三角形为x.r所在的三角形;如果x.r所在的三角形被访问过,那么当前的三角形为R模式,并且下一个待遍历的三角形为x.l所在的三角形;如果顶点x.v被访问过,而x.l与x.r所在的三角形都没有被访问过,那么当前三角形为S模式,此时遍历路径会产生两个分支,采用深度优先遍历的原则,首先遍历的三角形为x.r所在的三角形,并且要将x.l所在的三角形存入堆栈,等待x.r所在的分支遍历完成后,再遍历x.l所在的三角形;如果x.l与x.r所在的三角形都被访问过,那么当前三角形的模式为E,此时遍历到了当前遍历路径分支的终点。
在网格中随机选择一个初始三角形,按照上述规则遍历网格中的三角形,并生成CLERS模式字符串。当遍历路径终结,但网格仍存在为遍历到的三角形时,随机选择一个未遍历的三角形,开始下一次遍历,直到网格中所有的三角形都被遍历过为止。
使用熵编码对CLERS模式字符串进行压缩,得到最终的连接信息码流。
3)几何信息编码;
输入:流形网格的几何信息和连接关系编码顺序;
输出:几何信息子码流以及几何信息编码顺序;
编码几何信息可以采用多种方法,如差值预测编码算法、平行四边形预测编码算法、多平行四边形预测编码算法等,此处不强调具体的编码方法。以平行四边形预测编码算法为例:设有a、b、c、d四个顶点,构成如图7所示的网格中相邻的两个三角形。
其中a、b、c点的几何信息已编码,d点的几何信息待编码,那么可以使用公式4计算出d点几何坐标的预测值d’。
d′(x,y,z)=b(x,y,z)+c(x,y,z)-a(x,y,z)               (4)
得到d’后,通过公式5计算d’与d点三维坐标的差值Δd:
Δd(x,y,z)=d(x,y,z)-d′(x,y,z)                   (5)
对Δd进行熵编码得到几何信息的码流。
对于无法使用平行四边形预测的三角形,比如处于网格边界的三角形,使用差值编码方法编码几何信息。即使用相邻已编码顶点的坐标值,作为当前顶点坐标的预测值,计算并预测残差。
4)属性信息编码;
输入:流形网格的属性信息和连接关系编码顺序;
输出:属性信息子码流以及属性信息的编码顺序;
三维网格属性信息一般包括UV坐标、法向量等,以UV坐标为例。UV坐标可以采用的编码方法有很多种,包括差值预测编码、平行四边形预测编码以及相似三角形预测编码等,此处不强调具体的编码方法。下面描述相似三角形预测算法。
首先选取一个三维网格中的三角形作为初始三角形,对初始三角形的三个顶点不进行预测直接编码UV坐标,并且把初始三角形的边存入边集合中,这个集合可以是满足一定存取准则的数据结构。之后取出一个集合中的边τ,预测下一个新三角形中τ的对顶点UV坐标。并且将新三角形中除τ之外的两边放入集合内。记待预测点为点C,边τ两端点分别为N,P,通过τ与新三角形相邻的三角形对顶点为O,C在τ上的投影点X。如图8所示,由于点N,P,O三点的UV坐标都先于C点编码,因此可以利用这三点预测C点的UV坐标。具体计算流程如下:
设Cuv,Xuv,Nuv,Puv,Ouv分别为各点的UV坐标CG,XG,NG,PG,OG为各点的几何坐标。
首先计算点X的UV坐标:

其中,分别为相应各点间的几何坐标的向量表示,例如,表示点N和点P间的几何坐标的向量表示,表示点N和点C间的几何坐标的向量表示,表示点N和点X间的几何坐标的向量表示,表示点X和点C间的几何坐标的向量表示;
分别为相应各点间的UV坐标的向量表示,例如,表示点N和点X间的UV坐标的向量表示,表示点X和点C间的UV坐标的向量表示。
计算向量,Rotated()表示对向量进行90度翻转:
最后计算C点预测UV坐标PredC


其中,均表示C点和O点间的UV坐标的向量,但为不同取值的表示形式。
得到UV坐标预测值之后,再与原始UV坐标相减得到残差值。
编码UV坐标步骤如下:
(1)从连接性关系中选取一个初始三角形,不进行预测直接编码初始三角形三个顶点的UV坐标。将初始三角形边存入边集合中。
(2)按照存取准则从集合中选取边τ,编码与τ组成的新三角形对顶点的UV坐标。利用三角形三维到二维的投影关系,依据以上所述的UV坐标预测值计算过程计算待编码点的预测值。将UV坐标原始值减去预测值得到残差。
(3)将新三角形的两条边加入边集合中,移除集合顶部的边τ。从集合中取出下一条边,继续编码该边邻接三角形的对顶点UV坐标,返回步骤(3),直到所有顶点的UV坐标编码完成。
熵编码UV坐标残差,输出UV坐标码流。
5)非流形结构信息编码;
输入:表示网格中是否存在非流形结构的信息、重复点的非流形标识、拆非流形而产生的重复点的索引信息、几何信息编码顺序、属性信息编码顺序;
输出:非流形结构信息子码流;
首先,编码表示网格中是否存在非流形结构的信息(即第一指示信息),其可以通过设置一个网格中是否存在非流形结构的标识来表示,也可以使用网格中由于拆非流形结构而产生的重复点的数量表示,此处不限制其表示方法。以设置是否存在非流形结构的标识为例:如果网格中不存在非流形结构,即拆非流形而产生的重复点数量为0,将标识置0,不需要再编码重复点的非流形标识和拆非流形而产生的重复点(即第一重复顶点)的索引信息;如果网格中存在非流形结构,即因拆非流形而产生的重复点数量大于0,将标识置1,然后编码重复点的非流形标识和拆非流形而产生的重复点索引信息。
因拆非流形而产生的重复点包括几何重复点和属性重复点两部分。若考虑几何顶点和属性顶点(如UV顶点)是否具有相同连接关系的情况,则分为两种情况:第一种情况是网格中几何顶点和属性顶点具有相同的连接关系时,则直接编码一组重复点的非流形标识和拆非流形而产生的重复点的索引信息,索引信息可以根据编码端几何信息和属性信息的编码顺序得到;第二种情况是网格中几何顶点和属性顶点具有不同的连接关系时,则编码两组重复点的非流形标识和拆非流形而产生的重复点索引信息,索引信息可以分别根据编码端的几何信息编码顺序和属性信息编码顺序得到。对于拆非流形结构产生的重复点的索引信息的表示方式,可以是恢复非流形结构时需要合并到的目标顶点索引,也可以是重复点组索引:具有相同索引的点属于同一个重复点组即具有相同的顶点信息,此处不限制其表示方式。
具体实现是:对流形网格中的每个重复顶点设置一个标志位,用于表示当前位置的点是否是由于拆非流形而产生的重复点,并记录由于拆非流形而产生的重复点的索引信息;然后对按照相应的编码顺序排列标志位得到二进制字符串序列和拆非流形结构而产生的重复点的索引信息进行熵编码,得到非流形结构信息码流。
非流形结构信息码流在总码流中可以有多种存放方式:一种是将非流形结构信息码流作为单独的一路子码流;另一种是将几何非流形结构信息的码流存放到几何信息子码流中,将属性非流形结构信息的码流存放到属性信息子码流中;还可以将几何非流形结构信息的码流和属性非流形结构信息的码流作为两路子码流存放到总码流中。此处不强调非流形结构信息码流在总码流中的存放方式。
需要说明的是,在编码顶点的几何信息和属性信息时,重复点的几何信息和属性信息可以跳过编码即只编码一次,也可以不跳过编码,此处不强调是否跳过重复点的几何信息和属性信息的编码。但若跳过重复点几何信息和属性信息的编码,则需要传输额外的信息表示顶点的几何信息和属性信息是否被跳过,否则无法解码出被跳过编码顶点的几何信息 和属性信息,也就无法在解码端查找得到重复点。具体地,可以每个顶点设置一个标识表示其几何信息和属性信息是否跳过编码,此处不限制其表示方式。
本申请实施例中不限制三维网格连接关系编码和顶点信息编码的先后顺序,可以是在编码连接关系的同时,编码几何信息、属性信息和非流形结构信息;也可以是在编码完连接关系后,再依次根据连接关系的编码顺序编码几何信息、属性信息和非流形结构信息。但若是在编码连接关系的同时,编码几何信息、属性信息和非流形结构信息的情况,则需要增加表示顶点是否是重复点的信息,以在解码过程中能判断哪些是重复点,从而再依据重复点的非流形标识判断出哪些是由于拆非流形而产生的重复点。对于表示顶点是否是重复点的信息,可以是每个顶点设置一个重复点标识表示顶点是否是重复点,此处不限制其表示方式。
若考虑几何顶点和UV顶点是否具有相同连接关系的情况,还需编码表示几何顶点和UV顶点是否具有相同连接关系的信息。对于该信息的表示方式,可以是设置一个标识表示几何顶点和UV顶点是否具有相同连接关系,此处不限制其表示方式。
本申请实施例的上述方案,编码端对原始网格中的非流形结构进行拆分处理,得到流形网格;对流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;编码端对非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。通过上述方案,使得解码端能够基于该第一码流解码得到的非流形标识信息和第一重复顶点的索引信息恢复出原始网格的非流形结构,从而实现了对原始网格进行无损编码的目的。由于编码端在编码包含非流形结构的网格时,只对流形网格中的重复点添加非流形标识,而并非是对流形网格中的每个顶点添加非流形标识,从而能够更高效地实现三维网格的无损编码。
如图9所示,本申请实施例还提供了一种解码方法,包括:
步骤901:解码端对第一码流进行解码,得到解码信息,所述解码信息包括非流形标识信息以及第一重复顶点的索引信息,所述第一重复顶点是对原始网格中的非流形结构进行拆分处理产生的重复顶点,所述非流形标识信息用于指示重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点。
步骤902:所述解码端根据所述解码信息,恢复原始网格中的非流形结构。
本申请实施例中,解码端对第一码流进行解码,得到非流形标识信息以及第一重复顶点的索引信息;根据所述第一重复顶点的索引信息以及所述非流形标识信息,恢复原始网格中的非流形结构。该方案中,能够基于该第一码流解码得到的非流形标识信息和第一重复顶点的索引信息恢复出原始网格的非流形结构,从而实现了对原始网格进行无损编码的目的。由于只对流形网格中的重复点添加非流形标识,而并非是对流形网格中的每个顶点添加非流形标识,从而能够更高效地实现三维网格的无损编解码。
可选地,所述解码信息还包括第一指示信息,所述第一指示信息用于指示所述原始网格中是否存在非流形结构;
所述解码端根据所述解码信息,恢复原始网格中的非流形结构,包括:
在所述第一指示信息指示原始网格中存在非流形结构的情况下,根据所述第一重复顶点的索引信息以及非流形标识信息,恢复原始网格中的非流形结构。
可选地,根据所述第一重复顶点的索引信息以及所述非流形标识信息,恢复原始网格中的非流形结构,包括:
根据流形网格的第二目标信息,重建流形网格,其中,所述第二目标信息是对第二码流进行解码得到的,所述第二目标信息包括连接关系、几何信息以及属性信息;
根据重建的所述流形网格、所述第一重复顶点的索引信息以及所述非流形标识信息,恢复所述原始网格中的非流形结构。
本申请实施例中,解码端对第二码流进行解码,得到流形网格的第二目标信息。例如,熵解码得到CLERS模式字符串,使用模式字符串重建连接关系。使用平行四边形反预测等方法解码网格的几何信息,使用相似三角形反预测等方法解码网格属性信息中的UV坐标。在解码非流形结构信息时,首先解码表示网格中是否存在非流形结构的信息(即第一指示信息)。如果网格中存在非流形结构,则进一步解码得到重复点的非流形标识信息和由拆非流形结构而产生的重复点的索引信息,将由于拆非流形结构而产生的重复点合并,并调整连接关系,进而恢复网格中的非流形结构,实现了含有非流形结构网格的无损编解码。
可选地,根据重建的所述流形网格、所述第一重复顶点的索引信息以及所述非流形标识信息,恢复所述原始网格中的非流形结构,包括:
根据重建的所述流形网格、所述第一重复顶点的索引信息、所述非流形标识信息以及第四指示信息,恢复所述原始网格中的非流形结构;
其中,所述第四指示信息是对第五码流进行解码得到的,所述第四指示信息用于指示流形网格中的顶点是否为重复顶点。
这里,解码端通过解码得到的第四指示信息能够在流形网格的几何信息、属性信息和连接关系同时编码的情况下,判断哪些是重复顶点,从而再依据重复顶点的非流形标识判断出哪些是由于拆分非流形结构而产生的重复顶点。
可选地,所述解码端对第二码流进行解码,获取所述流形网格的第二目标信息,包括:
根据流形网格中重复顶点的第三指示信息,对第二码流进行解码,获取所述流形网格的几何信息和属性信息;
其中,所述第三指示信息是对第四码流进行解码得到的,所述第三指示信息用于指示是否对所述重复顶点的几何信息和属性信息进行了重复编码。
本申请实施例中,解码端通过解码得到的第三指示信息能够获知是否对重复顶点的几何信息和属性信息进行重复/多次编码,以便于解码端能够解码获取相应的重复顶点。
可选地,所述第一重复顶点包括几何重复顶点和属性重复顶点;
在所述流形网格中的几何顶点和所述属性顶点具有相同的连接关系的情况下,所述几何重复顶点和所述属性重复顶点共用一组非流形结构信息,所述非流形结构信息包括非流形标识信息和索引信息;或,
在所述流形网格中的几何顶点和所述属性顶点具有不同的连接关系的情况下,所述几何重复顶点对应第一组非流形结构信息,且所述属性重复顶点对应第二组非流形结构信息,所述第一组非流形结构信息和所述第二组非流形结构信息均包括非流形标识信息和索引信息。
本申请实施例中,流形网格中的几何顶点和所述属性顶点具有相同的连接关系是指流形网格中的几何顶点和属性顶点一一对应。流形网格中的几何顶点和所述属性顶点具有不同的连接关系是指流形网格中的几何顶点和属性顶点不是一一对应。
可选地,本申请实施例的方法,还包括:
对第三码流进行解码,获取第二指示信息,所述第二指示信息用于指示所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系;
根据所述第二指示信息,确定所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系。
可选地,本申请实施例的方法,还包括:
对第六码流进行解码,获取所述原始网格的纹理图信息。
本申请实施例中的三维网格解码框架如图10所示。熵解码连接关系子码流,得到模式字符串,并重建连接关系;使用与编码端相对应的解码方法解码网格的几何信息;使用与编码端相对应的解码方法解码网格的属性信息;在解码非流形结构信息时,首先解码网格中是否存在非流形结构的信息(即第一指示信息),如果网格中存在非流形结构,则进一步解码得到重复点的非流形标识和拆非流形而产生的重复点索引信息。(注:此处也不强调三维网格连接关系解码和顶点信息解码的先后顺序,与编码端方式保持对应即可)在后处理的恢复非流形结构时中,会将由于拆非流形而产生的重复点进行合并,并调整连接关系,恢复网格中的非流形结构。完成含有非流形结构网格的无损编解码。注意,后处理步骤中也可以包含恢复滤除的重复点、删除添加的虚拟顶点等正确解码所需的后处理模块。为方便说明,图10中仅列出了本申请所针对的恢复非流形结构的模块。
下面对解码处理的具体实现方式说明如下:
如图10所示,本申请的三维网格无损解码框架主要分为六部分:连接关系解码、几何信息解码、属性信息解码、非流形结构信息解码、重建流形网格以及后处理中的恢复非流形结构。下面分别进行介绍:
1)连接关系解码:
输入:待解码的连接关系子码流;
输出:流形网格的连接关系和解码的顶点顺序;
先对连接关系子码流进行解码得到模式字符串。按照某种顺序(正序或逆序)遍历模 式字符串,根据字符串中相对应的模式来重建连接关系。此外,将顶点的遍历顺序输出至几何信息和属性信息解码模块。
2)几何信息解码:
输入:几何信息子码流、连接关系的解码顺序;
输出:流形网格的几何信息。
网格几何坐标的解码过程是编码过程的逆过程:先熵解码出坐标预测残差。再根据已解码三角形按照平行四边形法则预测出待解码点的预测坐标。将预测坐标加上熵解码出的残差值即可得到待解码的几何坐标位置。这里的顶点遍历顺序与编码几何信息的顶点顺序相同。注意,初始三角形的几何坐标不使用预测编码,而是直接编码它们的几何坐标值。在解码端解码出该三角形的几何坐标后作为初始三角形开始遍历解码其他三角形顶点的几何坐标。另外,此处还可能使用其他解码方法,不强调具体的解码方法,只要与编码端对应即可。
3)属性信息解码:
输入:待解码的属性信息码流、连接关系的解码顺序;
输出:流形网格重建的属性信息。
以UV坐标为例,UV坐标与编码端对应的解码方法,此处不强调具体的解码方法。下面描述使用相似三角形预测算法的解码过程。
解码UV坐标的步骤如下:
(1)熵解码UV坐标码流。
(2)解码初始三角形三个顶点的UV坐标,这里不计算预测值,初始三角形是直接编码其UV坐标而不是编码残差。将初始三角形边存入边集合中。
(3)按照存取准则从集合中选取边τ,解码与τ组成的新三角形对顶点的UV坐标。先利用三角形三维到二维的映射关系,与编码端一致的计算方式计算待解码点的UV坐标预测值。再将预测值与熵解码的残差相加,得到重建UV坐标。
(4)将新三角形的两条边加入边集合中,移除集合顶部的边τ。从集合中取出下一条边,继续解码该边邻接三角形的对顶点UV坐标,返回步骤(3),直到所有顶点的UV坐标解码完成。
4)非流形结构信息解码:
输入:非流形结构信息子码流、几何信息解码顺序和属性信息解码顺序;
输出:表示网格中是否存在非流形结构的信息、重复点的非流形标识、拆非流形结构而产生的重复点的索引信息。
首先,解码得到网格中表示是否存在非流形结构的信息。以该信息为是否存在非流形结构的标识为例:如果标识为0,则不需要解码重复点的非流形标识和拆非流形结构而产生的重复点的索引信息,并跳过后续恢复非流形结构的模块;如果标识为1,则解码重复点的非流形标识和拆非流形结构而产生的重复点的索引信息。(注:若考虑几何顶点和UV顶点 是否具有相同连接关系的情况,则依据解码出的表示几何顶点和UV顶点是否具有相同连接关系的信息判断是否需分别解码几何顶点和UV顶点的非流形标识信息以及拆非流形结构而产生的重复点的索引信息。)
重复点的非流形标识和拆非流形结构而产生的重复点的索引信息解码采用与编码端相对应的方法,首先熵解码得到重复点的非流形标识,然后解码并记录拆非流形结构而产生的重复点的索引信息。将这些信息输出到恢复非流形结构模块。
5)重建流形网格:
输入:流形网格的连接关系、流形网格的几何信息、流形网格的属性信息;
输出:流形网格;
利用流形网格的连接关系、几何信息、属性信息,可以直接重建得到流形网格。
6)恢复非流形结构:
输入:流形网格、重复点的非流形标识、拆非流形结构而产生的重复点的索引信息;
输出:重建非流形网格
非流形边与非流形点的恢复过程是相同的。首先,查找流形网格中的重复点,例如可以用哈希表或者kd-tree等方法。以哈希表为例,建立一个哈希表,哈希表的键为顶点的坐标,值为具有该坐标的顶点的出现次数,以此来查找判断和记录重复点。然后遍历所有重复点,依据重复点的非流形标识,判断当前重复点是否是拆分非流形而产生的重复点。如果当前重复点不是拆分非流形而产生的重复点,则当前顶点与当前顶点的索引对应,即不更新其索引;如果当前顶点是拆分非流形而产生的重复点,则通过拆非流形而产生的重复点索引信息判断其是否是具有当前顶点信息的点要合并到的目标顶点,如果是要合并到的目标顶点,则当前顶点与当前顶点的索引对应,不更新其索引,如果不是要合并到的目标顶点,则进行合并拆非流形而产生的重复点的操作,即将当前点的索引更新为其对应的要合并到的目标顶点的索引。最后,更新几何信息列表和属性信息列表,并更新连接关系中的几何点和属性点的索引值,得到重建的非流形网格。
需要说明的是,若考虑几何顶点和属性顶点是否具有相同连接关系的情况,则在几何顶点和属性顶点具有不同连接关系时,几何顶点和属性顶点分别执行上述步骤,得到重建的非流形网格。
若是在解码连接关系的同时,解码几何信息、属性信息和非流形结构信息,则此时也需解码出额外的表示顶点是否是重复点的信息。在这种情况下,需在解码的过程中查找和判断重复点是否是由于拆非流形结构而产生的重复点并进行合并重复点、更新几何信息列表和属性信息列表、更新连接关系中的几何顶点和属性顶点的索引值的恢复非流形结构的操作。在经过后处理中可能存在的如移除虚拟点等其它操作,得到最终重建的非流形网格。
本申请实施例中,解码端对第一码流进行解码,得到非流形标识信息以及第一重复顶点的索引信息;根据所述第一重复顶点的索引信息以及所述非流形标识信息,恢复原始网格中的非流形结构。该方案中,能够基于该第一码流解码得到的非流形标识信息和第一重 复顶点的索引信息恢复出原始网格的非流形结构,从而实现了对原始网格进行无损编码的目的。由于只对流形网格中的重复点添加非流形标识,而并非是对流形网格中的每个顶点添加非流形标识,从而能够更高效地实现三维网格的无损编解码。
本申请实施例提供的编码方法,执行主体可以为编码装置。本申请实施例中以编码装置执行编码方法为例,说明本申请实施例提供的编码装置。
如图11所示,本申请实施例还提供了一种编码装置1100,包括:
第一获取模块1101,用于对原始网格中的非流形结构进行拆分处理,得到流形网格;
第一处理模块1102,用于对所述流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;
第二获取模块1103,用于对所述非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。
可选地,所述第一码流还包括第一指示信息的编码信息,所述第一指示信息用于指示所述原始网格中是否存在非流形结构。
可选地,本申请实施例的装置,还包括:
第三获取模块,用于对所述流形网格进行编码,得到第二码流;
第四获取模块,用于根据所述第一码流和所述第二码流,得到所述原始网格的总码流。
可选地,所述第三获取模块用于对所述流形网格的第二目标信息进行编码,得到所述第二码流;
其中,所述第二目标信息包括连接关系、几何信息以及属性信息。
可选地,所述第一重复顶点包括几何重复顶点和属性重复顶点;
在所述流形网格中的几何顶点和所述属性顶点具有相同的连接关系的情况下,所述几何重复顶点和所述属性重复顶点共用一组非流形结构信息,所述非流形结构信息包括非流形标识信息和索引信息;或,
在所述流形网格中的几何顶点和所述属性顶点具有不同的连接关系的情况下,所述几何重复顶点对应第一组非流形结构信息,且所述属性重复顶点对应第二组非流形结构信息,所述第一组非流形结构信息和所述第二组非流形结构信息均包括非流形标识信息和索引信息。
可选地,所述原始网格的总码流还包括:
第三码流,所述第三码流是对第二指示信息进行编码得到的,所述第二指示信息用于指示所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系。
可选地,所述原始网格的总码流还包括:
第四码流,所述第四码流是对所述流形网格中的重复顶点的第三指示信息进行编码得到的,所述第三指示信息用于指示是否对所述重复顶点的几何信息和属性信息进行了重复 编码。
可选地,在所述编码端对所述连接关系、几何信息以及属性信息同时进行编码的情况下,所述原始网格的总码流还包括:
第五码流,所述第五码流是对所述流形网格中顶点的第四指示信息进行编码得到的,所述第四指示信息用于指示所述顶点是否为重复顶点。
本申请实施例的编码装置,对原始网格中的非流形结构进行拆分处理,得到流形网格;对流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;编码端对非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。通过上述方案,使得解码端能够基于该第一码流解码得到的非流形标识信息和第一重复顶点的索引信息恢复出原始网格的非流形结构,从而实现了对原始网格进行无损编码的目的。由于编码端在编码包含非流形结构的网格时,只对流形网格中的重复点添加非流形标识,而并非是对流形网格中的每个顶点添加非流形标识,从而能够更高效地实现三维网格的无损编码。
如图12所示,本申请实施例还提供了一种解码装置1200,包括:
第五获取模块1201,用于对第一码流进行解码,得到解码信息,所述解码信息包括非流形标识信息以及第一重复顶点的索引信息,所述第一重复顶点是对原始网格中的非流形结构进行拆分处理产生的重复顶点,所述非流形标识信息用于指示重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点;
第二处理模块1202,用于根据所述解码信息,恢复原始网格中的非流形结构。
可选地,所述解码信息还包括第一指示信息,所述第一指示信息用于指示所述原始网格中是否存在非流形结构;
所述第二处理模块用于在所述第一指示信息指示原始网格中存在非流形结构的情况下,根据所述第一重复顶点的索引信息以及非流形标识信息,恢复原始网格中的非流形结构。
可选地,所述第二处理模块包括:
重建子模块,用于根据流形网格的第二目标信息,重建流形网格,其中,所述第二目标信息是对第二码流进行解码得到的,所述第二目标信息包括连接关系、几何信息以及属性信息;
恢复子模块,用于根据重建的所述流形网格、所述第一重复顶点的索引信息以及所述非流形标识信息,恢复所述原始网格中的非流形结构。
可选地,所述恢复子模块用于根据重建的所述流形网格、所述第一重复顶点的索引信息、所述非流形标识信息以及第四指示信息,恢复所述原始网格中的非流形结构;
其中,所述第四指示信息是对第五码流进行解码得到的,所述第四指示信息用于指示流形网格中的顶点是否为重复顶点。
可选地,本申请实施例的装置,还包括:
第六获取模块,用于对第二码流进行解码,获取所述流形网格的第二目标信息。
可选地,所述第六获取模块用于根据流形网格中重复顶点的第三指示信息,对第二码流进行解码,获取所述流形网格的几何信息和属性信息;
其中,所述第三指示信息是对第四码流进行解码得到的,所述第三指示信息用于指示是否对所述重复顶点的几何信息和属性信息进行了重复编码。
可选地,所述第一重复顶点包括几何重复顶点和属性重复顶点;
在所述流形网格中的几何顶点和所述属性顶点具有相同的连接关系的情况下,所述几何重复顶点和所述属性重复顶点共用一组非流形结构信息,所述非流形结构信息包括非流形标识信息和索引信息;或,
在所述流形网格中的几何顶点和所述属性顶点具有不同的连接关系的情况下,所述几何重复顶点对应第一组非流形结构信息,且所述属性重复顶点对应第二组非流形结构信息,所述第一组非流形结构信息和所述第二组非流形结构信息均包括非流形标识信息和索引信息。
可选地,本申请实施例的装置,还包括:
第七获取模块,用于对第三码流进行解码,获取第二指示信息,所述第二指示信息用于指示所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系;
确定模块,用于根据所述第二指示信息,确定所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系。
本申请实施例的解码装置,对第一码流进行解码,得到第一指示信息、非流形标识信息以及第一重复顶点的索引信息;在所述第一指示信息指示原始网格中存在非流形结构的情况下,根据所述第一重复顶点的索引信息以及所述非流形标识信息,恢复原始网格中的非流形结构。该方案中,能够基于该第一码流解码得到的非流形标识信息和第一重复顶点的索引信息恢复出原始网格的非流形结构,从而实现了对原始网格进行无损编码的目的。由于只对流形网格中的重复点添加非流形标识,而并非是对流形网格中的每个顶点添加非流形标识,从而能够更高效地实现三维网格的无损编解码。
本申请实施例中的编码装置或解码装置可以是电子设备,例如具有操作系统的电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的其他设备可以为服务器、网络附属存储器(Network Attached Storage,NAS)等,本申请实施例不作具体限定。
本申请实施例提供的编码装置能够实现图2的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例提供的解码装置能够实现图9的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
可选地,如图13所示,本申请实施例还提供一种电子设备1300,包括处理器1301和 存储器1302,存储器1302上存储有可在所述处理器1301上运行的程序或指令,该程序或指令被处理器1301执行时实现上述编码方法或解码方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供了一种编码装置,包括处理器和通信接口,处理器用于对原始网格中的非流形结构进行拆分处理,得到流形网格;对所述流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;对所述非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。该装置实施例与上述编码方法实施例对应,上述方法实施例的各个实施过程和实现方式均可适用于该装置实施例中,且能达到相同的技术效果。
本申请实施例还提供了一种解码装置,包括处理器和通信接口,处理器用于对第一码流进行解码,得到解码信息,所述解码信息包括非流形标识信息以及第一重复顶点的索引信息,所述第一重复顶点是对原始网格中的非流形结构进行拆分处理产生的重复顶点,所述非流形标识信息用于指示重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶;根据所述解码信息,恢复原始网格中的非流形结构。该装置实施例与上述解码方法实施例对应,上述方法实施例的各个实施过程和实现方式均可适用于该装置实施例中,且能达到相同的技术效果。
具体地,图14为实现本申请实施例的一种编码装置或解码装置的硬件结构示意图。
该编码装置或解码装置包括但不限于:射频单元1401、网络模块1402、音频输出单元1403、输入单元1404、传感器1405、显示单元1406、用户输入单元1407、接口单元1408、存储器1409以及处理器1410等中的至少部分部件。
本领域技术人员可以理解,编码装置或解码装置还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图14中示出的装置结构并不构成对装置的限定,装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本申请实施例中,输入单元1404可以包括图形处理器(Graphics Processing Unit,GPU)14041和麦克风14042,图形处理器14041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1406可包括显示面板14061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板14061。用户输入单元1407包括触控面板14071以及其他输入设备14072中的至少一种。触控面板14071,也称为触摸屏。触控面板14071可包括触摸检测装置和触摸控制器两个部分。其他输入设备14072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
本申请实施例中,射频单元1401接收来自网络侧设备的下行数据后,可以传输给处理器1410进行处理;另外,射频单元1401可以向网络侧设备发送上行数据。通常,射频单元1401包括但不限于天线、放大器、收发信机、耦合器、低噪声放大器、双工器等。
存储器1409可用于存储软件程序或指令以及各种数据。存储器1409可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器1409可以包括易失性存储器或非易失性存储器,或者,存储器1409可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器1409包括但不限于这些和任意其它适合类型的存储器。
处理器1410可包括一个或多个处理单元;可选地,处理器1410集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器1410中。
可选地,在该装置为编码装置的情况下:
处理器1410,用于对原始网格中的非流形结构进行拆分处理,得到流形网格;
所述编码端对所述流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;
所述编码端对所述非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。
可选地,所述第一码流还包括第一指示信息的编码信息,所述第一指示信息用于指示所述原始网格中是否存在非流形结构。
可选地,所述处理器1410还用于:
对所述流形网格进行编码,得到第二码流;
根据所述第一码流和所述第二码流,得到所述原始网格的总码流。
可选地,所述处理器1410还用于:
对所述流形网格的第二目标信息进行编码,得到所述第二码流;
其中,所述第二目标信息包括连接关系、几何信息以及属性信息。
可选地,所述第一重复顶点包括几何重复顶点和属性重复顶点;
在所述流形网格中的几何顶点和所述属性顶点具有相同的连接关系的情况下,所述几何重复顶点和所述属性重复顶点共用一组非流形结构信息,所述非流形结构信息包括非流形标识信息和索引信息;或,
在所述流形网格中的几何顶点和所述属性顶点具有不同的连接关系的情况下,所述几何重复顶点对应第一组非流形结构信息,且所述属性重复顶点对应第二组非流形结构信息,所述第一组非流形结构信息和所述第二组非流形结构信息均包括非流形标识信息和索引信息。
可选地,所述原始网格的总码流还包括:
第三码流,所述第三码流是对第二指示信息进行编码得到的,所述第二指示信息用于指示所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系。
可选地,所述原始网格的总码流还包括:
第四码流,所述第四码流是对所述流形网格中的重复顶点的第三指示信息进行编码得到的,所述第三指示信息用于指示是否对所述重复顶点的几何信息和属性信息进行了重复编码。
可选地,在所述编码端对所述连接关系、几何信息以及属性信息同时进行编码的情况下,所述原始网格的总码流还包括:
第五码流,所述第五码流是对所述流形网格中顶点的第四指示信息进行编码得到的,所述第四指示信息用于指示所述顶点是否为重复顶点。
可选地,在上述装置为解码装置的情况下:
处理器1410,用于对第一码流进行解码,得到解码信息,所述解码信息包括非流形标识信息以及第一重复顶点的索引信息,所述第一重复顶点是对原始网格中的非流形结构进行拆分处理产生的重复顶点,所述非流形标识信息用于指示重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一指示信息用于指示所述原始网格中是否存在非流形结构;
所述解码端根据所述解码信息,恢复原始网格中的非流形结构。
可选地,所述解码信息还包括第一指示信息,所述第一指示信息用于指示所述原始网格中是否存在非流形结构;
所述处理器1410还用于:
在所述第一指示信息指示原始网格中存在非流形结构的情况下,根据所述第一重复顶点的索引信息以及非流形标识信息,恢复原始网格中的非流形结构。可选地,所述处理器1410还用于:
根据流形网格的第二目标信息,重建流形网格,其中,所述第二目标信息是对第二码 流进行解码得到的,所述第二目标信息包括连接关系、几何信息以及属性信息;
根据重建的所述流形网格、所述第一重复顶点的索引信息以及所述非流形标识信息,恢复所述原始网格中的非流形结构。
可选地,所述处理器1410还用于:
根据重建的所述流形网格、所述第一重复顶点的索引信息、所述非流形标识信息以及第四指示信息,恢复所述原始网格中的非流形结构;
其中,所述第四指示信息是对第五码流进行解码得到的,所述第四指示信息用于指示流形网格中的顶点是否为重复顶点。
可选地,所述处理器1410还用于:
对第二码流进行解码,获取所述流形网格的第二目标信息。
可选地,所述处理器1410还用于:
根据流形网格中重复顶点的第三指示信息,对第二码流进行解码,获取所述流形网格的几何信息和属性信息;
其中,所述第三指示信息是对第四码流进行解码得到的,所述第三指示信息用于指示是否对所述重复顶点的几何信息和属性信息进行了重复编码。
可选地,所述第一重复顶点包括几何重复顶点和属性重复顶点;
在所述流形网格中的几何顶点和所述属性顶点具有相同的连接关系的情况下,所述几何重复顶点和所述属性重复顶点共用一组非流形结构信息,所述非流形结构信息包括非流形标识信息和索引信息;或,
在所述流形网格中的几何顶点和所述属性顶点具有不同的连接关系的情况下,所述几何重复顶点对应第一组非流形结构信息,且所述属性重复顶点对应第二组非流形结构信息,所述第一组非流形结构信息和所述第二组非流形结构信息均包括非流形标识信息和索引信息。
可选地,所述处理器1410还用于:
对第三码流进行解码,获取第二指示信息,所述第二指示信息用于指示所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系;
根据所述第二指示信息,确定所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系。
本申请实施例中,对原始网格中的非流形结构进行拆分处理,得到流形网格;对流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;编码端对非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。通过上述方案,使得解码端能够基于该第一码流解码得到的非流形标识信息和第一重复顶点的索引信息恢复出原始网格的非流形结构,从而实现了对原始网格进行无损编码的目的。 由于编码端在编码包含非流形结构的网格时,只对流形网格中的重复点添加非流形标识,而并非是对流形网格中的每个顶点添加非流形标识,从而能够更高效地实现三维网格的无损编码。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述编码方法或解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的装置中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述编码方法或解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。
本申请实施例另提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述计算机程序/程序产品被至少一个处理器执行以实现上述编码方法或解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供了一种编解码系统,包括:编码装置或解码装置,所述编码装置可用于执行如上所述的编码方法的步骤,所述解码装置可用于执行如上所述的解码方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (20)

  1. 一种编码方法,包括:
    编码端对原始网格中的非流形结构进行拆分处理,得到流形网格;
    所述编码端对所述流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;
    所述编码端对所述非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。
  2. 根据权利要求1所述的方法,其中,所述第一码流还包括第一指示信息的编码信息,所述第一指示信息用于指示所述原始网格中是否存在非流形结构。
  3. 根据权利要求1或2所述的方法,其中,所述方法还包括:
    所述编码端对所述流形网格进行编码,得到第二码流;
    所述编码端根据所述第一码流和所述第二码流,得到所述原始网格的总码流。
  4. 根据权利要求3所述的方法,其中,所述编码端对所述流形网格进行编码,得到第二码流,包括:
    所述编码端对所述流形网格的第二目标信息进行编码,得到所述第二码流;
    其中,所述第二目标信息包括连接关系、几何信息以及属性信息。
  5. 根据权利要求1至4任一项所述的方法,其中,所述第一重复顶点包括几何重复顶点和属性重复顶点;
    在所述流形网格中的几何顶点和所述属性顶点具有相同的连接关系的情况下,所述几何重复顶点和所述属性重复顶点共用一组非流形结构信息,所述非流形结构信息包括非流形标识信息和索引信息;或,
    在所述流形网格中的几何顶点和所述属性顶点具有不同的连接关系的情况下,所述几何重复顶点对应第一组非流形结构信息,且所述属性重复顶点对应第二组非流形结构信息,所述第一组非流形结构信息和所述第二组非流形结构信息均包括非流形标识信息和索引信息。
  6. 根据权利要求5所述的方法,其中,所述原始网格的总码流还包括:
    第三码流,所述第三码流是对第二指示信息进行编码得到的,所述第二指示信息用于指示所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系。
  7. 根据权利要求1至6任一项所述的方法,其中,所述原始网格的总码流还包括:
    第四码流,所述第四码流是对所述流形网格中的重复顶点的第三指示信息进行编码得到的,所述第三指示信息用于指示是否对所述重复顶点的几何信息和属性信息进行了重复 编码。
  8. 根据权利要求4所述的方法,其中,在所述编码端对所述连接关系、几何信息以及属性信息同时进行编码的情况下,所述原始网格的总码流还包括:
    第五码流,所述第五码流是对所述流形网格中顶点的第四指示信息进行编码得到的,所述第四指示信息用于指示所述顶点是否为重复顶点。
  9. 一种解码方法,包括:
    解码端对第一码流进行解码,得到解码信息,所述解码信息包括非流形标识信息以及第一重复顶点的索引信息,所述第一重复顶点是对原始网格中的非流形结构进行拆分处理产生的重复顶点,所述非流形标识信息用于指示重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点;
    所述解码端根据所述解码信息,恢复原始网格中的非流形结构。
  10. 根据权利要求9所述的方法,其中,所述解码信息还包括第一指示信息,所述第一指示信息用于指示所述原始网格中是否存在非流形结构;
    所述解码端根据所述解码信息,恢复原始网格中的非流形结构,包括:
    在所述第一指示信息指示原始网格中存在非流形结构的情况下,根据所述第一重复顶点的索引信息以及非流形标识信息,恢复原始网格中的非流形结构。
  11. 根据权利要求9或10所述的方法,其中,根据所述第一重复顶点的索引信息以及所述非流形标识信息,恢复原始网格中的非流形结构,包括:
    根据流形网格的第二目标信息,重建流形网格,其中,所述第二目标信息是对第二码流进行解码得到的,所述第二目标信息包括连接关系、几何信息以及属性信息;
    根据重建的所述流形网格、所述第一重复顶点的索引信息以及所述非流形标识信息,恢复所述原始网格中的非流形结构。
  12. 根据权利要求11所述的方法,其中,根据重建的所述流形网格、所述第一重复顶点的索引信息以及所述非流形标识信息,恢复所述原始网格中的非流形结构,包括:
    根据重建的所述流形网格、所述第一重复顶点的索引信息、所述非流形标识信息以及第四指示信息,恢复所述原始网格中的非流形结构;
    其中,所述第四指示信息是对第五码流进行解码得到的,所述第四指示信息用于指示流形网格中的顶点是否为重复顶点。
  13. 根据权利要求11或12所述的方法,其中,还包括:
    所述解码端对第二码流进行解码,获取所述流形网格的第二目标信息。
  14. 根据权利要求13所述的方法,其中,所述解码端对第二码流进行解码,获取所述流形网格的第二目标信息,包括:
    根据流形网格中重复顶点的第三指示信息,对第二码流进行解码,获取所述流形网格的几何信息和属性信息;
    其中,所述第三指示信息是对第四码流进行解码得到的,所述第三指示信息用于指示 是否对所述重复顶点的几何信息和属性信息进行了重复编码。
  15. 根据权利要求9至14任一项所述的方法,其中,所述第一重复顶点包括几何重复顶点和属性重复顶点;
    在所述流形网格中的几何顶点和所述属性顶点具有相同的连接关系的情况下,所述几何重复顶点和所述属性重复顶点共用一组非流形结构信息,所述非流形结构信息包括非流形标识信息和索引信息;或,
    在所述流形网格中的几何顶点和所述属性顶点具有不同的连接关系的情况下,所述几何重复顶点对应第一组非流形结构信息,且所述属性重复顶点对应第二组非流形结构信息,所述第一组非流形结构信息和所述第二组非流形结构信息均包括非流形标识信息和索引信息。
  16. 根据权利要求15所述的方法,其中,还包括:
    对第三码流进行解码,获取第二指示信息,所述第二指示信息用于指示所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系;
    根据所述第二指示信息,确定所述流形网格中的几何顶点与属性顶点是否具有相同的连接关系。
  17. 一种编码装置,包括:
    第一获取模块,用于对原始网格中的非流形结构进行拆分处理,得到流形网格;
    第一处理模块,用于对所述流形网格中的重复顶点添加非流形标识信息,并确定所述重复顶点中的第一重复顶点的索引信息,所述非流形标识信息用于指示所述重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点,所述第一重复顶点为对所述非流形结构进行拆分处理时产生的重复顶点;
    第二获取模块,用于对所述非流形标识信息以及所述第一重复顶点的索引信息进行编码,得到第一码流。
  18. 一种解码装置,包括:
    第五获取模块,用于对第一码流进行解码,得到解码信息,所述解码信息包括非流形标识信息以及第一重复顶点的索引信息,所述第一重复顶点是对原始网格中的非流形结构进行拆分处理产生的重复顶点,所述非流形标识信息用于指示重复顶点是否为对所述非流形结构进行拆分处理时产生的重复顶点;
    第二处理模块,用于根据所述解码信息,恢复原始网格中的非流形结构。
  19. 一种电子设备,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至8任一项所述的编码方法的步骤,或实现如权利要求9至16任一项所述的解码方法的步骤。
  20. 一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至8任一项所述的编码方法的步骤,或者实现如权利要求9至16任一项所述的解码方法的步骤。
PCT/CN2024/100834 2023-06-30 2024-06-24 编码方法、解码方法、装置及设备 Ceased WO2025002018A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP24830663.1A EP4738259A1 (en) 2023-06-30 2024-06-24 Coding method, decoding method, apparatus, and device
KR1020257041341A KR20260011162A (ko) 2023-06-30 2024-06-24 부호화 방법, 복호화 방법, 장치 및 기기
US19/411,830 US20260094304A1 (en) 2023-06-30 2025-12-08 Encoding method and apparatus, decoding method and apparatus, and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202310802552.3A CN119228915A (zh) 2023-06-30 2023-06-30 编码方法、解码方法、装置及设备
CN202310802552.3 2023-06-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US19/411,830 Continuation US20260094304A1 (en) 2023-06-30 2025-12-08 Encoding method and apparatus, decoding method and apparatus, and device

Publications (1)

Publication Number Publication Date
WO2025002018A1 true WO2025002018A1 (zh) 2025-01-02

Family

ID=93937421

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2024/100834 Ceased WO2025002018A1 (zh) 2023-06-30 2024-06-24 编码方法、解码方法、装置及设备

Country Status (5)

Country Link
US (1) US20260094304A1 (zh)
EP (1) EP4738259A1 (zh)
KR (1) KR20260011162A (zh)
CN (1) CN119228915A (zh)
WO (1) WO2025002018A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN121120809B (zh) * 2025-11-12 2026-02-10 摩尔线程智能科技(北京)股份有限公司 图元编码方法、装置、设备、存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6452596B1 (en) * 1998-10-06 2002-09-17 International Business Machines Corporation Methods and apparatus for the efficient compression of non-manifold polygonal meshes
KR20080066216A (ko) * 2007-01-11 2008-07-16 한국전자통신연구원 스티칭 정보를 포함하는 3차원 메쉬 정보부호화/복호화 방법 및 장치
US20090278844A1 (en) * 2007-01-11 2009-11-12 Eun Young Chang Method and apparatus for encoding/decoding 3d mesh information including stitching information
CN117915105A (zh) * 2022-10-19 2024-04-19 维沃移动通信有限公司 网格编码方法、网格解码方法及相关设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6452596B1 (en) * 1998-10-06 2002-09-17 International Business Machines Corporation Methods and apparatus for the efficient compression of non-manifold polygonal meshes
KR20080066216A (ko) * 2007-01-11 2008-07-16 한국전자통신연구원 스티칭 정보를 포함하는 3차원 메쉬 정보부호화/복호화 방법 및 장치
US20090278844A1 (en) * 2007-01-11 2009-11-12 Eun Young Chang Method and apparatus for encoding/decoding 3d mesh information including stitching information
CN117915105A (zh) * 2022-10-19 2024-04-19 维沃移动通信有限公司 网格编码方法、网格解码方法及相关设备

Also Published As

Publication number Publication date
KR20260011162A (ko) 2026-01-22
US20260094304A1 (en) 2026-04-02
EP4738259A1 (en) 2026-05-06
CN119228915A (zh) 2024-12-31

Similar Documents

Publication Publication Date Title
US12217465B2 (en) Method and apparatus for point cloud coding
US11611775B2 (en) Method and apparatus for point cloud coding
KR20200140825A (ko) 3d 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치
US20260094304A1 (en) Encoding method and apparatus, decoding method and apparatus, and device
US20250124606A1 (en) Lossless encoding method and apparatus, lossless decoding method and apparatus, and device
WO2023246686A1 (zh) 无损编码方法、无损解码方法、装置及设备
WO2024083039A1 (zh) 网格编码方法、网格解码方法及相关设备
WO2024083043A1 (zh) 网格编码方法、装置、通信设备及可读存储介质
WO2025002025A1 (zh) 编码方法、解码方法、装置及设备
WO2024193487A1 (zh) 三维网格位移信息编码方法、解码方法、装置及终端
Huang et al. Hierarchical bit-wise differential coding (hbdc) of point cloud attributes
CN118020093A (zh) 网格压缩中的纹理坐标预测
WO2023174334A1 (zh) 编码、解码方法、装置及设备
WO2025002017A1 (zh) 三维网格编码方法、三维网格解码方法、装置及设备
WO2025007793A1 (zh) 一种三维网格无损编解码方法及装置
CN120321402A (zh) 三维网格无损编码、解码方法及编码、解码装置
WO2026002113A1 (zh) 编码方法、解码方法、装置及电子设备
WO2025218538A1 (zh) 三维网格信息编码方法、解码方法、装置及设备
WO2025223305A1 (zh) 三维网格编码方法、三维网格解码方法及相关设备
WO2024174092A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2024260291A1 (zh) 网格编码方法、网格解码方法及相关设备
CN120835149A (zh) 编码方法、解码方法、装置及电子设备
WO2023173237A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
HK40075481B (zh) 点云译码的方法、计算机装置、设备及计算机可读介质
WO2023173238A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 24830663

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2025568441

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2025568441

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 1020257041341

Country of ref document: KR

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112025027107

Country of ref document: BR

WWP Wipo information: published in national office

Ref document number: 1020257041341

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2024830663

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2024830663

Country of ref document: EP

Effective date: 20260130

ENP Entry into the national phase

Ref document number: 2024830663

Country of ref document: EP

Effective date: 20260130