Attribute prediction method and apparatus in point cloud coding, device, and storage medium
By sequentially calculating the target metric and selecting neighboring points that meet the conditions during point cloud encoding and decoding, and then suspending the search process, the problem of high computational complexity of neighboring points is solved, thus improving encoding and decoding efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- TENCENT TECHNOLOGY (SHENZHEN) CO LTD
- Filing Date
- 2021-08-24
- Publication Date
- 2026-07-14
AI Technical Summary
In the existing point cloud data encoding and decoding process, the computational complexity of selecting neighboring points is high, resulting in low encoding and decoding efficiency.
By executing a search process, the target metrics of candidate points are calculated sequentially, K neighbor points that meet the conditions are selected from the calculated candidate points, and the search process is terminated when the K neighbor points meet the second condition, thus reducing computational complexity.
It effectively reduces the computational complexity of selecting neighbor points during attribute prediction, improves encoding and decoding efficiency, avoids full search, and achieves the goal of quickly selecting neighbor points.
Smart Images

Figure CN115720273B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of point cloud encoding and decoding technology, and in particular to an attribute prediction method, apparatus, device and storage medium in point cloud encoding and decoding. Background Technology
[0002] A point cloud is a set of points in 3D (3D) space, each point having associated properties such as color and material. Point clouds can be used to reconstruct an object or scene from this set of points.
[0003] In the encoding and decoding process of point cloud data, attribute prediction is involved. Attribute prediction refers to selecting K neighboring points from a plurality of candidate points corresponding to the current point, and determining the predicted attribute information of the current point based on the attribute information of the K neighboring points. K is a positive integer, for example, K equals 3. In related technologies, a full search method is used to calculate the distance between each of the plurality of candidate points and the current point, and then select the K candidate points with the smallest distance from the current point as neighboring points.
[0004] Since there are usually hundreds of candidate points, using a full search to select neighbor points results in high computational complexity, which is detrimental to the efficiency of encoding and decoding. Summary of the Invention
[0005] This application provides an attribute prediction method, apparatus, device, and storage medium for point cloud encoding and decoding, which can reduce the computational complexity of selecting neighboring points during attribute prediction, thereby improving encoding and decoding efficiency. The technical solution is as follows:
[0006] According to one aspect of the embodiments of this application, an attribute prediction method in point cloud encoding and decoding is provided, the method comprising:
[0007] Get the N candidate points corresponding to the current point, where N is a positive integer;
[0008] The search process includes sequentially calculating the target metrics corresponding to the N candidate points.
[0009] Select K candidate points that satisfy the first condition from the candidate points for which the target metric has been calculated, and K is a positive integer;
[0010] If the K neighbor points satisfy the second condition, the search process is terminated;
[0011] Based on the attribute information of the K neighboring points, the attribute prediction information of the current point is determined.
[0012] According to one aspect of the embodiments of this application, an attribute prediction apparatus for point cloud encoding and decoding is provided, the apparatus comprising:
[0013] The alternative point acquisition module is used to acquire N alternative points corresponding to the current point, where N is a positive integer;
[0014] The search execution module is used to execute the search process, which includes sequentially calculating the target metrics corresponding to the N candidate points.
[0015] The neighbor point selection module is used to select K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points, where K is a positive integer;
[0016] The search termination module is used to terminate the search process if the K neighbor points satisfy the second condition.
[0017] The attribute prediction module is used to determine the attribute prediction information of the current point based on the attribute information of the K neighboring points.
[0018] According to one aspect of the embodiments of this application, a computer device is provided, the computer device including a processor and a memory, the memory storing at least one instruction, at least one program, code set or instruction set, the at least one instruction, the at least one program, the code set or instruction set being loaded and executed by the processor to implement the attribute prediction method in the point cloud encoding and decoding described above.
[0019] According to one aspect of the embodiments of this application, a computer-readable storage medium is provided, wherein at least one instruction, at least one program, code set, or instruction set is stored in the storage medium, wherein the at least one instruction, the at least one program, the code set, or the instruction set is loaded and executed by a processor to implement the attribute prediction method in the point cloud encoding and decoding described above.
[0020] According to one aspect of the embodiments of this application, a computer program product or computer program is provided, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the attribute prediction method in the point cloud encoding and decoding described above.
[0021] The technical solutions provided in this application have at least the following beneficial effects:
[0022] By selecting K candidate points that meet the first condition from the candidate points for which the target metric has been calculated, as K neighbor points, and then determining whether the selected K neighbor points meet the second condition, the search process is terminated if the K neighbor points meet the second condition. That is, for the remaining candidate points for which the target metric has not been calculated, there is no need to continue the calculation, thereby reducing the computational complexity, avoiding the execution of a full search, achieving the goal of quickly selecting neighbor points for attribute prediction, and improving the encoding and decoding efficiency. Attached Figure Description
[0023] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0024] Figure 1 This is a framework diagram of a point cloud application provided in one embodiment of this application;
[0025] Figure 2 This is a schematic diagram of a point cloud coding framework provided in one embodiment of this application;
[0026] Figure 3 This is a schematic diagram of a point cloud in the original Morton order provided in one embodiment of this application;
[0027] Figure 4 This is a schematic diagram of a point cloud under offset Morton order provided in one embodiment of this application;
[0028] Figure 5 This is a simplified block diagram of a communication system provided in one embodiment of this application;
[0029] Figure 6 This is a schematic diagram illustrating the placement of a point cloud encoder and a point cloud decoder in a streaming environment according to an embodiment of this application.
[0030] Figure 7 This is a flowchart of an attribute prediction method in point cloud encoding and decoding provided in one embodiment of this application;
[0031] Figure 8 This is a flowchart of an attribute prediction method in point cloud encoding and decoding provided in another embodiment of this application;
[0032] Figure 9 This is a flowchart of an attribute prediction method in point cloud encoding and decoding provided in another embodiment of this application;
[0033] Figure 10 This is a block diagram of an attribute prediction device in point cloud encoding and decoding provided in one embodiment of this application;
[0034] Figure 11 This is a schematic diagram of the structure of a computer device provided in one embodiment of this application. Detailed Implementation
[0035] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.
[0036] Before describing the embodiments of this application, we will first introduce the background knowledge involved in the embodiments of this application.
[0037] A point cloud is a set of randomly distributed discrete points in space that represent the spatial structure and surface properties of a three-dimensional object or scene. Each point in a point cloud has at least three-dimensional positional information and, depending on the application, may also have color, material, or other information. Typically, each point in a point cloud has the same number of additional attributes.
[0038] Point clouds can flexibly and conveniently represent the spatial structure and surface properties of three-dimensional objects or scenes, and therefore have a wide range of applications. Their main application scenarios can be classified into two categories:
[0039] a) Machine-perceived point clouds, such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, disaster relief robots, etc.
[0040] b) Point clouds perceived by the human eye, such as point cloud application scenarios in digital cultural heritage, free-viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
[0041] Point cloud acquisition methods include, but are not limited to, computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes. 3D scanning can acquire point clouds of static real-world 3D objects or scenes, with a capacity of millions of point clouds per second. 3D photography can acquire point clouds of dynamic real-world 3D objects or scenes, with a capacity of tens of millions of point clouds per second. Furthermore, in the medical field, point clouds of biological tissues and organs can be obtained using magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information. These technologies have reduced the cost and time required for point cloud data acquisition and improved data accuracy. This transformation in point cloud data acquisition methods has made the acquisition of massive amounts of point cloud data possible. With the continuous accumulation of large-scale point cloud data, efficient storage, transmission, publication, sharing, and standardization of point cloud data have become crucial for point cloud applications.
[0042] Point cloud data can be classified into dense point clouds and sparse point clouds based on the method of data acquisition; and into static point clouds and dynamic point clouds based on the temporal type of the data.
[0043] Please refer to Figure 1 This diagram illustrates a point cloud application framework based on an embodiment of this application. Taking G-PCC data as an example, in... Figure 1 In the process, at the transmitting end, a virtual scene (A) of the real world is captured by a set of cameras or a camera device 11 with multiple lenses and sensors. The acquisition result is source point cloud data (B). One or more point cloud frames are encoded by a G-PCC encoder 12 into an encoded G-PCC bitstream (E), including encoded geometric bitstreams and attribute bitstreams. Then, a file encapsulator 13 encapsulates one or more encoded bitstreams (E) into a media file (F) for file playback, or into a sequence (Fs) of initialization segments and media segments for streaming, according to a specific media container file format.
[0044] The file encapsulator 13 also includes metadata in the file or segment (Fs), which is transmitted to the user terminal through the transmission mechanism 14. The file encapsulator 15 on the user side decapsulates (Fs) to obtain one or more decapsulated encoded bit streams (E'), and decodes (E') through the G-PCC decoder 16 to obtain one or more decoded point cloud frames (D'). The rendering component 17 then presents the virtual scene (A') corresponding to one or more point cloud frames (D') on the display component 18.
[0045] Below, in conjunction with Figure 2 A brief introduction to point cloud coding technology. Figure 2 This is a schematic diagram of a point cloud coding framework provided in one embodiment of this application.
[0046] Point cloud data can be categorized into dense point clouds and sparse point clouds based on the data acquisition method; and into static point clouds and dynamic point clouds based on the time series type of the data.
[0047] Modern mainstream point cloud coding technologies can be divided into geometry-based point cloud coding and projection-based point cloud coding, depending on the type of point cloud data. This introduction will use G-PCC (Geometry-based Point Cloud Compression) from the international audio-visual coding standard MPEG (Moving Picture Experts Group) and AVS-PCC (Audio Video Coding Standard-Point Cloud Compression) from the Chinese national digital audio-visual coding standard as examples.
[0048] Both G-PCC and AVS-PCC are designed for static, sparse point clouds, and their encoding frameworks are largely the same. For example... Figure 2 As shown, point cloud encoding includes geometric structure encoding and attribute information encoding. The main operations and processing for geometric structure encoding are as follows:
[0049] S21, Pre-processing: This includes coordinate transformation and voxelization. Through scaling and translation operations, point cloud data in 3D space is converted into integer form, and its smallest geometric position is moved to the origin.
[0050] S22, Geometry encoding: Geometry encoding can include various modes and can be used under different conditions. For example, geometry encoding can include octree-based geometry encoding and triangulation-based geometry encoding, etc.
[0051] Octree-based geometric coding: An octree is a tree-like data structure used in 3D spatial partitioning to uniformly divide a predefined bounding box, with each node having eight child nodes. By using '1' and '0' to indicate whether each child node of the octree is occupied, occupancy code information is obtained as the bitstream of point cloud geometric information.
[0052] Trisoup-based geometric coding divides the point cloud into blocks of a certain size, locates the intersection points of the point cloud surface with the edges of the blocks, and constructs triangles. Geometric information is compressed by encoding the intersection points.
[0053] S23, Geometry quantization: The fineness of quantization is usually determined by the QP (Quantization Parameter). A larger QP value means that coefficients with a wider range of values will be quantized into the same output, thus usually resulting in greater distortion and a lower bit rate. Conversely, a smaller QP value means that coefficients with a smaller range of values will be quantized into the same output, thus usually resulting in less distortion and a higher bit rate. In point cloud encoding, quantization is performed directly on the coordinate information of the points.
[0054] S24, Geometric Entropy Encoding: Taking octree-based geometric coding as an example, statistical compression coding is performed on the occupancy code information of the octree, and finally the binary (0 or 1) compressed bitstream is output. Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal. A commonly used statistical coding method is CABAC (Content Adaptive Binary Arithmetic Coding).
[0055] The main operations and processing for attribute information encoding are as follows:
[0056] S25, Attribute Recoloring: In lossy encoding, 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. Attribute information corresponding to one or more neighboring points in the original point cloud is used as the attribute information for the reconstructed point.
[0057] S26, Attribute Transform Coding: Attribute transformation coding includes three modes that can be used under different conditions.
[0058] Predicting Transform Coding: This method selects a subset of points based on distance, dividing the point cloud into multiple levels of detail (LoD) to achieve a point cloud representation that ranges from coarse to fine. Bottom-up prediction is possible between adjacent levels; that is, neighboring points in the coarse layer predict the attribute information of points introduced in the fine layer, obtaining the corresponding residual signal. The points at the bottom layer are encoded as reference information.
[0059] Lifting Transform: Based on the prediction of the neighboring layers of LoD, a weight update strategy for neighboring points is introduced to finally obtain the predicted attribute values of each point and obtain the corresponding residual signal.
[0060] RAHT (Region Adaptive Hierarchical Transform): The attribute information is transformed into the transform domain by RAHT, and the transformed coefficients are called the transform coefficients.
[0061] S27, Attribute quantization: The fineness of quantization is usually determined by QP. In predictive transform coding and boosting transform coding, the residual values are quantized and then entropy encoded; in RAHT, the transform coefficients are quantized and then entropy encoded.
[0062] S28, Attribute entropy coding: The quantized attribute residual signal or transform coefficients are generally compressed using run-length coding and arithmetic coding. The corresponding coding mode, quantization parameters, and other information are also encoded using an entropy encoder.
[0063] According to the above encoding process, at the decoding end, after obtaining the compressed bitstream, the decoder first performs entropy decoding to obtain various mode information, quantized geometric information, and attribute information. On one hand, the geometric information is dequantized to obtain the reconstructed 3D point position information. On the other hand, the attribute information is dequantized to obtain residual information, and the reference signal is confirmed according to the adopted transform mode to obtain the reconstructed attribute information. These are then matched one-to-one with the geometric information in sequence to generate the output reconstructed point cloud data.
[0064] The following section introduces and explains the relevant content of attribute predictive coding.
[0065] Taking the reflectivity attribute prediction method as an example, the main operations and processing are as follows:
[0066] (1) Morton order neighbor selection
[0067] This method uses offset Morton coding to find the k encoded points of the current point as neighbors. Specifically, it obtains the coordinates of all point clouds and sorts them according to Morton order 1, such as... Figure 3 As shown.
[0068] Add a fixed value (j1, j2, j3) to the coordinates (x, y, z) of all point clouds, generate the corresponding Morton codes using the new coordinates (x+j1, y+j2, z+j3), and obtain the Morton order 2 according to the Morton sort. Figure 4 As shown.
[0069] Note Figure 3 Points A, B, C, and D in the middle are moved to Figure 4 The Morton codes change at different positions within the code, but their relative positions remain unchanged. Additionally, in... Figure 4 In the problem, point D has a Morton code of 23, and its neighbor point B has a Morton code of 21. Therefore, point B can be found by searching at most two points forward from point D. However, Figure 3 In this case, it takes a maximum of 14 points to search forward from point D (Morton code 16) to find point B (Morton code 2).
[0070] According to the Morton sequence decoding, find the nearest predicted point of the current point. In Morton sequence 1, select the first N points of the current point as candidate points, where N is greater than or equal to 1. In Morton sequence 2, select the first M points of the current point as candidate points, where M is greater than or equal to 1.
[0071] Among the N and M candidate points mentioned above, calculate the distance d from each candidate point to the current point. The coordinates of the current point are (x, y, x), and the coordinates of the candidate points are (x1, y1, z1). The distance d is calculated as d = |x - x1| + |y - y1| + |z - z1|. Select the k decoded points with the smallest distances from these N+M candidate points as the prediction points for the current point. Note that in the PCEM software, j1 = j2 = j3 = 42, k = 3, N = M = 4.
[0072] (2) Selection of Hilbert Order Neighbors
[0073] Find the k nearest points to the current point from the first maxNumOfNeighbours points in the Hilbert order. The default value for maxNumOfNeighbours is 128, and the default value for k is 3. The distance is calculated as the Manhattan distance, i.e., d = |x1-x2| + |y1-y2| + |z1-z2|.
[0074] (3) Calculation of predicted values
[0075] The inverse of the Manhattan distance between the current point and its neighbors is used as the weight, and the attribute prediction value is obtained by calculating the weighted average of the attribute reconstruction values of the k neighbors. Let the geometric coordinates of the current point be (x... i ,y i ,z i ), the geometric coordinates of each neighbor are (x ij ,y ij ,z ij If j = 1, 2, ..., k, then the weight of each reference point is:
[0076]
[0077] Let the attribute reconstruction value of each neighbor be... Then the predicted attribute value A′ of the current point i for:
[0078]
[0079] For the reflectivity attribute, the weight calculation in Equation 1 uses different weights for the components in the x, y, and z directions. Therefore, the weight calculation for each neighbor becomes:
[0080]
[0081] like Figure 5 The diagram illustrates a simplified block diagram of a communication system provided in one embodiment of this application. The communication system 200 includes a plurality of devices that can communicate with each other via, for example, a network 250. For example, the communication system 200 includes a first device 210 and a second device 220 interconnected via the network 250. Figure 5 In this embodiment, the first device 210 and the second device 220 perform unidirectional data transmission. For example, the first device 210 may encode point cloud data, such as a point cloud frame stream acquired by the first device 210, for transmission to the second device 220 via network 250. The encoded point cloud data is transmitted in the form of one or more encoded point cloud bitstreams (or point cloud bitstreams). The second device 220 may receive the encoded point cloud data from network 250, decode the encoded point cloud data to recover the point cloud data, and present the point cloud based on the recovered point cloud data. Unidirectional data transmission is common in applications such as media services.
[0082] In another embodiment, the communication system 200 includes a third device 230 and a fourth device 240 that perform bidirectional transmission of encoded point cloud data. For bidirectional data transmission, each of the third device 230 and the fourth device 240 can encode the point cloud data for transmission over the network 250 to the other device. Each of the third device 230 and the fourth device 240 can also receive encoded point cloud data transmitted by the other device, decode the encoded point cloud data to recover the point cloud data, and display the point cloud on an accessible display device based on the recovered point cloud data.
[0083] exist Figure 5 In the embodiments described herein, the first device 210, the second device 220, the third device 230, and the fourth device 240 may be computer devices such as servers, personal computers, and smartphones, but the principles disclosed in this application are not limited to these. The embodiments of this application are applicable to PCs (Personal Computers), mobile phones, tablets, virtual reality / augmented reality devices, media players, and / or dedicated video conferencing equipment. Network 250 refers to any number of networks that transmit encoded point cloud data between the first device 210, the second device 220, the third device 230, and the fourth device 240, including, for example, wired and / or wireless communication networks. Communication network 250 may exchange data in circuit-switched and / or packet-switched channels. This network may include telecommunications networks, local area networks, wide area networks, and / or the Internet. For the purposes of this application, unless explained below, the architecture and topology of network 250 may be irrelevant to the operation of the disclosures herein.
[0084] As an example, Figure 6 The diagram illustrates the placement of a video encoder and a video decoder in a streaming environment. The subject matter disclosed in this application is equally applicable to other point cloud-supporting applications, including, for example, virtual 3D conferencing, digital TV, storing compressed point clouds on digital media including CDs (Compact Discs), DVDs (Digital Versatile Discs), memory sticks, etc.
[0085] The streaming system may include an acquisition subsystem 313, which may include a point cloud source 301 such as a 3D camera, which creates an uncompressed point cloud data stream 302. The point cloud data stream 302 is depicted as thick lines to emphasize the high data volume of the point cloud data stream, compared to encoded point cloud data 304 (or encoded point cloud bitstream). The point cloud data stream 302 may be processed by an electronic device 320, which includes a point cloud encoder 303 coupled to the point cloud source 301. The point cloud encoder 303 may include hardware, software, or a combination of hardware and software to implement or enforce aspects of the disclosed subject matter as described in more detail below. The encoded point cloud data 304 (or encoded point cloud bitstream) is depicted as thin lines to emphasize the lower data volume of the encoded point cloud data, compared to the point cloud data stream 302, and may be stored on a streaming server 305 for future use. One or more streaming client subsystems, such as... Figure 3 Client subsystems 306 and 308 can access streaming server 305 to retrieve copies 307 and 309 of encoded point cloud data 304. Client subsystem 306 may include, for example, a point cloud decoder 310 in electronic device 330. Point cloud decoder 310 decodes the incoming copy 307 of the encoded point cloud data and produces an output point cloud data stream 311 that can be displayed on display 312 (e.g., a display screen) or another presentation device (not depicted). In some streaming systems, the encoded point cloud data 304, point cloud data 307, and point cloud data 309 (e.g., point cloud bitstream) may be encoded according to certain point cloud encoding / compression standards.
[0086] It should be noted that electronic devices 320 and 330 may include other components (not shown). For example, electronic device 320 may include a point cloud decoder (not shown), and electronic device 330 may also include a point cloud encoder (not shown). The point cloud decoder is used to decode the received encoded point cloud data; the point cloud encoder is used to encode the point cloud data.
[0087] It should be noted that the technical solutions provided in this application embodiment can be applied to source coding standards (Audio Video coding Standard, AVS), such as AVS3 or next-generation video codec standards that support point cloud coding, and this application embodiment does not limit this.
[0088] It should also be noted that the execution entity for each step of the method provided in this application embodiment can be either an encoding device or a decoding device. The technical solutions provided in this application embodiment can be used for attribute prediction during both point cloud encoding and point cloud decoding. Both the encoding and decoding devices can be computer devices, which refer to electronic devices with data computing, processing, and storage capabilities, such as PCs, mobile phones, tablets, media players, virtual reality / augmented reality devices, dedicated video conferencing equipment, servers, etc.
[0089] Furthermore, the method provided in this application can be used alone or in combination with other methods in any order. The encoder and decoder based on the method provided in this application can be implemented by one or more processors or one or more integrated circuits.
[0090] Please refer to Figure 7 This document illustrates a flowchart of an attribute prediction method in point cloud encoding and decoding according to an embodiment of this application. For ease of explanation, the description focuses on a computer device as the execution subject of each step. The method may include the following steps (710-750):
[0091] Step 710: Obtain the N candidate points corresponding to the current point, where N is a positive integer.
[0092] The current point refers to the point currently being encoded / decoded. In the encoding process, the current point refers to the point currently being encoded. In the decoding process, the current point refers to the point currently being decoded.
[0093] The candidate points corresponding to the current point refer to the candidate points used to select the neighboring points of the current point. The neighboring points of the current point are used to provide prediction information for the attribute information of the current point. For example, the attribute prediction information of the current point is determined based on the attribute information of the neighboring points of the current point. The number of candidate points corresponding to the current point can be multiple, that is, N is an integer greater than 1, such as N being 10, 50, 100, 200, etc. This application does not limit this.
[0094] In some embodiments, the candidate points corresponding to the current point can be N encoded / decoded points selected from all encoded / decoded points corresponding to the current point. For the encoding process, the candidate points corresponding to the current point can be N encoded points selected from all encoded points, serving as N candidate points. For the decoding process, the candidate points corresponding to the current point can be N decoded points selected from all decoded points, serving as N candidate points. In this application embodiment, the specific method of selecting N candidate points from all encoded / decoded points is not limited. For example, N encoded / decoded points can be selected backward from the current point in a predetermined order, serving as N candidate points. Of course, this is only exemplary and illustrative; other methods can also be used to select candidate points, and this application does not limit this.
[0095] In some embodiments, the candidate points corresponding to the current point can also be all encoded / decoded points corresponding to the current point. For the encoding process, the candidate points corresponding to the current point can be all encoded points. For the decoding process, the candidate points corresponding to the current point can be all decoded points.
[0096] Step 720: Execute the search process, which includes sequentially calculating the target metrics corresponding to the N candidate points.
[0097] A target metric refers to the metric used when selecting K candidate points as K neighbor points from N candidate points. Optionally, the target metric includes, but is not limited to, at least one of the following: a distance metric and an ordinal metric. The distance metric is a metric related to distance, referring to the distance between the candidate point and the current point, such as Euclidean distance or Manhattan distance. The ordinal metric is a metric related to ordinal numbers, referring to the difference in ordinal numbers between the candidate point and the current point, referred to simply as the ordinal difference. These ordinal numbers can be determined based on the input order of the points in the point cloud at the encoder / decoder, or they can be determined through other sorting methods, such as Morton sort or Hilbert sort. In other words, the target metric includes at least one of the following: the distance between the candidate point and the current point, and the ordinal difference between the candidate point and the current point.
[0098] Furthermore, in this embodiment, the method of sequentially calculating the target metrics corresponding to the N candidate points is not limited. For example, the target metrics corresponding to each candidate point can be calculated sequentially one by one, that is, after calculating the target metrics corresponding to one candidate point, the target metrics corresponding to the next candidate point can be calculated; or, the target metrics corresponding to each p candidate point can be calculated sequentially, that is, the target metrics corresponding to p candidate points can be calculated simultaneously, and after calculating the target metrics corresponding to the current p candidate points, the target metrics corresponding to the next set of p candidate points can be calculated. p can be an integer greater than 1, such as p = 2. This can be determined based on the computing power of the encoding and decoding device, and this application does not limit it.
[0099] Step 730: Select K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points, where K is a positive integer.
[0100] The first condition can be set based on the target metric, and the first condition may vary depending on the target metric. An example will be provided below.
[0101] In some embodiments, the target metric is the distance between the candidate points and the current point. The first condition is that the target metric is minimized. From the candidate points for which the target metric has been calculated, K candidate points with the smallest target metric are selected as K neighbor points. That is, from the candidate points for which the target metric has been calculated, K candidate points with the smallest distance to the current point are selected as K neighbor points. For example, if K=3, and the number of candidate points for which the distance metric has been calculated is 10, then from these 10 candidate points, 3 candidate points with the smallest distance metric (i.e., the smallest distance to the current point) are selected as 3 neighbor points.
[0102] Optionally, the K candidate points satisfying the first condition refer to the K′ candidate points with the smallest target metric, selected from these K′ candidate points based on reference information, where K′ is an integer greater than K. Considering that multiple candidate points may have the same target metric (such as distance) as the current point, for example, among the 10 candidate points with calculated distance metrics, one candidate point has a distance of 1, three candidate points have a distance of 2, and six candidate points have a distance of 3, when K=3, in addition to selecting the candidate point with a distance of 1 as a neighbor point, it is also necessary to further select two candidate points as neighbors from the three candidate points with a distance of 2. At this point, two candidate points can be randomly selected from these three candidate points with a distance of 2 as neighboring points. Alternatively, two candidate points can be selected from these three candidate points with a distance of 2 by combining other reference information. For example, the two candidate points with the smallest sequence number can be selected from these three candidate points with a distance of 2. If the sequence numbers of these three candidate points with a distance of 2 are 5, 8, and 9, then the two candidate points with sequence numbers 5 and 8 can be selected as neighboring points. The sequence number here can be determined based on the input order of each point in the point cloud at the encoder / decoder end, or it can be determined by other sorting methods, such as Morton sort, Hilbert sort, etc. Of course, in some other embodiments, in addition to the sequence number, other reference information can be selected, such as attribute information, order difference (i.e., the difference between the order or sequence number), etc. This application does not limit this.
[0103] In some embodiments, the target metric is the order difference between the candidate points and the current point. The first condition is that the target metric is minimized; therefore, K candidate points with the smallest target metric are selected as K neighbor points from the candidate points whose target metric has been calculated. That is, from the candidate points whose target metric has been calculated, the K candidate points with the smallest order difference from the current point are selected as K neighbor points. Similarly, if the order difference cannot effectively select K neighbor points, other reference information can be combined for selection, such as sequence number, distance, etc., which is not limited in this application.
[0104] Step 740: If the second condition is met by K neighboring points, the search process is terminated.
[0105] Optionally, if K neighbor points satisfy the second condition, the calculation of the remaining candidate points among the N candidate points for which the target metric has not been calculated is stopped. In this embodiment, by setting a termination condition (i.e., the second condition here), the search process is stopped when the selected K neighbor points satisfy the second condition. That is, for the remaining candidate points for which the target metric has not been calculated, there is no need to continue the calculation, thereby reducing computational complexity, avoiding a full search, achieving the goal of quickly selecting neighbor points for attribute prediction, and improving encoding and decoding efficiency.
[0106] In some embodiments, the second condition is that among the selected K neighbor points, the first metric between each neighbor point and the current point is less than or equal to a first threshold. Optionally, the second condition is that among the selected K neighbor points, the first metric between each neighbor point and the current point is less than the first threshold. Optionally, the second condition is that among the selected K neighbor points, the first metric between each neighbor point and the current point is less than or equal to (or not greater than) the first threshold.
[0107] In one example, the first metric is the distance between the current point and its neighboring points. Correspondingly, the first threshold can be called the first distance threshold. Taking the second condition that the first metric between the current point and each of the selected K neighboring points is less than the first threshold as an example, then if the distance between the current point and each of the selected K neighboring points is less than the first distance threshold, the search process is terminated, and step 750 is executed below. Alternatively, taking the second condition that the first metric between the current point and each of the selected K neighboring points is less than or equal to (or not greater than) the first threshold as an example, then if the distance between the current point and each of the selected K neighboring points is less than or equal to (or not greater than) the first distance threshold, the search process is terminated, and step 750 is executed below.
[0108] In another example, the first metric is the order difference between the current point and the neighboring points. Correspondingly, the first threshold can be called the first order difference threshold. Taking the second condition that the first metric between the current point and each of the selected K neighboring points is less than the first threshold as an example, then if the order difference between the current point and each of the selected K neighboring points is less than the first order difference threshold, the search process is terminated, and step 750 is executed below. Alternatively, taking the second condition that the first metric between the current point and each of the selected K neighboring points is less than or equal to (or not greater than) the first threshold as an example, then if the order difference between the current point and each of the selected K neighboring points is less than or equal to (or not greater than) the first order difference threshold, the search process is terminated, and step 750 is executed below.
[0109] It should be noted that, in addition to distance and order difference, other metrics may be used as the first metric, and this application does not limit this.
[0110] Furthermore, the first threshold can be a value agreed upon in advance by the encoder and decoder (e.g., a value specified in the standard), or it can be a value communicated by the encoder to the decoder, such as through the bitstream or other means; this application does not limit this. When the first metric is the distance between neighboring points and the current point, and the corresponding first threshold is a first distance threshold, the value of the first distance threshold can be related to the density of the point cloud. For example, the denser the point cloud, the smaller the value of the first distance threshold can be; conversely, the sparser the point cloud, the larger the value of the first distance threshold can be. In one example, for a dense point cloud, the first distance threshold can be approximately 2-3 times the data precision; for a sparse point cloud, the first distance threshold can be approximately 10 times the data precision; where data precision refers to the average distance between any two points in the point cloud. When the first metric is the order difference between neighboring points and the current point, and the corresponding first threshold is the first order difference threshold, the value of the first order difference threshold can be related to the number of points contained in the point cloud. For example, the more points contained in the point cloud, the larger the value of the first order difference threshold can be; conversely, the fewer points contained in the point cloud, the smaller the value of the first order difference threshold can be. The above description of the first threshold is merely exemplary and explanatory, and is not intended to limit the technical solution of this application. The first threshold can be reasonably set through experiments or experience, and this application does not limit it in this regard.
[0111] In some embodiments, the second condition is that among the K neighbor points, the second metric between every two neighbor points is less than or equal to the second threshold. Taking K=3 as an example, assuming there are 3 neighbor points (first neighbor, second neighbor, and third neighbor), the second condition means that the second metric between the first and second neighbor points is less than or equal to the second threshold, the second metric between the second and third neighbor points is also less than or equal to the second threshold, and the second metric between the first and third neighbor points is also less than or equal to the second threshold. Optionally, the second condition is that among the selected K neighbor points, the second metric between every two neighbor points is less than the second threshold. Optionally, the second condition is that among the selected K neighbor points, the second metric between every two neighbor points is less than or equal to (or not greater than) the second threshold.
[0112] In one example, the second metric is the distance between every two neighboring points. This distance can be any of Euclidean distance, Manhattan distance, etc., and this application does not limit it. Correspondingly, the second threshold can be called the second distance threshold. Taking the second condition as follows: if the second metric between every two selected K neighboring points is less than the second threshold, then the search process is terminated, and step 750 is executed. Alternatively, taking the second condition as follows: if the second metric between every two selected K neighboring points is less than or equal to (or not greater than) the second threshold, then the search process is terminated, and step 750 is executed.
[0113] In another example, the second metric is the difference in attribute information between every two neighboring points. The attribute information here can be any combination of one or more of color, reflectivity, etc., and this application does not limit this. Furthermore, the difference in attribute information can be calculated using the Manhattan distance algorithm or other algorithms, and this application does not limit this. Correspondingly, the second threshold can be called the attribute difference threshold. Taking the second condition as an example where the second metric between every two selected K neighboring points is less than the second threshold, then the search process is terminated and step 750 is executed. Alternatively, taking the second condition as an example where the second metric between every two selected K neighboring points is less than or equal to (or not greater than) the second threshold, then the search process is terminated and step 750 is executed.
[0114] In another example, the second metric is the order difference between every two neighboring points. This order difference also refers to the difference in sequence numbers, which can be determined based on the input order of points in the point cloud at the encoder / decoder, or by other sorting methods such as Morton sorting or Hilbert sorting. This application does not limit this. Correspondingly, the second threshold can be called the second order difference threshold. Taking the second condition that the second metric between every two selected K neighboring points is less than the second threshold as an example, then if the order difference between every two selected K neighboring points is less than the second order difference threshold, the search process is terminated, and step 750 is executed. Alternatively, taking the second condition that the second metric between every two selected K neighboring points is less than or equal to (or not greater than) the second threshold as an example, then if the order difference between every two selected K neighboring points is less than or equal to (or not greater than) the second order difference threshold, the search process is terminated, and step 750 is executed.
[0115] It should be noted that, in addition to distance, difference in attribute information, and order difference, other metrics may be used as the second metric, and this application does not limit this.
[0116] Furthermore, the second threshold can be a value pre-agreed upon by the encoder and decoder (e.g., a value specified in the standard), or a value communicated by the encoder to the decoder, such as through the bitstream or other means; this application does not limit this. When the second metric is the distance between any two neighboring points, and the corresponding second threshold is a second distance threshold, the value of the second distance threshold can be related to the density of the point cloud. For example, the denser the point cloud, the smaller the value of the second distance threshold can be; conversely, the sparser the point cloud, the larger the value of the second distance threshold can be. In one example, for a dense point cloud, the second distance threshold can be approximately 2-3 times the data precision; for a sparse point cloud, the second distance threshold can be approximately 10 times the data precision; where data precision refers to the average distance between any two points in the point cloud. When the second metric is the difference in attribute information between any two neighboring points, and the corresponding second threshold is an attribute difference threshold, the value of the attribute difference threshold can be related to the attribute information of the points contained in the point cloud. When the second metric is the order difference between every two neighboring points, and the corresponding second threshold is the second order difference threshold, the value of the second order difference threshold can be related to the number of points contained in the point cloud. The above description of the second threshold is merely exemplary and explanatory, and is not intended to limit the technical solution of this application. The second threshold can be reasonably set through experiments or experience, and this application does not limit it in this regard.
[0117] Step 750: Determine the attribute prediction information of the current point based on the attribute information of the K neighboring points.
[0118] If the selected K neighbor points satisfy the second condition, the search process is terminated, and the attribute prediction information of the current point can be determined based on the attribute information of the K neighbor points. It should be noted that the above two actions can be performed simultaneously or sequentially, and this application does not limit this.
[0119] Optionally, the attribute information of the K neighboring points is weighted and summed according to their respective weights to obtain the attribute prediction information of the current point. For example, the formula for calculating the attribute prediction information of the current point can be Equation 2 as described above. In addition, the calculation method of the weights corresponding to the neighboring points can refer to Equation 1 or Equation 3 as described above, and this application does not limit it in this way.
[0120] In related technologies, if a full search is used to select K neighbor points from N candidate points, it is necessary to calculate the target metric (e.g., distance) between each of the N candidate points and the current point. After all the target metrics (e.g., distances) of the N candidate points have been calculated, the K candidate points with the smallest target metrics (e.g., distances) are selected as the K neighbor points. Obviously, this method has high computational complexity because it requires calculating the target metrics of all N candidate points. Unlike related technologies, the technical solution provided in this application does not need to wait until all the target metrics of the N candidate points have been calculated before selecting K candidate points as K neighbor points. By setting a first condition, as long as the number of candidate points with calculated target metrics is greater than or equal to K, then K candidate points that satisfy the first condition can be selected as K neighbor points from the candidate points with calculated target metrics. Furthermore, it is determined whether the K neighbor points satisfy the second condition. If the K neighbor points satisfy the second condition, the search process is terminated and there is no need to continue the search process. That is, there is no need to continue calculating the remaining candidate points for which the target metric has not been calculated. The attribute prediction information of the current point is determined directly based on the attribute information of the K neighbor points that satisfy the second condition.
[0121] Optionally, if the selected K neighbor points do not meet the second condition, the search process continues (i.e., the search process is not terminated). The step of selecting K candidate points that meet the first condition from the candidate points with calculated target metrics is executed again, resulting in a newly selected K neighbor points. Then, it is determined whether these K neighbor points (i.e., the newly selected K neighbor points) meet the second condition. If the K neighbor points meet the second condition, the search process is terminated; otherwise, the above loop is repeated until K neighbor points that meet the second condition are finally found. Alternatively, in a few extreme cases, if K neighbor points that meet the second condition are still not found after all the target metrics corresponding to the N candidate points have been calculated, the K candidate points with the smallest target metrics (such as distance) can be selected from the N candidate points as K neighbor points. Of course, by setting the second condition reasonably (such as the first or second threshold in the second condition), this extreme case can be completely avoided, so that the situation will not occur where no K neighbor points satisfying the second condition are found after all N candidate points have been calculated.
[0122] Furthermore, in the encoding process, the attribute residual information of the current point is determined based on the attribute prediction information and the attribute information of the current point; the attribute residual information of the current point is then quantized and entropy encoded to generate the corresponding bitstream. In the decoding process, the attribute residual information of the current point is decoded from the bitstream; the attribute information of the current point is then determined based on the attribute residual information and the attribute prediction information of the current point.
[0123] It should be noted that after selecting K neighbor points in step 730, it is determined whether the selected K neighbor points meet the second condition to decide whether to terminate the search process. During this determination process, the search process can continue, that is, the search process is executed normally, and the candidate points for which the target metric has not been calculated are calculated. In addition, after obtaining the determination result of whether the K neighbor points meet or not meet the second condition, if the determination result is that the K neighbor points do not meet the second condition, then step 730 can be executed again immediately (at this time, the candidate points for the target metric have been calculated, and the candidate points for the target metric have changed from those calculated in the previous execution of step 730, and there are now more candidate points for the target metric). Alternatively, step 730 can be executed again after a set period of time, or when the increase in the number of candidate points for the target metric is greater than or equal to the threshold value. The timing of re-executing step 730 can be flexibly set in various ways. This is only an example and explanation, and this application does not limit it. The aforementioned set duration and threshold value can be values agreed upon in advance by the encoding and decoding ends (e.g., values specified in the standard), or values informed by the encoding end to the decoding end, such as through the bitstream or other means. This application does not limit this. Furthermore, in this embodiment, the specific values of the aforementioned set duration and threshold value are not limited. Taking the threshold value as an example, it can be 10, 20, 30, etc., and can be determined based on the computing power of the encoding / decoding end or on experience. By executing step 730 again after waiting for a set duration, or when the increase in the number of candidate points for the calculated target metric is greater than or equal to the threshold value, it can be ensured that the candidate points for the calculated target metric have a certain increment. This ensures that the K neighbor points selected again are as different as possible from the K neighbor points selected previously, avoiding unnecessary judgment processes and saving equipment processing overhead.
[0124] In summary, the technical solution provided in this application selects K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points. Then, it determines whether the selected K neighbor points meet the second condition. If the K neighbor points meet the second condition, the search process is terminated. That is, for the remaining candidate points for which the target metric has not been calculated, there is no need to continue the calculation, thereby reducing the computational complexity, avoiding the execution of a full search, achieving the purpose of quickly selecting neighbor points for attribute prediction, and improving the encoding and decoding efficiency.
[0125] In an exemplary embodiment, such as Figure 8 As shown, another exemplary embodiment of this application provides an attribute prediction method in point cloud encoding and decoding that may include the following steps (810-850):
[0126] Step 810: Obtain the N candidate points corresponding to the current point, where N is a positive integer.
[0127] Step 820: Execute the search process, which includes sequentially calculating the distance metrics corresponding to the N candidate points.
[0128] Among them, the distance metric refers to the distance between the candidate point and the current point.
[0129] Step 830: Select K candidate points that meet the first condition from the candidate points whose distance metric has been calculated as K neighbor points, where K is a positive integer.
[0130] Step 840: If the K neighbor points satisfy the second condition, the search process is terminated; wherein, the second condition is that the distance metric between each of the K neighbor points and the current point is less than or equal to the first threshold.
[0131] Of course, in some other embodiments, the second condition may also be that among the K neighboring points, the order difference between each neighboring point and the current point is less than or equal to the first threshold.
[0132] Step 850: Determine the attribute prediction information of the current point based on the attribute information of the K neighboring points.
[0133] In an exemplary embodiment, such as Figure 9 As shown, another exemplary embodiment of this application provides an attribute prediction method in point cloud encoding and decoding that may include the following steps (910-950):
[0134] Step 910: Obtain the N candidate points corresponding to the current point, where N is a positive integer.
[0135] Step 920: Execute the search process, which includes sequentially calculating the distance metrics corresponding to the N candidate points.
[0136] Among them, the distance metric refers to the distance between the candidate point and the current point.
[0137] Step 930: Select K candidate points that meet the first condition from the candidate points whose distance metric has been calculated as K neighbor points, where K is a positive integer.
[0138] Step 940: If the K neighbor points satisfy the second condition, terminate the search process; wherein, the second condition is that the distance between any two neighbor points is less than or equal to the second threshold.
[0139] Of course, in some other embodiments, the second condition may also be that the difference in attribute information between any two neighboring points among the K neighboring points is less than or equal to the second threshold; or that the order difference between any two neighboring points among the K neighboring points is less than or equal to the second threshold.
[0140] Step 950: Determine the attribute prediction information of the current point based on the attribute information of the K neighboring points.
[0141] The following are embodiments of the apparatus described in this application, which can be used to execute the embodiments of the method described in this application. For details not disclosed in the apparatus embodiments of this application, please refer to the embodiments of the method described in this application.
[0142] Please refer to Figure 10 This diagram illustrates a block diagram of an attribute prediction device in point cloud encoding and decoding according to an embodiment of this application. The device has the functionality to implement the method example described above; this functionality can be implemented in hardware or by hardware executing corresponding software. The device can be the computer device described above, or it can be mounted on a computer device. The device 1000 may include: a candidate point acquisition module 1010, a search execution module 1020, a neighbor point selection module 1030, a search termination module 1040, and an attribute prediction module 1050.
[0143] The alternative point acquisition module 1010 is used to acquire N alternative points corresponding to the current point, where N is a positive integer.
[0144] The search execution module 1020 is used to execute the search process, which includes sequentially calculating the target metrics corresponding to the N candidate points.
[0145] The neighbor point selection module 1030 is used to select K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points, where K is a positive integer.
[0146] The search termination module 1040 is used to terminate the search process when the K neighbor points meet the second condition.
[0147] The attribute prediction module 1050 is used to determine the attribute prediction information of the current point based on the attribute information of the K neighboring points.
[0148] In some embodiments, the second condition is that among the K neighbor points, the first metric between each neighbor point and the current point is less than or equal to a first threshold.
[0149] In some embodiments, the first metric is the distance between the neighboring point and the current point.
[0150] In some embodiments, the first metric is the order difference between the neighboring point and the current point.
[0151] In some embodiments, the second condition is that among the K neighbor points, the second metric between any two neighbor points is less than or equal to a second threshold.
[0152] In some embodiments, the second metric is the distance between every two neighboring points.
[0153] In some embodiments, the second metric is the difference in attribute information between every two neighboring points.
[0154] In some embodiments, the second metric is the order difference between every two neighboring points.
[0155] In some embodiments, the target metric is the distance between the candidate point and the current point; or, the target metric is the order difference between the candidate point and the current point.
[0156] In some embodiments, the K candidate points that satisfy the first condition refer to:
[0157] The K candidate points with the smallest target metric;
[0158] or,
[0159] From the K′ candidate points with the smallest target metric, K candidate points are selected from the K′ candidate points in combination with reference information, where K′ is an integer greater than K.
[0160] In some embodiments, the N candidate points corresponding to the current point are all the encoded / decoded points corresponding to the current point.
[0161] In some embodiments, the N candidate points corresponding to the current point are N encoded / decoded points selected from all encoded / decoded points corresponding to the current point.
[0162] In some embodiments, the search termination module 1040 is configured to stop calculating the remaining candidate points among the N candidate points for which the target metric has not been calculated when the K neighbor points meet the second condition.
[0163] In some embodiments, the neighbor point selection module 1030 is further configured to, if the K neighbor points do not meet the second condition, perform again the step of selecting K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points;
[0164] During the process of determining whether the K neighbor points meet the second condition, the search process is executed normally.
[0165] In some embodiments, the neighbor point selection module 1030 is further configured to:
[0166] If the K neighbor points do not meet the second condition, after waiting for a set time, the step of selecting K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points is executed again.
[0167] or,
[0168] If the K neighbor points do not meet the second condition, and the number of candidate points for the target metric that have been calculated is greater than or equal to the threshold, the step of selecting K candidate points that meet the first condition from the candidate points for the target metric that have been calculated as K neighbor points is executed again.
[0169] In some embodiments, the apparatus 1000 further includes: a residual determination module and a bitstream generation module. Figure 10 (Not shown in the image).
[0170] The residual determination module is used to determine the attribute residual information of the current point based on the attribute prediction information and the attribute information of the current point during the encoding process.
[0171] The bitstream generation module is used to quantize and entropy encode the attribute residual information of the current point to generate the corresponding bitstream.
[0172] In some embodiments, the apparatus 1000 further includes: a residual acquisition module and an attribute determination module. Figure 10 (Not shown in the image).
[0173] The residual acquisition module is used to decode the attribute residual information of the current point from the bitstream during the decoding process.
[0174] The attribute determination module is used to determine the attribute information of the current point based on the attribute residual information and the attribute prediction information of the current point.
[0175] In summary, the technical solution provided in this application selects K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points. Then, it determines whether the selected K neighbor points meet the second condition. If the K neighbor points meet the second condition, the search process is terminated. That is, for the remaining candidate points for which the target metric has not been calculated, there is no need to continue the calculation, thereby reducing the computational complexity, avoiding the execution of a full search, achieving the purpose of quickly selecting neighbor points for attribute prediction, and improving the encoding and decoding efficiency.
[0176] It should be noted that the apparatus provided in the above embodiments is only illustrated by the division of the above functional modules when implementing its functions. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the apparatus and method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.
[0177] Please refer to Figure 11 This diagram illustrates a structural block diagram of a computer device provided in one embodiment of this application. The computer device can be either the encoding end device or the decoding end device described above. The computer device 150 may include: a processor 151, a memory 152, a communication interface 153, an encoder / decoder 154, and a bus 155.
[0178] The processor 151 includes one or more processing cores, and the processor 151 executes various functional applications and information processing by running software programs and modules.
[0179] The memory 152 can be used to store computer programs, and the processor 151 is used to execute the computer programs to implement the attribute prediction method in the point cloud encoding and decoding described above.
[0180] Communication interface 153 can be used to communicate with other devices, such as receiving and receiving audio and video data.
[0181] The encoder / decoder 154 can be used to implement encoding and decoding functions, such as encoding and decoding audio and video data.
[0182] The memory 152 is connected to the processor 151 via the bus 155.
[0183] Furthermore, the memory 152 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, including but not limited to: magnetic disks or optical disks, EEPROM (Electrically Erasable Programmable Read-Only Memory), EPROM (Erasable Programmable Read-Only Memory), SRAM (Static Random-Access Memory), ROM (Read-Only Memory), magnetic storage, flash memory, and PROM (Programmable Read-Only Memory).
[0184] Those skilled in the art will understand that Figure 11 The structure shown does not constitute a limitation on the computer device 150, and may include more or fewer components than shown, or combine certain components, or use different component arrangements.
[0185] In an exemplary embodiment, a computer-readable storage medium is also provided, which stores at least one instruction, at least one program, code set, or instruction set, wherein the at least one instruction, the at least one program, the code set, or the instruction set implements the attribute prediction method in the point cloud encoding and decoding described above when executed by a processor.
[0186] In an exemplary embodiment, a computer program product or computer program is also provided, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the attribute prediction method in the point cloud encoding / decoding described above.
[0187] It should be understood that "multiple" as used herein refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. Furthermore, the step numbers described herein are merely illustrative of one possible execution order. In some other embodiments, the steps may not be executed in numerical order, such as two steps with different numbers being executed simultaneously, or two steps with different numbers being executed in the reverse order of the illustration. This application does not limit this.
[0188] The above description is merely an exemplary embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.
Claims
1. A method for attribute prediction in point cloud encoding and decoding, characterized in that, The method includes: Get the N candidate points corresponding to the current point, where N is a positive integer; Execute a search process, which includes sequentially calculating a target metric between each of the N candidate points and the current point; Select K candidate points that satisfy the first condition from the candidate points for which the target metric has been calculated, and K is a positive integer. The first condition is set based on the target metric. If the K neighbor points satisfy the second condition, the search process is terminated. The second condition is that the first metric between each of the K neighbor points and the current point is less than or equal to a first threshold, or the second condition is that the second metric between any two of the K neighbor points is less than or equal to a second threshold. Based on the attribute information of the K neighboring points, determine the attribute prediction information of the current point; Wherein, the target metric, the first metric, and the second metric are distance or order difference.
2. The method according to claim 1, characterized in that, The second metric also includes the difference in attribute information between every two neighboring points.
3. The method according to claim 1, characterized in that, The K candidate points that satisfy the first condition refer to: The K candidate points with the smallest target metric; or, The target metric with the smallest From the candidate points, based on the reference information, choose from the... K candidate points were selected from 10 candidate points. It is an integer greater than K.
4. The method according to claim 1, characterized in that, The step of terminating the search process when the K neighbor points satisfy the second condition includes: If the K neighbor points satisfy the second condition, stop calculating the remaining candidate points among the N candidate points for which the target metric has not been calculated.
5. The method according to claim 1, characterized in that, After selecting K candidate points that satisfy the first condition from the candidate points for which the target metric has been calculated as K neighbor points, the method further includes: If the K neighbor points do not meet the second condition, the step of selecting K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points is executed again. During the process of determining whether the K neighbor points meet the second condition, the search process is executed normally.
6. The method according to claim 5, characterized in that, If the K neighbor points do not meet the second condition, the step of selecting K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points is performed again, including: If the K neighbor points do not meet the second condition, after waiting for a set time, the step of selecting K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points is executed again. or, If the K neighbor points do not meet the second condition, and the number of candidate points for the target metric that have been calculated is greater than or equal to the threshold, the step of selecting K candidate points that meet the first condition from the candidate points for the target metric that have been calculated as K neighbor points is executed again.
7. The method according to any one of claims 1 to 6, characterized in that, The N candidate points corresponding to the current point are all the encoded / decoded points corresponding to the current point; or, The N candidate points corresponding to the current point are N encoded / decoded points selected from all encoded / decoded points corresponding to the current point.
8. The method according to any one of claims 1 to 6, characterized in that, The method further includes: For the encoding process, the attribute residual information of the current point is determined based on the attribute prediction information and the attribute information of the current point; the attribute residual information of the current point is quantized and entropy encoded to generate the corresponding bitstream; or, For the decoding process, the attribute residual information of the current point is obtained by decoding from the bitstream; the attribute information of the current point is determined based on the attribute residual information and the attribute prediction information of the current point.
9. An attribute prediction device for point cloud encoding and decoding, characterized in that, The device includes: The alternative point acquisition module is used to acquire N alternative points corresponding to the current point, where N is a positive integer; The search execution module is used to execute the search process, which includes sequentially calculating the target metric between each of the N candidate points and the current point; The neighbor point selection module is used to select K candidate points that meet the first condition from the candidate points for which the target metric has been calculated as K neighbor points, where K is a positive integer and the first condition is set based on the target metric. The search termination module is used to terminate the search process when the K neighbor points meet the second condition. The second condition is that the first metric between each of the K neighbor points and the current point is less than or equal to the first threshold, or the second condition is that the second metric between any two of the K neighbor points is less than or equal to the second threshold. The attribute prediction module is used to determine the attribute prediction information of the current point based on the attribute information of the K neighboring points; Wherein, the target metric, the first metric, and the second metric are distance or order difference.
10. A computer device, characterized in that, The computer device includes a processor and a memory, the memory storing at least one program, the at least one program being loaded and executed by the processor to implement the method as claimed in any one of claims 1 to 8.
11. A computer-readable storage medium, characterized in that, The storage medium stores at least one program segment, which is loaded and executed by a processor to implement the method as described in any one of claims 1 to 8.
12. A computer program product, characterized in that, The computer program product includes computer instructions that are loaded and executed by a processor to implement the method as claimed in any one of claims 1 to 8.