Point cloud encoding method, point cloud decoding method, encoder, decoder, bitstream, and storage medium

By introducing multi-tree partitioning and information on the number of occupied child nodes into the point cloud encoding and decoding framework, the problem of inaccurate probability distribution in point cloud encoding is solved, and the encoding efficiency and accuracy are improved.

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

Patent Information

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

AI Technical Summary

Technical Problem

In the geometry-based point cloud compression encoding and decoding framework, the probability distribution of the occupancy information of the nodes to be encoded is not accurate enough, which affects the coding efficiency.

Method used

By dividing the point cloud data into a multi-branch tree, the context information of the node to be encoded is determined, the number of occupied child nodes is introduced, the probability distribution of the occupancy information of the node to be encoded is determined, and entropy coding is performed.

Benefits of technology

The accuracy and efficiency of entropy coding are improved, the bit rate is reduced, and the performance of point cloud encoding and decoding is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024083470_02102025_PF_FP_ABST
    Figure CN2024083470_02102025_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a point cloud encoding method, a point cloud decoding method, an encoder, a decoder, a bitstream, and a storage medium. The point cloud decoding method comprises: parsing a bitstream to determine context information of a node to be decoded; on the basis of the context information, determining quantity information of occupied sub-nodes in the node to be decoded; on the basis of the quantity information of the occupied sub-nodes, determining probability distribution of occupation information of the node to be decoded; and on the basis of the probability distribution of occupation information of the node to be decoded, performing entropy decoding on the node to be decoded.
Need to check novelty before this filing date? Find Prior Art

Description

Point cloud encoding and decoding methods, codecs, bitstreams, and storage media Technical Field

[0001] The present application relates to the field of point cloud encoding and decoding technology, and in particular to a point cloud encoding and decoding method, codec, bit stream and storage medium. Background Art

[0002] In the geometry-based point cloud compression (G-PCC) codec framework, the probability distribution of the occupancy information of the node to be encoded can be determined based on context information, thereby performing entropy coding on the node to be encoded. If the probability distribution of the occupancy information of the node to be encoded is not accurate enough, it will directly affect the coding efficiency. Therefore, how to improve the accuracy of the probability distribution is a problem that needs to be solved.

[0003] Summary of the Invention

[0004] The present invention provides a point cloud encoding and decoding method, codec, code stream, and storage medium. The following describes various aspects of the present invention.

[0005] In a first aspect, a point cloud decoding method is provided, which is applied to a decoder, including: parsing a code stream to determine context information of a node to be decoded; determining the number of occupied child nodes in the node to be decoded based on the context information; determining the probability distribution of occupancy information of the node to be decoded based on the number of occupied child nodes; and performing entropy decoding on the node to be decoded based on the probability distribution of the occupancy information of the node to be decoded.

[0006] In a second aspect, a point cloud coding method is provided, which is applied to an encoder, including: performing multi-branch tree division on the point cloud data to determine the nodes to be encoded; determining the number of occupied child nodes in the node to be encoded based on the context information of the node to be encoded; determining the probability distribution of the occupancy information of the node to be encoded based on the number information of the occupied child nodes; and performing entropy coding on the node to be encoded based on the probability distribution of the occupancy information of the node to be encoded.

[0007] In a third aspect, a decoder is provided, comprising: a first determination unit configured to parse a code stream and determine context information of a node to be decoded; a second determination unit configured to determine, based on the context information, the number of occupied child nodes in the node to be decoded; a third determination unit configured to determine, based on the number of occupied child nodes, a probability distribution of occupancy information of the node to be decoded; and a decoding unit configured to perform entropy decoding on the node to be decoded based on the probability distribution of the occupancy information of the node to be decoded.

[0008] In a fourth aspect, a decoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method of the first aspect when running the computer program.

[0009] In a fifth aspect, an encoder is provided, comprising: a first determination unit, configured to perform multi-branch tree division on point cloud data to determine the node to be encoded; a second determination unit, configured to determine the number of occupied child nodes in the node to be encoded based on the context information of the node to be encoded; a third determination unit, configured to determine the probability distribution of occupancy information of the node to be encoded based on the number information of the occupied child nodes; and an encoding unit, configured to perform entropy encoding on the node to be encoded based on the probability distribution of the occupancy information of the node to be encoded.

[0010] In a sixth aspect, an encoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method of the second aspect when running the computer program.

[0011] In a seventh aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, the method of the first aspect or the second aspect is implemented.

[0012] In an eighth aspect, a non-volatile computer-readable storage medium for storing a bit stream is provided, wherein the bit stream is generated by an encoding method using an encoder, or the bit stream is decoded by a decoding method using a decoder, wherein the decoding method is the method of the first aspect and the encoding method is the method of the second aspect.

[0013] In a ninth aspect, a code stream is provided, comprising a code stream generated according to the method of the second aspect.

[0014] The embodiment of the present application introduces the number information of occupied sub-nodes when determining the probability distribution of the node to be encoded, so that the probability distribution of the occupancy information of the node to be encoded can be determined more accurately, thereby improving the efficiency of entropy coding. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0016] FIG2 is a schematic diagram of a neural network-based encoding and decoding framework.

[0017] Figure 3 is a schematic diagram of a context model based on deep learning.

[0018] Figure 4 is a schematic diagram of a context model based on the attention mechanism.

[0019] FIG5 is a schematic diagram of a context model based on context residual.

[0020] Figure 6 is a schematic diagram of calculating cross entropy loss.

[0021] FIG7 is a flow chart of a decoding method provided in an embodiment of the present application.

[0022] FIG8 is a schematic diagram of a neural network-based context model provided in an embodiment of the present application.

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

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

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

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

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

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

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

[0030] In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0031] It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.

[0032] A point cloud is a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or scene. These points contain geometric information used to represent spatial position and attribute information used to represent the appearance texture of the point cloud.

[0033] Currently, point cloud coding frameworks that can compress point clouds can be the geometry-based point cloud compression (G-PCC) codec framework or the video-based point cloud compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by 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, and it can be based on the point cloud compression test platform (test model compression 13, TMC13). The V-PCC codec framework can be used to compress the second type of dynamic point clouds, and it can be based on the point cloud compression test platform (test model compression 2, TMC2). Therefore, the G-PCC codec framework is also called the point cloud codec TMC13, and the V-PCC codec framework is also called the point cloud codec TMC2.

[0034] An embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method. FIG1 is a schematic diagram of a network architecture of a point cloud encoding and decoding system provided by an embodiment of the present application. As shown in FIG1 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions. For example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application. Among them, the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.

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

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

[0037] As you can understand, in the point cloud G-PCC codec framework, the point cloud data to be encoded is first divided into multiple slices (also called slices). In each slice, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.

[0038] On the encoding side, during the geometric encoding process, the geometric information can first be transformed so that the entire point cloud is contained within a bounding box. The point cloud data within the bounding box can then be quantized. Due to quantization rounding, the geometric information of some point clouds becomes identical, and then the decision to remove duplicate points is made based on parameters. This process of quantization and removing duplicate points is also known as voxelization. Next, the bounding box is partitioned using an octree or constructed as a prediction tree. During this process, arithmetic coding is performed on the points in the leaf nodes of the partition to generate a binary geometry bitstream; alternatively, arithmetic coding (surface fitting based on the vertices) generated by the partition is performed to generate a binary geometry bitstream. During the attribute encoding process, after the geometric encoding is completed and the geometric information is reconstructed, color conversion is required to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. The reconstructed geometric information is then used to recolor the point cloud so that the unencoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is mainly performed on color information. During the color information encoding process, the color information is converted from the spatial domain to the frequency domain. High-frequency coefficients and low-frequency coefficients are obtained through transformation. Finally, the coefficients are quantized and arithmetic coding is performed on the quantized coefficients to generate a binary attribute bit stream.

[0039] At the decoding end, the geometry bitstream and attribute bitstream in the acquired binary bitstream are first decoded independently. When decoding the geometry bitstream, the geometric information of the point cloud is obtained through arithmetic decoding, reconstruction of the octree / reconstruction of the prediction tree, reconstruction of the geometry, and inverse coordinate conversion. When decoding the attribute bitstream, the attribute information of the point cloud is obtained through arithmetic decoding, inverse quantization, and inverse color conversion. Based on this geometric and attribute information, the point cloud data to be encoded (i.e., the output point cloud) is restored.

[0040] In the G-PCC codec framework, context information can be used to predict the probability distribution of nodes to be decoded, thereby improving the efficiency of entropy coding. Furthermore, in related technologies, a neural network-based context model can be set up, using encoded data or other known information to form context information to predict the probability distribution of nodes to be encoded. The following describes an exemplary neural network-based codec framework.

[0041] Figure 2 provides a schematic diagram of a neural network-based encoding and decoding framework. Neural network-based point cloud compression encoding and decoding can also be called artificial intelligence point cloud compression (AI-PCC) encoding and decoding. As shown in Figure 2, first, the original point cloud data will be preprocessed by methods such as octree conversion, voxelization, sampling, and sorting, and the preprocessed data will be preliminarily compressed by the neural network on the encoding end. Then, the preliminarily compressed data is entropy coded to achieve further compression. In the entropy coding stage, a context model based on a neural network is usually set up, and the encoded data or other known information is used to form context information to predict the probability distribution of the current information to be encoded, thereby improving the efficiency of entropy coding.

[0042] During entropy decoding, the encoded data or other known information is input into the context model to obtain the probability distribution required for decoding. Since the parameters of the neural network are fixed and the context information input into the context model of the encoder and decoder is the same, the encoder and decoder can obtain the same probability distribution, thus ensuring the consistency of the encoding and decoding process. The preliminary decoded information obtained by entropy decoding is input into the neural network of the decoder, and its output is subjected to operations such as inverse octreeing and inverse voxelization to obtain the reconstructed point cloud. The following is an illustrative introduction to context models in several related technologies.

[0043] Related Technology 1: Figure 3 provides a schematic diagram of a deep learning-based context model. As shown in Figure 3, the solution first uses an octree structure to partition the original point cloud. Then, using the ancestor information of the node to be encoded as context, a context model based on a multilayer perceptron (MLP) network is trained. For each non-leaf node in the octree, combining scene priors and contextual information, a probability distribution of the node's occupancy is output. Finally, an entropy encoder encodes the node according to this probability distribution.

[0044] Related technology 2: Figure 4 provides a schematic diagram of a context model based on an attention mechanism. As shown in Figure 4, this scheme expands the scale of context information. Specifically, the context information includes features from the ancestor node of the current node, thousands of sibling nodes, and ancestors of the sibling nodes, so as to achieve a more accurate prediction of the occupancy probability of the node to be encoded. It should be noted that this approach may introduce redundant and irrelevant information into the context information. For example, different sibling nodes may have the same ancestors, causing them to appear repeatedly in the context information. For another example, sibling nodes far away from the current node may have no value in predicting the probability distribution of the current node. To solve the above problems, this scheme introduces an attention mechanism. First, the context information is input into the attention network to obtain the attention weight; then, the MLP network outputs the probability distribution of the occupancy of the current node to be encoded and is used for entropy coding.

[0045] Related technology three: Figure 5 provides a schematic diagram of a context model based on context residuals. This solution does not make major changes to the deep learning model itself, but achieves the purpose of efficient entropy coding of point clouds by efficiently utilizing context information and optimizing the loss function. This solution adds an MLP branch to the context model. The last layer of this branch outputs an eight-dimensional vector, each of which represents the occupancy of a child node. As shown in Figure 5, the labels of the MLP branch during the training phase are the true occupancy of each child node of the node to be encoded, and the mean-square error (MSE) loss is used to calculate the loss function of the branch. In addition, the output of the MLP branch will be spliced ​​with the output of the main network at the same layer and input into the last layer of the main network. The purpose of training the MLP branch is to enable the neural network to learn information containing the occupancy status of the node to be encoded, thereby assisting the main network to output an accurate probability distribution.

[0046] In related technologies, the encoding and decoding performance of point clouds is usually improved by continuously improving the network structure and introducing richer contextual information. However, in the context model of point cloud geometry compression provided by related technologies, an eight-bit binary number is formed according to the occupancy (true value) of the eight child nodes of the node to be encoded, that is, a 255-dimensional (excluding the case where all leaf nodes are empty) one-hot encoding; then, the one-hot encoding is used as a label during training, and the cross entropy is calculated between it and the probability distribution output by the context model as a loss function. This essentially transforms the prediction problem of the probability distribution of the occupancy status of the node to be encoded into a 255-dimensional classification problem. However, the above idea has significant flaws. The following will take the context model based on neural network as an example to analyze and explain its problems and the causes of the problems.

[0047] Figure 6 provides a schematic diagram of the cross-entropy loss calculation method. As shown in Figure 6, the children of the current node can be represented by an 8-dimensional binary number. After converting this into a probability distribution represented by a one-hot encoding, a 255-dimensional probability distribution is formed, where the probability of the dimension corresponding to the actual child node occupancy is 1, and the probabilities of the other dimensions are 0. Taking the child node occupancy in Figure 6 as an example, when the occupancy of the eight child nodes is 11111101, the 8-bit binary number is converted to decimal 253. Then, the 253rd dimension of the one-hot encoding is 1, and the other dimensions are 0. This one-hot encoding is used as a label during context model training, and the cross-entropy loss is calculated between it and the probability distribution of the current node predicted by the context model, thereby guiding the training of the context model. The generation of these training labels and the calculation of the loss function are the same as those for general multi-classification tasks. In essence, the occupancy of the 255 seed nodes is treated as 255 categories and the classification model is trained.

[0048] However, in general multi-classification tasks, there are significant differences between classes and the differences between different categories are relatively balanced. For example, in a three-classification task such as "cat", "dog", and "cow", there is a significant difference between any two classes, and no two classes are highly similar. However, in the 255-dimensional probability distribution that the context model is trying to predict, the actual meanings represented by many dimensions are highly similar. For example, the sub-node occupancy corresponding to the 253rd dimension (11111101) and the sub-node occupancy corresponding to the 252nd dimension (11111100) differ by only one sub-node, but there is a big difference from the sub-node occupancy corresponding to the 2nd dimension (00000010). However, the current context model based only on cross-entropy loss cannot accurately measure this difference. The cross-entropy loss used by the traditional context model can be expressed by formula (1).

[0049] Among them, Loss CE represents the cross entropy loss, y i Represents the value of the i-th dimension of the unique hot encoding, i.e., the training label, x i Represents the value of the i-th dimension of the probability distribution output by the context model. Since only one dimension in the one-hot encoding is 1 and the other dimensions are 0, the j-th dimension of the one-hot encoding can be set to 1 (which can be called the "active dimension"), then the above formula (1) can be simplified to formula (2). Loss CE =-log(x j ) (2)

[0050] As can be seen from formula (2), the cross entropy loss is only related to the probability of the jth dimension predicted by the context model, and has nothing to do with other dimensions. Continuing with Figure 6 as an example, in Figure 6, the probability distributions output by two context models A and B are assumed. According to the loss function given by formula (2), the two probability distributions A and B will obtain the same loss value. However, compared with probability distribution B, the dimensions with high probability distributions given by probability distribution A are more similar to the actual meaning of the "action dimension". For example, the occupancy of the sub-nodes represented by the 254th and 255th dimensions in Figure 6 differs from the "action dimension" (i.e., 253 dimensions) by only 1 or 2 sub-nodes, while the probabilities of the 254th and 255th dimensions in probability distribution A are significantly higher than those in probability distribution B. Therefore, we can assume that probability distribution A is closer to the training label than probability distribution B. However, the loss function expressed by formula (2) cannot measure this difference, which will affect the convergence of the loss function to the training label.

[0051] The reason for the above problem is that the loss function shown in formula (2) essentially transforms the probability distribution problem of subnode occupancy into a classification problem. However, when distinguishing different categories, the above loss function simply divides all possible occupancy situations into 255 categories based on the position of the occupied subnodes, but does not make a preliminary division of the categories based on the number of occupied subnodes. For example, the 253rd and 254th dimensions of the probability distribution both indicate that 7 subnodes are occupied, and only the position of one of the occupied subnodes is different, that is, the two are more similar. At the same time, there are significant differences between the 253rd and 1st dimensions in terms of both the position and number of occupied subnodes. This difference is caused by the different number of occupied subnodes, but the above loss function does not take into account the different number of occupied subnodes and thus cannot reflect this difference, resulting in an inaccurate predicted probability distribution. Therefore, how to improve the accuracy of the probability distribution is a problem that needs to be solved.

[0052] In response to the above problems, an embodiment of the present application provides a coding method, including: performing multi-branch tree division on point cloud data to determine the nodes to be encoded; determining the number of occupied child nodes in the node to be encoded based on the context information of the node to be encoded; determining the probability distribution of the occupancy information of the node to be encoded based on the number information of the occupied child nodes; and performing entropy coding on the node to be encoded based on the probability distribution of the occupancy information of the node to be encoded.

[0053] An embodiment of the present application also provides a decoding method, including: parsing a code stream to determine context information of a node to be decoded; determining, based on the context information, information about the number of occupied child nodes in the node to be decoded; determining, based on the information about the number of occupied child nodes, a probability distribution of occupancy information of the node to be decoded; and performing entropy decoding on the node to be decoded based on the probability distribution of the occupancy information of the node to be decoded.

[0054] The embodiment of the present application introduces the number information of occupied sub-nodes when determining the probability distribution of the node to be encoded. Compared with the probability distribution determined only based on the position information of the occupied sub-nodes in the related art, the probability distribution of the node to be encoded determined by the embodiment of the present application is more accurate, thereby helping to improve the efficiency of entropy coding.

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

[0056] Figure 7 is a schematic flow chart of a decoding method provided in an embodiment of the present application. The decoding method of Figure 7 can be applied to a decoder. The decoding method of Figure 7 can be used to decode the geometric information of a point cloud. In some implementations, the decoding method can be applied to G-PCC. Alternatively, in other implementations, the decoding method can be applied to AI-PCC.

[0057] 7 , in step S710 , the code stream is parsed to determine the context information of the node to be decoded. The context information may include one or more of the following information: occupancy information of the decoded node, level information of the decoded node in the multitree, relative position information of the decoded node, etc.

[0058] In a multi-branch tree, the decoded node may refer to, for example, an ancestor node, a sibling node, and an ancestor node of a sibling node of a node to be decoded.

[0059] The multitree mentioned above can be a binary tree, a quadtree, or an octree. For example, assuming that the multitree is an octree, the node to be decoded can be divided into eight child nodes.

[0060] In step S720 , the number of occupied child nodes in the node to be decoded is determined according to the context information.

[0061] The present embodiment does not specifically limit the representation of the number of occupied subnodes. For example, the predicted number of occupied subnodes can be used as a one-dimensional vector directly in subsequent entropy decoding operations. This approach can reduce the amount of computation and help improve the efficiency of entropy decoding.

[0062] Alternatively, in some implementations, a probability distribution indicating the number of occupied child nodes can be used in subsequent entropy decoding operations. This probability distribution can be composed of a multi-dimensional vector, where each dimensional vector represents the probability of the number of occupied child nodes. This allows all possible predicted values ​​and corresponding probabilities of occupied child nodes to be incorporated into subsequent entropy decoding operations, thereby helping to improve the accuracy of the probability distribution of occupancy information. For example, if the nodes to be decoded are partitioned based on an octree, then an eight-dimensional vector can be used to represent the probability distribution of the number of occupied child nodes.

[0063] The probability distribution of the number of occupied subnodes can be expressed in a variety of ways. For example, the probability distribution of the number of occupied subnodes can be a Gaussian distribution. In another example, the probability distribution of the number of occupied subnodes can be a Poisson distribution or a T distribution.

[0064] For example, taking the probability distribution as Gaussian distribution, the predicted value of the number of occupied child nodes is used as the mean of the Gaussian distribution. The Gaussian distribution can be expressed as:

[0065] Among them, x i represents the current dimensional vector, i.e., the number of a certain type of occupied child nodes, μ represents the mean of the Gaussian distribution, i.e., the predicted value of the number of occupied child nodes. According to the characteristics of the Gaussian distribution, the number of occupied child nodes x i The closer it is to the predicted value u, the larger the corresponding probability value. In other words, the probability value is the highest when the number of occupied child nodes is the predicted value u. Therefore, when the probability distribution of the number of occupied child nodes is Gaussian, it helps to improve the accuracy of the predicted probability distribution.

[0066] There may be multiple ways to perform step S720. In some implementations, the context information may be input into a context model based on deep learning to determine the number of occupied sub-nodes. The context model based on deep learning performs better than the traditional context model and helps to improve the accuracy of the probability distribution predicted by the context model. The first model may be, for example, a context model based on a neural network (i.e., the first model). Furthermore, the first model may include a first attention layer for generating weighted context information.

[0067] In some implementations, the first model may use the mean square error (MSE) as a loss function for model training. For example, the MSE loss may be calculated between the predicted number of occupied child nodes and the actual number of occupied child nodes. The loss function here may be expressed as:

[0068] Wherein, N represents the number of nodes to be decoded, n represents the actual number of occupied child nodes of the current node to be decoded, and p represents the predicted value of the number of occupied child nodes of the current node to be decoded.

[0069] Furthermore, in some implementations, the first model also includes a first fully connected layer, and the way in which the above-mentioned first model determines the number information of occupied sub-nodes may include: determining weighted context information based on the context information and the first attention layer; then, determining first feature information based on the weighted context information and the first fully connected layer; and then, determining the predicted value of the number of occupied sub-nodes based on the first feature information.

[0070] In other implementations, context information can be fed into a traditional context model to determine the number of occupied child nodes. This eliminates the need for deep learning training, reducing the prediction overhead and improving the efficiency of the context model in predicting probability distributions.

[0071] The following uses the first model based on a neural network as an example to introduce in more detail the method of determining quantity information in the embodiment of the present application.

[0072] FIG8 shows a schematic diagram of a context model based on a neural network provided by an embodiment of the present application. As shown in FIG8 , the first model includes a first attention layer and a first fully connected layer. In the context model, a window is formed in decoding order or spatial distance, and the occupancy information of the decoded nodes in the window, the hierarchical information of the decoded nodes, and the relative position information of the decoded nodes constitute the context information of the node to be decoded. First, the context information is input into the first attention layer. Then, the context information is input into the first attention layer and weighted context information is obtained, that is, different weights are assigned to each node to reflect more important information. Then, the weighted context information is input into the first fully connected layer. Among them, the first layer of the first fully connected layer outputs a multi-dimensional feature, and the second layer outputs the predicted value of the number of occupied child nodes of the node to be decoded, and calculates the MSE loss between the predicted value and the actual occupied number. The calculation formula of the MSE loss function can be found in formula (4) above.

[0073] Furthermore, the predicted value of the number of occupied child nodes can be set as a discrete Gaussian distribution, and an eight-dimensional Gaussian distribution can be generated through Softmax, and its formula can be expressed as: P(X=x i )=Softmax(R(X=x i )) (5)

[0074] Where P represents the eight-dimensional probability distribution, xi represents the current dimension (i.e., a number from 1 to 8), μ represents the mean of the Gaussian distribution, i.e., the predicted value of the number of occupied child nodes, R(X=x i ) represents a Gaussian distribution in a certain dimension.

[0075] Continuing to refer to FIG. 7 , in step S730 , the probability distribution of the occupancy information of the node to be decoded is determined based on the number of occupied child nodes.

[0076] There are many ways to perform step S730. In some implementations, the quantity information and context information determined in step S720 can be input into a context model based on deep learning to determine the probability distribution of occupancy information. The context model based on deep learning has better performance than the traditional context model, which helps to improve the accuracy of the probability distribution predicted by the context model. The second model can be, for example, a context model based on a neural network (i.e., the second model).

[0077] In some implementations, the training loss function of the second model may be a cross-entropy function. For example, the cross-entropy function may use one-hot encoded data of occupancy information of nodes in the multi-branch tree as label data to train the second model.

[0078] In some implementations, the second model further includes a second attention layer. The second attention layer is configured to generate weighted context information.

[0079] In some implementations, the second model also includes a second fully connected layer. The above-mentioned determination of the probability distribution of the occupancy information of the node to be decoded based on the second model may include: determining the weighted context information based on the context information and the first attention layer; then, determining the second feature information based on the weighted context information and the second fully connected layer; and then, determining the probability distribution of the occupancy information of the node to be decoded based on the second feature information and the number of occupied child nodes.

[0080] As an example, taking the octree-based partitioning of the node to be decoded as an example, the child nodes of the node to be decoded can be represented by 8-dimensional binary numbers. After converting them into a probability distribution represented by one-hot encoding, a 255-dimensional probability distribution will be formed, in which the probability of the dimension corresponding to the actual child node occupancy is 1, and the probabilities of the other dimensions are 0. The above one-hot encoding will be used as a label to calculate the cross-entropy loss between the probability distributions of the nodes to be decoded predicted by the second model during the training of the context model, and guide the training of the second model. The cross-entropy loss used can be expressed as:

