Decoding method, encoding method, decoder, and encoder

By gradually decoding and reconstructing the attribute quantization residual values ​​of the U component, V component, G component or B component of the point cloud data, the problem of insufficient decompression performance of the point cloud decoder is solved, and the data storage and transmission efficiency is improved.

CN118900335BActive Publication Date: 2025-10-10GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202411158571.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-03
Publication Date
2025-10-10
Estimated Expiration
2041-12-03

AI Technical Summary

Technical Problem

The decompression performance of the point cloud decoder in the existing technology is insufficient, resulting in low computer storage and transmission efficiency.

Method used

A decoding method is used to sequentially decode the attribute quantization residual values ​​of the U component, V component, G component, or B component of the current point cloud, and obtain the attribute reconstruction value of the current point based on these components to improve the decompression performance.

Benefits of technology

By gradually decoding and reconstructing the components, the decompression efficiency of point cloud data is improved, and the storage space and transmission traffic are reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118900335B_ABST
    Figure CN118900335B_ABST
Patent Text Reader

Abstract

The embodiment of the present application provides a decoding method, an encoding method, a decoder and an encoder. The method comprises the following steps: sequentially decoding attribute quantization residual values of a first component, attribute quantization residual values of a second component and attribute quantization residual values of a third component of a current point from a code stream of a current point cloud; wherein the first component is a U component, a V component, a G component or a B component; and obtaining attribute reconstruction values of the current point based on the attribute quantization residual values of the first component, the attribute quantization residual values of the second component and the attribute quantization residual values of the third component. The first component to be decoded of the current point (i.e. the first component) is designed as a U component, a V component, a G component or a B component, so that the decompression performance can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of coding and decoding technology, and more specifically, to a decoding method, an encoding method, a decoder, and an encoder. Background Art

[0002] Point clouds have become ubiquitous in various fields, such as virtual / augmented reality, robotics, geographic information systems, and medicine. With the continuous improvement of the accuracy and speed of scanning equipment, large numbers of point clouds can be accurately acquired from object surfaces, often corresponding to hundreds of thousands of points in a single scene. This massive number of points also poses challenges for computer storage and transmission. Therefore, point compression and decompression have become a hot topic.

[0003] Point cloud compression primarily involves compressing its location and attribute information. Specifically, the point cloud's location information is first octree-encoded. Then, based on the octree-encoded location information of the current point, a point is selected from the encoded points to predict the attribute value of the current point. The attribute information of the current point is then predicted based on the selected point. The attribute information is then encoded by subtracting the original value from the original value to achieve point cloud encoding. Point cloud decompression is the reverse process of point cloud compression.

[0004] Up to now, how to improve the decompression performance of decoders is still a technical problem that needs to be solved urgently in this field. Summary of the Invention

[0005] The embodiments of the present application provide a decoding method, an encoding method, a decoder, and an encoder, which can improve decompression performance.

[0006] In a first aspect, the present application provides a decoding method, comprising:

[0007] Decoding the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component of the current point in sequence from the code stream of the current point cloud; wherein the first component is the U component, the V component, the G component, or the B component;

[0008] The attribute reconstruction value of the current point is obtained based on the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

[0009] In a second aspect, the present application provides an encoding method, comprising:

[0010] Determining an attribute quantization residual value of a first component, an attribute quantization residual value of a second component, and an attribute quantization residual value of a third component of a current point to be encoded in the current point cloud; wherein the first component is a U component, a V component, a G component, or a B component;

[0011] The attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component are sequentially encoded to obtain a code stream of the current point cloud.

[0012] In a third aspect, the present application provides a decoder, comprising:

[0013] A decoding unit, configured to sequentially decode the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component of the current point from the code stream of the current point cloud; wherein the first component is the U component, the V component, the G component, or the B component;

[0014] An acquiring unit is configured to acquire an attribute reconstruction value of the current point based on the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

[0015] In a fourth aspect, the present application provides an encoder, comprising:

[0016] a determining unit, configured to determine an attribute quantization residual value of a first component, an attribute quantization residual value of a second component, and an attribute quantization residual value of a third component of a current point to be encoded in a current point cloud; wherein the first component is a U component, a V component, a G component, or a B component;

[0017] The encoding unit is configured to sequentially encode the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component to obtain a code stream of the current point cloud.

[0018] In a fifth aspect, the present application provides a coding and decoding device, including:

[0019] a processor adapted to implement computer instructions; and,

[0020] Computer-readable storage medium, the computer-readable storage medium stores computer instructions, and the computer instructions are suitable for being loaded by a processor and executing the encoding and decoding method in any aspect of the first to second aspects or their respective implementations.

[0021] In one implementation, there are one or more processors and one or more memories.

[0022] In one implementation, the computer-readable storage medium may be integrated with the processor, or the computer-readable storage medium may be provided separately from the processor.

[0023] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores computer instructions. When the computer instructions are read and executed by a processor of a computer device, the computer device executes the encoding and decoding method in any one of the above-mentioned first to second aspects or their respective implementation methods.

[0024] Based on the above technical solution, the first component to be decoded at the current point (ie, the first component) is designed to be a U component, a V component, a G component, or a B component, which can improve the decompression performance. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] Figure 1 This is an example of a point cloud image provided in an embodiment of the present application.

[0026] Figure 2 yes Figure 1 A partial enlarged view of the point cloud image shown.

[0027] Figure 3 This is an example of a point cloud image with six viewing angles provided in an embodiment of the present application.

[0028] Figure 4 It is a schematic block diagram of the coding framework provided in an embodiment of the present application.

[0029] Figure 5 It is a schematic block diagram of the decoding framework provided in an embodiment of the present application.

[0030] Figure 6 This is an example of a bounding box provided in an embodiment of the present application.

[0031] Figure 7 This is an example of performing octree partitioning on a bounding box provided by an embodiment of the present application.

[0032] Figures 8 to 10 The encoding order of Morton code in two-dimensional space is shown.

[0033] Figure 11 The encoding order of Morton code in three-dimensional space is shown.

[0034] Figure 12 It is a schematic flowchart of the decoding method provided in an embodiment of the present application.

[0035] Figure 13 It is a schematic flowchart of the encoding method provided in an embodiment of the present application.

[0036] Figure 14 This is a schematic block diagram of a decoder provided in an embodiment of the present application.

[0037] Figure 15This is a schematic block diagram of an encoder provided in an embodiment of the present application.

[0038] Figure 16 This is a schematic block diagram of the encoding and decoding device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0039] The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.

[0040] The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.

[0041] Point Cloud is a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or three-dimensional scene. Figure 1 and Figure 2 The three-dimensional point cloud image and the local magnified image are shown respectively. It can be seen that the point cloud surface is composed of densely distributed points.

[0042] Two-dimensional images contain information at every pixel, and their distribution is regular, so there's no need to record their location information. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so recording the location of each point in space is necessary to fully represent a point cloud. Similar to two-dimensional images, each location in the acquisition process has corresponding attribute information, typically an RGB color value, which reflects the object's color. For point clouds, in addition to color, the more common attribute information corresponding to each point is reflectance, which reflects the surface material of the object. Therefore, point cloud data typically includes geometric information (x, y, z) consisting of three-dimensional position information, and attribute information consisting of three-dimensional color information (r, g, b) and one-dimensional reflectance information (r).

[0043] In other words, each point in a point cloud can include geometric information and attribute information, wherein the geometric information of each point in a point cloud refers to the Cartesian three-dimensional coordinate data of the point, and the attribute information of each point in a point cloud can include, but is not limited to, at least one of the following: color information, material information, and laser reflection intensity information. Color information can be information in any color space. For example, color information can be red, green, and blue (RGB) information. For another example, color information can also be luminance and chrominance (YCbCr, YUV) information. Where Y represents brightness (Luma), Cb (U) represents the blue chrominance component, and Cr (V) represents the red chrominance component. Each point in a point cloud has the same amount of attribute information. For example, each point in a point cloud has two types of attribute information: color information and laser reflection intensity information. For another example, each point in a point cloud has three types of attribute information: color information, material information, and laser reflection intensity information.

[0044] Point cloud images can have multiple viewing angles, for example Figure 3 The point cloud image shown can have six viewing angles. The data storage format corresponding to the point cloud image consists of a file header information part and a data part. The header information includes the data format, data representation type, the total number of point cloud points, and the content represented by the point cloud.

[0045] As an example, the data storage format of the point cloud image can be implemented in the following formats:

[0046] ply

[0047] format ascii 1.0

[0048] element vertex 207242

[0049] property float x

[0050] property float y

[0051] property float z

[0052] property uchar red

[0053] property uchar green

[0054] property uchar blue 75 318 0 0 142 0 75 319 0 0 143 0 75 319 1 1 9 9 75 315 0 1 9 9

[0059] The data storage format of the above point cloud image is ".ply" format, represented by ASCII code, with a total number of points of 207242, and each point has three-dimensional position information xyz and three-dimensional color information rgb.

[0060] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Moreover, since point clouds are obtained by directly sampling real objects, they can provide a strong sense of reality 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.

[0061] Point clouds can be divided into two categories based on application scenarios: machine-perceived point clouds and human-perceived point clouds. Applications of machine-perceived point clouds include, but are not limited to, autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots. Applications of human-perceived point clouds include, but are not limited to, digital cultural heritage, free-viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction. Accordingly, point clouds can be divided into dense and sparse point clouds based on their acquisition method. They can also be divided into static and dynamic point clouds based on their acquisition pathway. More specifically, point clouds can be divided into three types: static point clouds, dynamic point clouds, and dynamically acquired point clouds. For static point clouds, the object is stationary, and the device acquiring the point cloud is also stationary. For dynamic point clouds, the object is moving, but the device acquiring the point cloud is stationary. For dynamic point clouds, the device acquiring the point cloud is moving.

[0062] Point clouds are primarily collected through the following methods: computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual three-dimensional objects and scenes; 3D laser scanning can obtain point clouds of static real-world three-dimensional objects or scenes, generating millions of point clouds per second; and 3D photogrammetry can obtain point clouds of dynamic real-world three-dimensional objects or scenes, generating tens of millions of point clouds per second. Specifically, point clouds of object surfaces can be collected using acquisition devices such as photoelectric radars, lidars, laser scanners, and multi-view cameras. Point clouds obtained using laser measurement principles can include the three-dimensional coordinate information of points and the laser reflection intensity (reflectance) of the points. Point clouds obtained using photogrammetry principles can include the three-dimensional coordinate information of points and their color information. Combining laser measurement and photogrammetry principles to generate point clouds can include the three-dimensional coordinate information of points, the laser reflection intensity (reflectance) of points, and their color information. These technologies reduce the cost and time required to acquire point cloud data and improve data accuracy. For example, in the medical field, magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information can be used to generate point clouds of biological tissues and organs. These technologies reduce the cost and time required to acquire point clouds, while improving data accuracy. While changes in point cloud data acquisition methods have made it possible to acquire large amounts of point cloud data, the processing of massive amounts of 3D point cloud data is facing bottlenecks due to storage space and transmission bandwidth limitations, as application demands grow.

[0063] Taking a point cloud video with a frame rate of 30 fps (frames per second) as an example, each frame contains 700,000 points. Each point in each point cloud frame has coordinate information (xyz, float) and color information (RGB, uchar). Therefore, the data volume of a 10-second point cloud video is approximately 0.7 million (4 bytes, 3 + 1 byte, 3) per 30 fps per 10 seconds, which is 3.15 GB. For a 1280×720 two-dimensional video with a YUV sampling format of 4:2:0 and a frame rate of 24 fps, the data volume for 10 seconds is approximately 1280·720·12 bits per 24 frames per 10 seconds, which is ≈ 0.33 GB. A 10-second two-view 3D video has a data volume of approximately 0.33·2 = 0.66 GB. Therefore, the data volume of a point cloud video far exceeds that of a 2D or 3D video of the same length. Therefore, point cloud compression has become a key issue in promoting the development of the point cloud industry to better manage data, save server storage space, and reduce the transmission traffic and time between the server and client.

[0064] Point cloud compression generally compresses point cloud geometry and attribute information separately. On the encoding side, the point cloud geometry is first encoded in the geometry encoder, and the reconstructed geometry is then fed into the attribute encoder as additional information to aid in the compression of the point cloud attributes. On the decoding side, the point cloud geometry is first decoded in the geometry decoder, and the decoded geometry is then fed into the attribute decoder as additional information to aid in the compression of the point cloud attributes. The entire codec consists of pre-processing / post-processing, geometry encoding / decoding, and attribute encoding / decoding.

[0065] Point clouds can be encoded and decoded respectively through various types of encoding frameworks and decoding frameworks. As an example, the encoding and decoding framework can be the Geometry Point Cloud Compression (G-PCC) encoding and decoding framework or the Video Point Cloud Compression (V-PCC) encoding and decoding framework provided by the Moving Picture Experts Group (MPEG), or it can be the AVS-PCC encoding and decoding framework or the Point Cloud Compression Reference Platform (PCRM) framework provided by the Audio Video Standard (AVS) Task Force. The G-PCC encoding and decoding framework can be used to compress the first static point cloud and the third type of dynamically acquired point cloud, and the V-PCC encoding and decoding framework can be used to compress the second type of dynamic point cloud. The G-PCC encoding and decoding framework is also called the point cloud codec TMC13, and the V-PCC encoding and decoding framework is also called the point cloud codec TMC2. G-PCC and AVS-PCC are both aimed at static sparse point clouds, and their encoding frameworks are roughly the same. The following describes the encoding and decoding framework applicable to the embodiments of the present application using the PCRM framework as an example.

[0066] Figure 4 It is a schematic block diagram of the coding framework provided in an embodiment of the present application.

[0067] like Figure 4 As shown in Figure 2, in the encoding framework, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.

[0068] In the geometric coding part of the encoding end, first, the original geometric information is preprocessed, that is, the geometric origin is normalized to the minimum position in the point cloud space through coordinate translation, and the geometric information is converted from floating-point numbers to integers through coordinate quantization to facilitate subsequent regularization processing. Since the geometric information of some points is the same due to quantization rounding, it is necessary to decide whether to remove duplicate points. Quantization and removal of duplicate points belong to the preprocessing process; then, the regularized geometric information is geometrically encoded, that is, the point cloud space is recursively divided by an octree structure, and the current block is divided into eight sub-blocks of the same size each time, and the occupancy codeword of each sub-block is judged. When the sub-block does not contain a point, it is recorded as empty, otherwise it is recorded as non-empty. The occupancy codeword information of all blocks is recorded in the last layer of the recursive division and encoded; the geometric information expressed by the octree structure is input into the geometric entropy encoder to form a geometric code stream.

[0069] In addition, after the geometric coding is completed, the geometric information is reconstructed and the attribute information is encoded using the reconstructed geometric information.

[0070] In the attribute encoding part, first of all, attribute encoding is mainly for the encoding of color and reflectance information. First, determine whether to perform color space conversion. If the attribute information being processed is color information, the original color also needs to be transformed into a YUV color space that is more in line with the visual characteristics of the human eye. Then, in the case of lossy geometric encoding, since the geometric information changes after geometric encoding, it is necessary to reassign attribute values ​​to each point after geometric encoding so that the attribute error between the reconstructed point cloud and the original point cloud is minimized. This process is called attribute interpolation or attribute recoloring. Next, attribute encoding is performed on the preprocessed attribute information, which is divided into attribute prediction and attribute transformation in attribute information encoding. The attribute prediction process refers to reordering the point cloud and performing attribute prediction. The reordering methods include Morton reordering and Hilbert reordering; for example, Hilbert code is used to reorder point clouds in the AVS coding framework; the sorted point cloud uses a differential method to predict attributes. Specifically, if the geometric information of the current point to be coded is the same as that of the previous coded point, that is, it is a duplicate point, then the reconstructed attribute value of the duplicate point is used as the attribute prediction value of the current point to be coded, otherwise the m points in the previous Hilbert order are selected as neighbor candidate points for the current point to be coded, and then the Manhattan distance of their geometric information with the current point to be coded is calculated respectively, and the n points closest to them are determined as the prediction points of the current point to be coded, and the inverse of the distance is used as the weight to calculate the weighted average of the attributes of the n neighbors as the attribute prediction value of the current point to be coded.

[0071] For example, the attribute prediction value of the current point to be coded can be obtained in the following way:

[0072] PredR=(1 / W1×ref1+1 / W2×ref2+1 / W3×ref3) / (1 / W1+1 / W2+1 / W3).

[0073] Among them, W1, W2, and W3 respectively represent the geometric distances between prediction point 1, prediction point 2, and prediction point 3 and the current point to be encoded, and ref1, ref2, and ref3 respectively represent the attribute reconstruction values ​​of prediction point 1, prediction point 2, and prediction point 3.

[0074] After obtaining the attribute prediction value of the current point to be encoded, the residual value of the current point to be encoded is obtained based on the attribute prediction value of the current point to be encoded. The residual value is the difference between the original attribute value and the predicted attribute value of the current point to be encoded; finally, the residual value is quantized and the quantized residual is input into the attribute entropy encoder to form an attribute code stream.

[0075] Figure 5 It is a schematic block diagram of the decoding framework provided in an embodiment of the present application.

[0076] like Figure 5As shown, at the decoding end, the method of decoding geometry and attributes separately is also adopted. In the geometry decoding part, the geometry bitstream is first entropy decoded to obtain the geometry information of each point, and then the octree structure is constructed in the same way as the geometry encoding. The decoded geometry is combined to reconstruct the coordinate transformed geometry information expressed by the octree structure. On the one hand, the coordinates of this information are dequantized and detranslated to obtain the decoded geometry information, and on the other hand, it is input into the attribute decoder as additional information. In the attribute decoding part, the Morton order is constructed in the same way as the encoding end. The attribute bitstream is first entropy decoded to obtain the quantized residual information; then dequantization is performed to obtain the point cloud residual; similarly, the attribute prediction value of the current point to be decoded is obtained in the same way as the attribute encoding, and then the attribute prediction value is added to the residual value to restore the YUV attribute value of the current point to be decoded; finally, the decoded attribute information is obtained through the inverse transformation of the color space.

[0077] For ease of description, the regularization processing method of point cloud is explained below.

[0078] Since point clouds are irregularly distributed in space, it brings challenges to the encoding process. Therefore, a recursive octree structure is adopted, such as Figure 6 As shown in the figure, the points in the point cloud are expressed as the center of the cube. Specifically, the entire point cloud is first placed in a cube bounding box, and the coordinates of the point in the point cloud are expressed as (x k ,y k ,z k ), k=0,…,K-1, where K is the total number of points in the point cloud, and the boundary values ​​of the point cloud in the x, y, and z directions are:

[0079] x min =min(x 0 ,x 1 ,…,x K-1 );

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

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

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

[0083] y max =max(y0 y 1 ,…,y K-1 );

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

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

[0086] x origin =int(floor(x min ));

[0087] y origin =int(floor(y min ));

[0088] z origin =int(floor(z min ))。

[0089] Where floor() represents the floor calculation or the rounding down calculation. int() represents the rounding operation.

[0090] Based on the calculation formula of the boundary value and the origin, the size of the bounding box in the x, y, z direction can be calculated as follows:

[0091] BoudingBoxSize_x=int(x max -x origin )+1;

[0092] BoudingBoxSize_y=int(y max -y origin )+1;

[0093] BoudingBoxSize_z=int(z max -z origin )+1。

[0094] As Figure 7As shown in the figure, after obtaining the dimensions of the bounding box in the x, y, and z directions, the bounding box is first divided into eight sub-blocks each time. Then, the non-empty blocks in the sub-blocks (blocks containing points) are divided into octrees again. This recursive division is performed until a certain depth. The non-empty sub-blocks of the final size are called voxels. Each voxel contains one or more points. The geometric positions of these points are normalized to the center point of the voxel. The attribute value of the center point is the average of the attribute values ​​of all the points in the voxel. Regularizing the point cloud into blocks in space is conducive to describing the relationship between points in the point cloud, and thus can express a specific coding order. A certain order is determined to encode each voxel (that is, to encode the point (or "node") represented by the voxel. A commonly used coding order is the cross-separated Morton order.

[0095] Figures 8 to 10 The encoding order of Morton code in two-dimensional space is shown. Figure 11 The diagram shows the encoding order of the Morton code in three-dimensional space. The order of the arrows represents the encoding order of the points in the Morton order. Figure 8 shows the "z"-shaped Morton coding order of 2*2 pixels in two-dimensional space, Figure 9 shows the "z"-shaped Morton coding sequence between four 2*2 blocks in two-dimensional space, Figure 10 The Morton coding sequence of the "z" shape between four 4*4 blocks in two-dimensional space is shown, which constitutes the Morton coding sequence of the entire 8*8 block. The Morton coding sequence expanded to three-dimensional space is as follows Figure 11 As shown, Figure 11 There are 16 points shown in the figure. Within each "z", the Morton coding order between each "z" is first encoded along the x-axis, then along the y-axis, and finally along the z-axis.

[0096] In the attribute intra-frame prediction part of point cloud compression, for color attributes, the current point is predicted mainly by referring to the adjacent points of the current point. The residual information is calculated by combining the attribute prediction value with the current point attribute value, and then the residual information is transmitted to the decoder through processes such as quantization. After the decoder receives and parses the bitstream, it obtains the residual information through steps such as inverse transformation and inverse quantization. The decoder predicts the attribute prediction value through the same process, and superimposes it with the residual information to obtain the attribute reconstruction value of the current point.

[0097] For example, different color information formats are used for different test conditions.

[0098] Under the C1 test condition and the C2 test condition, the color attributes of the input point cloud can be converted from RGB to YUV space. The C1 test condition can refer to the test conditions of limit-lossy geometry compression and lossy attribute compression. The C2 test condition can refer to the test conditions of lossless geometry compression and lossy attribute compression.

[0099] For example, the conversion formula for converting the color attribute of the input point cloud from RGB space to YUV space can be as follows:

[0100] Y=0.2126*R+0.7152*G+0.0722*B;

[0101] U=-0.114572*R-0.385428*G+0.5*B+128;

[0102] V=0.5*R-0.454153*G-0.045847*B+128;

[0103] For example, the inverse transformation formula for converting the color attributes of the input point cloud from the YUV space to the RGB space can be as follows:

[0104] R=Y+1.5748*(V-128);

[0105] G=Y-0.18733*(U-128)-0.46813*(V-128);

[0106] B=Y+1.85563*(U-128);

[0107] Under the C3 and C4 test conditions, RGB point clouds can be used directly as input. The C3 test condition refers to both geometric lossless compression and attribute limit-lossy compression. The C4 test condition refers to both geometric lossless compression and attribute lossless compression. These two conditions avoid errors in attribute information caused by color space conversion, improving compression performance.

[0108] The attribute information of the processed point cloud will be input into the point cloud attribute compression encoder in the order of YUV (or RGB). According to the index order of the points in the point cloud, each point will be predicted, quantized, and entropy coded in turn. To facilitate understanding of the solution of this application, the encoding process of the encoder is illustrated below. The specific encoding steps are described as follows:

[0109] a) Search for N predicted points for the current point within the range of points encoded between the current point.

[0110] b) Calculate the weight value of each of the N prediction points according to the geometric distance between the N prediction points and the current point, and calculate the attribute prediction value of the current point (including the attribute prediction value of the Y component, U component, and V component or the attribute prediction value of the R component, G component, and B component) according to the weight value of each prediction point and the attribute reconstruction value of each point (including the attribute reconstruction value of the Y component, U component, and V component or the attribute reconstruction value of the R component, G component, and B component).

[0111] For example, if the format of the attribute information of the current point is YUV format, the encoder can calculate the attribute prediction value of the Y component of the current point based on the weight value of each prediction point and the Y component of each prediction point, calculate the attribute prediction value of the U component of the current point based on the weight value of each prediction point and the U component of each prediction point, and calculate the attribute prediction value of the V component of the current point based on the weight value of each prediction point and the V component of each prediction point. For another example, if the format of the attribute information of the current point is RGB format, the encoder can calculate the attribute prediction value of the R component of the current point based on the weight value of each prediction point and the attribute reconstruction value of the R component of each prediction point, calculate the attribute prediction value of the G component of the current point based on the weight value of each prediction point and the attribute reconstruction value of the G component of each prediction point, and calculate the attribute prediction value of the B component of the current point based on the weight value of each prediction point and the attribute reconstruction value of the B component of each prediction point.

[0112] For example, the attribute prediction value of each component can be determined by the following formula:

[0113]

[0114] Among them, A p Represents the attribute prediction value of each component, w i Represents the weight value of the i-th prediction point among N prediction points, A i Represents the attribute reconstruction value of each component of the i-th point among the N predicted points. For example, if the color information format of the current point is YUV format, each component may include Y component, U component, and V component. If the color information format of the current point is RGB format, each component may include R component, G component, and B component.

[0115] c) The encoder calculates the attribute residual value of each component based on the attribute prediction value of each component and the cross-component prediction value of each component.

[0116] For example, if the color attribute of the current point is in the YUV space, the attribute residual value of each component of the current point can be calculated in the order of Y component, U component, and V component; if the color attribute of the current point is in the RGB space, the attribute residual value of each component of the current point can be calculated in the order of R component, G component, and B component.

[0117] For example, the attribute residual value of each component can be calculated according to the following formula:

[0118] delta=currValue-predictor-residualPrevComponent;

[0119] Among them, delta represents the attribute residual value of each component, currValue represents the original value or true value of each component, predictor represents the attribute predicted value of each component, and residualPrevComponent represents the cross-component predicted value of each component. For example, if the color information format of the current point is in YUV format, each component may include Y component, U component, and V component. If the color information format of the current point is in RGB format, each component may include R component, G component, and B component.

[0120] For example, for the Y component and the R component, since they are the first components to be encoded, the cross-component prediction values ​​of the Y component and the R component can be set to 0. For the U component, the V component, the G component, and the B component, their cross-component prediction values ​​are determined based on the attribute residual reconstruction values ​​obtained by dequantizing the attribute quantization residual values ​​of the previously encoded components. For example, the cross-component prediction value of the U component can be the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the Y component, and the cross-component prediction value of the G component can be the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the R component. For another example, the cross-component prediction value of the V component can be the sum of the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the Y component and the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the U component, and the cross-component prediction value of the B component can be the sum of the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the R component and the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the G component.

[0121] After the encoder obtains the attribute residual values of the components, the attribute residual values of the components are quantized to obtain attribute quantized residual values of the components of the current point. For example, if the format of the color information of the current point is YUV format, the attribute residual values of the components of the current point are sequentially quantized in the order of Y component, U component and V component to obtain the attribute quantized residual values of the components. For another example, if the format of the color information of the current point is RGB format, the attribute residual values of the components of the current point are sequentially quantized in the order of R component, G component and B component to obtain the attribute quantized residual values of the components.

[0122] d) The encoder entropy encodes the attribute quantized residual values of the components of the current point to obtain the bitstream of the point cloud.

[0123] For example, if the format of the color information of the current point is YUV format, the attribute quantized residual values of the components are entropy encoded in the order of Y component, U component and V component to obtain the bitstream of the point cloud. For another example, if the format of the color information of the current point is RGB format, the attribute quantized residual values of the components are entropy encoded in the order of R component, G component and B component to obtain the bitstream of the point cloud.

[0124] Exemplarily, the attribute quantized residual values of the components of the current point can be entropy encoded in the following steps:

[0125] 1) On the one hand, a flag y_r is introduced, which can be used to represent whether the attribute quantized residual value of the Y component is 0 for the point whose format of the attribute information is YUV format, or whether the attribute quantized residual value of the R component is 0 for the point whose format of the attribute information is RGB format. For example, if the attribute quantized residual value of the Y component (or the R component) is 0, the flag y_r = 0, otherwise the flag y_r = 1. The encoder encodes the value of the flag y_r and writes it into the bitstream. On the other hand, another flag yu_rg is introduced, which can be used to represent whether the attribute quantized residual values of the Y component and the U component are both 0 for the point whose format of the attribute information is YUV format, or whether the attribute quantized residual values of the R component and the G component are both 0 for the point whose format of the attribute information is RGB format. For example, if the attribute quantized residual values of the Y component and the U component are both 0, the flag yu_rg = 0, otherwise the flag yu_rg = 1. For another example, if the attribute quantized residual values of the R component and the G component are both 0, the flag yu_rg = 0, otherwise the flag yu_rg = 1.

[0126] 2) The encoder determines whether the attribute quantization residual value of the Y component (or R component) is 0. If it is 0, the encoder executes the following 3), otherwise, the encoder executes the following 4).

[0127] 3) The encoder encodes the value of flagyu_rg and determines whether the attribute quantization residual value of the U component (or G component) is 0. If the attribute quantization residual value of the U component (or G component) is 0, the attribute quantization residual value of the V component (or B component) is encoded. Otherwise, the attribute residual quantization values ​​of the U component and the V component (or the G component and the B component) are encoded in sequence.

[0128] For example, if the color information format of the current point is YUV format, the encoder encodes the value of flagyu_rg and determines whether the attribute quantization residual value of the U component is 0. If the attribute quantization residual value of the U component is 0, the attribute quantization residual value of the V component is encoded. Otherwise, the attribute residual quantization value of the U component and the attribute residual quantization value of the V component are encoded in sequence. For another example, if the color information format of the current point is RGB format, the encoder encodes the value of flagyu_rg and determines whether the attribute quantization residual value of the G component is 0. If the attribute quantization residual value of the G component is 0, the attribute quantization residual value of the B component is encoded. Otherwise, the attribute residual quantization value of the G component and the attribute residual quantization value of the B component are encoded in sequence.

[0129] 4) The encoder encodes the attribute quantization residual values ​​of the Y component, U component, and V component (or R component, G component, and B component) in sequence.

[0130] For example, if the color information format of the current point is YUV format, the encoder sequentially encodes the attribute quantization residual value of the Y component, the attribute quantization residual value of the U component, and the attribute quantization residual value of the V component. For another example, if the color information format of the current point is RGB format, the encoder sequentially encodes the attribute quantization residual value of the R component, the attribute quantization residual value of the G component, and the attribute quantization residual value of the B component.

[0131] e) For the attribute quantization residual value of each component, the encoder performs inverse quantization in the order of Y component, U component, V component (or R component, G component, B component), and then adds the attribute prediction value of the corresponding component and the cross-component prediction value to generate the attribute reconstruction value of the corresponding component of the current point.

[0132] For example, if the color information of the current point is in YUV format, the encoder performs inverse quantization on the attribute quantization residual value of each component in the order of Y component, U component, and V component, and then adds the attribute prediction value and cross-component prediction value of the corresponding component to generate the attribute reconstruction value of the corresponding component of the current point. For another example, if the color information of the current point is in RGB format, the encoder performs inverse quantization on the attribute quantization residual value of each component in the order of R component, G component, and B component, and then adds the attribute prediction value and cross-component prediction value of the corresponding component to generate the attribute reconstruction value of the corresponding component of the current point.

[0133] For example, the attribute reconstruction values ​​of each component of the current point can be generated according to the following formula:

[0134]

[0135] in, Represents the attribute reconstruction value of each component of the current point, Represents the attribute residual reconstruction value after dequantization of each component, predictor represents the attribute prediction value of each component, and residualPrevComponent represents the cross-component prediction value of each component. For example, if the color information format of the current point is in YUV format, each component may include Y component, U component, and V component. If the color information format of the current point is in RGB format, each component may include R component, G component, and B component.

[0136] It should be understood that, since the attribute quantization residual values ​​of each component are dequantized in step c) to obtain the attribute residual reconstruction values ​​of each component, the process of generating the attribute reconstruction values ​​of each component in step e) can also be integrated into step c). In addition, if the process of generating the attribute reconstruction values ​​of each component in step e) is integrated into step c), the process of generating the attribute reconstruction values ​​of each component can also be dequantized in the order of U component, Y component, V component (or G component, R component, B component). This application does not specifically limit this.

[0137] Correspondingly, the specific execution steps of the decoding end are described as follows:

[0138] a) Find N predicted points for the current point within the range of points decoded between the current point;

[0139] b) calculating a weight value of each of the N prediction points according to a geometric distance between the N prediction points and the current point, and calculating the attribute prediction value of the current point according to the weight value of each of the N prediction points and the attribute reconstructed value of each of the N prediction points.

[0140] For example, if the format of the attribute information of the current point is YUV format, the encoder can calculate the attribute prediction value of the Y component of the current point according to the weight value of each of the N prediction points and the Y component of each of the N prediction points, calculate the attribute prediction value of the U component of the current point according to the weight value of each of the N prediction points and the U component of each of the N prediction points, and calculate the attribute prediction value of the V component of the current point according to the weight value of each of the N prediction points and the V component of each of the N prediction points. For another example, if the format of the attribute information of the current point is RGB format, the encoder can calculate the attribute prediction value of the R component of the current point according to the weight value of each of the N prediction points and the attribute reconstructed value of the R component of each of the N prediction points, calculate the attribute prediction value of the G component of the current point according to the weight value of each of the N prediction points and the attribute reconstructed value of the G component of each of the N prediction points, and calculate the attribute prediction value of the B component of the current point according to the weight value of each of the N prediction points and the attribute reconstructed value of the B component of each of the N prediction points.

[0141] For example, the attribute prediction value of each component can be determined by the following formula:

[0142]

[0143] wherein A p represents the attribute prediction value of each component, w i represents the weight value of the i-th prediction point of the N prediction points, A i represents the attribute prediction value of each component of the i-th prediction point of the N prediction points. For example, if the format of the attribute information of the current point is YUV format, the components can include Y component, U component and V component, and if the format of the attribute information of the current point is RGB format, the components can include R component, G component and B component.

[0144] c) decoding the attribute quantization residual value of each component of the current point from the bitstream in the order of Y component, U component, V component (or R component, G component, B component).

[0145] For example, if the color information of the current point is in YUV format, the decoder decodes the bitstream in the order of Y component, U component, and V component to obtain the attribute quantization residual value of each component of the current point. For another example, if the color information of the current point is in RGB format, the decoder decodes the bitstream in the order of R component, G component, and B component to obtain the attribute quantization residual value of each component of the current point.

[0146] Exemplarily, the specific execution steps include:

[0147] 1) Obtain the flag flagy_r from the code stream by decoding. If flagy_r is 0, the attribute quantization residual value of the Y component (or R component) is 0. If flagy_r is 1, the attribute quantization residual value of the Y component (or R component) is not 0.

[0148] For example, if the color information format of the current point is YUV format, the decoder decodes and obtains the flag flagy_r from the bitstream. If flagy_r is 0, the attribute quantization residual value of the Y component is 0. If flagy_r is 1, the attribute quantization residual value of the Y component is not 0. For another example, if the color information format of the current point is RGB format, the decoder decodes and obtains the flag flagy_r from the bitstream. If flagy_r is 0, the attribute quantization residual value of the R component is 0. If flagy_r is 1, the attribute quantization residual value of the R component is not 0.

[0149] 2) Determine whether the attribute quantization residual value of the Y component (or R component) is 0. If it is 0, execute 3), otherwise execute 4).

[0150] 3) Obtain the flag flagyu_rg from the bitstream through decoding. If flagyu_rg is 0, the attribute quantization residual value of the U component (or G component) is 0, and the attribute quantization residual value of the V component (or B component) is obtained from the bitstream through decoding; otherwise, the attribute quantization residual values ​​of the U component, V component (or G component, B component) are obtained from the bitstream through decoding in sequence.

[0151] For example, if the color information format of the current point is YUV, the decoder decodes and obtains the flag flagyu_rg from the bitstream. If flagyu_rg is 0, the attribute quantization residual value of the U component is 0, and the attribute quantization residual value of the V component is decoded from the bitstream. Otherwise, the attribute quantization residual value of the U component and the attribute quantization residual value of the V component are decoded from the bitstream in sequence. For another example, if the color information format of the current point is RGB, the decoder decodes and obtains the flag flagyu_rg from the bitstream. If flagyu_rg is 0, the attribute quantization residual value of the G component is 0, and the attribute quantization residual value of the B component is decoded from the bitstream. Otherwise, the attribute quantization residual value of the G component and the attribute quantization residual value of the B component are decoded from the bitstream in sequence.

[0152] 4) Decode the Y component, U component, and V component (or R component, G component, and B component) from the bitstream in sequence to obtain the attribute quantization residual values.

[0153] For example, if the color information format of the current point is in YUV format, the decoder decodes the flag flagy_r from the bitstream. If flagy_r is 1, the decoder sequentially decodes the attribute quantization residual value of the Y component, the attribute quantization residual value of the U component, and the attribute quantization residual value of the V component from the bitstream. For another example, if the color information format of the current point is in RGB format, the decoder decodes the flag flagy_r from the bitstream. If flagy_r is 1, the decoder sequentially decodes the attribute quantization residual value of the R component, the attribute quantization residual value of the G component, and the attribute quantization residual value of the B component from the bitstream.

[0154] d) For the attribute quantization residual value of each component, the encoder performs inverse quantization in the order of Y component, U component, V component (or R component, G component, B component), and then adds the attribute prediction value of the corresponding component and the cross-component prediction value to generate the attribute reconstruction value of the corresponding component of the current point.

[0155] For example, if the color information of the current point is in YUV format, the encoder performs inverse quantization on the attribute quantization residual value of each component in the order of Y component, U component, and V component, and then adds the attribute prediction value and cross-component prediction value of the corresponding component to generate the attribute reconstruction value of the corresponding component of the current point. For another example, if the color information of the current point is in RGB format, the encoder performs inverse quantization on the attribute quantization residual value of each component in the order of R component, G component, and B component, and then adds the attribute prediction value and cross-component prediction value of the corresponding component to generate the attribute reconstruction value of the corresponding component of the current point.

[0156] For example, the attribute reconstruction values ​​of each component of the current point can be generated according to the following formula:

[0157]

[0158] in, Represents the attribute reconstruction value of each component of the current point, Represents the attribute residual reconstruction value after dequantization of each component, predictor represents the attribute prediction value of each component, and residualPrevComponent represents the cross-component prediction value of each component. For example, if the color information format of the current point is in YUV format, each component may include Y component, U component, and V component. If the color information format of the current point is in RGB format, each component may include R component, G component, and B component.

[0159] In the above scheme, if the format of the color information of the current point is YUV format, the encoder encodes the attribute quantization residual value of each component of the current point in the order of Y component, U component, and V component; if the format of the color information of the current point is RGB format, the encoder encodes the attribute quantization residual value of each component in the order of R component, G component, and B component; accordingly, if the format of the color information of the current point is YUV format, the decoder decodes the attribute quantization residual value of each component of the current point in the order of Y component, U component, and V component; if the format of the color information of the current point is RGB format, the decoder decodes the attribute quantization residual value of each component in the order of R component, G component, and B component.

[0160] It should be noted that in the above scheme, when the decoder decodes the attribute quantization residual value of each component of the current point, it needs to decode two flag bits. On the one hand, a flag bit flagy_r is introduced. For points whose attribute information is in YUV format, it can be used to indicate whether the attribute quantization residual value of the Y component is 0. For points whose attribute information is in RGB format, it can be used to indicate whether the attribute quantization residual value of the R component is 0. For example, if the attribute quantization residual value of the Y component (or R component) is 0, then flagy_r = 0, otherwise flagy_r = 1, and the encoder encodes the value of flagy_r and writes it into the bitstream. On the other hand, another flag bit flagyu_rg is introduced. For points whose attribute information is in YUV format, it can be used to indicate whether the attribute residual quantization value of the Y component and the attribute residual quantization value of the U component are both 0. For points whose attribute information is in RGB format, it can be used to indicate whether the attribute residual quantization value of the R component and the attribute residual quantization value of the G component are both 0. For example, if the attribute residual quantized value of the Y component and the attribute residual quantized value of the U component are both 0, then flagyu_rg = 0, otherwise flagyu_rg = 1. For another example, if the attribute residual quantized value of the R component and the attribute residual quantized value of the G component are both 0, then flagyu_rg = 0, otherwise flagyu_rg = 1.

[0161] During the specific decoding process, it is determined whether the attribute quantization residual value of the Y component (or R component) is 0. If it is 0, 3) is executed, otherwise 4) is executed. In other words, when flagy_r is 0, regardless of whether flagyu_rg is 0, the decoding end needs to decode flagy_r and flagyu_rg. When flagy_r is not 0, the decoding end does not need to decode flagyu_rg. In other words, from the perspective of big data statistics, based on the possibility that each component is not 0, it may affect whether flagy_r is 0, which in turn affects whether the decoding end needs to decode flagyu_rg, and ultimately affects the decoding efficiency of the decoder.

[0162] In view of this, the present application provides a decoding method, which improves decoding efficiency by changing the decoding order of each component in the preceding point.

[0163] Figure 12 is a schematic flow chart of a decoding method 100 provided in an embodiment of the present application. The method 100 may be executed by a decoder or a decoding framework, for example Figure 5 The decoding framework shown.

[0164] like Figure 12 As shown, the decoding method 100 may include:

[0165] S110, sequentially decoding the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component of the current point from the code stream of the current point cloud; wherein the first component is a U component, a V component, a G component, or a B component;

[0166] S120 : Acquire an attribute reconstruction value of the current point based on the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

[0167] In this embodiment, the first component to be decoded at the current point (ie, the first component) is designed to be a U component, a V component, a G component, or a B component, which can improve the decompression performance.

[0168] In addition, the first component to be decoded at the current point (i.e., the first component) is designed to be a U component or a V component. Considering that the brightness component contains more visual information, the present application first decodes the U component or the V component and then decodes the Y component, which is equivalent to being able to determine the cross-component prediction value of the Y component based on the attribute residual reconstruction value of the U component or the attribute residual reconstruction value of the V component. Furthermore, when the attribute reconstruction value of the Y component is determined based on the cross-component prediction value of the Y component, the accuracy of the attribute reconstruction value of the Y component can be improved, thereby improving the decompression performance.

[0169] The applicant tested the solution provided in this application on a point cloud compression platform, and the test results are shown in Tables 1 to 4.

[0170] Table 1 shows the BD-rate of each component of Cat1B, Cat1C, and Cat3 in the case of limit-lossy geometry compression and lossy attribute compression. Cat1B, Cat1C, and Cat3 represent point clouds including different types of attribute information. Table 2 shows the BD-rate of each component of Cat1B, Cat1C, and Cat3 in the case of lossless geometry compression and lossy attribute compression. Table 3 shows the BD-rate of each component of Cat1B, Cat1C, and Cat3 in the case of lossless geometry compression and limit-lossy attribute compression. Table 4 shows the BPIP ratio of Cat1B, Cat1C, and Cat3 in the case of lossless geometry compression and lossless attribute compression.

[0171] Table 1

[0172]

[0173] Table 2

[0174]

[0175]

[0176] Table 3

[0177]

[0178] Table 4

[0179] Test sequence bpip ratio Cat1B 99.9% Cat1C 100.0% Cat3 99.4%

[0180] As shown in Tables 1 to 3, "-" represents a decrease in bit distortion (BD-rate). BD-rate represents the bit rate difference under the same Peak Signal to Noise Ratio (PSNR). A smaller BD-rate indicates better encoding algorithm performance. As shown in Table 4, a larger bpip ratio indicates better encoding algorithm performance. As can be seen from Tables 1 to 4, the decoding method provided by this application has a significant performance improvement.

[0181] Of course, this application does not limit the specific implementation of the second component and the third component.

[0182] For example, the first component may be a U component, the second component may be a V component, and the third component may be a Y component.

[0183] For another example, the first component is a U component, the second component may be a Y component, and the third component may be a V component.

[0184] For another example, the first component is a V component, the second component may be a Y component, and the third component may be a U component.

[0185] For another example, the first component is a V component, the second component may be a U component, and the third component may be a Y component.

[0186] For another example, the first component is a G component, the second component may be an R component, and the third component may be a B component.

[0187] For another example, the first component is a G component, the second component may be a B component, and the third component may be an R component.

[0188] For another example, the first component may be a B component, the second component may be an R component, and the third component may be a G component.

[0189] For another example, the first component is a B component, the second component may be a G component, and the third component may be an R component.

[0190] In some embodiments, S110 may include:

[0191] Decoding the code stream to obtain a first flag, where a value of the first flag is used to indicate whether a property quantization residual value of the first component is zero;

[0192] The code stream is parsed based on the value of the first identifier to obtain the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

[0193] For example, if the attribute information of the current point is in YUV format, assuming that the first component is the U component, the second component may be the Y component, and the third component may be the V component, the decoder decodes the bitstream to obtain a first identifier, the value of which is used to indicate whether the attribute quantization residual value of the U component is zero; after obtaining the first identifier, the decoder can parse the bitstream based on the value of the first identifier to sequentially obtain the attribute quantization residual value of the U component, the attribute quantization residual value of the Y component, and the attribute quantization residual value of the V component. For another example, if the attribute information of the current point is in RGB format, assuming that the first component is the G component, the second component may be the R component, and the third component may be the B component, the decoder decodes the bitstream to obtain a first identifier, the value of which is used to indicate whether the attribute quantization residual value of the G component is zero; after obtaining the first identifier, the decoder can parse the bitstream based on the value of the first identifier to sequentially obtain the attribute quantization residual value of the G component, the attribute quantization residual value of the R component, and the attribute quantization residual value of the B component.

[0194] In some embodiments, if the value of the first identifier is a first numerical value, the decoder determines that the attribute quantization residual value of the first component is zero, and obtains the attribute residual value of the second component and the attribute residual value of the third component based on the second identifier obtained by decoding the bitstream; the value of the second identifier is used to indicate whether the attribute quantization residual value of the second component is zero. For example, the first numerical value can be 0 or another value.

[0195] For example, taking the YUV format of the attribute information of the current point as an example, assuming that the first component is the U component, the second component can be the Y component, and the third component can be the V component, if the value of the first identifier is a first numerical value, the decoder determines that the attribute quantization residual value of the U component is zero, and based on the second identifier obtained by decoding the code stream, obtains the attribute residual value of the Y component and the attribute residual value of the V component. For another example, taking the RGB format of the attribute information of the current point as an example, assuming that the first component is the G component, the second component can be the R component, and the third component can be the B component, if the value of the first identifier is a first numerical value, the decoder determines that the attribute quantization residual value of the G component is zero, and based on the second identifier obtained by decoding the code stream, obtains the attribute residual value of the R component and the attribute residual value of the B component.

[0196] In this embodiment, the codestream includes the first identifier and the second identifier. The first identifier can be used to determine whether the attribute quantization residual value of the first component is zero, and the second identifier can be used to determine whether the attribute quantization residual value of the second component is zero. If the attribute quantization residual value of the first component and the attribute quantization residual value of the second component are both zero, then, for the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component, the codestream only includes the result of encoding the attribute quantization residual value of the third component.

[0197] Of course, in other alternative embodiments, if the value of the first identifier is the first numerical value, the attribute quantization residual value of the first component is zero. In this case, the decoder may also sequentially obtain the attribute quantization residual value of the second component and the attribute quantization residual value of the third component from the bitstream. In other words, the bitstream may not include the second identifier, and the bitstream may include the result of sequentially encoding the attribute quantization residual value of the second component and the attribute quantization residual value of the third component. This application does not specifically limit this.

[0198] In some embodiments, if the value of the second identifier is the first value, the attribute quantization residual value of the second component is determined to be zero, and the attribute quantization residual value of the third component is obtained from the code stream; if the value of the second identifier is the second value, the attribute quantization residual value of the second component and the attribute quantization residual value of the third component are obtained from the code stream in sequence. For example, the first value can be 0 or other values. For example, the second value can be 1 or other values.

[0199] For example, taking the current point's attribute information format as an example of a YUV format, assuming that the first component is a U component, the second component may be a Y component, and the third component may be a V component, if the value of the second identifier is the first value, the decoder determines that the attribute quantization residual value of the Y component is zero and obtains the attribute quantization residual value of the V component from the bitstream; if the value of the second identifier is the second value, the decoder sequentially obtains the attribute quantization residual value of the Y component and the attribute quantization residual value of the V component from the bitstream. For another example, taking the current point's attribute information format as an example of an RGB format, assuming that the first component is a G component, the second component may be an R component, and the third component may be a B component, if the value of the second identifier is the first value, the decoder determines that the attribute quantization residual value of the R component is zero and obtains the attribute quantization residual value of the B component from the bitstream; if the value of the second identifier is the second value, the decoder sequentially obtains the attribute quantization residual value of the R component and the attribute quantization residual value of the B component from the bitstream.

[0200] In some embodiments, the value of the first identifier is a second value; the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component are sequentially obtained from the bitstream. For example, the second value can be 1 or other values.

[0201] For example, taking the format of the attribute information of the current point as YUV format, if the value of the first identifier is the second numerical value, assuming that the first component is the U component, the second component can be the Y component, and the third component can be the V component, then the decoder can sequentially obtain the attribute quantization residual value of the U component, the attribute quantization residual value of the Y component, and the attribute quantization residual value of the V component from the bitstream. For another example, taking the format of the attribute information of the current point as RGB format, assuming that the first component is the G component, the second component can be the R component, and the third component can be the B component, if the value of the first identifier is the second numerical value, then the decoder can sequentially obtain the attribute quantization residual value of the G component, the attribute quantization residual value of the R component, and the attribute quantization residual value of the B component from the bitstream.

[0202] In this embodiment, the first component to be decoded at the current point (i.e., the first component) is designed to be a U component, a V component, a G component, or a B component, which can increase the probability that the value of the first identifier is the second value, which is equivalent to the decoding end not needing to decode the second identifier, thereby improving the decoding efficiency of the decoder.

[0203] In some embodiments, S120 may include:

[0204] For each component in the first component, the second component and the third component, the attribute quantization residual value of each component is inversely quantized to obtain the attribute residual reconstruction value of each component; the attribute residual reconstruction value of each component is obtained; the attribute prediction value of each component is obtained; the cross-component prediction value of each component is obtained; and the sum of the attribute residual reconstruction value of each component, the attribute prediction value of each component, and the cross-component prediction value of each component is determined as the attribute reconstruction value of each component.

[0205] For example, taking the YUV format as an example, assuming that the first component is the U component, the second component can be the Y component, and the third component can be the V component, after the decoder obtains the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component, it can obtain the attribute prediction value of the Y component, the attribute prediction value of the U component, and the attribute prediction value of the V component in sequence, and obtain the cross-component prediction value of the Y component, the cross-component prediction value of the U component, and the cross-component prediction value of the V component in sequence; then, the decoder determines the sum of the attribute residual value of the Y component, the attribute prediction value of the Y component, and the cross-component prediction value of the Y component as the attribute reconstruction value of the Y component, determines the sum of the attribute residual value of the U component, the attribute prediction value of the U component, and the cross-component prediction value of the V component as the attribute reconstruction value of the V component.

[0206] For another example, taking the RGB format of the attribute information of the current point as an example, assuming that the first component is the G component, the second component can be the R component, and the third component can be the B component, after the decoder obtains the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component, it can obtain the attribute prediction value of the R component, the attribute prediction value of the G component, and the attribute prediction value of the B component in sequence, and obtain the cross-component prediction value of the R component, the cross-component prediction value of the G component, and the cross-component prediction value of the B component in sequence; then, the decoder determines the sum of the attribute residual value of the R component, the attribute prediction value of the R component, and the cross-component prediction value of the R component as the attribute reconstruction value of the R component, determines the sum of the attribute residual value of the G component, the attribute prediction value of the G component, and the cross-component prediction value of the G component as the attribute reconstruction value of the G component, and determines the sum of the attribute residual value of the B component, the attribute prediction value of the B component, and the cross-component prediction value of the B component as the attribute reconstruction value of the B component.

[0207] It should be understood that the order in which the decoder obtains the attribute prediction values ​​of each component of the current point can be consistent with the order in which the decoder obtains the attribute quantization residual values ​​of each component of the current point, or they can be inconsistent. This application does not make specific restrictions on this.

[0208] In some embodiments, the cross-component prediction value of the first component is zero; the cross-component prediction value of the first component is zero; the cross-component prediction value of the second component is the attribute residual reconstruction value of the first component; and the cross-component prediction value of the third component is the sum of the attribute residual reconstruction value of the first component and the attribute residual reconstruction value of the second component.

[0209] For example, taking the YUV format of the attribute information of the current point as an example, assuming that the first component is the U component, the second component can be the Y component, and the third component can be the V component, the cross-component prediction value of the U component is zero; the cross-component prediction value of the Y component is the attribute residual reconstruction value of the U component, and the cross-component prediction value of the V component is the sum of the attribute residual reconstruction value of the U component and the attribute residual reconstruction value of the Y component. For another example, taking the RGB format of the attribute information of the current point as an example, assuming that the first component is the G component, the second component can be the R component, and the third component can be the B component, the cross-component prediction value of the G component is zero; the cross-component prediction value of the R component is the attribute residual reconstruction value of the G component; the cross-component prediction value of the B component is the sum of the attribute residual reconstruction value of the G component and the attribute residual reconstruction value of the R component.

[0210] In some embodiments, first, the decoder can search for N prediction points for the current point within the range composed of points decoded before the current point; then, the decoder can calculate the weight values ​​corresponding to the N prediction points based on the geometric distance between the N prediction points and the current point; finally, the decoder can obtain the attribute prediction value of each component based on the weight values ​​corresponding to the N prediction points and the attribute reconstruction value of the N prediction points.

[0211] For example, taking the attribute information of the current point in the YUV format as an example, after the decoder obtains the weight values corresponding to the N prediction points, the attribute prediction value of the Y component of the point before the point can be obtained based on the weight values corresponding to the N prediction points and the attribute reconstruction values of the Y components of the N prediction points, the attribute prediction value of the U component of the point before the point can be obtained based on the weight values corresponding to the N prediction points and the attribute reconstruction values of the U components of the N prediction points, and the attribute prediction value of the V component of the point before the point can be obtained based on the weight values corresponding to the N prediction points and the attribute reconstruction values of the V components of the N prediction points. For another example, taking the attribute information of the current point in the RGB format as an example, after the decoder obtains the weight values corresponding to the N prediction points, the attribute prediction value of the R component of the point before the point can be obtained based on the weight values corresponding to the N prediction points and the attribute reconstruction values of the R components of the N prediction points, the attribute prediction value of the G component of the point before the point can be obtained based on the weight values corresponding to the N prediction points and the attribute reconstruction values of the G components of the N prediction points, and the attribute prediction value of the B component of the point before the point can be obtained based on the weight values corresponding to the N prediction points and the attribute reconstruction values of the B components of the N prediction points.

[0212] The specific execution steps of the decoding end will be exemplarily described below in combination with specific embodiments.

[0213] Embodiment 1

[0214] In this embodiment, the decoding end decodes the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component of the current point from the code stream of the current point cloud in sequence. As an example, the first component is the U component, the second component can be the Y component, and the third component can be the V component. As another example, the first component is the G component, the second component can be the R component, and the third component can be the B component.

[0215] Exemplarily, the execution process of the decoding end can include the following steps:

[0216] a) finding N prediction points for the current point in the range composed of the points between which decoding is completed;

[0217] b) calculating the weight value of each of the N prediction points according to the geometric distance between the N prediction points and the current point, and calculating the attribute prediction value of the current point (including the attribute prediction value of the Y component, the U component, and the V component or the attribute prediction value of the R component, the G component, and the B component) according to the weight value of each of the N prediction points and the attribute reconstruction value of each of the N prediction points (including the attribute reconstruction value of the Y component, the U component, and the V component or the attribute reconstruction value of the R component, the G component, and the B component).

[0218] For example, if the format of the attribute information of the current point is YUV format, the encoder can calculate the attribute prediction value of the Y component of the current point based on the weight value of each prediction point and the Y component of each prediction point, calculate the attribute prediction value of the U component of the current point based on the weight value of each prediction point and the U component of each prediction point, and calculate the attribute prediction value of the V component of the current point based on the weight value of each prediction point and the V component of each prediction point. For another example, if the format of the attribute information of the current point is RGB format, the encoder can calculate the attribute prediction value of the R component of the current point based on the weight value of each prediction point and the attribute reconstruction value of the R component of each prediction point, calculate the attribute prediction value of the G component of the current point based on the weight value of each prediction point and the attribute reconstruction value of the G component of each prediction point, and calculate the attribute prediction value of the B component of the current point based on the weight value of each prediction point and the attribute reconstruction value of the B component of each prediction point.

[0219] For example, the attribute prediction value of each component can be determined by the following formula:

[0220]

[0221] Among them, A p Represents the attribute prediction value of each component, w i Represents the weight value of the i-th prediction point among N prediction points, A i Indicates the attribute prediction value of each component of the i-th point among the N predicted points. For example, if the color information format of the current point is YUV format, each component may include Y component, U component, and V component. If the color information format of the current point is RGB format, each component may include R component, G component, and B component.

[0222] c) Decode the U component, Y component, V component (or G component, R component, B component) in the order of the bitstream to obtain the attribute quantization residual value of each component at the current point.

[0223] For example, if the color information of the current point is in YUV format, the decoder decodes the U component, Y component, and V component from the bitstream to obtain the attribute quantization residual value of each component of the current point. For another example, if the color information of the current point is in RGB format, the encoder decodes the G component, R component, and B component from the bitstream to obtain the attribute quantization residual value of each component of the current point.

[0224] Exemplarily, the specific execution steps include:

[0225] 1) Obtain the flag flagu_g from the code stream by decoding. If flagu_g is 0, the attribute quantization residual value of the U component (or G component) is 0. If flagu_g is 1, the attribute quantization residual value of the U component (or G component) is not 0.

[0226] For example, if the color information format of the current point is YUV format, the decoder decodes and obtains the flag flagu_g from the bitstream. If flagu_g is 0, the attribute quantization residual value of the U component is 0. If flagu_g is 1, the attribute quantization residual value of the U component is not 0. For another example, if the color information format of the current point is RGB format, the decoder decodes and obtains the flag flagu_g from the bitstream. If flagu_g is 0, the attribute quantization residual value of the G component is 0. If flagu_g is 1, the attribute quantization residual value of the G component is not 0.

[0227] 2) Determine whether the attribute quantization residual value of the U component (or G component) is 0. If it is 0, execute 3), otherwise execute 4).

[0228] 3) Obtain the flag flaguy_gr from the bitstream by decoding. If flaguy_gr is 0, the attribute quantization residual value of the Y component (or R component) is 0, and the attribute quantization residual value of the V component (or B component) is obtained from the bitstream by decoding; otherwise, the attribute quantization residual values ​​of the Y component, V component (or R component, B component) are obtained from the bitstream by decoding in sequence.

[0229] For example, if the color information format of the current point is YUV, the decoder decodes and obtains the flag flaguy_gr from the bitstream. If flaguy_gr is 0, the attribute quantization residual value of the Y component is 0, and the attribute quantization residual value of the V component is decoded from the bitstream. Otherwise, the attribute quantization residual value of the Y component and the attribute quantization residual value of the V component are decoded from the bitstream in sequence. For another example, if the color information format of the current point is RGB, the decoder decodes and obtains the flag flaguy_gr from the bitstream. If flaguy_gr is 0, the attribute quantization residual value of the R component is 0, and the attribute quantization residual value of the B component is decoded from the bitstream. Otherwise, the attribute quantization residual value of the R component and the attribute quantization residual value of the B component are decoded from the bitstream in sequence.

[0230] 4) Decode the U component, Y component, and V component (or G component, R component, and B component) from the bitstream in sequence to obtain the attribute quantization residual values.

[0231] For example, if the color information format of the current point is in YUV format, the decoder decodes and obtains the flag flagu_g from the bitstream. If flagu_g is 1, the decoder sequentially decodes and obtains the attribute quantization residual value of the U component, the attribute quantization residual value of the Y component, and the attribute quantization residual value of the V component from the bitstream. For another example, if the color information format of the current point is in RGB format, the decoder decodes and obtains the flag flagu_g from the bitstream. If flagu_g is 1, the decoder sequentially decodes and obtains the attribute quantization residual value of the G component, the attribute quantization residual value of the R component, and the attribute quantization residual value of the B component from the bitstream.

[0232] d) For the attribute quantization residual value of each component, the encoder performs inverse quantization in the order of Y component, U component, V component (or R component, G component, B component), and then adds the attribute prediction value of the corresponding component and the cross-component prediction value to generate the attribute reconstruction value of the corresponding component of the current point.

[0233] For example, if the color information of the current point is in YUV format, the encoder performs inverse quantization on the attribute quantization residual value of each component in the order of Y component, U component, and V component, and then adds the attribute prediction value and cross-component prediction value of the corresponding component to generate the attribute reconstruction value of the corresponding component of the current point. For another example, if the color information of the current point is in RGB format, the encoder performs inverse quantization on the attribute quantization residual value of each component in the order of R component, G component, and B component, and then adds the attribute prediction value and cross-component prediction value of the corresponding component to generate the attribute reconstruction value of the corresponding component of the current point.

[0234] For example, the attribute reconstruction values ​​of each component of the current point can be generated according to the following formula:

[0235]

[0236] in, Represents the attribute reconstruction value of each component of the current point, Represents the attribute residual reconstruction value after dequantization of each component, predictor represents the attribute prediction value of each component, and residualPrevComponent represents the cross-component prediction value of each component. For example, if the color information format of the current point is in YUV format, each component may include Y component, U component, and V component. If the color information format of the current point is in RGB format, each component may include R component, G component, and B component.

[0237] In the above scheme, if the format of the color information of the current point is YUV format, the encoder encodes the attribute quantization residual value of each component of the current point in the order of U component, Y component, and V component; if the format of the color information of the current point is RGB format, the encoder encodes the attribute quantization residual value of each component in the order of G component, R component, and B component; correspondingly, if the format of the color information of the current point is YUV format, the decoder decodes the attribute quantization residual value of each component of the current point in the order of U component, Y component, and V component; if the format of the color information of the current point is RGB format, the decoder decodes the attribute quantization residual value of each component in the order of G component, R component, and B component.

[0238] The preferred embodiments of the present application are described in detail above in conjunction with the accompanying drawings. However, the present application is not limited to the specific details in the above embodiments. Within the technical concept of the present application, the technical solution of the present application can be subjected to a variety of simple modifications, and these simple modifications all fall within the scope of protection of the present application. For example, the various specific technical features described in the above specific embodiments can be combined in any suitable manner without contradiction. In order to avoid unnecessary repetition, the present application will no longer describe the various possible combinations separately. For another example, the various different embodiments of the present application can also be arbitrarily combined, as long as they do not violate the idea of ​​the present application, they should also be regarded as the contents disclosed in the present application. It should also be understood that in the various method embodiments of the present application, the size of the sequence number of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0239] Figure 13 2 is a schematic flow chart based on the encoding method 200 provided in an embodiment of the present application. The method 200 can be executed by an encoder or an encoding framework, for example Figure 4 The coding frame is shown.

[0240] like Figure 13 As shown, the encoding method 200 may include:

[0241] S210, determining an attribute quantization residual value of a first component, an attribute quantization residual value of a second component, and an attribute quantization residual value of a third component of a current point to be encoded in the current point cloud; wherein the first component is a U component, a V component, a G component, or a B component;

[0242] S220 , sequentially encode the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component to obtain a code stream of the current point cloud.

[0243] In some embodiments, the code stream includes a result obtained by encoding a value of a first identifier, where the value of the first identifier is used to indicate whether the attribute quantization residual value of the first component is zero.

[0244] In some embodiments, if the value of the first identifier is a first numerical value, it indicates that the attribute quantization residual value of the first component is zero; if the value of the first identifier is a second numerical value, it indicates that the attribute quantization residual value of the first component is not zero.

[0245] In some embodiments, if the attribute quantization residual value of the first component is zero, the code stream further includes a result obtained by encoding the value of the second identifier, where the value of the second identifier is used to indicate whether the attribute quantization residual value of the second component is zero.

[0246] In some embodiments, if the value of the second identifier is a first value, it indicates that the attribute quantization residual value of the second component is zero; if the value of the second identifier is a second value, it indicates that the attribute quantization residual value of the second component is not zero.

[0247] In some embodiments, if the attribute quantization residual value of the first component and the attribute quantization residual value of the second component are both zero, the code stream further includes a result obtained by encoding the attribute quantization residual value of the third component.

[0248] In some embodiments, if the attribute quantization residual value of the first component and the attribute quantization residual value of the second component are not both zero, the code stream further includes a result obtained by sequentially encoding the attribute quantization residual value of the second component and the attribute quantization residual value of the third component.

[0249] In some embodiments, if the attribute quantization residual value of the first component is not zero, the code stream further includes a result obtained by sequentially encoding the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

[0250] In some embodiments, the method 200 may further include:

[0251] For each of the first component, the second component, and the third component, performing inverse quantization processing on the attribute quantization residual value of each component to obtain an attribute residual reconstruction value of each component;

[0252] Obtain the attribute residual reconstruction value of each component;

[0253] Get the attribute prediction value of each component;

[0254] Obtain the cross-component prediction value of each component;

[0255] The sum of the attribute residual reconstruction value of each component, the attribute prediction value of each component, and the cross-component prediction value of each component is determined as the attribute reconstruction value of each component.

[0256] In some embodiments, the cross-component prediction value of the first component is zero; the cross-component prediction value of the second component is the attribute residual reconstruction value of the first component; and the cross-component prediction value of the third component is the sum of the attribute residual reconstruction value of the first component and the attribute residual reconstruction value of the second component.

[0257] In some embodiments, N prediction points are searched for the current point within a range formed by points encoded before the current point; weight values ​​corresponding to the N prediction points are calculated based on the geometric distances between the N prediction points and the current point; and based on the weight values ​​corresponding to the N prediction points and the attribute reconstruction values ​​of the N prediction points, the attribute prediction value of each component is obtained.

[0258] The specific execution steps of the encoding end are exemplarily described below with reference to specific embodiments.

[0259] Example 2:

[0260] In this embodiment, the encoder sequentially encodes the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component to obtain a code stream of the current point cloud. As an example, the first component is a U component, the second component may be a Y component, and the third component may be a V component. As another example, the first component is a G component, the second component may be an R component, and the third component may be a B component.

[0261] In this embodiment, the execution process of the encoding end may include the following steps:

[0262] a) Search for N predicted points for the current point within the range of points encoded between the current point.

[0263] b) Calculate the weight value of each of the N prediction points according to the geometric distance between the N prediction points and the current point, and calculate the attribute prediction value of the current point (including the attribute prediction value of the Y component, U component, and V component or the attribute prediction value of the R component, G component, and B component) according to the weight value of each prediction point and each attribute reconstruction value (including the attribute reconstruction value of the Y component, U component, and V component or the attribute reconstruction value of the R component, G component, and B component).

[0264] For example, if the format of the attribute information of the current point is YUV format, the encoder can calculate the attribute prediction value of the Y component of the current point based on the weight value of each prediction point and the Y component of each prediction point, calculate the attribute prediction value of the U component of the current point based on the weight value of each prediction point and the U component of each prediction point, and calculate the attribute prediction value of the V component of the current point based on the weight value of each prediction point and the V component of each prediction point. For another example, if the format of the attribute information of the current point is RGB format, the encoder can calculate the attribute prediction value of the R component of the current point based on the weight value of each prediction point and the attribute reconstruction value of the R component of each prediction point, calculate the attribute prediction value of the G component of the current point based on the weight value of each prediction point and the attribute reconstruction value of the G component of each prediction point, and calculate the attribute prediction value of the B component of the current point based on the weight value of each prediction point and the attribute reconstruction value of the B component of each prediction point.

[0265] For example, the attribute prediction value of each component can be determined by the following formula:

[0266]

[0267] Among them, A p Represents the attribute prediction value of each component, w i Represents the weight value of the i-th prediction point among N prediction points, A i Indicates the attribute prediction value of each component of the i-th point among the N predicted points. For example, if the color information format of the current point is YUV format, each component may include Y component, U component, and V component. If the color information format of the current point is RGB format, each component may include R component, G component, and B component.

[0268] c) The encoder calculates the attribute residual value of each component based on the attribute prediction value of each component and the cross-component prediction value of each component.

[0269] For example, if the color attribute of the current point is in the YUV space, the attribute residual value of each component of the current point can be calculated in the order of Y component, U component, and V component; if the color attribute of the current point is in the RGB space, the attribute residual value of each component of the current point can be calculated in the order of R component, G component, and B component.

[0270] For example, the attribute residual value of each component can be calculated according to the following formula:

[0271] delta=currValue-predictor-residualPrevComponent;

[0272] Among them, delta represents the attribute residual value of each component, currValue represents the original value or true value of each component, predictor represents the attribute predicted value of each component, and residualPrevComponent represents the cross-component predicted value of each component. For example, if the color information format of the current point is in YUV format, each component may include Y component, U component, and V component. If the color information format of the current point is in RGB format, each component may include R component, G component, and B component.

[0273] For example, for the Y component and the R component, since they are the first components to be encoded, the cross-component prediction values ​​of the Y component and the R component can be set to 0. For the U component, the V component, the G component, and the B component, their cross-component prediction values ​​are determined based on the attribute residual values ​​obtained by dequantizing the attribute quantization residual values ​​of the previously encoded components. For example, the cross-component prediction value of the U component can be the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the Y component, and the cross-component prediction value of the G component can be the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the R component. For another example, the cross-component prediction value of the V component can be the sum of the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the Y component and the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the U component, and the cross-component prediction value of the B component can be the sum of the attribute residual value obtained by dequantizing the attribute quantization residual reconstruction value of the R component and the attribute residual reconstruction value obtained by dequantizing the attribute quantization residual value of the G component.

[0274] After obtaining the attribute residual values ​​of each component, the encoder quantizes them to obtain the attribute quantized residual values ​​of each component at the current point. For example, if the color information format of the current point is YUV, the attribute residual values ​​of each component at the current point are quantized in the order of Y component, U component, and V component to obtain the attribute quantized residual values ​​of each component. For another example, if the color information format of the current point is RGB, the attribute residual values ​​of each component at the current point are quantized in the order of R component, G component, and B component to obtain the attribute quantized residual values ​​of each component.

[0275] d) The encoder performs entropy coding on the attribute quantization residual values ​​of each component of the current point to obtain the code stream of the point cloud.

[0276] For example, if the color information of the current point is in YUV format, the attribute quantization residual values ​​of each component are entropy coded in the order of U component, Y component, and V component to obtain the point cloud bitstream. For another example, if the color information of the current point is in RGB format, the attribute quantization residual values ​​of each component are entropy coded in the order of G component, R component, and B component to obtain the point cloud bitstream.

[0277] Exemplarily, entropy coding may be performed on the attribute quantization residual value of each component of the current point according to the following steps:

[0278] 1) On the one hand, a flag bit, flagu_g, is introduced. For points whose attribute information is in the YUV format, it can be used to indicate whether the attribute quantization residual value of the U component is 0. For points whose attribute information is in the RGB format, it can be used to indicate whether the attribute quantization residual value of the G component is 0. For example, if the attribute quantization residual value of the U component (or the G component) is 0, then flagu_g = 0; otherwise, flagu_g = 1. The encoder encodes the value of flagu_g and writes it into the bitstream. On the other hand, another flag bit, flaguy_gr, is introduced. For points whose attribute information is in the YUV format, it can be used to indicate whether the attribute residual quantization value of the U component and the attribute residual quantization value of the Y component are both 0. For points whose attribute information is in the RGB format, it can be used to indicate whether the attribute residual quantization value of the G component and the attribute residual quantization value of the R component are both 0. For example, if the attribute residual quantization value of the U component and the attribute residual quantization value of the Y component are both 0, then flaguy_gr = 0; otherwise, flaguy_gr = 1. For another example, if the attribute residual quantized value of the G component and the attribute residual quantized value of the R component are both 0, then flaguy_gr=0; otherwise, flaguy_gr=1.

[0279] 2) The encoder determines whether the attribute quantization residual value of the U component (or G component) is 0. If it is 0, the encoder executes the following 3), otherwise, the encoder executes the following 4).

[0280] 3) The encoder encodes the value of flaguy_gr and determines whether the attribute quantization residual value of the Y component (or R component) is 0. If the attribute quantization residual value of the Y component (or R component) is 0, the attribute quantization residual value of the V component (or B component) is encoded. Otherwise, the attribute residual quantization values ​​of the Y component and the V component (or the R component and the B component) are encoded in sequence.

[0281] For example, if the color information format of the current point is YUV format, the encoder encodes the value of flaguy_gr and determines whether the attribute quantization residual value of the Y component is 0. If the attribute quantization residual value of the Y component is 0, the attribute quantization residual value of the V component is encoded. Otherwise, the attribute residual quantization value of the Y component and the attribute residual quantization value of the V component are encoded in sequence. For another example, if the color information format of the current point is RGB format, the encoder encodes the value of flaguy_gr and determines whether the attribute quantization residual value of the R component is 0. If the attribute quantization residual value of the R component is 0, the attribute quantization residual value of the B component is encoded. Otherwise, the attribute residual quantization value of the R component and the attribute residual quantization value of the B component are encoded in sequence.

[0282] 4) The encoder encodes the attribute quantization residual values ​​of the U component, Y component, and V component (or G component, R component, and B component) in sequence.

[0283] For example, if the color information format of the current point is YUV format, the encoder sequentially encodes the attribute quantization residual value of the U component, the attribute quantization residual value of the Y component, and the attribute quantization residual value of the V component. For another example, if the color information format of the current point is RGB format, the encoder sequentially encodes the attribute quantization residual value of the G component, the attribute quantization residual value of the R component, and the attribute quantization residual value of the B component.

[0284] e) For the attribute quantization residual value of each component, the encoder performs inverse quantization in the order of Y component, U component, V component (or R component, G component, B component), and then adds the attribute prediction value of the corresponding component and the cross-component prediction value to generate the attribute reconstruction value of the corresponding component of the current point.

[0285] For example, if the color information of the current point is in YUV format, the encoder performs inverse quantization on the attribute quantization residual value of each component in the order of Y component, U component, and V component, and then adds the attribute prediction value and cross-component prediction value of the corresponding component to generate the attribute reconstruction value of the corresponding component of the current point. For another example, if the color information of the current point is in RGB format, the encoder performs inverse quantization on the attribute quantization residual value of each component in the order of R component, G component, and B component, and then adds the attribute prediction value and cross-component prediction value of the corresponding component to generate the attribute reconstruction value of the corresponding component of the current point.

[0286] For example, the attribute reconstruction values ​​of each component of the current point can be generated according to the following formula:

[0287]

[0288] in, Represents the attribute reconstruction value of each component of the current point, Represents the attribute residual reconstruction value after dequantization of each component, predictor represents the attribute prediction value of each component, and residualPrevComponent represents the cross-component prediction value of each component. For example, if the color information format of the current point is in YUV format, each component may include Y component, U component, and V component. If the color information format of the current point is in RGB format, each component may include R component, G component, and B component.

[0289] It should be understood that, since the attribute quantization residual values ​​of each component are dequantized in step c) to obtain the attribute residual reconstruction values ​​of each component, the process of generating the attribute reconstruction values ​​of each component in step e) can also be integrated into step c). In addition, if the process of generating the attribute reconstruction values ​​of each component in step e) is integrated into step c), the process of generating the attribute reconstruction values ​​of each component can also be dequantized in the order of U component, Y component, V component (or G component, R component, B component). This application does not specifically limit this.

[0290] The encoder or decoder provided in the embodiments of the present application will be described below with reference to the accompanying drawings.

[0291] Figure 14 It is a schematic block diagram of the decoder 300 provided in an embodiment of the present application.

[0292] like Figure 14 As shown, the decoder 300 may include:

[0293] The decoding unit 310 is configured to sequentially decode the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component of the current point from the code stream of the current point cloud; wherein the first component is the U component, the V component, the G component, or the B component;

[0294] The acquiring unit 320 is configured to acquire the attribute reconstruction value of the current point based on the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

[0295] In some embodiments, the decoding unit 310 is specifically configured to:

[0296] Decoding the code stream to obtain a first flag, where a value of the first flag is used to indicate whether a property quantization residual value of the first component is zero;

[0297] The code stream is parsed based on the value of the first identifier to obtain the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

[0298] In some embodiments, the first identifier has a first value; and the decoding unit 310 is specifically configured to:

[0299] determine that the attribute quantization residual value of the first component is zero;

[0300] obtain the attribute residual value of the second component and the attribute residual value of the third component based on a second identifier obtained by decoding the bitstream; and the value of the second identifier is used to indicate whether the attribute quantization residual value of the second component is zero.

[0301] In some embodiments, the decoding unit 310 is specifically configured to:

[0302] if the value of the second identifier is the first value, determine that the attribute quantization residual value of the second component is zero, and obtain the attribute quantization residual value of the third component from the bitstream;

[0303] if the value of the second identifier is a second value, obtain the attribute quantization residual value of the second component and the attribute quantization residual value of the third component from the bitstream in sequence.

[0304] In some embodiments, the first identifier has a second value; and the decoding unit 310 is specifically configured to:

[0305] obtain the attribute quantization residual value of the first component, the attribute quantization residual value of the second component and the attribute quantization residual value of the third component from the bitstream in sequence.

[0306] In some embodiments, the obtaining unit 320 is specifically configured to:

[0307] perform inverse quantization processing on the attribute quantization residual value of each of the first component, the second component and the third component to obtain an attribute residual reconstruction value of the each component;

[0308] obtain the attribute residual reconstruction value of the each component;

[0309] obtain an attribute prediction value of the each component;

[0310] obtain a cross-component prediction value of the each component;

[0311] determine a sum of the attribute residual reconstruction value of the each component, the attribute prediction value of the each component and the cross-component prediction value of the each component as an attribute reconstruction value of the each component.

[0312] In some embodiments, the cross-component prediction value of the first component is zero; the cross-component prediction value of the second component is the attribute residual reconstruction value of the first component; and the cross-component prediction value of the third component is the sum of the attribute residual reconstruction value of the first component and the attribute residual reconstruction value of the second component.

[0313] In some embodiments, the obtaining unit 320 is specifically configured to:

[0314] find N prediction points for the current point within a range composed of points that have been decoded completely before the current point;

[0315] calculate weight values corresponding to the N prediction points according to geometric distances between the N prediction points and the current point;

[0316] obtain the attribute prediction value of each component based on the weight values corresponding to the N prediction points and attribute reconstruction values of the N prediction points.

[0317] It should be noted that the decoder 300 can also be combined with the decoding framework as shown in Figure 5 , that is, units in the decoder 300 can be replaced or combined with related parts in the decoding framework. For example, the obtaining unit 320 can be used to implement the attribute prediction part in the decoding framework.

[0318] Figure 15 is a schematic block diagram of an encoder 400 provided by an embodiment of the present application.

[0319] As shown in Figure 15 , the encoder 400 can include:

[0320] A determining unit 410 is configured to determine attribute quantization residual values of a first component, a second component and a third component of a current point to be encoded in a current point cloud; wherein the first component is a U component, a V component, a G component or a B component.

[0321] An encoding unit 420 is configured to sequentially encode the attribute quantization residual values of the first component, the attribute quantization residual values of the second component and the attribute quantization residual values of the third component, to obtain a bitstream of the current point cloud.

[0322] In some embodiments, the bitstream includes a result of encoding a value of a first identifier, and the value of the first identifier is used to indicate whether the attribute quantization residual value of the first component is zero.

[0323] In some embodiments, if the value of the first identifier is a first numerical value, it indicates that the attribute quantization residual value of the first component is zero; and if the value of the first identifier is a second numerical value, it indicates that the attribute quantization residual value of the first component is not zero.

[0324] In some embodiments, if the attribute quantization residual value of the first component is zero, the code stream further includes a result obtained by encoding the value of the second identifier, where the value of the second identifier is used to indicate whether the attribute quantization residual value of the second component is zero.

[0325] In some embodiments, if the value of the second identifier is a first value, it indicates that the attribute quantization residual value of the second component is zero; if the value of the second identifier is a second value, it indicates that the attribute quantization residual value of the second component is not zero.

[0326] In some embodiments, if the attribute quantization residual value of the first component and the attribute quantization residual value of the second component are both zero, the code stream further includes a result obtained by encoding the attribute quantization residual value of the third component.

[0327] In some embodiments, if the attribute quantization residual value of the first component and the attribute quantization residual value of the second component are not both zero, the code stream further includes a result obtained by sequentially encoding the attribute quantization residual value of the second component and the attribute quantization residual value of the third component.

[0328] In some embodiments, if the attribute quantization residual value of the first component is not zero, the code stream further includes a result obtained by sequentially encoding the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

[0329] In some embodiments, the determining unit 410 is further configured to:

[0330] For each of the first component, the second component, and the third component, performing inverse quantization processing on the attribute quantization residual value of each component to obtain an attribute residual reconstruction value of each component;

[0331] Obtain the attribute residual reconstruction value of each component;

[0332] Get the attribute prediction value of each component;

[0333] Obtain the cross-component prediction value of each component;

[0334] The sum of the attribute residual reconstruction value of each component, the attribute prediction value of each component, and the cross-component prediction value of each component is determined as the attribute reconstruction value of each component.

[0335] In some embodiments, the cross-component prediction value of the first component is zero; the cross-component prediction value of the second component is the attribute residual reconstruction value of the first component; and the cross-component prediction value of the third component is the sum of the attribute residual reconstruction value of the first component and the attribute residual reconstruction value of the second component.

[0336] In some embodiments, the determining unit 410 is specifically configured to:

[0337] Search N predicted points for the current point within the range of points encoded before the current point;

[0338] Calculate the weight values ​​corresponding to the N predicted points based on the geometric distances between the N predicted points and the current point;

[0339] Based on the weight values ​​corresponding to the N prediction points and the attribute reconstruction values ​​of the N prediction points, the attribute prediction value of each component is obtained.

[0340] It should be noted that the encoder 400 can also be combined with Figure 4 The coding framework shown can replace or combine the units in the encoder 400 with the relevant parts in the coding framework. For example, the determination unit 410 can be used to implement the attribute prediction part in the coding framework.

[0341] It should be understood that the device embodiment and the method embodiment may correspond to each other, and similar descriptions may refer to the method embodiment. To avoid repetition, no further details will be given here. Specifically, the decoder 300 may correspond to the corresponding subject in the method 100 for executing the embodiment of the present application, and the various units in the decoder 300 are respectively for implementing the corresponding processes in the method 100. Similarly, the encoder 400 may correspond to the corresponding subject in the method 200 for executing the embodiment of the present application, and the various units in the encoder 400 are respectively for implementing the corresponding processes in the method 200. For the sake of brevity, no further details will be given here.

[0342] It should also be understood that the various units in the decoder 300 or encoder 400 involved in the embodiment of the present application can be individually or completely combined into one or several other units to form a whole, or one (or more) of the units can be further divided into multiple functionally smaller units to form a whole, which can achieve the same operation without affecting the realization of the technical effects of the embodiment of the present application. The above-mentioned units are divided based on logical functions. In actual applications, the functions of one unit can also be implemented by multiple units, or the functions of multiple units can be implemented by one unit. In other embodiments of the present application, the decoder 300 or encoder 400 may also include other units. In actual applications, these functions can also be implemented with the assistance of other units and can be implemented by multiple units working together. According to another embodiment of the present application, the decoder 300 or encoder 400 involved in the embodiment of the present application can be constructed by running a computer program (including program code) capable of executing the various steps involved in the corresponding method on a general-purpose computing device such as a general-purpose computer including processing elements and storage elements such as a central processing unit (CPU), a random access memory (RAM), and a read-only memory (ROM), to implement the encoding and decoding method based on point cloud attribute prediction of the embodiment of the present application. The computer program can be recorded on, for example, a computer-readable storage medium, and loaded into any electronic device with data processing capabilities through the computer-readable storage medium and run therein to implement the corresponding method of the embodiment of the present application.

[0343] In other words, the units mentioned above can be implemented in the form of hardware, can be implemented by instructions in the form of software, or can be implemented in the form of a combination of hardware and software. Specifically, the steps of the method embodiments in the embodiments of the present application can be completed by the hardware integrated logic circuit and / or software instructions in the processor, and the steps of the method disclosed in the embodiments of the present application can be directly embodied as being executed by a hardware decoding processor, or being executed by a combination of hardware and software in a decoding processor. Optionally, the software can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, a register, etc. The storage medium is located in a memory, and the processor reads the information in the memory and completes the steps in the above method embodiments in combination with its hardware.

[0344] Figure 16 It is a schematic structural diagram of the encoding and decoding device 500 provided in an embodiment of the present application.

[0345] like Figure 16As shown, the codec device 500 includes at least a processor 510, a computer-readable storage medium 520, and a transceiver 530. The processor 510 and the computer-readable storage medium 520 may be connected via a bus or other means. The computer-readable storage medium 520 is used to store a computer program 521, which includes computer instructions. The processor 510 is used to execute the computer instructions stored in the computer-readable storage medium 520. The processor 510 is the computing core and control core of the codec device 500 and is suitable for implementing one or more computer instructions, specifically loading and executing one or more computer instructions to implement the corresponding method flow or corresponding function.

[0346] As an example, the processor 510 may also be referred to as a central processing unit (CPU). The processor 510 may include, but is not limited to, 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, discrete hardware components, and the like.

[0347] As an example, the computer-readable storage medium 520 may be a high-speed RAM memory, or a non-volatile memory (Non-Volatile Memory), such as at least one disk storage; optionally, it may also be at least one computer-readable storage medium located away from the aforementioned processor 510. Specifically, the computer-readable storage medium 520 includes, but is not limited to: volatile memory and / or non-volatile memory. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus random access memory (DR RAM).

[0348] In one implementation, the codec device 500 may be Figure 4 The coding frame shown or Figure 15 The encoder 400 shown; the computer readable storage medium 520 stores a first computer instruction; the processor 510 loads and executes the first computer instruction stored in the computer readable storage medium 520 to implement Figure 13 The corresponding steps in the embodiment of the method shown; in a specific implementation, the first computer instruction in the computer-readable storage medium 520 is loaded by the processor 510 and the corresponding steps are executed. To avoid repetition, they are not described here. In one implementation, the codec device 500 can be Figure 5 The decoding framework shown or Figure 14The decoder 300 shown in the figure; the second computer instructions are stored in the computer readable storage medium 520; the second computer instructions stored in the computer readable storage medium 520 are loaded and executed by the processor 510 to implement Figure 12 The corresponding steps in the method embodiment shown; in the specific implementation, the second computer instructions in the computer readable storage medium 520 are loaded and executed by the processor 510 to implement the corresponding steps, to avoid repetition, which will not be repeated here.

[0349] According to another aspect of the present application, the embodiments of the present application also provide a computer readable storage medium (Memory), which is a memory device in the codec device 500, used to store programs and data. For example, the computer readable storage medium 520. It can be understood that the computer readable storage medium 520 here can include the built-in storage medium in the codec device 500, and of course can also include the expansion storage medium supported by the codec device 500. The computer readable storage medium provides a storage space, which stores the operating system of the codec device 500. And in the storage space, one or more computer instructions suitable for being loaded and executed by the processor 510 are also stored, which can be one or more computer programs 521 (including program codes). These computer instructions are used for the computer to execute the point cloud attribute prediction based coding method provided in the various optional manners described above.

[0350] According to another aspect of the present application, a computer program product or computer program is provided, which includes computer instructions stored in a computer readable storage medium. For example, the computer program 521. At this time, the codec device 500 can be a computer, the processor 510 reads the computer instructions from the computer readable storage medium 520, and the processor 510 executes the computer instructions, so that the computer executes the point cloud attribute prediction based coding method provided in the various optional manners described above.

[0351] In other words, when implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process of the embodiment of the present application is run in whole or in part or the functions of the embodiment of the present application are implemented. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode.

[0352] Those skilled in the art will appreciate that the units and process steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0353] Finally, it should be noted that the above content is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.

Claims

1. A decoding method, characterized in that: include: Decoding the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component of the current point in sequence from the code stream of the current point cloud; wherein the first component is the U component, the V component, the G component, or the B component; Acquire an attribute reconstruction value of the current point based on the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component; The step of sequentially decoding the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component of the current point from the code stream of the current point cloud includes: Decoding the code stream to obtain a first identifier, where a value of the first identifier is used to indicate whether a property quantization residual value of the first component is zero; The code stream is parsed based on the value of the first identifier to obtain the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

2. The method according to claim 1, characterized in that The value of the first identifier is a first numerical value; The parsing of the code stream based on the value of the first identifier to obtain the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component includes: Determining that the attribute quantization residual value of the first component is zero; Based on a second identifier obtained by decoding the code stream, the attribute residual value of the second component and the attribute residual value of the third component are obtained; the value of the second identifier is used to indicate whether the attribute quantization residual value of the second component is zero.

3. The method according to claim 2, characterized in that The acquiring, based on the second identifier obtained by decoding the code stream, the attribute residual value of the second component and the attribute residual value of the third component, includes: If the value of the second identifier is the first value, determining that the attribute quantization residual value of the second component is zero, and obtaining the attribute quantization residual value of the third component from the bitstream; If the value of the second identifier is a second numerical value, the attribute quantization residual value of the second component and the attribute quantization residual value of the third component are sequentially obtained from the code stream.

4. The method according to claim 1, wherein The value of the first identifier is a second numerical value; The parsing of the code stream based on the value of the first identifier to obtain the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component includes: The attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component are sequentially obtained from the code stream.

5. The method according to any one of claims 1 to 4, characterized in that The acquiring the attribute reconstruction value of the current point based on the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component includes: For each of the first component, the second component, and the third component, performing inverse quantization processing on the attribute quantization residual value of each component to obtain an attribute residual reconstruction value of each component; Obtaining a predicted attribute value for each component; Obtaining a cross-component prediction value for each component; The sum of the attribute residual reconstruction value of each component, the attribute prediction value of each component, and the cross-component prediction value of each component is determined as the attribute reconstruction value of each component.

6. The method according to claim 5, characterized in that The cross-component prediction value of the first component is zero; the cross-component prediction value of the second component is the attribute residual reconstruction value of the first component; and the cross-component prediction value of the third component is the sum of the attribute residual reconstruction value of the first component and the attribute residual reconstruction value of the second component.

7. The method according to claim 5, characterized in that The obtaining of the attribute prediction value of each component includes: Searching for N prediction points for the current point within a range consisting of points decoded before the current point; Calculating weight values ​​corresponding to the N predicted points according to geometric distances between the N predicted points and the current point; The attribute prediction value of each component is obtained based on the weight values ​​corresponding to the N prediction points and the attribute reconstruction values ​​of the N prediction points.

8. A coding method, characterized in that include: Determine an attribute quantization residual value of a first component, an attribute quantization residual value of a second component, and an attribute quantization residual value of a third component of a current point to be encoded in the current point cloud; wherein the first component is a U component, a V component, a G component, or a B component; Sequentially encoding the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component to obtain a code stream of the current point cloud; The code stream includes a result obtained by encoding a value of a first identifier, and the value of the first identifier is used to indicate whether the attribute quantization residual value of the first component is zero.

9. The method according to claim 8, characterized in that If the value of the first identifier is a first numerical value, it indicates that the attribute quantization residual value of the first component is zero; if the value of the first identifier is a second numerical value, it indicates that the attribute quantization residual value of the first component is not zero.

10. The method according to claim 8, characterized in that If the attribute quantization residual value of the first component is zero, the code stream further includes a result obtained by encoding the value of the second identifier, where the value of the second identifier is used to indicate whether the attribute quantization residual value of the second component is zero.

11. The method according to claim 10, characterized in that If the value of the second identifier is the first value, it means that the attribute quantization residual value of the second component is zero; if the value of the second identifier is the second value, it means that the attribute quantization residual value of the second component is not zero.

12. The method according to claim 10, characterized in that If the attribute quantization residual value of the first component and the attribute quantization residual value of the second component are both zero, the code stream further includes a result obtained by encoding the attribute quantization residual value of the third component.

13. The method according to claim 10, characterized in that If the attribute quantization residual value of the first component and the attribute quantization residual value of the second component are not both zero, the code stream further includes a result obtained by sequentially encoding the attribute quantization residual value of the second component and the attribute quantization residual value of the third component.

14. The method according to claim 8, characterized in that If the attribute quantization residual value of the first component is not zero, the code stream further includes a result obtained by sequentially encoding the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

15. The method according to any one of claims 8 to 14, characterized in that The method further comprises: For each of the first component, the second component, and the third component, performing inverse quantization processing on the attribute quantization residual value of each component to obtain an attribute residual reconstruction value of each component; Obtaining a predicted attribute value for each component; Obtaining a cross-component prediction value for each component; The sum of the attribute residual reconstruction value of each component, the attribute prediction value of each component, and the cross-component prediction value of each component is determined as the attribute reconstruction value of each component.

16. The method according to claim 15, characterized in that The cross-component prediction value of the first component is zero; the cross-component prediction value of the second component is the attribute residual reconstruction value of the first component; and the cross-component prediction value of the third component is the sum of the attribute residual reconstruction value of the first component and the attribute residual reconstruction value of the second component.

17. The method according to claim 15, characterized in that The obtaining of the attribute prediction value of each component includes: Searching for N prediction points for the current point within a range consisting of points that have been coded before the current point; Calculating weight values ​​corresponding to the N predicted points according to geometric distances between the N predicted points and the current point; The attribute prediction value of each component is obtained based on the weight values ​​corresponding to the N prediction points and the attribute reconstruction values ​​of the N prediction points.

18. A decoder, characterized in that: include: A decoding unit, configured to sequentially decode the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component of the current point from the code stream of the current point cloud; wherein the first component is a U component, a V component, a G component, or a B component; an acquiring unit, configured to acquire an attribute reconstruction value of the current point based on the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component; The decoding unit is specifically configured to: Decoding the code stream to obtain a first identifier, where a value of the first identifier is used to indicate whether a property quantization residual value of the first component is zero; The code stream is parsed based on the value of the first identifier to obtain the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component.

19. An encoder, characterized in that include: a determining unit, configured to determine an attribute quantization residual value of a first component, an attribute quantization residual value of a second component, and an attribute quantization residual value of a third component of a current point to be encoded in a current point cloud; wherein the first component is a U component, a V component, a G component, or a B component; an encoding unit, configured to sequentially encode the attribute quantization residual value of the first component, the attribute quantization residual value of the second component, and the attribute quantization residual value of the third component to obtain a code stream of the current point cloud; The code stream includes a result obtained by encoding a value of a first identifier, and the value of the first identifier is used to indicate whether the attribute quantization residual value of the first component is zero.

20. A decoding device, characterized in that: include: a processor adapted to execute a computer program; A computer-readable storage medium having a computer program stored therein, wherein the computer program, when executed by the processor, implements the decoding method according to any one of claims 1 to 7.

21. A coding device, characterized in that include: a processor adapted to execute a computer program; A computer-readable storage medium having a computer program stored therein, wherein when the computer program is executed by the processor, the encoding method according to any one of claims 8 to 17 is implemented.

22. A computer-readable storage medium, characterized in that Used to store a computer program, wherein the computer program causes a computer to execute the decoding method according to any one of claims 1 to 7.

23. A computer-readable storage medium, characterized in that Used to store a computer program, wherein the computer program causes a computer to execute the encoding method according to any one of claims 8 to 17.

Citation Information

Patent Citations

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

    CN110418135A

  • Method and equipment for attribute entropy coding and entropy decoding of point cloud

    CN112995662A

  • Image decoding method, decoder, and computer storage medium

    CN113055671A