Prediction Method, Encoder, Decoder and Storage Medium for Point Cloud Attributes
By strategically selecting target neighbor points for attribute reconstruction, the method enhances point cloud data prediction efficiency, addressing the inefficiencies in existing methods due to repeated points.
Patent Information
- Application Number
- CN202011439503.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-12-07
- Publication Date
- 2025-07-15
- Estimated Expiration
- 2040-12-07
AI Technical Summary
The existing point cloud prediction methods fail to effectively consider the impact of repeated points in the prediction, resulting in low point prediction efficiency.
By obtaining the nearest N adjacent points of the current point, identifying M repeating points in K first adjacent points, determining the target adjacent points based on the repetitive points, and using the reconstruction attribute information of the target adjacent points for attribute prediction, different target adjacent points selection strategies are designed to improve prediction efficiency.
The efficiency of point cloud attribute prediction is improved and the compression and transmission process of point cloud data is optimized.
Smart Images

Figure CN114598883B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present application relate to the field of video encoding and decoding technologies, and in particular, to a method for predicting point cloud attributes, an encoder, a decoder, and a storage medium. Background Art
[0002] By using a collection device to collect the surface of an object, point cloud data is formed, and the point cloud data includes hundreds of thousands or even more points. During the video production process, the point cloud data is transmitted between a video production device and a video playback device in the form of a point cloud media file. However, such a large number of points poses a challenge to transmission. Therefore, the video production device needs to compress the point cloud data before transmission.
[0003] The compression of point cloud data mainly includes the compression of position information and the compression of attribute information. When compressing attribute information, prediction is used to reduce or eliminate redundant information in the point cloud data. For example, one or more adjacent points of the current point are obtained from the encoded points, and the attribute information of the current point is predicted based on the attribute information of the adjacent points.
[0004] There may be duplicate points with the same position information in the point cloud data, but current point cloud prediction methods do not consider the influence of duplicate points in prediction, and their prediction efficiency is low. Summary of the Invention
[0005] The present application provides a method for predicting point cloud attributes, an encoder, a decoder, and a storage medium, which improves the prediction efficiency of point cloud attributes.
[0006] In a first aspect, the present application provides a method for predicting point cloud attributes, including:
[0007] Obtain point cloud data, and obtain the N encoded points closest to the current point from the point cloud data as the N adjacent points of the current point;
[0008] Obtain K first adjacent points from the N adjacent points, and the K first adjacent points include M duplicate points with the same position information;
[0009] Determine at least one target adjacent point of the current point according to the M duplicate points;
[0010] Predict the attributes of the current point according to the reconstructed attribute information of the at least one target adjacent point;
[0011] Wherein, N, K, and M are all positive integers greater than or equal to 1.
[0012] In a second aspect, the present application provides a method for predicting point cloud attributes, including:
[0013] Parse the code stream to obtain the position information of each point in the point cloud data;
[0014] According to the position information of each point in the point cloud data, obtain N decoded points closest to the current point from the point cloud data as the N adjacent points of the current point;
[0015] Obtain K first adjacent points from the N adjacent points, and the K first adjacent points include M duplicate points with the same position information;
[0016] Determine at least one target adjacent point of the current point according to the M duplicate points;
[0017] Perform attribute prediction on the current point according to the reconstruction attribute information of the at least one target adjacent point;
[0018] Wherein, N, K, and M are all positive integers greater than or equal to 1.
[0019] In a third aspect, an encoder is provided for performing the method in the first aspect or its various implementation manners above. Specifically, the encoder includes functional modules for performing the method in the first aspect or its various implementation manners above.
[0020] In a fourth aspect, a decoder is provided for performing the method in the second aspect or its various implementation manners above. Specifically, the encoder includes functional modules for performing the method in the second aspect or its various implementation manners above.
[0021] In a fifth aspect, an encoder is provided, including a processor and a memory. The memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory to perform the method in the first aspect or its various implementation manners above.
[0022] In a sixth aspect, a decoder is provided, including a processor and a memory. The memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory to perform the method in the second aspect or its various implementation manners above.
[0023] In a seventh aspect, an encoding and decoding system is provided, including an encoder in any one of the second aspect and the fifth aspect or its various implementation manners, and a decoder in any one of the third aspect and the sixth aspect or its various implementation manners.
[0024] In an eighth aspect, a chip is provided for implementing the method in any one of the first aspect to the second aspect or its various implementation manners above. Specifically, the chip includes: a processor for calling and running a computer program from a memory, so that a device installed with the chip executes the method in any one of the first aspect to the second aspect or its various implementation manners above.
[0025] In a ninth aspect, a computer-readable storage medium is provided for storing a computer program, which causes a computer to execute the method in any one of the first aspect to the second aspect or its various implementation manners described above.
[0026] In a tenth aspect, a computer program product is provided, including computer program instructions, which cause a computer to execute the method in any one of the first aspect to the second aspect or its various implementation manners described above.
[0027] In an eleventh aspect, a computer program is provided, which when running on a computer, causes the computer to execute the method in any one of the first aspect to the second aspect or its various implementation manners described above.
[0028] In summary, in the process of predicting the point cloud attributes of this application, according to the distribution of repeated points, different target adjacent point selection strategies are designed to determine at least one target adjacent point of the current point, and the attributes of the current point are predicted based on the reconstruction attribute information of at least one target adjacent point, improving the efficiency of point cloud attribute prediction. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] To more clearly illustrate the technical solutions in the embodiments of the present invention, the following will briefly introduce the drawings required for the description of the embodiments. Obviously, the following drawings are only some embodiments of the present invention. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0030] Figure 1 It is a schematic block diagram of a point cloud video encoding and decoding system related to the embodiments of this application;
[0031] Figure 2 It is a schematic block diagram of the encoding framework provided by the embodiments of this application;
[0032] Figure 3 It is a schematic block diagram of the decoding framework provided by the embodiments of this application;
[0033] Figure 4 It is a flowchart of the method for predicting the attributes of a point cloud provided by an embodiment of this application;
[0034] Figure 5A It is a schematic diagram of the arrangement of the point cloud in the original Morton order;
[0035] Figure 5B It is a schematic diagram of the arrangement of the point cloud in the offset Morton order;
[0036] Figure 5C It is a schematic diagram of the spatial relationship of the adjacent points of the current point;
[0037] Figure 5D Schematic diagram of Morton code relationship between adjacent points coplanar with the current point;
[0038] Figure 5E Schematic diagram of Morton code relationship between adjacent points collinear with the current point;
[0039] Figure 6 Flowchart of the method for predicting point cloud attributes according to another embodiment provided by the embodiment of the present application;
[0040] Figure 7 Schematic block diagram of an encoder according to an embodiment of the present application;
[0041] Figure 8 Schematic block diagram of a decoder according to an embodiment of the present application;
[0042] Figure 9 Schematic block diagram of the electronic device provided by the embodiment of the present application. Detailed implementation manners
[0043] Next, the technical solutions in the embodiments of the present application will be described with reference to the accompanying drawings in the embodiments of the present application.
[0044] It should be understood that in the embodiments of the present invention, "B corresponding to A" means that B is associated with A. In one implementation, B can be determined according to A. However, it should also be understood that determining B according to A does not mean determining B only according to A, and B can also be determined according to A and / or other information.
[0045] In the description of the present application, unless otherwise specified, "a plurality of" means two or more than two.
[0046] In addition, in order to clearly describe the technical solutions in the embodiments of the present application, in the embodiments of the present application, terms such as "first" and "second" are used to distinguish the same items or similar items with basically the same functions and effects. Those skilled in the art can understand that the terms "first" and "second" do not limit the quantity and execution order, and the terms "first" and "second" do not necessarily mean different. To facilitate the understanding of the embodiments of the present application, the relevant concepts involved in the embodiments of the present application are briefly introduced as follows:
[0047] A point cloud is a set of discrete points that are irregularly distributed in space and represent the spatial structure and surface attributes of a three-dimensional object or a three-dimensional scene.
[0048] Point cloud data is the specific recording form of point clouds. The points in a point cloud can include the position information and the attribute information of the points. For example, the position information of a point can be the three-dimensional coordinate information of the point. The position information of a point can also be referred to as the geometric information of the point. For example, the attribute information of a point can include color information and / or reflectance, etc. For example, the color information can be information in any color space. For example, the color information can be (RGB). For another example, the color information can be luminance chrominance (YcbCr, YUV) information. For example, Y represents luminance, Cb (U) represents blue chrominance difference, Cr (V) represents red, and U and V represent chrominance (Chroma) used to describe chrominance difference information. For example, for the point cloud obtained according to the laser measurement principle, the points in the point cloud can include the three-dimensional coordinate information of the points and the laser reflectance of the points. For another example, for the point cloud obtained according to the photogrammetry principle, the points in the point cloud can include the three-dimensional coordinate information of the points and the color information of the points. For another example, by combining the laser measurement and photogrammetry principles to obtain a point cloud, the points in the point cloud can include the three-dimensional coordinate information of the points, the laser reflectance of the points, and the color information of the points.
[0049] The acquisition methods of point cloud data can include but are not limited to at least one of the following: (1) Generated by a computer device. The computer device can generate point cloud data according to virtual three-dimensional objects and virtual three-dimensional scenes. (2) Obtained by 3D (3-Dimension) laser scanning. Through 3D laser scanning, the point cloud data of static real-world three-dimensional objects or three-dimensional scenes can be obtained, and millions of point cloud data can be obtained per second; (3) Obtained by 3D photogrammetry. Through a 3D photographic device (i.e., a set of cameras or a camera device with multiple lenses and sensors), the visual scene of the real world is collected to obtain the point cloud data of the visual scene of the real world. Through 3D photography, the point cloud data of dynamic real-world three-dimensional objects or three-dimensional scenes can be obtained. (4) Obtain the point cloud data of biological tissue organs through medical devices. In the medical field, the point cloud data of biological tissue organs can be obtained through medical devices such as magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information.
[0050] Point clouds can be classified into: dense point clouds and sparse point clouds according to the acquisition methods.
[0051] Point clouds are classified according to the time series type of data into:
[0052] The first static point cloud: that is, the object is stationary and the device for obtaining the point cloud is also stationary;
[0053] The second type of dynamic point cloud: The object is in motion, but the device for acquiring the point cloud is stationary;
[0054] The third type of dynamically acquired point cloud: The device for acquiring the point cloud is in motion.
[0055] Point clouds are classified into two major categories according to their uses:
[0056] Category 1: Machine perception point clouds, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, vision sorting robots, disaster relief robots, etc.;
[0057] Category 2: Human eye perception point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, 3D immersive interaction, etc.
[0058] Duplicate points: Due to the settings of the acquisition technology, or the application requirements during transmission or presentation, there may be multiple points with the same position information, and their attribute information may be the same or different, which are defined as duplicate points.
[0059] Figure 1 It is a schematic block diagram of a point cloud video encoding and decoding system according to an embodiment of the present application. It should be noted that Figure 1 This is just an example. The point cloud video encoding and decoding system of the embodiments of the present application includes but is not limited to Figure 1 as shown. As Figure 1 shown, the point cloud video encoding and decoding system 100 includes an encoding device 110 and a decoding device 120. The encoding device is used to encode (which can be understood as compressing) the point cloud data to generate a bitstream and transmit the bitstream to the decoding device. The decoding device decodes the bitstream generated by the encoding device to obtain the decoded point cloud data.
[0060] The encoding device 110 in the embodiments of the present application can be understood as a device with video encoding functions, and the decoding device 120 can be understood as a device with video decoding functions. That is, the embodiments of the present application include a wider range of devices for the encoding device 110 and the decoding device 120, such as including smartphones, desktop computers, mobile computing devices, notebooks (e.g., laptops) computers, tablet computers, set-top boxes, TVs, cameras, display devices, digital media players, video game consoles, in-vehicle computers, etc.
[0061] In some embodiments, the encoding device 110 can transmit the encoded point cloud data (such as a bitstream) to the decoding device 120 via the 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.
[0062] 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 may modulate the encoded point cloud data according to a communication standard and transmit the modulated point cloud data to the decoding device 120. The communication media includes wireless communication media, such as radio frequency spectrum. Optionally, the communication media may also include wired communication media, such as one or more physical transmission lines.
[0063] In another example, the channel 130 includes a storage medium that can store the point cloud data encoded by the encoding device 110. The storage medium includes various locally accessible data storage media, such as optical discs, DVDs, flash memories, etc. In this example, the decoding device 120 can obtain the encoded point cloud data from the storage medium.
[0064] In another example, the channel 130 may include a storage server that can store the point cloud data encoded by 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 the encoded point cloud data and can 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.
[0065] In some embodiments, the encoding device 110 includes a video encoder 112 and an output interface 113. Among them, the output interface 113 may include a modulator / demodulator (modem) and / or a transmitter.
[0066] In some embodiments, in addition to including the video encoder 112 and the input interface 113, the encoding device 110 may further include a video source 111.
[0067] The video source 111 may include at least one of a video capture device (e.g., a video camera), a video archive, a video input interface, and a computer graphics system. Among them, the video input interface is used to receive point cloud data from a video content provider, and the computer graphics system is used to generate point cloud data.
[0068] The video encoder 112 encodes the point cloud data from the video source 111 to generate a bitstream. The video encoder 112 directly / indirectly transmits the encoded point cloud data to the decoding device 120 via the output interface 113. The encoded point cloud data may also be stored on a storage medium or a storage server for subsequent reading by the decoding device 120.
[0069] In some embodiments, the decoding device 120 includes an input interface 121 and a video decoder 122.
[0070] In some embodiments, in addition to the input interface 121 and the video decoder 122, the decoding device 120 may further include a display device 123.
[0071] Among them, the input interface 121 includes a receiver and / or a modem. The input interface 121 can receive the encoded point cloud data through the channel 130.
[0072] The video decoder 122 is used to decode the encoded point cloud data to obtain the decoded point cloud data, and transmit the decoded point cloud data to the display device 123.
[0073] The display device 123 displays the decoded point cloud data. The display device 123 can be integrated with the decoding device 120 or outside 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.
[0074] In addition, Figure 1 For example only, the technical solutions of the embodiments of the present application are not limited to Figure 1 , for example, the technology of the present application can also be applied to unilateral video encoding or unilateral video decoding.
[0075] Since the point cloud is a collection of a large number of points, storing the point cloud not only consumes a large amount of memory, but also is not conducive to transmission, and there is no such large bandwidth to support the direct transmission of the point cloud at the network layer without compression. Therefore, it is very necessary to compress the point cloud.
[0076] So far, the point cloud can be compressed through a point cloud coding framework.
[0077] The point cloud encoding framework can be the geometry-based point cloud compression (G-PCC) encoding and decoding framework or the video-based point cloud compression (V-PCC) encoding and decoding framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC encoding and decoding framework provided by the Audio Video Standard (AVS) organization. Both G-PCC and AVS-PCC are for static sparse point clouds, and their encoding frameworks are roughly the same. The G-PCC encoding and decoding framework can be used to compress the first static point cloud and the third type of dynamically acquired point cloud, and the V-PCC encoding and decoding framework can be used to compress the second type of dynamic point cloud. The G-PCC encoding and decoding framework is also called the point cloud codec TMC13, and the V-PCC encoding and decoding framework is also called the point cloud codec TMC2.
[0078] The following uses the G-PCC encoding and decoding framework to illustrate the encoding and decoding framework applicable to the embodiments of the present application.
[0079] Figure 2 It is a schematic block diagram of the encoding framework provided by the embodiments of the present application.
[0080] As Figure 2 shown, the encoding framework 200 can obtain the position information (also called geometric information or geometric position) and attribute information of the point cloud from the acquisition device. The encoding of the point cloud includes position encoding and attribute encoding.
[0081] The process of position encoding includes: preprocessing such as coordinate transformation and quantization to remove duplicate points on the original point cloud; after constructing an octree, encoding is performed to form a geometric bitstream.
[0082] The process of attribute encoding includes: by giving the reconstruction information of the position information of the input point cloud and the true value of the attribute information, selecting one of the three prediction modes for point cloud prediction, quantizing the predicted result, and performing arithmetic encoding to form an attribute bitstream.
[0083] As Figure 2 shown, the position encoding can be implemented by the following units:
[0084] The coordinate translation coordinate quantization unit 201, the octree construction unit 202, the octree reconstruction unit 203, and the entropy encoding unit 204.
[0085] The coordinate translation coordinate quantization unit 201 can be used to transform the world coordinates of the points in the point cloud into relative coordinates and quantize the coordinates, which can reduce the number of coordinates; after quantization, originally different points may be assigned the same coordinates.
[0086] The octree construction unit 202 can encode the position information of the quantized points by using the octree coding method. For example, the point cloud is divided in the form of an octree. Thus, the position of the point can be in one-to-one correspondence with the position of the octree. By counting the positions in the octree where there are points and marking their flags as 1, geometric coding is performed.
[0087] The octree reconstruction unit 203 is used to reconstruct the geometric positions of the points in the point cloud to obtain the reconstructed geometric positions of the points.
[0088] The entropy coding unit 204 can perform arithmetic coding on the position information output by the octree construction unit 202 by using the entropy coding method, that is, generating a geometric code stream from the position information output by the octree construction unit 202 by using the arithmetic coding method; the geometric code stream can also be referred to as a geometry bitstream.
[0089] The attribute coding can be implemented through the following units:
[0090] The space transformation unit 210, the attribute interpolation unit 211, the attribute prediction unit 212, the residual quantization unit 213, and the entropy coding unit 214.
[0091] The space transformation unit 210 can be used to transform the RGB color space of the points in the point cloud into the YCbCr format or other formats.
[0092] The attribute interpolation unit 211 can be used to transform the attribute information of the points in the point cloud to minimize attribute distortion. For example, the attribute conversion unit 211 can be used to obtain the true value of the attribute information of the points. For example, the attribute information can be the color information of the points.
[0093] The attribute prediction unit 212 can be used to predict the attribute information of the points in the point cloud to obtain the predicted value of the attribute information of the points, and then obtain the 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 true value of the attribute information of the points minus the predicted value of the attribute information of the points.
[0094] The residual quantization unit 213 can be used to quantize the residual value of the attribute information of the points.
[0095] The entropy coding unit 214 can use zero run length coding to perform entropy coding on the residual value of the attribute information of the points to obtain an attribute code stream. The attribute code stream can be bitstream information.
[0096] Combined Figure 2 , for the geometric structure coding in this application, the main operations and processes are as follows:
[0097] (1) Pre - processing: It includes coordinate transformation and voxelization. Through scaling and translation operations, the point cloud data in 3D space is converted into integer form, and its minimum geometric position is moved to the origin of coordinates.
[0098] (2) Geometry encoding: There are two modes in geometry encoding, which can be used under different conditions.
[0099] (a) Octree - based geometry encoding: An octree is a tree - shaped data structure. In 3D space partitioning, a preset bounding box is evenly divided, and each node has eight child nodes. By using '1' and '0' to indicate whether each child node of the octree is occupied or not, occupancy code information is obtained as the code stream of the point cloud geometry information.
[0100] (b) Trisoup - based geometry encoding: The point cloud is divided into blocks of a certain size, the intersection points of the point cloud surface at the edges of the blocks are located and triangles are constructed. The geometric information is compressed by encoding the intersection point positions.
[0101] (3) Geometry quantization: The fineness of quantization is usually determined by the quantization parameter (QP). The larger the QP value, the larger the range of coefficients will be quantized to the same output, so generally it will bring greater distortion and lower bitrate; on the contrary, the smaller the QP value, the smaller the range of coefficients will be quantized to the same output, so generally it will bring smaller distortion and at the same time correspond to a higher bitrate. In point cloud coding, quantization is directly performed on the coordinate information of the points.
[0102] (4) Geometry entropy encoding: For the occupancy code information of the octree, statistical compression encoding is performed, and finally a binary (0 or 1) compressed code stream is output. Statistical encoding is a lossless encoding method, which can effectively reduce the bitrate required to represent the same signal. The commonly used statistical encoding method is context - adaptive binary arithmetic coding (CABAC).
[0103] For the encoding of attribute information, the main operations and processing are as follows:
[0104] (1) Attribute Recoloring: In the case of lossy coding, after encoding the geometric information, the encoding end needs to decode and reconstruct the geometric information, that is, restore the coordinate information of each point in the 3D point cloud. Search for the attribute information corresponding to one or more neighboring points in the original point cloud as the attribute information of the reconstructed point.
[0105] (2) Attribute Prediction Coding: During attribute prediction coding, based on the neighborhood relationship of geometric information or attribute information, select one or more points as the prediction value, and obtain the final attribute prediction value by calculating the weighted average. Encode the difference between the true value and the prediction value.
[0106] (3) Attribute Transform Coding: There are three modes included in attribute transform coding, which can be used under different conditions.
[0107] (a) Predicting Transform: Select a subset of points according to the distance, divide the point cloud into multiple different levels of detail (LoD), and achieve a point cloud representation from rough to refined. Prediction can be achieved from bottom to top between adjacent layers, that is, the attribute information of the points introduced in the refined layer is predicted by the neighboring points in the rough layer to obtain the corresponding residual signal. Among them, the points in the bottom layer are encoded as reference information.
[0108] (b) Lifting Transform: Based on the prediction between adjacent LoD layers, introduce a weight update strategy for neighboring points, and finally obtain the predicted attribute value of each point to obtain the corresponding residual signal.
[0109] (c) Region Adaptive Hierarchical Transform (RAHT): After the attribute information undergoes the RAHT transform, the signal is converted into the transform domain, which is called the transform coefficient.
[0110] (4) Attribute Information Quantization: The fineness of quantization is usually determined by the quantization parameter (QP). In predicting transform coding and lifting transform coding, the residual values are quantized and then entropy encoded; in RAHT, the transform coefficients are quantized and then entropy encoded.
[0111] (5) Attribute entropy coding: The quantized attribute residual signal or transform coefficients are generally compressed finally by run length coding and arithmetic coding. Information such as the corresponding coding mode and quantization parameters is also encoded using an entropy encoder.
[0112] Figure 3 It is a schematic block diagram of the decoding framework provided by an embodiment of the present application.
[0113] As Figure 3 shown, the decoding framework 300 can obtain the bitstream of the point cloud from the encoding device, and obtain the position information and attribute information of the points in the point cloud by parsing the bitstream. The decoding of the point cloud includes position decoding and attribute decoding.
[0114] The process of position decoding includes: performing arithmetic decoding on the geometric bitstream; merging after constructing an octree to reconstruct the position information of the points to obtain the reconstructed information of the position information of the points; performing coordinate transformation on the reconstructed information of the position information of the points to obtain the position information of the points. The position information of the points can also be referred to as the geometric information of the points.
[0115] The process of attribute decoding includes: obtaining the residual value of the attribute information of the points in the point cloud by parsing the attribute bitstream; performing inverse quantization on the residual value of the attribute information of the points to obtain the residual value of the attribute information of the points after inverse quantization; based on the reconstructed information of the position information of the points obtained in the position decoding process, selecting one of the three prediction modes to perform point cloud prediction to obtain the reconstructed value of the attribute information of the points; performing color space inverse transformation on the reconstructed value of the attribute information of the points to obtain the decoded point cloud.
[0116] As Figure 3 shown, the position decoding can be implemented by the following units:
[0117] Entropy decoding unit 301, octree reconstruction unit 302, inverse coordinate quantization unit 303, and inverse coordinate translation unit 304.
[0118] The attribute encoding can be implemented by the following units:
[0119] Entropy decoding unit 310, inverse quantization unit 311, attribute reconstruction unit 312, and inverse space transformation unit 313.
[0120] Decompression is the inverse process of compression. Similarly, the functions of the respective units in the decoding framework 300 can refer to the functions of the corresponding units in the encoding framework 200.
[0121] At the decoding end, after the decoder obtains the compressed bitstream, entropy decoding is first performed to obtain various mode information, quantized geometric information, and attribute information. First, the geometric information is inverse quantized to obtain the reconstructed 3D point position information. On the other hand, the attribute information is inverse quantized to obtain the residual information, and the reference signal is confirmed according to the adopted transformation mode to obtain the reconstructed attribute information, which corresponds to the geometric information one by one in sequence to generate the output reconstructed point cloud data.
[0122] For example, the decoding framework 300 can divide the point cloud into multiple LoDs according to the Euclidean distance between points in the point cloud; then, the attribute information of the points in the LoD is decoded in sequence; for example, calculate the number of zeros (zero_cnt) in the run-length encoding technology to decode the residuals based on zero_cnt; then, the decoding framework 300 can perform inverse quantization based on the decoded residual values and add the inverse quantized residual values to the predicted values of the current points to obtain the reconstructed values of the point cloud until all the point clouds are decoded. The current point will be used as the nearest neighbor of the points in the subsequent LoD, and the reconstructed value of the current point will be used to predict the attribute information of the subsequent points.
[0123] In the point cloud datasets of MPEG and AVS, there are multiple datasets containing duplicate points, and the proportion of duplicate points is 10%-50%. However, the existing attribute prediction methods do not consider the influence of duplicate points in the prediction, especially under lossless coding conditions. The present application proposes a method for predicting point cloud attributes. According to the distribution of duplicate points, different adjacent point selection strategies are designed during the prediction process to improve the efficiency of point cloud attribute prediction.
[0124] The technical solution of the present application will be elaborated in detail below:
[0125] First, taking the encoding end as an example, the method for predicting point cloud attributes provided by the embodiments of the present application will be described.
[0126] Figure 4 It is a flowchart of the method for predicting point cloud attributes according to an embodiment provided by the embodiments of the present application. The execution subject of this method is a video playback device, such as Figure 4 As shown, the method includes the following steps:
[0127] S401. Obtain the point cloud data, and obtain the N encoded points closest to the current point from the point cloud data as the N adjacent points of the current point.
[0128] It should be noted that in this embodiment, the encoding of the attribute information of the point cloud is performed after the encoding of the position information.
[0129] In some embodiments, adjacent points with encoded attribute information in the point cloud data are obtained, the distances between the encoded adjacent points and the current point are calculated, and according to the magnitudes of the distances, N adjacent points within a predetermined distance range from the current point are selected from the encoded adjacent points as the N adjacent points of the current point. The N adjacent points within the predetermined distance range are the top N adjacent points with the closest distances obtained by comparing the respective distances between the adjacent points and the current point.
[0130] The attribute information of the current point includes color attribute and / or reflectivity attribute.
[0131] In some embodiments, if the attribute information of the current point is reflectivity information, the method in S401 of obtaining the N encoded points closest to the current point from the point cloud data as the N adjacent points of the current point includes but is not limited to the following methods:
[0132] Method 1: When predicting the reflectivity attribute of the current point, Morton order can be used to select the N adjacent points of the current point. Specifically:
[0133] Obtain the coordinates of all the point clouds in the point cloud data, and obtain Morton order 1 according to Morton sorting, as Figure 5A shown.
[0134] Next, add a fixed value (j1, j2, j3) to the coordinates (x, y, z) of all the point clouds, generate the Morton code corresponding to the point cloud with the new coordinates (x + j1, y + j2, z + j3), and obtain Morton order 2 according to Morton sorting, as Figure 5B shown. Note that A, B, C, D in Figure 5A are moved to different positions in Figure 5B , and the corresponding Morton codes also change, but their relative positions remain unchanged. In addition, in Figure 5B , the Morton code of point D is 23, and the Morton code of its adjacent point B is 21. Therefore, at most two points can be searched forward from point D to find point B. However, in Figure 5A , at most 14 points need to be searched forward from point D (Morton code 16) to find point B (Morton code 2).
[0135] According to the Morton order encoding, search for the nearest predicted point of the current point, select the first N1 encoded points of the current point as the N1 adjacent points of the current point in Morton order 1, the value range of N1 is greater than or equal to 1, select the first N2 encoded points of the current point as the N2 adjacent points of the current point in Morton order 2, the value range of N2 is greater than or equal to 1, and N1 + N2 = N, so as to obtain the N adjacent points of the current point.
[0136] Optionally, in the PCEM software, j1 = j2 = j3 = 42, and N1 = N2 = 4.
[0137] In Method 2, calculate the first maxNumOfNeighbours encoded points of the current point in Hilbert order, and use the maxNumOfNeighbours encoded points as the N adjacent points of the current point.
[0138] Optionally, the default value of maxNumOfNeighbours is 128.
[0139] In some embodiments, if the attribute information of the current point is color information, the method in S401 for obtaining the N encoded points closest to the current point from the point cloud data as the N adjacent points of the current point includes:
[0140] The spatial relationship of the adjacent points of the current point is as Figure 5C shown, where the solid box represents the current point. Assume that the search range for adjacent points is the 3X3X3 neighborhood of the current point. First, use the Morton code of the current point to obtain the block with the smallest Morton code value in this 3X3X3 neighborhood, and use this block as the reference block to find the encoded adjacent points coplanar and collinear with the current point. The Morton code relationship between the adjacent points coplanar with the current point within this neighborhood range is as Figure 5D shown, and the Morton code relationship between the adjacent points collinear with the current point is as follows Figure 5E shown.
[0141] Use the reference block to search for the N encoded adjacent points coplanar and collinear with the current point, and use these N adjacent points to predict the attribute of the current point.
[0142] If no encoded adjacent points coplanar and collinear with the current point are found, then use the point corresponding to the previous Morton code of the current point for attribute prediction.
[0143] S402. Obtain K first adjacent points from the N adjacent points, where the K first adjacent points include M duplicate points with the same position information.
[0144] In a possible implementation manner of S402, randomly obtain K first adjacent points from the N adjacent points.
[0145] In another possible implementation of S402, according to the position information of each of the N adjacent points and the position information of the current point, the distance d between each of the N adjacent points and the current point is calculated. For example, if the coordinates of the current point are (x, y, x) and the coordinates of the candidate point are (x1, y1, z1), the distance d is calculated as d = |x - x1| + |y - y1| + |z - z1|. Optionally, the present application may also adopt other distance calculation methods to calculate the distance between each adjacent point and the current point. The first K adjacent points with the smallest distance d among the N adjacent points are used as the K first adjacent points. There are M duplicate points with the same position information among these K first adjacent points.
[0146] S403. Determine at least one target adjacent point of the current point according to the M duplicate points.
[0147] The prior art uses the K first adjacent points obtained in the above S403 as the target adjacent points of the current point to predict the attribute information of the current point. However, the present application takes into account the influence of the M duplicate points among the K first adjacent points on the prediction of the attribute information of the current point. Therefore, at least one target adjacent point of the current point is determined based on the M duplicate points, thereby improving the efficiency of predicting the attribute information of the current point.
[0148] In this step, the implementation process of determining at least one target adjacent point of the current point according to the M duplicate points includes but is not limited to the following several ways:
[0149] The first implementation way: The above S403 includes the following steps S403-A1 and S403-A2:
[0150] S403-A1. Determine a third adjacent point from the M duplicate points;
[0151] S403-A2. Use the third adjacent point as one target adjacent point of the current point.
[0152] The above third adjacent point can be any one of the M duplicate points. Since the position information of the M duplicate points is the same, but the attribute information may be the same or different, the attribute information of the third adjacent point can be determined in the following way:
[0153] One way is to use the attribute value of any one of the M duplicate points as the attribute value of the third adjacent point;
[0154] Another way is to use the average value of the attribute values of the duplicate points among the M duplicate points as the attribute value of the third adjacent point.
[0155] In some embodiments of the first way, the video encoder may also use the K - M first adjacent points among the K first adjacent points except the M duplicate points as the K - M target adjacent points of the current point.
[0156] Further, to make the number of target adjacent points of the current point be K, the embodiments of the present application further include:
[0157] S403-A3: Select M-1 second adjacent points from N adjacent points, where the second adjacent points are different from the first adjacent points.
[0158] S403-A4: Take the M-1 second adjacent points as the M-1 target adjacent points of the current point.
[0159] That is to say, select M-1 second adjacent points from the remaining adjacent points except the K first adjacent points among the N adjacent points, and take these M-1 second adjacent points as the M-1 target adjacent points of the current point. There may be duplicate points or no duplicate points among these M-1 second adjacent points, and the present application does not limit this.
[0160] The implementation manners of the above S403-A3 include but are not limited to the following several manners:
[0161] Manner 1: Arbitrarily select M-1 adjacent points from the N-K adjacent points except the K first adjacent points among the N adjacent points as the second adjacent points.
[0162] Manner 2: Select the M-1 adjacent points with the smallest distance from the current point from the N-K adjacent points as the M-1 second adjacent points, where the N-K adjacent points are the adjacent points except the K first adjacent points among the N adjacent points.
[0163] The second implementation manner: If each point in the point cloud data includes time information, then the above S403 includes S403-B1:
[0164] S403-B1: Select P duplicate points with the same time information as the current point from the M duplicate points as the target adjacent points of the current point, where P is a positive integer.
[0165] Based on the above S403-B1, to make the total number of target adjacent points of the current point be K, the present application may further include S403-B2:
[0166] S403-B2: Select M-P fourth adjacent points from the N adjacent points as the M-P target adjacent points of the current point, where the fourth adjacent points are different from the first adjacent points.
[0167] That is to say, select M-P fourth adjacent points from the remaining adjacent points except the K first adjacent points among the N adjacent points, and take these M-P fourth adjacent points as the M-P target adjacent points of the current point. There may be duplicate points or no duplicate points among these M-P fourth adjacent points, and the present application does not limit this.
[0168] The implementation methods of the above S403-B2 include but are not limited to the following several methods:
[0169] Method 1: Arbitrarily select M-P adjacent points from the N-K adjacent points among the N adjacent points except for the K first adjacent points as the second adjacent points.
[0170] Method 2: Select the M-P adjacent points with the smallest distance from the current point from the N-K adjacent points, where the N-K adjacent points are the adjacent points among the N adjacent points except for the K first adjacent points, as the M-P second adjacent points.
[0171] The third implementation method, the above S403 includes S403-C1:
[0172] S403-C1: Use the first adjacent points among the K first adjacent points except for the M duplicate points as the K-M target adjacent points of the current point. That is to say, remove the M duplicate points.
[0173] Based on the above S403-C1, this application may further include S403-C2:
[0174] S403-C2: Select M adjacent points from the N-K adjacent points as the M target adjacent points of the current point, where the N-K adjacent points are the adjacent points among the N adjacent points except for the K first adjacent points.
[0175] The implementation methods of the above S403-C2 include but are not limited to the following several methods:
[0176] Method 1: Arbitrarily select M adjacent points from the N-K adjacent points among the N adjacent points except for the K first adjacent points as the M target adjacent points of the current point.
[0177] Method 2: Select the M adjacent points with the smallest distance from the current point from the N-K adjacent points, where the N-K adjacent points are the adjacent points among the N adjacent points except for the K first adjacent points, as the M target adjacent points of the current point.
[0178] The fourth implementation method, the above S403 includes S403-D1:
[0179] S403-D1: If the position information of the current point is the same as that of the duplicate points among the M duplicate points, then use the duplicate points with the same attribute information as the current point among the M duplicate points as the target adjacent points of the current point.
[0180] In some embodiments, this application carries the total number of the target adjacent points of the current point in the subsequently formed bitstream.
[0181] In some embodiments, when the total number of target adjacent points of the currently determined current point is less than K, the total number of target adjacent points of the current point is carried in the subsequently formed bitstream. When the total number of target adjacent points of the current point is K, the total number of target adjacent points of the current point is not carried in the subsequently formed bitstream. Correspondingly, when the decoding end does not parse out the total number of target adjacent points of the current point in the bitstream, it is defaulted that the total number of target adjacent points of the current point is K.
[0182] Through the above method, the present application can, after determining at least one target adjacent point of the current point according to the M repeated points, perform the following S404.
[0183] S404. Perform attribute prediction on the current point according to the reconstruction attribute information of at least one target adjacent point.
[0184] In some embodiments, if the attribute information of the current point is reflectivity information, the reflectivity prediction value of the current point is determined according to the following method:
[0185] Take the reciprocal of the Manhattan distance between the target adjacent point and the current point as the weight of the target adjacent point. Assume that the geometric coordinates of the current point are (xi, yi, zi), and the geometric coordinates of each target neighbor are (xij, yij, zij), where j = 1, 2, 3,..., k. Assume that the total number of target adjacent points is K. The weight of the target adjacent point is determined according to the following formula (1):
[0186]
[0187] Optionally, for the reflectivity attribute, different weights are used for the components in the x, y, and z directions. The weight of the target adjacent point is determined according to the following formula (2):
[0188]
[0189] Where a, b, and c are the preset weights of the reflectivity attribute in the x, y, and z directions respectively. Optionally, the a, b, and c can be obtained by looking up a table or be preset fixed values.
[0190] The reflectivity prediction value of the current point is determined according to the following formula (3)
[0191]
[0192] Where is the attribute reconstruction value of the target adjacent point. If the total number of target adjacent points of the current point is K, then j = 1, 2,..., k.
[0193] In some embodiments, if the attribute information of the current point is color information, such as Figure 5D andFigure 5E As shown, for example, taking N = 6 as an example, within a certain range [j - searchRange, j - 1] of the encoded points (the index of the current point is j), search for adjacent points coplanar with the current point. If coplanar encoded adjacent points are found, assign a weight of 2 to the coplanar adjacent points; continue to search for adjacent points collinear with the current point among the encoded points. If collinear adjacent points are found in the encoded point set, assign a weight of 1 to the collinear adjacent points.
[0194] It can be seen therefrom that each target adjacent point of the current point is assigned a weight. According to the weights assigned to the target adjacent points, the attribute reconstruction values of the respective target adjacent points are weighted and averaged to obtain the predicted value of the color attribute of the current point.
[0195] The method for predicting point cloud attributes provided by this application designs different target adjacent point selection strategies during the prediction process according to the distribution of duplicate points, determines at least one target adjacent point of the current point, and performs attribute prediction on the current point based on the reconstruction attribute information of the at least one target adjacent point, thereby improving the efficiency of point cloud attribute prediction.
[0196] In some embodiments, before the above S401, the embodiments of this application further include steps of preprocessing and sorting the duplicate points in the point cloud data. The preprocessing methods include but are not limited to the following several types:
[0197] Method 1: Remove points with the same position information and attribute information from the point cloud data, that is, remove duplicate points with the same attribute values in the point cloud data.
[0198] Method 2: Obtain Q points in the point cloud data with the same position information and different attribute information, where Q is a positive integer greater than or equal to 2; remove Q - 1 of the Q points from the point cloud data, and retain one first point among the Q points. The attribute value of the first point is the average value of the attribute values of the Q points. That is, only one of the duplicate points with different attribute values is retained, and its corresponding attribute value is obtained by calculation, such as arithmetic mean and other methods.
[0199] Method 3: Remove points with the same position information as the current point and different time information from the point cloud data. For example, according to other information of the input point cloud data, such as timestamp information, screen the duplicate points and retain the duplicate points with the same timestamp as the current point.
[0200] The sorting methods include but are not limited to the following several types:
[0201] Method 1: Keep the original input order.
[0202] Method 2: Arrange in ascending or descending order according to the attribute value of the repeated points. If there are multiple attribute values, first sort according to the first attribute value. If the first attribute values are the same, then sort according to the second attribute value, and so on. The first attribute value can be the attribute value of the color attribute, and the second attribute value can be the attribute value of the reflectivity. If there are multiple repeated points with the same attribute values, they are sorted or not sorted according to other possible input information.
[0203] Method 3: Arrange the repeated points in ascending or descending order according to the difference between the attribute value of each repeated point and the attribute value of the current point.
[0204] The above describes the prediction method of the point cloud attributes provided by the embodiments of the present application taking the encoding end as an example. Below, in combination with Figure 6 , taking the decoding end as an example, the technical solution of the present application is introduced.
[0205] Figure 6 is a flowchart of the prediction method of the point cloud attributes of another embodiment provided by the embodiments of the present application. As Figure 6 shown, it includes:
[0206] S601. Parse the code stream to obtain the position information of each point in the point cloud data.
[0207] It should be noted that the decoder parses the code stream, preferentially decodes the position information of the point cloud, and then decodes the attribute information of the point cloud.
[0208] S602. According to the position information of each point in the point cloud data, obtain the N decoded points closest to the current point from the point cloud data as the N adjacent points of the current point.
[0209] For example, according to the position information of each point in the point cloud data and the position information of the current point, obtain the distance between the current point and each point, and according to the distance between the current point and each point, obtain the N decoded points closest to the current point from the point cloud data as the N adjacent points of the current point.
[0210] The specific implementation process of the above S602 can refer to the specific description of the above S401 and will not be elaborated here.
[0211] S603. Obtain K first adjacent points from the N adjacent points. The K first adjacent points include M repeated points with the same position information.
[0212] In one example, according to the position information of each adjacent point among the N adjacent points and the position information of the current point, calculate the distance between each adjacent point among the N adjacent points and the current point, and use the first K adjacent points with the smallest distance d among the N adjacent points as the K first adjacent points.
[0213] Among them, the specific implementation process of the above S603 can refer to the specific description of the above S402, which will not be elaborated here.
[0214] S604. Determine at least one target adjacent point of the current point according to the M repeated points.
[0215] In this step, the implementation process of determining at least one target adjacent point of the current point according to the M repeated points includes but is not limited to the following several ways:
[0216] The first implementation way, the above S604 includes the following steps S604-A1 and S604-A2:
[0217] S604-A1. Determine a third adjacent point from the M repeated points;
[0218] S604-A2. Take the third adjacent point as one target adjacent point of the current point.
[0219] The above third adjacent point can be any one of the M repeated points. Since the position information of the M repeated points is the same, but the attribute information may be the same or different, therefore, the attribute information of the third adjacent point can be determined by the following way.
[0220] For example, take the attribute value of any one of the M repeated points as the attribute value of the third adjacent point; or,
[0221] Take the average value of the attribute values of each repeated point among the M repeated points as the attribute value of the third adjacent point.
[0222] Parse the code stream. If the total number of target adjacent points of the current point carried in the code stream is K - M + 1, then in some embodiments of the first way, the video encoder can also take the K - M first adjacent points other than the M repeated points among the K first adjacent points as the K - M target adjacent points of the current point.
[0223] If the total number of target adjacent points of the current point carried in the code stream is K, or the code stream does not carry the total number information of the target adjacent points of the current point, and it is default that the total number of target adjacent points of the current point is K, then in some embodiments of the first way, the embodiments of the present application further include:
[0224] S604-A3. Select M - 1 second adjacent points from the N adjacent points, and the second adjacent points are different from the first adjacent points.
[0225] S604-A4. Take the M - 1 second adjacent points as the M - 1 target adjacent points of the current point.
[0226] The implementation way of the above S604-A3 includes but is not limited to the following several ways:
[0227] Method 1: Arbitrarily select M - 1 adjacent points from the N - K adjacent points among the N adjacent points excluding the K first adjacent points as the second adjacent points.
[0228] Method 2: Select the M - 1 adjacent points with the smallest distance from the current point from the N - K adjacent points as the M - 1 second adjacent points, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
[0229] The second implementation method: If each point in the point cloud data includes time information, then the above S604 includes S604 - B1 and S604 - B2:
[0230] S604 - B1: Analyze the code stream to obtain the time information of the M repeated points and the time information of the current point;
[0231] S604 - B2: Select P repeated points with the same time information as the current point from the M repeated points as the target adjacent points of the current point, where P is a positive integer.
[0232] Based on the above S604 - B1, if the total number of the target adjacent points of the current point carried in the code stream is K, or the total number information of the target adjacent points of the current point is not carried in the code stream, and it is defaulted that the total number of the target adjacent points of the current point is K, then this implementation method may further include S604 - B2:
[0233] S604 - B2: Select M - P fourth adjacent points from the N adjacent points as the M - P target adjacent points of the current point, where the fourth adjacent points are different from the first adjacent points.
[0234] The implementation methods of the above S604 - B2 include but are not limited to the following methods:
[0235] Method 1: Arbitrarily select M - P adjacent points from the N - K adjacent points among the N adjacent points excluding the K first adjacent points as the second adjacent points.
[0236] Method 2: Select the M - P adjacent points with the smallest distance from the current point from the N - K adjacent points as the M - P second adjacent points, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
[0237] The third implementation method: The above S604 includes S604 - C1:
[0238] S604 - C1: Use the first adjacent points among the K first adjacent points excluding the M repeated points as the K - M target adjacent points of the current point. That is, remove the M repeated points.
[0239] Based on the above S604-C1, if the total number of target adjacent points of the current point carried in the bitstream is K, or the bitstream does not carry the information on the total number of target adjacent points of the current point, then by default when the total number of target adjacent points of the current point is K, this implementation may further include S604-C2:
[0240] S604-C2: Select M adjacent points from the N - K adjacent points as the M target adjacent points of the current point, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
[0241] The implementation of the above S604-C2 includes but is not limited to the following several ways:
[0242] Method 1: Arbitrarily select M adjacent points from the N - K adjacent points among the N adjacent points excluding the K first adjacent points as the M target adjacent points of the current point.
[0243] Method 2: Select the M adjacent points with the smallest distance from the current point from the N - K adjacent points as the M target adjacent points of the current point, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
[0244] The fourth implementation: The above S604 includes S604-D1 and S604-D2:
[0245] S604-D1: Determine whether the position information of the current point is the same as that of the duplicate points among the M duplicate points;
[0246] S604-D2: If the position information of the current point is the same as that of the duplicate points among the M duplicate points, then use the duplicate points with the same attribute information as the current point among the M duplicate points as the target adjacent points of the current point.
[0247] In some embodiments, the above S604-D1 includes but is not limited to the following several ways:
[0248] Method 1: If there is a point among the M duplicate points whose position information is the same as that of the current point, then determine that the position information of the current point is the same as that of the M duplicate points, that is, the current point is a duplicate point.
[0249] Method 2: If the duplicate point identifier included in the current point is the same as the duplicate point flag of the M duplicate points, then determine that the position information of the current point is the same as that of the M duplicate points. It should be noted that the duplicate point identifiers corresponding to the same type of duplicates are the same.
[0250] Method 3: Analyze the bitstream to obtain the repetition point identifier of the first repetition point. If the position information of the current point is the same as that of the first repetition point, it is determined that the position information of the current point is the same as that of the M repetition points. Specifically, analyze the bitstream to obtain the repetition point identifier of the first repetition point. According to the repetition point identifier of the first repetition point, find the first repetition point, and determine whether the position information of the first repetition point is consistent with the position information of the current point. If they are consistent, it is determined that the current point is a repetition point. In this method, it can be understood that the first repetition point is the first repetition point among the M repetition points.
[0251] Method 4: Since the repetition points in the bitstream are arranged in sequence, analyze the bitstream to obtain the repetition point identifier of the first repetition point and the number of repetition points, and obtain the repetition point set according to the first repetition point and the number of repetition points. If the current point belongs to the repetition point set, it is determined that the position information of the current point is the same as that of the M repetition points. It should be noted that the M repetition points may also belong to the repetition point set.
[0252] The above repetition point identifier and the number of repetition points can be carried in the attachment information in the Sequence Parameter Set (SPS), or the Geometry Parameter Set (GPS), or the Attribute Parameter Set (APS).
[0253] In some embodiments, the total number of target adjacent points of the current point is carried in the bitstream of the present application.
[0254] In some embodiments, if the total number of target adjacent points of the current point is not parsed out in the bitstream, the total number of target adjacent points of the current point is defaulted to K.
[0255] Through the above method, the present application can, after determining at least one target adjacent point of the current point according to the M repetition points, perform the following S605.
[0256] S605: Perform attribute prediction on the current point according to the reconstruction attribute information of at least one target adjacent point.
[0257] Wherein, N, K, and M are all positive integers greater than or equal to 1.
[0258] The specific implementation process of the above S605 can refer to the specific description of the above S404, and will not be elaborated here.
[0259] It should be understood that the prediction method 600 of the point cloud attribute is the reverse process of the prediction method 400 of the above point cloud attribute. The steps in the prediction method 600 of the point cloud attribute can refer to the corresponding steps in the prediction method 400 of the point cloud attribute. To avoid repetition, they will not be elaborated here.
[0260] The preferred embodiments of the present application have been described in detail above in conjunction with the accompanying drawings. However, the present application is not limited to the specific details in the above embodiments. Within the scope of the technical concept of the present application, various simple modifications can be made to the technical solutions of the present application, and these simple modifications all fall within the protection scope of the present application. For example, in the various specific technical features described in the above specific embodiments, they can be combined in any suitable manner without contradiction. To avoid unnecessary repetition, the present application will not separately describe various possible combination methods. Again, for example, any combination can be made between various different embodiments of the present application, as long as it does not violate the idea of the present application, it should also be regarded as the content disclosed by the present application.
[0261] It should also be understood that in the various method embodiments of the present application, the magnitudes of the serial numbers of the above processes do not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.
[0262] As described above in conjunction with Figures 1 to 6 , the method embodiments of the present application have been described in detail. Below in conjunction with Figures 7 to 8 , the apparatus embodiments of the present application will be described in detail.
[0263] Figure 7 is a schematic block diagram of an encoder according to an embodiment of the present application.
[0264] As Figure 7 shown, the encoder 700 may include:
[0265] A first acquisition unit 701, configured to acquire point cloud data, and obtain N encoded points closest to the current point from the point cloud data as N adjacent points of the current point;
[0266] A second acquisition unit 702, configured to acquire K first adjacent points from the N adjacent points, and the K first adjacent points include M duplicate points with the same position information;
[0267] A determination unit 703, configured to determine at least one target adjacent point of the current point according to the M duplicate points;
[0268] A prediction unit 704, configured to perform attribute prediction on the current point according to the reconstruction attribute information of at least one target adjacent point;
[0269] Wherein, N, K, and M are all positive integers greater than or equal to 1.
[0270] In some embodiments, the determination unit 703 is specifically configured to determine a third adjacent point from the M duplicate points; and use the third adjacent point as one target adjacent point of the current point.
[0271] In some embodiments, the determining unit 703 is further configured to use the attribute value of any one of the M duplicate points as the attribute value of the third adjacent point; or use the average value of the attribute values of the M duplicate points as the attribute value of the third adjacent point.
[0272] In some embodiments, the determining unit 703 is further configured to use the K - M first adjacent points among the K first adjacent points excluding the M duplicate points as the K - M target adjacent points of the current point.
[0273] In some embodiments, the determining unit 703 is further configured to select M - 1 second adjacent points from the N adjacent points, where the second adjacent points are different from the first adjacent points; and use the M - 1 second adjacent points as the M - 1 target adjacent points of the current point.
[0274] In some embodiments, the determining unit 703 is further configured to select the M - 1 adjacent points with the smallest distance from the current point from the N - K adjacent points as the M - 1 second adjacent points, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
[0275] In some embodiments, the determining unit 703 is specifically configured to select P duplicate points with the same time information as the current point from the M duplicate points as the target adjacent points of the current point, where P is a positive integer.
[0276] In some embodiments, the determining unit 703 is further configured to select M - P fourth adjacent points from the N adjacent points as the M - P target adjacent points of the current point, where the fourth adjacent points are different from the first adjacent points.
[0277] In some embodiments, the determining unit 703 is further configured to select the M - P adjacent points with the smallest distance from the current point from the N - K adjacent points as the M - P second adjacent points, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
[0278] In some embodiments, the determining unit 703 is specifically configured to use the first adjacent points among the K first adjacent points excluding the M duplicate points as the K - M target adjacent points of the current point.
[0279] In some embodiments, the determining unit 703 is further configured to select M adjacent points from the N - K adjacent points as the M target adjacent points of the current point, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
[0280] In some embodiments, the determining unit 703 is specifically configured to, if the current point has the same position information as the M duplicate points, use the duplicate points with the same attribute information as the current point among the M duplicate points as the target adjacent points of the current point.
[0281] In some embodiments, the second obtaining unit 702 is specifically configured to determine the distance between each adjacent point and the current point among the N adjacent points according to the position information of each adjacent point and the position information of the current point among the N adjacent points; and use the first K adjacent points with the smallest distances among the N adjacent points as the K first adjacent points.
[0282] In some embodiments, the first obtaining unit 701 is further configured to obtain Q points in the point cloud data that have the same position information and different attribute information, where Q is a positive integer greater than or equal to 2; remove Q - 1 points among the Q points from the point cloud data, and retain one first point among the Q points, where the attribute value of the first point is the average value of the attribute values of the Q points.
[0283] In some embodiments, the first obtaining unit 701 is further configured to remove points in the point cloud data that have the same position information and the same attribute information.
[0284] In some embodiments, the first obtaining unit 701 is further configured to remove points in the point cloud data that have the same position information as the current point and different time information.
[0285] In some embodiments, the first obtaining unit 701 is further configured to sort the duplicate points with the same position information in the point cloud data according to the magnitude of the attribute values.
[0286] In some embodiments, the prediction unit 704 is further configured to generate an attribute bitstream, where the total number of target adjacent points of the current point is carried in the attribute bitstream.
[0287] It should be understood that the device embodiments and the method embodiments can correspond to each other, and similar descriptions can refer to the method embodiments. To avoid repetition, it will not be elaborated here. Specifically, Figure 7 The illustrated device 700 can execute the embodiments of the above method 400, and the foregoing and other operations and / or functions of each module in the device 700 are respectively for implementing the method embodiments corresponding to the encoder. For the sake of brevity, it will not be elaborated here.
[0288] In the above, the device 700 according to the embodiments of the present application is described from the perspective of functional modules in combination with the accompanying drawings. It should be understood that the functional modules can be implemented in the form of hardware, can also be implemented by instructions in the form of software, and can also be implemented by a combination of hardware and software modules. Specifically, the steps of the method embodiments in the present application can be completed by the integrated logic circuit in the hardware in the processor and / or instructions in the form of software. The steps of the method disclosed in combination with the embodiments of the present application can be directly embodied as being executed and completed by the hardware decoding processor, or executed and completed by a combination of the hardware and software modules in the decoding processor. Optionally, the software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and combines its hardware to complete the steps in the above method embodiments.
[0289] Figure 8 is a schematic block diagram of a decoder according to an embodiment of the present application.
[0290] As Figure 8 shown, the decoder 800 may include:
[0291] A decoding unit 801, configured to parse a bitstream to obtain the position information of each point in the point cloud data;
[0292] A first obtaining unit 802, configured to obtain N decoded points closest to the current point from the point cloud data as N adjacent points of the current point according to the position information of each point in the point cloud data;
[0293] A second obtaining unit 803, configured to obtain K first adjacent points from the N adjacent points, and the K first adjacent points include M duplicate points with the same position information;
[0294] A determining unit 804, configured to determine at least one target adjacent point of the current point according to the M duplicate points;
[0295] A predicting unit 805, configured to perform attribute prediction on the current point according to the reconstruction attribute information of at least one target adjacent point;
[0296] wherein, N, K, and M are all positive integers greater than or equal to 1.
[0297] In some embodiments, the determining unit 804 is specifically configured to determine a third adjacent point from the M duplicate points; and use the third adjacent point as a target adjacent point of the current point.
[0298] In some embodiments, the determining unit 804 is further configured to use the attribute value of any one of the M duplicate points as the attribute value of the third adjacent point; or use the average value of the attribute values of the M duplicate points as the attribute value of the third adjacent point.
[0299] In some embodiments, the determining unit 804 is further configured to use the K - M first adjacent points among the K first adjacent points excluding the M duplicate points as the K - M target adjacent points of the current point.
[0300] In some embodiments, the determining unit 804 is further configured to select M - 1 second adjacent points from the N adjacent points, where the second adjacent points are different from the first adjacent points; and use the M - 1 second adjacent points as the M - 1 target adjacent points of the current point.
[0301] In some embodiments, the determining unit 804 is further configured to select the M - 1 adjacent points with the minimum distance from the current point from the N - K adjacent points as the M - 1 second adjacent points, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
[0302] In some embodiments, the determining unit 804 is specifically configured to parse the code stream to obtain the time information of the M duplicate points and the time information of the current point; and select P duplicate points with the same time information as the current point from the M duplicate points as the target adjacent points of the current point, where P is a positive integer.
[0303] In some embodiments, the determining unit 804 is further configured to select M - P fourth adjacent points from the N adjacent points as the M - P target adjacent points of the current point, where the fourth adjacent points are different from the first adjacent points.
[0304] In some embodiments, the determining unit 804 is specifically configured to select the M - P adjacent points with the minimum distance from the current point from the N - K adjacent points as the M - P second adjacent points, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
[0305] In some embodiments, the determining unit 804 is specifically configured to use the first adjacent points among the K first adjacent points excluding the M duplicate points as the K - M target adjacent points of the current point.
[0306] In some embodiments, the determining unit 804 is further configured to select M adjacent points from the N - K adjacent points as the M target adjacent points of the current point, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
[0307] In some embodiments, the determining unit 804 is further configured to determine whether the location information of the current point is the same as that of the repeated points among the M repeated points; if it is determined that the location information of the current point is the same as that of the M repeated points, then the repeated point among the M repeated points that has the same attribute information as the current point is used as the target adjacent point of the current point.
[0308] In some embodiments, the determining unit 804 is specifically configured to determine that the location information of the current point is the same as that of the M repeated points if there is a point among the M repeated points whose location information is consistent with that of the current point; or, determine that the location information of the current point is the same as that of the M repeated points if the repeated point identifier included in the current point is consistent with the repeated point flag of the M repeated points; or, parse the code stream to obtain the repeated point identifier of the first repeated point, and if the location information of the current point is the same as that of the first repeated point, then determine that the location information of the current point is the same as that of the M repeated points; or, parse the code stream to obtain the repeated point identifier of the first repeated point and the number of repeated points, and obtain a set of repeated points according to the first repeated point and the number of repeated points, where the repeated points in the code stream are arranged in order; if the current point belongs to the set of repeated points, then determine that the location information of the current point is the same as that of the M repeated points.
[0309] It should be understood that the apparatus embodiments and the method embodiments can correspond to each other, and similar descriptions can refer to the method embodiments. To avoid repetition, it will not be elaborated here. Specifically, Figure 8 The illustrated apparatus 800 can execute the method 600 embodiment, and the foregoing and other operations and / or functions of each module in the apparatus 800 are respectively for implementing the corresponding method embodiment of the decoder. For the sake of brevity, it will not be elaborated here.
[0310] The apparatus 800 of the embodiments of the present application has been described above from the perspective of functional modules in conjunction with the accompanying drawings. It should be understood that the functional modules can be implemented in hardware form, or can be implemented by instructions in software form, or can be implemented by a combination of hardware and software modules. Specifically, the steps of the method embodiments in the present application can be completed by the integrated logic circuit in the hardware in the processor and / or instructions in software form. The steps of the method disclosed in conjunction with the embodiments of the present application can be directly embodied as being executed and completed by the hardware decoding processor, or can be executed and completed by a combination of the hardware and software modules in the decoding processor. Optionally, the software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, a register, etc. This storage medium is located in the memory, and the processor reads the information in the memory and combines its hardware to complete the steps in the above method embodiments.
[0311] Figure 9 is a schematic block diagram of an electronic device 900 provided by an embodiment of the present application. Figure 9The electronic device can be the above-mentioned video encoder or video decoder.
[0312] As Figure 9 shown, the electronic device 900 may include:
[0313] A memory 910 and a processor 920. The memory 910 is used to store a computer program 911 and transmit the program code 911 to the processor 920. In other words, the processor 920 can call and run the computer program 911 from the memory 910 to implement the method in the embodiments of the present application.
[0314] For example, the processor 920 can be used to execute the steps in the above method 200 according to the instructions in the computer program 911.
[0315] In some embodiments of the present application, the processor 920 may include but is not limited to:
[0316] General-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0317] In some embodiments of the present application, the memory 910 includes but is not limited to:
[0318] Volatile memory and / or non-volatile memory. Among them, 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), which is used as an external cache. By way of example but not limitation, many forms of RAM are available, such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double DataRate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), synch link DRAM (SLDRAM), and Direct Rambus RAM (DR RAM).
[0319] In some embodiments of the present application, the computer program 911 can be divided into one or more modules, and the one or more modules are stored in the memory 910 and executed by the processor 920 to complete the method for recording a page provided by the present application. The one or more modules can be a series of computer program instruction segments capable of performing specific functions, and the instruction segments are used to describe the execution process of the computer program 911 in the electronic device 900.
[0320] As shown in Figure 9, the electronic device 900 may further include:
[0321] A transceiver 930, which can be connected to the processor 920 or the memory 910.
[0322] Among them, the processor 920 can control the transceiver 930 to communicate with other devices. Specifically, it can send information or data to other devices, or receive information or data sent by other devices. The transceiver 930 can include a transmitter and a receiver. The transceiver 930 may further include an antenna, and the number of antennas can be one or more.
[0323] It should be understood that the components in the electronic device 900 are connected through a bus system. Among them, the bus system includes not only a data bus, but also a power bus, a control bus, and a status signal bus.
[0324] According to one aspect of the present application, there is provided a computer storage medium, on which a computer program is stored. When the computer program is executed by a computer, the computer can execute the methods in the above method embodiments. Or rather, the embodiments of the present application further provide a computer program product containing instructions. When the instructions are executed by a computer, the computer executes the methods in the above method embodiments.
[0325] According to another aspect of the present application, there is provided a computer program product or a computer program. The computer program product or the computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the methods in the above method embodiments.
[0326] In other words, when implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions according to the embodiments of the present application are generated 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 transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center in a wired manner (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or a wireless manner (such as infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that the computer can access or a data storage device such as a server or a data center that includes one or more integrated available media. 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.
[0327] Those of ordinary skill in the art can realize that the modules and algorithm steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of this application.
[0328] In several embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the modules is only a logical function division. In actual implementation, there may be other division methods. For example, multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed couplings or direct couplings or communication connections to each other can be through some interfaces. The indirect couplings or communication connections of the devices or modules can be in electrical, mechanical, or other forms.
[0329] The modules described as separate components may or may not be physically separated. The components shown as modules may or may not be physical modules, that is, they can be located in one place or distributed to multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. For example, in each embodiment of this application, the functional modules can be integrated in a processing module, or each module can exist physically alone, or two or more modules can be integrated in one module.
[0330] The above is only the specific implementation manner of this application, but the protection scope of this application is not limited thereto. Any person skilled in the art within the technical scope disclosed in this application can easily think of changes or substitutions, which should all be covered by the protection scope of this application. Therefore, the protection scope of this application should be subject to the protection scope of the claims.
Claims
1. A method for predicting point cloud attributes, characterized in that, Including: Obtain point cloud data, and according to the reconstruction position information of each point in the point cloud data, obtain N encoded points closest to the current point from the point cloud data as N adjacent points of the current point; Obtain K first adjacent points from the N adjacent points, and the K first adjacent points include M duplicate points with the same reconstruction position information; Determine at least one target adjacent point of the current point according to the M duplicate points; Perform attribute prediction on the current point according to the reconstruction attribute information of the at least one target adjacent point; Wherein, N, K, and M are all positive integers greater than or equal to 1.
2. The method according to claim 1, wherein The determining at least one target adjacent point of the current point according to the M duplicate points includes: Determine a third adjacent point from the M duplicate points; Use the third adjacent point as one of the at least one target adjacent points of the current point.
3. The method according to claim 2, characterized in that, Further including: Use the attribute value of any one of the M duplicate points as the attribute value of the third adjacent point; Or, Use the average value of the attribute values of the M duplicate points as the attribute value of the third adjacent point.
4. The method according to claim 2, wherein The determining at least one target adjacent point of the current point according to the M duplicate points further includes: Use the K-M first adjacent points among the K first adjacent points except the M duplicate points as K-M target adjacent points among the at least one target adjacent points of the current point.
5. The method according to claim 4, wherein The determining at least one target adjacent point of the current point according to the M duplicate points further includes: Select M-1 second adjacent points from the N adjacent points, and the second adjacent points are different from the first adjacent points; Use the M-1 second adjacent points as M-1 target adjacent points among the at least one target adjacent points of the current point.
6. The method according to claim 5, wherein The selecting M-1 second adjacent points from the N adjacent points includes: Select M-1 adjacent points with the smallest distance from the current point from N-K adjacent points as the M-1 second adjacent points, and the N-K adjacent points are the adjacent points among the N adjacent points except the K first adjacent points.
7. The method according to claim 1, characterized in that The determining at least one target adjacent point of the current point according to the M duplicate points includes: Select P duplicate points with the same time information as the current point from the M duplicate points as P target adjacent points among the at least one target adjacent points of the current point, and P is a positive integer.
8. The method according to claim 7, characterized in that The determining at least one target adjacent point of the current point according to the M duplicate points further includes: Select M-P fourth adjacent points from the N adjacent points as M-P target adjacent points among the at least one target adjacent points of the current point, and the fourth adjacent points are different from the first adjacent points.
9. The method according to claim 8, wherein The selecting M-P fourth adjacent points from the N adjacent points includes: Select M-P adjacent points with the smallest distance from the current point from N-K adjacent points as the M-P second adjacent points, and the N-K adjacent points are the adjacent points among the N adjacent points except the K first adjacent points.
10. The method according to claim 1, wherein Determining at least one target adjacent point of the current point according to the M repeated points includes: Taking the first adjacent points among the K first adjacent points except the M repeated points as K - M target adjacent points among the at least one target adjacent points of the current point.
11. The method according to claim 10, wherein Determining at least one target adjacent point of the current point according to the M repeated points further includes: Selecting M adjacent points from the N - K adjacent points as M target adjacent points among the at least one target adjacent points of the current point, where the N - K adjacent points are the adjacent points among the N adjacent points except the K first adjacent points.
12. The method according to claim 1, characterized in that, Determining at least one target adjacent point of the current point according to the M repeated points includes: If the reconstruction position information of the current point is the same as that of the M repeated points, taking the repeated points among the M repeated points with the same attribute information as the current point as the target adjacent points of the current point.
13. The method according to claim 1, characterized in that, Obtaining the K first adjacent points from the N adjacent points includes: Determining the distance between each adjacent point among the N adjacent points and the current point according to the reconstruction position information of each adjacent point among the N adjacent points and the reconstruction position information of the current point; Taking the first K adjacent points with the smallest distances among the N adjacent points as the K first adjacent points.
14. The method according to claim 1, wherein Before obtaining the N adjacent points of the current point from the point cloud data, the method further includes: Obtaining Q points in the point cloud data with the same reconstruction position information and different attribute information, where Q is a positive integer greater than or equal to 2; Removing Q - 1 points among the Q points from the point cloud data and retaining one first point among the Q points, where the attribute value of the first point is the average value of the attribute values of the Q points.
15. The method according to claim 1, characterized in that, Before obtaining the N adjacent points of the current point from the point cloud data, the method further includes: Removing the points with the same reconstruction position information and attribute information from the point cloud data.
16. The method according to claim 1, wherein Before obtaining the N adjacent points of the current point from the point cloud data, the method further includes: Removing the points with the same reconstruction position information as the current point and different time information from the point cloud data.
17. The method according to claim 1, wherein Before obtaining the N adjacent points of the current point from the point cloud data, the method further includes: Sorting the repeated points with the same reconstruction position information in the point cloud data according to the magnitude of the attribute values.
18. The method according to claim 1, characterized in that, Further includes: Generating an attribute bitstream, where the total number of target adjacent points of the current point is carried in the attribute bitstream.
19. A method for predicting point cloud attributes, characterized in that, Includes: Analyzing the bitstream to obtain the reconstruction position information of each point in the point cloud data; According to the reconstruction position information of each point in the point cloud data, obtaining the N decoded points closest to the current point from the point cloud data as the N adjacent points of the current point; Obtaining K first adjacent points from the N adjacent points, where the K first adjacent points include M repeated points with the same reconstruction position information; Determining at least one target adjacent point of the current point according to the M repeated points; Performing attribute prediction on the current point according to the reconstruction attribute information of the at least one target adjacent point; Wherein, N, K, and M are all positive integers greater than or equal to 1.
20. The method according to claim 19, wherein Determining at least one target adjacent point of the current point according to the M repeated points includes: Determining a third adjacent point from the M repeated points; Taking the third adjacent point as one of the at least one target adjacent points of the current point.
21. The method according to claim 20, wherein It further includes: Taking the attribute value of any one of the M repeated points as the attribute value of the third adjacent point; Or, Taking the average value of the attribute values of the M repeated points as the attribute value of the third adjacent point.
22. The method according to claim 20, wherein Determining at least one target adjacent point of the current point according to the M repeated points further includes: Taking the K - M first adjacent points among the K first adjacent points except the M repeated points as the K - M target adjacent points among the at least one target adjacent points of the current point.
23. The method according to claim 22, wherein Determining at least one target adjacent point of the current point according to the M repeated points further includes: Selecting M - 1 second adjacent points from the N adjacent points, where the second adjacent points are different from the first adjacent points; Taking the M - 1 second adjacent points as the M - 1 target adjacent points among the at least one target adjacent points of the current point.
24. The method according to claim 23, wherein The selecting M - 1 second adjacent points from the N adjacent points includes: Selecting the M - 1 adjacent points with the smallest distance from the current point from the N - K adjacent points as the M - 1 second adjacent points, where the N - K adjacent points are the adjacent points among the N adjacent points except the K first adjacent points.
25. The method according to claim 19, wherein Determining at least one target adjacent point of the current point according to the M repeated points includes: Analyzing the code stream to obtain the time information of the M repeated points and the time information of the current point; Selecting P repeated points with the same time information as the current point from the M repeated points as the P target adjacent points among the at least one target adjacent points of the current point, where P is a positive integer.
26. The method according to claim 25, characterized in that Determining at least one target adjacent point of the current point according to the M repeated points further includes: Selecting M - P fourth adjacent points from the N adjacent points as the M - P target adjacent points among the at least one target adjacent points of the current point, where the fourth adjacent points are different from the first adjacent points.
27. The method according to claim 26, wherein The selecting M - P fourth adjacent points from the N adjacent points includes: Selecting the M - P adjacent points with the smallest distance from the current point from the N - K adjacent points as the M - P second adjacent points, where the N - K adjacent points are the adjacent points among the N adjacent points except the K first adjacent points.
28. The method according to claim 19, wherein Determining at least one target adjacent point of the current point according to the M repeated points includes: Taking the first adjacent points among the K first adjacent points except the M repeated points as the K - M target adjacent points among the at least one target adjacent points of the current point.
29. The method according to claim 28, wherein Determining at least one target adjacent point of the current point according to the M repeated points further includes: Select M adjacent points from the N - K adjacent points as M of the at least one target adjacent points of the current point, where the N - K adjacent points are the adjacent points among the N adjacent points excluding the K first adjacent points.
30. The method according to claim 19, characterized in that, The method further includes: Determine whether the reconstruction position information of the current point is the same as that of the M repeated points; The determining, according to the M repeated points, at least one target adjacent point of the current point includes: If it is determined that the reconstruction position information of the current point is the same as that of the repeated points among the M repeated points, then use the repeated points among the M repeated points that have the same attribute information as the current point as the target adjacent points of the current point.
31. The method according to claim 30, characterized in that, The determining whether the reconstruction position information of the current point is the same as that of the M repeated points includes: If there is a point among the M repeated points whose reconstruction position information is consistent with that of the current point, then determine that the reconstruction position information of the current point is the same as that of the M repeated points; or, If the repeated point identifier included in the current point is consistent with the repeated point flag of the M repeated points, then determine that the reconstruction position information of the current point is the same as that of the M repeated points; or, Parse the code stream to obtain the repeated point identifier of the first repeated point. If the reconstruction position information of the current point is the same as that of the first repeated point, then determine that the reconstruction position information of the current point is the same as that of the M repeated points; or, Parse the code stream to obtain the repeated point identifier of the first repeated point and the number of repeated points, and obtain a set of repeated points according to the first repeated point and the number of repeated points, where the repeated points in the code stream are arranged in order together; if the current point belongs to the set of repeated points, then determine that the reconstruction position information of the current point is the same as that of the M repeated points.
32. An encoder, characterized in that, Includes: A first acquisition unit, configured to acquire point cloud data, and obtain, according to the reconstruction position information of each point in the point cloud data, the N encoded points closest to the current point in the point cloud data as the N adjacent points of the current point; A second acquisition unit, configured to acquire K first adjacent points from the N adjacent points, where the K first adjacent points include M repeated points with the same reconstruction position information; A determination unit, configured to determine at least one target adjacent point of the current point according to the M repeated points; A prediction unit, configured to perform attribute prediction on the current point according to the reconstruction attribute information of the at least one target adjacent point; Wherein, N, K, and M are all positive integers greater than or equal to 1.
33. A decoder, characterized in that, Includes: A decoding unit, configured to parse the code stream to obtain the reconstruction position information of each point in the point cloud data; A first acquisition unit, configured to obtain, according to the reconstruction position information of each point in the point cloud data, the N decoded points closest to the current point in the point cloud data as the N adjacent points of the current point; A first acquisition unit, configured to acquire K first adjacent points from the N adjacent points, where the K first adjacent points include M repeated points with the same reconstruction position information; A determination unit, configured to determine at least one target adjacent point of the current point according to the M repeated points; A prediction unit, configured to perform attribute prediction on the current point according to the reconstruction attribute information of the at least one target adjacent point; Wherein, N, K, and M are all positive integers greater than or equal to 1.
34. An electronic device, characterized in that, Comprising: A processor and a memory, the memory is configured to store a computer program, and the processor is configured to call and run the computer program stored in the memory to execute the method according to any one of claims 1 to 18 or 19 to 31.
35. A computer-readable storage medium, characterized in that, For storing a computer program, the computer program causes a computer to execute the method according to any one of claims 1 to 18 or 19 to 31.
Citation Information
Patent Citations
Method and device of processing point cloud data
CN110996098A
Cited By
Point cloud attribute predicting method, encoder, decoder, and storage medium
WO2022121650A1