[0081] Among them, Loss CE represents the cross entropy loss, y i represents the i-th dimension of the unique hot encoding, i.e., the label data, xi Represents the i-th dimension of the probability distribution of the context model output.

[0082] In other implementations, the quantity information and context information determined in step S720 can be input into a traditional context model to determine the probability distribution of occupancy information. Since no deep learning training is required, the prediction overhead can be reduced, thereby helping to improve the efficiency of the context model in predicting the probability distribution.

[0083] The following uses the second model based on a neural network as an example to introduce in more detail the method of determining the probability distribution of occupancy information in an embodiment of the present application.

[0084] The second model includes a second attention layer and a second fully connected layer (not shown in Figure 8). As shown in Figure 8, in the second model, the occupancy information of the decoded nodes, the hierarchical information of the decoded nodes, and the relative position information of the decoded nodes constitute the context information of the node to be decoded. First, the second model uses the context information as input to perform feature extraction. For example, the context information is input into the second attention layer to obtain weighted context information, that is, different weights are assigned to each node to reflect more important information. The weighted context information is then input into the second fully connected layer, where the first layer of the second fully connected layer outputs a multidimensional feature. Next, the quantity information output by the first model (such as an eight-dimensional Gaussian distribution) is aggregated with the multidimensional features extracted by the second model in the second layer of the second fully connected layer, outputting a 255-dimensional feature. This feature is converted into a 255-dimensional probability distribution through a Softmax layer. This probability distribution is used for entropy decoding of the node to be decoded. In the second model, a probability distribution indicating the number of occupied child nodes is introduced and this probability distribution is subjected to feature aggregation. This allows each neuron in the output layer of the second model to independently learn the relationship between itself and the number of occupied child nodes, achieving better decoding performance.

[0085] In step S740 , entropy decoding is performed on the node to be decoded according to the probability distribution of the occupancy information of the node to be decoded.

[0086] The embodiment of the present application introduces the number information of occupied sub-nodes when predicting the probability distribution of the node to be decoded. Compared with the probability distribution determined only based on the position information of the occupied sub-nodes in the related art, the probability distribution of the node to be decoded determined by the embodiment of the present application is more accurate, thereby helping to improve the efficiency of entropy decoding.

[0087] The following takes the context model OctAttention as an example to introduce the test results obtained by testing the decoding method provided in the embodiment of the present application.

[0088] The enhanced OctAttention by the decoding method provided in the embodiment of the present application can be called M-OctAttention. Both M-OctAttention and OctAttention were trained and tested on the full body voxelized model (MPEG 8i Voxelized Full Body) and the Microsoft voxelized upper body (Microsoft voxelized upper body, MVUB) data sets that comply with the MPEG 8i coding standard, and compared with the G-PCC test software TMC13 v23.0 and OctAttention. Since the above methods are all lossless, it is only necessary to compare the size of the bit rate (BPIP). As shown in Table 1 and Table 2, M-OctAttention is reduced by about 17% on the MPEG 8i data set BPIP and by about 21% on the MVUB data set compared to G-PCC; compared to OctAttention, it is reduced by about 1.3% on the MPEG 8i data set BPIP and by about 2.2% on the MVUB data set. It can be seen that the decoding method provided in the embodiment of the present application helps to improve the efficiency of entropy decoding.

[0089] Table 1: MPEG 8i test results

[0090] Table 2: MVUB test results

[0091] The decoding method provided by the embodiment of the present application is described in detail above in conjunction with Figure 7. The encoding method provided by the embodiment of the present application is described in detail below in conjunction with Figure 9.

[0092] Figure 9 is a schematic flow chart of an encoding method provided in an embodiment of the present application. The encoding method of Figure 9 can be applied to an encoder. The encoding method of Figure 9 can be used to encode attribute information of a point cloud. In some implementations, the encoding method can be applied to G-PCC. Alternatively, in other implementations, the encoding method can be applied to AI-PCC.

[0093] Referring to FIG9 , in step S910 , the point cloud data is partitioned into a multitree to determine the nodes to be encoded. The multitree can be a binary tree, a quadtree, or an octree. For example, assuming the multitree is an octree, the node to be encoded can be divided into eight child nodes.

[0094] In a multi-branch tree, the coded node may refer to, for example, an ancestor node, a sibling node, and an ancestor node of a sibling node of a node to be coded.

[0095] In step S920, the number of occupied child nodes in the node to be encoded is determined based on the context information of the node to be encoded. The context information may include, for example, one or more of the following: occupancy information of the encoded node, the level of the encoded node in the multitree, and the relative position of the encoded node.

[0096] The present embodiment does not specifically limit the representation of the number of occupied child nodes. For example, the predicted value of the number of occupied child nodes can be used directly as a one-dimensional vector in subsequent entropy coding operations. This approach can reduce the amount of computation and help improve the efficiency of entropy coding.

[0097] Alternatively, in some implementations, a probability distribution indicating the number of occupied child nodes can be used in subsequent entropy coding operations. This probability distribution can be composed of a multi-dimensional vector, where each dimensional vector represents the probability of the number of occupied child nodes. This allows all possible predicted values ​​and corresponding probabilities of occupied child nodes to be incorporated into subsequent entropy coding operations, thereby helping to improve the accuracy of the probability distribution of occupancy information. For example, if the nodes to be coded are partitioned based on an octree, then an eight-dimensional vector can be used to represent the probability distribution of the number of occupied child nodes.

[0098] The probability distribution of the number of occupied subnodes can be expressed in a variety of ways. For example, the probability distribution of the number of occupied subnodes can be a Gaussian distribution. In another example, the probability distribution of the number of occupied subnodes can be a Poisson distribution or a T distribution.

[0099] For example, taking the probability distribution as Gaussian distribution, the predicted value of the number of occupied child nodes is used as the mean of the Gaussian distribution. The Gaussian distribution can be expressed as:

[0100] Among them, x i represents the current dimensional vector, i.e., the number of a certain type of occupied child nodes, μ represents the mean of the Gaussian distribution, i.e., the predicted value of the number of occupied child nodes. According to the characteristics of the Gaussian distribution, the number of occupied child nodes x i The closer it is to the predicted value u, the larger the corresponding probability value. In other words, the probability value is the highest when the number of occupied child nodes is the predicted value u. Therefore, when the probability distribution of the number of occupied child nodes is Gaussian, it helps to improve the accuracy of the predicted probability distribution.

[0101] There may be multiple ways to perform step S920. In some implementations, the context information may be input into a context model based on deep learning to determine the number of occupied sub-nodes. The context model based on deep learning performs better than the traditional context model and helps to improve the accuracy of the probability distribution predicted by the context model. The first model may, for example, be a context model based on a neural network (i.e., the first model). Furthermore, the first model may include a first attention layer for generating weighted context information.

[0102] In some implementations, the first model may use the mean square error (MSE) as a loss function for model training. For example, the MSE loss may be calculated between the predicted number of occupied child nodes and the actual number of occupied child nodes. The loss function here may be expressed as:

[0103] Wherein, N represents the number of nodes to be encoded, n represents the actual number of occupied child nodes of the current node to be encoded, and p represents the predicted value of the number of occupied child nodes of the current node to be encoded.

[0104] Furthermore, in some implementations, the first model also includes a first fully connected layer, and the way in which the above-mentioned first model determines the number information of occupied sub-nodes may include: determining weighted context information based on the context information and the first attention layer; then, determining first feature information based on the weighted context information and the first fully connected layer; and then, determining the predicted value of the number of occupied sub-nodes based on the first feature information.

[0105] In other implementations, context information can be fed into a traditional context model to determine the number of occupied child nodes. Because deep learning training is not required, the computational power required for prediction can be reduced, thereby improving the efficiency of the context model in predicting probability distributions.

[0106] The following uses the first model based on a neural network as an example to introduce in more detail the method of determining quantity information in the embodiment of the present application.

