Coding method, decoding method, coders, decoders, bit stream, and storage medium

By performing binary operation on the symbol string of the three-dimensional grid, using the characteristics and syntax element indication of the symbol string, the problem of low coding efficiency of the three-dimensional grid connection information is solved, and more efficient coding is achieved.

WO2025152176A1PCT designated stage expired Publication Date: 2025-07-24GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/073342
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-19
Publication Date
2025-07-24

AI Technical Summary

Technical Problem

In the prior art, the coding efficiency of the connection information of a three-dimensional grid is limited by the problem of excessive number of binary values when representing a symbol string.

Method used

By performing binarization operations on the symbol string, it is determined that the connection information of the symbol string is used to represent the three-dimensional grid, and based on the characteristics of the symbol string, such as the symbol encoded after the symbol C is not symbol L or E, the number of bits of the binary value corresponding to the symbol string is reduced, or some symbols are indicated using syntax elements to improve encoding efficiency.

Benefits of technology

It improves the coding efficiency of three-dimensional grid connection information, reduces the amount of data during the encoding process, and improves the coding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024073342_24072025_PF_FP_ABST
    Figure CN2024073342_24072025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the embodiments of the present application are a coding method, a decoding method, coders, decoders, a bit stream, and a storage medium. The decoding method comprises: performing an inverse binarization operation on a binary value in a bit stream, and determining a symbol string, the symbol string being used for representing connection information of a three-dimensional mesh; and reconstructing the three-dimensional mesh on the basis of the symbol string.
Need to check novelty before this filing date? Find Prior Art

Description

Coding and decoding method, codec, code stream and storage medium Technical Field

[0001] The present application relates to the field of three-dimensional mesh coding and decoding technology, and in particular to a coding and decoding method, a codec, a code stream, and a storage medium. Background Art

[0002] Video dynamic mesh coding (V-DMC) requires encoding the connectivity information of a 3D mesh. Improving the coding efficiency of this connectivity information is a challenge that needs to be addressed.

[0003] Summary of the Invention

[0004] The embodiments of the present application provide a coding and decoding method, a codec, a bit stream, and a storage medium. The following introduces various aspects of the present application.

[0005] In a first aspect, a decoding method is provided, which is applied to a decoder, comprising: performing a debinarization operation on binary values ​​in a code stream to determine a symbol string, the symbol string being used to represent connection information of a three-dimensional grid; and reconstructing the three-dimensional grid based on the symbol string.

[0006] In a second aspect, an encoding method is provided, which is applied to an encoder, including: performing a binarization operation on a symbol string to determine a binary value, where the symbol string is used to represent connection information of a three-dimensional grid; and encoding the binary value.

[0007] According to a third aspect, a decoder is provided, comprising: a first decoding unit configured to perform a debinarization operation on the binary values ​​in the code stream to determine a symbol string, wherein the symbol string is used to represent connection information of a three-dimensional grid; and a second decoding unit configured to reconstruct the three-dimensional grid based on the symbol string.

[0008] In a fourth aspect, a decoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method of the first aspect when running the computer program.

[0009] In a fifth aspect, an encoder is provided, comprising: a first encoding unit configured to perform a binarization operation on a symbol string to determine a binary value, wherein the symbol string is used to represent connection information of a three-dimensional grid; and a second encoding unit configured to encode the binary value.

[0010] In a sixth aspect, an encoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method of the second aspect when running the computer program.

[0011] In a seventh aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, the method of the first aspect or the second aspect is implemented.

[0012] In an eighth aspect, a non-volatile computer-readable storage medium for storing a bit stream is provided, wherein the bit stream is generated by an encoding method using an encoder, or the bit stream is decoded by a decoding method using a decoder, wherein the decoding method is the method of the first aspect and the encoding method is the method of the second aspect.

[0013] According to a ninth aspect, a code stream is provided, comprising a code stream generated according to the method of the second aspect.

[0014] In related art, the connection information of three-dimensional meshes is represented by symbol strings. However, if the number of bits used to represent the binary value of the symbol string is too large, the coding efficiency of the connection information will be limited. The embodiments of the present application take advantage of the characteristics of the symbol string (the symbol encoded after symbol C is not symbol L or symbol E), or use syntax elements to indicate some symbols to reduce the number of bits of the binary value corresponding to the symbol string, thereby helping to improve the coding efficiency of the connection information. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] FIG1A is a schematic diagram of a three-dimensional grid image.

[0016] FIG1B is a partially enlarged view of the three-dimensional grid image.

[0017] FIG2 is a schematic diagram of the connection method of the three-dimensional grid.

[0018] FIG3A is a schematic diagram of a three-dimensional grid image.

[0019] FIG3B is a schematic diagram of a grid data storage format.

[0020] FIG3C is a property diagram of a three-dimensional grid image.

[0021] FIG4A is a schematic diagram of a grid preprocessing process.

[0022] FIG4B is a schematic diagram illustrating a method for generating shift coefficients.

[0023] FIG5A is a schematic diagram of an intra-frame coding method.

[0024] FIG5B is a schematic diagram of an intra-frame decoding method.

[0025] FIG6A is a schematic diagram of an inter-frame coding method.

[0026] FIG6B is a schematic diagram of an inter-frame decoding method.

[0027] FIG. 7A is a schematic diagram showing a connection method of vertices.

[0028] FIG. 7B is another schematic diagram of the connection method of vertices.

[0029] FIG. 7C is another schematic diagram of the connection method of vertices.

[0030] FIG. 7D is another schematic diagram of the connection method of vertices.

[0031] FIG. 8 is a diagram illustrating an example of connection information of a triangular mesh.

[0032] FIG9 is a flow chart of a decoding method provided in an embodiment of the present application.

[0033] FIG10 is a flow chart of the encoding method provided in an embodiment of the present application.

[0034] FIG11 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application.

[0035] FIG12 is a schematic diagram of the structure of a decoder provided in another embodiment of the present application.

[0036] FIG13 is a schematic diagram of the structure of an encoder provided in one embodiment of the present application.

[0037] FIG14 is a schematic diagram of the structure of an encoder provided in another embodiment of the present application. DETAILED DESCRIPTION

[0038] 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.

[0039] 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.

[0040] 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.

[0041] 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.

[0042] Generally speaking, 3D animation content uses 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 3D dynamic meshes represented based on keyframes is extremely large, so how to effectively store, transmit and draw them has become a problem faced by the development of 3D 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 network bandwidths (broadband, narrowband, wireless) need to support the quality scalability of the mesh. Therefore, 3D dynamic mesh compression is a very critical issue.

[0043] A 3D mesh is the surface of a three-dimensional object composed of multiple polygons in space. Polygons can be composed of vertices and edges. Figure 1A shows a 3D mesh image, and Figure 1B shows a magnified portion of the 3D mesh image. As can be seen from Figures 1A and 1B, a mesh surface is typically composed of multiple closed polygons.

[0044] The pixel distribution of a two-dimensional image is regular, so there's no need to record its geometric information (or position information). However, the random and irregular distribution of mesh vertices in three-dimensional space, as well as the way polygons are constructed, require additional recording. Therefore, for a three-dimensional mesh, it's necessary to record not only the spatial positions of the vertices but also the connectivity information of the polygons within the mesh to fully represent the mesh image. As shown in Figure 2, the same number and positions of vertices can produce completely different surfaces due to different connectivity methods.

[0045] In addition to the above information, since 3D mesh images are usually encoded using existing 2D image / video encoding methods, it is necessary to convert the 3D mesh image from 3D space to 2D space. 3D mesh encoding usually uses UV coordinates to define this conversion process.

[0046] Similar to 2D images, each vertex may have corresponding attribute information. This attribute information is typically an RGB color value, reflecting the object's color. For 3D mesh images, in addition to color, each vertex's attribute information often includes reflectance values, which reflect the object's surface material. The attribute information of a 3D mesh image can be stored in a 2D image, with the mapping from 2D to 3D being specified by UV coordinates.

[0047] Therefore, 3D mesh data typically includes 3D geometric position information (x, y, z), the connectivity of triangular facets within that geometric position information, texture coordinates (u, v), the connectivity of those texture coordinates, and an attribute map. Figure 3A shows a 3D mesh image, and Figure 3B shows the mesh data storage format, which includes 3D geometric position information, texture coordinates, and connectivity information. Figure 3C shows the corresponding attribute map.

[0048] Current 3D dynamic mesh compression methods include space-time prediction methods, which improve compression efficiency by eliminating spatial and temporal correlations; principal component analysis (PCA)-based techniques, which project in the eigenvector space to concentrate energy; and wavelet-based methods, which support spatial and quality scalability.

