[go: up one dir, main page]

WO2024260290A1 - Grid encoding method, grid decoding method and related device - Google Patents

Grid encoding method, grid decoding method and related device Download PDF

Info

Publication number
WO2024260290A1
WO2024260290A1 PCT/CN2024/099101 CN2024099101W WO2024260290A1 WO 2024260290 A1 WO2024260290 A1 WO 2024260290A1 CN 2024099101 W CN2024099101 W CN 2024099101W WO 2024260290 A1 WO2024260290 A1 WO 2024260290A1
Authority
WO
WIPO (PCT)
Prior art keywords
displacement
grid
displacement information
levels
subdivided
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.)
Pending
Application number
PCT/CN2024/099101
Other languages
French (fr)
Chinese (zh)
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
Publication of WO2024260290A1 publication Critical patent/WO2024260290A1/en
Anticipated expiration legal-status Critical
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present application belongs to the field of computer technology, and specifically relates to a grid encoding method, a grid decoding method and related equipment.
  • 3D models have become a new generation of digital media after audio, images, and videos.
  • 3D mesh and point cloud are two commonly used ways to represent 3D models.
  • 3D mesh models Compared with traditional multimedia such as images and videos, 3D mesh models have stronger interactivity and realism, and are widely used.
  • the embodiments of the present application provide a grid encoding method, a grid decoding method and related equipment, which can solve the problem of low encoding efficiency.
  • a grid coding method comprising:
  • the displacement information corresponding to the subdivided grid is used to represent the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid;
  • the displacement information to be encoded is encoded to obtain a first encoding result.
  • a grid decoding method comprising:
  • Reconstruction processing is performed based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.
  • a grid coding device comprising:
  • An acquisition module is used to acquire a basic grid corresponding to the three-dimensional grid, and perform subdivision processing based on the basic grid to obtain a subdivided grid;
  • a deformation module used for performing a deformation operation based on the subdivided grid to obtain a deformed grid
  • a selection module configured to select displacement information to be encoded from the displacement information corresponding to the subdivided grid, wherein the displacement information corresponding to the subdivided grid is used to represent the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid;
  • the encoding module is used to encode the displacement information to be encoded to obtain a first encoding result.
  • a grid decoding device comprising:
  • a first decoding module used for decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain decoded displacement information
  • a second decoding module is used to decode the third encoding result in the code stream to obtain a basic grid, and subdivide the basic grid to obtain a subdivided grid;
  • a filling module used for performing filling processing on the decoded displacement information to obtain filled displacement information, wherein the number of levels of the filled displacement information is greater than or equal to the number of levels of the decoded displacement information;
  • the reconstruction module is used to perform reconstruction processing based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.
  • a terminal which includes a processor, a memory, and a program or instruction stored in the memory and executable on the processor, wherein the program or instruction, when executed by the processor, implements the steps of the method described in the first aspect; or, the program or instruction, when executed by the processor, implements the steps of the method described in the second aspect.
  • a terminal comprising a processor and a communication interface, wherein the processor is used to: obtain a basic grid corresponding to a three-dimensional grid, perform subdivision processing based on the basic grid to obtain a subdivided grid; perform deformation operations based on the subdivided grid to obtain a deformed grid; select displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to characterize the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid; encode the displacement information to be encoded to obtain a first encoding result.
  • a terminal comprising a processor and a communication interface, wherein the processor is used to: decode a first coding result in a code stream corresponding to a three-dimensional grid to obtain decoded displacement information; decode a third coding result in the code stream to obtain a basic grid, and subdivide the basic grid to obtain a subdivided grid; fill the decoded displacement information to obtain filled displacement information, wherein the number of levels of the filled displacement information is greater than or equal to the number of levels of the decoded displacement information; and reconstruct based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.
  • a readable storage medium on which a program or instruction is stored.
  • the steps of the grid encoding method as described in the first aspect are implemented, or when the program or instruction is executed by a processor, the steps of the grid decoding method as 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 instructions 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.
  • a computer program/program product is provided, wherein the computer program/program product is stored in a non-volatile storage medium, and the 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.
  • a base mesh corresponding to a three-dimensional mesh is obtained, and a subdivision process is performed based on the base mesh to obtain a subdivided mesh; a deformation operation is performed based on the subdivided mesh to obtain a deformed mesh; displacement information to be encoded is selected from the displacement information corresponding to the subdivided mesh, the displacement information corresponding to the subdivided mesh is used to characterize the displacement of the vertices of the subdivided mesh relative to the deformed mesh, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided mesh; the displacement information to be encoded is encoded to obtain a first encoding result.
  • the amount of encoded data can be reduced and the encoding efficiency can be improved.
  • FIG1 is a schematic diagram of V3C encoding in the related art
  • FIG2 is a schematic diagram of V3C decoding in the related art
  • FIG3 is a schematic diagram of V-DMC coding in the related art
  • FIG4 is a schematic diagram of V-DMC decoding in the related art
  • FIG5 is a flow chart of a grid coding method provided in an embodiment of the present application.
  • FIG6 is one of the schematic diagrams of displacement encoding provided in an embodiment of the present application.
  • FIG. 7 is one of the schematic diagrams of displacement decoding provided in an embodiment of the present application.
  • FIG8 is a flow chart of a grid decoding method provided in an embodiment of the present application.
  • FIG9 is a second schematic diagram of a displacement encoding provided in an embodiment of the present application.
  • FIG10 is a second schematic diagram of a displacement decoding provided in an embodiment of the present application.
  • FIG11 is a third schematic diagram of a displacement decoding provided in an embodiment of the present application.
  • FIG12 is a third schematic diagram of a displacement encoding provided in an embodiment of the present application.
  • FIG13 is a fourth schematic diagram of a displacement decoding provided in an embodiment of the present application.
  • FIG14 is a schematic diagram of a grid coding process provided by an embodiment of the present application.
  • FIG15 is a simplified schematic diagram of a grid provided in an embodiment of the present application.
  • FIG16 is a diagram showing an example of displacement calculation provided in an embodiment of the present application.
  • FIG17 is a schematic diagram of basic grid compression provided by an embodiment of the present application.
  • FIG18 is a schematic diagram of an attribute graph conversion provided in an embodiment of the present application.
  • FIG19 is a schematic diagram of a grid decoding process provided in an embodiment of the present application.
  • FIG20 is a schematic diagram of the structure of a grid coding device provided in an embodiment of the present application.
  • FIG21 is a schematic diagram of the structure of a grid decoding device provided in an embodiment of the present application.
  • FIG22 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application.
  • FIG. 23 is a schematic diagram of the structure of a terminal provided in 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.
  • the encoding and decoding end corresponding to the encoding and decoding method in the embodiment of the present application may be a terminal, which may also be referred to as a terminal device or a user terminal (User Equipment, UE).
  • the terminal may be a mobile phone, a tablet computer (Tablet Personal Computer), a laptop computer (Laptop Computer) or a notebook computer, a personal digital assistant (Personal Digital Assistant, PDA), a handheld computer, a netbook, an ultra-mobile personal computer (ultra-mobile personal computer, UMPC), a mobile Internet device (Mobile Internet Device, MID), an augmented reality (augmented reality, AR)/virtual reality (virtual reality, VR) device, a robot, a wearable device (Wearable Device) or a vehicle-mounted device (Vehicle User Equipment, VUE), a pedestrian terminal (Pedestrian User Equipment, PUE) and other terminal-side devices, and the wearable device includes: a smart watch, a bracelet, a headset, glasses, etc
  • Three-dimensional models have become a new generation of digital media after audio, images, and videos.
  • Three-dimensional grids are a commonly used way to represent three-dimensional models. Compared with traditional multimedia such as images and videos, three-dimensional grid models have stronger interactivity and realism, making them more widely used in business, manufacturing, construction, education, medicine, entertainment, art, military, etc. It has been used more and more widely in various fields.
  • a 3D mesh can be considered to be composed of three basic elements: vertices, edges, and faces. Vertices are the most basic elements in a mesh, and they define a position in a 3D space. Edges are line segments connecting two vertices in a mesh. Faces can be considered as polygons formed by closed paths of edges. For a triangular mesh, each face is a triangle.
  • Geometric information refers to the position of each vertex of the mesh in three-dimensional space.
  • Connection information describes the association between elements in the mesh, that is, the connection relationship between vertices.
  • Attribute information is optional, and it can associate attributes to corresponding mesh elements (such as vertex color, normal vector, etc. can be associated with mesh vertices).
  • Mesh parameterization can also be used to map the mesh from three-dimensional space to a two-dimensional plane area. This mapping relationship is usually described by a set of parameter coordinates, called UV coordinates or texture coordinates, which are associated with mesh vertices. This two-dimensional mapping can be used to represent high-resolution attribute information, such as textures, normal vectors, etc.
  • 3D mesh compression can be regarded as a way to solve the above problems. It reduces the size of model data and is conducive to the processing, storage and transmission of 3D meshes. Therefore, it is necessary to propose an efficient and general 3D mesh compression algorithm.
  • V-DMC Video-based dynamic mesh coding
  • V3C Visual Volumetric Video-based Coding
  • the V3C standard provides a general method for compressing 3D models, which can be presented in the form of point clouds, meshes or panoramic videos. Making the compression method of 3D mesh models compatible with this standard will help the promotion and applicability of this method. Therefore, it is of great significance to optimize the 3D mesh encoding and decoding method in VDMC and combine the optimization method with the V3C standard.
  • the displacement is obtained by calculating the distance between the reconstructed mesh and the original mesh vertex, and its purpose is to improve the quality of the mesh.
  • the displacement is encoded using a video encoder. Providing multiple options for the displacement encoding method will help improve the encoding performance.
  • the V3C standard provides a method for encoding and decoding various three-dimensional media through video or image coding technology. Specifically, it converts the three-dimensional media content from a three-dimensional representation into multiple two-dimensional representations (called V3C components) through projection and other methods before encoding, and then encodes the two-dimensional representation using existing video or image coding technology.
  • V3C components mainly include occupancy components, geometric components, and attribute components.
  • the occupancy component can indicate which areas in the two-dimensional representation are associated with the data of the three-dimensional representation; the geometric component represents information related to the position of the three-dimensional data in space, and the attribute component can provide attribute information corresponding to the vertex, such as material, texture, etc.
  • the components also contain information on how to reconstruct the three-dimensional model through these components, which is called atlas information.
  • Example diagrams of the V3C standard are shown in Figures 1 and 2.
  • the atlas information is used to associate all components, and additional information for reconstructing from 2D back to 3D is also included in the atlas components.
  • the atlas consists of multiple basic units, called patches. Each patch represents an area in the available 2D components and contains the information needed to project the area back to 3D space.
  • V-DMC is a standard developed by MPEG for compressing three-dimensional meshes. Its main idea is to compress three-dimensional meshes by using the existing V3C standard. Since three-dimensional meshes have connection information that needs to be encoded, its specific encoding process is slightly different from V3C. It is necessary to expand the syntax, semantics and decoding operations of the V3C standard decoding end to support the decoding and reconstruction of three-dimensional meshes.
  • Figures 3 and 4 show the current encoding and decoding framework of V-DMC.
  • the overall framework of the encoding end is shown in Figure 3.
  • the input mesh it is first simplified by the simplification module, and then the new texture coordinates are generated for the mesh through mesh parameterization.
  • the parameterized mesh is subdivided and deformed, that is, new vertices are inserted on the mesh according to a specific subdivision method and the distance from the vertex of the subdivided mesh to the nearest neighbor of the input mesh is calculated, which is called displacement information.
  • the mesh before subdivision called the base mesh
  • the base mesh encoding module can generate motion vectors for each vertex of the base mesh according to the reference frame, and then only compress the motion vectors.
  • the base mesh is reconstructed after encoding, and then the order of displacement is adjusted according to the vertex order of the reconstructed base mesh. Subsequently, the vertex displacement information after the order is adjusted is subjected to wavelet transformation, the transformed coefficients are quantized, and then the quantized coefficients are arranged into a two-dimensional image according to a specific scanning order, and the two-dimensional image is encoded using a video encoder.
  • the reconstructed displacement information is applied to the subdivided base mesh to obtain a reconstructed subdivided deformed mesh, and the mesh, the original input mesh and its corresponding texture map are input into the corresponding texture map conversion module to obtain the texture map corresponding to the reconstructed mesh, and the texture map is also encoded using a video encoder.
  • the parameters used in the encoding process such as the type of video encoder used, the type of mesh encoder, the transformation parameters, the quantization parameters, etc., are transmitted to the decoding end through auxiliary information.
  • the decoding end first demultiplexes each part of the bitstream to obtain the basic grid bitstream, displacement video bitstream, texture map video bitstream and auxiliary information bitstream respectively.
  • the grid decoder indicated by the auxiliary information is decoded to obtain the basic grid.
  • the displacement video bitstream and the texture map video bitstream are decoded by the video decoder.
  • the displacement part after the video is decoded, the displacement needs to be taken out of the image through the displacement decoding module, and the steps such as inverse quantization and inverse transformation are performed, and then it is applied to the subdivided basic grid to obtain the deformed grid reconstructed by the decoding end.
  • the texture map is the texture map corresponding to the reconstructed deformed grid.
  • the subsequent application or rendering module processes the reconstructed deformed grid and the decoded texture map as input.
  • FIG. 5 is a flow chart of a grid coding method provided in an embodiment of the present application, which can be applied to a coding end device. As shown in FIG. 5 , the grid coding method includes the following steps:
  • Step 101 Obtain a basic grid corresponding to a three-dimensional grid, and perform subdivision processing based on the basic grid to obtain a subdivided grid.
  • the three-dimensional grid can be simplified to obtain the basic grid corresponding to the three-dimensional grid; or
  • the three-dimensional grid is subjected to grid simplification processing and grid parameterization processing to obtain a basic grid corresponding to the three-dimensional grid; or, the basic grid corresponding to the three-dimensional grid can also be obtained by other methods; and so on, which are not limited in this embodiment.
  • the basic mesh may be subdivided to obtain a subdivided mesh.
  • the subdivided process may be to add vertices to the edges constituting the basic mesh, and the basic mesh after adding the vertices is a subdivided mesh.
  • the grid may be represented in the form of a grid sequence, and processing of the grid may be considered as processing of the grid sequence.
  • Step 102 Perform a deformation operation based on the subdivided grid to obtain a deformed grid.
  • the deformation operation may be to deform the subdivided mesh into a mesh with the same shape as the three-dimensional mesh, and the mesh obtained after the deformation is the deformed mesh.
  • Step 103 Select displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to characterize the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid.
  • the displacement information corresponding to the subdivided mesh can be used to characterize the displacement of the vertices of the subdivided mesh relative to the vertices of the deformed mesh.
  • the displacement information can also be described as displacement data. For example, for each vertex of the subdivided mesh, a corresponding vertex can be found on the deformed mesh, and the displacement information corresponding to the subdivided mesh includes displacement information for characterizing the displacement of the vertex of each subdivided mesh relative to the corresponding vertex on the deformed mesh.
  • the displacement information includes multiple levels, and the more times the base grid is subdivided, the more levels of displacement information there are.
  • the displacement information corresponding to the subdivided grid may include multiple levels of displacement information.
  • the displacement information corresponding to the subdivided grid may include displacement components of at least one dimension, and for the displacement components of each dimension of the at least one dimensional displacement components, the displacement information to be encoded corresponding to each dimension can be selected respectively, and for the displacement components of each dimension, the number of levels of the displacement information to be encoded corresponding to each dimension selected can be the same or different.
  • the selecting the displacement information to be encoded from the displacement information corresponding to the subdivided grid may include: determining the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid including displacement components of at least one dimension, and selecting the displacement information to be encoded corresponding to each dimension for the displacement components of each dimension of the at least one dimensional displacement components, respectively, the number of levels of the displacement information to be encoded corresponding to each dimension being less than or equal to the number of levels of the displacement components of each dimension.
  • the displacement information corresponding to the subdivided grid may include: displacement components of the first dimension of N levels, displacement components of the second dimension of the N levels, and displacement components of the third dimension of the N levels.
  • the displacement information to be encoded corresponding to the first dimension may include: displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels;
  • the displacement information to be encoded corresponding to the second dimension may include: displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels;
  • the displacement information to be encoded corresponding to the third dimension may include: displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.
  • the first dimension may be a first coordinate axis dimension, such as an x-axis dimension; the second dimension may be a second coordinate axis dimension, such as a y-axis dimension; and the third dimension may be a third coordinate axis dimension, such as a z-axis dimension.
  • Step 104 Encode the displacement information to be encoded to obtain a first encoding result.
  • the encoding of the displacement information to be encoded to obtain the first encoding result may be encoding the selected displacement information to be encoded to obtain the first encoding result.
  • the encoding of the displacement information to be encoded may be video encoding of the displacement information to be encoded, or may be entropy encoding of the displacement information to be encoded, etc. This embodiment does not limit the specific encoding method for encoding the displacement information to be encoded.
  • a base mesh corresponding to a three-dimensional mesh is obtained, and a subdivision process is performed based on the base mesh to obtain a subdivided mesh; a deformation operation is performed based on the subdivided mesh to obtain a deformed mesh; displacement information to be encoded is selected from the displacement information corresponding to the subdivided mesh, the displacement information corresponding to the subdivided mesh is used to characterize the displacement of the vertices of the subdivided mesh relative to the deformed mesh, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided mesh; the displacement information to be encoded is encoded to obtain a first encoding result.
  • the amount of encoded data can be reduced and the encoding efficiency can be improved.
  • the displacement information corresponding to the subdivided grid includes displacement information of multiple levels
  • the selecting the displacement information to be encoded from the displacement information corresponding to the subdivided grid includes:
  • a target level among the multiple levels wherein the target level is determined based on displacement information representing a displacement of a first preset value among the displacement information of the multiple levels;
  • the displacement information to be encoded is selected from the displacement information corresponding to the subdivided grid based on the target level.
  • the first preset value may be 0.
  • the displacement information may include a displacement component of at least one dimension, and for the displacement component of each dimension, a target level corresponding to each dimension may be determined respectively.
  • the displacement components of at least one dimension include at least the displacement components of the target dimension
  • the displacement information corresponding to the subdivided grid includes at least the displacement components of the target dimension at multiple levels
  • the number of displacement components representing the displacement as a first preset value in the displacement components of the target dimension at the target level meets a preset condition.
  • the selecting the displacement information to be encoded from the displacement information corresponding to the subdivided grid based on the target level may be to select the displacement information to be encoded corresponding to the target dimension from the displacement components of the target dimension at the multiple levels based on the target level.
  • the target dimension may be a first dimension, a second dimension, or a third dimension.
  • the target level is determined based on the displacement information of the multiple levels whose characterizing displacement as the first preset value, and may include: the ratio of the number of displacement information of the target level whose characterizing displacement as the first preset value to the total number of displacement information of the target level satisfies a preset condition; or, may include: the difference between the number of displacement information of the target level whose characterizing displacement as the first preset value and the total number of displacement information of the target level satisfies a preset condition; or, may include: the ratio of the number of displacement information of the target level whose characterizing displacement as the first preset value to the number of displacement information of the target level whose characterizing displacement as not the first preset value satisfies the preset condition; or, may include: the difference between the number of displacement information of the target level whose characterizing displacement as the first preset value and the number of displacement information of the target level whose characterizing displacement as not the first preset value satisfies the preset condition; and so on.
  • the target level is determined based on the displacement information of the multiple levels whose displacement is characterized by the first preset value, which can also be described as: the target level is determined based on the displacement information of the multiple levels whose displacement is characterized by the displacement not being the first preset value.
  • the target level is determined based on the displacement information of the multiple levels whose displacement is characterized by the displacement not being the first preset value, which can include: the ratio of the number of displacement information of the target level whose displacement is not the first preset value to the total number of displacement information of the target level satisfies the preset condition; or the difference between the number of displacement information of the target level whose displacement is not the first preset value and the total number of displacement information of the target level satisfies the preset condition; etc., which are not limited in this embodiment.
  • the target level can be determined starting from the first level among the multiple levels.
  • the displacement information to be encoded includes the displacement information from the first level to the level before the target level; or, the target level can be determined starting from the last level among the multiple levels, and the displacement information to be encoded includes the displacement information from the first level among the multiple levels to the target level.
  • a target level among the multiple levels is determined, wherein the target level is determined based on displacement information representing a displacement of a first preset value among the displacement information of the multiple levels; and displacement information to be encoded is selected from the displacement information corresponding to the subdivided grid based on the target level.
  • the displacement information to be encoded can be determined from the displacement information of multiple levels based on the number of displacement information representing a displacement of the first preset value, and the displacement information of the level carrying a larger amount of information can be selected for encoding, thereby effectively reducing the amount of encoded data and improving encoding efficiency.
  • a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level meets a preset condition.
  • the target level corresponding to the displacement component of each dimension may be determined respectively for the displacement component of each dimension, thereby supporting the selection of displacement information of different levels for encoding for displacement components of different dimensions.
  • the number of displacement components representing a displacement of a first preset value in the displacement components of the target dimension of the target level is equal to the total number of displacement components of the target dimension of the target level.
  • the ratio meets the preset conditions.
  • the ratio of the number of displacement information representing the displacement of the first preset value in the displacement information of the target layer to the total number of displacement information of the target layer meets the preset conditions, thereby supporting the selection of layers with a relatively large proportion of non-zero displacement information for displacement encoding and discarding layers with a relatively small proportion of non-zero displacement information, which can effectively reduce the amount of encoded data and improve encoding efficiency.
  • determining a target level among the multiple levels includes:
  • a target level from a first level among the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is greater than the first preset ratio;
  • the displacement information to be encoded includes displacement information from the first level to a level before the target level.
  • the first preset value may be 0.
  • the first preset ratio may be 80%, 85%, 90%, 95%, etc., and this embodiment does not limit the first preset ratio.
  • the displacement information to be encoded may be empty.
  • the target level corresponding to the displacement component of each dimension can be determined for each displacement component of each dimension, so as to support the selection of displacement information of different levels for encoding for displacement components of different dimensions. It should be noted that in the process of determining the target level corresponding to the displacement components of each dimension, the displacement components of each dimension can be set with a corresponding first preset ratio, and the first preset ratios corresponding to the displacement components of different dimensions can be the same or different.
  • the ratio of the number of displacement components representing a displacement of a first preset value in the displacement components of the target dimension of the target level to the total number of displacement components of the target dimension of the target level is greater than the first preset ratio; when the target level is not the first level, the displacement information to be encoded corresponding to the target dimension includes the displacement components of the target dimension from the first level to the level before the target level.
  • the ratio of the number of displacement information of the target level that represents displacement as the first preset value to the total number of displacement information of the target level is greater than the first preset ratio. It can also be described as: the ratio of the number of displacement information of the target level that represents displacement not as the first preset value to the total number of displacement information of the target level is less than or equal to the first preset ratio.
  • the proportion of k in the level can be calculated. If the proportion is less than or equal to the first preset ratio, the displacement components of the target dimension of the level and all levels after the level are removed, and only the displacement components of the target dimension before the level are encoded; if the proportion does not meet the requirement of being less than or equal to the first preset ratio, the same statistical calculation is performed on the next level until a level that meets the conditions is found or all subdivided levels are traversed.
  • the target level is determined starting from the first level among the multiple levels, wherein the ratio of the number of displacement information representing the displacement as the first preset value in the displacement information of the target level to the total number of displacement information of the target level is greater than the first preset ratio; when the target level is not the first level, the displacement information to be encoded includes the displacement information from the first level to the level before the target level. In this way, it is possible to Starting from one level to another for level selection and discarding the displacement information of the target level and subsequent levels that carry less information can effectively reduce the amount of encoded data and improve encoding efficiency.
  • determining a target level among the multiple levels includes:
  • the displacement information to be encoded includes displacement information from a first level among the multiple levels to the target level.
  • the first preset value may be 0.
  • the second preset ratio may be 5%, 8%, 10%, 15%, etc. This embodiment does not limit the second preset ratio.
  • the target level corresponding to the displacement component of each dimension can be determined for each displacement component of each dimension, so as to support the selection of displacement information of different levels for encoding for displacement components of different dimensions. It should be noted that in the process of determining the target level corresponding to the displacement component of each dimension, the displacement component of each dimension can be set with a corresponding second preset ratio, and the second preset ratios corresponding to the displacement components of different dimensions can be the same or different.
  • the ratio of the number of displacement components representing a displacement of a first preset value in the displacement components of the target dimension of the target level to the total number of displacement components of the target dimension of the target level is less than or equal to a second preset ratio.
  • the ratio of the number of displacement information of the target level that represents displacement of the first preset value to the total number of displacement information of the target level is less than or equal to the second preset ratio. It can also be described as: the ratio of the number of displacement information of the target level that represents displacement not of the first preset value to the total number of displacement information of the target level is greater than the second preset ratio.
  • the displacement component of the target dimension is statistically calculated from the last level forward, the number k of non-zero displacement components of the target dimension in the level is counted, and the proportion of k in the level is calculated. If the proportion of the last level is greater than the second preset ratio, the forward traversal is stopped. If the proportion of the last level meets the requirements (less than or equal to the second preset ratio), the displacement component of the target dimension of the level is removed, and the same statistical calculation and proportion judgment are continued for the previous level until a level that does not meet the requirements is encountered or all subdivided levels are traversed.
  • the target level is determined starting from the last level of the multiple levels, wherein the ratio of the number of displacement information representing the displacement as the first preset value in the displacement information of the target level to the total number of displacement information of the target level is less than or equal to the second preset ratio; the displacement information to be encoded includes the displacement information from the first level of the multiple levels to the target level.
  • the level selection can be started from the last level, and the displacement information of the levels after the target level that carry less information is discarded, which can effectively reduce the amount of encoded data and improve the encoding efficiency.
  • the displacement information corresponding to the subdivided grid includes: displacement components of a first dimension of N levels, displacement components of a second dimension of the N levels, and displacement components of a third dimension of the N levels;
  • the displacement information to be encoded includes: displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, The displacement components of the third dimension of the N levels, as well as the displacement components of the third dimension of M3 levels among the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.
  • the selected displacement information to be encoded includes: the displacement components of the first dimension of the M1 levels, the displacement components of the second dimension of the M2 levels, and the displacement components of the third dimension of the M3 levels.
  • the displacement information to be encoded includes the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, thereby supporting the selection of displacement components of different levels for displacement components of each dimensionality for displacement encoding, which can improve the flexibility of displacement encoding while improving the encoding efficiency.
  • the code stream corresponding to the three-dimensional grid includes the first encoding result and the second encoding result, and the second encoding result includes the encoding result of the first flag bit;
  • the second encoding result also includes an encoding result of the first parameter
  • the second encoding result also includes an encoding result of the first parameter, an encoding result of the second parameter, and an encoding result of the third parameter.
  • the first parameter is used to characterize the M1 levels
  • the second parameter is used to characterize the M2 levels
  • the third parameter is used to characterize the M3 levels.
  • the second preset value and the third preset value are different values.
  • the second preset value may be 0, and the third preset value may be 1; or, the second preset value may be 1, and the third preset value may be 0.
  • This embodiment does not limit the second preset value and the third preset value.
  • the displacement component of the first dimension may be a displacement component of higher importance. In some scenarios, it may be allowed to encode only the displacement component of the first dimension.
  • the decoding end can determine the dimension of the encoded displacement component.
  • the displacement component of the first dimension may be a normal component of the displacement.
  • the decoding end can determine the displacement component of the encoding through the first flag; and through the parameter information included in the second encoding result, the decoding end can determine the level of the displacement information selected by the encoding.
  • encoding the displacement information to be encoded to obtain a first encoding result includes:
  • the padded video frame is encoded to obtain a first encoding result.
  • the arranged video frames may be filled based on a preset video filling value, which may be a predetermined value known to the decoding end.
  • the displacement information to be encoded is arranged in a video frame; the arranged video frame is padded to obtain a padded video frame; the padded video frame is encoded to obtain a first encoding result.
  • the video padding process can make the resolution of each frame in the video the same, and the pixel point data can be arranged in a rectangle.
  • encoding the displacement information to be encoded to obtain a first encoding result includes:
  • entropy coding is performed on the displacement information to be encoded to obtain a first coding result, and the encoding of the displacement information can be achieved through entropy coding.
  • the embodiment of the present application proposes a new encoding and decoding method for dynamic mesh displacement, which allows only partial hierarchical data of each dimensional component of the displacement to be encoded, and then the displacement data recovery operation is performed on each dimension at the decoding end.
  • Displacement is an important part of the dynamic mesh encoding and decoding process. It stores the distance information from the vertex of the subdivided mesh obtained after the basic mesh is subdivided to the nearest neighbor point of the original input mesh in the normal direction. It is a three-dimensional data, and the x, y, and z components can be used to represent its three-dimensional data respectively. Due to the existence of the subdivision operation, the displacement has multiple subdivision levels and a base level.
  • the displacement data is first input into the pre-processing module, which includes all operations before encoding except data selection, such as transformation, quantization, etc.; then, each dimensional component of the pre-processed displacement data is respectively input into the corresponding level selection module, and these modules will output the corresponding possible x, y, and z component label data according to different selection methods during the selection process; finally, the selected displacement level data is input into the encoding module for encoding to obtain the displacement code stream.
  • the pre-processing module includes all operations before encoding except data selection, such as transformation, quantization, etc.
  • the displacement code stream is decoded by the decoding method corresponding to the encoding method; then, each dimensional component of the decoded data is respectively input into the corresponding data filling module, and these modules fill each dimensional component of the decoded partial displacement data into data with complete length according to the possible received x, y, and z component label data, and finally restore the three-dimensional displacement data with complete length; finally, the filled displacement data is input into the post-processing module to obtain the displacement data.
  • the operation of the post-processing module is the reverse implementation of the operation of the pre-processing module at the encoding end, such as inverse quantization and inverse transformation.
  • FIG. 8 is a flow chart of a grid decoding method provided in an embodiment of the present application, which can be applied to a decoding end device. As shown in FIG. 8 , the grid decoding method includes the following steps:
  • Step 201 Decode a first encoding result in a code stream corresponding to a three-dimensional grid to obtain decoded displacement information
  • Step 202 Decode the third encoding result in the code stream to obtain a basic grid, and subdivide the basic grid to obtain a subdivided grid;
  • Step 203 performing padding processing on the decoded displacement information to obtain padded displacement information, wherein the number of levels of the padded displacement information is greater than or equal to the number of levels of the decoded displacement information;
  • Step 204 Reconstruct the grid based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.
  • decoding the first encoding result in the code stream corresponding to the three-dimensional grid to obtain decoded displacement information includes:
  • Decoded displacement information is obtained from the video frame, where the decoded displacement information is displacement information in the video frame excluding a preset video filling value.
  • the method further comprises:
  • the decoding of the first encoding result in the code stream corresponding to the three-dimensional grid to obtain the decoded displacement information includes:
  • Decoded displacement information is obtained from the video frame based on the target parameter.
  • decoding the first encoding result in the code stream corresponding to the three-dimensional grid to obtain decoded displacement information includes:
  • the first encoding result in the code stream corresponding to the three-dimensional grid is entropy decoded to obtain decoded displacement information.
  • performing padding processing on the decoded displacement information to obtain the padded displacement information includes:
  • the decoded displacement information is filled based on the number of vertices of the subdivided mesh to obtain filled displacement information.
  • the filled displacement information includes N levels of displacement components of the first dimension, N levels of displacement components of the second dimension, and N levels of displacement components of the third dimension;
  • the decoded displacement information includes the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.
  • the method further comprises:
  • the target parameter when the first flag bit is a second preset value, the target parameter includes the first parameter; or,
  • the target parameter includes a first parameter, a second parameter and a third parameter.
  • the first parameter is used to characterize the M1 levels
  • the second parameter is used to characterize the M2 levels
  • the third parameter is used to characterize the M3 levels.
  • Embodiment 1 is a diagrammatic representation of Embodiment 1:
  • the displacement information is encoded and decoded based on a video encoding and decoding method.
  • the displacement data is input into the pre-processing module, which performs a series of pre-processing operations on the original displacement data, such as transformation and quantization. Then, each dimensional component of the pre-processed displacement data is input into the corresponding level selection module.
  • the level selection module selects the level by judging whether the proportion of the number of non-zero corresponding displacement components in the level is less than or equal to the set threshold. Among them, when different dimensional components are selected for level, the setting of their thresholds is independent of each other. Level selection includes the following two methods:
  • the first method starting from the first level of displacement data, count the number k of non-zero displacement corresponding components in this level, and calculate the proportion of k in this level. If the proportion is less than or equal to the set threshold, remove the displacement corresponding components of this level and all levels after this level, and only encode the displacement corresponding components before this level; if the proportion does not meet the requirements, continue to perform the same statistical calculation on the next level until a level that meets the conditions is found or all subdivided levels are traversed.
  • the second method Start from the last level and continue to perform statistical calculations. If the proportion of the last level does not meet the requirements, stop traversing forward. If the proportion of the last level meets the requirements, remove the corresponding component of the displacement of the level, and continue to perform the same statistical calculations and proportion judgments on the previous level until a level that does not meet the requirements is encountered or all subdivided levels are traversed.
  • the selected displacement data can be arranged into the YUV image according to a predetermined rule.
  • the video arrangement process in order to ensure that the resolution of each frame in the YUV video is the same and the pixel data can be arranged into a rectangle, the YUV video can be filled.
  • the video filling value to be filled can be an agreed value known to the decoding end.
  • the displacement decoding method based on video decoding has different implementation methods. Two possible implementation methods are described below.
  • the displacement decoding process of the selected level number of each dimension component of the unmarked displacement is as follows: for the YUV video obtained by video decoding, all the image pixel values are extracted in the order in which the encoder arranges the displacement data into the video. Among them, the extracted image pixel value contains two parts of data: one is the displacement data selected by the encoder; the other is the value of the video filling at the encoder, and the video filling value is a value agreed upon between the encoder and the decoder. After extracting the pixel value data, according to the video filling value agreed upon with the encoder, the video filling part in the pixel value data can be removed to obtain the displacement data selected by the encoder.
  • YUV is a color encoding method, "Y" represents the brightness component (Luminance or Luma), that is, the grayscale value, and "U” and "V” represent the chrominance component (Chrominance or Chroma).
  • each dimensional component of the displacement data is filled with zeros until the number of data is the same as the number of vertices of the mesh obtained after the decoded mesh is subdivided.
  • the restored complete displacement data can be obtained.
  • the number of vertices of the mesh obtained after the decoded mesh is subdivided can be obtained in other modules of the dynamic mesh decoding framework, such as the V-DMC framework, which can be obtained by subdividing the decoded basic mesh.
  • the restored complete displacement data is input into the post-processing module to obtain the original displacement data and complete the decoding of the displacement.
  • the operation of the post-processing module is the reverse implementation of the operation of the pre-processing module on the encoding end, such as inverse quantization and inverse transformation.
  • the displacement decoding process of marking the number of selected levels of each dimensional component of the displacement is as follows: Since the number of levels of the displacement and the number of displacement data in each level are exactly the same as the decoded basic grid after subdivision, the number of displacement data selected by the encoder in each displacement dimensional component can be obtained according to the number of selected levels of each dimensional component in the decoded basic grid after subdivision. According to the number of displacement data of each dimensional component of the displacement, the data of each selected displacement dimensional component is extracted from the YUV video obtained by video decoding in the order in which the displacement data is arranged into the video by the encoder.
  • the post-processing module After obtaining the data of each dimensional component of the displacement, zero padding is performed at the end of the data of each dimensional component according to the number of vertices of the mesh after subdivision of the decoding grid, until the number of data is the same as the number of vertices; then the padded complete displacement data is input into the post-processing module to obtain the original displacement data, and the decoding of the displacement is completed.
  • the operation of the post-processing module is the reverse implementation of the operation of the pre-processing module of the encoder, such as inverse quantization and inverse transformation.
  • Embodiment 2 is a diagrammatic representation of Embodiment 1:
  • the displacement information is encoded and decoded based on an entropy coding method.
  • the displacement coding process is shown in Figure 12.
  • the displacement data is input into the pre-processing module, which will perform a series of pre-processing operations on the original displacement data, such as transformation, quantization, etc.; then, for each dimensional component of the pre-processed displacement data, it is input into the corresponding level selection module respectively.
  • the level selection module selects the level by judging whether the proportion of the number of non-zero corresponding components of the displacement in the level is less than or equal to the set threshold. Among them, when different dimensional components are selected for the level, the setting of their thresholds is independent of each other. Level selection includes the following two methods:
  • the first method starting from the first level of displacement data, count the number k of non-zero displacement corresponding components in this level, and calculate the proportion of k in this level. If the proportion is less than or equal to the set threshold, remove the displacement corresponding components of this level and all levels after this level, and only encode the displacement corresponding components before this level; if the proportion does not meet the requirements, perform the same statistical calculation on the next level until a level that meets the conditions is found or all subdivided levels are traversed.
  • the second method Start from the last level and continue to perform statistical calculations. If the proportion of the last level does not meet the requirements, stop traversing forward. If the proportion of the last level meets the requirements, remove the corresponding component of the displacement of the level, and continue to perform the same statistical calculations and proportion judgments on the previous level until a level that does not meet the requirements is encountered or all subdivided levels are traversed.
  • the selected displacement data can be directly entropy coded.
  • the specific entropy coding method is not limited here, for example, context-based adaptive variable length coding (Context-based Adaptive Variable Length Coding) can be used. Coding, CAVLC), Context Adaptive Binary Arithmetic Coding (CABAC), etc.
  • the displacement code stream is first entropy decoded to obtain each dimension component of the selected displacement, and then zero padding is performed at the end of each dimension component of the displacement according to the number of vertices of the mesh after the decoded mesh is subdivided, until the number of data is the same as the number of vertices.
  • the number of vertices of the mesh after the decoded mesh is subdivided can be obtained in other modules of the dynamic mesh decoding framework, such as the V-DMC framework, which can be obtained by subdividing the decoded basic mesh.
  • the restored complete displacement data is input into the post-processing module to obtain the original displacement data, and the decoding of the displacement is completed.
  • the operation of the post-processing module is the reverse implementation of the operation of the pre-processing module on the encoding end, such as inverse quantization and inverse transformation.
  • Embodiment 3 is a diagrammatic representation of Embodiment 3
  • the displacement information is encoded and decoded based on the V-DMC framework.
  • the grid encoding method performed by the encoding end includes the following process:
  • Mesh simplification is to simplify the current input mesh into a basic mesh with relatively few points and faces, and keep the shape of the original mesh as much as possible.
  • the focus of mesh simplification is the simplification operation and the corresponding error metric.
  • a feasible mesh simplification operation is shown in Figure 15, which merges the vertices at both ends of the edge into one vertex and deletes the connection between the two vertices. Repeat this process in the entire mesh according to certain rules to reduce the number of faces and vertices of the mesh to the target value.
  • the error metric of the vertex is the sum of the error metrics of the two vertices on the edge.
  • the error generated by merging an edge is the sum of the distances of all adjacent planes from the merged vertex to the original two vertices of the edge.
  • the mesh simplification process begins iteratively. First, the vertex error of the initial mesh is calculated to obtain the error of each edge. Then each edge is arranged from small to large error, and the edge with the smallest error is selected for merging each time. At the same time, the position of the merged vertex is calculated, and the error of all edges related to the merged vertex is updated. That is, the order of edge arrangement is updated to ensure that each iteration is based on the global error metric. Through iteration, the mesh faces are simplified to the number required to meet lossy coding.
  • Texture coordinates may be regenerated based on the reconstructed base mesh of the current frame. This step requires generating texture coordinates for each attribute map of the input mesh. If multiple attribute maps have similar characteristics, they can share the same texture coordinates. There are many ways to generate texture coordinates, including mesh parameterization. There are many algorithms for parameterizing meshes, such as the Isocharts algorithm, which uses spectral analysis to achieve stretch-driven 3D mesh parameterization, UV-unwrapping, slicing, and packing the 3D mesh into a 2D texture domain.
  • the subdivision and deformation modules are optional modules that can improve the quality of the mesh reconstructed at the decoding end. This module can be omitted when the quality of the basic mesh can meet the application requirements.
  • the basic idea of the subdivision and deformation module is shown in Figure 16.
  • the same concept is applied to the input three-dimensional (3D) mesh to generate displacement vector information.
  • the input two-dimensional (2D) curve represented by a 2D polyline
  • the original curve is first downsampled to generate a basic curve/polyline, called the "simplified” curve.
  • the subdivision scheme is then applied to the simplified polyline to generate the "subdivided” curve.
  • the subdivided polyline is then deformed to obtain a better approximation of the original curve. That is, the geometric displacement vector is calculated for each vertex of the subdivided mesh so that the shape of the subdivided curve is as close to the shape of the original curve as possible.
  • These geometric displacement vectors are the geometric displacement vector information (vertex displacement) output by the module.
  • the same deformation process is also applied to the attribute information corresponding to the vertex to obtain the corresponding attribute displacement vector.
  • the basic mesh compression module compresses the basic mesh information output by the subdivision deformation module.
  • intra-frame mode the input of the basic mesh compression module is a three-dimensional mesh, including geometric coordinates, connection relationships, and attribute information associated with vertices.
  • inter-frame mode the input of the basic mesh compression module is the motion vector and its identifier and possible intra-frame sub-meshes. After encoding, the encoded mesh needs to be reconstructed so that it can be provided to subsequent modules for processing.
  • the grid coding in intra-frame mode can use the existing grid encoder to encode the input basic grid, such as Draco, etc.
  • the grid encoder type is encoded through auxiliary information and passed to the decoding end;
  • the motion vector identifier is an array consisting of numbers greater than or equal to 0.
  • the array size is the same as the number of vertices of the base grid of the reference frame corresponding to the temporal motion vector identifier.
  • the array can be directly encoded using an existing entropy coding algorithm, such as CABAC.
  • the base grid is encoded, the base grid is reconstructed.
  • the encoded grid is decoded to obtain a reconstructed grid.
  • the inter-frame sub-grid For the basic grid information encoded in the inter-frame mode, it is necessary to reconstruct the inter-frame sub-grid according to the motion vector and the identifier. If there is an intra-frame sub-grid in the inter-frame mode, the reconstructed inter-frame sub-grid is merged with the intra-frame sub-grid to obtain the reconstructed basic grid.
  • Encoding the vertex displacement includes the following process:
  • Adjust the vertex displacement order according to the reconstructed base mesh First, subdivide the reconstructed base mesh. The order of the displacements is then adjusted to be the same as the subdivided base mesh vertex order.
  • the coordinate system of the vertex displacements can be converted from a Cartesian coordinate system to a local coordinate system.
  • a transformation can be applied to the displacement vector to reduce the correlation between its data.
  • An optional transformation is a linear wavelet transform, and its prediction process is defined as follows:
  • v * is the set of all adjacent vertices of vertex v.
  • the transformed displacement vector is called wavelet coefficient.
  • the transformed displacement vector i.e., the wavelet coefficient
  • the transformed displacement vector can be quantified. There are many ways to quantify it.
  • disp[v] represents the transformed value of the displacement vector of the vth vertex
  • d[k] represents the kth value of the displacement vector
  • floor represents rounding down
  • scale[k] is an intermediate parameter
  • bitDepthPosition represents the bit depth of the geometric position of the current mesh vertex
  • qp[k] represents the quantization parameter of the kth coefficient.
  • lodScale[k] represents the coefficient of the quantization parameter of the current subdivision level.
  • the x, y, and z three-dimensional components of the quantized wavelet transform coefficients are respectively subjected to a level selection operation.
  • the level selection operation selects the level by judging whether the proportion of the number of non-zero corresponding components in the level of the quantized wavelet transform coefficients in the level is less than or equal to the set threshold. Specifically, starting from the first level of the quantized wavelet transform coefficients, the number k of non-zero corresponding components in the level is counted, and the proportion of k in the level is calculated.
  • the proportion is less than or equal to the set threshold, the corresponding components of the wavelet transform coefficients of the level and all levels after the level are removed, and only the corresponding components of the wavelet transform coefficients before the level are encoded; if the proportion does not meet the requirements, the same statistical calculation is performed on the next level until a level that meets the conditions is found or all subdivided levels are traversed. Alternatively, statistical calculations are performed continuously from the last level forward. If the proportion of the last level does not meet the requirements, the forward traversal is stopped; if the proportion of the last level meets the requirements, the corresponding components of the wavelet transform coefficients of this level are removed, and the same statistical calculations and proportion judgments are performed on the previous level until a level that does not meet the requirements is encountered. Until the requested level or all subdivision levels are traversed.
  • the number of levels selected for each dimensional component can be marked and stored in the auxiliary information and transmitted to the decoding end; or the number of levels selected for each dimensional component can be not marked, and the displacement information only needs to be filled in at the decoding end according to the number of decoded mesh vertices.
  • the displacement data can be arranged on the two-dimensional image as follows:
  • the position of the corresponding NxM pixel block on the image is calculated according to the Morton order.
  • the block arrangement is not limited here, and other arrangement schemes can also be used, such as zigzag order, raster order, etc.
  • the encoder can explicitly specify the corresponding arrangement scheme in the bitstream. In order to ensure that the resolution of each frame of the generated YUV video is the same and the number of pixels can be arranged in a rectangle, the video filling operation can be performed, and the video filling value can be an agreed value known by the decoder.
  • the wavelet coefficients After arranging the wavelet coefficients on a two-dimensional image, they can be directly encoded using a video encoder to obtain a displacement code stream.
  • the selection level of each dimensional component of the displacement can be divided into the following two methods according to whether the level is marked when selecting the level:
  • the first method unmark the number of selected levels
  • the number of levels for selecting each dimensional component of the unmarked displacement is obtained.
  • the quantized wavelet transform coefficients firstly, all the pixel data in the two-dimensional image are taken out according to the arrangement method during encoding; the extracted pixel data contains two values, one is the quantized wavelet transform coefficient selected by the level selection module, and the other is the video filling value in the two-dimensional arrangement process. After obtaining the pixel data, the video filling part in the pixel data can be removed according to the video filling value to obtain the data of each dimensional component of the quantized wavelet transform coefficient selected by the level selection module.
  • the zero-filling operation is performed on each dimensional component of the selected quantized wavelet transform coefficient according to the number of vertices after the subdivision of the reconstructed basic mesh, until the number of data of each dimensional component selected is the same as the number of vertices after the subdivision of the reconstructed basic mesh, and the quantized wavelet transform coefficient can be obtained.
  • the second method mark the number of selected levels
  • the number of selected levels of each dimensional component of the displacement is marked.
  • the number of levels of the quantized wavelet transform coefficients and the number of data in each level are exactly the same as those of the subdivided reconstructed basic grid. Therefore, in the subdivided reconstructed basic grid, the number of data of each dimensional component of the quantized wavelet transform coefficients selected by the level selection module can be obtained according to the number of selected levels of each dimensional component. Then, according to the wavelet transform The number of component data of each dimension of the coefficient is obtained by taking out the selected data in the two-dimensional image according to the arrangement method during encoding.
  • the quantized wavelet transform coefficients are dequantized and inversely transformed to obtain the displacement vector consistent with the decoding end.
  • the subdivided reconstructed basic grid is obtained according to the corresponding geometric displacement vector to obtain the reconstructed subdivided deformed grid, which is passed to the attribute graph conversion module for attribute graph conversion.
  • the attribute map conversion is performed according to the input original mesh, the input original attribute map and the reconstructed deformed mesh, as shown in FIG18 .
  • the pixel is marked as an empty pixel, which can be filled with a filling algorithm later;
  • the two-dimensional texture coordinates are mapped to three-dimensional geometric coordinates, that is, mapped to the points on the subdivided deformation grid corresponding to the texture coordinates, as shown by M(x, y, z) in FIG. 18 ;
  • the texture coordinates are used to sample the input original attribute map to obtain the value A′(i′,j′) of the corresponding pixel position;
  • the empty pixels therein can be filled using existing filling algorithms (such as the Push-Pull algorithm).
  • the existing video encoders such as H.264/AVC, H.265/HEVC, H.266/VVC, etc.
  • the existing video encoders can be used to encode it to obtain the bitstream of the output attribute map, where AVC is Advanced Video Coding, HEVC is High Efficiency Video Coding, and VVC is Versatile Video Coding.
  • color space conversion and chroma subsampling operations can be selectively applied to enable video encoding to obtain better rate-distortion performance, such as color space conversion from RGB 444 to YUV420.
  • the texture coordinates corresponding to each attribute map need to be identified by auxiliary information during encoding.
  • each module such as the type of grid encoder, the type of video encoder, Different schemes are allowed to be used in this coding framework, such as type, grid subdivision scheme, spatial displacement vector transformation scheme, etc. Therefore, the selected scheme can be passed to the decoding end to guide the correct decoding.
  • the auxiliary information includes the type of static grid encoder, the type of video encoder, the grid subdivision scheme, the number of grid iterations, the geometric displacement vector transformation scheme, the coefficient arrangement scheme, the number of levels selected for the displacement x, y, and z components, or the color conversion scheme, etc.
  • the grid part encoded using the inter-frame coding mode it also includes the corresponding reference frame list, etc.
  • the basic grid part bitstream, texture coordinate part bitstream, displacement vector video bitstream, attribute map video bitstream and auxiliary information bitstream are mixed to obtain the encoded bitstream finally output by the encoding end.
  • the grid decoding method performed by the decoding end includes the following process:
  • the auxiliary information is used to indicate the type of static grid encoder, the type of video encoder, grid subdivision scheme, grid iteration number, geometric displacement vector transformation scheme, coefficient arrangement scheme, displacement truncation mark, or color conversion scheme, etc.
  • the grid part encoded using the inter-frame coding mode it also includes the corresponding reference frame list, etc.
  • the auxiliary information can be used to guide the decoding end to perform correct decoding, and the information is represented by the corresponding syntax parameters after decoding.
  • the decoding of the base grid can be divided into intra-frame mode and inter-frame mode.
  • the base grid decoding is only responsible for decoding the information representing the base grid.
  • the output of the base grid decoding is a three-dimensional grid, which contains geometric information and connection relationships, as well as possible attribute information and texture coordinate information.
  • the base grid decoding is responsible for decoding the motion vector and identifier as well as the possible intra-frame sub-grid, and the output information is the motion vector, identifier and intra-frame sub-grid.
  • the decoding of the basic grid information in the intra-frame mode is also the decoding of the basic grid.
  • the basic grid can be decoded using the corresponding grid decoder through the static grid decoder type indicated by the auxiliary information;
  • the motion vector, identifier and possible intra-frame sub-grid are decoded.
  • the grid decoder indicated by the auxiliary information can be used for decoding.
  • the motion vector identifier is obtained by entropy decoding, and the motion vector is obtained by inverse prediction and inverse quantization after entropy decoding.
  • the subdivision module operation is the same as the encoding end subdivision operation, and the auxiliary information is used to indicate the number of subdivision iterations of different areas of the current basic grid.
  • the displacement vector video code stream is decoded according to the video decoder type indicated in the auxiliary information, including geometric displacement vector video and possible displacement vector video with different attributes.
  • the first method unmark the number of selected levels
  • the number of levels selected for each dimension component of the unmarked displacement is not used.
  • the extracted pixel data contains two values, one is the quantized wavelet transform coefficient selected by the level selection module of the encoding end, and the other is the video filling value in the two-dimensional arrangement process of the encoding end, which is a value agreed upon between the encoding end and the decoding end.
  • the video filling part in the pixel data can be removed according to the video filling value to obtain each dimensional component data of the quantized wavelet transform coefficient selected by the level selection module of the encoding end.
  • each dimensional component of the selected quantized wavelet transform coefficient is filled with zeros respectively, until the number of selected dimensional component data is the same as the number of vertices after the decoding basic grid is subdivided, and the quantized wavelet transform coefficient can be obtained. Then, the quantized wavelet transform coefficient is dequantized, detransformed, and other operations are performed on the quantized wavelet transform coefficient to restore the corresponding displacement vector.
  • the second method Mark the number of selected levels
  • the number of levels for selecting each dimensional component of the displacement is marked.
  • the number of levels of the quantized wavelet transform coefficients and the number of data in each level are exactly the same as the subdivided decoding basic grid. Therefore, in the subdivided decoding basic grid, the number of each dimensional component data of the quantized wavelet transform coefficients selected by the encoding end level selection module can be obtained according to the number of selected levels of each dimensional component. Then, according to the number of each dimensional component data of the wavelet transform coefficient, the selected data is taken out in the two-dimensional image according to the arrangement method during encoding.
  • the quantized wavelet transform coefficients are subjected to inverse quantization, inverse transformation and other operations to restore the corresponding displacement vector.
  • deformedmesh[i].v[k] subdivmesh[i].v[k]+displacement[k]
  • subdivmesh[i].v[k] is the geometric coordinates of the kth vertex after the base mesh is subdivided in the current frame (index is i)
  • displacement[k] is the spatial displacement vector corresponding to the kth vertex
  • deformedmesh[i].v[k] is the geometric coordinates of the kth vertex after subdivision and deformation in the current frame.
  • the attribute displacement vector is applied to the corresponding attribute value in the same way.
  • subdivmesh[i].vt[k] represents the k-th texture coordinate after the base mesh is subdivided in the current frame
  • attdisplacement[k] represents the k-th value of the attribute displacement vector
  • deformedmesh[i].vt[k] represents the value of the k-th texture coordinate after subdivision and deformation in the current frame.
  • the attribute map decoder is responsible for decoding the attribute map bitstream.
  • the attribute map is decoded using the video decoder indicated in the auxiliary information.
  • the optional color space conversion is performed to obtain an image format consistent with the input attribute map of the encoder, and the attribute map of the final decoded output is obtained.
  • each attribute map is decoded according to the identification and the corresponding texture. Corresponding to the logical coordinates.
  • Embodiment 4 is a diagrammatic representation of Embodiment 4:
  • the syntax structure designed for the V-DMC codec framework is used as an example to illustrate the syntax structure of the code stream corresponding to the three-dimensional grid:
  • Atlas sequence parameter set vdmc extension RBSP syntax refers to the Atlas sequence parameter set vdmc extension network raw byte sequence payload (Raw byte sequence payload, RBSP) syntax.
  • Descriptor refers to a descriptor symbol.
  • asps_vdmc_ext_subdivision_method indicates the subdivision method of the current mesh sequence.
  • Table 2 describes the corresponding relationship between the subdivision method and asps_vdmc_ext_subdivision_method.
  • Name of subdivision method refers to the name of the subdivision method.
  • asps_vdmc_ext_subdivision_iteration_count indicates the number of mesh subdivision iterations. If it does not exist, the asps_vdmc_ext_subdivision_iteration_count value is considered to be 0.
  • asps_vdmc_ext_displacement_coordinate_system indicates the coordinate system identifier of the current grid sequence.
  • Table 3 describes the correspondence between the supported coordinate systems and asps_vdmc_ext_displacement_coordinate_system.
  • Name of displacement coordinate system refers to the name of the displacement coordinate system.
  • asps_vdmc_ext_transform_method indicates the wavelet transform identifier applied to the displacement.
  • Table 4 describes the correspondence between the supported wavelet transform methods and asps_vdmc_ext_transform_method.
  • Name of transform method refers to the name of the transformation method.
  • asps_vdmc_ext_num_attribute_video represents the number of attributes sent through the video sub-bitstream.
  • asps_vdmc_ext_attribute_type_id[i] indicates the attribute type of the attribute video data unit with index i.
  • asps_vdmc_ext_attribute_frame_width[i] indicates the atlas frame width of the attribute video data unit with index i.
  • asps_vdmc_ext_attribute_frame_height[i] represents the atlas frame height of the attribute video data unit with index i.
  • asps_vdmc_ext_attribute_transform_method[i] applies to the transform identifier of the attribute with index i in the attribute video data unit.
  • Table 5 describes the correspondence between the supported transformation methods and asps_vdmc_ext_attribute_transform_method.
  • Name of transform method refers to the name of the transformation method.
  • asps_vdmc_ext_packing_method 0 indicates that the displacement component samples are arranged in ascending order
  • asps_vdmc_ext_packing_method 1 indicates that the displacement component samples are arranged in descending order.
  • Atlas frame parameter set vdmc extension RBSP syntax refers to the Atlas frame parameter set vdmc extended RBSP syntax.
  • afps_vdmc_ext_overriden_flag is equal to 1, indicating that the following parameters exist in the atlas frame parameter set extension:
  • afps_vdmc_ext_subdivision_enable_flag is equal to 1, which indicates that the following parameters exist in the atlas frame parameter set extension: afps_vdmc_ext_subdivision_method and afps_vdmc_ext_subdivision_iteration_count.
  • afps_vdmc_ext_subdivision_enable_flag does not exist, its value is inferred to be 0.
  • afps_vdmc_ext_displacement_coordinate_system_enable_flag is equal to 1, indicating that afps_vdmc_ext_displacement_coordinate_system exists in the atlas frame parameter set extension.
  • afps_vdmc_ext_transform_method_enable_flag is equal to 1 to indicate that afps_vdmc_ext_transform_method exists in the atlas frame parameter set extension.
  • afps_vdmc_ext_transform_method_enable_flag does not exist, its value is inferred to be equal to 0.
  • afps_vdmc_ext_transform_parameters_enable_flag 1 indicates the presence of vdmc_lifting_transform_parameters in the atlas frame parameter set extension.
  • afps_vdmc_ext_transform_parameters_enable_flag not present, its value is inferred to be equal to 0.
  • afps_vdmc_ext_subdivision_method indicates the subdivision method of the current frame.
  • afps_vdmc_ext_subdivision_method does not exist, afps_vdmc_ext_subdivision_method is equal to asps_vdmc_ext_subdivision_method.
  • afps_vdmc_ext_subdivision_iteration_count indicates the number of iterations of the subdivision. afps_vdmc_ext_subdivision_iteration_count is equal to 0 when afps_vdmc_ext_subdivision_method is equal to 0 and afps_vdmc_ext_subdivision_iteration_count is not present.
  • afps_vdmc_ext_subdivision_method When afps_vdmc_ext_subdivision_method is not 0 and afps_vdmc_ext_subdivision_iteration_count does not exist, afps_vdmc_ext_subdivision_iteration_count is equal to asps_vdmc_ext_subdivision_iteration_count.
  • afps_vdmc_ext_displacement_coordinate_system indicates the coordinate system identifier of the current frame grid displacement.
  • afps_vdmc_ext_displacement_coordinate_system does not exist, afps_vdmc_ext_displacement_coordinate_system is equal to asps_vdmc_ext_displacement_coordinate_system.
  • afps_vdmc_ext_transform_method indicates an identifier applied to displacement transform.
  • afps_vdmc_ext_transform_method is not present, afps_vdmc_ext_transform_method is equal to asps_vdmc_ext_transform_method.
  • afps_ext_disp_x_lod_enable_flag indicates the identifier of the number of layers transmitted by the current frame displacement x component.
  • Table 7 describes the correspondence between the number of layers transmitted and afps_ext_disp_x_lod_enable_flag.
  • the maximum value of afps_ext_disp_x_lod_enable_flag depends on afps_vdmc_ext_subdivision_iteration_count.
  • afps_ext_disp_y_lod_enable_flag indicates the identifier of the number of layers transmitted by the current frame displacement y component.
  • Table 8 describes the correspondence between the number of transmitted layers and afps_ext_disp_y_lod_enable_flag.
  • the maximum value of afps_ext_disp_y_lod_enable_flag depends on afps_vdmc_ext_subdivision_iteration_count.
  • afps_ext_disp_z_lod_enable_flag indicates the identifier of the number of levels transmitted by the current frame displacement z component.
  • Table 9 describes the correspondence between the number of transmitted levels and afps_ext_disp_z_lod_enable_flag.
  • the maximum value of afps_ext_disp_z_lod_enable_flag depends on afps_vdmc_ext_subdivision_iteration_count.
  • the grid coding method provided in the embodiment of the present application can be executed by a grid coding device, or a control module in the grid coding device for executing the grid coding method.
  • the grid coding device provided in the embodiment of the present application is described by taking the grid coding method executed by the grid coding device as an example.
  • FIG. 20 is a structural diagram of a grid coding device provided in an embodiment of the present application.
  • the grid coding device 300 includes:
  • An acquisition module 301 is used to acquire a basic grid corresponding to a three-dimensional grid, and perform subdivision processing based on the basic grid to obtain a subdivided grid;
  • a deformation module 302 configured to perform a deformation operation based on the subdivided grid to obtain a deformed grid
  • a selection module 303 is used to select displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to represent the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid;
  • the encoding module 304 is used to encode the displacement information to be encoded to obtain a first encoding result.
  • the displacement information corresponding to the subdivided grid includes displacement information of multiple levels
  • the selection module includes:
  • a determining unit configured to determine a target level among the multiple levels, wherein the target level is determined based on displacement information representing a displacement of a first preset value among the displacement information of the multiple levels;
  • a selection unit is used to select displacement information to be encoded from the displacement information corresponding to the subdivided grid based on the target level.
  • a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level meets a preset condition.
  • the determining unit is specifically configured to:
  • a target level from a first level among the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is greater than the first preset ratio;
  • the displacement information to be encoded includes displacement information from the first level to a level before the target level.
  • the determining unit is specifically configured to:
  • the displacement information to be encoded includes displacement information from a first level among the multiple levels to the target level.
  • the displacement information corresponding to the subdivided grid includes: displacement components of a first dimension of N levels, displacement components of a second dimension of the N levels, and displacement components of a third dimension of the N levels;
  • the displacement information to be encoded includes: displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.
  • the code stream corresponding to the three-dimensional grid includes the first encoding result and the second encoding result, and the second encoding result includes the encoding result of the first flag bit;
  • the second encoding result also includes an encoding result of the first parameter
  • the second encoding result also includes an encoding result of the first parameter, an encoding result of the second parameter, and an encoding result of the third parameter.
  • the first parameter is used to characterize the M1 levels
  • the second parameter is used to characterize the M2 levels
  • the third parameter is used to characterize the M3 levels.
  • the encoding module is specifically used for:
  • the padded video frame is encoded to obtain a first encoding result.
  • the encoding module is specifically used for:
  • Entropy coding is performed on the displacement information to be encoded to obtain a first coding result.
  • the grid coding device in the embodiment of the present application can be a device, a device or electronic device with an operating system, or a component, an integrated circuit, or a chip in a terminal.
  • the device or electronic device can be a mobile terminal or a non-mobile terminal.
  • the mobile terminal can include but is not limited to the types of terminals listed above, and the non-mobile terminal can be a server, a network attached storage (Network Attached Storage, NAS), a personal computer (personal computer, PC), a television (television, TV), a teller machine or a self-service machine, etc., which is not specifically limited in the embodiment of the present application.
  • the grid coding device provided in the embodiment of the present application can implement each process implemented by the method embodiment of Figure 5 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • the grid decoding method provided in the embodiment of the present application can be executed by a grid decoding device, or a control module in the grid decoding device for executing the grid decoding method.
  • the grid decoding device provided in the embodiment of the present application is described by taking the grid decoding method executed by the grid decoding device as an example.
  • FIG. 21 is a structural diagram of a grid decoding device provided in an embodiment of the present application.
  • the grid decoding device 400 includes:
  • a first decoding module 401 is used to decode a first encoding result in a code stream corresponding to a three-dimensional grid to obtain decoded displacement information
  • a second decoding module 402 is used to decode the third encoding result in the code stream to obtain a basic grid, and to subdivide the basic grid to obtain a subdivided grid;
  • a filling module 403 is used to perform filling processing on the decoded displacement information to obtain filled displacement information, wherein the number of levels of the filled displacement information is greater than or equal to the number of levels of the decoded displacement information;
  • the reconstruction module 404 is used to perform reconstruction processing based on the filled displacement information and the subdivided grid to obtain a reconstructed Build a grid.
  • the first decoding module is specifically used to:
  • Decoded displacement information is obtained from the video frame, where the decoded displacement information is displacement information in the video frame excluding a preset video filling value.
  • the device further comprises:
  • a third decoding module used for decoding the second encoding result in the code stream to obtain a target parameter, where the target parameter is used to represent the number of levels of displacement information;
  • the first decoding module is specifically used for:
  • Decoded displacement information is obtained from the video frame based on the target parameter.
  • the first decoding module is specifically used to:
  • the first encoding result in the code stream corresponding to the three-dimensional grid is entropy decoded to obtain decoded displacement information.
  • the filling module is specifically used for:
  • the decoded displacement information is filled based on the number of vertices of the subdivided mesh to obtain filled displacement information.
  • the filled displacement information includes N levels of displacement components of the first dimension, N levels of displacement components of the second dimension, and N levels of displacement components of the third dimension;
  • the decoded displacement information includes the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.
  • the device further comprises:
  • a fourth decoding module used for decoding the second encoding result in the code stream to obtain a first flag bit and a target parameter
  • the target parameter when the first flag bit is a second preset value, the target parameter includes the first parameter; or,
  • the target parameter includes a first parameter, a second parameter and a third parameter.
  • the first parameter is used to characterize the M1 levels
  • the second parameter is used to characterize the M2 levels
  • the third parameter is used to characterize the M3 levels.
  • the trellis decoding device in the embodiment of the present application can be a device, a device or electronic device with an operating system, or a component, integrated circuit, or chip in a terminal.
  • the device or electronic device can be a mobile terminal or a non-mobile terminal.
  • the mobile terminal can include but is not limited to the types of terminals listed above, and the non-mobile terminal can be a server, a network attached storage (Network Attached Storage, NAS), a personal computer (personal computer, PC), television (TV), ATM or self-service machine, etc., which are not specifically limited in the embodiments of the present application.
  • the grid decoding device provided in the embodiment of the present application can implement each process implemented by the method embodiment of Figure 8 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • the embodiment of the present application further provides a communication device 500, including a processor 501 and a memory 502, the memory 502 stores a program or instruction that can be run on the processor 501, for example, when the communication device 500 is an encoding end device, the program or instruction is executed by the processor 501 to implement the various steps of the above-mentioned grid encoding method embodiment, and can achieve the same technical effect.
  • the communication device 500 is a decoding end device
  • the program or instruction is executed by the processor 501 to implement the various steps of the above-mentioned grid decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • the embodiment of the present application also provides a terminal, including a processor and a communication interface, wherein the processor is used to: obtain a basic grid corresponding to a three-dimensional grid, perform subdivision processing based on the basic grid to obtain a subdivided grid; perform deformation operation based on the subdivided grid to obtain a deformed grid; select displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to characterize the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid; encode the displacement information to be encoded to obtain a first encoding result.
  • the processor is used to: decode the first encoding result in the code stream corresponding to the three-dimensional grid to obtain the decoded displacement information; decode the third encoding result in the code stream to obtain the basic grid, and perform subdivision processing on the basic grid to obtain a subdivided grid; perform filling processing on the decoded displacement information to obtain the filled displacement information, and the number of levels of the filled displacement information is greater than or equal to the number of levels of the decoded displacement information; perform reconstruction processing based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.
  • the terminal embodiment corresponds to the above-mentioned grid coding method or grid decoding method embodiment, and each implementation process and implementation method of the above-mentioned grid coding method or grid decoding method embodiment can be applied to the terminal embodiment and can achieve the same technical effect.
  • Figure 23 is a schematic diagram of the hardware structure of a terminal implementing an embodiment of the present application.
  • the terminal 600 includes but is not limited to: a radio frequency unit 601, a network module 602, an audio output unit 603, an input unit 604, a sensor 605, a display unit 606, a user input unit 607, an interface unit 608, a memory 609 and at least some of the components of a processor 610.
  • the terminal 600 may also 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 610 through a power management system, so as to implement functions such as managing charging, discharging, and power consumption management through the power management system.
  • a power source such as a battery
  • the terminal structure shown in FIG23 does not constitute a limitation on the terminal, and the terminal 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 604 may include a graphics processing unit (GPU) 6041 and a microphone 6042, and the GPU 6041 processes the image data of the static picture or video obtained by the image capture device (such as a camera) in the video capture mode or the image capture mode.
  • the display unit 606 may include a display panel 6061, which may be configured in the form of a liquid crystal display, an organic light emitting diode, etc.
  • the user input unit 607 includes a touch panel 6071 and at least one of the other input devices 6072.
  • the touch panel 6071 also called The touch panel 6071 may include two parts: a touch detection device and a touch controller.
  • Other input devices 6072 may include, but are not limited to, a physical keyboard, function keys (such as a volume control key, a switch key, etc.), a trackball, a mouse, and a joystick, which will not be described in detail here.
  • the RF unit 601 after receiving downlink data from the network side device, can transmit the data to the processor 610 for processing; in addition, the RF unit 601 can send uplink data to the network side device.
  • the RF unit 601 includes but is not limited to an antenna, an amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, etc.
  • the memory 609 can be used to store software programs or instructions and various data.
  • the memory 609 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 609 may include a volatile memory or a non-volatile memory, or the memory 609 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 609 in the embodiment of the present application includes but is not limited to these and any other suitable types of memories.
  • the processor 610 may include one or more processing units; optionally, the processor 610 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 610.
  • the processor 610 is configured to:
  • the displacement information corresponding to the subdivided grid is used to represent the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid;
  • the displacement information to be encoded is encoded to obtain a first encoding result.
  • the displacement information corresponding to the subdivided grid includes displacement information of multiple levels
  • the processor 610 is specifically configured to:
  • a target level among the multiple levels wherein the target level is based on the displacement information of the multiple levels Displacement information indicating that the displacement is a first preset value is determined;
  • the displacement information to be encoded is selected from the displacement information corresponding to the subdivided grid based on the target level.
  • a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level meets a preset condition.
  • the processor 610 is specifically configured to:
  • a target level from a first level among the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is greater than the first preset ratio;
  • the displacement information to be encoded includes displacement information from the first level to a level before the target level.
  • the processor 610 is specifically configured to:
  • the displacement information to be encoded includes displacement information from a first level among the multiple levels to the target level.
  • the displacement information corresponding to the subdivided grid includes: displacement components of a first dimension of N levels, displacement components of a second dimension of the N levels, and displacement components of a third dimension of the N levels;
  • the displacement information to be encoded includes: the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.
  • the code stream corresponding to the three-dimensional grid includes the first encoding result and the second encoding result, and the second encoding result includes the encoding result of the first flag bit;
  • the second encoding result also includes an encoding result of the first parameter
  • the second encoding result also includes an encoding result of the first parameter, an encoding result of the second parameter, and an encoding result of the third parameter.
  • the first parameter is used to characterize the M1 levels
  • the second parameter is used to characterize the M2 levels
  • the third parameter is used to characterize the M3 levels.
  • the processor 610 is specifically configured to:
  • the padded video frame is encoded to obtain a first encoding result.
  • the processor 610 is specifically configured to:
  • the processor 610 is configured to:
  • Reconstruction processing is performed based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.
  • the processor 610 is specifically configured to:
  • Decoded displacement information is obtained from the video frame, where the decoded displacement information is displacement information in the video frame excluding a preset video filling value.
  • the processor 610 is specifically configured to:
  • Decoded displacement information is obtained from the video frame based on the target parameter.
  • the processor 610 is specifically configured to:
  • the first encoding result in the code stream corresponding to the three-dimensional grid is entropy decoded to obtain decoded displacement information.
  • performing padding processing on the decoded displacement information to obtain the padded displacement information includes:
  • the decoded displacement information is filled based on the number of vertices of the subdivided mesh to obtain filled displacement information.
  • the filled displacement information includes N levels of displacement components of the first dimension, N levels of displacement components of the second dimension, and N levels of displacement components of the third dimension;
  • the decoded displacement information includes the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.
  • the processor 610 is specifically configured to:
  • the target parameter when the first flag bit is a second preset value, the target parameter includes a first parameter
  • the target parameter includes a first parameter, a second parameter and a third parameter.
  • the first parameter is used to characterize the M1 levels
  • the second parameter is used to characterize the M2 levels
  • the third parameter is used to characterize the M3 levels.
  • the terminal of the embodiment of the present application also includes: instructions or programs stored in the memory 609 and executable on the processor 610.
  • the processor 610 calls the instructions or programs in the memory 609 to execute the methods executed by the modules shown in Figure 16 or Figure 17 and achieves the same technical effect. To avoid repetition, it will not be repeated here.
  • 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.
  • the various processes of the above-mentioned grid encoding method embodiment are implemented, or when the program or instruction is executed by a processor, the various processes of the above-mentioned grid decoding method embodiment are 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 terminal 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, etc.
  • 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 grid encoding method embodiment, or to implement the various processes of the above-mentioned grid 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 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)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The present application relates to the technical field of computers, and discloses a grid encoding method, a grid decoding method, and a related device. The grid encoding method of an embodiment of the present application comprises: acquiring a base grid corresponding to a three-dimensional grid, and performing subdivision processing on the basis of the base grid, to obtain a subdivided grid (101); performing a deformation operation on the basis of the subdivided grid, to obtain a deformed grid (102); selecting displacement information to be encoded from displacement information corresponding to the subdivided grid (103), the displacement information corresponding to the subdivided grid being used to represent the displacement of vertexes of the subdivided grid relative to the deformed grid, and the number of levels of displacement information to be encoded is less than or equal to the number of levels of displacement information corresponding to the divided grid; encoding the displacement information to be encoded, to obtain a first encoding result (104).

Description

网格编码方法、网格解码方法及相关设备Grid encoding method, grid decoding method and related equipment

相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS

本申请主张在2023年6月21日在中国提交的中国专利申请号No.202310743475.9的优先权,其全部内容通过引用包含于此。This application claims priority to Chinese Patent Application No. 202310743475.9 filed in China on June 21, 2023, the entire contents of which are incorporated herein by reference.

技术领域Technical Field

本申请属于计算机技术领域,具体涉及一种网格编码方法、网格解码方法及相关设备。The present application belongs to the field of computer technology, and specifically relates to a grid encoding method, a grid decoding method and related equipment.

背景技术Background Art

随着多媒体技术的迅速发展,三维模型成为继音频、图像、视频之后的新一代数字化媒体。三维网格和点云是两种常用的三维模型表示方式。三维网格模型与传统的图像、视频等多媒体相比具有更强的交互性和逼真性的特点,应用范围较为广泛。With the rapid development of multimedia technology, 3D models have become a new generation of digital media after audio, images, and videos. 3D mesh and point cloud are two commonly used ways to represent 3D models. Compared with traditional multimedia such as images and videos, 3D mesh models have stronger interactivity and realism, and are widely used.

相关技术中,在编码端对基于三维网格获取的细分网格的位移信息进行编码时,对细分网格的全部位移信息进行编码,需要编码的数据量较大,编码效率较低。In the related art, when the displacement information of the subdivided grid obtained based on the three-dimensional grid is encoded at the encoding end, all the displacement information of the subdivided grid is encoded, and the amount of data required to be encoded is large, and the encoding efficiency is low.

发明内容Summary of the invention

本申请实施例提供一种网格编码方法、网格解码方法及相关设备,能够解决编码效率较低的问题。The embodiments of the present application provide a grid encoding method, a grid decoding method and related equipment, which can solve the problem of low encoding efficiency.

第一方面,提供了一种网格编码方法,包括:In a first aspect, a grid coding method is provided, comprising:

获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格;Obtaining a basic grid corresponding to the three-dimensional grid, and performing subdivision processing based on the basic grid to obtain a subdivided grid;

基于所述细分网格进行变形操作,得到变形网格;Performing a deformation operation based on the subdivided grid to obtain a deformed grid;

从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数;Selecting displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to represent the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid;

对所述待编码位移信息进行编码,得到第一编码结果。The displacement information to be encoded is encoded to obtain a first encoding result.

第二方面,提供了一种网格解码方法,包括:In a second aspect, a grid decoding method is provided, comprising:

对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain decoded displacement information;

对所述码流中的第三编码结果进行解码,得到基础网格,并对所述基础网格进行细分处理,得到细分网格;Decoding the third encoding result in the code stream to obtain a basic grid, and performing subdivision processing on the basic grid to obtain a subdivided grid;

对解码的位移信息进行填充处理,得到填充后的位移信息,所述填充后的位移信息的层级数大于或等于所述解码的位移信息的层级数;Performing padding processing on the decoded displacement information to obtain padded displacement information, wherein the number of levels of the padded displacement information is greater than or equal to the number of levels of the decoded displacement information;

基于所述填充后的位移信息及所述细分网格进行重建处理,得到重建网格。Reconstruction processing is performed based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.

第三方面,提供了一种网格编码装置,包括: In a third aspect, a grid coding device is provided, comprising:

获取模块,用于获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格;An acquisition module is used to acquire a basic grid corresponding to the three-dimensional grid, and perform subdivision processing based on the basic grid to obtain a subdivided grid;

变形模块,用于基于所述细分网格进行变形操作,得到变形网格;A deformation module, used for performing a deformation operation based on the subdivided grid to obtain a deformed grid;

选择模块,用于从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数;a selection module, configured to select displacement information to be encoded from the displacement information corresponding to the subdivided grid, wherein the displacement information corresponding to the subdivided grid is used to represent the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid;

编码模块,用于对所述待编码位移信息进行编码,得到第一编码结果。The encoding module is used to encode the displacement information to be encoded to obtain a first encoding result.

第四方面,提供了一种网格解码装置,包括:In a fourth aspect, a grid decoding device is provided, comprising:

第一解码模块,用于对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息;A first decoding module, used for decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain decoded displacement information;

第二解码模块,用于对所述码流中的第三编码结果进行解码,得到基础网格,并对所述基础网格进行细分处理,得到细分网格;A second decoding module is used to decode the third encoding result in the code stream to obtain a basic grid, and subdivide the basic grid to obtain a subdivided grid;

填充模块,用于对解码的位移信息进行填充处理,得到填充后的位移信息,所述填充后的位移信息的层级数大于或等于所述解码的位移信息的层级数;A filling module, used for performing filling processing on the decoded displacement information to obtain filled displacement information, wherein the number of levels of the filled displacement information is greater than or equal to the number of levels of the decoded displacement information;

重建模块,用于基于所述填充后的位移信息及所述细分网格进行重建处理,得到重建网格。The reconstruction module is used to perform reconstruction processing based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.

第五方面,提供了一种终端,该终端包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤;或者,所述程序或指令被所述处理器执行时实现如第二方面所述的方法的步骤。In a fifth aspect, a terminal is provided, which includes a processor, a memory, and a program or instruction stored in the memory and executable on the processor, wherein the program or instruction, when executed by the processor, implements the steps of the method described in the first aspect; or, the program or instruction, when executed by the processor, implements the steps of the method described in the second aspect.

第六方面,提供了一种终端,包括处理器及通信接口,其中,所述处理器用于:获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格;基于所述细分网格进行变形操作,得到变形网格;从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数;对所述待编码位移信息进行编码,得到第一编码结果。In a sixth aspect, a terminal is provided, comprising a processor and a communication interface, wherein the processor is used to: obtain a basic grid corresponding to a three-dimensional grid, perform subdivision processing based on the basic grid to obtain a subdivided grid; perform deformation operations based on the subdivided grid to obtain a deformed grid; select displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to characterize the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid; encode the displacement information to be encoded to obtain a first encoding result.

第七方面,提供了一种终端,包括处理器及通信接口,其中,所述处理器用于:对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息;对所述码流中的第三编码结果进行解码,得到基础网格,并对所述基础网格进行细分处理,得到细分网格;对解码的位移信息进行填充处理,得到填充后的位移信息,所述填充后的位移信息的层级数大于或等于所述解码的位移信息的层级数;基于所述填充后的位移信息及所述细分网格进行重建处理,得到重建网格。In the seventh aspect, a terminal is provided, comprising a processor and a communication interface, wherein the processor is used to: decode a first coding result in a code stream corresponding to a three-dimensional grid to obtain decoded displacement information; decode a third coding result in the code stream to obtain a basic grid, and subdivide the basic grid to obtain a subdivided grid; fill the decoded displacement information to obtain filled displacement information, wherein the number of levels of the filled displacement information is greater than or equal to the number of levels of the decoded displacement information; and reconstruct based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.

第八方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的网格编码方法的步骤,或者,所述程序或指令被处理器执行时实现如第二方面所述的网格解码方法的步骤。 In an eighth aspect, a readable storage medium is provided, on which a program or instruction is stored. When the program or instruction is executed by a processor, the steps of the grid encoding method as described in the first aspect are implemented, or when the program or instruction is executed by a processor, the steps of the grid decoding method as described in the second aspect are implemented.

第九方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法的步骤,或者,实现如第二方面所述的方法的步骤。In the ninth aspect, a chip is provided, 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 instructions 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.

第十方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在非易失的存储介质中,所述程序/程序产品被至少一个处理器执行以实现如第一方面所述的方法的步骤,或者,实现如第二方面所述的方法的步骤。In the tenth aspect, a computer program/program product is provided, wherein the computer program/program product is stored in a non-volatile storage medium, and the 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.

在本申请实施例中,获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格;基于所述细分网格进行变形操作,得到变形网格;从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数;对所述待编码位移信息进行编码,得到第一编码结果。这样,通过仅对细分网格对应的位移信息中部分层级的位移信息进行编码,能够减少编码的数据量,提高编码效率。In the embodiment of the present application, a base mesh corresponding to a three-dimensional mesh is obtained, and a subdivision process is performed based on the base mesh to obtain a subdivided mesh; a deformation operation is performed based on the subdivided mesh to obtain a deformed mesh; displacement information to be encoded is selected from the displacement information corresponding to the subdivided mesh, the displacement information corresponding to the subdivided mesh is used to characterize the displacement of the vertices of the subdivided mesh relative to the deformed mesh, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided mesh; the displacement information to be encoded is encoded to obtain a first encoding result. In this way, by encoding only some levels of displacement information in the displacement information corresponding to the subdivided mesh, the amount of encoded data can be reduced and the encoding efficiency can be improved.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

图1是相关技术中的V3C编码示意图;FIG1 is a schematic diagram of V3C encoding in the related art;

图2是相关技术中的V3C解码示意图;FIG2 is a schematic diagram of V3C decoding in the related art;

图3是相关技术中的V-DMC编码示意图;FIG3 is a schematic diagram of V-DMC coding in the related art;

图4是相关技术中的V-DMC解码示意图;FIG4 is a schematic diagram of V-DMC decoding in the related art;

图5是本申请实施例提供的一种网格编码方法的流程图;FIG5 is a flow chart of a grid coding method provided in an embodiment of the present application;

图6是本申请实施例提供的一种位移编码示意图之一;FIG6 is one of the schematic diagrams of displacement encoding provided in an embodiment of the present application;

图7是本申请实施例提供的一种位移解码示意图之一;FIG. 7 is one of the schematic diagrams of displacement decoding provided in an embodiment of the present application;

图8是本申请实施例提供的一种网格解码方法的流程图;FIG8 is a flow chart of a grid decoding method provided in an embodiment of the present application;

图9是本申请实施例提供的一种位移编码示意图之二;FIG9 is a second schematic diagram of a displacement encoding provided in an embodiment of the present application;

图10是本申请实施例提供的一种位移解码示意图之二;FIG10 is a second schematic diagram of a displacement decoding provided in an embodiment of the present application;

图11是本申请实施例提供的一种位移解码示意图之三;FIG11 is a third schematic diagram of a displacement decoding provided in an embodiment of the present application;

图12是本申请实施例提供的一种位移编码示意图之三;FIG12 is a third schematic diagram of a displacement encoding provided in an embodiment of the present application;

图13是本申请实施例提供的一种位移解码示意图之四;FIG13 is a fourth schematic diagram of a displacement decoding provided in an embodiment of the present application;

图14是本申请实施例提供的一种网格编码流程示意图;FIG14 is a schematic diagram of a grid coding process provided by an embodiment of the present application;

图15是本申请实施例提供的一种网格简化示意图;FIG15 is a simplified schematic diagram of a grid provided in an embodiment of the present application;

图16是本申请实施例提供的一种位移计算示例图;FIG16 is a diagram showing an example of displacement calculation provided in an embodiment of the present application;

图17是本申请实施例提供的一种基础网格压缩示意图;FIG17 is a schematic diagram of basic grid compression provided by an embodiment of the present application;

图18是本申请实施例提供的一种属性图转换示意图;FIG18 is a schematic diagram of an attribute graph conversion provided in an embodiment of the present application;

图19是本申请实施例提供的一种网格解码流程示意图;FIG19 is a schematic diagram of a grid decoding process provided in an embodiment of the present application;

图20是本申请实施例提供的一种网格编码装置的结构示意图; FIG20 is a schematic diagram of the structure of a grid coding device provided in an embodiment of the present application;

图21是本申请实施例提供的一种网格解码装置的结构示意图;FIG21 is a schematic diagram of the structure of a grid decoding device provided in an embodiment of the present application;

图22是本申请实施例提供的一种通信设备的结构示意图;FIG22 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application;

图23是本申请实施例提供的一种终端的结构示意图。FIG. 23 is a schematic diagram of the structure of a terminal provided in an embodiment of the present application.

具体实施方式DETAILED DESCRIPTION

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。The following will be combined with the drawings in the embodiments of the present application to clearly describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field belong to the scope of protection of this application.

本申请的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,本申请中的“或”表示所连接对象的至少其中之一。例如“A或B”涵盖三种方案,即,方案一:包括A且不包括B;方案二:包括B且不包括A;方案三:既包括A又包括B。字符“/”一般表示前后关联对象是一种“或”的关系。The terms "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. In addition, "or" in the present application represents at least one of the connected objects. For example, "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.

本申请的术语“指示”既可以是一个直接的指示(或者说显式的指示),也可以是一个间接的指示(或者说隐含的指示)。其中,直接的指示可以理解为,发送方在发送的指示中明确告知了接收方具体的信息、需要执行的操作或请求结果等内容;间接的指示可以理解为,接收方根据发送方发送的指示确定对应的信息,或者进行判断并根据判断结果确定需要执行的操作或请求结果等。The term "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.

本申请实施例中的编解码方法对应的编解码端可以为终端,该终端也可以称作终端设备或者用户终端(User Equipment,UE),终端可以是手机、平板电脑(Tablet Personal Computer)、膝上型电脑(Laptop Computer)或称为笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)、掌上电脑、上网本、超级移动个人计算机(ultra-mobile personal computer,UMPC)、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴式设备(Wearable Device)或车载设备(Vehicle User Equipment,VUE)、行人终端(Pedestrian User Equipment,PUE)等终端侧设备,可穿戴式设备包括:智能手表、手环、耳机、眼镜等。需要说明的是,在本申请实施例并不限定终端的具体类型。The encoding and decoding end corresponding to the encoding and decoding method in the embodiment of the present application may be a terminal, which may also be referred to as a terminal device or a user terminal (User Equipment, UE). The terminal may be a mobile phone, a tablet computer (Tablet Personal Computer), a laptop computer (Laptop Computer) or a notebook computer, a personal digital assistant (Personal Digital Assistant, PDA), a handheld computer, a netbook, an ultra-mobile personal computer (ultra-mobile personal computer, UMPC), a mobile Internet device (Mobile Internet Device, MID), an augmented reality (augmented reality, AR)/virtual reality (virtual reality, VR) device, a robot, a wearable device (Wearable Device) or a vehicle-mounted device (Vehicle User Equipment, VUE), a pedestrian terminal (Pedestrian User Equipment, PUE) and other terminal-side devices, and the wearable device includes: a smart watch, a bracelet, a headset, glasses, etc. It should be noted that the specific type of the terminal is not limited in the embodiment of the present application.

为了方便理解,以下对本申请实施例涉及的一些内容进行说明:For ease of understanding, some contents involved in the embodiments of the present application are described below:

1、三维网格1. 3D Grid

近年来,随着多媒体技术的迅速发展,相关研究成果迅速产业化,并成为人们生活中不可或缺的重要组成部分。三维模型成为继音频、图像、视频之后的新一代数字化媒体。三维网格是一种常用的三维模型表示方式。三维网格模型与传统的图像、视频等多媒体相比具有更强的交互性和逼真性,使其在商业、制造业、建筑业、教育、医学、娱乐、艺术、军事等 各个领域都得到了越来越广泛的应用。In recent years, with the rapid development of multimedia technology, related research results have been rapidly industrialized and have become an indispensable part of people's lives. Three-dimensional models have become a new generation of digital media after audio, images, and videos. Three-dimensional grids are a commonly used way to represent three-dimensional models. Compared with traditional multimedia such as images and videos, three-dimensional grid models have stronger interactivity and realism, making them more widely used in business, manufacturing, construction, education, medicine, entertainment, art, military, etc. It has been used more and more widely in various fields.

尽管目前有许多种三维网格的表示方法,但三角网格仍是目前最通用的表示方法。三维网格可以被视为由顶点、边和面这三种基本元素组成。顶点是网格中最基本的元素,它们定义了一个三维空间中的位置。边是连接网格中两个顶点的线段。面可以视为由边的闭合路径形成的多边形。对于三角网格来说,每一个面都是一个三角形。Although there are many ways to represent 3D meshes, triangular meshes are still the most common representation method. A 3D mesh can be considered to be composed of three basic elements: vertices, edges, and faces. Vertices are the most basic elements in a mesh, and they define a position in a 3D space. Edges are line segments connecting two vertices in a mesh. Faces can be considered as polygons formed by closed paths of edges. For a triangular mesh, each face is a triangle.

网格中包含的信息通常分为几何信息,连接信息以及属性信息这三类。几何信息即网格的每个顶点在三维空间中的位置。连接信息描述了网格中各元素之间的关联关系,即顶点之间的连接关系。属性信息是可选的,它可以将属性关联到对应的网格元素中去(如顶点颜色、法向量等可以与网格顶点相关联)。还可以利用网格参数化将网格从三维空间映射到二维平面区域,这种映射关系通常由一组参数坐标描述,称为UV坐标或纹理坐标,与网格顶点相关联。该二维映射可以用来表示高分辨率的属性信息,如纹理、法向量等。The information contained in the mesh is usually divided into three categories: geometric information, connection information, and attribute information. Geometric information refers to the position of each vertex of the mesh in three-dimensional space. Connection information describes the association between elements in the mesh, that is, the connection relationship between vertices. Attribute information is optional, and it can associate attributes to corresponding mesh elements (such as vertex color, normal vector, etc. can be associated with mesh vertices). Mesh parameterization can also be used to map the mesh from three-dimensional space to a two-dimensional plane area. This mapping relationship is usually described by a set of parameter coordinates, called UV coordinates or texture coordinates, which are associated with mesh vertices. This two-dimensional mapping can be used to represent high-resolution attribute information, such as textures, normal vectors, etc.

在几乎所有使用三维网格的应用领域(如计算模拟、娱乐、医学成像、数字化文物、计算机设计、电子商务等),随着人们对三维网格模型在视觉效果上越来越高的需求,模型正变得越来越复杂,模型的精度也越来越高,因此表示三维网格所需要的数据量也相应的增大。以上问题就导致了三维网格的处理、可视化、传输和存储都越来越复杂。三维网格压缩可以视为解决上述问题的一个途径,它减少了模型数据的大小,有利于三维网格的处理、存储和传输,因此有必要提出一种高效且通用的三维网格压缩算法。In almost all application fields that use 3D meshes (such as computational simulation, entertainment, medical imaging, digital cultural relics, computer design, e-commerce, etc.), as people's demand for higher visual effects of 3D mesh models increases, the models are becoming more and more complex, and the accuracy of the models is also increasing. Therefore, the amount of data required to represent the 3D mesh is also increasing accordingly. The above problems have led to the increasing complexity of the processing, visualization, transmission and storage of 3D meshes. 3D mesh compression can be regarded as a way to solve the above problems. It reduces the size of model data and is conducive to the processing, storage and transmission of 3D meshes. Therefore, it is necessary to propose an efficient and general 3D mesh compression algorithm.

近来,音视频编码压缩领域的国际标准化组织运动图像专家组(Moving Picture Expert Group,MPEG)开始制定面向三维网格的压缩标准基于视频的动态网格压缩(Video-based dynamic mesh coding,V-DMC或VDMC),该标准是基于已有的基于视频的可视体积内容编码(Visual Volumetric Video-based Coding,V3C)标准指定的,V3C标准提供了一种压缩三维模型的通用方法,模型可以是由点云、网格或全景视频等形式呈现的。将三维网格模型的压缩方法与该标准兼容有助于该方法的推广以及适用性。因此,对VDMC中的三维网格编解码方法进行优化并将优化方法与V3C标准结合具有重要意义。一种可能的优化方法是针对位移编码方式的优化,现有框架中位移是通过计算重建的网格与原始的网格顶点之间的距离得到的,它的目的是提高网格的质量。现有的框架中位移使用视频编码器进行编码,为位移的编码方式提供多种选择有助于提高编码性能。Recently, the Moving Picture Expert Group (MPEG) of the International Organization for Standardization in the field of audio and video coding compression has begun to develop a compression standard for 3D meshes, Video-based dynamic mesh coding (V-DMC or VDMC). This standard is specified based on the existing Visual Volumetric Video-based Coding (V3C) standard. The V3C standard provides a general method for compressing 3D models, which can be presented in the form of point clouds, meshes or panoramic videos. Making the compression method of 3D mesh models compatible with this standard will help the promotion and applicability of this method. Therefore, it is of great significance to optimize the 3D mesh encoding and decoding method in VDMC and combine the optimization method with the V3C standard. One possible optimization method is to optimize the displacement coding method. In the existing framework, the displacement is obtained by calculating the distance between the reconstructed mesh and the original mesh vertex, and its purpose is to improve the quality of the mesh. In the existing framework, the displacement is encoded using a video encoder. Providing multiple options for the displacement encoding method will help improve the encoding performance.

2、V3C标准2. V3C Standard

V3C标准提供了一种通过视频或图像编码技术对各种三维媒体编码和解码的方法。具体来说,它是在编码前通过投影等方式将三维媒体内容从三维表示转换为多个二维表示(称为V3C分量),然后利用已有的视频或图像编码技术对二维表示进行编码。V3C分量主要包括占用分量、几何分量以及属性分量。占用分量可以表示二维表示中哪些区域与三维表示的数据相关联;几何分量表示与三维数据在空间中的位置相关的信息,属性分量可以提供顶点对应的属性信息,如材质、纹理等。此外,分量中还包含如何通过这些分量重建三维模型的信息,称为图集(atlas)信息。V3C标准的示例图如图1和图2所示。 The V3C standard provides a method for encoding and decoding various three-dimensional media through video or image coding technology. Specifically, it converts the three-dimensional media content from a three-dimensional representation into multiple two-dimensional representations (called V3C components) through projection and other methods before encoding, and then encodes the two-dimensional representation using existing video or image coding technology. V3C components mainly include occupancy components, geometric components, and attribute components. The occupancy component can indicate which areas in the two-dimensional representation are associated with the data of the three-dimensional representation; the geometric component represents information related to the position of the three-dimensional data in space, and the attribute component can provide attribute information corresponding to the vertex, such as material, texture, etc. In addition, the components also contain information on how to reconstruct the three-dimensional model through these components, which is called atlas information. Example diagrams of the V3C standard are shown in Figures 1 and 2.

图集信息用于关联所有分量,并且从二维重建回三维的附加信息也包含在图集分量中。图集由多个基本单元组成,称基本单元为图块(patch)。每个图块表示可用的二维分量中的一块区域,并包含将该区域投影回三维空间所需要的信息。The atlas information is used to associate all components, and additional information for reconstructing from 2D back to 3D is also included in the atlas components. The atlas consists of multiple basic units, called patches. Each patch represents an area in the available 2D components and contains the information needed to project the area back to 3D space.

3、V-DMC3. V-DMC

V-DMC是MPEG制定的用于压缩三维网格的标准,其主要思想是通过利用已有的V3C标准对三维网格进行压缩,由于三维网格存在连接信息需要编码,因此其具体的编码流程与V3C略有不同,需要对V3C标准解码端的语法语义以及解码操作进行扩展以支持三维网格的解码重建,图3和图4为V-DMC现行的编解码框架。V-DMC is a standard developed by MPEG for compressing three-dimensional meshes. Its main idea is to compress three-dimensional meshes by using the existing V3C standard. Since three-dimensional meshes have connection information that needs to be encoded, its specific encoding process is slightly different from V3C. It is necessary to expand the syntax, semantics and decoding operations of the V3C standard decoding end to support the decoding and reconstruction of three-dimensional meshes. Figures 3 and 4 show the current encoding and decoding framework of V-DMC.

编码端整体框架如图3所示,对于输入网格,首先通过简化模块进行简化,然后通过网格参数化为网格生成新的纹理坐标,随后对参数化后的网格进行细分变形,即按照特定的细分方法在网格上插入新的顶点并计算细分后网格顶点到输入网格最近邻点的距离,称为位移信息。随后,将细分前的网格,称为基础网格,送入基础网格编码模块,利用已有的网格编码器对其进行压缩,在帧间模式下,基础网格编码模块可以根据参考帧为基础网格每个顶点生成运动向量,然后仅压缩运动向量即可。The overall framework of the encoding end is shown in Figure 3. For the input mesh, it is first simplified by the simplification module, and then the new texture coordinates are generated for the mesh through mesh parameterization. Then the parameterized mesh is subdivided and deformed, that is, new vertices are inserted on the mesh according to a specific subdivision method and the distance from the vertex of the subdivided mesh to the nearest neighbor of the input mesh is calculated, which is called displacement information. Subsequently, the mesh before subdivision, called the base mesh, is sent to the base mesh encoding module and compressed using the existing mesh encoder. In the inter-frame mode, the base mesh encoding module can generate motion vectors for each vertex of the base mesh according to the reference frame, and then only compress the motion vectors.

基础网格在编码后进行重建,然后根据重建后的基础网格的顶点顺序调整位移的顺序。随后,将调整顺序后的顶点位移信息进行小波变化,对变换后的系数进行量化,然后按照特定的扫描顺序将量化后的系数排列到二维图像中,利用视频编码器对二维图像进行编码。然后,将重建的位移信息应用于细分后的基础网格得到重建的细分变形的网格,将该网格以及原始输入网格及其对应的纹理图输入对应的纹理图转换模块得到重建网格对应的纹理图,将该纹理图同样利用视频编码器进行编码。对于编码过程中使用的参数,如使用的视频编码器类型,网格编码器类型,变换参数,量化参数等通过辅助信息传递到解码端。The base mesh is reconstructed after encoding, and then the order of displacement is adjusted according to the vertex order of the reconstructed base mesh. Subsequently, the vertex displacement information after the order is adjusted is subjected to wavelet transformation, the transformed coefficients are quantized, and then the quantized coefficients are arranged into a two-dimensional image according to a specific scanning order, and the two-dimensional image is encoded using a video encoder. Then, the reconstructed displacement information is applied to the subdivided base mesh to obtain a reconstructed subdivided deformed mesh, and the mesh, the original input mesh and its corresponding texture map are input into the corresponding texture map conversion module to obtain the texture map corresponding to the reconstructed mesh, and the texture map is also encoded using a video encoder. The parameters used in the encoding process, such as the type of video encoder used, the type of mesh encoder, the transformation parameters, the quantization parameters, etc., are transmitted to the decoding end through auxiliary information.

解码端整体框架如图4所示,对于接收到的码流,解码端首先将各部分码流解复用,分别得到基础网格码流、位移视频码流、纹理图视频码流以及辅助信息码流。对于基础网格码流,使用辅助信息指示的网格解码器解码得到基础网格。位移视频码流与纹理图视频码流通过视频解码器进行解码。对于位移部分,视频解码后还需要通过位移解码模块将位移从图像中取出,并进行反量化、反变换等步骤,然后将其应用于细分后的基础网格,得到解码端重建的变形网格。纹理图在解码后即为重建的变形网格对应的纹理图。后续应用或渲染模块将重建的变形网格以及解码得到的纹理图作为输入进行处理。The overall framework of the decoding end is shown in Figure 4. For the received bitstream, the decoding end first demultiplexes each part of the bitstream to obtain the basic grid bitstream, displacement video bitstream, texture map video bitstream and auxiliary information bitstream respectively. For the basic grid bitstream, the grid decoder indicated by the auxiliary information is decoded to obtain the basic grid. The displacement video bitstream and the texture map video bitstream are decoded by the video decoder. For the displacement part, after the video is decoded, the displacement needs to be taken out of the image through the displacement decoding module, and the steps such as inverse quantization and inverse transformation are performed, and then it is applied to the subdivided basic grid to obtain the deformed grid reconstructed by the decoding end. After decoding, the texture map is the texture map corresponding to the reconstructed deformed grid. The subsequent application or rendering module processes the reconstructed deformed grid and the decoded texture map as input.

下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的网格编码方法、网格解码方法及相关设备进行详细地说明。The grid encoding method, grid decoding method and related equipment provided by the embodiments of the present application are described in detail below through some embodiments and their application scenarios in combination with the accompanying drawings.

参见图5,图5是本申请实施例提供的一种网格编码方法的流程图,可以应用于编码端设备,如图5所示,网格编码方法包括以下步骤:Referring to FIG. 5 , FIG. 5 is a flow chart of a grid coding method provided in an embodiment of the present application, which can be applied to a coding end device. As shown in FIG. 5 , the grid coding method includes the following steps:

步骤101、获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格。Step 101: Obtain a basic grid corresponding to a three-dimensional grid, and perform subdivision processing based on the basic grid to obtain a subdivided grid.

其中,可以对三维网格进行网格简化处理获取三维网格对应的基础网格;或者,可以对 三维网格进行网格简化处理和网格参数化处理获取三维网格对应的基础网格;或者,还可以通过其他方式获取三维网格对应的基础网格;等等,本实施例对此不进行限定。Among them, the three-dimensional grid can be simplified to obtain the basic grid corresponding to the three-dimensional grid; or The three-dimensional grid is subjected to grid simplification processing and grid parameterization processing to obtain a basic grid corresponding to the three-dimensional grid; or, the basic grid corresponding to the three-dimensional grid can also be obtained by other methods; and so on, which are not limited in this embodiment.

另外,可以对所述基础网格进行细分处理,得到细分网格。细分处理可以是在构成基础网格的边上添加顶点,添加顶点后的基础网格为细分网格。In addition, the basic mesh may be subdivided to obtain a subdivided mesh. The subdivided process may be to add vertices to the edges constituting the basic mesh, and the basic mesh after adding the vertices is a subdivided mesh.

一种实施方式中,网格可以通过网格序列的形式表征,对网格的处理可以认为是对网格序列的处理。In one implementation, the grid may be represented in the form of a grid sequence, and processing of the grid may be considered as processing of the grid sequence.

步骤102、基于所述细分网格进行变形操作,得到变形网格。Step 102: Perform a deformation operation based on the subdivided grid to obtain a deformed grid.

其中,所述变形操作可以是将细分网格变形为与三维网格形状相同的网格,变形后得到的网格为变形网格。The deformation operation may be to deform the subdivided mesh into a mesh with the same shape as the three-dimensional mesh, and the mesh obtained after the deformation is the deformed mesh.

步骤103、从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数。Step 103: Select displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to characterize the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid.

其中,所述细分网格对应的位移信息可以用于表征所述细分网格的顶点相对于所述变形网格的顶点的位移。位移信息还可以描述为位移数据。示例地,对于每个细分网格的顶点,可以在变形网格上找到对应的顶点,所述细分网格对应的位移信息包括用于表征每个细分网格的顶点相对于变形网格上对应顶点的位移的位移信息。The displacement information corresponding to the subdivided mesh can be used to characterize the displacement of the vertices of the subdivided mesh relative to the vertices of the deformed mesh. The displacement information can also be described as displacement data. For example, for each vertex of the subdivided mesh, a corresponding vertex can be found on the deformed mesh, and the displacement information corresponding to the subdivided mesh includes displacement information for characterizing the displacement of the vertex of each subdivided mesh relative to the corresponding vertex on the deformed mesh.

需要说明的是,由于细分处理,位移信息包括多个层级,对基础网格的细分次数越多,位移信息的层级数也就越多。所述细分网格对应的位移信息可以包括多个层级的位移信息。It should be noted that, due to the subdivision process, the displacement information includes multiple levels, and the more times the base grid is subdivided, the more levels of displacement information there are. The displacement information corresponding to the subdivided grid may include multiple levels of displacement information.

其中,所述细分网格对应的位移信息可以包括至少一个维度的位移分量,对所述至少一个维度的位移分量中每个维度的位移分量可以分别选择每个维度对应的待编码位移信息,针对所述每个维度的位移分量,选择的每个维度对应的待编码位移信息的层级数可以相同或不同。Among them, the displacement information corresponding to the subdivided grid may include displacement components of at least one dimension, and for the displacement components of each dimension of the at least one dimensional displacement components, the displacement information to be encoded corresponding to each dimension can be selected respectively, and for the displacement components of each dimension, the number of levels of the displacement information to be encoded corresponding to each dimension selected can be the same or different.

一种实施方式中,所述从所述细分网格对应的位移信息中选择待编码位移信息,可以包括:确定所述细分网格对应的位移信息,所述细分网格对应的位移信息包括至少一个维度的位移分量,对所述至少一个维度的位移分量中每个维度的位移分量分别选择每个维度对应的待编码位移信息,所述每个维度对应的待编码位移信息的层级数小于或等于所述每个维度的位移分量的层级数。In one implementation, the selecting the displacement information to be encoded from the displacement information corresponding to the subdivided grid may include: determining the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid including displacement components of at least one dimension, and selecting the displacement information to be encoded corresponding to each dimension for the displacement components of each dimension of the at least one dimensional displacement components, respectively, the number of levels of the displacement information to be encoded corresponding to each dimension being less than or equal to the number of levels of the displacement components of each dimension.

示例地,所述细分网格对应的位移信息可以包括:N个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量。所述第一维度对应的待编码位移信息可以包括:所述N个层级的第一维度的位移分量中的M1个层级的第一维度的位移分量;所述第二维度对应的待编码位移信息可以包括:所述N个层级的第二维度的位移分量中的M2个层级的第二维度的位移分量;所述第三维度对应的待编码位移信息可以包括:所述N个层级的第三维度的位移分量中的M3个层级的第三维度的位移分量,N为正整数,M1、M2及M3均为大于或等于0的整数,且M1、M2及M3均小于或等于N。 For example, the displacement information corresponding to the subdivided grid may include: displacement components of the first dimension of N levels, displacement components of the second dimension of the N levels, and displacement components of the third dimension of the N levels. The displacement information to be encoded corresponding to the first dimension may include: displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels; the displacement information to be encoded corresponding to the second dimension may include: displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels; the displacement information to be encoded corresponding to the third dimension may include: displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.

需要说明的是,所述第一维度可以为第一坐标轴维度,例如x轴维度;第二维度可以为第二坐标轴维度,例如y轴维度;第三维度可以为第三坐标轴维度,例如z轴维度。It should be noted that the first dimension may be a first coordinate axis dimension, such as an x-axis dimension; the second dimension may be a second coordinate axis dimension, such as a y-axis dimension; and the third dimension may be a third coordinate axis dimension, such as a z-axis dimension.

步骤104、对所述待编码位移信息进行编码,得到第一编码结果。Step 104: Encode the displacement information to be encoded to obtain a first encoding result.

其中,对所述待编码位移信息进行编码得到第一编码结果,可以是对选择的所述待编码位移信息进行编码得到第一编码结果。The encoding of the displacement information to be encoded to obtain the first encoding result may be encoding the selected displacement information to be encoded to obtain the first encoding result.

另外,所述对所述待编码位移信息进行编码,可以是对所述待编码位移信息进行视频编码,或可以是对所述待编码位移信息进行熵编码,等等,本实施例对待编码位移信息编码的具体编码方式不进行限定。In addition, the encoding of the displacement information to be encoded may be video encoding of the displacement information to be encoded, or may be entropy encoding of the displacement information to be encoded, etc. This embodiment does not limit the specific encoding method for encoding the displacement information to be encoded.

相关技术中,对位移各维度分量采用相同的层级,但实际位移数据在各个维度的数据分布不一定均匀,此时如果对各维度使用相同层级的细分,会浪费编码位移数据的比特。在本实施例中,允许仅对位移各个维度分量的部分层级数据进行编码,之后在解码端对每个维度分别进行位移数据恢复操作。对于位移的每个维度i,在编码端可以仅对前ni(ni>=0)个层级的数据进行编码,舍弃后N-ni个层级的数据,减少编码位移数据的数据量。在解码端对于解码位移数据的每个维度i,可以使用例如补零的方式将舍弃的N-ni个层级的数据填补上,与解码端网格顶点一一对应。In the related art, the same level is used for the displacement components of each dimension, but the data distribution of the actual displacement data in each dimension is not necessarily uniform. At this time, if the same level of subdivision is used for each dimension, the bits of the encoded displacement data will be wasted. In this embodiment, it is allowed to encode only part of the level data of the displacement components of each dimension, and then the displacement data recovery operation is performed on each dimension separately at the decoding end. For each dimension i of the displacement, only the data of the first n i (n i >= 0) levels can be encoded at the encoding end, and the data of the next Nn i levels can be discarded to reduce the amount of data of the encoded displacement data. At the decoding end, for each dimension i of the decoded displacement data, the discarded Nn i levels of data can be filled in by, for example, zero padding, corresponding one to one with the mesh vertices at the decoding end.

在本申请实施例中,获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格;基于所述细分网格进行变形操作,得到变形网格;从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数;对所述待编码位移信息进行编码,得到第一编码结果。这样,通过仅对细分网格对应的位移信息中部分层级的位移信息进行编码,能够减少编码的数据量,提高编码效率。In the embodiment of the present application, a base mesh corresponding to a three-dimensional mesh is obtained, and a subdivision process is performed based on the base mesh to obtain a subdivided mesh; a deformation operation is performed based on the subdivided mesh to obtain a deformed mesh; displacement information to be encoded is selected from the displacement information corresponding to the subdivided mesh, the displacement information corresponding to the subdivided mesh is used to characterize the displacement of the vertices of the subdivided mesh relative to the deformed mesh, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided mesh; the displacement information to be encoded is encoded to obtain a first encoding result. In this way, by encoding only some levels of displacement information in the displacement information corresponding to the subdivided mesh, the amount of encoded data can be reduced and the encoding efficiency can be improved.

可选地,所述细分网格对应的位移信息包括多个层级的位移信息,所述从所述细分网格对应的位移信息中选择待编码位移信息,包括:Optionally, the displacement information corresponding to the subdivided grid includes displacement information of multiple levels, and the selecting the displacement information to be encoded from the displacement information corresponding to the subdivided grid includes:

确定所述多个层级中的目标层级,其中,所述目标层级基于所述多个层级的位移信息中表征位移为第一预设值的位移信息确定;Determine a target level among the multiple levels, wherein the target level is determined based on displacement information representing a displacement of a first preset value among the displacement information of the multiple levels;

基于所述目标层级从所述细分网格对应的位移信息中选择待编码位移信息。The displacement information to be encoded is selected from the displacement information corresponding to the subdivided grid based on the target level.

其中,所述第一预设值可以为0。The first preset value may be 0.

其中,所述位移信息可以包括至少一个维度的位移分量,针对每个维度的位移分量,可以分别确定每个维度对应的目标层级。The displacement information may include a displacement component of at least one dimension, and for the displacement component of each dimension, a target level corresponding to each dimension may be determined respectively.

一种实施方式中,所述至少一个维度的位移分量至少包括目标维度的位移分量,所述细分网格对应的位移信息至少包括多个层级的所述目标维度的位移分量,所述目标层级的所述目标维度的位移分量中表征位移为第一预设值的位移分量的个数满足预设条件。所述基于所述目标层级从所述细分网格对应的位移信息中选择待编码位移信息,可以是,基于所述目标层级从所述多个层级的所述目标维度的位移分量中选择所述目标维度对应的待编码位 移信息。示例地,所述目标维度可以为第一维度,或第二维度,或第三维度。In one implementation, the displacement components of at least one dimension include at least the displacement components of the target dimension, the displacement information corresponding to the subdivided grid includes at least the displacement components of the target dimension at multiple levels, and the number of displacement components representing the displacement as a first preset value in the displacement components of the target dimension at the target level meets a preset condition. The selecting the displacement information to be encoded from the displacement information corresponding to the subdivided grid based on the target level may be to select the displacement information to be encoded corresponding to the target dimension from the displacement components of the target dimension at the multiple levels based on the target level. For example, the target dimension may be a first dimension, a second dimension, or a third dimension.

另外,所述目标层级基于所述多个层级的位移信息中表征位移为第一预设值的位移信息确定,可以包括:所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值满足预设条件;或者,可以包括:所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的差值满足预设条件;或者,可以包括:所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息中表征位移不为第一预设值的位移信息的个数的比值满足预设条件;或者,可以包括:所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息中表征位移不为第一预设值的位移信息的个数的差值满足预设条件;等等,本实施例对此不进行限定。In addition, the target level is determined based on the displacement information of the multiple levels whose characterizing displacement as the first preset value, and may include: the ratio of the number of displacement information of the target level whose characterizing displacement as the first preset value to the total number of displacement information of the target level satisfies a preset condition; or, may include: the difference between the number of displacement information of the target level whose characterizing displacement as the first preset value and the total number of displacement information of the target level satisfies a preset condition; or, may include: the ratio of the number of displacement information of the target level whose characterizing displacement as the first preset value to the number of displacement information of the target level whose characterizing displacement as not the first preset value satisfies the preset condition; or, may include: the difference between the number of displacement information of the target level whose characterizing displacement as the first preset value and the number of displacement information of the target level whose characterizing displacement as not the first preset value satisfies the preset condition; and so on. This embodiment does not limit this.

需要说明的是,由于位移为第一预设值的位移信息的个数与位移不为第一预设值的位移信息的个数的和值为位移信息的总个数,即位移为第一预设值的位移信息的个数与位移不为第一预设值的位移信息的个数存在对应关系,其中,所述目标层级基于所述多个层级的位移信息中表征位移为第一预设值的位移信息确定,也可以描述为:所述目标层级基于所述多个层级的位移信息中表征位移不为第一预设值的位移信息确定。所述目标层级基于所述多个层级的位移信息中表征位移不为第一预设值的位移信息确定,可以包括:所述目标层级的位移信息中表征位移不为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值满足预设条件;或,所述目标层级的位移信息中表征位移不为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的差值满足预设条件;等等,本实施例对此不进行限定。It should be noted that, since the sum of the number of displacement information whose displacement is the first preset value and the number of displacement information whose displacement is not the first preset value is the total number of displacement information, that is, the number of displacement information whose displacement is the first preset value and the number of displacement information whose displacement is not the first preset value have a corresponding relationship, wherein the target level is determined based on the displacement information of the multiple levels whose displacement is characterized by the first preset value, which can also be described as: the target level is determined based on the displacement information of the multiple levels whose displacement is characterized by the displacement not being the first preset value. The target level is determined based on the displacement information of the multiple levels whose displacement is characterized by the displacement not being the first preset value, which can include: the ratio of the number of displacement information of the target level whose displacement is not the first preset value to the total number of displacement information of the target level satisfies the preset condition; or the difference between the number of displacement information of the target level whose displacement is not the first preset value and the total number of displacement information of the target level satisfies the preset condition; etc., which are not limited in this embodiment.

需要说明的是,可以从所述多个层级中的第一个层级开始确定目标层级,在所述目标层级不为所述第一个层级的情况下,所述待编码位移信息包括所述第一个层级至所述目标层级的前一个层级的位移信息;或,可以从所述多个层级中的最后一个层级开始确定目标层级,所述待编码位移信息包括所述多个层级中的第一个层级至所述目标层级的位移信息。It should be noted that the target level can be determined starting from the first level among the multiple levels. When the target level is not the first level, the displacement information to be encoded includes the displacement information from the first level to the level before the target level; or, the target level can be determined starting from the last level among the multiple levels, and the displacement information to be encoded includes the displacement information from the first level among the multiple levels to the target level.

该实施方式中,确定所述多个层级中的目标层级,其中,所述目标层级基于所述多个层级的位移信息中表征位移为第一预设值的位移信息确定;基于所述目标层级从所述细分网格对应的位移信息中选择待编码位移信息。这样,能够基于表征位移为第一预设值的位移信息的个数从多个层级的位移信息中确定待编码位移信息,能够支持选择携带信息量较大的层级的位移信息进行编码,较为有效地减少编码的数据量,提高编码效率。In this implementation, a target level among the multiple levels is determined, wherein the target level is determined based on displacement information representing a displacement of a first preset value among the displacement information of the multiple levels; and displacement information to be encoded is selected from the displacement information corresponding to the subdivided grid based on the target level. In this way, the displacement information to be encoded can be determined from the displacement information of multiple levels based on the number of displacement information representing a displacement of the first preset value, and the displacement information of the level carrying a larger amount of information can be selected for encoding, thereby effectively reducing the amount of encoded data and improving encoding efficiency.

可选地,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值满足预设条件。Optionally, a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level meets a preset condition.

其中,可以对每个维度的位移分量分别确定每个维度的位移分量对应的目标层级,从而对于不同维度的位移分量支持选取不同层级的位移信息进行编码。The target level corresponding to the displacement component of each dimension may be determined respectively for the displacement component of each dimension, thereby supporting the selection of displacement information of different levels for encoding for displacement components of different dimensions.

一种实施方式中,对于目标维度,所述目标层级的所述目标维度的位移分量中表征位移为第一预设值的位移分量的个数,与所述目标层级的所述目标维度的位移分量的总个数的 比值满足预设条件。In one embodiment, for a target dimension, the number of displacement components representing a displacement of a first preset value in the displacement components of the target dimension of the target level is equal to the total number of displacement components of the target dimension of the target level. The ratio meets the preset conditions.

该实施方式中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值满足预设条件,从而能够支持选择非零的位移信息占比较大的层级进行位移编码,舍弃非零的位移信息占比较小的层级,能够有效地减少编码的数据量,提高编码效率。In this implementation, the ratio of the number of displacement information representing the displacement of the first preset value in the displacement information of the target layer to the total number of displacement information of the target layer meets the preset conditions, thereby supporting the selection of layers with a relatively large proportion of non-zero displacement information for displacement encoding and discarding layers with a relatively small proportion of non-zero displacement information, which can effectively reduce the amount of encoded data and improve encoding efficiency.

可选地,所述确定所述多个层级中的目标层级,包括:Optionally, determining a target level among the multiple levels includes:

从所述多个层级中的第一个层级开始确定目标层级,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值大于第一预设比值;Determining a target level from a first level among the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is greater than the first preset ratio;

在所述目标层级不为所述第一个层级的情况下,所述待编码位移信息包括所述第一个层级至所述目标层级的前一个层级的位移信息。In a case where the target level is not the first level, the displacement information to be encoded includes displacement information from the first level to a level before the target level.

其中,所述第一预设值可以为0。第一预设比值可以为80%,或85%,或90%,或95%等等,本实施例对第一预设比值不进行限定。另外,在所述目标层级为所述第一个层级的情况下,所述待编码位移信息可以为空。The first preset value may be 0. The first preset ratio may be 80%, 85%, 90%, 95%, etc., and this embodiment does not limit the first preset ratio. In addition, when the target level is the first level, the displacement information to be encoded may be empty.

另外,可以对每个维度的位移分量分别确定每个维度的位移分量对应的目标层级,从而对于不同维度的位移分量支持选取不同层级的位移信息进行编码。需要说明的是,在确定各个维度的位移分量对应的目标层级的过程中,各个维度的位移分量可以设置有对应的第一预设比值,不同维度的位移分量对应的第一预设比值可以相同,或不同。In addition, the target level corresponding to the displacement component of each dimension can be determined for each displacement component of each dimension, so as to support the selection of displacement information of different levels for encoding for displacement components of different dimensions. It should be noted that in the process of determining the target level corresponding to the displacement components of each dimension, the displacement components of each dimension can be set with a corresponding first preset ratio, and the first preset ratios corresponding to the displacement components of different dimensions can be the same or different.

一种实施方式中,所述目标层级的所述目标维度的位移分量中表征位移为第一预设值的位移分量的个数,与所述目标层级的所述目标维度的位移分量的总个数的比值大于第一预设比值;在所述目标层级不为所述第一个层级的情况下,所述目标维度对应的待编码位移信息包括所述第一个层级至所述目标层级的前一个层级的所述目标维度的位移分量。In one embodiment, the ratio of the number of displacement components representing a displacement of a first preset value in the displacement components of the target dimension of the target level to the total number of displacement components of the target dimension of the target level is greater than the first preset ratio; when the target level is not the first level, the displacement information to be encoded corresponding to the target dimension includes the displacement components of the target dimension from the first level to the level before the target level.

需要说明的是,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值大于第一预设比值,也可以描述为:所述目标层级的位移信息中表征位移不为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值小于或等于第一预设比值。It should be noted that the ratio of the number of displacement information of the target level that represents displacement as the first preset value to the total number of displacement information of the target level is greater than the first preset ratio. It can also be described as: the ratio of the number of displacement information of the target level that represents displacement not as the first preset value to the total number of displacement information of the target level is less than or equal to the first preset ratio.

示例地,可以从位移信息的第一个层级开始,统计该层级中目标维度的位移分量非零的个数k,计算k在该层级中的占比。若占比小于或等于第一预设比值,则将该层级和该层级之后所有层级的目标维度的位移分量移除,仅编码该层级之前的目标维度的位移分量;若占比不满足小于或等于第一预设比值的要求,则对下一个层级进行相同的统计计算,直至找到符合条件的层级或遍历完所有细分层级为止。For example, starting from the first level of displacement information, the number k of non-zero displacement components of the target dimension in the level can be counted, and the proportion of k in the level can be calculated. If the proportion is less than or equal to the first preset ratio, the displacement components of the target dimension of the level and all levels after the level are removed, and only the displacement components of the target dimension before the level are encoded; if the proportion does not meet the requirement of being less than or equal to the first preset ratio, the same statistical calculation is performed on the next level until a level that meets the conditions is found or all subdivided levels are traversed.

该实施方式中,从所述多个层级中的第一个层级开始确定目标层级,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值大于第一预设比值;在所述目标层级不为所述第一个层级的情况下,所述待编码位移信息包括所述第一个层级至所述目标层级的前一个层级的位移信息。这样,能够从第 一个层级开始进行层级选取,舍弃目标层级及之后的携带信息量较少的层级的位移信息,能够较为有效地减少编码的数据量,提高编码效率。In this implementation, the target level is determined starting from the first level among the multiple levels, wherein the ratio of the number of displacement information representing the displacement as the first preset value in the displacement information of the target level to the total number of displacement information of the target level is greater than the first preset ratio; when the target level is not the first level, the displacement information to be encoded includes the displacement information from the first level to the level before the target level. In this way, it is possible to Starting from one level to another for level selection and discarding the displacement information of the target level and subsequent levels that carry less information can effectively reduce the amount of encoded data and improve encoding efficiency.

可选地,所述确定所述多个层级中的目标层级,包括:Optionally, determining a target level among the multiple levels includes:

从所述多个层级中的最后一个层级开始确定目标层级,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值小于或等于第二预设比值;Determine a target level from the last level of the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is less than or equal to a second preset ratio;

所述待编码位移信息包括所述多个层级中的第一个层级至所述目标层级的位移信息。The displacement information to be encoded includes displacement information from a first level among the multiple levels to the target level.

其中,所述第一预设值可以为0。第二预设比值可以为5%,或8%,或10%,或15%等等,本实施例对第二预设比值不进行限定。The first preset value may be 0. The second preset ratio may be 5%, 8%, 10%, 15%, etc. This embodiment does not limit the second preset ratio.

另外,可以对每个维度的位移分量分别确定每个维度的位移分量对应的目标层级,从而对于不同维度的位移分量支持选取不同层级的位移信息进行编码。需要说明的是,在确定各个维度的位移分量对应的目标层级的过程中,各个维度的位移分量可以设置有对应的第二预设比值,不同维度的位移分量对应的第二预设比值可以相同,或不同。In addition, the target level corresponding to the displacement component of each dimension can be determined for each displacement component of each dimension, so as to support the selection of displacement information of different levels for encoding for displacement components of different dimensions. It should be noted that in the process of determining the target level corresponding to the displacement component of each dimension, the displacement component of each dimension can be set with a corresponding second preset ratio, and the second preset ratios corresponding to the displacement components of different dimensions can be the same or different.

一种实施方式中,所述目标层级的所述目标维度的位移分量中表征位移为第一预设值的位移分量的个数,与所述目标层级的所述目标维度的位移分量的总个数的比值小于或等于第二预设比值。In one embodiment, the ratio of the number of displacement components representing a displacement of a first preset value in the displacement components of the target dimension of the target level to the total number of displacement components of the target dimension of the target level is less than or equal to a second preset ratio.

需要说明的是,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值小于或等于第二预设比值,也可以描述为:所述目标层级的位移信息中表征位移不为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值大于第二预设比值。It should be noted that the ratio of the number of displacement information of the target level that represents displacement of the first preset value to the total number of displacement information of the target level is less than or equal to the second preset ratio. It can also be described as: the ratio of the number of displacement information of the target level that represents displacement not of the first preset value to the total number of displacement information of the target level is greater than the second preset ratio.

示例地,对目标维度的位移分量从最后一个层级开始不断向前进行统计计算,统计该层级中目标维度的位移分量非零的个数k,计算k在该层级中的占比。若最后一个层级的占比大于第二预设比值,则停止向前遍历。若最后一个层级的占比满足要求(小于或等于第二预设比值),则将该层级的目标维度的位移分量移除,并继续对前一个层级进行相同的统计计算和占比判断,直至遇到不满足要求的层级或遍历完所有细分层级为止。For example, the displacement component of the target dimension is statistically calculated from the last level forward, the number k of non-zero displacement components of the target dimension in the level is counted, and the proportion of k in the level is calculated. If the proportion of the last level is greater than the second preset ratio, the forward traversal is stopped. If the proportion of the last level meets the requirements (less than or equal to the second preset ratio), the displacement component of the target dimension of the level is removed, and the same statistical calculation and proportion judgment are continued for the previous level until a level that does not meet the requirements is encountered or all subdivided levels are traversed.

该实施方式中,从所述多个层级中的最后一个层级开始确定目标层级,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值小于或等于第二预设比值;所述待编码位移信息包括所述多个层级中的第一个层级至所述目标层级的位移信息。这样,能够从最后一个层级开始进行层级选取,舍弃目标层级之后的携带信息量较少的层级的位移信息,能够较为有效地减少编码的数据量,提高编码效率。In this implementation, the target level is determined starting from the last level of the multiple levels, wherein the ratio of the number of displacement information representing the displacement as the first preset value in the displacement information of the target level to the total number of displacement information of the target level is less than or equal to the second preset ratio; the displacement information to be encoded includes the displacement information from the first level of the multiple levels to the target level. In this way, the level selection can be started from the last level, and the displacement information of the levels after the target level that carry less information is discarded, which can effectively reduce the amount of encoded data and improve the encoding efficiency.

可选地,所述细分网格对应的位移信息包括:N个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量;Optionally, the displacement information corresponding to the subdivided grid includes: displacement components of a first dimension of N levels, displacement components of a second dimension of the N levels, and displacement components of a third dimension of the N levels;

