Encoding method, decoding method, point cloud encoder, point cloud decoder and storage medium
By determining the number of points based on the node size during inter-frame prediction of point clouds, reasonably distinguishing the occupancy of predicted child nodes, and selecting the optimal entropy encoding/decoding parameters, the problems of high computational complexity and low encoding/decoding efficiency of octree-based encoding and decoding are solved, thus improving the encoding and decoding efficiency.
Patent Information
- Application Number
- PCT/CN2024/087825
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-15
- Publication Date
- 2025-10-23
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 an appropriate number of points based on the current node size during point cloud inter-frame prediction, distinguishing the occupancy status of predicted child nodes, and selecting the optimal set of entropy encoding/decoding parameters, the inter-frame context information is used to further select entropy encoding/decoding parameters for encoding and decoding.
It reduces the bitrate and improves encoding and decoding efficiency.
Smart Images

Figure CN2024087825_23102025_PF_FP_ABST
Abstract
Description
Coding method, point cloud encoder, point cloud decoder and storage medium TECHNICAL FIELD
[0001] The embodiments of the present application relate to the technical field of point cloud coding, in particular to a coding method, a point cloud encoder, a point cloud decoder and a storage medium. BACKGROUND
[0002] At present, in the Geometry-based Point Cloud Compression (G-PCC) coding framework, the geometry information of a point cloud and the attribute information corresponding to the points in the point cloud are encoded separately. For the G-PCC coding framework, the geometry coding part can be divided into octree-based geometry coding, Trisoup-based geometry coding and prediction tree-based geometry coding.
[0003] In the octree-based geometry coding technology, when the occupancy information is encoded according to the context information of the node to be encoded, there is a problem of high computational complexity and low coding efficiency.
[0004] SUMMARY
[0005] The embodiments of the present application provide a coding method, a point cloud encoder, a point cloud decoder and a storage medium. When inter-frame prediction of a point cloud is performed, a suitable point number threshold is determined according to the size of a current node, so as to reasonably distinguish the occupancy of a prediction sub-node, select the best entropy encoding / decoding parameter set for the current sub-node, and further select the best entropy encoding / decoding parameter for encoding / decoding according to the inter-frame context information, thereby reducing the code rate and improving the coding efficiency.
[0006] The technical scheme of the embodiments of the present application can be implemented as follows:
[0007] In a first aspect, the embodiments of the present application provide a decoding method applied to a point cloud decoder, and the method comprises:
[0008] In the case that the current node enables the inter-frame prediction mode, a point number threshold is determined according to the size parameter of the current node, wherein the point number threshold comprises one or more threshold values;
[0009] The occupancy information of the prediction sub-node corresponding to the current sub-node to be decoded in the current node is determined according to the point number of the prediction sub-node and the point number threshold;
[0010] The target entropy decoding parameter set of the current sub-node is determined according to the occupancy information of the prediction sub-node;
[0011] determine inter-frame context information of the current sub-node according to the occupancy information of the upper node decoded by the current sub-node and the occupancy information of the prediction sub-node;
[0012] determine a target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set according to the inter-frame context information of the current sub-node;
[0013] entropy decode the code stream according to the target entropy decoding parameter to determine the occupancy information of the current sub-node.
[0014] In a second aspect, an encoding method is provided in the embodiments of the present application, and the method is applied to a point cloud encoder, and the method comprises the following steps:
[0015] In a case where the inter-frame prediction mode is enabled for the current node, determine a point number threshold according to a size parameter of the current node, wherein the point number threshold comprises one or more thresholds;
[0016] determine occupancy information of a prediction sub-node corresponding to a current sub-node to be encoded in the current node according to the point number of the prediction sub-node and the point number threshold;
[0017] determine a target entropy encoding parameter set of the current sub-node according to the occupancy information of the prediction sub-node;
[0018] determine inter-frame context information of the current sub-node according to the occupancy information of the upper node encoded by the current sub-node and the occupancy information of the prediction sub-node;
[0019] determine a target entropy encoding parameter of the current sub-node from the target entropy encoding parameter set according to the inter-frame context information of the current sub-node;
[0020] entropy encode the occupancy information of the current sub-node according to the target entropy encoding parameter, and write the obtained encoded bits into a code stream.
[0021] In a third aspect, a point cloud encoder is provided in the embodiments of the present application, and the point cloud encoder comprises a first determining unit, a first predicting unit and an encoding unit; wherein,
[0022] the first determining unit is configured to, in a case where an inter-frame prediction mode is enabled for a current node, determine a point number threshold according to a size parameter of the current node, wherein the point number threshold comprises one or more thresholds;
[0023] the first predicting unit is configured to determine occupancy information of a prediction sub-node corresponding to a current sub-node to be encoded in the current node according to the point number of the prediction sub-node and the point number threshold, and determine a target entropy encoding parameter set of the current sub-node according to the occupancy information of the prediction sub-node.
[0024] The first determining unit is configured to determine inter-frame context information of the current sub-node according to the occupancy information of the already encoded upper nodes of the current sub-node and the occupancy information of the predicted sub-node, and determine the target entropy coding parameter of the current sub-node from the target entropy coding parameter set according to the inter-frame context information of the current sub-node.
[0025] The encoding unit is configured to entropy encode the occupancy information of the current sub-node according to the target entropy coding parameter, and write the obtained encoded bits into a bitstream.
[0026] In a fourth aspect, an embodiment of the present application provides a point cloud encoder, including a first memory and a first processor; wherein,
[0027] The first memory is configured to store a computer program capable of running on the first processor.
[0028] The first processor is configured to execute the method in the second aspect when running the computer program.
[0029] In a fifth aspect, an embodiment of the present application provides a point cloud decoder, including a second determining unit, a second predicting unit and a decoding unit; wherein,
[0030] The second determining unit is configured to determine a point number threshold according to a size parameter of a current node in a case where the current node enables an inter-frame prediction mode, wherein the point number threshold includes one or more threshold values.
[0031] The second predicting unit is configured to determine occupancy information of a predicted sub-node according to a point number of the predicted sub-node corresponding to a current sub-node to be decoded in the current node and the point number threshold.
[0032] The second determining unit is configured to determine a target entropy decoding parameter set of the current sub-node according to the occupancy information of the predicted sub-node, determine inter-frame context information of the current sub-node according to the occupancy information of the already decoded upper nodes of the current sub-node and the occupancy information of the predicted sub-node, and determine the target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set according to the inter-frame context information of the current sub-node.
[0033] The decoding unit is configured to entropy decode the bitstream according to the target entropy decoding parameter to determine the occupancy information of the current sub-node.
[0034] In a sixth aspect, an embodiment of the present application provides a point cloud decoder, including a second memory and a second processor; wherein,
[0035] a second memory for storing a computer program capable of running on the second processor;
[0036] a second processor for executing the method as claimed in the first aspect when running the computer program.
[0037] In a seventh aspect, an embodiment of the present application provides a computer readable storage medium storing a code stream generated by the encoding method as described.
[0038] In an eighth aspect, an embodiment of the present application provides a computer readable storage medium storing a computer program, which, when executed, implements the method as claimed in the first aspect, or implements the method as claimed in the second aspect.
[0039] The embodiments of the present application provide a coding method, a point cloud encoder, a point cloud decoder and a storage medium. At the encoding end or the decoding end, the number threshold of points is determined according to the size parameter of a current node, the occupancy information of a prediction sub-node is determined, the inter-frame context information of the current sub-node is constructed according to the occupancy information of the prediction sub-node, the target entropy coding / decoding parameter is determined from a target entropy coding / decoding parameter set according to the inter-frame context information, and the occupancy information of the current sub-node is entropy coded / decoded according to the target entropy coding / decoding parameter. In this way, when the point cloud inter-frame prediction is performed, the appropriate number threshold of points is determined according to the size of the current node, the occupancy of the prediction sub-node is reasonably distinguished, the best entropy coding / decoding parameter set is selected for the current sub-node, the best entropy coding / decoding parameter is further selected according to the inter-frame context information for coding and decoding, the code rate is reduced, and the coding efficiency is improved. BRIEF DESCRIPTION OF DRAWINGS
[0040] FIG. 1 is a schematic diagram of a network architecture of a point cloud coding;
[0041] FIG. 2 is a schematic diagram of a constituent framework of a G-PCC encoder;
[0042] FIG. 3 is a schematic diagram of a constituent framework of a G-PCC decoder;
[0043] FIG. 4 is a schematic diagram of an implementation framework of an OBUF technology;
[0044] FIG. 5 is a schematic diagram of an application implementation process of an OBUF technology;
[0045] FIG. 6 is a schematic diagram of dynamically adjusting the priority of a context;
[0046] FIG. 7 is a schematic diagram of a scanning order of sub-nodes in a current node;
[0047] FIG. 8 is a schematic diagram of a construction process of inter-frame context information;
[0048] Fig. 9 is a schematic diagram of an octree geometry coding process based on inter prediction;
[0049] Fig. 10 is a schematic diagram of an intra-inter entropy coding process based on OBUF technology;
[0050] Fig. 11 is a schematic diagram of a motion prediction process based on prediction unit (PU);
[0051] Fig. 12 is a schematic diagram of a decoding method according to an embodiment of the present application;
[0052] Fig. 13 is a schematic diagram of distribution of sub-neighbor nodes and coplanar parent neighbor nodes of a sub-node 0;
[0053] Fig. 14 is a schematic diagram of distribution order of 20 parent neighbor nodes of a sub-node 0;
[0054] Fig. 15 is a schematic diagram of a decoding method according to an embodiment of the present application;
[0055] Fig. 16 is a schematic diagram of an encoding method according to an embodiment of the present application;
[0056] Fig. 17 is a schematic diagram of an encoding method according to an embodiment of the present application;
[0057] Fig. 18 is a schematic diagram of a point cloud encoder according to an embodiment of the present application;
[0058] Fig. 19 is a schematic diagram of a specific hardware structure of a point cloud encoder according to an embodiment of the present application;
[0059] Fig. 20 is a schematic diagram of a point cloud decoder according to an embodiment of the present application;
[0060] Fig. 21 is a schematic diagram of a specific hardware structure of a point cloud decoder according to an embodiment of the present application;
[0061] Fig. 22 is a schematic diagram of a coding system according to an embodiment of the present application. DETAILED DESCRIPTION
[0062] In order to enable a person skilled in the art to better understand the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings, which are only used for reference and are not intended to limit the embodiments of the present application.
[0063] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present application belongs. The terminology used in the present application is only for the purpose of describing the embodiments of the present application and is not intended to limit the present application.
[0064] In the following description, reference is made to "some embodiments", which describe a subset of all possible embodiments, but it is understood that "some embodiments" can be the same subset or a different subset of all possible embodiments, and can be combined with each other, without conflict, if possible. It should also be noted that the terms "first\second\third" in the embodiments of the present application are only used to distinguish similar objects, and do not represent a specific order of the objects. Understandably, "first\second\third" can be interchanged with a specific order or sequence, if allowed, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0065] Before the embodiments of the present application are further described in detail, the terms and phrases involved in the embodiments of the present application are explained, which are applicable to the following explanations:
[0066] Point Cloud Compression (PCC);
[0067] Geometry-based Point Cloud Compression (G-PCC or GPCC);
[0068] Video-based Point Cloud Compression (V-PCC or VPCC);
[0069] Octree;
[0070] Triangle soup (Trisoup);
[0071] K Nearest Neighbor (KNN);
[0072] Level of Detail (LOD);
[0073] Predicting Transform;
[0074] Lifting Transform;
[0075] Largest Prediction Unit (LPU);
[0076] Prediction Unit (PU);
[0077] Region Adaptive Hierarchal Transform (RAHT);
[0078] Context-based Adaptive Binary Arithmetic Coding (CABAC).
[0079] Point cloud is a three-dimensional representation of the surface of an object, which can be collected by photoelectric radar, laser radar, laser scanner, multi-view camera and other collection devices.
[0080] Point cloud refers to a collection of massive three-dimensional points. The points in the point cloud can include position information and attribute information of the points. For example, the position information of the points can be three-dimensional coordinate information of the points. The position information of the points can also be referred to as geometric information of the points. For example, the attribute information of the points can include color information and / or reflectivity, etc. For example, the color information can be information on any color space. For example, the color information can be RGB information. Wherein, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, the color information can be luminance chrominance (YCbCr, YUV) information. Wherein, Y represents brightness, Cb(U) represents blue chrominance, and Cr(V) represents red chrominance.
[0081] According to the laser measurement principle, the points in the point cloud can include three-dimensional coordinate information and laser reflectance of the points. For another example, according to the photogrammetry principle, the points in the point cloud can include three-dimensional coordinate information and color information of the points. For another example, the point cloud is obtained by combining the laser measurement and photogrammetry principles, and the points in the point cloud can include three-dimensional coordinate information, laser reflectance and color information of the points.
[0082] The point cloud can be divided into the following categories according to the acquisition method:
[0083] The first type of static point cloud: the object is static, and the device for acquiring the point cloud is also static.
[0084] The second type of dynamic point cloud: the object is moving, but the device for acquiring the point cloud is static.
[0085] The third type of dynamic point cloud: the device for acquiring the point cloud is moving.
[0086] For example, according to the purpose of the point cloud, it can be divided into two categories:
[0087] Category 1: Machine perception point cloud, which can be used in autonomous navigation system, real-time inspection system, geographic information system, visual sorting robot, disaster relief robot, etc.
[0088] Category 2: Human eye perception point cloud, which can be used in digital cultural heritage, free-view broadcast, three-dimensional immersive communication, three-dimensional immersive interaction, etc.
[0089] Since the point cloud is a collection of massive points, storing the point cloud will not only consume a large amount of memory, but also be not conducive to transmission, and there is no such large bandwidth to support the transmission of the point cloud without compression in the network layer, therefore, the point cloud needs to be compressed.
[0090] So far, the point cloud coding framework that can compress the point cloud can be the G-PCC coding and decoding framework provided by the Moving Picture Experts Group (MPEG) or the V-PCC coding and decoding framework, or the AVS-PCC coding and decoding framework provided by the Audio Video Standard (AVS). Among them, the G-PCC coding and decoding framework can be used for compressing the first type of static point cloud and the third type of dynamically acquired point cloud, and the V-PCC coding and decoding framework can be used for compressing the second type of dynamic point cloud. In the embodiments of the present application, the G-PCC coding and decoding framework is mainly described.
[0091] The embodiments of the present application provide a network architecture of a point cloud coding and decoding system including a decoding method and an encoding method, and FIG. 1 is a schematic diagram of a network architecture of a point cloud coding and decoding provided by the embodiments of the present application. As shown in FIG. 1, the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. The electronic devices in the implementation process can be various types of devices with point cloud coding and decoding functions, for example, the electronic devices can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital telephone, a video telephone, a television, a sensor device, a server, etc., and the embodiments of the present application are not limited. Among them, the decoder or the encoder in the embodiments of the present application can be the above-mentioned electronic devices.
[0092] Among them, the electronic devices in the embodiments of the present application have point cloud coding and decoding functions, and generally include a point cloud encoder (i.e. an encoder) and a point cloud decoder (i.e. a decoder).
[0093] The following describes the related technologies taking the G-PCC coding framework as an example. It can be understood that in the point cloud G-PCC coding framework, for the point cloud data to be encoded, the point cloud data is first divided into multiple slices through slice division. In each slice, the geometry information and attribute information of the point cloud are encoded separately.
[0094] FIG. 2 shows a schematic diagram of a composition framework of a G-PCC encoder. As shown in FIG. 2, in the geometry coding process, coordinate conversion is performed on the geometry information, so that all the point clouds are contained in a bounding box, and then quantization is performed, which mainly plays a role of scaling. Due to the quantization rounding, the geometry information of a part of the point clouds is the same, and then it is determined based on parameters whether to remove the duplicate points. This process of quantization and removal of duplicate points is also called voxelization process. Then, octree division or prediction tree construction is performed on the bounding box. In this process, the points in the divided leaf nodes are entropy encoded to generate binary geometry bitstreams, or the vertices generated by the division are entropy encoded (surface fitting based on the vertices) to generate binary geometry bitstreams. In the attribute coding process, after the geometry coding is completed and the geometry information is reconstructed, color conversion is first performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the reconstructed geometry information is used to recolor the point cloud, so that the unencoded attribute information corresponds to the reconstructed geometry information. The attribute coding is mainly for color information. In the color information coding process, there are mainly two transformation methods, one is distance-based lifting transformation depending on LOD division, and the other is direct RAHT transformation. Both of the two methods convert the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients, and then entropy encode the quantized coefficients to generate binary attribute bitstreams.
[0095] FIG. 3 shows a schematic diagram of a composition framework of a G-PCC decoder. As shown in FIG. 3, for the obtained binary bitstream, the geometry bitstream and the attribute bitstream in the binary bitstream are separately decoded. When decoding the geometry bitstream, entropy decoding is first performed, and then one of the following methods is selected: octree division-reconstruction surface estimation or prediction tree construction. After geometry reconstruction-coordinate inverse transformation, the geometry information of the point cloud can be obtained. When decoding the attribute bitstream, entropy decoding and inverse quantization are first performed, and then one of the following methods is selected: RAHT transformation or LOD division-lifting transformation. Finally, color inverse transformation is performed to obtain the attribute information of the point cloud; based on the geometry information and the attribute information, the point cloud data to be encoded can be restored.
[0096] It should be noted that, as shown in FIG. 2 or FIG. 3, the current geometry coding of G-PCC can be divided into octree-based geometry coding, Trisoup-based geometry coding and prediction tree-based geometry coding, as follows:
[0097] (a) Octree-based geometry coding:
[0098] At the encoding end, first, the coordinate transformation is performed on the geometry information, so that all the point clouds are contained in a bounding box (Bounding Box) determined by two extreme points (0, 0, 0) and (2d, 2d, 2d), and then voxelization is performed, i.e., quantization, rounding, and removal of duplicate points (determined according to parameters). Then, the non-empty (containing points in the point cloud) sub-cubes in the Bounding Box are continuously divided according to the breadth-first traversal order; at the same octree depth, a node will be divided into 8 sub-nodes, until the leaf node obtained by the division is a 1x1x1 unit cube, and the process stops. Whether the sub-cube has a point (1 indicates occupation, and 0 indicates no occupation) is represented by 8-bit binary code, which is called occupancy code. The occupancy code of each node is encoded to generate a binary code stream.
[0099] At the decoding end, the occupancy code of each node is continuously parsed according to the breadth-first traversal order, and the nodes are continuously divided in sequence until the division of a 1x1x1 unit cube is stopped, and the number of points contained in each leaf node is parsed to finally recover the geometry reconstruction point cloud information.
[0100] (b) Trisoup-based geometry coding:
[0101] At the encoding end, first, the octree is divided, which is different from the geometry information coding based on the octree structure. Instead of dividing the point cloud into bottom-level leaf nodes with a side length of 1x1x1, this method divides leaf nodes with a specified side length. Then, the surface information formed by the voxels in the node is represented by a series of triangle meshes (Triangle Mesh). In GPCC, the size of the block (Block) in which the triangular patch is located can be represented by the parameter Trisoup node size. When Trisoup node size is greater than 0, the voxel set in the node is represented by a geometric patch. The at most twelve intersection points generated by the twelve edges of the Block and the geometric patch are called vertices (Vertex). The coordinates of each Vertex of each Block are sequentially encoded to generate a binary code stream.
[0102] At the decoding end, in order to decode the geometric coordinates of the point cloud from the triangular patches of the nodes, it is necessary to check whether each voxel in the node cube intersects with the triangular patch, which is called triangular rasterization, and 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 test, that is, whether each unit vector intersects with the triangular patch, if it intersects, the intersection point is calculated and the decoded cube is output, and the number of points generated in the decoder is determined by the grid distance d.
[0103] (c) Geometry coding based on prediction tree:
[0104] At the encoding end, the input point cloud is first sorted, and the currently used sorting methods include unordered, Morton order, azimuth angle order and radial distance order. At the encoding end, two different ways are used to establish a prediction tree structure, including a high-latency slow mode (KD-Tree) and a low-latency fast mode (using laser radar calibration information, each point is divided into different lasers (Laser), and a prediction structure is established according to different lasers). Next, based on the structure of the prediction tree, each node in the prediction tree is traversed, and the geometric position information of the node is predicted by selecting different prediction modes to obtain prediction residuals and quantize the prediction residuals using a quantization parameter. Finally, by continuously iterating, the prediction residuals of the prediction tree node position information, the prediction tree structure and the quantization parameter are encoded to generate a binary code stream.
[0105] At the decoding end, the decoding end continuously parses the code stream to reconstruct the prediction tree structure, and then parses the geometric position prediction residual information and the quantization parameter of each prediction node to obtain the reconstructed geometric position information of each node by dequantizing the prediction residual, and finally completes the geometric reconstruction at the decoding end.
[0106] It should be further pointed out that in a possible implementation manner of the related art, the current encoder used by G-PCC is CABAC (Context-based Adaptive Binary Arithmetic Coding), which is a widely used entropy encoder for video coding. Like traditional arithmetic coding, CABAC uses a recursive interval division method for coding representation. Since CABAC is adaptive coding, that is, the probability model is adjusted with the appearance of the symbol, the statistical characteristics of the source are fully considered, and the coding efficiency is greatly improved. The CABAC encoder can be divided into three parts: binarization, context modeling and binary arithmetic coding; specifically as follows:
[0107] ①Binarization: Binarization is the process of mapping a given non-binary syntax element into a binary sequence, i.e. a bin string. If the input syntax element is already a binary syntax element, the binarization process is skipped and the data is directly sent to the next step.
[0108] ②Context Modeling: The encoder assigns an appropriate probability model to each input bin based on the values of previously encoded syntax elements or bins. This process is called context modeling.
[0109] ③Binary Arithmetic Coding: There are two modes to choose from, regular coding mode and bypass coding mode. In regular coding mode, the bin of a syntax element and its assigned probability model are sent to the binary arithmetic coder for encoding and the context model is updated based on the bin value, which is called adaptation in encoding. The other mode is bypass coding mode, which does not assign a specific probability model to each bin. The input bin is directly encoded by a simple bypass coder, which can speed up the encoding and decoding process.
[0110] 1. Optimal Binarization with Update on the Fly (OBUF) technique
[0111] The OBUF technique is to quickly and accurately map a series of discrete states of the context node's occupancy information to a fixed number of adaptive entropy encoders (i.e. probability models) through a mapping relationship look-up table (LUT). In this way, the context information is no longer one-to-one corresponding to the probability model. The fixed number of probability models is updated with the current encoded syntax element, and the mapping relationship is updated after each encoding is completed.
[0112] Figure 4 is a schematic diagram of the implementation process of an OBUF technique, as shown in Figure 4, the mapped encoder index value is [0, 1, …, N-1], and the symbol s is the occupancy bit to be encoded and decoded, taking the value of 1 or 0.
[0113] 1) The OBUF technique can be divided into the following three steps:
[0114] (1) Get the context information D of the symbol to be encoded
[0115] The context information D of the symbol to be encoded is the input information of OBUF, which is composed of the neighbor node information that has been encoded in the space and the position of the child node relative to the parent node.
[0116] (2) Get the binary encoder index i corresponding to the context information D based on the mapping relationship
[0117] Before all the symbols to be encoded are encoded, each state is mapped to N encoders by looking up the table. For example, each context information D is mapped to one of the 32 encoders (i.e. i takes values [0, 1, …, 31]), such as the binary entropy encoder i in FIG. 4.
[0118] (3) Entropy encode the symbol S using the binary encoder i
[0119] The symbol S to be encoded is sent to the binary encoder corresponding to the context information D corresponding to the binary encoder to perform entropy encoding.
[0120] 2) Application example of OBUF technology
[0121] As shown in FIG. 5, assuming the placeholder state b0 of the subnode 0 of the eight subnodes of the current node to be encoded, the value of b0 is 0 or 1, 0 represents not occupying, and 1 represents occupying. First, the context information (State) of the subnode b0 to be encoded is determined, i.e. the state of whether the encoded node occupies, which is composed of the neighbor nodes, parent node and adjacent nodes of the current subnode to be encoded, which are called context nodes. Each context node has two states of occupying and not occupying, and the occupying states of all context nodes constitute the context information. Then, the binary encoder coderi corresponding to the context information (State) is obtained based on the mapping relationship, and finally, the binary encoder coderi is used to entropy encode the symbol b0 to be encoded.
[0122] 2. Dynamic OBUF technology
[0123] Compared with the OBUF technology, the dynamic OBUF technology no longer uses a fixed number of contexts during the encoding process, but dynamically adjusts the number of contexts.
[0124] The dynamic OBUF technology is divided into two stages: 1) dynamically determining the context nodes and context information; 2) mapping the context information to a group of binary encoders with fewer numbers (corresponding to the OBUF technology).
[0125] The context construction and dynamic adjustment are introduced below. In the dynamic OBUF technology, the context information is divided into two parts: main information and secondary information. Whether part of the secondary information is dynamically adjusted as context information, the context information composed of the main information and the selected secondary information is used as the context information of OBUF.
[0126] 1) Context information construction process:
[0127] The context nodes of the subnode to be encoded include the following categories:
[0128] (1) the coded sibling node of the current node;
[0129] (2) the 6 coplanar parent neighbor nodes of the current node;
[0130] (3) the other 20 co-edge, co-point parent neighbor nodes of the current node.
[0131] It should be noted that the scanning order of these context nodes from front to back is: the coded sibling node of the current child node > the coded coplanar child neighbor node of the current child node > the coded co-edge child neighbor node of the current child node > the coded co-point child neighbor node of the current child node > the coded other child neighbor node of the current child node > the coded coplanar parent neighbor node of the current child node > the coded co-edge parent neighbor node of the current child node > the other 20 coded parent neighbor nodes. According to the scanning order, the context information is constructed for the to-be-coded child node, the first N bits of the context information are the main information, and the last M bits are the secondary information, and M is dynamically adjusted in the coding process.
[0132] FIG. 6 shows a schematic diagram of dynamically adjusting the priority of the context. As shown in FIG. 6, the black-filled child node is the current child node, and 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.
[0133] It should also be noted that when constructing the context information, different context models can be constructed for the to-be-coded child nodes located in different positions in the current node according to the preset scanning order. Exemplarily, as shown in FIG. 7, a scanning order of the child nodes in the current node is shown here. The scanning order can be to construct different context models in sequence according to the child node 0, the child node 1, the child node 2, the child node 3, the child node 4, the child node 5, the child node 6 and the child node 7 in FIG. 7. In addition, as the number of coded child nodes in the current node increases, the effective context information that can be referred to by the uncoded child nodes will also change, and there are different local sparsity determination methods for the eight child nodes of the current node, so each child node has its own context bins.
[0134] 2) Dynamic adjustment process
[0135] Each context node can be occupied or unoccupied, i.e. 0, 1 state. Context information can be represented by N+M binary bits, where N is the primary information, M is the secondary information. With the encoding process, the number of times each context information is used is recorded, when the number of times a certain context information is used is greater than the threshold T, a context node is added in the scanning order, i.e. the context information is subdivided by introducing a new context node. The subsequent to-be-encoded child node is encoded using the updated context information set.
[0136] 3. G-PCC dense point cloud inter-frame coding
[0137] 1) Octree-based geometry coding
[0138] In G-PCC, both the intra-frame and inter-frame coding of octree geometry information use 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 joint of the intra-frame context information (Intra State) of the current to-be-encoded symbol and the prediction information of the current to-be-encoded node obtained by referring to the frame. The specific method is to add whether the current node obtained by referring to the frame is occupied and whether it is strongly occupied to the intra-frame context information, for example, to the intra-frame context primary information (Intra_ctx1), i.e. Inter_ctx1 = Intra_ctx1 << 2 | predL << 1 | pred. Here, predL represents whether the current child node is predicted to be strongly occupied, and pred represents whether the current child node is predicted to be occupied. FIG. 8 is a schematic diagram of a context construction process of inter-frame context information.
[0139] 2) Octree-based geometry coding based on inter-frame prediction
[0140] FIG. 9 is a schematic diagram of an octree-based geometry coding process based on inter-frame prediction, as shown in FIG. 9, “isSparse” refers to the local sparsity of the to-be-encoded child node, which is determined by the occupancy of the coded neighbor nodes of the to-be-encoded child node. According to the value (0 or 1) of isSparse, it is divided into a sparse context state set and a non-sparse context state set. Further, according to the value (0 or 1) of isInter2, it is divided into four sets of 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.
[0141] isInter2 = isInter && predOcc, i.e. the value of isInter2 is determined by isInter and predOcc, which is a flag indicating whether the prediction node is occupied or not. Specifically, predOcc is set to 1 if at least one child node bPi in the prediction node is occupied; otherwise, predOcc is set to 0. In addition, the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which indicates whether the inter prediction is enabled for the upper layer. If the inter prediction is enabled, it is called P-frame, and isInter is set to 1; otherwise, it is called I-frame, and isInter is set to 0.
[0142] According to the occupation of the prediction node, the information of inter prediction (isInter2 = 1) is classified into the following categories:
[0143] a) Pred0: when the prediction child node i is empty, the child node i is predicted to be unoccupied bPi = 0.
[0144] b) Predl: when the prediction child node i is non-empty, the child node i is predicted to be occupied bPi = 1; at this time, it is further divided into two cases according to the number of points contained in the node:
[0145] i. predL = 1: when the prediction child node i is non-empty and the number of points (points) in it exceeds the threshold th, the child node i is strongly occupied.
[0146] ii. predL = 0: when the prediction child node i is non-empty and the number of points (points) in it does not exceed the threshold th, the child node i is not strongly occupied.
[0147] FIG. 10 is a schematic diagram of an intra-inter entropy coding process based on OBUF technology. First, the value of isSparse is determined according to the intra context information (Intra state) of the to-be-coded sub-node frame. According to the value of isSparse (0 or 1), it is divided into two sets of sparse context state and non-sparse context state. Second, the value of isInter2 is determined by the inter-enabled flag and the prediction node occupancy. According to the value of isInter2 (0 or 1), it is further divided into an intra context state set and an inter context state set. That is, according to the value of isSparse and the value of isInter2, the context state is divided into four sets, including an intra non-sparse context state (IntraNSparse state) set, an inter non-sparse context state (InterNSparse state) set, an intra sparse context state (IntraSparse state) set, and an inter sparse context state (InterSparse state) set. Then, according to the corresponding encoder group (IntraNSparse Coder, InterNSparse Coder, IntraSparse Coder, InterSparse Coder) of each set, the current context state is mapped to a binary encoder. Finally, based on the mapped encoder coderi, the probability of the encoder coderi is entropy coded for the to-be-coded symbol b0, and the probability of the encoder coderi is updated according to the b0 symbol.
[0148] 3) Local motion estimation
[0149] For non-radar dense point clouds, G-PCC only performs local motion estimation on them. The local motion estimation is based on block (prediction unit) inter prediction. 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. FIG. 11 is a schematic diagram of a motion prediction process based on a prediction unit PU. The specific process is as follows:
[0150] a) When the size of the current layer node (currNode[depth].size) is greater than 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 is directly used as the inter prediction context (i.e., the occupancy information of the reference point cloud without motion compensation).
[0151] b) When the current node size is LPUsize, it is determined to start local motion, and then a recursive prediction unit structure (PU_tree) is written. Each node can continue to be divided downward using the motion vector of the sub-node PU to perform motion compensation on the reference point cloud, or directly use the motion vector of the un-divided current node to perform motion compensation on the reference point cloud. The PU_tree records a flag bit (split_flag) indicating whether to be divided downward, a flag (isCompensated) indicating whether to be compensated at the current layer, and a 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, according to the flag indicating whether to be compensated, it is determined to select the occupancy information of the reference point cloud or the occupancy information of the compensated point cloud as the inter-frame context.
[0152] One prediction unit PU includes the following parameters:
[0153] a) popul_flags: PU occupancy
[0154] b) split_flags: downward division flag
[0155] c) MVs: motion vector set
[0156] d) isCompensated: if 1, it indicates that the reference point cloud has been motion compensated; if 0, it indicates that the reference point cloud has not been compensated;
[0157] e) hasMotion: used to identify whether the node contains motion information. If it contains motion information, it is 1, otherwise it is 0.
[0158] In the above technology, the inter-frame sparse context and the inter-frame non-sparse context are entropy encoded using 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 encoding efficiency. When predicting the occupancy of a node, regardless of the size of the node, the threshold value th used is a fixed value, which is not reasonable for predicting nodes of different sizes.
[0159] Based on this, the embodiment of the present application provides a coding method. When performing inter-frame prediction of a point cloud, a suitable point number threshold value is determined according to the size of the current node, so as to reasonably distinguish the occupancy of the prediction sub-node, select the best entropy encoding / decoding parameter set for the current sub-node, and further select the best entropy encoding / decoding parameter for coding according to the inter-frame context information, thereby reducing the code rate and improving the coding efficiency.
[0160] For the convenience of understanding the technical solutions of the embodiments of the present application, the technical solutions of the present application are described in detail below through specific embodiments. The above related technologies can be combined with the technical solutions of the embodiments of the present application as optional solutions, which all belong to the protection scope of the embodiments of the present application. The embodiments of the present application include at least part of the following contents.
[0161] In an embodiment of the present application, referring to FIG. 12, a flowchart of a decoding method provided by the embodiments of the present application is shown.
[0162] As shown in FIG. 12, the method can include:
[0163] S101: In the case that the inter-frame prediction mode is enabled at the current node, determining a point number threshold according to a size parameter of the current node, wherein the point number threshold includes one or more threshold values.
[0164] It should be noted that the decoding method of the embodiments of the present application is applied to a point cloud decoder. That is, the decoding method can specifically refer to a point cloud decoding method, or a point cloud entropy decoding method. More specifically, the embodiments of the present application provide a point cloud inter-frame decoding method based on context mapping. When performing point cloud inter-frame prediction, a suitable point number threshold is determined according to the size of the current node, so as to reasonably divide the occupancy of the prediction node, select the best entropy decoding parameter set for the current sub-node, and further select the best entropy decoding parameter for decoding according to the context information, thereby reducing the code rate and improving the decoding efficiency.
[0165] In some embodiments, the method further includes: determining whether the inter-frame prediction mode is enabled at the current node according to the value of the first syntax element; in the case that the inter-frame prediction mode is enabled at the current node, determining the occupancy information of the prediction node of the current node in the reference frame; and determining whether the inter-frame prediction mode is enabled at the current node according to the occupancy information of the prediction node.
[0166] Whether the inter-frame prediction mode is enabled at the current node is related to the value of the first syntax element and the occupancy information of the prediction node. The first syntax element serves as an enabling identifier of the 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 inter-frame prediction mode is enabled at the current node; and the value of the first syntax element is a second numerical value, which determines that the inter-frame prediction mode is not enabled at the current node. Illustratively, the first syntax element includes at least a frame-level syntax element, the value of the first syntax element is 1, which allows the inter-frame prediction to be enabled; and the value of the first syntax element is 0, which does not allow the inter-frame prediction to be enabled.
[0167] The prediction node is a homonym of the current node in the reference frame. The current node is determined to start the inter-frame prediction mode according to the occupancy information of the prediction node. When the occupancy information of the prediction node indicates occupancy, it is determined that the current node uses the inter-frame prediction mode; when the occupancy information of the prediction node indicates non-occupancy, it is determined that the current node uses the intra-frame prediction mode. For example, the value of the occupancy information is 0, indicating non-occupancy, and 1, indicating occupancy. The occupancy of the prediction node is related to the occupancy of the child nodes. In some embodiments, the method further comprises: determining the occupancy information of a plurality of prediction child nodes in the prediction node; when the occupancy information of at least one prediction child node in the prediction node indicates occupancy, it is determined that the occupancy information of the prediction node indicates occupancy; otherwise, it is determined that the occupancy information of the prediction node indicates non-occupancy. That is, if at least one child node in the prediction node is occupied, the value of the occupancy information is set to 1; otherwise, the value of the occupancy information is set to 0.
[0168] In some embodiments, the prediction node comprises 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.
[0169] As shown in FIG. 11, the occupancy information of the current node is predicted by the local motion estimation and motion compensation of the reference frame, to obtain the occupancy information of the first prediction node, and the occupancy information of the current node is predicted by the reference frame without motion compensation (i.e., the original reference frame), to obtain the occupancy information of the second prediction node.
[0170] In some embodiments, when the occupancy information of the first prediction node indicates occupancy or the occupancy information of the second prediction node indicates occupancy, it is determined that the current node uses the inter-frame prediction mode; when the occupancy information of the first prediction node indicates non-occupancy and the occupancy information of the second prediction node indicates non-occupancy, it is determined that the current node uses the intra-frame prediction mode. The embodiment of the present application uses the non-compensated second prediction node to determine the inter-frame prediction mode, fully utilizes the non-compensated inter-frame information, and can save the code rate and improve the compression efficiency under the same coding quality.
[0171] In some embodiments, when the occupancy information of the first prediction node indicates occupancy and the occupancy information of the second prediction node indicates occupancy, it is determined that the current node uses the inter-frame prediction mode; when the occupancy information of the first prediction node indicates non-occupancy or the occupancy information of the second prediction node indicates non-occupancy, it is determined that the current node uses the intra-frame prediction mode.
[0172] In some embodiments, when the occupancy information of the first prediction node indicates occupancy, it is determined that the current node uses the inter-frame prediction mode; when the occupancy information of the first prediction node indicates non-occupancy, it is determined that the current node uses the intra-frame prediction mode.
[0173] In some embodiments, the occupancy information of the second prediction node is represented as occupied, it is determined that the current node enables the inter prediction mode; and the occupancy information of the second prediction node is represented as unoccupied, it is determined that the current node enables the intra prediction mode.
[0174] The size parameter of the current node is used to indicate the size of the current node. For example, 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.
[0175] The point threshold is used to divide the point number of the prediction node into different point number ranges, and each point number range corresponds to an occupancy condition. For example, when the point threshold includes N thresholds, N+1 point number ranges are obtained, thereby corresponding to N+1 occupancy conditions. For example, the point threshold includes 1, 2, 3, or 4, etc.
[0176] In some embodiments, the point threshold corresponding to the current node is determined according to the size parameter of the current node, which is used to indicate whether to adjust the preset point threshold. For example, in the case of determining not to adjust the preset first value according to the size parameter, the first value is taken as the first threshold in the point threshold; or in the case of determining to adjust the first value according to the size parameter, a second value obtained according to the size parameter is taken as the first threshold in the point threshold.
[0177] In some embodiments, the method can further include: converting the size parameter according to a first conversion factor corresponding to the first value to obtain a second value; determining not to adjust the first value in the case that the first value is greater than or equal to the second value; and determining to adjust the first value in the case that the first value is less than the second value.
[0178] It should be noted that the first value can be any one of one or more values preset for the point threshold, and the first value corresponds to a first conversion factor. The first conversion factor is used to convert the size parameter into a second value, so as to 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.
[0179] In some embodiments, the first conversion factor is the right shift number of the size parameter, and different preset values correspond to different right shift numbers. For example, the determination method of the point threshold is as follows: th1 = max(0, Nodesize >> d1); th2 = max(2, Nodesize >> d2); th3 = max(8, Nodesize >> d3).
[0180] wherein th1 is a first threshold value, d1 is a first right shift number, th2 is a second threshold value, d2 is a second right shift number, th3 is a third threshold value, d3 is a third right shift number, d1 is greater than d2, d2 is greater than d3, and Nodesize represents a current node size.
[0181] In some embodiments, a node number threshold corresponding to the current node is determined according to a size parameter of the current node and a preset mapping relationship. For example, a first size parameter corresponds to a first node number threshold, a second size parameter corresponds to a second node number threshold, and a third size parameter corresponds to a third node number threshold. At least part of the different node number thresholds are different.
[0182] S102: Determine the occupancy information of the prediction node according to the node number of the prediction node corresponding to the current subnode to be decoded in the current node and the node number threshold.
[0183] It should be noted that the current subnode is any subnode in the current node to be decoded. As shown in FIG. 7, the current node includes eight subnodes, and the scanning order of the subnodes is subnode 0, subnode 1, subnode 2, subnode 3, subnode 4, subnode 5, subnode 6, and subnode 7.
[0184] The prediction node is a same-position subnode of the current subnode in the prediction node. The occupancy information of the prediction node is determined according to the node number of the prediction node and the node number threshold. The occupancy information of the prediction node is used to indicate one or more occupancy states, for example, the occupancy information can represent occupancy or non-occupancy, and the occupancy information can also represent non-occupancy or multiple occupancy intensities. For example, the prediction node includes a motion-compensated prediction node and / or a non-motion-compensated prediction node.
[0185] In some embodiments, the occupancy information of the prediction node is determined according to the node number of the prediction node corresponding to the current subnode to be decoded in the current node and the node number threshold, including: determining a plurality of node number ranges and a first mapping relationship of the occupancy information according to one or more thresholds in the node number threshold; and determining the occupancy information of the prediction node according to the first mapping relationship and the node number of the prediction node, different node number ranges corresponding to different occupancy information.
[0186] For example, the node number threshold includes one threshold, and the first mapping relationship includes: if the node number of the prediction node is less than or equal to the first threshold value, the occupancy information of the prediction node is determined as non-occupancy; and if the node number of the prediction node is greater than the first threshold value, the occupancy information of the prediction node is determined as occupancy.
[0187] The point threshold value includes two or more threshold values, and the first mapping relationship includes: when the point number of the predicted child node is less than or equal to a first threshold value, it is determined that the occupancy information of the predicted child node is not occupied; and when the point number of the predicted child node is greater than the first threshold value, a plurality of occupancy intensities are further determined according to the point number of the predicted child node and other threshold values.
[0188] In some embodiments, the first mapping relationship includes: when the point number of the predicted child node is less than or equal to a first threshold value, it is determined that the value of the occupancy information of the predicted child node is a third numerical value, which is used to represent not occupied; when the point number of the predicted child node is greater than the first threshold value and less than or equal to a second threshold value, it is determined that the value of the occupancy information of the predicted child node is a fourth numerical value, which represents a first occupancy intensity; when the point number of the predicted child node is greater than the second threshold value and less than or equal to a third threshold value, it is determined that the value of the occupancy information of the predicted child node is a fifth numerical value, which represents a second occupancy intensity; and when the point number of the predicted child node is greater than the third threshold value, it is determined that the value of the occupancy information of the predicted child node is a sixth numerical value, which represents a third occupancy intensity. Exemplarily, the third numerical value is 0, the fourth numerical value is 1, the fifth numerical value is 2, and the sixth numerical value is 3.
[0189] It should be noted that the occupancy intensity increases with the increase of the point number, that is, the first occupancy intensity is less than the second occupancy intensity, and the second occupancy intensity is less than the third occupancy intensity. In short, the first occupancy intensity can be understood as occupied (or weakly occupied), the second occupancy intensity can be understood as strongly occupied, and the third occupancy intensity can be understood as very strongly occupied.
[0190] In some embodiments, when the point number of the predicted child node is less than or equal to a first threshold value, the first value of the occupancy information is determined to be 0; when the point number of the predicted child node is greater than the first threshold value, the first value of the occupancy information is determined to be 1; when the point number of the predicted child node is less than or equal to a second threshold value, the second value of the occupancy information is determined to be 0; when the point number of the predicted child node is greater than the second threshold value, the second value of the occupancy information is determined to be 1; when the point number of the predicted child node is less than or equal to a third threshold value, the third value of the occupancy information is determined to be 0; and when the point number of the predicted child node is greater than the third threshold value, 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.
[0191] The determination method of the occupancy information of the predicted child node is as follows:
[0192] Wherein, bPi is the occupancy information of the predicted child node i, NodePoints[i] represents the point number in the predicted child node i, th jFor the j-th threshold, the threshold is related to the size of the node, if Nodesize represents the current node size, then th1 = max(0, Nodesize >> d1), th2 = max(2, Nodesize >> d2), th3 = max(8, Nodesize >> d3).
[0193] S103: determining a target entropy decoding parameter set of the current sub-node according to the occupancy information of the predicted sub-node;
[0194] The target entropy decoding parameter set includes a plurality of entropy decoding parameters, and the entropy decoding parameter is a parameter used when any kind of occupancy information of the sub-node is entropy decoded. In some embodiments, the entropy decoding parameter can be an arithmetic decoding parameter, and the occupancy information of the sub-node is adaptively arithmetic decoded according to the arithmetic decoding parameter. For example, the arithmetic decoding parameter can be a probability that the current sub-node occupies or does not occupy under the current context information
[0195] In some embodiments, the target entropy decoding parameter set of the current sub-node is determined according to a second mapping relationship between a plurality of occupancy information and the inter-frame entropy decoding parameter set, and the occupancy information of the predicted sub-node. The plurality of occupancy information specifically refers to two or more occupancy information, and different inter-frame entropy decoding parameter sets are configured for different occupancy information in advance, so that when the inter-frame prediction mode is enabled, the matching target entropy decoding parameter set is selected according to the actual inter-frame prediction information, and the decoding efficiency is improved.
[0196] In some embodiments, the occupancy information is used to represent non-occupancy and one or more occupancy states, and the second mapping relationship includes: the occupancy information of the predicted sub-node is non-occupancy, corresponding to a first inter-frame entropy decoding parameter set, and the occupancy information of the predicted sub-node is occupancy, corresponding to one or more inter-frame entropy decoding parameter sets.
[0197] In some embodiments, the occupancy information is used to represent non-occupancy, occupancy, strong occupancy or very strong occupancy, and the second mapping relationship includes: non-occupancy corresponds to a first inter-frame entropy decoding parameter set, occupancy corresponds to a second inter-frame entropy decoding parameter set, strong occupancy corresponds to a third inter-frame entropy decoding parameter set, and very strong occupancy corresponds to a fourth inter-frame entropy decoding parameter set.
[0198] That is, according to the occupancy of the prediction sub-node, a set of inter-frame entropy decoding parameters is assigned to the current sub-node, the first set of inter-frame entropy decoding parameters includes a plurality of entropy decoding parameters of the current sub-node in the case that the prediction sub-node does not occupy, the second set of inter-frame entropy decoding parameters includes a plurality of entropy decoding parameters of the current sub-node in the case that the prediction sub-node occupies, the third set of inter-frame entropy decoding parameters includes a plurality of entropy decoding parameters of the current sub-node in the case that the prediction sub-node strongly occupies, and the fourth set of inter-frame entropy decoding parameters includes a plurality of entropy decoding parameters of the current sub-node in the case that the prediction sub-node very strongly occupies. In the embodiment of the present application, for inter-frame prediction, the occupancy of the prediction sub-node is divided into four categories according to the prediction of the current sub-node as not occupying, occupying, strongly occupying and very strongly occupying, a matching set of entropy decoding parameters is configured for each category, the correlation between the inter-frame sparse context state and the non-sparse context state is fully utilized, and the inter-frame prediction accuracy is improved.
[0199] In some embodiments, the occupancy information of the motion-compensated prediction sub-node is used to determine the target set of entropy decoding parameters from the candidate set of inter-frame entropy decoding parameters. In the embodiment of the present application, when performing inter-frame prediction of the point cloud, a suitable point number threshold is determined according to the size of the current node, so as to reasonably distinguish the occupancy of the motion-compensated prediction sub-node, and then the best set of entropy decoding parameters is selected for the current sub-node according to the occupancy of the motion-compensated prediction sub-node.
[0200] In some embodiments, in the case that the current sub-node enables the inter-frame prediction mode, the target set of entropy decoding parameters is determined from the candidate set of inter-frame entropy decoding parameters, wherein the candidate set of inter-frame entropy decoding parameters includes one or more sets of inter-frame entropy decoding parameters; and in the case that the current sub-node enables the intra-frame prediction mode, the target set of entropy decoding parameters is determined from the candidate set of intra-frame entropy decoding parameters, wherein the candidate set of intra-frame entropy decoding parameters includes one or more sets of intra-frame entropy decoding parameters. That is, one or more sets of entropy decoding parameters can be configured in advance for different inter-frame prediction cases, and when the inter-frame prediction mode is enabled, a matching target set of entropy decoding parameters is selected according to the actual inter-frame prediction case, so as to improve the accuracy of the inter-frame prediction. One or more sets of entropy decoding parameters can also be configured in advance for different inter-frame prediction cases, and when the intra-frame prediction mode is enabled, a matching target set of entropy decoding parameters is selected according to the actual intra-frame prediction case, so as to improve the accuracy of the intra-frame prediction.
[0201] In some embodiments, the target set of entropy decoding parameters is determined from the candidate set of intra-frame entropy decoding parameters, including: determining the target set of entropy decoding parameters from the candidate set of intra-frame entropy decoding parameters according to the local sparse category.
[0202] For example, when the local sparse category is the first category, the target entropy decoding parameter set is determined as the first intra-frame entropy decoding parameter set; when the local sparse category is the second category, the target entropy decoding parameter set is determined as the second intra-frame entropy decoding parameter set. That is, when the current sub-node uses the intra-frame prediction mode, the intra-frame entropy decoding parameter set is assigned according to the local sparse category of the current sub-node, the first intra-frame entropy decoding parameter set can include a plurality of entropy decoding parameters corresponding to the first category, and the second intra-frame entropy decoding parameter set can include a plurality of entropy decoding parameters corresponding to the second category.
[0203] In S104, inter-frame context information of the current sub-node is determined according to the occupancy information of the decoded upper sub-node of the current sub-node and the occupancy information of the predicted sub-node.
[0204] In some embodiments, the intra-frame context information of the current sub-node is determined according to the occupancy information of the decoded upper sub-node of the current sub-node; the prediction information of the predicted sub-node is determined according to the value of the occupancy information of the predicted sub-node and the fourth threshold; and the prediction information of the predicted sub-node is added to the intra-frame context information of the current sub-node to determine the inter-frame context information of the current sub-node.
[0205] The context information is constructed according to a preset context node scanning order and occupancy information of the context node, or the first information and the second information of the context information are constructed according to a preset context information composition structure and the occupancy information of the context node; 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 main information, and the second information can be secondary information, and part of the information in the secondary information is dynamically adjusted as the context information. For example, the context node includes at least one of the following: a decoded brother node of the current sub-node; a decoded neighbor sub-node of the current sub-node that is coplanar, shares an edge, or shares a point; a decoded neighbor parent node of the current sub-node that is coplanar or shares an edge; and other decoded neighbor nodes of the current sub-node. The context node scanning order can be: a decoded brother node of the current sub-node > a decoded coplanar sub-node neighbor of the current sub-node > a decoded edge sub-node neighbor of the current sub-node > a decoded point sub-node neighbor of the current sub-node > a decoded other sub-node neighbor of the current sub-node > a decoded coplanar parent node neighbor of the current sub-node > a decoded edge parent node neighbor of the current sub-node > other 20 decoded parent node neighbors. The context information of the to-be-decoded sub-node is constructed according to the scanning order and the occupancy information.
[0206] In some embodiments, the determining the prediction information of the prediction sub-node according to the value of the occupancy information of the prediction sub-node and a fourth threshold value comprises: determining the value of the prediction information as a seventh numerical value when the value of the occupancy information is less than or equal to the fourth threshold value; and determining the value of the prediction information as an eighth numerical value when the value of the occupancy information is greater than the fourth threshold value. The method for determining the prediction information of the prediction sub-node is specifically: bit = (bPi) > k; wherein bit is the prediction information of 1 bit, bPi is the occupancy information of the prediction sub-node, the value of bPi can be 0 or 1 or 2 or 4, and k is the fourth threshold value, the value of k can be 0 or 1 or 2. That is, the various occupancy information of the prediction sub-node is further classified according to the fourth threshold value, the prediction information of the prediction sub-node is determined, and the prediction information of 1 bit is added to the intra-frame context information, which can reduce the number of inter-frame context states.
[0207] In some embodiments, the method further comprises: decoding the code stream to determine the fourth threshold value.
[0208] In some embodiments, the prediction sub-node is a motion-compensated prediction sub-node, or the prediction sub-node is a non-motion-compensated prediction sub-node. That is, when the inter-frame context information is constructed, the prediction information of the motion-compensated prediction sub-node or the non-motion-compensated prediction sub-node can be added to the intra-frame context information to obtain the inter-frame context information. For example, the inter-frame context information can be represented as Inter_ctx1 = Intra_ctx1 << 1 | bit, or Inter_ctx1 = Intra_ctx1 << 1 | bit UnComp ; wherein bit represents the prediction information of the motion-compensated prediction sub-node, and bit UnComp represents the prediction information of the non-motion-compensated prediction sub-node.
[0209] In some embodiments, the intra-frame context information of the current node is determined according to the occupancy information of the decoded parent node of the current sub-node; and the inter-frame context information of the current sub-node is determined by adding the occupancy information of the prediction sub-node to the intra-frame context information of the current node; wherein the prediction sub-node is a non-motion-compensated prediction sub-node. That is, the non-motion-compensated inter-frame prediction information is added to the intra-frame context information to obtain the inter-frame context information. For example, the inter-frame context information can be represented as Inter_ctx1 = Intra_ctx1 << 2 | bPi UnComp .
[0210] In some embodiments, the prediction sub-node can also be a motion-compensated prediction sub-node, and the motion-compensated inter-frame prediction information is added to the intra-frame context information to obtain the inter-frame context information. For example, the inter-frame context information can be represented as Inter ctx1 = Intra ctx1 << 2 | bPi.
[0211] S105: determining the target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set according to the inter-frame context information of the current sub-node;
[0212] In some embodiments, the method further comprises: determining a local sparse category of the current sub-node according to the occupancy information of the decoded neighbor nodes of the current sub-node; and determining the target context state set of the current sub-node according to a third mapping relationship between the plurality of local sparse categories and the context state set and the local sparse category of the current sub-node.
[0213] The local sparse category is used to indicate the local sparsity of the decoded neighbor nodes of the current sub-node, and the local sparse category can include one or more sparse categories and one or more non-sparse categories. In some embodiments, determining the local sparse category of the current sub-node according to the occupancy information of the decoded neighbor nodes of the current sub-node comprises: determining the occupancy number of the neighbor nodes according to the occupancy information of the neighbor nodes; and determining the local sparse category of the current sub-node according to the occupancy number of the neighbor nodes. The occupancy information of the neighbor nodes is used to indicate whether the neighbor nodes are occupied, and the occupancy information has a value of 0 or 1, where 0 represents not occupied and 1 represents occupied. That is, according to the occupancy information of the neighbor nodes, the occupancy number (i.e., the number of occupied neighbor nodes NN) of the neighbor nodes can be determined, and different local sparse categories can be distinguished according to the occupancy number.
[0214] For example, if the occupancy number of the neighbor nodes is greater than a preset threshold, the local sparse category of the current sub-node is determined to be a first category; and if the occupancy number of the neighbor nodes is less than or equal to the preset threshold, the local sparse category of the current sub-node is determined to be a second category. For example, the first category can be a non-sparse category, and the second category can be a sparse category. In actual applications, more thresholds can be used to distinguish more local sparse categories.
[0215] In the embodiments 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. For example, the neighbor nodes include at least one of the following: a decoded sibling node of the current child node; a decoded neighbor child node adjacent to the current child node in a first preset direction; a decoded neighbor child node adjacent to the current child node in a second preset direction; and a decoded neighbor child node adjacent to the current child node in a third preset direction. The first preset direction can be the x-axis negative direction (left direction) of the current child node, the second preset direction can be the y-axis negative direction (front direction) of the current child node, and the third preset direction can be the z-axis negative direction (bottom direction) of the current child node. That is, the local sparsity category can be determined according to the occupancy number of the decoded neighbor nodes adjacent to the current child node in the xyz negative direction. It should be noted that the decoded neighbor nodes of the current child node are the same as or not completely the same as the context nodes of the current node.
[0216] For example, the local sparsity category is represented as isSparse, different values of isSparse represent different local sparsity categories, and the value of isSparse of the to-be-decoded child node is determined according to the occupancy of the decoded neighbor nodes. For example, for the local sparsity category of child node 0, the occupancy number (NN) of the 12 decoded nodes adjacent to the current child node in the xyz negative direction in FIG. 13 can be used to determine the local sparsity category, and the occupancy number NN>1 is non-sparse (isSparse is 0), and the occupancy number NN≤1 is sparse (isSparse is 1). For the local sparsity category of child node 1, the occupancy number (NN) of the 4 decoded nodes adjacent to the current child node in the y negative direction (front direction) in FIG. 13 can be used to determine the local sparsity category, and if the occupancy number NN>0, it is determined as a non-sparse category, and if the occupancy number NN=0, it is determined as a sparse category. For the local sparsity category of child node 2, the occupancy number (NN) of the 4 decoded nodes adjacent to the current child node in the z negative direction (bottom direction) in FIG. 13 can be used to determine the local sparsity category, and if the occupancy number NN>0, it is determined as a non-sparse category, and if the occupancy number NN=0, it is determined as a sparse category. For the local sparsity category of child node 3, the occupancy number (NN) of the 7 nodes including bit0, bit1, bit2 and the 4 decoded nodes adjacent to the current child node in the x negative direction (left direction) in FIG. 13 can be used to determine the local sparsity category, and if the occupancy number NN>1, it is determined as a non-sparse category, and if the occupancy number NN≤1, it is determined as a sparse category.
[0217] It should be noted that different local sparsity categories correspond to different context state sets, and the third mapping relationship can be obtained by pre-configuring corresponding context state sets for different local sparsity categories, and then determining the target context state set of the current subnode according to the local sparsity category of the current subnode.
[0218] For example, when the local sparsity category is the first category, the target context state set is determined as the first context state set; when the local sparsity category is the second category, the target context state set is determined as the second context state set. In actual application, more context state sets can also be included. The first context state set includes one or more context states of the first category, and each context state corresponds to corresponding context information of the first category. The second context state set includes one or more context states of the second category, and each context state corresponds to corresponding context information of the second category.
[0219] The context state and the context information correspond to each other. The context state set can include the corresponding relationship between the context information and the context state, or the corresponding relationship between the identification information of the context information and the context state. The context information is used as index information of the context state set to index the corresponding context state. The context information is used to represent the occupancy of the context node of the to-be-decoded subnode, which can also be referred to as the context of the to-be-decoded subnode. The context state is used to represent the first probability of occupancy or non-occupancy of the to-be-decoded subnode under a kind of context information, which can also be referred to as the probability model of the to-be-decoded subnode. For example, when the bit of the context information is N bits, there are at most 2 N context states.
[0220] In some embodiments, in the case that the current node enables the inter-frame prediction mode, the target context state set of the current node is determined from the inter-frame context state set according to the local sparsity category; in the case that the current node enables the intra-frame prediction mode, the target context state set of the current node is determined from the intra-frame context state set according to the local sparsity category.
[0221] In the embodiments of the present application, a target context state set used is determined according to a local sparse category and a prediction mode. When the non-sparse category and the inter-frame prediction are not used, an intra-frame non-sparse context state set (IntraNSparse state) is used; when the sparse category and the inter-frame prediction are not used, an intra-frame sparse context state set (IntraSparse state) is used; when the non-sparse category and the inter-frame prediction are used, an inter-frame non-sparse context state set (InterNSparse state) is used; and when the sparse category and the inter-frame prediction are used, an inter-frame sparse context state set (InterSparse state) is used.
[0222] In some embodiments, the method further comprises: constructing a plurality of context information in the intra-frame context state set and initializing a context state of each context information according to the occupancy information of the context node and a first construction strategy; and constructing a plurality of context information in the inter-frame context state set and initializing a context state of each context information according to the occupancy information of the context node and a second construction strategy.
[0223] In the embodiments of the present application, the first construction strategy can comprise: constructing the intra-frame context information according to a preset context node scanning order and the occupancy information of the context node; or constructing first information and second information of the intra-frame context information according to a preset context information composition structure and the occupancy information of the context node; the bit number of the first information is fixed, and the bit number of the second information is adjustable. The second construction strategy can comprise: constructing the inter-frame context information according to a preset context node scanning order, the occupancy information of the context node and the occupancy information of the prediction sub-node; or constructing first information and second information of the inter-frame context information according to a preset context information composition structure, the occupancy information of the context node and the occupancy information of the prediction sub-node; the bit number of the first information is fixed, and the bit number of the second information is adjustable.
[0224] Further, in the intra prediction mode, the context state of the current sub-node is determined from the target context state set of the current sub-node according to the intra context information of the current sub-node; in the inter prediction mode, the context state of the current sub-node is determined from the target context state set of the current sub-node according to the inter context information of the current sub-node; wherein the target context state set comprises a mapping relationship between a plurality of context information and context states; and the target entropy decoding parameter of the current sub-node is determined from the target entropy decoding parameter set according to the context state of the current sub-node. In the context state set, one or more context information corresponds to one context state, the context information is used to represent the occupancy of the context node of the current sub-node, and the context state is the probability of occupancy or non-occupancy of the current sub-node under the current context information. The target context state set records the context state corresponding to one or more context information, and the context state of the current sub-node is determined by indexing the target context state set through the context information.
[0225] Further, the target entropy decoding parameter of the current sub-node is determined from the target entropy decoding parameter set according to the context state of the current sub-node, comprising: determining the index value of the target entropy decoding parameter according to the context state; and determining the target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set according to the index value of the target entropy decoding parameter. That is, in the target entropy decoding parameter set, the context state is mapped to the index value of a certain entropy decoding parameter according to a certain mapping rule, which is used to index the target entropy decoding parameter.
[0226] In the embodiment of the application, the context state is the first probability of occupancy or non-occupancy of the current sub-node under the current context information, which can also be referred to as the first probability model of the sub-node. The target entropy decoding parameter is the second probability of occupancy or non-occupancy of the current sub-node under the current context information, which can also be referred to as the second probability model of the sub-node. Therefore, the entropy decoding parameter can also be understood as a kind of context state, and the entropy decoding parameter set can also be understood as a kind of simplified context state set.
[0227] When the bit of the context information is 19 bits, there are at most 2 19 When the bit of the context information is 20 bits, there are at most 2 20 When the bit of the context information is 21 bits, there are at most 2 21The number of parameters in the target entropy decoding parameter set is much less than the number of context states. In the embodiments of the present application, the target context state set has 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 has a small number of entropy decoding parameters. The large number of context states in the target context state set are mapped to the small number of entropy decoding parameters in the target entropy decoding parameter set, so as to simplify the entropy decoding parameters and improve the decoding efficiency.
[0228] In some embodiments, the context state can be an initial probability of the current sub-node occupying (or not occupying) in the current context situation. A large number of context states are mapped to a fixed number of probability models / context models. The occupancy information of the current sub-node is arithmetically decoded by using the indexed probability model, so as to improve the decoding efficiency.
[0229] In some embodiments, according to the context state, the index value of the target entropy decoding parameter is determined, including: determining the index value of the target entropy decoding parameter according to the high M bits of the context state; wherein M is related to the number of parameters in the target entropy decoding parameter set. For example, when the number N of parameters in the target entropy decoding parameter set is 32, the high 5 bits of the context state are taken, and the value size is the index value of the target entropy decoding parameter.
[0230] In the embodiments of the present application, the construction scheme of the intra context can be:
[0231] (1) For sub-node 0, there are sub-node neighbors that are coplanar, co-edge and co-point, no decoded sibling node, there are parent node neighbors that are coplanar and other decoded 20 neighbors that can be referenced. When it is determined to be a non-sparse category, the context bins is 19 bits, at most 2 19 states, the high 6 bits are used as the main information, and the low 13 bits are used as the un-reduced secondary information; when it is determined to be a sparse category, the context bins is 16 bits, at most 2 16 states, the high 4 bits are used as the main information, and the low 12 bits are used as the un-reduced secondary information.
[0232] Wherein, for the local sparsity of sub-node 0, the occupancy number (NN) of the 12 sub-node neighbors adjacent to the current sub-node in the negative direction of x, y and z can be determined. 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, FIG. 13 shows the distribution diagram of the sub-neighbor nodes and the coplanar parent neighbor nodes of sub-node 0, and FIG. 14 shows the distribution order diagram of the 20 parent neighbor nodes of sub-node 0. Wherein, the numbers 1, 2, 4, 8, 16, 32, etc. represent the numbers of the neighbor nodes.
[0233] Table 1 Context information of subnode 0
[0234] Here, Table 1 shows the explanation of each bit context information corresponding to subnode 0, and the order from the highest bit to the lowest bit reflects the importance of the information. Among them, 1 or 0 filled with black represents the flag bit of the current classification, for example, 3 directions represent that the context nodes of Left, Front and Bottom directions are occupied at the same time, 2 directions represent that the context nodes of Left and Bottom, Front and Bottom, Left and Front directions are occupied, 1 direction represents that the context nodes of Left, Front and Bottom directions are occupied, and the non-operation "!" represents that the bit symbol is the information after the actual symbol is negated; In addition, this also involves coplanar subnodes, common edge subnodes, common point subnodes, edge clamping subnodes and same position subnodes, etc. In Table 1, the symbol meanings are explained as follows: B (Bottom), F (Front), L (Left) are respectively the parent neighbors of the six neighbors numbered 16, 4, 2 of the current node in Figure 13, Since these three decoded nodes are located in the negative direction of the coordinate axis of the current node, so the subnode occupation information can be obtained, therefore, the coplanar, common edge and common point subnodes in these three directions are listed bit by bit in Table 1; It should be noted that, for example, the English abbreviations B, F and L represent the coplanar, common edge and common point subnodes of the current subnode, and the English full names Bottom, Front and Left represent the coplanar, common edge and common point parent neighbors of the current subnode; Top, Back and Right are respectively the parent neighbors of the six neighbors numbered 32, 8, 1 of the current node in Figure 13, Since these three decoded nodes are located in the positive direction of the coordinate axis of the current node, so the subnode occupation information cannot be obtained, and its relevance is weaker than the above 12 sub-neighbor nodes; Other numbers such as 9, 4, 1 and 2 in Table 1 are the serial numbers of the 20 common edge / common point neighbors of the current node except the six coplanar parent neighbors shown in Figure 14; For the same position subnodes in Table 1 bit0 B、 bit0 F、 bit0L can be understood as follows, in the decoded Bottom, Front, Left nodes also exist the sub-node numbered 0, this node is called parity sub-node; table with two letters such as LF, LB, FB respectively for the Left direction and Front direction between the two nodes sandwiched with the current sub-node common edge two sub-nodes occupy information (by 20 neighbors in the 1st occupation code), Left direction and Bottom direction between the two nodes sandwiched with the current sub-node common edge two sub-nodes occupy information (by 20 neighbors in the 8th occupation code), Front direction and Bottom direction between the two nodes sandwiched with the current sub-node common edge two sub-nodes occupy information (by 20 neighbors in the 3rd occupation code).
[0235] (2) for sub-node 1, there are sub-node neighbors with coplanar, common edge, common point, there is 1 decoded sibling node bit0, there are coplanar parent node neighbors and other decoded 20 neighbors that can be referenced. When judged as non-sparse category, the context bins is 19 bits, at most 2 19 States, the high 6 bits as the main information, the low 13 bits as the unreduced secondary information; when judged as sparse category, the context bins is 19 bits, at most 2 19 States, the high 7 bits as the main information, the low 12 bits as the unreduced secondary information.
[0236] Among them, for the local sparsity of sub-node 1, the occupation number (NN) of the 4 sub-nodes adjacent to the current sub-node in the y negative direction (Front) in figure 13 can be determined, if the occupation number NN>0, it is judged as non-sparse category, if the occupation number NN=0, it is judged as sparse category. Here, table 2 is the explanation of bins each bit context information, it can be seen that the importance of decoded sibling node 0 occupation information is the highest, which is located in the highest bit of bins.
[0237] Table 2. Context information of sub-node 1
[0238] (3) for sub-node 2, there are sub-node neighbors with coplanar, common edge, common point, there are 2 decoded sibling nodes bit0, bit1, there are coplanar parent node neighbors and other decoded 20 neighbors that can be referenced. When judged as non-sparse category, the context bins is 19 bits, at most 2 19 States, the high 6 bits as the main information, the low 13 bits as the unreduced secondary information; when judged as sparse category, the context bins is 19 bits, at most 2 19The 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.
[0239] Table 3. Context information of child node 2
[0240] (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.
[0241] 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.
[0242] Table 4. Context information of child node 3
[0243] (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.
[0244] For the local sparsity of the child node 4, 12 nodes of bit0+bit1+bit2+bit3 (denoted as "new Left"), 4 nodes of the y-negative direction (Front) adjacent to the current child node and 4 nodes of the z-negative direction (Bottom) adjacent to the current child node in FIG. 13 can be determined as NN, if the occupancy number NN>1, it is determined as the non-sparse category, if the occupancy number NN≤1, it is determined as the sparse category.
[0245] Table 5. Context information of the child node 4
[0246] (5) For the child node 5, there are child node neighbors coplanar, co-edge, and co-point, there are 5 decoded sibling nodes bit0, bit1, bit2, bit3, bit4, there are parent node neighbors coplanar, and there are other 20 decoded neighbors that can be referenced. When it is determined as the non-sparse category, the context bins is 19 bits, at most 2 19 states, the high 6 bits are the main information, and the low 13 bits are the unreduced secondary information; when it is determined as the sparse category, the context bins is 19 bits, at most 2 19 states, the high 7 bits are the main information, and the low 12 bits are the unreduced secondary information.
[0247] For the local sparsity of the child node 5, the y-negative direction (Front) adjacent to the current child node in FIG. 13 can be determined as NN, if the occupancy number NN>0, it is determined as the non-sparse category, if the occupancy number NN=0, it is determined as the sparse category.
[0248] Table 6. Context information of the child node 5
[0249] (7) For the child node 6, there are child node neighbors coplanar, co-edge, and co-point, there are 6 decoded sibling nodes bit0, bit1, bit2, bit3, bit4, bit5, there are parent node neighbors coplanar, and there are other 20 decoded neighbors that can be referenced. When it is determined as the non-sparse category, the context bins is 19 bits, at most 2 19 states, the high 6 bits are the main information, and the low 13 bits are the unreduced secondary information; when it is determined as the sparse category, the context bins is 19 bits, at most 2 19 states, the high 7 bits are the main information, and the low 12 bits are the unreduced secondary information.
[0250] For the local sparsity of the child node 6, the z-negative direction (Bottom) adjacent to the current child node in FIG. 13 can be used as NN to determine, if the occupancy number NN>0, it is determined as the non-sparse category, if the occupancy number NN=0, it is determined as the sparse category.
[0251] Table 7. Context information of the child node 6
[0252] (8) For the child node 7, there is no coplanar, co-edge, and co-point child node neighbor, there are 7 decoded sibling nodes bit0, bit1, bit2, bit3, bit4, bit5, bit6, there is a coplanar parent node neighbor, and there are other decoded 20 neighbors that can be referenced. When it is determined as the non-sparse category, the context bins is 17 bits, a maximum of 2 17 states, the high 6 bits are used as the main information, and the low 11 bits are used as the unreduced secondary information; when it is determined as the sparse category, the context bins is 18 bits, a maximum of 2 18 states, the high 6 bits are used as the main information, and the low 12 bits are used as the unreduced secondary information.
[0253] For the local sparsity of the child node 7, the 7 nodes of bit0+bit1+bit2+bit3+bit4+bit5+bit6 can be used as NN to determine, if the occupancy number NN>1, it is determined as the non-sparse category, if the occupancy number NN≤1, it is determined as the sparse category.
[0254] Table 8. Context information of the child node 7
[0255] S106: Entropy-decode the code stream according to the target entropy-decoding parameter to determine the occupancy information of the current child node.
[0256] In some embodiments, the method further includes: updating the target entropy-decoding parameter according to the occupancy information of the current child node.
[0257] In some embodiments, the method further includes: updating the context state according to the occupancy information of the current child node.
[0258] On the basis of the above-mentioned embodiments, the decoding method provided by the embodiments of the present application is further exemplified. As shown in FIG. 15, the decoding method is specifically a decoding method of point cloud geometry information, which can include:
[0259] S201: Local sparsity determination
[0260] According to the occupancy information of the decoded neighboring nodes, the local sparsity (isSparse) of the to-be-decoded symbol bn is determined. As for the sub-node 0, the local sparsity is determined according to the occupancy number (NN) of the 12 sub-nodes adjacent to the current sub-node in the negative xyz direction, and the occupancy number NN>1 is non-sparse (isSparse is 0), and the occupancy number NN≤1 is sparse (isSparse is 1).
[0261] According to the value (0 or 1) of isSparse, the context state can be divided into a sparse context state set and a non-sparse context state set.
[0262] S202: Inter prediction determination
[0263] In some possible embodiments, according to the occupancy information (predOcc) of the motion-compensated first prediction node of the current node with respect to the reference frame and the enablement identification (isInter) of the inter prediction, it is determined whether to enable the inter prediction, that is, the value of isInter2 is determined.
[0264] isInter2=isInter&&predOcc, that is, the value of isInter2 is determined by isInter and predOcc together, and predOcc is an identification for indicating whether the prediction node is occupied. Specifically, if at least one sub-node bPi in the prediction node is occupied, predOcc is set to 1; otherwise, if no sub-node is occupied, predOcc is 0. In addition, the value of isInter is controlled by a syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper-layer inter prediction is enabled. If the inter prediction is enabled, it is called a P frame, and isInter is 1; otherwise, if the inter prediction is not enabled, it is called an I frame, and isInter is 0.
[0265] In some other possible embodiments, according to the occupancy information (predOcc) of the motion-compensated first prediction node of the current node with respect to the reference frame, the occupancy information (predOccUnComp) of the uncompensated second prediction node, and the enablement identification (isInter) of the inter prediction, it is determined whether to enable the inter prediction, that is, the value of isInter2 is determined.
[0266] isInter2 = isInter && (predOcc || predOccUnComp), i.e. the value of isInter2 is determined by isInter and predOcc and predOccUnComp together, where predOcc is an indicator for indicating whether the prediction node is occupied or not. Specifically, if at least one child node bPi in the prediction node is occupied, predOcc is set to 1; otherwise, if no child node is occupied, predOcc is 0. predOccUnComp is an indicator for indicating whether the uncompensated prediction node is occupied or not. Specifically, if at least one child node bPiUnComp in the uncompensated prediction node is occupied, predOccUnComp is set to 1; otherwise, if no child node is occupied, predOccUnComp is 0. In addition, the value of isInter is controlled by a syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the inter prediction of the upper layer is enabled or not. If the inter prediction is enabled, it is called P frame, and isInter is 1; otherwise, if the inter prediction is not enabled, it is called I frame, and isInter is 0.
[0267] S203: Context state selection
[0268] Firstly, according to whether isSparse and isInter2, the used context state set is determined. When the non-sparse category and the inter prediction is not used, the intra non-sparse context state set (IntraNSparse state) is used; when the sparse category and the inter prediction is not used, the intra sparse context state set (IntraSparse state) is used; when the non-sparse category and the inter prediction is used, the inter non-sparse context state set (InterNSparse state) is used; when the sparse category and the inter prediction is used, the inter sparse context state set (InterSparse state) is used. Wherein, the construction method of the intra non-sparse context state set (IntraNSparse state), the intra sparse context state set (IntraSparse state) and the context information can be the construction method in OBUF, or the construction method of dynamic OBUF, and the construction method of the context at the decoding end is consistent with that at the encoding end.
[0269] In some possible implementation manners, the context information construction method of the InterNSparse state and the InterSparse state can adopt the same construction method as the Intra context, and does not need to use the inter-prediction information to participate in the construction, thereby reducing the number of inter-context states, saving storage space, and improving decoding efficiency.
[0270] In some possible implementation manners, the inter-context information construction method can be set according to the occupancy information of the compensated or uncompensated prediction sub-node compared with the Intra context, for example, Inter_ctx1 = Intra_ctx1 << 1 | bit, or Inter_ctx1 = Intra_ctx1 << 1 | bit UnComp , where bit represents the prediction information of the motion-compensated prediction sub-node, bit = (bPi) > k, bit UnComp represents the prediction information of the non-motion-compensated prediction sub-node, bit UnComp = (bPi UnComp ) > k. At this time, the number of inter-context states is half of the number of inter-context states obtained by the traditional inter-context information construction method, thereby saving storage space, reducing calculation complexity, and improving decoding efficiency. For example, when the bit of the Intra context information is at most 19 bits, the bit of the inter-context information is at most 20 bits, and in the case of obtaining the same encoding quality, the code rate can be saved, and the decoding efficiency is improved.
[0271] In some possible implementation manners, the occupancy information of the uncompensated prediction node can also be considered when the inter-context is constructed, that is, Inter_ctx1 = Intra_ctx1 << 2 | predL << 1 | pred is changed to Inter_ctx1 = Intra_ctx1 << 2 | bPi UnComp . For example, when the bit of the Intra context information is at most 19 bits, the bit of the inter-context information is at most 21 bits, and in the case of obtaining the same encoding quality, the code rate can be saved, and the decoding efficiency is improved.
[0272] Secondly, in the selected context state set, the context state of the to-be-decoded sub-node is obtained according to the context information of the to-be-decoded sub-node, that is, the probability P S that the to-be-decoded sub-node occupies (or does not occupy) under this context is obtained.
[0273] The method for constructing the context information of the to-be-decoded sub-node corresponding to the selected set of inter-frame context states 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 compensated prediction sub-node, or constructing according to the occupancy information of the context node and the occupancy information of the uncompensated prediction sub-node.
[0274] The method for determining the occupancy information of the compensated prediction sub-node is as follows:
[0275] Wherein, bP i is the occupancy information of the compensated prediction sub-node i, NodePoints[i] represents the number of points in the compensated prediction sub-node i, th j is the jth threshold value, the threshold value is related to the size of the node, if Nodesize represents the current node size, then th1 = max(0, Nodesize >> 8), th2 = max(2, Nodesize >> 4), th3 = max(8, Nodesize >> 2).
[0276] Specifically, according to the occupancy information of the prediction sub-node, the information determined as inter prediction (isInter2 = 1) is divided into the following four categories:
[0277] a) Pred0: When the prediction sub-node i is empty, the current sub-node i is predicted to be unoccupied bPi = 0.
[0278] b) Pred1: When the prediction sub-node i is not empty and the number of points (Npred) exceeds the first threshold value th1 but does not exceed the second threshold value th2, the current sub-node i is predicted to be occupied bPi = 1;
[0279] c) predL: When the prediction sub-node i is not empty and the number of points (Npred) exceeds the second threshold value th2 but does not exceed the third threshold value th3, the current sub-node i is predicted to be strongly occupied bPi = 2;
[0280] d) predLL: When the prediction sub-node i is not empty and the number of points (Npred) exceeds the third threshold value th3, the current sub-node i is predicted to be very strongly occupied bPi = 3.
[0281] The method for determining the prediction information of the compensated prediction sub-node is as follows: bit = (bPi) > k
[0282] Wherein, bit is the prediction information of 1 bit, bPi is the occupancy information of the compensated prediction sub-node, the value of bPi can be 0 or 1 or 2 or 4, etc., k is the fourth threshold value, the value of k can be 0 or 1 or 2, etc.
[0283] The method for determining the occupancy information of the uncompensated prediction sub-node is as follows:
[0284] where bP i UnComp is the occupancy information of uncompensated prediction child node i, NodePointsUnComp[i] represents the number of points in uncompensated prediction child node i, th j is a threshold value, the threshold value is related to the size of the node, if Nodesize represents the current node size, then th1 = max(0, Nodesize >> 8), th2 = max(2, Nodesize >> 4), th3 = max(8, Nodesize >> 2).
[0285] According to the number of points in the uncompensated prediction node, the uncompensated inter prediction information determined as inter prediction (isInter2 = 1) is divided into the following four categories:
[0286] a) Pred0 UnComp : uncompensated child node i is predicted as not occupying bP iUnComp = 0;
[0287] b) Pred1 UnComp : uncompensated child node i is predicted as occupying bP i UnComp = 1;
[0288] c) PredL UnComp : uncompensated child node i is predicted as strongly occupying bP UnComp = 2;
[0289] d) PredLL UnComp : uncompensated child node i is predicted as very strongly occupying bP UnComp = 3.
[0290] The determination method of the prediction information of the uncompensated prediction child node is as follows: bit UnComp = (bP iUnComp )>k
[0291] where bit UnComp is a 1-bit prediction information, bP iUnComp is the occupancy information of uncompensated prediction child node, bP iUnComp can be 0 or 1 or 2 or 4, etc., and k is a fourth threshold value, k can be 0 or 1 or 2, etc.
[0292] S204: Entropy decoding parameter selection
[0293] Firstly, for intra prediction mode, according to the context state set selected by the to-be-decoded sub-node, a set of entropy decoding parameters used, which can also be called decoder group, is determined, and each decoder contains an entropy decoding parameter. For inter prediction mode, according to the occupancy information of the prediction sub-node, a set of entropy decoding parameters used is determined.
[0294] If it is determined to be intra prediction, if the intra non-sparse context state set (IntraNSparse state) is used, the intra non-sparse entropy decoding parameter set (IntraNSparse Decoder) is determined to be used; if the intra sparse context state set (IntraSparse state) is used, the intra sparse entropy decoding parameter set (IntraSparse Decoder) is determined to be used.
[0295] If it is determined to be inter prediction, and the occupancy information of the prediction sub-node is not occupied bPi=0, the inter entropy decoding parameter set InterPred0 Decoder is determined to be used; if it is determined to be inter prediction, and the occupancy information of the prediction sub-node is occupied bPi=1, the inter entropy decoding parameter set InterPred1 Decoder is determined to be used; if it is determined to be inter prediction, and the occupancy information of the prediction sub-node is strongly occupied bPi=2, the inter entropy decoding parameter set InterPredL Decoder is determined to be used; if it is determined to be inter prediction, and the occupancy information of the prediction sub-node is very strongly occupied bPi=3, the inter entropy decoding parameter set InterPredLL Decoder is determined to be used. That is, for inter prediction, considering the correlation between the inter sparse context state and the inter non-sparse context state, the sparse context state and the non-sparse context state share the entropy decoding parameter set, and only according to the prediction of the compensation prediction sub-node being not occupied, occupied, strongly occupied and very strongly occupied, the entropy decoding parameter set is selected, so as to improve the decoding efficiency.
[0296] Secondly, in the determined decoder group, according to a certain mapping rule, the context state P S of bn is mapped to the decoder Ci. The mapping rule can be to take the high 5 bits of the context state, and the value of the high 5 bits is the index value of the mapped decoder, and the probability of the mapped decoder Ci is P C .
[0297] S205: adaptive arithmetic decoding
[0298] The probability P C of the determined decoder Ci is used for adaptive arithmetic decoding of the occupancy information bn of the to-be-decoded sub-node.
[0299] The decoding method provided in the embodiments of the present application determines a suitable point number threshold according to the size of the current node when performing point cloud inter-frame prediction, thereby reasonably dividing the occupancy of the prediction node and selecting the best set of entropy decoding parameters for the current sub-node. Furthermore, for inter-frame prediction, the correlation between the inter-frame sparse context state and the inter-frame non-sparse context state is considered, so that the sparse context state and the non-sparse context state share the set of entropy decoding parameters, and the set of entropy decoding parameters is selected only according to the prediction of non-occupancy, occupancy, strong occupancy and very strong occupancy, thereby improving the decoding efficiency.
[0300] In another embodiment of the present application, referring to FIG. 16, a flowchart of an encoding method provided in the embodiments of the present application is shown.
[0301] As shown in FIG. 16, the method can include:
[0302] S301: In the case where the inter-frame prediction mode is enabled for the current node, a point number threshold is determined according to the size parameter of the current node, wherein the point number threshold includes one or more threshold values.
[0303] It should be noted that the encoding method of the embodiments of the present application is applied to a point cloud encoder. That is, the encoding method can specifically refer to a point cloud encoding method or a point cloud entropy encoding method. More specifically, the embodiments of the present application provide a point cloud inter-frame encoding method based on context mapping, when performing point cloud inter-frame prediction, a suitable point number threshold is determined according to the size of the current node, thereby reasonably distinguishing the occupancy of the prediction sub-node, selecting the best set of entropy encoding parameters for the current sub-node, and further selecting the best entropy encoding parameter for encoding according to the context information, thereby reducing the code rate and improving the encoding efficiency.
[0304] In some embodiments, the method further includes: determining whether the inter-frame prediction mode is enabled for the current node according to the value of the first syntax element; in the case where the inter-frame prediction mode is enabled for the current node, determining the occupancy information of the prediction node of the current node in the reference frame; and determining whether the inter-frame prediction mode is enabled for the current node according to the occupancy information of the prediction node.
[0305] 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 the prediction node. The first syntax element serves as an enabling identifier of the 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 inter-frame prediction mode is enabled for the current node; and the value of the first syntax element is a second numerical value, which determines that the inter-frame prediction mode is not enabled for the current node. Illustratively, the first syntax element includes a frame-level syntax element, and the value of the first syntax element is 1, which enables the inter-frame prediction; and the value of the first syntax element is 0, which does not enable the inter-frame prediction.
[0306] The prediction node is a homonym of the current node in the reference frame. The occupancy information of the prediction node is used to determine whether the current node uses the inter-frame prediction mode. When the occupancy information of the prediction node indicates occupancy, it is determined that the current node uses the inter-frame prediction mode. When the occupancy information of the prediction node indicates non-occupancy, it is determined that the current node uses the intra-frame prediction mode. For example, the value of the occupancy information is 0, indicating non-occupancy, and 1, indicating occupancy. The occupancy of the prediction node is related to the occupancy of the child nodes thereof. In some embodiments, the method further comprises: determining the occupancy information of a plurality of prediction child nodes in the prediction node; and when the occupancy information of at least one prediction child node in the prediction node indicates occupancy, determining that the occupancy information of the prediction node indicates occupancy; otherwise, determining that the occupancy information of the prediction node indicates non-occupancy. That is, if at least one child node in the prediction node is occupied, the value of the occupancy information thereof is set to 1; otherwise, the value of the occupancy information thereof is set to 0.
[0307] In some embodiments, the prediction node comprises 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.
[0308] As shown in FIG. 11, the occupancy information of the current node is predicted by the local motion estimation and motion compensation of the reference frame, to obtain the occupancy information of the first prediction node. The occupancy information of the current node is predicted by the reference frame without motion compensation (i.e., the original reference frame), to obtain the occupancy information of the second prediction node.
[0309] In some embodiments, when the occupancy information of the first prediction node indicates occupancy or the occupancy information of the second prediction node indicates occupancy, it is determined that the current node uses the inter-frame prediction mode; when the occupancy information of the first prediction node indicates non-occupancy and the occupancy information of the second prediction node indicates non-occupancy, it is determined that the current node uses the intra-frame prediction mode. The embodiment of the present application uses the non-compensated second prediction node to determine the inter-frame prediction mode, fully utilizes the non-compensated inter-frame information, and can save the code rate and improve the compression efficiency under the same coding quality.
[0310] In some embodiments, when the occupancy information of the first prediction node indicates occupancy and the occupancy information of the second prediction node indicates occupancy, it is determined that the current node uses the inter-frame prediction mode; when the occupancy information of the first prediction node indicates non-occupancy or the occupancy information of the second prediction node indicates non-occupancy, it is determined that the current node uses the intra-frame prediction mode.
[0311] In some embodiments, the occupancy information of the first prediction node indicates that the current node enables the inter-prediction mode when the occupancy information of the first prediction node indicates occupancy; and the occupancy information of the first prediction node indicates that the current node enables the intra-prediction mode when the occupancy information of the first prediction node indicates non-occupancy.
[0312] In some embodiments, the occupancy information of the second prediction node indicates that the current node enables the inter-prediction mode when the occupancy information of the second prediction node indicates occupancy; and the occupancy information of the second prediction node indicates that the current node enables the intra-prediction mode when the occupancy information of the second prediction node indicates non-occupancy.
[0313] The size parameter of the current node is used to indicate the size of the current node. For example, the size parameter of the current node includes at least one of the following: the side length, the length, the width, the height, the volume, etc. of the current node.
[0314] The point threshold is used to divide the point number of the prediction node into different point number ranges, and each point number range corresponds to an occupancy condition. For example, when the point threshold includes N thresholds, N+1 point number ranges are obtained, thereby corresponding to N+1 occupancy conditions. For example, the point threshold includes 1, 2, 3, or 4, etc.
[0315] In some embodiments, the point threshold corresponding to the current node is determined according to whether the size parameter of the current node is used to indicate whether the preset point threshold is adjusted. For example, in the case of determining not to adjust the preset first value according to the size parameter, the first value is taken as the first threshold in the point threshold; or in the case of determining to adjust the first value according to the size parameter, a second value obtained according to the size parameter is taken as the first threshold in the point threshold.
[0316] In some embodiments, the method can further include: converting the size parameter according to a first conversion factor corresponding to the first value to obtain a second value; determining not to adjust the first value in the case that the first value is greater than or equal to the second value; and determining to adjust the first value in the case that the first value is less than the second value.
[0317] It should be noted that the first value can be any one of one or more values preset for the point threshold, and the first value corresponds to a first conversion factor. The first conversion factor is used to convert the size parameter into a second value, so as to 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.
[0318] In some embodiments, the first conversion factor is a right shift number of the size parameter, and different preset values correspond to different right shift numbers. For example, the determination method of the point threshold is as follows: th1=max(0,Nodesize>>d1); th2=max(2,Nodesize>>d2); th3=max(8,Nodesize>>d3).
[0319] wherein th1 is the first threshold value, d1 is the first right shift number, th2 is the second threshold value, d2 is the second right shift number, th3 is the third threshold value, d3 is the third right shift number, d1 is greater than d2, d2 is greater than d3, and Nodesize represents the current node size.
[0320] In some embodiments, according to the size parameter of the current node and the preset mapping relationship, the point threshold value corresponding to the current node is determined. For example, the first size parameter corresponds to the first point threshold value, the second size parameter corresponds to the second point threshold value, and the third size parameter corresponds to the third point threshold value. At least part of the different point threshold values are different.
[0321] S302: According to the point number of the prediction node corresponding to the current subnode to be encoded in the current node and the point threshold value, the occupancy information of the prediction node is determined.
[0322] It should be noted that the current subnode is any subnode in the current node to be encoded. As shown in FIG. 7, the current node includes eight subnodes, and the scanning order of the subnodes is subnode 0, subnode 1, subnode 2, subnode 3, subnode 4, subnode 5, subnode 6 and subnode 7.
[0323] The prediction node is a same-position subnode of the current subnode in the prediction node, and the occupancy information of the prediction node is determined according to the point number of the prediction node and the point threshold value. The occupancy information of the prediction node is used to indicate one or more occupancy states, for example, the occupancy information can represent occupancy or non-occupancy, and the occupancy information can also represent non-occupancy or multiple occupancy intensities. For example, the prediction node includes a motion-compensated prediction node and / or a non-motion-compensated prediction node.
[0324] In some embodiments, according to the point number of the prediction node corresponding to the current subnode to be encoded in the current node and the point threshold value, the occupancy information of the prediction node is determined, including: determining a plurality of point number ranges and a first mapping relationship of the occupancy information according to one or more threshold values in the point threshold value; and determining the occupancy information of the prediction node according to the first mapping relationship and the point number of the prediction node.
[0325] Exemplarily, the point threshold comprises one threshold, and the first mapping relationship comprises: if the point number of the prediction child node is less than or equal to the first threshold, it is determined that the occupancy information of the prediction child node is not occupied; and if the point number of the prediction child node is greater than the first threshold, it is determined that the occupancy information of the prediction child node is occupied.
[0326] Exemplarily, the point threshold comprises more than one threshold, and the first mapping relationship comprises: if the point number of the prediction child node is less than or equal to the first threshold, it is determined that the occupancy information of the prediction child node is not occupied; and if the point number of the prediction child node is greater than the first threshold, a plurality of occupancy intensities are determined according to the point number of the prediction child node and other thresholds.
[0327] In some embodiments, the first mapping relationship comprises: if the point number of the prediction child node is less than or equal to the first threshold, it is determined that the value of the occupancy information of the prediction child node is a third numerical value, which is used to represent not occupied; if the point number of the prediction child node is greater than the first threshold and less than or equal to a second threshold, it is determined that the value of the occupancy information of the prediction child node is a fourth numerical value, which represents a first occupancy intensity; if the point number of the prediction child node is greater than the second threshold and less than or equal to a third threshold, it is determined that the value of the occupancy information of the prediction child node is a fifth numerical value, which represents a second occupancy intensity; and if the point number of the prediction child node is greater than the third threshold, it is determined that the value of the occupancy information of the prediction child node is a sixth numerical value, which represents a third occupancy intensity. Exemplarily, the third numerical value is 0, the fourth numerical value is 1, the fifth numerical value is 2, and the sixth numerical value is 3.
[0328] It should be noted that the occupancy intensity increases with the increase of the point number, that is, the first occupancy intensity is less than the second occupancy intensity, and the second occupancy intensity is less than the third occupancy intensity. In short, the first occupancy intensity can be understood as occupied (or weakly occupied), the second occupancy intensity can be understood as strongly occupied, and the third occupancy intensity can be understood as very strongly occupied.
[0329] In some embodiments, if the point number of the prediction 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 point number of the prediction child node is greater than the first threshold, the first value of the occupancy information is determined to be 1; if the point number of the prediction 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 point number of the prediction child node is greater than the second threshold, the second value of the occupancy information is determined to be 1; if the point number of the prediction 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 point number of the prediction child node is greater than the third threshold, the third value of the occupancy information is determined to be 1; and 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.
[0330] S303: According to the occupancy information of the prediction child node, a target entropy coding parameter set of the current child node is determined.
[0331] The target entropy coding parameter set includes a plurality of entropy coding parameters, and the entropy coding parameter is a parameter used when any one of the occupancy information of the child node is entropy coded. In some embodiments, the entropy coding parameter can be an arithmetic coding parameter, and the occupancy information of the child node is adaptively arithmetic coded according to the arithmetic coding parameter. For example, the arithmetic coding parameter can be a probability that the current child node is occupied or not occupied under the current context information
[0332] In some embodiments, the target entropy coding parameter set of the current child node is determined according to a second mapping relationship between a plurality of occupancy information and the inter-frame entropy coding parameter set, and the occupancy information of the predicted child node. The plurality of occupancy information specifically refers to two or more occupancy information, and different inter-frame entropy coding parameter sets are configured for different occupancy information in advance, so that when the inter-frame prediction mode is enabled, the matching target entropy coding parameter set is selected according to the actual inter-frame prediction information, and the coding efficiency is improved.
[0333] In some embodiments, the occupancy information is used to represent not occupied and one or more occupancy states, and the second mapping relationship includes: the occupancy information of the predicted child node is not occupied, and the corresponding first inter-frame entropy coding parameter set is used; and the occupancy information of the predicted child node is occupied, and one or more inter-frame entropy coding parameter sets corresponding to the occupancy information are used.
[0334] In some embodiments, the occupancy information is used to represent not occupied, occupied, strongly occupied or very strongly occupied, and the second mapping relationship includes: the not occupied corresponds to the first inter-frame entropy coding parameter set, the occupied corresponds to the second inter-frame entropy coding parameter set, the strongly occupied corresponds to the third inter-frame entropy coding parameter set, and the very strongly occupied corresponds to the fourth inter-frame entropy coding parameter set.
[0335] That is, the inter-frame entropy coding parameter set is allocated to the current child node according to the occupancy of the predicted child node, the first inter-frame entropy coding parameter set includes a plurality of 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 a plurality of entropy coding parameters of the current child node when the predicted child node is occupied, the third inter-frame entropy coding parameter set includes a plurality of 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 a plurality of entropy coding parameters of the current child node when the predicted child node is very strongly occupied. In the embodiments of the present application, for inter-frame prediction, the inter-frame entropy coding parameter set is selected according to that the current child node is predicted to be not occupied, occupied, strongly occupied and very strongly occupied, the occupancy of the predicted child node is divided into four categories, the matching entropy coding parameter set is configured for each category, and the inter-frame prediction accuracy is improved by fully utilizing the correlation between the inter-frame sparse context state and the non-sparse context state.
[0336] In some embodiments, the target entropy coding parameter set is determined from the candidate inter entropy coding parameter set by using the occupancy information of the motion-compensated prediction child node. In the embodiments of the present application, when performing inter-frame prediction of a point cloud, a suitable point number threshold is determined according to the size of the current node, so as to reasonably distinguish the occupancy of the motion-compensated prediction child node, and then select the best entropy coding parameter set for the current child node according to the occupancy of the motion-compensated prediction child node.
[0337] In some embodiments, the target entropy coding parameter set is determined from the candidate inter entropy coding parameter set in the case that the current child node enables the inter-frame prediction mode, wherein the candidate inter entropy coding parameter set includes one or more inter entropy coding parameter sets; and the target entropy coding parameter set is determined from the candidate intra entropy coding parameter set in the case that the current child node enables the intra-frame prediction mode, wherein the candidate intra entropy coding parameter set includes one or more intra entropy coding parameter sets. That is, one or more entropy coding parameter sets can be configured in advance for different inter-frame prediction cases, and the target entropy coding parameter set is selected according to the actual inter-frame prediction case when the inter-frame prediction mode is enabled, so as to improve the accuracy of the intra-frame prediction. One or more entropy coding parameter sets can also be configured in advance for different inter-frame prediction cases, and the target entropy coding parameter set is selected according to the actual intra-frame prediction case when the intra-frame prediction mode is enabled, so as to improve the accuracy of the intra-frame prediction.
[0338] In some embodiments, the target entropy coding parameter set is determined from the candidate intra entropy coding parameter set according to the local sparsity category.
[0339] For example, when the local sparsity category is the first category, the target entropy coding parameter set is determined as the first intra entropy coding parameter set; and when the local sparsity category is the second category, the target entropy coding parameter set is determined as the second intra entropy coding parameter set. That is, when the current child node enables the intra-frame prediction mode, the intra entropy coding parameter set is assigned according to the local sparsity category of the current child node, the first intra entropy coding parameter set can include a plurality of entropy coding parameters corresponding to the first category, and the second intra entropy coding parameter set can include a plurality of entropy coding parameters corresponding to the second category.
[0340] S304: Determine the inter-frame context information of the current child node according to the occupancy information of the already coded lower node and the occupancy information of the prediction child node of the current child node;
[0341] In some embodiments, the intra context information of the current sub-node is determined according to the occupancy information of the coded sibling node of the current sub-node; the prediction information of the prediction sub-node is determined according to the value of the occupancy information of the prediction sub-node and a fourth threshold; and the inter context information of the current sub-node is determined by adding the prediction information of the prediction sub-node to the intra context information of the current sub-node.
[0342] The context information is constructed according to a preset context node scanning order and occupancy information of the context nodes, or the first information and the second information of the context information are constructed according to a preset context information composition structure and the occupancy information of the context nodes; the bit number of the first information is fixed, and the bit number of the second information is adjustable. The first information can be main information, and the second information can be secondary information, and part of the information in the secondary information is dynamically adjusted as the context information. The context nodes include at least one of the following: a coded sibling node of the current sub-node; a coded neighbor sub-node coplanar, co-edge and co-point with the current sub-node; a coded neighbor parent node coplanar and co-edge with the current sub-node; and other coded neighbor nodes of the current sub-node. The context node scanning order can be: a coded sibling node of the current sub-node > a coded coplanar sub-node neighbor of the current sub-node > a coded co-edge sub-node neighbor of the current sub-node > a coded co-point sub-node neighbor of the current sub-node > a coded other sub-node neighbor of the current sub-node > a coded coplanar parent node neighbor of the current sub-node > a coded co-edge parent node neighbor of the current sub-node > other coded 20 parent node neighbors. The context information of the to-be-coded sub-node is constructed according to the scanning order and the occupancy information.
[0343] In some embodiments, the prediction information of the prediction sub-node is determined according to the value of the occupancy information of the prediction sub-node and a fourth threshold, including: when the value of the occupancy information is less than or equal to the fourth threshold, the value of the prediction information is determined as a seventh numerical value; and when the value of the occupancy information is greater than the fourth threshold, the value of the prediction information is determined as an eighth numerical value. The determination method of the prediction information of the prediction sub-node is as follows:
[0344] bit = (bPi) > k
[0345] bit is 1-bit prediction information, bPi is the occupancy information of the prediction sub-node, the value of bPi can be 0 or 1 or 2 or 4, etc., k is the fourth threshold, and the value of k can be 0 or 1 or 2, etc.
[0346] That is, the plurality of occupancy information of the prediction sub-node is further classified according to the fourth threshold value, the prediction information of the prediction sub-node is determined, and the prediction information only occupies 1 bit, the 1 bit of prediction information is added to the intra context information, and the number of inter context states can be reduced.
[0347] In some embodiments, the method further comprises: encoding the code stream, and determining the fourth threshold value.
[0348] In some embodiments, the prediction sub-node is a motion-compensated prediction sub-node, or the prediction sub-node is a non-motion-compensated prediction sub-node. That is, when constructing the inter context information, the prediction information of the motion-compensated prediction sub-node or the non-motion-compensated prediction sub-node can be added to the intra context information to obtain the inter context information. For example, the inter context information can be represented as Inter_ctx1=Intra_ctx1<<1|bit, or Inter_ctx1=Intra_ctx1<<1|bit UnComp ; wherein bit represents the prediction information of the motion-compensated prediction sub-node, and bit UnComp represents the prediction information of the non-motion-compensated prediction sub-node.
[0349] In some embodiments, the intra context information of the current node is determined according to the occupancy information of the coded parent node of the current sub-node; and the inter context information of the current sub-node is determined by adding the occupancy information of the prediction sub-node to the intra context information of the current node; wherein the prediction sub-node is a non-motion-compensated prediction sub-node.
[0350] That is, the non-motion-compensated inter prediction information is added to the intra context information to obtain the inter context information. For example, the inter context information can be represented as Inter_ctx1=Intra_ctx1<<2|bPi UnComp .
[0351] In some embodiments, the prediction sub-node can also be a motion-compensated prediction sub-node, and the motion-compensated inter prediction information is added to the intra context information to obtain the inter context information. For example, the inter context information can be represented as Inter_ctx1=Intra_ctx1<<2|bPi.
[0352] S305: determining the target entropy coding parameter of the current sub-node from the target entropy coding parameter set according to the inter context information of the current sub-node;
[0353] In some embodiments, the method further comprises: determining a local sparsity category of the current child node according to the occupancy information of the coded neighbor nodes of the current child node; and determining the target context state set of the current child node according to a third mapping relationship between the plurality of local sparsity categories and the context state set and the local sparsity category of the current child node.
[0354] The local sparsity category is used to indicate the local sparsity of the coded neighbor nodes of the current child node, and the local sparsity category can include one or more sparsity categories and one or more non-sparsity categories. In some embodiments, determining the local sparsity category of the current child node according to the occupancy information of the coded neighbor nodes of the current child node comprises: determining the occupancy number of the neighbor nodes according to the occupancy information of the neighbor nodes; and determining the local sparsity category of the current child node according to the occupancy number of the neighbor nodes. The occupancy information of the neighbor nodes is used to indicate whether the neighbor nodes are occupied, and the occupancy information has a value of 0 or 1, where 0 represents not occupied and 1 represents occupied. That is, according to the occupancy information of the neighbor nodes, the occupancy number (i.e., the number of occupied neighbor nodes NN) of the neighbor nodes can be determined, and different local sparsity categories can be distinguished according to the occupancy number.
[0355] For example, if the occupancy number of the neighbor nodes is greater than a preset threshold, the local sparsity category of the current child node is determined to be a first category; and if the occupancy number of the neighbor nodes is less than or equal to the preset threshold, the local sparsity category of the current child node is determined to be a second category. For example, the first category can be a non-sparsity category, and the second category can be a sparsity category. In actual applications, more thresholds can be used to distinguish more local sparsity categories.
[0356] In the embodiments of the present application, the local sparsity of the current child node is determined according to the occupancy information of the coded neighbor nodes and the position of the child node relative to the parent node. For example, the neighbor nodes include at least one of the following: coded sibling nodes of the current child node; coded neighbor nodes of the current child node in a first preset direction adjacent to the current child node; coded neighbor nodes of the current child node in a second preset direction adjacent to the current child node; and coded neighbor nodes of the current child node in a third preset direction adjacent to the current child node. The first preset direction can be the x-axis negative direction (left direction) of the current child node, the second preset direction can be the y-axis negative direction (front direction) of the current child node, and the third preset direction can be the z-axis negative direction (bottom direction) of the current child node. That is, the local sparsity category can be established according to the occupancy number of the coded neighbor nodes adjacent to the current child node in the xyz negative direction. It should be noted that the coded neighbor nodes of the current child node are the same as or not completely the same as the context nodes of the current node.
[0357] For example, the local sparse category is represented as isSparse, different values of isSparse represent different local sparse categories, and the value of isSparse of the to-be-encoded child node is determined according to the occupancy of the already-encoded neighbor nodes. For example, for the local sparse category of child node 0, the occupancy number (NN) of 12 child nodes adjacent to the current child node in the negative direction of xyz in FIG. 13 can be used to determine the local sparse category of child node 0. If the occupancy number NN>1, the category is non-sparse (isSparse is 0), and if the occupancy number NN≤1, the category is sparse (isSparse is 1). For the local sparse category of child node 1, the occupancy number (NN) of 4 child nodes adjacent to the current child node in the negative direction of y (Front) in FIG. 13 can be used to determine the local sparse category of child node 1. If the occupancy number NN>0, the category is non-sparse, and if the occupancy number NN=0, the category is sparse. For the local sparse category of child node 2, the occupancy number (NN) of 4 child nodes adjacent to the current child node in the negative direction of z (Bottom) in FIG. 13 can be used to determine the local sparse category of child node 2. If the occupancy number NN>0, the category is non-sparse, and if the occupancy number NN=0, the category is sparse. For the local sparse category of child node 3, the occupancy number (NN) of 7 nodes including bit0, bit1, bit2 and 4 nodes adjacent to the current child node in the negative direction of x (Left) in FIG. 13 can be used to determine the local sparse category of child node 3. If the occupancy number NN>1, the category is non-sparse, and if the occupancy number NN≤1, the category is sparse.
[0358] It should be noted that different local sparse categories correspond to different context state sets, and the corresponding context state set can be configured for different local sparse categories in advance to obtain a third mapping relationship, and then the target context state set of the current child node is determined according to the local sparse category of the current child node.
[0359] For example, when the local sparse category is the first category, the target context state set is determined as the first context state set; and when the local sparse category is the second category, the target context state set is determined as the second context state set. In actual applications, more context state sets can also be included. The first context state set includes one or more context states of the first category, and each context state corresponds to corresponding context information of the first category. The second context state set includes one or more context states of the second category, and each context state corresponds to corresponding context information of the second category.
[0360] The context state and the context information are one-to-one correspondence. The context state set can include the corresponding relationship between the context information and the context state, and the context state set can also include the corresponding relationship between the identification information of the context information and the context state. The context information is used as index information of the context state set to index the corresponding context state. The context information is used to represent the occupation of the context node of the to-be-encoded sub-node, which can also be referred to as the context of the to-be-encoded sub-node. The context state is used to represent the first probability of the to-be-encoded sub-node under a kind of context information, which can also be referred to as the probability model of the to-be-encoded sub-node. When the bit of the context information is N bits, there are at most 2 N context states.
[0361] In some embodiments, in the case that the current node enables the inter-prediction mode, the target context state set of the current node is determined from the inter-context state set according to the local sparse category; in the case that the current node enables the intra-prediction mode, the target context state set of the current node is determined from the intra-context state set according to the local sparse category.
[0362] In the embodiments of the present application, the target context state set used is determined according to the local sparse category and the prediction mode. When the non-sparse category is used and the inter-prediction is not used, the intra-non-sparse context state set (IntraNSparse state) is used; when the sparse category is used and the inter-prediction is not used, the intra-sparse context state set (IntraSparse state) is used; when the non-sparse category is used and the inter-prediction is used, the inter-non-sparse context state set (InterNSparse state) is used; and when the sparse category is used and the inter-prediction is used, the inter-sparse context state set (InterSparse state) is used.
[0363] In some embodiments, the method further includes: constructing a plurality of context information in the intra-context state set according to the occupation information of the context node and a first construction strategy, and initializing the context state of each context information; and constructing a plurality of context information in the inter-context state set according to the occupation information of the context node and a second construction strategy, and initializing the context state of each context information.
[0364] In the embodiments of the present application, the first construction strategy can include: constructing the intra-frame context information according to the preset context node scanning order and the occupation information of the context node; or constructing the first information and the second information of the intra-frame context information according to the preset context information composition structure and the occupation information of the context node; the bit number of the first information is fixed, and the bit number of the second information is adjustable. The second construction strategy can include: constructing the inter-frame context information according to the preset context node scanning order, the occupation information of the context node and the occupation information of the prediction node; or constructing the first information and the second information of the inter-frame context information according to the preset context information composition structure, the occupation information of the context node and the occupation information of the prediction node; the bit number of the first information is fixed, and the bit number of the second information is adjustable.
[0365] Further, in the intra-frame prediction mode, the context state of the current node is determined from the target context state set of the current node according to the intra-frame context information of the current node; in the inter-frame prediction mode, the context state of the current node is determined from the target context state set of the current node according to the inter-frame context information of the current node; wherein the target context state set includes the mapping relationship between the plurality of context information and the context state; the target entropy coding parameter of the current node is determined from the target entropy coding parameter set according to the context state of the current node. In the context state set, one or more context information corresponds to one context state, the context information is used to represent the occupation condition of the context node of the current node, and the context state is the probability of the current node occupying or not occupying under the current context information. The target context state set records the context state corresponding to one or more context information, and the context state of the current node is determined by indexing the target context state set through the context information.
[0366] Further, determining the target entropy coding parameter of the current node from the target entropy coding parameter set according to the context state of the current node includes: determining the index value of the target entropy coding parameter according to the context state; and determining the target entropy coding parameter of the current node from the target entropy coding parameter set according to the index value of the target entropy coding parameter. That is, in the target entropy coding parameter set, the context state is mapped to the index value of a certain entropy coding parameter according to a certain mapping rule, which is used to index the target entropy coding parameter.
[0367] In the embodiments of the present application, the context state is a first probability that the current sub-node occupies or does not occupy under the current context information, which can also be referred to as a first probability model of the sub-node. The target entropy coding parameter is a second probability that the current sub-node occupies or does not occupy under the current context information, which can also be referred to as a second probability model of the sub-node. Therefore, the entropy coding parameter can also be understood as a context state, and the set of entropy coding parameters can also be understood as a set of simplified context states.
[0368] When the bit of the context information is 19 bits, there are at most 2 19 When the bit of the context information is 20 bits, there are at most 2 20 When the bit of the context information is 21 bits, there are at most 2 21 In the embodiments of the present application, there are a large number of context states in the set of target context states, and if these context states are directly used for entropy coding, the coding efficiency is low. There are a small number of entropy coding parameters in the set of target entropy coding parameters, and the large number of context states in the set of target context states are mapped to the small number of entropy coding parameters in the set of target entropy coding parameters, so as to simplify the entropy coding parameters and improve the coding efficiency.
[0369] In some embodiments, the context state can be an initial probability that the current sub-node occupies (or does not occupy) 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 sub-node is arithmetically coded by using the indexed probability model, so as to improve the coding efficiency.
[0370] In some embodiments, according to the context state, the index value of the target entropy coding parameter is determined, including: determining the index value of the target entropy coding parameter according to the high M bits of the context state; wherein M is related to the number of parameters in the set of target entropy coding parameters. For example, when the number N of parameters in the set of target entropy coding parameters is 32, the high 5 bits of the context state are taken, and the value of the high 5 bits is the index value of the target entropy coding parameter.
[0371] S306: Entropy coding the occupancy information of the current sub-node according to the target entropy coding parameter, and writing the obtained coding bits into the code stream.
[0372] In some embodiments, the method further includes: updating the target entropy coding parameter according to the occupancy information of the current sub-node.
[0373] In some embodiments, the method further includes: updating the context state according to the occupancy information of the current sub-node.
[0374] On the basis of the above-mentioned embodiments, the encoding method provided by the embodiments of the present application is further exemplified. As shown in FIG. 17, the encoding method is specifically a point cloud geometry information encoding method, which can include the following steps.
[0375] S401: Local sparsity determination
[0376] According to the occupancy information of the encoded neighbor nodes, the local sparsity (isSparse) of the to-be-encoded symbol bn is determined. For example, for the child node 0, the local sparsity is determined according to the occupancy number (NN) of the 12 child nodes adjacent to the current child node in the negative direction of xyz, and the occupancy number NN>1 is non-sparse (isSparse is 0), and the occupancy number NN≤1 is sparse (isSparse is 1).
[0377] According to the value (0 or 1) of isSparse, 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, according to the occupancy information (predOcc) of the motion-compensated first prediction node of the current node in the reference frame and the enablement identification (isInter) of the inter-frame prediction, it is determined whether to enable the 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 together, and predOcc is an identification for indicating whether the prediction node is occupied. Specifically, if at least one child node bPi in the prediction node is occupied, predOcc is set to 1; otherwise, if no child node is occupied, predOcc is 0. In addition, the value of isInter is controlled by a syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the upper-layer inter-frame prediction is enabled. If the inter-frame prediction is enabled, it is called a P frame, and isInter is 1; otherwise, if the inter-frame prediction is not enabled, it is called an I frame, and isInter is 0.
[0381] In some other possible embodiments, according to the occupancy information (predOcc) of the motion-compensated first prediction node of the current node in the reference frame, the occupancy information (predOccUnComp) of the uncompensated second prediction node, and the enablement identification (isInter) of the inter-frame prediction, it is determined whether to enable the inter-frame prediction, that is, the value of isInter2 is determined.
[0382] isInter2 = isInter && (predOcc || predOccUnComp), i.e. the value of isInter2 is determined by isInter and predOcc and predOccUnComp together, where predOcc is an indicator for indicating whether the prediction node is occupied or not. Specifically, if at least one child node bPi in the prediction node is occupied, predOcc is set to 1; otherwise, if no child node is occupied, predOcc is 0. predOccUnComp is an indicator for indicating whether the uncompensated prediction node is occupied or not. Specifically, if at least one child node bPiUnComp in the uncompensated prediction node is occupied, predOccUnComp is set to 1; otherwise, if no child node is occupied, predOccUnComp is 0. In addition, the value of isInter is controlled by a syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the inter prediction of the upper layer is enabled or not. If the inter prediction is enabled, it is called P frame, and isInter is 1; otherwise, if the inter prediction is not enabled, it is called I frame, and isInter is 0.
[0383] S403: Context state selection
[0384] Firstly, according to whether isSparse and isInter2, the used context state set is determined. When the non-sparse category and the inter prediction is not used, the intra non-sparse context state set (IntraNSparse state) is used; when the sparse category and the inter prediction is not used, the intra sparse context state set (IntraSparse state) is used; when the non-sparse category and the inter prediction is used, the inter non-sparse context state set (InterNSparse state) is used; when the sparse category and the inter prediction is used, the inter sparse context state set (InterSparse state) is used. Wherein, the construction method of the context information in the intra non-sparse context state set (IntraNSparse state) and the intra sparse context state set (IntraSparse state) can be the construction method in OBUF, or the construction method of dynamic OBUF.
[0385] In some possible implementation manners, 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, and does not need to use inter-frame prediction information to participate in construction, thereby reducing the number of inter-frame context states, saving storage space, and improving decoding efficiency.
[0386] In some possible implementation manners, the inter-frame context information construction method can be set according to the occupancy information of the compensated or uncompensated prediction subnode compared with the intra-frame, for example, Inter_ctx1 = Intra_ctx1 << 1 | bit, or Inter_ctx1 = Intra_ctx1 << 1 | bit UnComp , where bit represents the prediction information of the motion-compensated prediction subnode, bit = (bPi) > k, bit UnComp represents the prediction information of the uncompensated prediction subnode, bit UnComp = (bPi UnComp ) > k. At this time, the number of inter-frame context states is half of the number of inter-frame context states obtained by the traditional inter-frame context information construction method, storage space is saved, calculation complexity is reduced, and coding efficiency is improved. For example, when the bit of the intra-frame context information is at most 19 bits, the bit of the inter-frame context information is at most 20 bits, in the case of obtaining the same coding quality, the code rate can be saved, and the coding efficiency is improved.
[0387] In some possible implementation manners, when the inter-frame context is constructed, the occupancy information of the uncompensated prediction node can also be considered, that is, Inter_ctx1 = Intra_ctx1 << 2 | predL << 1 | pred is changed to Inter_ctx1 = Intra_ctx1 << 2 | bPi UnComp . For example, when the bit of the intra-frame context information is at most 19 bits, the bit of the inter-frame context information is at most 21 bits, the uncompensated inter-frame information is used, in the case of obtaining the same coding quality, the code rate can be saved, and the coding efficiency is improved.
[0388] Secondly, in the selected context state set, the context state of the to-be-encoded subnode is obtained according to the context information of the to-be-decoded subnode, that is, the probability P S that the to-be-encoded subnode occupies (or does not occupy) under this context is obtained.
[0389] The method for constructing the context information of the to-be-decoded sub-node corresponding to the selected set of inter-frame context states 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 prediction sub-node, or constructing according to the occupancy information of the context node and the occupancy information of the second prediction sub-node.
[0390] The method for determining the occupancy information of the compensated prediction sub-node is as follows:
[0391] Wherein, bP i is the occupancy information of the compensated prediction sub-node i, NodePoints[i] represents the number of points in the compensated prediction sub-node i, th j is the jth threshold value, the threshold value is related to the size of the node, if Nodesize represents the current node size, th1 = max(0, Nodesize >> 8), th2 = max(2, Nodesize >> 4), th3 = max(8, Nodesize >> 2).
[0392] Specifically, according to the occupancy information of the prediction sub-node, the information determined as inter prediction (isInter2 = 1) is divided into the following four categories:
[0393] a) Pred0: When the prediction sub-node i is empty, the current sub-node i is predicted to be unoccupied bPi = 0.
[0394] b) Pred1: When the prediction sub-node i is not empty and the number of points (Npred) exceeds the first threshold value th1 but does not exceed the second threshold value th2, the current sub-node i is predicted to be occupied bPi = 1;
[0395] c) predL: When the prediction sub-node i is not empty and the number of points (Npred) exceeds the second threshold value th2 but does not exceed the third threshold value th3, the current sub-node i is predicted to be strongly occupied bPi = 2;
[0396] d) predLL: When the prediction sub-node i is not empty and the number of points (Npred) exceeds the third threshold value th3, the current sub-node i is predicted to be very strongly occupied bPi = 3.
[0397] The method for determining the prediction information of the compensated prediction sub-node is as follows: bit = (bPi) > k
[0398] Wherein, bit is 1-bit prediction information, bPi is the occupancy information of the compensated prediction sub-node, the value of bPi can be 0 or 1 or 2 or 4, etc., k is the fourth threshold value, the value of k can be 0 or 1 or 2, etc.
[0399] The method for determining the occupancy information of the uncompensated prediction sub-node is as follows:
[0400] where bP i UnComp is the occupancy information of the uncompensated prediction child node i, NodePointsUnComp[i] represents the number of points in the uncompensated prediction child node i, th j is a threshold value, the threshold value is related to the size of the node, if Nodesize represents the current node size, then th1 = max(0, Nodesize >> 8), th2 = max(2, Nodesize >> 4), th3 = max(8, Nodesize >> 2).
[0401] According to the number of points in the uncompensated prediction node, the uncompensated inter prediction information determined as inter prediction (isInter2 = 1) is divided into the following four categories:
[0402] a) Pred0 UnComp : uncompensated child node i is predicted as not occupying bP iUnComp = 0;
[0403] b) Pred1 UnComp : uncompensated child node i is predicted as occupying bP i UnComp = 1;
[0404] c) PredL UnComp : uncompensated child node i is predicted as strongly occupying bP UnComp = 2;
[0405] d) PredLL UnComp : uncompensated child node i is predicted as very strongly occupying bP UnComp = 3.
[0406] The determination method of the prediction information of the uncompensated prediction child node is as follows: bit UnComp = (bP iUnComp > k
[0407] where bit UnComp is a 1-bit prediction information, bP iUnComp is the occupancy information of the uncompensated prediction child node, the value of bP iUnComp may be 0 or 1 or 2 or 4, etc., and k is a fourth threshold value, the value of k may be 0 or 1 or 2, etc.
[0408] S404: Entropy coding parameter selection
[0409] Firstly, for intra prediction mode, according to the context state set selected by the to-be-encoded child node, the set of entropy coding parameters used can also be called an encoder group, and each encoder contains an entropy coding parameter. For inter prediction mode, according to the occupancy information of the prediction child node, the set of entropy coding parameters used is determined.
[0410] 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 for intra prediction; if the intra sparse context state set (IntraSparse state) is used, the intra sparse encoder group (IntraSparse Coder) is determined to be used for intra prediction.
[0411] If the inter prediction is determined, and the occupancy information of the prediction child node is not occupied bPi=0, the inter entropy coding parameter set InterPred0 Coder is determined to be used; if the inter prediction is determined, and the occupancy information of the prediction child node is occupied bPi=1, the inter entropy coding parameter set InterPred1 Coder is determined to be used; if the inter prediction is determined, and the occupancy information of the prediction child node is strongly occupied bPi=2, the inter entropy coding parameter set InterPredL Coder is determined to be used; if the inter prediction is determined, and the occupancy information of the prediction child node is very strongly occupied bPi=3, the inter entropy coding parameter set InterPredLL Coder is determined to be used. That is, for inter prediction, considering the correlation between the inter sparse context state and the inter non-sparse context state, the sparse context state and the non-sparse context state share the set of entropy coding parameters, and only according to the prediction of not occupied, occupied, strongly occupied and very strongly occupied, the set of entropy coding parameters is selected, the code rate is reduced, and the coding efficiency is improved.
[0412] Secondly, in the determined encoder group, according to a certain mapping rule, the context state P S of bn is mapped to the encoder Ci. The mapping rule can be to take the high 5 bits of the context state, and the value of the high 5 bits is the index value of the mapped encoder. The probability of the mapped encoder Ci is P C .
[0413] S405: adaptive arithmetic coding
[0414] The determined probability P C of the encoder Ci is used to perform adaptive arithmetic coding on the occupancy information bn of the to-be-encoded child node.
[0415] The encoding method provided by the embodiments of the present application, when performing point cloud inter-frame prediction, determines a suitable point number threshold according to a current node size, thereby reasonably distinguishing the occupancy of a prediction sub-node and selecting an optimal entropy encoding 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 encoding parameter set, and the entropy encoding parameter set is selected only according to the prediction of non-occupancy, occupancy, strong occupancy and very strong occupancy, thereby reducing the code rate and improving the encoding efficiency.
[0416] The encoding and decoding method provided by the embodiments of the present application fully utilizes the inter-frame prediction information, and further improves the G-PCC geometry encoding efficiency. If the inter-frame context is Inter_ctx1=Intra_ctx1<<1|predLL, the entropy encoding parameter set is selected according to the prediction of non-occupancy, occupancy, strong occupancy and very strong occupancy, and the BD-Rate under the condition of lossy compression of geometry information is represented. Compared with the prior art, in the case of obtaining the same encoding quality, the percentage of saving (BD-Rate is negative) or increasing (BD-Rate is positive) of the encoding code rate of the present application compared with the encoding code rate of the prior art, and the test results are shown in Table 9 and Table 10.
[0417] Table 9 BD-Rate of GES-TM-v4.0-Octree RAHT inter lossy compression
[0418] Table 10 BD-Rate of GES-TM-v4.0-TriSoup RAHT inter lossy compression
[0419] If the uncompensated inter-frame information is considered, that is, the inter-frame context is Inter_ctx1=Intra_ctx1<<2|bPiUnComp, the entropy encoding parameter set is selected according to the prediction of non-occupancy, occupancy, strong occupancy and very strong occupancy, and the BD-Rate under the condition of lossy compression of geometry information is represented. Compared with the prior art, in the case of obtaining the same encoding quality, the percentage of saving (BD-Rate is negative) or increasing (BD-Rate is positive) of the encoding code rate of the present application compared with the encoding code rate of the prior art, and the test results are shown in Table 11 and Table 12.
[0420] Table 11 BD-Rate of GES-TM-v4.0-Octree RAHT inter lossy compression
[0421] Table 12 BD-Rate of GES-TM-v4.0-TriSoup RAHT inter lossy compression
[0422] In yet another embodiment of the present application, based on the same inventive concept as the foregoing embodiments, referring to FIG. 18, a schematic diagram of a point cloud encoder according to an embodiment of the present application is shown. As shown in FIG. 18, the point cloud encoder 180 can include a first determining unit 1801, a first prediction unit 1802 and an encoding unit 1803; wherein,
[0423] The first determining unit 1801 is configured to, in a case where the inter prediction mode is enabled for the current node, determine a point number threshold according to a size parameter of the current node, wherein the point number threshold includes one or more threshold values.
[0424] The first prediction unit 1802 is configured to determine the occupancy information of the prediction sub-node according to the point number of the prediction sub-node corresponding to the current sub-node to be encoded in the current node and the point number threshold, and determine the target entropy encoding parameter set of the current sub-node according to the occupancy information of the prediction sub-node.
[0425] The first determining unit 1801 is configured to determine the inter-frame context information of the current sub-node according to the occupancy information of the encoded lower node and the occupancy information of the prediction sub-node of the current sub-node, and determine the target entropy encoding parameter of the current sub-node from the target entropy encoding parameter set according to the inter-frame context information of the current sub-node.
[0426] The encoding unit 1803 is configured to entropy encode the occupancy information of the current sub-node according to the target entropy encoding parameter, and write the obtained encoded bits into a bitstream.
[0427] It can be understood that each functional unit of the point cloud encoder also performs the encoding method of any one of the foregoing embodiments.
[0428] It can be understood that in the embodiments of the present application, the "unit" can be a part of circuit, a part of processor, a part of program or software, etc., and of course can also be a module, and can also be non-modular. Moreover, each component in the embodiments can be integrated in a processing unit, or each unit can exist physically independently, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware, or in the form of a software functional module.
[0429] If the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium based on such understanding. The technical solutions of the embodiments essentially or the part that contributes to the prior art or the whole or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a plurality of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the embodiments. The aforementioned storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various media that can store program codes.
[0430] Therefore, the embodiments of the present application provide a computer readable storage medium applied to the point cloud encoder 180, the computer readable storage medium stores a computer program, and the computer program is executed by the first processor to implement the encoding method of any one of the foregoing embodiments.
[0431] Based on the composition of the point cloud encoder 180 and the computer readable storage medium, referring to FIG. 19, a specific hardware structure schematic diagram of the point cloud encoder 180 provided by the embodiments of the present application is shown. As shown in FIG. 19, the point cloud encoder 180 can 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 communication between the components. The first bus system 1904 includes a data bus, a power supply bus, a control bus, and a state signal bus. However, for the purpose of clear illustration, all kinds of buses are marked as the first bus system 1904 in FIG. 19. Among them,
[0432] The first communication interface 1901 is used for receiving and sending signals in the process of transceiving information with other external network elements;
[0433] The first memory 1902 is used for storing a computer program capable of running on the first processor 1903;
[0434] The first processor 1903 is used for executing the following when running the computer program:
[0435] In the case that the current node enables the inter-frame prediction mode, the point number threshold is determined according to the size parameter of the current node, wherein the point number threshold includes one or more threshold values;
[0436] According to the number of points of the prediction node corresponding to the current sub-node to be encoded in the current node and the point number threshold, the occupancy information of the prediction node is determined;
[0437] According to the occupancy information of the prediction node, a target entropy coding parameter set of the current sub-node is determined;
[0438] According to the occupancy information of the prediction node and the occupancy information of the upper node of the current sub-node that has been encoded, inter-frame context information of the current sub-node is determined;
[0439] According to the inter-frame context information of the current sub-node, a target entropy coding parameter of the current sub-node is determined from the target entropy coding parameter set;
[0440] According to the target entropy coding parameter, the occupancy information of the current sub-node is entropy coded, and the obtained coded bits are written into a bitstream.
[0441] It can be understood that the first memory 1902 in the embodiments 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 (Read-Only Memory, ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically erasable programmable read-only memory (Electrically EPROM, EEPROM) or a flash memory. The volatile memory can be a random access memory (Random Access Memory, RAM) used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (Static RAM, SRAM), dynamic random access memory (Dynamic RAM, DRAM), synchronous dynamic random access memory (Synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (Double Data Rate SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (Enhanced SDRAM, ESDRAM), synchronous link dynamic random access memory (Synchlink DRAM, SLDRAM) and direct memory bus random access memory (Direct Rambus RAM, DRRAM). The first memory 1902 of the system and method described in the present application is intended to include but not limited to these and any other suitable types of memory.
[0442] The first processor 1903 can be an integrated circuit chip, which has the processing capability of signals. In the implementation process, each step of the above method can be completed by the integrated logic circuit of hardware or the instruction in the form of software in the first processor 1903. The first processor 1903 described above can be a general processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component. Each method, step and logic block disclosed in the embodiment of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor. The steps of the method disclosed in combination with the embodiment of the present application can be directly embodied as a hardware code processor to execute, or be executed by a combination of hardware and software modules in the code processor. The software module can be located in a random access memory, a flash memory, a read only memory, a programmable read only memory or an electrically erasable programmable memory, a register or other mature storage medium in the art. The storage medium is located in the first storage 1902, and the first processor 1903 reads the information in the first storage 1902, and combines the hardware to complete the steps of the above method.
[0443] It can be understood that the embodiments described in the present application can be realized by hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be realized in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for executing functions of the present application or a combination thereof. For software implementation, the technology of the present application can be realized by modules (such as processes, functions, etc.) for executing functions of the present application. The software code can be stored in the memory and executed by the processor. The memory can be implemented in the processor or outside the processor.
[0444] Optionally, as another embodiment, the first processor 1903 is further configured to, when running the computer program, perform the encoding method of any one of the preceding embodiments.
[0445] The embodiment provides a point cloud encoder, in which, when performing point cloud inter-frame prediction, a suitable point number threshold is determined according to a current node size, so that an occupancy condition of a prediction sub-node is reasonably distinguished, and an optimal entropy encoding parameter set is selected for a current sub-node. Further, considering the correlation between an inter-frame sparse context state and an inter-frame non-sparse context state, the entropy encoding parameter set is shared by the sparse context state and the non-sparse context state, and the entropy encoding parameter set is selected only according to prediction as not occupying, occupying, strongly occupying and very strongly occupying, so that the code rate is reduced and the encoding efficiency is improved.
[0446] The embodiment of the present application further provides a computer readable storage medium, which stores a code stream generated by the encoding method of any one of the preceding embodiments. The code stream is generated by bit encoding according to to-be-encoded information. The to-be-encoded information at least includes occupancy information of a current sub-node.
[0447] In still another embodiment of the present application, based on the same inventive concept of the preceding embodiments, referring to FIG. 20, a component structure schematic diagram of a point cloud decoder provided by the embodiment of the present application is shown. As shown in FIG. 20, the point cloud decoder 200 can include a second determination unit 2001, a second prediction unit 2002 and a decoding unit 2003; wherein,
[0448] The second determination unit 2001 is configured to, in a case where an inter-frame prediction mode is enabled for a current node, determine a point number threshold according to a size parameter of the current node, wherein the point number threshold includes one or more threshold values.
[0449] The second prediction unit 2002 is configured to determine occupancy information of a prediction sub-node according to a point number of the prediction sub-node corresponding to a to-be-decoded current sub-node in the current node and the point number threshold.
[0450] The second determination unit 2001 is configured to determine a target entropy decoding parameter set of the current sub-node according to the occupancy information of the prediction sub-node, determine inter-frame context information of the current sub-node according to occupancy information of a decoded lower node of the current sub-node and the occupancy information of the prediction sub-node, and determine a target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set according to the inter-frame context information of the current sub-node.
[0451] The decoding unit 2003 is configured to perform entropy decoding on the code stream according to the target entropy decoding parameter, and determine the occupancy information of the current sub-node.
[0452] It can be understood that each functional unit of the point cloud decoder also performs the decoding method of any one of the preceding embodiments.
[0453] It can be understood that in the present embodiment, the "unit" can be a partial circuit, a partial processor, a partial program or software, etc., and of course can also be a module, and can also be non-modular. Moreover, each component in the present embodiment can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software function module.
[0454] When the integrated unit is realized in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium. Based on such understanding, the present embodiment provides a computer readable storage medium applied to the point cloud decoder 200, and the computer readable storage medium stores a computer program, and the computer program is executed by the second processor to implement the decoding method of any one of the preceding embodiments.
[0455] Based on the composition of the point cloud decoder 200 and the computer readable storage medium, referring to FIG. 21, a specific hardware structure schematic diagram of the point cloud decoder 200 provided by the present embodiment is shown. As shown in FIG. 21, the point cloud decoder 200 can include a second communication interface 2101, a second memory 2102 and a second processor 2103; 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 communication between the components. The second bus system 2104 includes not only a data bus, but also a power bus, a control bus and a state signal bus. However, for the purpose of clear illustration, all kinds of buses are marked as the second bus system 2104 in FIG. 21. Among them,
[0456] The second communication interface 2101 is used for receiving and sending signals in the process of transceiving information with other external network elements;
[0457] The second memory 2102 is used for storing a computer program capable of running on the second processor 2103;
[0458] The second processor 2103 is used for, when running the computer program, executing:
[0459] In the case that the current node enables the inter-frame prediction mode, determining a point number threshold according to a size parameter of the current node, wherein the point number threshold includes one or more threshold values;
[0460] Determining the occupancy information of the prediction sub-node according to the point number of the prediction sub-node corresponding to the current sub-node to be decoded in the current node and the point number threshold.
[0461] determine a target set of entropy decoding parameters of the current sub-node according to the occupancy information of the prediction sub-node;
[0462] determine inter-frame context information of the current sub-node according to the occupancy information of the decoded lower node of the current sub-node and the occupancy information of the prediction sub-node;
[0463] determine a target set of entropy decoding parameters of the current sub-node according to the occupancy information of the prediction sub-node;
[0464] determine a target set of entropy decoding parameters of the current sub-node according to the occupancy information of the prediction sub-node;
[0465] Optionally, as another embodiment, the second processor 2103 is further configured to execute the decoding method of any one of the preceding embodiments when running the computer program.
[0466] It can be understood that the second memory 2102 has similar hardware functions as the first memory 1902, and the second processor 2103 has similar hardware functions as the first processor 1903; and details are not described herein.
[0467] The embodiment provides a point cloud decoder, in which, when performing inter-frame prediction of a point cloud, a suitable point number threshold is determined according to a current node size, so that the occupancy of a prediction node is reasonably divided, and the best set of entropy decoding parameters is selected for a current sub-node. Further, for inter-frame prediction, the correlation between an inter-frame sparse context state and an inter-frame non-sparse context state is considered, so that the entropy decoding parameter set is shared by the sparse context state and the non-sparse context state, and the set of entropy decoding parameters is selected only according to prediction of non-occupancy, occupancy, strong occupancy and very strong occupancy, thereby improving decoding efficiency.
[0468] The embodiment further provides a computer program product, including a computer program or instructions, which, when executed by a processor, performs the encoding method or the decoding method of any one of the preceding embodiments.
[0469] In another embodiment of the present application, referring to FIG. 22, a schematic diagram of a composition structure of a coding system provided in the embodiment of the present application is shown. As shown in FIG. 22, the coding system 220 can include a point cloud encoder 2201 and a point cloud decoder 2202.
[0470] In the embodiment of the present application, the point cloud encoder 2201 can be the point cloud encoder described in any one of the preceding embodiments, and the point cloud decoder 2202 can be the point cloud decoder described in any one of the preceding embodiments.
[0471] It should be noted that in the present application, the terms "comprising", "containing" or any other variant thereof are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements in the list, but can also include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without more limitations, an element defined by the phrase "comprising a" does not exclude the existence of additional identical elements in the process, method, article, or apparatus that includes the element.
[0472] The above-mentioned sequence numbers of the embodiments of the present application are only for description, and do not represent the advantages or disadvantages of the embodiments.
[0473] The methods disclosed in the several method embodiments of the present application can be combined arbitrarily without conflict to obtain new method embodiments. The features disclosed in the several product embodiments of the present application can be combined arbitrarily without conflict to obtain new product embodiments. The features disclosed in the several method or device embodiments of the present application can be combined arbitrarily without conflict to obtain new method embodiments or device embodiments.
[0474] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of changes or replacements within the technical range disclosed by the present application, which should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims. Industrial applicability
[0475] The embodiment of the present application provides a coding method, a point cloud encoder, a point cloud decoder and a storage medium. When performing point cloud inter-frame prediction at the encoding end or the decoding end, a point number threshold is determined according to a size parameter of a current node; occupation information of a prediction sub-node is determined; a target entropy encoding / decoding parameter set of the current sub-node is determined according to the inter-frame information; a target entropy encoding / decoding parameter is determined according to the inter-frame context information of the current sub-node; and the occupation information of the current sub-node is entropy encoded / decoded according to the target entropy encoding / decoding parameter. In this way, when performing point cloud inter-frame prediction, a suitable point number threshold is determined according to the size of the current node, so as to reasonably distinguish the occupation situation of the prediction sub-node, select the best entropy encoding / decoding parameter set for the current sub-node, and further select the best entropy encoding / decoding parameter for encoding / decoding according to the inter-frame context information, thereby reducing the code rate and improving the coding efficiency.
Claims
1. A decoding method applied to a point cloud decoder, the method comprising: in a case where an inter prediction mode is enabled for a current node, determining a point number threshold according to a size parameter of the current node, wherein the point number threshold comprises one or more threshold values; determining occupancy information of a prediction node corresponding to a current child node to be decoded in the current node according to a point number of the prediction node and the point number threshold; determining a target set of entropy decoding parameters of the current child node according to the occupancy information of the prediction node; determining inter context information of the current child node according to the occupancy information of a decoded upper node of the current child node and the occupancy information of the prediction node; determining a target entropy decoding parameter of the current child node from the target set of entropy decoding parameters according to the inter context information of the current child node; entropy decoding a bitstream according to the target entropy decoding parameter to determine occupancy information of the current child node.
2. The method of claim 1, wherein, The method further comprises: determining whether the inter prediction mode is enabled for the current node according to a value of a first syntax element; in a case where the inter prediction mode is enabled for the current node, determining occupancy information of a prediction node of the current node in a reference frame; determining whether the inter prediction mode is enabled for the current node according to the occupancy information of the prediction node.
3. The method of claim 2, wherein, The prediction node comprises 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 of claim 3, wherein, The determining whether the inter prediction mode is enabled for the current node according to the occupancy information of the prediction node comprises: in a case where the occupancy information of the first prediction node is represented as occupied or the occupancy information of the second prediction node is represented as occupied, determining that the inter prediction mode is enabled for the current node; in a case where the occupancy information of the first prediction node is represented as not occupied and the occupancy information of the second prediction node is represented as not occupied, determining that an intra prediction mode is enabled for the current node.
5. The method of claim 1, wherein, The determining the point number threshold according to the size parameter of the current node comprises: in a case where it is determined according to the size parameter that a preset first value is not to be adjusted, taking the first value as a first threshold value in the point number threshold; or in a case where it is determined according to the size parameter that the first value is to be adjusted, taking a second value obtained according to the size parameter as the first threshold value in the point number threshold.
6. The method of claim 5, wherein, The method further comprises: converting the size parameter according to a first conversion factor corresponding to the first value to obtain the second value; in a case where the first value is greater than or equal to the second value, determining that the first value is not to be adjusted; in a case where the first value is less than the second value, determining that the first value is to be adjusted.
7. The method of claim 6, wherein, The first conversion factor is a right shift number of the size parameter.
8. The method according to any one of claims 1 to 7, wherein, The determining the occupancy information of the prediction node according to the point number of the prediction node corresponding to the current child node to be decoded in the current node and the point number threshold comprises: determine a plurality of point number ranges and a first mapping relationship of occupancy information according to the one or more of the point number thresholds; determine occupancy information of the predicted child node according to the first mapping relationship and the point number of the predicted child node.
9. The method of claim 8, wherein, The first mapping relationship includes: when the point number of the predicted child node is less than or equal to a first threshold, determine that a value of the occupancy information of the predicted child node is a third value, which is used to represent non-occupancy; when the point number of the predicted child node is greater than the first threshold and less than or equal to a second threshold, determine that the value of the occupancy information of the predicted child node is a fourth value, which represents a first occupancy intensity; when the point number of the predicted child node is greater than the second threshold and less than or equal to a third threshold, determine that the value of the occupancy information of the predicted child node is a fifth value, which represents a second occupancy intensity; when the point number of the predicted child node is greater than the third threshold, determine that the value of the occupancy information of the predicted child node is a sixth value, which represents a third occupancy intensity.
10. The method according to any one of claims 1 to 9, wherein, The determining the target entropy decoding parameter set of the current node according to the occupancy information of the predicted child node includes: determining the target entropy decoding parameter set of the current node according to a second mapping relationship between a plurality of occupancy information and an inter-frame entropy decoding parameter set, and the occupancy information of the predicted child node.
11. The method of claim 10, wherein, The predicted child node is a motion-compensated predicted child node.
12. The method according to any one of claims 1 to 11, wherein, The determining the inter-frame context information of the current node according to the occupancy information of the decoded upper child node of the current node and the occupancy information of the predicted child node includes: determining intra-frame context information of the current node according to the occupancy information of the decoded upper child node of the current node; determining prediction information of the predicted child node according to a value of the occupancy information of the predicted child node and a fourth threshold value; adding the prediction information of the predicted child node to the intra-frame context information of the current node to determine the inter-frame context information of the current node.
13. The method of claim 12, wherein, The determining the prediction information of the predicted child node according to the value of the occupancy information of the predicted child node and the fourth threshold value includes: when the value of the occupancy information is less than or equal to the fourth threshold value, determining that a value of the prediction information is a seventh value; when the value of the occupancy information is greater than the fourth threshold value, determining that a value of the prediction information is an eighth value.
14. The method of claim 13, wherein, The method further includes: decoding a code stream to determine the fourth threshold value.
15. The method according to any one of claims 12 to 14, wherein, The predicted child node is a motion-compensated predicted child node, or the predicted child node is a non-motion-compensated predicted child node.
16. The method of any one of claims 1 to 15, wherein, The method further includes: determining a local sparse category of a current node according to occupancy information of a decoded neighbor node of the current node; determining a target context state set of the current node according to a third mapping relationship between a plurality of local sparse categories and a context state set, and the local sparse category of the current node; The determining the target entropy decoding parameter of the current node from the target entropy decoding parameter set according to the inter-frame context information of the current node includes: determining a context state of the current sub-node from the inter-frame context information of the current sub-node, wherein the target context state set comprises a mapping relationship between a plurality of context information and context states; determining a target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set according to the context state of the current sub-node.
17. An encoding method applied to a point cloud encoder, the method comprising: in a case where the current node enables an inter-frame prediction mode, determining a point number threshold according to a size parameter of the current node, wherein the point number threshold comprises one or more threshold values; determining occupancy information of a prediction sub-node corresponding to a current sub-node to be encoded in the current node according to a point number of the prediction sub-node and the point number threshold; determining a target entropy encoding parameter set of the current sub-node according to the occupancy information of the prediction sub-node; determining inter-frame context information of the current sub-node according to occupancy information of a previously encoded parent node of the current sub-node and the occupancy information of the prediction sub-node; determining a target entropy encoding parameter of the current sub-node from the target entropy encoding parameter set according to the inter-frame context information of the current sub-node; entropy encoding the occupancy information of the current sub-node according to the target entropy encoding parameter, and writing the obtained encoded bits into a bitstream.
18. The method of claim 17, wherein, The method further comprises: determining whether the current node allows enabling an inter-frame prediction mode according to a value of a first syntax element; in a case where the current node allows enabling an inter-frame prediction mode, determining occupancy information of a prediction node of the current node in a reference frame; determining whether the current node enables an inter-frame prediction mode according to the occupancy information of the prediction node.
19. The method of claim 18, wherein, The prediction node comprises a first prediction node and / or a second prediction node, wherein the first prediction node is a prediction node determined by motion compensation of a 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 of claim 19, wherein, The determining whether the current node enables an inter-frame prediction mode according to the occupancy information of the prediction node comprises: when the occupancy information of the first prediction node is represented as occupied or the occupancy information of the second prediction node is represented as occupied, determining that the current node enables an inter-frame prediction mode; when the occupancy information of the first prediction node is represented as unoccupied and the occupancy information of the second prediction node is represented as unoccupied, determining that the current node enables an intra-frame prediction mode.
21. The method of claim 17, wherein, The determining a point number threshold according to the size parameter of the current node comprises: in a case where it is determined according to the size parameter that a preset first value is not to be adjusted, taking the first value as a first threshold in the point number threshold; or in a case where it is determined according to the size parameter that the first value is to be adjusted, taking a second value obtained according to the size parameter as a first threshold in the point number threshold.
22. The method of claim 21, wherein, The method further comprises: converting the size parameter according to a first conversion factor corresponding to the first value to obtain the second value. In a case where the first value is greater than or equal to the second value, it is determined that the first value is not adjusted. In a case where the first value is less than the second value, it is determined that the first value is adjusted.
23. The method of claim 22, wherein, The first conversion factor is a right shift number of the size parameter.
24. The method of any one of claims 17 to 23, wherein, The determining the occupancy information of the prediction node according to the point number threshold and the point number of the prediction node corresponding to the current node to be encoded, comprises: determining a plurality of point number ranges and a first mapping relationship of occupancy information according to one or more thresholds in the point number threshold; determining the occupancy information of the prediction node according to the first mapping relationship and the point number of the prediction node.
25. The method of claim 24, wherein, The first mapping relationship comprises: in a case where the point number of the prediction node is less than or equal to a first threshold, it is determined that a value of the occupancy information of the prediction node is a third value, which is used to represent non-occupancy; in a case where the point number of the prediction node is greater than the first threshold and less than or equal to a second threshold, it is determined that the value of the occupancy information of the prediction node is a fourth value, which represents a first occupancy intensity; in a case where the point number of the prediction node is greater than the second threshold and less than or equal to a third threshold, it is determined that the value of the occupancy information of the prediction node is a fifth value, which represents a second occupancy intensity; in a case where the point number of the prediction node is greater than the third threshold, it is determined that the value of the occupancy information of the prediction node is a sixth value, which represents a third occupancy intensity.
26. The method of any one of claims 17 to 25, wherein, The determining the target entropy coding parameter set of the current node according to the occupancy information of the prediction node, comprises: determining the target entropy coding parameter set of the current node according to a second mapping relationship between a plurality of occupancy information and an inter-frame entropy coding parameter set and the occupancy information of the prediction node.
27. The method of claim 26, wherein, The prediction node is a motion-compensated prediction node.
28. The method of any one of claims 17 to 27, wherein, The determining the inter-frame context information of the current node according to the occupancy information of the decoded upper node of the current node and the occupancy information of the prediction node, comprises: determining the intra-frame context information of the current node according to the occupancy information of the decoded upper node of the current node; determining prediction information of the prediction node according to a value of the occupancy information of the prediction node and a fourth threshold; adding the prediction information of the prediction node to the intra-frame context information of the current node to determine the inter-frame context information of the current node.
29. The method of claim 28, wherein, The determining the prediction information of the prediction node according to the value of the occupancy information of the prediction node and the fourth threshold, comprises: in a case where the value of the occupancy information is less than or equal to the fourth threshold, it is determined that a value of the prediction information is a seventh value; in a case where the value of the occupancy information is greater than the fourth threshold, it is determined that a value of the prediction information is an eighth value.
30. The method of any one of claims 18 to 29, wherein, The prediction node is a motion-compensated prediction node, or the prediction node is a non-motion-compensated prediction node.
31. 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 number threshold according to a size parameter of a current node in a case where an inter prediction mode is enabled for the current node, wherein the point number threshold comprises one or more thresholds; the first predicting unit is configured to determine occupancy information of a prediction node corresponding to a current sub-node to be encoded in the current node according to a point number of the prediction node and the point number threshold, and determine a target set of entropy encoding parameters of the current sub-node according to the occupancy information of the prediction node; the first determining unit is configured to determine inter context information of the current sub-node according to occupancy information of a previously encoded lower node of the current sub-node and the occupancy information of the prediction node, and determine a target entropy encoding parameter of the current sub-node from the target set of entropy encoding parameters according to the inter context information of the current sub-node; the encoding unit is configured to entropy encode the occupancy information of the current sub-node according to the target entropy encoding parameter, and write obtained encoded bits into a bitstream.
32. A point cloud encoder, comprising a first memory and a first processor; wherein, the first memory is configured to store a computer program capable of running on the first processor; the first processor is configured to execute the method according to any one of claims 17 to 29 when running the computer program.
33. 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 number threshold according to a size parameter of a current node in a case where an inter prediction mode is enabled for the current node, wherein the point number threshold comprises one or more thresholds; the second predicting unit is configured to determine occupancy information of a prediction node corresponding to a current sub-node to be decoded in the current node according to a point number of the prediction node and the point number threshold; the second determining unit is configured to determine a target set of entropy decoding parameters of the current sub-node according to the occupancy information of the prediction node, and determine a target entropy decoding parameter of the current sub-node from the target set of entropy decoding parameters according to inter context information of the current sub-node; the decoding unit is configured to entropy decode a bitstream according to the target entropy decoding parameter, and determine the occupancy information of the current sub-node.
34. A point cloud decoder, comprising a second memory and a second processor; wherein, the second memory is configured to store a computer program capable of running on the second processor; the second processor is configured to execute the method according to any one of claims 1 to 16 when running the computer program. The computer readable storage medium stores a bitstream generated by the encoding method according to any one of claims 17 to 30.
35. A computer readable storage medium, wherein, 36. A computer readable storage medium, wherein, The computer readable storage medium stores a computer program which, when executed, implements the method of any one of claims 1 to 16, or the method of any one of claims 17 to 30.
Citation Information
Patent Citations
Point cloud geometrical information inter-frame encoding and decoding method
CN112565764A
Point cloud coding and decoding processing method and device, coding equipment and decoding equipment
CN116233388A
Point cloud data transmitting apparatus, point cloud data transmitting method, point cloud data receiving apparatus, and point cloud data receiving method
CN117121487A
Occupancy coding using inter prediction with octree occupancy coding based on dynamic optimal binary coder with update on the fly (OBUF) in geometry-based point cloud compression
US20230342987A1