[0049] Figure 4A is a schematic diagram of the 2D curve preprocessing process. Figure 4B is a schematic diagram of the generation of displacement coefficients. Currently, in the dynamic mesh coding (DMC) of the Moving Picture Experts Group (MPEG), preprocessing is first performed on the encoder to generate a base mesh and displacement coefficients. The 3D mesh preprocessing process is analogous to the 2D curve preprocessing process. On the encoder side, it is mainly divided into two parts: preprocessing and encoding. First, preprocessing can generate the base mesh and displacement coefficients. The preprocessing process includes: first, downsampling the original mesh to generate a simplified mesh (decimated mesh) with a significantly reduced number of vertices, also known as the base mesh. The simplified mesh is then subdivided, and the newly generated vertices are inserted along the edges of the simplified mesh to obtain a subdivided mesh, also known as the initial mesh. Finally, for each vertex in the subdivided mesh, the closest point in the original mesh is found, and the displacement coefficients of these two points are calculated. After preprocessing, the simplified mesh and displacement coefficients are input into the encoder to generate the bitstream. Since the subdivision grid can be automatically generated at the codec end as long as the subdivision algorithm and the number of subdivision iterations are determined, after preprocessing, the original grid only needs to be represented as a simple basic grid and a series of shift coefficients. This can greatly reduce the amount of data without affecting the reconstruction at the decoding end.

[0050] Currently, V-DMC coding is mainly divided into two coding test conditions: intra-frame coding and inter-frame coding (low latency, currently no RA test environment). The following describes these two coding methods in detail.

[0051] Figure 5A is a schematic diagram of intra-frame coding. As shown in Figure 5A, in the intra-frame encoder, a common static mesh encoder can be used to encode the simplified mesh to generate a corresponding bitstream (compressed base mesh bitstream). Next, the reconstructed simplified mesh is used to update the displacement coefficients. The updated displacement coefficients are subjected to wavelet transform and quantization to obtain the displacement coefficients. After image packing and two-dimensional mapping, high-efficiency video coding (HEVC) is used for encoding to generate a bitstream of displacement coefficients (compressed displacements bitstream). For attribute map encoding, the feature map is first transformed (texture transfer) based on the difference between the reconstructed geometric information and the original geometric information. Then, it is padded and color space converted and encoded using a video encoder (video coding) to form a compressed attribute bitstream. Figure 5B is a schematic diagram of intra-frame decoding. At the decoding end, the basic grid code stream is decoded to generate a decoded basic grid. The shift coefficients are decoded by HEVC, inversely mapped, inversely quantized, and inversely transformed to generate decoded shift coefficients. The decoded basic grid and the decoded shift coefficients are then used together to reconstruct the three-dimensional grid geometry. The attribute code stream is decoded by HEVC to generate a reconstructed attribute map.

[0052] Figure 6A is a schematic diagram of inter-frame encoding. As shown in Figure 6A, on the encoding side, the inter-frame encoder and intra-frame encoder processes are roughly the same. Due to the use of inter-frame mode, the base mesh portion does not need to encode its connection information. Only the motion vectors between the vertex geometric coordinates of the current frame and the vertex geometric coordinates of the reference frame need to be encoded. The remaining modules are consistent with intra-frame encoding and generate a corresponding motion vector bitstream (compressed motion bitstream). Figure 6B is a schematic diagram of inter-frame decoding. As shown in Figure 6B, on the decoding side, the motion vectors are decoded from the bitstream and combined with the connection information of the reference frame to obtain the base mesh. The remaining modules are consistent with intra-frame decoding.

[0053] Common test conditions for MPEG DMC

[0054] 1) There are two test conditions for MPEG DMC:

[0055] Condition 1: Lossless all intra geometry lossless and attribute lossless;

[0056] Condition 2: lossy all intra geometry lossy, attribute lossy;

[0057] Condition 3: Lossy random access is lossy in geometry and attributes.

[0058] 2) Common test sequences include Cat1-A, Cat1-B and Cat1-C, a total of five categories, all of which contain geometric and color attribute information.

[0059] Next, the connection relationship encoding of the basic grid of V-DMC is introduced in more detail.

[0060] After obtaining the basic mesh, an encoder will be used to encode the geometric information of the basic mesh. Among them, the geometric information mainly includes: geometric position information and the connection relationship between the geometric position information. The entire encoding process is as follows: first complete the encoding of the connection relationship, and then encode the geometric position information of the point based on the connection relationship of the geometric position. The connection information defines the rules for the points to form a surface. The same vertex can form completely different surfaces due to different connection information. For example, Figure 7A and Figure 7B are both composed of points 0, 1, 2, and 3. The connection information of Figure 7A is (0, 1, 2, 3), which presents a square. The connection information of Figure 7B is (0, 2, 1, 3), which presents a butterfly shape. Figure 7C and Figure 7D are both composed of points 0, 1, 2, 3, and 4. The connection information of Figure 7C is The connection information in FIG. 7D is The two surfaces have different normal directions. The "Edgebreaker Coding" scheme is used to encode the mesh's connectivity. The EdgeBreaker algorithm defines five operators: {C, L, E, R, S}. Each triangle in a triangular mesh is represented by one of these five operators, simplifying the representation of the 3D mesh's connectivity information. The meaning of each symbol is as follows:

[0061] iC: None of the triangles connected to the current vertex have completed encoding;

[0062] ii.L: The left triangle connected to the current vertex is encoded;

[0063] iii.R: The right triangle connected to the current vertex completes the encoding;

[0064] iv.S: The triangles on the left and right sides of the current vertex have not been encoded yet;

[0065] vE: The left and right triangles connected to the current vertex have been encoded.

[0066] The type of each vertex and the order in which the vertices are processed are encoded in a certain order. The decoding end recovers the geometric connectivity of the mesh based on the order in which the vertices are processed and the types of the vertices. The connectivity information of the triangle mesh shown in Figure 8 can be expressed as:

[0067] If the triangle mesh is left unprocessed, the only content that needs to be encoded and decoded is the numbers in the connection information. However, if the EdgeBreaker algorithm is used to process the triangle mesh in Figure 8, the connection information can be represented as a string of symbols, namely (CCRRRSLCRSERRELCRRRCRRRE), and the content that ultimately needs to be encoded and decoded is this string of symbols.

[0068] For the five symbols mentioned above, when using fixed-length encoding, three binary bits are required to express each symbol. To improve encoding and decoding efficiency, we can take advantage of the fact that symbol C appears more frequently in the entire symbol string and use only one binary bit to represent symbol C. The remaining four symbols are expressed using different three binary bits. As an example, a specific binarization method is as follows: C:0 S:100 R:101 L:110 E:111

[0069] The above article details the binarization process of connection information based on EdgeBreaker. As can be seen from the above introduction, in related technologies, the connection information of three-dimensional grids is represented based on symbol strings. If the number of bits used to represent the binary value of the symbol string is too large, it will limit the coding efficiency of the connection information.

[0070] In response to the above problems, an embodiment of the present application provides an encoding method, including: performing a binarization operation on a symbol string to determine a binary value, wherein the symbol string is used to represent connection information of a three-dimensional grid; and encoding the binary value.

[0071] An embodiment of the present application also provides a decoding method, comprising: performing a debinarization operation on binary values ​​in a code stream to determine a symbol string, wherein the symbol string is used to represent connection information of a three-dimensional grid; and reconstructing the three-dimensional grid according to the symbol string.

[0072] The embodiments of the present application are based on the characteristics of the symbol string (the symbol encoded after symbol C is not symbol L or symbol E), or use syntax elements to indicate some symbols to reduce the number of bits of the binary value corresponding to the symbol string, thereby helping to improve the coding efficiency of the connection information.

[0073] The decoding method provided in the embodiments of the present application will be described in detail below with reference to the accompanying drawings.

[0074] FIG9 is a flowchart of a decoding method provided in an embodiment of the present application. The method of FIG9 can be performed by a decoder. The decoder can be a decoder that supports V-DMC.

[0075] 9 , in step S910 , a debinarization operation is performed on the binary values ​​in the code stream to determine a symbol string. The symbol string is used to represent the connection information of the three-dimensional grid.

[0076] The symbol string may be determined based on EdgeBreaker, and the symbol string may be represented by symbols in {C, L, E, R, S}.

[0077] The connection information of the three-dimensional mesh mentioned above may be referred to as connection information of triangles in the three-dimensional mesh, or may be referred to as connection information of vertices of the three-dimensional mesh.

[0078] In step S920, a three-dimensional grid is reconstructed according to the symbol string.

[0079] In some implementations, connection information of a three-dimensional grid (basic grid) may be determined based on the symbol string; and then, a reconstructed grid of the three-dimensional grid may be determined based on the connection information and geometric position information of the points.

[0080] The embodiment of the present application does not specifically limit the manner in which the binary values ​​in the code stream are debinarized.

[0081] Option 1

[0082] In some implementations, step S910 includes: determining the previous symbol of the current symbol in the symbol string; if the previous symbol is symbol C, performing a debinarization operation based on a first mapping relationship between symbols and binary values ​​to determine the current symbol.

[0083] The first mapping relationship does not include the mapping relationship between the symbol L and / or the symbol E and the binary value, or in other words, the first mapping relationship may include the mapping relationship between the symbol C, the symbol S, and the symbol R and the binary value.

[0084] In some implementations, the number of bits of the binary values ​​corresponding to the symbols in the first mapping relationship is less than or equal to 2. The number of bits of the binary values ​​corresponding to different symbols in the first mapping relationship may be exactly the same or different. For example, the number of bits of the binary value corresponding to one symbol in the first mapping relationship may be 1, while the number of bits of the binary values ​​corresponding to other symbols may be 2.

[0085] As an example, the binary value corresponding to the symbol C is 0, the binary value corresponding to the symbol R is 10, and the binary value corresponding to the symbol S is 11.

[0086] As another example, the binary value corresponding to the symbol C is 0, the binary value corresponding to the symbol R is 11, and the binary value corresponding to the symbol S is 10.

[0087] For another example, the number of bits of the binary values ​​corresponding to the symbols in the first mapping relationship may all be 2.

[0088] As an example, the binary value corresponding to the symbol C is 00, the binary value corresponding to the symbol R is 10, and the binary value corresponding to the symbol S is 11.

[0089] As another example, the binary value corresponding to the symbol C is 01, the binary value corresponding to the symbol R is 10, and the binary value corresponding to the symbol S is 11.

[0090] In solution one, the binary value may be debinarized based on the first mapping relationship, thereby being converted into a corresponding symbol.

[0091] Based on the characteristic that the symbol encoded after symbol C in the symbol string is not symbol L or symbol E, the embodiment of the present application reduces the number of bits of the binary value of the symbol encoded after symbol C, thereby helping to improve the encoding efficiency of the connection information.

[0092] Option 2

[0093] In some implementations, step S910 includes: parsing first identification information, where the first identification information is used to indicate the target symbol that appears most frequently in the symbol string; then, performing a debinarization operation based on a second mapping relationship between the symbol and the binary value to determine the current symbol.

[0094] The second mapping relationship may include a mapping relationship between symbol L and / or symbol E and a binary value, or in other words, the second mapping relationship may include a mapping relationship between symbol C, symbol L, symbol E, symbol S, and symbol R and a binary value.

[0095] The target symbol has the smallest binary value in the second mapping relationship. For example, if the target symbol has a binary value of 1, then the other symbols (4 symbols) have a binary value of 3.

[0096] For example, if the target symbol is symbol C, the binary value corresponding to symbol C is 0, the binary value corresponding to symbol S is 100, the binary value corresponding to symbol R is 101, the binary value corresponding to symbol L is 110, and the binary value corresponding to symbol E is 111.

[0097] For example, if the target symbol is symbol R, the binary value corresponding to symbol R is 0, the binary value corresponding to symbol S is 100, the binary value corresponding to symbol C is 101, the binary value corresponding to symbol L is 110, and the binary value corresponding to symbol E is 111.

[0098] For example, if the target symbol is symbol L, the binary value corresponding to symbol L is 0, the binary value corresponding to symbol S is 100, the binary value corresponding to symbol R is 101, the binary value corresponding to symbol C is 110, and the binary value corresponding to symbol E is 111.

[0099] For example, if the target symbol is symbol E, the binary value corresponding to symbol E is 0, the binary value corresponding to symbol S is 100, the binary value corresponding to symbol R is 101, the binary value corresponding to symbol L is 110, and the binary value corresponding to symbol C is 111.

[0100] For example, if the target symbol is symbol S, the binary value corresponding to symbol S is 0, the binary value corresponding to symbol C is 100, the binary value corresponding to symbol R is 101, the binary value corresponding to symbol L is 110, and the binary value corresponding to symbol E is 111.

[0101] On the encoding side, all symbols in the symbol string are traversed, the symbol with the highest frequency of occurrence is selected as the target symbol, and first identification information indicating the target symbol is written into the bitstream. On the decoding side, the target symbol is determined by parsing the first identification information obtained from the bitstream. Because the target symbol is the most frequently occurring symbol in the symbol string, setting the number of bits of the binary value corresponding to the target symbol to be smaller than that of the other symbols can reduce the number of bits of the binary value corresponding to the symbol string, thereby helping to improve the encoding efficiency of the connection information.

[0102] As mentioned above, the first identification information is used to indicate the target symbol with the highest frequency in the symbol string, and the target symbol may be any one of {C, L, E, R, S}. Therefore, different binary values ​​need to be set in the mapping relationship to represent different target symbols.

[0103] The embodiments of the present application do not specifically limit the manner in which the binary values ​​of the target symbols are set. In some implementations, a third mapping relationship may be set in which the number of bits of the binary values ​​corresponding to different target symbols is the same. For example, the number of bits of the binary values ​​corresponding to different symbols in the third mapping relationship is always 3. For example, the binary value corresponding to target symbol C is 000, the binary value corresponding to target symbol S is 100, the binary value corresponding to target symbol R is 011, the binary value corresponding to target symbol L is 001, and the binary value corresponding to target symbol E is 010.

[0104] In other implementations, a fourth mapping relationship may be set, in which the number of bits of the binary values ​​corresponding to different target symbols is not exactly the same. For example, the number of bits of the binary value corresponding to symbol C is 1, and the number of bits of the binary values ​​corresponding to the remaining symbols other than symbol C is 3. For example, the binary value corresponding to target symbol C is 0, the binary value corresponding to target symbol S is 100, the binary value corresponding to target symbol R is 101, the binary value corresponding to target symbol L is 110, and the binary value corresponding to target symbol E is 111.

[0105] Option 3

[0106] In some implementations, step S910 includes parsing second identification information, the second identification information being used to indicate whether the current symbol is the first symbol; and then, if the current symbol is not the first symbol, performing a debinarization operation based on a fifth mapping relationship between symbols and binary values ​​to determine the current symbol. The fifth mapping relationship does not include a mapping relationship between the first symbol and the binary value.

[0107] The second identification information may include multiple identification information, and the first symbol may include multiple symbols. That is, the first symbol may be multiple symbols from {C, L, E, R, S}, and the multiple identification information respectively indicates whether the current symbol is the corresponding symbol. For example, the first symbol may be symbol C and symbol R, and the multiple identification information respectively indicates whether the current symbol is symbol C or symbol R.

[0108] The second identification information may have multiple values, wherein different value results may indicate whether it is the first symbol. For example, the second identification information may have a value of 0 or 1.

[0109] As an example, the second identification information can indicate whether the current symbol is symbol C. If the value of the second identification information is 0, it means that the current symbol is symbol C; if the value of the second identification information is 1, it means that the current symbol is not symbol C.

[0110] As another example, the second identification information can indicate whether the current symbol is symbol R. If the value of the second identification information is 0, it means that the current symbol is symbol R; if the value of the second identification information is 1, it means that the current symbol is not symbol R.

[0111] In the above description, the second identification information can indicate multiple symbols. Therefore, in {C, L, E, R, S}, the remaining symbols can be represented by binary values ​​with smaller bits. In other words, the number of bits of the binary values ​​corresponding to the symbols in the fifth mapping relationship can all be less than or equal to 2. This can further reduce the number of bits of the binary values ​​corresponding to the symbol string, thereby helping to improve the encoding efficiency of the connection information.

[0112] For example, the number of bits of the binary values ​​of the symbols in the fifth mapping relationship may all be 2.

[0113] As an example, if the first symbol includes symbols C and R, then the binary value corresponding to symbol S may be 00, the binary value corresponding to symbol L may be 01, and the binary value corresponding to symbol E may be 11.

[0114] For another example, the number of bits of the binary value of the symbol in the fifth mapping relationship may be 1 or 2.

[0115] As an example, if the first symbol includes symbols C and R, then the binary value corresponding to symbol S may be 0, the binary value corresponding to symbol L may be 10, and the binary value corresponding to symbol E may be 11.

[0116] As another example, if the first symbol includes symbols C and R, then the binary value corresponding to symbol S may be 1, the binary value corresponding to symbol L may be 00, and the binary value corresponding to symbol E may be 01.

[0117] In some implementations, step S910 includes: determining whether the current symbol is the second symbol based on the number of bits of the binary value; and then, if the current symbol is not the second symbol, performing a debinarization operation based on a sixth mapping relationship between symbols and binary values ​​to determine the current symbol. The sixth mapping relationship does not include a mapping relationship between the second symbol and the binary value.

[0118] The number of bits of the binary values ​​corresponding to the symbols in the sixth mapping relationship is less than or equal to 4. For example, the number of bits of the binary values ​​corresponding to the symbols in the sixth mapping relationship may include 3 and 4.

[0119] The second symbol may include multiple symbols, and the number of bits of the binary values ​​corresponding to the multiple symbols may be less than or equal to 2. For example, the number of bits of the binary value corresponding to the second symbol may include 1 and 2.

[0120] As an example, if the second symbol includes symbols C and R, where the binary value corresponding to symbol C is 0 and the binary value corresponding to symbol R is 10, then the binary value corresponding to symbol S may be 110, the binary value corresponding to symbol L may be 1110, and the binary value corresponding to symbol E may be 1111. It should be understood that the above-mentioned solutions 1, 2, and 3 may be used in combination, or solutions 1, 2, and 3 may be used separately, and this is not specifically limited in the embodiments of the present application.

[0121] Using relevant test conditions, we tested Schemes 1 and 3. Taking the lossless compression test environment as an example, Scheme 1 can save 0.1% of the codewords in the basic grid; Scheme 3 can save 0.1% of the codewords in the basic grid.

[0122] The decoding method provided by the embodiment of the present application is described in detail above in conjunction with Figure 9. The encoding method provided by the embodiment of the present application is described in detail below in conjunction with Figure 10.

[0123] Figure 10 is a flow chart of an encoding method provided in an embodiment of the present application. The method of Figure 10 may be performed by an encoder. The encoder may be an encoder that supports V-DMC.

[0124] 10 , in step S1010 , a binary operation is performed on the symbol string to determine a binary value. The symbol string is used to represent the connection information of the three-dimensional grid.

[0125] The symbol string may be determined based on EdgeBreaker, and the symbol string may be represented by symbols in {C, L, E, R, S}.

[0126] The connection information of the three-dimensional mesh mentioned above may be referred to as connection information of triangles in the three-dimensional mesh, or may be referred to as connection information of points in the three-dimensional mesh.

[0127] In step S1020 , the binary value is encoded.

[0128] In some implementations, a three-dimensional grid (basic grid) can be determined through an initial three-dimensional grid; then, a symbol string is determined based on the connection information of the three-dimensional grid; then, the symbol string is binarized to determine the binary value corresponding to the symbol string, and the binary value is encoded into the code stream.

[0129] The embodiment of the present application does not specifically limit the manner in which the symbol string is binarized.

[0130] Option 1

[0131] In some implementations, step S1010 includes: encoding the previous symbol of the current symbol in the symbol string; then, if the previous symbol is symbol C, performing a binarization operation on the current symbol according to a first mapping relationship between symbols and binary values.

[0132] The first mapping relationship does not include the mapping relationship between the symbol L and / or the symbol E and the binary value, or in other words, the first mapping relationship may include the mapping relationship between the symbol C, the symbol S, and the symbol R and the binary value.

[0133] In some implementations, the number of bits of the binary values ​​corresponding to the symbols in the first mapping relationship is less than or equal to 2. The number of bits of the binary values ​​corresponding to different symbols in the first mapping relationship may be exactly the same or different. For example, the number of bits of the binary value corresponding to one symbol in the first mapping relationship may be 1, while the number of bits of the binary values ​​corresponding to other symbols may be 2.

[0134] As an example, the binary value corresponding to the symbol C is 0, the binary value corresponding to the symbol R is 10, and the binary value corresponding to the symbol S is 11.

[0135] As another example, the binary value corresponding to the symbol C is 0, the binary value corresponding to the symbol R is 11, and the binary value corresponding to the symbol S is 10.

[0136] For another example, the number of bits of the binary values ​​corresponding to the symbols in the first mapping relationship may all be 2.

[0137] As an example, the binary value corresponding to the symbol C is 00, the binary value corresponding to the symbol R is 10, and the binary value corresponding to the symbol S is 11.

[0138] As another example, the binary value corresponding to the symbol C is 01, the binary value corresponding to the symbol R is 10, and the binary value corresponding to the symbol S is 11.

[0139] In solution one, a binarization operation may be performed on the current symbol based on the first mapping relationship, thereby obtaining a binary value corresponding to the current symbol.

[0140] Based on the characteristic that the symbol encoded after symbol C in the symbol string is not symbol L or symbol E, the embodiment of the present application reduces the number of bits of the binary value of the symbol encoded after symbol C, thereby helping to improve the encoding efficiency of the connection information.

[0141] Option 2

[0142] In some implementations, step S1010 includes: determining the target symbol that appears most frequently in the symbol string; then, performing a binarization operation on the current symbol according to a second mapping relationship between symbols and binary values ​​to determine the binary value corresponding to the current symbol.

[0143] The second mapping relationship may include a mapping relationship between symbol L and / or symbol E and a binary value, or in other words, the second mapping relationship may include a mapping relationship between symbol C, symbol L, symbol E, symbol S, and symbol R and a binary value.

[0144] The target symbol has the smallest binary value in the second mapping relationship. For example, if the target symbol has a binary value of 1, then the other symbols (4 symbols) have a binary value of 3.

[0145] For example, if the target symbol is symbol C, the binary value corresponding to symbol C is 0, the binary value corresponding to symbol S is 100, the binary value corresponding to symbol R is 101, the binary value corresponding to symbol L is 110, and the binary value corresponding to symbol E is 111.

[0146] For example, if the target symbol is symbol R, the binary value corresponding to symbol R is 0, the binary value corresponding to symbol S is 100, the binary value corresponding to symbol C is 101, the binary value corresponding to symbol L is 110, and the binary value corresponding to symbol E is 111.

[0147] For example, if the target symbol is symbol L, the binary value corresponding to symbol L is 0, the binary value corresponding to symbol S is 100, the binary value corresponding to symbol R is 101, the binary value corresponding to symbol C is 110, and the binary value corresponding to symbol E is 111.

[0148] For example, if the target symbol is symbol E, the binary value corresponding to symbol E is 0, the binary value corresponding to symbol S is 100, the binary value corresponding to symbol R is 101, the binary value corresponding to symbol L is 110, and the binary value corresponding to symbol C is 111.

[0149] For example, if the target symbol is symbol S, the binary value corresponding to symbol S is 0, the binary value corresponding to symbol C is 100, the binary value corresponding to symbol R is 101, the binary value corresponding to symbol L is 110, and the binary value corresponding to symbol E is 111.

[0150] On the encoding side, all symbols in the symbol string are traversed, the symbol with the highest frequency of occurrence in the symbol string is selected as the target symbol, and first identification information indicating the target symbol is written into the codestream. Setting the number of bits of the binary value corresponding to the target symbol to be smaller than that of the other symbols reduces the number of bits of the binary value corresponding to the symbol string, thereby helping to improve the encoding efficiency of the connection information.

[0151] As mentioned above, the first identification information is used to indicate the target symbol with the highest frequency in the symbol string, and the target symbol may be any one of {C, L, E, R, S}. Therefore, different binary values ​​need to be set in the mapping relationship to represent different target symbols.

[0152] The embodiments of the present application do not specifically limit the manner in which the binary values ​​of the target symbols are set. In some implementations, a third mapping relationship may be set in which the number of bits of the binary values ​​corresponding to different target symbols is the same. For example, the number of bits of the binary values ​​corresponding to different symbols in the third mapping relationship is always 3. For example, the binary value corresponding to target symbol C is 000, the binary value corresponding to target symbol S is 100, the binary value corresponding to target symbol R is 011, the binary value corresponding to target symbol L is 001, and the binary value corresponding to target symbol E is 010.

[0153] In other implementations, a fourth mapping relationship may be set, in which the number of bits of the binary values ​​corresponding to different target symbols is not exactly the same. For example, the number of bits of the binary value corresponding to symbol C is 1, and the number of bits of the binary values ​​corresponding to the remaining symbols other than symbol C is 3. For example, the binary value corresponding to target symbol C is 0, the binary value corresponding to target symbol S is 100, the binary value corresponding to target symbol R is 101, the binary value corresponding to target symbol L is 110, and the binary value corresponding to target symbol E is 111.

[0154] Option 3

[0155] In some implementations, step S1010 includes: determining whether the current symbol is the first symbol; and then, if the current symbol is not the first symbol, performing a binarization operation on the current symbol according to a fifth mapping relationship between symbols and binary values. The fifth mapping relationship does not include a mapping relationship between the first symbol and the binary value.

[0156] In some implementations, the second identification information may be written into the code stream. The second identification information is used to indicate whether the current symbol is the first symbol.

[0157] The second identification information may include multiple identification information, and the first symbol may include multiple symbols. That is, the first symbol may be multiple symbols from {C, L, E, R, S}, and the multiple identification information respectively indicates whether the current symbol is the corresponding symbol. For example, the first symbol may be symbol C and symbol R, and the multiple identification information respectively indicates whether the current symbol is symbol C or symbol R.

[0158] There are many ways to determine the value of the second identification information, where different determination results can indicate whether it is the first symbol. For example, the value of the second identification information can be 0 or 1.

[0159] As an example, the second identification information can indicate whether the current symbol is symbol C. If the value of the second identification information is 0, it means that the current symbol is symbol C; if the value of the second identification information is 1, it means that the current symbol is not symbol C.

[0160] As another example, the second identification information can indicate whether the current symbol is symbol R. If the value of the second identification information is 0, it means that the current symbol is symbol R; if the value of the second identification information is 1, it means that the current symbol is not symbol R.

[0161] In the above description, solution three can indicate multiple symbols through syntax elements (identification information). Therefore, in {C, L, E, R, S}, the remaining symbols can be represented by binary values ​​with smaller bits. In other words, the number of bits of the binary values ​​corresponding to the symbols in the fifth mapping relationship can all be less than or equal to 2. This can further reduce the number of bits of the binary values ​​corresponding to the symbol string, thereby helping to improve the coding efficiency of the connection information.

[0162] For example, the number of bits of the binary values ​​of the symbols in the fifth mapping relationship may all be 2.

[0163] As an example, if the first symbol includes symbols C and R, then the binary value corresponding to symbol S may be 00, the binary value corresponding to symbol L may be 01, and the binary value corresponding to symbol E may be 11.

