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

By determining the target context state and entropy encoding/decoding parameters based on local sparse categories and prediction modes in point cloud encoding and decoding, the problem of low point cloud encoding and decoding efficiency is solved, and the storage space saving and the code rate reduction are achieved.

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

Patent Information

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

AI Technical Summary

Technical Problem

In the geometry-based point cloud compression (G-PCC) codec framework, the separate encoding of the geometric information and attribute information of the point cloud leads to the problems of high computational complexity and low encoding and decoding efficiency.

Method used

By determining the target context state set according to the local sparse category of the current child nodes and determining the target entropy encoding/decoding parameter set according to the prediction mode, the number of context states is reduced, storage space is saved and the code rate is reduced.

Benefits of technology

It improves the efficiency of point cloud encoding and decoding, reduces the storage space usage, and reduces the code rate.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024072369_24072025_PF_FP_ABST
    Figure CN2024072369_24072025_PF_FP_ABST
Patent Text Reader

Abstract

The present application discloses an encoding method, a decoding method, a point cloud encoder, a point cloud decoder, and a storage medium. The encoding / decoding method comprises: determining a target context state set on the basis of a local sparse category of a current child node; determining a context state from the target context state set on the basis of context information of the current child node; determining a target entropy encoding / decoding parameter set on the basis of a prediction mode of the current child node; and determining a target entropy encoding / decoding parameter from the target entropy encoding / decoding parameter set on the basis of the context state, and performing entropy encoding / decoding on occupancy information of the current child node. In this way, different prediction modes can share the context state set, and the target context state set is selected simply on the basis of the local sparse category, so that the number of context states is reduced, and a large amount of storage space is saved. Furthermore, a large number of context states are mapped to a small number of entropy encoding / decoding parameters, thereby reducing the code rate, and improving the encoding / decoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Coding and decoding method, point cloud encoder, point cloud decoder and storage medium Technical Field

[0001] The embodiments of the present application relate to the field of point cloud encoding and decoding technology, and in particular to an encoding and decoding method, a point cloud encoder, a point cloud decoder, and a storage medium. Background Art

[0002] Currently, in the geometry-based point cloud compression (G-PCC) codec framework, the geometric information of a point cloud and the attribute information corresponding to each point in the point cloud are encoded separately. Within the G-PCC codec framework, the geometry encoding and decoding can be divided into octree-based geometry encoding and decoding, trisoup-based geometry encoding and decoding, and prediction tree-based geometry encoding and decoding.

[0003] In the octree-based geometric coding and decoding technology, when encoding and decoding the occupancy information according to the context information of the node to be encoded, there are problems of high computational complexity and low coding and decoding efficiency.

[0004] Summary of the Invention

[0005] The embodiments of the present application provide a coding and decoding 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 bit rate, and improve the coding and decoding efficiency.

[0006] The technical solution of the embodiment of the present application can be implemented as follows:

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

[0008] Determining a local sparse category of the current child node based on occupancy information of decoded neighboring nodes of the current child node;

[0009] Determining a target context state set for the current child node according to the local sparse category, wherein the target context state set includes one or more context states, each context state corresponding to corresponding context information;

[0010] Determining a target context state of the current child node from the target context state set according to the context information of the current child node;

[0011] Determining a target entropy decoding parameter set for the current child node according to a prediction mode of the current child node;

[0012] Determining, according to the target context state, a target entropy decoding parameter of the current child node from the target entropy decoding parameter set;

[0013] Entropy decoding is performed on the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.

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

[0015] Determining a local sparse category of the current child node according to occupancy information of the encoded neighboring nodes of the current child node;

[0016] Determining a target context state set for the current child node according to the local sparse category, wherein the target context state set includes one or more context states, each context state corresponding to corresponding context information;

[0017] Determining a target context state of the current child node from the target context state set according to the context information of the current child node;

[0018] Determining a target entropy coding parameter set for the current child node according to a prediction mode of the current child node;

[0019] Determining, according to the target context state, a target entropy coding parameter of the current child node from the target entropy coding parameter set;

[0020] Entropy coding is performed on the occupancy information of the current child node according to the target entropy coding parameter, and the obtained coding bits are written into a bitstream.

[0021] In a third aspect, an embodiment of the present application provides a point cloud encoder, which includes a first determination unit, a second determination unit, and an encoding unit; wherein,

[0022] The first determining unit is configured to determine a local sparsity category of the current child node based on occupancy information of encoded neighboring nodes of the current child node; and determine a target context state set for the current child node based on the local sparsity category, wherein the target context state set includes one or more context states, each context state corresponding to corresponding context information;

[0023] The first determining unit is further configured to determine the target context state of the current child node from the target context state set according to the context information of the current child node;

[0024] The second determining unit is configured to determine a target entropy coding parameter set for the current child node according to the prediction mode of the current child node; and determine a target entropy coding parameter for the current child node from the target entropy coding parameter set according to the target context state;

[0025] The encoding unit is configured to perform entropy encoding on the occupancy information of the current child node according to the target entropy encoding parameter, and write the obtained encoding bits into a bitstream.

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

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

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

[0029] In a fifth aspect, an embodiment of the present application provides a point cloud decoder, the point cloud decoder comprising a third determination unit, a fourth determination unit and a decoding unit; wherein,

[0030] The third determining unit is configured to determine a local sparsity category of the current child node based on occupancy information of decoded neighboring nodes of the current child node; and determine a target context state set for the current child node based on the local sparsity category, wherein the target context state set includes one or more context states, each context state corresponding to corresponding context information;

[0031] The third determining unit is further configured to determine the target context state of the current child node from the target context state set according to the context information of the current child node;

[0032] The fourth determining unit is configured to determine a target entropy decoding parameter set for the current child node according to the prediction mode of the current child node; and determine a target entropy decoding parameter for the current child node from the target entropy decoding parameter set according to the target context state;

[0033] The decoding unit is configured to perform entropy decoding on the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.

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

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

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

[0037] In a seventh aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a code stream generated by the encoding method as described.

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

[0039] Embodiments of the present application provide a coding and decoding method, a point cloud encoder, a point cloud decoder, and a storage medium. Whether at the encoding or decoding end, a target context state set for the current child node is determined based on the local sparsity category of the current child node, wherein the target context state set includes one or more context states, each of which corresponds to corresponding context information; based on the context information of the current child node, the context state of the current child node is determined from the target context state set; then, based on the prediction mode of the current child node, a target entropy coding / decoding parameter set for the current child node is determined; based on the target context state, the target entropy coding / decoding parameters of the current child node are determined from the target entropy coding / decoding parameter set, and the occupancy information of the current child node is entropy encoded / decoded based on the target entropy coding / decoding parameters. In this way, different prediction modes can share the context state set, and only the target context state set needs to be selected based on the local sparsity category, reducing the number of context states and saving a large amount of storage space. Furthermore, a larger number of context states in the target context state set are mapped to a smaller number of entropy coding / decoding parameters in the target entropy coding / decoding parameter set, thereby reducing the bit rate and improving coding and decoding efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

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

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

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

[0043] Fig. 4 is a schematic diagram of a realization framework of OBUF technology;

[0044] FIG5 is a schematic diagram of an application implementation flow of an OBUF technology;

[0045] FIG6 is a schematic diagram of dynamically adjusting context priorities;

[0046] FIG7 is a schematic diagram of a scanning order of subnodes in a current node;

[0047] FIG8 is a schematic diagram of a process for constructing inter-frame context information;

[0048] FIG9 is a schematic diagram of an intra-frame and inter-frame entropy coding process based on OBUF technology;

[0049] FIG10 is a flowchart diagram of a decoding method provided in an embodiment of the present application;

[0050] FIG11 is a schematic diagram showing the distribution of child neighbor nodes and coplanar parent neighbor nodes of child node 0;

[0051] FIG12 is a schematic diagram showing the distribution order of 20 parent neighbor nodes of a child node 0;

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

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

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

[0055] FIG16 is a schematic diagram of the structure of a point cloud encoder provided in an embodiment of the present application;

[0056] FIG17 is a schematic diagram of a specific hardware structure of a point cloud encoder provided in an embodiment of the present application;

[0057] FIG18 is a schematic diagram of the structure of a point cloud decoder provided in an embodiment of the present application;

[0058] FIG19 is a schematic diagram of a specific hardware structure of a point cloud decoder provided in an embodiment of the present application;

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

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

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

[0062] In the following description, reference is made to "some embodiments," which describe a subset of all possible embodiments. However, it is understood that "some embodiments" may be the same subset or different subsets of all possible embodiments, and may be combined with each other without conflict. It should also be noted that the terms "first, second, and third" in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It is understood that "first, second, and third" may be interchanged in a specific order or sequential order where permitted, 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 further explaining the embodiments of the present application in detail, the nouns and terms involved in the embodiments of the present application are explained first. The nouns and terms involved in the embodiments of the present application are subject to the following interpretations:

[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 the surface of an object. Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.

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

[0077] For example, a point cloud obtained based on the principle of laser measurement can include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point. For another example, a point cloud obtained based on the principle of photogrammetry can include the three-dimensional coordinate information of the point and the color information of the point. For another example, a point cloud obtained by combining the principles of laser measurement and photogrammetry can include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point, and the color information of the point.

[0078] Point clouds can be divided into the following categories according to the acquisition method:

[0079] The first type of static point cloud: the object is stationary and the device used to obtain the point cloud is also stationary;

[0080] The second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is stationary;

[0081] The third type of dynamic point cloud acquisition: the device that acquires the point cloud is moving.

[0082] For example, point clouds can be divided into two categories according to their usage:

[0083] Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;

[0084] Category 2: Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.

[0085] Since point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of point clouds at the network layer without compression. Therefore, point clouds need to be compressed.

[0086] To date, the point cloud coding framework that can compress point clouds can be the G-PCC codec framework or the V-PCC codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS). Among them, the G-PCC codec framework can be used to compress the first type of static point cloud and the third type of dynamically acquired point cloud, and the V-PCC codec framework can be used to compress the second type of dynamic point cloud. In the embodiments of the present application, the description is mainly based on the G-PCC codec framework.

[0087] An embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method. FIG1 is a schematic diagram of a network architecture of a point cloud encoding and decoding system provided by an embodiment of the present application. As shown in FIG1 , 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. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions. For example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application. Among them, the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.

[0088] Among them, the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).

[0089] The following describes the related technologies using the G-PCC encoding and decoding framework as an example.

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

[0091] Figure 2 shows a schematic diagram of the G-PCC encoder architecture. As shown in Figure 2, during the geometry encoding process, the geometric information is transformed so that the entire point cloud is contained within a bounding box. Quantization then occurs. This quantization step primarily serves a scaling purpose. Due to quantization rounding, the geometric information of some point clouds becomes identical. Parameters are then used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also known as voxelization. The bounding box is then partitioned into an octree or a prediction tree is constructed. During this process, entropy coding is performed on the points in the leaf nodes of the partition to generate a binary geometry bitstream. Alternatively, entropy coding is performed on the vertex points generated by the partition (surface fitting is performed based on the intersections) to generate a binary geometry bitstream. During the attribute encoding process, after the geometry encoding is completed and the geometry information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. The reconstructed geometry information is then used to recolor the point cloud, aligning the unencoded attribute information with the reconstructed geometry information. Attribute encoding is mainly performed on color information. In the process of color information encoding, there are two main transformation methods. One is the distance-based lifting transformation that relies on LOD division, and the other is direct RAHT transformation. Both methods convert color information from the spatial domain to the frequency domain, and obtain high-frequency coefficients and low-frequency coefficients through transformation. Finally, the coefficients are quantized and then entropy coded on the quantized coefficients to generate a binary attribute code stream.

[0092] Figure 3 shows a schematic diagram of the composition framework of a G-PCC decoder. As shown in Figure 3, for the acquired binary bit stream, the geometric code stream and attribute code stream in the binary code stream are first decoded independently. When decoding the geometric code stream, entropy decoding is first performed, and then one of the following methods is selected: octree partitioning-reconstructed surface estimation or prediction tree construction, and then through geometric reconstruction-coordinate inverse transformation, the geometric information of the point cloud can be obtained; when decoding the attribute code stream, entropy decoding and inverse quantization are first performed, and then one of the following methods is selected: RAHT transformation or LOD partitioning-lifting transformation, and finally through color inverse transformation, the attribute information of the point cloud can be obtained; based on the geometric information and attribute information, the point cloud data to be encoded can be restored.

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

[0094] (a) Octree-based geometric encoding and decoding:

[0095] On the encoding side, the geometric information is first transformed so that all point clouds are contained in a bounding box determined by two extreme points (0,0,0) and (2d,2d,2d). Voxelization is then performed, i.e., quantization, rounding, and removal of duplicate points (determined by parameters). The non-empty sub-cubes (containing points in the point cloud) in the Bounding Box are then continuously partitioned into octrees in the order of breadth-first traversal. At the same octree depth, a node is divided into 8 child nodes until the leaf node obtained is a 1×1×1 unit cube. The 8-bit binary code generated to indicate whether a point in the sub-cube is occupied (1 for occupied, 0 for unoccupied) is called an occupancy code. The placeholder code of each node is encoded to generate a binary code stream.

[0096] At the decoding end, the placeholder code of each node is obtained by continuous parsing in the order of breadth-first traversal, and the nodes are continuously divided in turn until a 1×1×1 unit cube is obtained. The division is stopped and the number of points contained in each leaf node is parsed, and finally the geometric reconstructed point cloud information is restored.

[0097] (b) Based on Trisoup geometric encoding and decoding:

[0098] On the encoding side, the octree is first divided. Unlike geometric information encoding based on the octree structure, this method does not need to divide the point cloud step by step into bottom-level leaf nodes with a side length of 1×1×1. Instead, it divides the leaf nodes into leaf nodes with specified side lengths; then, the surface information composed of the voxels in the node is represented by a series of triangle meshes. In GPCC, the parameter Trisoup node size can be used to represent the size of the block where the triangle facet is located. When the Trisoup node size is greater than 0, the voxel set in the node is represented by a geometric facet. The up to twelve intersection points generated by the geometric facet and the twelve edges of the block are called vertices. The vertex coordinates of each block are encoded in sequence to generate a binary code stream.

[0099] On the decoding side, in order to decode the geometric coordinates of the point cloud from the triangular facets of the node, it is necessary to check whether each voxel in the node cube intersects with the triangular facet. This technology is called triangle rasterization.

[0100] (c) Geometric encoding and decoding based on prediction tree:

[0101] At the encoding end, the input point cloud is first sorted. The sorting methods currently used include disorder, Morton order, azimuth order, and radial distance order. At the encoding end, the prediction tree structure is established by using two different methods, including: high-latency slow mode (KD-Tree, KD tree) and low-latency fast mode (using lidar calibration information to divide each point into different lasers (Laser), and establish a prediction structure 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 the quantization parameter. Finally, through continuous iteration, the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.

[0102] At the decoding end, the decoding end reconstructs the prediction tree structure by continuously parsing the bit stream. Secondly, the geometric position prediction residual information and quantization parameters of each prediction node are obtained through parsing, and the prediction residual is dequantized to restore the reconstructed geometric position information of each node, finally completing the geometric reconstruction at the decoding end.

[0103] It should also be noted that in one possible implementation of the related technology, the encoder currently used by G-PCC is context-based adaptive binary arithmetic coding CABAC, which is an entropy encoder widely used in video coding. Like traditional arithmetic coding, CABAC uses a recursive interval partitioning method for coding representation. Since CABAC is adaptive coding, that is, the probability model will adjust with the appearance of symbols, it fully considers the statistical characteristics of the source and greatly improves coding efficiency. Among them, the CABAC encoder can be divided into three parts: binarization, context modeling, and binary arithmetic coding; the details are as follows:

[0104] ① Binarization: Binarization maps a given non-binary syntax element into a binary sequence, i.e., a binary stream (Bin String). If the input syntax element is a binary syntax element, the binarization process is omitted and the data is sent directly to the next step via a bypass.

[0105] ②Context modeling: The encoder assigns an appropriate probability model to each input binary bit based on the value of the previously encoded syntax elements or binary bits. This process is called context modeling.

[0106] ③ Binary arithmetic coding: There are two modes to choose from: regular coding mode and bypass coding mode. In regular coding mode, the binary bits (bins) of the syntax elements and their assigned probability models are fed into the binary arithmetic encoder for encoding. The context model is updated based on the bin values, which is adaptive coding. The other mode is bypass coding mode. In this mode, no specific probability model is assigned to each binary bit. The input bins are directly encoded using a simple bypass encoder, which can speed up the entire encoding and decoding process.

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

[0108] OBUF technology quickly and accurately maps a series of discrete states of the context node's placeholder information to a fixed number of adaptive entropy encoders (i.e., probability models) through a mapping relationship lookup table (LUT). In this way, the context information no longer corresponds one-to-one to the probability model. A fixed number of probability models are updated as the currently encoded syntax elements are updated, and their mapping relationship is updated after each encoding is completed.

[0109] FIG4 is a schematic diagram of an implementation process of an OBUF technology. As shown in FIG4 , the mapped encoder index takes a value of [0, 1, …, N-1], and the symbol s is an occupied bit to be encoded or decoded, and takes a value of 1 or 0.

[0110] 1) OBUF technology can be divided into the following three steps:

[0111] (1) Obtain the context information D of the symbol to be encoded

[0112] The context information D of the symbol to be encoded is the input information of OBUF, which consists of the encoded neighbor node information in the space and the position of the child node relative to the parent node.

[0113] (2) Based on the mapping relationship, the binary encoder index i corresponding to the context information D is obtained

[0114] Before all the symbols to be encoded are encoded, each state is mapped to N encoders through a table lookup. For example, each context information D is mapped to one of 32 encoders (i.e., i is in the range [0, 1, ..., 31]), such as the binary entropy encoder i in Figure 4.

[0115] (3) Use binary encoder i to entropy encode the symbol S

[0116] The symbol to be encoded S is sent to the binary encoder corresponding to its corresponding context information D for entropy coding.

[0117] 2) Examples of OBUF Technology Applications

[0118] As shown in Figure 5, suppose that the occupancy status b0 of child node 0 among the eight child nodes of the current node is encoded. The value of b0 is 0 or 1, 0 means not occupied, and 1 means occupied. First, determine the context information of the child node b0 to be encoded, that is, the status of whether the encoded node is occupied. It is composed of the neighboring nodes, parent nodes and adjacent nodes that have been encoded for the current child node to be encoded. These nodes are called context nodes. Each context node has two states: occupied and unoccupied. The occupation status of all context nodes constitutes context information. The initial probability value of the child node to be encoded corresponding to the current context information is obtained. Then, based on the mapping relationship, the binary encoder coderi corresponding to the initial probability value is obtained. Finally, the binary encoder coderi is used to perform entropy encoding on the encoding symbol b0.

[0119] 2. Dynamic OBUF technology

[0120] Compared with OBUF technology, dynamic OBUF technology no longer uses a fixed number of contexts, but dynamically adjusts the number of contexts during the encoding process.

[0121] The dynamic OBUF technology is divided into two stages: 1) dynamically determining the context node and context information; 2) mapping the context information to a smaller number of binary encoder groups (corresponding to the OBUF technology).

[0122] The following describes context construction and dynamic adjustment. In dynamic OBUF technology, context information is divided into two parts: primary information and secondary information. Part of the secondary information is dynamically adjusted as context information. The context information composed of the primary information and the selected secondary information is used as the OBUF context information.

[0123] 1) Context information construction process:

[0124] The context nodes of the child nodes to be encoded include the following categories:

[0125] (1) Encoded sibling nodes;

[0126] (2) The six coplanar parent neighbor nodes of the current node;

[0127] (3) The other 20 parent neighbor nodes of the current node that share the same edges and points.

[0128] It should be noted that the scanning order of these context nodes from front to back is: encoded sibling nodes of the current child node > encoded coplanar child node neighbors of the current child node > encoded co-edge child node neighbors of the current child node > encoded co-point child node neighbors of the current child node > encoded other child node neighbors of the current child node > encoded coplanar parent node neighbors of the current child node > encoded co-edge parent node neighbors of the current child node > other 20 encoded parent node neighbors. Based on this scanning order, context information is constructed for the child node to be encoded. The first N bits of context information are primary information, and the last M bits are secondary information. M is dynamically adjusted during the encoding process.

[0129] Figure 6 shows a schematic diagram of dynamically adjusting context priorities. As shown in Figure 6, the black-filled child node is the current child node. Eight cases are provided here: the grid-filled child node in (a) is the sibling child node of the current child node; the grid-filled child node in (b) is the coplanar neighbor child node of the current child node; the grid-filled child node in (c) is the coplanar neighbor parent node of the current child node; the grid-filled child node in (d) is the co-edge neighbor child node of the current child node; the grid-filled child node in (e) is the adjacent neighbor parent node of the current child node; the grid-filled child node in (f) is the co-point neighbor child node of the current child node; the grid-filled child node in (g) is the non-adjacent child neighbor node of the current child node; and the grid-filled child node in (h) is the non-adjacent parent neighbor node of the current child node.

[0130] It should also be noted that when constructing the context information, different context models can be constructed for the sub-nodes to be encoded at different positions in the current node according to a preset scanning order. For example, as shown in FIG7 , a schematic diagram of the scanning order of the sub-nodes in the current node is shown here. The scanning order can be to construct different context models in sequence according to sub-node 0, sub-node 1, sub-node 2, sub-node 3, sub-node 4, sub-node 5, sub-node 6 and sub-node 7 in FIG7 . In addition, as the number of encoded sub-nodes in the current node increases, the effective context information that can be referenced by the unencoded sub-nodes will also change, and there are different local sparsity determination methods for the eight sub-nodes of the current node, so each sub-node has its own context bins.

[0131] 2) Dynamic adjustment process

[0132] Each context node can be either occupied or unoccupied, i.e., in a state of 0 or 1. Context information can be represented by N+M binary bits, with N representing primary information and M representing secondary information. During the encoding process, the number of times each piece of context information is used is recorded. When the number of times a particular piece of context information is used exceeds a threshold T, a new context node is added to the scanning order, essentially subdividing the context information by introducing a new context node. Subsequent child nodes to be encoded are encoded using this updated set of context information.

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

[0134] 1) Octree-based geometric coding

[0135] In G-PCC, both intra-frame and inter-frame coding of octree geometric information adopt OBUF technology for entropy coding. However, the context construction method of inter-frame coding is different from that of intra-frame coding. Specifically, the inter-frame context information (Inter State) is actually the union of the intra-frame context information (Intra State) of the current symbol to be encoded and the prediction information of the current node to be encoded obtained through the reference frame. The specific approach is to add whether the current node obtained from the reference frame is occupied and whether it is strongly occupied to the intra-frame context information, for example, to the intra-frame context main information (Intra_ctx1), that is, Inter_ctx1 = Intra_ctx1<<2|predL<<1|pred. Here, predL indicates whether the current child node is predicted to be strongly occupied, and pred indicates whether the current child node is predicted to be occupied. Figure 8 is a schematic diagram of the construction process of inter-frame context information.

[0136] 2. Octree geometry coding based on inter-frame prediction

[0137] Figure 9 is a schematic diagram of the intra-frame and inter-frame entropy coding process based on OBUF technology. First, the value of isSparse is determined based on the intra-frame context information (Intra state) of the sub-node to be encoded. Here, "isSparse" refers to the local sparsity of the sub-node to be encoded, which is determined by the occupancy of the encoded neighboring nodes of the sub-node to be encoded. Based on the value of isSparse (0 or 1), it is divided into two sets of sparse context states and non-sparse context states.

[0138] Secondly, the value of isInter2 is determined by the inter-frame enable flag and the predicted node occupancy, and is further divided into an intra-frame context state set and an inter-frame context state set according to the value of isInter2 (0 or 1). That is, according to the value of isSparse and the value of isInter2, the context state is divided into four sets, including an intra-frame non-sparse context state set (IntraNSparse state), an inter-frame non-sparse context state set (InterNSparse state), an intra-frame sparse context state set (IntraSparse state), and an inter-frame sparse context state set (InterSparse state).

[0139] Then, according to the encoder group corresponding to each set (IntraNSparse Coder, InterNSparse Coder, IntraSparse Coder, InterSparse Coder), it is mapped to the binary encoder according to the current context state. Finally, based on the mapping, the encoder coderi is obtained to perform entropy coding on the encoding symbol b0.

[0140] In the above technology, the inter-frame sparse context and the inter-frame non-sparse context are entropy encoded using their respective encoder groups. The number of inter-frame context states is four times the number of intra-frame context states, which requires a large amount of storage space and will have a certain impact on the coding efficiency.

[0141] Based on this, embodiments of the present application provide a coding and decoding method in which different prediction modes can share a context state set. Only the target context state set needs to be selected based on the different local coefficient categories, reducing the number of context states and saving a large amount of storage space. Furthermore, a larger number of context states in the target context state set are mapped to a smaller number of entropy coding / decoding parameters in the target entropy coding / decoding parameter set, thereby reducing the bit rate and improving coding and decoding efficiency.

[0142] 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 arbitrarily with the technical solutions of the embodiments of the present application as optional solutions, and all of them fall within the scope of protection of the embodiments of the present application. The embodiments of the present application include at least part of the following contents.

[0143] In one embodiment of the present application, referring to FIG10 , a schematic flow chart of a decoding method provided by an embodiment of the present application is shown. As shown in FIG10 , the method may include:

[0144] S101: Determine the local sparse category of the current child node based on the occupancy information of the decoded neighboring nodes of the current child node;

[0145] It should be noted that the decoding method in the embodiments of the present application is applied to a point cloud decoder. In other words, the decoding method can specifically refer to a point cloud decoding method, or a point cloud entropy decoding method. More specifically, the embodiments of the present application provide a point cloud decoding method based on context mapping, which reduces the number of context states, saves storage space, and improves decoding efficiency.

[0146] It should be noted that the current child node is any child node of the current node to be decoded. As shown in Figure 7, the current node includes 8 child nodes, and the scanning order of the child nodes is child node 0, child node 1, child node 2, child node 3, child node 4, child node 5, child node 6, and child node 7.

[0147] The local sparse category is used to indicate the local sparsity of the decoded neighbor nodes of the current child node. The local sparse category may include one or more sparse categories and one or more non-sparse categories. In some embodiments, the local sparse category of the current child node is determined based on the occupancy information of the decoded neighbor nodes of the current child node, including: determining the occupied number of neighbor nodes based on the occupancy information of the neighbor nodes; determining the local sparse category of the current child node based on the occupied number of neighbor nodes. In other words, based on the occupancy information of the neighbor nodes (i.e., whether they are occupied), the occupied number of neighbor nodes (i.e., the number of occupied neighbor nodes NN) can be determined, and different local sparse categories can be distinguished based on the occupied number.

