Encoding / decoding method, point cloud encoder, point cloud decoder, and storage medium

By enabling inter-frame prediction mode in point cloud encoding and decoding, and utilizing reference vertex information to select appropriate context states and entropy encoding/decoding parameters, the problem of high computational complexity in triangular patch set encoding and decoding is solved, achieving more efficient encoding and decoding.

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

Patent Information

Application Number
PCT/CN2024/088417
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 coding and decoding technology based on triangle face sets, there are problems of high computational complexity and low coding and decoding efficiency.

Method used

By enabling inter-frame prediction mode, the reference vertex information of the current vertex is determined, and an appropriate set of context states and entropy encoding/decoding parameters are selected to entropy encode/decode vertex existence information, thereby reducing the bitrate and improving encoding/decoding efficiency.

Benefits of technology

It effectively reduced the bit rate, improved encoding and decoding efficiency, and optimized the point cloud encoding and decoding process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024088417_23102025_PF_FP_ABST
    Figure CN2024088417_23102025_PF_FP_ABST
Patent Text Reader

Abstract

The present application discloses an encoding / decoding method, a point cloud encoder, a point cloud decoder, and a storage medium. The encoding / decoding method comprises: when a current vertex enables an inter-frame prediction mode, determining a target context state set and a target entropy encoding / decoding parameter set on the basis of first reference vertex information and second reference vertex information of the current vertex; determining a target context state from the target context state set on the basis of inter-frame context information of the current vertex; and mapping the target context state into a target entropy encoding / decoding parameter in the target entropy encoding / decoding parameter set, and performing entropy encoding / decoding on presence information of the current vertex on the basis of the target entropy encoding / decoding parameter. In this way, inter-frame reference vertex information is fully utilized to select an appropriate context state set and an appropriate entropy encoding / decoding parameter set for a vertex to be encoded, so that an optimal entropy encoding / decoding parameter is selected to encode vertex presence information, thereby effectively reducing the code rate, and improving the encoding / decoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Coding method, point cloud encoder, point cloud 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 point cloud encoder, a point cloud decoder and a storage medium. BACKGROUND

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

[0003] In the Trisoup-based geometry coding technology, when encoding Trisoup vertex information according to context information of a vertex to be encoded, there is a problem of high computational complexity and low coding efficiency.

[0004] SUMMARY

[0005] Embodiments of the present application provide a coding method, a point cloud encoder, a point cloud decoder and a storage medium, which reduce the number of context states, save a large amount of storage space, reduce the code rate and improve the coding efficiency.

[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 point cloud decoder, and the method comprises the following steps.

[0008] In a case where it is determined that a current vertex enables an inter-prediction mode, first reference vertex information and second reference vertex information of the current vertex are determined.

[0009] According to the first reference vertex information of the current vertex, a target context state set of the current vertex is determined, wherein the target context state set comprises context states corresponding to a plurality of inter-context information.

[0010] According to the second reference vertex information of the current vertex, a target entropy decoding parameter set of the current vertex is determined.

[0011] According to the inter-context information of the current vertex, a target context state of the current vertex is determined from the target context state set.

[0012] determine a target context state of the current vertex from the target context state set according to the inter prediction mode of the current vertex;

[0013] entropy decode a bitstream according to the target entropy decoding parameter to determine the presence information of the current vertex.

[0014] In a second aspect, an encoding method is provided in embodiments of the present application, and the method is applied to a point cloud encoder, and the method comprises the following steps:

[0015] In a case where the inter prediction mode is enabled for the current vertex, first reference vertex information and second reference vertex information of the current vertex are determined;

[0016] A target context state set of the current vertex is determined according to the first reference vertex information of the current vertex; wherein the target context state set comprises context states corresponding to a plurality of inter context information;

[0017] A target entropy coding parameter set of the current vertex is determined according to the second reference vertex information of the current vertex;

[0018] A target context state of the current vertex is determined from the target context state set according to the inter context information of the current vertex;

[0019] A target entropy coding parameter of the current vertex is determined from the target entropy coding parameter set according to the target context state;

[0020] The presence information of the current vertex is entropy encoded according to the target entropy coding parameter, and the obtained encoded bits are written into a bitstream.

[0021] In a third aspect, a point cloud encoder is provided in embodiments of the present application, and the point cloud encoder comprises a first determining unit and an encoding unit; wherein,

[0022] The first determining unit is configured to, in a case where the inter prediction mode is enabled for the current vertex, determine first reference vertex information and second reference vertex information of the current vertex; determine a target context state set of the current vertex according to the first reference vertex information of the current vertex; wherein the target context state set comprises context states corresponding to a plurality of inter context information; and determine a target entropy coding parameter set of the current vertex according to the second reference vertex information of the current vertex;

[0023] The first determining unit is further configured to determine a target context state of the current vertex from the target context state set according to the inter context information of the current vertex; and determine a target entropy coding parameter of the current vertex from the target entropy coding parameter set according to the target context state.

[0024] The encoding unit is configured to entropy encode the existence information of the current vertex according to the target entropy encoding parameter, and write the obtained encoded bits into a bitstream.

[0025] In a fourth aspect, an embodiment of the present application provides a point cloud encoder, including a first memory and a first processor; wherein,

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

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

[0028] In a fifth aspect, an embodiment of the present application provides a point cloud decoder, including a second determining unit and a decoding unit; wherein,

[0029] The second determining unit is configured to determine first reference vertex information and second reference vertex information of the current vertex in the case that the current vertex enables an inter-prediction mode, determine a target context state set of the current vertex according to the first reference vertex information of the current vertex, and determine a target entropy decoding parameter set of the current vertex according to the second reference vertex information of the current vertex; wherein the target context state set includes context states corresponding to a plurality of inter-context information.

[0030] The second determining unit is further configured to determine a target context state of the current vertex from the target context state set according to the inter-context information of the current vertex, and determine a target entropy decoding parameter of the current vertex from the target entropy decoding parameter set according to the target context state.

[0031] The decoding unit is configured to entropy decode the bitstream according to the target entropy decoding parameter, and determine the existence information of the current vertex.

[0032] In a sixth aspect, an embodiment of the present application provides a point cloud decoder, including a second memory and a second processor; wherein,

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

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

[0035] In a seventh aspect, an embodiment of the present application provides a computer readable storage medium, which stores a bitstream generated by the encoding method.

[0036] In an eighth aspect, the embodiments of the present application provide a computer readable storage medium storing a computer program, the computer program being executed to implement the method according to the first aspect or the method according to the second aspect.

[0037] The embodiments of the present application provide a coding method, a point cloud encoder, a point cloud decoder and a storage medium. In the encoding end or the decoding end, when the current vertex enables the inter-prediction mode, the first reference vertex information and the second reference vertex information of the current vertex are determined; the target context state set of the current vertex is determined according to the first reference vertex information of the current vertex; the target entropy coding / decoding parameter set of the current vertex is determined according to the second reference vertex information of the current vertex; the target context state of the current vertex is determined from the target context state set according to the inter-context information of the current vertex; the target entropy coding / decoding parameter of the current vertex is determined from the target entropy coding / decoding parameter set according to the target context state, and the existence information of the current vertex is entropy coded / decoded according to the target entropy coding / decoding parameter. In this way, when the inter-prediction mode is enabled to code / decode the existence information of the vertex, the inter-reference vertex information is fully utilized to select the appropriate context state set and the entropy coding / decoding parameter set for the vertex to be coded, so as to select the best entropy coding / decoding parameter to code the existence information of the vertex, effectively reduce the code rate and improve the coding / decoding efficiency. BRIEF DESCRIPTION OF DRAWINGS

[0038] Fig. 1 is a schematic diagram of a network architecture of a point cloud coding;

[0039] Fig. 2 is a schematic diagram of a component framework of a G-PCC encoder;

[0040] Fig. 3 is a schematic diagram of a component framework of a G-PCC decoder;

[0041] Fig. 4 is a schematic diagram of Trisoup geometry reconstruction;

[0042] Fig. 5 is a schematic diagram of an application implementation process of an OBUF technology;

[0043] Fig. 6 is a schematic diagram of neighbor vertices of a vertex to be coded;

[0044] Fig. 7 is a schematic diagram of neighbor vertices of an edge to be coded parallel to the x, y and z axes;

[0045] Fig. 8 is a schematic diagram of a Trisoup vertex existence information coding process based on inter-prediction in the prior art;

[0046] Fig. 9 is a schematic diagram of secondary information classification;

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

[0048] Fig. 11 is a flow diagram of a decoding method according to another embodiment of the present application;

[0049] Fig. 12 is a diagram of a classification of secondary information according to an embodiment of the present application;

[0050] Fig. 13 is a flow diagram of a decoding method according to another embodiment of the present application;

[0051] Fig. 14 is a diagram of a classification of secondary information according to another embodiment of the present application;

[0052] Fig. 15 is a flow diagram of an encoding method according to an embodiment of the present application;

[0053] Fig. 16 is a flow diagram of an encoding method according to another embodiment of the present application;

[0054] Fig. 17 is a flow diagram of an encoding method according to another embodiment of the present application;

[0055] Fig. 18 is a diagram of a structure of a point cloud encoder according to an embodiment of the present application;

[0056] Fig. 19 is a diagram of a hardware structure of a point cloud encoder according to an embodiment of the present application;

[0057] Fig. 20 is a diagram of a structure of a point cloud decoder according to an embodiment of the present application;

[0058] Fig. 21 is a diagram of a hardware structure of a point cloud decoder according to an embodiment of the present application;

[0059] Fig. 22 is a diagram of a structure of a coding and decoding system according to an embodiment of the present application. DETAILED DESCRIPTION

[0060] In order to enable a person skilled in the art to better understand the features and technical contents 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 only used for reference and are not intended to limit the embodiments of the present application.

[0061] 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 the embodiments of the present application only and is not intended to limit the present application.

[0062] In the following description, reference is made to "some embodiments", which describe a subset of all possible embodiments, but it is understood that "some embodiments" can be the same subset or different subsets of all possible embodiments, and can be combined with each other, without 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, if allowed, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.

[0063] 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, which are applicable to the following explanations:

[0064] Point Cloud Compression (PCC);

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

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

[0067] Octree;

[0068] Triangle soup (Trisoup);

[0069] K Nearest Neighbor (KNN);

[0070] Level of Detail (LOD);

[0071] Predicting Transform;

[0072] Lifting Transform;

[0073] Region Adaptive Hierarchal Transform (RAHT);

[0074] Context-based Adaptive Binary Arithmetic Coding (CABAC).

[0075] Point cloud is a three-dimensional representation of an object surface. Point cloud (data) of an object surface can be collected by photoelectric radar, laser radar, laser scanner, multi-view camera, and other collection devices.

[0076] 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, and the like. 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.

[0077] According to the laser measurement principle, the points in the point cloud can include three-dimensional coordinate information of the points 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 of the points and color information of the points. For another example, the point cloud is obtained by combining the laser measurement and the photogrammetry principle, and the points in the point cloud can include three-dimensional coordinate information of the points, laser reflectance of the points, and color information of the points.

[0078] The point cloud can be divided into the following categories according to the acquisition method:

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

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

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

[0082] For example, the point cloud can be divided into two categories according to the use:

[0083] Category one: machine perception point cloud, which can be used in autonomous navigation system, real-time inspection system, geographic information system, visual sorting robot, rescue robot, and the like.

[0084] Category 2: Human eye perceivable point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free-viewpoint broadcasting, three-dimensional immersive communication, three-dimensional immersive interaction, and the like.

[0085] Since a point cloud is a collection of massive points, storing the point cloud not only consumes a large amount of memory, but is also not conducive to transmission. There is also no such large bandwidth to support transmission of the point cloud directly on a network layer without compression. Therefore, the point cloud needs to be compressed.

[0086] Up to now, a point cloud coding framework that can compress a point cloud can be a G-PCC coding and decoding framework provided by a Moving Picture Experts Group (MPEG) or a V-PCC coding and decoding framework, or an AVS-PCC coding and decoding framework provided by an Audio Video Standard (AVS). The G-PCC coding and decoding framework can be used to compress a first category of static point cloud and a third category of dynamically acquired point cloud, and the V-PCC coding and decoding framework can be used to compress a second category of dynamic point cloud. In the embodiments of the present application, the G-PCC coding and decoding framework is mainly described.

[0087] 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. FIG. 1 is a schematic diagram of a network architecture of a point cloud coding and decoding provided by the embodiments of the present application. 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 a point cloud coding and decoding function, for example, the electronic devices can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigation instrument, a digital telephone, a video telephone, a television, a sensing device, a server, and the like, and the embodiments of the present application do not make any limitation. The decoder or the encoder in the embodiments of the present application can be the above-mentioned electronic devices.

[0088] In the embodiments of the present application, the electronic devices have a point cloud coding and decoding function, and generally include a point cloud encoder (i.e., an encoder) and a point cloud decoder (i.e., a decoder).

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

[0090] It can be understood that in the point cloud G-PCC coding and decoding framework, for 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.

[0091] Figure 2 shows a schematic diagram of a G-PCC encoder. As shown in Figure 2, in the geometry coding process, the geometry information is first converted in coordinates, so that all the point clouds are contained in a bounding box, and then quantized, which mainly plays a role in scaling. Due to the quantization rounding, the geometry information of a part of the point clouds is the same, so it is decided based on the parameters whether to remove the duplicate points. This process of quantization and duplicate point removal is also called voxelization process. Then the bounding box is divided by octree or prediction tree is constructed. In this process, the points in the divided leaf nodes are entropy coded to generate binary geometry bitstream; or the vertices generated by the division are entropy coded (surface fitting based on vertices) to generate binary geometry bitstream. In the attribute coding process, after the geometry coding is completed and the geometry information is reconstructed, color conversion is needed, i.e. the color information (i.e. attribute information) is converted from RGB color space to YUV color space. Then, the reconstructed geometry information is used to recolor the point cloud, so that the uncoded attribute information corresponds to the reconstructed geometry information. Attribute coding is mainly for 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 methods convert the color information from spatial domain to frequency domain, obtain high frequency coefficients and low frequency coefficients through transformation, and finally quantize the coefficients, and then entropy code the quantized coefficients to generate binary attribute bitstream.

[0092] Figure 3 shows a schematic diagram of a G-PCC decoder. As shown in Figure 3, for the obtained binary bitstream, the geometry bitstream and the attribute bitstream in the binary bitstream are first decoded independently. In decoding 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 decoding 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 coded can be restored.

[0093] It should be noted that, as shown in Figure 2 or Figure 3, the current G-PCC geometry coding can be divided into octree-based geometry coding, Trisoup-based geometry coding and prediction tree-based geometry coding, as follows:

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

[0095] At the encoding end, first, the coordinate transformation is performed on the geometric information, so that the point cloud is contained in a bounding box (Bounding Box) determined by two extreme points (0, 0, 0) and (2d, 2d, 2d), and then voxelization is performed, that is, 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 into octrees in the order of breadth-first traversal; at the same octree depth, a node will be divided into 8 sub-nodes, until the division of the leaf nodes is stopped when the unit cube of 1x1x1 is obtained, and whether there is a point in the sub-cube (1 indicates occupation, and 0 indicates non-occupation) The 8-bit binary code generated is called occupancy code (Occupancy Code). The occupancy code of each node is encoded to generate a binary code stream.

[0096] At the decoding end, the occupancy code of each node is continuously parsed in the order of breadth-first traversal, and the nodes are continuously divided in sequence until the division is stopped when the unit cube of 1x1x1 is obtained, and the number of points contained in each leaf node is parsed to finally recover the geometric reconstruction point cloud information.

[0097] (b) Trisoup geometry encoding and decoding:

[0098] At the encoding end, first, the octree is divided, which is different from the geometry information encoding based on the octree structure. Instead of dividing the point cloud into bottom-level leaf nodes with a side length of 1x1x1, the method divides leaf nodes 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) where the triangular facet 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 facet, and at most twelve intersection points generated by the twelve edges of the Block and the geometric facet are called vertices (Vertex). The coordinates of each Vertex of the Block are encoded in sequence to generate a binary code stream.

[0099] 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 sequence to generate a binary code stream. Inside each node, the surface is reconstructed by the non-planar polygon formed by these vertices, organized as a set 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 n), further improving the representation of the surface curvature within each node. In addition, surface vertices can also be created and marked. Figure 4 provides a schematic diagram of the geometric representation. Subsequently, these triangular meshes 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 mean of all vertices (Cmean). The vector represents the normal of the triangular surface.

[0100] In order to encode the geometric coordinates of the point cloud from the node triangular patches, 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 to check whether each unit vector intersects with the triangular patch. If it intersects, the intersection point is calculated and the encoded cube is output. The number of points generated in the encoder is determined by the grid distance d.

[0101] At the decoding end, in order to decode the geometric coordinates of the point cloud from the node triangular patches, it is necessary to check whether each voxel inside the node cube intersects with the triangular patch, which is called triangular rasterization.

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

[0103] 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 structure of the prediction tree, 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.

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

[0105] The related technical solutions of the embodiments of the present application are described below.

[0106] 1. Optimal Binarization with Update on the Fly (OBUF) technology

[0107] The OBUF technology is to quickly and accurately map a series of discrete states of the occupancy information of the context node to a fixed number of adaptive entropy encoders (i.e. probability models) through a mapping relationship look-up table (LUT). In this way, the context information 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 coding is completed.

[0108] FIG. 5 is a schematic diagram of the implementation process of an OBUF technology, as shown in FIG. 5, the mapped encoder index value is [0, 1, …, N-1], and the symbol s is the occupancy bit to be coded and decoded, taking the value 1 or 0.

[0109] The OBUF technology can be divided into the following three steps:

[0110] (1) Obtain the context information D of the symbol to be coded

[0111] The context information D of the symbol to be coded is the input information of the OBUF, which is composed of the neighbor node information that has been coded in the space and the position of the child node relative to the parent node.

[0112] (2) Obtain the binary encoder index i corresponding to the context information D based on the mapping relationship

[0113] Before all the symbols to be coded are coded, each state is mapped to N encoders through a look-up table. For example, each context information D is mapped into one of the 32 encoders (i.e. i takes the value [0, 1, …, 31]), such as the binary entropy encoder i in FIG. 5.

[0114] (3) Use the binary encoder i to perform entropy coding on the symbol S

[0115] The symbol S to be coded is sent into the binary encoder corresponding to the context information D corresponding to the binary encoder to perform entropy coding.

[0116] 2. Dynamic OBUF technology

[0117] Compared with OBUF technique, dynamic OBUF technique dynamically adjusts the number of contexts during the encoding process, instead of using fixed number of contexts.

[0118] Dynamic OBUF technique is divided into two stages: 1) dynamically determining context nodes and context information; 2) mapping context information to a smaller number of binary encoder groups (corresponding to OBUF technique).

[0119] Context construction and dynamic adjustment are introduced below. In dynamic OBUF technique, context information is divided into primary information and secondary information. Whether part of the secondary information is dynamically adjusted as context information, the context information composed of primary information and selected secondary information is used as the context information of OBUF.

[0120] 1) Context information construction process:

[0121] Figure 6 is a schematic diagram of neighbor vertices of a vertex to be encoded. As shown in Figure 6, the context vertices of the vertex to be encoded (located on the k edge) can be found from the following 12 neighbor nodes.

[0122] Figure 7 is a schematic diagram of neighbor vertices of an edge to be encoded parallel to the x, y, and z axes. As shown in Figure 7, the context vertices of the vertex to be encoded (located on the k edge) include the following categories:

[0123] 1) Vertices on the edge corresponding to the negative direction of the axis on the edge to be encoded (black);

[0124] 2) Vertices on the neighbor edge (directly contacted) perpendicular to the edge to be encoded (black);

[0125] 3) Vertices on the neighbor edge (not directly contacted) perpendicular to the edge to be encoded (black);

[0126] 4) Vertices on the neighbor edge parallel to the edge to be encoded (black);

[0127] According to a certain order, the context for the vertex to be encoded is constructed. The first N context vertices of the context are primary information, and the last M context vertices are secondary information. M is dynamically adjusted during the encoding process.

[0128] 2) Dynamic adjustment process

[0129] Each context node can be occupied or unoccupied, i.e. 0, 1 state. Context information can be represented by N+M binary bits, where N is the primary information, M is the secondary information. With the encoding process, the number of times each context information is used is recorded, when the number of times a certain context information is used is greater than the threshold T, a context node is added in the scanning order, i.e. the context information is subdivided by introducing a new context node. The subsequent to-be-encoded child nodes are encoded using the updated context information set.

[0130] 3. G-PCC dense point cloud inter-frame coding

[0131] 1) Trisoup-based inter-frame geometry entropy coding

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

[0133] 2) Trisoup geometry coding based on inter-frame prediction

[0134] FIG. 8 shows the Trisoup vertex existence information coding process based on inter-frame prediction in the prior art. Among them, “isInterGood” refers to the neighbor compensated vertex and neighbor uncompensated vertex information of the to-be-encoded vertex after starting inter-frame prediction is determined to be predicted well or badly. According to the isInterGood=1 value (0 or 1), it is divided into two sets of intra-frame context and inter-frame context. Further according to the value of TriSoupVerticesPred, the inter-frame context is divided into inter-frame context one and inter-frame context two, where TriSoupVerticesPred represents the position information of the compensated reference vertex.

[0135] isInterGood=isInter && (nBadPredRef<=0 || nBadPredComp<=3), i.e., the value of isInterGood is determined by isInter, nBadPredRef and nBadPredComp, nBadPredRef is the number of neighbor non-compensated vertex prediction errors, and nBadPredComp is the number of neighbor compensated vertex prediction errors. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the inter prediction of the upper layer is enabled. If the inter prediction is enabled, it is called P frame, and isInter is 1; otherwise, if the inter prediction is not enabled, it is called I frame, and isInter is 0.

[0136] According to the neighbor non-compensated vertex information and the position information (colocatedVertex) of the non-compensated reference vertex of the vertex to be encoded, the information determined as the inter prediction is divided into three categories: non-compensated inter non-prediction, non-compensated inter prediction of 0 and non-compensated inter prediction of 1, and the three categories share one encoder group.

[0137] FIG. 9 is a schematic diagram of secondary information classification. As shown in FIG. 9, in the dynamic OBUF, the context information is divided into primary information and secondary information, wherein the intra context information contains 15 bits of secondary information, the inter context information 1 and the inter context information 2 contain 17 bits of secondary information, and are divided into four cases shown in FIG. 9: intra secondary information, inter secondary information 1, inter secondary information 2 and inter secondary information 3.

[0138] It can be seen that the number of inter context states is 6 times the number of intra context states, which needs to occupy a large amount of storage space, and different inter context information shares one encoder group, which will affect the probability update of the encoder.

[0139] Based on this, the embodiment of the present application provides a coding and decoding method, and specifically provides a point cloud geometry information inter coding and decoding method. When the inter prediction mode coding / decoding vertex existence information is started, the inter reference vertex information is fully utilized to select a suitable context state set and an entropy coding / decoding parameter set for the vertex to be encoded, so as to select the best entropy coding / decoding parameter to code the vertex existence information, effectively reduce the code rate and improve the coding / decoding efficiency.

[0140] In order to facilitate understanding of the technical solutions of the embodiments of the present application, the technical solutions of the present application are described in detail below through specific embodiments. The above related technologies can be combined with the technical solutions of the embodiments of the present application as optional solutions, which all belong to the protection scope of the embodiments of the present application. The embodiments of the present application include at least part of the following contents.

[0141] In an embodiment of the present application, referring to FIG. 10, a flowchart of a decoding method provided by an embodiment of the present application is shown. As shown in FIG. 10, the decoding method is specifically a point cloud geometry information decoding method, which can include the following steps.

[0142] S101: In a case where it is determined that the current vertex enables the inter-frame prediction mode, determining first reference vertex information and second reference vertex information of the current vertex;

[0143] It should be noted that the decoding method of the embodiment of the present application is applied to a point cloud decoder. That is, the decoding method can be specifically a point cloud decoding method, or a point cloud entropy decoding method. More specifically, the decoding method is a point cloud geometry information inter-frame decoding method, which is an improved method of Trisoup vertex existence information decoding based on inter-frame prediction. When the inter-frame prediction mode is enabled to decode the vertex existence information, the inter-frame reference vertex information is fully utilized to select a suitable context state set and an entropy decoding parameter set for the to-be-encoded vertex, so as to select the optimal entropy decoding parameter to encode the vertex existence information, thereby effectively reducing the code rate and improving the decoding efficiency.

[0144] The current vertex is a to-be-encoded vertex in a current point cloud, and the current point cloud image is a P frame image in which the inter-frame prediction mode is enabled.

[0145] The first reference vertex information of the current vertex includes information of a first reference vertex of the current vertex in a reference point cloud. The first reference vertex can include one or more vertices in the reference point cloud that have a correlation with the current vertex. For example, the first reference vertex includes a compensated reference vertex, which can be understood as a reference vertex of the current vertex determined by motion compensation of geometry information of the reference point cloud. More specifically, the compensated reference vertex is a compensated homologous vertex, that is, a homologous vertex of the current vertex determined by motion compensation of the geometry information of the reference point cloud.

[0146] The second reference vertex information of the current vertex includes information of a second reference vertex of the current vertex in a reference point cloud. The second reference vertex can include one or more vertices in the reference point cloud that have a correlation with the current vertex. For example, the second reference vertex includes a compensated reference vertex, which can be understood as a reference vertex of the current vertex determined by motion compensation of geometry information of the reference point cloud (i.e., original point cloud). More specifically, the compensated reference vertex is a compensated homologous vertex, that is, a homologous vertex of the current vertex determined by motion compensation of the geometry information of the reference point cloud.

[0147] In some embodiments, the first reference vertex information is the compensated reference vertex information of the current vertex, and the second reference vertex information is the uncompensated reference vertex information of the current vertex. That is, the first reference vertex is the compensated reference vertex of the current vertex, and the first reference vertex is the uncompensated reference vertex of the current vertex.

[0148] In some embodiments, the first reference vertex information is the uncompensated reference vertex information of the current vertex, and the second reference vertex information is the compensated reference vertex information of the current vertex.

[0149] In some embodiments, the first reference vertex information and the second reference vertex information are both uncompensated reference vertex information of the current vertex, or the first reference vertex information and the second reference vertex information are both compensated reference vertex information of the current vertex.

[0150] In some embodiments, the method further comprises: determining whether the first inter-frame information of the neighbor vertex of the current vertex satisfies a first preset condition; in the case that the first inter-frame information of the neighbor vertex satisfies the first preset condition, determining that the current vertex enables the inter-frame prediction mode.

[0151] The first preset condition is used to determine the prediction accuracy of the neighbor vertex enabling the inter-frame prediction mode. When the first inter-frame information satisfies the first preset condition, it indicates that the prediction accuracy is high (i.e., the prediction is good) when the neighbor vertex enables the inter-frame prediction mode, so it is estimated that the prediction accuracy is high when the current vertex enables the inter-frame prediction mode, and then the current vertex enables the inter-frame prediction mode; otherwise, when the first inter-frame information does not satisfy the first preset condition, it indicates that the prediction accuracy is low (i.e., the prediction is not good) when the neighbor vertex enables the inter-frame prediction mode, so it is estimated that the prediction accuracy is low when the current vertex enables the inter-frame prediction mode, and then the current vertex does not enable.

[0152] In some embodiments, the first inter-frame information of the neighbor vertex includes neighbor compensated vertex information and / or neighbor uncompensated vertex information.

[0153] The neighbor compensated vertex information includes the information of the compensated reference vertex of the neighbor vertex in the reference point cloud, and the neighbor compensated vertex can be understood as the reference vertex of the neighbor vertex determined after the motion compensation of the geometric information of the reference point cloud. More specifically, the neighbor compensated vertex is the neighbor compensated homonym vertex, i.e., the homonym vertex of the neighbor vertex determined after the motion compensation of the geometric information of the reference point cloud.

[0154] The neighbor uncompensated vertex information includes the information of the uncompensated reference vertex of the neighbor vertex in the reference point cloud, and the neighbor uncompensated vertex can be understood as the reference vertex of the neighbor vertex determined after the motion compensation of the geometric information of the reference point cloud. More specifically, the neighbor uncompensated vertex is the neighbor uncompensated homonym vertex, i.e., the homonym vertex of the neighbor vertex determined after the motion compensation of the geometric information of the reference point cloud.

[0155] Exemplarily, the first inter-view information of the neighbor vertex includes: a first number of one or more neighbor vertices of the current vertex using the neighbor uncompensated vertex prediction inaccurate; and / or, a second number of one or more neighbor vertices of the current vertex using the neighbor compensated vertex prediction inaccurate.

[0156] Correspondingly, the first preset condition includes: the first number being less than or equal to a first preset value, and / or the second number being less than or equal to a second preset value. When the first number is less than or equal to the first preset value, it indicates that the neighbor uncompensated vertex prediction is accurate (i.e., good), otherwise, it indicates that the neighbor uncompensated vertex prediction is inaccurate (i.e., bad). When the second number is less than or equal to the second preset value, it indicates that the neighbor compensated vertex prediction is accurate (i.e., good), otherwise, it indicates that the neighbor compensated vertex prediction is inaccurate (i.e., bad).

[0157] In some embodiments, the first preset condition includes: the first number being less than or equal to the first preset value, or the second number being less than or equal to the second preset value. That is, when the neighbor uncompensated vertex prediction is accurate or the neighbor compensated vertex prediction is accurate, the current vertex enables the inter-view prediction mode, otherwise, the current vertex does not enable the inter-view prediction mode.

[0158] Exemplarily, the first preset value and the second preset value are different or the same. When the first preset value and the second preset value are different, the first preset value can be less than the second preset value, for example, the first preset value is 0 and the second preset value is 3.

[0159] In some embodiments, the method further includes: in the case that the value of the first syntax element indicates that the current vertex allows to enable the inter-view prediction mode, performing the step of judging whether the first inter-view information of the neighbor vertex of the current vertex satisfies the first preset condition.

[0160] Whether the current vertex enables the inter-view prediction mode is related to the value of the first syntax element and the first inter-view information of the neighbor vertex. The first syntax element is used as an enabling identifier of the inter-view prediction to indicate whether the upper layer inter-view prediction is enabled. In some embodiments, the value of the first syntax element is a first value, which determines that the current vertex allows to enable the inter-view prediction mode; the value of the first syntax element is a second value, which determines that the current vertex does not allow to enable the inter-view prediction mode. Exemplarily, the first syntax element identifier includes at least one of the following: a sequence level syntax element, an image level syntax element, a decoding unit level syntax element, etc.

[0161] Specifically, the first syntax element can be a parameter written in a profile, or a value of a flag, which is not limited here.

[0162] Exemplarily, for the first value and the second value, the first value can be set as 1 and the second value can be set as 0; or the first value can be set as 0 and the second value can be set as 1; or the first value can be set as true and the second value can be set as false; or the first value can be set as false and the second value can be set as true; but the present disclosure is not limited thereto.

[0163] S102: determining a target context state set of the current vertex according to the first reference vertex information of the current vertex; wherein the target context state set comprises context states corresponding to a plurality of inter-frame context information;

[0164] In some embodiments, determining the target context state set of the current vertex according to the first reference vertex information of the current vertex comprises: determining the target context state set as a first context state set when the first reference vertex information of the current vertex indicates that the first reference vertex of the current vertex exists; and determining the target context state set as a second context state set when the first reference vertex information of the current vertex indicates that the first reference vertex of the current vertex does not exist.

[0165] The first reference vertex information is used to indicate whether the first reference vertex exists, and when the first reference vertex exists, the corresponding first context state set is used, and when the first reference vertex does not exist, the corresponding second context state set is used.

[0166] Exemplarily, the first reference vertex information of the current vertex comprises position information of the first reference vertex, and the method further comprises: determining that the first reference vertex of the current vertex does not exist when the position information of the first reference vertex has a value less than a third preset value; and determining that the first reference vertex of the current vertex exists when the position information of the first reference vertex has a value greater than or equal to the third preset value. Exemplarily, the position information comprises a high bit value and a low bit value, an initial value of the position information is -1, the position information has a value less than 0 (the third preset value), which represents that the first reference vertex does not exist; and the position information has a value greater than or equal to 0, which represents that the first reference vertex exists.

[0167] Exemplarily, the first reference vertex information of the current vertex comprises existence information of the first reference vertex, and the existence information has a value of 0 or 1, 0 representing that the first reference vertex does not exist and 1 representing that the first reference vertex exists.

[0168] Exemplarily, the first reference vertex is a compensation reference vertex of the current vertex.

[0169] S103: determining a target entropy decoding parameter set of the current vertex according to the second reference vertex information of the current vertex;

[0170] The second reference vertex information is used to indicate whether the second reference vertex exists, and the second inter-frame information of the neighbor vertex includes a first number of neighbor vertices of the one or more neighbor vertices of the current vertex that are predicted inaccurately using the neighbor uncompensated vertex, and the first number is less than or equal to a fourth preset value, the target entropy decoding parameter set is determined as a first entropy decoding parameter set; the first number is greater than the fourth preset value, and the second reference vertex does not exist, the target entropy decoding parameter set is determined as a second entropy decoding parameter set; and the first number is greater than the fourth preset value, and the second reference vertex exists, the target entropy decoding parameter set is determined as a third entropy decoding parameter set.

[0171] In some embodiments, the target entropy decoding parameter set is determined according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertex of the current vertex.

[0172] The second reference vertex information is further used to select a suitable entropy decoding parameter set for the inter-frame context state in combination with the second inter-frame information of the neighbor vertex.

[0173] In some embodiments, the second inter-frame information of the neighbor vertex includes neighbor compensated vertex information and / or neighbor uncompensated vertex information, and the second inter-frame information of the neighbor vertex includes a first number of neighbor vertices of the one or more neighbor vertices of the current vertex that are predicted inaccurately using the neighbor uncompensated vertex, marked as nBadPredRef, and / or a second number of neighbor vertices of the one or more neighbor vertices of the current vertex that are predicted inaccurately using the neighbor compensated vertex, marked as nBadPredComp. For example, the one or more neighbor vertices can include 18 neighbor vertices of the current vertex, or 12 neighbor vertices of the current vertex.

[0174] In some embodiments, the second reference vertex information is used to indicate whether the second reference vertex exists, the second inter-frame information of the neighbor vertex includes a first number of neighbor vertices of the one or more neighbor vertices of the current vertex that are predicted inaccurately using the neighbor uncompensated vertex, the first number is less than or equal to a fourth preset value, the target entropy decoding parameter set is determined as a first entropy decoding parameter set; the first number is greater than the fourth preset value, and the second reference vertex does not exist, the target entropy decoding parameter set is determined as a second entropy decoding parameter set; and the first number is greater than the fourth preset value, and the second reference vertex exists, the target entropy decoding parameter set is determined as a third entropy decoding parameter set.

[0175] In some embodiments, the inter-frame information of the current vertex is determined according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertex of the current vertex, and the target entropy decoding parameter set is determined according to the inter-frame information of the current vertex. In practical applications, the target entropy decoding parameter set can be directly determined according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertex of the current vertex, or the inter-frame information of the current vertex can be determined first, and then the target entropy decoding parameter set is determined according to the inter-frame information of the current vertex.

[0176] According to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertex of the current vertex, the inter-frame information of the current vertex is determined; and according to the inter-frame information of the current vertex, the target entropy decoding parameter set is determined.

[0177] In some embodiments, the determination of the inter-frame information of the current vertex according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertex of the current vertex comprises: judging whether the second inter-frame information of the neighbor vertex satisfies a second preset condition; in the case that the second inter-frame information of the neighbor vertex does not satisfy the second preset condition, determining that the first bit of the inter-frame information of the current vertex takes a fourth preset value and the second bit takes a fourth preset value; in the case that the second inter-frame information of the neighbor vertex satisfies the second preset condition, determining that the first bit of the inter-frame information of the current vertex takes a fifth preset value, and judging whether the second reference vertex of the current vertex exists according to the second reference vertex information of the current vertex; in the case that the second reference vertex information of the current vertex indicates that the second reference vertex of the current vertex does not exist, determining that the second bit takes the fourth preset value; in the case that the second reference vertex information of the current vertex indicates that the second reference vertex of the current vertex exists, determining that the second bit takes the fifth preset value.

[0178] The fourth preset value and the fifth preset value are different values, the fourth preset value can be set as 1, and the fifth preset value can be set as 0; or the fourth preset value can be set as 0, and the fifth preset value can be set as 1.

[0179] The second preset condition is used to judge the prediction accuracy of the neighbor vertex using the inter-frame prediction mode. When the second inter-frame information of the neighbor vertex comprises a first number nBadPredRef of one or more neighbor vertices of the current vertex using the neighbor uncompensated vertex prediction inaccurate neighbor vertex, the second preset condition comprises that the first number is less than or equal to a sixth preset value. The sixth preset value is the same as or different from the first preset value, and the sixth preset value is 0, for example.

[0180] In some embodiments, the second reference vertex is an uncompensated reference vertex of the current vertex. That is, the neighbor uncompensated vertex information and the uncompensated reference vertex information are used to select a suitable entropy decoding parameter set for the current vertex.

[0181] Exemplarily, according to the inter information of the current vertex, the target entropy decoding parameter set is determined as follows: when the first bit of the inter information of the current vertex is the fourth preset value, the target entropy decoding parameter set is determined as the first entropy decoding parameter set; when the first bit of the inter information of the current vertex is the fifth preset value and the second bit is the fourth preset value, the target entropy decoding parameter set is determined as the second entropy decoding parameter set; when the first bit of the inter information of the current vertex is the fifth preset value and the second bit is the fifth preset value, the target entropy decoding parameter set is determined as the third entropy decoding parameter set.

[0182] Exemplarily, when nBadPredRef>0, the first entropy decoding parameter set is used; when nBadPredRef≤0 and the second reference vertex information colocatedVertex<0, the second entropy decoding parameter set is used; when nBadPredRef≤0 and the second reference vertex information colocatedVertex≥0, the third entropy decoding parameter set is used.

[0183] In some embodiments, the inter information of the current vertex is determined according to the second reference vertex information of the current vertex and the second inter information of the neighbor vertex of the current vertex, and further comprising: when the second inter information of the neighbor vertex satisfies the second preset condition, determining whether the prediction information of the decoded vertex satisfies a third preset condition; when the third inter information does not satisfy the third preset condition, determining that the value of the first bit of the inter information of the current vertex is the fifth preset value; when the third inter information satisfies the third preset condition, determining that the value of the first bit of the inter information of the current vertex is the fourth preset value and the value of the second bit is the fourth preset value.

[0184] The prediction information of the decoded vertex is used to indicate the prediction condition of the decoded vertex using the inter prediction mode. Exemplarily, the prediction information of the decoded vertex includes: a third number of the decoded vertex using the uncompensated reference vertex for prediction, marked as PredNum, and a fourth number of the decoded vertex, marked as CoNum; the third preset condition includes: an indication parameter determined according to the third number and the fourth number is less than a seventh preset value.

[0185] The third preset condition is used to determine whether to merge the context state of the second inter information of the neighbor vertex satisfying the second preset condition and the context state not satisfying the second preset condition, thereby improving the decoding efficiency.

[0186] In some embodiments, the indication parameter is set as the ratio of the third number and the fourth number, represented as PredNum / CoNum; or the indication parameter is set as the product of the ratio of the third number and the fourth number and a preset coefficient, represented as K*PredNum / CoNum.

[0187] In some embodiments, the method further comprises: determining the intra context information of the current vertex according to the decoded presence information of the current vertex; and adding the inter information of the current vertex to the intra context information of the current vertex to determine the inter context information of the current vertex.

[0188] In some embodiments, the intra context information comprises first information and second information; and adding the inter information of the current vertex to the intra context information of the current vertex to determine the inter context information of the current vertex comprises: adding the first bit and the second bit of the inter information of the current vertex to the head of the second information.

[0189] The intra context contains 15 bits of secondary information, and the inter context one and two contain 17 bits of secondary information, and are divided into four cases as shown in FIG. 14: intra secondary information, inter secondary information 1, inter secondary information 2, and inter secondary information 3. The 2-bit position of the inter secondary information 1 is the same as that of the inter secondary information 2 and the inter secondary information 3, but the values are different, so that part of the inter context states can be combined to improve the decoding efficiency.

[0190] In some embodiments, the intra context information comprises first information and second information; and adding the inter information of the current vertex to the intra context information of the current vertex to determine the inter context information of the current vertex comprises: the first bit of the second inter information is a fourth preset value, the first bit of the second inter information is added to the head of the second information, and the second bit is added to the tail of the second information; and the first bit of the second inter information is a fifth preset value, and the first bit and the second bit of the second inter information are added to the head of the second information. The intra context contains 15 bits of secondary information, and the inter context one and two contain 17 bits of secondary information, and are divided into four cases as shown in FIG. 9.

[0191] For example, nBadPredRef>0 corresponds to the first set of entropy decoding parameters; nBadPredRef≤0 and K*PredNum / CoNum≤thd, the inter context states are combined, and correspond to the first set of entropy decoding parameters; nBadPredRef≤0, K*PredNum / CoNum>thd and colocatedVertex<0, correspond to the second set of entropy decoding parameters; nBadPredRef≤0, K*PredNum / CoNum>thd and colocatedVertex≥0, correspond to the third set of entropy decoding parameters.

[0192] In some embodiments, the method further comprises: determining the intra context information of the current vertex according to the presence information of the current vertex having been decoded context vertex; and configuring the inter context information as the intra context information.

[0193] That is, the construction method of the inter context information and the intra context information is the same, and the context no longer adds 2-bit inter information compared with the original scheme. As shown in FIG. 12, the inter secondary information and the inter secondary information are both 15-bit non-inter information, the number of inter context states is one third of the number of inter context states of the original scheme, the memory overhead of storing the context states in the OBUF is one fourth of the original, the storage space is saved, the calculation complexity is reduced, and the decoding efficiency is improved.

[0194] In some embodiments, the method further comprises: determining a plurality of candidate entropy decoding parameter sets of the current vertex according to the target context state set. That is, different context state sets correspond to different candidate entropy decoding parameter sets, and after the target context state set is determined, the target entropy decoding parameter set is selected from the corresponding plurality of candidate entropy decoding parameter sets according to the second reference vertex information.

[0195] For example, the first context state set of the inter frame corresponds to three entropy decoding parameter sets, and the second context state set of the inter frame corresponds to three entropy decoding parameter sets.

[0196] S104: determining the target context state of the current vertex from the target context state set according to the inter context information of the current vertex;

[0197] The target context state set includes context states corresponding to a plurality of context information, and the target context state is determined from the selected target context state set according to the inter context information of the current vertex.

[0198] S105: determining the target entropy decoding parameter of the current vertex from the target entropy decoding parameter set according to the target context state;

[0199] The target entropy decoding parameter set includes a plurality of entropy decoding parameters, and the entropy decoding parameter is a parameter used when any decoding vertex presence information is used. In some embodiments, the entropy decoding parameter can be an arithmetic decoding parameter, and the vertex presence information is adaptively arithmetic decoded according to the arithmetic decoding parameter.

[0200] Exemplarily, the target context state includes a first probability of existence or non-existence of the current vertex under the inter-frame context information of the current vertex, and the target entropy decoding parameter includes a second probability of existence or non-existence of the current vertex under the inter-frame context information of the current vertex. The entropy decoding parameter can also be understood as a kind of context state, and the set of entropy decoding parameters can also be understood as a kind of set of simplified context states. The context states with a larger number in the target context state set are mapped to the entropy decoding parameters with a smaller number in the target entropy decoding parameter set, so as to simplify the entropy decoding parameters and improve the decoding efficiency.

[0201] S106: Entropy decoding the code stream according to the target entropy decoding parameter to determine the existence information of the current vertex.

[0202] In some embodiments, the method further includes: updating the target entropy decoding parameter and the target context state according to the existence information of the current vertex.

[0203] By using the technical solution, when the vertex existence information is decoded by starting the inter-frame prediction mode, the inter-frame reference vertex information is fully utilized to select a suitable set of context states and a set of entropy decoding parameters for the vertex to be encoded, so that the optimal entropy decoding parameter is selected to encode the vertex existence information, the code rate is effectively reduced, and the decoding efficiency is improved.

[0204] On the basis of the above-described embodiments, the decoding method provided by the embodiments of the present application is further exemplified. Referring to FIG. 11, a flowchart II of a decoding method provided by an embodiment of the present application is shown. As shown in FIG. 11, the method can include:

[0205] S201: Inter-frame prediction determination

[0206] According to the neighbor uncompensated vertex information, the neighbor compensated vertex information, and the enabling identifier gbh.interPredictionEnabledFlag of the inter-frame prediction, it is determined whether to enable the inter-frame prediction.

[0207] Specifically, isInterGood = isInter && (nBadPredRef <= 0 || nBadPredComp <= 3), that is, the value of isInterGood is determined by isInter, nBadPredRef and nBadPredComp, wherein nBadPredRef is the first number of inaccurate neighbor uncompensated vertex prediction, and nBadPredComp is the second number of inaccurate neighbor compensated vertex prediction. The value of isInter is controlled by the first syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper layer inter prediction is enabled. If the inter prediction is enabled, it is called P frame, and isInter is 1; otherwise, if the inter prediction is not enabled, it is called I frame, and isInter is 0.

[0208] S202: Context state selection

[0209] Firstly, isInterGood = 1 is divided into two sets of intra context and inter context. Further, according to the value of TriSoupVerticesPred, the inter context state set is divided into inter context state one and inter context state two, wherein TriSoupVerticesPred represents the position information of the compensated reference vertex. TriSoupVerticesPred is less than 0, indicating that the compensated vertex does not exist, and inter context state one is used. TriSoupVerticesPred is greater than or equal to 0, indicating that the compensated vertex exists, and inter context state two is used. Inter context one and inter context two represent two different inter contexts, and each inter context corresponds to a different context state set.

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

[0211] The inter context state one and the inter context state two both adopt an independent state set, and each context state set includes a plurality of context states corresponding to the respective context information (which can also be referred to as "context" for short). In some embodiments, compared with the original scheme, the context no longer adds 2bit inter information, as shown in FIG. 12, the inter secondary information and the inter secondary information are both 15bit non-inter information, and the number of inter context states is one third of the number of inter context states of the original scheme. The memory overhead of storing the context state in the OBUF is one fourth of the original.

[0212] Secondly, the target context state is determined in the selected target context state set according to the context information of the current vertex.

[0213] S203: Entropy decoding parameter selection

[0214] Firstly, for intra prediction mode, the intra context state is mapped to one set of entropy decoding parameters (Decoder1);

[0215] For inter prediction mode, the inter context state is mapped to 6 sets of entropy decoding parameters, as follows:

[0216] The inter context state one is mapped to one of the corresponding three sets of entropy decoding parameters (Decoder2, Decoder3 and Decoder4): when the uncompensated neighbor vertex prediction is not good, the uncompensated reference vertex prediction is not used, at this time the inter context state one is mapped to Decoder2; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 0, at this time the inter context state one is mapped to Decoder3; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 1, at this time the inter context state one is mapped to Decoder4;

[0217] The inter context state two is mapped to one of the corresponding three sets of entropy decoding parameters (Decoder5, Decoder6 and Decoder7): when the uncompensated neighbor vertex prediction is not good, the uncompensated reference vertex prediction is not used, at this time the inter context state two is mapped to Decoder5; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 0, at this time the inter context state two is mapped to Decoder6; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 1, at this time the inter context state two is mapped to Decoder7.

[0218] Secondly, the context state of the vertex to be encoded is mapped to the target entropy decoding parameter (decoderj) in the target set of entropy decoding parameters (Decoderi)

[0219] S204: Adaptive arithmetic decoding

[0220] According to the probability of the selected decoderj, the existence information of the vertex to be encoded is adaptively arithmetically decoded.

[0221] With the above real-time scheme, the inter context contains 15 bits of secondary information, compared with 17 bits of secondary information, the number of inter context states is reduced to one third of the original scheme; the inter context state selects a suitable set of entropy decoding parameters (Decoderi), so as to select the best entropy decoding parameter to encode the vertex existence information, effectively reducing the code rate and improving the decoding efficiency; different context states select different Decoders, which do not affect the probability update of the Decoder, effectively reducing the code rate and improving the decoding efficiency.

[0222] Referring to FIG. 13, a flowchart of a decoding method according to an embodiment of the present application is shown. As shown in FIG. 13, the method can include the following steps.

[0223] S301: Inter prediction decision

[0224] According to the neighbor uncompensated vertex information, the neighbor compensated vertex information and the enabled flag of inter prediction gbh.interPredictionEnabledFlag, it is determined whether to enable the inter prediction.

[0225] Specifically, isInterGood = isInter && (nBadPredRef <= 0 || nBadPredComp <= 3), that is, the value of isInterGood is determined by isInter, nBadPredRef and nBadPredComp, wherein nBadPredRef is the first number of neighbor uncompensated vertex prediction inaccuracy, and nBadPredComp is the second number of neighbor compensated vertex prediction inaccuracy. The value of isInter is controlled by the first syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper layer inter prediction is enabled. If the inter prediction is enabled, it is called P frame, and at this time, isInter is 1; otherwise, if the inter prediction is not enabled, it is called I frame, and isInter is 0.

[0226] S302: Context state selection

[0227] First, isInterGood = 1 takes value (0 or 1), which is divided into an intra context state set and an inter context state set. Further according to the value of TriSoupVerticesPred, the inter context state set is divided into two sets, i.e., inter context state one and inter context state two, wherein TriSoupVerticesPred represents the position information of the compensated reference vertex. TriSoupVerticesPred is less than 0, indicating that the compensated vertex does not exist, and inter context state one is used. TriSoupVerticesPred is greater than or equal to 0, indicating that the compensated vertex exists, and inter context state two is used.

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

[0229] The inter-frame context state one and the inter-frame context state two each adopt an independent state set, and each context state set includes a plurality of context states corresponding to respective context information. If PredNum is taken as the accumulated sum of the prediction determined in the decoded existing information, CoNum is taken as the accumulated sum of the coded existing information, K is a coefficient, and thd is a threshold (the seventh preset value), when K*PredNum / CoNum<=thd, the inter-frame context state is merged, otherwise, it is determined whether the prediction is 0 or 1 according to the un-compensated reference vertex position information (colocatedVertex).

[0230] In some embodiments, the intra-frame context includes 15-bit secondary information, the inter-frame context one and the inter-frame context two include 17-bit secondary information, and are divided into four cases as shown in FIG. 14: intra-frame secondary information, inter-frame secondary information 1, inter-frame secondary information 2, and inter-frame secondary information 3. The 2-bit position added by the inter-frame secondary information 1 is the same as the positions of the inter-frame secondary information 2 and the inter-frame secondary information 3, but the values are different, so that part of the inter-frame context state can be merged to improve the decoding efficiency.

[0231] According to the neighbor un-compensated vertex information and the un-compensated reference vertex information (colocatedVertex) of the vertex to be coded, the information determined to be inter-frame prediction is divided into the following categories:

[0232] a) NoPred: When the neighbor un-compensated vertex is not well predicted, the un-compensated reference vertex information is not used, that is, goodRef=0;

[0233] b) Pred0: When the neighbor un-compensated vertex is well predicted, if the un-compensated reference vertex information<0, the existing information of the current vertex is predicted to be 0, that is, goodRef=1, pred=0;

[0234] c) Pred1: When the neighbor un-compensated vertex is well predicted, if the un-compensated reference vertex information>=0, the existing information of the current vertex is predicted to be 1, that is, goodRef=1, pred=1.

[0235] In some embodiments, the intra-frame context includes 15-bit secondary information, the inter-frame context one and the inter-frame context two include 17-bit secondary information, and are divided into four cases as shown in FIG. 9.

[0236] Secondly, the target context state is determined in the selected target context state set according to the context information (referred to as "context" for short) of the current vertex.

[0237] S303: Entropy decoding parameter selection

[0238] Firstly, for the intra prediction mode, the intra context state is mapped to a set of entropy decoding parameters (Decoder1) ;

[0239] For the inter prediction mode, the inter context state is mapped to 6 sets of entropy decoding parameters, as follows:

[0240] The inter context state one is mapped to one of the corresponding three sets of entropy decoding parameters (Decoder2, Decoder3 and Decoder4) : when the uncompensated neighbor vertex prediction is not good, the uncompensated reference vertex prediction is not used, and at this time the inter context state one is mapped to Decoder2; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 0, at this time the inter context state one is mapped to Decoder3; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 1, at this time the inter context state one is mapped to Decoder4;

[0241] The inter context state two is mapped to one of the corresponding three sets of entropy decoding parameters (Decoder5, Decoder6 and Decoder7) : when the uncompensated neighbor vertex prediction is not good, the uncompensated reference vertex prediction is not used, and at this time the inter context state two is mapped to Decoder5; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 0, at this time the inter context state two is mapped to Decoder6; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 1, at this time the inter context state two is mapped to Decoder7.

[0242] Secondly, the context state of the vertex to be encoded is mapped to the target entropy decoding parameter (decoderj) in the target set of entropy decoding parameters (Decoderi)

[0243] S304: adaptive arithmetic decoding

[0244] The existence information of the vertex to be encoded is adaptively arithmetically decoded according to the probability of the selected decoderj.

[0245] Using the above real-time scheme, when the use of inter prediction is less, the inter context states are combined, that is, different inter context states are mapped to the same Decoder, the convergence speed of the probability corresponding to the inter context state is accelerated, and the prediction effect is improved. The selection of different context states for appropriate Decoders does not affect the probability update of the Decoders, effectively reduces the code rate, and improves the decoding efficiency.

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

[0247] S401: In a case where it is determined that the current vertex enables the inter prediction mode, determine first reference vertex information and second reference vertex information of the current vertex;

[0248] It should be noted that the encoding method of the embodiments of the present application is applied to a point cloud encoder. That is, the encoding method can specifically refer to a point cloud encoding method, or a point cloud entropy encoding method. More specifically, the encoding method is a point cloud geometry information inter-frame encoding method, and the encoding method is an improved method for Trisoup vertex existence information coding based on inter prediction. When the inter prediction mode is enabled to encode the vertex existence information, the inter reference vertex information is fully utilized to select a suitable context state set and an entropy coding parameter set for the to-be-encoded vertex, so as to select the best entropy coding parameter to encode the vertex existence information, thereby effectively reducing the code rate and improving the encoding efficiency.

[0249] The current vertex is a to-be-encoded vertex in a current point cloud, and the current point cloud image is an image that enables the inter prediction mode, that is, a P frame.

[0250] The first reference vertex information of the current vertex includes information of a first reference vertex of the current vertex in a reference point cloud. The first reference vertex can include one or more vertices in the reference point cloud that have relevance to the current vertex. For example, the first reference vertex includes a compensated reference vertex, which can be understood as a reference vertex of the current vertex determined by motion compensation of geometry information of the reference point cloud. More specifically, the compensated reference vertex is a compensated counterpart vertex, that is, a counterpart vertex of the current vertex determined by motion compensation of the geometry information of the reference point cloud.

[0251] The second reference vertex information of the current vertex includes information of a second reference vertex of the current vertex in a reference point cloud. The second reference vertex can include one or more vertices in the reference point cloud that have relevance to the current vertex. For example, the second reference vertex includes a compensated reference vertex, which can be understood as a reference vertex of the current vertex determined by motion compensation of geometry information of the reference point cloud. More specifically, the compensated reference vertex is a compensated counterpart vertex, that is, a counterpart vertex of the current vertex determined by motion compensation of the geometry information of the reference point cloud.

[0252] In some embodiments, the first reference vertex information is compensated reference vertex information of the current vertex, and the second reference vertex information is uncompensated reference vertex information of the current vertex. That is, the first reference vertex is a compensated reference vertex of the current vertex, and the first reference vertex is an uncompensated reference vertex of the current vertex.

[0253] In some embodiments, the first reference vertex information is uncompensated reference vertex information of the current vertex, and the second reference vertex information is compensated reference vertex information of the current vertex.

[0254] In some embodiments, the first reference vertex information and the second reference vertex information are both uncompensated reference vertex information of the current vertex, or the first reference vertex information and the second reference vertex information are both compensated reference vertex information of the current vertex.

[0255] In some embodiments, the method further comprises: determining whether the first inter-frame information of the neighbor vertex of the current vertex satisfies a first preset condition; and determining that the current vertex enables the inter-frame prediction mode in a case where the first inter-frame information of the neighbor vertex satisfies the first preset condition.

[0256] The first preset condition is used to determine the prediction accuracy of the neighbor vertex enabling the inter-frame prediction mode. When the first inter-frame information satisfies the first preset condition, it indicates that the prediction accuracy of the neighbor vertex enabling the inter-frame prediction mode is high (i.e., the prediction is good), so it is estimated that the prediction accuracy of the current vertex enabling the inter-frame prediction mode is high, and then the current vertex enables the inter-frame prediction mode; otherwise, when the first inter-frame information does not satisfy the first preset condition, it indicates that the prediction accuracy of the neighbor vertex enabling the inter-frame prediction mode is low (i.e., the prediction is not good), so it is estimated that the prediction accuracy of the current vertex enabling the inter-frame prediction mode is low, and then the current vertex does not enable the inter-frame prediction mode.

[0257] In some embodiments, the first inter-frame information of the neighbor vertex includes neighbor compensated vertex information and / or neighbor uncompensated vertex information.

[0258] The neighbor compensated vertex information includes information of a compensated reference vertex of the neighbor vertex in the reference point cloud, and the neighbor compensated vertex can be understood as a reference vertex of the neighbor vertex determined after motion compensation of the geometric information of the reference point cloud. More specifically, the neighbor compensated vertex is a neighbor compensated homonym vertex, i.e., a homonym vertex of the neighbor vertex determined after motion compensation of the geometric information of the reference point cloud.

[0259] The neighbor uncompensated vertex information includes information of an uncompensated reference vertex of the neighbor vertex in the reference point cloud, and the neighbor uncompensated vertex can be understood as a reference vertex of the neighbor vertex determined without motion compensation of the geometric information of the reference point cloud. More specifically, the neighbor uncompensated vertex is a neighbor uncompensated homonym vertex, i.e., a homonym vertex of the neighbor vertex determined without motion compensation of the geometric information of the reference point cloud.

[0260] For example, the first inter-frame information of the neighbor vertex includes: a first number of one or more neighbor vertices of the current vertex that are predicted inaccurately using neighbor uncompensated vertices; and / or, a second number of one or more neighbor vertices of the current vertex that are predicted inaccurately using neighbor compensated vertices.

[0261] Correspondingly, the first preset condition comprises: the first quantity is less than or equal to a first preset value, and / or the second quantity is less than or equal to a second preset value. When the first quantity is less than or equal to the first preset value, it indicates that the neighbor non-compensated vertex prediction is accurate (i.e., good prediction); otherwise, it indicates that the neighbor non-compensated vertex prediction is inaccurate (i.e., poor prediction). When the second quantity is less than or equal to the second preset value, it indicates that the neighbor compensated vertex prediction is accurate (i.e., good prediction); otherwise, it indicates that the neighbor compensated vertex prediction is inaccurate (i.e., poor prediction).

[0262] In some embodiments, the first preset condition comprises: the first quantity is less than or equal to a first preset value, or the second quantity is less than or equal to a second preset value. That is, the neighbor non-compensated vertex prediction is accurate or the neighbor compensated vertex prediction is accurate, the current vertex enables the inter prediction mode, otherwise, the current vertex does not enable the inter prediction mode.

[0263] For example, the first preset value and the second preset value are different or the same. When the first preset value and the second preset value are different, the first preset value can be less than the second preset value, for example, the first preset value is 0 and the second preset value is 3.

[0264] In some embodiments, the method further comprises: in the case that the value of the first syntax element indicates that the current vertex allows to enable the inter prediction mode, performing the step of judging whether the first inter information of the neighbor vertex of the current vertex satisfies the first preset condition.

[0265] Whether the current vertex enables the inter prediction mode is related to the value of the first syntax element and the first inter information of the neighbor vertex. The first syntax element is used as an enabling identifier of the inter prediction to indicate whether the upper layer inter prediction is enabled. In some embodiments, the value of the first syntax element is a first value, which determines that the current vertex allows to enable the inter prediction mode; the value of the first syntax element is a second value, which determines that the current vertex does not allow to enable the inter prediction mode. For example, the first syntax element identifier comprises at least one of the following: a sequence level syntax element, an image level syntax element, a coding unit level syntax element, etc.

[0266] Specifically, the first syntax element can be a parameter written in a profile, or a value of a flag, which is not limited here.

[0267] For example, for the first value and the second value, the first value can be set to 1 and the second value can be set to 0; or the first value can be set to 0 and the second value can be set to 1; or the first value can be set to true and the second value can be set to false; or the first value can be set to false and the second value can be set to true; but here is not limited.

[0268] S402: determining a target context state set of the current vertex according to the first reference vertex information of the current vertex; wherein the target context state set comprises context states corresponding to a plurality of inter-frame context information;

[0269] In some embodiments, determining the target context state set of the current vertex according to the first reference vertex information of the current vertex comprises: determining the target context state set as a first context state set when the first reference vertex information of the current vertex indicates that the first reference vertex of the current vertex exists; and determining the target context state set as a second context state set when the first reference vertex information of the current vertex indicates that the first reference vertex of the current vertex does not exist.

[0270] The first reference vertex information is used to indicate whether the first reference vertex exists, and when the first reference vertex exists, a corresponding first context state set is used, and when the first reference vertex does not exist, a corresponding second context state set is used.

[0271] For example, the first reference vertex information of the current vertex comprises position information of the first reference vertex, and the method further comprises: determining that the first reference vertex of the current vertex does not exist when the position information of the first reference vertex has a value less than a third preset value; and determining that the first reference vertex of the current vertex exists when the position information of the first reference vertex has a value greater than or equal to the third preset value. For example, the position information comprises a high bit value and a low bit value, an initial value of the position information is -1, the position information has a value less than 0 (the third preset value), which indicates that the first reference vertex does not exist, and the position information has a value greater than or equal to 0, which indicates that the first reference vertex exists.

[0272] For example, the first reference vertex information of the current vertex comprises existence information of the first reference vertex, and the existence information has a value of 0 or 1, 0 indicating that the first reference vertex does not exist and 1 indicating that the first reference vertex exists.

[0273] For example, the first reference vertex is a compensation reference vertex of the current vertex.

[0274] S403: determining a target entropy coding parameter set of the current vertex according to second reference vertex information of the current vertex;

[0275] The second reference vertex information is used to select a suitable entropy coding parameter set for the inter-frame context state. For example, the second reference vertex information is used to indicate whether the second reference vertex exists, and when the second reference vertex exists, the context state of the current vertex is mapped to one entropy coding parameter set, and when the second reference vertex does not exist, the context state of the current vertex is mapped to another entropy coding parameter set.

[0276] In some embodiments, the target entropy coding parameter set is determined according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertices of the current vertex.

[0277] The second reference vertex information further selects a suitable entropy coding parameter set for the inter-frame context state in combination with the second inter-frame information of the neighbor vertices.

[0278] In some embodiments, the second inter-frame information of the neighbor vertices includes neighbor uncompensated vertex information and / or neighbor compensated vertex information, and the second inter-frame information of the neighbor vertices includes: a first number of the one or more neighbor vertices of the current vertex that are predicted inaccurately by the neighbor uncompensated vertex, denoted as nBadPredRef; and / or, a second number of the one or more neighbor vertices of the current vertex that are predicted inaccurately by the neighbor compensated vertex, denoted as nBadPredComp.

[0279] For example, the one or more neighbor vertices can include 18 neighbor vertices of the current vertex, or can include 12 neighbor vertices of the current vertex.

[0280] In some embodiments, the second reference vertex information is used to indicate whether the second reference vertex exists, the second inter-frame information of the neighbor vertices includes a first number of the one or more neighbor vertices of the current vertex that are predicted inaccurately by the neighbor uncompensated vertex, the first number is less than or equal to a fourth preset value, the target entropy coding parameter set is determined as a first entropy coding parameter set; the first number is greater than the fourth preset value, and the second reference vertex does not exist, the target entropy coding parameter set is determined as a second entropy coding parameter set; the first number is greater than the fourth preset value, and the second reference vertex exists, the target entropy coding parameter set is determined as a third entropy coding parameter set.

[0281] In some embodiments, the inter-frame information of the current vertex is determined according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertices of the current vertex, and the target entropy coding parameter set is determined according to the inter-frame information of the current vertex. In practical applications, the target entropy coding parameter set is directly determined according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertices of the current vertex; or the inter-frame information of the current vertex is first determined, and then the target entropy coding parameter set is determined according to the inter-frame information of the current vertex.

[0282] For example, the inter-frame information of the current vertex is determined according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertices of the current vertex, and the target entropy coding parameter set is determined according to the inter-frame information of the current vertex.

[0283] In some embodiments, the determining the inter information of the current vertex according to the second reference vertex information of the current vertex and the second inter information of the neighbor vertex of the current vertex comprises: judging whether the second inter information of the neighbor vertex satisfies a second preset condition; in a case where the second inter information of the neighbor vertex does not satisfy the second preset condition, determining that a first bit of the inter information of the current vertex takes a fourth preset value and a second bit of the inter information of the current vertex takes the fourth preset value; in a case where the second inter information of the neighbor vertex satisfies the second preset condition, determining that the first bit of the inter information of the current vertex takes a fifth preset value, and judging whether the second reference vertex of the current vertex exists according to the second reference vertex information of the current vertex; in a case where the second reference vertex information of the current vertex indicates that the second reference vertex of the current vertex does not exist, determining that the second bit takes the fourth preset value; in a case where the second reference vertex information of the current vertex indicates that the second reference vertex of the current vertex exists, determining that the second bit takes the fifth preset value.

[0284] The fourth preset value and the fifth preset value are different values, the fourth preset value can be set as 1, and the fifth preset value can be set as 0; or the fourth preset value can be set as 0, and the fifth preset value can be set as 1.

[0285] The second preset condition is used to judge the prediction accuracy of the neighbor vertex using the inter prediction mode. When the second inter information of the neighbor vertex comprises a first number nBadPredRef of one or more neighbor vertices of the current vertex using the neighbor uncompensated vertex prediction inaccurate neighbor vertex, the second preset condition comprises that the first number is less than or equal to a sixth preset value. The sixth preset value is the same as or different from the first preset value, and an example is that the sixth preset value is 0.

[0286] In some embodiments, the second reference vertex is an uncompensated reference vertex of the current vertex. That is, the neighbor uncompensated vertex information and the uncompensated reference vertex information are used to select a suitable set of entropy coding parameters for the current vertex.

[0287] An example is that, according to the inter information of the current vertex, the target set of entropy coding parameters is determined, comprising: when the first bit of the inter information of the current vertex is the fourth preset value, determining that the target set of entropy coding parameters is the first set of entropy coding parameters; when the first bit of the inter information of the current vertex is the fifth preset value and the second bit is the fourth preset value, determining that the target set of entropy coding parameters is the second set of entropy coding parameters; and when the first bit of the inter information of the current vertex is the fifth preset value and the second bit is the fifth preset value, determining that the target set of entropy coding parameters is the third set of entropy coding parameters.

[0288] For example, nBadPredRef>0 corresponds to the first set of entropy coding parameters; nBadPredRef≤0 and the second reference vertex information colocatedVertex<0 corresponds to the second set of entropy coding parameters; nBadPredRef≤0 and the second reference vertex information colocatedVertex≥0 corresponds to the third set of entropy coding parameters.

[0289] In some embodiments, the determining the inter-frame information of the current vertex according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertex of the current vertex further comprises: judging whether the prediction information of the coded vertex satisfies a third preset condition in a case where the second inter-frame information of the neighbor vertex satisfies the second preset condition; determining a value of a first bit of the inter-frame information of the current vertex as a fifth preset value in a case where the third inter-frame information does not satisfy the third preset condition; determining the value of the first bit of the inter-frame information of the current vertex as a fourth preset value and determining a value of a second bit as the fourth preset value in a case where the third inter-frame information satisfies the third preset condition.

[0290] The prediction information of the coded vertex is used to indicate a prediction condition of the coded vertex in which the inter-frame prediction mode is enabled. For example, the prediction information of the coded vertex comprises a third number of the coded vertex in which the non-compensated reference vertex is used for prediction, denoted as PredNum, and a fourth number of the coded vertex, denoted as CoNum; and the third preset condition comprises an indication parameter determined according to the third number and the fourth number being less than a seventh preset value.

[0291] The third preset condition is used to judge whether to merge a context state in which the second inter-frame information of the neighbor vertex satisfies the second preset condition and a context state in which the second inter-frame information of the neighbor vertex does not satisfy the second preset condition, thereby improving the coding efficiency.

[0292] In some embodiments, the indication parameter is set as a ratio of the third number and the fourth number, denoted as PredNum / CoNum; or the indication parameter is set as a product of the ratio of the third number and the fourth number and a preset coefficient, denoted as K*PredNum / CoNum.

[0293] In some embodiments, the method further comprises: determining the intra-frame context information of the current vertex according to the existence information of the coded context vertex of the current vertex; and adding the inter-frame information of the current vertex to the intra-frame context information of the current vertex to determine the inter-frame context information of the current vertex.

[0294] In some embodiments, the intra context information includes first information and second information; the inter context information of the current vertex is added to the intra context information of the current vertex to determine the inter context information of the current vertex, including: the first bit and the second bit of the inter context information of the current vertex are added to the head of the second information.

[0295] The intra context contains 15-bit secondary information, the inter context one and two contain 17-bit secondary information, and are divided into four cases as shown in FIG. 14: intra secondary information, inter secondary information 1, inter secondary information 2, and inter secondary information 3. The 2-bit position added by the inter secondary information 1 is the same as the positions of the inter secondary information 2 and the inter secondary information 3, but the values are different, so that part of the inter context states can be combined to improve the coding efficiency.

[0296] In some embodiments, the intra context information includes first information and second information; the inter context information of the current vertex is added to the intra context information of the current vertex to determine the inter context information of the current vertex, including: the first bit of the second inter context information is a fourth preset value, the first bit of the second inter context information is added to the head of the second information, and the second bit is added to the tail of the second information; the first bit of the second inter context information is a fifth preset value, and the first bit and the second bit of the second inter context information are added to the head of the second information. The intra context contains 15-bit secondary information, the inter context one and two contain 17-bit secondary information, and are divided into four cases as shown in FIG. 9.

[0297] For example, nBadPredRef>0, corresponding to the first set of entropy coding parameters; nBadPredRef≤0, and K*PredNum / CoNum≤thd, the inter context states are combined, and correspond to the first set of entropy coding parameters; nBadPredRef≤0, K*PredNum / CoNum>thd, and colocatedVertex<0, corresponding to the second set of entropy coding parameters; nBadPredRef≤0, K*PredNum / CoNum>thd, and colocatedVertex≥0, corresponding to the third set of entropy coding parameters.

[0298] In some embodiments, the method further includes: determining the intra context information of the current vertex according to the existence information of the coded context vertex of the current vertex; and configuring the inter context information as the intra context information.

[0299] That is, the construction method of the inter-frame context information and the intra-frame context information is the same, and the context no longer adds 2-bit inter-frame information compared with the original scheme, as shown in FIG. 12, the inter-frame secondary information and the inter-frame secondary information are both 15-bit non-inter-frame information, the number of inter-frame context states is one third of the number of inter-frame context states of the original scheme, the memory overhead of storing the context states in the OBUF is one fourth of the original, which saves storage space, reduces computational complexity, and improves coding efficiency.

[0300] In some embodiments, the method further comprises: determining a plurality of candidate sets of entropy coding parameters of the current vertex according to the target set of context states. That is, different sets of context states correspond to different sets of candidate entropy coding parameters, and after the target set of context states is determined, the target set of entropy coding parameters is selected from the corresponding plurality of sets of candidate entropy coding parameters according to the second reference vertex information.

[0301] For example, the first set of inter-frame context states corresponds to three sets of entropy coding parameters, and the second set of inter-frame context states corresponds to three sets of entropy coding parameters.

[0302] S404: determining the target context state of the current vertex from the target set of context states according to the inter-frame context information of the current vertex;

[0303] The target set of context states includes context states corresponding to a plurality of context information, and the target context state is determined from the selected target set of context states according to the inter-frame context information of the current vertex.

[0304] S405: determining the target entropy coding parameter of the current vertex from the target set of entropy coding parameters according to the target context state;

[0305] The target set of entropy coding parameters includes a plurality of entropy coding parameters, and the entropy coding parameter is a parameter used when any kind of coding vertex existence information is used. In some embodiments, the entropy coding parameter can be an arithmetic coding parameter, and the vertex existence information is adaptively arithmetic coded according to the arithmetic coding parameter.

[0306] For example, the target context state includes a first probability of the existence or non-existence of the current vertex under the inter-frame context information of the current vertex, and the target entropy coding parameter includes a second probability of the existence or non-existence of the current vertex under the inter-frame context information of the current vertex. The entropy coding parameter can also be understood as a kind of context state, and the set of entropy coding parameters can also be understood as a kind of simplified set of context states. The number of context states in the target set of context states is mapped to the number of entropy coding parameters in the target set of entropy coding parameters, so as to simplify the entropy coding parameters and improve the coding efficiency.

[0307] S406: Entropy encode the presence information of the current vertex according to the target entropy coding parameter, and write the obtained coded bits into the bitstream.

[0308] In some embodiments, the method further comprises: updating the target entropy coding parameter and the target context state according to the presence information of the current vertex.

[0309] With the above technical solution, when the inter-frame prediction mode is started to encode the vertex presence information, the inter-frame reference vertex information is fully utilized to select a suitable context state set and an entropy coding parameter set for the to-be-encoded vertex, so as to select the optimal entropy coding parameter to encode the vertex presence information, effectively reduce the code rate, and improve the coding efficiency.

[0310] On the basis of the above-described embodiments, the encoding method provided by the embodiments of the present application is further exemplified. Referring to FIG. 16, a flowchart II of an encoding method provided by an embodiment of the present application is shown. As shown in FIG. 16, the method can include:

[0311] S501: Inter-frame prediction determination

[0312] According to the neighbor uncompensated vertex information, the neighbor compensated vertex information, and the enable identifier gbh.interPredictionEnabledFlag of inter-frame prediction, it is determined whether to enable inter-frame prediction.

[0313] Specifically, isInterGood=isInter&&(nBadPredRef<=0||nBadPredComp<=3), that is, the value of isInterGood is determined by isInter, nBadPredRef, and nBadPredComp, wherein nBadPredRef is the first number of neighbor uncompensated vertex prediction inaccuracy, and nBadPredComp is the second number of neighbor compensated vertex prediction inaccuracy. The value of isInter is controlled by the first syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper layer inter-frame prediction is enabled. If the inter-frame prediction is enabled, it is called P frame, and at this time, isInter is 1; otherwise, if it is not enabled, it is called I frame, and isInter is 0.

[0314] S502: Context state selection

[0315] First, isInterGood = 1 takes value (0 or 1), which divides into the intra context state set and the inter context state set. Further according to TriSoupVerticesPred, the inter context state set is divided into two sets, the inter context state one and the inter context state two, where TriSoupVerticesPred represents the position information of the compensation reference vertex, TriSoupVerticesPred is less than 0, indicating that the compensation vertex does not exist, using the inter context state one, TriSoupVerticesPred is greater than or equal to 0, indicating that the compensation vertex exists, using the inter context state two.

[0316] The intra context state adopts an independent state set, such as both can adopt the construction method of the existing scheme.

[0317] The inter context state one and the inter context state two both adopt an independent state set, and each context state set includes a plurality of context states corresponding to the context information respectively. In some embodiments, compared with the original scheme, the context no longer adds 2bit inter information, as shown in FIG. 12, the inter secondary information and the inter secondary information are both 15bit non-inter information, and the number of inter context states is one third of the number of inter context states of the original scheme, and the memory overhead of storing the context states in the OBUF is one fourth of the original.

[0318] Secondly, the target context state is determined in the selected target context state set according to the context information of the current vertex.

[0319] S503: Entropy coding parameter selection

[0320] First, for the intra prediction mode, the intra context state is mapped to a set of entropy coding parameters (Coder1);

[0321] For the inter prediction mode, the inter context state is mapped to 6 sets of entropy coding parameters, as follows:

[0322] The inter context state one is mapped to one of the corresponding three sets of entropy coding parameters (Coder2, Coder3 and Coder4): when the uncompensated neighbor vertex prediction is not good, the uncompensated reference vertex prediction is not used, at this time the inter context state one is mapped to Coder2; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 0, at this time the inter context state one is mapped to Coder3; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 1, at this time the inter context state one is mapped to Coder4;

[0323] The inter-frame context state two is mapped to one of the corresponding three sets of entropy coding parameters (Coder5, Coder6 and Coder7): when the uncompensated neighbor vertex prediction is not good, the uncompensated reference vertex prediction is not used, and at this time the inter-frame context state two is mapped to Coder5; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 0, at this time the inter-frame context state two is mapped to Coder6; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 1, at this time the inter-frame context state two is mapped to Coder7.

[0324] Secondly, the context state of the vertex to be coded is mapped to a target entropy coding parameter (coderj) in a target set of entropy coding parameters (Coderi)

[0325] S504: adaptive arithmetic coding

[0326] The existence information of the vertex to be coded is adaptively arithmetic coded according to the probability of the selected coderj.

[0327] Further, performance tests are conducted on the technical solutions provided by the embodiments of the present application, and the embodiments of the present application make more sufficient use of inter-frame prediction information, so that the G-PCC geometry coding efficiency is further improved. Table 1 is the BD-Rate under the condition of lossy compression of geometry information. Compared with the prior art, under the condition of obtaining the same coding quality, the coding rate of the present application is saved (the BD-Rate is negative) or increased (the BD-Rate is positive) by a percentage compared with the coding rate of the prior art.

[0328] Table 1: BD-Rate of GES-TM-v5.0-Trisoup RAHT inter lossy compression

[0329] By using the above real-time scheme, the inter-frame context contains 15bit secondary information, compared with 17bit secondary information, the number of inter-frame context states is reduced to one third of the original scheme; the inter-frame context state selects a suitable set of entropy coding parameters (Coderi), so as to select the best entropy coding parameter to code the vertex existence information, effectively reduce the code rate, and improve the coding efficiency. Different context states select different Coders, which will not affect the probability update of the Coder, effectively reduce the code rate, and improve the coding efficiency.

[0330] Referring to FIG. 17, a flowchart of an encoding method provided by an embodiment of the present application is shown. As shown in FIG. 17, the method can include:

[0331] S601: inter-frame prediction determination

[0332] According to the neighbor uncompensated vertex information, the neighbor compensated vertex information, and the enabled flag gbh.interPredictionEnabledFlag of the inter prediction, it is determined whether to enable the inter prediction.

[0333] Specifically, isInterGood = isInter && (nBadPredRef <= 0 || nBadPredComp <= 3), that is, the value of isInterGood is determined by isInter, nBadPredRef and nBadPredComp, wherein nBadPredRef is the first number of inaccurate neighbor uncompensated vertex prediction, and nBadPredComp is the second number of inaccurate neighbor compensated vertex prediction. The value of isInter is controlled by the first syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper layer inter prediction is enabled. If the inter prediction is enabled, it is called P frame, and isInter is 1; otherwise, if the inter prediction is not enabled, it is called I frame, and isInter is 0.

[0334] S602: Context state selection

[0335] First, isInterGood = 1 takes value (0 or 1), which is divided into an intra context state set and an inter context state set. Further according to the value of TriSoupVerticesPred, the inter context state set is divided into two sets, namely, an inter context state one and an inter context state two, wherein TriSoupVerticesPred represents the position information of the compensated vertex. TriSoupVerticesPred is less than 0, indicating that the compensated vertex does not exist, and the inter context state one is used. TriSoupVerticesPred is greater than or equal to 0, indicating that the compensated vertex exists, and the inter context state two is used.

[0336] The intra context state adopts an independent state set, and the construction method of the existing scheme can be used.

[0337] The inter context state one and the inter context state two both adopt independent state sets, and each context state set includes a plurality of context states corresponding to the context information. If PredNum is determined as the cumulative sum of the prediction in the existing coded information, CoNum is the cumulative sum of the existing coded information, K is a coefficient, and thd is a threshold, when K*PredNum / CoNum <= thd, the inter context state is merged, otherwise, it is determined whether the prediction is 0 or 1 according to the uncompensated reference vertex position information (colocatedVertex).

[0338] In some embodiments, the intra context contains 15 bits of minor information, and the inter contexts 1 and 2 contain 17 bits of minor information, which are divided into four cases as shown in Figure 14: intra minor information, inter minor information 1, inter minor information 2, and inter minor information 3. The two bits added to inter minor information 1 are in the same position as those of inter minor information 2 and inter minor information 3, but have different values. This allows some inter context states to be merged, improving coding efficiency.

[0339] According to the neighbor uncompensated vertex information and the uncompensated reference vertex information (colocatedVertex) of the vertex to be encoded, the information determined to be inter-frame prediction is divided into the following categories:

[0340] a) NoPred: When the neighbor uncompensated vertex is not predicted well, the uncompensated reference vertex information is not used, that is, goodRef = 0;

[0341] b) Pred0: When the neighbor uncompensated vertex is predicted to be good, if the uncompensated reference vertex information is <0, the prediction is 0, that is, goodRef = 1, pred = 0;

[0342] c) Pred1: When the neighbor uncompensated vertex is predicted to be good, if the uncompensated reference vertex information is greater than or equal to 0, the prediction is 1, that is, goodRef = 1, pred = 1.

[0343] In some embodiments, the intra-frame context includes 15 bits of secondary information, and the inter-frame contexts 1 and 2 include 17 bits of secondary information, and are divided into four cases as shown in FIG9 .

[0344] Secondly, a target context state is determined in the selected target context state set according to the context information of the current vertex (referred to as "context").

[0345] S603: Entropy coding parameter selection

[0346] First, for intra prediction mode, the intra context state is mapped to a set of entropy coding parameters (Coder1);

[0347] For inter prediction mode, the inter context state is mapped to 6 entropy coding parameter sets as follows:

[0348] The inter-frame context state one is mapped to one of the corresponding three entropy coding parameter sets (Coder2, Coder3 and Coder4): when the uncompensated neighbor vertex is not predicted well, the uncompensated reference vertex prediction is not used, and the inter-frame context state one is mapped to Coder2; when the uncompensated neighbor vertex is predicted well and the uncompensated reference vertex prediction is 0, the inter-frame context state one is mapped to Coder3; when the uncompensated neighbor vertex is predicted well and the uncompensated reference vertex prediction is 1, the inter-frame context state one is mapped to Coder4;

[0349] Inter-frame context state two is mapped to one of the corresponding three entropy coding parameter sets (Coder5, Coder6 and Coder7): when the uncompensated neighbor vertex prediction is not good, the uncompensated reference vertex prediction is not used, and the inter-frame context state two is mapped to Coder5; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 0, the inter-frame context state two is mapped to Coder6; when the uncompensated neighbor vertex prediction is good and the uncompensated reference vertex prediction is 1, the inter-frame context state two is mapped to Coder7.

[0350] Secondly, the context state of the vertex to be encoded is mapped to the target entropy coding parameter (Coderj) in the target entropy coding parameter set (Coderi)

[0351] S604: Adaptive Arithmetic Coding

[0352] According to the probability of the selected Coderj, the existence information of the vertices to be coded is adaptively arithmetically coded.

[0353] With this timely solution, when inter-frame prediction is rare, inter-frame context states are merged. This means that different inter-frame context states are mapped to the same coder. This accelerates the convergence of probabilities corresponding to the inter-frame context states and improves prediction performance. Selecting appropriate coders for different context states prevents mutual interference in coder probability updates, effectively reducing the bitrate and improving coding efficiency.

[0354] In another embodiment of the present application, based on the same inventive concept as the above embodiment, see FIG18 , which shows a schematic diagram of the structure of a point cloud encoder provided by the embodiment of the present application. As shown in FIG18 , the point cloud encoder 180 may include: a first determining unit 1801 and an encoding unit 1802; wherein,

[0355] The first determining unit 1801 is configured to determine, when the inter-frame prediction mode is enabled for the current vertex, first reference vertex information and second reference vertex information of the current vertex; determine, based on the first reference vertex information of the current vertex, a target context state set for the current vertex; wherein the target context state set includes context states corresponding to multiple types of inter-frame context information; and determine, based on the second reference vertex information of the current vertex, a target entropy coding parameter set for the current vertex;

[0356] The first determining unit 1801 is further configured to determine a target context state of the current vertex from a target context state set according to the inter-frame context information of the current vertex; and determine a target entropy coding parameter of the current vertex from a target entropy coding parameter set according to the target context state;

[0357] The encoding unit 1802 is configured to perform entropy encoding on the existence information of the current vertex according to the target entropy encoding parameter, and write the obtained encoding bits into the bitstream.

[0358] It can be understood that each functional unit of the point cloud encoder also executes the encoding method of any one of the aforementioned embodiments.

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

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

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

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

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

[0364] A first memory 1902 is used to store computer programs that can be run on the first processor 1903;

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

[0366] In the case where the inter-frame prediction mode is enabled for the current vertex, determining first reference vertex information and second reference vertex information of the current vertex;

[0367] Determine a target context state set of the current vertex according to the first reference vertex information of the current vertex; wherein the target context state set includes context states corresponding to multiple inter-frame context information;

[0368] Determine a target entropy coding parameter set for the current vertex according to the second reference vertex information of the current vertex;

[0369] Determine the target context state of the current vertex from the target context state set according to the inter-frame context information of the current vertex;

[0370] Determine the target entropy coding parameter of the current vertex from the target entropy coding parameter set according to the target context state;

[0371] The existence information of the current vertex is entropy-encoded according to the target entropy coding parameter, and the obtained coded bits are written into the bitstream.

[0372] It is understood that the first memory 1902 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The first memory 1902 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

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

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

[0375] Optionally, as another embodiment, the first processor 1903 is further configured to, when running the computer program, perform the encoding method of any one of the preceding embodiments.

[0376] The embodiment provides a point cloud encoder, in which, when a vertex presence information is encoded in an inter-frame prediction mode, a set of context states and a set of entropy coding parameters are selected for a vertex to be encoded by making full use of inter-frame reference vertex information, so that the vertex presence information is encoded by selecting optimal entropy coding parameters, code rate is effectively reduced, and coding efficiency is improved.

[0377] The embodiment of the present application further provides a computer readable storage medium, which stores a code stream generated by the encoding method of any one of the preceding embodiments. The code stream is generated by bit encoding according to to-be-encoded information. The to-be-encoded information at least includes presence information of a current vertex.

[0378] In still another embodiment of the present application, based on the same inventive concept of the preceding embodiments, referring to FIG. 20, a component structure schematic diagram of a point cloud decoder provided by the embodiment of the present application is shown. As shown in FIG. 20, the point cloud decoder 200 can include a second determining unit 2001 and a decoding unit 2002; wherein,

[0379] The second determining unit 2001 is configured to, in a case where the current vertex is enabled in an inter-frame prediction mode, determine first reference vertex information and second reference vertex information of the current vertex; determine a target context state set of the current vertex according to the first reference vertex information of the current vertex; wherein the target context state set includes context states corresponding to a plurality of inter-frame context information; and determine a target entropy decoding parameter set of the current vertex according to the second reference vertex information of the current vertex.

[0380] The second determining unit 2001 is further configured to determine a target context state of the current vertex from the target context state set according to inter-frame context information of the current vertex; and determine a target entropy decoding parameter of the current vertex from the target entropy decoding parameter set according to the target context state.

[0381] The decoding unit 2002 is configured to entropy decode the code stream according to the target entropy decoding parameter, and determine the presence information of the current vertex.

[0382] It can be understood that each functional unit of the point cloud decoder also performs the decoding method of any one of the preceding embodiments.

[0383] It can be understood that, in this embodiment, the "unit" can be a partial circuit, a partial processor, a partial program or software, etc., and of course can also be a module, and can also be non-modular. Moreover, the components in this embodiment can be integrated in a processing unit, or can be physically present as individual units, 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.

[0384] The integrated unit, if realized in the form of a software function module and not sold or used as an independent product, can be stored in a computer-readable storage medium. Based on this understanding, the embodiment provides a computer-readable storage medium applied to the point cloud decoder 200, which stores a computer program. The computer program is executed by the second processor to implement the decoding method of any one of the preceding embodiments.

[0385] Based on the components of the point cloud decoder 200 and the computer-readable storage medium, referring to FIG. 21, a specific hardware structure schematic diagram of the point cloud decoder 200 provided by the embodiment of the application is shown. As shown in FIG. 21, the point cloud decoder 200 can include a second communication interface 2101, a second memory 2102, and a second processor 2103; and the components are coupled together through a second bus system 2104. It can be understood that the second bus system 2104 is used to realize the connection and communication between the components. The second bus system 2104 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 second bus system 2104 in FIG. 21. Among them,

[0386] The second communication interface 2101 is configured to receive and send signals in the process of transceiving information with other external network elements;

[0387] The second memory 2102 is configured to store a computer program capable of running on the second processor 2103;

[0388] The second processor 2103 is configured to, when running the computer program, perform:

[0389] In a case where it is determined that the current vertex enables the inter-prediction mode, determining first reference vertex information and second reference vertex information of the current vertex;

[0390] According to the first reference vertex information of the current vertex, determining a target context state set of the current vertex; wherein the target context state set includes context states corresponding to a plurality of inter-prediction context information;

[0391] According to the second reference vertex information of the current vertex, a target set of entropy decoding parameters of the current vertex is determined;

[0392] According to the inter-frame context information of the current vertex, a target context state of the current vertex is determined from the target set of context states;

[0393] According to the target context state, a target entropy decoding parameter of the current vertex is determined from the target set of entropy decoding parameters;

[0394] According to the target entropy decoding parameter, the bitstream is entropy decoded to determine the presence information of the current vertex.

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

[0396] It can be understood that the second memory 2102 has similar hardware functions as the first memory 1902, and the second processor 2103 has similar hardware functions as the first processor 1903; and details are not described herein.

[0397] The embodiment provides a point cloud decoder, in which when the inter-frame prediction mode is started to decode the vertex presence information, the inter-frame reference vertex information is fully utilized to select a suitable set of context states and a set of entropy decoding parameters for a vertex to be encoded, so that the vertex presence information is decoded by selecting the best entropy coding parameter, the code rate is effectively reduced, and the decoding efficiency is improved.

[0398] The embodiment further provides a computer program product, including a computer program or instructions, which are executed by a processor to execute the encoding method or the decoding method of any one of the preceding embodiments.

[0399] In another embodiment of the present application, referring to FIG. 22, a constituent structure diagram of a coding system provided by the embodiment of the present application is shown. As shown in FIG. 22, the coding system 220 can include a point cloud encoder 2201 and a point cloud decoder 2202.

[0400] In the embodiment of the present application, the point cloud encoder 2201 can be the point cloud encoder described in any one of the preceding embodiments, and the point cloud decoder 2202 can be the point cloud decoder described in any one of the preceding embodiments.

[0401] It should be noted that in the present application, the terms "comprising", "containing" or any other variant thereof are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements, but can also include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without more limitations, the element defined by the statement "comprising a" does not exclude the presence of additional identical elements in the process, method, article, or apparatus that includes the element.

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

[0403] The methods disclosed in the several method embodiments provided by the present application can be combined arbitrarily without conflict to obtain new method embodiments. The features disclosed in the several product embodiments provided by the present application can be combined arbitrarily without conflict to obtain new product embodiments. 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.

[0404] The above-mentioned is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto, and any person skilled in the art can easily think of changes or replacements within the technical range 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

[0405] In the embodiments of the present application, at the encoding end or the decoding end, in the case that the inter prediction mode is enabled for the current vertex, the first reference vertex information and the second reference vertex information of the current vertex are determined; the target context state set of the current vertex is determined according to the first reference vertex information of the current vertex; wherein the target context state set includes context states corresponding to a plurality of inter context information; the target entropy coding / decoding parameter set of the current vertex is determined according to the second reference vertex information of the current vertex; the target context state of the current vertex is determined from the target context state set according to the inter context information of the current vertex; the target entropy coding / decoding parameter of the current vertex is determined from the target entropy coding / decoding parameter set according to the target context state, and the existence information of the current vertex is entropy coded / decoded according to the target entropy coding / decoding parameter. In this way, when the inter prediction mode is enabled to code / decode the existence information of the vertex, the inter reference vertex information is fully utilized to select the appropriate context state set and the entropy coding / decoding parameter set for the vertex to be coded, so as to select the best entropy coding / decoding parameter to code the existence information of the vertex, effectively reduce the code rate, and improve the coding / decoding efficiency.

Claims

1. A decoding method applied to a point cloud decoder, the method comprising: in a case where it is determined that a current vertex enables an inter-prediction mode, determining first reference vertex information and second reference vertex information of the current vertex; determining a target context state set of the current vertex according to the first reference vertex information of the current vertex, wherein the target context state set comprises context states corresponding to a plurality of inter-prediction context information; determining a target entropy decoding parameter set of the current vertex according to the second reference vertex information of the current vertex; determining a target context state of the current vertex from the target context state set according to inter-prediction context information of the current vertex; determining a target entropy decoding parameter of the current vertex from the target entropy decoding parameter set according to the target context state; entropy decoding a bitstream according to the target entropy decoding parameter to determine presence information of the current vertex.

2. The method of claim 1, wherein, The method further comprises: determining whether first inter-prediction information of a neighbor vertex of the current vertex satisfies a first preset condition; in a case where the first inter-prediction information of the neighbor vertex satisfies the first preset condition, determining that the current vertex enables the inter-prediction mode.

3. The method of claim 2, wherein, The first inter-prediction information of the neighbor vertex comprises: a first number of inaccurate neighbor vertices of the current vertex or more than one neighbor vertex of the current vertex using neighbor non-compensated vertex prediction; and / or a second number of inaccurate neighbor vertices of the current vertex or more than one neighbor vertex of the current vertex using neighbor compensated vertex prediction; The first preset condition comprises: the first number is less than or equal to a first preset value, and / or the second number is less than or equal to a second preset value.

4. The method of claim 2, wherein, The method further comprises: in a case where a value of a first syntax element indicates that the current vertex is allowed to enable the inter-prediction mode, performing the step of determining whether the first inter-prediction information of the neighbor vertex of the current vertex satisfies the first preset condition.

5. The method of claim 1, wherein, The determining the target context state set of the current vertex according to the first reference vertex information of the current vertex comprises: in a case where the first reference vertex information of the current vertex indicates that a first reference vertex of the current vertex exists, determining the target context state set as a first context state set; in a case where the first reference vertex information of the current vertex indicates that the first reference vertex of the current vertex does not exist, determining the target context state set as a second context state set.

6. The method of claim 5, wherein, The first reference vertex information of the current vertex comprises position information of the first reference vertex, and the method further comprises: in a case where a value of the position information of the first reference vertex is less than a third preset value, determining that the first reference vertex of the current vertex does not exist; in a case where the value of the position information of the first reference vertex is greater than or equal to the third preset value, determining that the first reference vertex of the current vertex exists.

7. The method of claim 5 or 6, wherein, The first reference vertex is a compensated reference vertex of the current vertex.

8. The method of claim 1, wherein The determining the target entropy decoding parameter set of the current vertex according to the second reference vertex information of the current vertex comprises: determine the inter information of the current vertex according to the second reference vertex information of the current vertex and second inter information of a neighbor vertex of the current vertex; determine the target set of entropy decoding parameters according to the inter information of the current vertex.

9. The method of claim 8, wherein, The determining the inter information of the current vertex according to the second reference vertex information of the current vertex and second inter information of a neighbor vertex of the current vertex comprises: determining whether the second inter information of the neighbor vertex satisfies a second preset condition; in a case where the second inter information of the neighbor vertex does not satisfy the second preset condition, determining that a first bit of the inter information of the current vertex takes a fourth preset value and a second bit of the inter information of the current vertex takes the fourth preset value; in a case where the second inter information of the neighbor vertex satisfies the second preset condition, determining that the first bit of the inter information of the current vertex takes a fifth preset value, and determining whether a second reference vertex of the current vertex exists according to the second reference vertex information of the current vertex; in a case where the second reference vertex information of the current vertex indicates that the second reference vertex of the current vertex does not exist, determining that the second bit takes the fourth preset value; in a case where the second reference vertex information of the current vertex indicates that the second reference vertex of the current vertex exists, determining that the second bit takes the fifth preset value.

10. The method of claim 9, wherein, The second inter information of the neighbor vertex comprises a first quantity of neighbor vertices of which one or more neighbor vertices of the current vertex use inaccurate neighbor vertices for neighbor uncompensated vertex prediction. The second preset condition comprises that the first quantity is less than or equal to a sixth preset value.

11. The method of any one of claims 9-10, wherein, The second reference vertex is an uncompensated reference vertex of the current vertex.

12. The method according to any one of claims 9 to 11, wherein, The determining the inter information of the current vertex according to the second reference vertex information of the current vertex and second inter information of a neighbor vertex of the current vertex further comprises: in a case where the second inter information of the neighbor vertex satisfies the second preset condition, determining whether prediction information of a decoded vertex satisfies a third preset condition; in a case where the third inter information does not satisfy the third preset condition, determining that the first bit of the inter information of the current vertex takes the fifth preset value; in a case where the third inter information satisfies the third preset condition, determining that the first bit of the inter information of the current vertex takes a fourth preset value and the second bit takes the fourth preset value.

13. The method of claim 12, wherein, The prediction information of the decoded vertex comprises a third quantity of encoded vertices of the decoded vertices that use uncompensated reference vertices for prediction, and a fourth quantity of the decoded vertices. The third preset condition comprises that an indication parameter determined according to the third quantity and the fourth quantity is less than a seventh preset value.

14. The method of claim 13, wherein, the indication parameter is set as a ratio of the third quantity and the fourth quantity; or the indication parameter is set as a product of the ratio of the third quantity and the fourth quantity and a preset coefficient.

15. The method according to any one of claims 12 to 14, wherein, The method further comprises: determining, according to the presence information of the decoded context vertex of the current vertex, the intra context information of the current vertex; adding the inter context information of the current vertex to the intra context information of the current vertex to determine the inter context information of the current vertex.

16. The method of claim 15, wherein, The intra context information includes first information and second information. The adding the inter context information of the current vertex to the intra context information of the current vertex to determine the inter context information of the current vertex includes: The first bit and the second bit of the inter context information of the current vertex are added to the head of the second information.

17. The method of any one of claims 8 to 16, wherein, The determining, according to the inter context information of the current vertex, the target entropy decoding parameter set includes: When the first bit of the inter context information of the current vertex is the fourth preset value, the target entropy decoding parameter set is determined as a first entropy decoding parameter set; When the first bit of the inter context information of the current vertex is the fifth preset value and the second bit is the fourth preset value, the target entropy decoding parameter set is determined as a second entropy decoding parameter set; When the first bit of the inter context information of the current vertex is the fifth preset value and the second bit is the fifth preset value, the target entropy decoding parameter set is determined as a third entropy decoding parameter set.

18. The method of any one of claims 1 to 14, wherein, The method further includes: determining, according to the presence information of the decoded context vertex of the current vertex, the intra context information of the current vertex; configuring the inter context information as the intra context information.

19. The method of claim 1, wherein, The method further includes: determining, according to the target context state set, a plurality of candidate entropy decoding parameter sets of the current vertex.

20. The method of claim 1, wherein, The target context state includes a first probability of the presence or absence of the current vertex under the inter context information of the current vertex, and the target entropy decoding parameter includes a second probability of the presence or absence of the current vertex under the inter context information of the current vertex.

21. An encoding method applied to a point cloud encoder, the method comprising: when the current vertex enables the inter prediction mode, determining first reference vertex information and second reference vertex information of the current vertex; determining, according to the first reference vertex information of the current vertex, a target context state set of the current vertex; wherein the target context state set includes context states corresponding to a plurality of inter context information; determining, according to the second reference vertex information of the current vertex, a target entropy encoding parameter set of the current vertex; determining, according to the inter context information of the current vertex, a target context state of the current vertex from the target context state set; determining, according to the target context state, a target entropy encoding parameter of the current vertex from the target entropy encoding parameter set; entropy encoding the presence information of the current vertex according to the target entropy encoding parameter, and writing the obtained encoding bits into a bitstream.

22. The method of claim 21, wherein, The determining, according to the first reference vertex information of the current vertex, the target context state set of the current vertex includes: The first reference vertex information of the current vertex indicates that the first reference vertex of the current vertex exists, and the target context state set is determined as the first context state set. The first reference vertex information of the current vertex indicates that the first reference vertex of the current vertex does not exist, and the target context state set is determined as the first context state set.

23. The method of claim 22, wherein, The first reference vertex information of the current vertex includes position information of the first reference vertex, and the method further comprises: The value of the position information of the first reference vertex is less than a third preset value, and it is determined that the first reference vertex of the current vertex does not exist; The value of the position information of the first reference vertex is greater than or equal to the third preset value, and it is determined that the first reference vertex of the current vertex exists.

24. The method of claim 22 or 23, wherein, The first reference vertex is a compensation reference vertex of the current vertex.

25. The method of claim 21, wherein, The target entropy coding parameter set of the current vertex is determined according to the second reference vertex information of the current vertex, comprising: determining the inter-frame information of the current vertex according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertex of the current vertex; determining the target entropy coding parameter set according to the inter-frame information of the current vertex.

26. The method of claim 25, wherein, The inter-frame information of the current vertex is determined according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertex of the current vertex, comprising: determining whether the second inter-frame information of the neighbor vertex satisfies a second preset condition; in the case that the second inter-frame information of the neighbor vertex does not satisfy the second preset condition, determining that the value of the first bit of the inter-frame information of the current vertex is a fourth preset value, and the value of the second bit is the fourth preset value; in the case that the second inter-frame information of the neighbor vertex satisfies the second preset condition, determining that the value of the first bit of the inter-frame information of the current vertex is a fifth preset value, and determining whether the second reference vertex of the current vertex exists according to the second reference vertex information of the current vertex; in the case that the second reference vertex information of the current vertex indicates that the second reference vertex of the current vertex does not exist, determining that the value of the second bit is the fourth preset value; in the case that the second reference vertex information of the current vertex indicates that the second reference vertex of the current vertex exists, determining that the value of the second bit is the fifth preset value.

27. The method of claim 26, wherein, The second inter-frame information of the neighbor vertex comprises: a first number of neighbor vertices whose neighbor non-compensation vertex prediction is inaccurate, which is used by one or more neighbor vertices of the current vertex; The second preset condition comprises: the first number is less than or equal to a sixth preset value.

28. The method of any one of claims 25 to 27, wherein, The second reference vertex is a non-compensation reference vertex of the current vertex.

29. The method of any one of claims 25 to 28, wherein, The inter-frame information of the current vertex is determined according to the second reference vertex information of the current vertex and the second inter-frame information of the neighbor vertex of the current vertex, further comprising: in a case where the second inter-frame information of the neighbor vertex satisfies the second preset condition, judging whether prediction information of the coded vertex satisfies a third preset condition; in a case where the third inter-frame information does not satisfy the third preset condition, determining that a value of a first bit of the inter-frame information of the current vertex is the fifth preset value; in a case where the third inter-frame information satisfies the third preset condition, determining that the value of the first bit of the inter-frame information of the current vertex is a fourth preset value, and determining that a value of a second bit is the fourth preset value.

30. The method of claim 29, wherein, The method further comprises: determining, according to existence information of a coded context vertex of the current vertex, intra-context information of the current vertex; adding the inter-frame information of the current vertex to the intra-context information of the current vertex to determine inter-context information of the current vertex.

31. The method of any one of claims 25 to 30, wherein, The determining, according to the inter-frame information of the current vertex, of the target entropy coding parameter set comprises: in a case where the first bit of the second inter-frame information is the fourth preset value, determining that the target entropy coding parameter set is a first entropy coding parameter set; in a case where the first bit of the second inter-frame information is the fifth preset value and the second bit is the fourth preset value, determining that the target entropy coding parameter set is a second entropy coding parameter set; in a case where the first bit of the second inter-frame information is the fifth preset value and the second bit is the fifth preset value, determining that the target entropy coding parameter set is a third entropy coding parameter set.

32. The method of any one of claims 21 to 29, wherein, The method further comprises: determining, according to existence information of a coded context vertex of the current vertex, intra-context information of the current vertex; configuring the inter-context information as the intra-context information. 33.A point cloud encoder, comprising a first determining unit and an encoding unit; wherein, the first determining unit is configured to, in a case where an inter-frame prediction mode of the current vertex is enabled, determine first reference vertex information and second reference vertex information of the current vertex; determine, according to the first reference vertex information of the current vertex, a target context state set of the current vertex; wherein the target context state set comprises context states corresponding to a plurality of inter-context information; and determine, according to the second reference vertex information of the current vertex, a target entropy coding parameter set of the current vertex; the first determining unit is further configured to, according to the inter-context information of the current vertex, determine a target context state of the current vertex from the target context state set; and according to the target context state, determine a target entropy coding parameter of the current vertex from the target entropy coding parameter set; the encoding unit is configured to entropy encode existence information of the current vertex according to the target entropy coding parameter, and write the obtained coded bits into a bitstream. 34.A point cloud 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; The first processor is configured to execute the method according to any one of claims 21-32 when the computer program is run.

35. A point cloud decoder, comprising a second determining unit and a decoding unit; wherein, The second determining unit is configured to determine first reference vertex information and second reference vertex information of the current vertex when the current vertex is enabled with the inter-prediction mode. The second determining unit is configured to determine a target context state set of the current vertex according to the first reference vertex information of the current vertex, wherein the target context state set comprises context states corresponding to a plurality of inter-context information; and determine a target entropy decoding parameter set of the current vertex according to the second reference vertex information of the current vertex. The second determining unit is further configured to determine a target context state of the current vertex from the target context state set according to the inter-context information of the current vertex, and determine a target entropy decoding parameter of the current vertex from the target entropy decoding parameter set according to the target context state. The decoding unit is configured to entropy decode the code stream according to the target entropy decoding parameter to determine the existence information of the current vertex.

36. A point cloud 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; The second processor is configured to execute the method according to any one of claims 1-20 when the computer program is run.

37. A computer readable storage medium, wherein, The computer readable storage medium stores a code stream generated by the encoding method according to any one of claims 21-32.

38. A computer readable storage medium, wherein, The computer readable storage medium stores a computer program, which is executed to implement the method according to any one of claims 1-20, or implement the method according to any one of claims 21-32.

Citation Information

Patent Citations

  • Point cloud geometrical information inter-frame encoding and decoding method

    CN112565764A

  • Point cloud encoding and decoding method, encoder, decoder and storage medium

    CN115606188A

  • Point cloud coding method, point cloud decoding method, point cloud coding device, point cloud decoding device and electronic equipment

    CN116233435A

  • Occupancy coding using inter prediction with octree occupancy coding based on dynamic optimal binary coder with update on the fly (OBUF) in geometry-based point cloud compression

    WO2023201022A1