WO2022257150A1 - 点云编解码方法、装置、点云编解码器及存储介质 - Google Patents

点云编解码方法、装置、点云编解码器及存储介质 Download PDF

Info

Publication number
WO2022257150A1
WO2022257150A1 PCT/CN2021/099883 CN2021099883W WO2022257150A1 WO 2022257150 A1 WO2022257150 A1 WO 2022257150A1 CN 2021099883 W CN2021099883 W CN 2021099883W WO 2022257150 A1 WO2022257150 A1 WO 2022257150A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
prediction
nodes
point cloud
decoded
Prior art date
Application number
PCT/CN2021/099883
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/099883 priority Critical patent/WO2022257150A1/zh
Priority to CN202180098761.3A priority patent/CN117426093A/zh
Publication of WO2022257150A1 publication Critical patent/WO2022257150A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability

Definitions

  • the present application relates to the technical field of point cloud encoding and decoding, and in particular to a point cloud encoding and decoding method, a point cloud encoding and decoding device, an encoding point cloud decoder, and a computer-readable storage medium.
  • the surface of the object is collected by the collection device to form point cloud data, which includes hundreds of thousands or more points.
  • point cloud data is transmitted between the point cloud encoding device and the point cloud decoding device in the form of point cloud media files.
  • point cloud encoding equipment needs to compress the point cloud data before transmission.
  • Embodiments of the present application provide a point cloud encoding and decoding method, a point cloud encoding and decoding device, an encoding and decoding point cloud decoder, and a computer-readable storage medium, so as to improve the accuracy of point cloud attribute encoding and improve point cloud encoding efficiency.
  • the embodiment of the present application provides a point cloud decoding method, including:
  • Decoding the point cloud code stream determining at least one node to be decoded corresponding to the point cloud and including a first decoding order corresponding to the at least one node to be decoded;
  • At least one first prediction node is determined among multiple first candidate nodes corresponding to the node to be decoded, wherein N is a positive number greater than or equal to 1 integer;
  • At least one second prediction node is determined among multiple second candidate nodes corresponding to the node to be decoded, wherein the multiple second candidate nodes are included in the first decoding At least one node before the node to be decoded in the order, and at least one node before and/or after the node to be decoded under the second node order corresponding to the point cloud, the second node order is to translate the point cloud
  • M1 is a positive integer greater than 1;
  • Prediction is performed according to the attribute reconstruction value of the at least one first prediction node, or the at least one first prediction node and the at least one second prediction node, to obtain the attribute prediction value of the node to be decoded.
  • the embodiment of the present application provides a point cloud encoding method, including:
  • At least one first prediction node is determined among multiple first candidate nodes corresponding to the node to be encoded, where N is a positive number greater than or equal to 1 integer;
  • At least one second prediction node is determined among multiple second candidate nodes corresponding to the node to be coded, wherein the multiple second candidate nodes are included in the first coding
  • M1 is a positive integer greater than 1;
  • the embodiment of the present application provides a point cloud decoding device, including
  • a node determination module configured to decode the point cloud code stream, determine at least one node to be decoded corresponding to the point cloud and include the first decoding sequence corresponding to the at least one node to be decoded;
  • the first prediction node determination module is configured to determine at least one first prediction node among multiple first candidate nodes corresponding to the node to be decoded when the sequence number of the node to be decoded is greater than N in the first decoding order, Wherein, N is a positive integer greater than or equal to 1;
  • the second prediction node determination module is configured to determine at least one second prediction node among a plurality of second candidate nodes corresponding to the node to be decoded when the number of the determined first prediction nodes is less than M1, wherein the The plurality of second candidate nodes includes at least one node before the node to be decoded in the first decoding order, and at least one node before and/or after the node to be decoded in the second node order corresponding to the point cloud,
  • the second node order is the reordering of nodes obtained after the point cloud is translated, and M1 is a positive integer greater than 1;
  • the attribute prediction module is configured to perform prediction according to the attribute reconstruction value of the at least one first prediction node, or the at least one first prediction node and the at least one second prediction node, to obtain the attribute prediction value of the node to be decoded.
  • the embodiment of the present application provides a point cloud encoding device, including:
  • the point cloud division module is used to divide the point cloud to obtain at least one node to be encoded corresponding to the point cloud, and determine the first encoding sequence corresponding to the at least one node to be encoded, wherein the node to be encoded is the point cloud
  • the voxel unit voxel obtained by dividing;
  • the first prediction node determination module is used to determine at least one first prediction node among a plurality of first candidate nodes corresponding to the node to be encoded when the sequence number of the node to be encoded in the first encoding order is greater than N, Wherein, N is a positive integer greater than or equal to 1;
  • the second predictive node determination module is configured to determine at least one second predictive node among multiple second candidate nodes corresponding to the node to be coded when the number of determined first predictive nodes is less than M1, wherein the multiple A second candidate node includes at least one node before the node to be encoded in the first encoding order, and at least one node before and/or after the node to be encoded under the second node order corresponding to the point cloud, said The second node order is the reordering of the nodes obtained after the point cloud is translated, and M1 is a positive integer greater than 1;
  • the attribute prediction module is configured to perform prediction according to the attribute reconstruction value of the at least one first prediction node, or the at least one first prediction node and the at least one second prediction node, to obtain the attribute prediction value of the node to be encoded.
  • the embodiment of the present application provides a point cloud decoder, including a processor and a memory.
  • the memory is used to store a computer program
  • the processor is used to call and run the computer program stored in the memory, so as to execute the method in the above first aspect or its various implementations.
  • the embodiment of the present application provides a point cloud encoder, including a processor and a memory.
  • the memory is used to store a computer program
  • the processor is used to invoke and run the computer program stored in the memory, so as to execute the method in the above second aspect or its various implementations.
  • the embodiment of the present application provides a point cloud encoding system, including the point cloud decoder described in the above third aspect and the point cloud encoder described in the above fourth aspect.
  • the embodiment of the present application provides a data stream, including an attribute code stream generated according to the point cloud encoding method in the second aspect.
  • a chip for implementing any one of the above first aspect to the second aspect or the method in each implementation manner thereof.
  • the chip includes: a processor, configured to call and run a computer program from the memory, so that the device installed with the chip executes any one of the above-mentioned first to second aspects or any of the implementations thereof. method.
  • a computer-readable storage medium for storing a computer program, and the computer program causes a computer to execute any one of the above-mentioned first to second aspects or the method in each implementation manner thereof.
  • a computer program product including computer program instructions, the computer program instructions cause a computer to execute any one of the above first to second aspects or the method in each implementation manner thereof.
  • a computer program which, when running on a computer, causes the computer to execute any one of the above first to second aspects or the method in each implementation manner.
  • Fig. 1 (a) is the overall schematic diagram of the point cloud image involved in the embodiment of the present application.
  • Fig. 1 (b) is a schematic diagram of a partial enlargement of a point cloud image involved in an embodiment of the present application
  • Figure 2 (a) is a schematic diagram of six viewing angles of the point cloud image involved in the embodiment of the present application.
  • Fig. 2 (b) is a schematic diagram of the data storage format of the point cloud image involved in the embodiment of the present application;
  • FIG. 3 is a schematic block diagram of a point cloud encoding and decoding system involved in an embodiment of the present application
  • FIG. 4 is a schematic block diagram of a point cloud encoder provided by an embodiment of the present application.
  • Fig. 5 is a schematic block diagram of a point cloud decoder provided by an embodiment of the present application.
  • Figure 6 (a) is a schematic diagram of the point cloud bounding box provided by the embodiment of the present application.
  • Figure 6 (b) is a schematic diagram of the octree division of the point cloud bounding box provided by the embodiment of the present application;
  • Figure 7(a) is a schematic diagram of the encoding sequence of the 2*2 Morton code in two-dimensional space provided by the embodiment of the present application;
  • Figure 7(b) is a schematic diagram of the encoding sequence of the 4*4 Morton code in two-dimensional space provided by the embodiment of the present application;
  • Figure 7(c) is a schematic diagram of the encoding sequence of the 8*8 Morton code in two-dimensional space provided by the embodiment of the present application;
  • FIG. 8 is a schematic diagram of the encoding sequence of the Morton code in three-dimensional space provided by the embodiment of the present application.
  • FIG. 9 is a schematic flow diagram of a point cloud encoding method provided by an embodiment of the present application.
  • Fig. 10(a) is a schematic diagram of coplanar nodes provided by the embodiment of the present application.
  • Figure 10(b) is a schematic diagram of collinear nodes provided by the embodiment of the present application.
  • Figure 10(c) is a schematic diagram of the common node provided by the embodiment of the present application.
  • FIG. 11 is a schematic flow diagram of a point cloud encoding method provided by an embodiment of the present application.
  • FIG. 12 is a schematic flow diagram of a point cloud decoding method provided by an embodiment of the present application.
  • FIG. 13 is a schematic flow chart of a point cloud decoding method provided by an embodiment of the present application.
  • FIG. 14 is a schematic structural diagram of a point cloud encoding device provided by an embodiment of the present application.
  • FIG. 15 is a schematic structural diagram of a point cloud decoding device provided by an embodiment of the present application.
  • Fig. 16 is a schematic block diagram of an electronic device provided by an embodiment of the present application.
  • the present application can be applied to the technical field of point cloud upsampling, for example, can be applied to the technical field of point cloud compression.
  • Point cloud refers to a set of discrete point sets randomly distributed in space, expressing the spatial structure and surface properties of 3D objects or 3D scenes.
  • Fig. 1(a)-(b) wherein Fig. 1(a) is a schematic diagram of a three-dimensional point cloud image.
  • Figure 1(b) is a partial enlarged view of the point cloud image. It can be seen that the surface of the point cloud is composed of densely distributed points.
  • Point cloud data is a specific record form of point cloud.
  • the points in the point cloud can include point position information (also called geometric information) and point attribute information.
  • the two-dimensional image has information expression at each pixel, and the distribution is regular, so there is no need to additionally record its position information; however, the distribution of points in the point cloud in three-dimensional space is random and irregular, so it is necessary to record each
  • the position of the point in space can completely express a point cloud.
  • each position in the acquisition process has corresponding attribute information, usually RGB color value, and the color value reflects the color of the object; for point cloud, the attribute information corresponding to each point is in addition to color information. , and the more common one is the reflectance value, which reflects the surface material of the object.
  • point cloud data usually includes geometric information (x, y, z) composed of three-dimensional position information, attribute information composed of three-dimensional color information (r, g, b), and one-dimensional reflectance information (r).
  • the color information may be information on any color space.
  • the color information may be (RGB).
  • the color information may be luminance and chrominance (YcbCr, YUV) information.
  • Y represents brightness (Luma)
  • Cb (U) represents blue color difference
  • Cr (V) represents red color
  • U and V are expressed as chromaticity (Chroma) for describing color difference information.
  • the points in the point cloud may include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point.
  • the points in the point cloud may include three-dimensional coordinate information and color information of the point.
  • the points in the point cloud may include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point, and the color information of the point.
  • Figure 2(a)-(b) shows a point cloud image and its corresponding data storage format, where Figure 2(a) provides six viewing angles of the point cloud image;
  • Figure 2(b) shows The data storage format of the point cloud image is composed of 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, as shown in Figure 2(b)
  • the point cloud in is in ".ply" format, represented by ASCII code, with a total of 207242 points, and each point has three-dimensional position information xyz and three-dimensional color information rgb.
  • 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.
  • the collection of point clouds mainly has the following methods: computer generation, 3D laser scanning, 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 point cloud data acquisition method has made it possible to acquire a large amount of point cloud data. With the growth of application requirements, the processing of massive 3D point cloud data encounters the bottleneck of storage space and transmission bandwidth limitations.
  • Point clouds can be divided into dense point clouds and sparse point clouds according to the way of acquisition.
  • the point cloud is divided according to the timing type of the data: the first type of static point cloud: that is, the object is stationary, and the device that obtains the point cloud is also static; the second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is static; the third type of dynamic acquisition of point clouds: the equipment for acquiring point clouds is moving.
  • point cloud According to the purpose of point cloud, it can be divided into two categories: category 1: machine-aware point cloud, which can be used in scenarios such as autonomous navigation system, real-time inspection system, geographic information system, visual sorting robot, emergency rescue robot, etc.; category 2: The human eye perceives point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
  • category 1 machine-aware point cloud, which can be used in scenarios such as autonomous navigation system, real-time inspection system, geographic information system, visual sorting robot, emergency rescue robot, etc.
  • category 2 The human eye perceives point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
  • a 10s point cloud video Taking a point cloud video with a frame rate of 30fps (frame per second) as an example, the number of points in each frame of point cloud is 700,000, and each point has coordinate information xyz (float) and color information RGB (uchar), then a 10s point cloud video
  • point cloud compression has become a key issue to promote the development of the point cloud industry.
  • a point cloud encoding/decoding method is provided, which can be applied in a point cloud encoding and decoding framework to compress point cloud data.
  • Point cloud compression generally uses point cloud geometric information and attribute information to compress separately. Compression of cloud attributes; at the decoding end, the geometric information of the point cloud is first decoded in the geometric decoder, and then the decoded geometric information is input into the attribute decoder as additional information to assist in the compression of the point cloud attributes.
  • FIG. 3 is a schematic block diagram of a point cloud encoding and decoding system involved in an embodiment of the present application. It should be noted that FIG. 3 is only an example, and the point cloud encoding and decoding system in the embodiment of the present application includes but is not limited to what is shown in FIG. 3 .
  • the point cloud encoding and decoding system 100 includes an encoding device 110 and a decoding device 120 .
  • the encoding device is used to encode the point cloud data (which can be understood as compression) to generate a code stream, and transmit the code stream to the decoding device.
  • the decoding device decodes the code stream generated by the encoding device to obtain decoded point cloud data.
  • the encoding device 110 in the embodiment of the present application can be understood as a device having a point cloud encoding function
  • the decoding device 120 can be understood as a device having a point cloud decoding function.
  • Devices including, for example, smartphones, desktop computers, mobile computing devices, notebook (e.g., laptop) computers, tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, point cloud gaming consoles, vehicle-mounted computers, etc. .
  • the encoding device 110 can transmit the encoded point cloud data (such as geometric code stream and attribute code stream) to the decoding device 120 via the channel 130 .
  • Channel 130 may include one or more media and/or devices capable of transmitting encoded point cloud data from encoding device 110 to decoding device 120 .
  • channel 130 includes one or more communication media that enable encoding device 110 to transmit encoded point cloud data directly to decoding device 120 in real-time.
  • the encoding device 110 may modulate the encoded point cloud data according to the communication standard, and transmit the modulated point cloud data to the decoding device 120 .
  • the communication medium includes a wireless communication medium, such as a radio frequency spectrum.
  • the communication medium may also include a wired communication medium, such as one or more physical transmission lines.
  • the channel 130 includes a storage medium, which can store the point cloud data encoded by the encoding device 110 .
  • the storage medium includes a variety of local access data storage media, such as optical discs, DVDs, flash memory, and the like.
  • the decoding device 120 can acquire encoded point cloud data from the storage medium.
  • the channel 130 may include a storage server, and the storage server may store the point cloud data encoded by the encoding device 110 .
  • the decoding device 120 may download the stored encoded point cloud data from the storage server.
  • the storage server can store the encoded point cloud data and can transmit the encoded point cloud data to the decoding device 120, such as a web server (for example, for a website), a file transfer protocol (FTP) server, etc. .
  • a web server for example, for a website
  • FTP file transfer protocol
  • the encoding device 110 includes a point cloud encoder 112 and an output interface 113 .
  • the output interface 113 may include a modulator/demodulator (modem) and/or a transmitter.
  • the encoding device 110 may include a point cloud source 111 in addition to the point cloud encoder 112 and the input interface 113 .
  • the point cloud source 111 may include at least one of a point cloud acquisition device (for example, a scanner), a point cloud archive, a point cloud input interface, and a computer graphics system, wherein the point cloud input interface is used to receive from a point cloud content provider Point cloud data, computer graphics system is used to generate point cloud data.
  • a point cloud acquisition device for example, a scanner
  • a point cloud archive for example, a point cloud archive
  • a point cloud input interface for example, a point cloud archive
  • point cloud input interface for example, a point cloud input interface
  • computer graphics system is used to generate point cloud data.
  • the point cloud encoder 112 encodes the point cloud data from the point cloud source 111 to generate a code stream.
  • the point cloud encoder 112 directly transmits the encoded point cloud data to the decoding device 120 via the output interface 113 .
  • the encoded point cloud data can also be stored on a storage medium or a storage server for subsequent reading by the decoding device 120 .
  • the decoding device 120 includes an input interface 121 and a point cloud decoder 122 .
  • the decoding device 120 may further include a display device 123 in addition to the input interface 121 and the point cloud decoder 122 .
  • the input interface 121 includes a receiver and/or a modem.
  • the input interface 121 can receive the encoded point cloud data through the channel 130 .
  • the point cloud decoder 122 is used to decode the encoded point cloud data, obtain the decoded point cloud data, and transmit the decoded point cloud data to the display device 123.
  • the display device 123 displays the decoded point cloud data.
  • the display device 123 may be integrated with the decoding device 120 or external to the decoding device 120 .
  • the display device 123 may include various display devices, such as a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or other types of display devices.
  • LCD liquid crystal display
  • plasma display a plasma display
  • OLED organic light emitting diode
  • FIG. 3 is only an example, and the technical solution of the embodiment of the present application is not limited to FIG. 3 .
  • the technology of the present application can also be applied to one-sided point cloud encoding or one-sided point cloud decoding.
  • the current point cloud encoder can use the Geometry Point Cloud Compression (G-PCC) codec framework provided by the Moving Picture Experts Group (MPEG) or the video-based point cloud compression (Video Point Cloud Compression, V-PCC) codec framework, or the AVS-PCC codec framework provided by Audio Video Standard (AVS). Both G-PCC and AVS-PCC are aimed at static sparse point clouds, and their coding frameworks are roughly the same.
  • the G-PCC codec framework can be used to compress the first static point cloud and the third type of dynamically acquired point cloud, and the V-PCC codec framework can be used to compress the second type of dynamic point cloud.
  • the G-PCC codec framework is also called point cloud codec TMC13, and the V-PCC codec framework is also called point cloud codec TMC2.
  • the codec framework shown in FIG. 4 and FIG. 5 is taken as an example below to describe the applicable point cloud encoder and point cloud decoder in the embodiment of the present application.
  • Fig. 4 is a schematic block diagram of a point cloud encoder provided by an embodiment of the present application.
  • the points in the point cloud can include the geometric information of the point and the attribute information of the point. Therefore, the encoding of the point in the point cloud mainly includes geometric encoding and attribute encoding.
  • the process of geometric encoding includes: preprocessing the points in the point cloud, such as coordinate transformation, quantization, and removing duplicate points, etc.; then, performing geometric encoding on the preprocessed point cloud, such as constructing an octree, based on the constructed The octree performs geometric encoding to form a geometric code stream. At the same time, based on the geometric information output by the constructed octree, the geometric information of each point in the point cloud data is reconstructed to obtain the reconstruction value of the geometric information of each point.
  • the attribute encoding process includes: given the reconstruction information of the geometric information of the input point cloud and the original value of the attribute information, selecting the prediction mode for point cloud prediction, quantifying the predicted results, and performing arithmetic encoding to form the attribute code stream.
  • geometric encoding can be achieved by the following units:
  • Coordinate conversion (Tanmsform coordinates) unit 201, quantization and removal of repeated points (Quantize and remove points) unit 202, octree analysis (Analyze octree) unit 203, geometric reconstruction (Reconstruct geometry) unit 204 and first arithmetic coding (Arithmetic enconde) unit 205.
  • the coordinate transformation unit 201 can be used to transform the world coordinates of points in the point cloud into relative coordinates. For example, subtracting the minimum values of the xyz coordinate axes from the geometric coordinates of the point is equivalent to a DC operation to convert the coordinates of the points in the point cloud from world coordinates to relative coordinates.
  • Quantization and removal of duplicate points unit 202 can reduce the number of coordinates by quantization; original different points may be given the same coordinates after quantization, based on this, duplicate points can be deleted through de-duplication operations; for example, with the same quantization position and Multiple clouds with different attribute information can be merged into one cloud through attribute conversion.
  • the Quantize and Remove Duplicate Points unit 202 is an optional unit module.
  • the octree analysis unit 203 can encode the geometric information of the quantized points using an octree encoding method.
  • the octree structure is used to recursively divide the point cloud space, and each time the current sub-block is divided into eight sub-blocks of the same size, so that the position of the point can be in one-to-one correspondence with the position of the octree, and judge
  • the occupancy codeword information of each sub-block is recorded as empty when the sub-block does not contain points, otherwise it is recorded as non-empty, and the occupancy codeword information of all blocks is recorded in the last layer of recursive division for geometric coding.
  • the geometry reconstruction unit 204 may perform position reconstruction based on the position information output by the octree analysis unit 203 to obtain reconstruction values of the position information of each point in the point cloud data.
  • the first arithmetic coding unit 205 can arithmetically encode the position information output by the octree analysis unit 203 in an entropy coding manner, that is, the position information output by the octree analysis unit 203 is generated using an arithmetic coding method to generate a geometric code stream; the geometric code stream is also Can be called geometry bitstream (geometry bitstream).
  • Attribute coding can be achieved by the following units:
  • a color space conversion (Transform colors) unit 210 an attribute conversion (Transfer attributes) unit 211 , an attribute prediction unit 213 , a quantization coefficient (Quantize coefficients) unit 215 and a second arithmetic coding unit 216 .
  • point cloud encoder 200 may include more, less or different functional components than those shown in FIG. 2 .
  • the color space conversion unit 210 can be used to convert the RGB color space of points in the point cloud into YCbCr format or other formats.
  • the attribute conversion unit 211 can be used to convert attribute information of points in the point cloud to minimize attribute distortion.
  • the attribute conversion unit 211 can be used to obtain the original value of the point's attribute information (attribute original value).
  • the attribute information may be color information of dots.
  • the point in the point cloud is predicted.
  • the attribute prediction unit 213 performs attribute prediction on the attribute information.
  • the point cloud needs to be reordered.
  • the reordering method is Morton code (of course, it can also be other sorting methods), so the traversal order of the attribute code is Morton code. frame order (corresponding to the order corresponding to other sorting methods).
  • the attribute prediction method can be a single-point prediction based on Morton order, that is, according to the Morton order, one point is traced forward from the current point to be encoded, and the found point is the prediction reference point of the current point to be encoded, and then The attribute reconstruction value of the prediction reference point is used as the attribute prediction value.
  • the quantization unit 215 may be used to quantize residual values of attribute information of points. For example, if the quantization unit 215 is connected to the predictive transformation unit 213, the quantization unit may be used to quantize the residual value of the point attribute information output by the predictive transformation unit 213.
  • the residual value of the point attribute information output by the predictive transformation unit 213 is quantized using the quantization step size, so as to improve system performance.
  • the second arithmetic coding unit 216 performs entropy coding on the residual value of the attribute information of the point to obtain an attribute code stream.
  • the attribute code stream may be bit stream information.
  • Fig. 5 is a schematic block diagram of a point cloud decoder provided by an embodiment of the present application.
  • the decoder 300 can obtain the point cloud code stream from the encoding device, and obtain the geometric information and attribute information of the points in the point cloud by analyzing the code.
  • the decoding of point cloud includes geometric decoding and attribute decoding.
  • the geometric decoding process includes: arithmetic decoding of the geometric code stream; merging after constructing the octree to reconstruct the geometric information of the point to obtain the reconstruction information of the geometric information of the point; coordinate Transform to get the geometric information of the point.
  • the attribute decoding process includes: obtaining the residual value of the attribute information of the point cloud by parsing the attribute code stream; dequantizing the residual value of the attribute information of the point to obtain the residual value of the attribute information of the dequantized point value; based on the reconstruction information of the position information of the point obtained in the geometric decoding process, and perform point cloud prediction to obtain the predicted value, and add the predicted value and the residual value to obtain the reconstructed value of the point's attribute information; the reconstruction of the point's attribute information Values are inversely transformed into a color space to obtain a decoded point cloud.
  • geometry decoding can be achieved by the following units:
  • a first arithmetic decoding unit 301 an octree analysis unit 302 , a geometry reconstruction unit 304 and an inverse transform coordinates unit 305 .
  • Attribute coding can be achieved by the following units:
  • a second arithmetic decoding unit 310 an inverse quantize coefficient unit 311 , an attribute prediction unit 313 and an inverse transform colors unit 315 .
  • decompression is an inverse process of compression
  • the functions of each unit in the decoder 300 may refer to the functions of corresponding units in the encoder 200 .
  • the point cloud decoder 300 may include more, fewer or different functional components than in FIG. 5 .
  • x min min(x 0 ,x 1 ,...,x K-1 )
  • y min min(y 0 ,y 1 ,...,y K-1 )
  • x max max(x 0 ,x 1 ,...,x K-1 )
  • y max max(y 0 ,y 1 ,...,y K-1 )
  • origin (x origin , y origin , z origin ) of the bounding box can be calculated as follows:
  • the size of the bounding box in the x, y, z directions can be calculated as follows:
  • the bounding box is divided into octrees, and eight sub-blocks are obtained each time, and then the non-empty blocks (blocks containing points) in the sub-blocks are divided into octrees again, so that the recursive division Until a certain depth (such as dividing to the minimum value), 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 voxel
  • the center point, the attribute value of the center point is the average value of the attribute values of all points in the voxel.
  • regularizing the point cloud into blocks (sub-blocks) in the space can facilitate the description of the relationship between points in the point cloud (for example, the geometric relationship between points), so that in the process of encoding and decoding according to Encode voxels in a certain order (e.g. Morton order).
  • a certain order e.g. Morton order
  • the encoding and decoding of the point cloud is to encode and decode each voxel in a certain order, that is, to encode the point represented by each voxel (hereinafter referred to as "node").
  • the voxel is the current node (the node to be encoded at the encoding end and the node to be decoded at the decoding end).
  • the order can be Morton order, Hilbert order, or any other order that can be used for point cloud encoding order, here Not limited.
  • Figure 7(a)-(c) shows the encoding order of Morton codes in two-dimensional space, taking a block of size 8*8 as an example, where the order of the arrows indicates the encoding order of points under the Morton order.
  • Figure 7(a) is the "z"-shaped Morton coding sequence of 2*2 pixels in a block
  • Figure 7(b) is the "z"-shaped Morton coding sequence between four 2*2 blocks
  • Figure 7( c) is the "z"-shaped Morton coding sequence between four 4*4 blocks, forming the Morton coding sequence of the entire 8*8 block.
  • the Morton coding sequence extended to the three-dimensional space is shown in Figure 8, which shows 16 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.
  • a point cloud encoding method and a point cloud decoding method are proposed, specifically related to the part of attribute prediction, specifically related to the part corresponding to the attribute prediction unit 213 in FIG. 4 and the attribute prediction unit 313 in FIG. 5 , which can Improve the accuracy of attribute prediction and improve coding efficiency.
  • the current node is mainly referred to the adjacent nodes of the current node to predict the attribute prediction value, and the predicted attribute prediction value is used to calculate the residual information.
  • the residual information is 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 predicts and obtains the attribute prediction value through the same process, and obtains the current node after being superimposed with the residual information
  • the property reconstruction value for for the decoding end.
  • FIG. 9 shows a schematic flowchart of a point cloud encoding method proposed by the embodiment of the present application.
  • the above point cloud encoding method includes steps S102-S106 as shown in FIG. 9:
  • Step S102 Divide the point cloud to obtain at least one node to be coded corresponding to the point cloud;
  • Step S104 When the sequence number of the node to be encoded in the first encoding sequence is greater than N, determine at least one predicted node;
  • Step S106 Predict according to the reconstructed attribute value of the at least one predicted node to obtain the predicted attribute value of the node to be coded.
  • the point cloud is divided into octrees to obtain multiple voxels, and each voxel is a node; then in the process of encoding, according to the Morton order or other order (that is, the first encoding order) for each Nodes (nodes to be encoded) perform attribute prediction in turn to obtain the predicted attribute value of the node to be encoded, and calculate the corresponding residual value according to the original value of the attribute of the node to be encoded, and then perform encoding after quantization and other processes to generate the corresponding attribute code Stream and transmit to the decoding end.
  • the Morton order or other order that is, the first encoding order
  • the process of predicting the attributes of the nodes to be encoded according to the first encoding order it is necessary to determine one or more reference nodes corresponding to the nodes to be encoded (that is, one or more prediction nodes, where the prediction nodes are before the nodes to be encoded Nodes that have been encoded, only encoded nodes can be used as reference nodes), and then predict the attribute value of the current node to be encoded according to the attribute reconstruction value of one or more predicted nodes, and obtain the corresponding attribute prediction value.
  • the node to be encoded is the first node in the first encoding order (the serial number in the encoding order is 0)
  • the preset value can be (128,128,128) or (0,0,0) or (255,255,255), also It can be other preset values, which are not limited here.
  • the first node (the serial number in the encoding order is 0) is used as the prediction node to predict the attribute value of the current node to be encoded. For example, directly set the attribute prediction value of the coded node equal to the attribute reconstruction value of the first node (the sequence number in the coding sequence is 0).
  • the node to be encoded is the third node in the first encoding order (the serial number in the encoding order is 2)
  • there are 1st and 2 nodes (the serial number in the encoding order is 0, 1)
  • the first and second nodes (numbered in the encoding sequence are 0, 1) are used as prediction nodes to predict the attribute value of the current node to be encoded.
  • the weighted average of the attribute reconstruction values of the 1st and 2nd nodes (the sequence numbers in the coding order are 0 and 1) is used as the attribute prediction value of the third node (the sequence number in the coding sequence is 2).
  • the node to be encoded is the fourth node (the sequence number in the encoding order is 3) and the subsequent nodes, the number of optional nodes that have been encoded is relatively large. In this case, based on the relationship between each node and The spatial relationship between the nodes to be encoded, or based on the first encoding sequence, etc., select one or more prediction nodes for attribute prediction.
  • N is a positive integer
  • N may be equal to 2, or equal to 1, 2, 4, 5, 6, 7, 8 and other preset values, which are not limited here.
  • only the first node to be coded is determined for the attribute prediction value as above, and other nodes perform attribute prediction according to the following method of predicting the node.
  • the sorting of the nodes in the coding order starts from 0, therefore, for the nodes with sequence numbers 0, 1, and 2, the above-mentioned method is used to determine the attribute prediction value.
  • the ordering of the nodes in the encoding order may also start from 1, and it is only necessary to modify the sequence numbers accordingly.
  • the attribute prediction method based on the spatial relationship selects the prediction node according to the spatial relationship between the node and the node to be encoded, and can find the adjacent nodes of the node to be encoded through the spatial relationship;
  • the prediction node can be selected according to the distance between the node and the node to be coded, which can improve the accuracy of attribute prediction;
  • the prediction nodes of the nodes to be encoded are the first N nodes in the first encoding order
  • the prediction nodes of the nodes to be encoded are determined according to the aforementioned method or attribute predictive value, which can be determined in the same manner in different embodiments.
  • the predicted node can be determined as follows, and then the attribute value of the node to be encoded is predicted according to the predicted node to obtain the attribute prediction value.
  • an attribute prediction method based on a spatial relationship may be used to predict the attribute of the node to be coded.
  • the geometrically coplanar, collinear, and copoint nodes of the nodes to be coded are used as prediction nodes, and the nodes as prediction nodes also need to meet the conditions : Encoding has been completed before the node to be encoded. Then predict the attribute value of the node to be coded according to the determined attribute reconstruction values of the plurality of predicted nodes, and obtain the attribute prediction value.
  • the serial number of the node to be encoded is 7, there are 6 faces, 12 edges, and 8 nodes in total
  • the serial number of the coplanar node is 3 , 5, 6, 14, 21, 35 corresponding to the 6 nodes
  • the collinear nodes have serial numbers 1, 2, 4, 10, 12, 17, 20, 28, 33, 34, The 12 nodes corresponding to 42 and 49, as shown in Fig. 10(c)
  • the 8 nodes corresponding to the serial numbers of the co-point nodes 0, 8, 16, 24, 32, 40, 48, and 56.
  • the ones that may satisfy the condition of "coding completed before the node to be coded" are coplanar nodes 3, 5, 6, and collinear nodes 1, 2, 4, 10, 12, 17, 20, 33, 34, co-point nodes 0, 8, 16, 24, 32, 40, 48, so prediction nodes are generated in these nodes. That is to say, the prediction node is generated from the 19 corresponding to the sequence number 3, 5, 6, 1, 2, 4, 10, 12, 17, 20, 33, 34, 0, 8, 16, 24, 32, 40, 48 node.
  • not all nodes can be used as prediction nodes. This is because, for the current node, the serial numbers 3, 5, 6, 1, 2, 4, 10, The nodes corresponding to 12, 17, 20, 33, 34, 0, 8, 16, 24, 32, 40, and 48 may be empty, that is, there is no point in the corresponding voxel; and, when predicting the node to be coded , the above 19 nodes are not necessarily all coded, uncoded nodes cannot be used as predictive nodes, only nodes that have been coded before the coded nodes can be used as predictive nodes.
  • the process of predicting the attribute value of the node to be coded according to the determined multiple predictive nodes to obtain the predicted attribute value may be a process of weighting and averaging the multiple predictive nodes according to the weight value.
  • the weight values of each prediction node may be consistent or inconsistent. For example, set the weight value of each prediction node as a fixed constant; for example, set the corresponding weight value for different serial numbers; for example, the weight value of the prediction node is the reciprocal of the distance value between the prediction node and the node to be encoded , where the distance can be geometric Manhattan distance or geometric Euclidean distance.
  • the weight value is set as the reciprocal of the geometric Manhattan distance between the predicted node and the node to be encoded, that is, the weight of the coplanar node is 1, the weight of the collinear node is 1/2, and the weight of the co-point node is 1/2 3. Then calculate the weighted average of the attribute reconstruction values of all predicted nodes as the attribute prediction value of the node to be encoded.
  • the step of predicting the attributes of the nodes to be coded includes the following steps 1.1) to 1.3), wherein only the nodes after the Nth node in the coding order are given.
  • Corresponding steps for the attribute prediction of the first N nodes, please refer to the embodiment described above:
  • Step 1.1) Take the coplanar nodes 3, 5, 6 of the nodes to be coded, the collinear nodes 1, 2, 4, 10, 12, 17, 20, 33, 34, and the coplanar nodes 1, 8, 16, 24, 32 , 40, and 48 are used as the search range of the prediction node to determine a plurality of prediction nodes, wherein the number of prediction nodes can be 3-6, that is to say, in this step, a minimum of M1 and a maximum of M2 nodes are determined as predictions node.
  • the distance between the node and the node to be encoded is the geometric Manhattan distance or the geometric Euclidean distance.
  • the weighted average is carried out according to the determined plurality of prediction nodes to obtain the attribute prediction value of the node to be coded.
  • the residual value is the difference between the original value of the attribute of the node to be encoded and the predicted value of the attribute, and then the residual value is transformed, quantized, etc.;
  • the attribute prediction value is superimposed with the residual information after operations such as inverse quantization and inverse transformation, and the attribute reconstruction value of the node to be encoded is obtained as the reference information of the subsequent coding unit.
  • an attribute prediction method based on double Morton can be used to predict the attribute of the node to be coded.
  • the prediction node may be generated in the first P1 nodes before the node to be encoded under the Morton order 1. Then, add 1 to the point cloud on the x, y, and z coordinates (equivalent to a translation with a translation vector of (1,1,1), or other translation vectors), and generate a new one based on this new geometric coordinate
  • the encoding order (Morton order 2)
  • the step of predicting the attributes of the nodes to be coded includes the following steps 2.1) to 2.3), wherein only the corresponding nodes executed for the nodes after the Nth node in the coding order are given. Steps (for the attribute prediction of the first N nodes, please refer to the embodiment described above):
  • the prediction node is generated among the first 8 points under the Morton order 1 of the node to be encoded; then add 1 to the x, y, and z coordinates of the points, and generate according to the new geometric coordinates
  • the prediction node is generated among the first 4 nodes and the last 4 nodes under the Morton order 2 of the node to be encoded.
  • the final prediction node is generated among these 16 nodes, and the three nodes closest to each other are selected as prediction nodes, and the weighted average of the attribute reconstruction values of all prediction nodes is calculated as the attribute prediction value of the current node.
  • the residual value is the difference between the original attribute value of the node to be coded and the attribute prediction value, and then the residual value is transformed, quantized and other operations;
  • the attribute prediction value is superimposed with the residual information after operations such as inverse quantization and inverse transformation, and the attribute reconstruction value of the node to be encoded is obtained as the reference information of the subsequent coding unit.
  • an attribute prediction method based on spatial relationship and double Morton combination can be used to predict the attribute of the node to be coded.
  • the first candidate node is a node selected according to the spatial relationship, for example, it may be generated from coplanar nodes of the nodes to be coded, collinear nodes of the nodes to be coded and co-point nodes of the nodes to be coded.
  • the first candidate nodes specifically include coplanar nodes 3, 5, 6 as shown in Figure 10(a)-(c), and collinear nodes 1, 2, 4, 10, 12, 17, 20 , 33, 34, and 19 nodes of nodes 1, 8, 16, 24, 32, 40, and 48.
  • the process of determining the first prediction node among the first candidate nodes it is necessary to search for a node that is not empty (that is, the corresponding voxel is not empty and contains a specific point) and that has been encoded before the node to be encoded as forecast node.
  • a node that is not empty that is, the corresponding voxel is not empty and contains a specific point
  • coplanar nodes 3 5, 6, collinear nodes 1, 2, 4, 10, 12, 17, 20, 33, 34, and co-point nodes 1, 8, 16, 24, 32, 40, 48, take the Q1 nodes that are ranked first, are not empty, and have been coded before the node to be coded as prediction nodes, where Q1 is a positive integer less than or equal to 3 or 6.
  • first prediction nodes may not be possible to determine a sufficient number of first prediction nodes from the first candidate nodes. For example, if the first candidate node only contains 2 nodes that are not empty and have been coded, the first prediction node The number is 2. In this case, it is necessary to further supplement the prediction node with the method of combining double Morton.
  • the prediction nodes are supplemented in a double-Morton-based manner.
  • the final prediction node is generated among the P1+P2+P3(16) second candidate nodes.
  • Q2 nodes with the closest distance are selected as the second prediction nodes.
  • Q2 nodes are selected as the second prediction nodes according to the distance between the candidate nodes and the nodes to be coded, so that the sum of the numbers of the first prediction nodes and the second prediction nodes is predetermined Set the value (for example, 3 or 6). In this case, the total number of first prediction nodes and second prediction nodes is 3 or 6.
  • the second prediction node after the second prediction node is selected according to the distance between the node and the node to be encoded, it is necessary to further judge whether all the prediction nodes are the best prediction nodes. Specifically, it can be judged according to the distance between the node and the node to be encoded. The description is made by taking the total number of the first prediction node and the second prediction node as 6 as an example. Among the nodes that are not selected as the second prediction node among the second candidate nodes, it is judged whether the first distance between the candidate node and the node to be coded is smaller than the second distance between the node to be coded and the node to be coded.
  • the prediction node and the node to be encoded are close enough to improve the accuracy of attribute prediction.
  • the nodes are traversed from small to large, and the above judgment is performed to determine whether there is a gap between the candidate node and the node to be encoded.
  • the first distance of is smaller than the second distance between the node of the second predicted node and the node to be encoded. If it exists, the step of replacing the corresponding candidate node with the node in the second predicted node is required until there is no node in the second candidate node.
  • the distance between all the nodes selected as the second predicted node and the node to be coded is smaller than the distance between the second predicted node and the node to be coded.
  • the above-mentioned calculated curry between nodes may be geometric Manhattan distance or geometric Euclidean distance, or other distance calculation methods between nodes.
  • the weighted average of the attribute reconstruction values of the first prediction node and the second prediction node is calculated as the attribute prediction value of the node to be encoded
  • w i is the weight value of the first prediction node or the second prediction node.
  • the weight values of each prediction node may be consistent or inconsistent. For example, set the weight value of each prediction node as a fixed constant. For example, for different serial numbers, corresponding weight values are set respectively.
  • the weight value of the prediction node is the reciprocal of the distance value between the prediction node and the node to be encoded, where the distance may be a geometric Manhattan distance or a geometric Euclidean distance.
  • the weight value is set as the reciprocal of the geometric Manhattan distance between the predicted node and the node to be encoded, that is, the weight of the coplanar node is 1, the weight of the collinear node is 1/2, and the weight of the co-point node is 1/2 3.
  • the residual value is the difference between the original value of the attribute of the node to be encoded and the predicted value of the attribute, and then the residual value is transformed, quantized, etc.;
  • FIG. 11 a schematic flowchart of the above-mentioned point cloud encoding method based on spatial relationship and double Morton combination is given.
  • the point cloud encoding method includes steps S202-S208 as shown in Figure 11:
  • Step S202 Divide the point cloud to obtain at least one node to be coded corresponding to the point cloud;
  • Step S204 In the case where the sequence number of the node to be encoded in the first encoding sequence is greater than N, determine at least one first prediction node among the plurality of first candidate nodes corresponding to the node to be encoded;
  • Step S206 When the number of determined first prediction nodes is less than M1, determine at least one second prediction node among multiple second candidate nodes corresponding to the node to be coded, wherein the multiple second candidate nodes
  • the nodes include at least one node before the node to be encoded in the first encoding order, and at least one node before and/or after the node to be encoded under the second node order corresponding to the point cloud, the second node order is the reordering of nodes obtained after translation processing of the point cloud;
  • Step S208 Predict according to the attribute reconstruction value of the at least one first prediction node, or the at least one first prediction node and the at least one second prediction node, to obtain the attribute prediction value of the node to be coded.
  • the above-mentioned attribute prediction method based on the spatial relationship can directly find the adjacent nodes of the node to be encoded through the spatial relationship, and can predict the attribute value of the current node very well.
  • the above attribute prediction method based on double Morton can increase the prediction accuracy as much as possible and improve the coding efficiency.
  • the relevant information of the prediction node (such as the attribute reconstruction value) is stored in the cache, and the cache size is limited, that is, it may There is a situation that the adjacent nodes cannot be found in the cache, which will also have a certain impact on the effect of attribute prediction.
  • the improvement of attribute prediction accuracy is also limited, and the optimal prediction effect may not be achieved.
  • the aforementioned attribute prediction method based on the combination of spatial relationship and double Morton through the combination of spatial proximity and double Morton's prediction node search
  • the method can not only accurately locate the adjacent nodes of the current node, but also expand the prediction nodes through double Morton when the adjacent nodes are not available, so as to increase the prediction accuracy as much as possible, thereby improving the coding efficiency.
  • FIG. 12 shows a schematic flowchart of a point cloud decoding method proposed by an embodiment of the present application.
  • the above point cloud decoding method includes steps S302-S306 as shown in FIG. 12:
  • Step S302 Decode the point cloud code stream, and determine at least one node to be decoded corresponding to the point cloud;
  • Step S304 When the sequence number of the node to be decoded in the first decoding order is greater than N, determine at least one prediction node;
  • Step S306 Perform prediction according to the reconstructed attribute value of the at least one predicted node to obtain the predicted attribute value of the node to be decoded.
  • the point cloud is divided into octrees, and after obtaining multiple voxels, each voxel (node to be encoded) can be encoded according to a certain encoding sequence; at the decoding end, after decoding the geometric information, That is, the corresponding encoding order at the encoding end can be determined, so that decoding can also be performed at the decoding end according to the corresponding order, which is referred to as the first decoding order here.
  • attribute prediction is performed on each node (node to be decoded) sequentially according to the Morton order or other order (namely the first decoding order), to obtain the attribute prediction value of the node to be decoded, and according to the node to be decoded
  • the residual value and the attribute prediction value are used to calculate the attribute reconstruction value, and the reconstruction point cloud is determined according to the attribute reconstruction value of each node to be encoded, and the decoding process of the point cloud is completed.
  • the process of predicting the attributes of the nodes to be encoded according to the first encoding order it is necessary to determine one or more reference nodes corresponding to the nodes to be encoded (that is, one or more prediction nodes, where the prediction nodes are before the nodes to be encoded Nodes that have been encoded, only encoded nodes can be used as reference nodes), and then predict the attribute value of the current node to be encoded according to the attribute reconstruction value of one or more predicted nodes, and obtain the corresponding attribute prediction value.
  • the node to be decoded is the first node in the first decoding order, because it is the first point to be decoded, there is no node that has been decoded as a predictive node. Therefore, in this case Directly set the attribute prediction value of the node to be decoded as a preset value, for example, the preset value can be (128,128,128) or (0,0,0) or (255,255,255), or other preset values, here No limit.
  • the first node when the node to be decoded is the second node in the first decoding order, there is only the first node that has been decoded, so the first node is used as the prediction node Predict the attribute value of the current node to be decoded. For example, directly set the attribute prediction value of the node with decoding equal to the attribute reconstruction value of the first node.
  • the first and second nodes when the node to be decoded is the third node in the first decoding order, there are two decoded nodes, the first and second nodes, therefore, the first and second nodes as a prediction node, predict the attribute value of the current node to be decoded. For example, the weighted average value of the reconstructed attributes of the first and second nodes is used as the predicted attribute value of the third node.
  • the number of optional nodes that have been decoded is relatively large. In this case, it can be based on the spatial relationship between each node and the node to be decoded, or One or more prediction nodes are selected for attribute prediction based on the first decoding order and the like.
  • N is a positive integer
  • N can be equal to 3, or can be equal to 1, 2, 4, 5, 6, 7, 8 and other preset values, which are not limited here.
  • only the first node to be decoded is determined for the attribute prediction value as above, and other nodes perform attribute prediction according to the following manner of predicting nodes.
  • the attribute prediction method based on spatial relationship selects the prediction node according to the spatial relationship between the node and the node to be decoded, and can find the adjacent nodes of the node to be decoded through the spatial relationship;
  • the first decoding order is Morton order 1
  • the corresponding second node order is reacquired as Morton order 2
  • the prediction node is selected according to the distance between the node and the node to be decoded, which can improve the accuracy of attribute prediction;
  • the prediction node of the node to be decoded is determined according to the aforementioned method and/or or attribute predictive value, which can be determined in the same manner in different embodiments.
  • the predicted node can be determined as follows, and then the attribute value of the node to be decoded is predicted according to the predicted node to obtain the attribute prediction value.
  • an attribute prediction method based on a spatial relationship may be used to predict the attribute of the node to be decoded.
  • the geometrically coplanar, collinear, and copoint nodes of the nodes to be decoded are used as prediction nodes, and the nodes as prediction nodes also need to meet the conditions : Decoding has been completed before the node to be decoded. Then, predict the attribute value of the node to be decoded according to the determined attribute reconstruction values of multiple prediction nodes, and obtain the attribute prediction value.
  • the serial number of the node to be decoded is 7, there are 6 faces, 12 edges, and 8 nodes in total
  • the serial number of the coplanar node is 3 , 5, 6, 14, 21, 35 corresponding to the 6 nodes
  • the collinear nodes have serial numbers 1, 2, 4, 10, 12, 17, 20, 28, 33, 34, The 12 nodes corresponding to 42 and 49, as shown in Fig. 10(c)
  • the 8 nodes corresponding to the serial numbers of the co-point nodes 0, 8, 16, 24, 32, 40, 48, and 56.
  • the ones that may satisfy the condition of "decoding is completed before the node to be decoded" are the coplanar nodes 3, 5, 6, and the collinear nodes 1, 2, 4, 10, 12, 17, 20, 33, 34, co-point nodes 0, 8, 16, 24, 32, 40, 48, so prediction nodes are generated in these nodes. That is to say, the prediction node is generated from the 19 corresponding to the sequence number 3, 5, 6, 1, 2, 4, 10, 12, 17, 20, 33, 34, 0, 8, 16, 24, 32, 40, 48 node.
  • nodes among the 19 nodes, not all nodes can be used as prediction nodes. This is because, for the current node, the serial numbers 3, 5, 6, 1, 2, 4, 10, The nodes corresponding to 12, 17, 20, 33, 34, 0, 8, 16, 24, 32, 40, and 48 may be empty, that is, there is no point in the corresponding voxel; and, when predicting the node to be decoded , the above 19 nodes have not necessarily been decoded, and undecoded nodes cannot be used as predictive nodes, and only nodes that have been decoded before the node to be decoded can be used as predictive nodes.
  • the process of predicting the attribute value of the node to be decoded according to the determined multiple predicting nodes to obtain the predicted attribute value may be a process of weighting and averaging the multiple predicting nodes according to the weight value.
  • the weight values of each prediction node may be consistent or inconsistent. For example, set the weight value of each prediction node as a fixed constant; for example, set corresponding weight values for different serial numbers; for example, the weight value of the prediction node is the reciprocal of the distance value between the prediction node and the node to be decoded , where the distance can be geometric Manhattan distance or geometric Euclidean distance.
  • the weight value is set as the reciprocal of the geometric Manhattan distance between the predicted node and the node to be decoded, that is, the weight of the coplanar node is 1, the weight of the collinear node is 1/2, and the weight of the copoint node is 1/2 3. Then calculate the weighted average of the attribute reconstruction values of all predicted nodes as the attribute prediction value of the node to be decoded.
  • the step of predicting the attributes of the nodes to be decoded includes the following steps 4.1) to 4.2), wherein only the steps performed for the nodes after the Nth node in the decoding order are given.
  • Corresponding steps for the attribute prediction of the first N nodes, please refer to the embodiment described above:
  • Step 4.1) Take the coplanar nodes 3, 5, 6 of the nodes to be decoded, the collinear nodes 1, 2, 4, 10, 12, 17, 20, 33, 34, and the coplanar nodes 1, 8, 16, 24, 32 , 40, and 48 are used as the search range of the prediction node to determine a plurality of prediction nodes, wherein the number of prediction nodes can be 3-6, that is to say, in this step, a minimum of M1 and a maximum of M2 nodes are determined as predictions node.
  • the distance between the node and the node to be decoded is a geometric Manhattan distance or a geometric Euclidean distance.
  • the weighted average is performed according to the determined plurality of prediction nodes to obtain the attribute prediction value of the node to be decoded.
  • the residual value is determined at the encoding end according to the difference between the original attribute value of the node and the attribute prediction value.
  • the attribute reconstruction value of the node to be decoded can be determined according to the attribute prediction value and the residual value.
  • an attribute prediction method based on double Morton may be used to predict the attribute of the node to be decoded.
  • the prediction node may be generated in the first P1 nodes before the node to be decoded under the Morton order 1. Then, add 1 to the point cloud on the x, y, and z coordinates (equivalent to a translation with a translation vector of (1,1,1), or other translation vectors), and generate a new one based on this new geometric coordinate
  • the step of predicting the attributes of the nodes to be decoded includes the following steps 5.1) to 5.2), wherein only the corresponding steps performed for the nodes after the Nth node in the decoding order are given. Steps (for the attribute prediction of the first N nodes, please refer to the embodiment described above):
  • the prediction node is generated among the first 8 points under the Morton order 1 of the node to be decoded; then add 1 to the x, y, and z coordinates of the points, and generate according to the new geometric coordinates
  • the prediction node is generated among the first 4 nodes and the last 4 nodes under the Morton order 2 of the node to be decoded.
  • the final prediction node is generated among these 16 nodes, and the three nodes closest to each other are selected as prediction nodes, and the weighted average of the attribute reconstruction values of all prediction nodes is calculated as the attribute prediction value of the current node.
  • the residual value is determined by the decoding end according to the difference between the original attribute value of the node and the attribute prediction value.
  • the attribute reconstruction value of the node to be decoded can be determined according to the attribute prediction value and the residual value.
  • an attribute prediction method based on spatial relationship and double Morton combination may be used to predict the attribute of the node to be decoded.
  • the first candidate node is a node selected according to the spatial relationship, for example, it may be generated from coplanar nodes of the nodes to be decoded, collinear nodes of the nodes to be decoded, and copoint nodes of the nodes to be decoded.
  • the first candidate nodes specifically include coplanar nodes 3, 5, 6 as shown in Figure 10(a)-(c), and collinear nodes 1, 2, 4, 10, 12, 17, 20 , 33, 34, and 19 nodes of nodes 1, 8, 16, 24, 32, 40, and 48.
  • the process of determining the first prediction node in the first candidate node it is necessary to search for a node that is not empty (that is, the corresponding voxel is not empty and contains a specific point) and has completed decoding before the node to be decoded as forecast node.
  • a node that is not empty that is, the corresponding voxel is not empty and contains a specific point
  • co-point nodes 1, 8, 16, 24, 32, 40 In the order of 48, the Q1 nodes that are ranked first, are not empty, and have been decoded before the node to be decoded are taken as prediction nodes, where Q1 is a positive integer less than or equal to 3 or 6.
  • Q1 may also be equal to one of 1, 2, 4, 5, 6, or equal to other positive integer values.
  • first prediction nodes may not be possible to determine a sufficient number of first prediction nodes from the first candidate nodes. For example, if the first candidate node only contains 2 nodes that are not empty and have been decoded, the first prediction node The number is 2. In this case, it is necessary to further supplement the prediction node with the method of combining double Morton.
  • the prediction nodes are supplemented in a double-Morton-based manner.
  • the final prediction node is generated among the P1+P2+P3(16) second candidate nodes.
  • Q2 nodes with the closest distance are selected as the second prediction nodes.
  • the number of the first prediction node and the second prediction node is Q1+Q2, and considering that the number of the first prediction node determined above is 1-2 (less than 3), therefore, the first prediction node and the second prediction
  • the total number of nodes is 4-5.
  • Q2 may also be other positive integer values, for example Q2 is 1, 2, 4, 5, 6 or other positive integer values.
  • Q2 nodes are selected as the second prediction nodes according to the distance between the candidate nodes and the nodes to be decoded, so that the sum of the numbers of the first prediction nodes and the second prediction nodes is the predetermined Set value M2 (eg, 3, 4, 5, 6). In this case, the total number of first prediction nodes and second prediction nodes is one of 3, 4, 5, or 6.
  • the second prediction node is selected according to the distance between the node and the node to be decoded, it is necessary to further judge whether all the prediction nodes are the best prediction nodes. Specifically, it can be judged according to the distance between the node and the node to be decoded. Take the total number of the first prediction node and the second prediction node as 6 (other values of M2 may also be used) as an example for illustration. Among the nodes that are not selected as the second predictive node among the second candidate nodes, it is judged whether there is a second distance between the candidate node and the node to be decoded whose first distance is smaller than the second predictive node and the node to be decoded.
  • the prediction node and the node to be decoded are close enough to improve the accuracy of attribute prediction.
  • the nodes are traversed from small to large, and the above judgment is performed to determine whether there is a gap between the candidate node and the node to be decoded.
  • the first distance of is smaller than the second distance between the node of the second prediction node and the node to be decoded. If it exists, it is necessary to replace the corresponding candidate node with the node in the second prediction node until there is no node in the second candidate node.
  • the distance between all the nodes selected as the second prediction node and the node to be decoded is smaller than the distance between the second prediction node and the node to be decoded.
  • the above-mentioned calculated curry between nodes may be geometric Manhattan distance or geometric Euclidean distance, or other distance calculation methods between nodes.
  • the weighted average value of the attribute reconstruction values of the first prediction node and the second prediction node is calculated as the attribute prediction value of the node to be decoded
  • w i is the weight value of the first prediction node or the second prediction node.
  • the weight values of each prediction node may be consistent or inconsistent. For example, set the weight value of each prediction node as a fixed constant. For example, for different serial numbers, corresponding weight values are set respectively.
  • the weight value of the prediction node is the reciprocal of the distance value between the prediction node and the node to be decoded, where the distance may be a geometric Manhattan distance or a geometric Euclidean distance.
  • the weight value is set as the reciprocal of the geometric Manhattan distance between the predicted node and the node to be decoded, that is, the weight of the coplanar node is 1, the weight of the collinear node is 1/2, and the weight of the copoint node is 1/2 3.
  • the residual value is determined by the encoding end according to the difference between the original attribute value of the node and the attribute prediction value.
  • the attribute reconstruction value of the node to be decoded can be determined according to the attribute prediction value and the residual value.
  • the point cloud decoding method includes steps S402-S408 as shown in Figure 13:
  • Step S402 Decode the point cloud code stream, and determine at least one node to be decoded corresponding to the point cloud;
  • Step S404 In the case where the sequence number of the node to be decoded in the first decoding order is greater than N, determine at least one first prediction node among multiple first candidate nodes corresponding to the node to be decoded;
  • Step S406 When the number of determined first predictive nodes is less than M1, determine at least one second predictive node among multiple second candidate nodes corresponding to the node to be decoded, wherein the multiple second candidate nodes
  • the nodes include at least one node before the node to be decoded in the first decoding order, and at least one node before and/or after the node to be decoded under the second node order corresponding to the point cloud, the second node order is the reordering of nodes obtained after translation processing of the point cloud;
  • Step S408 Predict according to the attribute reconstruction value of the at least one first prediction node, or the at least one first prediction node and the at least one second prediction node, to obtain the attribute prediction value of the node to be decoded.
  • the above attribute prediction method based on the spatial relationship can directly find the adjacent nodes of the node to be decoded through the spatial relationship, and can predict the attribute value of the current node very well.
  • the above attribute prediction method based on double Morton can increase the prediction accuracy as much as possible and improve the decoding efficiency.
  • the relevant information of the prediction node (such as the attribute reconstruction value) is stored in the cache, and the cache size is limited, that is, it may There is a situation that the adjacent nodes cannot be found in the cache, which will also have a certain impact on the effect of attribute prediction.
  • the improvement of attribute prediction accuracy is also limited, and the optimal prediction effect may not be achieved.
  • the aforementioned attribute prediction method based on the combination of spatial relationship and double Morton through the combination of spatial proximity and double Morton's prediction node search
  • the method can not only accurately locate the adjacent nodes of the current node, but also expand the prediction nodes through double Morton when the adjacent nodes are not available, so as to increase the prediction accuracy as much as possible, thereby improving the decoding efficiency.
  • the data stream may be an attribute code stream, which is generated according to the above-mentioned point cloud encoding method and contains the corresponding residual value of the point cloud to be encoded. bitstream.
  • attribute code stream which is generated according to the above-mentioned point cloud encoding method and contains the corresponding residual value of the point cloud to be encoded. bitstream.
  • FIG. 14 shows a schematic structural diagram of a point cloud encoding device.
  • the above-mentioned point cloud encoding device includes:
  • the point cloud division module 402 is used to divide the point cloud to obtain at least one node to be encoded corresponding to the point cloud, and determine a first encoding sequence corresponding to the at least one node to be encoded, wherein the node to be encoded is a pair of points The voxel unit obtained by dividing the cloud;
  • the first prediction node determination module 404 is configured to determine at least one first prediction node among a plurality of first candidate nodes corresponding to the node to be encoded when the sequence number of the node to be encoded in the first encoding sequence is greater than N , where N is a positive integer greater than or equal to 1;
  • the second prediction node determination module 406 is configured to determine at least one second prediction node among a plurality of second candidate nodes corresponding to the node to be encoded when the number of the determined first prediction nodes is less than M1, wherein the The plurality of second candidate nodes includes at least one node before the node to be encoded in the first encoding order, and at least one node before and/or after the node to be encoded under the second node order corresponding to the point cloud, so The second node order is the reordering of the nodes obtained after the point cloud is translated, and M1 is a positive integer greater than 1;
  • An attribute prediction module 408, configured to perform prediction according to the attribute reconstruction value of the at least one first prediction node, or the at least one first prediction node and the at least one second prediction node, to obtain the attribute prediction value of the node to be encoded .
  • the first encoding order and the second node order are Morton order or Hilbert order.
  • N 3.
  • the attribute prediction module 408 is further configured to set the attribute prediction value of the point cloud to be encoded as a preset value when the sequence number of the node to be encoded in the first encoding sequence is 1.
  • the preset value is one of (128, 128, 128), (0, 0, 0) and (255, 255, 255).
  • the first prediction node determination module 404 is further configured to use the node with the sequence number 1 in the first coding sequence as the first prediction node when the sequence number of the node to be coded is 2 in the first coding sequence node;
  • the attribute prediction module 408 is further configured to determine the attribute prediction value of the node to be encoded according to the attribute reconstruction value of the first prediction node, wherein the attribute prediction value of the node to be encoded is equal to the attribute reconstruction value of the first prediction node.
  • the first predicted node determination module 404 is further configured to use the nodes with the serial numbers 1 and 2 in the first coding sequence as the nodes with the sequence number 3 in the first coding sequence when the sequence number of the node to be coded is 3. a prediction node;
  • the attribute prediction module 408 is also used to determine the attribute prediction value of the node to be encoded according to the attribute reconstruction value of the first prediction node, and the attribute prediction value of the node to be encoded is set to be equal to the weighted average of the attribute reconstruction value of the first prediction node.
  • the plurality of first candidate nodes include one or more of coplanar nodes of the nodes to be coded, collinear nodes of the nodes to be coded, and co-point nodes of the nodes to be coded.
  • the coplanar nodes of the nodes to be coded include nodes with indexes 3, 5 and 6 and the collinear nodes of the nodes to be coded include nodes with indexes 1, 2, 4, 10, 12, 17, 20, 33 and 34 nodes, the common nodes of the nodes to be coded include nodes with indexes 1, 8, 16, 24, 32, 40 and 48.
  • the first predicted node determination module 404 is further configured to search for the first candidate node in the order of the coplanar nodes of the nodes to be coded, the collinear nodes of the nodes to be coded, and the co-point nodes of the nodes to be coded.
  • Q1 nodes that are not empty and have been encoded before the node to be encoded are used as the first prediction node, where Q1 is a positive integer less than or equal to 6.
  • M1 3.
  • the second candidate nodes include P1 nodes before the node to be encoded in the first encoding order; the second candidate nodes include P2 nodes before the node to be encoded in the second node order node and P3 nodes after the encoding node.
  • the second node order is a reordering of nodes obtained after translation processing is performed on points in the point cloud.
  • the translation vector for translation processing is (1,1,1).
  • the second predictive node determining module 406 is further configured to determine at least one node among the plurality of second candidate nodes as the second predictive node according to the distance between the node and the node to be coded.
  • the distance between the node and the node to be encoded is a geometric Manhattan distance or a geometric Euclidean distance.
  • the second predicted node determination module 406 is further configured to determine the unselected nodes among the second candidate nodes when the sum of the number of first predicted nodes and the number of second predicted nodes is M2 Whether there is a first distance between the node and the node to be encoded is smaller than the second distance between the node in each second predicted node and the node to be encoded; if it exists, the second distance from the predicted node corresponding to the second distance The prediction node is deleted, and the node corresponding to the first distance is added to the second prediction node.
  • the sum of the number of first prediction nodes and the number of second prediction nodes is less than or equal to six.
  • the attribute prediction module 408 is further configured to, according to a preset weight value, classify the attributes of the at least one first prediction node, or the at least one first prediction node and the at least one second prediction node The reconstructed value is weighted and averaged to obtain the attribute prediction value of the node to be coded.
  • the preset weight value is a fixed value.
  • the attribute prediction module 408 is further configured to, for each first prediction node and/or each second prediction node, determine the first prediction node and/or each second prediction node according to the positional relationship between the prediction node and the node to be encoded or the weight value of the second prediction node.
  • the attribute prediction module 408 is further configured to calculate the reciprocal of the distance to the node to be encoded for each first prediction node and/or each second prediction node, and make the first prediction node and /or the weight value of the second prediction node.
  • the distance between the predicted node and the node to be encoded is a geometric Manhattan distance or a geometric Euclidean distance.
  • the attribute prediction module 408 is also used for according to the formula
  • Calculate the attribute prediction value of the node to be encoded in is the attribute reconstruction value of the first prediction node or the second prediction node, w i is the weight value of the first prediction node or the second prediction node, and R is a set formed by the first prediction node and/or the second prediction node.
  • the attribute prediction module 408 is further configured to encode the attribute prediction value of the node to be encoded to obtain an attribute code stream.
  • FIG. 15 shows a schematic structural diagram of a point cloud decoding device.
  • the above-mentioned point cloud decoding device includes:
  • a node determination module 502 configured to decode the point cloud code stream, determine at least one node to be decoded corresponding to the point cloud and a first decoding sequence corresponding to the at least one node to be decoded;
  • the first prediction node determination module 504 is configured to determine at least one first prediction node among multiple first candidate nodes corresponding to the node to be decoded when the serial number of the node to be decoded is greater than N in the first decoding order , where N is a positive integer greater than or equal to 1;
  • the second prediction node determination module 506 is configured to determine at least one second prediction node among a plurality of second candidate nodes corresponding to the node to be decoded when the number of the determined first prediction nodes is less than M1, wherein, The plurality of second candidate nodes includes at least one node before the node to be decoded in the first decoding order, and at least one node before and/or after the node to be decoded in the second node order corresponding to the point cloud , the second node order is the reordering of nodes obtained after the point cloud is translated, and M1 is a positive integer greater than 1;
  • An attribute prediction module 508 configured to perform prediction according to the attribute reconstruction value of the at least one first prediction node, or the at least one first prediction node and the at least one second prediction node, to obtain the attribute prediction value of the node to be decoded .
  • the first decoding order and the second node order are Morton order or Hilbert order.
  • N 3.
  • the attribute prediction module 508 is further configured to set the attribute prediction value of the point cloud to be decoded as a preset value when the serial number of the node to be decoded is 1 in the first decoding sequence.
  • the preset value is one of (128, 128, 128), (0, 0, 0) and (255, 255, 255).
  • the first predictive node determination module 504 takes the node with the serial number 1 in the first decoding order as the first predictive node when the serial number of the node to be decoded is 2 in the first decoding order;
  • the attribute prediction module 508 is further configured to determine the attribute prediction value of the node to be decoded according to the attribute reconstruction value of the first prediction node, wherein the attribute prediction value of the node to be decoded is equal to the attribute reconstruction value of the first prediction node.
  • the first predictive node determination module 504 takes nodes with serial numbers 1 and 2 in the first decoding order as the first predictive node when the serial number of the node to be decoded is 3 in the first decoding order ;
  • the attribute prediction module 508 is also used to determine the attribute prediction value of the node to be decoded according to the attribute reconstruction value of the first prediction node, wherein the attribute prediction value of the node to be decoded is set to be equal to the weighted average of the attribute reconstruction value of the first prediction node value.
  • the plurality of first candidate nodes include one or more of coplanar nodes of the nodes to be decoded, collinear nodes of the nodes to be decoded, and co-point nodes of the nodes to be decoded.
  • the coplanar nodes of the nodes to be decoded include nodes with indexes 3, 5 and 6 and the collinear nodes of the nodes to be decoded include nodes with indexes 1, 2, 4, 10, 12, 17, 20, 33 and 34 nodes, the common nodes of the nodes to be decoded include nodes with indexes 1, 8, 16, 24, 32, 40 and 48.
  • the first prediction node determination module 504 searches the first candidate node in the order of the coplanar node of the node to be decoded, the collinear node of the node to be decoded, and the co-point node of the node to be decoded. , and Q1 nodes that have been decoded before the node to be decoded are used as the first prediction node, where Q1 is a positive integer less than or equal to 3 or 6.
  • M1 3.
  • the second candidate nodes include P1 nodes before the node to be decoded in the first decoding order; the second candidate nodes include P2 nodes before the node to be decoded in the second node order node and P3 nodes after the decoding node.
  • the second node order is a reordering of nodes obtained after translation processing is performed on points in the point cloud.
  • the translation vector for translation processing is (1,1,1).
  • the second predictive node determination module 506 determines at least one node among the plurality of second candidate nodes as the second predictive node according to the distance between the node and the node to be decoded.
  • the distance between the node and the node to be decoded is a geometric Manhattan distance or a geometric Euclidean distance.
  • the second predictive node determination module 506 determines at least one node with the smallest distance to the node to be decoded as the second predictive node among the plurality of second candidate nodes, so that the second predictive node The sum of the number of nodes and the number of first prediction nodes is M2, where M2 is 3, 4, 5 or 6.
  • the second predictive node determination module 506 judges whether there is The first distance between the node and the node to be decoded is smaller than the second distance between the node in each second prediction node and the node to be decoded; if it exists, the second distance from the second prediction node corresponding to the prediction node Delete, and add the node corresponding to the first distance to the second prediction node.
  • the sum of the number of first prediction nodes and the number of second prediction nodes is less than or equal to six.
  • the attribute prediction module 508 is further configured to, according to a preset weight value, classify the attributes of the at least one first prediction node, or the at least one first prediction node and the at least one second prediction node The reconstructed value is weighted and averaged to obtain the attribute prediction value of the node to be decoded.
  • the preset weight value is a fixed value.
  • the attribute prediction module 508 is further configured to, for each first prediction node and/or each second prediction node, determine the first prediction node and/or each second prediction node according to the positional relationship between the prediction node and the node to be decoded or the weight value of the second prediction node.
  • the attribute prediction module 508 is further configured to calculate the reciprocal of the distance to the node to be decoded for each first prediction node and/or each second prediction node, and make the first prediction node and /or the weight value of the second prediction node.
  • the distance between the prediction node and the node to be decoded is a geometric Manhattan distance or a geometric Euclidean distance.
  • the attribute prediction module 508 is also used for according to the formula
  • Calculate the attribute prediction value of the node to be decoded in is the attribute reconstruction value of the first prediction node or the second prediction node, w i is the weight value of the first prediction node or the second prediction node, and R is a set formed by the first prediction node and/or the second prediction node.
  • the attribute prediction module 508 is also used to analyze the code stream, determine the residual value of the node to be decoded; and determine the attribute reconstruction value of the node to be decoded according to the residual value and the predicted attribute value.
  • the functional unit may be implemented in the form of hardware, may also be implemented by instructions in the form of software, and may also be implemented by a combination of hardware and software units.
  • each step of the method embodiment in the embodiment of the present application can be completed by an integrated logic circuit of the hardware in the processor and/or instructions in the form of software, and the steps of the method disclosed in the embodiment of the present application can be directly embodied as hardware
  • the decoding processor is executed, or the combination of hardware and software units in the decoding processor is used to complete the execution.
  • the software unit may be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, and registers.
  • the storage medium is located in the memory, and the processor reads the information in the memory, and completes the steps in the above method embodiments in combination with its hardware.
  • Fig. 16 is a schematic block diagram of an electronic device provided by an embodiment of the present application.
  • the electronic device may be a point cloud encoder or a point cloud decoder.
  • the electronic device 30 can be the point cloud upsampling device described in the embodiment of the present application, or a point cloud decoder, or a model training device, and the electronic device 30 can include:
  • a memory 33 and a processor 32 the memory 33 is used to store a computer program 34 and transmit the program code 34 to the processor 32 .
  • the processor 32 can call and run the computer program 34 from the memory 33 to implement the method in the embodiment of the present application.
  • the processor 32 can be used to execute the steps in the above method according to the instructions in the computer program 34 .
  • the processor 32 may include, but is not limited to:
  • DSP Digital Signal Processor
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the memory 33 includes but is not limited to:
  • non-volatile memory can be read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable ROM, PROM), erasable programmable read-only memory (Erasable PROM, EPROM), electronically programmable Erase Programmable Read-Only Memory (Electrically EPROM, EEPROM) or Flash.
  • the volatile memory can be Random Access Memory (RAM), which acts as external cache memory.
  • RAM Static Random Access Memory
  • SRAM Static Random Access Memory
  • DRAM Dynamic Random Access Memory
  • Synchronous Dynamic Random Access Memory Synchronous Dynamic Random Access Memory
  • SDRAM double data rate synchronous dynamic random access memory
  • Double Data Rate SDRAM, DDR SDRAM double data rate synchronous dynamic random access memory
  • Enhanced SDRAM, ESDRAM enhanced synchronous dynamic random access memory
  • SLDRAM synchronous connection dynamic random access memory
  • Direct Rambus RAM Direct Rambus RAM
  • the computer program 34 can be divided into one or more units, and the one or more units are stored in the memory 33 and executed by the processor 32 to complete the present application.
  • the one or more units may be a series of computer program instruction segments capable of accomplishing specific functions, and the instruction segments are used to describe the execution process of the computer program 34 in the electronic device 30 .
  • the electronic device 30 may also include:
  • a transceiver 33 the transceiver 33 can be connected to the processor 32 or the memory 33 .
  • the processor 32 can control the transceiver 33 to communicate with other devices, specifically, can send information or data to other devices, or receive information or data sent by other devices.
  • Transceiver 33 may include a transmitter and a receiver.
  • the transceiver 33 may further include antennas, and the number of antennas may be one or more.
  • bus system includes not only a data bus, but also a power bus, a control bus and a status signal bus.
  • the present application also provides a computer storage medium, on which a computer program is stored, and when the computer program is executed by a computer, the computer can execute the methods of the above method embodiments.
  • the embodiments of the present application further provide a computer program product including instructions, and when the instructions are executed by a computer, the computer executes the methods of the foregoing method embodiments.
  • the computer program product includes one or more computer instructions.
  • the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transferred from a website, computer, server, or data center by wire (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) to another website site, computer, server or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server or a data center integrated with one or more available media.
  • the available medium may be a magnetic medium (such as a floppy disk, a hard disk, or a tape), an optical medium (such as a digital video disc (DVD)), or a semiconductor medium (such as a solid state disk (SSD)), etc. .
  • a magnetic medium such as a floppy disk, a hard disk, or a tape
  • an optical medium such as a digital video disc (DVD)
  • a semiconductor medium such as a solid state disk (SSD)
  • the disclosed systems, devices and methods may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components can be combined or can be Integrate into another system, or some features may be ignored, or not implemented.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
  • a unit described as a separate component may or may not be physically separated, and a component displayed as a unit may or may not be a physical unit, that is, it may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
  • the second node order is the reordering of the nodes obtained after the point cloud is translated
  • the attribute prediction method based on spatial relationship and the attribute prediction method based on double Morton can be combined to obtain the attribute prediction method based on the combination of spatial relationship and double Morton, which can accurately locate the adjacent nodes of the current node, It can also improve the accuracy of attribute prediction as much as possible and improve the efficiency of encoding and decoding when adjacent nodes are unavailable.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供一种点云编解码方法、装置、点云编解码器及存储介质,其中,所述点云解码方法包括:解码点云码流,确定与点云对应的至少一个待解码节点;在与待解码节点对应的第一候选节点中,确定第一预测节点;若第一预测节点的数量小于M1,在第二候选节点中确定第二预测节点,其中,第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,第二节点顺序是对点云进行平移处理后得到的节点的重排序;根据第一预测节点和第二预测节点的属性重建值进行预测得到待解码节点的属性预测值。本申请可以提高属性预测的准确度,提升点云编码效率。