[0148] For example, if the number of occupied neighbor nodes is greater than a second threshold, the local sparse category of the current child node is determined to be the first category; if the number of occupied neighbor nodes is less than or equal to the second threshold, the local sparse category of the current child node is determined to be the second category. For example, the first category can be a non-sparse category, and the second category can be a sparse category. In practical applications, more local sparse categories can also be included.

[0149] In an embodiment of the present application, the local sparsity of the current child node is determined by considering the occupancy information of the decoded neighbor nodes and the position of the child node relative to the parent node. Exemplarily, the neighbor nodes include at least one of the following: a decoded brother node of the current child node; a decoded neighbor child node in the first preset direction adjacent to the current child node; a decoded neighbor child node in the second preset direction adjacent to the current child node; a decoded neighbor child node in the third preset direction adjacent to the current child node. Among them, the first preset direction may refer to the negative direction of the x-axis of the current child node (the left direction), the second preset direction may refer to the negative direction of the y-axis of the current child node (the front direction), and the third preset direction may refer to the negative direction of the z-axis of the current child node (the bottom direction). In other words, the local sparsity category can be established according to the occupancy number of decoded neighbor nodes in the xyz negative direction adjacent to the current child node. It should be noted that the decoded neighbor node of the current child node is the same as or not exactly the same as the context node of the current node.

[0150] Exemplarily, the local sparse category is represented by isSparse, and different isSparse values ​​represent different local sparse categories. The value of isSparse of the child node to be decoded is determined according to the occupancy of the decoded neighboring nodes. Exemplarily, for the local sparse category of child node 0, it can be established according to the occupancy number (NN) of the 12 child nodes decoded in the negative xyz direction adjacent to the current child node in Figure 11. If the occupancy number NN>1 is non-sparse (isSparse is 0), and if the occupancy number NN≤1 is sparse (isSparse is 1). For the local sparse category of child node 1, it can be established according to the occupancy number (NN) of the 4 child nodes decoded in the negative y direction (Front) adjacent to the current child node in Figure 11. If the occupancy number NN>0, it is determined to be a non-sparse category. If the occupancy number NN=0, it is determined to be a sparse category. The local sparse category of child node 2 can be determined based on the occupancy number (NN) of the four decoded child nodes adjacent to the current child node in the negative z direction (Bottom) in Figure 11. If NN>0, it is determined to be a non-sparse category. If NN=0, it is determined to be a sparse category. The local sparse category of child node 3 can be determined based on the NN of the three nodes bit0+bit1+bit2 and the four decoded nodes adjacent to the current child node in the negative x direction (Left) in Figure 11. If NN>1, it is determined to be a non-sparse category. If NN≤1, it is determined to be a sparse category.

[0151] S102: Determine a target context state set for the current child node according to the local sparse category, where the target context state set includes one or more context states, and each context state corresponds to corresponding context information;

[0152] It should be noted that different local sparsity categories correspond to different context state sets. Corresponding context state sets can be configured in advance for different local sparsity categories, and then the target context state set of the current child node can be determined based on the local sparsity category of the current child node.

[0153] Exemplarily, when the local sparse category is the first category, the target context state set is determined to be the first context state set; when the local sparse category is the second category, the target context state set is determined to be the second context state set. In practical applications, more context state sets may also be included. The first context state set includes one or more context states of the first category, each context state corresponds to the corresponding context information of the first category, and the second context state set includes one or more context states of the second category, each context state corresponds to the corresponding context information of the second category.

[0154] It should also be noted that the context state and the context information correspond one to one, the context state set may include the correspondence between the context information and the context state, and the context state set may also include the correspondence between the identification information of the context information and the context state. Among them, the context information is used as the index information of the context state set to index the corresponding context state, the context information is used to characterize the occupancy of the context node of the sub-node to be decoded, and may also be called the context of the sub-node to be decoded, and the context state is used to represent the first probability of the sub-node to be decoded being occupied or not occupied under a certain context information, and may also be called the probability model of the sub-node to be decoded. For example, when the number of bits of the context information is 19, there are at most 2 19 context states, the bits of context information are 16 bits, and there are at most 2 16 contextual state.

[0155] In the embodiment of the present application, there is no need to set different context state sets for different prediction modes. Different prediction modes can share context state sets. It is only necessary to select the target context state set based on the local sparse category. As shown in Figure 9, compared with the prior art, the context state is divided into 4 sets, including the intra-frame non-sparse context state set (IntraNSparse state), the inter-frame non-sparse context state set (InterNSparse state), the intra-frame sparse context state set (IntraSparse state), and the inter-frame sparse context state set (InterSparse state), the embodiment of the present application only needs to divide the context state into 2 sets, including the non-sparse context state set (NSparse state) and the sparse context state set (Sparse state), which greatly reduces the number of context states and saves a lot of storage space. In addition, the construction method of the inter-frame context information and the intra-frame context information in the embodiment of the present application is exactly the same. There is no need to use inter-frame prediction information to participate in the context information construction, which can also reduce the number of context states.

[0156] In some embodiments, the method further includes: constructing multiple types of context information in a context state set based on the occupancy information of the context nodes and the first construction strategy, and initializing the context state of each type of context information. Specifically, the multiple types of context information in the first context state set are constructed based on the occupancy information of the context nodes of the first category and the first construction strategy; and the multiple types of context information in the second context state set are constructed based on the occupancy information of the context nodes of the second category and the first construction strategy.

[0157] S103: Determine the target context state of the current child node from the target context state set according to the context information of the current child node;

[0158] The context information of the current child node represents the occupancy of the context node of the current child node. The context state is the probability of the current child node being occupied or unoccupied given the current context information. The target context state set records the context states corresponding to one or more types of context information. The context state of the current child node is determined by indexing the target context state set using the context information of the current child node.

[0159] In some embodiments, the method further comprises: determining context information of the current child node based on occupancy information of a decoded context node of the current child node.

[0160] Exemplarily, the context node includes at least one of the following: decoded sibling nodes of the current child node; decoded neighbor child nodes with which the current child node is coplanar, co-edge, or co-pointed; decoded neighbor parent nodes with which the current child node is coplanar or co-edgeed; and other decoded neighbor nodes of the current child node. The context node scanning order can be: decoded sibling nodes of the current child node > decoded coplanar child node neighbors of the current child node > decoded co-edge child node neighbors of the current child node > decoded co-point child node neighbors of the current child node > decoded other child node neighbors of the current child node > decoded coplanar parent node neighbors of the current child node > decoded co-edge parent node neighbors of the current child node > other 20 decoded parent node neighbors. Context information is constructed for the child node to be decoded based on the scanning order and occupancy information.

[0161] Exemplarily, the context information of the current child node is determined based on the occupancy information of the decoded context node of the current child node and the first construction strategy.

[0162] The first construction strategy is used to indicate how to generate context information based on the occupancy information of the context node. The first construction strategy may include: constructing the context information based on a preset context node scanning order and the context node occupancy information; or constructing first and second context information based on a preset context information composition structure and the context node occupancy information; the first information has a fixed number of bits, while the second information has an adjustable number of bits. The first information may be primary information, the second information may be secondary information, and whether part of the secondary information is dynamically adjusted as context information.

[0163] S104: Determine a target entropy decoding parameter set for the current child node according to the prediction mode of the current child node;

[0164] In the embodiment of the present application, the prediction mode includes an intra-frame prediction mode and an inter-frame prediction mode, and different prediction modes correspond to different entropy decoding parameter sets. The intra-frame prediction mode corresponds to one or more intra-frame entropy decoding parameter sets, while the inter-frame prediction mode corresponds to one or more inter-frame entropy decoding parameter sets.

[0165] The target entropy decoding parameter set includes a plurality of entropy decoding parameters, where an entropy decoding parameter is any parameter used when entropy decoding the occupancy information of a child node. In some embodiments, the entropy decoding parameter may be an arithmetic decoding parameter, and adaptive arithmetic decoding is performed on the occupancy information of the child node based on the arithmetic decoding parameter. Exemplarily, the arithmetic decoding parameter may be the probability of the current child node being occupied or unoccupied under the current context information.

[0166] In some embodiments, a method for determining the prediction mode of the current child node may include: determining whether the current node allows the inter-frame prediction mode to be enabled based on the value of the first syntax element; if the current node allows the inter-frame prediction mode to be enabled, determining the occupancy information of the prediction node of the current node in the reference frame; and determining whether the child node of the current node enables the inter-frame prediction mode based on the occupancy information of the prediction node, wherein the current child node is any child node within the current node.

[0167] Whether the inter-frame prediction mode is enabled for the current child node is related to the value of the first syntax element and the occupancy information of the prediction node of the current node (the parent node of the current child node). The first syntax element serves as an enable flag for inter-frame prediction, and is used to indicate whether the upper-layer inter-frame prediction is enabled. In some embodiments, the value of the first syntax element is a first numerical value, which determines that the current node allows the inter-frame prediction mode to be enabled; the value of the first syntax element is a second numerical value, which determines that the current node does not allow the inter-frame prediction mode to be enabled. Exemplarily, the first syntax element identifier includes at least a frame-level syntax element, and the value of the first syntax element is 1, which allows the inter-frame prediction to be enabled; the value of the first syntax element is 0, which does not allow the inter-frame prediction to be enabled.

[0168] For example, the occupancy information has a value of 0 for not occupied and 1 for occupied. That is, when the prediction node is occupied, the current node enables inter-frame prediction, making full use of the inter-frame prediction information to improve prediction accuracy. Otherwise, inter-frame prediction is not enabled.

[0169] The occupancy status of a predicted node is related to the occupancy status of its child nodes. In some embodiments, the method further includes: determining occupancy information for multiple predicted child nodes in the predicted node; if the occupancy information of at least one predicted child node in the predicted node indicates occupied, determining the occupancy information of the predicted node indicates occupied; otherwise, determining the occupancy information of the predicted node indicates unoccupied. In other words, if at least one child node in the predicted node is occupied, the value of its occupancy information is set to 1; conversely, if no child node is occupied, the value of its occupancy information is set to 0.

[0170] In some embodiments, determining a target entropy decoding parameter set for the current child node based on the prediction mode of the current child node includes: when the current child node enables inter-frame prediction mode, determining the target entropy decoding parameter set from a candidate inter-frame entropy decoding parameter set, wherein the candidate inter-frame entropy decoding parameter set includes one or more inter-frame entropy decoding parameter sets; and when the current child node enables intra-frame prediction mode, determining the target entropy decoding parameter set from a candidate intra-frame entropy decoding parameter set, wherein the candidate intra-frame entropy decoding parameter set includes one or more intra-frame entropy decoding parameter sets. In other words, one or more entropy decoding parameter sets can be pre-configured for different inter-frame prediction situations, and when the inter-frame prediction mode is enabled, a matching target entropy decoding parameter set is selected based on the actual inter-frame prediction situation to improve the accuracy of intra-frame prediction. Alternatively, one or more entropy decoding parameter sets can be pre-configured for different inter-frame prediction situations, and when the intra-frame prediction mode is enabled, a matching target entropy decoding parameter set is selected based on the actual intra-frame prediction situation to improve the accuracy of intra-frame prediction.

[0171] In some embodiments, determining a target entropy decoding parameter set from a candidate inter-frame entropy decoding parameter set includes: determining the target entropy decoding parameter set from the candidate inter-frame entropy decoding parameter set based on occupancy information of a predicted sub-node of a current sub-node in a reference frame.

[0172] The predicted child node is the co-located child node of the current child node in the predicted node. The predicted node is the predicted node of the current node in the reference frame. The predicted information of the current node is determined based on the occupancy information of the predicted node. The predicted node includes multiple predicted child nodes. Furthermore, the predicted information of the current child node can be determined based on the occupancy information of the co-located predicted child nodes of the current child node. Occupancy information is also called placeholder information or placeholder symbol. The value of occupancy information is 0 or 1, with 0 indicating no occupancy and 1 indicating occupancy.

[0173] Exemplarily, determining a target entropy decoding parameter set from a candidate inter-frame entropy decoding parameter set based on occupancy information of a predicted subnode of a current subnode in a reference frame includes: when the occupancy information of the predicted subnode indicates non-occupancy, determining the target entropy decoding parameter set as a first inter-frame entropy decoding parameter set; and when the occupancy information of the predicted subnode indicates occupation, determining the target entropy decoding parameter set based on an occupancy strength of the predicted subnode. The occupancy strength includes one or more strengths, and when the predicted subnode is occupied, further determining the entropy decoding parameter set based on the occupancy strength.

[0174] Exemplarily, determining a target entropy decoding parameter set based on the occupancy intensity of the predicted sub-node includes: when the occupancy intensity of the predicted sub-node is a first intensity, determining the target entropy decoding parameter set to be a second inter-frame entropy decoding parameter set; when the occupancy intensity of the predicted sub-node is a second intensity, determining the target entropy decoding parameter set to be a third inter-frame entropy decoding parameter set.

[0175] That is, an entropy decoding parameter set is assigned to the current child node based on the predicted occupancy of the child node, wherein the first entropy decoding parameter set includes multiple entropy decoding parameters of the current child node when the predicted child node is not occupied, the second entropy decoding parameter set includes multiple entropy decoding parameters of the current child node when the predicted child node is occupied, and the third entropy decoding parameter set includes multiple entropy decoding parameters of the current child node when the predicted child node is strongly occupied. In an embodiment of the present application, for inter-frame prediction, an entropy decoding parameter set is selected based on whether the current child node is predicted to be unoccupied, occupied, or strongly occupied, making full use of the correlation between the sparse context state and the non-sparse context state between the frames to improve the accuracy of inter-frame prediction.

[0176] Exemplarily, the occupancy strength of the predicted child node is related to the number of occupied nodes in the predicted child node. Exemplarily, when the number of occupied nodes in the predicted child node is greater than a first threshold, the occupancy strength is determined to be strongly occupied (i.e., a first strength); when the number of occupied nodes in the predicted child node is less than or equal to the first threshold, the occupancy strength is determined to be occupied (i.e., a second strength).

[0177] In some other embodiments, determining the target entropy decoding parameter set from the candidate inter-frame entropy decoding parameter sets includes: determining the target entropy decoding parameter set from the candidate inter-frame entropy decoding parameter sets according to the local sparse category.

[0178] For example, when the local sparsity category is the first category, the target entropy decoding parameter set is determined to be the fourth inter-frame entropy decoding parameter set; when the local sparsity category is the second category, the target entropy decoding parameter set is determined to be the fifth inter-frame entropy decoding parameter set. In other words, when the current child node enables inter-frame prediction mode, an inter-frame entropy decoding parameter set can also be assigned based on the local sparsity category of the current child node.

[0179] Exemplarily, determining a target entropy decoding parameter set from a candidate inter-frame entropy decoding parameter set may further include: determining a target entropy decoding parameter set corresponding to a target context state set based on a first mapping relationship, wherein the first mapping relationship includes a mapping relationship between one or more context state sets and an inter-frame entropy decoding parameter set.

[0180] In some embodiments, determining a target entropy decoding parameter set from candidate intra-frame entropy decoding parameter sets includes: determining the target entropy decoding parameter set from the candidate intra-frame entropy decoding parameter sets according to a local sparsity category.

[0181] Exemplarily, when the local sparse category is the first category, the target entropy decoding parameter set is determined to be the first intra-frame entropy decoding parameter set; when the local sparse category is the second category, the target entropy decoding parameter set is determined to be the second intra-frame entropy decoding parameter set. That is, when the current child node enables intra-frame prediction mode, an intra-frame entropy decoding parameter set is allocated based on the local sparse category of the current child node. The first intra-frame entropy decoding parameter set may include multiple entropy decoding parameters corresponding to the first category, and the second intra-frame entropy decoding parameter set may include multiple entropy decoding parameters corresponding to the second category.

[0182] Exemplarily, determining a target entropy decoding parameter set from a candidate intra-frame entropy decoding parameter set may further include: determining a target entropy decoding parameter set corresponding to a target context state set based on a second mapping relationship, wherein the second mapping relationship includes a mapping relationship between one or more context state sets and an intra-frame entropy decoding parameter set.

[0183] S105: Determine the target entropy decoding parameter of the current child node from the target entropy decoding parameter set according to the target context state;

[0184] One or more types of context information correspond to a context state, and the context state is used to index the corresponding target entropy decoding parameter. In some embodiments, the target entropy decoding parameter of the current child node is determined from the target entropy decoding parameter set based on the target context state, including: determining the index value of the target entropy decoding parameter based on the target context state and the target mapping relationship; and determining the target entropy decoding parameter of the current child node from the target entropy decoding parameter set based on the index value of the target entropy decoding parameter. In other words, in the target entropy decoding parameter set, the context state is mapped to the index value of a certain entropy decoding parameter according to a certain mapping rule to index the target entropy decoding parameter.

[0185] It should be noted that the mapping relationship between different context state sets and entropy decoding parameter sets can be the same or different. Exemplarily, the target mapping relationship may include: determining the index value of the target decoder based on the upper M bits of the context state; where M is related to the number of parameters in the target entropy decoding parameter set. Exemplarily, when the number of parameters N in the target entropy decoding parameter set is 32, the upper 5 bits of the context state are used, and the value of the upper 5 bits is the index value of the target entropy decoding parameter.

[0186] In some embodiments, the entropy decoding parameter may be an arithmetic decoding parameter, and adaptive arithmetic decoding is performed on the occupancy information of the child node according to the arithmetic decoding parameter. Exemplarily, the arithmetic decoding parameter may be the probability that the current child node is occupied or not occupied under the current context information. Exemplarily, the context state is the first probability that the current child node is occupied or not occupied under the current context information, and may also be referred to as the first probability model of the child node. The target entropy decoding parameter is the second probability that the current child node is occupied or not occupied under the current context information, and may also be referred to as the second probability model of the child node. Therefore, the entropy decoding parameter may also be understood as a context state, and the entropy decoding parameter set may also be understood as a simplified context state set.

[0187] When the number of bits of context information is 19, a maximum of 2 19 context states, the bits of context information are 16 bits, up to 2 16 context states, and the number of parameters in the target entropy decoding parameter set is much smaller than the number of context states. In an embodiment of the present application, the target context state set contains a large number of context states. If these context states are directly used for entropy decoding, the decoding efficiency is low. The target entropy decoding parameter set contains a small number of entropy decoding parameters. The large number of context states in the target context state set is mapped to the small number of entropy decoding parameters in the target entropy decoding parameter set, thereby streamlining the entropy decoding parameters and improving decoding efficiency.

[0188] In the embodiment of the present application, the method for constructing the inter-frame context information adopts the same method as the method for constructing the intra-frame context information. For example, the scheme for constructing the intra-frame context can be:

[0189] (1) For child node 0, there are child node neighbors with the same plane, the same edge, and the same point, no decoded sibling nodes, and there are parent node neighbors with the same plane and other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 16 bits, with a maximum of 2 16 The upper 4 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.

[0190] Among them, the local sparsity of child node 0 can be determined according to the occupancy number (NN) of the 12 decoded child nodes in the negative x, y, and z directions adjacent to the current child node in Figure 11. If the occupancy number NN>1, it is determined to be a non-sparse category, and if the occupancy number NN≤1, it is determined to be a sparse category. For example, Figure 11 shows a distribution diagram of the child neighbor nodes and coplanar parent neighbor nodes of child node 0, and Figure 12 shows a distribution sequence diagram of the 20 parent neighbor nodes of child node 0. Among them, the numbers 1, 2, 4, 8, 16, 32, etc. represent the numbers of the neighbor nodes.

[0191] Table 1 Context information of child node 0

[0192] Table 1 shows the interpretation of each bit of context information corresponding to child node 0. The order from most significant to least significant bit reflects the importance of the information. The black-filled 1s or 0s represent the flag bit of the current classification. For example, 3 directions indicates that context nodes are occupied in the Left, Front, and Bottom directions simultaneously; 2 directions indicate that context nodes are occupied in the Left and Bottom directions, the Front and Bottom directions, or the Left and Front directions; and 1 direction indicates that context nodes are occupied in the Left, Front, and Bottom directions. The negation operation "!" indicates that the bit symbol is the inverted version of its actual symbol. In addition, this also covers coplanar child nodes, co-edge child nodes, co-point child nodes, edge-interposed child nodes, and co-position child nodes. In Table 1, the meanings of the symbols are explained as follows: B (Bottom), F (Front), and L (Left) are the parent neighbors of the six neighbors numbered 16, 4, and 2 that are coplanar with the current node in Figure 11. Since these three decoded nodes are located in the negative direction of the current node's coordinate axis, their child node occupancy information can be obtained. Therefore, Table 1 lists the child nodes that are coplanar, co-edge, and co-point with the current child node in these three directions one by one; it should be noted that the English abbreviations B, F, and L represent the child nodes that are coplanar, co-edge, and co-point with the current child node, such as the English full name Botto m, Front, and Left represent the parent neighbors of the current child node that are coplanar, co-edge, and co-point. Top, Back, and Right are the parent neighbors of the six coplanar neighbors of the current node in Figure 11, numbered 32, 8, and 1, respectively. Since these three decoded nodes are located in the positive direction of the current node's coordinate axis, their child node occupancy information cannot be obtained, and their relevance is weaker than the above-mentioned 12 child neighbor nodes. Other numbers such as 9, 4, 1, and 2 in Table 1 are the serial numbers of the 20 co-edge / co-point neighbors of the current node except the six coplanar parent neighbors shown in Figure 12. For the co-located child nodes in Table 1 bit0 B. bit0 F. bit0L can be understood in this way: there is also a child node numbered 0 in the decoded Bottom, Front, and Left nodes, and this node is called the co-node; the two letters represented in the table, such as LF, LB, and FB, respectively represent the occupancy information of the two child nodes sandwiched between the Left and Front directions that share the same edge with the current child node (obtained by the No. 1 placeholder code among the 20 neighbors), the occupancy information of the two child nodes sandwiched between the Left and Bottom directions that share the same edge with the current child node (obtained by the No. 8 placeholder code among the 20 neighbors), and the occupancy information of the two child nodes sandwiched between the Front and Bottom directions that share the same edge with the current child node (obtained by the No. 3 placeholder code among the 20 neighbors).

[0193] (2) For child node 1, there are child node neighbors that share the same plane, edge, and point with it, there is a decoded sibling node bit0, there are parent node neighbors that share the same plane with it, and there are other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 19 bits, with a maximum of 2 19 The upper 7 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.

[0194] The local sparsity of child node 1 can be determined based on the occupancy count (NN) of the four decoded child nodes adjacent to the current child node in the negative y direction (Front) in Figure 11. If NN > 0, the node is classified as non-sparse; if NN = 0, the node is classified as sparse. Table 2 explains the context information for each bit in the bins. It can be seen that the decoded occupancy information of sibling node 0 is the most important, being located in the highest bit of the bin.

[0195] (3) For child node 2, there are child node neighbors that share the same plane, edge, and point with it, there are two decoded sibling nodes bit0 and bit1, there are parent node neighbors that share the same plane with it, and there are other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 19 bits, with a maximum of 2 19 The upper 7 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.

[0196] The local sparsity of child node 2 can be determined based on the occupancy count (NN) of the four decoded child nodes adjacent to the current child node in the negative z direction (bottom) in Figure 11. If NN > 0, the node is classified as non-sparse; if NN = 0, the node is classified as sparse. Table 3 explains the context information for each bit in the bins. It can be seen that the decoded occupancy information of sibling node 0 is the most important, being located in the highest bit of the bin.

[0197] Table 2. Context information of child node 1

[0198] Table 3. Context information of child node 2

[0199] (4) For child node 3, there are child node neighbors that share the same plane, edge, and point with it, there are 3 decoded sibling nodes bit0, bit1, and bit2, there are parent node neighbors that share the same plane with it, and there are other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 17 bits, with a maximum of 2 17 states, with the upper 6 bits as the main information and the lower 11 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 18 bits, with a maximum of 2 18 The upper 6 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.

[0200] Among them, for the local sparsity of child node 3, the three nodes bit0+bit1+bit2 and the seven nodes decoded in the negative x direction (Left) adjacent to the current child node in Figure 11 can be established as NN. If the occupancy number NN>1, it is judged as a non-sparse category. If the occupancy number NN≤1, it is judged as a sparse category.

[0201] Table 4. Context information of child node 3

[0202] (5) For child node 4, there are child node neighbors with the same plane, edge, and point. There are 4 decoded sibling nodes bit0, bit1, bit2, and bit3. There are parent node neighbors with the same plane and other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 16 bits, with a maximum of 2 16 The upper 4 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.

[0203] Among them, for the local sparsity of child node 4, the 12 nodes can be established together as NN: the 4 nodes bit0+bit1+bit2+bit3 (denoted as "new Left"), the 4 decoded nodes in the negative y direction (Front) adjacent to the current child node in Figure 11, and the 4 decoded nodes in the negative z direction (Bottom). If the occupancy number NN>1, it is judged as a non-sparse category. If the occupancy number NN≤1, it is judged as a sparse category.

[0204] Table 5. Context information of child node 4

[0205] (5) For child node 5, there are child node neighbors with the same plane, edge, and point. There are 5 decoded sibling nodes bit0, bit1, bit2, bit3, and bit4. There are parent node neighbors with the same plane and other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 19 bits, with a maximum of 2 19 The upper 7 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.

[0206] Among them, for the local sparsity of child node 5, the negative y direction (Front) adjacent to the current child node in Figure 11 can be established as NN. If the occupancy number NN>0, it is judged as a non-sparse category. If the occupancy number NN=0, it is judged as a sparse category.

[0207] Table 6. Context information of child node 5

[0208] (7) For child node 6, there are child node neighbors with the same plane, edge, and point. There are 6 decoded sibling nodes bit0, bit1, bit2, bit3, bit4, and bit5. There are parent node neighbors with the same plane and other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 19 bits, with a maximum of 2 19 The upper 7 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.

[0209] Among them, for the local sparsity of child node 6, the negative z direction (Bottom) adjacent to the current child node in Figure 11 can be established as NN. If the occupancy number NN>0, it is judged as a non-sparse category. If the occupancy number NN=0, it is judged as a sparse category.

[0210] Table 7. Context information of child node 6

[0211] (8) For child node 7, there is no child node neighbor with the same plane, edge, or point. There are 7 decoded sibling nodes bit0, bit1, bit2, bit3, bit4, bit5, and bit6. There is a parent node neighbor with the same plane and 20 other decoded neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 17 bits, with a maximum of 2 17 states, with the upper 6 bits as the main information and the lower 11 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 18 bits, with a maximum of 2 18 The upper 6 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.

[0212] Among them, for the local sparsity of child node 7, the seven nodes bit0+bit1+bit2+bit3+bit4+bit5+bit6 can be established as NN. If the occupancy number NN>1, it is judged as a non-sparse category. If the occupancy number NN≤1, it is judged as a sparse category.

[0213] Table 8. Context information of child node 7

[0214] It should be noted that the black-filled 1 or 0 represents the flag bit of the current classification, and each bit can also be given actual meaning. The negation operation can also be removed for the bit with the negation operation.

[0215] S106: Perform entropy decoding on the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.

[0216] In some embodiments, the method further includes: updating target entropy decoding parameters and context state according to occupancy information of the current child node.

[0217] Based on the above embodiment, the decoding method provided in the embodiment of the present application is further illustrated. As shown in FIG13 , the decoding method is specifically a method for decoding point cloud geometric information. The method may include:

[0218] S201: Local sparsity determination

[0219] The local sparsity (isSparse) of the symbol to be decoded bn is determined based on the occupancy information of the decoded neighboring nodes. For example, for child node 0, the local sparsity is determined by the occupancy number (NN) of the 12 decoded child nodes adjacent to the current child node in the negative xyz direction. If the occupancy number NN>1, the symbol is non-sparse (isSparse is 0), and if the occupancy number NN≤1, the symbol is sparse (isSparse is 1).

[0220] According to the value of isSparse (0 or 1), the context state can be divided into a sparse context state set and a non-sparse context state set.

[0221] S202: Inter-frame prediction determination

[0222] According to the occupancy information (predOcc) of the prediction node of the current node in the reference frame and the inter-frame prediction enable flag (isInter), it is determined whether to enable inter-frame prediction, that is, the value of isInter2 is determined.

[0223] isInter2=isInter&&predOcc, that is, the value of isInter2 is determined by isInter and predOcc, and predOcc is an identifier used to indicate whether the prediction node is occupied. Specifically, if at least one child node bPi is occupied in the prediction node, then predOcc is set to 1; conversely, if no child node is occupied, then predOcc is 0. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper-layer inter-frame prediction is enabled. If inter-frame prediction is enabled, it is called a P frame, and isInter is 1; conversely, if it is not enabled, it is called an I frame, and isInter is 0.

[0224] S203: Context state selection

[0225] First, the context state set to be used is determined based on whether it is sparse (isSparse). When the context state set is non-sparse, the non-sparse context state set (NSparse state) is used; when the context state set is sparse, the sparse context state set (Sparse state) is used. The context information in the non-sparse context state set and the sparse context state set can be constructed using the OBUF construction method or the dynamic OBUF construction method.

[0226] It should be noted that, compared to the prior art method for constructing inter-frame context information, 2 bits of inter-frame prediction information are added to the intra-frame context information. Each type of context information corresponds to a context state, and the number of inter-frame context states is four times the number of intra-frame context states, requiring a large amount of storage space. The inter-frame context construction method of the embodiment of the present application can adopt the same construction method as the intra-frame context, without the need to use inter-frame prediction information to participate in the construction, and different prediction modes can share the context state set. It is only necessary to select the target context state set based on the local sparse category, thereby reducing the number of context states, saving a large amount of storage space, and improving decoding efficiency.

[0227] Secondly, in the selected context state set, according to the context information of the child node to be decoded, the target context state of the child node to be decoded is obtained, that is, the probability P of the child node to be decoded occupying (or not occupying) in this context situation is obtained. S .

[0228] S204: Entropy decoding parameter selection

[0229] First, for intra-frame prediction mode, the entropy decoding parameter set used is determined based on the local sparsity category, also known as a decoder group. Each decoder contains corresponding entropy decoding parameters, which can also be understood as a context state. The context state set includes a large number of context states, while the decoder group contains a streamlined context state. The target entropy decoding parameter set is selected based on the mapping relationship between the context state set and the entropy decoding parameter set, where the mapping relationship can be one-to-one, one-to-many, or many-to-one.

[0230] For inter-frame prediction mode, the entropy decoding parameter set to be used is determined based on the occupancy information of the predicted sub-nodes. The specific method is shown in Figure 9.

[0231] For the intra prediction mode, if the non-sparse context state set (NSparse state) is used, it is determined to use the intra non-sparse entropy decoding parameter set (IntraNSparse Decoder); if the sparse context state set (Sparse state) is used, it is determined to use the intra sparse entropy decoding parameter set (IntraSparse Decoder).

[0232] For the inter-frame prediction mode, if the non-sparse context state (NSparse state) is used and the prediction subnode does not occupy Pred0, it is determined to use the inter-frame entropy decoding parameter set InterPred0Decoder; for the inter-frame prediction mode, and the prediction subnode occupies Pred1, it is determined to use the inter-frame entropy decoding parameter set InterPred1Decoder; for the inter-frame prediction mode, and the prediction subnode strongly occupies PredL, it is determined to use the inter-frame entropy decoding parameter set InterPredL Decoder.

[0233] For the inter-frame prediction mode, if a sparse context state is used and the prediction subnode does not occupy Pred0, it is determined to use the inter-frame entropy decoding parameter set InterPred0Decoder; for the inter-frame prediction mode, and the prediction subnode occupies Pred1, it is determined to use the inter-frame entropy decoding parameter set InterPred1Decoder; for the inter-frame prediction mode, and the prediction subnode strongly occupies PredL, it is determined to use the inter-frame entropy decoding parameter set InterPredL Decoder.

[0234] That is to say, for the inter-frame prediction mode, the sparse context state and the non-sparse context state share three entropy decoding parameter sets, and the entropy decoding parameter set is selected only according to the prediction of non-occupancy, occupation, and strong occupation, so as to make full use of the correlation between the inter-frame sparse context state and the inter-frame non-sparse context state and improve the accuracy of inter-frame prediction.

[0235] Specifically, based on the occupancy information of the predicted child nodes, the information determined to be inter-frame prediction (isInter2=1) is divided into the following categories:

[0236] a) Pred0: When the child node i is predicted to be empty, the current child node i is predicted to not occupy bPi=0.

[0237] b) Pred1: When the predicted child node i is not empty, the current child node i is predicted to occupy bPi = 1. At this time, there are two cases based on the number of occupied nodes (Npred) contained in the predicted child node i:

[0238] i.predL=1: When the predicted child node i is not empty and the number of occupied nodes (Npred) therein exceeds the first threshold th, the current child node i is strongly occupied.

[0239] ii. predL=0: When the predicted child node i is not empty and the number of occupied nodes (Npred) therein does not exceed the first threshold th, the child node i is not strongly occupied.

[0240] Secondly, in the determined decoder group, according to certain mapping rules, the context state P of bn is converted to S Mapped to decoder Ci. The mapping rule can be to take the high 5 bits of the context state, the value of which is the index value of the mapped decoder, and the probability of the mapped decoder Ci is P C .

[0241] S205: Adaptive arithmetic decoding

[0242] The probability P of using the determined decoder Ci C , perform adaptive arithmetic decoding on the occupancy information bn of the child node to be decoded.

[0243] The decoding method provided in the embodiments of the present application uses a shared decoder group for both locally sparse and locally non-sparse frames during inter-frame prediction. This method fully utilizes inter-frame prediction information to select the optimal decoder group for the current child node, and further selects the optimal entropy decoder for decoding based on context information, thereby improving decoding efficiency. Furthermore, inter-frame context information and intra-frame context information can be constructed using the same method, resulting in the same number of inter-frame context states as intra-frame context states, significantly reducing the number of inter-frame context states and saving storage space.

[0244] In another embodiment of the present application, referring to FIG14 , a schematic flow chart of an encoding method provided by an embodiment of the present application is shown. As shown in FIG14 , the method may include:

[0245] S301: Determine the local sparse category of the current child node based on the occupancy information of the encoded neighboring nodes of the current child node;

[0246] It should be noted that the encoding method in the embodiments of the present application is applied to a point cloud encoder. In other words, the encoding method can specifically refer to a point cloud encoding method, or a point cloud entropy encoding method. More specifically, the embodiments of the present application provide a point cloud encoding method based on context mapping, which reduces the number of context states, saves storage space, and improves encoding efficiency.

[0247] It should be noted that the current child node is any child node of the current node to be encoded. As shown in Figure 7, the current node includes 8 child nodes, and the scanning order of the child nodes is child node 0, child node 1, child node 2, child node 3, child node 4, child node 5, child node 6, and child node 7.

[0248] The local sparse category is used to indicate the local sparsity of the neighboring nodes encoded by the current child node. The local sparse category may include one or more sparse categories and one or more non-sparse categories. In some embodiments, the local sparse category of the current child node is determined based on the occupancy information of the neighboring nodes encoded by the current child node, including: determining the occupied number of neighboring nodes based on the occupancy information of the neighboring nodes; determining the local sparse category of the current child node based on the occupied number of neighboring nodes. In other words, based on the occupancy information of the neighboring nodes (i.e., whether they are occupied), the occupied number of neighboring nodes (i.e., the number of occupied neighboring nodes NN) can be determined, and different local sparse categories can be distinguished based on the occupied number.

[0249] For example, if the number of occupied neighbor nodes is greater than a second threshold, the local sparse category of the current child node is determined to be the first category; if the number of occupied neighbor nodes is less than or equal to the second threshold, the local sparse category of the current child node is determined to be the second category. For example, the first category can be a non-sparse category, and the second category can be a sparse category. In practical applications, more local sparse categories can also be included.

[0250] In an embodiment of the present application, the local sparsity of the current child node is determined by considering the occupancy information of the encoded neighboring nodes and the position of the child node relative to the parent node. Exemplarily, the neighboring nodes include at least one of the following: an encoded brother node of the current child node; an encoded neighboring child node in the first preset direction adjacent to the current child node; an encoded neighboring child node in the second preset direction adjacent to the current child node; an encoded neighboring child node in the third preset direction adjacent to the current child node. Among them, the first preset direction may refer to the negative direction of the x-axis of the current child node (the left direction), the second preset direction may refer to the negative direction of the y-axis of the current child node (the front direction), and the third preset direction may refer to the negative direction of the z-axis of the current child node (the bottom direction). In other words, the local sparsity category can be established according to the number of occupancy of the encoded neighboring nodes in the negative xyz direction adjacent to the current child node. It should be noted that the encoded neighboring nodes of the current child node are the same as or not exactly the same as the context node of the current node.

[0251] Exemplarily, the local sparse category is represented by isSparse, and different isSparse values ​​represent different local sparse categories. The value of isSparse of the child node to be encoded is determined according to the occupancy of the encoded neighboring nodes. Exemplarily, for the local sparse category of child node 0, it can be established according to the occupancy number (NN) of the 12 child nodes encoded in the negative xyz direction adjacent to the current child node in Figure 11. If the occupancy number NN>1 is non-sparse (isSparse is 0), and if the occupancy number NN≤1 is sparse (isSparse is 1). For the local sparse category of child node 1, it can be established according to the occupancy number (NN) of the 4 child nodes encoded in the negative y direction (Front) adjacent to the current child node in Figure 11. If the occupancy number NN>0, it is determined to be a non-sparse category. If the occupancy number NN=0, it is determined to be a sparse category. For child node 2, the local sparse category can be determined based on the occupancy number (NN) of the four encoded child nodes in the negative z direction (Bottom) adjacent to the current child node in Figure 11. If NN>0, it is determined to be a non-sparse category. If NN=0, it is determined to be a sparse category. For child node 3, the local sparse category can be determined based on the NN of the three nodes bit0+bit1+bit2 and the seven nodes encoded in the negative x direction (Left) adjacent to the current child node in Figure 11. If NN>1, it is determined to be a non-sparse category. If NN≤1, it is determined to be a sparse category.

[0252] S302: Determine a target context state set for the current child node according to the local sparse category, where the target context state set includes one or more context states, and each context state corresponds to corresponding context information;

[0253] It should be noted that different local sparsity categories correspond to different context state sets. Corresponding context state sets can be configured in advance for different local sparsity categories, and then the target context state set of the current child node can be determined based on the local sparsity category of the current child node.

[0254] Exemplarily, when the local sparse category is the first category, the target context state set is determined to be the first context state set; when the local sparse category is the second category, the target context state set is determined to be the second context state set. In practical applications, more context state sets may also be included. The first context state set includes one or more context states of the first category, each context state corresponds to the context information of the first category, and the second context state set includes one or more context states of the second category, each context state corresponds to the context information of the second category.

[0255] It should also be noted that the context state and the context information correspond one to one, the context state set may include the correspondence between the context information and the context state, and the context state set may also include the correspondence between the identification information of the context information and the context state. The context information is used as the index information of the context state set to index the corresponding context state, the context information is used to characterize the occupancy of the context node of the sub-node to be encoded, and may also be called the context of the sub-node to be encoded, and the context state is used to represent the first probability of the sub-node to be encoded being occupied or not occupied under a certain context information, and may also be called the probability model of the sub-node to be encoded. For example, when the number of bits of the context information is 19, there are at most 2 19 context states, the bits of context information are 16 bits, and there are at most 2 16 contextual state.

[0256] It should also be noted that in the embodiment of the present application, there is no need to set different context state sets for different prediction modes. Different prediction modes can share context state sets. It is only necessary to select the target context state set based on the local sparse category. As shown in Figure 9, compared with the prior art, the context state is divided into 4 sets, including the intra-frame non-sparse context state set (IntraNSparse state), the inter-frame non-sparse context state set (InterNSparse state), the intra-frame sparse context state set (IntraSparse state), and the inter-frame sparse context state set (InterSparse state), the embodiment of the present application only needs to divide the context state into 2 sets, including the non-sparse context state set (NSparse state) and the sparse context state set (Sparse state), which greatly reduces the number of context states and saves a lot of storage space. In addition, the construction method of the inter-frame context information and the intra-frame context information in the embodiment of the present application is exactly the same. There is no need to use inter-frame prediction information to participate in the context information construction, which can also reduce the number of context states.

[0257] In some embodiments, the method further includes: constructing multiple types of context information in a context state set based on the occupancy information of the context nodes and the first construction strategy, and initializing the context state of each type of context information. Specifically, the multiple types of context information in the first context state set are constructed based on the occupancy information of the context nodes of the first category and the first construction strategy; and the multiple types of context information in the second context state set are constructed based on the occupancy information of the context nodes of the second category and the first construction strategy.

[0258] S303: Determine the target context state of the current child node from the target context state set according to the context information of the current child node;

[0259] The context information of the current child node represents the occupancy of the context node of the current child node. The context state is the probability of the current child node being occupied or unoccupied given the current context information. The target context state set records the context states corresponding to one or more types of context information. The target context state of the current child node is determined by indexing the target context state set using the context information of the current child node.

[0260] In some embodiments, the method further comprises: determining context information of the current child node based on occupancy information of the encoded context node of the current child node.

[0261] Exemplarily, the context node includes at least one of the following: the encoded sibling node of the current child node; the encoded neighbor child node with which the current child node is coplanar, co-edge, or co-pointed; the encoded neighbor parent node with which the current child node is coplanar or co-edgeed; and the current child node's other encoded neighbor nodes. The context node scanning order can be: the encoded sibling node of the current child node > the encoded coplanar child node neighbors of the current child node > the encoded co-edge child node neighbors of the current child node > the encoded co-point child node neighbors of the current child node > the encoded other child node neighbors of the current child node > the encoded coplanar parent node neighbors of the current child node > the encoded co-edge parent node neighbors of the current child node > the other 20 encoded parent node neighbors. Context information is constructed for the child node to be encoded based on the scanning order and occupancy information.

[0262] Exemplarily, the context information of the current child node is determined based on the occupancy information of the encoded context node of the current child node and the first construction strategy.

[0263] The first construction strategy is used to indicate how to generate context information based on the occupancy information of the context node. The first construction strategy may include: constructing the context information based on a preset context node scanning order and the context node occupancy information; or constructing first and second context information based on a preset context information composition structure and the context node occupancy information; the first information has a fixed number of bits, while the second information has an adjustable number of bits. The first information may be primary information, the second information may be secondary information, and whether part of the secondary information is dynamically adjusted as context information.

[0264] S304: Determine a target entropy coding parameter set for the current child node according to the prediction mode of the current child node;

[0265] In the embodiment of the present application, the prediction mode includes an intra-frame prediction mode and an inter-frame prediction mode, and different prediction modes correspond to different entropy coding parameter sets. The intra-frame prediction mode corresponds to one or more intra-frame entropy coding parameter sets, while the inter-frame prediction mode corresponds to one or more inter-frame entropy coding parameter sets.

[0266] The target entropy coding parameter set includes multiple entropy coding parameters, each of which is a parameter used when entropy coding the occupancy information of a child node. In some embodiments, the entropy coding parameter may be an arithmetic coding parameter, and adaptive arithmetic coding is performed on the occupancy information of the child node based on the arithmetic coding parameter. Exemplarily, the arithmetic coding parameter may be the probability of the current child node being occupied or unoccupied under the current context information.

[0267] In some embodiments, a method for determining the prediction mode of the current child node may include: determining whether the current node allows the inter-frame prediction mode to be enabled based on the value of the first syntax element; if the current node allows the inter-frame prediction mode to be enabled, determining the occupancy information of the prediction node of the current node in the reference frame; and determining whether the child node of the current node enables the inter-frame prediction mode based on the occupancy information of the prediction node, wherein the current child node is any child node within the current node.

[0268] Whether the inter-frame prediction mode is enabled for the current child node is related to the value of the first syntax element and the occupancy information of the prediction node of the current node (the parent node of the current child node). The first syntax element serves as an enable flag for inter-frame prediction, and is used to indicate whether the upper-layer inter-frame prediction is enabled. In some embodiments, the value of the first syntax element is a first numerical value, which determines that the current node allows the inter-frame prediction mode to be enabled; the value of the first syntax element is a second numerical value, which determines that the current node does not allow the inter-frame prediction mode to be enabled. Exemplarily, the first syntax element identifier includes at least a frame-level syntax element, and the value of the first syntax element is 1, which allows the inter-frame prediction to be enabled; the value of the first syntax element is 0, which does not allow the inter-frame prediction to be enabled.

[0269] For example, the occupancy information has a value of 0 for not occupied and 1 for occupied. That is, when the prediction node is occupied, the current node enables inter-frame prediction, making full use of the inter-frame prediction information to improve prediction accuracy. Otherwise, inter-frame prediction is not enabled.

[0270] The occupancy status of a predicted node is related to the occupancy status of its child nodes. In some embodiments, the method further includes: determining occupancy information for multiple predicted child nodes in the predicted node; if the occupancy information of at least one predicted child node in the predicted node indicates occupied, determining the occupancy information of the predicted node indicates occupied; otherwise, determining the occupancy information of the predicted node indicates unoccupied. In other words, if at least one child node in the predicted node is occupied, the value of its occupancy information is set to 1; conversely, if no child node is occupied, the value of its occupancy information is set to 0.

[0271] In some embodiments, determining a target entropy coding parameter set for the current child node based on the prediction mode of the current child node includes: when the current child node enables inter-frame prediction mode, determining the target entropy coding parameter set from a candidate inter-frame entropy coding parameter set, wherein the candidate inter-frame entropy coding parameter set includes one or more inter-frame entropy coding parameter sets; and when the current child node enables intra-frame prediction mode, determining the target entropy coding parameter set from a candidate intra-frame entropy coding parameter set, wherein the candidate intra-frame entropy coding parameter set includes one or more intra-frame entropy coding parameter sets. In other words, one or more entropy coding parameter sets can be pre-configured for different inter-frame prediction situations, and when the inter-frame prediction mode is enabled, a matching target entropy coding parameter set is selected based on the actual inter-frame prediction situation to improve the accuracy of intra-frame prediction. Alternatively, one or more entropy coding parameter sets can be pre-configured for different inter-frame prediction situations, and when the intra-frame prediction mode is enabled, a matching target entropy coding parameter set is selected based on the actual intra-frame prediction situation to improve the accuracy of intra-frame prediction.

[0272] In some embodiments, determining a target entropy coding parameter set from a candidate inter-frame entropy coding parameter set includes: determining the target entropy coding parameter set from the candidate inter-frame entropy coding parameter set based on occupancy information of a predicted sub-node of a current sub-node in a reference frame.

[0273] The predicted child node is the co-located child node of the current child node in the predicted node. The predicted node is the predicted node of the current node in the reference frame. The predicted information of the current node is determined based on the occupancy information of the predicted node. The predicted node includes multiple predicted child nodes. Furthermore, the predicted information of the current child node can be determined based on the occupancy information of the co-located predicted child nodes of the current child node. Occupancy information is also called placeholder information or placeholder symbol. The value of occupancy information is 0 or 1, with 0 indicating no occupancy and 1 indicating occupancy.

[0274] Exemplarily, determining a target entropy coding parameter set from a candidate inter-frame entropy coding parameter set based on occupancy information of a predicted subnode of a current subnode in a reference frame includes: when the occupancy information of the predicted subnode indicates non-occupancy, determining the target entropy coding parameter set as the first inter-frame entropy coding parameter set; and when the occupancy information of the predicted subnode indicates occupation, determining the target entropy coding parameter set based on the occupancy strength of the predicted subnode. That is, the occupancy strength includes one or more strengths, and when the predicted subnode is occupied, the entropy coding parameter set is further determined based on the occupancy strength.

[0275] Exemplarily, the target entropy coding parameter set is determined based on the occupancy intensity of the predicted sub-node, including: when the occupancy intensity of the predicted sub-node is a first intensity, determining the target entropy coding parameter set as a second inter-frame entropy coding parameter set; when the occupancy intensity of the predicted sub-node is a second intensity, determining the target entropy coding parameter set as a third inter-frame entropy coding parameter set.

[0276] That is, an entropy coding parameter set is assigned to the current child node based on the predicted occupancy of the child node, wherein the first entropy coding parameter set includes multiple entropy coding parameters of the current child node when the predicted child node is not occupied, the second entropy coding parameter set includes multiple entropy coding parameters of the current child node when the predicted child node is occupied, and the third entropy coding parameter set includes multiple entropy coding parameters of the current child node when the predicted child node is strongly occupied. In an embodiment of the present application, for inter-frame prediction, an entropy coding parameter set is selected based on whether the current child node is predicted to be unoccupied, occupied, or strongly occupied, making full use of the correlation between the sparse context state and the non-sparse context state between the inter-frames to improve the accuracy of inter-frame prediction.

[0277] Exemplarily, the occupancy strength of the predicted child node is related to the number of occupied nodes in the predicted child node. Exemplarily, when the number of occupied nodes in the predicted child node is greater than a first threshold, the occupancy strength is determined to be strongly occupied (i.e., a first strength); when the number of occupied nodes in the predicted child node is less than or equal to the first threshold, the occupancy strength is determined to be occupied (i.e., a second strength).

[0278] In some other embodiments, determining the target entropy coding parameter set from the candidate inter-frame entropy coding parameter set includes: determining the target entropy coding parameter set from the candidate inter-frame entropy coding parameter set according to the local sparsity category.

[0279] For example, when the local sparsity category is the first category, the target entropy coding parameter set is determined to be the fourth inter-frame entropy coding parameter set; when the local sparsity category is the second category, the target entropy coding parameter set is determined to be the fifth inter-frame entropy coding parameter set. In other words, when the current child node enables inter-frame prediction mode, an inter-frame entropy coding parameter set can also be assigned based on the local sparsity category of the current child node.

[0280] Exemplarily, determining a target entropy coding parameter set from a candidate inter-frame entropy coding parameter set may further include: determining a target entropy coding parameter set corresponding to a target context state set based on a first mapping relationship, wherein the first mapping relationship includes a mapping relationship between one or more context state sets and an inter-frame entropy coding parameter set.

[0281] In some embodiments, determining the target entropy coding parameter set from the candidate intra-frame entropy coding parameter set includes: determining the target entropy coding parameter set from the candidate intra-frame entropy coding parameter set according to the local sparsity category.

[0282] Exemplarily, when the local sparsity category is the first category, the target entropy coding parameter set is determined to be the first intra-frame entropy coding parameter set; when the local sparsity category is the second category, the target entropy coding parameter set is determined to be the second intra-frame entropy coding parameter set. That is, when the intra prediction mode is enabled for the current child node, an intra-frame entropy coding parameter set is allocated based on the local sparsity category of the current child node. The first intra-frame entropy coding parameter set may include multiple entropy coding parameters corresponding to the first category, and the second intra-frame entropy coding parameter set may include multiple entropy coding parameters corresponding to the second category.

[0283] Exemplarily, determining a target entropy coding parameter set from a candidate intra-frame entropy coding parameter set may further include: determining a target entropy coding parameter set corresponding to a target context state set based on a second mapping relationship, wherein the second mapping relationship includes a mapping relationship between one or more context state sets and an intra-frame entropy coding parameter set.

[0284] S305: Determine the target entropy coding parameter of the current child node from the target entropy coding parameter set according to the target context state;

[0285] Wherein, one or more context information corresponds to a context state, and the context state is used to index the corresponding target entropy coding parameter. In some embodiments, the target entropy coding parameter of the current child node is determined from the target entropy coding parameter set based on the target context state, including: determining the index value of the target entropy coding parameter based on the target context state and the target mapping relationship; and determining the target entropy coding parameter of the current child node from the target entropy coding parameter set based on the index value of the target entropy coding parameter. That is, in the target entropy coding parameter set, the context state is mapped to the index value of a certain entropy coding parameter according to a certain mapping rule to index the target entropy coding parameter.

[0286] It should be noted that the mapping relationship between different context state sets and entropy coding parameter sets can be the same or different. Exemplarily, the target mapping relationship may include: determining the index value of the target encoder based on the upper M bits of the context state; wherein M is related to the number of parameters in the target entropy coding parameter set. Exemplarily, when the number of parameters N in the target entropy coding parameter set is 32, the upper 5 bits of the context state are used, and the value of the upper 5 bits is the index value of the target entropy coding parameter.

[0287] In some embodiments, the entropy coding parameter may be an arithmetic coding parameter, and the occupancy information of the child node is adaptively arithmetically coded according to the arithmetic coding parameter. Exemplarily, the arithmetic coding parameter may be the probability that the current child node is occupied or not occupied under the current context information. Exemplarily, the context state is the first probability that the current child node is occupied or not occupied under the current context information, and may also be referred to as the first probability model of the child node. The target entropy coding parameter is the second probability that the current child node is occupied or not occupied under the current context information, and may also be referred to as the second probability model of the child node. Therefore, the entropy coding parameter may also be understood as a context state, and the entropy coding parameter set may also be understood as a streamlined context state set.

[0288] When the number of bits of context information is 19, a maximum of 2 19 context states, the bits of context information are 16 bits, up to 2 16 context states, and the number of parameters in the target entropy decoding parameter set is much smaller than the number of context states. In the embodiment of the present application, the target context state set contains a large number of context states. If these context states are directly used for entropy coding, the coding efficiency is low. The target entropy coding parameter set contains a small number of entropy coding parameters. The large number of context states in the target context state set is mapped to the small number of entropy coding parameters in the target entropy coding parameter set, thereby streamlining the entropy coding parameters and improving the coding efficiency.

[0289] S306: Perform entropy coding on the occupancy information of the current child node according to the target entropy coding parameter, and write the obtained coding bits into the bitstream.

[0290] In some embodiments, the method further includes: updating target entropy coding parameters and context state according to occupancy information of the current child node.

[0291] Based on the above embodiment, the encoding method provided in the embodiment of the present application is further illustrated. As shown in FIG15 , the encoding method is specifically a method for encoding point cloud geometric information. The method may include:

[0292] S401: Local sparsity determination

[0293] The local sparsity (isSparse) of the symbol to be encoded bn is determined based on the occupancy information of the encoded neighboring nodes. For example, for child node 0, the local sparsity is determined by the occupancy number (NN) of the 12 encoded child nodes adjacent to the current child node in the negative xyz direction. If the occupancy number NN>1, the symbol is non-sparse (isSparse is 0), and if the occupancy number NN≤1, the symbol is sparse (isSparse is 1).

[0294] According to the value of isSparse (0 or 1), the context state can be divided into a sparse context state set and a non-sparse context state set.

[0295] S402: Inter-frame prediction determination

[0296] According to the occupancy information (predOcc) of the prediction node of the current node in the reference frame and the inter-frame prediction enable flag (isInter), it is determined whether to enable inter-frame prediction, that is, the value of isInter2 is determined.

[0297] isInter2=isInter&&predOcc, that is, the value of isInter2 is determined by isInter and predOcc, and predOcc is an identifier used to indicate whether the prediction node is occupied. Specifically, if at least one child node bPi is occupied in the prediction node, then predOcc is set to 1; conversely, if no child node is occupied, then predOcc is 0. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper-layer inter-frame prediction is enabled. If inter-frame prediction is enabled, it is called a P frame, and isInter is 1; conversely, if it is not enabled, it is called an I frame, and isInter is 0.

[0298] S403: Context state selection

[0299] First, the context state set to be used is determined based on whether it is sparse (isSparse). When the context state set is non-sparse, the non-sparse context state set (NSparse state) is used; when the context state set is sparse, the sparse context state set (Sparse state) is used. The context information in the non-sparse context state set and the sparse context state set can be constructed using the OBUF construction method or the dynamic OBUF construction method.

[0300] It should be noted that, compared to the prior art method for constructing inter-frame context information, 2 bits of inter-frame prediction information are added to the intra-frame context information. Each type of context information corresponds to a context state, and the number of inter-frame context states is 4 times the number of intra-frame context states, requiring a large amount of storage space. The inter-frame context construction method of the embodiment of the present application can adopt the same construction method as the intra-frame context, without the need to use inter-frame prediction information to participate in the construction, and different prediction modes can share the context state set. It is only necessary to select the target context state set based on the local sparse category, thereby reducing the number of context states, saving a large amount of storage space, and improving coding efficiency.

[0301] Secondly, in the selected context state set, according to the occupation information of the context node of the sub-node to be encoded, the target context state of the sub-node to be encoded is obtained, that is, the probability P of the sub-node to be encoded occupying (or not occupying) in this context situation is obtained. S .

[0302] S404: Entropy coding parameter selection

[0303] First, for intra-frame prediction mode, the entropy coding parameter set used is determined based on the local sparsity category, also known as an encoder group. Each encoder contains corresponding entropy coding parameters, which can also be understood as a context state. The context state set includes a large number of context states, while the encoder group contains a simplified context state. The target entropy coding parameter set is selected based on the mapping relationship between the context state set and the entropy coding parameter set, where the mapping relationship can be one-to-one, one-to-many, or many-to-one.

[0304] For inter-frame prediction mode, the entropy coding parameter set to be used is determined based on the occupancy information of the predicted sub-nodes. The specific method is shown in Figure 9.

[0305] For the inter-frame prediction mode, if a non-sparse context state (NSparse state) is used and the prediction subnode does not occupy Pred0, it is determined to use the inter-frame entropy coding parameter set InterPred0 Coder; for the inter-frame prediction mode, and the prediction subnode occupies Pred1, it is determined to use the inter-frame entropy coding parameter set InterPred1 Coder; for the inter-frame prediction mode, and the prediction subnode strongly occupies PredL, it is determined to use the inter-frame entropy coding parameter set InterPredL Coder.

[0306] For the inter-frame prediction mode, if a sparse context state is used and the prediction subnode does not occupy Pred0, it is determined to use the inter-frame entropy coding parameter set InterPred0 Coder; for the inter-frame prediction mode, and the prediction subnode occupies Pred1, it is determined to use the inter-frame entropy coding parameter set InterPred1 Coder; for the inter-frame prediction mode, and the prediction subnode strongly occupies PredL, it is determined to use the inter-frame entropy coding parameter set InterPredL Coder.

[0307] That is to say, for the inter-frame prediction mode, the sparse context state and the non-sparse context state share three entropy coding parameter sets, and the entropy coding parameter set is selected only according to the prediction of non-occupancy, occupation, and strong occupation, so as to make full use of the correlation between the inter-frame sparse context state and the inter-frame non-sparse context state and improve the accuracy of inter-frame prediction.

[0308] Specifically, based on the occupancy information of the predicted child nodes, the information determined to be inter-frame prediction (isInter2=1) is divided into the following categories:

[0309] a) Pred0: When the child node i is predicted to be empty, the current child node i is predicted to not occupy bPi=0.

[0310] b) Pred1: When the predicted child node i is not empty, the current child node i is predicted to occupy bPi = 1. At this time, there are two cases based on the number of occupied nodes (Npred) contained in the predicted child node i:

[0311] i.predL=1: When the predicted child node i is not empty and the number of occupied nodes (Npred) therein exceeds the first threshold th, the current child node i is strongly occupied.

[0312] ii. predL=0: When the predicted child node i is not empty and the number of occupied nodes (Npred) therein does not exceed the first threshold th, the child node i is not strongly occupied.

[0313] Secondly, in the determined encoder group, according to certain mapping rules, the context state P of bn is converted to S Mapped to encoder Ci. The mapping rule can be to take the high 5 bits of the context state, and the size of its value is the index value of the mapped encoder. The probability of the mapped encoder Ci is P C .

[0314] S405: Adaptive arithmetic coding

[0315] The probability P of using the determined encoder Ci C , perform adaptive arithmetic coding on the occupancy information bn of the child node to be encoded.

[0316] Using this technical solution, different prediction modes can share a common context state set. Only the target context state set needs to be selected based on the local sparsity category, reducing the number of context states and saving significant storage space. For inter-frame prediction, sparse and non-sparse context states share a decoder group, fully utilizing inter-frame prediction information to select the target entropy decoding parameter set, further improving G-PCC geometric coding efficiency.

[0317] Furthermore, the technical solution provided in the embodiment of the present application was subjected to performance testing. Table 9 shows the BD-Rate representation under the condition of lossy compression of geometric information. Compared with the prior art, while achieving the same encoding quality, the encoding bit rate of the present application is saved (BD-Rate is a negative value) or increased (BD-Rate is a positive value) by a percentage compared with the encoding bit rate of the prior art.

[0318] Table 9 BD-Rate of GES-TM-v3.0 lossy compression

[0319] In another embodiment of the present application, based on the same inventive concept as the above embodiment, see FIG16 , which shows a schematic diagram of the structure of a point cloud encoder provided by the embodiment of the present application. As shown in FIG16 , the point cloud encoder 160 may include: a first determining unit 1601, a second determining unit 1602 and an encoding unit 1603; wherein,

[0320] A first determining unit 1601 is configured to determine a local sparsity category of the current child node based on occupancy information of encoded neighboring nodes of the current child node; and determine a target context state set for the current child node based on the local sparsity category, wherein the target context state set includes one or more context states, each context state corresponding to corresponding context information;

[0321] The first determining unit 1601 is further configured to determine a target context state of the current child node from the target context state set according to the context information of the current child node;

[0322] The second determining unit 1602 is configured to determine a target entropy coding parameter set for the current child node according to the prediction mode of the current child node; and determine a target entropy coding parameter for the current child node from the target entropy coding parameter set according to the target context state;

[0323] The encoding unit 1603 is configured to perform entropy encoding on the occupancy information of the current child node according to the target entropy encoding parameter, and write the obtained encoding bits into the bitstream.

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

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

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

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

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

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

[0330] A first memory 1702 is used to store computer programs that can be run on the first processor 1703;

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

[0332] Determine the local sparse category of the current child node based on the occupancy information of the encoded neighboring nodes of the current child node;

[0333] Determine a target context state set for the current child node according to the local sparse category, wherein the target context state set includes one or more context states, and each context state corresponds to corresponding context information;

[0334] Determine the target context state of the current child node from the target context state set according to the context information of the current child node;

[0335] Determine the target entropy coding parameter set of the current child node according to the prediction mode of the current child node;

[0336] Determine the target entropy coding parameter of the current child node from the target entropy coding parameter set according to the target context state;

[0337] The occupancy information of the current child node is entropy-encoded according to the target entropy coding parameter, and the obtained coded bits are written into the bitstream.

[0338] It is understood that the first memory 1702 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 1702 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0339] The first processor 1703 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 1703. The above-mentioned first processor 1703 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 1702 , and the first processor 1703 reads the information in the first memory 1702 and completes the steps of the above method in combination with its hardware.

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

[0341] Optionally, as another embodiment, the first processor 1703 is further configured to execute the encoding method of any one of the aforementioned embodiments when running the computer program.

[0342] This embodiment provides a point cloud encoder in which different prediction modes can share a common context state set. This reduces the number of context states and saves significant storage space by simply selecting a target context state set based on local sparsity categories. Furthermore, a larger number of context states in the target context state set are mapped to a smaller number of entropy coding parameters in a target entropy coding parameter set, thereby streamlining the entropy coding parameters, reducing the bitrate, and improving coding efficiency.

[0343] The present application also provides a computer-readable storage medium that stores a bitstream generated by the encoding method of any of the aforementioned embodiments. The bitstream is generated by bit-encoding information to be encoded, wherein the information to be encoded includes at least information such as the occupancy of a current child node.

[0344] 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 decoder provided by the embodiment of the present application. As shown in FIG18 , the point cloud decoder 180 may include: a third determination unit 1801, a fourth determination unit 1802 and a decoding unit 1803; wherein,

[0345] The third determining unit 1801 is configured to determine a local sparsity category of the current child node based on the occupancy information of the decoded neighboring nodes of the current child node; and determine a target context state set for the current child node based on the local sparsity category, wherein the target context state set includes one or more context states, each context state corresponding to corresponding context information;

[0346] The third determining unit 1801 is further configured to determine the target context state of the current child node from the target context state set according to the context information of the current child node;

[0347] The fourth determining unit 1802 is configured to determine a target entropy decoding parameter set for the current child node according to the prediction mode of the current child node; and determine a target entropy decoding parameter for the current child node from the target entropy decoding parameter set according to the target context state;

[0348] The decoding unit 1803 is configured to perform entropy decoding on the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.

[0349] It can be understood that each functional unit of the point cloud decoder also executes the decoding method of any one of the aforementioned embodiments.

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

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

[0352] Based on the composition of the above-mentioned point cloud decoder 180 and the computer-readable storage medium, refer to Figure 19, which shows a specific hardware structure diagram of the point cloud decoder 180 provided in an embodiment of the present application. As shown in Figure 19, the point cloud decoder 180 may include: a second communication interface 1901, a second memory 1902 and a second processor 1903; each component is coupled together through a second bus system 1904. It can be understood that the second bus system 1904 is used to realize the connection and communication between these components. In addition to the data bus, the second 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 marked as the second bus system 1904 in Figure 19. Among them,

[0353] The second communication interface 1901 is used for sending and receiving signals during the process of sending and receiving information between other external network elements;

[0354] The second memory 1902 is used to store computer programs that can be run on the second processor 1903;

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

[0356] Determine the local sparse category of the current child node based on the occupancy information of the decoded neighbor nodes of the current child node;

[0357] Determine a target context state set for the current child node according to the local sparse category, wherein the target context state set includes one or more context states, and each context state corresponds to corresponding context information;

[0358] Determine the target context state of the current child node from the target context state set according to the context information of the current child node;

[0359] Determine the target entropy decoding parameter set of the current child node according to the prediction mode of the current child node;

[0360] Determine the target entropy decoding parameter of the current child node from the target entropy decoding parameter set according to the target context state;

[0361] The bitstream is entropy decoded according to the target entropy decoding parameter to determine the occupancy information of the current child node.

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

[0363] It can be understood that the hardware functions of the second memory 1902 are similar to those of the first memory 1702, and the hardware functions of the second processor 1903 are similar to those of the first processor 1703; they will not be described in detail here.

[0364] This embodiment further provides a computer program product, including a computer program or instructions. When the computer program or instructions are executed by a processor, the encoding method or decoding method of any one of the aforementioned embodiments is executed.

[0365] This embodiment provides a point cloud decoder in which different prediction modes can share a common context state set. This reduces the number of context states and saves significant storage space by simply selecting a target context state set based on local sparsity categories. Furthermore, a larger number of context states in the target context state set are mapped to a smaller number of entropy decoding parameters in the target entropy decoding parameter set, improving decoding efficiency.

[0366] In another embodiment of the present application, referring to Figure 20 , which shows a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application. As shown in Figure 20 , the coding and decoding system 200 may include a point cloud encoder 2001 and a point cloud decoder 2002 .

[0367] In an embodiment of the present application, the point cloud encoder 2001 may be the point cloud encoder described in any one of the aforementioned embodiments, and the point cloud decoder 2002 may be the point cloud decoder described in any one of the aforementioned embodiments.

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

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

[0370] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined, if they do not conflict, to obtain new method embodiments. The features disclosed in the several product embodiments provided in this application can be arbitrarily combined, if they do not conflict, to obtain new product embodiments. The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined, if they do not conflict, to obtain new method embodiments or device embodiments.

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

[0372] In an embodiment of the present application, whether at the encoding end or the decoding end, the target context state set of the current child node is determined based on the local sparse category of the current child node, wherein the target context state set includes one or more context states, each context state corresponding to corresponding context information; based on the context information of the current child node, the target context state of the current child node is determined from the target context state set; then, based on the prediction mode of the current child node, the target entropy coding / decoding parameter set of the current child node is determined; based on the target context state, the target entropy coding / decoding parameters of the current child node are determined from the target entropy coding / decoding parameter set, and the occupancy information of the current child node is entropy coded / decoded according to the target entropy coding / decoding parameters. In this way, different prediction modes can share the context state set, and only the target context state set needs to be selected based on the local sparse category, thereby reducing the number of context states and saving a large amount of storage space. Furthermore, a large number of context states in the target context state set are mapped to a certain number of entropy coding / decoding parameters in the target entropy coding / decoding parameter set, thereby improving encoding and decoding efficiency.

Claims

1. A decoding method, applied to a point cloud decoder, the method comprising: Determining a local sparsity category of the current child node according to the occupancy information of the decoded neighbor nodes of the current child node; Determining a target context state set of the current child node according to the local sparsity category, wherein the target context state set includes one or more context states, and each context state corresponds to corresponding context information; Determining the target context state of the current child node from the target context state set according to the context information of the current child node; Determining a target entropy decoding parameter set of the current child node according to the prediction mode of the current child node; Determining the target entropy decoding parameter of the current child node from the target entropy decoding parameter set according to the target context state; Performing entropy decoding on the bitstream according to the target entropy decoding parameter to determine the occupancy information of the current child node.

2. The method according to claim 1, wherein, The determining a local sparsity category of the current child node according to the occupancy information of the decoded neighbor nodes of the current child node includes: Determining the occupancy quantity of the neighbor nodes according to the occupancy information of the neighbor nodes; Determining the local sparsity category of the current child node according to the occupancy quantity of the neighbor nodes.

3. The method according to claim 1, wherein The determining a target context state set of the current child node according to the local sparsity category includes: When the local sparsity category is the first category, determining the target context state set as the first context state set; When the local sparsity category is the second category, determining the target context state set as the second context state set.

4. The method according to claim 1, wherein The method further includes: Determining the context information of the current child node according to the occupancy information of the decoded context nodes of the current child node.

5. The method according to any one of claims 1 to 4, wherein The determining a target entropy decoding parameter set of the current child node according to the prediction mode of the current child node includes: When the current child node enables the inter-frame prediction mode, determining the target entropy decoding parameter set from a candidate inter-frame entropy decoding parameter set, wherein the candidate inter-frame entropy decoding parameter set includes one or more inter-frame entropy decoding parameter sets; When the current child node enables the intra-frame prediction mode, determining the target entropy decoding parameter set from a candidate intra-frame entropy decoding parameter set, wherein the candidate intra-frame entropy decoding parameter set includes one or more intra-frame entropy decoding parameter sets.

6. The method according to claim 5, wherein, The determining the target entropy decoding parameter set from the candidate inter-frame entropy decoding parameter set includes: determining the target entropy decoding parameter set from the candidate inter-frame entropy decoding parameter set according to the occupancy information of the predicted child node of the current child node in the reference frame.

7. The method according to claim 6, wherein, The determining the target entropy decoding parameter set from the candidate inter-frame entropy decoding parameter set according to the occupancy information of the predicted child node of the current child node in the reference frame includes: When the occupancy information of the predicted child node indicates non-occupancy, determining the target entropy decoding parameter set as the first inter-frame entropy decoding parameter set; When the occupancy information of the predicted sub - node is represented as occupied, determine the set of target entropy decoding parameters according to the occupancy strength of the predicted sub - node, where different occupancy strengths correspond to different sets of inter - frame entropy decoding parameters.

8. The method according to claim 7, wherein, The determining the set of target entropy decoding parameters according to the occupancy strength of the predicted sub - node includes: When the occupancy strength of the predicted sub - node is the first strength, determine the set of target entropy decoding parameters as the second set of inter - frame entropy decoding parameters; When the occupancy strength of the predicted sub - node is the second strength, determine the set of target entropy decoding parameters as the third set of inter - frame entropy decoding parameters.

9. The method according to claim 5, wherein The determining the set of target entropy decoding parameters from the candidate set of intra - frame entropy decoding parameters includes: Determine the set of target entropy decoding parameters from the candidate set of intra - frame entropy decoding parameters according to the local sparsity category.

10. The method according to claim 5, wherein, The method further includes: Determine whether the current node allows enabling the inter - frame prediction mode according to the value of the first syntax element; When the current node allows enabling the inter - frame prediction mode, determine the occupancy information of the prediction node of the current node in the reference frame; Determine whether the child node of the current node enables the inter - frame prediction mode according to the occupancy information of the prediction node, where the current child node is any child node within the current node.

11. The method according to any one of claims 1 to 10, wherein, The determining the target entropy decoding parameter of the current child node from the set of target entropy decoding parameters according to the target context state includes: Determine the index value of the target entropy decoding parameter according to the target context state and the target mapping relationship; Determine the target entropy decoding parameter of the current child node from the set of target entropy decoding parameters according to the index value of the target entropy decoding parameter.

12. The method according to claim 1, wherein, The target context state includes the first probability that the current child node occupies or does not occupy under the context information, and the target entropy decoding parameter includes the second probability that the current child node occupies or does not occupy under the context information.

13. The method according to claim 12, wherein, After determining the occupancy information of the current child node by performing entropy decoding on the bitstream according to the target entropy decoding parameter, the method further includes: Update the target context state and the target entropy decoding parameter according to the occupancy information of the current child node.

14. An encoding method applied to a point cloud encoder, the method includes: Determine the local sparsity category of the current child node according to the occupancy information of the already - encoded neighbor nodes of the current child node; Determine the set of target context states of the current child node according to the local sparsity category, where the set of target context states includes one or more context states, and each context state corresponds to corresponding context information; Determine the target context state of the current child node from the set of target context states according to the context information of the current child node; Determine the set of target entropy encoding parameters of the current child node according to the prediction mode of the current child node; Determine the target entropy encoding parameter of the current child node from the set of target entropy encoding parameters according to the target context state. Entropy-encode the occupancy information of the current child node according to the target entropy encoding parameters, and write the obtained encoded bits into the bitstream.

15. The method according to claim 14, wherein, The determining of the local sparsity category of the current child node according to the occupancy information of the already-encoded neighboring nodes of the current child node includes: Determine the occupancy quantity of the neighboring nodes according to the occupancy information of the neighboring nodes; Determine the local sparsity category of the current child node according to the occupancy quantity of the neighboring nodes.

16. The method according to claim 14, wherein, The determining of the target context state set of the current child node according to the local sparsity category includes: When the local sparsity category is the first category, determine that the target context state set is the first context state set; When the local sparsity category is the second category, determine that the target context state set is the second context state set.

17. The method according to claim 14, wherein, The method further includes: Determine the context information of the current child node according to the occupancy information of the already-encoded context nodes of the current child node.

18. The method according to any one of claims 14 to 17, wherein, The determining of the target entropy encoding parameter set of the current child node according to the prediction mode of the current child node includes: In the case where the current child node enables the inter-frame prediction mode, determine the target entropy encoding parameter set from the candidate inter-frame entropy encoding parameter sets, where the candidate inter-frame entropy encoding parameter sets include one or more inter-frame entropy encoding parameter sets; In the case where the current child node enables the intra-frame prediction mode, determine the target entropy encoding parameter set from the candidate intra-frame entropy encoding parameter sets, where the candidate intra-frame entropy encoding parameter sets include one or more intra-frame entropy encoding parameter sets.

19. The method according to claim 18, wherein The determining of the target entropy encoding parameter set from the candidate inter-frame entropy encoding parameter sets includes: determining the target entropy encoding parameter set from the candidate inter-frame entropy encoding parameter sets according to the occupancy information of the predicted child node of the current child node in the reference frame.

20. The method according to claim 19, wherein The determining of the target entropy encoding parameter set from the candidate inter-frame entropy encoding parameter sets according to the occupancy information of the predicted child node of the current child node in the reference frame includes: In the case where the occupancy information of the predicted child node indicates non-occupancy, determine that the target entropy encoding parameter set is the first inter-frame entropy encoding parameter set; In the case where the occupancy information of the predicted child node indicates occupancy, determine the target entropy encoding parameter set according to the occupancy intensity of the predicted child node, where different occupancy intensities correspond to different inter-frame entropy encoding parameter sets.

21. The method according to claim 20, wherein The determining of the target entropy encoding parameter set according to the occupancy intensity of the predicted child node includes: When the occupancy intensity of the predicted child node is the first intensity, determine that the target entropy encoding parameter set is the second inter-frame entropy encoding parameter set; When the occupancy intensity of the predicted child node is the second intensity, determine that the target entropy encoding parameter set is the third inter-frame entropy encoding parameter set.

22. The method according to claim 18, wherein The determining of the target entropy encoding parameter set from the candidate intra-frame entropy encoding parameter sets includes: Determine the target entropy encoding parameter set from the candidate intra-frame entropy encoding parameter sets according to the local sparsity category.

23. The method according to claim 18, wherein, The method further includes: Determine whether the current node allows enabling the inter-frame prediction mode according to the value of the first syntax element; When the current node allows enabling the inter-frame prediction mode, determine the occupancy information of the prediction node of the current node in the reference frame; According to the occupancy information of the prediction node, determine whether the child node of the current node enables the inter-frame prediction mode, where the current child node is any child node within the current node.

24. The method according to any one of claims 14 to 23, wherein The determining the target entropy coding parameter of the current child node from the target entropy coding parameter set according to the target context state includes: Determine the index value of the target entropy coding parameter according to the target context state and the target mapping relationship; Determine the target entropy coding parameter of the current child node from the target entropy coding parameter set according to the index value of the target entropy coding parameter.

25. The method according to claim 14, wherein The target context state includes the first probability that the current child node occupies or does not occupy under the context information, and the target entropy coding parameter includes the second probability that the current child node occupies or does not occupy under the context information.

26. The method according to claim 25, wherein, After entropy coding the occupancy information of the current child node according to the target entropy coding parameter, the method further includes: Update the target context state and the target entropy coding parameter according to the occupancy information of the current child node.

27. A point cloud encoder, the point cloud encoder includes a first determination unit, a second determination unit, and an encoding unit; wherein, The first determination unit is configured to determine the local sparsity category of the current child node according to the occupancy information of the already encoded neighbor nodes of the current child node; according to the local sparsity category, determine the set of target context states of the current child node, where the set of target context states includes one or more context states, and each context state corresponds to corresponding context information; The first determination unit is further configured to determine the target context state of the current child node from the set of target context states according to the context information of the current child node; The second determination unit is configured to determine the set of target entropy coding parameters of the current child node according to the prediction mode of the current child node; determine the target entropy coding parameter of the current child node from the set of target entropy coding parameters according to the target context state; The encoding unit is configured to perform entropy coding on the occupancy information of the current child node according to the target entropy coding parameter, and write the obtained coded bits into the code stream.

28. A point cloud encoder, the point cloud encoder includes a first memory and a first processor; wherein, The first memory is used to store a computer program that can run on the first processor; The first processor is used to execute the method according to any one of claims 14 to 26 when running the computer program.

29. A point cloud decoder, the point cloud decoder includes a third determination unit, a fourth determination unit, and a decoding unit; wherein, The third determination unit is configured to determine the local sparse category of the current child node according to the occupancy information of the decoded neighbor nodes of the current child node; and determine the target context state set of the current child node according to the local sparse category, where the target context state set includes one or more context states, and each context state corresponds to corresponding context information; The third determination unit is further configured to determine the target context state of the current child node from the target context state set according to the context information of the current child node; The fourth determination unit is configured to determine the target entropy decoding parameter set of the current child node according to the prediction mode of the current child node; and determine the target entropy decoding parameter of the current child node from the target entropy decoding parameter set according to the target context state; The decoding unit is configured to perform entropy decoding on the bitstream according to the target entropy decoding parameter to determine the occupancy information of the current child node.

30. A point cloud decoder, the point cloud decoder includes a second memory and a second processor; wherein, The second memory is used to store a computer program that can run on the second processor; The second processor is used to execute the method according to any one of claims 1 to 13 when running the computer program.

31. A computer-readable storage medium, wherein, The computer-readable storage medium stores the bitstream generated by the encoding method according to any one of claims 14 to 26.

32. A computer-readable storage medium, wherein, The computer-readable storage medium stores a computer program, and when the computer program is executed, it implements the method according to any one of claims 1 to 13, or implements the method according to any one of claims 14 to 26.

Citation Information

Patent Citations

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

    CN112565764A

  • Geometric coding and decoding method and device for three-dimensional point cloud

    CN113676738A

  • Method and apparatus of encoding / decoding point cloud geometry data sensed by at least one sensor

    EP4152264A1

  • Methods and devices for on-the-fly coder mapping updates in point cloud coding

    US20210167795A1

  • 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

    US20230342987A1