WO2023159428A1 - Encoding method, encoder, and storage medium - Google Patents
Encoding method, encoder, and storage medium Download PDFInfo
- Publication number
- WO2023159428A1 WO2023159428A1 PCT/CN2022/077707 CN2022077707W WO2023159428A1 WO 2023159428 A1 WO2023159428 A1 WO 2023159428A1 CN 2022077707 W CN2022077707 W CN 2022077707W WO 2023159428 A1 WO2023159428 A1 WO 2023159428A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- current point
- point
- attribute
- residual value
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
Definitions
- the embodiments of the present application relate to the technical field of encoding and decoding, and more specifically, relate to an encoding method, an encoder, and a storage medium.
- Point cloud has begun to be popularized in various fields, for example, virtual/augmented reality, robotics, geographic information system, medical field, etc.
- a large number of point clouds on the surface of objects can be accurately obtained, often corresponding to hundreds of thousands of points in one scene.
- Such a large number of points also brings challenges to computer storage and transmission. Therefore, point compression has become a hot issue.
- the encoder needs to compress its position information and attribute information; specifically, the encoder first performs octree encoding on the position information of the point cloud; at the same time, the encoder encodes the position information according to the octree
- the position information of the current point selects the neighbor points used to predict the attribute value of the current point from the encoded points, and predicts the current point with reference to the selected neighbor points to obtain the attribute prediction value of the current point, and then based on the current point
- the predicted value of the attribute of the current point and the original value of the attribute of the current point are calculated to obtain the residual value of the current point, and then the encoder quantizes the residual value of the current point to obtain the quantized residual value, and finally the encoder converts the quantized residual value of the current point
- the value is transmitted to the decoding end in the form of a code stream; the decoding end can obtain the quantized residual value of the current point by receiving and analyzing the code stream, and obtain the residual value of the current point through steps such as inverse
- the encoder quantizes and encodes the residual value of the current point.
- the encoder since the encoder uses the same quantization parameter for all points in the same point cloud sequence for quantization encoding, it will result in low encoding efficiency or low reconstruction quality for some points, thereby reducing the The encoding performance of the encoder.
- Embodiments of the present application provide an encoding method, an encoder, and a storage medium, which can improve the encoding performance of the encoder.
- the present application provides an encoding method, including:
- an encoder including:
- a coding unit configured to code the third quantized residual value to obtain a code stream.
- the present application provides an encoding device, including:
- a processor adapted to implement computer instructions
- a computer-readable storage medium stores computer instructions, and the computer instructions are adapted to be loaded by a processor and execute the encoding method in the above first aspect or its various implementations.
- processors there are one or more processors, and one or more memories.
- the computer-readable storage medium may be integrated with the processor, or the computer-readable storage medium may be provided separately from the processor.
- an embodiment of the present application provides a computer-readable storage medium, the computer-readable storage medium stores computer instructions, and when the computer instructions are read and executed by a processor of a computer device, the computer device executes the above-mentioned first step.
- An encoding method in an aspect or implementations thereof.
- the embodiment of the present application provides a code stream
- the code stream is as the code stream generated by the method described in the first aspect or its various implementations.
- the present application determines the quantized residual value of the final encoded code stream for the current point, the first quantized residual value determined based on at least one neighbor point before the current point to be encoded in the encoding order is considered On this basis, at least one second quantized residual value is also introduced, because when the current point adopts different quantized residual values, it indicates that the quantization scale of the current point is different; therefore, the encoder first uses the first quantized residual value and the The third quantized residual value is determined by at least one second quantized residual value, and then the third quantized residual value is encoded, which can not only prevent the encoder from using the same quantized scale for all points in the current point cloud to perform quantized encoding , it is also beneficial to select an appropriate quantization scale for the points in the current point cloud, which can avoid the low coding efficiency or low reconstruction quality of some points, and improve the coding performance of the encoder.
- Fig. 1 is an example of a point cloud image provided by an embodiment of the present application.
- FIG. 2 is a partially enlarged view of the point cloud image shown in FIG. 1 .
- Fig. 3 is an example of point cloud images with six viewing angles provided by the embodiment of the present application.
- Fig. 4 is a schematic block diagram of a coding framework provided by an embodiment of the present application.
- Fig. 5 is an example of a bounding box provided by an embodiment of the present application.
- Fig. 6 is an example of performing octree division on a bounding box provided by an embodiment of the present application.
- FIGS 7 to 9 show the arrangement order of Morton codes in two-dimensional space.
- Fig. 10 shows the arrangement order of Morton codes in three-dimensional space.
- Fig. 11 is a schematic block diagram of an LOD layer provided by an embodiment of the present application.
- Fig. 12 is a schematic block diagram of a decoding framework provided by an embodiment of the present application.
- Fig. 13 is another schematic block diagram of a coding framework provided by an embodiment of the present application.
- Fig. 14 is another schematic block diagram of a decoding framework provided by an embodiment of the present application.
- Fig. 15 is a schematic flowchart of an encoding method provided by an embodiment of the present application.
- Fig. 16 is a schematic structural diagram of an attribute code stream provided by an embodiment of the present application.
- Fig. 17 is a schematic structural diagram of a payload in an attribute code stream provided by an embodiment of the present application.
- Fig. 18 is another schematic flowchart of the encoding method provided by the embodiment of the present application.
- Fig. 19 is a schematic flowchart of a decoding method provided by an embodiment of the present application.
- Fig. 20 is a schematic flowchart of an encoder provided by an embodiment of the present application.
- Fig. 21 is another schematic flowchart of the encoder provided by the embodiment of the present application.
- a point cloud is a set of discrete point sets randomly distributed in space that express the spatial structure and surface properties of a 3D object or 3D scene.
- Figure 1 and Figure 2 show the 3D point cloud image and local enlarged view respectively, and it can be seen that the point cloud surface is composed of densely distributed points.
- the two-dimensional image has information expression at each pixel point, so there is no need to additionally record its position information; however, the distribution of points in the point cloud in the three-dimensional space is random and irregular, so it is necessary to record the location of each point in the space In order to fully express a point cloud.
- each point in the point cloud has corresponding attribute information, usually an RGB color value, and the color value reflects the color of the object; for the point cloud, the attribute information corresponding to each point is in addition to the color , it can also be a reflectance value, which reflects the surface material of the object.
- Each point in the point cloud can include geometric information and attribute information, wherein the geometric information of each point in the point cloud refers to the Cartesian three-dimensional coordinate data of the point, and the attribute information of each point in the point cloud can include but not limited to At least one of the following: color information, material information, and laser reflection intensity information.
- the color information can be information on any color space.
- the color information may be Red Green Blue (RGB) information.
- the color information may also be brightness and chrominance (YCbCr, YUV) information. Among them, Y represents brightness (Luma), Cb (U) represents a blue chroma component, and Cr (V) represents a red chroma component.
- Each point in the point cloud has the same amount of attribute information.
- each point in the point cloud has two attribute information, color information and laser reflection intensity.
- each point in the point cloud has three attribute information: color information, material information and laser reflection intensity information.
- the point cloud image can have multiple viewing angles, for example, the point cloud image shown in Figure 3 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 It includes the data format, data representation type, total point cloud points, and the content represented by the point cloud.
- Point cloud can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes, and because point cloud is obtained by directly sampling real objects, it can provide a strong sense of reality under the premise of ensuring accuracy, so it is widely used.
- point clouds can be divided into two categories based on application scenarios, namely, machine-perceived point clouds and human-eye-perceived point clouds.
- the application scenarios of machine perception point cloud include but are not limited to: autonomous navigation system, real-time inspection system, geographic information system, visual sorting robot, emergency rescue robot and other point cloud application scenarios.
- the application scenarios of point cloud perceived by the human eye include but are not limited to: digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, 3D immersive interaction and other point cloud application scenarios.
- the point cloud can be divided into dense point cloud and sparse point cloud based on the acquisition method of the point cloud; the point cloud can also be divided into static point cloud and dynamic point cloud based on the acquisition method of the point cloud, more specifically, it can be It is divided into three types of point clouds, namely, the first static point cloud, the second type of dynamic point cloud and the third type of dynamically acquired point cloud.
- the first static point cloud the object is stationary, and the device for obtaining the point cloud is also stationary
- the second type of dynamic point cloud the object is moving, but the device for obtaining the point cloud is stationary
- the equipment for obtaining point cloud is in motion.
- the way of collecting the point cloud includes but not limited to: computer generation, 3D laser scanning, 3D photogrammetry and the like.
- 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, and can obtain millions of point clouds per second;
- 3D photogrammetry can obtain dynamic real-world three-dimensional objects or scenes
- the point cloud of tens of millions of points can be obtained per second.
- the point cloud of the surface of the object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
- the point cloud obtained according to the laser measurement principle may include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point.
- the point cloud obtained according to the principle of photogrammetry may include the three-dimensional coordinate information of the point and the color information of the point.
- the point cloud is obtained by combining the principles of laser measurement and photogrammetry, which may include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point and the color information of the point.
- These technologies reduce the cost and time period of point cloud data acquisition, and improve the accuracy of the data.
- point clouds of biological tissues and organs can be obtained from magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information.
- MRI magnetic resonance imaging
- CT computed tomography
- electromagnetic positioning information These technologies reduce the acquisition cost and time period of point cloud, and improve the accuracy of data.
- the transformation of the point cloud data acquisition method has made it possible to acquire a large amount of point cloud data. With the growth of application requirements, the processing of massive 3D point cloud data encounters the bottleneck of storage space and transmission bandwidth limitations.
- the number of points in each frame of point cloud is 700,000, and each point in each frame of point cloud has coordinate information xyz (float) and color information RGB (uchar)
- the YUV sampling format is 4:2:0 , 1280 ⁇ 720 two-dimensional video with a frame rate of 24fps
- the data volume of 10s is about 1280 ⁇ 720 ⁇ 12bit ⁇ 24frames ⁇ 10s ⁇ 0.33GB
- point cloud compression has become a key issue to promote the development of the point cloud industry.
- Point cloud compression generally uses point cloud geometric information and attribute information to compress separately. Attribute compression of point cloud; at the decoding end, the geometric information of the point cloud is first decoded in the geometry decoder, and then the decoded geometric information is input into the attribute decoder as additional information to assist the attribute compression of the point cloud.
- the entire codec consists of preprocessing/postprocessing, geometric encoding/decoding, and attribute encoding/decoding.
- point clouds can be encoded and decoded by various types of encoding frameworks and decoding frameworks, respectively.
- the codec framework may be the Geometry Point Cloud Compression (G-PCC) codec framework or Video Point Cloud Compression (Video Point Cloud Compression) provided by the Moving Picture Experts Group (MPEG).
- G-PCC Geometry Point Cloud Compression
- V-PCC Video Point Cloud Compression
- AVS-PCC codec framework Point Cloud Compression Reference Platform (PCRM) framework provided by the Audio Video Standard (AVS) task force.
- the G-PCC codec framework can be used to compress the first static point cloud and the third type of dynamically acquired point cloud
- the V-PCC codec framework can be used to compress the second type of dynamic point cloud.
- the G-PCC codec framework is also called point cloud codec TMC13, and the V-PCC codec framework is also called point cloud codec TMC2.
- G-PCC and AVS-PCC are aimed at static sparse point clouds, and their coding frameworks are roughly the same.
- Fig. 4 is a schematic block diagram of a coding framework provided by an embodiment of the present application.
- the encoding framework 100 can acquire the position information and attribute information of the point cloud from the acquisition device.
- the encoding of point cloud includes location encoding and attribute encoding.
- the position encoding process includes: performing preprocessing on the original point cloud such as coordinate transformation, quantization and removing duplicate points, etc.; building an octree and encoding to form a geometric code stream.
- the position encoding process of the encoder can be realized by the following units:
- Coordinate transformation transformation (Tanmsform coordinates) unit 101, quantization and removal of repeated points (Quantize and remove points) unit 102, octree analysis (Analyze octree) unit 103, geometric reconstruction (Reconstruct geometry) unit 104 and first arithmetic coding (Arithmetic encode) unit 105.
- the coordinate transformation unit 101 can be used to transform the world coordinates of points in the point cloud into relative coordinates. For example, subtracting the minimum values of the xyz coordinate axes from the geometric coordinates of the point is equivalent to a DC operation to transform the coordinates of the points in the point cloud from world coordinates to relative coordinates.
- Quantization and removal of duplicate points unit 102 can reduce the number of coordinates by quantization; original different points may be given the same coordinates after quantization, based on this, repeated points can be deleted through de-duplication operations; for example, with the same quantization position and Multiple clouds with different attribute information can be merged into one cloud through attribute transformation.
- the Quantize and Remove Duplicate Points unit 102 is an optional unit module.
- the octree analysis unit 103 may use an octree encoding method to encode the position information of the quantized points.
- the point cloud is regularized in the form of an octree, so that the position of the point can correspond to the position of the octree one by one, by counting the position of the point in the octree, and marking it (flag) Recorded as 1 for geometric encoding.
- the first arithmetic coding unit 105 can perform arithmetic coding on the position information output by the octree analysis unit 103 using an entropy coding method, that is, the position information output by the octree analysis unit 103 is generated using an arithmetic coding method to generate a geometric code stream; the geometric code stream is also Can be called geometry bit stream (geometry bit stream).
- the recursive octree structure is used to express the points in the point cloud as the center of the cube in a regular way.
- the entire point cloud can be placed in a cube bounding box.
- x min min(x 0 ,x 1 ,...,x K-1 );
- y min min(y 0 ,y 1 ,...,y K-1 );
- z min min(z 0 ,z 1 ,...,z K-1 );
- x max max(x 0 ,x 1 ,...,x K-1 );
- y max max(y 0 ,y 1 ,...,y K-1 );
- z max max(z 0 , z 1 , . . . , z K ⁇ 1 ).
- origin (x origin , y origin , z origin ) of the bounding box can be calculated as follows:
- floor() represents the calculation of rounding down or rounding down.
- int() means rounding operation.
- the encoder can calculate the size of the bounding box in the x-axis, y-axis, and z-axis directions based on the calculation formula of the boundary value and the origin as follows:
- the encoder After the encoder obtains the size of the bounding box in the x-axis, y-axis, and z-axis directions, it first divides the bounding box into an octree, and obtains eight sub-blocks each time. Empty blocks (blocks containing points) are divided into octrees again, so recursively divided up to a certain depth, and the non-empty sub-blocks of the final size are called voxels, and each voxel contains one or more points , normalize the geometric positions of these points to the center point of the voxel, and the attribute value of the center point is the average value of the attribute values of all points in the voxel.
- each voxel can be encoded based on the determined encoding order ( voxel), which encodes the point (or "node") represented by each voxel.
- the encoder reconstructs the geometric information, and uses the reconstructed geometric information to encode the attribute information.
- the attribute coding process includes: by given the reconstruction information of the position information of the input point cloud and the real value of the attribute information, select one of the three prediction modes for point cloud prediction, quantify the predicted results, and perform arithmetic coding to form property stream.
- the attribute encoding process of the encoder can be realized by the following units:
- Color space transformation (Transform colors) unit 110 attribute transformation (Transfer attributes) unit 111, region adaptive layered transformation (Region Adaptive Hierarchical Transform, RAHT) unit 112, prediction change (predicting transform) unit 113 and lifting transform (lifting transform) ) unit 114, a quantization (Quantize) unit 115, and a second arithmetic coding unit 116.
- the color space transformation unit 110 can be used to transform the RGB color space of points in the point cloud into YCbCr format or other formats.
- the attribute transformation unit 111 can be used to transform attribute information of points in the point cloud to minimize attribute distortion. For example, in the case of geometric lossy encoding, since the geometric information changes after geometric encoding, the attribute transformation unit 111 is required to reassign attribute values for each point after geometric encoding, so that the reconstruction point cloud and the original point cloud Attribute errors are minimal.
- the attribute information may be color information of dots.
- the attribute transformation unit 111 can be used to obtain the original attribute value of the point. After the original attribute value of the point is transformed by the attribute transformation unit 111, any prediction unit can be selected to predict the point in the point cloud.
- the unit for predicting points in the point cloud may include: at least one of RAHT 112, predicting transform unit 113, and lifting transform unit 114.
- any one of the RAHT 112, the predicting transform unit 113 and the lifting transform unit 114 can be used to predict the attribute information of the points in the point cloud to obtain the predicted attribute values of the points, and then can The residual value of the attribute information of the point is obtained based on the attribute prediction value of the point.
- the residual value of the attribute information of a point may be the original value of the attribute of the point minus the predicted value of the attribute of the point.
- the quantization unit 115 may be used to quantize residual values of attribute information of points.
- the quantization unit 115 may be used to quantize the residual value of the point attribute information output by the predictive transformation unit 113 .
- the residual value of the attribute information of the points output by the predictive transformation unit 113 is quantized using the quantization step size, so as to improve system performance.
- the second arithmetic coding unit 116 may use zero run length coding to perform entropy coding on the residual value of the attribute information of the point, so as to obtain an attribute code stream.
- the attribute code stream may be bit stream information.
- the predictive transformation unit 113 can be used to obtain the original order of the point cloud and divide the point cloud into detail layers (level of detail, LOD) based on the original order of the point cloud. After the predictive transformation unit 113 obtains the LOD of the point cloud, it can The attribute information of the points in the LOD is predicted in sequence, and then the residual value of the point attribute information is calculated, so that the subsequent units can perform subsequent quantization and encoding processing based on the residual value of the point attribute information.
- LOD level of detail
- the original order of the point cloud acquired by the predictive transformation unit 113 may be an arrangement sequence obtained by performing Morton reordering on the current point cloud by the predictive transformation unit 113 .
- the encoder can obtain the original order of the current point cloud by reordering the current point cloud. After the encoder obtains the original order of the current point cloud, it can divide the points in the point cloud according to the original order of the current point cloud. Get the LOD of the current point cloud, and then predict the attribute information of the points in the point cloud based on the LOD.
- FIGS 7 to 9 show the arrangement order of Morton codes in two-dimensional space.
- the encoder can adopt a "z"-shaped Morton sequence in the two-dimensional space formed by 2*2 blocks.
- the encoder can adopt a "z"-shaped Morton arrangement sequence in the two-dimensional space formed by four 2*2 blocks, where each 2*2 block can also be formed in the two-dimensional space
- the Morton arrangement order adopted by the encoder in the two-dimensional space formed by 4*4 blocks can be finally obtained.
- the encoder can adopt a "z"-shaped Morton arrangement sequence in the two-dimensional space formed by four 4*4 blocks, wherein, each two-dimensional space formed by four 2*2 blocks and each In the two-dimensional space formed by 2*2 blocks, a "z"-shaped Morton arrangement order can also be used, and finally the Morton arrangement order adopted by the encoder in the two-dimensional space formed by 8*8 blocks can be obtained.
- Fig. 10 shows the arrangement order of Morton codes in three-dimensional space.
- the Morton arrangement order is not only applicable to two-dimensional space, but also can be extended to three-dimensional space.
- Figure 10 shows 16 points, each "z” inside, each "z”
- the Morton arrangement sequence between "z” and "z” is first coded along the x-axis, then along the y-axis, and finally along the z-axis.
- the generation process of LOD includes: according to the location information of the points in the point cloud, the Euclidean distance between the points is obtained; according to the Euclidean distance, the points are divided into different LOD layers.
- the Euclidean distances in different ranges can be divided into different LOD layers. For example, a point can be randomly selected as the first LOD layer. Then calculate the Euclidean distance between the remaining points and this point, and classify the points whose Euclidean distance meets the first threshold requirement as the second LOD layer.
- the centroid of the point in the second LOD layer calculate the Euclidean distance between points other than the first and second LOD layers and the centroid, and classify the points whose Euclidean distance meets the second threshold as the third LOD layer. By analogy, all points are classified into the LOD layer. By adjusting the threshold of the Euclidean distance, the number of points of each layer of LOD can be increased. It should be understood that other manners may also be used for dividing the LOD layer, which is not limited in this application. It should be noted that the point cloud can be directly divided into one or more LOD layers, or the point cloud can be divided into multiple point cloud slices first, and then each point cloud slice can be divided into one or more LOD layers. LOD layers.
- the point cloud can be divided into multiple point cloud cutouts, and the number of points in each point cloud cutout can be between 550,000 and 1.1 million.
- Each point cloud slice can be regarded as a separate point cloud.
- Each point cloud slice can be divided into multiple LOD layers, and each LOD layer includes multiple points.
- the LOD layer can be divided according to the Euclidean distance between points.
- Fig. 11 is a schematic block diagram of an LOD layer provided by an embodiment of the present application.
- the point cloud includes multiple points arranged in original order, namely P0, P1, P2, P3, P4, P5, P6, P7, P8, and P9, and the assumption can be based on point and point
- the Euclidean distance between can divide the point cloud into three LOD layers, namely LOD0, LOD1 and LOD2.
- LOD0 may include P0, P5, P4, and P2
- LOD2 may include P1, P6, and P3,
- LOD3 may include P9, P8, and P7.
- LOD0, LOD1 and LOD2 can be used to form the LOD-based order (LOD-based order) of the point cloud, namely P0, P5, P4, P2, P1, P6, P3, P9, P8 and P7.
- the sequence based on LOD can be used as the encoding sequence of the point cloud.
- the encoder predicts the current point in the point cloud, based on the neighbor point search results on the LOD where the current point is located, multiple predictor variable candidates are created, that is, the value of the index of the prediction mode (predMode) can be 0 ⁇ 3.
- the encoder when using the prediction method to encode the attribute information of the current point, the encoder first finds three neighbor points before the current point based on the neighbor point search results on the LOD where the current point is located, and the prediction mode with index 0 refers to Based on the distance between the 3 neighbor points and the current point, the weighted average of the reconstructed attribute values of the 3 neighbor points is determined as the attribute prediction value of the current point; the prediction mode with an index of 1 refers to the nearest neighbor point among the 3 neighbor points The attribute reconstruction value of the current point is used as the attribute prediction value of the current point; the prediction mode with index 2 refers to the attribute reconstruction value of the next nearest neighbor point as the attribute prediction value of the current point; The attribute reconstruction value of the neighbor point other than the nearest neighbor point and the second nearest neighbor point is used as the attribute prediction value of the current point; after obtaining the candidates of the attribute prediction value of the current point based on the above-mentioned various prediction modes, the encoder can use the rate distortion
- the optimization Rate distortion optimization, RDO
- the code stream does not need to encode the index of the prediction mode; if the index of the prediction mode selected by RDO is 1, 2 or 3, the code stream needs Encoding the index of the selected prediction mode means that the index of the selected prediction mode needs to be encoded into the attribute code stream.
- Predictor index Predicted value 0 average 1 P4(1 st nearest point) 2 P5( 2nd nearest point) 3 P0(3 rd nearest point)
- the prediction mode with an index of 0 refers to reconstructing the attribute values of the neighbor points P0, P5 and P4 based on the distances of the neighbor points P0, P5 and P4
- the weighted average value of is determined as the attribute prediction value of the current point P2;
- the prediction mode with index 1 refers to the attribute reconstruction value of the nearest neighbor point P4 as the attribute prediction value of the current point P2;
- the prediction mode with index 2 refers to the next neighbor
- the attribute reconstruction value of point P5 is used as the attribute prediction value of the current point P2;
- the prediction mode with index 3 means that the attribute reconstruction value of the next neighbor point P0 is used as the attribute prediction value of the current point P2.
- the RDO technology is described as an example below.
- the encoder first calculates the maximum difference maxDiff of the attributes of at least one neighbor point of the current point, and compares maxDiff with the set threshold. If it is less than the set threshold, the prediction mode of the weighted average of the attribute values of the neighbor points is used; otherwise, the The point uses the RDO technique to select the optimal forecasting mode.
- the encoder can calculate the corresponding rate-distortion cost for each prediction mode of the current point, and then select the prediction mode with the smallest rate-distortion cost, that is, the optimal prediction mode as the attribute prediction mode of the current point.
- the rate-distortion cost of the prediction mode whose index is 1, 2 or 3 can be calculated by the following formula:
- J indx_i D indx_i + ⁇ R indx_i ;
- Jindx_i represents the rate-distortion cost when the current point adopts the prediction mode with index i
- ⁇ is determined according to the quantization parameter of the current point
- R indx_i represents the number of bits required in the code stream for the quantized residual value obtained when the current point adopts the prediction mode with index i.
- the encoder can determine the attribute prediction value attrPred of the current point based on the determined prediction mode, and then use the original attribute value attrValue of the current point to subtract the attribute prediction value attrPred of the current point And quantize the result to obtain the quantized residual value attrResidualQuant of the current point.
- the encoder can determine the quantization residual value of the current point by the following formula:
- AttrResidualQuant (attrValue-attrPred)/Qstep
- AttrResidualQuant indicates the quantization residual value of the current point
- attrPred indicates the attribute prediction value of the current point
- attrValue indicates the original value of the attribute of the current point
- Qstep indicates the quantization step size.
- Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
- the attribute reconstruction value of the current point can be used as a neighbor candidate of the subsequent point, and the attribute information of the subsequent point is predicted by using the reconstruction value of the current point.
- the encoder may reconstruct a value based on the property of the current point determined by the first quantization residual value through the following formula:
- Recon represents the attribute reconstruction value of the current point determined based on the quantization residual value of the current point
- attrResidualQuant represents the quantization residual value of the current point
- Qstep represents the quantization step size
- attrPred represents the attribute prediction value of the current point.
- Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
- the attribute predicted value (predicted value) of the current point may also be referred to as the predicted value of the attribute information or the color predicted value (predictedColor).
- the original attribute value of the current point may also be referred to as the real value or the original color value of the attribute information of the current point.
- the residual value of the current point may also be referred to as the difference between the original value of the attribute of the current point and the predicted value of the attribute of the current point, or may also be referred to as the color residual value (residualColor) of the current point.
- the reconstructed value of the attribute of the current point (reconstructed value) may also be referred to as the reconstructed value of the attribute of the current point or the reconstructed color value (reconstructedColor).
- Fig. 12 is a schematic block diagram of a decoding framework 200 provided by an embodiment of the present application.
- the decoding framework 200 can obtain the code stream of the point cloud from the encoding device, and obtain the position information and attribute information of the points in the point cloud by parsing the code.
- the decoding of point cloud includes position decoding and attribute decoding.
- the process of position decoding includes: performing arithmetic decoding on the geometric code stream; merging after constructing the octree, and reconstructing the position information of the point to obtain the reconstruction information of the position information of the point; Transform to get the position information of the point.
- the location information of a point may also be referred to as geometric information of a point.
- the attribute decoding process includes: obtaining the residual value of the attribute information of the point cloud by parsing the attribute code stream; dequantizing the residual value of the attribute information of the point to obtain the residual value of the attribute information of the dequantized point value; based on the reconstruction information of the position information of the point obtained in the position decoding process, one of the three prediction modes is selected for point cloud prediction, and the attribute reconstruction value of the point is obtained; the color space inverse transformation is performed on the attribute reconstruction value of the point to obtain Get the decoded point cloud.
- position decoding can be realized by the following units: first arithmetic decoding unit 201, octree analysis (synthesize octree) unit 202, geometric reconstruction (Reconstruct geometry) unit 203 and coordinate inverse change (inverse transform coordinates) unit 204.
- Attribute encoding can be realized by the following units: second arithmetic decoding unit 210, inverse quantize unit 211, RAHT unit 212, predicting transform unit 213, lifting transform unit 214, and color space inverse transform (inverse transform colors) Unit 215.
- each unit in the decoding framework 200 may refer to the functions of corresponding units in the encoding framework 100 .
- the decoding framework 200 can divide the point cloud into multiple LODs according to the Euclidean distance between points in the point cloud; then, sequentially decode the attribute information of the points in the LOD; Quantity (zero_cnt), to decode the residual with a zero-based quantity; then, the decoding framework 200 can perform dequantization based on the decoded residual value, and add the dequantized residual value to the predicted value of the current point Get the reconstruction value of the point cloud until all the point clouds are decoded.
- the current point will be used as the nearest neighbor of the point in the subsequent LOD, and the attribute information of the subsequent point will be predicted by using the reconstruction value of the current point.
- Fig. 13 is a schematic block diagram of an encoding framework provided by an embodiment of the present application.
- the geometric information of point cloud and the attribute information corresponding to each point are encoded separately.
- the original geometric information is preprocessed, that is, the coordinate transformation of the geometric information is carried out through coordinate translation, so that all point clouds are contained in a bounding box.
- the geometric information is converted from floating-point numbers to integers through coordinate quantization, which is convenient for subsequent regularization processing. Due to quantization and rounding, the geometric information of some points is the same. At this time, it is necessary to decide whether to remove duplicate points. Quantization and removal of duplicate points belong to Preprocessing process; then, geometrically encode the regularized geometric information, that is, divide the bounding box in the order of breadth-first traversal (such as octree/quadtree/binary tree), and place the code for each node to encode.
- the bounding box is divided sequentially to obtain sub-cubes, and the sub-cubes that are not empty (including points in the point cloud) continue to be divided until the leaf nodes obtained by the division are
- the unit cube of 1x1x1 is divided, the number of points contained in the leaf nodes is encoded, and finally the encoding of the geometric octree is completed to generate a binary code stream.
- the decoding end first obtains the placeholder code of each node through continuous parsing in the order of breadth-first traversal, and divides the nodes in turn until the 1x1x1 unit cube is divided. Then analyze to get the number of points contained in each leaf node, and finally recover or reconstruct the geometric information of the point cloud.
- the encoder After the geometric encoding is completed, the encoder reconstructs the geometric information, and uses the reconstructed geometric information to encode the attribute information.
- the attribute encoding mainly encodes color information and/or reflectance information.
- the encoder judges whether to perform color space conversion. If the processed attribute information is color information, the original color 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 geometry
- lossy encoding since the geometric information changes after geometric encoding, it is necessary to reassign attribute values for each point after geometric encoding, so that the attribute error between the reconstructed point cloud and the original point cloud is minimized.
- attribute Interpolation This process is called attribute Interpolation or attribute recoloring; then, attribute encoding is performed on the preprocessed attribute information, and attribute information encoding is divided into attribute prediction and attribute transformation.
- the encoder can obtain the attribute prediction value of the current point through prediction, and after obtaining the attribute prediction value of the current point, it can obtain the current point’s attribute prediction value based on the current point’s attribute prediction value.
- the residual value for example, the residual value is the difference between the original value of the attribute at the current point and the predicted value of the attribute.
- the encoder For attribute transformation in attribute information coding, the encoder first performs wavelet transform on the original attribute value of the current point to obtain the transformation coefficient, and then quantizes the obtained transformation coefficient to obtain the quantized transformation coefficient; further, the encoder performs inverse quantization , Inverse wavelet transform to obtain the attribute reconstruction value of the current point; then the encoder calculates the difference between the original value of the attribute of the current point and the reconstruction value of the attribute of the current point to obtain the residual value of the current point. After the encoder obtains the residual value of the current point, it can quantize the residual value to obtain the quantized residual value of the current point, and input the quantized residual value into the attribute entropy encoder to form the attribute code stream.
- the encoder can reorder the current point cloud and perform attribute prediction.
- the reordering methods include Morton reordering and Hilbert reordering.
- the encoder can obtain the encoding order of the current point cloud by reordering the current point cloud. After the encoder obtains the encoding order of the current point cloud, it can predict the attribute information of the points in the point cloud according to the encoding order of the current point cloud.
- the attribute prediction of the current point in the current point cloud if the geometric information of the current point is the same as that of the encoded point before the encoding sequence, it is a duplicate point, and the attribute reconstruction value of the duplicate point is used as the attribute prediction value of the current point.
- the encoder can select the first m points as the neighbor candidate points of the current point according to the encoding order, and then calculate The Manhattan distance between m points and the geometric information of the current point, and determine the nearest n points as the neighbor points of the current point, and then the encoder can use the reciprocal of the distance as the weight to calculate the weighted average of the attributes of the n neighbors, As the predicted value of the attribute at the current point.
- the encoder can obtain the attribute prediction value of the current point in the following ways:
- AttrPred (1/W 1 ⁇ ref 1 +1/W 2 ⁇ ref 2 +1/W 3 ⁇ ref 3 )/(1/W 1 +1/W 2 +1/W 3 ).
- W 1 , W 2 , and W 3 represent the geometric distances between neighbor point 1, neighbor point 2, neighbor point 3 and the current point, respectively, and ref 1 , ref 2 , and ref 3 represent neighbor point 1, neighbor point 2, and neighbor point respectively.
- the encoder can determine the quantization residual value of the current point through the following formula:
- AttrResidualQuant (attrValue-attrPred)/Qstep
- AttrResidualQuant indicates the quantization residual value of the current point
- attrPred indicates the attribute prediction value of the current point
- attrValue indicates the original value of the attribute of the current point
- Qstep indicates the quantization step size.
- Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
- the attribute reconstruction value of the current point can be used as a neighbor candidate of the subsequent point, and the attribute information of the subsequent point is predicted by using the reconstruction value of the current point.
- the encoder may reconstruct a value based on the property of the current point determined by the first quantization residual value through the following formula:
- Recon represents the attribute reconstruction value of the current point determined based on the quantization residual value of the current point
- attrResidualQuant represents the quantization residual value of the current point
- Qstep represents the quantization step size
- attrPred represents the attribute prediction value of the current point.
- Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
- the attribute predicted value (predicted value) of the current point may also be referred to as the predicted value of the attribute information or the color predicted value (predictedColor).
- the original attribute value of the current point may also be referred to as the real value or the original color value of the attribute information of the current point.
- the residual value of the current point may also be referred to as the difference between the original value of the attribute of the current point and the predicted value of the attribute of the current point, or may also be referred to as the color residual value (residualColor) of the current point.
- the reconstructed value of the attribute of the current point (reconstructed value) may also be referred to as the reconstructed value of the attribute of the current point or the reconstructed color value (reconstructedColor).
- Fig. 14 is a schematic block diagram of a decoding framework provided by an embodiment of the present application.
- the geometry and attributes are also decoded separately.
- the decoder first performs entropy decoding on the geometry code stream to obtain the geometric information of each point, then constructs the octree structure of the point cloud in the same way as the geometry code, and combines the decoded geometry code stream to obtain The geometric information expressed by the tree structure, on the one hand, coordinate inverse quantization and inverse translation of the geometric information expressed by the octree structure, to obtain the decoded geometric information, on the other hand, it is input into the attribute decoder as additional information.
- the Morton order is constructed in the same way as the encoding side, and the attribute code stream is entropy decoded to obtain the quantized residual information; then inverse quantization is performed to obtain the point cloud residual; similarly, according to the In the same manner as attribute encoding, the attribute prediction value of the current point to be decoded is obtained, 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 is obtained through inverse color space transformation information.
- the encoder needs to compress its position information and attribute information; specifically, the encoder first performs Octree encoding; at the same time, the encoder selects the neighbor points used to predict the attribute value of the current point from the encoded points according to the position information of the current point encoded by the octree, and refers to the selected neighbor points for the current point Point prediction to obtain the predicted attribute value of the current point, and then calculate the residual value of the current point based on the predicted attribute value of the current point and the original value of the attribute of the current point, and then the encoder quantizes the residual value of the current point and other processes To obtain the quantized residual value, the final encoder transmits the quantized residual value of the current point to the decoder in the form of a code stream; the decoder can obtain the quantized residual value of the current point by receiving and analyzing the code stream, and the quantized residual value The residual value of the current point is obtained
- the encoder quantizes and encodes the residual value of the current point.
- the encoder since the encoder uses the same quantization parameter for all points in the same point cloud sequence for quantization encoding, it will result in low encoding efficiency or low reconstruction quality for some points, thereby reducing the The encoding performance of the encoder.
- the present application provides an encoding method, an encoder and a storage medium, which can improve the encoding performance of the encoder.
- FIG. 15 is a schematic flowchart of an encoding-based method 300 provided by an embodiment of the present application.
- the method 300 can be executed by an encoder or an encoding framework, such as the encoding framework shown in FIG. 4 .
- the encoding method 300 may include:
- S320 Determine a first quantized residual value of the current point based on at least one neighbor point before the current point to be encoded in the encoding order;
- the encoder may calculate the first quantized residual value and the at least Selecting a quantized residual value from one quantized residual value as the third quantized residual value, and encoding the third quantized residual value to obtain an attribute code stream.
- the third quantized residual value may be the first quantized residual value, or one of the at least one second quantized residual value, and this application does not make any Specific limits.
- the present application when determining the quantized residual value of the final coded code stream for the current point, the present application considers the first quantized residual value determined based on at least one neighbor point before the current point to be coded in the coding order On the basis of , at least one second quantized residual value is also introduced, because when the current point adopts different quantized residual values, it means that the quantization scale of the current point is different; therefore, the encoder first uses the first quantized residual value and The at least one second quantization residual value selects a third quantization residual value, and then encodes the third quantization residual value, which not only prevents the encoder from using the same quantization scale for all points in the current point cloud for quantization Encoding is also conducive to selecting an appropriate quantization scale for the points in the current point cloud, thereby avoiding low encoding efficiency or low reconstruction quality of some points, and improving the encoding performance of the encoder.
- the attribute code stream obtained by encoding the third quantized residual value by the encoder will be described below.
- Fig. 16 is a schematic structural diagram of an attribute code stream provided by an embodiment of the present application.
- the point cloud can be divided into multiple point cloud slices (slices), which is equivalent to the encoder performing Before encoding, the large-scale point cloud is converted into many small-scale point clouds, and the point cloud slices are serially encoded, that is, the encoder encodes all the points in the first point cloud slice The second point cloud slice, and so on, until all point cloud slices are encoded.
- the encoder can obtain the attribute code stream by encoding all point cloud segments included in the current point cloud, and the attribute code stream can include attribute parameter set (Attribute parameter set, APS) and attribute header (Attribute header, ABH) information and Payload (Payload), APS contains the basic information and configuration files of the current point cloud, such as the number of layers of the level of detail (LOD), and the ABH information contains the division parameters of the point cloud slices.
- Each coded point cloud slice The encoder first encodes the ABH information of the point cloud slice, and then encodes the load of the point cloud slice, where the load of the point cloud slice encodes the quantized residual value of the point (that is, the third quantized residual value of the current point) get the information.
- Fig. 17 is a schematic structural diagram of a payload in an attribute code stream provided by an embodiment of the present application.
- the encoder can use a run-length coding scheme to encode the quantized residual value of the point, that is, the run length (run Length) parameter indicates the number of continuously distributed quantized residual values of the current point cloud that are zero , when a non-zero quantized residual value is encountered, the length of the run will be encoded first, and then the quantized residual value (Res) will be encoded, and finally the attribute code stream of the current point cloud will be obtained.
- the run length (run Length) parameter indicates the number of continuously distributed quantized residual values of the current point cloud that are zero
- the prediction mode PredMode used by the current point may be encoded.
- the maximum attribute difference maxDiff of at least one neighbor point of the current point is greater than or equal to the set
- the encoder needs to use the rate-distortion algorithm to select the prediction mode PredMode of the current point (also is the prediction mode of index 1 to 3 in Table 1), at this time the encoder can also encode the prediction mode used at the current point, that is, the encoder can encode the The prediction mode to use for the current point to encode.
- the encoder uses the prediction mode with index 0 to predict the attribute information of the current point. At this time, the encoder does not need to use the current point The predicted mode is written into the code stream.
- the S330 may include:
- the at least one second quantized residual value is determined.
- the first quantized residual value is directly proportional to the at least one second quantized residual value.
- each second quantization residual value of the at least one second quantization residual is smaller than the first quantization residual value.
- part of the at least one second quantized residual value is smaller than the first quantized residual value, and another part of the at least one second quantized residual value is second quantized The residual value is greater than the first quantized residual value.
- the present application does not limit the specific implementation manner of determining the at least one second quantization residual value based on the first quantization residual value.
- the at least one second quantized residual value may be determined based on the first quantized residual value based on a certain functional relationship or mapping relationship.
- the S330 may include:
- An integer smaller than the first quantized residual value is determined as the at least one second quantized residual value.
- the value of the first quantized residual value is N
- the number of the at least one second quantized residual value is N-1
- the value of the at least one second quantized residual value is The values are: 0,...,N-1.
- N is a positive integer.
- the S330 may include:
- a default residual value is determined as the at least one second quantized residual value.
- the default residual value may also be referred to as a default residual value.
- the default residual value may be stipulated by an agreement.
- the protocol may be various coding standards or decoding standard protocols.
- the S340 may include:
- a quantized residual value having the smallest rate-distortion cost among the rate-distortion cost of the first quantized residual value and the rate-distortion cost of the second quantized residual value is determined as the third quantized residual value.
- the encoder calculates the rate-distortion cost of the first quantization residual value and the rate-distortion cost of each second quantization residual value, and combines the first quantization residual value and the at least one second quantization residual value A quantized residual value with the smallest rate-distortion cost among the quantized residual values is determined as the third quantized residual value.
- the rate-distortion cost of the first quantization residual value is smaller than the rate-distortion cost of each second quantization residual value in the at least one second quantization residual value
- the second quantized residual value with the smallest rate-distortion cost in the at least one second quantized residual value is smaller than the first quantized residual value
- the rate-distortion cost is minimized
- the second quantized residual value of is determined as the first quantized residual value.
- the rate-distortion cost of the first quantized residual value is calculated in the same manner as the rate-distortion cost of the second quantized residual value.
- the calculation method of the rate-distortion cost of the first quantization residual value and the calculation mode of the rate-distortion cost of the second quantization residual value may be different, and this application does not make any Specific limits.
- the rate-distortion cost of the first quantization residual value or the second quantization residual value is calculated according to the following formula:
- J 1 D 1 + ⁇ R 1 ;
- J 1 represents the rate-distortion cost of the first quantized residual value
- D 1 represents the original attribute value of the current point and the reconstructed attribute value of the current point determined based on the first quantized residual value
- the error between , ⁇ is determined according to the quantization parameter of the current point
- R 1 represents the number of bits required by the first quantization residual value in the code stream
- J 1 represents the second quantization residual value
- D 1 represents the error between the original attribute value of the current point and the attribute reconstruction value of the current point determined based on the second quantized residual value
- ⁇ is based on the current point
- the quantization parameter is determined, and R 1 represents the number of bits required by the second quantization residual value in the code stream.
- D can be obtained by the following formula:
- AttrValue represents the original value of the attribute of the current point
- Recon1 represents the reconstructed value of the attribute of the current point determined based on the first quantized residual value.
- ⁇ may be a parameter obtained through a large number of tests.
- the test range of ⁇ is about 0.0-4.0, that is to say, the value range of ⁇ may be 0.0-4.0.
- the test range of ⁇ may also be other numerical ranges, which is not specifically limited in this application.
- ⁇ may be a parameter obtained by testing when the quantization step size or quantization parameter of the current point is fixed, for example, the quantization step size of the current point is 0.1.
- different QPs can correspond to different values of ⁇ .
- point cloud standard test environment C1 (test conditions with near-destructive geometric properties and non-destructive properties) corresponds to 6 QPs (48, 40, 32, 24, 16, 8), At this time, each of the six QPs may correspond to a value of ⁇ .
- point cloud standard test environment CY (test conditions with geometric lossy properties and near lossless properties) corresponds to 5 QPs (10, 16, 22, 28, 34). At this time, each QP in the 5 QPs can correspond to a Value of ⁇ .
- the value of the above QP is only an example of the present application, and should not be construed as a limitation to the present application.
- D when calculating the rate-distortion cost of the first quantized residual value, D is designed to represent the original value of the attribute at the current point and the value determined based on the first quantized residual value.
- the number of bits required by the quantization residual value in the code stream so that J can take into account the code rate at the current point, that is, make J can take into account the quantization scale corresponding to the first quantization residual value Coding efficiency, that is to say, through the design of D and R, this application can make the rate-distortion cost of the first quantization residual value take into account the reconstruction at the quantization scale corresponding to the first quantization residual value Quality and coding efficiency, thus ensuring coding performance.
- the second quantized residual value can also make the rate-distortion cost of the first quantized residual value and the rate-distortion cost of the second quantized residual value take into account the current point
- the reconstruction quality and coding efficiency of the current point make the final quantized residual value selected at the current point the third quantized residual value with the best quantization scale, which avoids the low coding efficiency or low reconstruction quality of the current point, and can improve the coding Encoding performance of the device.
- the attribute reconstruction value of the current point can be used as a neighbor candidate of the subsequent point, and the attribute information of the subsequent point is predicted by using the reconstruction value of the current point.
- the encoder may use the following formula to reconstruct the attribute value of the current point determined based on the first quantized residual value:
- Recon1 attrResidualQuant1 ⁇ Qstep+attrPred;
- Recon1 represents the attribute reconstruction value of the current point determined based on the first quantized residual value
- attrResidualQuant1 represents the first quantized residual value
- Qstep represents the quantization step size
- attrPred represents the predicted attribute value of the current point.
- Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
- ⁇ is determined according to the quantization parameter of the current point and at least one of the following:
- the sequence type of the current point cloud and the current component of the current point is the sequence type of the current point cloud and the current component of the current point.
- ⁇ can be a parameter obtained through a large number of tests, for example, ⁇ can be a parameter obtained by testing under the sequence type of the current point cloud; in other words, point clouds of different sequence types can be used, through testing or The training method obtains its corresponding value of ⁇ .
- ⁇ may be a parameter obtained through a large number of tests, for example, ⁇ may be a parameter obtained by testing under the current component of the current point.
- the current component may be a component to be encoded at the current point.
- the value of ⁇ corresponding to the V component, the U component, and the Y component may be the same or different.
- the value of ⁇ corresponding to the R component, the G component, and the B component may be the same or different.
- the encoding scheme provided in this application may only be applicable to some components of the current point, or may be applicable to all components of the current point, which is not specifically limited in this application.
- the S320 may include:
- the encoder first determines the prediction mode adopted by the current point, and then predicts the attribute value of the current point based on the prediction mode adopted by the current point to obtain the predicted value of the attribute of the current point, and based on the predicted value of the attribute of the current point and the attribute Original value, get the first quantized residual value of the current point.
- the attribute difference of the at least one neighbor point is determined based on the difference in each component of the at least one neighbor point; if the attribute difference of the at least one neighbor point is smaller than a first threshold, the first The prediction mode is determined as the prediction mode adopted by the current point; the first prediction mode refers to a prediction mode for predicting the attribute value of the current point based on the weighted average value of the at least one neighbor point.
- the encoder when predicting the current point in the point cloud, the encoder creates multiple prediction mode candidates based on the search results of neighbor points on the LOD where the current point is located. For example, when using the prediction method to encode the attribute information of the current point, the encoder first finds 3 neighbor points before the current point based on the neighbor point search results on the LOD where the current point is located, and creates 4 prediction mode candidates, That is, the prediction mode (predMode) whose index value is 0 to 3.
- the prediction mode with an index of 0 refers to determining the weighted average of the reconstructed attribute values of the three neighbor points as the attribute prediction value of the current point based on the distance between the three neighbor points and the current point;
- the prediction mode with an index of 1 refers to The attribute reconstruction value of the nearest neighbor point among the three neighbor points is used as the attribute prediction value of the current point;
- the prediction mode with index 2 refers to the attribute reconstruction value of the next nearest neighbor point as the attribute prediction value of the current point;
- the prediction mode with index 3 The mode refers to the attribute reconstruction value of the neighbor points except the nearest neighbor point and the next nearest neighbor point among the three neighbor points as the attribute prediction value of the current point.
- the encoder After the encoder obtains each prediction mode, it can obtain the candidate of the attribute prediction value of the current point based on various prediction modes, and use rate distortion optimization (Rate distortion optimization, RDO) technology to select the best attribute prediction value, and then the selected Arithmetic coding of attribute predictions. For example, when the encoder determines the prediction mode used by the current point, it can first calculate the maximum difference maxDiff of its attributes for at least one neighbor point of the current point, and then compare maxDiff with the set threshold, if it is less than the set threshold (ie The first threshold) uses the prediction mode whose index is 0 (that is, the first prediction mode).
- RDO rate distortion optimization
- the attribute difference of the at least one neighbor point is determined by taking the maximum difference among the differences of the at least one neighbor point on each component.
- the method 300 may also include:
- the at least A second prediction mode has a one-to-one correspondence with the at least one neighbor point, and the second prediction mode refers to using the attribute reconstruction value of the neighbor point corresponding to the second prediction mode among the at least one neighbor point as the current The prediction mode of the predicted value of the attribute of the point;
- the encoder first calculates the maximum difference maxDiff of its attributes for at least one neighbor point of the current point, compares maxDiff with the set threshold, and if it is less than the set threshold, uses the prediction mode of the weighted average of the attribute values of the neighbor points ; Otherwise, use the RDO technique to select the optimal prediction mode for the current point.
- the encoder can calculate the corresponding rate-distortion cost for each prediction mode of the current point, and then select the prediction mode with the smallest rate-distortion cost, that is, the optimal prediction mode as the attribute prediction mode of the current point.
- the method 300 may also include:
- the rate-distortion cost of the prediction mode whose index is 1, 2 or 3 can be calculated by the following formula:
- J indx_i D indx_i + ⁇ R indx_i ;
- Jindx_i represents the rate-distortion cost when the current point adopts the prediction mode with index i
- ⁇ is determined according to the quantization parameter of the current point
- R indx_i represents the number of bits required in the code stream for the quantized residual value obtained when the current point adopts the prediction mode with index i.
- the S330 may include:
- the quantization step used by the current point is determined according to the quantization parameter of the current point.
- the encoding end may first use the prediction mode adopted by the at least one neighbor point on the first component, determine the attribute prediction value of the current point on the first component, and then calculate the current point on the first component.
- the difference between the original value of the attribute on the first component and the predicted value of the attribute of the current point on the first component, and finally the original value of the attribute on the first component of the current point and the predicted value of the attribute of the current point on the first component The ratio of the difference between the attribute prediction values of the current point on the first component to the quantization step size adopted by the current point is determined as the first quantization residual value.
- the first component may be a V component, a U component or a Y component, or may be an R component, a G component or a B component.
- the quantization step size adopted by the current point may be the quantization step size adopted by the current point cloud, that is, all points in the current point cloud adopt the same quantization step size.
- the encoder determines the prediction mode used by the current point, it can determine the attribute prediction value attrPred of the current point based on the determined prediction mode, and then use the original attribute value attrValue of the current point to subtract the attribute prediction value attrPred of the current point And the result is quantized to obtain the first quantized residual value attrResidualQuant1 of the current point.
- the first quantized residual value may be determined by the following formula:
- AttrResidualQuant1 (attrValue-attrPred)/Qstep;
- AttrResidualQuant represents the first quantization residual value
- attrPred represents the attribute prediction value of the current point
- attrValue represents the original value of the attribute of the current point
- Qstep represents the quantization step size.
- Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
- the encoding order comprises a layer of detail LOD order.
- the encoder can obtain the original order of the current point cloud by reordering the current point cloud. After the encoder obtains the original order of the current point cloud, it can divide the point cloud by LOD according to the original order of the current point cloud. Then, the attribute information of the points in the point cloud is predicted based on the LOD.
- Table 2 is in the case of lossless geometry (lossless geometry) compression and near-loss attributes (near-loss attributes) compression and the value of ⁇ is 1.2, the BD of each component of each point cloud sequence of Cat1A type -rate; where Cat1-A represents the point cloud of the point including the color information of the point, and the end-to-end representative rate distortion (End-to-End Bit distortion, End-to-End BD-rate) is a measure of algorithm performance or encoding performance
- the indicator of the coding algorithm provided by this application is compared with the original coding algorithm in terms of code rate and PSNR. The overall negative value indicates that the performance is better.
- Hausdorff BD-rate is also a unique evaluation under the condition of nearly lossless properties.
- L, Cb and Cr represent the performance of the three components of brightness and chromaticity of the point cloud color.
- the End-to-End BD-rate of sequence 2 has performance improvement in each component.
- the Hausdorff BD-rate of 1 has a performance improvement in each component, especially the Cb component can be improved by 46.5%. All have improved performance, that is, the solution provided by the present application can improve encoding performance.
- the S120 may include:
- the quantization step used by the current point is determined according to the quantization parameter of the current point.
- the encoding end may first determine the weighted average of the at least one neighbor point on the first component as the attribute prediction value of the current point on the first component, and then calculate the current point on the first component.
- the difference between the original value of the attribute on the first component and the predicted value of the attribute of the current point on the first component, and finally the original value of the attribute on the first component of the current point and The ratio of the difference between the attribute prediction values of the current point on the first component to the quantization step size adopted by the current point is determined as the first quantization residual value.
- the first component may be a V component, a U component or a Y component, or may be an R component, a G component or a B component.
- the quantization step size adopted by the current point may be the quantization step size adopted by the current point cloud, that is, all points in the current point cloud adopt the same quantization step size.
- the attribute prediction of the current point in the current point cloud if the geometric information of the current point is the same as that of the encoded point before the encoding sequence, it is a duplicate point, and the attribute reconstruction value of the duplicate point is used as the attribute prediction value of the current point.
- the encoder can select the first m points as the neighbor candidate points of the current point according to the encoding order, and then calculate The Manhattan distance between m points and the geometric information of the current point, and determine the nearest n points as the neighbor points of the current point, and then the encoder can use the reciprocal of the distance as the weight to calculate the weighted average of the attributes of the n neighbors, As the predicted value of the attribute at the current point.
- the encoder can obtain the attribute prediction value of the current point in the following ways:
- AttrPred (1/W 1 ⁇ ref 1 +1/W 2 ⁇ ref 2 +1/W 3 ⁇ ref 3 )/(1/W 1 +1/W 2 +1/W 3 ).
- W 1 , W 2 , and W 3 represent the geometric distances between neighbor point 1, neighbor point 2, neighbor point 3 and the current point, respectively, and ref 1 , ref 2 , and ref 3 represent neighbor point 1, neighbor point 2, and neighbor point respectively.
- the first quantized residual value may be determined by the following formula:
- AttrResidualQuant1 (attrValue-attrPred)/Qstep;
- AttrResidualQuant represents the first quantization residual value
- attrPred represents the attribute prediction value of the current point
- attrValue represents the original value of the attribute of the current point
- Qstep represents the quantization step size.
- Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
- the encoding order comprises a Morton's order or a Hilbert order.
- the encoder can reorder the current point cloud and perform attribute prediction.
- the reordering methods include Morton reordering and Hilbert reordering.
- the encoder can obtain the encoding order of the current point cloud by reordering the current point cloud. After the encoder obtains the encoding order of the current point cloud, it can predict the attribute information of the points in the point cloud according to the encoding order of the current point cloud.
- Table 3 is in the case of limiting lossy geometry (limit-lossy geometry) compression and lossy attributes (lossy attributes) compression and the value of ⁇ is 0.5, the BD of each component of Cat1A to Cat1A+Cat2 -rate; where Cat1A represents the point cloud of points that only include the reflectance information of the point, Cat1B represents the point cloud of points that only include the color information of the point, and Cat1C represents the point cloud of points that include both the color information and reflectance information of the point , Cat2 represents the point cloud of the point including the reflectance information of the point and other attribute information, and Cat3 represents the point cloud of the point including the color information of the point and other attribute information.
- Table 4 is the BD-rate of the color information from Cat1A to Cat1A+Cat2 in the case of lossless geometry (lossless geometry) compression and lossy attribute compression and the value of ⁇ is 0.5.
- Table 5 shows the BD-rate of each component of Cat1A to Cat1A+Cat2 in the case of lossless geometry compression and lossy attribute compression and the value of ⁇ is 0.8.
- Table 6 shows the BD-rate of each component of Cat1A to Cat1A+Cat2 under the condition of limiting lossy geometry compression and lossy attribute compression and the value of ⁇ is 0.8.
- the overall mean (overall) represents the combined performance of all sequences.
- Representative rate distortion (Bit distortion, BD-rate) is an indicator to measure algorithm performance or coding performance, which indicates the transformation of the coding algorithm provided by this application in terms of code rate and PSNR compared to the original coding algorithm, and the overall negative value indicates performance get better.
- L, Cb, and Cr also known as Y, U, V
- reflectance represents the performance of the reflectance attribute.
- the total average value of BD-rate on the L component can be increased by 7.6%, and the Cb
- the component can be improved by 1.7%, the Cr component can be improved by 4.4%, and the reflectance component can be improved by 2.5%, that is, the solution provided by the present application can improve the coding performance.
- the total average value of BD-rate can be increased by 7.2% on the L component, and on the Cb component can be improved by 6.5%, and the Cr component can be improved by 6.6%, that is, the solution provided by the present application can improve the encoding performance.
- the total average value of BD-rate on the L component can be increased by 7.6%, and the Cb
- the component can be improved by 2.0%, and the Cr component can be improved by 4.5%, that is, the solution provided by the present application can improve the coding performance.
- the total average value of BD-rate can be increased by 8.3% on the L component, and on the Cb component can be improved by 6.9%, and the Cr component can be improved by 6.9%, that is, the solution provided by the present application can improve the coding performance.
- the first quantized residual value of the current point is the quantized residual value attrResidualQuant1 determined based on the attribute prediction value obtained by the encoder on the attribute prediction of the current point, and attrResidualQuant2 obtained by setting attrResidualQuant1 to 0 is used as the current point’s At least one second quantized residual value.
- the encoder can determine the final quantized residual value at the current point in attrResidualQuant1 and attrResidualQuant2, that is, the third quantized residual value mentioned above.
- the encoder can determine the attribute reconstruction value Recon1 of the current point based on the attribute prediction value and attrResidualQuant1, and the encoder sets attrResidualQuant1 to 0 and uses it as attrResidualQuant2. Further, the encoder may determine the attribute reconstruction value Recon2 of the current point based on the attribute prediction value and attrResidualQuant2.
- the encoder can calculate the rate-distortion cost of attrResidualQuant1 and the rate-distortion cost of attrResidualQuant2 based on the attribute reconstruction value Recon1 of the current point and the attribute reconstruction value Recon2 of the current point, and determine attrResidualQuant with the smallest rate-distortion cost as the final quantization of the current point The residual value, and finally encode the final quantized residual value of the current point to realize the encoding of the attribute information of the current point.
- FIG. 18 is a schematic flowchart of an encoding method 400 provided by an embodiment of the present application.
- the method 400 can be executed by an encoder or an encoding framework, such as the encoding framework shown in FIG. 4 .
- the encoding method 400 may include:
- the encoder acquires the current point cloud.
- the encoder performs attribute prediction on the current point to obtain an attribute prediction value of the current point.
- the encoder when the encoder predicts the current point in the point cloud, it creates multiple prediction mode candidates based on the search results of neighbor points on the LOD where the current point is located. For example, when using the prediction method to encode the attribute information of the current point, the encoder first finds 3 neighbor points before the current point based on the neighbor point search results on the LOD where the current point is located, and creates 4 prediction mode candidates, That is, the prediction mode (predMode) whose index value is 0 to 3.
- the prediction mode with an index of 0 refers to determining the weighted average of the reconstructed attribute values of the three neighbor points as the attribute prediction value of the current point based on the distance between the three neighbor points and the current point;
- the prediction mode with an index of 1 refers to The attribute reconstruction value of the nearest neighbor point among the three neighbor points is used as the attribute prediction value of the current point;
- the prediction mode with index 2 refers to the attribute reconstruction value of the next nearest neighbor point as the attribute prediction value of the current point;
- the prediction mode with index 3 refers to using the attribute reconstruction value of the neighbor points other than the nearest neighbor point and the next nearest neighbor point among the three neighbor points as the attribute prediction value of the current point;
- the candidate for the attribute prediction value of the current point is obtained based on the above-mentioned various prediction modes
- the encoder can use rate distortion optimization (Rate distortion optimization, RDO) technology to select the best attribute prediction value, and then perform arithmetic coding on the selected attribute prediction value.
- rate distortion optimization RDO
- the encoder determines the prediction mode used by the current point, it can first calculate the maximum difference maxDiff of its attributes for at least one neighbor point of the current point, compare maxDiff with the set threshold, if it is less than the set threshold (that is, the first A threshold) then use the prediction mode whose index is 0 (that is, the first prediction mode).
- the encoder when the encoder determines the prediction mode used by the current point, it can first calculate the maximum difference maxDiff of its attributes for at least one neighbor point of the current point, compare maxDiff with the set threshold, and if it is greater than or equal to the set threshold, the encoder can use RDO technology to determine the index of the prediction mode used by the current point for the current point. For RDO technology, the encoder can calculate the corresponding rate-distortion cost for each prediction mode of the current point, and then select the prediction mode with the smallest rate-distortion cost, that is, the optimal prediction mode as the attribute prediction mode of the current point.
- the encoder can reorder the current point cloud and perform attribute prediction.
- the reordering methods include Morton reordering and Hilbert reordering.
- the encoder can obtain the encoding order of the current point cloud by reordering the current point cloud. After the encoder obtains the encoding order of the current point cloud, it can predict the attribute information of the points in the point cloud according to the encoding order of the current point cloud.
- the attribute reconstruction value of the repeated point is used as the attribute prediction value of the current point.
- the encoder can select the first m points as the neighbor candidate points of the current point according to the encoding order, and then calculate The Manhattan distance between m points and the geometric information of the current point, and determine the nearest n points as the neighbor points of the current point, and then the encoder can use the reciprocal of the distance as the weight to calculate the weighted average of the attributes of the n neighbors, As the predicted value of the attribute at the current point.
- the encoder can obtain the attribute prediction value of the current point in the following ways:
- AttrPred (1/W 1 ⁇ ref 1 +1/W 2 ⁇ ref 2 +1/W 3 ⁇ ref 3 )/(1/W 1 +1/W 2 +1/W 3 ).
- W 1 , W 2 , and W 3 represent the geometric distances between neighbor point 1, neighbor point 2, neighbor point 3 and the current point, respectively, and ref 1 , ref 2 , and ref 3 represent neighbor point 1, neighbor point 2, and neighbor point respectively.
- the encoder determines a residual value of the current point based on the original value of the attribute and the predicted value of the attribute of the current point.
- the encoder quantizes the residual value of the current point to obtain the quantized residual value attrResidualQuant1 of the current point.
- AttrResidualQuant1 can be determined by the following formula:
- AttrResidualQuant1 (attrValue-attrPred)/Qstep;
- AttrPred represents the attribute prediction value of the current point
- attrValue represents the original value of the attribute of the current point
- Qstep represents the quantization step size.
- Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
- the encoder determines the attribute reconstruction value Recon1 of the current point based on attrResidualQuant1 and the attribute prediction value of the current point.
- the encoder can reconstruct the value Recon1 based on the attribute of the current point determined by attrResidualQuant1 through the following formula:
- Recon1 attrResidualQuant1 ⁇ Qstep+attrPred;
- Recon1 indicates the attribute reconstruction value of the current point determined based on attrResidualQuant1
- Qstep indicates the quantization step size
- attrPred indicates the attribute prediction value of the current point.
- Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
- the encoder determines the rate-distortion cost J 1 of attrResidualQuant1 based on Recon1.
- the encoder calculates the rate-distortion cost of attrResidualQuant1 according to the following formula:
- J 1 D 1 + ⁇ R 1 ;
- J 1 represents the rate-distortion cost of attrResidualQuant1
- D 1 represents the error between the original attribute value attrValue of the current point and Recon1
- ⁇ is determined according to the quantization parameter of the current point
- R 1 represents attrResidualQuant1 in the code stream The number of bits required in .
- D can be obtained by the following formula:
- AttrValue represents the original value of the attribute of the current point
- Recon1 represents the reconstruction value of the attribute of the current point determined based on attrResidualQuant1.
- the encoder determines the quantization residual value attrResidualQuant2 of the current point based on attrResidualQuant1.
- the encoder determines the attribute reconstruction value Recon2 of the current point based on attrResidualQuant2 and the attribute prediction value of the current point.
- the encoder can reconstruct the value Recon2 based on the attribute of the current point determined by attrResidualQuant2 through the following formula:
- Recon2 attrResidualQuant2 ⁇ Qstep+attrPred;
- the encoder determines the rate-distortion cost J 2 of attrResidualQuant2 based on the Recon2.
- the encoder calculates the rate-distortion cost of the quantized residual value attrResidualQuant1 according to the following formula:
- J 2 D 2 + ⁇ R 2 ;
- J 2 represents the rate-distortion cost of attrResidualQuant2
- D 2 represents the error between the original attribute value attrValue of the current point and Recon2
- ⁇ 2 is determined according to the quantization parameter of the current point
- R 1 represents attrResidualQuant2 in the code The desired number of bits in the stream.
- D2 can be obtained by the following formula:
- AttrValue represents the original value of the attribute of the current point
- the encoder determines attrResidualQuant2 as the final quantized residual value at the current point (that is, the third quantized residual value mentioned above), and encodes attrResidualQuant2.
- the encoder determines attrResidualQuant1 as the final quantized residual value at the current point (that is, the third quantized residual value mentioned above), and encodes attrResidualQuant1.
- the encoder calculates the rate-distortion cost of attrResidualQuant1 and the rate-distortion cost of attrResidualQuant2, and determines attrResidualQuant with the smallest rate-distortion cost as the final quantized residual value of the current point, and finally calculates the final quantized residual value of the current point
- Encoding is performed to realize the encoding of the attribute information of the current point, which not only makes the quantization scales of attrResidualQuant1 and attrResidualQuant2 different, but also makes the rate-distortion cost of attrResidualQuant1 and attrResidualQuant2 take into account the reconstruction quality and encoding of the current point at the same time Efficiency, so that the final quantized residual value selected at the current point is the third quantized residual value with the best quantization scale, which avoids low coding efficiency or low reconstruction quality at the current point, and improves
- FIG. 18 is only an example of the present application, and should not be construed as limiting the present application.
- the encoder sets attrResidualQuant2 obtained by setting attrResidualQuant1 to 0 as at least one second quantized residual value at the current point, but the present application is not limited thereto.
- the value of the first quantization residual value is N
- the number of the at least one second quantization residual value is N-1
- the at least one second The values of the quantized residual values are respectively: 0,...,N-1.
- N is a positive integer.
- the encoder can obtain N quantized residual values and attribute reconstruction values, that is, the rate-distortion cost of each quantized residual value in the N quantized residual values can be obtained, that is, J 1 , J 2 , ... , J N .
- the at least one second quantized residual value can be set to 0-9 in sequence, and then 10 attribute reconstruction values can be obtained, at this time, the utilization rate distortion cost
- the calculation formula can get 10 rate-distortion costs, that is, J 1 , J 2, ..., J 10 ; then compare the size of J 1 , J 2, ..., J 10 , and choose the rate-distortion cost Min(J 1 , J 2, ..., J 10 ) and determine the quantized residual value corresponding to the minimum rate-distortion cost as the final quantized residual value of the current point, and finally encode the final quantized residual value of the current point, and repeat the above process, Until all the points in the current point cloud are encoded, the attribute information of the current point is encoded.
- the present application also provides a decoding method corresponding to the above encoding method.
- Fig. 19 is a schematic flowchart of a decoding method provided by an embodiment of the present application.
- the decoder first obtains APS and ABH by decoding the attribute code stream for subsequent use, then obtains the attribute prediction value attrPred of the first point from the attribute code stream, and obtains the first point from the attribute code stream
- the quantized residual value of the point, after inverse quantization, the residual value of the first point can be obtained. Based on this, the decoder can obtain the predicted value of the attribute of the first point based on the residual value of the first point.
- the attribute reconstruction value of the first point, the attribute reconstruction value of the first point can be used as the neighbor candidate of the subsequent point, and then the quantized residual value of the second point is parsed from the attribute code stream, dequantized and The result of dequantization is added to the attribute prediction value of the second point to obtain the attribute reconstruction value of the second point, and so on until the last point of the point cloud is decoded.
- the decoder may dequantize the quantized residual value of the current point (ie, the third quantized residual value involved in the present application) based on the following formula to obtain the residual value of the current point:
- AttrResidual attrResidualQuant ⁇ Qstep
- AttrResidual indicates the residual value of the current point
- attrResidualQuant indicates the quantization residual value of the current point
- Qstep indicates the quantization step size.
- Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
- the decoder can obtain the attribute reconstruction value of the current point based on the following formula:
- Recon represents the attribute reconstruction value of the current point determined based on the quantized residual value of the current point
- attrResidual represents the residual value of the current point
- attrPred represents the attribute prediction value of the current point
- sequence numbers of the above-mentioned processes do not mean the order of execution, and the order of execution of the processes should be determined by their functions and internal logic, and should not be used in this application.
- the implementation of the examples constitutes no limitation.
- FIG. 20 is a schematic block diagram of an encoder 500 provided by an embodiment of the present application.
- the encoder 500 may include:
- Determining unit 510 configured to:
- the encoding unit 520 is configured to encode the third quantized residual value to obtain a code stream.
- the determining unit 510 is specifically configured to:
- the at least one second quantized residual value is determined.
- the determining unit 510 is specifically configured to:
- An integer smaller than the first quantized residual value is determined as the at least one second quantized residual value.
- the determining unit 510 is specifically configured to:
- a default residual value is determined as the at least one second quantized residual value.
- the determining unit 510 is specifically configured to:
- a quantized residual value having the smallest rate-distortion cost among the rate-distortion cost of the first quantized residual value and the rate-distortion cost of the second quantized residual value is determined as the third quantized residual value.
- the rate-distortion cost of the first quantized residual value is calculated in the same manner as the rate-distortion cost of the second quantized residual value.
- the determining unit 510 is specifically configured to:
- J 1 D 1 + ⁇ R 1 ;
- J 1 represents the rate-distortion cost of the first quantized residual value
- D 1 represents the original attribute value of the current point and the reconstructed attribute value of the current point determined based on the first quantized residual value
- the error between , ⁇ is determined according to the quantization parameter of the current point
- R 1 represents the number of bits required by the first quantization residual value in the code stream
- J 1 represents the second quantization residual value
- D 1 represents the error between the original attribute value of the current point and the attribute reconstruction value of the current point determined based on the second quantized residual value
- ⁇ is based on the current point
- the quantization parameter is determined, and R 1 represents the number of bits required by the second quantization residual value in the code stream.
- ⁇ is determined according to the quantization parameter of the current point and at least one of the following:
- the sequence type of the current point cloud and the current component of the current point is the sequence type of the current point cloud and the current component of the current point.
- the determining unit 510 is specifically configured to:
- the determining unit 510 is specifically configured to:
- the first prediction mode is determined as the prediction mode adopted by the current point; the first prediction mode refers to a weighted average based on the at least one neighbor point A prediction mode for predicting the attribute value of the current point.
- the determining unit 510 is specifically configured to:
- the attribute difference of the at least one neighbor point is determined by using the maximum difference among the differences of the at least one neighbor point on each component.
- the coding unit 520 is also used for:
- the at least A second prediction mode has a one-to-one correspondence with the at least one neighbor point, and the second prediction mode refers to using the attribute reconstruction value of the neighbor point corresponding to the second prediction mode among the at least one neighbor point as the current The prediction mode of the predicted value of the attribute of the point;
- the determining unit 510 is further configured to:
- the determining unit 510 is specifically configured to:
- the quantization step used by the current point is determined according to the quantization parameter of the current point.
- the encoding order comprises a layer of detail LOD order.
- the determining unit 510 is specifically configured to:
- the quantization step used by the current point is determined according to the quantization parameter of the current point.
- the encoding order comprises a Morton's order or a Hilbert order.
- the encoder 500 can also be combined with the encoding framework shown in FIG. 4 , that is, units in the encoder 500 can be replaced or combined with relevant parts in the encoding framework.
- the determining unit 510 may correspond to the attribute transformation (Transfer attributes) unit 111, the region adaptive hierarchical transformation (Region Adaptive Hierarchical Transform, RAHT) unit 112, the predicting change (predicting transform) unit 113 or the lifting change in the encoding framework. (lifting transform) unit 114, and for another example, the coding unit 520 may correspond to the second arithmetic coding unit 116 in the coding framework.
- the device embodiment and the method embodiment may correspond to each other, and similar descriptions may refer to the method embodiment. To avoid repetition, details are not repeated here.
- the encoder 500 may correspond to the corresponding subject in the method 300 or the method 400 of the embodiment of the present application, and each unit in the encoder 500 is to realize the corresponding process in the method 300 or the method 400 respectively, for the sake of brevity, in This will not be repeated here.
- the various units in the encoder 500 involved in the embodiment of the present application may be separately or all combined into one or several other units to form, or one (some) of the units may be further divided into functional Multiple smaller units can realize the same operation without affecting the realization of the technical effects of the embodiments of the present application.
- the above-mentioned units are divided based on logical functions.
- the functions of one unit may also be realized by multiple units, or the functions of multiple units may be realized by one unit.
- the encoder 500 may also include other units. In practical applications, these functions may also be assisted by other units, and may be implemented cooperatively by multiple units.
- a general-purpose computing device including a general-purpose computer such as a central processing unit (CPU), a random access storage medium (RAM), a read-only storage medium (ROM) and a storage element
- a computer program capable of executing each step involved in the corresponding method on the computer to construct the encoder 500 involved in the embodiment of the present application and implement the encoding method provided in the embodiment of the present application.
- the computer program can be recorded in, for example, a computer-readable storage medium, and loaded on any electronic device with data processing capability through the computer-readable storage medium, and run in it to implement the corresponding method of the embodiment of the present application.
- the units mentioned above can be implemented in the form of hardware, can also be implemented by instructions in the form of software, and can also be implemented in the form of a combination of software and hardware.
- each step of the method embodiment in the embodiment of the present application can be completed by an integrated logic circuit of the hardware in the processor and/or instructions in the form of software, and the steps of the method disclosed in the embodiment of the present application can be directly embodied as hardware
- the execution of the decoding processor is completed, or the combination of hardware and software in the decoding processor is used to complete the execution.
- the software may be located in mature storage media in the field such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, and registers.
- the storage medium is located in the memory, and the processor reads the information in the memory, and completes the steps in the above method embodiments in combination with its hardware.
- FIG. 21 is a schematic structural diagram of a codec device 600 provided by an embodiment of the present application.
- the codec device 600 includes at least a processor 610 and a computer-readable storage medium 620 .
- the processor 610 and the computer-readable storage medium 620 may be connected through a bus or in other ways.
- the computer-readable storage medium 620 is used for storing a computer program 621
- the computer program 621 includes computer instructions
- the processor 610 is used for executing the computer instructions stored in the computer-readable storage medium 620 .
- the processor 610 is the computing core and the control core of the codec device 600, which is suitable for realizing one or more computer instructions, and is specifically suitable for loading and executing one or more computer instructions so as to realize corresponding method procedures or corresponding functions.
- the processor 610 may also be called a central processing unit (Central Processing Unit, CPU).
- the processor 610 may include but not limited to: a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) Or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
- DSP Digital Signal Processor
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- the computer-readable storage medium 620 can be a high-speed RAM memory, or a non-volatile memory (Non-VolatileMemory), such as at least one disk memory; computer readable storage medium.
- the computer-readable storage medium 620 includes, but is not limited to: volatile memory and/or non-volatile memory.
- the non-volatile memory can be read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable ROM, PROM), erasable programmable read-only memory (Erasable PROM, EPROM), electronically programmable Erase Programmable Read-Only Memory (Electrically EPROM, EEPROM) or Flash.
- the volatile memory can be Random Access Memory (RAM), which acts as external cache memory.
- RAM Random Access Memory
- Static Random Access Memory SRAM
- Dynamic Random Access Memory DRAM
- Synchronous Dynamic Random Access Memory Synchronous DRAM, SDRAM
- double data rate synchronous dynamic random access memory Double Data Rate SDRAM, DDR SDRAM
- enhanced synchronous dynamic random access memory Enhanced SDRAM, ESDRAM
- synchronous connection dynamic random access memory SLDRAM
- Direct Rambus RAM Direct Rambus RAM
- the codec device 600 may be the encoding framework shown in FIG. 6 or the encoder 500 shown in FIG. 20; the computer-readable storage medium 620 stores a first computer instruction; The first computer instructions stored in the computer-readable storage medium 620 are loaded and executed to implement corresponding steps in the encoding method provided in the embodiment of the present application. To avoid repetition, details are not repeated here.
- the embodiment of the present application further provides a computer-readable storage medium (Memory).
- the computer-readable storage medium is a memory device in the codec device 600 and is used to store programs and data.
- computer readable storage medium 620 may include a built-in storage medium in the codec device 600 , and of course may also include an extended storage medium supported by the codec device 600 .
- the computer-readable storage medium provides storage space, and the storage space stores the operating system of the codec device 600 .
- one or more computer instructions adapted to be loaded and executed by the processor 610 are also stored in the storage space, and these computer instructions may be one or more computer programs 621 (including program codes). These computer instruction instructions are used for the computer to execute the coding methods provided in the above-mentioned various optional modes.
- a computer program product or computer program comprising computer instructions stored in a computer readable storage medium.
- computer program 621 the codec device 600 may be a computer, the processor 610 reads the computer instructions from the computer-readable storage medium 620, and the processor 610 executes the computer instructions, so that the computer executes the encoding method provided in the above-mentioned various optional modes .
- the computer program product includes one or more computer instructions.
- the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable device.
- the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, from a website, computer, server, or data center via Wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) transmission to another website site, computer, server or data center.
- Wired such as coaxial cable, optical fiber, digital subscriber line (DSL)
- wireless such as infrared, wireless, microwave, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本申请实施例涉及编解码技术领域,并且更具体地,涉及编码方法、编码器以及存储介质。The embodiments of the present application relate to the technical field of encoding and decoding, and more specifically, relate to an encoding method, an encoder, and a storage medium.
点云已经开始普及到各个领域,例如,虚拟/增强现实、机器人、地理信息系统、医学领域等。随着扫描设备的基准度和速率的不断提升,可以准确地获取物体表面的大量点云,往往一个场景下就可以对应几十万个点。数量如此庞大的点也给计算机的存储和传输带来了挑战。因此,对点的压缩也就成为一个热点问题。Point cloud has begun to be popularized in various fields, for example, virtual/augmented reality, robotics, geographic information system, medical field, etc. With the continuous improvement of the benchmark and speed of scanning equipment, a large number of point clouds on the surface of objects can be accurately obtained, often corresponding to hundreds of thousands of points in one scene. Such a large number of points also brings challenges to computer storage and transmission. Therefore, point compression has become a hot issue.
对于点云的压缩来说,编码器需要压缩其位置信息和属性信息;具体而言,编码器先通过对点云的位置信息进行八叉树编码;同时,编码器根据八叉树编码后的当前点的位置信息在已编码的点中选择出用于预测当前点的属性值的邻居点,并参考选择出的邻居点对当前点进行预测以得到当前点的属性预测值,接着基于当前点的属性预测值与当前点的属性原始值计算得到当前点的残差值,然后编码器对当前点的残差值进行量化等过程得到量化残差值,最终编码器将当前点的量化残差值以码流的形式传输到解码端;解码端通过接收并解析码流可得到当前点的量化残差值,并将量化残差值经反变换与反量化等步骤得到当前点的残差值,解码端以相同过程预测得到属性预测值,与解析码流得到的残差值叠加后得到当前点的属性重建值。For point cloud compression, the encoder needs to compress its position information and attribute information; specifically, the encoder first performs octree encoding on the position information of the point cloud; at the same time, the encoder encodes the position information according to the octree The position information of the current point selects the neighbor points used to predict the attribute value of the current point from the encoded points, and predicts the current point with reference to the selected neighbor points to obtain the attribute prediction value of the current point, and then based on the current point The predicted value of the attribute of the current point and the original value of the attribute of the current point are calculated to obtain the residual value of the current point, and then the encoder quantizes the residual value of the current point to obtain the quantized residual value, and finally the encoder converts the quantized residual value of the current point The value is transmitted to the decoding end in the form of a code stream; the decoding end can obtain the quantized residual value of the current point by receiving and analyzing the code stream, and obtain the residual value of the current point through steps such as inverse transformation and inverse quantization of the quantized residual value , the decoding end uses the same process to predict the attribute prediction value, which is superimposed with the residual value obtained by parsing the code stream to obtain the attribute reconstruction value of the current point.
通常情况下,编码器参考选择出的邻居点对当前点进行预测以得到当前点的属性预测值后,需要先利用选择出的邻居点的属性重建值对当前点的属性进行差分预测得到当前点的残差值,然后编码器对当前点的残差值进行量化编码。但是,在这种编码过程中,由于编码器针对同一点云序列中的所有点采用相同的量化参数进行量化编码,因此会导致某些点的编码效率过低或者重建质量过低,进而降低了编码器的编码性能。Usually, after the encoder predicts the current point with reference to the selected neighbor points to obtain the attribute prediction value of the current point, it needs to use the attribute reconstruction value of the selected neighbor points to perform differential prediction on the attribute of the current point to obtain the current point Then the encoder quantizes and encodes the residual value of the current point. However, in this encoding process, since the encoder uses the same quantization parameter for all points in the same point cloud sequence for quantization encoding, it will result in low encoding efficiency or low reconstruction quality for some points, thereby reducing the The encoding performance of the encoder.
发明内容Contents of the invention
本申请实施例提供了一种编码方法、编码器以及存储介质,能够提升编码器的编码性能。Embodiments of the present application provide an encoding method, an encoder, and a storage medium, which can improve the encoding performance of the encoder.
第一方面,本申请提供了一种编码方法,包括:In a first aspect, the present application provides an encoding method, including:
基于当前点云的几何信息,确定所述当前点云的属性信息的编码顺序;Based on the geometric information of the current point cloud, determine the encoding sequence of the attribute information of the current point cloud;
基于所述编码顺序中位于待编码的当前点之前的至少一个邻居点,确定所述当前点的第一量化残差值;Determining a first quantized residual value of the current point based on at least one neighbor point before the current point to be encoded in the encoding order;
确定所述当前点的至少一个第二量化残差值;determining at least one second quantized residual value for the current point;
根据所述第一量化残差值和所述至少一个第二量化残差值,确定第三量化残差值;determining a third quantized residual value based on the first quantized residual value and the at least one second quantized residual value;
对所述第三量化残差值进行编码,得到码流。Encoding the third quantized residual value to obtain a code stream.
第二方面,本申请提供了一种编码器,包括:In a second aspect, the present application provides an encoder, including:
确定单元,用于:Identify units for:
基于当前点云的几何信息,确定所述当前点云的属性信息的编码顺序;Based on the geometric information of the current point cloud, determine the encoding sequence of the attribute information of the current point cloud;
基于所述编码顺序中位于待编码的当前点之前的至少一个邻居点,确定所述当前点的第一量化残差值;Determining a first quantized residual value of the current point based on at least one neighbor point before the current point to be encoded in the encoding order;
确定所述当前点的至少一个第二量化残差值;determining at least one second quantized residual value for the current point;
根据所述第一量化残差值和所述至少一个第二量化残差值,确定第三量化残差值;determining a third quantized residual value based on the first quantized residual value and the at least one second quantized residual value;
编码单元,用于对所述第三量化残差值进行编码,得到码流。A coding unit, configured to code the third quantized residual value to obtain a code stream.
第三方面,本申请提供了一种编码设备,包括:In a third aspect, the present application provides an encoding device, including:
处理器,适于实现计算机指令;以及,a processor adapted to implement computer instructions; and,
计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令适于由处理器加载并执行上述第一方面或其各实现方式中的编码方法。A computer-readable storage medium, the computer-readable storage medium stores computer instructions, and the computer instructions are adapted to be loaded by a processor and execute the encoding method in the above first aspect or its various implementations.
在一种实现方式中,该处理器为一个或多个,该存储器为一个或多个。In an implementation manner, there are one or more processors, and one or more memories.
在一种实现方式中,该计算机可读存储介质可以与该处理器集成在一起,或者该计算机可读存储介质与处理器分离设置。In an implementation manner, the computer-readable storage medium may be integrated with the processor, or the computer-readable storage medium may be provided separately from the processor.
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,该计算机指令被计算机设备的处理器读取并执行时,使得计算机设备执行上述第一方面或其各实现方式中的编码方法。In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, the computer-readable storage medium stores computer instructions, and when the computer instructions are read and executed by a processor of a computer device, the computer device executes the above-mentioned first step. An encoding method in an aspect or implementations thereof.
第五方面,本申请实施例提供了一种码流,所述码流如第一方面或其各实现方式中的所述的方法生 成的码流。In the fifth aspect, the embodiment of the present application provides a code stream, the code stream is as the code stream generated by the method described in the first aspect or its various implementations.
基于以上技术方案,本申请针对当前点确定最终编码码流的量化残差值时,在考虑了基于编码顺序中位于待编码的当前点之前的至少一个邻居点确定的第一量化残差值的基础上,还引入了至少一个第二量化残差值,由于当前点采用不同的量化残差值时表示当前点的量化尺度不同;因此,编码器先根据所述第一量化残差值和所述至少一个第二量化残差值确定出第三量化残差值,再对第三量化残差值进行编码,不仅能够避免编码器针对当前点云中的所有点采用相同的量化尺度进行量化编码,还有利于为当前点云中的点选择合适的量化尺度,进而能够避免某些点的编码效率过低或者重建质量过低,提升了编码器的编码性能。Based on the above technical solution, when the present application determines the quantized residual value of the final encoded code stream for the current point, the first quantized residual value determined based on at least one neighbor point before the current point to be encoded in the encoding order is considered On this basis, at least one second quantized residual value is also introduced, because when the current point adopts different quantized residual values, it indicates that the quantization scale of the current point is different; therefore, the encoder first uses the first quantized residual value and the The third quantized residual value is determined by at least one second quantized residual value, and then the third quantized residual value is encoded, which can not only prevent the encoder from using the same quantized scale for all points in the current point cloud to perform quantized encoding , it is also beneficial to select an appropriate quantization scale for the points in the current point cloud, which can avoid the low coding efficiency or low reconstruction quality of some points, and improve the coding performance of the encoder.
图1是本申请实施例提供的点云图像的示例。Fig. 1 is an example of a point cloud image provided by an embodiment of the present application.
图2是图1所示的点云图像的局部放大图。FIG. 2 is a partially enlarged view of the point cloud image shown in FIG. 1 .
图3是本申请实施例提供的具有的六个观看角度的点云图像的示例。Fig. 3 is an example of point cloud images with six viewing angles provided by the embodiment of the present application.
图4是本申请实施例提供的编码框架的示意性框图。Fig. 4 is a schematic block diagram of a coding framework provided by an embodiment of the present application.
图5是本申请实施例提供的包围盒的示例。Fig. 5 is an example of a bounding box provided by an embodiment of the present application.
图6是本申请实施例提供的对包围盒进行八叉树划分的示例。Fig. 6 is an example of performing octree division on a bounding box provided by an embodiment of the present application.
图7至图9示出了莫顿码在二维空间中的排列顺序。Figures 7 to 9 show the arrangement order of Morton codes in two-dimensional space.
图10示出了莫顿码在三维空间中的排列顺序。Fig. 10 shows the arrangement order of Morton codes in three-dimensional space.
图11是本申请实施例提供的LOD层的示意性框图。Fig. 11 is a schematic block diagram of an LOD layer provided by an embodiment of the present application.
图12是本申请实施例提供的解码框架的示意性框图。Fig. 12 is a schematic block diagram of a decoding framework provided by an embodiment of the present application.
图13是本申请实施例提供的编码框架的另一示意性框图。Fig. 13 is another schematic block diagram of a coding framework provided by an embodiment of the present application.
图14是本申请实施例提供的解码框架的另一示意性框图。Fig. 14 is another schematic block diagram of a decoding framework provided by an embodiment of the present application.
图15是本申请实施例提供的编码方法的示意性流程图。Fig. 15 is a schematic flowchart of an encoding method provided by an embodiment of the present application.
图16是本申请实施例提供的属性码流的示意性结构图。Fig. 16 is a schematic structural diagram of an attribute code stream provided by an embodiment of the present application.
图17是本申请实施例提供的属性码流中的负载的示意性结构图。Fig. 17 is a schematic structural diagram of a payload in an attribute code stream provided by an embodiment of the present application.
图18是本申请实施例提供的编码方法的另一示意性流程图。Fig. 18 is another schematic flowchart of the encoding method provided by the embodiment of the present application.
图19是本申请实施例提供的解码方法的示意性流程图。Fig. 19 is a schematic flowchart of a decoding method provided by an embodiment of the present application.
图20是本申请实施例提供的编码器的示意性流程图。Fig. 20 is a schematic flowchart of an encoder provided by an embodiment of the present application.
图21是本申请实施例提供的编码器的另一示意性流程图。Fig. 21 is another schematic flowchart of the encoder provided by the embodiment of the present application.
下面将结合附图,对本申请实施例中的技术方案进行描述。The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.
点云(Point Cloud)是空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。图1和图2分别示出了三维点云图像和局部放大图,可以看到点云表面是由分布稠密的点所组成的。A point cloud is a set of discrete point sets randomly distributed in space that express the spatial structure and surface properties of a 3D object or 3D scene. Figure 1 and Figure 2 show the 3D point cloud image and local enlarged view respectively, and it can be seen that the point cloud surface is composed of densely distributed points.
二维图像在每一个像素点均有信息表达,因此不需要额外记录其位置信息;然而点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。与二维图像类似,点云中的每一个点均有对应的属性信息,通常为RGB颜色值,颜色值反映物体的色彩;对于点云来说,每一个点所对应的属性信息除了颜色以外,还可以是反射率(reflectance)值,反射率值反映物体的表面材质。点云中每个点可以包括几何信息和属性信息,其中,点云中每个点的几何信息是指该点的笛卡尔三维坐标数据,点云中每个点的属性信息可以包括但不限于以下至少一种:颜色信息、材质信息、激光反射强度信息。颜色信息可以是任意一种色彩空间上的信息。例如,颜色信息可以是红绿蓝(Red Green Blue,RGB)信息。再如,颜色信息还可以是亮度色度(YCbCr,YUV)信息。其中,Y表示明亮度(Luma),Cb(U)表示蓝色色度分量,Cr(V)表示红色色度分量。点云中的每个点都具有相同数量的属性信息。例如,点云中的每个点都具有颜色信息和激光反射强度两种属性信息。再如,点云中的每个点都具有颜色信息、材质信息和激光反射强度信息三种属性信息。The two-dimensional image has information expression at each pixel point, so there is no need to additionally record its position information; however, the distribution of points in the point cloud in the three-dimensional space is random and irregular, so it is necessary to record the location of each point in the space In order to fully express a point cloud. Similar to a two-dimensional image, each point in the point cloud has corresponding attribute information, usually an RGB color value, and the color value reflects the color of the object; for the point cloud, the attribute information corresponding to each point is in addition to the color , it can also be a reflectance value, which reflects the surface material of the object. Each point in the point cloud can include geometric information and attribute information, wherein the geometric information of each point in the point cloud refers to the Cartesian three-dimensional coordinate data of the point, and the attribute information of each point in the point cloud can include but not limited to At least one of the following: color information, material information, and laser reflection intensity information. The color information can be information on any color space. For example, the color information may be Red Green Blue (RGB) information. For another example, the color information may also be brightness and chrominance (YCbCr, YUV) information. Among them, Y represents brightness (Luma), Cb (U) represents a blue chroma component, and Cr (V) represents a red chroma component. Each point in the point cloud has the same amount of attribute information. For example, each point in the point cloud has two attribute information, color information and laser reflection intensity. For another example, each point in the point cloud has three attribute information: color information, material information and laser reflection intensity information.
点云图像可具有的多个观看角度,例如,如图3所示的点云图像可具有的六个观看角度,点云图像对应的数据存储格式由文件头信息部分和数据部分组成,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容。The point cloud image can have multiple viewing angles, for example, the point cloud image shown in Figure 3 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 It includes the data format, data representation type, total point cloud points, and the content represented by the point cloud.
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现、生 物组织器官三维重建等。Point cloud can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes, and because point cloud is obtained by directly sampling real objects, it can provide a strong sense of reality under the premise of ensuring accuracy, so it is widely used. Including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free viewpoint broadcasting, 3D immersive telepresence, 3D reconstruction of biological tissues and organs, etc.
示例性地,可以基于应用场景可以将点云划分为两大类别,即机器感知点云和人眼感知点云。机器感知点云的应用场景包括但不限于:自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等点云应用场景。人眼感知点云的应用场景包括但不限于:数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。相应的,可以基于点云的获取方式,将点云划分为密集型点云和稀疏型点云;也可基于点云的获取途径将点云划分为静态点云和动态点云,更具体可划分为三种类型的点云,即第一静态点云、第二类动态点云以及第三类动态获取点云。针对第一静态点云,物体是静止的,且获取点云的设备也是静止的;针对第二类动态点云,物体是运动的,但获取点云的设备是静止的;针对第三类动态获取点云,获取点云的设备是运动的。Exemplarily, point clouds can be divided into two categories based on application scenarios, namely, machine-perceived point clouds and human-eye-perceived point clouds. The application scenarios of machine perception point cloud include but are not limited to: autonomous navigation system, real-time inspection system, geographic information system, visual sorting robot, emergency rescue robot and other point cloud application scenarios. The application scenarios of point cloud perceived by the human eye include but are not limited to: digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, 3D immersive interaction and other point cloud application scenarios. Correspondingly, the point cloud can be divided into dense point cloud and sparse point cloud based on the acquisition method of the point cloud; the point cloud can also be divided into static point cloud and dynamic point cloud based on the acquisition method of the point cloud, more specifically, it can be It is divided into three types of point clouds, namely, the first static point cloud, the second type of dynamic point cloud and the third type of dynamically acquired point cloud. For the first static point cloud, the object is stationary, and the device for obtaining the point cloud is also stationary; for the second type of dynamic point cloud, the object is moving, but the device for obtaining the point cloud is stationary; for the third type of dynamic Obtaining point cloud, the equipment for obtaining point cloud is in motion.
示例性地,点云的采集途径包括但不限于:计算机生成、3D激光扫描、3D摄影测量等。计算机可以生成虚拟三维物体及场景的点云;3D激光扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云;3D摄影测量可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。具体而言,可通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云。根据激光测量原理得到的点云,其可以包括点的三维坐标信息和点的激光反射强度(reflectance)。根据摄影测量原理得到的点云,其可以可包括点的三维坐标信息和点的颜色信息。结合激光测量和摄影测量原理得到点云,其可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。例如,在医学领域,由磁共振成像(magnetic resonance imaging,MRI)、计算机断层摄影(computed tomography,CT)、电磁定位信息,可以获得生物组织器官的点云。这些技术降低了点云的获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能,伴随着应用需求的增长,海量3D点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。Exemplarily, the way of collecting the point cloud includes but not limited to: computer generation, 3D laser scanning, 3D photogrammetry and the like. 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, and can obtain millions of point clouds per second; 3D photogrammetry can obtain dynamic real-world three-dimensional objects or scenes The point cloud of tens of millions of points can be obtained per second. Specifically, the point cloud of the surface of the object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera. The point cloud obtained according to the laser measurement principle may include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point. The point cloud obtained according to the principle of photogrammetry may include the three-dimensional coordinate information of the point and the color information of the point. The point cloud is obtained by combining the principles of laser measurement and photogrammetry, which may include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point and the color information of the point. These technologies reduce the cost and time period of point cloud data acquisition, and improve the accuracy of the data. For example, in the medical field, point clouds of biological tissues and organs can be obtained from magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information. These technologies reduce the acquisition cost and time period of point cloud, and improve the accuracy of data. The transformation of the point cloud data acquisition method has made it possible to acquire a large amount of point cloud data. With the growth of application requirements, the processing of massive 3D point cloud data encounters the bottleneck of storage space and transmission bandwidth limitations.
以帧率为30fps(帧每秒)的点云视频为例,每帧点云的点数为70万,其中,每一帧点云中的每一个点具有坐标信息xyz(float)和颜色信息RGB(uchar),则10s长度的点云视频的数据量大约为0.7百万(million)×(4Byte×3+1Byte×3)×30fps×10s=3.15GB,而YUV采样格式为4:2:0,帧率为24fps的1280×720二维视频,其10s的数据量约为1280×720×12bit×24frames×10s≈0.33GB,10s的两视角3D视频的数据量约为0.33×2=0.66GB。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。Taking a point cloud video with a frame rate of 30fps (frame per second) as an example, the number of points in each frame of point cloud is 700,000, and each point in each frame of point cloud has coordinate information xyz (float) and color information RGB (uchar), the data volume of the 10s-length point cloud video is about 0.7 million (million)×(4Byte×3+1Byte×3)×30fps×10s=3.15GB, and the YUV sampling format is 4:2:0 , 1280×720 two-dimensional video with a frame rate of 24fps, the data volume of 10s is about 1280×720×12bit×24frames×10s≈0.33GB, and the data volume of 10s two-view 3D video is about 0.33×2=0.66GB . It can be seen that the data volume of point cloud video far exceeds the data volume of 2D video and 3D video of the same duration. Therefore, in order to better realize data management, save server storage space, and reduce the transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue to promote the development of the point cloud industry.
点云压缩一般采用点云几何信息和属性信息分别压缩的方式,在编码端,首先在几何编码器中编码点云几何信息,然后将重建几何信息作为附加信息输入到属性编码器中,以辅助点云的属性压缩;在解码端,首先在几何解码器中解码点云几何信息,然后将解码后的几何信息作为附加信息输入到属性解码器中,辅助点云的属性压缩。整个编解码器由预处理/后处理、几何编码/解码、属性编码/解码几部分组成。Point cloud compression generally uses point cloud geometric information and attribute information to compress separately. Attribute compression of point cloud; at the decoding end, the geometric information of the point cloud is first decoded in the geometry decoder, and then the decoded geometric information is input into the attribute decoder as additional information to assist the attribute compression of the point cloud. The entire codec consists of preprocessing/postprocessing, geometric encoding/decoding, and attribute encoding/decoding.
示例性地,点云可通过各种类型的编码框架和解码框架分别进行编码和解码。作为示例,编解码框架可以是运动图象专家组(Moving Picture Experts Group,MPEG)提供的几何点云压缩(Geometry Point Cloud Compression,G-PCC)编解码框架或视频点云压缩(Video Point Cloud Compression,V-PCC)编解码框架,也可以是音视频编码标准(Audio Video Standard,AVS)专题组提供的AVS-PCC编解码框架或点云压缩参考平台(PCRM)框架。G-PCC编解码框架可用于针对第一静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。G-PCC及AVS-PCC均针对静态的稀疏型点云,其编码框架大致相同。Exemplarily, point clouds can be encoded and decoded by various types of encoding frameworks and decoding frameworks, respectively. As an example, the codec framework may be the Geometry Point Cloud Compression (G-PCC) codec framework or Video Point Cloud Compression (Video Point Cloud Compression) provided by the Moving Picture Experts Group (MPEG). , V-PCC) codec framework, or the AVS-PCC codec framework or Point Cloud Compression Reference Platform (PCRM) framework provided by the Audio Video Standard (AVS) task force. The G-PCC codec framework can be used to compress the first static point cloud and the third type of dynamically acquired point cloud, and the V-PCC codec framework can be used to compress the second type of dynamic point cloud. The G-PCC codec framework is also called point cloud codec TMC13, and the V-PCC codec framework is also called point cloud codec TMC2. Both G-PCC and AVS-PCC are aimed at static sparse point clouds, and their coding frameworks are roughly the same.
下面以G-PCC框架为例对本申请实施例可适用的编解码框架进行说明。The codec framework applicable to the embodiment of the present application will be described below by taking the G-PCC framework as an example.
图4是本申请实施例提供的编码框架的示意性框图。Fig. 4 is a schematic block diagram of a coding framework provided by an embodiment of the present application.
如图4所示,编码框架100可以从采集设备获取点云的位置信息和属性信息。点云的编码包括位置编码和属性编码。在一个实施例中,位置编码的过程包括:对原始点云进行坐标变换、量化去除重复点等预处理;构建八叉树后进行编码形成几何码流。As shown in FIG. 4 , the
如图4所示,编码器的位置编码过程可通过以下单元实现:As shown in Figure 4, the position encoding process of the encoder can be realized by the following units:
坐标变换(Tanmsform coordinates)单元101、量化和移除重复点(Quantize and remove points)单元102、八叉树分析(Analyze octree)单元103、几何重建(Reconstruct geometry)单元104以及第一算术编码(Arithmetic encode)单元105。Coordinate transformation (Tanmsform coordinates)
坐标变换单元101可用于将点云中点的世界坐标变换为相对坐标。例如,点的几何坐标分别减去xyz坐标轴的最小值,相当于去直流操作,以实现将点云中的点的坐标从世界坐标变换为相对坐标。量 化和移除重复点单元102可通过量化减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标,基于此,可通过去重操作将重复的点删除;例如,具有相同量化位置和不同属性信息的多个云可通过属性变换合并到一个云中。在本申请的一些实施例中,量化和移除重复点单元102为可选的单元模块。八叉树分析单元103可利用八叉树(octree)编码方式编码量化的点的位置信息。例如,将点云按照八叉树的形式进行规则化处理,由此,点的位置可以和八叉树的位置一一对应,通过统计八叉树中有点的位置,并将其标识(flag)记为1,以进行几何编码。第一算术编码单元105可以采用熵编码方式对八叉树分析单元103输出的位置信息进行算术编码,即将八叉树分析单元103输出的位置信息利用算术编码方式生成几何码流;几何码流也可称为几何比特流(geometry bit stream)。The coordinate
下面对点云的规则化处理方法进行说明。The regularization processing method of the point cloud is described below.
由于点云在空间中无规则分布的特性,给编码过程带来挑战,因此采用递归八叉树的结构,将点云中的点规则化地表达成立方体的中心。例如如图5所示,可以将整幅点云放置在一个正方体包围盒内,此时点云中点的坐标可以表示为(x k,y k,z k),k=0,…,K-1,其中K是点云的总点数,则点云在x轴、y轴以及z轴方向上的边界值分别为: Due to the irregular distribution of point clouds in space, it brings challenges to the encoding process. Therefore, the recursive octree structure is used to express the points in the point cloud as the center of the cube in a regular way. For example, as shown in Figure 5, the entire point cloud can be placed in a cube bounding box. At this time, the coordinates of the points in the point cloud can be expressed as (x k , y k , z k ), k=0,...,K -1, where K is the total number of points in the point cloud, then the boundary values of the point cloud in the x-axis, y-axis and z-axis directions are:
x min=min(x 0,x 1,…,x K-1); x min =min(x 0 ,x 1 ,…,x K-1 );
y min=min(y 0,y 1,…,y K-1); y min =min(y 0 ,y 1 ,...,y K-1 );
z min=min(z 0,z 1,…,z K-1); z min =min(z 0 ,z 1 ,...,z K-1 );
x max=max(x 0,x 1,…,x K-1); x max = max(x 0 ,x 1 ,...,x K-1 );
y max=max(y 0,y 1,…,y K-1); y max = max(y 0 ,y 1 ,...,y K-1 );
z max=max(z 0,z 1,…,z K-1)。 z max = max(z 0 , z 1 , . . . , z K−1 ).
此外,包围盒的原点(x origin,y origin,z origin)可以计算如下: Furthermore, the origin (x origin , y origin , z origin ) of the bounding box can be calculated as follows:
x origin=int(floor(x min)); x origin = int(floor(x min ));
y origin=int(floor(y min)); y origin = int(floor(y min ));
z origin=int(floor(z min))。 z origin = int(floor(z min )).
其中,floor()表示向下取整计算或向下舍入计算。int()表示取整运算。Among them, floor() represents the calculation of rounding down or rounding down. int() means rounding operation.
基于此,编码器可以基于边界值和原点的计算公式,计算包围盒在x轴、y轴以及z轴方向上的尺寸如下:Based on this, the encoder can calculate the size of the bounding box in the x-axis, y-axis, and z-axis directions based on the calculation formula of the boundary value and the origin as follows:
BoudingBoxSize_x=int(x max-x origin)+1; BoudingBoxSize_x=int(x max -x origin )+1;
BoudingBoxSize_y=int(y max-y origin)+1; BoudingBoxSize_y=int(y max -y origin )+1;
BoudingBoxSize_z=int(z max-z origin)+1。 BoudingBoxSize_z=int(z max -z origin )+1.
如图6所示,编码器得到包围盒在x轴、y轴以及z轴方向上的尺寸后,首先对包围盒进行八叉树划分,每次得到八个子块,然后对子块中的非空块(包含点的块)进行再一次的八叉树划分,如此递归划分直到某个深度,将最终大小的非空子块称作体素(voxel),每一个voxel中包含一个或多个点,将这些点的几何位置归一化为voxel的中心点,该中心点的属性值取voxel中所有点的属性值的平均值。将点云规则化为空间中的块,有利于描述点云中点与点之前的位置关系,进而有利于设计特定的编码顺序,基于此编码器可基于确定的编码顺序编码每一个体素(voxel),即编码每一个体素所代表的点(或称“节点”)。As shown in Figure 6, after the encoder obtains the size of the bounding box in the x-axis, y-axis, and z-axis directions, it first divides the bounding box into an octree, and obtains eight sub-blocks each time. Empty blocks (blocks containing points) are divided into octrees again, so recursively divided up to a certain depth, and the non-empty sub-blocks of the final size are called voxels, and each voxel contains one or more points , normalize the geometric positions of these points to the center point of the voxel, and the attribute value of the center point is the average value of the attribute values of all points in the voxel. Regularizing the point cloud into blocks in space is beneficial to describe the positional relationship between the points in the point cloud and the previous points, and then helps to design a specific encoding order. Based on this encoder, each voxel can be encoded based on the determined encoding order ( voxel), which encodes the point (or "node") represented by each voxel.
编码器几何编码完成后对几何信息进行重建,利用重建的几何信息来对属性信息进行编码。属性编码过程包括:通过给定输入点云的位置信息的重建信息和属性信息的真实值,选择三种预测模式的一种进行点云预测,对预测后的结果进行量化,并进行算术编码形成属性码流。After the geometric encoding is completed, the encoder reconstructs the geometric information, and uses the reconstructed geometric information to encode the attribute information. The attribute coding process includes: by given the reconstruction information of the position information of the input point cloud and the real value of the attribute information, select one of the three prediction modes for point cloud prediction, quantify the predicted results, and perform arithmetic coding to form property stream.
如图4所示,编码器的属性编码过程可通过以下单元实现:As shown in Figure 4, the attribute encoding process of the encoder can be realized by the following units:
颜色空间变换(Transform colors)单元110、属性变换(Transfer attributes)单元111、区域自适应分层变换(Region Adaptive Hierarchical Transform,RAHT)单元112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114、量化(Quantize)单元115以及第二算术编码单元116。Color space transformation (Transform colors)
颜色空间变换单元110可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。属性变换单元111可用于变换点云中点的属性信息,以最小化属性失真。例如,在几何有损编码的情况下,由于几何信息在几何编码之后有所异动,因此需要属性变换单元111为几何编码后的每一个点重新分配属性值,使得重建点云和原始点云的属性误差最小。例如,所述属性信息可以是点的颜色信息。属性变换单元111可用于得到点的属性原始值,经过属性变换单元111变换得到点的属性原始值后,可选择任一种预测单元,对点云中的点进行预测。用于对点云中的点进行预测的单元可包括:RAHT 112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114中的至少一项。换言之,RAHT 112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114中的 任一项可用于对点云中点的属性信息进行预测,以得到点的属性预测值,进而可基于点的属性预测值得到点的属性信息的残差值。例如,点的属性信息的残差值可以是点的属性原始值减去点的属性预测值。量化单元115可用于量化点的属性信息的残差值。例如,若所述量化单元115和所述预测变换单元113相连,则所述量化单元115可用于量化所述预测变换单元113输出的点的属性信息的残差值。例如,对预测变换单元113输出的点的属性信息的残差值使用量化步长进行量化,以实现提升系统性能。第二算术编码单元116可使用零行程编码(Zero run length coding)对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。The color
预测变换单元113可用于获取点云的原始顺序(original order)以及基于点云的原始顺序将点云划分为细节层(level of detail,LOD),预测变换单元113获取点云的LOD后,可对LOD中点的属性信息依次进行预测,进而计算得到点的属性信息的残差值,以便后续单元基于点的属性信息的残差值进行后续的量化编码处理。对LOD中的每一个点,基于当前点所在的LOD上的邻居点搜索结果找到位于当前点之前的3个邻居点,然后利用3个邻居点中的至少一个邻居点的属性重建值对当前点进行预测,得到当前点的属性预测值;基于此,可基于当前点的属性预测值和当前点的属性原始值得到当前点的属性信息的残差值。The
预测变换单元113获取的点云的原始顺序可以是预测变换单元113对当前点云进行莫顿重排序的得到的排列顺序。编码器通过对当前点云进行重排序可得到当前点云的原始顺序,编码器得到当前点云的原始顺序后,可按照当前点云的原始顺序对点云中的点进行层的划分,以得到当前点云的LOD,进而基于LOD对点云中的点的属性信息进行预测。The original order of the point cloud acquired by the
图7至图9示出了莫顿码在二维空间中的排列顺序。Figures 7 to 9 show the arrangement order of Morton codes in two-dimensional space.
如图7所示,编码器在2*2个块形成的二维空间中可以采用“z”字形莫顿排列顺序。如图8所示,编码器在4个2*2个块形成的二维空间中可以采用“z”字形莫顿排列顺序,其中,每个2*2个块形成的二维空间中也可以采用“z”字形莫顿排列顺序,最终可以得到编码器在4*4个块形成的二维空间中采用的莫顿排列顺序。如图9所示,编码器在4个4*4个块形成的二维空间中可以采用“z”字形莫顿排列顺序,其中,每4个2*2个块形成的二维空间以及每个2*2个块形成的二维空间中也可以采用“z”字形莫顿排列顺序,最终可以得到编码器在8*8个块形成的二维空间中采用的莫顿排列顺序。As shown in FIG. 7 , the encoder can adopt a "z"-shaped Morton sequence in the two-dimensional space formed by 2*2 blocks. As shown in Figure 8, the encoder can adopt a "z"-shaped Morton arrangement sequence in the two-dimensional space formed by four 2*2 blocks, where each 2*2 block can also be formed in the two-dimensional space By adopting the "z"-shaped Morton arrangement order, the Morton arrangement order adopted by the encoder in the two-dimensional space formed by 4*4 blocks can be finally obtained. As shown in Figure 9, the encoder can adopt a "z"-shaped Morton arrangement sequence in the two-dimensional space formed by four 4*4 blocks, wherein, each two-dimensional space formed by four 2*2 blocks and each In the two-dimensional space formed by 2*2 blocks, a "z"-shaped Morton arrangement order can also be used, and finally the Morton arrangement order adopted by the encoder in the two-dimensional space formed by 8*8 blocks can be obtained.
图10示出了莫顿码在三维空间中的排列顺序。Fig. 10 shows the arrangement order of Morton codes in three-dimensional space.
如图10所示,莫顿排列顺序不仅适用于二维空间,也可以将其扩展到三维空间中,例如图10中展示了16个点,每个“z”字内部,每个“z”与“z”之间的莫顿排列顺序都是先沿x轴方向编码,再沿y轴,最后沿z轴。As shown in Figure 10, the Morton arrangement order is not only applicable to two-dimensional space, but also can be extended to three-dimensional space. For example, Figure 10 shows 16 points, each "z" inside, each "z" The Morton arrangement sequence between "z" and "z" is first coded along the x-axis, then along the y-axis, and finally along the z-axis.
LOD的生成过程包括:根据点云中点的位置信息,获取点与点之间的欧式距离;根据欧式距离,将点分为不同的LOD层。在一个实施例中,可以将欧式距离进行排序后,将不同范围的欧式距离划分为不同的LOD层。例如,可以随机挑选一个点,作为第一LOD层。然后计算剩余点与该点的欧式距离,并将欧式距离符合第一阈值要求的点,归为第二LOD层。获取第二LOD层中点的质心,计算除第一、第二LOD层以外的点与该质心的欧式距离,并将欧式距离符合第二阈值的点,归为第三LOD层。以此类推,将所有的点都归到LOD层中。通过调整欧式距离的阈值,可以使得每层LOD的点的数量是递增的。应理解,LOD层划分的方式还可以采用其它方式,本申请对此不进行限制。需要说明的是,可以直接将点云划分为一个或多个LOD层,也可以先将点云划分为多个点云切块(slice),再将每一个点云切块划分为一个或多个LOD层。例如,可将点云划分为多个点云切块,每个点云切块的点的个数可以在55万-110万之间。每个点云切块可看成单独的点云。每个点云切块又可以划分为多个LOD层,每个LOD层包括多个点。在一个实施例中,可根据点与点之间的欧式距离,进行LOD层的划分。The generation process of LOD includes: according to the location information of the points in the point cloud, the Euclidean distance between the points is obtained; according to the Euclidean distance, the points are divided into different LOD layers. In one embodiment, after sorting the Euclidean distances, the Euclidean distances in different ranges can be divided into different LOD layers. For example, a point can be randomly selected as the first LOD layer. Then calculate the Euclidean distance between the remaining points and this point, and classify the points whose Euclidean distance meets the first threshold requirement as the second LOD layer. Obtain the centroid of the point in the second LOD layer, calculate the Euclidean distance between points other than the first and second LOD layers and the centroid, and classify the points whose Euclidean distance meets the second threshold as the third LOD layer. By analogy, all points are classified into the LOD layer. By adjusting the threshold of the Euclidean distance, the number of points of each layer of LOD can be increased. It should be understood that other manners may also be used for dividing the LOD layer, which is not limited in this application. It should be noted that the point cloud can be directly divided into one or more LOD layers, or the point cloud can be divided into multiple point cloud slices first, and then each point cloud slice can be divided into one or more LOD layers. LOD layers. For example, the point cloud can be divided into multiple point cloud cutouts, and the number of points in each point cloud cutout can be between 550,000 and 1.1 million. Each point cloud slice can be regarded as a separate point cloud. Each point cloud slice can be divided into multiple LOD layers, and each LOD layer includes multiple points. In one embodiment, the LOD layer can be divided according to the Euclidean distance between points.
图11是本申请实施例提供的LOD层的示意性框图。Fig. 11 is a schematic block diagram of an LOD layer provided by an embodiment of the present application.
如图11所示,假设点云包括按照原始顺序(original order)排列的多个点,即P0,P1,P2,P3,P4,P5,P6,P7,P8以及P9,假设可基于点与点之间的欧式距离可将点云划分为3个LOD层,即LOD0、LOD1以及LOD2。其中,LOD0可包括P0,P5,P4以及P2,LOD2可包括P1,P6以及P3,LOD3可包括P9,P8以及P7。此时,LOD0、LOD1以及LOD2可用于形成该点云的基于LOD的顺序(LOD-based order),即P0,P5,P4,P2,P1,P6,P3,P9,P8以及P7。所述基于LOD的顺序可作为该点云的编码顺序。As shown in Figure 11, it is assumed that the point cloud includes multiple points arranged in original order, namely P0, P1, P2, P3, P4, P5, P6, P7, P8, and P9, and the assumption can be based on point and point The Euclidean distance between can divide the point cloud into three LOD layers, namely LOD0, LOD1 and LOD2. Wherein, LOD0 may include P0, P5, P4, and P2, LOD2 may include P1, P6, and P3, and LOD3 may include P9, P8, and P7. At this time, LOD0, LOD1 and LOD2 can be used to form the LOD-based order (LOD-based order) of the point cloud, namely P0, P5, P4, P2, P1, P6, P3, P9, P8 and P7. The sequence based on LOD can be used as the encoding sequence of the point cloud.
示例性地,编码器在预测点云中的当前点时,基于当前点所在的LOD上的邻居点搜索结果,创建多个预测变量候选项,即预测模式(predMode)的索引的取值可以为0~3。例如,当使用预测方式对当前点的属性信息进行编码时,编码器先基于当前点所在的LOD上的邻居点搜索结果找到位于当前点之前的3个邻居点,其中索引为0的预测模式指基于3个邻居点与当前点之间的距离将3个邻居点的重建 属性值的加权平均值确定为当前点的属性预测值;索引为1的预测模式指将3个邻居点中最近邻居点的属性重建值作为当前点的属性预测值;索引为2的预测模式指将次近邻居点的属性重建值作为当前点的属性预测值;索引为3的预测模式指将3个邻居点中除最近邻居点和次近邻居点之外的邻居点的属性重建值作为当前点的属性预测值;在基于上述各种预测模式得到当前点的属性预测值的候选项后,编码器可以利用率失真优化(Rate distortion optimization,RDO)技术选择最佳的属性预测值,然后对所选的属性预测值进行算术编码。Exemplarily, when the encoder predicts the current point in the point cloud, based on the neighbor point search results on the LOD where the current point is located, multiple predictor variable candidates are created, that is, the value of the index of the prediction mode (predMode) can be 0~3. For example, when using the prediction method to encode the attribute information of the current point, the encoder first finds three neighbor points before the current point based on the neighbor point search results on the LOD where the current point is located, and the prediction mode with
进一步的,若当前点的预测模式的索引为0,则码流中不需要编码对预测模式的索引进行编码,若是通过RDO选择的预测模式的索引为1,2或3,则码流中需要对所选的预测模式的索引进行编码,即需要将所选的预测模式的索引编码到属性码流。Further, if the index of the prediction mode at the current point is 0, the code stream does not need to encode the index of the prediction mode; if the index of the prediction mode selected by RDO is 1, 2 or 3, the code stream needs Encoding the index of the selected prediction mode means that the index of the selected prediction mode needs to be encoded into the attribute code stream.
表1Table 1
如表1所示,当使用预测方式对当前点P2的属性信息进行编码时,索引为0的预测模式指基于邻居点P0、P5以及P4的距离将邻居点P0、P5以及P4的重建属性值的加权平均值确定为当前点P2的属性预测值;索引为1的预测模式指将最近邻居点P4的属性重建值作为当前点P2的属性预测值;索引为2的预测模式指将下一个邻居点P5的属性重建值作为当前点P2的属性预测值;索引为3的预测模式指将下一个邻居点P0的属性重建值作为当前点P2的属性预测值。As shown in Table 1, when using the prediction method to encode the attribute information of the current point P2, the prediction mode with an index of 0 refers to reconstructing the attribute values of the neighbor points P0, P5 and P4 based on the distances of the neighbor points P0, P5 and P4 The weighted average value of is determined as the attribute prediction value of the current point P2; the prediction mode with
下面对RDO技术进行示例性说明。The RDO technology is described as an example below.
编码器先对当前点的至少一个邻居点计算其属性的最大差异maxDiff,将maxDiff与设定的阈值进行比较,如果小于设定的阈值则使用邻居点属性值加权平均的预测模式;否则对该点使用RDO技术选择最优预测模式。具体地,编码器计算当前点的至少一个邻居点的属性最大差异maxDiff,例如首先计算当前点的至少一个邻居点在R分量上的最大差异,即max(R1,R2,R3)-min(R1,R2,R3);类似的,编码器计算当前点的至少一个邻居点在G以及B分量上的最大差异,即max(G1,G2,G3)-min(G1,G2,G3)以及max(B1,B2,B3)-min(B1,B2,B3),然后选择R、G、B分量中的最大差异值作为maxDiff,即maxDiff=max(max(R1,R2,R3)-min(R1,R2,R3),max(G1,G2,G3)-min(G1,G2,G3),max(B1,B2,B3)-min(B1,B2,B3));编码器将得到的maxDiff与设定的阈值比较,若小于设定的阈值则当前点的预测模式设为0,即predMode=0;若大于或等于设定的阈值,则编码器对当前点可以使用RDO技术确定当前点使用的预测模式。对于RDO技术,编码器可以对当前点的每种预测模式计算得到对应的率失真代价,然后选取率失真代价最小的预测模式,即最优预测模式作为当前点的属性预测模式。The encoder first calculates the maximum difference maxDiff of the attributes of at least one neighbor point of the current point, and compares maxDiff with the set threshold. If it is less than the set threshold, the prediction mode of the weighted average of the attribute values of the neighbor points is used; otherwise, the The point uses the RDO technique to select the optimal forecasting mode. Specifically, the encoder calculates the maximum attribute difference maxDiff of at least one neighbor point of the current point, for example, first calculates the maximum difference of at least one neighbor point of the current point on the R component, that is, max(R1,R2,R3)-min(R1 , R2, R3); similarly, the encoder calculates the maximum difference between at least one neighbor point of the current point on the G and B components, that is, max(G1,G2,G3)-min(G1,G2,G3) and max( B1,B2,B3)-min(B1,B2,B3), and then select the maximum difference value in the R, G, and B components as maxDiff, that is, maxDiff=max(max(R1,R2,R3)-min(R1, R2,R3),max(G1,G2,G3)-min(G1,G2,G3),max(B1,B2,B3)-min(B1,B2,B3)); the encoder will get the maxDiff and set Compared with the specified threshold, if it is less than the set threshold, the prediction mode of the current point is set to 0, that is, predMode=0; if it is greater than or equal to the set threshold, the encoder can use RDO technology to determine the current point. predictive mode. For RDO technology, the encoder can calculate the corresponding rate-distortion cost for each prediction mode of the current point, and then select the prediction mode with the smallest rate-distortion cost, that is, the optimal prediction mode as the attribute prediction mode of the current point.
示例性地,可通过以下公式计算索引为1、2或3的预测模式的率失真代价:Exemplarily, the rate-distortion cost of the prediction mode whose index is 1, 2 or 3 can be calculated by the following formula:
J indx_i=D indx_i+λ×R indx_i; J indx_i = D indx_i + λ×R indx_i ;
其中,其中,J indx_i表示当前点采用索引为i的预测模式时的率失真代价,D为attrResidualQuant三个分量的和,即D=attrResidualQuant[0]+attrResidualQuant[1]+attrResidualQuant[2]。λ根据所述当前点的量化参数确定,R indx_i表示当前点采用索引为i的预测模式时得到的量化残差值在码流中所需的比特数。 Among them, Jindx_i represents the rate-distortion cost when the current point adopts the prediction mode with index i, and D is the sum of the three components of attrResidualQuant, that is, D=attrResidualQuant[0]+attrResidualQuant[1]+attrResidualQuant[2]. λ is determined according to the quantization parameter of the current point, and R indx_i represents the number of bits required in the code stream for the quantized residual value obtained when the current point adopts the prediction mode with index i.
示例性地,编码器确定出当前点使用的预测模式后,可基于确定的预测模式确定当前点的属性预测值attrPred,再利用当前点的属性原始值attrValue与当前点的属性预测值attrPred相减并对其结果进行量化,以得到当前点的量化残差值attrResidualQuant。例如编码器可通过以下公式确定当前点的量化残差值:Exemplarily, after the encoder determines the prediction mode used by the current point, it can determine the attribute prediction value attrPred of the current point based on the determined prediction mode, and then use the original attribute value attrValue of the current point to subtract the attribute prediction value attrPred of the current point And quantize the result to obtain the quantized residual value attrResidualQuant of the current point. For example, the encoder can determine the quantization residual value of the current point by the following formula:
attrResidualQuant=(attrValue-attrPred)/Qstep;attrResidualQuant=(attrValue-attrPred)/Qstep;
其中,attrResidualQuant表示当前点的量化残差值,attrPred表示当前点的属性预测值,attrValue表示当前点的属性原始值,Qstep表示量化步长。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。Among them, attrResidualQuant indicates the quantization residual value of the current point, attrPred indicates the attribute prediction value of the current point, attrValue indicates the original value of the attribute of the current point, and Qstep indicates the quantization step size. Among them, Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
示例性地,当前点的属性重建值可以作为后续点的近邻候选项,并利用当前点的重建值对后续点的属性信息进行预测。编码器可通过以下公式基于所述第一量化残差值确定的所述当前点的属性重建值:Exemplarily, the attribute reconstruction value of the current point can be used as a neighbor candidate of the subsequent point, and the attribute information of the subsequent point is predicted by using the reconstruction value of the current point. The encoder may reconstruct a value based on the property of the current point determined by the first quantization residual value through the following formula:
Recon=attrResidualQuant×Qstep+attrPred;Recon=attrResidualQuant×Qstep+attrPred;
其中,Recon表示基于当前点的量化残差值确定的所述当前点的属性重建值,attrResidualQuant表示当前点的量化残差值,Qstep表示量化步长,attrPred表示当前点的属性预测值。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。Among them, Recon represents the attribute reconstruction value of the current point determined based on the quantization residual value of the current point, attrResidualQuant represents the quantization residual value of the current point, Qstep represents the quantization step size, and attrPred represents the attribute prediction value of the current point. Among them, Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
需要说明的是,本申请中,当前点的属性预测值(predictedvalue)也可称为属性信息的预测值或颜色预测值(predictedColor)。当前点的属性原始值也可称为当前点的属性信息的真实值或颜色原始值。当前点的残差值也可称为当前点的属性原始值与当前点的属性预测值的差值或也可称为当前点的颜色残差值(residualColor)。当前点的属性重建值(reconstructedvalue)也可称为当前点的属性的重建值或颜色重建值(reconstructedColor)。It should be noted that, in this application, the attribute predicted value (predicted value) of the current point may also be referred to as the predicted value of the attribute information or the color predicted value (predictedColor). The original attribute value of the current point may also be referred to as the real value or the original color value of the attribute information of the current point. The residual value of the current point may also be referred to as the difference between the original value of the attribute of the current point and the predicted value of the attribute of the current point, or may also be referred to as the color residual value (residualColor) of the current point. The reconstructed value of the attribute of the current point (reconstructed value) may also be referred to as the reconstructed value of the attribute of the current point or the reconstructed color value (reconstructedColor).
图12是本申请实施例提供的解码框架200的示意性框图。Fig. 12 is a schematic block diagram of a
解码框架200可以从编码设备获取点云的码流,通过解析码得到点云中的点的位置信息和属性信息。其中点云的解码包括位置解码和属性解码。位置解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的位置信息进行重建,以得到点的位置信息的重建信息;对点的位置信息的重建信息进行坐标变换,得到点的位置信息。点的位置信息也可称为点的几何信息。属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择三种预测模式的一种进行点云预测,得到点的属性重建值;对点的属性重建值进行颜色空间反变换,以得到解码点云。The
如图12所示,位置解码可通过以下单元实现:第一算数解码单元201、八叉树分析(synthesize octree)单元202、几何重建(Reconstruct geometry)单元203以及坐标反变化(inverse transform coordinates)单元204。属性编码可通过以下单元实现:第二算数解码单元210、反量化(inverse quantize)单元211、RAHT单元212、预测变化(predicting transform)单元213、提升变化(lifting transform)单元214以及颜色空间反变换(inverse transform colors)单元215。As shown in Figure 12, position decoding can be realized by the following units: first
需要说明的是,解压缩是压缩的逆过程,类似的,解码框架200中的各个单元的功能可参见编码框架100中相应的单元的功能。例如,解码框架200可根据点云中点与点之间的欧式距离将点云划分为多个LOD;然后,依次对LOD中点的属性信息进行解码;例如,计算零行程编码技术中零的数量(zero_cnt),以基于零的数量对残差进行解码;接着,解码框架200可基于解码出的残差值进行反量化,并基于反量化后的残差值与当前点的预测值相加得到该点云的重建值,直到解码完所有的点云。当前点将会作为后续LOD中点的最近邻居,并利用当前点的重建值对后续点的属性信息进行预测。It should be noted that decompression is an inverse process of compression. Similarly, the functions of each unit in the
下面以PCRM框架为例对本申请实施例可适用的编解码框架进行说明。The codec framework applicable to the embodiment of the present application will be described below by taking the PCRM framework as an example.
图13是本申请实施例提供的编码框架的示意性框图。Fig. 13 is a schematic block diagram of an encoding framework provided by an embodiment of the present application.
如图13所示,在编码框架中,点云的几何信息和每点所对应的属性信息是分开编码的。As shown in Figure 13, in the encoding framework, the geometric information of point cloud and the attribute information corresponding to each point are encoded separately.
在编码端的几何编码部分,对原始几何信息进行预处理,即通过坐标平移对几何信息进行坐标转换,使点云全都包含在一个包围盒(bounding box)中。然后通过坐标量化将几何信息从浮点数转化为整形,便于后续的规则化处理,由于量化取整使得一部分点的几何信息相同,此时需要决定是否移除重复点,量化和移除重复点属于预处理过程;然后,对规则化的几何信息进行几何编码,即按照广度优先遍历的顺序对包围盒进行划分(例如八叉树/四叉树/二叉树),并对每个节点的占位码进行编码。作为示例,在基于八叉树的几何码框架中,将包围盒依次划分得到子立方体,对非空的(包含点云中的点)的子立方体继续进行划分,直到划分得到的叶子结点为1x1x1的单位立方体时停止划分,以便对叶子节点中所包含的点数进行编码,最终完成几何八叉树的编码,生成二进制码流。在基于八叉树的几何解码过程中,解码端先按照广度优先遍历的顺序,通过不断解析得到每个节点的占位码,并且依次不断划分节点,直至划分得到1x1x1的单位立方体时停止划分,然后解析得到每个叶子节点中包含的点数,最终恢复或重构得到点云的几何信息。In the geometric coding part of the encoding end, the original geometric information is preprocessed, that is, the coordinate transformation of the geometric information is carried out through coordinate translation, so that all point clouds are contained in a bounding box. Then, the geometric information is converted from floating-point numbers to integers through coordinate quantization, which is convenient for subsequent regularization processing. Due to quantization and rounding, the geometric information of some points is the same. At this time, it is necessary to decide whether to remove duplicate points. Quantization and removal of duplicate points belong to Preprocessing process; then, geometrically encode the regularized geometric information, that is, divide the bounding box in the order of breadth-first traversal (such as octree/quadtree/binary tree), and place the code for each node to encode. As an example, in the octree-based geometric code framework, the bounding box is divided sequentially to obtain sub-cubes, and the sub-cubes that are not empty (including points in the point cloud) continue to be divided until the leaf nodes obtained by the division are When the unit cube of 1x1x1 is divided, the number of points contained in the leaf nodes is encoded, and finally the encoding of the geometric octree is completed to generate a binary code stream. In the geometric decoding process based on the octree, the decoding end first obtains the placeholder code of each node through continuous parsing in the order of breadth-first traversal, and divides the nodes in turn until the 1x1x1 unit cube is divided. Then analyze to get the number of points contained in each leaf node, and finally recover or reconstruct the geometric information of the point cloud.
应当理解,对点云的规则化处理方法可参考对图5和图6的说明,为避免重复,此处不再赘述。It should be understood that the method for regularizing the point cloud can refer to the descriptions of FIG. 5 and FIG. 6 , and will not be repeated here to avoid repetition.
编码器几何编码完成后对几何信息进行重建,利用重建的几何信息来对属性信息进行编码。After the geometric encoding is completed, the encoder reconstructs the geometric information, and uses the reconstructed geometric information to encode the attribute information.
在属性编码部分,首先,属性编码主要针对颜色信息和/或反射率信息进行编码。首先,编码器判断是否进行颜色空间的转换,如果处理的属性信息为颜色信息,还需要将原始颜色进行颜色空间变换,将其转变成更符合人眼视觉特性的YUV色彩空间;然后,在几何有损编码的情况下,由于几何信息在几何编码之后有所异动,因此需要为几何编码后的每一个点重新分配属性值,使得重建点云和原始点云的属性误差最小,这个过程叫做属性插值或属性重上色;接着,对预处理后属性信息进行属性编码,在属性信息编码中分为属性预测与属性变换。其中,对于属性信息编码中的属性预测,编码器可通过预测的方式得到当前点的属性预测值,并在得到对当前点的属性预测值后,可基于当前点的属性预测值得到当前点的残差值,例如残差值为当前点的属性原始值与属性预测值之间的差值。对于属性信息编码中的属性变换,编码器先对当前点的属性原始值进行小波变换以得到变换系数,然后对得到的变换系数做量化得到量化后的变换系数;进一步的,编码器通过逆量化、逆小波变换得到当前点的属性重建值;然后编码器计算当前点的属性原始值和当前点的属性重建值的差,以得到当前点的残差值。编码器得到当前 点的残差值后,可对残差值进行量化得到当前点的量化残差值,并将量化残差值输入到属性熵编码器中形成属性码流。In the attribute encoding part, firstly, the attribute encoding mainly encodes color information and/or reflectance information. First, the encoder judges whether to perform color space conversion. If the processed attribute information is color information, the original color 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 geometry In the case of lossy encoding, since the geometric information changes after geometric encoding, it is necessary to reassign attribute values for 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; then, attribute encoding is performed on the preprocessed attribute information, and attribute information encoding is divided into attribute prediction and attribute transformation. Among them, for the attribute prediction in attribute information coding, the encoder can obtain the attribute prediction value of the current point through prediction, and after obtaining the attribute prediction value of the current point, it can obtain the current point’s attribute prediction value based on the current point’s attribute prediction value. The residual value, for example, the residual value is the difference between the original value of the attribute at the current point and the predicted value of the attribute. For attribute transformation in attribute information coding, the encoder first performs wavelet transform on the original attribute value of the current point to obtain the transformation coefficient, and then quantizes the obtained transformation coefficient to obtain the quantized transformation coefficient; further, the encoder performs inverse quantization , Inverse wavelet transform to obtain the attribute reconstruction value of the current point; then the encoder calculates the difference between the original value of the attribute of the current point and the reconstruction value of the attribute of the current point to obtain the residual value of the current point. After the encoder obtains the residual value of the current point, it can quantize the residual value to obtain the quantized residual value of the current point, and input the quantized residual value into the attribute entropy encoder to form the attribute code stream.
示例性地,对于属性信息编码中的属性预测,编码器可对当前点云进行重排序以及进行属性预测。可选的,重排序的方法有莫顿重排序和希尔伯特(Hilbert)重排序。编码器通过对当前点云进行重排序可得到当前点云的编码顺序,编码器得到当前点云的编码顺序后,可按照当前点云的编码顺序对点云中的点的属性信息进行预测。Exemplarily, for attribute prediction in attribute information encoding, the encoder can reorder the current point cloud and perform attribute prediction. Optionally, the reordering methods include Morton reordering and Hilbert reordering. The encoder can obtain the encoding order of the current point cloud by reordering the current point cloud. After the encoder obtains the encoding order of the current point cloud, it can predict the attribute information of the points in the point cloud according to the encoding order of the current point cloud.
应当理解,莫顿码重排序的相关内容可参见上文图7至图10中涉及的相关内容,为避免重复,此处不再赘述。It should be understood that for the relevant content of the Morton code reordering, refer to the relevant content involved in the above-mentioned FIG. 7 to FIG. 10 , and to avoid repetition, details are not repeated here.
对于当前点云中当前点的属性预测,若当前点与编码顺序前的已编码点的几何信息相同,即为重复点,则利用重复点的属性重建值作为当前点的属性预测值。可选的,若当前点与编码顺序前的已编码点的几何信息不相同,即不为重复点,则编码器可以按照编码顺序选择前m个点作为当前点的邻居候选点,然后分别计算m个点与当前点的几何信息的曼哈顿距离,并确定距离最近的n个点作为当前点的邻居点,然后编码器可以以距离的倒数作为权重,计算n个邻居的属性的加权平均值,作为当前点的属性预测值。For the attribute prediction of the current point in the current point cloud, if the geometric information of the current point is the same as that of the encoded point before the encoding sequence, it is a duplicate point, and the attribute reconstruction value of the duplicate point is used as the attribute prediction value of the current point. Optionally, if the geometric information of the current point is not the same as that of the encoded points before the encoding order, that is, it is not a repeated point, the encoder can select the first m points as the neighbor candidate points of the current point according to the encoding order, and then calculate The Manhattan distance between m points and the geometric information of the current point, and determine the nearest n points as the neighbor points of the current point, and then the encoder can use the reciprocal of the distance as the weight to calculate the weighted average of the attributes of the n neighbors, As the predicted value of the attribute at the current point.
示例性地,编码器可以通过以下方式得到当前点的属性预测值:Exemplarily, the encoder can obtain the attribute prediction value of the current point in the following ways:
attrPred=(1/W 1×ref 1+1/W 2×ref 2+1/W 3×ref 3)/(1/W 1+1/W 2+1/W 3)。 attrPred=(1/W 1 ×ref 1 +1/W 2 ×ref 2 +1/W 3 ×ref 3 )/(1/W 1 +1/W 2 +1/W 3 ).
其中,W
1、W
2、W
3分别表示邻居点1、邻居点2、邻居点3与当前点的几何距离,ref
1、ref
2、ref
3分别表示邻居点1、邻居点2、邻居点3的属性重建值。
Among them, W 1 , W 2 , and W 3 represent the geometric distances between
示例性地,编码器可通过以下公式确定当前点的量化残差值:Exemplarily, the encoder can determine the quantization residual value of the current point through the following formula:
attrResidualQuant=(attrValue-attrPred)/Qstep;attrResidualQuant=(attrValue-attrPred)/Qstep;
其中,attrResidualQuant表示当前点的量化残差值,attrPred表示当前点的属性预测值,attrValue表示当前点的属性原始值,Qstep表示量化步长。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。Among them, attrResidualQuant indicates the quantization residual value of the current point, attrPred indicates the attribute prediction value of the current point, attrValue indicates the original value of the attribute of the current point, and Qstep indicates the quantization step size. Among them, Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
示例性地,当前点的属性重建值可以作为后续点的近邻候选项,并利用当前点的重建值对后续点的属性信息进行预测。编码器可通过以下公式基于所述第一量化残差值确定的所述当前点的属性重建值:Exemplarily, the attribute reconstruction value of the current point can be used as a neighbor candidate of the subsequent point, and the attribute information of the subsequent point is predicted by using the reconstruction value of the current point. The encoder may reconstruct a value based on the property of the current point determined by the first quantization residual value through the following formula:
Recon=attrResidualQuant×Qstep+attrPred;Recon=attrResidualQuant×Qstep+attrPred;
其中,Recon表示基于当前点的量化残差值确定的所述当前点的属性重建值,attrResidualQuant表示当前点的量化残差值,Qstep表示量化步长,attrPred表示当前点的属性预测值。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。Among them, Recon represents the attribute reconstruction value of the current point determined based on the quantization residual value of the current point, attrResidualQuant represents the quantization residual value of the current point, Qstep represents the quantization step size, and attrPred represents the attribute prediction value of the current point. Among them, Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
需要说明的是,本申请中,当前点的属性预测值(predictedvalue)也可称为属性信息的预测值或颜色预测值(predictedColor)。当前点的属性原始值也可称为当前点的属性信息的真实值或颜色原始值。当前点的残差值也可称为当前点的属性原始值与当前点的属性预测值的差值或也可称为当前点的颜色残差值(residualColor)。当前点的属性重建值(reconstructedvalue)也可称为当前点的属性的重建值或颜色重建值(reconstructedColor)。It should be noted that, in this application, the attribute predicted value (predicted value) of the current point may also be referred to as the predicted value of the attribute information or the color predicted value (predictedColor). The original attribute value of the current point may also be referred to as the real value or the original color value of the attribute information of the current point. The residual value of the current point may also be referred to as the difference between the original value of the attribute of the current point and the predicted value of the attribute of the current point, or may also be referred to as the color residual value (residualColor) of the current point. The reconstructed value of the attribute of the current point (reconstructed value) may also be referred to as the reconstructed value of the attribute of the current point or the reconstructed color value (reconstructedColor).
图14是本申请实施例提供的解码框架的示意性框图。Fig. 14 is a schematic block diagram of a decoding framework provided by an embodiment of the present application.
如图14所示,在解码端,同样采用几何和属性分别解码的方式。在几何解码部分,解码器首先对几何码流进行熵解码,得到每个点的几何信息,然后按照和几何编码相同的方式构建点云的八叉树结构,结合解码几何码流得到通过八叉树结构表达的几何信息,一方面将通过八叉树结构表达的几何信息进行坐标反量化和反平移,得到解码的几何信息,另一方面将其作为附加信息输入到属性解码器中。在属性解码部分,按照与编码端相同的方式构建莫顿顺序,先对属性码流进行熵解码,得到量化后的残差信息;然后进行反量化,得到点云残差;类似的,按照与属性编码相同的方式,获得当前待解码点的属性预测值,然后将属性预测值与残差值相加,可以恢复出当前待解码点的YUV属性值;最后,经过颜色空间反变换得到解码属性信息。As shown in Figure 14, at the decoding end, the geometry and attributes are also decoded separately. In the geometry decoding part, the decoder first performs entropy decoding on the geometry code stream to obtain the geometric information of each point, then constructs the octree structure of the point cloud in the same way as the geometry code, and combines the decoded geometry code stream to obtain The geometric information expressed by the tree structure, on the one hand, coordinate inverse quantization and inverse translation of the geometric information expressed by the octree structure, to obtain the decoded geometric information, 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 side, and the attribute code stream is entropy decoded to obtain the quantized residual information; then inverse quantization is performed to obtain the point cloud residual; similarly, according to the In the same manner as attribute encoding, the attribute prediction value of the current point to be decoded is obtained, 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 is obtained through inverse color space transformation information.
由此可知,不管针对G-PCC框架还是AVS-PCC框架,对于点云的压缩来说,编码器需要压缩其位置信息和属性信息;具体而言,编码器先通过对点云的位置信息进行八叉树编码;同时,编码器根据八叉树编码后的当前点的位置信息在已编码的点中选择出用于预测当前点的属性值的邻居点,并参考选择出的邻居点对当前点进行预测以得到当前点的属性预测值,接着基于当前点的属性预测值与当前点的属性原始值计算得到当前点的残差值,然后编码器对当前点的残差值进行量化等过程得到量化残差值,最终编码器将当前点的量化残差值以码流的形式传输到解码端;解码端通过接收并解析码流可得到当前点的量化残差值,并将量化残差值经反变换与反量化等步骤得到当前点的残差值,解码端以相同过程预测得到属性预测值,与解析码流得到的残差值叠加后得到当前点的属性重建值。It can be seen that, regardless of the G-PCC framework or the AVS-PCC framework, for point cloud compression, the encoder needs to compress its position information and attribute information; specifically, the encoder first performs Octree encoding; at the same time, the encoder selects the neighbor points used to predict the attribute value of the current point from the encoded points according to the position information of the current point encoded by the octree, and refers to the selected neighbor points for the current point Point prediction to obtain the predicted attribute value of the current point, and then calculate the residual value of the current point based on the predicted attribute value of the current point and the original value of the attribute of the current point, and then the encoder quantizes the residual value of the current point and other processes To obtain the quantized residual value, the final encoder transmits the quantized residual value of the current point to the decoder in the form of a code stream; the decoder can obtain the quantized residual value of the current point by receiving and analyzing the code stream, and the quantized residual value The residual value of the current point is obtained through steps such as inverse transformation and inverse quantization, and the decoding end uses the same process to predict the attribute prediction value, which is superimposed with the residual value obtained by parsing the code stream to obtain the attribute reconstruction value of the current point.
通常情况下,编码器参考选择出的邻居点对当前点进行预测以得到当前点的属性预测值后,需要先 利用选择出的邻居点的属性重建值对当前点的属性进行差分预测得到当前点的残差值,然后编码器对当前点的残差值进行量化编码。但是,在这种编码过程中,由于编码器针对同一点云序列中的所有点采用相同的量化参数进行量化编码,因此会导致某些点的编码效率过低或者重建质量过低,进而降低了编码器的编码性能。Usually, after the encoder predicts the current point with reference to the selected neighbor points to obtain the attribute prediction value of the current point, it needs to use the attribute reconstruction value of the selected neighbor points to perform differential prediction on the attribute of the current point to obtain the current point Then the encoder quantizes and encodes the residual value of the current point. However, in this encoding process, since the encoder uses the same quantization parameter for all points in the same point cloud sequence for quantization encoding, it will result in low encoding efficiency or low reconstruction quality for some points, thereby reducing the The encoding performance of the encoder.
有鉴于此,本申请提供了一种编码方法、编码器以及存储介质,能够提升编码器的编码性能。In view of this, the present application provides an encoding method, an encoder and a storage medium, which can improve the encoding performance of the encoder.
图15是本申请实施例提供的基于编码方法300的示意性流程图。该方法300可由编码器或编码框架执行,例如图4所示的编码框架。FIG. 15 is a schematic flowchart of an encoding-based
如图15所示,该编码方法300可包括:As shown in Figure 15, the
S310,基于当前点云的几何信息,确定所述当前点云的属性信息的编码顺序;S310. Based on the geometric information of the current point cloud, determine the encoding sequence of the attribute information of the current point cloud;
S320,基于所述编码顺序中位于待编码的当前点之前的至少一个邻居点,确定所述当前点的第一量化残差值;S320. Determine a first quantized residual value of the current point based on at least one neighbor point before the current point to be encoded in the encoding order;
S330,确定所述当前点的至少一个第二量化残差值;S330. Determine at least one second quantization residual value of the current point;
S340,根据所述第一量化残差值和所述至少一个第二量化残差值,确定第三量化残差值;S340. Determine a third quantized residual value according to the first quantized residual value and the at least one second quantized residual value;
S350,对所述第三量化残差值进行编码,得到码流。S350. Encode the third quantized residual value to obtain a code stream.
示例性地,编码器基于所述编码顺序中位于所述当前点之前的至少一个邻居点,确定出所述第一量化残差值后,可在所述第一量化残差值和所述至少一个量化残差值中选择出一个量化残差值作为所述第三量化残差值,并对所述第三量化残差值进行编码得到属性码流。可选的,所述第三量化残差值可以是所述第一量化残差值,也可以是所述至少一个第二量化残差值中的某一个量化残差值,本申请对此不作具体限定。Exemplarily, after the encoder determines the first quantized residual value based on at least one neighbor point before the current point in the encoding order, the encoder may calculate the first quantized residual value and the at least Selecting a quantized residual value from one quantized residual value as the third quantized residual value, and encoding the third quantized residual value to obtain an attribute code stream. Optionally, the third quantized residual value may be the first quantized residual value, or one of the at least one second quantized residual value, and this application does not make any Specific limits.
本申请实施例中,针对当前点确定最终编码码流的量化残差值时,本申请在考虑了基于编码顺序中位于待编码的当前点之前的至少一个邻居点确定的第一量化残差值的基础上,还引入了至少一个第二量化残差值,由于当前点采用不同的量化残差值时表示当前点的量化尺度不同;因此,编码器先根据所述第一量化残差值和所述至少一个第二量化残差值选择出第三量化残差值,再对第三量化残差值进行编码,不仅能够避免编码器针对当前点云中的所有点采用相同的量化尺度进行量化编码,还有利于为当前点云中的点选择合适的量化尺度,进而能够避免某些点的编码效率过低或者重建质量过低,提升了编码器的编码性能。In the embodiment of the present application, when determining the quantized residual value of the final coded code stream for the current point, the present application considers the first quantized residual value determined based on at least one neighbor point before the current point to be coded in the coding order On the basis of , at least one second quantized residual value is also introduced, because when the current point adopts different quantized residual values, it means that the quantization scale of the current point is different; therefore, the encoder first uses the first quantized residual value and The at least one second quantization residual value selects a third quantization residual value, and then encodes the third quantization residual value, which not only prevents the encoder from using the same quantization scale for all points in the current point cloud for quantization Encoding is also conducive to selecting an appropriate quantization scale for the points in the current point cloud, thereby avoiding low encoding efficiency or low reconstruction quality of some points, and improving the encoding performance of the encoder.
下面对编码器对所述第三量化残差值进行编码得到的属性码流进行说明。The attribute code stream obtained by encoding the third quantized residual value by the encoder will be described below.
图16是本申请实施例提供的属性码流的示意性结构图。Fig. 16 is a schematic structural diagram of an attribute code stream provided by an embodiment of the present application.
如图16所示,由于有的点云数据太庞大,因此在对点云进行编码前,可将点云划分为多个点云切块(slice),相当于,编码器在对点云进行编码之前,先将大尺度点云化成很多段小尺度点云,点云切块之间进行串行编码,也就是说,编码器编完第一个点云切块中的所有点后再编码第二个点云切块,以此类推,直至编码完所有点云切块。编码器通过对当前点云包括的所有点云切块进行编码可得到属性码流,所述属性码流可包括属性参数集合(Attribute parameter set,APS)和属性头(Attribute header,ABH)信息和负载(Payload),APS包含当前点云的基本信息和配置文件,比如细节层(level of detail,LOD)的层数,ABH信息包含点云切块的划分参数,每编码一个点云切块,编码器先编码点云切块的ABH信息,再编码点云切块的负载,其中点云切块的负载是对点的量化残差值(即当前点的第三量化残差值)进行编码得到的信息。As shown in Figure 16, because some point cloud data is too large, before encoding the point cloud, the point cloud can be divided into multiple point cloud slices (slices), which is equivalent to the encoder performing Before encoding, the large-scale point cloud is converted into many small-scale point clouds, and the point cloud slices are serially encoded, that is, the encoder encodes all the points in the first point cloud slice The second point cloud slice, and so on, until all point cloud slices are encoded. The encoder can obtain the attribute code stream by encoding all point cloud segments included in the current point cloud, and the attribute code stream can include attribute parameter set (Attribute parameter set, APS) and attribute header (Attribute header, ABH) information and Payload (Payload), APS contains the basic information and configuration files of the current point cloud, such as the number of layers of the level of detail (LOD), and the ABH information contains the division parameters of the point cloud slices. Each coded point cloud slice, The encoder first encodes the ABH information of the point cloud slice, and then encodes the load of the point cloud slice, where the load of the point cloud slice encodes the quantized residual value of the point (that is, the third quantized residual value of the current point) get the information.
图17是本申请实施例提供的属性码流中的负载的示意性结构图。Fig. 17 is a schematic structural diagram of a payload in an attribute code stream provided by an embodiment of the present application.
如图17所示,编码器可以采用采用游程编码的方案对点的量化残差值进行编码,即行程长度(run Length)参数表示统计当前点云的量化残差值连续分布为零的个数,当遇到非零的量化残差值时,会先对行程长度进行编码,其次对量化残差值(Res)进行编码,最终得到当前点云的属性码流。As shown in Figure 17, the encoder can use a run-length coding scheme to encode the quantized residual value of the point, that is, the run length (run Length) parameter indicates the number of continuously distributed quantized residual values of the current point cloud that are zero , when a non-zero quantized residual value is encountered, the length of the run will be encoded first, and then the quantized residual value (Res) will be encoded, and finally the attribute code stream of the current point cloud will be obtained.
需要注意的是,在编码量化残差值之前,可能会对当前点使用的预测模式PredMode进行编码,在对属性进行预测时,在当前点的至少一个邻居点的属性最大差异maxDiff大于或等于设定的阈值(例如3个邻居点中最近邻居点的属性与最远邻居点属性之间的误差maxDiff大于设定的阈值)时,编码器需要利用率失真算法选取当前点的预测模式PredMode(也就是表1中的索引1~3的预测模式),此时编码器还可以对当前点使用的预测模式进行编码,即编码器可以在编写量化残差值之前且在编写行程长度参数之后,对当前点使用的预测模式进行编码。当然,在当前点的至少一个邻居点的属性最大差异maxDiff小于设定的阈值时,编码器采用索引为0的预测模式对当前点的属性信息进行预测,此时编码器可以不用将当前点使用的预测模式写入码流。It should be noted that before encoding the quantized residual value, the prediction mode PredMode used by the current point may be encoded. When predicting the attribute, the maximum attribute difference maxDiff of at least one neighbor point of the current point is greater than or equal to the set When a certain threshold (for example, the error maxDiff between the attribute of the nearest neighbor point and the attribute of the farthest neighbor point among the three neighbor points is greater than the set threshold value), the encoder needs to use the rate-distortion algorithm to select the prediction mode PredMode of the current point (also is the prediction mode of
在一些实施例中,所述S330可包括:In some embodiments, the S330 may include:
基于所述第一量化残差值,确定所述至少一个第二量化残差值。Based on the first quantized residual value, the at least one second quantized residual value is determined.
示例性地,所述第一量化残差值和所述至少一个第二量化残差值成正比。Exemplarily, the first quantized residual value is directly proportional to the at least one second quantized residual value.
示例性地,所述至少一个第二量化残差中的每一个第二量化残差值小于所述第一量化残差值。Exemplarily, each second quantization residual value of the at least one second quantization residual is smaller than the first quantization residual value.
示例性地,所述至少一个第二量化残差值中的部分第二量化残差值小于所述第一量化残差值,所述至少一个第二量化残差值中的另一部分第二量化残差值大于所述第一量化残差值。Exemplarily, part of the at least one second quantized residual value is smaller than the first quantized residual value, and another part of the at least one second quantized residual value is second quantized The residual value is greater than the first quantized residual value.
应当理解,本申请对基于所述第一量化残差值,确定所述至少一个第二量化残差值的具体实现方式不作限定。例如,可基于某一函数关系或映射关系,基于所述第一量化残差值确定所述至少一个第二量化残差值。It should be understood that, the present application does not limit the specific implementation manner of determining the at least one second quantization residual value based on the first quantization residual value. For example, the at least one second quantized residual value may be determined based on the first quantized residual value based on a certain functional relationship or mapping relationship.
在一些实施例中,所述S330可包括:In some embodiments, the S330 may include:
将小于所述第一量化残差值的整数,确定为所述至少一个第二量化残差值。An integer smaller than the first quantized residual value is determined as the at least one second quantized residual value.
示例性地,所述第一量化残差值的取值为N时,所述至少一个第二量化残差值的数量为N-1个,且所述至少一个第二量化残差值的取值分别为:0,…,N-1。其中,N为正整数。Exemplarily, when the value of the first quantized residual value is N, the number of the at least one second quantized residual value is N-1, and the value of the at least one second quantized residual value is The values are: 0,...,N-1. Wherein, N is a positive integer.
在一些实施例中,所述S330可包括:In some embodiments, the S330 may include:
将缺省残差值,确定为所述至少一个第二量化残差值。A default residual value, is determined as the at least one second quantized residual value.
示例性地,所述缺省残差值也可称为默认残差值。Exemplarily, the default residual value may also be referred to as a default residual value.
示例性地,所述缺省残差值可以由协议约定。其中,所述协议可以是各种编码准则或解码标准协议。Exemplarily, the default residual value may be stipulated by an agreement. Wherein, the protocol may be various coding standards or decoding standard protocols.
示例性地,假设所述确实残差值设为0。Exemplarily, it is assumed that the exact residual value is set to 0.
在一些实施例中,所述S340可包括:In some embodiments, the S340 may include:
计算所述第一量化残差值的率失真代价和所述第二量化残差值的率失真代价;calculating a rate-distortion cost for the first quantized residual value and a rate-distortion cost for the second quantized residual value;
将所述第一量化残差值的率失真代价和所述第二量化残差值的率失真代价中的率失真代价最小的量化残差值,确定为所述第三量化残差值。A quantized residual value having the smallest rate-distortion cost among the rate-distortion cost of the first quantized residual value and the rate-distortion cost of the second quantized residual value is determined as the third quantized residual value.
示例性地,编码器计算所述第一量化残差值的率失真代价和每一个第二量化残差值的率失真代价,并将所述第一量化残差值和所述至少一个第二量化残差值中率失真代价最小的量化残差值,确定为所述第三量化残差值。例如,所述第一量化残差值的率失真代价小于所述至少一个第二量化残差值中的每一个第二量化残差值的率失真代价时,将所述第一量化残差值确定为所述第三量化残差值,所述至少一个第二量化残差值中的率失真代价最小的第二量化残差值小于所述第一量化残差值时,将率失真代价最小的第二量化残差值确定为所述第一量化残差值。Exemplarily, the encoder calculates the rate-distortion cost of the first quantization residual value and the rate-distortion cost of each second quantization residual value, and combines the first quantization residual value and the at least one second quantization residual value A quantized residual value with the smallest rate-distortion cost among the quantized residual values is determined as the third quantized residual value. For example, when the rate-distortion cost of the first quantization residual value is smaller than the rate-distortion cost of each second quantization residual value in the at least one second quantization residual value, the first quantization residual value Determined as the third quantized residual value, when the second quantized residual value with the smallest rate-distortion cost in the at least one second quantized residual value is smaller than the first quantized residual value, the rate-distortion cost is minimized The second quantized residual value of is determined as the first quantized residual value.
在一些实施例中,所述第一量化残差值的率失真代价的计算方式和所述第二量化残差值的率失真代价的计算方式相同。In some embodiments, the rate-distortion cost of the first quantized residual value is calculated in the same manner as the rate-distortion cost of the second quantized residual value.
当然,在其他可替代实施例中,所述第一量化残差值的率失真代价的计算方式和所述第二量化残差值的率失真代价的计算方式可以不相同,本申请对此不作具体限定。Of course, in other alternative embodiments, the calculation method of the rate-distortion cost of the first quantization residual value and the calculation mode of the rate-distortion cost of the second quantization residual value may be different, and this application does not make any Specific limits.
在一些实施例中,按照以下公式计算所述第一量化残差值或所述第二量化残差值的率失真代价:In some embodiments, the rate-distortion cost of the first quantization residual value or the second quantization residual value is calculated according to the following formula:
J 1=D 1+λ×R 1; J 1 =D 1 +λ×R 1 ;
其中,J 1表示所述第一量化残差值的率失真代价时,D 1表示所述当前点的属性原始值与基于所述第一量化残差值确定的所述当前点的属性重建值之间的误差,λ根据所述当前点的量化参数确定,R 1表示所述第一量化残差值在所述码流中所需的比特数;或者,J 1表示所述第二量化残差值的率失真代价时,D 1表示所述当前点的属性原始值与基于所述第二量化残差值确定的所述当前点的属性重建值之间的误差,λ根据所述当前点的量化参数确定,R 1表示所述第二量化残差值在所述码流中所需的比特数。 Wherein, when J 1 represents the rate-distortion cost of the first quantized residual value, D 1 represents the original attribute value of the current point and the reconstructed attribute value of the current point determined based on the first quantized residual value The error between , λ is determined according to the quantization parameter of the current point, R 1 represents the number of bits required by the first quantization residual value in the code stream; or, J 1 represents the second quantization residual value When the rate-distortion cost of the difference, D 1 represents the error between the original attribute value of the current point and the attribute reconstruction value of the current point determined based on the second quantized residual value, and λ is based on the current point The quantization parameter is determined, and R 1 represents the number of bits required by the second quantization residual value in the code stream.
示例性地,D可以通过以下公式得到:Exemplarily, D can be obtained by the following formula:
D 1=|attrValue-Recon1|; D 1 = |attrValue-Recon1|;
其中,attrValue表示当前点的属性原始值,Recon1表示基于所述第一量化残差值确定的所述当前点的属性重建值。Wherein, attrValue represents the original value of the attribute of the current point, and Recon1 represents the reconstructed value of the attribute of the current point determined based on the first quantized residual value.
示例性地,λ可以是经过大量的测试得到的参数,可选的,λ的测试范围大概为0.0~4.0,也即是说,λ的取值范围可以0.0~4.0。当然,λ的测试范围也可以是其他数值范围,本申请对此不作具体限定。例如,λ可以是在当前点的量化步长或量化参数一定的情况下测试得到的参数,例如,当前点的量化步长为0.1。换言之,λ和量化参数或量化步长也形成一定的函数关系,比如λ=QP×0.1。或者说,不同的QP可以对应不同取值的λ,例如点云标准测试环境C1(几何近有损属性无损的测试条件)对应6个QP(48,40,32,24,16,8),此时这6个QP中的每一个QP可对应一个取值的λ。再如点云标准测试环境CY(几何有损属性近无损的测试条件)对应5个QP(10,16,22,28,34),此时这5个QP中的每一个QP可对应一个取值的λ。当然,上述QP的取值仅为本申请的示例,不应理解为对本申请的限制。Exemplarily, λ may be a parameter obtained through a large number of tests. Optionally, the test range of λ is about 0.0-4.0, that is to say, the value range of λ may be 0.0-4.0. Of course, the test range of λ may also be other numerical ranges, which is not specifically limited in this application. For example, λ may be a parameter obtained by testing when the quantization step size or quantization parameter of the current point is fixed, for example, the quantization step size of the current point is 0.1. In other words, λ and the quantization parameter or quantization step size also form a certain functional relationship, such as λ=QP×0.1. In other words, different QPs can correspond to different values of λ. For example, point cloud standard test environment C1 (test conditions with near-destructive geometric properties and non-destructive properties) corresponds to 6 QPs (48, 40, 32, 24, 16, 8), At this time, each of the six QPs may correspond to a value of λ. Another example is that the point cloud standard test environment CY (test conditions with geometric lossy properties and near lossless properties) corresponds to 5 QPs (10, 16, 22, 28, 34). At this time, each QP in the 5 QPs can correspond to a Value of λ. Certainly, the value of the above QP is only an example of the present application, and should not be construed as a limitation to the present application.
本实施例中,在计算所述第一量化残差值的率失真代价时,将D设计为用于表示所述当前点的属性原始值与基于所述第一量化残差值确定的所述当前点的属性重建值之间的误差,使得J能够考虑到基于所述第一量化残差值确定的所述当前点的属性重建值的重建质量,将R设计为用于表示所述第一量 化残差值在所述码流中所需的比特数,使得J能够考虑到所述当前点的码率,即使得J能够考虑到在所述第一量化残差值对应的量化尺度下的编码效率,也即是说,本申请通过D和R的设计,能够使得所述第一量化残差值的率失真代价同时考虑到在所述第一量化残差值对应的量化尺度下的重建质量和编码效率,进而保证编码性能。此外,通过引入λ,相当于,有利于在所述当前点云中的所有点采用相同的量化步长的情况下,结合D和R的设计,不仅能够使得所述第一量化残差值和所述第二量化残差值在不同的量化尺度下,还能够使得所述第一量化残差值的率失真代价和所述第二量化残差值的率失真代价同时考虑到所述当前点的重建质量以及编码效率,使得当前点选择的最终量化残差值为量化尺度最佳的第三量化残差值,避免了当前点的编码效率过低或者重建质量过低,进而,能够提升编码器的编码性能。In this embodiment, when calculating the rate-distortion cost of the first quantized residual value, D is designed to represent the original value of the attribute at the current point and the value determined based on the first quantized residual value. The error between the attribute reconstruction values of the current point, so that J can take into account the reconstruction quality of the attribute reconstruction value of the current point determined based on the first quantized residual value, and R is designed to represent the first The number of bits required by the quantization residual value in the code stream, so that J can take into account the code rate at the current point, that is, make J can take into account the quantization scale corresponding to the first quantization residual value Coding efficiency, that is to say, through the design of D and R, this application can make the rate-distortion cost of the first quantization residual value take into account the reconstruction at the quantization scale corresponding to the first quantization residual value Quality and coding efficiency, thus ensuring coding performance. In addition, by introducing λ, it is equivalent to the case that all points in the current point cloud adopt the same quantization step size, combined with the design of D and R, not only can make the first quantization residual value and Under different quantization scales, the second quantized residual value can also make the rate-distortion cost of the first quantized residual value and the rate-distortion cost of the second quantized residual value take into account the current point The reconstruction quality and coding efficiency of the current point make the final quantized residual value selected at the current point the third quantized residual value with the best quantization scale, which avoids the low coding efficiency or low reconstruction quality of the current point, and can improve the coding Encoding performance of the device.
示例性地,当前点的属性重建值可以作为后续点的近邻候选项,并利用当前点的重建值对后续点的属性信息进行预测。Exemplarily, the attribute reconstruction value of the current point can be used as a neighbor candidate of the subsequent point, and the attribute information of the subsequent point is predicted by using the reconstruction value of the current point.
示例性地,编码器可通过以下公式基于所述第一量化残差值确定的所述当前点的属性重建值:Exemplarily, the encoder may use the following formula to reconstruct the attribute value of the current point determined based on the first quantized residual value:
Recon1=attrResidualQuant1×Qstep+attrPred;Recon1=attrResidualQuant1×Qstep+attrPred;
其中,Recon1表示基于所述第一量化残差值确定的所述当前点的属性重建值,attrResidualQuant1表示所述第一量化残差值,Qstep表示量化步长,attrPred表示当前点的属性预测值。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。Wherein, Recon1 represents the attribute reconstruction value of the current point determined based on the first quantized residual value, attrResidualQuant1 represents the first quantized residual value, Qstep represents the quantization step size, and attrPred represents the predicted attribute value of the current point. Among them, Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
在一些实施例中,λ根据所述当前点的量化参数以及以下中的至少一项确定:In some embodiments, λ is determined according to the quantization parameter of the current point and at least one of the following:
所述当前点云的序列类型、所述当前点的当前分量。The sequence type of the current point cloud and the current component of the current point.
示例性地,对于不同的序列类型,其对应的λ的取值可以不同。可选的,λ可以是经过大量的测试得到的参数,例如,λ可以是在所述当前点云的序列类型下测试得到的参数;换言之,可以利用不同的序列类型的点云,通过测试或训练的方式得到其对应的λ的取值。Exemplarily, for different sequence types, the corresponding value of λ may be different. Optionally, λ can be a parameter obtained through a large number of tests, for example, λ can be a parameter obtained by testing under the sequence type of the current point cloud; in other words, point clouds of different sequence types can be used, through testing or The training method obtains its corresponding value of λ.
示例性地,对于所述当前点的不同分量,其对应的λ的取值可以不同。可选的,λ可以是经过大量的测试得到的参数,例如,λ可以是在所述当前点的当前分量下测试得到的参数。换言之,可以利用点云中点的不同分量,通过测试或训练的方式得到其对应的λ的取值。可选的,所述当前分量可以是所述当前点待编码的分量。例如,V分量、U分量以及Y分量对应的λ的取值可以相同,也可以不同。再如,例如,R分量、G分量以及B分量对应的λ的取值可以相同,也可以不同。可选的,本申请提供的编码方案可以仅适用于当前点的部分分量,也可以适用于当前点的所有分量,本申请对此不再做具体限定。Exemplarily, for different components of the current point, corresponding values of λ may be different. Optionally, λ may be a parameter obtained through a large number of tests, for example, λ may be a parameter obtained by testing under the current component of the current point. In other words, different components of points in the point cloud can be used to obtain the corresponding value of λ through testing or training. Optionally, the current component may be a component to be encoded at the current point. For example, the value of λ corresponding to the V component, the U component, and the Y component may be the same or different. For another example, for example, the value of λ corresponding to the R component, the G component, and the B component may be the same or different. Optionally, the encoding scheme provided in this application may only be applicable to some components of the current point, or may be applicable to all components of the current point, which is not specifically limited in this application.
下面对结合G-PCC框架对确定所述当前点的第一量化残差值的方案进行说明。The scheme of determining the first quantized residual value of the current point in combination with the G-PCC framework will be described below.
在一些实施例中,所述S320可包括:In some embodiments, the S320 may include:
基于所述编码顺序中位于待编码的当前点之前的至少一个邻居点,确定所述当前点的采用的预测模式;Based on at least one neighbor point before the current point to be encoded in the encoding order, determine the prediction mode adopted by the current point;
基于所述当前点采用的预测模式,确定所述当前点的第一量化残差值。Based on the prediction mode adopted by the current point, determine the first quantization residual value of the current point.
示例性地,编码器先确定当前点采用的预测模式,再基于当前点采用的预测模式对当前点的属性值进行预测,得到当前点的属性预测值,并基于当前点的属性预测值和属性原始值,得到当前点的第一量化残差值。Exemplarily, the encoder first determines the prediction mode adopted by the current point, and then predicts the attribute value of the current point based on the prediction mode adopted by the current point to obtain the predicted value of the attribute of the current point, and based on the predicted value of the attribute of the current point and the attribute Original value, get the first quantized residual value of the current point.
在一些实施例中,基于所述至少一个邻居点在各个分量上的差异,确定所述至少一个邻居点的属性差异;若所述至少一个邻居点的属性差异小于第一阈值,则将第一预测模式确定为所述当前点采用的预测模式;所述第一预测模式指基于所述至少一个邻居点的加权平均值对所述当前点的属性值进行预测的预测模式。In some embodiments, the attribute difference of the at least one neighbor point is determined based on the difference in each component of the at least one neighbor point; if the attribute difference of the at least one neighbor point is smaller than a first threshold, the first The prediction mode is determined as the prediction mode adopted by the current point; the first prediction mode refers to a prediction mode for predicting the attribute value of the current point based on the weighted average value of the at least one neighbor point.
示例性地,编码器在预测点云中的当前点时,基于当前点所在的LOD上的邻居点搜索结果,创建多个预测模式候选项。例如,当使用预测方式对当前点的属性信息进行编码时,编码器先基于当前点所在的LOD上的邻居点搜索结果找到位于当前点之前的3个邻居点,创建4个预测模式候选项,即索引的取值为0~3的预测模式(predMode)。其中,索引为0的预测模式指基于3个邻居点与当前点之间的距离将3个邻居点的重建属性值的加权平均值确定为当前点的属性预测值;索引为1的预测模式指将3个邻居点中最近邻居点的属性重建值作为当前点的属性预测值;索引为2的预测模式指将次近邻居点的属性重建值作为当前点的属性预测值;索引为3的预测模式指将3个邻居点中除最近邻居点和次近邻居点之外的邻居点的属性重建值作为当前点的属性预测值。编码器得到各个预测模式后,可基于各种预测模式得到当前点的属性预测值的候选项,并利用率失真优化(Rate distortion optimization,RDO)技术选择最佳的属性预测值,然后对所选的属性预测值进行算术编码。例如,编码器确定当前点使用的预测模式时,可以先对当前点的至少一个邻居点计算其属性的最大差异maxDiff,再将maxDiff与设定的阈值进行比较,如果小于设定的阈值(即所述第一阈值)则使用索引为0的预测模式(即所述第一预测模 式)。Exemplarily, when predicting the current point in the point cloud, the encoder creates multiple prediction mode candidates based on the search results of neighbor points on the LOD where the current point is located. For example, when using the prediction method to encode the attribute information of the current point, the encoder first finds 3 neighbor points before the current point based on the neighbor point search results on the LOD where the current point is located, and creates 4 prediction mode candidates, That is, the prediction mode (predMode) whose index value is 0 to 3. Among them, the prediction mode with an index of 0 refers to determining the weighted average of the reconstructed attribute values of the three neighbor points as the attribute prediction value of the current point based on the distance between the three neighbor points and the current point; the prediction mode with an index of 1 refers to The attribute reconstruction value of the nearest neighbor point among the three neighbor points is used as the attribute prediction value of the current point; the prediction mode with
在一些实施例中,将所述至少一个邻居点在各个分量上的差异中的最大差异,确定所述至少一个邻居点的属性差异。In some embodiments, the attribute difference of the at least one neighbor point is determined by taking the maximum difference among the differences of the at least one neighbor point on each component.
示例性地,编码器计算当前点的至少一个邻居点的属性的最大差异maxDiff时,可以先计算当前点的至少一个邻居点在各个分量上的最大差异;例如,当前点的至少一个邻居点在R分量上的最大差异为max(R1,R2,R3)-min(R1,R2,R3),在G以及B分量上的最大差异分别为max(G1,G2,G3)-min(G1,G2,G3)以及max(B1,B2,B3)-min(B1,B2,B3);然后,选择在R、G、B分量中的最大差异作为maxDiff,即maxDiff=max(max(R1,R2,R3)-min(R1,R2,R3),max(G1,G2,G3)-min(G1,G2,G3),max(B1,B2,B3)-min(B1,B2,B3));编码器得到maxDiff后,可基于maxDiff与设定的阈值(即所述第一阈值)比较,若小于设定的阈值则当前点的预测模式的索引为0,即predMode=0。Exemplarily, when the encoder calculates the maximum difference maxDiff of the attributes of at least one neighbor point of the current point, it may first calculate the maximum difference of at least one neighbor point of the current point on each component; for example, at least one neighbor point of the current point is in The maximum difference on the R component is max(R1,R2,R3)-min(R1,R2,R3), and the maximum difference on the G and B components is max(G1,G2,G3)-min(G1,G2) ,G3) and max(B1,B2,B3)-min(B1,B2,B3); Then, select the maximum difference in the R, G, and B components as maxDiff, that is, maxDiff=max(max(R1,R2, R3)-min(R1,R2,R3),max(G1,G2,G3)-min(G1,G2,G3),max(B1,B2,B3)-min(B1,B2,B3)); encoding After obtaining maxDiff, the device can compare maxDiff with a set threshold (ie, the first threshold), and if it is less than the set threshold, the index of the prediction mode at the current point is 0, that is, predMode=0.
在一些实施例中,所述方法300还可包括:In some embodiments, the
若所述至少一个邻居点的属性差异大于或等于所述第一阈值,则将至少一个第二预测模式中率失真代价最小的预测模式,确定为所述当前点采用的预测模式;所述至少一个第二预测模式和所述至少一个邻居点一一对应,所述第二预测模式指将所述至少一个邻居点中与所述第二预测模式对应的邻居点的属性重建值作为所述当前点的属性预测值的预测模式;If the attribute difference of the at least one neighbor point is greater than or equal to the first threshold, determine the prediction mode with the smallest rate-distortion cost in the at least one second prediction mode as the prediction mode adopted by the current point; the at least A second prediction mode has a one-to-one correspondence with the at least one neighbor point, and the second prediction mode refers to using the attribute reconstruction value of the neighbor point corresponding to the second prediction mode among the at least one neighbor point as the current The prediction mode of the predicted value of the attribute of the point;
将所述当前点采用的预测模式写入所述码流。Write the prediction mode adopted by the current point into the code stream.
示例性地,编码器先对当前点的至少一个邻居点计算其属性的最大差异maxDiff,将maxDiff与设定的阈值进行比较,如果小于设定的阈值则使用邻居点属性值加权平均的预测模式;否则对当前点使用RDO技术选择最优预测模式。具体地,编码器计算当前点的至少一个邻居点的属性的最大差异maxDiff时,可以先计算当前点的至少一个邻居点在各个分量上的最大差异;例如,当前点的至少一个邻居点在R分量上的最大差异为max(R1,R2,R3)-min(R1,R2,R3),当前点的至少一个邻居点在G以及B分量上的最大差异分别为max(G1,G2,G3)-min(G1,G2,G3)以及max(B1,B2,B3)-min(B1,B2,B3);然后,编码器可以选择在R、G、B分量中的最大差异作为maxDiff,即maxDiff=max(max(R1,R2,R3)-min(R1,R2,R3),max(G1,G2,G3)-min(G1,G2,G3),max(B1,B2,B3)-min(B1,B2,B3));编码器得到maxDiff后,可基于maxDiff与设定的阈值(即所述第一阈值)比较,若小于设定的阈值则当前点的预测模式的索引为0,即predMode=0;若大于或等于设定的阈值,则编码器对当前点可以使用RDO技术确定当前点使用的预测模式的索引。对于RDO技术,编码器可以对当前点的每种预测模式计算得到对应的率失真代价,然后选取率失真代价最小的预测模式,即最优预测模式作为当前点的属性预测模式。Exemplarily, the encoder first calculates the maximum difference maxDiff of its attributes for at least one neighbor point of the current point, compares maxDiff with the set threshold, and if it is less than the set threshold, uses the prediction mode of the weighted average of the attribute values of the neighbor points ; Otherwise, use the RDO technique to select the optimal prediction mode for the current point. Specifically, when the encoder calculates the maximum difference maxDiff of the attributes of at least one neighbor point of the current point, it can first calculate the maximum difference of at least one neighbor point of the current point on each component; for example, at least one neighbor point of the current point is in R The maximum difference on the component is max(R1, R2, R3)-min(R1, R2, R3), and the maximum difference on the G and B components of at least one neighbor point of the current point is max(G1, G2, G3) -min(G1,G2,G3) and max(B1,B2,B3)-min(B1,B2,B3); then, the encoder can choose the maximum difference in R, G, B components as maxDiff, ie maxDiff =max(max(R1,R2,R3)-min(R1,R2,R3),max(G1,G2,G3)-min(G1,G2,G3),max(B1,B2,B3)-min( B1, B2, B3)); after the encoder obtains maxDiff, it can compare maxDiff with the set threshold (ie, the first threshold), and if it is less than the set threshold, the index of the prediction mode at the current point is 0, that is predMode=0; if it is greater than or equal to the set threshold, the encoder can use the RDO technology to determine the index of the prediction mode used by the current point for the current point. For RDO technology, the encoder can calculate the corresponding rate-distortion cost for each prediction mode of the current point, and then select the prediction mode with the smallest rate-distortion cost, that is, the optimal prediction mode as the attribute prediction mode of the current point.
在一些实施例中,所述方法300还可包括:In some embodiments, the
基于所述第二预测模式对应的邻居点在各个分量上的属性重建值,确定所述当前点在各个分量上的量化残差值;Determine the quantized residual value of the current point on each component based on the attribute reconstruction value on each component of the neighbor point corresponding to the second prediction mode;
将所述当前点在各个分量上的量化残差值的和,确定为所述第二预测模式的率失真代价。Determining the sum of the quantized residual values of the current point on each component as the rate-distortion cost of the second prediction mode.
示例性地,可通过以下公式计算索引为1、2或3的预测模式的率失真代价:Exemplarily, the rate-distortion cost of the prediction mode whose index is 1, 2 or 3 can be calculated by the following formula:
J indx_i=D indx_i+λ×R indx_i; J indx_i = D indx_i + λ×R indx_i ;
其中,其中,J indx_i表示当前点采用索引为i的预测模式时的率失真代价,D为attrResidualQuant三个分量的和,即D=attrResidualQuant[0]+attrResidualQuant[1]+attrResidualQuant[2]。λ根据所述当前点的量化参数确定,R indx_i表示当前点采用索引为i的预测模式时得到的量化残差值在码流中所需的比特数。 Among them, Jindx_i represents the rate-distortion cost when the current point adopts the prediction mode with index i, and D is the sum of the three components of attrResidualQuant, that is, D=attrResidualQuant[0]+attrResidualQuant[1]+attrResidualQuant[2]. λ is determined according to the quantization parameter of the current point, and R indx_i represents the number of bits required in the code stream for the quantized residual value obtained when the current point adopts the prediction mode with index i.
在一些实施例中,所述S330可包括:In some embodiments, the S330 may include:
基于所述当前点采用的预测模式,确定所述当前点的属性预测值;Determine the predicted attribute value of the current point based on the prediction mode adopted by the current point;
计算所述当前点的属性原始值与所述当前点的属性预测值之间的差值;calculating the difference between the original value of the attribute of the current point and the predicted value of the attribute of the current point;
将所述差值与所述当前点采用的量化步长的比值,确定为所述第一量化残差值;所述当前点采用的量化步长根据所述当前点的量化参数确定。Determining the ratio of the difference to the quantization step used by the current point as the first quantization residual value; the quantization step used by the current point is determined according to the quantization parameter of the current point.
示例性地,编码端可以先将所述至少一个邻居点在第一分量上采用的预测模式,确定所述当前点在所述第一分量上的属性预测值,然后计算所述当前点在所述第一分量上的属性原始值与所述当前点在所述第一分量上的属性预测值之间的差值,最后将所述当前点在所述第一分量上的属性原始值与所述当前点在所述第一分量上的属性预测值之间的差值,与所述当前点采用的量化步长的比值,确定为所述第一量化残差值。可选的,所述第一分量可以是V分量、U分量或Y分量,也可以是R分量、G分量或B分量。可选的,所述当前点采用的量化步长可以是所述当前点云采用的量化步长,即所述当前点云中的所有点采用相同的量化步长。Exemplarily, the encoding end may first use the prediction mode adopted by the at least one neighbor point on the first component, determine the attribute prediction value of the current point on the first component, and then calculate the current point on the first component. The difference between the original value of the attribute on the first component and the predicted value of the attribute of the current point on the first component, and finally the original value of the attribute on the first component of the current point and the predicted value of the attribute of the current point on the first component The ratio of the difference between the attribute prediction values of the current point on the first component to the quantization step size adopted by the current point is determined as the first quantization residual value. Optionally, the first component may be a V component, a U component or a Y component, or may be an R component, a G component or a B component. Optionally, the quantization step size adopted by the current point may be the quantization step size adopted by the current point cloud, that is, all points in the current point cloud adopt the same quantization step size.
示例性地,编码器确定出当前点使用的预测模式后,可基于确定的预测模式确定当前点的属性预测值attrPred,再利用当前点的属性原始值attrValue与当前点的属性预测值attrPred相减并对其结果进行 量化,以得到当前点的第一量化残差值attrResidualQuant1。例如编码器获取所述当前点的属性预测值后,可通过以下公式确定所述第一量化残差值:Exemplarily, after the encoder determines the prediction mode used by the current point, it can determine the attribute prediction value attrPred of the current point based on the determined prediction mode, and then use the original attribute value attrValue of the current point to subtract the attribute prediction value attrPred of the current point And the result is quantized to obtain the first quantized residual value attrResidualQuant1 of the current point. For example, after the encoder obtains the attribute prediction value of the current point, the first quantized residual value may be determined by the following formula:
attrResidualQuant1=(attrValue-attrPred)/Qstep;attrResidualQuant1 = (attrValue-attrPred)/Qstep;
其中,attrResidualQuant表示所述第一量化残差值,attrPred表示当前点的属性预测值,attrValue表示当前点的属性原始值,Qstep表示量化步长。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。Wherein, attrResidualQuant represents the first quantization residual value, attrPred represents the attribute prediction value of the current point, attrValue represents the original value of the attribute of the current point, and Qstep represents the quantization step size. Among them, Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
在一些实施例中,所述编码顺序包括细节层LOD顺序。In some embodiments, the encoding order comprises a layer of detail LOD order.
示例性地,编码器通过对当前点云进行重排序可得到当前点云的原始顺序,编码器得到当前点云的原始顺序后,可按照当前点云的原始顺序对点云进行LOD的划分,进而基于LOD对点云中的点的属性信息进行预测。Exemplarily, the encoder can obtain the original order of the current point cloud by reordering the current point cloud. After the encoder obtains the original order of the current point cloud, it can divide the point cloud by LOD according to the original order of the current point cloud. Then, the attribute information of the points in the point cloud is predicted based on the LOD.
下面结合表2对本申请提供的方案在G-PCC参考软件TMC13V14.0上进行测试得到的结果进行说明。The results obtained by testing the scheme provided by the present application on the G-PCC reference software TMC13V14.0 are described below in conjunction with Table 2.
其中,表2是在无损几何(lossless geometry)压缩和近无损属性(near-loss attributes)压缩的情况下且λ的取值为1.2的情况下,Cat1A类型的各个点云序列的各个分量的BD-rate;其中Cat1-A表示包括点的颜色信息的点的点云,端到端代表率失真(End-to-End Bit distortion,End-to-End BD-rate)为衡量算法性能或编码性能的指标,表示本申请提供的编码算法相对于原来的编码算法在码率和PSNR上的变换情况,整体为负值说明性能变好,Hausdorff BD-rate也是在属性近无损条件下独有的评判性能的标准,其表示属性值之间的最大差异,也是整体数值为负数时表示新算法性能变好。L、Cb和Cr(也叫称为Y,U,V)表示点云颜色的亮度和色度三种分量的性能。Among them, Table 2 is in the case of lossless geometry (lossless geometry) compression and near-loss attributes (near-loss attributes) compression and the value of λ is 1.2, the BD of each component of each point cloud sequence of Cat1A type -rate; where Cat1-A represents the point cloud of the point including the color information of the point, and the end-to-end representative rate distortion (End-to-End Bit distortion, End-to-End BD-rate) is a measure of algorithm performance or encoding performance The indicator of the coding algorithm provided by this application is compared with the original coding algorithm in terms of code rate and PSNR. The overall negative value indicates that the performance is better. Hausdorff BD-rate is also a unique evaluation under the condition of nearly lossless properties. The standard of performance, which represents the maximum difference between attribute values, and also when the overall value is negative, it means that the performance of the new algorithm is better. L, Cb and Cr (also known as Y, U, V) represent the performance of the three components of brightness and chromaticity of the point cloud color.
表2Table 2
如表2所示,在无损几何压缩和近无损属性压缩的情况下且λ的取值为1.2的情况下,序列2的End-to-End BD-rate在各个分量上均有性能提升,序列1的Hausdorff BD-rate在各个分量上均有性能提升,尤其是在Cb分量上的能够提升46.5%,序列2的Hausdorff BD-rate和序列3的Hausdorff BD-rate在L分量和Cr分量上也均有性能上的提升,即本申请提供的方案能够提升编码性能。As shown in Table 2, in the case of lossless geometric compression and near-lossless attribute compression and the value of λ is 1.2, the End-to-End BD-rate of
下面对结合AVS-PCC框架对确定所述当前点的第一量化残差值的方案进行说明。The solution for determining the first quantized residual value of the current point in combination with the AVS-PCC framework will be described below.
在一些实施例中,所述S120可包括:In some embodiments, the S120 may include:
将所述至少一个邻居点的加权平均值,确定为所述当前点的属性预测值;Determining the weighted average of the at least one neighbor point as the attribute prediction value of the current point;
计算所述当前点的属性原始值与所述当前点的属性预测值之间的差值;calculating the difference between the original value of the attribute of the current point and the predicted value of the attribute of the current point;
将所述差值与所述当前点采用的量化步长的比值,确定为所述第一量化残差值;所述当前点采用的量化步长根据所述当前点的量化参数确定。Determining the ratio of the difference to the quantization step used by the current point as the first quantization residual value; the quantization step used by the current point is determined according to the quantization parameter of the current point.
示例性地,编码端可以先将所述至少一个邻居点在第一分量上的加权平均值,确定为所述当前点在所述第一分量上的属性预测值,然后计算所述当前点在所述第一分量上的属性原始值与所述当前点在所述第一分量上的属性预测值之间的差值,最后将所述当前点在所述第一分量上的属性原始值与所述当前点在所述第一分量上的属性预测值之间的差值,与所述当前点采用的量化步长的比值,确定为所述第一量化残差值。可选的,所述第一分量可以是V分量、U分量或Y分量,也可以是R分量、G分量或B分量。可选的,所述当前点采用的量化步长可以是所述当前点云采用的量化步长,即所述当前点云中的所有点采用相同的量化步长。Exemplarily, the encoding end may first determine the weighted average of the at least one neighbor point on the first component as the attribute prediction value of the current point on the first component, and then calculate the current point on the first component. The difference between the original value of the attribute on the first component and the predicted value of the attribute of the current point on the first component, and finally the original value of the attribute on the first component of the current point and The ratio of the difference between the attribute prediction values of the current point on the first component to the quantization step size adopted by the current point is determined as the first quantization residual value. Optionally, the first component may be a V component, a U component or a Y component, or may be an R component, a G component or a B component. Optionally, the quantization step size adopted by the current point may be the quantization step size adopted by the current point cloud, that is, all points in the current point cloud adopt the same quantization step size.
对于当前点云中当前点的属性预测,若当前点与编码顺序前的已编码点的几何信息相同,即为重复点,则利用重复点的属性重建值作为当前点的属性预测值。可选的,若当前点与编码顺序前的已编码点的几何信息不相同,即不为重复点,则编码器可以按照编码顺序选择前m个点作为当前点的邻居候选点,然后分别计算m个点与当前点的几何信息的曼哈顿距离,并确定距离最近的n个点作为当前点的邻居点,然后编码器可以以距离的倒数作为权重,计算n个邻居的属性的加权平均值,作为当前点的属性预测值。For the attribute prediction of the current point in the current point cloud, if the geometric information of the current point is the same as that of the encoded point before the encoding sequence, it is a duplicate point, and the attribute reconstruction value of the duplicate point is used as the attribute prediction value of the current point. Optionally, if the geometric information of the current point is not the same as that of the encoded points before the encoding order, that is, it is not a repeated point, the encoder can select the first m points as the neighbor candidate points of the current point according to the encoding order, and then calculate The Manhattan distance between m points and the geometric information of the current point, and determine the nearest n points as the neighbor points of the current point, and then the encoder can use the reciprocal of the distance as the weight to calculate the weighted average of the attributes of the n neighbors, As the predicted value of the attribute at the current point.
示例性地,编码器可以通过以下方式得到当前点的属性预测值:Exemplarily, the encoder can obtain the attribute prediction value of the current point in the following ways:
attrPred=(1/W 1×ref 1+1/W 2×ref 2+1/W 3×ref 3)/(1/W 1+1/W 2+1/W 3)。 attrPred=(1/W 1 ×ref 1 +1/W 2 ×ref 2 +1/W 3 ×ref 3 )/(1/W 1 +1/W 2 +1/W 3 ).
其中,W
1、W
2、W
3分别表示邻居点1、邻居点2、邻居点3与当前点的几何距离,ref
1、ref
2、ref
3分别表示邻居点1、邻居点2、邻居点3的属性重建值。
Among them, W 1 , W 2 , and W 3 represent the geometric distances between
示例性地,编码器获取所述当前点的属性预测值后,可通过以下公式确定所述第一量化残差值:Exemplarily, after the encoder obtains the attribute prediction value of the current point, the first quantized residual value may be determined by the following formula:
attrResidualQuant1=(attrValue-attrPred)/Qstep;attrResidualQuant1 = (attrValue-attrPred)/Qstep;
其中,attrResidualQuant表示所述第一量化残差值,attrPred表示当前点的属性预测值,attrValue表示当前点的属性原始值,Qstep表示量化步长。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。Wherein, attrResidualQuant represents the first quantization residual value, attrPred represents the attribute prediction value of the current point, attrValue represents the original value of the attribute of the current point, and Qstep represents the quantization step size. Among them, Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
在一些实施例中,所述编码顺序包括莫顿重顺序或希尔伯特顺序。In some embodiments, the encoding order comprises a Morton's order or a Hilbert order.
示例性地,对于属性信息编码中的属性预测,编码器可对当前点云进行重排序以及进行属性预测。可选的,重排序的方法有莫顿重排序和希尔伯特(Hilbert)重排序。编码器通过对当前点云进行重排序可得到当前点云的编码顺序,编码器得到当前点云的编码顺序后,可按照当前点云的编码顺序对点云中的点的属性信息进行预测。Exemplarily, for attribute prediction in attribute information encoding, the encoder can reorder the current point cloud and perform attribute prediction. Optionally, the reordering methods include Morton reordering and Hilbert reordering. The encoder can obtain the encoding order of the current point cloud by reordering the current point cloud. After the encoder obtains the encoding order of the current point cloud, it can predict the attribute information of the points in the point cloud according to the encoding order of the current point cloud.
下面结合表3至表6,对本申请提供的方案在AVS最新的点云压缩平台PCRMv4.0上进行测试得到的结果进行说明。In the following, in conjunction with Table 3 to Table 6, the results obtained by testing the solution provided by this application on the latest point cloud compression platform PCRMv4.0 of AVS are described.
其中,表3是在限制有损几何(limit-lossy geometry)压缩和有损属性(lossy attributes)压缩的情况下且λ的取值为0.5的情况下,Cat1A至Cat1A+Cat2的各个分量的BD-rate;其中Cat1A表示仅包括点的反射率信息的点的点云,Cat1B表示仅包括点的颜色信息的点的点云,Cat1C表示同时包括点的颜色信息和反射率信息的点的点云,Cat2表示包括点的反射率信息和其他属性信息的点的点云,Cat3表示包括点的颜色信息和其他属性信息的点的点云。表4是在无损几何(lossless geometry)压缩和有损属性压缩的情况下且λ的取值为0.5的情况下,Cat1A至Cat1A+Cat2的颜色信息的BD-rate。表5是在无损几何压缩和有损属性压缩的情况下且λ的取值为0.8的情况下,Cat1A至Cat1A+Cat2的各个分量的BD-rate。表6是在限制有损几何压缩和有损属性压缩的情况下且λ的取值为0.8的情况下,Cat1A至Cat1A+Cat2的各个分量的BD-rate。总平均值(overall)表示所有序列的综合性能。代表率失真(Bit distortion,BD-rate)为衡量算法性能或编码性能的指标,表示本申请提供的编码算法相对于原来的编码算法在码率和PSNR上的变换情况,整体为负值说明性能变好。L、Cb和Cr(也叫称为Y,U,V)表示点云颜色的亮度和色度三种分量的性能,反射率(reflectance)表示反射率属性的性能。Among them, Table 3 is in the case of limiting lossy geometry (limit-lossy geometry) compression and lossy attributes (lossy attributes) compression and the value of λ is 0.5, the BD of each component of Cat1A to Cat1A+Cat2 -rate; where Cat1A represents the point cloud of points that only include the reflectance information of the point, Cat1B represents the point cloud of points that only include the color information of the point, and Cat1C represents the point cloud of points that include both the color information and reflectance information of the point , Cat2 represents the point cloud of the point including the reflectance information of the point and other attribute information, and Cat3 represents the point cloud of the point including the color information of the point and other attribute information. Table 4 is the BD-rate of the color information from Cat1A to Cat1A+Cat2 in the case of lossless geometry (lossless geometry) compression and lossy attribute compression and the value of λ is 0.5. Table 5 shows the BD-rate of each component of Cat1A to Cat1A+Cat2 in the case of lossless geometry compression and lossy attribute compression and the value of λ is 0.8. Table 6 shows the BD-rate of each component of Cat1A to Cat1A+Cat2 under the condition of limiting lossy geometry compression and lossy attribute compression and the value of λ is 0.8. The overall mean (overall) represents the combined performance of all sequences. Representative rate distortion (Bit distortion, BD-rate) is an indicator to measure algorithm performance or coding performance, which indicates the transformation of the coding algorithm provided by this application in terms of code rate and PSNR compared to the original coding algorithm, and the overall negative value indicates performance get better. L, Cb, and Cr (also known as Y, U, V) represent the performance of the three components of the brightness and chromaticity of the point cloud color, and reflectance represents the performance of the reflectance attribute.
表3table 3
如表3所示,在限制有损几何压缩和有损属性压缩的情况下且λ的取值为0.5的情况下,BD-rate的总平均值在L分量上的能够提升7.6%,在Cb分量上的能够提升1.7%,在Cr分量上的能够提升4.4%,在反射率分量上的能够提升2.5%,即本申请提供的方案能够提升编码性能。As shown in Table 3, in the case of limiting lossy geometry compression and lossy attribute compression and the value of λ is 0.5, the total average value of BD-rate on the L component can be increased by 7.6%, and the Cb The component can be improved by 1.7%, the Cr component can be improved by 4.4%, and the reflectance component can be improved by 2.5%, that is, the solution provided by the present application can improve the coding performance.
表4Table 4
如表4所示,在无损几何压缩和有损属性压缩的情况下且λ的取值为0.5的情况下,BD-rate的总平均值在L分量上的能够提升7.2%,在Cb分量上的能够提升6.5%,在Cr分量上的能够提升6.6%,即本申请提供的方案能够提升编码性能。As shown in Table 4, in the case of lossless geometric compression and lossy attribute compression and the value of λ is 0.5, the total average value of BD-rate can be increased by 7.2% on the L component, and on the Cb component can be improved by 6.5%, and the Cr component can be improved by 6.6%, that is, the solution provided by the present application can improve the encoding performance.
表5table 5
如表5所示,在限制有损几何压缩和有损属性压缩的情况下且λ的取值为0.8的情况下,BD-rate的总平均值在L分量上的能够提升7.6%,在Cb分量上的能够提升2.0%,在Cr分量上的能够提升4.5%,即本申请提供的方案能够提升编码性能。As shown in Table 5, in the case of limiting lossy geometry compression and lossy attribute compression and the value of λ is 0.8, the total average value of BD-rate on the L component can be increased by 7.6%, and the Cb The component can be improved by 2.0%, and the Cr component can be improved by 4.5%, that is, the solution provided by the present application can improve the coding performance.
表6Table 6
如表6所示,在无损几何压缩和有损属性压缩的情况下且λ的取值为0.5的情况下,BD-rate的总平均值在L分量上的能够提升8.3%,在Cb分量上的能够提升6.9%,在Cr分量上的能够提升6.9%,即本申请提供的方案能够提升编码性能。As shown in Table 6, in the case of lossless geometric compression and lossy attribute compression and the value of λ is 0.5, the total average value of BD-rate can be increased by 8.3% on the L component, and on the Cb component can be improved by 6.9%, and the Cr component can be improved by 6.9%, that is, the solution provided by the present application can improve the coding performance.
下面结合具体实施例对本申请的方案个说明。The scheme of the present application is described below in conjunction with specific embodiments.
本实施例中,当前点的第一量化残差值为基于编码器对当前点进行属性预测得到的属性预测值确定的量化残差值attrResidualQuant1,并且将attrResidualQuant1置0后得到的attrResidualQuant2作为当前点的至少一个第二量化残差值,基于此,编码器可在attrResidualQuant1和attrResidualQuant2中确定当前点的最终的量化残差值,即上文涉及的第三量化残差值。In this embodiment, the first quantized residual value of the current point is the quantized residual value attrResidualQuant1 determined based on the attribute prediction value obtained by the encoder on the attribute prediction of the current point, and attrResidualQuant2 obtained by setting attrResidualQuant1 to 0 is used as the current point’s At least one second quantized residual value. Based on this, the encoder can determine the final quantized residual value at the current point in attrResidualQuant1 and attrResidualQuant2, that is, the third quantized residual value mentioned above.
示例性地,编码器通过预测变换(Predicting Transform)得到当前点的属性预测值后,可基于属性预测值和attrResidualQuant1确定当前点的属性重建值Recon1,以及编码器将attrResidualQuant1置0,并将其作为attrResidualQuant2。进一步的,编码器可基于属性预测值和attrResidualQuant2确定当前点的属性重建值Recon2。然后,编码器可以基于当前点的属性重建值Recon1和当前点的属性重建值Recon2分别计算attrResidualQuant1的率失真代价和attrResidualQuant2的率失真代价,并将率失真代价最小的attrResidualQuant确定为当前点最终的量化残差值,最后对当前点最终的量化残差值进行编码,以实现对当前点的属性信息的编码。Exemplarily, after the encoder obtains the attribute prediction value of the current point through predictive transformation (Predicting Transform), it can determine the attribute reconstruction value Recon1 of the current point based on the attribute prediction value and attrResidualQuant1, and the encoder sets attrResidualQuant1 to 0 and uses it as attrResidualQuant2. Further, the encoder may determine the attribute reconstruction value Recon2 of the current point based on the attribute prediction value and attrResidualQuant2. Then, the encoder can calculate the rate-distortion cost of attrResidualQuant1 and the rate-distortion cost of attrResidualQuant2 based on the attribute reconstruction value Recon1 of the current point and the attribute reconstruction value Recon2 of the current point, and determine attrResidualQuant with the smallest rate-distortion cost as the final quantization of the current point The residual value, and finally encode the final quantized residual value of the current point to realize the encoding of the attribute information of the current point.
图18是本申请实施例提供的编码方法400的示意性流程图。该方法400可由编码器或编码框架执行,例如图4所示的编码框架。FIG. 18 is a schematic flowchart of an
如图18所示,该编码方法400可包括:As shown in Figure 18, the
S410,编码器获取当前点云。S410. The encoder acquires the current point cloud.
S420,编码器对当前点进行属性预测,得到当前点的属性预测值。S420. The encoder performs attribute prediction on the current point to obtain an attribute prediction value of the current point.
对于G-PCC框架,编码器在预测点云中的当前点时,基于当前点所在的LOD上的邻居点搜索结果,创建多个预测模式候选项。例如,当使用预测方式对当前点的属性信息进行编码时,编码器先基于当前点所在的LOD上的邻居点搜索结果找到位于当前点之前的3个邻居点,创建4个预测模式候选项,即索引的取值为0~3的预测模式(predMode)。其中,索引为0的预测模式指基于3个邻居点与当前点之间的距离将3个邻居点的重建属性值的加权平均值确定为当前点的属性预测值;索引为1的预测模式指将3个邻居点中最近邻居点的属性重建值作为当前点的属性预测值;索引为2的预测模式指将次近邻居点的属性重建值作为当前点的属性预测值;索引为3的预测模式指将3个邻居点中除最近邻居点和次近邻居点之外的邻居点的属性重建值作为当前点的属性预测值;在基于上述各种预测模式得到当前点的属性预测值的候选项后,编码器可以利用率失真优化(Rate distortion optimization,RDO)技术选择最佳的属性预测值,然后对所选的属性预测值进行算术编码。编码器确定当前点使用的预测模式时,可以先 对当前点的至少一个邻居点计算其属性的最大差异maxDiff,将maxDiff与设定的阈值进行比较,如果小于设定的阈值(即所述第一阈值)则使用索引为0的预测模式(即所述第一预测模式)。For the G-PCC framework, when the encoder predicts the current point in the point cloud, it creates multiple prediction mode candidates based on the search results of neighbor points on the LOD where the current point is located. For example, when using the prediction method to encode the attribute information of the current point, the encoder first finds 3 neighbor points before the current point based on the neighbor point search results on the LOD where the current point is located, and creates 4 prediction mode candidates, That is, the prediction mode (predMode) whose index value is 0 to 3. Among them, the prediction mode with an index of 0 refers to determining the weighted average of the reconstructed attribute values of the three neighbor points as the attribute prediction value of the current point based on the distance between the three neighbor points and the current point; the prediction mode with an index of 1 refers to The attribute reconstruction value of the nearest neighbor point among the three neighbor points is used as the attribute prediction value of the current point; the prediction mode with
示例性地,编码器计算当前点的至少一个邻居点的属性的最大差异maxDiff时,可以先计算当前点的至少一个邻居点在各个分量上的最大差异;例如,当前点的至少一个邻居点在R分量上的最大差异为max(R1,R2,R3)-min(R1,R2,R3),在G以及B分量上的最大差异分别为max(G1,G2,G3)-min(G1,G2,G3)以及max(B1,B2,B3)-min(B1,B2,B3);然后,选择在R、G、B分量中的最大差异作为maxDiff,即maxDiff=max(max(R1,R2,R3)-min(R1,R2,R3),max(G1,G2,G3)-min(G1,G2,G3),max(B1,B2,B3)-min(B1,B2,B3));编码器得到maxDiff后,可基于maxDiff与设定的阈值(即所述第一阈值)比较,若小于设定的阈值则当前点的预测模式的索引为0,即predMode=0。Exemplarily, when the encoder calculates the maximum difference maxDiff of the attributes of at least one neighbor point of the current point, it may first calculate the maximum difference of at least one neighbor point of the current point on each component; for example, at least one neighbor point of the current point is in The maximum difference on the R component is max(R1,R2,R3)-min(R1,R2,R3), and the maximum difference on the G and B components is max(G1,G2,G3)-min(G1,G2) ,G3) and max(B1,B2,B3)-min(B1,B2,B3); Then, select the maximum difference in the R, G, and B components as maxDiff, that is, maxDiff=max(max(R1,R2, R3)-min(R1,R2,R3),max(G1,G2,G3)-min(G1,G2,G3),max(B1,B2,B3)-min(B1,B2,B3)); encoding After obtaining maxDiff, the device can compare maxDiff with a set threshold (ie, the first threshold), and if it is less than the set threshold, the index of the prediction mode at the current point is 0, that is, predMode=0.
示例性地,编码器确定当前点使用的预测模式时,可以先对当前点的至少一个邻居点计算其属性的最大差异maxDiff,将maxDiff与设定的阈值进行比较,如果大于或等于设定的阈值,则编码器对当前点可以使用RDO技术确定当前点使用的预测模式的索引。对于RDO技术,编码器可以对当前点的每种预测模式计算得到对应的率失真代价,然后选取率失真代价最小的预测模式,即最优预测模式作为当前点的属性预测模式。Exemplarily, when the encoder determines the prediction mode used by the current point, it can first calculate the maximum difference maxDiff of its attributes for at least one neighbor point of the current point, compare maxDiff with the set threshold, and if it is greater than or equal to the set threshold, the encoder can use RDO technology to determine the index of the prediction mode used by the current point for the current point. For RDO technology, the encoder can calculate the corresponding rate-distortion cost for each prediction mode of the current point, and then select the prediction mode with the smallest rate-distortion cost, that is, the optimal prediction mode as the attribute prediction mode of the current point.
对于AVS-PCC框架,编码器可对当前点云进行重排序以及进行属性预测。可选的,重排序的方法有莫顿重排序和希尔伯特(Hilbert)重排序。编码器通过对当前点云进行重排序可得到当前点云的编码顺序,编码器得到当前点云的编码顺序后,可按照当前点云的编码顺序对点云中的点的属性信息进行预测。可选的,若当前点与编码顺序前的已编码点的几何信息相同,即为重复点,则利用重复点的属性重建值作为当前点的属性预测值。可选的,若当前点与编码顺序前的已编码点的几何信息不相同,即不为重复点,则编码器可以按照编码顺序选择前m个点作为当前点的邻居候选点,然后分别计算m个点与当前点的几何信息的曼哈顿距离,并确定距离最近的n个点作为当前点的邻居点,然后编码器可以以距离的倒数作为权重,计算n个邻居的属性的加权平均值,作为当前点的属性预测值。For the AVS-PCC framework, the encoder can reorder the current point cloud and perform attribute prediction. Optionally, the reordering methods include Morton reordering and Hilbert reordering. The encoder can obtain the encoding order of the current point cloud by reordering the current point cloud. After the encoder obtains the encoding order of the current point cloud, it can predict the attribute information of the points in the point cloud according to the encoding order of the current point cloud. Optionally, if the geometric information of the current point is the same as that of the encoded point before the encoding sequence, that is, it is a repeated point, then the attribute reconstruction value of the repeated point is used as the attribute prediction value of the current point. Optionally, if the geometric information of the current point is not the same as that of the encoded points before the encoding order, that is, it is not a repeated point, the encoder can select the first m points as the neighbor candidate points of the current point according to the encoding order, and then calculate The Manhattan distance between m points and the geometric information of the current point, and determine the nearest n points as the neighbor points of the current point, and then the encoder can use the reciprocal of the distance as the weight to calculate the weighted average of the attributes of the n neighbors, As the predicted value of the attribute at the current point.
示例性地,编码器可以通过以下方式得到当前点的属性预测值:Exemplarily, the encoder can obtain the attribute prediction value of the current point in the following ways:
attrPred=(1/W 1×ref 1+1/W 2×ref 2+1/W 3×ref 3)/(1/W 1+1/W 2+1/W 3)。 attrPred=(1/W 1 ×ref 1 +1/W 2 ×ref 2 +1/W 3 ×ref 3 )/(1/W 1 +1/W 2 +1/W 3 ).
其中,W
1、W
2、W
3分别表示邻居点1、邻居点2、邻居点3与当前点的几何距离,ref
1、ref
2、ref
3分别表示邻居点1、邻居点2、邻居点3的属性重建值。
Among them, W 1 , W 2 , and W 3 represent the geometric distances between
S430,编码器基于当前点的属性原始值与属性预测值,确定当前点的残差值。S430. The encoder determines a residual value of the current point based on the original value of the attribute and the predicted value of the attribute of the current point.
S440,编码器对当前点的残差值进行量化,得到当前点的量化残差值attrResidualQuant1。S440. The encoder quantizes the residual value of the current point to obtain the quantized residual value attrResidualQuant1 of the current point.
示例性地,编码器获取所述当前点的属性预测值后,可通过以下公式确定attrResidualQuant1:Exemplarily, after the encoder acquires the predicted attribute value of the current point, attrResidualQuant1 can be determined by the following formula:
attrResidualQuant1=(attrValue-attrPred)/Qstep;attrResidualQuant1 = (attrValue-attrPred)/Qstep;
其中,attrPred表示当前点的属性预测值,attrValue表示当前点的属性原始值,Qstep表示量化步长。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。Among them, attrPred represents the attribute prediction value of the current point, attrValue represents the original value of the attribute of the current point, and Qstep represents the quantization step size. Among them, Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
S441,编码器基于attrResidualQuant1和当前点的属性预测值,确定当前点的属性重建值Recon1。S441. The encoder determines the attribute reconstruction value Recon1 of the current point based on attrResidualQuant1 and the attribute prediction value of the current point.
示例性地,编码器可通过以下公式基于attrResidualQuant1确定的所述当前点的属性重建值Recon1:Exemplarily, the encoder can reconstruct the value Recon1 based on the attribute of the current point determined by attrResidualQuant1 through the following formula:
Recon1=attrResidualQuant1×Qstep+attrPred;Recon1=attrResidualQuant1×Qstep+attrPred;
其中,Recon1表示基于attrResidualQuant1确定的所述当前点的属性重建值,Qstep表示量化步长,attrPred表示当前点的属性预测值。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。Wherein, Recon1 indicates the attribute reconstruction value of the current point determined based on attrResidualQuant1, Qstep indicates the quantization step size, and attrPred indicates the attribute prediction value of the current point. Among them, Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
S442,编码器基于Recon1,确定attrResidualQuant1的率失真代价J 1。 S442. The encoder determines the rate-distortion cost J 1 of attrResidualQuant1 based on Recon1.
示例性地,编码器按照以下公式计算attrResidualQuant1的率失真代价:Exemplarily, the encoder calculates the rate-distortion cost of attrResidualQuant1 according to the following formula:
J 1=D 1+λ×R 1; J 1 =D 1 +λ×R 1 ;
其中,J 1表示attrResidualQuant1的率失真代价,D 1表示所述当前点的属性原始值attrValue与Recon1之间的误差,λ根据所述当前点的量化参数确定,R 1表示attrResidualQuant1在所述码流中所需的比特数。 Among them, J 1 represents the rate-distortion cost of attrResidualQuant1, D 1 represents the error between the original attribute value attrValue of the current point and Recon1, λ is determined according to the quantization parameter of the current point, and R 1 represents attrResidualQuant1 in the code stream The number of bits required in .
示例性地,D可以通过以下公式得到:Exemplarily, D can be obtained by the following formula:
D 1=|attrValue-Recon1|; D 1 = |attrValue-Recon1|;
其中,attrValue表示当前点的属性原始值,Recon1表示基于attrResidualQuant1确定的所述当前点的属性重建值。Wherein, attrValue represents the original value of the attribute of the current point, and Recon1 represents the reconstruction value of the attribute of the current point determined based on attrResidualQuant1.
S450,编码器基于attrResidualQuant1确定当前点的量化残差值attrResidualQuant2。S450. The encoder determines the quantization residual value attrResidualQuant2 of the current point based on attrResidualQuant1.
示例性地,编码器将attrResidualQuant1置0,并将其作为attrResidualQuant2。即attrResidualQuant2=0。Exemplarily, the encoder sets attrResidualQuant1 to 0 and uses it as attrResidualQuant2. That is, attrResidualQuant2=0.
S451,编码器基于attrResidualQuant2和当前点的属性预测值,确定当前点的属性重建值Recon2。S451. The encoder determines the attribute reconstruction value Recon2 of the current point based on attrResidualQuant2 and the attribute prediction value of the current point.
示例性地,编码器可通过以下公式基于attrResidualQuant2确定的所述当前点的属性重建值Recon2:Exemplarily, the encoder can reconstruct the value Recon2 based on the attribute of the current point determined by attrResidualQuant2 through the following formula:
Recon2=attrResidualQuant2×Qstep+attrPred;Recon2=attrResidualQuant2×Qstep+attrPred;
其中,由于attrResidualQuant2=0,因此基于attrResidualQuant2得到的当前点的属性重建值等于当前点的属性预测值,即Recon2=attrPred。Wherein, since attrResidualQuant2=0, the attribute reconstruction value of the current point obtained based on attrResidualQuant2 is equal to the attribute prediction value of the current point, that is, Recon2=attrPred.
S452,编码器基于Recon2,确定attrResidualQuant2的率失真代价J 2。 S452. The encoder determines the rate-distortion cost J 2 of attrResidualQuant2 based on the Recon2.
示例性地,编码器按照以下公式计算所述量化残差值attrResidualQuant1的率失真代价:Exemplarily, the encoder calculates the rate-distortion cost of the quantized residual value attrResidualQuant1 according to the following formula:
J 2=D 2+λ×R 2; J 2 =D 2 +λ×R 2 ;
其中,J 2表示attrResidualQuant2的率失真代价,D 2表示所述当前点的属性原始值attrValue与Recon2之间的误差,λ 2根据所述当前点的量化参数确定,R 1表示attrResidualQuant2在所述码流中所需的比特数。 Among them, J 2 represents the rate-distortion cost of attrResidualQuant2, D 2 represents the error between the original attribute value attrValue of the current point and Recon2, λ 2 is determined according to the quantization parameter of the current point, and R 1 represents attrResidualQuant2 in the code The desired number of bits in the stream.
示例性地,D 2可以通过以下公式得到: Exemplarily, D2 can be obtained by the following formula:
D 2=|attrValue-Recon2|; D 2 =|attrValue-Recon2|;
其中,attrValue表示当前点的属性原始值,Recon2表示基于attrResidualQuant2确定的所述当前点的属性重建值。即attrResidualQuant2=0时,Recon2=attrPred。Wherein, attrValue represents the original value of the attribute of the current point, and Recon2 represents the reconstruction value of the attribute of the current point determined based on attrResidualQuant2. That is, when attrResidualQuant2=0, Recon2=attrPred.
S460,编码器判断J 1>J 2? S460, the encoder judges that J 1 >J 2 ?
S461,若J 1>J 2,则编码器编码attrResidualQuant2。 S461. If J 1 >J 2 , the encoder encodes attrResidualQuant2.
示例性地,若J 1>J 2,代表attrResidualQuant1的编码代价比较大,此时可以选择attrResidualQuant2的编码方案,即将attrResidualQuant1置为0后作为当前点的最终量化残差值并对其进行编码,也即是说,编码器将attrResidualQuant2确定为当前点最终的量化残差值(即上文所述的第三量化残差值),并对attrResidualQuant2进行编码。 For example, if J 1 >J 2 , it means that the encoding cost of attrResidualQuant1 is relatively high. At this time, the encoding scheme of attrResidualQuant2 can be selected, that is, after attrResidualQuant1 is set to 0, it will be used as the final quantized residual value of the current point and encoded. That is to say, the encoder determines attrResidualQuant2 as the final quantized residual value at the current point (that is, the third quantized residual value mentioned above), and encodes attrResidualQuant2.
S462,若J 1≤J 2,则编码器编码attrResidualQuant1。 S462. If J 1 ≤ J 2 , the encoder encodes attrResidualQuant1.
示例性地,若J 1≤J 2,代表attrResidualQuant1的编码代价比较小,此时可以选择attrResidualQuant1的编码方案,即将attrResidualQuant1直接作为作为当前点的最终量化残差值并对其进行编码,也即是说,编码器将attrResidualQuant1确定为当前点最终的量化残差值(即上文所述的第三量化残差值),并对attrResidualQuant1进行编码。 For example, if J 1 ≤ J 2 , it means that the encoding cost of attrResidualQuant1 is relatively small. At this time, the encoding scheme of attrResidualQuant1 can be selected, that is, attrResidualQuant1 is directly used as the final quantized residual value of the current point and encoded, that is, That is, the encoder determines attrResidualQuant1 as the final quantized residual value at the current point (that is, the third quantized residual value mentioned above), and encodes attrResidualQuant1.
本实施例中,编码器通过计算attrResidualQuant1的率失真代价和attrResidualQuant2的率失真代价,并将率失真代价最小的attrResidualQuant确定为当前点最终的量化残差值,最后对当前点最终的量化残差值进行编码,以实现对当前点的属性信息的编码,不仅使得attrResidualQuant1和attrResidualQuant2的量化尺度不同,还能够使得attrResidualQuant1的率失真代价和attrResidualQuant2的率失真代价同时考虑到所述当前点的重建质量和编码效率,使得当前点选择的最终量化残差值为量化尺度最佳的第三量化残差值,避免了当前点的编码效率过低或者重建质量过低,进而,能够编码器的编码性能。In this embodiment, the encoder calculates the rate-distortion cost of attrResidualQuant1 and the rate-distortion cost of attrResidualQuant2, and determines attrResidualQuant with the smallest rate-distortion cost as the final quantized residual value of the current point, and finally calculates the final quantized residual value of the current point Encoding is performed to realize the encoding of the attribute information of the current point, which not only makes the quantization scales of attrResidualQuant1 and attrResidualQuant2 different, but also makes the rate-distortion cost of attrResidualQuant1 and attrResidualQuant2 take into account the reconstruction quality and encoding of the current point at the same time Efficiency, so that the final quantized residual value selected at the current point is the third quantized residual value with the best quantization scale, which avoids low coding efficiency or low reconstruction quality at the current point, and improves the coding performance of the encoder.
当然,图18仅为本申请的示例,不应理解为对本申请的限制。Certainly, FIG. 18 is only an example of the present application, and should not be construed as limiting the present application.
例如,在图18中,编码器将attrResidualQuant1置0后得到的attrResidualQuant2作为当前点的至少一个第二量化残差值,但本申请并不限于此。例如,在其他可替代实施例中,所述第一量化残差值的取值为N时,所述至少一个第二量化残差值的数量为N-1个,且所述至少一个第二量化残差值的取值分别为:0,…,N-1。其中,N为正整数。基于此,编码器可得到N个量化残差值和属性重建值,也即可以得出N个量化残差值中的每一个量化残差值的率失真代价,即J 1,J 2,…,J N。比如,假设当前点的第一量化残差为10,则可以将所述至少一个第二量化残差值依次置为0-9,继而可以得到10个属性重建值,此时利用率失真代价的计算公式可得到10个率失真代价,即J 1,J 2,…,J 10;然后比较J 1,J 2,…,J 10的大小,选择代价最小的率失真代价Min(J 1,J 2,…,J 10)以及将最小的率失真代价所对应的量化残差值,确定为当前点最终的量化残差值,最后对当前点最终的量化残差值进行编码,重复上述过程,直到编码完当前点云中的所有点,以实现对当前点的属性信息的编码。 For example, in FIG. 18 , the encoder sets attrResidualQuant2 obtained by setting attrResidualQuant1 to 0 as at least one second quantized residual value at the current point, but the present application is not limited thereto. For example, in other alternative embodiments, when the value of the first quantization residual value is N, the number of the at least one second quantization residual value is N-1, and the at least one second The values of the quantized residual values are respectively: 0,...,N-1. Wherein, N is a positive integer. Based on this, the encoder can obtain N quantized residual values and attribute reconstruction values, that is, the rate-distortion cost of each quantized residual value in the N quantized residual values can be obtained, that is, J 1 , J 2 , … , J N . For example, assuming that the first quantized residual at the current point is 10, the at least one second quantized residual value can be set to 0-9 in sequence, and then 10 attribute reconstruction values can be obtained, at this time, the utilization rate distortion cost The calculation formula can get 10 rate-distortion costs, that is, J 1 , J 2, ..., J 10 ; then compare the size of J 1 , J 2, ..., J 10 , and choose the rate-distortion cost Min(J 1 , J 2, ..., J 10 ) and determine the quantized residual value corresponding to the minimum rate-distortion cost as the final quantized residual value of the current point, and finally encode the final quantized residual value of the current point, and repeat the above process, Until all the points in the current point cloud are encoded, the attribute information of the current point is encoded.
本申请还提供了一种与上述编码方法对应的解码方法。The present application also provides a decoding method corresponding to the above encoding method.
图19是本申请实施例提供的解码方法的示意性流程图。Fig. 19 is a schematic flowchart of a decoding method provided by an embodiment of the present application.
如图19所示,解码器首先通过解码属性码流得到APS和ABH以供后续使用,然后从属性码流中得到第一个点的属性预测值attrPred,并从属性码流中得到第一个点的量化残差值,对其进行反量化后可得到第一个点的残差值,基于此,解码器可基于第一个点的残差值得到与第一个点的属性预测值得到第一个点的属性重建值,第一个点的属性重建值可以作为后续点的近邻候选项,然后再从属性码流中解析第二个点的量化残差值,对其进行反量化并将反量化的结果与第二个点的属性预测值相加得到第二个点的属性重建值,以此类推,直到点云的最后一个点被解码。As shown in Figure 19, the decoder first obtains APS and ABH by decoding the attribute code stream for subsequent use, then obtains the attribute prediction value attrPred of the first point from the attribute code stream, and obtains the first point from the attribute code stream The quantized residual value of the point, after inverse quantization, the residual value of the first point can be obtained. Based on this, the decoder can obtain the predicted value of the attribute of the first point based on the residual value of the first point. The attribute reconstruction value of the first point, the attribute reconstruction value of the first point can be used as the neighbor candidate of the subsequent point, and then the quantized residual value of the second point is parsed from the attribute code stream, dequantized and The result of dequantization is added to the attribute prediction value of the second point to obtain the attribute reconstruction value of the second point, and so on until the last point of the point cloud is decoded.
示例性地,解码器可基于以下公式对当前点的量化残差值(即本申请涉及的第三量化残差值)进行反量化,以得到当前点的残差值:Exemplarily, the decoder may dequantize the quantized residual value of the current point (ie, the third quantized residual value involved in the present application) based on the following formula to obtain the residual value of the current point:
attrResidual=attrResidualQuant×Qstep;attrResidual=attrResidualQuant×Qstep;
其中,attrResidual表示当前点的残差值,attrResidualQuant表示当前点的量化残差值,Qstep表示 量化步长。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。Among them, attrResidual indicates the residual value of the current point, attrResidualQuant indicates the quantization residual value of the current point, and Qstep indicates the quantization step size. Among them, Qstep is calculated by the quantization parameter (Quantization Parameter, Qp).
示例性地,解码器可基于以下公式得到当前点的属性重建值:Exemplarily, the decoder can obtain the attribute reconstruction value of the current point based on the following formula:
Recon=attrResidual+attrPred;Recon = attrResidual + attrPred;
其中,Recon表示基于当前点的量化残差值确定的所述当前点的属性重建值,attrResidual表示当前点的残差值,attrPred表示当前点的属性预测值。Wherein, Recon represents the attribute reconstruction value of the current point determined based on the quantized residual value of the current point, attrResidual represents the residual value of the current point, and attrPred represents the attribute prediction value of the current point.
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。The preferred embodiments of the present application have been described in detail above in conjunction with the accompanying drawings. However, the present application is not limited to the specific details in the above embodiments. Within the scope of the technical concept of the present application, various simple modifications can be made to the technical solutions of the present application. These simple modifications all belong to the protection scope of the present application. For example, the various specific technical features described in the above specific implementation manners can be combined in any suitable manner if there is no contradiction. Separately. As another example, any combination of various implementations of the present application can also be made, as long as they do not violate the idea of the present application, they should also be regarded as the content disclosed in the present application. It should also be understood that, in various method embodiments of the present application, the sequence numbers of the above-mentioned processes do not mean the order of execution, and the order of execution of the processes should be determined by their functions and internal logic, and should not be used in this application. The implementation of the examples constitutes no limitation.
下面将结合附图对本申请实施例提供的编码器或解码器进行说明。The encoder or decoder provided by the embodiments of the present application will be described below with reference to the accompanying drawings.
图20是本申请实施例提供的编码器500的示意性框图。FIG. 20 is a schematic block diagram of an
如图20所示,该编码器500可包括:As shown in Figure 20, the
确定单元510,用于:Determining
基于当前点云的几何信息,确定所述当前点云的属性信息的编码顺序;Based on the geometric information of the current point cloud, determine the encoding sequence of the attribute information of the current point cloud;
基于所述编码顺序中位于待编码的当前点之前的至少一个邻居点,确定所述当前点的第一量化残差值;Determining a first quantized residual value of the current point based on at least one neighbor point before the current point to be encoded in the encoding order;
确定所述当前点的至少一个第二量化残差值;determining at least one second quantized residual value for the current point;
根据所述第一量化残差值和所述至少一个第二量化残差值,确定第三量化残差值;determining a third quantized residual value based on the first quantized residual value and the at least one second quantized residual value;
编码单元520,用于对所述第三量化残差值进行编码,得到码流。The
在一些实施例中,所述确定单元510具体用于:In some embodiments, the determining
基于所述第一量化残差值,确定所述至少一个第二量化残差值。Based on the first quantized residual value, the at least one second quantized residual value is determined.
在一些实施例中,所述确定单元510具体用于:In some embodiments, the determining
将小于所述第一量化残差值的整数,确定为所述至少一个第二量化残差值。An integer smaller than the first quantized residual value is determined as the at least one second quantized residual value.
在一些实施例中,所述确定单元510具体用于:In some embodiments, the determining
将缺省残差值,确定为所述至少一个第二量化残差值。A default residual value, is determined as the at least one second quantized residual value.
在一些实施例中,所述确定单元510具体用于:In some embodiments, the determining
计算所述第一量化残差值的率失真代价和所述第二量化残差值的率失真代价;calculating a rate-distortion cost for the first quantized residual value and a rate-distortion cost for the second quantized residual value;
将所述第一量化残差值的率失真代价和所述第二量化残差值的率失真代价中的率失真代价最小的量化残差值,确定为所述第三量化残差值。A quantized residual value having the smallest rate-distortion cost among the rate-distortion cost of the first quantized residual value and the rate-distortion cost of the second quantized residual value is determined as the third quantized residual value.
在一些实施例中,所述第一量化残差值的率失真代价的计算方式和所述第二量化残差值的率失真代价的计算方式相同。In some embodiments, the rate-distortion cost of the first quantized residual value is calculated in the same manner as the rate-distortion cost of the second quantized residual value.
在一些实施例中,所述确定单元510具体用于:In some embodiments, the determining
按照以下公式计算所述第一量化残差值或所述第二量化残差值的率失真代价:Calculate the rate-distortion cost of the first quantized residual value or the second quantized residual value according to the following formula:
J 1=D 1+λ×R 1; J 1 =D 1 +λ×R 1 ;
其中,J 1表示所述第一量化残差值的率失真代价时,D 1表示所述当前点的属性原始值与基于所述第一量化残差值确定的所述当前点的属性重建值之间的误差,λ根据所述当前点的量化参数确定,R 1表示所述第一量化残差值在所述码流中所需的比特数;或者,J 1表示所述第二量化残差值的率失真代价时,D 1表示所述当前点的属性原始值与基于所述第二量化残差值确定的所述当前点的属性重建值之间的误差,λ根据所述当前点的量化参数确定,R 1表示所述第二量化残差值在所述码流中所需的比特数。 Wherein, when J 1 represents the rate-distortion cost of the first quantized residual value, D 1 represents the original attribute value of the current point and the reconstructed attribute value of the current point determined based on the first quantized residual value The error between , λ is determined according to the quantization parameter of the current point, R 1 represents the number of bits required by the first quantization residual value in the code stream; or, J 1 represents the second quantization residual value When the rate-distortion cost of the difference, D 1 represents the error between the original attribute value of the current point and the attribute reconstruction value of the current point determined based on the second quantized residual value, and λ is based on the current point The quantization parameter is determined, and R 1 represents the number of bits required by the second quantization residual value in the code stream.
在一些实施例中,λ根据所述当前点的量化参数以及以下中的至少一项确定:In some embodiments, λ is determined according to the quantization parameter of the current point and at least one of the following:
所述当前点云的序列类型、所述当前点的当前分量。The sequence type of the current point cloud and the current component of the current point.
在一些实施例中,所述确定单元510具体用于:In some embodiments, the determining
基于所述编码顺序中位于待编码的当前点之前的至少一个邻居点,确定所述当前点的采用的预测模式;Based on at least one neighbor point before the current point to be encoded in the encoding order, determine the prediction mode adopted by the current point;
基于所述当前点采用的预测模式,确定所述当前点的第一量化残差值。Based on the prediction mode adopted by the current point, determine the first quantization residual value of the current point.
在一些实施例中,所述确定单元510具体用于:In some embodiments, the determining
基于所述至少一个邻居点在各个分量上的差异,确定所述至少一个邻居点的属性差异;determining the attribute difference of the at least one neighbor point based on the difference in each component of the at least one neighbor point;
若所述至少一个邻居点的属性差异小于第一阈值,则将第一预测模式确定为所述当前点采用的预测 模式;所述第一预测模式指基于所述至少一个邻居点的加权平均值对所述当前点的属性值进行预测的预测模式。If the attribute difference of the at least one neighbor point is less than the first threshold, the first prediction mode is determined as the prediction mode adopted by the current point; the first prediction mode refers to a weighted average based on the at least one neighbor point A prediction mode for predicting the attribute value of the current point.
在一些实施例中,所述确定单元510具体用于:In some embodiments, the determining
将所述至少一个邻居点在各个分量上的差异中的最大差异,确定所述至少一个邻居点的属性差异。The attribute difference of the at least one neighbor point is determined by using the maximum difference among the differences of the at least one neighbor point on each component.
在一些实施例中,所述编码单元520还用于:In some embodiments, the
若所述至少一个邻居点的属性差异大于或等于所述第一阈值,则将至少一个第二预测模式中率失真代价最小的预测模式,确定为所述当前点采用的预测模式;所述至少一个第二预测模式和所述至少一个邻居点一一对应,所述第二预测模式指将所述至少一个邻居点中与所述第二预测模式对应的邻居点的属性重建值作为所述当前点的属性预测值的预测模式;If the attribute difference of the at least one neighbor point is greater than or equal to the first threshold, determine the prediction mode with the smallest rate-distortion cost in the at least one second prediction mode as the prediction mode adopted by the current point; the at least A second prediction mode has a one-to-one correspondence with the at least one neighbor point, and the second prediction mode refers to using the attribute reconstruction value of the neighbor point corresponding to the second prediction mode among the at least one neighbor point as the current The prediction mode of the predicted value of the attribute of the point;
将所述当前点采用的预测模式写入所述码流。Write the prediction mode adopted by the current point into the code stream.
在一些实施例中,所述确定单元510还用于:In some embodiments, the determining
基于所述第二预测模式对应的邻居点在各个分量上的属性重建值,确定所述当前点在各个分量上的量化残差值;Determine the quantized residual value of the current point on each component based on the attribute reconstruction value on each component of the neighbor point corresponding to the second prediction mode;
将所述当前点在各个分量上的量化残差值的和,确定为所述第二预测模式的率失真代价。Determining the sum of the quantized residual values of the current point on each component as the rate-distortion cost of the second prediction mode.
在一些实施例中,所述确定单元510具体用于:In some embodiments, the determining
基于所述当前点采用的预测模式,确定所述当前点的属性预测值;Determine the predicted attribute value of the current point based on the prediction mode adopted by the current point;
计算所述当前点的属性原始值与所述当前点的属性预测值之间的差值;calculating the difference between the original value of the attribute of the current point and the predicted value of the attribute of the current point;
将所述差值与所述当前点采用的量化步长的比值,确定为所述第一量化残差值;所述当前点采用的量化步长根据所述当前点的量化参数确定。Determining the ratio of the difference to the quantization step used by the current point as the first quantization residual value; the quantization step used by the current point is determined according to the quantization parameter of the current point.
在一些实施例中,所述编码顺序包括细节层LOD顺序。In some embodiments, the encoding order comprises a layer of detail LOD order.
在一些实施例中,所述确定单元510具体用于:In some embodiments, the determining
将所述至少一个邻居点的加权平均值,确定为所述当前点的属性预测值;Determining the weighted average of the at least one neighbor point as the attribute prediction value of the current point;
计算所述当前点的属性原始值与所述当前点的属性预测值之间的差值;calculating the difference between the original value of the attribute of the current point and the predicted value of the attribute of the current point;
将所述差值与所述当前点采用的量化步长的比值,确定为所述第一量化残差值;所述当前点采用的量化步长根据所述当前点的量化参数确定。Determining the ratio of the difference to the quantization step used by the current point as the first quantization residual value; the quantization step used by the current point is determined according to the quantization parameter of the current point.
在一些实施例中,所述编码顺序包括莫顿重顺序或希尔伯特顺序。In some embodiments, the encoding order comprises a Morton's order or a Hilbert order.
需要说明的是,该编码器500也可以结合至图4所示的编码框架,即可将该编码器500中的单元替换或结合至编码框架中的相关部分。例如,该确定单元510可对应于编码框架中的属性变换(Transfer attributes)单元111、区域自适应分层变换(Region Adaptive Hierarchical Transform,RAHT)单元112、预测变化(predicting transform)单元113或提升变化(lifting transform)单元114,再如,该编码单元520可对应编码框架中的第二算术编码单元116。It should be noted that the
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,编码器500可以对应于执行本申请实施例的方法300或方法400中的相应主体,并且编码器500中的各个单元分别为了实现方法300或方法400中的相应流程,为了简洁,在此不再赘述。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, details are not repeated here. Specifically, the
还应当理解,本申请实施例涉及的编码器500中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该编码器500也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括例如中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的通用计算机的通用计算设备上运行能够执行相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造本申请实施例涉及的编码器500,以及来实现本申请实施例提供的编码方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于任意具有数据处理能力的电子设备,并在其中运行,来实现本申请实施例的相应方法。It should also be understood that the various units in the
换言之,上文涉及的单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过软硬件结合的形式实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件组合执行完成。可选地,软件可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。In other words, the units mentioned above can be implemented in the form of hardware, can also be implemented by instructions in the form of software, and can also be implemented in the form of a combination of software and hardware. Specifically, each step of the method embodiment in the embodiment of the present application can be completed by an integrated logic circuit of the hardware in the processor and/or instructions in the form of software, and the steps of the method disclosed in the embodiment of the present application can be directly embodied as hardware The execution of the decoding processor is completed, or the combination of hardware and software in the decoding processor is used to complete the execution. Optionally, the software may be located in mature storage media in the field such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, and registers. The storage medium is located in the memory, and the processor reads the information in the memory, and completes the steps in the above method embodiments in combination with its hardware.
图21是本申请实施例提供的编解码设备600的示意结构图。FIG. 21 is a schematic structural diagram of a
如图21所示,该编解码设备600至少包括处理器610以及计算机可读存储介质620。其中,处理器610以及计算机可读存储介质620可通过总线或者其它方式连接。计算机可读存储介质620用于存储计算机程序621,计算机程序621包括计算机指令,处理器610用于执行计算机可读存储介质620存储的计算机指令。处理器610是编解码设备600的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。As shown in FIG. 21 , the
作为示例,处理器610也可称为中央处理器(Central Processing Unit,CPU)。处理器610可以包括但不限于:通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。As an example, the
作为示例,计算机可读存储介质620可以是高速RAM存储器,也可以是非不稳定的存储器(Non-VolatileMemory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器610的计算机可读存储介质。具体而言,计算机可读存储介质620包括但不限于:易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。As an example, the computer-
在一种实现方式中,该编解码设备600可以是图6所示的编码框架或图20所示的编码器500;该计算机可读存储介质620中存储有第一计算机指令;由处理器610加载并执行计算机可读存储介质620中存放的第一计算机指令,以实现本申请实施例提供的编码方法中的相应步骤,为避免重复,此处不再赘述。In one implementation, the
根据本申请的另一方面,本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是编解码设备600中的记忆设备,用于存放程序和数据。例如,计算机可读存储介质620。可以理解的是,此处的计算机可读存储介质620既可以包括编解码设备600中的内置存储介质,当然也可以包括编解码设备600所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了编解码设备600的操作系统。并且,在该存储空间中还存放了适于被处理器610加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或多个的计算机程序621(包括程序代码)。这些计算机指令指令用于计算机执行上述各种可选方式中提供的编码方法。According to another aspect of the present application, the embodiment of the present application further provides a computer-readable storage medium (Memory). The computer-readable storage medium is a memory device in the
根据本申请的另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。例如,计算机程序621。此时,编解码设备600可以是计算机,处理器610从计算机可读存储介质620读取该计算机指令,处理器610执行该计算机指令,使得该计算机执行上述各种可选方式中提供的编码方法。According to another aspect of the present application, there is provided a computer program product or computer program comprising computer instructions stored in a computer readable storage medium. For example,
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地运行本申请实施例的流程或实现本申请实施例的功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质进行传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。In other words, when implemented using software, it may 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 the computer, the procedures of the embodiments of the present application are run in whole or in part or the functions of the embodiments of the present application are realized. The computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable device. The computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, from a website, computer, server, or data center via Wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) transmission to another website site, computer, server or data center.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元以及流程步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those skilled in the art can appreciate that the units and process steps of the examples described in conjunction with the embodiments disclosed herein can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are executed by hardware or software depends on the specific application and design constraints of the technical solution. Skilled artisans may use different methods to implement the described functions for each specific application, but such implementation should not be regarded as exceeding the scope of the present application.
最后需要说明的是,以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。Finally, it should be noted that the above content is only a specific embodiment of the application, but the scope of protection of the application is not limited thereto. Anyone familiar with the technical field can easily think of Any changes or substitutions shall fall within the scope of protection of this application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims (21)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2022/077707 WO2023159428A1 (en) | 2022-02-24 | 2022-02-24 | Encoding method, encoder, and storage medium |
| CN202280092029.XA CN118765499A (en) | 2022-02-24 | 2022-02-24 | Coding method, encoder and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2022/077707 WO2023159428A1 (en) | 2022-02-24 | 2022-02-24 | Encoding method, encoder, and storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023159428A1 true WO2023159428A1 (en) | 2023-08-31 |
Family
ID=87764453
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/077707 Ceased WO2023159428A1 (en) | 2022-02-24 | 2022-02-24 | Encoding method, encoder, and storage medium |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN118765499A (en) |
| WO (1) | WO2023159428A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250110499A1 (en) * | 2023-09-28 | 2025-04-03 | Intel Corporation | Tokenized voxels for representing a workspace using multi-level nets |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109495757A (en) * | 2018-10-26 | 2019-03-19 | 西安科锐盛创新科技有限公司 | Bandwidth reduction quantization and quantification method |
| US20210006765A1 (en) * | 2019-07-05 | 2021-01-07 | Tencent America LLC | Method and apparatus for inter-channel prediction and transform for point-cloud attribute coding |
| CN112218077A (en) * | 2019-07-11 | 2021-01-12 | 腾讯美国有限责任公司 | Method and device for encoding point cloud attributes between channels and readable storage medium |
| CN113192148A (en) * | 2021-04-12 | 2021-07-30 | 中山大学 | Attribute prediction method, device, equipment and medium based on palette |
| US20210314616A1 (en) * | 2020-04-07 | 2021-10-07 | Qualcomm Incorporated | Predictor index signaling for predicting transform in geometry-based point cloud compression |
-
2022
- 2022-02-24 WO PCT/CN2022/077707 patent/WO2023159428A1/en not_active Ceased
- 2022-02-24 CN CN202280092029.XA patent/CN118765499A/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109495757A (en) * | 2018-10-26 | 2019-03-19 | 西安科锐盛创新科技有限公司 | Bandwidth reduction quantization and quantification method |
| US20210006765A1 (en) * | 2019-07-05 | 2021-01-07 | Tencent America LLC | Method and apparatus for inter-channel prediction and transform for point-cloud attribute coding |
| CN112218077A (en) * | 2019-07-11 | 2021-01-12 | 腾讯美国有限责任公司 | Method and device for encoding point cloud attributes between channels and readable storage medium |
| US20210314616A1 (en) * | 2020-04-07 | 2021-10-07 | Qualcomm Incorporated | Predictor index signaling for predicting transform in geometry-based point cloud compression |
| CN113192148A (en) * | 2021-04-12 | 2021-07-30 | 中山大学 | Attribute prediction method, device, equipment and medium based on palette |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250110499A1 (en) * | 2023-09-28 | 2025-04-03 | Intel Corporation | Tokenized voxels for representing a workspace using multi-level nets |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118765499A (en) | 2024-10-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2022140937A1 (en) | Point cloud encoding method and system, point cloud decoding method and system, point cloud encoder, and point cloud decoder | |
| WO2022133753A1 (en) | Point cloud encoding and decoding methods and systems, point cloud encoder, and point cloud decoder | |
| JP2024505796A (en) | Point cloud decoding method, point cloud encoding method, decoder and encoder | |
| TW202249488A (en) | Point cloud attribute prediction method and apparatus, and codec | |
| US20250024040A1 (en) | Method for index determination and decoder | |
| WO2023159428A1 (en) | Encoding method, encoder, and storage medium | |
| WO2022133752A1 (en) | Point cloud encoding method and decoding method, and encoder and decoder | |
| CN117751574A (en) | Decoding method, encoding method, decoder, and encoder | |
| WO2024221456A1 (en) | Decoding method, encoding method, training method, decoder and encoder | |
| WO2024174086A1 (en) | Decoding method, encoding method, decoders and encoders | |
| WO2024168613A1 (en) | Decoding method, encoding method, decoder, and encoder | |
| WO2023123284A1 (en) | Decoding method, encoding method, decoder, encoder, and storage medium | |
| US20250024041A1 (en) | Method for index determination, decoder, encoder, and bitstream | |
| WO2023240455A1 (en) | Point cloud encoding method and apparatus, encoding device, and storage medium | |
| CN118900335B (en) | Decoding method, encoding method, decoder and encoder | |
| WO2022257155A1 (en) | Decoding method, encoding method, decoder, encoder, encoding device and decoding device | |
| WO2025010590A1 (en) | Decoding method, coding method, decoder, and coder | |
| WO2023240660A1 (en) | Decoding method, encoding method, decoder, and encoder | |
| WO2024212228A9 (en) | Coding method, coder, electronic device, and storage medium | |
| WO2022217472A1 (en) | Point cloud encoding and decoding methods, encoder, decoder, and computer readable storage medium | |
| WO2024065272A1 (en) | Point cloud coding method and apparatus, point cloud decoding method and apparatus, and device and storage medium | |
| WO2025213421A1 (en) | Encoding method, decoding method, bitstream, encoder, decoder, and storage medium | |
| WO2023173238A1 (en) | Encoding method, decoding method, code stream, encoder, decoder, and storage medium | |
| WO2024077548A1 (en) | Point cloud decoding method, point cloud encoding method, decoder, and encoder |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22927717 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202280092029.X Country of ref document: CN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22927717 Country of ref document: EP Kind code of ref document: A1 |