Coding method, code stream, encoder, decoder and storage medium

CN122498147APending Publication Date: 2026-07-31GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
Filing Date
2024-01-15
Publication Date
2026-07-31

AI Technical Summary

Technical Problem

During the existing three-dimensional grid encoding and decoding process, the vertex coordinate overflow problem of reconstructing the grid leads to distortion, reducing the encoding and decoding efficiency.

Method used

By cropping the vertex information of the reconstructed grid, the cropped information meets the preset numerical range, preventing vertex-related information from overflowing, and improving distortion of the reconstructed grid.

Benefits of technology

Effectively prevent the overflow of various related information of the reconstructed grid vertices, improve the distortion problem of the reconstructed grid, and improve the encoding and codec performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122498147A_ABST
    Figure CN122498147A_ABST
Patent Text Reader

Abstract

This application discloses an encoding / decoding method, a bitstream, an encoder, a decoder, and a storage medium. The method includes: determining a reconstructed grid of a current image, the reconstructed grid including at least one vertex; cropping the vertex information of the at least one vertex, determining the cropped information of the at least one vertex, and updating the reconstructed grid based on the cropped information of the at least one vertex; wherein the cropped information of the at least one vertex satisfies a preset numerical range. Thus, the distortion problem of the reconstructed grid can be improved based on the cropped information, thereby improving encoding / decoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Coding and decoding method, code stream, encoder, decoder and storage medium Technical Field

[0001] The present application relates to the field of video coding and decoding technology, and in particular to a coding and decoding method, a bit stream, an encoder, a decoder, and a storage medium. Background Art

[0002] Video-based Dynamic Mesh Coding (VDMC) is a standard for compressing 3D meshes. It primarily compresses 3D meshes by leveraging the existing Visual Volumetric Video-based Coding (V3C) standard. However, due to the encoding of connectivity information in 3D meshes, the specific encoding process differs slightly from V3C.

[0003] However, in the encoding and decoding process of three-dimensional meshes, the data processing for mesh reconstruction is not fully considered, resulting in the inability to effectively avoid the distortion problem of the reconstructed mesh, thereby reducing the encoding and decoding efficiency.

[0004] Summary of the Invention

[0005] The present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium, which can improve the distortion problem of the reconstructed grid and thus improve the coding and decoding efficiency.

[0006] The technical solution of this application can be implemented as follows:

[0007] In a first aspect, an embodiment of the present application provides a decoding method, applied to a decoder, the method comprising:

[0008] Determine a reconstructed mesh of the current image, the reconstructed mesh including at least one vertex;

[0009] The vertex information of at least one vertex is clipped, the clipped information of the at least one vertex is determined, and the mesh is updated and reconstructed according to the clipped information of the at least one vertex; wherein the clipped information of the at least one vertex satisfies a preset value range.

[0010] In a second aspect, an embodiment of the present application provides an encoding method, applied to an encoder, the method comprising:

[0011] Determine a reconstructed mesh of the current image, the reconstructed mesh including at least one vertex;

[0012] The vertex information of at least one vertex is clipped, the clipped information of the at least one vertex is determined, and the mesh is updated and reconstructed according to the clipped information of the at least one vertex; wherein the clipped information of the at least one vertex satisfies a preset value range.

[0013] In a third aspect, an embodiment of the present application provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following: a base grid of the current image, displacement information of a subdivided grid, a value of a first syntax element, a value of a second syntax element, a value of a third syntax element, a value of a fourth syntax element, a value of a fifth syntax element, a value of a sixth syntax element, a value of a seventh syntax element, and a value of an eighth syntax element.

[0014] In a fourth aspect, an embodiment of the present application provides an encoder, comprising a first determining unit and a first cropping unit, wherein:

[0015] A first determining unit is configured to determine a reconstructed mesh of the current image, where the reconstructed mesh includes at least one vertex;

[0016] The first clipping unit is configured to clip vertex information of at least one vertex, determine the clipped information of at least one vertex, and update and reconstruct the mesh according to the clipped information of at least one vertex; wherein the clipped information of at least one vertex satisfies a preset value range.

[0017] In a fifth aspect, an embodiment of the present application provides an encoder, comprising a first memory and a first processor, wherein:

[0018] a first memory for storing a computer program capable of running on the first processor;

[0019] The first processor is configured to execute the method according to the second aspect when running a computer program.

[0020] In a sixth aspect, an embodiment of the present application provides a decoder, including a second determining unit and a second cropping unit, wherein:

[0021] a second determining unit configured to determine a reconstructed mesh of the current image, where the reconstructed mesh includes at least one vertex;

[0022] The second clipping unit is configured to clip vertex information of at least one vertex, determine the clipped information of at least one vertex, and update and reconstruct the mesh according to the clipped information of at least one vertex; wherein the clipped information of at least one vertex satisfies a preset value range.

[0023] In a seventh aspect, an embodiment of the present application provides a decoder, comprising a second memory and a second processor, wherein:

[0024] a second memory for storing a computer program capable of running on the second processor;

[0025] The second processor is configured to execute the method according to the first aspect when running a computer program.

[0026] In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium storing a computer program, which, when executed, implements the method described in the first aspect or the method described in the second aspect.

[0027] The embodiment of the present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium. Whether it is the encoding end or the decoding end, the reconstructed mesh of the current image is determined, and the reconstructed mesh includes at least one vertex; the vertex information of at least one vertex is cropped, the cropped information of at least one vertex is determined, and the reconstructed mesh is updated according to the cropped information of at least one vertex; wherein the cropped information of at least one vertex satisfies a preset numerical range. In other words, by cropping the vertex information of the reconstructed mesh, the overflow of various related information of the reconstructed mesh vertices can be effectively prevented, thereby improving the distortion problem of the reconstructed mesh. In addition, data cropping can be used in the VDMC framework as a solution to the overflow of the coordinates of the reconstructed mesh vertices, and can also improve the completeness of the framework, thereby improving the coding and decoding performance. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] FIG1A is a schematic diagram of a three-dimensional grid image 1;

[0029] FIG1B is a partially enlarged schematic diagram of a three-dimensional grid image;

[0030] Figure 2 is a schematic diagram of the connection method of the three-dimensional grid;

[0031] FIG3 is a schematic diagram of a 3D mesh coding framework based on subdivision deformation;

[0032] FIG4 is a schematic diagram of a 3D mesh decoding framework based on subdivision deformation;

[0033] FIG5 is a schematic diagram of a mesh architecture of a codec provided in an embodiment of the present application;

[0034] FIG6 is a flowchart diagram 1 of a decoding method provided in an embodiment of the present application;

[0035] FIG7 is a second flow chart of a decoding method provided in an embodiment of the present application;

[0036] FIG8 is a third flow chart of a decoding method provided in an embodiment of the present application;

[0037] FIG9 is a fourth flow chart of a decoding method provided in an embodiment of the present application;

[0038] FIG10 is a schematic block diagram of an implementation of three-dimensional mesh reconstruction provided by an embodiment of the present application;

[0039] FIG11 is a flowchart diagram 1 of an encoding method provided in an embodiment of the present application;

[0040] FIG12 is a second flow chart of an encoding method provided in an embodiment of the present application;

[0041] FIG13 is a schematic diagram of a frame of an encoder provided in an embodiment of the present application;

[0042] FIG14 is a second schematic diagram of a framework of an encoder provided in an embodiment of the present application;

[0043] FIG15 is a schematic diagram of an implementation process of a grid simplification operation provided in an embodiment of the present application;

[0044] FIG16 is a schematic diagram of an implementation process of displacement vector calculation provided in an embodiment of the present application;

[0045] FIG17 is a schematic diagram of the composition of a DRACO encoding framework provided in an embodiment of the present application;

[0046] FIG18 is a schematic diagram of five modes of an Edgebreaker algorithm provided in an embodiment of the present application;

[0047] FIG19A is a first schematic diagram of a parallelogram prediction provided by an embodiment of the present application;

[0048] FIG19B is a second schematic diagram of a parallelogram prediction provided by an embodiment of the present application;

[0049] FIG19C is a third schematic diagram of a parallelogram prediction provided by an embodiment of the present application;

[0050] FIG20 is a schematic diagram of an implementation process of a subdivision operation provided in an embodiment of the present application;

[0051] FIG21 is a schematic diagram of an implementation process of texture image conversion provided by an embodiment of the present application;

[0052] FIG22 is a schematic diagram of a decoder provided in an embodiment of the present application;

[0053] FIG23 is a second schematic diagram of a framework of an encoder provided in an embodiment of the present application;

[0054] FIG24 is a schematic diagram of the structure of an encoder provided in an embodiment of the present application;

[0055] FIG25 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application;

[0056] FIG26 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application;

[0057] FIG27 is a schematic diagram of a specific hardware structure of a decoder provided in an embodiment of the present application;

[0058] FIG28 is a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application. DETAILED DESCRIPTION

[0059] In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.

[0060] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.

[0061] In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0062] It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.

[0063] It should be noted that it is possible to decode and synthesize different data format bitstreams within the same video scene. These can include at least image format, point cloud format, and mesh format. In this way, real-time immersive video interaction services can be provided for multiple data formats (e.g., mesh, point cloud, image, etc.) from different sources.

[0064] In embodiments of the present application, the data format-based approach allows for independent processing at the bitstream level of the data format. This means that, similar to tiles or slices in video encoding, different data formats in this scenario can be encoded independently, enabling independent encoding and decoding based on the data format.

[0065] Generally speaking, three-dimensional animation content adopts a keyframe-based representation method, that is, each frame is a static mesh. Static meshes at different times have the same topological structure and different geometric structures. However, the amount of data of the three-dimensional dynamic mesh represented based on keyframes is particularly large, so how to effectively store, transmit and draw it has become a problem faced by the development of three-dimensional dynamic meshes. In addition, the spatial scalability of the mesh needs to be supported for different user terminals (computers, notebooks, portable devices, mobile phones); different mesh bandwidths (broadband, narrowband, wireless) need to support the quality scalability of the mesh. Therefore, three-dimensional dynamic mesh compression is a very critical issue. Among them, "one frame" can be understood as an image. For example, a keyframe can be understood as a key image in a three-dimensional animation.

[0066] A 3D mesh is the surface of a 3D object composed of countless polygons in space. Polygons are composed of vertices and edges. Figure 1A shows a 3D mesh image, and Figure 1B shows a partially enlarged schematic diagram of the 3D mesh image. Figures 1A and 1B show that the mesh surface is composed of closed polygons.

[0067] A two-dimensional image has information expressed at every pixel point and is distributed regularly, so there is no need to record its position information separately. However, the distribution of vertices in the mesh in three-dimensional space is random and irregular, and the way polygons are formed requires additional regulations. Therefore, it is necessary to record the position of each vertex in space and the connection information of each polygon to fully express a mesh image. As shown in Figure 2, the same number of vertices and vertex positions will form completely different surfaces due to different connection methods.

[0068] In addition to the above information, since 3D mesh images are usually encoded using existing 2D image / video encoding methods, the 3D mesh needs to be converted from 3D space to 2D images. The UV coordinates define this conversion process.

[0069] Similar to 2D images, each location in the acquisition process may have corresponding attribute information, usually RGB color values, which reflect the color of the object. For 3D meshes, in addition to color, each vertex's attribute information also commonly includes reflectance values, which reflect the surface material of the object. The attribute information of a 3D mesh is stored in a 2D image, and its mapping from 2D to 3D is specified by UV coordinates. 3D mesh data typically includes 3D geometric coordinate information (x, y, z), geometric connection relationships, UV coordinates, and attribute maps.

[0070] It should also be noted that Video-based Dynamic Mesh Coding (VDMC) is a standard developed by the Moving Pictures Experts Group (MPEG) for compressing three-dimensional meshes. Its main idea is to compress three-dimensional meshes by utilizing the existing Visual Volumetric Video-based Coding (V3C) standard. Since three-dimensional meshes have connection information that needs to be encoded, its specific encoding process is slightly different from V3C. The syntax and semantics of the V3C standard decoding end and the decoding operations need to be extended to support the decoding and reconstruction of three-dimensional meshes. Figure 3 is a schematic diagram of a three-dimensional mesh encoding framework based on subdivision deformation, and Figure 4 is a schematic diagram of a three-dimensional mesh decoding framework based on subdivision deformation.

[0071] In an embodiment of the present application, the overall framework of the encoding end is shown in Figure 3. The input grid passes through the basic grid generation module to obtain a basic grid with fewer points and faces, and then the basic grid is mesh parameterized to generate texture coordinates for the basic grid. The basic grid is then encoded using a basic grid encoder to obtain a basic grid code stream and a reconstructed basic grid. The reconstructed basic grid is subdivided and deformed to obtain a displacement corresponding to the reconstructed grid. The displacement is then processed, including transformation, quantization, etc., and the processed displacement is then encoded and reconstructed, and the reconstructed deformed grid is obtained using the reconstructed displacement and the reconstructed basic grid. A texture map conversion is then performed based on the reconstructed deformed grid to obtain a texture map corresponding to it, and the texture map is encoded to obtain a texture map code stream. The relevant coding information required by the decoding end is passed to the decoding end through auxiliary information.

[0072] In an embodiment of the present application, the overall framework of the decoding end is shown in Figure 4. After the auxiliary information is decoded, each module is guided to decode in a manner preset by the encoding end. The basic grid code stream is decoded using the basic grid decoder corresponding to the encoding end. The decoded basic grid is subjected to a grid cleaning step, i.e., duplicate points and degenerate surfaces (surfaces with an area of ​​0) are removed. The displacement code stream is decoded by a displacement decoding module, and then the displacement is reconstructed, including steps such as inverse transformation and inverse quantization. The reconstructed displacement is then applied to the subdivided basic grid to obtain a reconstructed deformed grid. The texture map code stream is decoded by the texture map to obtain a reconstructed texture map.

[0073] However, there are significant differences between meshes and two-dimensional videos. For the current VDMC standard and the aforementioned three-dimensional mesh encoding and decoding framework based on subdivision deformation, data processing for mesh reconstruction is not fully considered. For example, no specific solutions are proposed for data overflow situations, making it impossible to effectively avoid mesh distortion caused by overflow of vertex coordinates of the reconstructed deformed mesh, thereby reducing encoding and decoding efficiency.

[0074] An embodiment of the present application provides a coding and decoding method, which determines a reconstructed mesh of a current image, where the reconstructed mesh includes at least one vertex; then, the vertex information of the at least one vertex is cropped, the cropped information of the at least one vertex is determined, and the reconstructed mesh is updated based on the cropped information of the at least one vertex; wherein the cropped information of the at least one vertex satisfies a preset numerical range.

[0075] In other words, by clipping the vertex information of the reconstructed mesh, we can effectively prevent the overflow of various types of related information about the reconstructed mesh vertices, thereby improving the distortion of the reconstructed mesh. Furthermore, data clipping can be used in the VDMC framework as a solution to overflow of reconstructed mesh vertex coordinates, which can also improve the completeness of the framework and thus enhance codec performance.

[0076] The present application also provides a grid architecture for a codec system including a decoding method and an encoding method. FIG5 is a schematic diagram of a codec grid architecture provided by the present application. As shown in FIG5 , the grid architecture includes one or more electronic devices 13 to 1N and a communication grid 01. The electronic devices 13 to 1N can interact with each other via video through the communication grid 01. During implementation, the electronic devices can be various types of devices with codec capabilities. For example, the electronic devices can include mobile phones, tablet computers, personal computers, personal digital assistants, navigation systems, digital phones, video phones, televisions, sensor devices, servers, and the like, without specific limitations herein.

[0077] Here, the decoder or encoder described in the embodiment of the present application can be the above-mentioned electronic device.

[0078] The following describes in detail the various embodiments of the present application with reference to the accompanying drawings.

[0079] In one embodiment of the present application, FIG6 is a flowchart of a decoding method provided by the embodiment of the present application. As shown in FIG6 , the method may include:

