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

By distinguishing between inter-frame and intra-frame context state sets in the point cloud compression encoding and decoding framework, and utilizing prediction information for encoding and decoding, the problem of low efficiency in octree-based encoding and decoding is solved, achieving more efficient encoding and decoding and bitrate savings.

WO2026007039A9PCT designated stage Publication Date: 2026-03-05GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-03
Publication Date
2026-03-05

AI Technical Summary

Technical Problem

In geometry-based point cloud compression encoding and decoding frameworks, octree-based geometry encoding and decoding suffers from low encoding and decoding efficiency.

Method used

By utilizing prediction information, the context state sets between frames and within frames are distinguished, and the entropy encoding/decoding parameter sets are no longer shared. Different entropy encoding/decoding parameter sets are distinguished based on prediction information, thereby improving the geometric encoding and decoding efficiency of G-PCC.

Benefits of technology

While maintaining the same decoding quality, it improves encoding and decoding efficiency and saves bitrate.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024103438_05032026_PF_FP_ABST
    Figure CN2024103438_05032026_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the present application are an encoding method, a decoding method, a bit stream, a point cloud encoder, a point cloud decoder and a storage medium. The encoding / decoding method comprises: on the basis of occupancy information of a decoded context node of a current child node, determining context information of the current child node; on the basis of the context information, determining a target context state of the current child node from a context state set of the current child node; on the basis of a prediction parameter of the current child node, determining a target entropy encoding / decoding parameter set of the current child node; on the basis of the target context state, determining a target entropy encoding / decoding parameter of the current child node from the target entropy encoding / decoding parameter set; and on the basis of the target entropy encoding / decoding parameter, performing entropy encoding / decoding on occupancy information of the current child node. Thus, in G-PCC, an entropy encoding / decoding parameter set is no longer shared between an inter-frame context state set and an intra-frame context state set, different entropy encoding / decoding parameter sets are instead distinguished on the basis of prediction information, so that the prediction information is fully utilized, and the geometric encoding / decoding efficiency of G-PCC is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Encoding and decoding methods, bitstream, point cloud encoder, point cloud decoder, and storage media Technical Field

[0001] This application relates to the field of point cloud encoding and decoding technology, and in particular to an encoding and decoding method, a bitstream, a point cloud encoder, a point cloud decoder, and a storage medium. Background Technology

[0002] Currently, in the geometry-based point cloud compression (G-PCC) encoding and decoding framework, the geometric information of the point cloud and the attribute information corresponding to the points in the point cloud are encoded separately. Specifically, for the G-PCC encoding and decoding framework, the geometric encoding and decoding part can be divided into octree-based geometric encoding and decoding, triangle patch set-based geometric encoding and decoding, and prediction tree-based geometric encoding and decoding.

[0003] In octree-based geometric encoding and decoding technology, there is a problem of low encoding and decoding efficiency when encoding and decoding occupied information based on the context information of the node to be encoded.

[0004] Summary of the Invention

[0005] This application provides an encoding / decoding method, a bitstream, a point cloud encoder, a point cloud decoder, and a storage medium, which fully utilizes prediction information, improves the efficiency of G-PCC geometric encoding / decoding, and saves bitrate.

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

[0007] In a first aspect, embodiments of this application provide a decoding method applied to a point cloud decoder, the method comprising:

[0008] Based on the occupancy information of the current child node's decoded context node, the context information of the current child node is determined;

[0009] Based on the context information of the current child node, the target context state of the current child node is determined from the context state set of the current child node, wherein the context state set includes one or more context states;

[0010] Based on the prediction parameters of the current child node, a target entropy decoding parameter set for the current child node is determined, wherein the target entropy decoding parameter set includes multiple entropy decoding parameters;

[0011] Based on the target context state of the current child node, determine the target entropy decoding parameters of the current child node from the target entropy decoding parameter set;

[0012] Based on the target entropy decoding parameters, entropy decoding is performed on the bitstream to determine the occupancy information of the current child node.

[0013] Secondly, embodiments of this application provide an encoding method applied to a point cloud encoder, the method comprising:

[0014] Based on the occupancy information of the current child node's encoded context node, the context information of the current child node is determined;

[0015] Based on the context information of the current child node, the target context state of the current child node is determined from the context state set of the current child node, wherein the context state set includes one or more context states;

[0016] Based on the prediction parameters of the current child node, a target entropy coding parameter set for the current child node is determined, wherein the target entropy coding parameter set includes multiple entropy coding parameters;

[0017] Based on the target context state of the current child node, the target entropy encoding parameters of the current child node are determined from the target entropy encoding parameter set;

[0018] The occupancy information of the current child node is entropy encoded based on the target entropy encoding parameters, and the resulting encoded bits are written into the bitstream.

[0019] Thirdly, embodiments of this application provide a bitstream generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following: occupancy information of the current child node, and the bitstream is generated based on the encoding method described in the second aspect.

[0020] Fourthly, embodiments of this application provide a point cloud encoder, which includes a first determining unit, a second determining unit, and an encoding unit; wherein,

[0021] The first determining unit is configured to determine the context information of the current child node based on the occupancy information of the current child node's encoded context node; and to determine the target context state of the current child node from the context state set of the current child node based on the context information of the current child node, wherein the context state set includes one or more context states.

[0022] The second determining unit is configured to determine a target entropy encoding parameter set for the current child node based on the prediction parameters of the current child node, wherein the target entropy encoding parameter set includes multiple entropy encoding parameters; and to determine the target entropy encoding parameters of the current child node from the target entropy encoding parameter set based on the target context state of the current child node.

[0023] The encoding unit is configured to entropy encode the occupancy information of the current child node based on the target entropy encoding parameters, and write the obtained encoded bits into the code stream.

[0024] Fifthly, embodiments of this application provide a point cloud encoder, including a first memory and a first processor; wherein,

[0025] A first memory for storing computer programs that can run on a first processor;

[0026] A first processor is configured to execute the method described in the second aspect when running a computer program.

[0027] Sixthly, embodiments of this application provide a point cloud decoder, which includes a third determining unit, a fourth determining unit, and a decoding unit; wherein,

[0028] The third determining unit is configured to determine the context information of the current child node based on the occupancy information of the current child node's decoded context node; and to determine the target context state of the current child node from the context state set of the current child node based on the context information of the current child node, wherein the context state set includes one or more context states.

[0029] The fourth determining unit is configured to determine the target entropy decoding parameter set of the current child node based on the prediction parameters of the current child node, wherein the target entropy decoding parameter set includes multiple entropy decoding parameters; and to determine the target entropy decoding parameters of the current child node from the target entropy decoding parameter set based on the target context state of the current child node.

[0030] The decoding unit is configured to perform entropy decoding on the bitstream based on the target entropy decoding parameters to determine the occupancy information of the current child node.

[0031] Seventhly, embodiments of this application provide a point cloud decoder, including a second memory and a second processor; wherein,

[0032] The second memory is used to store computer programs that can run on the second processor;

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

[0034] Eighthly, embodiments of this application provide a computer-readable storage medium storing a bitstream generated by the encoding method described in the second aspect.

[0035] Ninthly, embodiments of this application provide a computer-readable storage medium storing a computer program that, when executed, implements the method described in the first aspect or the method described in the second aspect.

[0036] This application provides an encoding / decoding method, a bitstream, a point cloud encoder, a point cloud decoder, and a storage medium. Whether at the encoding or decoding end, based on the occupancy information of the currently decoded context nodes, the context information of the current child node is determined; based on the context information of the current child node, the target context state of the current child node is determined from the context state set of the current child node; based on the prediction parameters of the current child node, the target entropy encoding / decoding parameter set of the current child node is determined; based on the target context state of the current child node, the target entropy encoding / decoding parameters of the current child node are determined from the target entropy encoding / decoding parameter set; and based on the target entropy encoding / decoding parameters, the occupancy information of the current child node is entropy encoded / decoded. Thus, in G-PCC, the inter-frame context state set no longer shares the entropy encoding / decoding parameter set with the intra-frame context state set, but instead distinguishes different entropy encoding / decoding parameter sets based on prediction information, fully utilizing prediction information, improving the geometric encoding / decoding efficiency of G-PCC, and saving bitrate. Attached Figure Description

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

[0038] Figure 2 is a schematic diagram of the component framework of a G-PCC encoder;

[0039] Figure 3 is a schematic diagram of the component framework of a G-PCC decoder;

[0040] Figure 4 is a schematic diagram of the implementation framework of OBUF technology;

[0041] Figure 5 is a schematic diagram of the application implementation process of OBUF technology;

[0042] Figure 6 is a schematic diagram of dynamically adjusting the priority of the context;

[0043] Figure 7 is a schematic diagram of the scanning order of child nodes in the current node;

[0044] Figure 8 is a schematic diagram of an intra-frame / inter-frame entropy coding process based on OBUF technology;

[0045] Figure 9 is a schematic flowchart of a decoding method provided in an embodiment of this application;

[0046] Figure 10 is a schematic diagram of the distribution of child neighbor nodes and coplanar parent neighbor nodes of child node 0;

[0047] Figure 11 is a schematic diagram showing the distribution order of the 20 parent neighbor nodes of child node 0;

[0048] Figure 12 is a schematic flowchart of a decoding method provided in an embodiment of this application;

[0049] Figure 13 is a schematic flowchart of an encoding method provided in an embodiment of this application;

[0050] Figure 14 is a schematic flowchart of an encoding method provided in an embodiment of this application;

[0051] Figure 15 is a schematic diagram of the composition structure of a point cloud encoder provided in an embodiment of this application;

[0052] Figure 16 is a schematic diagram of the specific hardware structure of a point cloud encoder provided in an embodiment of this application;

[0053] Figure 17 is a schematic diagram of the composition structure of a point cloud decoder provided in an embodiment of this application;

[0054] Figure 18 is a schematic diagram of the specific hardware structure of a point cloud decoder provided in an embodiment of this application;

[0055] Figure 19 is a schematic diagram of the composition structure of an encoding / decoding system provided in an embodiment of this application. Detailed Implementation

[0056] In order to gain a more detailed understanding of the features and technical content of the embodiments of this application, the implementation of the embodiments of this application will be described in detail below with reference to the accompanying drawings. The accompanying drawings are for reference and illustration only and are not intended to limit the embodiments of this application.

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

[0058] In the following description, references to "some embodiments" refer to a subset of all possible embodiments. It is understood that "some embodiments" may be the same 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, third" used in the embodiments of this application are merely for distinguishing similar objects and do not represent a specific ordering of objects. It is understood that "first, second, third" may be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.

[0059] Before providing a further detailed description of the embodiments of this application, the nouns and terms used in the embodiments of this application will be explained. The nouns and terms used in the embodiments of this application shall be interpreted as follows:

[0060] Point cloud compression (PCC);

[0061] Geometry-based point cloud compression (G-PCC or GPCC);

[0062] Video-based point cloud compression (V-PCC or VPCC);

[0063] Octree;

[0064] Triangle soup (Trisoup);

[0065] K-Nearest Neighbor (KNN);

[0066] Level of Detail (LOD);

[0067] Predicting Transform;

[0068] Lifting Transform;

[0069] Region Adaptive Hierarchical Transform (RAHT);

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

[0071] Point clouds are a three-dimensional representation of an object's surface. They can be collected using acquisition devices such as photoelectric radar, lidar, laser scanners, and multi-view cameras.

[0072] A point cloud is a collection of massive 3D points. Points in a point cloud can include both location and attribute information. For example, location information can be the point's 3D coordinates, also known as geometric information. Attribute information can include color information and / or reflectivity, etc. Color information can be from any color space. For example, color information can be RGB, where R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). Alternatively, color information can be luminance / chrominance (YCbCr, YUV) information, where Y represents luminance, Cb(U) represents blue chrominance, and Cr(V) represents red chrominance.

[0073] Point clouds obtained based on laser measurement principles can include the three-dimensional coordinates and laser reflection intensity of each point. Similarly, point clouds obtained based on photogrammetry principles can include the three-dimensional coordinates and color information of each point. Furthermore, point clouds obtained by combining laser measurement and photogrammetry principles can include the three-dimensional coordinates, laser reflection intensity, and color information of each point.

[0074] Point clouds can be categorized according to the acquisition method:

[0075] The first type of static point cloud: that is, the object is stationary and the device for acquiring the point cloud is also stationary;

[0076] The second type of dynamic point cloud: The object is in motion, but the device acquiring the point cloud is stationary;

[0077] The third type of dynamic point cloud acquisition: The device acquiring the point cloud is in motion.

[0078] For example, point clouds can be divided into two main categories based on their uses:

[0079] Category 1: Machine-perceived 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;

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

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

[0082] Currently, point cloud encoding frameworks capable of compressing point clouds can be the G-PCC or 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). The G-PCC codec framework can be used to compress the first type of static point clouds and the third type of dynamically acquired point clouds, while the V-PCC codec framework can be used to compress the second type of dynamic point clouds. In this application, the description primarily focuses on the G-PCC codec framework.

[0083] This application provides a network architecture for a point cloud encoding / decoding system including a decoding method and an encoding method. Figure 1 is a schematic diagram of a point cloud encoding / decoding network architecture provided in this application embodiment. As shown in Figure 1, the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. The electronic devices can be various types of devices with point cloud encoding / decoding capabilities, such as mobile phones, tablets, personal computers, personal digital assistants, navigators, digital phones, video phones, televisions, sensing devices, servers, etc., and this application embodiment does not impose any limitations. The decoder or encoder in this application embodiment can be one of the aforementioned electronic devices.

[0084] The electronic device in this application embodiment has point cloud encoding and decoding functions, and generally includes a point cloud encoder (i.e., encoder) and a point cloud decoder (i.e. decoder).

[0085] The following explanation uses the G-PCC encoding / decoding framework as an example to illustrate the relevant technologies.

[0086] As can be understood, in the G-PCC encoding and decoding framework for point clouds, the point cloud data to be encoded is first divided into multiple slices. Within each slice, the geometric and attribute information of the point cloud is encoded separately.

[0087] Figure 2 illustrates a schematic diagram of the G-PCC encoder's framework. As shown in Figure 2, during geometric encoding, coordinate transformation is performed on the geometric information to ensure that the entire point cloud is contained within a bounding box. Quantization is then performed; this step primarily serves a scaling function. Due to quantization rounding, some point clouds share identical geometric information. Therefore, parameters are used to determine whether to remove duplicate points. This process of quantization and duplicate point removal is also known as voxelization. Next, the bounding box is partitioned into an octree or a prediction tree is constructed. During this process, entropy encoding is performed on the points in the leaf nodes of the partition, generating a binary geometric bitstream; alternatively, entropy encoding is performed on the vertices generated by the partition (surface fitting based on the vertices), generating a binary geometric bitstream. In attribute encoding, after geometric encoding and reconstruction of the geometric information, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, ensuring that the unencoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is mainly for color information. In the process of color information encoding, there are two main transformation methods: one is distance-based lifting transformation that relies on LOD partitioning, and the other is direct RAHT transformation. Both methods will transform the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients and entropy encode the quantized coefficients to generate a binary attribute code stream.

[0088] Figure 3 illustrates a schematic diagram of the G-PCC decoder's structural framework. As shown in Figure 3, for the acquired binary bitstream, the geometric bitstream and attribute bitstream in the binary bitstream are first decoded independently. When decoding the geometric bitstream, entropy decoding is performed first, followed by one of the following methods: octree partitioning-reconstruction surface estimation or prediction tree construction. After geometric reconstruction-coordinate inverse transformation, the geometric information of the point cloud can be obtained. When decoding the attribute bitstream, entropy decoding and inverse quantization are performed first, followed by one of the following methods: RAHT transform or LOD partitioning-lifting transform. Finally, the attribute information of the point cloud can be obtained through color inverse transformation. Based on the geometric and attribute information, the point cloud data to be encoded can be reconstructed.

[0089] It should be noted that, as shown in Figure 2 or Figure 3, the current geometric coding and decoding of G-PCC can be divided into octree-based geometric coding and decoding, Trisoup-based geometric coding and decoding, and prediction tree-based geometric coding and decoding, as detailed below:

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

[0091] At the encoding end, the geometric information is first transformed to ensure that the entire point cloud is contained within a bounding box determined by two extreme points (0,0,0) and (2d,2d,2d). Then, voxelization is performed, including quantization, rounding, and removal of duplicate points (depending on the parameters). Next, following a breadth-first traversal, the non-empty sub-cubes (containing points from the point cloud) within the bounding box are continuously partitioned into octrees. At the same octree depth, a node is divided into 8 child nodes until the resulting leaf nodes form 1×1×1 unit cubes. The 8 bits generated by determining whether a point in a sub-cube is occupied (1 indicates occupied, 0 indicates unoccupied) are called the occupancy code. The occupancy code of each node is encoded to generate a binary code stream.

[0092] On the decoding side, following the breadth-first traversal order, the placeholder code of each node is obtained by continuously parsing, and the nodes are divided in turn until a 1×1×1 unit cube is obtained and the division stops. The number of points contained in each leaf node is obtained by parsing, and finally the geometric reconstruction point cloud information is recovered.

[0093] (b) Trisoup-based geometric encoding and decoding:

[0094] At the encoding end, an octree is first partitioned. Unlike geometric information encoding based on an octree structure, this method does not need to partition the point cloud level by level to the bottom leaf nodes with a side length of 1×1×1, but instead partitions leaf nodes with a specified side length. Then, the surface information composed of voxels within the node is represented by a series of triangular meshes. In GPCC, the parameter Trisoup node size can be used to represent the size of the block containing the triangular mesh. When the Trisoup node size is greater than 0, a geometric mesh represents the set of voxels within the node. The maximum of twelve intersection points generated by the geometric mesh and the twelve edges of the block are called vertices. The vertex coordinates of each block are encoded sequentially to generate a binary bitstream.

[0095] At the decoding end, in order to decode the geometric coordinates of the point cloud from the triangular facets of the nodes, it is necessary to check whether each voxel in the node cube intersects with the triangular facets. This technique is called triangulation.

[0096] (c) Geometric encoding and decoding based on prediction trees:

[0097] At the encoding end, the input point cloud is first sorted. Currently, sorting methods include unordered, Morton order, azimuth order, and radial distance order. Two different methods are used to build the prediction tree structure: a high-latency slow mode (KD-Tree) and a low-latency fast mode (using LiDAR calibration information to assign each point to a different laser and build the prediction structure according to the laser). Next, based on the prediction tree structure, each node in the prediction tree is traversed. Different prediction modes are selected to predict the geometric position information of the nodes to obtain prediction residuals, which are then quantized using quantization parameters. Finally, through continuous iteration, the prediction residuals of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.

[0098] At the decoding end, the decoding end continuously parses the bitstream and reconstructs the prediction tree structure. Then, it obtains the geometric position prediction residual information and quantization parameters of each prediction node through parsing. Furthermore, it performs inverse quantization on the prediction residual to recover the reconstructed geometric position information of each node, and finally completes the geometric reconstruction at the decoding end.

[0099] It should also be noted that in one possible implementation of related technologies, the encoder currently used by G-PCC is context-adaptive binary arithmetic coding (CABAC), a widely used entropy encoder for video coding. Similar to traditional arithmetic coding, CABAC employs a recursive interval partitioning method for encoding representation. Because CABAC is adaptive, its probability model adjusts with the occurrence of symbols, fully considering the statistical characteristics of the source and significantly improving coding efficiency. The CABAC encoder can be divided into three parts: binaryization, context modeling, and binary arithmetic coding; as detailed below:

[0100] ① Binary conversion: Binary conversion maps a given non-binary syntax element into a binary sequence, i.e., a binary stream. If the input syntax element is a binary syntax element, the binary conversion process is omitted, and the data is sent directly to the next step through a bypass.

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

[0102] ③ Binary arithmetic coding: Two coding modes are available: regular coding mode and bypass coding mode. In regular coding mode, the binary bits (Bin) of the syntax elements and the probability model assigned to them are fed into the binary arithmetic encoder for encoding, and the context model is updated based on the Bin value; this is the adaptive aspect of the encoding. The other mode is bypass coding mode, which does not require assigning a specific probability model to each binary bit. The input Bin is directly encoded using a simple bypass encoder, which can speed up the entire encoding and decoding process.

[0103] 1. Optimal Binarization with Update on the Fly (OBUF) technique

[0104] 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., probabilistic models) through a look-up table (LUT). In this way, the context information no longer corresponds one-to-one with the probabilistic models. As the current coded syntax elements are updated, a fixed number of probabilistic models are updated, and the mapping relationship is updated after each encoding is completed.

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

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

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

[0108] The context information D of the symbol to be encoded is the input information of OBUF, which consists of the information of the neighboring nodes that have been encoded in the space and the position of the child node relative to the parent node.

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

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

[0111] (3) Use binary encoder i to entropy encode symbol S.

[0112] The symbol S to be encoded is fed into the binary encoder corresponding to its context information D for entropy encoding.

[0113] 2) Examples of OBUF technology applications

[0114] As shown in Figure 5, assume 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 either 0 or 1, where 0 indicates no occupancy and 1 indicates occupancy. First, determine the context information of the child node b0 to be encoded, i.e., the occupancy status of already encoded nodes. This is composed of the neighboring nodes, parent nodes, and adjacent nodes of the currently encoded child node; these nodes are called context nodes. Each context node has two states: occupied and unoccupied. The occupancy status of all context nodes constitutes the context information. Obtain the initial probability value of whether the child node to be encoded is occupied or unoccupied corresponding to the current context information. Then, obtain the binary encoder coderi corresponding to the initial probability value based on the mapping relationship. Finally, use the binary encoder coderi to perform entropy encoding on the symbol b0 to be encoded.

[0115] 2. Dynamic OBUF technology

[0116] Compared to OBUF technology, dynamic OBUF technology no longer uses a fixed number of contexts, but dynamically adjusts the number of contexts as the encoding process progresses.

[0117] Dynamic OBUF technology consists of two stages: 1) dynamically determining the context node and context information; 2) mapping the context information to a small number of binary encoder groups (corresponding to OBUF technology).

[0118] The following section introduces context construction and dynamic adjustment. In dynamic OBUF technology, context information is divided into two parts: primary information and secondary information. Whether some information in the secondary information is used as context information is dynamically adjusted. The context information composed of the primary information and the selected secondary information is used as the OBUF context information.

[0119] 1) Context information construction process:

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

[0121] (1) Sibling nodes have been encoded;

[0122] (2) The current node's 6 coplanar parent neighbor nodes;

[0123] (3) The other 20 parent neighbor nodes of the current node that share an edge or a point.

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

[0125] Figure 6 illustrates a dynamic context prioritization diagram. As shown in Figure 6, the black-filled child node is the current child node. Eight cases are provided: (a) the grid-filled child node is the sibling child node of the current child node; (b) the grid-filled child node is the coplanar neighbor child node of the current child node; (c) the grid-filled child node is the coplanar neighbor parent node of the current child node; (d) the grid-filled child node is the edge-shared neighbor child node of the current child node; (e) the grid-filled child node is the adjacent neighbor parent node of the current child node; (f) the grid-filled child node is the point-shared neighbor child node of the current child node; (g) the grid-filled child node is the non-adjacent child neighbor node of the current child node; and (h) the grid-filled child node is the non-adjacent parent neighbor node of the current child node.

[0126] It should also be noted that when constructing context information, different context models can be built for the child nodes to be encoded at different positions in the current node according to a preset scanning order. For example, as shown in Figure 7, a schematic diagram of the child node scanning order in the current node is illustrated. This scanning order can be to construct different context models sequentially according to 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 in Figure 7. Furthermore, as the number of encoded child nodes in the current node increases, the effective context information that unencoded child nodes can refer to will also change. Moreover, there are different local sparsity determination methods for these eight child nodes of the current node, so each child node has its own context bins.

[0127] 2) Dynamic adjustment process

[0128] Each context node can be either unoccupied or occupied, i.e., in a 0 or 1 state. Context information can be represented by N+M binary bits, where N are primary information and M are 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 piece of context information is used exceeds a threshold T, a new context node is added in the scanning order; that is, the context information is further subdivided by introducing a new context node. Subsequent child nodes to be encoded are encoded using the updated set of context information.

[0129] 3. G-PCC Point Cloud Inter-Frame Coding

[0130] Octree-based inter-frame geometric entropy coding

[0131] In G-PCC, both intra-frame and inter-frame coding of octree geometric information employ OBUF entropy coding, and the context construction method for inter-frame coding is the same as that for intra-frame coding.

[0132] Figure 8 illustrates a schematic diagram of an inter-frame geometric entropy coding process based on an octree. First, the value of `isSparse` is determined based on the intra-frame context information of the child node to be encoded. `isSparse` refers to the local sparsity of the child node to be encoded, which is determined by the occupancy of its encoded neighboring nodes. Based on the value of `isSparse` (0 or 1), the context is divided into two main sets: sparse context states and non-sparse context states.

[0133] Secondly, according to bp i The value (0 or 1) divides the two sets of sparse and non-sparse context states into four sets: contextStateGroup1, contextStateGroup2, contextStateGroup3, and contextStateGroup4. Among these, bp... i This is an identifier used to indicate whether a predicted child node is occupied. Specifically, if the predicted child node i is occupied, then bp... i If the value is set to 1, then the predicted child node i is not occupied, and bp is set to 1. i Set to 0. If isInter is 0, then bp i The value of isInter is 0. The value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which indicates whether inter-frame prediction is enabled at the upper layer. If inter-frame prediction is enabled, it is called a P-frame, and isInter is 1; otherwise, if it is not enabled, it is called an I-frame, and isInter is 0.

[0134] Then, the context state is mapped to the binary encoder based on the same encoder group.

[0135] Finally, the encoder (coder) is obtained based on the mapping. i Entropy encoding is performed on the symbol b0 to be encoded.

[0136] In G-PCC, the boundary between context state groups utilizing inter-frame information and those not utilizing it is blurred. For example, when inter-frame prediction is not enabled and inter-frame information is not used, the prediction bandwidth (bp) is... i Always 0, when inter-frame is enabled and the current frame is not an I-frame, bp i It can be 0 or 1, indicating that the prediction is 0 or 1. In other words, the mapping relationship between the context state group and the encoder group is not distinguished based on the inter-frame information. They will affect each other in the process of mapping the binary encoder, which will have a certain impact on the coding efficiency.

[0137] In G-PCC, four independent sets of context state groups need to be set up, which requires a lot of storage space.

[0138] Based on this, the embodiments of this application provide an encoding / decoding method. In G-PCC, the inter-frame context state set no longer shares the entropy encoding / decoding parameter set with the intra-frame context state set. Instead, it distinguishes different entropy encoding / decoding parameter sets based on prediction information, making full use of prediction information, improving the geometric encoding / decoding efficiency of G-PCC, and saving bit rate.

[0139] Furthermore, different prediction modes can share the same set of context states. Only the target set of context states needs to be selected based on the local sparse category, which reduces the number of context states and lowers memory usage.

[0140] To facilitate understanding of the technical solutions of the embodiments of this application, the technical solutions of this application are described in detail below through specific embodiments. The above-mentioned related technologies are optional solutions and can be arbitrarily combined with the technical solutions of the embodiments of this application, all of which fall within the protection scope of the embodiments of this application. The embodiments of this application include at least some of the following contents.

[0141] In one embodiment of this application, referring to FIG9, a flowchart of a decoding method provided by an embodiment of this application is shown. As shown in FIG9, the method may include:

[0142] S101: Determine the context information of the current child node based on the occupied information of the current child node's decoded context node;

[0143] It should be noted that the decoding method in this application embodiment is applied to a point cloud decoder. Specifically, this decoding method can refer to a method for decoding point cloud geometric information. More specifically, this application embodiment provides an entropy decoding method for point cloud geometric information. In G-PCC, the inter-frame context state set no longer shares the entropy decoding parameter set with the intra-frame context state set. Instead, different entropy decoding parameter sets are distinguished based on prediction information to perform entropy decoding of point cloud geometric information. This fully utilizes prediction information and improves the geometric decoding efficiency of G-PCC while maintaining the same decoding quality.

[0144] It should be noted that the current child node is any child node in 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.

[0145] For example, a context node includes at least one of the following: a decoded sibling node of the current child node; decoded neighbor child nodes of the current child node that share a face, an edge, or a vertex; a decoded neighbor parent node of the current child node that shares a face or an edge; or other decoded neighbor nodes of the current child node. The context node scanning order can be: decoded sibling node of the current child node > decoded neighbor node of the current child node that shares a face > decoded neighbor node of the current child node that shares an edge > decoded neighbor node of the current child node that shares a vertex > other decoded neighbor nodes of the current child node > decoded neighbor node of the current child node that shares a face > decoded neighbor node of the current child node that shares an edge > the 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.

[0146] For example, determining the context information of the current child node based on the occupancy information of the current child node's decoded context node may include: determining the context information of the current child node based on the occupancy information of the current child node's decoded context node and the first construction strategy.

[0147] The first construction strategy indicates how to generate context information based on the occupancy information of context nodes. The first construction strategy may include: constructing context information according to a preset context node scanning order and context node occupancy information; or, constructing first and second information of the context information according to a preset context information composition structure and 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 can be primary information, and the second information can be secondary information, with the inclusion of certain information within the secondary information as context information dynamically adjusted.

[0148] Step 102: Based on the context information of the current child node, determine the target context state of the current child node from the context state set of the current child node;

[0149] The context state set includes one or more context states, and one or more context information is mapped to a context state.

[0150] The context information of the current child node is used to characterize the occupancy status of the context nodes of the current child node. The context state is the probability that the current child node occupies or does not occupy the context under the current context information. The context state set of the current child node records the context state corresponding to one or more context information. The context information of the current child node can be used as an index to index the context state set of the current child node to determine the target context state of the current child node.

[0151] In some embodiments, the current child node's context state set can be a preset context state set.

[0152] In some embodiments, the context state set of the current child node can also be a specific context state set from a variety of preset context state sets. The context state sets used by inter-frame prediction mode and intra-frame prediction mode can be the same or different.

[0153] In some embodiments, the method may further include: determining the local sparsity class of the current child node based on the occupancy information of the currently decoded neighboring nodes; and determining the context state set of the current child node based on the local sparsity class of the current child node.

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

[0155] For example, if the number of occupied neighboring nodes is greater than a second threshold, the current child node's local sparse category is determined to be the first category; if the number of occupied neighboring nodes is less than or equal to the second threshold, the current child node's local sparse category 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 be included.

[0156] In this embodiment, the local sparsity of the current child node is determined by considering the occupancy information of decoded neighbor nodes and the position of the child node relative to its parent node. For example, neighbor nodes include at least one of the following: decoded sibling nodes of the current child node; decoded neighbor child nodes in a first preset direction adjacent to the current child node; decoded neighbor child nodes in a second preset direction adjacent to the current child node; and decoded neighbor child nodes in a third preset direction adjacent to the current child node. The first preset direction can refer to the negative x-axis direction (Left direction) of the current child node, the second preset direction can refer to the negative y-axis direction (Front direction) of the current child node, and the third preset direction can refer to the negative z-axis direction (Bottom direction) of the current child node. That is, the local sparsity category can be established according to the number of decoded neighbor nodes in the negative xyz directions adjacent to the current child node. It should be noted that the decoded neighbor nodes of the current child node may or may not be completely identical to the context nodes of the current node.

[0157] For example, the local sparsity category is denoted as isSparse. Different values ​​of isSparse represent different local sparsity categories. The value of isSparse for the child node to be decoded is determined based on the occupancy status of the decoded neighbor nodes. For example, the local sparsity category of child node 0 can be determined according to the occupancy count (NN) of the 12 decoded child nodes in the negative xyz directions adjacent to the current child node in Figure 10. An occupancy count NN > 1 indicates non-sparseness (isSparse = 0), and an occupancy count NN ≤ 1 indicates sparseness (isSparse = 1). The local sparsity category of child node 1 can be determined according to the occupancy count (NN) of the 4 decoded child nodes in the negative y direction (Front) adjacent to the current child node in Figure 10. If the occupancy count NN > 0, it is determined to be a non-sparse category; if the occupancy count NN = 0, it is determined to be a sparse category. For the local sparse category of child node 2, it can be determined by the number of occupants (NN) of the four decoded child nodes in the negative z-direction (Bottom) adjacent to the current child node in Figure 10. If the number of occupants NN > 0, it is determined to be a non-sparse category; if the number of occupants NN = 0, it is determined to be a sparse category. For the local sparse category of child node 3, it can be determined by the seven nodes: bit0 + bit1 + bit2 and the four decoded child nodes in the negative x-direction (Left) adjacent to the current child node in Figure 10. If the number of occupants NN > 1, it is determined to be a non-sparse category; if the number of occupants NN ≤ 1, it is determined to be a sparse category.

[0158] It should be noted that different local sparsity categories correspond to different context state sets. The corresponding context state sets can be pre-configured for different local sparsity categories, and then the context state set of the current child node can be determined based on the local sparsity category of the current child node.

[0159] For example, when the local sparse category is the first category, the set of context states for the current child node is determined as the first context state set; when the local sparse category is the second category, the set of context states for the current child node is determined as the second context state set. In practical applications, more context state sets can be included. The first context state set includes one or more context states of the first category, with each context state corresponding to context information of the first category. The second context state set includes one or more context states of the second category, with each context state corresponding to context information of the second category.

[0160] In some embodiments, there is a one-to-one correspondence between context information and context states in the context state set. Context information serves as the index information of the context state set to index the corresponding context state. Context information is used to characterize the occupancy status of the context node of the child node to be decoded. The context state represents the first probability of the child node to be decoded occupying or not occupying a given context state; it can also be called the context of the child node to be decoded or the contextual probability model. For example, if the context information has 19 bits, there are 2... 19 Context information, up to 2 19 There are two context states; if the context information is 16 bits, there are 2 16 Context information, up to 2 16 Each context state.

[0161] In some embodiments, the context information and context states in the context state set have a many-to-one correspondence. For example, if the context information has 19 bits, there are 2... 19 Context information, up to 2 19 To reduce the number of context states, we will use 2. 19 One context information is mapped to T context states, where T is less than 2. 19 For example, the value of T can be 64, 128, 256, 512, etc.

[0162] In some embodiments, the index value of the target context state is determined based on the context information of the current child node and a first mapping relationship; based on the index value of the target context state, the target context state of the current child node is selected from the context state set of the current child node. For example, the second mapping relationship may include: determining the index value of the target context state based on the high N bits of the context state; where N is related to the number of context states.

[0163] In some embodiments, intra-frame prediction mode and inter-frame prediction mode share one or more context state sets. For example, it is necessary to select the context state set of the current child node based on the local sparsity category. Compared with related technologies that divide the context state into four sets, including context state group 1 (contextStateGroup1), context state group 2 (contextStateGroup2), context state group 3 (contextStateGroup3), and context state group 4 (contextStateGroup4), some embodiments of this application only need to divide the context state into two sets, including the non-sparse context state set (NSparse state) and the sparse context state set (Sparse state), which significantly reduces the number of context states and reduces memory usage.

[0164] S103: Based on the prediction parameters of the current child node, determine the target entropy decoding parameter set of the current child node;

[0165] The target entropy decoding parameter set includes multiple entropy decoding parameters, and one or more context states are mapped to one type of entropy decoding parameter.

[0166] The prediction parameters of the current child node serve as the prediction information for the current child node, used to select a matching set of entropy decoding parameters from multiple candidate entropy decoding parameter sets. These multiple candidate entropy decoding parameter sets include candidate intra-frame entropy decoding parameter sets and candidate inter-frame entropy decoding parameter sets. By distinguishing between intra-frame and inter-frame entropy decoding parameter sets based on the prediction information of the current child node, entropy decoding of the point cloud geometric information is performed, fully utilizing the prediction information and improving the efficiency of G-PCC geometric decoding while maintaining the same decoding quality.

[0167] The entropy decoding parameter set includes multiple entropy decoding parameters. One or more context states are mapped to an entropy decoding parameter. The context state can serve as an index to determine the target entropy decoding parameter set for the current child node. Entropy decoding parameters are any parameters used when entropy decoding the occupancy information of a child node. In some embodiments, entropy decoding parameters can be arithmetic decoding parameters, and adaptive arithmetic decoding of the child node's occupancy information is performed based on these parameters. For example, entropy decoding parameters may include a second probability of the current child node occupying or not occupying, also referred to as the context or contextual probability model of the child node to be decoded. In this case, the entropy decoding parameter set can be understood as a context set or a contextual probability model set.

[0168] In some embodiments, the prediction parameters include a first variable of the current child node, which indicates the prediction mode of the current child node, and different prediction modes correspond to different sets of entropy decoding parameters.

[0169] In some embodiments, the first variable can be used to indicate whether the current child node enables inter-frame prediction mode, the prediction parameters of the current child node, and to determine the target entropy decoding parameter set of the current child node, including: when the first variable indicates that inter-frame prediction mode is enabled, determining the target entropy decoding parameter set from the candidate inter-frame entropy decoding parameter set; when the first variable indicates that inter-frame prediction mode is not enabled, determining the target entropy decoding parameter set from the candidate intra-frame entropy decoding parameter set.

[0170] The candidate inter-frame entropy decoding parameter set includes one or more inter-frame entropy decoding parameter sets, and 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 scenarios. When inter-frame prediction mode is enabled, a matching target entropy decoding parameter set is selected based on the actual inter-frame prediction scenario 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 scenarios. When intra-frame prediction mode is enabled, a matching target entropy decoding parameter set is selected based on the actual intra-frame prediction scenario to improve the accuracy of intra-frame prediction.

[0171] In some embodiments, the method may further include: determining the value of a first variable of the current child node based on the value of a first syntax element. The value of the first syntax element is used to indicate whether the current node is allowed to enable inter-frame prediction mode.

[0172] In other words, whether the current child node enables inter-frame prediction mode is related to the value of the first syntax element. A first value for the first syntax element determines that the current node is allowed to enable inter-frame prediction mode, and the first variable is determined to be a first value; a second value for the first syntax element determines that the current node is not allowed to enable inter-frame prediction mode, and the first variable is determined to be a second value. For example, the first syntax element identifier includes at least one of the following: sequence-level syntax elements, frame-level syntax elements, slice-level syntax elements, etc. A value of 1 for the first syntax element allows inter-frame prediction to be enabled; a value of 0 for the first syntax element disallows inter-frame prediction.

[0173] For example, the value of the first variable is determined based on the inter-frame prediction enable flag (gbh.interPredictionEnabledFlag) of the unit to be decoded.

[0174] In some embodiments, the method further includes: if the value of the first syntax element indicates that the current node is allowed to enable inter-frame prediction mode, determining the value of the first variable of the current child node based on the occupancy information of the predicted node in the reference image of the current node.

[0175] Whether the current child node enables inter-frame prediction mode depends on the value of the first syntax element and the occupancy information of the predicted node of the current node (the parent node of the current child node). For example, a value of 0 indicates no occupancy, and a value of 1 indicates occupancy. That is, when the predicted node is occupied, the current node enables inter-frame prediction, making full use of inter-frame prediction information to improve prediction accuracy; otherwise, inter-frame prediction is not enabled.

[0176] 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 the occupancy information of multiple predicted child nodes in the predicted node; if the occupancy information of at least one predicted child node in the predicted node indicates occupancy, then the occupancy information of the predicted node is determined to be occupied; otherwise, the occupancy information of the predicted node is determined to be unoccupied. That is, if at least one child node in the predicted node is occupied, then the value of its occupancy information is set to 1; conversely, if no child node is occupied, then the value of its occupancy information is set to 0.

[0177] For example, based on the inter-frame prediction placeholder information of the unit to be decoded for the current node in the reference unit and the enable flag (gbh.interPredictionEnabledFlag) of the unit to be decoded, it is determined whether to enable inter-frame prediction, that is, to determine the value of the first variable.

[0178] In some embodiments, the prediction parameters of the current child node include a second variable of the current child node, which is used to indicate the occupancy status of the predicted child node in the reference image. Different occupancy statuses correspond to different sets of inter-frame entropy decoding parameters.

[0179] In some embodiments, the prediction parameters of the current child node include a first variable and a second variable of the current child node. Occupancy is categorized into at least two cases: non-occupied and occupied. A target entropy decoding parameter set is determined from a candidate inter-frame entropy decoding parameter set. The candidate inter-frame entropy decoding parameter set includes one or more inter-frame entropy decoding parameter sets, including: determining the target entropy decoding parameter set as a first inter-frame entropy decoding parameter set when the second variable indicates that the predicted child node of the current child node is non-occupied; and determining the target entropy decoding parameter set as a second inter-frame entropy decoding parameter set when the second variable indicates that the predicted child node of the current child node is occupied.

[0180] In some embodiments, the occupancy status can be further subdivided into two or more occupancy statuses based on the occupancy intensity. When the predicted child node is occupied, the target entropy decoding parameter set is determined based on the occupancy intensity of the predicted child node. The occupancy intensity includes two or more intensities, with different occupancy intensities corresponding to different entropy decoding parameter sets.

[0181] For example, the target entropy decoding parameter set is determined based on the predicted occupancy intensity of the child node, including: when the predicted occupancy intensity of the child node is a first intensity, the target entropy decoding parameter set is determined as a second inter-frame entropy decoding parameter set; when the predicted occupancy intensity of the child node is a second intensity, the target entropy decoding parameter set is determined as a third inter-frame entropy decoding parameter set.

[0182] In other words, an entropy decoding parameter set is allocated to the current child node based on the predicted occupancy status of the child node. The first inter-frame entropy decoding parameter set includes multiple entropy decoding parameters for the current child node when the predicted child node is not occupied; the second inter-frame entropy decoding parameter set includes multiple entropy decoding parameters for the current child node when the predicted child node is occupied; and the third inter-frame entropy decoding parameter set includes multiple entropy decoding parameters for the current child node when the predicted child node is strongly occupied. In this embodiment, for inter-frame prediction, the entropy decoding parameter set is selected based on whether the current child node is predicted to be not occupied, occupied, or strongly occupied, fully utilizing the correlation between sparse and non-sparse context states in inter-frame prediction to improve the accuracy of inter-frame prediction.

[0183] For example, the occupancy strength of a predicted child node is related to the number of occupied nodes in the predicted child node. For example, when the number of occupied nodes in the predicted child node is greater than a first threshold, the occupancy strength is determined to be strong occupancy (i.e., 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 occupancy (i.e., second strength).

[0184] It should be noted that in some embodiments, more occupation intensities can be divided according to the number of occupied nodes, that is, more sets of inter-frame entropy decoding parameters can be set, which will not be elaborated here.

[0185] In other embodiments, 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 based on the local sparsity category.

[0186] For example, when the local sparse category is the first category, the target entropy decoding parameter set is determined as the fourth inter-frame entropy decoding parameter set; when the local sparse category is the second category, the target entropy decoding parameter set is determined as the fifth inter-frame entropy decoding parameter set. In other words, even when the current child node is in inter-frame prediction mode, the inter-frame entropy decoding parameter set can be assigned according to the local sparse category of the current child node.

[0187] In some embodiments, the candidate intra-frame entropy decoding parameter set includes an intra-frame entropy decoding parameter set. That is, if the current child node includes sparse context states and non-sparse context states that are mapped to the same intra-frame entropy decoding parameter set, for intra-frame prediction mode, an intra-frame entropy decoding parameter set is used for entropy decoding parameter mapping to improve intra-frame coding efficiency with minimal memory increment.

[0188] In some embodiments, the candidate intra-frame entropy decoding parameter set includes multiple intra-frame entropy decoding parameter sets. Determining the target entropy decoding parameter set from the candidate intra-frame entropy decoding parameter set includes: determining the target entropy decoding parameter set from the candidate intra-frame entropy decoding parameter set according to the local sparsity category. That is, for intra-frame prediction modes, sparse context states and non-sparse context states can also be mapped to different intra-frame entropy decoding parameter sets to further improve intra-frame coding efficiency.

[0189] For example, when the local sparse category is the first category, the target entropy decoding parameter set is determined as 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 as the second intra-frame entropy decoding parameter set. In other words, when the current child node enables intra-frame prediction mode, the intra-frame entropy decoding parameter set is allocated according to 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.

[0190] S104: Based on the target context state of the current child node, determine the target entropy decoding parameters of the current child node from the target entropy decoding parameter set;

[0191] The context state is used to index the corresponding target entropy decoding parameter. In some embodiments, determining the target entropy decoding parameter of the current child node from the target entropy decoding parameter set based on the target context state includes: determining the index value of the target entropy decoding parameter based on the target context state and the second 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. That is, 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.

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

[0193] In some embodiments, the context state is the first probability of the current child node occupying or not occupying an area under the current context information; it can also be called the first context of the child node or the first context probability model. The target entropy decoding parameter is the second probability of the current child node occupying or not occupying an area under the current context information; it can also be called the second context of the child node or the second context probability model. Therefore, the context state can also be understood as an intermediate probability, the entropy decoding parameter can be understood as a final probability, and the entropy decoding parameter set can also be understood as a simplified set of context states.

[0194] When the context information bits are 19, the maximum is 2. 19 Each context state has 16 bits for context information, with a maximum of 2... 16There are numerous context states in the current child node's context state set, while the target entropy decoding parameter set contains a much smaller number of entropy decoding parameters. In this embodiment, the current child node's context state set contains a large number of context states; directly using these context states for entropy decoding results in low decoding efficiency. The target entropy decoding parameter set contains a smaller number of entropy decoding parameters. By mapping the numerous context states in the current child node's context state set to the fewer entropy decoding parameters in the target entropy decoding parameter set, the entropy decoding parameters are simplified, improving decoding efficiency.

[0195] In this embodiment of the application, the method for constructing inter-frame context information is the same as that for intra-frame context information. For example, the intra-frame context construction scheme can be:

[0196] (1) For child node 0, it has child node neighbors that share a face, an edge, or a vertex; it has no decoded sibling nodes; it has a parent node neighbor that shares a face; and it has 20 other decoded neighbors that can be referenced. When it is determined to be a non-sparse class, the context bins are 19 bits, with a maximum of 2. 19 Each state is defined with the high 6 bits as primary information and the low 13 bits as unreduced secondary information. When classified as a sparse class, the context bins are 16 bits, with a maximum of 2... 16 Each state is represented by the high 4 bits as primary information and the low 12 bits as unreduced secondary information.

[0197] The local sparsity of child node 0 can be determined by the number (NN) of the 12 child nodes already decoded in the negative x, y, and z directions adjacent to the current child node in Figure 10. If the number of occupancy NN > 1, it is classified as non-sparse; if the number of occupancy NN ≤ 1, it is classified as sparse. For example, Figure 10 shows a schematic diagram of the distribution of child neighbor nodes and coplanar parent neighbor nodes of child node 0, and Figure 11 shows a schematic diagram of the distribution order of the 20 parent neighbor nodes of child node 0. The numbers 1, 2, 4, 8, 16, and 32 represent the numbers of the neighbor nodes.

[0198] Table 1 Context information of child node 0

[0199] Table 1 shows the explanation of each bit of context information corresponding to child node 0. The order from the most significant bit to the least significant bit reflects the importance of the information. The black-filled 1s or 0s represent the current category flag. For example, three directions indicate that context nodes are occupied simultaneously in the Left, Front, and Bottom directions; two 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 one direction indicates that context nodes are occupied in the Left, Front, and Bottom directions. The NOT operation "!" represents the information after the actual sign of the bit is inverted. In addition, this also covers co-planar child nodes, edge-sharing child nodes, point-sharing child nodes, edge-sharing child nodes, and same-position child nodes. In Table 1, the symbols are explained as follows: B (Bottom), F (Front), and L (Left) are the parent neighbors of the current node in Figure 10, numbered 16, 4, and 2, which are coplanar neighbors. 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, share an edge, or share a vertex with the current child node in these three directions. It should be noted that the English abbreviations B, F, and L represent the coplanar, edge-shared, and vertex-shared child nodes of the current child node, while the full English name Botto represents the same node. m, Front, and Left represent the coplanar, edge-sharing, and vertex-sharing parent neighbors of the current child node; Top, Back, and Right are the parent neighbors numbered 32, 8, and 1 of the six coplanar neighbors of the current node in Figure 10. Since these three decoded nodes are located in the positive direction of the current node's coordinate axis, their child node occupancy information is unavailable, and their correlation is weaker than the aforementioned 12 child neighbor nodes; other numbers in Table 1, such as 9, 4, 1, and 2, are the sequence numbers of the 20 edge-sharing / vertex-sharing neighbors of the current node, excluding the six coplanar parent neighbors, as shown in Figure 11; for the sibling child nodes in Table 1... bit0 B bit0 F, bit0 L can be understood as follows: among the decoded Bottom, Front, and Left nodes, there also exists a child node with the number 0. This node is called a sibling child node. The two letters in the table, such as LF, LB, and FB, represent the occupancy information of the two child nodes that share an edge with the current child node between the Left and Front directions (obtained through placeholder code 1 in the 20 neighbors), the occupancy information of the two child nodes that share an edge with the current child node between the Left and Bottom directions (obtained through placeholder code 8 in the 20 neighbors), and the occupancy information of the two child nodes that share an edge with the current child node between the Front and Bottom directions (obtained through placeholder code 3 in the 20 neighbors).

[0200] (2) For child node 1, it has child node neighbors that share a face, an edge, and a vertex; it has one decoded sibling node (bit 0); it has a parent node neighbor that shares a face; and it has 20 other decoded neighbors that can be referenced. When it is determined to be a non-sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is defined with the high 6 bits as primary information and the low 13 bits as unreduced secondary information. When classified as a sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is represented by the high 7 bits as primary information and the low 12 bits as unreduced secondary information.

[0201] The local sparsity of child node 1 can be determined by the number (NN) of the four decoded child nodes in the negative y-direction (Front) adjacent to the current child node in Figure 10. If the number of occupancy NN > 0, it is classified as non-sparse; if the number of occupancy NN = 0, it is classified as sparse. Table 2 explains the context information of each bit in bins. It can be seen that the occupancy information of the decoded sibling node 0 has the highest importance and is located in the highest bit of bins.

[0202] (3) For child node 2, it has child node neighbors that share a face, an edge, and a vertex; it has two decoded sibling nodes (bits 0 and 1); it has a parent node neighbor that shares a face; and it has 20 other decoded neighbors that can be referenced. When it is determined to be a non-sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is defined with the high 6 bits as primary information and the low 13 bits as unreduced secondary information. When classified as a sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is represented by the high 7 bits as primary information and the low 12 bits as unreduced secondary information.

[0203] The local sparsity of child node 2 can be determined by the number (NN) of the four decoded child nodes in the negative z-direction (bottom) adjacent to the current child node in Figure 10. If the number of occupancy NN > 0, it is classified as non-sparse; if the number of occupancy NN = 0, it is classified as sparse. Table 3 explains the context information of each bit in bins. It can be seen that the occupancy information of the decoded sibling node 0 has the highest importance and is located in the highest bit of bins.

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

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

[0206] (4) For child node 3, it has child node neighbors that share a face, an edge, or a point; it has three decoded sibling nodes (bit0, bit1, and bit2); it has a parent node neighbor that shares a face; and it has 20 other decoded neighbors that can be referenced. When it is determined to be a non-sparse class, the context bins are 17 bits, with a maximum of 2... 17 Each state is defined with the high 6 bits as primary information and the low 11 bits as unreduced secondary information. When classified as a sparse class, the context bins are 18 bits, with a maximum of 2... 18 Each state is represented by the high 6 bits as primary information and the low 12 bits as unreduced secondary information.

[0207] For the local sparsity of child node 3, it can be determined as follows: the three nodes bit0+bit1+bit2 and the four nodes that have been decoded in the negative x direction (Left) adjacent to the current child node in Figure 10 are together as NN. If the number of occupancy NN>1, it is determined to be a non-sparse category. If the number of occupancy NN≤1, it is determined to be a sparse category.

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

[0209] (5) For child node 4, it has child node neighbors that share a face, an edge, or a point; it has four decoded sibling nodes (bit0, bit1, bit2, and bit3); it has a parent node neighbor that shares a face; and it has 20 other decoded neighbors that can be referenced. When it is determined to be a non-sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is defined with the high 6 bits as primary information and the low 13 bits as unreduced secondary information. When classified as a sparse class, the context bins are 16 bits, with a maximum of 2... 16 Each state is represented by the high 4 bits as primary information and the low 12 bits as unreduced secondary information.

[0210] For the local sparsity of child node 4, it can be determined as NN by the following 12 nodes: bit0+bit1+bit2+bit3 (denoted as "new Left"), the 4 nodes that have been decoded in the negative y direction (Front) and the 4 nodes that have been decoded in the negative z direction (Bottom) adjacent to the current child node in Figure 10. If the number of occupancy NN>1, it is determined to be a non-sparse category; if the number of occupancy NN≤1, it is determined to be a sparse category.

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

[0212] (5) For child node 5, there are child node neighbors that share a face, an edge, or a point with it. It has 5 decoded sibling nodes (bit0, bit1, bit2, bit3, and bit4), a parent node neighbor that shares a face with it, and 20 other decoded neighbors that can be referenced. When determined to be a non-sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is defined with the high 6 bits as primary information and the low 13 bits as unreduced secondary information. When classified as a sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is represented by the high 7 bits as primary information and the low 12 bits as unreduced secondary information.

[0213] For the local sparsity of child node 5, it can be determined by using the negative y-direction (Front) adjacent to the current child node in Figure 10 as NN. If the number of occupancy NN>0, it is determined to be a non-sparse category, and if the number of occupancy NN=0, it is determined to be a sparse category.

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

[0215] (7) For child node 6, there are child node neighbors that share a face, an edge, or a point with it. It has 6 decoded sibling nodes (bit0, bit1, bit2, bit3, bit4, and bit5), a parent node neighbor that shares a face with it, and 20 other decoded neighbors that can be referenced. When determined to be a non-sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is defined with the high 6 bits as primary information and the low 13 bits as unreduced secondary information. When classified as a sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is represented by the high 7 bits as primary information and the low 12 bits as unreduced secondary information.

[0216] For the local sparsity of child node 6, it can be determined by using the negative z direction (Bottom) adjacent to the current child node in Figure 10 as NN. If the number of occupancy NN>0, it is determined to be a non-sparse category, and if the number of occupancy NN=0, it is determined to be a sparse category.

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

[0218] (8) For child node 7, there are no child node neighbors that share a face, edge, or point with it. It has 7 decoded sibling nodes (bit0, bit1, bit2, bit3, bit4, bit5, and bit6), a parent node neighbor that shares a face with it, and 20 other decoded neighbors that can be referenced. When determined to be a non-sparse class, the context bins are 17 bits, with a maximum of 2... 17Each state is defined with the high 6 bits as primary information and the low 11 bits as unreduced secondary information. When classified as a sparse class, the context bins are 18 bits, with a maximum of 2... 18 Each state is represented by the high 6 bits as primary information and the low 12 bits as unreduced secondary information.

[0219] For the local sparsity of child node 7, it can be determined as NN based on the following 7 nodes: bit0+bit1+bit2+bit3+bit4+bit5+bit6. If the number of occupancy NN>1, it is determined to be a non-sparse class; if the number of occupancy NN≤1, it is determined to be a sparse class.

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

[0221] It should be noted that the black-filled 1s or 0s represent the current classification flag, and each bit can also be assigned a practical meaning. The NOT operation can also be removed from the bits involved in the NOT operation.

[0222] S105: Perform entropy decoding on the bitstream based on the target entropy decoding parameters to determine the occupancy information of the current child node.

[0223] In some embodiments, the method further includes: updating the target entropy decoding parameters and the target context state based on the current child node's occupancy information.

[0224] By adopting the above technical solution, in G-PCC, the inter-frame context state set no longer shares the entropy decoding parameter set with the intra-frame context state set. Instead, it distinguishes different entropy decoding parameter sets based on prediction information, making full use of prediction information and improving the geometric decoding efficiency of G-PCC.

[0225] Based on the above embodiments, the decoding method provided in this application is further illustrated with examples, as shown in Figure 13. Specifically, this decoding method is a method for decoding point cloud geometric information, which may include:

[0226] S201: Local Sparsity Determination

[0227] Based on the occupancy information of the decoded neighbor nodes, the local sparsity (isSparse) of the symbol bn to be decoded is determined. For example, for child node 0, the local sparsity is determined according to the number (NN) of the 12 child nodes that have been decoded in the negative xyz directions adjacent to the current child node. If the number of occupancy NN>1, it is non-sparse (isSparse is 0), and if the number of occupancy NN≤1, it is sparse (isSparse is 1).

[0228] Based on 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, thereby reducing the number of context state sets to half that of related technologies.

[0229] S202: Inter-frame prediction determination

[0230] In some embodiments, the value of isInter is determined by the inter-frame prediction enable flag (gbh.interPredictionEnabledFlag) of the unit to be decoded. The unit to be decoded may include at least one of the following: a sequence to be decoded, a frame to be decoded, a slice to be decoded, etc. In some embodiments, the unit to be decoded is a slice to be decoded. The value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which indicates whether upper-layer inter-frame prediction is enabled. If inter-frame prediction is enabled, it is called a P-frame, and isInter is 1; otherwise, if it is not enabled, it is called an I-frame, and isInter is 0.

[0231] S203: Context State Selection

[0232] First, the set of context states to use is determined based on whether the context is sparse. If it is not sparse, the non-sparse context state set (NSparse state) is used; if it is sparse, the sparse context state set (Sparse state) is used. The methods used to construct the context information in the non-sparse and sparse context state sets can be either the methods used in OBUF or the methods used in dynamic OBUF.

[0233] In some embodiments, the inter-frame context construction method can adopt the same construction method as the intra-frame context, that is, different prediction modes can share the same context state set. It is only necessary to select the context state set of the current child node according to the local sparse category, thereby reducing the number of context states, reducing memory usage, and improving decoding efficiency.

[0234] Secondly, within the selected set of context states, the target context state of the child node to be decoded is obtained based on its context information, i.e., the probability P of the child node to be decoded occupying (or not occupying) this context is obtained. S .

[0235] S204: Entropy Decoding Parameter Selection

[0236] First, based on the first variable of the current child node (e.g., isInter), determine whether the current child node has enabled inter-frame prediction;

[0237] If inter-frame communication is disabled: Non-sparse context states and sparse context states are mapped to the same set of entropy decoding parameters, also known as an intradecoder set. Each decoder contains corresponding entropy decoding parameters, which can also be understood as a type of context state. The context state set includes a large number of context states, while the decoder set contains a concise set of context states. Based on the mapping relationship between the context state set and the entropy decoding parameter set, a target entropy decoding parameter set is selected. In this embodiment, the mapping relationship is many-to-one. In other embodiments, the mapping relationship can be one-to-one or one-to-many.

[0238] If inter-frame operation is enabled: based on the second variable of the current child node (e.g., the predicted occupancy information bp of the child node). i The set of entropy decoding parameters used for inter-frame prediction is determined. The specific method is shown in Figure 12.

[0239] If inter-frame is enabled: the non-sparse context state and the sparse context state are mapped to two sets of entropy decoding parameters, also known as the decoder set.

[0240] If a non-sparse context state is used, when the prediction is that it is not occupied, i.e., bp i =0, mapped to the decoder group (InterPred0Decoder); when the prediction is occupied, i.e., bp i =1, mapped to the decoder group (InterPred1 Decoder);

[0241] Sparse context state, when predicted to be non-occupied, i.e., bp i =0, mapped to the decoder group (InterPred0 Decoder); when the prediction is occupied, i.e., bp i =1, mapped to the decoder group (InterPred1 Decoder).

[0242] In other words, for inter-frame prediction mode, sparse context state and non-sparse context state are mapped to two sets of entropy decoding parameters. The set of entropy decoding parameters is selected only based on whether the prediction is non-occupied or occupied, making full use of the correlation between inter-frame sparse context state and inter-frame non-sparse context state to improve the accuracy of inter-frame prediction.

[0243] Secondly, within a defined decoder group, the context state P of bn is mapped according to certain mapping rules. SMapping to decoder Ci. The mapping rule can be to take the high 5 bits of the context state; the value of this high 5 bits is the index of the mapped decoder, and the probability of mapping decoder Ci is P. C .

[0244] S205: Adaptive Arithmetic Decoding

[0245] The probability P of using the determined decoder Ci C Adaptive arithmetic decoding is performed on the occupancy information bn of the child node to be decoded.

[0246] The decoding method provided in this application uses the same decoder group for intra-frame prediction and for inter-frame prediction, while using two separate decoder groups for both. This fully utilizes inter-frame prediction information to select the optimal decoder group for the current child node and further selects the optimal entropy decoder based on context information, thus 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.

[0247] In another embodiment of this application, see Figure 13, which shows a flowchart of an encoding method provided by an embodiment of this application.

[0248] As shown in Figure 13, the method may include:

[0249] S301: Determine the context information of the current child node based on the occupancy information of the current child node's encoded context node;

[0250] It should be noted that the encoding method in this application embodiment is applied to a point cloud encoder. Specifically, this encoding method can refer to a method for encoding point cloud geometric information. More specifically, this application embodiment provides an entropy encoding method for point cloud geometric information. In G-PCC, the inter-frame context state set no longer shares the entropy encoding parameter set with the intra-frame context state set. Instead, different entropy encoding parameter sets are distinguished based on prediction information to perform entropy encoding of point cloud geometric information. This fully utilizes prediction information, improving G-PCC geometric encoding efficiency and saving bitrate while maintaining the same encoding quality.

[0251] It should be noted that the current child node is any child node in 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.

[0252] For example, a context node includes at least one of the following: an encoded sibling node of the current child node; encoded neighbor child nodes of the current child node that share a face, an edge, or a vertex; an encoded neighbor parent node of the current child node that shares a face or an edge; or other encoded neighbor nodes of the current child node. The context node scanning order can be: encoded sibling node of the current child node > encoded neighbor of the current child node that shares a face > encoded neighbor of the current child node that shares an edge > encoded neighbor of the current child node that shares a vertex > encoded neighbor of the current child node > encoded neighbor of the current child node that shares another child node > encoded neighbor of the current child node that shares a face > encoded neighbor of the current child node that shares an edge > 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.

[0253] For example, determining the context information of the current child node based on the occupancy information of the current child node's encoded context node may include: determining the context information of the current child node based on the occupancy information of the current child node's encoded context node and a first construction strategy.

[0254] The first construction strategy indicates how to generate context information based on the occupancy information of context nodes. The first construction strategy may include: constructing context information according to a preset context node scanning order and context node occupancy information; or, constructing first and second information of the context information according to a preset context information composition structure and 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 can be primary information, and the second information can be secondary information, with the inclusion of certain information within the secondary information as context information dynamically adjusted.

[0255] Step 302: Based on the context information of the current child node, determine the target context state of the current child node from the context state set of the current child node;

[0256] The context state set includes one or more context states, and one or more context information is mapped to a context state.

[0257] The context information of the current child node is used to characterize the occupancy status of the context nodes of the current child node. The context state is the probability that the current child node occupies or does not occupy the context under the current context information. The context state set of the current child node records the context state corresponding to one or more context information. The context information of the current child node can be used as an index to index the context state set of the current child node to determine the target context state of the current child node.

[0258] In some embodiments, the current child node's context state set can be a preset context state set.

[0259] In some embodiments, the context state set of the current child node can also be a specific context state set from a variety of preset context state sets. The context state sets used by inter-frame prediction mode and intra-frame prediction mode can be the same or different.

[0260] In some embodiments, the method may further include: determining the local sparsity class of the current child node based on the occupancy information of the encoded neighboring nodes of the current child node; and determining the context state set of the current child node based on the local sparsity class of the current child node.

[0261] Local sparsity categories are used to indicate the local sparsity of the encoded neighbor nodes of the current child node. A local sparsity category can include one or more sparse categories and one or more non-sparse categories. In some embodiments, determining the local sparsity category of the current child node based on the occupancy information of its encoded neighbor nodes includes: determining the number of occupied neighbor nodes based on the occupancy information; and determining the local sparsity category of the current child node based on the number of occupied neighbor nodes. That is, based on the occupancy information of neighbor nodes (i.e., whether they are occupied), the number of occupied neighbor nodes (i.e., the number N of occupied neighbor nodes) can be determined, and different local sparsity categories can be distinguished based on the number of occupied neighbor nodes.

[0262] For example, if the number of occupied neighboring nodes is greater than a second threshold, the current child node's local sparse category is determined to be the first category; if the number of occupied neighboring nodes is less than or equal to the second threshold, the current child node's local sparse category 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 be included.

[0263] In this embodiment, the local sparsity of the current child node is determined by considering the occupancy information of the encoded neighbor nodes and the position of the child node relative to the parent node. For example, the neighbor nodes include at least one of the following: the encoded sibling node of the current child node; the encoded neighbor child node in a first preset direction adjacent to the current child node; the encoded neighbor child node in a second preset direction adjacent to the current child node; and the encoded neighbor child node in a third preset direction adjacent to the current child node. The first preset direction can refer to the negative x-axis direction (Left direction) of the current child node, the second preset direction can refer to the negative y-axis direction (Front direction) of the current child node, and the third preset direction can refer to the negative z-axis direction (Bottom direction) of the current child node. That is, the local sparsity category can be established according to the number of occupancy of the encoded neighbor nodes in the negative xyz directions adjacent to the current child node. It should be noted that the encoded neighbor nodes of the current child node may or may not be completely identical to the context nodes of the current node.

[0264] For example, the local sparsity category is denoted as isSparse. Different values ​​of isSparse represent different local sparsity categories. The value of isSparse for the child node to be encoded is determined based on the occupancy of the encoded neighboring nodes. For example, the local sparsity category of child node 0 can be determined according to the occupancy count (NN) of the 12 encoded child nodes in the negative xyz directions adjacent to the current child node in Figure 10. An occupancy count NN > 1 indicates non-sparseness (isSparse = 0), and an occupancy count NN ≤ 1 indicates sparseness (isSparse = 1). The local sparsity category of child node 1 can be determined according to the occupancy count (NN) of the 4 encoded child nodes in the negative y direction (Front) adjacent to the current child node in Figure 10. If the occupancy count NN > 0, it is determined to be a non-sparse category; if the occupancy count NN = 0, it is determined to be a sparse category. For the local sparsity category of child node 2, it can be determined by the number of occupancy (NN) of the four child nodes already encoded in the negative z-direction (Bottom) adjacent to the current child node in Figure 10. If the number of occupancy NN > 0, it is determined to be a non-sparse category; if the number of occupancy NN = 0, it is determined to be a sparse category. For the local sparsity category of child node 3, it can be determined by using the seven nodes: bit0 + bit1 + bit2 and the four nodes already encoded in the negative x-direction (Left) adjacent to the current child node in Figure 10, as NN. If the number of occupancy NN > 1, it is determined to be a non-sparse category; if the number of occupancy NN ≤ 1, it is determined to be a sparse category. It should be noted that different local sparsity categories correspond to different context state sets. The corresponding context state sets can be pre-configured for different local sparsity categories, and then the context state set of the current child node can be determined based on the local sparsity category of the current child node.

[0265] For example, when the local sparse category is the first category, the set of context states for the current child node is determined as the first context state set; when the local sparse category is the second category, the set of context states for the current child node is determined as the second context state set. In practical applications, more context state sets can be included. The first context state set includes one or more context states of the first category, with each context state corresponding to context information of the first category. The second context state set includes one or more context states of the second category, with each context state corresponding to context information of the second category.

[0266] In some embodiments, there is a one-to-one correspondence between context information and context states in the context state set. Context information serves as the index information of the context state set to index the corresponding context state. Context information is used to characterize the occupancy status of the context node of the child node to be encoded. The context state represents the first probability of the child node to be encoded occupying or not occupying a given context state; it can also be called the context of the child node to be encoded or the contextual probability model. For example, if the context information has 19 bits, there are 2... 19 Context information, up to 2 19 There are two context states; if the context information is 16 bits, there are 2 16 Context information, up to 2 16 Each context state.

[0267] In some embodiments, the context information and context states in the context state set have a many-to-one correspondence. For example, if the context information has 19 bits, there are 2... 19 Context information, up to 2 19 To reduce the number of context states, we will use 2. 19 One context information is mapped to T context states, where T is less than 2. 19 For example, the value of T can be 64, 128, 256, 512, etc.

[0268] In some embodiments, the index value of the target context state is determined based on the context information of the current child node and a first mapping relationship; based on the index value of the target context state, the target context state of the current child node is selected from the context state set of the current child node. For example, the second mapping relationship may include: determining the index value of the target context state based on the high N bits of the context state; where N is related to the number of context states.

[0269] In some embodiments, intra-frame prediction mode and inter-frame prediction mode share one or more context state sets. For example, it is necessary to select the context state set of the current child node based on the local sparsity category. Compared with related technologies that divide the context state into four sets, including context state group 1 (contextStateGroup1), context state group 2 (contextStateGroup2), context state group 3 (contextStateGroup3), and context state group 4 (contextStateGroup4), some embodiments of this application only need to divide the context state into two sets, including the non-sparse context state set (NSparse state) and the sparse context state set (Sparse state), which significantly reduces the number of context states and reduces memory usage.

[0270] S303: Based on the prediction parameters of the current child node, determine the target entropy encoding parameter set of the current child node;

[0271] The target entropy coding parameter set includes multiple entropy coding parameters, and one or more context states are mapped to one entropy coding parameter.

[0272] The prediction parameters of the current child node serve as the prediction information for the current child node, used to select a matching set of entropy coding parameters from multiple candidate entropy coding parameter sets. These multiple candidate entropy coding parameter sets include candidate intra-frame entropy coding parameter sets and candidate inter-frame entropy coding parameter sets. By distinguishing between intra-frame and inter-frame entropy coding parameter sets based on the prediction information of the current child node, entropy coding of the point cloud geometric information is performed, fully utilizing the prediction information and improving the efficiency of G-PCC geometric coding while maintaining the same coding quality.

[0273] The entropy coding parameter set includes various entropy coding parameters. The context state can serve as an index to determine the target entropy coding parameters of the current child node. Entropy coding parameters are any parameters used when entropy coding the occupancy information of a child node. In some embodiments, entropy coding parameters can be arithmetic coding parameters, and adaptive arithmetic coding of the child node's occupancy information is performed based on these parameters. For example, entropy coding parameters may include a second probability of the current child node occupying or not occupying the node, also referred to as the context or contextual probability model of the child node to be encoded. In this case, the entropy coding parameter set can be understood as a context set or a contextual probability model set.

[0274] In some embodiments, the prediction parameters include a first variable of the current child node, which indicates the prediction mode of the current child node, and different prediction modes correspond to different sets of entropy coding parameters.

[0275] In some embodiments, determining the target entropy coding parameter set for the current child node based on the prediction parameters of the current child node includes: determining the target entropy coding parameter set from the candidate inter-frame entropy coding parameter set when the first variable indicates that inter-frame prediction mode is enabled; and determining the target entropy coding parameter set from the candidate intra-frame entropy coding parameter set when the first variable indicates that inter-frame prediction mode is not enabled.

[0276] The candidate inter-frame entropy coding parameter set includes one or more inter-frame entropy coding parameter sets, and 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 scenarios. When inter-frame prediction mode is enabled, a matching target entropy coding parameter set is selected based on the actual inter-frame prediction scenario 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 scenarios, and when intra-frame prediction mode is enabled, a matching target entropy coding parameter set is selected based on the actual intra-frame prediction scenario to improve the accuracy of intra-frame prediction.

[0277] In some embodiments, the method may further include: determining the value of a first variable of the current child node based on the value of a first syntax element. The value of the first syntax element is used to indicate whether the current node is allowed to enable inter-frame prediction mode.

[0278] In other words, whether the current child node enables inter-frame prediction mode is related to the value of the first syntax element. A first value for the first syntax element determines that the current node is allowed to enable inter-frame prediction mode, and the first variable is determined to be a first value; a second value for the first syntax element determines that the current node is not allowed to enable inter-frame prediction mode, and the first variable is determined to be a second value. For example, the first syntax element identifier includes at least one of the following: sequence-level syntax elements, frame-level syntax elements, slice-level syntax elements, etc. A value of 1 for the first syntax element allows inter-frame prediction to be enabled; a value of 0 for the first syntax element disallows inter-frame prediction.

[0279] For example, the value of the first variable is determined based on the inter-frame prediction enable flag (gbh.interPredictionEnabledFlag) of the unit to be encoded.

[0280] In some embodiments, the method further includes: if the value of the first syntax element indicates that the current node is allowed to enable inter-frame prediction mode, determining the value of the first variable of the current child node based on the occupancy information of the predicted node in the reference image of the current node.

[0281] Whether the current child node enables inter-frame prediction mode depends on the value of the first syntax element and the occupancy information of the predicted node of the current node (the parent node of the current child node). For example, a value of 0 indicates no occupancy, and a value of 1 indicates occupancy. That is, when the predicted node is occupied, the current node enables inter-frame prediction, making full use of inter-frame prediction information to improve prediction accuracy; otherwise, inter-frame prediction is not enabled.

[0282] 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 the occupancy information of multiple predicted child nodes in the predicted node; if the occupancy information of at least one predicted child node in the predicted node indicates occupancy, then the occupancy information of the predicted node is determined to be occupied; otherwise, the occupancy information of the predicted node is determined to be unoccupied. That is, if at least one child node in the predicted node is occupied, then the value of its occupancy information is set to 1; conversely, if no child node is occupied, then the value of its occupancy information is set to 0.

[0283] For example, based on the inter-frame prediction placeholder information of the unit to be encoded for the current node in the reference unit and the enable flag (gbh.interPredictionEnabledFlag) of the unit to be encoded, it is determined whether to enable inter-frame prediction, that is, to determine the value of the first variable.

[0284] In some embodiments, the prediction parameters of the current child node include a second variable of the current child node, which is used to indicate the occupancy status of the predicted child node in the reference image. Different occupancy statuses correspond to different sets of inter-frame entropy coding parameters.

[0285] In some embodiments, the prediction parameters of the current child node include a first variable and a second variable of the current child node. Occupancy is categorized into at least two cases: non-occupied and occupied. A target entropy coding parameter set is determined from the candidate inter-frame entropy coding parameter set. The candidate inter-frame entropy coding parameter set includes one or more inter-frame entropy coding parameter sets, including: determining the target entropy coding parameter set as a first inter-frame entropy coding parameter set when the second variable indicates that the predicted child node of the current child node is non-occupied; and determining the target entropy coding parameter set as a second inter-frame entropy coding parameter set when the second variable indicates that the predicted child node of the current child node is occupied.

[0286] In some embodiments, the occupancy status can be further subdivided into two or more occupancy statuses based on the occupancy intensity. When the predicted child node is occupied, the target entropy coding parameter set is determined based on the occupancy intensity of the predicted child node. The occupancy intensity includes two or more intensities, with different occupancy intensities corresponding to different entropy coding parameter sets.

[0287] For example, the target entropy coding parameter set is determined based on the predicted occupancy intensity of the child node, including: when the predicted occupancy intensity of the child node is a first intensity, the target entropy coding parameter set is determined as a second inter-frame entropy coding parameter set; when the predicted occupancy intensity of the child node is a second intensity, the target entropy coding parameter set is determined as a third inter-frame entropy coding parameter set.

[0288] In other words, an entropy coding parameter set is allocated to the current child node based on the predicted occupancy status of the child node. The first inter-frame entropy coding parameter set includes multiple entropy coding parameters for the current child node when the predicted child node is not occupied; the second inter-frame entropy coding parameter set includes multiple entropy coding parameters for the current child node when the predicted child node is occupied; and the third inter-frame entropy coding parameter set includes multiple entropy coding parameters for the current child node when the predicted child node is strongly occupied. In this embodiment, for inter-frame prediction, the entropy coding parameter set is selected based on whether the current child node is predicted to be not occupied, occupied, or strongly occupied, fully utilizing the correlation between sparse and non-sparse context states in inter-frame prediction to improve the accuracy of inter-frame prediction.

[0289] For example, the occupancy strength of a predicted child node is related to the number of occupied nodes in the predicted child node. For example, when the number of occupied nodes in the predicted child node is greater than a first threshold, the occupancy strength is determined to be strong occupancy (i.e., 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 occupancy (i.e., second strength).

[0290] It should be noted that in some embodiments, more occupation intensities can be divided according to the number of occupied nodes, that is, more sets of inter-frame entropy coding parameters can be set, which will not be elaborated here.

[0291] In 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 based on the local sparsity category.

[0292] For example, when the local sparse 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 sparse 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, even when the current child node is in inter-frame prediction mode, the inter-frame entropy coding parameter set can be assigned according to the local sparse category of the current child node.

[0293] In some embodiments, the candidate intra-frame entropy coding parameter set includes an intra-frame entropy coding parameter set. That is, if the current child node includes sparse context states and non-sparse context states that are mapped to the same intra-frame entropy coding parameter set, for intra-frame prediction modes, an intra-frame entropy coding parameter set is used for entropy coding parameter mapping to improve intra-frame coding efficiency with minimal memory increment.

[0294] In some embodiments, the candidate intra-frame entropy coding parameter set includes multiple intra-frame entropy coding parameter sets. 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 based on the local sparsity category. That is, for intra-frame prediction modes, sparse context states and non-sparse context states can also be mapped to different intra-frame entropy coding parameter sets to further improve intra-frame coding efficiency.

[0295] For example, when the local sparse category is the first category, the target entropy coding parameter set is determined as the first intra-frame entropy coding parameter set; when the local sparse category is the second category, the target entropy coding parameter set is determined as the second intra-frame entropy coding parameter set. In other words, when the current child node enables intra-frame prediction mode, the intra-frame entropy coding parameter set is allocated according to the local sparse 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.

[0296] S304: Based on the target context state of the current child node, determine the target entropy encoding parameters of the current child node from the target entropy encoding parameter set;

[0297] The context state is used to index the corresponding target entropy encoding parameter. In some embodiments, determining the target entropy encoding parameter of the current child node from the target entropy encoding parameter set based on the target context state includes: determining the index value of the target entropy encoding parameter based on the target context state and the second mapping relationship; and determining the target entropy encoding parameter of the current child node from the target entropy encoding parameter set based on the index value of the target entropy encoding parameter. That is, in the target entropy encoding parameter set, the context state is mapped to the index value of a certain entropy encoding parameter according to a certain mapping rule to index the target entropy encoding parameter.

[0298] It should be noted that the mapping relationship between different sets of context states and sets of entropy coding parameters can be the same or different. For example, the second mapping relationship may include: determining the index value of the target encoder based on the high M bits of the context state; where M is related to the number of parameters in the target entropy coding parameter set. For example, when the number of parameters N in the target entropy coding parameter set is 32, the high 5 bits of the context state are taken, and their value is the index value of the target entropy coding parameter.

[0299] In some embodiments, the context state is the first probability of the current child node occupying or not occupying an area under the current context information; it can also be called the first context of the child node or the first context probability model. The target entropy encoding parameter is the second probability of the current child node occupying or not occupying an area under the current context information; it can also be called the second context of the child node or the second context probability model. Therefore, the context state can also be understood as an intermediate probability, the entropy encoding parameter can be understood as a final probability, and the entropy encoding parameter set can also be understood as a simplified set of context states.

[0300] When the context information bits are 19, the maximum is 2. 19 Each context state has 16 bits for context information, with a maximum of 2... 16 There are numerous context states in the current child node's context state set, while the target entropy encoding parameter set contains a much smaller number of entropy encoding parameters. In this embodiment, the current child node's context state set contains a large number of context states. Directly using these context states for entropy encoding results in low encoding efficiency. The target entropy encoding parameter set contains a smaller number of entropy encoding parameters. By mapping the numerous context states in the current child node's context state set to the fewer entropy encoding parameters in the target entropy encoding parameter set, the entropy encoding parameters are simplified, improving encoding efficiency.

[0301] S305: Based on the target entropy coding parameters, entropy coding is performed on the occupancy information of the current child node, and the obtained coded bits are written into the code stream.

[0302] In some embodiments, the method further includes: updating the target entropy encoding parameters and the target context state based on the current child node's occupancy information.

[0303] By adopting the above technical solution, in G-PCC, the inter-frame context state set no longer shares the entropy coding parameter set with the intra-frame context state set. Instead, it distinguishes different entropy coding parameter sets based on prediction information, making full use of prediction information, improving the geometric coding efficiency of G-PCC, and saving bit rate.

[0304] Based on the above embodiments, the encoding method provided in this application is further illustrated with examples, as shown in Figure 14. Specifically, this encoding method is a method for encoding point cloud geometric information, which may include:

[0305] S401: Local Sparsity Determination

[0306] Based on the occupancy information of the encoded neighbor nodes, the local sparsity (isSparse) of the symbol bn to be encoded is determined. For example, for child node 0, the local sparsity is determined according to the number (NN) of the 12 child nodes that have been encoded in the negative xyz directions adjacent to the current child node. If the number of occupancy NN>1, it is non-sparse (isSparse is 0), and if the number of occupancy NN≤1, it is sparse (isSparse is 1).

[0307] Based on 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, thereby reducing the number of context state sets to half that of related technologies.

[0308] S402: Inter-frame prediction determination

[0309] In some embodiments, the value of isInter is determined by the inter-frame prediction enable flag (gbh.interPredictionEnabledFlag) of the unit to be encoded. The unit to be encoded may include at least one of the following: a sequence to be encoded, a frame to be encoded, a slice to be encoded, etc. In some embodiments, the unit to be encoded is a slice to be encoded. The value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which indicates whether upper-layer inter-frame prediction is enabled. If inter-frame prediction is enabled, it is called a P-frame, and isInter is 1; otherwise, if it is not enabled, it is called an I-frame, and isInter is 0.

[0310] S403: Context State Selection

[0311] First, the set of context states to use is determined based on whether the context is sparse. If it is not sparse, the non-sparse context state set (NSparse state) is used; if it is sparse, the sparse context state set (Sparse state) is used. The methods used to construct the context information in the non-sparse and sparse context state sets can be either the methods used in OBUF or the methods used in dynamic OBUF.

[0312] In some embodiments, the inter-frame context construction method can adopt the same construction method as the intra-frame context, that is, different prediction modes can share the context state set, and only need to select the context state set of the current child node according to the local sparse category, thereby reducing the number of context states, reducing memory usage, and improving coding efficiency.

[0313] Secondly, within the selected set of context states, the target context state of the child node to be encoded is obtained based on its context information, i.e., the probability P that the child node to be encoded occupies (or does not occupy) under this context is obtained. S .

[0314] S404: Entropy Coding Parameter Selection

[0315] First, based on the first variable of the current child node (e.g., isInter), determine whether the current child node has enabled inter-frame prediction;

[0316] If inter-frame communication is disabled: Non-sparse context states and sparse context states are mapped to the same set of entropy coding parameters, also known as an Intra Coder. Each encoder contains corresponding entropy coding parameters, which can also be understood as a type of context state. The context state set includes a large number of context states, while the encoder group contains a concise set of context states. Based on the mapping relationship between the context state set and the entropy coding parameter set, a target entropy coding parameter set is selected. In this embodiment, the mapping relationship is many-to-one. In other embodiments, the mapping relationship can be one-to-one or one-to-many.

[0317] If inter-frame operation is enabled: based on the second variable of the current child node (e.g., the predicted occupancy information bp of the child node). i The set of entropy coding parameters used for inter-frame prediction is determined. The specific method is shown in Figure 14.

[0318] If inter-frame is enabled: the non-sparse context state and the sparse context state are mapped to two sets of entropy coding parameters, also known as encoder groups.

[0319] If a non-sparse context state is used, when the prediction is that it is not occupied, i.e., bp i =0, mapped to encoder group (InterPred0Coder); when the prediction is occupied, i.e., bp i =1, mapped to encoder group (InterPred1 Coder);

[0320] Sparse context state, when predicted to be non-occupied, i.e., bp i =0, mapped to encoder group (InterPred0 Coder); when the prediction is occupied, i.e., bp i =1, mapped to encoder group (InterPred1 Coder).

[0321] In other words, for inter-frame prediction mode, sparse context state and non-sparse context state are mapped to two sets of entropy coding parameters. The set of entropy coding parameters is selected only based on whether the prediction is non-occupied or occupied, making full use of the correlation between inter-frame sparse context state and inter-frame non-sparse context state to improve the accuracy of inter-frame prediction.

[0322] Secondly, within a defined encoder group, the context state P of bn is mapped according to certain mapping rules. S Mapping to encoder Ci. The mapping rule can be to take the high 5 bits of the context state; the value of this high 5 bits is the index of the mapped encoder, and the probability of mapping to encoder Ci is P. C .

[0323] S405: Adaptive Arithmetic Coding

[0324] The probability P of using the determined encoder Ci C Adaptive arithmetic coding is performed on the occupancy information bn of the child node to be encoded.

[0325] By employing the above technical solution, during intra-frame prediction, the sparse context state set and the non-sparse context state set share the same encoder group; during inter-frame prediction, the sparse context state set and the non-sparse context state set share two encoder groups. This fully utilizes inter-frame prediction information to select the optimal encoder group for the current child node, and further selects the optimal entropy encoder for encoding based on context information, thereby improving encoding efficiency. Furthermore, inter-frame context information and intra-frame context information can use the same construction method, and the number of inter-frame context states is the same as the number of intra-frame context states, significantly reducing the number of inter-frame context states and saving storage space.

[0326] Furthermore, performance tests were conducted on the technical solutions provided in the embodiments of this application. Table 9 shows the BD-Rate under lossy geometric information compression conditions, and Table 10 shows the bpip ratio under lossless geometric information compression conditions. The technical solutions provided in the embodiments of this application better utilize inter-frame prediction information, reducing memory usage while further improving the efficiency of G-PCC geometric coding. BD-Rate under lossy geometric information compression conditions: Compared with the prior art, under the same coding quality, the percentage reduction (negative BD-Rate) or increase (positive BD-Rate) in the coding rate of the technical solutions provided in the embodiments of this application compared to the prior art.

[0327] Table 9 BD-Rate for Lossy Compression of TM13-v25.0-Octree RAHT inter

[0328] Table 10. bpip ratio of TM13-v25.0-Octree RAHT intra-lossless compression

[0329] In another embodiment of this application, based on the same inventive concept as the foregoing embodiments, referring to FIG15, a schematic diagram of the composition structure of a point cloud encoder provided in an embodiment of this application is shown. As shown in FIG15, the point cloud encoder 150 may include: a first determining unit 1501, a second determining unit 1502, and an encoding unit 1503; wherein,

[0330] The first determining unit 1501 is configured to determine the context information of the current child node based on the occupancy information of the current child node's encoded context node; and to determine the target context state of the current child node from the context state set of the current child node based on the context information of the current child node, wherein the context state set includes one or more context states.

[0331] The second determining unit 1502 is configured to determine the target entropy coding parameter set of the current child node based on the prediction parameters of the current child node, wherein the target entropy coding parameter set includes multiple entropy coding parameters; and to determine the target entropy coding parameters of the current child node from the target entropy coding parameter set based on the target context state of the current child node.

[0332] Encoding unit 1503 is configured to entropy encode the occupancy information of the current child node based on the target entropy encoding parameters, and write the obtained encoded bits into the bit stream.

[0333] Understandably, each functional unit of the point cloud encoder also performs the encoding method of any of the aforementioned embodiments.

[0334] Understandably, in the embodiments of this application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular one. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit described above can be implemented in hardware or as a software functional module.

[0335] 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, in essence, or the part 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 to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the method of this embodiment. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0336] Therefore, this application provides a computer-readable storage medium applied to a point cloud encoder 150. The computer-readable storage medium stores a computer program, which, when executed by a first processor, implements the encoding method of any of the foregoing embodiments.

[0337] Based on the composition of the point cloud encoder 150 described above and the computer-readable storage medium, refer to Figure 16, which shows a schematic diagram of the specific hardware structure of the point cloud encoder 150 provided in this embodiment of the application. As shown in Figure 16, the point cloud encoder 150 may include: a first communication interface 1601, a first memory 1602, and a first processor 1603; the various components are coupled together through a first bus system 1604. It is understood that the first bus system 1604 is used to realize the connection and communication between these components. In addition to a data bus, the first bus system 1604 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as the first bus system 1604 in Figure 16.

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

[0339] The first memory 1602 is used to store computer programs that can run on the first processor 1603;

[0340] The first processor 1603 is used to execute the following when running computer programs:

[0341] Based on the occupancy information of the current child node's encoded context node, determine the context information of the current child node;

[0342] Based on the context information of the current child node, determine the target context state of the current child node from the context state set of the current child node, wherein the context state set includes one or more context states;

[0343] Based on the prediction parameters of the current child node, determine the target entropy coding parameter set of the current child node, where the target entropy coding parameter set includes multiple entropy coding parameters;

[0344] Based on the target context state of the current child node, determine the target entropy encoding parameters of the current child node from the target entropy encoding parameter set;

[0345] The occupancy information of the current child node is entropy encoded based on the target entropy encoding parameters, and the resulting encoded bits are written into the bit stream.

[0346] It is understood that the first memory 1602 in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The first memory 1602 of the system and method described in this application is intended to include, but is not limited to, these and any other suitable types of memory.

[0347] The first processor 1603 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed by the integrated logic circuitry in the hardware of the first processor 1603 or by instructions in software form. The first processor 1603 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules may reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in the first memory 1602. The first processor 1603 reads the information in the first memory 1602 and completes the steps of the above method in conjunction with its hardware.

[0348] It is understood that the embodiments described in this application can be implemented using hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions of this application, or combinations thereof. For software implementation, the technology of this application can be implemented through modules (e.g., procedures, functions, etc.) that perform the functions of this application. Software code can be stored in memory and executed by a processor. The memory can be implemented in the processor or external to the processor.

[0349] Alternatively, as another embodiment, the first processor 1603 is also configured to execute the encoding method of any of the foregoing embodiments when running a computer program.

[0350] This embodiment provides a point cloud encoder in which, in G-PCC, the inter-frame context state set no longer shares the entropy coding parameter set with the intra-frame context state set. Instead, it distinguishes different entropy coding parameter sets based on prediction information, making full use of prediction information, improving the geometric coding efficiency of G-PCC, and saving bit rate.

[0351] This application also provides a computer-readable storage medium for storing a bitstream generated by the encoding method of any of the foregoing embodiments. The bitstream is generated by bit encoding information to be encoded; the information to be encoded includes at least: occupancy information of the current child node, etc.

[0352] In another embodiment of this application, based on the same inventive concept as the foregoing embodiments, referring to FIG17, a schematic diagram of the composition structure of a point cloud decoder provided in an embodiment of this application is shown. As shown in FIG17, the point cloud decoder 170 may include: a third determining unit 1701, a fourth determining unit 1702, and a decoding unit 1703; wherein,

[0353] The third determining unit 1701 is configured to determine the context information of the current child node based on the occupation information of the current child node's decoded context node; and to determine the target context state of the current child node from the context state set of the current child node based on the context information of the current child node, wherein the context state set includes one or more context states.

[0354] The fourth determining unit 1702 is configured to determine the target entropy decoding parameter set of the current child node based on the prediction parameters of the current child node, wherein the target entropy decoding parameter set includes multiple entropy decoding parameters; and to determine the target entropy decoding parameters of the current child node from the target entropy decoding parameter set based on the target context state of the current child node.

[0355] Decoding unit 1703 is configured to perform entropy decoding on the bitstream based on the target entropy decoding parameters to determine the occupancy information of the current child node.

[0356] Understandably, each functional unit of the point cloud decoder also performs the decoding method of any of the aforementioned embodiments.

[0357] Understandably, 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 component. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional module.

[0358] 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, this embodiment provides a computer-readable storage medium applied to a point cloud decoder 170. This computer-readable storage medium stores a computer program, which, when executed by a second processor, implements the decoding method of any of the aforementioned embodiments.

[0359] Based on the composition of the point cloud decoder 170 described above and the computer-readable storage medium, refer to Figure 18, which shows a schematic diagram of the specific hardware structure of the point cloud decoder 170 provided in this embodiment of the application. As shown in Figure 18, the point cloud decoder 170 may include: a second communication interface 1801, a second memory 1802, and a second processor 1803; the various components are coupled together through a second bus system 1804. It is understood that the second bus system 1804 is used to realize the connection and communication between these components. In addition to a data bus, the second bus system 1804 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as the second bus system 1804 in Figure 18.

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

[0361] The second memory 1802 is used to store computer programs that can run on the second processor 1803;

[0362] The second processor 1803 is used to execute the following when running computer programs:

[0363] Based on the occupancy information of the current child node's decoded context node, determine the context information of the current child node;

[0364] Based on the context information of the current child node, determine the target context state of the current child node from the context state set of the current child node, wherein the context state set includes one or more context states;

[0365] Based on the prediction parameters of the current child node, determine the target entropy decoding parameter set of the current child node, where the target entropy decoding parameter set includes multiple entropy decoding parameters;

[0366] Based on the target context state of the current child node, determine the target entropy decoding parameters of the current child node from the target entropy decoding parameter set;

[0367] Entropy decoding is performed on the bitstream based on the target entropy decoding parameters to determine the occupancy information of the current child node.

[0368] Alternatively, as another embodiment, the second processor 1803 is also configured to execute any of the decoding methods in the foregoing embodiments when running a computer program.

[0369] It is understood that the second memory 1802 has similar hardware functions to the first memory 1602, and the second processor 1803 has similar hardware functions to the first processor 1603; these will not be described in detail here.

[0370] This embodiment also provides a computer program product, including a computer program or instructions, which, when executed by a processor, perform any of the encoding or decoding methods described in the foregoing embodiments.

[0371] This embodiment provides a point cloud decoder. In this point cloud decoder, in G-PCC, the inter-frame context state set no longer shares the entropy decoding parameter set with the intra-frame context state set. Instead, it distinguishes different entropy decoding parameter sets based on prediction information, making full use of prediction information and improving the geometric decoding efficiency of G-PCC.

[0372] In another embodiment of this application, referring to FIG19, a schematic diagram of the composition structure of an encoding and decoding system provided in an embodiment of this application is shown. As shown in FIG19, the encoding and decoding system 190 may include a point cloud encoder 1901 and a point cloud decoder 1902.

[0373] In this embodiment, the point cloud encoder 1901 can be any of the point cloud encoders in the foregoing embodiments, and the point cloud decoder 1902 can be any of the point cloud decoders in the foregoing embodiments.

[0374] It should be noted that, in this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.

[0375] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0376] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined to obtain new method embodiments without conflict. The features disclosed in the several product embodiments provided in this application can be arbitrarily combined to obtain new product embodiments without conflict. The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined to obtain new method embodiments or device embodiments without conflict.

[0377] The above are merely specific embodiments of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims. Industrial applicability

[0378] In this embodiment, regardless of whether it's at the encoding or decoding end, the context information of the current child node is determined based on the occupancy information of the decoded context nodes of the current child node; based on the context information of the current child node, the target context state of the current child node is determined from the context state set of the current child node; based on the prediction parameters of the current child node, the target entropy encoding / decoding parameter set of the current child node is determined; based on the target context state of the current child node, the target entropy encoding / decoding parameters of the current child node are determined from the target entropy encoding / decoding parameter set; and the occupancy information of the current child node is entropy encoded / decoded based on the target entropy encoding / decoding parameters. Thus, in G-PCC, the inter-frame context state set no longer shares the entropy encoding / decoding parameter set with the intra-frame context state set, but instead distinguishes different entropy encoding / decoding parameter sets based on the prediction information, fully utilizing the prediction information, improving the geometric encoding / decoding efficiency of G-PCC, and saving bitrate.

Claims

1. A decoding method applied to a point cloud decoder, the method comprising: Based on the occupancy information of the current child node's decoded context node, the context information of the current child node is determined; Based on the context information of the current child node, the target context state of the current child node is determined from the context state set of the current child node, wherein the context state set includes one or more context states; Based on the prediction parameters of the current child node, a target entropy decoding parameter set for the current child node is determined, wherein the target entropy decoding parameter set includes multiple entropy decoding parameters; Based on the target context state of the current child node, determine the target entropy decoding parameters of the current child node from the target entropy decoding parameter set; Based on the target entropy decoding parameters, entropy decoding is performed on the bitstream to determine the occupancy information of the current child node.

2. The method according to claim 1, wherein, The method further includes: Based on the occupancy information of the current child node's decoded neighbor nodes, the local sparsity category of the current child node is determined; The context state set of the current child node is determined based on the local sparse category of the current child node.

3. The method according to claim 1 or 2, wherein, Determining the target context state of the current child node from the context state set of the current child node based on the context information of the current child node includes: Based on the context information of the current child node and the first mapping relationship, determine the index value of the target context state of the current child node; Based on the index value of the target context state of the current child node, the target context state of the current child node is obtained from the context state set of the current child node.

4. The method according to any one of claims 1 to 3, wherein, The prediction parameters of the current child node include the first variable of the current child node, which is used to indicate the prediction mode of the current child node. Different prediction modes correspond to different sets of entropy decoding parameters.

5. The method according to claim 4, wherein, The step of determining the target entropy decoding parameter set of the current child node based on the prediction parameters of the current child node includes: When the first variable indicates that inter-frame prediction mode is enabled, the target entropy decoding parameter set is determined from the candidate inter-frame entropy decoding parameter set; When the first variable indicates that inter-frame prediction mode is not enabled, the target entropy decoding parameter set is determined from the candidate intra-frame entropy decoding parameter set.

6. The method according to claim 5, wherein, The prediction parameters of the current child node also include a second variable for the current child node. The second variable is used to indicate the occupancy status of the predicted child node in the reference image. Different occupancy statuses correspond to different sets of inter-frame entropy decoding parameters.

7. The method according to claim 6, wherein, Determining the target entropy decoding parameter set from the candidate inter-frame entropy decoding parameter set includes: If the second variable indicates that the predicted child node of the current child node is not occupied, the target entropy decoding parameter set is determined to be the first inter-frame entropy decoding parameter set; When the second variable indicates that the predicted child node of the current child node is occupied, the target entropy decoding parameter set is determined to be the second inter-frame entropy decoding parameter set.

8. The method according to claim 5, wherein, The candidate intra-frame entropy decoding parameter set includes an intra-frame entropy decoding parameter set.

9. The method according to claim 5, wherein, The candidate intra-frame entropy decoding parameter set includes multiple intra-frame entropy decoding parameter sets, and determining the target entropy decoding parameter set from the candidate intra-frame entropy decoding parameter sets includes: Based on the local sparse category of the current child node, the target entropy decoding parameter set is determined from the candidate intra-frame entropy decoding parameter set.

10. The method according to any one of claims 1 to 9, wherein, The step of determining the target entropy decoding parameters of the current child node from the target entropy decoding parameter set based on the target context state of the current child node includes: Based on the target context state and the second mapping relationship, determine the index value of the target entropy decoding parameter; Based on the index value of the target entropy decoding parameter, the target entropy decoding parameter of the current child node is determined from the target entropy decoding parameter set.

11. The method according to any one of claims 1 to 10, wherein, The target context state includes a first probability that the current child node occupies or does not occupy the context information, and the target entropy decoding parameter includes a second probability that the current child node occupies or does not occupy the context information.

12. An encoding method applied to a point cloud encoder, the method comprising: Based on the occupancy information of the current child node's encoded context node, the context information of the current child node is determined; Based on the context information of the current child node, the target context state of the current child node is determined from the context state set of the current child node, wherein the context state set includes one or more context states; Based on the prediction parameters of the current child node, a target entropy coding parameter set for the current child node is determined, wherein the target entropy coding parameter set includes multiple entropy coding parameters; Based on the target context state of the current child node, the target entropy encoding parameters of the current child node are determined from the target entropy encoding parameter set; Based on the target entropy encoding parameters, the occupancy information of the current child node is entropy encoded, and the resulting encoded bits are written into the bitstream.

13. The method according to claim 12, wherein, The method further includes: Based on the occupancy information of the current child node's encoded neighbor nodes, determine the local sparsity category of the current child node; The context state set of the current child node is determined based on the local sparse category of the current child node.

14. The method according to claim 12 or 13, wherein, Determining the target context state of the current child node from the context state set of the current child node based on the context information of the current child node includes: Based on the context information of the current child node and the first mapping relationship, determine the index value of the target context state of the current child node; Based on the index value of the target context state of the current child node, the target context state of the current child node is obtained from the context state set of the current child node.

15. The method according to any one of claims 12 to 14, wherein, The prediction parameters of the current child node include the first variable of the current child node, which is used to indicate the prediction mode of the current child node. Different prediction modes correspond to different sets of entropy coding parameters.

16. The method according to claim 15, wherein, The step of determining the target entropy encoding parameter set of the current child node based on the prediction parameters of the current child node includes: When the first variable indicates that inter-frame prediction mode is enabled, the target entropy coding parameter set is determined from the candidate inter-frame entropy coding parameter set; When the first variable indicates that inter-frame prediction mode is not enabled, the target entropy coding parameter set is determined from the candidate intra-frame entropy coding parameter set.

17. The method according to claim 16, wherein, The prediction parameters of the current child node also include a second variable for the current child node. The second variable is used to indicate the occupancy status of the predicted child node in the reference image. Different occupancy statuses correspond to different sets of inter-frame entropy coding parameters.

18. The method according to claim 17, wherein, Determining the target entropy coding parameter set from the candidate inter-frame entropy coding parameter set includes: If the second variable indicates that the predicted child node of the current child node is not occupied, the target entropy coding parameter set is determined to be the first inter-frame entropy coding parameter set; When the second variable indicates that the predicted child node of the current child node is occupied, the target entropy coding parameter set is determined to be the second inter-frame entropy coding parameter set.

19. The method of claim 16, wherein, The candidate intra-frame entropy coding parameter set includes an intra-frame entropy coding parameter set.

20. The method of claim 16, wherein, The candidate intra-frame entropy coding parameter set includes multiple intra-frame entropy coding parameter sets, and determining the target entropy coding parameter set from the candidate intra-frame entropy coding parameter sets includes: Based on the local sparse category of the current child node, the target entropy coding parameter set is determined from the candidate intra-frame entropy coding parameter set.

21. The method according to any one of claims 12 to 20, wherein, The step of determining the target entropy encoding parameters of the current child node from the target entropy encoding parameter set based on the target context state of the current child node includes: Based on the target context state and the second mapping relationship, determine the index value of the target entropy encoding parameter; Based on the index value of the target entropy encoding parameter, the target entropy encoding parameter of the current child node is determined from the target entropy encoding parameter set.

22. The method according to any one of claims 12 to 21, wherein, The target context state includes a first probability that the current child node occupies or does not occupy the context information, and the target entropy encoding parameter includes a second probability that the current child node occupies or does not occupy the context information.

23. A bitstream, wherein, The bitstream is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following: the occupancy information of the current child node, and the bitstream is a bitstream generated by the encoding method as described in any one of claims 12 to 22.

24. A point cloud encoder, the point cloud encoder comprising a first determining unit, a second determining unit, and an encoding unit; wherein, The first determining unit is configured to determine the context information of the current child node based on the occupancy information of the current child node's encoded context node; Based on the context information of the current child node, the target context state of the current child node is determined from the context state set of the current child node, wherein the context state set includes one or more context states; The second determining unit is configured to determine a target entropy encoding parameter set for the current child node based on the prediction parameters of the current child node, wherein the target entropy encoding parameter set includes multiple entropy encoding parameters; and to determine the target entropy encoding parameters of the current child node from the target entropy encoding parameter set based on the target context state of the current child node. The encoding unit is configured to entropy encode the occupancy information of the current child node based on the target entropy encoding parameters, and write the obtained encoded bits into the code stream.

25. A point cloud encoder, the point cloud encoder comprising a first memory and a first processor; wherein, The first memory is used to store computer programs that can run on the first processor; The first processor is configured to perform the method as described in any one of claims 12 to 22 when running the computer program.

26. A point cloud decoder, the point cloud decoder comprising a third determining unit, a fourth determining unit, and a decoding unit; wherein, The third determining unit is configured to determine the context information of the current child node based on the occupancy information of the current child node's decoded context node; Based on the context information of the current child node, the target context state of the current child node is determined from the context state set of the current child node, wherein the context state set includes one or more context states; The fourth determining unit is configured to determine the target entropy decoding parameter set of the current child node based on the prediction parameters of the current child node, wherein the target entropy decoding parameter set includes multiple entropy decoding parameters; and to determine the target entropy decoding parameters of the current child node from the target entropy decoding parameter set based on the target context state of the current child node. The decoding unit is configured to perform entropy decoding on the bitstream based on the target entropy decoding parameters to determine the occupancy information of the current child node.

27. A point cloud decoder, the point cloud decoder comprising a second memory and a second processor; wherein, The second memory is used to store computer programs that can run on the second processor; The second processor is configured to perform the method as described in any one of claims 1 to 11 when running the computer program.

28. A computer-readable storage medium, wherein, The computer-readable storage medium stores the bitstream generated by the encoding method as described in any one of claims 12 to 22.

29. A computer-readable storage medium, wherein, The computer-readable storage medium stores a computer program that, when executed, implements the method as claimed in any one of claims 1 to 11, or implements the method as claimed in any one of claims 12 to 22.