Description

点云编解码方法、装置、点云编解码器及存储介质 技术领域
本申请涉及点云编解码技术领域,尤其涉及一种点云编解码方法、点云编解码装置、编点云解码器及计算机可读存储介质。
背景技术
通过采集设备对物体表面进行采集,形成点云数据,点云数据包括几十万甚至更多的点。在视频制作过程中,将点云数据以点云媒体文件的形式在点云编码设备和点云解码设备之间传输。但是,如此庞大的点给传输带来了挑战,因此,点云编码设备需要对点云数据进行压缩后传输。
目前通过预测来减少或消除点云数据中的冗余信息,以实现点云数据的压缩。但是目前的点云预测准确性差。
发明内容
本申请实施例提供了一种一种点云编解码方法、点云编解码装置、编点云解码器及计算机可读存储介质,以提高点云属性编码的准确性,提升点云编码效率。
第一方面,本申请实施例提供一种点云解码方法,包括:
解码点云码流,确定与点云对应的至少一个待解码节点以及包含所述至少一个待解码节点对应的第一解码顺序;
在待解码节点在第一解码顺序中的序号大于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
若确定的第一预测节点的数量小于M1,在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
第二方面,本申请实施例提供了一种点云编码方法,包括:
对点云进行划分,得到与点云对应的至少一个待编码节点,确定与所述至少一个待编码节点对应的第一编码顺序,其中,待编码节点为对点云进行划分得到的体素单元voxel;
在待编码节点在第一编码顺序中的序号大于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
若确定的第一预测节点的数量小于M1,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
第三方面,本申请实施例提供了一种点云解码装置,包括
节点确定模块,用于解码点云码流,确定与点云对应的至少一个待解码节点以及包含所述至少一个待解码节点对应的第一解码顺序;
第一预测节点确定模块,用于在待解码节点在第一解码顺序中的序号大于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
第二预测节点确定模块,用于在确定的第一预测节点的数量小于M1的情况下,在与待解码节点对 应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
属性预测模块,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
第四方面,本申请实施例提供了一种点云编码装置,包括:
点云划分模块,用于对点云进行划分,得到与点云对应的至少一个待编码节点,确定与所述至少一个待编码节点对应的第一编码顺序,其中,待编码节点为对点云进行划分得到的体素单元voxel;
第一预测节点确定模块,用于在待编码节点在第一编码顺序中的序号大于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
第二预测节点确定模块,用于在确定的第一预测节点的数量小于M1时,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
属性预测模块,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
第五方面,本申请实施例提供了一种点云解码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第六方面,本申请实施例提供了一种点云编码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,本申请实施例提供了一种点云编码系统,包括上述第三方面所述的点云解码器和上述第四方面所述的点云编码器。
第八方面,本申请实施例提供了一种数据流,包括根据上述第二方面的点云编码方法生成的属性码流。
第九方面,提供了一种芯片,用于实现上述第一方面至第二方面中的任一方面或其各实现方式中的方法。具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备执行如上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十一方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十二方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
附图说明
图1(a)为本申请实施例涉及的点云图像整体示意图;
图1(b)为本申请实施例涉及的点云图像局部放大示意图;
图2(a)为本申请实施例涉及的点云图像的六个观看角度示意图;
图2(b)为本申请实施例涉及的点云图像的数据存储格式示意图;
图3为本申请实施例涉及的一种点云编解码系统的示意性框图;
图4为本申请实施例提供的点云编码器的示意性框图;
图5为本申请实施例提供的点云解码器的示意性框图;
图6(a)为本申请实施例提供的点云包围盒的示意图;
图6(b)为本申请实施例提供的点云包围盒的八叉树划分示意图;
图7(a)为本申请实施例提供的2*2莫顿码在二维空间中的编码顺序的示意图;
图7(b)为本申请实施例提供的4*4莫顿码在二维空间中的编码顺序的示意图;
图7(c)为本申请实施例提供的8*8莫顿码在二维空间中的编码顺序的示意图;
图8为本申请实施例提供的莫顿码在三维空间中的编码顺序的示意图;
图9为本申请实施例提供的一种点云编码方法的流程示意图;
图10(a)为本申请实施例提供的共面节点的示意图;
图10(b)为本申请实施例提供的共线节点的示意图;
图10(c)为本申请实施例提供的共点节点的示意图;
图11为本申请实施例提供的一种点云编码方法的流程示意图;
图12为本申请实施例提供的一种点云解码方法的流程示意图;
图13为本申请实施例提供的一种点云解码方法的流程示意图;
图14为本申请实施例提供的一种点云编码装置的结构示意图;
图15为本申请实施例提供的一种点云解码装置的结构示意图;
图16是本申请实施例提供的电子设备的示意性框图。
具体实施方式
本申请可应用于点云上采样技术领域,例如可以应用于点云压缩技术领域。
为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:
点云(Point Cloud)是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。举例来说,如图1(a)-(b)所示,其中,图1(a)为三维点云图像的示意图。图1(b)为该点云图像的局部放大图,可以看到,点云表面是由分布稠密的点所组成的。
点云数据(Point Cloud Data)是点云的具体记录形式,点云中的点可以包括点的位置信息(也称几何信息)和点的属性信息。二维图像在每一个像素点均有信息表达,分布规则,因此不需要额外记录其位置信息;然而点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。与二维图像类似,采集过程中每一个位置均有对应的属性信息,通常为RGB颜色值,颜色值反映物体的色彩;对于点云来说,每一个点所对应的属性信息除了颜色信息以外,还有比较常见的是反射率(reflectance)值,反射率值反映物体的表面材质。因此,点云数据通常包括三维位置信息所组成的几何信息(x,y,z)和三维颜色信息(r,g,b)、一维反射率信息(r)所组成的属性信息。其中,所述颜色信息可以是任意一种色彩空间上的信息。例如,所述颜色信息可以是(RGB)。再如,所述颜色信息可以是于亮度色度(YcbCr,YUV)信息。例如,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色,U和V表示为色度(Chroma)用于描述色差信息。例如,根据激光测量原理得到的点云,所述点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,所述点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,所述点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。
如图2(a)-(b)所示为一幅点云图像及其对应的数据存储格式,其中,图2(a)提供了点云图像的六个观看角度;图2(b)展示了该点云图像的数据存储格式,由文件头信息部分和数据部分组成,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容,如图2(b)中的点云为“.ply”格式,由ASCII码表示,总点数为207242,每个点具有三维位置信息xyz和三维颜色信息rgb。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等。
点云的采集主要有以下途径:计算机生成、3D激光扫描、3D摄影测量等。计算机可以生成虚拟三维物体及场景的点云;3D激光扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云;3D摄影测量可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能,伴随着应用需求的增长,海量3D点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。
点云可以按获取的途径分为:密集型点云和稀疏性点云。
点云按照数据的时序类型划分为:第一类静态点云:即物体是静止的,获取点云的设备也是静止的;第二类动态点云:物体是运动的,但获取点云的设备是静止的;第三类动态获取点云:获取点云的设备是运动的。
按点云的用途分为两大类:类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地 理信息系统、视觉分拣机器人、抢险救灾机器人等场景;类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
以帧率为30fps(帧每秒)的点云视频为例,每帧点云的点数为70万,每个点具有坐标信息xyz(float)和颜色信息RGB(uchar),则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。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。
在本实施例中,提供了一种点云编/解码方法,可以应用于点云编解码框架中,对点云数据进行压缩。点云压缩一般采用点云几何信息和属性信息分别压缩的方式,在编码端,首先在几何编码器中编码点云几何信息,然后将重建几何信息作为附加信息输入到属性编码器中,辅助点云属性的压缩;在解码端,首先在几何解码器中解码点云几何信息,然后将解码后的几何信息作为附加信息输入到属性解码器中,辅助点云属性的压缩。
图3为本申请实施例涉及的一种点云编解码系统的示意性框图。需要说明的是,图3只是一种示例,本申请实施例的点云编解码系统包括但不限于图3所示。如图3所示,该点云编解码系统100包含编码设备110和解码设备120。其中编码设备用于对点云数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的点云数据。
本申请实施例的编码设备110可以理解为具有点云编码功能的设备,解码设备120可以理解为具有点云解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、点云游戏控制台、车载计算机等。
在一些实施例中,编码设备110可以经由信道130将编码后的点云数据(如几何码流和属性码流)传输给解码设备120。信道130可以包括能够将编码后的点云数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
在一个实例中,信道130包括使编码设备110能够实时地将编码后的点云数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的点云数据,且将调制后的点云数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的点云数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的点云数据。
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的点云数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的点云数据。可选的,该存储服务器可以存储编码后的点云数据且可以将该编码后的点云数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
一些实施例中,编码设备110包含点云编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。
在一些实施例中,编码设备110除了包括点云编码器112和输入接口113外,还可以包括点云源111。
点云源111可包含点云采集装置(例如,扫描仪)、点云存档、点云输入接口、计算机图形系统中的至少一个,其中,点云输入接口用于从点云内容提供者处接收点云数据,计算机图形系统用于产生点云数据。
点云编码器112对来自点云源111的点云数据进行编码,产生码流。点云编码器112经由输出接口113将编码后的点云数据直接传输到解码设备120。编码后的点云数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
在一些实施例中,解码设备120包含输入接口121和点云解码器122。
在一些实施例中,解码设备120除包括输入接口121和点云解码器122外,还可以包括显示装置123。
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接收编码后的点云数据。
点云解码器122用于对编码后的点云数据进行解码,得到解码后的点云数据,并将解码后的点云数 据传输至显示装置123。
显示装置123显示解码后的点云数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
此外,图3仅为实例,本申请实施例的技术方案不限于图3,例如本申请的技术还可以应用于单侧的点云编码或单侧的点云解码。
目前的点云编码器可以采用运动图像专家组(Moving Picture Experts Group,MPEG)提供的基于几何的点云压缩(Geometry Point Cloud Compression,G-PCC)编解码框架或基于视频的点云压缩(Video Point Cloud Compression,V-PCC)编解码框架,也可以采用音视频编码标准(Audio Video Standard,AVS)提供的AVS-PCC编解码框架。G-PCC及AVS-PCC均针对静态的稀疏型点云,其编码框架大致相同。G-PCC编解码框架可用于针对第一静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。
下面以图4和图5所示的编解码框架为例,对本申请实施例可适用的点云编码器和点云解码器进行说明。
图4是本申请实施例提供的点云编码器的示意性框图。
由上述可知点云中的点可以包括点的几何信息和点的属性信息,因此,点云中的点的编码主要包括几何编码和属性编码。
几何编码的过程包括:对点云中的点进行预处理,例如坐标变换、量化和移除重复点等;接着,对预处理后的点云进行几何编码,例如构建八叉树,基于构建的八叉树进行几何编码形成几何码流。同时,基于构建的八叉树输出的几何信息,对点云数据中各点的几何信息进行重建,得到各点的几何信息的重建值。
属性编码过程包括:通过给定输入点云的几何信息的重建信息和属性信息的原始值,选择预测模式进行点云预测,对预测后的结果进行量化,并进行算术编码形成属性码流。
如图4所示,几何编码可通过以下单元实现:
坐标转换(Tanmsform coordinates)单元201、量化和移除重复点(Quantize and remove points)单元202、八叉树分析(Analyze octree)单元203、几何重建(Reconstruct geometry)单元204以及第一算术编码(Arithmetic enconde)单元205。
坐标转换单元201可用于将点云中点的世界坐标变换为相对坐标。例如,点的几何坐标分别减去xyz坐标轴的最小值,相当于去直流操作,以实现将点云中的点的坐标从世界坐标转换为相对坐标。
量化和移除重复点单元202可通过量化减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标,基于此,可通过去重操作将重复的点删除;例如,具有相同量化位置和不同属性信息的多个云可通过属性转换合并到一个云中。在本申请的一些实施例中,量化和移除重复点单元202为可选的单元模块。
八叉树分析单元203可利用八叉树(octree)编码方式编码量化的点的几何信息。例如,采用八叉树结构对点云空间进行递归划分,每次将当前子块划分成八个相同大小的子块,由此,点的位置可以和八叉树的位置一一对应,并判断每个子块的占有码字情况,当子块内不包含点时记为空,否则记为非空,在递归划分的最后一层记录所有块的占有码字信息,进行几何编码。
几何重建单元204可以基于八叉树分析单元203输出的位置信息进行位置重建,得到点云数据中各点的位置信息的重建值。
第一算术编码单元205可以采用熵编码方式对八叉树分析单元203输出的位置信息进行算术编码,即将八叉树分析单元203输出的位置信息利用算术编码方式生成几何码流;几何码流也可称为几何比特流(geometry bitstream)。
属性编码可通过以下单元实现:
颜色空间转换(Transform colors)单元210、属性转化(Transfer attributes)单元211、属性预测单元213、量化系数(Quantize coefficients)单元215以及第二算术编码单元216。
需要说明的是,点云编码器200可包含比图2更多、更少或不同的功能组件。
颜色空间转换单元210可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。
属性转化单元211可用于转换点云中点的属性信息,以最小化属性失真。例如,属性转化单元211可用于得到点的属性信息的原始值(属性原始值)。例如,所述属性信息可以是点的颜色信息。
经过属性转化单元211转换得到点的属性信息的原始值后(属性重上色),对点云中的点进行预测。
属性预测单元213对属性信息进行属性预测,其中,首先需要将点云进行重排序,重排序的方式是莫顿码(当然,也可以是其他的排序方式),因此属性编码的遍历顺序为莫顿顺序(对应的也可以是其 他排序方式对应的顺序)。在本实施例中,属性预测方法可以为基于莫顿顺序的单点预测,即按照莫顿顺序从当前待编码点向前回溯一个点,找到的点为当前待编码点的预测参考点,然后将预测参考点的属性重建值作为属性预测值。
量化单元215可用于量化点的属性信息的残差值。例如,若所述量化单元215和所述预测变换单元213相连,则所述量化单元可用于量化所述预测变换单元213输出的点的属性信息的残差值。
例如,对预测变换单元213输出的点的属性信息的残差值使用量化步长进行量化,以实现提升系统性能。
第二算术编码单元216对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。
图5是本申请实施例提供的点云解码器的示意性框图。
如图5所示,解码器300可以从编码设备获取点云码流,通过解析码得到点云中的点的几何信息和属性信息。点云的解码包括几何解码和属性解码。
几何解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的几何信息进行重建,以得到点的几何信息的重建信息;对点的几何信息的重建信息进行坐标变换,得到点的几何信息。
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于几何解码过程中获取的点的位置信息的重建信息,并且进行点云预测得到预测值,预测值与残差值相加得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间反转化,以得到解码点云。
如图5所示,几何解码可通过以下单元实现:
第一算数解码单元301、八叉树分析(synthesize octree)单元302、几何重建(Reconstruct geometry)单元304以及坐标反转换(inverse transform coordinates)单元305。
属性编码可通过以下单元实现:
第二算数解码单元310、反量化(inverse quantize)系数单元311、属性预测单元313以及颜色空间反转换(inverse trasform colors)单元315。
按照与编码端相同的方式构建莫顿顺序,通过第二算数解码单元310对属性码流进行熵解码,得到量化后的残差信息;然后通过反量化系数单元311进行反量化,得到点云残差;按照与属性编码相同的方式,通过属性预测单元313获得当前待解码点的属性预测值,然后将属性预测值与残差值相加,可以恢复出当前待解码点的YUV属性值;最后,通过颜色空间反转换单元315进行颜色空间反变换得到解码属性信息。
需要说明的是,解压缩是压缩的逆过程,类似的,解码器300中的各个单元的功能可参见编码器200中相应的单元的功能。另外,点云解码器300可包含比图5更多、更少或不同的功能组件。
上述是编解码框架下的点云编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于G-PCC编解码框架下的点云编解码器的基本流程,但不限于该框架及流程。
在介绍本申请实施例所提出的具体的点云编/解码方法之前,首先介绍点云中块的划分方式。
具体的,如图6(a)首先将整幅点云放置在一个正方体包围盒内,点云中点的坐标表示为(x k,y k,z k),k=0,…,K-1,其中K是点云的总点数,点云在x、y、z方向上的边界值分别为:
x min=min(x 0,x 1,…,x K-1)
y min=min(y 0,y 1,…,y K-1)
z min=min(z 0,z 1,…,z K-1)
x max=max(x 0,x 1,…,x K-1)
y max=max(y 0,y 1,…,y K-1)
z max=max(z 0,z 1,…,z K-1)
则包围盒的原点(x origin,y origin,z origin)可以计算如下:
x origin=int(floor(x min))
y origin=int(floor(y min))
z origin=int(floor(z min))
包围盒在x、y、z方向上的尺寸可以计算如下:
BoudingBoxSize x=int(x max-x origin)+1
BoudingBoxSize y=int(y max-y origin)+1
BoudingBoxSize z=int(z max-z origin)+1
然后如图6(b)对包围盒进行八叉树划分,每次得到八个子块,然后对子块中的非空块(包含点的块) 进行再一次的八叉树划分,如此递归划分直到某个深度(例如划分至最小值),将最终大小的非空子块称作体素(voxel),每个voxel中包含一个或多个点,将这些点的几何位置归一化为voxel的中心点,该中心点的属性值取voxel中所有点的属性值的平均值。即,将点云规则化成空间中的块(子块),可以便于描述点云中点与点之间的关系(例如,点与点之间的几何关系),从而可以在编解码过程中按照一定的顺序对voxel进行编码(例如,莫顿顺序)。
在本实施例中,对点云进行编解码是按照一定的顺序对每一个voxel进行编解码的,即编码每一个voxel所代表的点(后称为“节点”),在当前进行编解码的voxel即为当前节点(在编码端为待编码节点,在解码端为待解码节点)。
上述按照一定的顺序对每一个voxel进行编解码中,该顺序可以是莫顿顺序,也可以是希尔伯特顺序,还可以是任意的可以用于点云编码顺序的其他顺序,在此处不作限定。
下面对以莫顿顺序为例进行说明。
图7(a)-(c)展示了莫顿码在二维空间中的编码顺序,以8*8大小的块为例,其中箭头的顺序表示莫顿顺序下点的编码顺序。图7(a)为块中2*2个像素的“z”字形莫顿编码顺序,图7(b)为4个2*2块之间的“z”字形莫顿编码顺序,图7(c)为4个4*4块之间的“z”字形莫顿编码顺序,组成为整个8*8块的莫顿编码顺序。扩展到三维空间中的莫顿编码顺序如图8所示,图中展示了16个节点,每个“z”字内部,每个“z”与“z”之间的莫顿编码顺序都是先沿x轴方向编码,再沿y轴,最后沿z轴。
在本实施例中,提出了一种点云编码方法和点云解码方法,具体涉及属性预测的部分,具体涉及图4的属性预测单元213、以及图5的属性预测单元313对应的部分,能提高属性预测的准确性,提升编码效率。
在点云压缩技术的属性预测部分,对于颜色属性,在编码端,主要参考当前节点的相邻节点对当前节点进行预测得到属性预测值,预测得到的属性预测值用于计算残差信息,将残差信息传输到解码端;解码端接收并解析码流后,经反变换与反量化等步骤得到残差信息,解码端以相同过程预测得到属性预测值,与残差信息叠加后得到当前节点的属性重建值。
下面结合属性预测的部分对本申请实施例提出的点云编码方法进行详细描述。
具体的,图9示出了本申请实施例提出的一种点云编码方法的流程示意图。根据图9所示,上述点云编码方法包括如图9所示的步骤S102-S106:
步骤S102:对点云进行划分,得到与点云对应的至少一个待编码节点;
步骤S104:在待编码节点在第一编码顺序中的序号大于N的情况下,确定至少一个预测节点;
步骤S106:根据所述至少一个预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
如前所述,对点云进行八叉树划分,得到多个voxel,每一个voxel为一个节点;然后在编码的过程中,按照莫顿顺序或者其他顺序(即第一编码顺序)对每一个节点(待编码节点)依次进行属性预测,得到待编码节点的属性预测值,并根据待编码节点的属性原始值计算对应的残差值,然后经过量化等过程之后进行编码,生成对应的属性码流,并传输到解码端。
其中,对待编码节点按照第一编码顺序进行属性预测的过程中,需要确定与待编码节点对应的一个或多个参考节点(即一个或多个预测节点,这里的预测节点是在待编码节点之前已经完成了编码的节点,只有已编码节点才能作为参考节点),然后根据一个或多个预测节点的属性重建值来对当前的待编码节点的属性值进行预测,得到对应的属性预测值。
其中,在待编码节点为第一编码顺序中的第1个节点(在编码顺序中的序号为0)的情况下,因为是进行编码的第一个点,不存在已经编码完成的节点可以作为预测节点,因此,在这种情况下直接将待编码节点的属性预测值设置为预设值,例如,该预设值可以为(128,128,128)或(0,0,0)或(255,255,255),也可以是其他的预设值,在这里不做限定。
在其他实施例中,在待编码节点为第一编码顺序中的第2个节点(在编码顺序中的序号为1)的情况下,仅存在第1个节点(在编码顺序中的序号为0)这一个已经编码完成的节点,因此,将第1个节点(在编码顺序中的序号为0)作为预测节点来进行当前的待编码节点的属性值的预测。例如,直接将带编码节点的属性预测值设置为等于第1个节点(在编码顺序中的序号为0)的属性重建值。
在其他实施例中,在待编码节点为第一编码顺序中的第3个节点(在编码顺序中的序号为2)的情况下,存在第1、2个节点(在编码顺序中的序号为0、1)这2个已经编码完成的节点,因此,将第1、2个节点(在编码顺序中的序号为0、1)作为预测节点来进行当前的待编码节点的属性值的预测。例如,将第1、2个节点(在编码顺序中的序号为0、1)的属性重建值的加权平均值来作为第3个节点在编码顺序中的序号为2)的属性预测值。
在待编码节点为第4个节点(在编码顺序中的序号为3)以及后续的节点的情况下,可选的已经编码完成的节点数量较多,在这种情况下,可以基于各个节点与待编码节点之间的空间关系、或者基于第 一编码顺序等来选择一个或多个预测节点来进行属性预测。
当然,在其他实施例中,还可以设置为在编码顺序中的序号为N以上的情况采用上述预测节点的确定方式,而不是仅仅直接使用在当前的待编码节点之前的所有的已编码完成的节点来作为预测节点。在这里,N为正整数,且N可以等于2,也可以等于1、2、4、5、6、7、8以及其他的预设值,在这里不做限定。例如,在一个实施例中,仅对第1个待编码节点进行如上的属性预测值的确定,其他节点均根据下述的根据预测节点进行属性预测的方式。
需要说明的是,在这里,节点在编码顺序中的排序是从0开始的,因此,对于序号为0,1,2的节点采用上述的方式来确定属性预测值。在其他实施例中,节点在编码顺序中的排序还可以是从1开始的,只需要相应的对序号进行对应的修改即可。
下面介绍多种不同的确定预测节点的方法:
(一)基于空间关系的属性预测方法,根据节点与待编码节点之间的空间关系选择预测节点,可以通过空间关系找到待编码节点的相邻节点;
(二)基于双莫顿的属性预测方法,第一编码顺序为莫顿顺序1,对点云中的点进行平移之后重新获取对应的第二节点顺序为莫顿顺序2,在莫顿顺序1和莫顿顺序2中待编码节点前后的若干个节点中根据节点与待编码节点之间的距离选择预测节点,可以提高属性预测的准确度;
(三)基于空间关系和双莫顿结合的属性预测方法,首先根据空间关系选择预测节点,然后根据双莫顿的方式对预测节点进行补充,能综合两种预测方式下的优点,更进一步的提高属性预测的准确度。
下面分别对上述3种属性预测方法中预测节点的确定过程,其中,在待编码节点为第一编码顺序中的前N个节点的情况下,根据前述的方式确定待编码节点的预测节点和/或属性预测值,其在各个不同的实施例中均可以采用相同的方式进行属性预测值的确定。在待编码节点为第一编码顺序中的前N个节点之后的待编码节点的情况下,可以按照如下的方式确定预测节点,然后根据预测节点来对待编码节点的属性值进行预测,得到属性预测值。
在一个具体的实施例中,可以采用基于空间关系的属性预测方法对待编码节点进行属性预测。
具体利用节点与节点之间的几何关系(共面、共线、共点),以待编码节点的几何共面、共线、共点节点作为预测节点,并且作为预测节点的节点还需要满足条件:在待编码节点之前已经编码完成。然后根据确定的多个预测节点的属性重建值来对待编码节点的属性值进行预测,得到属性预测值。
首先对节点与节点之间的几何关系进行介绍,以说明预测节点可选的共面、共线、共点的节点有哪些。
如图10(a)-(c)所示,假设待编码节点的序号为7,共有6个面,12条边,8个节点,如图10(a)所示,共面节点有序号3、5、6、14、21、35对应的6个节点,如图10(b)所示,共线节点有序号1、2、4、10、12、17、20、28、33、34、42、49对应的12个节点,如图10(c)所示,共点节点有序号0、8、16、24、32、40、48、56对应的8个节点。
在所有这些共面共线共点节点中,无论待编码节点的位置如何,可能满足“在待编码节点之前编码完成”条件的为共面节点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对应的19个节点。
需要说明的是,在这19个节点中,并不是所有的节点都一定能被作为预测节点,这是因为,对于当前节点来讲,序号3、5、6、1、2、4、10、12、17、20、33、34、0、8、16、24、32、40、48对应的节点可能为空,也就是说,对应的voxel中没有点;并且,在对待编码节点进行预测时,上述19个节点并不一定都已经编码完成,未编码完成的节点无法作为预测节点,只有在待编码节点之前已经编码完成的节点才能作为预测节点。
进一步的,根据确定的多个预测节点来对待编码节点的属性值进行预测,得到属性预测值的过程,可以是根据权重值对多个预测节点进行加权平均的过程。其中,各个预测节点的权重值可以是一致的,也可以是不一致的。例如,将各个预测节点的权重值设置为固定常数;例如,针对不同的序号,分别设置对应的权重值;例如,预测节点的权重值为该预测节点与待编码节点之间的距离值的倒数,其中,距离可以为几何曼哈顿距离或几何欧式距离。在一个具体的实施例中,将权重值设为预测节点与待编码节点的几何曼哈顿距离的倒数,即共面节点权重为1,共线节点权重为1/2,共点节点权重为1/3。然后计算所有预测节点的属性重建值的加权平均值为待编码节点的属性预测值。
具体实施中,上述点云编码方法中,对待编码节点进行属性预测的步骤包括如下的步骤1.1)至步骤1.3),其中,仅给出了对于编码顺序下的第N个节点后的节点执行的相应的步骤(前N个节点的属性预测请参见前面描述的实施例):
步骤1.1)以待编码节点的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点 节点1、8、16、24、32、40、48作为预测节点的查找范围,确定多个预测节点,其中,预测节点的数量可以为3-6个,也就是说,在本步骤中确定了最少M1个、最多M2个节点作为预测节点。其中,M1、M2为正整数,且M2大于M1,例如,M1=3,M2=6。
计算所有预测节点的属性重建值的加权平均值作为待编码节点的属性预测值,
Figure PCTCN2021099883-appb-000001
其中
Figure PCTCN2021099883-appb-000002
为预测节点的属性重建值,w i为预测节点的权重。
其中,在以待编码节点的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48作为查找范围进行预测节点的查找时,如前所述的预测节点的要求,需要查找不为空且在待编码节点之前已经编码完成的节点作为预测节点。因为为空的节点已经编码完成的节点的数量不一定,因此,在当前步骤下确定的预测节点的数量可能小于6个(以M2=6为例进行说明),例如为4,5,6个。其中,不为空且已经编码完成的节点数量大于6的情况下,按照共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48的顺序,取排序在前6个节点作为预测节点。
假设在共面共线共点范围内确定的预测节点数小于M1(例如,M1=3)个,则在待编码节点第一编码顺序下的前32个点中查找与待编码节点之间的距离最近的点,补齐M1个节点作为预测节点。其中,节点与待编码节点之间的距离为几何曼哈顿距离或几何欧式距离。
然后根据确定的多个预测节点进行加权平均来获取待编码节点的属性预测值。
1.2)残差值为待编码节点的属性原始值和属性预测值之间的差,然后对残差值进行变换、量化等操作;
1.3)将属性预测值与反量化、反变换等操作后的残差信息叠加,得到待编码节点的属性重建值作为后续编码单元的参考信息。
在一个具体的实施例中,可以采用基于双莫顿的属性预测方法对待编码节点进行属性预测。
具体的,在点云编码对应的第一编码顺序下(莫顿顺序1),预测节点可以是在该莫顿顺序1下在待编码节点之前的前P1个节点中产生。然后,将点云在x、y、z坐标上分别加1(相当于进行平移向量为(1,1,1)的平移,还可以是其他平移向量),根据这个新的几何坐标生成新的编码顺序(莫顿顺序2),预测节点还可以是在莫顿顺序2下待编码节点的前P2个节点和后P个节点当中产生。即最终的预测节点在这P1+P2+P3个节点当中产生。其中,P1=8,P2=4,P3=4。
具体实施中,上述点云编码方法中,对待编码节点进行属性预测的步骤包括如下的步骤2.1)至2.3),其中,仅给出了对于编码顺序下的第N个节点后的节点执行的相应的步骤(前N个节点的属性预测请参见前面描述的实施例):
2.1)按照莫顿顺序1,预测节点在待编码节点的莫顿顺序1下的前8个点当中产生;然后将点在x、y、z坐标上分别加1,根据这个新的几何坐标生成新的莫顿顺序2,预测节点在待编码节点的莫顿顺序2下的前4个节点和后4个节点当中产生。最终的预测节点在这16个节点当中产生,选择距离最近的3个节点作为预测节点,计算所有预测节点的属性重建值的加权平均值作为当前节点的属性预测值,
Figure PCTCN2021099883-appb-000003
其中
Figure PCTCN2021099883-appb-000004
为预测节点的属性重建值,w i为预测节点的权重。
2.2)残差值为待编码节点的原始属性值和属性预测值之间的差,然后对残差值进行变换、量化等操作;
2.3)将属性预测值与反量化、反变换等操作后的残差信息叠加,得到待编码节点的属性重建值作为后续编码单元的参考信息。
在一个具体的实施例中,可以采用基于空间关系和双莫顿结合的属性预测方法对待编码节点进行属性预测。
具体的,对于编码的第N个节点后的节点,执行如下的步骤3.1)至3.5):
3.1)基于空间关系,确定待编码节点的一个或多个第一候选节点,在第一候选节点中确定至少一个节点作为第一预测节点。也就说,第一预测节点的数量为至少一个。
其中,第一候选节点是根据空间关系选择的节点,例如可以是从待编码节点的共面节点、待编码节点的共线节点和待编码节点的共点节点中产生的。在一个实施例中,第一候选节点具体包括如图10(a)-(c)所示的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48这19个节点。
在第一候选节点中确定第一预测节点的过程中,需要查找不为空(即对应的voxel不为空,包含了具体的点)、且在待编码节点之前已经完成了编码的节点来作为预测节点。具体实施中,按照共面节点 3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48的顺序,取排序在前的、不为空、且在待编码节点之前编码完成的Q1个节点作为预测节点,其中,Q1为小于等于3或6的正整数。例如,在当前步骤中,从第一候选节点中确定3个第一预测节点(即,Q1=3);需要说明的,在本步骤中,确定的第一预测节点的数量也可能小于3个。
如前所述,可能从第一候选节点中无法确定出足够数量的第一预测节点,例如,第一候选节点仅包含了2个不为空且已经编码完成的节点的情况,第一预测节点的数量为2。在这种情况下,需要进一步的结合双莫顿的方法对预测节点进行补充。
3.2)假设在3.1)中确定的第一预测节点数小于M1(例如,小于3),则采用基于双莫顿的方式对预测节点进行补充。
首先按照莫顿顺序1,将待编码节点的莫顿顺序1下的前P1(例如,P1=8)个节点作为第二候选节点;然后将节点在x、y、z坐标上分别加1,根据这个新的几何坐标生成新的莫顿顺序2(第二节点顺序),将在待编码节点的莫顿顺序2下的前P2(P2=4)个节点和后P3(P3=4)个节点作为第二候选节点。最终的预测节点在这P1+P2+P3(16)个第二候选节点当中产生。
具体在第二候选节点中根据候选节点与待编码节点之间的距离,选择距离最近的Q2个节点作为第二预测节点。
在一种实现方式中,直接在第二候选节点中根据候选节点与待编码节点之间的距离选择固定数量Q2(例如,Q2=3)个节点作为第二预测节点,也就是说,最终确定的第一预测节点和第二预测节点的数量为Q1+Q2,而考虑到前述确定的第一预测节点的数量为1-2个(小于3个),因此,第一预测节点和第二预测节点的总数量为4-5个。
在一种实现方式中,在第二候选节点中根据候选节点与待编码节点之间的距离选择Q2个节点作为第二预测节点,以使得第一预测节点和第二预测节点的数量总和为预设值(例如,3或者6)。在这种情况下,第一预测节点和第二预测节点的总数量为3个或6个。
在一种实现方式中,在根据节点与待编码节点之间的距离选择了第二预测节点之后,还需要进一步的判断是否所有的预测节点均为最佳的预测节点。具体的,可以根据节点与待编码节点之间的距离来判断。以第一预测节点和第二预测节点的总数量为6个为例进行说明。对第二候选节点中未被选定为第二预测节点的节点中,判断是否存在候选节点与待编码节点之间的第一距离小于第二预测节点的节点与待编码节点之间的第二距离,若存在,则需要将相应的候选节点替换到第二预测节点中节点,以使得最终确定的第二预测节点与待编码节点之间的距离为所有第二候选节点中的较小值,保证预测节点与待编码节点之间足够接近,提高属性预测的准确性。
具体实施中,根据第二候选节点中未被选定为第二预测节点的节点与待编码节点之间的距离从小到大对节点进行遍历,执行上述判断是否存在候选节点与待编码节点之间的第一距离小于第二预测节点的节点与待编码节点之间的第二距离,若存在,则需要将相应的候选节点替换到第二预测节点中节点的步骤,直至第二候选节点中未被选定为第二预测节点的所有节点与待编码节点之间的距离均小于第二预测节点与待编码节点之间的距离结束。
进一步的,上述计算节点与节点之间的库里可以为几何曼哈顿距离或几何欧式距离,也可以是其他节点之间的距离计算方式。
3.3)根据所有预测节点(包括第一预测节点和第二预测节点)的属性重建值来对待编码节点的属性值进行预测,得到待编码节点的属性预测值。
具体实施中,计算第一预测节点和第二预测节点的属性重建值的加权平均值作为待编码节点的属性预测值,
Figure PCTCN2021099883-appb-000005
其中
Figure PCTCN2021099883-appb-000006
为第一预测节点或第二预测节点的属性重建值,w i为第一预测节点或第二预测节点的权重值。
其中,各个预测节点的权重值可以是一致的,也可以是不一致的。例如,将各个预测节点的权重值设置为固定常数。例如,针对不同的序号,分别设置对应的权重值。例如,预测节点的权重值为该预测节点与待编码节点之间的距离值的倒数,其中,距离可以为几何曼哈顿距离或几何欧式距离。
在一个具体的实施例中,将权重值设为预测节点与待编码节点的几何曼哈顿距离的倒数,即共面节点权重为1,共线节点权重为1/2,共点节点权重为1/3。
3.4)残差值为待编码节点的属性原始值和属性预测值之间的差,然后对残差值进行变换、量化等操作;
3.5)将属性预测值与反量化、反变换等操作后的残差信息叠加,得到待编码节点的属性重建值作 为后续编码单元的参考信息。
进一步的,如图11所示,给出了上述基于空间关系和双莫顿结合的点云编码方法的流程示意图。其中,所述点云编码方法包括了如图11所示的步骤S202-S208:
步骤S202:对点云进行划分,得到与点云对应的至少一个待编码节点;
步骤S204:在待编码节点在第一编码顺序中的序号大于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点;
步骤S206:在确定的第一预测节点的数量小于M1的情况下,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序;
步骤S208:根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
上述步骤S202-S208的具体执行请参见前述点云编码方法的具体描述,在这里不再赘述。
上述基于空间关系的属性预测方法,可以通过空间关系直接找到待编码节点的临近节点,很好的对当前节点的属性值进行预测。而上述基于双莫顿的属性预测方法,可以尽可能的增大预测准确性,提升编码效率。
但是,在其他实施例中,在上述基于空间关系的属性预测方法中,因为预测节点的相关信息(例如属性重建值)是存储在缓存中的,而缓存大小是有限的,也就是说,可能存在缓存中找不到临近节点的情况,从而也会对属性预测的效果产生一定的影响。而上述基于双莫顿的属性预测方法中,对于属性预测准确性的提升也是有限的,并不一定能达到最优的预测效果。而相对于前述基于空间关系的属性预测方法、以及基于双莫顿的属性预测方法,前述基于空间关系和双莫顿结合的属性预测方法,通过结合空间近距离与双莫顿的预测节点的查找方法,既能准确定位到当前节点的临近节点,又能在临近节点不可得的情况下通过双莫顿来扩展预测节点从而尽可能增大预测准确性,从而提升编码效率。
进一步的,请参见图12,图12示出了本申请实施例提出的一种点云解码方法的流程示意图。根据图12所示,上述点云解码方法包括如图12所示的步骤S302-S306:
步骤S302:解码点云码流,确定与点云对应的至少一个待解码节点;
步骤S304:在待解码节点在第一解码顺序中的序号大于N的情况下,确定至少一个预测节点;
步骤S306:根据所述至少一个预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
在编码端对点云进行八叉树划分,得到多个voxel之后,即可按照一定的编码顺序对每一个voxel(待编码节点)进行编码;而在解码端,在进行几何信息的解码之后,即可确定在编码端对应的编码顺序,从而在解码端也根据相应的顺序进行解码,在这里,称为第一解码顺序。
然后在解码的过程中,按照莫顿顺序或者其他顺序(即第一解码顺序)对每一个节点(待解码节点)依次进行属性预测,得到待解码节点的属性预测值,并根据待解码节点的残差值和属性预测值计算属性重建值,根据每一个待编码节点的属性重建值确定重建点云,完成点云的解码过程。
其中,对待编码节点按照第一编码顺序进行属性预测的过程中,需要确定与待编码节点对应的一个或多个参考节点(即一个或多个预测节点,这里的预测节点是在待编码节点之前已经完成了编码的节点,只有已编码节点才能作为参考节点),然后根据一个或多个预测节点的属性重建值来对当前的待编码节点的属性值进行预测,得到对应的属性预测值。
其中,在待解码节点为第一解码顺序中的第1个节点的情况下,因为是进行解码的第一个点,不存在已经解码完成的节点可以作为预测节点,因此,在这种情况下直接将待解码节点的属性预测值设置为预设值,例如,该预设值可以为(128,128,128)或(0,0,0)或(255,255,255),也可以是其他的预设值,在这里不做限定。
在其他实施例中,在待解码节点为第一解码顺序中的第2个节点的情况下,仅存在第1个节点这一个已经解码完成的节点,因此,将第1个节点作为预测节点来进行当前的待解码节点的属性值的预测。例如,直接将带解码节点的属性预测值设置为等于第1个节点的属性重建值。
在其他实施例中,在待解码节点为第一解码顺序中的第3个节点的情况下,存在第1、2个节点这2个已经解码完成的节点,因此,将第1、2个节点作为预测节点来进行当前的待解码节点的属性值的预测。例如,将第1、2个节点的属性重建值的加权平均值来作为第3个节点的属性预测值。
在待解码节点为第4个节点以及后续的节点的情况下,可选的已经解码完成的节点数量较多,在这种情况下,可以基于各个节点与待解码节点之间的空间关系、或者基于第一解码顺序等来选择一个或多个预测节点来进行属性预测。
当然,在其他实施例中,还可以设置为在解码顺序中的序号为N以上的情况采用上述预测节点的 确定方式,而不是仅仅直接使用在当前的待解码节点之前的所有的已解码完成的节点来作为预测节点。在这里,N为正整数,且N可以等于3,也可以等于1、2、4、5、6、7、8以及其他的预设值,在这里不做限定。例如,在一个实施例中,仅对第1个待解码节点进行如上的属性预测值的确定,其他节点均根据下述的根据预测节点进行属性预测的方式。
下面介绍多种不同的确定预测节点的方法:
(一)基于空间关系的属性预测方法,根据节点与待解码节点之间的空间关系选择预测节点,可以通过空间关系找到待解码节点的相邻节点;
(二)基于双莫顿的属性预测方法,第一解码顺序为莫顿顺序1,对点云中的点进行平移之后重新获取对应的第二节点顺序为莫顿顺序2,在莫顿顺序1和莫顿顺序2中待解码节点前后的若干个节点中根据节点与待解码节点之间的距离选择预测节点,可以提高属性预测的准确度;
(三)基于空间关系和双莫顿结合的属性预测方法,首先根据空间关系选择预测节点,然后根据双莫顿的方式对预测节点进行补充,能综合两种预测方式下的优点,更进一步的提高属性预测的准确度。
下面分别对上述3种属性预测方法中预测节点的确定过程,其中,在待解码节点为第一解码顺序中的前N个节点的情况下,根据前述的方式确定待解码节点的预测节点和/或属性预测值,其在各个不同的实施例中均可以采用相同的方式进行属性预测值的确定。在待解码节点为第一解码顺序中的前N个节点之后的待解码节点的情况下,可以按照如下的方式确定预测节点,然后根据预测节点来对待解码节点的属性值进行预测,得到属性预测值。
在一个具体的实施例中,可以采用基于空间关系的属性预测方法对待解码节点进行属性预测。
具体利用节点与节点之间的几何关系(共面、共线、共点),以待解码节点的几何共面、共线、共点节点作为预测节点,并且作为预测节点的节点还需要满足条件:在待解码节点之前已经解码完成。然后根据确定的多个预测节点的属性重建值来对待解码节点的属性值进行预测,得到属性预测值。
首先对节点与节点之间的几何关系进行介绍,以说明预测节点可选的共面、共线、共点的节点有哪些。
如图10(a)-(c)所示,假设待解码节点的序号为7,共有6个面,12条边,8个节点,如图10(a)所示,共面节点有序号3、5、6、14、21、35对应的6个节点,如图10(b)所示,共线节点有序号1、2、4、10、12、17、20、28、33、34、42、49对应的12个节点,如图10(c)所示,共点节点有序号0、8、16、24、32、40、48、56对应的8个节点。
在所有这些共面共线共点节点中,无论待解码节点的位置如何,可能满足“在待解码节点之前解码完成”条件的为共面节点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对应的19个节点。
需要说明的是,在这19个节点中,并不是所有的节点都一定能被作为预测节点,这是因为,对于当前节点来讲,序号3、5、6、1、2、4、10、12、17、20、33、34、0、8、16、24、32、40、48对应的节点可能为空,也就是说,对应的voxel中没有点;并且,在对待解码节点进行预测时,上述19个节点并不一定都已经解码完成,未解码完成的节点无法作为预测节点,只有在待解码节点之前已经解码完成的节点才能作为预测节点。
进一步的,根据确定的多个预测节点来对待解码节点的属性值进行预测,得到属性预测值的过程,可以是根据权重值对多个预测节点进行加权平均的过程。其中,各个预测节点的权重值可以是一致的,也可以是不一致的。例如,将各个预测节点的权重值设置为固定常数;例如,针对不同的序号,分别设置对应的权重值;例如,预测节点的权重值为该预测节点与待解码节点之间的距离值的倒数,其中,距离可以为几何曼哈顿距离或几何欧式距离。在一个具体的实施例中,将权重值设为预测节点与待解码节点的几何曼哈顿距离的倒数,即共面节点权重为1,共线节点权重为1/2,共点节点权重为1/3。然后计算所有预测节点的属性重建值的加权平均值为待解码节点的属性预测值。
具体实施中,上述点云解码方法中,对待解码节点进行属性预测的步骤包括如下的步骤4.1)至步骤4.2),其中,仅给出了对于解码顺序下的第N个节点后的节点执行的相应的步骤(前N个节点的属性预测请参见前面描述的实施例):
步骤4.1)以待解码节点的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48作为预测节点的查找范围,确定多个预测节点,其中,预测节点的数量可以为3-6个,也就是说,在本步骤中确定了最少M1个、最多M2个节点作为预测节点。其中,M1、M2为正整数,且M2大于M1,例如,M1=3,M2=6。
计算所有预测节点的属性重建值的加权平均值作为待解码节点的属性预测值,
Figure PCTCN2021099883-appb-000007
其中
Figure PCTCN2021099883-appb-000008
为预测节点的属性重建值,w i为预测节点的权重。
其中,在以待解码节点的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48作为查找范围进行预测节点的查找时,如前所述的预测节点的要求,需要查找不为空且在待解码节点之前已经解码完成的节点作为预测节点。因为为空的节点已经解码完成的节点的数量不一定,因此,在当前步骤下确定的预测节点的数量可能小于6个(以M2=6为例进行说明),例如为4,5,6个。其中,不为空且已经解码完成的节点数量大于6的情况下,按照共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48的顺序,取排序在前6个节点作为预测节点。
假设在共面共线共点范围内确定的预测节点数小于M1(例如,M1=3)个,则在待解码节点第一解码顺序下的前32个点中查找与待解码节点之间的距离最近的点,补齐M1个节点作为预测节点。其中,节点与待解码节点之间的距离为几何曼哈顿距离或几何欧式距离。
然后根据确定的多个预测节点进行加权平均来获取待解码节点的属性预测值。
4.2)残差值为编码端根据节点的属性原始值和属性预测值之间的差确定的,在当前解码端,根据属性预测值和残差值可以确定待解码节点的属性重建值。
在一个具体的实施例中,可以采用基于双莫顿的属性预测方法对待解码节点进行属性预测。
具体的,在点云解码对应的第一解码顺序下(莫顿顺序1),预测节点可以是在该莫顿顺序1下在待解码节点之前的前P1个节点中产生。然后,将点云在x、y、z坐标上分别加1(相当于进行平移向量为(1,1,1)的平移,还可以是其他平移向量),根据这个新的几何坐标生成新的解码顺序(莫顿顺序2),预测节点还可以是在莫顿顺序2下待解码节点的前P2个节点和后P个节点当中产生。即最终的预测节点在这P1+P2+P3个节点当中产生。其中,P1=8,P2=4,P3=4。
具体实施中,上述点云解码方法中,对待解码节点进行属性预测的步骤包括如下的步骤5.1)至5.2),其中,仅给出了对于解码顺序下的第N个节点后的节点执行的相应的步骤(前N个节点的属性预测请参见前面描述的实施例):
5.1)按照莫顿顺序1,预测节点在待解码节点的莫顿顺序1下的前8个点当中产生;然后将点在x、y、z坐标上分别加1,根据这个新的几何坐标生成新的莫顿顺序2,预测节点在待解码节点的莫顿顺序2下的前4个节点和后4个节点当中产生。最终的预测节点在这16个节点当中产生,选择距离最近的3个节点作为预测节点,计算所有预测节点的属性重建值的加权平均值作为当前节点的属性预测值,
Figure PCTCN2021099883-appb-000009
其中
Figure PCTCN2021099883-appb-000010
为预测节点的属性重建值,w i为预测节点的权重。
5.2)残差值为解码端根据节点的属性原始值和属性预测值之间的差确定的,在当前解码端,根据属性预测值和残差值可以确定待解码节点的属性重建值。
在一个具体的实施例中,可以采用基于空间关系和双莫顿结合的属性预测方法对待解码节点进行属性预测。
具体的,对于解码的第N个节点后的节点,执行如下的步骤6.1)至6.4):
6.1)基于空间关系,确定待解码节点的一个或多个第一候选节点,在第一候选节点中确定至少一个节点作为第一预测节点。也就说,第一预测节点的数量为至少一个。
其中,第一候选节点是根据空间关系选择的节点,例如可以是从待解码节点的共面节点、待解码节点的共线节点和待解码节点的共点节点中产生的。在一个实施例中,第一候选节点具体包括如图10(a)-(c)所示的共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48这19个节点。
在第一候选节点中确定第一预测节点的过程中,需要查找不为空(即对应的voxel不为空,包含了具体的点)、且在待解码节点之前已经完成了解码的节点来作为预测节点。具体实施中,按照共面节点3、5、6,共线节点1、2、4、10、12、17、20、33、34,共点节点1、8、16、24、32、40、48的顺序,取排序在前的、不为空、且在待解码节点之前解码完成的Q1个节点作为预测节点,其中,Q1为小于等于3或6的正整数。例如,在当前步骤中,从第一候选节点中确定3个第一预测节点(即,Q1=3);需要说明的,在本步骤中,确定的第一预测节点的数量也可能小于3个。在其他实施例中,Q1还可以等于1,2,4,5,6中的一个,或者等于其他正整数值。
如前所述,可能从第一候选节点中无法确定出足够数量的第一预测节点,例如,第一候选节点仅包含了2个不为空且已经解码完成的节点的情况,第一预测节点的数量为2。在这种情况下,需要进一步的结合双莫顿的方法对预测节点进行补充。
6.2)假设在6.1)中确定的第一预测节点数小于M1(例如,小于3),则采用基于双莫顿的方式对预测节点进行补充。
首先按照莫顿顺序1,将待解码节点的莫顿顺序1下的前P1(例如,P1=8)个节点作为第二候选节点;然后将节点在x、y、z坐标上分别加1,根据这个新的几何坐标生成新的莫顿顺序2(第二节点顺序),将在待解码节点的莫顿顺序2下的前P2(P2=4)个节点和后P3(P3=4)个节点作为第二候选节点。最终的预测节点在这P1+P2+P3(16)个第二候选节点当中产生。
具体在第二候选节点中根据候选节点与待解码节点之间的距离,选择距离最近的Q2个节点作为第二预测节点。
在一种实现方式中,直接在第二候选节点中根据候选节点与待解码节点之间的距离选择固定数量Q2(例如,Q2=3)个节点作为第二预测节点,也就是说,最终确定的第一预测节点和第二预测节点的数量为Q1+Q2,而考虑到前述确定的第一预测节点的数量为1-2个(小于3个),因此,第一预测节点和第二预测节点的总数量为4-5个。在其他实施例中,Q2还可以是其他正整数值,例如Q2为1、2、4、5、6或者其他正整数值。
在一种实现方式中,在第二候选节点中根据候选节点与待解码节点之间的距离选择Q2个节点作为第二预测节点,以使得第一预测节点和第二预测节点的数量总和为预设值M2(例如,3,4,5,6)。在这种情况下,第一预测节点和第二预测节点的总数量为3,4,5,6中的一个。
在一种实现方式中,在根据节点与待解码节点之间的距离选择了第二预测节点之后,还需要进一步的判断是否所有的预测节点均为最佳的预测节点。具体的,可以根据节点与待解码节点之间的距离来判断。以第一预测节点和第二预测节点的总数量为6个(还可以是M2的其他的取值)为例进行说明。对第二候选节点中未被选定为第二预测节点的节点中,判断是否存在候选节点与待解码节点之间的第一距离小于第二预测节点的节点与待解码节点之间的第二距离,若存在,则需要将相应的候选节点替换到第二预测节点中节点,以使得最终确定的第二预测节点与待解码节点之间的距离为所有第二候选节点中的较小值,保证预测节点与待解码节点之间足够接近,提高属性预测的准确性。
具体实施中,根据第二候选节点中未被选定为第二预测节点的节点与待解码节点之间的距离从小到大对节点进行遍历,执行上述判断是否存在候选节点与待解码节点之间的第一距离小于第二预测节点的节点与待解码节点之间的第二距离,若存在,则需要将相应的候选节点替换到第二预测节点中节点的步骤,直至第二候选节点中未被选定为第二预测节点的所有节点与待解码节点之间的距离均小于第二预测节点与待解码节点之间的距离结束。
进一步的,上述计算节点与节点之间的库里可以为几何曼哈顿距离或几何欧式距离,也可以是其他节点之间的距离计算方式。
6.3)根据所有预测节点(包括第一预测节点和第二预测节点)的属性重建值来对待解码节点的属性值进行预测,得到待解码节点的属性预测值。
具体实施中,计算第一预测节点和第二预测节点的属性重建值的加权平均值作为待解码节点的属性预测值,
Figure PCTCN2021099883-appb-000011
其中
Figure PCTCN2021099883-appb-000012
为第一预测节点或第二预测节点的属性重建值,w i为第一预测节点或第二预测节点的权重值。
其中,各个预测节点的权重值可以是一致的,也可以是不一致的。例如,将各个预测节点的权重值设置为固定常数。例如,针对不同的序号,分别设置对应的权重值。例如,预测节点的权重值为该预测节点与待解码节点之间的距离值的倒数,其中,距离可以为几何曼哈顿距离或几何欧式距离。
在一个具体的实施例中,将权重值设为预测节点与待解码节点的几何曼哈顿距离的倒数,即共面节点权重为1,共线节点权重为1/2,共点节点权重为1/3。
6.4)残差值为编码端根据节点的属性原始值和属性预测值之间的差确定的,在当前解码端,根据属性预测值和残差值可以确定待解码节点的属性重建值。
进一步的,如图13所示,给出了上述基于空间关系和双莫顿结合的点云解码方法的流程示意图。其中,所述点云解码方法包括了如图13所示的步骤S402-S408:
步骤S402:解码点云码流,确定与点云对应的至少一个待解码节点;
步骤S404:在待解码节点在第一解码顺序中的序号大于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点;
步骤S406:在确定的第一预测节点的数量小于M1的情况下,在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码 节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序;
步骤S408:根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
上述步骤S402-S408的具体执行请参见前述点云解码方法的具体描述,在这里不再赘述。
上述基于空间关系的属性预测方法,可以通过空间关系直接找到待解码节点的临近节点,很好的对当前节点的属性值进行预测。而上述基于双莫顿的属性预测方法,可以尽可能的增大预测准确性,提升解码效率。
但是,在其他实施例中,在上述基于空间关系的属性预测方法中,因为预测节点的相关信息(例如属性重建值)是存储在缓存中的,而缓存大小是有限的,也就是说,可能存在缓存中找不到临近节点的情况,从而也会对属性预测的效果产生一定的影响。而上述基于双莫顿的属性预测方法中,对于属性预测准确性的提升也是有限的,并不一定能达到最优的预测效果。而相对于前述基于空间关系的属性预测方法、以及基于双莫顿的属性预测方法,前述基于空间关系和双莫顿结合的属性预测方法,通过结合空间近距离与双莫顿的预测节点的查找方法,既能准确定位到当前节点的临近节点,又能在临近节点不可得的情况下通过双莫顿来扩展预测节点从而尽可能增大预测准确性,从而提升解码效率。
为了进一步说明本申请实施例的技术效果,将本申请实施例提出的方案在AVS最新的点云压缩平台PCRM3.0上进行了测试,其中,对上述基于空间关系和双莫顿结合的预测方法对应的编/解码方法的编码效率进行了测试,具体的测试结果如表1-4所示。
表1
Figure PCTCN2021099883-appb-000013
表2
Figure PCTCN2021099883-appb-000014
表3
Figure PCTCN2021099883-appb-000015
表4
Figure PCTCN2021099883-appb-000016
根据表1-4所示,上述基于空间关系和双莫顿结合的预测方法对应的编/解码方法在两个实施例下都有明显的性能提升。
进一步的,在本实施例中,还提供了一种数据流,该数据流可以是属性码流,是根据如前所述的点云编码方法生成的包含了待编码点云的残差值对应的比特流。该数据流产生的步骤可以参见如前所述的点云编码方法,在这里不进行赘述。
上文结合图3至图13,详细描述了本申请的点云编码方法和点云解码方法的实施例,下文结合图14至图16,详细描述本申请的装置实施例。
具体参见图14,图14示出了一种点云编码装置的结构示意图。
具体的,如图14所示,上述点云编码装置包括:
点云划分模块402,用于对点云进行划分,得到与点云对应的至少一个待编码节点,确定与所述至少一个待编码节点对应的第一编码顺序,其中,待编码节点为对点云进行划分得到的体素单元voxel;
第一预测节点确定模块404,用于在待编码节点在第一编码顺序中的序号大于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
第二预测节点确定模块406,用于在确定的第一预测节点的数量小于M1时,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
属性预测模块408,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
在一个实施例中,所述第一编码顺序和第二节点顺序为莫顿顺序或希尔伯特顺序。
在一个实施例中,N=3。
在一个实施例中,属性预测模块408还用于在待编码节点在第一编码顺序中的序号为1的情况下,将待编码点云的属性预测值设置为预设值。
在一个实施例中,所述预设值为(128,128,128)、(0,0,0)和(255,255,255)中的一个。
在一个实施例中,第一预测节点确定模块404还用于在待编码节点在第一编码顺序中的序号为2的情况下,将在第一编码顺序中序号为1的节点作为第一预测节点;
属性预测模块408还用于根据所述第一预测节点的属性重建值确定待编码节点的属性预测值,其中,待编码节点的属性预测值等于所述第一预测节点的属性重建值。
在一个实施例中,第一预测节点确定模块404还用于在待编码节点在第一编码顺序中的序号为3的情况下,将在第一编码顺序中序号为1和2的节点作为第一预测节点;
属性预测模块408还用于根据所述第一预测节点的属性重建值确定待编码节点的属性预测值,待编码节点的属性预测值设置为等于第一预测节点的属性重建值的加权平均值。
在一个实施例中,所述多个第一候选节点包括待编码节点的共面节点、待编码节点的共线节点和待编码节点的共点节点中的一个或多个。
在一个实施例中,所述待编码节点的共面节点包括索引为3、5和6的节点,所述待编码节点的共线节点包括索引为1、2、4、10、12、17、20、33和34的节点,所述待编码节点的共点节点包括索引为1、8、16、24、32、40和48的节点。
在一个实施例中,第一预测节点确定模块404还用于按照待编码节点的共面节点、待编码节点的共线节点、待编码节点的共点节点的顺序,在第一候选节点中查找不为空、且在待编码节点之前已编码的Q1个节点作为第一预测节点,其中,Q1为小于等于6的正整数。
在一个实施例中,M1=3。
在一个实施例中,所述第二候选节点包括在第一编码顺序下在待编码节点之前的P1个节点;所述第二候选节点包括在第二节点顺序下在待编码节点之前的P2个节点和在编码节点之后的P3个节点。
在一个实施例中,P1=8,P2=4,P3=4。
在一个实施例中,所述第二节点顺序是对点云中的点进行平移处理之后得到的节点的重排序。
在一个实施例中,进行平移处理的平移向量为(1,1,1)。
在一个实施例中,第二预测节点确定模块406还用于在所述多个第二候选节点中,根据节点与待编码节点之间的距离确定至少一个节点作为第二预测节点。
在一个实施例中,节点与待编码节点之间的距离为几何曼哈顿距离或几何欧式距离。
在一个实施例中,第二预测节点确定模块406还用于在所述多个第二候选节点中,确定与待编码节点之间的距离最小的Q2个节点作为第二预测节点,其中,Q2=3。
在一个实施例中,第二预测节点确定模块406还用于在所述多个第二候选节点中,确定与待编码节点之间的距离最小的至少一个节点作为第二预测节点,其中,第二预测节点的数量与第一预测节点的数量的和值为M2,其中,M2=3或6。
在一个实施例中,第二预测节点确定模块406还用于在第一预测节点的数量和第二预测节点的数量的和值为M2的情况下,判断第二候选节点中未被选择的节点中是否存在节点与待编码节点之间的第一距离小于各个第二预测节点中的节点与待编码节点之间的第二距离;若存在,将从第二距离对应的预测节点所述第二预测节点中删除,并将第一距离对应的节点添加到所述第二预测节点中。
在一个实施例中,第一预测节点的数量和第二预测节点的数量的和值小于等于6。
在一个实施例中,属性预测模块408还用于按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待编码节点的属性预测值。
在一个实施例中,所述预设的权重值为固定值。
在一个实施例中,属性预测模块408还用于针对每一个第一预测节点和/或每一个第二预测节点, 根据预测节点与待编码节点之间的位置关系确定该第一预测节点和/或第二预测节点的权重值。
在一个实施例中,属性预测模块408还用于针对每一个第一预测节点和/或每一个第二预测节点,计算与待编码节点之间的距离的倒数,并做该第一预测节点和/或第二预测节点的权重值。
在一个实施例中,预测节点与待编码节点之间的距离为几何曼哈顿距离或几何欧式距离。
在一个实施例中,属性预测模块408还用于根据公式
Figure PCTCN2021099883-appb-000017
计算待编码节点的属性预测值
Figure PCTCN2021099883-appb-000018
其中,
Figure PCTCN2021099883-appb-000019
为第一预测节点或第二预测节点的属性重建值,w i为第一预测节点或第二预测节点的权重值,R为第一预测节点和/或第二预测节点构成的集合。
在一个实施例中,属性预测模块408还用于对所述待编码节点的属性预测值进行编码,得到属性码流。
具体参见图15,图15示出了一种点云解码装置的结构示意图。
具体的,如图15所示,上述点云解码装置包括:
节点确定模块502,用于解码点云码流,确定与点云对应的至少一个待解码节点以及包含所述至少一个待解码节点对应的第一解码顺序;
第一预测节点确定模块504,用于在待解码节点在第一解码顺序中的序号大于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
第二预测节点确定模块506,用于在确定的第一预测节点的数量小于M1的情况下,在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
属性预测模块508,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
在一个实施例中,所述第一解码顺序和第二节点顺序为莫顿顺序或希尔伯特顺序。
在一个实施例中,N=3。
在一个实施例中,属性预测模块508还用于在待解码节点在第一解码顺序中的序号为1的情况下,将待解码点云的属性预测值设置为预设值。
在一个实施例中,所述预设值为(128,128,128)、(0,0,0)和(255,255,255)中的一个。
在一个实施例中,第一预测节点确定模块504在待解码节点在第一解码顺序中的序号为2的情况下,将在第一解码顺序中序号为1的节点作为第一预测节点;
属性预测模块508还用于根据所述第一预测节点的属性重建值确定待解码节点的属性预测值,其中,待解码节点的属性预测值等于所述第一预测节点的属性重建值。
在一个实施例中,第一预测节点确定模块504在待解码节点在第一解码顺序中的序号为3的情况下,将在第一解码顺序中序号为1和2的节点作为第一预测节点;
属性预测模块508还用于根据所述第一预测节点的属性重建值确定待解码节点的属性预测值,其中,待解码节点的属性预测值设置为等于第一预测节点的属性重建值的加权平均值。
在一个实施例中,所述多个第一候选节点包括待解码节点的共面节点、待解码节点的共线节点和待解码节点的共点节点中的一个或多个。
在一个实施例中,所述待解码节点的共面节点包括索引为3、5和6的节点,所述待解码节点的共线节点包括索引为1、2、4、10、12、17、20、33和34的节点,所述待解码节点的共点节点包括索引为1、8、16、24、32、40和48的节点。
在一个实施例中,第一预测节点确定模块504按照待解码节点的共面节点、待解码节点的共线节点、待解码节点的共点节点的顺序,在第一候选节点中查找不为空、且在待解码节点之前已解码的Q1个节点作为第一预测节点,其中,Q1为小于等于3或6的正整数。
在一个实施例中,M1=3。
在一个实施例中,所述第二候选节点包括在第一解码顺序下在待解码节点之前的P1个节点;所述第二候选节点包括在第二节点顺序下在待解码节点之前的P2个节点和在解码节点之后的P3个节点。
在一个实施例中,P1=8,P2=4,P3=4。
在一个实施例中,所述第二节点顺序是对点云中的点进行平移处理之后得到的节点的重排序。
在一个实施例中,进行平移处理的平移向量为(1,1,1)。
在一个实施例中,第二预测节点确定模块506在所述多个第二候选节点中,根据节点与待解码节点 之间的距离确定至少一个节点作为第二预测节点。
在一个实施例中,节点与待解码节点之间的距离为几何曼哈顿距离或几何欧式距离。
在一个实施例中,第二预测节点确定模块506在所述多个第二候选节点中,确定与待解码节点之间的距离最小的Q2个节点作为第二预测节点,其中,Q2=3。
在一个实施例中,第二预测节点确定模块506在所述多个第二候选节点中,确定与待解码节点之间的距离最小的至少一个节点作为第二预测节点,以使得第二预测节点的数量与第一预测节点的数量的和值为M2,其中,M2为3、4、5或6。
在一个实施例中,第二预测节点确定模块506在第一预测节点的数量和第二预测节点的数量的和值为M2的情况下,判断第二候选节点中未被选择的节点中是否存在节点与待解码节点之间的第一距离小于各个第二预测节点中的节点与待解码节点之间的第二距离;若存在,将从第二距离对应的预测节点所述第二预测节点中删除,并将第一距离对应的节点添加到所述第二预测节点中。
在一个实施例中,第一预测节点的数量和第二预测节点的数量的和值小于等于6。
在一个实施例中,属性预测模块508还用于按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待解码节点的属性预测值。
在一个实施例中,所述预设的权重值为固定值。
在一个实施例中,属性预测模块508还用于针对每一个第一预测节点和/或每一个第二预测节点,根据预测节点与待解码节点之间的位置关系确定该第一预测节点和/或第二预测节点的权重值。
在一个实施例中,属性预测模块508还用于针对每一个第一预测节点和/或每一个第二预测节点,计算与待解码节点之间的距离的倒数,并做该第一预测节点和/或第二预测节点的权重值。
在一个实施例中,预测节点与待解码节点之间的距离为几何曼哈顿距离或几何欧式距离。
在一个实施例中,属性预测模块508还用于根据公式
Figure PCTCN2021099883-appb-000020
计算待解码节点的属性预测值
Figure PCTCN2021099883-appb-000021
其中,
Figure PCTCN2021099883-appb-000022
为第一预测节点或第二预测节点的属性重建值,w i为第一预测节点或第二预测节点的权重值,R为第一预测节点和/或第二预测节点构成的集合。
在一个实施例中,属性预测模块508还用于解析码流,确定待解码节点的残差值;根据残差值和属性预测值确定待解码节点的属性重建值。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。
上文中结合附图从功能单元的角度描述了本申请实施例的装置和系统。应理解,该功能单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件单元组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。可选地,软件单元可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图16是本申请实施例提供的电子设备的示意性框图。其中,该电子设备可以是点云编码器也可以是点云解码器。
如图16所示,该电子设备30可以为本申请实施例所述的点云上采样装置,或者点云解码器,或者为模型训练装置,该电子设备30可包括:
存储器33和处理器32,该存储器33用于存储计算机程序34,并将该程序代码34传输给该处理器32。换言之,该处理器32可以从存储器33中调用并运行计算机程序34,以实现本申请实施例中的方法。
例如,该处理器32可用于根据该计算机程序34中的指令执行上述方法中的步骤。
在本申请的一些实施例中,该处理器32可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器33包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM, EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序34可以被分割成一个或多个单元,该一个或者多个单元被存储在该存储器33中,并由该处理器32执行,以完成本申请提供的方法。该一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序34在该电子设备30中的执行过程。
如图16所示,该电子设备30还可包括:
收发器33,该收发器33可连接至该处理器32或存储器33。
其中,处理器32可以控制该收发器33与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器33可以包括发射机和接收机。收发器33还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字点云光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
工业实用性
本申请实施例中,无论是编码器还是解码器,在对当前节点(待编码节点或待解码节点)进行属性 预测的过程中,对于当前节点解码顺序中的序号大于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;并且,如果确定的第一预测节点的数量小于M1,则需要进一步的在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;根据至少一个第一预测节点、或至少一个第一预测节点和至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。这样,可以将基于空间关系属性预测方法和基于双莫顿的属性预测方法进行结合,以得到基于空间关系和双莫顿结合的属性预测方法,既能够准确的定位到当前节点的相邻节点,也能够在相邻节点不可得的情况下尽可能的提高属性预测的准确度,提升编解码效率。

Claims (63)

  1. 一种点云解码方法,其中,包括:
    解码点云码流,确定与点云对应的至少一个待解码节点;
    在待解码节点在第一解码顺序中的序号大于等于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
    若确定的第一预测节点的数量小于M1,在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
    根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
  2. 根据权利要求1所述的点云解码方法,其中,所述第一解码顺序和第二节点顺序为莫顿顺序或希尔伯特顺序。
  3. 根据权利要求1所述的点云解码方法,其中,N=3。
  4. 根据权利要求1所述的点云解码方法,其中,所述方法还包括:
    在待解码节点在第一解码顺序中的序号为0的情况下,将待解码点云的属性预测值设置为预设值。
  5. 根据权利要求4所述的点云解码方法,其中,所述预设值为(128,128,128)、(0,0,0)和(255,255,255)中的一个。
  6. 根据权利要求1所述的点云解码方法,其中,所述方法还包括:
    在待解码节点在第一解码顺序中的序号为1的情况下,将在第一解码顺序中序号为0的节点作为第一预测节点;
    根据所述第一预测节点的属性重建值确定待解码节点的属性预测值,其中,待解码节点的属性预测值等于所述第一预测节点的属性重建值。
  7. 根据权利要求1所述的点云解码方法,其中,所述方法还包括:
    在待解码节点在第一解码顺序中的序号为2的情况下,将在第一解码顺序中序号为0和2的节点作为第一预测节点;
    根据所述第一预测节点的属性重建值确定待解码节点的属性预测值,其中,待解码节点的属性预测值设置为等于第一预测节点的属性重建值的加权平均值。
  8. 根据权利要求1所述的点云解码方法,其中,所述多个第一候选节点包括待解码节点的共面节点、待解码节点的共线节点和待解码节点的共点节点中的一个或多个。
  9. 根据权利要求8所述的点云解码方法,其中,所述待解码节点的共面节点包括索引为3、5和6的节点,所述待解码节点的共线节点包括索引为1、2、4、10、12、17、20、33和34的节点,所述待解码节点的共点节点包括索引为1、8、16、24、32、40和48的节点。
  10. 根据权利要求9所述的点云解码方法,其中,所述在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,还包括:
    按照待解码节点的共面节点、待解码节点的共线节点、待解码节点的共点节点的顺序,在第一候选节点中查找不为空、且在待解码节点之前已解码的Q1个节点作为第一预测节点,其中,Q1为小于等于3或6的正整数。
  11. 根据权利要求1所述的点云解码方法,其中,M1=3。
  12. 根据权利要求1所述的点云解码方法,其中,所述第二候选节点包括在第一解码顺序下在待解码节点之前的P1个节点;
    所述第二候选节点包括在第二节点顺序下在待解码节点之前的P2个节点和在解码节点之后的P3个节点。
  13. 根据权利要求12所述的点云解码方法,其中,P1=8,P2=4,P3=4。
  14. 根据权利要求1所述的点云解码方法,其中,所述第二节点顺序是对点云中的点进行平移处理之后得到的节点的重排序。
  15. 根据权利要求1所述的点云解码方法,其中,进行平移处理的平移向量为(1,1,1)。
  16. 根据权利要求1所述的点云解码方法,其中,所述在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,包括:
    在所述多个第二候选节点中,根据节点与待解码节点之间的距离确定至少一个节点作为第二预测节 点。
  17. 根据权利要求16所述的点云解码方法,其中,节点与待解码节点之间的距离为几何曼哈顿距离或几何欧式距离。
  18. 根据权利要求16所述的点云解码方法,其中,所述在所述多个第二候选节点中,根据节点与待解码节点之间的距离确定至少一个节点作为第二预测节点,还包括:
    在所述多个第二候选节点中,确定与待解码节点之间的距离最小的Q2个节点作为第二预测节点,其中,Q2=3。
  19. 根据权利要求16所述的点云解码方法,其中,所述在所述多个第二候选节点中,根据节点与待解码节点之间的距离确定至少一个节点作为第二预测节点,还包括:
    在所述多个第二候选节点中,确定与待解码节点之间的距离最小的至少一个节点作为第二预测节点,以使得第二预测节点的数量与第一预测节点的数量的和值为M2,其中,M2为3、4、5或6。
  20. 根据权利要求19所述的点云解码方法,其中,所述方法还包括:
    在第一预测节点的数量和第二预测节点的数量的和值为6的情况下,判断第二候选节点中未被选择的节点中是否存在节点与待解码节点之间的第一距离小于各个第二预测节点中的节点与待解码节点之间的第二距离;
    若存在,将从第二距离对应的预测节点所述第二预测节点中删除,并将第一距离对应的节点添加到所述第二预测节点中。
  21. 根据权利要求1所述的点云解码方法,其中,第一预测节点的数量和第二预测节点的数量的和值小于等于6。
  22. 根据权利要求1所述的点云解码方法,其中,所述根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值,还包括:
    按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待解码节点的属性预测值。
  23. 根据权利要求22所述的点云解码方法,其中,所述预设的权重值为固定值。
  24. 根据权利要求22所述的点云解码方法,其中,针对每一个第一预测节点和/或每一个第二预测节点,根据预测节点与待解码节点之间的位置关系确定该第一预测节点和/或第二预测节点的权重值。
  25. 根据权利要求22所述的点云解码方法,其中,针对每一个第一预测节点和/或每一个第二预测节点,计算与待解码节点之间的距离的倒数,并做该第一预测节点和/或第二预测节点的权重值。
  26. 根据权利要求25所述的点云解码方法,其中,预测节点与待解码节点之间的距离为几何曼哈顿距离或几何欧式距离。
  27. 根据权利要求22所述的点云解码方法,其中,所述按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待解码节点的属性预测值,还包括:
    根据公式
    Figure PCTCN2021099883-appb-100001
    计算待解码节点的属性预测值
    Figure PCTCN2021099883-appb-100002
    其中,
    Figure PCTCN2021099883-appb-100003
    为第一预测节点或第二预测节点的属性重建值,w i为第一预测节点或第二预测节点的权重值,R为第一预测节点和/或第二预测节点构成的集合。
  28. 根据权利要求1所述的点云解码方法,其中,所述方法还包括:
    解析码流,确定待解码节点的残差值;
    根据残差值和属性预测值确定待解码节点的属性重建值。
  29. 一种点云解码装置,其中,所述装置包括:
    节点确定模块,用于解码点云码流,确定与点云对应的至少一个待解码节点;
    第一预测节点确定模块,用于在待解码节点在第一解码顺序中的序号大于等于N的情况下,在与待解码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
    第二预测节点确定模块,用于在确定的第一预测节点的数量小于M1的情况下,在与待解码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一解码顺序中在待解码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待解码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
    属性预测模块,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一 个第二预测节点的属性重建值进行预测,得到待解码节点的属性预测值。
  30. 一种点云解码器,包括处理器和存储器;
    所述存储器用于存储计算机程序;
    所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行如权利要求1-28任一项所述的方法。
  31. 一种点云编码方法,其中,所述方法包括:
    对点云进行划分,得到与点云对应的至少一个待编码节点,其中,待编码节点为对点云进行划分得到的体素单元voxel;
    在待编码节点在第一编码顺序中的序号大于等于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
    若确定的第一预测节点的数量小于M1,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
    根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
  32. 根据权利要求31所述的点云编码方法,其中,所述第一编码顺序和第二节点顺序为莫顿顺序或希尔伯特顺序。
  33. 根据权利要求31所述的点云编码方法,其中,N=3。
  34. 根据权利要求33所述的点云编码方法,其中,所述方法还包括:
    在待编码节点在第一编码顺序中的序号为0的情况下,将待编码点云的属性预测值设置为预设值。
  35. 根据权利要求34所述的点云编码方法,其中,所述预设值为(128,128,128)、(0,0,0)和(255,255,255)中的一个。
  36. 根据权利要求33所述的点云编码方法,其中,所述方法还包括:
    在待编码节点在第一编码顺序中的序号为1的情况下,将在第一编码顺序中序号为0的节点作为第一预测节点;
    根据所述第一预测节点的属性重建值确定待编码节点的属性预测值,其中,待编码节点的属性预测值等于所述第一预测节点的属性重建值。
  37. 根据权利要求33所述的点云编码方法,其中,所述方法还包括:
    在待编码节点在第一编码顺序中的序号为2的情况下,将在第一编码顺序中序号为0和1的节点作为第一预测节点;
    根据所述第一预测节点的属性重建值确定待编码节点的属性预测值,待编码节点的属性预测值设置为等于第一预测节点的属性重建值的加权平均值。
  38. 根据权利要求31所述的点云编码方法,其中,所述多个第一候选节点包括待编码节点的共面节点、待编码节点的共线节点和待编码节点的共点节点中的一个或多个。
  39. 根据权利要求38所述的点云编码方法,其中,所述待编码节点的共面节点包括索引为3、5和6的节点,所述待编码节点的共线节点包括索引为1、2、4、10、12、17、20、33和34的节点,所述待编码节点的共点节点包括索引为1、8、16、24、32、40和48的节点。
  40. 根据权利要求39所述的点云编码方法,其中,所述在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,还包括:
    按照待编码节点的共面节点、待编码节点的共线节点、待编码节点的共点节点的顺序,在第一候选节点中查找不为空、且在待编码节点之前已编码的Q1个节点作为第一预测节点,其中,Q1为小于等于6的正整数。
  41. 根据权利要求31所述的点云编码方法,其中,M1=3。
  42. 根据权利要求31所述的点云编码方法,其中,所述第二候选节点包括在第一编码顺序下在待编码节点之前的P1个节点;
    所述第二候选节点包括在第二节点顺序下在待编码节点之前的P2个节点和在编码节点之后的P3个节点。
  43. 根据权利要求42所述的点云编码方法,其中,P1=8,P2=4,P3=4。
  44. 根据权利要求31所述的点云编码方法,其中,所述第二节点顺序是对点云中的点进行平移处理之后得到的节点的重排序。
  45. 根据权利要求31所述的点云编码方法,其中,进行平移处理的平移向量为(1,1,1)。
  46. 根据权利要求31所述的点云编码方法,其中,所述在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,包括:
    在所述多个第二候选节点中,根据节点与待编码节点之间的距离确定至少一个节点作为第二预测节点。
  47. 根据权利要求46所述的点云编码方法,其中,节点与待编码节点之间的距离为几何曼哈顿距离或几何欧式距离。
  48. 根据权利要求46所述的点云编码方法,其中,所述在所述多个第二候选节点中,根据节点与待编码节点之间的距离确定至少一个节点作为第二预测节点,还包括:
    在所述多个第二候选节点中,确定与待编码节点之间的距离最小的Q2个节点作为第二预测节点,其中,Q2=3。
  49. 根据权利要求46所述的点云编码方法,其中,所述在所述多个第二候选节点中,确定与待编码节点之间的距离最小的至少一个节点作为第二预测节点,还包括:
    在所述多个第二候选节点中,确定与待编码节点之间的距离最小的至少一个节点作为第二预测节点,以使得第二预测节点的数量与第一预测节点的数量的和值为M2,其中,M2为3、4、5或6。
  50. 根据权利要求49所述的点云编码方法,其中,所述方法还包括:
    在第一预测节点的数量和第二预测节点的数量的和值为6的情况下,判断第二候选节点中未被选择的节点中是否存在节点与待编码节点之间的第一距离小于各个第二预测节点中的节点与待编码节点之间的第二距离;
    若存在,将从第二距离对应的预测节点所述第二预测节点中删除,并将第一距离对应的节点添加到所述第二预测节点中。
  51. 根据权利要求31所述的点云编码方法,其中,第一预测节点的数量和第二预测节点的数量的和值小于等于6。
  52. 根据权利要求31所述的点云编码方法,其中,所述根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值,还包括:
    按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待编码节点的属性预测值。
  53. 根据权利要求52所述的点云编码方法,其中,所述预设的权重值为固定值。
  54. 根据权利要求52所述的点云编码方法,其中,针对每一个第一预测节点和/或每一个第二预测节点,根据预测节点与待编码节点之间的位置关系确定该第一预测节点和/或第二预测节点的权重值。
  55. 根据权利要求52所述的点云编码方法,其中,针对每一个第一预测节点和/或每一个第二预测节点,计算与待编码节点之间的距离的倒数,并做该第一预测节点和/或第二预测节点的权重值。
  56. 根据权利要求55所述的点云编码方法,其中,预测节点与待编码节点之间的距离为几何曼哈顿距离或几何欧式距离。
  57. 根据权利要求52所述的点云编码方法,其中,所述按照预设的权重值,对所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行加权平均处理,得到待编码节点的属性预测值,还包括:
    根据公式
    Figure PCTCN2021099883-appb-100004
    计算待编码节点的属性预测值
    Figure PCTCN2021099883-appb-100005
    其中,
    Figure PCTCN2021099883-appb-100006
    为第一预测节点或第二预测节点的属性重建值,w i为第一预测节点或第二预测节点的权重值,R为第一预测节点和/或第二预测节点构成的集合。
  58. 根据权利要求31所述的点云编码方法,其中,所述方法还包括:
    对所述待编码节点的属性预测值进行编码,得到属性码流。
  59. 一种点云编码装置,其中,所述装置包括:
    点云划分模块,用于对点云进行划分,得到与点云对应的至少一个待编码节点,其中,待编码节点为对点云进行划分得到的体素单元voxel;
    第一预测节点确定模块,用于在待编码节点在第一编码顺序中的序号大于等于N的情况下,在与待编码节点对应的多个第一候选节点中,确定至少一个第一预测节点,其中,N为大于等于1的正整数;
    第二预测节点确定模块,用于在确定的第一预测节点的数量小于M1时,在与待编码节点对应的多个第二候选节点中,确定至少一个第二预测节点,其中,所述多个第二候选节点包括在第一编码顺序中在待编码节点之前的至少一个节点、以及与点云对应的第二节点顺序下的在待编码节点之前和/或之后 的至少一个节点,所述第二节点顺序是对点云进行平移处理之后得到的节点的重排序,M1大于1的正整数;
    属性预测模块,用于根据所述至少一个第一预测节点、或所述至少一个第一预测节点和所述至少一个第二预测节点的属性重建值进行预测,得到待编码节点的属性预测值。
  60. 一种点云编码器,包括处理器和存储器;
    所述存储器用于存储计算机程序;
    所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行如权利要求31-58任一项所述的方法。
  61. 一种点云编码系统,包括如权利要求30所述的点云解码器和如权利要求60所述的点云编码器。
  62. 一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至28或31至58任一项所述的方法。
  63. 一种数据流,其中,所述数据流包括根据权利要求31至58任一项所述的点云编码方法所生成属性码流。
