Coding method, decoding method, bitstream, coder, decoder and storage medium

By selecting independent encoder/decoder groups to handle inter-frame context states based on prediction identification information and reference information during point cloud encoding and decoding, the problem of inter-frame prediction affecting probability updates is solved, thus improving encoding and decoding performance and efficiency.

WO2025217844A1PCT designated stage Publication Date: 2025-10-23GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 3 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In the geometric encoding and decoding process based on Trisoup, due to incomplete consideration of inter-frame prediction, different context states will affect each other's probability update of the encoder, resulting in a decrease in encoding and decoding performance.

Method used

By determining the prediction identification information of the current vertex, when using the inter-frame prediction mode, the inter-frame context state type is determined, and the corresponding encoder group/decoder group is selected for encoding/decoding based on the reference information to ensure that different context states are processed independently.

Benefits of technology

It improves encoding and decoding performance, solves the problem of slow convergence of inter-frame context state probabilities, and enhances inter-frame prediction performance and coding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024088399_23102025_PF_FP_ABST
    Figure CN2024088399_23102025_PF_FP_ABST
Patent Text Reader

Abstract

The present application discloses a coding method, a decoding method, a bitstream, a coder, a decoder and a storage medium. The decoding method comprises: determining prediction identification information of a current vertex; when it is indicated on the basis of the prediction identification information that first bit information of the current vertex uses an inter-frame prediction mode, determining an inter-frame context state type of the current vertex, and on the basis of reference information and the inter-frame context state type of the current vertex, determining a context state and a decoder group corresponding to the current vertex; on the basis of the context state, determining a target decoder corresponding to the current vertex from the decoder group; and decoding a bitstream on the basis of the target decoder, and determining the first bit information of the current vertex. In this way, the geometric coding efficiency can be improved, and the coding and decoding performance of point clouds are further improved.
Need to check novelty before this filing date? Find Prior Art

Description

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

[0001] Embodiments of the present application relate to the technical field of point cloud coding, and particularly relate to a coding method, a code stream, an encoder, a decoder and a storage medium. BACKGROUND

[0002] In a geometry-based point cloud compression (G-PCC) coding framework, the geometry information of a point cloud and the attribute information corresponding to the points in the point cloud are encoded separately. The geometry coding of G-PCC can be divided into: octree-based geometry coding, Trisoup-based geometry coding and prediction tree-based geometry coding.

[0003] At present, in the Trisoup-based geometry coding process, the inter-frame prediction in the related technology is not comprehensive, the different context states will affect the probability update of the coder, and the prediction effect is not good, which reduces the coding performance of the point cloud.

[0004] SUMMARY

[0005] Embodiments of the present application provide a coding method, a code stream, an encoder, a decoder and a storage medium, which can improve the geometry coding efficiency and further improve the coding performance of the point cloud.

[0006] The technical solutions of the embodiments of the present application can be implemented as follows:

[0007] In a first aspect, the embodiments of the present application provide a decoding method applied to a decoder, and the method comprises:

[0008] determining prediction identification information of a current vertex;

[0009] when the first bit information of the current vertex is indicated by the prediction identification information to use an inter-frame prediction mode, determining an inter-frame context state type of the current vertex, and determining a context state corresponding to the current vertex and a decoder group according to the reference information of the current vertex and the inter-frame context state type;

[0010] determining a target decoder corresponding to the current vertex in the decoder group according to the context state;

[0011] decoding the code stream according to the target decoder to determine the first bit information of the current vertex.

[0012] In a second aspect, the embodiments of the present application provide an encoding method applied to an encoder, and the method comprises:

[0013] determine prediction identification information of the current vertex;

[0014] when the first bit information of the current vertex is indicated to use the inter prediction mode according to the prediction identification information, determine an inter context state type of the current vertex, and determine a context state corresponding to the current vertex and an encoder group according to reference information of the current vertex and the inter context state type;

[0015] determine a target encoder corresponding to the current vertex in the encoder group according to the context state;

[0016] perform encoding processing on the first bit information of the current vertex according to the target encoder, and write obtained encoding bits into a bitstream.

[0017] In a third aspect, an embodiment of the present application provides a bitstream, which is generated by bit encoding of to-be-encoded information; wherein the to-be-encoded information comprises at least one of the following: a value of first bit information of a current vertex and inter enable identification information.

[0018] In a fourth aspect, an embodiment of the present application provides an encoder, which comprises a first determining unit and an encoding unit, wherein:

[0019] the first determining unit is configured to determine prediction identification information of a current vertex, and when the first bit information of the current vertex is indicated to use the inter prediction mode according to the prediction identification information, determine an inter context state type of the current vertex, and determine a context state corresponding to the current vertex and an encoder group according to reference information of the current vertex and the inter context state type;

[0020] the first determining unit is further configured to determine a target encoder corresponding to the current vertex in the encoder group according to the context state;

[0021] the encoding unit is configured to perform encoding processing on the first bit information of the current vertex according to the target encoder, and write obtained encoding bits into a bitstream.

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

[0023] the first memory is used to store a computer program capable of running on the first processor;

[0024] the first processor is used to execute the method in the second aspect when the computer program is running.

[0025] In a sixth aspect, an embodiment of the present application provides a decoder, which comprises a second determining unit and a decoding unit, wherein:

[0026] The second determining unit is configured to determine prediction identification information of the current vertex, and determine an inter-frame context state type of the current vertex when the first bit information of the current vertex uses an inter-frame prediction mode according to the prediction identification information, and determine a context state corresponding to the current vertex and a decoder group according to reference information of the current vertex and the inter-frame context state type.

[0027] The second determining unit is further configured to determine a target decoder corresponding to the current vertex in the decoder group according to the context state.

[0028] The decoding unit is configured to decode the code stream according to the target decoder to determine the first bit information of the current vertex.

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

[0030] The second memory is configured to store a computer program capable of running on the second processor.

[0031] The second processor is configured to execute the method in the first aspect when running the computer program.

[0032] In an eighth aspect, an embodiment of the present application provides a computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the method in the first aspect or the method in the second aspect.

[0033] In a ninth aspect, an embodiment of the present application provides a computer program product, which comprises a computer program or instructions, and the computer program or instructions are executed by a processor to implement the method in the first aspect or the method in the second aspect.

[0034] The embodiments of the present application provide a coding and decoding method, a code stream, an encoder, a decoder, and a storage medium. At the encoding end, the prediction identification information of the current vertex is determined; when the first bit information of the current vertex is indicated to use the inter-frame prediction mode according to the prediction identification information, the inter-frame context state type of the current vertex is determined, and the context state and encoder group corresponding to the current vertex are determined according to the reference information and the inter-frame context state type of the current vertex; according to the context state, the target encoder corresponding to the current vertex is determined in the encoder group; the first bit information of the current vertex is encoded according to the target encoder, and the obtained encoded bit is written into the code stream. At the decoding end, the prediction identification information of the current vertex is determined; when the first bit information of the current vertex is indicated to use the inter-frame prediction mode according to the prediction identification information, the inter-frame context state type of the current vertex is determined, and the context state and decoder group corresponding to the current vertex are determined according to the reference information and the inter-frame context state type of the current vertex; according to the context state, the target decoder corresponding to the current vertex is determined in the decoder group; the code stream is decoded according to the target decoder to determine the first bit information of the current vertex. That is, whether at the encoding or decoding end, the prediction identification information of the current vertex is first determined; then, when the first bit of the prediction identification information indicates that the current vertex uses an inter-frame prediction mode, the inter-frame context state type of the current vertex is determined, and the context state and encoder group / decoder group corresponding to the current vertex are determined based on the reference information and the inter-frame context state type of the current vertex; then, based on the context state, the target codec corresponding to the current vertex is determined from the encoder group / decoder group. In this way, independent context states are used for different inter-frame context state types, and different context states correspond to their own encoder group / decoder group, which solves the probability update problem caused by different context states sharing the same encoder group / decoder group in the related art, and can select a more appropriate encoder group / decoder group, thereby improving the accuracy of target codec selection. Moreover, because different context states correspond to their own encoder group / decoder group, some inter-frame context states can also be merged, thereby solving the problem of slow convergence of the probability corresponding to the inter-frame context state when inter-frame prediction is rarely used, and can improve the inter-frame prediction effect. This improves the geometric coding efficiency of the point cloud, thereby improving the encoding and decoding performance. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] Figure 1 is a schematic diagram of a point cloud encoding and decoding network architecture;

[0036] FIG2 is a schematic diagram of a composition framework of a G-PCC encoder;

[0037] FIG3 is a schematic diagram of a composition framework of a G-PCC decoder;

[0038] Fig. 4 is a schematic diagram of a trisoup geometry representation;

[0039] Fig. 5 is a schematic diagram of an application architecture of an OBUF block diagram;

[0040] Fig. 6 is a schematic diagram of a neighbor vertex of an edge to be encoded;

[0041] Fig. 7 is a schematic diagram of an encoding process of inter-frame prediction based on a trisoup;

[0042] Fig. 8 is a schematic diagram of a classification of secondary information in a context;

[0043] Fig. 9 is a schematic diagram of a decoding method according to an embodiment of the present application;

[0044] Fig. 10 is a schematic diagram of a decoding method according to an embodiment of the present application;

[0045] Fig. 11 is a schematic diagram of a decoding method according to an embodiment of the present application;

[0046] Fig. 12 is a schematic diagram of an encoding method according to an embodiment of the present application;

[0047] Fig. 13 is a schematic diagram of a detailed encoding method according to an embodiment of the present application;

[0048] Fig. 14 is a schematic diagram of a detailed decoding method according to an embodiment of the present application;

[0049] Fig. 15 is a schematic diagram of a composition structure of an encoder according to an embodiment of the present application;

[0050] Fig. 16 is a schematic diagram of a specific hardware structure of an encoder according to an embodiment of the present application;

[0051] Fig. 17 is a schematic diagram of a composition structure of a decoder according to an embodiment of the present application;

[0052] Fig. 18 is a schematic diagram of a specific hardware structure of a decoder according to an embodiment of the present application;

[0053] Fig. 19 is a schematic diagram of a composition structure of a codec system according to an embodiment of the present application. DETAILED DESCRIPTION

[0054] In order to enable a more detailed understanding of the features and technical content of the embodiments of the present application, the implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings, which are provided for reference only and do not limit the embodiments of the present application.

[0055] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used in the description herein is for describing particular embodiments only and is not intended to be limiting of the application.

[0056] In the following description, reference is made to the "some embodiments", which describe a subset of all possible embodiments, but it is understood that "some embodiments" can be the same subset or a different subset of all possible embodiments, and can be combined with each other as long as there is no conflict. It should also be noted 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 order of the objects. Understandably, "first\second\third" can be interchanged with a specific order or sequence as long as it is allowed, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.

[0057] Before the embodiments of the present application are further described in detail, the terms and phrases involved in the embodiments of the present application are explained, and the terms and phrases involved in the embodiments of the present application are applicable to the following explanations:

[0058] Geometry-based Point Cloud Compression (G-PCC or GPCC);

[0059] Video-based Point Cloud Compression (V-PCC or VPCC);

[0060] Geometry-based Solid content Test Model (GeS-TM);

[0061] Geometry Brick Header (GBH);

[0062] First In First Out (FIFO);

[0063] Group of Point cloud (GOP);

[0064] Level of Detail (LOD);

[0065] Region Adaptive Hierarchal Transform (RAHT);

[0066] Context-based Adaptive Binary Arithmetic Coding (CABAC);

[0067] Optimal Binarization with Update on the Fly (OBUF).

[0068] Point cloud is a three-dimensional representation of the surface of an object. It can be obtained by optical radar, laser radar, laser scanner, multi-view camera and other acquisition devices.

[0069] Point cloud refers to a collection of massive three-dimensional points. The points in the point cloud can include position information and attribute information of the points. For example, the position information of the points can be three-dimensional coordinate information of the points. The position information of the points can also be referred to as geometric information of the points. For example, the attribute information of the points can include color information and / or reflectivity, etc. For example, the color information can be information on any color space. For example, the color information can be RGB information. Wherein, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, the color information can be luminance chrominance (YCbCr, YUV) information. Wherein, Y represents brightness, Cb(U) represents blue chrominance, and Cr(V) represents red chrominance.

[0070] According to the laser measurement principle, the points in the point cloud can include three-dimensional coordinate information and laser reflectance of the points. For another example, according to the photogrammetry principle, the points in the point cloud can include three-dimensional coordinate information and color information of the points. For another example, the point cloud is obtained by combining the laser measurement and photogrammetry principles. The points in the point cloud can include three-dimensional coordinate information, laser reflectance and color information of the points.

[0071] Point cloud can be divided into the following categories according to the acquisition method:

[0072] The first type of static point cloud: the object is static, and the device for obtaining the point cloud is also static.

[0073] The second type of dynamic point cloud: the object is moving, but the device for obtaining the point cloud is static.

[0074] The third type of dynamic point cloud: the device for obtaining the point cloud is moving.

[0075] For example, according to the purpose of the point cloud, it can be divided into two categories:

[0076] Category 1: Machine perception point cloud, which can be used in autonomous navigation system, real-time inspection system, geographic information system, visual sorting robot, disaster relief robot, etc.

[0077] Category 2: Human eye perception point cloud, which can be used in digital cultural heritage, free-view broadcast, three-dimensional immersive communication, three-dimensional immersive interaction, etc.

[0078] Since the point cloud is a collection of massive points, storing the point cloud will not only consume a large amount of memory, but also be not conducive to transmission, and there is no such large bandwidth to support the transmission of the point cloud without compression in the network layer, therefore, the point cloud needs to be compressed.

[0079] So far, the point cloud coding framework that can compress the point cloud can be the G-PCC coding and decoding framework provided by the Moving Picture Experts Group (MPEG) or the V-PCC coding and decoding framework, or the AVS-PCC coding and decoding framework provided by the Audio Video Standard (AVS). Among them, the G-PCC coding and decoding framework can be used for compressing the first type of static point cloud and the third type of dynamically acquired point cloud, and the V-PCC coding and decoding framework can be used for compressing the second type of dynamic point cloud. In the embodiments of the present application, the G-PCC coding and decoding framework is mainly described.

[0080] The embodiments of the present application provide a network architecture of a point cloud coding and decoding system including a decoding method and an encoding method, and FIG. 1 is a schematic diagram of a network architecture of a point cloud coding and decoding. As shown in FIG. 1, the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. The electronic devices in the implementation process can be various types of devices with point cloud coding and decoding functions, for example, the electronic devices can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital telephone, a video telephone, a television, a sensor device, a server, etc., and the embodiments of the present application are not limited. Among them, the decoder or the encoder in the embodiments of the present application can be the above-mentioned electronic devices.

[0081] Among them, the electronic devices in the embodiments of the present application have point cloud coding and decoding functions, and generally include a point cloud encoder (i.e. an encoder) and a point cloud decoder (i.e. a decoder).

[0082] The following describes the related technologies taking the G-PCC coding and decoding framework as an example.

[0083] It can be understood that in the point cloud G-PCC coding framework, for the point cloud data to be encoded, the point cloud data is first divided into multiple slices through slice division. In each slice, the geometry information and the attribute information of the point cloud are encoded separately.

[0084] FIG. 2 is a schematic diagram of a G-PCC encoder. As shown in FIG. 2, in the geometry coding process, coordinate conversion is performed on the geometry information, so that all the point clouds are contained in a bounding box, and then quantization is performed, which mainly plays a role of scaling. Due to the rounding in quantization, the geometry information of a part of the point clouds is the same, and then it is determined based on parameters whether to remove the duplicate points. This process of quantization and removal of duplicate points is also called voxelization process. Then, octree division or prediction tree construction is performed on the bounding box. In this process, entropy coding is performed on the points in the divided leaf nodes, to generate a binary geometry bitstream; or entropy coding is performed on the vertices generated by the division (surface fitting based on the vertices), to generate a binary geometry bitstream. In the attribute coding process, after the geometry coding is completed and the geometry information is reconstructed, color conversion is first performed, to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the reconstructed geometry information is used to recolor the point cloud, so that the unencoded attribute information corresponds to the reconstructed geometry information. The attribute coding is mainly performed on the color information. In the color information coding process, there are mainly two transformation methods, one is distance-based lifting transformation depending on LOD division, and the other is direct RAHT transformation. Both of the two methods convert the color information from the spatial domain to the frequency domain, to obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients, and then entropy encode the quantized coefficients, to generate a binary attribute bitstream.

[0085] FIG. 3 is a schematic diagram of a G-PCC decoder. As shown in FIG. 3, for the obtained binary bitstream, the geometry bitstream and the attribute bitstream in the binary bitstream are decoded independently. In the decoding of the geometry bitstream, entropy decoding is first performed, and then one of the following methods is selected: octree division-reconstruction surface estimation or prediction tree construction, and then through geometry reconstruction-coordinate inverse transformation, the geometry information of the point cloud can be obtained; in the decoding of the attribute bitstream, entropy decoding and inverse quantization are first performed, and then one of the following methods is selected: RAHT transformation or LOD division-lifting transformation, and finally through color inverse transformation, the attribute information of the point cloud can be obtained; based on the geometry information and the attribute information, the point cloud data to be encoded can be restored.

[0086] It should be noted that, as shown in FIG. 2 or FIG. 3, the current geometry coding of G-PCC can be divided into octree-based geometry coding, Triangle soup (Trisoup)-based geometry coding and prediction tree-based geometry coding, as follows:

[0087] (a) Octree-based geometry coding:

[0088] At the encoding end, first, the coordinate transformation is performed on the geometry information, so that all the point clouds are contained in a bounding box (Bounding Box) determined by two extreme points (0, 0, 0) and (2 d ,2 d ,2 d ), and then voxelization is performed, i.e., quantization, rounding, and removal of duplicate points (determined according to parameters). Then, the non-empty (containing points in the point cloud) sub-cubes in the bounding box are continuously divided according to the breadth-first traversal order; at the same octree depth, a node is divided into 8 sub-nodes, until the leaf node obtained by the division is a 1×1×1 unit cube, and the process stops. Whether the sub-cube has a point (1 indicates occupation, and 0 indicates non-occupation) is represented by an 8-bit binary code, which is called occupancy code. The occupancy code of each node is encoded to generate a binary code stream.

[0089] At the decoding end, the occupancy code of each node is continuously parsed according to the breadth-first traversal order, and the nodes are continuously divided in sequence until the division of a 1×1×1 unit cube is stopped. The number of points contained in each leaf node is parsed, and the geometry reconstructed point cloud information is finally recovered.

[0090] (b) Trisoup-based geometry coding:

[0091] At the encoding end, first, the octree is divided, which is different from the geometry information coding based on the octree structure. Instead of dividing the point cloud to the bottom leaf node with a side length of 1×1×1, the method divides the leaf node with a specified side length. Then, the surface information formed by the voxels in the node is represented by a series of triangle meshes (Triangle Mesh). In GPCC, the size of the block (Block) in which the triangular patch is located can be represented by the parameter Trisoup node size. When Trisoup node size is greater than 0, the voxel set in the node is represented by a geometric patch. The at most twelve intersection points generated by the twelve edges of the block and the geometric patch are called vertices (Vertex).

[0092] The presence of each node edge vertex and their quantized position on the edge will be represented as 1 bit and 2 bits, respectively, to encode the vertex-related information of each Block in turn, generating a binary code stream. Inside each node, the surface is reconstructed by the non-planar polygons formed by these vertices, organized as a collection of triangles. In addition, each node also has a centroid vertex, which encodes the offset value between the final centroid coordinates and the initial centroid coordinates (in the direction of the surface normal vector n), further improving the representation of the surface curvature within each node. In addition, surface vertices can also be created and marked. As shown in FIG. 4, a schematic diagram of the trisoup geometry representation is provided. As shown in FIG. 4, V1, V2, V3 and V4 represent four vertices, n represents the normal vector, C represents the centroid vertex, Cmean represents the centroid, and drift represents the protrusion of the point cloud plane in a certain direction. Subsequently, these triangles are voxelized into points using ray tracing technology to reconstruct the point cloud. The centroid vertex C is encoded as the drift value of the barycentric average of all vertices. The vector n represents the normal of the triangular surface.

[0093] At the decoding end, in order to decode the geometric coordinates of the point cloud from the triangular patches of the node, it is necessary to check whether each voxel inside the node cube intersects with the triangular patch, which is called triangular rasterization. Six unit vectors (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1) are used for intersection testing, which tests whether each unit vector intersects with the triangular patch. If it intersects, the intersection point is calculated and the decoded cube is output. The number of points generated in the decoder is determined by the grid distance d.

[0094] (c) Geometry coding based on prediction tree:

[0095] At the encoding end, the input point cloud is first sorted. The currently used sorting methods include unordered, Morton order, azimuth angle order and radial distance order. At the encoding end, two different ways are used to establish the prediction tree structure, including: high latency slow mode (KD-Tree) and low latency fast mode (using laser radar calibration information, each point is divided into different lasers (Laser), and a prediction structure is established according to different Lasers). Next, based on the prediction tree structure, each node in the prediction tree is traversed, and the geometric position information of the node is predicted by selecting different prediction modes to obtain the prediction residual, and the prediction residual is quantized using a quantization parameter. Finally, by continuously iterating, the prediction residual of the prediction tree node position information, the prediction tree structure and the quantization parameter are encoded, and a binary code stream is generated.

[0096] At the decoding end, the decoding end reconstructs the prediction tree structure by continuously parsing the code stream, then obtains the geometric position prediction residual information and the quantization parameter of each prediction node by parsing, and performs inverse quantization on the prediction residual to recover the reconstructed geometric position information of each node, and finally completes the geometric reconstruction at the decoding end.

[0097] It can be understood that, in the possible implementation manner of the related art 1, for the optimal binarization with update on the fly (OBUF) technology, the OBUF is to quickly and accurately map a series of discrete states of the domain information to a fixed number N of adaptive entropy encoders through a mapping relationship look up table (LUT). In this way, the context information state is no longer one-to-one corresponding to the probability model, and the fixed number of probability models is updated with the current coded syntax element, and the mapping relationship is updated after each occupation code encoding is completed.

[0098] As shown in FIG. 5, an application architecture schematic diagram of the OBUF block diagram is provided herein. The application architecture can include an OBUF context preprocessing module 51, an OBUF block diagram 52, an actual encoder index module 53, and an encoder group 54. The OBUF block diagram 52 includes an encoder mapping module 521 and an encoder index updating module 522, and the encoder group 54 includes a binary entropy encoder 1, a binary entropy encoder 2, a binary entropy encoder 3, …, and a binary entropy encoder N. Specifically, a channel B is configured to provide a to-be-coded symbol s, which is a to-be-coded occupation bit and takes a value of 1 or 0; the encoder mapping module 521 is configured to perform coder mapping according to the OBUF context preprocessing module 51 and a context state D, and the mapped encoder index takes a value of [1, 2, …, N], where N is a positive integer.

[0099] In a specific embodiment, the OBUF technology can be divided into the following three steps:

[0100] Step 1, obtaining a context state D of a to-be-coded symbol.

[0101] The context state D of the to-be-coded symbol is input information of the OBUF block diagram, which is composed of neighbor vertex information that has been coded in space, and specific operations are described in detail in the related art 2.

[0102] Step 2, obtaining a binary encoder i corresponding to the context state D based on a mapping relationship.

[0103] Each state is mapped to a small number of coders N by a look-up table before all the symbols to be encoded are encoded. For example, each state D is mapped to one of the 32 coders i (i.e. i takes values [1, 2, …, 32]) as shown in the binary entropy encoder i in Figure 5.

[0104] Step 3, entropy encoding of the symbol S using the entropy encoder i.

[0105] The symbol S to be encoded is fed into the binary arithmetic encoder corresponding to its corresponding context state D for entropy encoding. The encoding process is described in detail in Related Art 3.

[0106] It can be understood that in the possible implementation of Related Art 2, for the dynamic OBUF technology, compared with the OBUF technology, the dynamic OBUF technology no longer uses a fixed number of context states during the encoding process, and the number of context states can be dynamically adjusted.

[0107] The dynamic OBUF technology is divided into two stages: ① dynamically determining the context and the context state; and ② mapping the context state to a small number of binary encoder sets (OBUF technology).

[0108] The context construction and dynamic adjustment are described below. In the dynamic OBUF, the context information can be divided into two parts: main information and secondary information. Whether part of the secondary information is dynamically adjusted as a context, the context composed of the main information and the selected part of the secondary information is used as the context of the OBUF technology.

[0109] (1) Context construction process.

[0110] For example, as shown in Figure 6, here shows an example of the neighbor vertices of the edge to be encoded parallel to the x-axis, y-axis and z-axis. Among them, the context vertices of the vertex to be encoded (located on the k edge) can be found from the following 12 neighbor nodes (such as nodes e1, e2, e3, e4, b1, b2, b3, b4, a1, a2, a3, a4), including the following categories:

[0111] ① The vertices on the edge corresponding to the negative direction of the axis (such as the dash-dot line) corresponding to the edge to be encoded (black bold line);

[0112] ② The vertices on the neighbor edge (directly in contact) perpendicular to the edge to be encoded (black bold line) (such as the dotted line);

[0113] ③ The vertices on the neighbor edge (not directly in contact) perpendicular to the edge to be encoded (black bold line) (such as the non-bold solid line);

[0114] ④ The vertices on the neighbor edge parallel to the edge to be encoded (black bold line) (such as the dashed line);

[0115] Contexts are constructed for the to-be-encoded vertex in a certain order, the first N context vertices of the contexts are primary information, and the last M context vertices are secondary information, and M can be dynamically adjusted in the encoding process. Wherein, M and N are positive integers.

[0116] (2) Dynamic adjustment process.

[0117] Each context vertex can be non-existent or existent, i.e. 0, 1 state. The context state can be represented by N+M binary bits, wherein N is primary information, and M is secondary information. With the encoding process, the number of times of using each context state is recorded, when the number of times of using a certain context state is greater than a preset threshold T, a context node is added in the scanning order, i.e. the context state is subdivided by introducing a new context node. The to-be-encoded vertex uses the updated context state set for encoding.

[0118] Understandably, in the possible implementation manner of the related art 3, for G-PCC dense point cloud inter-frame encoding, the following two aspects can be included:

[0119] (1) Inter-frame geometry entropy encoding based on Trisoup.

[0120] In G-PCC, the intra-frame and inter-frame encoding of Trisoup vertex information (including: whether the vertex exists, high bit value, and low bit value) are both entropy encoded by using OBUF technology. However, the context construction method of inter-frame encoding is different from that of intra-frame encoding. Specifically, the inter-frame context state (Inter State) is actually the joint of the intra-frame context state (Intra State) of the current to-be-encoded symbol and the prediction information of the current to-be-encoded vertex obtained by referring to the frame.

[0121] (2) Trisoup geometry encoding based on inter-frame prediction

[0122] FIG. 7 is a schematic diagram of an encoding process based on inter-frame prediction of Trisoup, which specifically provides a schematic diagram of an encoding process of Trisoup vertex high bit based on inter-frame prediction when the vertex exists in the related art. As shown in FIG. 7, the process can include:

[0123] S701, isInter && colocatedVertex >= 0?

[0124] S702, nBadPredRef1 <= 4 || nBadPredComp1 <= 4?

[0125] S703, isInterGood = 0.

[0126] S704, isInterGood = 1.

[0127] S705, determine TriSoupVerticesPred.

[0128] S706, TriSoupVerticesPred < 0?

[0129] S707, TriSoupVerticesPred == 0?

[0130] S708, TriSoupVerticesPred == 1?

[0131] S709, TriSoupVerticesPred == 2?

[0132] S710, TriSoupVerticesPred == 3?

[0133] S711, determine type is intra context.

[0134] S712, determine type is inter context one.

[0135] S713, determine type is inter context two.

[0136] S714, determine type is inter context three.

[0137] S715, determine type is inter context four.

[0138] S716, nBadPredRefl <= 0?

[0139] S717, determine no prediction from uncompensated inter information.

[0140] S718, determine prediction from uncompensated inter information.

[0141] S719, (colocatedVertex > > 1 & 1) == 1?

[0142] S720, determine no prediction.

[0143] S721, determine prediction is 0.

[0144] S722, determine prediction is 1.

[0145] S723, merge inter context one.

[0146] S724, merge inter context two.

[0147] S725, merge inter context three.

[0148] S726, merge inter context four.

[0149] S727, encode based on Coder group Coder1.

[0150] S728, encode based on Coder group Coder2.

[0151] S729, encode based on Coder group Coder3.

[0152] S730, encode based on Coder group Coder4.

[0153] S731, encode based on Coder group Coder5.

[0154] It should be noted that the flow represented by the gray module in FIG. 7 is consistent with the flow in the dashed box, that is, each gray module includes the flow of S716-S722. In addition, the Coder group Coder1 includes a plurality of entropy encoders, for example, Coder1 includes coder1, 2, …, 32, at this time, one of the encoders is selected for encoding according to the state of the intra context; the Coder group Coder2 includes a plurality of entropy encoders, for example, Coder2 includes coder1, 2, …, 32, at this time, one of the encoders is selected for encoding according to the state of the inter context one; the Coder group Coder3 includes a plurality of entropy encoders, for example, Coder3 includes coder1, 2, …, 32, at this time, one of the encoders is selected for encoding according to the state of the inter context two; the Coder group Coder4 includes a plurality of entropy encoders, for example, Coder4 includes coder1, 2, …, 32, at this time, one of the encoders is selected for encoding according to the state of the inter context three; the Coder group Coder5 includes a plurality of entropy encoders, for example, Coder5 includes coder1, 2, …, 32, at this time, one of the encoders is selected for encoding according to the state of the inter context four.

[0155] It should also be noted that “isInterGood” refers to the neighbor compensated vertex and neighbor uncompensated vertex information of the to-be-encoded vertex after the inter frame is opened is determined to be good or bad prediction. According to the value (0 or 1) of isInterGood=1, it is divided into two sets of intra context and inter context. Further, according to the value of TriSoupVerticesPred, the inter context can also be divided into inter context one, inter context two, inter context three, and inter context four, wherein TriSoupVerticesPred represents the position information of the compensated reference vertex.

[0156] In addition, isInterGood = isInter && colocatedVertex >= 0 && (nBadPredRef1 <= 4 || nBadPredComp1 <= 4), i.e. the value of isInterGood is determined by isInter, colocatedVertex, nBadPredRef1 and nBadPredComp1. Wherein, colocatedVertex represents the uncompensated reference vertex information (high bit and low bit), nBadPredRef1 is the number of inaccurate predictions of neighbor uncompensated reference vertex prediction neighbor vertex high bit, and nBadPredComp1 is the number of inaccurate predictions of neighbor compensated reference vertex prediction neighbor vertex high bit. In addition, the value of isInter is controlled by the syntax element gbl.interPredictionEnabledFlag, which is used to indicate whether the high layer (such as slice level, image level, sequence level, etc.) inter prediction of the to-be-encoded vertex is enabled. If the inter prediction is enabled, it is called P frame, and isInter is 1 at this time; on the contrary, if it is not enabled, it is called I frame, and isInter is 0 at this time.

[0157] According to the number of inaccurate predictions of neighbor uncompensated reference vertex prediction neighbor vertex high bit and the uncompensated reference vertex information (colocatedVertex) of the to-be-encoded vertex, the information determined as inter prediction is divided into the following categories:

[0158] ① No prediction (NoPred): when the neighbor uncompensated reference vertex prediction neighbor vertex high bit is not good, the uncompensated reference vertex information is not used;

[0159] ② Predicted as 0 (Pred0): when the neighbor uncompensated reference vertex prediction neighbor vertex high bit is good, if the uncompensated reference vertex high bit is 0, it is predicted as 0;

[0160] ③ Predicted as 1 (Pred1): when the neighbor uncompensated reference vertex prediction neighbor vertex high bit is good, if the uncompensated reference vertex high bit is 1, it is predicted as 1.

[0161] It should be noted that the secondary information of the intra context contains 15 bits of information, and the secondary information of the inter context contains 17 bits of information, for example, the inter context one and the inter context two, and is divided into the following four cases: the intra secondary information, the inter secondary information 1 (no prediction), the inter secondary information 2 (prediction is 0), and the inter secondary information 3 (prediction is 1), as shown in FIG. 8. Among them, for the inter secondary information, when the high bit (filled with diagonal lines) indicates goodRef = 1, it means that the good inter information prediction is not compensated; and when the low bit (filled with grids) indicates pred = 1, it means that the inter information prediction is 1.

[0162] That is, in several implementations of the related art, when the inter prediction is used less, the probability corresponding to the inter context state converges slowly, and has no good prediction effect; and the same Coder is shared by different context states, which affects the probability updating of the Coder, and reduces the coding performance.

[0163] Therefore, the embodiments of the present application provide a coding method, which first determines the prediction identification information of the current vertex; then when the first bit information of the current vertex indicated by the prediction identification information uses the inter prediction mode, determines the inter context state type of the current vertex, and determines the context state corresponding to the current vertex and the encoder group / decoder group according to the reference information of the current vertex and the inter context state type; then determines the target Coder corresponding to the current vertex from the encoder group / decoder group according to the context state; and finally encodes / decodes the first bit information of the current vertex according to the target Coder. In this way, independent context states are used for different inter context state types, and different context states correspond to respective encoder groups / decoder groups, which solves the problem of probability updating caused by the same encoder group / decoder group shared by different context states in the related art, can select a more suitable encoder group / decoder group, and thus improves the accuracy of target Coder selection; and since different context states correspond to respective encoder groups / decoder groups, part of the inter context states can be merged, which solves the problem of slow convergence of the probability corresponding to the inter context state when the inter prediction is used less, and improves the inter prediction effect; in this way, the geometry coding efficiency of the point cloud is improved, and thus the coding performance is improved.

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

[0165] In an embodiment of the present application, FIG. 9 is a flowchart of a decoding method provided by an embodiment of the present application. As shown in FIG. 9, the method can include:

[0166] S901, determining prediction identification information of the current vertex.

[0167] It should be noted that in the embodiments of the present application, the decoding method can be applied to a decoder or a decoding end in a G-PCC coding framework. The decoding method herein can be an inter-frame decoding method, and more specifically, a point cloud geometry information inter-frame decoding method. By fully utilizing inter-frame prediction information, the coding efficiency of the point cloud can be improved.

[0168] It should also be noted that in the embodiments of the present application, determining the prediction identification information of the current vertex can include: determining the uncompensated reference vertex information of the current vertex, the number of first bit information prediction inaccuracies of the uncompensated neighbor vertices of the current vertex, the number of first bit information prediction inaccuracies of the compensated neighbor vertices of the current vertex, and the value of the inter-frame enabling identification information; and determining the prediction identification information of the current vertex according to the uncompensated reference vertex information, the number of first bit information prediction inaccuracies of the uncompensated neighbor vertices, the number of first bit information prediction inaccuracies of the compensated neighbor vertices, and the value of the inter-frame enabling identification information.

[0169] It can be understood that in the embodiments of the present application, whether the current vertex uses the inter-frame prediction mode can be determined according to the uncompensated reference vertex information, the uncompensated neighbor vertex information, the compensated neighbor vertex information, and the value of the inter-frame enabling identification information.

[0170] Here, the prediction identification information of the current vertex can be represented by isInterGood. Specifically, isInterGood refers to the determination of the compensated neighbor vertex information and the uncompensated neighbor vertex information of the current vertex after the inter-frame is enabled as good or bad prediction. If it is determined to be good prediction, the value of isInterGood is equal to 1, and the prediction identification information indicates that the first bit information of the current vertex uses the inter-frame prediction mode; if it is determined to be bad prediction, the value of isInterGood is equal to 0, and the prediction identification information indicates that the first bit information of the current vertex uses the intra-frame prediction mode. That is, according to the value (0 or 1) of isInterGood, it can be divided into two large sets of intra-frame context and inter-frame context.

[0171] Here, the uncompensated reference vertex information of the current vertex can be denoted as colocatedVertex, the number of first bit information prediction inaccuracies of the uncompensated neighbor vertex of the current vertex can be denoted as nBadPredRef1, the number of first bit information prediction inaccuracies of the compensated neighbor vertex of the current vertex can be denoted as nBadPredComp1, and the inter-frame enabling identification information can be denoted as isInter. The "nBadPredRef1" can specifically refer to the number of first bit information prediction inaccuracies when the neighbor uncompensated reference vertex predicts the first bit information of the neighbor vertex, the "nBadPredComp1" can specifically refer to the number of first bit information prediction inaccuracies when the neighbor compensated reference vertex predicts the first bit information of the neighbor vertex, and the value of "isInter" can be controlled by a syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the inter-frame prediction of the upper layer is enabled, specifically whether the inter-frame prediction of the upper layer (for example, slice level, image level, sequence level, etc.) of the current vertex is enabled.

[0172] In some embodiments, for determining the value of the inter-frame enabling identification information, the method can include: decoding a code stream to determine the value of the inter-frame enabling identification information. Specifically, the method can include: decoding a code stream to determine the value of the syntax element gbh.interPredictionEnabledFlag; and determining the value of the inter-frame enabling identification information according to the value of the syntax element gbh.interPredictionEnabledFlag.

[0173] In the embodiments of the present application, if the value of the syntax element gbh.interPredictionEnabledFlag is 1, indicating that the inter-frame prediction is enabled, it is called a P frame, and at this time, the value of isInter is 1; otherwise, if the value of the syntax element gbh.interPredictionEnabledFlag is 1, indicating that the inter-frame prediction is not enabled, it is called an I frame, and at this time, the value of isInter is 0.

[0174] That is, in the embodiments of the present application, for the prediction identification information of the current vertex, it can be determined whether the inter-frame prediction of the current vertex is enabled according to the uncompensated reference vertex information, the neighbor uncompensated reference vertex information, the neighbor uncompensated reference vertex information, and the value of the syntax element gbh.interPredictionEnabledFlag.

[0175] It can also be understood that, in the embodiments of the present application, the vertex information can include whether the vertex exists, the high bit value and the low bit value, etc. Wherein, the decoding of whether the vertex exists, the high bit value and the low bit value, etc. is carried out separately. In the decoding process, both the intra prediction and the inter prediction are carried out by using the OBUF technology for entropy decoding, but the context state construction of the inter prediction is different from that of the intra prediction. Specifically, the inter context state (Inter State) is actually the joint of the intra context state (Intra State) of the to-be-decoded symbol and the current vertex prediction information obtained by referring to the point cloud.

[0176] In the embodiments of the present application, the reference point cloud can include an uncompensated reference point cloud (i.e. the original reference point cloud obtained by decoding) and a compensated reference point cloud (i.e. the reference point cloud obtained after motion compensation), the vertex information obtained by using the uncompensated reference point cloud is the uncompensated reference vertex information, and the vertex information obtained by using the compensated reference point cloud is the compensated reference vertex information. In addition, in the embodiments of the present application, the decoding method is mainly a method for decoding the first bit information of the current vertex. Here, the first bit information can be the high bit value, or can also be the low bit value. In the following, the first bit information will be taken as the high bit value as an example for relevant description.

[0177] In some embodiments, the method can further include: when the value of the inter enabling identification information is the first value, the value of the uncompensated reference vertex information is greater than or equal to the second value, and the number of the uncompensated neighbor vertexes whose first bit information prediction is inaccurate is less than or equal to the third value or the number of the compensated neighbor vertexes whose first bit information prediction is inaccurate is less than or equal to the third value, determining that the prediction identification information indicates that the first bit information of the current vertex uses the inter prediction mode.

[0178] In the embodiments of the present application, the first value can be set as 1, the second value can be set as 0, and the third value can be set as 4. In this way, for the determination of the inter prediction mode, isInterGood can be isInter && colocatedVertex >= 0 && (nBadPredRef1 <= 4 || nBadPredComp1 <= 4), that is, the value of isInterGood can be determined by isInter, colocatedVertex, nBadPredRef1 and nBadPredComp1. Wherein, colocatedVertex represents the uncompensated reference vertex information (high bits and low bits), nBadPredRef1 is the number of inaccurate predictions when the neighbor uncompensated reference vertex predicts the high bit information of the neighbor vertex, and nBadPredComp1 is the number of inaccurate predictions when the neighbor compensated reference vertex predicts the high bit information of the neighbor vertex. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the high layer (such as slice level, image level, sequence level, etc.) inter prediction of the to-be-encoded vertex is enabled. If the inter prediction is enabled, it is called P frame, and the value of isInter is 1 at this time; on the contrary, if it is not enabled, it is called I frame, and the value of isInter is 0 at this time.

[0179] S902, when the first bit information of the current vertex is indicated to use the inter prediction mode according to the prediction identification information, determining the inter context state type of the current vertex, and determining the context state corresponding to the current vertex and the decoder group according to the reference information of the current vertex and the inter context state type.

[0180] S903, according to the context state, determining the target decoder corresponding to the current vertex in the decoder group.

[0181] It should be noted that in the embodiments of the present application, if isInterGood = 1, it indicates that the prediction identification information indicates that the first bit information of the current vertex uses the inter prediction mode, and then it is necessary to continue to determine the inter context state type of the current vertex. In some embodiments, determining the inter context state type of the current vertex can include: determining the position information of the compensated reference vertex of the current vertex; and determining the inter context state type of the current vertex according to the position information of the compensated reference vertex.

[0182] It should be further explained that in the embodiments of the present application, the inter-frame context state type of the current vertex can be determined according to the value of the vertex identification information. The vertex identification information can be represented by TriSoupVerticesPred. According to the value of TriSoupVerticesPred, the inter-frame context can be divided into four types: the first inter-frame context state (or referred to as "inter-frame context one state", simply referred to as "inter-frame context one"), the second inter-frame context state (or referred to as "inter-frame context two state", simply referred to as "inter-frame context two"), the third inter-frame context state (or referred to as "inter-frame context three state", simply referred to as "inter-frame context three") and the fourth inter-frame context state (or referred to as "inter-frame context four state", simply referred to as "inter-frame context four"). TriSoupVerticesPred represents the position information of the compensation reference vertex, that is, the value of TriSoupVerticesPred can be determined according to the position information of the compensation reference vertex. In a specific embodiment, the method further comprises: determining the value of TriSoupVerticesPred; determining the inter-frame context state type of the current vertex according to the value of TriSoupVerticesPred.

[0183] In the embodiments of the present application, after the value of TriSoupVerticesPred is determined according to the position information of the compensation reference vertex, it is judged whether the value of TriSoupVerticesPred is equal to 0, i.e. TriSoupVerticesPred==0. If the value of TriSoupVerticesPred is equal to 0, it is determined that the inter-frame context state type of the current vertex is the first inter-frame context state (i.e. "inter-frame context one"). It is judged whether the value of TriSoupVerticesPred is equal to 1, i.e. TriSoupVerticesPred==1. If the value of TriSoupVerticesPred is equal to 1, it is determined that the inter-frame context state type of the current vertex is the second inter-frame context state (i.e. "inter-frame context two"). It is judged whether the value of TriSoupVerticesPred is equal to 2, i.e. TriSoupVerticesPred==2. If the value of TriSoupVerticesPred is equal to 2, it is determined that the inter-frame context state type of the current vertex is the third inter-frame context state (i.e. "inter-frame context three"). It is judged whether the value of TriSoupVerticesPred is equal to 3, i.e. TriSoupVerticesPred==3. If the value of TriSoupVerticesPred is equal to 3, it is determined that the inter-frame context state type of the current vertex is the fourth inter-frame context state (i.e. "inter-frame context four").

[0184] It should be further noted that, in the embodiments of the present application, after the corresponding context state and decoder group are determined according to the inter-frame context state type, a suitable target decoder can be further selected from the decoder group. In some embodiments, for step S903, referring to FIG. 10, the step can include:

[0185] S1001, determining the decoder index of the current vertex according to the context state.

[0186] S1002, determining the target decoder corresponding to the current vertex from the decoder group according to the decoder index.

[0187] In the embodiments of the present application, there is a mapping relationship between the context state and the decoder index. After the context state corresponding to the current vertex is determined, the target decoder corresponding to the current vertex can be selected from the decoder group. Exemplarily, the decoder group can include decoder 1, decoder 2, …, decoder N, if the decoder index is i, the decoder i in the decoder group can be determined as the target decoder.

[0188] It can be understood that, in the embodiments of the present application, the reference information of the current vertex includes at least one of the following: the number of first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately, the uncompensated reference vertex information of the current vertex, and the decoded vertex information of the current vertex.

[0189] In a possible implementation, determining the context state corresponding to the current vertex and the decoder group according to the reference information of the current vertex and the inter-frame context state type can include: when the number of first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is greater than a second value, determining the first context state corresponding to the inter-frame context state type and the first decoder group.

[0190] Correspondingly, in some embodiments, determining the target decoder corresponding to the current vertex in the decoder group according to the context state can include: determining the decoder index of the current vertex according to the first context state; and determining the target decoder corresponding to the current vertex from the first decoder group according to the decoder index.

[0191] In the embodiments of the present application, the second value can be set to 0. Wherein, if the number of first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is greater than 0, it indicates that the uncompensated neighbor vertex is predicted poorly, at this time, the uncompensated reference vertex prediction is not used, at this time, the first context state corresponding to the current inter-frame context state type and the first decoder group can be determined; then the decoder index of the current vertex is determined according to the first context state; and the target decoder corresponding to the current vertex is determined from the first decoder group according to the decoder index. It should be noted that the context state and the decoder index have a mapping relationship. In addition, assuming that the first decoder group includes decoder 1, decoder 2, …, decoder N, if the decoder index is i, the decoder i in the first decoder group can be determined as the target decoder.

[0192] In a possible implementation, determining the context state corresponding to the current vertex and the decoder group according to the reference information of the current vertex and the inter-frame context state type can include: when the number of first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is less than or equal to the second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as the fourth value, determining the second context state corresponding to the inter-frame context state type and the second decoder group.

[0193] Correspondingly, in some embodiments, determining the target decoder corresponding to the current vertex in the decoder group according to the context state can include: determining the decoder index of the current vertex according to the second context state; and determining the target decoder corresponding to the current vertex from the second decoder group according to the decoder index.

[0194] In the embodiments of the present application, the second value can be set as 0, and the fourth value can be set as 0. Wherein, if the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is less than or equal to 0, and the first bit information of the uncompensated reference vertex information of the current vertex is predicted as 0, when the first bit information is high bit information, it indicates that the uncompensated neighbor vertex is predicted well and the high bit of the uncompensated reference vertex is predicted as 0, at this time, the corresponding second context state and the second decoder group under the current inter context state type can be determined; then the decoder index of the current vertex is determined according to the second context state; and the corresponding target decoder of the current vertex is determined from the second decoder group according to the decoder index. Here, assuming that the second decoder group includes decoder 1, decoder 2, …, decoder N, if the decoder index is i, the decoder i in the second decoder group can be determined as the target decoder.

[0195] In a possible implementation, the determining, according to the reference information of the current vertex and the inter context state type, of the context state corresponding to the current vertex and the decoder group can include: when the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is less than or equal to a second value, and the first bit information of the uncompensated reference vertex information of the current vertex is predicted as a fifth value, a third context state and a third decoder group under the inter context state type are determined.

[0196] Correspondingly, in some embodiments, the determining, according to the context state, of the target decoder corresponding to the current vertex in the decoder group can include: determining the decoder index of the current vertex according to the third context state; and determining the target decoder corresponding to the current vertex from the third decoder group according to the decoder index.

[0197] In the embodiments of the present application, the second value can be set as 0, and the fifth value can be set as 1. Wherein, if the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is less than or equal to 0, and the first bit information of the uncompensated reference vertex information of the current vertex is predicted as 1, when the first bit information is high bit information, it indicates that the uncompensated neighbor vertex is predicted well and the high bit of the uncompensated reference vertex is predicted as 1, at this time, the corresponding third context state and the third decoder group under the current inter context state type can be determined; then the decoder index of the current vertex is determined according to the third context state; and the corresponding target decoder of the current vertex is determined from the third decoder group according to the decoder index. Here, assuming that the third decoder group includes decoder 1, decoder 2, …, decoder N, if the decoder index is i, the decoder i in the third decoder group can be determined as the target decoder.

[0198] For example, assuming the inter context state type of the current vertex is the first inter context state (i.e. inter context one state), when the uncompensated neighbor vertex prediction of the current vertex is not good, the uncompensated reference vertex prediction is not used, the first context state under the first inter context state and the first decoder group (e.g. Decoder 2) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit in the uncompensated reference vertex information of the current vertex is predicted as 0, the second context state under the first inter context state and the second decoder group (e.g. Decoder 3) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit in the uncompensated reference vertex information of the current vertex is predicted as 1, the third context state under the first inter context state and the third decoder group (e.g. Decoder 4) are determined.

[0199] For example, assuming the inter context state type of the current vertex is the second inter context state (i.e. inter context two state), when the uncompensated neighbor vertex prediction of the current vertex is not good, the uncompensated reference vertex prediction is not used, the first context state under the second inter context state and the first decoder group (e.g. Decoder 5) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit in the uncompensated reference vertex information of the current vertex is predicted as 0, the second context state under the second inter context state and the second decoder group (e.g. Decoder 6) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit in the uncompensated reference vertex information of the current vertex is predicted as 1, the third context state under the second inter context state and the third decoder group (e.g. Decoder 7) are determined.

[0200] For example, assuming the inter context state type of the current vertex is the third inter context state (i.e. inter context three state), when the uncompensated neighbor vertex prediction of the current vertex is not good, the uncompensated reference vertex prediction is not used, the first context state under the third inter context state and the first decoder group (e.g. Decoder 8) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit in the uncompensated reference vertex information of the current vertex is predicted as 0, the second context state under the third inter context state and the second decoder group (e.g. Decoder 9) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit in the uncompensated reference vertex information of the current vertex is predicted as 1, the third context state under the third inter context state and the third decoder group (e.g. Decoder 10) are determined.

[0201] Exemplarily, assuming that the inter-frame context state type of the current vertex is the fourth inter-frame context state (i.e., inter-frame context four state), when the uncompensated neighbor vertex prediction of the current vertex is not good, the uncompensated reference vertex prediction is not used, the first context state in the fourth inter-frame context state and the first decoder group (for example, Decoder 11) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit in the uncompensated reference vertex information of the current vertex is predicted as 0, the second context state in the fourth inter-frame context state and the second decoder group (for example, Decoder 12) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit in the uncompensated reference vertex information of the current vertex is predicted as 1, the third context state in the fourth inter-frame context state and the third decoder group (for example, Decoder 13) are determined.

[0202] It can also be understood that in the embodiments of the present application, when the number of the first bit information of the uncompensated neighbor vertex of the current vertex that is predicted inaccurately is less than or equal to the second value, part of the inter-frame context states can also be merged. In some embodiments, referring to FIG. 11, the method can include:

[0203] S1101, determining, according to the decoded vertex information of the current vertex, a first cumulative sum value corresponding to the first bit information in the decoded vertex information and a second cumulative sum value corresponding to the first bit information predicted in the decoded vertex information.

[0204] S1102, determining an intermediate result according to the first cumulative sum value and the second cumulative sum value.

[0205] S1103, when the intermediate result is less than or equal to a preset threshold, adjusting part of the context states to merge the part of the context states into the first context state.

[0206] In the embodiments of the present application, if the number of the first bit information of the uncompensated neighbor vertex of the current vertex that is predicted inaccurately is less than or equal to the second value, then according to the decoded vertex information of the current vertex, a first cumulative sum value corresponding to the first bit information in the decoded vertex information and a second cumulative sum value corresponding to the first bit information predicted in the decoded vertex information can be determined; then an intermediate result is determined according to the first cumulative sum value and the second cumulative sum value; and according to the intermediate result, it is determined whether to adjust the context state.

[0207] In the embodiments of the present application, the first accumulated sum value can be denoted as CoNum, and the second accumulated sum value can be denoted as PredNum. For example, PredNum is the accumulated sum value determined as predicted in the decoded vertex high bits, and CoNum is the accumulated sum value of the decoded vertex high bits, so that the ratio between the second accumulated sum value and the first accumulated sum value, i.e. PredNum / CoNum, can be taken as an intermediate result, and then according to the comparison result between PredNum / CoNum and a preset threshold (th), it is determined whether to adjust the context state. Alternatively, the ratio between the second accumulated sum value multiplied by K and the first accumulated sum value, i.e. K*PredNum / CoNum, can be taken as an intermediate result, and then according to the comparison result between K*PredNum / CoNum and the preset threshold (th), it is determined whether to adjust the context state. Here, the coefficient K and the preset threshold (th) are both preset constants.

[0208] In the embodiments of the present application, for determining whether to adjust the context state, the method can include: when the intermediate result is less than or equal to the preset threshold, adjusting part of the context states in the context state to merge the part of the context states into the first context state. Otherwise, when the intermediate result is greater than the preset threshold, the step of judging whether the first bit information in the uncompensated reference vertex information of the current vertex is predicted to be 0 or 1 is continued.

[0209] For example, if K*PredNum / CoNum<=th, the part of the context states is merged into the first context state; if K*PredNum / CoNum>th, the judgment of whether the first bit information in the uncompensated reference vertex information of the current vertex is predicted to be 0 or 1 is continued, so as to determine the second context state of the current vertex and the second decoder group when it is predicted to be 0, and determine the third context state of the current vertex and the third decoder group when it is predicted to be 1.

[0210] In a possible implementation, according to the reference information of the current vertex and the inter-frame context state type, the context state corresponding to the current vertex and the decoder group can include: when the intermediate result is less than or equal to the preset threshold, or the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted to be incorrect is greater than a second value, the first context state corresponding to the inter-frame context state type and the first decoder group are determined. Correspondingly, in some embodiments, according to the context state, the target decoder corresponding to the current vertex is determined in the decoder group, which can include: according to the first context state, the decoder index of the current vertex is determined; and according to the decoder index, the target decoder corresponding to the current vertex is determined from the first decoder group.

[0211] In a possible implementation, determining the context state and the decoder group corresponding to the current vertex according to the reference information of the current vertex and the inter-frame context state type can include: when the intermediate result is greater than the preset threshold, the number of the first bit information of the uncompensated neighbor vertices of the current vertex predicted inaccurately is less than or equal to the second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as the fourth value, determining the second context state and the second decoder group corresponding to the current vertex in the inter-frame context state type. Accordingly, in some embodiments, determining the target decoder corresponding to the current vertex in the decoder group according to the context state can include: determining the decoder index of the current vertex according to the second context state; and determining the target decoder corresponding to the current vertex from the second decoder group according to the decoder index.

[0212] In a possible implementation, determining the context state and the decoder group corresponding to the current vertex according to the reference information of the current vertex and the inter-frame context state type can include: when the intermediate result is greater than the preset threshold, the number of the first bit information of the uncompensated neighbor vertices of the current vertex predicted inaccurately is less than or equal to the second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as the fifth value, determining the third context state and the third decoder group corresponding to the current vertex in the inter-frame context state type. Accordingly, in some embodiments, determining the target decoder corresponding to the current vertex in the decoder group according to the context state can include: determining the decoder index of the current vertex according to the third context state; and determining the target decoder corresponding to the current vertex from the third decoder group according to the decoder index.

[0213] In the embodiments of the present application, the second value can be set as 0, the fourth value can be set as 0, and the fifth value can be set as 1. For example, if K*PredNum / CoNum<=th, or the uncompensated neighbor vertex prediction is not good, the uncompensated reference vertex prediction is not used, the first context state corresponding to the current inter context state type and the first decoder group can be determined; then the decoder index of the current vertex is determined according to the first context state; and the target decoder corresponding to the current vertex is determined from the first decoder group according to the decoder index. If K*PredNum / CoNum>th, and the uncompensated neighbor vertex prediction is good and the high bit prediction of the uncompensated reference vertex is 0, the second context state corresponding to the current inter context state type and the second decoder group can be determined; then the decoder index of the current vertex is determined according to the second context state; and the target decoder corresponding to the current vertex is determined from the second decoder group according to the decoder index. If K*PredNum / CoNum>th, and the uncompensated neighbor vertex prediction is good and the high bit prediction of the uncompensated reference vertex is 1, the third context state corresponding to the current inter context state type and the third decoder group can be determined; then the decoder index of the current vertex is determined according to the third context state; and the target decoder corresponding to the current vertex is determined from the third decoder group according to the decoder index.

[0214] In S904, the first bit information of the current vertex is determined by decoding the code stream according to the target decoder.

[0215] It should be noted that, in the embodiments of the present application, the target decoder is a binary decoder. After the target decoder is determined, adaptive arithmetic decoding can be performed according to the probability of the selected target decoder to determine the first bit information of the current vertex, such as the high bit information of the current vertex.

[0216] It should be further explained that, in the embodiment of the present application, for the case that the first bit information of the current vertex does not use the inter prediction mode, the intra context state corresponding to the current vertex and the fourth decoder group corresponding thereto can be determined. Illustratively, if TriSoupVerticesPred<0, or isInterGood=0, or isInter=0, or colocatedVertex<0, it can be determined that the first bit information of the current vertex does not use the inter prediction mode, and the intra context state corresponding to the current vertex and the fourth decoder group (for example, Decoder1) corresponding thereto can be determined. Then the decoder index of the current vertex is determined according to the intra context state, and the target decoder is determined from the fourth decoder group according to the decoder index. Here, it is assumed that the fourth decoder group includes decoders 1, 2, …, N, and if the decoder index is i, the decoder i in the fourth decoder group can be determined as the target decoder.

[0217] It should be further explained that, in the embodiment of the present application, N is a positive integer, and i is an integer greater than 0 and less than or equal to N. Illustratively, the value of N can be 32, that is, 32 decoders are included in each decoder group, one of which is selected as the target decoder, and then the code stream is decoded according to the target decoder to determine the high bit information of the current vertex.

[0218] The embodiment provides a decoding method, determines prediction identification information of a current vertex; when the first bit information of the current vertex is indicated by the prediction identification information to use an inter prediction mode, determines an inter context state type of the current vertex, and determines a context state corresponding to the current vertex and a decoder group according to reference information of the current vertex and the inter context state type; determines a target decoder corresponding to the current vertex in the decoder group according to the context state; and decodes a code stream according to the target decoder to determine the first bit information of the current vertex. That is, independent context states are used for different inter context state types, and different context states correspond to respective decoder groups, solving the probability updating problem caused by the same decoder group shared by different context states in the related art, and enabling a more suitable decoder group to be selected, thereby improving the accuracy of target decoder selection. In addition, since different context states correspond to respective decoder groups, part of the inter context states can be merged, thereby solving the problem of slow convergence of probabilities corresponding to the inter context states when the use of the inter prediction is less, and improving the inter prediction effect. In this way, the geometry coding efficiency of the point cloud is improved, and the coding and decoding performance is improved.

[0219] In another embodiment of the present application, FIG. 12 is a flowchart of an encoding method provided by the embodiment of the present application. As shown in FIG. 12, the method can include:

[0220] S1201, determine prediction identification information of the current vertex.

[0221] It should be noted that in the embodiments of the present application, the encoding method can be applied to an encoder or an encoding end in a G-PCC coding framework. The encoding method can be an inter-frame encoding method, and more specifically, a point cloud geometry information inter-frame encoding method. By fully utilizing inter-frame prediction information, the encoding efficiency of the point cloud can be improved.

[0222] It should be further noted that in the embodiments of the present application, determining the prediction identification information of the current vertex can include: determining the uncompensated reference vertex information of the current vertex, the number of first bit information prediction inaccuracies of the uncompensated neighbor vertices of the current vertex, the number of first bit information prediction inaccuracies of the compensated neighbor vertices of the current vertex, and the value of the inter-frame enabling identification information; and determining the prediction identification information of the current vertex according to the uncompensated reference vertex information, the number of first bit information prediction inaccuracies of the uncompensated neighbor vertices, the number of first bit information prediction inaccuracies of the compensated neighbor vertices, and the value of the inter-frame enabling identification information.

[0223] It can be understood that in the embodiments of the present application, whether the current vertex uses the inter-frame prediction mode can be determined according to the uncompensated reference vertex information, the uncompensated neighbor vertex information, the compensated neighbor vertex information, and the value of the inter-frame enabling identification information.

[0224] Here, the prediction identification information of the current vertex can be represented by isInterGood. Specifically, isInterGood refers to the determination of the compensated neighbor vertex information and the uncompensated neighbor vertex information of the current vertex after the inter-frame is enabled. If it is determined that the prediction is good, the value of isInterGood is equal to 1, and the prediction identification information indicates that the first bit information of the current vertex uses the inter-frame prediction mode. If it is determined that the prediction is not good, the value of isInterGood is equal to 0, and the prediction identification information indicates that the first bit information of the current vertex uses the intra-frame prediction mode. That is, according to the value (0 or 1) of isInterGood, it can be divided into two large sets of intra-frame context and inter-frame context.

[0225] Here, the uncompensated reference vertex information of the current vertex can be denoted as colocatedVertex, the number of first bit information prediction inaccuracies of the uncompensated neighbor vertex of the current vertex can be denoted as nBadPredRef1, the number of first bit information prediction inaccuracies of the compensated neighbor vertex of the current vertex can be denoted as nBadPredComp1, and the inter-frame enabling identification information can be denoted as isInter. The nBadPredRef1 can specifically refer to the number of first bit information prediction inaccuracies of the neighbor uncompensated reference vertex when predicting the neighbor vertex, the nBadPredComp1 can specifically refer to the number of first bit information prediction inaccuracies of the neighbor compensated reference vertex when predicting the neighbor vertex, and the value of isInter can be controlled by a syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the inter-frame prediction is enabled at a higher level, for example, a slice level, an image level, a sequence level, and the like.

[0226] In some embodiments, for determining the value of the inter-frame enabling identification information, the method can include: when the inter-frame prediction mode is enabled at a higher level of the current vertex, determining the value of the inter-frame enabling identification information as a first value; and when the inter-frame prediction mode is not enabled at the higher level of the current vertex, determining the value of the inter-frame enabling identification information as a second value. Further, the method can further include: encoding the value of the inter-frame enabling identification information, and writing the obtained encoding bits into a bitstream. In this way, the value of the inter-frame enabling identification information can be determined at a decoding end by decoding the bitstream subsequently.

[0227] In the embodiments of the present application, the value of the inter-frame enabling identification information can be controlled by a syntax element gbh.interPredictionEnabledFlag. Therefore, the method can further include: when the inter-frame prediction mode is enabled at a higher level of the current vertex, determining the value of gbh.interPredictionEnabledFlag as a first value; and when the inter-frame prediction mode is not enabled at the higher level of the current vertex, determining the value of gbh.interPredictionEnabledFlag as a second value. Further, the method can further include: encoding the value of gbh.interPredictionEnabledFlag, and writing the obtained encoding bits into a bitstream. In this way, the value of the inter-frame enabling identification information can also be determined at a decoding end by decoding the bitstream subsequently.

[0228] Specifically, in the embodiment of the present application, if the value of the syntax element gbh.interPredictionEnabledFlag is 1, it indicates that the inter prediction is enabled, and then the current frame is called P frame, and the value of isInter is 1; otherwise, if the value of the syntax element gbh.interPredictionEnabledFlag is 0, it indicates that the inter prediction is not enabled, and then the current frame is called I frame, and the value of isInter is 0.

[0229] That is to say, in the embodiment of the present application, for the prediction identification information of the current vertex, it can be determined whether the inter prediction is enabled for the current vertex according to the value of the syntax element gbh.interPredictionEnabledFlag, the value of the un-compensated reference vertex information, the value of the neighbor un-compensated reference vertex information, and the value of the neighbor un-compensated reference vertex information.

[0230] It can also be understood that, in the embodiment of the present application, the vertex information can include whether the vertex exists, the high bit value, and the low bit value, etc. The encoding of whether the vertex exists, the high bit value, and the low bit value is performed separately. In the encoding process, the intra prediction and the inter prediction are both entropy encoded by using the OBUF technology, but the context state construction of the inter prediction is different from that of the intra prediction. Specifically, the inter context state is actually the joint of the intra context state of the to-be-encoded symbol and the prediction information of the current vertex obtained by referring to the point cloud.

[0231] In the embodiment of the present application, the reference point cloud can include an un-compensated reference point cloud (i.e. the original reference point cloud) and a compensated reference point cloud (i.e. the reference point cloud obtained after motion compensation), the vertex information obtained by using the un-compensated reference point cloud is the un-compensated reference vertex information, and the vertex information obtained by using the compensated reference point cloud is the compensated reference vertex information. In addition, in the embodiment of the present application, the encoding method is mainly a method for encoding the first bit information of the current vertex. Here, the first bit information can be the high bit value, or can also be the low bit value. In the following, the high bit value is taken as an example for relevant description.

[0232] In some embodiments, the method can further include: when the value of the inter enabling identification information is the first value, the value of the un-compensated reference vertex information is greater than or equal to the second value, and the number of the first bit information of the un-compensated neighbor vertex predicted inaccurately is less than or equal to the third value or the number of the first bit information of the compensated neighbor vertex predicted inaccurately is less than or equal to the third value, determining that the prediction identification information indicates that the first bit information of the current vertex uses the inter prediction mode.

[0233] In the embodiments of the present application, the first value can be set as 1, the second value can be set as 0, and the third value can be set as 4. In this way, for the determination of the inter prediction mode, isInterGood can be isInter && colocatedVertex >= 0 && (nBadPredRef1 <= 4 || nBadPredComp1 <= 4), that is, the value of isInterGood can be determined by isInter, colocatedVertex, nBadPredRef1 and nBadPredComp1. Wherein, colocatedVertex represents the uncompensated reference vertex information (high bits and low bits), nBadPredRef1 is the number of incorrect predictions when the neighbor uncompensated reference vertex predicts the high bit information of the neighbor vertex, and nBadPredComp1 is the number of incorrect predictions when the neighbor compensated reference vertex predicts the high bit information of the neighbor vertex. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the high layer (such as slice level, image level, sequence level, etc.) inter prediction of the to-be-encoded vertex is enabled. If the inter prediction is enabled, it is called P frame, and the value of isInter is 1 at this time; on the contrary, if it is not enabled, it is called I frame, and the value of isInter is 0 at this time.

[0234] In S1202, when the first bit information of the current vertex is indicated to use the inter prediction mode according to the prediction identification information, the inter context state type of the current vertex is determined, and the context state and the encoder group corresponding to the current vertex are determined according to the reference information of the current vertex and the inter context state type.

[0235] In S1203, the target encoder corresponding to the current vertex is determined in the encoder group according to the context state.

[0236] It should be noted that in the embodiments of the present application, if isInterGood = 1, it indicates that the first bit information of the current vertex is indicated to use the inter prediction mode by the prediction identification information, and then the inter context state type of the current vertex needs to be determined. In some embodiments, the inter context state type of the current vertex can be determined by determining the position information of the compensated reference vertex of the current vertex, and determining the inter context state type of the current vertex according to the position information of the compensated reference vertex.

[0237] It should be further explained that in the embodiments of the present application, the inter-frame context state type of the current vertex can be determined according to the value of the vertex identification information. The vertex identification information can be represented by TriSoupVerticesPred. According to the value of TriSoupVerticesPred, the inter-frame context can be divided into four types: the first inter-frame context state (or referred to as "inter-frame context one state", simply referred to as "inter-frame context one"), the second inter-frame context state (or referred to as "inter-frame context two state", simply referred to as "inter-frame context two"), the third inter-frame context state (or referred to as "inter-frame context three state", simply referred to as "inter-frame context three") and the fourth inter-frame context state (or referred to as "inter-frame context four state", simply referred to as "inter-frame context four"). TriSoupVerticesPred represents the position information of the compensation reference vertex, that is, the value of TriSoupVerticesPred can be determined according to the position information of the compensation reference vertex. In a specific embodiment, the method further comprises: determining the value of TriSoupVerticesPred; determining the inter-frame context state type of the current vertex according to the value of TriSoupVerticesPred.

[0238] In the embodiments of the present application, after determining the value of TriSoupVerticesPred according to the position information of the compensated reference vertex, it is determined whether the value of TriSoupVerticesPred is equal to 0, i.e. TriSoupVerticesPred==0. If the value of TriSoupVerticesPred is equal to 0, it is determined that the inter-frame context state type of the current vertex is the first inter-frame context state (i.e. "inter-frame context one"). It is determined whether the value of TriSoupVerticesPred is equal to 1, i.e. TriSoupVerticesPred==1. If the value of TriSoupVerticesPred is equal to 1, it is determined that the inter-frame context state type of the current vertex is the second inter-frame context state (i.e. "inter-frame context two"). It is determined whether the value of TriSoupVerticesPred is equal to 2, i.e. TriSoupVerticesPred==2. If the value of TriSoupVerticesPred is equal to 2, it is determined that the inter-frame context state type of the current vertex is the third inter-frame context state (i.e. "inter-frame context three"). It is determined whether the value of TriSoupVerticesPred is equal to 3, i.e. TriSoupVerticesPred==3. If the value of TriSoupVerticesPred is equal to 3, it is determined that the inter-frame context state type of the current vertex is the fourth inter-frame context state (i.e. "inter-frame context four").

[0239] It should be further noted that, in the embodiments of the present application, after determining the corresponding context state and the encoder group according to the inter-frame context state type, a suitable target encoder can be further selected from the encoder group. In a specific embodiment, determining the target encoder corresponding to the current vertex from the encoder group according to the context state can include: determining the encoder index of the current vertex according to the context state; and determining the target encoder corresponding to the current vertex from the encoder group according to the encoder index.

[0240] In the embodiments of the present application, there is a mapping relationship between the context state and the encoder index. After determining the context state corresponding to the current vertex, the target encoder corresponding to the current vertex can be selected from the encoder group. Exemplarily, the encoder group can include encoder 1, encoder 2, …, and encoder N. If the encoder index is i, the encoder i in the encoder group can be determined as the target encoder.

[0241] It can be understood that, in the embodiments of the present application, the reference information of the current vertex includes at least one of the following: the number of first bit information prediction errors of the uncompensated neighbor vertex of the current vertex, the uncompensated reference vertex information of the current vertex, and the encoded vertex information of the current vertex.

[0242] In a possible implementation, determining the context state corresponding to the current vertex and the encoder group according to the reference information of the current vertex and the inter-frame context state type can include: when the number of the first bit information of the uncompensated neighbor vertices of the current vertex that is not predicted accurately is greater than a second value, determining the first context state corresponding to the inter-frame context state type and the first encoder group.

[0243] Correspondingly, in some embodiments, determining the target encoder corresponding to the current vertex in the encoder group according to the context state can include: determining the encoder index of the current vertex according to the first context state; and determining the target encoder corresponding to the current vertex from the first encoder group according to the encoder index.

[0244] In the embodiments of the present application, the second value can be set to 0. Wherein, if the number of the first bit information of the uncompensated neighbor vertices of the current vertex that is not predicted accurately is greater than 0, it indicates that the uncompensated neighbor vertices are not predicted well, at this time, the uncompensated reference vertex prediction is not used, at this time, the first context state corresponding to the current inter-frame context state type and the first encoder group can be determined; then the encoder index of the current vertex is determined according to the first context state; and the target encoder is determined from the first encoder group according to the encoder index. It should be noted that the context state and the encoder index have a mapping relationship. In addition, assuming that the first encoder group includes encoder 1, encoder 2, …, encoder N, if the encoder index is i, the encoder i in the first encoder group can be determined as the target encoder.

[0245] In a possible implementation, determining the context state corresponding to the current vertex and the encoder group according to the reference information of the current vertex and the inter-frame context state type can include: when the number of the first bit information of the uncompensated neighbor vertices of the current vertex that is not predicted accurately is less than or equal to the second value, and the first bit information of the uncompensated reference vertex information of the current vertex is predicted as the fourth value, determining the second context state corresponding to the inter-frame context state type and the second encoder group.

[0246] Correspondingly, in some embodiments, determining the target encoder corresponding to the current vertex in the encoder group according to the context state can include: determining the encoder index of the current vertex according to the second context state; and determining the target encoder corresponding to the current vertex from the second encoder group according to the encoder index.

[0247] In the embodiments of the present application, the second value can be set as 0, and the fourth value can be set as 0. Wherein, if the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is less than or equal to 0, and the first bit information of the uncompensated reference vertex information of the current vertex is predicted as 0, when the first bit information is high bit information, it indicates that the uncompensated neighbor vertex is predicted well and the high bit of the uncompensated reference vertex is predicted as 0, at this time, the corresponding second context state and the second encoder group under the current inter context state type can be determined; then the encoder index of the current vertex is determined according to the second context state; and the corresponding target encoder is determined from the second encoder group according to the encoder index. Here, assuming that the second encoder group includes encoder 1, encoder 2, …, encoder N, if the encoder index is i, the encoder i in the second encoder group can be determined as the target encoder.

[0248] In a possible implementation, the determining, according to the reference information of the current vertex and the inter context state type, of the context state corresponding to the current vertex and the encoder group can include: when the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is less than or equal to a second value, and the first bit information of the uncompensated reference vertex information of the current vertex is predicted as a fifth value, a third context state and a third encoder group under the inter context state type are determined.

[0249] Correspondingly, in some embodiments, the determining, according to the context state, of the target encoder corresponding to the current vertex in the encoder group can include: determining the encoder index of the current vertex according to the third context state; and determining the target encoder corresponding to the current vertex from the third encoder group according to the encoder index.

[0250] In the embodiments of the present application, the second value can be set as 0, and the fifth value can be set as 1. Wherein, if the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is less than or equal to 0, and the first bit information of the uncompensated reference vertex information of the current vertex is predicted as 1, when the first bit information is high bit information, it indicates that the uncompensated neighbor vertex is predicted well and the high bit of the uncompensated reference vertex is predicted as 1, at this time, the corresponding third context state and the third encoder group under the current inter context state type can be determined; then the encoder index of the current vertex is determined according to the third context state; and the corresponding target encoder is determined from the third encoder group according to the encoder index. Here, assuming that the third encoder group includes encoder 1, encoder 2, …, encoder N, if the encoder index is i, the encoder i in the third encoder group can be determined as the target encoder.

[0251] For example, assuming the inter context state type of the current vertex is the first inter context state (i.e. inter context one state), when the uncompensated neighbor vertex prediction of the current vertex is not good, the uncompensated reference vertex prediction is not used, the first context state under the first inter context state and the first encoder group (e.g. Coder2) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit prediction in the uncompensated reference vertex information of the current vertex is 0, the second context state under the first inter context state and the second encoder group (e.g. Coder3) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit prediction in the uncompensated reference vertex information of the current vertex is 1, the third context state under the first inter context state and the third encoder group (e.g. Coder4) are determined.

[0252] For example, assuming the inter context state type of the current vertex is the second inter context state (i.e. inter context two state), when the uncompensated neighbor vertex prediction of the current vertex is not good, the uncompensated reference vertex prediction is not used, the first context state under the second inter context state and the first encoder group (e.g. Coder5) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit prediction in the uncompensated reference vertex information of the current vertex is 0, the second context state under the second inter context state and the second encoder group (e.g. Coder6) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit prediction in the uncompensated reference vertex information of the current vertex is 1, the third context state under the second inter context state and the third encoder group (e.g. Coder7) are determined.

[0253] For example, assuming the inter context state type of the current vertex is the third inter context state (i.e. inter context three state), when the uncompensated neighbor vertex prediction of the current vertex is not good, the uncompensated reference vertex prediction is not used, the first context state under the third inter context state and the first encoder group (e.g. Coder8) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit prediction in the uncompensated reference vertex information of the current vertex is 0, the second context state under the third inter context state and the second encoder group (e.g. Coder9) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit prediction in the uncompensated reference vertex information of the current vertex is 1, the third context state under the third inter context state and the third encoder group (e.g. Coder10) are determined.

[0254] For example, assuming that the inter-frame context state type of the current vertex is the fourth inter-frame context state (i.e., inter-frame context four state), when the uncompensated neighbor vertex prediction of the current vertex is not good, the uncompensated reference vertex prediction is not used, the first context state in the fourth inter-frame context state and the first encoder group (e.g., Coder 11) are determined; when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit in the uncompensated reference vertex information of the current vertex is predicted as 0, the second context state in the fourth inter-frame context state and the second encoder group (e.g., Coder 12) are determined; and when the uncompensated neighbor vertex prediction of the current vertex is good and the high bit in the uncompensated reference vertex information of the current vertex is predicted as 1, the third context state in the fourth inter-frame context state and the third encoder group (e.g., Coder 13) are determined.

[0255] It can also be understood that in the embodiments of the present application, when the number of the first bit information of the uncompensated neighbor vertex of the current vertex that is predicted inaccurately is less than or equal to the second value, part of the inter-frame context states can also be merged. In some embodiments, the method can further include: determining, according to the coded vertex information of the current vertex, a first cumulative sum value corresponding to the first bit information in the coded vertex information and a second cumulative sum value corresponding to the first bit information in the coded vertex information that is predicted; determining an intermediate result according to the first cumulative sum value and the second cumulative sum value; and when the intermediate result is less than or equal to a preset threshold, adjusting part of the context states to merge the part of the context states into the first context state.

[0256] It should be noted that when the number of the first bit information of the uncompensated neighbor vertex of the current vertex that is predicted inaccurately is less than or equal to the second value, the first cumulative sum value corresponding to the first bit information in the coded vertex information and the second cumulative sum value corresponding to the first bit information in the coded vertex information that is predicted can be determined according to the coded vertex information of the current vertex; then the intermediate result is determined according to the first cumulative sum value and the second cumulative sum value; and whether to adjust the context states is determined according to the intermediate result.

[0257] In the embodiments of the present application, the first accumulated sum value can be denoted as CoNum, and the second accumulated sum value can be denoted as PredNum. Exemplarily, PredNum is the accumulated sum value determined as predicted in the coded vertex high bits, and CoNum is the accumulated sum value of the coded vertex high bits, so that the ratio between the second accumulated sum value and the first accumulated sum value, i.e., PredNum / CoNum, can be taken as an intermediate result, and then according to the comparison result between PredNum / CoNum and a preset threshold (th), it is determined whether to adjust the context state. Alternatively, the ratio between the second accumulated sum value multiplied by K and the first accumulated sum value, i.e., K*PredNum / CoNum, can be taken as an intermediate result, and then according to the comparison result between K*PredNum / CoNum and the preset threshold (th), it is determined whether to adjust the context state. Here, the coefficient K and the preset threshold (th) are both preset constants.

[0258] It also needs to be explained that for determining whether to adjust the context state according to the intermediate result, the method can include: when the intermediate result is less than or equal to the preset threshold, adjusting part of the context states in the context state to merge the part of the context states into the first context state. Otherwise, when the intermediate result is greater than the preset threshold, the step of judging whether the first bit information in the uncompensated reference vertex information of the current vertex is predicted as 0 or 1 is continued to be executed.

[0259] Exemplarily, if K*PredNum / CoNum<=th, the part of the context states is merged into the first context state; if K*PredNum / CoNum>th, the judgment of whether the first bit information in the uncompensated reference vertex information of the current vertex is predicted as 0 or 1 is continued, so as to determine the second context state of the current vertex and the second encoder group when it is predicted as 0, and determine the third context state of the current vertex and the third encoder group when it is predicted as 1.

[0260] In a possible implementation, determining the context state corresponding to the current vertex and the encoder group according to the reference information of the current vertex and the inter-frame context state type can include: when the intermediate result is less than or equal to the preset threshold, or the number of the uncompensated neighbor vertices of the current vertex whose first bit information is predicted inaccurately is greater than a second value, determining the first context state corresponding to the inter-frame context state type and the first encoder group. Correspondingly, in some embodiments, determining the target encoder corresponding to the current vertex in the encoder group according to the context state can include: determining the encoder index of the current vertex according to the first context state; and determining the target encoder corresponding to the current vertex from the first encoder group according to the encoder index.

[0261] In a possible implementation, the determining the context state and the encoder group corresponding to the current vertex according to the reference information of the current vertex and the inter-frame context state type can include: when the intermediate result is greater than the preset threshold, the number of the first bit information of the uncompensated neighbor vertices of the current vertex predicted inaccurately is less than or equal to a second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as a fourth value, determining the second context state corresponding to the inter-frame context state type and a second encoder group. Accordingly, in some embodiments, the determining the target encoder corresponding to the current vertex in the encoder group according to the context state can include: determining the encoder index of the current vertex according to the second context state; and determining the target encoder corresponding to the current vertex from the second encoder group according to the encoder index.

[0262] In a possible implementation, the determining the context state and the encoder group corresponding to the current vertex according to the reference information of the current vertex and the inter-frame context state type can include: when the intermediate result is greater than the preset threshold, the number of the first bit information of the uncompensated neighbor vertices of the current vertex predicted inaccurately is less than or equal to a second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as a fifth value, determining the third context state corresponding to the inter-frame context state type and a third encoder group. Accordingly, in some embodiments, the determining the target encoder corresponding to the current vertex in the encoder group according to the context state can include: determining the encoder index of the current vertex according to the third context state; and determining the target encoder corresponding to the current vertex from the third encoder group according to the encoder index.

[0263] In the embodiments of the present application, the second value can be set as 0, the fourth value can be set as 0, and the fifth value can be set as 1. Exemplarily, if K*PredNum / CoNum<=th, or the uncompensated neighbor vertex prediction is not good, the uncompensated reference vertex prediction is not used, at this time, the first context state corresponding to the current inter context state type and the first encoder group can be determined; then the encoder index of the current vertex is determined according to the first context state; and the corresponding target encoder is determined from the first encoder group according to the encoder index. If K*PredNum / CoNum>th, and the uncompensated neighbor vertex prediction is good and the high bit prediction of the uncompensated reference vertex is 0, at this time, the second context state corresponding to the current inter context state type and the second encoder group can be determined; then the encoder index of the current vertex is determined according to the second context state; and the corresponding target encoder is determined from the second encoder group according to the encoder index. If K*PredNum / CoNum>th, and the uncompensated neighbor vertex prediction is good and the high bit prediction of the uncompensated reference vertex is 1, at this time, the third context state corresponding to the current inter context state type and the third encoder group can be determined; then the encoder index of the current vertex is determined according to the third context state; and the corresponding target encoder is determined from the third encoder group according to the encoder index.

[0264] In S1204, the first bit information of the current vertex is encoded by using the target encoder, and the obtained encoded bits are written into the bitstream.

[0265] It should be noted that, in the embodiments of the present application, the target encoder is a binary encoder. After the target encoder is determined, adaptive arithmetic encoding can be performed according to the probability of the selected target encoder, for example, adaptive arithmetic encoding is performed on the high bit information of the current vertex according to the probability of the target encoder.

[0266] It should be further explained that in the embodiments of the present application, in the case that the first bit information of the current vertex does not use the inter prediction mode, the intra context state corresponding to the current vertex and the fourth encoder group corresponding thereto can be determined. Illustratively, if TriSoupVerticesPred<0, or isInterGood=0, or isInter=0, or colocatedVertex<0, it can be determined that the first bit information of the current vertex does not use the inter prediction mode, and the intra context state corresponding to the current vertex and the fourth encoder group (for example, Coder1) corresponding thereto can be determined. Then the encoder index of the current vertex is determined according to the intra context state, and the target encoder is determined from the fourth encoder group according to the encoder index. Here, it is assumed that the fourth encoder group includes encoders 1, 2, …, N, and if the encoder index is i, the encoder i in the fourth encoder group can be determined as the target encoder.

[0267] It should be further explained that in the embodiments of the present application, N is a positive integer, and i is an integer greater than 0 and less than or equal to N. Illustratively, the value of N can be 32, that is, 32 encoders are included in each encoder group, one of which is selected as the target encoder, and then the high bit information of the current vertex is encoded according to the target encoder, and the obtained encoded bits are written into the bitstream.

[0268] That is, the embodiments of the present application also provide a bitstream, which is generated by bit encoding the to-be-encoded information. The to-be-encoded information includes at least one of the following: the value of the first bit information of the current vertex and the inter enable identification information.

[0269] The embodiment provides a coding method, prediction identification information of a current vertex is determined; when first bit information of the current vertex indicated by the prediction identification information uses an inter-prediction mode, an inter-context state type of the current vertex is determined, and a context state corresponding to the current vertex and a coder group are determined according to reference information of the current vertex and the inter-context state type; the context state is used to determine a target coder corresponding to the current vertex in the coder group; and the first bit information of the current vertex is coded according to the target coder, and the obtained coded bits are written into a code stream. That is, independent context states are used for different inter-context state types, and different context states correspond to respective coder groups, so that the probability updating problem caused by the fact that different context states share a same coder group in the related art is solved, a more suitable coder group can be selected, and therefore the accuracy of target coder selection is improved; in addition, different context states correspond to respective coder groups, and meanwhile, part of the inter-context states can be merged, so that the problem of slow convergence of probabilities corresponding to the inter-context states in the case that the use of the inter-prediction is less is solved, and the inter-prediction effect is improved; in this way, the geometry coding efficiency of the point cloud is improved, and therefore the coding and decoding performance is improved.

[0270] In still another embodiment of the present application, based on the coding method of the foregoing embodiment, FIG. 13 is a detailed flowchart of a coding method provided by the embodiment of the present application. As shown in FIG. 13, the detailed flowchart can include:

[0271] S1301, isInter && colocatedVertex >= 0?

[0272] S1302, nBadPredRef1 <= 4 || nBadPredComp1 <= 4?

[0273] S1303, isInterGood = 0.

[0274] S1304, isInterGood = 1.

[0275] S1305, determine TriSoupVerticesPred.

[0276] S1306, TriSoupVerticesPred < 0?

[0277] S1307, TriSoupVerticesPred == 0?

[0278] S1308, TriSoupVerticesPred == 1?

[0279] S1309, TriSoupVerticesPred == 2?

[0280] S1310, TriSoupVerticesPred == 3?

[0281] S1311, determine type is Intra Context State.

[0282] S1312, determine type is Inter Context 1 State.

[0283] S1313, determine type is Inter Context 2 State.

[0284] S1314, determine type is Inter Context 3 State.

[0285] S1315, determine type is Inter Context 4 State.

[0286] S1316, nBadPredRef1 <= 0?

[0287] S1317, determine No Prediction from uncompensated inter information.

[0288] S1318, determine Prediction from uncompensated inter information.

[0289] S1319, K*PredNum / CoNum > th?

[0290] S1320, (colocatedVertex > > 1 & 1) == 1?

[0291] S1321, determine No Prediction.

[0292] S1322, determine Prediction is 0.

[0293] S1323, determine Prediction is 1.

[0294] S1324, encode based on encoder group Coderl.

[0295] S1325, encode based on encoder group Coder2.

[0296] S1326, encode based on encoder group Coder3.

[0297] S1327, encode based on encoder group Coder4.

[0298] S1328, encode based on encoder group Coder5, 6, 7.

[0299] S1329, encode based on encoder group Coder8, 9, 10.

[0300] S1330, encoding based on the encoder group Coder 11, 12, 13.

[0301] It should be noted that the flow represented by the gray module in Figure 13 is consistent with the flow in the dashed box, that is, the flow of S1316-S1323 is included in each gray module. In addition, each encoder group includes a plurality of entropy encoders. Taking Coder j as an example, Coder j can include coder1, 2, …, 32, j is a positive integer. At this time, one of the encoders in the corresponding encoding group can be selected for encoding according to the intra context state / inter context state.

[0302] It should also be noted that the secondary information of the intra context state contains 15bit information, and for the inter context state, whether it is the inter context state, the inter context state, the inter context state, or the inter context state, the secondary information of the inter context state contains 17bit information, and is divided into the following four cases (consistent with anchor): intra secondary information, inter secondary information 1 (no prediction), inter secondary information 2 (predicted as 0) and inter secondary information 3 (predicted as 1), as shown in Figure 8.

[0303] It can be understood that the technical scheme of the embodiment of the application mainly includes: merging part of the inter context state; the inter context state selects the encoder group suitable for each state, as shown in Figure 13.

[0304] In one possible implementation, in combination with Figure 13, the specific algorithm details can include:

[0305] (1) Context state information.

[0306] The intra context state adopts an independent state set, which can be constructed by using the existing scheme in related technologies.

[0307] The inter context state, the inter context state, the inter context state, and the inter context state all adopt an independent state set. In Figure 13, if PredNum is the cumulative sum value of the prediction in the high bit of the encoded vertex, CoNum is the cumulative sum value of the high bit of the encoded vertex, K is a coefficient, and th is a threshold, when K*PredNum / CoNum<=th, the inter context state can be merged.

[0308] (2) Encoder group mapping.

[0309] The intra context state (Intra State) can be mapped to the encoder group Coder1;

[0310] Inter state can be mapped to 12 encoder groups:

[0311] (a) Inter state 1: When the un-compensated neighbor vertex prediction is not good, the un-compensated reference vertex prediction is not used, mapped to encoder group Coder2; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 0, mapped to encoder group Coder3; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 1, mapped to encoder group Coder4;

[0312] (b) Inter state 2: When the un-compensated neighbor vertex prediction is not good, the un-compensated reference vertex prediction is not used, mapped to encoder group Coder5; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 0, mapped to encoder group Coder6; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 1, mapped to encoder group Coder7;

[0313] (c) Inter state 3: When the un-compensated neighbor vertex prediction is not good, the un-compensated reference vertex prediction is not used, mapped to encoder group Coder8; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 0, mapped to encoder group Coder9; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 1, mapped to encoder group Coder10;

[0314] (d) Inter state 4: When the un-compensated neighbor vertex prediction is not good, the un-compensated reference vertex prediction is not used, mapped to encoder group Coder11; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 0, mapped to encoder group Coder12; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 1, mapped to encoder group Coder13.

[0315] That is, in the embodiments of the present application, the multi-frame point cloud entropy encoding process based on the intra / inter context state in the technical solution mainly includes two steps:

[0316] Step 1, inter prediction determination:

[0317] According to the un-compensated reference vertex information, the neighbor un-compensated reference vertex information, the neighbor compensated reference vertex information and the syntax element gbh.interPredictionEnabledFlag of the inter prediction enablement, it is determined whether to enable the inter prediction.

[0318] Step 2, encoder selection:

[0319] According to the context state set and the encoder group determined according to the above information, the context state of the to-be-encoded symbol is determined in the context state set, and the binary encoder in the encoder group is mapped.

[0320] It should be noted that the context state set here refers to the case shown in FIG. 8. Taking inter-frame secondary information 1 as an example, the context state set can include: 0 0 and 15bit-non-inter information; taking inter-frame secondary information 2 as an example, the context state set can include: 1 0 and 15bit-non-inter information; taking inter-frame secondary information 3 as an example, the context state set can include: 1 1 and 15bit-non-inter information.

[0321] Step 3, adaptive arithmetic coding:

[0322] According to the probability of the selected binary encoder, adaptive arithmetic coding is performed.

[0323] In another embodiment of the present application, based on the decoding method of the foregoing embodiment, FIG. 14 is a detailed flowchart of a decoding method provided by the embodiment of the present application. As shown in FIG. 14, the detailed flowchart can include:

[0324] S1401, isInter && colocatedVertex >= 0?

[0325] S1402, nBadPredRef1 <= 4 || nBadPredComp1 <= 4?

[0326] S1403, isInterGood = 0.

[0327] S1404, isInterGood = 1.

[0328] S1405, determine TriSoupVerticesPred.

[0329] S1406, TriSoupVerticesPred < 0?

[0330] S1407, TriSoupVerticesPred == 0?

[0331] S1408, TriSoupVerticesPred == 1?

[0332] S1409, TriSoupVerticesPred == 2?

[0333] S1410, TriSoupVerticesPred == 3?

[0334] S1411, determine type is Intra Context State.

[0335] S1412, determine type is Inter Context 1 State.

[0336] S1413, determine type is Inter Context 2 State.

[0337] S1414, determine type is Inter Context 3 State.

[0338] S1415, determine type is Inter Context 4 State.

[0339] S1416, nBadPredRef1 < = 0?

[0340] S1417, determine No Prediction from uncompensated inter information.

[0341] S1418, determine Prediction from uncompensated inter information.

[0342] S1419, K*PredNum / CoNum > th?

[0343] S1420, (colocatedVertex > > 1 & 1) == 1?

[0344] S1421, determine No Prediction.

[0345] S1422, determine Prediction is 0.

[0346] S1423, determine Prediction is 1.

[0347] S1424, decode based on Decoder Group Decoder 1.

[0348] S1425, decode based on Decoder Group Decoder 2.

[0349] S1426, decode based on Decoder Group Decoder 3.

[0350] S1427, decode based on Decoder Group Decoder 4.

[0351] S1428, decode based on Decoder Group Decoders 5, 6, 7.

[0352] S1429, decode based on Decoder Group Decoders 8, 9, 10.

[0353] S1430, decode based on Decoder Group Decoders 11, 12, 13.

[0354] It should be noted that the flow represented by the gray module in FIG. 14 is consistent with the flow in the dashed box, that is, the flow of S1416-S1423 is included in each gray module. In addition, each decoder group includes multiple entropy decoders. Taking Decoder j as an example, Decoder j can include decoders 1, 2, …, 32, and j is a positive integer. At this time, one of the decoders in the corresponding decoding group can be selected for decoding according to the intra context state / inter context state.

[0355] It should also be noted that the secondary information of the intra context state includes 15 bits of information, and the secondary information of the inter context state includes 17 bits of information for the inter context state, no matter it is the inter context state, the inter context state, the inter context state, or the inter context state. Four cases (consistent with anchor) are as follows: intra secondary information, inter secondary information 1 (no prediction), inter secondary information 2 (predicted as 0), and inter secondary information 3 (predicted as 1), as shown in FIG. 8.

[0356] It can be understood that the technical solutions of the embodiments of the present application mainly include: merging part of the inter context states; and selecting a decoder group suitable for each state for the inter context state, as shown in FIG. 14.

[0357] In a possible implementation, in combination with FIG. 14, the specific algorithm details can include:

[0358] (1) Context state information.

[0359] The intra context state adopts an independent state set, which can be constructed by using the existing scheme in related technologies.

[0360] The inter context state, the inter context state, the inter context state, and the inter context state all adopt an independent state set. In FIG. 14, if PredNum is the cumulative sum value of the prediction in the decoded vertex high bit, CoNum is the cumulative sum value of the decoded vertex high bit, K is a coefficient, and th is a threshold, when K*PredNum / CoNum<=th, the inter context state can be merged.

[0361] (2) Decoder group mapping.

[0362] The intra context state (Intra State) can be mapped to the decoder group Decoder1;

[0363] The inter context state (Inter state) can be mapped to 12 decoder groups:

[0364] (a) Inter Context 1 state: When the un-compensated neighbor vertex prediction is not good, do not use the un-compensated reference vertex prediction, map to Decoder Group Decoder2; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 0, map to Decoder Group Decoder3; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 1, map to Decoder Group Decoder4;

[0365] (b) Inter Context 2 state: When the un-compensated neighbor vertex prediction is not good, do not use the un-compensated reference vertex prediction, map to Decoder Group Decoder5; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 0, map to Decoder Group Decoder6; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 1, map to Decoder Group Decoder7;

[0366] (c) Inter Context 3 state: When the un-compensated neighbor vertex prediction is not good, do not use the un-compensated reference vertex prediction, map to Decoder Group Decoder8; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 0, map to Decoder Group Decoder9; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 1, map to Decoder Group Decoder10;

[0367] (d) Inter Context 4 state: When the un-compensated neighbor vertex prediction is not good, do not use the un-compensated reference vertex prediction, map to Decoder Group Decoder11; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 0, map to Decoder Group Decoder12; When the un-compensated neighbor vertex prediction is good and the high bit prediction of the un-compensated reference vertex is 1, map to Decoder Group Decoder13.

[0368] That is, in the embodiments of the present application, the multi-frame point cloud entropy decoding process based on the intra / inter context state in the technical solution mainly includes two steps:

[0369] Step 1, inter prediction determination:

[0370] According to the un-compensated reference vertex information, the neighbor un-compensated reference vertex information, the neighbor compensated reference vertex information and the syntax element gbh.interPredictionEnabledFlag of the inter prediction enablement, it is determined whether to enable the inter prediction.

[0371] Step 2, decoder selection:

[0372] The context state set and the decoder group are determined according to the above information, the context state of the to-be-decoded symbol is determined in the context state set, and the binary decoder in the decoder group is mapped.

[0373] Step 3, adaptive arithmetic decoding:

[0374] According to the probability of the selected binary decoder, adaptive arithmetic decoding is performed.

[0375] That is, the technical solution more fully utilizes the inter-prediction information, so that the geometry coding efficiency of G-PCC is further improved. The BD-Rate of the lossy compression of geometry information is: compared with the related technology, in the case of obtaining the same coding quality, the coding rate of the technical solution is saved (the BD-Rate is negative) or increased (the BD-Rate is positive) by the percentage. See Table 1, which shows the BD-Rate of GES-TM-v5.0-Trisoup RAHT inter lossy compression under C2 conditions. Among them, C2 conditions represent lossy geometry and lossy attributes (lossy geometry, lossy attributes), End-to-End BD-AttrRate represents the end-to-end attribute value of the BD-Rate of the attribute stream, and Cat2 dataset is a multi-frame dense point cloud. Overall average is the average of all sequence test results.

[0376] Table 1

[0377] As can be seen from Table 1, since the BD-Rate in Table 1 is negative, compared with the related technology, the technical solution can save the coding rate, thereby improving the geometry coding efficiency.

[0378] The specific implementation of the foregoing embodiments is described in detail through the foregoing embodiments. As can be seen from the foregoing embodiments, according to the technical solution of the foregoing embodiments, not only can the partial inter-context state be merged, but also a suitable encoder group can be selected for different inter-context states, thereby not only solving the probability updating problem caused by the same encoder group / decoder group shared by different context states in the related technology, but also solving the problem of slow convergence of the probability corresponding to the inter-context state when the inter-prediction is less used. In this way, not only can the inter-prediction effect be improved, but also the geometry coding efficiency of the point cloud can be improved, thereby improving the coding and decoding performance.

[0379] In still another embodiment of the present application, based on the same inventive concept as the foregoing embodiments, FIG. 15 is a schematic diagram of a constituent structure of an encoder provided by an embodiment of the present application. As shown in FIG. 15, the encoder 150 includes a first determining unit 1501 and an encoding unit 1502, wherein:

[0380] The first determining unit 1501 is configured to determine prediction identification information of a current vertex, and when the first bit information of the current vertex is indicated to use an inter prediction mode according to the prediction identification information, determine an inter context state type of the current vertex, and determine a context state corresponding to the current vertex and an encoder group according to reference information of the current vertex and the inter context state type.

[0381] The first determining unit 1501 is further configured to determine a target encoder corresponding to the current vertex in the encoder group according to the context state.

[0382] The encoding unit 1502 is configured to perform encoding processing on the first bit information of the current vertex according to the target encoder, and write the obtained encoded bits into a bitstream.

[0383] In some embodiments, the first determining unit 1501 is further configured to determine an encoder index of the current vertex according to the context state, and determine the target encoder corresponding to the current vertex from the encoder group according to the encoder index.

[0384] In some embodiments, the first determining unit 1501 is further configured to determine uncompensated reference vertex information of the current vertex, a number of uncompensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately, a number of compensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately, and a value of inter enable identification information, and determine the prediction identification information of the current vertex according to the uncompensated reference vertex information, the number of uncompensated neighboring vertices whose first bit information is predicted inaccurately, the number of compensated neighboring vertices whose first bit information is predicted inaccurately, and the value of the inter enable identification information.

[0385] In some embodiments, the first determining unit 1501 is further configured to, when the value of the inter enable identification information is a first value, the value of the uncompensated reference vertex information is greater than or equal to a second value, and the number of uncompensated neighboring vertices whose first bit information is predicted inaccurately is less than or equal to a third value or the number of compensated neighboring vertices whose first bit information is predicted inaccurately is less than or equal to the third value, determine that the prediction identification information indicates that the first bit information of the current vertex uses the inter prediction mode.

[0386] In some embodiments, the first determining unit 1501 is further configured to determine the value of the inter-enabled identification information as a first value when the inter prediction mode is enabled at a high level of the current vertex; and determine the value of the inter-enabled identification information as a second value when the inter prediction mode is not enabled at the high level of the current vertex.

[0387] In some embodiments, the encoding unit 1502 is further configured to perform encoding processing on the value of the inter-enabled identification information, and write the obtained encoding bits into a bitstream.

[0388] In some embodiments, the first determining unit 1501 is further configured to determine position information of a compensation reference vertex of the current vertex; and determine the inter-context state type of the current vertex according to the position information of the compensation reference vertex.

[0389] In some embodiments, the reference information of the current vertex includes at least one of the following: a number of first bit information prediction inaccuracies of an uncompensated neighbor vertex of the current vertex, uncompensated reference vertex information of the current vertex, and encoded vertex information of the current vertex.

[0390] In some embodiments, the first determining unit 1501 is further configured to, when the number of first bit information prediction inaccuracies of the uncompensated neighbor vertex of the current vertex is greater than a second value, determine a first context state corresponding to the inter-context state type and a first encoder group; and further configured to determine an encoder index of the current vertex according to the first context state, and determine a target encoder corresponding to the current vertex from the first encoder group according to the encoder index.

[0391] In some embodiments, the first determining unit 1501 is further configured to, when the number of first bit information prediction inaccuracies of the uncompensated neighbor vertex of the current vertex is less than or equal to the second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as a fourth value, determine a second context state corresponding to the inter-context state type and a second encoder group; and further configured to determine the encoder index of the current vertex according to the second context state, and determine the target encoder corresponding to the current vertex from the second encoder group according to the encoder index.

[0392] In some embodiments, the first determining unit 1501 is further configured to, when the number of first bit information prediction inaccuracies of the uncompensated neighbor vertex of the current vertex is less than or equal to the second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as a fifth value, determine a third context state corresponding to the inter-context state type and a third encoder group; and further configured to determine the encoder index of the current vertex according to the third context state, and determine the target encoder corresponding to the current vertex from the third encoder group according to the encoder index.

[0393] In some embodiments, referring to FIG. 15, the encoder 150 further comprises a first adjustment unit 1503; the first determination unit 1501 is further configured to, when the number of the first bit information of the uncompensated neighboring vertex of the current vertex that is not accurately predicted is less than or equal to a second value, determine, according to the encoded vertex information of the current vertex, a first cumulative sum value corresponding to the first bit information in the encoded vertex information and a second cumulative sum value corresponding to the first bit information that is predicted in the encoded vertex information; and determine an intermediate result according to the first cumulative sum value and the second cumulative sum value; and the first adjustment unit 1503 is configured to determine, according to the intermediate result, whether to adjust the context state.

[0394] In some embodiments, the first adjustment unit 1503 is further configured to, when the intermediate result is less than or equal to a preset threshold, adjust part of the context states in the context state to merge the part of the context states into the first context state.

[0395] In some embodiments, the first determination unit 1501 is further configured to, when the intermediate result is less than or equal to the preset threshold, or the number of the first bit information of the uncompensated neighboring vertex of the current vertex that is not accurately predicted is greater than the second value, determine the first context state corresponding to the inter-frame context state type and the first encoder group; and is further configured to determine the encoder index of the current vertex according to the first context state; and determine the target encoder corresponding to the current vertex from the first encoder group according to the encoder index.

[0396] In some embodiments, the first determination unit 1501 is further configured to, when the intermediate result is greater than the preset threshold, the number of the first bit information of the uncompensated neighboring vertex of the current vertex that is not accurately predicted is less than or equal to the second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as the fourth value, determine the second context state corresponding to the inter-frame context state type and the second encoder group; and is further configured to determine the encoder index of the current vertex according to the second context state; and determine the target encoder corresponding to the current vertex from the second encoder group according to the encoder index.

[0397] In some embodiments, the first determination unit 1501 is further configured to, when the intermediate result is greater than the preset threshold, the number of the first bit information of the uncompensated neighboring vertex of the current vertex that is not accurately predicted is less than or equal to the second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as the fifth value, determine the third context state corresponding to the inter-frame context state type and the third encoder group; and is further configured to determine the encoder index of the current vertex according to the third context state; and determine the target encoder corresponding to the current vertex from the third encoder group according to the encoder index.

[0398] It can be understood that the "unit" in the embodiments of the present application can be a part of circuit, a part of processor, a part of program or software, etc., and of course can be a module, and can also be non-modular. Moreover, the components in the embodiments can be integrated in a processing unit, or can be physically present individually, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software function module.

[0399] In still another embodiment of the present application, Fig. 16 is a specific hardware structure diagram of an encoder provided by the embodiments of the present application. As shown in Fig. 16, the encoder 150 can include a first communication interface 1601, a first memory 1602 and a first processor 1603; and the components are coupled together through a first bus system 1604. It can be understood that the first bus system 1604 is used to realize the connection communication between the components. The first bus system 1604 includes not only a data bus, but also a power supply bus, a control bus and a status signal bus. However, for the purpose of clear illustration, all kinds of buses are marked as the first bus system 1604 in Fig. 16. Among them,

[0400] The first communication interface 1601 is used for receiving and sending signals in the process of transceiving information with other external network elements;

[0401] The first memory 1602 is used for storing computer programs capable of running on the first processor 1603;

[0402] The first processor 1603 is used for, when running the computer programs, performing:

[0403] determining the prediction identification information of the current vertex; when the first bit information of the current vertex is indicated by the prediction identification information to use the inter-prediction mode, determining the inter-context state type of the current vertex, and determining the context state corresponding to the current vertex and the encoder group according to the reference information of the current vertex and the inter-context state type; determining the target encoder corresponding to the current vertex in the encoder group according to the context state; and encoding the first bit information of the current vertex according to the target encoder, and writing the obtained encoded bits into the code stream.

[0404] It is to be appreciated that the first memory 1602 in the embodiments of this application can be volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. In one embodiment, a non-volatile memory can be a read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically EPROM (EEPROM), or flash memory. Volatile memory can be a random access memory (RAM), which acts as the external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM). The first memory 1602 of the system and method described herein are intended to include, without being limited to, these and any other suitable types of memory.

[0405] The first processor 1603 can be an integrated circuit chip that has the processing capability of signals. In the implementation process, each step of the above method can be completed by the integrated logic circuit of hardware or the instruction in the form of software in the first processor 1603. The first processor 1603 described above can be a general processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component. Each method, step and logic block disclosed in the embodiment of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor. The steps of the method disclosed in combination with the embodiment of the present application can be directly embodied as a hardware code processor to execute, or be executed by a combination of hardware and software modules in the code processor. The software module can be located in a random memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register or other mature storage medium in the art. The storage medium is located in the first memory 1602, and the first processor 1603 reads the information in the first memory 1602 and combines the hardware to complete the steps of the above method.

[0406] It can be understood that the embodiments described in the present application can be realized by hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be realized in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for executing functions described in the present application or a combination thereof. For software implementation, the technology described in the present application can be realized by modules (such as processes, functions, etc.) for executing functions described in the present application. The software code can be stored in the memory and executed by the processor. The memory can be implemented in the processor or outside the processor.

[0407] Optionally, as another embodiment, the first processor 1603 is further configured to execute the method of any one of the preceding embodiments when running the computer program.

[0408] The embodiment of the present application provides an encoder, independent context states are used for different inter-frame context state types, and different context states correspond to respective encoder groups, the probability updating problem caused by the same encoder group shared by different context states in the related art is solved, a more suitable encoder group can be selected, and therefore the accuracy of target encoder selection is improved; and because different context states correspond to respective encoder groups, part of the inter-frame context states can be merged, and therefore the problem of slow convergence of probabilities corresponding to the inter-frame context states in the case that the use of inter-frame prediction is less is solved, and the inter-frame prediction effect can be improved; in this way, the geometry coding efficiency of the point cloud is improved, and therefore the coding and decoding performance is improved.

[0409] In still another embodiment of the present application, based on the same inventive concept of the preceding embodiments, FIG. 17 is a structural diagram of a decoder provided by the embodiment of the present application. As shown in FIG. 17, the decoder 170 includes a second determining unit 1701 and a decoding unit 1702, wherein:

[0410] The second determining unit 1701 is configured to determine the prediction identification information of the current vertex, and when the first bit information of the current vertex uses the inter-frame prediction mode according to the prediction identification information, determine the inter-frame context state type of the current vertex, and determine the context state corresponding to the current vertex and the decoder group according to the reference information of the current vertex and the inter-frame context state type;

[0411] The second determining unit 1701 is further configured to determine the target decoder corresponding to the current vertex in the decoder group according to the context state.

[0412] The decoding unit 1702 is configured to decode the code stream according to the target decoder, and determine the first bit information of the current vertex.

[0413] In some embodiments, the second determining unit 1701 is further configured to determine the decoder index of the current vertex according to the context state, and determine the target decoder corresponding to the current vertex in the decoder group according to the decoder index.

[0414] In some embodiments, the second determining unit 1701 is further configured to determine the uncompensated reference vertex information of the current vertex, the number of the uncompensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately, the number of the compensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately, and the value of the inter-frame enabling identification information; and determine the prediction identification information of the current vertex according to the uncompensated reference vertex information, the number of the uncompensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately, the number of the compensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately, and the value of the inter-frame enabling identification information.

[0415] In some embodiments, the second determining unit 1701 is further configured to, when the value of the inter-frame enabling identification information is the first value, the value of the uncompensated reference vertex information is greater than or equal to the second value, and the number of the uncompensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately is less than or equal to the third value or the number of the compensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately is less than or equal to the third value, determine that the prediction identification information indicates that the first bit information of the current vertex uses the inter-frame prediction mode.

[0416] In some embodiments, the second determining unit 1701 is further configured to determine the position information of the compensated reference vertex of the current vertex; and determine the inter-frame context state type of the current vertex according to the position information of the compensated reference vertex.

[0417] In some embodiments, the reference information of the current vertex includes at least one of the following: the number of the uncompensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately, the uncompensated reference vertex information of the current vertex, and the decoded vertex information of the current vertex.

[0418] In some embodiments, the second determining unit 1701 is further configured to, when the number of the uncompensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately is greater than the second value, determine the corresponding first context state under the inter-frame context state type and the first decoder group; and further configured to determine the decoder index of the current vertex according to the first context state, and determine the target decoder corresponding to the current vertex from the first decoder group according to the decoder index.

[0419] In some embodiments, the second determining unit 1701 is further configured to, when the number of the uncompensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately is less than or equal to the second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as the fourth value, determine the corresponding second context state under the inter-frame context state type and the second decoder group; and further configured to determine the decoder index of the current vertex according to the second context state, and determine the target decoder corresponding to the current vertex from the second decoder group according to the decoder index.

[0420] In some embodiments, the second determining unit 1701 is further configured to, when the number of the first bit information of the uncompensated neighboring vertices of the current vertex that is predicted inaccurately is less than or equal to a second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as the fifth value, determine a third context state corresponding to the inter-frame context state type and a third decoder group; and is further configured to determine the decoder index of the current vertex according to the third context state, and determine the target decoder corresponding to the current vertex from the third decoder group according to the decoder index.

[0421] In some embodiments, referring to FIG. 17, the decoder 170 further includes a second adjusting unit 1703; the second determining unit 1701 is further configured to, when the number of the first bit information of the uncompensated neighboring vertices of the current vertex that is predicted inaccurately is less than or equal to a second value, determine a first cumulative sum value corresponding to the first bit information in the decoded vertex information of the current vertex and a second cumulative sum value corresponding to the first bit information predicted in the decoded vertex information according to the decoded vertex information of the current vertex; and determine an intermediate result according to the first cumulative sum value and the second cumulative sum value; and the second adjusting unit 1703 is configured to determine whether to adjust the context state according to the intermediate result.

[0422] In some embodiments, the second adjusting unit 1703 is further configured to, when the intermediate result is less than or equal to a preset threshold, adjust part of the context states in the context state to merge the part of the context states into the first context state.

[0423] In some embodiments, the second determining unit 1701 is further configured to, when the intermediate result is less than or equal to a preset threshold, or the number of the first bit information of the uncompensated neighboring vertices of the current vertex that is predicted inaccurately is greater than the second value, determine a first context state corresponding to the inter-frame context state type and a first decoder group; and is further configured to determine the decoder index of the current vertex according to the first context state, and determine the target decoder corresponding to the current vertex from the first decoder group according to the decoder index.

[0424] In some embodiments, the second determining unit 1701 is further configured to, when the intermediate result is greater than a preset threshold, and the number of the first bit information of the uncompensated neighboring vertices of the current vertex that is predicted inaccurately is less than or equal to a second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as a fourth value, determine a second context state corresponding to the inter-frame context state type and a second decoder group; and is further configured to determine the decoder index of the current vertex according to the second context state, and determine the target decoder corresponding to the current vertex from the second decoder group according to the decoder index.

[0425] In some embodiments, the second determining unit 1701 is further configured to determine a third context state and a third decoder group corresponding to the third context state in the inter-frame context state type when the intermediate result is greater than the preset threshold, the number of the first bit information of the uncompensated neighboring vertex of the current vertex predicted inaccurately is less than or equal to the second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as the fifth value; and is further configured to determine the decoder index of the current vertex according to the third context state, and determine the target decoder corresponding to the current vertex from the third decoder group according to the decoder index.

[0426] It can be understood that, in this embodiment, the "unit" can be a part of circuit, a part of processor, a part of program or software, etc., and of course can be a module, and can also be non-modular. Moreover, the components in this embodiment can be integrated in one processing unit, or can be physically present individually, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software function module.

[0427] In still another embodiment of the present application, FIG. 18 is a specific hardware structure diagram of a decoder provided in the embodiment of the present application. As shown in FIG. 18, the decoder 170 can include a second communication interface 1801, a second memory 1802 and a second processor 1803; and the components are coupled together through a second bus system 1804. It can be understood that the second bus system 1804 is used to realize the connection and communication between the components. The second bus system 1804 includes a data bus, a power supply bus, a control bus and a state signal bus. However, for the purpose of clear illustration, all kinds of buses are marked as the second bus system 1804 in FIG. 18. Among them,

[0428] The second communication interface 1801 is used for receiving and sending signals in the process of transceiving information with other external network elements;

[0429] The second memory 1802 is used for storing computer programs capable of running on the second processor 1803;

[0430] The second processor 1803 is used for, when running the computer programs, performing:

[0431] determining the prediction identification information of the current vertex; when the first bit information of the current vertex uses the inter-frame prediction mode according to the indication of the prediction identification information, determining the inter-frame context state type of the current vertex, and determining the context state and the decoder group corresponding to the current vertex according to the reference information of the current vertex and the inter-frame context state type; determining the target decoder corresponding to the current vertex in the decoder group according to the context state; and decoding the code stream according to the target decoder to determine the first bit information of the current vertex.

[0432] Optionally, as another embodiment, the second processor 1803 is further configured to execute the method in any one of the preceding embodiments when running the computer program.

[0433] It can be understood that the second memory 1802 has similar hardware functions as the first memory 1602, and the second processor 1803 has similar hardware functions as the first processor 1603, which will not be described in detail here.

[0434] The embodiment provides a decoder, independent context states are used for different inter-frame context state types, and different context states correspond to respective decoder groups, the probability updating problem caused by the fact that different context states share one decoder group in the related art is solved, a more suitable decoder group can be selected, and therefore the accuracy of target decoder selection is improved; and because different context states correspond to respective decoder groups, part of the inter-frame context states can be merged, and therefore the problem of slow convergence of probabilities corresponding to the inter-frame context states in the case that the use of inter-frame prediction is less is solved, and the inter-frame prediction effect can be improved; in this way, the geometry coding efficiency of the point cloud is improved, and therefore the coding and decoding performance is improved.

[0435] In another embodiment of the present application, FIG. 19 is a schematic structural diagram of a coding and decoding system provided by the embodiment of the present application. As shown in FIG. 18, the coding and decoding system 190 can include an encoder 1901 and a decoder 1902.

[0436] In the embodiment of the present application, the encoder 1901 can be the encoder in any one of the preceding embodiments, and the decoder 1902 can be the decoder in any one of the preceding embodiments.

[0437] In some embodiments, the embodiment of the present application further provides a computer readable storage medium, and the computer readable storage medium stores a computer program. The computer program is executed by a processor (for example, the first processor or the second processor) to implement the method in any one of the preceding embodiments.

[0438] In some embodiments, the embodiment of the present application further provides a computer program product, which includes a computer program or instructions. The computer program or instructions are executed by a processor (for example, the first processor or the second processor) to implement the method in any one of the preceding embodiments.

[0439] In some embodiments, the embodiment of the present application further provides a computer program, and the computer program is executed by a processor (for example, the first processor or the second processor) to implement the method in any one of the preceding embodiments.

[0440] Those skilled in the art can clearly understand the unit and algorithm steps of each example described in combination with the embodiments disclosed in the present application can be realized by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are realized in hardware or software manner depends on the specific application and design constraints of the technical solution. The skilled person can use different methods to realize the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.

[0441] Those skilled in the art can clearly understand that, for the convenience and brevity of the description, the specific working processes of the above-described devices and units can refer to the corresponding processes in the foregoing method embodiments, which will not be repeated here.

[0442] In several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic, for example, the division of the units is only a logical function division, and actual implementation can have another division manner, for example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units shown or discussed can be indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0443] The units described as separate components can or can not be physically separated, and the components shown as units can or can not be physical units, that is, they can be located in one place, or can be distributed on multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment.

[0444] In addition, each functional unit in each embodiment of the present application can be integrated in one processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit.

[0445] If the functions are implemented in the form of software function units and sold or used as independent products, they can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present application essentially or the parts that contribute to the prior art or parts of the technical solutions 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, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage medium includes: a U disk, a mobile hard disk, a read-only memory (Read-Only Memory, ROM), a random access memory (Random Access Memory, RAM), a magnetic disk or an optical disk, and various media that can store program codes.

[0446] It should be noted that in the present application, the terms "include", "contain" or any other variants thereof are intended to cover non-exclusive inclusion, so that the processes, methods, articles or devices including a series of elements not only include those elements, but also include other elements not explicitly listed or inherent to such processes, methods, articles or devices. Without more limitations, the element defined by the statement "including a" does not exclude the presence of another identical element in the process, method, article or device including the element.

[0447] The above-mentioned sequence numbers of the embodiments of the present application are only for description, and do not represent the advantages and disadvantages of the embodiments.

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

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

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

[0451] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of changes or replacements within the technical scope disclosed by the present application, which should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims. Industrial applicability

[0452] In the embodiments of the present application, first, the prediction identification information of the current vertex is determined; then, when the first bit information of the current vertex is indicated to use the inter prediction mode according to the prediction identification information, the inter context state type of the current vertex is determined, and the context state corresponding to the current vertex and the encoder group / decoder group are determined according to the reference information of the current vertex and the inter context state type; then, the target codec corresponding to the current vertex is determined from the encoder group / decoder group according to the context state; finally, the first bit information of the current vertex is encoded / decoded according to the target codec. In this way, independent context states are used for different inter context state types, and different context states correspond to respective encoder groups / decoder groups, solving the probability updating problem caused by the same encoder group / decoder group shared by different context states in the related art, and a more suitable encoder group / decoder group can be selected, thereby improving the accuracy of target codec selection; moreover, since different context states correspond to respective encoder groups / decoder groups, part of the inter context states can also be merged, thereby solving the problem of slow convergence of the probabilities corresponding to the inter context states when the use of inter prediction is less, and the prediction effect can be improved; in this way, the geometric coding efficiency of the point cloud is improved, and the coding and decoding performance is further improved.

Claims

1. A decoding method applied to a decoder, the method comprising: determining prediction identification information of a current vertex; when first bit information of the current vertex is indicated to use an inter prediction mode according to the prediction identification information, determining an inter context state type of the current vertex, and determining a context state and a decoder group corresponding to the current vertex according to reference information of the current vertex and the inter context state type; determining a target decoder corresponding to the current vertex in the decoder group according to the context state; decoding a bitstream according to the target decoder to determine the first bit information of the current vertex. The determining a target decoder corresponding to the current vertex in the decoder group according to the context state comprises:

2. The method of claim 1, wherein, determining a decoder index of the current vertex according to the context state; determining the target decoder corresponding to the current vertex in the decoder group according to the decoder index. The determining prediction identification information of a current vertex comprises:

3. The method of claim 1, wherein, determining a non-compensated reference vertex information of the current vertex, a number of non-compensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately, a number of compensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately, and a value of an inter enable identification information; determining the prediction identification information of the current vertex according to the non-compensated reference vertex information, the number of non-compensated neighboring vertices whose first bit information is predicted inaccurately, the number of compensated neighboring vertices whose first bit information is predicted inaccurately, and the value of the inter enable identification information. The method further comprises:

4. The method of claim 3, wherein, when the value of the inter enable identification information is a first value, the value of the non-compensated reference vertex information is greater than or equal to a second value, and the number of non-compensated neighboring vertices whose first bit information is predicted inaccurately is less than or equal to a third value or the number of compensated neighboring vertices whose first bit information is predicted inaccurately is less than or equal to the third value, determining that the prediction identification information indicates that the first bit information of the current vertex uses the inter prediction mode. The determining an inter context state type of the current vertex comprises:

5. The method of claim 1, wherein, determining position information of a compensated reference vertex of the current vertex; determining the inter context state type of the current vertex according to the position information of the compensated reference vertex. The reference information of the current vertex comprises at least one of the following: the number of non-compensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately, the non-compensated reference vertex information of the current vertex, and decoded vertex information of the current vertex.

6. The method of any one of claims 1 to 5, wherein, The determining a context state and a decoder group corresponding to the current vertex according to reference information of the current vertex and the inter context state type comprises:

7. The method of claim 6, wherein, when the number of non-compensated neighboring vertices of the current vertex whose first bit information is predicted inaccurately is greater than a second value, determining a first context state and a first decoder group corresponding to the inter context state type. ​ The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex.

8. The method of claim 6, wherein, The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex. The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex. The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex.

9. The method of claim 6, wherein, The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex. The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex. The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex. The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex.

10. The method of claim 7, wherein, The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex. The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex. The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex. The method further comprises: determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex; determining, according to the context state, a target decoder corresponding to the current vertex in the decoder group; and determining, according to the reference information of the current vertex and the inter-frame context state type, a context state and a decoder group corresponding to the current vertex.

11. The method of claim 10, wherein, ​ ​ 12. The method of claim 11, wherein, ​ determining a first context state corresponding to the inter-frame context state type and a first decoder group when the intermediate result is less than or equal to a preset threshold or a number of first bit information of uncompensated neighbor vertices of the current vertex that is predicted inaccurately is greater than a second value; the determining the target decoder corresponding to the current vertex in the decoder group according to the context state comprises: determining a decoder index of the current vertex according to the first context state; and determining the target decoder corresponding to the current vertex from the first decoder group according to the decoder index.

13. The method of claim 11, wherein, the determining the context state and the decoder group corresponding to the current vertex according to the reference information of the current vertex and the inter-frame context state type comprises: determining a second context state corresponding to the inter-frame context state type and a second decoder group when the intermediate result is greater than a preset threshold, a number of first bit information of uncompensated neighbor vertices of the current vertex that is predicted inaccurately is less than or equal to a second value, and first bit information of uncompensated reference vertex information of the current vertex is predicted as a fourth value; the determining the target decoder corresponding to the current vertex in the decoder group according to the context state comprises: determining a decoder index of the current vertex according to the second context state; and determining the target decoder corresponding to the current vertex from the second decoder group according to the decoder index.

14. The method of claim 11, wherein, the determining the context state and the decoder group corresponding to the current vertex according to the reference information of the current vertex and the inter-frame context state type comprises: determining a third context state corresponding to the inter-frame context state type and a third decoder group when the intermediate result is greater than a preset threshold, a number of first bit information of uncompensated neighbor vertices of the current vertex that is predicted inaccurately is less than or equal to a second value, and first bit information of uncompensated reference vertex information of the current vertex is predicted as a fifth value; the determining the target decoder corresponding to the current vertex in the decoder group according to the context state comprises: determining a decoder index of the current vertex according to the third context state; and determining the target decoder corresponding to the current vertex from the third decoder group according to the decoder index.

15. An encoding method applied to an encoder, the method comprising: determining prediction identification information of a current vertex; determining an inter-frame context state type of the current vertex when first bit information of the current vertex uses an inter-frame prediction mode according to the prediction identification information, and determining a context state and an encoder group corresponding to the current vertex according to reference information of the current vertex and the inter-frame context state type; determining a target encoder corresponding to the current vertex in the encoder group according to the context state; performing encoding processing on the first bit information of the current vertex according to the target encoder, and writing obtained encoded bits into a bitstream.

16. The method of claim 15, wherein, The method further comprises: determining the inter-frame enabling identification information as the first value when the inter-frame prediction mode is enabled at a high level of the current vertex; and determining the inter-frame enabling identification information as the second value when the inter-frame prediction mode is not enabled at the high level of the current vertex.

17. The method of claim 15, wherein, The method further comprises: encoding the value of the inter-frame enabling identification information, and writing the obtained encoding bits into a bitstream. The method further comprises:

18. The method of claim 17, wherein, determining the inter-frame context state type of the current vertex, comprising: determining position information of a compensated reference vertex of the current vertex; and 19. The method of claim 17, wherein, determining the inter-frame context state type of the current vertex according to the position information of the compensated reference vertex. The reference information of the current vertex comprises at least one of the following: a number of first bit information prediction inaccuracies of an uncompensated neighbor vertex of the current vertex, uncompensated reference vertex information of the current vertex, and encoded vertex information of the current vertex. The method further comprises:

20. The method of claim 17, wherein, determining the context state and the encoder group corresponding to the current vertex according to the reference information of the current vertex and the inter-frame context state type, comprising: determining a first context state and a first encoder group corresponding to the inter-frame context state type when the number of first bit information prediction inaccuracies of the uncompensated neighbor vertex of the current vertex is greater than a second value; and 21. The method of claim 15, wherein, determining the target encoder of the current vertex in the encoder group according to the context state, comprising: determining the encoder index of the current vertex according to the first context state; and determining the target encoder of the current vertex from the first encoder group according to the encoder index. ​ ​ 22. The method of any one of claims 15 to 21, wherein, ​ 23. The method of claim 22, wherein, ​ ​ ​ 24. The method of claim 22, wherein, The determining the context state corresponding to the current vertex and the encoder group according to the reference information of the current vertex and the inter-frame context state type comprises: When the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is less than or equal to a second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as a fourth value, a second context state corresponding to the inter-frame context state type and a second encoder group are determined. The determining the target encoder corresponding to the current vertex in the encoder group according to the context state comprises: determining the encoder index of the current vertex according to the second context state; and determining the target encoder corresponding to the current vertex from the second encoder group according to the encoder index.

25. The method of claim 22, wherein, The determining the context state corresponding to the current vertex and the encoder group according to the reference information of the current vertex and the inter-frame context state type comprises: When the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is less than or equal to a second value, and the first bit information in the uncompensated reference vertex information of the current vertex is predicted as a fifth value, a third context state corresponding to the inter-frame context state type and a third encoder group are determined. The determining the target encoder corresponding to the current vertex in the encoder group according to the context state comprises: determining the encoder index of the current vertex according to the third context state; and determining the target encoder corresponding to the current vertex from the third encoder group according to the encoder index.

26. The method of claim 23, wherein, The method further comprises: When the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is less than or equal to a second value, the first cumulative sum value corresponding to the first bit information in the coded vertex information of the current vertex and the second cumulative sum value corresponding to the first bit information predicted in the coded vertex information of the current vertex are determined according to the coded vertex information of the current vertex. The intermediate result is determined according to the first cumulative sum value and the second cumulative sum value. The adjustment of the context state is determined according to the intermediate result.

27. The method of claim 26, wherein, The adjustment of the context state according to the intermediate result comprises: When the intermediate result is less than or equal to a preset threshold value, part of the context states in the context state are adjusted to be merged into the first context state.

28. The method of claim 27, wherein, The determining the context state corresponding to the current vertex and the encoder group according to the reference information of the current vertex and the inter-frame context state type comprises: When the intermediate result is less than or equal to a preset threshold value, or the number of the first bit information of the uncompensated neighbor vertex of the current vertex predicted inaccurately is greater than a second value, a first context state corresponding to the inter-frame context state type and a first encoder group are determined. ​ The determining the target encoder corresponding to the current vertex in the encoder group according to the context state comprises: determining an encoder index of the current vertex according to the first context state; and determining the target encoder corresponding to the current vertex from the first encoder group according to the encoder index.

29. The method of claim 27, wherein, The determining the context state and the encoder group corresponding to the current vertex according to the reference information of the current vertex and the inter-frame context state type comprises: When the intermediate result is greater than a preset threshold, the number of first bit information of the uncompensated neighbor vertices of the current vertex that is predicted inaccurately is less than or equal to a second value, and the first bit information of the uncompensated reference vertex information of the current vertex is predicted as a fourth value, a second context state and a second encoder group corresponding to the inter-frame context state type are determined. The determining the target encoder corresponding to the current vertex in the encoder group according to the context state comprises: determining an encoder index of the current vertex according to the second context state; and determining the target encoder corresponding to the current vertex from the second encoder group according to the encoder index.

30. The method of claim 27, wherein, The determining the context state and the encoder group corresponding to the current vertex according to the reference information of the current vertex and the inter-frame context state type comprises: When the intermediate result is greater than a preset threshold, the number of first bit information of the uncompensated neighbor vertices of the current vertex that is predicted inaccurately is less than or equal to a second value, and the first bit information of the uncompensated reference vertex information of the current vertex is predicted as a fifth value, a third context state and a third encoder group corresponding to the inter-frame context state type are determined. The determining the target encoder corresponding to the current vertex in the encoder group according to the context state comprises: determining an encoder index of the current vertex according to the third context state; and determining the target encoder corresponding to the current vertex from the third encoder group according to the encoder index.

31. A bitstream, wherein, The code stream is generated by bit encoding of to-be-encoded information; and the to-be-encoded information at least comprises a first bit information of a current vertex and a value of inter-frame enabling identification information.

32. An encoder, comprising a first determining unit and an encoding unit, wherein: The first determining unit is configured to determine prediction identification information of a current vertex, and when the first bit information of the current vertex is indicated to use an inter-frame prediction mode according to the prediction identification information, determine an inter-frame context state type of the current vertex, and determine a context state and an encoder group corresponding to the current vertex according to reference information of the current vertex and the inter-frame context state type. The first determining unit is further configured to determine a target encoder corresponding to the current vertex in the encoder group according to the context state. The encoding unit is configured to perform encoding processing on the first bit information of the current vertex according to the target encoder, and write the obtained encoding bits into a code stream.

33. An encoder comprising a first memory and a first processor, wherein: the first memory is configured to store a computer program capable of running on the first processor; and the first processor is configured to execute the method of any one of claims 15 to 30 when running the computer program.

34. An decoder comprising a second determining unit and a decoding unit, wherein: the second determining unit is configured to determine prediction identification information of a current vertex, and when first bit information of the current vertex uses an inter prediction mode according to the prediction identification information, determine an inter context state type of the current vertex, and determine a context state corresponding to the current vertex and a decoder group according to reference information of the current vertex and the inter context state type; and the second determining unit is further configured to determine a target decoder corresponding to the current vertex in the decoder group according to the context state; and the decoding unit is configured to decode a bitstream according to the target decoder, and determine the first bit information of the current vertex.

35. An decoder comprising a second memory and a second processor, wherein: the second memory is configured to store a computer program capable of running on the second processor; and the second processor is configured to execute the method of any one of claims 1 to 14 when running the computer program. The computer program is executed by the processor to implement the method of any one of claims 1 to 14, or to implement the method of any one of claims 15 to 30. The computer program or instructions are executed by the processor to implement the method of any one of claims 1 to 14, or to implement the method of any one of claims 15 to 30. ​ ​ ​ ​ ​ 36. A computer readable storage medium having stored thereon a computer program, wherein, ​ 37. A computer program product comprising computer programs or instructions, wherein, ​

Citation Information

Patent Citations

  • Inter prediction coding and decoding for geometry point cloud compression

    CN116711313A

  • Vertex position compression based on temporal prediction

    CN117678219A

  • Vertex position coding in mesh compression

    US20240015324A1