WO2023023914A1 - 帧内预测、编解码方法及装置、编解码器、设备、介质 - Google Patents

帧内预测、编解码方法及装置、编解码器、设备、介质 Download PDF

Info

Publication number
WO2023023914A1
WO2023023914A1 PCT/CN2021/114153 CN2021114153W WO2023023914A1 WO 2023023914 A1 WO2023023914 A1 WO 2023023914A1 CN 2021114153 W CN2021114153 W CN 2021114153W WO 2023023914 A1 WO2023023914 A1 WO 2023023914A1
Authority
WO
WIPO (PCT)
Prior art keywords
child node
current
node
predicted
child
Prior art date
Application number
PCT/CN2021/114153
Other languages
English (en)
French (fr)
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/CN2021/114153 priority Critical patent/WO2023023914A1/zh
Priority to CN202180099712.1A priority patent/CN117581549A/zh
Publication of WO2023023914A1 publication Critical patent/WO2023023914A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • the embodiment of the present application relates to point cloud processing technology, and relates to but not limited to intra prediction, codec method and device, codec, equipment, and medium.
  • a point cloud is a set of discrete point sets randomly distributed in space that express the spatial structure and surface properties of a three-dimensional object or scene.
  • Point cloud data usually includes attribute information composed of three-dimensional position information (x, y, z), three-dimensional color information (r, g, b) and one-dimensional reflectance information (r).
  • Point cloud can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes, and because point cloud is obtained by directly sampling real objects, it can provide a strong sense of reality under the premise of ensuring accuracy, so it is widely used.
  • point cloud compression has become a key issue to promote the development of the point cloud industry.
  • Point cloud compression is mainly divided into geometric compression and attribute compression. While improving the accuracy of intra prediction in attribute compression, how to further improve the efficiency of encoding and decoding has certain significance.
  • the intra-frame prediction, codec method and device, codec, equipment, and medium provided by the embodiments of the present application can improve the accuracy of intra-frame prediction and further improve the codec efficiency of point clouds.
  • the intra-frame prediction, codec method and device, codec, equipment, and medium provided by the embodiments of the present application are implemented in the following way:
  • the intra prediction method provided by the embodiment of the present application is applied to the decoding end, and the method includes: based on the first search range, searching for the first predicted sub-node of the current sub-node; when the number of the first predicted sub-nodes is less than In the case of the first threshold, based on the second search range, search for the second predicted child node of the current child node; when the total number of the first and second predicted child nodes is less than the first threshold and the number of search rounds When it is less than N, based on the third search range, search to obtain the third predicted child node of the current child node; when the number of search rounds reaches N, or when the number of search rounds does not reach N, all predicted child nodes obtained When the number is greater than or equal to the first threshold, the predicted attribute value of the current child node is determined based on the obtained attribute value of the predicted child node; wherein, the respective search ranges do not overlap each other, and N is a gate greater than or equal to 2 limit.
  • the point cloud decoding method includes: analyzing the received attribute code stream to obtain the reconstruction residual of the current sub-node; performing the intra-frame prediction method of the decoding end of the application on the current sub-node The step of obtaining the predicted attribute value of the current sub-node; determining the reconstructed attribute value of the current sub-node according to the predicted attribute value of the current sub-node and the reconstruction residual of the current sub-node.
  • the intra-frame prediction method provided by the embodiment of the present application is applied to the encoding end, and the method includes: based on the first search range, searching for the first predicted sub-node of the current sub-node; When the number is less than the first threshold, based on the second search range, search for the second predicted child node of the current child node; when the total number of the first and second predicted child nodes is less than the first threshold and search When the number of rounds is less than N, based on the third search range, search for the third predicted child node of the current child node; when the number of search rounds reaches N, or when the number of search rounds does not reach N, all predictors obtained When the number of nodes is greater than or equal to the first threshold, based on the obtained attribute value of the predicted child node, the predicted value of the attribute of the current child node is obtained; wherein, the respective search ranges do not overlap each other, and N is greater than or equal to 2 threshold value.
  • the point cloud encoding method provided by the embodiment of the present application is applied to the encoding end, and the method includes: performing the steps in the intra prediction method of the encoding end of the application on the current child node of the point cloud to obtain the attributes of the current child node A predicted value; determining a residual between the predicted attribute value of the current child node and the original attribute value of the current child node; encoding the residual of the current child node into an attribute code stream.
  • the intra-frame prediction device is applied to the decoding end, and includes: a first search module configured to: based on the first search range, search for the first predicted sub-node of the current sub-node; When the number of child nodes is less than the first threshold, based on a second search range, search for a second predicted child node of the current child node; and, when the total number of the first and second predicted child nodes is less than the The first threshold, and when the number of search rounds is less than N, based on the third search range, search for the third predicted child node of the current child node; when the number of search rounds reaches N, or when the number of search rounds does not reach When the number of all predicted child nodes obtained at N is greater than or equal to the first threshold, the first intra-frame prediction module is triggered; wherein, the respective search ranges do not overlap each other, and N is a threshold greater than or equal to 2; The first intra-frame prediction module is configured to determine the predicted attribute value of the current
  • the decoding device provided in the embodiment of the present application includes: an analysis module configured to analyze the received attribute code stream to obtain the reconstruction residual of the current sub-node; an intra-frame prediction device configured to perform the following steps on the current sub-node The steps in the intra-frame prediction method described in the application decoding end are to obtain the predicted value of the attribute of the current child node; the reconstruction module is configured to use the predicted value of the attribute of the current child node and the reconstruction residual of the current child node , to determine the attribute reconstruction value of the current child node.
  • the decoder provided in the embodiment of the present application includes a memory and a processor; wherein, the memory is used to store a computer program that can run on the processor; the processor is used to run the computer program , execute the intra prediction method applicable to the decoding end as described in the embodiment of the present application, or execute the point cloud decoding method as described in the embodiment of the present application.
  • the intra prediction device is applied to the encoding end, and includes: a second search module configured to search for a first predicted sub-node of the current sub-node based on a first search range; and in the second When the number of predicted child nodes is less than the first threshold, based on the second search range, search for the second predicted child node of the current child node; when the total number of the first and second predicted child nodes is less than the The first threshold, and when the number of search rounds is less than N, based on the third search range, search for the third predicted child node of the current child node; when the number of search rounds reaches N, or when the number of search rounds does not reach When the number of all predicted child nodes obtained at N is greater than or equal to the first threshold, the second intra-frame prediction module is triggered; wherein, the search ranges do not overlap each other, and N is a threshold greater than or equal to 2; The second intra-frame prediction module is configured to obtain the predicted attribute value of the current child
  • the encoding device includes: an intra-frame prediction device configured to perform the steps in the intra-frame prediction method described in the encoding end of the present application on the current sub-node of the point cloud to obtain the attribute prediction of the current sub-node value; a determination module configured to determine a residual between the predicted value of the attribute of the current child node and an original attribute value of the current child node; an encoding module configured to encode the residual of the current child node as an attribute stream.
  • An encoder provided in an embodiment of the present application includes a memory and a processor; the memory is used to store a computer program that can run on the processor; the processor is used to run the computer program , execute the intra-frame prediction method applicable to the encoding end as described in the embodiment of the present application, or execute the point cloud encoding method as described in the embodiment of the present application.
  • An electronic device provided by an embodiment of the present application includes a memory and a processor; the memory is used to store a computer program that can run on the processor; the processor is used to run the computer program , execute the intra-frame prediction method applicable to the decoding end as described in the embodiment of the application, or execute the point cloud decoding method as described in the embodiment of the application, or execute the intra-frame prediction method applicable to the encoding end as described in the embodiment of the application prediction method, or execute the point cloud encoding method as described in the embodiment of the present application.
  • the computer-readable storage medium provided by the embodiment of the present application has a computer program stored thereon, and when the computer program is executed by the processor, the intra prediction method applicable to the decoding end as described in the embodiment of the present application is implemented, or the computer program is executed by When executed by the processor, the point cloud decoding method described in the embodiment of the present application is realized, or, when the computer program is executed by the processor, the intra-frame prediction method applicable to the encoding end described in the embodiment of the present application is realized, and the computer program is executed by the processor During execution, the point cloud encoding method described in the embodiment of the present application is realized.
  • the search rounds of the predicted child nodes are limited by the threshold value of N, so that after N rounds of searches (that is, the number of search ranges used reaches the threshold value), even if all the predicted When the number of sub-nodes is less than the first threshold, the search of the predicted sub-nodes based on the search range is terminated, thereby shortening the search delay and improving coding efficiency.
  • Fig. 1 is a schematic diagram of a three-dimensional point cloud image and a partial enlarged view
  • Fig. 2 is a schematic diagram of a point cloud image and its corresponding data storage format
  • FIG 3A is a schematic diagram of the point cloud compression reference platform provided by the Audio Video Standard (AVS) Point Cloud Compression Task Force, that is, the coding framework of the Point Cloud Reference Model (PCRM);
  • AVS Audio Video Standard
  • PCM Point Cloud Reference Model
  • Figure 3B is a schematic diagram of the decoding framework of the point cloud compression reference platform PCRM provided by the AVS point cloud compression task force;
  • Figure 4A is a schematic diagram of placing the entire point cloud in a cube bounding box
  • Fig. 4B is a schematic diagram of the octree division process of the point cloud
  • Fig. 5 is the schematic diagram of the encoding order of Morton code in two-dimensional space
  • Fig. 6 is the schematic diagram of the encoding order of Morton code in three-dimensional space
  • FIG. 7A is a schematic diagram of a current child node and its coplanar child nodes
  • FIG. 7B is a schematic diagram of the current child node and its collinear child nodes
  • FIG. 7C is a schematic diagram of the current child node and its common child nodes
  • FIG. 8 is a schematic diagram of an implementation flow of an intra prediction method according to an embodiment of the present application.
  • FIG. 9 is a schematic diagram of an example of a first search range and a second search range according to an embodiment of the present application.
  • FIG. 10 is a schematic diagram of an example of a second search range in an embodiment of the present application.
  • FIG. 11 is a schematic diagram of an example of a second search range in an embodiment of the present application.
  • FIG. 12 is a schematic diagram of an example of a first search range in an embodiment of the present application.
  • Figure 13(a) and (b) are schematic diagrams of examples of the first search range and the second search range of the embodiment of the present application, respectively;
  • FIG. 14 is a schematic diagram of an example of a second search range in an embodiment of the present application.
  • FIG. 15 is a schematic diagram of an example of a second search range in the embodiment of the present application.
  • FIG. 16 is a schematic structural diagram of an intra prediction device according to an embodiment of the present application.
  • FIG. 17 is a schematic structural diagram of an encoding device according to an embodiment of the present application.
  • FIG. 18 is a schematic structural diagram of an intra prediction device according to an embodiment of the present application.
  • FIG. 19 is a schematic structural diagram of a decoding device according to an embodiment of the present application.
  • FIG. 20 is a schematic diagram of a hardware entity of an electronic device according to an embodiment of the present application.
  • FIG. 21 is a schematic diagram of a hardware entity of an encoder according to an embodiment of the present application.
  • FIG. 22 is a schematic diagram of a hardware entity of a decoder according to an embodiment of the present application.
  • first ⁇ second ⁇ third involved in the embodiment of this application is to distinguish similar or different objects, and does not represent a specific ordering of objects. Understandably, “first ⁇ second ⁇ third The specific order or sequence of "three” can be interchanged where permitted so that the embodiments of the application described herein can be practiced in other orders than those illustrated or described herein.
  • a point cloud is a set of discrete point sets randomly distributed in space that express the spatial structure and surface properties of a three-dimensional object or scene.
  • 101 is a three-dimensional point cloud image.
  • 102 is a partially enlarged view of the point cloud image, and it can be seen that the surface of the point cloud is composed of densely distributed points.
  • point cloud data usually includes attribute information composed of three-dimensional position information (x, y, z), three-dimensional color information (r, g, b) and one-dimensional reflectance information (r).
  • FIG. 2 it is a point cloud image and its corresponding data storage format, wherein, 201 provides six viewing angles of the point cloud image; 202 shows the data storage format of the point cloud image, by the file header information part and the data part, the header information includes the data format, data representation type, total points of the point cloud, and the content represented by the point cloud, such as the point cloud in 202 is in ".ply" format, represented by ASCII code, and the total points are 207242, each point has three-dimensional position information (x, y, z) and three-dimensional color information (r, g, b).
  • the collection of point clouds mainly has the following methods: computer generation, 3D laser scanning and 3D photogrammetry, etc.
  • Computers can generate point clouds of virtual three-dimensional objects and scenes; 3D laser scanning can obtain point clouds of static real-world three-dimensional objects or scenes, and can obtain millions of point clouds per second; 3D photogrammetry can obtain dynamic real-world three-dimensional objects or scenes The point cloud of tens of millions of points can be obtained per second.
  • These technologies reduce the cost and time period of point cloud data acquisition, and improve the accuracy of the data.
  • the transformation of the acquisition method of point cloud data makes it possible to obtain a large amount of point cloud data.
  • the processing of massive 3D point cloud data encounters the bottleneck of storage space and transmission bandwidth limitations.
  • the number of points in each frame of point cloud is 700,000, and each point has three-dimensional position information (x, y, z) and
  • the YUV sampling format is 4:2:0, 1280 ⁇ 720 two-dimensional video with a frame rate of 24fps
  • the data volume of 10s is about 1280 ⁇ 720 ⁇ 12bit ⁇ 24frames ⁇ 10s ⁇ 0.33GB
  • point cloud video far exceeds the data volume of 2D video and 3D video of the same duration. Therefore, in order to better realize data management, save server storage space, reduce transmission traffic and transmission time between server and client, point cloud compression has become a key issue to promote the development of point cloud industry.
  • Point cloud compression usually adopts the method of separately compressing the three-dimensional position information of the point and the attribute information of the point.
  • first encode the 3D position information of the point in the geometric encoder to obtain the reconstructed 3D position information; then input the reconstructed 3D position information into the attribute encoder as additional information, thereby assisting the compression of the attribute information of the point;
  • the 3D position information of the point is first decoded in the geometric decoder, and then the decoded 3D position information is input into the attribute decoder as additional information to assist in the compression of the point attribute information.
  • the entire codec consists of preprocessing/postprocessing, geometric encoding/decoding, and attribute encoding/decoding.
  • Figure 3A is the encoding framework of the point cloud compression reference platform PCRM provided by the AVS point cloud compression group
  • Figure 3B is the decoding framework of the point cloud compression reference platform PCRM provided by the AVS point cloud compression group. It should be noted that there is no limitation on the type of platform applicable to the technical solution of the embodiment of the present application. The technical solution of the embodiment of the present application is not only applicable to the point cloud compression reference platform PCRM, but also applicable to other types of point cloud compression reference platforms .
  • the collected three-dimensional position information is preprocessed, and the geometric origin is normalized to the minimum value position in the point cloud space through coordinate translation. Convert the 3D position information from floating point type to integer type through coordinate quantization to obtain regularized 3D position information, that is, to obtain regularized point cloud space, so as to facilitate subsequent regularized processing; then, the regularized 3D position information Do geometric encoding.
  • the octree structure can be used to recursively divide the regularized point cloud space, each time the current node is divided into eight sub-blocks of the same size, and the occupancy codeword of each sub-block is judged , when there is no point in the sub-block, it is recorded as empty, otherwise it is recorded as non-empty, and the occupied codeword information of all blocks is recorded and encoded in the last layer of recursive division.
  • the three-dimensional position information expressed by the octree structure is input into the geometric entropy encoder to form a geometric code stream; on the other hand, geometric reconstruction is performed in the encoder, and the reconstructed three-dimensional position information is used as Information is fed into attribute encoders.
  • the collected attribute information is firstly preprocessed. Since the three-dimensional position information changes after geometric encoding, it is necessary to reassign attribute values for each point after geometric encoding. This process is called attribute recoloring.
  • the attribute information to be processed is three-dimensional color information, it is necessary to transform the original color into a YUV color space that is more in line with the visual characteristics of the human eye; and then perform attribute encoding on the preprocessed attribute information.
  • the point cloud needs to be reordered first, and the reordering method is Morton code, so the traversal order of attribute encoding is Morton order, and the attribute prediction method in PCRM is based on Morton order
  • the single-point prediction of that is, trace back a point from the current point to be encoded (ie, the current child node in the following embodiments) according to the Morton order, and the found point is the prediction reference point of the current point to be encoded (ie, the following implementation The so-called prediction child node in the example), and then the attribute reconstruction value of the prediction reference point is used as the attribute prediction value, and the attribute residual is the difference between the preprocessed attribute value and the attribute prediction value of the current point to be encoded; finally The residual is quantized, and the quantized residual is input into an attribute entropy encoder to form an attribute code stream.
  • the attribute prediction refers specifically to intra-frame prediction.
  • the geometric code stream is entropy-decoded first to obtain the three-dimensional position information of each child node, and then the octree structure is constructed in the same way as the geometric code, and the coordinate transformation is reconstructed through the octree
  • the three-dimensional position information expressed by the tree structure, on the one hand, coordinate inverse quantization and inverse translation of the information to obtain the decoded three-dimensional position information, on the other hand, the decoded three-dimensional position information is input into the attribute decoder as additional information.
  • the Morton sequence is constructed in the same way as the encoding end, and the attribute code stream is entropy decoded to obtain the quantized residual information; then the residual information is dequantized to obtain the residual value ;
  • the attribute prediction value of the current point to be decoded ie, the current child node referred to in the embodiments below
  • the attribute prediction value is added to the residual value to restore The YUV attribute value of the current point to be decoded
  • the decoded attribute information is obtained through inverse color space transformation.
  • x min min(x 0 ,x 1 ,...x q-1 ) formula (1);
  • the size of the bounding box in the x, y, and z directions can be calculated according to the following formula (10) to formula (12):
  • the cube bounding box is divided into octrees, and eight sub-blocks are obtained each time, and then the non-empty blocks in the sub-blocks (ie, the blocks containing points) are divided into octrees again , so recursively divided until a certain depth, the non-empty sub-block of the final size is called a voxel (voxel), each voxel contains one or more points, and the geometric positions of these points are normalized to the center point of the voxel ( That is, the sub-node referred to in the following embodiments), the attribute value of the center point is the average value of the attribute values of all points in the voxel (ie, the original attribute value).
  • 501 is the "z"-shaped Morton coding sequence of 2 ⁇ 2 pixels in the block
  • 502 is the “z”-shaped Morton coding sequence between four 2 ⁇ 2 blocks
  • 503 is the coding sequence between four 4 ⁇ 4 blocks
  • the Morton coding sequence of the "z” shape constitutes the Morton coding sequence of the entire 8 ⁇ 8 block.
  • the Morton coding sequence extended to the three-dimensional space is shown in Figure 6, which shows 16 sub-nodes, and the Morton coding sequence between each "z” and “z” inside each "z” is First encode along the x-axis, then along the y-axis, and finally along the z-axis.
  • the attribute intra-frame prediction part in point cloud compression for the color attribute, mainly refers to the adjacent child nodes of the current child node to predict the current child node, and calculates the residual information according to the attribute prediction value and the original attribute value of the current child node.
  • the residual information is encoded into the code stream and then transmitted to the decoding end; after receiving and analyzing the code stream, the decoding end obtains the residual information through inverse transformation and inverse quantization steps, and the decoding end uses the same process to predict and obtain attribute prediction values , superimposed with the residual information to obtain the attribute reconstruction value of the current child node.
  • the attribute intra-frame prediction uses the geometric relationship between child nodes, and uses the geometric coplanar, collinear and/or co-point child nodes of the current child node as the predicted child nodes, and at the same time predicts the child nodes that need to meet
  • the condition is that the encoding is completed before the current child node, and then the weight value is set to the reciprocal of the geometric Manhattan distance between the predicted child node and the current child node, that is, the weight of the coplanar child node is 1, the weight of the collinear child node is 1/2, and the weight of the collinear child node is 1/2.
  • the node weight is 1/3, and the weighted average of the attribute reconstruction values of all predicted child nodes is calculated as the attribute predicted value (especially, for the first child node encoded, there is no reference point for prediction, and its attribute predicted value is set to 0 ). According to these two conditions:
  • Condition b) is coded before the current child node.
  • this technology acts on the intra-frame prediction part of the PCRM point cloud coding framework, and acts on both the encoding end and the decoding end.
  • An embodiment of the present application provides an intra-frame prediction method, the method is applicable to the encoding end, and the method can be applied to electronic equipment with information processing capabilities, and the electronic equipment can be a notebook computer, a TV, a projector, a mobile phone, Computers, tablets, virtual reality (Virtual Reality, VR) headsets and other devices that have point cloud video codec functions or have encoding functions.
  • the electronic equipment can be a notebook computer, a TV, a projector, a mobile phone, Computers, tablets, virtual reality (Virtual Reality, VR) headsets and other devices that have point cloud video codec functions or have encoding functions.
  • VR Virtual Reality
  • FIG. 8 is a schematic diagram of an implementation flow of an intra prediction method according to an embodiment of the present application. As shown in FIG. 8, the method may include the following steps 801 to 804:
  • Step 801 based on the first search range, search for the first predicted child node of the current child node;
  • Step 802 if the number of the first predicted sub-node is less than the first threshold, based on the second search range, search for the second predicted sub-node of the current sub-node;
  • Step 803 if the total number of the first and second predicted child nodes is less than the first threshold and the number of search rounds is less than N, based on the third search range, search for the third predictor of the current child node The node, until the search end condition is reached, enters step 804; wherein, the search end condition includes: the number of all predicted child nodes obtained when the number of search rounds reaches N or the number of search rounds does not reach N is greater than or equal to the first threshold; wherein , each search range does not overlap; wherein, N is a threshold value greater than or equal to 2;
  • Step 804 Determine the predicted attribute value of the current child node based on the obtained predicted attribute value of the child node.
  • the search rounds of the predicted child nodes are limited by the threshold value of N, so that after N rounds of searches (that is, the number of search ranges used reaches the threshold value), even if all the predicted When the number of sub-nodes is less than the first threshold, the search of the predicted sub-nodes based on the search range is terminated, thereby shortening the search delay and improving coding efficiency.
  • step 801 based on the first search range, the first predicted child node of the current child node is obtained by searching.
  • the first target upper-level node may be determined based on the upper-level node of the current child node and the first condition; and the first target upper-level node is used as the first search range.
  • the upper-level node may be the parent node of the current child node, or its grandparent node or great-grandfather node, etc.
  • the level of the determined target upper-level node and the upper-level node of the current child node may be the same or different.
  • the parent node of the current child node is the parent node, and the target parent node is also at the parent node level, that is, the node also includes 8 child nodes.
  • the types of the parent node of the current child node and the target parent node are not limited to the above examples.
  • the so-called first condition is a criterion for selecting the first target superior node.
  • the first condition which may be arbitrary, and it is better to finally obtain an accurate attribute prediction value.
  • the first condition includes: the current child node occupies one or more collinear parent nodes of the edge of its parent node, one or more co-point parent nodes of the endpoint of the occupied edge, occupies the parent node One or more coplanar parent nodes of the face and/or parent nodes of the current child node, and these parent nodes are non-null nodes that are coded before the current child node.
  • the orientation of the current child node in the parent node is the lower left front, that is, the position shown by the white dot in the figure
  • the first condition includes: the current child node
  • the index numbers of a target superordinate node are 3, 5, 6, 1, 2 and 4.
  • the first target upper-level nodes corresponding to different orientations of the current child node in its parent node can be obtained, which will not be described one by one here.
  • the parent node of the current child node is a grandparent node
  • the corresponding first condition may be similar to the above example, the first condition includes: the edge occupied by the parent node of the current child node in the grandparent node of the current child node One or more co-linear grandparents, one or more co-point grandparents of the endpoints of occupied edges, and/or one or more co-planar grandparents of occupied faces.
  • the first condition is not limited to the above-mentioned embodiments.
  • the first condition may further include: a parent node coded before the current child node whose distance to the parent node of the current child node is less than the first distance.
  • the type of the first distance may be Manhattan distance or Euclidean distance.
  • step 802 if the number of the first predicted sub-node is smaller than the first threshold, based on the second search range, the second predicted sub-node of the current sub-node is obtained by searching.
  • the method further includes: when the number of the first predicted sub-node is greater than or equal to the first threshold, based on the attribute value (such as attribute reconstruction value, interpolation, etc.) of the first predicted sub-node, determine The predicted value of the property of the current child node.
  • attribute value such as attribute reconstruction value, interpolation, etc.
  • the size of the first threshold which can be any value, and it is better to finally obtain an accurate attribute prediction value.
  • the first threshold is 3 or 6, etc.
  • step 802 may be implemented as follows: determine a second target upper-level node based on the upper-level node of the current child node and the second condition; and use the second target upper-level node as the second search range.
  • the so-called second condition is also a criterion for selecting the second target superior node.
  • the second condition which may be arbitrary, and it is better to finally obtain an accurate attribute prediction value.
  • the second condition includes: one or more collinear parent nodes, one or more coplanar parent nodes, and/or one or more co-point parent nodes of the parent node of the current child node, and are in A non-empty non-first target parent node encoded before the current child node.
  • the orientation of the parent node (index number 7) of the current child node is the upper left front, that is, the position shown by the white dot in the figure
  • the second condition includes: the current child node
  • the coplanar parent node of the parent node of the node is a non-empty non-first target parent node coded before the current child node, and the index numbers of the second target parent node of the current child node are 6, 2 and 4.
  • the second target upper-level nodes corresponding to different orientations of the current child node in its parent node can be obtained, which will not be described one by one here.
  • the parent node of the current child node is a grandparent node
  • the corresponding second condition may be similar to the above example, and the second condition includes: one or more collinear grandparent nodes of the grandparent node of the current child node, one or Multiple co-planar grandparents and/or one or more co-planar grandparents, and is a non-empty non-first-target superordinate node encoded before the current child node.
  • the second condition is not limited to the above-mentioned embodiment, and the second target upper-level node is not limited to being at the parent node or grandparent node level, and may also be a node at a higher level.
  • the second condition may further include: a parent node coded before the current child node whose distance to the parent node of the current child node is less than the second distance.
  • the type of the second distance may be Manhattan distance or Euclidean distance. The second distance is greater than or equal to the first distance.
  • step 803 when the total number of the first and second predicted child nodes is less than the first threshold and the number of search rounds is less than N, based on the third search range, the third Predict child nodes until the search end condition is reached, and enter step 804; where the search end condition includes: the number of all predicted child nodes obtained when the number of search rounds reaches N or the number of search rounds does not reach N is greater than or equal to the first threshold ; Wherein, each search range does not overlap with each other; where N is a threshold value greater than or equal to 2.
  • the attribute value of the child node is used to determine the predicted value of the attribute of the current child node.
  • one embodiment is to enter step 804; another embodiment is: from the first K non-empty candidate child nodes under the coding order of the current child node, search for all The fourth predicted child node of the current child node; then enter step 804.
  • each search range includes different nodes.
  • the number of search rounds reaches N and the number of all predicted child nodes obtained is greater than or equal to the first threshold, based on the obtained attribute values of the predicted child nodes, determine the current child node property predictions.
  • the search for the predicted child node is ended, based on all the predicted child nodes of the current child node obtained The attribute value of the node, which determines the attribute prediction value of the current child node.
  • the fourth predicted child node of the current child node is obtained by searching; based on the attribute values of the first, second, third and fourth predicted child nodes, all predicted child nodes of the current child node are obtained attribute value, determine the attribute prediction value of the current child node.
  • the fourth predicted child node can be searched in this way, that is, according to the encoding order or the reverse order of the encoding order, the first K non-empty candidate child nodes are traversed sequentially:
  • the current total number of predicted child nodes is greater than or equal to the first threshold and less than the second threshold, if the distance between the current candidate child node and the current child node is less than the distance between all the currently obtained predicted child nodes and the current child node The maximum distance of the current candidate child node is determined as the fourth predicted child node;
  • the current candidate The child node is used as the fourth predicted child node to replace the predicted child node corresponding to the maximum distance; or, when the current total number of predicted child nodes is equal to the second threshold, if the distance between the current candidate child node and the current child node is equal to The maximum distance between all the currently obtained predicted child nodes and the current child node and the current candidate child node is coded before the predicted child node corresponding to the maximum distance, and the current candidate child node is used as the fourth predicted child node to replace the The prediction child node corresponding to the maximum distance.
  • the fourth predicted child node can also be searched in this way, that is, according to the coding sequence or the reverse sequence of the coding sequence, the first K non-empty candidate child nodes are traversed sequentially:
  • the current total number of predicted child nodes is greater than or equal to the first threshold and less than the second threshold, if the distance between the current candidate child node and the current child node is less than the distance between all the currently obtained predicted child nodes and the current child node The maximum distance of the current candidate child node is determined as the fourth predicted child node;
  • the distance between the current candidate sub-node and the current sub-node is equal to the maximum distance between all currently obtained predicted sub-nodes and the current sub-node and the current candidate sub-node.
  • the node is encoded before the predicted child node corresponding to the maximum distance, and the current candidate child node is used as the fourth predicted child node to replace the predicted child node corresponding to the maximum distance.
  • K may be any value, and the range of K is not limited.
  • K is 32, 56, 128 or 256, etc.
  • there is no limitation on the values of the first threshold and the second threshold and it is appropriate not to lose the accuracy of the intra prediction nor to lose the search efficiency.
  • the first threshold is 3, and the second threshold is 6; for another example, the first threshold is 3, and the second threshold is 16, etc.
  • the second threshold may not be set, that is, the fourth predicted child node may also be searched in this way, that is, according to the coding sequence or the reverse sequence of the coding sequence, sequentially traverse the first K Non-empty candidate child nodes:
  • the current candidate child node is used as the fourth predicted child node to replace the predicted child node corresponding to the maximum distance.
  • the fourth predicted child node can also be searched in this way, that is, according to the encoding order or the reverse order of the encoding order, the first K non-empty candidate child nodes are traversed sequentially:
  • the distance between the current candidate sub-node and the current sub-node is equal to the maximum distance between all currently obtained predicted sub-nodes and the current sub-node and the current candidate sub-node.
  • the node is encoded before the predicted child node corresponding to the maximum distance, and the current candidate child node is used as the fourth predicted child node to replace the predicted child node corresponding to the maximum distance.
  • the first threshold may be any value, and it is appropriate not to lose accuracy of intra prediction and search efficiency.
  • the first threshold is 3, 6, etc.
  • the electronic device can find enough sub-nodes within the search range as much as possible when the number of predicted sub-nodes obtained is not enough. , that is, try to avoid searching from the first K non-empty candidate sub-nodes under the coding order of the current sub-node because it is not enough, so as to further save the search delay and further improve the coding efficiency.
  • the reason why the search range is less than the first K non-empty candidate child nodes is that the search range may not necessarily include the K non-empty candidate child nodes that have been encoded before the current child node.
  • encoding sequence is used to encode the child nodes sequentially.
  • the encoding order may be Morton order, Hilbert order or other encoding order, etc.
  • the specific values of the first threshold and the second threshold are not limited, and may be in any range, and it is appropriate to meet the accuracy of intra prediction without losing search efficiency.
  • the first threshold is 3, and the second threshold is 6; in this way, without greatly increasing the search complexity, using more prediction sub-nodes can improve the accuracy of intra prediction, thereby reducing residual Poorly occupied bandwidth.
  • the attribute value is used to predict the attribute, and the predicted child node can also be filled to the second threshold to determine the predicted attribute value; wherein, the attribute value of the filled predicted child node can be any value, for example, its attribute value is any determined
  • the attribute reconstruction value of the predicted child node is, for example, its attribute value is a fixed constant, or its attribute value is the attribute value of the predicted child node with the closest distance to the current predicted child node among the determined predicted child nodes.
  • the current child node is the Mth child node to be encoded; wherein, M is greater than or equal to 4, so as to ensure that the child node before the current child node is not less than 4, it is guaranteed to find out as accurate as possible
  • the predicted sub-nodes so as to improve the accuracy of the predicted value of the attributes of the current sub-nodes, so that the corresponding residuals occupy less bandwidth.
  • a specific attribute value is set as the attribute prediction of the first child node value; in the case that the current child node is the subsequent child node of the first child node and the child node before the Mth child node, reconstruct the value according to the attribute of the encoded child node, and obtain the The predicted value of the attribute for subsequent child nodes.
  • the specific attribute value may be any value, which is not limited in this embodiment of the present application.
  • the specific attribute value is (0, 0, 0); another example, the specific attribute value is (128, 128, 128); another example, the specific attribute value is (0, 64, 0); another example, the specific attribute value is (128, 0, 0).
  • the three components for a particular attribute value may or may not be equal.
  • the search range is at the upper-level node level.
  • the predicted child node can be selected from the child nodes included in the target upper node based on the distance; for example , determine a non-empty child node whose distance from the current child node in the target parent node is less than a certain distance and coded before the current child node as the predicted child node.
  • the type of the distance can be various, for example, it can be the Manhattan distance or the Euclidean distance.
  • the method further includes: determining a first target child node based on the current child node and a third condition; using the first target child node as the first search range; based on the current child node and a fourth condition, determining a second target child node; using the second target child node as the second search range.
  • the third condition includes: a child node whose distance to the current child node is less than or equal to the third distance; the fourth condition includes: the distance to the current child node is less than or equal to A child node of a fourth distance; wherein, the fourth distance is greater than or equal to the third distance.
  • third distance and the fourth distance which may be Manhattan distance or Euclidean distance.
  • the search can be ended, directly based on The attribute values of these predicted child nodes get the predicted attribute values of the current child node, and you can continue to search for the next child node, if the next child node is a non-empty child node encoded before the current child node and the distance from the current child node (for example Manhattan distance) is less than the maximum distance between the current predicted child node and the current child node, then this child node is used as the first predicted child node to replace the first predicted child node corresponding to the maximum distance.
  • the next child node is a non-empty child node encoded before the current child node and the distance from the current child node (for example Manhattan distance) is less than the maximum distance between the current predicted child node and the current child node, then this child node is used as the first predicted child node to replace the first predicted child node corresponding to the maximum distance.
  • the total number of the determined first predicted child nodes is greater than or equal to the first threshold but less than the second threshold, at this time, it is not necessary to continue to search for more There are many predicted child nodes, but based on the currently obtained attribute value of the first predicted child node, the predicted attribute value of the current child node is obtained; or, it can also be obtained from the first K non-empty Among the candidate child nodes of , search to obtain the fourth predicted child node of the current child node.
  • the child nodes within the first search range may be searched traversally, or in order of distance from the current child node from closest to farthest. Do a traversal search.
  • first traversing and searching for a child node whose distance from the current child node is the first sub-distance if the total number of the first predicted child nodes determined within this range satisfies the end search condition (such as the end search condition is the currently determined predicted child node greater than or equal to the first threshold, or equal to the second threshold), then no longer continue to expand the search range, that is, no longer search for other child nodes within the first search range, based on the currently obtained attributes of the first predicted child node Value, to get the attribute prediction value of the current child node; if the total number of the first predicted child nodes determined within the range of the first child distance does not meet the end search condition, then further expand the search range, based on the distance between the traversal search and the current child node is the child node of the second subdistance, and so on.
  • the end search condition such as the end search condition is the currently determined predicted child node greater than or equal to the first threshold, or equal to the second threshold
  • the mean value of the reconstructed attribute values of the encoded sub-nodes may be used as the predicted attribute value of the subsequent sub-nodes.
  • the weighted average value of the attribute reconstruction value of the encoded child nodes can also be used as the attribute prediction value of the subsequent child nodes; wherein, the weight of the encoded child nodes is related to the weight of the child node relative to the current child node The distance is negatively correlated. For example, the weight of an encoded child node is the reciprocal of the distance from the child node to the current child node.
  • all child nodes may not be traversed, and the total number of currently determined second predicted child nodes has reached the first The threshold or the second threshold is reached.
  • the search can be ended, and the attribute prediction value of the current child node can be obtained directly based on the attribute values of these predicted child nodes. You can also continue to search for the next child node.
  • the child node is used as the second predicted child node to replace the maximum distance corresponding to The second predicted child node of .
  • the first target child node includes one or more coplanar child nodes of the current child node, one or more collinear child nodes of the current child node, and/or the One or more common child nodes of the current child node.
  • the first target child node and the second target child node include child nodes whose encoding is completed before the current child node.
  • the coplanar child nodes of the current child node include child nodes with indexes 3, 5 and 6, and the collinear child nodes with indexes 1, 2, 4, 10, 12, 17, 20, 33 and 34 child nodes, the common child nodes of the current child node include child nodes with indexes 0, 8, 16, 24, 32, 40 and 48.
  • the third distance is greater than or equal to 3, for example, as shown in Figure 10, the fourth distance is 6 (correspondingly, from the perspective of vertical distance, the fourth distance is 2 , the unit is a child node, that is, the distance from the target child node to the plane where the surface of the current child node is located is 2 child nodes), the second target child node is a Manhattan distance of 2 and/or 3 from the current child node child nodes.
  • the second target child node includes indexes 24, 40, 48, 10, 12, 17, 20, 25, 26, 33, 34, 41, 44, 50, Child nodes of 52, 84, 98, 140, 161, 266, 273.
  • step 804 the predicted attribute value of the current child node is determined based on the obtained predicted attribute value of the child node.
  • the predicted value of the attribute of the current child node may be obtained according to the reconstructed value of the attribute of the predicted child node of the current child node.
  • the average or weighted average of the attribute reconstruction values of the above-mentioned predicted child nodes can be used as the predicted attribute value of the current child node;
  • the distance is negatively correlated, for example, the weight value is the reciprocal of the distance between the predicted child node and the current child node.
  • the search when searching for the predicted child nodes within a search range, the search may be carried out step by step according to a certain rule. For example, for the search range at the upper-level node level, the child nodes in the upper-level node of the coplanar target are searched first, and then the child nodes in the upper-level node of the collinear target are searched. As another example, for the search range at the sub-node level, first search for coplanar sub-nodes, then search for collinear sub-nodes, and finally search for co-point sub-nodes. Of course, it is not limited to this example, and a step-by-step search can also be performed according to other rules.
  • the search range at the parent level or the search range at the child node level in each round of search, you can search for all child nodes within the corresponding search range, or for all child nodes within the corresponding search range. Part of the child nodes are searched to get the predicted child nodes. It can be understood that within a certain search range, all child nodes may not have been traversed, and the number of all predicted child nodes currently obtained has reached the first threshold or the second threshold. In some embodiments, the search can be ended at this time.
  • predict the attribute of the current child node based on the currently obtained attribute values of all predicted child nodes;
  • the distance of the child node is less than the maximum distance between all currently obtained predicted child nodes and the current child node, or the distance between the current candidate child node and the current child node is equal to the distance between all currently obtained predicted child nodes and the current
  • the maximum distance of the child node and the current candidate child node is encoded/decoded before the predicted child node corresponding to the maximum distance, and the current candidate child node is used as the fourth predicted child node to replace the predicted child node corresponding to the maximum distance.
  • An embodiment of the present application provides a point cloud encoding method, the method comprising: performing the steps in the intra-frame prediction method of the encoding end on the current child node of the point cloud to obtain the attribute prediction value of the current child node; determining the A residual between the predicted attribute value of the current child node and the original attribute value of the current child node; encoding the residual of the current child node into an attribute code stream.
  • the reconstruction residual of the current child node is determined; and the reconstruction residual is superimposed on the property prediction value of the current child node to obtain the property reconstruction value of the current child node.
  • transformation and/or quantization can be performed on the residual of the current child node, and then post-processing such as inverse quantization and/or inverse transformation can be performed on the processed residual to obtain the reconstructed residual of the current child node Difference.
  • the description of the above embodiment of the point cloud encoding method is similar to the description of the above embodiment of the intra prediction method at the encoding end, and has similar beneficial effects as the method embodiment.
  • the technical details not disclosed in the embodiment of the point cloud encoding method of the present application please refer to the description of the embodiment of the intra prediction method at the encoding end of the present application for understanding.
  • the embodiment of the present application provides an intra-frame prediction method, which is applicable to the decoding end, and the method can be applied to electronic equipment with information processing capabilities, and the electronic equipment can be a TV, a projector, a mobile phone, a computer, etc. , tablets, virtual reality (Virtual Reality, VR) headsets and any other devices with point cloud video encoding and decoding functions or decoding functions.
  • the method may include the following steps 121 to 124 (because the steps shown in Figure 8 are the same, for avoiding repetition, the corresponding drawings are omitted here):
  • Step 121 based on the first search range, search for the first predicted child node of the current child node;
  • Step 122 if the number of the first predicted sub-node is less than the first threshold, based on the second search range, search for the second predicted sub-node of the current sub-node;
  • Step 123 in the case that the total number of the first and second predicted child nodes is less than the first threshold and the number of search rounds is less than N, based on the third search range, search to obtain the third predictor of the current child node
  • Step 124 Determine the predicted attribute value of the current child node based on the obtained predicted attribute value of the child node.
  • the method further includes: when the number of search rounds reaches N and the number of all predicted child nodes obtained is greater than or equal to the first threshold, based on the obtained attribute values of the predicted child nodes, determine the Describe the predicted value of the attribute of the current child node.
  • the method further includes: when the number of search rounds reaches N and the number of all predicted sub-nodes obtained is less than the first threshold, starting from the top K sub-nodes in the decoding order of the current sub-node Among non-empty candidate child nodes, search for the fourth predicted child node of the current child node; based on the attribute values of the first, second, third and fourth predicted child nodes, determine the current child node attribute predictions.
  • the searching for the fourth predicted sub-node of the current sub-node from the first K candidate sub-nodes in the decoding order of the current sub-node includes: according to the decoding order or the reverse order of the decoding order, traversing the first K non-empty candidate child nodes in turn:
  • the current total number of predicted child nodes is greater than or equal to the first threshold and less than the second threshold, if the distance between the current candidate child node and the current child node is less than the distance between all the currently obtained predicted child nodes and the current child node The maximum distance of the current candidate child node is determined as the fourth predicted child node;
  • the current total number of predicted child nodes is equal to the second threshold, if the distance between the current candidate child node and the current child node is less than the maximum distance between all the currently obtained predicted child nodes and the current child node, or, the current The distance between the candidate child node and the current child node is equal to the maximum distance between all the currently obtained predicted child nodes and the current child node, and the current candidate child node is decoded before the predicted child node corresponding to the maximum distance.
  • the current candidate child node is used as the fourth predicted child node to replace the predicted child node corresponding to the maximum distance.
  • the searching for the fourth predicted sub-node of the current sub-node from the first K candidate sub-nodes in the decoding order of the current sub-node includes:
  • the current total number of predicted child nodes is equal to the first threshold, if the distance between the current candidate child node and the current child node is less than the maximum distance between all the currently obtained predicted child nodes and the current child node, or, the current The distance between the candidate child node and the current child node is equal to the maximum distance between all the currently obtained predicted child nodes and the current child node, and the current candidate child node is decoded before the predicted child node corresponding to the maximum distance.
  • the current candidate child node is used as the fourth predicted child node to replace the predicted child node corresponding to the maximum distance.
  • the method further includes: when the total number of the first predictor child node and the second predictor child node is greater than or equal to the first threshold, or, the first predictor When the number of nodes is greater than or equal to the first threshold, the predicted attribute value of the current child node is determined according to the attribute values of the first predicted child node and the second predicted child node.
  • the current child node is the Mth child node; wherein, M is greater than or equal to 4.
  • the method further includes: when the current child node is the first child node, setting a specific attribute value as the predicted attribute value of the first child node; If the child node is a subsequent child node of the first child node and is a child node before the Mth child node, according to the attribute reconstruction value of the decoded child node, the attribute prediction of the subsequent child node is obtained value.
  • the method further includes: determining a first target upper-level node based on the upper-level node of the current child node and the first condition; using the first target upper-level node as the first search range; based on the current child node
  • the upper-level node of the node and the second condition determine a second target upper-level node; and use the second target upper-level node as the second search range.
  • the first condition includes: the current child node occupies the collinear parent node of the edge of its parent node, and the co-point parent node of the endpoint of the occupied edge occupies the surface of the parent node
  • the coplanar parent node of and/or the parent node of the current child node, and these parent nodes are non-empty nodes that are coded before the current child node. It is not limited here whether the number of each node such as the collinear parent node, the co-point parent node, and the co-planar parent node is one or more.
  • the first condition includes: a parent node coded before the current child node whose distance to the parent node of the current child node is less than the first distance.
  • the second condition includes: the collinear parent node, the coplanar parent node and/or the co-point parent node of the parent node of the current child node, and is a non- An empty non-first target upper-level node; or, the second condition includes: the upper-level node coded before the current child node whose distance from the upper-level node of the current child node is less than the second distance; the second distance is greater than or equal to the first distance.
  • the collinear parent node referred to in the second condition can be one or more collinear parent nodes of the parent node of the current child node
  • the coplanar parent node referred to in the second condition can be the current child node
  • One or more co-planar parent nodes of the parent node of , the co-point parent node referred to in the second condition may be one or more co-planar parent nodes of the parent node of the current child node.
  • there is no limit to the number of the second target nodes so that it is appropriate to obtain prediction accuracy without losing search efficiency.
  • the method further includes: determining a first target child node based on the current child node and a third condition; using the first target child node as the first search range; based on the current child node and a fourth condition, determining a second target child node; using the second target child node as the second search range.
  • the third condition includes: a child node whose distance to the current child node is less than or equal to the third distance; the fourth condition includes: the distance to the current child node is less than or a child node equal to a fourth distance; wherein, the fourth distance is greater than or equal to the third distance.
  • the first target child node includes a co-planar child node of the current child node, a collinear child node of the current child node, and/or a co-point child node of the current child node.
  • the coplanar child nodes of the current child node include child nodes with indexes 3, 5 and 6, and the collinear child nodes of the current child node include child nodes with indexes 1, 2, 4, 10, 12, 17, 20,
  • the child nodes of 33 and 34, the common child nodes of the current child node include child nodes with indexes 0, 8, 16, 24, 32, 40 and 48.
  • the fourth distance is greater than or equal to 3
  • the second target child node is a child node with a Manhattan distance of 2 and/or 3 from the current child node.
  • the second target child node includes indexes 24, 40, 48, 10, 12, 17, 20, 25, 26, 33, 34, 41, 44, 50, 52, 84, 98, 140, 161, Child nodes of 266 and 273.
  • first target child node and the second target child node include child nodes whose decoding is completed before the current child node.
  • the predicted child node comprises a non-empty child node decoded prior to the current child node.
  • the determining the predicted attribute value of the current child node based on the obtained predicted attribute value of the child node includes: obtaining the attribute of the current child node based on the obtained attribute reconstruction value of the predicted child node Predictive value.
  • the intra prediction method at the decoding end is the same as the intra prediction method at the encoding end. Therefore, the description of the above embodiment of the intra prediction method at the decoding end is similar to the description of the above embodiment of the intra prediction method at the encoding end. and have similar beneficial effects to those of the embodiment of the intra-frame prediction method at the encoding end.
  • the description of the embodiment of the intra prediction method at the encoding end of this application please refer to the description of the embodiment of the intra prediction method at the encoding end of this application for understanding.
  • the embodiment of the present application provides a point cloud decoding method, the method includes: analyzing the received attribute code stream to obtain the reconstruction residual of the current sub-node; performing the intra-frame prediction method as described on the decoding end on the current sub-node The step in is to obtain the attribute prediction value of the current child node; and determine the attribute reconstruction value of the current child node according to the attribute prediction value of the current child node and the reconstruction residual.
  • Embodiment 1 the geometric reconstruction point cloud is recursively divided into several voxels by the octree, and the sub-nodes in each voxel perform the intra-frame prediction process to calculate the attribute prediction value according to the Morton coding sequence.
  • Sub-nodes perform the following a1), c1), d1) processes, and perform b1), c1), d1) processes for the rest of the sub-nodes:
  • R is the set of predicted child nodes
  • the weight value is the reciprocal of the geometric Manhattan distance between the predicted child node and the current child node.
  • the residual is the difference between the original attribute value of the current child node and the predicted value of the attribute, and then the residual is transformed, quantized, etc.;
  • the attribute prediction value is superimposed with the residual information after operations such as inverse quantization and inverse transformation to obtain the attribute reconstruction value of the current child node, which is used as reference information for subsequent coding units.
  • the implementation method of the attribute decoder of PCRM is as follows.
  • the geometric reconstruction point cloud is recursively divided into several voxels by the octree, and the sub-nodes in each voxel perform the intra-frame prediction process to calculate the attribute prediction value according to the same Morton order as the encoding process.
  • Execute a2) and c2) processes and execute b2) and c2) processes for other points:
  • the intra prediction method adopted by PCRM is divided into two steps:
  • a) take the coplanar subnode, collinear subnode and copoint subnode of the current subnode as the search range of the predicted subnode, and determine at least 3 and up to 6 subnodes as the predicted subnode;
  • the technical solution of the embodiment of the present application is implemented at the codec end, and the technical solution is implemented when intra-frame prediction is performed.
  • an intra-frame prediction algorithm based on distance priority is provided.
  • the prediction child node with the closest distance can be found with maximum efficiency.
  • a specific realization of the intra-frame prediction part of the technical solution of Embodiment 2 at the coding end is as follows.
  • the geometric reconstruction point cloud is recursively divided into several voxels by the octree, and the sub-nodes in each voxel perform the intra-frame prediction process to calculate the attribute prediction value according to the Morton coding order, and execute the coded 1st, 2nd, and 3rd sub-nodes a), f), g) process, and b), c), d), e), f), g) process for other points.
  • the current child node is the first child node of encoding, there is no reference child node for prediction, and the attribute prediction value of the current child node is directly set to (128, 128, 128); the current child node is the encoded
  • the first child node is used as the predicted child node, and its attribute prediction value is the attribute reconstruction value of the first child node;
  • the current child node is the third child node of the code, the first child node is used and the second child node as the predicted child node, whose attribute prediction value is the weighted average of the attribute reconstruction values of the first child node and the second child node;
  • the index of the current child node is 56
  • the predicted child node search range is child nodes 24, 40, and 48 with a Manhattan distance of 2 from the current child node, and child nodes 10 and 12 with a Manhattan distance of 3 from the current child node.
  • FIG. 11 is a schematic diagram of the predicted sub-node search range in the left, front, bottom, right, back, and top directions of the current sub-node.
  • the candidate child node is selected as the predicted child node, and then all predicted The child nodes are rearranged in descending order of the Manhattan distance from the current child node;
  • the number of predicted child nodes is equal to 6
  • the Manhattan distance of the current third candidate child node is less than the Manhattan distance of the last predicted child node, or the Manhattan distance of the current third candidate child node is equal to the Manhattan distance of the last predicted child node and The index of the current third candidate child node is smaller than the index of the predicted child node at the end, then replace the predicted child node at the end with the candidate child node, and then rearrange all the predicted child nodes according to the order of Manhattan distance from small to large;
  • R is the set of predicted child nodes, is the attribute reconstruction value of the predicted child node, w i is the weight of the predicted child node, and the weight value is the reciprocal of the geometric Manhattan distance between the predicted child node and the current child node;
  • the residual is the difference between the original attribute value of the current child node and the predicted value, and then the residual is transformed, quantized, etc.;
  • the specific flow of the intra-frame prediction at the decoding end in the technical solution of Embodiment 2 is as follows.
  • the geometric reconstruction point cloud is recursively divided into several voxels by the octree, and the sub-nodes in each voxel perform the intra-frame prediction process to calculate the attribute prediction value according to the same Morton order as the encoding process.
  • For the first sub-node of decoding Execute a), f) process, and other child nodes execute b), c), d), e), f) process:
  • the candidate child node is selected as the predicted child node, and then all predicted The child nodes are rearranged in descending order of the Manhattan distance from the current child node;
  • the number of predicted child nodes is equal to 6
  • the Manhattan distance of the current third candidate child node is less than the Manhattan distance of the last predicted child node, or the Manhattan distance of the current third candidate child node is equal to the Manhattan distance of the last predicted child node and The index of the current third candidate child node is smaller than the index of the predicted child node at the end, then replace the predicted child node at the end with the candidate child node, and then rearrange all the predicted child nodes according to the order of Manhattan distance from small to large;
  • R is the set of predicted child nodes, is the attribute reconstruction value of the predicted child node, w i is the weight of the predicted child node, and the weight value is the reciprocal of the geometric Manhattan distance between the predicted child node and the current child node;
  • Embodiment 2 is applied to the intra-frame prediction part in the codec framework.
  • various coding sequences can be used, including but not limited to Morton sequence or Hilbert sequence, etc.;
  • the 3 and 6 described in "a minimum of 3 and a maximum of 6 nodes as predicted child nodes" can be other numerical combinations, such as 3 and 16, etc.;
  • the search range (that is, the second search range) for the predicted child nodes under the fourth distance can be expanded to 79;
  • the intra-frame prediction algorithm based on distance priority may adopt various methods for selecting weight values, including but not limited to weights based on Euclidean distance, fixed constant weights, and the like.
  • the embodiment of this application will be applicable to the intra-frame prediction codec part.
  • the child node closest to the current child node is first located, and when it is not found, it is in the Morton order.
  • a full search is performed among the first 32 sub-nodes of the current sub-node, so that the predicted sub-node closest to the current sub-node can be found with maximum efficiency, thereby improving the coding efficiency.
  • the predicted sub-node search range under the fourth distance in the above-mentioned embodiment can be expanded to 79 sub-nodes, as shown in FIG. 14 , plus an index of 0 , 1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 16, 18, 19, 22, 27, 32, 36, 37, 38, 45, 54, 64, 66, 68, 70 ,80,82,86,96,100,102,128,129,132,133,136,137,141,160,164,165,192,196,256,257,258,259,264,265,267 , 272, 274, 275, 320, 322, 384, and 385 child nodes.
  • the Manhattan distance-based weighted average in this embodiment is changed to other methods, such as Euclidean distance-based weighted average, fixed constant-based weighted average, and the like.
  • search for the point closest to Manhattan among the first 32 points under the Morton order of the current sub-node 32 can be other values, Such as 128, etc.;
  • weighted average formula used in "calculate the attribute decoding values of all predicted child nodes and calculate the attribute prediction value of the current child node" in the embodiment can also be replaced by other calculation methods
  • weight value selection methods can be used, including but not limited to weights based on Manhattan distance, weights based on Euclidean distance, fixed constant weights, etc.;
  • the second search range can be increased to 58 child nodes, and the corresponding index numbers are: 0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 16, 18, 19, 22, 27, 32, 36, 37, 38, 45, 54, 64, 66, 68, 70, 80, 82, 86, 96, 100, 102, 128, 129, 132, 133, 136, 137, 141, 160, 164, 165, 192, 196, 256, 257, 258, 259, 264, 265, 267, 272, 274, 275, 320, 322, 384, 385.
  • the range is expanded into two layers.
  • the range is expanded to that described in c), which can be expanded here: divided into N layers , such as 1, 2, 4, 10, 12, 17, 20, 33, 34 for one layer, 8, 16, 24, 32, 40, 48 for one layer, 25, 26, 41, 44, 50, 52, 84, 98, 140, 161, 266, 273, etc.;
  • search range at the sub-node level mentioned in this article is also applicable to the search range at the target upper-level node level, except that the index number refers to the node at the upper-level node level.
  • the second search range includes 58 second target upper-level nodes
  • the corresponding index numbers are: 0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 16, 18, 19, 22, 27, 32, 36, 37, 38, 45, 54, 64, 66, 68, 70, 80, 82, 86, 96, 100, 102, 128, 129, 132, 133, 136, 137, 141, 160, 164, 165, 192, 196, 256, 257, 258, 259, 264, 265, 267, 272, 274, 275, 320, 322, 384, 385.
  • the same is true for other examples, which will not be described one by one here.
  • the intra prediction apparatus can be implemented by an encoder or a processor in an electronic device; of course, it can also be It is realized by a specific logic circuit; in the process of implementation, the processor can be a central processing unit (CPU), a microprocessor (MPU), a digital signal processor (DSP), a field programmable gate array (FPGA) or a graphics processing unit.
  • the processor can be a central processing unit (CPU), a microprocessor (MPU), a digital signal processor (DSP), a field programmable gate array (FPGA) or a graphics processing unit.
  • DSP digital signal processor
  • FPGA field programmable gate array
  • GPU Graphics Processing Unit
  • FIG. 16 is a schematic structural diagram of an intra-frame prediction device according to an embodiment of the present application. As shown in FIG. 16 , the intra-frame prediction device 160 is applied to the encoding end and includes:
  • the second search module 161 is configured to search for the first predicted child node of the current child node based on the first search range; and when the number of the first predicted child node is less than the first threshold, based on the second Search range, search to obtain the second predicted child node of the current child node; when the total number of the first and second predicted child nodes is less than the first threshold and the number of search rounds is less than N, based on the third search range, search Obtain the third predicted child node of the current child node; when the number of search rounds reaches N or when the number of all predicted child nodes obtained when the number of search rounds does not reach N is greater than or equal to the first threshold, trigger the first Two intra-frame prediction modules; wherein, each search range does not overlap each other, and N is a threshold value greater than or equal to 2;
  • the second intra prediction module 162 is configured to obtain the predicted attribute value of the current child node based on the obtained predicted attribute value of the child node.
  • the second intra-frame prediction module 162 is configured to: when the number of search rounds reaches N and the number of all predicted child nodes obtained is greater than or equal to the first threshold, based on the obtained predicted child nodes attribute value, determine the attribute prediction value of the current child node.
  • the second search module 161 is configured to: when the number of search rounds reaches N and the number of all predicted child nodes obtained is less than the first threshold, start from the encoding order of the current child nodes Among the first K non-empty candidate child nodes, search for the fourth predicted child node of the current child node; trigger the second intra prediction module to make it based on the first, second, third and fourth 4. Predict the attribute value of the child node, and determine the attribute prediction value of the current child node.
  • the second search module 161 is configured to: sequentially traverse the first K non-empty candidate child nodes according to the encoding order or the reverse order of the encoding order: when the current total number of predicted child nodes is less than When the first threshold is used, the current candidate child node is determined as the fourth predicted child node; when the current total number of predicted child nodes is greater than or equal to the first threshold and less than the second threshold, if the current candidate child node is the same as the The distance of the current child node is less than the maximum distance between all predicted child nodes currently obtained and the current child node, and the current candidate child node is determined as the fourth predicted child node; when the current total number of predicted child nodes is equal to the second threshold , if the distance between the current candidate child node and the current child node is less than the maximum distance between all the currently obtained predicted child nodes and the current child node, replace the maximum distance with the current candidate child node as the fourth predicted child node corresponding predicted sub-node; or,
  • the second search module 161 is configured to: sequentially traverse the first K non-empty candidate child nodes according to the encoding order or the reverse order of the encoding order: when the current total number of predicted child nodes is less than When the first threshold is used, the current candidate child node is determined as the fourth predicted child node; when the current total number of predicted child nodes is greater than or equal to the first threshold and less than the second threshold, if the current candidate child node is the same as the The distance of the current child node is less than the maximum distance between all predicted child nodes currently obtained and the current child node, and the current candidate child node is determined as the fourth predicted child node; when the current total number of predicted child nodes is equal to the second threshold , if the distance between the current candidate child node and the current child node is equal to the maximum distance between all currently obtained predicted child nodes and the current child node and the current candidate child node is before the predicted child node corresponding to the maximum distance For encoding, the current candidate child node
  • the second search module 161 is configured to: sequentially traverse the first K non-empty candidate child nodes according to the encoding order or the reverse order of the encoding order: when the current total number of predicted child nodes is less than When the first threshold is reached, the current candidate child node is determined as the fourth predicted child node; when the current total number of predicted child nodes is equal to the first threshold, if the distance between the current candidate child node and the current child node is less than the current Get the maximum distance between all predicted child nodes and the current child node, use the current candidate child node as the fourth predicted child node to replace the predicted child node corresponding to the maximum distance; or, when the current total number of predicted child nodes is equal to the When the first threshold is mentioned, if the distance between the current candidate child node and the current child node is equal to the maximum distance between all currently obtained predicted child nodes and the current child node and the current candidate child node is at the maximum distance corresponding Before the predicted child node is coded, the current candidate
  • the second search module 161 is configured to: sequentially traverse the first K non-empty candidate child nodes according to the encoding order or the reverse order of the encoding order: when the current total number of predicted child nodes is less than When the first threshold is set, the current candidate child node is determined as the fourth predicted child node; when the current total number of predicted child nodes is equal to the first threshold, if the distance between the current candidate child node and the current child node is equal to the current Get the maximum distance from the current child node among all predicted child nodes and the current candidate child node is coded before the predicted child node corresponding to the maximum distance, and replace the current candidate child node as the fourth predicted child node The predicted child node corresponding to the maximum distance.
  • the second search module 161 is configured to: when the total number of the first predicted child node and the second predicted child node is greater than or equal to the first threshold, or, the first predicted child node When the number of a predicted sub-node is greater than or equal to the first threshold, the second intra-frame prediction module 162 is triggered to determine according to the attribute values of the first predicted sub-node and the second predicted sub-node The attribute prediction value of the current child node.
  • the current child node is the Mth child node; wherein, M is greater than or equal to 4.
  • the second intra prediction module 162 is further configured to: when the current child node is the first child node, set a specific attribute value as the attribute prediction of the first child node value; in the case that the current child node is the subsequent child node of the first child node and the child node before the Mth child node, reconstruct the value according to the attribute of the encoded child node, and obtain the The predicted value of the attribute for subsequent child nodes.
  • the second search module 161 is further configured such that the method further includes: determining a first target upper-level node based on the upper-level node of the current child node and the first condition; using the first target upper-level node as The first search range: determining a second target upper-level node based on the upper-level node of the current child node and the second condition; using the second target upper-level node as the second search range.
  • the first condition includes: the current child node occupies the co-linear parent node of the edge of its parent node, and the co-point parent node of the endpoint of the occupied edge occupies the co-planar surface of the parent node The parent node and/or the parent node of the current child node, and these parent nodes are non-empty nodes whose encoding is completed before the current child node; or, the first condition includes: the distance from the parent node of the current child node is less than the first The distance to the parent node encoded before the current child node.
  • the second condition includes: a collinear parent node, a co-planar parent node and/or a co-point parent node of the parent node of the current child node, and is a non-null non- The first target upper-level node; or, the second condition includes: the upper-level node coded before the current child node whose distance from the upper-level node of the current child node is less than the second distance; the second distance is greater than or equal to the first a distance.
  • the second search module 161 is further configured to: determine the first target sub-node based on the current sub-node and the third condition; use the first target sub-node as the first search range; The current child node and the fourth condition are used to determine a second target child node; and the second target child node is used as the second search range.
  • the third condition includes: a child node whose distance to the current child node is less than or equal to the third distance; the fourth condition includes: the distance to the current child node is less than or equal to the third distance child nodes with four distances; wherein, the fourth distance is greater than or equal to the third distance.
  • the first target child node includes a co-planar child node of the current child node, a collinear child node of the current child node, and/or a co-point child node of the current child node.
  • the first target child node and the second target child node include child nodes that have been encoded before the current child node.
  • the above description of the embodiment of the apparatus 160 is similar to the description of the above embodiment of the intra prediction method at the encoding end, and has similar beneficial effects to those of the method embodiment.
  • For technical details not disclosed in the device embodiments of the present application please refer to the description of the embodiment of the intra prediction method at the encoding end of the present application for understanding.
  • the encoding device provided by the embodiments of the present application, including the included modules, and each unit included in each module, can be implemented by an encoder or a processor in an electronic device; of course, it can also be implemented by a specific Logic circuit implementation; in the process of implementation, the processor can be a central processing unit (CPU), a microprocessor (MPU), a digital signal processor (DSP), a field programmable gate array (FPGA) or a graphics processing unit ( Graphics Processing Unit, GPU), etc.
  • CPU central processing unit
  • MPU microprocessor
  • DSP digital signal processor
  • FPGA field programmable gate array
  • GPU Graphics Processing Unit
  • Fig. 17 is a schematic structural diagram of an encoding device according to an embodiment of the present application. As shown in Fig. 17, an encoding device 170 includes:
  • the intra-frame prediction device 160 is configured to perform the steps in the intra-frame prediction method at the encoding end on the current sub-node of the point cloud to obtain the attribute prediction value of the current sub-node;
  • a determining module 171 configured to determine a residual between the predicted attribute value of the current child node and the original attribute value of the current child node;
  • the encoding module 172 is configured to encode the residual of the current child node into an attribute code stream.
  • the determination module 171 is further configured to: determine the reconstruction residual of the current child node; the reconstruction module is configured to superimpose the reconstruction residual and the attribute prediction value of the current child node to obtain the current The attribute reconstruction value of the child node.
  • the above description of the embodiment of the apparatus 170 is similar to the description of the above embodiment of the intra prediction method at the encoding end, and has similar beneficial effects to those of the method embodiment.
  • For technical details not disclosed in the device embodiments of the present application please refer to the description of the embodiment of the intra prediction method at the encoding end of the present application for understanding.
  • FIG. 18 is a schematic structural diagram of an intra-frame prediction device according to an embodiment of the present application. As shown in FIG. 18 , the intra-frame prediction device 180 is applied to the decoding end, including:
  • the first search module 181 is configured to: based on the first search range, search for the first predicted child node of the current child node; when the number of the first predicted child node is less than the first threshold, based on the second search range , search to obtain the second predicted child node of the current child node; and, when the total number of the first and second predicted child nodes is less than the first threshold and the number of search rounds is less than N, based on the third search Range, search to obtain the third predicted child node of the current child node; when the number of search rounds reaches N, or, when the number of search rounds does not reach N, the number of all predicted child nodes obtained is greater than or equal to the first threshold , trigger the first intra-frame prediction module 182; wherein, the respective search ranges do not overlap each other, and N is a threshold value greater than or equal to 2;
  • the first intra-frame prediction module 182 is configured to determine the predicted attribute value of the current sub-node based on the obtained predicted attribute value of the sub-node.
  • the number of search rounds reaches N and the number of all predicted child nodes obtained is greater than or equal to the first threshold, based on the obtained attribute values of the predicted child nodes, determine the current child node property predictions.
  • the first search module 181 is further configured to: when the number of search rounds reaches N and the number of all predicted child nodes obtained is less than the first threshold, the decoding order of the current child nodes Among the first K non-empty candidate child nodes below, search for the fourth predicted child node of the current child node; based on the attribute values of the first, second, third and fourth predicted child nodes, determine the Describe the predicted value of the attribute of the current child node.
  • the first search module 181 is configured to: sequentially traverse the first K non-empty candidate child nodes according to the decoding order or the reverse order of the decoding order: when the predictor When the current total number of nodes is less than the first threshold, determine the current candidate child node as the fourth predicted child node; when the current total number of predicted child nodes is greater than or equal to the first threshold and less than the second threshold, if the current candidate The distance between the child node and the current child node is less than the maximum distance between all predicted child nodes currently obtained and the current child node, and the current candidate child node is determined as the fourth predicted child node; when the current total number of predicted child nodes is equal to When the second threshold is used, if the distance between the current candidate child node and the current child node is less than the maximum distance between all the currently obtained predicted child nodes and the current child node, or, the current candidate child node and the current child node The distance of the node is equal to the maximum distance between all the currently obtained predicted predicted child nodes and the
  • the first search module 181 is configured to: sequentially traverse the first K non-empty candidate child nodes according to the decoding order or the reverse order of the decoding order: when the predictor When the current total number of nodes is less than the first threshold, the current candidate child node is determined as the fourth predicted child node; when the current total number of predicted child nodes is equal to the first threshold, if the current candidate child node and the current child node The distance of the node is less than the maximum distance between all currently obtained predicted child nodes and the current child node, or the distance between the current candidate child node and the current child node is equal to the distance between all currently obtained predicted child nodes and the current child node The maximum distance of the node and the current candidate child node is decoded before the predicted child node corresponding to the maximum distance, and the current candidate child node is used as the fourth predicted child node to replace the predicted child node corresponding to the maximum distance.
  • the first search module 181 is configured to: when the total number of the first predicted child node and the second predicted child node is greater than or equal to the first threshold, or, the first predicted child node When the number of a predicted child node is greater than or equal to the first threshold, the first intra prediction module 182 is triggered to determine according to the attribute values of the first predicted child node and the second predicted child node The attribute prediction value of the current child node.
  • the current child node is the Mth child node; wherein, M is greater than or equal to 4.
  • the first intra prediction module 182 is further configured to: when the current child node is the first child node, set a specific attribute value as the attribute prediction of the first child node value; in the case that the current child node is a subsequent child node of the first child node and a child node before the Mth child node, reconstruct the value according to the attributes of the decoded child node, and obtain the The predicted value of the attribute for subsequent child nodes.
  • the first search module 181 is further configured to: determine the first target upper-level node based on the upper-level node of the current child node and the first condition; use the first target upper-level node as the first search range ; Based on the upper-level node of the current child node and the second condition, determine a second target upper-level node; and use the second target upper-level node as the second search range.
  • the first condition includes: the current child node occupies the co-linear parent node of the edge of its parent node, and the co-point parent node of the endpoint of the occupied edge occupies the co-planar surface of the parent node The parent node and/or the parent node of the current child node, and these parent nodes are non-empty nodes whose encoding is completed before the current child node; or, the first condition includes: the distance from the parent node of the current child node is less than the first The distance to the parent node encoded before the current child node.
  • the second condition includes: a collinear parent node, a co-planar parent node and/or a co-point parent node of the parent node of the current child node, and is a non-null non- The first target upper-level node; or, the second condition includes: the upper-level node coded before the current child node whose distance from the upper-level node of the current child node is less than the second distance; the second distance is greater than or equal to the first a distance.
  • the first search module 181 is further configured to: determine the first target child node based on the current child node and the third condition; use the first target child node as the first search range; The current child node and the fourth condition are used to determine a second target child node; and the second target child node is used as the second search range.
  • the third condition includes: a child node whose distance to the current child node is less than or equal to the third distance; the fourth condition includes: the distance to the current child node is less than or equal to the third distance child nodes with four distances; wherein, the fourth distance is greater than or equal to the third distance.
  • the first target child node includes a co-planar child node of the current child node, a collinear child node of the current child node, and/or a co-point child node of the current child node.
  • the first target child node and the second target child node include child nodes that completed decoding before the current child node.
  • the predicted child node comprises a non-empty child node decoded prior to the current child node.
  • the determining the predicted attribute value of the current child node based on the obtained predicted attribute value of the child node includes: obtaining the attribute of the current child node based on the obtained attribute reconstruction value of the predicted child node Predictive value.
  • the above description of the embodiment of the intra-frame prediction device 180 is similar to the description of the above-mentioned embodiment of the intra-frame prediction method, and has similar beneficial effects as those of these method embodiments.
  • For technical details not disclosed in the device embodiments of the present application please refer to the description of the embodiment of the intra prediction method at the encoding end of the present application for understanding.
  • the decoding device provided in the embodiments of the present application, including the included modules, and the units included in each module, can be implemented by a decoder or processor in an electronic device; of course, it can also be implemented through a specific Logic circuit implementation; in the process of implementation, the processor can be a central processing unit (CPU), a microprocessor (MPU), a digital signal processor (DSP), a field programmable gate array (FPGA) or a graphics processing unit ( Graphics Processing Unit, GPU), etc.
  • CPU central processing unit
  • MPU microprocessor
  • DSP digital signal processor
  • FPGA field programmable gate array
  • GPU Graphics Processing Unit
  • Fig. 19 is a schematic structural diagram of a decoding device according to an embodiment of the present application. As shown in Fig. 19, a decoding device 190 includes:
  • the analysis module 191 is configured to analyze the received attribute code stream to obtain the reconstruction residual of the current child node;
  • the intra-frame prediction device 180 is configured to perform the steps in the intra-frame prediction method described in the decoding end of the embodiment of the present application on the current sub-node to obtain the attribute prediction value of the current sub-node;
  • the rebuilding module 192 is configured to determine the attribute reconstruction value of the current child node according to the attribute prediction value of the current child node and the reconstruction residual of the current child node.
  • the above method is implemented in the form of a software function module and sold or used as an independent product, it may also be stored in a computer-readable storage medium.
  • the computer software products are stored in a storage medium and include several instructions to make
  • the electronic device executes all or part of the methods described in the various embodiments of the present application.
  • the aforementioned storage medium includes: various media that can store program codes such as U disk, mobile hard disk, read-only memory (Read Only Memory, ROM), magnetic disk or optical disk.
  • embodiments of the present application are not limited to any specific combination of hardware and software.
  • FIG. 20 is a schematic diagram of a hardware entity of the electronic device according to the embodiment of the present application.
  • the electronic device 200 includes a memory 201 and a processor 202, and the memory 201 stores a computer program that can run on the processor 202, and the processor 202 implements the steps in the methods provided in the above-mentioned embodiments when executing the program.
  • FIG. 21 is a schematic diagram of hardware entities of the encoder according to the embodiment of the present application.
  • the encoder 210 includes a memory 211 and a processor 212; wherein, the memory 211 is used to store the A computer program running on the processor 212; the processor 212 is configured to execute the steps in the methods provided in the above-mentioned embodiments when running the computer program.
  • FIG. 22 is a schematic diagram of hardware entities of the decoder according to the embodiment of the present application.
  • the decoder 22 includes a memory 221 and a processor 222; wherein, the memory 221 is used to store A computer program running on the processor 222; the processor 222 is configured to execute the steps in the methods provided in the above-mentioned embodiments when running the computer program.
  • the memory is configured to store instructions and applications executable by the processor, and can also cache data to be processed by the processor and each module in the corresponding device (for example, point cloud data, image data, audio data, etc.) , voice communication data and video communication data), can be implemented by flash memory (FLASH) or random access memory (Random Access Memory, RAM).
  • FLASH FLASH
  • RAM Random Access Memory
  • an embodiment of the present application provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the steps in the method provided in the foregoing embodiments are implemented.
  • the disclosed devices and methods may be implemented in other ways.
  • the above-described embodiments of the touch screen system are only illustrative.
  • the division of the modules is only a logical function division.
  • the mutual coupling, or direct coupling, or communication connection between the various components shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or modules may be in electrical, mechanical or other forms of.
  • modules described above as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules; they may be located in one place or distributed to multiple network units; Part or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional module in each embodiment of the present application can be integrated into one processing unit, or each module can be used as a single unit, or two or more modules can be integrated into one unit; the above-mentioned integration
  • the modules can be implemented in the form of hardware, or in the form of hardware plus software functional units.
  • the above-mentioned integrated units of the present application are realized in the form of software function modules and sold or used as independent products, they can also be stored in a computer-readable storage medium.
  • the computer software products are stored in a storage medium and include several instructions to make
  • the electronic device executes all or part of the methods described in the various embodiments of the present application.
  • the aforementioned storage medium includes various media capable of storing program codes such as removable storage devices, ROMs, magnetic disks or optical disks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请实施例公开了帧内预测、编解码方法及装置、编解码器、设备、介质;其中,帧内预测方法包括:基于第一搜索范围,搜索得到当前子节点的第一预测子节点;在第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到当前子节点的第二预测子节点;在第一和第二预测子节点的总数小于第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于第一阈值时,基于得到的预测子节点的属性值,确定当前子节点的属性预测值;各个搜索范围互不交叠,N为大于或等于2的门限值。

Description

帧内预测、编解码方法及装置、编解码器、设备、介质 技术领域
本申请实施例涉及点云处理技术,涉及但不限于帧内预测、编解码方法及装置、编解码器、设备、介质。
背景技术
点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。点云数据通常包括三维位置信息(x,y,z)、三维颜色信息(r,g,b)和一维反射率信息(r)所组成的属性信息。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能够提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现和生物组织器官三维重建等。
伴随着应用需求的增长,海量三维(Three Dimensional,3D)点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。为更好地实现数据管理,节省服务器的存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。
点云压缩主要分为几何压缩和属性压缩,其中在提高属性压缩中的帧内预测的准确性的同时,如何进一步提高编解码效率具有一定意义。
发明内容
本申请实施例提供的帧内预测、编解码方法及装置、编解码器、设备、介质,能够在提高帧内预测的准确性,进一步提高点云的编解码效率。本申请实施例提供的帧内预测、编解码方法及装置、编解码器、设备、介质,是这样实现的:
本申请实施例提供的帧内预测方法,应用于解码端,所述方法包括:基于第一搜索范围,搜索得到当前子节点的第一预测子节点;在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值;其中,各个搜索范围互不交叠,N为大于或等于2的门限值。
本申请实施例提供的点云解码方法,所述方法包括:对接收的属性码流进行解析,得到当前子节点的重建残差;对所述当前子节点执行本申请解码端的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;根据所述当前子节点的属性预测值与所述当前子节点的重建残差,确定所述当前子节点的属性重建值。
本申请实施例提供的帧内预测方法,应用于编码端,所述方法包括:基于第一搜索范围,搜索得到所述当前子节点的第一预测子节点;在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,基于得到的预测子节点的属性值,得到所述当前子节点的属性预测值;其中,各个搜索范围互不交叠,N为大于或等于2的门限值。
本申请实施例提供的点云编码方法,应用于编码端,所述方法包括:对点云的当前子节点执行如本申请编码端的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;将所述当前子节点的残差编码为属性码流。
本申请实施例提供的帧内预测装置,应用于解码端,包括:第一搜索模块,配置成:基于第一搜索范围,搜索得到当前子节点的第一预测子节点;在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;以及,在所述第一和第二预测子节点的总数小于所述第一阈值,且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第一帧内预测模块;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;所述第一帧内预测模块,配置成基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
本申请实施例提供的解码装置,包括:解析模块,配置成对接收的属性码流进行解析,得到当前子节点的重建残差;帧内预测装置,配置成对所述当前子节点执行如本申请解码端所述的帧内预测方法中 的步骤,得到所述当前子节点的属性预测值;重建模块,配置成根据所述当前子节点的属性预测值与所述当前子节点的重建残差,确定所述当前子节点的属性重建值。
本申请实施例提供的解码器,包括存储器和处理器;其中,所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行如本申请实施例所述的适用于解码端的帧内预测方法,或者执行如本申请实施例所述的点云解码方法。
本申请实施例提供的帧内预测装置,应用于编码端,包括:第二搜索模块,配置成基于第一搜索范围,搜索得到所述当前子节点的第一预测子节点;以及在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;在所述第一和第二预测子节点的总数小于所述第一阈值,且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第二帧内预测模块;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;所述第二帧内预测模块,配置成基于得到的预测子节点的属性值,得到所述当前子节点的属性预测值。
本申请实施例提供的编码装置,包括:帧内预测装置,配置成对点云的当前子节点执行本申请编码端所述的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;确定模块,配置成确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;编码模块,配置成将所述当前子节点的残差编码为属性码流。
本申请实施例提供的一种编码器,包括存储器和处理器;所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行如本申请实施例所述的适用于编码端的帧内预测方法,或者执行如本申请实施例所述的点云编码方法。
本申请实施例提供的一种电子设备,包括存储器和处理器;所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行如本申请实施例所述的适用于解码端的帧内预测方法,或者执行如本申请实施例所述的点云解码方法,或者执行如本申请实施例所述的适用于编码端的帧内预测方法,或者执行如本申请实施例所述的点云编码方法。
本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例所述的适用于解码端的帧内预测方法,或者,该计算机程序被处理器执行时实现本申请实施例所述的点云解码方法,或者,该计算机程序被处理器执行时实现本申请实施例所述的适用于编码端的帧内预测方法,该计算机程序被处理器执行时实现本申请实施例所述的点云编码方法。
在本申请实施例中,通过N这一门限值,限制预测子节点的搜索轮次,如此经过N轮搜索(也即已使用的搜索范围数达到该门限值),即使得到的所有预测子节点的数目小于第一阈值也要结束基于搜索范围的预测子节点的搜索,从而缩短搜索时延,提高编码效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1为三维点云图像和局部放大图的示意图;
图2为一幅点云图像及其对应的数据存储格式的示意图;
图3A为音视频编码标准(Audio Video Standard,AVS)点云压缩专题组所提供的点云压缩参考平台,也即点云参考模型(Point Cloud Reference Model,PCRM)的编码框架示意图;
图3B为AVS点云压缩专题组所提供的点云压缩参考平台PCRM的解码框架示意图;
图4A为将整幅点云放置在一个正方体包围盒的示意图;
图4B为对点云的八叉树划分过程示意图;
图5为莫顿码在二维空间中的编码顺序的示意图;
图6为莫顿码在三维空间中的编码顺序的示意图;
图7A为当前子节点与其共面子节点的示意图;
图7B为当前子节点与其共线子节点的示意图;
图7C为当前子节点与其共点子节点的示意图;
图8为本申请实施例帧内预测方法的实现流程示意图;
图9为本申请实施例的第一搜索范围和第二搜索范围的示例示意图;
图10为本申请实施例第二搜索范围的示例示意图;
图11为本申请实施例第二搜索范围的示例示意图;
图12为本申请实施例的第一搜索范围的示例示意图;
图13(a)和(b)分别为本申请实施例的第一搜索范围和第二搜索范围的一种示例示意图;
图14为本申请实施例第二搜索范围的示例示意图;
图15为本申请实施例第二搜索范围的一种示例示意图;
图16为本申请实施例帧内预测装置的结构示意图;
图17为本申请实施例编码装置的结构示意图;
图18为本申请实施例帧内预测装置的结构示意图;
图19为本申请实施例解码装置的结构示意图;
图20为本申请实施例的电子设备的硬件实体示意图;
图21为本申请实施例的编码器的硬件实体示意图;
图22为本申请实施例的解码器的硬件实体示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”是为了区别类似或不同的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
本申请实施例描述的编解码框架以及业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。本领域普通技术人员可知,随着编解码框架的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在对本申请实施例进行进一步说明之前,对本申请实施例涉及的点云的数据形式、编解码框架和点云的规则化处理等进行说明。其中,本申请实施例描述的编解码框架以及业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。本领域普通技术人员可知,随着编解码框架的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
(1)点云的数据形式
点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。举例来说,如图1所示,其中,101为三维点云图像。102为该点云图像的局部放大图,可以看到,点云表面是由分布稠密的点所组成的。
点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。每一个位置均有对应的属性信息,通常为红绿蓝三维颜色信息(r,g,b),反映的是物体的色彩;反射率(reflectance)也是比较常见的属性信息,反射率反映的是物体的表面材质。因此,点云数据通常包括三维位置信息(x,y,z)、三维颜色信息(r,g,b)和一维反射率信息(r)所组成的属性信息。
如图2所示为一幅点云图像及其对应的数据存储格式,其中,201提供了点云图像的六个观看角度;202展示了该点云图像的数据存储格式,由文件头信息部分和数据部分组成,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容,如202中的点云为“.ply”格式,由ASCII码表示,总点数为207242,每个点具有三维位置信息(x,y,z)和三维颜色信息(r,g,b)。
(2)点云压缩的相关介绍
点云的采集主要有以下途径:计算机生成、3D激光扫描和3D摄影测量等。计算机可以生成虚拟三维物体及场景的点云;3D激光扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云;3D摄影测量可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据的获取方式的变革,使得大量点云数据的获取成为可能。然而,伴随着应用需求的增长,海量3D点云数据的处理遭遇存储空间和 传输带宽限制的瓶颈。
以帧率为30帧每秒(fps)的点云视频为例,每帧点云的点数为70万,每个点具有浮点型(float)的三维位置信息(x,y,z)和uchar类型的三维颜色信息(r,g,b),则10s的点云视频的数据量大约为0.7million×(4Byte×3+1Byte×3)×30fps×10s=3.15GB,而YUV采样格式为4:2:0,帧率为24fps的1280×720二维视频,其10s的数据量约为1280×720×12bit×24frames×10s≈0.33GB,10s的两视角3D视频的数据量约为0.33×2=0.66GB。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器的存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。
点云压缩通常采用对点的三维位置信息和点的属性信息分别进行压缩的方式。在编码端,首先在几何编码器中编码点的三维位置信息,得到重建三维位置信息;然后将重建三维位置信息作为附加信息输入到属性编码器中,从而辅助点的属性信息的压缩;在解码端,首先在几何解码器中解码点的三维位置信息,然后将解码后的三维位置信息作为附加信息输入到属性解码器中,辅助点的属性信息的压缩。整个编解码器由预处理/后处理、几何编码/解码、属性编码/解码几部分组成。
图3A为AVS点云压缩专题组所提供的点云压缩参考平台PCRM的编码框架,图3B为AVS点云压缩专题组所提供的点云压缩参考平台PCRM的解码框架。需要说明的是,对本申请实施例的技术方案适用的平台类型不做限定,本申请实施例的技术方案不仅适用于点云压缩参考平台PCRM,还适用于其他各种类型的点云压缩参考平台。
对于PCRM参考软件,如图3A所示,在编码端的几何编码部分,首先,对采集得到的三维位置信息进行预处理,通过坐标平移将几何原点归一化到点云空间中的最小值位置,通过坐标量化将三维位置信息从浮点型转化为整型,得到规则化的三维位置信息,即得到规则化的点云空间,从而便于后续的规则化处理;然后,对规则化的三维位置信息进行几何编码。例如,在一些实施例中,可以采用八叉树结构对规则化的点云空间进行递归划分,每次将当前节点划分成八个相同大小的子块,并判断每个子块的占有码字情况,当子块内没有点时记为空,否则记为非空,在递归划分的最后一层记录所有块的占有码字信息,并进行编码。
如图3A所示,通过八叉树结构表达的三维位置信息一方面输入到几何熵编码器中形成几何码流,另一方面在编码器内进行几何重建处理,重建后的三维位置信息作为附加信息输入到属性编码器中。在属性编码部分,首先对采集得到的属性信息进行预处理,由于三维位置信息在几何编码之后有所异动,因此需要为几何编码后的每一个点重新分配属性值,这个过程叫做属性重上色,此外,如果处理的属性信息为三维颜色信息,还需要将原始颜色进行颜色空间变换,将其转变成更符合人眼视觉特性的YUV色彩空间;然后对预处理后的属性信息进行属性编码。在一些实施例中,对于属性编码,首先需要将点云进行重排序,重排序的方式是莫顿码,因此属性编码的遍历顺序为莫顿顺序,PCRM中的属性预测方法为基于莫顿顺序的单点预测,即按照莫顿顺序从当前待编码点(即下文实施例中所称的当前子节点)向前回溯一个点,找到的点为当前待编码点的预测参考点(即下文实施例中所称的预测子节点),然后将预测参考点的属性重建值作为属性预测值,属性残差为当前待编码点的预处理后的属性值与属性预测值之间的差值;最后对残差进行量化,将量化残差输入到属性熵编码器中形成属性码流。
需要说明的是,由于相关PCRM的编解码框架仅涉及单帧,因此属性预测特指帧内预测。
在解码端,如图3B所示,采用对几何码流和属性码流分别进行解码的方式。在几何码流的解码部分,首先对几何码流进行熵解码,得到每个子节点的三维位置信息,然后按照与几何编码相同的方式构建八叉树结构,重建出坐标变换后的、通过八叉树结构表达的三维位置信息,一方面将该信息进行坐标反量化和反平移,得到解码后的三维位置信息,另一方面将解码后的三维位置信息作为附加信息输入到属性解码器中。在属性码流的解码部分,按照与编码端相同的方式构建莫顿顺序,先对属性码流进行熵解码,得到量化后的残差信息;然后对残差信息进行反量化,得到残差值;类似地,按照与属性编码相同的方式,获得当前待解码点(即下文实施例中所称的当前子节点)的属性预测值,然后将属性预测值与残差值相加,可以恢复出当前待解码点的YUV属性值;最后,经过颜色空间反变换得到解码后的属性信息。
(3)点云的规则化处理
由于点云在空间中无规则分布的特性,给编码过程带来了挑战,因此采用递归八叉树的结构,将点云中的点规则化地表达成立方体的中心。如图4A所示,首先将整幅点云放置在一个正方体包围盒内,点云中点的坐标表示为(x q,y q,z q),q=0,...,Q-1,其中,Q是点云的总点数,点云在x、y、z方向上的边界值,如下式(1)至式(6)所示,分别为:
x min=min(x 0,x 1,...x q-1)     式(1);
y min=min(y 0,y 1,...y q-1)      式(2);
z min=min(z 0,z 1,...z q-1)      式(3);
x max=max(x 0,x 1,...x q-1)      式(4);
y max=max(y 0,y 1,...y q-1)     式(5);
z max=max(z 0,z 1,...z q-1)      式(6);
则包围盒的原点(x origin,y origin,z origin)可以根据下式(7)至式(9)计算得到:
x origin=int(floor(x min))      式(7);
y origin=int(floor(y min))     式(8);
z origin=int(floor(z min))      式(9);
包围盒在x、y、z方向上的尺寸可以根据下式(10)至式(12)计算得到:
BoudingBoxSize x=int(x max-x origin)+1     式(10);
BoudingBoxSize y=int(y max-y origin)+1    式(11);
BoudingBoxSize z=int(z max-z origin)+1     式(12);
然后,如图4B所示,首先对正方体包围盒进行八叉树划分,每次得到八个子块,然后对子块中的非空块(即包含点的块)进行再一次的八叉树划分,如此递归划分直到某个深度,将最终大小的非空子块称作体素(voxel),每个voxel中包含一个或多个点,将这些点的几何位置归一化为voxel的中心点(即下文实施例所称的子节点),该中心点的属性值取voxel中所有点的属性值的平均值(即原始属性值)。
可以理解地,将点云规则化为空间中的块,有利于点云中点与点的关系描述,进而能够表达特定的编码顺序,按照一定的顺序编码每一个voxel,即编码voxel所代表的点(或称“子节点”)。一种常用的编码顺序为交叉分离式的莫顿顺序,图5展示了莫顿码在二维空间中的编码顺序,以8×8大小的块为例,其中箭头的顺序表示莫顿顺序下子节点的编码顺序。501为块中2×2个像素的“z”字形莫顿编码顺序,502为4个2×2块之间的“z”字形莫顿编码顺序,503为4个4×4块之间的“z”字形莫顿编码顺序,组成为整个8×8块的莫顿编码顺序。扩展到三维空间中的莫顿编码顺序如图6所示,图中展示了16个子节点,每个“z”字内部,每个“z”与“z”之间的莫顿编码顺序都是先沿x轴方向编码,再沿y轴,最后沿z轴。
(4)点云压缩中的属性帧内预测
点云压缩中的属性帧内预测部分,对于颜色属性,主要参考当前子节点的相邻子节点对当前子节点进行预测,根据属性预测值与当前子节点的原始属性值计算残差信息后经量化等过程,将残差信息编入码流后传输到解码端;解码端接收并解析码流后,经反变换与反量化等步骤得到残差信息,解码端以相同过程预测得到属性预测值,与残差信息叠加后得到当前子节点的属性重建值。
在此过程中,属性帧内预测利用子节点与子节点之间的几何关系,以当前子节点的几何共面、共线和/或共点子节点作为预测子节点,同时预测子节点需要满足的条件是在当前子节点之前编码完成,然后将权重值设为预测子节点与当前子节点的几何曼哈顿距离的倒数,即共面子节点权重为1,共线子节点权重为1/2,共点子节点权重为1/3,计算所有预测子节点的属性重建值的加权平均值为属性预测值(特别地,对于编码的第一个子节点,没有参考点进行预测,其属性预测值设为0)。根据这两个条件:
条件a)与当前子节点满足共面、共线关系和/或共点关系;
条件b)在当前子节点之前编码。
如图7A至7C所示,假设当前子节点O的序号为7,共有6个面,12条边,8个顶点,如图7A所示,共面子节点有3、5、6、14、21和35;如图7B所示,共线子节点有1、2、4、10、12、17、20、28、33、34、42和49;如图7C所示,共点子节点有0、8、16、24、32、40、48和56。
在所有这些共面子节点、共线子节点和共点子节点中,无论当前子节点的位置如何,可能满足“在当前子节点之前编码完成”条件的为共面子节点3、5和6,以及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48,因此预测子节点在共面子节点3、5和6,以 及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48中产生。
(5)属性帧内预测在点云编码框架中的位置
如图3A和图3B所示,该技术作用于PCRM点云编码框架中的帧内预测部分,对编码端和解码端同时作用。
本申请实施例提供一种帧内预测方法,所述方法适用于编码端,该方法可以应用于具有信息处理能力的电子设备,所述电子设备可以是笔记本电脑、电视机、投影仪、手机、计算机、平板电脑、虚拟现实(Virtual Reality,VR)头戴设备等任何具有点云视频编解码功能或者具有编码功能的设备。
图8为本申请实施例帧内预测方法的实现流程示意图,如图8所示,所述方法可以包括以下步骤801至步骤804:
步骤801,基于第一搜索范围,搜索得到当前子节点的第一预测子节点;
步骤802,在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;
步骤803,在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点,直至达到搜索结束条件,进入步骤804;其中,搜索结束条件包括:搜索轮次数达到N或者搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值;其中,各个搜索范围互不交叠;其中,N为大于或等于2的门限值;
步骤804,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在本申请实施例中,通过N这一门限值,限制预测子节点的搜索轮次,如此经过N轮搜索(也即已使用的搜索范围数达到该门限值),即使得到的所有预测子节点的数目小于第一阈值也要结束基于搜索范围的预测子节点的搜索,从而缩短搜索时延,提高编码效率。
以下分别对上述各个步骤的进一步的可选的实施方式以及相关名词等进行说明。
在步骤801中,基于第一搜索范围,搜索得到当前子节点的第一预测子节点。
在一些实施例中,可以基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围。
在本申请中,上级节点可以是当前子节点的父节点,也可以是其祖父节点或曾祖父节点等,对于上级节点的类型不做限制。当然,确定的目标上级节点与当前子节点的上级节点的级别可以相同,也可以不同。比如,当前子节点的上级节点为父节点,目标上级节点也是父节点级别的,即该节点也包括8个子节点。又如,当前子节点的上级节点为父节点,目标上级节点是祖父级别的,即该节点包括8×8=64个字节点。但是当前子节点的上级节点和目标上级节点的类型不局限于上述示例。
所谓第一条件,就是选取第一目标上级节点的准则。在本申请中,对于第一条件不做限制,可以是任意的,以最终能够得到准确的属性预测值为宜。
在一些实施例中,第一条件包括:当前子节点占据其所在父节点的边的一个或多个共线父节点、占据的边的端点的一个或多个共点父节点、占据该父节点的面的一个或多个共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点。
示例性的,如图9所示的901,假设当前子节点在父节点(索引号为7)中的方位为左下前方,即图中白色圆点所示的位置,第一条件包括:当前子节点占据该父节点的边的共线父节点、以及占据该父节点的面的共面父节点、且这些父节点是在当前子节点之前编码完成的非空节点,得到该当前子节点的第一目标上级节点的索引号为3、5、6、1、2和4。同理,如图9所示的902至908,可以得到当前子节点在其父节点中的不同方位所对应的第一目标上级节点,在此不再一一描述。
在一些实施例中,当前子节点的上级节点为祖父节点,相应的第一条件可以与上述示例类似,第一条件包括:当前子节点的父节点在当前子节点的祖父节点中占据的边的一个或多个共线祖父节点、占据的边的端点的一个或多个共点祖父节点和/或占据的面的一个或多个共面祖父节点。
当然,第一条件并不局限于上述实施例。在另一些实施例中,第一条件还可以包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。第一距离的类型可以是曼哈顿距离或欧式距离等。
在步骤802中,在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点。
在一些实施例中,所述方法还包括:在第一预测子节点的数目大于或等于第一阈值的情况下,基于第一预测子节点的属性值(例如属性重建值、插值等),确定当前子节点的属性预测值。
在本申请中,对于第一阈值的大小不做限制,可以是任意值,以最终能够得到准确的属性预测值为宜。示例性的,第一阈值为3或6等。
在一些实施例中,可以这样实现步骤802:基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
所谓第二条件,同样是选取第二目标上级节点的准则。在本申请中,对于第二条件不做限制,可以是任意的,以最终能够得到准确的属性预测值为宜。
在一些实施例中,第二条件包括:当前子节点的父节点的一个或多个共线父节点、一个或多个共面父节点和/或一个或多个共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点。
示例性的,如图9所示的902,假设当前子节点的父节点(索引号为7)中的方位为左上前方,即图中白色圆点所示的位置,第二条件包括:当前子节点的父节点的共面父节点、且是在当前子节点之前编码的非空的非第一目标上级节点,得到该当前子节点的第二目标上级节点的索引号为6、2和4。同理,如图9所示的903至908,可以得到当前子节点在其父节点中的不同方位所对应的第二目标上级节点,在此不再一一描述。
在一些实施例中,当前子节点的上级节点为祖父节点,相应的第二条件可以与上述示例类似,第二条件包括:当前子节点的祖父节点的一个或多个共线祖父节点、一个或多个共面祖父节点和/或一个或多个共点祖父节点,且是在当前子节点之前编码的非空的非第一目标上级节点。
当然,第二条件并不局限于上述实施例,第二目标上级节点也不局限于是父节点或祖父节点级别的,还可以是更高级别的节点。
在另一些实施例中,第二条件还可以包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点。第二距离的类型可以是曼哈顿距离或欧式距离等。第二距离大于或等于第一距离。
在步骤803中,在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点,直至达到搜索结束条件,进入步骤804;其中,搜索结束条件包括:搜索轮次数达到N或者搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值;其中,各个搜索范围互不交叠;其中N为大于或等于2的门限值。
在一些实施例中,在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
在所述搜索轮次数达到N,一种实施例是进入步骤804;另一种实施例是:从所述当前子节点的编码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;然后进入步骤804。
所谓各个搜索范围互不交叠,是指各个搜索范围包括的节点不同。
在一些实施例中,在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,在搜索轮次数达到N时,无论得到的所有预测子节点的数目是否大于或等于第一阈值,均结束预测子节点的搜索,基于已得到的当前子节点的所有预测子节点的属性值,确定当前子节点的属性预测值。
在另一些实施例中,在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的编码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;基于所述第一、第二、第三和第四预测子节点的属性值,即得到的当前子节点的所有预测子节点的属性值,确定所述当前子节点的属性预测值。
进一步地,在一些实施例中,可以这样搜索得到第四预测子节点,即,按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在另一些实施例中,也可以这样搜索得到第四预测子节点,即,按照所述编码顺序或编码顺序的反 向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在本申请实施例中,K可以是任意值,对于K的范围不做限定。例如,K为32、56、128或256等。这里,对于第一阈值和第二阈值的数值也不做限定,以既不失帧内预测的准确性又不失搜索效率为宜。例如,第一阈值为3,第二阈值为6;再如,第一阈值为3,第二阈值为16等。
在另一些实施例中,也可以不设定第二阈值,即也可以这样搜索得到第四预测子节点,即,按照所述编码顺序或者编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在又一些实施例中,也可以这样搜索得到第四预测子节点,即,按照所述编码顺序或者编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
这里,第一阈值可以是任意值,以既不失帧内预测的准确性又不失搜索效率为宜。例如,第一阈值为3、6等。
可以理解地,在本申请实施例中,在设定N这一门限值的前提下,使得电子设备在得到的预测子节点的数量不够的情况下,能够尽可能地在搜索范围内找够,即,尽量避免因为不够而从所述当前子节点的编码顺序下的前K个非空的候选子节点中进行搜索,从而进一步节约搜索时延,进而进一步提升编码效率。之所以搜索范围少于前K个非空的候选子节点,是因为搜索范围中未必一定包括当前子节点之前已编码的这K个非空的候选子节点。
需要说明的是,在本申请实施例中,对于采用何种编码顺序,对子节点依次进行编码,对此不做限定。编码顺序可以是莫顿顺序、希尔伯特顺序或者其他编码顺序等。
在本申请实施例中,对于第一阈值和第二阈值的具体数值不做限定,可以是任意范围,以不失搜索效率的同时以满足帧内预测准确性为宜。在一些实施例中,第一阈值为3,第二阈值为6;如此,在不大幅增加搜索复杂度的情况下,使用更多的预测子节点能够提高帧内预测准确性,从而减小残差占用的带宽。
需要说明的是,在遍历前K个非空的候选子节点,仍未找够第一阈值个预测子节点,或者少于第二阈值个预测子节点,可以直接基于已有的预测子节点的属性值进行属性预测,也可以将预测子节点填充够第二阈值个再确定属性预测值;其中,填充的预测子节点的属性值可以是任意值,例如,其属性值是已确定的任一预测子节点的属性重建值,又如,其属性值为一固定常数,再如,其属性值是已确定的预测子节点中与当前预测子节点的距离最近的预测子节点的属性值。
在一些实施例中,当前子节点为待编码的第M个子节点;其中,M大于或等于4,这样在保证当前子节点之前的子节点不少于4的情况下,确保找出尽可能准确的预测子节点,从而提高当前子节点的属性预测值的准确性,进而使得相应的残差占用更小的带宽。
对于第一个子节点至第M-1个子节点,在一些实施例中,在当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已编码的子节点的属性重建值,得到所述后续子节点的属性预测值。
其中,特定属性值可以是任意值,在本申请实施例中对此不做限定。例如,特定属性值为(0,0,0);又如,特定属性值为(128,128,128);再如,特定属性值为(0,64,0);又如,特定属性值为 (128,0,0)。当然,对于特定属性值的三个分量可以相等,也可以不相等。
上文提到了搜索范围是上级节点级别的,在另一些实施例中,搜索范围还可以是子节点级别的,但是前者相比于后者,计算量较小,这是因为在同等搜索范围内,前者需要确定的目标上级节点较少。举例而言,假设目标上级节点的级别为父节点,需要确定7个目标上级节点,那么根据设置的条件需要计算7次索引号;而如果搜索范围是子节点级别的,则需要计算计算7×8=56次索引号,显然前者的计算量较小。
对于搜索范围是上级节点级别的,无论是第一搜索范围还是第二搜索范围或其他搜索范围等,在一些实施例中,可以基于距离从目标上级节点包括的子节点中选取预测子节点;例如,将目标上级节点中与当前子节点的距离小于特定距离的且在当前子节点之前编码的非空子节点,确定为预测子节点。该距离的类型可以是多种多样的,比如,可以是曼哈顿距离或欧式距离等。
以下以子节点级别的搜索范围为例进行说明。
在一些实施例中,所述方法还包括:基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
进一步地,在一些实施例中,第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;其中,所述第四距离大于或等于所述第三距离。
需要说明的是,对于第三距离和第四距离的类型不做限定,可以是曼哈顿距离或欧式距离等。
可以理解地,在第一搜索范围内进行预测子节点的查找过程中,可能还未遍历完所有子节点,第一预测子节点的总数已经达到第一阈值了,此时可以结束查找,直接基于这些预测子节点的属性值得到当前子节点的属性预测值,还可以继续查找下一子节点,如果下一子节点为在当前子节点之前编码的非空子节点且与当前子节点的距离(例如曼哈顿距离)小于当前预测子节点中与当前子节点的最大距离,则将该子节点作为第一预测子节点替换该最大距离对应的第一预测子节点。
在一些实施例中,在遍历第一搜索范围内的每一子节点之后,确定的第一预测子节点的总数大于或等于第一阈值但是小于第二阈值,此时,可以不再继续查找更多的预测子节点,而是基于当前得到的第一预测子节点的属性值,得到当前子节点的属性预测值;或者,还可以从所述当前子节点的编码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点。
需要说明的是,在第一搜索范围内的子节点中确定第一预测子节点时,可以遍历搜索第一搜索范围内的子节点,也可以按照与当前子节点的距离由近到远的顺序进行遍历搜索。例如,先遍历搜索与当前子节点的距离为第一子距离的子节点,如果在此范围内确定的第一预测子节点的总数满足结束查找条件(例如结束查找条件为当前确定的预测子节点的总数大于或等于第一阈值、或者等于第二阈值),则不再继续扩大范围搜索,也就是不再搜索第一搜索范围内的其他子节点,基于当前得到的第一预测子节点的属性值,得到当前子节点的属性预测值;如果在第一子距离的范围内确定的第一预测子节点的总数不满足结束查找条件,则进一步扩大搜索范围,基于遍历搜索与当前子节点的距离为第二子距离的子节点,以此类推。
在一些实施例中,可以将已编码的子节点的属性重建值的均值作为后续子节点的属性预测值。在一些实施例中,也可以将已编码的子节点的属性重建值的加权平均值作为后续子节点的属性预测值;其中,已编码的子节点的权重与该子节点相对于当前子节点的距离呈负相关。例如,已编码的子节点的权重为该子节点到当前子节点的距离的倒数。
与前文类似地,在一些实施例中,在第二搜索范围内的子节点中进行查找的过程中,可能还未遍历完所有子节点,当前确定的第二预测子节点的总数已经达到第一阈值或第二阈值了,此时可以结束查找,直接基于这些预测子节点的属性值得到当前子节点的属性预测值,还可以继续查找下一子节点,如果下一子节点为在当前子节点之前编码的非空子节点且与当前子节点的距离(例如曼哈顿距离)小于当前第二预测子节点中与当前子节点的最大距离,则将该子节点作为第二预测子节点替换该最大距离对应的第二预测子节点。
进一步地,在一些实施例中,所述第一目标子节点包括所述当前子节点的一个或多个共面子节点、所述当前子节点的一个或多个共线子节点和/或所述当前子节点的一个或多个共点子节点。
更进一步地,在一些实施例中,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成编码的子节点。
例如,以编码顺序为莫顿顺序为例,所述当前子节点的共面子节点包括索引为3、5和6的子节点,所述当前子节点的共线子节点包括索引为1、2、4、10、12、17、20、33和34的子节点,所述当前子节点的共点子节点包括索引为0、8、16、24、32、40和48的子节点。
以曼哈顿距离为例,如图10所示,所述第三距离大于或等于3,例如图10所示,第四距离为6(相应地,从垂直距离的角度来讲,第四距离为2,单位为子节点,即,目标子节点到当前子节点的表面所在的平面的距离为2个子节点),所述第二目标子节点为与当前子节点的曼哈顿距离为2和/或3的子节点。例如图11的(a)至(f)所示,第二目标子节点包括索引为24、40、48、10、12、17、20、25、26、33、34、41、44、50、52、84、98、140、161、266、273的子节点。
在步骤804中,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,可以根据所述当前子节点的预测子节点的属性重建值,得到所述当前子节点的属性预测值。
进一步地,在一些实施例中,可以将上述这些预测子节点的属性重建值的平均值或者加权平均值作为当前子节点的属性预测值;其中,预测子节点的权重值和与当前子节点的距离呈负相关,例如,权重值为该预测子节点与当前子节点的距离的倒数。
需要说明的是,本申请实施例中在一个搜索范围内进行预测子节点的搜索时,可以按照某种规则进行逐步搜索。比如,对于上级节点级别的搜索范围,先搜索共面目标上级节点中的子节点、再搜索共线目标上级节点中的子节点等。又如,对于子节点级别的搜索范围,先搜索共面子节点、再搜索共线子节点、最后搜索共点子节点。当然也不限于此示例,还可以按照其他规则进行逐步搜索。
还需要说明的是,无论是上级级别的搜索范围,还是子节点级别的搜索范围,在每一轮搜索中,可以针对相应搜索范围内的所有子节点进行搜索,也可以是针对相应搜索范围内的部分子节点进行搜索,从而得到预测子节点。可以理解地,在某一搜索范围内,可能还未遍历所有子节点,当前得到的所有预测子节点的数目已达到了第一阈值或第二阈值,在一些实施例中,此时可以结束搜索,基于当前得到的所有预测子节点的属性值进行当前子节点的属性预测;在另一些实施例中,还可以继续搜索,遍历其中的每一候选子节点,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码/解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
本申请实施例提供一种点云编码方法,所述方法包括:对点云的当前子节点执行上述编码端的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;将所述当前子节点的残差编码为属性码流。
在一些实施例中,确定所述当前子节点的重建残差;将重建残差与所述当前子节点的属性预测值叠加,得到所述当前子节点的属性重建值。
在一些实施例中,可以从当前子节点的残差进行变换和/或量化等处理,然后将处理后的残差进行反量化和/或反变换等后处理,从而得到当前子节点的重建残差。
需要说明的是,以上点云编码方法的实施例的描述,与上述编码端的帧内预测方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请点云编码方法实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
相应地,本申请实施例提供一种帧内预测方法,该方法适用于解码端,该方法可以应用于具有信息处理能力的电子设备,所述电子设备可以是电视机、投影仪、手机、计算机、平板电脑、虚拟现实(Virtual Reality,VR)头戴设备等任何具有点云视频编解码功能或者具有解码功能的设备。该方法可以包括以下步骤121至步骤124(因为与图8所示的步骤相同,为避免重复,这里省略了相应附图):
步骤121,基于第一搜索范围,搜索得到当前子节点的第一预测子节点;
步骤122,在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;
步骤123,在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点,直至达到搜索结束条件,进入步骤124;其中,搜索结束条件包括:搜索轮次数达到N或者搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值;其中,各个搜索范围互不交叠;其中,N为大于或等于2的门限值
步骤124,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中所述方法还包括:在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,所述方法还包括:在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的解码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;基于所述第一、第二、第三和第四预测子节点的属性值,确定所述当前子节点的属性预测值。
进一步地,在一些实施例中,所述从所述当前子节点的解码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在另一些实施例中,所述从所述当前子节点的解码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:
按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,所述方法还包括:在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,或者,所述第一预测子节点的数目大于或等于所述第一阈值的情况下,根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,所述当前子节点为第M个子节点;其中,M大于或等于4。
在一些实施例中,所述方法还包括:在所述当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已解码的子节点的属性重建值,得到所述后续子节点的属性预测值。
在一些实施例中,所述方法还包括:基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围;基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
进一步地,在一些实施例中,所述第一条件包括:所述当前子节点占据其所在父节点的边的共线父节点、占据的边的端点的共点父节点占据该父节点的面的共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点。这里不限定共线父节点、共点父节点以及共面父节点等各个节点的数目是一个还是多个。
在一些实施例中,所述第一条件包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。
进一步地,在一些实施例中,所述第二条件包括:当前子节点的父节点的共线父节点、共面父节点和/或共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点;或者,所述第二条件包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点;所述第二距离大于或等于所述第一距离。
需要说明的是,第二条件中所指的共线父节点可以是当前子节点的父节点的一个或多个共线父节点,第二条件中所指的共面父节点可以是当前子节点的父节点的一个或多个共面父节点,第二条件中所指的共点父节点可以是当前子节点的父节点的一个或多个共点父节点。总之,对于第二目标节点的数目不做限制,以获得预测准确性的同时不失搜索效率为宜。
在一些实施例中,所述方法还包括:基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
进一步地,在一些实施例中,所述第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;其中,所述第四距离大于或等于所述第三距离。
示例性地,所述第一目标子节点包括所述当前子节点的共面子节点、所述当前子节点的共线子节点和/或所述当前子节点的共点子节点。例如,所述当前子节点的共面子节点包括索引为3、5和6的子节点,所述当前子节点的共线子节点包括索引为1、2、4、10、12、17、20、33和34的子节点,所述当前子节点的共点子节点包括索引为0、8、16、24、32、40和48的子节点。
在一些实施例中,所述第四距离大于或等于3,所述第二目标子节点为与当前子节点的曼哈顿距离为2和/或3的子节点。例如,所述第二目标子节点包括索引为24、40、48、10、12、17、20、25、26、33、34、41、44、50、52、84、98、140、161、266、273的子节点。
进一步地,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成解码的子节点。
在一些实施例中,所述预测子节点包括在所述当前子节点之前解码的非空子节点。
在一些实施例中,所述基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值,包括:基于得到的预测子节点的属性重建值,得到所述当前子节点的属性预测值。
可以理解地,解码端的帧内预测方法与编码端的帧内预测方式是相同的,因此,以上解码端的帧内预测方法的实施例的描述,与上述编码端的帧内预测方法实施例的描述是类似的,具有同编码端的帧内预测方法实施例相似的有益效果。对于本申请解码端的帧内预测方法实施例中未披露的技术细节和其他实施例,请参照本申请编码端的帧内预测方法实施例的描述而理解。
本申请实施例提供一种点云解码方法,所述方法包括:对接收的属性码流进行解析,得到当前子节点的重建残差;对当前子节点执行如解码端所述的帧内预测方法中的步骤,得到当前子节点的属性预测值;根据当前子节点的属性预测值与所述重建残差,确定当前子节点的属性重建值。
需要说明的是,以上点云解码方法的实施例的描述,其中帧内预测方法与上述编码端的帧内预测方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请点云解码方法实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等;或者,将不同实施例中步骤组合为新的技术方案。
下面将说明本申请实施例在一个实际的应用场景中的示例性应用。
PCRM的属性编码器的实施方法如下。在实施例1中,几何重建点云被八叉树递归划分成若干个voxel,每个voxel中的子节点按照莫顿编码顺序分别进行帧内预测过程计算属性预测值,对于编码的第一个子节点执行如下的a1)、c1)、d1)过程,对于其余子节点执行b1)、c1)、d1)过程:
a1)当当前子节点为编码的第一个子节点时,此时没有可参考的子节点进行预测,该当前子节点的属性预测值设为(128,128,128);
b1)以当前子节点的共面子节点3、5和6,以及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48作为预测子节点的查找范围,确定最少3个、最多6个子节点作为预测子节点,如下式(13)所示,计算所有预测子节点的属性重建值的加权平均值,将该加权平均值作为当前子节点的属性预测值。
Figure PCTCN2021114153-appb-000001
其中,R为预测子节点集合,
Figure PCTCN2021114153-appb-000002
为预测子节点的属性重建值,w i为预测子节点的权重,当预测子节点为空子节点时,w i=0。权重值为预测子节点与当前子节点的几何曼哈顿距离的倒数。
假设在上述共面子节点、共线子节点和共点子节点的范围内确定的预测子节点数小于3,则在当前子节点的莫顿顺序下的前32个子节点中查找曼哈顿距离最近的子节点,补齐3个子节点作为预测子节点,属性预测值为这3个子节点的加权平均值;
c1)残差为当前子节点的原始属性值和属性预测值之间的差,再对残差进行变换、量化等操作;
d1)将属性预测值与反量化、反变换等操作后的残差信息叠加,得到当前子节点的属性重建值,该值用来作为后续编码单元的参考信息。
PCRM的属性解码器的实施方法如下。几何重建点云被八叉树递归划分成若干个voxel,每个voxel中的子节点按照与编码过程相同的莫顿顺序分别进行帧内预测过程计算属性预测值,对于解码的第一个子节点执行a2)、c2)过程,其余点执行b2)、c2)过程:
a2)当前子节点为解码的第一个子节点时,没有可参考的子节点进行预测,该当前子节点的属性预测 值直接设为(128,128,128);
b)以当前子节点的共面子节点3、5和6,以及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48作为预测子节点的查找范围,确定最少3个、最多6个子节点作为预测子节点,如下式(14)所示,计算所有预测子节点的属性重建值的加权平均值,将该加权平均值作为当前子节点的属性预测值,
Figure PCTCN2021114153-appb-000003
其中,R为预测子节点集合,
Figure PCTCN2021114153-appb-000004
为预测子节点的属性重建值,w i为预测子节点的权重,当预测子节点为空子节点时,w i=0。
假设在上述共面子节点、共线子节点和共点子节点的范围内确定的预测子节点数小于3,则在当前子节点的莫顿顺序下的前32个子节点中查找曼哈顿距离最近的子节点,补齐3个子节点作为预测子节点,属性预测值为这3个子节点的加权平均值;
c2)从码流中读取当前子节点的残差信息,经反量化、反变换等操作后与当前子节点的属性预测值进行叠加,得到当前子节点的属性重建值,该值可以用来作为后续编码单元的参考信息。
在一些实施例中,PCRM所采用的帧内预测方法,分成两个步骤:
a)以当前子节点的共面子节点、共线子节点和共点子节点作为预测子节点的查找范围,确定最少3个、最多6个子节点作为预测子节点;
b)当在共面子节点、共线子节点和共点子节点范围内确定的预测子节点数小于3时,在当前子节点的莫顿顺序下的前32个子节点中遍历查找曼哈顿距离最近的子节点,补齐3个子节点作为预测子节点。
本申请实施例的技术方案在编解码端均实行,在进行帧内预测时实行本技术方案,针对所有子节点,在实施例2中,提供一种基于距离优先的帧内预测算法。相比于上述实施例1,能够最大效率地找到距离最近的预测子节点。
实施例2的技术方案在编码端的帧内预测部分的一种具体实现如下。几何重建点云被八叉树递归划分成若干个voxel,每个voxel中的子节点按照莫顿编码顺序分别进行帧内预测过程计算属性预测值,对于编码的第1、2、3个子节点执行a)、f)、g)过程,其余点执行b)、c)、d)、e)、f)、g)过程。
a)当当前子节点为编码的第一个子节点时,没有可参考的子节点进行预测,该当前子节点的属性预测值直接设为(128,128,128);当前子节点为编码的第二个子节点时,以第一个子节点作为预测子节点,其属性预测值为第一个子节点的属性重建值;当前子节点为编码的第三个子节点时,以第一个子节点和第二个子节点作为预测子节点,其属性预测值为第一个子节点和第二个子节点的属性重建值的加权平均值;
b)如图12所示,以当前子节点的共面子节点3、5和6,以及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48作为预测子节点的查找范围(因为这19个子节点是在第三距离下,可能在当前子节点之前编码完成的点),在这19个子节点的范围内(即第一搜索范围的一种示例)确定最少3(即第一阈值的一种示例)个、最多6(即第二阈值的一种示例)个子节点作为预测子节点;
c)假设在b)中确定的预测子节点数小于3,则将查找范围扩大一圈,即在b)中,预测子节点存在于如图13所示的3×3×3的范围内(即第一搜索范围的一种示例),扩大一圈后的预测子节点存在于如图13所示的5×5×5的范围内(即第二搜索范围的一种示例)。
此时当前子节点的索引为56,预测子节点查找范围为与当前子节点的曼哈顿距离为2的子节点24、40和48,以及与当前子节点的曼哈顿距离为3的子节点10、12、17、20、25、26、33、34、41、44、50、52、84、98、140、161、266和273(在第四距离下,可能在当前子节点之前编码完成的子节点一共有79个,但考虑到选的点数越多编解码复杂度也会相应增加,因此选择79个子节点中的21个),在这21个子节点的范围内(即第二搜索范围的一种示例)确定最少3个、最多6个子节点作为预测子节点。
如图11所示为当前子节点的左、前、下、右、后、上方向上的预测子节点查找范围的示意图。
d)假设在c)中确定的预测子节点数仍然小于3,则在当前子节点的莫顿顺序下的前32个子节点中查找曼哈顿距离最近的子节点,确定最少3个、最多6个子节点作为预测子节点,确定方法:
首先,按照莫顿顺序遍历判断32个第三候选子节点中的每一个子节点,当预测子节点数小于3时,将当前第三子节点直接确定为预测子节点,然后将所有的预测子节点按照与当前子节点的曼哈顿距离由 小到大排列;
当预测子节点数大于等于3且小于6时,若当前第三候选子节点的曼哈顿距离小于末尾的预测子节点的曼哈顿距离,则将该候选子节点选为预测子节点,然后将所有的预测子节点按照与当前子节点的曼哈顿距离由小到大的顺序重新排列;
当预测子节点数等于6时,若当前第三候选子节点的曼哈顿距离小于末尾的预测子节点的曼哈顿距离,或者,当前第三候选子节点的曼哈顿距离等于末尾的预测子节点的曼哈顿距离且当前第三候选子节点的索引小于末尾的预测子节点的索引,则用该候选子节点替换原末尾的预测子节点,然后将所有的预测子节点按照曼哈顿距离由小到大的顺序重新排列;
e)如下式(15)所示,计算所有预测子节点的属性重建值的加权平均值作为当前子节点的属性预测值:
Figure PCTCN2021114153-appb-000005
其中,R为预测子节点集合,
Figure PCTCN2021114153-appb-000006
为预测子节点的属性重建值,w i为预测子节点的权重,权重值为预测子节点与当前子节点的几何曼哈顿距离的倒数;
f)残差为当前子节点的原始属性值和预测值之间的差,然后对残差进行变换、量化等操作;
g)将属性预测值与反量化、反变换等操作后的残差信息叠加,得到当前子节点的属性重建值作为后续编码单元的参考信息。
实施例2的技术方案在解码端帧内预测具体流程如下。几何重建点云被八叉树递归划分成若干个voxel,每个voxel中的子节点按照与编码过程相同的莫顿顺序分别进行帧内预测过程计算属性预测值,对于解码的第一个子节点执行a)、f)过程,其余子节点执行b)、c)、d)、e)、f)过程:
a)当前子节点为解码的第一个子节点时,没有参考点进行预测,其属性预测值直接设为(128,128,128);当前子节点为解码的第二个子节点时,以第一个子节点作为预测子节点,其属性预测值为第一个子节点的属性解码值(即属性重建值);当前子节点为解码的第三个子节点时,以第一个子节点和第二个子节点作为预测子节点,其属性预测值为第一个子节点和第二个子节点的属性解码值的加权平均值;;
b)以当前子节点的共面子节点3、5和6,以及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48作为预测子节点的查找范围,在这19个子节点的范围内确定最少3个、最多6个子节点作为预测子节点;
c)假设在b)中确定的预测子节点数小于3,则将查找范围扩大一圈,此时当前子节点的索引为56,预测子节点的查找范围为与当前子节点的曼哈顿距离为2的24、40、48,以及与当前子节点的曼哈顿距离为3的10、12、17、20、25、26、33、34、41、44、50、52、84、98、140、161、266和273,此时在这21个子节点的范围内确定最少3个、最多6个子节点作为预测子节点;
d)假设在c)中确定的预测子节点数仍然小于3,则在当前子节点莫顿顺序下的前32个子节点中查找曼哈顿距离最近的子节点,确定最少3个、最多6个子节点作为预测子节点,确定方法为:
首先,按照莫顿顺序遍历判断32个第三候选子节点中的每一个子节点,当预测子节点数小于3时,将当前第三子节点直接确定为预测子节点,然后将所有的预测子节点按照与当前子节点的曼哈顿距离由小到大排列;
当预测子节点数大于等于3且小于6时,若当前第三候选子节点的曼哈顿距离小于末尾的预测子节点的曼哈顿距离,则将该候选子节点选为预测子节点,然后将所有的预测子节点按照与当前子节点的曼哈顿距离由小到大的顺序重新排列;
当预测子节点数等于6时,若当前第三候选子节点的曼哈顿距离小于末尾的预测子节点的曼哈顿距离,或者,当前第三候选子节点的曼哈顿距离等于末尾的预测子节点的曼哈顿距离且当前第三候选子节点的索引小于末尾的预测子节点的索引,则用该候选子节点替换原末尾的预测子节点,然后将所有的预测子节点按照曼哈顿距离由小到大的顺序重新排列;
e)如下式(16)所示,计算所有预测子节点的属性解码值的加权平均值作为当前子节点的属性预测值:
Figure PCTCN2021114153-appb-000007
其中,R为预测子节点集合,
Figure PCTCN2021114153-appb-000008
为预测子节点的属性重建值,w i为预测子节点的权重,权重值为预测子节点与当前子节点的几何曼哈顿距离的倒数;
f)从码流中读取当前子节点的残差信息,经反量化、反变换等操作后与当前子节点的属性预测值进行叠加,得到当前子节点的属性重建值作为后续编码单元的参考信息。
实施例2的技术方案作用于编解码框架中的帧内预测部分。
在本申请实施例中,可以采用多种编码顺序,包括但不限于莫顿顺序或希尔伯特顺序等;
在上述实施例中“最少3个、最多6个节点作为预测子节点”所描述的3和6可以是其它数值组合,例如3和16,等等;
本申请实施例中,对于第四距离下的预测子节点查找范围(即第二搜索范围)可以扩大成79个;
基于距离优先的帧内预测算法可以采用多种权重值选取方法,包括但不限于基于欧式距离的权重、固定常数权重等。
本申请实施例将适用于帧内预测编解码部分,通过第三距离与第四距离的查找范围,首先定位到距离当前子节点最近的子节点,当找不到时,才在莫顿顺序下的前32个子节点当中进行全搜索,这样可以最大效率地找到离当前子节点最近的预测子节点,从而能够提升编码效率。
在一些实施例中,可以将上述实施例中第四距离下的预测子节点查找范围(即第二搜索范围的一种示例)扩大成79个子节点,如图14所示,加上索引为0、1、2、3、4、5、6、8、9、11、13、16、18、19、22、27、32、36、37、38、45、54、64、66、68、70、80、82、86、96、100、102、128、129、132、133、136、137、141、160、164、165、192、196、256、257、258、259、264、265、267、272、274、275、320、322、384和385的子节点。
在一些实施例中,将该实施例中采用基于曼哈顿距离的加权平均方式改为其它方式,如基于欧式距离的加权平均、基于固定常数的加权平均等。
实施例中“假设在c)中确定的预测子节点数仍然小于3,则在当前子节点莫顿顺序下的前32个点中查找曼哈顿距离最近的点”所述的32可以是其它数值,如128,等等;
实施例中“计算所有预测子节点的属性解码值计算当前子节点的属性预测值”所使用的加权平均公式也可以用其它计算方式替换;
“按照权重值由大到小的顺序”等价于按照权重值的倒数由小到大的顺序;
在本申请实施例中,可以采用多种权重值选取方法,包括但不限于基于曼哈顿距离的权重、基于欧式距离的权重、固定常数权重等;
如图15所示,第二搜索范围可增加至58个子节点,相应索引号为:0、1、2、3、4、5、6、8、9、11、13、16、18、19、22、27、32、36、37、38、45、54、64、66、68、70、80、82、86、96、100、102、128、129、132、133、136、137、141、160、164、165、192、196、256、257、258、259、264、265、267、272、274、275、320、322、384、385。
实施例中分为两层,当在b)中确定的范围内查找到的预测子节点数小于3时,则将范围扩大为c)中所述,在此处可以扩展为:分为N层,如1、2、4、10、12、17、20、33、34为一层,8、16、24、32、40、48为一层,25、26、41、44、50、52、84、98、140、161、266、273,等等;
需要说明的是,本文中提到的子节点级别的搜索范围,同样适用于目标上级节点级别的搜索范围,只不过索引号指代的是上级节点级别的节点。比如,图15所示的第二搜索范围,同样适用于上级节点级别的搜索范围,即,第二搜索范围包括58个第二目标上级节点,相应索引号为:0、1、2、3、4、5、6、8、9、11、13、16、18、19、22、27、32、36、37、38、45、54、64、66、68、70、80、82、86、96、100、102、128、129、132、133、136、137、141、160、164、165、192、196、256、257、258、259、264、265、267、272、274、275、320、322、384、385。其他示例也是如此,这里不再一一说明。
基于前述的实施例,本申请实施例提供的帧内预测装置,包括所包括的各模块、以及各模块所包括的各单元,可以通过电子设备中的编码器或处理器来实现;当然也可以通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或图形处理器(Graphics Processing Unit,GPU)等。
图16为本申请实施例帧内预测装置的结构示意图,如图16所示,帧内预测装置160,应用于编码端,包括:
第二搜索模块161,配置成基于第一搜索范围,搜索得到所述当前子节点的第一预测子节点;以及在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第二帧内预测模块;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;
所述第二帧内预测模块162,配置成基于得到的预测子节点的属性值,得到所述当前子节点的属性 预测值。
在一些实施例中,第二帧内预测模块162,配置成:在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,第二搜索模块161,配置成:在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的编码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;触发第二帧内预测模块,以使其基于所述第一、第二、第三和第四预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,第二搜索模块161,配置成:按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,第二搜索模块161,配置成:按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,第二搜索模块161,配置成:按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,第二搜索模块161,配置成:按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,第二搜索模块161,配置成:在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,或者,所述第一预测子节点的数目大于或等于所述第一阈值的情况下,触发第二帧内预测模块162,使其根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,所述当前子节点为第M个子节点;其中,M大于或等于4。
在一些实施例中,第二帧内预测模块162,还配置成:在所述当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已编码的子节点的属性重建值,得到所述后续子节点的属性预测值。
在一些实施例中,第二搜索模块161,还配置成,所述方法还包括:基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围;基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
在一些实施例中,所述第一条件包括:所述当前子节点占据其所在父节点的边的共线父节点、占据的边的端点的共点父节点占据该父节点的面的共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点;或者,所述第一条件包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。
在一些实施例中,所述第二条件包括:当前子节点的父节点的共线父节点、共面父节点和/或共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点;或者,所述第二条件包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点;所述第二距离大于或等于所述第一距离。
在一些实施例中,第二搜索模块161,还配置成:基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
在一些实施例中,所述第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;其中,所述第四距离大于或等于所述第三距离。
在一些实施例中,所述第一目标子节点包括所述当前子节点的共面子节点、所述当前子节点的共线子节点和/或所述当前子节点的共点子节点。
在一些实施例中,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成编码的子节点。
以上关于装置160的实施例的描述,与上述编码端的帧内预测方法实施例的描述是类似的,具有同这些方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
基于前述的实施例,本申请实施例提供的编码装置,包括所包括的各模块、以及各模块所包括的各单元,可以通过电子设备中的编码器或处理器来实现;当然也可以通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或图形处理器(Graphics Processing Unit,GPU)等。
图17为本申请实施例编码装置的结构示意图,如图17所示,编码装置170,包括:
帧内预测装置160,配置成对点云的当前子节点执行编码端的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;
确定模块171,配置成确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;
编码模块172,配置成将所述当前子节点的残差编码为属性码流。
在一些实施例中,确定模块171,还配置成:确定所述当前子节点的重建残差;重建模块,用于将重建残差与所述当前子节点的属性预测值叠加,得到所述当前子节点的属性重建值。
以上关于装置170的实施例的描述,与上述编码端的帧内预测方法实施例的描述是类似的,具有同这些方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
图18为本申请实施例帧内预测装置的结构示意图,如图18所示,帧内预测装置180应用于解码端,包括:
第一搜索模块181,配置成:基于第一搜索范围,搜索得到当前子节点的第一预测子节点;在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;以及,在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第一帧内预测模块182;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;
第一帧内预测模块182,配置成基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,第一搜索模块181,还配置成:在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的解码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;基于所述第一、第二、第三和第四预测子节点的属性值,确定所述当前子节点的属性预测值。
进一步地,在一些实施例中,第一搜索模块181,配置成:按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
进一步地,在一些实施例中,第一搜索模块181,配置成:按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,第一搜索模块181,配置成:在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,或者,所述第一预测子节点的数目大于或等于所述第一阈值的情况下,触发第一帧内预测模块182,使其根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,所述当前子节点为第M个子节点;其中,M大于或等于4。
在一些实施例中,第一帧内预测模块182,还配置成:在所述当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已解码的子节点的属性重建值,得到所述后续子节点的属性预测值。
在一些实施例中,第一搜索模块181,还配置成:基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围;基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
在一些实施例中,所述第一条件包括:所述当前子节点占据其所在父节点的边的共线父节点、占据的边的端点的共点父节点占据该父节点的面的共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点;或者,所述第一条件包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。
在一些实施例中,所述第二条件包括:当前子节点的父节点的共线父节点、共面父节点和/或共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点;或者,所述第二条件包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点;所述第二距离大于或等于所述第一距离。
在一些实施例中,第一搜索模块181,还配置成:基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
在一些实施例中,所述第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;其中,所述第四距离大于或等于所述第三距离。
在一些实施例中,所述第一目标子节点包括所述当前子节点的共面子节点、所述当前子节点的共线子节点和/或所述当前子节点的共点子节点。
在一些实施例中,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成解码的子节点。
在一些实施例中,所述预测子节点包括在所述当前子节点之前解码的非空子节点。
在一些实施例中,所述基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值,包括:基于得到的预测子节点的属性重建值,得到所述当前子节点的属性预测值。
以上帧内预测装置180的实施例的描述,与上述帧内预测方法实施例的描述是类似的,具有同这些方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
基于前述的实施例,本申请实施例提供的解码装置,包括所包括的各模块、以及各模块所包括的各单元,可以通过电子设备中的解码器或处理器来实现;当然也可以通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或图形处理器(Graphics Processing Unit,GPU)等。
图19为本申请实施例解码装置的结构示意图,如图19所示,解码装置190,包括:
解析模块191,配置成对接收的属性码流进行解析,得到当前子节点的重建残差;
帧内预测装置180,配置成对所述当前子节点执行本申请实施例解码端所述的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;
重建模块192,配置成根据所述当前子节点的属性预测值与所述当前子节点的重建残差,确定所述当前子节点的属性重建值。
以上关于解码装置190的实施例的描述,与上述帧内预测方法实施例的描述是类似的,具有同这些方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种电子设备,图20为本申请实施例的电子设备的硬件实体示意图,如图20所示,所述电子设备200包括存储器201和处理器202,所述存储器201存储有可在处理器202上运行的计算机程序,所述处理器202执行所述程序时实现上述实施例中提供的方法中的步骤。
本申请实施例一种编码器,图21为本申请实施例的编码器的硬件实体示意图,编码器210包括存储器211和处理器212;其中,所述存储器211,用于存储能够在所述处理器212上运行的计算机程序;所述处理器212,用于在运行所述计算机程序时,执行上述实施例中提供的方法中的步骤。
本申请实施例一种解码器,图22为本申请实施例的解码器的硬件实体示意图,解码器22包括存储器221和处理器222;其中,所述存储器221,用于存储能够在所述处理器222上运行的计算机程序;所述处理器222,用于在运行所述计算机程序时,执行上述实施例中提供的方法中的步骤。
需要说明的是,存储器配置为存储由处理器可执行的指令和应用,还可以缓存待处理器以及相应设备中各模块待处理或已经处理的数据(例如,点云数据、图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。
对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的方法中的步骤。
这里需要指出的是:以上电子设备、编码器、解码器和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请电子设备、编码器、解码器和存储介质实施例中未披露的技术细节,可以参照本申请方法实施例的描述而理解。。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的触摸屏系统的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连 接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (43)

  1. 一种帧内预测方法,应用于解码端,所述方法包括:
    基于第一搜索范围,搜索得到当前子节点的第一预测子节点;
    在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;
    在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;
    当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值;其中,各个搜索范围互不交叠,N为大于或等于2的门限值。
  2. 根据权利要求1所述的方法,其中,
    在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
  3. 根据权利要求1所述的方法,其中,所述方法还包括:
    在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的解码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;
    基于所述第一、第二、第三和第四预测子节点的属性值,确定所述当前子节点的属性预测值。
  4. 根据权利要求3所述的方法,其中,所述从所述当前子节点的解码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:
    按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
    当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
  5. 根据权利要求3所述的方法,其中,所述从所述当前子节点的解码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:
    按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
    当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,
    当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
  6. 根据权利要求1所述的方法,其中,所述方法还包括:
    在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,或者,所述第一预测子节点的数目大于或等于所述第一阈值的情况下,根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
  7. 根据权利要求1所述的方法,其中,所述当前子节点为第M个子节点;其中,M大于或等于4。
  8. 根据权利要求7所述的方法,其中,所述方法还包括:
    在所述当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;
    在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已解码的子节点的属性重建值,得到所述后续子节点的属性预测值。
  9. 根据权利要求1至8任一项所述的方法,其中,所述方法还包括:
    基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围;
    基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
  10. 根据权利要求9所述的方法,其中,所述第一条件包括:所述当前子节点占据其所在父节点的边的共线父节点、占据的边的端点的共点父节点占据该父节点的面的共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点;
    或者,所述第一条件包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。
  11. 根据权利要求8所述的方法,其中,所述第二条件包括:当前子节点的父节点的共线父节点、共面父节点和/或共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点;
    或者,所述第二条件包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点;所述第二距离大于或等于所述第一距离。
  12. 根据权利要求1至11任一项所述的方法,其中,所述方法还包括:
    基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;
    基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
  13. 根据权利要求12所述的方法,其中,
    所述第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;
    所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;
    其中,所述第四距离大于或等于所述第三距离。
  14. 根据权利要求13所述的方法,其中,所述第一目标子节点包括所述当前子节点的共面子节点、所述当前子节点的共线子节点和/或所述当前子节点的共点子节点。
  15. 根据权利要求14所述的方法,其中,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成解码的子节点。
  16. 根据权利要求1所述的方法,其中,所述预测子节点包括在所述当前子节点之前解码的非空子节点。
  17. 根据权利要求1所述的方法,其中,所述基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值,包括:
    基于得到的预测子节点的属性重建值,得到所述当前子节点的属性预测值。
  18. 一种点云解码方法,所述方法包括:
    对接收的属性码流进行解析,得到当前子节点的重建残差;
    对所述当前子节点执行如权利要求1至17任一项所述的方法中的步骤,得到所述当前子节点的属性预测值;
    根据所述当前子节点的属性预测值与所述当前子节点的重建残差,确定所述当前子节点的属性重建值。
  19. 一种帧内预测方法,应用于编码端,所述方法包括:
    基于第一搜索范围,搜索得到所述当前子节点的第一预测子节点;
    在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;
    在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;
    当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,基于得到的预测子节点的属性值,得到所述当前子节点的属性预测值;其中,各个搜索范围互不交叠,N为大于或等于2的门限值。
  20. 根据权利要求19所述的方法,其中,
    在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
  21. 根据权利要求19所述的方法,其中,所述方法还包括:
    在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的编码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;
    基于所述第一、第二、第三和第四预测子节点的属性值,确定所述当前子节点的属性预测值。
  22. 根据权利要求21所述的方法,其中,所述从所述当前子节点的编码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:
    按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
    当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
  23. 根据权利要求21所述的方法,其中,所述从所述当前子节点的编码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:
    按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
    当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,
    当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
  24. 根据权利要求19所述的方法,其中,所述方法还包括:
    在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,或者,所述第一预测子节点的数目大于或等于所述第一阈值的情况下,根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
  25. 根据权利要求19所述的方法,其中,所述当前子节点为第M个子节点;其中,M大于或等于4。
  26. 根据权利要求25所述的方法,其中,所述方法还包括:
    在所述当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;
    在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已编码的子节点的属性重建值,得到所述后续子节点的属性预测值。
  27. 根据权利要求19至26任一项所述的方法,其中,所述方法还包括:
    基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围;
    基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
  28. 根据权利要求27所述的方法,其中,所述第一条件包括:所述当前子节点占据其所在父节点的边的共线父节点、占据的边的端点的共点父节点占据该父节点的面的共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点;
    或者,所述第一条件包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。
  29. 根据权利要求27所述的方法,其中,所述第二条件包括:当前子节点的父节点的共线父节点、共面父节点和/或共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点;
    或者,所述第二条件包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点;所述第二距离大于或等于所述第一距离。
  30. 根据权利要求19至26任一项所述的方法,其中,所述方法还包括:
    基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;
    基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
  31. 根据权利要求30所述的方法,其中,
    所述第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;
    所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;
    其中,所述第四距离大于或等于所述第三距离。
  32. 根据权利要求31所述的方法,其中,所述第一目标子节点包括所述当前子节点的共面子节点、所述当前子节点的共线子节点和/或所述当前子节点的共点子节点。
  33. 根据权利要求32所述的方法,其中,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成编码的子节点。
  34. 一种点云编码方法,应用于编码端,所述方法包括:
    对点云的当前子节点执行如权利要求19至33任一项所述的方法中的步骤,得到所述当前子节点的属性预测值;
    确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;
    将所述当前子节点的残差编码为属性码流。
  35. 根据权利要求34所述的方法,其中,所述方法还包括:
    确定所述当前子节点的重建残差;
    将重建残差与所述当前子节点的属性预测值叠加,得到所述当前子节点的属性重建值。
  36. 一种帧内预测装置,应用于解码端,包括:
    第一搜索模块,配置成:基于第一搜索范围,搜索得到当前子节点的第一预测子节点;在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;以及,在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第一帧内预测模块;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;
    所述第一帧内预测模块,配置成基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
  37. 一种解码装置,包括:
    解析模块,配置成对接收的属性码流进行解析,得到当前子节点的重建残差;
    帧内预测装置,配置成对所述当前子节点执行如权利要求1至17任一项所述的方法中的步骤,得到所述当前子节点的属性预测值;
    重建模块,配置成根据所述当前子节点的属性预测值与所述当前子节点的重建残差,确定所述当前子节点的属性重建值。
  38. 一种解码器,包括存储器和处理器;其中,
    所述存储器,配置成存储能够在所述处理器上运行的计算机程序;
    所述处理器,配置成在运行所述计算机程序时,执行如权利要求1至17任一项所述的帧内预测方法,或者执行如权利要求18所述的点云解码方法。
  39. 一种帧内预测装置,应用于编码端,包括:
    第二搜索模块,配置成基于第一搜索范围,搜索得到所述当前子节点的第一预测子节点;以及在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第二帧内预测模块;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;
    所述第二帧内预测模块,配置成基于得到的预测子节点的属性值,得到所述当前子节点的属性预测值。
  40. 一种编码装置,包括:
    帧内预测装置,配置成对点云的当前子节点执行如权利要求19至33任一项所述的方法中的步骤,得到所述当前子节点的属性预测值;
    确定模块,配置成确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;
    编码模块,配置成将所述当前子节点的残差编码为属性码流。
  41. 一种编码器,包括存储器和处理器;
    所述存储器,配置成存储能够在所述处理器上运行的计算机程序;
    所述处理器,配置成在运行所述计算机程序时,执行如权利要求19至33任一项所述的帧内预测方法,或者执行如权利要求34或35所述的点云编码方法。
  42. 一种电子设备,包括存储器和处理器;
    所述存储器,配置成存储能够在所述处理器上运行的计算机程序;
    所述处理器,配置成在运行所述计算机程序时,执行如权利要求1至17任一项所述的帧内预测方法,或者执行如权利要求18所述的点云解码方法,或者执行如权利要求19至33任一项所述的帧内预测方法,或者执行如权利要求34或35所述的点云编码方法。
  43. 一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至17任一项所述的帧内预测方法,或者,该计算机程序被处理器执行时实现权利要求18所述的点云解码方法,或者,该计算机程序被处理器执行时实现如权利要求19至33任一项所述的帧内预测方法,该计算机程序被处理器执行时实现权利要求34或35所述的点云编码方法。
PCT/CN2021/114153 2021-08-23 2021-08-23 帧内预测、编解码方法及装置、编解码器、设备、介质 WO2023023914A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2021/114153 WO2023023914A1 (zh) 2021-08-23 2021-08-23 帧内预测、编解码方法及装置、编解码器、设备、介质
CN202180099712.1A CN117581549A (zh) 2021-08-23 2021-08-23 帧内预测、编解码方法及装置、编解码器、设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/114153 WO2023023914A1 (zh) 2021-08-23 2021-08-23 帧内预测、编解码方法及装置、编解码器、设备、介质

Publications (1)

Publication Number Publication Date
WO2023023914A1 true WO2023023914A1 (zh) 2023-03-02

Family

ID=85321409

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/114153 WO2023023914A1 (zh) 2021-08-23 2021-08-23 帧内预测、编解码方法及装置、编解码器、设备、介质

Country Status (2)

Country Link
CN (1) CN117581549A (zh)
WO (1) WO2023023914A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021003726A1 (zh) * 2019-07-10 2021-01-14 深圳市大疆创新科技有限公司 一种数据编码、数据解码方法、设备及存储介质
US20210103780A1 (en) * 2019-10-02 2021-04-08 Apple Inc. Trimming Search Space For Nearest Neighbor Determinations in Point Cloud Compression
WO2021141090A1 (ja) * 2020-01-10 2021-07-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN113179410A (zh) * 2021-06-10 2021-07-27 上海交通大学 一种点云属性的编解码方法、装置和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021003726A1 (zh) * 2019-07-10 2021-01-14 深圳市大疆创新科技有限公司 一种数据编码、数据解码方法、设备及存储介质
US20210103780A1 (en) * 2019-10-02 2021-04-08 Apple Inc. Trimming Search Space For Nearest Neighbor Determinations in Point Cloud Compression
WO2021141090A1 (ja) * 2020-01-10 2021-07-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN113179410A (zh) * 2021-06-10 2021-07-27 上海交通大学 一种点云属性的编解码方法、装置和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEI LEI; WAN SHUAI; SUN ZEXING; DING XIAOBIN; ZHANG WEI: "Weighted Attribute Prediction Based on Morton Code for Point Cloud Compression", 2020 IEEE INTERNATIONAL CONFERENCE ON MULTIMEDIA & EXPO WORKSHOPS (ICMEW), IEEE, 6 July 2020 (2020-07-06), pages 1 - 6, XP033808372, DOI: 10.1109/ICMEW46912.2020.9105953 *

Also Published As

Publication number Publication date
CN117581549A (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
WO2022121648A1 (zh) 点云数据编码方法、解码方法、设备、介质及程序产品
US20220321912A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2022121650A1 (zh) 点云属性的预测方法、编码器、解码器及存储介质
WO2023023914A1 (zh) 帧内预测、编解码方法及装置、编解码器、设备、介质
CN117280680A (zh) 动态网格对齐的并行方式
WO2022257143A1 (zh) 帧内预测、编解码方法及装置、编解码器、设备、介质
WO2022183611A1 (zh) 帧内预测方法及装置、编解码器、设备、存储介质
WO2022116122A1 (zh) 帧内预测方法及装置、编解码器、设备、存储介质
WO2023173238A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2023173237A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2022257150A1 (zh) 点云编解码方法、装置、点云编解码器及存储介质
WO2023097694A1 (zh) 解码方法、编码方法、解码器以及编码器
WO2022257155A1 (zh) 解码方法、编码方法、解码器、编码器以及编解码设备
US20240037799A1 (en) Point cloud coding/decoding method and apparatus, device and storage medium
WO2023193534A1 (en) Methods and apparatus for coding presence flag for point cloud, and data stream including presence flag
WO2023193533A1 (en) Apparatus for coding vertex position for point cloud, and data stream including vertex position
WO2023123284A1 (zh) 一种解码方法、编码方法、解码器、编码器及存储介质
WO2024119518A1 (zh) 编解码方法、解码器、编码器、码流及存储介质
WO2024065406A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2022188582A1 (zh) 点云中邻居点的选择方法、装置及编解码器
US20230306643A1 (en) Mesh patch simplification
US20230334719A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2023023918A1 (zh) 解码方法、编码方法、解码器以及编码器
US20230232042A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20240020885A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device

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: 21954466

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202180099712.1

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE