Method, apparatus and codec for predicting point cloud attributes

By predicting attribute information by finding the nearest decoded point in the point cloud, the problem of poor point cloud prediction accuracy in existing technologies is solved, and the transmission and storage efficiency of point cloud data is improved.

CN118075464BActive Publication Date: 2026-02-06GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202410165643.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-06-11
Publication Date
2026-02-06
Estimated Expiration
2041-06-11

AI Technical Summary

Technical Problem

Existing point cloud prediction methods have poor accuracy, resulting in low efficiency in point cloud data transmission and storage.

Method used

By determining the reference point search range of the point to be decoded in the point cloud and finding the nearest decoded point, the attribute information of the point to be decoded is predicted using the attribute information of the reference point.

Benefits of technology

It improves the accuracy of point cloud attribute prediction, simplifies the prediction process, and reduces the burden of data transmission and storage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118075464B_ABST
    Figure CN118075464B_ABST
Patent Text Reader

Abstract

The application provides a point cloud attribute prediction method and device and a codec. The method comprises: obtaining a reconstructed value of attribute information of a decoded point of a point cloud; when an index of a to-be-decoded point in the point cloud is greater than N, determining a reference point search range of the to-be-decoded point from the decoded points of the point cloud; searching for at least one reference point closest to the to-be-decoded point in the reference point search range; and determining a prediction value of attribute information of the to-be-decoded point according to the reconstructed value of the attribute information of the at least one reference point. That is, in the application, the distance between the reference point and the to-be-decoded point is considered in the global search method to determine the reference point, so that the determined reference point is the decoded point closest to the to-be-decoded point in terms of spatial distance. When attribute prediction is performed based on the attribute information of the at least one reference point closest to the to-be-decoded point in terms of spatial distance, the accuracy of attribute prediction can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of PCT International Patent Application No. PCT / CN2021 / 099872, filed on June 11, 2021, entitled "Point Cloud Attribute Prediction Method, Apparatus and Codec", which entered the Chinese national phase as Chinese Patent Application No. 202180098263.9. TECHNICAL FIELD

[0002] The present application relates to the technical field of point cloud, in particular to a point cloud attribute prediction method, apparatus and codec. BACKGROUND

[0003] An object surface is collected by a collection device to form point cloud data, which includes hundreds of thousands or even more points. In a video production process, the point cloud data is transmitted in the form of a point cloud media file between a point cloud encoding device and a point cloud decoding device. However, such a large number of points poses a challenge to transmission, and therefore the point cloud encoding device needs to compress the point cloud data before transmission.

[0004] Currently, prediction is used to reduce or eliminate redundant information in point cloud data to achieve compression of the point cloud data. However, the current point cloud prediction accuracy is poor. SUMMARY

[0005] The embodiments of the present application provide a point cloud attribute prediction method, apparatus and codec to improve the prediction accuracy of point cloud.

[0006] In a first aspect, the embodiments of the present application provide a point cloud attribute prediction method, comprising:

[0007] decoding a point cloud bitstream to obtain a reconstructed value of attribute information of a decoded point of the point cloud;

[0008] For a to-be-decoded point in the point cloud, when an index of the to-be-decoded point is greater than N, determining a reference point search range of the to-be-decoded point from the decoded points of the point cloud, wherein the index of the to-be-decoded point is an order of the to-be-decoded point in an attribute decoding order, and N is a positive integer;

[0009] finding at least one reference point closest to the to-be-decoded point in the reference point search range;

[0010] determining a prediction value of attribute information of the to-be-decoded point according to the reconstructed value of attribute information of the at least one reference point.

[0011] In a second aspect, the present application provides a point cloud attribute prediction method, comprising:

[0012] obtaining a reconstructed value of attribute information of an encoded point of a point cloud;

[0013] For a to-be-encoded point in the point cloud, when an index of the to-be-encoded point is greater than N, a reference point searching range of the to-be-encoded point is determined from the encoded points of the point cloud, where the index of the to-be-encoded point is an order of the to-be-encoded point in an attribute encoding order, and N is a positive integer;

[0014] At least one reference point closest to the to-be-encoded point is searched in the reference point searching range.

[0015] A prediction value of attribute information of the to-be-encoded point is determined according to a reconstruction value of the attribute information of the at least one reference point.

[0016] In a third aspect, a point cloud attribute prediction apparatus is provided, configured to perform the method in the first aspect or each implementation manner thereof. Specifically, the apparatus includes functional units configured to perform the method in the first aspect or each implementation manner thereof.

[0017] In a fourth aspect, a point cloud attribute prediction apparatus is provided, configured to perform the method in the second aspect or each implementation manner thereof. Specifically, the apparatus includes functional units configured to perform the method in the second aspect or each implementation manner thereof.

[0018] In a fifth aspect, a point cloud decoder is provided, including a processor and a memory. The memory is configured to store a computer program, and the processor is configured to invoke and run the computer program stored in the memory to perform the method in the first aspect or each implementation manner thereof.

[0019] In a sixth aspect, a point cloud decoder is provided, including a processor and a memory. The memory is configured to store a computer program, and the processor is configured to invoke and run the computer program stored in the memory to perform the method in the second aspect or each implementation manner thereof.

[0020] In a seventh aspect, a chip is provided, configured to implement the method in any one of the first aspect to the second aspect or each implementation manner thereof. Specifically, the chip includes a processor configured to invoke and run a computer program from a memory, so that a device installed with the chip performs the method in any one of the first aspect to the second aspect or each implementation manner thereof.

[0021] In an eighth aspect, a computer readable storage medium is provided, configured to store a computer program, which causes a computer to perform the method in any one of the first aspect to the second aspect or each implementation manner thereof.

[0022] In a ninth aspect, a computer program product is provided, including computer program instructions, which cause a computer to perform the method in any one of the first aspect to the second aspect or each implementation manner thereof.

[0023] In a tenth aspect, a computer program is provided, which, when running on a computer, causes the computer to perform the method of any one of the first aspect to the second aspect or the implementation manners thereof.

[0024] According to the above technical solution, the reconstruction value of the attribute information of the decoded point of the point cloud is obtained; for a to-be-decoded point in the point cloud, when the index of the to-be-decoded point is greater than N, the reference point search range of the to-be-decoded point is determined from the decoded points of the point cloud; at least one reference point closest to the to-be-decoded point is searched in the reference point search range; and the prediction value of the attribute information of the to-be-decoded point is determined according to the reconstruction value of the attribute information of the at least one reference point. That is, in the determination of the reference point, the distance between the reference point and the to-be-decoded point is considered by using the global search method, so that the at least one reference point determined is the decoded point closest in spatial distance to the to-be-decoded point. Since the attribute information of the points close in spatial distance in the point cloud has strong correlation, when the attribute information of the reference point closest in spatial distance to the to-be-decoded point is used for attribute prediction, the accuracy of attribute prediction can be improved. BRIEF DESCRIPTION OF DRAWINGS

[0025] Figure 1A is a schematic diagram of a three-dimensional point cloud image;

[0026] Figure 1B is a local enlarged schematic diagram of a three-dimensional point cloud image;

[0027] Figure 2 is a schematic block diagram of a point cloud coding system related to an embodiment of the present application;

[0028] Figure 3 is a schematic block diagram of a point cloud encoder provided by an embodiment of the present application;

[0029] Figure 4 is a schematic block diagram of a point cloud decoder provided by an embodiment of the present application;

[0030] Figure 5A is a schematic diagram of a bounding box of a point cloud;

[0031] Figure 5B is a schematic diagram of another bounding box of a point cloud;

[0032] Figure 6A is a schematic diagram of a Morton order;

[0033] Figure 6B is a schematic diagram of a Morton order;

[0034] Figure 6C is a schematic diagram of a Morton order;

[0035] Figure 6Dis a schematic diagram of a Morton order;

[0036] Figure 7 is a schematic diagram of a flow of a point cloud attribute prediction method according to an embodiment of the present application;

[0037] Figure 8 is a schematic diagram of a flow of a point cloud decoding method according to an embodiment of the present application;

[0038] Figure 9 is a schematic diagram of a flow of a point cloud attribute prediction method according to an embodiment of the present application;

[0039] Figure 10 is a schematic diagram of a flow of a point cloud encoding method according to an embodiment of the present application;

[0040] Figure 11 is a schematic block diagram of a point cloud attribute prediction apparatus according to an embodiment of the present application;

[0041] Figure 12 is a schematic block diagram of a point cloud attribute prediction apparatus according to an embodiment of the present application;

[0042] Figure 13 is a schematic block diagram of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0043] The present application can be applied to the field of point cloud upsampling, for example, can be applied to the field of point cloud compression.

[0044] In order to facilitate understanding of the embodiments of the present application, first, the related concepts involved in the embodiments of the present application are briefly introduced as follows:

[0045] Point cloud (Point Cloud) refers to a set of discrete points that are irregularly distributed in space, express the spatial structure and surface attributes of a three-dimensional object or a three-dimensional scene, for example Figure 1A the three-dimensional point cloud image shown in FIG. 1, and Figure 1B the point cloud image shown in FIG. 2, which is locally enlarged in FIG. 1, can be seen that the point cloud surface is composed of densely distributed points. Figure 1A

[0046] ​Point Cloud Data is a specific record form of point cloud. The points in the point cloud can include position information of the points and attribute information of the points. For example, the position information of the points can be three-dimensional coordinate information of the points. The position information of the points can also be referred to as geometric information of the points. For example, the attribute information of the points can include color information and / or reflectivity, etc. For example, the color information can be information on any color space. For example, the color information can be (RGB). For another example, the color information can be YcbCr (YUV) information. For example, Y represents brightness (Luma), Cb (U) represents blue color difference, Cr (V) represents red, and U and V represent chroma (Chroma) for describing color difference information. For example, the points in the point cloud obtained according to a laser measurement principle can include three-dimensional coordinate information of the points and laser reflectance of the points. For another example, the points in the point cloud obtained according to a photogrammetry principle can include three-dimensional coordinate information of the points and color information of the points. For another example, the points in the point cloud obtained by combining the laser measurement and the photogrammetry principle can include three-dimensional coordinate information of the points, laser reflectance of the points and color information of the points.

[0047] The point cloud can be divided into dense point cloud and sparse point cloud according to the acquisition approach.

[0048] The point cloud can be divided into the following types according to the time sequence of data:

[0049] The first type of static point cloud: the object is static, and the device for acquiring the point cloud is also static.

[0050] The second type of dynamic point cloud: the object is moving, but the device for acquiring the point cloud is static.

[0051] The third type of dynamic point cloud: the device for acquiring the point cloud is moving.

[0052] The point cloud can be divided into two categories according to the use:

[0053] Category one: machine perception point cloud, which can be used in autonomous navigation system, real-time inspection system, geographic information system, visual sorting robot, rescue robot, etc.

[0054] Category two: human eye perception point cloud, which can be used in digital cultural heritage, free-view broadcast, three-dimensional immersive communication, three-dimensional immersive interaction, etc.

[0055] Point cloud can flexibly and conveniently express the spatial structure and surface attribute of three-dimensional object or scene, and can provide strong reality due to being obtained by directly sampling real object under the premise of ensuring accuracy, and thus is widely applied, including virtual reality game, computer aided design, geographic information system, automatic navigation system, digital cultural heritage, free viewpoint broadcast, three-dimensional immersive remote presentation, three-dimensional reconstruction of biological tissue and organ, etc.

[0056] The acquisition approach of point cloud data can include but is not limited to at least one of the following: (1) computer device generation. The computer device can generate point cloud data according to virtual three-dimensional object and virtual three-dimensional scene; (2) 3D (3-Dimension, three-dimensional) laser scanning acquisition. The point cloud data of static real world three-dimensional object or three-dimensional scene can be acquired through 3D laser scanning, and million-level point cloud data can be acquired per second; (3) 3D photogrammetry acquisition. The point cloud data of real world visual scene can be acquired by collecting the real world visual scene through 3D photographic equipment (i.e. a group of cameras or camera equipment with multiple lenses and sensors), and the point cloud data of dynamic real world three-dimensional object or three-dimensional scene can be acquired through 3D photogrammetry; (4) acquiring point cloud data of biological tissue and organ through medical equipment. In the medical field, the point cloud data of biological tissue and organ can be acquired through medical equipment such as magnetic resonance imaging (Magnetic Resonance Imaging, MRI), computed tomography (Computed Tomography, CT) and electromagnetic positioning information.

[0057] These technologies reduce the cost and time period of point cloud data acquisition, and improve the accuracy of data. The change of point cloud data acquisition method makes it possible to acquire a large amount of point cloud data, and with the growth of application demand, the processing of massive 3D point cloud data encounters the bottleneck of storage space and transmission bandwidth limitation.

[0058] Taking a point cloud video with a frame rate of 30 fps (frames per second) as an example, the number of points of each frame of point cloud is 700,000, each point has coordinate information xyz (float) and color information RGB (uchar), and the data volume of a 10s point cloud video is about 0.7 million · (4 Byte · 3 + 1 Byte · 3) · 30 fps · 10s = 3.15 GB, while the YUV sampling format is 4:2:0, the frame rate of a 1280*720 two-dimensional video is 24 fps, and the data volume of a 10s video is about 1280*720*12bit*24frames*10s = 0.33 GB, and the data volume of a 10s two-view 3D video is about 0.33*2 = 0.66 GB. As can be seen, the data volume of the point cloud video far exceeds that of the two-dimensional video and the three-dimensional video of the same length. Therefore, in order to better realize data management, save server storage space, and reduce transmission flow and transmission time between the server and the client, point cloud compression has become a key problem to promote the development of the point cloud industry.

[0059] Point cloud compression generally includes compression of point cloud geometry information and attribute information. The related knowledge of point cloud compression is introduced below.

[0060] Figure 2 A schematic block diagram of a point cloud coding system related to an embodiment of the present application is shown. It should be noted that, Figure 2 This is only an example, and the point cloud coding system of the embodiment of the present application includes but is not limited to Figure 2 As shown in the figure, Figure 2 As shown in the figure, the point cloud coding system 100 includes an encoding device 110 and a decoding device 120. The encoding device is used to encode (which can be understood as compress) point cloud data 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.

[0061] The encoding device 110 of the embodiment of the present application can be understood as a device with point cloud encoding function, and the decoding device 120 can be understood as a device with point cloud decoding function, that is, the encoding device 110 and the decoding device 120 of the embodiment of the present application include more general apparatuses, such as smart phones, desktop computers, mobile computing devices, notebook (for example, laptop) computers, tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, point cloud game consoles, vehicle-mounted computers, etc.

[0062] In some embodiments, the encoding device 110 can transmit the encoded point cloud data (such as a code stream) to the decoding device 120 via a channel 130. The channel 130 can include one or more media and / or devices capable of transmitting the encoded point cloud data from the encoding device 110 to the decoding device 120.

[0063] In one example, the channel 130 includes one or more communication media that enable the encoding device 110 to transmit the encoded point cloud data directly to the decoding device 120 in real time. In this example, the encoding device 110 can modulate the encoded point cloud data according to a communication standard and transmit the modulated point cloud data to the decoding device 120. Where the communication media includes wireless communication media, such as radio frequency spectrum, the communication media can optionally also include wired communication media, such as one or more physical transmission lines.