[0107] FIG8 shows a schematic diagram of a context model based on a neural network provided by an embodiment of the present application. As shown in FIG8 , the first model includes a first attention layer and a first fully connected layer. In the context model, a window is formed in the coding order or spatial distance, and the occupancy information of the encoded nodes in the window, the hierarchical information of the encoded nodes, and the relative position information of the encoded nodes constitute the context information of the node to be encoded. First, the context information is input into the first attention layer. Then, the context information is input into the first attention layer and weighted context information is obtained, that is, different weights are assigned to each node to reflect more important information. Then, the weighted context information is input into the first fully connected layer, wherein the first layer of the first fully connected layer outputs a multidimensional feature, and the second layer outputs the predicted value of the number of occupied child nodes of the node to be encoded, and calculates the MSE loss between the predicted value and the actual occupied number. The calculation formula of the MSE loss function can be found in formula (8) above.

[0108] Furthermore, the predicted value of the number of occupied child nodes can be set as a discrete Gaussian distribution, and an eight-dimensional Gaussian distribution can be generated through Softmax, and its formula can be expressed as: P(X=x i )=Softmax(R(X=x i )) (9)

[0109] Where P represents the eight-dimensional probability distribution, xi represents the current dimension (i.e., a number from 1 to 8), μ represents the mean of the Gaussian distribution, i.e., the predicted value of the number of occupied child nodes, R(X=x i ) represents a Gaussian distribution in a certain dimension.

[0110] Continuing to refer to FIG. 9 , in step S930 , the probability distribution of the occupancy information of the node to be encoded is determined based on the number of occupied child nodes.

[0111] There are many ways to perform step S930. In some implementations, the quantity information and context information determined in step S920 can be input into a context model based on deep learning to determine the probability distribution of occupancy information. The context model based on deep learning has better performance than the traditional context model, which helps to improve the accuracy of the probability distribution predicted by the context model. The second model can be, for example, a context model based on a neural network (the second model).

[0112] In some implementations, the training loss function of the second model may be a cross-entropy function. For example, the cross-entropy function may use one-hot encoded data of occupancy information of nodes in the multi-branch tree as label data to train the second model.

[0113] In some implementations, the second model further includes a second attention layer. The second attention layer is configured to generate weighted context information.

[0114] In some implementations, the second model also includes a second fully connected layer. The above-mentioned determination of the probability distribution of the occupancy information of the node to be encoded based on the second model may include: determining the weighted context information based on the context information and the first attention layer; then, determining the second feature information based on the weighted context information and the second fully connected layer; and then, determining the probability distribution of the occupancy information of the node to be encoded based on the second feature information and the number of occupied child nodes.

[0115] As an example, taking the octree-based partitioning of the node to be encoded as an example, the child nodes of the node to be encoded can be represented by 8-dimensional binary numbers. After converting them into a probability distribution represented by one-hot encoding, a 255-dimensional probability distribution will be formed, in which the probability of the dimension corresponding to the actual child node occupancy is 1, and the probabilities of the other dimensions are 0. The above one-hot encoding will be used as a label to calculate the cross-entropy loss between the probability distributions of the node to be encoded predicted by the second model during the training of the context model, and guide the training of the second model. The cross-entropy loss used can be expressed as:

[0116] Among them, Loss CE represents the cross entropy loss, y i represents the i-th dimension of the unique hot encoding, i.e., the label data, x i Represents the i-th dimension of the probability distribution of the context model output.

[0117] In other implementations, the quantity information and context information determined in step S920 can be input into a traditional context model to determine the probability distribution of occupancy information. Since no deep learning training is required, the prediction overhead can be reduced, thereby helping to improve the efficiency of the context model in predicting the probability distribution.

[0118] The following uses the second model based on a neural network as an example to introduce in more detail the method of determining the probability distribution of occupancy information in an embodiment of the present application.

[0119] The second model includes a second attention layer and a second fully connected layer (not shown in Figure 8). As shown in Figure 8, in the second model, the occupancy information of the encoded node, the hierarchical information of the encoded node, and the relative position information of the encoded node constitute the context information of the node to be encoded. First, the second model uses this context information as input to perform feature extraction. For example, the context information is input into the second attention layer and weighted context information is obtained, which assigns different weights to each node to reflect more important information. The weighted context information is then input into the second fully connected layer. The first layer of the second fully connected layer outputs a multidimensional feature. Next, the quantity information output by the first model (such as an eight-dimensional Gaussian distribution) is aggregated with the multidimensional features extracted by the second model in the second layer of the second fully connected layer, outputting a 255-dimensional feature. This feature is converted into a 255-dimensional probability distribution through a softmax layer. This probability distribution is used for entropy coding of the node to be encoded. In the second model, a probability distribution indicating the number of occupied child nodes is introduced and this probability distribution is subjected to feature aggregation. This allows each neuron in the output layer of the second model to independently learn the relationship between itself and the number of occupied child nodes, achieving better encoding performance.

[0120] In step S940 , entropy coding is performed on the node to be coded according to the probability distribution of the occupancy information of the node to be coded.

[0121] The embodiment of the present application introduces the number information of occupied sub-nodes when predicting the probability distribution of the node to be encoded. Compared with the probability distribution determined only based on the position information of the occupied sub-nodes in the related art, the probability distribution of the node to be encoded determined by the embodiment of the present application is more accurate, thereby helping to improve the efficiency of entropy coding.

[0122] The following examples are used to describe the embodiments of the present application in more detail. It should be noted that the examples below are only intended to help those skilled in the art understand the embodiments of the present application, rather than to limit the embodiments of the present application to the specific numerical values ​​or specific scenarios illustrated. It is apparent that those skilled in the art can make various equivalent modifications or changes based on the examples given below, and such modifications or changes also fall within the scope of the embodiments of the present application.

[0123] The embodiment of the present application proposes a context model for predicting the occupancy information of the node to be encoded. As shown in Figure 8, the example of the present application may include two parts, including a first model based on a neural network and a second model based on a neural network. The first model can also be referred to as a number prediction module for occupied child nodes. The second model can also be referred to as a probability prediction module for occupied child nodes. The inputs of both modules are the occupancy information of the encoded nodes, the hierarchical information of the encoded nodes, and the relative position information (i.e., context information) of the encoded nodes. The output of the occupied node number prediction module is the predicted value of the number of occupied child nodes of the current node to be encoded, and is trained using the MSE loss function. The output of the probability prediction module is the probability distribution required for encoding the current node to be encoded, and is trained using the cross entropy loss function. At the same time, the output of the occupied child node number prediction module will be passed to the probability prediction module as an information item to assist the probability prediction module in predicting the probability distribution required for entropy coding. The following is a detailed introduction to the occupied child node number prediction module and the probability prediction module.

[0124] As shown in Figure 8, the occupied child node number prediction module consists of the first attention layer and the first fully connected layer. In this module, a window is formed in the encoding order or spatial distance. The occupancy information of the encoded nodes in the window, the hierarchical information of the encoded nodes, and the relative position information of the encoded nodes constitute the context information of the node to be encoded. First, the context information is input into the first attention layer. Next, the context information will be input into the first attention layer and the weighted context information will be obtained. Then, the weighted context information will be input into a two-layer fully connected network to output the predicted value of the number of occupied child nodes of the node to be encoded, and the MSE loss will be calculated between the actual occupied number. The MSE loss can be expressed as:

[0125] Wherein, N represents the number of nodes to be encoded in the batch, n represents the actual number of occupied child nodes of the current node to be encoded, and p represents the predicted value of the number of occupied child nodes of the current node to be encoded.

[0126] Here, we specifically introduce the input and output of each layer of this module. First, the context consists of encoded ancestor nodes and neighbor nodes. The information of each node includes the occupancy of the node, the octree level, and the relative position of the voxel. The occupancy of the node is generally represented by an eight-bit binary number. For example, "00110011" means that in the Morton scan order, the 3rd, 4th, 7th, and 8th sub-nodes of the node are occupied, and the other child nodes are empty; the octree level indicates the layer of the octree where the node is located, expressed as a decimal number, for example, "2" means that the current node is in the second layer; the relative position of the voxel indicates the position of the node among its eight sibling nodes in the Morton coding order, expressed as an integer from 1 to 8, for example, "5" means that the node is in the 5th position in the Morton coding order. The above information constitutes the information of a node. For example, the information in the above distance will constitute the node information of x i =(00110011,2,5). The above information of neighbor nodes and ancestor nodes constitutes the context {x1,x2,x3…,x i}.

[0127] The context is first input into the attention layer and weighted context information is obtained, that is, different weights are assigned to each node to reflect more important information. For example, the context information {x1, x2, x3…, x i}The weighted context information obtained after weighting is {w1x1,w2x2,w3x3…,w i x i}.

[0128] The weighted context is fed into a two-layer fully connected layer. The first layer outputs a multidimensional feature. Due to the black-box nature of fully connected networks, we cannot assign a specific physical meaning to this feature. The second layer outputs a prediction of the number of occupied child nodes in the current node. For example, an output of "3.3" indicates that the model predicts that the current node has 3.3 occupied child nodes.

[0129] Conventional point cloud context models generally take context information as input, complete feature extraction and feature aggregation through a certain neural network structure, output a potential representation with the same dimension as the number of all possible information to be encoded (i.e. 255), and finally generate a probability distribution for entropy coding through a Softmax layer. As analyzed above, this common context model only distinguishes 255 categories by the position of occupied sub-nodes, but does not take into account the difference in the number of occupied sub-nodes. As shown in Figure 8, the probability prediction module of occupied sub-nodes

[0130] To address this issue, we incorporate the output of the occupied child node number prediction module as a feature into the feature aggregation process of the probability prediction module. Here, we detail the inputs and outputs of each layer of this module. First, the context input to the context model is the same as described in the previous section. The physical meaning represented by the weighted context output of the attention layer and the features output by the first fully connected network layer is also the same as described in the previous section. The difference is that the input to the second fully connected network layer combines the output of the first fully connected layer with the features containing the number of occupied child nodes of the current node. Specifically, an 8-dimensional discrete Gaussian distribution is generated, using the predicted value from the number prediction module as the mean. This Gaussian distribution is characterized by increasing values ​​closer to the predicted value, but this distribution has no obvious physical meaning. This 8-dimensional discrete Gaussian distribution is then converted to an 8-dimensional probability distribution through a softmax layer. This probability distribution is characterized by increasing probabilities closer to the predicted value. This probability distribution is then concatenated with the output of the first fully connected network layer as a feature and input into the second neural network layer. The second neural network layer outputs a 255-dimensional feature, which, after passing through a softmax layer, is converted into a 255-dimensional probability distribution. Each dimension in this probability distribution corresponds to the probability of a subnode occupancy state. This probability distribution is used for entropy coding.

[0131] Conventional point cloud context models typically use a simple fully connected network to aggregate features. However, due to the nature of fully connected networks, if only the predicted number of occupied child nodes of the current node is used as a one-dimensional feature in the feature aggregation, changes in the value of this one-dimensional feature will have a ripple effect on the output layer. Therefore, we generate an 8-dimensional Gaussian distribution with the predicted number of occupied child nodes as the mean. P(X=x i )=Softmax(R(X=x i )) (13)

[0132] Among them, x i represents the current dimensional vector, i.e., the number of a certain type of occupied child nodes, μ represents the mean of the Gaussian distribution, i.e., the predicted value of the number of occupied child nodes. P represents the eight-dimensional probability distribution, x i represents the current dimension (i.e., a number from 1 to 8), μ represents the mean of the Gaussian distribution, i.e., the predicted value of the number of occupied child nodes, R(X=x i) represents a Gaussian distribution of a certain dimension. The physical meaning of this eight-dimensional vector is what are the probabilities of the number of occupied sub-nodes from 1 to 8. Then the above 8-dimensional features are spliced ​​into the feature aggregation stage of the probability prediction module. Compared with directly splicing the predicted number of occupied sub-nodes into the feature aggregation stage, the 8-dimensional Gaussian distribution generated based on the embodiment of the present application not only represents the probability of the number of occupied sub-nodes and gives it a clear physical meaning, but also ensures that each neuron in the output layer can assign a larger weight to the dimension with strong correlation in the 8-dimensional Gaussian distribution, avoiding the disadvantage of 1-dimensional features that affect the whole body.

[0133] Through the above method, although it is not directly avoided to obtain the 255-dimensional probability distribution for entropy coding through cross-entropy loss training, the embodiment of the present application introduces a prediction module for the number of occupied sub-nodes and generates a probability distribution representing the number of occupied sub-nodes to represent the number information of occupied sub-nodes, and introduces the probability distribution into the feature aggregation stage of the context model, so that each neuron in the output layer of the context model learns the relationship between it and the number of occupied sub-nodes by itself, thereby achieving better coding performance.

[0134] In the previous introduction, the context models in three related technologies (Related Technology 1, Related Technology 2, and Related Technology 3) were introduced. The context model provided in the embodiment of the present application differs from the context model in Related Technology 1 in that:

[0135] (1) The encoded sibling nodes are introduced as context information;

[0136] (2) It uses a more efficient attention network structure;

[0137] (3) A module for predicting the number of occupied sub-nodes is introduced. The module is trained using the MSE loss, and the number of occupied sub-nodes predicted by the module is mapped into an 8-dimensional probability distribution representing the probability of the number of sub-nodes occupied, which is introduced as a feature into the probability prediction of the context model.

[0138] The context model provided in the embodiment of the present application differs from the context model in the second related art in that:

[0139] A module for predicting the number of occupied sub-nodes is introduced. The module is trained using the MSE loss, and the number of occupied sub-nodes predicted by the module is mapped into an 8-dimensional probability distribution representing the possibility of the number of sub-nodes occupied, which is introduced as a feature into the probability prediction of the context model.

[0140] The context model provided in the embodiment of the present application differs from the context model in the third related art in that:

[0141] (1) We deeply analyze the reasons why cross entropy loss cannot accurately measure the difference between the probability distribution of training labels and predictions;

[0142] (2) A module for predicting the number of occupied child nodes is introduced, which maps the predicted number of occupied child nodes into an 8-dimensional probability distribution representing the probability of the number of child node occupancy. This directly introduces information related to the number of occupied child nodes and achieves better encoding and decoding performance.

[0143] This application first analyzes the problems existing in the existing octree-based learning context model in the field of point cloud geometry compression, namely: the cross-entropy loss only distinguishes different analogies by the position of the occupied sub-nodes without considering the difference caused by the number of occupied sub-nodes, resulting in the cross-entropy loss being unable to accurately measure the difference between the training label and the probability distribution output by the context model. Based on the above problems, the embodiment of the present application introduces an occupied sub-node number prediction module to calculate the MSE loss between the predicted number of occupied sub-nodes and the actual number of occupied sub-nodes. Then, the predicted value of the number of occupied sub-nodes is mapped to an 8-dimensional probability distribution representing the number of occupied sub-nodes, and is spliced ​​into the feature aggregation stage of the context model as a feature to assist the convergence of the cross-entropy loss.

[0144] It should be understood that the embodiments of the present application can be used to enhance the context model based on deep learning for point cloud geometric information compression under the octree structure. Due to the huge amount of three-dimensional point cloud data, there is an urgent need for efficient compression coding algorithms. Neural networks are widely used in the field of point cloud compression coding due to their powerful learning and prediction capabilities. As a common technology in the G-PCC coding standard, octree has derived a large number of context models based on deep learning under the octree structure and achieved performance that exceeds that of traditional context models. The embodiments of the present application do not need to change the structure of the existing context model based on deep learning under the octree structure. It can be directly embedded as a plug-in into the existing context model and improve the accuracy of the probability distribution predicted by the context model, thereby further improving the efficiency of entropy coding. Against the background of the rapid development and gradual widespread application of point cloud coding technology based on deep learning, the embodiments of the present application have broad application prospects and practical value due to their flexibility and portability.

[0145] The embodiment of the present application can be simplified into a context model based on the prediction of the number of occupied child nodes without the help of deep learning. Since deep learning technology requires a certain amount of computing power support, the corresponding computing power cannot be provided in some application environments, resulting in the inability to use point cloud compression technology based on deep learning. The embodiment of the present application can be simplified into a solution that does not require a neural network. The essential difference between deep learning technology and traditional rule-based technology is that deep learning technology can iteratively update a large number of parameters, but the method proposed in the embodiment of the present application can sacrifice some performance and be simplified into a rule-based method. The embodiment of the present application can be simplified to adaptively predict the number of occupied child nodes of the current node based on rules, and generate a probability distribution representing the number of occupied child nodes to assist the traditional context model in predicting the probability distribution required for entropy coding. After simplification, this solution does not require deep learning technology, the required computing power will be greatly reduced, and it has the possibility of being transplanted into the octree scheme of the existing G-PCC coding standard.

[0146] The method embodiment of the present application is described above in conjunction with Figures 1 to 9. The device embodiment of the present application is described in detail below in conjunction with Figures 10 to 13. It should be understood that the description of the method embodiment corresponds to the description of the device embodiment. Therefore, for parts not described in detail, reference can be made to the above method embodiment.

[0147] FIG10 is a schematic diagram of the structure of a decoder provided by an embodiment of the present application. As shown in FIG10 , the decoder 1000 may include a first determining unit 1010 , a second determining unit 1020 , a third determining unit 1030 , and a decoding unit 1040 .

[0148] The first determining unit 1010 is configured to parse the code stream and determine the context information of the node to be decoded.

[0149] The second determining unit 1020 is configured to determine the number of occupied sub-nodes in the node to be decoded according to the context information.

[0150] The third determining unit 1030 is configured to determine the probability distribution of the occupancy information of the node to be decoded according to the number information of the occupied sub-nodes.

[0151] The decoding unit 1040 is configured to perform entropy decoding on the node to be decoded according to the probability distribution of the occupancy information of the node to be decoded.

[0152] In some implementations, the information about the number of occupied sub-nodes is used to indicate a probability distribution of the number of occupied sub-nodes.

[0153] In some implementations, the probability distribution is a Gaussian distribution.

[0154] In some implementations, the multi-branch tree is an octree, and the probability distribution of the number of occupied child nodes is represented based on an eight-dimensional vector.

[0155] In some implementations, the second determining unit 1020 is further configured to determine the number information of the occupied sub-nodes according to the context information through a first model based on a neural network.

[0156] In some implementations, the first model includes a first attention layer, which is used to generate the weighted context information.

[0157] In some implementations, the second determination unit 1020 is further configured to determine the weighted context information based on the context information and the first attention layer; determine the first feature information based on the weighted context information and the first fully connected layer; and determine the predicted value of the number of occupied child nodes based on the first feature information.

[0158] In some implementations, the training loss function of the first model is MSE.

[0159] In some implementations, the third determination unit 1030 is further configured to determine the probability distribution of the occupancy information of the node to be decoded through a second model based on a neural network according to the number information of the occupied sub-nodes and the context information.

[0160] In some implementations, the second model further includes a second attention layer configured to generate weighted context information.

[0161] In some implementations, the second model also includes a second fully connected layer, and the third determination unit 1030 is further configured to determine the weighted context information based on the context information and the first attention layer; determine the second feature information based on the weighted context information and the second fully connected layer; and determine the probability distribution of the occupancy information of the node to be decoded based on the second feature information and the number information of the occupied child nodes.

[0162] In some implementations, the training loss function of the second model is a cross entropy function.

[0163] In some implementations, the label data used in training the second model is one-hot encoded data of occupancy information of nodes in the multi-branch tree.

[0164] In some implementations, the context information includes one or more of the following: occupancy information of the decoded node, level information of the decoded node in the multi-branch tree, and relative position information of the decoded node.

[0165] It is understood that in the embodiments of the present application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, and so forth. It can also be a module or a non-modular component. Furthermore, the various components in this embodiment can be integrated into a single processing unit, each unit can exist physically as a separate unit, or two or more units can be integrated into a single unit. These integrated units can be implemented in either hardware or software functional modules.

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

[0167] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the decoder 1000. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements the decoding method described in any one of the aforementioned embodiments.

[0168] Based on the composition of the above-mentioned decoder 1000 and the computer-readable storage medium, refer to Figure 11, which shows a specific hardware structure diagram of the decoder 1100 provided in an embodiment of the present application. As shown in Figure 11, the decoder 1100 may include: a communication interface 1110, a memory 1120 and a processor 1130; each component is coupled together through a bus system 1140. It can be understood that the bus system 1140 is used to achieve connection and communication between these components. In addition to the data bus, the bus system 1140 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 1140 in Figure 11. Among them,

[0169] Communication interface 1110, used for sending and receiving signals when sending and receiving information with other external network elements;

[0170] Memory 1120, for storing computer programs;

[0171] Processor 1130 is configured to, when running the computer program, execute the following: parsing a bitstream to determine context information of a node to be decoded; determining, based on the context information, the number of occupied child nodes in the node to be decoded; determining, based on the number of occupied child nodes, a probability distribution of occupancy information of the node to be decoded; and performing entropy decoding on the node to be decoded based on the probability distribution of the occupancy information of the node to be decoded.

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

[0173] The processor 1130 may be an integrated circuit chip with signal processing capabilities. During implementation, the steps of the above method can be completed by hardware integrated logic circuits or software instructions in the processor 1130. The processor 1130 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 implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software modules can be located in storage media well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the memory 1120 , and the processor 1130 reads the information in the memory 1120 and completes the steps of the above method in combination with its hardware.

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

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

[0176] FIG12 is a schematic diagram of the structure of an encoder provided by an embodiment of the present application. As shown in FIG12 , the encoder 1200 includes a first determining unit 1210 , a second determining unit 1220 , a third determining unit 1230 , and an encoding unit 1240 .

[0177] The first determining unit 1210 is configured to perform multi-branch tree division on the point cloud data to determine the nodes to be encoded.

[0178] The second determining unit 1220 is configured to determine the number of occupied child nodes in the node to be encoded according to the context information of the node to be encoded.

[0179] The third determining unit 1230 is configured to determine the probability distribution of the occupancy information of the node to be encoded according to the number information of the occupied sub-nodes.

[0180] The encoding unit 1240 is configured to perform entropy encoding on the node to be encoded according to the probability distribution of the occupancy information of the node to be encoded.

[0181] In some implementations, the information about the number of occupied sub-nodes is used to indicate a probability distribution of the number of occupied sub-nodes.

[0182] In some implementations, the probability distribution is a Gaussian distribution.

[0183] In some implementations, the multitree partition is an octree partition, and the probability distribution of the number of occupied child nodes is represented based on an eight-dimensional vector.

[0184] In some implementations, the second determining unit 1220 is further configured to determine the number information of the occupied sub-nodes according to the context information through a first model based on a neural network.

[0185] In some implementations, the first model includes a first attention layer, which is used to generate the weighted context information.

[0186] In some implementations, the first model also includes a first fully connected layer, and the second determination unit 1220 is further configured to determine the weighted context information based on the context information and the first attention layer; determine the first feature information based on the weighted context information and the first fully connected layer; and determine the predicted value of the number of occupied child nodes based on the first feature information.

[0187] In some implementations, the training loss function of the first model is MSE.

[0188] In some implementations, the third determining unit 1230 is further configured to determine the probability distribution of the occupancy information of the node to be encoded through a second model based on a neural network according to the number information of the occupied sub-nodes and the context information.

[0189] In some implementations, the second model further includes a second attention layer configured to generate weighted context information.

[0190] In some implementations, the second model also includes a second fully connected layer, and the third determination unit 1230 is further configured to determine the weighted context information based on the context information and the first attention layer; determine the second feature information based on the weighted context information and the second fully connected layer; and determine the probability distribution of the occupancy information of the node to be decoded based on the second feature information and the number information of the occupied child nodes.

[0191] In some implementations, the training loss function of the second model is a cross entropy function.

[0192] In some implementations, the label data used in training the second model is one-hot encoded data of occupancy information of nodes in the multi-branch tree.

[0193] In some implementations, the context information includes one or more of the following: occupancy information of the encoded node, level information of the encoded node in the multi-branch tree, and relative position information of the encoded node.

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

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

[0196] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 1200. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements the decoding method described in any one of the aforementioned embodiments.

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

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

[0199] Memory 1320, for storing computer programs;

[0200] Processor 1330 is configured to, when running the computer program, execute the following: performing multi-branch tree division on the point cloud data to determine the nodes to be encoded; determining the number of occupied child nodes in the nodes to be encoded based on the context information of the nodes to be encoded; determining the probability distribution of the occupancy information of the nodes to be encoded based on the number of occupied child nodes; and performing entropy encoding on the nodes to be encoded based on the probability distribution of the occupancy information of the nodes to be encoded.