PCT/CN2021/099883 2021-06-11 2021-06-11 点云编解码方法、装置、点云编解码器及存储介质 WO2022257150A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2021/099883 WO2022257150A1 (zh) 2021-06-11 2021-06-11 点云编解码方法、装置、点云编解码器及存储介质
CN202180098761.3A CN117426093A (zh) 2021-06-11 2021-06-11 点云编解码方法、装置、点云编解码器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/099883 WO2022257150A1 (zh) 2021-06-11 2021-06-11 点云编解码方法、装置、点云编解码器及存储介质

Publications (1)

Publication Number Publication Date
WO2022257150A1 true WO2022257150A1 (zh) 2022-12-15

Family

ID=84425649

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/099883 WO2022257150A1 (zh) 2021-06-11 2021-06-11 点云编解码方法、装置、点云编解码器及存储介质

Country Status (2)

Country Link
CN (1) CN117426093A (zh)
WO (1) WO2022257150A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190080483A1 (en) * 2017-09-14 2019-03-14 Apple Inc. Point Cloud Compression
CN111405284A (zh) * 2020-03-30 2020-07-10 北京大学深圳研究生院 一种基于点云密度的属性预测方法及设备
CN112218079A (zh) * 2020-08-24 2021-01-12 北京大学深圳研究生院 一种基于空间顺序的点云分层方法、点云预测方法及设备
CN112470469A (zh) * 2020-03-31 2021-03-09 深圳市大疆创新科技有限公司 一种用于点云编码、解码的方法和设备
CN112565794A (zh) * 2020-12-03 2021-03-26 西安电子科技大学 一种点云孤立点编码、解码方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190080483A1 (en) * 2017-09-14 2019-03-14 Apple Inc. Point Cloud Compression
CN111405284A (zh) * 2020-03-30 2020-07-10 北京大学深圳研究生院 一种基于点云密度的属性预测方法及设备
CN112470469A (zh) * 2020-03-31 2021-03-09 深圳市大疆创新科技有限公司 一种用于点云编码、解码的方法和设备
CN112218079A (zh) * 2020-08-24 2021-01-12 北京大学深圳研究生院 一种基于空间顺序的点云分层方法、点云预测方法及设备
CN112565794A (zh) * 2020-12-03 2021-03-26 西安电子科技大学 一种点云孤立点编码、解码方法及装置

Also Published As

Publication number Publication date
CN117426093A (zh) 2024-01-19

Similar Documents

Publication Publication Date Title
US20230164353A1 (en) Point cloud data processing device and processing method
US20220321912A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11601488B2 (en) Device and method for transmitting point cloud data, device and method for processing point cloud data
US20230059625A1 (en) Transform-based image coding method and apparatus therefor
US11910017B2 (en) Method for predicting point cloud attribute, encoder, decoder, and storage medium
WO2022133753A1 (zh) 点云编解码方法与系统、及点云编码器与点云解码器
WO2022257150A1 (zh) 点云编解码方法、装置、点云编解码器及存储介质
WO2023024842A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2024065269A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2022257145A1 (zh) 点云属性的预测方法、装置及编解码器
WO2024065271A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2024065272A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2022188582A1 (zh) 点云中邻居点的选择方法、装置及编解码器
WO2024065270A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2023024840A1 (zh) 点云编解码方法、编码器、解码器及存储介质
WO2022140937A1 (zh) 点云编解码方法与系统、及点云编码器与点云解码器
WO2023173238A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
US20230334719A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2024011381A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2022257143A1 (zh) 帧内预测、编解码方法及装置、编解码器、设备、介质
WO2023123284A1 (zh) 一种解码方法、编码方法、解码器、编码器及存储介质
US20230412837A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
WO2023103565A1 (zh) 点云属性信息的编解码方法、装置、设备及存储介质
US20240020885A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
US20230345008A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202180098761.3

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE