CN118175319A - Point cloud encoding method, point cloud decoding method and related equipment - Google Patents
Point cloud encoding method, point cloud decoding method and related equipment Download PDFInfo
- Publication number
- CN118175319A CN118175319A CN202211585959.7A CN202211585959A CN118175319A CN 118175319 A CN118175319 A CN 118175319A CN 202211585959 A CN202211585959 A CN 202211585959A CN 118175319 A CN118175319 A CN 118175319A
- Authority
- CN
- China
- Prior art keywords
- node
- neighbor
- child node
- target
- child
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 117
- 238000010276 construction Methods 0.000 claims abstract description 19
- 238000004891 communication Methods 0.000 claims description 24
- 230000000875 corresponding effect Effects 0.000 description 209
- 239000010410 layer Substances 0.000 description 35
- 238000010586 diagram Methods 0.000 description 17
- 238000013139 quantization Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000006735 deficit Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
The application discloses a point cloud coding method, a point cloud decoding method and related equipment, belonging to the technical field of computers, wherein the point cloud coding method comprises the following steps: performing tree construction on the geometric information of the point cloud to obtain child nodes to be encoded; determining first neighbor information corresponding to a child node to be encoded; coding the sub-node to be coded based on the first neighbor information to obtain a coding result of the sub-node to be coded; under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree with the sub-node to be encoded meeting the preset condition; or, in the case that it is determined that the target associated child node does not exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be encoded.
Description
Technical Field
The application belongs to the technical field of computers, and particularly relates to a point cloud coding method, a point cloud decoding method and related equipment.
Background
The point cloud is a representation form of a three-dimensional object or scene, and is composed of a group of discrete point sets which are irregularly distributed in space and express the spatial structure and surface properties of the three-dimensional object or scene. In order to accurately reflect the information in the space, the number of discrete points required is quite large, and in order to reduce the bandwidth occupied by the point cloud data during storage and transmission, the point cloud data needs to be subjected to encoding compression processing. The point cloud data is generally composed of geometric information describing a position such as three-dimensional coordinates (x, y, z), attribute information of the position such as color (R, G, B) or reflectance, and the like. The encoding of the geometric information and the attribute information is carried out separately in the point cloud encoding compression process.
At present, in the process of entropy coding of the geometric information of the point cloud, the context involved in coding the child node to be coded comprises the child layer neighbor prediction of the current point and the neighbor prediction of the current point layer, the involved context information is more, and the coding efficiency is lower.
Disclosure of Invention
The embodiment of the application provides a point cloud encoding method, a point cloud decoding method and related equipment, which can solve the problem of low encoding efficiency.
In a first aspect, a point cloud encoding method is provided, including:
Performing tree construction on the geometric information of the point cloud to obtain child nodes to be encoded;
Determining first neighbor information corresponding to the child node to be encoded;
encoding the child node to be encoded based on the first neighbor information to obtain an encoding result of the child node to be encoded;
under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that the target associated child node is determined not to exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded.
In a second aspect, a point cloud decoding method is provided, including:
Determining second neighbor information corresponding to the child node to be decoded;
Decoding the child node to be decoded based on the second neighbor information to obtain a decoding result of the child node to be decoded;
Under the condition that the target associated sub-node corresponding to the sub-node to be decoded exists, the second neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be decoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that it is determined that the target associated child node does not exist, the second neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node among the neighbor child nodes of the child node to be decoded.
In a third aspect, a point cloud encoding apparatus is provided, including:
the acquisition module is used for carrying out tree construction on the geometric information of the point cloud to acquire the child node to be encoded;
the determining module is used for determining the first neighbor information corresponding to the child node to be encoded;
the coding module is used for coding the child node to be coded based on the first neighbor information to obtain a coding result of the child node to be coded;
under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that the target associated child node is determined not to exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded.
In a fourth aspect, there is provided a point cloud decoding apparatus including:
the determining module is used for determining second neighbor information corresponding to the child node to be decoded;
the decoding module is used for decoding the child node to be decoded based on the second neighbor information to obtain a decoding result of the child node to be decoded;
Under the condition that the target associated sub-node corresponding to the sub-node to be decoded exists, the second neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be decoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that it is determined that the target associated child node does not exist, the second neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node among the neighbor child nodes of the child node to be decoded.
In a fifth aspect, there is provided a communication device comprising a processor, a memory and a program or instruction stored on the memory and executable on the processor, the program or instruction when executed by the processor implementing the steps of the method according to the first aspect; or the program or instructions when executed by the processor implement the steps of the method as described in the second aspect.
In a sixth aspect, a communication device is provided, including a processor and a communication interface, where the processor is configured to:
Performing tree construction on the geometric information of the point cloud to obtain child nodes to be encoded;
Determining first neighbor information corresponding to the child node to be encoded;
encoding the child node to be encoded based on the first neighbor information to obtain an encoding result of the child node to be encoded;
under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that the target associated child node is determined not to exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded.
In a seventh aspect, a communication device is provided, including a processor and a communication interface, where the processor is configured to:
Determining second neighbor information corresponding to the child node to be decoded;
Decoding the child node to be decoded based on the second neighbor information to obtain a decoding result of the child node to be decoded;
Under the condition that the target associated sub-node corresponding to the sub-node to be decoded exists, the second neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be decoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that it is determined that the target associated child node does not exist, the second neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node among the neighbor child nodes of the child node to be decoded.
In an eighth aspect, there is provided a readable storage medium having stored thereon a program or instructions which when executed by a processor, performs the steps of the method according to the first aspect or which when executed by a processor, performs the steps of the method according to the second aspect.
In a ninth aspect, there is provided a chip comprising a processor and a communication interface, the communication interface and the processor being coupled, the processor being for running a program or instructions, implementing the steps of the method as described in the first aspect, or implementing the steps of the method as described in the second aspect.
In a tenth aspect, a computer program/program product is provided, stored in a non-volatile storage medium, the program/program product being executed by at least one processor to implement the steps of the method as described in the first aspect, or to implement the steps of the method as described in the second aspect.
In the embodiment of the application, the geometric information of the point cloud is subjected to tree construction to obtain the child node to be encoded; determining first neighbor information corresponding to the child node to be encoded; encoding the child node to be encoded based on the first neighbor information to obtain an encoding result of the child node to be encoded; under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition; in the case that the target associated child node is determined not to exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded. In this way, by determining whether the target associated child node corresponding to the child node to be encoded exists or not to determine the first neighbor information, different neighbor node information can be selected as the context to be encoded based on the node density degree, the number of the context information can be reduced, and therefore encoding efficiency can be improved.
Drawings
FIG. 1 is a schematic diagram of a point cloud AVS encoder framework;
FIG. 2 is a schematic diagram of a point cloud AVS decoder framework;
FIG. 3 is a schematic diagram of a reference node selected from the various child nodes;
FIG. 4 is a schematic diagram of 4 sets of reference neighbor nodes for a current node;
FIG. 5 is a schematic diagram of a sub-block corresponding to 6 adjacent parent blocks, respectively;
FIG. 6 is a schematic diagram of the surrounding 18 neighboring blocks and their Morton sequence numbers utilized by a current block to be encoded;
fig. 7 is a schematic flow chart of a point cloud encoding method according to an embodiment of the present application;
FIG. 8 is a second flow chart of a point cloud encoding method according to an embodiment of the present application;
FIG. 9 is a schematic diagram of a reference node selected by each child node according to an embodiment of the present application;
FIG. 10 is a schematic diagram of a sub-node layer co-located neighbor provided by an embodiment of the present application;
fig. 11 is a schematic flow chart of a point cloud decoding method according to an embodiment of the present application;
FIG. 12 is a schematic diagram of a coding test result provided by an embodiment of the present application;
FIG. 13 is a second flow chart of a point cloud decoding method according to an embodiment of the present application;
fig. 14 is a schematic structural diagram of a point cloud encoding device according to an embodiment of the present application;
fig. 15 is a schematic structural diagram of a point cloud decoding device according to an embodiment of the present application;
Fig. 16 is a block diagram of a communication device according to an embodiment of the present application;
Fig. 17 is a block diagram of a terminal according to an embodiment of the present application.
Detailed Description
The technical solutions of the embodiments of the present application will be clearly described below with reference to the drawings in the embodiments of the present application, and it is apparent that the described embodiments are some embodiments of the present application, but not all embodiments. All other embodiments, which are derived by a person skilled in the art based on the embodiments of the application, fall within the scope of protection of the application.
The terms first, second and the like in the description and in the claims, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the application are capable of operation in sequences other than those illustrated or otherwise described herein, and that the "first" and "second" distinguishing between objects generally are not limited in number to the extent that the first object may, for example, be one or more. Furthermore, in the description and claims, "and/or" means at least one of the connected objects, and the character "/" generally means a relationship in which the associated object is an "or" before and after.
The codec end corresponding to the codec method in the embodiment of the present application may be a terminal, which may also be referred to as a terminal device or a User Equipment (UE), and the terminal may be a Mobile phone, a tablet (Tablet Personal Computer), a Laptop (Laptop Computer) or a terminal-side device called a notebook, a Personal digital assistant (Personal DIGITAL ASSISTANT, PDA), a palm Computer, a netbook, an ultra-Mobile Personal Computer, a UMPC, a Mobile internet device (Mobile INTERNET DEVICE, MID), an augmented reality (augmented reality, AR)/Virtual Reality (VR) device, a robot, a wearable device (Wearable Device) or a vehicle-mounted device (VUE), a pedestrian terminal (PUE), and the wearable device includes: smart watches, bracelets, headphones, eyeglasses, etc. It should be noted that, the embodiment of the present application is not limited to a specific type of terminal.
For ease of understanding, some of the following descriptions are directed to embodiments of the present application:
(1) Point cloud AVS encoding and decoding framework
In the point cloud AVS encoder framework, the geometric information of the point cloud and the attribute information corresponding to each point are separately encoded. Firstly, carrying out coordinate transformation on geometric information to enable the point cloud to be contained in a bounding box. And then carrying out quantization, wherein the quantization mainly plays a role of scaling, and the geometric information of a part of points is the same due to the rounding of quantization, so that whether repeated points are removed or not is determined according to parameters, and the processes of quantization and repeated point removal belong to a preprocessing process. Next, the binding box is divided (octree/quadtree/binary tree) in order of breadth-first traversal, and the occupation code of each node is encoded. In the geometric code frame based on the octree, the bounding boxes are sequentially divided to obtain subcubes, the subcubes which are not empty (contain points in the point cloud) are continuously divided until the division is stopped when the leaf nodes obtained by the division are 1x1x1 unit cubes, the points contained in the leaf nodes are encoded, and finally, the encoding of the geometric octree is completed, and a binary code stream is generated. In the geometric decoding process based on octree, the decoding end obtains the occupation code of each node through continuous analysis according to the breadth-first traversal sequence, and continuously divides the nodes in sequence until the unit cubes of 1x1x1 are obtained by division, the division is stopped, the points contained in each leaf node are obtained through analysis, and finally the geometric reconstruction point cloud information is recovered.
After the geometric coding is completed, the geometric information is reconstructed, and the attribute information is coded by using the reconstructed geometric information. Currently, attribute coding is mainly performed for color and reflectivity information. Firstly, judging whether to convert the color space or not, and converting the color information from the RGB color space to the YUV color space if the color space is converted. Then, in the case of geometric lossy coding, it is necessary to perform attribute interpolation, i.e. re-coloring, on the reconstructed point cloud, and calculate a new attribute value for each point in the reconstructed point cloud, so that the attribute errors of the reconstructed point cloud and the original point cloud are minimized. In the encoding of attribute information, two branches are divided: attribute prediction and attribute transformation. The attribute prediction process is as follows: the point clouds are reordered first, and then differentially predicted. There are two methods of reordering: morton reordering and Hilbert reordering. Hilbert code is adopted to reorder the point cloud in the current AVS coding framework. And performing attribute prediction on the ordered point cloud in a differential mode, if the geometric information of the current point to be encoded and the previous encoded point is the same, namely the point to be encoded is a repeated point, using the reconstructed attribute value of the repeated point as the attribute prediction value of the current point to be encoded, otherwise, selecting m points of the previous Hilbert sequence as neighbor candidate points for the current point to be encoded, respectively calculating Manhattan distances between the m points and the geometric information of the current point to be encoded, determining n points closest to the current point to be encoded as neighbors of the current point to be encoded, using the inverse of the distance as weight, and calculating weighted average of the attributes of all neighbors to be used as the attribute prediction value of the current point to be encoded. And calculating a prediction residual by the attribute prediction value and the attribute value of the current point to be encoded, and finally quantizing and entropy encoding the prediction residual to generate a binary code stream. The attribute transformation process is as follows: firstly, carrying out wavelet transformation on point cloud attributes, and quantizing transformation coefficients; secondly, obtaining an attribute reconstruction value through inverse quantization and inverse wavelet transformation; then calculating the difference between the original attribute and the attribute reconstruction value to obtain an attribute residual error and quantifying the attribute residual error; and finally, entropy coding the quantized transformation coefficient and the attribute residual error to generate a binary code stream. Fig. 1 and 2 show AVS codec frame diagrams. The present technology relates to a geometric entropy coding section.
(2) Entropy coding
(2.1): The context to which the entropy coding technique relates includes sub-layer neighbor prediction of the current point and neighbor prediction of the current point layer.
1) Sublayer neighbor prediction for current point
In the octree breadth-first traversal dividing mode, the neighbor information which can be obtained when the child node of the current point is encoded comprises neighbor child nodes in the left front lower three directions. The context model of the child node layer is designed as follows: for the sub-node layer to be encoded, the occupation situation of the node at the side of the two nodes of the current sub-node to be encoded, which is 3 coplanar, 3 collinear, 1 co-node and the negative direction distance in the dimension with the shortest node side length, in the left front lower direction of the same layer as the sub-node to be encoded is searched. Taking the shortest node side length in the X dimension as an example, the reference node selected by each child node is shown in fig. 3. The nodes of the dotted line frame are current nodes, the gray nodes are current sub-nodes to be coded, and the nodes of the solid line frame are reference nodes selected by all the sub-nodes.
The occupation situation of the negative direction distance from the node at the edge of the two nodes of the current sub-node to be coded in the dimension of the shortest node edge of the 3 coplanar nodes and the 3 collinear nodes is considered in detail, and the occupation situation of the 7 nodes is 2 7 =128. If not all, 2 7 -1=127 cases are total, and 1 context is allocated for each case; if all 7 nodes are unoccupied, the occupation situation of the co-node neighbor nodes is considered. There are 2 possibilities for this co-point neighbor: occupied or unoccupied. And (3) independently distributing 1 context for the occupied situation of the co-node neighbor node, and if the co-node neighbor node is unoccupied, considering the occupied situation of the neighbor of the current node layer, which is described below. I.e., the sub-node layer neighbors to be encoded correspond to 127+2-1=128 contexts in total.
2) Neighbor prediction for current node layer
If none of the 8 peer reference nodes of the child node to be encoded is occupied, consider the occupancy of four sets of neighbors of the current node layer as shown in FIG. 4. The dotted line frame node is the current node, and the solid line frame is the neighbor node.
For the current node layer, the context is determined according to the following steps:
a) Consider first the top right 3 co-planar neighbors of the current node. The occupation situation of the 3 neighbors which are coplanar at the right upper part of the current node is 2 3 =8, one context is allocated to each unoccupied situation, and the position of the child node to be encoded at the current node is considered, so that the group of neighbor nodes provides (8-1) x 8=56 contexts in total. If none of the last right 3 co-planar neighbors of the current point is occupied, then the remaining three sets of neighbors of the current node layer continue to be considered
B) Consider the distance of the most recently occupied node from the current node.
The specific correspondence between the distribution of neighboring nodes and the distance is shown in table 1.
TABLE 1 correspondence between current node layer occupancy and distance
As can be seen from table 1, the distances total 3. And allocating 1 context for each of the 3 value cases, and considering the position condition of the child node to be encoded at the current node, wherein the total number of the contexts is 3 multiplied by 8=24.
To this end, the technical context model allocates 128+56+24=208 contexts in total.
(2.2) The entropy encoding technique uses a double-layer context reference relationship configuration.
As shown in equation (1), the first layer is the occupancy of the coded neighboring block with the parent node of the current sub-block to be coded (i.e., ctxIdxParent), and the second layer is the occupancy of the neighboring coded block at the same depth as the current sub-block to be coded (i.e., ctxIdxChild).
First, for each sub-block to be encoded, ctxIdxChild of the second layer is shown as formula (2),Representing the occupancy of 3 encoded sub-blocks at a distance 1 from the current sub-block l 2.
idx=LUT[ctxIdxParent][ctxIdxChild] (1)
Next, ctxIdxParent of the first layer searches for adjacent parent blocks coplanar and collinear with the relative positions of different sub-blocks by means of table look-up, and calculates ctxIdxParent according to equation (3) from the occupation situation. As shown in FIG. 5, each child graph shows the relative positional relationship of 6 adjacent parent blocks found by the ith child block, including 3 coplanar parent blocks (P i,0,Pi,1,Pi,2) and 3 collinear parent blocks (P i,3,Pi,4,Pi,5). Each sub-block and adjacent parent block positional relationship is obtained by table 1, the numbers in table 2 corresponding to morton numbers in fig. 6, taking into account the different sub-block positions and geometric center rotational symmetry. As can be seen from fig. 6, the method has a larger receptive field centered on the current block, and can utilize a maximum of 18 neighboring parent blocks that are coded around. The mode adopted in the formula (3) is that the arrangement combination of the occupation situations of 3 coplanar father blocks and the sum of the number of the occupation situations of 3 collinear father blocks are adopted.
Therefore, the number of contexts used in this technical method is at most 2 3×25 =256.
Table 2. Relationship of child block i and its neighboring parent block j. The numbers in the table correspond to the morton sequence numbers in fig. 6.
Pi,j | j=0 | j=1 | j=2 | j=3 | j=4 | j=5 |
i=0 | 4 | 10 | 12 | 1 | 3 | 9 |
i=1 | 4 | 10 | 14 | 1 | 5 | 11 |
i=2 | 4 | 16 | 12 | 7 | 3 | 15 |
i=3 | 4 | 16 | 14 | 7 | 5 | 17 |
i=4 | 22 | 10 | 12 | 19 | 21 | 9 |
i=5 | 22 | 10 | 14 | 19 | 23 | 11 |
i=6 | 22 | 16 | 12 | 25 | 21 | 15 |
i=7 | 22 | 16 | 14 | 25 | 23 | 17 |
The point cloud encoding method, the point cloud decoding method and the related devices provided by the embodiment of the application are described in detail below through some embodiments and application scenes thereof with reference to the accompanying drawings.
Referring to fig. 7, fig. 7 is a flowchart of a grid coding method according to an embodiment of the present application, which may be applied to a coding end device, as shown in fig. 7, the point cloud coding method includes the following steps:
and 101, performing tree construction on the geometric information of the point cloud to obtain the child node to be encoded.
The tree construction can be binary tree construction, quadtree construction or octree construction, etc.
In one embodiment, the geometric information of the point cloud may be subjected to coordinate transformation, so that the point cloud is all contained in one bounding box. And then carrying out quantization, wherein the quantization mainly plays a role of scaling, and the geometric information of a part of points is the same due to the rounding of quantization, so that whether repeated points are removed or not is determined according to parameters, and the processes of quantization and repeated point removal belong to a preprocessing process. After preprocessing, the coding box can be divided (octree/quadtree/binary tree) according to the breadth-first traversal order to obtain the child node to be coded. Illustratively, in the octree-based geometric code frame, bounding boxes are sequentially divided to obtain subcubes, and the division is continued for the subcubes that are not empty (contain points in the point cloud) until the division is stopped when the leaf node obtained by the division is a unit cube of 1x1x 1.
Step 102, determining first neighbor information corresponding to the child node to be encoded.
The first neighbor information may be determined based on node information of the target associated child node, where the target associated child node is a neighbor child node whose association degree with the child node to be encoded meets a preset condition; or the first neighbor information may be determined based on node information of a plurality of target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be encoded.
Step 103, coding the child node to be coded based on the first neighbor information to obtain a coding result of the child node to be coded;
Under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition; and/or the number of the groups of groups,
In the case that the target associated child node is determined not to exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded.
The encoding the sub-node to be encoded based on the first neighbor information may be that the first neighbor information is used as a context of the sub-node to be encoded to encode the sub-node to be encoded. For example, the first neighbor information may be used as a context of the sub-node to be encoded to encode the sub-node to be encoded using a CABAC encoding algorithm.
In addition, the node information may include information for characterizing whether the node is occupied. Illustratively, the node is occupied, and the node information may be 1; the node is not occupied and the node information may be 0.
In addition, the target associated child node may be a strongly correlated neighbor child node of the child node to be encoded.
In addition, the target associated child node may be a coplanar child node corresponding to the child node to be encoded; or the target associated sub-node may include a coplanar sub-node and a common-edge sub-node corresponding to the sub-node to be encoded; or the target associated sub-node may include a coplanar sub-node, a common-edge sub-node and a common-point sub-node corresponding to the sub-node to be encoded; etc., the present embodiment is not limited thereto. The preset conditions are different, and the association degrees of the target association child node and the child node to be encoded are different.
Taking the target associated child node as the coplanar child node corresponding to the child node to be encoded as an example, the target neighbor child node may include a common-edge child node corresponding to the child node to be encoded, a common-point child node corresponding to the child node to be encoded, child nodes at two node edges in a negative direction in a dimension where a side length of a shortest node of the child node to be encoded is located, child nodes selected from coplanar parent nodes corresponding to parent nodes of the child node to be encoded, and collinear parent nodes corresponding to parent nodes of the child node to be encoded, and so on.
Taking the target associated child node as a coplanar child node and a common-edge child node corresponding to the child node to be encoded as an example, the target neighbor child node may include the common-point child node corresponding to the child node to be encoded, the child node at the side of the two nodes in the negative direction in the dimension where the side length of the shortest node of the child node to be encoded is located, the child node selected from the coplanar parent nodes corresponding to the parent nodes of the child node to be encoded, the child node selected from the collinear parent nodes corresponding to the parent nodes of the child node to be encoded, and the like.
Taking the target associated child node as a coplanar child node, a common-edge child node and a common-point child node corresponding to the child node to be encoded as an example, the target neighbor child node may include a child node at the side of the two nodes in the negative direction of the dimension where the side length of the shortest point of the child node to be encoded is located, a child node selected from coplanar parent nodes corresponding to the parent nodes of the child node to be encoded, a child node selected from collinear parent nodes corresponding to the parent nodes of the child node to be encoded, and the like.
In addition, the existence of the target associated child node corresponding to the child node to be encoded may mean that the target associated child node is occupied; the absence of the target associated child node may mean that the target associated child node is unoccupied. Illustratively, if the node information of the target associated child node is 1, the target associated child node exists; and if the node information of the target associated child node is 0, the target associated child node does not exist. The number of the target associated sub-nodes can be multiple, and the existence of the target associated sub-node corresponding to the sub-node to be encoded can mean that at least one target associated sub-node is occupied; the absence of the target association child node may mean that all target association child nodes are unoccupied. Taking the target associated sub-node as a coplanar sub-node corresponding to the sub-node to be encoded as an example, the existence of the target associated sub-node corresponding to the sub-node to be encoded may mean that none of the coplanar sub-nodes corresponding to the sub-node to be encoded is occupied; the absence of the target associated child node may mean that no coplanar child node corresponding to the child node to be encoded is occupied.
In an embodiment, the target associated child node is a coplanar child node corresponding to the child node to be encoded, and when it is determined that there is a coplanar child node corresponding to the child node to be encoded, the first neighbor information may be determined based on node information of the coplanar child node corresponding to the child node to be encoded, and further, the first neighbor information may be determined based on node information of the coplanar child node corresponding to the child node to be encoded and a coplanar parent node corresponding to the child node to be encoded. For example, the first neighbor information may include node information of a coplanar child node corresponding to the child node to be encoded and node information of a coplanar parent node corresponding to the child node to be encoded.
In addition, the coplanar child node corresponding to the child node to be encoded may be a coplanar child node that may be obtained by the child node to be encoded in a tree breadth-first traversal dividing manner. Taking octree construction as an example, the coplanar child node corresponding to the child node to be encoded may be a coplanar neighbor child node in the left front lower three directions that can be obtained by the child node to be encoded in the dividing mode of octree breadth-first traversal. The number of coplanar child nodes that can be obtained by the child node to be encoded in the partitioning mode of octree breadth-first traversal is three.
In addition, the common-edge child node corresponding to the child node to be encoded may be a common-edge child node that may be obtained by the child node to be encoded in a dividing manner of tree breadth-first traversal. Taking octree construction as an example, the common-edge child node corresponding to the child node to be encoded may be a common-edge child node in the left front lower three directions which can be obtained by the child node to be encoded in a dividing mode of octree breadth-first traversal. The number of the common edge child nodes which can be obtained by the child nodes to be encoded under the dividing mode of the octree breadth-first traversal is three.
In addition, the co-node corresponding to the sub-node to be encoded may be a co-node that may be obtained by the sub-node to be encoded in a tree breadth-first traversal dividing manner. Taking octree construction as an example, the co-node corresponding to the child node to be encoded may be a left front lower co-node that can be obtained by the child node to be encoded in a partition mode of octree breadth-first traversal. The number of co-node children that the child node to be encoded can obtain in the partitioning mode of octree breadth-first traversal is one.
It should be noted that, there is a target associated child node corresponding to the child node to be encoded, which may be considered that the child node to be encoded is located at a position where the nodes are denser; and the target associated child node corresponding to the child node to be encoded does not exist, and the child node to be encoded can be considered to be positioned at a position with sparse nodes. Therefore, different neighbor node information can be selected as the context to-be-encoded child nodes according to the node density degree.
In the embodiment of the application, the geometric information of the point cloud is subjected to tree construction to obtain the child node to be encoded; determining first neighbor information corresponding to the child node to be encoded; encoding the child node to be encoded based on the first neighbor information to obtain an encoding result of the child node to be encoded; under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition; in the case that the target associated child node is determined not to exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded. In this way, by determining whether the target associated child node corresponding to the child node to be encoded exists or not to determine the first neighbor information, different neighbor node information can be selected as the context to be encoded based on the node density degree, the number of the context information can be reduced, and therefore encoding efficiency can be improved.
Optionally, the determining the first neighbor information corresponding to the child node to be encoded includes:
in the event that it is determined that the target associated child node is not present:
Determining target neighbor states corresponding to the child nodes to be encoded based on node information of the target neighbor child nodes, wherein the target neighbor states are used for representing the occupation situation of the target neighbor child nodes;
determining a state value of the target neighbor state based on a coding result of the coded child node, wherein the neighbor state corresponding to the coded child node is the target neighbor state;
and determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state.
The occupation situation of the plurality of target neighbor child nodes may be a situation that whether the plurality of target neighbor child nodes are occupied or not. The target neighbor state may be one of a plurality of neighbor states, taking the number of target neighbor child nodes as 10 as an example, and each target neighbor child node is represented by a one-bit binary number, then the total number of neighbor states M is: 2 10. For example, if all 10 target neighbor child nodes are occupied, then the neighbor state is all 1; and if none of the 10 target neighbor child nodes is occupied, the neighbor state is all 0.
In addition, the state value of the target neighbor state may be the number of preset values as the encoding result in the encoding results of the plurality of encoded child nodes, and the preset value may be 1, for example. The encoded child node's encoding result may include 0, or 1. The state value of the target neighbor state may be the number of 1 in the encoding results of the plurality of encoded child nodes that are closest in time. The state value of the target neighbor state may be the number of 1 in the encoding results of the preset number of encoded child nodes with the latest time. The preset number may be 8, or 9, 10, or the like, which is not limited in this embodiment. For example, the state value of the target neighbor state may be the number of 1 in the encoding results of the 8 encoded child nodes that are closest in time.
As a specific embodiment, in case it is determined that the target associated child node is not present, the consideration of the first neighbor information is based on the encoded neighbor information in the child node layer. The target neighbor state may be one of a plurality of neighbor states, as shown in fig. 8, the neighbor state M may be determined by neighbor node information 1, and the neighbor node information 1 is determined by state M1 and state M2:
(1) Selecting the occupation situation of the node with the side length of the two nodes of the current sub-node to be coded, wherein the node is located at the same side as the 3 current sub-nodes to be coded, 1 common point and the shortest side length of the node in the negative direction, and the node is located at the side length of the two nodes of the current sub-node to be coded, and 5 sub-node layer neighbors are the black solid line frame node which is the current node, the black node which is the sub-node to be coded and the nodes around the black node which are the sub-node layer neighbors as shown in fig. 9.
The state M1 is formed by the occupation situation of the 5 child nodes, and the calculation formula is as follows:
Where j represents the index of any selected neighboring child node among the 5 neighboring child nodes, and s j represents the occupancy code of the child node neighbor with index j. M1 has a value ranging from 0 to 32.
(2) Among the 3 co-planar, 2 co-linear neighbors of the current node (parent node of the current child node to be encoded) that have been partitioned, 1 child node neighbor is selected each, and state M2 is composed with the 5 child node neighbors occupying information. The position of the selected child node neighbor with respect to its parent node is the same as the position of the child node to be encoded with respect to the current node. If the index value of the child node to be encoded relative to the current node is i, the index values of the 3 child node neighbors relative to the parent node are also i. Taking child node 7 as an example, three co-planar child node neighbors are selected as shown in FIG. 10 below.
The state M2 is formed by the occupation situation of the 5 child nodes, and the calculation formula is as follows:
M2=sx+sy×2+sz×4+sxy×8+sxz×16
S x、sy、sz represents the occupation codes of neighboring child nodes positioned in the x-axis, y-axis and z-axis directions of the current node among the neighboring child nodes of the 3 child nodes respectively; s xy and s xz are the occupancy codes of the neighbor child nodes selected for 2 collinear neighbors of the current node.
The neighbor state M is calculated by combining the state M1 and the state M2 as follows:
M=M1×32+M2
the value range of M is 0-1024, namely the value range of the neighbor node information 1 is 0-1024, and the total number of the neighbor states is 1024.
In this embodiment, in the case where it is determined that the target associated child node does not exist: determining target neighbor states corresponding to the child nodes to be encoded based on node information of the target neighbor child nodes, wherein the target neighbor states are used for representing the occupation situation of the target neighbor child nodes; determining a state value of the target neighbor state based on a coding result of the coded child node, wherein the neighbor state corresponding to the coded child node is the target neighbor state; and determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state. In this way, the first neighbor information corresponding to the child node to be encoded can be determined through the encoding result of the encoded child node in the same neighbor state, the first neighbor information is used as the context to encode the child node to be encoded, the number of the context information can be reduced, and therefore the encoding efficiency can be improved.
Optionally, the target neighbor state is one of a plurality of neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the encoding results of a plurality of encoded child nodes, and the state value of the target neighbor state is determined based on the encoding results in the sliding window corresponding to the target neighbor state;
The method further comprises the steps of:
and updating the sliding window corresponding to the target neighbor state based on the coding result of the child node to be coded.
The sliding window corresponding to the target neighbor state may store the encoding results of the plurality of encoded child nodes with the latest time. For example, the sliding window may store the encoding results of a predetermined number of encoded child nodes that are most recent in time.
In addition, after the encoding of the child node to be encoded is completed, the sliding window corresponding to the target neighbor state may be updated, the encoding result of the child node to be encoded is stored in the sliding window corresponding to the target neighbor state, and the encoding result of the encoded child node with the encoding time farthest from the current time in the sliding window is removed from the sliding window.
As a specific embodiment, each neighbor state corresponds to the sliding window to store the values of K symbols which are coded recently in each neighbor state, namely, each neighbor state M has a first-in first-out sliding window B (M) with the length of Kbit, the value of the kth bit is B k (M), and K and K are positive integers. If the value range of K is 1-K, the value of the last coded previous K-k+1 symbol in the state is represented by the K-th bit information at the coding end, and the value of the last decoded previous K-k+1 symbol in the state is represented by the K-th bit information at the decoding end. The updating operation of the sliding window is as follows: after each encoding or decoding of the symbol S, the sliding window B of Kbits is shifted to the right by 1 bit, and the value of the symbol S is assigned to the kth bit as follows:
B(M)=(B(M)>>1)|(S<<K-1)。
In addition, as shown in fig. 8, the state M can be converted into the state N by the sliding window, realizing the state conversion based on the sliding window. The state N of taking the number of bits with a value of 1 in the sliding window as output:
Wherein, the value range of the state N is 0-K. For example, if K takes a value of 8, N has 9 state values in total.
In this embodiment, the sliding window corresponding to the target neighbor state stores the encoding results of the plurality of encoded child nodes, the state value of the target neighbor state is determined based on the encoding results in the sliding window corresponding to the target neighbor state, and the sliding window corresponding to the target neighbor state is updated based on the encoding results of the child nodes to be encoded, so that the update of the state value of the target neighbor state can be realized through the update of the sliding window corresponding to the target neighbor state.
Optionally, the determining, based on the state value of the target neighbor state, the first neighbor information corresponding to the child node to be encoded includes:
determining first neighbor information corresponding to the child node to be encoded based on a state value of the target neighbor state under the condition that the target neighbor state is not a preset neighbor state;
The method further comprises the steps of:
and under the condition that the target neighbor state is the preset neighbor state, determining first neighbor information corresponding to the child node to be encoded based on the coplanar parent node corresponding to the child node to be encoded.
The preset neighbor state may represent a neighbor state that is not occupied by the plurality of target neighbor child nodes for a occupation situation of the plurality of target neighbor child nodes. The preset neighbor state may be a neighbor state in which the neighbor state M takes a value of 0.
In addition, in the case that the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state, where the first neighbor information corresponding to the child node to be encoded includes the state value of the target neighbor state. Further, in the case that the target neighbor state is not the preset neighbor state, the first neighbor information corresponding to the child node to be encoded may be determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.
In addition, in the case that the target neighbor state is the preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the coplanar parent node corresponding to the child node to be encoded, where the first neighbor information corresponding to the child node to be encoded may include node information of the coplanar parent node corresponding to the child node to be encoded in the case that the target neighbor state is the preset neighbor state. By way of example, the number of coplanar parent nodes is 3, the number of contexts of node information of the coplanar parent nodes as contexts is 8, one context is allocated to each child node of the coplanar parent nodes, each coplanar parent node involves 8 contexts, and the number of contexts of which the first neighbor information as contexts is: 8×8=64.
In this embodiment, when the target neighbor state is not a preset neighbor state, determining first neighbor information corresponding to the child node to be encoded based on a state value of the target neighbor state; and under the condition that the target neighbor state is the preset neighbor state, determining first neighbor information corresponding to the child node to be encoded based on the coplanar parent node corresponding to the child node to be encoded. Therefore, when the target neighbor state characterizes that the plurality of target neighbor child nodes are not occupied, the first neighbor information can be determined by considering the coplanar parent nodes corresponding to the child nodes to be encoded, and different neighbor node information can be selected as the context to be encoded by further considering the node density degree, so that the encoding efficiency can be improved.
Optionally, the determining, based on the state value of the target neighbor state, the first neighbor information corresponding to the child node to be encoded when the target neighbor state is not a preset neighbor state includes:
And under the condition that the target neighbor state is not the preset neighbor state, determining first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.
Under the condition that the target neighbor state is not the preset neighbor state, the first neighbor information corresponding to the child node to be encoded can include a state value of the target neighbor state and node information of a coplanar parent node corresponding to the child node to be encoded. For example, the state N has 9 state values in total, the number of contexts of the state values as the contexts is 9, the number of coplanar parent nodes is 3, the number of contexts of the node information of the coplanar parent nodes as the contexts is 8, and then the number of contexts of the first neighbor information as the contexts is: 8*9 = 72.
In this embodiment, when the target neighbor state is not the preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded, so that the first neighbor information corresponding to the child node to be encoded can be determined together by the encoding result of the encoded child node in the same neighbor state and the coplanar parent node corresponding to the child node to be encoded, and the neighbor information with relatively strong correlation can be used as the context for encoding, thereby improving the encoding efficiency.
Optionally, in the case that the target associated child node is a coplanar child node corresponding to the child node to be encoded, the target neighboring child node includes at least one of the following:
A first neighbor child node;
a second neighbor child node;
wherein the first neighbor child node comprises at least one of:
The common-edge child node corresponding to the child node to be coded;
the co-node sub-node corresponding to the sub-node to be coded;
the side length of the shortest node of the child node to be encoded is the child node at the side length of two nodes in the negative direction in the dimension;
the second neighbor child node includes at least one of:
A child node selected from coplanar parent nodes corresponding to the parent nodes of the child nodes to be encoded;
A child node selected from collinear parent nodes corresponding to the parent nodes of the child nodes to be encoded;
wherein the position of the selected child node in the parent node is the same as the position of the child node to be encoded in the parent node.
In addition, a selected child node in the coplanar parent nodes corresponding to the parent nodes of the child nodes to be encoded may satisfy that the position of the selected child node in the coplanar parent node is the same as the position of the child node to be encoded in the parent node of the child node to be encoded. For example, if the index value of the child node to be encoded in the parent node of the child node to be encoded is i, the index value of the selected child node in the parent node is also i.
In addition, a selected child node in the collinear parent nodes corresponding to the parent nodes of the child nodes to be encoded may be satisfied, where the position of the selected child node in the collinear parent node is the same as the position of the child node to be encoded in the parent node of the child node to be encoded. For example, if the index value of the child node to be encoded in the parent node of the child node to be encoded is i, the index value of the selected child node in the parent node is also i.
In this embodiment, the first neighbor information is determined based on the node information of the target neighbor child node, and the neighbor information with relatively strong correlation can be used as the context for encoding, so that the encoding efficiency can be improved.
As a specific embodiment, the process of determining the first neighbor information corresponding to the child node to be encoded is as follows:
(1): firstly, whether three coplanar sub-nodes of the current sub-node to be coded exist or not is checked, and if the three coplanar sub-nodes exist, the context of the current sub-node to be coded is as follows:
Taking multiplication of three coplanar nodes of a parent node layer into 8 contexts, wherein the three coplanar nodes of the parent node layer are three parent layer neighbor nodes which are selected by the parent node layer and coplanar with the current child node to be encoded;
considering that three coplanar sub-nodes of a sub-node layer form 7 contexts (the situation of total unoccupied state is removed), wherein the three coplanar sub-nodes of the sub-node layer are three adjacent sub-layer nodes coplanar with the current sub-node to be coded;
the parent node level and child node level context information are multiplied by a total of 56 contexts.
(2): If the three coplanar child nodes of the current child node to be encoded do not exist, judging whether the neighbor node information 1 is 0 (namely, whether M takes the value of 0), if not, performing state transition by using a sliding window to obtain 9 contexts (the length of the sliding window is 8).
The father node layer considers three father nodes coplanar with the current child node, and arranges and combines 8 contexts in total;
the parent node level and child node level context information are multiplied by a total of 72 contexts.
(3): If the neighbor node information 1 is 0, only three father nodes coplanar with the current child node to be encoded are considered, and a total of 8 contexts are allocated to each child node, and a total of 64 contexts are allocated.
The above three steps constitute the whole entropy encoding process, as shown in fig. 8, for the whole point cloud, the context includes the context related to the neighbor node information 1 and the context related to other neighbor node information, which is the neighbor node information outside the neighbor node related to the neighbor node information 1, and the combination of the neighbor node information generates 56+72+64=192 contexts in total, so that CABAC has 192 contexts.
For entropy decoding, as shown in fig. 11, similar to the entropy encoding process, the input is changed from the symbol to be encoded to the code stream to be decoded, and the corresponding encoding operation is replaced with the decoding operation.
As shown in fig. 12, the point cloud coding method of the present embodiment is adopted for coding, so that compared with PCRM _v9.0, the code rate can be reduced, the coding efficiency can be improved, and the complexity of hardware implementation can be reduced. In fig. 12, the columns in which AVSC4 _4_ai and AVSC1 _1_ai are located are point cloud sequence names, for example, bridge_1mm, double_t_section_1mm, intersection1_1mm, and the like are point cloud sequence names. AVSC4_ai and AVSC1_ai represent point cloud coding test conditions, wherein the number of the test conditions is 4, AVSC1 represents limited damage of geometric positions and attribute damage; AVSC2 denotes that the geometric position is lossless and the attribute is lossy; AVSC3 denotes that the geometric position is lossless and the attribute is limited and damaged; AVSC4 denotes geometric position lossless and attribute lossless. The meaning of the geometric coding parameters and the attribute coding parameters in the above conditions can be as follows, under the geometric lossless condition: geom _remove_dup_flag=0, i.e. no duplicate points are removed; geom _quat_step=1, i.e. the geometric coordinates are not quantized. Under the condition of limited geometrical damage: geom _remove_dup_flag=1, i.e. remove the repetition point; the setting of geom _quant_step is determined by the quantization step size of the code rate points, which is determined according to the geometric bit width of the point cloud. Under the condition of nondestructive attribute: color_transform_flag=0, i.e., no RGB to YUV conversion; the attribute quantization parameter color_quant_parameter=0 or refl_quant_parameter=0, i.e. the attribute quantization step size is set to 1. Under the condition of limited loss of attribute: color_transform_flag=0, i.e., no RGB to YUV conversion; the setting of the attribute quantization parameter may be set in a decreasing manner according to the quantization impairment. Under the condition of attribute damage: color_transform_flag=1, i.e. RGB to YUV conversion is required; the setting of the attribute quantization parameter may be set in a decreasing manner according to the quantization impairment. In fig. 12, the Geometry parameter represents the code stream of the geometrically encoded portion of the point cloud, and for example, the Geometry parameter is 99.5%, which represents that the geometrical code stream generated by encoding the point cloud using the embodiment is 99.5% of the existing scheme under the test condition of AVSC. The D1 and D1-H parameters represent two different point cloud quality distortion evaluation parameters, and if the D1 and D1-H parameters are negative values, the point cloud comprehensive quality generated by encoding the point cloud by using the embodiment is higher than that of the existing scheme under the test condition of AVSC. Compared with the existing scheme, the method and the device can reduce code rate, improve coding efficiency and reduce complexity of hardware implementation.
In the related technology of entropy coding, the following two entropy coding technologies exist in the AVS at the same time, and the context related to the first entropy coding technology includes the sub-layer neighbor prediction of the current point and the neighbor prediction of the current point layer; second, the entropy coding technique uses a dual-layer context reference relationship configuration. The AVS has two entropy coding techniques at the same time, and the hardware implementation cost is high. Meanwhile, the respective problems of the two entropy coding schemes are: first, the occupation situation that the parent node layer directly contacts with the current child node is not considered; second, the sub-node layer only considers the case of coplanar sub-nodes, and does not consider the use of collinear, co-node sub-nodes.
The embodiment provides an entropy encoding and entropy decoding method based on a sliding window. The method uses neighbor information with stronger correlation, uses different neighbor node information selected based on node density as a context, and adopts a state transition technology based on a sliding window. Compared with the related technology, the embodiment can reduce the code rate, improve the coding efficiency and reduce the complexity of hardware implementation.
Referring to the figure, fig. 13 is a flowchart of a point cloud decoding method according to an embodiment of the present application, which may be applied to a decoding end device, as shown in fig. 13, where the point cloud decoding method includes the following steps:
step 201, determining second neighbor information corresponding to a child node to be decoded;
step 202, decoding the child node to be decoded based on the second neighbor information to obtain a decoding result of the child node to be decoded;
Under the condition that the target associated sub-node corresponding to the sub-node to be decoded exists, the second neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be decoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that it is determined that the target associated child node does not exist, the second neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node among the neighbor child nodes of the child node to be decoded.
Optionally, the determining the second neighbor information corresponding to the child node to be decoded includes:
in the event that it is determined that the target associated child node is not present:
Determining target neighbor states corresponding to the child nodes to be decoded based on node information of the target neighbor child nodes, wherein the target neighbor states are used for representing the occupation situation of the target neighbor child nodes;
determining a state value of the target neighbor state based on a decoding result of the decoded child node, wherein the neighbor state corresponding to the decoded child node is the target neighbor state;
and determining second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state.
Optionally, the target neighbor state is one of a plurality of neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores decoding results of a plurality of decoded child nodes, and a state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state;
The method further comprises the steps of:
And updating the sliding window corresponding to the target neighbor state based on the decoding result of the child node to be decoded.
Optionally, the determining, based on the state value of the target neighbor state, second neighbor information corresponding to the child node to be decoded includes:
Determining second neighbor information corresponding to the child node to be decoded based on a state value of the target neighbor state under the condition that the target neighbor state is not a preset neighbor state;
The method further comprises the steps of:
and under the condition that the target neighbor state is the preset neighbor state, determining second neighbor information corresponding to the child node to be decoded based on the coplanar parent node corresponding to the child node to be decoded.
Optionally, the determining, based on the state value of the target neighbor state, second neighbor information corresponding to the child node to be decoded when the target neighbor state is not a preset neighbor state includes:
And under the condition that the target neighbor state is not the preset neighbor state, determining second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.
Optionally, in the case that the target associated child node is a coplanar child node corresponding to the child node to be decoded, the target neighboring child node includes at least one of the following:
A first neighbor child node;
a second neighbor child node;
wherein the first neighbor child node comprises at least one of:
the common-edge child node corresponding to the child node to be decoded;
the corresponding co-node of the sub-node to be decoded;
the side length of the shortest node of the child nodes to be decoded is the child node at the side length of two nodes in the negative direction in the dimension;
the second neighbor child node includes at least one of:
a child node selected from the coplanar parent nodes corresponding to the parent nodes of the child nodes to be decoded;
A child node selected from collinear parent nodes corresponding to the parent nodes of the child nodes to be decoded;
Wherein the position of the selected child node in the parent node is the same as the position of the child node to be decoded in the parent node.
It should be noted that, in the point cloud encoding method provided by the embodiment of the present application, the execution body may be a point cloud encoding device, or a control module of the point cloud encoding device for executing the method of point cloud encoding. In the embodiment of the application, a method for executing point cloud coding by a point cloud coding device is taken as an example, and the point cloud coding device provided by the embodiment of the application is described.
Referring to fig. 14, fig. 14 is a block diagram of a point cloud encoding apparatus according to an embodiment of the present application, and as shown in fig. 14, a point cloud encoding apparatus 300 includes:
the obtaining module 301 is configured to perform tree construction on geometric information of the point cloud to obtain a child node to be encoded;
A determining module 302, configured to determine first neighbor information corresponding to the child node to be encoded;
the encoding module 303 is configured to encode the child node to be encoded based on the first neighbor information, so as to obtain an encoding result of the child node to be encoded; or alternatively, the first and second heat exchangers may be,
Under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition;
in the case that the target associated child node is determined not to exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded.
Optionally, in the case where it is determined that the target associated child node is not present:
The determining module includes:
the first determining unit is used for determining target neighbor states corresponding to the child nodes to be encoded based on node information of the plurality of target neighbor child nodes, wherein the target neighbor states are used for representing the occupation situation of the plurality of target neighbor child nodes;
a second determining unit, configured to determine a state value of the target neighbor state based on a coding result of the coded child node, where the neighbor state corresponding to the coded child node is the target neighbor state;
And the third determining unit is used for determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state.
Optionally, the target neighbor state is one of a plurality of neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the encoding results of a plurality of encoded child nodes, and the state value of the target neighbor state is determined based on the encoding results in the sliding window corresponding to the target neighbor state;
the apparatus further comprises:
And the updating module is used for updating the sliding window corresponding to the target neighbor state based on the coding result of the child node to be coded.
Optionally, the third determining unit is specifically configured to:
determining first neighbor information corresponding to the child node to be encoded based on a state value of the target neighbor state under the condition that the target neighbor state is not a preset neighbor state;
The determination module further includes:
And the fourth determining unit is used for determining the first neighbor information corresponding to the child node to be encoded based on the coplanar parent node corresponding to the child node to be encoded under the condition that the target neighbor state is the preset neighbor state.
Optionally, the second determining unit is specifically configured to:
And under the condition that the target neighbor state is not the preset neighbor state, determining first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.
Optionally, in the case that the target associated child node is a coplanar child node corresponding to the child node to be encoded, the target neighboring child node includes at least one of the following:
A first neighbor child node;
a second neighbor child node;
wherein the first neighbor child node comprises at least one of:
The common-edge child node corresponding to the child node to be coded;
the co-node sub-node corresponding to the sub-node to be coded;
the side length of the shortest node of the child node to be encoded is the child node at the side length of two nodes in the negative direction in the dimension;
the second neighbor child node includes at least one of:
A child node selected from coplanar parent nodes corresponding to the parent nodes of the child nodes to be encoded;
A child node selected from collinear parent nodes corresponding to the parent nodes of the child nodes to be encoded;
wherein the position of the selected child node in the parent node is the same as the position of the child node to be encoded in the parent node.
The point cloud encoding device 300 in the embodiment of the application can improve the encoding efficiency.
The point cloud coding device in the embodiment of the application can be a device, a device with an operating system or electronic equipment, and also can be a component, an integrated circuit or a chip in a terminal. The apparatus or electronic device may be a mobile terminal or a non-mobile terminal. By way of example, mobile terminals may include, but are not limited to, the types of terminals listed above, and non-mobile terminals may be servers, network attached storage (Network Attached Storage, NAS), personal computers (personal computer, PCs), televisions (TVs), teller machines, self-service machines, etc., and embodiments of the present application are not limited in particular.
The point cloud encoding device provided by the embodiment of the application can realize each process realized by the method embodiment of fig. 7 and achieve the same technical effect, and in order to avoid repetition, the description is omitted here.
It should be noted that, in the point cloud decoding method provided by the embodiment of the present application, the execution body may be a point cloud decoding device, or a control module of the point cloud decoding device for executing the method of point cloud decoding. In the embodiment of the present application, a method for performing point cloud decoding by using a point cloud decoding device is taken as an example, and the point cloud decoding device provided by the embodiment of the present application is described.
Referring to fig. 15, fig. 15 is a block diagram of a point cloud decoding apparatus according to an embodiment of the present application, and as shown in fig. 15, a point cloud decoding apparatus 400 includes:
a determining module 401, configured to determine second neighbor information corresponding to a child node to be decoded;
A decoding module 402, configured to decode the child node to be decoded based on the second neighbor information, to obtain a decoding result of the child node to be decoded;
Under the condition that the target associated sub-node corresponding to the sub-node to be decoded exists, the second neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be decoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that it is determined that the target associated child node does not exist, the second neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node among the neighbor child nodes of the child node to be decoded.
Optionally, in the case where it is determined that the target associated child node is not present:
The determining module includes:
The first determining unit is used for determining target neighbor states corresponding to the child nodes to be decoded based on node information of the plurality of target neighbor child nodes, wherein the target neighbor states are used for representing the occupation situation of the plurality of target neighbor child nodes;
A second determining unit, configured to determine a state value of the target neighbor state based on a decoding result of the decoded child node, where the neighbor state corresponding to the decoded child node is the target neighbor state;
And the third determining unit is used for determining second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state.
Optionally, the target neighbor state is one of a plurality of neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores decoding results of a plurality of decoded child nodes, and a state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state;
the apparatus further comprises:
And the updating module is used for updating the sliding window corresponding to the target neighbor state based on the decoding result of the child node to be decoded.
Optionally, the third determining unit is specifically configured to:
Determining second neighbor information corresponding to the child node to be decoded based on a state value of the target neighbor state under the condition that the target neighbor state is not a preset neighbor state;
The determination module further includes:
and the fourth determining unit is used for determining second neighbor information corresponding to the child node to be decoded based on the coplanar parent node corresponding to the child node to be decoded under the condition that the target neighbor state is the preset neighbor state.
Optionally, the third determining unit is specifically configured to:
And under the condition that the target neighbor state is not the preset neighbor state, determining second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.
Optionally, in the case that the target associated child node is a coplanar child node corresponding to the child node to be decoded, the target neighboring child node includes at least one of the following:
A first neighbor child node;
a second neighbor child node;
wherein the first neighbor child node comprises at least one of:
the common-edge child node corresponding to the child node to be decoded;
the corresponding co-node of the sub-node to be decoded;
the side length of the shortest node of the child nodes to be decoded is the child node at the side length of two nodes in the negative direction in the dimension;
the second neighbor child node includes at least one of:
a child node selected from the coplanar parent nodes corresponding to the parent nodes of the child nodes to be decoded;
A child node selected from collinear parent nodes corresponding to the parent nodes of the child nodes to be decoded;
Wherein the position of the selected child node in the parent node is the same as the position of the child node to be decoded in the parent node.
The point cloud decoding device 400 in the embodiment of the application can improve the decoding efficiency.
The point cloud decoding device in the embodiment of the application can be a device, a device with an operating system or electronic equipment, and also can be a component, an integrated circuit or a chip in a terminal. The apparatus or electronic device may be a mobile terminal or a non-mobile terminal. By way of example, mobile terminals may include, but are not limited to, the types of terminals listed above, and non-mobile terminals may be servers, network attached storage (Network Attached Storage, NAS), personal computers (personal computer, PCs), televisions (TVs), teller machines, self-service machines, etc., and embodiments of the present application are not limited in particular.
The point cloud decoding device provided by the embodiment of the application can realize each process realized by the method embodiment of fig. 13 and achieve the same technical effect, and in order to avoid repetition, the description is omitted here.
Optionally, as shown in fig. 16, the embodiment of the present application further provides a communication device 500, including a processor 501 and a memory 502, where the memory 502 stores a program or instructions that can be executed on the processor 501, for example, when the communication device 500 is an encoding end device, the program or instructions implement the steps of the foregoing point cloud encoding method embodiment when executed by the processor 501, and achieve the same technical effects. When the communication device 500 is a decoding end device, the program or the instruction, when executed by the processor 501, implements the steps of the foregoing embodiment of the point cloud decoding method, and the same technical effects can be achieved, so that repetition is avoided, and no further description is given here.
The embodiment of the application also provides communication equipment, which comprises a processor and a communication interface, wherein the processor is used for: performing tree construction on the geometric information of the point cloud to obtain child nodes to be encoded; determining first neighbor information corresponding to the child node to be encoded; encoding the child node to be encoded based on the first neighbor information to obtain an encoding result of the child node to be encoded; under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition; or, in the case that it is determined that the target associated child node does not exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded. The communication equipment embodiment corresponds to the point cloud coding method embodiment, and each implementation process and implementation mode of the point cloud coding method embodiment can be applied to the communication equipment embodiment and can achieve the same technical effect.
The embodiment of the application also provides communication equipment, which comprises a processor and a communication interface, wherein the processor is used for: determining second neighbor information corresponding to the child node to be decoded; decoding the child node to be decoded based on the second neighbor information to obtain a decoding result of the child node to be decoded; under the condition that the target associated sub-node corresponding to the sub-node to be decoded exists, the second neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be decoded meeting a preset condition; or, in the case that it is determined that the target associated child node does not exist, the second neighbor information is determined based on node information of a plurality of target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be decoded. The communication equipment embodiment corresponds to the point cloud decoding method embodiment, and each implementation process and implementation manner of the point cloud decoding method embodiment can be applied to the communication equipment embodiment and can achieve the same technical effect.
Alternatively, the communication device may be a terminal. Specifically, fig. 17 is a schematic diagram of a hardware structure of a terminal for implementing an embodiment of the present application.
The terminal 600 includes, but is not limited to: at least some of the components of the radio frequency unit 601, the network module 602, the audio output unit 603, the input unit 604, the sensor 605, the display unit 606, the user input unit 607, the interface unit 608, the memory 609, and the processor 610, etc.
Those skilled in the art will appreciate that the terminal 600 may further include a power source (e.g., a battery) for powering the various components, and the power source may be logically coupled to the processor 610 by a power management system so as to perform functions such as managing charging, discharging, and power consumption by the power management system. The terminal structure shown in fig. 17 does not constitute a limitation of the terminal, and the terminal may include more or less components than shown, or may combine some components, or may be arranged in different components, which will not be described in detail herein.
It should be appreciated that in embodiments of the present application, the input unit 604 may include a graphics processing unit (Graphics Processing Unit, GPU) 6041 and a microphone 6042, with the graphics processor 6041 processing image data of still pictures or video obtained by an image capturing apparatus (e.g., a camera) in a video capturing mode or an image capturing mode. The display unit 606 may include a display panel 6061, and the display panel 6061 may be configured in the form of a liquid crystal display, an organic light emitting diode, or the like. The user input unit 607 includes at least one of a touch panel 6071 and other input devices 6072. The touch panel 6071 is also referred to as a touch screen. The touch panel 6071 may include two parts of a touch detection device and a touch controller. Other input devices 6072 may include, but are not limited to, a physical keyboard, function keys (e.g., volume control keys, switch keys, etc.), a trackball, a mouse, a joystick, and so forth, which are not described in detail herein.
In the embodiment of the present application, after receiving downlink data from the network side device, the radio frequency unit 601 may transmit the downlink data to the processor 610 for processing; in addition, the radio frequency unit 601 may send uplink data to the network side device. Typically, the radio frequency unit 601 includes, but is not limited to, an antenna, an amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, and the like.
The memory 609 may be used to store software programs or instructions and various data. The memory 609 may mainly include a first storage area storing programs or instructions and a second storage area storing data, wherein the first storage area may store an operating system, application programs or instructions (such as a sound playing function, an image playing function, etc.) required for at least one function, and the like. Further, the memory 609 may include volatile memory or nonvolatile memory, or the memory 609 may include both volatile and nonvolatile memory. The nonvolatile Memory may be a Read-Only Memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an Electrically Erasable EPROM (EEPROM), or a flash Memory. The volatile memory may be random access memory (Random Access Memory, RAM), static random access memory (STATIC RAM, SRAM), dynamic random access memory (DYNAMIC RAM, DRAM), synchronous Dynamic Random Access Memory (SDRAM), double data rate Synchronous dynamic random access memory (Double DATA RATE SDRAM, DDRSDRAM), enhanced Synchronous dynamic random access memory (ENHANCED SDRAM, ESDRAM), synchronous link dynamic random access memory (SYNCH LINK DRAM, SLDRAM), and Direct random access memory (DRRAM). Memory 609 in embodiments of the present application includes, but is not limited to, these and any other suitable types of memory.
The processor 610 may include one or more processing units; optionally, the processor 610 integrates an application processor that primarily processes operations involving an operating system, user interface, application programs, etc., and a modem processor that primarily processes wireless communication signals, such as a baseband processor. It will be appreciated that the modem processor described above may not be integrated into the processor 610.
Wherein, in the case that the terminal is a coding end device:
The processor 610 is configured to:
Performing tree construction on the geometric information of the point cloud to obtain child nodes to be encoded;
Determining first neighbor information corresponding to the child node to be encoded;
encoding the child node to be encoded based on the first neighbor information to obtain an encoding result of the child node to be encoded;
under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that the target associated child node is determined not to exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded.
Optionally, the processor 610 is specifically configured to:
in the event that it is determined that the target associated child node is not present:
Determining target neighbor states corresponding to the child nodes to be encoded based on node information of the target neighbor child nodes, wherein the target neighbor states are used for representing the occupation situation of the target neighbor child nodes;
determining a state value of the target neighbor state based on a coding result of the coded child node, wherein the neighbor state corresponding to the coded child node is the target neighbor state;
and determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state.
Optionally, the target neighbor state is one of a plurality of neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the encoding results of a plurality of encoded child nodes, and the state value of the target neighbor state is determined based on the encoding results in the sliding window corresponding to the target neighbor state;
The processor 610 is further configured to:
and updating the sliding window corresponding to the target neighbor state based on the coding result of the child node to be coded.
Optionally, the processor 610 is specifically configured to:
determining first neighbor information corresponding to the child node to be encoded based on a state value of the target neighbor state under the condition that the target neighbor state is not a preset neighbor state;
The processor 610 is further configured to:
and under the condition that the target neighbor state is the preset neighbor state, determining first neighbor information corresponding to the child node to be encoded based on the coplanar parent node corresponding to the child node to be encoded.
Optionally, the processor 610 is specifically configured to:
And under the condition that the target neighbor state is not the preset neighbor state, determining first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.
Optionally, in the case that the target associated child node is a coplanar child node corresponding to the child node to be encoded, the target neighboring child node includes at least one of the following:
A first neighbor child node;
a second neighbor child node;
wherein the first neighbor child node comprises at least one of:
The common-edge child node corresponding to the child node to be coded;
the co-node sub-node corresponding to the sub-node to be coded;
the side length of the shortest node of the child node to be encoded is the child node at the side length of two nodes in the negative direction in the dimension;
the second neighbor child node includes at least one of:
A child node selected from coplanar parent nodes corresponding to the parent nodes of the child nodes to be encoded;
A child node selected from collinear parent nodes corresponding to the parent nodes of the child nodes to be encoded;
wherein the position of the selected child node in the parent node is the same as the position of the child node to be encoded in the parent node.
In the case that the terminal is a decoding end device:
The processor 610 is configured to:
Determining second neighbor information corresponding to the child node to be decoded;
Decoding the child node to be decoded based on the second neighbor information to obtain a decoding result of the child node to be decoded;
Under the condition that the target associated sub-node corresponding to the sub-node to be decoded exists, the second neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be decoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that it is determined that the target associated child node does not exist, the second neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node among the neighbor child nodes of the child node to be decoded.
Optionally, the processor 610 is specifically configured to:
in the event that it is determined that the target associated child node is not present:
Determining target neighbor states corresponding to the child nodes to be decoded based on node information of the target neighbor child nodes, wherein the target neighbor states are used for representing the occupation situation of the target neighbor child nodes;
determining a state value of the target neighbor state based on a decoding result of the decoded child node, wherein the neighbor state corresponding to the decoded child node is the target neighbor state;
and determining second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state.
Optionally, the target neighbor state is one of a plurality of neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores decoding results of a plurality of decoded child nodes, and a state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state;
The processor 610 is further configured to:
And updating the sliding window corresponding to the target neighbor state based on the decoding result of the child node to be decoded.
Optionally, the processor 610 is specifically configured to:
Determining second neighbor information corresponding to the child node to be decoded based on a state value of the target neighbor state under the condition that the target neighbor state is not a preset neighbor state;
The processor 610 is further configured to:
and under the condition that the target neighbor state is the preset neighbor state, determining second neighbor information corresponding to the child node to be decoded based on the coplanar parent node corresponding to the child node to be decoded.
Optionally, the processor 610 is specifically configured to:
And under the condition that the target neighbor state is not the preset neighbor state, determining second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.
Optionally, in the case that the target associated child node is a coplanar child node corresponding to the child node to be decoded, the target neighboring child node includes at least one of the following:
A first neighbor child node;
a second neighbor child node;
wherein the first neighbor child node comprises at least one of:
the common-edge child node corresponding to the child node to be decoded;
the corresponding co-node of the sub-node to be decoded;
the side length of the shortest node of the child nodes to be decoded is the child node at the side length of two nodes in the negative direction in the dimension;
the second neighbor child node includes at least one of:
a child node selected from the coplanar parent nodes corresponding to the parent nodes of the child nodes to be decoded;
A child node selected from collinear parent nodes corresponding to the parent nodes of the child nodes to be decoded;
Wherein the position of the selected child node in the parent node is the same as the position of the child node to be decoded in the parent node.
The terminal in the embodiment of the application can improve the coding and decoding efficiency.
Specifically, the terminal of the embodiment of the application further comprises: instructions or programs stored in the memory 609 and executable on the processor 610, the processor 610 invokes the instructions or programs in the memory 609 to perform the method performed by each module shown in fig. 14 or fig. 15, and achieve the same technical effects, and are not repeated here.
The embodiment of the application also provides a readable storage medium, on which a program or an instruction is stored, where the program or the instruction implements each process of the above-mentioned point cloud encoding method embodiment when executed by a processor, or the program or the instruction implements each process of the above-mentioned point cloud decoding method embodiment when executed by a processor, and the same technical effects can be achieved, so that repetition is avoided, and no further description is given here.
Wherein the processor is a processor in the terminal described in the above embodiment. The readable storage medium includes a computer readable storage medium such as a Read-Only Memory (ROM), a random access Memory (Random Access Memory, RAM), a magnetic disk or an optical disk, and the like.
The embodiment of the application further provides a chip, which comprises a processor and a communication interface, wherein the communication interface is coupled with the processor, and the processor is used for running programs or instructions to realize the processes of the embodiment of the point cloud encoding method or the processes of the embodiment of the point cloud decoding method, and can achieve the same technical effects, so that repetition is avoided and no further description is provided here.
It should be understood that the chips referred to in the embodiments of the present application may also be referred to as system-on-chip chips, or the like.
It should be noted that, in this document, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element. Furthermore, it should be noted that the scope of the methods and apparatus in the embodiments of the present application is not limited to performing the functions in the order shown or discussed, but may also include performing the functions in a substantially simultaneous manner or in an opposite order depending on the functions involved, e.g., the described methods may be performed in an order different from that described, and various steps may be added, omitted, or combined. Additionally, features described with reference to certain examples may be combined in other examples.
From the above description of the embodiments, it will be clear to those skilled in the art that the above-described embodiment method may be implemented by means of software plus a necessary general hardware platform, but of course may also be implemented by means of hardware, but in many cases the former is a preferred embodiment. Based on such understanding, the technical solution of the present application may be embodied essentially or in a part contributing to the prior art in the form of a computer software product stored in a storage medium (e.g. ROM/RAM, magnetic disk, optical disk) comprising instructions for causing a terminal (which may be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) to perform the method according to the embodiments of the present application.
The embodiments of the present application have been described above with reference to the accompanying drawings, but the present application is not limited to the above-described embodiments, which are merely illustrative and not restrictive, and many forms may be made by those having ordinary skill in the art without departing from the spirit of the present application and the scope of the claims, which are to be protected by the present application.
Claims (16)
1. A method of point cloud encoding, comprising:
Performing tree construction on the geometric information of the point cloud to obtain child nodes to be encoded;
Determining first neighbor information corresponding to the child node to be encoded;
encoding the child node to be encoded based on the first neighbor information to obtain an encoding result of the child node to be encoded;
under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that the target associated child node is determined not to exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded.
2. The method of claim 1, wherein the determining the first neighbor information corresponding to the child node to be encoded comprises:
in the event that it is determined that the target associated child node is not present:
Determining target neighbor states corresponding to the child nodes to be encoded based on node information of the target neighbor child nodes, wherein the target neighbor states are used for representing the occupation situation of the target neighbor child nodes;
determining a state value of the target neighbor state based on a coding result of the coded child node, wherein the neighbor state corresponding to the coded child node is the target neighbor state;
and determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state.
3. The method of claim 2, wherein the target neighbor state is one of a plurality of neighbor states, each of the neighbor states corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the encoding results of the plurality of encoded child nodes, and the state value of the target neighbor state is determined based on the encoding results in the sliding window corresponding to the target neighbor state;
The method further comprises the steps of:
and updating the sliding window corresponding to the target neighbor state based on the coding result of the child node to be coded.
4. The method according to claim 2, wherein the determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state includes:
determining first neighbor information corresponding to the child node to be encoded based on a state value of the target neighbor state under the condition that the target neighbor state is not a preset neighbor state;
The method further comprises the steps of:
and under the condition that the target neighbor state is the preset neighbor state, determining first neighbor information corresponding to the child node to be encoded based on the coplanar parent node corresponding to the child node to be encoded.
5. The method of claim 4, wherein the determining, based on the state value of the target neighbor state, the first neighbor information corresponding to the child node to be encoded if the target neighbor state is not a preset neighbor state, comprises:
And under the condition that the target neighbor state is not the preset neighbor state, determining first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.
6. The method according to any of claims 1-5, wherein in case the target associated child node is a co-planar child node corresponding to the child node to be encoded, the target neighbor child node comprises at least one of:
A first neighbor child node;
a second neighbor child node;
wherein the first neighbor child node comprises at least one of:
The common-edge child node corresponding to the child node to be coded;
the co-node sub-node corresponding to the sub-node to be coded;
the side length of the shortest node of the child node to be encoded is the child node at the side length of two nodes in the negative direction in the dimension;
the second neighbor child node includes at least one of:
A child node selected from coplanar parent nodes corresponding to the parent nodes of the child nodes to be encoded;
A child node selected from collinear parent nodes corresponding to the parent nodes of the child nodes to be encoded;
wherein the position of the selected child node in the parent node is the same as the position of the child node to be encoded in the parent node.
7. A method of point cloud decoding, comprising:
Determining second neighbor information corresponding to the child node to be decoded;
Decoding the child node to be decoded based on the second neighbor information to obtain a decoding result of the child node to be decoded;
Under the condition that the target associated sub-node corresponding to the sub-node to be decoded exists, the second neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be decoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that it is determined that the target associated child node does not exist, the second neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node among the neighbor child nodes of the child node to be decoded.
8. The method of claim 7, wherein determining the second neighbor information corresponding to the child node to be decoded comprises:
in the event that it is determined that the target associated child node is not present:
Determining target neighbor states corresponding to the child nodes to be decoded based on node information of the target neighbor child nodes, wherein the target neighbor states are used for representing the occupation situation of the target neighbor child nodes;
determining a state value of the target neighbor state based on a decoding result of the decoded child node, wherein the neighbor state corresponding to the decoded child node is the target neighbor state;
and determining second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state.
9. The method of claim 8, wherein the target neighbor state is one of a plurality of neighbor states, each of the neighbor states corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores decoding results of a plurality of the decoded child nodes, and the state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state;
The method further comprises the steps of:
And updating the sliding window corresponding to the target neighbor state based on the decoding result of the child node to be decoded.
10. The method of claim 8, wherein the determining the second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state comprises:
Determining second neighbor information corresponding to the child node to be decoded based on a state value of the target neighbor state under the condition that the target neighbor state is not a preset neighbor state;
The method further comprises the steps of:
and under the condition that the target neighbor state is the preset neighbor state, determining second neighbor information corresponding to the child node to be decoded based on the coplanar parent node corresponding to the child node to be decoded.
11. The method of claim 10, wherein the determining, based on the state value of the target neighbor state, the second neighbor information corresponding to the child node to be decoded if the target neighbor state is not a preset neighbor state, comprises:
And under the condition that the target neighbor state is not the preset neighbor state, determining second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.
12. The method according to any of claims 7-11, wherein in case the target associated child node is a co-planar child node corresponding to the child node to be decoded, the target neighbor child node comprises at least one of:
A first neighbor child node;
a second neighbor child node;
wherein the first neighbor child node comprises at least one of:
the common-edge child node corresponding to the child node to be decoded;
the corresponding co-node of the sub-node to be decoded;
the side length of the shortest node of the child nodes to be decoded is the child node at the side length of two nodes in the negative direction in the dimension;
the second neighbor child node includes at least one of:
a child node selected from the coplanar parent nodes corresponding to the parent nodes of the child nodes to be decoded;
A child node selected from collinear parent nodes corresponding to the parent nodes of the child nodes to be decoded;
Wherein the position of the selected child node in the parent node is the same as the position of the child node to be decoded in the parent node.
13. A point cloud encoding apparatus, comprising:
the acquisition module is used for carrying out tree construction on the geometric information of the point cloud to acquire the child node to be encoded;
the determining module is used for determining the first neighbor information corresponding to the child node to be encoded;
the coding module is used for coding the child node to be coded based on the first neighbor information to obtain a coding result of the child node to be coded;
under the condition that the target associated sub-node corresponding to the sub-node to be encoded exists, the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be encoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that the target associated child node is determined not to exist, the first neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node in the neighbor child nodes of the child node to be encoded.
14. A point cloud decoding apparatus, comprising:
the determining module is used for determining second neighbor information corresponding to the child node to be decoded;
the decoding module is used for decoding the child node to be decoded based on the second neighbor information to obtain a decoding result of the child node to be decoded;
Under the condition that the target associated sub-node corresponding to the sub-node to be decoded exists, the second neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node with the association degree of the target associated sub-node to be decoded meeting a preset condition; or alternatively, the first and second heat exchangers may be,
In the case that it is determined that the target associated child node does not exist, the second neighbor information is determined based on node information of a plurality of target neighbor child nodes except the target associated child node among the neighbor child nodes of the child node to be decoded.
15. A communication device comprising a processor, a memory and a program or instruction stored on the memory and executable on the processor, which when executed by the processor implements the steps of the point cloud encoding method of any of claims 1 to 6; or the program or instructions when executed by the processor implement the steps of the point cloud decoding method as claimed in any of claims 7 to 12.
16. A readable storage medium, characterized in that the readable storage medium has stored thereon a program or instructions which, when executed by a processor, implements the steps of the point cloud encoding method according to any of claims 1 to 6, or which, when executed by a processor, implements the steps of the point cloud decoding method according to any of claims 7 to 12.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211585959.7A CN118175319A (en) | 2022-12-09 | 2022-12-09 | Point cloud encoding method, point cloud decoding method and related equipment |
PCT/CN2023/136729 WO2024120431A1 (en) | 2022-12-09 | 2023-12-06 | Point cloud coding method, point cloud decoding method, and related devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211585959.7A CN118175319A (en) | 2022-12-09 | 2022-12-09 | Point cloud encoding method, point cloud decoding method and related equipment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118175319A true CN118175319A (en) | 2024-06-11 |
Family
ID=91349332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211585959.7A Pending CN118175319A (en) | 2022-12-09 | 2022-12-09 | Point cloud encoding method, point cloud decoding method and related equipment |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118175319A (en) |
WO (1) | WO2024120431A1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112041889A (en) * | 2018-02-08 | 2020-12-04 | 松下电器(美国)知识产权公司 | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device |
WO2021232251A1 (en) * | 2020-05-19 | 2021-11-25 | Oppo广东移动通信有限公司 | Point cloud encoding/decoding method, encoder, decoder, and storage medium |
CN112565795B (en) * | 2020-12-03 | 2022-10-04 | 西安电子科技大学 | Point cloud geometric information encoding and decoding method |
-
2022
- 2022-12-09 CN CN202211585959.7A patent/CN118175319A/en active Pending
-
2023
- 2023-12-06 WO PCT/CN2023/136729 patent/WO2024120431A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024120431A1 (en) | 2024-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11409998B2 (en) | Trimming search space for nearest neighbor determinations in point cloud compression | |
US20200021856A1 (en) | Hierarchical point cloud compression | |
JP5932051B2 (en) | Predictive position decoding | |
JP2015504545A (en) | Predictive position coding | |
CN115471627A (en) | Point cloud geometric information encoding processing method, point cloud geometric information decoding processing method and related equipment | |
US11936909B2 (en) | Prediction method, encoder, decoder, and computer storage medium | |
US20240257404A1 (en) | Methods for level partition of point cloud, and decoder | |
US20220329833A1 (en) | Nearest neighbor search method, apparatus, device, and storage medium | |
KR20230173695A (en) | Entropy encoding, decoding method and device | |
CN118175319A (en) | Point cloud encoding method, point cloud decoding method and related equipment | |
CN116233388B (en) | Point cloud coding and decoding processing method and device, coding equipment and decoding equipment | |
WO2024217340A1 (en) | Point cloud coding processing method, point cloud decoding processing method, and related device | |
CN116233426B (en) | Attribute quantization and inverse quantization methods, devices and equipment | |
CN116233387A (en) | Point cloud coding and decoding methods, devices and communication equipment | |
WO2023098805A1 (en) | Point cloud encoding method and apparatus, point cloud decoding method and apparatus, and electronic device | |
US20240037799A1 (en) | Point cloud coding/decoding method and apparatus, device and storage medium | |
EP4319167A1 (en) | Point cloud encoding processing method and apparatus, and point cloud decoding processing method and apparatus | |
WO2024217303A1 (en) | Transform coefficient coding method, transform coefficient decoding method, and terminal | |
CN116458158B (en) | Intra-frame prediction method and device, codec, device, and storage medium | |
WO2024074123A1 (en) | Method, apparatus, and medium for point cloud coding | |
US20240323437A1 (en) | Point cloud coding method, point cloud decoding method and related device | |
WO2024188138A1 (en) | Point cloud encoding processing method, point cloud decoding processing method, and related device | |
WO2024074121A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023155045A1 (en) | Prediction method and apparatus, coder, decoder, and coding and decoding system | |
WO2023133710A1 (en) | Encoding method, decoding method, encoder, decoder, and encoding and decoding system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |