Encoding and Decoding Control Methods and Devices

By introducing a first mode identifier and threshold conditions into AVS PCRM, multi-way tree placeholder code encoding is directly performed, which solves the problem of improper node selection in the isolated point encoding mode and improves encoding efficiency.

CN115474064BActive Publication Date: 2025-10-31VIVO MOBILE COMM CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111478748.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-06-11
Filing Date
2021-12-06
Publication Date
2025-10-31
Estimated Expiration
2041-12-06

AI Technical Summary

Technical Problem

The existing isolated point encoding scheme in AVS PCRM does not effectively filter nodes, resulting in a large number of singlePointFlags being encoded as 0, which affects encoding efficiency.

Method used

By introducing a first mode identifier, when the first mode identifier of the current node to be processed is the first identifier and the number of consecutively processed nodes is less than the first threshold, multi-way tree placeholder code encoding is directly performed to avoid encoding singlePointFlag.

Benefits of technology

This reduces the number of times a single PointFlag is 0 in the encoding, thus improving encoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115474064B_ABST
    Figure CN115474064B_ABST
Patent Text Reader

Abstract

This application discloses an encoding and decoding control method and apparatus. The encoding control method of this application includes: obtaining a current node to be processed in a target queue, the target queue including nodes whose corresponding space blocks in the constructed tree structure are occupied; obtaining a first mode identifier of the current node to be processed; if the first mode identifier is a first identifier, and if the nodes that have been processed continuously meet a first condition, performing multi-way tree placeholder code encoding on the current node to be processed; wherein, the first condition includes: the mode identifier of the nodes that have been processed continuously is the first identifier and the number of nodes that have been processed continuously is less than a first threshold.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the field of image processing, and specifically relates to an encoding and decoding control method and apparatus. Background Technology

[0002] In the current Audio Video Coding Standard (AVS) Point Cloud Reference Software Model (PCRM) octree construction process, before octree encoding a node, it is necessary to decide whether to perform direct encoding of isolated points. When a node to be encoded contains only one point, this point is called an isolated point; direct encoding means encoding the geometric coordinates of the isolated point corresponding to the uncoded bits of the Morton code. Direct encoding is performed when the current node meets the following three conditions:

[0003] Condition 1: The direct encoding pattern identifier for isolated points in the geometric head information is 1;

[0004] Condition 2: The current node contains only one point;

[0005] Condition 3: The sum of the Morton code bits of the points to be encoded within the current node is greater than twice the number of directions that have not reached the minimum side length.

[0006] When all three conditions above are met, the branch is entered, and a flag bit is introduced, called the geometric isolated point pattern flag (singlePointFlag), indicating whether the current node uses isolated point encoding. This flag bit represents whether the current node contains only one point. When the node contains only one point, the flag bit is 1; when the node contains more than one point, the flag bit is 0. After encoding the flag bit, if the flag bit is 1, that is, the current node contains only one point, the unencoded bits of the Morton code corresponding to the geometric coordinates of that point are directly encoded, that is, encoded in the order of x, y, z. The direction that has reached the minimum side length does not need to be encoded, and the octree partitioning ends. If the flag bit is 0, the placeholder code is encoded, and the octree partitioning continues.

[0007] Of these three conditions, condition one is determined by the configuration file, meaning all nodes in the same sequence have the same value; condition three is used to limit the number of bits to be encoded for nodes with smaller bit widths, i.e., nodes closer to the leaf node level. If either condition one or condition three is 0, singlePointFlag encoding will not be performed. For ease of description, these two conditions are referred to as the prior conditions for the isolated point encoding mode. If the current node meets the prior conditions, singlePointFlag will be encoded. However, isolated point encoding will only be performed if condition two is met, i.e., singlePointFlag is 1; otherwise, octree placeholder code encoding will continue.

[0008] In AVS PCRM V3.0, condition one is set to 1 by default, which controls whether the current sequence is in isolated point encoding mode; condition three only restricts the layer of nodes entering isolated point encoding mode, meaning nodes close to the leaf node layer cannot enter isolated point encoding mode. Therefore, in the existing encoder, nodes far from the leaf node layer must go through condition two, i.e., they need to encode singlePointFlag, without effectively filtering nodes. Specifically, the following problems exist:

[0009] 1. For relatively dense point cloud sequences, very few nodes meet the criteria in condition two, meaning that a large number of singlePointFlags with a value of 0 are encoded. These bitstreams do not contribute to the compression of the point cloud.

[0010] 2. Even in relatively sparse point clouds, there are situations where a certain region is relatively dense and there are few nodes that meet the criteria in condition two. Summary of the Invention

[0011] This application provides an encoding and decoding control method and apparatus that can solve the problem that existing isolated point encoding modes do not effectively filter nodes, resulting in a large number of singlePointFlags with a value of 0, which affects encoding efficiency.

[0012] Firstly, an encoding control method is provided, including:

[0013] Obtain the currently pending node from the target queue, which includes nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0014] Obtain the first mode identifier of the currently pending node;

[0015] When the first mode identifier is the first identifier, if the nodes that have been processed consecutively meet the first condition, the current node to be processed is encoded with a multi-way tree placeholder code.

[0016] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0017] Secondly, a decoding control method is provided, including:

[0018] Obtain the currently pending node from the target queue, which includes nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0019] Obtain the first mode identifier of the currently pending node;

[0020] When the first mode identifier is the first identifier, if the nodes that have been processed consecutively meet the first condition, the multi-branch tree placeholder code is decoded for the current node to be processed.

[0021] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0022] Thirdly, an encoding control device is provided, comprising:

[0023] The first acquisition module is used to acquire the current node to be processed in the target queue, the target queue including nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0024] The second acquisition module is used to acquire the first mode identifier of the currently pending node;

[0025] The first encoding module is used to encode the current node to be processed with a multi-way tree placeholder code if the nodes that have been processed consecutively meet the first condition when the first mode identifier is the first identifier.

[0026] The first condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier and the number of nodes that have been processed continuously is less than the first threshold.

[0027] Fourthly, an encoding control device is provided, the terminal including a processor, a memory, and a program or instructions stored in the memory and executable on the processor, wherein the program or instructions, when executed by the processor, implement the steps of the method described in the first aspect.

[0028] Fifthly, an encoding control device is provided, including a processor and a communication interface, wherein the processor is used to obtain the current node to be processed in a target queue, the target queue including nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0029] Obtain the first mode identifier of the currently pending node;

[0030] When the first mode identifier is the first identifier, if the nodes that have been processed consecutively meet the first condition, the current node to be processed is encoded with a multi-way tree placeholder code.

[0031] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0032] Sixthly, a decoding control device is provided, comprising:

[0033] The third acquisition module is used to acquire the current node to be processed in the target queue, the target queue including nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0034] The fourth acquisition module is used to acquire the first mode identifier of the currently pending node;

[0035] The first decoding module is used to decode the multi-branch tree placeholder code of the current node to be processed if the nodes that have been processed continuously meet the first condition when the first mode identifier is the first identifier.

[0036] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0037] In a seventh aspect, a decoding control device is provided, including a processor, a memory, and a program or instructions stored in the memory and executable on the processor, wherein the program or instructions, when executed by the processor, implement the steps of the method described in the second aspect.

[0038] Eighthly, a decoding control device is provided, including a processor and a communication interface, wherein the processor is used to obtain the current node to be processed in a target queue, the target queue including nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0039] Obtain the first mode identifier of the currently pending node;

[0040] When the first mode identifier is the first identifier, if the nodes that have been processed consecutively meet the first condition, the multi-branch tree placeholder code is decoded for the current node to be processed.

[0041] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0042] A ninth aspect provides a readable storage medium on which a program or instructions are stored, which, when executed by a processor, implement the steps of the method as described in the first or second aspect.

[0043] In a tenth aspect, a chip is provided, the chip including a processor and a communication interface coupled to the processor, the processor being configured to run programs or instructions to implement the steps of the method as described in the first or second aspect.

[0044] Eleventhly, a computer program / program product is provided, the computer program / program product being 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 or second aspect.

[0045] In this embodiment of the application, by utilizing the first mode identifier of the current node to be processed, if the mode identifier of the nodes that have been processed consecutively is the first identifier and the number of nodes that have been processed consecutively is less than a first threshold, then the current node to be processed is directly encoded with a multi-way tree placeholder code without needing to encode the singlePointFlag of the current node to be processed. This reduces the encoding of a large number of singlePointFlags that are 0, thereby improving the encoding efficiency. Attached Figure Description

[0046] Figure 1 This is a diagram of the AVS codec framework;

[0047] Figure 2 This is a flowchart illustrating the encoding control method according to an embodiment of this application;

[0048] Figure 3 This is a schematic diagram of the encoding process of an embodiment of this application;

[0049] Figure 4 This is a schematic diagram of the decoding process according to an embodiment of this application;

[0050] Figure 5 This is a schematic diagram of the encoding control device according to an embodiment of this application;

[0051] Figure 6 This is a structural block diagram of the encoding control device according to an embodiment of this application;

[0052] Figure 7 This is a flowchart illustrating the decoding control method according to an embodiment of this application;

[0053] Figure 8 This is a schematic diagram of the decoding control device according to an embodiment of this application;

[0054] Figure 9 This is a structural block diagram of a communication device according to an embodiment of this application. Detailed Implementation

[0055] The technical solutions of the embodiments of this application will be clearly described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments of this application are within the scope of protection of this application.

[0056] The terms "first," "second," etc., used in the specification and claims of this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such terms can be used interchangeably where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein, and the objects distinguished by "first" and "second" are generally of the same class, not limited in number; for example, a first object can be one or more. Furthermore, in the specification and claims, "and / or" indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship.

[0057] The prior art related to this application is briefly described below.

[0058] Figure 1This diagram illustrates the framework of the Audio Video Coding Standard (AVS) encoder / decoder. In the point cloud AVS encoder framework, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately. First, the geometric information undergoes coordinate transformation so that the entire point cloud is contained within a bounding box. Then, quantization is performed. This step primarily serves a scaling function. Due to quantization rounding, some points have identical geometric information; parameters determine whether to remove duplicate points. This quantization and duplicate point removal process is considered preprocessing. Next, the bounding box is partitioned (octree / quadtree / binary tree) in breadth-first search order, and the placeholder code for each node is encoded. In the octree-based geometric code framework, the bounding box is sequentially partitioned into sub-cubes. Non-empty sub-cubes (containing points from the point cloud) are further partitioned until the resulting leaf nodes are 1×1×1 unit cubes. The number of points contained in each leaf node is then encoded, ultimately completing the geometric octree encoding and generating a binary bitstream. In the octree-based geometric decoding process, the decoding end follows a breadth-first traversal order, continuously parsing the placeholder code of each node and dividing the nodes sequentially until a 1×1×1 unit cube is obtained, at which point the division stops. The number of points contained in each leaf node is then parsed, and finally the geometric reconstruction point cloud information is recovered.

[0059] After geometric encoding is completed, the geometric information is reconstructed. Currently, attribute encoding mainly targets color and reflectance information. First, it is determined whether a color space conversion is needed; if so, the color information is converted from the RGB color space to the YUV color space. Then, the reconstructed point cloud is recolored using the original point cloud, so that the unencoded attribute information corresponds to the reconstructed geometric information. Color information encoding is divided into two modules: attribute prediction and attribute transformation. The attribute prediction process is as follows: First, the point cloud is reordered, and then differential prediction is performed. There are two reordering methods: Morton reordering and Hilbert reordering. For the cat1A and cat2 sequences, Hilbert reordering is used; for the cat1B and cat3 sequences, Morton reordering is used. Attribute prediction is performed on the sorted point cloud using a differential method. Finally, the prediction residuals are quantized and entropy encoded to generate a binary code stream. The attribute transformation process is as follows: First, wavelet transform is performed on the point cloud attributes, and the transform coefficients are quantized; second, attribute reconstruction values ​​are obtained through inverse quantization and inverse wavelet transform; then, the difference between the original attributes and the attribute reconstruction values ​​is calculated to obtain the attribute residual, which is then quantized; finally, the quantized transform coefficients and attribute residuals are entropy encoded to generate a binary code stream. More precisely, this application involves geometric encoding and decoding, specifically improvements to the octree construction and octree reconstruction process within the geometric encoding and decoding parts.

[0060] The encoding and decoding control methods and apparatus provided in this application will be described in detail below with reference to the accompanying drawings and through some embodiments and application scenarios.

[0061] like Figure 2 As shown, this application provides an encoding control method, including:

[0062] Step 201: Obtain the currently pending node from the target queue;

[0063] It should be noted that the target queue includes the nodes whose corresponding spatial blocks in the constructed tree structure are occupied; further, it should be noted that, for encoding, the tree structure is obtained based on the preprocessed point cloud geometric information. This preprocessing refers to performing one or more of the following on the point cloud geometric information of the Nth frame (N is an integer greater than or equal to 1, which can be understood as a certain frame) to obtain the point cloud geometric information; while for decoding, the tree structure is obtained by decoding the occupancy information of the nodes.

[0064] Step 202: Obtain the first mode identifier of the currently pending node;

[0065] It should be noted that the first mode identifier is newly introduced in this application and is used to determine the node to be processed before encoding.

[0066] Step 203: If the first mode identifier is the first identifier, and if the nodes that have been processed consecutively meet the first condition, the current node to be processed is encoded with a multi-way tree placeholder code.

[0067] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0068] It should be noted that, in this embodiment of the application, when the first mode identifier of the current node to be processed is the first identifier, the number of nodes with the first mode identifier that have been processed consecutively is judged. If the number is less than the first threshold, multi-way tree placeholder code encoding is performed directly, without needing to encode the geometric isolated point mode identifier (singlePointFlag) of the current node to be processed in advance. This can reduce the number of singlePointFlags that indicate that isolated point encoding is not enabled during the multi-way tree placeholder code encoding process (e.g., the number of singlePointFlags encoded as 0), thereby improving encoding efficiency.

[0069] Optionally, after step 202, the method further includes:

[0070] If the first pattern identifier is the first identifier, and if the nodes that have been processed consecutively meet the second condition, the geometric isolated point pattern identifier (singlePointFlag) corresponding to the current node to be processed is encoded.

[0071] Based on the geometric isolated point pattern identifier, set the first pattern identifier of the next node to be processed;

[0072] The second condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier being the first identifier, where only one child node is occupied, is greater than the fourth threshold.

[0073] It should be noted that for each node to be processed, its first mode identifier is first obtained. If the number of nodes with the first mode identifier that have been processed consecutively is less than a first threshold, the first mode identifier of the next node to be processed is not reset. That is, the first mode identifier of the next node to be processed continues to use the first mode identifier of the current node. However, when the number of nodes with the first mode identifier is less than the first threshold, the number of child nodes occupied by each node with the first mode identifier needs to be determined. Specifically, the number of nodes with only one child node occupied needs to be counted. If a node has only one child node occupied, the count needs to be incremented by 1. If the number of nodes with the first pattern identifier that have been processed consecutively is equal to the first threshold, and the number of nodes with the first pattern identifier that have only one child node occupied among the nodes with the first pattern identifier that have been processed consecutively is greater than the fourth threshold, then the first pattern identifier of the next node to be processed needs to be reset. The implementation method here is: first encode the singlePointFlag corresponding to the current node to be processed, and then set the first pattern identifier of the next node to be processed according to the value of singlePointFlag. Optionally, the implementation method that this application can adopt includes at least one of the following:

[0074] A11. If the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to the preset number of points, set the first pattern identifier of the next node to be processed to the second identifier.

[0075] It should be noted that `singlePointFlag` is used to indicate whether or not isolated point encoding is enabled. For example, when `singlePointFlag = 1`, it means that isolated point encoding is enabled; when `singlePointFlag = 0`, it means that isolated point encoding is not enabled. When the node to be processed contains one point or a small number of points, it indicates that isolated point encoding can be performed. The preset number of points mentioned in this application is the maximum number of points corresponding to enabling isolated point encoding. For example, if the preset number of points is 1, it means that isolated point encoding is enabled when the node to be processed is a single point (i.e., one point); if the preset number of points is 2, it means that isolated point encoding is enabled when the node to be processed is a single point or when the node to be processed contains two nodes. When the current node to be processed needs to enable isolated point encoding, the first mode identifier of the next node to be processed is directly set to the second identifier.

[0076] A12. If the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, set the first pattern identifier of the next node to be processed to the first identifier.

[0077] It should be noted that when the node to be processed contains a large number of points, it means that isolated point coding cannot be performed; if isolated point coding is not required, the first mode identifier of the next node to be processed is directly set to the first identifier.

[0078] It should also be noted that when singlePointFlag is encoded, the nodes need to be encoded according to the instructions of singlePointFlag. The specific implementation process is as follows:

[0079] After encoding the geometric isolated point pattern identifier corresponding to the current node to be processed, the first operation is performed on the current node to be processed based on the geometric isolated point pattern identifier;

[0080] The first operation includes: multi-way tree placeholder code encoding or isolated point direct encoding.

[0081] Specifically, based on the geometric isolated point pattern identifier, the implementation methods for performing the first operation on the current node to be processed may include at least one of the following:

[0082] B11. When the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to the preset number of points, the current node to be processed is directly encoded as an isolated point.

[0083] In other words, when the singlePointFlag indicator allows outlier encoding, the current node to be processed is directly encoded as an outlier.

[0084] B12. When the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the current node to be processed is encoded with a multi-way tree placeholder code.

[0085] In other words, when the singlePointFlag indicates that isolated point encoding cannot be enabled, multi-way tree placeholder encoding is directly performed on the current node to be processed.

[0086] Optionally, it should also be noted that, when the number of nodes in the first pattern identified by the first identifier that have been processed consecutively, where only one child node is occupied, is less than or equal to the fourth threshold, the embodiments of this application have the following implementation:

[0087] If the first mode identifier is the first identifier and the nodes that have been processed consecutively meet the fourth condition, the first mode identifier of the next node to be processed is set to the first identifier.

[0088] The fourth condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier as the first identifier, where only one child node is occupied, is less than or equal to the fourth threshold.

[0089] In other words, under the conditions indicated by the fourth condition, there is no need to encode the singlePointFlag corresponding to the current node to be processed. Instead, the first mode identifier of the next node to be processed is directly set to the first identifier, and then the current node to be processed is encoded with a multi-way tree placeholder code. In this way, the number of singlePointFlags that do not enable isolated point encoding during the multi-way tree placeholder code encoding process can be further reduced (e.g., the number of singlePointFlags encoded as 0), thereby improving the encoding efficiency.

[0090] It should be noted that this application sets two values ​​for the first mode identifier. The above describes how to perform the encoding operation when the first mode identifier of the current node to be processed is the first identifier. The following describes how to perform the encoding operation when the first mode identifier of the current node to be processed is the second identifier.

[0091] Specifically, after step 202, the method further includes:

[0092] When the first pattern identifier is the second identifier, the geometric isolated point pattern identifier corresponding to the current node to be processed is encoded.

[0093] Based on the geometric isolated point pattern identifier, the first operation is performed on the current node to be processed;

[0094] The first operation includes: multi-way tree placeholder code encoding or isolated point direct encoding.

[0095] In other words, if the first mode identifier of the current node to be processed is the second identifier, the singlePointFlag corresponding to the current node to be processed is directly encoded, and then the node is encoded according to the value of singlePointFlag. For the specific implementation process, please refer to B11 and B12, which will not be repeated here.

[0096] It should also be noted that when the `singlePointFlag` indicator indicates that orphan encoding cannot be enabled, multi-way tree placeholder encoding is directly performed on the current node to be processed. When the `singlePointFlag` indicator indicates that orphan encoding is enabled, direct orphan encoding is directly performed on the current node to be processed. After performing direct or multi-way tree placeholder encoding, the first mode identifier of the next node to be processed needs to be reset. Optionally, one implementation method is as follows:

[0097] If the nodes that have been processed consecutively meet the third condition, the first mode identifier of the next node to be processed is set according to the number of nodes whose number of points is less than or equal to the preset number of points.

[0098] The third condition includes: the first pattern identifier of the nodes that have been processed continuously is the second identifier, and the number of nodes that have been processed continuously is equal to the second threshold.

[0099] It should be noted that in this case, after directly encoding the isolated point or encoding the multi-way tree placeholder code for the current node to be processed, if the number of consecutively processed nodes is less than the second threshold, then the next node to be processed continues to be processed. There is no need to set the first mode identifier for the next node to be processed; the first mode identifier of the next node to be processed continues to use the value of the first mode identifier of the previously processed node, that is, the first mode identifier of the next node to be processed is still the second identifier. If the number of consecutively processed nodes is equal to the second threshold, then it is necessary to determine the number of nodes with isolated point encoding enabled. Specifically, the implementation includes at least one of the following:

[0100] C11. If the number of processed nodes containing fewer than or equal to a preset number of points is greater than the third threshold, set the first mode identifier of the next node to be processed to the second identifier.

[0101] It should be noted that if the number of points in a node is less than or equal to the preset number of points, it indicates that the singlePointFlag indicator for that node needs to enable orphan coding. If the number of points in a node is greater than the preset number of points, it indicates that the singlePointFlag indicator for that node does not need to enable orphan coding.

[0102] In other words, if the number of nodes with outlier coding enabled is greater than the third threshold, it indicates that the probability of enabling outlier coding in subsequent nodes is relatively high. Therefore, the first mode identifier of the next node to be processed is set to the same value as the first mode identifier of the previous node.

[0103] C12. If the number of nodes that have been processed and contain fewer than or equal to a preset number of points is less than or equal to a third threshold, set the first mode identifier of the next node to be processed to the first identifier.

[0104] In other words, in this case, if the number of nodes with outlier coding enabled is less than or equal to the third threshold, it indicates that the probability of not needing to enable outlier coding in subsequent nodes is relatively high, and the first mode identifier of the next node to be processed is set to the first identifier.

[0105] It should also be noted that, apart from the root node, all other nodes can have their first mode identifier set in the subsequent process. In order to ensure that the root node can be processed accurately, in this embodiment, the first mode identifier of the root node is set to the second identifier.

[0106] Optionally, it should also be noted that step 202 of this application can be implemented in the following ways:

[0107] The outlier encoding condition is determined for the current node to be processed;

[0108] If the current node to be processed meets the outlier coding condition, then the first mode identifier of the current node to be processed is obtained.

[0109] Optionally, the out-of-place encoding conditions include:

[0110] D11. The isolated point direct encoding mode identifier in the geometric head information corresponding to the current node to be processed is a preset value;

[0111] For example, the isolated point direct coding mode identifier is usually represented by 1 bit, which can be 0 or 1. When 0 is used to indicate that isolated point direct coding is enabled, the default value is 0. When 1 is used to indicate that isolated point direct coding is enabled, the default value is 1.

[0112] D12. The sum of the Morton code bits of the points in the current node to be processed is greater than a preset multiple (such as twice) of the first value. The first value is the number of first target side lengths in the spatial block corresponding to the current node to be processed. The first target side length includes the side length in the preset direction, and the first target side length is less than the minimum side length in the preset direction.

[0113] The preset directions here include at least one of the X, Y, and Z directions.

[0114] The first threshold, second threshold, and third threshold mentioned in the embodiments of this application can be determined by the encoding end or agreed upon by the protocol.

[0115] For example, regarding the first threshold, if it is determined by the encoder, the encoder can determine the threshold in the following way:

[0116] E11. The encoding end stores a first threshold set by the user, and this first threshold is used directly during encoding.

[0117] E12. The encoding end has multiple thresholds set, forming a threshold list, and the user can set the threshold to be used this time.

[0118] When the first threshold is determined by the encoder, the encoder needs to inform the decoder of the first threshold used for encoding. Typically, the decoder needs to encode the first threshold into the geometric header information. The decoder directly decodes the geometric header information and obtains the first threshold, and then decodes according to the same first threshold. When the encoder uses E11, the first threshold is usually encoded into the geometric header information. When the encoder uses E12, the identifier information corresponding to the first threshold is usually encoded into the geometric header information. For example, the identifier information is the number or index of the first threshold in the threshold list. Correspondingly, the decoder also sets the same threshold list. When the decoder obtains the identifier information, it can know which threshold in the threshold list it corresponds to.

[0119] For example, regarding the first threshold, if it is agreed upon by the protocol, the first threshold is known to both the encoder and decoder. In this case, the encoder does not need to encode the first threshold.

[0120] It should be noted that the above example uses the first threshold. The same applies to the second, third, and fourth thresholds, which will not be elaborated here.

[0121] It should be noted that the multi-tree placeholder code encoding mentioned in the embodiments of this application can be binary tree placeholder code encoding, quadtree placeholder code encoding, octree placeholder code encoding, etc.

[0122] The following section uses octree placeholder code encoding as an example to illustrate the specific implementation process of this application.

[0123] As described above, there are two mode identifiers in this application embodiment: one is called mode 0, which corresponds to the first mode identifier as the second identifier; the other is called mode 1, which corresponds to the first mode identifier as the first identifier. In mode 0, nodes determined by the isolated point prior information (which, in the encoding case, is the isolated point encoding condition) will be encoded normally as in the original scheme, except that the number of nodes with singlePointFlag set to 1 needs to be recorded. In mode 1, only some nodes determined by the isolated point prior information will be encoded. After encoding is completed in each mode, the next node will be assigned to a specific mode based on the encoding result.

[0124] In mode 0, two parameters are set: k (note that the second threshold mentioned above is equal to k-1) and m (note that the third threshold mentioned above is m). k is the number of nodes in a group using mode 0, and m is a threshold. Whether the number of nodes with singlePointFlag set to 1 among these k nodes is greater than m determines which mode the next node enters. A group of k nodes determined by the outlier prior information is formed. The encoding method for these k nodes is the same as the original scheme: first, singlePointFlag is encoded; nodes with a value of 1 are directly encoded, and nodes with a value of 0 are encoded using octree placeholder codes. During this process, the number of nodes with singlePointFlag set to 1 among these k nodes needs to be recorded. After the k nodes are encoded, if the number of nodes with singlePointFlag set to 1 is greater than m, the next node continues to enter mode 0; if the number of nodes with singlePointFlag set to 1 is less than or equal to m, the next node will enter mode 1.

[0125] In mode 1, a parameter n is set (it should be noted that the first threshold mentioned above is equal to n-1). In mode 1, n nodes identified through outlier prior information are grouped together. Nodes 1 to n-1 are directly octree encoded, and their octree encoding results are recorded. If the number of nodes with only one child node occupied in the octree encoding results of these n-1 nodes exceeds the threshold s, then the nth node will undergo normal outlier encoding; otherwise, the nth node will also directly undergo octree encoding. If the nth node directly undergoes octree encoding, the next node continues into mode 1; otherwise, the mode for the next node is determined by the singlePointFlag judgment result of the nth node. If the singlePointFlag judgment result of the nth node is 1, the next node will enter mode 0; if the judgment result is 0, the next node continues into mode 1.

[0126] In the specific implementation, two counters are set for mode0: countK and countM, which are used to record the number of nodes continuously processed in mode0 and the number of nodes with singlePointFlag set to 1, respectively. Two counters are set for mode1: countN, which is used to record the number of nodes continuously processed in mode1, and countS, which is used to record the number of nodes with only one child node occupied. The parameter NextMode indicates the mode used by the next node, with 0 representing mode0 and 1 representing mode1. For the first root node to be encoded, the corresponding parameters are initialized to NextMode = 0, countK = 0, countM = 0, countN = 0, and countS = 0.

[0127] like Figure 3 As shown, the main implementation process of the encoding process is as follows:

[0128] For the root node, set NextMode = 0, countK = 0, countM = 0, countN = 0, and countS = 0. Following the breadth-first, first-in, first-out (FIFO) principle, sequentially select one node from the node queue (referred to as the current node to be processed) and perform a single-point prior information check. If the check fails, directly encode the octree using placeholder codes, and then select the next node from the queue for processing. If the check succeeds, check the value of NextMode. If NextMode = 1, increment countN by one, and then check if countN equals n. If it does not equal n, directly encode the octree using placeholder codes and record the number of nodes with only one child node occupied. If a node has only one occupied child node, increment countS by one, and then select the next node from the queue for processing. If the value equals n, first determine if countS is greater than s. If not, set NextMode = 1, countN = 0, countS = 0, and encode the current node to be processed using an octree placeholder code. If the value is satisfied, encode the singlePointFlag of the current node to be processed. If singlePointFlag = 1, encode the current node to be processed directly as an isolated point, and set NextMode = 0, countK = 0, countM = 0. If singlePointFlag = 0, set NextMode = 1, countN = 0, and encode the current node to be processed using an octree placeholder code. Then, take the next node in the queue for processing.

[0129] If NextMode = 0, countK is incremented by one, and the singlePointFlag of the current node to be processed is encoded. If singlePointFlag = 0, the current node to be processed is encoded using an octree placeholder code. If singlePointFlag = 1, countM is incremented by one, and the current node to be processed is directly encoded as an isolated point. After either the octree placeholder code encoding or the isolated point direct encoding, countK is checked to see if it equals k. If countK is not equal to k, the next node in the queue is taken for processing. If countK equals k, countM is checked to see if it is greater than m. If countM is greater than m, NextMode = 0, countK = 0, countM = 0, and the next node in the queue is taken for processing. If countM is less than or equal to m, NextMode = 1, countN = 0, countS = 0, and the next node in the queue is taken for processing. This process continues until all nodes in the queue have been encoded.

[0130] Correspondingly, the decoding end will use the same method to decode as the encoding end. The main implementation flow of the decoding control process corresponding to the encoding control method is as follows: Figure 4 As shown:

[0131] For the root node, set NextMode = 0, countK = 0, countM = 0, countN = 0, and countS = 0. Following the FIFO principle, take one node sequentially from the node queue (called the current node to be processed) and check its isolated point prior information (in the decoding case, this isolated point prior information is the isolated point decoding condition). If the check fails, directly decode the octree placeholder code, and then take the next node from the queue for processing. If the check succeeds, check the value of NextMode. If NextMode = 1, increment countN by one, and then check if countN equals n. If it does not equal n, directly decode the octree placeholder code and record the number of nodes with only one child node occupied. If a node has only one occupied child node, increment countS by one, and then take the next node from the queue for processing. If the value equals n, first check if countS is greater than s. If not, set NextMode = 1, countN = 0, countS = 0, and decode the octree placeholder code for the current node to be processed. If the value is satisfied, decode the singlePointFlag of the current node to be processed. If singlePointFlag = 1, decode the isolated point directly for the current node to be processed, and set NextMode = 0, countK = 0, countM = 0. If singlePointFlag = 0, set NextMode = 1, countN = 0, decode the octree placeholder code for the current node to be processed, and then take the next node in the queue for processing.

[0132] If NextMode = 0, countK is incremented by one, and the singlePointFlag of the current node to be processed is decoded. If singlePointFlag = 0, the octree placeholder code of the current node to be processed is decoded. If singlePointFlag = 1, countM is incremented by one, and the isolated point of the current node to be processed is directly decoded. After decoding the octree placeholder code or the isolated point, it is determined whether countK is equal to k. If countK is not equal to k, the next node in the queue is taken for processing. If countK is equal to k, it is determined whether countM is greater than m. If countM is greater than m, NextMode = 0, countK = 0, countM = 0, and the next node in the queue is taken for processing. If countM is less than or equal to m, NextMode = 1, countN = 0, countS = 0, and the next node in the queue is taken for processing. This process continues until all nodes in the queue have been decoded.

[0133] The encoding control method provided in this application can effectively avoid encoding too many zero-valued singlePointFlags in the bitstream, thereby further improving the geometric encoding performance. Experimental results show that the algorithm described in this technology can improve encoding performance. As shown in Table 1, under lossy conditions, the performance of this scheme is better than PCRMV3.0.

[0134] It's important to note that there are two aspects to evaluating the performance of point cloud compression: first, the degree of point cloud distortion—higher distortion results in poorer objective quality of the reconstructed point cloud; and second, the size of the compressed bitstream. For lossless compression, where the point cloud is undistorted, only the size of the compressed bitstream is considered. For lossy compression, both aspects must be considered. The bitstream size can be measured by the number of bits output after encoding, while PCRM provides two corresponding distortion evaluation algorithms for assessing the degree of point cloud distortion.

[0135] Generally, the performance of a compression algorithm is evaluated using RD curves to compare the performance differences between two algorithms. The ideal goal of point cloud compression is to reduce the bitstream and increase the PSNR (Power-On-Rate), a key indicator of objective quality. However, this is rare. More commonly, the bitstream decreases compared to the original method, but the PSNR (point cloud quality) decreases, or the PSNR increases, but the bitstream increases. To measure the performance of a new method in both of these scenarios, a metric that comprehensively considers both bitstream and PSNR is needed. The AVS Point Cloud Group uses BD-Rate to comprehensively evaluate the bitrate and objective quality of point cloud compression algorithms, further refining it into geometric and attribute aspects: BD-GeomRate and BD-AttrRate. A negative BD-Rate value indicates a performance improvement over the original method; a positive BD-Rate value indicates a performance decline. Depending on whether the error is calculated using mean squared error or Hausdorff distance, there are two methods and results for calculating PSNR. Correspondingly, there are also two results for BD-Rate: the one calculated using mean squared error is denoted as D1, and the one calculated using Hausdorff distance is denoted as D1-H.

[0136] Table 1. Performance comparison results of this application and PCRM V3.0 under destructive conditions.

[0137]

[0138] It should be noted that the encoding control method provided in this application can be executed by an encoding control device, or by a control module within the encoding control device for executing the encoding control method. This application uses the execution of the encoding control method by an encoding control device as an example to illustrate the encoding control device provided in this application.

[0139] like Figure 5 As shown, this application embodiment provides an encoding control device 500, including:

[0140] The first acquisition module 501 is used to acquire the current node to be processed in the target queue, wherein the target queue includes nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0141] The second acquisition module 502 is used to acquire the first mode identifier of the current node to be processed;

[0142] The first encoding module 503 is used to encode the current node to be processed with a multi-way tree placeholder code if the nodes that have been processed continuously meet the first condition when the first mode identifier is the first identifier.

[0143] The first condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier and the number of nodes that have been processed continuously is less than the first threshold.

[0144] Optionally, after the second acquisition module 502 acquires the first mode identifier of the current node to be processed, the method further includes:

[0145] The second encoding module is used to encode the geometric isolated point pattern identifier corresponding to the current node to be processed if the nodes that have been processed consecutively meet the second condition when the first pattern identifier is the first identifier.

[0146] The first setting module is used to set the first mode identifier of the next node to be processed according to the geometric isolated point mode identifier;

[0147] The second condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier being the first identifier, where only one child node is occupied, is greater than the fourth threshold.

[0148] Optionally, the first setting module implements at least one of the following:

[0149] If the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to a preset number of points, the first pattern identifier of the next node to be processed is set to the second identifier.

[0150] If the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the first pattern identifier of the next node to be processed is set to the first identifier.

[0151] Optionally, after the second encoding module encodes the geometric outlier pattern identifier corresponding to the current node to be processed, the method further includes:

[0152] The first processing module is used to perform a first operation on the current node to be processed according to the geometric isolated point pattern identifier;

[0153] The first operation includes: multi-way tree placeholder code encoding or isolated point direct encoding.

[0154] Optionally, after the second acquisition module 502 acquires the first mode identifier of the current node to be processed, the method further includes:

[0155] The seventh setting module is used to set the first mode identifier of the next node to be processed to the first identifier if the nodes that have been processed consecutively meet the fourth condition, when the first mode identifier is the first identifier.

[0156] The fourth condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier as the first identifier, where only one child node is occupied, is less than or equal to the fourth threshold.

[0157] Optionally, after the seventh setting module sets the first mode identifier of the next node to be processed to the first identifier, the method further includes:

[0158] The fourth encoding module is used to encode the multi-way tree placeholder code for the current node to be processed.

[0159] Optionally, after the second acquisition module 502 acquires the first mode identifier of the current node to be processed, the method further includes:

[0160] The third encoding module is used to encode the geometric isolated point pattern identifier corresponding to the current node to be processed when the first pattern identifier is the second identifier.

[0161] The second processing module is used to perform a first operation on the current node to be processed based on the geometric isolated point pattern identifier;

[0162] The first operation includes: multi-way tree placeholder code encoding or isolated point direct encoding.

[0163] Optionally, the implementation of performing the first operation on the current node to be processed based on the geometric isolated point pattern identifier includes at least one of the following:

[0164] When the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to a preset number of points, the current node to be processed is directly encoded as an isolated point;

[0165] When the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the current node to be processed is encoded with a multi-way tree placeholder code.

[0166] Optionally, after the second processing module performs the first operation on the current node to be processed based on the geometric isolated point pattern identifier, the method further includes:

[0167] The second setting module is used to set the first mode identifier of the next node to be processed if the nodes that have been processed continuously meet the third condition, based on the number of nodes whose number of points is less than or equal to the preset number of points.

[0168] The third condition includes: the first pattern identifier of the nodes that have been processed continuously is the second identifier, and the number of nodes that have been processed continuously is equal to the second threshold.

[0169] Optionally, the second setting module implements at least one of the following:

[0170] If the number of processed nodes containing fewer than or equal to a preset number of points exceeds the third threshold, the first mode identifier of the next node to be processed is set to the second identifier.

[0171] If the number of processed nodes containing fewer than or equal to a preset number of points is less than or equal to a third threshold, the first mode identifier of the next node to be processed is set to the first identifier.

[0172] Optionally, before the first acquisition module 501 acquires the current node to be processed from the target queue, the method further includes:

[0173] The third setting module is used to set the first mode identifier of the root node to the second identifier.

[0174] Optionally, the second acquisition module 502 includes:

[0175] The first determination unit is used to determine the outlier encoding condition of the current node to be processed.

[0176] The first acquisition unit is used to acquire the first mode identifier of the current node to be processed if the current node to be processed satisfies the outlier encoding condition.

[0177] Optionally, the out-of-place encoding conditions include:

[0178] The isolated point direct encoding mode identifier in the geometric head information corresponding to the current node to be processed is a preset value;

[0179] The sum of the Morton code bits of the points in the current node to be processed is greater than a preset multiple of a first value. The first value is the number of first target side lengths in the spatial block corresponding to the current node to be processed. The first target side length includes the side length in a preset direction, and the first target side length is less than the minimum side length in the preset direction.

[0180] It should be noted that by utilizing the first mode identifier of the current node to be processed, if the mode identifier of the nodes that have been processed consecutively is the first identifier and the number of nodes that have been processed consecutively is less than the first threshold, then the current node to be processed is directly encoded with a multi-way tree placeholder code without needing to encode the singlePointFlag of the current node to be processed. This can reduce the encoding of a large number of singlePointFlags that are 0, thereby improving the encoding efficiency.

[0181] The encoding control device in this application embodiment can be a device, a device or electronic device with an operating system, or a component, integrated circuit, or chip in a terminal. The device or electronic device can be a mobile terminal or a non-mobile terminal. For example, a mobile terminal can include, but is not limited to, mobile phones, tablet computers, laptop computers, personal digital assistants (PDAs), handheld computers, netbooks, ultra-mobile personal computers (UMPCs), mobile internet devices (MIDs), wearable devices or vehicle-mounted devices (VUEs), pedestrian terminals (PUEs), etc. Wearable devices include smartwatches, wristbands, headphones, glasses, etc. Non-mobile terminals can be servers, network attached storage (NAS), personal computers (PCs), televisions (TVs), ATMs, or self-service machines, etc. This application embodiment does not specifically limit the scope of the mobile terminal.

[0182] The encoding control device provided in this application embodiment can achieve... Figure 2 The various processes implemented in the method embodiments achieve the same technical effect, and will not be described again here to avoid repetition.

[0183] This application embodiment also provides an encoding control device, including a processor and a communication interface. The processor is used to obtain the currently pending node in a target queue, the target queue including nodes whose corresponding space blocks in the constructed tree structure are occupied.

[0184] Obtain the first mode identifier of the currently pending node;

[0185] When the first mode identifier is the first identifier, if the nodes that have been processed consecutively meet the first condition, the current node to be processed is encoded with a multi-way tree placeholder code.

[0186] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0187] This encoding control device embodiment corresponds to the above method embodiment. All implementation processes and methods of the above method embodiment can be applied to this device embodiment and achieve the same technical effect. Specifically, Figure 6 A schematic diagram of the hardware structure of an encoding control device for implementing an embodiment of this application.

[0188] The encoding control device 600 includes, but is not limited to, at least some of the following components: radio frequency unit 601, network module 602, audio output unit 603, input unit 604, sensor 605, display unit 606, user input unit 607, interface unit 608, memory 609, and processor 610.

[0189] Those skilled in the art will understand that the encoding control device 600 may also include a power supply (such as a battery) for supplying power to various components. The power supply may be logically connected to the processor 610 through a power management system, thereby enabling functions such as managing charging, discharging, and power consumption through the power management system. Figure 6 The terminal structure shown does not constitute a limitation on the terminal. The terminal may include more or fewer components than shown, or combine certain components, or have different component arrangements, which will not be elaborated here.

[0190] It should be understood that, in this embodiment, the input unit 604 may include a graphics processing unit (GPU) 6041 and a microphone 6042. The GPU 6041 processes image data of still images or videos obtained by an image capture device (such as a camera) in video capture mode or image capture mode. The display unit 606 may include a display panel 6061, which 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 a touch panel 6071 and other input devices 6072. The touch panel 6071 is also called a touch screen. The touch panel 6071 may include a touch detection device and a touch controller. Other input devices 6072 may include, but are not limited to, a physical keyboard, function keys (such as volume control buttons, power buttons, etc.), a trackball, a mouse, and a joystick, which will not be described in detail here.

[0191] In this embodiment, the radio frequency unit 601 receives downlink data from the network-side device and processes it for the processor 610; additionally, it sends uplink data to the network-side device. Typically, the radio frequency unit 601 includes, but is not limited to, an antenna, at least one amplifier, a transceiver, a coupler, a low-noise amplifier, a duplexer, etc.

[0192] The memory 609 can be used to store software programs or instructions and various data. The memory 609 may primarily include a program or instruction storage area and a data storage area. The program or instruction storage area may store the operating system, application programs or instructions required for at least one function (such as sound playback, image playback, etc.). Furthermore, the memory 609 may include high-speed random access memory and non-volatile memory, wherein the non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. For example, at least one disk storage device, flash memory device, or other non-volatile solid-state storage device.

[0193] Processor 610 may include one or more processing units; optionally, processor 610 may integrate an application processor and a modem processor, wherein the application processor mainly handles the operating system, user interface, and applications or instructions, and the modem processor mainly handles wireless communication, such as a baseband processor. It is understood that the aforementioned modem processor may also not be integrated into processor 610.

[0194] The processor 610 is used to: obtain the current node to be processed in the target queue, the target queue including the nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0195] Obtain the first mode identifier of the currently pending node;

[0196] When the first mode identifier is the first identifier, if the nodes that have been processed consecutively meet the first condition, the current node to be processed is encoded with a multi-way tree placeholder code.

[0197] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0198] The encoding control device in this embodiment utilizes the first mode identifier of the current node to be processed. If the mode identifier of the nodes that have been processed consecutively is the first identifier and the number of nodes that have been processed consecutively is less than a first threshold, then the current node to be processed is directly encoded with a multi-way tree placeholder code without encoding the singlePointFlag of the current node to be processed. This reduces the encoding of a large number of singlePointFlags that are 0, thereby improving encoding efficiency.

[0199] Optionally, after obtaining the first mode identifier of the currently pending node, the processor 610 is further configured to implement:

[0200] If the first pattern identifier is the first identifier, and if the nodes that have been processed consecutively meet the second condition, the geometric isolated point pattern identifier corresponding to the current node to be processed is encoded.

[0201] Based on the geometric isolated point pattern identifier, set the first pattern identifier of the next node to be processed;

[0202] The second condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier being the first identifier, where only one child node is occupied, is greater than the fourth threshold.

[0203] Optionally, the processor 610 is configured to implement at least one of the following:

[0204] If the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to a preset number of points, the first pattern identifier of the next node to be processed is set to the second identifier.

[0205] If the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the first pattern identifier of the next node to be processed is set to the first identifier.

[0206] Optionally, after encoding the geometric outlier pattern identifier corresponding to the currently processed node, the processor 610 is further configured to implement:

[0207] Based on the geometric isolated point pattern identifier, the first operation is performed on the current node to be processed;

[0208] The first operation includes: multi-way tree placeholder code encoding or isolated point direct encoding.

[0209] Optionally, after obtaining the first mode identifier of the currently pending node, the processor 610 is further configured to implement:

[0210] If the first mode identifier is the first identifier and the nodes that have been processed consecutively meet the fourth condition, the first mode identifier of the next node to be processed is set to the first identifier.

[0211] The fourth condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier as the first identifier, where only one child node is occupied, is less than or equal to the fourth threshold.

[0212] Optionally, the processor 610 is also used to implement:

[0213] The current node to be processed is encoded with a multi-way tree placeholder code.

[0214] Optionally, after obtaining the first mode identifier of the currently processed node, the processor 610 is further configured to implement:

[0215] When the first pattern identifier is the second identifier, the geometric isolated point pattern identifier corresponding to the current node to be processed is encoded.

[0216] Based on the geometric isolated point pattern identifier, the first operation is performed on the current node to be processed;

[0217] The first operation includes: multi-way tree placeholder code encoding or isolated point direct encoding.

[0218] Optionally, the processor 610 is configured to implement at least one of the following:

[0219] When the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to a preset number of points, the current node to be processed is directly encoded as an isolated point;

[0220] When the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the current node to be processed is encoded with a multi-way tree placeholder code.

[0221] Optionally, when the first mode identifier is the second identifier, after the processor 610 performs the first operation on the current node to be processed according to the geometric isolated point mode identifier, the processor 610 is further configured to implement:

[0222] If the nodes that have been processed consecutively meet the third condition, the first mode identifier of the next node to be processed is set according to the number of nodes whose number of points is less than or equal to the preset number of points.

[0223] The third condition includes: the first pattern identifier of the nodes that have been processed continuously is the second identifier, and the number of nodes that have been processed continuously is equal to the second threshold.

[0224] Optionally, the processor 610 is configured to implement at least one of the following:

[0225] If the number of processed nodes containing fewer than or equal to a preset number of points exceeds the third threshold, the first mode identifier of the next node to be processed is set to the second identifier.

[0226] If the number of processed nodes containing fewer than or equal to a preset number of points is less than or equal to a third threshold, the first mode identifier of the next node to be processed is set to the first identifier.

[0227] Optionally, before retrieving the current node to be processed from the target queue, the processor 610 is further configured to implement:

[0228] Set the first pattern identifier of the root node to the second identifier.

[0229] Optionally, the processor 610 is used to implement:

[0230] The outlier encoding condition is determined for the current node to be processed;

[0231] If the current node to be processed meets the outlier coding condition, then the first mode identifier of the current node to be processed is obtained.

[0232] Optionally, the out-of-place encoding conditions include:

[0233] The isolated point direct encoding mode identifier in the geometric head information corresponding to the current node to be processed is a preset value;

[0234] The sum of the Morton code bits of the points in the current node to be processed is greater than a preset multiple of a first value. The first value is the number of first target side lengths in the spatial block corresponding to the current node to be processed. The first target side length includes the side length in a preset direction, and the first target side length is less than the minimum side length in the preset direction.

[0235] Preferably, this application embodiment also provides an encoding control device, including a processor, a memory, and a program or instructions stored in the memory and executable on the processor. When the program or instructions are executed by the processor, they implement the various processes of the encoding control method embodiment and achieve the same technical effect. To avoid repetition, they will not be described again here.

[0236] This application also provides a readable storage medium storing a program or instructions. When executed by a processor, the program or instructions implement the various processes of the coded control method embodiment and achieve the same technical effect. To avoid repetition, further details are omitted here. The computer-readable storage medium may include read-only memory (ROM), random access memory (RAM), magnetic disk, or optical disk.

[0237] like Figure 7 As shown in the embodiments of this application, a decoding control method is also provided, including:

[0238] Step 701: Obtain the current node to be processed in the target queue, wherein the target queue includes nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0239] Step 702: Obtain the first mode identifier of the currently pending node;

[0240] Step 703: If the first mode identifier is the first identifier, and if the nodes that have been processed consecutively meet the first condition, the multi-branch tree placeholder code is decoded for the current node to be processed.

[0241] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0242] Optionally, after obtaining the first mode identifier of the currently pending node, the method further includes:

[0243] If the first pattern identifier is the first identifier, and the nodes that have been processed consecutively meet the second condition, then decode the geometric isolated point pattern identifier corresponding to the current node to be processed.

[0244] Based on the geometric isolated point pattern identifier, set the first pattern identifier of the next node to be processed;

[0245] The second condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier being the first identifier, where only one child node is occupied, is greater than the fourth threshold.

[0246] Optionally, setting the first mode identifier of the next node to be processed based on the geometric isolated point mode identifier includes at least one of the following:

[0247] If the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to a preset number of points, the first pattern identifier of the next node to be processed is set to the second identifier.

[0248] If the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the first pattern identifier of the next node to be processed is set to the first identifier.

[0249] Optionally, after decoding the geometric isolated point pattern identifier corresponding to the currently processed node, the method further includes:

[0250] Based on the geometric isolated point pattern identifier, a second operation is performed on the current node to be processed;

[0251] The second operation includes: decoding of multi-way tree placeholder codes or direct decoding of isolated points.

[0252] Optionally, after obtaining the first mode identifier of the currently pending node, the method further includes:

[0253] If the first mode identifier is the first identifier and the nodes that have been processed consecutively meet the fourth condition, the first mode identifier of the next node to be processed is set to the first identifier.

[0254] The fourth condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier as the first identifier, where only one child node is occupied, is less than or equal to the fourth threshold.

[0255] Optionally, after setting the first mode identifier of the next node to be processed as the first identifier, the method further includes:

[0256] Decode the multi-way tree placeholder code for the current node to be processed.

[0257] Optionally, after obtaining the first mode identifier of the currently pending node, the method further includes:

[0258] If the first mode identifier is the second identifier, decode the geometric isolated point mode identifier corresponding to the current node to be processed;

[0259] Based on the geometric isolated point pattern identifier, a second operation is performed on the current node to be processed;

[0260] The second operation includes: decoding of multi-way tree placeholder codes or direct decoding of isolated points.

[0261] Optionally, the second operation on the current node to be processed based on the geometric isolated point pattern identifier includes at least one of the following:

[0262] When the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to a preset number of points, the current node to be processed is directly decoded as an isolated point;

[0263] When the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the multi-way tree placeholder code decoding is performed on the current node to be processed.

[0264] Optionally, if the first pattern identifier is the second identifier, after performing the second operation on the current node to be processed based on the geometric isolated point pattern identifier, the method further includes:

[0265] If the nodes that have been processed consecutively meet the third condition, the first mode identifier of the next node to be processed is set according to the number of nodes whose number of points is less than or equal to the preset number of points.

[0266] The third condition includes: the first pattern identifier of the nodes that have been processed continuously is the second identifier, and the number of nodes that have been processed continuously is equal to the second threshold.

[0267] Optionally, setting the first mode identifier of the next node to be processed based on the number of processed nodes whose number of points is less than or equal to a preset number of points includes at least one of the following:

[0268] If the number of processed nodes containing fewer than or equal to a preset number of points exceeds the third threshold, the first mode identifier of the next node to be processed is set to the second identifier.

[0269] If the number of processed nodes containing fewer than or equal to a preset number of points is less than or equal to a third threshold, the first mode identifier of the next node to be processed is set to the first identifier.

[0270] Optionally, before obtaining the current node to be processed from the target queue, the method further includes:

[0271] Set the first pattern identifier of the root node to the second identifier.

[0272] Optionally, obtaining the first mode identifier of the currently pending node includes:

[0273] Perform an outlier decoding condition determination on the current node to be processed;

[0274] If the current node to be processed meets the isolated point decoding conditions, then the first mode identifier of the current node to be processed is obtained.

[0275] Optionally, the isolated point decoding conditions include:

[0276] The isolated point direct encoding mode identifier in the geometric head information corresponding to the current node to be processed is a preset value;

[0277] The sum of the Morton code bits of the points in the current node to be processed is greater than a preset multiple of a first value. The first value is the number of first target side lengths in the spatial block corresponding to the current node to be processed. The first target side length includes the side length in a preset direction, and the first target side length is less than the minimum side length in the preset direction.

[0278] It should be noted that the decoding end uses the same method to decode as the encoding end. For the specific implementation of the decoding end, please refer to the decoding end, which will not be repeated here.

[0279] like Figure 8 As shown, this application embodiment also provides a decoding control device 800, including:

[0280] The third acquisition module 801 is used to acquire the current node to be processed in the target queue, the target queue including nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0281] The fourth acquisition module 802 is used to acquire the first mode identifier of the currently pending node;

[0282] The first decoding module 803 is used to decode the multi-branch tree placeholder code of the current node to be processed if the nodes that have been processed continuously meet the first condition when the first mode identifier is the first identifier.

[0283] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0284] Optionally, after the fourth acquisition module 802 acquires the first mode identifier of the currently pending node, the method further includes:

[0285] The second decoding module is used to decode the geometric isolated point pattern identifier corresponding to the current node to be processed if the nodes that have been processed continuously meet the second condition when the first pattern identifier is the first identifier.

[0286] The fourth setting module is used to set the first mode identifier of the next node to be processed according to the geometric isolated point mode identifier;

[0287] The second condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier being the first identifier, where only one child node is occupied, is greater than the fourth threshold.

[0288] Optionally, the fourth setting module implements at least one of the following:

[0289] If the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to a preset number of points, the first pattern identifier of the next node to be processed is set to the second identifier.

[0290] If the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the first pattern identifier of the next node to be processed is set to the first identifier.

[0291] Optionally, after the second decoding module decodes the geometric isolated point pattern identifier corresponding to the current node to be processed, the method further includes:

[0292] The third processing module is used to perform a second operation on the current node to be processed based on the geometric isolated point pattern identifier;

[0293] The second operation includes: decoding of multi-way tree placeholder codes or direct decoding of isolated points.

[0294] Optionally, after the fourth acquisition module 802 acquires the first mode identifier of the currently pending node, the method further includes:

[0295] The eighth setting module is used to set the first mode identifier of the next node to be processed to the first identifier if the nodes that have been processed consecutively meet the fourth condition, when the first mode identifier is the first identifier.

[0296] The fourth condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier as the first identifier, where only one child node is occupied, is less than or equal to the fourth threshold.

[0297] Optionally, after the eighth setting module sets the first mode identifier of the next node to be processed to the first identifier, the method further includes:

[0298] The fourth decoding module is used to decode the multi-branch tree placeholder code of the current node to be processed.

[0299] Optionally, after the fourth acquisition module 802 acquires the first mode identifier of the currently pending node, the method further includes:

[0300] The third decoding module is used to decode the geometric isolated point pattern identifier corresponding to the current node to be processed when the first mode identifier is the second identifier.

[0301] The fourth processing module is used to perform a second operation on the current node to be processed based on the geometric isolated point pattern identifier.

[0302] The second operation includes: decoding of multi-way tree placeholder codes or direct decoding of isolated points.

[0303] Optionally, the implementation of performing the second operation on the current node to be processed based on the geometric isolated point pattern identifier includes at least one of the following:

[0304] When the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to a preset number of points, the current node to be processed is directly decoded as an isolated point;

[0305] When the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the multi-way tree placeholder code decoding is performed on the current node to be processed.

[0306] Optionally, after the fourth processing module performs the second operation on the current node to be processed based on the geometric isolated point pattern identifier, the method further includes:

[0307] The fifth setting module is used to set the first mode identifier of the next node to be processed if the nodes that have been processed continuously meet the third condition, based on the number of nodes whose number of points is less than or equal to the preset number of points.

[0308] The third condition includes: the first pattern identifier of the nodes that have been processed continuously is the second identifier, and the number of nodes that have been processed continuously is equal to the second threshold.

[0309] Optionally, the fifth setting module implements at least one of the following:

[0310] If the number of processed nodes containing fewer than or equal to a preset number of points exceeds the third threshold, the first mode identifier of the next node to be processed is set to the second identifier.

[0311] If the number of processed nodes containing fewer than or equal to a preset number of points is less than or equal to a third threshold, the first mode identifier of the next node to be processed is set to the first identifier.

[0312] Optionally, before obtaining the current node to be processed from the target queue, the method further includes:

[0313] The sixth setting module is used to set the first mode identifier of the root node to the second identifier.

[0314] Optionally, the fourth acquisition module 802 includes:

[0315] The second determination unit is used to determine the isolated point decoding condition of the current node to be processed.

[0316] The second acquisition unit is used to acquire the first mode identifier of the current node to be processed if the current node to be processed satisfies the isolated point decoding condition.

[0317] Optionally, the isolated point decoding conditions include:

[0318] The isolated point direct encoding mode identifier in the geometric head information corresponding to the current node to be processed is a preset value;

[0319] The sum of the Morton code bits of the points in the current node to be processed is greater than a preset multiple of a first value. The first value is the number of first target side lengths in the spatial block corresponding to the current node to be processed. The first target side length includes the side length in a preset direction, and the first target side length is less than the minimum side length in the preset direction.

[0320] It should be noted that this device embodiment is a device corresponding to the above method. All implementation methods in the above method embodiments are applicable to this device embodiment and can achieve the same technical effect, so they will not be described again here.

[0321] Preferably, this application embodiment also provides a decoding control device, including a processor, a memory, and a program or instructions stored in the memory and executable on the processor. When the program or instructions are executed by the processor, they implement the various processes of the decoding control method embodiment and achieve the same technical effect. To avoid repetition, they will not be described again here.

[0322] This application also provides a readable storage medium on which a program or instruction is stored. When the program or instruction is executed by a processor, it implements the various processes of the decoding control method embodiment and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0323] The computer-readable storage medium mentioned above includes, for example, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

[0324] This application embodiment also provides a decoding control device, including a processor and a communication interface. The processor is used to obtain the currently pending node in the target queue, the target queue including nodes whose corresponding space blocks in the constructed tree structure are occupied.

[0325] Obtain the first mode identifier of the currently pending node;

[0326] When the first mode identifier is the first identifier, if the nodes that have been processed consecutively meet the first condition, the multi-branch tree placeholder code is decoded for the current node to be processed.

[0327] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0328] This decoding control device embodiment corresponds to the above-described decoding control method embodiment. All implementation processes and methods of the above-described method embodiment can be applied to this decoding control device embodiment and can achieve the same technical effect.

[0329] Specifically, this application embodiment also provides a decoding control device, the structure of which is similar to... Figure 6 The structure of the encoding control device shown is similar, and will not be described in detail here.

[0330] Optionally, the processor is used to implement:

[0331] Obtain the currently pending node from the target queue, which includes nodes whose corresponding space blocks in the constructed tree structure are occupied;

[0332] Obtain the first mode identifier of the currently pending node;

[0333] When the first mode identifier is the first identifier, if the nodes that have been processed consecutively meet the first condition, the multi-branch tree placeholder code is decoded for the current node to be processed.

[0334] The first condition includes: the pattern identifier of the nodes that have been processed continuously is a first identifier and the number of nodes that have been processed continuously is less than a first threshold.

[0335] Optionally, after obtaining the first mode identifier of the currently pending node, the processor is further configured to implement:

[0336] If the first pattern identifier is the first identifier, and the nodes that have been processed consecutively meet the second condition, then decode the geometric isolated point pattern identifier corresponding to the current node to be processed.

[0337] Based on the geometric isolated point pattern identifier, set the first pattern identifier of the next node to be processed;

[0338] The second condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier being the first identifier, where only one child node is occupied, is greater than the fourth threshold.

[0339] Optionally, the processor is used to implement at least one of the following:

[0340] If the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to a preset number of points, the first pattern identifier of the next node to be processed is set to the second identifier.

[0341] If the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the first pattern identifier of the next node to be processed is set to the first identifier.

[0342] Optionally, after decoding the geometric outlier pattern identifier corresponding to the currently processed node, the processor is further configured to implement:

[0343] Based on the geometric isolated point pattern identifier, a second operation is performed on the current node to be processed;

[0344] The second operation includes: decoding of multi-way tree placeholder codes or direct decoding of isolated points.

[0345] Optionally, after obtaining the first mode identifier of the currently pending node, the processor is further configured to implement:

[0346] If the first mode identifier is the first identifier and the nodes that have been processed consecutively meet the fourth condition, the first mode identifier of the next node to be processed is set to the first identifier.

[0347] The fourth condition includes: the first pattern identifier of the nodes that have been processed continuously is the first identifier; the number of nodes that have been processed continuously is equal to the first threshold; and the number of nodes among the nodes that have been processed continuously with the first pattern identifier as the first identifier, where only one child node is occupied, is less than or equal to the fourth threshold.

[0348] Optionally, after setting the first mode identifier of the next node to be processed as the first identifier, the processor is further configured to implement:

[0349] Decode the multi-way tree placeholder code for the current node to be processed.

[0350] Optionally, after obtaining the first mode identifier of the currently pending node, the processor may further be configured to implement:

[0351] If the first mode identifier is the second identifier, decode the geometric isolated point mode identifier corresponding to the current node to be processed;

[0352] Based on the geometric isolated point pattern identifier, a second operation is performed on the current node to be processed;

[0353] The second operation includes: decoding of multi-way tree placeholder codes or direct decoding of isolated points.

[0354] Optionally, the processor is used to implement at least one of the following:

[0355] When the geometric isolated point pattern identifier indicates that the current node to be processed is less than or equal to a preset number of points, the current node to be processed is directly decoded as an isolated point;

[0356] When the geometric isolated point pattern identifier indicates that the current node to be processed is greater than the preset number of points, the multi-way tree placeholder code decoding is performed on the current node to be processed.

[0357] Optionally, when the first mode identifier is the second identifier, after the processor performs the second operation on the current node to be processed according to the geometric isolated point mode identifier, the processor is further configured to implement:

[0358] If the nodes that have been processed consecutively meet the third condition, the first mode identifier of the next node to be processed is set according to the number of nodes whose number of points is less than or equal to the preset number of points.

[0359] The third condition includes: the first pattern identifier of the nodes that have been processed continuously is the second identifier, and the number of nodes that have been processed continuously is equal to the second threshold.

[0360] Optionally, the processor is used to implement:

[0361] If the number of processed nodes containing fewer than or equal to a preset number of points exceeds the third threshold, the first mode identifier of the next node to be processed is set to the second identifier.

[0362] If the number of processed nodes containing fewer than or equal to a preset number of points is less than or equal to a third threshold, the first mode identifier of the next node to be processed is set to the first identifier.

[0363] Optionally, before retrieving the current node to be processed from the target queue, the processor is also configured to implement:

[0364] Set the first pattern identifier of the root node to the second identifier.

[0365] Optionally, the processor is used to implement:

[0366] Perform an outlier decoding condition determination on the current node to be processed;

[0367] If the current node to be processed meets the isolated point decoding conditions, then the first mode identifier of the current node to be processed is obtained.

[0368] Optionally, the isolated point decoding conditions include:

[0369] The isolated point direct encoding mode identifier in the geometric head information corresponding to the current node to be processed is a preset value;

[0370] The sum of the Morton code bits of the points in the current node to be processed is greater than a preset multiple of a first value. The first value is the number of first target side lengths in the spatial block corresponding to the current node to be processed. The first target side length includes the side length in a preset direction, and the first target side length is less than the minimum side length in the preset direction.

[0371] It should be noted that the encoding control device and the decoding control device mentioned in the embodiments of this application can be set in the same device, that is, the device can realize both encoding control function and decoding control function.

[0372] Optional, such as Figure 9 As shown, this application embodiment also provides a communication device 900, including a processor 901, a memory 902, and a program or instructions stored in the memory 902 and executable on the processor 901. For example, when the communication device 900 is an encoding control device, the program or instructions executed by the processor 901 implement the various processes of the above-described encoding control method embodiment and achieve the same technical effect. When the communication device 900 is a decoding control device, the program or instructions executed by the processor 901 implement the various processes of the above-described decoding control method embodiment and achieve the same technical effect. To avoid repetition, further details are omitted here.

[0373] This application embodiment also provides a chip, which includes a processor and a communication interface. The communication interface is coupled to the processor. The processor is used to run programs or instructions to implement the various processes of the above-described encoding control method or decoding control method embodiments, and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0374] It should be understood that the chip mentioned in the embodiments of this application may also be referred to as a system-on-a-chip, system chip, chip system, or system-on-a-chip, etc.

[0375] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element. Furthermore, it should be noted that the scope of the methods and apparatuses in the embodiments of this application is not limited to performing functions in the order shown or discussed, but may also include performing functions substantially simultaneously or in the reverse order, depending on the functions involved. For example, the described methods may be performed in a different order than described, and various steps may be added, omitted, or combined. Additionally, features described with reference to certain examples may be combined in other examples.

[0376] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0377] The embodiments of this application have been described above with reference to the accompanying drawings. However, this application is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other forms under the guidance of this application without departing from the spirit and scope of the claims, and all of these forms are within the protection scope of this application.

Claims

1. A coding control method, characterized in that, include: Obtain the current node to be encoded from the target queue, which includes nodes whose corresponding space blocks in the constructed tree structure are occupied; Obtain the first mode identifier of the current node to be encoded. The first mode identifier is used to indicate whether to encode the geometric isolated point mode identifier of some nodes that meet the prior conditions of isolated point encoding mode. The geometric isolated point mode identifier is used to indicate whether to enable isolated point encoding. When the first pattern identifier of the current node to be encoded is the first identifier, if the encoded node satisfies the first condition, the current node to be encoded is octree encoded. The first identifier is used to indicate that the geometric isolated point pattern identifiers of some nodes that satisfy the prior conditions of the isolated point encoding pattern are encoded. The nodes in the tree structure are encoded in a given order, and the first condition includes: the number of nodes whose corresponding first pattern identifier is the first identifier among the octree encoded nodes is less than a first threshold.

2. The method according to claim 1, characterized in that, After obtaining the first mode identifier of the current node to be encoded, the method further includes: If the first pattern identifier is the first identifier, and the encoded node meets the second condition, the geometric isolated point pattern identifier corresponding to the current node to be encoded is encoded. The second condition includes: the number of nodes whose corresponding first pattern identifier is the first identifier in the octree-encoded nodes is equal to the first threshold and the number of nodes whose only child node is occupied is greater than the fourth threshold.

3. The method according to claim 2, characterized in that, Also includes: Based on the geometric isolated point pattern identifier, set the first pattern identifier of the next node to be encoded.

4. The method according to claim 2, characterized in that, The step of setting the first pattern identifier of the next node to be encoded based on the geometric isolated point pattern identifier includes at least one of the following: When the geometric isolated point pattern identifier indicates that the number of points contained in the current node to be encoded is less than or equal to a preset number of points, the first pattern identifier of the next node to be encoded is set to the second identifier. The second identifier is used to indicate that the geometric isolated point pattern identifiers of all nodes that satisfy the prior conditions of the isolated point encoding pattern are encoded. If the geometric isolated point pattern identifier indicates that the number of points contained in the current node to be encoded is greater than the preset number of points, the first pattern identifier of the next node to be encoded is set to the first identifier.

5. The method according to claim 2, characterized in that, After encoding the geometric isolated point pattern identifier corresponding to the current node to be encoded, the method further includes: Based on the geometric isolated point pattern identifier, the first operation is performed on the current node to be encoded; The first operation includes: octree coding or direct coding of isolated points; or, After obtaining the first mode identifier of the current node to be encoded, the method further includes: If the first mode identifier is the first identifier and the already encoded node meets the fourth condition, the first mode identifier of the next node to be encoded is set to the first identifier; The fourth condition includes: the number of nodes whose first pattern identifier is equal to the first identifier among the nodes that have been octree encoded is less than or equal to the fourth threshold and the number of nodes whose only child node is occupied is less than or equal to the fourth threshold.

6. The method according to claim 5, characterized in that, After setting the first mode identifier of the next node to be encoded as the first identifier, the method further includes: Perform octree encoding on the current node to be encoded.

7. The method according to claim 1, characterized in that, After obtaining the first mode identifier of the current node to be encoded, the method further includes: When the first pattern identifier is the second identifier, the geometric isolated point pattern identifier corresponding to the current node to be encoded is encoded. Based on the geometric isolated point pattern identifier, the first operation is performed on the current node to be encoded; The first operation includes: octree encoding or direct encoding of isolated points.

8. The method according to claim 5 or 7, characterized in that, The first operation performed on the current node to be encoded based on the geometric isolated point pattern identifier includes at least one of the following: When the geometric isolated point pattern identifier indicates that the current node to be encoded is less than or equal to a preset number of points, the current node to be encoded is directly encoded as an isolated point; When the geometric isolated point pattern identifier indicates that the current node to be encoded is greater than the preset number of points, the current node to be encoded is octree encoded.

9. The method according to claim 7, characterized in that, After performing the first operation on the current node to be encoded based on the geometric isolated point pattern identifier, the method further includes: If the nodes that have been continuously encoded meet the third condition, the first mode identifier of the next node to be encoded is set according to the number of nodes whose number of encoded points is less than or equal to the preset number of points. The third condition includes: the first pattern identifier of the nodes that have been continuously encoded is the second identifier and the number of nodes that have been continuously encoded is equal to the second threshold.

10. The method according to claim 9, characterized in that, The step of setting the first mode identifier of the next node to be encoded based on the number of encoded nodes whose number of points is less than or equal to a preset number of points includes at least one of the following: If the number of encoded nodes containing fewer than or equal to a preset number of points exceeds a third threshold, the first pattern identifier of the next node to be encoded is set to the second identifier. If the number of encoded nodes with a number of points less than or equal to the preset number of points is less than or equal to the third threshold, the first pattern identifier of the next node to be encoded is set to the first identifier.

11. The method according to claim 1, characterized in that, Before retrieving the current node to be encoded from the target queue, the method further includes: Set the first pattern identifier of the root node to the second identifier.

12. The method according to claim 1, characterized in that, The process of obtaining the first mode identifier of the current node to be encoded includes: Perform prior condition determination of the isolated point encoding mode for the current node to be encoded; If the current node to be encoded satisfies the prior conditions of the isolated point encoding mode, then the first mode identifier of the current node to be encoded is obtained.

13. The method according to claim 12, characterized in that, The prior conditions for the isolated point coding pattern include: The isolated point direct encoding mode identifier in the geometric head information corresponding to the current node to be encoded is a preset value; The sum of the Morton code bits of the points in the current node to be encoded is greater than a preset multiple of a first value. The first value is the number of first target side lengths in the spatial block corresponding to the current node to be encoded. The first target side length includes the side length in a preset direction, and the first target side length is less than the minimum side length in the preset direction.

14. A decoding control method, characterized in that, include: Obtain the current node to be decoded from the target queue, which includes nodes whose corresponding space blocks in the constructed tree structure are occupied; Obtain the first mode identifier of the current node to be decoded. The first mode identifier is used to indicate whether to decode the geometric isolated point mode identifier of some nodes that meet the prior conditions of the isolated point decoding mode. The geometric isolated point mode identifier is used to indicate whether to enable isolated point decoding. When the first mode identifier of the current node to be decoded is the first identifier, if the decoded node satisfies the first condition, the current node to be decoded is octree decoded. The first identifier is used to indicate that the geometric isolated point mode identifiers of some nodes that satisfy the a priori conditions of the isolated point decoding mode are decoded. The nodes in the tree structure are decoded in a given order, and the first condition includes: the number of nodes whose first mode identifier is the first identifier among the nodes that have been decoded in the octree is less than a first threshold.

15. The method according to claim 14, characterized in that, After obtaining the first mode identifier of the currently decoded node, the method further includes: If the first pattern identifier is the first identifier, and the decoded node satisfies the second condition, then decode the geometric isolated point pattern identifier corresponding to the current node to be decoded; The second condition includes: the number of nodes whose first mode identifier is the first identifier in the octree decoding nodes is equal to the first threshold and the number of nodes whose only child node is occupied is greater than the fourth threshold.

16. The method according to claim 15, characterized in that, Also includes: Based on the geometric isolated point pattern identifier, set the first pattern identifier of the next node to be decoded.

17. The method according to claim 15, characterized in that, The step of setting the first mode identifier of the next node to be decoded based on the geometric isolated point mode identifier includes at least one of the following: When the geometric isolated point pattern identifier indicates that the number of points contained in the current node to be decoded is less than or equal to a preset number of points, the first pattern identifier of the next node to be decoded is set to the second identifier. The second identifier is used to indicate that the geometric isolated point pattern identifiers of all nodes that satisfy the prior conditions of the isolated point decoding pattern are decoded. If the geometric isolated point pattern identifier indicates that the number of points contained in the current node to be decoded is greater than the preset number of points, the first pattern identifier of the next node to be decoded is set to the first identifier.

18. The method according to claim 15, characterized in that, After decoding the geometric isolated point pattern identifier corresponding to the currently decoded node, the method further includes: Based on the geometric isolated point pattern identifier, a second operation is performed on the current node to be decoded; The second operation includes: octree decoding or direct decoding of isolated points; or, After obtaining the first mode identifier of the currently decoded node, the method further includes: If the first mode identifier is the first identifier, and the decoded node meets the fourth condition, then the first mode identifier of the next node to be decoded is set to the first identifier. The fourth condition includes: the number of nodes whose first mode identifier is the first identifier among the nodes that have been decoded into an octree is equal to the first threshold and the number of nodes whose only child node is occupied is less than or equal to the fourth threshold.

19. The method according to claim 18, characterized in that, After setting the first mode identifier of the next node to be decoded to the first identifier, the method further includes: Perform octree decoding on the current node to be decoded.

20. The method according to claim 14, characterized in that, After obtaining the first mode identifier of the currently decoded node, the method further includes: If the first mode identifier is the second identifier, decode the geometric isolated point mode identifier corresponding to the current node to be decoded; Based on the geometric isolated point pattern identifier, a second operation is performed on the current node to be decoded; The second operation includes either octree decoding or direct decoding of isolated points.

21. The method according to claim 18 or 20, characterized in that, The second operation performed on the current node to be decoded based on the geometric isolated point pattern identifier includes at least one of the following: When the geometric isolated point pattern identifier indicates that the current node to be decoded is less than or equal to a preset number of points, the current node to be decoded is directly decoded as an isolated point; When the geometric isolated point pattern identifier indicates that the current node to be decoded is greater than a preset number of points, octree decoding is performed on the current node to be decoded.

22. The method according to claim 20, characterized in that, After performing the second operation on the current node to be decoded based on the geometric isolated point pattern identifier, the method further includes: If the nodes that have been continuously decoded meet the third condition, set the first mode identifier of the next node to be decoded according to the number of nodes whose number of decoded points is less than or equal to the preset number of points. The third condition includes: the first mode identifier of the continuously decoded node is the second identifier and the number of continuously decoded nodes is equal to the second threshold.

23. The method according to claim 22, characterized in that, The step of setting the first mode identifier of the next node to be decoded based on the number of decoded nodes whose number of points is less than or equal to a preset number of points includes at least one of the following: If the number of decoded nodes containing fewer than or equal to a preset number of points exceeds a third threshold, the first mode identifier of the next node to be decoded is set to the second identifier. If the number of decoded nodes containing fewer than or equal to a preset number of points is less than or equal to a third threshold, the first mode identifier of the next node to be decoded is set to the first identifier.

24. The method according to claim 14, characterized in that, Before obtaining the current node to be decoded from the target queue, the method further includes: Set the first pattern identifier of the root node to the second identifier.

25. The method according to claim 14, characterized in that, The step of obtaining the first mode identifier of the current node to be decoded includes: Perform prior condition determination for the isolated point decoding mode on the current node to be decoded; If the current node to be decoded satisfies the prior conditions of the isolated point decoding mode, then the first mode identifier of the current node to be decoded is obtained.

26. The method according to claim 25, characterized in that, The prior conditions for the isolated point decoding mode include: The isolated point direct encoding mode identifier in the geometric header information corresponding to the current node to be decoded is a preset value; The sum of the Morton code bits of the points in the current node to be decoded is greater than a preset multiple of a first value. The first value is the number of first target side lengths in the spatial block corresponding to the current node to be decoded. The first target side length includes the side length in a preset direction, and the first target side length is less than the minimum side length in the preset direction.

27. A coding control device, characterized in that, include: The first acquisition module is used to acquire the current node to be encoded in the target queue, the target queue including nodes whose corresponding space blocks in the constructed tree structure are occupied; The second acquisition module is used to acquire the first mode identifier of the current node to be encoded. The first mode identifier is used to indicate whether to encode the geometric isolated point mode identifier of some nodes that meet the prior conditions of isolated point encoding mode. The geometric isolated point mode identifier is used to indicate whether to enable isolated point encoding. The first encoding module is used to perform octree encoding on the current node to be encoded if the first mode identifier of the current node to be encoded is the first identifier and if the encoded node meets the first condition. The nodes in the tree structure are encoded in a given order, and the first condition includes: the number of nodes whose corresponding first pattern identifier is the first identifier among the octree encoded nodes is less than a first threshold.

28. A coding control device, characterized in that, It includes a processor, a memory, and a program or instructions stored in the memory and executable on the processor, wherein the program or instructions, when executed by the processor, implement the steps of the encoding control method as described in any one of claims 1 to 13.

29. A decoding control device, characterized in that, include: The third acquisition module is used to acquire the current node to be decoded in the target queue, the target queue including nodes whose corresponding space blocks in the constructed tree structure are occupied; The fourth acquisition module is used to acquire the first mode identifier of the current node to be decoded. The first mode identifier is used to indicate whether to decode the geometric isolated point mode identifier of some nodes that meet the prior conditions of the isolated point decoding mode. The geometric isolated point mode identifier is used to indicate whether to enable isolated point decoding. The first decoding module is used to perform octree decoding on the current node to be decoded if the first mode identifier of the current node to be decoded is the first identifier and the decoded node satisfies the first condition. The first identifier is used to indicate that the geometric isolated point mode identifiers of some nodes that satisfy the a priori conditions of the isolated point decoding mode are decoded. The nodes in the tree structure are decoded in a given order, and the first condition includes: the number of nodes whose first mode identifier is the first identifier among the nodes that have been decoded in the octree is less than a first threshold.

30. A decoding control device, characterized in that, It includes a processor, a memory, and a program or instructions stored in the memory and executable on the processor, wherein the program or instructions, when executed by the processor, implement the steps of the decoding control method as described in any one of claims 14 to 26.

31. A readable storage medium, characterized in that, The readable storage medium stores a program or instructions that, when executed by a processor, implement the steps of the encoding control method as described in any one of claims 1 to 13 or the decoding control method as described in any one of claims 14 to 26.

Citation Information

Patent Citations

  • Point cloud encoding and decoding method and device

    CN112740707A