[0164] For another example, the number of bits of the binary value of the symbol in the fifth mapping relationship may be 1 or 2.

[0165] As an example, if the first symbol includes symbols C and R, then the binary value corresponding to symbol S may be 0, the binary value corresponding to symbol L may be 10, and the binary value corresponding to symbol E may be 11.

[0166] As another example, if the first symbol includes symbols C and R, then the binary value corresponding to symbol S may be 1, the binary value corresponding to symbol L may be 00, and the binary value corresponding to symbol E may be 01.

[0167] In some implementations, step S1010 includes: determining whether the current symbol is the second symbol based on the number of bits of the binary value; and then, if the current symbol is not the second symbol, performing a binarization operation on the current symbol based on a sixth mapping relationship between symbols and binary values. The sixth mapping relationship does not include a mapping relationship between the second symbol and the binary value.

[0168] The number of bits of the binary values ​​corresponding to the symbols in the sixth mapping relationship is less than or equal to 4. For example, the number of bits of the binary values ​​corresponding to the symbols in the sixth mapping relationship may include 3 and 4.

[0169] The second symbol may include multiple symbols, and the number of bits of the binary values ​​corresponding to the multiple symbols may be less than or equal to 2. For example, the number of bits of the binary value corresponding to the second symbol may include 1 and 2.

[0170] As an example, if the second symbol includes symbols C and R, where the binary value corresponding to symbol C is 0 and the binary value corresponding to symbol R is 10, then the binary value corresponding to symbol S may be 110, the binary value corresponding to symbol L may be 1110, and the binary value corresponding to symbol E may be 1111. It should be understood that the above-mentioned solutions 1, 2, and 3 may be used in combination, or solutions 1, 2, and 3 may be used separately, and this is not specifically limited in the embodiments of the present application.

[0171] The following examples are used to describe the embodiments of the present application in more detail. It should be noted that the examples below are only intended to help those skilled in the art understand the embodiments of the present application, rather than to limit the embodiments of the present application to the specific numerical values ​​or specific scenarios illustrated. It is apparent that those skilled in the art can make various equivalent modifications or changes based on the examples given below, and such modifications or changes also fall within the scope of the embodiments of the present application.

[0172] In the related art, the connection information of the three-dimensional mesh is represented based on a symbol string. If the number of bits used to represent the binary value of the symbol string is too large, the encoding efficiency of the connection information will be limited.

[0173] To address the above issues, embodiments of this application utilize the characteristics of CLERS symbol strings to design a more efficient binarization / debinarization method for encoding and decoding three-dimensional mesh connectivity information. Furthermore, a syntax element is introduced to indicate whether a symbol is a specific symbol (or not a specific symbol), and the binarization / debinarization method for the remaining symbols is redesigned accordingly, improving the entropy encoding / decoding efficiency of three-dimensional mesh connectivity information. The following describes three examples provided by this application.

[0174] Example 1:

[0175] By taking advantage of the fact that the next symbol of symbol C cannot be symbol L or symbol E, the binarization method of the five symbols can be improved as follows:

[0176] (1) When the previous symbol is not C, or the current symbol is the first symbol in the CLERS symbol string, the binarization / debinarization algorithm for the current symbol is one of the following five symbols: C: one binary bit; S: three binary bits; R: three binary bits; L: three binary bits; E: three binary bits. For example: C:0 S:100 R:101 L:110 E:111

[0177] (2) When the previous symbol is C, the binarization / debinarization algorithm for the current symbol is one of the following three symbols: C: one binary bit; S: two binary bits; R: two binary bits. For example: C: 0 S: 10 R: 11

[0178] Or: C:0 S:11 R:10

[0179] Example 2:

[0180] In some CLERS symbol strings, symbol C is not necessarily the most frequently appearing symbol. In this case, if the shortest binary bit is still assigned to it and long binary bits are assigned to other symbols, it is obviously not the best binarization / debinarization scheme. Therefore, the encoding and decoding efficiency can be improved by adjusting the ownership of the shortest binary bit symbol.

[0181] Encoding side:

[0182] (1) Before encoding the CLERS symbol string, count the frequency of each symbol, define a syntax element to indicate the symbol with the highest frequency, and write the syntax element into the code stream;

[0183] (2) Assign the shortest binary bit to the highest frequency symbol indicated by the above syntax element, and assign the remaining symbols to binary bits longer than the highest frequency symbol, for example:

[0184] i. If the syntax element indicates that the highest frequency symbol is C, use one binary bit to binarize symbol C, and two or more binary bits to binarize other symbols, for example: C:0 S:100 R:101 L:110 E:111

[0185] ii. If the syntax element indicates that the highest frequency symbol is C, then use one binary bit to binarize symbol C, and two or more binary bits to binarize other symbols, for example:

[0186] When the previous symbol is not C, or the current symbol is the first symbol in the CLERS symbol string: C:0 S:100 R:101 L:110 E:111

[0187] When the previous symbol is C: C:0 S:10 R:11

[0188] Or: C:0 S:11 R:10

[0189] iii. If the syntax element indicates that the highest frequency symbol is R, use one binary bit to binarize symbol R, and two or more binary bits to binarize other symbols, for example: R:0 S:100 C:101 L:110 E:111

[0190] iv. If the syntax element indicates that the highest frequency symbol is L, use one binary bit to binarize symbol L, and two or more binary bits to binarize other symbols, for example: L:0 S:100 R:101 C:110 E:111

[0191] v. If the syntax element indicates that the highest frequency symbol is E, use one binary bit to binarize the symbol E, and two or more binary bits to binarize other symbols, for example: E:0 S:100 R:101 L:110 C:111

[0192] vi. If the syntax element indicates that the highest frequency symbol is S, use one binary bit to binarize symbol S, and two or more binary bits to binarize other symbols, for example: S:0 C:100 R:101 L:110 E:111

[0193] Decoding end:

[0194] (1) Parse the syntax element indicating the most frequent symbol in the current CLERS symbol string;

[0195] (2) Assign the shortest binary bit to the highest frequency symbol indicated by the above syntax element, and assign the remaining symbols to binary bits longer than the highest frequency symbol, for example:

[0196] i. If the syntax element indicates that the highest frequency symbol is C, then use one binary bit to debinarize symbol C, and two or more binary bits to debinarize other symbols, for example: C:0 S:100 R:101 L:110 E:111

[0197] ii. If the syntax element indicates that the highest frequency symbol is C, then use one binary bit to debinarize symbol C, and two or more binary bits to debinarize other symbols, for example:

[0198] When the previous symbol is not C, or the current symbol is the first symbol in the CLERS symbol string: C:0 S:100 R:101 L:110 E:111

[0199] When the previous symbol is C: C:0 S:10 R:11

[0200] Or: C:0 S:11 R:10

[0201] iii. If the syntax element indicates that the highest frequency symbol is R, then use one binary bit to debinarize symbol R, and two or more binary bits to debinarize other symbols, for example: R:0 S:100 C:101 L:110 E:111

[0202] iv. If the syntax element indicates that the highest frequency symbol is L, then use one binary bit to debinarize symbol L, and two or more binary bits to debinarize other symbols, for example: L:0 S:100 R:101 C:110 E:111

[0203] v. If the syntax element indicates that the highest frequency symbol is E, use one binary bit to debinarize the symbol E, and two or more binary bits to debinarize other symbols. For example: E:0 S:100 R:101 L:110 C:111

[0204] vi. If the syntax element indicates that the highest frequency symbol is S, use one binary bit to debinarize symbol S, and two or more binary bits to debinarize other symbols. For example: S:0 C:100 R:101 L:110 E:111

[0205] The syntax elements mentioned in Example 2 can be expressed in the following ways:

[0206] 0 indicates that the highest frequency symbol is C, 6 indicates that the highest frequency symbol is L, 7 indicates that the highest frequency symbol is E, 5 indicates that the highest frequency symbol is R, and 4 indicates that the highest frequency symbol is S.

[0207] The binarization method is:

[0208] The highest frequency symbol is C:0

[0209] The highest frequency symbol is S:100

[0210] The highest frequency symbol is R:101

[0211] The highest frequency symbol is L:110

[0212] The highest frequency symbol is E:111

[0213] or:

[0214] 0 indicates that the highest frequency symbol is C, 1 indicates that the highest frequency symbol is L, 2 indicates that the highest frequency symbol is E, 3 indicates that the highest frequency symbol is R, and 4 indicates that the highest frequency symbol is S.

[0215] The binarization method is:

[0216] The highest frequency symbol is C:000

[0217] The highest frequency symbol is S:100

[0218] The highest frequency symbol is R:011

[0219] The highest frequency symbol is L:001

[0220] The highest frequency symbol is E:010

[0221] Example 3:

[0222] On the encoding side, for each symbol to be encoded:

[0223] (1) Whether the encoding is a symbol C syntax element (e.g., a value of 0 indicates that it is a symbol C, a value of 1 indicates that it is not a symbol C; or a value of 1 indicates that it is a symbol C, a value of 0 indicates that it is not a symbol C). If the current symbol is not C, execute step b.

[0224] (2) Whether the code is a symbol R syntax element (e.g., a value of 0 indicates that it is a symbol R, a value of 1 indicates that it is not a symbol R; or a value of 1 indicates that it is a symbol R, a value of 0 indicates that it is not a symbol R). If the current symbol is not R, execute step c.

[0225] (3) Encode the binary bits of the corresponding symbol (an example of the binarization method is as follows).

[0226] The remaining three symbols are represented by fixed-length 2 binary bits:

[0227] 00 means S or L or E

[0228] 01 means S or L or E

[0229] 10 means S or L or E

[0230] 11 means S or L or E

[0231] Among them, each "2 binary bits" can only represent a unique symbol.

[0232] One of the remaining three symbols is represented by one bit, and two are represented by two bits:

[0233] 0 means S or L or E

[0234] 10 means S or L or E

[0235] 11 means S or L or E

[0236] Among them, each "1 / 2 binary bits" can only represent a unique symbol.

[0237] One of the remaining three symbols is represented by one bit, and two are represented by two bits:

[0238] 1 means S or L or E

[0239] 00 means S or L or E

[0240] 01 means S or L or E

[0241] Among them, each "1 / 2 binary bits" can only represent a unique symbol.

[0242] Decoding side: For each symbol to be decoded:

[0243] (1) Decode whether the syntax element is a symbol C (the codec uses the same definition. For example, a value of 0 indicates that it is a symbol C, and a value of 1 indicates that it is not a symbol C; or a value of 1 indicates that it is a symbol C, and a value of 0 indicates that it is not a symbol C). If the syntax element indicates that the current symbol is not C, execute step b.

[0244] (2) Decoding whether the current symbol is an R syntax element (the codec uses the same definition. For example, a value of 0 indicates that it is an R symbol, and a value of 1 indicates that it is not an R symbol; or a value of 1 indicates that it is an R symbol, and a value of 0 indicates that it is not an R symbol). If the syntax element indicates that the current symbol is not an R symbol, execute step c.

[0245] (3) Decode the corresponding symbol according to the binary bit (the encoding and decoding ends use the same binarization / debinarization method. An example of the debinarization method is as follows).

[0246] The remaining three symbols are represented by fixed-length 2 binary bits:

[0247] 00 means S or L or E

[0248] 01 means S or L or E

[0249] 10 means S or L or E

[0250] 11 means S or L or E

[0251] Among them, each "2 binary bits" can only represent a unique symbol.

[0252] One of the remaining three symbols is represented by one bit, and two are represented by two bits:

[0253] 0 means S or L or E

[0254] 10 means S or L or E

[0255] 11 means S or L or E

[0256] Each "1 / 2 binary bits" can only represent a unique symbol.

[0257] Among them, one of the remaining three symbols is represented by 1 binary bit, and two are represented by 2 binary bits:

[0258] 1 means S or L or E

[0259] 00 means S or L or E

[0260] 01 means S or L or E

[0261] Among them, each "1 / 2 binary bits" can only represent a unique symbol.

[0262] The method embodiment of the present application is described in detail above in conjunction with Figures 1 to 10 . The device embodiment of the present application is described in detail below in conjunction with Figures 11 to 14 . It should be understood that the description of the method embodiment corresponds to the description of the device embodiment. Therefore, for parts not described in detail, reference can be made to the above method embodiment.

[0263] FIG11 is a schematic diagram of the structure of a decoder provided by an embodiment of the present application. As shown in FIG11 , the decoder 1100 may include a first decoding unit 1110 and a second decoding unit 1120 .

[0264] The first decoding unit 1110 is configured to perform a debinarization operation on the binary values ​​in the code stream to determine a symbol string, where the symbol string is used to represent connection information of the three-dimensional grid.

[0265] The second decoding unit 1120 is configured to reconstruct the three-dimensional grid according to the symbol string.

[0266] In some implementations, the decoder 1100 includes: a third decoding unit 1130, configured to determine the previous symbol of the current symbol in the symbol string; if the previous symbol is symbol C, performing an inverse binarization operation based on a first mapping relationship between symbols and binary values ​​to determine the current symbol, and the first mapping relationship does not include a mapping relationship between symbol L and / or symbol E and binary values.

[0267] In some implementations, the number of bits of the binary values ​​corresponding to the symbols in the first mapping relationship is less than or equal to 2.

[0268] In some implementations, in the first mapping relationship, the number of bits of the binary values ​​corresponding to different symbols are not exactly the same.

[0269] In some implementations, the first mapping relationship includes a mapping relationship between symbol C, symbol R, and symbol S and binary values, and the first mapping relationship satisfies one of the following: the binary value corresponding to symbol C is 0, the binary value corresponding to symbol R is 10, and the binary value corresponding to symbol S is 11; or, the binary value corresponding to symbol C is 0, the binary value corresponding to symbol R is 11, and the binary value corresponding to symbol S is 10.

[0270] In some implementations, the decoder 1100 includes: a fourth decoding unit 1140, configured to parse first identification information, wherein the first identification information is used to indicate the target symbol that appears most frequently in the symbol string; performing an inverse binarization operation based on a second mapping relationship between symbols and binary values ​​to determine the current symbol, wherein the second mapping relationship includes a mapping relationship between the symbol L and / or the symbol E and the binary value, and the number of bits of the binary value corresponding to the target symbol in the second mapping relationship is the smallest.

[0271] In some implementations, in the second mapping relationship, the number of bits of the binary value corresponding to the target symbol is 1, and the number of bits of the binary values ​​corresponding to the remaining symbols except the target symbol is 3.

[0272] In some implementations, the decoder 1100 includes: a fifth decoding unit 1150, configured to perform a debinarization operation based on a third mapping relationship between symbols and binary values ​​to determine the first identification information, in which the number of bits of the binary values ​​corresponding to different symbols is the same.

[0273] In some implementations, the number of bits of the binary values ​​corresponding to different symbols in the third mapping relationship is 3.

[0274] In some implementations, the decoder 1100 includes: a sixth decoding unit 1160, configured to perform a debinarization operation based on a fourth mapping relationship between symbols and binary values ​​to determine the first identification information, in which the number of bits of the binary values ​​corresponding to different symbols are not exactly the same.

[0275] In some implementations, in the fourth mapping relationship, the number of bits of the binary value corresponding to symbol C is 1, and the number of bits of the binary values ​​corresponding to the remaining symbols except symbol C is 3.

[0276] In some implementations, the decoder 1100 also includes a seventh decoding unit 1170, configured to parse second identification information, where the second identification information is used to indicate whether the current symbol is the first symbol; if the current symbol is not the first symbol, an inverse binarization operation is performed based on a fifth mapping relationship between symbols and binary values ​​to determine the current symbol, and the fifth mapping relationship does not include a mapping relationship between the first symbol and the binary value.

[0277] In some implementations, the number of bits of the binary values ​​corresponding to the symbols in the fifth mapping relationship is less than or equal to 2.

[0278] In some implementations, the second identification information includes multiple identification information, the first symbol includes multiple symbols, and the multiple identification information respectively indicate whether they are corresponding symbols.

[0279] In some implementations, whether the current symbol is the second symbol is determined based on the number of bits of the binary value; if the current symbol is not the second symbol, a debinarization operation is performed based on a sixth mapping relationship between symbols and binary values ​​to determine the current symbol, and the sixth mapping relationship does not include a mapping relationship between the second symbol and the binary value.

[0280] In some implementations, the number of bits of the binary values ​​corresponding to the symbols in the sixth mapping relationship is less than or equal to 4.

[0281] In some implementations, the second symbol includes multiple symbols, and the number of bits of the binary values ​​corresponding to the multiple symbols is less than or equal to 2.

[0282] It is understood 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 can also be a module or a non-modular device. 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.

[0283] If the integrated unit is implemented in the form of 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 part that contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a number of 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 disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

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

[0285] Based on the composition of the above-mentioned decoder 1100 and the computer-readable storage medium, refer to Figure 12, which shows a specific hardware structure diagram of the encoder 1200 provided in an embodiment of the present application. As shown in Figure 12, the encoder 1200 may include: a communication interface 1210, a memory 1220 and a processor 1230; each component is coupled together through a bus system 1240. It can be understood that the bus system 1240 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 1240 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 1240 in Figure 12. Among them,

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

[0287] Memory 1220, for storing computer programs;

[0288] The processor 1230 is configured to, when running the computer program, execute:

[0289] A debinarization operation is performed on binary values ​​in a code stream to determine a symbol string, where the symbol string is used to represent connection information of a three-dimensional grid; and the three-dimensional grid is reconstructed according to the symbol string.

[0290] It is understood that the memory 1220 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 RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchlink DRAM (SLDRAM), and direct rambus RAM (DRRAM). The memory 1220 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0291] Processor 1230 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method may be completed by hardware integrated logic circuits or software instructions in processor 1230. The above-mentioned processor 1230 may 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 device, discrete gate or transistor logic device, or discrete hardware component. It can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in conjunction with the embodiments of this application may 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 may be located in a storage medium well-known 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 memory 1220 , and the processor 1230 reads the information in the memory 1220 and completes the steps of the above method in combination with its hardware.

[0292] It is understood that the embodiments described herein can be implemented with hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described herein or a combination thereof. For software implementation, the technology described herein can be implemented by a module (such as a process, a function, etc.) that performs the functions described herein. The software code can be stored in a memory and executed by a processor. The memory can be implemented in a processor or outside a processor.

[0293] Optionally, as another embodiment, the processor 1230 is further configured to execute the decoding method described in any one of the aforementioned embodiments when running the computer program.

[0294] FIG13 is a schematic diagram of the structure of an encoder provided by an embodiment of the present application. As shown in FIG13 , the encoder 1300 includes a first encoding unit 1310 and a second encoding unit 1320 .

[0295] The first encoding unit 1310 is configured to perform a binarization operation on a symbol string to determine a binary value, where the symbol string is used to represent connection information of a three-dimensional grid.

[0296] The second encoding unit 1320 is configured to encode the binary value.

[0297] In some implementations, the encoder 1300 further includes a third encoding unit 1330, configured to encode the previous symbol of the current symbol in the symbol string; if the previous symbol is symbol C, the current symbol is binarized according to a first mapping relationship between symbols and binary values, and the first mapping relationship does not include a mapping relationship between symbol L and / or symbol E and binary values.

[0298] In some implementations, the number of bits of the binary values ​​corresponding to the symbols in the first mapping relationship is less than or equal to 2.

[0299] In some implementations, in the first mapping relationship, the number of bits of the binary values ​​corresponding to different symbols are not exactly the same.

[0300] In some implementations, the first mapping relationship includes a mapping relationship between symbol C, symbol R, and symbol S and binary values, and the first mapping relationship satisfies one of the following: the binary value corresponding to symbol C is 0, the binary value corresponding to symbol R is 10, and the binary value corresponding to symbol S is 11; or, the binary value corresponding to symbol C is 0, the binary value corresponding to symbol R is 11, and the binary value corresponding to symbol S is 10.

[0301] In some implementations, the encoder 1300 also includes a fourth encoding unit 1340, configured to determine the target symbol that appears most frequently in the symbol string; perform a binarization operation on the current symbol according to a second mapping relationship between symbols and binary values, the second mapping relationship including a mapping relationship between the symbol L and / or the symbol E and binary values, and the target symbol has the smallest number of bits of the binary value corresponding to it in the second mapping relationship.

[0302] In some implementations, in the second mapping relationship, the number of bits of the binary value corresponding to the target symbol is 1, and the number of bits of the binary values ​​corresponding to the remaining symbols except the target symbol is 3.

[0303] In some implementations, the encoder 1300 further includes a fifth encoding unit 1350 configured to write first identification information into the bitstream, where the first identification information is used to indicate the target symbol.

[0304] In some implementations, the fifth encoding unit 1350 is configured to perform a binarization operation on the first identification information according to a third mapping relationship between symbols and binary values, where the number of bits of the binary values ​​corresponding to different symbols is the same.

[0305] In some implementations, the number of bits of the binary values ​​corresponding to different symbols in the third mapping relationship is 3.

[0306] In some implementations, the fifth encoding unit 1350 is configured to perform a binarization operation on the first identification information according to a fourth mapping relationship between symbols and binary values, where the number of bits of the binary values ​​corresponding to different symbols are not exactly the same.

[0307] In some implementations, in the fourth mapping relationship, the number of bits of the binary value corresponding to symbol C is 1, and the number of bits of the binary values ​​corresponding to the remaining symbols except symbol C is 3.

[0308] In some implementations, the encoder 1300 also includes a sixth encoding unit 1360, configured to determine whether the current symbol is the first symbol; if the current symbol is not the first symbol, binarization is performed on the current symbol according to a fifth mapping relationship between symbols and binary values, and the fifth mapping relationship does not include a mapping relationship between the first symbol and the binary value.

[0309] In some implementations, the encoder 1300 further includes a seventh encoding unit 1370 configured to write the second identification information into a bitstream, where the second identification information is used to indicate whether the current symbol is the first symbol.

[0310] In some implementations, the second identification information includes multiple identification information, the first symbol includes multiple symbols, and the multiple identification information respectively indicate whether they are corresponding symbols.

[0311] In some implementations, the number of bits of the binary values ​​corresponding to the symbols in the fifth mapping relationship is less than or equal to 2.

[0312] In some implementations, whether the current symbol is the second symbol is determined based on the number of bits of the binary value; if the current symbol is not the second symbol, the current symbol is binarized based on a sixth mapping relationship between symbols and binary values, and the sixth mapping relationship does not include the mapping relationship between the second symbol and the binary value.

[0313] In some implementations, the number of bits of the binary values ​​corresponding to the symbols in the sixth mapping relationship is less than or equal to 4.

[0314] In some implementations, the second symbol includes multiple symbols, and the number of bits of the binary values ​​corresponding to the multiple symbols is less than or equal to 2.

[0315] It is understood 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 can also be a module or a non-modular device. 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.

[0316] 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, ROM, RAM, a magnetic disk, or an optical disk.

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

[0318] Based on the composition of the above-mentioned encoder 1300 and the computer-readable storage medium, refer to Figure 14, which shows a specific hardware structure diagram of the encoder 1400 provided in an embodiment of the present application. As shown in Figure 14, the encoder 1400 may include: a communication interface 1410, a memory 1420 and a processor 1430; each component is coupled together through a bus system 1440. It can be understood that the bus system 1440 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 1440 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 1440 in Figure 14. Among them,

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

[0320] Memory 1420, for storing computer programs;

[0321] The processor 1430 is configured to, when running the computer program, execute:

[0322] A binarization operation is performed on the symbol string to determine a binary value, wherein the symbol string is used to represent connection information of the three-dimensional grid; and the binary value is encoded.

[0323] It will be appreciated that the memory 1420 in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be a ROM, PROM, EPROM, EEPROM, or flash memory. The volatile memory may be a RAM, which serves as an external cache. By way of example and not limitation, many forms of RAM are available, such as SRAM, DRAM, SDRAM, DDRSDRAM, ESDRAM, SLDRAM, and DRRAM. The memory 1420 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0324] Processor 1430 may be an integrated circuit chip with signal processing capabilities. During implementation, the steps of the above method can be performed by hardware integrated logic circuits or software instructions within processor 1430. Processor 1430 may be a general-purpose processor, DSP, ASIC, FPGA, or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. A general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods 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 within the decoding processor. The software modules can be located in a storage medium well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, or registers. This storage medium is located in memory 1420. Processor 1430 reads information from memory 1420 and, in conjunction with its hardware, completes the steps of the above method.

[0325] It is understood that the embodiments described herein can be implemented with hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more ASICs, DSPs, DSPDs, PLDs, FPGAs, general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described herein, or a combination thereof. For software implementation, the technology described herein can be implemented by modules (e.g., processes, functions, etc.) that perform the functions described herein. 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.

[0326] Optionally, as another embodiment, the processor 1430 is further configured to execute the encoding method described in any one of the aforementioned embodiments when running the computer program.

[0327] An embodiment of the present application also provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium for storing a bit stream. The bit stream can be generated by an encoding method of an encoder, or the bit stream can be decoded by a decoding method of a decoder, wherein the decoding method can be the decoding method described in any of the foregoing embodiments, and the encoding method can be the encoding method described in any of the foregoing embodiments.

[0328] 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.

[0329] 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.

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

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

[0332] 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.

[0333] 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.

Claims

1. A decoding method, applied to a decoder, comprising: Performing an inverse binarization operation on binary values in a bitstream to determine a symbol string, where the symbol string is used to represent connection information of a three-dimensional grid; Reconstructing the three-dimensional grid according to the symbol string.

2. The method according to claim 1, wherein, The performing an inverse binarization operation on binary values in the bitstream to determine a symbol string includes: Determining a previous symbol of a current symbol in the symbol string; If the previous symbol is symbol C, performing an inverse binarization operation according to a first mapping relationship between symbols and binary values to determine the current symbol, where the first mapping relationship does not include mapping relationships between symbol L and / or symbol E and binary values.

3. The method according to claim 2, wherein, The number of bits of the binary values corresponding to the symbols in the first mapping relationship is less than or equal to 2.

4. The method according to claim 2 or 3, wherein, In the first mapping relationship, the number of bits of the binary values corresponding to different symbols is not exactly the same.

5. The method according to claim 4, wherein, The first mapping relationship includes mapping relationships between symbol C, symbol R, and symbol S and binary values, and the first mapping relationship satisfies one of the following: The binary value corresponding to symbol C is 0, the binary value corresponding to symbol R is 10, and the binary value corresponding to symbol S is 11; or, The binary value corresponding to symbol C is 0, the binary value corresponding to symbol R is 11, and the binary value corresponding to symbol S is 10.

6. The method according to claim 1, wherein The performing an inverse binarization operation on binary values in the bitstream to determine a symbol string includes: Parsing first identification information, where the first identification information is used to indicate a target symbol with the highest occurrence frequency in the symbol string; Performing an inverse binarization operation according to a second mapping relationship between symbols and binary values to determine the current symbol, where the second mapping relationship includes mapping relationships between symbol L and / or symbol E and binary values, and the number of bits of the binary value corresponding to the target symbol in the second mapping relationship is the smallest.

7. The method according to claim 6, wherein, In the second mapping relationship, the number of bits of the binary value corresponding to the target symbol is 1, and the number of bits of the binary values corresponding to the remaining symbols except the target symbol is 3.

8. The method according to claim 6 or 7, wherein The method further includes: Performing an inverse binarization operation according to a third mapping relationship between symbols and binary values to determine the first identification information, where in the third mapping relationship, the number of bits of the binary values corresponding to different symbols is the same.

9. The method according to claim 8, wherein The number of bits of the binary values corresponding to different symbols in the third mapping relationship is 3.

10. The method according to claim 6 or 7, wherein The method further includes: Performing an inverse binarization operation according to a fourth mapping relationship between symbols and binary values to determine the first identification information, where in the fourth mapping relationship, the number of bits of the binary values corresponding to different symbols is not exactly the same.

11. The method according to claim 10, wherein, In the fourth mapping relationship, the number of bits of the binary value corresponding to symbol C is 1, and the number of bits of the binary values corresponding to the remaining symbols except symbol C is 3.

12. The method according to claim 1, wherein, The performing an inverse binarization operation on binary values in the bitstream to determine a symbol string includes: Parsing second identification information, where the second identification information is used to indicate whether the current symbol is a first symbol; If the current symbol is not the first symbol, perform an inverse binarization operation according to a fifth mapping relationship between symbols and binary values to determine the current symbol, where the fifth mapping relationship does not include the mapping relationship between the first symbol and the binary value.

13. The method according to claim 12, wherein, The number of bits of the binary values corresponding to the symbols in the fifth mapping relationship is less than or equal to 2.

14. The method according to claim 12 or 13, wherein, The second identification information includes multiple pieces of identification information, the first symbol includes multiple symbols, and the multiple pieces of identification information respectively indicate whether they are the corresponding symbols.

15. The method according to claim 1, wherein, The operation of performing an inverse binarization operation on the binary values in the bitstream to determine a symbol string includes: Determine whether the current symbol is a second symbol according to the number of bits of the binary value; If the current symbol is not the second symbol, perform an inverse binarization operation according to a sixth mapping relationship between symbols and binary values to determine the current symbol, where the sixth mapping relationship does not include the mapping relationship between the second symbol and the binary value.

16. The method according to claim 15, wherein, The number of bits of the binary values corresponding to the symbols in the sixth mapping relationship is less than or equal to 4.

17. The method according to claim 15 or 16, wherein, The second symbol includes multiple symbols, and the number of bits of the binary values corresponding to the multiple symbols is less than or equal to 2.

18. An encoding method, applied to an encoder, includes: Perform a binarization operation on a symbol string to determine a binary value, where the symbol string is used to represent connection information of a three-dimensional mesh; Encode the binary value.

19. The method according to claim 18, wherein The operation of performing a binarization operation on a symbol string to determine a binary value includes: Encode the previous symbol of the current symbol in the symbol string; If the previous symbol is symbol C, perform a binarization operation on the current symbol according to a first mapping relationship between symbols and binary values, where the first mapping relationship does not include the mapping relationship between symbol L and / or symbol E and the binary value.

20. The method according to claim 19, wherein The number of bits of the binary values corresponding to the symbols in the first mapping relationship is less than or equal to 2.

21. The method according to claim 19 or 20, wherein, In the first mapping relationship, the number of bits of the binary values corresponding to different symbols is not exactly the same.

22. The method according to claim 21, wherein The first mapping relationship includes the mapping relationship between symbol C, symbol R, and symbol S and the binary value, and the first mapping relationship satisfies one of the following: The binary value corresponding to symbol C is 0, the binary value corresponding to symbol R is 10, and the binary value corresponding to symbol S is 11; or, The binary value corresponding to symbol C is 0, the binary value corresponding to symbol R is 11, and the binary value corresponding to symbol S is 10.

23. The method according to claim 18, wherein, The operation of performing a binarization operation on a symbol string to determine a binary value includes: Determine the target symbol with the highest occurrence frequency in the symbol string; Perform a binarization operation on the current symbol according to a second mapping relationship between symbols and binary values, where the second mapping relationship includes the mapping relationship between symbol L and / or symbol E and the binary value, and the number of bits of the binary value corresponding to the target symbol in the second mapping relationship is the smallest.

24. The method according to claim 23, wherein, In the second mapping relationship, the number of bits of the binary value corresponding to the target symbol is 1, and the number of bits of the binary values corresponding to the remaining symbols except the target symbol is 3.

25. The method according to claim 23 or 24, wherein The method further includes: Write the first identification information into the bitstream, where the first identification information is used to indicate the target symbol.

26. The method according to claim 25, wherein, The writing of the first identification information into the bitstream includes: Perform a binarization operation on the first identification information according to a third mapping relationship between symbols and binary values, in which the number of bits of the binary values corresponding to different symbols is the same.

27. The method according to claim 26, wherein The number of bits of the binary values corresponding to different symbols in the third mapping relationship is all 3.

28. The method according to claim 25, wherein, The writing of the first identification information into the bitstream includes: Perform a binarization operation on the first identification information according to a fourth mapping relationship between symbols and binary values, in which the number of bits of the binary values corresponding to different symbols is not completely the same.

29. The method according to claim 28, wherein, In the fourth mapping relationship, the number of bits of the binary value corresponding to symbol C is 1, and the number of bits of the binary values corresponding to the remaining symbols except symbol C is 3.

30. The method according to claim 18, wherein, The performing of the binarization operation on the symbol string to determine the binary value includes: Determine whether the current symbol is the first symbol; If the current symbol is not the first symbol, perform a binarization operation on the current symbol according to a fifth mapping relationship between symbols and binary values, where the fifth mapping relationship does not include the mapping relationship between the first symbol and the binary value.

31. The method according to claim 30, wherein, The method further includes: Write the second identification information into the bitstream, where the second identification information is used to indicate whether the current symbol is the first symbol.

32. The method according to claim 31, wherein, The second identification information includes multiple pieces of identification information, the first symbol includes multiple symbols, and the multiple pieces of identification information respectively indicate whether it is the corresponding symbol.

33. The method according to any one of claims 30 to 32, wherein, The number of bits of the binary values corresponding to the symbols in the fifth mapping relationship is less than or equal to 2.

34. The method according to claim 18, wherein The performing of the binarization operation on the symbol string to determine the binary value includes: Determine whether the current symbol is the second symbol according to the number of bits of the binary value; If the current symbol is not the second symbol, then perform a binarization operation on the current symbol according to a sixth mapping relationship between symbols and binary values, where the sixth mapping relationship does not include the mapping relationship between the second symbol and the binary value.

35. The method according to claim 34, wherein, The number of bits of the binary values corresponding to the symbols in the sixth mapping relationship is less than or equal to 4.

36. The method according to claim 34 or 35, wherein The second symbol includes multiple symbols, and the number of bits of the binary values corresponding to the multiple symbols is less than or equal to 2.

37. A decoder, comprising: A first decoding unit configured to perform an inverse binarization operation on the binary value in the bitstream to determine a symbol string, where the symbol string is used to represent the connection information of a three-dimensional grid; A second decoding unit configured to reconstruct the three-dimensional grid according to the symbol string.

38. A decoder, comprising: A memory for storing a computer program; A processor for, when running the computer program, executing the method according to any one of claims 1 to 17.

39. An encoder, comprising: A first encoding unit configured to perform a binarization operation on a symbol string to determine a binary value, where the symbol string is used to represent the connection information of a three-dimensional grid; A second encoding unit configured to encode the binary value.

40. An encoder, comprising: A memory for storing a computer program; A processor, configured to execute the method according to any one of claims 18 to 36 when running the computer program.

41. A non-volatile computer-readable storage medium storing a bitstream, the bitstream being generated by an encoding method using an encoder or being decoded by a decoding method using a decoder, wherein, The decoding method is the method according to any one of claims 1 to 17, and the encoding method is the method according to any one of claims 18 to 36.

42. A bitstream, the bitstream comprising a bitstream generated by the method according to any one of claims 18 to 36.

43. A computer-readable storage medium, wherein, The computer-readable storage medium stores a computer program, which when executed implements the method according to any one of claims 1 to 17 or 18 to 36.

Citation Information

Patent Citations

  • Coding and decoding method and device adopting binarization schemes with different lengths for different types of strings

    CN113518222A

  • Video decoding method and device, video coding method and device, equipment and storage medium

    CN114079780A

  • Unmatched pixel decoding method, unmatched pixel encoding method, decoder and encoder

    CN115086664A

  • Video decoding method and apparatus, video coding method and apparatus, device, and storage medium

    WO2022037464A1

  • Decoding method, coding method, decoder, and coder for unmatched pixels

    WO2022193868A1