[0064] In another example, the channel 130 includes a storage medium that can store the encoded point cloud data from the encoding device 110. The storage medium includes various local access data storage media, such as optical, DVD, flash memory, etc. In this example, the decoding device 120 can retrieve the encoded point cloud data from the storage medium.

[0065] In another example, the channel 130 can include a storage server that can store the encoded point cloud data from the encoding device 110. In this example, the decoding device 120 can download the stored encoded point cloud data from the storage server. Optionally, the storage server can store and transmit the encoded point cloud data to the decoding device 120, such as a web server (e.g., for a website), a file transfer protocol (FTP) server, etc.

[0066] In some embodiments, the encoding device 110 includes the point cloud encoder 112 and an output interface 113. The output interface 113 can include a modulator / demodulator (modem) and / or a transmitter.

[0067] In some embodiments, the encoding device 110 includes the point cloud encoder 112 and an output interface 113. The output interface 113 can include a modulator / demodulator (modem) and / or a transmitter.

[0068] The point cloud source 111 can include at least one of a point cloud acquisition device (e.g., a scanner), a point cloud archive, a point cloud input interface for receiving point cloud data from a point cloud content provider, and a computer graphics system for generating point cloud data.

[0069] The point cloud encoder 112 encodes the point cloud data from the point cloud source 111 to generate a bitstream. The point cloud encoder 112 transmits the encoded point cloud data directly 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 later retrieval by the decoding device 120.

[0070] In some embodiments, the decoding device 120 includes an input interface 121 and a point cloud decoder 122.

[0071] In some embodiments, the decoding device 120 can include a display device 123 in addition to the input interface 121 and the point cloud decoder 122.

[0072] The input interface 121 can include a receiver and / or a modem. The input interface 121 can receive the encoded point cloud data through the channel 130.

[0073] The point cloud decoder 122 decodes the encoded point cloud data to obtain decoded point cloud data and transmits the decoded point cloud data to the display device 123.

[0074] The display device 123 displays the decoded point cloud data. The display device 123 can be integrated with the decoding device 120 or external to the decoding device 120. The display device 123 can 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.

[0075] In addition, Figure 2 For example only, the technical solutions of the embodiments of the present application are not limited to Figure 2 For example, the techniques of the present application can also be applied to one-sided point cloud encoding or one-sided point cloud decoding.

[0076] Current point cloud encoders or point cloud decoders can use the geometry-based point cloud compression (G-PCC) coding framework provided by the Moving Picture Experts Group (MPEG) or the video-based point cloud compression (V-PCC) coding framework, or the AVS-PCC coding framework provided by the Audio Video Standard (AVS). G-PCC and AVS-PCC are both for static sparse point clouds, and their coding frameworks are roughly the same. The G-PCC coding framework can be used for compression of the first static point cloud and the third type of dynamically acquired point cloud, and the V-PCC coding framework can be used for compression of the second type of dynamic point cloud. The G-PCC coding framework is also referred to as point cloud codec TMC13, and the V-PCC coding framework is also referred to as point cloud codec TMC2. The point cloud compression framework also includes the Point Cloud Reference Model (PCRM).

[0077] The point cloud encoder and the point cloud decoder to which the embodiments of the present application can be applied will be described below with the PCRM coding framework as an example.

[0078] Figure 3 is a schematic block diagram of a point cloud encoder provided by an embodiment of the present application.

[0079] As known from the above, the points in the point cloud can include position information of the points and attribute information of the points, and therefore, the encoding of the points in the point cloud mainly includes position encoding and attribute encoding. In some examples, the position information of the points in the point cloud is also referred to as geometry information, and the position encoding of the points in the point cloud corresponding to the geometry information can also be referred to as geometry encoding.

[0080] At the encoding end, the geometry information of the point cloud is first encoded in the geometry encoding part, and then the reconstructed geometry information is input into the attribute encoding part as additional information to assist the compression of the attributes of the point cloud. The entire encoder is composed of a preprocessing part, a geometry encoding part, and an attribute encoding part.

[0081] The process of position encoding includes: first, preprocessing the original geometry information, for example, normalizing the geometry origin to the minimum position in the point cloud space through coordinate translation, and converting the geometry information from a floating-point number to an integer through coordinate quantization, to facilitate subsequent regularization processing. Next, the regularized geometry information is subjected to geometry encoding, for example, the point cloud space is recursively divided using an octree structure, each time the current node is divided into eight sub-blocks of the same size, and it is determined whether each sub-block contains points or not, when the sub-block does not contain points, it is recorded as empty, otherwise it is recorded as non-empty, and the occupancy code word information of all blocks in the last layer of recursive division is recorded and encoded. The geometry information expressed through the octree structure is input into a geometry entropy encoder to form a geometry bitstream on the one hand, and is subjected to geometry reconstruction processing in the encoder on the other hand, and the reconstructed geometry information is input into the attribute encoding part as additional information.

[0082] The process of attribute encoding includes: first, preprocessing the original attribute information, since the geometry information has changed after geometry encoding, it is necessary to reassign attribute values to each point after geometry encoding, this process is called attribute recoloring, in addition, if the processed attribute information is color information, it is also necessary to perform color space transformation on the original color to convert it into a YUV color space that is more consistent with the visual characteristics of the human eye. Next, the attribute information after preprocessing is subjected to attribute encoding, which first needs to reorder the point cloud, for example, using a Morton code, and therefore the traversal order of attribute encoding is the Morton order, and the attribute prediction method in PCRM is a single-point prediction based on the Morton order, that is, a point found by backtracking one point from the current to-be-encoded point in the Morton order is the prediction reference point of the current to-be-encoded point. Then, the attribute prediction value of the current to-be-encoded point is determined according to the reconstructed attribute value of the prediction reference point, and the attribute residual is the difference between the attribute value of the current to-be-encoded point and the attribute prediction value; finally, the residual is quantized, and the quantized residual is input into an attribute entropy encoder to form an attribute bitstream.

[0083] The following describes the units in the point cloud encoder shown in Figure 3

[0084] As shown in Figure 3 The position encoding can be implemented by the following units:

[0085] The coordinate translation unit 201, the coordinate quantization unit 202, the octree construction unit 203, the geometry reconstruction unit 204, and the geometry entropy encoding unit 205.

[0086] The coordinate translation unit 201 can be used to transform the world coordinates of the points in the point cloud into relative coordinates. For example, the geometric coordinates of the points are subtracted by the minimum values of the xyz coordinate axes, which is equivalent to a direct current operation, to convert the coordinates of the points in the point cloud from world coordinates to relative coordinates.

[0087] The coordinate quantization unit 202 can reduce the number of coordinates by quantization; after quantization, points that were originally different may be assigned the same coordinates, and based on this, repeated points can be deleted by a deduplication operation; for example, multiple clouds with the same quantized position and different attribute information can be merged into one cloud by attribute conversion. Coordinate quantization can convert geometric information from floating-point numbers to integers, facilitating subsequent regularization processing. In some embodiments of the present application, the coordinate quantization unit 202 is an optional unit module.

[0088] The octree construction unit 203 can encode the position information of the quantized points using an octree encoding method. For example, the point cloud is divided according to the octree form, whereby the positions of the points can correspond one-to-one with the positions of the octrees, and the positions of the points in the octrees are counted and marked as 1 to perform geometric coding.

[0089] The geometry reconstruction unit 204 can perform position reconstruction based on the position information output by the octree construction unit 203 to obtain the reconstructed values of the position information of the points in the point cloud data.

[0090] The geometry entropy encoding unit 205 can use an entropy encoding method to perform arithmetic encoding on the position information output by the octree construction unit 203, i.e., using an arithmetic encoding method to generate a geometry bitstream from the position information output by the octree construction unit 203; the geometry bitstream can also be referred to as a geometry bitstream.

[0091] The attribute encoding can be implemented by the following units:

[0092] The transform colors unit 210, the attribute recoloring unit 211, the attribute prediction unit 212, the quantization unit 213, and the attribute entropy encoding unit 214.

[0093] ​It is noted that the point cloud encoder 200 can include more, less, or different functional components. Figure 3

[0094] The color space conversion unit 210 can be configured to convert the RGB color space of the points in the point cloud to YCbCr format or other formats.

[0095] The attribute re-colorization unit 211 needs to re-allocate attribute values for each point after the geometry encoding due to the change of the geometry information after the geometry encoding. This process is called attribute re-colorization.

[0096] The attribute prediction unit 212 can include Region Adaptive Hierarchical Transform (RAHT), predicting transform, and lifting transform, etc. In other words, any one of the RAHT, predicting transform, and lifting transform 214 can be configured to predict the attribute information of the points in the point cloud to obtain a predicted value of the attribute information of the points, and then obtain a residual value of the attribute information of the points based on the predicted value of the attribute information of the points. For example, the residual value of the attribute information of the points can be the original value of the attribute information of the points minus the predicted value of the attribute information of the points.

[0097] In an embodiment of the present application, the attribute prediction unit 212 can also be configured to generate a level of detail (LOD). The process of generating the LOD includes: obtaining the Euclidean distance between points according to the position information of the points in the point cloud; and dividing the points into different levels of detail according to the Euclidean distance. In an embodiment, the Euclidean distance can be sorted, and different ranges of Euclidean distance can be divided into different levels of detail. For example, a point can be randomly selected as the first level of detail. Then, the Euclidean distance between the remaining points and the point is calculated, and the points whose Euclidean distance meets the first threshold requirement are classified into the second level of detail. The centroid of the points in the second level of detail is obtained, the Euclidean distance between the points other than the first and second levels of detail and the centroid is calculated, and the points whose Euclidean distance meets the second threshold requirement are classified into the third level of detail. In this way, all points are classified into levels of detail. By adjusting the threshold of the Euclidean distance, the number of points in each LOD layer can be increased. It should be understood that other ways of dividing the LOD can also be used, which are not limited in the present application.

[0098] It is noted that the point cloud can be directly divided into one or more levels of detail, or the point cloud can be first divided into multiple point cloud slices, and then each point cloud slice can be divided into one or more LOD layers.

[0099] ​For example, a point cloud can be divided into multiple point cloud chunks, each containing between 550,000 and 1,100,000 points. Each point cloud chunk can be viewed as a separate point cloud. Each point cloud chunk can also be divided into multiple detail representation layers, each containing multiple points. In one embodiment, the detail representation layers can be divided based on the Euclidean distance between the points.

[0100] The quantization unit 213 can be used to quantize the residual values ​​of the attribute information of the points. For example, if the quantization unit 213 is connected to the attribute prediction unit 212, the quantization unit 213 can be used to quantize the residual values ​​of the attribute information of the points output by the attribute prediction unit 212. For example, the residual values ​​of the attribute information of the points output by the attribute prediction unit 212 can be quantized using a quantization step size to improve system performance.

[0101] The attribute entropy coding unit 214 can use zero-run-length coding to entropy code the residual values ​​of the attribute information of the points to obtain the attribute bitstream. The attribute bitstream can be bitstream information.

[0102] Figure 4 This is a schematic block diagram of the point cloud decoder provided in the embodiments of this application.

[0103] like Figure 4 As shown, the decoder 300 can acquire the point cloud bitstream from the encoding device and obtain the position and attribute information of the points in the point cloud through the parsing code. Point cloud decoding includes position decoding and attribute decoding.

[0104] The location decoding process includes: first, entropy decoding of the geometric bitstream to obtain the geometric information of each node; then, constructing an octree structure in the same way as geometric encoding; and reconstructing the geometric information expressed by the octree structure after coordinate transformation by combining the decoded geometry. On the one hand, the information is dequantized and detranslated to obtain the decoded geometric information, and on the other hand, it is input into the attribute decoder as additional information.

[0105] The attribute decoding process includes: constructing the Morton sequence in the same way as the encoding end; first, performing entropy decoding on the attribute bitstream to obtain the quantized residual information; then performing inverse quantization to obtain the point cloud residual. Following the same method as attribute encoding, the attribute prediction value of the current point to be decoded is obtained; then, the attribute prediction value is added to the residual value to recover the YUV attribute value of the current point to be decoded. Finally, the decoded attribute information is obtained through inverse color space transformation.

[0106] like Figure 4 As shown, position decoding can be implemented using the following unit:

[0107] The geometric entropy decoding unit 301, the octree construction unit 302, the coordinate inverse quantization unit 303, and the coordinate inverse translation unit 304 are included.

[0108] Attribute encoding can be implemented through the following units:

[0109] The system includes an attribute entropy decoding unit 310, an inverse quantization unit 311, a prediction unit 312, and an inverse color space conversion unit 313.

[0110] It should be noted that decompression is the reverse process of compression. Similarly, the functions of each unit in the decoder 300 can be found in the functions of the corresponding units in the encoder 200. Additionally, the point cloud decoder 300 may contain more than... Figure 4 More, fewer, or different functional components.

[0111] For example, decoder 300 can divide the point cloud into multiple Levels of Distance (LODs) based on the Euclidean distance between points in the point cloud; then, it sequentially decodes the attribute information of the points in the LODs; for example, it calculates the number of zeros (zero_cnt) in zero-run-length coding to decode the residuals based on zero_cnt; next, decoding framework 200 can perform inverse quantization based on the decoded residual values, and add the inverse quantized residual value to the predicted value of the current point to obtain the reconstructed value of the point cloud, until all point clouds are decoded. The current point will be used as the nearest neighbor point in subsequent LODs, and the reconstructed value of the current point will be used to predict the attribute information of subsequent points.

[0112] The above describes the basic process of a point cloud codec based on the PCRM codec framework. With the development of technology, some modules or steps of this framework or process may be optimized. This application applies to the basic process of the point cloud codec based on the PCRM codec framework, but is not limited to this framework and process.

[0113] The following section introduces the process of regularizing point clouds.

[0114] The irregular spatial distribution of point clouds presents challenges to the encoding process. Therefore, a recursive octree structure is adopted to represent the points in the point cloud as the centers of a cube in a regularized manner. For example... Figure 5A First, place the entire point cloud within a cube-shaped bounding box. The coordinates of the center point of the point cloud are represented as (x, y, y). k ,y k ,z k ), k = 0, ..., K-1, where K is the total number of points in the point cloud, and the boundary values ​​of the point cloud in the x, y, and z directions are respectively:

[0115] x min =min(x0 x 1 ,…,x K-1 )

[0116] y min =min(y 0 ,y 1 ,…,y K-1 )

[0117] z min =min(z 0 ,z 1 ,…,z K-1 )

[0118] x max =max(x 0 ,x 1 ,…,x K-1 )

[0119] y max =max(y 0 ,y 1 ,…,y K-1 )

[0120] z max =max(z 0 ,z 1 ,…,z K-1 )

[0121] Then the origin (x origin ,y origin ,z origin ) of the bounding box can be calculated as follows:

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

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

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

[0125] The size of the bounding box in x, y, z directions can be calculated as follows:

[0126] BoudingBoxSize x =int(x max -x origin )+1

[0127] BoudingBoxSize y =int(y max-y origin )+1

[0128] BoudingBoxSize z =int(z max -z origin )+1

[0129] Next, as Figure 5B As shown, the bounding box is first divided into octrees, resulting in eight sub-blocks each time. Then, the non-empty blocks (blocks containing points) in the sub-blocks are divided into octrees again. This process is repeated recursively until a certain depth is reached. The non-empty sub-blocks of the final size are called voxels. Each voxel contains one or more points. The geometric positions of these points are normalized to the center point of the voxel. The attribute value of the center point is the average of the attribute values ​​of all points in the voxel.

[0130] Regularizing point clouds into blocks in space is beneficial for describing the relationships between points in the point cloud, and thus can express a specific encoding order. Each voxel is encoded in a certain order, that is, the point (or "node") represented by the voxel is encoded. A commonly used encoding order is the cross-separated Morton order. Figure 6A to Figure 6C The encoding order of Merton codes in two-dimensional space is shown, taking an 8*8 block as an example, where the order of the arrows indicates the encoding order of the points under the Merton order. Figure 6A This is a schematic diagram of the Morton sequence in a 2x2 pixel "z" shape within the block. Figure 6B This is a schematic diagram of the "Z"-shaped Morton sequence between four 2x2 blocks. Figure 6C The diagram illustrates the Morton sequence in a zigzag pattern between four 4x4 blocks, forming the entire 8x8 block Morton sequence. The Morton sequence extended to three-dimensional space is as follows... Figure 6D As shown, Figure 6D The image shows 16 nodes. The Morton order within each "z" and between each "z" is encoded first along the x-axis, then along the y-axis, and finally along the z-axis.

[0131] This application's embodiments relate to the attribute prediction part of point cloud compression. During attribute prediction, it is first necessary to determine the prediction reference point for the current point, and then determine the predicted value of the attribute information for the current point based on the attribute information of the prediction reference point.

[0132] In some embodiments, a prediction reference point for the current point is selected based on the geometric relationships between points in the point cloud, for example, from coded points that are geometrically coplanar, collinear, or concurrent with the current point. That is, the prediction reference point for the current point must satisfy the following two conditions:

[0133] Condition 1: It satisfies the coplanar, collinear, and concurrent relationships with the current node;

[0134] Condition 2, the encoding is completed before the current point.

[0135] For example, assuming that the serial number of the current point O is 7, there are 6 faces, 12 edges and 8 points, assuming that the coplanar nodes of the current point O are 3, 5, 6, 14, 21 and 35, assuming that the collinear nodes of the current point O are 1, 2, 4, 10, 12, 17, 20, 28, 33, 34, 42 and 49, and assuming that the copoint nodes of the current point O are 0, 8, 16, 24, 32, 40, 48 and 56.

[0136] Among the above-mentioned encoded points coplanar with the current point, the collinear points with the current point and the copoint points with the current point, the prediction reference point of the current point is generated from the above-mentioned coplanar points 3, 5 and 6, the collinear points 1, 2, 4, 10, 12, 17, 20, 33 and 34, and the copoint points 0, 8, 16, 24, 32, 40 and 48.

[0137] It can be known from the above-mentioned embodiment that the process of determining the prediction reference point of the current point is complex, since the adjacent points in the point cloud usually have similar attribute information, but the prediction reference point selected by the embodiment is not necessarily the point closest to the current point, thereby causing the attribute prediction of the current point to be inaccurate.

[0138] In order to solve the above-mentioned technical problem, the embodiment of the present application provides a point cloud attribute prediction method, which queries at least one point closest to the current point from the encoded points of the current point as the prediction reference point of the current point, thereby ensuring that the prediction reference point is the point closest to the current point, so that the prediction value of the attribute information of the current point can be accurately determined according to the attribute information of the prediction reference point closest to the current point, thereby improving the accuracy of the point cloud attribute prediction, and the whole prediction process is simple and easy to implement.

[0139] The point cloud attribute prediction method related to the embodiment of the present application will be introduced below in combination with specific embodiments.

[0140] First, taking the decoding end as an example.

[0141] Figure 7 The flowchart of the point cloud attribute prediction method provided by the embodiment of the present application, the execution subject of the embodiment of the present application can be the decoder shown in the above-mentioned Figure 4 decoder, or part of the elements in the decoder. As shown in the above-mentioned Figure 7 the point cloud attribute prediction method comprises:

[0142] S701, decode the point cloud code stream to obtain a reconstructed value of attribute information of a decoded point of the point cloud.

[0143] The point cloud code stream includes an attribute code stream and a geometry code stream, decoding the geometry code stream can obtain geometry information of the point cloud, and decoding the attribute code stream can obtain attribute information of the point cloud.

[0144] Specifically, as shown in the figure, Figure 4 geometry entropy decoding is performed on the geometry code stream to obtain geometry information of each point in the point cloud, and an octree reconstruction is constructed based on the decoded geometry information of the point cloud, for example, the space of the point cloud is recursively divided by using an octree structure, each time the current block is divided into eight sub-blocks of the same size, and the geometry information expressed by the octree structure of the point cloud is obtained. After inverse quantization and inverse transformation are performed on the geometry information expressed by the octree structure, the reconstructed value of the geometry information of the point cloud is obtained and output. On the other hand, the reconstructed value of the geometry information of the point cloud is input into the attribute decoding part of the point cloud to participate in the attribute decoding of the point cloud, and the reconstructed value of the attribute information of the decoded point in the point cloud is obtained.

[0145] S702, for a to-be-decoded point in the point cloud, when an index of the to-be-decoded point is greater than N, a reference point search range of the to-be-decoded point is determined from the decoded points of the point cloud.

[0146] The index of the to-be-decoded point is the order of the to-be-decoded point in the attribute decoding order, and N is a positive integer.

[0147] In the attribute decoding of the point cloud, the attribute information of the points in the point cloud is decoded according to the attribute decoding order of the point cloud.

[0148] The embodiment of the present application does not limit the specific form of the attribute decoding order of the point cloud, which can be determined according to actual needs.

[0149] In an example, the attribute decoding order of the point cloud described above can be a Morton order. The Morton code can convert multi-dimensional data into one-dimensional data coding, and the accuracy of the multi-dimensional data can be determined according to the number of one-dimensional coding bits, which is a commonly used compression coding method, and the coding and decoding order is according to the spatial z sequence.

[0150] In an example, the attribute decoding order of the point cloud described above can be a Hilbert order. The Hilbert order is also called a Hilbert curve, which is a method of converting multi-dimensional space into one-dimensional space and well preserving the spatial proximity.

[0151] In an example, the attribute decoding order of the point cloud can also be decoding along the y direction first, then along the x direction, and finally along the z direction; or decoding along the y direction first, then along the z direction, and finally along the x direction; or decoding along the x direction first, then along the z direction, and finally along the y direction; or decoding along the z direction first, then along the x direction, and finally along the y direction; or decoding along the z direction first, then along the y direction, and finally along the x direction.

[0152] It should be noted that the above is only a specific example of the two attribute decoding orders related by the embodiments of the present application, and the attribute decoding order of the embodiments of the present application includes but is not limited to the above two.

[0153] It should be noted that the above to-be-decoded point can also be referred to as a current point, or a current to-be-decoded point, or a current to-be-processed point, etc.

[0154] In a possible implementation, the index of each point in the attribute decoding order starts from 0, for example, the point cloud includes 100 points, and the index of the points in the point cloud in the attribute decoding order is 0 to 99. That is, the index of the first point in the point cloud in the attribute decoding order is 0, and the index of the second point is 1.

[0155] Optionally, the above N is greater than or equal to 2, that is, the to-be-decoded point is any one attribute information undecoded point after the third point in the point cloud in the attribute decoding order.

[0156] For the current to-be-decoded point in the point cloud, before determining the reconstruction value of the attribute information of the to-be-decoded point, the prediction value of the attribute information of the to-be-decoded point needs to be determined, and when the prediction value of the attribute information of the to-be-decoded point is determined, the reference point of the to-be-decoded point needs to be determined first.

[0157] Specifically, when the index of the to-be-decoded point is greater than N, for example, the to-be-decoded point is an undecoded point after the third point in the point cloud, the reference point search range of the to-be-decoded point is determined from the decoded points of the point cloud in the attribute decoding order, so as to ensure that each candidate point in the reference point search range is a decoded point, and thus the effectiveness of the reference point search is ensured.

[0158] In the embodiments of the present application, according to the index of the to-be-decoded point, that is, the number of decoded points before the to-be-decoded point, the way of determining the reference point search range of the to-be-decoded point is also different.

[0159] In some embodiments, the way of determining the reference point search range of the to-be-decoded point in S702 includes but is not limited to the following several ways:

[0160] In a first mode, when the index of the to-be-decoded point is greater than M, M points before the to-be-decoded point in the point cloud in the attribute decoding order are determined as the reference point search range of the to-be-decoded point, where M is greater than N.

[0161] It should be noted that the present application does not limit the specific values of N and M, and only needs to satisfy that N and M are positive integers and M is greater than N.

[0162] In an example, M is equal to 2. s where s is a positive integer greater than 1, for example, M is 4, 32, 64, 256, etc.

[0163] In an example, M is equal to 128. That is, when the index of the to-be-decoded point is greater than 128, it means that there are at least 128 decoded points before the to-be-decoded point, so as to reduce the index data amount, M decoded points before the to-be-decoded point in the point cloud in the attribute decoding order are determined as the reference point search range of the to-be-decoded point.

[0164] For example, when the index of the to-be-decoded point is 300, the reference point search range of the to-be-decoded point is determined as the decoded points with indexes from 299 to 172 in the point cloud in the attribute decoding order.

[0165] In a second mode, when the index of the to-be-decoded point is greater than N and less than or equal to M, for example, the to-be-decoded point is any one of the points from the 4th point to the 127th point in the point cloud, in order to improve the accuracy of the determined reference point, all the decoded points before the to-be-decoded point in the point cloud in the attribute decoding order are determined as the reference point search range of the to-be-decoded point.

[0166] For example, when the index of the to-be-decoded point is 60, the reference point search range of the to-be-decoded point is determined as all the decoded points with indexes from 0 to 59 in the point cloud in the attribute decoding order.

[0167] According to the above mode, after the reference point search range of the to-be-decoded point is determined from the decoded points of the point cloud in the attribute decoding order, the following S703 is performed.

[0168] S703, find at least one reference point closest to the to-be-decoded point in the reference point search range.

[0169] In some embodiments, the reference point is also referred to as a prediction reference point, or a prediction point, etc.

[0170] In a possible implementation, S703 includes: finding R points closest to the to-be-decoded point in the reference point search range as the reference points of the to-be-decoded point.

[0171] Specifically, for each candidate point in the reference point search range, the distance between each candidate point and the to-be-decoded point is calculated according to the geometric information of each candidate point and the geometric information of the to-be-decoded point, and the first R candidate points with the smallest distance are determined as the reference points of the to-be-decoded point.

[0172] The embodiment does not limit the specific value of R, and R is specifically set according to actual needs.

[0173] Optionally, R = 3.

[0174] In some embodiments, when the at least one reference point closest to the to-be-decoded point in the reference point search range is searched, the searching is performed according to the order from near to far in the attribute decoding order. For example, the distance between the first candidate point before the to-be-decoded point in the attribute decoding order and the to-be-decoded point is calculated first, then the distance between the second candidate point before the to-be-decoded point and the to-be-decoded point is calculated, and so on.

[0175] In an embodiment, the number of the at least one reference point of the to-be-decoded point is limited, for example, the number of the at least one residual point of the to-be-decoded point is greater than or equal to P and less than or equal to Q, where P and Q are positive integers, and P is greater than Q.

[0176] The embodiment does not limit the specific value of P and Q.

[0177] In an example, P = 3.

[0178] In an example, Q = 6.

[0179] In this embodiment, the number of the reference points of the to-be-decoded point searched in the reference point search range is at least P, for example, 3, and at most Q, for example, 6.

[0180] The specific process of determining whether each candidate point in the reference point search range is a reference point of the to-be-decoded point is the same, and the whole process is an iterative process.

[0181] In a possible implementation, the manner of searching the at least one reference point closest to the to-be-decoded point in the reference point search range in S703 includes the following steps:

[0182] S703-A1, for each candidate point in the range of the reference point, first, determine the number of determined reference points of the to-be-decoded point. When the number of determined reference points of the to-be-decoded point is less than P, perform S703-A2 as follows; when the number of determined reference points of the to-be-decoded point is greater than or equal to P and less than Q, perform S703-A3 as follows; when the number of determined reference points of the to-be-decoded point is equal to Q, perform S703-A4 as follows.

[0183] S703-A2, when the number of determined reference points of the to-be-decoded point is less than P, determine the candidate point as one reference point of the to-be-decoded point.

[0184] In this case, the number of determined reference points of the to-be-decoded point is less than the minimum value of the number of reference points of the to-be-decoded point, at this time, directly determine the candidate point as one reference point of the to-be-decoded point and store it in the reference point cache of the to-be-decoded point.

[0185] S703-A3, when the number of determined reference points of the to-be-decoded point is greater than or equal to P and less than Q, and the first weight of the candidate point is greater than the minimum value of the first weights of the determined reference points, determine the candidate point as one reference point of the to-be-decoded point, wherein the first weight of the target point is the inverse of the distance between the target point and the to-be-decoded point, and the target point is the candidate point or the determined reference point.

[0186] In this case, the number of determined reference points of the to-be-decoded point is greater than or equal to the minimum value of the number of reference points of the to-be-decoded point, but does not reach the maximum value. At this time, in order to ensure that the point far away from the to-be-decoded point is determined as a reference point, it is necessary to compare the first weight of the candidate point with the first weight of the current determined reference point, if the first weight of the candidate point is greater than or equal to the minimum value of the first weights of the determined reference points, it indicates that the candidate point is close to the to-be-decoded point, then determine the candidate point as one reference point of the to-be-decoded point and store it in the reference point cache of the to-be-decoded point.

[0187] In an example, if the first weight of the candidate point is less than the minimum value of the first weights of the determined reference points, it indicates that the candidate point is far away from the to-be-decoded point, then skip the candidate point.

[0188] Optionally, the first weight of the target point is the reciprocal of the distance between the target point and the point to be decoded. The target point can be a candidate point or a determined reference point. That is, the reciprocal of the distance between the candidate point and the point to be decoded is determined as the first weight of the candidate point. The larger the first weight of the candidate point, the closer the candidate point is to the point to be decoded; the smaller the first weight of the candidate point, the farther the candidate point is from the point to be decoded. Similarly, the reciprocal of the distance between the determined reference point and the point to be decoded is determined as the first weight of the determined reference point. The larger the first weight of the determined reference point, the closer the determined reference point is to the point to be decoded; the smaller the first weight of the determined reference point, the farther the determined reference point is from the point to be decoded. In other words, this embodiment uses the first weight to compare the distance between two points in the point cloud.

[0189] Optionally, the first weight mentioned above can be the reciprocal of the Euclidean distance or the Manhattan distance.

[0190] S703-A4: When the number of determined reference points for the point to be decoded is equal to Q, and the first weight of the candidate point is greater than the minimum value among the first weights of the determined reference points, the candidate point replaces the determined reference point corresponding to the minimum first weight value. Alternatively, when the number of determined reference points for the point to be decoded is equal to Q, and the first weight of the candidate point is equal to the minimum value among the first weights of the determined reference points, and the index of the candidate point is less than the index of the determined reference point corresponding to the minimum first weight value, the candidate point replaces the determined reference point corresponding to the minimum first weight value.

[0191] In this case, the number of known reference points for the point to be decoded has reached the maximum number of reference points for the point to be decoded. At this point, the known reference points in the reference point cache are replaced. Specifically, if the first weight of a candidate point is greater than the minimum first weight among the known reference points, it means that the distance between the candidate point and the point to be decoded is less than the distance between the known reference point with the minimum first weight and the point to be decoded. Therefore, the candidate point replaces the known reference point with the minimum first weight. Alternatively, if the first weight of a candidate point is equal to the minimum first weight among the known reference points, and the index of the candidate point is less than the index of the known reference point with the minimum first weight, it means that the candidate point is closer to the point to be decoded in the attribute decoding order, and the candidate point is more relevant to the attribute information of the point to be decoded. Therefore, the candidate point replaces the known reference point with the minimum first weight.

[0192] In one example, if the first weight of the candidate point is less than the minimum of the first weights of the determined reference points, or if the first weight of the candidate point is equal to the minimum of the first weights of the determined reference points, and the index of the candidate point is greater than the index of the determined reference point corresponding to the minimum first weight value, then the candidate point is skipped.

[0193] The above steps are performed for each candidate point in the reference point search range until the last candidate point in the reference point search range is determined, and finally the determined reference point is determined as at least one reference point of the to-be-decoded point.

[0194] As can be seen from the above steps, when determining the reference point, the distance between the reference point and the to-be-decoded point is considered, and thus the finally determined at least one reference point is the closest decoded point to the to-be-decoded point. Since the attribute information of the points in the point cloud that are close to each other is highly correlated, when the attribute of the to-be-decoded point is predicted based on the attribute information of the at least one reference point closest to the to-be-decoded point, the accuracy of the attribute prediction can be improved.

[0195] In some embodiments, the embodiments of the present application further include: sorting the determined reference points of the to-be-decoded point according to the size of the first weight. That is, for each candidate point, when determining whether the candidate point is a reference point of the to-be-decoded point, the first weight of the candidate point is usually compared with the minimum first weight of the determined reference points. Based on this, in order to facilitate the determined reference point corresponding to the minimum first weight difference, the determined reference points are sorted according to the size of the first weight, for example, sorted in descending order or ascending order of the size of the first weight. In this way, when determining whether the next candidate point is a reference point, the first weight is directly obtained from the first or last of the sorted determined reference points for comparison, so as to improve the efficiency of the determination of the candidate point.

[0196] In a possible implementation, the S703 includes S703-B1 and S703-B2:

[0197] S703-B1, selecting at least one initial reference point of the to-be-encoded point from the reference point search range.

[0198] The embodiments of the present application do not limit the selection method of selecting at least one initial reference point of the to-be-encoded point from the reference point search range.

[0199] In an example, at least one candidate point closest to the to-be-decoded point in the attribute decoding order is selected as the initial reference point of the to-be-decoded point from the reference point search range.

[0200] In an example, at least one candidate point farthest from the to-be-decoded point in the attribute decoding order is selected as the initial reference point of the to-be-decoded point from the reference point search range.

[0201] In an example, at least one candidate point at any position in the attribute decoding order is selected as the initial reference point of the to-be-decoded point from the reference point search range.

[0202] S703-B2, traverse each candidate point in the search range except the initial reference points, and use the candidate point to supplement and / or replace at least one initial reference point to obtain at least one reference point closest to the to-be-decoded point.

[0203] Optionally, when traversing each candidate point in the search range except the initial reference points, the traversal can be performed according to the order from near to far between the to-be-decoded point and the candidate point according to the attribute decoding order.

[0204] In an embodiment, the implementation of using the candidate point to supplement and / or replace at least one initial reference point to obtain at least one reference point closest to the to-be-decoded point in S703-B2 includes but is not limited to the following modes:

[0205] Mode one, when the number of the at least one initial reference point is less than P, the candidate point is supplemented into the initial reference points to obtain new at least one initial reference point.

[0206] Mode two, when the number of the at least one initial reference point is greater than or equal to P and less than Q, if the first distance between the candidate point and the to-be-decoded point is less than or equal to the maximum second distance, the candidate point is supplemented into the at least one initial reference point to obtain new at least one initial reference point, and the second distance is the spatial distance between the initial reference point and the to-be-decoded point.

[0207] Mode three, when the number of the at least one initial reference point is equal to Q, if the first distance is less than the maximum second distance, the candidate point is used to replace the initial reference point corresponding to the maximum second distance, or if the first distance is equal to the maximum second distance and the index of the candidate point is less than the index of the initial reference point corresponding to the maximum second distance, the candidate point is used to replace the initial reference point corresponding to the maximum second distance to obtain new at least one initial reference point.

[0208] For example, assuming P=3 and Q=6, the first two candidate points adjacent to the to-be-encoded point in the attribute decoding attribute are selected as the initial reference points of the to-be-decoded point from the reference point search range. Then, each candidate point in the reference point search range except the initial reference points is traversed, for example, the first three candidate points of the to-be-decoded point in the reference point search range are traversed. At this time, the number of the initial reference points of the to-be-decoded point is less than 3, and thus the first three candidate points of the to-be-decoded point are directly supplemented into the initial reference points of the to-be-decoded point to obtain new initial reference points of the to-be-decoded point, wherein the number of the new initial reference points is 3. Then, the first four candidate points of the to-be-decoded point in the reference point search range are traversed, the first distance between the first four candidate points and the to-be-decoded point is calculated, and when it is determined that the first distance is less than or equal to the second distance of the largest one of the last three initial reference points, the first four candidate points are supplemented into the initial reference points of the to-be-decoded point, and thus four initial reference points of the to-be-decoded point are obtained. If the first distance of the first four candidate points is less than the second distance of the largest one of the last three initial reference points, the first four candidate points are skipped. Then, the first five candidate points of the to-be-decoded point in the reference point search range are traversed, and the process is sequentially continued. When the number of the determined initial reference points reaches 6, the above-mentioned mode three is executed, that is, when the first distance of the current candidate point is less than the second distance of the largest one of the last determined initial reference points, the current candidate point is used to replace the initial reference point corresponding to the largest second distance, or when the first distance of the current candidate point is equal to the second distance of the largest one of the last determined initial reference points and the index of the current candidate point is less than the index of the initial reference point corresponding to the largest second distance, the current candidate point is used to replace the initial reference point corresponding to the largest second distance to obtain new initial reference points. The initial reference points determined when the last point in the reference point search range is traversed are determined as the final reference points used for attribute prediction of the to-be-decoded point.

[0209] In this embodiment, the initial reference points are supplemented or replaced by distance, so that the finally obtained reference points are the points closest to the to-be-decoded point in space, and thus the accuracy of attribute prediction can be improved when the attribute of the to-be-decoded point is predicted based on the attribute information of at least one reference point closest to the to-be-decoded point in distance.

[0210] After the at least one reference point closest to the to-be-decoded point is found from the reference point search range according to the above-mentioned steps, attribute prediction is performed according to S704.

[0211] S704, determining the predicted value of the attribute information of the to-be-decoded point according to the reconstructed value of the attribute information of the at least one reference point.

[0212] In a possible implementation, an arithmetic mean of the reconstructed values of the attribute information of the at least one reference point is determined as the prediction value of the attribute information of the to-be-decoded point.

[0213] In a possible implementation, a weighted mean of the reconstructed values of the attribute information of the at least one reference point is determined as the prediction value of the attribute information of the to-be-decoded point.

[0214] In this implementation, the S704 includes S704-A1 and S704-A2.

[0215] S704-A1, determining the second weight of each of the at least one reference point.

[0216] S704-A2, determining the weighted mean of the reconstructed values of the attribute information of the at least one reference point as the prediction value of the attribute information of the to-be-decoded point according to the second weight of each of the at least one reference point.

[0217] In some embodiments, the manner of determining the second weight of each of the at least one reference point in S704-A1 includes but is not limited to the following manners.

[0218] Manner one, for each of the at least one reference point, the reciprocal of the distance between the reference point and the to-be-decoded point is determined as the second weight of the reference point.

[0219] Optionally, the distance can be the Euclidean distance or the Manhattan distance, that is, the reciprocal of the Euclidean distance or the Manhattan distance between the reference point and the to-be-decoded point is determined as the second weight of the reference point.

[0220] For example, assuming that the coordinates of the reference point are (x1, y1, z1) and the coordinates of the to-be-decoded point are (x0, y0, z0), the Euclidean distance d1 between the reference point and the to-be-decoded point is determined according to the following formula (1):

[0221]

[0222] The Manhattan distance d2 between the reference point and the to-be-decoded point is determined according to the following formula (2):

[0223] d2 = |x0-x1| + |y0-y1| + |z0-z1| (2)

[0224] wherein, “|. |” represents the absolute value operation.

[0225] Manner two, the second weight of each of the reference points is a preset weight value. In this manner, the second weights of the reference points can be the same or different.

[0226] After the second weight of each of the at least one reference point is determined according to the above manner, a weighted average value of the reconstructed values of the attribute information of the at least one reference point is determined as the prediction value of the attribute information of the to-be-encoded point according to the second weight of each of the at least one reference point.

[0227] For example, the prediction value of the attribute information of the to-be-encoded point is determined according to the following formula (3):

[0228]

[0229] wherein, the reconstructed value of the attribute information of the i th reference point in the at least one reference point is denoted as P i, and the second weight of the i th reference point is denoted as w i. i The second weight of the i th reference point is denoted as w i. P represents the prediction value, and O represents the to-be-decoded point. The prediction value of the attribute information of the to-be-encoded point is denoted as P.

[0230] In a specific embodiment of the embodiment of the present application, the point cloud attribute prediction method of the embodiment of the present application comprises the following steps:

[0231] Step 1, decoding the point cloud code stream to obtain a decoded point of the point cloud.

[0232] Step 2, judging whether the index of the to-be-decoded point is greater than 2, if the index of the to-be-decoded point is greater than 2, executing the following steps 3 to 5, if the index of the to-be-decoded point is less than or equal to 2, executing the following step 6.

[0233] Step 3, when the index of the to-be-decoded point is greater than 2, determining a reference point search range of the to-be-decoded point from the decoded points of the point cloud.

[0234] Step 4, searching for at least one reference point closest to the to-be-decoded point in the reference point search range of the to-be-decoded point.

[0235] Step 5, determining the prediction value of the attribute information of the to-be-decoded point according to the reconstructed values of the attribute information of the at least one searched reference point.

[0236] Step 6, if the to-be-encoded point is the first point of the point cloud in the attribute decoding order, determining the prediction value of the attribute information of the to-be-encoded point as a preset value; or,

[0237] If the to-be-encoded point is the second point of the point cloud in the attribute decoding order, determining the reconstructed value of the attribute information of the first point of the point cloud in the attribute decoding order as the prediction value of the attribute information of the to-be-encoded point; or,

[0238] ​If the to-be-encoded point is the third point in the attribute decoding order of the point cloud, a prediction value of the attribute information of the to-be-encoded point is determined according to a reconstructed value of the attribute information of the first point and a reconstructed value of the attribute information of the second point in the attribute decoding order of the point cloud, for example, a weighted average of the reconstructed value of the attribute information of the first point and the reconstructed value of the attribute information of the second point is determined as the prediction value of the attribute information of the to-be-encoded point.

[0239] The technical effects of the embodiments of the present application are described below through experiments:

[0240] The prediction method of the point cloud attribute of the embodiments of the present application is tested on the latest point cloud compression platform PCRM3.0 of AVS, and the test results are shown in Tables 1.1 to 1.4:

[0241] Table 1.1

[0242]

[0243] Among them, the points in the Cat1B and Cat3 point cloud sequences include color attribute information. BD-AttrRate is one of the main parameters for evaluating the performance of a video encoding algorithm, representing the change in code rate and PSNR (Peak Signal to Noise Ratio) of the video encoded by the new algorithm (i.e., the technical solution of the present application) relative to the original algorithm, i.e., the change in code rate of the new algorithm relative to the original algorithm under the same signal-to-noise ratio. “-” represents performance improvement, for example, code rate and PSNR performance improvement.

[0244] Table 1.1 is the test result when the technical solution of the present application is used to predict the Cat1B and Cat3 point cloud sequences under the condition of limited lossy geometry and lossless attributes (limit-lossy geometry, lossy attributes). As shown in Table 1.1, for the Cat1B point cloud sequence, the performance is improved by 0.6% for the luminance component, 2.3% for the Cb chroma component, and 3.3% for the Cr chroma component by using the technical solution of the present application. For the Cat3 point cloud sequence, the performance is slightly decreased by using the technical solution of the present application.

[0245] Table 1.2

[0242]

[0246]

[0247] Table 1.2 is the test result when the Cat1B and Cat3 point cloud sequences are predicted using the technical solution of the present application under the condition of lossless geometry and lossy attributes. As shown in Table 1.2, for the Cat1B point cloud sequence, the performance of the luminance component is improved by 7.3%, the performance of the color component Cb is improved by 8%, and the performance of the color component Cr is improved by 8.4%. For the Cat3 point cloud sequence, the performance of the luminance component is improved by 2.5%, the performance of the color component Cb is improved by 2.4%, and the performance of the color component Cr is improved by 3.2%.

[0248] Table 1.3

[0249]

[0250] Table 1.3 is the test result when the Cat1B and Cat3 point cloud sequences are predicted using the technical solution of the present application under the condition of lossless geometry and limit-lossy attributes. As shown in Table 1.3, for the Cat1B point cloud sequence, the performance of the luminance component is improved by 6.6%, the performance of the color component Cb is improved by 6.6%, and the performance of the color component Cr is improved by 6.6%. For the Cat3 point cloud sequence, the performance of the luminance component is improved by 4.1%, the performance of the color component Cb is improved by 4.1%, and the performance of the color component Cr is improved by 4.1%.

[0251] Table 1.4

[0252]

[0253] Table 1.4 is the test result when the Cat1B and Cat3 point cloud sequences are predicted using the technical solution of the present application under the condition of lossless geometry and lossless attributes. As shown in Table 1.4, for the Cat1B point cloud sequence, the color performance is improved by 1.5% using the technical solution of the present application. For the Cat3 point cloud sequence, the color performance is slightly reduced using the technical solution of the present application.

[0254] As shown in the above Tables 1.1 to 1.4, the point cloud attribute prediction method provided by the embodiments of the present application can significantly improve the decoding performance of the point cloud.

[0255] The method for predicting the attribute of the point cloud provided in the embodiments of the present application comprises the following steps: decoding a point cloud code stream to obtain a reconstructed value of attribute information of a decoded point of the point cloud; when the index of a to-be-decoded point in the point cloud is greater than N, determining a reference point searching range of the to-be-decoded point from the decoded points of the point cloud in the attribute decoding order; searching for at least one reference point closest to the to-be-decoded point in the reference point searching range; and determining a predicted value of the attribute information of the to-be-decoded point according to the reconstructed value of the attribute information of the at least one reference point. That is, when determining the reference point, the method of the present application takes the distance between the reference point and the to-be-decoded point as the criterion through global searching, so that the at least one reference point determined is the decoded point closest to the to-be-decoded point in terms of spatial distance. Since the attribute information of the points close to each other in the point cloud is highly correlated, the accuracy of attribute prediction can be improved when the attribute information of the at least one reference point closest to the to-be-decoded point in terms of spatial distance is used to predict the attribute of the to-be-decoded point.

[0256] Figure 8 The flowchart of the point cloud decoding method provided in an embodiment of the present application is shown in FIG. 1, and the point cloud decoding process comprises the following steps: Figure 8

[0257] S801, decoding a geometry code stream of a point cloud to obtain a reconstructed value of geometry information of the point cloud.

[0258] The point cloud code stream comprises an attribute code stream and a geometry code stream, the geometry code stream is decoded to obtain the geometry information of the point cloud, and the attribute code stream is decoded to obtain the attribute information of the point cloud.

[0259] S802, decoding an attribute code stream of the point cloud to obtain a residual value of attribute information of a to-be-decoded point in the point cloud.

[0260] Specifically, the attribute code stream of the point cloud is decoded to obtain a residual value of the attribute information of the to-be-decoded point after dequantization, and the quantized attribute residual value of the to-be-decoded point is dequantized to obtain the residual value of the attribute information of the to-be-decoded point.

[0261] S803, decoding the attribute code stream of the point cloud to obtain a reconstructed value of attribute information of a decoded point of the point cloud.

[0262] S804, when the index of the to-be-decoded point is greater than N, determining a reference point searching range of the to-be-decoded point from the decoded points of the point cloud. The index of the to-be-decoded point is the order of the to-be-decoded point in the attribute decoding order, and N is a positive integer.

[0263] For example, when the index of the to-be-decoded point is greater than M, the N decoded points before the to-be-decoded point in the point cloud in the attribute decoding order are determined as the reference point searching range of the to-be-decoded point, where M is greater than N.

[0264] ​For example, when the index of the to-be-decoded point is greater than N and less than or equal to M, all the decoded points in the point cloud before the to-be-decoded point in the attribute decoding order are determined as the reference point search range of the to-be-decoded point.

[0265] The specific implementation of S804 is consistent with the implementation process of S702. Refer to the description of S702, which will not be repeated here.

[0266] S805, in the reference point search range, find at least one reference point closest to the to-be-decoded point.

[0267] In some embodiments, in the reference point search range, find R points closest to the to-be-decoded point as the reference points of the to-be-decoded point, where R is a preset value.

[0268] In an embodiment, for each candidate point in the reference point search range, when the number of determined reference points of the to-be-decoded point is less than P, the candidate point is determined as one of the reference points of the to-be-decoded point. Or, when the number of determined reference points of the to-be-decoded point is greater than or equal to P and less than Q, and the first weight of the candidate point is greater than the minimum value of the first weights of the determined reference points, the candidate point is determined as one of the reference points of the to-be-decoded point, wherein the first weight of the target point is the inverse of the distance between the target point and the to-be-decoded point, and the target point is the candidate point or the determined reference point. Or, when the number of determined reference points of the to-be-decoded point is equal to Q, and the first weight of the candidate point is greater than the minimum value of the first weights of the determined reference points, or when the number of determined reference points of the to-be-decoded point is equal to Q, and the first weight of the candidate point is equal to the minimum value of the first weights of the determined reference points, and the index of the candidate point is less than the index of the determined reference point corresponding to the minimum first weight value, the candidate point is used to replace the determined reference point corresponding to the minimum first weight value.

[0269] The specific implementation of S805 is consistent with the implementation process of S703. Refer to the description of S703, which will not be repeated here.

[0270] S806, determine the prediction value of the attribute information of the to-be-decoded point according to the reconstruction value of the attribute information of the at least one reference point.

[0271] For example, determine the second weight of each reference point in the at least one reference point; and determine the weighted average value of the reconstruction value of the attribute information of the at least one reference point as the prediction value of the attribute information of the to-be-decoded point according to the second weight of each reference point in the at least one reference point.

[0272] The way to determine the second weight of each reference point in the at least one reference point includes but is not limited to the following:

[0273] In a first manner, for each reference point in the at least one reference point, the reciprocal of the distance between the reference point and the to-be-encoded point is determined as the second weight of the reference point. For example, the reciprocal of the Euclidean distance or Manhattan distance between the reference point and the to-be-encoded point is determined as the second weight of the reference point.

[0274] In a second manner, a preset weight value is determined as the second weight of the reference point.

[0275] The specific implementation of S806 is consistent with the implementation process of S704. Refer to the description of S704, which will not be repeated here.

[0276] In some embodiments, the present application further includes:

[0277] If the to-be-encoded point is the first point in the attribute decoding order of the point cloud, the prediction value of the attribute information of the to-be-encoded point is determined as a preset value; or,

[0278] If the to-be-encoded point is the second point in the attribute decoding order of the point cloud, the reconstruction value of the attribute information of the first point in the attribute decoding order of the point cloud is determined as the prediction value of the attribute information of the to-be-encoded point; or,

[0279] If the to-be-encoded point is the third point in the attribute decoding order of the point cloud, the prediction value of the attribute information of the to-be-encoded point is determined according to the reconstruction value of the attribute information of the first point and the reconstruction value of the attribute information of the second point in the attribute decoding order of the point cloud.

[0280] S807, obtaining the reconstruction value of the attribute information of the to-be-decoded point according to the prediction value and the residual value of the attribute information of the to-be-decoded point. For example, the sum of the prediction value and the residual value of the attribute information of the to-be-decoded point is taken as the reconstruction value of the attribute information of the to-be-decoded point.

[0281] In the embodiment of the present application, when determining the reference point, the distance between the reference point and the to-be-decoded point is considered by the global search method, so that the at least one reference point determined is the nearest decoded point in space distance from the to-be-decoded point. When predicting the attribute of the to-be-decoded point based on the attribute information of the at least one reference point nearest to the to-be-decoded point in space distance, the accuracy of attribute prediction can be improved, and the attribute decoding efficiency of the point cloud is improved.

[0282] The above is described in combination with Figure 7 and Figure 8 The point cloud attribute prediction process at the decoding end is introduced, and the point cloud attribute prediction process at the encoding end is introduced in combination with Figure 9 and Figure 10 The point cloud attribute prediction process at the encoding end is introduced.

[0283] Figure 9The flowchart of the point cloud attribute prediction method provided by an embodiment of the present application is shown in the figure. The execution subject of the embodiment of the present application can be the encoder shown in the figure, or can be part of the elements in the encoder. As shown in the figure, the point cloud attribute prediction method comprises the following steps. Figure 3 The flowchart of the point cloud attribute prediction method provided by an embodiment of the present application is shown in the figure. The execution subject of the embodiment of the present application can be the encoder shown in the figure, or can be part of the elements in the encoder. As shown in the figure, the point cloud attribute prediction method comprises the following steps. Figure 9 The flowchart of the point cloud attribute prediction method provided by an embodiment of the present application is shown in the figure. The execution subject of the embodiment of the present application can be the encoder shown in the figure, or can be part of the elements in the encoder. As shown in the figure, the point cloud attribute prediction method comprises the following steps. The flowchart of the point cloud attribute prediction method provided by an embodiment of the present application is shown in the figure. The execution subject of the embodiment of the present application can be the encoder shown in the figure, or can be part of the elements in the encoder. As shown in the figure, the point cloud attribute prediction method comprises the following steps.

[0284] S901, obtaining a reconstructed value of attribute information of an encoded point of a point cloud.

[0285] Specifically, the original geometric information of the point cloud is preprocessed, the geometric origin is normalized to the minimum value position in the point cloud space through coordinate translation, and the geometric information is converted from a floating-point number to an integer through coordinate quantization, so as to facilitate subsequent regularization processing. Then, the regularized geometric information is geometrically encoded, the point cloud space is recursively divided by adopting an octree structure, each time the current node is divided into eight sub-blocks of the same size, and it is judged whether each sub-block contains points or not. When the sub-block does not contain points, it is recorded as empty, otherwise it is recorded as non-empty. The occupancy code word information of all blocks is recorded in the last layer of recursive division, and is encoded. The geometric information expressed by the octree structure is input into a geometric entropy encoder to form a geometric code stream on the one hand, and participates in the attribute encoding of the point cloud to obtain the reconstructed value of the attribute information of the decoded point in the point cloud through geometric reconstruction processing in the encoder on the other hand.

[0286] S902, for a to-be-encoded point in the point cloud, when the index of the to-be-encoded point in the attribute encoding order is greater than N, determining a reference point search range of the to-be-encoded point from the encoded points of the point cloud.

[0287] The index of the to-be-encoded point is the order of the to-be-encoded point in the attribute encoding order, and N is a positive integer.

[0288] The embodiment of the present application does not limit the specific ordering manner of the attribute encoding order of the point cloud, and can be determined according to actual needs.

[0289] In an example, the attribute encoding order of the point cloud can be a Morton order.

[0290] In an example, the attribute encoding order of the point cloud can be a Hilbert order.

[0291] In an example, the attribute encoding order of the point cloud can also be to encode along the y direction first, then along the x direction, and finally along the z direction; or to encode along the y direction first, then along the z direction, and finally along the x direction; or to encode along the x direction first, then along the z direction, and finally along the y direction; or to encode along the z direction first, then along the x direction, and finally along the y direction; or to encode along the z direction first, then along the y direction, and finally along the x direction.

[0292] It should be noted that the above is only a specific example of the two attribute encoding orders related by the embodiments of the present application, and the attribute encoding order of the embodiments of the present application includes but is not limited to the above two.

[0293] Optionally, N is greater than or equal to 2.

[0294] It should be noted that the to-be-encoded point can also be referred to as a current point, or a current to-be-encoded point, or a current to-be-processed point, etc.

[0295] In the embodiments of the present application, the way of determining the reference point search range of the to-be-encoded point is also different according to the index of the to-be-encoded point, that is, the number of the encoded points before the to-be-encoded point.

[0296] In some embodiments, the way of determining the reference point search range of the to-be-encoded point in S902 includes but is not limited to the following several ways:

[0297] In the first way, when the index of the to-be-encoded point is greater than M, the M encoded points before the to-be-encoded point in the point cloud in the attribute encoding order are determined as the reference point search range of the to-be-encoded point, where M is greater than N.

[0298] It should be noted that the embodiments of the present application do not limit the specific values of N and M, and only N and M are positive integers, and M is greater than N.

[0299] In an example, M = 2 s , where s is a positive integer greater than 1, for example, M is 4, 32, 64, 256, etc.

[0300] Optionally, M = 128.

[0301] In the second way, when the index of the to-be-encoded point is greater than N and less than or equal to M, in order to improve the accuracy of the determined reference points, all the encoded points before the to-be-encoded point in the point cloud in the attribute encoding order are determined as the reference point search range of the to-be-encoded point.

[0302] According to the above way, after the reference point search range of the to-be-encoded point is determined from the encoded points of the point cloud in the attribute encoding order, the following S903 is executed.

[0303] S903, find at least one reference point closest to the to-be-encoded point in the reference point search range.

[0304] In a possible implementation, S903 includes: finding R points closest to the to-be-encoded point in the reference point search range as the reference points of the to-be-encoded point.

[0305] In some embodiments, when searching for at least one reference point closest to the to-be-encoded point within the reference point search range, the searching is performed according to the order from near to far in the attribute encoding order. For example, the distance between the first candidate point before the to-be-encoded point in the attribute encoding order and the to-be-encoded point is calculated first, then the distance between the second candidate point before the to-be-encoded point and the to-be-encoded point is calculated, and so on.

[0306] In an embodiment, the number of reference points of the to-be-encoded point is also limited, for example, the number of at least one residual point of the to-be-encoded point is greater than or equal to P and less than or equal to Q, where P and Q are positive integers and P is greater than Q.

[0307] The specific values of P and Q are not limited in the embodiments.

[0308] In an example, P = 3.

[0309] In an example, Q = 6.

[0310] In this embodiment, the number of reference points of the to-be-encoded point searched within the reference point search range is at least P, for example, 3, and at most Q, for example, 6.

[0311] The specific process of determining whether a candidate point is a reference point of the to-be-encoded point is the same for each candidate point within the reference point search range, and the whole process is an iterative process.

[0312] In a possible implementation, the manner of searching for at least one reference point closest to the to-be-encoded point within the reference point search range in S903 includes the following steps:

[0313] S903-A1, for each candidate point within the reference point search range, first, the number of determined reference points of the to-be-encoded point is determined. When the number of determined reference points of the to-be-encoded point is less than P, the following S903-A2 is performed; when the number of determined reference points of the to-be-encoded point is greater than or equal to P and less than Q, the following S903-A3 is performed; when the number of determined reference points of the to-be-encoded point is equal to Q, the following S903-A4 is performed.

[0314] S903-A2, when the number of determined reference points of the to-be-encoded point is less than P, the candidate point is determined as one reference point of the to-be-encoded point.

[0315] In this case, the number of determined reference points of the to-be-encoded point is less than the minimum number of reference points of the to-be-encoded point, at this time, the candidate point is directly determined as one reference point of the to-be-encoded point and stored in the reference point cache of the to-be-encoded point.

[0316] S903-A3, when the number of determined reference points of the to-be-encoded point is greater than or equal to P and less than Q, and the first weight of the candidate point is greater than the minimum value of the first weights of the determined reference points, the candidate point is determined as a reference point of the to-be-encoded point, wherein the first weight of the target point is the reciprocal of the distance between the target point and the to-be-encoded point, and the target point is the candidate point or the determined reference point.

[0317] In this case, the number of determined reference points of the to-be-encoded point is greater than or equal to the minimum value of the number of reference points of the to-be-encoded point, but does not reach the maximum value. At this time, in order to ensure that a point far away from the to-be-encoded point is determined as a reference point, it is necessary to compare the first weight of the candidate point with the first weights of the current determined reference points. If the first weight of the candidate point is greater than or equal to the minimum value of the first weights of the determined reference points, it indicates that the candidate point is close to the to-be-encoded point, and the candidate point is determined as a reference point of the to-be-encoded point and stored in the reference point cache of the to-be-encoded point.

[0318] In an example, if the first weight of the candidate point is less than the minimum value of the first weights of the determined reference points, it indicates that the candidate point is far away from the to-be-encoded point, and the candidate point is skipped.

[0319] Optionally, the first weight of the target point is the reciprocal of the distance between the target point and the to-be-encoded point, and the target point can be the candidate point or the determined reference point. That is, the reciprocal of the distance between the candidate point and the to-be-encoded point is determined as the first weight of the candidate point. The greater the first weight of the candidate point, the closer the candidate point is to the to-be-encoded point, and the smaller the first weight of the candidate point, the farther the candidate point is from the to-be-encoded point. The reciprocal of the distance between the determined reference point and the to-be-encoded point is determined as the first weight of the determined reference point. The greater the first weight of the determined reference point, the closer the determined reference point is to the to-be-encoded point, and the smaller the first weight of the determined reference point, the farther the determined reference point is from the to-be-encoded point. That is, the first weight is used to compare the distance between two points in the point cloud.

[0320] Optionally, the first weight can be the reciprocal of the Euclidean distance or the Manhattan distance.

[0321] S903-A4, when the number of determined reference points of the to-be-encoded point is equal to Q, and the first weight of the candidate point is greater than the minimum value of the first weights of the determined reference points, the candidate point is used to replace the determined reference point corresponding to the minimum first weight value. Alternatively, when the number of determined reference points of the to-be-encoded point is equal to Q, and the first weight of the candidate point is equal to the minimum value of the first weights of the determined reference points, and the index of the candidate point is less than the index of the determined reference point corresponding to the minimum first weight value, the candidate point is used to replace the determined reference point corresponding to the minimum first weight value.

[0322] In one example, if the first weight of the candidate point is less than the minimum of the first weights of the determined reference points, or if the first weight of the candidate point is equal to the minimum of the first weights of the determined reference points, and the index of the candidate point is greater than the index of the determined reference point corresponding to the minimum first weight value, then the candidate point is skipped.

[0323] The above steps are performed for each candidate point within the reference point search range until the last candidate point within the reference point search range is determined. The final reference point is then identified as at least one reference point for the point to be encoded.

[0324] As can be seen from the above steps, the distance between the reference point and the point to be encoded is taken into consideration when determining the reference point, thus ensuring that the final determined reference point is the closest encoded point to the point to be encoded. Since the attribute information of points that are close to each other in the point cloud is highly correlated, predicting the attributes of the point to be encoded based on the attribute information of the at least one reference point closest to the point to be encoded can improve the accuracy of attribute prediction.

[0325] In some embodiments, this application further includes: sorting the determined reference points of the point to be encoded according to the magnitude of the first weight. That is, for each candidate point, when determining whether a candidate point is a reference point for the point to be encoded, the first weight of the candidate point is usually compared with the smallest first weight of the determined reference points. Based on this, to facilitate the determination of the determined reference points corresponding to the smallest difference in the first weight, the determined reference points are sorted according to the magnitude of the first weight, for example, sorted in descending or ascending order of the first weight. Thus, when determining whether the next candidate point is a reference point, the first weight can be directly obtained from the first or last of the sorted determined reference points for comparison, thereby improving the efficiency of candidate point determination.

[0326] In one possible implementation, the above-mentioned S903 includes S903-B1 and S903-B2:

[0327] S903-B1. From the range of reference points, select at least one initial reference point for the point to be encoded.

[0328] This application embodiment does not restrict the selection method of at least one initial reference point for selecting the point to be encoded from the reference point search range.

[0329] In one example, from the range of reference points, at least one candidate point that is closest to the point to be encoded in the attribute encoding order is selected as the initial reference point for the point to be encoded.

[0330] In one example, from the range of reference points, at least one candidate point that is farthest from the point to be encoded in the attribute encoding order is selected as the initial reference point for the point to be encoded.

[0331] In one example, from the range of reference points, at least one candidate point at any position in the attribute encoding order is selected as the initial reference point for the point to be encoded.

[0332] S903-B2: Traverse the reference point search range for each candidate point other than the initial reference point, and use the candidate points to supplement and / or replace at least one initial reference point to obtain at least one reference point closest to the point to be encoded.

[0333] In one embodiment, S903-B2 uses candidate points to supplement and / or replace at least one initial reference point to obtain at least one reference point closest to the point to be encoded. The implementation methods include, but are not limited to, the following:

[0334] Method 1: When the number of at least one initial reference point is less than P, candidate points are added to the initial reference points to obtain at least one new initial reference point.

[0335] Method 2: When the number of at least one initial reference point is greater than or equal to P and less than Q, if the first distance between the candidate point and the point to be encoded is less than or equal to the maximum second distance, then the candidate point is added to at least one initial reference point to obtain at least one new initial reference point. The second distance is the spatial distance between the initial reference point and the point to be encoded.

[0336] Method 3: When the number of at least one initial reference point is equal to Q, if the first distance is less than the maximum second distance, then the candidate point is used to replace the initial reference point corresponding to the maximum second distance. Alternatively, if the first distance is equal to the maximum second distance and the index of the candidate point is less than the index of the initial reference point corresponding to the maximum second distance, then the candidate point is used to replace the initial reference point corresponding to the maximum second distance, thus obtaining at least one new initial reference point.

[0337] In this embodiment, the pre-selected initial reference point is supplemented or replaced by distance to ensure that the final reference point is the point with the closest spatial distance to the point to be encoded. In this way, when the attribute of the point to be encoded is predicted based on the attribute information of at least one reference point that is closest to the point to be encoded, the accuracy of attribute prediction can be improved.

[0338] Based on the above steps, after finding at least one reference point within the range of reference points that is closest to the point to be encoded, perform the following S904 to predict attributes.

[0339] S904. Based on the reconstructed values ​​of the attribute information of at least one reference point, determine the predicted values ​​of the attribute information of the point to be encoded.

[0340] In a possible implementation, the arithmetic mean of the reconstructed values of the attribute information of the at least one reference point is determined as the prediction value of the attribute information of the to-be-encoded point.

[0341] In a possible implementation, the weighted mean of the reconstructed values of the attribute information of the at least one reference point is determined as the prediction value of the attribute information of the to-be-encoded point.

[0342] In this implementation, the S904 includes S904-A1 and S904-A2.

[0343] The S904-A1 determines the second weight of each of the at least one reference point.

[0344] The S904-A2 determines the weighted mean of the reconstructed values of the attribute information of the at least one reference point as the prediction value of the attribute information of the to-be-encoded point according to the second weight of each of the at least one reference point.

[0345] In some embodiments, the manner of determining the second weight of each of the at least one reference point in the S904-A1 includes but is not limited to the following manners.

[0346] Manner one, for each of the at least one reference point, the reciprocal of the distance between the reference point and the to-be-encoded point is determined as the second weight of the reference point.

[0347] Optionally, the distance can be the Euclidean distance or the Manhattan distance, that is, the reciprocal of the Euclidean distance or the Manhattan distance between the reference point and the to-be-encoded point is determined as the second weight of the reference point.

[0348] Manner two, the second weight of each of the reference points is a preset weight value. In this manner, the second weights of the reference points can be the same or different.

[0349] After the second weight of each of the at least one reference point is determined according to the above manners, the weighted mean of the reconstructed values of the attribute information of the at least one reference point is determined as the prediction value of the attribute information of the to-be-encoded point according to the second weight of each of the at least one reference point.

[0350] For example, the prediction value of the attribute information of the to-be-encoded point is determined according to the following formula (4):

[0351]

[0352] wherein, is the reconstructed value of the attribute information of the i th reference point in the at least one reference point, w 1i is the second weight of the i th reference point, P in the above formula (4) represents the prediction value, and O represents the current to-be-encoded point. a prediction value of attribute information of the to-be-encoded point.

[0353] The above embodiment introduces the process of finding the range of reference points of the to-be-encoded point when the index of the to-be-encoded point is greater than N (for example, 2), finding at least one reference point closest to the to-be-encoded point, and determining the prediction value of the attribute information of the to-be-encoded point according to the reconstructed value of the attribute information of the at least one reference point.

[0354] In some embodiments, the present application also includes:

[0355] If the to-be-encoded point is the first point of the point cloud in the attribute encoding order, the prediction value of the attribute information of the to-be-encoded point is determined as a preset value; or,

[0356] If the to-be-encoded point is the second point of the point cloud in the attribute encoding order, the reconstructed value of the attribute information of the first point of the point cloud in the attribute encoding order is determined as the prediction value of the attribute information of the to-be-encoded point; or,

[0357] If the to-be-encoded point is the third point of the point cloud in the attribute encoding order, the prediction value of the attribute information of the to-be-encoded point is determined according to the reconstructed value of the attribute information of the first point and the reconstructed value of the attribute information of the second point of the point cloud in the attribute encoding order, for example, the weighted average of the reconstructed value of the attribute information of the first point and the reconstructed value of the attribute information of the second point is determined as the prediction value of the attribute information of the to-be-encoded point.

[0358] The prediction method of the attribute of the point cloud provided in the embodiments of the present application includes: obtaining the reconstructed value of the attribute information of the encoded point of the point cloud; for the to-be-encoded point in the point cloud, when the index of the to-be-encoded point is greater than N, determining the reference point search range of the to-be-encoded point from the encoded points of the point cloud; finding at least one reference point closest to the to-be-encoded point in the reference point search range; and determining the prediction value of the attribute information of the to-be-encoded point according to the reconstructed value of the attribute information of the at least one reference point. That is, in the present application, the distance between the reference point and the to-be-encoded point is considered in the global search method to determine the at least one reference point closest to the to-be-encoded point in space. Since the attribute information of the points close in space in the point cloud is highly correlated, the prediction of the attribute of the to-be-encoded point based on the attribute information of the at least one reference point closest to the to-be-encoded point in space can improve the accuracy of the attribute prediction.

[0359] Figure 10 The flowchart of the point cloud encoding method provided in an embodiment of the present application is shown in FIG. 1, which includes the following steps: Figure 10

[0360] ​S101, obtain the geometric information of the point cloud, encode the geometric information of the point cloud, and obtain a geometric bitstream of the point cloud.

[0361] For example, the original geometric information of the point cloud is preprocessed, the geometric origin is normalized to the minimum position in the point cloud space through coordinate translation, and the geometric information is converted from a floating-point number to an integer through coordinate quantization, facilitating subsequent regularization processing. Then, the regularized geometric information is geometrically encoded, the point cloud space is recursively divided using an octree structure, each time the current node is divided into eight sub-blocks of the same size, and the occupancy code word of each sub-block is determined. When the sub-block does not contain points, it is recorded as empty, otherwise it is recorded as non-empty. The occupancy code word information of all blocks is recorded in the last layer of recursive division and is encoded to obtain the geometric bitstream of the point cloud.

[0362] S102, obtain the reconstructed value of the attribute information of the encoded point of the point cloud.

[0363] S103, for a to-be-encoded point in the point cloud, when the index of the to-be-encoded point is greater than N, determine the reference point search range of the to-be-encoded point from the encoded points of the point cloud in the attribute encoding order.

[0364] For example, when the index of the to-be-encoded point is greater than M, the M encoded points before the to-be-encoded point in the attribute encoding order of the point cloud are determined as the reference point search range of the to-be-encoded point, where M is greater than N.

[0365] For example, when the index of the to-be-encoded point is greater than N and less than or equal to M, in order to improve the accuracy of the determined reference point, all the encoded points before the to-be-encoded point in the attribute encoding order of the point cloud are determined as the reference point search range of the to-be-encoded point.

[0366] S104, find at least one reference point closest to the to-be-encoded point in the reference point search range.

[0367] For example, in the reference point search range, R points closest to the to-be-encoded point are found as the reference points of the to-be-encoded point.

[0368] For example, for each candidate point in the search range of the reference point, first, the number of determined reference points of the to-be-encoded point is determined. When the number of determined reference points of the to-be-encoded point is less than P, the candidate point is determined as one reference point of the to-be-encoded point. When the number of determined reference points of the to-be-encoded point is greater than or equal to P and less than Q, and the first weight of the candidate point is greater than the minimum value in the first weights of the determined reference points, the candidate point is determined as one reference point of the to-be-encoded point, wherein the first weight of the target point is the inverse of the distance between the target point and the to-be-encoded point, and the target point is the candidate point or the determined reference point. When the number of determined reference points of the to-be-encoded point is equal to Q, and the first weight of the candidate point is greater than the minimum value in the first weights of the determined reference points, the candidate point is used to replace the determined reference point corresponding to the minimum first weight value. Alternatively, when the number of determined reference points of the to-be-encoded point is equal to Q, and the first weight of the candidate point is equal to the minimum value in the first weights of the determined reference points, and the index of the candidate point is less than the index of the determined reference point corresponding to the minimum first weight value, the candidate point is used to replace the determined reference point corresponding to the minimum first weight value.

[0369] S105, determining the prediction value of the attribute information of the to-be-encoded point according to the reconstructed values of the attribute information of the at least one reference point.

[0370] For example, the weighted average of the reconstructed values of the attribute information of the at least one reference point determined above is determined as the prediction value of the attribute information of the to-be-encoded point.

[0371] In some embodiments, the present application further comprises:

[0372] If the to-be-encoded point is the first point of the point cloud in the attribute encoding order, the prediction value of the attribute information of the to-be-encoded point is determined as a preset value; or,

[0373] If the to-be-encoded point is the second point of the point cloud in the attribute encoding order, the reconstructed value of the attribute information of the first point of the point cloud in the attribute encoding order is determined as the prediction value of the attribute information of the to-be-encoded point; or,

[0374] If the to-be-encoded point is the third point of the point cloud in the attribute encoding order, the prediction value of the attribute information of the to-be-encoded point is determined according to the reconstructed values of the attribute information of the first and second points of the point cloud in the attribute encoding order, for example, the weighted average of the reconstructed values of the attribute information of the first and second points is determined as the prediction value of the attribute information of the to-be-encoded point.

[0375] The specific implementation process of S102 to S105 above is described above with reference to the description of S901 to S904, and will not be repeated here.

[0376] S106, obtaining a residual value of the attribute information of the to-be-encoded point according to the attribute information of the to-be-encoded point and the predicted value of the attribute information of the to-be-encoded point, for example, determining a difference value between the attribute information of the to-be-encoded point and the predicted value of the attribute information of the to-be-encoded point as the residual value of the attribute information of the to-be-encoded point.

[0377] S106, quantizing and encoding the residual value of the attribute information of the to-be-encoded point to obtain an attribute code stream of the point cloud.

[0378] In the embodiments of the present application, when the reference point is determined, the distance between the reference point and the to-be-encoded point is taken into account by the global search method, so that the at least one reference point determined is the encoded point closest to the to-be-encoded point in spatial distance. In this way, when the attribute information of the at least one reference point closest to the to-be-encoded point in spatial distance is used to predict the attribute of the to-be-encoded point, the accuracy of attribute prediction can be improved, and the attribute encoding efficiency of the point cloud is improved.

[0379] It should be understood that, Figure 7 to Figure 10 The above is only an example of the present application and should not be construed as limiting the present application.

[0380] The preferred embodiments of the present application are described in detail above in combination with the drawings, but the present application is not limited to the specific details in the above-described embodiments. Within the technical concept range of the present application, various simple modifications can be made to the technical solutions of the present application, and these simple modifications all belong to the protection range of the present application. For example, in the above-described specific embodiments, various specific technical features described in the embodiments can be combined in any appropriate manner without contradiction. In order to avoid unnecessary repetition, various possible combination manners are not described again in the present application. For another example, various different embodiments of the present application can also be combined in any manner, as long as it does not deviate from the idea of the present application, and it should also be considered as disclosed in the present application.

[0381] It should also be understood that in various method embodiments of the present application, the size of the sequence number of the above-described processes does not mean the order of execution. The execution order of the processes should be determined according to its function and inherent logic, and should not constitute any limitation on the implementation process of the embodiments of the present application. In addition, in the embodiments of the present application, the term "and / or" is only a description of the association relationship of the associated objects, which means that there can be three relationships. Specifically, A and / or B can represent three cases of A alone, A and B together, and B alone. In addition, the character " / " in this paper generally represents an "or" relationship between the front and rear associated objects.

[0382] The method embodiments of the present application are described in detail above in combination with Figure 7 to Figure 10 , and the device embodiments of the present application are described in detail below in combination with Figure 11 to Figure 13 .

[0383] Figure 11 is a schematic block diagram of a point cloud attribute prediction device provided by an embodiment of the present application.

[0384] As shown in Figure 11 , the point cloud attribute prediction device 20 can include:

[0385] a decoding unit 21 configured to decode a point cloud bitstream to obtain a reconstructed value of attribute information of a decoded point of a point cloud;

[0386] a range determining unit 22 configured to, for a to-be-decoded point in the point cloud, determine a reference point search range of the to-be-decoded point from the decoded points of the point cloud when an index of the to-be-decoded point is greater than N, wherein the index of the to-be-decoded point is an order of the to-be-decoded point in the attribute decoding order, and N is a positive integer;

[0387] a searching unit 23 configured to search for at least one reference point closest to the to-be-decoded point in the reference point search range;

[0388] a prediction unit 24 configured to determine a prediction value of attribute information of the to-be-decoded point according to the reconstructed value of the attribute information of the at least one reference point.

[0389] In some embodiments, the range determining unit 22 is specifically configured to, when the index of the to-be-decoded point is greater than M, determine M decoded points before the to-be-decoded point in the attribute decoding order of the point cloud as the reference point search range of the to-be-decoded point, wherein M is greater than N; or,

[0390] when the index of the to-be-decoded point is greater than N and less than or equal to M, determine all decoded points before the to-be-decoded point in the attribute decoding order of the point cloud as the reference point search range of the to-be-decoded point.

[0391] In some embodiments, the searching unit 23 is specifically configured to search for the at least one reference point closest to the to-be-decoded point in the reference point search range according to an order from near to far of the to-be-decoded point in the attribute decoding order.

[0392] In some embodiments, the number of the at least one reference point is greater than or equal to P and less than or equal to Q, wherein P and Q are both positive integers, and P is greater than Q.

[0393] In some embodiments, the searching unit 23 is specifically configured to, for each candidate point in the reference point search range, determine the candidate point as one reference point of the to-be-decoded point when the number of determined reference points of the to-be-decoded point is less than the P; or,

[0394] determining the candidate point as one of the reference points of the to-be-decoded point when the number of the determined reference points of the to-be-decoded point is greater than or equal to the P and less than the Q, and the first weight of the candidate point is greater than or equal to the minimum value in the first weights of the determined reference points, wherein the first weight of a target point is the inverse of the distance between the target point and the to-be-decoded point, and the target point is the candidate point or the determined reference point; or

[0395] replacing, when the number of the determined reference points of the to-be-decoded point is equal to the Q, the determined reference point corresponding to the minimum value in the first weights of the determined reference points with the candidate point, or when the number of the determined reference points of the to-be-decoded point is equal to the Q, the first weight of the candidate point is equal to the minimum value in the first weights of the determined reference points, and the index of the candidate point is less than the index of the determined reference point corresponding to the minimum value in the first weights of the determined reference points.

[0396] In some embodiments, the searching unit 23 is further configured to sort the determined reference points of the to-be-decoded point according to the sizes of the first weights.

[0397] Optionally, the first weight of the target point is the inverse of the Euclidean distance or Manhattan distance between the target point and the to-be-decoded point.

[0398] In some embodiments, the prediction unit 24 is further configured to determine the prediction value of the attribute information of the to-be-decoded point as a preset value when the to-be-decoded point is the first point of the point cloud in the attribute decoding order; or,

[0399] determining the prediction value of the attribute information of the to-be-decoded point as the reconstructed value of the attribute information of the first point of the point cloud in the attribute decoding order when the to-be-decoded point is the second point of the point cloud in the attribute decoding order; or,

[0400] determining the prediction value of the attribute information of the to-be-decoded point according to the reconstructed value of the attribute information of the first point of the point cloud in the attribute decoding order and the reconstructed value of the attribute information of the second point of the point cloud in the attribute decoding order when the to-be-decoded point is the third point of the point cloud in the attribute decoding order.

[0401] In some embodiments, the prediction unit 24 is specifically configured to determine the second weight of each reference point in the at least one reference point; and determine the prediction value of the attribute information of the to-be-decoded point as the weighted average of the reconstructed values of the attribute information of the at least one reference point according to the second weight of each reference point in the at least one reference point.

[0402] In some embodiments, the prediction unit 24 is specifically configured to, for each of the at least one reference point, determine the reciprocal of the distance between the reference point and the point to be decoded as the second weight of the reference point; or, determine the second weight of the reference point as a preset weight value.

[0403] In some embodiments, the prediction unit 24 is specifically used to determine the reciprocal of the Euclidean distance or Manhattan distance between the reference point and the point to be decoded as the second weight of the reference point.

[0404] Optionally, the attribute decoding order of the point cloud can be either the Morton order or the Hilbert order.

[0405] Optionally, N is a positive integer greater than or equal to 2.

[0406] Optionally, M is 128.

[0407] Optionally, P is 3.

[0408] Optionally, Q is 6.

[0409] It should be understood that the device embodiments and method embodiments can correspond to each other, and similar descriptions can be found in the method embodiments. To avoid repetition, further details are omitted here. Specifically, Figure 11 The apparatus 20 shown can correspond to the corresponding subject in the point cloud decoding method of the present application embodiment, and the aforementioned and other operations and / or functions of each unit in the apparatus 20 are respectively to implement the corresponding process in the point cloud decoding method. For the sake of brevity, they will not be described in detail here.

[0410] Figure 12 This is a schematic block diagram of a point cloud attribute prediction device provided in an embodiment of this application.

[0411] like Figure 12 As shown, the point cloud attribute prediction device 10 may include:

[0412] Acquisition unit 11 is used to acquire the reconstructed values ​​of the attribute information of the encoded points in the point cloud;

[0413] The range determination unit 13 is used to determine the reference point search range of the point to be encoded from the already encoded points of the point cloud when the index of the point to be encoded is greater than N. The index of the point to be encoded is the order of the point to be encoded in the attribute encoding order, and N is a positive integer.

[0414] The lookup unit 14 is used to find at least one reference point that is closest to the point to be encoded within the reference point lookup range;

[0415] The prediction unit 15 is configured to determine a prediction value of the attribute information of the to-be-encoded point according to the reconstructed value of the attribute information of the at least one reference point.

[0416] In some embodiments, the range determination unit 13 is specifically configured to, when the index of the to-be-encoded point is greater than M, determine M encoded points before the to-be-encoded point in the point cloud in the attribute encoding order as the reference point search range of the to-be-encoded point, where M is greater than N; or,

[0417] In some embodiments, when the index of the to-be-encoded point is greater than N and less than or equal to M, determine all encoded points before the to-be-encoded point in the point cloud in the attribute encoding order as the reference point search range of the to-be-encoded point.

[0418] In some embodiments, the search unit 14 is specifically configured to search for at least one reference point closest to the to-be-encoded point in the reference point search range according to the order from near to far of the to-be-encoded point in the attribute encoding order.

[0419] In some embodiments, the number of the at least one reference point is greater than or equal to P and less than or equal to Q, where P and Q are positive integers, and P is greater than Q.

[0420] In some embodiments, the search unit 14 is specifically configured to, for each candidate point in the reference point search range, determine the candidate point as one reference point of the to-be-encoded point when the number of determined reference points of the to-be-encoded point is less than the P; or,

[0421] In some embodiments, when the number of determined reference points of the to-be-encoded point is greater than or equal to the P and less than the Q, and the first weight of the candidate point is greater than or equal to the minimum value in the first weights of the determined reference points, determine the candidate point as one reference point of the to-be-encoded point, where the first weight of a target point is the reciprocal of the distance between the target point and the to-be-encoded point, and the target point is the candidate point or the determined reference point.

[0422] In some embodiments, when the number of determined reference points of the to-be-encoded point is equal to the Q, and the first weight of the candidate point is greater than the minimum value in the first weights of the determined reference points, or when the number of determined reference points of the to-be-encoded point is equal to the Q, and the first weight of the candidate point is equal to the minimum value in the first weights of the determined reference points, and the index of the candidate point is less than the index of the determined reference point corresponding to the minimum first weight value, replace the determined reference point corresponding to the minimum first weight value with the candidate point.

[0423] In some embodiments, the searching unit 14 is further configured to sort the determined reference points of the to-be-encoded point according to the size of the first weight.

[0424] Optionally, the first weight of the target point is an inverse of a Euclidean distance or a Manhattan distance between the target point and the to-be-encoded point.

[0425] In some embodiments, the predicting unit 15 is further configured to, if the to-be-encoded point is a first point of the point cloud in the attribute encoding order, determine the prediction value of the attribute information of the to-be-encoded point as a preset value; or,

[0426] if the to-be-encoded point is a second point of the point cloud in the attribute encoding order, determine the reconstruction value of the attribute information of the first point of the point cloud in the attribute encoding order as the prediction value of the attribute information of the to-be-encoded point; or,

[0427] if the to-be-encoded point is a third point of the point cloud in the attribute encoding order, determine the prediction value of the attribute information of the to-be-encoded point according to the reconstruction value of the attribute information of the first point of the point cloud in the attribute encoding order and the reconstruction value of the attribute information of the second point.

[0428] In some embodiments, the predicting unit 15 is specifically configured to determine a second weight of each reference point in the at least one reference point; and determine the weighted average value of the reconstruction values of the attribute information of the at least one reference point as the prediction value of the attribute information of the to-be-encoded point according to the second weight of each reference point in the at least one reference point.

[0429] In some embodiments, the predicting unit 15 is specifically configured to, for each reference point in the at least one reference point, determine the inverse of the distance between the reference point and the to-be-encoded point as the second weight of the reference point; or determine the second weight of the reference point as a preset weight value.

[0430] In some embodiments, the predicting unit 15 is specifically configured to determine the inverse of the Euclidean distance or the Manhattan distance between the reference point and the to-be-encoded point as the second weight of the reference point.

[0431] Optionally, the attribute encoding order of the point cloud includes any one of a Morton order and a Hilbert order.

[0432] Optionally, the N is a positive integer greater than or equal to 2.

[0433] Optionally, the M is 128.

[0434] Optionally, the P is 3.

[0435] Optionally, the Q is 6.

[0436] It should be understood that the apparatus embodiments and the method embodiments can correspond to each other, and similar descriptions can be referred to the method embodiments. To avoid repetition, no further description is given here. Specifically, Figure 12 The apparatus 10 shown can correspond to the corresponding subject in the point cloud encoding method for implementing the embodiments of the present application, and the foregoing and other operations and / or functions of each unit in the apparatus 10 are respectively for realizing the corresponding process in the point cloud encoding method. For the sake of brevity, no further description is given here.

[0437] The apparatus and system of the embodiments of the present application are described above from the perspective of functional units in combination with the drawings. It should be understood that the functional units can be realized by hardware, or by instructions in the form of software, or by a combination of hardware and software units. Specifically, the steps of the method embodiments in the embodiments of the present application can be completed by the integrated logic circuit of hardware in the processor and / or instructions in the form of software. The steps of the method disclosed in the embodiments of the present application can be directly embodied as hardware code processing for execution by the processor, or executed by a combination of hardware and software units in the code processing. Alternatively, the software unit can be located in a mature storage medium in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, register, etc. 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 the hardware thereof.

[0438] Figure 13 is a schematic block diagram of an electronic device provided by the embodiments of the present application.

[0439] As Figure 13 shown, the electronic device 30 can be a point cloud decoder or a point cloud encoder as described in the embodiments of the present application, and the electronic device 30 can include:

[0440] The memory 31 and the processor 32, the memory 31 is used to store the computer program 34, and the program code 34 is transmitted to the processor 32. In other words, the processor 32 can call and run the computer program 34 from the memory 31 to realize the method in the embodiments of the present application.

[0441] For example, the processor 32 can be used to execute the steps in the above method 200 according to the instructions in the computer program 34.

[0442] In some embodiments of the present application, the processor 32 can include but is not limited to:

[0443] A general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, etc.

[0444] In some embodiments of the present application, the memory 31 includes, but is not limited to:

[0445] volatile memory and / or non-volatile memory. The non-volatile memory can be a Read-Only Memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an Electrically EPROM (EEPROM), or a flash memory. The volatile memory can be a Random Access Memory (RAM) used as an external cache. By way of example, and not limitation, many forms of RAM can be used, such as a Static RAM (SRAM), a Dynamic RAM (DRAM), a Synchronous DRAM (SDRAM), a Double Data Rate SDRAM (DDR SDRAM), an Enhanced SDRAM (ESDRAM), a synch link DRAM (SLDRAM), and a Direct Rambus RAM (DR RAM).

[0446] In some embodiments of the present application, the computer program 34 can be divided into one or more units, which are stored in the memory 31 and executed by the processor 32 to complete the method provided by the present application. The one or more units can be a series of computer program instruction segments capable of completing a specific function, which are used to describe the execution process of the computer program 34 in the electronic device 30.

[0447] As shown in Figure 13 The electronic device 30 can further include:

[0448] A transceiver 33, which can be connected to the processor 32 or the memory 31.

[0449] 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. The transceiver 33 can include a transmitter and a receiver. The transceiver 33 can further include an antenna, and the number of antennas can be one or more.

[0450] It should be understood that various components in the electronic device 30 are connected through a bus system, which includes a data bus, a power supply bus, a control bus, and a state signal bus, in addition to a data bus.

[0451] The present application also provides a computer storage medium, which stores a computer program, and the computer program enables the computer to execute the method of the above method embodiments when executed by the computer. Alternatively, the present application embodiments also provide a computer program product containing instructions, which enables the computer to execute the method of the above method embodiments when executed by the computer.

[0452] When implemented by using software, the computer program product can be implemented in the form of a computer program product in whole or in part. The computer program product includes one or more computer instructions. When loaded and executed by a computer, the computer program instructions produce the flow or function of the present application embodiments in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions can be transferred from one website, computer, server or data center to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that includes one or more available media sets. The available medium can be a magnetic medium (such as a floppy disk, a hard disk, a magnetic tape), an optical medium (such as a digital video disc (DVD)), or a semiconductor medium (such as a solid state disk (SSD)), etc.

[0453] Those skilled in the art can understand that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be realized in electronic hardware or a combination of computer software and electronic hardware. Whether the functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.

[0454] In several embodiments provided in the present application, it should be understood that the disclosed system, device and method can be implemented in other ways. For example, the device embodiments described above are merely illustrative, for example, the division of the units is only a logical function division, and actual implementation can have another division manner, for example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units or components shown or discussed can be indirect coupling or communication connection through some interfaces, devices or units, and can be electrical, mechanical or other forms.

[0455] The units described as separate components can or can not be physically separated, and the components shown as units can or can not be physical units, that is, they can be located in one place, or can be distributed on a plurality of network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment. For example, the functional units in each embodiment of the present application can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit.

[0456] The above is only a specific embodiment of the present application, but the protection scope of the present application is not limited thereto, and any skilled person in the art can easily think of changes or replacements within the technical scope disclosed in the present application, which should be covered in the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A method for predicting point cloud attributes, characterized in that, include: Decode the point cloud bitstream to obtain the reconstructed attribute information of the decoded points in the point cloud; For a point to be decoded in the point cloud, when the index of the point to be decoded is greater than N, the reference point search range of the point to be decoded is determined from the decoded points of the point cloud, wherein the index of the point to be decoded is the order of the point to be decoded in the attribute decoding order, and N is a positive integer; Within the range of reference points, find at least one reference point that is closest to the point to be decoded; Based on the reconstructed values ​​of the attribute information of the at least one reference point, the predicted values ​​of the attribute information of the point to be decoded are determined; Wherein, the number of the at least one reference point is greater than or equal to P and less than or equal to Q, where P and Q are both positive integers, and P is less than Q. The step of searching within the reference point search range for the nearest at least one reference point to the point to be decoded includes: When the number of known reference points for the point to be decoded is less than P, candidate points within the reference point search range are determined as reference points for the point to be decoded; or, When the number of determined reference points for the point to be decoded is greater than or equal to P, and the first weight of the candidate point is greater than or equal to the minimum value among the first weights of the determined reference points, the candidate point is determined as a reference point for the point to be decoded; wherein, when the index of the point to be decoded is greater than N, determining the reference point search range for the point to be decoded from the decoded points of the point cloud includes: When the index of the point to be decoded is greater than M, the M decoded points in the point cloud preceding the point to be decoded in the attribute decoding order are determined as the reference point search range for the point to be decoded, where M is greater than N; or... When the index of the point to be decoded is greater than N and less than or equal to M, all decoded points in the point cloud that are located before the point to be decoded in the attribute decoding order are determined as the reference point search range of the point to be decoded. The method further includes: If the point to be decoded is the first point in the point cloud in the attribute decoding order, then the predicted value of the attribute information of the point to be decoded is determined to be a preset value; If the point to be decoded is the second point in the point cloud in the attribute decoding order, then the reconstructed attribute information value of the first point in the point cloud in the attribute decoding order is determined as the predicted attribute information value of the point to be decoded; or, If the point to be decoded is the third point in the attribute decoding order of the point cloud, then the predicted value of the attribute information of the point to be decoded is determined based on the reconstructed value of the attribute information of the first point and the reconstructed value of the attribute information of the second point in the attribute decoding order of the point cloud.

2. The method according to claim 1, characterized in that, The first weight of the target point is the reciprocal of the distance between the target point and the point to be decoded, where the target point is either the candidate point or the determined reference point; the step of searching for at least one reference point closest to the point to be decoded within the reference point search range further includes: When the number of determined reference points for the point to be decoded is equal to Q, and the first weight of the candidate point is greater than the minimum value among the first weights of the determined reference points, or when the number of determined reference points for the point to be decoded is equal to Q, and the first weight of the candidate point is equal to the minimum value among the first weights of the determined reference points, and the index of the candidate point is less than the index of the determined reference point corresponding to the minimum first weight value, the candidate point is used to replace the determined reference point corresponding to the minimum first weight value.

3. The method according to claim 1 or 2, characterized in that, The method further includes: The determined reference points of the point to be decoded are sorted according to the magnitude of the first weight.

4. The method according to claim 2, characterized in that, The first weight of the target point is the reciprocal of the Euclidean distance or Manhattan distance between the target point and the point to be decoded.

5. The method according to claim 1, characterized in that, Determining the predicted value of the attribute information of the point to be decoded based on the reconstructed value of the attribute information of the at least one reference point includes: Determine a second weight for each of the at least one reference point; Based on the second weight of each of the at least one reference point, the weighted average of the reconstructed attribute information values ​​of the at least one reference point is determined as the predicted value of the attribute information of the point to be decoded.

6. The method according to claim 5, characterized in that, Determining the second weight of each of the at least one reference point includes: For each of the at least one reference point, the reciprocal of the distance between the reference point and the point to be decoded is determined as the second weight of the reference point; or, The second weight of the reference point is determined to be a preset weight value.

7. The method according to claim 6, characterized in that, The step of determining the reciprocal of the distance between the reference point and the point to be decoded as the second weight of the reference point includes: The reciprocal of the Euclidean distance or Manhattan distance between the reference point and the point to be decoded is determined as the second weight of the reference point.

8. The method according to claim 1, characterized in that, The attribute decoding order of the point cloud can be either the Morton order or the Hilbert order.

9. The method according to claim 1, characterized in that, N is a positive integer greater than or equal to 2.

10. The method according to claim 1, characterized in that, M is 128.

11. The method according to claim 1, characterized in that, The value of P is 3.

12. The method according to claim 1, characterized in that, The value of Q is 6.

13. A method for predicting point cloud attributes, characterized in that, include: Obtain the reconstructed values ​​of the attribute information of the encoded points in the point cloud; For a point to be encoded in the point cloud, when the index of the point to be encoded is greater than N, the reference point search range of the point to be encoded is determined from the already encoded points of the point cloud, wherein the index of the point to be encoded is the order of the point to be encoded in the attribute encoding order, and N is a positive integer; Within the range of reference points, find at least one reference point that is closest to the point to be encoded. Based on the reconstructed values ​​of the attribute information of the at least one reference point, the predicted values ​​of the attribute information of the point to be encoded are determined; Wherein, the number of the at least one reference point is greater than or equal to P and less than or equal to Q, where P and Q are both positive integers, and P is less than Q. The step of searching within the reference point search range for the nearest at least one reference point to the point to be encoded includes: When the number of known reference points for the point to be encoded is less than P, candidate points within the reference point search range are determined as reference points for the point to be encoded; or, When the number of determined reference points of the point to be encoded is greater than or equal to P, and the first weight of the candidate point is greater than or equal to the minimum value among the first weights of the determined reference points, the candidate point is determined as a reference point of the point to be encoded. Wherein, when the index of the point to be encoded is greater than N, determining the reference point search range of the point to be encoded from the already encoded points of the point cloud includes: When the index of the point to be encoded is greater than M, the M encoded points in the point cloud preceding the point to be encoded in the attribute encoding order are determined as the reference point search range for the point to be encoded, where M is greater than N; or... When the index of the point to be encoded is greater than N and less than or equal to M, all the encoded points in the point cloud that are located before the point to be encoded in the attribute encoding order are determined as the reference point search range of the point to be encoded. The method further includes: If the point to be encoded is the first point in the point cloud in the attribute encoding order, then the predicted value of the attribute information of the point to be encoded is determined to be a preset value; If the point to be encoded is the second point in the point cloud in the attribute encoding order, then the reconstructed attribute information value of the first point in the point cloud in the attribute encoding order is determined as the predicted attribute information value of the point to be encoded; or... If the point to be encoded is the third point in the point cloud in the attribute encoding order, then the predicted value of the attribute information of the point to be encoded is determined based on the reconstructed value of the attribute information of the first point and the reconstructed value of the attribute information of the second point in the point cloud in the attribute encoding order.

14. The method according to claim 13, characterized in that, The first weight of the target point is the reciprocal of the distance between the target point and the point to be encoded, where the target point is either the candidate point or the determined reference point; the step of searching for at least one reference point closest to the point to be encoded within the reference point search range further includes: When the number of determined reference points for the point to be encoded is equal to Q, and the first weight of the candidate point is greater than the minimum value among the first weights of the determined reference points, or when the number of determined reference points for the point to be encoded is equal to Q, and the first weight of the candidate point is equal to the minimum value among the first weights of the determined reference points, and the index of the candidate point is less than the index of the determined reference point corresponding to the minimum first weight value, the candidate point is used to replace the determined reference point corresponding to the minimum first weight value.

15. The method according to claim 13 or 14, characterized in that, The method further includes: The determined reference points of the points to be encoded are sorted according to the magnitude of the first weight.

16. The method according to claim 14, characterized in that, The first weight of the target point is the reciprocal of the Euclidean distance or Manhattan distance between the target point and the point to be encoded.

17. The method according to claim 13, characterized in that, Determining the predicted value of the attribute information of the point to be encoded based on the reconstructed value of the attribute information of the at least one reference point includes: Determine a second weight for each of the at least one reference point; Based on the second weight of each of the at least one reference point, the weighted average of the reconstructed attribute information values ​​of the at least one reference point is determined as the predicted value of the attribute information of the point to be encoded.

18. The method according to claim 17, characterized in that, Determining the second weight of each of the at least one reference point includes: For each of the at least one reference point, the reciprocal of the distance between the reference point and the point to be encoded is determined as the second weight of the reference point; or, The second weight of the reference point is determined to be a preset weight value.

19. The method according to claim 18, characterized in that, The step of determining the reciprocal of the distance between the reference point and the point to be encoded as the second weight of the reference point includes: The reciprocal of the Euclidean distance or Manhattan distance between the reference point and the point to be encoded is determined as the second weight of the reference point.

20. The method according to claim 13, characterized in that, The attribute encoding order of the point cloud includes either the Morton order or the Hilbert order.

21. The method according to claim 13, characterized in that, N is a positive integer greater than or equal to 2.

22. The method according to claim 13, characterized in that, M is 128.

23. The method according to claim 13, characterized in that, The value of P is 3.

24. The method according to claim 13, characterized in that, The value of Q is 6.

25. A device for predicting point cloud attributes, characterized in that, include: The decoding unit is used to decode the point cloud bitstream to obtain the reconstructed values ​​of the attribute information of the decoded points in the point cloud; The range determination unit is used to determine the reference point search range of the point to be decoded from the decoded points of the point cloud when the index of the point to be decoded is greater than N. The index of the point to be decoded is the order of the point to be decoded in the attribute decoding order, and N is a positive integer. A search unit is used to search for at least one reference point that is closest to the point to be decoded within the reference point search range. A prediction unit is used to determine the predicted value of the attribute information of the point to be decoded based on the reconstructed value of the attribute information of the at least one reference point. Wherein, the number of the at least one reference point is greater than or equal to P and less than or equal to Q, where P and Q are both positive integers, and P is less than Q, and the search unit is used for: When the number of known reference points for the point to be decoded is less than P, candidate points within the reference point search range are determined as reference points for the point to be decoded; or, When the number of determined reference points of the point to be decoded is greater than or equal to P, and the first weight of the candidate point is greater than or equal to the minimum value among the first weights of the determined reference points, the candidate point is determined as a reference point of the point to be decoded. The range determination unit is used for: When the index of the point to be decoded is greater than M, the M decoded points in the point cloud preceding the point to be decoded in the attribute decoding order are determined as the reference point search range for the point to be decoded, where M is greater than N; or... When the index of the point to be decoded is greater than N and less than or equal to M, all decoded points in the point cloud that are located before the point to be decoded in the attribute decoding order are determined as the reference point search range of the point to be decoded. The prediction unit is further used for: If the point to be decoded is the first point in the point cloud in the attribute decoding order, then the predicted value of the attribute information of the point to be decoded is determined to be a preset value; If the point to be decoded is the second point in the attribute decoding order of the point cloud, then the reconstructed attribute information value of the first point in the attribute decoding order of the point cloud is determined as the predicted attribute information value of the point to be decoded; or, If the point to be decoded is the third point in the attribute decoding order of the point cloud, then the predicted value of the attribute information of the point to be decoded is determined based on the reconstructed value of the attribute information of the first point and the reconstructed value of the attribute information of the second point in the attribute decoding order of the point cloud.

26. A device for predicting point cloud attributes, characterized in that, include: The acquisition unit is used to acquire the reconstructed values ​​of the attribute information of the encoded points in the point cloud; The range determination unit is used to determine the reference point search range of the point to be encoded from the already encoded points of the point cloud when the index of the point to be encoded is greater than N. The index of the point to be encoded is the order of the point to be encoded in the attribute encoding order, and N is a positive integer. A search unit is used to search for at least one reference point that is closest to the point to be encoded within the reference point search range. A prediction unit is used to determine the predicted value of the attribute information of the point to be encoded based on the reconstructed value of the attribute information of the at least one reference point. Wherein, the number of the at least one reference point is greater than or equal to P and less than or equal to Q, where P and Q are both positive integers, and P is less than Q, and the search unit is used for: When the number of known reference points for the point to be encoded is less than P, a candidate point within the reference point search range is determined as a reference point for the point to be encoded; or... When the number of determined reference points of the point to be encoded is greater than or equal to P, and the first weight of the candidate point is greater than or equal to the minimum value among the first weights of the determined reference points, the candidate point is determined as a reference point of the point to be encoded. The range determination unit is used for: When the index of the point to be encoded is greater than M, the M encoded points in the point cloud preceding the point to be encoded in the attribute encoding order are determined as the reference point search range for the point to be encoded, where M is greater than N; or... When the index of the point to be encoded is greater than N and less than or equal to M, all the encoded points in the point cloud that are located before the point to be encoded in the attribute encoding order are determined as the reference point search range of the point to be encoded. The prediction unit is further used for: If the point to be encoded is the first point in the point cloud in the attribute encoding order, then the predicted value of the attribute information of the point to be encoded is determined to be a preset value; If the point to be encoded is the second point in the point cloud in the attribute encoding order, then the reconstructed attribute information value of the first point in the point cloud in the attribute encoding order is determined as the predicted attribute information value of the point to be encoded; or... If the point to be encoded is the third point in the point cloud in the attribute encoding order, then the predicted value of the attribute information of the point to be encoded is determined based on the reconstructed value of the attribute information of the first point and the reconstructed value of the attribute information of the second point in the point cloud in the attribute encoding order.

27. A point cloud decoder, characterized in that, include: Processor and memory; The memory is used to store computer programs; The processor is used to invoke and run a computer program stored in the memory to perform the method as described in any one of claims 1-12.

28. A point cloud encoder, characterized in that, include: Processor and memory; The memory is used to store computer programs; The processor is used to invoke and run a computer program stored in the memory to perform the method as described in any one of claims 13-24.

29. A computer-readable storage medium, characterized in that, Used to store computer programs that cause a computer to perform the method as claimed in any one of claims 1 to 12 or the method as claimed in any one of claims 13 to 24.

Citation Information

Patent Citations

  • Neighbor weight optimization-based point cloud intra-frame prediction method and device

    CN110418135A

  • Neighbor weight-based parameter selection and transmission point cloud attribute encoding and decoding method and equipment

    CN110572655A

  • Point cloud layering method based on space sequence, point cloud prediction method and equipment

    CN112218079A