Encoding method, decoding method, encoders, decoders, bitstream and storage media

By reducing the number of binary symbol bits of specific symbols and performing a binarization operation on the symbol string, the problem of low efficiency in encoding the three-dimensional grid connection information is solved, and more efficient encoding is achieved.

WO2025208498A1PCT designated stage Publication Date: 2025-10-09GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/086080
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-03
Publication Date
2025-10-09

AI Technical Summary

Technical Problem

In the prior art, the efficiency of encoding the connection information of a three-dimensional grid is limited by the problem of too many binary symbol bits.

Method used

By reducing the number of binary symbol bits of a specific symbol and using different mapping relationships to perform a binarization operation on the symbol string, the symbol string is determined to represent the connection information of the three-dimensional grid, and then encoded.

Benefits of technology

The coding efficiency of three-dimensional grid connection information is improved, and the total number of binary symbols in the symbol string is reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024086080_09102025_PF_FP_ABST
    Figure CN2024086080_09102025_PF_FP_ABST
Patent Text Reader

Abstract

The embodiments of the present application provide an encoding method, a decoding method, encoders, decoders, a bitstream and storage media. The decoding method comprises: performing a de-binarization operation on a binary symbol string in a bitstream to determine a symbol string, wherein the symbol string is used for representing connection information of three-dimensional meshes; and on the basis of the symbol string, reconstructing the three-dimensional meshes.
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 a binary symbol string 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 reconstructing the three-dimensional grid based on the symbol string.

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

[0007] According to a third aspect, a decoder is provided, comprising: a determination unit configured to perform a debinarization operation on a binary symbol string in a code stream to determine the symbol string; and a decoding unit configured to reconstruct a 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 determination unit configured to perform a binarization operation on a symbol string to determine a binary symbol string; and an encoding unit configured to encode the binary symbol string.

[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 a three-dimensional grid is represented based on a symbol string. However, if the number of bits of the binary symbol used to represent the symbol string is too large, the coding efficiency of the connection information will be limited. The embodiments of the present application reduce the number of bits of the binary symbol for specific symbols (such as symbols that appear frequently), thereby reducing the total number of binary symbols in 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 flowchart of a decoding method provided in an embodiment of the present application.

[0033] FIG10A is a schematic diagram of a binary symbol model provided in an embodiment of the present application.

[0034] FIG10B is a schematic diagram of a binary symbol model provided by another embodiment of the present application.

[0035] FIG. 11A is a schematic diagram of binarization provided in an embodiment of the present application.

[0036] FIG11B is a schematic diagram of binarization provided by another embodiment of the present application.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0057] Common test conditions for MPEG DMC

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

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

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

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

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

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

[0064] 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:

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

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

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

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

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

[0070] 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:

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

[0072] For the five symbols mentioned above, when using fixed-length encoding, three binary symbols are required to represent each symbol. To improve encoding and decoding efficiency, we can take advantage of the fact that symbol C appears frequently in the entire symbol string and use only one binary symbol to represent symbol C. The remaining four symbols are each represented by a different three binary symbols. As an example, a specific binarization method is shown below:

[0073] C:0

[0074] S:100

[0075] R:101

[0076] L:110

[0077] E:111

[0078] The above article details the process of binarizing connection information based on EdgeBreaker. As can be seen from the above introduction, in related technologies, the connection information of a three-dimensional grid is represented based on a symbol string. If the number of bits of the binary symbol used to represent the symbol string is too large, it will limit the efficiency of encoding and decoding the connection information.

[0079] 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 symbol string, where the symbol string is used to represent connection information of a three-dimensional grid; and encoding the binary symbol string.

[0080] An embodiment of the present application also provides a decoding method, comprising: performing a debinarization operation on a binary symbol string 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 based on the symbol string.

[0081] The embodiment of the present application reduces the number of bits of the binary symbols of specific symbols (such as symbols with a higher frequency of occurrence), thereby reducing the total number of binary symbols in the symbol string, which in turn helps to improve the coding efficiency of the connection information.

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

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

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

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

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

[0087] In some implementations, a debinarization operation may be performed on the binary symbol string in the code stream according to a first mapping relationship between the symbol and the binary symbol string to determine the symbol string.

[0088] The first mapping relationship may include a mapping relationship between a first symbol and a first binary symbol string, a mapping relationship between a second symbol and a second binary symbol string, and a mapping relationship between a third symbol and a third binary symbol string. The number of bits in the first binary symbol string is smaller than the number of bits in the second binary symbol string, and the number of bits in the second binary symbol string is smaller than the number of bits in the third binary symbol string.

[0089] In some implementations, the first binary symbol string consists of a 1-bit binary symbol. For example, the first binary symbol string is 0.

[0090] In some implementations, the second binary symbol string consists of 2 binary symbols. For example, the second binary symbol string is 10.

[0091] In some implementations, the third binary symbol string consists of 3 binary symbols. For example, the third binary symbol string is 110.

[0092] The embodiments of the present application do not specifically limit the method for determining the first symbol, the second symbol, and the third symbol. In some implementations, the three symbols described above can be determined based on the frequency of the symbols appearing in the symbol string. For example, the symbol with the highest frequency of appearance in the symbol string can be used as the first symbol, and the symbol with the second highest frequency of appearance in the symbol string can be used as the second symbol. In other words, the frequency of appearance of the first symbol in the symbol string is greater than the frequency of appearance of the second symbol in the symbol string, and the frequency of appearance of the second symbol in the symbol string is greater than the frequency of appearance of the third symbol in the symbol string.

[0093] In the embodiment of the present application, the binary symbol strings corresponding to the symbols with high frequency of occurrence are sequentially set to smaller bits according to the frequency of occurrence of each symbol in the symbol string, thereby reducing the number of bits of the binary symbol string corresponding to the symbol string, and further helping to improve the decoding efficiency of the symbol string.

[0094] In some implementations, the first symbol may be symbol C, the second symbol may be symbol R, and the third symbol may be symbol S.

[0095] As an example, if the first symbol is symbol C, the second symbol is symbol R, and the third symbol is symbol S, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, and the binary symbol string corresponding to symbol S is 110.

[0096] As described above, the first mapping relationship includes mapping relationships between the first symbol, the second symbol, and the third symbol and a binary symbol string. In some implementations, the first mapping relationship may further include a mapping relationship between a fourth symbol and a fourth binary symbol string. The fourth binary symbol string has a greater number of bits than the third binary symbol string. For example, the fourth binary symbol string may have 4 bits, such as 1110 or 1111.

[0097] In some implementations, the fourth symbol appears less frequently in the symbol string than the third symbol appears in the symbol string. For example, the fourth symbol may be the symbol E or the symbol L.

[0098] As an example, if the first symbol is symbol C, the second symbol is symbol R, the third symbol is symbol S, and the fourth symbol is symbol E or symbol L, then the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol E is 1110, and the binary symbol string corresponding to symbol L is 1111.

[0099] Alternatively, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol L is 1110, and the binary symbol string corresponding to symbol E is 1111.

[0100] As described above, in the first mapping relationship, the number of bits in the first binary symbol string is smaller than the number of bits in the second binary symbol string, and the number of bits in the second binary symbol string is smaller than the number of bits in the third binary symbol string. The first mapping relationship can be applied to the debinarization operation of the entire symbol string. Alternatively, the first mapping relationship can be applied to the debinarization operation of the symbols of a portion of the symbol string, while the symbols of another portion can be debinarized based on other mapping relationships.

[0101] In some implementations, when the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, the binary symbol string of the current symbol can be debinarized according to the first mapping relationship to determine the current symbol; when the previous symbol is symbol C, the binary symbol string of the current symbol can be debinarized according to the second mapping relationship between the symbol and the binary symbol string to determine the current symbol. The second mapping relationship does not include the mapping relationship between symbol E and / or symbol L and the binary symbol string, and the second mapping relationship includes the mapping relationship between the fifth symbol and the fifth binary symbol string, and the mapping relationship between the sixth symbol and the sixth binary symbol string. The number of bits of the fifth binary symbol string here is less than the number of bits of the sixth binary symbol string.

[0102] In some implementations, the fifth symbol may appear after the symbol C more frequently than the sixth symbol may appear after the symbol C. For example, the fifth symbol may refer to the symbol R, and the sixth symbol may refer to the symbol C.

[0103] In some implementations, the number of bits of the binary symbol strings corresponding to the symbols in the second mapping relationship is less than or equal to 2. The number of bits of the binary symbol strings corresponding to different symbols in the second mapping relationship may not be exactly the same.

[0104] For example, the fifth binary symbol string may consist of 1 binary symbol, and the sixth binary symbol string may consist of 2 binary symbols. For example, the fifth binary symbol string may be 0, and the sixth binary symbol string may be 10 or 11.

[0105] The second mapping relationship does not include the mapping relationship between symbol E and / or symbol L and the binary symbol string. In other words, the second mapping relationship may include the mapping relationship between symbol C, symbol R, and symbol S and the binary symbol string. For example, the fifth symbol may be symbol R, and the sixth symbol may be symbol C or symbol S; or the fifth symbol may be symbol C, and the sixth symbol may be symbol R or symbol S.

[0106] As an example, taking the fifth symbol as symbol R and the sixth symbol as symbol C or symbol S, in the second mapping relationship, the binary symbol string corresponding to symbol R is 0, the binary symbol string corresponding to symbol C is 10, and the binary symbol string corresponding to symbol S is 11. Alternatively, in the second mapping relationship, the binary symbol string corresponding to symbol R is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol C is 11.

[0107] As another example, taking the fifth symbol as symbol C and the sixth symbol as symbol R or symbol S, in the second mapping relationship, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, and the binary symbol string corresponding to symbol S is 11. Alternatively, in the second mapping relationship, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol R is 11.

[0108] In the second mapping relationship, based on the characteristic that the symbol decoded after symbol C in the symbol string is not symbol L or symbol E, the number of bits of the binary symbol string of the symbol decoded after symbol C can be reduced. Furthermore, by utilizing another characteristic of the symbol string, namely, the frequency of symbol R following symbol C is greater than the frequency of symbol C following symbol C, the number of bits of the binary symbol string corresponding to symbol R is set to the minimum. This further reduces the number of bits of the binary symbol string, helping to improve the decoding efficiency of the symbol string.

[0109] In addition to the first mapping relationship and the second mapping relationship described above, the debinarization operation may be performed on the binary symbol string in the code stream based on other mapping relationships.

[0110] For example, the binary symbol string in the code stream may be debinarized based on a third mapping relationship between the symbol and the binary symbol string to determine the symbol string. The third mapping relationship may be any mapping relationship between the symbol and the binary symbol string.

[0111] For example, when the previous symbol of the current symbol is not symbol C, or when the current symbol is the first symbol in a symbol string, in the third mapping relationship, the number of bits of the binary symbol string corresponding to the symbol is less than or equal to 3. Exemplarily, the binary symbol string corresponding to symbol C is 0, the binary symbol corresponding to symbol S is 100, the binary symbol string corresponding to symbol R is 101, the binary symbol string corresponding to symbol L is 110, and the binary symbol string corresponding to symbol E is 111. When the previous symbol is symbol C, in the third mapping relationship, the number of bits of the binary symbol string corresponding to the symbol is less than or equal to 2. Exemplarily, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol R is 11.

[0112] It should be understood that the first mapping relationship described above can be used alone or in combination with the second mapping relationship, and the present application embodiment does not specifically limit this. For example, the mapping relationship required for the debinarization operation of the binary symbol string can be determined based on the identification information in the syntax element.

[0113] For example, the first identification information can be obtained by parsing the code stream. The first identification information is used to indicate whether to perform a debinarization operation on the binary symbol string in the code stream based on the first mapping relationship and / or the second mapping relationship.

[0114] As an example, the first identification information may indicate that a debinarization operation is performed on a binary symbol string in combination with a first mapping relationship and a second mapping relationship. The combination of the first mapping relationship and the second mapping relationship here may include: when the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol E is 1110, and the binary symbol string corresponding to symbol L is 1111. When the previous symbol is symbol C, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, and the binary symbol string corresponding to symbol S is 11.

[0115] Alternatively, the combination of the first mapping relationship and the second mapping relationship may further include: when the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol E is 1110, and the binary symbol string corresponding to symbol L is 1111. When the previous symbol is symbol C, the binary symbol string corresponding to symbol R is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol C is 11.

[0116] The above describes the binary symbol strings corresponding to the symbols in the three mapping relationships. These binary symbol strings can be arithmetically decoded based on the binary symbol model.

[0117] There may be multiple binary symbol models for a binary symbol. For example, a binary symbol model may be selected from the following first group of binary symbol models (9 binary symbol models) or the second group of binary symbol models (8 binary symbol models).

[0118] The first set of binary symbol models may include:

[0119] The first set of binary symbol models can be seen in Figures 10A and 10B. The first binary symbol model includes: the total number of symbols in the CLERS symbol string is no more than 3,000, or the number of consecutive C symbols before the current symbol is less than 2; the second binary symbol model includes: the number of consecutive C symbols before the current symbol is no less than 2 and less than 7; the third binary symbol model includes: the number of consecutive C symbols before the current symbol is no less than 7; the fourth binary symbol model includes: the previous symbol of the current symbol is symbol S; the fifth binary symbol model includes: the previous symbol of the current symbol is symbol L; the sixth binary symbol model includes: the previous symbol of the current symbol is symbol R, and the previous previous symbol of the previous symbol is symbol C; the seventh binary symbol model includes: the previous symbol of the current symbol is symbol R, and the previous previous symbol of the previous symbol is symbol R; the eighth binary symbol model includes: the previous symbol of the current symbol is symbol R, and the previous previous symbol of the previous symbol is neither symbol C nor symbol R; and the ninth binary symbol model includes: the previous symbol of the current symbol is symbol E.

[0120] The second set of binary symbol models may include:

[0121] The first binary symbol model: the total number of symbols in the CLERS symbol string is not greater than 3000, or the number of consecutive symbols C before the current symbol is less than 2; the second binary symbol model: the number of consecutive symbols C before the current symbol is not less than 2 and less than 7; the third binary symbol model: the number of consecutive symbols C before the current symbol is not less than 7; the fourth binary symbol model: the previous symbol of the current symbol is symbol S or symbol E, or the previous symbol of the current symbol is symbol S; the fifth binary symbol model: the previous symbol of the current symbol is symbol L, or the previous symbol of the current symbol is symbol L or symbol E; the sixth binary symbol model: the previous symbol of the current symbol is symbol R, and the previous symbol of the previous one is symbol C; the seventh binary symbol model: the previous symbol of the current symbol is symbol R, and the previous symbol of the previous one is symbol R; the eighth binary symbol model: the previous symbol of the current symbol is symbol R, and the previous symbol of the previous one is neither symbol C nor symbol R.

[0122] Comparing the first set of binary symbol models with the second set of binary symbol models, it can be seen that the previous symbol of the current symbol in the second set of binary symbol models may be symbol S or symbol E.

[0123] The binary symbol string in the code stream can be arithmetically decoded based on the first set of binary symbol models or the second set of binary symbol models.

[0124] For example, as shown in FIG11A , if the binary symbol string of the current symbol has 4 binary symbols, each binary symbol can have a corresponding binary symbol model. For example, the first binary symbol of the binary symbol string can adopt the 8 binary symbol models in the second set of binary symbol models. For another example, the second binary symbol of the binary symbol string can adopt the 8 binary symbol models in the second set of binary symbol models. For another example, the third binary symbol of the binary symbol string can adopt the 4th, 5th, 6th, 7th, and 8th binary symbol models in the second set of binary symbol models. For another example, the fourth binary symbol of the binary symbol string can adopt the 4th, 5th, 6th, 7th, and 8th binary symbol models in the second set of binary symbol models.

[0125] Alternatively, as shown in FIG11A , if the binary symbol string of the current symbol has 4 binary symbols, each binary symbol can have a corresponding binary symbol model. For example, the first binary symbol of the binary symbol string can adopt the 9 binary symbol models in the first set of binary models. For another example, the second binary symbol of the binary symbol string can adopt the 9 binary symbol models in the first set of binary symbol models. For another example, the third binary symbol of the binary symbol string can adopt the 4th, 5th, 6th, 7th, 8th, and 9th binary symbol models in the first set of binary symbol models. For another example, the fourth binary symbol of the binary symbol string can adopt the 4th, 5th, 6th, 7th, 8th, and 9th binary symbol models in the first set of binary symbol models.

[0126] For example, as shown in FIG11B , if the binary symbol string of the current symbol has two binary symbols, each binary symbol can have a corresponding binary symbol model. For example, the first binary symbol of the binary symbol string can adopt one of the eight binary symbol models in the second set of binary symbol models. For another example, the second binary symbol of the binary symbol string can adopt one of the eight binary symbol models in the second set of binary symbol models.

[0127] As mentioned above when introducing the third mapping relationship, when the previous symbol of the current symbol is not symbol C, or when the current symbol is the first symbol in the symbol string, in the third mapping relationship, the number of bits of the binary symbol string corresponding to the symbol is less than or equal to 3. When the previous symbol is symbol C, in the third mapping relationship, the number of bits of the binary symbol string corresponding to the symbol is less than or equal to 2.

[0128] Exemplarily, the binary symbol string corresponding to the symbol in the third mapping relationship can be arithmetically decoded based on the second set of binary symbol models. If the binary symbol string consists of a 1-bit binary symbol, the binary symbol string can adopt 8 binary symbol models; if the binary symbol string consists of 2-bit binary symbols, the first binary symbol of the binary symbol string can adopt 8 binary symbol models, and the second binary symbol can adopt 8 binary symbol models; if the binary symbol string consists of 3-bit binary symbols, the first binary symbol of the binary symbol string can adopt 8 binary symbol models, the second binary symbol can adopt 5 binary symbol models, and the third binary symbol can adopt 5 or 8 binary symbol models. For example, the third binary symbol can adopt 5 binary symbol models when the second binary symbol is 1, or adopt 8 binary symbol models when the second binary symbol is 0.

[0129] Compared with the first group of binary symbol models, the second group of binary symbol models has fewer models, which means that without affecting the accuracy of the prediction, the computational overhead of the arithmetic decoding process of the binary symbol string will be smaller, which helps to improve the decoding efficiency.

[0130] In addition to performing arithmetic decoding on the binary symbol string in the code stream using the binary symbol model, arithmetic decoding can also be performed based on the binary symbol model combined with bypass coding.

[0131] In some implementations, at least one symbol in a symbol string corresponds to one or more binary symbols in the binary symbol string that are decoded using bypass coding. For example, if a binary symbol string consists of three binary symbols, the third binary symbol in the binary symbol string may be decoded using bypass coding. For another example, if a binary symbol string consists of four binary symbols, the third binary symbol and / or the fourth binary symbol in the binary symbol string may be decoded using bypass coding.

[0132] For example, referring to Figures 10A and 10B , when a debinarization operation is performed on a binary symbol string in a code stream based on the first mapping relationship, if the current symbol consists of 3 binary symbols, then the first and second binary symbols of the binary symbol string both use 8 binary symbol models; the third binary symbol can be decoded using a bypass coding method. For another example, if the current symbol consists of 4 binary symbols, then the first and second binary symbols of the binary symbol string both use 8 binary symbol models; the third and fourth binary symbols are decoded using a bypass coding method.

[0133] For another example, when a debinarization operation is performed on a binary symbol string in a code stream based on the third mapping relationship, if the binary symbol string consists of three binary symbols, then at least one binary symbol in the binary symbol string is decoded using bypass coding. For example, if the second binary symbol in the binary symbol string is 1, then the third binary symbol is decoded using bypass coding.

[0134] For example, in the third mapping relationship, symbol L corresponds to binary symbol string 110, and symbol E corresponds to binary symbol string 111. That is, when the second binary symbol of the binary symbol string is 1, the binary symbol string corresponds to symbol E and symbol L. Since symbols E and L appear less frequently in the symbol string, decoding their third binary symbol using bypass coding can improve the decoding efficiency of the symbol string without reducing prediction accuracy.

[0135] During the decoding process, the computational overhead required for arithmetic decoding of the current symbol based on the binary symbol model is relatively large. If some binary symbols of the current symbol are decoded using bypass coding, the overhead required for decoding the current symbol can be reduced, thereby helping to improve the decoding efficiency of the symbol string.

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

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

[0138] Using relevant test conditions, taking a lossless compression test environment as an example, testing based on the decoding method provided in the embodiment of the present application can save 0.1% of the codewords in the basic grid.

[0139] 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 12.

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

[0141] 12 , in step S1210 , a binary symbol string is determined by performing a binarization operation on the symbol string. The symbol string is used to represent the connection information of the three-dimensional grid.

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

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

[0144] In some implementations, a binary symbol string is determined by performing a binarization operation on the symbol string according to a first mapping relationship between the symbol and the binary symbol string.

[0145] The first mapping relationship may include a mapping relationship between a first symbol and a first binary symbol string, a mapping relationship between a second symbol and a second binary symbol string, and a mapping relationship between a third symbol and a third binary symbol string. The number of bits in the first binary symbol string is smaller than the number of bits in the second binary symbol string, and the number of bits in the second binary symbol string is smaller than the number of bits in the third binary symbol string.

[0146] In some implementations, the first binary symbol string consists of a 1-bit binary symbol. For example, the first binary symbol string is 0.

[0147] In some implementations, the second binary symbol string consists of 2 binary symbols. For example, the second binary symbol string is 10.

[0148] In some implementations, the third binary symbol string consists of 3 binary symbols. For example, the third binary symbol string is 110.

[0149] The embodiments of the present application do not specifically limit the method for determining the first symbol, the second symbol, and the third symbol. In some implementations, the three symbols described above can be determined based on the frequency of the symbols appearing in the symbol string. For example, the symbol with the highest frequency of appearance in the symbol string can be used as the first symbol, and the symbol with the second highest frequency of appearance in the symbol string can be used as the second symbol. In other words, the frequency of appearance of the first symbol in the symbol string is greater than the frequency of appearance of the second symbol in the symbol string, and the frequency of appearance of the second symbol in the symbol string is greater than the frequency of appearance of the third symbol in the symbol string.

[0150] In the embodiment of the present application, the binary symbol strings corresponding to the symbols with high frequency of occurrence are sequentially set to smaller bits according to the frequency of occurrence of each symbol in the symbol string, thereby reducing the number of bits of the binary symbol string corresponding to the symbol string, and further helping to improve the encoding efficiency of the symbol string.

[0151] In some implementations, the first symbol may be symbol C, the second symbol may be symbol R, and the third symbol may be symbol S.

[0152] As an example, if the first symbol is symbol C, the second symbol is symbol R, and the third symbol is symbol S, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, and the binary symbol string corresponding to symbol S is 110.

[0153] As described above, the first mapping relationship includes mapping relationships between the first symbol, the second symbol, and the third symbol and a binary symbol string. In some implementations, the first mapping relationship may further include a mapping relationship between a fourth symbol and a fourth binary symbol string. The fourth binary symbol string has a greater number of bits than the third binary symbol string. For example, the fourth binary symbol string may have 4 bits, such as 1110 or 1111.

[0154] In some implementations, the fourth symbol appears less frequently in the symbol string than the third symbol appears in the symbol string. For example, the fourth symbol may be the symbol E or the symbol L.

[0155] As an example, if the first symbol is symbol C, the second symbol is symbol R, the third symbol is symbol S, and the fourth symbol is symbol E or symbol L, then the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol E is 1110, and the binary symbol string corresponding to symbol L is 1111.

[0156] Alternatively, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol L is 1110, and the binary symbol string corresponding to symbol E is 1111.

[0157] As described above, in the first mapping relationship, the number of bits in the first binary symbol string is smaller than the number of bits in the second binary symbol string, and the number of bits in the second binary symbol string is smaller than the number of bits in the third binary symbol string. The first mapping relationship can be applied to the binarization operation of the entire symbol string. Alternatively, the first mapping relationship can be applied to the binarization operation of the symbols of a portion of the symbol string, while the symbols of another portion can be binarized based on other mapping relationships.

[0158] In some implementations, when the previous symbol of the current symbol is not symbol C, or when the current symbol is the first symbol in a symbol string, a binarization operation may be performed on the symbol string according to a first mapping relationship to determine a binary symbol string for the current symbol; and when the previous symbol is symbol C, a binarization operation may be performed on the symbol string according to a second mapping relationship between the symbol and the binary symbol string to determine a binary symbol string for the current symbol. The second mapping relationship does not include a mapping relationship between symbol E and / or symbol L and the binary symbol string, and the second mapping relationship includes a mapping relationship between the fifth symbol and the fifth binary symbol string, and a mapping relationship between the sixth symbol and the sixth binary symbol string. The number of bits of the fifth binary symbol string here is less than the number of bits of the sixth binary symbol string.

[0159] In some implementations, the fifth symbol may appear after the symbol C more frequently than the sixth symbol may appear after the symbol C. For example, the fifth symbol may refer to the symbol R, and the sixth symbol may refer to the symbol C.

[0160] In some implementations, the number of bits of the binary symbol strings corresponding to the symbols in the second mapping relationship is less than or equal to 2. The number of bits of the binary symbol strings corresponding to different symbols in the second mapping relationship may not be exactly the same.

[0161] For example, the fifth binary symbol string may consist of 1 binary symbol, and the sixth binary symbol string may consist of 2 binary symbols. For example, the fifth binary symbol string may be 0, and the sixth binary symbol string may be 10 or 11.

[0162] The second mapping relationship does not include the mapping relationship between symbol E and / or symbol L and the binary symbol string. In other words, the second mapping relationship may include the mapping relationship between symbol C, symbol R, and symbol S and the binary symbol string. For example, the fifth symbol may be symbol R, and the sixth symbol may be symbol C or symbol S; or the fifth symbol may be symbol C, and the sixth symbol may be symbol R or symbol S.

[0163] As an example, taking the fifth symbol as symbol R and the sixth symbol as symbol C or symbol S, in the second mapping relationship, the binary symbol string corresponding to symbol R is 0, the binary symbol string corresponding to symbol C is 10, and the binary symbol string corresponding to symbol S is 11. Alternatively, in the second mapping relationship, the binary symbol string corresponding to symbol R is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol C is 11.

[0164] As another example, taking the fifth symbol as symbol C and the sixth symbol as symbol R or symbol S, in the second mapping relationship, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, and the binary symbol string corresponding to symbol S is 11. Alternatively, in the second mapping relationship, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol R is 11.

[0165] In the second mapping relationship, based on the characteristic that the symbol encoded after symbol C in the symbol string is not symbol L or symbol E, the number of bits of the binary symbol string encoded after symbol C can be reduced. Furthermore, by utilizing another characteristic of the symbol string, namely, the frequency of symbol R following symbol C is greater than the frequency of symbol C following symbol C, the number of bits of the binary symbol string corresponding to symbol R is set to the minimum. This further reduces the number of bits of the binary symbol string, helping to improve the encoding efficiency of the symbol string.

[0166] In addition to the first mapping relationship and the second mapping relationship described above, the symbol string may be binarized based on other mapping relationships.

[0167] For example, a binary symbol string in the code stream may be binarized based on a third mapping relationship between symbols and binary symbol strings to determine the symbol string. The third mapping relationship may be any mapping relationship between symbols and binary symbol strings.

[0168] For example, when the previous symbol of the current symbol is not symbol C, or when the current symbol is the first symbol in a symbol string, in the third mapping relationship, the number of bits of the binary symbol string corresponding to the symbol is less than or equal to 3. Exemplarily, the binary symbol string corresponding to symbol C is 0, the binary symbol corresponding to symbol S is 100, the binary symbol string corresponding to symbol R is 101, the binary symbol string corresponding to symbol L is 110, and the binary symbol string corresponding to symbol E is 111. When the previous symbol is symbol C, in the third mapping relationship, the number of bits of the binary symbol string corresponding to the symbol is less than or equal to 2. Exemplarily, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol R is 11.

[0169] It should be understood that the first mapping relationship introduced above can be used alone or in combination with the second mapping relationship, and the embodiments of the present application do not specifically limit this.

[0170] In some implementations, the mapping relationship finally used may be determined based on the total number of binary symbols in the symbol string.

[0171] For example, if the total number of binary symbols in the symbol string in the first mapping relationship is the smallest, the symbol string is binarized according to the first mapping relationship. For another example, if the total number of binary symbols in the symbol string in the second mapping relationship is the smallest, the symbol string is binarized according to the second mapping relationship. Exemplarily, the total number of binary symbols in the symbol string corresponding to the first mapping relationship (or the second mapping relationship) and the total number of binary symbols in the symbol string corresponding to the third mapping relationship can be compared; then, the mapping relationship corresponding to the smallest total number of binary symbols is used as the mapping relationship finally used.

[0172] As an example, assuming that the previous symbol of the current symbol in the symbol string is not symbol C, or the current symbol is the first symbol in the symbol string, the number of symbols C is c1, the number of symbols R is r1, the number of symbols S is s1, the number of symbols E is e, and the number of symbols L is l; when the previous symbol is symbol C, the number of symbols C is c2, the number of symbols R is r2, and the number of symbols S is s2.

[0173] Assume that in a first mapping relationship, if the previous symbol of the current symbol is not symbol C, or if the current symbol is the first symbol in a symbol string, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol E is 1110, and the binary symbol string corresponding to symbol L is 1111. Assume that in a second mapping relationship, if the previous symbol is symbol C, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, and the binary symbol string corresponding to symbol S is 11. Based on the above correspondence between symbols and binary symbol strings, the total number of binary symbols in the symbol string in the first mapping relationship and the second mapping relationship can be determined, which can be referred to herein as the first number. The first number can be expressed as c1+c2+4e+4l+2r1+2r2+3s1+2s2.

[0174] Alternatively, assuming that in a first mapping relationship, if the previous symbol of the current symbol is not symbol C, or if the current symbol is the first symbol in a symbol string, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol E is 1110, and the binary symbol string corresponding to symbol L is 1111. Assuming that in a second mapping relationship, if the previous symbol is symbol C, the binary symbol string corresponding to symbol R is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol C is 11. Based on the above correspondence between symbols and binary symbol strings, the total number of binary symbols in the symbol string in the first and second mapping relationships can be determined, which may be referred to herein as the second number. The second number can be expressed as c1+2c2+4e+4l+2r1+r2+3s1+2s2.

[0175] Assume that in the third mapping relationship, if the previous symbol of the current symbol is not symbol C, or if the current symbol is the first symbol in the symbol string, the binary symbol string corresponding to symbol C is 0, the binary symbol corresponding to symbol S is 100, the binary symbol string corresponding to symbol R is 101, the binary symbol string corresponding to symbol L is 110, and the binary symbol string corresponding to symbol E is 111; or, if the previous symbol is symbol C, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol R is 11. Based on the above correspondence between symbols and binary symbol strings, the total number of binary symbols in the symbol string in the third mapping relationship can be determined, which can be referred to herein as the third number. The third number can be expressed as c1+c2+3e+3l+3r1+2r2+3s1+2s2.

[0176] Compare the first, second, and third quantities. Calculate the difference between the first and third quantities based on the formula above. If the first quantity is less than or equal to the third quantity (or the difference between the third and first quantities exceeds a certain threshold), that is, r1≥e+l, that is, when "the number of current symbols that are symbol R and the previous symbol that is not symbol C" is greater than or equal to "the total number of symbols E and L," the mapping relationship used is: when the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol E is 1110, and the binary symbol string corresponding to symbol L is 1111. When the previous symbol is symbol C, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, and the binary symbol string corresponding to symbol S is 11.

[0177] The difference between the second number and the third number is calculated based on the formula above. If the second number is less than or equal to the third number (or the difference between the third number and the second number exceeds a certain threshold), that is, when r1+r2≥c2+e+l is obtained, that is, when "the number of symbols R" is greater than or equal to "the total number of symbols E and L, and the current symbol is symbol C and the previous symbol is also symbol C", the mapping relationship used is: when the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol E is 1110, and the binary symbol string corresponding to symbol L is 1111. When the previous symbol is symbol C, the binary symbol string corresponding to symbol R is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol C is 11.

[0178] At the encoding end, the mapping relationship finally used can be written into the code stream in the form of identification information, so that the decoding end can perform a debinarization operation on the binary symbol string based on the same mapping relationship.

[0179] For example, the first identification information may be written into the code stream. The first identification information may be used to indicate whether to perform a binarization operation on the symbol string based on the first mapping relationship and / or the second mapping relationship.

[0180] As an example, the first identification information may indicate that a binarization operation is performed on a symbol string in combination with a first mapping relationship and a second mapping relationship. The combination of the first mapping relationship and the second mapping relationship may include: when the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol E is 1110, and the binary symbol string corresponding to symbol L is 1111. When the previous symbol is symbol C, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, and the binary symbol string corresponding to symbol S is 11.

[0181] Alternatively, the combination of the first mapping relationship and the second mapping relationship may further include: when the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, the binary symbol string corresponding to symbol C is 0, the binary symbol string corresponding to symbol R is 10, the binary symbol string corresponding to symbol S is 110, the binary symbol string corresponding to symbol E is 1110, and the binary symbol string corresponding to symbol L is 1111. When the previous symbol is symbol C, the binary symbol string corresponding to symbol R is 0, the binary symbol string corresponding to symbol S is 10, and the binary symbol string corresponding to symbol C is 11.

[0182] In step S1220, the binary symbol string is encoded.

[0183] The above describes the binary symbol strings corresponding to the symbols in the three mapping relationships. These binary symbol strings can be arithmetically coded based on the binary symbol model.

[0184] There may be multiple binary symbol models for a binary symbol. For example, a binary symbol model may be selected from the following first group of binary symbol models (9 binary symbol models) or the second group of binary symbol models (8 binary symbol models).

[0185] The first set of binary symbol models may include:

[0186] The first set of binary symbol models can be seen in Figures 10A and 10B. The first binary symbol model includes: the total number of symbols in the CLERS symbol string is no more than 3,000, or the number of consecutive C symbols before the current symbol is less than 2; the second binary symbol model includes: the number of consecutive C symbols before the current symbol is no less than 2 and less than 7; the third binary symbol model includes: the number of consecutive C symbols before the current symbol is no less than 7; the fourth binary symbol model includes: the previous symbol of the current symbol is symbol S; the fifth binary symbol model includes: the previous symbol of the current symbol is symbol L; the sixth binary symbol model includes: the previous symbol of the current symbol is symbol R, and the previous previous symbol of the previous symbol is symbol C; the seventh binary symbol model includes: the previous symbol of the current symbol is symbol R, and the previous previous symbol of the previous symbol is symbol R; the eighth binary symbol model includes: the previous symbol of the current symbol is symbol R, and the previous previous symbol of the previous symbol is neither symbol C nor symbol R; and the ninth binary symbol model includes: the previous symbol of the current symbol is symbol E.

[0187] The second set of binary symbol models may include:

[0188] The first binary symbol model: the total number of symbols in the CLERS symbol string is not greater than 3000, or the number of consecutive symbols C before the current symbol is less than 2; the second binary symbol model: the number of consecutive symbols C before the current symbol is not less than 2 and less than 7; the third binary symbol model: the number of consecutive symbols C before the current symbol is not less than 7; the fourth binary symbol model: the previous symbol of the current symbol is symbol S or symbol E, or the previous symbol of the current symbol is symbol S; the fifth binary symbol model: the previous symbol of the current symbol is symbol L, or the previous symbol of the current symbol is symbol L or symbol E; the sixth binary symbol model: the previous symbol of the current symbol is symbol R, and the previous symbol of the previous one is symbol C; the seventh binary symbol model: the previous symbol of the current symbol is symbol R, and the previous symbol of the previous one is symbol R; the eighth binary symbol model: the previous symbol of the current symbol is symbol R, and the previous symbol of the previous one is neither symbol C nor symbol R.

[0189] Comparing the first set of binary symbol models with the second set of binary symbol models, it can be seen that the previous symbol of the current symbol in the second set of binary symbol models may be symbol S or symbol E.

[0190] The symbol string may be arithmetically encoded based on the first set of binary symbol models or the second set of binary symbol models.

[0191] For example, as shown in FIG11A , if the binary symbol string of the current symbol has 4 binary symbols, each binary symbol can have a corresponding binary symbol model. For example, the first binary symbol of the binary symbol string can adopt the 8 binary symbol models in the second set of binary symbol models. For another example, the second binary symbol of the binary symbol string can adopt the 8 binary symbol models in the second set of binary symbol models. For another example, the third binary symbol of the binary symbol string can adopt the 4th, 5th, 6th, 7th, and 8th binary symbol models in the second set of binary symbol models. For another example, the fourth binary symbol of the binary symbol string can adopt the 4th, 5th, 6th, 7th, and 8th binary symbol models in the second set of binary symbol models.

[0192] Alternatively, as shown in FIG11A , if the binary symbol string of the current symbol has 4 binary symbols, each binary symbol can have a corresponding binary symbol model. For example, the first binary symbol of the binary symbol string can adopt the 9 binary symbol models in the first set of binary models. For another example, the second binary symbol of the binary symbol string can adopt the 9 binary symbol models in the first set of binary symbol models. For another example, the third binary symbol of the binary symbol string can adopt the 4th, 5th, 6th, 7th, 8th, and 9th binary symbol models in the first set of binary symbol models. For another example, the fourth binary symbol of the binary symbol string can adopt the 4th, 5th, 6th, 7th, 8th, and 9th binary symbol models in the first set of binary symbol models.

[0193] For example, as shown in FIG11B , if the binary symbol string of the current symbol has two binary symbols, each binary symbol can have a corresponding binary symbol model. For example, the first binary symbol of the binary symbol string can adopt one of the eight binary symbol models in the second set of binary symbol models. For another example, the second binary symbol of the binary symbol string can adopt one of the eight binary symbol models in the second set of binary symbol models.

[0194] As mentioned above when introducing the third mapping relationship, when the previous symbol of the current symbol is not symbol C, or when the current symbol is the first symbol in the symbol string, in the third mapping relationship, the number of bits of the binary symbol string corresponding to the symbol is less than or equal to 3. When the previous symbol is symbol C, in the third mapping relationship, the number of bits of the binary symbol string corresponding to the symbol is less than or equal to 2.

[0195] Exemplarily, the binary symbol string corresponding to the symbol in the third mapping relationship can be arithmetically coded based on the second set of binary symbol models. If the binary symbol string consists of a 1-bit binary symbol, the binary symbol string can adopt 8 binary symbol models; if the binary symbol string consists of 2-bit binary symbols, the first binary symbol of the binary symbol string can adopt 8 binary symbol models, and the second binary symbol can adopt 8 binary symbol models; if the binary symbol string consists of 3-bit binary symbols, the first binary symbol of the binary symbol string can adopt 8 binary symbol models, the second binary symbol can adopt 5 binary symbol models, and the third binary symbol can adopt 5 or 8 binary symbol models. For example, the third binary symbol can adopt 5 binary symbol models when the second binary symbol is 1, or adopt 8 binary symbol models when the second binary symbol is 0.

[0196] Compared with the first group of binary symbol models, the second group of binary symbol models has fewer models, which means that without affecting the accuracy of the prediction, the computational overhead of the arithmetic coding process of the binary symbol string will be smaller, which helps to improve the coding efficiency.

[0197] In addition to performing arithmetic coding on a symbol string using a binary symbol model, arithmetic coding can also be performed based on a binary symbol model combined with a bypass coding method.

[0198] In some implementations, in a symbol string, one or more binary symbols in a binary symbol string corresponding to at least one symbol are encoded using a bypass encoding method. For example, if a binary symbol string consists of three binary symbols, the third binary symbol in the binary symbol string may be encoded using a bypass encoding method. For another example, if a binary symbol string consists of four binary symbols, the third binary symbol and / or the fourth binary symbol in the binary symbol string may be encoded using a bypass encoding method.

[0199] For example, referring to Figures 10A and 10B , when a binary symbol string in a code stream is binarized based on the first mapping relationship, if the current symbol consists of 3 binary symbols, then the first and second binary symbols of the binary symbol string are both encoded using the 8 binary symbol models; the third binary symbol can be encoded using a bypass coding method. For another example, if the current symbol consists of 4 binary symbols, then the first and second binary symbols of the binary symbol string are both encoded using the 8 binary symbol models; the third and fourth binary symbols are encoded using a bypass coding method.

[0200] For another example, when a binary symbol string in a code stream is binarized based on the third mapping relationship, if the binary symbol string consists of three binary symbols, then at least one binary symbol in the binary symbol string is encoded using bypass coding. For example, if the second binary symbol in the binary symbol string is 1, then the third binary symbol is encoded using bypass coding.

[0201] For example, in the third mapping relationship, symbol L corresponds to binary symbol string 110, and symbol E corresponds to binary symbol string 111. That is, when the second binary symbol of the binary symbol string is 1, the binary symbol string corresponds to symbol E and symbol L. Since symbols E and L appear less frequently in the symbol string, encoding their third binary symbol using bypass coding can improve the coding efficiency of the symbol string without reducing prediction accuracy.

[0202] During the encoding process, the computational overhead required for arithmetic encoding of the current symbol based on the binary symbol model is relatively large. If some binary symbols of the current symbol are encoded using bypass coding, the overhead required for encoding the current symbol can be reduced, thereby helping to improve the encoding efficiency of the symbol string.

[0203] The method embodiment of the present application is described in detail above in conjunction with Figures 1 to 12. The device embodiment of the present application is described in detail below in conjunction with Figures 13 to 16. 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.

[0204] FIG13 is a schematic diagram of the structure of a decoder provided by an embodiment of the present application. As shown in FIG13 , the decoder 1300 may include a determination unit 1310 and a decoding unit 1320 .

[0205] The determining unit 1310 is configured to perform a debinarization operation on a binary symbol string in the code stream to determine a symbol string, where the symbol string is used to represent connection information of a three-dimensional grid.

[0206] The decoding unit 1320 is configured to reconstruct the three-dimensional grid according to the symbol string.

[0207] In some implementations, the determination unit 1310 is further configured to perform a debinarization operation on the binary symbol string in the code stream based on a first mapping relationship between symbols and binary symbol strings to determine the symbol string; wherein the first mapping relationship includes a mapping relationship between the first symbol and the first binary symbol string, a mapping relationship between the second symbol and the second binary symbol string, and a mapping relationship between the third symbol and the third binary symbol string, the number of bits of the first binary symbol string is smaller than the number of bits of the second binary symbol string, and the number of bits of the second binary symbol string is smaller than the number of bits of the third binary symbol string.

[0208] In some implementations, the first symbol appears more frequently in the symbol string than the second symbol, and the second symbol appears more frequently in the symbol string than the third symbol.

[0209] In some implementations, the first binary symbol string consists of 1-bit binary symbols; and / or, the second binary symbol string consists of 2-bit binary symbols; and / or, the third binary symbol string consists of 3-bit binary symbols.

[0210] In some implementations, the first symbol is symbol C, the second symbol is symbol R, and the third symbol is symbol S.

[0211] In some implementations, the first binary symbol string is 0; and / or, the second binary symbol string is 10; and / or, the third binary symbol string is 110.

[0212] In some implementations, the first mapping relationship further includes a mapping relationship between a fourth symbol and a fourth binary symbol string, and the number of bits of the fourth binary symbol string is greater than the number of bits of the third binary symbol string.

[0213] In some implementations, the fourth symbol appears less frequently in the string of symbols than the third symbol appears in the string of symbols.

[0214] In some implementations, the fourth symbol is symbol E or symbol L.

[0215] In some implementations, the fourth binary symbol string consists of 4-bit binary symbols.

[0216] In some implementations, the fourth binary symbol string is 1110 or 1111.

[0217] In some implementations, one or more binary symbols in a binary symbol string corresponding to at least one symbol are decoded using a bypass coding method.

[0218] In some implementations, the binary symbol string corresponding to the at least one symbol consists of N-bit binary symbols, where the value of N is greater than or equal to 3.

[0219] In some implementations, if the binary symbol string corresponding to the at least one symbol consists of 3-bit binary symbols, the 3rd binary symbol is decoded using a bypass coding method; and / or, if the binary symbol string corresponding to the at least one symbol consists of 4-bit binary symbols, the 3rd binary symbol and / or the 4th binary symbol are decoded using a bypass coding method.

[0220] In some implementations, when the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, the binary symbol string in the code stream is debinarized according to the first mapping relationship to determine the current symbol; when the previous symbol is symbol C, the binary symbol string in the code stream is debinarized according to the second mapping relationship between symbols and binary symbol strings to determine the current symbol; wherein the second mapping relationship includes at least a mapping relationship between the fifth symbol and the fifth binary symbol string, and a mapping relationship between the sixth symbol and the sixth binary symbol string, and the number of bits of the fifth binary symbol string is less than the number of bits of the sixth binary symbol string.

[0221] In some implementations, the fifth symbol appears after symbol C more frequently than the sixth symbol appears after symbol C.

[0222] In some implementations, the number of bits of the binary symbol strings corresponding to the symbols in the second mapping relationship is less than or equal to 2.

[0223] In some implementations, in the second mapping relationship, the number of bits of the binary symbol strings corresponding to different symbols is not exactly the same.

[0224] In some implementations, the fifth binary symbol string consists of 1-bit binary symbols; and / or the sixth binary symbol string consists of 2-bit binary symbols.

[0225] In some implementations, the fifth symbol is symbol R, and the sixth symbol is symbol C or symbol S; or, the fifth symbol is symbol C, and the sixth symbol is symbol R or symbol S.

[0226] In some implementations, the fifth binary symbol string is 0, and the sixth binary symbol string is 10 or 11.

[0227] In some implementations, the method further includes: parsing first identification information, where the first identification information is used to indicate whether to perform a debinarization operation on the binary symbol string in the code stream based on the first mapping relationship and / or the second mapping relationship.

[0228] In some implementations, the performing a debinarization operation on the binary symbol string in the code stream to determine the symbol string includes: performing a debinarization operation on the binary symbol string in the code stream according to a third mapping relationship between the symbol and the binary symbol string to determine the symbol string; wherein, in the third mapping relationship, the number of binary symbol models for each binary symbol in the binary symbol string is less than or equal to 8.

[0229] In some implementations, the previous symbol of the binary symbol model of the binary symbol string excluding the current symbol is symbol E.

[0230] In some implementations, if the binary symbol string consists of a 1-bit binary symbol, the binary symbol string corresponds to 8 binary symbol models; and / or, if the binary symbol string consists of a 2-bit binary symbol, the 1st binary symbol of the binary symbol string corresponds to 8 binary symbol models, and the 2nd binary symbol corresponds to 8 binary symbol models; and / or, if the binary symbol string consists of a 3-bit binary symbol, the 1st binary symbol of the binary symbol string corresponds to 8 binary symbol models, the 2nd binary symbol corresponds to 5 binary symbol models, and the 3rd binary symbol corresponds to 5 or 8 binary symbol models.

[0231] In some implementations, if the binary symbol string consists of 3 binary symbols, at least one binary symbol in the binary symbol string is decoded using bypass coding.

[0232] In some implementations, if the second binary symbol of the binary symbol string is 1, the third binary symbol is decoded using bypass coding.

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

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

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

[0236] Based on the composition of the above-mentioned decoder 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 achieve 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,

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

[0238] Memory 1420, for storing computer programs;

[0239] Processor 1430 is configured to, when running the computer program, perform the following operations: debinarize a binary symbol string 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 reconstruct the three-dimensional grid based on the symbol string.

[0240] It is understood that the memory 1420 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 synchronous DRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (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.

[0241] Processor 1430 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 1430. The above-mentioned processor 1430 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 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 1420 , and the processor 1430 reads the information in the memory 1420 and completes the steps of the above method in combination with its hardware.

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

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

[0244] FIG15 is a schematic diagram of the structure of an encoder provided by an embodiment of the present application. As shown in FIG15 , the encoder 1500 includes a determination unit 1510 and an encoding unit 1520 .

[0245] The determining unit 1510 is configured to perform a binarization operation on the symbol string to determine a binary symbol string, where the symbol string is used to represent connection information of the three-dimensional grid.

[0246] The encoding unit 1520 is configured to encode the binary symbol string.

[0247] In some implementations, the determination unit 1510 is further configured to perform a binarization operation on the symbol string based on a first mapping relationship between the symbol and the binary symbol string to determine the binary symbol string; wherein the first mapping relationship includes a mapping relationship between the first symbol and the first binary symbol string, a mapping relationship between the second symbol and the second binary symbol string, and a mapping relationship between the third symbol and the third binary symbol string, the number of bits of the first binary symbol string is smaller than the number of bits of the second binary symbol string, and the number of bits of the second binary symbol string is smaller than the number of bits of the third binary symbol string.

[0248] In some implementations, the first symbol appears more frequently in the symbol string than the second symbol, and the second symbol appears more frequently in the symbol string than the third symbol.

[0249] In some implementations, the first binary symbol string consists of 1-bit binary symbols; and / or, the second binary symbol string consists of 2-bit binary symbols; and / or, the third binary symbol string consists of 3-bit binary symbols.

[0250] In some implementations, the first symbol is symbol C, the second symbol is symbol R, and the third symbol is symbol S.

[0251] In some implementations, the first binary symbol string is 0; and / or, the second binary symbol string is 10; and / or, the third binary symbol string is 110.

[0252] In some implementations, the first mapping relationship further includes a mapping relationship between a fourth symbol and a fourth binary symbol string, and the number of bits of the fourth binary symbol string is greater than the number of bits of the third binary symbol string.

[0253] In some implementations, the fourth symbol appears less frequently in the string of symbols than the third symbol appears in the string of symbols.

[0254] In some implementations, the fourth symbol is symbol E or symbol L.

[0255] In some implementations, the fourth binary symbol string consists of 4-bit binary symbols.

[0256] In some implementations, the fourth binary symbol string is 1110 or 1111.

[0257] In some implementations, one or more binary symbols in a binary symbol string corresponding to at least one symbol are encoded using a bypass encoding method.

[0258] In some implementations, the binary symbol string corresponding to the at least one symbol consists of N-bit binary symbols, where the value of N is greater than or equal to 3.

[0259] In some implementations, if the binary symbol string corresponding to the at least one symbol consists of 3-bit binary symbols, the 3rd binary symbol is encoded using a bypass encoding method; and / or, if the binary symbol string corresponding to the at least one symbol consists of 4-bit binary symbols, the 3rd binary symbol and / or the 4th binary symbol are encoded using a bypass encoding method.

[0260] In some implementations, when the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, the symbol string is binarized according to the first mapping relationship to determine the binary symbol string of the current symbol; when the previous symbol is symbol C, the current symbol is binarized according to the second mapping relationship between the symbol and the binary symbol string to determine the binary symbol string of the current symbol; wherein the second mapping relationship includes at least the mapping relationship between the fifth symbol and the fifth binary symbol string, and the mapping relationship between the sixth symbol and the sixth binary symbol string, and the number of bits of the fifth binary symbol string is less than the number of bits of the sixth binary symbol string.

[0261] In some implementations, the fifth symbol appears after symbol C more frequently than the sixth symbol appears after symbol C.

[0262] In some implementations, the number of bits of the binary symbol strings corresponding to the symbols in the second mapping relationship is less than or equal to 2.

[0263] In some implementations, in the second mapping relationship, the number of bits of the binary symbol strings corresponding to different symbols is not exactly the same.

[0264] In some implementations, the fifth binary symbol string consists of 1-bit binary symbols; and / or the sixth binary symbol string consists of 2-bit binary symbols.

[0265] In some implementations, the fifth symbol is symbol R, and the sixth symbol is symbol C or symbol S; or, the fifth symbol is symbol C, and the sixth symbol is symbol R or symbol S.

[0266] In some implementations, the fifth binary symbol string is 0, and the sixth binary symbol string is 10 or 11.

[0267] In some implementations, the binarizing the symbol string according to the first mapping relationship includes: if the total number of binary symbols in the symbol string in the first mapping relationship is the smallest, then binarizing the symbol string according to the first mapping relationship.

[0268] In some implementations, first identification information is written into the code stream, where the first identification information is used to indicate whether to perform a binarization operation on the symbol string based on the first mapping relationship and / or the second mapping relationship.

[0269] In some implementations, if the total number of binary symbols of the binary symbol string determined based on the first mapping relationship and / or the second mapping relationship is the smallest, the symbol string is binarized according to the first mapping relationship and / or the second mapping relationship.

[0270] In some implementations, a binary symbol string is determined by performing a binarization operation on the symbol string according to a third mapping relationship between the symbol and the binary symbol string; wherein, in the third mapping relationship, the number of binary symbol models of the binary symbols in the binary symbol string is less than or equal to 8.

[0271] In some implementations, the previous symbol of the binary symbol model of the binary symbol string excluding the current symbol is symbol E.

[0272] In some implementations, if the binary symbol string consists of a 1-bit binary symbol, the binary symbol string corresponds to 8 binary symbol models; and / or, if the binary symbol string consists of a 2-bit binary symbol, the 1st binary symbol of the binary symbol string corresponds to 8 binary symbol models, and the 2nd binary symbol corresponds to 8 binary symbol models; and / or, if the binary symbol string consists of a 3-bit binary symbol, the 1st binary symbol of the binary symbol string corresponds to 8 binary symbol models, the 2nd binary symbol corresponds to 5 binary symbol models, and the 3rd binary symbol corresponds to 5 or 8 binary symbol models.

[0273] In some implementations, if the binary symbol string consists of 3 binary symbols, at least one binary symbol in the binary symbol string is encoded using bypass encoding.

[0274] In some implementations, if the second binary symbol of the binary symbol string is 1, the third binary symbol is encoded using bypass encoding.

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

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

[0277] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 1500. 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.

[0278] Based on the composition of the above-mentioned encoder 1500 and the computer-readable storage medium, refer to Figure 16, which shows a specific hardware structure diagram of the encoder 1600 provided in an embodiment of the present application. As shown in Figure 16, the encoder 1600 may include: a communication interface 1610, a memory 1620 and a processor 1630; each component is coupled together through a bus system 1640. It can be understood that the bus system 1640 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 1640 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 1640 in Figure 16. Among them,

[0279] Communication interface 1610, used for sending and receiving signals during the process of sending and receiving information with other external network elements;

[0280] Memory 1620, for storing computer programs;

[0281] The processor 1630 is configured to, when running the computer program, perform the following operations: binarizing the symbol string to determine a binary symbol string, where the symbol string is used to represent connection information of a three-dimensional grid; and encoding the binary symbol string.

[0282] It will be appreciated that the memory 1620 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 1620 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0283] Processor 1630 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 1630. Processor 1630 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 conjunction with 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 1620. Processor 1630 reads information from memory 1620 and, in conjunction with its hardware, completes the steps of the above method.

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

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

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

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

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

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

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

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

[0292] 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 the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A decoding method, applied to a decoder, comprising: performing a debinarization operation on a binary symbol string in a code stream to determine a symbol string, wherein the symbol string is used to represent connection information of a three-dimensional grid; The three-dimensional grid is reconstructed according to the symbol string.

2. The method according to claim 1, wherein The performing a debinarization operation on the binary symbol string in the code stream to determine the symbol string includes: performing a debinarization operation on the binary symbol string in the code stream according to a first mapping relationship between symbols and binary symbol strings to determine the symbol string; Among them, the first mapping relationship includes a mapping relationship between the first symbol and the first binary symbol string, a mapping relationship between the second symbol and the second binary symbol string, and a mapping relationship between the third symbol and the third binary symbol string. The number of bits of the first binary symbol string is smaller than the number of bits of the second binary symbol string, and the number of bits of the second binary symbol string is smaller than the number of bits of the third binary symbol string.

3. The method according to claim 2, wherein: The frequency of the first symbol appearing in the symbol string is greater than the frequency of the second symbol appearing in the symbol string, and the frequency of the second symbol appearing in the symbol string is greater than the frequency of the third symbol appearing in the symbol string.

4. The method according to claim 2 or 3, wherein: The first binary symbol string consists of a single binary symbol; and / or, The second binary symbol string consists of 2 binary symbols; and / or, The third binary symbol string consists of 3 binary symbols.

5. The method according to claim 4, wherein The first symbol is symbol C, the second symbol is symbol R, and the third symbol is symbol S.

6. The method according to any one of claims 2 to 5, wherein: The first binary symbol string is 0; and / or, The second binary symbol string is 10; and / or, The third binary symbol string is 110.

7. The method according to any one of claims 2 to 6, wherein The first mapping relationship further includes a mapping relationship between a fourth symbol and a fourth binary symbol string, where the number of bits of the fourth binary symbol string is greater than the number of bits of the third binary symbol string.

8. The method according to claim 7, wherein: The frequency of the fourth symbol appearing in the symbol string is less than the frequency of the third symbol appearing in the symbol string.

9. The method according to claim 7 or 8, wherein The fourth symbol is the symbol E or the symbol L.

10. The method according to any one of claims 7 to 9, wherein The fourth binary symbol string consists of 4 binary symbols.

11. The method according to any one of claims 7 to 10, wherein The fourth binary symbol string is 1110 or 1111.

12. The method according to any one of claims 2 to 11, wherein One or more binary symbols in a binary symbol string corresponding to at least one symbol are decoded using a bypass coding method.

13. The method according to claim 12, wherein: The binary symbol string corresponding to the at least one symbol consists of N-bit binary symbols, and the value of N is greater than or equal to 3.

14. The method according to claim 13, wherein: If the binary symbol string corresponding to the at least one symbol consists of three binary symbols, the third binary symbol is decoded using a bypass encoding method; and / or, If the binary symbol string corresponding to the at least one symbol consists of 4 binary symbols, the third binary symbol and / or the fourth binary symbol is decoded using a bypass coding method.

15. The method according to any one of claims 2 to 14, wherein The debinarization operation on the binary symbol string in the code stream includes: When the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, a debinarization operation is performed on the binary symbol string in the code stream according to the first mapping relationship to determine the current symbol.

16. The method according to claim 15, wherein The method further comprises: When the previous symbol is symbol C, performing a debinarization operation on the binary symbol string in the code stream according to a second mapping relationship between symbols and binary symbol strings to determine the current symbol; The second mapping relationship includes at least a mapping relationship between the fifth symbol and the fifth binary symbol string, and a mapping relationship between the sixth symbol and the sixth binary symbol string, and the number of bits of the fifth binary symbol string is less than the number of bits of the sixth binary symbol string.

17. The method according to claim 16, wherein The frequency of the fifth symbol appearing after the symbol C is greater than the frequency of the sixth symbol appearing after the symbol C.

18. The method according to claim 16 or 17, wherein The number of bits of the binary symbol strings corresponding to the symbols in the second mapping relationship is less than or equal to 2.

19. The method according to claim 18, wherein In the second mapping relationship, the number of bits of the binary symbol strings corresponding to different symbols is not exactly the same.

20. The method according to any one of claims 16 to 19, wherein: The fifth binary symbol string consists of a 1-bit binary symbol; and / or, The sixth binary symbol string consists of 2-bit binary symbols.

21. The method according to claim 20, wherein: The fifth symbol is the symbol R, and the sixth symbol is the symbol C or the symbol S; or The fifth symbol is the symbol C, and the sixth symbol is the symbol R or the symbol S.

22. The method according to any one of claims 16 to 21, wherein The fifth binary symbol string is 0, and the sixth binary symbol string is 10 or 11.

23. The method according to any one of claims 16 to 22, wherein Before performing the debinarization operation on the binary symbol string in the code stream, the method further includes: Parse first identification information, where the first identification information is used to indicate whether to perform a debinarization operation on the binary symbol string in the code stream based on the first mapping relationship and / or the second mapping relationship.

24. The method according to claim 1, wherein The performing a debinarization operation on the binary symbol string in the code stream to determine the symbol string includes: performing a debinarization operation on the binary symbol string in the code stream according to a third mapping relationship between symbols and binary symbol strings to determine the symbol string; Wherein, in the third mapping relationship, the number of binary symbol models of each binary symbol in the binary symbol string is less than or equal to 8.

25. The method according to claim 24, wherein The binary symbol model of the binary symbol string includes a previous symbol of the current symbol being symbol S or symbol E.

26. The method according to claim 24 or 25, wherein: If the binary symbol string consists of a 1-bit binary symbol, then the binary symbol string corresponds to 8 binary symbol models; and / or, If the binary symbol string consists of 2 binary symbols, the first binary symbol of the binary symbol string corresponds to 8 binary symbol models, and the second binary symbol of the binary symbol string corresponds to 8 binary symbol models; and / or, If the binary symbol string consists of 3 binary symbols, the first binary symbol of the binary symbol string corresponds to 8 binary symbol models, the second binary symbol corresponds to 5 binary symbol models, and the third binary symbol corresponds to 5 or 8 binary symbol models.

27. The method according to claim 24 or 25, wherein: If the binary symbol string consists of 3 binary symbols, at least one binary symbol in the binary symbol string is decoded using bypass coding.

28. The method of claim 27, wherein: If the second binary symbol of the binary symbol string is 1, the third binary symbol is decoded using bypass coding.

29. A coding method, applied to an encoder, comprising: performing a binarization operation on the symbol string to determine a binary symbol string, wherein the symbol string is used to represent connection information of the three-dimensional grid; The binary symbol string is encoded.

30. The method according to claim 29, wherein The performing a binarization operation on the symbol string to determine a binary symbol string includes: performing a binarization operation on the symbol string according to a first mapping relationship between the symbol and the binary symbol string to determine the binary symbol string; Among them, the first mapping relationship includes a mapping relationship between the first symbol and the first binary symbol string, a mapping relationship between the second symbol and the second binary symbol string, and a mapping relationship between the third symbol and the third binary symbol string. The number of bits of the first binary symbol string is smaller than the number of bits of the second binary symbol string, and the number of bits of the second binary symbol string is smaller than the number of bits of the third binary symbol string.

31. The method according to claim 30, wherein The frequency of the first symbol appearing in the symbol string is greater than the frequency of the second symbol appearing in the symbol string, and the frequency of the second symbol appearing in the symbol string is greater than the frequency of the third symbol appearing in the symbol string.

32. The method according to claim 30 or 31, wherein: The first binary symbol string consists of a single binary symbol; and / or, The second binary symbol string consists of 2 binary symbols; and / or, The third binary symbol string consists of 3 binary symbols.

33. The method according to claim 32, wherein The first symbol is symbol C, the second symbol is symbol R, and the third symbol is symbol S.

34. A method according to any one of claims 30 to 33, wherein: The first binary symbol string is 0; and / or, The second binary symbol string is 10; and / or, The third binary symbol string is 110.

35. The method according to any one of claims 30 to 34, wherein The first mapping relationship further includes a mapping relationship between a fourth symbol and a fourth binary symbol string, where the number of bits of the fourth binary symbol string is greater than the number of bits of the third binary symbol string.

36. The method according to claim 35, wherein The frequency of the fourth symbol appearing in the symbol string is less than the frequency of the third symbol appearing in the symbol string.

37. The method according to claim 35 or 36, wherein The fourth symbol is the symbol E or the symbol L.

38. The method according to any one of claims 35 to 37, wherein The fourth binary symbol string consists of 4 binary symbols.

39. The method according to any one of claims 35 to 38, wherein The fourth binary symbol string is 1110 or 1111.

40. The method according to any one of claims 30 to 39, wherein One or more binary symbols in a binary symbol string corresponding to at least one symbol are encoded using a bypass encoding method.

41. The method according to claim 40, wherein The binary symbol string corresponding to the at least one symbol consists of N-bit binary symbols, and the value of N is greater than or equal to 3.

42. The method of claim 41 , wherein: If the binary symbol string corresponding to the at least one symbol consists of three binary symbols, the third binary symbol is encoded using a bypass encoding method; and / or, If the binary symbol string corresponding to the at least one symbol consists of 4 binary symbols, the third binary symbol and / or the fourth binary symbol is encoded using a bypass encoding method.

43. The method according to any one of claims 30 to 42, wherein The performing a binarization operation on the symbol string according to a first mapping relationship between the symbol and the binary symbol string includes: When the previous symbol of the current symbol is not symbol C, or the current symbol is the first symbol in the symbol string, a binarization operation is performed on the current symbol according to the first mapping relationship to determine the binary symbol string of the current symbol.

44. The method according to claim 43, wherein The method further comprises: When the previous symbol is symbol C, performing a binarization operation on the current symbol according to a second mapping relationship between symbols and binary symbol strings to determine a binary symbol string of the current symbol; The second mapping relationship includes at least a mapping relationship between the fifth symbol and the fifth binary symbol string, and a mapping relationship between the sixth symbol and the sixth binary symbol string, and the number of bits of the fifth binary symbol string is less than the number of bits of the sixth binary symbol string.

45. The method of claim 44, wherein: The frequency of the fifth symbol appearing after the symbol C is greater than the frequency of the sixth symbol appearing after the symbol C.

46. ​​The method according to claim 44 or 45, wherein The number of bits of the binary symbol strings corresponding to the symbols in the second mapping relationship is less than or equal to 2.

47. The method of claim 46, wherein In the second mapping relationship, the number of bits of the binary symbol strings corresponding to different symbols is not exactly the same.

48. A method according to any one of claims 44 to 47, wherein: The fifth binary symbol string consists of a 1-bit binary symbol; and / or, The sixth binary symbol string consists of 2-bit binary symbols.

49. The method of claim 48, wherein: The fifth symbol is the symbol R, and the sixth symbol is the symbol C or the symbol S; or The fifth symbol is the symbol C, and the sixth symbol is the symbol R or the symbol S.

50. The method according to any one of claims 44 to 49, wherein The fifth binary symbol string is 0, and the sixth binary symbol string is 10 or 11.

51. The method according to any one of claims 44 to 50, wherein There are multiple mapping relationships between symbols and binary symbols. The binary operation on the symbol string includes: If the total number of binary symbols of the binary symbol string determined based on the first mapping relationship and / or the second mapping relationship is the smallest, a binarization operation is performed on the symbol string according to the first mapping relationship and / or the second mapping relationship.

52. The method of claim 51, wherein The method further comprises: First identification information is written into the code stream, where the first identification information is used to indicate whether a binarization operation is performed on the symbol string based on the first mapping relationship and / or the second mapping relationship.

53. The method of claim 29, wherein The performing a binarization operation on the symbol string to determine a binary symbol string includes: performing a binarization operation on the symbol string according to a third mapping relationship between the symbol and the binary symbol string to determine the binary symbol string; Wherein, in the third mapping relationship, the number of binary symbol models of each binary symbol in the binary symbol string is less than or equal to 8.

54. The method of claim 53, wherein: The binary symbol model of the binary symbol string includes a previous symbol of the current symbol being symbol S or symbol E.

55. The method of claim 53 or 54, wherein: If the binary symbol string consists of a 1-bit binary symbol, then the binary symbol string corresponds to 8 binary symbol models; and / or, If the binary symbol string consists of 2 binary symbols, the first binary symbol of the binary symbol string corresponds to 8 binary symbol models, and the second binary symbol of the binary symbol string corresponds to 8 binary symbol models; and / or, If the binary symbol string consists of 3 binary symbols, the first binary symbol of the binary symbol string corresponds to 8 binary symbol models, the second binary symbol corresponds to 5 binary symbol models, and the third binary symbol corresponds to 5 or 8 binary symbol models.

56. The method of claim 53 or 54, wherein: If the binary symbol string consists of 3 binary symbols, at least one binary symbol in the binary symbol string is encoded using a bypass encoding method.

57. The method of claim 56, wherein: If the second binary symbol of the binary symbol string is 1, the third binary symbol is encoded using bypass encoding.

58. A decoder comprising: a determining unit configured to perform a debinarization operation on a binary symbol string in a code stream to determine a symbol string, wherein the symbol string is used to represent connection information of a three-dimensional grid; A decoding unit is configured to reconstruct the three-dimensional grid according to the symbol string.

59. A decoder comprising: Memory for storing computer programs; A processor, configured to perform the method according to any one of claims 1 to 28 when running the computer program.

60. An encoder comprising: a determining unit configured to perform a binarization operation on the symbol string to determine a binary symbol string, wherein the symbol string is used to represent connection information of the three-dimensional grid; An encoding unit is configured to encode the binary symbol string.

61. An encoder comprising: Memory for storing computer programs; A processor, configured to perform the method according to any one of claims 29 to 57 when running the computer program.

62. A non-volatile computer-readable storage medium storing a bit stream, 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 according to any one of claims 1 to 28, and the encoding method is the method according to any one of claims 29 to 57.

63. A code stream, comprising a code stream generated by the method according to any one of claims 29 to 57.

64. A computer-readable storage medium, wherein: The computer-readable storage medium stores a computer program, and when the computer program is executed, the method according to any one of claims 1 to 28 or 29 to 57 is implemented.

Citation Information

Patent Citations

  • Adaptive entropy encoding

    CN102859884A

  • Coding and decoding method and device for inter-frame prediction information

    CN114079774A

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

    CN115086664A

  • Coding method, decoding method and terminal

    CN116843771A

  • Apparatus and method for low-complexity three-dimensional mesh compression

    US20110046923A1