Encoding method, decoding method, encoder, decoder, storage medium, and bitstream
By skipping or setting the attribute residual value of points that meet specific conditions to 0 in point cloud encoding and decoding, the problem of excessive bit count in the bitstream is solved, achieving more efficient transmission and a simplified decoding process.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
- Filing Date
- 2025-01-17
- Publication Date
- 2026-07-23
AI Technical Summary
In a geometry-based point cloud compression encoding and decoding framework, how to reduce the number of bits in the bitstream to improve transmission efficiency is a problem that needs to be solved.
By determining whether the current point in the point cloud to be encoded or decoded meets the first condition, if it does, the encoding of the attribute residual value corresponding to at least one attribute component is skipped or set to 0, thereby reducing the number of bits transmitted in the bitstream.
This effectively reduces the number of bits in the bitstream, improves transmission efficiency, and reduces the implementation complexity of the decoder.
Smart Images

Figure CN2025072996_23072026_PF_FP_ABST
Abstract
Description
Encoding / decoding methods, codecs, storage media, and bitstreams Technical Field
[0001] This application relates to the field of video encoding and decoding, and more particularly to an encoding and decoding method, an encoder and decoder, a storage medium, and a bitstream. Background Technology
[0002] In the geometry-based point cloud compression (G-PCC) encoding and decoding framework, the geometric information and attribute information of the point cloud are encoded separately. How to reduce the number of bits in the bitstream to improve transmission efficiency during the encoding and decoding of the point cloud's attribute information is a problem that needs to be solved. Summary of the Invention
[0003] This application provides an encoding / decoding method, an encoding / decoding method, a storage medium, and a bitstream. The various aspects involved in this application are described below.
[0004] In a first aspect, a decoding method is provided, applied to a decoder, comprising: determining whether a current point in a point cloud to be decoded satisfies a first condition; if the current point satisfies the first condition, determining that the attribute residual value corresponding to at least one attribute component of the current point is 0.
[0005] Secondly, an encoding method is provided, applied to an encoder, comprising: determining whether a current point in a point cloud to be encoded satisfies a first condition; if the current point satisfies the first condition, then skipping the encoding of the attribute residual value corresponding to at least one attribute component of the current point.
[0006] Thirdly, a decoder is provided, comprising: a first determining unit, configured to determine whether a current point in a point cloud to be decoded satisfies a first condition; and a second determining unit, configured to determine that if the current point satisfies the first condition, the attribute residual value corresponding to at least one attribute component of the current point is 0.
[0007] Fourthly, an encoder is provided, comprising: a first determining unit, configured to determine whether a current point in a point cloud to be encoded satisfies a first condition; and a first processing unit, configured to skip encoding the attribute residual values corresponding to at least one attribute component of the current point if the current point satisfies the first condition.
[0008] Fifthly, a decoder is provided, the decoder comprising: a memory for storing a computer program; and a processor for executing the method as described in the first aspect when running the computer program.
[0009] In a sixth aspect, an encoder is provided, the encoder comprising: a memory for storing a computer program; and a processor for executing the method as described in the second aspect when running the computer program.
[0010] In a seventh aspect, a non-volatile computer-readable storage medium is provided for storing a bit stream, the bit stream being generated by an encoding method using an encoder, or the bit stream being decoded by a decoding method using a decoder, wherein the decoding method is as described in the first aspect and the encoding method is as described in the second aspect.
[0011] Eighthly, a bitstream is provided, the bitstream comprising a bitstream generated by the method described in the second aspect.
[0012] A ninth aspect provides a computer-readable storage medium storing a computer program that, when executed, implements the method described in the first aspect or the method described in the second aspect.
[0013] In a tenth aspect, a computer program product is provided, comprising a computer program that, when executed, implements the method as described in the first or second aspect.
[0014] For a point in the point cloud to be decoded that satisfies the first condition, the embodiment of this application determines the attribute residual value corresponding to at least one attribute component of that point to be 0. In this way, the bitstream does not need to carry the attribute residual value corresponding to at least one attribute component of that point, thereby reducing the number of bits that need to be transmitted in the bitstream and thus improving the transmission efficiency of the bitstream. Attached Figure Description
[0015] Figure 1A is a schematic diagram of a three-dimensional point cloud image.
[0016] Figure 1B is a magnified view of a three-dimensional point cloud image.
[0017] Figure 2A is a schematic diagram of six viewing angles for a point cloud image.
[0018] Figure 2B is a schematic diagram of a data storage format corresponding to a point cloud image.
[0019] Figure 3 is a schematic diagram of a network architecture for point cloud encoding and decoding.
[0020] Figure 4A is a schematic diagram of the component framework of a G-PCC encoder.
[0021] Figure 4B is a schematic diagram of the component framework of a G-PCC decoder.
[0022] Figure 5 is a flowchart of the encoding process for the predicting transform (PT).
[0023] Figure 6 shows an example of how LoD is generated.
[0024] Figure 7 is a schematic diagram of the PT prediction process.
[0025] Figure 8 is a schematic diagram of the forward transformation process in the lifting transform (LT).
[0026] Figure 9 is a schematic diagram of the inverse transformation process in LT.
[0027] Figure 10 is a schematic diagram of the relationship between prediction and update operations in LT.
[0028] Figure 11 is a flowchart illustrating the decoding method provided in an embodiment of this application.
[0029] Figure 12 is a comparison diagram of the code stream structure provided in the embodiments of this application.
[0030] Figure 13 is a flowchart illustrating the encoding method provided in an embodiment of this application.
[0031] Figure 14 is a schematic diagram of the decoding process of LT provided in the embodiment of this application.
[0032] Figure 15A is a more specific schematic flowchart of the encoding method provided in the embodiments of this application.
[0033] Figure 15B is a more specific schematic flowchart of a decoding method provided in an embodiment of this application.
[0034] Figure 16 is a schematic diagram of the structure of a decoder provided in one embodiment of this application.
[0035] Figure 17 is a schematic diagram of the structure of a decoder provided in another embodiment of this application.
[0036] Figure 18 is a schematic diagram of the encoder provided in one embodiment of this application.
[0037] Figure 19 is a schematic diagram of the encoder provided in another embodiment of this application. Detailed Implementation
[0038] Point cloud is a three-dimensional representation of an object's surface. It can be acquired using acquisition devices such as photoelectric radar, lidar, laser scanner, and multi-view camera.
[0039] A point cloud is a set of discrete points in space that are randomly distributed and represent the spatial structure and surface properties of a three-dimensional object or scene. Figure 1A shows a three-dimensional point cloud image and Figure 1B shows a magnified view of a part of the three-dimensional point cloud image. It can be seen that the surface of the point cloud is composed of densely distributed points.
[0040] Two-dimensional images contain information at each pixel, and their distribution is regular, so there's no need to record their positional information separately. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so the position of each point in space needs to be recorded to fully represent a point cloud. Similar to two-dimensional images, each location during acquisition has corresponding attribute information, usually RGB color values, reflecting the color of an object. For point clouds, in addition to color information, a common attribute for each point is reflectance, which reflects the surface material of the object. Therefore, point cloud data typically includes point position information and point attribute information. Point position information can also be called point geometric information. For example, point geometric information can be the three-dimensional coordinates (x, y, z). Point attribute information can include color information and / or reflectance, etc. For example, reflectance can be one-dimensional reflectance information (r); color information can be information in any color space, or it can be three-dimensional color information, such as RGB information. Here, R represents red (red, R), G represents green (green, G), and B represents blue (blue, B). For example, color information can be luminance and chromaticity (YCbCr, YUV) information. Here, Y represents luminance (luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
[0041] Point clouds obtained based on laser measurement principles can include the three-dimensional coordinates and reflectance values of the points. Similarly, point clouds obtained based on photogrammetry principles can include the three-dimensional coordinates and three-dimensional color information of the points. Furthermore, point clouds obtained by combining laser measurement and photogrammetry principles can include the three-dimensional coordinates, reflectance values, and three-dimensional color information of the points.
[0042] Figures 2A and 2B show a point cloud image and its corresponding data storage format. Figure 2A provides six viewing angles for the point cloud image, while Figure 2B consists of a header and a data section. The header information includes the data format, data representation type, total number of points in the point cloud, and the content represented by the point cloud. For example, the point cloud is in ".ply" format, represented by ASCII code, with a total of 207242 points. Each point has three-dimensional coordinate information (x, y, z) and three-dimensional color information (r, g, b).
[0043] Point clouds can be categorized according to the acquisition method:
[0044] Static point cloud: This means that the object is stationary and the device used to acquire the point cloud is also stationary.
[0045] Dynamic point cloud: The object is in motion, but the device acquiring the point cloud is stationary;
[0046] Dynamic point cloud acquisition: The device acquiring the point cloud is in motion.
[0047] For example, point clouds can be divided into two main categories based on their uses:
[0048] Category 1: Machine-perceived point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;
[0049] Category 2: Human eye-perceived point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free-viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
[0050] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Since point clouds are obtained by directly sampling real objects, they can provide a strong sense of realism while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free-viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.
[0051] Point cloud acquisition primarily utilizes the following methods: computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes; 3D laser scanning can acquire point clouds of static real-world 3D objects or scenes, with a capacity of millions of point clouds per second; 3D photogrammetry can acquire point clouds of dynamic real-world 3D objects or scenes, with a capacity of tens of millions of point clouds per second. These technologies reduce the cost and time required for point cloud data acquisition and improve data accuracy. While the evolution of point cloud data acquisition methods has made acquiring massive amounts of point cloud data possible, the processing of such large volumes of 3D point cloud data is facing bottlenecks due to limitations in storage space and transmission bandwidth, driven by increasing application demands.
[0052] For example, taking a point cloud video with a frame rate of 30 frames per second (fps) as an example, each frame of the point cloud contains 700,000 points, and each point has coordinate information xyz (float) and color information RGB (uchar). Therefore, the data size of a 10-second point cloud video is approximately 0.7 million × (4 bytes × 3 + 1 byte × 3) × 30 fps × 10 s = 3.15 GB, where 1 byte is 10 bits. In contrast, a 10-second 1280×720 two-dimensional video with a YUV sampling format of 4:2:0 and a frame rate of 24 fps has a data size of approximately 1280×720 × 12 bits × 24 fps × 10 s ≈ 0.33 GB, and a 10-second two-view three-dimensional video has a data size of approximately 0.33 × 2 = 0.66 GB. It is evident that the data size of a point cloud video far exceeds that of two-dimensional and three-dimensional videos of the same duration. Therefore, in order to better achieve data management, save server storage space, and reduce the transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue in promoting the development of the point cloud industry.
[0053] In other words, since point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support the transmission of point clouds directly at the network layer without compression. Therefore, point clouds need to be compressed.
[0054] Currently, point cloud encoding frameworks capable of compressing point clouds can be the geometry-based point cloud compression (G-PCC) or video-based point cloud compression (V-PCC) frameworks provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC framework provided by AVS. The G-PCC framework can be used to compress both static point clouds (Type 1) and dynamically acquired point clouds (Type 3), and it can be based on a point cloud compression test platform (test model compression 13, TMC13). The V-PCC framework can be used to compress dynamic point clouds (Type 2), and it can be based on a point cloud compression test platform (test model compression 2, TMC2). Therefore, the G-PCC framework is also called the point cloud codec TMC13, and the V-PCC framework is also called the point cloud codec TMC2.
[0055] This application provides a network architecture for a point cloud encoding / decoding system that includes decoding and encoding methods. Figure 3 is a schematic diagram of such a network architecture. As shown in Figure 3, the network architecture includes one or more electronic devices 13 to 1N and a communication network 01. The electronic devices 13 to 1N can perform video interaction through the communication network 01. During implementation, the electronic devices can be various types of devices with point cloud encoding / decoding capabilities. For example, the electronic devices may include mobile phones, tablets, personal computers, personal digital assistants, navigators, digital phones, video phones, televisions, sensing devices, servers, etc. This application does not impose any limitations. The decoder or encoder in this application embodiment can be one of the aforementioned electronic devices.
[0056] The electronic device in this application embodiment has point cloud encoding and decoding functions, and generally includes a point cloud encoder (i.e., encoder) and a point cloud decoder (i.e. decoder).
[0057] The following section uses the G-PCC and AVS codec frameworks as examples to explain the relevant technologies.
[0058] As can be understood, in the G-PCC encoding and decoding framework for point clouds, the point cloud data to be encoded is first divided into multiple slices. Within each slice, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
[0059] Figure 4A shows a schematic diagram of the component framework of a G-PCC encoder. As shown in Figure 4A, during the geometric encoding process, coordinate transformation is performed on the geometric information so that the entire point cloud is contained within a bounding box. Then, quantization is performed; this step mainly serves a scaling function. Due to quantization rounding, some point clouds have identical geometric information, so parameters are used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also called voxelization. Next, the bounding box is partitioned into an octree or a prediction tree is constructed. During this process, arithmetic encoding is performed on the points in the leaf nodes of the partition to generate a binary geometric bitstream; or, arithmetic encoding is performed on the vertices generated by the partition (surface fitting based on the vertices) to generate a binary geometric bitstream. During the attribute encoding process, after geometric encoding is completed and the geometric information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, so that the unencoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is mainly performed on color information. In the process of color information encoding, there are two main transformation methods: one is distance-based lifting transformation that depends on the level of detail (LoD) partitioning, and the other is region adaptive hierarchical transform (RAHT). Both methods will transform the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients and then perform arithmetic encoding on the quantized coefficients to generate a binary attribute bit stream.
[0060] Figure 4B illustrates a schematic diagram of the G-PCC decoder's structural framework. As shown in Figure 4B, for the acquired binary bitstream, the geometric bitstream and attribute bitstream within the binary bitstream are first decoded independently. During the decoding of the geometric bitstream, arithmetic decoding—reconstructing the octree / reconstructing the prediction tree—reconstructing geometry—inverse coordinate transformation is used to obtain the geometric information of the point cloud. During the decoding of the attribute bitstream, arithmetic decoding—inverse quantization—LoD partitioning / RAHT—inverse color transformation is used to obtain the attribute information of the point cloud. Based on the geometric and attribute information, the point cloud data to be encoded (i.e., the output point cloud) is reconstructed.
[0061] The following section introduces the PT encoding of point cloud attribute information.
[0062] Figure 5 illustrates the PT (Predictive Mapping) encoding process. As shown in Figure 5, the main PT encoding process includes: first, predicting the current point to be encoded using the reconstructed points based on the LoD (LoD) generation order; second, obtaining the prediction residual of the current point to be encoded by subtracting the predicted value from the original value; and third, quantizing and encoding the prediction residual to generate the attribute information bitstream. The following section will describe the PT predictive encoding process in detail according to the above steps.
[0063] Step 1: Generating LoD
[0064] Currently, the G-PCC software platform uses a distance-based LoD (LoD) construction method, as shown in Figure 6. (R l ) l=0…L―1 This represents the refinement level, where L is the number of levels in the LoD. The specific steps for constructing the LoD are as follows: steps (1) to (5).
[0065] (1) User-defined L Euclidean distances (d l ) l=0…L―1 Divide into L refinement layers (R) l ) l=0…L―1 .
[0066] (2) Mark all points as unvisited and set the visited point set V to empty.
[0067] (3) Generate the refinement layer R l Iterate through all points. If the current point has already been visited, ignore it; otherwise, calculate the minimum distance D from the current point to the point set V. If D is less than d... l If the current point is visited, then ignore it; otherwise, mark the current point as visited and add it to R. l In V; repeat this process until all points have been traversed.
[0068] (4) Select the refinement layers R0, R1, ..., R l The union of the details layer (LoD) is obtained. l (Right now ).
[0069] (5) Repeat this process until all points have been visited.
[0070] Step 2: Selection of the optimal predicted value
[0071] After the LoD (LoD) is constructed, according to the LoD generation order, the three nearest neighbors of the current point to be encoded are first found from the encoded data points. The attribute reconstruction values of these three nearest neighbors are used as candidate predicted values for the current point to be encoded. Then, the maximum attribute difference (max_difference) of the three candidate neighbors is calculated. If the value of max_difference is less than the adaptive threshold (adaptive_threshold), the three neighbor points are considered to have similar attribute values to the predicted point, and therefore mode 0 weighted prediction is used. If the value of max_difference is greater than the adaptive threshold (adaptive_threshold), the optimal predicted value is selected from them according to rate distortion optimality (RDO). The scores of modes 0 to 3 are calculated, and the minimum cost score is found as the best prediction mode. For example, when encoding the attribute value of point P0 in Figure 6, the index of the prediction pattern based on the attribute value of the nearest neighbor point P2 is set to 1; the indexes of the prediction patterns based on the attribute values of the second nearest neighbor point P7 and the third nearest neighbor point P10 are set to 2 and 3 respectively; and the index of the prediction pattern based on the weighted average of the attribute values of points P2, P7 and P10 is set to 0, as shown in Table 1.
[0072] Table 1. Sample candidate prediction items with attribute coding
[0073] The selection scheme for the prediction model is shown in Figure 7. The formula for the weighted average is shown in (1):
[0074] In formula (1) This represents the spatial geometric weight from the nearest neighbor j to the current point i. It can be determined based on equation (2):
[0075] in, This represents the predicted attribute value for the current point i, and j represents the index of the three neighboring points. (representing the attribute values after the nearest neighbor points are reconstructed), x i ,y i ,z i The x-coordinates are the geometric coordinates of the current point i. ij ,y ij ,z ij Let be the geometric coordinates of the nearest neighbor point j.
[0076] Step 3: Attribute Prediction Residuals and Quantization:
[0077] The attribute prediction value of the current point i is obtained through the above prediction. (k is the total number of points in the point cloud). Let (ai ) i∈0…k―1 If the original attribute value is given by the current point, then the attribute residual (r) i ) i∈0…k―1 Recorded as:
[0078] Further quantification of the predicted residuals:
[0079] In the formula Q i This represents the quantized attribute residual at the current point i, where Qs is the quantization step size, which can be calculated from the quantization parameter (QP) specified by the common test condition (CTC).
[0080] Step 4: Reconstruct attribute values at the encoding end
[0081] The purpose of reconstruction at the encoding end is for prediction of subsequent points. Before reconstructing attribute values, the residuals need to be dequantized. The residual after dequantization:
[0082] Compared with the predicted value Add them together to get the reconstructed value of point i.
[0083] The previous section detailed the encoding process of point cloud attribute information (PT). The following section describes the encoding process of point cloud attribute information (LT).
[0084] LT is a transformation method built upon PT. Figures 8 and 9 illustrate the forward and inverse transforms in LT, respectively. LT's prediction uses the default 0-th prediction of PT. The two main differences between PT and LT are as follows: LT introduces an update operation, and LT uses an adaptive quantization strategy.
[0085] Difference 1: Update operation
[0086] Since LoD-based prediction strategies predict in ascending order of LoD, they make points in lower LoD more influential because they are more frequently used in predictions. Let w(P) be the influence weight associated with point p (in LT, this weight is used to quantize the attribute residuals of point p, so it can be called the quantization weight), and then calculate w(P) by applying the following recursive process.
[0087] First, set the initial weight of all points w(P) = 1;
[0088] Secondly, these points are traversed in reverse order according to the LoD structure definition;
[0089] Then, for each point Q(i,j), the weights of the neighborhood are updated using the following equation (7). w(P)←w(P)+w(Q(i,j),j)α(P,Q(i,j))#(7)
[0090] As shown in Equation (8), the update operator updates the attribute values of LoD(j) using the predicted residuals D(Q(i,j)). In Equation (8), Δ(P) represents a set of points with P as the reference point, and α represents the weight values that are inversely proportional to the distance between P and Q. More precisely, Δ(P) is the set of Q(i,j). (Q(i,j)). The update operation of P is defined as follows:
[0091] The relationship between the prediction and update operations at point P is shown in Figure 10.
[0092] Difference 2: Adaptive quantization
[0093] The quantization process is guided by the quantization weights calculated during the transformation. More precisely, as shown in equation (9), the coefficients related to point P can be multiplied by a factor. Then, quantization is performed using Qs. After inverse quantization on the decoder side, an inverse scaling process with the same factor can be used. Note that the scaling factor is determined by the reconstructed geometry, therefore this scaling factor does not need to be encoded in the bitstream.
[0094] In point cloud attribute encoding and decoding, how to reduce the number of bits in the bitstream to improve transmission efficiency is a problem that needs to be solved.
[0095] To address the aforementioned issues, this application provides an encoding method comprising: determining whether a current point in a point cloud to be encoded satisfies a first condition; and if the current point satisfies the first condition, skipping the encoding of attribute residual values corresponding to at least one attribute component of the current point.
[0096] Furthermore, embodiments of this application provide a decoding method, including: determining whether a current point in a point cloud to be decoded satisfies a first condition; if the current point satisfies the first condition, then determining that the attribute residual value corresponding to at least one attribute component of the current point is 0.
[0097] As can be seen from the above, for a point in the point cloud that satisfies the first condition, this embodiment of the application skips the encoding of the attribute residual value corresponding to at least one attribute component of the point at the encoding end, and determines the attribute residual value corresponding to at least one attribute component of the point as 0 at the decoding end. In this way, the bit stream can not carry the attribute residual value corresponding to at least one attribute component of the point, thereby reducing the number of bits in the bit stream and improving the transmission efficiency of the bit stream.
[0098] The decoding method provided in the embodiments of this application will be described in detail below with reference to Figure 11.
[0099] Figure 11 is a schematic flowchart of the decoding method provided in an embodiment of this application. The method shown in Figure 11 can be applied to a decoder. The decoder can be a point cloud decoder.
[0100] Referring to Figure 11, in step S1110, it is determined whether the current point in the point cloud to be decoded satisfies the first condition. This embodiment does not specifically limit the setting method of the first condition. For example, the first condition may be related to one or more of the following: the refinement layer where the current point is located, the decoding order of the current point in the point cloud to be decoded, and the weight of the current point (such as quantization weight, i.e., the weight used to quantize the current point). The content of the first condition will be illustrated in detail later with specific embodiments; it will not be elaborated here.
[0101] In step S1120, if the current point satisfies the first condition, then the attribute residual value corresponding to at least one attribute component of the current point is determined to be 0. The at least one attribute component mentioned here may include the luminance component (e.g., the Y component of the current point) and / or the chrominance component (e.g., the Y component and / or V component of the current point). The chrominance component of the current point may include a first chrominance component (e.g., the U component of the current point) and / or a second chrominance component (e.g., the V component of the current point).
[0102] In point cloud decoding, luminance information is generally more important than chrominance information (luminance information is about 7 times more important than chrominance information). Therefore, in some implementations, at least one attribute component of the current point mentioned above can include the chrominance component (the first chrominance component and / or the second chrominance component) of the current point, but not the luminance component. That is, during the decoding of the current point, the attribute residual value corresponding to the chrominance component of the current point can be directly determined as 0, without needing to obtain the attribute residual value corresponding to that chrominance component through the decoding bitstream. Of course, in this implementation, the bitstream still needs to be decoded to determine the attribute residual value corresponding to the luminance component of the current point.
[0103] As described above, for a point in the point cloud that satisfies the first condition, this embodiment of the application determines the attribute residual value corresponding to at least one attribute component of that point to be 0. This way, the bitstream does not need to carry the attribute residual value corresponding to at least one attribute component of that point, thereby reducing the number of bits that need to be transmitted in the bitstream and improving the transmission efficiency. Furthermore, for the attribute residual value corresponding to the at least one attribute component, the decoder does not need to perform complex residual decoding; it can simply set it to 0, which also reduces the implementation complexity of the decoder.
[0104] The following section provides a more detailed example of how the first condition mentioned in step S1110 is implemented.
[0105] Implementation Method 1: The first condition is related to the refinement layer where the current point is located.
[0106] In one implementation, the first condition includes: the refinement layer where the current point is located belongs to the N highest-indexed refinement layers (or the last N refinement layers, or the last N refined layers created) among the multiple refinement layers corresponding to the point cloud to be decoded, where N is a positive integer greater than or equal to 1 (e.g., N equals 1). That is, if the refinement layer where the current point is located belongs to the N highest-indexed refinement layers among the multiple refinement layers corresponding to the point cloud to be decoded, then it can be determined that the attribute residual value corresponding to at least one attribute component of the current point is 0.
[0107] For example, if the current point is located in the Nth most indexed refinement layer among the multiple refinement layers corresponding to the point cloud to be decoded (such as the refinement layer with the highest index among all refinement layers), then the attribute residual value corresponding to the brightness component of the current point can be determined to be 0.
[0108] For example, if the current point is located in the Nth most indexed refinement layer among the multiple refinement layers corresponding to the point cloud to be decoded (such as the refinement layer with the highest index among all refinement layers), then the attribute residual value corresponding to the chromaticity component (including U component and / or V component) of the current point can be determined to be 0.
[0109] Alternatively, in some implementations, the refinement layer mentioned above can be replaced with LoD (Local View). That is, the first condition can include: the current point belongs to or belongs only to the N highest-indexed LoDs among the multiple LoDs corresponding to the point cloud to be decoded, where N is a positive integer greater than or equal to 1 (e.g., N can be equal to 1). In other words, if the current point belongs to or belongs only to the N highest-indexed LoDs among the multiple LoDs corresponding to the point cloud to be decoded, then it can be determined that the attribute residual value corresponding to at least one attribute component of the current point is 0.
[0110] For example, if the current point belongs to or only belongs to the N highest-indexed LoDs among the multiple LoDs corresponding to the point cloud to be decoded (such as the highest-indexed LoD among all LoDs), then the attribute residual value corresponding to the luminance component of the current point can be determined to be 0.
[0111] For example, if the current point belongs to or only belongs to the N highest-indexed LoDs among the multiple LoDs corresponding to the point cloud to be decoded (such as the LoD with the highest index among all LoDs), then the attribute residual value corresponding to the chromaticity component (including U component and / or V component) of the current point can be determined to be 0.
[0112] Since the point cloud prediction process proceeds sequentially from low to high refinement layers, points in earlier refinement layers serve as prediction references for more points, making them relatively more important. Conversely, points in later refinement layers are less important. Therefore, setting the attribute residual value corresponding to at least one attribute component of less important points to 0 reduces the number of bits in the bitstream, thereby improving transmission efficiency, while also ensuring the prediction performance of the point cloud to be decoded.
[0113] Implementation Method 2: The first condition is related to the decoding order of the current point in the point cloud to be decoded.
[0114] In one implementation, the first condition includes: the current point is one of the last M points in the decoding order of the point cloud to be decoded, where M is a positive integer greater than or equal to 1. That is, if the current point is one of the last M points in the decoding order of the point cloud to be decoded, then the attribute residual value corresponding to at least one attribute component of the current point can be determined to be 0. This application does not specifically limit the value of M. For example, M can be equal to one-half, one-quarter, or one-eighth of the number of points in the point cloud to be decoded.
[0115] For example, the points in the point cloud to be decoded can be divided into a first point set and a second point set according to the decoding order. The first point set includes the first half of the points in the point cloud to be decoded, and the second point set includes the second half of the points in the point cloud to be decoded. If the current point belongs to the second point set, the attribute residual value corresponding to the luminance component of the current point can be determined to be 0. Alternatively, if the current point belongs to the second point set, the attribute residual value corresponding to the chrominance component of the current point can be determined to be 0.
[0116] Since the prediction process for point clouds is performed sequentially according to the decoding order of the points in the point cloud, points decoded earlier in the order will serve as prediction reference points for more points, and these points are relatively more important. Conversely, points decoded later in the order will be less important. Therefore, setting the attribute residual value corresponding to at least one attribute component of a less important point to 0 can reduce the number of bits in the bitstream, thereby improving the transmission efficiency of the bitstream, while also ensuring the prediction performance of the point cloud to be decoded.
[0117] Implementation Method 3: The first condition is related to the weight of the current point.
[0118] In one implementation, the first condition includes one or more of the following: the current point is a point in the point cloud to be decoded with a weight of a first value (e.g., weight 1); the current point is a point in the point cloud to be decoded with a weight less than or equal to a first threshold. The first threshold can be, for example, 1, or other values greater than 1.
[0119] For example, if the current point is a point in the point cloud to be decoded with a weight of the first value (e.g., a weight of 1), then the attribute residual value corresponding to the brightness component of the current point can be determined to be 0.
[0120] For example, if the current point is a point in the point cloud to be decoded with a weight of the first value (e.g., a weight of 1), then the attribute residual value corresponding to the chromaticity component of the current point can be determined to be 0.
[0121] For example, if the current point is a point in the point cloud to be decoded whose weight is less than or equal to the first threshold, then the attribute residual value corresponding to the brightness component of the current point can be determined to be 0.
[0122] For example, if the current point is a point in the point cloud to be decoded whose weight is less than or equal to the first threshold, then the attribute residual value corresponding to the chromaticity component of the current point can be determined to be 0.
[0123] It should be understood that the weight of a point mentioned above can be called the quantization weight of that point. The smaller the weight, the lower the importance of the point. Therefore, setting the attribute residual value corresponding to at least one attribute component of a point with low importance to 0 can reduce the number of bits in the bitstream, thereby improving the transmission efficiency of the bitstream, without significantly reducing the decoding performance.
[0124] The decoder can always decode the point cloud to be decoded as shown in Figure 11. Alternatively, the decoder can also decode the point cloud to be decoded based on certain identification information (hereinafter referred to as the first identification information). This first identification information can be used to determine whether to perform step S1110 mentioned above.
[0125] For example, if the value of the first identifier information is a first value (1 or true), then step S1110 mentioned above can be executed, that is, determining whether the current point satisfies the first condition, and if the current point satisfies the first condition, determining that the attribute residual value corresponding to at least one attribute component of the current point is 0. Alternatively, if the value of the first identifier information is a second value (such as 0 or false), then step S1110 mentioned above can be skipped, and instead, the attribute residual values corresponding to each attribute component of the current point can be determined by decoding the bitstream.
[0126] This application does not specifically limit the location of the first identification information in the bitstream. For example, the first identification information may be located in the attribute block header (ABH). Alternatively, the first identification information may be located in the attribute parameter set (APS).
[0127] If the attribute residual value corresponding to at least one attribute component of the current point is determined to be 0 based on the first condition, then the attribute residual value corresponding to that at least one attribute component does not need to be carried in the bitstream. Assume the first condition is that the current point is located in the last refinement layer (R...). L-1 Assuming that at least one attribute component of the current point mentioned above is the chroma component of the current point, Figure 12 is a comparison diagram of the bitstream structure without applying the embodiments of this application and the bitstream structure after applying the embodiments of this application. As can be seen from Figure 12, for the last thinning layer (R... L-1 The bits in the bitstream only include the luminance components (Y components) of these bits, excluding the chrominance components (U and V components). Therefore, the embodiments of this application can simplify the bitstream structure and reduce the number of bits in the bitstream.
[0128] In some implementations, after determining the attribute residual value of the current point, the attribute reconstruction value of at least one reference point of the current point can be updated based on the attribute residual value of the current point. The at least one reference point of the current point mentioned here refers to the point used to determine the attribute prediction value of the current point. The specific implementation of the update operation can be found in the description of equation (8) above, and will not be repeated here.
[0129] In some implementations, after determining the attribute reconstruction values of at least one reference point for the current point, the attribute prediction value of the current point can be determined based on the attribute reconstruction values of the at least one reference point; and the attribute reconstruction value of the current point can be determined based on the attribute residual value and the attribute prediction value of the current point. Before determining the attribute prediction value of the current point based on the attribute reconstruction values of the at least one reference point, as mentioned above, the attribute reconstruction values of the at least one reference point for the current point can be updated based on the attribute residual value of the current point, that is, the attribute prediction value of the current point can be determined using the updated attribute reconstruction values of the at least one reference point.
[0130] This application does not specifically limit the method of "determining the attribute prediction value of the current point based on the attribute reconstruction value of at least one reference point of the current point". For example, the attribute prediction value of the current point can be determined by weighted summing of the attribute reconstruction values of the at least one reference point (which may include multiple reference points, such as 3 reference points) based on the geometric information of the at least one reference point and the geometric information of the current point (such as geometric coordinates). For example, the Euclidean distance between the current point and the at least one reference point can be determined based on the geometric information (such as geometric coordinates) of the at least one reference point and the geometric information (such as geometric coordinates) of the current point. Then, the attribute reconstruction values of the at least one reference point can be weighted summed based on the Euclidean distance between the current point and the at least one reference point, as detailed in formulas (1) to (2) above.
[0131] In some implementations, the weights of points in the point cloud to be decoded, which are used for attribute prediction based on the current point, can be determined according to the weight of the current point. The weight of a point mentioned here can be used to quantize that point; therefore, the weight can also be called the quantization weight of that point. For example, set the initial weight w(P) = 1 for all points in the point cloud to be decoded; then, these points can be traversed in reverse order according to the LoD structure definition; for each point Q(i,j), w(P) is calculated recursively according to the formula (7) mentioned above.
[0132] In some implementations, the LoD (LoD) of the point cloud to be decoded can be determined based on its geometric information. For example, the points in the point cloud to be decoded can be divided into multiple thinning layers based on its geometric information; the LoD of the point cloud to be decoded can then be determined based on these multiple thinning layers.
[0133] As a more specific example, the steps to construct a LoD may include steps (1) through (5) as follows.
[0134] (1) User-defined L Euclidean distances (d l ) l=0…L―1 Divide into L refinement layers (R) l ) l=0…L―1 .
[0135] (2) Mark all points as unvisited and set the visited point set V to empty.
[0136] (3) Generate the refinement layer R l Iterate through all points. If the current point has already been visited, ignore it; otherwise, calculate the minimum distance D from the current point to the point set V. If D is less than d... l If the current point is visited, then ignore it; otherwise, mark the current point as visited and add it to R. l In V; repeat this process until all points have been traversed.
[0137] (4) Select the refinement layers R0, R1, ..., R l The union of the details layer (LoD) is obtained. l (Right now ).
[0138] (5) Repeat this process until all points have been visited.
[0139] In some implementations, the bitstream can be decoded to determine the quantized attribute residual value of the current point; the quantized attribute residual value of the current point can then be dequantized to determine the attribute residual value of the current point. As mentioned earlier, if the current point satisfies the first condition mentioned above, the bitstream may not carry the attribute residual value corresponding to at least one attribute component of the current point. In this case, only the attribute residual values corresponding to the remaining attribute components of the current point need to be decoded.
[0140] The aforementioned dequantization of the quantized attribute residual value at the current point can include: dequantizing the quantized attribute residual value at the current point based on the current point's weight (such as quantization weight) and quantization parameters. The quantization weights of different points can be different. For example, the earlier the current point is in the refinement layer, the larger its quantization weight generally is, while the quantization weight of points in the last refinement layer is usually equal to 1.
[0141] The embodiments of this application can be applied to the LT process. Accordingly, the step S1110 mentioned above can also be described as: in the LT process, determining whether the current point in the point cloud to be decoded satisfies the first condition.
[0142] The attribute decoding technology mentioned in the embodiments of this application can be called a 420 sampling technology based on LoD. Taking LT as an example, this technology can also be called a 420 sampling technology for attribute LT.
[0143] The decoding method provided by the embodiments of this application has been described in detail above with reference to Figure 11. The encoding method provided by the embodiments of this application has been described in detail below with reference to Figure 13.
[0144] Figure 13 is a flowchart illustrating the encoding method provided in an embodiment of this application. The method shown in Figure 13 can be applied to an encoder. This encoder can be a point cloud encoder.
[0145] Referring to Figure 13, in step S1310, it is determined whether the current point in the point cloud to be encoded satisfies the first condition. This application embodiment does not specifically limit the setting method of the first condition. For example, the first condition may be related to one or more of the following: the thinning layer where the current point is located, the encoding order of the current point in the point cloud to be encoded, and the weight of the current point (such as quantization weight, i.e., the weight used to quantize the current point). The content of the first condition will be illustrated in detail later with specific embodiments; it will not be elaborated here.
[0146] In step S1320, if the current point satisfies the first condition, the encoding of the attribute residual value corresponding to at least one attribute component of the current point is skipped (or, the attribute residual value corresponding to at least one attribute component of the current point is not encoded). The at least one attribute component mentioned here may include the luminance component (e.g., the Y component of the current point) and / or the chrominance component (e.g., the Y component and / or V component of the current point). The chrominance component of the current point may include the first chrominance component (e.g., the U component of the current point) and / or the second chrominance component (e.g., the V component of the current point).
[0147] In point cloud encoding, luminance information is generally more important than chrominance information (luminance information is about 7 times more important than chrominance information). Therefore, in some implementations, at least one attribute component of the current point mentioned above can include the chrominance component (the first chrominance component and / or the second chrominance component) of the current point, but not the luminance component. That is, during the encoding of the current point, the encoding of the attribute residual value corresponding to the chrominance component of the current point can be skipped. Of course, in this implementation, the attribute residual value corresponding to the luminance component of the current point still needs to be encoded.
[0148] As described above, for points in the point cloud that satisfy the first condition, this embodiment skips the encoding of the attribute residual values corresponding to at least one attribute component of that point. This means the bitstream does not need to carry the attribute residual values corresponding to at least one attribute component of that point, thereby reducing the number of bits that need to be transmitted and improving the transmission efficiency. Furthermore, the encoder does not need to perform complex residual encoding on the attribute residual values corresponding to the at least one attribute component, which also reduces the implementation complexity of the encoder.
[0149] The following section provides a more detailed example of how the first condition mentioned in step S1310 is implemented.
[0150] Implementation Method 1: The first condition is related to the refinement layer where the current point is located.
[0151] In one implementation, the first condition includes: the refinement layer containing the current point belongs to the N highest-indexed refinement layers (or the last N refinement layers, or the last N refined layers created) among the multiple refinement layers corresponding to the point cloud to be encoded, where N is a positive integer greater than or equal to 1 (e.g., N equals 1). That is, if the refinement layer containing the current point belongs to the N highest-indexed refinement layers among the multiple refinement layers corresponding to the point cloud to be encoded, the encoding of the attribute residual value corresponding to at least one attribute component of the current point can be skipped.
[0152] For example, if the current point is located in the Nth highest-indexed refinement layer among the multiple refinement layers corresponding to the point cloud to be encoded (such as the refinement layer with the highest index among all refinement layers), then the encoding of the attribute residual value corresponding to the brightness component of the current point can be skipped.
[0153] For example, if the current point is located in the Nth highest-indexed refinement layer among the multiple refinement layers corresponding to the point cloud to be encoded (such as the refinement layer with the highest index among all refinement layers), then the encoding of the attribute residual values corresponding to the chromaticity components (including U components and / or V components) of the current point can be skipped.
[0154] Alternatively, in some implementations, the refinement layer mentioned above can be replaced with LoDs. That is, the first condition can include: the current point belongs to or belongs only to the N highest-indexed LoDs among the multiple LoDs corresponding to the point cloud to be encoded, where N is a positive integer greater than or equal to 1 (e.g., N can be equal to 1). In other words, if the current point belongs to or belongs only to the N highest-indexed LoDs among the multiple LoDs corresponding to the point cloud to be encoded, the encoding of the attribute residual value corresponding to at least one attribute component of the current point can be skipped.
[0155] For example, if the current point belongs to or only belongs to the N highest-indexed LoDs among the multiple LoDs corresponding to the point cloud to be encoded (such as the highest-indexed LoD among all LoDs), then the encoding of the attribute residual value corresponding to the brightness component of the current point can be skipped.
[0156] For example, if the current point belongs to or only belongs to the N highest-indexed LoDs among the multiple LoDs corresponding to the point cloud to be encoded (such as the highest-indexed LoD among all LoDs), then the encoding of the attribute residual values corresponding to the chromaticity components (including U components and / or V components) of the current point can be skipped.
[0157] Since the point cloud prediction process proceeds sequentially from low to high refinement layers, points in earlier refinement layers serve as prediction references for more points, making them relatively more important. Conversely, points in later refinement layers are less important. Therefore, skipping the encoding of attribute residual values corresponding to at least one attribute component of less important points reduces the number of bits in the bitstream, thus improving transmission efficiency, while also ensuring the prediction performance of the point cloud to be decoded.
[0158] Implementation Method 2: The first condition is related to the encoding order of the current point in the point cloud to be encoded.
[0159] In one implementation, the first condition includes: the current point is one of the last M points in the point cloud to be encoded, where M is a positive integer greater than or equal to 1. That is, if the current point is one of the last M points in the point cloud to be encoded, the encoding of the attribute residual value corresponding to at least one attribute component of the current point can be skipped. This application does not specifically limit the value of M. For example, M can be equal to one-half, one-quarter, or one-eighth of the number of points in the point cloud to be encoded.
[0160] For example, the points in the point cloud to be encoded can be divided into a first point set and a second point set according to the encoding order. The first point set includes the first half of the points in the point cloud to be encoded, and the second point set includes the second half of the points in the point cloud to be encoded. If the current point belongs to the second point set, the encoding of the attribute residual value corresponding to the luminance component of the current point can be skipped. Alternatively, if the current point belongs to the second point set, the encoding of the attribute residual value corresponding to the chrominance component of the current point can be skipped.
[0161] Since the prediction process for point clouds is performed sequentially according to the encoding order of the points in the point cloud, points encoded earlier in the encoding order will serve as prediction reference points for more points, and these points are relatively more important. Conversely, points encoded later in the encoding order are less important. Therefore, skipping the encoding of the attribute residual value corresponding to at least one attribute component of less important points can reduce the number of bits in the bitstream, thereby improving the transmission efficiency of the bitstream, while also ensuring the prediction performance of the point cloud to be decoded.
[0162] Implementation Method 3: The first condition is related to the weight of the current point.
[0163] In one implementation, the first condition includes one or more of the following: the current point is a point in the point cloud to be encoded with a weight of a first value (e.g., weight 1); the current point is a point in the point cloud to be encoded with a weight less than or equal to a first threshold. The first threshold can be, for example, 1, or other values greater than 1.
[0164] For example, if the current point is a point in the point cloud to be encoded with a weight of the first value (e.g., a weight of 1), then the encoding of the attribute residual value corresponding to the brightness component of the current point can be skipped.
[0165] For example, if the current point is a point in the point cloud to be encoded with a weight of the first value (e.g., a weight of 1), then the encoding of the attribute residual value corresponding to the chromaticity component of the current point can be skipped.
[0166] For example, if the current point is a point in the point cloud to be encoded whose weight is less than or equal to the first threshold, then the encoding of the attribute residual value corresponding to the brightness component of the current point can be skipped.
[0167] For example, if the current point is a point in the point cloud to be encoded whose weight is less than or equal to the first threshold, then the encoding of the attribute residual value corresponding to the chromaticity component of the current point can be skipped.
[0168] It should be understood that the weight of a point mentioned above can be called the quantization weight of that point. The smaller the weight, the lower the importance of the point. Therefore, setting the attribute residual value corresponding to at least one attribute component of a point with low importance to 0 can reduce the number of bits in the bitstream, thereby improving the transmission efficiency of the bitstream, without significantly reducing the coding performance.
[0169] The encoder can always encode the point cloud to be encoded as shown in Figure 13. Alternatively, the encoder can also encode the point cloud to be encoded based on certain identification information (hereinafter referred to as the first identification information). This first identification information can be used to determine whether the encoding of the attribute residual value corresponding to at least one attribute component of a point that satisfies the first condition is skipped.
[0170] For example, if the first identifier is a first value (1 or true), the encoding of the attribute residual value corresponding to at least one attribute component of the point that satisfies the first condition is skipped. Alternatively, if the first identifier is a second value (e.g., 0 or false), the encoding of the attribute residual value corresponding to at least one attribute component of the point that satisfies the first condition is not skipped.
[0171] This application does not specifically limit the position of the first identification information in the bitstream. For example, the first identification information may be located in the attribute block header (ABH). Or, for example, the first identification information may be located in the APS.
[0172] If the encoding of the attribute residual value corresponding to at least one attribute component of the current point is skipped based on the first condition, then the attribute residual value corresponding to that at least one attribute component can be omitted from the bitstream. Assume the first condition is that the current point is located in the last refinement layer (R...). L- 1), and assuming that at least one attribute component of the current point mentioned above is the chroma component of the current point, Figure 12 is a comparison diagram of the bitstream structure without applying the embodiment of this application and the bitstream structure after applying the embodiment of this application. As can be seen from Figure 12, for the last thinning layer (R... L-1 The bits in the bitstream only include the luminance components (Y components) of these bits, excluding the chrominance components (U and V components). Therefore, the embodiments of this application can simplify the bitstream structure and reduce the number of bits in the bitstream.
[0173] In some implementations, after determining the attribute residual value of the current point, the attribute reconstruction value of at least one reference point of the current point can be updated based on the attribute residual value of the current point (in the inverse LT transform, the attribute reconstruction value is updated). Alternatively, after determining the attribute residual value of the current point, the attribute value of at least one reference point of the current point can be updated based on the attribute residual value of the current point (in the forward LT transform, the attribute value is updated). The at least one reference point of the current point mentioned here refers to the point used to determine the attribute prediction value of the current point. The specific implementation of the update operation can be found in the description of equation (8) above, and will not be repeated here.
[0174] In some implementations, the predicted attribute value of the current point can be determined based on the attribute reconstruction values of at least one reference point. This application does not specifically limit the method of "determining the predicted attribute value of the current point based on the attribute reconstruction values of at least one reference point." For example, the predicted attribute value of the current point can be determined by weighted summing the attribute reconstruction values of the at least one reference point (which may include multiple reference points, such as three reference points) based on the geometric information of the at least one reference point and the geometric information of the current point (such as geometric coordinates). For example, the Euclidean distance between the current point and the at least one reference point can be determined based on the geometric information (such as geometric coordinates) of the at least one reference point and the geometric information (such as geometric coordinates) of the current point. Then, the attribute reconstruction values of the at least one reference point can be weighted summed based on the Euclidean distance between the current point and the at least one reference point, as detailed in formulas (1) to (2) above.
[0175] In some implementations, the weights of points in the point cloud to be encoded, which are used for attribute prediction based on the current point, can be determined according to the weight of the current point. The weight of a point mentioned here can be used to quantize that point; therefore, the weight can also be called the quantization weight of that point. For example, set the initial weight w(P) = 1 for all points in the point cloud to be encoded; then, these points can be traversed in reverse order according to the LoD structure definition; for each point Q(i,j), w(P) is calculated recursively according to the formula (7) mentioned above.
[0176] In some implementations, the LoD (LoD) of the point cloud to be encoded can be determined based on its geometric information. For example, the points in the point cloud to be encoded can be divided into multiple thinning layers based on its geometric information; the LoD of the point cloud to be encoded can then be determined based on these multiple thinning layers.
[0177] As a more specific example, the steps to construct a LoD may include steps (1) through (5) as follows.
[0178] (1) User-defined L Euclidean distances (d l ) l=0…L―1Divide into L refinement layers (R) l ) l=0…L―1 .
[0179] (2) Mark all points as unvisited and set the visited point set V to empty.
[0180] (3) Generate the refinement layer R l Iterate through all points. If the current point has already been visited, ignore it; otherwise, calculate the minimum distance D from the current point to the point set V. If D is less than d... l If the current point is visited, then ignore it; otherwise, mark the current point as visited and add it to R. l In V; repeat this process until all points have been traversed.
[0181] (4) Select the refinement layers R0, R1, ..., R l The union of the details layer (LoD) is obtained. l (Right now ).
[0182] (5) Repeat this process until all points have been visited.
[0183] In some implementations, the predicted attribute value of the current point can be determined based on the attribute reconstruction value of at least one reference point.
[0184] In some implementations, after determining the attribute residual value of the current point, the attribute residual value of the current point can be quantized to determine the quantized attribute residual value of the current point; the quantized attribute residual value of the current point is then written into the bitstream.
[0185] In some implementations, the quantized attribute residual value of the current point can be dequantized to determine the attribute residual value of the current point; based on the attribute residual value and the attribute prediction value of the current point, the attribute reconstruction value of the current point can be determined. For example, the attribute residual value of the current point can be quantized according to the weight (such as quantization weight) and quantization parameters of the current point. The quantization weights of different points can be different. For example, the earlier the refinement layer of the current point, the larger its quantization weight, while the quantization weight of points in the last refinement layer is usually equal to 1.
[0186] The embodiments of this application can be applied to the LT process. Accordingly, the step S1110 mentioned above can also be described as: in the LT process, determining whether the current point in the point cloud to be encoded satisfies the first condition.
[0187] The attribute encoding technique mentioned in the embodiments of this application can be called a 420 sampling technique based on LoD. Taking LT as an example, this technique can also be called a 420 sampling technique for attribute LT.
[0188] The embodiments of this application are described in more detail below with specific examples. It should be noted that the examples below are merely to help those skilled in the art understand the embodiments of this application, and are not intended to limit the embodiments of this application to the specific numerical values or scenarios illustrated. Those skilled in the art can obviously make various equivalent modifications or variations based on the given examples, and such modifications or variations also fall within the scope of the embodiments of this application.
[0189] Since luminance information is seven times more important than chrominance information, YUV 422,420 sampling technology is used in video encoding to save bitrate while preserving luminance information.
[0190] This example presents a 420-sampling technique for attribute LT transform. During the LT attribute transform, this example refines the layer R... l The chroma components of the quantization attribute residuals of the least important points are not encoded; instead, the residuals are reconstructed with zero values at the decoding end. This saves bitstream while preserving luminance information, thus improving the encoding efficiency of color information. A more detailed explanation of this example follows.
[0191] In the current LT coding scheme, a LoD (LoD) structure is first constructed. The LoD-based prediction strategy makes points in lower LoDs more influential because they are more frequently used for prediction. Then, a forward LT transform is performed for both prediction and update. During prediction, the k-nearest neighbors are found based on the LoD structure, followed by zero-mean prediction to obtain the residual components of the points. During update, the residuals are used as high-frequency information to correct the attribute values of the prediction reference points. In the inverse LT transform for attribute reconstruction, an inverse transform is performed, the reconstructed residuals are used for update, and then prediction is performed. The predicted value is added to the reconstructed residuals to obtain the reconstructed value of the point.
[0192] In the refinement layer R l The points in the middle have the lowest influence because they are only affected by the points in front of them (i.e., the LoD). l―1 The prediction is made so that the weights w(P) of these points are always 1. During quantization, the refinement layer R... l The predicted residual at the midpoint, after quantization by equation (9), has the smallest value. Statistically, in the LT transform, the refinement layer R... l The color values of the YUV components at the midpoint are mostly 0, and the thinning layer R... l The number of midpoints is the largest, and encoding these residuals will inevitably lead to additional waste of bitstream.
[0193] The proposal suggests performing 420 sampling on YUV, specifically on the refinement layer R. L―1For points in the graph, the UV components of the quantized residual are not encoded; they are reconstructed with a value of 0 during residual reconstruction. Therefore, the reconstructed value of the chromatic difference component of a point equals the predicted value. This achieves the goal of saving more bits while preserving luminance information. Details of the proposed 420 sampling technique are shown in Figure 14.
[0194] The following section describes how this example is implemented on the encoding side.
[0195] In the LT algorithm, the encoder first generates the LoD (Level of Detail), and then performs layer-by-layer prediction and updates of LT according to the LoD order. Subsequently, the prediction residuals are quantized and encoded. If the algorithm provided in this example is enabled, it first determines whether the current point is located in the last refinement level R when encoding the residuals. l If the value is present, then residual encoding of the chroma component (luminance component when k=0, chroma component when k>0) is not performed; otherwise, normal encoding is performed. Finally, the switch flag bit is420_for_LT for the 420 technology is written. The operation flow at the encoding end is shown in Figure 15A.
[0196] For attribute residuals, the 420 sampling technique proposed in this example enables sampling at the last refinement level R. l The point residuals in the image only encode the Y channel, and the detailed diagram is shown in Figure 12.
[0197] For the 420 technology switch flag is420_for_LT, a value of 1 indicates that 420 sampling is enabled, and a value of 0 indicates that it is disabled. This switch flag can be written to ABH and read / write along with ABH. Alternatively, it can be written to APS and read / write along with APS.
[0198] The following section describes the implementation of this example on the decoding side.
[0199] The decoding process is shown in Figure 15B. First, the 420 technology switch flag `is420_for_LT` is read from either the ABH or APS (depending on the writing location). Then, for the LT transform, LoD construction is performed. Next, according to the constructed LoD order, attribute reconstruction updates and prediction processes are performed. During decoding, if the `is420_for_LT` flag is enabled, the chromaticity components of the attribute residuals at points in the last refinement level RL-1 do not need to be decoded; they are directly reconstructed as 0 values, and the predicted value equals the attribute reconstruction value, until attribute reconstruction of all points is completed. The following is the key program segment during decoding, executed when `is420_for_LT` is enabled.
[0200] The technical solution provided in this example was tested in the G-PCC reference software TMC13 V28.0-rc2 according to CTC, using the octree-predlift configuration with C1 and C2 conditions; under the trisoup-predlift configuration, C2 condition was used. The test bitrates were all r01-r06 (r01-r04 were tested under trisoup). The test results are shown in Tables 2 to 7. Compared to related technologies, this example achieves a BD-attrRate of -1.1%, 3.0%, and 3.2% on the Luma, Chroma Cb, and Chroma Cr components of the Cat1 dataset under TMC13 and octree-predlift-C1 test conditions, equivalent to a luminance gain of -0.7% based on a 7:1 importance ratio. Under the octree-predlift-C2 test conditions, it achieves a BD-totalRate of -1.0%, 2.3%, and 2.8% on the Luma, Chroma Cb, and Chroma Cr components of the Cat1 dataset, equivalent to a luminance gain of -0.6% based on a 7:1 importance ratio. Under the trisoup-predlift-C2 test conditions, it achieves a BD-totalRate of -1.4%, 4.9%, and 4.9% on the Luma, Chroma Cb, and Chroma Cr components of the Cat1 dataset, equivalent to a luminance gain of -0.7% based on a 7:1 importance ratio.
[0201] Table 2
[0202] Table 3
[0203] Table 4
[0204] Table 5
[0205] Table 6
[0206] Table 7
[0207] In this table, condition C1 represents a lossless geometry, lossy attribute encoding method, and condition C2 represents a lossy geometry, lossy attribute encoding method. In the table, End-to-End BD-AttrRate represents the BD-Rate of end-to-end attribute values relative to the attribute bitstream, and End-to-End BD-TotalRate represents the BD-Rate of end-to-end attribute values relative to the total bitstream. BD-Rate reflects the reduction in bitrate at average PSNR compared to the original method. A decrease in BD-Rate indicates a reduction in bitrate and improved performance while maintaining the same PSNR; conversely, a increase indicates a decrease in performance. In other words, the greater the decrease in BD-Rate, the better the compression effect. The Cat1 dataset is a static point cloud, categorized into four types based on point density: Solid, Dense, Sparse, and Scant. Finally, the Overall Average is the average of the test results for all sequences.
[0208] The method embodiments of this application have been described in detail above with reference to Figures 1 to 15. The apparatus embodiments of this application will be described in detail below with reference to Figures 16 to 19. It should be understood that the descriptions of the method embodiments correspond to the descriptions of the apparatus embodiments; therefore, any parts not described in detail can be referred to the preceding method embodiments.
[0209] Figure 16 is a schematic diagram of the decoder provided in one embodiment of this application. The decoder 1600 shown in Figure 16 includes a first determining unit 1610 and a second determining unit 1620. The first determining unit is used to determine whether the current point in the point cloud to be decoded satisfies a first condition. The second determining unit 1620 is used to determine that if the current point satisfies the first condition, the attribute residual value corresponding to at least one attribute component of the current point is 0.
[0210] In some implementations, the first condition is related to the refinement layer in which the current point is located.
[0211] In some implementations, the first condition includes: the thinning layer where the current point is located belongs to the Nth thinning layer with the highest index among the multiple thinning layers corresponding to the point cloud to be decoded, where N is a positive integer greater than or equal to 1.
[0212] In some implementations, the first condition is related to the decoding order of the current point in the point cloud to be decoded.
[0213] In some implementations, the first condition includes: the current point is the last M points in the decoding order of the point cloud to be decoded, where M is a positive integer greater than or equal to 1.
[0214] In some implementations, M is equal to one-half, one-quarter, or one-eighth of the number of points in the point cloud to be decoded.
[0215] In some implementations, the first condition is related to the weight of the current point.
[0216] In some implementations, the first condition includes one or more of the following: the current point is a point in the point cloud to be decoded with a weight of a first value; the current point is a point in the point cloud to be decoded with a weight less than or equal to a first threshold.
[0217] In some implementations, the first value is equal to 1.
[0218] In some implementations, the decoder 1600 further includes: a first decoding unit for decoding the bit stream and determining first identification information, wherein the first identification information is used to determine whether to perform the following step: determining whether the current point in the point cloud to be decoded satisfies a first condition.
[0219] In some implementations, the first identification information is located in the attribute block header or the attribute parameter set.
[0220] In some implementations, the at least one attribute component includes one or more of the following: the luminance component of the current point, the first chromaticity component of the current point, and the second chromaticity component of the current point.
[0221] In some implementations, the decoder 1600 further includes an update unit for updating the attribute reconstruction value of at least one reference point of the current point based on the attribute residual value of the current point.
[0222] In some implementations, the decoder 1600 further includes: a third determining unit, configured to determine the attribute prediction value of the current point based on the attribute reconstruction value of at least one reference point of the current point; and a fourth determining unit, configured to determine the attribute reconstruction value of the current point based on the attribute residual value of the current point and the attribute prediction value of the current point.
[0223] In some implementations, the third determining unit is used to: perform a weighted summation of the attribute reconstruction values of the at least one reference point based on the geometric information of the at least one reference point and the geometric information of the current point, and determine the attribute prediction value of the current point.
[0224] In some implementations, the decoder 1600 further includes a fifth determining unit, configured to determine the weights of points in the point cloud to be decoded that are used for attribute prediction based on the current point, according to the weights of the current point.
[0225] In some implementations, the decoder 1600 further includes a sixth determining unit, configured to determine the LoD corresponding to the point cloud to be decoded based on the geometric information of the point cloud to be decoded.
[0226] In some implementations, the sixth determining unit is used to divide the points in the point cloud to be decoded into multiple thinning layers based on the geometric information of the point cloud to be decoded; and to determine the LoD corresponding to the point cloud to be decoded based on the multiple thinning layers.
[0227] In some implementations, the decoder 1600 further includes: a second decoding unit, used to decode the bitstream, determine the quantized attribute residual value of the current point; and perform inverse quantization on the quantized attribute residual value of the current point to determine the attribute residual value of the current point.
[0228] In some implementations, the second decoding unit is used to: dequantize the quantized attribute residual value of the current point according to the weight and quantization parameters of the current point.
[0229] Understandably, in the embodiments of this application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular one. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit described above can be implemented in hardware or as a software functional module.
[0230] If the integrated unit is implemented as a software functional module and not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0231] Therefore, embodiments of this application provide a computer-readable storage medium for use with a decoder, wherein the computer-readable storage medium stores a computer program that, when executed by a processor, implements the decoding method described in the first embodiment.
[0232] Based on the composition of the decoder 1600 described above and the computer-readable storage medium, refer to Figure 17, which shows a schematic diagram of the specific hardware structure of the decoder 1700 provided in this embodiment of the application. As shown in Figure 17, the decoder 1700 may include: a communication interface 1710, a memory 1720, and a processor 1730; the various components are coupled together through a bus system 1740. It is understood that the bus system 1740 is used to realize the connection and communication between these components. In addition to a data bus, the bus system 1740 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus system 1740 in Figure 17.
[0233] The communication interface 1710 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0234] Memory 1720 is used to store computer programs;
[0235] Processor 1730, when running the computer program, performs the following:
[0236] Determine whether the current point in the point cloud to be decoded satisfies the first condition;
[0237] If the current point satisfies the first condition, then the attribute residual value corresponding to at least one attribute component of the current point is determined to be 0.
[0238] It is understood that the memory 1720 in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be 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 Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The memory 1720 of the systems and methods described in this application is intended to include, but is not limited to, these and any other suitable types of memory.
[0239] The processor 1730 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed by the integrated logic circuitry in the hardware of the processor 1730 or by instructions in software form. The processor 1730 can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor. The software modules can be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in memory 1720. Processor 1730 reads the information in memory 1720 and completes the steps of the above method in conjunction with its hardware.
[0240] It is understood that the embodiments described in this application can be implemented using hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application, or combinations thereof. For software implementation, the technology described in this application can be implemented through modules (e.g., procedures, functions, etc.) that perform the functions described in this application. Software code can be stored in memory and executed by a processor. The memory can be implemented in the processor or external to the processor.
[0241] Alternatively, as another embodiment, the processor 1730 is also configured to execute the decoding method described in the foregoing embodiments when running the computer program.
[0242] Figure 18 is a schematic diagram of an encoder provided in an embodiment of this application. The encoder 1800 shown in Figure 18 includes a first determining unit 1810 and a first processing unit 1820. The first determining unit 1810 is used to determine whether the current point in the point cloud to be encoded satisfies a first condition; the first processing unit 1820 is used to skip encoding the attribute residual value corresponding to at least one attribute component of the current point if the current point satisfies the first condition.
[0243] In some implementations, the first condition is related to the refinement layer in which the current point is located.
[0244] In some implementations, the first condition includes: the thinning layer where the current point is located belongs to the Nth thinning layer with the highest index among the multiple thinning layers corresponding to the point cloud to be encoded, where N is a positive integer greater than or equal to 1.
[0245] In some implementations, the first condition is related to the encoding order of the current point in the point cloud to be encoded.
[0246] In some implementations, the first condition includes: the current point is the last M points in the encoding order of the point cloud to be encoded, where M is a positive integer greater than or equal to 1.
[0247] In some implementations, M is equal to one-half, one-quarter, or one-eighth of the number of points in the point cloud to be encoded.
[0248] In some implementations, the first condition is related to the weight of the current point.
[0249] In some implementations, the first condition includes one or more of the following: the current point is a point in the point cloud to be encoded with a weight of a first value; the current point is a point in the point cloud to be encoded with a weight less than or equal to a first threshold.
[0250] In some implementations, the first value is equal to 1.
[0251] In some implementations, encoder 1800 further includes: a first encoding unit for writing first identification information into the bitstream, the first identification information being used to indicate whether the encoding of the attribute residual value corresponding to at least one attribute component of a point satisfying the first condition is skipped.
[0252] In some implementations, the first identification information is located in the attribute block header or the attribute parameter set.
[0253] In some implementations, the at least one attribute component includes one or more of the following: the luminance component of the current point, the first chromaticity component of the current point, and the second chromaticity component of the current point.
[0254] In some implementations, the encoder 1800 further includes an update unit for updating the attribute residual value of at least one reference point of the current point based on the attribute residual value of the current point.
[0255] In some implementations, the encoder 1800 further includes: a second determining unit, used to quantize the attribute residual value of the current point and determine the quantized attribute residual value of the current point; and a second encoding unit, used to write the quantized attribute residual value of the current point into the bit stream.
[0256] In some implementations, the encoder 1800 further includes: a third determining unit, configured to inverse quantize the quantized attribute residual value of the current point to determine the attribute residual value of the current point; and a fourth determining unit, configured to determine the attribute reconstruction value of the current point based on the attribute residual value of the current point and the attribute prediction value of the current point.
[0257] In some implementations, the second determining unit is used to quantize the attribute residual value of the current point according to the weight and quantization parameters of the current point.
[0258] In some implementations, the encoder 1800 further includes a fifth determining unit, configured to determine the attribute prediction value of the current point based on the attribute reconstruction value of at least one reference point of the current point.
[0259] In some implementations, the fifth determining unit is used to: perform a weighted summation of the attribute reconstruction values of at least one reference point of the current point based on the geometric information of the at least one reference point and the geometric information of the current point, and determine the attribute prediction value of the current point.
[0260] In some implementations, the encoder 1800 further includes a sixth determining unit, configured to determine the weights of points in the point cloud to be encoded that are used for attribute prediction based on the current point, according to the weights of the current point.
[0261] In some implementations, the encoder 1800 further includes a seventh determining unit, configured to determine the level of detail (LoD) corresponding to the point cloud to be encoded based on the geometric information of the point cloud to be encoded.
[0262] In some implementations, the seventh determining unit is used to: divide the points in the point cloud to be encoded into multiple thinning layers according to the geometric information of the point cloud to be encoded; and determine the LoD corresponding to the point cloud to be encoded according to the multiple thinning layers.
[0263] Understandably, in the embodiments of this application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular one. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit described above can be implemented in hardware or as a software functional module.
[0264] If the integrated unit is implemented as a software functional module and not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0265] Therefore, embodiments of this application provide a computer-readable storage medium applied to an encoder, wherein the computer-readable storage medium stores a computer program, which, when executed by a processor, implements the decoding method described in any of the foregoing embodiments.
[0266] Based on the composition of the encoder 1800 described above and the computer-readable storage medium, refer to Figure 19, which shows a schematic diagram of the specific hardware structure of the encoder 1900 provided in this embodiment of the application. As shown in Figure 19, the encoder 1900 may include: a communication interface 1910, a memory 1920, and a processor 1930; the various components are coupled together through a bus system 1940. It is understood that the bus system 1940 is used to realize the connection and communication between these components. In addition to a data bus, the bus system 1940 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus system 1940 in Figure 19.
[0267] The communication interface 1910 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0268] Memory 1920 is used to store computer programs;
[0269] Processor 1930, when running the computer program, is configured to perform:
[0270] Determine whether the current point in the point cloud to be encoded satisfies the first condition;
[0271] If the current point satisfies the first condition, then skip encoding the attribute residual value corresponding to at least one attribute component of the current point.
[0272] It is understood that the memory 1920 in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be 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 Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The memory 1920 of the systems and methods described in this application is intended to include, but is not limited to, these and any other suitable types of memory.
[0273] The processor 1930 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed by the integrated logic circuitry in the hardware of the processor 1930 or by instructions in software form. The processor 1930 can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor. The software modules can be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in memory 1920. Processor 1930 reads the information in memory 1920 and, in conjunction with its hardware, completes the steps of the above method.
[0274] It is understood that the embodiments described in this application can be implemented using hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application, or combinations thereof. For software implementation, the technology described in this application can be implemented through modules (e.g., procedures, functions, etc.) that perform the functions described in this application. Software code can be stored in memory and executed by a processor. The memory can be implemented in the processor or external to the processor.
[0275] Alternatively, as another embodiment, the processor 1930 is also configured to execute the encoding method in the foregoing embodiments when running the computer program.
[0276] It should be noted that, in this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0277] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0278] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0279] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0280] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method or device embodiments.
[0281] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A decoding method, applied to a decoder, comprising: Determine whether the current point in the point cloud to be decoded satisfies the first condition; If the current point satisfies the first condition, then the attribute residual value corresponding to at least one attribute component of the current point is determined to be 0.
2. The method according to claim 1, wherein, The first condition is related to the refinement layer in which the current point is located.
3. The method according to claim 2, wherein, The first condition includes: the thinning layer where the current point is located belongs to the Nth thinning layer with the highest index among the multiple thinning layers corresponding to the point cloud to be decoded, where N is a positive integer greater than or equal to 1.
4. The method according to claim 1, wherein, The first condition is related to the decoding order of the current point in the point cloud to be decoded.
5. The method according to claim 4, wherein, The first condition includes: the current point is the last M points in the decoding order of the point cloud to be decoded, where M is a positive integer greater than or equal to 1.
6. The method according to claim 5, wherein, M is equal to one-half, one-quarter, or one-eighth of the number of points in the point cloud to be decoded.
7. The method according to claim 1, wherein, The first condition is related to the weight of the current point.
8. The method according to claim 7, wherein, The first condition includes one or more of the following: The current point is the point in the point cloud to be decoded that has a weight of the first value; The current point is a point in the point cloud to be decoded whose weight is less than or equal to the first threshold.
9. The method according to claim 8, wherein, The first value is equal to 1.
10. The method according to any one of claims 1 to 9, wherein, The method further includes: Decode the bitstream and determine the first identification information. The first identification information is used to determine whether to perform the following steps: determine whether the current point in the point cloud to be decoded meets the first condition.
11. The method according to claim 10, wherein, The first identification information is located in the attribute block header or attribute parameter set.
12. The method according to any one of claims 1 to 11, wherein, The at least one attribute component includes one or more of the following: the luminance component of the current point, the first chromaticity component of the current point, and the second chromaticity component of the current point.
13. The method according to any one of claims 1 to 12, wherein, The method further includes: Update the attribute reconstruction values of at least one reference point of the current point based on the attribute residual values of the current point.
14. The method according to any one of claims 1 to 13, wherein, The method further includes: The attribute prediction value of the current point is determined based on the attribute reconstruction value of at least one reference point of the current point; The attribute reconstruction value of the current point is determined based on the attribute residual value and the attribute prediction value of the current point.
15. The method according to claim 14, wherein, Determining the attribute prediction value of the current point based on the attribute reconstruction values of at least one reference point of the current point includes: Based on the geometric information of the at least one reference point and the geometric information of the current point, the attribute reconstruction values of the at least one reference point are weighted and summed to determine the attribute prediction value of the current point.
16. The method according to any one of claims 1 to 15, wherein, The method further includes: The weights of points in the point cloud to be decoded, based on the weights of the current points, are determined.
17. The method according to any one of claims 1 to 16, wherein, The method further includes: The level of detail (LoD) corresponding to the point cloud to be decoded is determined based on the geometric information of the point cloud to be decoded.
18. The method according to claim 17, wherein, Determining the LoD corresponding to the point cloud to be decoded based on the geometric information of the point cloud to be decoded includes: The points in the point cloud to be decoded are divided into multiple refinement layers based on the geometric information of the point cloud to be decoded; The LoD corresponding to the point cloud to be decoded is determined based on the multiple refinement layers.
19. The method according to any one of claims 1 to 18, wherein, The method further includes: Decode the bitstream and determine the quantized attribute residual value of the current point; The attribute residual value of the current point is dequantized to determine the attribute residual value of the current point.
20. The method according to claim 19, wherein, The step of inverse quantizing the quantized attribute residual value of the current point includes: The quantized attribute residual value of the current point is dequantized based on the weight and quantization parameters of the current point.
21. An encoding method, applied to an encoder, comprising: Determine whether the current point in the point cloud to be encoded satisfies the first condition; If the current point satisfies the first condition, then skip encoding the attribute residual value corresponding to at least one attribute component of the current point.
22. The method according to claim 21, wherein, The first condition is related to the refinement layer in which the current point is located.
23. The method according to claim 22, wherein, The first condition includes: the thinning layer where the current point is located belongs to the Nth thinning layer with the highest index among the multiple thinning layers corresponding to the point cloud to be encoded, where N is a positive integer greater than or equal to 1.
24. The method according to claim 21, wherein, The first condition is related to the encoding order of the current point in the point cloud to be encoded.
25. The method according to claim 24, wherein, The first condition includes: the current point is the last M points in the encoding order of the point cloud to be encoded, where M is a positive integer greater than or equal to 1.
26. The method of claim 25, wherein, M is equal to one-half, one-quarter, or one-eighth of the number of points in the point cloud to be encoded.
27. The method according to claim 21, wherein, The first condition is related to the weight of the current point.
28. The method according to claim 27, wherein, The first condition includes one or more of the following: The current point is the point in the point cloud to be encoded with a weight of the first value; The current point is a point in the point cloud to be encoded whose weight is less than or equal to the first threshold.
29. The method according to claim 28, wherein, The first value is equal to 1.
30. The method according to any one of claims 21 to 29, wherein, The method further includes: The first identification information is written into the bitstream. The first identification information is used to indicate whether the encoding of the attribute residual value corresponding to at least one attribute component of the point that satisfies the first condition is skipped.
31. The method according to claim 30, wherein, The first identification information is located in the attribute block header or attribute parameter set.
32. The method according to any one of claims 21 to 31, wherein, The at least one attribute component includes one or more of the following: the luminance component of the current point, the first chromaticity component of the current point, and the second chromaticity component of the current point.
33. The method according to any one of claims 21 to 32, wherein, The method further includes: Update the attribute residual values of at least one reference point of the current point based on the attribute residual values of the current point.
34. The method according to any one of claims 21 to 33, wherein, The method further includes: The attribute residual value of the current point is quantized to determine the quantized attribute residual value of the current point; Write the quantized attribute residual value of the current point into the bitstream.
35. The method according to claim 34, wherein, The method further includes: The quantized attribute residual value of the current point is dequantized to determine the attribute residual value of the current point; The attribute reconstruction value of the current point is determined based on the attribute residual value and the attribute prediction value of the current point.
36. The method according to claim 34 or 35, wherein, The quantization of the attribute residual value of the current point includes: The attribute residual value of the current point is quantized based on the weight and quantization parameters of the current point.
37. The method according to any one of claims 21 to 36, wherein, The method further includes: The attribute prediction value of the current point is determined based on the attribute reconstruction value of at least one reference point of the current point.
38. The method according to claim 37, wherein, Determining the predicted attribute value of the current point based on the attribute reconstruction value of at least one reference point of the current point includes: Based on the geometric information of the at least one reference point and the geometric information of the current point, the attribute reconstruction values of the at least one reference point of the current point are weighted and summed to determine the attribute prediction value of the current point.
39. The method according to any one of claims 21 to 38, wherein, The method further includes: The weights of points in the point cloud to be encoded, which are used for attribute prediction based on the current point, are determined according to the weight of the current point.
40. The method according to any one of claims 21 to 39, wherein, The method further includes: The level of detail (LoD) corresponding to the point cloud to be encoded is determined based on the geometric information of the point cloud to be encoded.
41. The method according to claim 40, wherein, Determining the LoD corresponding to the point cloud to be encoded based on the geometric information of the point cloud to be encoded includes: The points in the point cloud to be encoded are divided into multiple refinement layers based on the geometric information of the point cloud to be encoded. The LoD corresponding to the point cloud to be encoded is determined based on the multiple refinement layers.
42. A decoder, comprising: The first determining unit is used to determine whether the current point in the point cloud to be decoded satisfies the first condition; The second determining unit is configured to determine that if the current point satisfies the first condition, the attribute residual value corresponding to at least one attribute component of the current point is 0.
43. An encoder, comprising: The first determining unit is used to determine whether the current point in the point cloud to be encoded satisfies the first condition; The first processing unit is configured to skip encoding the attribute residual values corresponding to at least one attribute component of the current point if the current point satisfies the first condition.
44. An encoder, comprising: Memory, used to store computer programs; A processor, configured to perform the method as described in any one of claims 21 to 41 when running the computer program.
45. A non-volatile computer-readable storage medium for storing a bitstream, said bitstream being generated by an encoding method using an encoder, or said bitstream being decoded by a decoding method using a decoder, wherein, The decoding method is the method as described in any one of claims 1 to 20, and the encoding method is the method as described in any one of claims 21 to 41.
46. A bitstream comprising a bitstream generated by the method of any one of claims 21 to 41.
47. A computer-readable storage medium, wherein, The computer-readable storage medium stores a computer program that, when executed, implements the method as described in any one of claims 1 to 20, or the method as described in any one of claims 21 to 41.