[0201] It will be appreciated that the memory 1320 in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be a ROM, PROM, EPROM, EEPROM, or flash memory. The volatile memory may be a RAM, which serves as an external cache. By way of example and not limitation, many forms of RAM are available, such as SRAM, DRAM, SDRAM, DDRSDRAM, ESDRAM, SLDRAM, and DRRAM. The memory 1320 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0202] Processor 1330 may be an integrated circuit chip with signal processing capabilities. During implementation, the steps of the above method can be performed by hardware integrated logic circuits or software instructions within processor 1330. Processor 1330 may be a general-purpose processor, DSP, ASIC, FPGA, or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. A general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules within the decoding processor. The software modules can be located in a storage medium well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, or registers. This storage medium is located in memory 1320. Processor 1330 reads information from memory 1320 and, in conjunction with its hardware, completes the steps of the above method.

[0203] It is understood that the embodiments described herein can be implemented with hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more ASICs, DSPs, DSPDs, PLDs, FPGAs, general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described herein, or a combination thereof. For software implementation, the technology described herein can be implemented by modules (e.g., processes, functions, etc.) that perform the functions described herein. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.

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

[0205] An embodiment of the present application also provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium for storing a bit stream. The bit stream can be generated by an encoding method of an encoder, or the bit stream can be decoded by a decoding method of a decoder, wherein the decoding method can be the decoding method described in any of the foregoing embodiments, and the encoding method can be the encoding method described in any of the foregoing embodiments.

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

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

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

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

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

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

Claims

1. A point cloud decoding method, applied to a decoder, comprising: Parse the code stream to determine the context information of the node to be decoded; Determining the number of occupied child nodes in the node to be decoded according to the context information; Determining the probability distribution of the occupancy information of the node to be decoded according to the number information of the occupied child nodes; Entropy decoding is performed on the node to be decoded according to the probability distribution of the occupancy information of the node to be decoded.

2. The method according to claim 1, wherein The information about the number of occupied sub-nodes is used to indicate the probability distribution of the number of occupied sub-nodes.

3. The method according to claim 2, wherein: The probability distribution is a Gaussian distribution.

4. The method according to claim 2 or 3, wherein: The probability distribution of the number of occupied child nodes is represented based on an eight-dimensional vector.

5. The method according to any one of claims 1 to 4, wherein The determining, based on the context information, information about the number of occupied child nodes in the node to be decoded includes: According to the context information, the number of the occupied sub-nodes is determined by a first model based on a neural network.

6. The method according to claim 5, wherein: The first model includes a first attention layer, which is used to generate weighted context information.

7. The method according to claim 6, wherein: The first model further includes a first fully connected layer, and determining the number of occupied child nodes according to the context information through the first model based on a neural network includes: Determining weighted context information based on the context information and the first attention layer; Determining first feature information based on the weighted context information and the first fully connected layer; The number information of the occupied sub-nodes is determined according to the first feature information.

8. The method according to any one of claims 5 to 7, wherein The training loss function of the first model is the mean square error (MSE).

9. The method according to any one of claims 1 to 8, wherein The determining, based on the number information of the occupied child nodes, the probability distribution of the occupancy information of the node to be decoded includes: According to the number information of the occupied child nodes and the context information, a probability distribution of the occupancy information of the node to be decoded is determined by a second model based on a neural network.

10. The method according to claim 9, wherein: The second model includes a second attention layer, which is used to generate weighted context information.

11. The method according to claim 10, wherein: The second model further includes a second fully connected layer, and determining the probability distribution of the occupancy information of the to-be-decoded node through a second model based on a neural network according to the number information of the occupied child nodes and the context information, including: Determining weighted context information based on the context information and the first attention layer; Determining second feature information based on the weighted context information and the second fully connected layer; The probability distribution of the occupancy information of the node to be decoded is determined according to the second feature information and the number information of the occupied child nodes.

12. The method according to any one of claims 9 to 11, wherein The training loss function of the second model is a cross entropy function.

13. The method according to any one of claims 9 to 12, wherein: The label data used in the training of the second model is the one-hot encoded data of the occupancy information of the nodes in the multi-branch tree.

14. The method according to any one of claims 1 to 13, wherein The context information includes one or more of the following: occupancy information of the decoded node, level information of the decoded node in the multi-branch tree, and relative position information of the decoded node.

15. A point cloud encoding method, applied to an encoder, comprising: Divide the point cloud data into a multi-branch tree to determine the nodes to be encoded; Determining the number of occupied child nodes in the node to be encoded according to the context information of the node to be encoded; Determining the probability distribution of the occupancy information of the node to be encoded according to the number information of the occupied child nodes; Entropy coding is performed on the node to be coded according to the probability distribution of the occupancy information of the node to be coded.

16. The method according to claim 15, wherein The information about the number of occupied sub-nodes is used to indicate the probability distribution of the number of occupied sub-nodes.

17. The method according to claim 16, wherein The probability distribution is a Gaussian distribution.

18. The method according to claim 16 or 17, wherein The multi-branch tree partition is an octree partition, and the probability distribution of the number of occupied child nodes is represented based on an eight-dimensional vector.

19. The method according to any one of claims 15 to 18, wherein The determining, based on the context information of the node to be encoded, the number of occupied child nodes in the node to be encoded includes: According to the context information, the number of the occupied sub-nodes is determined by a first model based on a neural network.

20. The method according to claim 19, wherein The first model includes a first attention layer, which is used to generate weighted context information.

21. The method according to claim 20, wherein The first model further includes a first fully connected layer, and determining the number of occupied child nodes according to the context information through the first model based on a neural network includes: Determining weighted context information based on the context information and the first attention layer; Determining first feature information based on the weighted context information and the first fully connected layer; The number information of the occupied sub-nodes is determined according to the first feature information.

22. The method according to any one of claims 19 to 21, wherein The training loss function of the first model is the mean square error (MSE).

23. The method according to any one of claims 15 to 22, wherein The determining, based on the number information of the occupied child nodes, the probability distribution of the occupancy information of the node to be encoded includes: According to the number information of the occupied child nodes and the context information, a probability distribution of the occupancy information of the node to be encoded is determined by a second model based on a neural network.

24. The method according to claim 23, wherein The second model includes a second attention layer, which is used to generate weighted context information.

25. The method according to claim 24, wherein The second model further includes a second fully connected layer, and determining the probability distribution of the occupancy information of the node to be encoded through a second model based on a neural network according to the number information of the occupied child nodes and the context information, including: Determining weighted context information based on the context information and the first attention layer; Determining second feature information based on the weighted context information and the second fully connected layer; The probability distribution of the occupancy information of the node to be encoded is determined according to the second feature information and the number information of the occupied child nodes.

26. The method according to any one of claims 23 to 25, wherein The training loss function of the second model is a cross entropy function.

27. The method according to any one of claims 23 to 26, wherein The label data used in the training of the second model is the one-hot encoded data of the occupancy information of the nodes in the multi-branch tree.

28. The method according to any one of claims 15 to 27, wherein The context information includes one or more of the following: occupancy information of the encoded node, level information of the encoded node in the multi-branch tree, and relative position information of the encoded node.

29. A decoder comprising: A first determining unit is configured to parse the code stream and determine context information of the node to be decoded; A second determining unit is configured to determine the number of occupied subnodes in the node to be decoded according to the context information; a third determining unit, configured to determine a probability distribution of the occupancy information of the to-be-decoded node according to the number information of the occupied sub-nodes; The decoding unit is configured to perform entropy decoding on the node to be decoded according to the probability distribution of the occupancy information of the node to be decoded.

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

31. An encoder comprising: A first determining unit is configured to perform multi-branch tree partitioning on the point cloud data to determine nodes to be encoded; a second determining unit configured to determine information about the number of occupied child nodes in the node to be encoded based on context information of the node to be encoded; a third determining unit, configured to determine a probability distribution of the occupancy information of the to-be-encoded node according to the number information of the occupied sub-nodes; The encoding unit is configured to perform entropy encoding on the node to be encoded according to the probability distribution of the occupancy information of the node to be encoded.

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

33. A non-volatile computer-readable storage medium storing a bit stream, wherein the bit stream is generated by an encoding method using an encoder, or the bit stream is decoded by a decoding method using a decoder, wherein: The decoding method is the method according to any one of claims 1 to 14, and the encoding method is the method according to any one of claims 15 to 28.

34. A code stream, comprising a code stream generated by the method according to any one of claims 15 to 28.

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

Citation Information

Patent Citations

  • Methods and devices for binary entropy coding of point clouds

    CN112789804A

  • System and Methods for Encoding Octree Structured Point Cloud Data Using an Entropy Model

    US20210150771A1

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

    US20230342987A1

  • Adaptive deep-learning based probability prediction method for point cloud compression

    WO2023075630A1