Geometric mode determination method and apparatus, device, and storage medium

CN116320503BActive Publication Date: 2026-10-30TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310283064.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-14
Publication Date
2026-10-30
Estimated Expiration
2043-03-14

AI Technical Summary

Technical Problem

[0004]然而,对于具有特殊几何模式的点云数据来说,相关技术中的基于八叉树的编码效率较低

Benefits of technology

[0042]通过获取第一节点的几何信息,再根据该几何信息判定当前节点的几何模式,结合了八叉树划分过程中的几何信息,优化了对当前节点的几何模式的判定,从而提高了对点云数据编解码的效率。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116320503B_ABST
    Figure CN116320503B_ABST
Patent Text Reader

Abstract

The application discloses a geometry mode determination method and device, equipment and a storage medium, and relates to the technical field of point cloud coding. The method comprises the following steps: acquiring geometry information of a first node; and determining a geometry mode of a current node according to the geometry information of the first node, wherein the current node is a node to be decoded currently; wherein the first node is at least one of the following nodes: a reference node; a child node of the reference node; a decoded child node of the current node; and a to-be-decoded child node of the current node. According to the application, the determination of the geometry mode of the current node is optimized by using the geometry information of the first node, and the coding and decoding efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of point cloud encoding and decoding technology, and in particular to a method, apparatus, device and storage medium for determining geometric patterns. Background Technology

[0002] A point cloud is a set of points in 3D (3D) space, each point having associated properties such as color and material. Point clouds can be used to reconstruct an object or scene from this set of points.

[0003] In related technologies, point cloud data is primarily encoded using octrees. For point cloud data in three-dimensional (3D) space, the octree partitioning method involves uniformly dividing a pre-defined bounding box hierarchically. Each node has eight child nodes, and the occupancy of each child node is indicated by '1' and '0'. During octree-based encoding, the 3D coordinate information of the point cloud data is converted into corresponding Morton codes by querying a Morton sequence table. Based on the order of each Morton code, the corresponding point at each level of the octree is obtained.

[0004] However, for point cloud data with special geometric patterns, octree-based coding in related technologies is inefficient. Summary of the Invention

[0005] This application provides a method, apparatus, device, and storage medium for determining geometric patterns, which can optimize the decoding end's determination of the geometric patterns of nodes, thereby improving encoding and decoding efficiency. The technical solution is as follows:

[0006] According to one aspect of the embodiments of this application, a method for determining a geometric pattern is provided, the method being applied at a decoding end, the method comprising:

[0007] Obtain the geometric information of the first node;

[0008] Based on the geometric information of the first node, the geometric pattern of the current node is determined, and the current node is the node to be decoded.

[0009] The first node is at least one of the following nodes:

[0010] Reference node;

[0011] The child nodes of the reference node;

[0012] The decoded child nodes of the current node;

[0013] The child node to be decoded of the current node.

[0014] According to one aspect of the embodiments of this application, a method for determining a geometric pattern is provided, the method being applied at an encoding end, the method comprising:

[0015] Obtain the geometric information of the first node;

[0016] Based on the geometric information of the first node, the geometric pattern of the current node is determined, wherein the current node is the node to be encoded.

[0017] The first node is at least one of the following nodes:

[0018] Reference node;

[0019] The child nodes of the reference node;

[0020] The decoded child nodes of the current node;

[0021] The child node to be decoded of the current node.

[0022] According to one aspect of the embodiments of this application, a geometric pattern determination device is provided, the device being implementable as a decoding end, the device comprising:

[0023] The acquisition module is used to acquire the geometric information of the first node;

[0024] The determining module is used to determine the geometric pattern of the current node based on the geometric information of the first node, wherein the current node is the node to be decoded.

[0025] The first node is at least one of the following nodes:

[0026] Reference node;

[0027] The child nodes of the reference node;

[0028] The decoded child nodes of the current node;

[0029] The child node to be decoded of the current node.

[0030] According to one aspect of the embodiments of this application, a geometric pattern determination device is provided, the device being implementable as an encoding end, the device comprising:

[0031] The acquisition module is used to acquire the geometric information of the first node;

[0032] The determining module is used to determine the geometric pattern of the current node based on the geometric information of the first node, wherein the current node is the node to be encoded.

[0033] The first node is at least one of the following nodes:

[0034] Reference node;

[0035] The child nodes of the reference node;

[0036] The decoded child nodes of the current node;

[0037] The child node to be decoded of the current node.

[0038] According to one aspect of the embodiments of this application, a computer device is provided, the computer device including a processor and a memory, the memory storing at least one program, the at least one program being loaded and executed by the processor to implement the above-described method for determining geometric patterns.

[0039] According to one aspect of the embodiments of this application, a computer-readable storage medium is provided, the storage medium storing at least one program, the at least one program being loaded and executed by a processor to implement the above-described method for determining geometric patterns.

[0040] According to one aspect of the embodiments of this application, a computer program product or computer program is provided, the computer program product or computer program including computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, causing the computer device to perform the above-described method for determining the geometric pattern.

[0041] The technical solutions provided in this application have at least the following beneficial effects:

[0042] By acquiring the geometric information of the first node and then determining the geometric pattern of the current node based on that information, the determination of the geometric pattern of the current node is optimized by combining the geometric information from the octree partitioning process, thereby improving the efficiency of point cloud data encoding and decoding. Attached Figure Description

[0043] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0044] Figure 1 This is a framework diagram of a point cloud application provided in one embodiment of this application;

[0045] Figure 2 This is a schematic diagram of a point cloud coding framework provided in one embodiment of this application;

[0046] Figure 3This is a schematic diagram of a point cloud bounding box provided in one embodiment of this application;

[0047] Figure 4 This is a schematic diagram of a node space provided in one embodiment of this application;

[0048] Figure 5 This is a schematic diagram of an octree encoding provided in one embodiment of this application;

[0049] Figure 6 This is a schematic diagram of block structure encoding provided in one embodiment of this application;

[0050] Figure 7 This is a simplified block diagram of a communication system provided in one embodiment of this application;

[0051] Figure 8 This is a schematic diagram illustrating the placement of a point cloud encoder and a point cloud decoder in a streaming environment according to an embodiment of this application.

[0052] Figure 9 This is a flowchart of a method for determining a geometric pattern provided in one embodiment of this application;

[0053] Figure 10 This is a schematic diagram illustrating the order of selecting decoded nodes at fixed positions according to an embodiment of this application;

[0054] Figure 11 This is a flowchart of a method for determining a geometric pattern provided in another embodiment of this application;

[0055] Figure 12 This is a schematic diagram illustrating the positional relationship between a reference node, the decoded child nodes of the current node, and the child nodes to be decoded, according to an embodiment of this application.

[0056] Figure 13 This is a flowchart of a method for determining a geometric pattern provided in another embodiment of this application;

[0057] Figure 14 This is a flowchart of a reference node selection method provided in one embodiment of this application;

[0058] Figure 15 This is a flowchart of a reference node selection method provided in another embodiment of this application;

[0059] Figure 16 This is a flowchart of a method for determining a geometric pattern provided in another embodiment of this application;

[0060] Figure 17 This is a block diagram of a geometric pattern determination device provided in one embodiment of this application;

[0061] Figure 18This is a block diagram of a geometric pattern determination device provided in one embodiment of this application;

[0062] Figure 19 This is a schematic diagram of the structure of a computer device provided in one embodiment of this application. Detailed Implementation

[0063] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0064] Before describing the embodiments of this application, we will first introduce the background knowledge involved in the embodiments of this application.

[0065] A point cloud is a set of randomly distributed discrete points in space that represent the spatial structure and surface properties of a three-dimensional object or scene. Each point in a point cloud has at least three-dimensional positional information and, depending on the application, may also have color, material, or other information. Typically, each point in a point cloud has the same number of additional attributes.

[0066] Point clouds can flexibly and conveniently represent the spatial structure and surface properties of three-dimensional objects or scenes, and therefore have a wide range of applications. Their main application scenarios can be classified into two categories:

[0067] a) Machine-perceived point clouds, such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, disaster relief robots, etc.

[0068] b) Point clouds perceived by the human eye, such as point cloud application scenarios in digital cultural heritage, free-viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.

[0069] Point cloud acquisition methods include, but are not limited to, computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes. 3D scanning can acquire point clouds of static real-world 3D objects or scenes, with a capacity of millions of point clouds per second. 3D photography can acquire point clouds of dynamic real-world 3D objects or scenes, with a capacity of tens of millions of point clouds per second. Furthermore, in the medical field, point clouds of biological tissues and organs can be obtained using magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information. These technologies have reduced the cost and time required for point cloud data acquisition and improved data accuracy. This transformation in point cloud data acquisition methods has made the acquisition of massive amounts of point cloud data possible. With the continuous accumulation of large-scale point cloud data, efficient storage, transmission, publication, sharing, and standardization of point cloud data have become crucial for point cloud applications.

[0070] Point cloud data can be classified into dense point clouds and sparse point clouds based on the method of data acquisition; and into static point clouds and dynamic point clouds based on the temporal type of the data.

[0071] Please refer to Figure 1 This diagram illustrates a point cloud application framework based on an embodiment of this application. Taking geometry-based point cloud compression (G-PCC) data as an example, in... Figure 1 In the process, at the transmitting end, a virtual scene (A) of the real world is captured by a set of cameras or a camera device 11 with multiple lenses and sensors. The acquisition result is source point cloud data (B). One or more point cloud frames are encoded by a G-PCC encoder 12 into an encoded G-PCC bitstream (E), including encoded geometric bitstreams and attribute bitstreams. Then, a file encapsulator 13 encapsulates one or more encoded bitstreams (E) into a media file (F) for file playback, or into a sequence (Fs) of initialization segments and media segments for streaming, according to a specific media container file format.

[0072] The file encapsulator 13 also includes metadata in the file or segment (Fs), which is transmitted to the user terminal through the transmission mechanism 14. The file encapsulator 15 on the user side decapsulates (Fs) to obtain one or more decapsulated encoded bit streams (E'), and decodes (E') through the G-PCC decoder 16 to obtain one or more decoded point cloud frames (D'). The rendering component 17 then presents the virtual scene (A') corresponding to one or more point cloud frames (D') on the display component 18.

[0073] Below, in conjunction with Figure 2 A brief introduction to point cloud coding technology. Figure 2 This is a schematic diagram of a point cloud coding framework provided in one embodiment of this application.

[0074] Point cloud data can be categorized into dense point clouds and sparse point clouds based on the data acquisition method; and into static point clouds and dynamic point clouds based on the time series type of the data.

[0075] Mainstream point cloud coding technologies can be categorized into geometric structure-based point cloud coding and projection-based point cloud coding, depending on the type of point cloud data. This introduction will use the G-PCC standard from the Moving Picture Experts Group (MPEG) and the Audio Video Coding Standard-Point Cloud Compression (AVS-PCC) standard from China's national digital audio and video coding standards as examples.

[0076] Both G-PCC and AVS-PCC are designed for static, sparse point clouds, and their encoding frameworks are largely the same. For example... Figure 2 As shown, point cloud encoding includes geometric structure encoding and attribute information encoding. The main operations and processing for geometric structure encoding are as follows:

[0077] S21, Pre-processing: This includes coordinate transformation and voxelization. Through scaling and translation operations, point cloud data in 3D space is converted into integer form, and its smallest geometric position is moved to the origin.

[0078] S22, Geometry encoding: Geometry encoding can include various modes and can be used under different conditions. For example, geometry encoding can include octree-based geometry encoding and triangulation-based geometry encoding, etc.

[0079] Octree-based geometric coding: An octree is a tree-like data structure used in 3D spatial partitioning to uniformly divide a predefined bounding box, with each node having eight child nodes. By using '1' and '0' to indicate whether each child node of the octree is occupied, occupancy code information is obtained as the bitstream of point cloud geometric information.

[0080] Trisoup-based geometric coding divides the point cloud into blocks of a certain size, locates the intersection points of the point cloud surface with the edges of the blocks, and constructs triangles. Geometric information is compressed by encoding the intersection points.

[0081] S23, Geometry quantization: The fineness of quantization is usually determined by the QP (Quantization Parameter). A larger QP value means that coefficients with a wider range of values ​​will be quantized into the same output, thus usually resulting in greater distortion and a lower bit rate. Conversely, a smaller QP value means that coefficients with a smaller range of values ​​will be quantized into the same output, thus usually resulting in less distortion and a higher bit rate. In point cloud encoding, quantization is performed directly on the coordinate information of the points.

[0082] S24, Geometric Entropy Encoding: Taking octree-based geometric coding as an example, statistical compression coding is performed on the occupancy code information of the octree, and finally the binary (0 or 1) compressed bitstream is output. Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal. A commonly used statistical coding method is CABAC (Content Adaptive Binary Arithmetic Coding).

[0083] The main operations and processing for attribute information encoding are as follows:

[0084] S25, Attribute Recoloring: In lossy encoding, after encoding the geometric information, the encoding end needs to decode and reconstruct the geometric information, that is, restore the coordinate information of each point in the 3D point cloud. Attribute information corresponding to one or more neighboring points in the original point cloud is used as the attribute information for the reconstructed point.

[0085] S26, Attribute Transform Coding: Attribute transformation coding includes three modes that can be used under different conditions.

[0086] Predicting Transform Coding: This method selects a subset of points based on distance, dividing the point cloud into multiple levels of detail (LoD) to achieve a point cloud representation that ranges from coarse to fine. Bottom-up prediction is possible between adjacent levels; that is, neighboring points in the coarse layer predict the attribute information of points introduced in the fine layer, obtaining the corresponding residual signal. The points at the bottom layer are encoded as reference information.

[0087] Lifting Transform: Based on the prediction of the neighboring layers of LoD, a weight update strategy for neighboring points is introduced to finally obtain the predicted attribute values ​​of each point and obtain the corresponding residual signal.

[0088] Region Adaptive Hierarchical Transform (RAHT): The attribute information is transformed by RAHT to convert the signal into the transform domain, which is called the transform coefficient.

[0089] S27, Attribute quantization: The fineness of quantization is usually determined by QP. In predictive transform coding and boosting transform coding, the residual values ​​are quantized and then entropy encoded; in RAHT, the transform coefficients are quantized and then entropy encoded.

[0090] S28, Attribute entropy coding: The quantized attribute residual signal or transform coefficients are generally compressed using run-length coding and arithmetic coding. The corresponding coding mode, quantization parameters, and other information are also encoded using an entropy encoder.

[0091] According to the above encoding process, at the decoding end, after obtaining the compressed bitstream, the decoder first performs entropy decoding to obtain various mode information, quantized geometric information, and attribute information. On one hand, the geometric information is dequantized to obtain the reconstructed 3D point position information. On the other hand, the attribute information is dequantized to obtain residual information, and the reference signal is confirmed according to the adopted transform mode to obtain the reconstructed attribute information. These are then matched one-to-one with the geometric information in sequence to generate the output reconstructed point cloud data.

[0092] Below, in conjunction with Figure 3 This paper provides a brief introduction to the preprocessing steps in point cloud coding technology. Figure 3 This is a schematic diagram of a point cloud bounding box provided in one embodiment of this application. The point cloud bounding box refers to the smallest cuboid containing all data points in the input point cloud; that is, Figure 3 The bounding box of the point cloud shown contains all the data points of the human-shaped point cloud shown, and the bounding box of the point cloud is the smallest cuboid among the cuboids that include all the data points of the point cloud.

[0093] In the preprocessing step, it is necessary to determine the origin and dimensions of the point cloud bounding box. The floating-point coordinates of the k-th data point of the input point cloud can be represented as (x... k y k , z k ); where k is an integer less than K, and K is the number of data points in the point cloud.

[0094] First, determine the maximum and minimum values ​​of the point cloud along each coordinate axis in the 3D coordinate system, obtained as follows:

[0095] x min =min(x 0 x 1 , ..., x k-1 )

[0096] y min =min(y 0 y 1 , ..., y k-1 )

[0097] z min =min(z) 0 , z1 , ..., z k-1 )

[0098] x max =max(x 0 x 1 , ..., x k-1 )

[0099] y max =max(y 0 y 1 , ..., y k-1 )

[0100] z max =max(z) 0 , z 1 , ..., z k-1 )

[0101] Wherein, the function min(s) 0 s 1 , ..., s k-1 The expression `max(s)` represents taking the minimum value of the current input. 0 s 1 , ..., s k -1 ) indicates taking the maximum value of the current input.

[0102] Next, calculate the origin (x) of the point cloud bounding box. origin y origin , z origin ), can be obtained in the following way:

[0103] x origin =int(floor(x) min ))

[0104] y origin =int(floor(y) min ))

[0105] z origin =int(floor(z) min ))

[0106] The function int(s) represents integer s, and the function floor(s) returns the largest integer value less than or equal to s.

[0107] Furthermore, the dimensions of the point cloud bounding box in the X, Y, and Z axes of the 3D coordinate system can be calculated as follows:

[0108] BoundingBoxSize x =int(x max -x origin)+1

[0109] BoundingBoxSize y =int(y max -y origin )+1

[0110] BoundingBoxSize z =int(Z max -z origin )+1

[0111] The function int(s) represents integer s.

[0112] The following explains some of the terms used in this application.

[0113] Node space: The point cloud data is divided according to the tree structure. The space of the point cloud corresponding to the nodes in the tree structure is the node space.

[0114] Figure 4 A schematic diagram of an octree node space provided in one embodiment of this application is shown. Figure 4 Using a right-handed coordinate system as an example, this paper illustrates the spatial position of child nodes of a node in the partitioning process of an octree. The node space is evenly divided into eight child node spaces to represent the eight child nodes of the node, and these eight child nodes are labeled respectively. Figure 4 This illustrates one possible implementation for labeling child nodes.

[0115] Low plane / high plane: will be as follows Figure 4 The octree node space shown is divided into a high plane and a low plane, which are relative to the coordinate axes.

[0116] For example, taking the division of the node space into a high plane and a low plane along the Z-axis as an example, child nodes 1, 3, 5, and 7 are located in the high plane, and child nodes 0, 2, 4, and 6 are located in the low plane; that is, child nodes 1, 3, 5, and 7 are child nodes of the high plane, and child nodes 0, 2, 4, and 6 are child nodes of the low plane. As another example, taking the division of the node space into a high plane and a low plane along the X-axis as an example, child nodes 0, 1, 2, and 3 are located in the low plane, and child nodes 4, 5, 6, and 7 are located in the high plane; as yet another example, taking the division of the node space into a high plane and a low plane along the Y-axis as an example, child nodes 0, 1, 4, and 5 are located in the low plane, and child nodes 2, 3, 6, and 7 are located in the high plane.

[0117] In some embodiments, when the current node is offset along the first coordinate axis and the second coordinate axis to select a reference node, the high plane and the low plane are divided along the third coordinate axis. For example, when the current node is offset along the XY direction to select a reference node, the high plane and the low plane are divided along the Z-axis.

[0118] It is important to note that Figure 4 The coordinate axis representation, high / low plane division method, and child node labeling method shown are only one possible case, and this application does not limit them.

[0119] Octree Encoding: An octree is a tree-like data structure, currently primarily used in G-PCC or AVS-PCC to partition point clouds. For point cloud data in 3D space, the octree partitioning method uniformly divides a pre-defined bounding box hierarchically, with each node having eight child nodes. Occupancy code information is obtained by using '1' and '0' indicators to indicate whether each child node is occupied, serving as the bitstream of the point cloud geometric information.

[0120] The octree construction is based on Morton's order, which involves converting the 3D coordinate information of point cloud data into corresponding Morton codes by querying the Morton order table. The corresponding points of each octree level are obtained according to the order of each Morton code. Currently, mainstream point cloud encoding techniques utilize octree partitioning to represent point cloud data, employing different processing flows for geometric and attribute information.

[0121] Figure 5 An octree encoding method provided in one embodiment of this application is illustrated. Figure 5 The left side shows a schematic diagram of the node space. Figure 5 The right side shows the corresponding octree encoding diagram; in the node space diagram, the shaded area indicates that it is occupied, and in the octree encoding diagram, the occupied area is represented by a solid black circle.

[0122] Figure 5 The entire cube on the left corresponds to node 21 in the first level of the octree on the right. The node space of this node is first divided into eight child node spaces. As shown in the figure, child nodes 0 and 7 are occupied, corresponding to the 0th child node 22 and the 7th child node 23 in the second level of the octree. Each occupied child node is further divided into eight child nodes to obtain the third level of the octree. As shown in the figure, the 4th child node 24 and the 5th child node 25 of the 0th child node 22 in the second level are occupied, and the 0th child node 26 and the 5th child node 27 of the 7th child node 23 in the second level are occupied, and so on.

[0123] By partitioning the tree into octrees, each occupied node can be encoded. For example, using binary encoding, 1 represents that the child node is occupied, and 0 represents that the child node is not occupied. Therefore, the encoding of node 21 in the first level is 10000001, the encoding of the 0th child node 22 in the second level is 00011000, the encoding of the 7th child node 23 in the second level is 10001000, and so on.

[0124] In addition, similar to octree coding are quadtree coding, binary tree coding, and so on. This application does not limit these.

[0125] Block-based coding: This method encodes a point cloud data structure after spatial partitioning using a tree-like data structure. It introduces a concept similar to coding blocks in video coding, dividing the 3D space into several... Non-overlapping coded macroblocks of varying sizes, each macroblock serving as a basic coding unit. Users can control the size of the 3D macroblocks by setting the octree partitioning depth *d* or by using the parameter *nodeSizeLog2*. When the octree partitions to the size of each node... And each node is encoded according to a macroblock (Largest Coding Unit, LCU) when the following conditions are met:

[0126] nodeSizeLog2>max(d x d y d z )

[0127] Figure 6 Taking a 2D quadtree as an example, a schematic diagram of a block structure encoding method provided in an embodiment of this application is shown. Figure 6 As shown, the encoding begins at the second level of the 2D quadtree partitioning and proceeds in macroblock order. Each macroblock can be viewed as a separate tree partitioning structure; that is, the left macroblock 31 and the right macroblock 32 are encoded separately.

[0128] In one possible implementation, each macroblock employs a breadth-first traversal, meaning it encodes data layer by layer from top to bottom. This block-based encoding method offers significant flexibility; different geometric encoding methods can be used for each macroblock based on its characteristics, and attribute encoding can be performed after the geometric encoding of a macroblock is complete. This eliminates the need to wait for the entire point cloud to be geometrically encoded before attribute encoding can begin.

[0129] Parent and child nodes: A parent node is located one level above the current node, and the current node's node space is all or part of the parent node's node space; a child node is located one level below the current node, and the child node's node space is all or part of the current node's node space. For example, Figure 5In the example, node 21 is the parent node of node 22, and node 26 is the child node of node 23; for example, node 26 and node 27 are child nodes of the same parent node (or sibling nodes, same level nodes, same degree nodes, etc.).

[0130] Neighbor nodes: These are other nodes that are adjacent to a given node. Examples include the node's parent node, its other child nodes, or other nodes that intersect with it. Neighbor nodes can be used in many octree algorithms, such as determining the spatial location of a node and querying adjacent data elements.

[0131] like Figure 7 The diagram illustrates a simplified block diagram of a communication system provided in one embodiment of this application. The communication system 200 includes a plurality of devices that can communicate with each other via, for example, a network 250. For example, the communication system 200 includes a first device 210 and a second device 220 interconnected via the network 250. Figure 7 In this embodiment, the first device 210 and the second device 220 perform unidirectional data transmission. For example, the first device 210 may encode point cloud data, such as a point cloud frame stream acquired by the first device 210, for transmission to the second device 220 via network 250. The encoded point cloud data is transmitted in the form of one or more encoded point cloud bitstreams (or point cloud bitstreams). The second device 220 may receive the encoded point cloud data from network 250, decode the encoded point cloud data to recover the point cloud data, and present the point cloud based on the recovered point cloud data. Unidirectional data transmission is common in applications such as media services.

[0132] In another embodiment, the communication system 200 includes a third device 230 and a fourth device 240 that perform bidirectional transmission of encoded point cloud data. For bidirectional data transmission, each of the third device 230 and the fourth device 240 can encode the point cloud data for transmission over the network 250 to the other device. Each of the third device 230 and the fourth device 240 can also receive encoded point cloud data transmitted by the other device, decode the encoded point cloud data to recover the point cloud data, and display the point cloud on an accessible display device based on the recovered point cloud data.

[0133] exist Figure 7In the embodiments described herein, the first device 210, the second device 220, the third device 230, and the fourth device 240 may be computer devices such as servers, personal computers, and smartphones, but the principles disclosed in this application are not limited to these. The embodiments of this application are applicable to personal computers (PCs), mobile phones, tablets, virtual reality / augmented reality devices, media players, and / or dedicated video conferencing equipment. Network 250 refers to any number of networks that transmit encoded point cloud data between the first device 210, the second device 220, the third device 230, and the fourth device 240, including, for example, wired and / or wireless communication networks. Communication network 250 may exchange data in circuit-switched and / or packet-switched channels. This network may include telecommunications networks, local area networks, wide area networks, and / or the Internet. For the purposes of this application, unless explained below, the architecture and topology of network 250 may be irrelevant to the operation of the disclosures herein.

[0134] As an example, Figure 8 The diagram illustrates the placement of a video encoder and a video decoder in a streaming environment. The subject matter disclosed in this application is equally applicable to other point cloud-supporting applications, including, for example, virtual 3D conferencing, digital TV, storing compressed point clouds on digital media including CDs (Compact Discs), DVDs (Digital Versatile Discs), memory sticks, etc.

[0135] The streaming system may include an acquisition subsystem 313, which may include a point cloud source 301 such as a 3D camera, which creates an uncompressed point cloud data stream 302. The point cloud data stream 302 is depicted as thick lines to emphasize the high data volume of the point cloud data stream, compared to encoded point cloud data 304 (or encoded point cloud bitstream). The point cloud data stream 302 may be processed by an electronic device 320, which includes a point cloud encoder 303 coupled to the point cloud source 301. The point cloud encoder 303 may include hardware, software, or a combination of hardware and software to implement or enforce aspects of the disclosed subject matter as described in more detail below. The encoded point cloud data 304 (or encoded point cloud bitstream) is depicted as thin lines to emphasize the lower data volume of the encoded point cloud data, compared to the point cloud data stream 302, and may be stored on a streaming server 305 for future use. One or more streaming client subsystems, such as... Figure 3Client subsystems 306 and 308 can access streaming server 305 to retrieve copies 307 and 309 of encoded point cloud data 304. Client subsystem 306 may include, for example, a point cloud decoder 310 in electronic device 330. Point cloud decoder 310 decodes the incoming copy 307 of the encoded point cloud data and produces an output point cloud data stream 311 that can be displayed on display 312 (e.g., a display screen) or another presentation device (not depicted). In some streaming systems, the encoded point cloud data 304, point cloud data 307, and point cloud data 309 (e.g., point cloud bitstream) may be encoded according to certain point cloud encoding / compression standards.

[0136] It should be noted that electronic devices 320 and 330 may include other components (not shown). For example, electronic device 320 may include a point cloud decoder (not shown), and electronic device 330 may also include a point cloud encoder (not shown). The point cloud decoder is used to decode the received encoded point cloud data; the point cloud encoder is used to encode the point cloud data.

[0137] It should be noted that the technical solutions provided in this application embodiment can be applied to source coding standards (Audio Video coding Standard, AVS), such as AVS3 or next-generation video codec standards that support point cloud coding, and this application embodiment does not limit this.

[0138] It should also be noted that the execution entity for each step of the method provided in this application embodiment can be either an encoding device or a decoding device. The technical solutions provided in this application embodiment can be used for attribute prediction during both point cloud encoding and point cloud decoding. Both the encoding and decoding devices can be computer devices, which refer to electronic devices with data computing, processing, and storage capabilities, such as PCs, mobile phones, tablets, media players, virtual reality / augmented reality devices, dedicated video conferencing equipment, servers, etc.

[0139] Furthermore, the method provided in this application can be used alone or in combination with other methods in any order. The encoder and decoder based on the method provided in this application can be implemented by one or more processors or one or more integrated circuits.

[0140] Please refer to Figure 9 This document illustrates a flowchart of a method for determining a geometric pattern according to an embodiment of this application. For ease of explanation, the description focuses solely on a computer device as the executing entity for each step. This method is executed by a decoding end / decoding end device / computer device and may include the following steps:

[0141] Step 420: Obtain the geometric information of the first node;

[0142] The current node is the node currently being decoded.

[0143] The first node is the node that provides information for determining the geometric pattern of the current node. The first node is geometrically related to the current node and contains decoding information from previous nodes and / or the current node's neighborhood information. For example, the first node may be a neighbor node of the current node; or it may be a preceding decoding node of the current node; or it may be the parent node of the current node, and so on.

[0144] In some embodiments, the first node is at least one of the following nodes:

[0145] • Reference node;

[0146] • Child nodes of the reference node;

[0147] • Decoded child nodes of the current node;

[0148] • The child nodes to be decoded in the current node.

[0149] In some embodiments, the selection range of reference nodes includes at least one of the following nodes:

[0150] • Decoded nodes;

[0151] • Non-empty decoded nodes;

[0152] • Decoded nodes at the same level as the current node;

[0153] • Decoded nodes that are at the same level as the current node and are not empty;

[0154] • Decoded nodes at fixed positions;

[0155] • A fixed-position, non-empty, decoded node;

[0156] • The parent node of the current node;

[0157] • Neighboring nodes that share the same parent node as the current node;

[0158] • Child nodes of neighboring nodes that share the same parent node as the current node.

[0159] In this context, a decoded node refers to a node whose preceding order has been decoded, including the current node's parent node; a non-empty decoded node refers to a node whose preceding order has been decoded and at least one child node is occupied; a decoded node at the same level as the current node refers to a decoded node located at the same level as the current node in the octree partition, excluding the current node's parent node; a non-empty decoded node at the same level as the current node refers to a decoded node located at the same level as the current node in the octree partition and at least one child node is occupied; a decoded node at a fixed position refers to a decoded node at a fixed position relative to the current node; and a non-empty decoded node at a fixed position refers to a decoded node at a fixed position relative to the current node and at least one child node is occupied. This fixed position can be understood as a fixed offset position, a specified position, or a similar meaning.

[0160] In some embodiments, decoded nodes at fixed positions are obtained by setting a preset offset. Decoded nodes at fixed positions include at least one of the following (taking the current node coordinates as (x, y, z) as an example):

[0161] • The decoded node corresponding to the current node offset by a first preset amount along the first coordinate axis direction, where,

[0162] The first preset amount is a pre-set offset along the first coordinate axis. Taking the first coordinate axis as the X-axis as an example, if the first preset amount is set to -1 or -2, then the reference node is (x-1, y, z).

[0163] (x-2, y, z).

[0164] • The current node is offset along the second coordinate axis by a second preset amount, corresponding to the decoded node. The second preset amount is a pre-set offset along the second coordinate axis. Taking the second coordinate axis as the Y-axis as an example, if the second preset amount is set to -1 or -2, then the reference nodes are (x, y-1, z) and (x, y-2, z).

[0165] The decoded node corresponding to the current node offset by a third preset amount along the first coordinate axis and a fourth preset amount along the second coordinate axis. The third preset amount is a pre-set offset along the first coordinate axis, and the fourth preset amount is a pre-set offset along the second coordinate axis. Taking the first coordinate axis as the X-axis and the second coordinate axis as the Y-axis as an example, if the third preset amount is set to -1 and the fourth preset amount is set to -1, then the reference node is (x-1, y-1, z).

[0166] The first and second coordinate axes are coordinate axes in two different directions in the three-dimensional coordinate system.

[0167] In some embodiments, at least one of the aforementioned first preset amount, second preset amount, third preset amount, and fourth preset amount is:

[0168] • The default number or group of numbers;

[0169] • The numerical value or group of numerical values ​​that meets the second condition;

[0170] • Determined based on the fulfillment of the second condition;

[0171] • Determined based on at least one piece of information.

[0172] In some embodiments, at least one of the aforementioned first preset amount, second preset amount, third preset amount, and fourth preset amount varies based on a corresponding offset value change, wherein the offset value change is:

[0173] • The default number or group of numbers;

[0174] • The numerical value or group of numerical values ​​that meets the second condition;

[0175] • Determined based on the fulfillment of the second condition;

[0176] • Determined based on at least one piece of information.

[0177] For example, when the number of non-empty nodes in the decoded nodes is large, a larger offset value change can be selected to expand the range of offset and obtain more non-empty nodes.

[0178] For example, determine the offset threshold xoffset along the X-axis and the change in offset value addXoffset along the X-axis. Select three fixed-position nodes. If two of the selected fixed-position nodes are empty, addXoffset = 2; if one of the selected fixed-position nodes is empty, addXoffset = 1; if none of the selected fixed-position nodes are empty, addXoffset = 0. The preset value is the sum of the offset threshold xoffset and the change in offset value addXoffset. That is, when there are more empty nodes, the preset value changes more based on the change in offset value; when there are fewer empty nodes, the preset value changes less based on the change in offset value.

[0179] In some embodiments, at least one of the aforementioned first coordinate axis direction and second coordinate axis direction is:

[0180] • Default coordinate axis direction;

[0181] • The coordinate axis direction corresponding to the condition that the second condition is met;

[0182] • Determined based on the fulfillment of the second condition;

[0183] • Determined based on at least one piece of information.

[0184] The second condition relates to at least one of the following pieces of information:

[0185] • Geometric patch information (e.g., geometric patch density or point cloud bounding box dimensions);

[0186] • The relative position of the current node;

[0187] • Placeholder information for the parent node of the current node;

[0188] • Placeholder information for the current node's neighboring nodes;

[0189] • Placement information for the first k reference nodes.

[0190] At least one piece of information includes at least one of the following:

[0191] • Quantization parameters;

[0192] • Data geometric accuracy;

[0193] • Geometric sheet density;

[0194] • Geometric piece dimensions;

[0195] • Placeholder information for reference nodes;

[0196] • The relative position of the current node;

[0197] • The parent node of the current node and its neighboring nodes.

[0198] The aforementioned preset values ​​and coordinate axis directions can all be default values ​​or preset values; or, some can be default values ​​and some can be determined based on the second condition or relevant information; or, all can be determined based on relevant information, and so on. That is, any of the above methods for selecting preset values ​​and coordinate axes can be used, or a combination of them can be used.

[0199] For example, a default set of values ​​can be used as the preset value; another example is that the second condition, which is the parameter Q1 indicating the density of the geometric patch, selects the corresponding value k1 if the current density of the geometric patch is greater than Q1, otherwise selects the value k2; yet another example is that if there are multiple / groups of candidate values ​​satisfying the second condition, one / group can be selected as the preset value; yet another example is that the preset value is determined based on the geometric patch information, and the preset value is increased if the density of the geometric patch is low; yet another example is that the preset value is increased if the current node is the only child node of its parent node; yet another example is that the preset value is increased if the neighboring nodes of the current node's parent node are empty, and so on. This application does not restrict the method of selecting preset values ​​and coordinate axes.

[0200] In some embodiments, decoded nodes at fixed positions are obtained by setting a preset amount and a fixed multiple of the offset. For example, the product of the preset amount and the fixed multiple is the actual offset used. Decoded nodes at fixed positions include at least one of the following (taking the current node coordinates as (x, y, z) as an example):

[0201] • The decoded node corresponding to the current node offset by a first multiple offset along the first coordinate axis. The first multiple offset is the offset obtained by multiplying a first preset amount by a first multiple. The first preset amount is a pre-set offset along the first coordinate axis. Taking the first coordinate axis as the X-axis as an example, if the first preset amount is set to -1 or -2, and the first multiple is set to 2, then the reference nodes are (x-2, y, z) and (x-4, y, z).

[0202] • The current node is offset along the second coordinate axis by a second multiple offset, corresponding to the decoded node. The second multiple offset is obtained by multiplying a second preset value by the second multiple. The second preset value is a pre-set offset along the second coordinate axis. Taking the second coordinate axis as the Y-axis as an example, if the second preset value is set to -1 or -2, and the second multiple is set to 4, then the reference nodes are (x, y-4, z) and (x, y-8, z).

[0203] The decoded node corresponding to the current node offset by a third multiple of the first coordinate axis and a fourth multiple of the second coordinate axis. The third multiple offset is obtained by multiplying a third preset value by a third multiple, and the fourth multiple offset is obtained by multiplying a fourth preset value by a fourth multiple. The third preset value is a pre-set offset along the first coordinate axis, and the fourth preset value is a pre-set offset along the second coordinate axis. Taking the first coordinate axis as the X-axis and the second coordinate axis as the Y-axis as an example, if the first preset value is set to m3, the second preset value is set to m4, and the third and fourth multiples are set to 1, then the reference node is (x-m3, y-m4, z).

[0204] Among them, the first coordinate axis and the second coordinate axis are two coordinate axes in different directions in the three-dimensional coordinate system; the first multiple, the second multiple, the third multiple and the fourth multiple are preset fixed multiples, which can be selected according to the actual situation. For example, the fixed multiples are selected based on the quantization parameters of the point cloud.

[0205] In some embodiments, at least one of the aforementioned first preset amount, second preset amount, third preset amount, fourth preset amount, first multiple, second multiple, third multiple, and fourth multiple is:

[0206] • The default number or group of numbers;

[0207] • The numerical value or group of numerical values ​​that meets the second condition;

[0208] • Selected from multiple candidate values ​​based on a second condition that is met;

[0209] • Determined based on at least one piece of information.

[0210] In some embodiments, at least one of the aforementioned first coordinate axis direction and second coordinate axis direction is:

[0211] • The default number or group of numbers;

[0212] • The numerical value or group of numerical values ​​that meets the second condition;

[0213] • Determined based on the fulfillment of the second condition;

[0214] • Determined based on at least one piece of information.

[0215] The second condition relates to at least one of the following pieces of information:

[0216] • Geometric slice information;

[0217] • The relative position of the current node;

[0218] • Placeholder information for the parent node of the current node;

[0219] • Placeholder information for the current node's neighboring nodes;

[0220] • Placement information for the first k reference nodes.

[0221] At least one piece of information includes at least one of the following:

[0222] • Quantization parameters;

[0223] • Data geometric accuracy;

[0224] • Geometric sheet density;

[0225] • Geometric piece dimensions;

[0226] • Placeholder information for reference nodes;

[0227] • The relative position of the current node;

[0228] • The parent node of the current node and its neighboring nodes.

[0229] In some embodiments, decoded nodes at fixed positions are obtained by setting an offset threshold. Decoded nodes at fixed positions include at least one of the following (taking the current node coordinates as (x, y, z) as an example):

[0230] The current node is the decoded node whose offset along the first coordinate axis is less than the first offset threshold. The first offset threshold is a pre-set maximum offset along the first coordinate axis. Taking the first coordinate axis as the X-axis as an example, if the first offset threshold is set to M1, then the reference node is (x-

[0231] m1, y, z), where m1 <M1。

[0232] The current node is a decoded node whose offset along the second coordinate axis is less than the second offset threshold, which is a pre-set maximum offset along the second coordinate axis. Taking the Y-axis as an example, if the second offset threshold is set to M2, the reference node is (x, y - m2, z), where m2... <M2。

[0233] • Decoded nodes whose sum of offset along the first coordinate axis and offset along the second coordinate axis is less than a third offset threshold. The third offset threshold is a pre-set maximum sum of offsets along the first and second coordinate axes. Taking the first coordinate axis as the X-axis and the second coordinate axis as the Y-axis as an example, if the third offset threshold is set to M3, then the reference node is (x-m1, y-m2, z), where m1+m2... <M3。

[0234] The first and second coordinate axes are coordinate axes in two different directions in the three-dimensional coordinate system.

[0235] The aforementioned first offset threshold, second offset threshold, third offset threshold, fourth offset threshold, first coordinate axis direction, and second coordinate axis direction are determined based on at least one of the following: quantization parameters; data geometric precision; geometric patch density; geometric patch size; the relative position of the current node; and the parent node and neighboring nodes of the current node.

[0236] In some embodiments, at least one of the aforementioned first offset threshold, second offset threshold, third offset threshold, and fourth offset threshold is:

[0237] • The default number or group of numbers;

[0238] • The numerical value or group of numerical values ​​that meets the second condition;

[0239] • Determined based on the fulfillment of the second condition;

[0240] • Determined based on at least one piece of information.

[0241] In some embodiments, at least one of the aforementioned first coordinate axis direction and second coordinate axis direction is:

[0242] • Default coordinate axis direction;

[0243] • The coordinate axis direction corresponding to the second condition;

[0244] • Determined based on the fulfillment of the second condition;

[0245] • Determined based on at least one piece of information.

[0246] The second condition relates to at least one of the following pieces of information:

[0247] • Geometric slice information;

[0248] • The relative position of the current node;

[0249] • Placeholder information for the parent node of the current node;

[0250] • Placeholder information for the current node's neighboring nodes;

[0251] • Placement information for the first k reference nodes.

[0252] At least one piece of information includes at least one of the following:

[0253] • Quantization parameters;

[0254] • Data geometric accuracy;

[0255] • Geometric sheet density;

[0256] • Geometric piece dimensions;

[0257] • Placeholder information for reference nodes;

[0258] • The relative position of the current node;

[0259] • The parent node of the current node and its neighboring nodes.

[0260] In some embodiments, decoded nodes at fixed positions are obtained by setting an offset threshold, and a number threshold is set for the number of decoded nodes selected. Decoded nodes are selected in a preset order until a fixed number of decoded nodes are selected.

[0261] In some embodiments, the decoded nodes at fixed positions are selected as follows: a fixed number of decoded nodes that meet a first condition are selected in a first order, wherein the first order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order. The first condition is a pre-set condition, such as the node being a non-empty node.

[0262] In some embodiments, among the decoded nodes whose offset along the first coordinate axis is less than a first offset, a fixed number of decoded nodes that meet the selection criteria are selected in a first order; among the decoded nodes whose offset along the second coordinate axis is less than a second offset, a fixed number of decoded nodes that meet the selection criteria are selected in a second order; among the decoded nodes whose sum of the offset along the first coordinate axis and the offset along the second coordinate axis is less than a third offset, a fixed number of decoded nodes that meet the selection criteria are selected in a third order; wherein, the first order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order; the second order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order; the third order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order; the first offset is at least one offset less than a first offset threshold; the second offset is at least one offset less than a second offset threshold; and the third offset is at least one offset less than a third offset threshold.

[0263] In other embodiments, among the decoded nodes whose offset along the first coordinate axis is less than a first offset threshold, a fixed number of decoded nodes meeting the selection criteria are selected in a first order; among the decoded nodes whose offset along the second coordinate axis is less than a second offset threshold, a fixed number of decoded nodes meeting the selection criteria are selected in a second order; among the decoded nodes whose sum of the offset along the first coordinate axis and the offset along the second coordinate axis is less than a third offset threshold, a fixed number of decoded nodes meeting the selection criteria are selected in a third order; wherein the first order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order; the second order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order; and the third order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order.

[0264] The preset order is the selection order of nodes at fixed positions set in advance; the default order is the order determined by the decoder or parsed from the parameter set or bitstream corresponding to the current node; the coordinate axis order is the order selected sequentially or alternately according to the coordinate axes; for linear order, Hilbert order, or Morton order, please refer to [link to relevant documentation]. Figure 10 .

[0265] Figure 10 This illustration shows a schematic diagram of the order of selected decoded nodes at fixed positions, provided by an exemplary embodiment of this application.

[0266] Figure 10 Part (a) illustrates the Hilbert sequence along the X-axis. The figure shows that with both the X-axis and Y-axis offset thresholds of 4, there are 16 selectable decoded nodes at fixed positions. If the threshold is less than 16, nodes are selected sequentially according to the arrows in the figure until the fixed number of decoded nodes is reached. For example, with a threshold of 3, the fixed number of nodes selected is also 3, so (x, y), (x-1, y), and (x-1, y-1) are selected sequentially as decoded nodes at fixed positions.

[0267] Figure 10 Part (b) illustrates the Morton / zigzag sequence along the X-axis. The figure shows that with both the X-axis and Y-axis offset thresholds of 4, there are 16 selectable decoded nodes at fixed positions. If the threshold is less than 16, nodes are selected sequentially according to the arrows in the figure until the fixed number of decoded nodes is reached. For example, with a threshold of 4, and a fixed number of nodes of 4, (x, y), (x-1, y), (x, y-1), and (x-1, y-1) are selected sequentially as decoded nodes at fixed positions.

[0268] Figure 10 Section (c) illustrates the linear sequence along the X-axis. The figure shows that with both the X-axis and Y-axis offset thresholds of 4, 16 decoded nodes can be selected at fixed positions. If the number threshold is less than 16, nodes are selected sequentially according to the arrow directions in the figure until the fixed number of decoded nodes is reached. For example, with a number threshold of 5, and a fixed number of nodes of 5, (x, y), (x-1, y), (x-2, y), (x-3, y), and (x, y-1) are selected sequentially as decoded nodes at fixed positions.

[0269] It should be noted that the method of selecting a fixed-position decoded node is not limited to the above methods, and this application does not impose any restrictions on it.

[0270] A fixed-position, non-empty decoded node is a node among the aforementioned fixed-position decoded nodes that has at least one child node occupied. A fixed-position, non-empty decoded node can be obtained through at least one of the following methods (taking the current node coordinates as (x, y, z) as an example):

[0271] After obtaining the decoded nodes at fixed positions using the aforementioned method, select the non-empty decoded nodes. For example, obtain all decoded nodes at fixed positions within an offset threshold range, and select all non-empty nodes.

[0272] ·Select a decoded node at a fixed position based on the aforementioned method for setting an offset threshold, and increment its offset along the coordinate axis by one if the decoded node at this fixed position is a null node. For example, if the offset threshold along the X-axis direction is set to M1, the node is (x-m1, y, z), where m1<M1;

[0273] If (x-m1, y, z) is a null node, then m1 = m1+1; for another example, if the offset threshold along the Y-axis direction is set to M2, the reference node is (x, y-m2, z), where m2<M2; if (x, y-m2, z) is a null node, then m2 = m2+1.

[0274] ·Set a count threshold. Select decoded nodes at fixed positions based on the aforementioned method for setting an offset threshold, and increment their offset along the coordinate axis by one if the decoded node at the fixed position is a null node, until the number of non-null decoded nodes at fixed positions reaches the count threshold. In some embodiments, a fixed number of decoded nodes meeting the first condition are selected according to a first order, until the fixed number (count threshold) of decoded nodes are fully selected; the first order may be any one of a default order, a preset order, a Hilbert order, a Morton order, a linear order, and a coordinate axis order, and the first condition is that the node is non-null.

[0275] In some embodiments, before step 420, it is determined whether the current node is encoded using a geometric mode. If the current node is encoded using the geometric mode, step 420 and step 440 are executed.

[0276] Step 440: Determine the geometric mode of the current node according to the geometric information of the first node.

[0277] The geometric mode is mode information corresponding to the entropy decoding mode. The geometric modes of point cloud data include an isolated point mode, a plane mode, and so on. The isolated point mode is used for encoding and / or decoding of nodes determined as isolated points; the plane mode is used for encoding and / or decoding of nodes determined as plane mode nodes. Illustratively, the plane mode means that the reference nodes of the current node are located on the same plane, or the decoded child nodes of the current node are located on the same plane, and so on.

[0278] Exemplarily, the geometric mode of the current node is determined as the target decoding mode based on the geometric information of the first node. The target decoding mode is a decoding mode corresponding to a plane mode node.

[0279] When the first node includes a child node of the reference node, the geometric mode of the current node is determined according to the occupancy status of the first node; when the first node includes the decoded child nodes of the current node, the geometric mode of the current node is determined according to the plane position of the first node, and so on.

[0280] determine the geometric mode of the current node based on the geometric information of the first node; or determine the geometric mode of the current node based on at least one threshold and the geometric information of the first node. That is, the geometric mode of the current node may be determined only through the geometric information of the first node; or, the geometric mode of the current node may be determined by comparing the geometric information of the first node with at least one threshold in combination with the acquired threshold and the geometric information of the first node (for example, a child node of a reference node).

[0281] In some embodiments, if the number of low-plane occupied child nodes is less than a first threshold and the number of high-plane occupied child nodes is greater than a second threshold, the current node is determined to be in a first decoding mode; or if the number of low-plane occupied child nodes is greater than a third threshold and the number of high-plane occupied child nodes is less than a fourth threshold, the current node is determined to be in a second decoding mode. The low-plane occupied child nodes refer to occupied child nodes of the reference node that are located on a low plane, and the high-plane occupied child nodes refer to occupied child nodes of the reference node that are located on a high plane; or, the low-plane occupied child nodes refer to occupied child nodes of the reference node that meet a preset condition and are located on a low plane, and the high-plane occupied child nodes refer to occupied child nodes of the reference node that meet a preset condition and are located on a high plane, where the preset condition is used to indicate that the reference node is a high-plane node or a low-plane node.

[0282] It should be noted that a high-plane node refers to a node whose all occupied child nodes are located on a high plane, and a low-plane node refers to a node whose all occupied child nodes are located on a low plane; or, a high-plane node refers to a node that satisfies that the number of occupied child nodes located on the low plane is less than a first child node count and the number of occupied child nodes located on the high plane is greater than a second child node count, and a low-plane node refers to a node that satisfies that the number of occupied child nodes located on the low plane is greater than a third child node count and the number of occupied child nodes located on the high plane is less than a fourth child node count; where the first child node count, the second child node count, the third child node count, and the fourth child node count are preset values.

[0283] For example, a first threshold k1, a second threshold k2, a third threshold k3, and a fourth threshold k4 are set. The number of low-plane occupied child nodes LowOccNum and the number of high-plane occupied child nodes HighOccNum are counted. If LowOccNum<k1 and HighOccNum>k2, the current node is determined to be in the first decoding mode; and if LowOccNum>k3 and HighOccNum<k4, the current node is determined to be in the second decoding mode.

[0284] In some embodiments, if the number of low-plane occupied child nodes is less than a first threshold, the current node is determined to be in a first decoding mode; or, if the number of high-plane occupied child nodes is less than a second threshold, the current node is determined to be in a second decoding mode. The low-plane occupied child nodes refer to the occupied child nodes of the reference node that are located in the low plane, and the high-plane occupied child nodes refer to the occupied child nodes of the reference node that are located in the high plane; alternatively, the low-plane occupied child nodes refer to the occupied child nodes of the reference node that meets a preset condition and are located in the low plane, and the high-plane occupied child nodes refer to the occupied child nodes of the reference node that meets the preset condition and are located in the high plane, where the preset condition is used to indicate that the reference node is a high-plane node or a low-plane node.

[0285] For example, a first threshold k1 and a second threshold k2 are set. The number of low-plane occupied child nodes LowOccNum and the number of high-plane occupied child nodes HighOccNum are counted. If LowOccNum<k1, the geometry mode of the current node is determined to be the first decoding mode; if HighOccNum<k4, the geometry mode of the current node is determined to be the second decoding mode.

[0286] In some embodiments, if the child node to be decoded is located in the high plane, the number of low-plane occupied child nodes is less than the first threshold, and the number of high-plane occupied child nodes is greater than the second threshold, the current node is determined to be in the first decoding mode; or, if the child node to be decoded is located in the low plane, the number of low-plane occupied child nodes is greater than a third threshold, and the number of high-plane occupied child nodes is less than a fourth threshold, the current node is determined to be in the second decoding mode. The low-plane occupied child nodes refer to the occupied child nodes of the reference node that are located in the low plane, and the high-plane occupied child nodes refer to the occupied child nodes of the reference node that are located in the high plane; alternatively, the low-plane occupied child nodes refer to the occupied child nodes of the reference node that meets a preset condition and are located in the low plane, and the high-plane occupied child nodes refer to the occupied child nodes of the reference node that meets the preset condition and are located in the high plane, where the preset condition is used to indicate that the reference node is a high-plane node or a low-plane node; the child node to be decoded refers to the current child node to be decoded in the current node.

[0287] For example, a first threshold k1, a second threshold k2, a third threshold k3, and a fourth threshold k4 are set. The number of low-plane occupied child nodes LowOccNum and the number of high-plane occupied child nodes HighOccNum are counted. If the child node to be decoded is located in the high plane, LowOccNum<k1, and HighOccNum>k2, the current node is determined to be in the first decoding mode; if the child node to be decoded is located in the low plane, LowOccNum>k3, and HighOccNum<k4, the current node is determined to be in the second decoding mode.

[0288] It should be noted that the above method illustrates a method for determining the geometric pattern of the current node based on the occupancy of the child nodes of the child node to be decoded and the child nodes of the reference node; in addition, the geometric pattern of the current node can also be determined based on the child node to be decoded and at least one first node, for example, based on the occupancy of the child nodes of the child node to be decoded, the child nodes of the reference node, and the decoded child nodes of the current node. This application does not limit the use of the first node alone or in combination.

[0289] In some embodiments, the geometric pattern of the current node is determined based on the geometric information of the decoded child nodes of the current node.

[0290] In some embodiments, the geometric mode of the current node is determined based on the geometric information of the reference node and the geometric information of the decoded child nodes of the current node. For example, if the decoded child nodes of the current node are not on the same plane as the reference node, and the child nodes to be decoded of the current node are not on the same plane as the decoded child nodes, the geometric mode of the current node is determined to be a first decoding mode; or, if the decoded child nodes of the current node are not on the same plane as the reference node, and the child nodes to be decoded of the current node are on the same plane as the decoded child nodes, the geometric mode of the current node is determined to be a second decoding mode; or, if the decoded child nodes of the current node are on the same plane as the reference node, and the child nodes to be decoded of the current node are on the same plane as the decoded child nodes, the geometric mode of the current node is determined to be a third decoding mode; or, if the decoded child nodes of the current node are on the same plane as the reference node, and the child nodes to be decoded of the current node are not on the same plane as the decoded child nodes, the geometric mode of the current node is determined to be a fourth decoding mode.

[0291] In some embodiments, the reference node does not satisfy the planar pattern. When the decoded child nodes of the current node are on the same plane, and the child node to be decoded of the current node is also on the same plane as the decoded child nodes, the geometric pattern of the child node to be decoded is determined to be the fifth decoding pattern.

[0292] In some embodiments, the geometric pattern of the current node is determined based on the geometric information of the parent node of the current node; or, the geometric pattern of the current node is determined based on the geometric information of the child nodes of the reference node that shares the same parent node as the current node; or, the geometric pattern of the current node is determined based on the geometric information of the child nodes of the neighboring nodes that share the same parent node as the current node; or, the geometric pattern of the current node is determined based on the geometric information of the neighboring nodes that share the same parent node as the current node.

[0293] In some embodiments, the aforementioned at least one threshold is determined based on at least one of the following values:

[0294] • The first value determined from the decoding end;

[0295] • The second value obtained by parsing from the parameter set or bitstream corresponding to the current node;

[0296] • A third value determined based on the first and / or second information;

[0297] • A fourth value adaptively determined based on the first and / or second information;

[0298] The first information is used to indicate the statistical characteristics or spatial information of the current node, and the second information is used to indicate the statistical characteristics of the decoded node.

[0299] That is, the first value can be the default value or a pre-set value at the decoding end. The second value is the value obtained from the parameter set or bitstream corresponding to the current node. For example, the parameter set includes the Sequence Parameter Set (SPS), Geometry Parameter Set (GPS), Attribute Parameter Set (APS), Geometry Header Brick (GHB), and Attribute Header Brick (AHB); for example, the value planarOccNumTh is obtained from the parameter set or bitstream.

[0300] In some embodiments, the first information includes at least one of the following:

[0301] • The number of reference nodes that meet the preset conditions;

[0302] • The number of child nodes of a reference node that meets the preset conditions;

[0303] • Distribution of the number of child nodes of reference nodes that meet the preset conditions;

[0304] • The positional relationship between the child nodes of the reference node that meet the preset conditions and the child nodes to be decoded of the current node;

[0305] The preset conditions are used to indicate whether the reference node is a high-plane node or a low-plane node.

[0306] Here, a high-plane node is a node whose entire child node is located in the high plane, and a low-plane node is a node whose entire child node is located in the low plane; or, a high-plane node is a node that satisfies the following conditions: the number of occupied child nodes in the low plane is less than the number of first child nodes and the number of occupied child nodes in the high plane is greater than the number of second child nodes; a low-plane node is a node that satisfies the following conditions: the number of occupied child nodes in the low plane is greater than the number of third child nodes and the number of occupied child nodes in the high plane is less than the number of fourth child nodes; where the number of first child nodes, second child nodes, third child nodes, and fourth child nodes are preset values.

[0307] In some embodiments, the second information includes at least one of the following:

[0308] • The number of nodes in the decoded nodes that satisfy the planar pattern;

[0309] • The number of reference nodes that satisfy the planar pattern among the decoded nodes;

[0310] • The number of child nodes of the reference node that satisfies the planar pattern in the decoded node;

[0311] • The ratio of the number of reference nodes that satisfy the planar pattern to the number of non-empty reference nodes in the decoded nodes;

[0312] • The ratio of the number of child nodes of the reference node that satisfies the planar pattern in the decoded node to the number of reference nodes.

[0313] In some embodiments, the second information includes at least one of the following:

[0314] • The number of reference nodes corresponding to nodes that satisfy the planar pattern among the decoded nodes;

[0315] • The number of child nodes of the reference node corresponding to the node that satisfies the planar pattern among the decoded nodes;

[0316] • The ratio of the number of reference nodes corresponding to nodes that satisfy the planar pattern among the decoded nodes to the number of non-empty reference nodes corresponding to nodes that satisfy the planar pattern;

[0317] • The ratio of the number of child nodes of the reference node corresponding to the node that satisfies the planar pattern in the decoded nodes to the number of the reference nodes.

[0318] The third value is determined based on the first and / or second information; alternatively, the third value can also be determined based on other information. For example, the third value can be determined using the point cloud slice volume density (the ratio of the point cloud slice volume or area to the number of points): the point cloud slice volume density Q1 is determined from the decoder, parameter set, or bitstream; if the point cloud slice volume density is less than Q1, the third value is determined to be k1; otherwise, the third value is k2.

[0319] The fourth value is determined adaptively based on the first and / or second information. Adaptive means that the fourth value is adjusted according to the acquired information.

[0320] In some embodiments, the fourth value is adjusted according to the first information. For example, if the number of reference nodes that meet the preset conditions is greater than N1, the fourth value a is adjusted to a = a + 1; or if the number of child nodes of the reference nodes that meet the preset conditions is less than N2, the fourth value a is adjusted to a = a - 1.

[0321] In some embodiments, an interval D1 is set for statistically analyzing the second information, and the second information is analyzed for every D1 decoded nodes; in other embodiments, an interval D2 is set for statistically analyzing the second information, and the second information of non-empty nodes is analyzed for every D2 decoded nodes.

[0322] In some embodiments, prior to step 440, the planar mode qualification of the current node is determined, for example, based on the second node. After determining that the current node has planar mode qualification, the geometric mode determination in step 440 is performed.

[0323] For example, based on the geometric information of the second node, the planar mode qualification of the current node is determined. The planar mode qualification is used to indicate whether the current node is applicable to the planar mode. The second node is the same as or different from the first node, and the second node is at least one of the following nodes: a reference node; a child node of the reference node; a decoded child node of the current node; or a child node of the current node to be decoded.

[0324] For example, the planar mode eligibility of the current node is determined based on the number of non-empty nodes in the reference node; or, the planar mode eligibility of the current node is determined based on the occupancy status of the child nodes of the reference node; or, the planar mode eligibility of the current node is determined based on the occupancy status of the decoded child nodes of the reference node.

[0325] In summary, the method provided in this application determines the geometric pattern of the current node by obtaining the geometric information provided by the first node corresponding to the current node. It optimizes the determination of the geometric pattern of the current node by combining the information in the octree partitioning process, thereby enabling decoding based on the entropy decoding method corresponding to the geometric pattern and improving the efficiency of point cloud data encoding and decoding.

[0326] Please refer to Figure 11 This document illustrates a flowchart of a method for determining a geometric pattern according to an embodiment of this application. For ease of explanation, the description focuses solely on a computer device as the executing entity for each step. This method is executed by a decoding end / decoding end device / computer device and may include the following steps:

[0327] Step 510: Determine whether the current node uses geometric mode decoding;

[0328] The current node is the node currently being decoded.

[0329] Geometric pattern decoding is used to indicate the decoding mode for entropy decoding based on node-based geometric information. Different geometric patterns employ different entropy decoding methods in geometric pattern decoding.

[0330] In some embodiments, determining whether the current node uses geometric mode decoding includes any one of the following steps: determining whether the current node uses geometric mode decoding at the point cloud or point cloud slice level; determining whether the current node uses geometric mode decoding at the macroblock level; determining whether the current node uses geometric mode decoding at the depth level of the octree.

[0331] In some embodiments, determining whether the current node uses geometric mode decoding includes at least one of the following steps: determining whether the current node uses geometric mode decoding based on the decoding mode adopted by the decoding end; determining whether the current node uses geometric mode decoding based on the parameter set or bitstream corresponding to the current node; determining whether the current node uses geometric mode decoding based on the geometric mode threshold parameter, wherein the geometric mode threshold parameter is a threshold parameter obtained based on the decoding end, parameter set, or bitstream.

[0332] For example, determining whether the current node uses geometry mode decoding includes at least one of the following methods:

[0333] a) Determine whether the current node uses geometric mode decoding at the point cloud or point cloud slice level:

[0334] • The decoding end uses the default decoding mode: it determines whether the current node uses geometric mode decoding based on the decoding mode used by the decoding end.

[0335] • Parse the corresponding mode information from the parameter set or bitstream: For example, the parameter gsh_planar_mode in the geometric slice header information parameter set is used to indicate that planar encoding mode is enabled.

[0336] • Determine the corresponding mode information based on the geometric mode threshold parameter used by the decoder: For example, the geometric mode threshold parameter is the default threshold parameter for the volume density of point cloud slices used by the decoder, and the corresponding mode information is determined based on this geometric mode threshold parameter.

[0337] • Parse the corresponding geometric mode threshold parameter from the parameter set or bitstream, and determine the corresponding mode information: For example, parse the threshold parameter of the point cloud slice surface density from the parameter set or bitstream as the geometric mode threshold parameter, and determine the mode information corresponding to the current node based on the geometric mode threshold parameter.

[0338] b) Determine at the macroblock (LCU) level whether the current node uses geometry mode decoding:

[0339] • The decoding end uses the default decoding mode: it determines whether the current node uses geometric mode decoding based on the decoding mode used by the decoding end.

[0340] • Parse the corresponding mode information from the parameter set or bitstream: Analyze whether the current node uses geometric mode decoding from the parameter set or bitstream corresponding to the macroblock.

[0341] • Determine the corresponding mode information based on the geometric mode threshold parameters used by the decoding end (or by parsing the corresponding threshold parameters from the parameter set or the bitstream): for example, determine the corresponding mode information based on whether there are prediction tree neighbor nodes when dividing the LCU; another example is to determine the corresponding mode information based on the density when dividing the LCU.

[0342] c) Determine whether the current node uses geometric mode decoding at the depth level of the octree:

[0343] • The decoding end uses the default decoding mode: it determines whether the current node uses geometric mode decoding based on the decoding mode used by the decoding end.

[0344] • Parse the corresponding mode information from the parameter set or bitstream: parse whether the current node uses geometric mode decoding from the parameter set or bitstream corresponding to the depth level of the octree.

[0345] ·Determine the corresponding mode information according to the geometric mode threshold parameter adopted by the decoding end (or the corresponding threshold parameter parsed from the parameter set or the code stream): for example, if the geometric mode threshold parameter is point cloud bounding box information, the corresponding mode information is determined according to the point cloud bounding box information (side length information, etc.) of the current layer node; for another example, if the geometric mode threshold parameter is a hierarchical threshold range, the corresponding mode information is determined according to the hierarchical threshold range, and when the current depth depth<d1, and / or depth>d2, the plane mode determination is not entered.

[0346] It should be noted that the present application does not limit the range and selection manner of the above-mentioned geometric mode threshold parameter used for judging whether the current node uses geometric mode decoding.

[0347] It should be noted that the above methods for judging whether the current node uses geometric mode decoding may be used alternatively or in combination, which is not limited in the present application. In some embodiments, step 510 is also an optional step, and the execution thereof may be omitted.

[0348] Step 520: Obtain the geometric information of the first node;

[0349] The current node is the node currently being decoded.

[0350] The first node refers to a node that provides information for determining the geometric mode of the current node. The first node is geometrically associated with the current node, and includes historical node decoding information and / or domain information of the current node. For example, the first node is a neighbor node of the current node; for another example, the target node is a preorder decoded node of the current node; for another example, the first node is a parent node of the current node, and so on.

[0351] In some embodiments, the first node is at least one of the following nodes:

[0352] ·Reference node;

[0353] ·Child node of the reference node;

[0354] ·Decoded child node of the current node;

[0355] ·To-be-decoded child node of the current node.

[0356] In some embodiments, the reference node is within the neighborhood of the current node, and the reference information provided by the reference node is geometric information, neighborhood information or spatial information of the current node.

[0357] The reference node includes at least one of the following nodes:

[0358] a) The first K1 preorder decoded nodes are taken as reference nodes, including the parent node, where K1 is a positive integer.

[0359] b) Use the K2 previously decoded nodes at the same layer as reference points (the same layer refers to the octree division layer, which does not include parent nodes), where K2 is a positive integer.

[0360] c) Select K3 reference nodes at fixed positions from the decoded nodes: the fixed position means that the reference node is at a fixed relative position with respect to the current node, and K3 is a positive integer.

[0361] In some embodiments, offset values offset along the coordinate axis direction are set to obtain the reference nodes at fixed positions. For example, taking the xy direction as an example, the decoded nodes corresponding to (x-1,y,z), (x-2,y,z), (x,y-1,z), (x,y-2,z), and (x-1,y-1,z) are selected as reference nodes. The present application does not limit the selection of the fixed positions.

[0362] In some embodiments, one or more sets of offset values along the coordinate axis direction and possible corresponding fixed multiples are set, where the fixed multiples can be selected according to information such as quantization parameters. For example, taking the XY direction as an example, the offset values along the X-axis and Y-axis are m3 and m4 respectively, and the corresponding fixed multiples are a and b, that is, the nodes corresponding to (x-a·m3,y,z) and (x,y-b·m4,z) are selected as reference nodes.

[0363] d) Select K4 non-empty reference nodes at fixed positions from the decoded nodes: the fixed position means that the reference node is at a fixed relative position with respect to the current node, non-empty means that at least one child node of the node is occupied, and K4 is a positive integer.

[0364] In some embodiments, an offset threshold is set. For example, taking the XY direction as an example, the offset thresholds along the X-axis and Y-axis are set to M1 and M2 respectively. When the offset value m1 along the X-axis direction is less than M1, (x-m1,y,z) is selected as the reference node, and if the reference node is empty, m1 is set to m1+1; when the offset value m2 along the Y-axis direction is less than M2, (x,y-m2,z) is selected as the reference node, and if the reference node is empty, m2 is set to m2+1. For another example, the offset threshold for the sum of the offsets along the X-axis and Y-axis is set to M3. When the sum of the offset values m1+m2 is less than M3, (x-m1,y,z) and (x,y-m2,z) are selected as reference nodes; if (x-m1,y,z) is empty, m1 is set to m1+1; if (x,y-m2,z) is empty, m2 is set to m2+1. The above steps are repeated to obtain K4 reference nodes, which are not necessarily all non-empty nodes; or all the obtained non-empty reference nodes are selected.

[0365] In some embodiments, a number threshold is set. For example, if the number threshold is set to K4, then as described in the method for setting the offset threshold above, when the selected reference node is empty when moving along the coordinate axis, the offset value along the coordinate axis is incremented by one, and then the reference node is selected again; the above steps are repeated until K4 non-empty reference nodes at fixed positions are obtained, which will not be elaborated here.

[0366] e) Select a reference node based on the current node's parent node and / or the parent node's neighbor nodes: for example, expand the range of reference nodes to be selected if the current node is the only child node of its parent node.

[0367] It should be noted that the above methods for determining the reference node corresponding to the current node can be used individually or in combination, and this application does not impose any restrictions on this.

[0368] Step 530: Determine the planar pattern qualification of the current node based on the geometric information of the second node;

[0369] Planar eligibility indicates whether the current node is eligible for planar mode, i.e., whether the current node can be decoded using planar mode.

[0370] The second node may be the same as or different from the first node, and the second node may be at least one of the following types of nodes:

[0371] • Reference node;

[0372] • Child nodes of the reference node;

[0373] • Decoded child nodes of the current node;

[0374] • The child nodes to be decoded in the current node.

[0375] That is, the same second node and the same first node can be used; or, different first nodes and second nodes can be obtained using the same method; or, different first nodes and second nodes can be obtained using different methods. This application does not impose any restrictions on this.

[0376] For example, the planar mode eligibility of the current node is determined based on the number of non-empty nodes in the reference node; or, the planar mode eligibility of the current node is determined based on the occupancy status of the child nodes of the reference node; or, the planar mode eligibility of the current node is determined based on the occupancy status of the decoded child nodes of the reference node.

[0377] The methods for determining the planar mode eligibility of the current node include at least one of the following:

[0378] a) The decoding end adopts the default decoding mode: the current node's plane mode qualification is determined according to the decoding mode adopted by the decoding end.

[0379] b) Parse the corresponding mode information from the parameter set or the bitstream: for example, the parameter set contains parameters that indicate the current node's planar mode eligibility.

[0380] c) Determine the current node's planar mode eligibility based on a threshold parameter. The threshold parameter is either the default threshold parameter used by the decoder, or a threshold parameter parsed from the parameter set or bitstream corresponding to the current node. Determining the current node's planar mode eligibility based on the threshold parameter includes at least one of the following methods:

[0381] • Determine the planar mode eligibility of the current node based on the number of non-empty nodes in the reference node:

[0382] The planar mode eligibility of the current node is determined by comparing the number of non-empty nodes in the reference node with the threshold parameter.

[0383] • Determine the planar mode eligibility of the current node based on the occupancy status of the child nodes of the reference node:

[0384] In some embodiments, the planar mode eligibility of the current node is determined by comparing the number of reference nodes whose occupied child nodes are all located in the low plane (LowNode) and / or the number of reference nodes whose occupied child nodes are all located in the high plane (HighNode) with a threshold parameter. In other embodiments, the planar mode eligibility of the current node is determined by comparing the number of reference nodes whose occupied child nodes in the low plane are greater than p1 and whose occupied child nodes in the high plane are less than p2 (LowNode) and / or the number of reference nodes whose occupied child nodes in the low plane are less than p3 and whose occupied child nodes in the high plane are greater than p4 (HighNode) with a threshold parameter. Here, p1, p2, p3, and p4 are used to indicate the child node occupancy thresholds, and are all positive integers.

[0385] • Determine the planar mode eligibility of the current node based on the occupancy status of the decoded child nodes of the reference node:

[0386] In some embodiments, the planar mode qualification of the current node is determined by comparing the number of occupied child nodes in the low plane of the aforementioned LowNode (LowOccNum) and / or the number of occupied child nodes in the high plane of the aforementioned HighNode (HighOccNum) with a threshold parameter.

[0387] In other embodiments, the planar mode qualification of the current node is determined based on the ratio of LowOccNum to LowNode; or, the planar mode qualification of the current node is determined based on the ratio of LowOccNum to the number of non-empty reference nodes; or, the planar mode qualification of the current node is determined based on the ratio of HighOccNum to HighNode; or, the planar mode qualification of the current node is determined based on the ratio of HighOccNum to the number of non-empty reference nodes.

[0388] It should be noted that the above methods for determining the planar mode qualification of the current node can be used individually or in combination, and this application does not impose any restrictions on this. In some embodiments, step 530 is an optional step and can be omitted.

[0389] Step 540: Determine the geometric pattern of the current node based on the geometric information of the first node.

[0390] The geometric pattern is the pattern information corresponding to the entropy decoding pattern. After determining the planar pattern qualification of the current node in step 530, the planar pattern of the current node is determined in this step. Different planar patterns use different entropy decoding methods.

[0391] (a) Determine information about the decoded nodes, including at least one of the following:

[0392] • The positional information of the child nodes of the reference node;

[0393] • The current node's decoded child node position status;

[0394] • The positional status of the current node's parent node;

[0395] • Information about the child nodes of the reference node that shares the same parent node as the current node.

[0396] The child node occupancy information includes the number of child nodes located in the lower plane, the number of child nodes located in the higher plane, and so on; the parent node occupancy information includes the number of child nodes owned by the parent node, and so on.

[0397] (b) Obtain the decision threshold k. There may be one or more decision thresholds, and the methods for obtaining different thresholds may be the same or different. The methods for obtaining the decision threshold include at least one of the following:

[0398] • Use the default threshold at the decoding end as the first value;

[0399] • Parse the corresponding second value from the parameter set or bitstream, for example, determine the second value based on the parameter planarOccNumTh in the parameter set;

[0400] ·Parse the corresponding threshold according to the default threshold at the decoding end or from the parameter set or the bitstream, and determine the third value according to the first parameter and / or the second parameter. For example, the threshold parameter Q1 of the ratio (volume density) of the volume or area of the point cloud slice to the number of points is obtained through the decoding end, the parameter set or the bitstream. When the volume density of the point cloud slice is less than Q1, the third value is determined as k1; otherwise, the third value k2 is adopted.

[0401] ·Parse the corresponding threshold according to the default threshold at the decoding end or from the parameter set or the bitstream, and determine the fourth value in an adaptive manner according to the first parameter and / or the second parameter.

[0402] The adaptive manner refers to adjusting the fourth value itself according to the information of the current node and / or the decoded node. That is, when the current node and / or the decoded node meet a preset condition, the fourth value itself is adjusted.

[0403] For example, the threshold parameter k1 is acquired, the number of reference nodes of the current node is counted as N1, and the threshold of the reference node for the preset condition is thresN1. When N1>thresN1 is satisfied, it is determined that the fourth value is k1=k1+1; for another example, the threshold parameter is acquired as k2, the number of child nodes of the reference node is counted as N2, and the threshold of the child nodes of the reference node for the preset condition is thresN2. When N2<thresN2 is satisfied, it is determined that the fourth value is k2=k2-1.

[0404] In some embodiments, the fourth value is obtained in an adaptive manner according to the current node information.

[0405] The current node information includes at least one of the following:

[0406] ·The number of reference nodes that meet the preset condition;

[0407] ·The number of child nodes of the reference nodes that meet the preset condition;

[0408] ·The distribution of the number of child nodes of the reference nodes that meet the preset condition;

[0409] ·The positional relationship between the child node of the reference node that meets the preset condition and the current child node.

[0410] The preset condition means that the reference node satisfies a high-plane child node or a low-plane child node.

[0411] The distribution of the number of child nodes refers to the position situation of child node distribution. For example, there are 3 reference nodes that meet the condition, and the distribution of the number of child nodes is 4:1:1 or 2:2:2, and so on.

[0412] In other embodiments, a fourth value is obtained adaptively based on the statistical characteristics of the preceding decoded nodes. For example, an interval M1 is set, and for every M1 decoded nodes, the conditions that meet the criteria are statistically analyzed. These conditions include at least one of the following:

[0413] • The number of decoded nodes that satisfy the planar pattern;

[0414] • The number of reference nodes for decoded nodes that satisfy the planar pattern;

[0415] • The number of child nodes of the reference node of the decoded node that satisfies the planar pattern;

[0416] • The ratio of the number of reference nodes of a decoded node that satisfies the planar pattern to the number of non-empty reference nodes;

[0417] • The ratio of the number of child nodes of the reference node of a decoded node that satisfies the planar pattern to the number of reference nodes.

[0418] In other embodiments, a fourth value is obtained adaptively based on the statistical characteristics of previously decoded nodes. An interval M2 is set, and for every M2 decoded nodes, non-empty nodes that meet certain conditions are counted. These conditions include at least one of the following:

[0419] • The number of reference nodes corresponding to nodes that satisfy the planar pattern;

[0420] • The number of child nodes of the reference node corresponding to the node that satisfies the planar pattern;

[0421] • The ratio of the number of reference nodes corresponding to nodes that satisfy the planar pattern to the number of non-empty reference nodes corresponding to nodes that satisfy the planar pattern.

[0422] • The ratio of the number of child nodes of the reference node corresponding to the node that satisfies the planar pattern to the number of the reference nodes.

[0423] (c) Determine the geometric pattern of the current node based on the reference node information obtained in (a) and the decision threshold obtained in (b). The geometric pattern of the current node is determined by any one or a combination of the following methods:

[0424] • Determine the geometric pattern of the current node based on the child node statistics of the reference node:

[0425] In some embodiments, if the number of low-plane occupancy sub-nodes is less than a first threshold and the number of high-plane occupancy sub-nodes is greater than a second threshold, the geometric mode of the current node is determined as a first decoding mode; or, if the number of low-plane occupancy sub-nodes is greater than a third threshold and the number of high-plane occupancy sub-nodes is less than a fourth threshold, the geometric mode of the current node is determined as a second decoding mode.

[0426] For example, when the number of low-plane occupancy sub-nodes LowOccNum<k1 and the number of high-plane occupancy sub-nodes HighOccNum>k2, the process enters mode A1; when the number of low-plane occupancy sub-nodes LowOccNum>k3 and the number of high-plane occupancy sub-nodes HighOccNum<k4, the process enters mode B1.

[0427] ·Determine the geometric mode of the current node according to the position of the current to-be-decoded sub-node:

[0428] ·Sub-nodes on the same plane enter the same mode: for example, as shown in Figure 4 , the 0th, 2nd, 4th, and 6th sub-nodes on the low plane enter the same mode B2;

[0429] ·Partial sub-nodes on the same plane enter the same mode: for example, as shown in Figure 4 , the 0th and 2nd sub-nodes on the low plane enter mode B21, and the 4th and 6th sub-nodes enter mode B22;

[0430] ·Sub-nodes on the same plane enter different modes;

[0431] ·Sub-nodes at different positions enter different modes;

[0432] ·Sub-nodes at specific positions enter different modes; for example, if the current to-be-decoded sub-node is the first sub-node (the 0th sub-node), the process enters mode A21; if the current to-be-decoded sub-node is the last sub-node (the 7th sub-node), the process enters mode B21; if the current to-be-decoded sub-node is another sub-node, mode C21 is adopted.

[0433] ·Determine the geometric mode of the current node according to the positions of the decoded sub-nodes of the current node:

[0434] Please refer to Figure 12 , Figure 12 which shows a schematic diagram of determining the geometric mode of the current node according to the positions of the decoded sub-nodes of the current node, where the dashed line represents the plane where the reference node is located, P represents the decoded node of the current node, and Q represents the to-be-decoded node of the current node.

[0435] ·If the current to-be-decoded sub-node has no decoded sub-node on the same plane, the plane mode is not entered;

[0436] • When the decoded child node P is a transition point (the decoded child node P and the reference node are not on the same plane) and the child node Q to be decoded is not on the same plane as the decoded node P, enter mode C1, such as... Figure 12 (a);

[0437] • When the decoded child node P is a transition point (the decoded child node P and the reference node are not on the same plane) and the child node Q to be decoded is on the same plane as the decoded node P, enter mode C2, as follows. Figure 12 (b);

[0438] • When the decoded child node P and the reference node are on the same plane, and the child node Q to be decoded is on the same plane as the decoded node P, enter mode C3, as follows: Figure 12 (c);

[0439] • When the decoded child node P and the reference node are on the same plane, and the child node Q to be decoded is a transition point (the child node Q to be decoded and the decoded node P are not on the same plane), enter mode C4, such as... Figure 12 (d)

[0440] • Determine the geometric pattern of the current node based on a decision threshold:

[0441] In some embodiments, if the threshold information is K1, mode A4 is entered; if the threshold information is K2, mode B4 is entered.

[0442] • If the reference node does not satisfy the planar pattern and the N2 decoded child nodes of the current node are in the same plane, the child nodes that are also in the same plane are in pattern E.

[0443] It is important to note that the above conditions can be used individually or in combination. For example, if the decision threshold K1 is selected, and LowOccNum < 1 and HighOccNum > K1, then enter mode A41; if the current child node to be decoded is in the low plane and LowOccNum > K1 and HighOccNum < 1, then enter mode A42. As another example, if the decision threshold K2 is selected, and LowOccNum < 1 and HighOccNum > K2, then enter mode B41; if the current child node to be decoded is in the low plane and LowOccNum > K2 and HighOccNum < 1, then enter mode B42.

[0444] (d) After determining the geometric pattern of the current node, different decoding methods are used based on the pattern determination results.

[0445] In some embodiments, if the current child node to be decoded is the last child node and all the previously decoded child nodes are empty, then the placeholder code of the current child node is 1, and no parsing is required.

[0446] In summary, the method provided in this application determines the geometric pattern of the current node by obtaining the geometric information of the first node related to the current node; by combining the geometric information in the octree partitioning process, the determination of the geometric pattern of the current node is optimized, and historical node information and the neighborhood information of the current node are utilized, so that decoding can be performed according to the entropy decoding method corresponding to the geometric pattern, thereby improving the efficiency of point cloud data encoding and decoding.

[0447] Please refer to Figure 13 This document illustrates a flowchart of a method for determining a geometric pattern according to an embodiment of this application. For ease of explanation, the description focuses solely on a computer device as the executing entity for each step. This method is executed by a decoding end / decoding end device / computer device and may include the following steps:

[0448] Step 901: Determine whether the current node uses geometric mode decoding;

[0449] The geometric mode includes at least one of the following: isolated point mode, planar mode.

[0450] For example, it can be determined whether the current node uses geometric mode decoding at the point cloud or point cloud slice level, macroblock level, or octree depth level.

[0451] For example, it is determined that planar mode is enabled for the point cloud geometry slice containing the current slice, i.e., the parameter planarSlice = true is used to indicate that planar mode is enabled.

[0452] Step 902: Select a reference node from the previously decoded nodes;

[0453] The steps to select a reference node are as follows:

[0454] 1) Taking the XY axis direction as an example, select fixed position nodes (x-1, y, z), (x, y-1, z), (x-1, y-1, z) in the XY axis direction.

[0455] 2) Count the number of non-empty nodes k. If the number of non-empty nodes among the above three nodes is less than the threshold K1, then the reference node is determined in a preset order within the range of the X-axis offset threshold xoffset and the Y-axis offset threshold yoffset; for example, the preset order is represented by the array form of xoffset and yoffset as xOffset[]={1,1,0,0,1,2,2,2,3,3,3,3,2,1,0}, yOffset[]={0,1,1,2,2,2,1,0,0,1,2,3,3,3,3}.

[0456] K1, xoffset, and yoffset are preset parameters, or parameters determined from the decoding end, or parameters obtained by parsing from the parameter set or bitstream.

[0457] 3) If the decoded node (x-xoffset[i], y-yoffset[j], z) corresponding to the offset is a non-empty node, then k = k + 1; where i is a positive integer less than the X-axis offset threshold xoffset, and j is a positive integer less than the Y-axis offset threshold yoffset.

[0458] 4) Stop when the selected reference node k = M1; M1 is the threshold for the number of reference nodes. That is, if the number of selected reference nodes reaches the threshold, no more reference nodes will be selected.

[0459] Step 903: Obtain the occupancy status of the child nodes of the reference node;

[0460] The number of occupied child nodes in the low plane (LowOccNum) and the number of occupied child nodes in the high plane (HighOccNum) of the reference node are counted.

[0461] Step 904: Determine the geometric pattern of the current node based on the geometric information of the current node and the occupancy of the child nodes of the reference node;

[0462] For the i-th child node to be decoded in the current node, the encoded placeholder code of the current node is codedOccupancy.

[0463] If the child node to be decoded in the current node is located in the low plane, and there are no child nodes in the reference node or the decoded child node located in the low plane, enter mode A; if the child node to be decoded in the current node is located in the high plane, and there are no child nodes in the reference node or the decoded child node located in the high plane, enter mode B.

[0464] Step 905: Decode based on the geometry pattern of the current node.

[0465] Design different context models for patterns A and B, and retain the existing context model for other cases. The context model corresponds to the entropy decoding method, and the current node is decoded based on the context model.

[0466] Please refer to Figure 14 This document illustrates a flowchart of a reference node selection method provided in one embodiment of this application. For ease of explanation, the description focuses solely on a computer device as the executing entity for each step. This method is performed by a decoding end / decoding end device / computer device and may include the following steps:

[0467] Step 1001: Select a fixed-position node;

[0468] For example, taking the XY axis direction as an example, select fixed position nodes (x-1, y, z), (x, y-1, z), (x-1, y-1, z).

[0469] Step 1002: Determine the offset threshold and the supplementary threshold;

[0470] For example, offset thresholds xoffset along the X-axis and yoffset along the Y-axis are determined; supplementary thresholds addXoffset along the X-axis and addYoffset along the Y-axis are determined. The offset thresholds indicate the maximum offset threshold along the coordinate axis; the supplementary thresholds are used to expand the selection range of reference nodes when there are many empty nodes.

[0471] For example, determine the offset thresholds xoffset and yoffset, and the initial values ​​of the supplementary thresholds addXOffset = k1 and addYOffset = k2; where the values ​​of k1 and k2 can be default values, or they can be determined based on the size of the current geometry or the XY value of the current node.

[0472] Step 1003: Determine the supplementary threshold based on fixed location nodes;

[0473] For example, if node (x-1, y, z) is not empty, then the supplementary threshold is determined to be addXOffset = k3; if node (x, y-1, z) is not empty, then the supplementary threshold is determined to be addYOffset = k4; if (x-1, y-1, z) is not empty, then the supplementary thresholds are determined to be addXOffset = k5 and addYOffset = k6. In one possible implementation, k1 = 2, k2 = 2, k3 = 0, k4 = 0, k5 = 0, k6 = 0.

[0474] Step 1004: Select reference nodes within the offset threshold range until the number of reference nodes reaches the threshold.

[0475] For example, reference nodes are determined in a certain order within the offset thresholds xoffset and yoffset. This could be based on Hilbert order, linear order, Morton order, a preset order, or a default order, etc.

[0476] If the selected node (x-xoffset[i]–addXOffset, y-yoffset[j]-addYOffset, z) is not empty, the number of selected reference nodes k = k+1.

[0477] Set a threshold number M2. When the number of selected reference nodes k = M2, the selection of reference nodes ends.

[0478] Please refer to Figure 15 This document illustrates a flowchart of a reference node selection method provided in one embodiment of this application. For ease of explanation, the description focuses solely on a computer device as the executing entity for each step. This method is performed by a decoding end / decoding end device / computer device and may include the following steps:

[0479] Step 1101: Select a fixed-position node;

[0480] For example, taking the XY axis direction as an example, select fixed position nodes (x-1, y, z), (x, y-1, z), (x-1, y-1, z).

[0481] Step 1102: Determine the offset value group or offset threshold;

[0482] For example, an offset value set xoffset along the X-axis and an offset value set yoffset along the Y-axis are determined; or, an offset threshold xoffset along the X-axis and an offset threshold yoffset along the Y-axis are determined. The offset value set indicates the order in which reference nodes are selected by offset; the offset threshold is used to indicate the maximum offset range along the coordinate axis direction.

[0483] The values ​​of xoffset and yoffset can be default values; or they can be determined by the dimensions of the current geometry in the X and Y axes.

[0484] Step 1103: Based on the number of non-empty nodes among the selected reference nodes, determine the selection method for subsequent reference nodes;

[0485] The selection method for subsequent reference nodes is determined based on the number of non-empty nodes among the selected reference nodes; or, the selection method for subsequent reference nodes is determined based on the range of the number of non-empty nodes among the selected reference nodes; or, the selection method for subsequent reference nodes is determined based on at least one threshold and the number of non-empty nodes among the selected reference nodes.

[0486] For example, count the number of non-empty nodes k among the selected reference nodes. If k = 0, do not continue searching for subsequent reference nodes. If k < 3, determine the reference nodes in the default order within the offset value group or offset threshold xoffset, yoffset. If k = 3, use reference nodes at other fixed positions, such as (x-2, y, z).

[0487] Step 1104: Select reference nodes until the number of reference nodes reaches the threshold.

[0488] Select reference nodes according to the subsequent reference node selection method determined in step 1103.

[0489] If the selected node (x-xoffset[i]–addXOffset, y-yoffset[j]-addYOffset, z) is not empty, the number of selected reference nodes k = k+1.

[0490] Set a threshold number M2. When the number of selected reference nodes k = M2, the selection of reference nodes ends.

[0491] In some embodiments, the context model index value ctxIdxInc of the placeholder code occupancy is determined.

[0492] Based on the decoded node information, first determine the offset value ctx_offset of ctxIdxInc. The offset value has three values: 0, 257, and 258. When the geometry planar mode flag gsh_planar_mode is 1, perform the following operation; otherwise, ctx_offset defaults to 0.

[0493]

[0494] Here, codedOccupancyCode represents the decoded child nodes of the current node. LowOccNum represents the number of occupied child nodes in the low plane among the child nodes of the current node's neighboring nodes; HighOccNum represents the number of occupied child nodes in the high plane among the child nodes of the current node's neighboring nodes; these two variables are obtained by decoding the next part of the placeholder code.

[0495] In some embodiments, placeholder code decoding is performed.

[0496] Initialize two variables: LowOccNum and HighOccNum to 0. LowOccNum represents the number of occupied child nodes in the low plane among the current node's neighbors; HighOccNum represents the number of occupied child nodes in the high plane among the current node's neighbors. When the geometric planar mode flag `gsh_planar_mode` is 1, perform the following operations for the child node with childIdx; otherwise, LowOccNum and HighOccNum are directly set to 0:

[0497]

[0498] Wherein, preNodePlanarNum represents the number of reference nodes that meet the conditions, xOffset is the offset along the X-axis, yOffset is the offset along the Y-axis, neighborOccupancyCode represents the reference node placeholder code, GeometryNodeOccupancyCode represents the geometry placeholder code mapping table, planarNodeOffset represents the offset value that meets the conditions, neighborOccupancyLowCode represents the placeholder code of the reference node located in the low plane, and neighborOccupancyHighCode represents the placeholder code of the reference node located in the high plane.

[0499] The `partitionSkip` is a geometric partition type identifier, consisting of a 3-bit unsigned integer; it indicates whether the current node's partition type is an octree, quadtree, or binary tree. The three bits, from most significant to least significant, represent whether to skip a partition in the x, y, and z directions, with bit '0' indicating no partition skipping and bit '1' indicating skipping.

[0500] Please refer to Figure 16 This document illustrates a flowchart of a method for determining a geometric pattern according to an embodiment of this application. For ease of explanation, the description focuses solely on a computer device as the executing entity for each step. This method is executed by an encoding end / encoding end device / computer device and may include the following steps:

[0501] Step 820: Obtain the geometric information of the first node;

[0502] The current node is the node currently being encoded.

[0503] The first node is the node that provides information for determining the geometric pattern of the current node. The first node is geometrically related to the current node and contains encoded information about historical nodes and / or the current node's neighborhood. For example, the first node may be a neighbor node of the current node; or it may be a preceding encoded node of the current node; or it may be the parent node of the current node, and so on.

[0504] In some embodiments, the first node is at least one of the following nodes:

[0505] • Reference node;

[0506] • Child nodes of the reference node;

[0507] • The encoded child nodes of the current node;

[0508] • The child nodes to be encoded in the current node.

[0509] In some embodiments, the selection range of reference nodes includes at least one of the following nodes:

[0510] • Encoded nodes;

[0511] • Non-empty encoded nodes;

[0512] • Encoded nodes at the same level as the current node;

[0513] • Encoded nodes that are at the same level as the current node and are not empty;

[0514] • Coded nodes at fixed positions;

[0515] • A fixed-position, non-empty, encoded node;

[0516] • The parent node of the current node;

[0517] • Neighboring nodes that share the same parent node as the current node;

[0518] • Child nodes of neighboring nodes that share the same parent node as the current node.

[0519] In this context, an encoded node refers to a node whose preceding sequence has been encoded, including the current node's parent node; a non-empty encoded node refers to a node whose preceding sequence has been encoded and at least one child node is occupied; an encoded node at the same level as the current node refers to an encoded node located at the same level as the current node in the octree partition, excluding the current node's parent node; a non-empty encoded node at the same level as the current node refers to an encoded node located at the same level as the current node in the octree partition and at least one child node is occupied; a fixed-position encoded node refers to an encoded node at a fixed position relative to the current node; and a fixed-position non-empty encoded node refers to an encoded node at a fixed position relative to the current node and at least one child node is occupied. This fixed position can be understood as a fixed offset position, a specified position, or a similar meaning.

[0520] In some embodiments, encoded nodes at fixed positions are obtained by setting a preset offset. Encoded nodes at fixed positions include at least one of the following (taking the current node coordinates as (x, y, z) as an example):

[0521] • The encoded node corresponding to the current node offset by a first preset amount along the first coordinate axis direction, where,

[0522] The first preset amount is a pre-set offset along the first coordinate axis. Taking the first coordinate axis as the X-axis as an example, if the first preset amount is set to -1 or -2, then the reference node is (x-1, y, z).

[0523] (x-2, y, z).

[0524] • The current node is offset along the second coordinate axis by a second preset amount, corresponding to the encoded node. The second preset amount is a pre-set offset along the second coordinate axis. Taking the second coordinate axis as the Y-axis as an example, if the second preset amount is set to -1 or -2, then the reference nodes are (x, y-1, z) and (x, y-2, z).

[0525] The coded node corresponding to the current node offset by a third preset amount along the first coordinate axis and a fourth preset amount along the second coordinate axis. The third preset amount is a pre-set offset along the first coordinate axis, and the fourth preset amount is a pre-set offset along the second coordinate axis. Taking the first coordinate axis as the X-axis and the second coordinate axis as the Y-axis as an example, if the third preset amount is set to -1 and the fourth preset amount is set to -1, then the reference node is (x-1, y-1, z).

[0526] The first and second coordinate axes are coordinate axes in two different directions in the three-dimensional coordinate system.

[0527] In some embodiments, at least one of the aforementioned first preset amount, second preset amount, third preset amount, and fourth preset amount is:

[0528] • The default number or group of numbers;

[0529] • The numerical value or group of numerical values ​​that meets the second condition;

[0530] • Determined based on the fulfillment of the second condition;

[0531] • Determined based on at least one piece of information.

[0532] In some embodiments, at least one of the aforementioned first preset amount, second preset amount, third preset amount, and fourth preset amount varies based on a corresponding offset value change, wherein the offset value change is:

[0533] • The default number or group of numbers;

[0534] • The numerical value or group of numerical values ​​that meets the second condition;

[0535] • Determined based on the fulfillment of the second condition;

[0536] • Determined based on at least one piece of information.

[0537] For example, when the number of non-empty nodes in the decoded nodes is large, a larger offset value change can be selected to expand the range of offset and obtain more non-empty nodes.

[0538] For example, determine the offset threshold xoffset along the X-axis and the change in offset value addXoffset along the X-axis. Select three fixed-position nodes. If two of the selected fixed-position nodes are empty, addXoffset = 2; if one of the selected fixed-position nodes is empty, addXoffset = 1; if none of the selected fixed-position nodes are empty, addXoffset = 0. The preset value is the sum of the offset threshold xoffset and the change in offset value addXoffset. That is, when there are more empty nodes, the preset value changes more based on the change in offset value; when there are fewer empty nodes, the preset value changes less based on the change in offset value.

[0539] In some embodiments, at least one of the aforementioned first coordinate axis direction and second coordinate axis direction is:

[0540] • Default coordinate axis direction;

[0541] • The coordinate axis direction corresponding to the condition that the second condition is met;

[0542] • Determined based on the fulfillment of the second condition;

[0543] • Determined based on at least one piece of information.

[0544] The second condition relates to at least one of the following pieces of information:

[0545] • Geometric patch information (e.g., geometric patch density or point cloud bounding box dimensions);

[0546] • The relative position of the current node;

[0547] • Placeholder information for the parent node of the current node;

[0548] • Placeholder information for the current node's neighboring nodes;

[0549] • Placement information for the first k reference nodes.

[0550] At least one piece of information includes at least one of the following:

[0551] • Quantization parameters;

[0552] • Data geometric accuracy;

[0553] • Geometric sheet density;

[0554] • Geometric piece dimensions;

[0555] • Placeholder information for reference nodes;

[0556] • The relative position of the current node;

[0557] • The parent node of the current node and its neighboring nodes.

[0558] The aforementioned preset values ​​and coordinate axis directions can all be default values ​​or preset values; or, some can be default values ​​and some can be determined based on the second condition or relevant information; or, all can be determined based on relevant information, and so on. That is, any of the above methods for selecting preset values ​​and coordinate axes can be used, or a combination of them can be used.

[0559] For example, a default set of values ​​can be used as the preset value; another example is that the second condition, which is the parameter Q1 indicating the density of the geometric patch, selects the corresponding value k1 if the current density of the geometric patch is greater than Q1, otherwise selects the value k2; yet another example is that if there are multiple / groups of candidate values ​​satisfying the second condition, one / group can be selected as the preset value; yet another example is that the preset value is determined based on the geometric patch information, and the preset value is increased if the density of the geometric patch is low; yet another example is that the preset value is increased if the current node is the only child node of its parent node; yet another example is that the preset value is increased if the neighboring nodes of the current node's parent node are empty, and so on. This application does not restrict the method of selecting preset values ​​and coordinate axes.

[0560] In some embodiments, encoded nodes at fixed positions are obtained by setting a preset amount and a fixed multiple of the offset. For example, the product of the preset amount and the fixed multiple is the actual offset used. Encoded nodes at fixed positions include at least one of the following (taking the current node coordinates as (x, y, z) as an example):

[0561] • The current node is offset along the first coordinate axis by a first multiple offset, corresponding to the encoded node. The first multiple offset is obtained by multiplying a first preset amount by a first multiple, which is a pre-set offset along the first coordinate axis. Taking the first coordinate axis as the X-axis as an example, if the first preset amount is set to -1 or -2, and the first multiple is set to 2, then the reference nodes are (x-2, y, z) and (x-4, y, z).

[0562] • The current node is offset along the second coordinate axis by a second multiple offset, corresponding to the encoded node. The second multiple offset is obtained by multiplying a second preset amount by the second multiple. The second preset amount is a pre-set offset along the second coordinate axis. Taking the second coordinate axis as the Y-axis as an example, if the second preset amount is set to -1 or -2, and the second multiple is set to 4, then the reference nodes are (x, y-4, z) and (x, y-8, z).

[0563] The coded node corresponding to the current node offset by a third multiple of the first coordinate axis and a fourth multiple of the second coordinate axis. The third multiple offset is obtained by multiplying a third preset value by a third multiple, and the fourth multiple offset is obtained by multiplying a fourth preset value by a fourth multiple. The third preset value is a pre-set offset along the first coordinate axis, and the fourth preset value is a pre-set offset along the second coordinate axis. Taking the first coordinate axis as the X-axis and the second coordinate axis as the Y-axis as an example, if the first preset value is set to m3, the second preset value is set to m4, and the third and fourth multiples are set to 1, then the reference node is (x-m3, y-m4, z).

[0564] Among them, the first coordinate axis and the second coordinate axis are two coordinate axes in different directions in the three-dimensional coordinate system; the first multiple, the second multiple, the third multiple and the fourth multiple are preset fixed multiples, which can be selected according to the actual situation. For example, the fixed multiples are selected based on the quantization parameters of the point cloud.

[0565] In some embodiments, at least one of the aforementioned first preset amount, second preset amount, third preset amount, fourth preset amount, first multiple, second multiple, third multiple, and fourth multiple is:

[0566] • The default number or group of numbers;

[0567] • The numerical value or group of numerical values ​​that meets the second condition;

[0568] • Selected from multiple candidate values ​​based on a second condition that is met;

[0569] • Determined based on at least one piece of information.

[0570] In some embodiments, at least one of the aforementioned first coordinate axis direction and second coordinate axis direction is:

[0571] • The default number or group of numbers;

[0572] • The numerical value or group of numerical values ​​that meets the second condition;

[0573] • Determined based on the fulfillment of the second condition;

[0574] • Determined based on at least one piece of information.

[0575] The second condition relates to at least one of the following pieces of information:

[0576] • Geometric slice information;

[0577] • The relative position of the current node;

[0578] • Placeholder information for the parent node of the current node;

[0579] • Placeholder information for the current node's neighboring nodes;

[0580] • Placement information for the first k reference nodes.

[0581] At least one piece of information includes at least one of the following:

[0582] • Quantization parameters;

[0583] • Data geometric accuracy;

[0584] • Geometric sheet density;

[0585] • Geometric piece dimensions;

[0586] • Placeholder information for reference nodes;

[0587] • The relative position of the current node;

[0588] • The parent node of the current node and its neighboring nodes.

[0589] In some embodiments, encoded nodes at fixed positions are obtained by setting an offset threshold. Encoded nodes at fixed positions include at least one of the following (taking the current node coordinates as (x, y, z) as an example):

[0590] The current node is an encoded node whose offset along the first coordinate axis is less than a first offset threshold. The first offset threshold is a pre-set maximum offset along the first coordinate axis. Taking the first coordinate axis as the X-axis as an example, if the first offset threshold is set to M1, then the reference node is (x-

[0591] m1, y, z), where m1 <M1。

[0592] The current node is an encoded node whose offset along the second coordinate axis is less than the second offset threshold, which is a pre-set maximum offset along the second coordinate axis. Taking the Y-axis as an example, if the second offset threshold is set to M2, the reference node is (x, y - m2, z), where m2... <M2。

[0593] • Encoded nodes whose offset along the first coordinate axis and the offset along the second coordinate axis are less than a third offset threshold. The third offset threshold is a pre-set maximum value of the sum of the offsets along the first and second coordinate axes. Taking the first coordinate axis as the X-axis and the second coordinate axis as the Y-axis as an example, if the third offset threshold is set to M3, then the reference node is (x-m1, y-m2, z), where m1+m2... <M3。

[0594] The first and second coordinate axes are coordinate axes in two different directions in the three-dimensional coordinate system.

[0595] The aforementioned first offset threshold, second offset threshold, third offset threshold, fourth offset threshold, first coordinate axis direction, and second coordinate axis direction are determined based on at least one of the following: quantization parameters; data geometric precision; geometric patch density; geometric patch size; the relative position of the current node; and the parent node and neighboring nodes of the current node.

[0596] In some embodiments, at least one of the aforementioned first offset threshold, second offset threshold, third offset threshold, and fourth offset threshold is:

[0597] • The default number or group of numbers;

[0598] • The numerical value or group of numerical values ​​that meets the second condition;

[0599] • Determined based on the fulfillment of the second condition;

[0600] • Determined based on at least one piece of information.

[0601] In some embodiments, at least one of the aforementioned first coordinate axis direction and second coordinate axis direction is:

[0602] • Default coordinate axis direction;

[0603] • The coordinate axis direction corresponding to the condition that the second condition is met;

[0604] • Determined based on the fulfillment of the second condition;

[0605] • Determined based on at least one piece of information.

[0606] The second condition relates to at least one of the following pieces of information:

[0607] • Geometric slice information;

[0608] • The relative position of the current node;

[0609] • Placeholder information for the parent node of the current node;

[0610] • Placeholder information for the current node's neighboring nodes;

[0611] • Placement information for the first k reference nodes.

[0612] At least one piece of information includes at least one of the following:

[0613] • Quantization parameters;

[0614] • Data geometric accuracy;

[0615] • Geometric sheet density;

[0616] • Geometric piece dimensions;

[0617] • Placeholder information for reference nodes;

[0618] • The relative position of the current node;

[0619] • The parent node of the current node and its neighboring nodes.

[0620] In some embodiments, encoded nodes at fixed positions are obtained by setting an offset threshold, and a number threshold is set for the number of encoded nodes selected. Encoded nodes are selected in a preset order until a fixed number of encoded nodes are selected.

[0621] In some embodiments, the encoded nodes at fixed positions are selected as follows: a fixed number of encoded nodes that meet a first condition are selected in a first order, wherein the first order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order. The first condition is a pre-set condition, for example, the node is a non-empty node.

[0622] In some embodiments, among the encoded nodes whose offset along the first coordinate axis is less than a first offset, a fixed number of encoded nodes that meet the selection criteria are selected in a first order; among the encoded nodes whose offset along the second coordinate axis is less than a second offset, a fixed number of encoded nodes that meet the selection criteria are selected in a second order; among the encoded nodes whose sum of the offset along the first coordinate axis and the offset along the second coordinate axis is less than a third offset, a fixed number of encoded nodes that meet the selection criteria are selected in a third order; wherein, the first order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order; the second order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order; the third order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order; the first offset is at least one offset less than a first offset threshold; the second offset is at least one offset less than a second offset threshold; and the third offset is at least one offset less than a third offset threshold.

[0623] In other embodiments, among the encoded nodes whose offset along the first coordinate axis is less than a first offset threshold, a fixed number of encoded nodes that meet the selection criteria are selected in a first order; among the encoded nodes whose offset along the second coordinate axis is less than a second offset threshold, a fixed number of encoded nodes that meet the selection criteria are selected in a second order; among the encoded nodes whose sum of the offset along the first coordinate axis and the offset along the second coordinate axis is less than a third offset threshold, a fixed number of encoded nodes that meet the selection criteria are selected in a third order; wherein the first order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order; the second order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order; and the third order is one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order.

[0624] The preset order is the selection order of nodes at fixed positions set in advance; the default order is the order determined by the encoder or parsed from the parameter set or bitstream corresponding to the current node; the coordinate axis order is the order selected sequentially or alternately according to the coordinate axes; for linear order, Hilbert order, or Morton order, please refer to [link to relevant documentation]. Figure 10 .

[0625] Figure 10 This illustration shows a schematic diagram of the order of selecting coded nodes at fixed positions, provided by an exemplary embodiment of this application.

[0626] Figure 10 Part (a) illustrates the Hilbert sequence along the X-axis. The figure shows that with both the X-axis and Y-axis offset thresholds of 4, there are 16 coded nodes available at fixed positions. If the threshold is less than 16, nodes are selected sequentially according to the arrows in the figure until the fixed number of coded nodes is reached. For example, with a threshold of 3, the fixed number of nodes selected is also 3, so (x, y), (x-1, y), and (x-1, y-1) are selected sequentially as coded nodes at fixed positions.

[0627] Figure 10 Part (b) illustrates the Morton / zigzag sequence along the X-axis. The figure shows that with both the X-axis and Y-axis offset thresholds of 4, there are 16 selectable coded nodes at fixed positions. If the number threshold is less than 16, nodes are selected sequentially according to the arrow directions in the figure until the fixed number of coded nodes is reached. For example, with a number threshold of 4, and a fixed number of nodes of 4, (x, y), (x-1, y), (x, y-1), and (x-1, y-1) are selected sequentially as coded nodes at fixed positions.

[0628] Figure 10 Section (c) illustrates the linear sequence along the X-axis. The figure shows that with both the X-axis and Y-axis offset thresholds of 4, 16 coded nodes can be selected at fixed positions. If the threshold is less than 16, nodes are selected sequentially according to the arrows in the figure until the fixed number of coded nodes is reached. For example, with a threshold of 5, and a fixed number of nodes of 5, (x, y), (x-1, y), (x-2, y), (x-3, y), and (x, y-1) are selected sequentially as coded nodes at fixed positions.

[0629] It should be noted that the method of selecting coded nodes at fixed positions is not limited to the above methods, and this application does not impose any restrictions on this.

[0630] A fixed-position, non-empty encoded node is a node among the aforementioned fixed-position encoded nodes that satisfies the condition that at least one child node is occupied. A fixed-position, non-empty encoded node can be obtained through at least one of the following methods (taking the current node coordinates as (x, y, z) as an example):

[0631] After obtaining the encoded nodes at fixed positions using the aforementioned method, select the non-empty encoded nodes. For example, obtain all encoded nodes at fixed positions within an offset threshold range, and select all non-empty nodes.

[0632] ·Select an encoded node at a fixed position based on the aforementioned method of setting an offset threshold, and when the encoded node at the fixed position is a null node, increment its offset along the coordinate axis by one. For example, if the offset threshold along the X-axis direction is set to M1, the node is (x-m1, y, z), where m1<M1; if (x-m1, y, z) is a null node, then m1 = m1+1; for another example, if the offset threshold along the Y-axis direction is set to M2, the reference node is (x, y-m2, z), where m2<M2; if (x, y-m2, z) is a null node, then m2 = m2+1.

[0633] ·Set a number threshold. Select encoded nodes at fixed positions based on the aforementioned method of setting an offset threshold, and when the encoded node at the fixed position is a null node, increment its offset along the coordinate axis by one until the number of non-null encoded nodes at fixed positions reaches the number threshold. In some embodiments, a fixed number of encoded nodes meeting the first condition are selected according to a first order, until the fixed number (the number threshold) of encoded nodes are fully selected; the first order may be any one of a default order, a preset order, a Hilbert order, a Morton order, a linear order, and a coordinate axis order, and the first condition is that the node is non-null.

[0634] In some embodiments, before the step 820, it is determined whether the current node is encoded using a geometry mode. If the current node is encoded using the geometry mode, step 820 and step 840 are executed.

[0635] Step 840: Determine the geometry mode of the current node according to the geometry information of the first node.

[0636] The geometry mode is mode information corresponding to the entropy coding mode. The geometry modes of point cloud data include an isolated point mode, a plane mode, and so on. The isolated point mode is used for encoding and / or decoding of nodes determined to be isolated points; the plane mode is used for encoding and / or decoding of nodes determined to be plane mode nodes. Illustratively, the plane mode means that the reference nodes of the current node are located on the same plane, or the encoded child nodes of the current node are located on the same plane, and so on.

[0637] Exemplarily, the geometry mode of the current node is determined to be a target coding mode based on the geometry information of the first node. The target coding mode is a coding mode corresponding to a plane mode node.

[0638] When the first node includes a child node of the reference node, the geometry mode of the current node is determined according to the occupancy status of the first node; when the first node includes the encoded child nodes of the current node, the geometry mode of the current node is determined according to the plane position of the first node, and so on.

[0639] Determine the geometric mode of the current node based on the geometric information of the first node; or determine the geometric mode of the current node based on at least one threshold and the geometric information of the first node. That is, the geometric mode of the current node can be determined only through the geometric information of the first node; alternatively, the obtained threshold and the geometric information of the first node (for example, a child node of a reference node) can be combined, and the geometric information of the first node is compared with at least one threshold to determine the geometric mode of the current node.

[0640] In some embodiments, when the number of low-plane occupied child nodes is less than a first threshold and the number of high-plane occupied child nodes is greater than a second threshold, it is determined that the current node is in a first coding mode; or, when the number of low-plane occupied child nodes is greater than a third threshold and the number of high-plane occupied child nodes is less than a fourth threshold, it is determined that the current node is in a second coding mode. Herein, the low-plane occupied child node refers to an occupied child node of the reference node that is located on a low plane, and the high-plane occupied child node refers to an occupied child node of the reference node that is located on a high plane; or, the low-plane occupied child node refers to an occupied child node of the reference node that meets a preset condition and is located on a low plane, and the high-plane occupied child node refers to an occupied child node of the reference node that meets the preset condition and is located on a high plane, where the preset condition is used to indicate that the reference node is a high-plane node or a low-plane node.

[0641] It should be noted that the high-plane node refers to a node whose all occupied child nodes are located on the high plane, and the low-plane node refers to a node whose all occupied child nodes are located on the low plane; or, the high-plane node refers to a node that satisfies that the number of occupied child nodes located on the low plane is less than the first number of child nodes and the number of occupied child nodes located on the high plane is greater than the second number of child nodes, and the low-plane node refers to a node that satisfies that the number of occupied child nodes located on the low plane is greater than the third number of child nodes and the number of occupied child nodes located on the high plane is less than the fourth number of child nodes; wherein the first number of child nodes, the second number of child nodes, the third number of child nodes, and the fourth number of child nodes are preset values.

[0642] For example, a first threshold k1, a second threshold k2, a third threshold k3, and a fourth threshold k4 are set. The number of low-plane occupied child nodes LowOccNum and the number of high-plane occupied child nodes HighOccNum are counted. When LowOccNum<k1 and HighOccNum>k2, it is determined that the current node is in the first coding mode; when LowOccNum>k3 and HighOccNum<k4, it is determined that the current node is in the second coding mode.

[0643] In some embodiments, when the number of low-plane occupied child nodes is less than a first threshold, it is determined that the current node is in a first coding mode; or when the number of high-plane occupied child nodes is less than a second threshold, it is determined that the current node is in a second coding mode. The low-plane occupied child nodes refer to the occupied child nodes of the reference node that are located in the low plane, and the high-plane occupied child nodes refer to the occupied child nodes of the reference node that are located in the high plane; alternatively, the low-plane occupied child nodes refer to the occupied child nodes of the reference node that meets a preset condition and are located in the low plane, the high-plane occupied child nodes refer to the occupied child nodes of the reference node that meets the preset condition and are located in the high plane, and the preset condition is used to indicate that the reference node is a high-plane node or a low-plane node.

[0644] For example, a first threshold k1 and a second threshold k2 are set. The number of low-plane occupied child nodes LowOccNum and the number of high-plane occupied child nodes HighOccNum are counted. When LowOccNum<k1, it is determined that the geometric mode of the current node is the first coding mode; when HighOccNum<k4, it is determined that the geometric mode of the current node is the second coding mode.

[0645] In some embodiments, when the child node to be coded is located in the high plane, the number of low-plane occupied child nodes is less than the first threshold, and the number of high-plane occupied child nodes is greater than the second threshold, it is determined that the current node is in the first coding mode; or when the child node to be coded is located in the low plane, the number of low-plane occupied child nodes is greater than a third threshold, and the number of high-plane occupied child nodes is less than a fourth threshold, it is determined that the current node is in the second coding mode. The low-plane occupied child nodes refer to the occupied child nodes of the reference node that are located in the low plane, and the high-plane occupied child nodes refer to the occupied child nodes of the reference node that are located in the high plane; alternatively, the low-plane occupied child nodes refer to the occupied child nodes of the reference node that meets a preset condition and are located in the low plane, the high-plane occupied child nodes refer to the occupied child nodes of the reference node that meets the preset condition and are located in the high plane, the preset condition is used to indicate that the reference node is a high-plane node or a low-plane node; and the child node to be coded refers to the current child node to be coded in the current node.

[0646] For example, a first threshold k1, a second threshold k2, a third threshold k3, and a fourth threshold k4 are set. The number of low-plane occupied child nodes LowOccNum and the number of high-plane occupied child nodes HighOccNum are counted. When the child node to be coded is located in the high plane, LowOccNum<k1 and HighOccNum>k2, it is determined that the current node is in the first coding mode; when the child node to be coded is located in the low plane, LowOccNum>k3 and HighOccNum<k4, it is determined that the current node is in the second coding mode.

[0647] It should be noted that the above method illustrates a method for determining the geometric pattern of the current node based on the occupancy of the child nodes of the child node to be encoded and the child nodes of the reference node; in addition, the geometric pattern of the current node can also be determined based on the child node to be encoded and at least one first node, for example, based on the occupancy of the child nodes of the child node to be encoded, the child nodes of the reference node, and the encoded child nodes of the current node. This application does not limit the use of the first node alone or in combination.

[0648] In some embodiments, the geometric pattern of the current node is determined based on the geometric information of its encoded child nodes.

[0649] In some embodiments, the geometric pattern of the current node is determined based on the geometric information of the reference node and the geometric information of the encoded child nodes of the current node. For example, if the encoded child nodes of the current node are not on the same plane as the reference node, and the child nodes to be encoded of the current node are not on the same plane as the encoded child nodes, the geometric pattern of the current node is determined to be a first encoding pattern; or, if the encoded child nodes of the current node are not on the same plane as the reference node, and the child nodes to be encoded of the current node are on the same plane as the encoded child nodes, the geometric pattern of the current node is determined to be a second encoding pattern; or, if the encoded child nodes of the current node are on the same plane as the reference node, and the child nodes to be encoded of the current node are on the same plane as the encoded child nodes, the geometric pattern of the current node is determined to be a third encoding pattern; or, if the encoded child nodes of the current node are on the same plane as the reference node, and the child nodes to be encoded of the current node are not on the same plane as the encoded child nodes, the geometric pattern of the current node is determined to be a fourth encoding pattern.

[0650] In some embodiments, the reference node does not satisfy the planar pattern. When the encoded child nodes of the current node are on the same plane, and the child node to be encoded of the current node is also on the same plane as the encoded child nodes, the geometric pattern of the child node to be encoded is determined to be the fifth encoding pattern.

[0651] In some embodiments, the geometric pattern of the current node is determined based on the geometric information of the parent node of the current node; or, the geometric pattern of the current node is determined based on the geometric information of the child nodes of the reference node that shares the same parent node as the current node; or, the geometric pattern of the current node is determined based on the geometric information of the child nodes of the neighboring nodes that share the same parent node as the current node; or, the geometric pattern of the current node is determined based on the geometric information of the neighboring nodes that share the same parent node as the current node.

[0652] In some embodiments, the aforementioned at least one threshold is determined based on at least one of the following values:

[0653] • The first numerical value determined from the encoding end;

[0654] • The second value obtained by parsing from the parameter set or bitstream corresponding to the current node;

[0655] • A third value determined based on the first and / or second information;

[0656] • A fourth value adaptively determined based on the first and / or second information;

[0657] The first information is used to indicate the statistical characteristics or spatial information of the current node, and the second information is used to indicate the statistical characteristics of the encoded nodes.

[0658] That is, the first value can be a default value or a pre-set value from the encoding end. The second value is a value obtained from the parameter set or bitstream corresponding to the current node. For example, the parameter set includes the Sequence Parameter Set (SPS), Geometry Parameter Set (GPS), Attribute Parameter Set (APS), Geometry Header Brick (GHB), and Attribute Header Brick (AHB); for example, the value planarOccNumTh is obtained from the parameter set or bitstream.

[0659] In some embodiments, the first information includes at least one of the following:

[0660] • The number of reference nodes that meet the preset conditions;

[0661] • The number of child nodes of a reference node that meets the preset conditions;

[0662] • Distribution of the number of child nodes of reference nodes that meet the preset conditions;

[0663] • The positional relationship between the child nodes of the reference node that meet the preset conditions and the child nodes to be encoded of the current node;

[0664] The preset conditions are used to indicate whether the reference node is a high-plane node or a low-plane node.

[0665] Here, a high-plane node is a node whose entire child node is located in the high plane, and a low-plane node is a node whose entire child node is located in the low plane; or, a high-plane node is a node that satisfies the following conditions: the number of occupied child nodes in the low plane is less than the number of first child nodes and the number of occupied child nodes in the high plane is greater than the number of second child nodes; a low-plane node is a node that satisfies the following conditions: the number of occupied child nodes in the low plane is greater than the number of third child nodes and the number of occupied child nodes in the high plane is less than the number of fourth child nodes; where the number of first child nodes, second child nodes, third child nodes, and fourth child nodes are preset values.

[0666] In some embodiments, the second information includes at least one of the following:

[0667] • The number of nodes in the encoded nodes that satisfy the planar pattern;

[0668] • The number of reference nodes that satisfy the planar pattern among the encoded nodes;

[0669] • The number of child nodes of the reference node that satisfies the planar pattern in the encoded node;

[0670] • The ratio of the number of reference nodes that satisfy the planar pattern to the number of non-empty reference nodes in the encoded nodes;

[0671] • The ratio of the number of child nodes of the reference node that satisfies the planar pattern in the encoded node to the number of reference nodes.

[0672] In some embodiments, the second information includes at least one of the following:

[0673] • The number of reference nodes corresponding to nodes that satisfy the planar pattern among the encoded nodes;

[0674] • The number of child nodes of the reference node corresponding to the node that satisfies the planar pattern among the encoded nodes;

[0675] • The ratio of the number of reference nodes corresponding to nodes that satisfy the planar pattern among the encoded nodes to the number of non-empty reference nodes corresponding to nodes that satisfy the planar pattern;

[0676] • The ratio of the number of child nodes of the reference node corresponding to the node that satisfies the planar pattern among the encoded nodes to the number of the reference nodes.

[0677] The third value is determined based on the first and / or second information; alternatively, the third value can also be determined based on other information. For example, the third value can be determined using the point cloud slice volume density (the ratio of the point cloud slice volume or area to the number of points): the point cloud slice volume density Q1 is determined from the encoding end, parameter set, or bitstream; if the point cloud slice volume density is less than Q1, the third value is determined to be k1; otherwise, the third value is k2.

[0678] The fourth value is determined adaptively based on the first and / or second information. Adaptive means that the fourth value is adjusted according to the acquired information.

[0679] In some embodiments, the fourth value is adjusted according to the first information. For example, if the number of reference nodes that meet the preset conditions is greater than N1, the fourth value a is adjusted to a = a + 1; or if the number of child nodes of the reference nodes that meet the preset conditions is less than N2, the fourth value a is adjusted to a = a - 1.

[0680] In some embodiments, an interval D1 is set for statistically analyzing the second information, and the second information is analyzed for every D1 encoded nodes; in other embodiments, an interval D2 is set for statistically analyzing the second information, and the second information of non-empty nodes is analyzed for every D2 encoded nodes.

[0681] In some embodiments, prior to step 440, the planar mode qualification of the current node is determined, for example, based on the second node. After determining that the current node has planar mode qualification, the geometric mode determination in step 440 is performed.

[0682] For example, based on the geometric information of the second node, the planar mode qualification of the current node is determined. The planar mode qualification is used to indicate whether the current node is applicable to the planar mode. The second node is the same as or different from the first node, and the second node is at least one of the following nodes: a reference node; a child node of the reference node; an encoded child node of the current node; or a child node of the current node to be encoded.

[0683] For example, the planar mode qualification of the current node is determined based on the number of non-empty nodes in the reference node; or, the planar mode qualification of the current node is determined based on the occupancy status of the child nodes of the reference node; or, the planar mode qualification of the current node is determined based on the occupancy status of the encoded child nodes of the reference node.

[0684] In summary, the method provided in this application determines the geometric pattern of the current node by obtaining the geometric information provided by the first node corresponding to the current node. It optimizes the determination of the geometric pattern of the current node by combining the information in the octree partitioning process, thereby enabling encoding according to the entropy encoding method corresponding to the geometric pattern and improving the efficiency of point cloud data encoding and decoding.

[0685] The following are embodiments of the apparatus described in this application, which can be used to execute the embodiments of the method described in this application. For details not disclosed in the apparatus embodiments of this application, please refer to the embodiments of the method described in this application.

[0686] Please refer to Figure 17 This diagram illustrates a block diagram of a geometric pattern determination apparatus according to an embodiment of this application. The apparatus has the functionality to implement the method example described above; this functionality can be implemented in hardware or by hardware executing corresponding software. The apparatus can be the computer device described above, or it can be mounted on a computer device. The apparatus may include an acquisition module 620 and a determination module 630.

[0687] The acquisition module 620 is used to acquire the geometric information of the first node;

[0688] The determining module 630 is used to determine the geometric pattern of the current node based on the geometric information of the first node, wherein the current node is the node to be decoded; wherein the first node is at least one of the following nodes: a reference node; a child node of the reference node; a decoded child node of the current node; and a child node to be decoded of the current node.

[0689] In one possible implementation, the determining module 630 is configured to determine the geometric pattern of the current node based on at least one threshold and the geometric information of the first node.

[0690] In one possible implementation, the determining module 630 is configured to determine the current node as a first decoding mode when the number of low-plane occupier child nodes is less than a first threshold and the number of high-plane occupier child nodes is greater than a second threshold; or, to determine the current node as a second decoding mode when the number of low-plane occupier child nodes is greater than a third threshold and the number of high-plane occupier child nodes is less than a fourth threshold; wherein, the low-plane occupier child node refers to the child node of the reference node or a reference node that meets preset conditions that is located in the low plane and is occupied, and the high-plane occupier child node refers to the child node of the reference node or a reference node that meets preset conditions that is located in the high plane and is occupied, and the preset conditions are used to indicate whether the reference node is a high-plane node or a low-plane node.

[0691] In one possible implementation, the determining module 630 is configured to determine the current node as a first decoding mode when the number of low-plane occupier child nodes is less than a first threshold; or, to determine the current node as a second decoding mode when the number of high-plane occupier child nodes is less than a second threshold; wherein the low-plane occupier child node refers to a child node of the reference node or a reference node that meets preset conditions that is located in the low plane and is occupied, and the high-plane occupier child node refers to a child node of the reference node or a reference node that meets preset conditions that is located in the high plane and is occupied, and the preset conditions are used to indicate whether the reference node is a high-plane node or a low-plane node.

[0692] In one possible implementation, the determining module 630 is configured to determine the current node as a first decoding mode when the child node to be decoded is located in a high plane and the number of child nodes occupying space in the low plane is less than a first threshold and the number of child nodes occupying space in the high plane is greater than a second threshold; or, when the child node to be decoded is located in a low plane and the number of child nodes occupying space in the low plane is greater than a third threshold and the number of child nodes occupying space in the high plane is less than a fourth threshold; wherein, the low plane occupying space child node refers to the child node of the reference node or a reference node that meets the preset conditions that is located in a low plane and is occupied, the high plane occupying space child node refers to the child node of the reference node or a reference node that meets the preset conditions that is located in a high plane and is occupied, the child node to be decoded refers to the currently undecoded child node in the current node, and the preset conditions are used to indicate whether the reference node is a high plane node or a low plane node.

[0693] In one possible implementation, the determining module 630 is used to determine the geometric pattern of the current node based on the geometric information of the decoded child nodes of the current node.

[0694] In one possible implementation, the determining module 630 is configured to: determine the child node to be decoded as a first decoding mode when the decoded child node of the current node is not on the same plane as the reference node and the child node to be decoded of the current node is not on the same plane as the decoded child node; or, determine the child node to be decoded as a second decoding mode when the decoded child node of the current node is not on the same plane as the reference node and the child node to be decoded of the current node is on the same plane as the decoded child node; or, determine the child node to be decoded as a third decoding mode when the decoded child node of the current node is on the same plane as the reference node and the child node to be decoded of the current node is on the same plane as the decoded child node; or, determine the child node to be decoded as a fourth decoding mode when the decoded child node of the current node is on the same plane as the reference node and the child node to be decoded of the current node is not on the same plane as the decoded child node.

[0695] In one possible implementation, the reference node does not satisfy the planar mode; the determining module 630 is used to determine the child node to be decoded as the fifth decoding mode when the decoded child nodes of the current node are on the same plane and the child node to be decoded of the current node is also on the same plane as the decoded child nodes.

[0696] In one possible implementation, the at least one threshold is determined based on at least one of the following values: a first value determined from the decoding end; a second value parsed from the parameter set or bitstream corresponding to the current node; a third value determined based on first information and / or second information; and a fourth value adaptively determined based on the first information and / or the second information; wherein the first information is used to indicate the statistical characteristics or spatial information of the current node, and the second information is used to indicate the statistical characteristics of the decoded node.

[0697] In one possible implementation, the first information includes at least one of the following: the number of reference nodes that meet preset conditions; the number of child nodes of the reference nodes that meet the preset conditions; the distribution of the number of child nodes of the reference nodes that meet the preset conditions; the positional relationship between the child nodes of the reference nodes that meet the preset conditions and the child nodes to be decoded of the current node; wherein the preset conditions are used to indicate whether the reference node is a high-plane node or a low-plane node.

[0698] In one possible implementation, the high-plane node refers to a node whose occupied child nodes are all located in the high plane, and the low-plane node refers to a node whose occupied child nodes are all located in the low plane; or, the high-plane node refers to a node that satisfies the following conditions: the number of occupied child nodes located in the low plane is less than the number of first child nodes and the number of occupied child nodes located in the high plane is greater than the number of second child nodes; the low-plane node refers to a node that satisfies the following conditions: the number of occupied child nodes located in the low plane is greater than the number of third child nodes and the number of occupied child nodes located in the high plane is less than the number of fourth child nodes; wherein, the number of first child nodes, the number of second child nodes, the number of third child nodes, and the number of fourth child nodes are preset values.

[0699] In one possible implementation, the second information includes at least one of the following: the number of nodes in the decoded nodes that satisfy the planar pattern; the number of reference nodes in the decoded nodes that satisfy the planar pattern; the number of child nodes of the reference nodes in the decoded nodes that satisfy the planar pattern; the ratio of the number of reference nodes in the decoded nodes that satisfy the planar pattern to the number of non-empty reference nodes; and the ratio of the number of child nodes of the reference nodes in the decoded nodes that satisfy the planar pattern to the number of reference nodes.

[0700] In one possible implementation, the second information includes at least one of the following: the number of reference nodes corresponding to nodes satisfying the planar pattern in the decoded nodes; the number of child nodes of the reference nodes corresponding to nodes satisfying the planar pattern in the decoded nodes; the ratio of the number of reference nodes corresponding to nodes satisfying the planar pattern in the decoded nodes to the number of non-empty reference nodes corresponding to nodes satisfying the planar pattern; and the ratio of the number of child nodes of the reference nodes corresponding to nodes satisfying the planar pattern in the decoded nodes to the number of reference nodes.

[0701] In one possible implementation, the determining module 630 is configured to determine the reference node based on the geometric information of the parent node of the current node; or, based on the geometric information of the child nodes of neighboring nodes that share the same parent node as the current node; or, based on the geometric information of neighboring nodes that share the same parent node as the current node.

[0702] In one possible implementation, the selection range of the reference node is at least one of the following nodes: a decoded node; a non-empty decoded node; a decoded node at the same level as the current node and a non-empty decoded node at the same level as the current node; a decoded node at a fixed position; a decoded node at a fixed position and a non-empty decoded node; the parent node of the current node; a neighboring node located on the same parent node as the current node; and a child node of a neighboring node located on the same parent node as the current node.

[0703] In one possible implementation, the fixed-position decoded node includes at least one of the following: the decoded node corresponding to the current node offset by a first preset amount along the first coordinate axis direction, where the first preset amount is a pre-set offset along the first coordinate axis direction; the decoded node corresponding to the current node offset by a second preset amount along the second coordinate axis direction, where the second preset amount is a pre-set offset along the second coordinate axis direction; the decoded node corresponding to the current node offset by a third preset amount along the first coordinate axis direction and a fourth preset amount along the second coordinate axis direction, where the third preset amount is a pre-set offset along the first coordinate axis direction and the fourth preset amount is a pre-set offset along the second coordinate axis direction; wherein, the first coordinate axis and the second coordinate axis are two coordinate axes in different directions in a three-dimensional coordinate system.

[0704] In one possible implementation, at least one of the first preset amount, the second preset amount, the third preset amount, and the fourth preset amount is: a default value or a group of values; or, a value or group of values ​​corresponding to the second condition; or, determined based on the second condition; or, determined based on at least one piece of information.

[0705] In one possible implementation, at least one of the first preset amount, the second preset amount, the third preset amount, and the fourth preset amount changes based on a corresponding offset value change, wherein the offset value change is: a default value or a group of values; or, a value or a group of values ​​corresponding to the second condition; or, determined based on the second condition; or, determined based on at least one piece of information.

[0706] In one possible implementation, the selection range of the fixed-position decoded node includes at least one of the following: decoded nodes whose current node is offset less than a first offset threshold along the first coordinate axis direction, the first offset threshold being a pre-set maximum value of the offset along the first coordinate axis direction; decoded nodes whose current node is offset less than a second offset threshold along the second coordinate axis direction, the second offset threshold being a pre-set maximum value of the offset along the second coordinate axis direction; decoded nodes whose sum of the current node's offset along the first coordinate axis direction and its offset along the second coordinate axis direction is less than a third offset threshold, the third offset threshold being a pre-set maximum value of the sum of the offsets along the first coordinate axis direction and the second coordinate axis direction; wherein, the first coordinate axis and the second coordinate axis are two coordinate axes in different directions in a three-dimensional coordinate system.

[0707] In one possible implementation, the decoded nodes at fixed positions are selected in such a way that a fixed number of decoded nodes that meet a first condition are selected in a first order, wherein the first order is at least one of a preset order, a default order, a linear order, a Hilbert order, a Morton order, or a coordinate axis order.

[0708] In one possible implementation, at least one of the first offset threshold, the second offset threshold, the third offset threshold, and the fourth offset threshold is: a default value or a group of values; or, a value or group of values ​​corresponding to the second condition; or, determined based on the second condition; or, determined based on at least one piece of information.

[0709] In one possible implementation, at least one of the first coordinate axis direction and the second coordinate axis direction is: a default coordinate axis direction; or, the coordinate axis direction corresponding to the second condition; or, determined based on the second condition; or, determined according to at least one piece of information.

[0710] In one possible implementation, the second condition relates to at least one of the following: geometric patch information; the relative position of the current node; placeholder information of the parent node of the current node; placeholder information of the neighboring nodes of the current node; and placeholder information of the first k reference nodes.

[0711] In one possible implementation, the at least one piece of information includes at least one of the following: quantization parameters; data geometric precision; geometric patch density; geometric patch size; placeholder information of the reference node; relative position of the current node; and the parent node and neighboring nodes of the current node.

[0712] In one possible implementation, the determining module 630 is further configured to determine the selection method of subsequent reference nodes based on the number of non-empty nodes in the selected reference nodes; or, based on the number range of the number of non-empty nodes in the selected reference nodes; or, based on at least one threshold and the number of non-empty nodes in the selected reference nodes.

[0713] In one possible implementation, the determining module 630 is configured to determine the planar mode qualification of the current node based on the geometric information of the second node, the planar mode qualification being used to indicate whether the current node is applicable to a planar mode; wherein the second node is the same as or different from the first node, and the second node is at least one of the following nodes: a reference node; a child node of the reference node; a decoded child node of the current node; or a child node of the current node to be decoded.

[0714] In one possible implementation, the determining module 630 is configured to determine the planar mode qualification of the current node based on the number of non-empty nodes in the reference node; or, based on the occupancy status of the child nodes of the reference node; or, based on the occupancy status of the decoded child nodes of the reference node.

[0715] In one possible implementation, the determining module 630 is used to determine whether the current node uses geometric mode decoding.

[0716] In one possible implementation, the determining module 630 is configured to perform any of the following steps: determining whether the current node uses geometric mode decoding at the point cloud or point cloud slice level; determining whether the current node uses geometric mode decoding at the macroblock level; or determining whether the current node uses geometric mode decoding at the depth level of the octree.

[0717] In one possible implementation, the determining module 630 is configured to perform any one of the following steps: determining whether the current node uses geometric mode decoding based on the decoding mode adopted by the decoding end; determining whether the current node uses geometric mode decoding based on the parameter set or bitstream corresponding to the current node; determining whether the current node uses geometric mode decoding based on a geometric mode threshold parameter, wherein the geometric mode threshold parameter is a threshold parameter obtained based on the decoding end, the parameter set, or the bitstream.

[0718] Please refer to Figure 18This diagram illustrates a block diagram of a geometric pattern determination apparatus according to an embodiment of this application. The apparatus has the functionality to implement the method example described above; this functionality can be implemented in hardware or by hardware executing corresponding software. The apparatus can be the computer device described above, or it can be mounted on a computer device. The apparatus may include an acquisition module 720 and a determination module 730.

[0719] The acquisition module 720 is used to acquire the geometric information of the first node;

[0720] The determining module 730 is used to determine the geometric pattern of the current node based on the geometric information of the first node, wherein the current node is the node to be encoded; wherein the first node is at least one of the following nodes: a reference node; a child node of the reference node; a decoded child node of the current node; and a child node to be decoded of the current node.

[0721] It should be noted that the apparatus provided in the above embodiments is only illustrated by the division of the above functional modules when implementing its functions. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the apparatus and method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0722] Please refer to Figure 19 This diagram illustrates a structural block diagram of a computer device provided in one embodiment of this application. The computer device may be an encoding end device as described above, or it may be an encoding end device as described above. The computer device 150 may include: a processor 151, a memory 152, a communication interface 153, an encoder / encoder 154, and a bus 155.

[0723] The processor 151 includes one or more processing cores, and the processor 151 executes various functional applications and information processing by running software programs and modules.

[0724] The memory 152 can be used to store computer programs, and the processor 151 is used to execute the computer programs to implement the above-described method for determining the geometric pattern.

[0725] Communication interface 153 can be used to communicate with other devices, such as receiving and receiving audio and video data.

[0726] The encoder / encoder 154 can be used to implement encoding and coding functions, such as encoding and coding audio and video data.

[0727] The memory 152 is connected to the processor 151 via the bus 155.

[0728] Furthermore, the memory 152 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, including but not limited to: magnetic disks or optical disks, EEPROM (Electrically Erasable Programmable Read-Only Memory), EPROM (Erasable Programmable Read-Only Memory), SRAM (Static Random-Access Memory), ROM (Read-Only Memory), magnetic storage, flash memory, and PROM (Programmable Read-Only Memory).

[0729] Those skilled in the art will understand that Figure 19 The structure shown does not constitute a limitation on the computer device 150, and may include more or fewer components than shown, or combine certain components, or use different component arrangements.

[0730] In an exemplary embodiment, a computer-readable storage medium is also provided, which stores at least one instruction, at least one program, code set, or instruction set, wherein the at least one instruction, the at least one program, the code set, or the instruction set implements the above-described method for determining the geometric pattern when executed by a processor.

[0731] In an exemplary embodiment, a computer program product or computer program is also provided, comprising computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the described method for determining the geometric pattern.

[0732] It should be understood that "multiple" as used herein refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. Furthermore, the step numbers described herein are merely illustrative of one possible execution order. In some other embodiments, the steps may not be executed in numerical order, such as two steps with different numbers being executed simultaneously, or two steps with different numbers being executed in the reverse order of the illustration. This application does not limit this.

[0733] The above description is merely an exemplary embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A method for determining a geometric pattern, characterized in that, The method is applied at the decoding end, and the method includes: Obtain the geometric information of the first node; Based on the geometric information of the first node, the geometric pattern of the current node is determined, and the current node is the node to be decoded. The first node includes at least one of the following nodes: a reference node; a child node of the reference node; a decoded child node of the current node; and a child node of the current node to be decoded. Determining the geometric pattern of the current node based on the geometric information of the first node includes: The geometric pattern of the current node is determined based on at least one threshold and the geometric information of the first node; Determining the geometric pattern of the current node based on at least one threshold and the geometric information of the first node includes: If the number of child nodes occupying space in the lower plane is less than the first threshold and the number of child nodes occupying space in the higher plane is greater than the second threshold, the current node is determined to be in the first decoding mode. or, If the number of low-plane occupant child nodes is greater than the third threshold and the number of high-plane occupant child nodes is less than the fourth threshold, the current node is determined to be in the second decoding mode. Wherein, the low-plane occupant child node refers to the child node of the reference node located in the low plane and occupied, and the high-plane occupant child node refers to the child node of the reference node located in the high plane and occupied.

2. The method according to claim 1, characterized in that, The step of determining the geometric pattern of the current node based on at least one threshold and the geometric information of the first node further includes: If the number of low-plane occupant child nodes is less than the first threshold, the current node is determined to be in the first decoding mode; or, If the number of child nodes occupying the high plane is less than the second threshold, the current node is determined to be in the second decoding mode.

3. The method according to claim 1, characterized in that, The step of determining the geometric pattern of the current node based on at least one threshold and the geometric information of the first node further includes: If the child node to be decoded is located in the high plane and the number of child nodes occupying space in the low plane is less than the first threshold and the number of child nodes occupying space in the high plane is greater than the second threshold, then the current node is determined to be in the first decoding mode. or, If the child node to be decoded is located in the low plane and the number of child nodes occupying space in the low plane is greater than the third threshold and the number of child nodes occupying space in the high plane is less than the fourth threshold, then the current node is determined to be in the second decoding mode.

4. The method according to claim 1, characterized in that, The step of determining the geometric pattern of the current node based on the geometric information of the first node further includes: If the decoded child node of the current node is not on the same plane as the reference node, and the child node to be decoded of the current node is not on the same plane as the decoded child node, then the child node to be decoded is determined to be in the first decoding mode. or, If the decoded child node of the current node is not on the same plane as the reference node, and the child node to be decoded of the current node is on the same plane as the decoded child node, then the child node to be decoded is determined to be in the second decoding mode. or, If the decoded child node of the current node is on the same plane as the reference node, and the child node to be decoded of the current node is on the same plane as the decoded child node, then the child node to be decoded is determined to be in the third decoding mode. or, If the decoded child node of the current node is on the same plane as the reference node, and the child node to be decoded of the current node is not on the same plane as the decoded child node, then the child node to be decoded is determined to be in the fourth decoding mode.

5. The method according to claim 1, characterized in that, The reference node does not satisfy the planar pattern; The step of determining the geometric pattern of the current node based on the geometric information of the first node further includes: If the decoded child nodes of the current node are on the same plane, and the child node to be decoded of the current node is also on the same plane as the decoded child nodes, then the child node to be decoded is determined to be the fifth decoding mode.

6. The method according to any one of claims 1 to 5, characterized in that, The low-plane occupant child node refers to a child node of a reference node that meets preset conditions and is located in the low plane and is occupied. The high-plane occupant child node refers to a child node of a reference node that meets preset conditions and is located in the high plane and is occupied. The preset conditions are used to indicate whether the reference node is a high-plane node or a low-plane node.

7. The method according to any one of claims 1 to 5, characterized in that, The at least one threshold is determined based on at least one of the following values: The first value determined from the decoding end; The second value obtained by parsing from the parameter set or bitstream corresponding to the current node; A third value determined based on the first and / or second information; The first information is used to indicate the statistical characteristics or spatial information of the current node, and the second information is used to indicate the statistical characteristics of the decoded node.

8. The method according to claim 7, characterized in that, The first information includes at least one of the following: The number of reference nodes that meet the preset conditions; The number of child nodes of the reference node that meets the preset conditions; The distribution of the number of child nodes of the reference node that meets the preset conditions; The positional relationship between the child nodes of the reference node that meet the preset conditions and the child nodes to be decoded of the current node; The preset conditions are used to indicate whether the reference node is a high-plane node or a low-plane node.

9. The method according to claim 8, characterized in that, The high-plane node refers to a node whose occupied child nodes are all located in the high plane, and the low-plane node refers to a node whose occupied child nodes are all located in the low plane. or, The high-plane node is a node that satisfies the following conditions: the number of occupied child nodes in the low plane is less than the number of first child nodes and the number of occupied child nodes in the high plane is greater than the number of second child nodes. The low-plane node is a node that satisfies the following conditions: the number of occupied child nodes in the low plane is greater than the number of third child nodes and the number of occupied child nodes in the high plane is less than the number of fourth child nodes. The number of the first child node, the number of the second child node, the number of the third child node, and the number of the fourth child node are preset values.

10. The method according to claim 7, characterized in that, The second information includes at least one of the following: The number of nodes in the decoded nodes that satisfy the plane pattern; The number of reference nodes that satisfy the plane mode among the decoded nodes; The number of child nodes of the reference node that satisfies the plane pattern in the decoded node; The ratio of the number of reference nodes that satisfy the planar pattern to the number of non-empty reference nodes in the decoded nodes; The ratio of the number of child nodes of the reference node that satisfies the planar pattern in the decoded node to the number of the reference nodes.

11. The method according to claim 7, characterized in that, The second information includes at least one of the following: The number of reference nodes corresponding to the nodes that satisfy the plane mode among the decoded nodes; The number of child nodes of the reference node corresponding to the node that satisfies the plane mode among the decoded nodes; The ratio of the number of reference nodes corresponding to nodes that satisfy the planar pattern among the decoded nodes to the number of non-empty reference nodes corresponding to nodes that satisfy the planar pattern. The ratio of the number of child nodes of the reference node corresponding to the node that satisfies the planar pattern in the decoded nodes to the number of the reference nodes.

12. The method according to claim 1, characterized in that, The method further includes: The reference node is determined based on the geometric information of the parent node of the current node; or, The reference node is determined based on the geometric information of the child nodes of the neighboring nodes that share the same parent node as the current node; or, The reference node is determined based on the geometric information of neighboring nodes that share the same parent node as the current node.

13. The method according to any one of claims 1 to 5 or 8 to 12, characterized in that, The selection range of the reference node is at least one of the following nodes: Decoded node; Non-empty decoded nodes; Decoded nodes at the same level as the current node; Decoded nodes that are at the same level as the current node and are not empty; Decoded nodes at fixed positions; A fixed-position, non-empty, decoded node; The parent node of the current node; Neighboring nodes that share the same parent node as the current node; The child node of a neighboring node that shares the same parent node as the current node.

14. The method according to claim 13, characterized in that, The decoded node at the fixed position includes at least one of the following: The decoded node corresponding to the current node being offset by a first preset amount along the first coordinate axis direction, wherein the first preset amount is a pre-set offset amount along the first coordinate axis direction; The decoded node corresponding to the current node being offset by a second preset amount along the second coordinate axis direction, where the second preset amount is a pre-set offset amount along the second coordinate axis direction; The decoded node corresponding to the current node being offset by a third preset amount along the first coordinate axis and by a fourth preset amount along the second coordinate axis, wherein the third preset amount is a preset offset amount along the first coordinate axis and the fourth preset amount is a preset offset amount along the second coordinate axis. The first coordinate axis and the second coordinate axis are coordinate axes in two different directions in a three-dimensional coordinate system.

15. The method according to claim 14, characterized in that, At least one of the first preset value, the second preset value, the third preset value, and the fourth preset value is a default value or a group of values.

16. The method according to claim 14, characterized in that, At least one of the first preset quantity, the second preset quantity, the third preset quantity, and the fourth preset quantity is determined based on a second condition; or, determined based on at least one piece of information. The at least one piece of information includes at least one of the following: quantization parameters, data geometric precision, geometric patch density, geometric patch size, the occupancy information of the reference node, the relative position of the current node, the parent node of the current node and its neighboring nodes; the second condition is related to at least one of the following: geometric patch information, the relative position of the current node, the occupancy information of the parent node of the current node, the occupancy information of the neighboring nodes of the current node, and the occupancy information of the first k reference nodes.

17. The method according to claim 14, characterized in that, At least one of the first preset amount, the second preset amount, the third preset amount, and the fourth preset amount is based on the change of the corresponding offset value, which is a default value or a group of values.

18. The method according to claim 14, characterized in that, At least one of the first preset amount, the second preset amount, the third preset amount, and the fourth preset amount is based on the change of the corresponding offset value, which is determined based on a second condition; or, determined based on at least one piece of information. The at least one piece of information includes at least one of the following: quantization parameters, data geometric precision, geometric patch density, geometric patch size, the occupancy information of the reference node, the relative position of the current node, the parent node of the current node and its neighboring nodes; the second condition is related to at least one of the following: geometric patch information, the relative position of the current node, the occupancy information of the parent node of the current node, the occupancy information of the neighboring nodes of the current node, and the occupancy information of the first k reference nodes.

19. The method according to claim 14, characterized in that, The selection range of the decoded nodes at the fixed positions includes at least one of the following: The decoded node corresponding to the current node being offset less than the first offset threshold along the first coordinate axis direction, where the first offset threshold is a pre-set maximum value of the offset along the first coordinate axis direction; The decoded node whose current node is offset less than the second offset threshold along the second coordinate axis direction is the maximum value of the offset along the second coordinate axis direction that is preset. The decoded node is the node whose current node offset along the first coordinate axis and offset along the second coordinate axis are less than a third offset threshold. The third offset threshold is the maximum value of the sum of the offsets along the first coordinate axis and the second coordinate axis, which is a preset value. The first coordinate axis and the second coordinate axis are coordinate axes in two different directions in a three-dimensional coordinate system.

20. The method according to claim 19, characterized in that, The decoded nodes at the fixed positions are selected in the following manner: Select a fixed number of decoded nodes that meet the first condition in a first order, wherein the first order is at least one of linear order, Hilbert order, Morton order, or coordinate axis order.

21. The method according to claim 19 or 20, characterized in that, At least one of the first offset threshold, the second offset threshold, and the third offset threshold is a default value or a group of values.

22. The method according to claim 19 or 20, characterized in that, At least one of the first offset threshold, the second offset threshold, and the third offset threshold is determined based on a second condition; or, determined based on at least one piece of information; The at least one piece of information includes at least one of the following: quantization parameters, data geometric precision, geometric patch density, geometric patch size, the occupancy information of the reference node, the relative position of the current node, the parent node of the current node and its neighboring nodes; the second condition is related to at least one of the following: geometric patch information, the relative position of the current node, the occupancy information of the parent node of the current node, the occupancy information of the neighboring nodes of the current node, and the occupancy information of the first k reference nodes.

23. The method according to claim 14, 19, or 20, characterized in that, At least one of the first coordinate axis direction and the second coordinate axis direction is the default coordinate axis direction.

24. The method according to claim 14, 19, or 20, characterized in that, At least one of the first coordinate axis direction and the second coordinate axis direction is determined based on a second condition; or, determined based on at least one piece of information; The at least one piece of information includes at least one of the following: quantization parameters, data geometric precision, geometric patch density, geometric patch size, the occupancy information of the reference node, the relative position of the current node, the parent node of the current node and its neighboring nodes; the second condition is related to at least one of the following: geometric patch information, the relative position of the current node, the occupancy information of the parent node of the current node, the occupancy information of the neighboring nodes of the current node, and the occupancy information of the first k reference nodes.

25. The method according to claim 1, characterized in that, The method further includes: Based on the number of non-empty nodes among the already selected reference nodes, determine the selection method for subsequent reference nodes; or, Based on the range of the number of non-empty nodes in the already selected reference nodes, the selection method for the subsequent reference nodes is determined. or, The selection method for subsequent reference nodes is determined based on at least one threshold and the number of non-empty nodes among the already selected reference nodes.

26. The method according to claim 1, characterized in that, The method further includes: Based on the geometric information of the second node, the planar mode qualification of the current node is determined, and the planar mode qualification is used to indicate whether the current node is suitable for the planar mode; Wherein, the second node may be the same as or different from the first node, and the second node is at least one of the following nodes: Reference node; The child nodes of the reference node; The decoded child nodes of the current node; The child node to be decoded of the current node.

27. The method according to claim 26, characterized in that, Determining the planar pattern qualification of the current node based on the geometric information of the second node includes: Based on the number of non-empty nodes in the reference nodes, determine the planar mode qualification of the current node; or, Based on the occupancy status of the child nodes of the reference node, determine the planar mode qualification of the current node; or, Based on the occupancy status of the decoded child nodes of the reference node, the planar mode qualification of the current node is determined.

28. The method according to claim 1, characterized in that, The method further includes: Determine whether the current node uses geometry mode decoding.

29. The method according to claim 28, characterized in that, Determining whether the current node uses geometric mode decoding includes any one of the following steps: Determine whether the current node uses geometric mode decoding at the point cloud or point cloud slice level; At the macroblock level, determine whether the current node uses geometric mode decoding; Determine whether the current node uses geometric mode decoding at the depth level of the octree.

30. The method according to claim 28, characterized in that, Determining whether the current node uses geometric mode decoding includes at least one of the following steps: Determine whether the current node uses geometric mode decoding based on the decoding mode adopted by the decoding end; Determine whether the current node uses geometric mode decoding based on the parameter set or bitstream corresponding to the current node; Whether the current node uses geometric mode decoding is determined based on the geometric mode threshold parameter, which is a threshold parameter obtained from the decoding end, parameter set, or bitstream.

31. A method for determining a geometric pattern, characterized in that, The method is applied at the encoding end, and the method includes: Obtain the geometric information of the first node; Based on the geometric information of the first node, the geometric pattern of the current node is determined, wherein the current node is the node to be encoded; wherein the first node includes at least one of the following nodes: a reference node; a child node of the reference node; an encoded child node of the current node; and a child node to be encoded of the current node. Determining the geometric pattern of the current node based on the geometric information of the first node includes: The geometric pattern of the current node is determined based on at least one threshold and the geometric information of the first node; Determining the geometric pattern of the current node based on at least one threshold and the geometric information of the first node includes: If the number of child nodes occupying space in the lower plane is less than the first threshold and the number of child nodes occupying space in the higher plane is greater than the second threshold, the current node is determined to be in the first encoding mode. or, If the number of low-plane occupier child nodes is greater than the third threshold and the number of high-plane occupier child nodes is less than the fourth threshold, the current node is determined to be in the second encoding mode. Wherein, the low-plane occupant child node refers to the child node of the reference node located in the low plane and occupied, and the high-plane occupant child node refers to the child node of the reference node located in the high plane and occupied.

32. A device for determining a geometric pattern, characterized in that, The device can be implemented as a decoding end, and the device includes: The acquisition module is used to acquire the geometric information of the first node; The determining module is used to determine the geometric pattern of the current node based on the geometric information of the first node, wherein the current node is the node to be decoded. The first node includes at least one of the following nodes: a reference node; a child node of the reference node; a decoded child node of the current node; and a child node of the current node to be decoded. Determining the geometric pattern of the current node based on the geometric information of the first node includes: The geometric pattern of the current node is determined based on at least one threshold and the geometric information of the first node; Determining the geometric pattern of the current node based on at least one threshold and the geometric information of the first node includes: If the number of child nodes occupying space in the lower plane is less than the first threshold and the number of child nodes occupying space in the higher plane is greater than the second threshold, the current node is determined to be in the first decoding mode. or, If the number of low-plane occupant child nodes is greater than the third threshold and the number of high-plane occupant child nodes is less than the fourth threshold, the current node is determined to be in the second decoding mode. Wherein, the low-plane occupant child node refers to the child node of the reference node located in the low plane and occupied, and the high-plane occupant child node refers to the child node of the reference node located in the high plane and occupied.

33. The apparatus according to claim 32, characterized in that, The step of determining the geometric pattern of the current node based on at least one threshold and the geometric information of the first node further includes: determining the current node as a first decoding mode when the number of low-plane occupier child nodes is less than the first threshold; Alternatively, if the number of child nodes occupying the high plane is less than the second threshold, the current node is determined to be in the second decoding mode.

34. The apparatus according to claim 32, characterized in that, The step of determining the geometric pattern of the current node based on at least one threshold and the geometric information of the first node further includes: determining the current node as a first decoding mode when the child node to be decoded is located in the high plane and the number of child nodes occupying the low plane is less than the first threshold and the number of child nodes occupying the high plane is greater than the second threshold; or, If the child node to be decoded is located in the low plane and the number of child nodes occupying space in the low plane is greater than the third threshold and the number of child nodes occupying space in the high plane is less than the fourth threshold, then the current node is determined to be in the second decoding mode.

35. The apparatus according to claim 32, characterized in that, The step of determining the geometric pattern of the current node based on the geometric information of the first node further includes: If the decoded child node of the current node is not on the same plane as the reference node, and the child node to be decoded of the current node is not on the same plane as the decoded child node, then the child node to be decoded is determined to be in the first decoding mode. or, If the decoded child node of the current node is not on the same plane as the reference node, and the child node to be decoded of the current node is on the same plane as the decoded child node, then the child node to be decoded is determined to be in the second decoding mode. or, If the decoded child node of the current node is on the same plane as the reference node, and the child node to be decoded of the current node is on the same plane as the decoded child node, then the child node to be decoded is determined to be in the third decoding mode. or, If the decoded child node of the current node is on the same plane as the reference node, and the child node to be decoded of the current node is not on the same plane as the decoded child node, then the child node to be decoded is determined to be in the fourth decoding mode.

36. The apparatus according to claim 32, characterized in that, The reference node does not satisfy the planar pattern; The step of determining the geometric pattern of the current node based on the geometric information of the first node further includes: If the decoded child nodes of the current node are on the same plane, and the child node to be decoded of the current node is also on the same plane as the decoded child nodes, then the child node to be decoded is determined to be the fifth decoding mode.

37. The apparatus according to any one of claims 32 to 36, characterized in that, The low-plane occupant child node refers to a child node of a reference node that meets preset conditions and is located in the low plane and is occupied. The high-plane occupant child node refers to a child node of a reference node that meets preset conditions and is located in the high plane and is occupied. The preset conditions are used to indicate whether the reference node is a high-plane node or a low-plane node.

38. The apparatus according to any one of claims 32 to 36, characterized in that, The at least one threshold is determined based on at least one of the following values: The first value determined from the decoding end; The second value obtained by parsing from the parameter set or bitstream corresponding to the current node; A third value determined based on the first and / or second information; The first information is used to indicate the statistical characteristics or spatial information of the current node, and the second information is used to indicate the statistical characteristics of the decoded node.

39. The apparatus according to claim 38, characterized in that, The first information includes at least one of the following: The number of reference nodes that meet the preset conditions; The number of child nodes of the reference node that meets the preset conditions; The distribution of the number of child nodes of the reference node that meets the preset conditions; The positional relationship between the child nodes of the reference node that meet the preset conditions and the child nodes to be decoded of the current node; The preset conditions are used to indicate whether the reference node is a high-plane node or a low-plane node.

40. The apparatus according to claim 39, characterized in that, The high-plane node refers to a node whose entire occupied child node is located in the high plane, and the low-plane node refers to a node whose entire occupied child node is located in the low plane; or, the high-plane node refers to a node that satisfies the following conditions: the number of occupied child nodes located in the low plane is less than the number of first child nodes and the number of occupied child nodes located in the high plane is greater than the number of second child nodes; the low-plane node refers to a node that satisfies the following conditions: the number of occupied child nodes located in the low plane is greater than the number of third child nodes and the number of occupied child nodes located in the high plane is less than the number of fourth child nodes; wherein, the number of first child nodes, the number of second child nodes, the number of third child nodes, and the number of fourth child nodes are preset values.

41. The apparatus according to claim 38, characterized in that, The second information includes at least one of the following: The number of nodes in the decoded nodes that satisfy the plane pattern; The number of reference nodes that satisfy the plane mode among the decoded nodes; The number of child nodes of the reference node that satisfies the plane pattern in the decoded node; The ratio of the number of reference nodes that satisfy the planar pattern to the number of non-empty reference nodes in the decoded nodes; The ratio of the number of child nodes of the reference node that satisfies the planar pattern in the decoded node to the number of the reference nodes.

42. The apparatus according to claim 38, characterized in that, The second information includes at least one of the following: The number of reference nodes corresponding to the nodes that satisfy the plane mode among the decoded nodes; The number of child nodes of the reference node corresponding to the node that satisfies the plane mode among the decoded nodes; The ratio of the number of reference nodes corresponding to nodes that satisfy the planar pattern among the decoded nodes to the number of non-empty reference nodes corresponding to nodes that satisfy the planar pattern. The ratio of the number of child nodes of the reference node corresponding to the node that satisfies the planar pattern in the decoded nodes to the number of the reference nodes.

43. The apparatus according to claim 32, characterized in that, The determining module is further configured to determine the reference node based on the geometric information of the parent node of the current node; or, The reference node is determined based on the geometric information of the child nodes of the neighboring nodes that share the same parent node as the current node; or, The reference node is determined based on the geometric information of neighboring nodes that share the same parent node as the current node.

44. The apparatus according to any one of claims 32 to 36 or 39 to 43, characterized in that, The selection range of the reference node is at least one of the following nodes: Decoded node; Non-empty decoded nodes; Decoded nodes at the same level as the current node; The decoded nodes that are at the same level as the current node and are not empty; Decoded nodes at fixed positions; A fixed-position, non-empty, decoded node; The parent node of the current node; Neighboring nodes that share the same parent node as the current node; The child node of a neighboring node that shares the same parent node as the current node.

45. The apparatus according to claim 44, characterized in that, The decoded node at the fixed position includes at least one of the following: The decoded node corresponding to the current node being offset by a first preset amount along the first coordinate axis direction, wherein the first preset amount is a pre-set offset amount along the first coordinate axis direction; The decoded node corresponding to the current node being offset by a second preset amount along the second coordinate axis direction, where the second preset amount is a pre-set offset amount along the second coordinate axis direction; The decoded node corresponding to the current node being offset by a third preset amount along the first coordinate axis and by a fourth preset amount along the second coordinate axis, wherein the third preset amount is a preset offset amount along the first coordinate axis and the fourth preset amount is a preset offset amount along the second coordinate axis. The first coordinate axis and the second coordinate axis are coordinate axes in two different directions in a three-dimensional coordinate system.

46. ​​The apparatus according to claim 45, characterized in that, At least one of the first preset value, the second preset value, the third preset value, and the fourth preset value is a default value or a group of values.

47. The apparatus according to claim 45, characterized in that, At least one of the first preset quantity, the second preset quantity, the third preset quantity, and the fourth preset quantity is determined based on a second condition; or, determined based on at least one piece of information. The at least one piece of information includes at least one of the following: quantization parameters, data geometric precision, geometric patch density, geometric patch size, the occupancy information of the reference node, the relative position of the current node, the parent node of the current node and its neighboring nodes; the second condition is related to at least one of the following: geometric patch information, the relative position of the current node, the occupancy information of the parent node of the current node, the occupancy information of the neighboring nodes of the current node, and the occupancy information of the first k reference nodes.

48. The apparatus according to claim 45, characterized in that, At least one of the first preset amount, the second preset amount, the third preset amount, and the fourth preset amount is based on the change of the corresponding offset value, which is a default value or a group of values.

49. The apparatus according to claim 45, characterized in that, At least one of the first preset amount, the second preset amount, the third preset amount, and the fourth preset amount is based on the change of the corresponding offset value, which is determined based on a second condition; or, determined based on at least one piece of information. The at least one piece of information includes at least one of the following: quantization parameters, data geometric precision, geometric patch density, geometric patch size, the occupancy information of the reference node, the relative position of the current node, the parent node of the current node and its neighboring nodes; the second condition is related to at least one of the following: geometric patch information, the relative position of the current node, the occupancy information of the parent node of the current node, the occupancy information of the neighboring nodes of the current node, and the occupancy information of the first k reference nodes.

50. The apparatus according to claim 45, characterized in that, The selection range of the decoded nodes at the fixed positions includes at least one of the following: The decoded node corresponding to the current node being offset less than the first offset threshold along the first coordinate axis direction, where the first offset threshold is a pre-set maximum value of the offset along the first coordinate axis direction; The decoded node whose current node is offset less than the second offset threshold along the second coordinate axis direction is the maximum value of the offset along the second coordinate axis direction that is preset. The decoded node is the node whose current node offset along the first coordinate axis and offset along the second coordinate axis are less than a third offset threshold. The third offset threshold is the maximum value of the sum of the offsets along the first coordinate axis and the second coordinate axis, which is a preset value. The first coordinate axis and the second coordinate axis are coordinate axes in two different directions in a three-dimensional coordinate system.

51. The apparatus according to claim 50, characterized in that, The decoded nodes at the fixed positions are selected in the following manner: Select a fixed number of decoded nodes that meet the first condition in a first order, wherein the first order is at least one of linear order, Hilbert order, Morton order, or coordinate axis order.

52. The apparatus according to claim 50 or 51, characterized in that, At least one of the first offset threshold, the second offset threshold, and the third offset threshold is a default value or a group of values.

53. The apparatus according to claim 50 or 51, characterized in that, At least one of the first offset threshold, the second offset threshold, and the third offset threshold is determined based on a second condition; or, determined based on at least one piece of information; The at least one piece of information includes at least one of the following: quantization parameters, data geometric precision, geometric patch density, geometric patch size, the occupancy information of the reference node, the relative position of the current node, the parent node of the current node and its neighboring nodes; the second condition is related to at least one of the following: geometric patch information, the relative position of the current node, the occupancy information of the parent node of the current node, the occupancy information of the neighboring nodes of the current node, and the occupancy information of the first k reference nodes.

54. The apparatus according to claim 45, 50, or 51, characterized in that, At least one of the first coordinate axis direction and the second coordinate axis direction is the default coordinate axis direction.

55. The apparatus according to claim 45, 50, or 51, characterized in that, At least one of the first coordinate axis direction and the second coordinate axis direction is determined based on a second condition; or, determined based on at least one piece of information; The at least one piece of information includes at least one of the following: quantization parameters, data geometric precision, geometric patch density, geometric patch size, the occupancy information of the reference node, the relative position of the current node, the parent node of the current node and its neighboring nodes; the second condition is related to at least one of the following: geometric patch information, the relative position of the current node, the occupancy information of the parent node of the current node, the occupancy information of the neighboring nodes of the current node, and the occupancy information of the first k reference nodes.

56. The apparatus according to claim 32, characterized in that, The determining module is also used to determine the selection method of subsequent reference nodes based on the number of non-empty nodes among the already selected reference nodes; or, Based on the range of the number of non-empty nodes in the already selected reference nodes, the selection method for the subsequent reference nodes is determined. or, The selection method for subsequent reference nodes is determined based on at least one threshold and the number of non-empty nodes among the already selected reference nodes.

57. The apparatus according to claim 32, characterized in that, The determining module is used to determine the planar mode qualification of the current node based on the geometric information of the second node, wherein the planar mode qualification is used to indicate whether the current node is suitable for the planar mode; Wherein, the second node may be the same as or different from the first node, and the second node is at least one of the following nodes: Reference node; The child nodes of the reference node; The decoded child nodes of the current node; The child node to be decoded of the current node.

58. The apparatus according to claim 57, characterized in that, The determining module is used to determine the planar mode qualification of the current node based on the number of non-empty nodes in the reference nodes; or, Based on the occupancy status of the child nodes of the reference node, determine the planar mode qualification of the current node; or, Based on the occupancy status of the decoded child nodes of the reference node, the planar mode qualification of the current node is determined.

59. The apparatus according to claim 32, characterized in that, The determining module is also used to determine whether the current node uses geometric mode decoding.

60. The apparatus according to claim 59, characterized in that, Determining whether the current node uses geometric mode decoding includes any one of the following steps: Determine whether the current node uses geometric mode decoding at the point cloud or point cloud slice level; At the macroblock level, determine whether the current node uses geometric mode decoding; Determine whether the current node uses geometric mode decoding at the depth level of the octree.

61. The apparatus according to claim 59, characterized in that, Determining whether the current node uses geometric mode decoding includes at least one of the following steps: Determine whether the current node uses geometric mode decoding based on the decoding mode adopted by the decoding end; Determine whether the current node uses geometric mode decoding based on the parameter set or bitstream corresponding to the current node; Whether the current node uses geometric mode decoding is determined based on the geometric mode threshold parameter, which is a threshold parameter obtained from the decoding end, parameter set, or bitstream.

62. A device for determining a geometric pattern, characterized in that, The device can be implemented as an encoding end, and the device includes: The acquisition module is used to acquire the geometric information of the first node; The determining module is used to determine the geometric pattern of the current node based on the geometric information of the first node, wherein the current node is the node to be encoded. The first node includes at least one of the following nodes: a reference node; a child node of the reference node; an encoded child node of the current node; and a child node of the current node to be encoded. Determining the geometric pattern of the current node based on the geometric information of the first node includes: The geometric pattern of the current node is determined based on at least one threshold and the geometric information of the first node; Determining the geometric pattern of the current node based on at least one threshold and the geometric information of the first node includes: If the number of child nodes occupying space in the lower plane is less than the first threshold and the number of child nodes occupying space in the higher plane is greater than the second threshold, the current node is determined to be in the first encoding mode. or, If the number of low-plane occupier child nodes is greater than the third threshold and the number of high-plane occupier child nodes is less than the fourth threshold, the current node is determined to be in the second encoding mode. Wherein, the low-plane occupant child node refers to the child node of the reference node located in the low plane and occupied, and the high-plane occupant child node refers to the child node of the reference node located in the high plane and occupied.

63. A computer device, characterized in that, The computer device includes a processor and a memory, the memory storing at least one program, the at least one program being loaded and executed by the processor to implement the method for determining a geometric pattern as described in any one of claims 1 to 30 or the method for determining a geometric pattern as described in claim 31.

64. A computer-readable storage medium, characterized in that, The storage medium stores at least one program segment, which is loaded and executed by a processor to implement the method for determining a geometric pattern as described in any one of claims 1 to 30 or the method for determining a geometric pattern as described in claim 31.

65. A computer program product, characterized in that, The computer program product stores at least one program segment, which is loaded and executed by a processor to implement the method for determining a geometric pattern as described in any one of claims 1 to 30 or the method for determining a geometric pattern as described in claim 31.

Citation Information

Patent Citations

  • Method and device for point cloud decoding

    CN115152225A

  • Point cloud coding processing method, point cloud decoding processing method and related equipment

    CN115474052A