Encoding method, decoding method, bit stream, point cloud encoder, point cloud decoder and storage medium
By distinguishing different sets of entropy encoding/decoding parameters based on prediction information within the G-PCC encoding/decoding framework, the problem of low efficiency in octree-based geometric encoding/decoding is solved, achieving more efficient point cloud encoding/decoding.
Patent Information
- Application Number
- PCT/CN2024/103438
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-03
- Publication Date
- 2026-01-08
AI Technical Summary
In geometry-based point cloud compression encoding and decoding frameworks, octree-based geometry encoding and decoding suffers from low encoding and decoding efficiency.
By utilizing prediction information, in G-PCC geometric coding and decoding, the inter-frame context state set no longer shares the entropy coding/decoding parameter set with the intra-frame context state set. Instead, it distinguishes different entropy coding/decoding parameter sets based on prediction information, making full use of prediction information and improving coding and decoding efficiency.
While maintaining the same decoding quality, it improves the efficiency of G-PCC geometric encoding and decoding, and saves bitrate.
Smart Images

Figure CN2024103438_08012026_PF_FP_ABST
Abstract
Description
Coding method, bitstream, point cloud encoder, point cloud decoder and storage medium TECHNICAL FIELD
[0001] Embodiments of the present application relate to the technical field of point cloud coding, and particularly relate to a coding method, a bitstream, a point cloud encoder, a point cloud decoder and a storage medium. BACKGROUND
[0002] At present, in a geometry-based point cloud compression (G-PCC) coding framework, geometry information of a point cloud and attribute information corresponding to 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 encoding occupancy information according to context information of a node to be encoded, there is a problem of low coding efficiency.
[0004] SUMMARY
[0005] Embodiments of the present application provide a coding method, a bitstream, a point cloud encoder, a point cloud decoder and a storage medium, which make full use of prediction information, improve G-PCC geometry coding / decoding efficiency and save code rate.
[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 the following steps:
[0008] Determine context information of a current sub-node based on occupancy information of a decoded context node of the current sub-node;
[0009] Determine a target context state of the current sub-node from a context state set of the current sub-node based on the context information of the current sub-node, wherein the context state set comprises one or more context states;
[0010] Determine a target entropy decoding parameter set of the current sub-node based on a prediction parameter of the current sub-node, wherein the target entropy decoding parameter set comprises a plurality of entropy decoding parameters;
[0011] Determine a target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set based on the target context state of the current sub-node;
[0012] Entropy-decode a bitstream based on the target entropy coding parameter to obtain the occupancy information of the current sub-node.
[0013] In a second aspect, an encoding method is provided in embodiments of the present application, and is applied to a point cloud encoder. The method comprises the following steps:
[0014] Determining context information of the current sub-node based on the occupancy information of the coded context node of the current sub-node;
[0015] Determining a target context state of the current sub-node from a context state set of the current sub-node based on the context information of the current sub-node, wherein the context state set comprises one or more context states;
[0016] Determining a target entropy coding parameter set of the current sub-node based on the prediction parameter of the current sub-node, wherein the target entropy coding parameter set comprises a plurality of entropy coding parameters;
[0017] Determining a target entropy coding parameter of the current sub-node from the target entropy coding parameter set based on the target context state of the current sub-node;
[0018] Entropy-encoding the occupancy information of the current sub-node based on the target entropy coding parameter, and writing the obtained coded bits into a bitstream.
[0019] In a third aspect, a bitstream is provided in embodiments of the present application. The bitstream is generated by bit-encoding to-be-encoded information. The to-be-encoded information comprises at least one of the following: occupancy information of a current sub-node. The bitstream is generated based on the encoding method of the second aspect.
[0020] In a fourth aspect, a point cloud encoder is provided in embodiments of the present application. The point cloud encoder comprises a first determining unit, a second determining unit and an encoding unit. The first determining unit is configured to determine context information of a current sub-node based on occupancy information of a coded context node of the current sub-node, and determine a target context state of the current sub-node from a context state set of the current sub-node based on the context information of the current sub-node, wherein the context state set comprises one or more context states.
[0021] The second determining unit is configured to determine a target entropy coding parameter set of the current sub-node based on a prediction parameter of the current sub-node, wherein the target entropy coding parameter set comprises a plurality of entropy coding parameters; and determine a target entropy coding parameter of the current sub-node from the target entropy coding parameter set based on the target context state of the current sub-node.
[0022] The second determining unit is configured to determine a target entropy coding parameter set of the current sub-node based on a prediction parameter of the current sub-node, wherein the target entropy coding parameter set comprises a plurality of entropy coding parameters; and determine a target entropy coding parameter of the current sub-node from the target entropy coding parameter set based on the target context state of the current sub-node.
[0023] The encoding unit is configured to entropy encode the occupancy information of the current sub-node based on the target entropy encoding parameter, and write the obtained encoded bits into a bitstream.
[0024] In a fifth aspect, an embodiment of the present application provides a point cloud encoder, including a first memory and a first processor; wherein,
[0025] The first memory is configured to store a computer program capable of running on the first processor.
[0026] The first processor is configured to execute the method in the second aspect when running the computer program.
[0027] In a sixth aspect, an embodiment of the present application provides a point cloud decoder, including a third determining unit, a fourth determining unit and a decoding unit; wherein,
[0028] The third determining unit is configured to determine context information of a current sub-node based on occupancy information of a decoded context node of the current sub-node, and determine a target context state of the current sub-node from a context state set of the current sub-node based on the context information of the current sub-node, wherein the context state set includes one or more context states.
[0029] The fourth determining unit is configured to determine a target entropy decoding parameter set of the current sub-node based on a prediction parameter of the current sub-node, wherein the target entropy decoding parameter set includes a plurality of entropy decoding parameters, and determine a target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set based on the target context state of the current sub-node.
[0030] The decoding unit is configured to entropy decode the bitstream based on the target entropy decoding parameter, and determine the occupancy information of the current sub-node.
[0031] In a seventh aspect, an embodiment of the present application provides a point cloud decoder, including a second memory and a second processor; wherein,
[0032] The second memory is configured to store a computer program capable of running on the second processor.
[0033] The second processor is configured to execute the method in the first aspect when running the computer program.
[0034] In an eighth aspect, an embodiment of the present application provides a computer readable storage medium, which stores a bitstream generated by the encoding method in the second aspect.
[0035] In a ninth aspect, the embodiments of the present application provide a computer readable storage medium, which stores a computer program. The computer program is executed to implement the method in the first aspect or the method in the second aspect.
[0036] The embodiments of the present application provide a coding method, a bitstream, a point cloud encoder, a point cloud decoder and a storage medium. At the encoding end or the decoding end, context information of a current sub-node is determined based on occupancy information of a decoded context node of the current sub-node; a target context state of the current sub-node is determined from a context state set of the current sub-node based on the context information of the current sub-node; a target entropy encoding / decoding parameter set of the current sub-node is determined based on a prediction parameter of the current sub-node; a target entropy encoding / decoding parameter of the current sub-node is determined from the target entropy encoding / decoding parameter set based on the target context state of the current sub-node; and occupancy information of the current sub-node is entropy encoded / decoded based on the target entropy encoding / decoding parameter. In this way, in G-PCC, the inter-frame context state set no longer shares the entropy encoding / decoding parameter set with the intra-frame context state set, but different entropy encoding / decoding parameter sets are distinguished according to prediction information, prediction information is fully utilized, G-PCC geometry encoding / decoding efficiency is improved, and code rate is saved. BRIEF DESCRIPTION OF DRAWINGS
[0037] FIG. 1 is a schematic diagram of a network architecture of point cloud coding;
[0038] FIG. 2 is a schematic diagram of a component framework of a G-PCC encoder;
[0039] FIG. 3 is a schematic diagram of a component framework of a G-PCC decoder;
[0040] FIG. 4 is a schematic diagram of an implementation framework of an OBUF technology;
[0041] FIG. 5 is a schematic diagram of an application implementation process of an OBUF technology;
[0042] FIG. 6 is a schematic diagram of dynamic adjustment of priorities of contexts;
[0043] FIG. 7 is a schematic diagram of a scanning order of sub-nodes in a current node;
[0044] FIG. 8 is a schematic diagram of an intra-frame and inter-frame entropy encoding process based on the OBUF technology;
[0045] FIG. 9 is a schematic diagram of a decoding method according to an embodiment of the present application;
[0046] FIG. 10 is a schematic diagram of distribution of sub-neighbor nodes and coplanar parent neighbor nodes of a sub-node 0;
[0047] Fig. 11 is a schematic diagram of a distribution order of 20 parent neighbor nodes of a child node 0;
[0048] Fig. 12 is a schematic diagram of a decoding method according to an embodiment of the present application;
[0049] Fig. 13 is a schematic diagram of an encoding method according to an embodiment of the present application;
[0050] Fig. 14 is a schematic diagram of an encoding method according to an embodiment of the present application;
[0051] Fig. 15 is a schematic diagram of a point cloud encoder according to an embodiment of the present application;
[0052] Fig. 16 is a schematic diagram of a specific hardware structure of a point cloud encoder according to an embodiment of the present application;
[0053] Fig. 17 is a schematic diagram of a point cloud decoder according to an embodiment of the present application;
[0054] Fig. 18 is a schematic diagram of a specific hardware structure of a point cloud decoder according to an embodiment of the present application;
[0055] Fig. 19 is a schematic diagram of an encoding and decoding system according to an embodiment of the present application. DETAILED DESCRIPTION
[0056] In order to enable a person skilled in the art to more fully 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.
[0057] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present application belongs. The terminology used in the specification is for the purpose of describing the embodiments of the present application only and is not intended to be limiting of the present application.
[0058] In the following description, "some embodiments" are described, which describe a subset of all possible embodiments, but it can be understood that "some embodiments" can be the same subset or different subsets of all possible embodiments, and can be combined with each other without conflict. It should also be noted that the terms "first\second\third" used in the embodiments of the present application are only used to distinguish similar objects, and do not represent a specific order of the objects. It can be understood that "first\second\third" can be interchanged in a specific order or sequence as allowed, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0059] Before the embodiments of the present application are described in further detail, the terms and names involved in the embodiments of the present application are explained, and the terms and names involved in the embodiments of the present application are applicable to the following explanations:
[0060] Point Cloud Compression (PCC);
[0061] Geometry-based Point Cloud Compression (G-PCC or GPCC);
[0062] Video-based Point Cloud Compression (V-PCC or VPCC);
[0063] Octree;
[0064] Triangle soup (Trisoup);
[0065] K Nearest Neighbor (KNN);
[0066] Level of Detail (LOD);
[0067] Predicting Transform;
[0068] Lifting Transform;
[0069] Region Adaptive Hierarchal Transform (RAHT);
[0070] Context-based Adaptive Binary Arithmetic Coding (CABAC).
[0071] Point cloud is a three-dimensional representation of the surface of an object, and point cloud (data) of the surface of the object can be collected by collecting devices such as photoelectric radars, laser radars, laser scanners, and multi-view cameras.
[0072] Point Cloud refers to a collection of massive three-dimensional points. The points in the point cloud can include position information of the points 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, and the like. 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.
[0073] According to the point cloud obtained by the laser measurement principle, the points in the point cloud can include three-dimensional coordinate information of the points and laser reflectance of the points. For another example, according to the point cloud obtained by the photogrammetry principle, the points in the point cloud can include three-dimensional coordinate information of the points and color information of the points. For another example, the point cloud obtained by combining the laser measurement and the photogrammetry principle, the points in the point cloud can include three-dimensional coordinate information of the points, laser reflectance of the points and color information of the points.
[0074] The point cloud can be divided into the following categories according to the acquisition method:
[0075] The first type of static point cloud: the object is static, and the device for acquiring the point cloud is also static.
[0076] The second type of dynamic point cloud: the object is moving, but the device for acquiring the point cloud is static.
[0077] The third type of dynamic point cloud: the device for acquiring the point cloud is moving.
[0078] For example, according to the use of the point cloud, it can be divided into two categories:
[0079] Category one: machine perception point cloud, which can be used in autonomous navigation system, real-time inspection system, geographic information system, visual sorting robot, rescue robot, and the like.
[0080] Category two: human eye perception point cloud, which can be used in digital cultural heritage, free viewpoint broadcast, three-dimensional immersive communication, three-dimensional immersive interaction, and the like.
[0081] Since the point cloud is a collection of massive points, storing the point cloud will consume a large amount of memory, and is not conducive to transmission. 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.
[0082] At present, the point cloud coding framework that can compress point cloud can be a G-PCC coding and decoding framework provided by a Moving Picture Experts Group (MPEG) or a V-PCC coding and decoding framework or an AVS-PCC coding and decoding framework provided by an Audio Video Standard (AVS). The G-PCC coding and decoding framework can be used to compress a first type of static point cloud and a third type of dynamically acquired point cloud, and the V-PCC coding and decoding framework can be used to compress a second type of dynamic point cloud. In the embodiments of the present application, the G-PCC coding and decoding framework is mainly described.
[0083] 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. 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 sensing device, a server, and the like, and the embodiments of the present application are not limited thereto. The decoder or the encoder in the embodiments of the present application can be the above-mentioned electronic devices.
[0084] In the embodiments of the present application, the electronic devices 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).
[0085] The following describes related technologies by taking the G-PCC coding and decoding framework as an example.
[0086] It can be understood that in the point cloud G-PCC coding and decoding 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 the attribute information of the point cloud are encoded separately.
[0087] Figure 2 shows a schematic diagram of a G-PCC encoder. As shown in Figure 2, in the geometry coding process, the geometry information is first converted in coordinates, so that all the point clouds are contained in a bounding box, and then quantized, which mainly plays a role in scaling. Due to the quantization rounding, the geometry information of a part of the point clouds is the same, so it is decided based on the parameters whether to remove the duplicate points. This process of quantization and duplicate point removal is also called voxelization process. Then the bounding box is divided by octree or prediction tree is constructed. In this process, the points in the divided leaf nodes are entropy coded to generate binary geometry bitstream; or the vertices generated by the division are entropy coded (surface fitting based on vertices) to generate binary geometry bitstream. In the attribute coding process, after the geometry coding is completed and the geometry information is reconstructed, color conversion is needed, i.e. the color information (i.e. attribute information) is converted from RGB color space to YUV color space. Then, the reconstructed geometry information is used to recolor the point cloud, so that the uncoded attribute information corresponds to the reconstructed geometry information. 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 methods convert the color information from spatial domain to frequency domain, obtain high frequency coefficients and low frequency coefficients through transformation, and finally quantize the coefficients, and then entropy code the quantized coefficients to generate binary attribute bitstream.
[0088] Figure 3 shows a schematic diagram of a G-PCC decoder. As shown in Figure 3, for the obtained binary bitstream, the geometry bitstream and the attribute bitstream in the binary bitstream are first decoded independently. In 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, and then through geometry reconstruction-coordinate inverse transformation, the geometry information of the point cloud can be obtained; in 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, and finally through color inverse transformation, the attribute information of the point cloud can be obtained; based on the geometry information and the attribute information, the point cloud data to be coded can be restored.
[0089] It should be noted that, as shown in Figure 2 or Figure 3, the 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:
[0090] (a) Octree-based geometry coding:
[0091] At the encoding end, first, the coordinate transformation is performed on the geometric information, so that the point cloud is contained in a bounding box (Bounding Box) determined by two extreme points (0, 0, 0) and (2d, 2d, 2d), and then voxelization is performed, that is, 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 into octrees in the order of breadth-first traversal; at the same octree depth, a node will be divided into 8 sub-nodes, until the division stops when the leaf node obtained by the division is a 1x1x1 unit cube. Whether the sub-cube contains a point (1 indicates occupation, and 0 indicates non-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.
[0092] At the decoding end, the occupancy code of each node is continuously parsed in the order of breadth-first traversal, and the nodes are continuously divided in sequence until the division stops when a 1x1x1 unit cube is obtained. The number of points contained in each leaf node is parsed to finally recover the geometric reconstructed point cloud information.
[0093] (b) Trisoup-based geometric coding and decoding:
[0094] At the encoding end, first, the octree is divided. Unlike the geometric information coding based on the octree structure, this method does not need to divide the point cloud into bottom-level leaf nodes with a side length of 1x1x1, but 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. 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 encoded in sequence to generate a binary code stream.
[0095] At the decoding end, in order to decode the geometric coordinates of the point cloud from the triangular patches of the node, it is necessary to check whether each voxel in the node cube intersects with the triangular patch. This technique is called triangle rasterization.
[0096] (c) Predictive tree-based geometric coding and decoding:
[0097] At the encoding end, firstly, the input point cloud is 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 (by using the 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 prediction tree structure, each node in the prediction tree is traversed, the geometric position information of the node is predicted by selecting different prediction modes to obtain a prediction residual, and the prediction residual is quantized by using a quantization parameter. Finally, by continuously iterating, the prediction residual of the prediction tree node position information, the prediction tree structure and the quantization parameter are encoded to generate a binary code stream.
[0098] 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 of the decoding end.
[0099] It should be further noted that, in a possible implementation manner of the related art, the current encoder used by G-PCC is a context-based adaptive binary arithmetic coding CABAC, which is an entropy encoder widely used in video coding. Like traditional arithmetic coding, CABAC uses a recursive interval 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:
[0100] ① Binarization: Binarization is to map a given non-binary syntax element into a binary sequence, that is, a bin string. If the input syntax element is a binary syntax element, the binarization process is omitted, and the data is directly sent to the next step through a bypass.
[0101] ② Context modeling: The encoder divides appropriate probability models for each input bin according to the values of previously encoded syntax elements or bins, which is the context modeling process.
[0102] ③ Binary Arithmetic Coding: There are two modes, regular coding mode and bypass coding mode. In regular coding mode, the bin of the syntax element and the probability model assigned to it are sent to the binary arithmetic coder for encoding and the context model is updated according to the bin value, which is the adaptation in the 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 whole encoding and decoding process.
[0103] 1. Optimal Binarization with Update on the Fly (OBUF) technique
[0104] OBUF technique is to quickly and accurately map a series of discrete states of the occupancy information of the context node to a fixed number of adaptive entropy encoders (i.e. probability models) through a mapping relationship look-up table (LUT), so that the context information is no longer one-to-one corresponding to the probability model, and 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.
[0105] 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 symbol to be encoded and decoded, which takes the value of 1 or 0.
[0106] 1) OBUF technique can be divided into the following three steps:
[0107] (1) Get the context information D of the symbol to be encoded
[0108] The context information D of the symbol to be encoded is the input information of OBUF, which 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.
[0109] (2) Get the binary encoder index i corresponding to the context information D based on the mapping relationship
[0110] Before all the symbols to be encoded are encoded, each state is mapped to N encoders through a look-up table. For example, each context information D is mapped to one of the 32 encoders (i.e. i takes the value of [0, 1, …, 31]), such as the binary entropy encoder i in Figure 4.
[0111] (3) Use the binary encoder i to entropy encode the symbol S
[0112] The to-be-encoded symbol S is sent into a binary encoder corresponding to the context information D corresponding thereto for entropy encoding.
[0113] 2) OBUF technology application example
[0114] As shown in FIG. 5, assuming that the placeholder condition b0 of the subnode 0 in the eight subnodes of the current node is encoded, the value of b0 is 0 or 1, 0 indicating not occupying and 1 indicating occupying. First, the context information of the to-be-encoded subnode b0 is determined, i.e., the state of whether the encoded node is occupied, which is composed of the neighbor nodes of the current to-be-encoded subnode that have been encoded, the parent node and the adjacent nodes, which are referred to as 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, from which the initial probability value of the to-be-encoded subnode being occupied or not occupied corresponding to the current context information is obtained. Then, the binary encoder coderi corresponding to the initial probability value is obtained based on the mapping relationship, and finally, the binary encoder coderi is used to perform entropy encoding on the to-be-encoded symbol b0.
[0115] 2. Dynamic OBUF technology
[0116] 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.
[0117] The dynamic OBUF technology is divided into two stages: 1) dynamically determining context nodes and context information; and 2) mapping the context information to a group of binary encoders with a smaller number (corresponding to the OBUF technology).
[0118] The context construction and dynamic adjustment are introduced below. In the dynamic OBUF technology, the context information is divided into primary information and secondary information, and whether part of the secondary information is dynamically adjusted as context information, the context information composed of the primary information and the selected secondary information is taken as the context information of the OBUF.
[0119] 1) Context information construction process:
[0120] The context nodes of the to-be-encoded subnode include the following types:
[0121] (1) encoded sibling nodes;
[0122] (2) six coplanar parent neighbor nodes of the current node;
[0123] (3) other 20 coplanar and copoint parent neighbor nodes of the current node.
[0124] It should be noted that the scanning order of these context nodes from front to back is: the coded sibling node of the current node > the coded coplanar node neighbor of the current node > the coded co-edge node neighbor of the current node > the coded co-point node neighbor of the current node > the coded other node neighbor of the current node > the coded coplanar parent node neighbor of the current node > the coded co-edge parent node neighbor of the current node > the other 20 coded parent node neighbors. According to the scanning order, the context information is constructed for the to-be-coded 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.
[0125] FIG. 6 shows a schematic diagram of dynamically adjusting the priority of the context. As shown in FIG. 6, the black-filled node is the current node, and eight cases are provided here, the grid-filled node in (a) is the sibling node of the current node; the grid-filled node in (b) is the coplanar neighbor node of the current node; the grid-filled node in (c) is the coplanar neighbor parent node of the current node; the grid-filled node in (d) is the co-edge neighbor node of the current node; the grid-filled node in (e) is the adjacent neighbor parent node of the current node; the grid-filled node in (f) is the co-point neighbor node of the current node; the grid-filled node in (g) is the non-adjacent child neighbor node of the current node; and the grid-filled node in (h) is the non-adjacent parent neighbor node of the current node.
[0126] It should also be noted that when constructing the context information, different context models can be constructed for the to-be-coded nodes located in different positions in the current node according to the preset scanning order. Exemplarily, as shown in FIG. 7, a schematic diagram of the scanning order of the nodes in the current node is shown here. The scanning order can be to construct different context models in sequence according to the node 0, the node 1, the node 2, the node 3, the node 4, the node 5, the node 6 and the node 7 in FIG. 7. In addition, as the number of coded nodes in the current node increases, the effective context information that can be referred to by the uncoded nodes will also change, and there are different local sparsity determination methods for the eight nodes in the current node, so each node has its own context bins.
[0127] 2) Dynamic adjustment process
[0128] Each context node can be in the state of not occupied or occupied, i.e. 0, 1. Context information can be represented by N+M binary bits, where N is the primary information and M is the secondary information. With the encoding process, the number of times each context information is used is recorded, and 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.
[0129] 3. G-PCC inter-frame coding of point cloud
[0130] Octree-based inter-frame geometry entropy coding
[0131] In G-PCC, both the intra-frame and inter-frame coding of octree geometry information use OBUF technology for entropy coding, and the context construction method of inter-frame coding is the same as that of intra-frame coding.
[0132] Fig. 8 is a schematic diagram of an octree-based inter-frame geometry entropy coding process. First, the value of isSparse is determined according to the intra-frame context information of the to-be-encoded child node, where "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 of isSparse (0 or 1), the two large sets of sparse context states and non-sparse context states are divided.
[0133] Secondly, according to the value of bp i (0 or 1), the two large sets of sparse context states and non-sparse context states are divided into four large sets of context state group 1 (contextStateGroup1), context state group 2 (contextStateGroup2), context state group 3 (contextStateGroup3), and context state group 4 (contextStateGroup4). Among them, bp i is an identifier used to indicate whether the predicted child node is occupied. Specifically, if the predicted node child node i is occupied, then bp i is set to 1; otherwise, if the predicted node child node i is not occupied, then bp i is set to 0. If isInter is 0, then bp i is all 0, and the value of isInter is controlled by the syntax element gbh.interPredictionEnabledFlag, which is used to indicate whether the inter-frame prediction is enabled. If the inter-frame prediction is enabled, it is called P frame, and at this time isInter is 1; otherwise, if it is not enabled, it is called I frame, and isInter is 0.
[0134] Then, the context states are mapped to the binary encoder according to the same encoder group.
[0135] Finally, the encoder coder is obtained based on the mapping. i The to-be-encoded symbol b0 is entropy encoded.
[0136] In G-PCC, the boundary between the context state group using inter-frame information and the context state group not using inter-frame information is ambiguous. For example, when inter-frame is not enabled, the prediction not using inter-frame information is bp i Always 0, when inter-frame is enabled and the current frame is not an I frame, bp i May be 0 or 1, indicating prediction as 0 or prediction as 1, that is, the mapping relationship between the context state group and the encoder group is not distinguished according to the inter-frame information, and in the process of mapping the binary encoder, they will affect each other, thereby affecting the coding efficiency.
[0137] In G-PCC, four independent sets of context state groups need to be set, which requires a large amount of storage space.
[0138] Based on this, the embodiment of the present application provides a coding and decoding method. In G-PCC, the inter-frame context state set no longer shares the entropy encoding / decoding parameter set with the intra-frame context state set, but distinguishes different entropy encoding / decoding parameter sets according to the prediction information, fully utilizes the prediction information, improves the G-PCC geometry encoding / decoding efficiency, and saves the code rate.
[0139] Further, different prediction modes can share the context state set, and only the target context state set needs to be selected according to the local sparse category, thereby reducing the number of context states and reducing the memory usage.
[0140] To facilitate understanding of the technical solutions of the embodiments of the present application, the technical solutions of the present application are described in detail below through specific embodiments. The above related technologies can be combined with the technical solutions of the embodiments of the present application as optional schemes, and 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.
[0141] In an embodiment of the present application, referring to FIG. 9, a flowchart of a decoding method provided by the embodiment of the present application is shown. As shown in FIG. 9, the method can include:
[0142] S101: determining the context information of the current sub-node based on the occupancy information of the decoded context node of the current sub-node;
[0143] 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 decoding method of point cloud geometry information. More specifically, the embodiments of the present application provide an entropy decoding method of point cloud geometry information. In G-PCC, the inter-frame context state set no longer shares the entropy decoding parameter set with the intra-frame context state set, but distinguishes different entropy decoding parameter sets according to prediction information, performs entropy decoding of point cloud geometry information, fully utilizes prediction information, and improves the G-PCC geometry decoding efficiency under the condition of the same decoding quality.
[0144] It should be noted that the current sub-node is any sub-node in the current node to be decoded. As shown in FIG. 7, the current node includes 8 sub-nodes, and the scan order of the sub-nodes is sub-node 0, sub-node 1, sub-node 2, sub-node 3, sub-node 4, sub-node 5, sub-node 6 and sub-node 7.
[0145] For example, the context node includes at least one of the following: a decoded sibling node of the current sub-node; a decoded neighbor sub-node of the current sub-node that is coplanar, co-edge and co-point with the current sub-node; a decoded neighbor parent node of the current sub-node that is coplanar and co-edge with the current sub-node; and other decoded neighbor nodes of the current sub-node. The context node scan order can be decoded sibling node of the current sub-node > decoded coplanar sub-node neighbor of the current sub-node > decoded co-edge sub-node neighbor of the current sub-node > decoded co-point sub-node neighbor of the current sub-node > decoded other sub-node neighbor of the current sub-node > decoded coplanar parent node neighbor of the current sub-node > decoded co-edge parent node neighbor of the current sub-node > other decoded 20 parent node neighbors. According to the scan order and the occupancy information, the context information is constructed for the sub-node to be decoded.
[0146] For example, based on the occupancy information of the decoded context node of the current sub-node, the context information of the current sub-node is determined, which can include: determining the context information of the current sub-node according to the occupancy information of the decoded context node of the current sub-node and a first construction strategy.
[0147] The first construction strategy is used to indicate how to generate the context information according to the occupancy information of the context node. The first construction strategy can include: constructing the context information according to a preset context node scan order and the occupancy information of the context node; or constructing first information and second information of the context information 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. Wherein, the first information can be primary information, and the second information can be secondary information, and whether part of the secondary information is dynamically adjusted as context information.
[0148] Step 102: determining a target context state of the current sub-node from a context state set of the current sub-node based on the context information of the current sub-node;
[0149] The context state set includes one or more context states, and the one or more context information is mapped to one context state.
[0150] The context information of the current sub-node 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 context state set of the current sub-node records the context state corresponding to one or more context information, and the context information of the current sub-node can be used as index information to index the context state set of the current sub-node to determine the target context state of the current sub-node.
[0151] In some embodiments, the context state set of the current sub-node can be a preset context state set.
[0152] In some embodiments, the context state set of the current sub-node can also be a specific context state set from a plurality of preset context state sets. The context state sets used by the inter prediction mode and the intra prediction mode can be the same or different.
[0153] In some embodiments, the method can further include: determining a local sparsity category of the current sub-node based on the occupancy information of the decoded neighbor nodes of the current sub-node; and determining the context state set of the current sub-node based on the local sparsity category of the current sub-node.
[0154] The local sparsity category is used to indicate the local sparsity of the decoded neighbor nodes of the current sub-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 sub-node based on the occupancy information of the decoded neighbor nodes of the current sub-node includes: determining the occupancy number of the neighbor nodes based on the occupancy information of the neighbor nodes; and determining the local sparsity category of the current sub-node based on the occupancy number of the neighbor nodes. That is, the occupancy number of the neighbor nodes (i.e., the number of occupied neighbor nodes NN) can be determined based on the occupancy information (i.e., whether occupied) of the neighbor nodes, and different local sparsity categories can be distinguished based on the occupancy number.
[0155] For example, if the occupancy number of the neighbor nodes is greater than a second threshold, the local sparsity 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 second threshold, the local sparsity category of the current sub-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 local sparsity categories can also be included.
[0156] In the embodiments of the present application, the local sparsity of the current sub-node is determined by considering the occupancy information of the decoded neighbor nodes and the position of the sub-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 sub-node; a decoded neighbor sub-node adjacent to the current sub-node in a first preset direction; a decoded neighbor sub-node adjacent to the current sub-node in a second preset direction; and a decoded neighbor sub-node adjacent to the current sub-node in a third preset direction. The first preset direction can be the x-axis negative direction (left direction) of the current sub-node, the second preset direction can be the y-axis negative direction (front direction) of the current sub-node, and the third preset direction can be the z-axis negative direction (bottom direction) of the current sub-node. That is, the local sparsity category can be determined according to the occupancy number of the decoded neighbor nodes adjacent to the current sub-node in the xyz negative direction. It should be noted that the decoded neighbor nodes of the current sub-node are the same as or not completely the same as the context nodes of the current node.
[0157] 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 sub-node is determined according to the occupancy of the decoded neighbor nodes. For example, for the local sparsity category of sub-node 0, the occupancy number (NN) of the 12 decoded sub-nodes adjacent to the current sub-node in the xyz negative direction in FIG. 10 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 sub-node 1, the occupancy number (NN) of the 4 decoded sub-nodes adjacent to the current sub-node in the y negative direction (front direction) in FIG. 10 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 sub-node 2, the occupancy number (NN) of the 4 decoded sub-nodes adjacent to the current sub-node in the z negative direction (bottom direction) in FIG. 10 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 sub-node 3, the occupancy number (NN) of the 7 nodes including bit0, bit1 and bit2 together with the 4 decoded nodes adjacent to the current sub-node in the x negative direction (left direction) in FIG. 10 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.
[0158] It should be noted that different local sparsity categories correspond to different context state sets, and the corresponding context state sets can be configured in advance for different local sparsity categories, and then the context state set of the current child node is determined according to the local sparsity category of the current child node.
[0159] For example, when the local sparsity category is the first category, the context state set of the current child node is determined as the first context state set; when the local sparsity category is the second category, the context state set of the current child node 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 the context information of the corresponding first category. The second context state set includes one or more context states of the second category, and each context state corresponds to the context information of the corresponding second category.
[0160] In some embodiments, the context information and the context state in the context state set are in one-to-one correspondence, 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 child node, and the context state is used to represent the first probability of the occupancy or non-occupancy of the to-be-decoded child node under a kind of context information, which can also be referred to as the context or the contextual probability model of the to-be-decoded child node. For example, if the bit of the context information is 19 bits, there are 2 19 context information, and at most 2 19 context states; if the bit of the context information is 16 bits, there are 2 16 context information, and at most 2 16 context states.
[0161] In some embodiments, the context information and the context state in the context state set are in many-to-one correspondence. For example, if the bit of the context information is 19 bits, there are 2 19 context information, and at most 2 19 context states, in order to reduce the context state, 2 19 context information is mapped to T context states, and T is less than 2 19 . For example, the value of T can be 64, 128, 256, 512, etc.
[0162] In some embodiments, based on the context information of the current sub-node and the first mapping relationship, an index value of the target context state is determined; and based on the index value of the target context state, the target context state of the current sub-node is determined from the context state set of the current sub-node. For example, the second mapping relationship can include: determining the index value of the target context state according to the high N bits of the context state; wherein N is related to the number of context states.
[0163] In some embodiments, the intra prediction mode and the inter prediction mode share one or more context state sets, for example, the context state set of the current sub-node needs to be selected according to the local sparse category. Compared with the related art which divides the context states into four sets, including context state group 1 (contextStateGroup1), context state group 2 (contextStateGroup2), context state group 3 (contextStateGroup3), and context state group 4 (contextStateGroup4), some embodiments of the present application only need to divide the context states into two sets, including a non-sparse context state set (NSparse state) and a sparse context state set (Sparse state), which greatly reduces the number of context states and reduces memory usage.
[0164] S103: determining a target entropy decoding parameter set of the current sub-node based on the prediction parameter of the current sub-node;
[0165] The target entropy decoding parameter set includes a plurality of entropy decoding parameters, and one or more context states are mapped to one entropy decoding parameter.
[0166] The prediction parameter of the current sub-node is used as the prediction information of the current sub-node to select a matching entropy decoding parameter set for the current sub-node from a plurality of candidate entropy decoding parameter sets. The plurality of candidate entropy decoding parameter sets include a candidate intra entropy decoding parameter set and a candidate inter entropy decoding parameter set. The prediction information of the current sub-node is used to distinguish the intra and inter entropy decoding parameter sets, and the entropy decoding of the point cloud geometry information is performed, so that the prediction information is fully utilized, and the G-PCC geometry decoding efficiency is improved under the condition of the same decoding quality.
[0167] The set of entropy decoding parameters includes a plurality of entropy decoding parameters, and one or more context states are mapped to one entropy decoding parameter. The context state can be used as index information for indexing the target set of entropy decoding parameters of the current child node to determine the target set of entropy decoding parameters of the current child node. The entropy decoding parameter is a parameter used when entropy decoding the occupancy information of the child node. In some embodiments, the entropy decoding parameter can be an arithmetic decoding parameter, and the occupancy information of the child node is adaptively arithmetic decoded according to the arithmetic decoding parameter. For example, the entropy decoding parameter can include a second probability of the current child node being occupied or not occupied, which can also be referred to as a context or a contextual probability model of the to-be-decoded child node. In this case, the set of entropy decoding parameters can be understood as a set of contexts or a set of contextual probability models.
[0168] In some embodiments, the prediction parameter includes a first variable of the current child node, and the first variable is used to indicate a prediction mode of the current child node. Different prediction modes correspond to different sets of entropy decoding parameters.
[0169] In some embodiments, the first variable can be used to indicate whether the current child node enables an inter-frame prediction mode. The prediction parameter of the current child node is used to determine the target set of entropy decoding parameters of the current child node, including: in a case where the first variable indicates that the inter-frame prediction mode is enabled, determining the target set of entropy decoding parameters from the candidate set of inter-frame entropy decoding parameters; and in a case where the first variable indicates that the inter-frame prediction mode is not enabled, determining the target set of entropy decoding parameters from the candidate set of intra-frame entropy decoding parameters.
[0170] The candidate set of inter-frame entropy decoding parameters includes one or more sets of inter-frame entropy decoding parameters, and 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. 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 to improve the accuracy of inter-frame prediction. One or more sets of entropy decoding parameters can also be configured in advance for different intra-frame prediction cases. 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 to improve the accuracy of intra-frame prediction.
[0171] In some embodiments, the method can further include determining a value of the first variable of the current child node according to a value of the first syntax element. The value of the first syntax element is used to indicate whether the current node is allowed to enable the inter-frame prediction mode.
[0172] That is, whether the current sub-node enables inter-prediction mode is related to the value of the first syntax element. When the value of the first syntax element is a first value, it is determined that the current node allows enabling inter-prediction mode, and the value of the first variable is determined to be the first value; when the value of the first syntax element is a second value, it is determined that the current node does not allow enabling inter-prediction mode, and the value of the first variable is determined to be the second value. Exemplarily, the first syntax element is at least one of the following: a sequence level syntax element, a frame level syntax element, a slice level syntax element, etc., and the value of the first syntax element is 1, enabling inter-prediction; the value of the first syntax element is 0, not enabling inter-prediction.
[0173] Exemplarily, according to the enablement identification (gbh.interPredictionEnabledFlag) of the inter-prediction of the to-be-decoded unit, it is determined whether to enable inter-prediction, that is, the value of the first variable is determined.
[0174] In some embodiments, the method further comprises: in the case where the value of the first syntax element indicates that the current node is allowed to enable inter-prediction mode, determining the value of the first variable of the current sub-node according to the occupancy information of the prediction node of the current node in the reference image.
[0175] Whether the current sub-node enables inter-prediction mode is related to the value of the first syntax element and the occupancy information of the prediction node of the current node (the parent node of the current sub-node). Exemplarily, the value of the occupancy information is 0 indicating not occupying, and 1 indicating occupying. That is, when the prediction node is occupied, the current node enables inter-prediction, which makes full use of the inter-prediction information to improve the prediction accuracy, otherwise, inter-prediction is not enabled.
[0176] The occupancy of the prediction node is related to the occupancy of its sub-nodes. In some embodiments, the method further comprises: determining the occupancy information of a plurality of prediction sub-nodes in the prediction node; if the occupancy information of at least one prediction sub-node in the prediction node indicates occupying, then the occupancy information of the prediction node is determined to indicate occupying; otherwise, the occupancy information of the prediction node is determined to indicate not occupying. That is, if at least one sub-node in the prediction node is occupied, the value of its occupancy information is set to 1; otherwise, if no sub-node is occupied, the value of its occupancy information is set to 0.
[0177] Exemplarily, according to the enablement identification (gbh.interPredictionEnabledFlag) of the inter-prediction of the to-be-decoded unit in the reference unit, it is determined whether to enable inter-prediction, that is, the value of the first variable is determined.
[0178] In some embodiments, the prediction parameter of the current sub-node comprises a second variable of the current sub-node, the second variable being used to indicate an occupancy of a prediction sub-node of the current sub-node in a reference image, different occupancy corresponding to different sets of inter-frame entropy decoding parameters.
[0179] In some embodiments, the prediction parameter of the current sub-node comprises a first variable and a second variable of the current sub-node. The occupancy is at least divided into two cases of unoccupied and occupied, and the target set of entropy decoding parameters is determined from a candidate set of inter-frame entropy decoding parameters, wherein the candidate set of inter-frame entropy decoding parameters comprises one or more sets of inter-frame entropy decoding parameters, including: in a case that the second variable indicates that the prediction sub-node of the current sub-node is unoccupied, determining the target set of entropy decoding parameters as a first set of inter-frame entropy decoding parameters; and in a case that the second variable indicates that the prediction sub-node of the current sub-node is occupied, determining the target set of entropy decoding parameters as a second set of inter-frame entropy decoding parameters.
[0180] In some embodiments, for the occupied case, the occupancy can be further subdivided into more than two cases according to occupancy intensity, and in a case that the prediction sub-node is occupied, the target set of entropy decoding parameters is determined according to the occupancy intensity of the prediction sub-node. The occupancy intensity comprises more than two intensities, and different occupancy intensities correspond to different sets of entropy decoding parameters.
[0181] For example, determining the target set of entropy decoding parameters according to the occupancy intensity of the prediction sub-node comprises: in a case that the occupancy intensity of the prediction sub-node is a first intensity, determining the target set of entropy decoding parameters as the second set of inter-frame entropy decoding parameters; and in a case that the occupancy intensity of the prediction sub-node is a second intensity, determining the target set of entropy decoding parameters as a third set of inter-frame entropy decoding parameters.
[0182] That is, the set of entropy decoding parameters is assigned to the current sub-node according to the occupancy of the prediction sub-node, the first set of inter-frame entropy decoding parameters comprising a plurality of sets of entropy decoding parameters of the current sub-node in a case that the prediction sub-node is unoccupied, the second set of inter-frame entropy decoding parameters comprising a plurality of sets of entropy decoding parameters of the current sub-node in a case that the prediction sub-node is occupied, and the third set of inter-frame entropy decoding parameters comprising a plurality of sets of entropy decoding parameters of the current sub-node in a case that the prediction sub-node is strongly occupied. In the embodiments of the present application, for inter-frame prediction, the set of entropy decoding parameters is selected according to whether the current sub-node is predicted to be unoccupied, occupied or strongly occupied, the correlation between the inter-frame sparse context state and the non-sparse context state is fully utilized, and the accuracy of inter-frame prediction is improved.
[0183] For example, the occupancy strength of the prediction child node is related to the number of occupied nodes in the prediction child node. For example, when the number of occupied nodes in the prediction child node is greater than a first threshold, the occupancy strength is determined to be strong occupancy (i.e., a first strength); and when the number of occupied nodes in the prediction child node is less than or equal to the first threshold, the occupancy strength is determined to be occupancy (i.e., a second strength).
[0184] It should be noted that in some embodiments, more occupancy strengths can be divided according to the number of occupied nodes, i.e., more sets of inter-frame entropy decoding parameters are set, which will not be described here.
[0185] In some other embodiments, determining the target set of inter-frame entropy decoding parameters from the candidate set of inter-frame entropy decoding parameters includes: determining the target set of inter-frame entropy decoding parameters from the candidate set of inter-frame entropy decoding parameters according to the local sparsity category.
[0186] For example, when the local sparsity category is a first category, the target set of inter-frame entropy decoding parameters is determined to be a fourth set of inter-frame entropy decoding parameters; and when the local sparsity category is a second category, the target set of inter-frame entropy decoding parameters is determined to be a fifth set of inter-frame entropy decoding parameters. That is, when the current child node uses the inter-frame prediction mode, the set of inter-frame entropy decoding parameters can also be assigned according to the local sparsity category of the current child node.
[0187] In some embodiments, the candidate set of intra-frame entropy decoding parameters includes one set of intra-frame entropy decoding parameters. That is, if the sparse context state and the non-sparse context state of the current child node are mapped to the same set of intra-frame entropy decoding parameters, for the intra-frame prediction mode, one set of intra-frame entropy decoding parameters is used for entropy decoding parameter mapping, so as to improve the intra-frame encoding efficiency with the least increase in memory.
[0188] In some embodiments, the candidate set of intra-frame entropy decoding parameters includes multiple sets of intra-frame entropy decoding parameters. Determining the target set of intra-frame entropy decoding parameters from the candidate set of intra-frame entropy decoding parameters includes: determining the target set of intra-frame entropy decoding parameters from the candidate set of intra-frame entropy decoding parameters according to the local sparsity category. That is, for the intra-frame prediction mode, the sparse context state and the non-sparse context state can also be mapped to different sets of intra-frame entropy decoding parameters, so as to further improve the intra-frame encoding efficiency.
[0189] For example, when the local sparse category is the first category, the target entropy decoding parameter set is determined as the first intra-frame entropy decoding parameter set; and 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 allocated 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.
[0190] S104: determining the target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set based on the target context state of the current sub-node;
[0191] The context state is used to index the corresponding target entropy decoding parameter. In some embodiments, the target entropy decoding parameter of the current sub-node is determined from the target entropy decoding parameter set according to the target context state, including: determining the index value of the target entropy decoding parameter according to the target context state and the second mapping relationship; 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, to index the target entropy decoding parameter.
[0192] It should be noted that the mapping relationship between the different context state sets and the entropy decoding parameter sets can be the same or different. For example, the second mapping relationship can include: determining the index value of the target decoder 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 of parameters N in the target entropy decoding parameter set 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 decoding parameter.
[0193] In some embodiments, the context state is the first probability that the current sub-node occupies or does not occupy under the current context information, which can also be referred to as the first context of the sub-node, and the first context probability model. The target entropy decoding parameter is the second probability that the current sub-node occupies or does not occupy under the current context information, which can also be referred to as the second context of the sub-node, and the second context probability model. Therefore, the context state can also be understood as an intermediate probability, and the entropy decoding parameter can be understood as a final used probability, and the entropy decoding parameter set can also be understood as a simplified context state set.
[0194] When the bit of the context information is 19 bits, there are at most 2 19 When the bit of the context information is 16 bits, there are at most 2 16In the embodiment of the present application, the context state set of the current sub-node contains a large number of context states, and the target entropy decoding parameter set contains a number of entropy decoding parameters far less than the number of context states. In the embodiment of the present application, the context state set of the current sub-node contains a large number of context states, and if these context states are directly used for entropy decoding, the decoding efficiency is low. The target entropy decoding parameter set contains a small number of entropy decoding parameters. The large number of context states in the context state set of the current sub-node 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.
[0195] In the embodiment of the present application, the construction method of the inter-frame context information adopts the same construction method as the intra-frame context information. Exemplarily, the construction scheme of the intra-frame context can be as follows:
[0196] (1) For the sub-node 0, there are sub-node neighbors coplanar, common edge and common point, no decoded brother node, there are parent node neighbors coplanar and other decoded 20 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 used as the main information, and the low 13 bits are used as the non-reduced secondary information; when it is determined as the 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 non-reduced secondary information.
[0197] Among them, for the local sparsity of the sub-node 0, the occupation number (NN) of the 12 sub-nodes adjacent to the current sub-node in the negative direction of x, y and z can be determined according to FIG. 10, if the occupation number NN>1, it is determined as the non-sparse category, if the occupation number NN≤1, it is determined as the sparse category. Exemplarily, FIG. 10 shows the distribution diagram of the sub-neighbor nodes and the coplanar parent neighbor nodes of the sub-node 0, and FIG. 11 shows the distribution sequence diagram of the 20 parent neighbor nodes of the sub-node 0. Among them, the numbers 1, 2, 4, 8, 16, 32 etc. represent the numbers of the neighbor nodes.
[0198] Table 1 context information of sub-node 0
[0199] Here, Table 1 shows the explanation of each bit context information corresponding to child node 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 the context nodes of the co-planar, co-edge, and co-point of the current child node, 2 directions represent the context nodes of the co-edge and co-point of the current child node, and 1 direction represents the context node of the co-point of the current child node. The non-operation "!" represents that the bit symbol is the information after the actual symbol is negated; in addition, this also involves co-planar child nodes, co-edge child nodes, co-point child nodes, edge-enclosed child nodes, and same-position child nodes, etc. In Table 1, the symbol meanings are explained as follows: B (Bottom), F (Front), and L (Left) are respectively the parent neighbors of the six neighbors numbered 16, 4, and 2 of the current node in FIG. 10, and since these three decoded nodes are located in the negative direction of the coordinate axis of the current node, the child node occupation information can be obtained, so the co-planar, co-edge, and co-point child nodes in the 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 co-planar, co-edge, and co-point child nodes of the current child node, and the English full names Bottom, Front, and Left represent the co-planar, co-edge, and co-point parent neighbors of the current child node; Top, Back, and Right are respectively the parent neighbors of the six neighbors numbered 32, 8, and 1 of the current node in FIG. 10, and since these three decoded nodes are located in the positive direction of the coordinate axis of the current node, the child node occupation information cannot be obtained, and the relevance is weaker than the above-mentioned 12 child neighbor nodes; other numbers such as 9, 4, 1, and 2 in Table 1 are the serial numbers of the 20 co-edge / co-point neighbors of the current node shown in FIG. 11, excluding the six co-planar parent neighbors; for the same-position child nodes bit0 B, bit0 F, bit0 L in Table 1, they can be understood as follows: there are also child nodes numbered 0 in the decoded Bottom, Front, and Left nodes, which are called same-position child nodes; the two letters in the table, such as LF, LB, and FB, represent the occupation information of the two child nodes co-enclosing the current child node between the Left and Front directions (obtained through the 1st occupation code in the 20 neighbors), the Left and Bottom directions (obtained through the 8th occupation code in the 20 neighbors), and the Front and Bottom directions (obtained through the 3rd occupation code in the 20 neighbors).
[0200] (2) For child node 1, there are co-planar, co-edge, co-node neighbors, 1 decoded sibling bitO, co-planar parent neighbors and other decoded 20 neighbors that can be referenced. When determined as non-sparse category, the context bins is 19 bits, maximum 2 19 states, with high 6 bits as primary information and low 13 bits as non-reduced secondary information; when determined as sparse category, the context bins is 19 bits, maximum 2 19 states, with high 7 bits as primary information and low 12 bits as non-reduced secondary information.
[0201] Where, for the local sparsity of child node 1, the number of occupied nodes (NN) of the 4 child nodes adjacent to the current child node in the y negative direction (Front) in FIG. 10 can be determined, if the number of occupied nodes NN>0, it is determined as non-sparse category, if the number of occupied nodes NN=0, it is determined as sparse category. Here, Table 2 is the explanation of the context information of each bit of bins, it can be seen that the importance of the occupied information of the decoded sibling node 0 is the highest, which is located in the highest bit of bins.
[0202] (3) For child node 2, there are co-planar, co-edge, co-node neighbors, 2 decoded sibling nodes bitO, bitl, co-planar parent neighbors and other decoded 20 neighbors that can be referenced. When determined as non-sparse category, the context bins is 19 bits, maximum 2 19 states, with high 6 bits as primary information and low 13 bits as non-reduced secondary information; when determined as sparse category, the context bins is 19 bits, maximum 2 19 states, with high 7 bits as primary information and low 12 bits as non-reduced secondary information.
[0203] Where, for the local sparsity of child node 2, the number of occupied nodes (NN) of the 4 child nodes adjacent to the current child node in the z negative direction (Bottom) in FIG. 10 can be determined, if the number of occupied nodes NN>0, it is determined as non-sparse category, if the number of occupied nodes NN=0, it is determined as sparse category. Here, Table 3 is the explanation of the context information of each bit of bins, it can be seen that the importance of the occupied information of the decoded sibling node 0 is the highest, which is located in the highest bit of bins.
[0204] Table 2. Context information of child node 1
[0205] Table 3. Context information of child node 2
[0206] (4) For child node 3, there are coplanar, co-edge, co-point child node neighbors, there are 3 decoded sibling nodes bit0, bit1, bit2, 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 17 bits, maximum 2 17 states, with high 6 bits as main information and low 11 bits as unreduced secondary information; when judged as sparse category, the context bins is 18 bits, maximum 2 18 states, with high 6 bits as main information and low 12 bits as unreduced secondary information.
[0207] Where, for the local sparsity of child node 3, bit0+bit1+bit2 these 3 nodes together with the 4 nodes in the x negative direction (Left) adjacent to the current child node in FIG. 10 that are already decoded can be used to establish NN, if the number of occupants NN>1, it is judged as non-sparse category, if the number of occupants NN≤1, it is judged as sparse category.
[0208] Table 4. Context information of child node 3
[0209] (5) For child node 4, there are coplanar, co-edge, co-point child node neighbors, there are 4 decoded sibling nodes bit0, bit1, bit2, bit3, 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, maximum 2 19 states, with high 6 bits as main information and low 13 bits as unreduced secondary information; when judged as sparse category, the context bins is 16 bits, maximum 2 16 states, with high 4 bits as main information and low 12 bits as unreduced secondary information.
[0210] Where, for the local sparsity of child node 4, bit0+bit1+bit2+bit3 these 4 nodes (denoted as “new Left”), 4 nodes in the y negative direction (Front) adjacent to the current child node in FIG. 10 that are already decoded and 4 nodes in the z negative direction (Bottom) that are already decoded, these 12 nodes together can be used to establish NN, if the number of occupants NN>1, it is judged as non-sparse category, if the number of occupants NN≤1, it is judged as sparse category.
[0211] Table 5. Context information of child node 4
[0212] (5) For child node 5, there are child node neighbors that share a face, an edge, or a point with it. It has 5 decoded sibling nodes (bit0, bit1, bit2, bit3, and bit4), a parent node neighbor that shares a face with it, and 20 other decoded neighbors that can be referenced. When determined to be a non-sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is defined with the high 6 bits as primary information and the low 13 bits as unreduced secondary information. When classified as a sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is represented by the high 7 bits as primary information and the low 12 bits as unreduced secondary information.
[0213] For the local sparsity of child node 5, it can be determined by using the negative y-direction (Front) adjacent to the current child node in Figure 10 as NN. If the number of occupancy NN>0, it is determined to be a non-sparse category, and if the number of occupancy NN=0, it is determined to be a sparse category.
[0214] Table 6. Context information of child node 5
[0215] (7) For child node 6, there are child node neighbors that share a face, an edge, or a point with it. It has 6 decoded sibling nodes (bit0, bit1, bit2, bit3, bit4, and bit5), a parent node neighbor that shares a face with it, and 20 other decoded neighbors that can be referenced. When determined to be a non-sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is defined with the high 6 bits as primary information and the low 13 bits as unreduced secondary information. When classified as a sparse class, the context bins are 19 bits, with a maximum of 2... 19 Each state is represented by the high 7 bits as primary information and the low 12 bits as unreduced secondary information.
[0216] For the local sparsity of child node 6, it can be determined by using the negative z direction (Bottom) adjacent to the current child node in Figure 10 as NN. If the number of occupancy NN>0, it is determined to be a non-sparse category, and if the number of occupancy NN=0, it is determined to be a sparse category.
[0217] Table 7. Context information of child node 6
[0218] (8) For child node 7, there are no child node neighbors that share a face, edge, or point with it. It has 7 decoded sibling nodes (bit0, bit1, bit2, bit3, bit4, bit5, and bit6), a parent node neighbor that shares a face with it, and 20 other decoded neighbors that can be referenced. When determined to be a non-sparse class, the context bins are 17 bits, with a maximum of 2... 17one state, with the high 6 bits as the primary information and the low 11 bits as the un-reduced secondary information; when the sparse category is determined, the context bins are 18 bits, and the maximum is 2 18 one state, with the high 6 bits as the primary information and the low 12 bits as the un-reduced secondary information.
[0219] For the local sparsity of the child node 7, the 7 nodes of bit0+bit1+bit2+bit3+bit4+bit5+bit6 can be determined as NN, if the number of occupants NN>1, it is determined as the non-sparse category, and if the number of occupants NN≤1, it is determined as the sparse category.
[0220] Table 8. Context information of the child node 7
[0221] It should be noted that the black-filled 1 or 0 represents the flag bit of the current category, and the actual meaning can also be given to each bit. The bit of the NOT operation can also be removed.
[0222] S105: Entropy decoding the code stream according to the target entropy decoding parameter to determine the occupancy information of the current child node.
[0223] In some embodiments, the method further includes: updating the target entropy decoding parameter and the target context state according to the occupancy information of the current child node.
[0224] With the above technical solutions, in the G-PCC, the inter-frame context state set no longer shares the entropy decoding parameter set with the intra-frame context state set, but distinguishes different entropy decoding parameter sets according to the prediction information, fully utilizes the prediction information, and improves the G-PCC geometry decoding efficiency.
[0225] On the basis of the above embodiments, the decoding method provided by the embodiments of the present application is further exemplified. As shown in FIG. 13, the decoding method is specifically a point cloud geometry information decoding method, which can include:
[0226] S201: Local sparsity determination
[0227] According to the occupancy information of the decoded neighbor nodes, the local sparsity (isSparse) of the to-be-decoded symbol bn is determined. For example, for the child node 0, the local sparsity is determined according to the number of occupants (NN) of the 12 child nodes decoded in the negative direction of x, y and z adjacent to the current child node, and the number of occupants NN>1 is non-sparse (isSparse is 0), and the number of occupants NN≤1 is sparse (isSparse is 1).
[0228] 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, so that the number of context state sets is halved.
[0229] S202: Inter prediction determination
[0230] In some embodiments, according to the enablement identification (gbh.interPredictionEnabledFlag) of the inter prediction of the to-be-decoded unit, it is determined whether to enable the inter prediction, i.e., the value of isInter is determined. The to-be-decoded unit can include at least one of the following: a to-be-decoded sequence, a to-be-decoded frame, a to-be-decoded slice, etc. In some embodiments, the to-be-decoded unit is a to-be-decoded slice. The value of isInter is controlled by the 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.
[0231] S203: Context state selection
[0232] First, according to whether it is sparse (isSparse), the context state set used is determined. When it is in the non-sparse category, the non-sparse context state set (NSparse state) is used; when it is in the sparse category, the sparse context state set (Sparse state) is used. The construction method of the context information in the non-sparse context state set and the sparse context state set can be the construction method in the OBUF, or the construction method of the dynamic OBUF.
[0233] In some embodiments, the inter context construction method can adopt the same construction method as the intra context, i.e., different prediction modes can share the context state set, and only the context state set of the current sub-node needs to be selected according to the local sparse category, which reduces the number of context states, reduces the memory usage, and improves the decoding efficiency.
[0234] Secondly, in the selected context state set, according to the context information of the to-be-decoded sub-node, the target context state of the to-be-decoded sub-node is obtained, i.e., the probability P that the to-be-decoded sub-node occupies (or does not occupy) under this context condition is obtained. S .
[0235] S204: Entropy decoding parameter selection
[0236] First, according to the first variable (e.g., isInter) of the current sub-node, it is determined whether the current sub-node enables the inter prediction;
[0237] If inter off: NSparse state, Sparse state map to the same set of entropy decoding parameters, also called Intra Decoder, each decoder contains corresponding entropy decoding parameters, which can also be understood as a kind of context state. The context state set includes a large number of context states, and the decoder group includes a small number of context states. According to the mapping relationship between the context state set and the entropy decoding parameter set, the target entropy decoding parameter set is selected. In embodiments, the mapping relationship is many-to-one. In other embodiments, the mapping relationship can also be one-to-one or one-to-many.
[0238] If inter on: according to the second variable (for example, the occupancy information bp i of the prediction subnode) of the current subnode, the set of entropy decoding parameters used for inter prediction is determined. The specific method is shown in FIG. 12.
[0239] If inter on: NSparse state, Sparse state map to 2 sets of entropy decoding parameters, also called decoder group.
[0240] If NSparse state is used, when the prediction is not occupied, that is, bp i = 0, it is mapped to the decoder group (InterPred0Decoder); when the prediction is occupied, that is, bp i = 1, it is mapped to the decoder group (InterPred1 Decoder);
[0241] Sparse state, when the prediction is not occupied, that is, bp i = 0, it is mapped to the decoder group (InterPred0 Decoder); when the prediction is occupied, that is, bp i = 1, it is mapped to the decoder group (InterPred1 Decoder).
[0242] That is, for the inter prediction mode, the Sparse state and the NSparse state map to two sets of entropy decoding parameters, and only according to whether the prediction is not occupied or occupied, the set of entropy decoding parameters is selected, the correlation between the inter Sparse state and the inter NSparse state is fully utilized, and the inter prediction accuracy is improved.
[0243] Secondly, in the determined decoder group, according to a certain mapping rule, the context state P SThe mapping rule can be taking the top 5 bits of the context state, and the size of the value is the index value of the mapped decoder. The probability of the mapped decoder Ci is P C .
[0244] S205: adaptive arithmetic decoding
[0245] Adopting the determined probability P of the decoder Ci, adaptive arithmetic decoding is performed on the occupancy information bn of the to-be-decoded child node. C
[0246] The decoding method provided by the embodiments of the present application, when performing intra prediction, the sparse context state set and the non-sparse context state set share the same decoder group, when performing inter prediction, the sparse context state set and the non-sparse context state set share two decoder groups, the best decoder group is selected for the current child node by fully utilizing the inter prediction information, and the best entropy decoder is further selected for decoding according to the context information, thereby improving the decoding efficiency. In addition, the inter context information and the intra context information can be constructed by the same method, the number of inter context states and the number of intra context states are the same, which greatly reduces the number of inter context states and saves the storage space.
[0247] In another embodiment of the present application, referring to FIG. 13, a flowchart of an encoding method provided by an embodiment of the present application is shown.
[0248] As shown in FIG. 13, the method can include:
[0249] S301: determining the context information of the current child node based on the occupancy information of the already-encoded context node of the current child node;
[0250] 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 an encoding method of point cloud geometry information. More specifically, the embodiments of the present application provide an entropy encoding method of point cloud geometry information. In G-PCC, the inter context state set no longer shares the entropy encoding parameter set with the intra context state set, but distinguishes different entropy encoding parameter sets according to the prediction information to perform entropy encoding of the point cloud geometry information, fully utilizes the prediction information, and improves the G-PCC geometry encoding efficiency and saves the code rate under the condition of the same encoding quality.
[0251] It should be noted that the current child node is any child node in the to-be-encoded current node. As shown in FIG. 7, the current node includes 8 child nodes, and the scanning order of the child nodes is child node 0, child node 1, child node 2, child node 3, child node 4, child node 5, child node 6, and child node 7.
[0252] Exemplarily, the context nodes comprise at least one of: an encoded sibling node of the current sub-node; an encoded neighbor sub-node coplanar, co-edge and co-point of the current sub-node; an encoded neighbor parent node coplanar, co-edge of the current sub-node; and other encoded neighbor nodes of the current sub-node. The context node scanning order can be: an encoded sibling node of the current sub-node > an encoded coplanar sub-node neighbor of the current sub-node > an encoded co-edge sub-node neighbor of the current sub-node > an encoded co-point sub-node neighbor of the current sub-node > an encoded other sub-node neighbor of the current sub-node > an encoded coplanar parent node neighbor of the current sub-node > an encoded co-edge parent node neighbor of the current sub-node > other encoded 20 parent node neighbors. According to the scanning order and the occupancy information, the context information of the to-be-encoded sub-node is constructed.
[0253] Exemplarily, based on the occupancy information of the encoded context nodes of the current sub-node, the context information of the current sub-node is determined, which can comprise: determining the context information of the current sub-node according to the occupancy information of the encoded context nodes of the current sub-node and a first construction strategy.
[0254] The first construction strategy is used to indicate how to generate the context information according to the occupancy information of the context nodes. The first construction strategy can comprise: constructing the context information according to a preset context node scanning order and the occupancy information of the context nodes; or constructing first information and second information of the context information according to a preset context information composition structure and the occupancy information of the context nodes; the number of bits of the first information is fixed, and the number of bits of the second information is adjustable. The first information can be main information, and the second information can be secondary information, and whether part of the secondary information is dynamically adjusted as the context information.
[0255] Step 302: determining a target context state of the current sub-node from a context state set of the current sub-node based on the context information of the current sub-node;
[0256] The context state set comprises one or more context states, and one or more context information is mapped to one context state.
[0257] The context information of the current sub-node is used to represent the occupancy of the context nodes of the current sub-node, and the context state is the probability that the current sub-node is occupied or not occupied under the current context information. The context state set of the current sub-node records the context state corresponding to one or more context information, and the context information of the current sub-node can be used as an index information to index the context state set of the current sub-node to determine the target context state of the current sub-node.
[0258] In some embodiments, the context state set of the current sub-node can be a preset context state set.
[0259] In some embodiments, the context state set of the current sub-node can also be a specific context state set from a plurality of preset context state sets. The context state sets used by the inter-prediction mode and the intra-prediction mode can be the same or different.
[0260] In some embodiments, the method can further include: determining a local sparsity category of the current sub-node based on the occupancy information of the coded neighbor nodes of the current sub-node; and determining the context state set of the current sub-node based on the local sparsity category of the current sub-node.
[0261] The local sparsity category is used to indicate the local sparsity of the coded neighbor nodes of the current sub-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 sub-node based on the occupancy information of the coded neighbor nodes of the current sub-node includes: determining the occupancy number of the neighbor nodes based on the occupancy information of the neighbor nodes; and determining the local sparsity category of the current sub-node based on the occupancy number of the neighbor nodes. That is, the occupancy number of the neighbor nodes (i.e., the number of occupied neighbor nodes NN) can be determined based on the occupancy information (i.e., whether occupied) of the neighbor nodes, and different local sparsity categories can be distinguished based on the occupancy number.
[0262] For example, if the occupancy number of the neighbor nodes is greater than a second threshold, the local sparsity 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 second threshold, the local sparsity category of the current sub-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 local sparsity categories can also be included.
[0263] In the embodiments of the present application, the local sparsity of the current sub-node is determined based on the occupancy information of the coded neighbor nodes and the position of the sub-node relative to the parent node. For example, the neighbor nodes include at least one of the following: coded sibling nodes of the current sub-node; coded neighbor sub-nodes adjacent to the current sub-node in a first preset direction; coded neighbor sub-nodes adjacent to the current sub-node in a second preset direction; and coded neighbor sub-nodes adjacent to the current sub-node in a third preset direction. The first preset direction can be the x-axis negative direction (left direction) of the current sub-node, the second preset direction can be the y-axis negative direction (front direction) of the current sub-node, and the third preset direction can be the z-axis negative direction (bottom direction) of the current sub-node. That is, the local sparsity category can be established according to the occupancy number of the coded neighbor nodes adjacent to the current sub-node in the xyz negative direction. It should be noted that the coded neighbor nodes of the current sub-node are the same as or not completely the same as the context nodes of the current node.
[0264] 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. 10 can be used to determine the local sparse category of child node 0. If the occupancy number NN > 1, it is determined as a non-sparse category (isSparse is 0), and if the occupancy number NN ≤ 1, it is determined as a sparse category (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. 10 can be used to determine the local sparse category of child node 1. 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 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. 10 can be used to determine the local sparse category of child node 2. 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 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. 10 can be used to determine the local sparse category of child node 3. 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. It should be noted that different local sparse categories correspond to different context state sets. The corresponding context state set can be configured for different local sparse categories in advance, and then the context state set of the current child node is determined according to the local sparse category of the current child node.
[0265] For example, when the local sparse category is the first category, the context state set of the current child node is determined as the first context state set; and when the local sparse category is the second category, the context state set of the current child node 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 the context information of the corresponding first category. The second context state set includes one or more context states of the second category, and each context state corresponds to the context information of the corresponding second category.
[0266] In some embodiments, the context information and the context state in the context state set are in one-to-one correspondence, 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-encoded sub-node, and the context state is used to represent the first probability of the occupancy or non-occupancy of the to-be-encoded sub-node under a kind of context information, which can also be referred to as the context or the contextual probability model of the to-be-encoded sub-node. For example, if the bit of the context information is 19 bits, there are 2 19 context information, and at most 2 19 context states; if the bit of the context information is 16 bits, there are 2 16 context information, and at most 2 16 context states.
[0267] In some embodiments, the context information and the context state in the context state set are in many-to-one correspondence. For example, if the bit of the context information is 19 bits, there are 2 19 context information, and at most 2 19 context states, in order to reduce the context state, 2 19 context information is mapped to T context states, and T is less than 2 19 . For example, the value of T can be 64, 128, 256, 512, etc.
[0268] In some embodiments, based on the context information of the current sub-node and the first mapping relationship, an index value of the target context state is determined; and based on the index value of the target context state, the target context state of the current sub-node is determined from the context state set of the current sub-node. For example, the second mapping relationship can include: determining the index value of the target context state according to the high N bits of the context state; wherein N is related to the number of context states.
[0269] In some embodiments, the intra prediction mode and the inter prediction mode share one or more sets of context states, for example, a set of context states of a current sub-node needs to be selected according to a local sparsity category. Compared with related art that divides context states into four sets, including context state group 1 (contextStateGroup1), context state group 2 (contextStateGroup2), context state group 3 (contextStateGroup3), and context state group 4 (contextStateGroup4), some embodiments of the present application only need to divide the context states into two sets, including a non-sparse context state set (NSparse state) and a sparse context state set (Sparse state), which greatly reduces the number of context states and reduces memory usage.
[0270] S303: determining a target entropy coding parameter set of the current sub-node based on a prediction parameter of the current sub-node;
[0271] The target entropy coding parameter set includes a plurality of entropy coding parameters, and one or more context states are mapped to one entropy coding parameter.
[0272] The prediction parameter of the current sub-node is used as prediction information of the current sub-node to select a matching entropy coding parameter set for the current sub-node from a plurality of candidate entropy coding parameter sets. The plurality of candidate entropy coding parameter sets include a candidate intra entropy coding parameter set and a candidate inter entropy coding parameter set. The intra and inter entropy coding parameter sets are distinguished according to the prediction information of the current sub-node, and the entropy coding of the point cloud geometry information is performed, which fully utilizes the prediction information and improves the G-PCC geometry coding efficiency under the condition of the same coding quality.
[0273] The entropy coding parameter set includes a plurality of entropy coding parameters, and the context state can be used as index information to index the target entropy coding parameter set of the current sub-node to determine the target entropy coding parameter of the current sub-node. The entropy coding parameter is a parameter used when any kind of occupancy information of a sub-node is entropy coded. In some embodiments, the entropy coding parameter can be an arithmetic coding parameter, and the occupancy information of the sub-node is adaptively arithmetic coded according to the arithmetic coding parameter. For example, the entropy coding parameter can include a second probability of the current sub-node occupying or not occupying, which can also be referred to as a context or a contextual probability model of the sub-node to be coded. At this time, the entropy coding parameter set can be understood as a context set or a contextual probability model set.
[0274] In some embodiments, the prediction parameter comprises a first variable of the current sub-node, the first variable being used to indicate a prediction mode of the current sub-node, different prediction modes corresponding to different sets of entropy coding parameters.
[0275] In some embodiments, the prediction parameter of the current sub-node is used to determine a target set of entropy coding parameters of the current sub-node, comprising: in a case that the first variable indicates that the inter-prediction mode is enabled, determining the target set of entropy coding parameters from the candidate set of inter-prediction entropy coding parameters; in a case that the first variable indicates that the inter-prediction mode is not enabled, determining the target set of entropy coding parameters from the candidate set of intra-prediction entropy coding parameters.
[0276] The candidate set of inter-prediction entropy coding parameters comprises one or more sets of inter-prediction entropy coding parameters, and the candidate set of intra-prediction entropy coding parameters comprises one or more sets of intra-prediction entropy coding parameters. That is, one or more sets of entropy coding parameters can be pre-configured for different inter-prediction cases, and when the inter-prediction mode is enabled, a target set of entropy coding parameters that matches the actual inter-prediction case is selected to improve the accuracy of inter-prediction. One or more sets of entropy coding parameters can also be pre-configured for different intra-prediction cases, and when the intra-prediction mode is enabled, a target set of entropy coding parameters that matches the actual intra-prediction case is selected to improve the accuracy of intra-prediction.
[0277] In some embodiments, the method can further comprise: determining the value of the first variable of the current sub-node according to the value of the first syntax element. The value of the first syntax element is used to indicate whether the current node is allowed to enable the inter-prediction mode.
[0278] That is, whether the current sub-node enables the inter-prediction mode is related to the value of the first syntax element. When the value of the first syntax element is a first value, it is determined that the current node is allowed to enable the inter-prediction mode, and the value of the first variable is determined to be the first value; when the value of the first syntax element is a second value, it is determined that the current node is not allowed to enable the inter-prediction mode, and the value of the first variable is determined to be the second value. Exemplarily, the first syntax element comprises at least one of the following: a sequence-level syntax element, a frame-level syntax element, a slice-level syntax element, etc., and the value of the first syntax element is 1 to enable the inter-prediction, and the value of the first syntax element is 0 to disable the inter-prediction.
[0279] Exemplarily, whether to enable the inter-prediction is determined according to the enablement identification (gbh.interPredictionEnabledFlag) of the inter-prediction of the to-be-encoded unit, i.e., the value of the first variable is determined.
[0280] In some embodiments, the method further comprises: determining the value of the first variable of the current sub-node according to occupancy information of a prediction node of the current node in the reference picture, in a case that the value of the first syntax element indicates that the current node is allowed to enable the inter prediction mode.
[0281] Whether the current sub-node enables the inter prediction mode is related to the value of the first syntax element and the occupancy information of the prediction node of the current node (the parent node of the current sub-node). For example, the value of the occupancy information is 0 indicating not occupied, and 1 indicating occupied. That is, when the prediction node is occupied, the current node enables the inter prediction, which makes full use of the inter prediction information to improve the prediction accuracy, otherwise, the inter prediction is not enabled.
[0282] The occupancy of the prediction node is related to the occupancy of its sub-nodes. In some embodiments, the method further comprises: determining occupancy information of a plurality of prediction sub-nodes in the prediction node; and determining that the occupancy information of the prediction node indicates occupied, in a case that the occupancy information of at least one prediction sub-node in the prediction node indicates occupied. Otherwise, determining that the occupancy information of the prediction node indicates not occupied. That is, if at least one sub-node in the prediction node is occupied, the value of its occupancy information is set to 1; otherwise, if no sub-node is occupied, the value of its occupancy information is set to 0.
[0283] For example, according to the inter prediction occupancy information of the current node in the reference unit and the enable identifier (gbh.interPredictionEnabledFlag) of the to-be-encoded unit, it is determined whether to enable the inter prediction, that is, the value of the first variable is determined.
[0284] In some embodiments, the prediction parameter of the current sub-node includes a second variable of the current sub-node, and the second variable is used to indicate the occupancy of the prediction sub-node of the current sub-node in the reference picture, and different occupancy corresponds to different sets of inter entropy coding parameters.
[0285] In some embodiments, the prediction parameter of the current sub-node includes the first variable and the second variable of the current sub-node. The occupancy is at least divided into two cases of not occupied and occupied, and the target entropy coding parameter set is determined from the candidate inter entropy coding parameter set, wherein the candidate inter entropy coding parameter set includes one or more sets of inter entropy coding parameters, including: in a case that the second variable indicates that the prediction sub-node of the current sub-node is not occupied, determining that the target entropy coding parameter set is the first set of inter entropy coding parameters; and in a case that the second variable indicates that the prediction sub-node of the current sub-node is occupied, determining that the target entropy coding parameter set is the second set of inter entropy coding parameters.
[0286] In some embodiments, the occupancy condition can be further divided into two or more occupancy conditions according to occupancy intensity. In the case of predicting a child node as occupied, a target entropy coding parameter set is determined according to the occupancy intensity of the predicted child node. The occupancy intensity includes two or more intensities, and different occupancy intensities correspond to different entropy coding parameter sets.
[0287] For example, the target entropy coding parameter set is determined according to the occupancy intensity of the predicted child node. When the occupancy intensity of the predicted child node is a first intensity, the target entropy coding parameter set is determined as a second inter-frame entropy coding parameter set. When the occupancy intensity of the predicted child node is a second intensity, the target entropy coding parameter set is determined as a third inter-frame entropy coding parameter set.
[0288] That is, the entropy coding parameter set is assigned to the current node according to the occupancy condition of the predicted child node. The first inter-frame entropy coding parameter set includes a plurality of entropy coding parameters of the current node in the case of the predicted child node not being occupied. The second inter-frame entropy coding parameter set includes a plurality of entropy coding parameters of the current node in the case of the predicted child node being occupied. The third inter-frame entropy coding parameter set includes a plurality of entropy coding parameters of the current node in the case of the predicted child node being strongly occupied. In the embodiments of the present application, for inter-frame prediction, the entropy coding parameter set is selected according to the prediction of the current node as not being occupied, occupied, and strongly occupied, thereby fully utilizing the correlation between the inter-frame sparse context state and the non-sparse context state, and improving the accuracy of inter-frame prediction.
[0289] For example, the occupancy intensity of the predicted child node is related to the number of occupied nodes in the predicted child node. When the number of occupied nodes in the predicted child node is greater than a first threshold, the occupancy intensity is determined as strong occupation (i.e., the first intensity). When the number of occupied nodes in the predicted child node is less than or equal to the first threshold, the occupancy intensity is determined as occupation (i.e., the second intensity).
[0290] It should be noted that in some embodiments, more occupancy intensities can be divided according to the number of occupied nodes, i.e., more inter-frame entropy coding parameter sets are set, which will not be described here.
[0291] In other embodiments, the target entropy coding parameter set is determined from the candidate inter-frame entropy coding parameter set, including: determining the target entropy coding parameter set from the candidate inter-frame entropy coding parameter set according to the local sparse category.
[0292] For example, when the local sparse category is a first category, the target entropy coding parameter set is determined as a fourth inter-frame entropy coding parameter set. When the local sparse category is a second category, the target entropy coding parameter set is determined as a fifth inter-frame entropy coding parameter set. That is, when the current node enables the inter-frame prediction mode, the inter-frame entropy coding parameter set can also be assigned according to the local sparse category of the current node.
[0293] In some embodiments, the candidate intra entropy coding parameter sets include one intra entropy coding parameter set. That is, if the current sub-node includes the sparse context state and the non-sparse context state are mapped to the same intra entropy coding parameter set, one intra entropy coding parameter set is used for entropy coding parameter mapping for the intra prediction mode, so as to improve the intra coding efficiency with the least memory increment.
[0294] In some embodiments, the candidate intra entropy coding parameter sets include multiple intra entropy coding parameter sets. Determining the target entropy coding parameter set from the candidate intra entropy coding parameter sets includes: determining the target entropy coding parameter set from the candidate intra entropy coding parameter sets according to the local sparse category. That is, for the intra prediction mode, the sparse context state and the non-sparse context state can also be mapped to different intra entropy coding parameter sets, so as to further improve the intra coding efficiency.
[0295] For example, when the local sparse category is the first category, the target entropy coding parameter set is determined as the first intra entropy coding parameter set; when the local sparse category is the second category, the target entropy coding parameter set is determined as the second intra entropy coding parameter set. That is, when the current sub-node enables the intra prediction mode, the intra entropy coding parameter set is allocated according to the local sparse category of the current sub-node, the first intra entropy coding parameter set can include multiple entropy coding parameters corresponding to the first category, and the second intra entropy coding parameter set can include multiple entropy coding parameters corresponding to the second category.
[0296] S304: determining the target entropy coding parameter of the current sub-node from the target entropy coding parameter set based on the target context state of the current sub-node;
[0297] The context state is used to index the corresponding target entropy coding parameter. In some embodiments, determining the target entropy coding parameter of the current sub-node from the target entropy coding parameter set according to the target context state includes: determining the index value of the target entropy coding parameter according to the target context state and the second mapping relationship; and determining the target entropy coding parameter of the current sub-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, so as to index the target entropy coding parameter.
[0298] It should be noted that the mapping relationship of different context state sets and entropy coding parameter sets can be the same or different. For example, the second mapping relationship can include: determining the index value of the target encoder according to the high M bits of the context state; wherein M is related to the number of parameters in the target entropy coding parameter set. For example, when the number of parameters N in the target entropy coding parameter set is 32, the high 5 bits of the context state are taken, and the value of the high 5 bits is the index value of the target entropy coding parameter.
[0299] In some embodiments, the context state is a first probability of the current sub-node occupying or not occupying under the current context information, which can also be referred to as a first context of the sub-node, a first context probability model. The target entropy coding parameter is a second probability of the current sub-node occupying or not occupying under the current context information, which can also be referred to as a second context of the sub-node, a second context probability model. Therefore, the context state can also be understood as an intermediate probability, and the entropy coding parameter can be understood as a final used probability, and the entropy coding parameter set can also be understood as a simplified context state set.
[0300] When the bit of the context information is 19 bits, there are at most 2 19 When the bit of the context information is 16 bits, there are at most 2 16 In the embodiments of the present application, the context state set of the current sub-node has a large number of context states, and the target entropy coding parameter set has a number of entropy coding parameters much smaller than the number of context states. In the embodiments of the present application, the context state set of the current sub-node has a large number of context states, and if these context states are directly used for entropy coding, the coding efficiency is low. The target entropy coding parameter set has a small number of entropy coding parameters. The context state set of the current sub-node is mapped to the small number of entropy coding parameters in the target entropy coding parameter set, thereby simplifying the entropy coding parameters and improving the coding efficiency.
[0301] S305: Entropy coding the occupancy information of the current sub-node based on the target entropy coding parameter, and writing the obtained coding bits into the code stream.
[0302] In some embodiments, the method further includes: updating the target entropy coding parameter and the target context state according to the occupancy information of the current sub-node.
[0303] With the above technical solution, in G-PCC, the inter-frame context state set no longer shares the entropy coding parameter set with the intra-frame context state set, but distinguishes different entropy coding parameter sets according to the prediction information, fully utilizes the prediction information, improves the G-PCC geometry coding efficiency, and saves the code rate.
[0304] On the basis of the above-mentioned embodiments, the encoding method provided by the embodiments of the present application is further illustrated. As shown in FIG. 14, the encoding method is specifically a point cloud geometry information encoding method, which can include the following steps.
[0305] S401: Local sparsity determination
[0306] 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).
[0307] 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, so that the number of context state sets is halved compared with the related art.
[0308] S402: Inter-frame prediction determination
[0309] In some embodiments, according to the enablement identifier (gbh.interPredictionEnabledFlag) of the inter-frame prediction of the to-be-encoded unit, it is determined whether to enable the inter-frame prediction, i.e., the value of isInter is determined. The to-be-encoded unit can include at least one of the following: a to-be-encoded sequence, a to-be-encoded frame, a to-be-encoded slice, etc. In some embodiments, the to-be-encoded unit is a to-be-encoded slice. 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.
[0310] S403: Context state selection
[0311] First, according to whether it is sparse (isSparse), the context state set used is determined. When it is in the non-sparse category, the non-sparse context state set (NSparse state) is used; when it is in the sparse category, the sparse context state set (Sparse state) is used. The construction method of the context information in the non-sparse context state set and the sparse context state set can be the construction method in the OBUF, or the construction method of the dynamic OBUF.
[0312] In some embodiments, the inter-frame context construction method can adopt the same construction method as the intra-frame context, i.e., different prediction modes can share the context state set, and only the context state set of the current sub-node needs to be selected according to the local sparse category, thereby reducing the number of context states, reducing memory usage, and improving coding efficiency.
[0313] Secondly, in the selected context state set, the target context state of the to-be-encoded sub-node is obtained according to the context information of the to-be-encoded sub-node, i.e., the probability P of the to-be-encoded sub-node occupying (or not occupying) in this context case is obtained. S .
[0314] S404: Entropy coding parameter selection
[0315] Firstly, whether the current sub-node enables inter-frame prediction is determined according to the first variable (e.g., isInter) of the current sub-node;
[0316] If inter-frame is closed: the non-sparse context state (NSparse state) and the sparse context state (Sparse state) are mapped to the same entropy coding parameter set, which can also be called an intra coder group. Each coder contains corresponding entropy coding parameters, which can also be understood as a kind of context state. The context state set includes a large number of context states, and the coder group includes a simplified context state. According to the mapping relationship between the context state set and the entropy coding parameter set, the target entropy coding parameter set is selected. In embodiments, the mapping relationship is many-to-one. In other embodiments, the mapping relationship can also be one-to-one or one-to-many.
[0317] If inter-frame is enabled: according to the second variable (e.g., the occupancy information bp i of the prediction sub-node) of the current sub-node, the entropy coding parameter set used for inter-frame prediction is determined. The specific method is shown in FIG. 14.
[0318] If inter-frame is enabled: the non-sparse context state (NSparse state) and the sparse context state (Sparse state) are mapped to two entropy coding parameter sets, which are also called coder groups.
[0319] If the non-sparse context state (NSparse state) is used, when the prediction is not occupied, i.e., bp i = 0, it is mapped to the coder group (InterPred0Coder); when the prediction is occupied, i.e., bp i = 1, it is mapped to the coder group (InterPred1 Coder);
[0320] Sparse state, when predicted as not occupied, i.e. bp i = 0, maps to an encoder group (InterPred0 Coder); when predicted as occupied, i.e. bp i = 1, maps to an encoder group (InterPred1 Coder).
[0321] That is, for the inter prediction mode, the sparse context state and the non-sparse context state map to two sets of entropy coding parameters, and only according to the prediction as not occupied, occupied, the set of entropy coding parameters is selected, the inter sparse context state and the inter non-sparse context state correlation is fully utilized, and the inter prediction accuracy is improved.
[0322] 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 size is the index value of the mapped encoder, and the probability of the mapped encoder Ci is P C .
[0323] S405: adaptive arithmetic coding
[0324] Adopting the determined probability P C of the encoder Ci, the adaptive arithmetic coding is performed on the occupied information bn of the to-be-coded subnode.
[0325] By adopting the above technical solution, when the intra prediction is performed, the sparse context state set and the non-sparse context state set share the same encoder group, when the inter prediction is performed, the sparse context state set and the non-sparse context state set share two encoder groups, the best encoder group is selected for the current subnode by fully utilizing the inter prediction information, and the best entropy encoder is further selected for coding according to the context information, and the coding efficiency is improved. In addition, the inter context information and the intra context information can adopt the same construction method, the number of inter context states and the number of intra context states are the same, the number of inter context states is greatly reduced, and the storage space is saved.
[0326] Further, the performance of the technical solutions provided in the embodiments of the present application is tested, and Table 9 is the BD-Rate representation under the condition of lossy compression of geometric information, and Table 10 is the bpip ratio representation under the condition of lossless compression of geometric information. The technical solutions provided in the embodiments of the present application better utilize the inter-frame prediction information, reduce the memory usage, and further improve the G-PCC geometric coding efficiency. The BD-Rate representation under the condition of lossy compression of geometric information: compared with the prior art, in the case of obtaining the same coding quality, the coding rate of the technical solutions provided in the embodiments of the present application is saved (the BD-Rate is negative) or increased (the BD-Rate is positive) by a percentage compared with the coding rate of the prior art.
[0327] Table 9 BD-Rate of TM13-v25.0-Octree RAHT inter lossy compression
[0328] Table 10 bpip ratio of TM13-v25.0-Octree RAHT intra lossless compression
[0329] In another embodiment of the present application, based on the same inventive concept as the foregoing embodiments, referring to FIG. 15, a schematic diagram of the composition structure of a point cloud encoder provided in the embodiments of the present application is shown. As shown in FIG. 15, the point cloud encoder 150 can include a first determining unit 1501, a second determining unit 1502, and an encoding unit 1503; wherein,
[0330] The first determining unit 1501 is configured to determine the context information of the current subnode based on the occupancy information of the already encoded context node of the current subnode; and determine the target context state of the current subnode from the context state set of the current subnode based on the context information of the current subnode, wherein the context state set includes one or more context states.
[0331] The second determining unit 1502 is configured to determine the target entropy encoding parameter set of the current subnode based on the prediction parameter of the current subnode, wherein the target entropy encoding parameter set includes a plurality of entropy encoding parameters; and determine the target entropy encoding parameter of the current subnode from the target entropy encoding parameter set based on the target context state of the current subnode.
[0332] The encoding unit 1503 is configured to entropy encode the occupancy information of the current subnode based on the target entropy encoding parameter, and write the obtained encoded bits into a bitstream.
[0333] 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.
[0334] 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, the components in the embodiments can be integrated in a processing unit, or can be physically present separately, 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.
[0335] The integrated unit, if realized in the form of a software function module and not sold or used as an independent product, can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the embodiments can be embodied in the form of a software product in essence or in the form of a software product that contributes to the prior art or the whole or part of the technical solutions. 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 foregoing 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.
[0336] Therefore, the embodiments of the present application provide a computer readable storage medium applied to the point cloud encoder 150, the computer readable storage medium storing a computer program, and the computer program is executed by the first processor to realize the encoding method of any one of the foregoing embodiments.
[0337] Based on the composition of the foregoing point cloud encoder 150 and the computer readable storage medium, referring to FIG. 16, a specific hardware structure schematic diagram of the point cloud encoder 150 provided by the embodiments of the present application is shown. As shown in FIG. 16, the point cloud encoder 150 can include a first communication interface 1601, a first memory 1602 and a first processor 1603; and the various components are coupled together through a first bus system 1604. It can be understood that the first bus system 1604 is used to realize the connection communication between the components. The first bus system 1604 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 1604 in FIG. 16. Among them,
[0338] The first communication interface 1601 is used for receiving and sending signals in the process of transceiving information with other external network elements;
[0339] a first memory 1602, configured to store a computer program capable of running on the first processor 1603;
[0340] a first processor 1603, configured to execute the following when running the computer program:
[0341] determine context information of the current sub-node based on occupancy information of a coded context node of the current sub-node;
[0342] determine a target context state of the current sub-node from a context state set of the current sub-node based on the context information of the current sub-node, wherein the context state set comprises one or more context states;
[0343] determine a target entropy encoding parameter set of the current sub-node based on a prediction parameter of the current sub-node, wherein the target entropy encoding parameter set comprises a plurality of entropy encoding parameters;
[0344] determine a target entropy encoding parameter of the current sub-node from the target entropy encoding parameter set based on the target context state of the current sub-node;
[0345] entropy encode the occupancy information of the current sub-node based on the target entropy encoding parameter, and write the obtained encoded bits into a bitstream.
[0346] It is to be appreciated that the first memory 1602 in the embodiments of this application can be volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. In one embodiment, a non-volatile memory can be a read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically EPROM (EEPROM), or flash memory. Volatile memory can be a random access memory (RAM), which acts as the external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM). The first memory 1602 of the system and method described herein are intended to include, without being limited to, these and any other suitable types of memory.
[0347] The first processor 1603 can be an integrated circuit chip that 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 1603. The first processor 1603 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 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 memory 1602, and the first processor 1603 reads the information in the first memory 1602 and combines the hardware to complete the steps of the above method.
[0348] 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.
[0349] Optionally, as another embodiment, the first processor 1603 is further configured to, when running the computer program, perform the encoding method of any one of the preceding embodiments.
[0350] The embodiment provides a point cloud encoder, in which, in the G-PCC, a set of inter-frame context states no longer shares a set of entropy coding parameters with a set of intra-frame context states, but different sets of entropy coding parameters are distinguished according to prediction information, prediction information is fully utilized, G-PCC geometry coding efficiency is improved, and code rate is saved.
[0351] 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 coding according to to-be-encoded information. The to-be-encoded information at least includes occupancy information of a current subnode.
[0352] In still another embodiment of the present application, based on the same inventive concept of the preceding embodiments, referring to FIG. 17, a component structure schematic diagram of a point cloud decoder provided by the embodiment of the present application is shown. As shown in FIG. 17, the point cloud decoder 170 can include a third determining unit 1701, a fourth determining unit 1702 and a decoding unit 1703; wherein,
[0353] The third determining unit 1701 is configured to determine context information of a current subnode based on occupancy information of a decoded context node of the current subnode, and determine a target context state of the current subnode from a context state set of the current subnode based on the context information of the current subnode, wherein the context state set includes one or more context states.
[0354] The fourth determining unit 1702 is configured to determine a target entropy decoding parameter set of the current subnode based on a prediction parameter of the current subnode, wherein the target entropy decoding parameter set includes multiple entropy decoding parameters, and determine a target entropy decoding parameter of the current subnode from the target entropy decoding parameter set based on the target context state of the current subnode.
[0355] The decoding unit 1703 is configured to perform entropy decoding on the code stream based on the target entropy decoding parameter, and determine occupancy information of the current subnode.
[0356] 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.
[0357] It can be understood that, in the embodiments, the "unit" can be a partial circuit, a partial processor, a partial program or software, and the like, and can also be a module, and can also be non-modular. Moreover, the components in the embodiments can be integrated in a processing unit, or can be physically present as individual units, 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.
[0358] When the integrated unit is realized in the form of a software function module and is not sold or used as an independent product, the integrated unit can be stored in a computer readable storage medium. Based on this understanding, the embodiments provide a computer readable storage medium applied to the point cloud decoder 170, and the computer readable storage medium stores a computer program. The computer program is executed by the second processor to implement the decoding method of any one of the preceding embodiments.
[0359] Based on the components of the point cloud decoder 170 and the computer readable storage medium, referring to FIG. 18, a specific hardware structure schematic diagram of the point cloud decoder 170 provided by the embodiments of the present application is shown. As shown in FIG. 18, the point cloud decoder 170 can include a second communication interface 1801, a second memory 1802, and a second processor 1803; and the components are coupled together through a second bus system 1804. It can be understood that the second bus system 1804 is used to realize the connection and communication between the components. The second bus system 1804 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 second bus system 1804 in FIG. 18. Among them,
[0360] The second communication interface 1801 is configured to receive and send signals in the process of transceiving information with other external network elements;
[0361] The second memory 1802 is configured to store a computer program capable of running on the second processor 1803;
[0362] The second processor 1803 is configured to, when running the computer program, perform:
[0363] Determine context information of a current sub-node based on occupancy information of a context node of the current sub-node that has been decoded;
[0364] Determine a target context state of the current sub-node from a context state set of the current sub-node based on the context information of the current sub-node, wherein the context state set includes one or more context states;
[0365] determine a target set of entropy decoding parameters of the current child node based on the prediction parameters of the current child node, wherein the target set of entropy decoding parameters comprises a plurality of sets of entropy decoding parameters;
[0366] determine a target set of entropy decoding parameters of the current child node based on the prediction parameters of the current child node, wherein the target set of entropy decoding parameters comprises a plurality of sets of entropy decoding parameters;
[0367] determine a target set of entropy decoding parameters of the current child node based on the prediction parameters of the current child node, wherein the target set of entropy decoding parameters comprises a plurality of sets of entropy decoding parameters;
[0368] Optionally, as another embodiment, the second processor 1803 is further configured to execute the decoding method of any one of the preceding embodiments when running the computer program.
[0369] It can be understood that the second memory 1802 has similar hardware functions as the first memory 1602, and the second processor 1803 has similar hardware functions as the first processor 1603; and details are not described herein.
[0370] The embodiment further provides a computer program product comprising a computer program or instructions, which, when executed by a processor, perform the encoding method or the decoding method of any one of the preceding embodiments.
[0371] The embodiment provides a point cloud decoder, in which, in the G-PCC, the inter-frame context state set no longer shares the set of entropy decoding parameters with the intra-frame context state set, but distinguishes different sets of entropy decoding parameters according to the prediction information, fully utilizes the prediction information, and improves the G-PCC geometry decoding efficiency.
[0372] In still another embodiment of the present application, referring to FIG. 19, a constituent structure diagram of a coding system provided by the embodiment of the present application is shown. As shown in FIG. 19, the coding system 190 can comprise a point cloud encoder 1901 and a point cloud decoder 1902.
[0373] In the embodiment of the present application, the point cloud encoder 1901 can be the point cloud encoder of any one of the preceding embodiments, and the point cloud decoder 1902 can be the point cloud decoder of any one of the preceding embodiments.
[0374] It should be noted that, in the present application, the terms “comprise”, “contain” or any other variant thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device comprising a series of elements not only includes those elements, but also includes other elements not explicitly listed or inherent to such process, method, article or device. Without more limitation, the element defined by the statement “comprises a” does not exclude the presence of another identical element in the process, method, article or device comprising the element.
[0375] The above-mentioned sequence numbers of the embodiments of the present application are only for description, and do not represent advantages or disadvantages of the embodiments.
[0376] 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 or device embodiments.
[0377] The above merely describes the specific embodiments 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
[0378] In the embodiments of the present application, at the encoding end or the decoding end, the context information of a current sub-node is determined based on the occupancy information of the current sub-node of a decoded context node; the target context state of the current sub-node is determined from the context state set of the current sub-node based on the context information of the current sub-node; the target entropy encoding / decoding parameter set of the current sub-node is determined based on the prediction parameter of the current sub-node; the target entropy encoding / decoding parameter of the current sub-node is determined from the target entropy encoding / decoding parameter set based on the target context state of the current sub-node; and the occupancy information of the current sub-node is entropy encoded / decoded based on the target entropy encoding / decoding parameter. In this way, in G-PCC, the inter-frame context state set no longer shares the entropy encoding / decoding parameter set with the intra-frame context state set, but distinguishes different entropy encoding / decoding parameter sets according to prediction information, fully utilizes the prediction information, improves the G-PCC geometry encoding / decoding efficiency, and saves the code rate.
Claims
1. A decoding method applied to a point cloud decoder, the method comprising: determining context information of a current sub-node based on occupancy information of a decoded context node of the current sub-node; determining a target context state of the current sub-node from a context state set of the current sub-node based on the context information of the current sub-node, wherein the context state set comprises one or more context states; determining a target entropy decoding parameter set of the current sub-node based on a prediction parameter of the current sub-node, wherein the target entropy decoding parameter set comprises a plurality of entropy decoding parameters; determining a target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set based on the target context state of the current sub-node; entropy decoding a bitstream based on the target entropy decoding parameter to determine occupancy information of the current sub-node.
2. The method of claim 1, wherein, The method further comprises: determining a local sparsity class of the current sub-node based on occupancy information of a decoded neighbor node of the current sub-node; determining the context state set of the current sub-node based on the local sparsity class of the current sub-node.
3. The method of claim 1 or 2, wherein, The determining the target context state of the current sub-node from the context state set of the current sub-node based on the context information of the current sub-node comprises: determining an index value of the target context state of the current sub-node based on the context information of the current sub-node and a first mapping relationship; determining the target context state of the current sub-node from the context state set of the current sub-node based on the index value of the target context state of the current sub-node.
4. The method according to any one of claims 1 to 3, wherein, The prediction parameter of the current sub-node comprises a first variable of the current sub-node, the first variable being used to indicate a prediction mode of the current sub-node, different prediction modes corresponding to different entropy decoding parameter sets.
5. The method of claim 4, wherein, The determining the target entropy decoding parameter set of the current sub-node based on the prediction parameter of the current sub-node comprises: in a case where the first variable indicates that an inter-prediction mode is enabled, determining the target entropy decoding parameter set from a candidate inter-prediction entropy decoding parameter set; in a case where the first variable indicates that an intra-prediction mode is not enabled, determining the target entropy decoding parameter set from a candidate intra-prediction entropy decoding parameter set.
6. The method of claim 5, wherein, The prediction parameter of the current sub-node further comprises a second variable of the current sub-node, the second variable being used to indicate an occupancy condition of a prediction sub-node of the current sub-node in a reference image, different occupancy conditions corresponding to different inter-prediction entropy decoding parameter sets.
7. The method of claim 6, wherein, The determining the target entropy decoding parameter set from the candidate inter-prediction entropy decoding parameter set comprises: in a case where the second variable indicates that the prediction sub-node of the current sub-node is not occupied, determining the target entropy decoding parameter set as a first inter-prediction entropy decoding parameter set; in a case where the second variable indicates that the prediction sub-node of the current sub-node is occupied, determining the target entropy decoding parameter set as a second inter-prediction entropy decoding parameter set.
8. The method of claim 5, wherein, The candidate intra-prediction entropy decoding parameter set comprises one intra-prediction entropy decoding parameter set.
9. The method of claim 5, wherein, The candidate intra entropy decoding parameter set includes a plurality of intra entropy decoding parameter sets, and the target entropy decoding parameter set is determined from the candidate intra entropy decoding parameter set, including: Determine the target entropy decoding parameter set from the candidate intra entropy decoding parameter set based on the local sparse category of the current subnode.
10. The method according to any one of claims 1 to 9, wherein, The target context state of the current subnode is determined from the target entropy decoding parameter set based on the target context state of the current subnode, including: Determine the index value of the target entropy decoding parameter based on the target context state and the second mapping relationship; Determine the target entropy decoding parameter of the current subnode from the target entropy decoding parameter set based on the index value of the target entropy decoding parameter.
11. The method according to any one of claims 1 to 10, wherein, The target context state includes a first probability that the current subnode occupies or does not occupy under the context information, and the target entropy decoding parameter includes a second probability that the current subnode occupies or does not occupy under the context information.
12. An encoding method applied to a point cloud encoder, the method comprising: Determine the context information of the current subnode based on the occupancy information of the encoded context node of the current subnode; Determine the target context state of the current subnode from the context state set of the current subnode based on the context information of the current subnode, wherein the context state set includes one or more context states; Determine the target entropy encoding parameter set of the current subnode based on the prediction parameter of the current subnode, wherein the target entropy encoding parameter set includes a plurality of entropy encoding parameters; Determine the target entropy encoding parameter of the current subnode from the target entropy encoding parameter set based on the target context state of the current subnode; Entropy encode the occupancy information of the current subnode based on the target entropy encoding parameter, and write the obtained encoded bits into a bitstream.
13. The method of claim 12, wherein, The method further comprises: Determine the local sparse category of the current subnode based on the occupancy information of the encoded neighbor node of the current subnode; Determine the context state set of the current subnode based on the local sparse category of the current subnode.
14. The method of claim 12 or 13, wherein, The target context state of the current subnode is determined from the context state set of the current subnode according to the context information of the current subnode, including: Determine the index value of the target context state of the current subnode based on the context information of the current subnode and the first mapping relationship; Determine the target context state of the current subnode from the context state set of the current subnode based on the index value of the target context state of the current subnode.
15. The method according to any one of claims 12 to 14, wherein, The prediction parameter of the current subnode includes a first variable of the current subnode, and the first variable is used to indicate a prediction mode of the current subnode, and different prediction modes correspond to different entropy encoding parameter sets.
16. The method of claim 15, wherein, The target entropy encoding parameter set of the current subnode is determined based on the prediction parameter of the current subnode, including: in a case where the first variable indicates that the inter prediction mode is enabled, determining the target entropy coding parameter set from a candidate inter entropy coding parameter set; in a case where the first variable indicates that the inter prediction mode is not enabled, determining the target entropy coding parameter set from a candidate intra entropy coding parameter set.
17. The method of claim 16, wherein, The prediction parameter of the current sub-node further includes a second variable of the current sub-node, the second variable being used to indicate an occupancy of a prediction sub-node of the current sub-node in a reference image, different occupancies corresponding to different inter entropy coding parameter sets.
18. The method of claim 17, wherein, The determining the target entropy coding parameter set from the candidate inter entropy coding parameter set includes: in a case where the second variable indicates that the prediction sub-node of the current sub-node is not occupied, determining the target entropy coding parameter set as a first inter entropy coding parameter set; in a case where the second variable indicates that the prediction sub-node of the current sub-node is occupied, determining the target entropy coding parameter set as a second inter entropy coding parameter set.
19. The method of claim 16, wherein, The candidate intra entropy coding parameter set includes one intra entropy coding parameter set.
20. The method of claim 16, wherein, The candidate intra entropy coding parameter set includes a plurality of intra entropy coding parameter sets, and the determining the target entropy coding parameter set from the candidate intra entropy coding parameter set includes: determining the target entropy coding parameter set from the candidate intra entropy coding parameter set based on a local sparse category of the current sub-node.
21. The method of any one of claims 12 to 20, wherein, The determining the target entropy coding parameter of the current sub-node from the target entropy coding parameter set based on the target context state of the current sub-node includes: determining an index value of the target entropy coding parameter based on the target context state and a second mapping relationship; determining the target entropy coding parameter of the current sub-node from the target entropy coding parameter set based on the index value of the target entropy coding parameter.
22. The method of any one of claims 12 to 21, wherein, The target context state includes a first probability that the current sub-node is occupied or not occupied under the context information, and the target entropy coding parameter includes a second probability that the current sub-node is occupied or not occupied under the context information.
23. A bitstream, wherein, The code stream is generated according to to-be-encoded information; wherein the to-be-encoded information includes at least one of the following: occupancy information of the current sub-node, and the code stream is generated by the encoding method in any one of claims 12 to 22.
24. A point cloud encoder, comprising a first determining unit, a second determining unit and an encoding unit; wherein, the first determining unit is configured to determine context information of a current sub-node based on occupancy information of an already-encoded context node of the current sub-node; determine a target context state of the current sub-node from a context state set of the current sub-node based on the context information of the current sub-node, wherein the context state set includes one or more context states; and the encoding unit is configured to encode the current sub-node based on the target context state of the current sub-node. The second determining unit is configured to determine a target entropy coding parameter set of the current sub-node based on a prediction parameter of the current sub-node, wherein the target entropy coding parameter set comprises a plurality of entropy coding parameters; and determine a target entropy coding parameter of the current sub-node from the target entropy coding parameter set based on a target context state of the current sub-node. The encoding unit is configured to entropy encode the occupancy information of the current sub-node based on the target entropy coding parameter, and write the obtained encoded bits into a bitstream. 25.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 12 to 22 when running the computer program. 26.A point cloud decoder, comprising a third determining unit, a fourth determining unit and a decoding unit; wherein The third determining unit is configured to determine context information of a current sub-node based on occupancy information of a decoded context node of the current sub-node. The fourth determining unit is configured to determine a target entropy decoding parameter set of the current sub-node based on a prediction parameter of the current sub-node, wherein the target entropy decoding parameter set comprises a plurality of entropy decoding parameters; and determine a target entropy decoding parameter of the current sub-node from the target entropy decoding parameter set based on a target context state of the current sub-node. The decoding unit is configured to entropy decode a bitstream based on the target entropy decoding parameter, and determine occupancy information of the current sub-node. 27.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 11 when running the computer program. The computer readable storage medium stores a bitstream generated by the encoding method according to any one of claims 12 to 22.
28. A computer readable storage medium, wherein, The computer readable storage medium stores a computer program, which is executed to implement the method according to any one of claims 1 to 11, or implement the method according to any one of claims 12 to 22.
29. A computer readable storage medium, wherein,
Citation Information
Patent Citations
Point cloud geometrical information inter-frame encoding and decoding method
CN112565764A
Entropy coding and decoding method and device
CN115474050A
Point cloud coding and decoding processing method and device, coding equipment and decoding equipment
CN116233388A
Point cloud encoding method, point cloud decoding method, encoder, decoder, and computer storage medium
WO2022126326A1
Inter prediction in point cloud compression
WO2023205414A1