[0080] S601, determining a reconstructed mesh of a current image; wherein the reconstructed mesh includes at least one vertex.

[0081] S602 , clipping vertex information of at least one vertex, determining clipped information of at least one vertex, and updating and reconstructing the mesh according to the clipped information of at least one vertex; wherein the clipped information of at least one vertex satisfies a preset value range.

[0082] It should be noted that the decoding method of the embodiments of the present application may refer to a 3D mesh reconstruction method, more specifically, a 3D mesh reconstruction method that avoids data overflow. In addition, the decoding method can be applied to a decoder, specifically a decoder in V-DMC, but is not limited thereto.

[0083] It should also be noted that in the embodiment of the present application, the reconstructed mesh is a three-dimensional reconstructed mesh, which may include at least one vertex. For the vertex information of the at least one vertex, it is necessary that the clipped information all meets a preset value range.

[0084] In some embodiments, the vertex information includes at least one of the following: geometric coordinate information, normal vector information, reflectivity information, and UV coordinate information. In other words, embodiments of the present application allow for clipping of various types of information (e.g., geometric coordinate information, UV coordinate information, normal vector information, reflectivity information, etc.) of the reconstructed mesh vertices at the decoding end to improve distortion caused by data overflow.

[0085] It should also be noted that, in the embodiment of the present application, the vertex information of at least one vertex is clipped, and the vertex information of at least one vertex can be clipped according to a preset number of bits. Here, the preset number of bits can be a value related to the bit depth of the current image, so that the clipped information meets a preset value range.

[0086] In some embodiments, for a preset value range, the clipped information of at least one vertex satisfies the preset value range, which may include: the clipped information of at least one vertex is greater than or equal to a preset minimum value and less than or equal to a preset maximum value.

[0087] That is, in the embodiment of the present application, the preset numerical range may refer to a range between a preset minimum value and a preset maximum value. Here, the preset minimum value is the lower limit of the preset numerical range, and the preset maximum value is the upper limit of the preset numerical range.

[0088] In some embodiments, when clipping the vertex information of at least one vertex and determining the clipped information of at least one vertex, taking the first vertex as an example, the method may include: when the vertex information of the first vertex is less than a preset minimum value, setting the clipped information of the first vertex to be equal to the preset minimum value; when the vertex information of the first vertex is greater than the preset minimum value, setting the clipped information of the first vertex to be equal to the preset maximum value.

[0089] It should be noted that in the embodiment of the present application, the first vertex is any one of the at least one vertex. That is, for each vertex of the reconstructed mesh, after obtaining vertex information for each vertex, first determine whether the vertex information is less than a preset minimum value. If so, set the vertex information to the preset minimum value; then determine whether the vertex information is greater than a preset maximum value. If so, set the vertex information to the preset maximum value.

[0090] Furthermore, in some embodiments, the method may further include: when the vertex information of the first vertex is greater than or equal to a preset minimum value and less than or equal to a preset maximum value, setting the clipped information of the first vertex to be equal to the vertex information of the first vertex.

[0091] That is to say, for each vertex of the reconstructed mesh, if the vertex information is within a preset value range, that is, greater than or equal to the preset minimum value and less than or equal to the preset maximum value, then no operation is performed on the vertex information of this vertex, that is, the clipped information of this vertex is equal to the vertex information.

[0092] In one possible implementation, for each vertex in the reconstructed mesh, referring to FIG7 , the method may include:

[0093] S701: Determine vertex information of each vertex.

[0094] S702: Determine whether the vertex information is less than a preset minimum value.

[0095] S703: Set the vertex information to a preset minimum value.

[0096] S704: Determine whether the vertex information is greater than a preset maximum value.

[0097] S705: Set the vertex information to a preset maximum value.

[0098] S706: Output the clipped information of each vertex.

[0099] That is, in this embodiment of the present application, for each vertex of the reconstructed mesh, it is first determined whether its vertex information is less than the corresponding preset minimum value. If so, the vertex information of this type is set to be equal to the preset minimum value. Otherwise, it is determined whether the vertex information of this type is greater than the corresponding preset maximum value. If so, the vertex information of this type is set to be equal to the preset maximum value. Otherwise, no operation is performed and the vertex information of this type is directly output to obtain the clipped information of each vertex of the reconstructed mesh.

[0100] It should also be noted that in the embodiment of the present application, the vertex information here may include multiple types, such as geometric coordinate information, UV coordinate information, normal vector information, reflectivity information, etc., so the preset minimum value and preset maximum value may also include the minimum value and maximum value of each of the multiple types, that is, different types of vertex information correspond to different preset minimum values ​​and preset maximum values.

[0101] For example, if the vertex information is geometric coordinate information, then the preset minimum value and the preset maximum value correspond to the minimum value and the maximum value of the geometric coordinates; if the vertex information is normal vector information, then the preset minimum value and the preset maximum value correspond to the minimum value and the maximum value of the normal vector; if the vertex information is reflectivity information, then the preset minimum value and the preset maximum value correspond to the minimum value and the maximum value of the reflectivity.

[0102] It is understandable that, here, using geometric coordinate information as an example, a clipping operation is performed on the geometric coordinate information of each vertex. In some embodiments, for reconstructing a mesh, the method may include: clipping the geometric coordinate information of at least one vertex, determining the clipped geometric coordinate information of the at least one vertex, and updating the reconstructed mesh based on the clipped geometric coordinate information of the at least one vertex; wherein the clipped geometric coordinate information of the at least one vertex satisfies a preset value range.

[0103] It should be noted that, in the embodiment of the present application, the clipping operation here can be regarded as a clamping operation, so that the geometric coordinate information after clipping is within a preset value range.

[0104] In a specific embodiment, for each vertex in the reconstructed mesh, referring to FIG8 , the method may include:

[0105] S801: Determine the geometric coordinate information of each vertex.

[0106] S802: Determine whether the geometric coordinate information is less than a preset minimum value.

[0107] S803: Set the geometric coordinate information to a preset minimum value.

[0108] S804: Determine whether the geometric coordinate information is greater than a preset maximum value.

[0109] S805: Set the geometric coordinate information to a preset maximum value.

[0110] S806: Output the clipped geometric coordinate information of each vertex.

[0111] That is, in the embodiment of the present application, for each vertex of the reconstructed mesh, it is first determined whether the geometric coordinate information of each vertex is less than the corresponding preset minimum value. If so, the geometric coordinate information is set equal to the preset minimum value. Otherwise, it is determined whether the geometric coordinate information is greater than the corresponding preset maximum value. If so, the geometric coordinate information is set equal to the preset maximum value. Otherwise, no operation is performed and the geometric coordinate information of the vertex is directly output to obtain the clipped geometric coordinate information of each vertex of the reconstructed mesh.

[0112] It should also be noted that in the embodiment of the present application, the preset minimum value can be expressed as P min Indicates that the preset maximum value can be used max Then for the reconstructed mesh, after clipping several coordinate information of each vertex, the clipped geometric coordinate information of each vertex is in [P min , P max ] within.

[0113] It can be understood that in the embodiment of the present application, the difference between the grid and the two-dimensional video is relatively large. The cropping operation in the two-dimensional video codec is for pixel values, so that the pixel values ​​meet the preset numerical range; while the grid is for vertex information (such as geometric coordinate information). In this way, it is equivalent to the grid limiting the size of the cube, and only the boundaries may cross the boundary. In the related art, the relevant algorithm does not have a good effect of inter-frame prediction, and the vertex information of the corresponding reconstructed grid will not have data overflow. However, after optimizing the prediction algorithm, it was found that the vertex coordinates of the reconstructed grid have a data overflow problem. Based on this, after obtaining the reconstructed grid, the embodiment of the present application can crop at least one vertex information (such as geometric coordinate information) of the reconstructed grid so that the cropped information of each vertex meets the preset numerical range, thereby effectively preventing the overflow of various related information of the reconstructed grid vertices and improving the distortion problem of the reconstructed grid.

[0114] It can also be understood that in the embodiment of the present application, there are multiple ways to determine the preset minimum value and the preset maximum value. For example, they can be set as preset constants, or determined according to syntax elements transmitted in the code stream, etc., which are described in detail below.

[0115] In a possible implementation, the syntax element for indicating the preset minimum value and the preset maximum value is not transmitted in the bitstream.

[0116] In some embodiments, for the preset minimum value, the method may include setting the preset minimum value to a first constant.

[0117] For example, in the embodiment of the present application, the first constant may be set to 0. That is, the preset minimum value may be directly set to 0.

[0118] In some embodiments, for the preset maximum value, the method may include: setting the preset maximum value to a second constant.

[0119] Illustratively, in the embodiment of the present application, the second constant is different from the first constant, and the second constant may be an integer greater than 0.

[0120] In a specific embodiment, the method may further include: determining the bit depth of the current image; performing a bit depth shift calculation on the first value to determine a preset maximum value.

[0121] For example, in the embodiment of the present application, the first value can be set to 1. The bit depth can be represented by bitDepth, and the preset maximum value can be represented by P max The calculation formula is as follows: P max =1<<bitDepth (1)

[0122] It should be noted that in the embodiments of the present application, the bit depth is set at the encoder end and then transmitted in the bitstream. Therefore, in some embodiments, determining the bit depth of the current image may include: decoding the bitstream, determining the value of the first syntax element; and determining the bit depth of the current image based on the value of the first syntax element.

[0123] It should also be noted that, in the embodiment of the present application, the first syntax element can be represented by asve_geometry3d_bitdepth_minus1, which represents the bit depth of the current image by adding 1. In other words, the determination of the bit depth bitDepth is as follows: bitDepth = asve_geometry3d_bitdepth_minus1 + 1 (2)

[0124] In this way, after determining the value of bitDepth by decoding the code stream, a corresponding left shift operation is performed on 1 according to bitDepth to obtain the preset maximum value.

[0125] In another possible implementation, a syntax element for indicating a preset minimum value and a preset maximum value is transmitted in a bitstream.

[0126] In some embodiments, for a preset minimum value, the method may include: decoding a code stream and determining a value of a second syntax element; and when the second syntax element indicates a minimum value of a frame-level mesh vertex of a current image, determining the preset minimum value according to the value of the second syntax element.

[0127] In some embodiments, for a preset maximum value, the method may include: decoding the code stream, determining the value of a third syntax element; when the third syntax element indicates the maximum value of the frame-level mesh vertices of the current image, determining the preset maximum value based on the value of the third syntax element.

[0128] It should be noted that, in this embodiment of the present application, the second and third syntax elements are frame-level syntax elements. For example, the second syntax element may be used to indicate the minimum value of the geometric coordinates of the vertex of the current frame mesh, and the third syntax element may be used to indicate the maximum value of the geometric coordinates of the vertex of the current frame mesh; thus, the second syntax element may be represented by afve_minimum_vertex_geometry_coordinates, and the third syntax element may be represented by afve_maximum_vertex_geometry_coordinates.

[0129] It should also be noted that, in embodiments of the present application, the second and third syntax elements may or may not exist in the bitstream, and this can be determined using the value of the fourth syntax element. In some embodiments, the method may include: decoding the bitstream and determining the value of the fourth syntax element; when the fourth syntax element indicates that the second and third syntax elements are present in the frame parameter set extension of the current image, decoding the bitstream and determining the value of the second syntax element; and finally, decoding the bitstream and determining the value of the third syntax element.

[0130] In the embodiment of the present application, the fourth syntax element is also a frame-level syntax element. Exemplarily, the fourth syntax element can be used to indicate whether the second syntax element and the third syntax element are present in the frame parameter set extension of the current image. In this case, the fourth syntax element can be represented by afve_geometry_coordinates_enable_flag.

[0131] In an embodiment of the present application, if the value of the fourth syntax element is the first value, it is determined that the fourth syntax element indicates that the second syntax element and the third syntax element exist in the frame parameter set extension of the current image; if the value of the fourth syntax element is the second value, it is determined that the fourth syntax element indicates that the second syntax element and the third syntax element do not exist in the frame parameter set extension of the current image.

[0132] In an embodiment of the present application, the first value is different from the second value. For example, the first value may be set to 1 and the second value may be set to 0; or, alternatively, the first value may be set to 0 and the second value may be set to 1; or, the first value may be set to true and the second value may be set to false; or, the first value may be set to false and the second value may be set to true.

[0133] In a specific embodiment, the first value may be 1, and the second value may be 0. That is, if the value of afve_geometry_coordinates_enable_flag obtained during decoding is 1, then afve_minimum_vertex_geometry_coordinates and afve_maximum_vertex_geometry_coordinates exist in the frame parameter set extension of the current image; if afve_geometry_coordinates_enable_flag does not exist in the bitstream, it can be inferred that its value is 0, and in this case, afve_minimum_vertex_geometry_coordinates and afve_maximum_vertex_geometry_coordinates do not exist in the frame parameter set extension of the current image.

[0134] Exemplarily, the syntax structures of these three syntax elements are described as follows:

[0135] It should also be noted that in an embodiment of the present application, if afve_minimum_vertex_geometry_coordinates and afve_maximum_vertex_geometry_coordinates do not exist in the frame parameter set extension of the current image; then the preset minimum value and preset maximum value can also be determined based on the fifth syntax element and the sixth syntax element of the sequence level obtained by decoding.

[0136] In some embodiments, for the preset minimum value, the method may include: decoding the code stream and determining the value of the fifth syntax element; when the fifth syntax element indicates the minimum value of the sequence-level mesh vertex of the current image, if the second syntax element does not exist in the frame parameter set extension of the current image, determining the preset minimum value based on the value of the fifth syntax element.

[0137] In some embodiments, for a preset maximum value, the method may include: decoding a code stream and determining a value of a sixth syntax element; when the sixth syntax element indicates the maximum value of sequence-level mesh vertices of the current image, if the third syntax element does not exist in the frame parameter set extension of the current image, determining the preset maximum value based on the value of the sixth syntax element.

[0138] It should be noted that, in this embodiment of the present application, the fifth and sixth syntax elements are sequence-level syntax elements. For example, the fifth syntax element may be used to indicate the minimum value of the sequence-level mesh vertex geometric coordinates, and the sixth syntax element may be used to indicate the maximum value of the sequence-level mesh vertex geometric coordinates. Thus, the fifth syntax element may be represented by asve_minimum_vertex_geometry_coordinates, and the sixth syntax element may be represented by asve_maximum_vertex_geometry_coordinates.

[0139] It should also be noted that in this embodiment of the present application, if afve_minimum_vertex_geometry_coordinates does not exist, then the preset minimum value can be determined based on the sequence-level asve_minimum_vertex_geometry_coordinates, that is, in this case, afve_minimum_vertex_geometry_coordinates can be equal to asve_minimum_vertex_geometry_coordinates. Similarly, if afve_maximum_vertex_geometry_coordinates does not exist, then the preset maximum value can be determined based on the sequence-level asve_maximum_vertex_geometry_coordinates, that is, in this case, afve_maximum_vertex_geometry_coordinates can be equal to asve_maximum_vertex_geometry_coordinates.

[0140] That is, in the embodiments of the present application, there are multiple ways to determine the preset minimum value of each type of vertex information, such as being equal to 0, being equal to the minimum value of the information corresponding to the original mesh vertices, etc. Similarly, there are multiple ways to determine the preset maximum value of each type of vertex information, such as being calculated based on the bit depth corresponding to each type of information, being equal to the maximum value of the information corresponding to the original mesh vertices, etc., all of which are not specifically limited here.

[0141] It can also be understood that in the embodiment of the present application, for determining the reconstruction grid of the current image, referring to FIG9 , the method may include:

[0142] S901, determining the basic grid of the current image.

[0143] S902: Subdivide the basic grid to determine the subdivided grid of the current image.

[0144] S903: Decode the code stream to determine the displacement information of the subdivided grid.

[0145] S904: Determine a reconstructed mesh based on the subdivided mesh and the displacement information.

[0146] It should be noted that, in the embodiments of the present application, the basic grid may also be referred to as a “simplified grid.” In some embodiments, determining the basic grid of the current image may include: decoding a bitstream to determine the basic grid of the current image.

[0147] For example, the bitstream here can refer to the basic mesh bitstream. By decoding the basic mesh bitstream with a mesh decoder (such as DRACO or MEB), the basic mesh of the current image can be obtained. DRACO is an open-source static mesh decoder released by Google (Google DRACO), and MEB is a static mesh decoder implemented by MPEG (MPEG EdgeBreaker).

[0148] It should also be noted that, in an embodiment of the present application, subdividing the basic grid to determine the subdivided grid of the current image may include: determining the grid subdivision parameters of the current image; iteratively dividing the basic grid according to the grid subdivision parameters to determine the subdivided grid of the current image.

[0149] In the embodiment of the present application, the grid subdivision parameters may include: a subdivision method and a subdivision iteration number. In addition, both the subdivision method and the subdivision iteration number may be determined according to syntax elements transmitted in the bitstream.

[0150] In some embodiments, for the subdivision mode, the method may include: decoding the bitstream to determine a value of a seventh syntax element; and determining the subdivision mode according to the value of the seventh syntax element.

[0151] In some embodiments, for the number of subdivision iterations, the method may include: decoding a bitstream, determining a value of an eighth syntax element; and determining the number of subdivision iterations according to the value of the eighth syntax element.

[0152] It should be noted that in this embodiment of the present application, the seventh and eighth syntax elements are frame-level syntax elements. For example, the seventh syntax element can be used to indicate the subdivision method of the current frame, and the eighth syntax element can be used to indicate the number of subdivision iterations of the current frame. Thus, the seventh syntax element can be represented by afve_subdivision_method, and the eighth syntax element can be represented by afve_subdivision_iteration_count.

[0153] It should also be noted that, in embodiments of the present application, the seventh and eighth syntax elements may or may not be present in the bitstream, and the value of the ninth syntax element may be used to determine this. In some embodiments, the method may include: decoding the bitstream to determine the value of the ninth syntax element; when the ninth syntax element indicates that the seventh and eighth syntax elements are present in the frame parameter set extension of the current image, decoding the bitstream to determine the value of the seventh syntax element; and finally, decoding the bitstream to determine the value of the eighth syntax element.

[0154] In an embodiment of the present application, the ninth syntax element is also a frame-level syntax element. For example, the ninth syntax element may be used to indicate whether the seventh syntax element and the eighth syntax element are present in the frame parameter set extension of the current image. In this case, the ninth syntax element may be represented by afve_subdivision_enable_flag.

[0155] In an embodiment of the present application, if the value of the ninth syntax element is the first value, it is determined that the ninth syntax element indicates that the seventh syntax element and the eighth syntax element exist in the frame parameter set extension of the current image; if the value of the ninth syntax element is the second value, it is determined that the ninth syntax element indicates that the seventh syntax element and the eighth syntax element do not exist in the frame parameter set extension of the current image.

[0156] In some embodiments, the method may further include: decoding the code stream, determining the value of the tenth syntax element; and determining, based on the value of the tenth syntax element, that the ninth syntax element indicates the presence of the fourth syntax element and the ninth syntax element in the frame parameter set extension of the current image.

[0157] In the embodiment of the present application, the tenth syntax element is also a frame-level syntax element. Exemplarily, the tenth syntax element can be used to indicate whether the fourth syntax element and the ninth syntax element are present in the frame parameter set extension of the current image. In this case, the tenth syntax element can be represented by afve_overriden_flag.

[0158] In an embodiment of the present application, if the value of the tenth syntax element is the first value, it is determined that the tenth syntax element indicates that the fourth syntax element and the ninth syntax element exist in the frame parameter set extension of the current image; if the value of the tenth syntax element is the second value, it is determined that the tenth syntax element indicates that the fourth syntax element and the ninth syntax element do not exist in the frame parameter set extension of the current image.

[0159] In an embodiment of the present application, the first value is different from the second value. For example, the first value may be set to 1 and the second value may be set to 0; or, alternatively, the first value may be set to 0 and the second value may be set to 1; or, the first value may be set to true and the second value may be set to false; or, the first value may be set to false and the second value may be set to true.

[0160] In a specific embodiment, the first value may be 1, and the second value may be 0. That is, if the decoded value of afve_overriden_flag is 1, then the frame parameter set extension of the current image contains parameters such as afve_subdivision_enable_flag and afve_geometry_coordinates_enable_flag. If the decoded value of afve_subdivision_enable_flag is 1, then the frame parameter set extension of the current image contains afve_subdivision_method and afve_subdivision_iteration_count. If the decoded value of afve_subdivision_enable_flag is 1, then the frame parameter set extension of the current image contains afve_subdivision_method and afve_subdivision_iteration_count. If the afve_subdivision_enable_flag does not exist in the bitstream, it can be inferred that its value is 0, and in this case, the frame parameter set extension of the current image does not contain afve_subdivision_method and afve_subdivision_iteration_count.

[0161] It should also be noted that in an embodiment of the present application, if afve_subdivision_method and afve_subdivision_iteration_count do not exist in the frame parameter set extension of the current image; then the subdivision method and the number of subdivision iterations can also be determined based on the eleventh and twelfth syntax elements of the sequence level obtained by decoding.

[0162] In some embodiments, for the subdivision method, the method may include: decoding the code stream to determine the value of the eleventh syntax element; when the eleventh syntax element indicates the subdivision method of the sequence-level grid of the current image, if the seventh syntax element does not exist in the frame parameter set extension of the current image, then determining the subdivision method according to the value of the eleventh syntax element.

[0163] In some embodiments, for the number of subdivision iterations, the method may include: decoding the code stream, determining the value of the twelfth syntax element; when the twelfth syntax element indicates the number of subdivision iterations of the sequence-level grid of the current image, if the eighth syntax element does not exist in the frame parameter set extension of the current image, determining the number of subdivision iterations according to the value of the twelfth syntax element.

[0164] It should be noted that, in the embodiment of the present application, the eleventh syntax element and the twelfth syntax element are sequence-level syntax elements. For example, the eleventh syntax element can be represented by asve_subdivision_method, and the twelfth syntax element can be represented by asve_subdivision_iteration_count.

[0165] It should also be noted that in this embodiment of the present application, if afve_subdivision_method does not exist, the subdivision method can be determined based on the asve_subdivision_method at the sequence level, that is, in this case, afve_subdivision_method is equal to asve_subdivision_method. In addition, if afve_subdivision_method is equal to 0 and afve_subdivision_iteration_count does not exist, then afve_subdivision_iteration_count can be determined to be equal to 0. When afve_subdivision_method is not 0 and afve_subdivision_iteration_count does not exist, then afve_subdivision_iteration_count can be determined to be equal to asve_subdivision_iteration_count.

[0166] That is, in the embodiments of the present application, there are many specific ways to subdivide the base mesh, such as midpoint subdivision, loop subdivision, etc., which are not limited here. In this way, after the subdivision operation, there is a one-to-one correspondence between the vertices of the subdivided mesh and the vertices of the deformed mesh. This correspondence is the displacement information of the subdivided mesh obtained by decoding.

[0167] It should be noted that in the embodiment of the present application, the code stream is decoded to determine the displacement information of the subdivided grid. The code stream here can be a displacement code stream. There are also various specific decoding methods for the displacement code stream, such as video decoding, entropy decoding, etc. That is, in the embodiment of the present application, the displacement information can be obtained by decoding through a video decoder, or by decoding through an entropy decoder, and no limitation is made here.

[0168] In some embodiments, determining the reconstructed mesh based on the subdivided mesh and the displacement information may include: performing a corresponding displacement operation on at least one vertex of the subdivided mesh based on the displacement information to obtain the reconstructed mesh.

[0169] In other words, in this embodiment of the present application, the reconstructed mesh is a reconstructed deformed mesh. Specifically, the deformed mesh is reconstructed by sequentially adding the decoded displacement information to each vertex of the subdivided mesh. The reconstructed deformed mesh is then subjected to data cropping to obtain a 3D reconstructed mesh that avoids data overflow.

[0170] In short, the embodiments of the present application propose a 3D mesh reconstruction solution. This solution allows the various types of information (such as vertex geometric coordinate information, UV coordinate information, normal vector information, reflectivity information, etc.) of the reconstructed mesh vertices on the decoding end to be clipped according to a specific number of bits, thereby effectively avoiding distortion caused by data overflow.

[0171] In one possible implementation, FIG10 is a schematic block diagram of a three-dimensional mesh reconstruction method provided by an embodiment of the present application. As shown in FIG10 , the block diagram may include: a base mesh decoding module 1001, a first post-processing module 1002, a subdivision module 1003, a displacement decoding module 1004, a second post-processing module 1005, a mesh reconstruction module 1006, and a data clipping module 1007. After the base mesh code stream passes through the base mesh decoding module 1001 and the first post-processing module 1002, a reconstructed base mesh is obtained. The reconstructed base mesh is input into the subdivision module 1003 to generate a subdivided mesh. After the displacement code stream passes through the displacement decoding module 1004 and the second post-processing module 1005, reconstructed displacement information is obtained. The subdivided mesh and the reconstructed displacement information are then input into the mesh reconstruction module 1006 to obtain a reconstructed mesh. Finally, the reconstructed mesh is input into the data clipping module 1007 so that the clipped reconstructed mesh is within a preset value range, thereby improving the distortion problem caused by data overflow.

[0172] With reference to Figure 10 , the base mesh bitstream and displacement bitstream are first decoded. The base mesh represents the basic shape of the input mesh, and the displacement information contains distance information (such as vertex geometric coordinates) from various information about the subdivided mesh vertices to the corresponding information of the input mesh's nearest neighbor. For example, there are various specific decoding methods for the base mesh, such as DRACO and MEB. Similarly, there are also various specific decoding methods for the displacement, such as video decoding and entropy decoding. The specific decoding methods for the base mesh and displacement are not limited here. After decoding, the decoded base mesh can be input into a first post-processing module to obtain a reconstructed base mesh. The first post-processing module includes a series of operations after the base mesh is decoded, such as inverse quantization and inverse transformation. Similarly, the decoded displacement is input into a second post-processing module to obtain reconstructed displacement information. The second post-processing module includes a series of operations after the displacement is decoded, such as inverse quantization and inverse transformation. The resulting subdivided mesh and reconstructed displacement information are then input into a mesh reconstruction module, which combines the various information about the subdivided mesh vertices with the corresponding displacement information to obtain a reconstructed mesh. The reconstructed base mesh can be subdivided in a variety of ways, such as midpoint subdivision and loop subdivision, and the specific subdivision method is not limited here. After obtaining the reconstructed mesh, it is input into the data clipping module, which clips various types of information of the reconstructed mesh vertices to prevent distortion caused by data overflow.

[0173] It should also be noted that in an embodiment of the present application, a feasible clipping method can be shown in Figure 7. Specifically, for each vertex of the reconstructed mesh, first determine whether its vertex information is less than the corresponding preset minimum value. If so, set the vertex information of this type to be equal to the preset minimum value. Otherwise, determine whether the vertex information of this type is greater than the corresponding preset maximum value. If so, set the vertex information of this type to be equal to the preset maximum value; otherwise, output the vertex information of this type directly without performing any operation. There are multiple ways to determine the preset minimum value of each type of vertex information, such as being equal to 0, being equal to the minimum value of the corresponding information of the original mesh vertex, etc. Similarly, there are also multiple ways to determine the preset maximum value of each type of vertex information, such as being calculated based on the bit depth corresponding to each type of information, being equal to the maximum value of the corresponding information of the original mesh vertex, etc.

[0174] In addition, in an embodiment of the present application, the texture map (or attribute map) of the current image can also be determined. Here, the code stream can also be decoded to determine the texture map. Specifically, the texture map code stream can be decoded by a texture map decoder, or the texture map can also be decoded using a video decoder. An optional color space conversion is performed to obtain an image format consistent with the input texture map of the encoding end, thereby obtaining the texture map of the final decoded output.

[0175] In this way, at the decoding end, a reconstructed deformed mesh and a corresponding texture map are finally obtained, and subsequent applications can process the reconstructed deformed mesh and texture map as input.

[0176] An embodiment of the present application provides a decoding method for determining a reconstructed mesh of a current image, wherein the reconstructed mesh includes at least one vertex; clipping the vertex information of at least one vertex, determining the clipped information of at least one vertex, and updating the reconstructed mesh based on the clipped information of at least one vertex; wherein the clipped information of at least one vertex satisfies a preset numerical range. Due to the large difference between the mesh and the two-dimensional video, after adjusting the prediction algorithm, it was found that there was a data overflow problem in the vertex coordinates of the reconstructed mesh. In this way, by clipping the vertex information of the reconstructed mesh, the overflow of various related information of the reconstructed mesh vertices can be effectively prevented, thereby improving the distortion problem of the reconstructed mesh. In addition, the data clipping module can be used in the VDMC framework as a solution for overflow of the reconstructed mesh vertex coordinates, and can also improve the completeness of the framework, thereby improving the encoding and decoding performance.

[0177] In another embodiment of the present application, based on the decoding method of the aforementioned embodiment, FIG11 is a flow chart of an encoding method provided by the embodiment of the present application. As shown in FIG11 , the method may include:

[0178] S1101, determining a reconstructed mesh of a current image; wherein the reconstructed mesh includes at least one vertex.

[0179] S1102, clipping vertex information of at least one vertex, determining clipped information of at least one vertex, and updating and reconstructing the mesh according to the clipped information of at least one vertex; wherein the clipped information of at least one vertex satisfies a preset value range.

[0180] It should be noted that the encoding method of the embodiments of the present application may refer to a 3D mesh reconstruction method, and more specifically, a 3D mesh reconstruction method that avoids data overflow. In addition, the encoding method may be applied to an encoder, and more specifically, may be an encoder used in V-DMC, but is not limited thereto.

[0181] It should also be noted that in the embodiment of the present application, the reconstructed mesh is a three-dimensional reconstructed mesh, which may include at least one vertex. For the vertex information of the at least one vertex, it is necessary that the clipped information all meets a preset value range.

[0182] In some embodiments, the vertex information includes at least one of the following: geometric coordinate information, normal vector information, reflectivity information, and UV coordinate information. In other words, embodiments of the present application allow for clipping of various types of information (e.g., geometric coordinate information, UV coordinate information, normal vector information, reflectivity information, etc.) of the reconstructed mesh vertices at the decoding end to improve distortion caused by data overflow.

[0183] It should also be noted that, in the embodiment of the present application, the vertex information of at least one vertex is clipped, and the vertex information of at least one vertex can be clipped according to a preset number of bits. Here, the preset number of bits can be a value related to the bit depth of the current image, so that the clipped information meets a preset value range.

[0184] In some embodiments, for a preset value range, the clipped information of at least one vertex satisfies the preset value range, which may include: the clipped information of at least one vertex is greater than or equal to a preset minimum value and less than or equal to a preset maximum value.

[0185] That is, in the embodiment of the present application, the preset numerical range may refer to a range between a preset minimum value and a preset maximum value. Here, the preset minimum value is the lower limit of the preset numerical range, and the preset maximum value is the upper limit of the preset numerical range.

[0186] In some embodiments, when clipping the vertex information of at least one vertex and determining the clipped information of at least one vertex, taking the first vertex as an example, the method may include: when the vertex information of the first vertex is less than a preset minimum value, setting the clipped information of the first vertex to be equal to the preset minimum value; when the vertex information of the first vertex is greater than the preset minimum value, setting the clipped information of the first vertex to be equal to the preset maximum value.

[0187] It should be noted that in the embodiment of the present application, the first vertex is any one of the at least one vertex. That is, for each vertex of the reconstructed mesh, after obtaining vertex information for each vertex, first determine whether the vertex information is less than a preset minimum value. If so, set the vertex information to the preset minimum value; then determine whether the vertex information is greater than a preset maximum value. If so, set the vertex information to the preset maximum value.

[0188] Furthermore, in some embodiments, the method may further include: when the vertex information of the first vertex is greater than or equal to a preset minimum value and less than or equal to a preset maximum value, setting the clipped information of the first vertex to be equal to the vertex information of the first vertex.

[0189] That is to say, for each vertex of the reconstructed mesh, if the vertex information is within a preset value range, that is, greater than or equal to the preset minimum value and less than or equal to the preset maximum value, then no operation is performed on the vertex information of this vertex, that is, the clipped information of this vertex is equal to the vertex information.

[0190] In one possible implementation, for each vertex in the reconstructed mesh, the method may include: determining the vertex information of each vertex; determining whether the vertex information is less than a preset minimum value; when the vertex information is less than the preset minimum value, setting the vertex information equal to the preset minimum value; when the vertex information is not less than the preset minimum value, determining whether the vertex information is greater than a preset maximum value; when the vertex information is greater than the preset maximum value, setting the vertex information equal to the preset maximum value; and finally outputting the clipped information of each vertex.

[0191] That is, in this embodiment of the present application, for each vertex of the reconstructed mesh, it is first determined whether its vertex information is less than the corresponding preset minimum value. If so, the vertex information of this type is set to be equal to the preset minimum value. Otherwise, it is determined whether the vertex information of this type is greater than the corresponding preset maximum value. If so, the vertex information of this type is set to be equal to the preset maximum value. Otherwise, no operation is performed and the vertex information of this type is directly output to obtain the clipped information of each vertex of the reconstructed mesh.

[0192] It should also be noted that in the embodiment of the present application, the vertex information here may include multiple types, such as geometric coordinate information, UV coordinate information, normal vector information, reflectivity information, etc., so the preset minimum value and preset maximum value may also include the minimum value and maximum value of each of the multiple types, that is, different types of vertex information correspond to different preset minimum values ​​and preset maximum values.

[0193] For example, if the vertex information is geometric coordinate information, then the preset minimum value and the preset maximum value correspond to the minimum value and the maximum value of the geometric coordinates; if the vertex information is normal vector information, then the preset minimum value and the preset maximum value correspond to the minimum value and the maximum value of the normal vector; if the vertex information is reflectivity information, then the preset minimum value and the preset maximum value correspond to the minimum value and the maximum value of the reflectivity.

[0194] It is understandable that, here, using geometric coordinate information as an example, a clipping operation is performed on the geometric coordinate information of each vertex. In some embodiments, for reconstructing a mesh, the method may include: clipping the geometric coordinate information of at least one vertex, determining the clipped geometric coordinate information of the at least one vertex, and updating the reconstructed mesh based on the clipped geometric coordinate information of the at least one vertex; wherein the clipped geometric coordinate information of the at least one vertex satisfies a preset value range.

[0195] It should be noted that, in the embodiment of the present application, the clipping operation here can be regarded as a clamping operation, so that the geometric coordinate information after clipping is within a preset value range.

[0196] In a specific embodiment, for each vertex in the reconstructed mesh, the method may include: determining the geometric coordinate information of each vertex; judging whether the geometric coordinate information is less than a preset minimum value; when the geometric coordinate information is less than the preset minimum value, setting the geometric coordinate information equal to the preset minimum value; when the geometric coordinate information is not less than the preset minimum value, judging whether the geometric coordinate information is greater than a preset maximum value; when the geometric coordinate information is greater than the preset maximum value, setting the geometric coordinate information equal to the preset maximum value; and finally outputting the clipped geometric coordinate information of each vertex.

[0197] That is, in the embodiment of the present application, for each vertex of the reconstructed mesh, it is first determined whether the geometric coordinate information of each vertex is less than the corresponding preset minimum value. If so, the geometric coordinate information is set equal to the preset minimum value. Otherwise, it is determined whether the geometric coordinate information is greater than the corresponding preset maximum value. If so, the geometric coordinate information is set equal to the preset maximum value. Otherwise, no operation is performed and the geometric coordinate information of the vertex is directly output to obtain the clipped geometric coordinate information of each vertex of the reconstructed mesh.

[0198] It should also be noted that in the embodiment of the present application, the preset minimum value can be expressed as P min Indicates that the preset maximum value can be used max Then for the reconstructed mesh, after clipping several coordinate information of each vertex, the clipped geometric coordinate information of each vertex is in [P min , P max ] within.

[0199] It can be understood that in the embodiment of the present application, the difference between the grid and the two-dimensional video is relatively large. The cropping operation in the two-dimensional video codec is for pixel values, so that the pixel values ​​meet the preset numerical range; while the grid is for vertex information (such as geometric coordinate information). In this way, it is equivalent to the grid limiting the size of the cube, and only the boundaries may cross the boundary. In the related art, the relevant algorithm does not have a good effect of inter-frame prediction, and the vertex information of the corresponding reconstructed grid will not have data overflow. However, after optimizing the prediction algorithm, it was found that the vertex coordinates of the reconstructed grid have a data overflow problem. Based on this, after obtaining the reconstructed grid, the embodiment of the present application can crop at least one vertex information (such as geometric coordinate information) of the reconstructed grid so that the cropped information of each vertex meets the preset numerical range, thereby effectively preventing the overflow of various related information of the reconstructed grid vertices and improving the distortion problem of the reconstructed grid.

[0200] It can also be understood that in the embodiment of the present application, there are multiple ways to determine the preset minimum value and the preset maximum value. For example, they can be set as preset constants, or determined according to syntax elements transmitted in the code stream, etc., which are described in detail below.

[0201] In a possible implementation, the syntax element for indicating the preset minimum value and the preset maximum value is not transmitted in the bitstream.

[0202] In some embodiments, for the preset minimum value, the method may include setting the preset minimum value to a first constant.

[0203] For example, in the embodiment of the present application, the first constant may be set to 0. That is, the preset minimum value may be directly set to 0.

[0204] In some embodiments, for the preset maximum value, the method may include: setting the preset maximum value to a second constant.

[0205] Illustratively, in the embodiment of the present application, the second constant is different from the first constant, and the second constant may be an integer greater than 0.

[0206] In a specific embodiment, the method may further include: determining the bit depth of the current image; performing a bit depth shift calculation on the first value to determine a preset maximum value.

[0207] For example, in the embodiment of the present application, the first value can be set to 1. The bit depth can be represented by bitDepth, and the preset maximum value can be represented by P max The calculation formula is as follows: P max =1<<bitDepth (3)

[0208] It should be noted that in the embodiments of this application, the bitDepth is set at the encoder end and then transmitted in the bitstream. Therefore, in some embodiments, the method may include: determining the value of the first syntax element based on the bit depth of the current image; encoding the value of the first syntax element, and writing the resulting coded bits into the bitstream.

[0209] It should also be noted that, in the embodiment of the present application, the value of the first syntax element can be used to indicate the bit depth of the current image. The first syntax element can be represented by asve_geometry3d_bitdepth_minus1, which is represented by adding 1 to the bit depth of the current image. In other words, the value of the first syntax element is determined as follows: asve_geometry3d_bitdepth_minus1 = bitDepth - 1 (4)

[0210] In this way, after determining the value of bitDepth, a corresponding left shift operation is performed on 1 according to bitDepth to obtain the preset maximum value.

[0211] In another possible implementation, a syntax element for indicating a preset minimum value and a preset maximum value is transmitted in a bitstream.

[0212] In some embodiments, for the preset minimum value, the method may include: determining a minimum value of frame-level mesh vertices of the current image; and setting the preset minimum value equal to the minimum value of frame-level mesh vertices of the current image.

[0213] Furthermore, in some embodiments, the method may also include: determining a value of a second syntax element based on a minimum value of a frame-level mesh vertex of the current image; encoding the value of the second syntax element, and writing the obtained encoding bits into a bitstream.

[0214] In some embodiments, for the preset maximum value, the method may include: determining a maximum value of frame-level mesh vertices of the current image; and setting the preset maximum value equal to the maximum value of frame-level mesh vertices of the current image.

[0215] Furthermore, in some embodiments, the method may also include: determining a value of a third syntax element based on a maximum value of a frame-level mesh vertex of the current image; encoding the value of the third syntax element, and writing the obtained encoding bits into a bitstream.

[0216] It should be noted that, in this embodiment of the present application, the second and third syntax elements are frame-level syntax elements. For example, the second syntax element may be used to indicate the minimum value of the geometric coordinates of the vertex of the current frame mesh, and the third syntax element may be used to indicate the maximum value of the geometric coordinates of the vertex of the current frame mesh; thus, the second syntax element may be represented by afve_minimum_vertex_geometry_coordinates, and the third syntax element may be represented by afve_maximum_vertex_geometry_coordinates.

[0217] It should also be noted that, in embodiments of the present application, the second and third syntax elements may or may not be present in the bitstream, which can be determined using the value of the fourth syntax element. In some embodiments, the method may include: determining the value of the fourth syntax element; wherein the fourth syntax element is used to indicate whether the second and third syntax elements are present in the frame parameter set extension of the current image; and encoding the value of the fourth syntax element, and writing the resulting coded bits into the bitstream.

[0218] Furthermore, in some embodiments, the method may further include: when a second syntax element and a third syntax element exist in the frame parameter set extension of the current image, executing the steps of determining a value of the second syntax element and determining a value of the third syntax element.

[0219] In the embodiment of the present application, the fourth syntax element is also a frame-level syntax element. Exemplarily, the fourth syntax element can be used to indicate whether the second syntax element and the third syntax element are present in the frame parameter set extension of the current image. In this case, the fourth syntax element can be represented by afve_geometry_coordinates_enable_flag.

[0220] In an embodiment of the present application, if the second syntax element and the third syntax element exist in the frame parameter set extension of the current image, the value of the fourth syntax element is determined to be the first value; if the second syntax element and the third syntax element do not exist in the frame parameter set extension of the current image, the value of the fourth syntax element is determined to be the second value.

[0221] In an embodiment of the present application, the first value is different from the second value. For example, the first value may be set to 1 and the second value may be set to 0; or, alternatively, the first value may be set to 0 and the second value may be set to 1; or, the first value may be set to true and the second value may be set to false; or, the first value may be set to false and the second value may be set to true.

[0222] In a specific embodiment, the first value may be 1, and the second value may be 0. That is, if afve_minimum_vertex_geometry_coordinates and afve_maximum_vertex_geometry_coordinates are present in the frame parameter set extension of the current image, then the value of afve_geometry_coordinates_enable_flag may be written to the bitstream as 1; if afve_minimum_vertex_geometry_coordinates and afve_maximum_vertex_geometry_coordinates are not present in the frame parameter set extension of the current image, then the value of afve_geometry_coordinates_enable_flag may not be written to the bitstream, or in other words, if afve_geometry_coordinates_enable_flag does not exist in the bitstream, then its value may be inferred to be 0.

[0223] Exemplarily, the syntax structures of these three syntax elements are described as follows:

[0224] It should also be noted that, in an embodiment of the present application, if afve_minimum_vertex_geometry_coordinates and afve_maximum_vertex_geometry_coordinates do not exist in the frame parameter set extension of the current image; then the decoding end can also determine the preset minimum value and the preset maximum value based on the fifth syntax element and the sixth syntax element of the sequence level obtained by decoding.

[0225] In some embodiments, for the preset minimum value, the method may include: determining a minimum value of sequence-level mesh vertices of the current image; and setting the preset minimum value equal to the minimum value of sequence-level mesh vertices of the current image.

[0226] Furthermore, in some embodiments, the method may also include: determining a value of a fifth syntax element based on a minimum value of sequence-level mesh vertices of the current image; encoding the value of the fifth syntax element, and writing the obtained encoding bits into a bitstream.

[0227] In some embodiments, for the preset maximum value, the method may include: determining a maximum value of sequence-level mesh vertices of the current image; and setting the preset maximum value equal to the maximum value of sequence-level mesh vertices of the current image.

[0228] Furthermore, in some embodiments, the method may also include: determining a value of a sixth syntax element based on a maximum value of sequence-level mesh vertices of the current image; encoding the value of the sixth syntax element, and writing the obtained encoding bits into a bitstream.

[0229] It should be noted that, in this embodiment of the present application, the fifth and sixth syntax elements are sequence-level syntax elements. For example, the fifth syntax element may be used to indicate the minimum value of the sequence-level mesh vertex geometric coordinates, and the sixth syntax element may be used to indicate the maximum value of the sequence-level mesh vertex geometric coordinates. Thus, the fifth syntax element may be represented by asve_minimum_vertex_geometry_coordinates, and the sixth syntax element may be represented by asve_maximum_vertex_geometry_coordinates.

[0230] It should also be noted that in this embodiment of the present application, for the preset minimum value, the fifth syntax element at the sequence level and the second syntax element at the frame level can be written into the bitstream. If the decoder determines that the second syntax element does not exist in the frame parameter set extension for the current image in the bitstream, the preset minimum value can be determined based on the value of the fifth syntax element. Similarly, for the preset maximum value, the sixth syntax element at the sequence level and the third syntax element at the frame level can be written into the bitstream. If the decoder determines that the third syntax element does not exist in the frame parameter set extension for the current image in the bitstream, the preset maximum value can be determined based on the value of the sixth syntax element.

[0231] That is, in this embodiment of the present application, if afve_minimum_vertex_geometry_coordinates does not exist in the bitstream, then the preset minimum value can be determined based on the sequence-level asve_minimum_vertex_geometry_coordinates, that is, in this case, afve_minimum_vertex_geometry_coordinates can be equal to asve_minimum_vertex_geometry_coordinates. Similarly, if afve_maximum_vertex_geometry_coordinates does not exist in the bitstream, then the preset maximum value can be determined based on the sequence-level asve_maximum_vertex_geometry_coordinates, that is, in this case, afve_maximum_vertex_geometry_coordinates can be equal to asve_maximum_vertex_geometry_coordinates.

[0232] In short, in the embodiments of the present application, there are various ways to determine the preset minimum value of each type of vertex information, such as being equal to 0, being equal to the minimum value of the information corresponding to the original mesh vertices, etc. Similarly, there are also various ways to determine the preset maximum value of each type of vertex information, such as being calculated based on the bit depth corresponding to each type of information, being equal to the maximum value of the information corresponding to the original mesh vertices, etc., all of which are not specifically limited here.

[0233] It can also be understood that in the embodiment of the present application, for determining the reconstruction grid of the current image, referring to FIG12 , the method may include:

[0234] S1201, determining the basic grid of the current image.

[0235] S1202: Subdivide the basic grid to determine the subdivided grid of the current image.

[0236] S1203: deform the subdivided grid to determine the deformed grid of the current image.

[0237] S1204: Calculate the corresponding displacement between the subdivided grid and the deformed grid to determine displacement information.

[0238] S1205: Determine the reconstructed mesh based on the subdivided mesh and the displacement information.

[0239] It should be noted that in the embodiments of the present application, the base grid may also be referred to as a "simplified grid." In some embodiments, determining the base grid of the current image may include: determining an input grid of the current image; and downsampling the input grid to determine the base grid of the current image.

[0240] It should also be noted that, in the embodiment of the present application, the input grid of the current image may also be referred to as the original grid. By downsampling the input grid, that is, simplifying the input grid, a basic grid may be obtained.

[0241] Furthermore, in some embodiments, the method may further include: performing encoding processing on the basic grid of the current image, and writing the obtained encoding bits into a bitstream.

[0242] For example, the codestream here can refer to the basic grid codestream. A grid encoder (such as DRACO or MEB) can then write the current image's basic grid into the basic grid codestream. On the encoding side, DRACO is an open-source static grid encoder (Google DRACO) released by Google, and MEB is a static grid encoder (MPEG EdgeBreaker) implemented by MPEG.

[0243] It should also be noted that, in an embodiment of the present application, subdividing the basic grid to determine the subdivided grid of the current image may include: determining the grid subdivision parameters of the current image; iteratively dividing the basic grid according to the grid subdivision parameters to determine the subdivided grid of the current image.

[0244] In the embodiment of the present application, the grid subdivision parameters may include: a subdivision method and a subdivision iteration number. In addition, both the subdivision method and the subdivision iteration number may be determined according to syntax elements transmitted in the bitstream.

[0245] In some embodiments, for the subdivision mode, the method may include: determining a value of the seventh syntax element according to the subdivision mode; encoding the value of the seventh syntax element, and writing the obtained coded bits into the bitstream.

[0246] In some embodiments, for the number of subdivision iterations, the method may include: determining a value of an eighth syntax element according to the number of subdivision iterations; encoding the value of the eighth syntax element, and writing the obtained coded bits into a bitstream.

[0247] It should be noted that in this embodiment of the present application, the seventh and eighth syntax elements are frame-level syntax elements. For example, the seventh syntax element can be used to indicate the subdivision method of the current frame, and the eighth syntax element can be used to indicate the number of subdivision iterations of the current frame. Thus, the seventh syntax element can be represented by afve_subdivision_method, and the eighth syntax element can be represented by afve_subdivision_iteration_count.

[0248] It should also be noted that, in embodiments of the present application, the seventh and eighth syntax elements may or may not be present in the bitstream, and this can be determined using the value of the ninth syntax element. In some embodiments, the method may include: determining the value of the ninth syntax element; encoding the value of the ninth syntax element, and writing the resulting coded bits into the bitstream.

[0249] In an embodiment of the present application, the ninth syntax element is also a frame-level syntax element. For example, the ninth syntax element can be used to indicate whether the seventh and eighth syntax elements are present in the frame parameter set extension of the current image. In this case, the ninth syntax element can be represented by afve_subdivision_enable_flag. It should be noted that when the seventh and eighth syntax elements are present in the frame parameter set extension of the current image, the steps of determining the value of the seventh syntax element and determining the value of the eighth syntax element are performed.

[0250] In an embodiment of the present application, if the seventh syntax element and the eighth syntax element exist in the frame parameter set extension of the current image, the value of the ninth syntax element is determined to be the first value; if the seventh syntax element and the eighth syntax element do not exist in the frame parameter set extension of the current image, the value of the ninth syntax element is determined to be the second value.

[0251] In some embodiments, the method may further include: decoding the bitstream to determine the value of the tenth syntax element; encoding the value of the tenth syntax element, and writing the obtained coded bits into the bitstream.

[0252] In this embodiment of the present application, the tenth syntax element is also a frame-level syntax element. For example, the tenth syntax element can be used to indicate whether the fourth syntax element and the ninth syntax element are present in the frame parameter set extension of the current image. In this case, the tenth syntax element can be represented by afve_overriden_flag. It should be noted that the value of the tenth syntax element can be determined based on whether the fourth syntax element and the ninth syntax element are present in the frame parameter set extension of the current image, as indicated by the ninth syntax element.

[0253] In an embodiment of the present application, if the fourth syntax element and the ninth syntax element exist in the frame parameter set extension of the current image, the value of the tenth syntax element is determined to be the first value; if the fourth syntax element and the ninth syntax element do not exist in the frame parameter set extension of the current image, the value of the tenth syntax element is determined to be the second value.

[0254] In an embodiment of the present application, the first value is different from the second value. For example, the first value may be set to 1 and the second value may be set to 0; or, alternatively, the first value may be set to 0 and the second value may be set to 1; or, the first value may be set to true and the second value may be set to false; or, the first value may be set to false and the second value may be set to true.

[0255] In a specific embodiment, the first value may be 1, and the second value may be 0. That is, if the frame parameter set extension of the current image contains parameters such as afve_subdivision_enable_flag and afve_geometry_coordinates_enable_flag, then the value of afve_overriden_flag written into the bitstream may be determined to be 1. If the frame parameter set extension of the current image contains parameters such as afve_subdivision_method and afve_subdivision_iteration_count, then the value of afve_subdivision_enable_flag written into the bitstream may be determined to be 1. If the frame parameter set extension of the current image does not contain parameters such as afve_subdivision_method and afve_subdivision_iteration_count, then the value of afve_subdivision_enable_flag may not be written into the bitstream. In other words, if afve_subdivision_enable_flag does not exist in the bitstream, then its value may be inferred to be 0.

[0256] It should also be noted that in this embodiment of the present application, if afve_subdivision_method and afve_subdivision_iteration_count do not exist in the frame parameter set extension of the current image; then the decoding end can also determine the subdivision method and the number of subdivision iterations based on the eleventh and twelfth syntax elements at the sequence level.

[0257] In some embodiments, for the subdivision mode, the method may include: determining a value of an eleventh syntax element; encoding the value of the eleventh syntax element, and writing the obtained coded bits into a bitstream.

[0258] In an embodiment of the present application, when the eleventh syntax element indicates the subdivision method of the sequence-level grid of the current image, if the seventh syntax element does not exist in the frame parameter set extension of the current image, the subdivision method can be determined according to the value of the eleventh syntax element.

[0259] In some embodiments, for the number of subdivision iterations, the method may include: determining a value of a twelfth syntax element; encoding the value of the twelfth syntax element, and writing the obtained coded bits into a bitstream.

[0260] In an embodiment of the present application, when the twelfth syntax element indicates the number of subdivision iterations of the sequence-level grid of the current image, if the eighth syntax element does not exist in the frame parameter set extension of the current image, the number of subdivision iterations can be determined based on the value of the twelfth syntax element.

[0261] It should be noted that, in the embodiment of the present application, the eleventh syntax element and the twelfth syntax element are sequence-level syntax elements. For example, the eleventh syntax element can be represented by asve_subdivision_method, and the twelfth syntax element can be represented by asve_subdivision_iteration_count.

[0262] It should also be noted that in this embodiment of the present application, if afve_subdivision_method does not exist in the bitstream, the subdivision method can be determined based on the asve_subdivision_method at the sequence level, that is, in this case, afve_subdivision_method is equal to asve_subdivision_method. In addition, if afve_subdivision_method is equal to 0 and afve_subdivision_iteration_count does not exist in the bitstream, then afve_subdivision_iteration_count can be determined to be equal to 0. When afve_subdivision_method is not 0 and afve_subdivision_iteration_count does not exist in the bitstream, then afve_subdivision_iteration_count can be determined to be equal to asve_subdivision_iteration_count.

[0263] That is, in the embodiment of the present application, there are many specific subdivision methods for the basic grid, such as midpoint subdivision, loop subdivision, etc., which are not limited here. In this way, after the subdivision operation is performed, the displacement information of the subdivided grid can also be determined based on the obtained subdivided grid.

[0264] It should be noted that in the embodiment of the present application, determining the deformed mesh may include: deforming multiple segments of the subdivided mesh to determine the deformed mesh, and then calculating the corresponding displacement between the subdivided mesh and the deformed mesh to determine the displacement information.

[0265] In some embodiments, the method may further include: performing corresponding displacement calculations on at least one vertex of the deformed mesh and at least one vertex of the subdivided mesh, determining displacement information of the at least one vertex, and obtaining displacement information of the subdivided mesh.

[0266] Furthermore, in some embodiments, the method may further include: encoding the displacement information of the subdivided grid, and writing the obtained encoding bits into a bitstream.

[0267] It should also be noted that in the embodiments of the present application, after generating a subdivided mesh, multiple segments of the subdivided mesh are subsequently deformed to obtain a better approximation of the original mesh. Specifically, a geometric displacement vector is calculated for each vertex of the subdivided mesh so that the shape of the subdivided mesh approximates the shape of the original curve as closely as possible. These geometric displacement vectors are referred to as displacement information. Specifically, there is a one-to-one correspondence between subdivided mesh vertices and deformed mesh vertices; this correspondence is the displacement information of the subdivided mesh.

[0268] It should also be noted that in the embodiments of the present application, the displacement information of the subdivided grid is encoded, and the code stream here can be a displacement code stream. There are also various specific encoding methods for the displacement code stream, such as video encoding, entropy encoding, etc. In other words, in the embodiments of the present application, the displacement information can be written into the displacement code stream via a video encoder, or the displacement information can be written into the displacement code stream via an entropy encoder, without any limitation here.

[0269] That is to say, in an embodiment of the present application, after the displacement information is generated, there are multiple ways to encode the displacement information. For example, one possible implementation method is to consider converting the coordinate system in which the displacement is located, that is, converting the coordinate system of the displacement information of each vertex into a coordinate system constructed by the normal vector of the vertex corresponding to the displacement information and the two components tangent to the normal vector. The displacement is then transformed, such as by a wavelet transform. The transformed coefficients are quantized and arranged in the image in the order of scanning, and video encoding is applied to the image. In addition, the generated or processed displacement can also be directly encoded using entropy coding.

[0270] In some embodiments, determining the reconstructed mesh based on the subdivided mesh and the displacement information may include: performing a corresponding displacement operation on at least one vertex of the subdivided mesh based on the displacement information to obtain the reconstructed mesh.

[0271] That is to say, in the embodiment of the present application, the reconstructed mesh here is a reconstructed deformed mesh. Since the displacement is lost to a certain extent during the quantization process in the encoding stage of the displacement information, it is necessary to reconstruct the displacement information at the encoding end so as to be consistent with the decoding end. In this way, after obtaining the reconstructed displacement information, the reconstructed base mesh is subdivided and the reconstructed subdivided deformed mesh (i.e., the reconstructed deformed mesh) is obtained according to the corresponding displacement information. The reconstructed deformed mesh is then input into the data clipping module, which performs a clipping operation on the geometric coordinates of the reconstructed deformed mesh to obtain a three-dimensional reconstructed mesh that can avoid data overflow.

[0272] In an embodiment of the present application, a feasible clipping method can be shown in Figure 8. Specifically, for each vertex of the reconstructed mesh, first determine whether its geometric coordinate information is less than the corresponding preset minimum value. If so, make the geometric coordinate information equal to the preset minimum value. Otherwise, determine whether the geometric coordinate information is greater than the corresponding preset maximum value. If so, make the geometric coordinate information equal to the preset maximum value; otherwise, directly output the geometric coordinate information of the vertex without performing any operation. There are many ways to determine the preset minimum value of the geometric coordinate information, such as being equal to 0, being equal to the minimum value of the geometric coordinates of the original mesh vertex (in this case, the value needs to be written into the bitstream), etc. Similarly, there are also many ways to determine the preset maximum value of the geometric coordinate information, such as being calculated by the bit depth corresponding to each type of information, being equal to the maximum value of the geometric coordinates of the original mesh vertex (in this case, the value needs to be written into the bitstream), etc. After data clipping, the clipped reconstructed deformed mesh can also be passed to the texture map conversion module.

[0273] It should also be noted that, in the embodiment of the present application, the texture map encoding module first performs texture map conversion based on the input original mesh, the input original texture map, and the mesh after subdivision and deformation, and then encodes the converted texture map and writes it into the texture map code stream.

[0274] In another embodiment of the present application, the embodiment of the present application further provides a code stream, which can be generated by bit encoding based on the information to be encoded; wherein the information to be encoded includes at least one of the following: the basic grid of the current image, the displacement information of the subdivided grid, the value of the first syntax element, the value of the second syntax element, the value of the third syntax element, the value of the fourth syntax element, the value of the fifth syntax element, the value of the sixth syntax element, the value of the seventh syntax element and the value of the eighth syntax element.

[0275] In an embodiment of the present application, the value of the first syntax element can be used to indicate the bit depth of the current image, the value of the second syntax element can be used to indicate the minimum value of the frame-level mesh vertex geometric coordinates of the current image, the value of the third syntax element can be used to indicate the maximum value of the frame-level mesh vertex geometric coordinates of the current image, the value of the fourth syntax element can be used to indicate whether the second syntax element and the third syntax element are present in the frame parameter set extension of the current image, the value of the fifth syntax element can be used to indicate the minimum value of the sequence-level mesh vertex geometric coordinates of the current image, the value of the sixth syntax element can be used to indicate the maximum value of the sequence-level mesh vertex geometric coordinates of the current image, the value of the seventh syntax element can be used to indicate the subdivision method, and the value of the eighth syntax element can be used to indicate the number of subdivision iterations.

[0276] An embodiment of the present application provides an encoding method for determining a reconstructed mesh of a current image, wherein the reconstructed mesh includes at least one vertex; clipping the vertex information of at least one vertex, determining the clipped information of at least one vertex, and updating the reconstructed mesh based on the clipped information of at least one vertex; wherein the clipped information of at least one vertex satisfies a preset numerical range. Due to the large difference between the mesh and the two-dimensional video, after adjusting the prediction algorithm, it was found that there was a data overflow problem in the vertex coordinates of the reconstructed mesh. In this way, by clipping the vertex information of the reconstructed mesh, the overflow of various related information of the reconstructed mesh vertices can be effectively prevented, thereby improving the distortion problem of the reconstructed mesh. In addition, the data clipping module can be used in the VDMC framework as a solution for overflow of the reconstructed mesh vertex coordinates, and can also improve the completeness of the framework, thereby improving the encoding and decoding performance.

[0277] In another embodiment of the present application, based on the encoding and decoding method described in the aforementioned embodiment, Figure 13 is a schematic diagram of the framework of an encoder provided in an embodiment of the present application, and Figure 14 is a schematic diagram of the framework of an encoder provided in an embodiment of the present application. As shown in Figure 13, the framework can be a VDMC encoding framework, and the data trimming module of the embodiment of the present application is applied at the position shown in the bold box in Figure 13. As shown in Figure 14, the framework is an optimization for the VDMC encoding framework, and the data trimming module of the embodiment of the present application is applied at the position shown in the bold box in Figure 14. In other words, the encoding method of the embodiment of the present application can be applied to the VDMC encoding framework, and can also be applied to the optimization of the VDMC encoding framework, without any limitation here.

[0278] In one possible implementation, taking FIG13 as an example, the technical solution proposed in the embodiment of the present application is mainly applied to the process of deformed mesh reconstruction at the encoding end. The entire application process will be described in detail below.

[0279] (1) Grid simplification.

[0280] Mesh simplification involves simplifying the original input mesh into a base mesh with a relatively small number of points and faces, while preserving the original mesh's shape as much as possible. The key to mesh simplification lies in the simplification operation and the corresponding error metric. A possible mesh simplification operation, shown in Figure 15, merges the vertices at the ends of an edge into a single vertex and deletes the connection between them. This process is repeated throughout the mesh according to a specific rule to reduce the number of faces and vertices to the target value.

[0281] During the simplification process, a specific error metric can be selected to optimize the simplified result. For example, the error metric for a vertex can be the sum of the coefficients of the equations of all adjacent faces. The error metric for an edge can be the sum of the error metrics of the two vertices on the edge. In other words, the error resulting from merging an edge is the sum of the distances from the merged vertex to all adjacent faces of the original two vertices on the edge.

[0282] After determining the simplification operation and the corresponding error metric, the mesh simplification process begins iteratively. First, the vertex errors of the original mesh are calculated to obtain the error for each edge. Edges are then sorted from smallest to largest error, and the edge with the smallest error is merged each time. Simultaneously, the positions of the merged vertices are calculated, and the errors of all edges associated with the merged vertices are updated. This means that the order of edge arrangement is updated to ensure that each iteration is based on a global error metric. Through iteration, the mesh faces are simplified to the number required for lossy encoding.

[0283] (2) Grid parameterization.

[0284] 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. Texture coordinate generation can be done by mesh parameterization, among other methods. Numerous algorithms exist for mesh parameterization, such as the Isocharts algorithm, which uses spectral analysis to implement stretch-driven 3D mesh parameterization. The 3D mesh is then UV-unwrapped, tiled, and packed into a 2D texture domain.

[0285] (3) Subdivision deformation.

[0286] The subdivision deformation module is an optional module that can improve the quality of the mesh reconstructed by the decoder. It can be omitted when the base mesh quality can meet the application requirements.

[0287] The basic idea of ​​the subdivision deformation module is shown in Figure 16. The same concept is applied to the input 3D mesh to generate displacement vector information. In Figure 16, the input 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, a geometric displacement vector (indicated by the arrows in Figure 16) 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.

[0288] (4) Basic grid compression.

[0289] In this framework, the base mesh compression module encodes the base mesh output by the subdivision deformation module. The base mesh encoder used by this module is replaceable. The encoder only needs to specify the identifier of the base mesh encoder to be used, so that the decoder can use the corresponding base mesh decoder for decoding. For example, Figure 17 is a schematic diagram of the composition of a DRACO encoding framework provided in an embodiment of the present application.

[0290] A basic mesh encoder, DRACO, is provided here. DRACO's main approach to compressing static meshes is to use connectivity-driven mesh compression. It traverses all faces of a mesh in a specific manner, labels each face according to specific rules, and encodes the labels of all traversed faces, effectively encoding the mesh's connectivity. It then encodes all vertex coordinates and associated vertex attribute information in the order in which the connectivity relationships were traversed. The encoding framework is shown in Figure 17.

[0291] The DRACO mesh encoding process involves generating connections between the input mesh based on its geometric information, specifically the connections between vertices in three-dimensional space. After constructing these connections, an initial face is selected to begin traversing all faces of the current mesh, generating symbols. This traversal uses the Edgebreaker algorithm, which categorizes the corner triangles into five modes, as shown in Figure 18.

[0292] The five modes also define the direction of traversing the next face after traversing the current face. According to the above traversal method, corresponding symbols are generated for each face defined by the current mesh geometry information, and then these symbols are entropy encoded to obtain a code stream of the connection relationship defined by the current mesh geometry information. At the same time, traversing each face also obtains the order of traversing the corresponding vertices, and the vertex order is passed to the geometry information encoder, which is rearranged in the order of traversal and quantized according to a predetermined quantization parameter, and then predicted. The prediction adopts a parallelogram prediction method, and a variety of parallelogram prediction methods are provided here, as shown in Figures 19A, 19B and 19C. Among them, the prediction method includes single parallelogram prediction (as shown in Figure 19A), multi-parallelogram prediction (as shown in Figure 19B) and weighted parallelogram prediction (as shown in Figure 19C). Finally, the predicted geometric coordinate residual is entropy encoded.

[0293] Attribute information, or texture coordinates, also has a connection relationship. When traversing this connection relationship, the difference between the attribute information and the geometric information is compared and the difference, also known as boundary information, is encoded. Similar to the encoding of geometric information, after determining the order of attribute information traversal, the attribute information is quantized, predicted, and entropy encoded in the same manner to produce the attribute information encoded bitstream. Finally, the various bitstream components are combined to produce the final encoded bitstream.

[0294] (5) Displacement generation.

[0295] This module first subdivides the reconstructed base mesh. Any subdivision scheme can be chosen; one possible scheme is the midpoint subdivision scheme, which subdivides each triangle into four subtriangles at each iteration, as shown in Figure 20. After the subdivision operation, there is a one-to-one correspondence between the vertices of the subdivided mesh and the vertices of the deformed mesh. This vertex correspondence is used to calculate a displacement vector for each subdivided mesh vertex to the corresponding vertex in the deformed mesh, generating displacement information.

[0296] (6) Displacement processing and encoding.

[0297] After generating displacement information, there are several ways to encode it. One approach involves transforming the coordinate system of the displacement. Specifically, the coordinate system of each vertex's displacement is converted to a coordinate system constructed using the vertex's normal vector and two components tangent to that normal vector. The displacement is then transformed using techniques such as wavelet transforms. The transformed coefficients are quantized and arranged in the image in scan order, and video encoding is applied to the image. Alternatively, entropy coding can be used to directly encode the generated or processed displacements.

[0298] (7) Reconstruction of deformed mesh.

[0299] Since the quantization process in the displacement encoding stage causes a certain loss of displacement, it is necessary to reconstruct the displacement information at the encoding end to keep it consistent with the decoding end. After obtaining the reconstructed displacement information, the reconstructed base mesh is subdivided and the reconstructed deformed mesh is obtained according to the corresponding displacement information. The reconstructed deformed mesh is then input into the data clipping module, which performs a clipping operation on the geometric coordinates of the reconstructed deformed mesh. The specific process is shown in Figure 8 above. For each vertex of the reconstructed deformed mesh, first determine whether its geometric coordinates are less than the preset minimum value P. min If yes, then let the vertex geometric coordinates be equal to the preset minimum value. Otherwise, determine whether the vertex geometric coordinates are greater than the preset maximum value P max If yes, then let the vertex geometric coordinates equal to the preset maximum value; otherwise, do not perform any operation and directly output the result. minThere are many ways to determine it, such as equal to 0; equal to the minimum value of the input mesh vertex geometric coordinates (in this case, this value needs to be transmitted to the decoding end). max There are many ways to determine , such as by calculating it according to formula (3). bitDepth represents the bit depth of the geometric coordinates of the reconstructed deformed mesh vertices; it is equal to the maximum geometric coordinates of the input mesh vertices (in this case, this value needs to be transmitted to the decoder). After data cropping, the cropped reconstructed deformed mesh is passed to the texture map conversion module.

[0300] (8) Texture image conversion and encoding.

[0301] It should be noted that the texture map conversion module first performs texture map conversion based on the input original mesh, the input original texture map and the reconstructed deformed mesh, as shown in Figure 21. Here, in conjunction with Figure 21, the texture map conversion steps may include:

[0302] Step a: Calculate the texture coordinates of each pixel on the texture map to be generated, for example, the texture coordinates corresponding to pixel A(i,j) are P(u,v).

[0303] Step b: determine whether the texture coordinate is within a certain triangular face after the parameterization of the subdivided deformed mesh.

[0304] In step c, if the texture coordinate does not belong to any triangle, the pixel is marked as an empty pixel, which can then be filled using a filling algorithm.

[0305] In step d, if the texture coordinate belongs to a triangle, perform the following operations:

[0306] ●Mark the pixel as filled.

[0307] ●Calculate the center of gravity coordinates of the texture in the current triangle based on the texture coordinates.

[0308] ●Based on 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 deformed grid corresponding to the texture coordinates, as shown by M(x,y,z) in the figure.

[0309] ●Find the point on the input original grid that is closest to the three-dimensional coordinate, as shown in the figure as M'(x,y,z).

[0310] ●Calculate the centroid coordinates of the three-dimensional coordinates based on the triangle surface they are on and map them to two dimensions to calculate their texture coordinates, namely P'(u',v').

[0311] ●Sampling is performed on the input original texture map using the texture coordinates to obtain the value A'(i',j') of the corresponding pixel position.

[0312] ●Assign this value to the corresponding pixel A(i,j) on the texture map to be generated.

[0313] In addition, for empty pixels, existing filling algorithms (such as Push-Pull algorithm) can be used to fill these empty pixels.

[0314] It should also be noted that Figure 22 is a schematic diagram of the framework of a decoder provided in an embodiment of the present application, and Figure 23 is a schematic diagram of the framework of an encoder provided in an embodiment of the present application. As shown in Figure 22, the framework can be a VDMC decoding framework, and the data trimming module of the embodiment of the present application is represented by a bold frame in Figure 22. As shown in Figure 23, the framework is optimized for the VDMC decoding framework, and the data trimming module of the embodiment of the present application is also represented by a bold frame in Figure 23. In other words, the decoding method of the embodiment of the present application can be applied to the VDMC decoding framework, and can also be applied to the optimization of the VDMC decoding framework, without any limitation here.

[0315] In one possible implementation, taking FIG. 22 as an example, the technical solution proposed in the embodiment of the present application is mainly applied at the decoding end in the process of deformed mesh reconstruction. The entire application process will be described in detail below.

[0316] (1) Basic grid decoding.

[0317] Here, the basic grid decoding module selects the basic grid decoder corresponding to the encoding end to decode the basic grid code stream to obtain a reconstructed basic grid.

[0318] (2) Subdivision.

[0319] Here, the subdivision module operation is the same as the subdivision operation at the encoding end.

[0320] (3) Displacement decoding and reconstruction.

[0321] Here, the displacement code stream can be decoded by a displacement decoder. If the encoder compresses the displacements using video coding, the decoder decodes them using the corresponding video decoder and restores them from the two-dimensional image in the corresponding order according to the permutation scheme. Then, inverse transformation and dequantization are performed to restore the displacements consistent with those at the encoder. If entropy coding is used, entropy decoding is performed directly, followed by subsequent reconstruction steps such as inverse transformation and dequantization.

[0322] (4) Deformed mesh reconstruction.

[0323] Here, the deformed mesh reconstruction step is to sequentially add the reconstructed displacement information to each vertex of the subdivided base mesh to obtain a reconstructed deformed mesh.

[0324] (5) Data trimming.

[0325] After the reconstructed deformed mesh is obtained, the reconstructed deformed mesh is input to the data clipping module, which performs a clipping operation on the geometric coordinates of the reconstructed deformed mesh. The specific process is shown in Figure 8 above. For each vertex of the reconstructed deformed mesh, first determine whether its geometric coordinates are less than the preset minimum value P. min If yes, then let the vertex geometric coordinates be equal to the preset minimum value. Otherwise, determine whether the vertex geometric coordinates are greater than the preset maximum value P max If yes, set the vertex geometric coordinates to the preset maximum value; otherwise, do not perform any operation and output the result directly. min There are many ways to determine it, such as equal to 0; equal to the minimum value of the geometric coordinates of the input mesh vertices (this value is obtained from the information transmitted from the encoding end to the decoding end). max There are many ways to determine , such as by calculating it according to formula (1). bitDepth represents the bit depth of the geometric coordinates of the reconstructed deformed mesh vertices; it is equal to the maximum geometric coordinates of the input mesh vertices (this value is obtained in the information transmitted from the encoder to the decoder). The final output is the cropped reconstructed deformed mesh, which is the mesh finally output by the decoder.

[0326] (6) Texture map decoding.

[0327] The texture decoder is responsible for decoding the texture stream. The texture is decoded by the video decoder. An optional color space conversion is performed on it to obtain an image format consistent with the input texture at the encoder, and the final decoded output texture is obtained.

[0328] In this way, after the processing of each module is completed, the deformed mesh and the corresponding attribute map reconstructed by the decoding end are finally obtained. Subsequent applications use the reconstructed deformed mesh and attribute map as input for processing.

[0329] It should also be noted that, in the embodiment of the present application, the code stream syntax structure proposed below for application to VDMC may be specifically described in detail based on whether the maximum and minimum value information of the geometric coordinates of the vertices are transmitted.

[0330] In a possible implementation, the maximum and minimum value information is not transmitted. For example, Table 1 provides a V-DMC extended syntax structure of an Atlas sequence parameter set (SPS).

[0331] Table 1

[0332] Asve_subdivision_method is used to indicate the subdivision method of the current grid sequence. Table 2 describes the corresponding relationship between the subdivision method and asve_subdivision_method.

[0333] Table 2

[0334] Asve_subdivision_iteration_count is used to indicate the number of mesh subdivision iterations. If not present, asve_subdivision_iteration_count is assumed to be 0. Asve_displacement_coordinate_system is used to indicate the coordinate system identifier of the current mesh sequence. Table 3 describes the correspondence between supported coordinate systems and asve_displacement_coordinate_system.

[0335] Table 3

[0336] When asve_1d_displacement_flag is 1, it indicates that only the normal (or x) component of the displacement is present in the compressed geometry video. The remaining two components are inferred to be 0. When asve_1D_displacement_flag = 0, it indicates that all three components of the displacement are present in the compressed geometry video. asve_transform_method is used to indicate the wavelet transform identifier applied to the displacement. Table 4 describes the correspondence between the supported wavelet transform methods and asve_transform_method.

[0337] Table 4

[0338] Among them, asve_geometry3d_bitdepth_minus1 plus 1 represents the bit depth of the mesh geometry coordinates.

[0339] In another possible implementation, the maximum value and minimum value information are transmitted. For example, Table 5 provides another V-DMC extended syntax structure of an Atlas sequence parameter set (SPS).

[0340] Table 5

[0341] Wherein, asve_subdivision_method is used to indicate the subdivision method of the current grid sequence. The above Table 2 describes the corresponding relationship between the subdivision method and asve_subdivision_method.

[0342] Here, asve_subdivision_iteration_count is used to indicate the number of mesh subdivision iterations. If it does not exist, the asve_subdivision_iteration_count value is assumed to be 0. asve_displacement_coordinate_system is used to indicate the coordinate system identifier of the current mesh sequence. Table 3 above describes the correspondence between the supported coordinate systems and asve_displacement_coordinate_system.

[0343] Here, when asve_1d_displacement_flag is equal to 1, it indicates that only the normal (or x) component of the displacement is present in the compressed geometry video. The other two components are inferred to be 0. When asve_1D_displacement_flag = 0, it indicates that all three components of the displacement are present in the compressed geometry video. asve_transform_method is used to indicate the identifier of the wavelet transform applied to the displacement. Table 4 above describes the correspondence between the supported wavelet transform methods and asve_transform_method.

[0344] Here, asve_geometry3d_bitdepth_minus1 plus 1 represents the bit depth of the mesh geometry coordinates.

[0345] Here, asve_minimum_vertex_geometry_coordinates represents the minimum value of the vertex geometry coordinates of the mesh sequence. asve_maximum_vertex_geometry_coordinates represents the maximum value of the vertex coordinates of the mesh sequence.

[0346] In another possible implementation, the maximum value and minimum value information are transmitted. For example, Table 6 provides a V-DMC extended syntax structure of an Atlas frame parameter set (Frame Parameter Set, FPS).

[0347] Table 6

[0348] Here, afve_overriden_flag is equal to 1, indicating that parameters such as afve_subdivision_enable_flag and afve_geometry_coordinates_enable_flag exist in the atlas frame parameter set extension.

[0349] Here, afve_subdivision_enable_flag is equal to 1 to indicate the presence of afve_subdivision_method and afve_subdivision_iteration_count in the atlas frame parameter set extension. When afve_subdivision_enable_flag is not present, its value is inferred to be 0.

[0350] Here, afve_geometry_coordinates_enable_flag is equal to 1 to indicate the presence of afve_minimum_vertex_geometry_coordinates and afve_maximum_vertex_geometry_coordinates in the atlas frame parameter set extension. When afve_geometry_coordinates_enable_flag is not present, its value is inferred to be equal to 0.

[0351] Here, afve_subdivision_method indicates the subdivision method for the current frame. When afve_subdivision_method is not present, afve_subdivision_method is equal to asve_subdivision_method. afve_subdivision_iteration_count indicates the number of subdivision iterations. When afve_subdivision_method is 0 and afve_subdivision_iteration_count is not present, afve_subdivision_iteration_count is 0. When afve_subdivision_method is not 0 and afve_subdivision_iteration_count is not present, afve_subdivision_iteration_count is equal to asve_subdivision_iteration_count.

[0352] Here, afve_minimum_vertex_geometry_coordinates is used to indicate the minimum value of the mesh vertex coordinates in the current frame. When afve_minimum_vertex_geometry_coordinates does not exist, afve_minimum_vertex_geometry_coordinates is equal to asve_minimum_vertex_geometry_coordinates. afve_maximum_vertex_geometry_coordinates is used to indicate the maximum value of the mesh vertex coordinates in the current frame. When afve_maximum_vertex_geometry_coordinates does not exist, afve_maximum_vertex_geometry_coordinates is equal to asve_maximum_vertex_geometry_coordinates.

[0353] In the embodiments of the present application, the specific implementation of the aforementioned embodiments is described in detail through the above embodiments. It can be seen that according to the technical solutions of the aforementioned embodiments, a mesh reconstruction solution is proposed here, and the proposed solution can be used to prevent the overflow of various data information of the reconstructed mesh vertices. Specifically, a data clipping solution based on maximum and minimum values ​​is proposed to solve the data overflow problem; in addition, the present technical solution is applied to the VDMC framework to prevent the overflow of the coordinates of the reconstructed deformed mesh vertices. In addition, a grammatical structure applied to VDMC is designed for the present technical solution. It can be seen that the existing VDMC framework only has an anomaly detection mechanism for the overflow of the geometric coordinate data of the reconstructed basic mesh vertices, and does not formulate a specific solution for data overflow. The mesh reconstruction solution proposed in the embodiments of the present application can effectively prevent the overflow of various related information of the reconstructed mesh vertices. The data clipping module can be used in the VDMC framework as a solution for the overflow of the coordinates of the reconstructed deformed mesh vertices, which can improve the completeness of the framework and improve the encoding and decoding performance.

[0354] In another embodiment of the present application, based on the same inventive concept as the above embodiment, FIG24 is a schematic diagram of the structure of an encoder provided in the embodiment of the present application. As shown in FIG24 , the encoder 240 may include a first determining unit 2401 and a first cropping unit 2402;

[0355] A first determining unit 2401 is configured to determine a reconstructed mesh of a current image, where the reconstructed mesh includes at least one vertex;

[0356] The first clipping unit 2402 is configured to clip vertex information of at least one vertex, determine the clipped information of at least one vertex, and update and reconstruct the mesh according to the clipped information of at least one vertex; wherein the clipped information of at least one vertex satisfies a preset value range.

[0357] In some embodiments, the clipped information of at least one vertex satisfies a preset value range, including: the clipped information of at least one vertex is greater than or equal to a preset minimum value and less than or equal to a preset maximum value.

[0358] In some embodiments, the vertex information includes at least one of the following: geometric coordinate information, normal vector information, reflectivity information, and UV coordinate information.

[0359] In some embodiments, the first cropping unit 2402 is further configured to set the cropped information of the first vertex to be equal to the preset minimum value when the vertex information of the first vertex is less than the preset minimum value; and to set the cropped information of the first vertex to be equal to the preset maximum value when the vertex information of the first vertex is greater than the preset minimum value; wherein the first vertex is any one of the at least one vertex.

[0360] In some embodiments, the first clipping unit 2402 is further configured to set the clipped information of the first vertex to be equal to the vertex information of the first vertex when the vertex information of the first vertex is greater than or equal to a preset minimum value and less than or equal to a preset maximum value.

[0361] In some embodiments, the first determining unit 2401 is further configured to set the preset minimum value as the first constant.

[0362] In some embodiments, the first determining unit 2401 is further configured to set the preset maximum value as a second constant.

[0363] In some embodiments, the first determining unit 2401 is further configured to determine a bit depth of the current image; and perform a bit depth shift calculation on the first value to determine a preset maximum value.

[0364] In some embodiments, referring to FIG. 24 , the encoder 240 may further include an encoding unit 2403, wherein: the first determination unit 2401 is further configured to determine a value of the first syntax element according to the bit depth of the current image; and the encoding unit 2403 is configured to perform encoding processing on the value of the first syntax element and write the obtained encoded bits into the bitstream.

[0365] In some embodiments, the first determining unit 2401 is further configured to determine a minimum value of the frame-level mesh vertices of the current image; and set the preset minimum value to be equal to the minimum value of the frame-level mesh vertices of the current image.

[0366] In some embodiments, the first determination unit 2401 is further configured to determine the value of the second syntax element based on the minimum value of the frame-level grid vertices of the current image; the encoding unit 2403 is further configured to encode the value of the second syntax element and write the obtained encoding bits into the bitstream.

[0367] In some embodiments, the first determining unit 2401 is further configured to determine a maximum value of frame-level mesh vertices of the current image; and set the preset maximum value to be equal to the maximum value of frame-level mesh vertices of the current image.

[0368] In some embodiments, the first determination unit 2401 is further configured to determine the value of the third syntax element based on the maximum value of the frame-level mesh vertices of the current image; the encoding unit 2403 is further configured to encode the value of the third syntax element and write the obtained encoding bits into the bitstream.

[0369] In some embodiments, the first determination unit 2401 is further configured to determine a value of a fourth syntax element; wherein the fourth syntax element is used to indicate whether the second syntax element and the third syntax element exist in the frame parameter set extension of the current image; the encoding unit 2403 is further configured to encode the value of the fourth syntax element and write the obtained coded bits into the bitstream.

[0370] In some embodiments, the first determination unit 2401 is further configured to, when a second syntax element and a third syntax element exist in the frame parameter set extension of the current image, perform the steps of determining a value of the second syntax element and determining a value of the third syntax element.

[0371] In some embodiments, the first determining unit 2401 is further configured to determine a minimum value of sequence-level mesh vertices of the current image; and set the preset minimum value to be equal to the minimum value of sequence-level mesh vertices of the current image.

[0372] In some embodiments, the first determination unit 2401 is further configured to determine the value of the fifth syntax element based on the minimum value of the sequence-level mesh vertices of the current image; the encoding unit 2403 is further configured to encode the value of the fifth syntax element and write the obtained encoding bits into the bitstream.

[0373] In some embodiments, the first determining unit 2401 is further configured to determine a maximum value of sequence-level mesh vertices of the current image; and set the preset maximum value to be equal to the maximum value of sequence-level mesh vertices of the current image.

[0374] In some embodiments, the first determination unit 2401 is further configured to determine the value of the sixth syntax element based on the maximum value of the sequence-level mesh vertices of the current image; the encoding unit 2403 is further configured to encode the value of the sixth syntax element and write the obtained encoding bits into the bitstream.

[0375] In some embodiments, referring to FIG24 , the encoder 240 may further include a first subdivision unit 2404, wherein: the first determination unit 2401 is further configured to determine a base grid of the current image; the first subdivision unit 2404 is configured to subdivide the base grid to determine a subdivided grid of the current image; the first determination unit 2401 is further configured to determine displacement information of the subdivided grid; and a reconstructed grid is determined based on the subdivided grid and the displacement information.

[0376] In some embodiments, the first determining unit 2401 is further configured to determine an input grid of the current image; and perform downsampling processing on the input grid to determine a base grid of the current image.

[0377] In some embodiments, the encoding unit 2403 is further configured to perform encoding processing on the basic grid of the current image and write the obtained encoding bits into the bitstream.

[0378] In some embodiments, the first subdivision unit 2404 is further configured to determine a grid subdivision parameter of the current image; and iteratively divide the basic grid according to the grid subdivision parameter to determine a subdivided grid of the current image.

[0379] In some embodiments, the mesh subdivision parameters include: subdivision method and subdivision iteration number.

[0380] In some embodiments, the first determining unit 2401 is further configured to determine a value of the seventh syntax element according to the subdivision method; the encoding unit 2403 is further configured to encode the value of the seventh syntax element and write the obtained coded bits into the bitstream.

[0381] In some embodiments, the first determining unit 2401 is further configured to determine the value of the eighth syntax element according to the number of subdivision iterations; the encoding unit 2403 is further configured to encode the value of the eighth syntax element and write the obtained coded bits into the bitstream.

[0382] In some embodiments, the first determination unit 2401 is further configured to deform multiple segments of the subdivided mesh to determine the deformed mesh; and perform corresponding displacement calculations on at least one vertex of the deformed mesh and at least one vertex of the subdivided mesh to determine the displacement information of at least one vertex to obtain the displacement information of the subdivided mesh.

[0383] In some embodiments, the encoding unit 2403 is further configured to encode the displacement information of the subdivided grid and write the obtained encoding bits into the bitstream.

[0384] In some embodiments, the first determining unit 2401 is further configured to perform a corresponding displacement operation on at least one vertex of the subdivided mesh according to the displacement information to obtain a reconstructed mesh.

[0385] It is understandable that in the embodiments of the present application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and of course it can also be a module, or it can be non-modular. Moreover, the various components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional modules.

[0386] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, or the portion that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

[0387] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 240. The computer-readable storage medium stores a computer program, and when the computer program is executed by the first processor, it implements the method described in any one of the aforementioned embodiments.

[0388] Based on the composition of the encoder 240 and the computer-readable storage medium, Figure 25 is a schematic diagram of the specific hardware structure of an encoder provided in an embodiment of the present application. As shown in Figure 25, the encoder 240 may include: a first communication interface 2501, a first memory 2502 and a first processor 2503; each component is coupled together through a first bus system 2504. It can be understood that the first bus system 2504 is used to achieve connection and communication between these components. In addition to the data bus, the first bus system 2504 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as the first bus system 2504 in Figure 25. Among them,

[0389] The first communication interface 2501 is used to receive and send signals when sending and receiving information with other external network elements;

[0390] A first memory 2502 is used to store computer programs that can be run on the first processor 2503;

[0391] The first processor 2503 is configured to, when running the computer program, execute:

[0392] Determine a reconstructed mesh of the current image, where the reconstructed mesh includes at least one vertex; crop vertex information of the at least one vertex, determine cropped information of the at least one vertex, and update the reconstructed mesh based on the cropped information of the at least one vertex; wherein the cropped information of the at least one vertex satisfies a preset value range.

[0393] It is understood that the first memory 2502 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can 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 can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The first memory 2502 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0394] The first processor 2503 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits or software instructions in the first processor 2503. The above-mentioned first processor 2503 can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The various methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the first memory 2502 , and the first processor 2503 reads the information in the first memory 2502 and completes the steps of the above method in combination with its hardware.

[0395] It is to be understood that these embodiments described in the present application can be implemented with hardware, software, firmware, middleware, microcode or its combination.For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable logic device (Programmable Logic Device, PLD), field programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller, microprocessor, other electronic units for performing functions described in the present application or its combination.For software implementation, the technology described in the present application can be realized by the module (such as process, function etc.) that performs functions described in the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.

[0396] Optionally, as another embodiment, the first processor 2503 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.

[0397] This embodiment provides an encoder that clips vertex information of a reconstructed mesh, effectively preventing overflow of various vertex-related information, thereby improving distortion of the reconstructed mesh. Furthermore, data clipping can be used within the VDMC framework as a solution to overflow of vertex coordinates, further improving the framework's integrity and, consequently, encoding and decoding performance.

[0398] In another embodiment of the present application, based on the same inventive concept as the above embodiment, FIG26 is a schematic diagram of the structure of a decoder provided in the embodiment of the present application. As shown in FIG26 , the decoder 260 may include a second determining unit 2601 and a second cropping unit 2602;

[0399] The second determining unit 2601 is configured to determine a reconstructed mesh of the current image, where the reconstructed mesh includes at least one vertex;

[0400] The second clipping unit 2602 is configured to clip vertex information of at least one vertex, determine the clipped information of at least one vertex, and update and reconstruct the mesh according to the clipped information of at least one vertex; wherein the clipped information of at least one vertex satisfies a preset value range.

[0401] In some embodiments, the clipped information of at least one vertex satisfies a preset value range, including: the clipped information of at least one vertex is greater than or equal to a preset minimum value and less than or equal to a preset maximum value.

[0402] In some embodiments, the vertex information includes at least one of the following: geometric coordinate information, normal vector information, reflectivity information, and UV coordinate information.

[0403] In some embodiments, the second cropping unit 2602 is further configured to set the cropped information of the first vertex to be equal to the preset minimum value when the vertex information of the first vertex is less than the preset minimum value; and to set the cropped information of the first vertex to be equal to the preset maximum value when the vertex information of the first vertex is greater than the preset minimum value; wherein the first vertex is any one of the at least one vertex.

[0404] In some embodiments, the second clipping unit 2602 is further configured to set the clipped information of the first vertex to be equal to the vertex information of the first vertex when the vertex information of the first vertex is greater than or equal to a preset minimum value and less than or equal to a preset maximum value.

[0405] In some embodiments, the second determining unit 2601 is further configured to set the preset minimum value as the first constant.

[0406] In some embodiments, the second determining unit 2601 is further configured to set the preset maximum value as a second constant.

[0407] In some embodiments, the second determining unit 2601 is further configured to determine a bit depth of the current image; and perform a bit depth shift calculation on the first value to determine a preset maximum value.

[0408] In some embodiments, referring to FIG. 26 , the decoder 260 may further include a decoding unit 2603 configured to decode the code stream and determine the value of the first syntax element; and a second determination unit 2601 further configured to determine the bit depth of the current image according to the value of the first syntax element.

[0409] In some embodiments, the decoding unit 2603 is further configured to decode the code stream and determine the value of the second syntax element; the second determination unit 2601 is further configured to determine a preset minimum value based on the value of the second syntax element when the second syntax element indicates the minimum value of the frame-level grid vertex of the current image.

[0410] In some embodiments, the decoding unit 2603 is further configured to decode the code stream and determine the value of the third syntax element; the second determination unit 2601 is further configured to determine a preset maximum value based on the value of the third syntax element when the third syntax element indicates the maximum value of the frame-level mesh vertices of the current image.

[0411] In some embodiments, the decoding unit 2603 is further configured to decode the code stream and determine the value of the fourth syntax element; the second determination unit 2601 is further configured to, when the fourth syntax element indicates that the second syntax element and the third syntax element are present in the frame parameter set extension of the current image, perform the steps of decoding the code stream and determining the value of the second syntax element; and decoding the code stream and determining the value of the third syntax element.

[0412] In some embodiments, the decoding unit 2603 is further configured to decode the code stream and determine the value of the fifth syntax element; the second determination unit 2601 is further configured to, when the fifth syntax element indicates the minimum value of the sequence-level mesh vertex of the current image, if the second syntax element does not exist in the frame parameter set extension of the current image, determine the preset minimum value according to the value of the fifth syntax element.

[0413] In some embodiments, the decoding unit 2603 is further configured to decode the code stream and determine the value of the sixth syntax element; the second determination unit 2601 is further configured to, when the sixth syntax element indicates the maximum value of the sequence-level mesh vertices of the current image, if the third syntax element does not exist in the frame parameter set extension of the current image, determine the preset maximum value according to the value of the sixth syntax element.

[0414] In some embodiments, referring to FIG. 26 , the decoder 260 may further include a second subdivision unit 2604, wherein: the decoding unit 2603 is further configured to decode the code stream to determine the base grid of the current image; the second subdivision unit 2604 is configured to subdivide the base grid to determine the subdivided grid of the current image; the decoding unit 2603 is further configured to decode the code stream to determine the displacement information of the subdivided grid; and the second determination unit 2601 is further configured to determine the reconstructed grid based on the subdivided grid and the displacement information.

[0415] In some embodiments, the second subdivision unit 2604 is further configured to determine a grid subdivision parameter of the current image; and iteratively divide the basic grid according to the grid subdivision parameter to determine a subdivided grid of the current image.

[0416] In some embodiments, the mesh subdivision parameters include: subdivision method and subdivision iteration number.

[0417] In some embodiments, the decoding unit 2603 is further configured to decode the code stream and determine the value of the seventh syntax element; the second determining unit 2601 is further configured to determine the subdivision method according to the value of the seventh syntax element.

[0418] In some embodiments, the decoding unit 2603 is further configured to decode the code stream and determine the value of the eighth syntax element; the second determining unit 2601 is further configured to determine the number of subdivision iterations according to the value of the eighth syntax element.

[0419] In some embodiments, the second determining unit 2601 is further configured to perform a corresponding displacement operation on at least one vertex of the subdivided mesh according to the displacement information to obtain a reconstructed mesh.

[0420] It is understood that in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular system. Furthermore, the various components in this embodiment can be integrated into a single processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The aforementioned integrated units can be implemented in the form of hardware or software functional modules.

[0421] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, this embodiment provides a computer-readable storage medium for use in decoder 260. The computer-readable storage medium stores a computer program that, when executed by a second processor, implements any of the methods described in the aforementioned embodiments.

[0422] Based on the composition of the decoder 260 and the computer-readable storage medium, Figure 27 is a schematic diagram of the specific hardware structure of a decoder provided in an embodiment of the present application. As shown in Figure 27, the decoder 260 may include: a second communication interface 2701, a second memory 2702 and a second processor 2703; each component is coupled together through a second bus system 2704. It can be understood that the second bus system 2704 is used to achieve connection and communication between these components. In addition to the data bus, the second bus system 2704 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as the second bus system 2704 in Figure 27. Among them,

[0423] The second communication interface 2701 is used to receive and send signals when sending and receiving information with other external network elements;

[0424] The second memory 2702 is used to store computer programs that can be run on the second processor 2703;

[0425] The second processor 2703 is configured to, when running the computer program, execute:

[0426] Determine a reconstructed mesh of the current image, where the reconstructed mesh includes at least one vertex; crop vertex information of the at least one vertex, determine cropped information of the at least one vertex, and update the reconstructed mesh based on the cropped information of the at least one vertex; wherein the cropped information of the at least one vertex satisfies a preset value range.

[0427] Optionally, as another embodiment, the second processor 2703 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.

[0428] It can be understood that the hardware functions of the second memory 2702 are similar to those of the first memory 2502, and the hardware functions of the second processor 2703 are similar to those of the first processor 2503; they will not be described in detail here.

[0429] This embodiment provides a decoder that clips vertex information of a reconstructed mesh, effectively preventing overflow of various vertex-related information, thereby improving distortion of the reconstructed mesh. Furthermore, data clipping can be used within the VDMC framework as a solution to overflow of vertex coordinates, further improving the framework's integrity and, consequently, encoding and decoding performance.

[0430] In yet another embodiment of the present application, referring to FIG28 , a schematic diagram of the structure of a coding and decoding system provided by an embodiment of the present application is shown. As shown in FIG28 , the coding and decoding system 280 may include an encoder 2801 and a decoder 2802 .

[0431] In the embodiment of the present application, the encoder 2801 may be the encoder described in any one of the aforementioned embodiments, and the decoder 2802 may be the decoder described in any one of the aforementioned embodiments.

[0432] It should be noted that, in this application, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or apparatus comprising the element.

[0433] The serial numbers of the above embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.

[0434] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.

[0435] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.

[0436] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.

[0437] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims. Industrial Applicability

[0438] In an embodiment of the present application, whether it is the encoding end or the decoding end, the reconstructed mesh of the current image is determined, and the reconstructed mesh includes at least one vertex; then the vertex information of the at least one vertex is cropped, the cropped information of the at least one vertex is determined, and the reconstructed mesh is updated according to the cropped information of the at least one vertex; wherein the cropped information of the at least one vertex satisfies the preset numerical range. In other words, by cropping the vertex information of the reconstructed mesh, it is possible to effectively prevent the overflow of various types of relevant information of the reconstructed mesh vertices, thereby improving the distortion problem of the reconstructed mesh. In addition, using data cropping as a solution to the overflow of the coordinates of the reconstructed mesh vertices in the VDMC framework can also improve the completeness of the framework, thereby improving the encoding and decoding performance.

Claims

1. A decoding method, applied to a decoder, the method comprising: Determining a reconstructed grid of a current image, the reconstructed grid including at least one vertex; Clipping vertex information of the at least one vertex, determining clipped information of the at least one vertex, and updating the reconstructed grid according to the clipped information of the at least one vertex; wherein the clipped information of the at least one vertex all satisfies a preset numerical range.

2. The method according to claim 1, wherein, The clipped information of the at least one vertex satisfying the preset numerical range includes: the clipped information of the at least one vertex is greater than or equal to a preset minimum value and less than or equal to a preset maximum value.

3. The method according to claim 1, wherein, The vertex information at least includes one of the following: geometric coordinate information, normal vector information, reflectivity information, and UV coordinate information.

4. The method according to claim 1, wherein, The clipping the vertex information of the at least one vertex and determining the clipped information of the at least one vertex includes: When the vertex information of a first vertex is less than the preset minimum value, setting the clipped information of the first vertex to be equal to the preset minimum value; When the vertex information of a first vertex is greater than the preset minimum value, setting the clipped information of the first vertex to be equal to the preset maximum value; wherein the first vertex is any one of the at least one vertex.

5. The method according to claim 4, wherein, The method further includes: When the vertex information of a first vertex is greater than or equal to the preset minimum value and less than or equal to the preset maximum value, setting the clipped information of the first vertex to be equal to the vertex information of the first vertex.

6. The method according to claim 2, 4 or 5, wherein The method further includes: Setting the preset minimum value to a first constant.

7. The method according to claim 2, 4 or 5, wherein The method further includes: Setting the preset maximum value to a second constant.

8. The method according to claim 2, 4 or 5, wherein The method further includes: Determining the bit depth of the current image; Performing a shift calculation of the bit depth on a first value to determine the preset maximum value.

9. The method according to claim 8, wherein The determining the bit depth of the current image includes: Decoding a bitstream to determine a value of a first syntax element; Determining the bit depth of the current image according to the value of the first syntax element.

10. The method according to claim 2, 4 or 5, wherein The method further includes: Decoding a bitstream to determine a value of a second syntax element; When the second syntax element indicates a minimum value of frame-level grid vertices of the current image, determining the preset minimum value according to the value of the second syntax element.

11. The method according to claim 2, 4 or 5, wherein The method further includes: Decoding a bitstream to determine a value of a third syntax element; When the third syntax element indicates a maximum value of frame-level grid vertices of the current image, determining the preset maximum value according to the value of the third syntax element.

12. The method according to claim 10 or 11, wherein The method further includes: Decoding a bitstream to determine a value of a fourth syntax element; When the fourth syntax element indicates that there are a second syntax element and a third syntax element in a frame parameter set extension of the current image, performing steps of decoding a bitstream to determine a value of the second syntax element; and decoding a bitstream to determine a value of the third syntax element.

13. The method according to claim 10, wherein, The method further includes: Decoding a bitstream to determine a value of a fifth syntax element; When the fifth syntax element indicates the minimum value of the sequence-level grid vertices of the current image, if the second syntax element does not exist in the frame parameter set extension of the current image, the preset minimum value is determined according to the value of the fifth syntax element.

14. The method according to claim 10, wherein The method further includes: Decoding a bitstream to determine the value of a sixth syntax element; When the sixth syntax element indicates the maximum value of the sequence-level grid vertices of the current image, if the third syntax element does not exist in the frame parameter set extension of the current image, the preset maximum value is determined according to the value of the sixth syntax element.

15. The method according to any one of claims 1 to 14, wherein The determining of the reconstructed grid of the current image includes: Decoding a bitstream to determine the base grid of the current image; Subdividing the base grid to determine the subdivided grid of the current image; Decoding a bitstream to determine the displacement information of the subdivided grid; Determining the reconstructed grid according to the subdivided grid and the displacement information.

16. The method according to claim 15, wherein The subdividing of the base grid to determine the subdivided grid of the current image includes: Determining the grid subdivision parameters of the current image; Iteratively dividing the base grid according to the grid subdivision parameters to determine the subdivided grid of the current image.

17. The method according to claim 16, wherein, The grid subdivision parameters include: a subdivision method and a number of subdivision iterations.

18. The method according to claim 17, wherein The method further includes: Decoding a bitstream to determine the value of a seventh syntax element; Determining the subdivision method according to the value of the seventh syntax element.

19. The method according to claim 17, wherein The method further includes: Decoding a bitstream to determine the value of an eighth syntax element; Determining the number of subdivision iterations according to the value of the eighth syntax element.

20. The method according to claim 15, wherein, The determining of the reconstructed grid according to the subdivided grid and the displacement information includes: Performing a corresponding displacement operation on at least one vertex of the subdivided grid according to the displacement information to obtain the reconstructed grid.

21. An encoding method, applied to an encoder, the method includes: Determining a reconstructed grid of a current image, the reconstructed grid including at least one vertex; Clipping the vertex information of the at least one vertex to determine the clipped information of the at least one vertex, and updating the reconstructed grid according to the clipped information of the at least one vertex; wherein, the clipped information of the at least one vertex all satisfies a preset numerical range.

22. The method according to claim 21, wherein, The clipped information of the at least one vertex satisfying the preset numerical range includes: the clipped information of the at least one vertex is greater than or equal to a preset minimum value and less than or equal to a preset maximum value.

23. The method according to claim 21, wherein The vertex information at least includes one of the following: geometric coordinate information, normal vector information, reflectivity information, and UV coordinate information.

24. The method according to claim 21, wherein, The clipping of the vertex information of the at least one vertex to determine the clipped information of the at least one vertex includes: When the vertex information of a first vertex is less than the preset minimum value, setting the clipped information of the first vertex to be equal to the preset minimum value; When the vertex information of a first vertex is greater than the preset minimum value, setting the clipped information of the first vertex to be equal to the preset maximum value; Wherein, the first vertex is any one of the at least one vertex.

25. The method according to claim 24, wherein, The method further includes: When the vertex information of the first vertex is greater than or equal to the preset minimum value and less than or equal to the preset maximum value, set the cropped information of the first vertex to be equal to the vertex information of the first vertex.

26. The method according to claim 22, 24 or 25, wherein, The method further includes: Set the preset minimum value to a first constant.

27. The method according to claim 22, 24 or 25, wherein, The method further includes: Set the preset maximum value to a second constant.

28. The method according to claim 22, 24 or 25, wherein, The method further includes: Determine the bit depth of the current image; Perform a shift calculation of the bit depth on the first value to determine the preset maximum value.

29. The method according to claim 28, wherein, The method further includes: Determine the value of the first syntax element according to the bit depth of the current image; Perform encoding processing on the value of the first syntax element, and write the obtained encoded bits into the bitstream.

30. The method according to claim 22, 24 or 25, wherein, The method further includes: Determine the minimum value of the frame-level grid vertices of the current image; Set the preset minimum value to be equal to the minimum value of the frame-level grid vertices of the current image.

31. The method according to claim 30, wherein The method further includes: Determine the value of the second syntax element according to the minimum value of the frame-level grid vertices of the current image; Perform encoding processing on the value of the second syntax element, and write the obtained encoded bits into the bitstream.

32. The method according to claim 22, 24 or 25, wherein The method further includes: Determine the maximum value of the frame-level grid vertices of the current image; Set the preset maximum value to be equal to the maximum value of the frame-level grid vertices of the current image.

33. The method according to claim 32, wherein, The method further includes: Determine the value of the third syntax element according to the maximum value of the frame-level grid vertices of the current image; Perform encoding processing on the value of the third syntax element, and write the obtained encoded bits into the bitstream.

34. The method according to claim 31 or 33, wherein, The method further includes: Determine the value of the fourth syntax element; wherein, the fourth syntax element is used to indicate whether there are a second syntax element and a third syntax element in the frame parameter set extension of the current image; Perform encoding processing on the value of the fourth syntax element, and write the obtained encoded bits into the bitstream.

35. The method according to claim 34, wherein, The method further includes: When there are a second syntax element and a third syntax element in the frame parameter set extension of the current image, perform the steps of determining the value of the second syntax element and determining the value of the third syntax element.

36. The method according to claim 22, 24 or 25, wherein, The method further includes: Determine the minimum value of the sequence-level grid vertices of the current image; Set the preset minimum value to be equal to the minimum value of the sequence-level grid vertices of the current image.

37. The method according to claim 36, wherein, The method further includes: Determine the value of the fifth syntax element according to the minimum value of the sequence-level grid vertices of the current image; Perform encoding processing on the value of the fifth syntax element, and write the obtained encoded bits into the bitstream.

38. The method according to claim 22, 24 or 25, wherein The method further includes: Determine the maximum value of the sequence-level grid vertices of the current image; Set the preset maximum value to be equal to the maximum value of the sequence-level grid vertices of the current image.

39. The method according to claim 38, wherein, The method further includes: Determine the value of the sixth syntax element according to the maximum value of the sequence-level grid vertices of the current image; Perform encoding processing on the value of the sixth syntax element, and write the obtained encoded bits into the bitstream.

40. The method according to any one of claims 21 to 39, wherein, The determination of the reconstructed grid of the current image includes: Determine the base grid of the current image; Subdivide the base grid to determine the subdivided grid of the current image; Determine the displacement information of the subdivided grid; Determine the reconstructed grid according to the subdivided grid and the displacement information.

41. The method according to claim 40, wherein, The determining the base grid of the current image includes: Determine the input grid of the current image; Perform downsampling processing on the input grid to determine the base grid of the current image.

42. The method according to claim 40, wherein, The method further includes: Perform encoding processing on the base grid of the current image, and write the obtained encoded bits into the bitstream.

43. The method according to claim 40, wherein, The subdividing the base grid to determine the subdivided grid of the current image includes: Determine the grid subdivision parameters of the current image; Iteratively divide the base grid according to the grid subdivision parameters to determine the subdivided grid of the current image.

44. The method according to claim 43, wherein, The grid subdivision parameters include: subdivision method and number of subdivision iterations.

45. The method according to claim 44, wherein, The method further includes: Determine the value of the seventh syntax element according to the subdivision method; Perform encoding processing on the value of the seventh syntax element, and write the obtained encoded bits into the bitstream.

46. The method according to claim 44, wherein, The method further includes: Determine the value of the eighth syntax element according to the number of subdivision iterations; Perform encoding processing on the value of the eighth syntax element, and write the obtained encoded bits into the bitstream.

47. The method according to claim 40, wherein, The determining the displacement information of the subdivided grid includes: Deform multiple segments of the subdivided grid to determine a deformed grid; Perform corresponding displacement calculations on at least one vertex of the deformed grid and at least one vertex of the subdivided grid to determine the displacement information of the at least one vertex, so as to obtain the displacement information of the subdivided grid.

48. The method according to claim 40, wherein The method further includes: Perform encoding processing on the displacement information of the subdivided grid, and write the obtained encoded bits into the bitstream.

49. The method according to claim 40, wherein, The determining the reconstructed grid according to the subdivided grid and the displacement information includes: Perform corresponding displacement operations on at least one vertex of the subdivided grid according to the displacement information to obtain the reconstructed grid.

50. A bitstream, wherein, The bitstream is generated by bit encoding according to the information to be encoded; wherein, the information to be encoded includes at least one of the following: the base grid of the current image, the displacement information of the subdivided grid, the value of the first syntax element, the value of the second syntax element, the value of the third syntax element, the value of the fourth syntax element, the value of the fifth syntax element, the value of the sixth syntax element, the value of the seventh syntax element, and the value of the eighth syntax element.

51. An encoder includes a first determination unit and a first clipping unit, wherein: The first determination unit is configured to determine the reconstructed grid of the current image, and the reconstructed grid includes at least one vertex; The first clipping unit is configured to clip the vertex information of the at least one vertex to determine the clipped information of the at least one vertex, and update the reconstructed grid according to the clipped information of the at least one vertex; wherein, the clipped information of the at least one vertex all satisfies a preset numerical range.

52. An encoder includes a first memory and a first processor, wherein: The first memory is used to store a computer program that can run on the first processor; The first processor is configured to execute the method according to any one of claims 21 to 49 when running the computer program.

53. A decoder, comprising a second determination unit and a second clipping unit, wherein: The second determination unit is configured to determine a reconstructed grid of a current image, the reconstructed grid including at least one vertex; The second clipping unit is configured to clip vertex information of the at least one vertex, determine clipped information of the at least one vertex, and update the reconstructed grid according to the clipped information of the at least one vertex; wherein, the clipped information of the at least one vertex all satisfies a preset numerical range.

54. A decoder, the decoder comprising a second memory and a second processor, wherein: The second memory is used for storing a computer program capable of running on the second processor; The second processor is configured to execute the method according to any one of claims 1 to 20 when running the computer program.

55. A computer-readable storage medium, wherein, The computer-readable storage medium stores a computer program, and when the computer program is executed, it implements the method according to any one of claims 1 to 20, or implements the method according to any one of claims 21 to 49.