Encoding method, decoding method, point cloud encoder, point cloud decoder, and storage medium
By determining the point count threshold according to the node size in point cloud inter-frame prediction and selecting the optimal entropy coding/decoding parameters, the problems of high computational complexity and low efficiency of octree-based coding and decoding are solved, and more efficient coding and decoding is achieved.
Patent Information
- Application Number
- PCT/CN2024/085666
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-02
- Publication Date
- 2025-10-09
AI Technical Summary
In the geometry-based point cloud compression coding and decoding framework, the octree-based geometric coding and decoding has the problems of high computational complexity and low coding and decoding efficiency.
By determining the appropriate point count threshold according to the current node size during point cloud inter-frame prediction, the occupancy of the predicted sub-nodes is distinguished, and the optimal entropy coding/decoding parameter set is selected for encoding and decoding.
The bit rate is reduced and the encoding and decoding efficiency is improved.
Smart Images

Figure CN2024085666_09102025_PF_FP_ABST
Abstract
Description
Coding and decoding method, point cloud encoder, point cloud decoder and storage medium Technical Field
[0001] The embodiments of the present application relate to the field of point cloud encoding and decoding technology, and in particular to an encoding and decoding method, a point cloud encoder, a point cloud decoder, and a storage medium. Background Art
[0002] Currently, in the geometry-based point cloud compression (G-PCC) codec framework, the geometric information of a point cloud and the attribute information corresponding to each point in the point cloud are encoded separately. Within the G-PCC codec framework, the geometry encoding and decoding can be divided into octree-based geometry encoding and decoding, trisoup-based geometry encoding and decoding, and prediction tree-based geometry encoding and decoding.
[0003] In the octree-based geometric coding and decoding technology, when encoding and decoding the occupancy information according to the context information of the node to be encoded, there are problems of high computational complexity and low coding and decoding efficiency.
[0004] Summary of the Invention
[0005] The embodiments of the present application provide a coding and decoding method, a point cloud encoder, a point cloud decoder, and a storage medium. When performing inter-frame prediction of a point cloud, an appropriate point count threshold is determined based on the current node size, thereby reasonably distinguishing the occupancy of the predicted sub-nodes, selecting the optimal entropy coding / decoding parameter set for the current sub-node, and further selecting the optimal entropy coding / decoding parameters for coding and decoding based on context information, thereby reducing the bit rate and improving the coding and decoding efficiency.
[0006] The technical solution of the embodiment of the present application can be implemented as follows:
[0007] In a first aspect, an embodiment of the present application provides a decoding method, applied to a point cloud decoder, the method comprising:
[0008] When the inter-frame prediction mode is enabled for the current node, determining a point threshold according to a size parameter of the current node, wherein the point threshold includes one or more thresholds;
[0009] Determining occupancy information of the first predicted sub-node according to the number of points of the first predicted sub-node corresponding to the current sub-node to be decoded in the current node and the point threshold;
[0010] Determining a target entropy decoding parameter set for the current child node according to the occupancy information of the first predicted child node;
[0011] Determining, according to the context information of the current child node, a target entropy decoding parameter of the current child node from the target entropy decoding parameter set;
[0012] Entropy decoding is performed on the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.
[0013] In a second aspect, an embodiment of the present application provides an encoding method, applied to a point cloud encoder, the method comprising:
[0014] When the inter-frame prediction mode is enabled for the current node, determining a point threshold according to a size parameter of the current node, wherein the point threshold includes one or more thresholds;
[0015] Determining occupancy information of the first predicted subnode according to the number of points of the first predicted subnode corresponding to the current subnode to be encoded in the current node and the point threshold;
[0016] Determining a target entropy coding parameter set for the current child node according to the occupancy information of the first predicted child node;
[0017] Determining, according to the context information of the current child node, a target entropy coding parameter of the current child node from the target entropy coding parameter set;
[0018] Entropy coding is performed on the occupancy information of the current child node according to the target entropy coding parameter, and the obtained coding bits are written into a bitstream.
[0019] In a third aspect, an embodiment of the present application provides a point cloud encoder, which includes a first determination unit, a first prediction unit, and an encoding unit; wherein,
[0020] The first determining unit is configured to determine a point number threshold according to a size parameter of the current node when the inter-frame prediction mode is enabled for the current node, wherein the point number threshold includes one or more thresholds;
[0021] The first prediction unit is configured to determine occupancy information of the first predicted sub-node corresponding to the current sub-node to be encoded in the current node and the point threshold; and determine a target entropy coding parameter set for the current sub-node based on the occupancy information of the first predicted sub-node;
[0022] The first determining unit is configured to determine the target entropy coding parameter of the current child node from the target entropy coding parameter set according to the context information of the current child node;
[0023] The encoding unit is configured to perform entropy encoding on the occupancy information of the current child node according to the target entropy encoding parameter, and write the obtained encoding bits into a bitstream.
[0024] In a fourth aspect, an embodiment of the present application provides a point cloud encoder, comprising a first memory and a first processor; wherein,
[0025] a first memory for storing a computer program capable of running on the first processor;
[0026] The first processor is configured to execute the method according to the second aspect when running a computer program.
[0027] In a fifth aspect, an embodiment of the present application provides a point cloud decoder, the point cloud decoder comprising a second determination unit, a second prediction unit and a decoding unit; wherein,
[0028] The second determining unit is configured to determine a point number threshold according to a size parameter of the current node when the inter-frame prediction mode is enabled for the current node, wherein the point number threshold includes one or more thresholds;
[0029] The second prediction unit is configured to determine the occupancy information of the first predicted sub-node according to the number of points of the first predicted sub-node corresponding to the current sub-node to be decoded in the current node and the point threshold;
[0030] The second determining unit is configured to determine a target entropy decoding parameter set for the current child node based on the occupancy information of the first predicted child node; and determine a target entropy decoding parameter for the current child node from the target entropy decoding parameter set based on the context information of the current child node;
[0031] The decoding unit is configured to perform entropy decoding on the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.
[0032] In a sixth aspect, an embodiment of the present application provides a point cloud decoder, comprising a second memory and a second processor; wherein,
[0033] a second memory for storing a computer program capable of running on the second processor;
[0034] The second processor is configured to execute the method according to the first aspect when running a computer program.
[0035] In a seventh aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a code stream generated by the encoding method as described.
[0036] In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium storing a computer program, which, when executed, implements the method described in the first aspect or the method described in the second aspect.
[0037] The embodiments of the present application provide a coding and decoding method, a point cloud encoder, a point cloud decoder, and a storage medium. Whether on the encoding or decoding end, when performing point cloud inter-frame prediction, a point count threshold is determined based on the size parameters of the current node; thereby, the occupancy information of the first predicted child node is determined; based on this inter-frame information, a target entropy coding / decoding parameter set for the current child node is determined; based on the context information of the current child node, the target entropy coding / decoding parameters are determined; and the occupancy information of the current child node is entropy encoded / decoded based on the target entropy coding / decoding parameters. In this way, when performing point cloud inter-frame prediction, an appropriate point count threshold is determined based on the current node size, thereby reasonably distinguishing the occupancy of the predicted child nodes, selecting the optimal entropy coding / decoding parameter set for the current child node, and further selecting the optimal entropy coding / decoding parameters for encoding and decoding based on the context information, thereby reducing the bit rate and improving encoding and decoding efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] Figure 1 is a schematic diagram of a point cloud encoding and decoding network architecture;
[0039] FIG2 is a schematic diagram of a composition framework of a G-PCC encoder;
[0040] FIG3 is a schematic diagram of a composition framework of a G-PCC decoder;
[0041] Fig. 4 is a schematic diagram of a realization framework of OBUF technology;
[0042] FIG5 is a schematic diagram of an application implementation flow of an OBUF technology;
[0043] FIG6 is a schematic diagram of dynamically adjusting context priorities;
[0044] FIG7 is a schematic diagram of a scanning order of subnodes in a current node;
[0045] FIG8 is a schematic diagram of a process for constructing inter-frame context information;
[0046] FIG9 is a schematic diagram of an octree geometric coding process based on inter-frame prediction;
[0047] FIG10 is a schematic diagram of an intra-frame and inter-frame entropy coding process based on OBUF technology;
[0048] FIG11 is a schematic diagram of a motion prediction process based on a prediction unit PU;
[0049] FIG12 is a flowchart diagram of a decoding method according to an embodiment of the present application;
[0050] FIG13 is a schematic diagram showing the distribution of child neighbor nodes and coplanar parent neighbor nodes of child node 0;
[0051] FIG14 is a schematic diagram showing the distribution order of 20 parent neighbor nodes of a child node 0;
[0052] FIG15 is a second flow chart of a decoding method provided in an embodiment of the present application;
[0053] FIG16 is a flowchart diagram 1 of an encoding method provided in an embodiment of the present application;
[0054] FIG17 is a second flow chart of an encoding method provided in an embodiment of the present application;
[0055] FIG18 is a schematic diagram of the structure of a point cloud encoder provided in an embodiment of the present application;
[0056] FIG19 is a schematic diagram of a specific hardware structure of a point cloud encoder provided in an embodiment of the present application;
[0057] FIG20 is a schematic diagram of the structure of a point cloud decoder provided in an embodiment of the present application;
[0058] FIG21 is a schematic diagram of a specific hardware structure of a point cloud decoder provided in an embodiment of the present application;
[0059] FIG22 is a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application. DETAILED DESCRIPTION
[0060] In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
[0061] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
[0062] In the following description, reference is made to "some embodiments," which describe a subset of all possible embodiments. However, it is understood that "some embodiments" may be the same subset or different subsets of all possible embodiments, and may be combined with each other without conflict. It should also be noted that the terms "first, second, and third" in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It is understood that "first, second, and third" may be interchanged in a specific order or sequential order where permitted, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0063] Before further explaining the embodiments of the present application in detail, the nouns and terms involved in the embodiments of the present application are explained first. The nouns and terms involved in the embodiments of the present application are subject to the following interpretations:
[0064] Point Cloud Compression (PCC);
[0065] Geometry-based Point Cloud Compression (G-PCC or GPCC);
[0066] Video-based Point Cloud Compression (V-PCC or VPCC);
[0067] Octree;
[0068] Triangle soup (Trisoup);
[0069] K Nearest Neighbor (KNN);
[0070] Level of Detail (LOD);
[0071] Predicting Transform;
[0072] Lifting Transform;
[0073] Largest Prediction Unit (LPU);
[0074] Prediction Unit (PU);
[0075] Region Adaptive Hierarchal Transform (RAHT);
[0076] Context-based Adaptive Binary Arithmetic Coding (CABAC).
[0077] Point cloud is a three-dimensional representation of the surface of an object. Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
[0078] A point cloud refers to a collection of massive three-dimensional points. The points in the point cloud can include both their location information and their attribute information. For example, the location information of a point can be its three-dimensional coordinate information. The location information of a point can also be referred to as its geometric information. For example, the attribute information of a point can include color information and / or reflectivity, etc. For example, color information can be information in any color space. For example, color information can be RGB information, where R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, color information can be luminance and chrominance (YCbCr, YUV) information, where Y represents brightness, Cb (U) represents blue chrominance, and Cr (V) represents red chrominance.
[0079] For example, a point cloud obtained based on the principle of laser measurement can include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point. For another example, a point cloud obtained based on the principle of photogrammetry can include the three-dimensional coordinate information of the point and the color information of the point. For another example, a point cloud obtained by combining the principles of laser measurement and photogrammetry can include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point, and the color information of the point.
[0080] Point clouds can be divided into the following categories according to the acquisition method:
[0081] The first type of static point cloud: the object is stationary and the device used to obtain the point cloud is also stationary;
[0082] The second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is stationary;
[0083] The third type of dynamic point cloud acquisition: the device that acquires the point cloud is moving.
[0084] For example, point clouds can be divided into two categories according to their usage:
[0085] Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;
[0086] Category 2: Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
[0087] Since point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of point clouds at the network layer without compression. Therefore, point clouds need to be compressed.
[0088] To date, the point cloud coding framework that can compress point clouds can be the G-PCC codec framework or the V-PCC codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS). Among them, the G-PCC codec framework can be used to compress the first type of static point cloud and the third type of dynamically acquired point cloud, and the V-PCC codec framework can be used to compress the second type of dynamic point cloud. In the embodiments of the present application, the description is mainly based on the G-PCC codec framework.
[0089] 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.
[0090] 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).
[0091] The following describes the related technologies using the G-PCC encoding and decoding framework as an example.
[0092] It can be understood that in the point cloud G-PCC codec framework, the point cloud data to be encoded is first divided into multiple slices through slice partitioning. In each slice, the geometric information and attribute information of the point cloud are encoded separately.
[0093] Figure 2 shows a schematic diagram of the G-PCC encoder architecture. As shown in Figure 2, during the geometry encoding process, the geometric information is transformed so that the entire point cloud is contained within a bounding box. Quantization then occurs. This quantization step primarily serves a scaling purpose. Due to quantization rounding, the geometric information of some point clouds becomes identical. Parameters are then used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also known as voxelization. The bounding box is then partitioned into an octree or a prediction tree is constructed. During this process, entropy coding is performed on the points in the leaf nodes of the partition to generate a binary geometry bitstream. Alternatively, entropy coding is performed on the vertex points generated by the partition (surface fitting is performed based on the intersections) to generate a binary geometry bitstream. During the attribute encoding process, after the geometry encoding is completed and the geometry information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. The reconstructed geometry information is then used to recolor the point cloud, aligning the unencoded attribute information with the reconstructed geometry information. Attribute encoding is mainly performed on color information. In the process of color information encoding, there are two main transformation methods. One is the distance-based lifting transformation that relies on LOD division, and the other is direct RAHT transformation. Both methods convert color information from the spatial domain to the frequency domain, and obtain high-frequency coefficients and low-frequency coefficients through transformation. Finally, the coefficients are quantized and then entropy coded on the quantized coefficients to generate a binary attribute code stream.
[0094] Figure 3 shows a schematic diagram of the composition framework of a G-PCC decoder. As shown in Figure 3, for the acquired binary bit stream, the geometric code stream and attribute code stream in the binary code stream are first decoded independently. When decoding the geometric code stream, entropy decoding is first performed, and then one of the following methods is selected: octree partitioning-reconstructed surface estimation or prediction tree construction, and then through geometric reconstruction-coordinate inverse transformation, the geometric information of the point cloud can be obtained; when decoding the attribute code stream, entropy decoding and inverse quantization are first performed, and then one of the following methods is selected: RAHT transformation or LOD partitioning-lifting transformation, and finally through color inverse transformation, the attribute information of the point cloud can be obtained; based on the geometric information and attribute information, the point cloud data to be encoded can be restored.
[0095] It should be noted that, as shown in Figure 2 or Figure 3, the current G-PCC geometric codec can be divided into octree-based geometric codec, Trisoup-based geometric codec, and prediction tree-based geometric codec, as follows:
[0096] (a) Octree-based geometric encoding and decoding:
[0097] On the encoding side, the geometric information is first transformed so that all point clouds are contained in a bounding box determined by two extreme points (0,0,0) and (2d,2d,2d). Voxelization is then performed, i.e., quantization, rounding, and removal of duplicate points (determined by parameters). The non-empty sub-cubes (containing points in the point cloud) in the Bounding Box are then continuously partitioned into octrees in the order of breadth-first traversal. At the same octree depth, a node is divided into 8 child nodes until the leaf node obtained is a 1×1×1 unit cube. The 8-bit binary code generated to indicate whether a point in the sub-cube is occupied (1 for occupied, 0 for unoccupied) is called an occupancy code. The placeholder code of each node is encoded to generate a binary code stream.
[0098] At the decoding end, the placeholder code of each node is obtained by continuous parsing in the order of breadth-first traversal, and the nodes are continuously divided in turn until a 1×1×1 unit cube is obtained. The division is stopped and the number of points contained in each leaf node is parsed, and finally the geometric reconstructed point cloud information is restored.
[0099] (b) Based on Trisoup geometric encoding and decoding:
[0100] On the encoding side, the octree is first divided. Unlike geometric information encoding based on the octree structure, this method does not need to divide the point cloud step by step into bottom-level leaf nodes with a side length of 1×1×1. Instead, it divides the leaf nodes into leaf nodes with specified side lengths; then, the surface information composed of the voxels in the node is represented by a series of triangle meshes. In GPCC, the parameter Trisoup node size can be used to represent the size of the block where the triangle facet is located. When the Trisoup node size is greater than 0, the voxel set in the node is represented by a geometric facet. The up to twelve intersection points generated by the geometric facet and the twelve edges of the block are called vertices. The vertex coordinates of each block are encoded in sequence to generate a binary code stream.
[0101] At the decoding end, in order to decode the geometric coordinates of the point cloud from the node's triangle face, it is necessary to check whether each voxel in the node cube intersects with the triangle face. This technology is called triangle rasterization, and the six unit vectors (0,0,1), (0,0,1), (0,0,1), (0,0,1), (0,0,1), (0,0,1) are used for intersection check to check whether each unit vector intersects with the triangle face. If so, the intersection point is calculated and the decoded cube is output. The number of generated points in the decoder is determined by the grid distance d.
[0102] (c) Geometric encoding and decoding based on prediction tree:
[0103] At the encoding end, the input point cloud is first sorted. The sorting methods currently used include disorder, Morton order, azimuth order, and radial distance order. At the encoding end, the prediction tree structure is established by using two different methods, including: high-latency slow mode (KD-Tree, KD tree) and low-latency fast mode (using lidar calibration information to divide each point into different lasers (Laser), and establish a prediction structure according to different Lasers). Next, based on the structure of the prediction tree, each node in the prediction tree is traversed, and the geometric position information of the node is predicted by selecting different prediction modes to obtain the prediction residual, and the prediction residual is quantized using the quantization parameter. Finally, through continuous iteration, the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.
[0104] At the decoding end, the decoding end reconstructs the prediction tree structure by continuously parsing the bit stream. Secondly, the geometric position prediction residual information and quantization parameters of each prediction node are obtained through parsing, and the prediction residual is dequantized to restore the reconstructed geometric position information of each node, finally completing the geometric reconstruction at the decoding end.
[0105] It should also be noted that in one possible implementation of the related technology, the encoder currently used by G-PCC is context-based adaptive binary arithmetic coding CABAC, which is an entropy encoder widely used in video coding. Like traditional arithmetic coding, CABAC uses a recursive interval partitioning method for coding representation. Since CABAC is adaptive coding, that is, the probability model will adjust with the appearance of symbols, it fully considers the statistical characteristics of the source and greatly improves coding efficiency. Among them, the CABAC encoder can be divided into three parts: binarization, context modeling, and binary arithmetic coding; the details are as follows:
[0106] ① Binarization: Binarization maps a given non-binary syntax element into a binary sequence, i.e., a binary stream (Bin String). If the input syntax element is a binary syntax element, the binarization process is omitted and the data is sent directly to the next step via a bypass.
[0107] ②Context modeling: The encoder assigns an appropriate probability model to each input binary bit based on the value of the previously encoded syntax elements or binary bits. This process is called context modeling.
[0108] ③ Binary arithmetic coding: There are two modes to choose from: regular coding mode and bypass coding mode. In regular coding mode, the binary bits (bins) of the syntax elements and their assigned probability models are fed into the binary arithmetic encoder for encoding. The context model is updated based on the bin values, which is adaptive coding. The other mode is bypass coding mode. In this mode, no specific probability model is assigned to each binary bit. The input bins are directly encoded using a simple bypass encoder, which can speed up the entire encoding and decoding process.
[0109] 1. Optimal Binarization with Update on the Fly (OBUF) technology
[0110] OBUF technology quickly and accurately maps a series of discrete states of the context node's placeholder information to a fixed number of adaptive entropy encoders (i.e., probability models) through a mapping relationship lookup table (LUT). In this way, the context information no longer corresponds one-to-one to the probability model. A fixed number of probability models are updated as the currently encoded syntax elements are updated, and their mapping relationship is updated after each encoding is completed.
[0111] FIG4 is a schematic diagram of an implementation process of an OBUF technology. As shown in FIG4 , the mapped encoder index takes a value of [0, 1, …, N-1], and the symbol s is an occupied bit to be encoded or decoded, and takes a value of 1 or 0.
[0112] 1) OBUF technology can be divided into the following three steps:
[0113] (1) Obtain the context information D of the symbol to be encoded
[0114] The context information D of the symbol to be encoded is the input information of OBUF, which consists of the encoded neighbor node information in the space and the position of the child node relative to the parent node.
[0115] (2) Based on the mapping relationship, the binary encoder index i corresponding to the context information D is obtained
[0116] Before all the symbols to be encoded are encoded, each state is mapped to N encoders through a table lookup. For example, each context information D is mapped to one of 32 encoders (i.e., i is in the range [0, 1, ..., 31]), such as the binary entropy encoder i in Figure 4.
[0117] (3) Use binary encoder i to entropy encode the symbol S
[0118] The symbol to be encoded S is sent to the binary encoder corresponding to its corresponding context information D for entropy coding.
[0119] 2) Examples of OBUF Technology Applications
[0120] As shown in Figure 5, suppose that the occupancy status b0 of child node 0 among the eight child nodes of the current node is encoded. The value of b0 is 0 or 1, 0 means not occupied, and 1 means occupied. First, determine the context information (State) of the child node b0 to be encoded, that is, the state of whether the encoded node is occupied. It is composed of the neighboring nodes, its parent node and adjacent nodes that have been encoded by the current child node to be encoded. These nodes are called context nodes. Each context node has two states: occupied and unoccupied. The occupancy status of all context nodes constitutes context information. Then, based on the mapping relationship, the binary encoder coderi corresponding to the context information (State) is obtained. Finally, the binary encoder coderi is used to perform entropy encoding on the encoding symbol b0.
[0121] 2. Dynamic OBUF technology
[0122] Compared with OBUF technology, dynamic OBUF technology no longer uses a fixed number of contexts, but dynamically adjusts the number of contexts during the encoding process.
[0123] The dynamic OBUF technology is divided into two stages: 1) dynamically determining the context node and context information; 2) mapping the context information to a smaller number of binary encoder groups (corresponding to the OBUF technology).
[0124] The following describes context construction and dynamic adjustment. In dynamic OBUF technology, context information is divided into two parts: primary information and secondary information. Part of the secondary information is dynamically adjusted as context information. The context information composed of the primary information and the selected secondary information is used as the OBUF context information.
[0125] 1) Context information construction process:
[0126] The context nodes of the child nodes to be encoded include the following categories:
[0127] (1) Encoded sibling nodes;
[0128] (2) The six coplanar parent neighbor nodes of the current node;
[0129] (3) The other 20 parent neighbor nodes of the current node that share the same edges and points.
[0130] It should be noted that the scanning order of these context nodes from front to back is: encoded sibling nodes of the current child node > encoded coplanar child node neighbors of the current child node > encoded co-edge child node neighbors of the current child node > encoded co-point child node neighbors of the current child node > encoded other child node neighbors of the current child node > encoded coplanar parent node neighbors of the current child node > encoded co-edge parent node neighbors of the current child node > other 20 encoded parent node neighbors. Based on this scanning order, context information is constructed for the child node to be encoded. The first N bits of context information are primary information, and the last M bits are secondary information. M is dynamically adjusted during the encoding process.
[0131] Figure 6 shows a schematic diagram of dynamically adjusting context priorities. As shown in Figure 6, the black-filled child node is the current child node. Eight cases are provided here: the grid-filled child node in (a) is the sibling child node of the current child node; the grid-filled child node in (b) is the coplanar neighbor child node of the current child node; the grid-filled child node in (c) is the coplanar neighbor parent node of the current child node; the grid-filled child node in (d) is the co-edge neighbor child node of the current child node; the grid-filled child node in (e) is the adjacent neighbor parent node of the current child node; the grid-filled child node in (f) is the co-point neighbor child node of the current child node; the grid-filled child node in (g) is the non-adjacent child neighbor node of the current child node; and the grid-filled child node in (h) is the non-adjacent parent neighbor node of the current child node.
[0132] It should also be noted that when constructing the context information, different context models can be constructed for the sub-nodes to be encoded at different positions in the current node according to a preset scanning order. For example, as shown in FIG7 , a schematic diagram of the scanning order of the sub-nodes in the current node is shown here. The scanning order can be to construct different context models in sequence according to sub-node 0, sub-node 1, sub-node 2, sub-node 3, sub-node 4, sub-node 5, sub-node 6 and sub-node 7 in FIG7 . In addition, as the number of encoded sub-nodes in the current node increases, the effective context information that can be referenced by the unencoded sub-nodes will also change, and there are different local sparsity determination methods for the eight sub-nodes of the current node, so each sub-node has its own context bins.
[0133] 2) Dynamic adjustment process
[0134] Each context node can be either occupied or unoccupied, i.e., in a state of 0 or 1. Context information can be represented by N+M binary bits, with N representing primary information and M representing secondary information. During the encoding process, the number of times each piece of context information is used is recorded. When the number of times a particular piece of context information is used exceeds a threshold T, a new context node is added to the scanning order, essentially subdividing the context information by introducing a new context node. Subsequent child nodes to be encoded are encoded using this updated set of context information.
[0135] 3. G-PCC dense point cloud inter-frame coding
[0136] 1) Octree-based geometric coding
[0137] In G-PCC, both intra-frame and inter-frame coding of octree geometric information adopt OBUF technology for entropy coding. However, the context construction method of inter-frame coding is different from that of intra-frame coding. Specifically, the inter-frame context information (Inter State) is actually the union of the intra-frame context information (Intra State) of the current symbol to be encoded and the prediction information of the current node to be encoded obtained through the reference frame. The specific approach is to add whether the current node obtained from the reference frame is occupied and whether it is strongly occupied to the intra-frame context information, for example, to the intra-frame context main information (Intra_ctx1), that is, Inter_ctx1 = Intra_ctx1<<2|predL<<1|pred. Here, predL indicates whether the current child node is predicted to be strongly occupied, and pred indicates whether the current child node is predicted to be occupied. Figure 8 is a schematic diagram of the construction process of inter-frame context information.
[0138] 2) Octree geometry coding based on inter-frame prediction
[0139] Figure 9 is a schematic diagram of the octree geometric coding process based on inter-frame prediction. As shown in Figure 9, "isSparse" refers to the local sparsity of the child node to be encoded, which is determined by the occupancy of the encoded neighboring nodes of the child node to be encoded. According to the value of isSparse (0 or 1), it is divided into a sparse context state set and a non-sparse context state set. Further, according to the value of isInter2 (0 or 1), it is divided into four major sets: intra-frame non-sparse (IntraNSparse) context state, inter-frame non-sparse (InterNSparse) context state, intra-frame sparse (IntraSparse) context state, and inter-frame sparse (InterSparse) context state.
[0140] isInter2=isInter&&predoc, that is, the value of isInter2 is determined by isInter and predOcc, and predOcc is an identifier used to indicate whether the prediction node is occupied. Specifically, if at least one child node bPi is occupied in the prediction node, then predOcc is set to 1; conversely, if no child node is occupied, then predOcc is 0. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper-layer inter-frame prediction is enabled. If inter-frame prediction is enabled, it is called a P frame, and isInter is 1; conversely, if it is not enabled, it is called an I frame, and isInter is 0.
[0141] According to the occupancy of the prediction node, the information determined to be inter-frame prediction (isInter2=1) is divided into the following categories:
[0142] a) Pred0: When the child node i is predicted to be empty, the child node i is predicted to not occupy bPi=0.
[0143] b) Pred1: When the child node i is predicted to be non-empty, the child node i is predicted to occupy bPi = 1. At this time, there are two cases based on the number of points contained in the node:
[0144] i.predL=1: When the predicted child node i is not empty and the number of points in it exceeds the threshold th, the child node i is strongly occupied.
[0145] ii. predL = 0: When the predicted child node i is not empty and the number of points in it does not exceed the threshold th, the child node i is not strongly occupied.
[0146] Figure 10 is a schematic diagram of an intra-frame and inter-frame entropy coding process based on OBUF technology. First, the value of isSparse is determined according to the intra-frame context information (Intra state) of the sub-node to be encoded, and is divided into two sets of sparse context state and non-sparse context state according to the value of isSparse (0 or 1). Secondly, the value of isInter2 is determined by the inter-frame enable flag and the prediction node occupancy, and is further divided into an intra-frame context state set and an inter-frame context state set according to the value of isInter2 (0 or 1). That is to say, according to the value of isSparse and the value of isInter2, the context state is divided into 4 sets, including an intra-frame non-sparse context state (IntraNSparse state) set, an inter-frame non-sparse context state (InterNSparse state) set, an intra-frame sparse context state (IntraSparse state) set, and an inter-frame sparse context (InterSparse state) set. Then, according to the encoder group (IntraNSparse Coder, InterNSparse Coder, IntraSparse Coder, InterSparse Coder) corresponding to each set, the current context state is mapped to a binary encoder. Finally, the encoder coderi is obtained based on the mapping, the probability of the encoder coderi is used to entropy encode the encoding symbol b0, and the probability of the encoder coderi is updated according to the b0 symbol.
[0147] 3) Local motion estimation
[0148] For non-radar dense point clouds, G-PCC only performs local motion estimation on them. The localMotionEnabled local motion enable flag of the gbs layer determines whether local motion estimation is enabled for a certain layer. Local motion estimation is based on inter-frame prediction of blocks (prediction units). First, the size of the maximum prediction unit LPU (LPUsize) and the number of layers for block prediction are read from the configuration parameters, and the size of the minimum prediction unit minLPU (minLPUsize) is calculated. Figure 11 is a schematic diagram of the motion prediction process based on the prediction unit PU. The specific process is as follows:
[0149] a) When the current layer node size (currNode[depth].size)>LPUsize, there is no motion vector to perform motion compensation on the reference point cloud of the current layer node, so the occupancy information of the reference point cloud (i.e., the occupancy information of the reference point cloud without motion compensation) is directly used as the inter-frame prediction context.
[0150] b) When the current layer node size = LPUsize, it is determined that local motion is turned on, and then the recursive prediction unit structure (PU_tree) is written. Each node can continue to be divided downward and use the motion vector of the child node PU to perform motion compensation on the reference point cloud, or directly use the motion vector of the undivided current node to perform motion compensation on the reference point cloud. PU_tree records the flag bit (split_flag) of whether to divide downward, the flag of whether to compensate (isCompensated) in the current layer, and the motion vector set (MVs); if the node is divided to minLPUsize, further division is terminated (split_flag==0), and motion compensation is performed (isCompensated==1). Finally, based on the flag of whether to compensate, it is decided to use the occupancy information of the reference point cloud or the occupancy information of the compensated point cloud as the inter-frame context.
[0151] A prediction unit PU contains the following parameters:
[0152] a)popul_flags: PU occupancy
[0153] b)split_flags: split down flag
[0154] c)MVs: Motion Vector Set
[0155] d) isCompensated: If it is 1, it means the reference point cloud has been motion compensated; if it is 0, it means the reference point cloud has not been compensated;
[0156] e) hasMotion: This field indicates whether the node contains motion information. If so, it is 1; otherwise, it is 0.
[0157] In the above technology, the inter-frame sparse context and the inter-frame non-sparse context are entropy encoded using their respective corresponding encoder groups, ignoring the correlation between the inter-frame sparse context and the inter-frame non-sparse context, which will have a certain impact on the coding efficiency. When predicting the occupancy of the node, regardless of the size of the node, the threshold th used is a fixed value, which makes the prediction of nodes of different sizes unreasonable.
[0158] Based on this, an embodiment of the present application provides a coding and decoding method. When performing inter-frame prediction of point cloud, an appropriate point number threshold is determined according to the current node size, so as to reasonably distinguish the occupancy of the predicted sub-nodes, select the best entropy coding / decoding parameter set for the current sub-node, and further select the best entropy coding / decoding parameters for coding and decoding based on the context information, thereby reducing the bit rate and improving the coding and decoding efficiency.
[0159] To facilitate understanding of the technical solutions of the embodiments of the present application, the technical solutions of the present application are described in detail below through specific embodiments. The above related technologies can be combined arbitrarily with the technical solutions of the embodiments of the present application as optional solutions, and all of them fall within the scope of protection of the embodiments of the present application. The embodiments of the present application include at least part of the following contents.
[0160] In one embodiment of the present application, referring to FIG12 , a flowchart of a decoding method provided by an embodiment of the present application is shown. As shown in FIG12 , the method may include:
[0161] S101: When the inter-frame prediction mode is enabled for the current node, determine a point threshold according to a size parameter of the current node, where the point threshold includes one or more thresholds;
[0162] It should be noted that the decoding method of the embodiment of the present application is applied to a point cloud decoder. In other words, the decoding method can specifically refer to a point cloud decoding method, or a point cloud entropy decoding method. More specifically, the embodiment of the present application provides a point cloud inter-frame decoding method based on context mapping. When performing point cloud inter-frame prediction, the appropriate point count threshold is determined based on the current node size, thereby reasonably dividing the occupancy of the prediction node, selecting the best entropy decoding parameter set for the current child node, and further selecting the best entropy decoding parameter for decoding based on the context information, thereby reducing the bit rate and improving decoding efficiency.
[0163] In some embodiments, the method further includes: determining whether the current node allows the inter-frame prediction mode to be enabled based on the value of the first syntax element; if the current node allows the inter-frame prediction mode to be enabled, determining the occupancy information of the prediction node of the current node in the reference frame; and determining whether the current node enables the inter-frame prediction mode based on the occupancy information of the prediction node.
[0164] Whether the inter-frame prediction mode is enabled for the current node is related to the value of the first syntax element and the occupancy information of its prediction node. The first syntax element serves as an enable flag for inter-frame prediction, and is used to indicate whether the upper-layer inter-frame prediction is enabled. In some embodiments, the value of the first syntax element is a first numerical value, which determines that the current node allows the inter-frame prediction mode to be enabled; the value of the first syntax element is a second numerical value, which determines that the current node does not allow the inter-frame prediction mode to be enabled. Exemplarily, the first syntax element identifier includes at least a frame-level syntax element, and the value of the first syntax element is 1, which allows the inter-frame prediction to be enabled; the value of the first syntax element is 0, which does not allow the inter-frame prediction to be enabled.
[0165] The prediction node is the same-position node as the current node in the reference frame, and whether the current node starts the inter-frame prediction mode is determined based on the occupancy information of the prediction node of the current node. When the occupancy information of the prediction node indicates occupied, it is determined that the current node enables the inter-frame prediction mode; when the occupancy information of the prediction node indicates unoccupied, it is determined that the current node enables the intra-frame prediction mode. Exemplarily, the value of the occupancy information is 0 for unoccupied, and 1 for occupied. The occupancy status of the prediction node is related to the occupancy status of its child nodes. In some embodiments, the method further includes: determining the occupancy information of multiple prediction child nodes in the prediction node; when the occupancy information of at least one prediction child node in the prediction node indicates occupied, the occupancy information of the prediction node is determined to be occupied; otherwise, the occupancy information of the prediction node is determined to be unoccupied. That is, if at least one child node in the prediction node is occupied, the value of its occupancy information is set to 1; conversely, if no child node is occupied, the value of its occupancy information is set to 0.
[0166] In some embodiments, the prediction node includes a first prediction node and / or a second prediction node, wherein the first prediction node is a motion-compensated prediction node and the second prediction node is a non-motion-compensated prediction node.
[0167] As shown in Figure 11, the reference frame predicts the occupancy information of the current node after local motion estimation and motion compensation, and obtains the occupancy information of the first predicted node. The reference frame predicts the occupancy information of the current node without motion compensation (i.e., the original reference frame) and obtains the occupancy information of the second predicted node.
[0168] In some embodiments, when the occupancy information of the first prediction node indicates occupied or the occupancy information of the second prediction node indicates occupied, it is determined that the current node enables inter-frame prediction mode; when the occupancy information of the first prediction node indicates not occupied and the occupancy information of the second prediction node indicates not occupied, it is determined that the current node enables intra-frame prediction mode. The embodiments of the present application use the uncompensated second prediction node to perform inter-frame prediction mode judgment, making full use of the uncompensated inter-frame information, and can save bit rate and improve compression efficiency under the condition of the same encoding quality.
[0169] In some embodiments, when the occupancy information of the first prediction node is indicated as occupied and the occupancy information of the second prediction node is indicated as occupied, it is determined that the current node enables the inter-frame prediction mode; when the occupancy information of the first prediction node is indicated as not occupied or the occupancy information of the second prediction node is indicated as not occupied, it is determined that the current node enables the intra-frame prediction mode.
[0170] In some embodiments, when the occupancy information of the first prediction node indicates occupied, it is determined that the current node enables inter-frame prediction mode; when the occupancy information of the first prediction node indicates unoccupied, it is determined that the current node enables intra-frame prediction mode.
[0171] In some embodiments, when the occupancy information of the second prediction node indicates occupied, it is determined that the current node enables inter-frame prediction mode; when the occupancy information of the second prediction node indicates unoccupied, it is determined that the current node enables intra-frame prediction mode.
[0172] The size parameter of the current node is used to indicate the size of the current node. Exemplarily, the size parameter of the current node includes at least one of the following: the side length, length, width, height, volume, etc. of the current node.
[0173] The point threshold is used to divide the points of the predicted node into different point ranges, each corresponding to a different occupancy situation. Exemplarily, when the point threshold includes N thresholds, N+1 point ranges are obtained, corresponding to N+1 occupancy situations. Exemplarily, the point threshold includes 1, 2, 3, or 4 points.
[0174] In some embodiments, the point threshold corresponding to the current node is determined based on a size parameter of the current node indicating whether to adjust a preset point threshold. For example, if it is determined based on the size parameter that a preset first value is not to be adjusted, the first value is used as the first threshold in the point threshold; or, if it is determined based on the size parameter that the first value is to be adjusted, a second value obtained based on the size parameter is used as the first threshold in the point threshold.
[0175] In some embodiments, the method may further include: converting the size parameter according to a first conversion factor corresponding to the first value to obtain a second value; when the first value is greater than or equal to the second value, determining not to adjust the first value; when the first value is less than the second value, determining to adjust the first value.
[0176] It should be noted that the first value can be any one of one or more values pre-set for the point threshold. The first value corresponds to a first conversion factor, which is used to convert the size parameter into a second value, and then select the larger value from the first value and the second value as the first threshold. The first threshold can be any one of one or more thresholds in the point threshold.
[0177] In some embodiments, the first conversion factor is the number of right shifts of the size parameter, and different preset values correspond to different numbers of right shifts. Exemplarily, the point count threshold is determined as follows: th1 = max(0, Nodesize>>d1); th2 = max(2, Nodesize>>d2); th3 = max(8, Nodesize>>d3).
[0178] Wherein, th1 is the first threshold, d1 is the first right shift number, th2 is the second threshold, d2 is the second right shift number, th3 is the third threshold, d3 is the third right shift number, d1 is greater than d2, d2 is greater than d3, and Nodesize represents the current node size.
[0179] In some embodiments, a point threshold corresponding to the current node is determined based on a size parameter of the current node and a preset mapping relationship. For example, a first size parameter corresponds to a first point threshold, a second size parameter corresponds to a second point threshold, and a third size parameter corresponds to a third point threshold, wherein at least some of the different point thresholds are different.
[0180] S102: Determine occupancy information of the first predicted sub-node according to the number of points of the first predicted sub-node corresponding to the current sub-node to be decoded in the current node and the point threshold;
[0181] It should be noted that the current child node is any child node of the current node to be decoded. As shown in Figure 7, the current node includes 8 child nodes, and the scanning order of the child nodes is child node 0, child node 1, child node 2, child node 3, child node 4, child node 5, child node 6, and child node 7.
[0182] The first predicted subnode is the co-located subnode of the current subnode in the predicted node. Occupancy information of the first predicted subnode is determined based on the number of points of the first predicted subnode and a point threshold. The occupancy information of the first predicted subnode is used to indicate one or more occupancy states. For example, the occupancy information can indicate occupied or unoccupied, or unoccupied or multiple occupancy intensities. Exemplarily, the first predicted subnode is a motion-compensated predicted subnode.
[0183] In some embodiments, the occupancy information of the first predicted sub-node is determined based on the number of points and the point threshold of the first predicted sub-node corresponding to the current sub-node to be decoded in the current node, including: determining a first mapping relationship between multiple point ranges and occupancy information based on one or more thresholds in the point threshold; determining the occupancy information of the first predicted sub-node based on the first mapping relationship and the number of points of the first predicted sub-node, different point ranges corresponding to different occupancy information.
[0184] Exemplarily, the point threshold includes a threshold, and the first mapping relationship includes: if the number of points of the predicted sub-node is less than or equal to the first threshold, the occupancy information of the predicted sub-node is determined to be not occupied; if the number of points of the predicted sub-node is greater than the first threshold, the occupancy information of the predicted sub-node is determined to be occupied.
[0185] Exemplarily, the point threshold includes more than two thresholds, and the first mapping relationship includes: if the number of points of the predicted sub-node is less than or equal to the first threshold, the occupancy information of the predicted sub-node is determined to be unoccupied; if the number of points of the predicted sub-node is greater than the first threshold, multiple occupancy intensities are further determined based on the number of points of the predicted sub-node and other thresholds.
[0186] In some embodiments, the first mapping relationship includes: if the number of points of the predicted sub-node is less than or equal to the first threshold, the occupancy information of the predicted sub-node is determined to be not occupied; if the number of points of the predicted sub-node is greater than the first threshold and less than or equal to the second threshold, the occupancy information of the predicted sub-node is determined to be the first occupancy intensity; if the number of points of the predicted sub-node is greater than the second threshold and less than or equal to the third threshold, the occupancy information of the predicted sub-node is determined to be the second occupancy intensity; if the number of points of the predicted sub-node is greater than the third threshold, the occupancy information of the predicted sub-node is determined to be the third occupancy intensity.
[0187] It should be noted that the occupation strength increases with the number of points, that is, the first occupation strength is smaller than the second occupation strength, and the second occupation strength is smaller than the third occupation strength. In short, the first occupation strength can be understood as occupation (or weak occupation), the second occupation strength can be understood as strong occupation, and the third occupation strength can be understood as very strong occupation.
[0188] In some embodiments, if the number of points of the predicted child node is less than or equal to the first threshold, the first value of the occupancy information is determined to be 0; if the number of points of the predicted child node is greater than the first threshold, the first value of the occupancy information is determined to be 1; if the number of points of the predicted child node is less than or equal to the second threshold, the second value of the occupancy information is determined to be 0; if the number of points of the predicted child node is greater than the second threshold, the second value of the occupancy information is determined to be 1; if the number of points of the predicted child node is less than or equal to the third threshold, the third value of the occupancy information is determined to be 0; if the number of points of the predicted child node is greater than the third threshold, the third value of the occupancy information is determined to be 1; the sum of the first value, the second value, and the third value of the occupancy information is calculated to determine the final value of the occupancy information. The method for determining the occupancy information of the first predicted child node is as follows:
[0189] Among them, bPi is the occupancy information of the predicted child node i after compensation, NodePoints[i] represents the number of points in the predicted child node i after compensation, and th j is the jth threshold. The threshold is related to the size of the node. If Nodesize is used to represent the current node size, then th1 = max(0, Nodesize>>d1), th2 = max(2, Nodesize>>d2), and th3 = max(8, Nodesize>>d3).
[0190] S103: Determine a target entropy decoding parameter set for the current child node based on the occupancy information of the first predicted child node;
[0191] The target entropy decoding parameter set includes multiple entropy decoding parameters, and the entropy decoding parameters are any parameters used when entropy decoding the occupancy information of the child node. In some embodiments, the entropy decoding parameters can be arithmetic decoding parameters, and adaptive arithmetic decoding is performed on the occupancy information of the child node according to the arithmetic decoding parameters. For example, the arithmetic decoding parameters can be the probability of the current child node being occupied or not occupied under the current context information.
[0192] In some embodiments, a target entropy decoding parameter set for the current child node is determined based on a second mapping relationship between multiple types of occupancy information and inter-frame entropy decoding parameter sets, as well as the occupancy information of the first predicted child node. The multiple types of occupancy information specifically refer to two or more types of occupancy information. Different inter-frame entropy decoding parameter sets are pre-configured for different occupancy information. When the inter-frame prediction mode is enabled, a matching target entropy decoding parameter set is selected based on the actual inter-frame prediction information, thereby improving decoding efficiency.
[0193] In some embodiments, the occupancy information is used to indicate non-occupancy and one or more occupancy states, and the second mapping relationship includes: the occupancy information of the first prediction sub-node is the first inter-frame entropy decoding parameter set corresponding to non-occupancy, and the occupancy information of the first prediction sub-node is one or more inter-frame entropy decoding parameter sets corresponding to occupation.
[0194] In some embodiments, when the occupancy information is used to indicate non-occupancy, occupation, strong occupancy or very strong occupancy, the second mapping relationship includes: a first inter-frame entropy decoding parameter set corresponding to non-occupancy, a second inter-frame entropy decoding parameter set corresponding to occupation, a third inter-frame entropy decoding parameter set corresponding to strong occupancy, and a fourth inter-frame entropy decoding parameter set corresponding to very strong occupancy.
[0195] That is, an inter-frame entropy decoding parameter set is allocated to the current child node based on the predicted child node occupancy, the first inter-frame entropy decoding parameter set includes multiple entropy decoding parameters of the current child node when the predicted child node is not occupied, the second inter-frame entropy decoding parameter set includes multiple entropy decoding parameters of the current child node when the predicted child node is occupied, the third inter-frame entropy decoding parameter set includes multiple entropy decoding parameters of the current child node when the predicted child node is strongly occupied, and the fourth inter-frame entropy decoding parameter set includes multiple entropy decoding parameters of the current child node when the predicted child node is very strongly occupied. In an embodiment of the present application, for inter-frame prediction, an inter-frame entropy decoding parameter set is selected based on whether the current child node is predicted to be non-occupied, occupied, strongly occupied, and very strongly occupied, making full use of the correlation between the inter-frame sparse context state and the non-sparse context state, dividing the predicted child node occupancy into four categories, configuring a matching entropy decoding parameter set for each category, and improving the accuracy of inter-frame prediction.
[0196] When performing point cloud inter-frame prediction, the embodiment of the present application determines an appropriate point count threshold based on the current node size, thereby reasonably distinguishing the occupancy of the predicted sub-nodes, and then selecting the optimal entropy decoding parameter set for the current sub-node based on the occupancy of the predicted sub-nodes.
[0197] In some embodiments, when the current child node enables inter-frame prediction mode, a target entropy decoding parameter set is determined from candidate inter-frame entropy decoding parameter sets, wherein the candidate inter-frame entropy decoding parameter sets include one or more inter-frame entropy decoding parameter sets; when the current child node enables intra-frame prediction mode, a target entropy decoding parameter set is determined from candidate intra-frame entropy decoding parameter sets, wherein the candidate intra-frame entropy decoding parameter sets include one or more intra-frame entropy decoding parameter sets. In other words, one or more entropy decoding parameter sets can be pre-configured for different inter-frame prediction situations, and when the inter-frame prediction mode is enabled, a matching target entropy decoding parameter set is selected based on the actual inter-frame prediction situation to improve the accuracy of intra-frame prediction. One or more entropy decoding parameter sets can also be pre-configured for different inter-frame prediction situations, and when the intra-frame prediction mode is enabled, a matching target entropy decoding parameter set is selected based on the actual intra-frame prediction situation to improve the accuracy of intra-frame prediction.
[0198] In some embodiments, determining a target entropy decoding parameter set from candidate intra-frame entropy decoding parameter sets includes: determining the target entropy decoding parameter set from the candidate intra-frame entropy decoding parameter sets according to a local sparsity category.
[0199] Exemplarily, when the local sparse category is the first category, the target entropy decoding parameter set is determined to be the first intra-frame entropy decoding parameter set; when the local sparse category is the second category, the target entropy decoding parameter set is determined to be the second intra-frame entropy decoding parameter set. That is, when the current child node enables intra-frame prediction mode, an intra-frame entropy decoding parameter set is allocated based on the local sparse category of the current child node. The first intra-frame entropy decoding parameter set may include multiple entropy decoding parameters corresponding to the first category, and the second intra-frame entropy decoding parameter set may include multiple entropy decoding parameters corresponding to the second category.
[0200] S104: Determine a target entropy decoding parameter of the current child node from a target entropy decoding parameter set according to the context information of the current child node;
[0201] In some embodiments, the method further includes: determining the local sparse category of the current child node based on the occupancy information of the decoded neighboring nodes of the current child node; determining the target context state set of the current child node based on a third mapping relationship between multiple local sparse categories and context state sets, and the local sparse category of the current child node.
[0202] The local sparse category is used to indicate the local sparsity of the decoded neighbor nodes of the current child node. The local sparse category may include one or more sparse categories and one or more non-sparse categories. In some embodiments, the local sparse category of the current child node is determined based on the occupancy information of the decoded neighbor nodes of the current child node, including: determining the occupied number of neighbor nodes based on the occupancy information of the neighbor nodes; and determining the local sparse category of the current child node based on the occupied number of neighbor nodes. The occupancy information of the neighbor nodes is used to indicate whether the neighbor nodes are occupied. The occupancy information takes a value of 0 or 1, where 0 indicates not occupied and 1 indicates occupied. That is, based on the occupancy information of the neighbor nodes, the occupied number of neighbor nodes (i.e., the number of occupied neighbor nodes NN) can be determined, and different local sparse categories can be distinguished based on the occupied number.
[0203] For example, if the number of occupied neighbor nodes is greater than a preset threshold, the local sparse category of the current child node is determined to be the first category; if the number of occupied neighbor nodes is less than or equal to the preset threshold, the local sparse category of the current child node is determined to be the second category. For example, the first category can be a non-sparse category, and the second category can be a sparse category. In practical applications, more thresholds can be used to distinguish more local sparse categories.
[0204] In an embodiment of the present application, the local sparsity of the current child node is determined by considering the occupancy information of the decoded neighbor nodes and the position of the child node relative to the parent node. Exemplarily, the neighbor nodes include at least one of the following: a decoded brother node of the current child node; a decoded neighbor child node in the first preset direction adjacent to the current child node; a decoded neighbor child node in the second preset direction adjacent to the current child node; a decoded neighbor child node in the third preset direction adjacent to the current child node. Among them, the first preset direction may refer to the negative direction of the x-axis of the current child node (the left direction), the second preset direction may refer to the negative direction of the y-axis of the current child node (the front direction), and the third preset direction may refer to the negative direction of the z-axis of the current child node (the bottom direction). In other words, the local sparsity category can be established according to the occupancy number of decoded neighbor nodes in the xyz negative direction adjacent to the current child node. It should be noted that the decoded neighbor node of the current child node is the same as or not exactly the same as the context node of the current node.
[0205] Exemplarily, the local sparse category is represented by isSparse, and different isSparse values represent different local sparse categories. The value of isSparse of the child node to be decoded is determined according to the occupancy of the decoded neighboring nodes. Exemplarily, for the local sparse category of child node 0, it can be established according to the occupancy number (NN) of the 12 child nodes decoded in the negative xyz direction adjacent to the current child node in Figure 13. If the occupancy number NN>1 is non-sparse (isSparse is 0), and if the occupancy number NN≤1 is sparse (isSparse is 1). For the local sparse category of child node 1, it can be established according to the occupancy number (NN) of the 4 child nodes decoded in the negative y direction (Front) adjacent to the current child node in Figure 13. If the occupancy number NN>0, it is determined to be a non-sparse category. If the occupancy number NN=0, it is determined to be a sparse category. The local sparse category of child node 2 can be determined based on the occupancy number (NN) of the four decoded child nodes adjacent to the current child node in the negative z direction (Bottom) in Figure 13. If NN>0, it is determined to be a non-sparse category; if NN=0, it is determined to be a sparse category. The local sparse category of child node 3 can be determined based on the NN of the three nodes bit0+bit1+bit2 and the four decoded nodes adjacent to the current child node in the negative x direction (Left) in Figure 13. If NN>1, it is determined to be a non-sparse category; if NN≤1, it is determined to be a sparse category.
[0206] It should be noted that different local sparsity categories correspond to different context state sets. The corresponding context state sets can be pre-configured for different local sparsity categories to obtain a third mapping relationship, and then the target context state set of the current child node can be determined based on the local sparsity category of the current child node.
[0207] Exemplarily, when the local sparse category is the first category, the target context state set is determined to be the first context state set; when the local sparse category is the second category, the target context state set is determined to be the second context state set. In practical applications, more context state sets may also be included. The first context state set includes one or more context states of the first category, each context state corresponds to the corresponding context information of the first category, and the second context state set includes one or more context states of the second category, each context state corresponds to the corresponding context information of the second category.
[0208] The context state and the context information correspond one to one. The context state set may include the correspondence between the context information and the context state. The context state set may also include the correspondence between the identification information of the context information and the context state. Among them, the context information is used as the index information of the context state set to index the corresponding context state. The context information is used to characterize the occupancy of the context node of the sub-node to be decoded, and may also be called the context of the sub-node to be decoded. The context state is used to represent the first probability of the sub-node to be decoded being occupied or not occupied under a certain context information, and may also be called the probability model of the sub-node to be decoded. For example, when the number of bits of the context information is N, there are at most 2 N contextual state.
[0209] In some embodiments, when the inter-frame prediction mode is enabled for the current node, the target context state set of the current node is determined from the inter-frame context state set based on the local sparse category; when the intra-frame prediction mode is enabled for the current node, the target context state set of the current node is determined from the intra-frame context state set based on the local sparse category.
[0210] In the embodiment of the present application, the target context state set to be used is determined based on the local sparse category and prediction mode. When the category is non-sparse and inter-frame prediction is not used, the intra-frame non-sparse context state set (IntraNSparse state) is used; when the category is sparse and inter-frame prediction is not used, the intra-frame sparse context state set (IntraSparse state) is used; when the category is non-sparse and inter-frame prediction is used, the inter-frame non-sparse context state set (InterNSparse state) is used; when the category is sparse and inter-frame prediction is used, the inter-frame sparse context state set (InterSparse state) is used.
[0211] In some embodiments, the method further includes: constructing a plurality of context information in an intra-frame context state set according to the occupancy information of the context node and a first construction strategy, and initializing the context state of each context information; constructing a plurality of context information in an inter-frame context state set according to the occupancy information of the context node and a second construction strategy, and initializing the context state of each context information.
[0212] In an embodiment of the present application, a first construction strategy may include: constructing intra-frame context information based on a preset context node scanning order and occupancy information of the context nodes; or constructing first information and second information of the intra-frame context information based on a preset context information composition structure and occupancy information of the context nodes; the number of bits of the first information is fixed, and the number of bits of the second information is adjustable. A second construction strategy may include: constructing inter-frame context information based on a preset context node scanning order, occupancy information of the context nodes, and occupancy information of the predicted sub-nodes; or constructing first information and second information of the inter-frame context information based on a preset context information composition structure, occupancy information of the context nodes, and occupancy information of the predicted sub-nodes; the number of bits of the first information is fixed, and the number of bits of the second information is adjustable.
[0213] Accordingly, based on the context information of the current child node, the context state of the current child node is determined from the target context state set of the current child node; wherein, the target context state set includes a mapping relationship between multiple context information and context states; and based on the context state of the current child node, the target entropy decoding parameters of the current child node are determined from the target entropy decoding parameter set. wherein, one or more context information in the context state set corresponds to one context state, the context information of the current child node is used to characterize the occupancy of the context node of the current child node, and the context state is the probability of the current child node being occupied or not occupied under the current context information. the target context state set records the context states corresponding to one or more context information, and the context state of the current child node is determined by indexing the target context state set through the context information of the current child node.
[0214] The context information of the current child node is related to the occupancy information of the context node of the current child node. In some embodiments, the context information of the current child node is determined based on the occupancy information of the decoded context node of the current child node.
[0215] Exemplarily, the context node includes at least one of the following: decoded sibling nodes of the current child node; decoded neighbor child nodes with which the current child node is coplanar, co-edge, or co-pointed; decoded neighbor parent nodes with which the current child node is coplanar or co-edgeed; and other decoded neighbor nodes of the current child node. The context node scanning order can be: decoded sibling nodes of the current child node > decoded coplanar child node neighbors of the current child node > decoded co-edge child node neighbors of the current child node > decoded co-point child node neighbors of the current child node > decoded other child node neighbors of the current child node > decoded coplanar parent node neighbors of the current child node > decoded co-edge parent node neighbors of the current child node > other 20 decoded parent node neighbors. Context information is constructed for the child node to be decoded based on the scanning order and occupancy information.
[0216] In some embodiments, the method for constructing the inter-frame context information may be to add the inter-frame prediction information to the inter-frame context information.
[0217] Exemplarily, the context information of the current sub-node is determined based on the occupancy information of the decoded previous and next nodes of the current sub-node and the occupancy information of the first predicted sub-node. For example, the inter-frame context information can be expressed as Inter_ctx1=Intra_ctx1<<2|bPi.
[0218] Based on the occupancy information of the first predicted child node, a first flag is determined to indicate whether the first predicted child node has a target occupancy strength. Based on the occupancy information of the decoded previous and next nodes of the current child node and the first flag, context information of the current child node is determined. The target occupancy strength can be any of a plurality of occupancy strengths. For example, if the target occupancy strength is very strong occupancy, the inter-frame context information can be expressed as Inter_ctx1 = Intra_ctx1 << 1 | predLL.
[0219] Exemplarily, the first predicted subnode is a motion-compensated predicted subnode. As shown in FIG11 , the occupancy information of the current subnode is predicted after the reference frame undergoes local motion estimation and motion compensation to obtain the occupancy information of the first predicted subnode.
[0220] According to the number of points and the point threshold of the second predicted child node corresponding to the current child node in the current node, the occupancy information of the second predicted child node is determined; according to the occupancy information of the decoded previous and next nodes of the current child node and the occupancy information of the second predicted child node of the current child node, the context information of the current child node is determined. For example, the inter-frame context information can be expressed as Inter_ctx1=Intra_ctx1<<2|bPi UnComp In the embodiment of the present application, the uncompensated second prediction sub-node is used to construct the inter-frame context information, which makes full use of the uncompensated inter-frame information. Under the condition of the same encoding quality, the bit rate can be saved and the compression efficiency can be improved.
[0221] According to the occupancy information of the second predicted child node, a second identifier is determined to indicate whether the second predicted child node is the target occupancy strength; according to the occupancy information and the second identifier of the decoded upper and lower nodes of the current child node, the context information of the current child node is determined. The target occupancy strength can be any one of a plurality of occupancy strengths, for example, the target occupancy strength is very strong occupancy. For example, the inter-frame context information can be expressed as Inter_ctx1=Intra_ctx1<<1|predLL UnComp .
[0222] Exemplarily, the second predicted subnode is a non-motion-compensated predicted subnode. The occupancy information of the current subnode is predicted using a non-motion-compensated reference frame (ie, the original reference frame) to obtain the occupancy information of the second predicted subnode.
[0223] Exemplarily, based on one or more thresholds in the point thresholds, a first mapping relationship between multiple point ranges and occupancy information is determined; based on the first mapping relationship and the points of the second predicted subnode, the occupancy information of the second predicted subnode is determined. The method for determining the occupancy information of the second predicted subnode is specifically as follows:
[0224] Among them, bP i UnComp is the occupancy information of the uncompensated predicted child node i, NodePointsUnComp[i] represents the number of points in the uncompensated predicted child node i, th j is the threshold value, which is related to the size of the node. If Nodesize is used to represent the current node size, then th1 = max(0, Nodesize>>8), th2 = max(2, Nodesize>>4), and th3 = max(8, Nodesize>>2).
[0225] According to the number of points in the uncompensated prediction node, the uncompensated inter-frame information determined to be inter-frame prediction (isInter2=1) is divided into the following four categories:
[0226] a) Pred0 UnComp : Uncompensated child node i is predicted to not occupy bP iUnComp =0;
[0227] b) Pred1 UnComp : Uncompensated child node i is predicted to occupy bP i UnComp =1;
[0228] c) PredL UnComp :Uncompensated child node i is predicted to be strongly occupied bPi UnComp =2;
[0229] d) PredLL UnComp :Uncompensated child node i is predicted to be very strongly occupied bPi UnComp =3.
[0230] In some embodiments, the method for constructing inter-frame context information can be the same as the method for constructing intra-frame context information. Specifically, the context information is constructed based on a preset context node scanning order and context node occupancy information; alternatively, the first and second context information are constructed based on a preset context information composition structure and context node occupancy information; the number of bits of the first information is fixed, and the number of bits of the second information is adjustable. The first information can be primary information, the second information can be secondary information, and whether some of the secondary information serves as context information is dynamically adjusted.
[0231] In some embodiments, determining a target entropy decoding parameter of the current child node from a target entropy decoding parameter set based on a context state of the current child node includes: determining an index value of the target entropy decoding parameter based on the context state; and determining the target entropy decoding parameter of the current child node from the target entropy decoding parameter set based on the index value of the target entropy decoding parameter. That is, in the target entropy decoding parameter set, the context state is mapped to an index value of a certain entropy decoding parameter according to a certain mapping rule, and is used to index the target entropy decoding parameter.
[0232] In the embodiment of the present application, the context state is the first probability of the current child node being occupied or not occupied under the current context information, which can also be referred to as the first probability model of the child node. The target entropy decoding parameter is the second probability of the current child node being occupied or not occupied under the current context information, which can also be referred to as the second probability model of the child node. Therefore, the entropy decoding parameter can also be understood as a context state, and the entropy decoding parameter set can also be understood as a simplified context state set.
[0233] When the number of bits of context information is 19, a maximum of 2 19 context states, the bits of context information are 20 bits, and the maximum number of bits is 2 20 context states, the bits of context information are 21 bits, up to 2 21 context states, and the number of parameters in the target entropy decoding parameter set is much smaller than the number of context states. In an embodiment of the present application, the target context state set contains a large number of context states. If these context states are directly used for entropy decoding, the decoding efficiency is low. The target entropy decoding parameter set contains a small number of entropy decoding parameters. The large number of context states in the target context state set is mapped to the small number of entropy decoding parameters in the target entropy decoding parameter set, thereby streamlining the entropy decoding parameters and improving decoding efficiency.
[0234] In some embodiments, the context state can be the initial probability of the current child node being occupied (or not occupied) under the current context situation. A large number of context states are mapped to a fixed number of probability models / context models, and the occupancy information of the current child node is arithmetically decoded using the indexed probability model to improve decoding efficiency.
[0235] In some embodiments, determining an index value of a target entropy decoding parameter based on a context state includes determining an index value of the target entropy decoding parameter based on the upper M bits of the context state, wherein M is related to the number of parameters in the target entropy decoding parameter set. Exemplarily, when the number of parameters N in the target entropy decoding parameter set is 32, the upper 5 bits of the context state are used, and the value of the upper 5 bits is the index value of the target entropy decoding parameter.
[0236] In the embodiment of the present application, the scheme for constructing the intra-frame context may be:
[0237] (1) For child node 0, there are child node neighbors with the same plane, the same edge, and the same point, no decoded sibling nodes, and there are parent node neighbors with the same plane and other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 16 bits, with a maximum of 2 16 The upper 4 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.
[0238] Among them, the local sparsity of child node 0 can be determined according to the occupancy number (NN) of the 12 decoded child nodes in the negative x, y, and z directions adjacent to the current child node in Figure 13. If the occupancy number NN>1, it is determined to be a non-sparse category, and if the occupancy number NN≤1, it is determined to be a sparse category. For example, Figure 13 shows a distribution diagram of the child neighbor nodes and coplanar parent neighbor nodes of child node 0, and Figure 14 shows a distribution sequence diagram of the 20 parent neighbor nodes of child node 0. Among them, the numbers 1, 2, 4, 8, 16, 32, etc. represent the numbers of the neighbor nodes.
[0239] Table 1 Context information of child node 0
[0240] Table 1 shows the interpretation of each bit of context information corresponding to child node 0. The order from most significant to least significant bit reflects the importance of the information. The black-filled 1s or 0s represent the flag bit of the current classification. For example, 3 directions indicates that context nodes are occupied in the Left, Front, and Bottom directions simultaneously; 2 directions indicate that context nodes are occupied in the Left and Bottom directions, the Front and Bottom directions, or the Left and Front directions; and 1 direction indicates that context nodes are occupied in the Left, Front, and Bottom directions. The negation operation "!" indicates that the bit symbol is the inverted version of its actual symbol. In addition, this also covers coplanar child nodes, co-edge child nodes, co-point child nodes, edge-interposed child nodes, and co-position child nodes. In Table 1, the meanings of the symbols are explained as follows: B (Bottom), F (Front), and L (Left) are the parent neighbors of the six neighbors numbered 16, 4, and 2 that are coplanar with the current node in Figure 13. Since these three decoded nodes are located in the negative direction of the current node's coordinate axis, their child node occupancy information can be obtained. Therefore, Table 1 lists the child nodes that are coplanar, co-edge, and co-point with the current child node in these three directions one by one; it should be noted that the English abbreviations B, F, and L represent the child nodes that are coplanar, co-edge, and co-point with the current child node, such as the English full name Botto m, Front, and Left represent the parent neighbors of the current child node that are coplanar, co-edge, and co-point. Top, Back, and Right are the parent neighbors of the six coplanar neighbors of the current node in Figure 13, numbered 32, 8, and 1, respectively. Since these three decoded nodes are located in the positive direction of the current node's coordinate axis, their child node occupancy information cannot be obtained, and their relevance is weaker than the above-mentioned 12 child neighbor nodes. Other numbers such as 9, 4, 1, and 2 in Table 1 are the serial numbers of the 20 co-edge / co-point neighbors of the current node except the six coplanar parent neighbors shown in Figure 14. For the co-located child nodes in Table 1, bit0 B. bit0 F. bit0 L can be understood in this way: there is also a child node numbered 0 in the decoded Bottom, Front, and Left nodes, and this node is called the co-node; the two letters represented in the table, such as LF, LB, and FB, respectively represent the occupancy information of the two child nodes sandwiched between the Left and Front directions that share the same edge with the current child node (obtained by the No. 1 placeholder code among the 20 neighbors), the occupancy information of the two child nodes sandwiched between the Left and Bottom directions that share the same edge with the current child node (obtained by the No. 8 placeholder code among the 20 neighbors), and the occupancy information of the two child nodes sandwiched between the Front and Bottom directions that share the same edge with the current child node (obtained by the No. 3 placeholder code among the 20 neighbors).
[0241] (2) For child node 1, there are child node neighbors that share the same plane, edge, and point with it, there is a decoded sibling node bit0, there are parent node neighbors that share the same plane with it, and there are other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 19 bits, with a maximum of 2 19 The upper 7 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.
[0242] The local sparsity of child node 1 can be determined based on the occupancy count (NN) of the four decoded child nodes adjacent to the current child node in the negative y direction (Front) in Figure 13. If NN > 0, the node is classified as non-sparse; if NN = 0, the node is classified as sparse. Table 2 explains the context information for each bit in the bins. It can be seen that the occupancy information of decoded sibling node 0 is the most important, being located in the highest bit of the bin.
[0243] Table 2. Context information of child node 1
[0244] (3) For child node 2, there are child node neighbors that share the same plane, edge, and point with it, there are two decoded sibling nodes bit0 and bit1, there are parent node neighbors that share the same plane with it, and there are other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 19 bits, with a maximum of 2 19 The top 7 bits are used as primary information, and the bottom 12 bits are used as unreduced secondary information. The local sparsity of child node 2 can be determined based on the occupancy count (NN) of the four decoded child nodes adjacent to the current child node in the negative z direction (bottom) in Figure 13. If NN > 0, the node is classified as non-sparse; if NN = 0, the node is classified as sparse. Table 3 explains the contextual information for each bin. It can be seen that the decoded sibling node 0 has the most important occupancy information, located in the highest bit of the bin.
[0245] Table 3. Context information of child node 2
[0246] (4) For child node 3, there are child node neighbors that share the same plane, edge, and point with it, there are 3 decoded sibling nodes bit0, bit1, and bit2, there are parent node neighbors that share the same plane with it, and there are other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 17 bits, with a maximum of 2 17 states, with the upper 6 bits as the main information and the lower 11 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 18 bits, with a maximum of 2 18 The upper 6 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.
[0247] Among them, for the local sparsity of child node 3, the three nodes bit0+bit1+bit2 and the seven nodes decoded in the negative x direction (Left) adjacent to the current child node in Figure 13 can be established as NN. If the occupancy number NN>1, it is judged as a non-sparse category. If the occupancy number NN≤1, it is judged as a sparse category.
[0248] Table 4. Context information of child node 3
[0249] (5) For child node 4, there are child node neighbors with the same plane, edge, and point. There are 4 decoded sibling nodes bit0, bit1, bit2, and bit3. There are parent node neighbors with the same plane and other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 16 bits, with a maximum of 2 16 The upper 4 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.
[0250] Among them, for the local sparsity of child node 4, the 12 nodes can be established together as NN: the 4 nodes bit0+bit1+bit2+bit3 (denoted as "new Left"), the 4 decoded nodes in the negative y direction (Front) adjacent to the current child node in Figure 13, and the 4 decoded nodes in the negative z direction (Bottom). If the occupancy number NN>1, it is judged as a non-sparse category. If the occupancy number NN≤1, it is judged as a sparse category.
[0251] Table 5. Context information of child node 4
[0252] (5) For child node 5, there are child node neighbors with the same plane, edge, and point. There are 5 decoded sibling nodes bit0, bit1, bit2, bit3, and bit4. There are parent node neighbors with the same plane and other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 19 bits, with a maximum of 2 19 The upper 7 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.
[0253] Among them, for the local sparsity of child node 5, the negative y direction (Front) adjacent to the current child node in Figure 13 can be established as NN. If the occupancy number NN>0, it is judged as a non-sparse category. If the occupancy number NN=0, it is judged as a sparse category.
[0254] Table 6. Context information of child node 5
[0255] (7) For child node 6, there are child node neighbors with the same plane, edge, and point. There are 6 decoded sibling nodes bit0, bit1, bit2, bit3, bit4, and bit5. There are parent node neighbors with the same plane and other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 19 bits, with a maximum of 2 19 states, with the upper 6 bits as the main information and the lower 13 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 19 bits, with a maximum of 2 19 The upper 7 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.
[0256] Among them, for the local sparsity of child node 6, the negative z direction (Bottom) adjacent to the current child node in Figure 13 can be established as NN. If the occupancy number NN>0, it is judged as a non-sparse category. If the occupancy number NN=0, it is judged as a sparse category.
[0257] Table 7. Context information of child node 6
[0258] (8) For child node 7, there is no child node neighbor with the same plane, edge, or point. There are 7 decoded sibling nodes bit0, bit1, bit2, bit3, bit4, bit5, and bit6. There is a parent node neighbor with the same plane and 20 other decoded neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins are 17 bits, with a maximum of 2 17states, with the upper 6 bits as the main information and the lower 11 bits as the unreduced secondary information; when it is determined to be a sparse category, the context bins is 18 bits, with a maximum of 2 18 The upper 6 bits are used as the main information and the lower 12 bits are used as the unreduced secondary information.
[0259] Among them, for the local sparsity of child node 7, the seven nodes bit0+bit1+bit2+bit3+bit4+bit5+bit6 can be established as NN. If the occupancy number NN>1, it is judged as a non-sparse category. If the occupancy number NN≤1, it is judged as a sparse category.
[0260] Table 8. Context information of child node 7
[0261] S105: Perform entropy decoding on the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.
[0262] In some embodiments, the method further includes: updating a target entropy decoding parameter according to occupancy information of the current child node.
[0263] In some embodiments, the method further includes: updating the context state according to the occupancy information of the current child node.
[0264] Based on the above embodiment, the decoding method provided in the embodiment of the present application is further illustrated. As shown in FIG15 , the decoding method is specifically a method for decoding point cloud geometric information. The method may include:
[0265] S201: Local sparsity determination
[0266] The local sparsity (isSparse) of the symbol to be decoded bn is determined based on the occupancy information of the decoded neighboring nodes. For example, for child node 0, the local sparsity is determined by the occupancy number (NN) of the 12 decoded child nodes adjacent to the current child node in the negative xyz direction. If the occupancy number NN>1, the symbol is non-sparse (isSparse is 0), and if the occupancy number NN≤1, the symbol is sparse (isSparse is 1).
[0267] According to the value of isSparse (0 or 1), the context state can be divided into a sparse context state set and a non-sparse context state set.
[0268] S202: Inter-frame prediction determination
[0269] In some possible embodiments, whether to enable inter-frame prediction is determined based on the occupancy information (predOcc) of the first prediction node after motion compensation of the reference frame for the current node and the enable flag (isInter) of inter-frame prediction, that is, the value of isInter2 is determined.
[0270] isInter2=isInter&&predOcc, that is, the value of isInter2 is determined by isInter and predOcc, and predOcc is an identifier used to indicate whether the prediction node is occupied. Specifically, if at least one child node bPi is occupied in the prediction node, then predOcc is set to 1; conversely, if no child node is occupied, then predOcc is 0. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper-layer inter-frame prediction is enabled. If inter-frame prediction is enabled, it is called a P frame, and isInter is 1; conversely, if it is not enabled, it is called an I frame, and isInter is 0.
[0271] In other possible embodiments, whether to enable inter-frame prediction is determined, that is, the value of isInter2 is determined, based on the occupancy information (predOcc) of the first prediction node after motion compensation of the reference frame for the current node, the occupancy information (predOccUnComp) of the uncompensated second prediction node, and the enable flag (isInter) of inter-frame prediction.
[0272] isInter2=isInter&&(predOcc||predOccUnComp), that is, the value of isInter2 is determined by isInter, predOcc and predOccUnComp, and predOcc is an identifier used to indicate whether the prediction node is occupied. Specifically, if at least one child node bPi is occupied in the prediction node, then predOcc is set to 1; otherwise, if no child node is occupied, then predOcc is 0. predOccUnComp is an identifier used to indicate whether the uncompensated prediction node is occupied. Specifically, if at least one child node bPiUnComp is occupied in the uncompensated prediction node, then predOccUnComp is set to 1; otherwise, if no child node is occupied, then predOccUnComp is 0. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper-layer inter-frame prediction is enabled. If inter-frame prediction is enabled, it is called a P frame, and isInter is 1; otherwise, if it is not enabled, it is called an I frame, and isInter is 0.
[0273] S203: Context state selection
[0274] First, the context state set to be used is determined based on whether it is sparse (isSparse) and whether it is inter-frame prediction (isInter2). When the non-sparse category is used and inter-frame prediction is not used, the intra-frame non-sparse context state set (IntraNSparse state) is used; when the sparse category is used and inter-frame prediction is not used, the intra-frame sparse context state set (IntraSparse state) is used; when the non-sparse category is used and inter-frame prediction is used, the inter-frame non-sparse context state set (InterNSparse state) is used; when the sparse category is used and inter-frame prediction is used, the inter-frame sparse context state set (InterSparse state) is used. Among them, the intra-frame non-sparse context state set (IntraNSparse state), the intra-frame sparse context state set (IntraSparse state), and the construction method of the context information can be the construction method in OBUF or the construction method of dynamic OBUF. The construction method of the context on the decoding end is consistent with that on the encoding end.
[0275] In some possible implementations, the context information construction method of the inter-frame non-sparse context state set (InterNSparse state) and the inter-frame sparse context state set (InterSparse state) can adopt the same construction method as the intra-frame context, without the need to use inter-frame prediction information to participate in the construction, thereby reducing the number of inter-frame context states, saving storage space, and improving decoding efficiency.
[0276] In some possible implementations, the inter-frame context information construction method, compared to the intra-frame method, can take into account whether the prediction is very strong, that is, whether bPi is 3. In this case, the inter-frame context Inter_ctx1 = Intra_ctx1 << 1 | predLL. In this case, the number of inter-frame context states is half the number of inter-frame context states obtained by the traditional inter-frame context information construction method, saving storage space, reducing computational complexity, and improving decoding efficiency. For example, when the intra-frame context information has a maximum of 19 bits, the inter-frame context information has a maximum of 20 bits. While achieving the same encoding quality, this can save bit rate and improve decoding efficiency.
[0277] In some possible implementations, the occupancy information of the uncompensated prediction nodes can also be considered when constructing the inter-frame context, that is, the original Inter_ctx1=Intra_ctx1<<2|predL<<1|pred is changed to Inter_ctx1=Intra_ctx1<<2|bPiUnComp For example, when the maximum number of bits of intra-frame context information is 19, the maximum number of bits of inter-frame context information is 21. Using uncompensated inter-frame information can save bit rate and improve decoding efficiency while achieving the same encoding quality.
[0278] Secondly, in the selected context state set, the context state of the sub-node to be decoded is obtained according to the context information of the sub-node to be decoded, that is, the probability P of the sub-node to be decoded occupying (or not occupying) in this context situation is obtained. S .
[0279] The method for constructing the context information of the sub-node to be decoded corresponding to the selected inter-frame context state set includes: constructing according to the occupancy information of the context node, constructing according to the occupancy information of the context node and the occupancy information of the first predicted sub-node, or constructing according to the occupancy information of the context node and the occupancy information of the second predicted sub-node.
[0280] The method for determining the occupancy information of the first predicted sub-node is specifically as follows:
[0281] Among them, bP i To predict the occupancy information of the child node i after compensation, NodePoints[i] represents the number of points in the predicted child node i after compensation, j is the jth threshold. The threshold is related to the size of the node. If Nodesize is used to represent the current node size, then th1 = max(0, Nodesize>>8), th2 = max(2, Nodesize>>4), and th3 = max(8, Nodesize>>2).
[0282] Specifically, based on the occupancy information of the predicted child nodes, the information determined to be inter-frame prediction (isInter2=1) is divided into the following four categories:
[0283] a) Pred0: When the child node i is predicted to be empty, the current child node i is predicted to not occupy bPi=0.
[0284] b) Pred1: When the predicted child node i is not empty and the number of points (Npred) exceeds the first threshold th1 but does not exceed the second threshold th2, the current child node i is predicted to occupy bPi = 1;
[0285] c) predL: When the predicted child node i is not empty and the number of points (Npred) exceeds the second threshold th2 but does not exceed the third threshold th3, the current child node i is predicted to be strongly occupied bPi = 2;
[0286] d) predLL: When the predicted child node i is not empty and the number of points (Npred) exceeds the third threshold th3, the current child node i is predicted to be very strongly occupied bPi=3.
[0287] The method for determining the occupancy information of the second prediction sub-node is specifically as follows:
[0288] Among them, bP i UnComp is the occupancy information of the uncompensated predicted child node i, NodePointsUnComp[i] represents the number of points in the uncompensated predicted child node i, th j is the threshold value, which is related to the size of the node. If Nodesize is used to represent the current node size, then th1 = max(0, Nodesize>>8), th2 = max(2, Nodesize>>4), and th3 = max(8, Nodesize>>2).
[0289] According to the number of points in the uncompensated prediction node, the uncompensated inter-frame information determined to be inter-frame prediction (isInter2=1) is divided into the following four categories:
[0290] a) Pred0 UnComp : Uncompensated child node i is predicted to not occupy bP iUnComp =0;
[0291] b) Pred1 UnComp : Uncompensated child node i is predicted to occupy bP i UnComp =1;
[0292] c) PredL UnComp :Uncompensated child node i is predicted to be strongly occupied bPi UnComp =2;
[0293] d) PredLL UnComp :Uncompensated child node i is predicted to be very strongly occupied bPi UnComp =3.
[0294] S204: Entropy decoding parameter selection
[0295] First, for intra-frame prediction mode, the entropy decoding parameter set to be used is determined based on the context state set selected by the child node to be decoded. This can also be called a decoder group, where each decoder contains one entropy decoding parameter. For inter-frame prediction mode, the entropy decoding parameter set to be used is determined based on the occupancy information of the predicted child node.
[0296] It is determined that intra prediction is used. If the intra non-sparse context state set (IntraNSparse state) is used, it is determined that the intra non-sparse entropy decoding parameter set (IntraNSparse Decoder) is used; if the intra sparse context state set (IntraSparse state) is used, it is determined that the intra sparse entropy decoding parameter set (IntraSparse Decoder) is used.
[0297] When it is determined to be inter-frame prediction and bPi=0 is not occupied, the inter-frame entropy decoding parameter set InterPred0Decoder is determined to be used; when it is determined to be inter-frame prediction and bPi=1 is occupied, the inter-frame entropy decoding parameter set InterPred1 Decoder is determined to be used; when it is determined to be inter-frame prediction and bPi=2 is strongly occupied, the inter-frame entropy decoding parameter set InterPredL Decoder is determined to be used; when it is determined to be inter-frame prediction and bPi=3 is very strongly occupied, the inter-frame entropy decoding parameter set InterPredLL Decoder is determined to be used. That is to say, for inter-frame prediction, taking into account the correlation between the inter-frame sparse context state and the inter-frame non-sparse context state, the sparse context state and the non-sparse context state share the entropy decoding parameter set, and the entropy decoding parameter set is selected only according to the prediction of non-occupancy, occupation, strong occupation and very strong occupation, thereby improving decoding efficiency.
[0298] Secondly, in the determined decoder group, according to certain mapping rules, the context state P of bn is converted to S Mapped to decoder Ci. The mapping rule can be to take the high 5 bits of the context state, and the size of its value is the index value of the mapped decoder. The probability of the mapped decoder Ci is P C .
[0299] S205: Adaptive arithmetic decoding
[0300] The probability P of using the determined decoder Ci C , perform adaptive arithmetic decoding on the occupancy information bn of the child node to be decoded.
[0301] The decoding method provided in the embodiment of the present application determines an appropriate point count threshold based on the current node size when performing inter-frame prediction of a point cloud, thereby rationally dividing the occupancy of the predicted node and selecting the optimal entropy decoding parameter set for the current child node. Furthermore, for inter-frame prediction, the correlation between the inter-frame sparse context state and the inter-frame non-sparse context state is taken into account, so that the sparse context state and the non-sparse context state share the entropy decoding parameter set, and the entropy decoding parameter set is selected only based on the prediction of non-occupancy, occupation, strong occupation, and very strong occupation, thereby improving decoding efficiency.
[0302] In another embodiment of the present application, referring to FIG16 , a schematic flow chart of an encoding method provided by an embodiment of the present application is shown. As shown in FIG16 , the method may include:
[0303] S301: When the inter-frame prediction mode is enabled for the current child node, determine a target entropy coding parameter set for the current child node according to the occupancy information of the predicted child node of the current child node in the reference frame;
[0304] It should be noted that the encoding method of the embodiment of the present application is applied to a point cloud encoder. In other words, the encoding method can specifically refer to a point cloud encoding method, or a point cloud entropy encoding method. More specifically, the embodiment of the present application provides a point cloud inter-frame encoding method based on context mapping. When performing point cloud inter-frame prediction, an appropriate point number threshold is determined based on the current node size, thereby reasonably distinguishing the occupancy of the predicted sub-nodes, selecting the best entropy encoding parameter set for the current sub-node, and further selecting the best entropy encoding parameter for encoding based on context information, thereby reducing the bit rate and improving the encoding efficiency.
[0305] In some embodiments, the method further includes: determining whether the current node allows the inter-frame prediction mode to be enabled based on the value of the first syntax element; if the current node allows the inter-frame prediction mode to be enabled, determining the occupancy information of the prediction node of the current node in the reference frame; and determining whether the current node enables the inter-frame prediction mode based on the occupancy information of the prediction node.
[0306] Whether the inter-frame prediction mode is enabled for the current node is related to the value of the first syntax element and the occupancy information of its prediction node. The first syntax element serves as an enable flag for inter-frame prediction, and is used to indicate whether the upper-layer inter-frame prediction is enabled. In some embodiments, the value of the first syntax element is a first numerical value, which determines that the current node allows the inter-frame prediction mode to be enabled; the value of the first syntax element is a second numerical value, which determines that the current node does not allow the inter-frame prediction mode to be enabled. Exemplarily, the first syntax element identifier includes at least a frame-level syntax element, and the value of the first syntax element is 1, which allows the inter-frame prediction to be enabled; the value of the first syntax element is 0, which does not allow the inter-frame prediction to be enabled.
[0307] The prediction node is the same-position node as the current node in the reference frame, and whether the current node starts the inter-frame prediction mode is determined based on the occupancy information of the prediction node of the current node. When the occupancy information of the prediction node indicates occupied, it is determined that the current node enables the inter-frame prediction mode; when the occupancy information of the prediction node indicates unoccupied, it is determined that the current node enables the intra-frame prediction mode. Exemplarily, the value of the occupancy information is 0 for unoccupied, and 1 for occupied. The occupancy status of the prediction node is related to the occupancy status of its child nodes. In some embodiments, the method further includes: determining the occupancy information of multiple prediction child nodes in the prediction node; when the occupancy information of at least one prediction child node in the prediction node indicates occupied, the occupancy information of the prediction node is determined to be occupied; otherwise, the occupancy information of the prediction node is determined to be unoccupied. That is, if at least one child node in the prediction node is occupied, the value of its occupancy information is set to 1; conversely, if no child node is occupied, the value of its occupancy information is set to 0.
[0308] In some embodiments, the prediction node includes a first prediction node and / or a second prediction node, wherein the first prediction node is a motion-compensated prediction node and the second prediction node is a non-motion-compensated prediction node.
[0309] As shown in Figure 11, the reference frame predicts the occupancy information of the current node after local motion estimation and motion compensation, and obtains the occupancy information of the first predicted node. The reference frame predicts the occupancy information of the current node without motion compensation (i.e., the original reference frame) and obtains the occupancy information of the second predicted node.
[0310] In some embodiments, when the occupancy information of the first prediction node indicates occupied or the occupancy information of the second prediction node indicates occupied, it is determined that the current node enables inter-frame prediction mode; when the occupancy information of the first prediction node indicates not occupied and the occupancy information of the second prediction node indicates not occupied, it is determined that the current node enables intra-frame prediction mode. The embodiments of the present application use the uncompensated second prediction node to perform inter-frame prediction mode judgment, making full use of the uncompensated inter-frame information, and can save bit rate and improve compression efficiency under the condition of the same encoding quality.
[0311] In some embodiments, when the occupancy information of the first prediction node is indicated as occupied and the occupancy information of the second prediction node is indicated as occupied, it is determined that the current node enables the inter-frame prediction mode; when the occupancy information of the first prediction node is indicated as not occupied or the occupancy information of the second prediction node is indicated as not occupied, it is determined that the current node enables the intra-frame prediction mode.
[0312] In some embodiments, when the occupancy information of the first prediction node indicates occupied, it is determined that the current node enables inter-frame prediction mode; when the occupancy information of the first prediction node indicates unoccupied, it is determined that the current node enables intra-frame prediction mode.
[0313] In some embodiments, when the occupancy information of the second prediction node indicates occupied, it is determined that the current node enables inter-frame prediction mode; when the occupancy information of the second prediction node indicates unoccupied, it is determined that the current node enables intra-frame prediction mode.
[0314] The size parameter of the current node is used to indicate the size of the current node. Exemplarily, the size parameter of the current node includes at least one of the following: the side length, length, width, height, volume, etc. of the current node.
[0315] The point threshold is used to divide the points of the predicted node into different point ranges, each corresponding to a different occupancy situation. Exemplarily, when the point threshold includes N thresholds, N+1 point ranges are obtained, corresponding to N+1 occupancy situations. Exemplarily, the point threshold includes 1, 2, 3, or 4 points.
[0316] In some embodiments, the point threshold corresponding to the current node is determined based on a size parameter of the current node indicating whether to adjust a preset point threshold. For example, if it is determined based on the size parameter that a preset first value is not to be adjusted, the first value is used as the first threshold in the point threshold; or, if it is determined based on the size parameter that the first value is to be adjusted, a second value obtained based on the size parameter is used as the first threshold in the point threshold.
[0317] In some embodiments, the method may further include: converting the size parameter according to a first conversion factor corresponding to the first value to obtain a second value; when the first value is greater than or equal to the second value, determining not to adjust the first value; when the first value is less than the second value, determining to adjust the first value.
[0318] It should be noted that the first value can be any one of one or more values pre-set for the point threshold. The first value corresponds to a first conversion factor, which is used to convert the size parameter into a second value, and then select the larger value from the first value and the second value as the first threshold. The first threshold can be any one of one or more thresholds in the point threshold.
[0319] In some embodiments, the first conversion factor is the number of right shifts of the size parameter, and different preset values correspond to different numbers of right shifts. Exemplarily, the point count threshold is determined as follows: th1 = max(0, Nodesize>>d1); th2 = max(2, Nodesize>>d2); th3 = max(8, Nodesize>>d3).
[0320] Wherein, th1 is the first threshold, d1 is the first right shift number, th2 is the second threshold, d2 is the second right shift number, th3 is the third threshold, d3 is the third right shift number, d1 is greater than d2, d2 is greater than d3, and Nodesize represents the current node size.
[0321] In some embodiments, a point threshold corresponding to the current node is determined based on a size parameter of the current node and a preset mapping relationship. For example, a first size parameter corresponds to a first point threshold, a second size parameter corresponds to a second point threshold, and a third size parameter corresponds to a third point threshold, wherein at least some of the different point thresholds are different.
[0322] S302: Determine occupancy information of the first predicted sub-node according to the number of points of the first predicted sub-node corresponding to the current sub-node to be encoded in the current node and the point threshold;
[0323] It should be noted that the current child node is any child node of the current node to be encoded. As shown in Figure 7, the current node includes 8 child nodes, and the scanning order of the child nodes is child node 0, child node 1, child node 2, child node 3, child node 4, child node 5, child node 6, and child node 7.
[0324] The first predicted subnode is the co-located subnode of the current subnode in the predicted node. Occupancy information of the first predicted subnode is determined based on the number of points of the first predicted subnode and a point threshold. The occupancy information of the first predicted subnode is used to indicate one or more occupancy states. For example, the occupancy information can indicate occupied or unoccupied, or unoccupied or multiple occupancy intensities. Exemplarily, the first predicted subnode is a motion-compensated predicted subnode.
[0325] In some embodiments, the occupancy information of the first predicted sub-node is determined based on the number of points and the point threshold of the first predicted sub-node corresponding to the current sub-node to be encoded in the current node, including: determining a first mapping relationship between multiple point ranges and occupancy information based on one or more thresholds in the point threshold; and determining the occupancy information of the first predicted sub-node based on the first mapping relationship and the number of points of the first predicted sub-node.
[0326] Exemplarily, the point threshold includes a threshold, and the first mapping relationship includes: if the number of points of the predicted sub-node is less than or equal to the first threshold, the occupancy information of the predicted sub-node is determined to be not occupied; if the number of points of the predicted sub-node is greater than the first threshold, the occupancy information of the predicted sub-node is determined to be occupied.
[0327] Exemplarily, the point threshold includes more than two thresholds, and the first mapping relationship includes: if the number of points of the predicted sub-node is less than or equal to the first threshold, the occupancy information of the predicted sub-node is determined to be unoccupied; if the number of points of the predicted sub-node is greater than the first threshold, multiple occupancy intensities are further determined based on the number of points of the predicted sub-node and other thresholds.
[0328] In some embodiments, the first mapping relationship includes: if the number of points of the predicted sub-node is less than or equal to the first threshold, the occupancy information of the predicted sub-node is determined to be not occupied; if the number of points of the predicted sub-node is greater than the first threshold and less than or equal to the second threshold, the occupancy information of the predicted sub-node is determined to be the first occupancy intensity; if the number of points of the predicted sub-node is greater than the second threshold and less than or equal to the third threshold, the occupancy information of the predicted sub-node is determined to be the second occupancy intensity; if the number of points of the predicted sub-node is greater than the third threshold, the occupancy information of the predicted sub-node is determined to be the third occupancy intensity.
[0329] It should be noted that the occupation strength increases with the number of points, that is, the first occupation strength is smaller than the second occupation strength, and the second occupation strength is smaller than the third occupation strength. In short, the first occupation strength can be understood as occupation (or weak occupation), the second occupation strength can be understood as strong occupation, and the third occupation strength can be understood as very strong occupation.
[0330] In some embodiments, if the number of points of the predicted child node is less than or equal to the first threshold, the first value of the occupancy information is determined to be 0; if the number of points of the predicted child node is greater than the first threshold, the first value of the occupancy information is determined to be 1; if the number of points of the predicted child node is less than or equal to the second threshold, the second value of the occupancy information is determined to be 0; if the number of points of the predicted child node is greater than the second threshold, the second value of the occupancy information is determined to be 1; if the number of points of the predicted child node is less than or equal to the third threshold, the third value of the occupancy information is determined to be 0; if the number of points of the predicted child node is greater than the third threshold, the third value of the occupancy information is determined to be 1; the sum of the first value, the second value and the third value of the occupancy information is calculated to determine the final value of the occupancy information.
[0331] S303: Determine a target entropy coding parameter set for the current child node based on the occupancy information of the first predicted child node;
[0332] The target entropy coding parameter set includes multiple entropy coding parameters, and the entropy coding parameters are any parameters used when entropy coding the occupancy information of the child node. In some embodiments, the entropy coding parameters can be arithmetic coding parameters, and the occupancy information of the child node is adaptively arithmetic coded according to the arithmetic coding parameters. For example, the arithmetic coding parameters can be the probability of the current child node being occupied or not occupied under the current context information.
[0333] In some embodiments, a target entropy coding parameter set for the current child node is determined based on a second mapping relationship between multiple types of occupancy information and inter-frame entropy coding parameter sets, and the occupancy information of the first predicted child node. The multiple types of occupancy information specifically refer to two or more types of occupancy information. Different inter-frame entropy coding parameter sets are pre-configured for different types of occupancy information. When an inter-frame prediction mode is enabled, a matching target entropy coding parameter set is selected based on the actual inter-frame prediction information, thereby improving coding efficiency.
[0334] In some embodiments, the occupancy information is used to indicate non-occupancy and one or more occupancy states, and the second mapping relationship includes: the occupancy information of the first prediction sub-node is the first inter-frame entropy coding parameter set corresponding to non-occupancy, and the occupancy information of the first prediction sub-node is the one or more inter-frame entropy coding parameter sets corresponding to occupation.
[0335] In some embodiments, when the occupancy information is used to indicate non-occupancy, occupation, strong occupancy or very strong occupancy, the second mapping relationship includes: the first inter-frame entropy coding parameter set corresponding to non-occupancy, the second inter-frame entropy coding parameter set corresponding to occupation, the third inter-frame entropy coding parameter set corresponding to strong occupancy and the fourth inter-frame entropy coding parameter set corresponding to very strong occupancy.
[0336] That is, an inter-frame entropy coding parameter set is allocated to the current child node based on the predicted child node occupancy, the first inter-frame entropy coding parameter set includes multiple entropy coding parameters of the current child node when the predicted child node is not occupied, the second inter-frame entropy coding parameter set includes multiple entropy coding parameters of the current child node when the predicted child node is occupied, the third inter-frame entropy coding parameter set includes multiple entropy coding parameters of the current child node when the predicted child node is strongly occupied, and the fourth inter-frame entropy coding parameter set includes multiple entropy coding parameters of the current child node when the predicted child node is very strongly occupied. In an embodiment of the present application, for inter-frame prediction, an inter-frame entropy coding parameter set is selected based on whether the current child node is predicted to be non-occupied, occupied, strongly occupied, and very strongly occupied, making full use of the correlation between the inter-frame sparse context state and the non-sparse context state, and dividing the predicted child node occupancy into four categories. A matching entropy coding parameter set is configured for each category to improve the accuracy of inter-frame prediction.
[0337] When performing inter-frame prediction of point clouds, the embodiment of the present application determines an appropriate point count threshold based on the current node size, thereby reasonably distinguishing the occupancy of the predicted sub-nodes, and then selecting the optimal entropy coding parameter set for the current sub-node based on the occupancy of the predicted sub-nodes.
[0338] In some embodiments, when the current child node enables inter-frame prediction mode, a target entropy coding parameter set is determined from a candidate inter-frame entropy coding parameter set, wherein the candidate inter-frame entropy coding parameter set includes one or more inter-frame entropy coding parameter sets; when the current child node enables intra-frame prediction mode, a target entropy coding parameter set is determined from a candidate intra-frame entropy coding parameter set, wherein the candidate intra-frame entropy coding parameter set includes one or more intra-frame entropy coding parameter sets. In other words, one or more entropy coding parameter sets can be pre-configured for different inter-frame prediction situations, and when the inter-frame prediction mode is enabled, a matching target entropy coding parameter set is selected based on the actual inter-frame prediction situation to improve the accuracy of intra-frame prediction. One or more entropy coding parameter sets can also be pre-configured for different inter-frame prediction situations, and when the intra-frame prediction mode is enabled, a matching target entropy coding parameter set is selected based on the actual intra-frame prediction situation to improve the accuracy of intra-frame prediction.
[0339] In some embodiments, determining the target entropy coding parameter set from the candidate intra-frame entropy coding parameter set includes: determining the target entropy coding parameter set from the candidate intra-frame entropy coding parameter set according to the local sparsity category.
[0340] Exemplarily, when the local sparsity category is the first category, the target entropy coding parameter set is determined to be the first intra-frame entropy coding parameter set; when the local sparsity category is the second category, the target entropy coding parameter set is determined to be the second intra-frame entropy coding parameter set. That is, when the intra prediction mode is enabled for the current child node, an intra-frame entropy coding parameter set is allocated based on the local sparsity category of the current child node. The first intra-frame entropy coding parameter set may include multiple entropy coding parameters corresponding to the first category, and the second intra-frame entropy coding parameter set may include multiple entropy coding parameters corresponding to the second category.
[0341] S304: Determine a target entropy coding parameter of the current child node from a target entropy coding parameter set according to the context information of the current child node;
[0342] In some embodiments, the method further includes: determining the local sparse category of the current child node based on the occupancy information of the encoded neighboring nodes of the current child node; determining the target context state set of the current child node based on a third mapping relationship between multiple local sparse categories and context state sets, and the local sparse category of the current child node.
[0343] The local sparse category is used to indicate the local sparsity of the neighboring nodes that have been encoded by the current child node. The local sparse category may include one or more sparse categories and one or more non-sparse categories. In some embodiments, the local sparse category of the current child node is determined based on the occupancy information of the neighboring nodes that have been encoded by the current child node, including: determining the occupied number of neighboring nodes based on the occupancy information of the neighboring nodes; and determining the local sparse category of the current child node based on the occupied number of neighboring nodes. The occupancy information of the neighboring nodes is used to indicate whether the neighboring node is occupied. The occupancy information takes a value of 0 or 1, where 0 indicates not occupied and 1 indicates occupied. That is, based on the occupancy information of the neighboring nodes, the occupied number of neighboring nodes (i.e., the number of occupied neighboring nodes NN) can be determined, and different local sparse categories can be distinguished based on the occupied number.
[0344] For example, if the number of occupied neighbor nodes is greater than a preset threshold, the local sparse category of the current child node is determined to be the first category; if the number of occupied neighbor nodes is less than or equal to the preset threshold, the local sparse category of the current child node is determined to be the second category. For example, the first category can be a non-sparse category, and the second category can be a sparse category. In practical applications, more thresholds can be used to distinguish more local sparse categories.
[0345] In an embodiment of the present application, the local sparsity of the current child node is determined by considering the occupancy information of the encoded neighboring nodes and the position of the child node relative to the parent node. Exemplarily, the neighboring nodes include at least one of the following: an encoded brother node of the current child node; an encoded neighboring child node in the first preset direction adjacent to the current child node; an encoded neighboring child node in the second preset direction adjacent to the current child node; an encoded neighboring child node in the third preset direction adjacent to the current child node. Among them, the first preset direction may refer to the negative direction of the x-axis of the current child node (the left direction), the second preset direction may refer to the negative direction of the y-axis of the current child node (the front direction), and the third preset direction may refer to the negative direction of the z-axis of the current child node (the bottom direction). In other words, the local sparsity category can be established according to the number of occupancy of the encoded neighboring nodes in the negative xyz direction adjacent to the current child node. It should be noted that the encoded neighboring nodes of the current child node are the same as or not exactly the same as the context node of the current node.
[0346] Exemplarily, the local sparse category is represented by isSparse, and different isSparse values represent different local sparse categories. The value of isSparse of the child node to be encoded is determined according to the occupancy of the encoded neighboring nodes. Exemplarily, for the local sparse category of child node 0, it can be established according to the occupancy number (NN) of the 12 child nodes encoded in the negative xyz direction adjacent to the current child node in Figure 13. If the occupancy number NN>1 is non-sparse (isSparse is 0), and if the occupancy number NN≤1 is sparse (isSparse is 1). For the local sparse category of child node 1, it can be established according to the occupancy number (NN) of the 4 child nodes encoded in the negative y direction (Front) adjacent to the current child node in Figure 13. If the occupancy number NN>0, it is determined to be a non-sparse category. If the occupancy number NN=0, it is determined to be a sparse category. For child node 2, the local sparse category can be determined based on the occupancy number (NN) of the four encoded child nodes in the negative z direction (Bottom) adjacent to the current child node in Figure 13. If NN>0, it is determined to be a non-sparse category. If NN=0, it is determined to be a sparse category. For child node 3, the local sparse category can be determined based on the NN of the three nodes bit0+bit1+bit2 and the seven nodes encoded in the negative x direction (Left) adjacent to the current child node in Figure 13. If NN>1, it is determined to be a non-sparse category. If NN≤1, it is determined to be a sparse category.
[0347] It should be noted that different local sparsity categories correspond to different context state sets. The corresponding context state sets can be pre-configured for different local sparsity categories to obtain a third mapping relationship, and then the target context state set of the current child node can be determined based on the local sparsity category of the current child node.
[0348] Exemplarily, when the local sparse category is the first category, the target context state set is determined to be the first context state set; when the local sparse category is the second category, the target context state set is determined to be the second context state set. In practical applications, more context state sets may also be included. The first context state set includes one or more context states of the first category, each context state corresponds to the corresponding context information of the first category, and the second context state set includes one or more context states of the second category, each context state corresponds to the corresponding context information of the second category.
[0349] The context state and the context information correspond one to one. The context state set may include the correspondence between the context information and the context state. The context state set may also include the correspondence between the identification information of the context information and the context state. Among them, the context information is used as the index information of the context state set to index the corresponding context state. The context information is used to characterize the occupancy of the context node of the sub-node to be encoded, and may also be called the context of the sub-node to be encoded. The context state is used to represent the first probability of the sub-node to be encoded being occupied or not occupied under a certain context information, and may also be called the probability model of the sub-node to be encoded. For example, when the number of bits of the context information is N, there are at most 2 N contextual state.
[0350] In some embodiments, when the inter-frame prediction mode is enabled for the current node, the target context state set of the current node is determined from the inter-frame context state set based on the local sparse category; when the intra-frame prediction mode is enabled for the current node, the target context state set of the current node is determined from the intra-frame context state set based on the local sparse category.
[0351] In the embodiment of the present application, the target context state set to be used is determined based on the local sparse category and prediction mode. When the category is non-sparse and inter-frame prediction is not used, the intra-frame non-sparse context state set (IntraNSparse state) is used; when the category is sparse and inter-frame prediction is not used, the intra-frame sparse context state set (IntraSparse state) is used; when the category is non-sparse and inter-frame prediction is used, the inter-frame non-sparse context state set (InterNSparse state) is used; when the category is sparse and inter-frame prediction is used, the inter-frame sparse context state set (InterSparse state) is used.
[0352] In some embodiments, the method further includes: constructing a plurality of context information in an intra-frame context state set according to the occupancy information of the context node and a first construction strategy, and initializing the context state of each context information; constructing a plurality of context information in an inter-frame context state set according to the occupancy information of the context node and a second construction strategy, and initializing the context state of each context information.
[0353] In an embodiment of the present application, a first construction strategy may include: constructing intra-frame context information based on a preset context node scanning order and occupancy information of the context nodes; or constructing first information and second information of the intra-frame context information based on a preset context information composition structure and occupancy information of the context nodes; the number of bits of the first information is fixed, and the number of bits of the second information is adjustable. A second construction strategy may include: constructing inter-frame context information based on a preset context node scanning order, occupancy information of the context nodes, and occupancy information of the predicted sub-nodes; or constructing first information and second information of the inter-frame context information based on a preset context information composition structure, occupancy information of the context nodes, and occupancy information of the predicted sub-nodes; the number of bits of the first information is fixed, and the number of bits of the second information is adjustable.
[0354] Accordingly, based on the context information of the current child node, the context state of the current child node is determined from the target context state set of the current child node; wherein, the target context state set includes a mapping relationship between multiple context information and context states; and based on the context state of the current child node, the target entropy coding parameters of the current child node are determined from the target entropy coding parameter set. wherein, one or more context information in the context state set corresponds to one context state, the context information of the current child node is used to characterize the occupancy of the context node of the current child node, and the context state is the probability of the current child node being occupied or not occupied under the current context information. the target context state set records the context states corresponding to one or more context information, and the context state of the current child node is determined by indexing the target context state set through the context information of the current child node.
[0355] The context information of the current child node is related to the occupancy information of the context node of the current child node. In some embodiments, the context information of the current child node is determined based on the occupancy information of the context node of the current child node.
[0356] Exemplarily, the context node includes at least one of the following: the encoded sibling node of the current child node; the encoded neighbor child node with which the current child node is coplanar, co-edge, or co-pointed; the encoded neighbor parent node with which the current child node is coplanar or co-edgeed; and the current child node's other encoded neighbor nodes. The context node scanning order can be: the encoded sibling node of the current child node > the encoded coplanar child node neighbors of the current child node > the encoded co-edge child node neighbors of the current child node > the encoded co-point child node neighbors of the current child node > the encoded other child node neighbors of the current child node > the encoded coplanar parent node neighbors of the current child node > the encoded co-edge parent node neighbors of the current child node > the other 20 encoded parent node neighbors. Context information is constructed for the child node to be encoded based on the scanning order and occupancy information.
[0357] In some embodiments, the method for constructing the inter-frame context information may be to add the inter-frame prediction information to the inter-frame context information.
[0358] Exemplarily, the context information of the current sub-node is determined based on the occupancy information of the encoded previous and next nodes of the current sub-node and the occupancy information of the first predicted sub-node. For example, the inter-frame context information can be expressed as Inter_ctx1=Intra_ctx1<<2|bPi.
[0359] Based on the occupancy information of the first predicted child node, a first flag is determined to indicate whether the first predicted child node has a target occupancy strength. Based on the occupancy information of the encoded previous and next nodes of the current child node and the first flag, context information of the current child node is determined. The target occupancy strength can be any of a plurality of occupancy strengths. For example, if the target occupancy strength is very strong occupancy, the inter-frame context information can be expressed as Inter_ctx1 = Intra_ctx1 << 1 | predLL.
[0360] Exemplarily, the first predicted subnode is a motion-compensated predicted subnode. As shown in FIG11 , the occupancy information of the current subnode is predicted after the reference frame undergoes local motion estimation and motion compensation to obtain the occupancy information of the first predicted subnode.
[0361] According to the number of points and the point threshold of the second predicted child node corresponding to the current child node in the current node, the occupancy information of the second predicted child node is determined; according to the occupancy information of the encoded previous and next nodes of the current child node and the occupancy information of the second predicted child node of the current child node, the context information of the current child node is determined. For example, the inter-frame context information can be expressed as Inter_ctx1=Intra_ctx1<<2|bPi UnComp In the embodiment of the present application, the uncompensated second prediction sub-node is used to construct the inter-frame context information, which makes full use of the uncompensated inter-frame information. Under the condition of the same encoding quality, the bit rate can be saved and the compression efficiency can be improved.
[0362] According to the occupancy information of the second predicted child node, a second identifier is determined to indicate whether the second predicted child node is the target occupancy strength; according to the occupancy information and the second identifier of the upper and lower nodes encoded by the current child node, the context information of the current child node is determined. The target occupancy strength can be any one of a plurality of occupancy strengths, for example, the target occupancy strength is very strong occupancy. For example, the inter-frame context information can be expressed as Inter_ctx1=Intra_ctx1<<1|predLL UnComp .
[0363] Exemplarily, the second predicted subnode is a non-motion-compensated predicted subnode. The occupancy information of the current subnode is predicted using a non-motion-compensated reference frame (ie, the original reference frame) to obtain the occupancy information of the second predicted subnode.
[0364] Exemplarily, based on one or more thresholds in the point thresholds, a first mapping relationship between multiple point ranges and occupancy information is determined; based on the first mapping relationship and the points of the second predicted sub-node, the occupancy information of the second predicted sub-node is determined.
[0365] In some embodiments, the method for constructing inter-frame context information can be the same as the method for constructing intra-frame context information. Specifically, the context information is constructed based on a preset context node scanning order and context node occupancy information; alternatively, the first and second context information are constructed based on a preset context information composition structure and context node occupancy information; the number of bits of the first information is fixed, and the number of bits of the second information is adjustable. The first information can be primary information, the second information can be secondary information, and whether some of the secondary information serves as context information is dynamically adjusted.
[0366] In some embodiments, determining a target entropy coding parameter of the current child node from a target entropy coding parameter set based on a context state of the current child node includes: determining an index value of the target entropy coding parameter based on the context state; and determining the target entropy coding parameter of the current child node from the target entropy coding parameter set based on the index value of the target entropy coding parameter. That is, in the target entropy coding parameter set, the context state is mapped to an index value of a certain entropy coding parameter according to a certain mapping rule, and is used to index the target entropy coding parameter.
[0367] In the embodiment of the present application, the context state is the first probability that the current child node is occupied or not occupied under the current context information, which can also be called the first probability model of the child node. The target entropy coding parameter is the second probability that the current child node is occupied or not occupied under the current context information, which can also be called the second probability model of the child node. Therefore, the entropy coding parameter can also be understood as a context state, and the entropy coding parameter set can also be understood as a simplified context state set.
[0368] When the number of bits of context information is 19, a maximum of 2 19 context states, the bits of context information are 20 bits, and the maximum number of bits is 2 20 context states, the bits of context information are 21 bits, up to 2 21context states, and the number of parameters in the target entropy coding parameter set is much smaller than the number of context states. In the embodiment of the present application, the target context state set contains a large number of context states. If these context states are directly used for entropy coding, the coding efficiency is low. The target entropy coding parameter set contains a small number of entropy coding parameters. The large number of context states in the target context state set is mapped to the small number of entropy coding parameters in the target entropy coding parameter set, thereby streamlining the entropy coding parameters and improving the coding efficiency.
[0369] In some embodiments, the context state can be the initial probability of the current child node being occupied (or not occupied) under the current context situation. A large number of context states are mapped to a fixed number of probability models / context models, and the occupancy information of the current child node is arithmetically encoded using the indexed probability model to improve coding efficiency.
[0370] In some embodiments, determining the index value of the target entropy coding parameter based on the context state includes: determining the index value of the target entropy coding parameter based on the upper M bits of the context state; wherein M is related to the number of parameters in the target entropy coding parameter set. Exemplarily, when the number of parameters N in the target entropy coding parameter set is 32, the upper 5 bits of the context state are used, and the value of the upper 5 bits is the index value of the target entropy coding parameter.
[0371] S305: Perform entropy coding on the occupancy information of the current child node according to the target entropy coding parameter, and write the obtained coding bits into the bitstream.
[0372] In some embodiments, the method further includes: updating a target entropy decoding parameter according to occupancy information of the current child node.
[0373] In some embodiments, the method further includes: updating the context state according to the occupancy information of the current child node.
[0374] Based on the above embodiment, the encoding method provided in the embodiment of the present application is further illustrated. As shown in FIG17 , the encoding method is specifically a method for encoding point cloud geometric information. The method may include:
[0375] S401: Local sparsity determination
[0376] The local sparsity (isSparse) of the symbol to be encoded bn is determined based on the occupancy information of the encoded neighboring nodes. For example, for child node 0, the local sparsity is determined by the occupancy number (NN) of the 12 encoded child nodes adjacent to the current child node in the negative xyz direction. If the occupancy number NN>1, the symbol is non-sparse (isSparse is 0), and if the occupancy number NN≤1, the symbol is sparse (isSparse is 1).
[0377] According to the value of isSparse (0 or 1), the context state can be divided into a sparse context state set and a non-sparse context state set.
[0378] S402: Inter-frame prediction determination
[0379] In some possible embodiments, whether to enable inter-frame prediction is determined based on the occupancy information (predOcc) of the first prediction node after motion compensation of the reference frame for the current node and the enable flag (isInter) of inter-frame prediction, that is, the value of isInter2 is determined.
[0380] isInter2=isInter&&predOcc, that is, the value of isInter2 is determined by isInter and predOcc, and predOcc is an identifier used to indicate whether the prediction node is occupied. Specifically, if at least one child node bPi is occupied in the prediction node, then predOcc is set to 1; conversely, if no child node is occupied, then predOcc is 0. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper-layer inter-frame prediction is enabled. If inter-frame prediction is enabled, it is called a P frame, and isInter is 1; conversely, if it is not enabled, it is called an I frame, and isInter is 0.
[0381] In other possible embodiments, whether to enable inter-frame prediction is determined, that is, the value of isInter2 is determined, based on the occupancy information (predOcc) of the first prediction node after motion compensation of the reference frame for the current node, the occupancy information (predOccUnComp) of the uncompensated second prediction node, and the enable flag (isInter) of inter-frame prediction.
[0382] isInter2=isInter&&(predOcc||predOccUnComp), that is, the value of isInter2 is determined by isInter, predOcc and predOccUnComp, and predOcc is an identifier used to indicate whether the prediction node is occupied. Specifically, if at least one child node bPi is occupied in the prediction node, then predOcc is set to 1; otherwise, if no child node is occupied, then predOcc is 0. predOccUnComp is an identifier used to indicate whether the uncompensated prediction node is occupied. Specifically, if at least one child node bPiUnComp is occupied in the uncompensated prediction node, then predOccUnComp is set to 1; otherwise, if no child node is occupied, then predOccUnComp is 0. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper-layer inter-frame prediction is enabled. If inter-frame prediction is enabled, it is called a P frame, and isInter is 1; otherwise, if it is not enabled, it is called an I frame, and isInter is 0.
[0383] S403: Context state selection
[0384] First, the context state set to be used is determined based on whether it is sparse (isSparse) and whether it is inter-frame prediction (isInter2). When the non-sparse category is used and inter-frame prediction is not used, the intra-frame non-sparse context state set (IntraNSparse state) is used; when the sparse category is used and inter-frame prediction is not used, the intra-frame sparse context state set (IntraSparse state) is used; when the non-sparse category is used and inter-frame prediction is used, the inter-frame non-sparse context state set (InterNSparse state) is used; when the sparse category is used and inter-frame prediction is used, the inter-frame sparse context state set (InterSparse state) is used. Among them, the construction method of the context information in the intra-frame non-sparse context state set (IntraNSparse state) and the intra-frame sparse context state set (IntraSparse state) can be the construction method in OBUF or the construction method of dynamic OBUF.
[0385] In some possible implementations, the context information construction method of the inter-frame non-sparse context state set (InterNSparse state) and the inter-frame sparse context state set (InterSparse state) can adopt the same construction method as the intra-frame context, without the need to use inter-frame prediction information to participate in the construction, thereby reducing the number of inter-frame context states, saving storage space, and improving decoding efficiency.
[0386] In some possible implementations, the inter-frame context information construction method, compared to the intra-frame method, can take into account whether the prediction is very strong, that is, whether bPi is 3. In this case, the inter-frame context Inter_ctx1 = Intra_ctx1 << 1 | predLL. In this case, the number of inter-frame context states is half the number of inter-frame context states obtained by the traditional inter-frame context information construction method, saving storage space, reducing computational complexity, and improving coding efficiency. For example, when the intra-frame context information has a maximum of 19 bits, the inter-frame context information has a maximum of 20 bits. While achieving the same coding quality, this can save bit rate and improve coding efficiency.
[0387] In some possible implementations, the occupancy information of the uncompensated prediction nodes can also be considered when constructing the inter-frame context, that is, the original Inter_ctx1=Intra_ctx1<<2|predL<<1|pred is changed to Inter_ctx1=Intra_ctx1<<2|bPi UnComp For example, when the maximum number of bits of intra-frame context information is 19, the maximum number of bits of inter-frame context information is 21. Using uncompensated inter-frame information can save bit rate and improve coding efficiency while achieving the same coding quality.
[0388] Secondly, in the selected context state set, the context state of the sub-node to be encoded is obtained according to the context information of the sub-node to be decoded, that is, the probability P of the sub-node to be encoded occupying (or not occupying) in this context situation is obtained. S .
[0389] The method for constructing the context information of the sub-node to be decoded corresponding to the selected inter-frame context state set includes: constructing according to the occupancy information of the context node, constructing according to the occupancy information of the context node and the occupancy information of the first predicted sub-node, or constructing according to the occupancy information of the context node and the occupancy information of the second predicted sub-node.
[0390] The method for determining the occupancy information of the first predicted sub-node is specifically as follows:
[0391] Among them, bP iis the occupancy information of the predicted child node i after compensation, NodePoints[i] represents the number of points in the predicted child node i after compensation, j is the jth threshold. The threshold is related to the size of the node. If Nodesize is used to represent the current node size, then th1 = max(0, Nodesize>>8), th2 = max(2, Nodesize>>4), and th3 = max(8, Nodesize>>2).
[0392] Specifically, based on the occupancy information of the predicted child nodes, the information determined to be inter-frame prediction (isInter2=1) is divided into the following four categories:
[0393] a) Pred0: When the child node i is predicted to be empty, the current child node i is predicted to not occupy bPi=0.
[0394] b) Pred1: When the predicted child node i is not empty and the number of points (Npred) exceeds the first threshold th1 but does not exceed the second threshold th2, the current child node i is predicted to occupy bPi = 1;
[0395] c) predL: When the predicted child node i is not empty and the number of points (Npred) exceeds the second threshold th2 but does not exceed the third threshold th3, the current child node i is predicted to be strongly occupied bPi = 2;
[0396] d) predLL: When the predicted child node i is not empty and the number of points (Npred) exceeds the third threshold th3, the current child node i is predicted to be very strongly occupied bPi=3.
[0397] The method for determining the occupancy information of the second prediction sub-node is specifically as follows:
[0398] Among them, bP i UnComp is the occupancy information of the uncompensated predicted child node i, NodePointsUnComp[i] represents the number of points in the uncompensated predicted child node i, th j is the threshold value, which is related to the size of the node. If Nodesize is used to represent the current node size, then th1 = max(0, Nodesize>>8), th2 = max(2, Nodesize>>4), and th3 = max(8, Nodesize>>2).
[0399] According to the number of points in the uncompensated prediction node, the uncompensated inter-frame information determined to be inter-frame prediction (isInter2=1) is divided into the following four categories:
[0400] a) Pred0 UnComp : Uncompensated child node i is predicted to not occupy bP iUnComp=0;
[0401] b) Pred1 UnComp : Uncompensated child node i is predicted to occupy bP i UnComp =1;
[0402] c) PredL UnComp :Uncompensated child node i is predicted to be strongly occupied bPi UnComp =2;
[0403] d) PredLL UnComp :Uncompensated child node i is predicted to be very strongly occupied bPi UnComp =3.
[0404] S404: Entropy coding parameter selection
[0405] First, for intra-frame prediction mode, the entropy coding parameter set to be used is determined based on the context state set selected by the child node to be encoded, also known as the encoder group, where each encoder contains one entropy coding parameter. For inter-frame prediction mode, the entropy coding parameter set to be used is determined based on the occupancy information of the predicted child node.
[0406] It is determined that intra prediction is used. If the intra non-sparse context state set (IntraNSparse state) is used, the intra non-sparse encoder group (IntraNSparse Coder) is determined to be used; if the intra sparse context state set (IntraSparse state) is used, the intra sparse encoder group (IntraSparse Coder) is determined to be used.
[0407] When it is determined to be inter-frame prediction and bPi=0 is not occupied, the inter-frame entropy coding parameter set InterPred0Coder is determined to be used; when it is determined to be inter-frame prediction and bPi=1 is occupied, the inter-frame entropy coding parameter set InterPred1 Coder is determined to be used; when it is determined to be inter-frame prediction and bPi=2 is strongly occupied, the inter-frame entropy coding parameter set InterPredL Coder is determined to be used; when it is determined to be inter-frame prediction and bPi=3 is very strongly occupied, the inter-frame entropy coding parameter set InterPredLL Coder is determined to be used. That is to say, for inter-frame prediction, taking into account the correlation between the inter-frame sparse context state and the inter-frame non-sparse context state, the sparse context state and the non-sparse context state share the entropy coding parameter set, and the entropy coding parameter set is selected only according to the prediction of non-occupancy, occupation, strong occupation and very strong occupation, thereby reducing the bit rate and improving the coding efficiency.
[0408] Secondly, in the determined encoder group, according to certain mapping rules, the context state P of bn is converted to SMapped to encoder Ci. The mapping rule can be to take the high 5 bits of the context state, and the size of its value is the index value of the mapped encoder. The probability of the mapped encoder Ci is P C .
[0409] S405: Adaptive arithmetic coding
[0410] The probability P of using the determined encoder Ci C , adaptive arithmetic coding is performed on the occupancy information bn of the child node to be encoded.
[0411] The encoding method provided in the embodiments of the present application determines an appropriate point count threshold based on the current node size when performing inter-frame prediction of a point cloud, thereby reasonably distinguishing the occupancy of the predicted sub-nodes and selecting the optimal entropy coding parameter set for the current sub-node. Furthermore, considering the correlation between the inter-frame sparse context state and the inter-frame non-sparse context state, the sparse context state and the non-sparse context state share the entropy coding parameter set, and the entropy coding parameter set is selected only based on the prediction of non-occupancy, occupation, strong occupation, and very strong occupation, thereby reducing the bit rate and improving the coding efficiency.
[0412] The encoding and decoding method provided in the embodiment of the present application fully utilizes inter-frame prediction information, further improving the efficiency of G-PCC geometric coding. If the inter-frame context is Inter_ctx1 = Intra_ctx1 << 1 | predLL, the entropy coding parameter set is selected based on the prediction of non-occupancy, occupation, strong occupation, and very strong occupation. BD-Rate represents the percentage of savings (BD-Rate is a negative value) or increases (BD-Rate is a positive value) in the encoding bit rate of the present application compared to the encoding bit rate of the prior art while achieving the same encoding quality. The test results are detailed in Tables 9 and 10.
[0413] Table 9 BD-Rate of GES-TM-v4.0-Octree RAHT inter lossy compression
[0414] Table 10 BD-Rate of GES-TM-v4.0-TriSoup RAHT inter lossy compression
[0415] If the uncompensated inter-frame information is considered, that is, the inter-frame context is Inter_ctx1 = Intra_ctx1 << 2 | bPiUnComp, the entropy coding parameter set is selected according to the prediction of non-occupancy, occupation, strong occupation and very strong occupation, and the BD-Rate under the lossy compression condition of geometric information is expressed. Compared with the prior art, while obtaining the same encoding quality, the encoding bit rate of the present application is saved (BD-Rate is a negative value) or increased (BD-Rate is a positive value) by a percentage compared with the encoding bit rate of the prior art. The test results are detailed in Tables 11 and 12.
[0416] Table 11 BD-Rate of GES-TM-v4.0-Octree RAHT inter lossy compression
[0417] Table 12 BD-Rate of GES-TM-v4.0-TriSoup RAHT inter lossy compression
[0418] In another embodiment of the present application, based on the same inventive concept as the above embodiment, see FIG18 , which shows a schematic diagram of the structure of a point cloud encoder provided by the embodiment of the present application. As shown in FIG18 , the point cloud encoder 180 may include: a first determination unit 1801, a first prediction unit 1802, and an encoding unit 1803; wherein,
[0419] The first determining unit 1801 is configured to determine a point threshold according to a size parameter of the current node when the inter-frame prediction mode is enabled for the current node, wherein the point threshold includes one or more thresholds;
[0420] The first prediction unit 1802 is configured to determine occupancy information of the first predicted sub-node corresponding to the current sub-node to be encoded in the current node based on the number of points and the point threshold of the first predicted sub-node; and determine a target entropy coding parameter set for the current sub-node based on the occupancy information of the first predicted sub-node;
[0421] The first determining unit 1801 is configured to determine a target entropy coding parameter of the current child node from a target entropy coding parameter set according to context information of the current child node;
[0422] The encoding unit 1803 is configured to perform entropy encoding on the occupancy information of the current child node according to the target entropy encoding parameter, and write the obtained encoding bits into the bitstream.
[0423] It can be understood that each functional unit of the point cloud encoder also executes the encoding method of any one of the aforementioned embodiments.
[0424] It is understandable that in the embodiments of the present application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and of course it can also be a module, or it can be non-modular. Moreover, the various components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional modules.
[0425] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, or the portion that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method of this embodiment. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0426] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the point cloud encoder 180. The computer-readable storage medium stores a computer program, and when the computer program is executed by the first processor, it implements the encoding method of any one of the aforementioned embodiments.
[0427] Based on the composition of the above-mentioned point cloud encoder 180 and the computer-readable storage medium, refer to Figure 19, which shows a specific hardware structure diagram of the point cloud encoder 180 provided in an embodiment of the present application. As shown in Figure 19, the point cloud encoder 180 may include: a first communication interface 1901, a first memory 1902 and a first processor 1903; each component is coupled together through a first bus system 1904. It can be understood that the first bus system 1904 is used to realize the connection and communication between these components. In addition to the data bus, the first bus system 1904 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as the first bus system 1904 in Figure 19. Among them,
[0428] The first communication interface 1901 is used to receive and send signals when sending and receiving information with other external network elements;
[0429] A first memory 1902 is used to store computer programs that can be run on the first processor 1903;
[0430] The first processor 1903 is configured to, when running the computer program, execute:
[0431] In the case where the inter-frame prediction mode is enabled for the current node, determining a point threshold according to a size parameter of the current node, wherein the point threshold includes one or more thresholds;
[0432] Determine occupancy information of the first predicted subnode according to the number of points of the first predicted subnode corresponding to the current subnode to be encoded in the current node and the point threshold;
[0433] Determining a target entropy coding parameter set for a current child node based on the occupancy information of the first predicted child node;
[0434] Determine the target entropy coding parameter of the current child node from the target entropy coding parameter set according to the context information of the current child node;
[0435] The occupancy information of the current child node is entropy-encoded according to the target entropy coding parameter, and the obtained coded bits are written into the bitstream.
[0436] It is understood that the first memory 1902 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The first memory 1902 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0437] The first processor 1903 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits or software instructions in the first processor 1903. The above-mentioned first processor 1903 can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The various methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the first memory 1902 , and the first processor 1903 reads the information in the first memory 1902 and completes the steps of the above method in combination with its hardware.
[0438] It is understood that the embodiments described herein can be implemented with hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSP devices, DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions of the present application or a combination thereof. For software implementation, the technology of the present application can be implemented by a module (such as a process, a function, etc.) that performs the functions of the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.
[0439] Optionally, as another embodiment, the first processor 1903 is further configured to execute the encoding method of any one of the aforementioned embodiments when running the computer program.
[0440] This embodiment provides a point cloud encoder. In this point cloud encoder, when performing inter-frame prediction of a point cloud, an appropriate point count threshold is determined based on the current node size, thereby properly distinguishing the occupancy of predicted subnodes and selecting the optimal entropy coding parameter set for the current subnode. Furthermore, considering the correlation between inter-frame sparse context states and inter-frame non-sparse context states, the sparse context states and non-sparse context states share the entropy coding parameter set. The entropy coding parameter set is selected only based on the predicted values of non-occupancy, occupation, strong occupation, and very strong occupation, thereby reducing the bit rate and improving coding efficiency.
[0441] The present application also provides a computer-readable storage medium that stores a bitstream generated by the encoding method of any of the aforementioned embodiments. The bitstream is generated by bit-encoding information to be encoded, wherein the information to be encoded includes at least information such as the occupancy of a current child node.
[0442] In another embodiment of the present application, based on the same inventive concept as the above embodiment, see FIG20 , which shows a schematic diagram of the structure of a point cloud decoder provided by the embodiment of the present application. As shown in FIG20 , the point cloud decoder 200 may include: a second determination unit 2001, a second prediction unit 2002 and a decoding unit 2003; wherein,
[0443] The second determining unit 2001 is configured to determine a point number threshold according to a size parameter of the current node when the inter-frame prediction mode is enabled for the current node, wherein the point number threshold includes one or more thresholds;
[0444] The second prediction unit 2002 is configured to determine the occupancy information of the first predicted sub-node according to the number of points of the first predicted sub-node corresponding to the current sub-node to be decoded in the current node and the point threshold;
[0445] The second determining unit 2001 is configured to determine a target entropy decoding parameter set for the current child node based on the occupancy information of the first predicted child node; and determine a target entropy decoding parameter for the current child node from the target entropy decoding parameter set based on the context information of the current child node;
[0446] The decoding unit 2003 is configured to perform entropy decoding on the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.
[0447] It can be understood that each functional unit of the point cloud decoder also executes the decoding method of any one of the aforementioned embodiments.
[0448] It is understood that in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular system. Furthermore, the various components in this embodiment can be integrated into a single processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The aforementioned integrated units can be implemented in the form of hardware or software functional modules.
[0449] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, this embodiment provides a computer-readable storage medium for use in the point cloud decoder 200. The computer-readable storage medium stores a computer program that, when executed by a second processor, implements any of the decoding methods described in the aforementioned embodiments.
[0450] Based on the composition of the above-mentioned point cloud decoder 200 and the computer-readable storage medium, refer to Figure 21, which shows a specific hardware structure diagram of the point cloud decoder 200 provided in an embodiment of the present application. As shown in Figure 21, the point cloud decoder 200 may include: a second communication interface 2101, a second memory 2102 and a second processor 2103; each component is coupled together through a second bus system 2104. It can be understood that the second bus system 2104 is used to realize the connection and communication between these components. In addition to the data bus, the second bus system 2104 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as the second bus system 2104 in Figure 21. Among them,
[0451] The second communication interface 2101 is used to receive and send signals during the process of sending and receiving information between other external network elements;
[0452] The second memory 2102 is used to store computer programs that can be run on the second processor 2103;
[0453] The second processor 2103 is configured to, when running the computer program, execute:
[0454] In the case where the inter-frame prediction mode is enabled for the current node, determining a point threshold according to a size parameter of the current node, wherein the point threshold includes one or more thresholds;
[0455] Determine occupancy information of the first predicted subnode according to the number of points and the point threshold of the first predicted subnode corresponding to the current subnode to be decoded in the current node;
[0456] Determining a target entropy decoding parameter set for a current child node based on the occupancy information of the first predicted child node;
[0457] Determine the target entropy decoding parameter of the current child node from the target entropy decoding parameter set according to the context information of the current child node;
[0458] The bitstream is entropy decoded according to the target entropy decoding parameter to determine the occupancy information of the current child node.
[0459] Optionally, as another embodiment, the second processor 2103 is further configured to execute the decoding method of any one of the aforementioned embodiments when running the computer program.
[0460] It can be understood that the hardware functions of the second memory 2102 are similar to those of the first memory 1902, and the hardware functions of the second processor 2103 are similar to those of the first processor 1903; they will not be described in detail here.
[0461] This embodiment provides a point cloud decoder. In this point cloud decoder, when performing inter-frame prediction of a point cloud, an appropriate point count threshold is determined based on the current node size, thereby rationally dividing the occupancy of the predicted node and selecting the optimal entropy decoding parameter set for the current child node. Furthermore, for inter-frame prediction, the correlation between the inter-frame sparse context state and the inter-frame non-sparse context state is taken into account, so that the sparse context state and the non-sparse context state share the entropy decoding parameter set. The entropy decoding parameter set is selected only based on the predicted non-occupancy, occupation, strong occupation, and very strong occupation, thereby improving decoding efficiency.
[0462] This embodiment further provides a computer program product, including a computer program or instructions. When the computer program or instructions are executed by a processor, the encoding method or decoding method of any one of the aforementioned embodiments is executed.
[0463] In another embodiment of the present application, referring to FIG22 , which shows a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application. As shown in FIG22 , the coding and decoding system 220 may include a point cloud encoder 2201 and a point cloud decoder 2202 .
[0464] In an embodiment of the present application, the point cloud encoder 2201 may be the point cloud encoder described in any one of the aforementioned embodiments, and the point cloud decoder 2202 may be the point cloud decoder described in any one of the aforementioned embodiments.
[0465] 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.
[0466] 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.
[0467] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined, if they do not conflict, to obtain new method embodiments. The features disclosed in the several product embodiments provided in this application can be arbitrarily combined, if they do not conflict, to obtain new product embodiments. The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined, if they do not conflict, to obtain new method embodiments or device embodiments.
[0468] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims. Industrial Applicability
[0469] The embodiments of the present application provide a coding and decoding method, a point cloud encoder, a point cloud decoder, and a storage medium. Whether on the encoding or decoding end, when performing point cloud inter-frame prediction, a point count threshold is determined based on the size parameters of the current node; thereby, the occupancy information of the first predicted child node is determined; based on this inter-frame information, a target entropy coding / decoding parameter set for the current child node is determined; based on the context information of the current child node, the target entropy coding / decoding parameters are determined; and the occupancy information of the current child node is entropy encoded / decoded based on the target entropy coding / decoding parameters. In this way, when performing point cloud inter-frame prediction, an appropriate point count threshold is determined based on the current node size, thereby reasonably distinguishing the occupancy of the predicted child nodes, selecting the optimal entropy coding / decoding parameter set for the current child node, and further selecting the optimal entropy coding / decoding parameters for encoding and decoding based on the context information, thereby reducing the bit rate and improving encoding and decoding efficiency.
Claims
1. A decoding method, applied to a point cloud decoder, comprising: When the inter-frame prediction mode is enabled for the current node, determining a point threshold according to a size parameter of the current node, wherein the point threshold includes one or more thresholds; Determining occupancy information of the first predicted sub-node according to the number of points of the first predicted sub-node corresponding to the current sub-node to be decoded in the current node and the point threshold; Determining a target entropy decoding parameter set for the current child node according to the occupancy information of the first predicted child node; Determining, according to the context information of the current child node, a target entropy decoding parameter of the current child node from the target entropy decoding parameter set; Entropy decoding is performed on the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.
2. The method according to claim 1, wherein The method further comprises: Determining, according to a value of the first syntax element, whether the current node allows enabling the inter-frame prediction mode; In a case where the current node allows enabling of an inter-frame prediction mode, determining occupancy information of a prediction node of the current node in a reference frame; Determine whether the current node enables an inter-frame prediction mode according to the occupancy information of the prediction node.
3. The method according to claim 2, wherein: The prediction node includes a first prediction node and / or a second prediction node, wherein the first prediction node is a motion-compensated prediction node and the second prediction node is a non-motion-compensated prediction node.
4. The method according to claim 3, wherein: The determining, according to the occupancy information of the prediction node, whether the current node enables the inter-frame prediction mode includes: When the occupancy information of the first prediction node indicates occupied or the occupancy information of the second prediction node indicates occupied, determining that the current node enables an inter-frame prediction mode; When the occupancy information of the first prediction node indicates that it is not occupied and the occupancy information of the second prediction node indicates that it is not occupied, it is determined that the intra prediction mode is enabled for the current node.
5. The method according to claim 1, wherein The step of determining the point threshold according to the size parameter of the current node includes: In the case where it is determined according to the size parameter that the preset first value is not to be adjusted, the first value is used as the first threshold in the point threshold; or In the case where it is determined according to the size parameter that the first value is adjusted, a second value obtained according to the size parameter is used as the first threshold in the point threshold.
6. The method according to claim 5, wherein: The method further comprises: Convert the size parameter according to a first conversion factor corresponding to the first value to obtain the second value; If the first value is greater than or equal to the second value, determining not to adjust the first value; When the first value is smaller than the second value, it is determined to adjust the first value.
7. The method according to claim 6, wherein: The first conversion factor is the number of right shifts of the size parameter.
8. The method according to any one of claims 1 to 7, wherein: The determining, according to the number of points of the first predicted sub-node corresponding to the current sub-node to be decoded in the current node and the number of points threshold, the occupancy information of the first predicted sub-node includes: determining a first mapping relationship between a plurality of point ranges and occupancy information according to one or more thresholds among the point thresholds; Occupancy information of the first predicted subnode is determined according to the first mapping relationship and the number of points of the first predicted subnode.
9. The method according to claim 8, wherein The first mapping relationship includes: If the number of points of the predicted sub-node is less than or equal to the first threshold, the occupancy information of the predicted sub-node is determined to be unoccupied; If the number of points of the predicted subnode is greater than the first threshold and less than or equal to the second threshold, determining the occupancy information of the predicted subnode to be the first occupancy intensity; If the number of points of the predicted subnode is greater than the second threshold and less than or equal to the third threshold, determining the occupancy information of the predicted subnode to be the second occupancy intensity; If the number of points of the predicted sub-node is greater than the third threshold, the occupancy information of the predicted sub-node is determined to be the third occupancy intensity.
10. The method according to any one of claims 1 to 9, wherein: The determining, based on the occupancy information of the first predicted sub-node, a target entropy decoding parameter set for the current sub-node includes: The target entropy decoding parameter set of the current sub-node is determined according to a second mapping relationship between multiple types of occupancy information and inter-frame entropy decoding parameter sets, and the occupancy information of the first predicted sub-node.
11. The method according to any one of claims 1 to 10, wherein: The method further comprises: The context information of the current child node is determined according to the occupancy information of the decoded previous and next nodes of the current child node.
12. The method according to claim 11, wherein The determining the context information of the current child node according to the occupancy information of the decoded upper and lower nodes of the current child node includes: determining, according to the occupancy information of the first predicted subnode, a first identifier for indicating whether the first predicted subnode has a target occupancy intensity; The context information of the current sub-node is determined according to the occupancy information of the decoded previous and next nodes of the current sub-node and the first identifier.
13. The method according to claim 12, wherein: The first prediction sub-node is a motion compensated prediction sub-node.
14. The method according to claim 11, wherein The method further comprises: Determining occupancy information of the second predicted subnode according to the point count of the second predicted subnode corresponding to the current subnode and the point count threshold; The determining the context information of the current child node according to the occupancy information of the decoded upper and lower nodes of the current child node includes: Context information of the current sub-node is determined according to occupancy information of a decoded context node of the current sub-node and occupancy information of a second predicted sub-node of the current sub-node.
15. The method according to claim 14, wherein The second prediction sub-node is a prediction sub-node that has not been motion compensated.
16. The method according to any one of claims 1 to 15, wherein: The method further comprises: Determining a local sparse category of the current child node based on occupancy information of decoded neighboring nodes of the current child node; Determining a target context state set for the current child node according to a third mapping relationship between multiple local sparse categories and context state sets, and the local sparse category of the current child node; The determining, based on the context information of the current child node, the target entropy decoding parameter of the current child node from the target entropy decoding parameter set includes: Determining the context state of the current child node from a target context state set of the current child node according to the context information of the current child node; wherein the target context state set includes a mapping relationship between multiple context information and context states; According to the context state of the current child node, a target entropy decoding parameter of the current child node is determined from the target entropy decoding parameter set.
17. A coding method, applied to a point cloud encoder, comprising: When the inter-frame prediction mode is enabled for the current node, determining a point threshold according to a size parameter of the current node, wherein the point threshold includes one or more thresholds; Determining occupancy information of the first predicted subnode according to the number of points of the first predicted subnode corresponding to the current subnode to be encoded in the current node and the point threshold; Determining a target entropy coding parameter set for the current child node according to the occupancy information of the first predicted child node; Determining, according to the context information of the current child node, a target entropy coding parameter of the current child node from the target entropy coding parameter set; Entropy coding is performed on the occupancy information of the current child node according to the target entropy coding parameter, and the obtained coding bits are written into a bitstream.
18. The method according to claim 17, wherein The method further comprises: Determining, according to a value of the first syntax element, whether the current node allows enabling the inter-frame prediction mode; In a case where the current node allows enabling of an inter-frame prediction mode, determining occupancy information of a prediction node of the current node in a reference frame; Determine whether the current node enables an inter-frame prediction mode according to the occupancy information of the prediction node.
19. The method according to claim 18, wherein The prediction node includes a first prediction node and / or a second prediction node, wherein the first prediction node is a prediction node determined after motion compensation of the reference frame of the current node, and the second prediction node is a prediction node determined without motion compensation of the reference frame of the current node.
20. The method according to claim 19, wherein The determining, according to the occupancy information of the prediction node, whether the current node enables the inter-frame prediction mode includes: When the occupancy information of the first prediction node indicates occupied or the occupancy information of the second prediction node indicates occupied, determining that the current node enables an inter-frame prediction mode; When the occupancy information of the first prediction node indicates that it is not occupied and the occupancy information of the second prediction node indicates that it is not occupied, it is determined that the intra prediction mode is enabled for the current node.
21. The method according to claim 17, wherein The step of determining the point threshold according to the size parameter of the current node includes: In the case where it is determined according to the size parameter that the preset first value is not to be adjusted, the first value is used as the first threshold in the point threshold; or In the case of adjusting the first value according to the size parameter, the second value obtained according to the size parameter is used as is the first threshold among the point thresholds.
22. The method according to claim 21, wherein The method further comprises: Convert the size parameter according to a first conversion factor corresponding to the first value to obtain the second value; If the first value is greater than or equal to the second value, determining not to adjust the first value; When the first value is smaller than the second value, it is determined to adjust the first value.
23. The method according to claim 22, wherein The first conversion factor is the number of right shifts of the size parameter.
24. The method according to any one of claims 17 to 23, wherein: The determining, according to the number of points of the first predicted child node corresponding to the current child node to be encoded in the current node and the point threshold, the occupancy information of the first predicted child node includes: determining a first mapping relationship between a plurality of point ranges and occupancy information according to one or more thresholds among the point thresholds; Occupancy information of the first predicted subnode is determined according to the first mapping relationship and the number of points of the first predicted subnode.
25. The method according to claim 24, wherein The first mapping relationship includes: If the number of points of the predicted sub-node is less than or equal to the first threshold, the occupancy information of the predicted sub-node is determined to be unoccupied; If the number of points of the predicted subnode is greater than the first threshold and less than or equal to the second threshold, determining the occupancy information of the predicted subnode to be the first occupancy intensity; If the number of points of the predicted subnode is greater than the second threshold and less than or equal to the third threshold, determining the occupancy information of the predicted subnode to be the second occupancy intensity; If the number of points of the predicted sub-node is greater than the third threshold, the occupancy information of the predicted sub-node is determined to be the third occupancy intensity.
26. The method according to any one of claims 17 to 25, wherein The determining, based on the occupancy information of the first predicted child node, a target entropy coding parameter set for the current child node includes: The target entropy coding parameter set of the current child node is determined according to a second mapping relationship between multiple types of occupancy information and inter-frame entropy coding parameter sets, and the occupancy information of the first predicted child node.
27. The method according to any one of claims 17 to 26, wherein: The method further comprises: The context information of the current child node is determined according to the occupancy information of the encoded upper and lower nodes of the current child node.
28. The method according to claim 27, wherein The determining of the context information of the current sub-node according to the occupancy information of the upper and lower nodes encoded by the current sub-node includes: determining, according to the occupancy information of the first predicted subnode, a first identifier for indicating whether the first predicted subnode has a target occupancy intensity; The context information of the current sub-node is determined according to the occupancy information of the encoded upper and lower nodes of the current sub-node and the first identifier.
29. The method according to claim 27, wherein The method further comprises: Determining occupancy information of the second predicted subnode according to the point count of the second predicted subnode corresponding to the current subnode and the point count threshold; The determining of the context information of the current sub-node according to the occupancy information of the upper and lower nodes encoded by the current sub-node includes: The context information of the current sub-node is determined according to the occupancy information of the encoded previous and next nodes of the current sub-node and the occupancy information of the second predicted sub-node of the current sub-node.
30. A point cloud encoder, comprising a first determining unit, a first predicting unit, and an encoding unit; wherein: The first determining unit is configured to determine a point threshold according to a size parameter of the current node when the inter-frame prediction mode is enabled for the current node, wherein the point threshold includes one or more thresholds; The first prediction unit is configured to determine occupancy information of the first predicted sub-node corresponding to the current sub-node to be encoded in the current node and the point threshold; and determine a target entropy coding parameter set for the current sub-node based on the occupancy information of the first predicted sub-node; The first determining unit is configured to determine the target entropy coding parameter of the current child node from the target entropy coding parameter set according to the context information of the current child node; The encoding unit is configured to perform entropy encoding on the occupancy information of the current child node according to the target entropy encoding parameter, and write the obtained encoding bits into a bitstream.
31. A point cloud encoder, comprising a first memory and a first processor; wherein: The first memory is used to store a computer program that can be run on the first processor; The first processor is configured to execute the method according to any one of claims 17 to 29 when running the computer program.
32. A point cloud decoder, comprising a second determining unit, a second predicting unit, and a decoding unit; wherein: The second determining unit is configured to determine a point threshold according to a size parameter of the current node when the inter-frame prediction mode is enabled for the current node, wherein the point threshold includes one or more thresholds; The second prediction unit is configured to predict the number of points of the first predicted child node corresponding to the current child node to be decoded in the current node and The point threshold is used to determine the occupancy information of the first prediction sub-node; The second determining unit is configured to determine a target entropy decoding parameter set for the current child node based on the occupancy information of the first predicted child node; and determine a target entropy decoding parameter for the current child node from the target entropy decoding parameter set based on the context information of the current child node; The decoding unit is configured to perform entropy decoding on the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.
33. A point cloud decoder, comprising a second memory and a second processor; wherein: The second memory is used to store a computer program that can be run on the second processor; The second processor is configured to execute the method according to any one of claims 1 to 16 when running the computer program.
34. A computer-readable storage medium, wherein: The computer-readable storage medium stores a code stream generated by the encoding method according to any one of claims 17 to 29.
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 16 is implemented, or the method according to any one of claims 17 to 29 is implemented.
Citation Information
Patent Citations
Point cloud compression method, encoder, decoder and storage medium
CN116132671A
Point cloud coding and decoding processing method and device, coding equipment and decoding equipment
CN116233388A
Method for encoding and decoding TRISOUP vertex position
CN116997931A
Methods and devices for predictive coding of point clouds
US20210144403A1