所述待编码位移信息包括:所述N个层级的第一维度的位移分量中的M1个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量中的M2个层级的第二维度的位 移分量,以及所述N个层级的第三维度的位移分量中的M3个层级的第三维度的位移分量,N为正整数,M1、M2及M3均为大于或等于0的整数,且M1、M2及M3均小于或等于N。The displacement information to be encoded includes: displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, The displacement components of the third dimension of the N levels, as well as the displacement components of the third dimension of M3 levels among the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.

其中,所述选择的待编码位移信息包括:所述M1个层级的第一维度的位移分量,所述M2个层级的第二维度的位移分量,以及所述M3个层级的第三维度的位移分量。The selected displacement information to be encoded includes: the displacement components of the first dimension of the M1 levels, the displacement components of the second dimension of the M2 levels, and the displacement components of the third dimension of the M3 levels.

该实施方式中,所述待编码位移信息包括所述N个层级的第一维度的位移分量中的M1个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量中的M2个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量中的M3个层级的第三维度的位移分量,从而能够支持对位移各维度分量选取不同层级的位移分量进行位移编码,在提高编码效率的同时,能够提高位移编码的灵活性。In this implementation, the displacement information to be encoded includes the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, thereby supporting the selection of displacement components of different levels for displacement components of each dimensionality for displacement encoding, which can improve the flexibility of displacement encoding while improving the encoding efficiency.

可选地,所述三维网格对应的码流包括所述第一编码结果及第二编码结果,所述第二编码结果包括第一标志位的编码结果;Optionally, the code stream corresponding to the three-dimensional grid includes the first encoding result and the second encoding result, and the second encoding result includes the encoding result of the first flag bit;

在所述第一标志位为第二预设值的情况下,所述第二编码结果还包括第一参数的编码结果;或,When the first flag bit is a second preset value, the second encoding result also includes an encoding result of the first parameter; or,

在所述第一标志位为第三预设值的情况下,所述第二编码结果还包括第一参数的编码结果、第二参数的编码结果及第三参数的编码结果,When the first flag bit is a third preset value, the second encoding result also includes an encoding result of the first parameter, an encoding result of the second parameter, and an encoding result of the third parameter.

其中,所述第一参数用于表征所述M1个层级,所述第二参数用于表征所述M2个层级,所述第三参数用于表征所述M3个层级。The first parameter is used to characterize the M1 levels, the second parameter is used to characterize the M2 levels, and the third parameter is used to characterize the M3 levels.

另外,所述第二预设值和所述第三预设值为不同值,示例地,所述第二预设值可以为0,所述第三预设值可以为1;或,所述第二预设值可以为1,所述第三预设值可以为0;本实施例对第二预设值和第三预设值不进行限定。In addition, the second preset value and the third preset value are different values. For example, the second preset value may be 0, and the third preset value may be 1; or, the second preset value may be 1, and the third preset value may be 0. This embodiment does not limit the second preset value and the third preset value.

需要说明的是,第一维度的位移分量可以为重要程度较高的位移分量,在某些场景下可以允许仅编码第一维度的位移分量,通过码流中携带第一标志位的编码结果,解码端能够确定编码的位移分量的维度。示例地,该第一维度的位移分量可以为位移的法线分量。It should be noted that the displacement component of the first dimension may be a displacement component of higher importance. In some scenarios, it may be allowed to encode only the displacement component of the first dimension. Through the encoding result of the first flag bit carried in the bitstream, the decoding end can determine the dimension of the encoded displacement component. For example, the displacement component of the first dimension may be a normal component of the displacement.

该实施方式中,在所述第一标志位为第二预设值的情况下,所述第二编码结果还包括第一参数的编码结果;在所述第一标志位为第三预设值的情况下,所述第二编码结果还包括第一参数的编码结果、第二参数的编码结果及第三参数的编码结果。从而解码端通过第一标志位能够确定编码的位移分量;且通过第二编码结果包含的参数信息,解码端能够确定编码选取的位移信息的层级。In this implementation, when the first flag is the second preset value, the second encoding result also includes the encoding result of the first parameter; when the first flag is the third preset value, the second encoding result also includes the encoding result of the first parameter, the encoding result of the second parameter, and the encoding result of the third parameter. Thus, the decoding end can determine the displacement component of the encoding through the first flag; and through the parameter information included in the second encoding result, the decoding end can determine the level of the displacement information selected by the encoding.

可选地,所述对所述待编码位移信息进行编码,得到第一编码结果,包括:Optionally, encoding the displacement information to be encoded to obtain a first encoding result includes:

将所述待编码位移信息排布(packing)至视频帧中;Packing the displacement information to be encoded into a video frame;

对排布后的视频帧进行填充处理,得到填充后的视频帧;Performing padding processing on the arranged video frames to obtain padded video frames;

对所述填充后的视频帧进行编码,得到第一编码结果。The padded video frame is encoded to obtain a first encoding result.

其中,可以基于预设视频填充值对排布后的视频帧进行填充处理。所述预设视频填充值可以是解码端已知的约定值。 The arranged video frames may be filled based on a preset video filling value, which may be a predetermined value known to the decoding end.

该实施方式中,将所述待编码位移信息排布至视频帧中;对排布后的视频帧进行填充处理,得到填充后的视频帧;对所述填充后的视频帧进行编码,得到第一编码结果。这样,在采用视频编码方式对位移信息进行编码时,通过视频填充处理能够使得视频中每一帧的分辨率相同,且像素点数据能排列成矩形。In this implementation, the displacement information to be encoded is arranged in a video frame; the arranged video frame is padded to obtain a padded video frame; the padded video frame is encoded to obtain a first encoding result. In this way, when the displacement information is encoded using a video encoding method, the video padding process can make the resolution of each frame in the video the same, and the pixel point data can be arranged in a rectangle.

可选地,所述对所述待编码位移信息进行编码,得到第一编码结果,包括:Optionally, encoding the displacement information to be encoded to obtain a first encoding result includes:

对所述待编码位移信息进行熵编码,得到第一编码结果。Perform entropy coding on the displacement information to be encoded to obtain a first coding result.

该实施方式中,对所述待编码位移信息进行熵编码,得到第一编码结果,能够通过熵编码实现对位移信息的编码。In this implementation, entropy coding is performed on the displacement information to be encoded to obtain a first coding result, and the encoding of the displacement information can be achieved through entropy coding.

作为一种具体的实施例,如图6和图7所示,本申请实施例提出了一种新的动态网格位移的编解码方法,允许仅对位移各个维度分量的部分层级数据进行编码,之后在解码端对每个维度分别进行位移数据恢复操作。位移是动态网格编解码过程的重要组成部分,存储着基础网格细分后所得细分网格的顶点延法向方向到原始输入网格最近邻点的距离信息,它是一个三维数据,可以分别使用x、y、z分量来分别代表它三个维度的数据。由于细分操作的存在,位移有着多个细分层级和一个基础层级。基础层级在前,细分层级在后,对基础网格的细分次数越多,位移的细分层级也就越多。假设位移有N(N>=1)个层级,对于位移的每个维度i,在编码端可以仅对前ni(ni>=0)个层级的数据进行编码,舍弃后N-ni个层级的数据,减少编码位移数据的数据量。在解码端对于解码位移数据的每个维度i,使用例如补零的方式将舍弃的N-ni个层级的数据填补上,与解码端网格顶点一一对应。As a specific embodiment, as shown in Figures 6 and 7, the embodiment of the present application proposes a new encoding and decoding method for dynamic mesh displacement, which allows only partial hierarchical data of each dimensional component of the displacement to be encoded, and then the displacement data recovery operation is performed on each dimension at the decoding end. Displacement is an important part of the dynamic mesh encoding and decoding process. It stores the distance information from the vertex of the subdivided mesh obtained after the basic mesh is subdivided to the nearest neighbor point of the original input mesh in the normal direction. It is a three-dimensional data, and the x, y, and z components can be used to represent its three-dimensional data respectively. Due to the existence of the subdivision operation, the displacement has multiple subdivision levels and a base level. The base level is in front and the subdivision level is in the back. The more times the basic mesh is subdivided, the more subdivision levels of the displacement. Assuming that the displacement has N (N>=1) levels, for each dimension i of the displacement, only the data of the first n i (n i >=0) levels can be encoded at the encoding end, and the data of the last Nn i levels can be discarded to reduce the amount of data encoded displacement data. At the decoding end, for each dimension i of the decoded displacement data, the discarded Nn i levels of data are padded by, for example, zero padding, so as to correspond one-to-one with the mesh vertices at the decoding end.

如图6所示,在编码端,首先将位移数据输入前处理模块,该模块包含编码前除数据选取外的所有操作,如变换、量化等操作;之后将前处理后的位移数据的每个维度分量分别输入相应的层级选取模块,这些模块在选取过程中会根据不同的选取方法分别输出相应可能存在的x、y、z分量标记数据;最后将选取出的位移层级数据输入编码模块进行编码得到位移码流。该模块具体的编码方式可以有多种,如视频编码、熵编码等。如图7所示,在解码端,通过与编码方式对应的解码方法对位移码流进行解码;之后将解码得到的数据的每个维度分量分别输入相应的数据填补模块,这些模块根据可能接收到的x、y、z分量标记数据将解码出的部分位移数据的每个维度分量填补为长度完整的数据,最终恢复出长度完整的三维位移数据;最后将填补后的的位移数据输入后处理模块得到位移数据。后处理模块的操作是编码端前处理模块操作的逆向实现,如反量化和反变换等操作。As shown in FIG6 , at the encoding end, the displacement data is first input into the pre-processing module, which includes all operations before encoding except data selection, such as transformation, quantization, etc.; then, each dimensional component of the pre-processed displacement data is respectively input into the corresponding level selection module, and these modules will output the corresponding possible x, y, and z component label data according to different selection methods during the selection process; finally, the selected displacement level data is input into the encoding module for encoding to obtain the displacement code stream. There are many specific encoding methods for this module, such as video encoding, entropy encoding, etc. As shown in FIG7 , at the decoding end, the displacement code stream is decoded by the decoding method corresponding to the encoding method; then, each dimensional component of the decoded data is respectively input into the corresponding data filling module, and these modules fill each dimensional component of the decoded partial displacement data into data with complete length according to the possible received x, y, and z component label data, and finally restore the three-dimensional displacement data with complete length; finally, the filled displacement data is input into the post-processing module to obtain the displacement data. The operation of the post-processing module is the reverse implementation of the operation of the pre-processing module at the encoding end, such as inverse quantization and inverse transformation.

参见图8,图8是本申请实施例提供的一种网格解码方法的流程图,可以应用于解码端设备,如图8所示,网格解码方法包括以下步骤:Referring to FIG. 8 , FIG. 8 is a flow chart of a grid decoding method provided in an embodiment of the present application, which can be applied to a decoding end device. As shown in FIG. 8 , the grid decoding method includes the following steps:

步骤201、对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息;Step 201: Decode a first encoding result in a code stream corresponding to a three-dimensional grid to obtain decoded displacement information;

步骤202、对所述码流中的第三编码结果进行解码,得到基础网格,并对所述基础网格进行细分处理,得到细分网格;Step 202: Decode the third encoding result in the code stream to obtain a basic grid, and subdivide the basic grid to obtain a subdivided grid;

步骤203、对解码的位移信息进行填充处理,得到填充后的位移信息,所述填充后的位移信息的层级数大于或等于所述解码的位移信息的层级数; Step 203: performing padding processing on the decoded displacement information to obtain padded displacement information, wherein the number of levels of the padded displacement information is greater than or equal to the number of levels of the decoded displacement information;

步骤204、基于所述填充后的位移信息及所述细分网格进行重建处理,得到重建网格。Step 204: Reconstruct the grid based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.

可选地,所述对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息,包括:Optionally, decoding the first encoding result in the code stream corresponding to the three-dimensional grid to obtain decoded displacement information includes:

对三维网格对应的码流中的第一编码结果进行解码,得到视频帧;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain a video frame;

从所述视频帧中获得解码的位移信息,所述解码的位移信息为所述视频帧中除预设视频填充值以外的位移信息。Decoded displacement information is obtained from the video frame, where the decoded displacement information is displacement information in the video frame excluding a preset video filling value.

可选地,所述方法还包括:Optionally, the method further comprises:

对所述码流中的第二编码结果进行解码,得到目标参数,所述目标参数用于表征位移信息的层级数;Decoding the second encoding result in the code stream to obtain a target parameter, where the target parameter is used to represent the number of levels of displacement information;

所述对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息,包括:The decoding of the first encoding result in the code stream corresponding to the three-dimensional grid to obtain the decoded displacement information includes:

对三维网格对应的码流中的第一编码结果进行解码,得到视频帧;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain a video frame;

基于所述目标参数从所述视频帧中获取解码的位移信息。Decoded displacement information is obtained from the video frame based on the target parameter.

可选地,所述对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息,包括:Optionally, decoding the first encoding result in the code stream corresponding to the three-dimensional grid to obtain decoded displacement information includes:

对三维网格对应的码流中的第一编码结果进行熵解码,得到解码的位移信息。The first encoding result in the code stream corresponding to the three-dimensional grid is entropy decoded to obtain decoded displacement information.

可选地,所述对解码的位移信息进行填充处理,得到填充后的位移信息,包括:Optionally, performing padding processing on the decoded displacement information to obtain the padded displacement information includes:

基于所述细分网格的顶点个数对所述解码的位移信息进行填充处理,得到填充后的位移信息。The decoded displacement information is filled based on the number of vertices of the subdivided mesh to obtain filled displacement information.

可选地,所述填充后的位移信息包括N个层级的第一维度的位移分量,N个层级的第二维度的位移分量,N个层级的第三维度的位移分量;Optionally, the filled displacement information includes N levels of displacement components of the first dimension, N levels of displacement components of the second dimension, and N levels of displacement components of the third dimension;

所述解码的位移信息包括所述N个层级的第一维度的位移分量中的M1个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量中的M2个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量中的M3个层级的第三维度的位移分量,N为正整数,M1、M2及M3均为大于或等于0的整数,且M1、M2及M3均小于或等于N。The decoded displacement information includes the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.

可选地,所述方法还包括:Optionally, the method further comprises:

对所述码流中的第二编码结果进行解码,得到第一标志位和目标参数;Decoding the second encoding result in the code stream to obtain a first flag bit and a target parameter;

其中,在所述第一标志位为第二预设值的情况下,所述目标参数包括第一参数;或,Wherein, when the first flag bit is a second preset value, the target parameter includes the first parameter; or,

在所述第一标志位为第三预设值的情况下,所述目标参数包括第一参数、第二参数及第三参数,When the first flag bit is a third preset value, the target parameter includes a first parameter, a second parameter and a third parameter.

其中,所述第一参数用于表征所述M1个层级,所述第二参数用于表征所述M2个层级,所述第三参数用于表征所述M3个层级。The first parameter is used to characterize the M1 levels, the second parameter is used to characterize the M2 levels, and the third parameter is used to characterize the M3 levels.

下面通过几个具体的实施例对网格编解码方法进行说明:The mesh encoding and decoding method is described below through several specific embodiments:

需要说明的是,对于不同的位移编解码方式,编码端及解码端的处理方法有不同的实现流程。下面将根据不同的编解码方式对位移编解码过程进行说明。 It should be noted that for different displacement coding and decoding methods, the processing methods of the encoding end and the decoding end have different implementation processes. The displacement coding and decoding process will be described below according to different coding and decoding methods.

实施例1:Embodiment 1:

在该实施例中,基于视频编解码方式对位移信息进行编解码。In this embodiment, the displacement information is encoded and decoded based on a video encoding and decoding method.

编码端:Encoding side:

如图9所示,将位移数据输入前处理模块,该模块将对原始的位移数据做一系列的预处理操作,如变换、量化等;继而对于经过前处理的位移数据的每个维度分量,将其分别输入到相应的层级选取模块中,层级选取模块通过判断层级中位移相应分量非零的个数在该层级中的占比是否小于或等于所设置的阈值来进行层级的选取。其中,不同维度分量进行层级选取时,其阈值的设置是相互独立的。层级选取包括如下两种方式:As shown in Figure 9, the displacement data is input into the pre-processing module, which performs a series of pre-processing operations on the original displacement data, such as transformation and quantization. Then, each dimensional component of the pre-processed displacement data is input into the corresponding level selection module. The level selection module selects the level by judging whether the proportion of the number of non-zero corresponding displacement components in the level is less than or equal to the set threshold. Among them, when different dimensional components are selected for level, the setting of their thresholds is independent of each other. Level selection includes the following two methods:

第一种方式:从位移数据的第一个层级开始,统计该层级中位移相应分量非零的个数k,计算k在该层级中的占比。若占比小于或等于所设置的阈值,则将该层级和该层级之后所有层级的位移相应分量移除,仅编码该层级之前的位移相应分量;若占比不满足要求,则继续对下一个层级进行相同的统计计算,直至找到符合条件的层级或遍历完所有细分层级为止。The first method: starting from the first level of displacement data, count the number k of non-zero displacement corresponding components in this level, and calculate the proportion of k in this level. If the proportion is less than or equal to the set threshold, remove the displacement corresponding components of this level and all levels after this level, and only encode the displacement corresponding components before this level; if the proportion does not meet the requirements, continue to perform the same statistical calculation on the next level until a level that meets the conditions is found or all subdivided levels are traversed.

第二种方式:从最后一个层级开始不断向前进行统计计算,若最后一个层级的占比不满足要求,则停止向前遍历。若最后一个层级的占比满足要求,则将该层级的位移相应分量移除,并继续对前一个层级进行相同的统计计算和占比判断,直至遇到不满足要求的层级或遍历完所有细分层级为止。The second method: Start from the last level and continue to perform statistical calculations. If the proportion of the last level does not meet the requirements, stop traversing forward. If the proportion of the last level meets the requirements, remove the corresponding component of the displacement of the level, and continue to perform the same statistical calculations and proportion judgments on the previous level until a level that does not meet the requirements is encountered or all subdivided levels are traversed.

需要说明的是,可以选择将每个维度分量选取的层级数进行标记并传到解码端;或者可以选择不对每个维度分量选取的层级数进行标记,仅需在解码端根据解码网格顶点数量分别对位移信息的每个维度分量进行填补。在经过层级选取后,可将选取出的位移数据以预定的规则排布进YUV图像中。在视频排布过程中,为了保证YUV视频中每一帧的分辨率相同,且像素点数据能排列成矩形,可以对YUV视频进行填充操作。进行填充的视频填充值可以是一个解码端已知的约定值。It should be noted that you can choose to mark the number of levels selected for each dimensional component and pass it to the decoding end; or you can choose not to mark the number of levels selected for each dimensional component, and only need to fill each dimensional component of the displacement information at the decoding end according to the number of vertices of the decoded grid. After the level selection, the selected displacement data can be arranged into the YUV image according to a predetermined rule. In the video arrangement process, in order to ensure that the resolution of each frame in the YUV video is the same and the pixel data can be arranged into a rectangle, the YUV video can be filled. The video filling value to be filled can be an agreed value known to the decoding end.

使用视频编码器对YUV视频编码得到位移码流。Use a video encoder to encode the YUV video to obtain a displacement code stream.

解码端:Decoding side:

根据编码端是否对位移每个维度分量的选取层级数进行标记,基于视频解码的位移解码方法有不同的实现方法,下面分别对两种可能的实现方法进行说明。Depending on whether the encoding end marks the number of selected levels of each dimensional component of the displacement, the displacement decoding method based on video decoding has different implementation methods. Two possible implementation methods are described below.

(1)不对选取层级数进行标记(1) Do not mark the number of selected levels

如图10所示,未标记位移每个维度分量的选取层级数的位移解码过程如下:对于视频解码得到的YUV视频,按编码端将位移数据排布进视频的顺序提取出所有的图像像素值。其中,提取出的图像像素值包含两部分数据:一是编码端选取出的位移数据;二是编码端视频填充的值,该视频填充值是一个编码端与解码端之间约定好的值。提取出像素值数据后,根据与编码端约定好的视频填充值,可将像素值数据中的视频填充部分去除,从而得到编码端选取出的位移数据。其中,YUV是一种颜色编码方法,“Y”表示亮度分量(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度分量(Chrominance或Chroma)。 As shown in FIG10 , the displacement decoding process of the selected level number of each dimension component of the unmarked displacement is as follows: for the YUV video obtained by video decoding, all the image pixel values are extracted in the order in which the encoder arranges the displacement data into the video. Among them, the extracted image pixel value contains two parts of data: one is the displacement data selected by the encoder; the other is the value of the video filling at the encoder, and the video filling value is a value agreed upon between the encoder and the decoder. After extracting the pixel value data, according to the video filling value agreed upon with the encoder, the video filling part in the pixel value data can be removed to obtain the displacement data selected by the encoder. Among them, YUV is a color encoding method, "Y" represents the brightness component (Luminance or Luma), that is, the grayscale value, and "U" and "V" represent the chrominance component (Chrominance or Chroma).

根据解码网格细分后得到的网格的顶点数量对位移数据的每个维度分量分别进行补零操作,直至数据个数与解码网格细分后得到的网格的顶点个数相同为止,此时便可得到经过恢复的完整位移数据。需要说明的是,解码网格细分后得到的网格的顶点个数可以在动态网格解码框架的其他模块中获得,如V-DMC框架可以通过对解码出的基础网格进行细分操作得到。再将经过恢复的完整位移数据输入后处理模块便可得到原始的位移数据,完成位移的解码。后处理模块的操作是编码端前处理模块操作的逆向实现,如反量化和反变换等操作。According to the number of vertices of the mesh obtained after the decoded mesh is subdivided, each dimensional component of the displacement data is filled with zeros until the number of data is the same as the number of vertices of the mesh obtained after the decoded mesh is subdivided. At this time, the restored complete displacement data can be obtained. It should be noted that the number of vertices of the mesh obtained after the decoded mesh is subdivided can be obtained in other modules of the dynamic mesh decoding framework, such as the V-DMC framework, which can be obtained by subdividing the decoded basic mesh. Then, the restored complete displacement data is input into the post-processing module to obtain the original displacement data and complete the decoding of the displacement. The operation of the post-processing module is the reverse implementation of the operation of the pre-processing module on the encoding end, such as inverse quantization and inverse transformation.

(2)对选取层级数进行标记(2) Mark the number of selected levels

如图11所示,标记位移每个维度分量的选取层级数的位移解码过程如下:由于位移的层级数和每个层级中的位移数据个数均与细分后的解码基础网格完全相同,因此,在细分后的解码基础网格中根据得到的每个维度分量的选取层级数便可获取到编码端在每个位移维度分量中选取出的位移数据个数。根据位移每个维度分量的位移数据个数,在视频解码得到的YUV视频中按照编码端将位移数据排布进视频的顺序提取出经过选取的每个位移维度分量数据。得到位移每个维度分量的数据后,根据解码网格细分后网格的顶点个数在每个维度分量的数据末端分别进行补零操作,直至数据个数与顶点个数相同为止;再将经过填补的完整位移数据输入后处理模块便可得到原始的位移数据,完成位移的解码。后处理模块的操作是编码端前处理模块操作的逆向实现,如反量化和反变换等操作。As shown in FIG11 , the displacement decoding process of marking the number of selected levels of each dimensional component of the displacement is as follows: Since the number of levels of the displacement and the number of displacement data in each level are exactly the same as the decoded basic grid after subdivision, the number of displacement data selected by the encoder in each displacement dimensional component can be obtained according to the number of selected levels of each dimensional component in the decoded basic grid after subdivision. According to the number of displacement data of each dimensional component of the displacement, the data of each selected displacement dimensional component is extracted from the YUV video obtained by video decoding in the order in which the displacement data is arranged into the video by the encoder. After obtaining the data of each dimensional component of the displacement, zero padding is performed at the end of the data of each dimensional component according to the number of vertices of the mesh after subdivision of the decoding grid, until the number of data is the same as the number of vertices; then the padded complete displacement data is input into the post-processing module to obtain the original displacement data, and the decoding of the displacement is completed. The operation of the post-processing module is the reverse implementation of the operation of the pre-processing module of the encoder, such as inverse quantization and inverse transformation.

实施例2:Embodiment 2:

在该实施例中,基于熵编码方式对位移信息进行编解码。In this embodiment, the displacement information is encoded and decoded based on an entropy coding method.

编码端:Encoding side:

当选取熵编码为位移编码方式时,位移编码流程如图12所示。首先,将位移数据输入前处理模块,该模块将对原始的位移数据做一系列的预处理操作,如变换、量化等;继而对于经过前处理的位移数据的每个维度分量,将其分别输入到相应的层级选取模块中,层级选取模块通过判断层级中位移相应分量非零的个数在该层级中的占比是否小于或等于所设置的阈值来进行层级的选取。其中,不同维度分量进行层级选取时,其阈值的设置是相互独立的。层级选取包括如下两种方式:When entropy coding is selected as the displacement coding method, the displacement coding process is shown in Figure 12. First, the displacement data is input into the pre-processing module, which will perform a series of pre-processing operations on the original displacement data, such as transformation, quantization, etc.; then, for each dimensional component of the pre-processed displacement data, it is input into the corresponding level selection module respectively. The level selection module selects the level by judging whether the proportion of the number of non-zero corresponding components of the displacement in the level is less than or equal to the set threshold. Among them, when different dimensional components are selected for the level, the setting of their thresholds is independent of each other. Level selection includes the following two methods:

第一种方式:从位移数据的第一个层级开始,统计该层级中位移相应分量非零的个数k,计算k在该层级中的占比。若占比小于或等于所设置的阈值,则将该层级和该层级之后所有层级的位移相应分量移除,仅编码该层级之前的位移相应分量;若占比不满足要求,则对下一个层级进行相同的统计计算,直至找到符合条件的层级或遍历完所有细分层级为止。The first method: starting from the first level of displacement data, count the number k of non-zero displacement corresponding components in this level, and calculate the proportion of k in this level. If the proportion is less than or equal to the set threshold, remove the displacement corresponding components of this level and all levels after this level, and only encode the displacement corresponding components before this level; if the proportion does not meet the requirements, perform the same statistical calculation on the next level until a level that meets the conditions is found or all subdivided levels are traversed.

第二种方式:从最后一个层级开始不断向前进行统计计算,若最后一个层级的占比不满足要求,则停止向前遍历。若最后一个层级的占比满足要求,则将该层级的位移相应分量移除,并继续对前一个层级进行相同的统计计算和占比判断,直至遇到不满足要求的层级或遍历完所有细分层级为止。The second method: Start from the last level and continue to perform statistical calculations. If the proportion of the last level does not meet the requirements, stop traversing forward. If the proportion of the last level meets the requirements, remove the corresponding component of the displacement of the level, and continue to perform the same statistical calculations and proportion judgments on the previous level until a level that does not meet the requirements is encountered or all subdivided levels are traversed.

在经过层级选取后,可将选取出的位移数据直接进行熵编码。此处不限定具体的熵编码方法,例如可以使用基于上下文的自适应可变长编码(Context-based Adaptive Variable Length  Coding,CAVLC)、基于上下文的自适应二进制编码(Context Adaptive Binary Arithmetic Coding,CABAC)等。After the hierarchical selection, the selected displacement data can be directly entropy coded. The specific entropy coding method is not limited here, for example, context-based adaptive variable length coding (Context-based Adaptive Variable Length Coding) can be used. Coding, CAVLC), Context Adaptive Binary Arithmetic Coding (CABAC), etc.

解码端Decoding end

如图13所示,对于接收到的位移码流,首先对位移码流进行熵解码操作得到选取的位移每个维度分量后,根据解码网格细分后网格的顶点个数在位移每个维度分量的末端分别进行补零操作,直至数据个数与顶点个数相同为止。需要说明的是,解码网格细分后网格的顶点个数可以在动态网格解码框架的其他模块中获得,如V-DMC框架可以通过对解码出的基础网格进行细分操作得到。再将经过恢复的完整位移数据输入后处理模块便可得到原始的位移数据,完成位移的解码。后处理模块的操作是编码端前处理模块操作的逆向实现,如反量化和反变换等操作。As shown in FIG13 , for the received displacement code stream, the displacement code stream is first entropy decoded to obtain each dimension component of the selected displacement, and then zero padding is performed at the end of each dimension component of the displacement according to the number of vertices of the mesh after the decoded mesh is subdivided, until the number of data is the same as the number of vertices. It should be noted that the number of vertices of the mesh after the decoded mesh is subdivided can be obtained in other modules of the dynamic mesh decoding framework, such as the V-DMC framework, which can be obtained by subdividing the decoded basic mesh. Then, the restored complete displacement data is input into the post-processing module to obtain the original displacement data, and the decoding of the displacement is completed. The operation of the post-processing module is the reverse implementation of the operation of the pre-processing module on the encoding end, such as inverse quantization and inverse transformation.

实施例3:Embodiment 3:

在该实施例中,基于V-DMC框架对位移信息进行编解码。In this embodiment, the displacement information is encoded and decoded based on the V-DMC framework.

编码端:Encoding side:

本申请实施例在编码端的应用主要在位移编码过程中。如图14所示,由编码端执行的网格编码方法包括如下过程:The application of the embodiment of the present application at the encoding end is mainly in the displacement encoding process. As shown in FIG14 , the grid encoding method performed by the encoding end includes the following process:

(1)网格简化(1) Mesh simplification

网格简化是将当前输入的网格简化到一个点数和面数相对较少的基础网格,并且尽可能地保持原始网格的形状。网格简化的重点在于简化的操作以及对应的误差度量。一种可行的网格简化操作如图15所示,将边两端的顶点合并为一个顶点并删除这两个顶点间的连接。在整个网格中按照一定规则重复这一过程将网格的面数和顶点数减少到目标值。Mesh simplification is to simplify the current input mesh into a basic mesh with relatively few points and faces, and keep the shape of the original mesh as much as possible. The focus of mesh simplification is the simplification operation and the corresponding error metric. A feasible mesh simplification operation is shown in Figure 15, which merges the vertices at both ends of the edge into one vertex and deletes the connection between the two vertices. Repeat this process in the entire mesh according to certain rules to reduce the number of faces and vertices of the mesh to the target value.

在简化的过程中,可以选择某一误差度量来最优化简化的结果。例如,可以选取顶点所有相邻面的方程系数之和作为该顶点的误差度量,相应的边的误差度量即为边上两顶点的误差度量之和。换句话说,一条边合并产生的误差即为合并后顶点到边的原始两顶点相邻所有平面的距离之和。During the simplification process, you can select an error metric to optimize the simplified result. For example, you can select the sum of the coefficients of the equations of all adjacent faces of a vertex as the error metric of the vertex, and the error metric of the corresponding edge is the sum of the error metrics of the two vertices on the edge. In other words, the error generated by merging an edge is the sum of the distances of all adjacent planes from the merged vertex to the original two vertices of the edge.

确定好简化操作以及对应的误差度量之后,就开始迭代进行网格简化。首先计算初始网格的顶点误差,从而得到每条边的误差。然后将每条边按误差从小到大排列,每次选取误差最小的边进行合并。同时,计算合并后的顶点位置,并更新所有与合并后的顶点相关的边的误差。即更新边排列的顺序,保证每次迭代都是基于全局的误差度量。通过迭代将网格的面简化到满足有损编码所需要的数量。After determining the simplification operation and the corresponding error metric, the mesh simplification process begins iteratively. First, the vertex error of the initial mesh is calculated to obtain the error of each edge. Then each edge is arranged from small to large error, and the edge with the smallest error is selected for merging each time. At the same time, the position of the merged vertex is calculated, and the error of all edges related to the merged vertex is updated. That is, the order of edge arrangement is updated to ensure that each iteration is based on the global error metric. Through iteration, the mesh faces are simplified to the number required to meet lossy coding.

(2)网格参数化(2) Mesh parameterization

纹理坐标可能根据重建的当前帧基础网格重新生成。该步骤需要对输入网格的每一个属性图生成纹理坐标,若多个属性图存在特性相似的情况,可共用相同的纹理坐标。生成纹理坐标的方式包括网格参数化等,目前已有许多算法用来对网格进行参数化,如Isocharts算法,该算法使用谱分析实现拉伸驱动的三维网格参数化,将三维网格进行UV展开、分片并打包到二维纹理域。 Texture coordinates may be regenerated based on the reconstructed base mesh of the current frame. This step requires generating texture coordinates for each attribute map of the input mesh. If multiple attribute maps have similar characteristics, they can share the same texture coordinates. There are many ways to generate texture coordinates, including mesh parameterization. There are many algorithms for parameterizing meshes, such as the Isocharts algorithm, which uses spectral analysis to achieve stretch-driven 3D mesh parameterization, UV-unwrapping, slicing, and packing the 3D mesh into a 2D texture domain.

(3)细分变形(3) Subdivision deformation

细分以及变形模块是可选的模块,它可以提高解码端重建的网格质量。在基础网格质量已能够满足应用的需求时可以不使用该模块。The subdivision and deformation modules are optional modules that can improve the quality of the mesh reconstructed at the decoding end. This module can be omitted when the quality of the basic mesh can meet the application requirements.

细分以及变形模块基本思想如图16所示,相同的概念应用于输入的三维(3Dimension,3D)网格以生成位移矢量信息。在图16中,输入的二维(2Dimension,2D)曲线(由2D折线表示),称为“原始”曲线,首先进行下采样以生成基本曲线/折线,称为“简化”曲线。然后将细分方案应用于简化得到的多段线以生成“细分”曲线。随后对细分的多段线进行变形,以获得更好的原始曲线近似值。即,为细分网格的每个顶点计算几何位移矢量,使细分曲线的形状尽可能接近原始曲线的形状。这些几何位移矢量就是该模块输出的几何位移矢量信息(顶点位移)。同样的变形过程也应用于顶点对应的属性信息,从而得到对应的属性位移矢量。The basic idea of the subdivision and deformation module is shown in Figure 16. The same concept is applied to the input three-dimensional (3D) mesh to generate displacement vector information. In Figure 16, the input two-dimensional (2D) curve (represented by a 2D polyline), called the "original" curve, is first downsampled to generate a basic curve/polyline, called the "simplified" curve. The subdivision scheme is then applied to the simplified polyline to generate the "subdivided" curve. The subdivided polyline is then deformed to obtain a better approximation of the original curve. That is, the geometric displacement vector is calculated for each vertex of the subdivided mesh so that the shape of the subdivided curve is as close to the shape of the original curve as possible. These geometric displacement vectors are the geometric displacement vector information (vertex displacement) output by the module. The same deformation process is also applied to the attribute information corresponding to the vertex to obtain the corresponding attribute displacement vector.

(4)基础网格的压缩(4) Compression of base mesh

基础网格压缩模块压缩细分变形模块输出的基础网格信息,基础网格压缩主要有两种不同的模式,分别为帧内模式和帧间模式,如图17所示。在帧内模式下,基础网格压缩模块的输入为一个三维网格,包含几何坐标、连接关系以及与顶点关联的属性信息。在帧间模式下,基础网格压缩模块的输入为运动向量及其标识符以及可能存在的帧内子网格。在编码后,需要对编码的网格进行重建,从而提供给后续的模块进行处理。The basic mesh compression module compresses the basic mesh information output by the subdivision deformation module. There are two main modes of basic mesh compression, namely intra-frame mode and inter-frame mode, as shown in Figure 17. In intra-frame mode, the input of the basic mesh compression module is a three-dimensional mesh, including geometric coordinates, connection relationships, and attribute information associated with vertices. In inter-frame mode, the input of the basic mesh compression module is the motion vector and its identifier and possible intra-frame sub-meshes. After encoding, the encoded mesh needs to be reconstructed so that it can be provided to subsequent modules for processing.

其中,帧内模式下的网格编码可以使用现有的网格编码器对输入的基础网格进行编码,如Draco等。网格编码器类型通过辅助信息编码并传递到解码端;Among them, the grid coding in intra-frame mode can use the existing grid encoder to encode the input basic grid, such as Draco, etc. The grid encoder type is encoded through auxiliary information and passed to the decoding end;

帧间模式下需要编码运动向量以及标识符,运动向量标识是由大于等于0的数字组成的数组,数组大小与该时域运动向量标识对应的参考帧的基础网格的顶点数量相同。对该数组可直接采用已有的熵编码算法对其进行编码,如CABAC等。In inter-frame mode, motion vectors and identifiers need to be encoded. The motion vector identifier is an array consisting of numbers greater than or equal to 0. The array size is the same as the number of vertices of the base grid of the reference frame corresponding to the temporal motion vector identifier. The array can be directly encoded using an existing entropy coding algorithm, such as CABAC.

(5)重建基础网格(5) Reconstruct the base mesh

在基础网格编码后,重建基础网格。对于帧内模式编码的网格,将编码后的网格进行解码即可得到重建的网格。After the base grid is encoded, the base grid is reconstructed. For a grid encoded in intra-frame mode, the encoded grid is decoded to obtain a reconstructed grid.

对于帧间模式下编码的基础网格信息,需要根据运动向量以及标识符重建帧间子网格,若帧间模式下存在帧内子网格,将重建的帧间子网格与帧内子网格进行合并得到重建的基础网格。For the basic grid information encoded in the inter-frame mode, it is necessary to reconstruct the inter-frame sub-grid according to the motion vector and the identifier. If there is an intra-frame sub-grid in the inter-frame mode, the reconstructed inter-frame sub-grid is merged with the intra-frame sub-grid to obtain the reconstructed basic grid.

(6)编码顶点位移(6) Encoding vertex displacement

对顶点位移进行编码,首先根据重建的基础网格对顶点位移顺序进行调整;之后对位移进行小波变换以及量化这两步操作得到量化后的小波变换系数;接下来将量化后的小波变换系数输入数据截断模块;再将当前帧的小波变换系数排列到二维图像中,最终形成一个YUV视频,借助视频编码器编码得到位移的码流。对顶点位移进行编码包括如下过程:To encode the vertex displacement, first adjust the order of vertex displacement according to the reconstructed basic mesh; then perform wavelet transform and quantization on the displacement to obtain the quantized wavelet transform coefficient; then input the quantized wavelet transform coefficient into the data truncation module; then arrange the wavelet transform coefficient of the current frame into a two-dimensional image, and finally form a YUV video, which is encoded with the help of a video encoder to obtain the displacement code stream. Encoding the vertex displacement includes the following process:

a、调整位移顺序a. Adjust the displacement order

根据重建的基础网格对顶点位移顺序进行调整。首先将重建的基础网格进行细分操作, 之后将位移的顺序调整为与细分的基础网格顶点顺序相同。可选地,可以将顶点位移的坐标系从笛卡尔坐标系转换为局部坐标系。Adjust the vertex displacement order according to the reconstructed base mesh. First, subdivide the reconstructed base mesh. The order of the displacements is then adjusted to be the same as the subdivided base mesh vertex order. Optionally, the coordinate system of the vertex displacements can be converted from a Cartesian coordinate system to a local coordinate system.

b、小波变换b. Wavelet transform

可以对位移矢量应用变换降低其数据之间的相关性,一种可选的变换如线性小波变换,其预测过程定义如下式所示:
A transformation can be applied to the displacement vector to reduce the correlation between its data. An optional transformation is a linear wavelet transform, and its prediction process is defined as follows:

其中,v为边(v1,v2)上新插入的中点,Signal(v),Signal(v1)以及Signal(v2)分别为顶点v,v1及v2对应的位移矢量。对顶点v的位移矢量预测后再进行更新,更新过程定义如下式所示:
Where v is the newly inserted midpoint on the edge (v 1 ,v 2 ), Signal(v), Signal(v 1 ) and Signal(v 2 ) are the displacement vectors corresponding to vertices v, v 1 and v 2 respectively. The displacement vector of vertex v is predicted and then updated. The update process is defined as follows:

其中v*为顶点v的相邻的所有顶点的集合。将变换后的位移矢量称为小波系数。Where v * is the set of all adjacent vertices of vertex v. The transformed displacement vector is called wavelet coefficient.

c、系数量化c. Coefficient quantization

对变换后的位移矢量即小波系数可以进行量化,量化的方式有多种,一种量化公式如下所示:
disp[v].d[k]=floor(disp[v].d[k]*scale[k])
The transformed displacement vector, i.e., the wavelet coefficient, can be quantified. There are many ways to quantify it. One quantization formula is as follows:
disp[v].d[k]=floor(disp[v].d[k]*scale[k])

其中,disp[v]表示第v个顶点位移矢量的变换后的值,d[k]表示位移矢量的第k个值,floor表示向下取整。scale[k]为中间参数。bitDepthPosition表示当前网格顶点几何位置的比特位深,qp[k]表示第k个系数的量化参数。如前所述,将位移矢量转换坐标系后,其法向分量相比于切向分量对质量的影响效果更显著,因此可以对切向分量使用更大的量化参数。Where disp[v] represents the transformed value of the displacement vector of the vth vertex, d[k] represents the kth value of the displacement vector, and floor represents rounding down. scale[k] is an intermediate parameter. bitDepthPosition represents the bit depth of the geometric position of the current mesh vertex, and qp[k] represents the quantization parameter of the kth coefficient. As mentioned above, after the displacement vector is converted to the coordinate system, its normal component has a more significant effect on the quality than the tangential component, so a larger quantization parameter can be used for the tangential component.

同时,根据小波变换的特性,还可以对细分新产生的顶点和原有的顶点使用不同的量化参数。即对于细分后的顶点,量化参数更新如公式如下所示:
scale[k]=scale[k]*lodScale[k]
At the same time, according to the characteristics of wavelet transform, different quantization parameters can be used for the newly generated vertices and the original vertices. That is, for the subdivided vertices, the quantization parameter update formula is as follows:
scale[k]=scale[k]*lodScale[k]

其中,lodScale[k]表示当前细分层级量化参数的系数。Among them, lodScale[k] represents the coefficient of the quantization parameter of the current subdivision level.

d、层级选取d. Level selection

对于量化后的小波变换系数,在将其排入二维图像前,对量化后的小波变换系数的x、y、z三维分量分别进行层级选取操作。层级选取操作通过判断量化后的小波变换系数层级中相应分量非零的个数在该层级中的占比是否小于或等于所设置的阈值来进行层级的选取。具体的,从量化后的小波变换系数的第一个层级开始,统计该层级中相应分量非零的个数k,计算k在该层级中的占比,若占比小于或等于所设置的阈值,则将该层级和该层级之后所有层级的小波变换系数相应分量移除,仅编码该层级之前小波变换系数的相应分量;若占比不满足要求,则对下一个层级进行相同的统计计算,直至找到符合条件的层级或遍历完所有细分层级为止。或者,从最后一个层级开始不断向前进行统计计算,若最后一个层级的占比不满足要求,则停止向前遍历;若最后一个层级的占比满足要求,则将该层级小波变换系数的相应分量移除,并继续对前一个层级进行相同的统计计算和占比判断,直至遇到不满足要 求的层级或遍历完所有细分层级为止。For the quantized wavelet transform coefficients, before arranging them into a two-dimensional image, the x, y, and z three-dimensional components of the quantized wavelet transform coefficients are respectively subjected to a level selection operation. The level selection operation selects the level by judging whether the proportion of the number of non-zero corresponding components in the level of the quantized wavelet transform coefficients in the level is less than or equal to the set threshold. Specifically, starting from the first level of the quantized wavelet transform coefficients, the number k of non-zero corresponding components in the level is counted, and the proportion of k in the level is calculated. If the proportion is less than or equal to the set threshold, the corresponding components of the wavelet transform coefficients of the level and all levels after the level are removed, and only the corresponding components of the wavelet transform coefficients before the level are encoded; if the proportion does not meet the requirements, the same statistical calculation is performed on the next level until a level that meets the conditions is found or all subdivided levels are traversed. Alternatively, statistical calculations are performed continuously from the last level forward. If the proportion of the last level does not meet the requirements, the forward traversal is stopped; if the proportion of the last level meets the requirements, the corresponding components of the wavelet transform coefficients of this level are removed, and the same statistical calculations and proportion judgments are performed on the previous level until a level that does not meet the requirements is encountered. Until the requested level or all subdivision levels are traversed.

需要说明的是,可以选择将每个维度分量选取的层级数进行标记并存储到辅助信息中传到解码端;或者可以选择不对每个维度分量选取的层级数进行标记,仅需在解码端根据解码网格顶点数量对位移信息进行填补。It should be noted that the number of levels selected for each dimensional component can be marked and stored in the auxiliary information and transmitted to the decoding end; or the number of levels selected for each dimensional component can be not marked, and the displacement information only needs to be filled in at the decoding end according to the number of decoded mesh vertices.

e、二维排列e. Two-dimensional arrangement

经过层级选取进行位移数据截断后便可将位移数据按如下方式排列到二维图像上:After the displacement data is truncated through hierarchical selection, the displacement data can be arranged on the two-dimensional image as follows:

按从低频到高频的顺序遍历小波系数;Traverse the wavelet coefficients in order from low frequency to high frequency;

对于每个系数,确定其所在NxM像素块的索引(例如N=M=16),按照块的光栅扫描顺序存储在其中;For each coefficient, determine the index of the NxM pixel block where it is located (e.g., N=M=16), and store it in the raster scan order of the block;

根据莫顿(Morton)顺序计算对应NxM像素块在图像上的位置。The position of the corresponding NxM pixel block on the image is calculated according to the Morton order.

需要说明的是,此处不局限块排列的方式,也可以使用其它的排列方案,如zigzag顺序、光栅顺序等。编码器可以在码流中显示地指定相应的排列方案。该过程为了保证生成的YUV视频每一帧的分辨率相同,且像素点个数可以排列为矩形,可以进行视频填充操作,视频填充值可以是一个解码端已知的约定值。It should be noted that the block arrangement is not limited here, and other arrangement schemes can also be used, such as zigzag order, raster order, etc. The encoder can explicitly specify the corresponding arrangement scheme in the bitstream. In order to ensure that the resolution of each frame of the generated YUV video is the same and the number of pixels can be arranged in a rectangle, the video filling operation can be performed, and the video filling value can be an agreed value known by the decoder.

f、视频压缩f. Video Compression

将小波系数排列到二维图像上后,可以直接使用视频编码器对其进行编码,得到位移的码流。After arranging the wavelet coefficients on a two-dimensional image, they can be directly encoded using a video encoder to obtain a displacement code stream.

(7)变形网格的重建(7) Reconstruction of deformed mesh

位移矢量编码时需要获取重建的位移矢量值。对于从重建的二维图像中获取量化后的小波变换系数的方式,根据层级选取时是否标记位移每个维度分量的选取层级数可分为如下两种方式:When encoding the displacement vector, it is necessary to obtain the reconstructed displacement vector value. For the method of obtaining the quantized wavelet transform coefficients from the reconstructed two-dimensional image, the selection level of each dimensional component of the displacement can be divided into the following two methods according to whether the level is marked when selecting the level:

第一种方式:未标记选取层级数The first method: unmark the number of selected levels

在该种方式下,未标记位移每个维度分量选取层级数。在获取量化后的小波变换系数时,首先将二维图像中所有的像素点数据按编码时的排列方式取出;提取出的像素点数据包含两部分值,一是层级选取模块选取出的量化后的小波变换系数,二是二维排列过程中的视频填充值。得到像素点数据后,根据视频填充值便可将像素点数据中的视频填充部分去除,得到层级选取模块选取出的量化后的小波变换系数的每个维度分量数据。之后再根据重建基础网格细分后的顶点个数对选取出的量化后的小波变换系数的每个维度分量分别进行补零操作,直至选取出的每个维度分量数据个数与重建基础网格细分后的顶点个数相同为止,便可得到量化后的小波变换系数。In this way, the number of levels for selecting each dimensional component of the unmarked displacement. When obtaining the quantized wavelet transform coefficients, firstly, all the pixel data in the two-dimensional image are taken out according to the arrangement method during encoding; the extracted pixel data contains two values, one is the quantized wavelet transform coefficient selected by the level selection module, and the other is the video filling value in the two-dimensional arrangement process. After obtaining the pixel data, the video filling part in the pixel data can be removed according to the video filling value to obtain the data of each dimensional component of the quantized wavelet transform coefficient selected by the level selection module. After that, the zero-filling operation is performed on each dimensional component of the selected quantized wavelet transform coefficient according to the number of vertices after the subdivision of the reconstructed basic mesh, until the number of data of each dimensional component selected is the same as the number of vertices after the subdivision of the reconstructed basic mesh, and the quantized wavelet transform coefficient can be obtained.

第二种方式:标记选取层级数The second method: mark the number of selected levels

在该种方式下,标记了位移每个维度分量选取层级数。在获取量化后的小波变换系数时,由于量化后的小波变换系数的层级数和每个层级中的数据个数都与细分后的重建基础网格完全相同。因此,在细分后的重建基础网格中根据每个维度分量的选取层级数便可获取到层级选取模块选取出的量化后的小波变换系数每个维度分量数据的个数。之后根据小波变换 系数每个维度分量数据的个数,在二维图像中按照编码时的排列方式将选取的数据取出。之后根据细分后的重建基础网格的顶点个数在取出的每个维度分量数据的末端分别进行补零操作,直至数据个数与顶点个数相同为止,便可得到量化后的小波变换系数。In this way, the number of selected levels of each dimensional component of the displacement is marked. When obtaining the quantized wavelet transform coefficients, the number of levels of the quantized wavelet transform coefficients and the number of data in each level are exactly the same as those of the subdivided reconstructed basic grid. Therefore, in the subdivided reconstructed basic grid, the number of data of each dimensional component of the quantized wavelet transform coefficients selected by the level selection module can be obtained according to the number of selected levels of each dimensional component. Then, according to the wavelet transform The number of component data of each dimension of the coefficient is obtained by taking out the selected data in the two-dimensional image according to the arrangement method during encoding. Then, zero padding is performed at the end of each dimensional component data taken out according to the number of vertices of the subdivided reconstructed basic grid until the number of data is the same as the number of vertices, and the quantized wavelet transform coefficient can be obtained.

量化后的小波变换系数通过反量化、反变换的方式获取与解码端一致的位移矢量。获取重建的几何位移矢量后,将细分后的重建基础网格根据相应的几何位移矢量得到重建的细分变形后的网格,将其传递到属性图转换模块进行属性图转换。The quantized wavelet transform coefficients are dequantized and inversely transformed to obtain the displacement vector consistent with the decoding end. After obtaining the reconstructed geometric displacement vector, the subdivided reconstructed basic grid is obtained according to the corresponding geometric displacement vector to obtain the reconstructed subdivided deformed grid, which is passed to the attribute graph conversion module for attribute graph conversion.

(8)属性图转换(8) Attribute Graph Conversion

根据输入的原始网格、输入的原始属性图以及重建的变形网格进行属性图转换,如图18所示。The attribute map conversion is performed according to the input original mesh, the input original attribute map and the reconstructed deformed mesh, as shown in FIG18 .

属性图转换的步骤如下:The steps for attribute graph conversion are as follows:

a、计算待生成属性图上每个像素的纹理坐标,如像素A(i,j)对应的纹理坐标为P(u,v);a. Calculate the texture coordinates of each pixel on the attribute map to be generated, such as the texture coordinates corresponding to pixel A(i,j) is P(u,v);

b、判断该纹理坐标是否在细分变形网格参数化后的某个三角面内;b. Determine whether the texture coordinate is within a certain triangle face after the parameterization of the subdivided deformed mesh;

c、如果该纹理坐标不属于任何一个三角面,则将该像素标记为空像素,之后可以用填充算法进行填补;c. If the texture coordinate does not belong to any triangle, the pixel is marked as an empty pixel, which can be filled with a filling algorithm later;

d、如果该纹理坐标属于一个三角面,则:d. If the texture coordinate belongs to a triangle, then:

将该像素标记为已填充;Mark the pixel as filled;

根据该纹理坐标计算其在当前三角面中的重心坐标;Calculate the center of gravity coordinates of the texture in the current triangle surface according to the texture coordinates;

根据该重心坐标以及对应的三角面,将二维的纹理坐标映射到三维的几何坐标,即映射到该纹理坐标对应的细分变形网格上的点,如图18中的M(x,y,z)所示;According to the barycentric coordinates and the corresponding triangular face, the two-dimensional texture coordinates are mapped to three-dimensional geometric coordinates, that is, mapped to the points on the subdivided deformation grid corresponding to the texture coordinates, as shown by M(x, y, z) in FIG. 18 ;

在输入的原始网格上寻找距该三维坐标最近的点,如图18中M′(x,y,z)所示;Find the point closest to the three-dimensional coordinate on the input original grid, as shown by M′(x, y, z) in FIG18 ;

将该三维坐标根据其所在三角面计算其重心坐标并将其映射到二维,计算其纹理坐标,即P′(u′,v′);Calculate the barycentric coordinates of the three-dimensional coordinates according to the triangle face they are on and map them to two dimensions to calculate their texture coordinates, i.e., P′(u′,v′);

通过该纹理坐标在输入的原始属性图上进行采样,得到对应像素位置的值A′(i′,j′);The texture coordinates are used to sample the input original attribute map to obtain the value A′(i′,j′) of the corresponding pixel position;

将该值赋值给要生成的属性图上的对应像素A(i,j)。Assign this value to the corresponding pixel A(i,j) on the attribute map to be generated.

(9)属性图压缩(9) Attribute Graph Compression

得到转换后的属性图后,对于其中的空像素,可以使用已有的填充算法(如Push-Pull算法)对这些空像素进行填充。然后可以利用已有的视频编码器,如H.264/AVC、H.265/HEVC、H.266/VVC等对其进行编码得到输出属性图的码流,其中,AVC为高级视频编码(Advanced Video Coding),HEVC为高效视频编码(High Efficiency Video Coding),VVC为通用视频编码(Versatile Video Coding)。此外,还可以选择性地应用颜色空间转换和色度子采样等操作使视频编码获得更好的率失真性能,如从RGB 444到YUV420的颜色空间转换。对于存在多种属性图的情况,在编码时需要通过辅助信息标识各属性图对应的纹理坐标。After obtaining the converted attribute map, the empty pixels therein can be filled using existing filling algorithms (such as the Push-Pull algorithm). Then, the existing video encoders, such as H.264/AVC, H.265/HEVC, H.266/VVC, etc., can be used to encode it to obtain the bitstream of the output attribute map, where AVC is Advanced Video Coding, HEVC is High Efficiency Video Coding, and VVC is Versatile Video Coding. In addition, color space conversion and chroma subsampling operations can be selectively applied to enable video encoding to obtain better rate-distortion performance, such as color space conversion from RGB 444 to YUV420. In the case of multiple attribute maps, the texture coordinates corresponding to each attribute map need to be identified by auxiliary information during encoding.

(10)辅助信息编码(10) Auxiliary Information Coding

在编码过程中,各模块中有一些可以替代的方案,如网格编码器的类型、视频编码器的 类型、网格细分方案、空域位移矢量变换方案等等,在该编码框架允许使用不同的方案。因此,可以将选择的方案传递到解码端以指导正确的解码。During the encoding process, there are some alternatives in each module, such as the type of grid encoder, the type of video encoder, Different schemes are allowed to be used in this coding framework, such as type, grid subdivision scheme, spatial displacement vector transformation scheme, etc. Therefore, the selected scheme can be passed to the decoding end to guide the correct decoding.

辅助信息包括静态网格编码器的类型、视频编码器的类型、网格细分方案、网格迭代次数、几何位移矢量变换方案、系数排列方案、位移x、y、z分量选取的层级数、或颜色转换方案等等,对于使用帧间编码模式编码的网格部分,还包括对应的参考帧列表等。The auxiliary information includes the type of static grid encoder, the type of video encoder, the grid subdivision scheme, the number of grid iterations, the geometric displacement vector transformation scheme, the coefficient arrangement scheme, the number of levels selected for the displacement x, y, and z components, or the color conversion scheme, etc. For the grid part encoded using the inter-frame coding mode, it also includes the corresponding reference frame list, etc.

在所有模块编码完成后,将基础网格部分码流、纹理坐标部分码流、位移矢量视频码流、属性图视频码流以及辅助信息码流混合得到编码端最终输出的编码码流。After all modules are encoded, the basic grid part bitstream, texture coordinate part bitstream, displacement vector video bitstream, attribute map video bitstream and auxiliary information bitstream are mixed to obtain the encoded bitstream finally output by the encoding end.

解码端:Decoding side:

如图19所示,由解码端执行的网格解码方法包括如下过程:As shown in FIG19 , the grid decoding method performed by the decoding end includes the following process:

(1)辅助信息解码(1) Auxiliary Information Decoding

辅助信息用于指示静态网格编码器的类型、视频编码器的类型、网格细分方案、网格迭代次数、几何位移矢量变换方案、系数排列方案、位移截断标记、或颜色转换方案等等,对于使用帧间编码模式编码的网格部分,还包括对应的参考帧列表等。辅助信息能够用于指导解码端进行正确的解码,该信息解码后由对应的语法参数表示。The auxiliary information is used to indicate the type of static grid encoder, the type of video encoder, grid subdivision scheme, grid iteration number, geometric displacement vector transformation scheme, coefficient arrangement scheme, displacement truncation mark, or color conversion scheme, etc. For the grid part encoded using the inter-frame coding mode, it also includes the corresponding reference frame list, etc. The auxiliary information can be used to guide the decoding end to perform correct decoding, and the information is represented by the corresponding syntax parameters after decoding.

(2)基础网格解码(2) Basic grid decoding

基础网格的解码可以分为帧内模式与帧间模式等。基础网格解码仅负责解码表示基础网格的信息。对于帧内模式,基础网格解码的输出为三维网格,包含几何信息与连接关系以及可能包含的属性信息以及纹理坐标信息等。而对于帧间模式,基础网格解码负责解码运动向量及标识符以及可能存在的帧内子网格,输出的信息为运动向量、标识符以及帧内子网格。The decoding of the base grid can be divided into intra-frame mode and inter-frame mode. The base grid decoding is only responsible for decoding the information representing the base grid. For the intra-frame mode, the output of the base grid decoding is a three-dimensional grid, which contains geometric information and connection relationships, as well as possible attribute information and texture coordinate information. For the inter-frame mode, the base grid decoding is responsible for decoding the motion vector and identifier as well as the possible intra-frame sub-grid, and the output information is the motion vector, identifier and intra-frame sub-grid.

其中,帧内模式下基础网格信息的解码也即基础网格的解码,可以通过辅助信息指示的静态网格解码器类型使用对应的网格解码器解码基础网格;The decoding of the basic grid information in the intra-frame mode is also the decoding of the basic grid. The basic grid can be decoded using the corresponding grid decoder through the static grid decoder type indicated by the auxiliary information;

帧间模式下解码运动向量、标识符以及可能存在的帧内子网格。对于帧内子网格,使用辅助信息指示的网格解码器进行解码即可。运动向量标识符通过熵解码获得,运动向量熵解码后通过反预测以及反量化得到。In inter-frame mode, the motion vector, identifier and possible intra-frame sub-grid are decoded. For the intra-frame sub-grid, the grid decoder indicated by the auxiliary information can be used for decoding. The motion vector identifier is obtained by entropy decoding, and the motion vector is obtained by inverse prediction and inverse quantization after entropy decoding.

(3)细分(3) Segmentation

该细分模块操作与编码端细分操作相同,通过辅助信息指示当前基础网格不同区域的细分迭代次数等。The subdivision module operation is the same as the encoding end subdivision operation, and the auxiliary information is used to indicate the number of subdivision iterations of different areas of the current basic grid.

(4)位移矢量视频解码(4) Displacement vector video decoding

位移矢量视频码流按照辅助信息中指示的视频解码器类型解码,包括几何位移矢量视频以及可能存在的不同的属性的位移矢量视频。The displacement vector video code stream is decoded according to the video decoder type indicated in the auxiliary information, including geometric displacement vector video and possible displacement vector video with different attributes.

(5)位移矢量解码(5) Displacement vector decoding

根据是否标记位移每个维度分量选取的层级数,位移矢量的解码存在以下两种方式:Depending on whether the number of levels selected for each dimension component of the displacement is marked, there are two ways to decode the displacement vector:

第一种方式:未标记选取层级数The first method: unmark the number of selected levels

在该种方式下,未标记位移每个维度分量选取层级数。在获取量化后的小波变换系数时, 首先将二维图像中所有的像素点数据按编码时的排列方式取出;提取出的像素点数据包含两部分值,一是编码端层级选取模块选取出的量化后的小波变换系数,二是编码端二维排列过程中的视频填充值,该值是一个编码端与解码端之间约定好的值。得到像素点数据后,根据视频填充值便可将像素点数据中的视频填充部分去除,得到编码端层级选取模块选取出的量化后的小波变换系数的每个维度分量数据。之后再根据解码基础网格细分后的顶点个数对选取出的量化后的小波变换系数的每个维度分量分别进行补零操作,直至选取出的每个维度分量数据个数与解码基础网格细分后的顶点个数相同为止,便可得到量化后的小波变换系数。之后再对量化后的小波变换系数执行反量化、反变换等操作便能恢复出相应的位移矢量。In this way, the number of levels selected for each dimension component of the unmarked displacement is not used. When obtaining the quantized wavelet transform coefficients, First, all pixel data in the two-dimensional image are extracted according to the arrangement method during encoding; the extracted pixel data contains two values, one is the quantized wavelet transform coefficient selected by the level selection module of the encoding end, and the other is the video filling value in the two-dimensional arrangement process of the encoding end, which is a value agreed upon between the encoding end and the decoding end. After obtaining the pixel data, the video filling part in the pixel data can be removed according to the video filling value to obtain each dimensional component data of the quantized wavelet transform coefficient selected by the level selection module of the encoding end. Then, according to the number of vertices after the decoding basic grid is subdivided, each dimensional component of the selected quantized wavelet transform coefficient is filled with zeros respectively, until the number of selected dimensional component data is the same as the number of vertices after the decoding basic grid is subdivided, and the quantized wavelet transform coefficient can be obtained. Then, the quantized wavelet transform coefficient is dequantized, detransformed, and other operations are performed on the quantized wavelet transform coefficient to restore the corresponding displacement vector.

第二种方式:标记了选取层级数The second method: Mark the number of selected levels

在该种方式下,标记了位移每个维度分量选取层级数。在获取量化后的小波变换系数时,由于量化后的小波变换系数的层级数和每个层级中的数据个数都与细分后的解码基础网格完全相同。因此,在细分后的解码基础网格中根据每个维度分量的选取层级数便可获取到编码端层级选取模块选取出的量化后的小波变换系数每个维度分量数据的个数。之后根据小波变换系数每个维度分量数据的个数,在二维图像中按照编码时的排列方式将选取的数据取出。之后根据细分后的解码基础网格的顶点个数在取出的每个维度分量数据的末端分别进行补零操作,直至数据个数与顶点个数相同为止,便可得到量化后的小波变换系数。之后再对量化后的小波变换系数执行反量化、反变换等操作便能恢复出相应的位移矢量。In this way, the number of levels for selecting each dimensional component of the displacement is marked. When obtaining the quantized wavelet transform coefficients, the number of levels of the quantized wavelet transform coefficients and the number of data in each level are exactly the same as the subdivided decoding basic grid. Therefore, in the subdivided decoding basic grid, the number of each dimensional component data of the quantized wavelet transform coefficients selected by the encoding end level selection module can be obtained according to the number of selected levels of each dimensional component. Then, according to the number of each dimensional component data of the wavelet transform coefficient, the selected data is taken out in the two-dimensional image according to the arrangement method during encoding. Then, according to the number of vertices of the subdivided decoding basic grid, zero padding operations are performed at the end of each dimensional component data taken out, until the number of data is the same as the number of vertices, and the quantized wavelet transform coefficients can be obtained. Then, the quantized wavelet transform coefficients are subjected to inverse quantization, inverse transformation and other operations to restore the corresponding displacement vector.

(6)重建变形网格(6) Reconstruct the deformed mesh

在基础网格以及位移矢量解码重建完成后,根据该两部分重建变形的网格。对细分后的网格的每个顶点加上对应的位移矢量,计算方式如下所示:
deformedmesh[i].v[k]=subdivmesh[i].v[k]+displacement[k]
After the base mesh and displacement vectors are decoded and reconstructed, the deformed mesh is reconstructed based on these two parts. The corresponding displacement vector is added to each vertex of the subdivided mesh, and the calculation method is as follows:
deformedmesh[i].v[k]=subdivmesh[i].v[k]+displacement[k]

其中,subdivmesh[i].v[k]即当前帧(索引为i)基础网格细分后的第k个顶点的几何坐标,displacement[k]即第k个顶点对应的空域位移矢量,deformedmesh[i].v[k]即当前帧细分变形后的第k个顶点的几何坐标。Among them, subdivmesh[i].v[k] is the geometric coordinates of the kth vertex after the base mesh is subdivided in the current frame (index is i), displacement[k] is the spatial displacement vector corresponding to the kth vertex, and deformedmesh[i].v[k] is the geometric coordinates of the kth vertex after subdivision and deformation in the current frame.

另外,属性位移矢量按照同样的方式应用于对应的属性值,以纹理坐标为例,计算公式如下所示:
deformedmesh[i].vt[k]=subdivmesh[i].vt[k]+attdisplacement[k]
In addition, the attribute displacement vector is applied to the corresponding attribute value in the same way. Taking texture coordinates as an example, the calculation formula is as follows:
deformedmesh[i].vt[k]=subdivmesh[i].vt[k]+attdisplacement[k]

其中,subdivmesh[i].vt[k]表示当前帧基础网格细分后第k个纹理坐标,attdisplacement[k]表示属性位移矢量第k个值,deformedmesh[i].vt[k]即表示当前帧细分变形后第k个纹理坐标的值。Among them, subdivmesh[i].vt[k] represents the k-th texture coordinate after the base mesh is subdivided in the current frame, attdisplacement[k] represents the k-th value of the attribute displacement vector, and deformedmesh[i].vt[k] represents the value of the k-th texture coordinate after subdivision and deformation in the current frame.

(7)属性图解码(7) Attribute Graph Decoding

属性图解码器负责将属性图码流解码,属性图采用辅助信息中指示的视频解码器进行解码。对其进行可选的颜色空间转换得到与编码端输入属性图一致的图像格式,得到最终解码输出的属性图。对于多路属性图码流,在解码完成后将每一种属性图按照标识与对应的纹 理坐标进行对应。The attribute map decoder is responsible for decoding the attribute map bitstream. The attribute map is decoded using the video decoder indicated in the auxiliary information. The optional color space conversion is performed to obtain an image format consistent with the input attribute map of the encoder, and the attribute map of the final decoded output is obtained. For multiple attribute map bitstreams, after decoding, each attribute map is decoded according to the identification and the corresponding texture. Corresponding to the logical coordinates.

在各模块处理完成后,最终得到解码端重建的变形网格以及对应的属性图,后续应用将重建的变形网格以及属性图作为输入进行处理。After each module is processed, the deformed mesh and the corresponding attribute map reconstructed by the decoder are finally obtained. Subsequent applications use the reconstructed deformed mesh and attribute map as input for processing.

实施例4:Embodiment 4:

在该实施例中,以应用于V-DMC编解码框架所设计的语法结构为例对三维网格对应的码流的码流语法结构进行说明:In this embodiment, the syntax structure designed for the V-DMC codec framework is used as an example to illustrate the syntax structure of the code stream corresponding to the three-dimensional grid:

表1:Atlas sequence parameter set vdmc extension RBSP syntax
Table 1: Atlas sequence parameter set vdmc extension RBSP syntax

其中,Atlas sequence parameter set vdmc extension RBSP syntax是指Atlas序列参数集vdmc扩展网络原始字节序列负荷(Raw byte sequence payload,RBSP)语法。Descriptor是指描述符号。Wherein, Atlas sequence parameter set vdmc extension RBSP syntax refers to the Atlas sequence parameter set vdmc extension network raw byte sequence payload (Raw byte sequence payload, RBSP) syntax. Descriptor refers to a descriptor symbol.

其中,asps_vdmc_ext_subdivision_method指示当前网格序列的细分方法。表2描述了细分方法与asps_vdmc_ext_subdivision_method的对应关系。 Wherein, asps_vdmc_ext_subdivision_method indicates the subdivision method of the current mesh sequence. Table 2 describes the corresponding relationship between the subdivision method and asps_vdmc_ext_subdivision_method.

表2
Table 2

其中,Name of subdivision method是指细分方法名称。Among them, Name of subdivision method refers to the name of the subdivision method.

其中,asps_vdmc_ext_subdivision_iteration_count指示网格的细分迭代次数。不存在时认为asps_vdmc_ext_subdivision_iteration_count值为0。Where asps_vdmc_ext_subdivision_iteration_count indicates the number of mesh subdivision iterations. If it does not exist, the asps_vdmc_ext_subdivision_iteration_count value is considered to be 0.

其中,asps_vdmc_ext_displacement_coordinate_system指示当前网格序列的坐标系标识符。表3描述了所支持的坐标系与asps_vdmc_ext_displacement_coordinate_system的对应关系。Wherein, asps_vdmc_ext_displacement_coordinate_system indicates the coordinate system identifier of the current grid sequence. Table 3 describes the correspondence between the supported coordinate systems and asps_vdmc_ext_displacement_coordinate_system.

表3
Table 3

其中,Name of displacement coordinate system是指位移坐标系名称。Among them, Name of displacement coordinate system refers to the name of the displacement coordinate system.

其中,asps_vdmc_ext_transform_method指示应用于位移的小波变换标识符。表4描述了所支持的小波变换方法与asps_vdmc_ext_transform_method的对应关系。Wherein, asps_vdmc_ext_transform_method indicates the wavelet transform identifier applied to the displacement. Table 4 describes the correspondence between the supported wavelet transform methods and asps_vdmc_ext_transform_method.

表4
Table 4

其中,Name of transform method是指变换方法名称。Among them, Name of transform method refers to the name of the transformation method.

其中,asps_vdmc_ext_num_attribute_video表示通过视频子比特流发出的属性数量。Among them, asps_vdmc_ext_num_attribute_video represents the number of attributes sent through the video sub-bitstream.

asps_vdmc_ext_attribute_type_id[i]指示具有索引i的属性视频数据单元的属性类型。asps_vdmc_ext_attribute_type_id[i] indicates the attribute type of the attribute video data unit with index i.

asps_vdmc_ext_attribute_frame_width[i]表示具有索引i的属性视频数据单元的图集帧宽度。asps_vdmc_ext_attribute_frame_width[i] indicates the atlas frame width of the attribute video data unit with index i.

asps_vdmc_ext_attribute_frame_height[i]表示具有索引i的属性视频数据单元的图集帧高度。asps_vdmc_ext_attribute_frame_height[i] represents the atlas frame height of the attribute video data unit with index i.

asps_vdmc_ext_attribute_transform_method[i]应用于属性视频数据单元中具有索引i的属性的变换标识符。asps_vdmc_ext_attribute_transform_method[i] applies to the transform identifier of the attribute with index i in the attribute video data unit.

表5描述了支持的变换方法与asps_vdmc_ext_attribute_transform_method的对应关系。Table 5 describes the correspondence between the supported transformation methods and asps_vdmc_ext_attribute_transform_method.

表5

Table 5

其中,Name of transform method是指变换方法名称。Among them, Name of transform method refers to the name of the transformation method.

asps_vdmc_ext_packing_method等于0指示位移分量样本按升序排列,asps_vdmc_ext_packing_method等于1指示位移分量样本按降序排列。asps_vdmc_ext_packing_method equal to 0 indicates that the displacement component samples are arranged in ascending order, and asps_vdmc_ext_packing_method equal to 1 indicates that the displacement component samples are arranged in descending order.

asps_vdmc_ext_1d_displacement_flag等于1指示位移矢量视频中仅存在位移的法线分量。其余两个分量推断为0。asps_vdmc_ext_1d_displacement_flag等于0指示位移的所有3个分量都存在于位移矢量视频中。asps_vdmc_ext_1d_displacement_flag equal to 1 indicates that only the normal component of the displacement is present in the displacement vector video. The other two components are inferred to be 0. asps_vdmc_ext_1d_displacement_flag equal to 0 indicates that all 3 components of the displacement are present in the displacement vector video.

表6:Atlas frame parameter set vdmc extension RBSP syntax

Table 6: Atlas frame parameter set vdmc extension RBSP syntax

其中,Atlas frame parameter set vdmc extension RBSP syntax是指Atlas框架参数集vdmc扩展RBSP语法。Among them, Atlas frame parameter set vdmc extension RBSP syntax refers to the Atlas frame parameter set vdmc extended RBSP syntax.

其中,afps_vdmc_ext_overriden_flag等于1表示atlas帧参数集扩展中存在如下参数:Among them, afps_vdmc_ext_overriden_flag is equal to 1, indicating that the following parameters exist in the atlas frame parameter set extension:

afps_vdmc_ext_subdivision_enable_flag;afps_vdmc_ext_subdivision_enable_flag;

afps_vdmc_ext_displacement_coordinate_system_enable_flag;afps_vdmc_ext_displacement_coordinate_system_enable_flag;

afps_vdmc_ext_transform_method_enable_flag;afps_vdmc_ext_transform_method_enable_flag;

afps_vdmc_ext_transform_parameters_enable_flag;afps_vdmc_ext_transform_parameters_enable_flag;

afps_vdmc_ext_packing_block_size_enable_flag。afps_vdmc_ext_packing_block_size_enable_flag.

其中,afps_vdmc_ext_subdivision_enable_flag等于1表示atlas帧参数集扩展中存在如下参数:afps_vdmc_ext_subdivision_method和afps_vdmc_ext_subdivision_iteration_count。当afps_vdmc_ext_subdivision_enable_flag不存在时,其值被推断为0。Among them, afps_vdmc_ext_subdivision_enable_flag is equal to 1, which indicates that the following parameters exist in the atlas frame parameter set extension: afps_vdmc_ext_subdivision_method and afps_vdmc_ext_subdivision_iteration_count. When afps_vdmc_ext_subdivision_enable_flag does not exist, its value is inferred to be 0.

其中,afps_vdmc_ext_displacement_coordinate_system_enable_flag等于1表示atlas帧参数集扩展中存在afps_vdmc_ext_displacement_coordinate_system。Among them, afps_vdmc_ext_displacement_coordinate_system_enable_flag is equal to 1, indicating that afps_vdmc_ext_displacement_coordinate_system exists in the atlas frame parameter set extension.

当afps_vdmc_ext_displacement_coordinate_system_enable_flag不存在时,其值被推断为0。When afps_vdmc_ext_displacement_coordinate_system_enable_flag is not present, its value is inferred to be 0.

其中,afps_vdmc_ext_transform_method_enable_flag等于1表示atlas帧参数集扩展中存在afps_vdmc_ext_transform_method。当afps_vdmc_ext_transform_method_enable_flag不存在时,其值被推断为等于0。Among them, afps_vdmc_ext_transform_method_enable_flag is equal to 1 to indicate that afps_vdmc_ext_transform_method exists in the atlas frame parameter set extension. When afps_vdmc_ext_transform_method_enable_flag does not exist, its value is inferred to be equal to 0.

afps_vdmc_ext_transform_parameters_enable_flag等于1表示atlas帧参数集扩展中存在vdmc_lifting_transform_parameters。当afps_vdmc_ext_transform_parameters_enable_flag不存在时,其值被推断为等于0。afps_vdmc_ext_transform_parameters_enable_flag equal to 1 indicates the presence of vdmc_lifting_transform_parameters in the atlas frame parameter set extension. When afps_vdmc_ext_transform_parameters_enable_flag is not present, its value is inferred to be equal to 0.

其中,afps_vdmc_ext_subdivision_method指示当前帧的细分方法。当不存在afps_vdmc_ext_subdivision_method时,afps_vdmc_ext_subdivision_method等于asps_vdmc_ext_subdivision_method。Wherein, afps_vdmc_ext_subdivision_method indicates the subdivision method of the current frame. When afps_vdmc_ext_subdivision_method does not exist, afps_vdmc_ext_subdivision_method is equal to asps_vdmc_ext_subdivision_method.

afps_vdmc_ext_subdivision_iteration_count指示细分的迭代次数。当afps_vdmc_ext_subdivision_method等于0且不存在afps_vdmc_ext_subdivision_iteration_count时,afps_vdmc_ext_subdivision_iteration_count等于0。afps_vdmc_ext_subdivision_iteration_count indicates the number of iterations of the subdivision. afps_vdmc_ext_subdivision_iteration_count is equal to 0 when afps_vdmc_ext_subdivision_method is equal to 0 and afps_vdmc_ext_subdivision_iteration_count is not present.

当afps_vdmc_ext_subdivision_method不为0且不存在afps_vdmc_ext_subdivision_iteration_count时afps_vdmc_ext_subdivision_iteration_count等于asps_vdmc_ext_subdivision_iteration_count。 When afps_vdmc_ext_subdivision_method is not 0 and afps_vdmc_ext_subdivision_iteration_count does not exist, afps_vdmc_ext_subdivision_iteration_count is equal to asps_vdmc_ext_subdivision_iteration_count.

afps_vdmc_ext_displacement_coordinate_system指示当前帧网格位移的坐标系标识符。当不存在afps_vdmc_ext_displacement_coordinate_system时,afps_vdmc_ext_displacement_coordinate_system等于asps_vdmc_ext_displacement_coordinate_system。afps_vdmc_ext_displacement_coordinate_system indicates the coordinate system identifier of the current frame grid displacement. When afps_vdmc_ext_displacement_coordinate_system does not exist, afps_vdmc_ext_displacement_coordinate_system is equal to asps_vdmc_ext_displacement_coordinate_system.

afps_vdmc_ext_transform_method指示应用于位移变换的标识符。当不存在afps_vdmc_ext_transform_method时,afps_vdmc_ext_transform_method等于asps_vdmc_ext_transform_method。afps_vdmc_ext_transform_method indicates an identifier applied to displacement transform. When afps_vdmc_ext_transform_method is not present, afps_vdmc_ext_transform_method is equal to asps_vdmc_ext_transform_method.

afps_ext_disp_x_lod_enable_flag指示当前帧位移x分量所传输层级数的标识符。表7描述了所传输层级数与afps_ext_disp_x_lod_enable_flag的对应关系。afps_ext_disp_x_lod_enable_flag的最大值取决于afps_vdmc_ext_subdivision_iteration_count。afps_ext_disp_x_lod_enable_flag indicates the identifier of the number of layers transmitted by the current frame displacement x component. Table 7 describes the correspondence between the number of layers transmitted and afps_ext_disp_x_lod_enable_flag. The maximum value of afps_ext_disp_x_lod_enable_flag depends on afps_vdmc_ext_subdivision_iteration_count.

表7
Table 7

其中,afps_ext_disp_y_lod_enable_flag指示当前帧位移y分量所传输层级数的标识符。表8描述了所传输层级数与afps_ext_disp_y_lod_enable_flag的对应关系。afps_ext_disp_y_lod_enable_flag的最大值取决于afps_vdmc_ext_subdivision_iteration_count。Among them, afps_ext_disp_y_lod_enable_flag indicates the identifier of the number of layers transmitted by the current frame displacement y component. Table 8 describes the correspondence between the number of transmitted layers and afps_ext_disp_y_lod_enable_flag. The maximum value of afps_ext_disp_y_lod_enable_flag depends on afps_vdmc_ext_subdivision_iteration_count.

表8
Table 8

其中,afps_ext_disp_z_lod_enable_flag指示当前帧位移z分量所传输层级数的标识符。表9描述了所传输层级数与afps_ext_disp_z_lod_enable_flag的对应关系。afps_ext_disp_z_lod_enable_flag的最大值取决于afps_vdmc_ext_subdivision_iteration_count。Among them, afps_ext_disp_z_lod_enable_flag indicates the identifier of the number of levels transmitted by the current frame displacement z component. Table 9 describes the correspondence between the number of transmitted levels and afps_ext_disp_z_lod_enable_flag. The maximum value of afps_ext_disp_z_lod_enable_flag depends on afps_vdmc_ext_subdivision_iteration_count.

表9
Table 9

需要说明的是,本申请实施例提供的网格编码方法,执行主体可以为网格编码装置,或者,该网格编码装置中的用于执行网格编码的方法的控制模块。本申请实施例中以网格编码装置执行网格编码的方法为例,说明本申请实施例提供的网格编码装置。It should be noted that the grid coding method provided in the embodiment of the present application can be executed by a grid coding device, or a control module in the grid coding device for executing the grid coding method. In the embodiment of the present application, the grid coding device provided in the embodiment of the present application is described by taking the grid coding method executed by the grid coding device as an example.

请参见图20,图20是本申请实施例提供的一种网格编码装置的结构图,如图20所示,网格编码装置300包括:Please refer to FIG. 20 , which is a structural diagram of a grid coding device provided in an embodiment of the present application. As shown in FIG. 20 , the grid coding device 300 includes:

获取模块301,用于获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格;An acquisition module 301 is used to acquire a basic grid corresponding to a three-dimensional grid, and perform subdivision processing based on the basic grid to obtain a subdivided grid;

变形模块302,用于基于所述细分网格进行变形操作,得到变形网格;A deformation module 302, configured to perform a deformation operation based on the subdivided grid to obtain a deformed grid;

选择模块303,用于从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数;A selection module 303 is used to select displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to represent the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid;

编码模块304,用于对所述待编码位移信息进行编码,得到第一编码结果。The encoding module 304 is used to encode the displacement information to be encoded to obtain a first encoding result.

可选地,所述细分网格对应的位移信息包括多个层级的位移信息,所述选择模块包括:Optionally, the displacement information corresponding to the subdivided grid includes displacement information of multiple levels, and the selection module includes:

确定单元,用于确定所述多个层级中的目标层级,其中,所述目标层级基于所述多个层级的位移信息中表征位移为第一预设值的位移信息确定;A determining unit, configured to determine a target level among the multiple levels, wherein the target level is determined based on displacement information representing a displacement of a first preset value among the displacement information of the multiple levels;

选择单元,用于基于所述目标层级从所述细分网格对应的位移信息中选择待编码位移信息。A selection unit is used to select displacement information to be encoded from the displacement information corresponding to the subdivided grid based on the target level.

可选地,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值满足预设条件。Optionally, a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level meets a preset condition.

可选地,所述确定单元具体用于:Optionally, the determining unit is specifically configured to:

从所述多个层级中的第一个层级开始确定目标层级,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值大于第一预设比值;Determining a target level from a first level among the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is greater than the first preset ratio;

在所述目标层级不为所述第一个层级的情况下,所述待编码位移信息包括所述第一个层级至所述目标层级的前一个层级的位移信息。In a case where the target level is not the first level, the displacement information to be encoded includes displacement information from the first level to a level before the target level.

可选地,所述确定单元具体用于:Optionally, the determining unit is specifically configured to:

从所述多个层级中的最后一个层级开始确定目标层级,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值小于或等于第二预设比值;Determine a target level from the last level of the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is less than or equal to a second preset ratio;

所述待编码位移信息包括所述多个层级中的第一个层级至所述目标层级的位移信息。The displacement information to be encoded includes displacement information from a first level among the multiple levels to the target level.

可选地,所述细分网格对应的位移信息包括:N个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量;Optionally, the displacement information corresponding to the subdivided grid includes: displacement components of a first dimension of N levels, displacement components of a second dimension of the N levels, and displacement components of a third dimension of the N levels;

所述待编码位移信息包括:所述N个层级的第一维度的位移分量中的M1个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量中的M2个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量中的M3个层级的第三维度的位移分量, N为正整数,M1、M2及M3均为大于或等于0的整数,且M1、M2及M3均小于或等于N。The displacement information to be encoded includes: displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.

可选地,所述三维网格对应的码流包括所述第一编码结果及第二编码结果,所述第二编码结果包括第一标志位的编码结果;Optionally, the code stream corresponding to the three-dimensional grid includes the first encoding result and the second encoding result, and the second encoding result includes the encoding result of the first flag bit;

在所述第一标志位为第二预设值的情况下,所述第二编码结果还包括第一参数的编码结果;或,When the first flag bit is a second preset value, the second encoding result also includes an encoding result of the first parameter; or,

在所述第一标志位为第三预设值的情况下,所述第二编码结果还包括第一参数的编码结果、第二参数的编码结果及第三参数的编码结果,When the first flag bit is a third preset value, the second encoding result also includes an encoding result of the first parameter, an encoding result of the second parameter, and an encoding result of the third parameter.

其中,所述第一参数用于表征所述M1个层级,所述第二参数用于表征所述M2个层级,所述第三参数用于表征所述M3个层级。The first parameter is used to characterize the M1 levels, the second parameter is used to characterize the M2 levels, and the third parameter is used to characterize the M3 levels.

可选地,所述编码模块具体用于:Optionally, the encoding module is specifically used for:

将所述待编码位移信息排布至视频帧中;Arranging the displacement information to be encoded into a video frame;

对排布后的视频帧进行填充处理,得到填充后的视频帧;Performing padding processing on the arranged video frames to obtain padded video frames;

对所述填充后的视频帧进行编码,得到第一编码结果。The padded video frame is encoded to obtain a first encoding result.

可选地,所述编码模块具体用于:Optionally, the encoding module is specifically used for:

对所述待编码位移信息进行熵编码,得到第一编码结果。Entropy coding is performed on the displacement information to be encoded to obtain a first coding result.

本申请实施例中的网格编码装置可以是装置,具有操作系统的装置或电子设备,也可以是终端中的部件、集成电路、或芯片。该装置或电子设备可以是移动终端,也可以为非移动终端。示例性的,移动终端可以包括但不限于上述所列举的终端的类型,非移动终端可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。The grid coding device in the embodiment of the present application can be a device, a device or electronic device with an operating system, or a component, an integrated circuit, or a chip in a terminal. The device or electronic device can be a mobile terminal or a non-mobile terminal. Exemplarily, the mobile terminal can include but is not limited to the types of terminals listed above, and the non-mobile terminal can be a server, a network attached storage (Network Attached Storage, NAS), a personal computer (personal computer, PC), a television (television, TV), a teller machine or a self-service machine, etc., which is not specifically limited in the embodiment of the present application.

本申请实施例提供的网格编码装置能够实现图5的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。The grid coding device provided in the embodiment of the present application can implement each process implemented by the method embodiment of Figure 5 and achieve the same technical effect. To avoid repetition, it will not be repeated here.

需要说明的是,本申请实施例提供的网格解码方法,执行主体可以为网格解码装置,或者,该网格解码装置中的用于执行网格解码的方法的控制模块。本申请实施例中以网格解码装置执行网格解码的方法为例,说明本申请实施例提供的网格解码装置。It should be noted that the grid decoding method provided in the embodiment of the present application can be executed by a grid decoding device, or a control module in the grid decoding device for executing the grid decoding method. In the embodiment of the present application, the grid decoding device provided in the embodiment of the present application is described by taking the grid decoding method executed by the grid decoding device as an example.

请参见图21,图21是本申请实施例提供的一种网格解码装置的结构图,如图21所示,网格解码装置400包括:Please refer to FIG. 21 , which is a structural diagram of a grid decoding device provided in an embodiment of the present application. As shown in FIG. 21 , the grid decoding device 400 includes:

第一解码模块401,用于对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息;A first decoding module 401 is used to decode a first encoding result in a code stream corresponding to a three-dimensional grid to obtain decoded displacement information;

第二解码模块402,用于对所述码流中的第三编码结果进行解码,得到基础网格,并对所述基础网格进行细分处理,得到细分网格;A second decoding module 402 is used to decode the third encoding result in the code stream to obtain a basic grid, and to subdivide the basic grid to obtain a subdivided grid;

填充模块403,用于对解码的位移信息进行填充处理,得到填充后的位移信息,所述填充后的位移信息的层级数大于或等于所述解码的位移信息的层级数;A filling module 403 is used to perform filling processing on the decoded displacement information to obtain filled displacement information, wherein the number of levels of the filled displacement information is greater than or equal to the number of levels of the decoded displacement information;

重建模块404,用于基于所述填充后的位移信息及所述细分网格进行重建处理,得到重 建网格。The reconstruction module 404 is used to perform reconstruction processing based on the filled displacement information and the subdivided grid to obtain a reconstructed Build a grid.

可选地,所述第一解码模块具体用于:Optionally, the first decoding module is specifically used to:

对三维网格对应的码流中的第一编码结果进行解码,得到视频帧;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain a video frame;

从所述视频帧中获得解码的位移信息,所述解码的位移信息为所述视频帧中除预设视频填充值以外的位移信息。Decoded displacement information is obtained from the video frame, where the decoded displacement information is displacement information in the video frame excluding a preset video filling value.

可选地,所述装置还包括:Optionally, the device further comprises:

第三解码模块,用于对所述码流中的第二编码结果进行解码,得到目标参数,所述目标参数用于表征位移信息的层级数;A third decoding module, used for decoding the second encoding result in the code stream to obtain a target parameter, where the target parameter is used to represent the number of levels of displacement information;

所述第一解码模块具体用于:The first decoding module is specifically used for:

对三维网格对应的码流中的第一编码结果进行解码,得到视频帧;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain a video frame;

基于所述目标参数从所述视频帧中获取解码的位移信息。Decoded displacement information is obtained from the video frame based on the target parameter.

可选地,所述第一解码模块具体用于:Optionally, the first decoding module is specifically used to:

对三维网格对应的码流中的第一编码结果进行熵解码,得到解码的位移信息。The first encoding result in the code stream corresponding to the three-dimensional grid is entropy decoded to obtain decoded displacement information.

可选地,所述填充模块具体用于:Optionally, the filling module is specifically used for:

基于所述细分网格的顶点个数对所述解码的位移信息进行填充处理,得到填充后的位移信息。The decoded displacement information is filled based on the number of vertices of the subdivided mesh to obtain filled displacement information.

可选地,所述填充后的位移信息包括N个层级的第一维度的位移分量,N个层级的第二维度的位移分量,N个层级的第三维度的位移分量;Optionally, the filled displacement information includes N levels of displacement components of the first dimension, N levels of displacement components of the second dimension, and N levels of displacement components of the third dimension;

所述解码的位移信息包括所述N个层级的第一维度的位移分量中的M1个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量中的M2个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量中的M3个层级的第三维度的位移分量,N为正整数,M1、M2及M3均为大于或等于0的整数,且M1、M2及M3均小于或等于N。The decoded displacement information includes the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.

可选地,所述装置还包括:Optionally, the device further comprises:

第四解码模块,用于对所述码流中的第二编码结果进行解码,得到第一标志位和目标参数;A fourth decoding module, used for decoding the second encoding result in the code stream to obtain a first flag bit and a target parameter;

其中,在所述第一标志位为第二预设值的情况下,所述目标参数包括第一参数;或,Wherein, when the first flag bit is a second preset value, the target parameter includes the first parameter; or,

在所述第一标志位为第三预设值的情况下,所述目标参数包括第一参数、第二参数及第三参数,When the first flag bit is a third preset value, the target parameter includes a first parameter, a second parameter and a third parameter.

其中,所述第一参数用于表征所述M1个层级,所述第二参数用于表征所述M2个层级,所述第三参数用于表征所述M3个层级。The first parameter is used to characterize the M1 levels, the second parameter is used to characterize the M2 levels, and the third parameter is used to characterize the M3 levels.

本申请实施例中的网格解码装置可以是装置,具有操作系统的装置或电子设备,也可以是终端中的部件、集成电路、或芯片。该装置或电子设备可以是移动终端,也可以为非移动终端。示例性的,移动终端可以包括但不限于上述所列举的终端的类型,非移动终端可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer, PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。The trellis decoding device in the embodiment of the present application can be a device, a device or electronic device with an operating system, or a component, integrated circuit, or chip in a terminal. The device or electronic device can be a mobile terminal or a non-mobile terminal. For example, the mobile terminal can include but is not limited to the types of terminals listed above, and the non-mobile terminal can be a server, a network attached storage (Network Attached Storage, NAS), a personal computer (personal computer, PC), television (TV), ATM or self-service machine, etc., which are not specifically limited in the embodiments of the present application.

本申请实施例提供的网格解码装置能够实现图8的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。The grid decoding device provided in the embodiment of the present application can implement each process implemented by the method embodiment of Figure 8 and achieve the same technical effect. To avoid repetition, it will not be repeated here.

可选地,如图22所示,本申请实施例还提供一种通信设备500,包括处理器501和存储器502,存储器502上存储有可在所述处理器501上运行的程序或指令,例如,该通信设备500为编码端设备时,该程序或指令被处理器501执行时实现上述网格编码方法实施例的各个步骤,且能达到相同的技术效果。该通信设备500为解码端设备时,该程序或指令被处理器501执行时实现上述网格解码方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。Optionally, as shown in FIG22, the embodiment of the present application further provides a communication device 500, including a processor 501 and a memory 502, the memory 502 stores a program or instruction that can be run on the processor 501, for example, when the communication device 500 is an encoding end device, the program or instruction is executed by the processor 501 to implement the various steps of the above-mentioned grid encoding method embodiment, and can achieve the same technical effect. When the communication device 500 is a decoding end device, the program or instruction is executed by the processor 501 to implement the various steps of the above-mentioned grid decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.

本申请实施例还提供一种终端,包括处理器及通信接口,所述处理器用于:获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格;基于所述细分网格进行变形操作,得到变形网格;从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数;对所述待编码位移信息进行编码,得到第一编码结果。或者,所述处理器用于:对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息;对所述码流中的第三编码结果进行解码,得到基础网格,并对所述基础网格进行细分处理,得到细分网格;对解码的位移信息进行填充处理,得到填充后的位移信息,所述填充后的位移信息的层级数大于或等于所述解码的位移信息的层级数;基于所述填充后的位移信息及所述细分网格进行重建处理,得到重建网格。The embodiment of the present application also provides a terminal, including a processor and a communication interface, wherein the processor is used to: obtain a basic grid corresponding to a three-dimensional grid, perform subdivision processing based on the basic grid to obtain a subdivided grid; perform deformation operation based on the subdivided grid to obtain a deformed grid; select displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to characterize the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid; encode the displacement information to be encoded to obtain a first encoding result. Alternatively, the processor is used to: decode the first encoding result in the code stream corresponding to the three-dimensional grid to obtain the decoded displacement information; decode the third encoding result in the code stream to obtain the basic grid, and perform subdivision processing on the basic grid to obtain a subdivided grid; perform filling processing on the decoded displacement information to obtain the filled displacement information, and the number of levels of the filled displacement information is greater than or equal to the number of levels of the decoded displacement information; perform reconstruction processing based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.

该终端实施例与上述网格编码方法或网格解码方法实施例对应,上述网格编码方法或网格解码方法实施例的各个实施过程和实现方式均可适用于该终端实施例中,且能达到相同的技术效果。具体地,图23为实现本申请实施例的一种终端的硬件结构示意图。The terminal embodiment corresponds to the above-mentioned grid coding method or grid decoding method embodiment, and each implementation process and implementation method of the above-mentioned grid coding method or grid decoding method embodiment can be applied to the terminal embodiment and can achieve the same technical effect. Specifically, Figure 23 is a schematic diagram of the hardware structure of a terminal implementing an embodiment of the present application.

该终端600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609以及处理器610等中的至少部分部件。The terminal 600 includes but is not limited to: a radio frequency unit 601, a network module 602, an audio output unit 603, an input unit 604, a sensor 605, a display unit 606, a user input unit 607, an interface unit 608, a memory 609 and at least some of the components of a processor 610.

本领域技术人员可以理解,终端600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图23中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。Those skilled in the art will appreciate that the terminal 600 may also 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 610 through a power management system, so as to implement functions such as managing charging, discharging, and power consumption management through the power management system. The terminal structure shown in FIG23 does not constitute a limitation on the terminal, and the terminal 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.

应理解的是,本申请实施例中,输入单元604可以包括图形处理器(Graphics Processing Unit,GPU)6041和麦克风6042,GPU 6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元606可包括显示面板6061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板6061。用户输入单元607包括触控面板6071以及其他输入设备6072中的至少一种。触控面板6071,也称 为触摸屏。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。It should be understood that in the embodiment of the present application, the input unit 604 may include a graphics processing unit (GPU) 6041 and a microphone 6042, and the GPU 6041 processes the image data of the static picture or video obtained by the image capture device (such as a camera) in the video capture mode or the image capture mode. The display unit 606 may include a display panel 6061, which may be configured in the form of a liquid crystal display, an organic light emitting diode, etc. The user input unit 607 includes a touch panel 6071 and at least one of the other input devices 6072. The touch panel 6071, also called The touch panel 6071 may include two parts: a touch detection device and a touch controller. Other input devices 6072 may include, but are not limited to, a physical keyboard, function keys (such as a volume control key, a switch key, etc.), a trackball, a mouse, and a joystick, which will not be described in detail here.

本申请实施例中,射频单元601接收来自网络侧设备的下行数据后,可以传输给处理器610进行处理;另外,射频单元601可以向网络侧设备发送上行数据。通常,射频单元601包括但不限于天线、放大器、收发信机、耦合器、低噪声放大器、双工器等。In the embodiment of the present application, after receiving downlink data from the network side device, the RF unit 601 can transmit the data to the processor 610 for processing; in addition, the RF unit 601 can send uplink data to the network side device. Generally, the RF unit 601 includes but is not limited to an antenna, an amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, etc.

存储器609可用于存储软件程序或指令以及各种数据。存储器609可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器609可以包括易失性存储器或非易失性存储器,或者,存储器609可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)。本申请实施例中的存储器609包括但不限于这些和任意其它适合类型的存储器。The memory 609 can be used to store software programs or instructions and various data. The memory 609 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. In addition, the memory 609 may include a volatile memory or a non-volatile memory, or the memory 609 may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be 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 609 in the embodiment of the present application includes but is not limited to these and any other suitable types of memories.

处理器610可包括一个或多个处理单元;可选的,处理器610集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。The processor 610 may include one or more processing units; optionally, the processor 610 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 610.

其中,在所述终端为编码端设备的情况下:Wherein, when the terminal is a coding end device:

所述处理器610用于:The processor 610 is configured to:

获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格;Obtaining a basic grid corresponding to the three-dimensional grid, and performing subdivision processing based on the basic grid to obtain a subdivided grid;

基于所述细分网格进行变形操作,得到变形网格;Performing a deformation operation based on the subdivided grid to obtain a deformed grid;

从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数;Selecting displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to represent the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid;

对所述待编码位移信息进行编码,得到第一编码结果。The displacement information to be encoded is encoded to obtain a first encoding result.

可选地,所述细分网格对应的位移信息包括多个层级的位移信息,所述处理器610具体用于:Optionally, the displacement information corresponding to the subdivided grid includes displacement information of multiple levels, and the processor 610 is specifically configured to:

确定所述多个层级中的目标层级,其中,所述目标层级基于所述多个层级的位移信息中 表征位移为第一预设值的位移信息确定;Determine a target level among the multiple levels, wherein the target level is based on the displacement information of the multiple levels Displacement information indicating that the displacement is a first preset value is determined;

基于所述目标层级从所述细分网格对应的位移信息中选择待编码位移信息。The displacement information to be encoded is selected from the displacement information corresponding to the subdivided grid based on the target level.

可选地,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值满足预设条件。Optionally, a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level meets a preset condition.

可选地,所述处理器610具体用于:Optionally, the processor 610 is specifically configured to:

从所述多个层级中的第一个层级开始确定目标层级,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值大于第一预设比值;Determining a target level from a first level among the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is greater than the first preset ratio;

在所述目标层级不为所述第一个层级的情况下,所述待编码位移信息包括所述第一个层级至所述目标层级的前一个层级的位移信息。In a case where the target level is not the first level, the displacement information to be encoded includes displacement information from the first level to a level before the target level.

可选地,所述处理器610具体用于:Optionally, the processor 610 is specifically configured to:

从所述多个层级中的最后一个层级开始确定目标层级,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值小于或等于第二预设比值;Determine a target level from the last level of the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is less than or equal to a second preset ratio;

所述待编码位移信息包括所述多个层级中的第一个层级至所述目标层级的位移信息。The displacement information to be encoded includes displacement information from a first level among the multiple levels to the target level.

可选地,所述细分网格对应的位移信息包括:N个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量;Optionally, the displacement information corresponding to the subdivided grid includes: displacement components of a first dimension of N levels, displacement components of a second dimension of the N levels, and displacement components of a third dimension of the N levels;

所述待编码位移信息包括:所述N个层级的第一维度的位移分量中的M1个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量中的M2个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量中的M3个层级的第三维度的位移分量,N为正整数,M1、M2及M3均为大于或等于0的整数,且M1、M2及M3均小于或等于N。The displacement information to be encoded includes: the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.

可选地,所述三维网格对应的码流包括所述第一编码结果及第二编码结果,所述第二编码结果包括第一标志位的编码结果;Optionally, the code stream corresponding to the three-dimensional grid includes the first encoding result and the second encoding result, and the second encoding result includes the encoding result of the first flag bit;

在所述第一标志位为第二预设值的情况下,所述第二编码结果还包括第一参数的编码结果;When the first flag bit is a second preset value, the second encoding result also includes an encoding result of the first parameter;

在所述第一标志位为第三预设值的情况下,所述第二编码结果还包括第一参数的编码结果、第二参数的编码结果及第三参数的编码结果,When the first flag bit is a third preset value, the second encoding result also includes an encoding result of the first parameter, an encoding result of the second parameter, and an encoding result of the third parameter.

其中,所述第一参数用于表征所述M1个层级,所述第二参数用于表征所述M2个层级,所述第三参数用于表征所述M3个层级。The first parameter is used to characterize the M1 levels, the second parameter is used to characterize the M2 levels, and the third parameter is used to characterize the M3 levels.

可选地,所述处理器610具体用于:Optionally, the processor 610 is specifically configured to:

将所述待编码位移信息排布至视频帧中;Arranging the displacement information to be encoded into a video frame;

对排布后的视频帧进行填充处理,得到填充后的视频帧;Performing padding processing on the arranged video frames to obtain padded video frames;

对所述填充后的视频帧进行编码,得到第一编码结果。The padded video frame is encoded to obtain a first encoding result.

可选地,所述处理器610具体用于: Optionally, the processor 610 is specifically configured to:

对所述待编码位移信息进行熵编码,得到第一编码结果。Perform entropy coding on the displacement information to be encoded to obtain a first coding result.

其中,在所述终端为解码端设备的情况下:Wherein, when the terminal is a decoding end device:

所述处理器610用于:The processor 610 is configured to:

对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain decoded displacement information;

对所述码流中的第三编码结果进行解码,得到基础网格,并对所述基础网格进行细分处理,得到细分网格;Decoding the third encoding result in the code stream to obtain a basic grid, and performing subdivision processing on the basic grid to obtain a subdivided grid;

对解码的位移信息进行填充处理,得到填充后的位移信息,所述填充后的位移信息的层级数大于或等于所述解码的位移信息的层级数;Performing padding processing on the decoded displacement information to obtain padded displacement information, wherein the number of levels of the padded displacement information is greater than or equal to the number of levels of the decoded displacement information;

基于所述填充后的位移信息及所述细分网格进行重建处理,得到重建网格。Reconstruction processing is performed based on the filled displacement information and the subdivided grid to obtain a reconstructed grid.

可选地,所述处理器610具体用于:Optionally, the processor 610 is specifically configured to:

对三维网格对应的码流中的第一编码结果进行解码,得到视频帧;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain a video frame;

从所述视频帧中获得解码的位移信息,所述解码的位移信息为所述视频帧中除预设视频填充值以外的位移信息。Decoded displacement information is obtained from the video frame, where the decoded displacement information is displacement information in the video frame excluding a preset video filling value.

可选地,所述处理器610具体用于:Optionally, the processor 610 is specifically configured to:

对所述码流中的第二编码结果进行解码,得到目标参数,所述目标参数用于表征位移信息的层级数;Decoding the second encoding result in the code stream to obtain a target parameter, where the target parameter is used to represent the number of levels of displacement information;

对三维网格对应的码流中的第一编码结果进行解码,得到视频帧;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain a video frame;

基于所述目标参数从所述视频帧中获取解码的位移信息。Decoded displacement information is obtained from the video frame based on the target parameter.

可选地,所述处理器610具体用于:Optionally, the processor 610 is specifically configured to:

对三维网格对应的码流中的第一编码结果进行熵解码,得到解码的位移信息。The first encoding result in the code stream corresponding to the three-dimensional grid is entropy decoded to obtain decoded displacement information.

可选地,所述对解码的位移信息进行填充处理,得到填充后的位移信息,包括:Optionally, performing padding processing on the decoded displacement information to obtain the padded displacement information includes:

基于所述细分网格的顶点个数对所述解码的位移信息进行填充处理,得到填充后的位移信息。The decoded displacement information is filled based on the number of vertices of the subdivided mesh to obtain filled displacement information.

可选地,所述填充后的位移信息包括N个层级的第一维度的位移分量,N个层级的第二维度的位移分量,N个层级的第三维度的位移分量;Optionally, the filled displacement information includes N levels of displacement components of the first dimension, N levels of displacement components of the second dimension, and N levels of displacement components of the third dimension;

所述解码的位移信息包括所述N个层级的第一维度的位移分量中的M1个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量中的M2个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量中的M3个层级的第三维度的位移分量,N为正整数,M1、M2及M3均为大于或等于0的整数,且M1、M2及M3均小于或等于N。The decoded displacement information includes the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N.

可选地,所述处理器610具体用于:Optionally, the processor 610 is specifically configured to:

对所述码流中的第二编码结果进行解码,得到第一标志位和目标参数;Decoding the second encoding result in the code stream to obtain a first flag bit and a target parameter;

其中,在所述第一标志位为第二预设值的情况下,所述目标参数包括第一参数;Wherein, when the first flag bit is a second preset value, the target parameter includes a first parameter;

在所述第一标志位为第三预设值的情况下,所述目标参数包括第一参数、第二参数及第三参数, When the first flag bit is a third preset value, the target parameter includes a first parameter, a second parameter and a third parameter.

其中,所述第一参数用于表征所述M1个层级,所述第二参数用于表征所述M2个层级,所述第三参数用于表征所述M3个层级。The first parameter is used to characterize the M1 levels, the second parameter is used to characterize the M2 levels, and the third parameter is used to characterize the M3 levels.

具体地,本申请实施例的终端还包括:存储在存储器609上并可在处理器610上运行的指令或程序,处理器610调用存储器609中的指令或程序执行图16或图17所示各模块执行的方法,并达到相同的技术效果,为避免重复,故不在此赘述。Specifically, the terminal of the embodiment of the present application also includes: instructions or programs stored in the memory 609 and executable on the processor 610. The processor 610 calls the instructions or programs in the memory 609 to execute the methods executed by the modules shown in Figure 16 or Figure 17 and achieves the same technical effect. To avoid repetition, it will not be repeated here.

本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述网格编码方法实施例的各个过程,或者,该程序或指令被处理器执行时实现上述网格解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。An embodiment of the present application also provides a readable storage medium, on which a program or instruction is stored. When the program or instruction is executed by a processor, the various processes of the above-mentioned grid encoding method embodiment are implemented, or when the program or instruction is executed by a processor, the various processes of the above-mentioned grid decoding method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.

其中,所述处理器为上述实施例中所述的终端中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。The processor is the processor in the terminal 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, etc.

本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述网格编码方法实施例的各个过程,或者,实现上述网格解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。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 grid encoding method embodiment, or to implement the various processes of the above-mentioned grid decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.

应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。It should be understood that 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.

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。It should be noted that, in this article, the terms "comprise", "include" or any other variant thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements includes not only those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise one..." do not exclude the presence of other identical elements in the process, method, article or device including the element. In addition, it should be pointed out that the scope of the methods and devices in the embodiments of the present application is not limited to performing functions in the order shown or discussed, and may also include performing functions in a substantially simultaneous manner or in reverse order according to the functions involved, for example, the described method may be performed in an order different from that described, and various steps may also be added, omitted, or combined. In addition, the features described with reference to certain examples may be combined in other examples.

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application, or the part that contributes to the prior art, 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.

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本 申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。 The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementations, which are merely illustrative and not restrictive. A person skilled in the art can Inspired by the application, many forms can be made without departing from the purpose of the application and the scope of protection of the claims, all of which are within the protection of the application.

Claims (20)

一种网格编码方法,包括:A grid coding method, comprising: 获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格;Obtaining a basic grid corresponding to the three-dimensional grid, and performing subdivision processing based on the basic grid to obtain a subdivided grid; 基于所述细分网格进行变形操作,得到变形网格;Performing a deformation operation based on the subdivided grid to obtain a deformed grid; 从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数;Selecting displacement information to be encoded from the displacement information corresponding to the subdivided grid, the displacement information corresponding to the subdivided grid is used to represent the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid; 对所述待编码位移信息进行编码,得到第一编码结果。The displacement information to be encoded is encoded to obtain a first encoding result. 根据权利要求1所述的方法,其中,所述细分网格对应的位移信息包括多个层级的位移信息,所述从所述细分网格对应的位移信息中选择待编码位移信息,包括:The method according to claim 1, wherein the displacement information corresponding to the subdivided grid includes displacement information of multiple levels, and the selecting the displacement information to be encoded from the displacement information corresponding to the subdivided grid comprises: 确定所述多个层级中的目标层级,其中,所述目标层级基于所述多个层级的位移信息中表征位移为第一预设值的位移信息确定;Determine a target level among the multiple levels, wherein the target level is determined based on displacement information representing a displacement of a first preset value among the displacement information of the multiple levels; 基于所述目标层级从所述细分网格对应的位移信息中选择待编码位移信息。The displacement information to be encoded is selected from the displacement information corresponding to the subdivided grid based on the target level. 根据权利要求2所述的方法,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值满足预设条件。According to the method of claim 2, wherein the ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level meets a preset condition. 根据权利要求2或3所述的方法,其中,所述确定所述多个层级中的目标层级,包括:The method according to claim 2 or 3, wherein determining a target level among the multiple levels comprises: 从所述多个层级中的第一个层级开始确定目标层级,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值大于第一预设比值;Determining a target level from a first level among the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is greater than the first preset ratio; 在所述目标层级不为所述第一个层级的情况下,所述待编码位移信息包括所述第一个层级至所述目标层级的前一个层级的位移信息。In a case where the target level is not the first level, the displacement information to be encoded includes displacement information from the first level to a level before the target level. 根据权利要求2或3所述的方法,其中,所述确定所述多个层级中的目标层级,包括:The method according to claim 2 or 3, wherein determining a target level among the multiple levels comprises: 从所述多个层级中的最后一个层级开始确定目标层级,其中,所述目标层级的位移信息中表征位移为第一预设值的位移信息的个数,与所述目标层级的位移信息的总个数的比值小于或等于第二预设比值;Determine a target level from the last level of the multiple levels, wherein a ratio of the number of displacement information representing a displacement of a first preset value in the displacement information of the target level to the total number of displacement information of the target level is less than or equal to a second preset ratio; 所述待编码位移信息包括所述多个层级中的第一个层级至所述目标层级的位移信息。The displacement information to be encoded includes displacement information from a first level among the multiple levels to the target level. 根据权利要求1-5中任一项所述的方法,其中,所述细分网格对应的位移信息包括:N个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量;The method according to any one of claims 1 to 5, wherein the displacement information corresponding to the subdivided grid includes: displacement components of a first dimension of N levels, displacement components of a second dimension of the N levels, and displacement components of a third dimension of the N levels; 所述待编码位移信息包括:所述N个层级的第一维度的位移分量中的M1个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量中的M2个层级的第二维度的位 移分量,以及所述N个层级的第三维度的位移分量中的M3个层级的第三维度的位移分量,N为正整数,M1、M2及M3均为大于或等于0的整数,且M1、M2及M3均小于或等于N。The displacement information to be encoded includes: displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, The displacement components of the third dimension of the N levels, as well as the displacement components of the third dimension of M3 levels among the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N. 根据权利要求6所述的方法,其中,所述三维网格对应的码流包括所述第一编码结果及第二编码结果,所述第二编码结果包括第一标志位的编码结果;The method according to claim 6, wherein the code stream corresponding to the three-dimensional grid includes the first encoding result and the second encoding result, and the second encoding result includes the encoding result of the first flag bit; 在所述第一标志位为第二预设值的情况下,所述第二编码结果还包括第一参数的编码结果;或,When the first flag bit is a second preset value, the second encoding result also includes an encoding result of the first parameter; or, 在所述第一标志位为第三预设值的情况下,所述第二编码结果还包括第一参数的编码结果、第二参数的编码结果及第三参数的编码结果,When the first flag bit is a third preset value, the second encoding result also includes an encoding result of the first parameter, an encoding result of the second parameter, and an encoding result of the third parameter. 其中,所述第一参数用于表征所述M1个层级,所述第二参数用于表征所述M2个层级,所述第三参数用于表征所述M3个层级。The first parameter is used to characterize the M1 levels, the second parameter is used to characterize the M2 levels, and the third parameter is used to characterize the M3 levels. 根据权利要求1-7中任一项所述的方法,其中,所述对所述待编码位移信息进行编码,得到第一编码结果,包括:The method according to any one of claims 1 to 7, wherein encoding the displacement information to be encoded to obtain a first encoding result comprises: 将所述待编码位移信息排布至视频帧中;Arranging the displacement information to be encoded into a video frame; 对排布后的视频帧进行填充处理,得到填充后的视频帧;Performing padding processing on the arranged video frames to obtain padded video frames; 对所述填充后的视频帧进行编码,得到第一编码结果。The padded video frame is encoded to obtain a first encoding result. 根据权利要求1-7中任一项所述的方法,其中,所述对所述待编码位移信息进行编码,得到第一编码结果,包括:The method according to any one of claims 1 to 7, wherein encoding the displacement information to be encoded to obtain a first encoding result comprises: 对所述待编码位移信息进行熵编码,得到第一编码结果。Perform entropy coding on the displacement information to be encoded to obtain a first coding result. 一种网格解码方法,包括:A grid decoding method, comprising: 对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain decoded displacement information; 对所述码流中的第三编码结果进行解码,得到基础网格,并对所述基础网格进行细分处理,得到细分网格;Decoding the third encoding result in the code stream to obtain a basic grid, and performing subdivision processing on the basic grid to obtain a subdivided grid; 对解码的位移信息进行填充处理,得到填充后的位移信息,所述填充后的位移信息的层级数大于或等于所述解码的位移信息的层级数;Performing padding processing on the decoded displacement information to obtain padded displacement information, wherein the number of levels of the padded displacement information is greater than or equal to the number of levels of the decoded displacement information; 基于所述填充后的位移信息及所述细分网格进行重建处理,得到重建网格。Reconstruction processing is performed based on the filled displacement information and the subdivided grid to obtain a reconstructed grid. 根据权利要求10所述的方法,其中,所述对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息,包括:The method according to claim 10, wherein the decoding of the first encoding result in the code stream corresponding to the three-dimensional grid to obtain the decoded displacement information comprises: 对三维网格对应的码流中的第一编码结果进行解码,得到视频帧;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain a video frame; 从所述视频帧中获得解码的位移信息,所述解码的位移信息为所述视频帧中除预设视频填充值以外的位移信息。Decoded displacement information is obtained from the video frame, where the decoded displacement information is displacement information in the video frame excluding a preset video filling value. 根据权利要求10所述的方法,还包括:The method according to claim 10, further comprising: 对所述码流中的第二编码结果进行解码,得到目标参数,所述目标参数用于表征位移信息的层级数;Decoding the second encoding result in the code stream to obtain a target parameter, where the target parameter is used to represent the number of levels of displacement information; 所述对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息,包括: The decoding of the first encoding result in the code stream corresponding to the three-dimensional grid to obtain the decoded displacement information includes: 对三维网格对应的码流中的第一编码结果进行解码,得到视频帧;Decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain a video frame; 基于所述目标参数从所述视频帧中获取解码的位移信息。Decoded displacement information is obtained from the video frame based on the target parameter. 根据权利要求10所述的方法,其中,所述对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息,包括:The method according to claim 10, wherein the decoding of the first encoding result in the code stream corresponding to the three-dimensional grid to obtain the decoded displacement information comprises: 对三维网格对应的码流中的第一编码结果进行熵解码,得到解码的位移信息。The first encoding result in the code stream corresponding to the three-dimensional grid is entropy decoded to obtain decoded displacement information. 根据权利要求10-13中任一项所述的方法,其中,所述对解码的位移信息进行填充处理,得到填充后的位移信息,包括:The method according to any one of claims 10 to 13, wherein the step of performing padding processing on the decoded displacement information to obtain the padded displacement information comprises: 基于所述细分网格的顶点个数对所述解码的位移信息进行填充处理,得到填充后的位移信息。The decoded displacement information is filled based on the number of vertices of the subdivided mesh to obtain filled displacement information. 根据权利要求10-14中任一项所述的方法,其中,所述填充后的位移信息包括N个层级的第一维度的位移分量,N个层级的第二维度的位移分量,N个层级的第三维度的位移分量;The method according to any one of claims 10 to 14, wherein the filled displacement information includes N levels of displacement components of the first dimension, N levels of displacement components of the second dimension, and N levels of displacement components of the third dimension; 所述解码的位移信息包括所述N个层级的第一维度的位移分量中的M1个层级的第一维度的位移分量,所述N个层级的第二维度的位移分量中的M2个层级的第二维度的位移分量,以及所述N个层级的第三维度的位移分量中的M3个层级的第三维度的位移分量,N为正整数,M1、M2及M3均为大于或等于0的整数,且M1、M2及M3均小于或等于N。The decoded displacement information includes the displacement components of the first dimension of M1 levels among the displacement components of the first dimension of the N levels, the displacement components of the second dimension of M2 levels among the displacement components of the second dimension of the N levels, and the displacement components of the third dimension of M3 levels among the displacement components of the third dimension of the N levels, N is a positive integer, M1, M2 and M3 are all integers greater than or equal to 0, and M1, M2 and M3 are all less than or equal to N. 根据权利要求15所述的方法,还包括:The method according to claim 15, further comprising: 对所述码流中的第二编码结果进行解码,得到第一标志位和目标参数;Decoding the second encoding result in the code stream to obtain a first flag bit and a target parameter; 其中,在所述第一标志位为第二预设值的情况下,所述目标参数包括第一参数;或,Wherein, when the first flag bit is a second preset value, the target parameter includes the first parameter; or, 在所述第一标志位为第三预设值的情况下,所述目标参数包括第一参数、第二参数及第三参数,When the first flag bit is a third preset value, the target parameter includes a first parameter, a second parameter and a third parameter. 其中,所述第一参数用于表征所述M1个层级,所述第二参数用于表征所述M2个层级,所述第三参数用于表征所述M3个层级。The first parameter is used to characterize the M1 levels, the second parameter is used to characterize the M2 levels, and the third parameter is used to characterize the M3 levels. 一种网格编码装置,包括:A grid coding device, comprising: 获取模块,用于获取三维网格对应的基础网格,基于所述基础网格进行细分处理,得到细分网格;An acquisition module is used to acquire a basic grid corresponding to the three-dimensional grid, and perform subdivision processing based on the basic grid to obtain a subdivided grid; 变形模块,用于基于所述细分网格进行变形操作,得到变形网格;A deformation module, used for performing a deformation operation based on the subdivided grid to obtain a deformed grid; 选择模块,用于从所述细分网格对应的位移信息中选择待编码位移信息,所述细分网格对应的位移信息用于表征所述细分网格的顶点相对于所述变形网格的位移,所述待编码位移信息的层级数小于或等于所述细分网格对应的位移信息的层级数;a selection module, configured to select displacement information to be encoded from the displacement information corresponding to the subdivided grid, wherein the displacement information corresponding to the subdivided grid is used to represent the displacement of the vertices of the subdivided grid relative to the deformed grid, and the number of levels of the displacement information to be encoded is less than or equal to the number of levels of the displacement information corresponding to the subdivided grid; 编码模块,用于对所述待编码位移信息进行编码,得到第一编码结果。The encoding module is used to encode the displacement information to be encoded to obtain a first encoding result. 一种网格解码装置,包括:A grid decoding device, comprising: 第一解码模块,用于对三维网格对应的码流中的第一编码结果进行解码,获得解码的位移信息; A first decoding module, used for decoding a first encoding result in a code stream corresponding to the three-dimensional grid to obtain decoded displacement information; 第二解码模块,用于对所述码流中的第三编码结果进行解码,得到基础网格,并对所述基础网格进行细分处理,得到细分网格;A second decoding module is used to decode the third encoding result in the code stream to obtain a basic grid, and subdivide the basic grid to obtain a subdivided grid; 填充模块,用于对解码的位移信息进行填充处理,得到填充后的位移信息,所述填充后的位移信息的层级数大于或等于所述解码的位移信息的层级数;A filling module, used for performing filling processing on the decoded displacement information to obtain filled displacement information, wherein the number of levels of the filled displacement information is greater than or equal to the number of levels of the decoded displacement information; 重建模块,用于基于所述填充后的位移信息及所述细分网格进行重建处理,得到重建网格。The reconstruction module is used to perform reconstruction processing based on the filled displacement information and the subdivided grid to obtain a reconstructed grid. 一种终端,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至9任一项所述的网格编码方法的步骤;或者,所述程序或指令被所述处理器执行时实现如权利要求10至16任一项所述的网格解码方法的步骤。A terminal comprises a processor, a memory and a program or instruction stored in the memory and executable on the processor, wherein the program or instruction, when executed by the processor, implements the steps of the grid encoding method as described in any one of claims 1 to 9; or, the program or instruction, when executed by the processor, implements the steps of the grid decoding method as described in any one of claims 10 to 16. 一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至9任一项所述的网格编码方法的步骤,或者,所述程序或指令被处理器执行时实现如权利要求10至16任一项所述的网格解码方法的步骤。 A readable storage medium storing a program or instruction, wherein the program or instruction, when executed by a processor, implements the steps of the grid encoding method as described in any one of claims 1 to 9, or the program or instruction, when executed by a processor, implements the steps of the grid decoding method as described in any one of claims 10 to 16.
PCT/CN2024/099101 2023-06-21 2024-06-14 Grid encoding method, grid decoding method and related device Pending WO2024260290A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202310743475.9 2023-06-21
CN202310743475.9A CN119182908B (en) 2023-06-21 2023-06-21 Grid encoding method, grid decoding method and related equipment

Publications (1)

Publication Number Publication Date
WO2024260290A1 true WO2024260290A1 (en) 2024-12-26

Family

ID=93898398

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2024/099101 Pending WO2024260290A1 (en) 2023-06-21 2024-06-14 Grid encoding method, grid decoding method and related device

Country Status (2)

Country Link
CN (1) CN119182908B (en)
WO (1) WO2024260290A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077543A (en) * 2012-12-29 2013-05-01 浙江工业大学 Embedded zerotree coding method on basis of inverse Loop subdivision
CN103260030A (en) * 2013-04-16 2013-08-21 东南大学 Stream transmission method for three-dimension model facing mobile terminal
CN105139449A (en) * 2015-08-24 2015-12-09 上海卫高网络科技有限公司 Three-dimensional model compression method based on three-dimensional mesh subdivision and coding
CN112819961A (en) * 2021-02-18 2021-05-18 桂林电子科技大学 Simplified grid deformation method and device based on micro-computation
WO2022075234A1 (en) * 2020-10-05 2022-04-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20230068178A1 (en) * 2020-01-02 2023-03-02 Nokia Technologies Oy A method, an apparatus and a computer program product for volumetric video encoding and decoding
CN118317104A (en) * 2023-01-09 2024-07-09 西安赫光科技有限公司 Encoding and decoding method and device for three-dimensional grid and encoding and decoding framework

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105141970B (en) * 2015-07-03 2019-02-12 哈尔滨工业大学深圳研究生院 A Texture Image Compression Method Based on 3D Model Geometric Information
EP3906699A4 (en) * 2019-01-02 2022-11-02 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
CN111260784B (en) * 2020-01-20 2023-02-10 广州海格星航信息科技有限公司 Urban three-dimensional space grid compression coding method and device and terminal equipment
CN113436314B (en) * 2021-06-25 2022-10-04 北京理工大学 Computer three-dimensional grid model reconstruction method based on structure

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077543A (en) * 2012-12-29 2013-05-01 浙江工业大学 Embedded zerotree coding method on basis of inverse Loop subdivision
CN103260030A (en) * 2013-04-16 2013-08-21 东南大学 Stream transmission method for three-dimension model facing mobile terminal
CN105139449A (en) * 2015-08-24 2015-12-09 上海卫高网络科技有限公司 Three-dimensional model compression method based on three-dimensional mesh subdivision and coding
US20230068178A1 (en) * 2020-01-02 2023-03-02 Nokia Technologies Oy A method, an apparatus and a computer program product for volumetric video encoding and decoding
WO2022075234A1 (en) * 2020-10-05 2022-04-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN112819961A (en) * 2021-02-18 2021-05-18 桂林电子科技大学 Simplified grid deformation method and device based on micro-computation
CN118317104A (en) * 2023-01-09 2024-07-09 西安赫光科技有限公司 Encoding and decoding method and device for three-dimensional grid and encoding and decoding framework

Also Published As

Publication number Publication date
CN119182908B (en) 2025-09-30
CN119182908A (en) 2024-12-24

Similar Documents

Publication Publication Date Title
CN113994383B (en) Point cloud encoding and decoding method, device, electronic device and storage medium
US20240153150A1 (en) Mesh Compression Texture Coordinate Signaling and Decoding
WO2023205294A1 (en) Mesh compression using coding units with different encoding parameters
KR102799063B1 (en) Vertex reordering for mesh compression
CN114930860B (en) Point cloud data transmitting device, point cloud data transmitting method, point cloud data receiving device and point cloud data receiving method
CN111432210A (en) A Fill-Based Attribute Compression Method for Point Clouds
EP4139899A2 (en) Method and apparatus for calculating distance based weighted average for point cloud coding
CN117461054A (en) Mesh compression with derived texture coordinates
EP4591277A1 (en) Signaling displacement data for video-based mesh coding
JP7589904B2 (en) Encoding Patch Temporal Registration for Mesh Compression
US20230412837A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
WO2025002021A1 (en) Three-dimensional mesh inter-frame prediction encoding method and apparatus, three-dimensional mesh inter-frame prediction decoding method and apparatus, and electronic device
WO2024260290A1 (en) Grid encoding method, grid decoding method and related device
WO2024260291A1 (en) Grid encoding method, grid decoding method and related device
CN115733990A (en) Point cloud coding and decoding method, device and storage medium
CN118678093B (en) Coding processing method, decoding processing method and related equipment
WO2024193487A1 (en) Methods and apparatus for encoding and decoding displacement information of three-dimensional grid, and terminal
CN116458158A (en) Intra-frame prediction method and device, codec, device, and storage medium
WO2024217304A1 (en) Coding method and device for displacement information of three-dimensional mesh, decoding method and device for displacement information of three-dimensional mesh, and terminal
EP4492328A1 (en) Compression and signaling of displacements in dynamic mesh compression
CN119232904B (en) Three-dimensional grid coding method, decoding method, device, coding end and decoding end
WO2024216187A2 (en) Signaling displacement data placement for video-based mesh coding
CN121151562A (en) Data extraction method, data arrangement method, device and equipment
WO2024216190A1 (en) Signaling base-mesh motion vectors for video-based mesh coding
EP4548588A1 (en) Method apparatus and computer program product for signaling boundary vertices

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: 24825186

Country of ref document: EP

Kind code of ref document: A1