WO2022116117A1 - Prediction method, encoder, decoder and computer storage medium - Google Patents

Prediction method, encoder, decoder and computer storage medium Download PDF

Info

Publication number
WO2022116117A1
WO2022116117A1 PCT/CN2020/133704 CN2020133704W WO2022116117A1 WO 2022116117 A1 WO2022116117 A1 WO 2022116117A1 CN 2020133704 W CN2020133704 W CN 2020133704W WO 2022116117 A1 WO2022116117 A1 WO 2022116117A1
Authority
WO
WIPO (PCT)
Prior art keywords
neighbor
searched
node
neighbor nodes
current node
Prior art date
Application number
PCT/CN2020/133704
Other languages
French (fr)
Chinese (zh)
Inventor
杨付正
孙泽星
代娜
万帅
霍俊彦
马彦卓
Original Assignee
Oppo广东移动通信有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Priority to PCT/CN2020/133704 priority Critical patent/WO2022116117A1/en
Priority to CN202311829559.0A priority patent/CN117793372A/en
Priority to CN202080107458.0A priority patent/CN116547968A/en
Publication of WO2022116117A1 publication Critical patent/WO2022116117A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals

Definitions

  • the embodiments of the present application relate to the technical field of encoding and decoding, and in particular, to a prediction method, an encoder, a decoder, and a computer storage medium.
  • the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately. After the geometric encoding is completed, the geometric information will be reconstructed, and the encoding of the attribute information will depend on the reconstructed geometric information.
  • the attribute information coding is mainly for the coding of color information, so as to transform the color information from the spatial domain to the frequency domain to obtain high-frequency coefficients and low-frequency coefficients, and finally perform quantization and entropy coding on the coefficients to generate a code stream.
  • the current attribute prediction does not fully utilize the spatial correlation of point clouds, which reduces the encoding and decoding efficiency of point clouds.
  • Embodiments of the present application provide a prediction method, an encoder, a decoder, and a computer storage medium, which can make full use of the spatial correlation of point clouds, thereby reducing the code rate and improving encoding and decoding efficiency.
  • an embodiment of the present application provides a prediction method, which is applied to an encoder, and the method includes:
  • An attribute prediction value of the current node is determined based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • an embodiment of the present application provides a prediction method, which is applied to a decoder, and the method includes:
  • An attribute prediction value of the current node is determined based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • an embodiment of the present application provides an encoder, the encoder includes a first determination unit, a first judgment unit, and a first prediction unit; wherein,
  • the first determining unit is configured to determine the N neighbor nodes to be searched for the current node
  • the first judgment unit is configured to obtain a first attribute reconstruction value of the coplanar neighbor node if there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched ;
  • the first judging unit is further configured to obtain the second attribute reconstruction of the collinear neighbor node if there is a collinear neighbor node that is collinear with the current node and has been encoded in the N neighbor nodes to be searched value;
  • the first prediction unit is configured to determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • an embodiment of the present application provides an encoder, where the encoder includes a first memory and a first processor; wherein,
  • a first memory for storing a computer program executable on the first processor
  • the first processor is configured to execute the method according to the first aspect when running the computer program.
  • an embodiment of the present application provides a decoder, the decoder includes a second determination unit, a second judgment unit, and a second prediction unit; wherein,
  • the second determining unit is configured to determine the N neighbor nodes to be searched for the current node
  • the second judgment unit is configured to obtain a first attribute reconstruction value of the coplanar neighbor node if there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched ;
  • the second judgment unit is further configured to obtain the second attribute reconstruction of the collinear neighbor node if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched value;
  • the second prediction unit is configured to determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • an embodiment of the present application provides a decoder, the decoder includes a second memory and a second processor; wherein,
  • a second memory for storing a computer program executable on the second processor
  • the second processor is configured to execute the method according to the second aspect when running the computer program.
  • an embodiment of the present application provides a computer storage medium, where the computer storage medium stores a computer program, and when the computer program is executed by the first processor, the method described in the first aspect is implemented, or the computer program is executed by the second processor.
  • the processor implements the method as described in the second aspect when executed.
  • the embodiments of the present application provide a prediction method, an encoder, a decoder, and a computer storage medium.
  • N neighbor nodes to be searched for the current node are determined; If the current node is coplanar and has been coded coplanar neighbor nodes, the first attribute reconstruction value of the coplanar neighbor node is obtained; if the N neighbor nodes to be searched are collinear with the current node and already the encoded collinear neighbor node, obtain the second attribute reconstruction value of the collinear neighbor node; based on the first attribute reconstruction value and/or the second attribute reconstruction value, determine the attribute prediction value of the current node .
  • the decoder side by determining the N neighbor nodes to be searched of the current node; if there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, obtain the coplanar neighbor node.
  • the first attribute reconstruction value of the neighbor node if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the collinear neighbor node ; determining an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • the spatial correlation of the point cloud can be fully utilized, so that the prediction residual is smaller, and the code rate can be reduced.
  • the encoding and decoding efficiency is improved.
  • FIG. 1A is a schematic diagram of the frame composition of a point cloud encoder provided by the related art
  • 1B is a schematic diagram of the frame composition of a point cloud decoder provided by the related art
  • FIG. 2 is a schematic diagram of the spatial relationship between a current node and a neighbor node provided by the related art
  • 3A is a schematic diagram of a Morton code relationship between neighbor nodes that are coplanar with the current node and have been encoded and decoded within a preset neighbor range provided by the related art;
  • 3B is a schematic diagram of the Morton code relationship between neighbor nodes that are collinear with the current node and have been encoded and decoded within a preset neighbor range provided by the related art;
  • FIG. 4 is a schematic flowchart of a prediction method provided by an embodiment of the present application.
  • FIG. 5 is a schematic flowchart of another prediction method provided by an embodiment of the present application.
  • 6A is a schematic diagram of a neighbor search range provided by the related art
  • 6B is a schematic diagram of a neighbor search range provided by an embodiment of the present application.
  • FIG. 7 is a schematic flowchart of another prediction method provided by an embodiment of the present application.
  • FIG. 8 is a schematic diagram of the composition and structure of an encoder according to an embodiment of the present application.
  • FIG. 9 is a schematic diagram of a specific hardware structure of an encoder provided by an embodiment of the present application.
  • FIG. 10 is a schematic diagram of the composition and structure of a decoder provided by an embodiment of the application.
  • FIG. 11 is a schematic diagram of a specific hardware structure of a decoder provided by an embodiment of the present application.
  • first ⁇ second ⁇ third involved in the embodiments of the present application is only to distinguish similar objects, and does not represent a specific ordering of objects. It is understandable that “first ⁇ second ⁇ third” "Where permitted, the specific order or sequence may be interchanged to enable the embodiments of the application described herein to be practiced in sequences other than those illustrated or described herein.
  • nouns and terms involved in the embodiments of the present application are described.
  • the nouns and terms involved in the embodiments of the present application are applicable to the following explanations: point cloud compression (Point Cloud Compression, PCC), Point Cloud Reference Model (PCRM), Morton code (Morton), bounding box, octree, Red-Green-Blue (RGB), Luminance-Chrominance (YUV), Look Up Table (LUT), Peak Signal to Noise Ratio (PSNR), Audio Video coding Standard (AVS).
  • Point cloud is a three-dimensional representation of the surface of an object. Through photoelectric radar, lidar, laser scanner, multi-view camera and other acquisition equipment, the point cloud (data) on the surface of the object can be collected.
  • a point cloud refers to a collection of massive three-dimensional points, and the points in the point cloud may include point location information and point attribute information.
  • the position information of the point may be three-dimensional coordinate information of the point.
  • the position information of the point may also be referred to as the geometric information of the point.
  • the attribute information of the points may include color information and/or reflectivity, among others.
  • the color information may be information in any color space.
  • the color information may be RGB information. Among them, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B).
  • the color information may be luminance chrominance (YCbCr, YUV) information. Among them, Y represents brightness (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
  • the points in the point cloud may include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point.
  • the points in the point cloud may include three-dimensional coordinate information of the point and color information of the point.
  • a point cloud is obtained by combining the principles of laser measurement and photogrammetry, and the points in the point cloud may include three-dimensional coordinate information of the point, laser reflection intensity (reflectance) of the point, and color information of the point.
  • Point clouds can be divided into:
  • the first type of static point cloud that is, the object is static, and the device that obtains the point cloud is also static;
  • the second type of dynamic point cloud the object is moving, but the device that obtains the point cloud is stationary;
  • the third type of dynamic point cloud acquisition the device that acquires the point cloud is moving.
  • point clouds are divided into two categories according to their use:
  • Category 1 Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and rescue and relief robots;
  • Category 2 Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
  • the point cloud is a collection of massive points, storing the point cloud will not only consume a lot of memory, but also is not conducive to transmission, and there is no such a large bandwidth to support the direct transmission of the point cloud at the network layer without compression. cloud for compression.
  • point cloud compression can generally adopt the way of compressing geometric information and attribute information separately.
  • the input point cloud can be divided into geometric information and attribute information corresponding to each point, and the two are encoded separately.
  • coordinate transformation ie, coordinate translation
  • coordinate quantization is performed on the geometric information, so that all point clouds are located in a bounding box, and then coordinate quantization is performed.
  • This step of quantization mainly plays the role of scaling.
  • the geometric octree is constructed from the root node (level 0) according to breadth-first.
  • the geometry information is reconstructed (ie, octree reconstruction) and used as additional information to guide attribute encoding.
  • attribute encoding is mainly carried out for color information.
  • the color information is spatially transformed, specifically from the RGB color space to the YUV color space.
  • the point cloud is recolored (ie, attribute interpolation) using the reconstructed geometric information, so that the unencoded attribute information corresponds to the reconstructed geometric information.
  • attribute prediction is performed.
  • the point cloud is reordered based on the Morton code to generate a point cloud sequence that can be used for point cloud attribute prediction.
  • the nearest neighbor node is searched using the geometric space relationship, and the reconstructed attribute value of the found nearest neighbor node is used.
  • Predict the attributes of the current node is obtained by differentiating the real attribute value and the predicted attribute value, the residual quantization of the attribute prediction residual is carried out, and then the binary attribute code stream is obtained by inputting the entropy coding engine.
  • the geometric code stream and the attribute code stream in the binary code stream are independently decoded respectively.
  • decoding the geometric code stream first perform entropy decoding on the geometric code stream to obtain the geometric information of each node; then reconstruct the octree in the same way as the geometric entropy encoding, and then perform Through inverse coordinate quantization and inverse coordinate translation, the decoded geometric information can be obtained, that is, the geometric position of the point cloud can be determined.
  • the decoding geometry information needs to be used as additional information to guide the attribute decoding.
  • the current node to be predicted can be obtained in the same way as attribute encoding.
  • the attribute prediction value of , and then adding the attribute prediction value and the residual value, the YUV attribute value of the current node to be predicted can be recovered; finally, the attribute information of the point cloud can be obtained through inverse space transformation.
  • the Morton code can be used to find the spatial neighbor nodes of the current node, and then the attribute prediction of the current node is performed according to the found neighbor nodes.
  • FIG. 2 shows a schematic diagram of a spatial relationship between a current node and a neighbor node provided by the related art.
  • the block represented by the bold line is the current node, and its corresponding preset neighborhood range is 3 ⁇ 3 ⁇ 3; where X represents the horizontal coordinate axis, Y represents the vertical coordinate axis, and Z represents z Axis.
  • the total number of neighbor nodes of the current node is 26; among them, the number of neighbor nodes that are coplanar with the current node is 6, the number of neighbor nodes that are collinear with the current node is 12, and the number of neighbor nodes that are co-located with the current node.
  • the preset neighborhood range is not limited to 3 ⁇ 3 ⁇ 3, but can also be 4 ⁇ 4 ⁇ 4, 5 ⁇ 5 ⁇ 5, 6 ⁇ 6 ⁇ 6, or even larger than 6 ⁇
  • the size of 6 ⁇ 6, etc., is not specifically limited in the embodiments of the present application.
  • the search range of the neighbor node is a preset neighborhood range with a size of 3 ⁇ 3 ⁇ 3 of the current node to be encoded.
  • the Morton code of the current point node is used to obtain the block with the smallest Morton code value in the neighborhood, and this block is used as the reference block, and then the reference block is used to find the coded code that is coplanar and collinear with the current point node to be coded.
  • Decode neighbor nodes The Morton code relationship between neighboring nodes that are coplanar with the current node to be encoded and have been encoded/decoded (may be referred to as “encoded and decoded”) within the preset neighborhood range is shown in FIG.
  • FIG. 3A The Morton code relationship between neighbor nodes that are collinear with the current node and have been encoded and decoded within the domain is shown in Figure 3B.
  • the block filled with 7 represents the current node
  • the block filled with 3, 5, and 6 is the neighbor node that is coplanar with the current node.
  • the block filled with 7 still represents the current node
  • the block filled with 1, 2, and 4 is the neighbor node that is collinear with the current node.
  • the reference block is used to search for N neighboring nodes that are coplanar and collinear with the current node and have been encoded and decoded (when the preset neighborhood range is 3 ⁇ 3 ⁇ 3, the value of N is less than or equal to 6 ), and then use these N neighbor nodes to predict the attributes of the current node. If no coplanar or collinear neighbor nodes are found, the current node will be predicted by the reconstructed attribute value of the previous encoded and decoded node whose Morton code is smaller than the current node.
  • the 6 neighbor nodes filled with 1, 2, 3, 4, 5, and 6 must complete the attribute encoding and decoding before the current node, but in addition to these neighbor nodes, they can also include some Collinear neighbor nodes may also complete attribute encoding and decoding before the current node.
  • some Collinear neighbor nodes may also complete attribute encoding and decoding before the current node.
  • currently only three coplanar and three collinear neighbor nodes as shown in FIG. 3A and FIG. 3B are considered, so some coded and decoded collinear neighbor nodes will be missed.
  • An embodiment of the present application provides a prediction method.
  • the basic idea of the method is: by determining N neighbor nodes to be searched for the current node; Coplanar neighbor node that has been encoded/decoded, obtain the first attribute reconstruction value of the coplanar neighbor node; For a collinear neighbor node, the second attribute reconstruction value of the collinear neighbor node is obtained; based on the first attribute reconstruction value and/or the second attribute reconstruction value, the attribute prediction value of the current node is determined.
  • both the encoder and the decoder can make full use of the spatial correlation of the point cloud due to the expansion of the neighbor search range when making attribute predictions based on the geometric spatial relationship between the current node and the neighbor nodes, making the prediction residual more efficient. small, so that the code rate can be reduced, and the encoding and decoding efficiency can be improved.
  • the prediction method provided in the embodiment of the present application is applied to a video encoding device, that is, a point cloud encoder (or referred to as a PCRM encoder), and the embodiment of the present application may also be referred to as an encoder for short.
  • the functions implemented by the method can be implemented by the first processor in the encoder calling a computer program.
  • the computer program can be stored in the first memory.
  • the encoder includes at least a first processor and a first memory.
  • FIG. 4 it shows a schematic flowchart of a prediction method provided by an embodiment of the present application. As shown in Figure 4, the method may include:
  • S401 Determine N neighbor nodes to be searched for the current node.
  • a point in a point cloud, a point can be all points in the point cloud, or some points in the point cloud, and these points are relatively concentrated in space.
  • the current node may also be referred to as the current point or the current block, and specifically refers to the point or block currently to be encoded in the point cloud.
  • the method in the embodiment of the present application is mainly applied to the “attribute prediction” part, for the current related art based on the neighbor search range (also referred to as “neighborhood”).
  • the attribute prediction of “domain search range” or “neighbor range to be searched”) is optimized, and the utilization of spatial correlation is improved by expanding the neighbor search range.
  • the N neighbor nodes to be searched are selected from the neighbor information of the current node.
  • the determining the N neighbor nodes to be searched for the current node may include:
  • the N neighbor nodes to be searched are determined.
  • the neighbor information of the current node may include: six neighbor nodes coplanar with the current node, twelve neighbor nodes colinear with the current node, and The eight neighbor nodes of the point.
  • the number of neighbor nodes of the current node is 26 in total.
  • the number of neighbor nodes that are coplanar with the current node is 6
  • the number of neighbor nodes that are collinear with the current node is 12
  • the number of neighbor nodes that are co-located with the current node is 8.
  • the N neighbor nodes to be searched in the embodiments of the present application are determined from the 26 neighbor nodes.
  • the determining the N neighbor nodes to be searched from the neighbor information of the current node may include:
  • the three neighbor nodes that must have been encoded in the six neighbor nodes that are coplanar with the current node are determined as three neighbor nodes to be searched, and the twelve neighbor nodes that are collinear with the current node must be encoded. Three neighbor nodes are determined as three neighbor nodes to be searched;
  • n neighbor nodes that may have been encoded in the remaining nine neighbor nodes collinear with the current node are determined as the n neighbor nodes to be searched, where n is greater than an integer of 0 and less than 9;
  • the obtained (6+n) neighbor nodes to be searched are determined as the N neighbor nodes to be searched.
  • the current related technology only constitutes a neighbor search range of six neighbor nodes that can be determined to be encoded.
  • FIG. 3A among the six neighbor nodes coplanar with the current node, there are only three neighbor nodes that are coplanar with the left side, front side and lower side of the current node (respectively with 3, 5, 6 padding) is able to determine that it must have been encoded.
  • Figure 3B among the twelve neighbor nodes that are collinear with the current node, there are only three neighbor nodes that are collinear with the left, front, and bottom directions of the current node (filled with 1, 2, and 4, respectively) It is possible to be sure that it must have been encoded.
  • the embodiment of the present application expands the neighbor search range. That is to say, based on the geometric space relationship between the current node and the neighbor nodes, the n neighbor nodes that may have been encoded in the remaining nine neighbor nodes that are collinear with the current node are determined as the n neighbor nodes to be searched, so that the expansion
  • the latter neighbor search range includes (6+n) neighbor nodes to be searched.
  • n is an integer greater than 0 and less than 9, that is, N is an integer greater than 6.
  • n is an integer greater than 0 and less than or equal to 6.
  • N is an integer greater than 6 and less than or equal to 12. In another specific example of the embodiment of the present application, the value of N may be 12.
  • the method may further include: writing the value of N into the code stream.
  • the subsequent decoder can directly obtain the number of neighbor nodes to be searched (the value of N) by parsing the code stream, so that the neighbor search ranges of the encoder and decoder are consistent .
  • the method may further include:
  • Morton codes of the N neighbor nodes to be searched are determined according to the preset lookup table.
  • the preset look-up table is a Morton code for storing N coordinate difference values.
  • the N coordinate difference values are obtained by calculating the difference value of the coordinate information between the reference point of the current node and the N neighbor nodes to be searched.
  • the determining the reference point of the current node may include:
  • the neighbor node According to the Morton code of the current node, determine the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node;
  • the neighbor node corresponding to the minimum Morton code is determined as the reference point.
  • determining the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node according to the Morton code of the current node may include:
  • a minimum Morton code is selected from Morton codes of the at least one neighbor node to obtain a neighbor node corresponding to the minimum Morton code.
  • the Morton code corresponding to each point in the point cloud can be obtained by using the coordinate information of the node (or simply referred to as "point").
  • Morton code can convert multi-dimensional data into one-dimensional data encoding
  • Morton code can also be called z-order code, because its encoding order is according to the spatial z order.
  • the specific method for calculating the Morton code is described as follows. For the three-dimensional coordinates (x, y, z) represented by a d-bit binary number for each component, the three components are represented by the following:
  • the Morton code M starts from the highest bit for x, y, and z, and arranges x l , y l , z l to the lowest bit in turn.
  • the calculation formula of M is as follows:
  • the points in the point cloud are arranged in the order of Morton code from small to large, and the weight w of each point is set to 1. Represented in computer language, similar to the combination of z
  • the Morton code of the current node is first calculated, and then the Morton code of the reference point is located according to the Morton code of the current node.
  • the Morton code of the reference point is the smallest Morton code among the neighbor nodes of the current node.
  • the three-dimensional coordinates of the current node are (x, y, z)
  • the three-dimensional coordinates of the reference point are (x-1, y-1, z-1)
  • the calculated Morton code is the smallest. of.
  • the coordinate difference (offset) between the reference point and the N neighbor nodes to be searched can be calculated, and the N coordinate difference values can be converted into N Morton codes, and then the N Morton codes Stored in a preset lookup table.
  • the determining the Morton codes of the N neighbor nodes to be searched according to the preset lookup table may include:
  • the Morton codes of the reference point and the Morton codes of N coordinate differences are calculated to obtain the Morton codes of the N neighbor nodes to be searched.
  • the Morton codes of N coordinate difference values can be obtained from the preset lookup table. After the Morton code of the reference point is determined, the Morton code of the reference point and the N coordinate difference values can be determined. The Morton code is calculated to obtain the Morton codes of the N neighbor nodes to be searched.
  • the first stored Morton code is obtained from the preset lookup table, and then the Morton code is added to the Morton code of the reference point to obtain the first neighbor to be searched.
  • the Morton codes of the N neighbor nodes to be searched can be obtained.
  • S404 Determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • the method may further include:
  • the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
  • the method may further include:
  • a Morton code smaller than the Morton code of the current node is intercepted from the Morton code sequence, and the preset point cloud sequence is obtained according to the intercepted Morton code.
  • the point cloud includes the current node, calculate the Morton code of at least one point in the point cloud, and then arrange the Morton codes in ascending order to obtain the Morton code sequence;
  • the Morton code smaller than the Morton code of the current node is intercepted from the code sequence, so that a preset point cloud sequence can be obtained according to the intercepted Morton code, and each node in the preset point cloud sequence is encoded. node.
  • the Morton codes can also be arranged in descending order to obtain a Morton code sequence, but the Morton code sequence smaller than that of the current node is still intercepted from the Morton code sequence. Morton code to get preset point cloud sequence.
  • the Morton code of the first neighbor node to be searched exists in the preset point cloud sequence.
  • node that is, the first neighbor node to be searched is an encoded node; when there is no Morton code of the first neighbor node to be searched in the preset point cloud sequence, the N neighbor nodes to be searched can be determined at this time.
  • the first neighbor node to be searched does not exist in , that is, the first neighbor node to be searched is a node that has not been coded, that is, it cannot be used as a reference neighbor node for attribute prediction.
  • the method may further include:
  • the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
  • the neighbor nodes used for prediction need to be nodes that have been traversed, and the traversal order is in the order of Morton code from small to large. Therefore, only neighbor nodes whose Morton code is smaller than that of the current node can be used for attribute prediction. If the Morton code of the found neighbor node is larger than that of the current node, it cannot be used as a reference neighbor node. In other words, only when the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node, it can be determined that the first neighbor node to be searched exists among the N neighbor nodes to be searched, that is, the first neighbor node to be searched.
  • the neighbor node to be searched is an encoded node; and when the Morton code of the first neighbor node to be searched is greater than the Morton code of the current node, it can be determined that the N neighbor nodes to be searched do not exist in the first neighbor node.
  • the neighbor node to be searched that is, the first neighbor node to be searched is a node that has not been coded, that is, it cannot be used as a reference neighbor node for attribute prediction.
  • the method may further include:
  • the first neighbor node to be searched is a coplanar neighbor node of the current node, it is determined that there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
  • the first neighbor node to be searched is a collinear neighbor node of the current node, it is determined that there is a collinear neighbor node that is collinear with the current node and has been coded among the N neighbor nodes to be searched.
  • the first neighbor node to be searched is a coplanar neighbor node of the current node, it can be determined that there are coplanar neighbor nodes that are coplanar with the current node and have been encoded in the N neighbor nodes to be searched; If the neighbor node is the collinear neighbor node of the current node, it can be determined that there are collinear neighbor nodes that are collinear with the current node and have been encoded among the N neighbor nodes to be searched.
  • the closer the distance the stronger the spatial correlation.
  • the distance between the current node and the coplanar neighbor node is 1, and the distance between the current node and the collinear neighbor node is 1 Therefore, relatively speaking, coplanar neighbor nodes have stronger spatial correlation, and in this embodiment of the present application, it is possible to preferentially determine whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded among the N neighbor nodes to be searched.
  • the method may further include: setting the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
  • the number of reference neighbor nodes may be preset. In this way, among the N neighbor nodes to be searched, when K existing neighbor nodes are searched, the search can be stopped at this time, and the K neighbor nodes obtained by the search can be directly used for attribute prediction, thereby reducing the search complexity.
  • the value of K may be 3, may also be 6, and may even be 8 or other values.
  • the value of K is specifically set according to the actual situation, and no limitation is made here.
  • the method may further include: writing the value of K into the code stream.
  • the subsequent decoder can directly obtain the number of reference neighbor nodes (the value of K) by parsing the code stream, so that the predictions used for attribute prediction in the encoder and decoder are Let the number of reference neighbor nodes be the same.
  • the method may also include:
  • the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
  • the search can be stopped at this time. ; and then obtain the first attribute reconstruction value of the K coplanar neighbor nodes, and calculate the mean value of the first attribute reconstruction value of the K coplanar neighbor nodes to obtain the attribute prediction value of the current node.
  • the method may further include:
  • the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
  • the search can be stopped at this time. ; and then obtain the second attribute reconstruction value of the K collinear neighbor nodes, and calculate the mean value of the second attribute reconstruction value of the K collinear neighbor nodes to obtain the attribute prediction value of the current node.
  • the method may also include:
  • the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
  • the N neighbor nodes to be searched it is searched whether there is a coplanar neighbor node that is coplanar with the current node and has been coded. Search the neighbor nodes to see if there is a collinear neighbor node that is collinear with the current node and has been coded. When K existing collinear neighbor nodes are searched, the search can be stopped at this time, and then the information of the K collinear neighbor nodes can be obtained.
  • the second attribute reconstruction value and by performing mean calculation on the second attribute reconstruction value of the K collinear neighbor nodes, the attribute prediction value of the current node can be obtained.
  • the predicted value of the attribute of the current node can be obtained by performing mean calculation on the reconstructed value of the second attribute of the k collinear neighbor nodes.
  • the method may also include:
  • L is an integer greater than 0 and less than or equal to (K-M);
  • the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
  • a weighted calculation is performed on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node.
  • the search can be stopped at this time, and then Obtain the first attribute reconstruction values of the M coplanar neighbor nodes and the second attribute reconstruction values of the (K-M) collinear neighbor nodes, and obtain the M first attribute reconstruction values and the (K-M) second attribute reconstruction values.
  • the attribute reconstruction value is weighted to calculate the attribute prediction value of the current node.
  • the attribute prediction value of the current node can be obtained by performing weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values.
  • the performing weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node may include:
  • the first weight value (that is, the weight of the coplanar neighbor node) may be set to 2
  • the second weight value (that is, the weight of the collinear neighbor node) Set to 1.
  • the method may further include:
  • the previous Morton code of the Morton code located at the current node is determined, and the attribute reconstruction value of the point corresponding to the previous Morton code is determined as the attribute prediction value of the current node.
  • the Morton code located at the current node in the Morton code sequence can be directly used at this time.
  • the attribute reconstruction value of the previous point of the code is used as the attribute prediction value of the current node. In other words, for the points in the point cloud, except for the first point that does not need attribute prediction, all other points need attribute prediction.
  • This embodiment provides a prediction method, by determining N neighbor nodes to be searched of the current node; if there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched, then Obtain the first attribute reconstruction value of the coplanar neighbor node; if there is a collinear neighbor node that is collinear with the current node and has been encoded in the N neighbor nodes to be searched, then obtain the collinear neighbor node.
  • second attribute reconstruction value determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • FIG. 5 shows a schematic flowchart of another prediction method provided by the embodiment of the present application. As shown in Figure 5, the method may include:
  • S501 Determine N neighbor nodes to be searched for the current node.
  • the embodiment of the present application expands the neighbor search range.
  • the value of N can be set to 12.
  • FIG. 6A it shows a schematic diagram of a neighbor search range provided by the related art.
  • FIG. 6B it shows a schematic diagram of a neighbor search range provided by an embodiment of the present application.
  • the block filled with gray is the current node, and its neighbor search range includes 6 neighbor nodes to be searched.
  • the block filled with gray is the current node, and its neighbor search range is extended by another 6 neighbor nodes to be searched in addition to the 6 neighbor nodes to be searched as shown in FIG. 6A . That is to say, the neighbor search range in this embodiment of the present application may include 12 neighbor nodes to be searched.
  • S502 Set the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
  • the encoder can preset the number of reference neighbor nodes. In this way, when K existing neighbor nodes are found in the N neighbor nodes to be searched, the search can be stopped at this time, which reduces the search complexity. Subsequently, the K neighbor nodes can be used as a reference to predict the attributes of the current node.
  • S507 Perform weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node.
  • M is an integer greater than 0
  • L is an integer greater than 0 and less than or equal to (K-M).
  • M is equal to 0, that is, no existing coplanar neighbor nodes are found in the N neighbor nodes to be searched, it is necessary to continue to search for the existence of the collinear neighbor nodes in the N neighbor nodes to be searched; if At this time, L existing collinear neighbor nodes are searched, and the mean value is calculated by the second attribute reconstruction value of the L collinear neighbor nodes, and the attribute prediction value of the current node can be obtained.
  • the embodiment of the present application proposes an attribute prediction method for expanding the neighbor search range.
  • the calculated Morton codes of neighboring nodes do not necessarily exist. At this time, it is also necessary to traverse the preset point cloud sequence to determine whether these points exist.
  • the preset point cloud sequence is a reconstructed point cloud, and the points in the preset point cloud sequence are all coded nodes.
  • the block filled with gray is the current node, and its neighbor search range includes 6 neighbor nodes to be searched.
  • the block filled with gray is the current node, and its neighbor search range is extended by another 6 neighbor nodes to be searched in addition to the 6 neighbor nodes to be searched as shown in Figure 6A (indicated by bold lines). ).
  • the neighbor search range in this embodiment of the present application may include 12 neighbor nodes to be searched.
  • the neighbor nodes used for prediction are points that have been traversed, and the traversal order is in the order of Morton codes from small to large. Therefore, only the point whose Morton code is smaller than the current point can be used for prediction. If the Morton code of the found neighbor node is larger than that of the current node, it cannot be used as a reference neighbor node.
  • a coplanar neighbor node with a distance of 1 may be searched first, and if it exists, the average value of these coplanar neighbor nodes is used as the predicted value; or, if If there is no coplanar neighbor node at all, then you can continue to search for a distance of The average value of these collinear neighbor nodes is used as the predicted value; or, if there are coplanar neighbor nodes but the preset number of reference neighbor nodes is not met, then the search can also be continued.
  • the search distance is The collinear neighbor nodes of , use the weighted average of these coplanar neighbor nodes and the collinear neighbor nodes as the predicted value; if none of the above neighbor nodes exist, then the previous point of the Morton code sequence of the current node can be used at this time.
  • the attribute reconstruction value of is directly used as the attribute prediction value.
  • the embodiment of the present application expands the neighbor search range, and can make full use of the spatial correlation of the point cloud, so that the prediction residual is smaller, which is more suitable for subsequent quantization and entropy coding.
  • the technical solutions proposed in the embodiments of the present application do not substantially increase the complexity of encoding and decoding, using the technical solutions has the following beneficial effects:
  • PSNR is an objective criterion for image evaluation.
  • C2 geometric lossless, attribute lossy
  • the BD-rates of all test sequences are negative, and when the BD-rate is negative, the performance is improved. On this basis, the greater the absolute value of BD-rate, the greater the performance gain.
  • This embodiment provides a prediction method.
  • the specific implementation of the foregoing embodiment is described in detail through the foregoing embodiment. It can be seen from this that the present application expands the neighbor search range when performing attribute prediction according to the geometric space relationship, and fully The spatial correlation of adjacent points is exploited. Compared with the related art, the technical solution of the present application utilizes the spatial correlation of the point cloud to a greater extent, and under the condition that the PSNR performance is maintained or even slightly better, the output binary code stream can be reduced, so that the code rate can be reduced, thereby improving the performance. coding efficiency.
  • the prediction method provided by the embodiment of the present application is applied to a video decoding device, that is, a point cloud decoder (or referred to as a PCRM decoder), and the embodiment of the present application may also be referred to as a decoder for short.
  • a video decoding device that is, a point cloud decoder (or referred to as a PCRM decoder), and the embodiment of the present application may also be referred to as a decoder for short.
  • the functions implemented by the method can be implemented by calling a computer program by the second processor in the decoder.
  • the computer program can be stored in the second memory. It can be seen that the decoder includes at least the second processor and the second memory.
  • FIG. 7 shows a schematic flowchart of another prediction method provided by an embodiment of the present application. As shown in Figure 7, the method may include:
  • S701 Determine N neighbor nodes to be searched for the current node.
  • a point in a point cloud, a point can be all points in the point cloud, or some points in the point cloud, and these points are relatively concentrated in space.
  • the current node may also be referred to as the current point or the current block, and specifically refers to the point or block currently to be decoded in the point cloud.
  • the method in the embodiment of the present application is mainly applied to the “attribute reconstruction” part, and is optimized for the attribute prediction based on the neighbor search range in the current related art, through Expand the neighbor search range to improve the utilization of spatial correlation.
  • the N neighbor nodes to be searched are selected from the neighbor information of the current node.
  • the determining the N neighbor nodes to be searched for the current node may include:
  • the N neighbor nodes to be searched are determined.
  • the neighbor information of the current node may include: six neighbor nodes coplanar with the current node, twelve neighbor nodes colinear with the current node, and The eight neighbor nodes of the point.
  • the determining the N neighbor nodes to be searched from the neighbor information of the current node may include:
  • Three neighbor nodes that must have been decoded in the six neighbor nodes that are coplanar with the current node are determined as three neighbor nodes to be searched, and the twelve neighbor nodes that are collinear with the current node must have been decoded. Three neighbor nodes are determined as three neighbor nodes to be searched;
  • n neighbor nodes that may have been decoded among the remaining nine neighbor nodes collinear with the current node are determined as the n neighbor nodes to be searched, where n is greater than an integer of 0 and less than 9;
  • the obtained (6+n) neighbor nodes to be searched are determined as the N neighbor nodes to be searched.
  • the embodiment of the present application expands the neighbor search range. That is to say, based on the geometric space relationship between the current node and the neighbor nodes, the n neighbor nodes that may have been decoded among the remaining nine neighbor nodes collinear with the current node are determined as the n neighbor nodes to be searched, so that the expansion
  • the subsequent neighbor search range is (6+n) neighbor nodes to be searched.
  • n is an integer greater than 0 and less than 9, that is, N is an integer greater than 6.
  • n is an integer greater than 0 and less than or equal to 6.
  • N is an integer greater than 6 and less than or equal to 12. In another specific example of the embodiment of the present application, the value of N may be 12.
  • the method may further include: parsing the code stream to obtain the value of N.
  • the decoder can directly parse the code stream to obtain the number of neighbor nodes to be searched (the value of N), thereby making the neighbor search range of the encoder and decoder be consistent.
  • the method may further include:
  • Morton codes of the N neighbor nodes to be searched are determined according to the preset lookup table.
  • the preset look-up table is a Morton code for storing N coordinate difference values.
  • the N coordinate difference values are obtained by calculating the difference value of the coordinate information between the reference point of the current node and the N neighbor nodes to be searched.
  • the determining the reference point of the current node may include:
  • the neighbor node According to the Morton code of the current node, determine the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node;
  • the neighbor node corresponding to the minimum Morton code is determined as the reference point.
  • determining the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node according to the Morton code of the current node may include:
  • a minimum Morton code is selected from Morton codes of the at least one neighbor node to obtain a neighbor node corresponding to the minimum Morton code.
  • the Morton code corresponding to each point in the point cloud can be obtained by using the coordinate information of the node (or simply referred to as "point").
  • Morton code can convert multi-dimensional data into one-dimensional data encoding, and Morton code can also be called z-order code, because its decoding order is also in the spatial z order.
  • the coordinate difference (offset) between the reference point and the N neighbor nodes to be searched can be calculated, and the N coordinate difference values can be converted into N Morton codes, and then the N Frames are stored in a preset lookup table.
  • determining the Morton codes of the N neighbor nodes to be searched according to the preset lookup table may include:
  • the Morton code of the reference point and the Morton code of N coordinate differences are calculated to obtain the Morton codes of the N neighbor nodes to be searched.
  • the Morton codes of N coordinate differences can be obtained from the preset lookup table. After the Morton codes of the reference points are determined, the Morton codes of the reference points and the N coordinate differences can be analyzed. The frame code is calculated to obtain the Morton code of the N neighbor nodes to be searched.
  • S704 Determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • the method may further include:
  • the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
  • the method may further include:
  • a Morton code smaller than the Morton code of the current node is intercepted from the Morton code sequence, and the preset point cloud sequence is obtained according to the intercepted Morton code.
  • the point cloud includes the current node, calculate the Morton code of at least one point in the point cloud, and then arrange the Morton codes in ascending order to obtain the Morton code sequence;
  • the Morton code smaller than the Morton code of the current node is intercepted from the code sequence, so that a preset point cloud sequence can be obtained according to the intercepted Morton code, and each node in the preset point cloud sequence is encoded. node.
  • the Morton codes can also be arranged in descending order to obtain a Morton code sequence, but the Morton code sequence smaller than that of the current node is still intercepted from the Morton code sequence. Morton code to get preset point cloud sequence.
  • the method may further include:
  • the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
  • the neighbor nodes used for prediction need to be nodes that have been traversed, and the traversal order is in the order of Morton code from small to large. Therefore, only neighbor nodes whose Morton code is smaller than that of the current node can be used for attribute prediction. If the Morton code of the found neighbor node is larger than that of the current node, it cannot be used as a reference neighbor node. In other words, only when the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node, it can be determined that the first neighbor node to be searched exists among the N neighbor nodes to be searched, that is, the first neighbor node to be searched.
  • the neighbor node to be searched is a decoded node; and when the Morton code of the first neighbor node to be searched is greater than the Morton code of the current node, it can be determined that the N neighbor nodes to be searched do not exist in the first neighbor node.
  • the neighbor node to be searched that is, the first neighbor node to be searched is a node that has not been decoded, that is, it cannot be used as a reference neighbor node for attribute prediction.
  • the method may further include:
  • the first neighbor node to be searched is a coplanar neighbor node of the current node, it is determined that there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
  • the first neighbor node to be searched is a collinear neighbor node of the current node, it is determined that there is a collinear neighbor node that is collinear with the current node and has been decoded among the N neighbor nodes to be searched.
  • the first neighbor node to be searched is a coplanar neighbor node of the current node, it can be determined that there are coplanar neighbor nodes that are coplanar with the current node and have been decoded in the N neighbor nodes to be searched; If the neighbor node is a collinear neighbor node of the current node, it can be determined that there is a collinear neighbor node that is collinear with the current node and has been decoded among the N neighbor nodes to be searched.
  • the closer the distance the stronger the spatial correlation.
  • the distance between the current node and the coplanar neighbor node is 1, and the distance between the current node and the collinear neighbor node is 1 Therefore, relatively speaking, coplanar neighbor nodes have stronger spatial correlation, and in this embodiment of the present application, it is possible to preferentially determine whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched.
  • the number of reference neighbor nodes may also be preset.
  • the method may further include: setting the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
  • the value of K may also be written into the code stream on the encoder side.
  • the method may further include: parsing the code stream to obtain the value of K; where K represents the number of reference neighbor nodes.
  • the search can be stopped at this time, and the K neighbor nodes obtained by the search can be directly used for attribute prediction, thereby reducing the search complexity.
  • the value of K may be 3, may also be 6, and may even be 8 or other values.
  • the value of K is specifically set according to the actual situation, and no limitation is made here.
  • the method may also include:
  • the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
  • the N neighbor nodes to be searched are searched for whether there are coplanar neighbor nodes that are coplanar with the current node and have been decoded.
  • the search can be stopped at this time. ; and then obtain the first attribute reconstruction value of the K coplanar neighbor nodes, and calculate the mean value of the first attribute reconstruction value of the K coplanar neighbor nodes to obtain the attribute prediction value of the current node.
  • the method may further include:
  • the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
  • the N neighbor nodes to be searched are searched for whether there are collinear neighbor nodes that are collinear with the current node and have been decoded.
  • the search can be stopped at this time. ; and then obtain the second attribute reconstruction value of the K collinear neighbor nodes, and calculate the mean value of the second attribute reconstruction value of the K collinear neighbor nodes to obtain the attribute prediction value of the current node.
  • the method may also include:
  • the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
  • the N neighbor nodes to be searched it is searched whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded. Search the neighbor nodes to see if there are collinear neighbor nodes that are collinear with the current node and have been decoded. When K existing collinear neighbor nodes are searched, the search can be stopped at this time, and then the K collinear neighbor nodes can be obtained.
  • the second attribute reconstruction value and by performing mean calculation on the second attribute reconstruction value of the K collinear neighbor nodes, the attribute prediction value of the current node can be obtained.
  • the predicted value of the attribute of the current node can be obtained by performing mean calculation on the reconstructed value of the second attribute of the k collinear neighbor nodes.
  • the method may also include:
  • L is an integer greater than 0 and less than or equal to (K-M);
  • the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
  • a weighted calculation is performed on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node.
  • the N neighbor nodes to be searched are searched for whether there are coplanar neighbor nodes that are coplanar with the current node and have been decoded. If M existing coplanar neighbor nodes are found, but M is less than K, then It is necessary to continue to search the N neighbor nodes to be searched for whether there are collinear neighbor nodes that are collinear with the current node and have been decoded.
  • (K-M) existing coplanar neighbor nodes the search can be stopped at this time, and then Obtain the first attribute reconstruction values of the M coplanar neighbor nodes and the second attribute reconstruction values of the (K-M) collinear neighbor nodes, and obtain the M first attribute reconstruction values and the (K-M) second attribute reconstruction values.
  • the attribute reconstruction value is weighted to calculate the attribute prediction value of the current node.
  • the attribute prediction value of the current node can be obtained by performing weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values.
  • the performing weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node may include:
  • the first weight value (that is, the weight of the coplanar neighbor node) may be set to 2
  • the second weight value (that is, the weight of the collinear neighbor node) Set to 1.
  • weighted calculation can be performed according to formula (2) to obtain the attribute prediction value of the current node.
  • the method may further include:
  • the previous Morton code of the Morton code located at the current node is determined, and the attribute reconstruction value of the point corresponding to the previous Morton code is determined as the attribute prediction value of the current node.
  • the Morton code located at the current node in the Morton code sequence can be directly used at this time.
  • the attribute reconstruction value of the previous point of the code is used as the attribute prediction value of the current node. In other words, for the points in the point cloud, except for the first point that does not need attribute prediction, all other points need attribute prediction.
  • a coplanar neighbor node with a distance of 1 may be searched first, and if it exists, the average value of these coplanar neighbor nodes is used as the predicted value; or, if If there is no coplanar neighbor node at all, then you can continue to search for a distance of The average value of these collinear neighbor nodes is used as the predicted value; or, if there are coplanar neighbor nodes but the preset number of reference neighbor nodes is not met, then the search can also be continued.
  • the search distance is The collinear neighbor nodes of , use the weighted average of these coplanar neighbor nodes and the collinear neighbor nodes as the predicted value; if none of the above neighbor nodes exist, then the previous point of the Morton code sequence of the current node can be used at this time.
  • the attribute reconstruction value of is directly used as the attribute prediction value.
  • This embodiment provides a prediction method, by determining N neighbor nodes to be searched of the current node; if there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, then Obtain the first attribute reconstruction value of the coplanar neighbor node; if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched, then obtain the collinear neighbor node.
  • second attribute reconstruction value determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • FIG. 8 shows a schematic structural diagram of an encoder 80 provided by an embodiment of the present application.
  • the encoder 80 may include: a first determination unit 801, a first judgment unit 802 and a first prediction unit 803; wherein,
  • the first determining unit 801 is configured to determine the N neighbor nodes to be searched for the current node;
  • the first judgment unit 802 is configured to obtain a first attribute reconstruction value of the coplanar neighbor node if there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
  • the first judging unit 802 is further configured to obtain a second attribute reconstruction value of the collinear neighbor node if there is a collinear neighbor node that is collinear with the current node and has been coded in the N neighbor nodes to be searched ;
  • the first prediction unit 803 is configured to determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • the encoder 80 may further include a first dividing unit 804 configured to perform spatial division on the point cloud to obtain at least one point;
  • the first determining unit 801 is further configured to, based on the geometric position of the current node, determine the neighbor information of the current node from the at least one point; and determine the N neighbor information from the neighbor information of the current node Neighbor node to be searched.
  • the neighbor information of the current node includes: six neighbor nodes coplanar with the current node, twelve neighbor nodes collinear with the current node, and co-located with the current node Eight neighbor nodes.
  • the first determining unit 801 is specifically configured to determine three neighbor nodes that must have been encoded among the six neighbor nodes coplanar with the current node as the three neighbor nodes to be searched, Among the twelve neighbor nodes collinear with the current node, three neighbor nodes that must have been encoded are determined as three neighbor nodes to be searched; and based on the geometric space relationship between the current node and the neighbor nodes, the The n neighbor nodes that may have been encoded in the remaining nine neighbor nodes that are collinear are determined as n neighbor nodes to be searched, n is an integer greater than 0 and less than 9; and the obtained (6+n) neighbor nodes to be searched It is determined as the N neighbor nodes to be searched.
  • N is an integer greater than 6.
  • the encoder 80 may further include a first computing unit 805;
  • the first determining unit 801 is further configured to determine the reference point of the current node
  • the first calculation unit 805 is configured to perform difference calculation on the coordinate information between the reference point and the N neighbor nodes to be searched to obtain N coordinate difference values; and a method for calculating the N coordinate difference values.
  • frame code, and the Morton code of the N coordinate differences is stored in a preset look-up table;
  • the first determining unit 801 is further configured to determine Morton codes of the N neighbor nodes to be searched according to the preset lookup table.
  • the first calculation unit 805 is further configured to calculate the Morton code of the current node
  • the first determining unit 801 is further configured to, according to the Morton code of the current node, determine the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node; and determine the neighbor node corresponding to the smallest Morton code Determined as the reference point.
  • the first determining unit 801 is specifically configured to determine the coordinate information of the current node according to the Morton code of the current node; and determine the neighbor information of the current node based on the coordinate information of the current node and selecting the smallest Morton code from the Morton codes of the at least one neighbor node to obtain the neighbor node corresponding to the smallest Morton code.
  • the first determining unit 801 is further configured to determine the Morton code of the reference point
  • the first calculation unit 805 is further configured to obtain the Morton code of the N coordinate difference values from the preset lookup table; and the Morton code of the reference point and the N coordinate difference values.
  • the Morton code is calculated to obtain the Morton codes of the N neighbor nodes to be searched.
  • the first determination unit 802 is further configured to traverse a preset point cloud sequence, and determine whether the preset point cloud sequence has a Morton code of the first neighbor node to be searched;
  • the first determining unit 801 is further configured to determine that the first neighbor node to be searched exists in the N neighbor nodes to be searched if the determination result is yes; and to determine the N neighbor nodes to be searched if the determination result is no
  • the first neighbor node to be searched does not exist in the neighbor nodes; wherein, the first neighbor node to be searched is any one of the N neighbor nodes to be searched.
  • the encoder 80 may further include a first sorting unit 806;
  • the first determining unit 801 is further configured to determine the Morton code of at least one point in the point cloud including the current node;
  • the first sorting unit 806 is configured to arrange the Morton codes in ascending order to obtain a Morton code sequence; and truncate a Morton code smaller than the current node's Morton code from the Morton code sequence Morton code, and obtain the preset point cloud sequence according to the intercepted Morton code.
  • the first judgment unit 802 is further configured to judge whether the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node;
  • the first determining unit 801 is further configured to determine that the first neighbor node to be searched exists in the N neighbor nodes to be searched if the determination result is yes; and to determine the N neighbor nodes to be searched if the determination result is no
  • the first neighbor node to be searched does not exist in the neighbor nodes; wherein, the first neighbor node to be searched is any one of the N neighbor nodes to be searched.
  • the first determining unit 801 is further configured to, when there is a first neighbor node to be searched in the N neighbor nodes to be searched, if the first neighbor node to be searched is a coplanar neighbor of the current node node, then determine that there is a coplanar neighbor node that is coplanar with the current node and has been coded in the N neighbor nodes to be searched; if the first neighbor node to be searched is the collinear neighbor node of the current node, then determine Among the N neighbor nodes to be searched, there is a collinear neighbor node that is collinear with the current node and has been coded.
  • the encoder 80 may further include a writing unit 807 configured to write the value of N into the code stream.
  • the encoder 80 may further include a first setting unit 808 configured to set the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
  • the first judgment unit 802 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded among the N neighbor nodes to be searched;
  • the first determining unit 801 is further configured to obtain the first number of the K coplanar neighbor nodes if there are K coplanar neighbor nodes that are coplanar with the current node and have been encoded in the N neighbor nodes to be searched. an attribute reconstruction value;
  • the first prediction unit 803 is specifically configured to perform mean value calculation on the first attribute reconstruction values of the K coplanar neighbor nodes, and determine the attribute prediction value of the current node.
  • the first judging unit 802 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been coded among the N neighbor nodes to be searched; and if the N neighbor nodes to be searched exist There is no coplanar neighbor node that is coplanar with the current node and has been coded in the search neighbor nodes, then judge whether there is a colinear neighbor node that is colinear with the current node and has been coded in the N neighbor nodes to be searched ;
  • the first determining unit 801 is further configured to obtain the first number of the K collinear neighbor nodes if there are K collinear neighbor nodes that are collinear with the current node and have been coded in the N neighbor nodes to be searched. Two attribute reconstruction value;
  • the first prediction unit 803 is specifically configured to perform mean calculation on the second attribute reconstruction values of the K collinear neighbor nodes, and determine the attribute prediction value of the current node.
  • the first judgment unit 802 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded among the N neighbor nodes to be searched;
  • the first determining unit 801 is further configured to obtain the first number of the M coplanar neighbor nodes if there are M coplanar neighbor nodes that are coplanar with the current node and have been encoded in the N neighbor nodes to be searched.
  • An attribute reconstruction value, M is an integer greater than 0 and less than K;
  • the first judging unit 802 is further configured to judge whether there is a collinear neighbor node that is collinear with the current node and has been coded in the N neighbor nodes to be searched;
  • the first determining unit 801 is further configured to obtain the first number of the L collinear neighbor nodes if there are L collinear neighbor nodes that are collinear with the current node and have been coded in the N neighbor nodes to be searched.
  • Two attribute reconstruction values wherein, L is an integer greater than 0 and less than or equal to (K-M);
  • the first prediction unit 803 is specifically configured to perform weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values, and determine the attribute prediction value of the current node.
  • the writing unit 807 is further configured to write the value of K into the code stream.
  • the first prediction unit 803 is further configured to: if there is no coplanar neighbor node coplanar with the current node and has been coded among the N neighbor nodes to be searched, and there is no coplanar neighbor node that is coplanar with the current node If there are collinear and coded collinear neighbor nodes, the Morton code before the Morton code located at the current node is determined from the Morton code sequence, and the attribute of the point corresponding to the previous Morton code is determined. The reconstructed value is determined as the attribute prediction value of the current node.
  • a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, and it may also be non-modular.
  • each component in this embodiment may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units can be implemented in the form of hardware, or can be implemented in the form of software function modules.
  • the integrated unit is implemented in the form of a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium.
  • the technical solution of this embodiment is essentially or The part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product, the computer software product is stored in a storage medium, and includes several instructions for making a computer device (which can be It is a personal computer, a server, or a network device, etc.) or a processor (processor) that executes all or part of the steps of the method described in this embodiment.
  • the aforementioned storage medium includes: U disk, mobile hard disk, read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program codes.
  • an embodiment of the present application provides a computer storage medium, which is applied to the encoder 80, where the computer storage medium stores a computer program, and when the computer program is executed by the first processor, any one of the foregoing embodiments is implemented.
  • FIG. 9 shows a schematic diagram of a specific hardware structure of the encoder 80 provided by the embodiment of the present application.
  • it may include: a first communication interface 901 , a first memory 902 and a first processor 903 ; each component is coupled together through a first bus system 904 .
  • the first bus system 904 is used to realize the connection and communication between these components.
  • the first bus system 904 also includes a power bus, a control bus and a status signal bus.
  • the various buses are labeled as the first bus system 904 in FIG. 9 . in,
  • the first communication interface 901 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
  • a first memory 902 for storing a computer program that can run on the first processor 903;
  • the first processor 903 is configured to, when running the computer program, execute:
  • An attribute prediction value of the current node is determined based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • the first memory 902 in this embodiment of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories.
  • the non-volatile memory may be a read-only memory (Read-Only Memory, ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically programmable read-only memory (Erasable PROM, EPROM). Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory.
  • Volatile memory may be Random Access Memory (RAM), which acts as an external cache.
  • RAM Static RAM
  • DRAM Dynamic RAM
  • SDRAM Synchronous DRAM
  • SDRAM double data rate synchronous dynamic random access memory
  • Double Data Rate SDRAM DDRSDRAM
  • enhanced SDRAM ESDRAM
  • synchronous link dynamic random access memory Synchlink DRAM, SLDRAM
  • Direct Rambus RAM Direct Rambus RAM
  • the first processor 903 may be an integrated circuit chip with signal processing capability. In the implementation process, each step of the above-mentioned method may be completed by an integrated logic circuit of hardware in the first processor 903 or an instruction in the form of software.
  • the above-mentioned first processor 903 can be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a ready-made programmable gate array (Field Programmable Gate Array, FPGA) Or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
  • DSP Digital Signal Processor
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed.
  • a general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
  • the steps of the method disclosed in conjunction with the embodiments of the present application may be directly embodied as executed by a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor.
  • the software modules may be located in random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers and other storage media mature in the art.
  • the storage medium is located in the first memory 902, and the first processor 903 reads the information in the first memory 902, and completes the steps of the above method in combination with its hardware.
  • the embodiments described herein may be implemented in hardware, software, firmware, middleware, microcode, or a combination thereof.
  • the processing unit can be implemented in one or more Application Specific Integrated Circuits (ASIC), Digital Signal Processing (DSP), Digital Signal Processing Device (DSP Device, DSPD), programmable Logic Device (Programmable Logic Device, PLD), Field-Programmable Gate Array (Field-Programmable Gate Array, FPGA), General Purpose Processor, Controller, Microcontroller, Microprocessor, Others for performing the functions described in this application electronic unit or a combination thereof.
  • ASIC Application Specific Integrated Circuits
  • DSP Digital Signal Processing
  • DSP Device Digital Signal Processing Device
  • DSPD Digital Signal Processing Device
  • PLD programmable Logic Device
  • Field-Programmable Gate Array Field-Programmable Gate Array
  • FPGA Field-Programmable Gate Array
  • the techniques described herein may be implemented through modules (eg, procedures, functions, etc.) that perform the functions described herein.
  • Software codes may
  • the first processor 903 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.
  • This embodiment provides an encoder, and the encoder may include a first determination unit, a first judgment unit, and a first prediction unit.
  • the encoder may include a first determination unit, a first judgment unit, and a first prediction unit.
  • FIG. 10 shows a schematic structural diagram of a decoder 100 provided by an embodiment of the present application.
  • the decoder 100 may include: a second determination unit 1001, a second determination unit 1002, and a second prediction unit 1003; wherein,
  • the second determining unit 1001 is configured to determine the N neighbor nodes to be searched for the current node
  • the second judging unit 1002 is configured to obtain a first attribute reconstruction value of the coplanar neighbor node if there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
  • the second judging unit 1002 is further configured to obtain a second attribute reconstruction value of the collinear neighbor node if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched ;
  • the second prediction unit 1003 is configured to determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • the decoder 100 may further include a second dividing unit 1004 configured to perform spatial division on the point cloud to obtain at least one point;
  • the second determining unit 1001 is further configured to, based on the geometric position of the current node, determine the neighbor information of the current node from the at least one point; and determine the N neighbor information from the neighbor information of the current node Neighbor node to be searched.
  • the neighbor information of the current node includes: six neighbor nodes coplanar with the current node, twelve neighbor nodes collinear with the current node, and co-located with the current node Eight neighbor nodes.
  • the second determining unit 1001 is specifically configured to determine three neighbor nodes that must have been decoded among the six neighbor nodes coplanar with the current node as the three neighbor nodes to be searched, and will be collinear with the current node.
  • the n neighbor nodes that may have been decoded in are determined as n neighbor nodes to be searched, and n is an integer greater than 0 and less than 9; and the obtained (6+n) neighbor nodes to be searched are determined as the N neighbor nodes to be searched neighbor node.
  • N is an integer greater than 6.
  • the decoder 100 may further include a second computing unit 1005;
  • the second determining unit 1001 is further configured to determine the reference point of the current node
  • the second calculation unit 1005 is configured to perform difference calculation on the coordinate information between the reference point and the N neighbor nodes to be searched to obtain N coordinate difference values; and a method for calculating the N coordinate difference values frame code, and the Morton code of the N coordinate differences is stored in a preset look-up table;
  • the second determining unit 1001 is further configured to determine Morton codes of the N neighbor nodes to be searched according to the preset lookup table.
  • the second calculation unit 1005 is further configured to calculate the Morton code of the current node
  • the second determining unit 1001 is further configured to, according to the Morton code of the current node, determine the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node; and determine the neighbor node corresponding to the smallest Morton code Determined as the reference point.
  • the second determining unit 1001 is specifically configured to determine the coordinate information of the current node according to the Morton code of the current node; and determine the neighbor information of the current node based on the coordinate information of the current node and selecting the smallest Morton code from the Morton codes of the at least one neighbor node to obtain the neighbor node corresponding to the smallest Morton code.
  • the second determining unit 1001 is further configured to determine the Morton code of the reference point
  • the second calculation unit 1005 is further configured to obtain the Morton codes of the N coordinate difference values from the preset lookup table; and to obtain the Morton code of the reference point and the N coordinate difference values
  • the Morton code is calculated to obtain the Morton codes of the N neighbor nodes to be searched.
  • the second determination unit 1002 is further configured to traverse a preset point cloud sequence, and determine whether the preset point cloud sequence has a Morton code of the first neighbor node to be searched;
  • the second determining unit 1001 is further configured to determine that the first neighbor node to be searched exists in the N neighbor nodes to be searched if the determination result is yes; and to determine the N neighbor nodes to be searched if the determination result is no
  • the first neighbor node to be searched does not exist in the neighbor nodes; wherein, the first neighbor node to be searched is any one of the N neighbor nodes to be searched.
  • the decoder 100 may further include a second sorting unit 1006;
  • the second determining unit 1001 is further configured to determine the Morton code of at least one point in the point cloud including the current node;
  • the second sorting unit 1006 is configured to arrange the Morton codes in ascending order to obtain a Morton code sequence; and truncate a Morton code smaller than the current node's Morton code from the Morton code sequence Morton code, and obtain the preset point cloud sequence according to the intercepted Morton code.
  • the second judgment unit 1002 is further configured to judge whether the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node;
  • the second determining unit 1001 is further configured to determine that the first neighbor node to be searched exists in the N neighbor nodes to be searched if the determination result is yes; and to determine the N neighbor nodes to be searched if the determination result is no
  • the first neighbor node to be searched does not exist in the neighbor nodes; wherein, the first neighbor node to be searched is any one of the N neighbor nodes to be searched.
  • the second determining unit 1001 is further configured to, when there is a first neighbor node to be searched in the N neighbor nodes to be searched, if the first neighbor node to be searched is a coplanar neighbor of the current node node, then determine that there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched; if the first neighbor node to be searched is the collinear neighbor node of the current node, then determine Among the N neighbor nodes to be searched, there is a collinear neighbor node that is collinear with the current node and has been decoded.
  • the decoder 100 may further include a parsing unit 1007 configured to parse the code stream to obtain the value of N.
  • the decoder 100 may further include a second setting unit 1008 configured to set the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
  • the parsing unit 1007 is further configured to parse the code stream to obtain the value of K, where K represents the number of reference neighbor nodes.
  • the second judgment unit 1002 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched;
  • the second determining unit 1001 is further configured to obtain the first number of the K coplanar neighbor nodes if there are K coplanar neighbor nodes that are coplanar with the current node and have been decoded in the N neighbor nodes to be searched an attribute reconstruction value;
  • the second predicting unit 1003 is specifically configured to perform mean calculation on the first attribute reconstruction values of the K coplanar neighbor nodes, and determine the attribute predicted value of the current node.
  • the second judging unit 1002 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched; There is no coplanar neighbor node that is coplanar with the current node and has been decoded in the searched neighbor nodes, then judge whether there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched ;
  • the second determining unit 1001 is further configured to obtain the first number of the K collinear neighbor nodes if there are K collinear neighbor nodes that are collinear with the current node and have been decoded in the N neighbor nodes to be searched Two attribute reconstruction value;
  • the second prediction unit 1003 is specifically configured to perform mean calculation on the second attribute reconstruction values of the K collinear neighbor nodes, and determine the attribute prediction value of the current node.
  • the second judgment unit 1002 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched;
  • the second determining unit 1001 is further configured to obtain the first number of the M coplanar neighbor nodes if there are M coplanar neighbor nodes that are coplanar with the current node and have been decoded among the N neighbor nodes to be searched.
  • An attribute reconstruction value, M is an integer greater than 0 and less than K;
  • the second judging unit 1002 is further configured to judge whether there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched;
  • the second determining unit 1001 is further configured to obtain the first number of the L collinear neighbor nodes if there are L collinear neighbor nodes that are collinear with the current node and have been decoded among the N neighbor nodes to be searched.
  • Two attribute reconstruction values wherein, L is an integer greater than 0 and less than or equal to (K-M);
  • the second prediction unit 1003 is specifically configured to perform weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values, and determine the attribute prediction value of the current node.
  • the second prediction unit 1003 is further configured to: if there is no coplanar neighbor node coplanar with the current node and decoded and there is no coplanar neighbor node with the current node in the N neighbor nodes to be searched If the collinear neighbor node is collinear and has been decoded, the Morton code before the Morton code located at the current node is determined from the Morton code sequence, and the attribute of the point corresponding to the previous Morton code is determined. The reconstructed value is determined as the attribute prediction value of the current node.
  • a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, and it may also be non-modular.
  • each component in this embodiment may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units can be implemented in the form of hardware, or can be implemented in the form of software function modules.
  • the integrated unit may be stored in a computer-readable storage medium.
  • this embodiment provides a computer storage medium, which is applied to the decoder 100, where the computer storage medium stores a computer program, and when the computer program is executed by the second processor, any one of the foregoing embodiments is implemented the method described.
  • FIG. 11 shows a schematic diagram of a specific hardware structure of the decoder 100 provided by the embodiment of the present application.
  • it may include: a second communication interface 1101 , a second memory 1102 and a second processor 1103 ; the various components are coupled together through a second bus system 1104 .
  • the second bus system 1104 is used to realize the connection communication between these components.
  • the second bus system 1104 also includes a power bus, a control bus, and a status signal bus.
  • the various buses are labeled as the second bus system 1104 in FIG. 11 . in,
  • the second communication interface 1101 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
  • a second memory 1102 for storing computer programs that can be executed on the second processor 1103;
  • the second processor 1103 is configured to, when running the computer program, execute:
  • An attribute prediction value of the current node is determined based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • the second processor 1103 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.
  • This embodiment provides a decoder, and the decoder may include a second determination unit, a second judgment unit, and a second prediction unit.
  • the decoder may include a second determination unit, a second judgment unit, and a second prediction unit.
  • the N neighbor nodes to be searched of the current node are determined; if there is a coplanar neighbor node that is coplanar with the current node and has been coded among the N neighbor nodes to be searched, obtain the The first attribute reconstruction value of the coplanar neighbor node; if there is a collinear neighbor node that is collinear with the current node and has been encoded in the N neighbor nodes to be searched, then the second attribute reconstruction value of the collinear neighbor node is obtained; based on The first attribute reconstruction value and/or the second attribute reconstruction value determine the attribute prediction value of the current node.
  • the decoder side by determining the N neighbor nodes to be searched of the current node; if there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, obtain the coplanar neighbor node.
  • the first attribute reconstruction value of the neighbor node if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the collinear neighbor node ; determining an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  • the spatial correlation of the point cloud can be fully utilized, so that the prediction residual is smaller, and the code rate can be reduced.
  • the encoding and decoding efficiency is improved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Disclosed are a prediction method, an encoder, a decoder and a computer storage medium. The method is applied to an encoder. The method comprises: determining N neighbor nodes to be searched for that are of the current node; if there is a coplanar neighbor node that is coplanar with the current node and has been encoded among said N neighbor nodes, acquiring a first attribute reconstruction value of the coplanar neighbor node; if there is a collinear neighbor node that is collinear with the current node and has been encoded among said N neighbor nodes, acquiring a second attribute reconstruction value of the collinear neighbor node; and on the basis of the first attribute reconstruction value and/or the second attribute reconstruction value, determining an attribute prediction value of the current node.

Description

预测方法、编码器、解码器以及计算机存储介质Prediction method, encoder, decoder, and computer storage medium 技术领域technical field
本申请实施例涉及编解码技术领域,尤其涉及一种预测方法、编码器、解码器以及计算机存储介质。The embodiments of the present application relate to the technical field of encoding and decoding, and in particular, to a prediction method, an encoder, a decoder, and a computer storage medium.
背景技术Background technique
在基于音视频编码标准(Audio Video coding Standard,AVS)的点云参考模型(Point Cloud Reference Model,PCRM)编码框架中,点云的几何信息和每个点云对应的属性信息是分开编码的。几何编码完成后,会对几何信息进行重建,而属性信息的编码将依赖于重建的几何信息。其中,属性信息编码主要是针对颜色信息的编码,以将颜色信息从空间域变换到频域,得到高频系数和低频系数,最后对系数进行量化和熵编码,生成码流。In the Point Cloud Reference Model (PCRM) coding framework based on the Audio Video Coding Standard (AVS), the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately. After the geometric encoding is completed, the geometric information will be reconstructed, and the encoding of the attribute information will depend on the reconstructed geometric information. Among them, the attribute information coding is mainly for the coding of color information, so as to transform the color information from the spatial domain to the frequency domain to obtain high-frequency coefficients and low-frequency coefficients, and finally perform quantization and entropy coding on the coefficients to generate a code stream.
然而,目前属性预测并没有充分利用点云的空间相关性,降低了点云的编解码效率。However, the current attribute prediction does not fully utilize the spatial correlation of point clouds, which reduces the encoding and decoding efficiency of point clouds.
发明内容SUMMARY OF THE INVENTION
本申请实施例提供一种预测方法、编码器、解码器以及计算机存储介质,可以充分利用点云的空间相关性,从而降低码率,进而提高编解码效率。Embodiments of the present application provide a prediction method, an encoder, a decoder, and a computer storage medium, which can make full use of the spatial correlation of point clouds, thereby reducing the code rate and improving encoding and decoding efficiency.
本申请实施例的技术方案可以如下实现:The technical solutions of the embodiments of the present application can be implemented as follows:
第一方面,本申请实施例提供了一种预测方法,应用于编码器,该方法包括:In a first aspect, an embodiment of the present application provides a prediction method, which is applied to an encoder, and the method includes:
确定当前节点的N个待搜索邻居节点;Determine the N neighbor nodes to be searched for the current node;
若所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;If there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched, acquiring the first attribute reconstruction value of the coplanar neighbor node;
若所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;If there is a collinear neighbor node that is collinear with the current node and has been encoded in the N neighbor nodes to be searched, acquiring the second attribute reconstruction value of the collinear neighbor node;
基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。An attribute prediction value of the current node is determined based on the first attribute reconstruction value and/or the second attribute reconstruction value.
第二方面,本申请实施例提供了一种预测方法,应用于解码器,该方法包括:In a second aspect, an embodiment of the present application provides a prediction method, which is applied to a decoder, and the method includes:
确定当前节点的N个待搜索邻居节点;Determine the N neighbor nodes to be searched for the current node;
若所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;If there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched, acquiring the reconstruction value of the first attribute of the coplanar neighbor node;
若所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;If there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched, acquiring the second attribute reconstruction value of the collinear neighbor node;
基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。An attribute prediction value of the current node is determined based on the first attribute reconstruction value and/or the second attribute reconstruction value.
第三方面,本申请实施例提供了一种编码器,该编码器包括第一确定单元、第一判断单元和第一预测单元;其中,In a third aspect, an embodiment of the present application provides an encoder, the encoder includes a first determination unit, a first judgment unit, and a first prediction unit; wherein,
所述第一确定单元,配置为确定当前节点的N个待搜索邻居节点;The first determining unit is configured to determine the N neighbor nodes to be searched for the current node;
所述第一判断单元,配置为若所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;The first judgment unit is configured to obtain a first attribute reconstruction value of the coplanar neighbor node if there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched ;
所述第一判断单元,还配置为若所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;The first judging unit is further configured to obtain the second attribute reconstruction of the collinear neighbor node if there is a collinear neighbor node that is collinear with the current node and has been encoded in the N neighbor nodes to be searched value;
所述第一预测单元,配置为基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。The first prediction unit is configured to determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
第四方面,本申请实施例提供了一种编码器,该编码器包括第一存储器和第一处理器;其中,In a fourth aspect, an embodiment of the present application provides an encoder, where the encoder includes a first memory and a first processor; wherein,
第一存储器,用于存储能够在第一处理器上运行的计算机程序;a first memory for storing a computer program executable on the first processor;
第一处理器,用于在运行所述计算机程序时,执行如第一方面所述的方法。The first processor is configured to execute the method according to the first aspect when running the computer program.
第五方面,本申请实施例提供了一种解码器,该解码器包括第二确定单元、第二判断单元和第二预测单元;其中,In a fifth aspect, an embodiment of the present application provides a decoder, the decoder includes a second determination unit, a second judgment unit, and a second prediction unit; wherein,
所述第二确定单元,配置为确定当前节点的N个待搜索邻居节点;The second determining unit is configured to determine the N neighbor nodes to be searched for the current node;
所述第二判断单元,配置为若所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;The second judgment unit is configured to obtain a first attribute reconstruction value of the coplanar neighbor node if there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched ;
所述第二判断单元,还配置为若所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;The second judgment unit is further configured to obtain the second attribute reconstruction of the collinear neighbor node if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched value;
所述第二预测单元,配置为基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。The second prediction unit is configured to determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
第六方面,本申请实施例提供了一种解码器,该解码器包括第二存储器和第二处理器;其中,In a sixth aspect, an embodiment of the present application provides a decoder, the decoder includes a second memory and a second processor; wherein,
第二存储器,用于存储能够在第二处理器上运行的计算机程序;a second memory for storing a computer program executable on the second processor;
第二处理器,用于在运行所述计算机程序时,执行如第二方面所述的方法。The second processor is configured to execute the method according to the second aspect when running the computer program.
第七方面,本申请实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如第一方面所述的方法、或者被第二处理器执行时实现如第二方面所述的方法。In a seventh aspect, an embodiment of the present application provides a computer storage medium, where the computer storage medium stores a computer program, and when the computer program is executed by the first processor, the method described in the first aspect is implemented, or the computer program is executed by the second processor. The processor implements the method as described in the second aspect when executed.
本申请实施例提供了一种预测方法、编码器、解码器以及计算机存储介质,在编码器侧,通过确定当前节点的N个待搜索邻居节点;若所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;若所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。在解码器侧,通过确定当前节点的N个待搜索邻居节点;若所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;若所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。这样,在根据当前节点与邻居节点之间的几何空间关系进行属性预测时,由于扩大了邻居搜索范围,可以充分利用点云的空间相关性,使得预测残差更小,从而能够降低码率,进而提高编解码效率。The embodiments of the present application provide a prediction method, an encoder, a decoder, and a computer storage medium. On the encoder side, N neighbor nodes to be searched for the current node are determined; If the current node is coplanar and has been coded coplanar neighbor nodes, the first attribute reconstruction value of the coplanar neighbor node is obtained; if the N neighbor nodes to be searched are collinear with the current node and already the encoded collinear neighbor node, obtain the second attribute reconstruction value of the collinear neighbor node; based on the first attribute reconstruction value and/or the second attribute reconstruction value, determine the attribute prediction value of the current node . On the decoder side, by determining the N neighbor nodes to be searched of the current node; if there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, obtain the coplanar neighbor node. The first attribute reconstruction value of the neighbor node; if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the collinear neighbor node ; determining an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value. In this way, when the attribute prediction is performed according to the geometric spatial relationship between the current node and the neighbor nodes, due to the expansion of the neighbor search range, the spatial correlation of the point cloud can be fully utilized, so that the prediction residual is smaller, and the code rate can be reduced. Thus, the encoding and decoding efficiency is improved.
附图说明Description of drawings
图1A为相关技术提供的一种点云编码器的框架组成示意图;1A is a schematic diagram of the frame composition of a point cloud encoder provided by the related art;
图1B为相关技术提供的一种点云解码器的框架组成示意图;1B is a schematic diagram of the frame composition of a point cloud decoder provided by the related art;
图2为相关技术提供的一种当前节点与邻居节点的空间关系示意图;2 is a schematic diagram of the spatial relationship between a current node and a neighbor node provided by the related art;
图3A为相关技术提供的一种预设邻居范围内与当前节点共面且已编解码的邻居节点之间的莫顿码关系示意图;3A is a schematic diagram of a Morton code relationship between neighbor nodes that are coplanar with the current node and have been encoded and decoded within a preset neighbor range provided by the related art;
图3B为相关技术提供的一种预设邻居范围内与当前节点共线且已编解码的邻居节点之间的莫顿码关系示意图;3B is a schematic diagram of the Morton code relationship between neighbor nodes that are collinear with the current node and have been encoded and decoded within a preset neighbor range provided by the related art;
图4为本申请实施例提供的一种预测方法的流程示意图;4 is a schematic flowchart of a prediction method provided by an embodiment of the present application;
图5为本申请实施例提供的另一种预测方法的流程示意图;5 is a schematic flowchart of another prediction method provided by an embodiment of the present application;
图6A为相关技术提供的一种邻居搜索范围的示意图;6A is a schematic diagram of a neighbor search range provided by the related art;
图6B为本申请实施例提供的一种邻居搜索范围的示意图;6B is a schematic diagram of a neighbor search range provided by an embodiment of the present application;
图7为本申请实施例提供的又一种预测方法的流程示意图;7 is a schematic flowchart of another prediction method provided by an embodiment of the present application;
图8为本申请实施例提供的一种编码器的组成结构示意图;FIG. 8 is a schematic diagram of the composition and structure of an encoder according to an embodiment of the present application;
图9为本申请实施例提供的一种编码器的具体硬件结构示意图;9 is a schematic diagram of a specific hardware structure of an encoder provided by an embodiment of the present application;
图10为本申请实施例提供的一种解码器的组成结构示意图;FIG. 10 is a schematic diagram of the composition and structure of a decoder provided by an embodiment of the application;
图11为本申请实施例提供的一种解码器的具体硬件结构示意图。FIG. 11 is a schematic diagram of a specific hardware structure of a decoder provided by an embodiment of the present application.
具体实施方式Detailed ways
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。In order to have a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings.
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the technical field to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of the present application, and are not intended to limit the present application.
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。In the following description, reference is made to "some embodiments" which describe a subset of all possible embodiments, but it is understood that "some embodiments" can be the same or a different subset of all possible embodiments, and Can be combined with each other without conflict.
需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。It should be pointed out that the term "first\second\third" involved in the embodiments of the present application is only to distinguish similar objects, and does not represent a specific ordering of objects. It is understandable that "first\second\third" "Where permitted, the specific order or sequence may be interchanged to enable the embodiments of the application described herein to be practiced in sequences other than those illustrated or described herein.
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释:点云压缩(Point Cloud Compression,PCC),点云参考模型(Point Cloud Reference Model,PCRM),莫顿码(Morton code,Morton),包围盒(bounding box),八叉树(octree),红绿蓝(Red-Green-Blue,RGB),亮度色度(Luminance-Chrominance,YUV),查找表(Look Up Table,LUT),峰值信噪比(Peak Signal to Noise Ratio,PSNR),音视频编码标准(Audio Video coding Standard,AVS)。Before the embodiments of the present application are described in further detail, the nouns and terms involved in the embodiments of the present application are described. The nouns and terms involved in the embodiments of the present application are applicable to the following explanations: point cloud compression (Point Cloud Compression, PCC), Point Cloud Reference Model (PCRM), Morton code (Morton), bounding box, octree, Red-Green-Blue (RGB), Luminance-Chrominance (YUV), Look Up Table (LUT), Peak Signal to Noise Ratio (PSNR), Audio Video coding Standard (AVS).
点云(Point Cloud)是物体表面的三维表现形式,通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云(数据)。Point cloud is a three-dimensional representation of the surface of an object. Through photoelectric radar, lidar, laser scanner, multi-view camera and other acquisition equipment, the point cloud (data) on the surface of the object can be collected.
具体来讲,点云是指海量三维点的集合,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息和/或反射率等等。例如,颜色信息可以是任意一种色彩空间上的信息。例如,颜色信息可以是RGB信息。其中,R表示红色(Red,R),G表示绿色(Green,G),B表示蓝色(Blue,B)。再如,颜色信息可以是亮度色度(YCbCr,YUV)信息。其中,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色色差。Specifically, a point cloud refers to a collection of massive three-dimensional points, and the points in the point cloud may include point location information and point attribute information. For example, the position information of the point may be three-dimensional coordinate information of the point. The position information of the point may also be referred to as the geometric information of the point. For example, the attribute information of the points may include color information and/or reflectivity, among others. For example, the color information may be information in any color space. For example, the color information may be RGB information. Among them, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, the color information may be luminance chrominance (YCbCr, YUV) information. Among them, Y represents brightness (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
根据激光测量原理得到的点云,点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。According to the point cloud obtained by the principle of laser measurement, the points in the point cloud may include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point. For another example, according to the point cloud obtained by the principle of photogrammetry, the points in the point cloud may include three-dimensional coordinate information of the point and color information of the point. For another example, a point cloud is obtained by combining the principles of laser measurement and photogrammetry, and the points in the point cloud may include three-dimensional coordinate information of the point, laser reflection intensity (reflectance) of the point, and color information of the point.
点云可以按获取的途径分为:Point clouds can be divided into:
第一类静态点云:即物体是静止的,获取点云的设备也是静止的;The first type of static point cloud: that is, the object is static, and the device that obtains the point cloud is also static;
第二类动态点云:物体是运动的,但获取点云的设备是静止的;The second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is stationary;
第三类动态获取点云:获取点云的设备是运动的。The third type of dynamic point cloud acquisition: the device that acquires the point cloud is moving.
例如,按点云的用途分为两大类:For example, point clouds are divided into two categories according to their use:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and rescue and relief robots;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。Category 2: Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
由于点云是海量点的集合,存储点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此,需要对点云进行压缩。Since the point cloud is a collection of massive points, storing the point cloud will not only consume a lot of memory, but also is not conducive to transmission, and there is no such a large bandwidth to support the direct transmission of the point cloud at the network layer without compression. cloud for compression.
应理解,点云压缩一般可以采用几何信息和属性信息分别压缩的方式。It should be understood that the point cloud compression can generally adopt the way of compressing geometric information and attribute information separately.
如图1A所示AVS的PCRM编码器的框架中,可以将输入点云分为几何信息和每个点对应的属性信息,二者是分开进行编码的。首先对几何信息进行坐标转换(即坐标平移),使全部点云位于一个包围盒中,再进行坐标量化,这一步量化主要起到缩放的作用。然后依据莫顿码,按照广度优先从根节点(第0层)进行几何八叉树构建。利用八叉树将包围盒八等分为8个子立方体,并记录每个子立方体的占位信息(其中,如果占位信息为1,那么该子立方体为非空;如果占位信息为0,那么该子立方体为空)。然后再对非空的子立方体继续进行八等分,直至划分得到的叶子节点为1×1×1的单位立方体时停止划分。对占位信息进行几何熵编码,生成二进制的几何码流。In the framework of the PCRM encoder of AVS as shown in Figure 1A, the input point cloud can be divided into geometric information and attribute information corresponding to each point, and the two are encoded separately. First, coordinate transformation (ie, coordinate translation) is performed on the geometric information, so that all point clouds are located in a bounding box, and then coordinate quantization is performed. This step of quantization mainly plays the role of scaling. Then according to the Morton code, the geometric octree is constructed from the root node (level 0) according to breadth-first. Use the octree to divide the bounding box into 8 sub-cubes equally, and record the occupancy information of each sub-cube (wherein, if the occupancy information is 1, then the sub-cube is non-empty; if the occupancy information is 0, then The subcube is empty). Then, continue to divide the non-empty sub-cubes into eight equal parts, until the leaf nodes obtained by dividing are 1×1×1 unit cubes, and stop dividing. Geometric entropy encoding is performed on the occupancy information to generate a binary geometric code stream.
几何编码完成后,对几何信息进行重建(即八叉树重建)并作为附加信息用以指导属性编码。目前,属性编码主要针对颜色信息进行。首先,对颜色信息进行空间变换,具体是从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色(即属性插值),使得未编码的属性信息与重建的几何信息对应起来。After the geometry encoding is completed, the geometry information is reconstructed (ie, octree reconstruction) and used as additional information to guide attribute encoding. At present, attribute encoding is mainly carried out for color information. First, the color information is spatially transformed, specifically from the RGB color space to the YUV color space. Then, the point cloud is recolored (ie, attribute interpolation) using the reconstructed geometric information, so that the unencoded attribute information corresponds to the reconstructed geometric information.
接下来进行属性预测,首先基于莫顿码对点云进行重排序,生成可用于点云属性预测的点云顺序,然后利用几何空间关系搜索最近邻居节点,利用找到的最近邻居节点的重建属性值对当前待预测节点进行属性预测得到预测属性值。将真实属性值与预测属性值进行差分得到属性预测残差,对属性预测残差进行残差量化,然后输入熵编码引擎即可得到二进制的属性码流。Next, attribute prediction is performed. First, the point cloud is reordered based on the Morton code to generate a point cloud sequence that can be used for point cloud attribute prediction. Then, the nearest neighbor node is searched using the geometric space relationship, and the reconstructed attribute value of the found nearest neighbor node is used. Predict the attributes of the current node to be predicted to obtain the predicted attribute value. The attribute prediction residual is obtained by differentiating the real attribute value and the predicted attribute value, the residual quantization of the attribute prediction residual is carried out, and then the binary attribute code stream is obtained by inputting the entropy coding engine.
如图1B所示AVS的PCRM解码器的框架中,获取二进制码流后,针对二进制码流中的几何码流和属性码流分别进行独立解码。在对几何码流进行解码时,首先对几何码流进行熵解码,得到每个节点的几何信息;然后按照与几何熵编码相同的方式进行八叉树重建,再将重建后得到的几何信息进行逆坐标量化和逆坐标平移,可以得到解码几何信息,即确定出点云的几何位置。在对属性码流进行解码时, 需要将解码几何信息作为附加信息用以指导属性解码。首先对属性码流进行熵解码,得到量化后的残差信息;然后进行逆量化,可以得到点云残差;在属性重建的过程中,可以按照与属性编码相同的方式,获得当前待预测节点的属性预测值,然后将属性预测值与残差值相加,可以恢复出当前待预测节点的YUV属性值;最后经过逆空间变换,可以得到点云的属性信息。As shown in FIG. 1B , in the framework of the PCRM decoder of AVS, after obtaining the binary code stream, the geometric code stream and the attribute code stream in the binary code stream are independently decoded respectively. When decoding the geometric code stream, first perform entropy decoding on the geometric code stream to obtain the geometric information of each node; then reconstruct the octree in the same way as the geometric entropy encoding, and then perform Through inverse coordinate quantization and inverse coordinate translation, the decoded geometric information can be obtained, that is, the geometric position of the point cloud can be determined. When decoding the attribute code stream, the decoding geometry information needs to be used as additional information to guide the attribute decoding. First, perform entropy decoding on the attribute code stream to obtain the quantized residual information; then perform inverse quantization to obtain the point cloud residual; in the process of attribute reconstruction, the current node to be predicted can be obtained in the same way as attribute encoding. The attribute prediction value of , and then adding the attribute prediction value and the residual value, the YUV attribute value of the current node to be predicted can be recovered; finally, the attribute information of the point cloud can be obtained through inverse space transformation.
在目前的相关技术中,可以利用莫顿码来查找当前节点的空间邻居节点,然后根据查找到的邻居节点对当前节点进行属性预测。示例性地,参见图2,其示出了相关技术提供的一种当前节点与邻居节点的空间关系示意图。如图2所示,用加粗线表示的块为当前节点,其对应的预设邻域范围为3×3×3大小;其中,X表示水平坐标轴,Y表示垂直坐标轴,Z表示z坐标轴。这里,当前节点的邻居节点数量总共为26个;其中,与当前节点共面的邻居节点数量有6个,与当前节点共线的邻居节点数量有12个,与当前节点共点的邻居节点数量有8个。需要注意的是,预设邻域范围并不局限于3×3×3大小,还可以是4×4×4大小、5×5×5大小、6×6×6大小,甚至是大于6×6×6大小等,本申请实施例不作具体限定。In the current related art, the Morton code can be used to find the spatial neighbor nodes of the current node, and then the attribute prediction of the current node is performed according to the found neighbor nodes. Exemplarily, see FIG. 2 , which shows a schematic diagram of a spatial relationship between a current node and a neighbor node provided by the related art. As shown in Figure 2, the block represented by the bold line is the current node, and its corresponding preset neighborhood range is 3×3×3; where X represents the horizontal coordinate axis, Y represents the vertical coordinate axis, and Z represents z Axis. Here, the total number of neighbor nodes of the current node is 26; among them, the number of neighbor nodes that are coplanar with the current node is 6, the number of neighbor nodes that are collinear with the current node is 12, and the number of neighbor nodes that are co-located with the current node. There are 8. It should be noted that the preset neighborhood range is not limited to 3 × 3 × 3, but can also be 4 × 4 × 4, 5 × 5 × 5, 6 × 6 × 6, or even larger than 6 × The size of 6×6, etc., is not specifically limited in the embodiments of the present application.
结合图2的示例,考虑邻居节点的查找范围为待编码当前节点的3×3×3大小的预设邻域范围。首先利用当前点节点的莫顿码得到该邻域中莫顿码值最小的块,将该块作为基准块,然后利用基准块来查找与当前待编码点节点共面、共线的已编码编解码邻居节点。该预设邻域范围内与待编码当前节点共面且已编码/已解码(可简称为“已编解码”)的邻居节点之间的莫顿码关系如图3A所示,该预设邻域范围内与当前节点共线且已编解码的邻居节点之间的莫顿码关系如图3B所示。这里,在图3A中,用7填充的块表示当前节点,用3、5、6填充的块为与当前节点共面的邻居节点。在图3B中,用7填充的块仍表示当前节点,用1、2、4填充的块则为与当前节点共线的邻居节点。With reference to the example of FIG. 2 , it is considered that the search range of the neighbor node is a preset neighborhood range with a size of 3×3×3 of the current node to be encoded. First, the Morton code of the current point node is used to obtain the block with the smallest Morton code value in the neighborhood, and this block is used as the reference block, and then the reference block is used to find the coded code that is coplanar and collinear with the current point node to be coded. Decode neighbor nodes. The Morton code relationship between neighboring nodes that are coplanar with the current node to be encoded and have been encoded/decoded (may be referred to as “encoded and decoded”) within the preset neighborhood range is shown in FIG. 3A . The Morton code relationship between neighbor nodes that are collinear with the current node and have been encoded and decoded within the domain is shown in Figure 3B. Here, in FIG. 3A, the block filled with 7 represents the current node, and the block filled with 3, 5, and 6 is the neighbor node that is coplanar with the current node. In FIG. 3B, the block filled with 7 still represents the current node, and the block filled with 1, 2, and 4 is the neighbor node that is collinear with the current node.
这样,利用基准块来搜索与当前节点共面、共线的已编解码的N个邻居节点(当选择预设邻域范围为3×3×3大小时,N的取值为小于或等于6),然后利用这N个邻居节点来预测当前节点的属性。如果当查找不到任何共面或共线的邻居节点时,那么将会采用莫顿码比当前节点小的前一个已编解码节点的重建属性值对当前节点进行属性预测。In this way, the reference block is used to search for N neighboring nodes that are coplanar and collinear with the current node and have been encoded and decoded (when the preset neighborhood range is 3×3×3, the value of N is less than or equal to 6 ), and then use these N neighbor nodes to predict the attributes of the current node. If no coplanar or collinear neighbor nodes are found, the current node will be predicted by the reconstructed attribute value of the previous encoded and decoded node whose Morton code is smaller than the current node.
如图3A和图3B所示,用1、2、3、4、5、6填充的这6个邻居节点一定在当前节点之前完成属性编解码,但是除这些邻居节点之外,还可以包括一些共线的邻居节点也有可能也在当前节点之前完成属性编解码。但是在相关技术中,目前仅仅只考虑了如图3A和图3B所示的3个共面和3个共线的邻居节点,这样将会遗漏掉一些已编解码的共线的邻居节点。那么在找不到这6个共面或共线的邻居节点以后,直接用莫顿码比当前节点小的前一个已编解码节点的重建属性值作为预测属性值,在空间上是不准确的,因为莫顿码存在周期性的跳变点,即使莫顿码是相邻的,但是空间位置却不能保证相邻。如此对于基于几何空间关系的属性预测来说,目前并没有充分利用相邻节点的空间相关性,从而降低了点云的编解码效率。As shown in Figure 3A and Figure 3B, the 6 neighbor nodes filled with 1, 2, 3, 4, 5, and 6 must complete the attribute encoding and decoding before the current node, but in addition to these neighbor nodes, they can also include some Collinear neighbor nodes may also complete attribute encoding and decoding before the current node. However, in the related art, currently only three coplanar and three collinear neighbor nodes as shown in FIG. 3A and FIG. 3B are considered, so some coded and decoded collinear neighbor nodes will be missed. Then, after the six coplanar or collinear neighbor nodes cannot be found, it is spatially inaccurate to directly use the reconstructed attribute value of the previously encoded and decoded node whose Morton code is smaller than the current node as the predicted attribute value. , because Morton codes have periodic transition points, even if Morton codes are adjacent, the spatial position cannot be guaranteed to be adjacent. Therefore, for attribute prediction based on geometric spatial relationship, the spatial correlation of adjacent nodes is not fully utilized, thus reducing the encoding and decoding efficiency of point clouds.
本申请一实施例提供一种预测方法,该方法的基本思想是:通过确定当前节点的N个待搜索邻居节点;若所述N个待搜索邻居节点中存在与所述当前节点共面且已编码/已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;若所述N个待搜索邻居节点中存在与所述当前节点共线且已编码/已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。这样,无论是编码器还是解码器,在根据当前节点与邻居节点之间的几何空间关系进行属性预测时,由于扩大了邻居搜索范围,可以充分利用点云的空间相关性,使得预测残差更小,从而能够降低码率,进而提高编解码效率。An embodiment of the present application provides a prediction method. The basic idea of the method is: by determining N neighbor nodes to be searched for the current node; Coplanar neighbor node that has been encoded/decoded, obtain the first attribute reconstruction value of the coplanar neighbor node; For a collinear neighbor node, the second attribute reconstruction value of the collinear neighbor node is obtained; based on the first attribute reconstruction value and/or the second attribute reconstruction value, the attribute prediction value of the current node is determined. In this way, both the encoder and the decoder can make full use of the spatial correlation of the point cloud due to the expansion of the neighbor search range when making attribute predictions based on the geometric spatial relationship between the current node and the neighbor nodes, making the prediction residual more efficient. small, so that the code rate can be reduced, and the encoding and decoding efficiency can be improved.
下面将结合附图对本申请各实施例进行详细阐述。The embodiments of the present application will be described in detail below with reference to the accompanying drawings.
本申请的一实施例中,本申请实施例提供的预测方法应用于视频编码设备,即点云编码器(或称为PCRM编码器),本申请实施例也可以简称为编码器。该方法所实现的功能可以通过编码器中的第一处理器调用计算机程序来实现,当然计算机程序可以保存在第一存储器中,可见,编码器至少包括第一处理器和第一存储器。In an embodiment of the present application, the prediction method provided in the embodiment of the present application is applied to a video encoding device, that is, a point cloud encoder (or referred to as a PCRM encoder), and the embodiment of the present application may also be referred to as an encoder for short. The functions implemented by the method can be implemented by the first processor in the encoder calling a computer program. Of course, the computer program can be stored in the first memory. It can be seen that the encoder includes at least a first processor and a first memory.
参见图4,其示出了本申请实施例提供的一种预测方法的流程示意图。如图4所示,该方法可以包括:Referring to FIG. 4 , it shows a schematic flowchart of a prediction method provided by an embodiment of the present application. As shown in Figure 4, the method may include:
S401:确定当前节点的N个待搜索邻居节点。S401: Determine N neighbor nodes to be searched for the current node.
需要说明的是,在点云中,点可以是点云中的所有点,也可以是点云中的部分点,这些点在空间上相对集中。这里,当前节点也可以称为当前点或者当前块,具体是指点云中当前待编码的点或者块。It should be noted that, in a point cloud, a point can be all points in the point cloud, or some points in the point cloud, and these points are relatively concentrated in space. Here, the current node may also be referred to as the current point or the current block, and specifically refers to the point or block currently to be encoded in the point cloud.
还需要说明的是,基于图1A所示的PCRM编码器的框架,本申请实施例的方法主要应用于“属性预测”部分,针对目前的相关技术中基于邻居搜索范围(也可称为“邻域搜索范围”或者“待搜索邻居范围”)的属性预测进行优化,通过扩大邻居搜索范围,以提升对空间相关性的利用程度。It should also be noted that, based on the framework of the PCRM encoder shown in FIG. 1A , the method in the embodiment of the present application is mainly applied to the “attribute prediction” part, for the current related art based on the neighbor search range (also referred to as “neighborhood”). The attribute prediction of “domain search range” or “neighbor range to be searched”) is optimized, and the utilization of spatial correlation is improved by expanding the neighbor search range.
可以理解,N个待搜索邻居节点是从当前节点的邻居信息中选取得到的。在一些实施例中,所述确 定当前节点的N个待搜索邻居节点,可以包括:It can be understood that the N neighbor nodes to be searched are selected from the neighbor information of the current node. In some embodiments, the determining the N neighbor nodes to be searched for the current node may include:
对点云进行空间划分,得到至少一个点;Perform spatial division on the point cloud to obtain at least one point;
基于所述当前节点的几何位置,从所述至少一个点中确定所述当前节点的邻居信息;determining the neighbor information of the current node from the at least one point based on the geometric position of the current node;
从所述当前节点的邻居信息中,确定所述N个待搜索邻居节点。From the neighbor information of the current node, the N neighbor nodes to be searched are determined.
在本申请实施例中,所述当前节点的邻居信息可以包括:与所述当前节点共面的六个邻居节点、与所述当前节点共线的十二个邻居节点和与所述当前节点共点的八个邻居节点。In this embodiment of the present application, the neighbor information of the current node may include: six neighbor nodes coplanar with the current node, twelve neighbor nodes colinear with the current node, and The eight neighbor nodes of the point.
也就是说,基于图2所示3×3×3大小的预设邻域范围,当前节点的邻居节点数量总共为26个。其中,与当前节点共面的邻居节点数量有6个,与当前节点共线的邻居节点数量有12个,与当前节点共点的邻居节点数量有8个。本申请实施例所述的N个待搜索邻居节点是从这26个邻居节点中确定的。That is to say, based on the preset neighborhood range of size 3×3×3 shown in FIG. 2 , the number of neighbor nodes of the current node is 26 in total. Among them, the number of neighbor nodes that are coplanar with the current node is 6, the number of neighbor nodes that are collinear with the current node is 12, and the number of neighbor nodes that are co-located with the current node is 8. The N neighbor nodes to be searched in the embodiments of the present application are determined from the 26 neighbor nodes.
进一步地,所述从所述当前节点的邻居信息中,确定所述N个待搜索邻居节点,可以包括:Further, the determining the N neighbor nodes to be searched from the neighbor information of the current node may include:
将与所述当前节点共面的六个邻居节点中一定已编码的三个邻居节点确定为三个待搜索邻居节点,将与所述当前节点共线的十二个邻居节点中一定已编码的三个邻居节点确定为三个待搜索邻居节点;The three neighbor nodes that must have been encoded in the six neighbor nodes that are coplanar with the current node are determined as three neighbor nodes to be searched, and the twelve neighbor nodes that are collinear with the current node must be encoded. Three neighbor nodes are determined as three neighbor nodes to be searched;
基于所述当前节点与邻居节点之间的几何空间关系,将与所述当前节点共线的剩余九个邻居节点中可能已编码的n个邻居节点确定为n个待搜索邻居节点,n为大于0且小于9的整数;Based on the geometric space relationship between the current node and the neighbor nodes, n neighbor nodes that may have been encoded in the remaining nine neighbor nodes collinear with the current node are determined as the n neighbor nodes to be searched, where n is greater than an integer of 0 and less than 9;
将得到的(6+n)个待搜索邻居节点确定为所述N个待搜索邻居节点。The obtained (6+n) neighbor nodes to be searched are determined as the N neighbor nodes to be searched.
需要说明的是,在这26个邻居节点中,目前的相关技术是仅将能够确定一定已编码的六个邻居节点组成邻居搜索范围。具体地,如图3A所示,在与当前节点共面的六个邻居节点中,只有与当前节点的左侧面、前侧面和下侧面共面的三个邻居节点(分别用3、5、6填充)是能够确定一定已编码过。如图3B所示,在与当前节点共线的十二个邻居节点中,也只有在与当前节点的左、前、下方向共线的三个邻居节点(分别用1、2、4填充)是能够确定一定已编码过。It should be noted that, among the 26 neighbor nodes, the current related technology only constitutes a neighbor search range of six neighbor nodes that can be determined to be encoded. Specifically, as shown in FIG. 3A , among the six neighbor nodes coplanar with the current node, there are only three neighbor nodes that are coplanar with the left side, front side and lower side of the current node (respectively with 3, 5, 6 padding) is able to determine that it must have been encoded. As shown in Figure 3B, among the twelve neighbor nodes that are collinear with the current node, there are only three neighbor nodes that are collinear with the left, front, and bottom directions of the current node (filled with 1, 2, and 4, respectively) It is possible to be sure that it must have been encoded.
在本申请实施例中,除了这能够确定一定已编码的六个邻居节点之外,本申请实施例扩大了邻居搜索范围。也就是说,基于当前节点与邻居节点之间的几何空间关系,将与当前节点共线的剩余九个邻居节点中可能已编码的n个邻居节点确定为n个待搜索邻居节点,从而使得扩大后的邻居搜索范围包括有(6+n)个待搜索邻居节点。这里,n为大于0且小于9的整数,即N为大于6的整数。In the embodiment of the present application, in addition to the fact that the six neighbor nodes that have been encoded can be determined, the embodiment of the present application expands the neighbor search range. That is to say, based on the geometric space relationship between the current node and the neighbor nodes, the n neighbor nodes that may have been encoded in the remaining nine neighbor nodes that are collinear with the current node are determined as the n neighbor nodes to be searched, so that the expansion The latter neighbor search range includes (6+n) neighbor nodes to be searched. Here, n is an integer greater than 0 and less than 9, that is, N is an integer greater than 6.
还需要注意的是,在扩大邻居搜索范围的过程中,由于与当前节点共面的剩下三个邻居节点是能够确定一定没有已编码过的,所以不作考虑;与当前节点共点的八个邻居节点也是能够确定一定没有已编码过的,所以也不作考虑;而与当前节点共线的剩下九个邻居节点中其中三个邻居节点是能够确定一定没有已编码过的,所以在本申请实施例的一种具体示例中,n为大于0且小于或等于6的整数。It should also be noted that in the process of expanding the neighbor search range, since the remaining three neighbor nodes coplanar with the current node can be determined to have not been coded, they are not considered; Neighbor nodes can also determine that they must not have been encoded, so they are not considered; and three of the remaining nine neighbor nodes that are collinear with the current node can determine that they must not have been encoded. Therefore, in this application In a specific example of the embodiment, n is an integer greater than 0 and less than or equal to 6.
在本申请实施例的另一种具体示例中,N为大于6且小于或等于12的整数。在本申请实施例的又一种具体示例中,N的取值可以为12。In another specific example of the embodiment of the present application, N is an integer greater than 6 and less than or equal to 12. In another specific example of the embodiment of the present application, the value of N may be 12.
进一步地,在一些实施例中,该方法还可以包括:将N的取值写入码流。Further, in some embodiments, the method may further include: writing the value of N into the code stream.
这样,由于编码器将N的取值写入码流,后续解码器可以直接通过解析码流获得待搜索邻居节点的数量(N的取值),使得编码器和解码器的邻居搜索范围保持一致。In this way, since the encoder writes the value of N into the code stream, the subsequent decoder can directly obtain the number of neighbor nodes to be searched (the value of N) by parsing the code stream, so that the neighbor search ranges of the encoder and decoder are consistent .
还应理解,在确定出当前节点的N个待搜索邻居节点后,还需进一步确定出这N个待搜索邻居节点的莫顿码。在一些实施例中,在确定当前节点的N个待搜索邻居节点之后,该方法还可包括:It should also be understood that after the N neighbor nodes to be searched of the current node are determined, the Morton codes of the N neighbor nodes to be searched need to be further determined. In some embodiments, after determining the N neighbor nodes to be searched for the current node, the method may further include:
确定当前节点的基准点;Determine the reference point of the current node;
对所述基准点与所述N个待搜索邻居节点之间的坐标信息进行差值计算,得到N个坐标差值;Perform difference calculation on the coordinate information between the reference point and the N neighbor nodes to be searched to obtain N coordinate difference values;
计算所述N个坐标差值的莫顿码,并将所述N个坐标差值的莫顿码存储在预设查找表中;calculating the Morton codes of the N coordinate differences, and storing the Morton codes of the N coordinate differences in a preset look-up table;
根据所述预设查找表,确定所述N个待搜索邻居节点的莫顿码。Morton codes of the N neighbor nodes to be searched are determined according to the preset lookup table.
需要说明的是,预设查找表是用于存储N个坐标差值的莫顿码。而N个坐标差值则是通过计算当前节点的基准点与N个待搜索邻居节点之间的坐标信息的差值得到的。It should be noted that the preset look-up table is a Morton code for storing N coordinate difference values. The N coordinate difference values are obtained by calculating the difference value of the coordinate information between the reference point of the current node and the N neighbor nodes to be searched.
对于当前节点的基准点来说,在一些实施例中,所述确定所述当前节点的基准点,可以包括:For the reference point of the current node, in some embodiments, the determining the reference point of the current node may include:
计算所述当前节点的莫顿码;calculating the Morton code of the current node;
根据所述当前节点的莫顿码,从所述当前节点的邻居信息中确定最小莫顿码对应的邻居节点;According to the Morton code of the current node, determine the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node;
将所述最小莫顿码对应的邻居节点确定为基准点。The neighbor node corresponding to the minimum Morton code is determined as the reference point.
进一步地,所述根据所述当前节点的莫顿码,从所述当前节点的邻居信息中确定最小莫顿码对应的邻居节点,可以包括:Further, determining the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node according to the Morton code of the current node may include:
根据所述当前节点的莫顿码,确定所述当前节点的坐标信息;Determine the coordinate information of the current node according to the Morton code of the current node;
基于所述当前节点的坐标信息,确定所述当前节点的邻居信息中至少一个邻居节点的莫顿码;determining the Morton code of at least one neighbor node in the neighbor information of the current node based on the coordinate information of the current node;
从所述至少一个邻居节点的莫顿码中选取最小莫顿码,得到所述最小莫顿码对应的邻居节点。A minimum Morton code is selected from Morton codes of the at least one neighbor node to obtain a neighbor node corresponding to the minimum Morton code.
在本申请实施例中,利用节点(或简称为“点”)的坐标信息可以得到对应于点云中每一点的莫顿码。这里,莫顿码可以将多维数据转化为一维数据编码,莫顿编码也可叫z-order code,因为其编码顺序按 照空间z序。计算莫顿码的具体方法描述如下所示,对于每一个分量用d比特二进制数表示的三维坐标(x,y,z),其三个分量的表示通过以下实现:In the embodiment of the present application, the Morton code corresponding to each point in the point cloud can be obtained by using the coordinate information of the node (or simply referred to as "point"). Here, Morton code can convert multi-dimensional data into one-dimensional data encoding, and Morton code can also be called z-order code, because its encoding order is according to the spatial z order. The specific method for calculating the Morton code is described as follows. For the three-dimensional coordinates (x, y, z) represented by a d-bit binary number for each component, the three components are represented by the following:
Figure PCTCN2020133704-appb-000001
Figure PCTCN2020133704-appb-000001
其中,x l,y l,z l∈{0,1}分别是x,y,z的最高位(l=1)到最低位(l=d)对应的二进制数值。莫顿码M是对x,y,z从最高位开始,依次交叉排列x l,y l,z l到最低位,M的计算公式如下所示: Wherein, x l , y l , z l ∈ {0,1} are the binary values corresponding to the highest bit (l=1) to the lowest bit (l=d) of x, y, and z, respectively. The Morton code M starts from the highest bit for x, y, and z, and arranges x l , y l , z l to the lowest bit in turn. The calculation formula of M is as follows:
Figure PCTCN2020133704-appb-000002
Figure PCTCN2020133704-appb-000002
其中,m l′∈{0,1}分别是M的最高位(l′=1)到最低位(l′=3d)的值。在得到点云中每个点的莫顿码M后,将点云中的点按莫顿码由小到大的顺序进行排列,并将每个点的权值w设为1。表示为计算机语言,类似于z|(y<<1)|(x<<2)的组合。 Among them, m l′ ∈ {0, 1} are the values from the highest order (l′=1) to the lowest order (l′=3d) of M, respectively. After obtaining the Morton code M of each point in the point cloud, the points in the point cloud are arranged in the order of Morton code from small to large, and the weight w of each point is set to 1. Represented in computer language, similar to the combination of z|(y<<1)|(x<<2).
需要说明的是,首先计算当前节点的莫顿码,然后根据当前节点的莫顿码,定位至基准点的莫顿码。这里,基准点的莫顿码是当前节点的邻居节点中的最小莫顿码。示例性地,如果当前节点的三维坐标为(x,y,z),那么基准点的三维坐标为(x-1,y-1,z-1),这时候计算得到的莫顿码是最小的。It should be noted that the Morton code of the current node is first calculated, and then the Morton code of the reference point is located according to the Morton code of the current node. Here, the Morton code of the reference point is the smallest Morton code among the neighbor nodes of the current node. Exemplarily, if the three-dimensional coordinates of the current node are (x, y, z), then the three-dimensional coordinates of the reference point are (x-1, y-1, z-1), and the calculated Morton code is the smallest. of.
在得到基准点之后,可以计算基准点与这N个待搜索邻居节点的坐标差值(offset),并将这N个坐标差值转换为N个莫顿码,然后将这N个莫顿码存储在预设查找表中。After the reference point is obtained, the coordinate difference (offset) between the reference point and the N neighbor nodes to be searched can be calculated, and the N coordinate difference values can be converted into N Morton codes, and then the N Morton codes Stored in a preset lookup table.
进一步地,在一些实施例中,所述根据所述预设查找表,确定所述N个待搜索邻居节点的莫顿码,可以包括:Further, in some embodiments, the determining the Morton codes of the N neighbor nodes to be searched according to the preset lookup table may include:
确定基准点的莫顿码;Determine the Morton code of the reference point;
从所述预设查找表中,获取N个坐标差值的莫顿码;From the preset lookup table, obtain Morton codes of N coordinate differences;
对基准点的莫顿码和N个坐标差值的莫顿码进行计算,得到所述N个待搜索邻居节点的莫顿码。The Morton codes of the reference point and the Morton codes of N coordinate differences are calculated to obtain the Morton codes of the N neighbor nodes to be searched.
需要说明的是,从预设查找表中可以获取N个坐标差值的莫顿码,在确定出基准点的莫顿码之后,可以对基准点的莫顿码和这N个坐标差值的莫顿码进行计算,得到这N个待搜索邻居节点的莫顿码。It should be noted that the Morton codes of N coordinate difference values can be obtained from the preset lookup table. After the Morton code of the reference point is determined, the Morton code of the reference point and the N coordinate difference values can be determined. The Morton code is calculated to obtain the Morton codes of the N neighbor nodes to be searched.
具体来讲,从预设查找表中获取所存储的第一个莫顿码,然后将这个莫顿码和基准点的莫顿码进行莫顿码加法计算,就可以得到第一个待搜索邻居的莫顿码;依次类推,可以得到这N个待搜索邻居节点的莫顿码。Specifically, the first stored Morton code is obtained from the preset lookup table, and then the Morton code is added to the Morton code of the reference point to obtain the first neighbor to be searched. By analogy, the Morton codes of the N neighbor nodes to be searched can be obtained.
这样,在得到这N个待搜索邻居节点的莫顿码之后,可以执行后续判断这些待搜索邻居节点是否存在的步骤。In this way, after obtaining the Morton codes of the N neighbor nodes to be searched, the subsequent steps of judging whether the neighbor nodes to be searched exist can be performed.
S402:若所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值。S402: If there is a coplanar neighbor node that is coplanar with the current node and has been encoded among the N neighbor nodes to be searched, acquire a first attribute reconstruction value of the coplanar neighbor node.
S403:若所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值。S403: If there is a collinear neighbor node that is collinear with the current node and has been coded among the N neighbor nodes to be searched, obtain a second attribute reconstruction value of the collinear neighbor node.
S404:基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。S404: Determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
需要说明的是,由于点云的非均匀分布,这时候计算得到的待搜索邻居节点的莫顿码并不一定存在;因此还需要进一步确定这些点是否存在。It should be noted that due to the non-uniform distribution of point clouds, the Morton codes of the neighbor nodes to be searched that are calculated at this time do not necessarily exist; therefore, it is necessary to further determine whether these points exist.
在一种可能的实施方式中,在确定所述N个待搜索邻居节点的莫顿码之后,该方法还可包括:In a possible implementation manner, after determining the Morton codes of the N neighbor nodes to be searched, the method may further include:
遍历预设点云序列,判断所述预设点云序列是否存在第一待搜索邻居节点的莫顿码;Traverse the preset point cloud sequence, and determine whether the preset point cloud sequence has a Morton code of the first neighbor node to be searched;
若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;If the judgment result is yes, it is determined that the first neighbor node to be searched exists in the N neighbor nodes to be searched;
若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;If the judgment result is no, it is determined that the first neighbor node to be searched does not exist in the N neighbor nodes to be searched;
其中,所述第一待搜索邻居节点为所述N个待搜索邻居节点中的任意一个待搜索邻居节点。Wherein, the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
需要说明的是,预设点云序列中存储的是重构点云,即预设点云序列中的点均为已编码过的节点。对于预设点云序列而言,在一种具体的实施例中,该方法还可以包括:It should be noted that what is stored in the preset point cloud sequence is the reconstructed point cloud, that is, the points in the preset point cloud sequence are all encoded nodes. For the preset point cloud sequence, in a specific embodiment, the method may further include:
确定包括所述当前节点的点云中至少一个点的莫顿码;determining a Morton code of at least one point in the point cloud comprising the current node;
将所述莫顿码按照由小到大的顺序排列,得到莫顿码序;Arrange the Morton codes in ascending order to obtain a Morton code sequence;
从莫顿码序中截取比当前节点的莫顿码小的莫顿码,并根据所截取的莫顿码得到所述预设点云序列。A Morton code smaller than the Morton code of the current node is intercepted from the Morton code sequence, and the preset point cloud sequence is obtained according to the intercepted Morton code.
需要说明的是,该点云包括有当前节点,计算点云中至少一个点的莫顿码,然后将莫顿码按照由小到大的顺序排列,得到莫顿码序;这时候从莫顿码序中截取比当前节点的莫顿码小的莫顿码,从而根据所截取的莫顿码可以得到预设点云序列,而且该预设点云序列中的每一节点均为已编码过的节点。还需要注意的是,本申请实施例也可以将莫顿码按照由大到小的顺序排列,得到一莫顿码序,但是仍然从莫顿码序中截取比当前节点的莫顿码小的莫顿码,以得到预设点云序列。It should be noted that the point cloud includes the current node, calculate the Morton code of at least one point in the point cloud, and then arrange the Morton codes in ascending order to obtain the Morton code sequence; The Morton code smaller than the Morton code of the current node is intercepted from the code sequence, so that a preset point cloud sequence can be obtained according to the intercepted Morton code, and each node in the preset point cloud sequence is encoded. node. It should also be noted that, in this embodiment of the present application, the Morton codes can also be arranged in descending order to obtain a Morton code sequence, but the Morton code sequence smaller than that of the current node is still intercepted from the Morton code sequence. Morton code to get preset point cloud sequence.
这样,通过遍历预设点云序列,当预设点云序列中存在第一待搜索邻居节点的莫顿码时,这时候可以确定出这N个待搜索邻居节点中存在该第一待搜索邻居节点,即该第一待搜索邻居节点为已编码过的节点;当预设点云序列中不存在第一待搜索邻居节点的莫顿码时,这时候可以确定出这N个待搜索 邻居节点中不存在该第一待搜索邻居节点,即该第一待搜索邻居节点为没有编码过的节点,也即不能作为参考邻居节点用于属性预测。In this way, by traversing the preset point cloud sequence, when the Morton code of the first neighbor node to be searched exists in the preset point cloud sequence, it can be determined that the first neighbor node to be searched exists in the N neighbor nodes to be searched. node, that is, the first neighbor node to be searched is an encoded node; when there is no Morton code of the first neighbor node to be searched in the preset point cloud sequence, the N neighbor nodes to be searched can be determined at this time. The first neighbor node to be searched does not exist in , that is, the first neighbor node to be searched is a node that has not been coded, that is, it cannot be used as a reference neighbor node for attribute prediction.
在另一种可能的实施方式中,在确定所述N个待搜索邻居节点的莫顿码之后,该方法还可包括:In another possible implementation manner, after determining the Morton codes of the N neighbor nodes to be searched, the method may further include:
判断第一待搜索邻居节点的莫顿码是否小于所述当前节点的莫顿码;Determine whether the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node;
若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;If the judgment result is yes, it is determined that the first neighbor node to be searched exists in the N neighbor nodes to be searched;
若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;If the judgment result is no, it is determined that the first neighbor node to be searched does not exist in the N neighbor nodes to be searched;
其中,所述第一待搜索邻居节点为所述N个待搜索邻居节点中的任意一个待搜索邻居节点。Wherein, the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
需要说明的是,在搜索邻居节点时,用于预测的邻居节点需要是已经遍历过的节点,而遍历的顺序是按莫顿码由小到大的顺序。因此,只有莫顿码比当前节点的莫顿码小的邻居节点才能够用于属性预测,如果找到的邻居节点的莫顿码比当前节点的莫顿码大,那么将不能作为参考邻居节点。换句话说,只有当第一待搜索邻居节点的莫顿码小于当前节点的莫顿码时,这时候可以确定出这N个待搜索邻居节点中存在该第一待搜索邻居节点,即该第一待搜索邻居节点为已编码过的节点;而当第一待搜索邻居节点的莫顿码大于当前节点的莫顿码时,这时候可以确定出这N个待搜索邻居节点中不存在该第一待搜索邻居节点,即该第一待搜索邻居节点为没有编码过的节点,也即不能作为参考邻居节点用于属性预测。It should be noted that when searching for neighbor nodes, the neighbor nodes used for prediction need to be nodes that have been traversed, and the traversal order is in the order of Morton code from small to large. Therefore, only neighbor nodes whose Morton code is smaller than that of the current node can be used for attribute prediction. If the Morton code of the found neighbor node is larger than that of the current node, it cannot be used as a reference neighbor node. In other words, only when the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node, it can be determined that the first neighbor node to be searched exists among the N neighbor nodes to be searched, that is, the first neighbor node to be searched. The neighbor node to be searched is an encoded node; and when the Morton code of the first neighbor node to be searched is greater than the Morton code of the current node, it can be determined that the N neighbor nodes to be searched do not exist in the first neighbor node. Once the neighbor node to be searched, that is, the first neighbor node to be searched is a node that has not been coded, that is, it cannot be used as a reference neighbor node for attribute prediction.
进一步地,在一些实施例中,当所述N个待搜索邻居节点中存在所述第一待搜索邻居节点时,该方法还可以包括:Further, in some embodiments, when the first neighbor node to be searched exists in the N neighbor nodes to be searched, the method may further include:
若所述第一待搜索邻居节点为所述当前节点的共面邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点;If the first neighbor node to be searched is a coplanar neighbor node of the current node, it is determined that there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
若所述第一待搜索邻居节点为所述当前节点的共线邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点。If the first neighbor node to be searched is a collinear neighbor node of the current node, it is determined that there is a collinear neighbor node that is collinear with the current node and has been coded among the N neighbor nodes to be searched.
也就是说,如果N个待搜索邻居节点中存在第一待搜索邻居节点,这时候还需要判断第一邻居节点为共面邻居节点还是共线邻居节点。具体地,如果第一待搜索邻居节点为当前节点的共面邻居节点,那么可以确定这N个待搜索邻居节点中存在与当前节点共面且已编码的共面邻居节点;如果第一待搜索邻居节点为当前节点的共线邻居节点,那么可以确定这N个待搜索邻居节点中存在与当前节点共线且已编码的共线邻居节点。That is to say, if there is a first neighbor node to be searched among the N neighbor nodes to be searched, it is also necessary to judge whether the first neighbor node is a coplanar neighbor node or a collinear neighbor node at this time. Specifically, if the first neighbor node to be searched is a coplanar neighbor node of the current node, it can be determined that there are coplanar neighbor nodes that are coplanar with the current node and have been encoded in the N neighbor nodes to be searched; If the neighbor node is the collinear neighbor node of the current node, it can be determined that there are collinear neighbor nodes that are collinear with the current node and have been encoded among the N neighbor nodes to be searched.
在本申请实施例中,距离越近,空间相关性越强。当前节点与共面邻居节点之间的距离值为1,当前节点与共线邻居节点之间的距离值为
Figure PCTCN2020133704-appb-000003
因此相对而言,共面邻居节点的空间相关性更强,本申请实施例可以优先判断这N个待搜索邻居节点中是否存在与当前节点共面且已编码的共面邻居节点。
In this embodiment of the present application, the closer the distance, the stronger the spatial correlation. The distance between the current node and the coplanar neighbor node is 1, and the distance between the current node and the collinear neighbor node is 1
Figure PCTCN2020133704-appb-000003
Therefore, relatively speaking, coplanar neighbor nodes have stronger spatial correlation, and in this embodiment of the present application, it is possible to preferentially determine whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded among the N neighbor nodes to be searched.
需要说明的是,在一些实施例中,该方法还可以包括:设置参考邻居节点的数量为K个,K为大于0且小于或等于N的整数。It should be noted that, in some embodiments, the method may further include: setting the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
也就是说,本申请实施例可以预先设置参考邻居节点的数量。这样,在这N个待搜索邻居节点中,当搜索到K个存在的邻居节点时,这时候可以停止搜索,直接利用所搜索得到的K个邻居节点进行属性预测,从而能够减少搜索复杂度。That is, in this embodiment of the present application, the number of reference neighbor nodes may be preset. In this way, among the N neighbor nodes to be searched, when K existing neighbor nodes are searched, the search can be stopped at this time, and the K neighbor nodes obtained by the search can be directly used for attribute prediction, thereby reducing the search complexity.
其中,K的取值可以为3个,也可以为6个,甚至可以为8个或者其他个。在本申请实施例中,K的取值根据实际情况进行具体设定,这里不作任何限定。Wherein, the value of K may be 3, may also be 6, and may even be 8 or other values. In the embodiment of the present application, the value of K is specifically set according to the actual situation, and no limitation is made here.
还需要说明的是,在一些实施例中,该方法还可以包括:将K的取值写入码流。It should also be noted that, in some embodiments, the method may further include: writing the value of K into the code stream.
这样,由于编码器将K的取值写入码流,后续解码器可以直接通过解析码流获得参考邻居节点的数量(K的取值),使得编码器和解码器中用于属性预测的预设参考邻居节点的数量保持一致。In this way, since the encoder writes the value of K into the code stream, the subsequent decoder can directly obtain the number of reference neighbor nodes (the value of K) by parsing the code stream, so that the predictions used for attribute prediction in the encoder and decoder are Let the number of reference neighbor nodes be the same.
在一种可能的实施方式中,当在N个待搜索邻居节点中搜索到存在的共面邻居节点已经满足K的需求时,这时候可以仅使用这K个共面邻居节点进行属性预测。在一些实施例中,该方法还可以包括:In a possible implementation manner, when it is found that the existing coplanar neighbor nodes in the N neighbor nodes to be searched already satisfy the requirement of K, at this time, only the K coplanar neighbor nodes can be used for attribute prediction. In some embodiments, the method may also include:
判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已编码的共面邻居节点;Judging whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
若所述N个待搜索邻居节点中存在K个与所述当前节点共面且已编码的共面邻居节点,则获取所述K个共面邻居节点的第一属性重建值;If there are K coplanar neighbor nodes that are coplanar with the current node and have been encoded in the N neighbor nodes to be searched, obtain the first attribute reconstruction value of the K coplanar neighbor nodes;
相应地,对于S404来说,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,可以包括:Correspondingly, for S404, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
对所述K个共面邻居节点的第一属性重建值进行均值计算,确定所述当前节点的属性预测值。Perform mean calculation on the first attribute reconstruction values of the K coplanar neighbor nodes to determine the attribute prediction value of the current node.
需要说明的是,在这N个待搜索邻居节点中搜索是否存在与当前节点共面且已编码的共面邻居节点,当搜索到K个存在的共面邻居节点时,这时候就可以停止搜索;然后获取这K个共面邻居节点的第一属性重建值,并通过对这K个共面邻居节点的第一属性重建值进行均值计算,可以得到当前节点的属性预测值。It should be noted that, in the N neighbor nodes to be searched, it is searched whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded. When K existing coplanar neighbor nodes are found, the search can be stopped at this time. ; and then obtain the first attribute reconstruction value of the K coplanar neighbor nodes, and calculate the mean value of the first attribute reconstruction value of the K coplanar neighbor nodes to obtain the attribute prediction value of the current node.
在另一种可能的实施方式中,当在N个待搜索邻居节点中搜索到存在的共线邻居节点已经满足K的需求时,这时候可以仅使用这K个共线邻居节点进行属性预测。在一些实施例中,该方法还可包括:In another possible implementation, when it is found that the existing collinear neighbor nodes in the N neighbor nodes to be searched already satisfy the requirement of K, at this time, only the K collinear neighbor nodes can be used for attribute prediction. In some embodiments, the method may further include:
判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已编码的共线邻居节点;Judging whether there is a collinear neighbor node that is collinear with the current node and has been coded in the N neighbor nodes to be searched;
若所述N个待搜索邻居节点中存在K个与所述当前节点共线且已编码的共线邻居节点,则获取所述K个共线邻居节点的第二属性重建值;If there are K collinear neighbor nodes that are collinear with the current node and have been coded in the N neighbor nodes to be searched, acquiring the second attribute reconstruction value of the K collinear neighbor nodes;
相应地,对于S404来说,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,可以包括:Correspondingly, for S404, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
对所述K个共线邻居节点的第二属性重建值进行均值计算,确定所述当前节点的属性预测值。Perform mean calculation on the second attribute reconstruction values of the K collinear neighbor nodes to determine the attribute prediction value of the current node.
需要说明的是,在这N个待搜索邻居节点中搜索是否存在与当前节点共线且已编码的共线邻居节点,当搜索到K个存在的共线邻居节点时,这时候就可以停止搜索;然后获取这K个共线邻居节点的第二属性重建值,并通过对这K个共线邻居节点的第二属性重建值进行均值计算,可以得到当前节点的属性预测值。It should be noted that, in the N neighbor nodes to be searched, it is searched whether there is a collinear neighbor node that is collinear with the current node and has been encoded. When K existing collinear neighbor nodes are searched, the search can be stopped at this time. ; and then obtain the second attribute reconstruction value of the K collinear neighbor nodes, and calculate the mean value of the second attribute reconstruction value of the K collinear neighbor nodes to obtain the attribute prediction value of the current node.
在又一种可能的实施方式中,考虑到共面邻居节点的空间相关性更强,需要先搜索是否存在共面邻居节点,再搜索是否存在共线邻居节点。In another possible implementation manner, considering that the coplanar neighbor nodes have stronger spatial correlation, it is necessary to first search whether there are coplanar neighbor nodes, and then search whether there are collinear neighbor nodes.
当在N个待搜索邻居节点中没有搜索到存在的共面邻居节点但是搜索到存在的共线邻居节点已经满足K的需求时,这时候也可以仅使用这K个共线邻居节点进行属性预测。在一些实施例中,该方法还可以包括:When no existing coplanar neighbor nodes are found in the N neighbor nodes to be searched, but the existing collinear neighbor nodes are found to meet the requirements of K, at this time, only the K collinear neighbor nodes can be used for attribute prediction. . In some embodiments, the method may also include:
判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已编码的共面邻居节点;Judging whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
若所述N个待搜索邻居节点中不存在与所述当前节点共面且已编码的共面邻居节点,则判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已编码的共线邻居节点;If there is no coplanar neighbor node that is coplanar with the current node and has been coded in the N neighbor nodes to be searched, it is determined whether there is a coplanar neighbor node that is collinear with the current node and has been coded in the N neighbor nodes to be searched. encoded collinear neighbor nodes;
若所述N个待搜索邻居节点中存在K个与所述当前节点共线且已编码的共线邻居节点,则获取所述K个共线邻居节点的第二属性重建值;If there are K collinear neighbor nodes that are collinear with the current node and have been coded in the N neighbor nodes to be searched, acquiring the second attribute reconstruction value of the K collinear neighbor nodes;
相应地,对于S404来说,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,可以包括:Correspondingly, for S404, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
对所述K个共线邻居节点的第二属性重建值进行均值计算,确定所述当前节点的属性预测值。Perform mean calculation on the second attribute reconstruction values of the K collinear neighbor nodes to determine the attribute prediction value of the current node.
需要说明的是,首先在这N个待搜索邻居节点中搜索是否存在与当前节点共面且已编码的共面邻居节点,如果搜索到不存在共面邻居节点,那么需要继续在这N个待搜索邻居节点中搜索是否存在与当前节点共线且已编码的共线邻居节点,当搜索到K个存在的共线邻居节点时,这时候可以停止搜索,然后获取这K个共线邻居节点的第二属性重建值,并通过对这K个共线邻居节点的第二属性重建值进行均值计算,可以得到当前节点的属性预测值。It should be noted that, firstly, in the N neighbor nodes to be searched, it is searched whether there is a coplanar neighbor node that is coplanar with the current node and has been coded. Search the neighbor nodes to see if there is a collinear neighbor node that is collinear with the current node and has been coded. When K existing collinear neighbor nodes are searched, the search can be stopped at this time, and then the information of the K collinear neighbor nodes can be obtained. The second attribute reconstruction value, and by performing mean calculation on the second attribute reconstruction value of the K collinear neighbor nodes, the attribute prediction value of the current node can be obtained.
这里,需要注意的是,如果在这N个待搜索邻居节点中搜索是否存在与当前节点共线且已编码的共线邻居节点时,只能搜索到k个存在的共线邻居节点,且k为大于0且小于K的整数,这时候可以通过对这k个共线邻居节点的第二属性重建值进行均值计算,以得到当前节点的属性预测值。Here, it should be noted that if the N neighbor nodes to be searched are searched for whether there are collinear neighbor nodes that are collinear with the current node and have been coded, only k existing collinear neighbor nodes can be searched, and k is an integer greater than 0 and less than K. At this time, the predicted value of the attribute of the current node can be obtained by performing mean calculation on the reconstructed value of the second attribute of the k collinear neighbor nodes.
在又一种可能的实施方式中,当在N个待搜索邻居节点中搜索到M个存在的共面邻居节点但是M小于K时,这时候需要继续搜索L个存在的共线邻居节点,然后使用这M个共面邻居节点和L个共线邻居节点共同进行属性预测。在一些实施例中,该方法还可以包括:In yet another possible implementation, when M existing coplanar neighbor nodes are found in the N neighbor nodes to be searched, but M is less than K, it is necessary to continue to search for L existing colinear neighbor nodes, and then Use these M coplanar neighbor nodes and L collinear neighbor nodes to jointly perform attribute prediction. In some embodiments, the method may also include:
判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已编码的共面邻居节点;Judging whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
若所述N个待搜索邻居节点中存在M个与所述当前节点共面且已编码的共面邻居节点,则获取所述M个共面邻居节点的第一属性重建值,M为大于0且小于K的整数;If there are M coplanar neighbor nodes that are coplanar with the current node and have been encoded among the N neighbor nodes to be searched, obtain the first attribute reconstruction value of the M coplanar neighbor nodes, where M is greater than 0 and an integer less than K;
判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已编码的共线邻居节点;Judging whether there is a collinear neighbor node that is collinear with the current node and has been coded in the N neighbor nodes to be searched;
若所述N个待搜索邻居节点中存在L个与所述当前节点共线且已编码的共线邻居节点,则获取所述L个共线邻居节点的第二属性重建值;其中,L为大于0且小于或等于(K-M)的整数;If there are L collinear neighbor nodes that are collinear with the current node and have been coded in the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the L collinear neighbor nodes; wherein, L is an integer greater than 0 and less than or equal to (K-M);
相应地,对于S404来说,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,可以包括:Correspondingly, for S404, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
对M个第一属性重建值和L个第二属性重建值进行加权计算,确定所述当前节点的属性预测值。A weighted calculation is performed on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node.
需要说明的是,首先在这N个待搜索邻居节点中搜索是否存在与当前节点共面且已编码的共面邻居节点,如果搜索到M个存在的共面邻居节点,但是M小于K,那么需要继续在这N个待搜索邻居节点中搜索是否存在与当前节点共线且已编码的共线邻居节点,当搜索到(K-M)个存在的共面邻居节点时,这时候可以停止搜索,然后获取这M个共面邻居节点的第一属性重建值和这(K-M)个共线邻居节点的第二属性重建值,并通过对这M个第一属性重建值和这(K-M)个第二属性重建值进行加权计算,可以得到当前节点的属性预测值。It should be noted that, firstly, among the N neighbor nodes to be searched, it is searched whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded. If M existing coplanar neighbor nodes are found, but M is less than K, then It is necessary to continue to search the N neighbor nodes to be searched for whether there are collinear neighbor nodes that are collinear with the current node and have been coded. When (K-M) existing coplanar neighbor nodes are found, the search can be stopped at this time, and then Obtain the first attribute reconstruction values of the M coplanar neighbor nodes and the second attribute reconstruction values of the (K-M) collinear neighbor nodes, and obtain the M first attribute reconstruction values and the (K-M) second attribute reconstruction values. The attribute reconstruction value is weighted to calculate the attribute prediction value of the current node.
这里,需要注意的是,如果在这N个待搜索邻居节点中搜索是否存在与当前节点共线且已编码的共线邻居节点时,只能搜索到L个存在的共线邻居节点,且L为大于0且小于或等于(K-M)的整数,这时候可以通过对这M个第一属性重建值和这L个第二属性重建值进行加权计算,以得到当前节点的 属性预测值。Here, it should be noted that if the N neighbor nodes to be searched are searched for whether there are collinear neighbor nodes that are collinear with the current node and have been coded, only L existing collinear neighbor nodes can be searched, and L is an integer greater than 0 and less than or equal to (K-M), at this time, the attribute prediction value of the current node can be obtained by performing weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values.
进一步地,在一些实施例中,所述对所述M个第一属性重建值和所述L个第二属性重建值进行加权计算,确定所述当前节点的属性预测值,可以包括:Further, in some embodiments, the performing weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node may include:
确定所述M个第一属性重建值对应的第一权重值和所述L个第二属性重建值对应的第二权重值;determining the first weight values corresponding to the M first attribute reconstruction values and the second weight values corresponding to the L second attribute reconstruction values;
根据所述M个第一属性重建值及对应的所述第一权重值和所述L个第二属性重建值及对应的所述第二权重值进行加权均值计算,得到所述当前节点的属性预测值。Perform a weighted average calculation according to the M first attribute reconstruction values and the corresponding first weight values and the L second attribute reconstruction values and the corresponding second weight values to obtain the attribute of the current node Predictive value.
需要说明的是,考虑到空间相关性的强度,本申请实施例中可以将第一权重值(即共面邻居节点的权重)设置为2,第二权重值(即共线邻居节点的权重)设置为1。It should be noted that, in consideration of the strength of spatial correlation, in this embodiment of the present application, the first weight value (that is, the weight of the coplanar neighbor node) may be set to 2, and the second weight value (that is, the weight of the collinear neighbor node) Set to 1.
还需要说明的是,假定第一属性重建值用
Figure PCTCN2020133704-appb-000004
表示,第一权重值为用w 1i表示,i=1,2,…,M;第二属性重建值用
Figure PCTCN2020133704-appb-000005
表示,第二权重值为用w 2j表示,j=1,2,…,L;当前节点的属性预测值用A表示,那么其计算公式如下,
It should also be noted that it is assumed that the reconstruction value of the first attribute is
Figure PCTCN2020133704-appb-000004
represents, the first weight value is represented by w 1i , i=1,2,...,M; the second attribute reconstruction value is represented by
Figure PCTCN2020133704-appb-000005
represents, the second weight value is represented by w 2j , j=1,2,...,L; the attribute prediction value of the current node is represented by A, then its calculation formula is as follows:
Figure PCTCN2020133704-appb-000006
Figure PCTCN2020133704-appb-000006
除此之外,在N个待搜索邻居节点中既没有搜索到存在的共面邻居节点又没有搜索到存在的共面邻居节点时,这时候,在一些实施例中,该方法还可以包括:In addition, when neither an existing coplanar neighbor node nor an existing coplanar neighbor node is found in the N neighbor nodes to be searched, at this time, in some embodiments, the method may further include:
若所述N个待搜索邻居节点中不存在与所述当前节点共面且已编码的共面邻居节点且不存在与所述当前节点共线且已编码的共线邻居节点,则从所述莫顿码序中确定位于所述当前节点的莫顿码的前一个莫顿码,将所述前一个莫顿码对应的点的属性重建值确定为所述当前节点的属性预测值。If there is no coplanar neighbor node that is coplanar with the current node and has been coded and there is no colinear neighbor node that is colinear with the current node and has been coded in the N neighbor nodes to be searched, then In the Morton code sequence, the previous Morton code of the Morton code located at the current node is determined, and the attribute reconstruction value of the point corresponding to the previous Morton code is determined as the attribute prediction value of the current node.
也就是说,在N个待搜索邻居节点中既没有搜索到存在的共面邻居节点又没有搜索到存在的共面邻居节点时,这时候可以直接利用莫顿码序中位于当前节点的莫顿码的前一个点的属性重建值作为当前节点的属性预测值。换句话说,在点云中的点,除了最开始的一个点不需要进行属性预测之外,其他点都是需要进行属性预测的。That is to say, when neither the existing coplanar neighbor nodes nor the existing coplanar neighbor nodes are found in the N neighbor nodes to be searched, the Morton code located at the current node in the Morton code sequence can be directly used at this time. The attribute reconstruction value of the previous point of the code is used as the attribute prediction value of the current node. In other words, for the points in the point cloud, except for the first point that does not need attribute prediction, all other points need attribute prediction.
本实施例提供了一种预测方法,通过确定当前节点的N个待搜索邻居节点;若所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;若所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。这样,在根据当前节点与邻居节点之间的几何空间关系进行属性预测时,由于扩大了邻居搜索范围(比如从相关技术中的6个待搜索邻居节点扩展到N个待搜索邻居节点),可以充分利用点云的空间相关性,使得预测残差更小,从而能够降低码率,进而提高编码效率。This embodiment provides a prediction method, by determining N neighbor nodes to be searched of the current node; if there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched, then Obtain the first attribute reconstruction value of the coplanar neighbor node; if there is a collinear neighbor node that is collinear with the current node and has been encoded in the N neighbor nodes to be searched, then obtain the collinear neighbor node. second attribute reconstruction value; determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value. In this way, when the attribute prediction is performed according to the geometric space relationship between the current node and the neighbor nodes, due to the expansion of the neighbor search range (for example, from 6 neighbor nodes to be searched in the related art to N neighbor nodes to be searched), it is possible to Make full use of the spatial correlation of point clouds to make the prediction residual smaller, which can reduce the code rate and improve the coding efficiency.
本申请的另一实施例中,参见图5,其示出了本申请实施例提供的另一种预测方法的流程示意图。如图5所示,该方法可以包括:In another embodiment of the present application, referring to FIG. 5 , it shows a schematic flowchart of another prediction method provided by the embodiment of the present application. As shown in Figure 5, the method may include:
S501:确定当前节点的N个待搜索邻居节点。S501: Determine N neighbor nodes to be searched for the current node.
这里,与相关技术相比,本申请实施例扩大了邻居搜索范围。其中,N的取值可以设置为12。Here, compared with the related art, the embodiment of the present application expands the neighbor search range. Among them, the value of N can be set to 12.
如图6A所示,其示出了相关技术提供的一种邻居搜索范围的示意图。如图6B所示,其示出了本申请实施例提供的一种邻居搜索范围的示意图。在图6A中,用灰色填充的块为当前节点,其邻居搜索范围包括6个待搜索邻居节点。在图6B中,用灰色填充的块为当前节点,其邻居搜索范围除了图6A所示的6个待搜索邻居节点之外,还扩展了另外6个待搜索邻居节点。也就是说,本申请实施例的邻居搜索范围可以包括12个待搜索邻居节点。As shown in FIG. 6A , it shows a schematic diagram of a neighbor search range provided by the related art. As shown in FIG. 6B , it shows a schematic diagram of a neighbor search range provided by an embodiment of the present application. In Fig. 6A, the block filled with gray is the current node, and its neighbor search range includes 6 neighbor nodes to be searched. In FIG. 6B , the block filled with gray is the current node, and its neighbor search range is extended by another 6 neighbor nodes to be searched in addition to the 6 neighbor nodes to be searched as shown in FIG. 6A . That is to say, the neighbor search range in this embodiment of the present application may include 12 neighbor nodes to be searched.
S502:设置参考邻居节点的数量为K个,K为大于0且小于或等于N的整数。S502: Set the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
需要说明的是,编码器可以预先设置参考邻居节点的数量。这样,在这N个待搜索邻居节点中搜索到K个存在的邻居节点时,这时候即可停止搜索,减少了搜索复杂度。后续可以用这K个邻居节点作为参考进行当前节点的属性预测。It should be noted that the encoder can preset the number of reference neighbor nodes. In this way, when K existing neighbor nodes are found in the N neighbor nodes to be searched, the search can be stopped at this time, which reduces the search complexity. Subsequently, the K neighbor nodes can be used as a reference to predict the attributes of the current node.
S503:在所述N个待搜索邻居节点中搜索到存在M个与所述当前节点共面且已编码的共面邻居节点的情况下,获取所述M个共面邻居节点的第一属性重建值。S503: In the case where M coplanar neighbor nodes that are coplanar with the current node and have been encoded are found in the N neighbor nodes to be searched, obtain first attribute reconstruction of the M coplanar neighbor nodes value.
S504:判断M是否等于K。S504: Determine whether M is equal to K.
S505:当M等于K时,对所述M个共面邻居节点的第一属性重建值进行均值计算,确定所述当前节点的属性预测值。S505: When M is equal to K, perform mean calculation on the first attribute reconstruction values of the M coplanar neighbor nodes, and determine the attribute prediction value of the current node.
S506:当M小于K时,在所述N个待搜索邻居节点中搜索到存在L个与所述当前节点共线且已编码的共线邻居节点的情况下,获取所述L个共线邻居节点的第二属性重建值。S506: When M is less than K, in the case where there are L collinear neighbor nodes that are collinear with the current node and have been coded in the N neighbor nodes to be searched, obtain the L collinear neighbors The second attribute of the node reconstructs the value.
S507:对所述M个第一属性重建值和所述L个第二属性重建值进行加权计算,确定所述当前节点的属性预测值。S507: Perform weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node.
这里,M为大于0的整数,L为大于0且小于或等于(K-M)的整数。Here, M is an integer greater than 0, and L is an integer greater than 0 and less than or equal to (K-M).
需要说明的是,考虑到共面邻居节点的空间相关性更强,需要先搜索是否存在共面邻居节点,再搜索是否存在共线邻居节点。It should be noted that, considering the stronger spatial correlation of coplanar neighbor nodes, it is necessary to first search for the existence of coplanar neighbor nodes, and then to search for the existence of collinear neighbor nodes.
还需要说明的是,在获取到M个共面邻居节点的第一属性重建值后,对于S504来说,这时候如果M等于K,那么执行S505;如果M小于K,那么执行S506~S507。It should also be noted that, after obtaining the first attribute reconstruction values of the M coplanar neighbor nodes, for S504, if M is equal to K at this time, then execute S505; if M is less than K, execute S506-S507.
另外,当M等于0时,即在这N个待搜索邻居节点中没有搜索到存在的共面邻居节点,则需要继续在这N个待搜索邻居节点中搜索是否存在的共线邻居节点;若这时候搜索到L个存在的共线邻居节点,则通过这L个共线邻居节点的第二属性重建值进行均值计算,即可得到当前节点的属性预测值。In addition, when M is equal to 0, that is, no existing coplanar neighbor nodes are found in the N neighbor nodes to be searched, it is necessary to continue to search for the existence of the collinear neighbor nodes in the N neighbor nodes to be searched; if At this time, L existing collinear neighbor nodes are searched, and the mean value is calculated by the second attribute reconstruction value of the L collinear neighbor nodes, and the attribute prediction value of the current node can be obtained.
除此之外,当M等于0且L等于0时,即在这N个待搜索邻居节点中没有搜索到存在的共面邻居节点也没有搜索到存在的共线邻居节点,这时候可以直接利用莫顿码序中位于当前节点的莫顿码的前一个点的属性重建值作为当前节点的属性预测值。In addition, when M is equal to 0 and L is equal to 0, that is, there is no coplanar neighbor node that exists in the N neighbor nodes to be searched, and no colinear neighbor node is found. At this time, you can directly use the The attribute reconstruction value of the previous point of the Morton code located at the current node in the Morton code sequence is used as the attribute prediction value of the current node.
简言之,本申请实施例提出了一种扩大邻居搜索范围的属性预测方法。首先,对当前节点的莫顿码(cur_pos)进行操作,可以定位至基准点莫顿码(base_pos);然后计算基准点与当前节点的N个待搜索相邻节点之间的坐标差值;将这些坐标差值进行莫顿编码,并建立预设查找表;再根据这个预设查找表进行莫顿码的加法计算来确定出这N个待搜索相邻节点的莫顿码。In short, the embodiment of the present application proposes an attribute prediction method for expanding the neighbor search range. First, operate the Morton code (cur_pos) of the current node to locate the reference point Morton code (base_pos); then calculate the coordinate difference between the reference point and the N adjacent nodes to be searched for the current node; Morton coding is performed on these coordinate differences, and a preset look-up table is established; and then Morton codes are added according to the preset look-up table to determine the Morton codes of the N adjacent nodes to be searched.
由于点云的非均匀分布,因此计算得出的相邻节点的莫顿码并不一定存在。这时候还需要在预设点云序列中进行遍历查找,确定这些点是否存在。这里,预设点云序列为重构点云,该预设点云序列中的点均为已编码过的节点。Due to the non-uniform distribution of point clouds, the calculated Morton codes of neighboring nodes do not necessarily exist. At this time, it is also necessary to traverse the preset point cloud sequence to determine whether these points exist. Here, the preset point cloud sequence is a reconstructed point cloud, and the points in the preset point cloud sequence are all coded nodes.
示例性地,如图6A所示,用灰色填充的块为当前节点,其邻居搜索范围包括6个待搜索邻居节点。如图6B所示,用灰色填充的块为当前节点,其邻居搜索范围除了图6A所示的6个待搜索邻居节点之外,还扩展了另外6个待搜索邻居节点(用加粗线表示)。也就是说,本申请实施例的邻居搜索范围可以包括12个待搜索邻居节点。具体而言,本申请实施例在搜索邻居节点时,用于预测的邻居节点是已遍历过的点,而遍历的顺序是按莫顿码由小到大的顺序。所以,只有莫顿码比当前点小的点才能用于预测,如果找到的邻居节点的莫顿码比当前节点的莫顿码大,那么将不能作为参考邻居节点。Exemplarily, as shown in FIG. 6A , the block filled with gray is the current node, and its neighbor search range includes 6 neighbor nodes to be searched. As shown in Figure 6B, the block filled with gray is the current node, and its neighbor search range is extended by another 6 neighbor nodes to be searched in addition to the 6 neighbor nodes to be searched as shown in Figure 6A (indicated by bold lines). ). That is to say, the neighbor search range in this embodiment of the present application may include 12 neighbor nodes to be searched. Specifically, when searching for neighbor nodes in the embodiment of the present application, the neighbor nodes used for prediction are points that have been traversed, and the traversal order is in the order of Morton codes from small to large. Therefore, only the point whose Morton code is smaller than the current point can be used for prediction. If the Morton code of the found neighbor node is larger than that of the current node, it cannot be used as a reference neighbor node.
这样,由于本申请实施例认为距离越近相关性最强,那么可以先搜索查找距离为1的共面邻居节点,如果存在,那么利用这些共面邻居节点的平均值作为预测值;或者,如果完全不存在共面邻居节点,那么也可以继续搜索查找距离为
Figure PCTCN2020133704-appb-000007
的共线邻居节点,利用这些共线邻居节点的平均值作为预测值;或者,如果存在共面邻居节点但是不满足预设参考邻居节点的数量,那么也可以继续搜索查找距离为
Figure PCTCN2020133704-appb-000008
的共线邻居节点,利用这些共面邻居节点和共线邻居节点的加权平均值作为预测值;如果上述这些邻居节点都不存在,那么这时候可以利用当前节点的莫顿码序的前一个点的属性重建值直接作为属性预测值。
In this way, since the embodiment of the present application considers that the closer the distance is, the stronger the correlation is, then a coplanar neighbor node with a distance of 1 may be searched first, and if it exists, the average value of these coplanar neighbor nodes is used as the predicted value; or, if If there is no coplanar neighbor node at all, then you can continue to search for a distance of
Figure PCTCN2020133704-appb-000007
The average value of these collinear neighbor nodes is used as the predicted value; or, if there are coplanar neighbor nodes but the preset number of reference neighbor nodes is not met, then the search can also be continued. The search distance is
Figure PCTCN2020133704-appb-000008
The collinear neighbor nodes of , use the weighted average of these coplanar neighbor nodes and the collinear neighbor nodes as the predicted value; if none of the above neighbor nodes exist, then the previous point of the Morton code sequence of the current node can be used at this time. The attribute reconstruction value of is directly used as the attribute prediction value.
如此,本申请实施例扩大了邻居搜索范围,能够充分利用点云的空间相关性,使得预测残差更小,更适用于后续的量化及熵编码。这里,本申请实施例所提出技术方案在基本不增加编解码复杂度的前提下,使用该技术方案具有以下有益效果:In this way, the embodiment of the present application expands the neighbor search range, and can make full use of the spatial correlation of the point cloud, so that the prediction residual is smaller, which is more suitable for subsequent quantization and entropy coding. Here, on the premise that the technical solutions proposed in the embodiments of the present application do not substantially increase the complexity of encoding and decoding, using the technical solutions has the following beneficial effects:
本申请实施例的技术方案在不改变属性PSNR的情况下,可以降低编码码流大小。这里,PSNR是一种图像评价的客观标准,PSNR越大,则图像的质量越好。在AVS平台上对部分属性信息为颜色的序列在C2(几何无损,属性有损)条件下进行测试以后,其测试结果如下表1所示。The technical solutions of the embodiments of the present application can reduce the size of the encoded code stream without changing the attribute PSNR. Here, PSNR is an objective criterion for image evaluation. The larger the PSNR, the better the image quality. On the AVS platform, after testing the sequence with part of the attribute information as color under the condition of C2 (geometric lossless, attribute lossy), the test results are shown in Table 1 below.
表1Table 1
Figure PCTCN2020133704-appb-000009
Figure PCTCN2020133704-appb-000009
从上表1可以看出,所有测试序列的BD-rate均为负值,而且BD-rate为负时表示性能变好。在此基础上,BD-rate的绝对值越大,则性能的增益越大。As can be seen from Table 1 above, the BD-rates of all test sequences are negative, and when the BD-rate is negative, the performance is improved. On this basis, the greater the absolute value of BD-rate, the greater the performance gain.
本实施例提供了一种预测方法,通过上述实施例对前述实施例的具体实现进行了详细阐述,从中可以看出,本申请在根据几何空间关系进行属性预测时,扩大了邻居搜索范围,充分利用了相邻点的空间相关性。与相关技术相比,本申请的技术方案更大程度上利用了点云的空间相关性,在PSNR性能保持甚至略好的情况下,减少了输出的二进制码流从而能够降低码率,进而提高编码效率。This embodiment provides a prediction method. The specific implementation of the foregoing embodiment is described in detail through the foregoing embodiment. It can be seen from this that the present application expands the neighbor search range when performing attribute prediction according to the geometric space relationship, and fully The spatial correlation of adjacent points is exploited. Compared with the related art, the technical solution of the present application utilizes the spatial correlation of the point cloud to a greater extent, and under the condition that the PSNR performance is maintained or even slightly better, the output binary code stream can be reduced, so that the code rate can be reduced, thereby improving the performance. coding efficiency.
本申请的又一实施例中,本申请实施例提供的预测方法应用于视频解码设备,即点云解码器(或称 为PCRM解码器),本申请实施例也可以简称为解码器。该方法所实现的功能可以通过解码器中的第二处理器调用计算机程序来实现,当然计算机程序可以保存在第二存储器中,可见,解码器至少包括第二处理器和第二存储器。In another embodiment of the present application, the prediction method provided by the embodiment of the present application is applied to a video decoding device, that is, a point cloud decoder (or referred to as a PCRM decoder), and the embodiment of the present application may also be referred to as a decoder for short. The functions implemented by the method can be implemented by calling a computer program by the second processor in the decoder. Of course, the computer program can be stored in the second memory. It can be seen that the decoder includes at least the second processor and the second memory.
参见图7,其示出了本申请实施例提供的又一种预测方法的流程示意图。如图7所示,该方法可以包括:Referring to FIG. 7 , it shows a schematic flowchart of another prediction method provided by an embodiment of the present application. As shown in Figure 7, the method may include:
S701:确定当前节点的N个待搜索邻居节点。S701: Determine N neighbor nodes to be searched for the current node.
需要说明的是,在点云中,点可以是点云中的所有点,也可以是点云中的部分点,这些点在空间上相对集中。这里,当前节点也可以称为当前点或者当前块,具体是指点云中当前待解码的点或者块。It should be noted that, in a point cloud, a point can be all points in the point cloud, or some points in the point cloud, and these points are relatively concentrated in space. Here, the current node may also be referred to as the current point or the current block, and specifically refers to the point or block currently to be decoded in the point cloud.
还需要说明的是,基于图1B所示的PCRM解码器的框架,本申请实施例的方法主要应用于“属性重建”部分,针对目前的相关技术中基于邻居搜索范围的属性预测进行优化,通过扩大邻居搜索范围,以提升对空间相关性的利用程度。It should also be noted that, based on the framework of the PCRM decoder shown in FIG. 1B , the method in the embodiment of the present application is mainly applied to the “attribute reconstruction” part, and is optimized for the attribute prediction based on the neighbor search range in the current related art, through Expand the neighbor search range to improve the utilization of spatial correlation.
可以理解,N个待搜索邻居节点是从当前节点的邻居信息中选取得到的。在一些实施例中,所述确定当前节点的N个待搜索邻居节点,可以包括:It can be understood that the N neighbor nodes to be searched are selected from the neighbor information of the current node. In some embodiments, the determining the N neighbor nodes to be searched for the current node may include:
对点云进行空间划分,得到至少一个点;Perform spatial division on the point cloud to obtain at least one point;
基于所述当前节点的几何位置,从所述至少一个点中确定所述当前节点的邻居信息;determining the neighbor information of the current node from the at least one point based on the geometric position of the current node;
从所述当前节点的邻居信息中,确定所述N个待搜索邻居节点。From the neighbor information of the current node, the N neighbor nodes to be searched are determined.
在本申请实施例中,所述当前节点的邻居信息可以包括:与所述当前节点共面的六个邻居节点、与所述当前节点共线的十二个邻居节点和与所述当前节点共点的八个邻居节点。In this embodiment of the present application, the neighbor information of the current node may include: six neighbor nodes coplanar with the current node, twelve neighbor nodes colinear with the current node, and The eight neighbor nodes of the point.
进一步地,所述从所述当前节点的邻居信息中,确定所述N个待搜索邻居节点,可以包括:Further, the determining the N neighbor nodes to be searched from the neighbor information of the current node may include:
将与所述当前节点共面的六个邻居节点中一定已解码的三个邻居节点确定为三个待搜索邻居节点,将与所述当前节点共线的十二个邻居节点中一定已解码的三个邻居节点确定为三个待搜索邻居节点;Three neighbor nodes that must have been decoded in the six neighbor nodes that are coplanar with the current node are determined as three neighbor nodes to be searched, and the twelve neighbor nodes that are collinear with the current node must have been decoded. Three neighbor nodes are determined as three neighbor nodes to be searched;
基于所述当前节点与邻居节点之间的几何空间关系,将与所述当前节点共线的剩余九个邻居节点中可能已解码的n个邻居节点确定为n个待搜索邻居节点,n为大于0且小于9的整数;Based on the geometric space relationship between the current node and the neighbor nodes, n neighbor nodes that may have been decoded among the remaining nine neighbor nodes collinear with the current node are determined as the n neighbor nodes to be searched, where n is greater than an integer of 0 and less than 9;
将得到的(6+n)个待搜索邻居节点确定为所述N个待搜索邻居节点。The obtained (6+n) neighbor nodes to be searched are determined as the N neighbor nodes to be searched.
需要说明的是,在这26个邻居节点中,目前的相关技术是仅将能够确定一定已解码的六个邻居节点组成邻居搜索范围。具体地,如图3A所示,在与当前节点共面的六个邻居节点中,只有与当前节点的左侧面、前侧面和下侧面共面的三个邻居节点(分别用3、5、6填充)是能够确定一定已解码过。如图3B所示,在与当前节点共线的十二个邻居节点中,也只有在与当前节点的左、前、下方向共线的三个邻居节点(分别用1、2、4填充)是能够确定一定已解码过。It should be noted that, among the 26 neighbor nodes, in the current related technology, only six neighbor nodes that can be determined to have been decoded are formed into a neighbor search range. Specifically, as shown in FIG. 3A, among the six neighbor nodes coplanar with the current node, there are only three neighbor nodes coplanar with the left side, front side, and lower side of the current node (respectively with 3, 5, 6 padding) is able to determine that it must have been decoded. As shown in Figure 3B, among the twelve neighbor nodes that are collinear with the current node, there are only three neighbor nodes that are collinear with the left, front, and bottom directions of the current node (filled with 1, 2, and 4, respectively) It can be determined that it must have been decoded.
在本申请实施例中,除了这能够确定一定已解码的六个邻居节点之外,本申请实施例扩大了邻居搜索范围。也就是说,基于当前节点与邻居节点之间的几何空间关系,将与当前节点共线的剩余九个邻居节点中可能已解码的n个邻居节点确定为n个待搜索邻居节点,从而使得扩大后的邻居搜索范围为(6+n)个待搜索邻居节点。这里,n为大于0且小于9的整数,即N为大于6的整数。In the embodiment of the present application, in addition to determining the six neighbor nodes that have been decoded, the embodiment of the present application expands the neighbor search range. That is to say, based on the geometric space relationship between the current node and the neighbor nodes, the n neighbor nodes that may have been decoded among the remaining nine neighbor nodes collinear with the current node are determined as the n neighbor nodes to be searched, so that the expansion The subsequent neighbor search range is (6+n) neighbor nodes to be searched. Here, n is an integer greater than 0 and less than 9, that is, N is an integer greater than 6.
还需要注意的是,在扩大邻居搜索范围的过程中,由于与当前节点共面的剩下三个邻居节点是能够确定一定没有已解码过的,所以不作考虑;与当前节点共点的八个邻居节点也是能够确定一定没有已解码过的,所以也不作考虑;而与当前节点共线的剩下九个邻居节点中其中三个邻居节点是能够确定一定没有已解码过的,所以在本申请实施例的一种具体示例中,n为大于0且小于或等于6的整数。It should also be noted that in the process of expanding the neighbor search range, since the remaining three neighbor nodes that are coplanar with the current node can be sure that they have not been decoded, they are not considered; Neighbor nodes can also determine that they must not have been decoded, so they are not considered; and three of the remaining nine neighbor nodes that are collinear with the current node can determine that they must not have been decoded. Therefore, in this application In a specific example of the embodiment, n is an integer greater than 0 and less than or equal to 6.
在本申请实施例的另一种具体示例中,N为大于6且小于或等于12的整数。在本申请实施例的又一种具体示例中,N的取值可以为12。In another specific example of the embodiment of the present application, N is an integer greater than 6 and less than or equal to 12. In another specific example of the embodiment of the present application, the value of N may be 12.
进一步地,在一些实施例中,该方法还可以包括:解析码流,获取N的取值。Further, in some embodiments, the method may further include: parsing the code stream to obtain the value of N.
这样,由于编码器将N的取值写入码流,使得解码器可以直接解析码流,以获得待搜索邻居节点的数量(N的取值),从而使得编码器和解码器的邻居搜索范围保持一致。In this way, since the encoder writes the value of N into the code stream, the decoder can directly parse the code stream to obtain the number of neighbor nodes to be searched (the value of N), thereby making the neighbor search range of the encoder and decoder be consistent.
还应理解,在确定出当前节点的N个待搜索邻居节点后,还需进一步确定出这N个待搜索邻居节点的莫顿码。在一些实施例中,在确定当前节点的N个待搜索邻居节点之后,该方法还可包括:It should also be understood that after the N neighbor nodes to be searched of the current node are determined, the Morton codes of the N neighbor nodes to be searched need to be further determined. In some embodiments, after determining the N neighbor nodes to be searched for the current node, the method may further include:
确定当前节点的基准点;Determine the reference point of the current node;
对所述基准点与所述N个待搜索邻居节点之间的坐标信息进行差值计算,得到N个坐标差值;Perform difference calculation on the coordinate information between the reference point and the N neighbor nodes to be searched to obtain N coordinate difference values;
计算所述N个坐标差值的莫顿码,并将所述N个坐标差值的莫顿码存储在预设查找表中;calculating the Morton codes of the N coordinate differences, and storing the Morton codes of the N coordinate differences in a preset look-up table;
根据所述预设查找表,确定所述N个待搜索邻居节点的莫顿码。Morton codes of the N neighbor nodes to be searched are determined according to the preset lookup table.
需要说明的是,预设查找表是用于存储N个坐标差值的莫顿码。而N个坐标差值则是通过计算当前节点的基准点与N个待搜索邻居节点之间的坐标信息的差值得到的。It should be noted that the preset look-up table is a Morton code for storing N coordinate difference values. The N coordinate difference values are obtained by calculating the difference value of the coordinate information between the reference point of the current node and the N neighbor nodes to be searched.
对于当前节点的基准点来说,在一些实施例中,所述确定所述当前节点的基准点,可以包括:For the reference point of the current node, in some embodiments, the determining the reference point of the current node may include:
计算所述当前节点的莫顿码;calculating the Morton code of the current node;
根据所述当前节点的莫顿码,从所述当前节点的邻居信息中确定最小莫顿码对应的邻居节点;According to the Morton code of the current node, determine the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node;
将所述最小莫顿码对应的邻居节点确定为基准点。The neighbor node corresponding to the minimum Morton code is determined as the reference point.
进一步地,所述根据所述当前节点的莫顿码,从所述当前节点的邻居信息中确定最小莫顿码对应的邻居节点,可以包括:Further, determining the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node according to the Morton code of the current node may include:
根据所述当前节点的莫顿码,确定所述当前节点的坐标信息;Determine the coordinate information of the current node according to the Morton code of the current node;
基于所述当前节点的坐标信息,确定所述当前节点的邻居信息中至少一个邻居节点的莫顿码;determining the Morton code of at least one neighbor node in the neighbor information of the current node based on the coordinate information of the current node;
从所述至少一个邻居节点的莫顿码中选取最小莫顿码,得到所述最小莫顿码对应的邻居节点。A minimum Morton code is selected from Morton codes of the at least one neighbor node to obtain a neighbor node corresponding to the minimum Morton code.
在本申请实施例中,利用节点(或简称为“点”)的坐标信息可以得到对应于点云中每一点的莫顿码。这里,莫顿码可以将多维数据转化为一维数据编码,莫顿编码也可叫z-order code,因为其解码顺序也是按照空间z序。如此,在得到基准点之后,可以计算基准点与这N个待搜索邻居节点的坐标差值(offset),并将这N个坐标差值转换为N个莫顿码,然后将这N个莫顿码存储在预设查找表中。In the embodiment of the present application, the Morton code corresponding to each point in the point cloud can be obtained by using the coordinate information of the node (or simply referred to as "point"). Here, Morton code can convert multi-dimensional data into one-dimensional data encoding, and Morton code can also be called z-order code, because its decoding order is also in the spatial z order. In this way, after the reference point is obtained, the coordinate difference (offset) between the reference point and the N neighbor nodes to be searched can be calculated, and the N coordinate difference values can be converted into N Morton codes, and then the N Frames are stored in a preset lookup table.
进一步地,所述根据所述预设查找表,确定所述N个待搜索邻居节点的莫顿码,可以包括:Further, determining the Morton codes of the N neighbor nodes to be searched according to the preset lookup table may include:
确定基准点的莫顿码;Determine the Morton code of the reference point;
从所述预设查找表中,获取N个坐标差值的莫顿码;From the preset lookup table, obtain Morton codes of N coordinate differences;
对基准点的莫顿码和N个坐标差值的莫顿码进行计算,得到所述N个待搜索邻居节点的莫顿码。The Morton code of the reference point and the Morton code of N coordinate differences are calculated to obtain the Morton codes of the N neighbor nodes to be searched.
需要说明的是,从预设查找表中可以获取N个坐标差值的莫顿码,在确定出基准点的莫顿码后,可以对基准点的莫顿码和N个坐标差值的莫顿码进行计算,从而得到这N个待搜索邻居节点的莫顿码。It should be noted that the Morton codes of N coordinate differences can be obtained from the preset lookup table. After the Morton codes of the reference points are determined, the Morton codes of the reference points and the N coordinate differences can be analyzed. The frame code is calculated to obtain the Morton code of the N neighbor nodes to be searched.
这样,在得到这N个待搜索邻居节点的莫顿码之后,可以执行后续判断这些待搜索邻居节点是否存在的步骤。In this way, after obtaining the Morton codes of the N neighbor nodes to be searched, the subsequent steps of judging whether the neighbor nodes to be searched exist can be performed.
S702:若所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值。S702: If there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, obtain a first attribute reconstruction value of the coplanar neighbor node.
S703:若所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值。S703: If there is a collinear neighbor node that is collinear with the current node and has been decoded among the N neighbor nodes to be searched, obtain a second attribute reconstruction value of the collinear neighbor node.
S704:基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。S704: Determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
需要说明的是,由于点云的非均匀分布,这时候计算得到的待搜索邻居节点的莫顿码并不一定存在;因此还需要进一步确定这些点是否存在。It should be noted that due to the non-uniform distribution of point clouds, the Morton codes of the neighbor nodes to be searched that are calculated at this time do not necessarily exist; therefore, it is necessary to further determine whether these points exist.
在一种可能的实施方式中,在确定所述N个待搜索邻居节点的莫顿码之后,该方法还可包括:In a possible implementation manner, after determining the Morton codes of the N neighbor nodes to be searched, the method may further include:
遍历预设点云序列,判断所述预设点云序列是否存在第一待搜索邻居节点的莫顿码;Traverse the preset point cloud sequence, and determine whether the preset point cloud sequence has a Morton code of the first neighbor node to be searched;
若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;If the judgment result is yes, it is determined that the first neighbor node to be searched exists in the N neighbor nodes to be searched;
若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;If the judgment result is no, it is determined that the first neighbor node to be searched does not exist in the N neighbor nodes to be searched;
其中,所述第一待搜索邻居节点为所述N个待搜索邻居节点中的任意一个待搜索邻居节点。Wherein, the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
需要说明的是,预设点云序列中存储的是重构点云,即预设点云序列中的点均为已解码过的节点。对于预设点云序列而言,在一种具体的实施例中,该方法还可包括:It should be noted that what is stored in the preset point cloud sequence is the reconstructed point cloud, that is, the points in the preset point cloud sequence are all decoded nodes. For the preset point cloud sequence, in a specific embodiment, the method may further include:
确定包括所述当前节点的点云中至少一个点的莫顿码;determining a Morton code of at least one point in the point cloud comprising the current node;
将所述莫顿码按照由小到大的顺序排列,得到莫顿码序;Arrange the Morton codes in ascending order to obtain a Morton code sequence;
从莫顿码序中截取比当前节点的莫顿码小的莫顿码,并根据所截取的莫顿码得到所述预设点云序列。A Morton code smaller than the Morton code of the current node is intercepted from the Morton code sequence, and the preset point cloud sequence is obtained according to the intercepted Morton code.
需要说明的是,该点云包括有当前节点,计算点云中至少一个点的莫顿码,然后将莫顿码按照由小到大的顺序排列,得到莫顿码序;这时候从莫顿码序中截取比当前节点的莫顿码小的莫顿码,从而根据所截取的莫顿码可以得到预设点云序列,而且该预设点云序列中的每一节点均为已编码过的节点。还需要注意的是,本申请实施例也可以将莫顿码按照由大到小的顺序排列,得到一莫顿码序,但是仍然从莫顿码序中截取比当前节点的莫顿码小的莫顿码,以得到预设点云序列。It should be noted that the point cloud includes the current node, calculate the Morton code of at least one point in the point cloud, and then arrange the Morton codes in ascending order to obtain the Morton code sequence; The Morton code smaller than the Morton code of the current node is intercepted from the code sequence, so that a preset point cloud sequence can be obtained according to the intercepted Morton code, and each node in the preset point cloud sequence is encoded. node. It should also be noted that, in this embodiment of the present application, the Morton codes can also be arranged in descending order to obtain a Morton code sequence, but the Morton code sequence smaller than that of the current node is still intercepted from the Morton code sequence. Morton code to get preset point cloud sequence.
在另一种可能的实施方式中,在确定所述N个待搜索邻居节点的莫顿码之后,该方法还可包括:In another possible implementation manner, after determining the Morton codes of the N neighbor nodes to be searched, the method may further include:
判断第一待搜索邻居节点的莫顿码是否小于所述当前节点的莫顿码;Determine whether the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node;
若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;If the judgment result is yes, it is determined that the first neighbor node to be searched exists in the N neighbor nodes to be searched;
若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;If the judgment result is no, it is determined that the first neighbor node to be searched does not exist in the N neighbor nodes to be searched;
其中,所述第一待搜索邻居节点为所述N个待搜索邻居节点中的任意一个待搜索邻居节点。Wherein, the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
需要说明的是,在搜索邻居节点时,用于预测的邻居节点需要是已经遍历过的节点,而遍历的顺序是按莫顿码由小到大的顺序。因此,只有莫顿码比当前节点的莫顿码小的邻居节点才能够用于属性预测,如果找到的邻居节点的莫顿码比当前节点的莫顿码大,那么将不能作为参考邻居节点。换句话说,只有当第一待搜索邻居节点的莫顿码小于当前节点的莫顿码时,这时候可以确定出这N个待搜索邻居节点中存在该第一待搜索邻居节点,即该第一待搜索邻居节点为已解码过的节点;而当第一待搜索邻居节点的莫顿码大于当前节点的莫顿码时,这时候可以确定出这N个待搜索邻居节点中不存在该第一待搜索 邻居节点,即该第一待搜索邻居节点为没有解码过的节点,也即不能作为参考邻居节点用于属性预测。It should be noted that when searching for neighbor nodes, the neighbor nodes used for prediction need to be nodes that have been traversed, and the traversal order is in the order of Morton code from small to large. Therefore, only neighbor nodes whose Morton code is smaller than that of the current node can be used for attribute prediction. If the Morton code of the found neighbor node is larger than that of the current node, it cannot be used as a reference neighbor node. In other words, only when the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node, it can be determined that the first neighbor node to be searched exists among the N neighbor nodes to be searched, that is, the first neighbor node to be searched. The neighbor node to be searched is a decoded node; and when the Morton code of the first neighbor node to be searched is greater than the Morton code of the current node, it can be determined that the N neighbor nodes to be searched do not exist in the first neighbor node. Once the neighbor node to be searched, that is, the first neighbor node to be searched is a node that has not been decoded, that is, it cannot be used as a reference neighbor node for attribute prediction.
进一步地,在一些实施例中,当所述N个待搜索邻居节点中存在所述第一待搜索邻居节点时,该方法还可以包括:Further, in some embodiments, when the first neighbor node to be searched exists in the N neighbor nodes to be searched, the method may further include:
若所述第一待搜索邻居节点为所述当前节点的共面邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点;If the first neighbor node to be searched is a coplanar neighbor node of the current node, it is determined that there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
若所述第一待搜索邻居节点为所述当前节点的共线邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点。If the first neighbor node to be searched is a collinear neighbor node of the current node, it is determined that there is a collinear neighbor node that is collinear with the current node and has been decoded among the N neighbor nodes to be searched.
也就是说,如果N个待搜索邻居节点中存在第一待搜索邻居节点,这时候还需要判断第一邻居节点为共面邻居节点还是共线邻居节点。具体地,如果第一待搜索邻居节点为当前节点的共面邻居节点,那么可以确定这N个待搜索邻居节点中存在与当前节点共面且已解码的共面邻居节点;如果第一待搜索邻居节点为当前节点的共线邻居节点,那么可以确定这N个待搜索邻居节点中存在与当前节点共线且已解码的共线邻居节点。That is to say, if there is a first neighbor node to be searched among the N neighbor nodes to be searched, it is also necessary to judge whether the first neighbor node is a coplanar neighbor node or a collinear neighbor node at this time. Specifically, if the first neighbor node to be searched is a coplanar neighbor node of the current node, it can be determined that there are coplanar neighbor nodes that are coplanar with the current node and have been decoded in the N neighbor nodes to be searched; If the neighbor node is a collinear neighbor node of the current node, it can be determined that there is a collinear neighbor node that is collinear with the current node and has been decoded among the N neighbor nodes to be searched.
在本申请实施例中,距离越近,空间相关性越强。当前节点与共面邻居节点之间的距离值为1,当前节点与共线邻居节点之间的距离值为
Figure PCTCN2020133704-appb-000010
因此相对而言,共面邻居节点的空间相关性更强,本申请实施例可以优先判断这N个待搜索邻居节点中是否存在与当前节点共面且已解码的共面邻居节点。
In this embodiment of the present application, the closer the distance, the stronger the spatial correlation. The distance between the current node and the coplanar neighbor node is 1, and the distance between the current node and the collinear neighbor node is 1
Figure PCTCN2020133704-appb-000010
Therefore, relatively speaking, coplanar neighbor nodes have stronger spatial correlation, and in this embodiment of the present application, it is possible to preferentially determine whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched.
需要说明的是,本申请实施例还可以预先设置参考邻居节点的数量。在一些实施例中,该方法还可以包括:设置参考邻居节点的数量为K个,K为大于0且小于或等于N的整数。It should be noted that, in this embodiment of the present application, the number of reference neighbor nodes may also be preset. In some embodiments, the method may further include: setting the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
还需要说明的是,本申请实施例还可以在编码器侧将K的取值写入码流。在一些实施例中,该方法还可以包括:解析码流,获取K的取值;其中,K表示参考邻居节点的数量。It should also be noted that, in this embodiment of the present application, the value of K may also be written into the code stream on the encoder side. In some embodiments, the method may further include: parsing the code stream to obtain the value of K; where K represents the number of reference neighbor nodes.
这样,在这N个待搜索邻居节点中,当搜索到K个存在的邻居节点时,这时候可以停止搜索,直接利用所搜索得到的K个邻居节点进行属性预测,从而能够减少搜索复杂度。In this way, among the N neighbor nodes to be searched, when K existing neighbor nodes are searched, the search can be stopped at this time, and the K neighbor nodes obtained by the search can be directly used for attribute prediction, thereby reducing the search complexity.
其中,K的取值可以为3个,也可以为6个,甚至可以为8个或者其他个。在本申请实施例中,K的取值根据实际情况进行具体设定,这里不作任何限定。Wherein, the value of K may be 3, may also be 6, and may even be 8 or other values. In the embodiment of the present application, the value of K is specifically set according to the actual situation, and no limitation is made here.
在一种可能的实施方式中,当在N个待搜索邻居节点中搜索到存在的共面邻居节点已经满足K的需求时,这时候可以仅使用这K个共面邻居节点进行属性预测。在一些实施例中,该方法还可以包括:In a possible implementation manner, when it is found that the existing coplanar neighbor nodes in the N neighbor nodes to be searched already satisfy the requirement of K, at this time, only the K coplanar neighbor nodes can be used for attribute prediction. In some embodiments, the method may also include:
判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已解码的共面邻居节点;Determine whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
若所述N个待搜索邻居节点中存在K个与所述当前节点共面且已解码的共面邻居节点,则获取所述K个共面邻居节点的第一属性重建值;If there are K coplanar neighbor nodes that are coplanar with the current node and have been decoded in the N neighbor nodes to be searched, obtain the first attribute reconstruction value of the K coplanar neighbor nodes;
相应地,对于S704来说,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,可以包括:Correspondingly, for S704, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
对所述K个共面邻居节点的第一属性重建值进行均值计算,确定所述当前节点的属性预测值。Perform mean calculation on the first attribute reconstruction values of the K coplanar neighbor nodes to determine the attribute prediction value of the current node.
需要说明的是,在这N个待搜索邻居节点中搜索是否存在与当前节点共面且已解码的共面邻居节点,当搜索到K个存在的共面邻居节点时,这时候就可以停止搜索;然后获取这K个共面邻居节点的第一属性重建值,并通过对这K个共面邻居节点的第一属性重建值进行均值计算,可以得到当前节点的属性预测值。It should be noted that the N neighbor nodes to be searched are searched for whether there are coplanar neighbor nodes that are coplanar with the current node and have been decoded. When K existing coplanar neighbor nodes are found, the search can be stopped at this time. ; and then obtain the first attribute reconstruction value of the K coplanar neighbor nodes, and calculate the mean value of the first attribute reconstruction value of the K coplanar neighbor nodes to obtain the attribute prediction value of the current node.
在另一种可能的实施方式中,当在N个待搜索邻居节点中搜索到存在的共线邻居节点已经满足K的需求时,这时候可以仅使用这K个共线邻居节点进行属性预测。在一些实施例中,该方法还可包括:In another possible implementation, when it is found that the existing collinear neighbor nodes in the N neighbor nodes to be searched already satisfy the requirement of K, at this time, only the K collinear neighbor nodes can be used for attribute prediction. In some embodiments, the method may further include:
判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已解码的共线邻居节点;Determine whether there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched;
若所述N个待搜索邻居节点中存在K个与所述当前节点共线且已解码的共线邻居节点,则获取所述K个共线邻居节点的第二属性重建值;If there are K collinear neighbor nodes that are collinear with the current node and have been decoded in the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the K collinear neighbor nodes;
相应地,对于S704来说,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,可以包括:Correspondingly, for S704, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
对所述K个共线邻居节点的第二属性重建值进行均值计算,确定所述当前节点的属性预测值。Perform mean calculation on the second attribute reconstruction values of the K collinear neighbor nodes to determine the attribute prediction value of the current node.
需要说明的是,在这N个待搜索邻居节点中搜索是否存在与当前节点共线且已解码的共线邻居节点,当搜索到K个存在的共线邻居节点时,这时候就可以停止搜索;然后获取这K个共线邻居节点的第二属性重建值,并通过对这K个共线邻居节点的第二属性重建值进行均值计算,可以得到当前节点的属性预测值。It should be noted that the N neighbor nodes to be searched are searched for whether there are collinear neighbor nodes that are collinear with the current node and have been decoded. When K existing collinear neighbor nodes are searched, the search can be stopped at this time. ; and then obtain the second attribute reconstruction value of the K collinear neighbor nodes, and calculate the mean value of the second attribute reconstruction value of the K collinear neighbor nodes to obtain the attribute prediction value of the current node.
在又一种可能的实施方式中,考虑到共面邻居节点的空间相关性更强,需要先搜索是否存在共面邻居节点,再搜索是否存在共线邻居节点。In another possible implementation manner, considering that the coplanar neighbor nodes have stronger spatial correlation, it is necessary to first search whether there are coplanar neighbor nodes, and then search whether there are collinear neighbor nodes.
当在N个待搜索邻居节点中没有搜索到存在的共面邻居节点但是搜索到存在的共线邻居节点已经满足K的需求时,这时候也可以仅使用这K个共线邻居节点进行属性预测。在一些实施例中,该方法还可以包括:When no existing coplanar neighbor nodes are found in the N neighbor nodes to be searched, but the existing collinear neighbor nodes are found to meet the requirements of K, at this time, only the K collinear neighbor nodes can be used for attribute prediction. . In some embodiments, the method may also include:
判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已解码的共面邻居节点;Determine whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
若所述N个待搜索邻居节点中不存在与所述当前节点共面且已解码的共面邻居节点,则判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已解码的共线邻居节点;If there is no coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, it is judged whether there is a coplanar neighbor node that is collinear with the current node and has been decoded among the N neighbor nodes to be searched. Decoded collinear neighbor nodes;
若所述N个待搜索邻居节点中存在K个与所述当前节点共线且已解码的共线邻居节点,则获取所述K个共线邻居节点的第二属性重建值;If there are K collinear neighbor nodes that are collinear with the current node and have been decoded in the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the K collinear neighbor nodes;
相应地,对于S704来说,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,可以包括:Correspondingly, for S704, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
对所述K个共线邻居节点的第二属性重建值进行均值计算,确定所述当前节点的属性预测值。Perform mean calculation on the second attribute reconstruction values of the K collinear neighbor nodes to determine the attribute prediction value of the current node.
需要说明的是,首先在这N个待搜索邻居节点中搜索是否存在与当前节点共面且已解码的共面邻居节点,如果搜索到不存在共面邻居节点,那么需要继续在这N个待搜索邻居节点中搜索是否存在与当前节点共线且已解码的共线邻居节点,当搜索到K个存在的共线邻居节点时,这时候可以停止搜索,然后获取这K个共线邻居节点的第二属性重建值,并通过对这K个共线邻居节点的第二属性重建值进行均值计算,可以得到当前节点的属性预测值。It should be noted that, firstly, in the N neighbor nodes to be searched, it is searched whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded. Search the neighbor nodes to see if there are collinear neighbor nodes that are collinear with the current node and have been decoded. When K existing collinear neighbor nodes are searched, the search can be stopped at this time, and then the K collinear neighbor nodes can be obtained. The second attribute reconstruction value, and by performing mean calculation on the second attribute reconstruction value of the K collinear neighbor nodes, the attribute prediction value of the current node can be obtained.
这里,需要注意的是,如果在这N个待搜索邻居节点中搜索是否存在与当前节点共线且已解码的共线邻居节点时,只能搜索到k个存在的共线邻居节点,且k为大于0且小于K的整数,这时候可以通过对这k个共线邻居节点的第二属性重建值进行均值计算,以得到当前节点的属性预测值。Here, it should be noted that if the N neighbor nodes to be searched are searched for whether there are collinear neighbor nodes that are collinear with the current node and have been decoded, only k existing collinear neighbor nodes can be searched, and k is an integer greater than 0 and less than K. At this time, the predicted value of the attribute of the current node can be obtained by performing mean calculation on the reconstructed value of the second attribute of the k collinear neighbor nodes.
在又一种可能的实施方式中,当在N个待搜索邻居节点中搜索到M个存在的共面邻居节点但是M小于K时,这时候需要继续搜索L个存在的共线邻居节点,然后使用这M个共面邻居节点和L个共线邻居节点共同进行属性预测。在一些实施例中,该方法还可以包括:In yet another possible implementation, when M existing coplanar neighbor nodes are found in the N neighbor nodes to be searched, but M is less than K, it is necessary to continue to search for L existing colinear neighbor nodes, and then Use these M coplanar neighbor nodes and L collinear neighbor nodes to jointly perform attribute prediction. In some embodiments, the method may also include:
判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已解码的共面邻居节点;Determine whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
若所述N个待搜索邻居节点中存在M个与所述当前节点共面且已解码的共面邻居节点,则获取所述M个共面邻居节点的第一属性重建值,M为大于0且小于K的整数;If there are M coplanar neighbor nodes that are coplanar with the current node and have been decoded among the N neighbor nodes to be searched, obtain the first attribute reconstruction value of the M coplanar neighbor nodes, where M is greater than 0 and an integer less than K;
判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已解码的共线邻居节点;Determine whether there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched;
若所述N个待搜索邻居节点中存在L个与所述当前节点共线且已解码的共线邻居节点,则获取所述L个共线邻居节点的第二属性重建值;其中,L为大于0且小于或等于(K-M)的整数;If there are L collinear neighbor nodes that are collinear with the current node and have been decoded among the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the L collinear neighbor nodes; wherein, L is an integer greater than 0 and less than or equal to (K-M);
相应地,对于S704来说,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,可以包括:Correspondingly, for S704, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value may include:
对M个第一属性重建值和L个第二属性重建值进行加权计算,确定所述当前节点的属性预测值。A weighted calculation is performed on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node.
需要说明的是,首先在这N个待搜索邻居节点中搜索是否存在与当前节点共面且已解码的共面邻居节点,如果搜索到M个存在的共面邻居节点,但是M小于K,那么需要继续在这N个待搜索邻居节点中搜索是否存在与当前节点共线且已解码的共线邻居节点,当搜索到(K-M)个存在的共面邻居节点时,这时候可以停止搜索,然后获取这M个共面邻居节点的第一属性重建值和这(K-M)个共线邻居节点的第二属性重建值,并通过对这M个第一属性重建值和这(K-M)个第二属性重建值进行加权计算,可以得到当前节点的属性预测值。It should be noted that, firstly, the N neighbor nodes to be searched are searched for whether there are coplanar neighbor nodes that are coplanar with the current node and have been decoded. If M existing coplanar neighbor nodes are found, but M is less than K, then It is necessary to continue to search the N neighbor nodes to be searched for whether there are collinear neighbor nodes that are collinear with the current node and have been decoded. When (K-M) existing coplanar neighbor nodes are found, the search can be stopped at this time, and then Obtain the first attribute reconstruction values of the M coplanar neighbor nodes and the second attribute reconstruction values of the (K-M) collinear neighbor nodes, and obtain the M first attribute reconstruction values and the (K-M) second attribute reconstruction values. The attribute reconstruction value is weighted to calculate the attribute prediction value of the current node.
这里,需要注意的是,如果在这N个待搜索邻居节点中搜索是否存在与当前节点共线且已解码的共线邻居节点时,只能搜索到L个存在的共线邻居节点,且L为大于0且小于或等于(K-M)的整数,这时候可以通过对这M个第一属性重建值和这L个第二属性重建值进行加权计算,以得到当前节点的属性预测值。Here, it should be noted that if the N neighbor nodes to be searched are searched for whether there are collinear neighbor nodes that are collinear with the current node and have been decoded, only L existing collinear neighbor nodes can be searched, and L is an integer greater than 0 and less than or equal to (K-M), at this time, the attribute prediction value of the current node can be obtained by performing weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values.
进一步地,在一些实施例中,所述对所述M个第一属性重建值和所述L个第二属性重建值进行加权计算,确定所述当前节点的属性预测值,可以包括:Further, in some embodiments, the performing weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node may include:
确定所述M个第一属性重建值对应的第一权重值和所述L个第二属性重建值对应的第二权重值;determining the first weight values corresponding to the M first attribute reconstruction values and the second weight values corresponding to the L second attribute reconstruction values;
根据所述M个第一属性重建值及对应的所述第一权重值和所述L个第二属性重建值及对应的所述第二权重值进行加权均值计算,得到所述当前节点的属性预测值。Perform a weighted average calculation according to the M first attribute reconstruction values and the corresponding first weight values and the L second attribute reconstruction values and the corresponding second weight values to obtain the attribute of the current node Predictive value.
需要说明的是,考虑到空间相关性的强度,本申请实施例中可以将第一权重值(即共面邻居节点的权重)设置为2,第二权重值(即共线邻居节点的权重)设置为1。具体可以根据式(2)进行加权计算,以得到当前节点的属性预测值。It should be noted that, in consideration of the strength of spatial correlation, in this embodiment of the present application, the first weight value (that is, the weight of the coplanar neighbor node) may be set to 2, and the second weight value (that is, the weight of the collinear neighbor node) Set to 1. Specifically, weighted calculation can be performed according to formula (2) to obtain the attribute prediction value of the current node.
除此之外,在N个待搜索邻居节点中既没有搜索到存在的共面邻居节点又没有搜索到存在的共面邻居节点时,这时候,在一些实施例中,该方法还可以包括:In addition, when neither an existing coplanar neighbor node nor an existing coplanar neighbor node is found in the N neighbor nodes to be searched, at this time, in some embodiments, the method may further include:
若所述N个待搜索邻居节点中不存在与所述当前节点共面且已解码的共面邻居节点且不存在与所述当前节点共线且已解码的共线邻居节点,则从所述莫顿码序中确定位于所述当前节点的莫顿码的前一个莫顿码,将所述前一个莫顿码对应的点的属性重建值确定为所述当前节点的属性预测值。If there is no coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, and there is no colinear neighbor node that is collinear with the current node and has been decoded, then In the Morton code sequence, the previous Morton code of the Morton code located at the current node is determined, and the attribute reconstruction value of the point corresponding to the previous Morton code is determined as the attribute prediction value of the current node.
也就是说,在N个待搜索邻居节点中既没有搜索到存在的共面邻居节点又没有搜索到存在的共面 邻居节点时,这时候可以直接利用莫顿码序中位于当前节点的莫顿码的前一个点的属性重建值作为当前节点的属性预测值。换句话说,在点云中的点,除了最开始的一个点不需要进行属性预测之外,其他点都是需要进行属性预测的。That is to say, when neither the existing coplanar neighbor nodes nor the existing coplanar neighbor nodes are found in the N neighbor nodes to be searched, the Morton code located at the current node in the Morton code sequence can be directly used at this time. The attribute reconstruction value of the previous point of the code is used as the attribute prediction value of the current node. In other words, for the points in the point cloud, except for the first point that does not need attribute prediction, all other points need attribute prediction.
如此,由于本申请实施例认为距离越近相关性最强,那么可以先搜索查找距离为1的共面邻居节点,如果存在,那么利用这些共面邻居节点的平均值作为预测值;或者,如果完全不存在共面邻居节点,那么也可以继续搜索查找距离为
Figure PCTCN2020133704-appb-000011
的共线邻居节点,利用这些共线邻居节点的平均值作为预测值;或者,如果存在共面邻居节点但是不满足预设参考邻居节点的数量,那么也可以继续搜索查找距离为
Figure PCTCN2020133704-appb-000012
的共线邻居节点,利用这些共面邻居节点和共线邻居节点的加权平均值作为预测值;如果上述这些邻居节点都不存在,那么这时候可以利用当前节点的莫顿码序的前一个点的属性重建值直接作为属性预测值。
In this way, since the embodiment of the present application considers that the closer the distance is, the stronger the correlation is, then a coplanar neighbor node with a distance of 1 may be searched first, and if it exists, the average value of these coplanar neighbor nodes is used as the predicted value; or, if If there is no coplanar neighbor node at all, then you can continue to search for a distance of
Figure PCTCN2020133704-appb-000011
The average value of these collinear neighbor nodes is used as the predicted value; or, if there are coplanar neighbor nodes but the preset number of reference neighbor nodes is not met, then the search can also be continued. The search distance is
Figure PCTCN2020133704-appb-000012
The collinear neighbor nodes of , use the weighted average of these coplanar neighbor nodes and the collinear neighbor nodes as the predicted value; if none of the above neighbor nodes exist, then the previous point of the Morton code sequence of the current node can be used at this time. The attribute reconstruction value of is directly used as the attribute prediction value.
本实施例提供了一种预测方法,通过确定当前节点的N个待搜索邻居节点;若所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;若所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。这样,在根据当前节点与邻居节点之间的几何空间关系进行属性预测时,由于扩大了邻居搜索范围(比如从相关技术中的6个待搜索邻居节点扩展到N个待搜索邻居节点),可以充分利用点云的空间相关性,使得预测残差更小,从而能够降低码率,进而提高解码效率。This embodiment provides a prediction method, by determining N neighbor nodes to be searched of the current node; if there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, then Obtain the first attribute reconstruction value of the coplanar neighbor node; if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched, then obtain the collinear neighbor node. second attribute reconstruction value; determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value. In this way, when the attribute prediction is performed according to the geometric space relationship between the current node and the neighbor nodes, due to the expansion of the neighbor search range (for example, from 6 neighbor nodes to be searched in the related art to N neighbor nodes to be searched), it is possible to Making full use of the spatial correlation of the point cloud makes the prediction residual smaller, which can reduce the bit rate and improve the decoding efficiency.
本申请的再一实施例中,基于前述实施例相同的发明构思,参见图8,其示出了本申请实施例提供的一种编码器80的组成结构示意图。如图8所示,该编码器80可以包括:第一确定单元801、第一判断单元802和第一预测单元803;其中,In yet another embodiment of the present application, based on the same inventive concept as the foregoing embodiments, see FIG. 8 , which shows a schematic structural diagram of an encoder 80 provided by an embodiment of the present application. As shown in FIG. 8 , the encoder 80 may include: a first determination unit 801, a first judgment unit 802 and a first prediction unit 803; wherein,
第一确定单元801,配置为确定当前节点的N个待搜索邻居节点;The first determining unit 801 is configured to determine the N neighbor nodes to be searched for the current node;
第一判断单元802,配置为若所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;The first judgment unit 802 is configured to obtain a first attribute reconstruction value of the coplanar neighbor node if there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
第一判断单元802,还配置为若所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;The first judging unit 802 is further configured to obtain a second attribute reconstruction value of the collinear neighbor node if there is a collinear neighbor node that is collinear with the current node and has been coded in the N neighbor nodes to be searched ;
第一预测单元803,配置为基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。The first prediction unit 803 is configured to determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
在一些实施例中,参见图8,编码器80还可以包括第一划分单元804,配置为对点云进行空间划分,得到至少一个点;In some embodiments, referring to FIG. 8 , the encoder 80 may further include a first dividing unit 804 configured to perform spatial division on the point cloud to obtain at least one point;
第一确定单元801,还配置为基于所述当前节点的几何位置,从所述至少一个点中确定所述当前节点的邻居信息;以及从所述当前节点的邻居信息中,确定所述N个待搜索邻居节点。The first determining unit 801 is further configured to, based on the geometric position of the current node, determine the neighbor information of the current node from the at least one point; and determine the N neighbor information from the neighbor information of the current node Neighbor node to be searched.
在一些实施例中,所述当前节点的邻居信息包括:与所述当前节点共面的六个邻居节点、与所述当前节点共线的十二个邻居节点和与所述当前节点共点的八个邻居节点。In some embodiments, the neighbor information of the current node includes: six neighbor nodes coplanar with the current node, twelve neighbor nodes collinear with the current node, and co-located with the current node Eight neighbor nodes.
在一些实施例中,第一确定单元801,具体配置为将与所述当前节点共面的六个邻居节点中一定已编码的三个邻居节点确定为三个待搜索邻居节点,将与所述当前节点共线的十二个邻居节点中一定已编码的三个邻居节点确定为三个待搜索邻居节点;以及基于所述当前节点与邻居节点之间的几何空间关系,将与所述当前节点共线的剩余九个邻居节点中可能已编码的n个邻居节点确定为n个待搜索邻居节点,n为大于0且小于9的整数;以及将得到的(6+n)个待搜索邻居节点确定为所述N个待搜索邻居节点。In some embodiments, the first determining unit 801 is specifically configured to determine three neighbor nodes that must have been encoded among the six neighbor nodes coplanar with the current node as the three neighbor nodes to be searched, Among the twelve neighbor nodes collinear with the current node, three neighbor nodes that must have been encoded are determined as three neighbor nodes to be searched; and based on the geometric space relationship between the current node and the neighbor nodes, the The n neighbor nodes that may have been encoded in the remaining nine neighbor nodes that are collinear are determined as n neighbor nodes to be searched, n is an integer greater than 0 and less than 9; and the obtained (6+n) neighbor nodes to be searched It is determined as the N neighbor nodes to be searched.
在一些实施例中,N为大于6的整数。In some embodiments, N is an integer greater than 6.
在一些实施例中,参见图8,编码器80还可以包括第一计算单元805;In some embodiments, referring to FIG. 8 , the encoder 80 may further include a first computing unit 805;
第一确定单元801,还配置为确定所述当前节点的基准点;The first determining unit 801 is further configured to determine the reference point of the current node;
第一计算单元805,配置为对所述基准点与所述N个待搜索邻居节点之间的坐标信息进行差值计算,得到N个坐标差值;以及计算所述N个坐标差值的莫顿码,并将所述N个坐标差值的莫顿码存储在预设查找表中;The first calculation unit 805 is configured to perform difference calculation on the coordinate information between the reference point and the N neighbor nodes to be searched to obtain N coordinate difference values; and a method for calculating the N coordinate difference values. frame code, and the Morton code of the N coordinate differences is stored in a preset look-up table;
第一确定单元801,还配置为根据所述预设查找表,确定所述N个待搜索邻居节点的莫顿码。The first determining unit 801 is further configured to determine Morton codes of the N neighbor nodes to be searched according to the preset lookup table.
在一些实施例中,第一计算单元805,还配置为计算所述当前节点的莫顿码;In some embodiments, the first calculation unit 805 is further configured to calculate the Morton code of the current node;
第一确定单元801,还配置为根据所述当前节点的莫顿码,从所述当前节点的邻居信息中确定最小莫顿码对应的邻居节点;以及将所述最小莫顿码对应的邻居节点确定为基准点。The first determining unit 801 is further configured to, according to the Morton code of the current node, determine the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node; and determine the neighbor node corresponding to the smallest Morton code Determined as the reference point.
在一些实施例中,第一确定单元801,具体配置为根据当前节点的莫顿码,确定所述当前节点的坐标信息;以及基于所述当前节点的坐标信息,确定所述当前节点的邻居信息中至少一个邻居节点的莫顿码;以及从所述至少一个邻居节点的莫顿码中选取最小莫顿码,得到所述最小莫顿码对应的邻居节点。In some embodiments, the first determining unit 801 is specifically configured to determine the coordinate information of the current node according to the Morton code of the current node; and determine the neighbor information of the current node based on the coordinate information of the current node and selecting the smallest Morton code from the Morton codes of the at least one neighbor node to obtain the neighbor node corresponding to the smallest Morton code.
在一些实施例中,第一确定单元801,还配置为确定所述基准点的莫顿码;In some embodiments, the first determining unit 801 is further configured to determine the Morton code of the reference point;
第一计算单元805,还配置为从所述预设查找表中,获取所述N个坐标差值的莫顿码;以及对所述 基准点的莫顿码和所述N个坐标差值的莫顿码进行计算,得到所述N个待搜索邻居节点的莫顿码。The first calculation unit 805 is further configured to obtain the Morton code of the N coordinate difference values from the preset lookup table; and the Morton code of the reference point and the N coordinate difference values. The Morton code is calculated to obtain the Morton codes of the N neighbor nodes to be searched.
在一些实施例中,第一判断单元802,还配置为遍历预设点云序列,判断所述预设点云序列是否存在第一待搜索邻居节点的莫顿码;In some embodiments, the first determination unit 802 is further configured to traverse a preset point cloud sequence, and determine whether the preset point cloud sequence has a Morton code of the first neighbor node to be searched;
第一确定单元801,还配置为若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;其中,所述第一待搜索邻居节点为N个待搜索邻居节点中的任意一个待搜索邻居节点。The first determining unit 801 is further configured to determine that the first neighbor node to be searched exists in the N neighbor nodes to be searched if the determination result is yes; and to determine the N neighbor nodes to be searched if the determination result is no The first neighbor node to be searched does not exist in the neighbor nodes; wherein, the first neighbor node to be searched is any one of the N neighbor nodes to be searched.
在一些实施例中,参见图8,编码器80还可以包括第一排序单元806;In some embodiments, referring to FIG. 8 , the encoder 80 may further include a first sorting unit 806;
第一确定单元801,还配置为确定包括所述当前节点的点云中至少一个点的莫顿码;The first determining unit 801 is further configured to determine the Morton code of at least one point in the point cloud including the current node;
第一排序单元806,配置为将所述莫顿码按照由小到大的顺序排列,得到莫顿码序;以及从所述莫顿码序中截取比所述当前节点的莫顿码小的莫顿码,并根据所截取的莫顿码得到所述预设点云序列。The first sorting unit 806 is configured to arrange the Morton codes in ascending order to obtain a Morton code sequence; and truncate a Morton code smaller than the current node's Morton code from the Morton code sequence Morton code, and obtain the preset point cloud sequence according to the intercepted Morton code.
在一些实施例中,第一判断单元802,还配置为判断第一待搜索邻居节点的莫顿码是否小于所述当前节点的莫顿码;In some embodiments, the first judgment unit 802 is further configured to judge whether the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node;
第一确定单元801,还配置为若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;其中,所述第一待搜索邻居节点为N个待搜索邻居节点中的任意一个待搜索邻居节点。The first determining unit 801 is further configured to determine that the first neighbor node to be searched exists in the N neighbor nodes to be searched if the determination result is yes; and to determine the N neighbor nodes to be searched if the determination result is no The first neighbor node to be searched does not exist in the neighbor nodes; wherein, the first neighbor node to be searched is any one of the N neighbor nodes to be searched.
在一些实施例中,第一确定单元801,还配置为当所述N个待搜索邻居节点中存在第一待搜索邻居节点时,若第一待搜索邻居节点为所述当前节点的共面邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点;若第一待搜索邻居节点为所述当前节点的共线邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点。In some embodiments, the first determining unit 801 is further configured to, when there is a first neighbor node to be searched in the N neighbor nodes to be searched, if the first neighbor node to be searched is a coplanar neighbor of the current node node, then determine that there is a coplanar neighbor node that is coplanar with the current node and has been coded in the N neighbor nodes to be searched; if the first neighbor node to be searched is the collinear neighbor node of the current node, then determine Among the N neighbor nodes to be searched, there is a collinear neighbor node that is collinear with the current node and has been coded.
在一些实施例中,参见图8,编码器80还可以包括写入单元807,配置为将N的取值写入码流。In some embodiments, referring to FIG. 8 , the encoder 80 may further include a writing unit 807 configured to write the value of N into the code stream.
在一些实施例中,参见图8,编码器80还可以包括第一设置单元808,配置为设置参考邻居节点的数量为K个,K为大于0且小于或等于N的整数。In some embodiments, referring to FIG. 8 , the encoder 80 may further include a first setting unit 808 configured to set the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
在一些实施例中,第一判断单元802,还配置为判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已编码的共面邻居节点;In some embodiments, the first judgment unit 802 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded among the N neighbor nodes to be searched;
第一确定单元801,还配置为若所述N个待搜索邻居节点中存在K个与所述当前节点共面且已编码的共面邻居节点,则获取所述K个共面邻居节点的第一属性重建值;The first determining unit 801 is further configured to obtain the first number of the K coplanar neighbor nodes if there are K coplanar neighbor nodes that are coplanar with the current node and have been encoded in the N neighbor nodes to be searched. an attribute reconstruction value;
第一预测单元803,具体配置为对所述K个共面邻居节点的第一属性重建值进行均值计算,确定所述当前节点的属性预测值。The first prediction unit 803 is specifically configured to perform mean value calculation on the first attribute reconstruction values of the K coplanar neighbor nodes, and determine the attribute prediction value of the current node.
在一些实施例中,第一判断单元802,还配置为判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已编码的共面邻居节点;以及若所述N个待搜索邻居节点中不存在与所述当前节点共面且已编码的共面邻居节点,则判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已编码的共线邻居节点;In some embodiments, the first judging unit 802 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been coded among the N neighbor nodes to be searched; and if the N neighbor nodes to be searched exist There is no coplanar neighbor node that is coplanar with the current node and has been coded in the search neighbor nodes, then judge whether there is a colinear neighbor node that is colinear with the current node and has been coded in the N neighbor nodes to be searched ;
第一确定单元801,还配置为若所述N个待搜索邻居节点中存在K个与所述当前节点共线且已编码的共线邻居节点,则获取所述K个共线邻居节点的第二属性重建值;The first determining unit 801 is further configured to obtain the first number of the K collinear neighbor nodes if there are K collinear neighbor nodes that are collinear with the current node and have been coded in the N neighbor nodes to be searched. Two attribute reconstruction value;
第一预测单元803,具体配置为对所述K个共线邻居节点的第二属性重建值进行均值计算,确定所述当前节点的属性预测值。The first prediction unit 803 is specifically configured to perform mean calculation on the second attribute reconstruction values of the K collinear neighbor nodes, and determine the attribute prediction value of the current node.
在一些实施例中,第一判断单元802,还配置为判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已编码的共面邻居节点;In some embodiments, the first judgment unit 802 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded among the N neighbor nodes to be searched;
第一确定单元801,还配置为若所述N个待搜索邻居节点中存在M个与所述当前节点共面且已编码的共面邻居节点,则获取所述M个共面邻居节点的第一属性重建值,M为大于0且小于K的整数;The first determining unit 801 is further configured to obtain the first number of the M coplanar neighbor nodes if there are M coplanar neighbor nodes that are coplanar with the current node and have been encoded in the N neighbor nodes to be searched. An attribute reconstruction value, M is an integer greater than 0 and less than K;
第一判断单元802,还配置为判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已编码的共线邻居节点;The first judging unit 802 is further configured to judge whether there is a collinear neighbor node that is collinear with the current node and has been coded in the N neighbor nodes to be searched;
第一确定单元801,还配置为若所述N个待搜索邻居节点中存在L个与所述当前节点共线且已编码的共线邻居节点,则获取所述L个共线邻居节点的第二属性重建值;其中,L为大于0且小于或等于(K-M)的整数;The first determining unit 801 is further configured to obtain the first number of the L collinear neighbor nodes if there are L collinear neighbor nodes that are collinear with the current node and have been coded in the N neighbor nodes to be searched. Two attribute reconstruction values; wherein, L is an integer greater than 0 and less than or equal to (K-M);
第一预测单元803,具体配置为对所述M个第一属性重建值和所述L个第二属性重建值进行加权计算,确定所述当前节点的属性预测值。The first prediction unit 803 is specifically configured to perform weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values, and determine the attribute prediction value of the current node.
在一些实施例中,写入单元807,还配置为将K的取值写入码流。In some embodiments, the writing unit 807 is further configured to write the value of K into the code stream.
在一些实施例中,第一预测单元803,还配置为若所述N个待搜索邻居节点中不存在与所述当前节点共面且已编码的共面邻居节点且不存在与所述当前节点共线且已编码的共线邻居节点,则从所述莫顿码序中确定位于所述当前节点的莫顿码的前一个莫顿码,将所述前一个莫顿码对应的点的属性重建值确定为所述当前节点的属性预测值。In some embodiments, the first prediction unit 803 is further configured to: if there is no coplanar neighbor node coplanar with the current node and has been coded among the N neighbor nodes to be searched, and there is no coplanar neighbor node that is coplanar with the current node If there are collinear and coded collinear neighbor nodes, the Morton code before the Morton code located at the current node is determined from the Morton code sequence, and the attribute of the point corresponding to the previous Morton code is determined. The reconstructed value is determined as the attribute prediction value of the current node.
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。It can be understood that, in the embodiments of the present application, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, and it may also be non-modular. Moreover, each component in this embodiment may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit. The above-mentioned integrated units can be implemented in the form of hardware, or can be implemented in the form of software function modules.
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment is essentially or The part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product, the computer software product is stored in a storage medium, and includes several instructions for making a computer device (which can be It is a personal computer, a server, or a network device, etc.) or a processor (processor) that executes all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes: U disk, mobile hard disk, read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program codes.
因此,本申请实施例提供了一种计算机存储介质,应用于编码器80,该计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现前述实施例中任一项所述的方法。Therefore, an embodiment of the present application provides a computer storage medium, which is applied to the encoder 80, where the computer storage medium stores a computer program, and when the computer program is executed by the first processor, any one of the foregoing embodiments is implemented. Methods.
基于上述编码器80的组成以及计算机存储介质,参见图9,其示出了本申请实施例提供的编码器80的具体硬件结构示意图。如图9所示,可以包括:第一通信接口901、第一存储器902和第一处理器903;各个组件通过第一总线系统904耦合在一起。可理解,第一总线系统904用于实现这些组件之间的连接通信。第一总线系统904除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为第一总线系统904。其中,Based on the composition of the encoder 80 and the computer storage medium described above, see FIG. 9 , which shows a schematic diagram of a specific hardware structure of the encoder 80 provided by the embodiment of the present application. As shown in FIG. 9 , it may include: a first communication interface 901 , a first memory 902 and a first processor 903 ; each component is coupled together through a first bus system 904 . It can be understood that the first bus system 904 is used to realize the connection and communication between these components. In addition to the data bus, the first bus system 904 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, the various buses are labeled as the first bus system 904 in FIG. 9 . in,
第一通信接口901,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;The first communication interface 901 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
第一存储器902,用于存储能够在第一处理器903上运行的计算机程序;a first memory 902 for storing a computer program that can run on the first processor 903;
第一处理器903,用于在运行所述计算机程序时,执行:The first processor 903 is configured to, when running the computer program, execute:
确定当前节点的N个待搜索邻居节点;Determine the N neighbor nodes to be searched for the current node;
若所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;If there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched, acquiring the first attribute reconstruction value of the coplanar neighbor node;
若所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;If there is a collinear neighbor node that is collinear with the current node and has been encoded in the N neighbor nodes to be searched, acquiring the second attribute reconstruction value of the collinear neighbor node;
基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。An attribute prediction value of the current node is determined based on the first attribute reconstruction value and/or the second attribute reconstruction value.
可以理解,本申请实施例中的第一存储器902可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的第一存储器902旨在包括但不限于这些和任意其它适合类型的存储器。It can be understood that the first memory 902 in this embodiment of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Wherein, the non-volatile memory may be a read-only memory (Read-Only Memory, ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically programmable read-only memory (Erasable PROM, EPROM). Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory. Volatile memory may be Random Access Memory (RAM), which acts as an external cache. By way of illustration and not limitation, many forms of RAM are available, such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (Double Data Rate SDRAM, DDRSDRAM), enhanced synchronous dynamic random access memory (Enhanced SDRAM, ESDRAM), synchronous link dynamic random access memory (Synchlink DRAM, SLDRAM) And direct memory bus random access memory (Direct Rambus RAM, DRRAM). The first memory 902 of the systems and methods described herein is intended to include, but not be limited to, these and any other suitable types of memory.
而第一处理器903可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器903中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器903可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器902,第一处理器903读取第一存储器902中的信息,结合其硬件完成上述方法的步骤。The first processor 903 may be an integrated circuit chip with signal processing capability. In the implementation process, each step of the above-mentioned method may be completed by an integrated logic circuit of hardware in the first processor 903 or an instruction in the form of software. The above-mentioned first processor 903 can be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a ready-made programmable gate array (Field Programmable Gate Array, FPGA) Or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components. The methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like. The steps of the method disclosed in conjunction with the embodiments of the present application may be directly embodied as executed by a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules may be located in random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers and other storage media mature in the art. The storage medium is located in the first memory 902, and the first processor 903 reads the information in the first memory 902, and completes the steps of the above method in combination with its hardware.
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array, FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。It will be appreciated that the embodiments described herein may be implemented in hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more Application Specific Integrated Circuits (ASIC), Digital Signal Processing (DSP), Digital Signal Processing Device (DSP Device, DSPD), programmable Logic Device (Programmable Logic Device, PLD), Field-Programmable Gate Array (Field-Programmable Gate Array, FPGA), General Purpose Processor, Controller, Microcontroller, Microprocessor, Others for performing the functions described in this application electronic unit or a combination thereof. For a software implementation, the techniques described herein may be implemented through modules (eg, procedures, functions, etc.) that perform the functions described herein. Software codes may be stored in memory and executed by a processor. The memory can be implemented in the processor or external to the processor.
可选地,作为另一个实施例,第一处理器903还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。Optionally, as another embodiment, the first processor 903 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.
本实施例提供了一种编码器,该编码器可包括第一确定单元、第一判断单元和第一预测单元。这样,在根据当前节点与邻居节点之间的几何空间关系进行属性预测时,由于扩大了邻居搜索范围,可以充分利用点云的空间相关性,使得预测残差更小,从而能够降低码率,进而提高编码效率。This embodiment provides an encoder, and the encoder may include a first determination unit, a first judgment unit, and a first prediction unit. In this way, when the attribute prediction is performed according to the geometric spatial relationship between the current node and the neighbor nodes, due to the expansion of the neighbor search range, the spatial correlation of the point cloud can be fully utilized, so that the prediction residual is smaller, and the code rate can be reduced. Thus, the coding efficiency is improved.
本申请的再一实施例中,基于前述实施例相同的发明构思,参见图10,其示出了本申请实施例提供的一种解码器100的组成结构示意图。如图10所示,该解码器100可以包括:第二确定单元1001、第二判断单元1002和第二预测单元1003;其中,In yet another embodiment of the present application, based on the same inventive concept as the foregoing embodiments, see FIG. 10 , which shows a schematic structural diagram of a decoder 100 provided by an embodiment of the present application. As shown in FIG. 10, the decoder 100 may include: a second determination unit 1001, a second determination unit 1002, and a second prediction unit 1003; wherein,
第二确定单元1001,配置为确定当前节点的N个待搜索邻居节点;The second determining unit 1001 is configured to determine the N neighbor nodes to be searched for the current node;
第二判断单元1002,配置为若所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;The second judging unit 1002 is configured to obtain a first attribute reconstruction value of the coplanar neighbor node if there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
第二判断单元1002,还配置为若所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;The second judging unit 1002 is further configured to obtain a second attribute reconstruction value of the collinear neighbor node if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched ;
第二预测单元1003,配置为基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。The second prediction unit 1003 is configured to determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
在一些实施例中,参见图10,解码器100还可以包括第二划分单元1004,配置为对点云进行空间划分,得到至少一个点;In some embodiments, referring to FIG. 10 , the decoder 100 may further include a second dividing unit 1004 configured to perform spatial division on the point cloud to obtain at least one point;
第二确定单元1001,还配置为基于所述当前节点的几何位置,从所述至少一个点中确定所述当前节点的邻居信息;以及从所述当前节点的邻居信息中,确定所述N个待搜索邻居节点。The second determining unit 1001 is further configured to, based on the geometric position of the current node, determine the neighbor information of the current node from the at least one point; and determine the N neighbor information from the neighbor information of the current node Neighbor node to be searched.
在一些实施例中,所述当前节点的邻居信息包括:与所述当前节点共面的六个邻居节点、与所述当前节点共线的十二个邻居节点和与所述当前节点共点的八个邻居节点。In some embodiments, the neighbor information of the current node includes: six neighbor nodes coplanar with the current node, twelve neighbor nodes collinear with the current node, and co-located with the current node Eight neighbor nodes.
在一些实施例中,第二确定单元1001,具体配置为将与当前节点共面的六个邻居节点中一定已解码的三个邻居节点确定为三个待搜索邻居节点,将与当前节点共线的十二个邻居节点中一定已解码的三个邻居节点确定为三个待搜索邻居节点;以及基于当前节点与邻居节点之间的几何空间关系,将与当前节点共线的剩余九个邻居节点中可能已解码的n个邻居节点确定为n个待搜索邻居节点,n为大于0且小于9的整数;以及将得到的(6+n)个待搜索邻居节点确定为所述N个待搜索邻居节点。In some embodiments, the second determining unit 1001 is specifically configured to determine three neighbor nodes that must have been decoded among the six neighbor nodes coplanar with the current node as the three neighbor nodes to be searched, and will be collinear with the current node. The three neighbor nodes that must have been decoded among the twelve neighbor nodes of the The n neighbor nodes that may have been decoded in are determined as n neighbor nodes to be searched, and n is an integer greater than 0 and less than 9; and the obtained (6+n) neighbor nodes to be searched are determined as the N neighbor nodes to be searched neighbor node.
在一些实施例中,N为大于6的整数。In some embodiments, N is an integer greater than 6.
在一些实施例中,参见图10,解码器100还可以包括第二计算单元1005;In some embodiments, referring to FIG. 10 , the decoder 100 may further include a second computing unit 1005;
第二确定单元1001,还配置为确定所述当前节点的基准点;The second determining unit 1001 is further configured to determine the reference point of the current node;
第二计算单元1005,配置为对所述基准点与所述N个待搜索邻居节点之间的坐标信息进行差值计算,得到N个坐标差值;以及计算所述N个坐标差值的莫顿码,并将所述N个坐标差值的莫顿码存储在预设查找表中;The second calculation unit 1005 is configured to perform difference calculation on the coordinate information between the reference point and the N neighbor nodes to be searched to obtain N coordinate difference values; and a method for calculating the N coordinate difference values frame code, and the Morton code of the N coordinate differences is stored in a preset look-up table;
第二确定单元1001,还配置为根据所述预设查找表,确定所述N个待搜索邻居节点的莫顿码。The second determining unit 1001 is further configured to determine Morton codes of the N neighbor nodes to be searched according to the preset lookup table.
在一些实施例中,第二计算单元1005,还配置为计算所述当前节点的莫顿码;In some embodiments, the second calculation unit 1005 is further configured to calculate the Morton code of the current node;
第二确定单元1001,还配置为根据所述当前节点的莫顿码,从所述当前节点的邻居信息中确定最小莫顿码对应的邻居节点;以及将所述最小莫顿码对应的邻居节点确定为基准点。The second determining unit 1001 is further configured to, according to the Morton code of the current node, determine the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node; and determine the neighbor node corresponding to the smallest Morton code Determined as the reference point.
在一些实施例中,第二确定单元1001,具体配置为根据当前节点的莫顿码,确定所述当前节点的坐标信息;以及基于所述当前节点的坐标信息,确定所述当前节点的邻居信息中至少一个邻居节点的莫顿码;以及从所述至少一个邻居节点的莫顿码中选取最小莫顿码,得到所述最小莫顿码对应的邻居节点。In some embodiments, the second determining unit 1001 is specifically configured to determine the coordinate information of the current node according to the Morton code of the current node; and determine the neighbor information of the current node based on the coordinate information of the current node and selecting the smallest Morton code from the Morton codes of the at least one neighbor node to obtain the neighbor node corresponding to the smallest Morton code.
在一些实施例中,第二确定单元1001,还配置为确定所述基准点的莫顿码;In some embodiments, the second determining unit 1001 is further configured to determine the Morton code of the reference point;
第二计算单元1005,还配置为从所述预设查找表中,获取所述N个坐标差值的莫顿码;以及对所述基准点的莫顿码和所述N个坐标差值的莫顿码进行计算,得到所述N个待搜索邻居节点的莫顿码。The second calculation unit 1005 is further configured to obtain the Morton codes of the N coordinate difference values from the preset lookup table; and to obtain the Morton code of the reference point and the N coordinate difference values The Morton code is calculated to obtain the Morton codes of the N neighbor nodes to be searched.
在一些实施例中,第二判断单元1002,还配置为遍历预设点云序列,判断所述预设点云序列是否存在第一待搜索邻居节点的莫顿码;In some embodiments, the second determination unit 1002 is further configured to traverse a preset point cloud sequence, and determine whether the preset point cloud sequence has a Morton code of the first neighbor node to be searched;
第二确定单元1001,还配置为若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;其中,所述第一待搜索邻居节点为N个待搜索邻居节点中的任意一个待搜索邻居节点。The second determining unit 1001 is further configured to determine that the first neighbor node to be searched exists in the N neighbor nodes to be searched if the determination result is yes; and to determine the N neighbor nodes to be searched if the determination result is no The first neighbor node to be searched does not exist in the neighbor nodes; wherein, the first neighbor node to be searched is any one of the N neighbor nodes to be searched.
在一些实施例中,参见图10,解码器100还可以包括第二排序单元1006;In some embodiments, referring to FIG. 10 , the decoder 100 may further include a second sorting unit 1006;
第二确定单元1001,还配置为确定包括所述当前节点的点云中至少一个点的莫顿码;The second determining unit 1001 is further configured to determine the Morton code of at least one point in the point cloud including the current node;
第二排序单元1006,配置为将所述莫顿码按照由小到大的顺序排列,得到莫顿码序;以及从所述莫顿码序中截取比所述当前节点的莫顿码小的莫顿码,并根据所截取的莫顿码得到所述预设点云序列。The second sorting unit 1006 is configured to arrange the Morton codes in ascending order to obtain a Morton code sequence; and truncate a Morton code smaller than the current node's Morton code from the Morton code sequence Morton code, and obtain the preset point cloud sequence according to the intercepted Morton code.
在一些实施例中,第二判断单元1002,还配置为判断第一待搜索邻居节点的莫顿码是否小于所述当前节点的莫顿码;In some embodiments, the second judgment unit 1002 is further configured to judge whether the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node;
第二确定单元1001,还配置为若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;其中,所述第一待搜索邻居节点为N个待搜索邻居节点中的任意一个待搜索邻居节点。The second determining unit 1001 is further configured to determine that the first neighbor node to be searched exists in the N neighbor nodes to be searched if the determination result is yes; and to determine the N neighbor nodes to be searched if the determination result is no The first neighbor node to be searched does not exist in the neighbor nodes; wherein, the first neighbor node to be searched is any one of the N neighbor nodes to be searched.
在一些实施例中,第二确定单元1001,还配置为当所述N个待搜索邻居节点中存在第一待搜索邻居节点时,若第一待搜索邻居节点为所述当前节点的共面邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点;若第一待搜索邻居节点为所述当前节点的共线邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点。In some embodiments, the second determining unit 1001 is further configured to, when there is a first neighbor node to be searched in the N neighbor nodes to be searched, if the first neighbor node to be searched is a coplanar neighbor of the current node node, then determine that there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched; if the first neighbor node to be searched is the collinear neighbor node of the current node, then determine Among the N neighbor nodes to be searched, there is a collinear neighbor node that is collinear with the current node and has been decoded.
在一些实施例中,参见图10,解码器100还可以包括解析单元1007,配置为解析码流,获取N的取值。In some embodiments, referring to FIG. 10 , the decoder 100 may further include a parsing unit 1007 configured to parse the code stream to obtain the value of N.
在一些实施例中,参见图10,解码器100还可以包括第二设置单元1008,配置为设置参考邻居节点的数量为K个,K为大于0且小于或等于N的整数。In some embodiments, referring to FIG. 10 , the decoder 100 may further include a second setting unit 1008 configured to set the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
在一些实施例中,解析单元1007,还配置为解析码流,获取K的取值;其中,K表示参考邻居节点的数量。In some embodiments, the parsing unit 1007 is further configured to parse the code stream to obtain the value of K, where K represents the number of reference neighbor nodes.
在一些实施例中,第二判断单元1002,还配置为判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已解码的共面邻居节点;In some embodiments, the second judgment unit 1002 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched;
第二确定单元1001,还配置为若所述N个待搜索邻居节点中存在K个与所述当前节点共面且已解码的共面邻居节点,则获取所述K个共面邻居节点的第一属性重建值;The second determining unit 1001 is further configured to obtain the first number of the K coplanar neighbor nodes if there are K coplanar neighbor nodes that are coplanar with the current node and have been decoded in the N neighbor nodes to be searched an attribute reconstruction value;
第二预测单元1003,具体配置为对所述K个共面邻居节点的第一属性重建值进行均值计算,确定所述当前节点的属性预测值。The second predicting unit 1003 is specifically configured to perform mean calculation on the first attribute reconstruction values of the K coplanar neighbor nodes, and determine the attribute predicted value of the current node.
在一些实施例中,第二判断单元1002,还配置为判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已解码的共面邻居节点;以及若所述N个待搜索邻居节点中不存在与所述当前节点共面且已解码的共面邻居节点,则判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已解码的共线邻居节点;In some embodiments, the second judging unit 1002 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched; There is no coplanar neighbor node that is coplanar with the current node and has been decoded in the searched neighbor nodes, then judge whether there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched ;
第二确定单元1001,还配置为若所述N个待搜索邻居节点中存在K个与所述当前节点共线且已解码的共线邻居节点,则获取所述K个共线邻居节点的第二属性重建值;The second determining unit 1001 is further configured to obtain the first number of the K collinear neighbor nodes if there are K collinear neighbor nodes that are collinear with the current node and have been decoded in the N neighbor nodes to be searched Two attribute reconstruction value;
第二预测单元1003,具体配置为对所述K个共线邻居节点的第二属性重建值进行均值计算,确定所述当前节点的属性预测值。The second prediction unit 1003 is specifically configured to perform mean calculation on the second attribute reconstruction values of the K collinear neighbor nodes, and determine the attribute prediction value of the current node.
在一些实施例中,第二判断单元1002,还配置为判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已解码的共面邻居节点;In some embodiments, the second judgment unit 1002 is further configured to judge whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched;
第二确定单元1001,还配置为若所述N个待搜索邻居节点中存在M个与所述当前节点共面且已解码的共面邻居节点,则获取所述M个共面邻居节点的第一属性重建值,M为大于0且小于K的整数;The second determining unit 1001 is further configured to obtain the first number of the M coplanar neighbor nodes if there are M coplanar neighbor nodes that are coplanar with the current node and have been decoded among the N neighbor nodes to be searched. An attribute reconstruction value, M is an integer greater than 0 and less than K;
第二判断单元1002,还配置为判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已解码的共线邻居节点;The second judging unit 1002 is further configured to judge whether there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched;
第二确定单元1001,还配置为若所述N个待搜索邻居节点中存在L个与所述当前节点共线且已解码的共线邻居节点,则获取所述L个共线邻居节点的第二属性重建值;其中,L为大于0且小于或等于(K-M)的整数;The second determining unit 1001 is further configured to obtain the first number of the L collinear neighbor nodes if there are L collinear neighbor nodes that are collinear with the current node and have been decoded among the N neighbor nodes to be searched. Two attribute reconstruction values; wherein, L is an integer greater than 0 and less than or equal to (K-M);
第二预测单元1003,具体配置为对所述M个第一属性重建值和所述L个第二属性重建值进行加权计算,确定所述当前节点的属性预测值。The second prediction unit 1003 is specifically configured to perform weighted calculation on the M first attribute reconstruction values and the L second attribute reconstruction values, and determine the attribute prediction value of the current node.
在一些实施例中,第二预测单元1003,还配置为若所述N个待搜索邻居节点中不存在与所述当前节点共面且已解码的共面邻居节点且不存在与所述当前节点共线且已解码的共线邻居节点,则从所述莫顿码序中确定位于所述当前节点的莫顿码的前一个莫顿码,将所述前一个莫顿码对应的点的属性重建值确定为所述当前节点的属性预测值。In some embodiments, the second prediction unit 1003 is further configured to: if there is no coplanar neighbor node coplanar with the current node and decoded and there is no coplanar neighbor node with the current node in the N neighbor nodes to be searched If the collinear neighbor node is collinear and has been decoded, the Morton code before the Morton code located at the current node is determined from the Morton code sequence, and the attribute of the point corresponding to the previous Morton code is determined. The reconstructed value is determined as the attribute prediction value of the current node.
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。It can be understood that, in this embodiment, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, and it may also be non-modular. Moreover, each component in this embodiment may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit. The above-mentioned integrated units can be implemented in the form of hardware, or can be implemented in the form of software function modules.
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例提供了一种计算机存储介质,应用于解码 器100,该计算机存储介质存储有计算机程序,所述计算机程序被第二处理器执行时实现前述实施例中任一项所述的方法。If the integrated unit is implemented in the form of a software functional module and is not sold or used as an independent product, it may be stored in a computer-readable storage medium. Based on such understanding, this embodiment provides a computer storage medium, which is applied to the decoder 100, where the computer storage medium stores a computer program, and when the computer program is executed by the second processor, any one of the foregoing embodiments is implemented the method described.
基于上述解码器100的组成以及计算机存储介质,参见图11,其示出了本申请实施例提供的解码器100的具体硬件结构示意图。如图11所示,可以包括:第二通信接口1101、第二存储器1102和第二处理器1103;各个组件通过第二总线系统1104耦合在一起。可理解,第二总线系统1104用于实现这些组件之间的连接通信。第二总线系统1104除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为第二总线系统1104。其中,Based on the composition of the above-mentioned decoder 100 and the computer storage medium, see FIG. 11 , which shows a schematic diagram of a specific hardware structure of the decoder 100 provided by the embodiment of the present application. As shown in FIG. 11 , it may include: a second communication interface 1101 , a second memory 1102 and a second processor 1103 ; the various components are coupled together through a second bus system 1104 . It can be understood that the second bus system 1104 is used to realize the connection communication between these components. In addition to the data bus, the second bus system 1104 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, the various buses are labeled as the second bus system 1104 in FIG. 11 . in,
第二通信接口1101,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;The second communication interface 1101 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
第二存储器1102,用于存储能够在第二处理器1103上运行的计算机程序;a second memory 1102 for storing computer programs that can be executed on the second processor 1103;
第二处理器1103,用于在运行所述计算机程序时,执行:The second processor 1103 is configured to, when running the computer program, execute:
确定当前节点的N个待搜索邻居节点;Determine the N neighbor nodes to be searched for the current node;
若所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;If there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched, acquiring the reconstruction value of the first attribute of the coplanar neighbor node;
若所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;If there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched, acquiring the second attribute reconstruction value of the collinear neighbor node;
基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。An attribute prediction value of the current node is determined based on the first attribute reconstruction value and/or the second attribute reconstruction value.
可选地,作为另一个实施例,第二处理器1103还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。Optionally, as another embodiment, the second processor 1103 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.
可以理解,第二存储器1102与第一存储器902的硬件功能类似,第二处理器1103与第一处理器903的硬件功能类似;这里不再详述。It can be understood that the hardware functions of the second memory 1102 and the first memory 902 are similar, and the hardware functions of the second processor 1103 and the first processor 903 are similar; details are not described here.
本实施例提供了一种解码器,该解码器可包括第二确定单元、第二判断单元和第二预测单元。这样,在根据当前节点与邻居节点之间的几何空间关系进行属性预测时,由于扩大了邻居搜索范围,可以充分利用点云的空间相关性,使得预测残差更小,从而能够降低码率,进而提高解码效率。This embodiment provides a decoder, and the decoder may include a second determination unit, a second judgment unit, and a second prediction unit. In this way, when the attribute prediction is performed according to the geometric spatial relationship between the current node and the neighbor nodes, due to the expansion of the neighbor search range, the spatial correlation of the point cloud can be fully utilized, so that the prediction residual is smaller, and the code rate can be reduced. Thereby, the decoding efficiency is improved.
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。It should be noted that, in this application, the terms "comprising", "comprising" or any other variation thereof are intended to encompass non-exclusive inclusion, such that a process, method, article or device comprising a series of elements includes not only those elements , but also other elements not expressly listed or inherent to such a process, method, article or apparatus. Without further limitation, an element qualified by the phrase "comprising a..." does not preclude the presence of additional identical elements in a process, method, article or apparatus that includes the element.
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。The above-mentioned serial numbers of the embodiments of the present application are only for description, and do not represent the advantages or disadvantages of the embodiments.
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined under the condition of no conflict to obtain new method embodiments.
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。The features disclosed in the several product embodiments provided in this application can be combined arbitrarily without conflict to obtain a new product embodiment.
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。The features disclosed in several method or device embodiments provided in this application can be combined arbitrarily without conflict to obtain new method embodiments or device embodiments.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above are only specific embodiments of the present application, but the protection scope of the present application is not limited to this. should be covered within the scope of protection of this application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
工业实用性Industrial Applicability
本申请实施例中,在编码器侧,通过确定当前节点的N个待搜索邻居节点;若N个待搜索邻居节点中存在与当前节点共面且已编码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;若N个待搜索邻居节点中存在与当前节点共线且已编码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;基于所述第一属性重建值和/或所述第二属性重建值,确定当前节点的属性预测值。在解码器侧,通过确定当前节点的N个待搜索邻居节点;若所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;若所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。这样,在根据当前节点与邻居节点之间的几何空间关系进行属性预测时,由于扩大了邻居搜索范围,可以充分利用点云的空间相关性,使得预测残差更小,从而能够降低码率,进而提高编解码效率。In the embodiment of the present application, on the encoder side, the N neighbor nodes to be searched of the current node are determined; if there is a coplanar neighbor node that is coplanar with the current node and has been coded among the N neighbor nodes to be searched, obtain the The first attribute reconstruction value of the coplanar neighbor node; if there is a collinear neighbor node that is collinear with the current node and has been encoded in the N neighbor nodes to be searched, then the second attribute reconstruction value of the collinear neighbor node is obtained; based on The first attribute reconstruction value and/or the second attribute reconstruction value determine the attribute prediction value of the current node. On the decoder side, by determining the N neighbor nodes to be searched of the current node; if there is a coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, obtain the coplanar neighbor node. The first attribute reconstruction value of the neighbor node; if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the collinear neighbor node ; determining an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value. In this way, when the attribute prediction is performed according to the geometric spatial relationship between the current node and the neighbor nodes, due to the expansion of the neighbor search range, the spatial correlation of the point cloud can be fully utilized, so that the prediction residual is smaller, and the code rate can be reduced. Thus, the encoding and decoding efficiency is improved.

Claims (45)

  1. 一种预测方法,应用于编码器,所述方法包括:A prediction method, applied to an encoder, the method comprising:
    确定当前节点的N个待搜索邻居节点;Determine the N neighbor nodes to be searched for the current node;
    若所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;If there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched, acquiring the first attribute reconstruction value of the coplanar neighbor node;
    若所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;If there is a collinear neighbor node that is collinear with the current node and has been encoded in the N neighbor nodes to be searched, acquiring the second attribute reconstruction value of the collinear neighbor node;
    基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。An attribute prediction value of the current node is determined based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  2. 根据权利要求1所述的方法,其中,所述确定当前节点的N个待搜索邻居节点,包括:The method according to claim 1, wherein the determining the N neighbor nodes to be searched for the current node comprises:
    对点云进行空间划分,得到至少一个点;Perform spatial division on the point cloud to obtain at least one point;
    基于所述当前节点的几何位置,从所述至少一个点中确定所述当前节点的邻居信息;determining the neighbor information of the current node from the at least one point based on the geometric position of the current node;
    从所述当前节点的邻居信息中,确定所述N个待搜索邻居节点。From the neighbor information of the current node, the N neighbor nodes to be searched are determined.
  3. 根据权利要求2所述的方法,其中,所述当前节点的邻居信息包括:与所述当前节点共面的六个邻居节点、与所述当前节点共线的十二个邻居节点和与所述当前节点共点的八个邻居节点。The method according to claim 2, wherein the neighbor information of the current node comprises: six neighbor nodes coplanar with the current node, twelve neighbor nodes colinear with the current node, and The eight neighbor nodes that the current node has in common.
  4. 根据权利要求2所述的方法,其中,从所述当前节点的邻居信息中,确定所述N个待搜索邻居节点,包括:The method according to claim 2, wherein, from the neighbor information of the current node, determining the N neighbor nodes to be searched, comprising:
    将与所述当前节点共面的六个邻居节点中一定已编码的三个邻居节点确定为三个待搜索邻居节点,将与所述当前节点共线的十二个邻居节点中一定已编码的三个邻居节点确定为三个待搜索邻居节点;The three neighbor nodes that must have been encoded in the six neighbor nodes that are coplanar with the current node are determined as three neighbor nodes to be searched, and the twelve neighbor nodes that are collinear with the current node must be encoded. Three neighbor nodes are determined as three neighbor nodes to be searched;
    基于所述当前节点与邻居节点之间的几何空间关系,将与所述当前节点共线的剩余九个邻居节点中可能已编码的n个邻居节点确定为n个待搜索邻居节点,n为大于0且小于9的整数;Based on the geometric space relationship between the current node and the neighbor nodes, n neighbor nodes that may have been encoded in the remaining nine neighbor nodes collinear with the current node are determined as the n neighbor nodes to be searched, where n is greater than an integer of 0 and less than 9;
    将得到的(6+n)个待搜索邻居节点确定为所述N个待搜索邻居节点。The obtained (6+n) neighbor nodes to be searched are determined as the N neighbor nodes to be searched.
  5. 根据权利要求1所述的方法,其中,N为大于6的整数。The method of claim 1, wherein N is an integer greater than 6.
  6. 根据权利要求1所述的方法,其中,在所述确定当前节点的N个待搜索邻居节点之后,所述方法还包括:The method according to claim 1, wherein after said determining the N neighbor nodes to be searched for the current node, the method further comprises:
    确定所述当前节点的基准点;determining the reference point of the current node;
    对所述基准点与所述N个待搜索邻居节点之间的坐标信息进行差值计算,得到N个坐标差值;Perform difference calculation on the coordinate information between the reference point and the N neighbor nodes to be searched to obtain N coordinate difference values;
    计算所述N个坐标差值的莫顿码,并将所述N个坐标差值的莫顿码存储在预设查找表中;calculating the Morton codes of the N coordinate differences, and storing the Morton codes of the N coordinate differences in a preset look-up table;
    根据所述预设查找表,确定所述N个待搜索邻居节点的莫顿码。Morton codes of the N neighbor nodes to be searched are determined according to the preset lookup table.
  7. 根据权利要求6所述的方法,其中,所述确定所述当前节点的基准点,包括:The method according to claim 6, wherein the determining the reference point of the current node comprises:
    计算所述当前节点的莫顿码;calculating the Morton code of the current node;
    根据所述当前节点的莫顿码,从所述当前节点的邻居信息中确定最小莫顿码对应的邻居节点;According to the Morton code of the current node, determine the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node;
    将所述最小莫顿码对应的邻居节点确定为基准点。The neighbor node corresponding to the minimum Morton code is determined as the reference point.
  8. 根据权利要求7所述的方法,其中,所述根据所述当前节点的莫顿码,从所述当前节点的邻居信息中确定最小莫顿码对应的邻居节点,包括:The method according to claim 7, wherein the determining the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node according to the Morton code of the current node comprises:
    根据所述当前节点的莫顿码,确定所述当前节点的坐标信息;Determine the coordinate information of the current node according to the Morton code of the current node;
    基于所述当前节点的坐标信息,确定所述当前节点的邻居信息中至少一个邻居节点的莫顿码;determining the Morton code of at least one neighbor node in the neighbor information of the current node based on the coordinate information of the current node;
    从所述至少一个邻居节点的莫顿码中选取最小莫顿码,得到所述最小莫顿码对应的邻居节点。A minimum Morton code is selected from Morton codes of the at least one neighbor node to obtain a neighbor node corresponding to the minimum Morton code.
  9. 根据权利要求6所述的方法,其中,所述根据所述预设查找表,确定所述N个待搜索邻居节点的莫顿码,包括:The method according to claim 6, wherein the determining the Morton codes of the N neighbor nodes to be searched according to the preset lookup table comprises:
    确定所述基准点的莫顿码;determining a Morton code for the reference point;
    从所述预设查找表中,获取所述N个坐标差值的莫顿码;From the preset lookup table, obtain the Morton codes of the N coordinate differences;
    对所述基准点的莫顿码和所述N个坐标差值的莫顿码进行计算,得到所述N个待搜索邻居节点的莫顿码。The Morton code of the reference point and the Morton code of the N coordinate differences are calculated to obtain the Morton codes of the N neighbor nodes to be searched.
  10. 根据权利要求6所述的方法,其中,在所述确定所述N个待搜索邻居节点的莫顿码之后,所述方法还包括:The method according to claim 6, wherein after the determining the Morton codes of the N neighbor nodes to be searched, the method further comprises:
    遍历预设点云序列,判断所述预设点云序列是否存在第一待搜索邻居节点的莫顿码;Traverse the preset point cloud sequence, and determine whether the preset point cloud sequence has a Morton code of the first neighbor node to be searched;
    若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;If the judgment result is yes, it is determined that the first neighbor node to be searched exists in the N neighbor nodes to be searched;
    若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;If the judgment result is no, it is determined that the first neighbor node to be searched does not exist in the N neighbor nodes to be searched;
    其中,所述第一待搜索邻居节点为所述N个待搜索邻居节点中的任意一个待搜索邻居节点。Wherein, the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
  11. 根据权利要求10所述的方法,其中,所述方法还包括:The method of claim 10, wherein the method further comprises:
    确定包括所述当前节点的点云中至少一个点的莫顿码;determining a Morton code of at least one point in the point cloud comprising the current node;
    将所述莫顿码按照由小到大的顺序排列,得到莫顿码序;Arrange the Morton codes in ascending order to obtain a Morton code sequence;
    从所述莫顿码序中截取比所述当前节点的莫顿码小的莫顿码,并根据所截取的莫顿码得到所述预设点云序列。A Morton code smaller than the Morton code of the current node is intercepted from the Morton code sequence, and the preset point cloud sequence is obtained according to the intercepted Morton code.
  12. 根据权利要求6所述的方法,其中,在所述确定所述N个待搜索邻居节点的莫顿码之后,所述方法还包括:The method according to claim 6, wherein after the determining the Morton codes of the N neighbor nodes to be searched, the method further comprises:
    判断第一待搜索邻居节点的莫顿码是否小于所述当前节点的莫顿码;Determine whether the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node;
    若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;If the judgment result is yes, it is determined that the first neighbor node to be searched exists in the N neighbor nodes to be searched;
    若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;If the judgment result is no, it is determined that the first neighbor node to be searched does not exist in the N neighbor nodes to be searched;
    其中,所述第一待搜索邻居节点为所述N个待搜索邻居节点中的任意一个待搜索邻居节点。Wherein, the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
  13. 根据权利要求10或12所述的方法,其中,当所述N个待搜索邻居节点中存在所述第一待搜索邻居节点时,所述方法还包括:The method according to claim 10 or 12, wherein, when the first neighbor node to be searched exists in the N neighbor nodes to be searched, the method further comprises:
    若所述第一待搜索邻居节点为所述当前节点的共面邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点;If the first neighbor node to be searched is a coplanar neighbor node of the current node, it is determined that there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
    若所述第一待搜索邻居节点为所述当前节点的共线邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点。If the first neighbor node to be searched is a collinear neighbor node of the current node, it is determined that there is a collinear neighbor node that is collinear with the current node and has been coded among the N neighbor nodes to be searched.
  14. 根据权利要求1所述的方法,其中,所述方法还包括:The method of claim 1, wherein the method further comprises:
    将N的取值写入码流。Write the value of N into the code stream.
  15. 根据权利要求1至14任一项所述的方法,其中,所述方法还包括:The method according to any one of claims 1 to 14, wherein the method further comprises:
    设置参考邻居节点的数量为K个,K为大于0且小于或等于N的整数。Set the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
  16. 根据权利要求15所述的方法,其中,所述方法还包括:The method of claim 15, wherein the method further comprises:
    判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已编码的共面邻居节点;Judging whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
    若所述N个待搜索邻居节点中存在K个与所述当前节点共面且已编码的共面邻居节点,则获取所述K个共面邻居节点的第一属性重建值;If there are K coplanar neighbor nodes that are coplanar with the current node and have been encoded in the N neighbor nodes to be searched, obtain the first attribute reconstruction value of the K coplanar neighbor nodes;
    相应地,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,包括:Correspondingly, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value includes:
    对所述K个共面邻居节点的第一属性重建值进行均值计算,确定所述当前节点的属性预测值。Perform mean calculation on the first attribute reconstruction values of the K coplanar neighbor nodes to determine the attribute prediction value of the current node.
  17. 根据权利要求15所述的方法,其中,所述方法还包括:The method of claim 15, wherein the method further comprises:
    判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已编码的共面邻居节点;Judging whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
    若所述N个待搜索邻居节点中不存在与所述当前节点共面且已编码的共面邻居节点,则判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已编码的共线邻居节点;If there is no coplanar neighbor node that is coplanar with the current node and has been coded in the N neighbor nodes to be searched, it is determined whether there is a coplanar neighbor node that is collinear with the current node and has been coded in the N neighbor nodes to be searched. encoded collinear neighbor nodes;
    若所述N个待搜索邻居节点中存在K个与所述当前节点共线且已编码的共线邻居节点,则获取所述K个共线邻居节点的第二属性重建值;If there are K collinear neighbor nodes that are collinear with the current node and have been coded in the N neighbor nodes to be searched, acquiring the second attribute reconstruction value of the K collinear neighbor nodes;
    相应地,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,包括:Correspondingly, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value includes:
    对所述K个共线邻居节点的第二属性重建值进行均值计算,确定所述当前节点的属性预测值。Perform mean calculation on the second attribute reconstruction values of the K collinear neighbor nodes to determine the attribute prediction value of the current node.
  18. 根据权利要求15所述的方法,其中,所述方法还包括:The method of claim 15, wherein the method further comprises:
    判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已编码的共面邻居节点;Judging whether there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched;
    若所述N个待搜索邻居节点中存在M个与所述当前节点共面且已编码的共面邻居节点,则获取所述M个共面邻居节点的第一属性重建值,M为大于0且小于K的整数;If there are M coplanar neighbor nodes that are coplanar with the current node and have been encoded among the N neighbor nodes to be searched, obtain the first attribute reconstruction value of the M coplanar neighbor nodes, where M is greater than 0 and an integer less than K;
    判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已编码的共线邻居节点;Judging whether there is a collinear neighbor node that is collinear with the current node and has been coded in the N neighbor nodes to be searched;
    若所述N个待搜索邻居节点中存在L个与所述当前节点共线且已编码的共线邻居节点,则获取所述L个共线邻居节点的第二属性重建值;其中,L为大于0且小于或等于(K-M)的整数;If there are L collinear neighbor nodes that are collinear with the current node and have been coded in the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the L collinear neighbor nodes; wherein, L is an integer greater than 0 and less than or equal to (K-M);
    相应地,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,包括:Correspondingly, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value includes:
    对所述M个第一属性重建值和所述L个第二属性重建值进行加权计算,确定所述当前节点的属性预测值。A weighted calculation is performed on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node.
  19. 根据权利要求15所述的方法,其中,所述方法还包括:The method of claim 15, wherein the method further comprises:
    将K的取值写入码流。Write the value of K into the code stream.
  20. 根据权利要求11所述的方法,其中,所述方法还包括:The method of claim 11, wherein the method further comprises:
    若所述N个待搜索邻居节点中不存在与所述当前节点共面且已编码的共面邻居节点且不存在与所述当前节点共线且已编码的共线邻居节点,则从所述莫顿码序中确定位于所述当前节点的莫顿码的前一 个莫顿码,将所述前一个莫顿码对应的点的属性重建值确定为所述当前节点的属性预测值。If there is no coplanar neighbor node that is coplanar with the current node and has been coded and there is no colinear neighbor node that is colinear with the current node and has been coded in the N neighbor nodes to be searched, then In the Morton code sequence, the previous Morton code of the Morton code located at the current node is determined, and the attribute reconstruction value of the point corresponding to the previous Morton code is determined as the attribute prediction value of the current node.
  21. 一种预测方法,应用于解码器,所述方法包括:A prediction method, applied to a decoder, the method comprising:
    确定当前节点的N个待搜索邻居节点;Determine the N neighbor nodes to be searched for the current node;
    若所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;If there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched, acquiring the reconstruction value of the first attribute of the coplanar neighbor node;
    若所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;If there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched, acquiring the second attribute reconstruction value of the collinear neighbor node;
    基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。An attribute prediction value of the current node is determined based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  22. 根据权利要求21所述的方法,其中,所述确定当前节点的N个待搜索邻居节点,包括:The method according to claim 21, wherein the determining the N neighbor nodes to be searched for the current node comprises:
    对点云进行空间划分,得到至少一个点;Perform spatial division on the point cloud to obtain at least one point;
    基于所述当前节点的几何位置,从所述至少一个点中确定所述当前节点的邻居信息;determining the neighbor information of the current node from the at least one point based on the geometric position of the current node;
    从所述当前节点的邻居信息中,确定所述N个待搜索邻居节点。From the neighbor information of the current node, the N neighbor nodes to be searched are determined.
  23. 根据权利要求22所述的方法,其中,所述当前节点的邻居信息包括:与所述当前节点共面的六个邻居节点、与所述当前节点共线的十二个邻居节点和与所述当前节点共点的八个邻居节点。The method according to claim 22, wherein the neighbor information of the current node comprises: six neighbor nodes coplanar with the current node, twelve neighbor nodes colinear with the current node, and The eight neighbor nodes that the current node has in common.
  24. 根据权利要求22所述的方法,其中,从所述当前节点的邻居信息中,确定所述N个待搜索邻居节点,包括:The method according to claim 22, wherein, from the neighbor information of the current node, determining the N neighbor nodes to be searched, comprising:
    将与所述当前节点共面的六个邻居节点中一定已解码的三个邻居节点确定为三个待搜索邻居节点,将与所述当前节点共线的十二个邻居节点中一定已解码的三个邻居节点确定为三个待搜索邻居节点;Three neighbor nodes that must have been decoded in the six neighbor nodes that are coplanar with the current node are determined as three neighbor nodes to be searched, and the twelve neighbor nodes that are collinear with the current node must have been decoded. Three neighbor nodes are determined as three neighbor nodes to be searched;
    基于所述当前节点与邻居节点之间的几何空间关系,将与所述当前节点共线的剩余九个邻居节点中可能已解码的n个邻居节点确定为n个待搜索邻居节点,n为大于0且小于9的整数;Based on the geometric space relationship between the current node and neighbor nodes, n neighbor nodes that may have been decoded among the remaining nine neighbor nodes collinear with the current node are determined as n neighbor nodes to be searched, where n is greater than an integer of 0 and less than 9;
    将得到的(6+n)个待搜索邻居节点确定为所述N个待搜索邻居节点。The obtained (6+n) neighbor nodes to be searched are determined as the N neighbor nodes to be searched.
  25. 根据权利要求21所述的方法,其中,N为大于6的整数。The method of claim 21, wherein N is an integer greater than 6.
  26. 根据权利要求21所述的方法,其中,在所述确定当前节点的N个待搜索邻居节点之后,所述方法还包括:The method according to claim 21, wherein, after the determining the N neighbor nodes to be searched for the current node, the method further comprises:
    确定所述当前节点的基准点;determining the reference point of the current node;
    对所述基准点与所述N个待搜索邻居节点之间的坐标信息进行差值计算,得到N个坐标差值;Perform difference calculation on the coordinate information between the reference point and the N neighbor nodes to be searched to obtain N coordinate difference values;
    计算所述N个坐标差值的莫顿码,并将所述N个坐标差值的莫顿码存储在预设查找表中;calculating the Morton codes of the N coordinate differences, and storing the Morton codes of the N coordinate differences in a preset look-up table;
    根据所述预设查找表,确定所述N个待搜索邻居节点的莫顿码。Morton codes of the N neighbor nodes to be searched are determined according to the preset lookup table.
  27. 根据权利要求26所述的方法,其中,所述确定所述当前节点的基准点,包括:The method according to claim 26, wherein the determining the reference point of the current node comprises:
    计算所述当前节点的莫顿码;calculating the Morton code of the current node;
    根据所述当前节点的莫顿码,从所述当前节点的邻居信息中确定最小莫顿码对应的邻居节点;According to the Morton code of the current node, determine the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node;
    将所述最小莫顿码对应的邻居节点确定为基准点。The neighbor node corresponding to the minimum Morton code is determined as the reference point.
  28. 根据权利要求27所述的方法,其中,所述根据所述当前节点的莫顿码,从所述当前节点的邻居信息中确定最小莫顿码对应的邻居节点,包括:The method according to claim 27, wherein the determining the neighbor node corresponding to the smallest Morton code from the neighbor information of the current node according to the Morton code of the current node comprises:
    根据所述当前节点的莫顿码,确定所述当前节点的坐标信息;Determine the coordinate information of the current node according to the Morton code of the current node;
    基于所述当前节点的坐标信息,确定所述当前节点的邻居信息中至少一个邻居节点的莫顿码;determining the Morton code of at least one neighbor node in the neighbor information of the current node based on the coordinate information of the current node;
    从所述至少一个邻居节点的莫顿码中选取最小莫顿码,得到所述最小莫顿码对应的邻居节点。A minimum Morton code is selected from Morton codes of the at least one neighbor node to obtain a neighbor node corresponding to the minimum Morton code.
  29. 根据权利要求26所述的方法,其中,所述根据所述预设查找表,确定所述N个待搜索邻居节点的莫顿码,包括:The method according to claim 26, wherein the determining the Morton codes of the N neighbor nodes to be searched according to the preset lookup table comprises:
    确定所述基准点的莫顿码;determining a Morton code for the reference point;
    从所述预设查找表中,获取所述N个坐标差值的莫顿码;From the preset lookup table, obtain the Morton codes of the N coordinate differences;
    对所述基准点的莫顿码和所述N个坐标差值的莫顿码进行计算,得到所述N个待搜索邻居节点的莫顿码。The Morton code of the reference point and the Morton code of the N coordinate differences are calculated to obtain the Morton codes of the N neighbor nodes to be searched.
  30. 根据权利要求26所述的方法,其中,在所述确定所述N个待搜索邻居节点的莫顿码之后,所述方法还包括:The method according to claim 26, wherein after the determining the Morton codes of the N neighbor nodes to be searched, the method further comprises:
    遍历预设点云序列,判断所述预设点云序列是否存在第一待搜索邻居节点的莫顿码;Traverse the preset point cloud sequence, and determine whether the preset point cloud sequence has a Morton code of the first neighbor node to be searched;
    若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;If the judgment result is yes, it is determined that the first neighbor node to be searched exists in the N neighbor nodes to be searched;
    若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;If the judgment result is no, it is determined that the first neighbor node to be searched does not exist in the N neighbor nodes to be searched;
    其中,所述第一待搜索邻居节点为所述N个待搜索邻居节点中的任意一个待搜索邻居节点。Wherein, the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
  31. 根据权利要求30所述的方法,其中,所述方法还包括:The method of claim 30, wherein the method further comprises:
    确定包括所述当前节点的点云中至少一个点的莫顿码;determining a Morton code of at least one point in the point cloud comprising the current node;
    将所述莫顿码按照由小到大的顺序排列,得到莫顿码序;Arrange the Morton codes in ascending order to obtain a Morton code sequence;
    从所述莫顿码序中截取比所述当前节点的莫顿码小的莫顿码,并根据所截取的莫顿码得到所述预设点云序列。A Morton code smaller than the Morton code of the current node is intercepted from the Morton code sequence, and the preset point cloud sequence is obtained according to the intercepted Morton code.
  32. 根据权利要求26所述的方法,其中,在所述确定所述N个待搜索邻居节点的莫顿码之后,所述方法还包括:The method according to claim 26, wherein after the determining the Morton codes of the N neighbor nodes to be searched, the method further comprises:
    判断第一待搜索邻居节点的莫顿码是否小于所述当前节点的莫顿码;Determine whether the Morton code of the first neighbor node to be searched is smaller than the Morton code of the current node;
    若判断结果为是,则确定所述N个待搜索邻居节点中存在所述第一待搜索邻居节点;If the judgment result is yes, it is determined that the first neighbor node to be searched exists in the N neighbor nodes to be searched;
    若判断结果为否,则确定所述N个待搜索邻居节点中不存在所述第一待搜索邻居节点;If the judgment result is no, it is determined that the first neighbor node to be searched does not exist in the N neighbor nodes to be searched;
    其中,所述第一待搜索邻居节点为所述N个待搜索邻居节点中的任意一个待搜索邻居节点。Wherein, the first neighbor node to be searched is any neighbor node to be searched among the N neighbor nodes to be searched.
  33. 根据权利要求30或32所述的方法,其中,当所述N个待搜索邻居节点中存在所述第一待搜索邻居节点时,所述方法还包括:The method according to claim 30 or 32, wherein, when the first neighbor node to be searched exists in the N neighbor nodes to be searched, the method further comprises:
    若所述第一待搜索邻居节点为所述当前节点的共面邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点;If the first neighbor node to be searched is a coplanar neighbor node of the current node, it is determined that there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
    若所述第一待搜索邻居节点为所述当前节点的共线邻居节点,则确定所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点。If the first neighbor node to be searched is a collinear neighbor node of the current node, it is determined that there is a collinear neighbor node that is collinear with the current node and has been decoded among the N neighbor nodes to be searched.
  34. 根据权利要求21所述的方法,其中,所述方法还包括:The method of claim 21, wherein the method further comprises:
    解析码流,获取N的取值。Parse the code stream and get the value of N.
  35. 根据权利要求21至34任一项所述的方法,其中,所述方法还包括:The method of any one of claims 21 to 34, wherein the method further comprises:
    设置参考邻居节点的数量为K个,K为大于0且小于或等于N的整数。Set the number of reference neighbor nodes to K, where K is an integer greater than 0 and less than or equal to N.
  36. 根据权利要求21至34任一项所述的方法,其中,所述方法还包括:The method of any one of claims 21 to 34, wherein the method further comprises:
    解析码流,获取K的取值;其中,K表示参考邻居节点的数量。Parse the code stream to obtain the value of K; where K represents the number of reference neighbor nodes.
  37. 根据权利要求35或36所述的方法,其中,所述方法还包括:The method of claim 35 or 36, wherein the method further comprises:
    判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已解码的共面邻居节点;Determine whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
    若所述N个待搜索邻居节点中存在K个与所述当前节点共面且已解码的共面邻居节点,则获取所述K个共面邻居节点的第一属性重建值;If there are K coplanar neighbor nodes that are coplanar with the current node and have been decoded in the N neighbor nodes to be searched, obtain the first attribute reconstruction value of the K coplanar neighbor nodes;
    相应地,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,包括:Correspondingly, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value includes:
    对所述K个共面邻居节点的第一属性重建值进行均值计算,确定所述当前节点的属性预测值。Perform mean calculation on the first attribute reconstruction values of the K coplanar neighbor nodes to determine the attribute prediction value of the current node.
  38. 根据权利要求35或36所述的方法,其中,所述方法还包括:The method of claim 35 or 36, wherein the method further comprises:
    判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已解码的共面邻居节点;Determine whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
    若所述N个待搜索邻居节点中不存在与所述当前节点共面且已解码的共面邻居节点,则判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已解码的共线邻居节点;If there is no coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, it is judged whether there is a coplanar neighbor node that is collinear with the current node and has been decoded among the N neighbor nodes to be searched. Decoded collinear neighbor nodes;
    若所述N个待搜索邻居节点中存在K个与所述当前节点共线且已解码的共线邻居节点,则获取所述K个共线邻居节点的第二属性重建值;If there are K collinear neighbor nodes that are collinear with the current node and have been decoded in the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the K collinear neighbor nodes;
    相应地,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,包括:Correspondingly, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value includes:
    对所述K个共线邻居节点的第二属性重建值进行均值计算,确定所述当前节点的属性预测值。Perform mean calculation on the second attribute reconstruction values of the K collinear neighbor nodes to determine the attribute prediction value of the current node.
  39. 根据权利要求35或36所述的方法,其中,所述方法还包括:The method of claim 35 or 36, wherein the method further comprises:
    判断所述N个待搜索邻居节点中是否存在与所述当前节点共面且已解码的共面邻居节点;Determine whether there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched;
    若所述N个待搜索邻居节点中存在M个与所述当前节点共面且已解码的共面邻居节点,则获取所述M个共面邻居节点的第一属性重建值,M为大于0且小于K的整数;If there are M coplanar neighbor nodes that are coplanar with the current node and have been decoded among the N neighbor nodes to be searched, obtain the first attribute reconstruction value of the M coplanar neighbor nodes, where M is greater than 0 and an integer less than K;
    判断所述N个待搜索邻居节点中是否存在与所述当前节点共线且已解码的共线邻居节点;Judging whether there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched;
    若所述N个待搜索邻居节点中存在L个与所述当前节点共线且已解码的共线邻居节点,则获取所述L个共线邻居节点的第二属性重建值;其中,L为大于0且小于或等于(K-M)的整数;If there are L collinear neighbor nodes that are collinear with the current node and have been decoded among the N neighbor nodes to be searched, obtain the second attribute reconstruction value of the L collinear neighbor nodes; wherein, L is an integer greater than 0 and less than or equal to (K-M);
    相应地,所述基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值,包括:Correspondingly, the determining the attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value includes:
    对所述M个第一属性重建值和所述L个第二属性重建值进行加权计算,确定所述当前节点的属性预测值。A weighted calculation is performed on the M first attribute reconstruction values and the L second attribute reconstruction values to determine the attribute prediction value of the current node.
  40. 根据权利要求31所述的方法,其中,所述方法还包括:The method of claim 31, wherein the method further comprises:
    若所述N个待搜索邻居节点中不存在与所述当前节点共面且已解码的共面邻居节点且不存在与所述当前节点共线且已解码的共线邻居节点,则从所述莫顿码序中确定位于所述当前节点的莫顿码的前一个莫顿码,将所述前一个莫顿码对应的点的属性重建值确定为所述当前节点的属性预测值。If there is no coplanar neighbor node that is coplanar with the current node and has been decoded among the N neighbor nodes to be searched, and there is no colinear neighbor node that is collinear with the current node and has been decoded, then In the Morton code sequence, the previous Morton code of the Morton code located at the current node is determined, and the attribute reconstruction value of the point corresponding to the previous Morton code is determined as the attribute prediction value of the current node.
  41. 一种编码器,所述编码器包括第一确定单元、第一判断单元和第一预测单元;其中,An encoder comprising a first determination unit, a first judgment unit and a first prediction unit; wherein,
    所述第一确定单元,配置为确定当前节点的N个待搜索邻居节点;The first determining unit is configured to determine the N neighbor nodes to be searched for the current node;
    所述第一判断单元,配置为若所述N个待搜索邻居节点中存在与所述当前节点共面且已编码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;The first judgment unit is configured to obtain a first attribute reconstruction value of the coplanar neighbor node if there is a coplanar neighbor node that is coplanar with the current node and has been encoded in the N neighbor nodes to be searched ;
    所述第一判断单元,还配置为若所述N个待搜索邻居节点中存在与所述当前节点共线且已编码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;The first judging unit is further configured to obtain the second attribute reconstruction of the collinear neighbor node if there is a collinear neighbor node that is collinear with the current node and has been encoded in the N neighbor nodes to be searched value;
    所述第一预测单元,配置为基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。The first prediction unit is configured to determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  42. 一种编码器,所述编码器包括第一存储器和第一处理器;其中,An encoder comprising a first memory and a first processor; wherein,
    所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;the first memory for storing a computer program executable on the first processor;
    所述第一处理器,用于在运行所述计算机程序时,执行如权利要求1至20任一项所述的方法。The first processor is configured to execute the method according to any one of claims 1 to 20 when running the computer program.
  43. 一种解码器,所述解码器包括第二确定单元、第二判断单元和第二预测单元;其中,A decoder comprising a second determination unit, a second judgment unit and a second prediction unit; wherein,
    所述第二确定单元,配置为确定当前节点的N个待搜索邻居节点;The second determining unit is configured to determine the N neighbor nodes to be searched for the current node;
    所述第二判断单元,配置为若所述N个待搜索邻居节点中存在与所述当前节点共面且已解码的共面邻居节点,则获取所述共面邻居节点的第一属性重建值;The second judging unit is configured to obtain a first attribute reconstruction value of the coplanar neighbor node if there is a coplanar neighbor node that is coplanar with the current node and has been decoded in the N neighbor nodes to be searched ;
    所述第二判断单元,还配置为若所述N个待搜索邻居节点中存在与所述当前节点共线且已解码的共线邻居节点,则获取所述共线邻居节点的第二属性重建值;The second judgment unit is further configured to obtain the second attribute reconstruction of the collinear neighbor node if there is a collinear neighbor node that is collinear with the current node and has been decoded in the N neighbor nodes to be searched value;
    所述第二预测单元,配置为基于所述第一属性重建值和/或所述第二属性重建值,确定所述当前节点的属性预测值。The second prediction unit is configured to determine an attribute prediction value of the current node based on the first attribute reconstruction value and/or the second attribute reconstruction value.
  44. 一种解码器,所述解码器包括第二存储器和第二处理器;其中,A decoder comprising a second memory and a second processor; wherein,
    所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;the second memory for storing a computer program executable on the second processor;
    所述第二处理器,用于在运行所述计算机程序时,执行如权利要求21至40任一项所述的方法。The second processor is configured to execute the method according to any one of claims 21 to 40 when running the computer program.
  45. 一种计算机存储介质,其中,所述计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如权利要求1至20任一项所述的方法、或者被第二处理器执行时实现如权利要求21至40任一项所述的方法。A computer storage medium, wherein the computer storage medium stores a computer program, which when executed by a first processor implements the method according to any one of claims 1 to 20, or is executed by a second processor A method as claimed in any one of claims 21 to 40 is implemented when executed.
PCT/CN2020/133704 2020-12-03 2020-12-03 Prediction method, encoder, decoder and computer storage medium WO2022116117A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/CN2020/133704 WO2022116117A1 (en) 2020-12-03 2020-12-03 Prediction method, encoder, decoder and computer storage medium
CN202311829559.0A CN117793372A (en) 2020-12-03 2020-12-03 Prediction method, encoder, decoder, and computer storage medium
CN202080107458.0A CN116547968A (en) 2020-12-03 2020-12-03 Prediction method, encoder, decoder, and computer storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/133704 WO2022116117A1 (en) 2020-12-03 2020-12-03 Prediction method, encoder, decoder and computer storage medium

Publications (1)

Publication Number Publication Date
WO2022116117A1 true WO2022116117A1 (en) 2022-06-09

Family

ID=81852825

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/133704 WO2022116117A1 (en) 2020-12-03 2020-12-03 Prediction method, encoder, decoder and computer storage medium

Country Status (2)

Country Link
CN (2) CN117793372A (en)
WO (1) WO2022116117A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024011739A1 (en) * 2022-07-13 2024-01-18 Oppo广东移动通信有限公司 Point cloud encoding method, point cloud decoding method, codec and computer storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190080483A1 (en) * 2017-09-14 2019-03-14 Apple Inc. Point Cloud Compression
CN111145090A (en) * 2019-11-29 2020-05-12 鹏城实验室 Point cloud attribute encoding method, point cloud attribute decoding method, point cloud attribute encoding equipment and point cloud attribute decoding equipment
CN111405284A (en) * 2020-03-30 2020-07-10 北京大学深圳研究生院 Point cloud density-based attribute prediction method and device
WO2020190090A1 (en) * 2019-03-20 2020-09-24 엘지전자 주식회사 Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method
CN111953998A (en) * 2020-08-16 2020-11-17 西安电子科技大学 Point cloud attribute coding and decoding method, device and system based on DCT (discrete cosine transformation)

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190080483A1 (en) * 2017-09-14 2019-03-14 Apple Inc. Point Cloud Compression
WO2020190090A1 (en) * 2019-03-20 2020-09-24 엘지전자 주식회사 Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method
CN111145090A (en) * 2019-11-29 2020-05-12 鹏城实验室 Point cloud attribute encoding method, point cloud attribute decoding method, point cloud attribute encoding equipment and point cloud attribute decoding equipment
CN111405284A (en) * 2020-03-30 2020-07-10 北京大学深圳研究生院 Point cloud density-based attribute prediction method and device
CN111953998A (en) * 2020-08-16 2020-11-17 西安电子科技大学 Point cloud attribute coding and decoding method, device and system based on DCT (discrete cosine transformation)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024011739A1 (en) * 2022-07-13 2024-01-18 Oppo广东移动通信有限公司 Point cloud encoding method, point cloud decoding method, codec and computer storage medium

Also Published As

Publication number Publication date
CN116547968A (en) 2023-08-04
CN117793372A (en) 2024-03-29

Similar Documents

Publication Publication Date Title
US11538196B2 (en) Predictive coding for point cloud compression
US10904564B2 (en) Method and apparatus for video coding
CN115769262A (en) Attribute parameter transcoding for geometry-based point cloud compression
US20230237707A1 (en) Point cloud encoding and decoding method, encoder, decoder and codec system
CN115885514A (en) High level syntax for geometry-based point cloud compression
WO2023230996A1 (en) Encoding and decoding method, encoder, decoder, and readable storage medium
WO2022116117A1 (en) Prediction method, encoder, decoder and computer storage medium
US20230237704A1 (en) Point cloud decoding and encoding method, and decoder, encoder and encoding and decoding system
WO2022141461A1 (en) Point cloud encoding and decoding method, encoder, decoder and computer storage medium
WO2022116118A1 (en) Prediction method, encoder, decoder and storage medium
WO2023024842A1 (en) Point cloud encoding/decoding method, apparatus and device, and storage medium
WO2024021089A1 (en) Encoding method, decoding method, code stream, encoder, decoder and storage medium
WO2022188582A1 (en) Method and apparatus for selecting neighbor point in point cloud, and codec
WO2023123284A1 (en) Decoding method, encoding method, decoder, encoder, and storage medium
US20230386089A1 (en) Point cloud decoding method, decoder, and non-transitory computer-readable storage medium
WO2023173238A1 (en) Encoding method, decoding method, code stream, encoder, decoder, and storage medium
WO2022257150A1 (en) Point cloud encoding and decoding methods and apparatus, point cloud codec, and storage medium
WO2022170521A1 (en) Geometry reconstruction method, decoder and computer storage medium
US20240015325A1 (en) Point cloud coding and decoding methods, coder, decoder and storage medium
WO2024082153A1 (en) Encoding method, decoding method, code stream, encoder, decoder and storage medium
WO2023159428A1 (en) Encoding method, encoder, and storage medium
WO2022257528A1 (en) Point cloud attribute prediction method and apparatus, and related device
US20240177355A1 (en) Sub-mesh zippering
WO2024026712A1 (en) Point cloud coding method and apparatus, point cloud decoding method and apparatus, and device and storage medium
WO2022257145A1 (en) Point cloud attribute prediction method and apparatus, and codec

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20963963

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202080107458.0

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20963963

Country of ref document: EP

Kind code of ref document: A1