WO2023015530A1 - Point cloud encoding and decoding methods, encoder, decoder, and computer readable storage medium - Google Patents
Point cloud encoding and decoding methods, encoder, decoder, and computer readable storage medium Download PDFInfo
- Publication number
- WO2023015530A1 WO2023015530A1 PCT/CN2021/112338 CN2021112338W WO2023015530A1 WO 2023015530 A1 WO2023015530 A1 WO 2023015530A1 CN 2021112338 W CN2021112338 W CN 2021112338W WO 2023015530 A1 WO2023015530 A1 WO 2023015530A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point cloud
- processed
- information
- points
- node
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 110
- 238000005070 sampling Methods 0.000 claims abstract description 53
- 238000001914 filtration Methods 0.000 claims description 79
- 239000011159 matrix material Substances 0.000 claims description 63
- 230000009466 transformation Effects 0.000 claims description 55
- 230000008569 process Effects 0.000 claims description 49
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000013139 quantization Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000002595 magnetic resonance imaging Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 210000000056 organ Anatomy 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 101000638069 Homo sapiens Transmembrane channel-like protein 2 Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 102100032054 Transmembrane channel-like protein 2 Human genes 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Definitions
- the embodiments of the present application relate to the technical field of point cloud encoding and decoding, and in particular, to a point cloud encoding and decoding method, an encoder, a decoder, and a computer-readable storage medium.
- the target point cloud after equal interval sampling still contains a large number of points, resulting in a high time complexity for using the LMS method to solve the global motion transformation matrix (Mat_GM), and the target point cloud after sampling has a certain high frequency and low frequency noise information.
- Mot_GM global motion transformation matrix
- Embodiments of the present application provide a point cloud encoding and decoding method, an encoder, a decoder, and a computer-readable storage medium, which can reduce time complexity in a motion compensation process.
- the embodiment of the present application provides a point cloud encoding method, including:
- image filtering sampling is performed on the point cloud to be processed to obtain a first point cloud after image filtering sampling
- the embodiment of the present application provides a point cloud decoding method, including:
- the motion-related information is obtained by calculating the first point cloud after image filtering and sampling of the point cloud to be processed in the point cloud to be encoded, and the reference point cloud;
- motion compensation is performed on the reference point cloud, and the geometric code stream is decoded to obtain decoded information.
- an encoder including:
- the first determination part is configured to determine, based on the point cloud to be encoded, the point cloud to be processed in the block to be processed; based on the distance between two points in the point cloud to be processed, determine the edge weight between the two points , so as to determine the graph filter;
- the filtering part is configured to perform image filtering and sampling on the point cloud to be processed based on the image filter, to obtain a first point cloud after image filtering and sampling;
- the encoding part is configured to compensate the reference point cloud based on the first point cloud, and then encode the point cloud to be encoded.
- an encoder including:
- the first memory is used to store executable point cloud coding instructions
- the first processor is configured to implement the point cloud encoding method described by the encoder when executing the executable point cloud encoding instruction stored in the first memory.
- the embodiment of the present application provides a decoder, including:
- the decoding part is configured to analyze the code stream, and obtain geometric encoding results and motion-related information;
- the motion-related information is the first point cloud after image filtering and sampling of the point cloud to be processed in the point cloud to be encoded, and the reference point cloud calculated;
- an acquisition part configured to acquire the decoded reference point cloud
- the decoding part is further configured to perform motion compensation on the reference point cloud based on the motion-related information and the reference point cloud, and decode the geometric code stream to obtain decoded information.
- the embodiment of the present application also provides a decoder, including:
- the second memory is used to store executable point cloud decoding instructions
- the second processor is configured to implement the point cloud decoding method described in the decoder when executing the executable point cloud decoding instruction stored in the second memory.
- the embodiment of the present application provides a computer-readable storage medium, which stores executable point cloud encoding instructions, and is used to cause the first processor to implement the point cloud encoding method described in the encoder; or, Executable point cloud decoding instructions are stored for causing the second processor to implement the point cloud decoding method described in the decoder.
- the embodiment of the present application provides a point cloud encoding and decoding method, an encoder, a decoder, and a computer-readable storage medium.
- the encoder can perform global motion compensation and local motion compensation on the reference point cloud during the point cloud encoding process.
- the point cloud to be processed is first filtered and sampled to reduce the number of points participating in the midpoint of the point cloud to be processed, so that the calculation time can be reduced in the process of calculating motion information or global motion transformation matrix using the filtered and sampled point cloud Complexity, thereby improving the encoding time efficiency.
- FIG. 1 is a block diagram of an exemplary encoding system provided by an embodiment of the present application
- FIG. 2 is a block diagram of an exemplary decoding system provided by an embodiment of the present application.
- Fig. 3 is the flowchart of a kind of point cloud encoding method provided by the embodiment of the present application.
- FIG. 4 is a schematic diagram 1 of an exemplary octree division provided by an embodiment of the present application.
- FIG. 5 is a schematic diagram 2 of an exemplary octree division provided by the embodiment of the present application.
- FIG. 6 is an exemplary edge weight connection diagram provided by an embodiment of the present application.
- FIG. 7 is a schematic diagram 3 of an exemplary octree division provided by the embodiment of the present application.
- FIG. 8 is a schematic diagram of an exemplary local motion compensation provided by an embodiment of the present application.
- FIG. 9 is an exemplary coding flowchart provided by the embodiment of the present application.
- FIG. 10 is a flowchart of a point cloud decoding method provided by an embodiment of the present application.
- Fig. 11 is an exemplary decoding flowchart provided by the embodiment of the present application.
- FIG. 12 is a structural diagram 1 of an encoder provided in an embodiment of the present application.
- FIG. 13 is a second structural diagram of an encoder provided in the embodiment of the present application.
- FIG. 14 is a structural diagram 1 of a decoder provided by an embodiment of the present application.
- FIG. 15 is the second structural diagram of a decoder provided in the embodiment of the present application.
- Point cloud refers to a set of discrete point sets randomly distributed in space, expressing the spatial structure and surface properties of 3D objects or 3D scenes.
- Point cloud data is a specific record form of point cloud, and the points in the point cloud can include point location information and point attribute information.
- the point position information may be three-dimensional coordinate information of the point.
- the location information of a point may also be referred to as geometric information of a point.
- the attribute information of a point may include color information and/or reflectivity and the like.
- the color information may be information on any color space.
- the color information may be (RGB).
- the color information may be luminance and chrominance (YcbCr, YUV) information.
- Y represents brightness (Luma)
- Cb (U) represents blue color difference
- Cr (V) represents red color
- U and V are expressed as chromaticity (Chroma) for describing color difference information.
- the points in the point cloud may include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point.
- the points in the point cloud may include three-dimensional coordinate information and color information of the point.
- the points in the point cloud 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.
- Ways to obtain point cloud data may include but not limited to at least one of the following: (1) Generated by computer equipment.
- the computer device can generate point cloud data according to virtual three-dimensional objects and virtual three-dimensional scenes.
- Point cloud data of static real-world 3D objects or 3D scenes can be obtained through 3D laser scanning, and millions of point cloud data can be obtained per second;
- 3D photography equipment that is, a group of cameras or camera equipment with multiple lenses and sensors
- 3D photography can obtain dynamic real world three-dimensional objects Or point cloud data of a 3D scene.
- point cloud data of biological tissues and organs can be obtained through magnetic resonance imaging (Magnetic Resonance Imaging, MRI), electronic computer tomography (Computed Tomography, CT), electromagnetic positioning information and other medical equipment.
- Magnetic Resonance Imaging Magnetic Resonance Imaging
- CT electronic computer tomography
- electromagnetic positioning information and other medical equipment.
- Point clouds can be divided into dense point clouds and sparse point clouds according to the way of acquisition.
- point cloud is divided into:
- the first type of static point cloud that is, 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 still;
- the third type of dynamic acquisition of point clouds the equipment for acquiring point clouds is in motion.
- point cloud According to the purpose of point cloud, it can be divided into two categories:
- Category 1 Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and emergency rescue robots;
- Category 2 Human eyes perceive point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
- Point cloud data can be used to form point cloud media, which can be a media file.
- the point cloud media may include multiple media frames, and each media frame in the point cloud media is composed of point cloud data.
- Point cloud media can flexibly and conveniently express the spatial structure and surface properties of 3D objects or 3D scenes, so it is widely used.
- the encoded code stream is encapsulated to form an encapsulated file, which can be used for transmission to the user.
- the point cloud media player side it is necessary to decapsulate the encapsulated file first, then decode it, and finally present the decoded data stream.
- Package files may also be referred to as point cloud files.
- point clouds can be encoded through the Point Cloud Encoding Framework.
- the point cloud coding framework can be a geometry-based point cloud compression (Geometry Point Cloud Compression, G-PCC) codec framework or a video-based point cloud compression (Video Point Cloud Compression) provided by the Moving Picture Experts Group (MPEG). Cloud Compression, V-PCC) codec framework, or the AVS-PCC codec framework provided by Audio Video Standard (AVS).
- 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.
- the codec framework applicable to the embodiment of the present application will be described below using the G-PCC codec framework.
- Fig. 1 is a schematic block diagram of a coding framework 100 provided by an embodiment of the present application.
- the encoding framework 100 can acquire position information (geometric information) and attribute information of point clouds from the acquisition device.
- the encoding of point cloud includes geometric encoding and attribute encoding.
- the geometry encoding process includes: performing preprocessing on the original point cloud such as coordinate transformation, quantization and removing duplicate points, etc.; based on the reference point cloud, performing motion compensation and constructing an octree before encoding to form a geometric code stream.
- 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.
- position coding 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, global motion compensation unit 1031 and local motion compensation unit 1032, octree analysis (Analyze octree) unit 103, geometric reconstruction ( Reconstruct geometry) unit 104 and a first arithmetic encoding (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 global motion compensation unit 1031 uses the global motion matrix to perform motion compensation on the first reference point cloud to determine the corresponding second reference point cloud.
- An octree is constructed, and then the current point cloud is predicted and encoded based on the second reference point cloud or the first reference point cloud.
- the octree analysis unit 103 may use an octree encoding method to encode the position information of the quantized points.
- the point cloud in the form of an octree For example, divide the point cloud in the form of an octree, first determine the bounding box of the point cloud according to the maximum and minimum coordinate values of the point cloud, and construct the root node of the octree (including all points in the point cloud); then Carry out eight equal divisions to the bounding box of the point cloud to obtain eight child nodes; if a child node is empty (does not contain points), then mark the node as 0, stop division; if a child node is not empty (contains points ), then mark the node as 1, then continue to divide the node into eight equal parts until each child node contains at most 1 point, such a child node is called a leaf node; in this way, the geometric information of the point cloud will be Expressed as a binary code stream.
- local motion compensation can be performed on the reference nodes in the reference point cloud through the local motion compensation unit 1032, and according to the octree of the reference nodes after local motion compensation
- the division mode (node occupancy information) predicts the octree division mode of the current node to obtain the context information of the current node.
- the first arithmetic coding unit 105 combines the node occupancy information output by the octree analysis unit 103 or the local motion compensation unit 1032 with the context information to generate a geometric code stream; the geometric code stream can also be called a geometric bit stream ( geometry bitstream).
- Attribute coding can be achieved 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.
- the attribute transformation unit 111 can be used to obtain the real value of the attribute information of the point.
- the attribute information may be color information of dots.
- 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, so as to obtain the predicted values of the attribute information of the points, Furthermore, the residual value of the attribute information of the point can be obtained based on the predicted value of the attribute information of the point.
- the residual value of the point's attribute information may be the actual value of the point's attribute information minus the predicted value of the point's attribute information.
- the prediction transformation unit 113 can also be used to generate a level of detail (LOD), sequentially predict the attribute information of points in the LOD, and calculate the prediction residual for subsequent quantization and coding.
- LOD level of detail
- Fig. 2 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 position decoding process includes: performing arithmetic decoding on the geometric code stream; and using the reference point cloud to reconstruct the position information of the point, and performing coordinate transformation to obtain the geometric coordinate value of the 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 point's position information obtained in the position decoding process, one of the three prediction modes is selected for point cloud prediction, and the reconstruction value of the point's attribute information is obtained; the color space is performed on the reconstruction value of the point's attribute information Inverse transform to get the decoded point cloud.
- position decoding can be realized by the following units: first arithmetic decoding unit 201, global motion compensation unit 2021, octree analysis (synthesize octree) unit 202, local motion compensation unit 2022, geometric reconstruction (Reconstruct geometry) A unit 203 and an 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.
- decompression is an inverse process of compression.
- the functions of each unit in the decoding framework 200 may refer to the functions of corresponding units in the encoding framework 100 .
- decoding framework 200 may include more, fewer or different functional components than in FIG. 3 .
- the point cloud encoding method proposed in the embodiment of the present application acts on the global motion compensation unit and the local motion compensation unit in FIG. 1
- the point cloud decoding method acts on the global motion compensation unit and the local motion compensation unit in FIG. 2 .
- the embodiment of the present application provides a point cloud encoding method, which is applied to an encoder, and the method may include:
- the 3D image model to be encoded is a point cloud in space, and the point cloud may be geometric information and attribute information of the 3D image model.
- the geometric information of the point cloud to be encoded and the attribute information corresponding to each point are encoded separately.
- the inter-frame prediction based on octree geometric information coding during geometric information coding is realized by using the point cloud coding method provided by the embodiment of the present application.
- the first frame in a video sequence to be encoded can be predicted through intra-frame prediction, and the frames before the first frame use inter-frame prediction.
- the encoder when performing point cloud encoding on the current point cloud to be encoded, for the point cloud to be encoded, the encoder can combine image filtering processing in the process of performing global motion compensation and/or local motion compensation, and follow The frequency information of the point is used to sample the point cloud to obtain the filtered and sampled point cloud. Based on the filtered and sampled point cloud, the motion estimation is performed to obtain the motion information. The motion compensation is performed on the reference point cloud using the motion information, and the compensated point cloud is used. The current point cloud is predicted and encoded with reference to the point cloud.
- the encoder can filter and sample the global point cloud obtained by calculating the global motion transformation matrix, and then encode the point cloud to be processed based on the obtained point cloud to be processed.
- the encoder can also perform image filtering and sampling on the current node in the point cloud to be encoded and the corresponding reference node in the reference point cloud, determine the motion information, and finally perform local motion on the reference node based on the motion information Compensation, and then perform predictive coding on the current node.
- the encoder may also implement the local motion compensation described above in the subsequent process of performing octree division after performing the above global motion compensation, which is not limited in this embodiment of the present application.
- the determination process of the block to be processed is as follows: the encoder determines the object point cloud within the preset range that satisfies the Z direction based on the point cloud to be encoded (object after downsampling) point cloud); and divide the object point cloud into blocks to obtain multiple blocks to be processed. Among them, the point cloud in each block to be processed is the point cloud to be processed.
- the encoder divides the current point cloud into object and road according to the thresholds top_z_boundary and bottom_z_boundary of the z coordinates of the point cloud to be encoded (that is, the current point cloud) (z ⁇ bottom_z_boundary or z>top_z_boundary is object, and the rest
- the encoder divides the current point cloud into object and road according to the thresholds top_z_boundary and bottom_z_boundary of the z coordinates of the point cloud to be encoded (that is, the current point cloud) (z ⁇ bottom_z_boundary or z>top_z_boundary is object, and the rest
- For the road down-sample the object to be coded point cloud to obtain the target point cloud, then divide the target point cloud into blocks to obtain multiple blocks to be processed, so as to obtain the corresponding point cloud to be processed in each block to be processed.
- the encoder can perform image filtering on all blocks to be processed, and perform sampling based on frequency information to obtain the first point cloud after image filtering and sampling, thereby reducing the number of points in the point cloud. After the number, the corresponding point of the first point cloud is found from the first reference point cloud, and the global motion transformation matrix (Mat_GM) is solved by the LMS algorithm.
- the determination process of the point cloud block to be processed is as follows: the encoder performs eight-point analysis on one of the first reference point cloud and the second reference point cloud, and the point cloud to be encoded. Tree division, obtain the size information of the reference node at the current level of the reference block (cuboid), and the size information of the current block (cuboid) of the current node at the current level; the size information of the current reference block and the size information of the current block represent the current reference When the block and the current block belong between the largest prediction unit (LPU) and the smallest prediction unit (minPU), the points in the current reference node and the current node are determined as point clouds to be processed.
- LPU largest prediction unit
- minPU smallest prediction unit
- the encoder needs to perform octree division on the first reference point cloud or the second reference point cloud, and the point cloud to be encoded.
- the current node's Coordinate information and coordinate information of the current reference node, and the size of the block divided by the current level that is, the size information of the current reference block at the current level (such as the volume of a cuboid), and the size information of the current block of the current node at the current level .
- the node size of the octree when the node size of the octree is between the LPU maximum prediction unit and the minPU minimum prediction unit (the LPU and the minPU are both PUs), according to the current node of the current point cloud to be encoded, and the first The first reference point cloud or the reference node of the second reference point cloud calculates the local motion vector MV (ie motion information), and applies the MV to the reference node for local motion estimation, and then performs local motion compensation to obtain the compensated reference node.
- MV ie motion information
- the reference node and the current node are determined to be processed point cloud.
- the process of solving the local motion vector MV after performing graph filtering on the current node and reference node of the current point cloud to be encoded, and then estimating the local motion vector MV, it can reduce Participate in determining the number of motion information points, and then reduce the time complexity when calculating motion information.
- the encoder finds the maximum and minimum values of the coordinates corresponding to each coordinate component in the three dimensions of x, y and z, namely ⁇ x max , x min ⁇ , ⁇ y max , y min ⁇
- d ceil(log 2 (max ⁇ max(x max ,y max ) , z max ⁇ )) with ⁇ z max , z min ⁇
- the ceil() function represents rounding up.
- the encoder divides the bounding box into 8 sub-cubes, as shown in Figure 4, and continues to divide the sub-cubes that are not empty (including points in the point cloud) until the leaf node obtained by the division is 1 ⁇ 1 ⁇ 1 unit cube (or a cube with a preset size) to stop dividing, the tree structure of the octree is shown in FIG. 5 .
- the encoder can obtain the occupancy information of a current node (a cube, that is, a block) (indicating whether the point in the contained point cloud is empty or not), and the current node Neighborhood information (the number and details of adjacent nodes, etc.).
- a current node a cube, that is, a block
- the current node Neighborhood information the number and details of adjacent nodes, etc.
- the encoder can also slice the point cloud data to be encoded. After coordinate conversion and voxelization, first perform global motion compensation and then enter the process of octree division.
- each level of the octree has at least one node.
- the encoder can obtain the coordinate information of the current node in the division process based on the geometric information, as well as the current node division. current level.
- the level can be understood as the number of layers of the tree, and at each current level, after determining whether to perform local motion information compensation processing on the current node, continue to divide the octree at the next level.
- the encoder can obtain the coordinate information of the current node and the current level corresponding to the current node in real time during the process of dividing the octree. There is only one node in the first level, and each subsequent level is realized by dividing each node of the previous level into 8 nodes.
- the point cloud block to be processed contains multiple points, that is, the point cloud to be processed contains multiple points, and the encoder can determine the distance between two points, and determine the distance between the two points according to the coordinate information of the point. distance between.
- the encoder may determine the edge weight between the two points based on the distance between the two points and the weight segmentation function, and then construct a graph filter based on the edge weight between the two points.
- the edge weight distance between two points is related to the distance between the two points.
- the encoder determines the edge weights between the two points based on the distance between the two points in the point cloud to be processed, thereby obtaining the adjacency matrix formed by the edge weights in the point cloud to be processed; based on the adjacency matrix that determines the graph filter.
- the encoder obtains the edge weights between two points, and the edge weights between points form an adjacency matrix; according to the adjacency matrix, a graph filter can be constructed.
- the function of the image filter is to filter the input image signal to obtain an output image signal including frequency, and then perform a sampling operation on the output image signal.
- the encoder performs processing based on the preset parameter threshold and the distance between the two points to obtain the two points Edge weight between points; if the distance between two points in the point cloud block to be processed is greater than the preset distance threshold, the edge weight between the two points is zero.
- the distance between two points is related to the edge weight between the two points.
- weight segmentation function may be as shown in formula (1), as follows:
- w i, j is the weight of the edge of the line between point i and point j, that is, the weight of the edge, x i and x j represent the three-dimensional coordinates of point i and point j, ⁇ is the preset parameter threshold, ⁇ is the preset Set the distance threshold.
- the preset distance threshold is determined based on the preset KNN search parameter and the side length of the block where the point cloud to be processed is located; wherein, the preset KNN search parameter is between 0-1; the preset parameter threshold is A multiple of the preset distance threshold, where the value of the multiple is not limited.
- ⁇ ⁇ 2.
- the encoder uses the KNN algorithm to calculate the distance between two points in the block, and sets ⁇ as the radius of the KNN search, and only calculates the distance between the two points in the points after the KNN search, which effectively reduces time complexity.
- the global motion compensation process is taken as an example for illustration.
- the encoder divides pc_world_target into multiple blocks, and constructs a graph in each block.
- the size of the block is consistent with the default parameter motion.motion_block_size in TMC13v12InterEMv2.0, for example, 64, which is not limited in the embodiment of the present application. If there are N points in the point cloud to be processed, the number of points in each block is N, N is the number of points in the block, and the weight w i, j of the edge between points is related to the distance between points.
- the encoder performs weighted summation according to the adjacency matrix to obtain a weighted degree matrix (D); inverts the weighted degree matrix and multiplies it with the adjacency matrix to obtain a graph transformation operator (A) ; Construct a polynomial based on the graph transformation operator, the preset graph filter parameters (h l ) and the length (L) of the graph filter to determine the graph filter.
- the input of the graph filter is a graph signal (ie, the three-dimensional coordinates of the point), and the output is another graph signal (ie, the three-dimensional coordinates of the point).
- the encoder performs weighted summation according to the adjacency matrix to obtain a weighted degree matrix (D), as shown in formula (2):
- D is the weighted degree matrix of the graph (weighted degree matrix), which is a diagonal matrix.
- w i, j is the weight of the edge of the line between point i and point j, that is, the edge weight.
- the encoder inverts the weighted degree matrix and multiplies it with the adjacency matrix to obtain a graph transformation operator (A), as shown in formula (3):
- A refers to the graph shift operator
- D is the weighted degree matrix of the graph
- W is the adjacency matrix of the graph.
- the preset graph filtering parameters (h l ) and the length (L) of the graph filter to construct a linear, translation-invariant shift-invariant graph filter as a polynomial (4):
- h l is a parameter of the graph filter (ie, a preset graph filter parameter), and L is a length of the graph filter.
- N is the number of points in the block
- S is the input graph signal (3D coordinates of points in a block).
- the encoder After obtaining the image filter, the encoder performs image filtering and sampling on all point clouds to be processed, and obtains the first point cloud after image filtering and sampling.
- the encoder can also determine whether to perform image filtering according to the number of points in the block to be processed. If the number of points is 1, the point is directly filtered out; if the number of points is less than the preset number of points, no image filtering is performed; If the number of points is greater than or equal to the preset number of points, image filtering is performed.
- the preset number of points is 6, which is not limited in this embodiment of the present application.
- the encoder performs graph filtering on the point cloud to be processed based on the graph filter to obtain the second point cloud with frequency information; performs frequency domain sampling on the points of the second point cloud according to the frequency information to obtain
- the point cloud block sampled by graph filtering is the first point cloud.
- the point cloud composed of all the point cloud blocks sampled by graph filtering is called the first point cloud.
- the process of the encoder sampling the point cloud block containing frequency information is: the encoder performs two-dimensional sampling of the three-dimensional coordinates of the points in the point cloud block containing frequency information. Norm sorting to obtain the frequency value corresponding to each point after sorting; according to the preset filtering ratio, remove the lowest frequency and highest frequency from the frequency value corresponding to each point after sorting to obtain the remaining frequency value; the remaining frequency Points corresponding to values in the second point cloud constitute the first point cloud after sampling.
- the encoder can use many extraction methods for the frequency extraction process of the points in the second point cloud, not limited to the two-norm extraction method mentioned in the embodiment of the present application.
- the number of points in the block is N ⁇ 6
- image filtering is performed on all points in the block, and sampling is performed based on the frequency information of the points to remove high-frequency points and low-frequency points.
- the input of the graph filter is the three-dimensional coordinates of all points in the block
- the output graph signal is the three-dimensional coordinates with frequency information.
- the encoder sorts the obtained bi-norm of the output image signal as the frequency value of the point.
- the encoder removes points with too high or too low frequency from it, and finally gets the points after graph filtering. Perform the above operations on all blocks in pc_world_target, and finally get the remaining point cloud pc_reserve after image filtering.
- a parameter ratioFilteredOut is added to the cfg file, which indicates the ratio of filtering out the second point cloud midpoint after sorting, that is, the preset filtering ratio.
- the preset filtering ratio can be the same ratio that both high frequency and low frequency need to be filtered out, or different ratios can be set for high frequency and low frequency, which is not limited in this embodiment of the present application.
- the encoder is processed by graph filtering, the number of points in the point cloud to be processed can be reduced, and the time complexity for subsequent motion estimation can be reduced, thereby improving the encoding efficiency.
- the encoder since the encoder is based on a graph filter, it performs graph filtering on the point cloud to be processed to obtain a second point cloud with frequency information. Therefore, the encoder can remove some points based on the second point cloud after image filtering before performing subsequent processing. In this way, high-frequency and low-frequency noise can be filtered out, making the calculation process more accurate.
- the point cloud to be processed is subjected to graph filtering, and why the second point cloud with frequency information can be obtained will be verified by the following theory.
- the graph signal (point coordinates) is converted to the frequency domain, and after filtering, the frequency domain information can be converted into another filtered graph signal through the graph Fourier inverse transform;
- the graph signal carries frequency information.
- the image signals output after image filtering are sorted according to frequency from high to low. According to formula (7), formula (8) and formula (9), formula (10) is obtained.
- Formula (10) is the process of graph Fourier transform first and then graph inverse Fourier transform.
- the output graph signal of y is obtained, In the frequency domain, 1- ⁇ i is represented in the frequency domain, therefore, the output image signal of y obtained by formula (10) contains frequency information, that is, the encoder performs image filtering on the point cloud to be processed based on the image filter, A point cloud block with frequency information can be obtained, that is, a second point cloud.
- the encoder After the encoder obtains the filtered and sampled first point cloud, it can perform encoding processing and subsequent implementation on the point cloud to be encoded based on the first point cloud.
- the encoding process also has different processing.
- the encoder is based on the first reference point cloud, and the implementation of encoding the point cloud to be encoded is:
- the encoder determines the first sub-reference point cloud corresponding to the first point cloud from the first reference point cloud of the acquired reference frame; wherein, the first point cloud is obtained after block division and image filtering sampling of the object point cloud the global point cloud; based on the first reference point cloud and the first point cloud, calculate the global motion transformation matrix of two adjacent point clouds, and write the global motion transformation matrix into the code stream; based on the global motion transformation matrix, the first reference Perform global motion compensation on the point cloud to obtain the second reference point cloud; respectively perform octree division and arithmetic coding on the second reference point cloud and the point cloud to be encoded to obtain the first geometric encoding result, and write the first geometric encoding result to input stream.
- the first reference point cloud is an initial point cloud corresponding to the reference point cloud.
- the encoder performs octree division on the second reference point cloud and the point cloud to be encoded respectively, and uses the octree division result of the reference node of the second reference point cloud as the current point cloud to be encoded
- the predicted text of the octree division of the node is then arithmetically encoded on the octree division result of the current node of the point cloud to be encoded to obtain the first geometric encoding result.
- the encoder performs the above operations on all blocks in pc_world_target in the case of global motion compensation, and finally obtains the remaining point cloud pc_reserve (first point cloud) after image filtering. Based on the point cloud pc_reserve, determine the global motion transformation matrix.
- Local motion compensation can be performed alone or after global motion compensation.
- the encoder encodes the point cloud to be encoded based on the first reference point cloud (performed alone) or the second reference point cloud (performed after global motion compensation).
- the following is an example of the first reference point cloud for illustration.
- the realization of the second reference point cloud is the same, so it will not be repeated.
- the realization is as follows:
- the encoder determines the motion information from the preset candidate motion information list according to the reference node sampled by graph filtering and the current node sampled by graph filter in the first point cloud; Local motion compensation is performed on the reference node to obtain a compensated reference node; arithmetic coding is performed based on the compensated reference node and the current node to obtain a second geometric coding result.
- the encoder traverses each candidate motion information in the preset candidate motion information list, performs local motion estimation on points in the filtered reference node, and obtains the estimated compensation corresponding to each candidate motion information After the reference node; determine the minimum distance between each point in the current node after the graph filter sampling in the first point cloud, and each point in the reference node after the estimated compensation; the current node after the graph filter sampling The sum of the minimum distances of each point of is used as the distortion of each candidate motion information; the candidate motion information corresponding to the minimum distortion among the distortions of each candidate motion information is determined as the motion information.
- the encoder performs local motion compensation on the reference nodes in the first reference point cloud according to the motion information.
- the local motion vector MV that is, the motion information
- the reference node and the current node is between the LPU maximum prediction unit and the minPU minimum prediction unit
- the local motion vector MV that is, the motion information
- the MV is applied to the reference nodes in (the first reference point cloud or the second reference point cloud), and local motion compensation is performed to obtain the compensated reference nodes.
- the current node is taken as an example for illustration, and the principle of division of reference nodes is the same.
- the encoder can judge whether the current node conforms to the direct encoding mode. If it conforms to the direct encoding mode, it directly encodes the coordinate information of the points in the current node; if it does not conform to the direct encoding mode, it continues to perform the octree Partitioning, the nodes are arithmetically coded according to the occupancy information and context information (ie neighborhood information) of the current node.
- context information ie neighborhood information
- a node is divided into an octree, and a indicates that when the block size (power of 2) is at a level greater than the LPU, Each node is divided into 8 sub-nodes, which are hierarchically divided in turn.
- b indicates that when the node is between the LPU and the minPU, if the node is not the last leaf node and conforms to the direct encoding mode, the coordinate information of the point is directly encoded.
- c indicates that if the node is the last leaf node, the number of points contained in the leaf node is encoded.
- both global motion compensation and local motion compensation can be performed, so that the reference node used by local motion compensation is the reference node of the first reference point cloud after global motion compensation, so that the encoder treats encoding
- the realization of the point cloud encoding is that after the completion of the first method, the obtained second reference point cloud and the point cloud to be encoded are divided into octrees, and the size information of the reference block of the reference node at the current level is obtained, and the current node is at Size information of the current block at the current level.
- the encoder can Which one is the current reference node is determined based on the first reference point cloud and the second reference point cloud.
- the second reference point cloud is a point cloud after global motion compensation of the first reference point cloud.
- the reference node is a node determined from the first reference point cloud using the first search window; or a node determined from the second reference point cloud using the second search window.
- the encoder uses the first search window to determine the first node corresponding to the current node from the first reference point cloud, and uses the second search window to determine the node corresponding to the current node from the second reference point cloud.
- the encoder determines the first minimum distance between each point in the current node and each point in the first node, and determines the second minimum distance between each point in the current node and the point in the second node .
- the sum of the first minimum distance of each point in the current node is the first distortion
- the sum of the second minimum distance of each point in the current node is the second distortion. If the first distortion is smaller than the second distortion, then determine the reference node corresponding to the current node from the first reference point cloud, that is, the point set w; The reference node corresponding to the current node.
- the local motion vector MV is calculated. First, find the search window win_V (first search window) and win_W (second search window) of the current node in the first reference point cloud and the second reference point cloud, and find the point in the current node and the first search window and the distortion of the point in the second search window, if the distortion between the point in the current node and win_V is small, then calculate the MV compensated reference node in win_V, that is, find the node in the first search window that is consistent with the current point cloud The point's corresponding point set w (reference node). Otherwise, calculate MV in win_W.
- the best motion information MV is determined from the preset candidate motion information list, and local motion compensation is performed based on the motion information MV.
- the encoder may perform local motion compensation on the current reference node to obtain the situation of the compensated reference node.
- the node size is between LPU and minPU, it is also necessary to determine whether local motion compensation is required for the reference node based on whether the reference node can be split. Whether the reference node can be split can be determined by comparing the first cost and the second cost.
- the first cost is the minimum distortion (cost_NoSplit) between the reference node and the current node after local compensation is performed using the best motion information assuming no split.
- the second cost is to divide the reference node and the current node into octrees respectively, use the corresponding nodes to calculate 8 local motion vectors MV, and use the best motion information to locally compensate the 8 sub-nodes divided by the current reference node. After that, the 8 minimum distortions corresponding to the 8 sub-nodes divided by the current node are obtained. After adding the 8 distortions, the cost_Split when splitting is obtained. If the first cost is less than the second cost, it is not divided. In the case of no division, it is determined that local motion compensation needs to be performed on the reference node; if the second cost is less than or equal to the first cost, it is divided. In the case of division In this case, local motion compensation does not need to be performed on the current reference node, but local motion compensation is performed on its child nodes.
- the image filtering and sampling operation can reduce the calculation amount and improve the coding efficiency.
- the encoder determines the global motion transformation matrix according to the current point cloud and the first reference point cloud, uses the global motion transformation matrix to perform global motion compensation on the first reference point cloud, and encodes the global motion transformation matrix Matrix, write code stream, that is, Mat_GM bit stream.
- the encoder performs octree division on the compensated second reference point cloud (corresponding to the reference point cloud) and the current point cloud.
- the encoder can also After local motion compensation is performed on the current reference node at the current level by using the best motion information (that is, the local motion vector), the compensated reference node is obtained, and the best motion information is encoded and written into the code stream, that is, the MV bit stream.
- the encoder uses the occupancy information and neighborhood information of the current node, as well as the occupancy information and neighborhood information of the reference node after compensation, and performs arithmetic coding (in Arithmetic encoder) to obtain the coded bit stream.
- the encoder continues to encode the child nodes of the current node of the current point cloud (that is, the FIFO queue stores the node queue) until the encoding of the current point cloud is completed.
- the encoder when compensating the global motion and local motion of the first reference point cloud, the encoder first performs image filtering and sampling on the point cloud to be processed to reduce the number of points in the point cloud to be processed. In this way, in the process of calculating the motion information or the global motion transformation matrix, the time complexity of calculation can be reduced, thereby improving the time efficiency of encoding.
- the point cloud decoding method provided by the embodiment of the present application is introduced below.
- the embodiment of the present application provides a point cloud decoding method, which is applied to a decoder, and the method may include:
- the decoder can parse the code stream, and parse out the geometric encoding result and motion-related information from the code stream, wherein the motion-related information is obtained by the encoder through image filtering and sampling of the point cloud to be processed in the point cloud to be coded. After the first point cloud is calculated with the reference point cloud. Because the embodiment of the present application may use at least one of global motion compensation and local motion compensation during encoding. Therefore, the motion-related information acquired by the decoder during parsing may be at least one of the global motion transformation matrix and motion information.
- the geometry encoding result may also be at least one of the first geometry encoding result (corresponding to global motion compensation) and the second geometry encoding result (corresponding to local motion compensation).
- the decoder when the decoder decodes the current node, it indicates that the reference point cloud has been decoded. In this way, the decoder can decode the current node in the point cloud to be decoded based on the motion-related information and the reference point cloud, so as to obtain the decoding information of the current node.
- the global motion compensation and the local motion compensation can be decoded in the following two manners.
- the geometry encoding result includes: the first geometry encoding result;
- the motion-related information includes: the global motion transformation matrix.
- the decoder performs global motion compensation on the reference point cloud (the first reference point cloud) based on the global motion transformation matrix to obtain the compensated reference point cloud (the second reference point cloud); based on the compensated reference point cloud and the first geometry Encoding result, get decoding information.
- the geometric encoding result includes: the second geometric encoding result;
- the motion related information includes: motion information (ie local motion vector).
- the decoder divides the reference point cloud (that is, the first reference point cloud or the second reference point cloud) into an octree to determine the reference node; based on the motion information, it performs local motion compensation on the reference node to obtain the compensated reference node; based on The decoded information is obtained from the compensated reference node and the second geometric encoding result.
- the decoding information may be the decoded point cloud corresponding to the current node, and when the decoder completes decoding of all nodes, the decoded point cloud is obtained.
- the decoder can parse out the global motion transformation matrix and the local motion vector from the coded bit stream, so that the decoder can first use the global motion transformation matrix of the global motion transformation matrix in the process of decoding the current node
- the vector Mat_GM performs global motion compensation on the reference point cloud to obtain the second reference point cloud, and then divides the second reference point cloud into an octree.
- the decoder can use the second After local motion compensation is performed on the reference node of the current level of the reference point cloud, the compensated reference node point cloud of the reference node is obtained, and then the compensated reference node and the coded bit stream corresponding to the current node are decoded to obtain the decoded point cloud After the point cloud corresponding to the current node, continue to decode the next node until the decoding of all nodes is completed, and the decoded point cloud is obtained.
- the motion information or global motion transformation matrix used by the decoder is in the process of performing global motion compensation and local motion compensation on the reference frame during the point cloud inter-frame coding, and the point cloud to be processed is image-filtered first, and then Reduce the number of points to be processed, which can reduce the time complexity of the calculation.
- an encoder 1 including:
- the first determination part 10 is configured to determine the point cloud to be processed in the block to be processed based on the point cloud to be encoded; based on the distance between two points in the point cloud to be processed, determine the edge between the two points weights, thereby determining the graph filter;
- the filtering part 11 is configured to obtain a first point cloud after image filtering and sampling based on the image filter sampling;
- the encoding part 12 is configured for sampling, and obtains the first point cloud after image filtering and sampling.
- the first determining part 10 is further configured to determine the edge weight between the two points based on the distance between the two points in the point cloud to be processed, so as to obtain the An adjacency matrix composed of edge weights in the point cloud to be processed; based on the adjacency matrix, the graph filter is determined; the distance between the two points is related to the edge weights between the two points.
- the first determining part 10 is further configured to perform weighted summation according to the adjacency matrix to obtain a weighted degree matrix; inverse the weighted degree matrix, and combine it with the A graph transformation operator is obtained by multiplying adjacency matrices; a polynomial is constructed based on the graph transformation operator, preset graph filtering parameters, and length of the graph filter to determine the graph filter.
- the first determining part 10 is further configured to, if the distance between two points in the point cloud to be processed is less than or equal to a preset distance threshold, based on the preset parameter threshold and The distance between the two points is processed to obtain the edge weight between the two points; if the distance between the two points in the point cloud to be processed is greater than the preset distance threshold, the edge weight between the two points to zero.
- the preset distance threshold is determined based on the preset KNN search parameter and the side length of the block to be processed where the point cloud to be processed is located; wherein, the preset KNN search parameter is Between 0-1;
- the preset parameter threshold is a multiple of the preset distance threshold.
- the filtering part 11 is further configured to perform image filtering on the point cloud to be processed based on the image filter to obtain a second point cloud with frequency information; Frequency-domain sampling is performed on the second point cloud to obtain the first point cloud after image filtering and sampling.
- the filtering part 11 is further configured to perform two-norm sorting on the three-dimensional coordinates of the points in the second point cloud with frequency information, and obtain the corresponding Frequency value; according to the preset filtering ratio, the frequency value corresponding to each point after the sorting is removed with the lowest frequency and the highest frequency to obtain the remaining frequency value; the remaining frequency value corresponds to the point cloud to be processed
- the points constitute the first point cloud.
- the first determining part 10 is configured to determine, based on the point cloud to be encoded, an object point cloud within a preset range satisfying the Z direction; block the object point cloud Divide to obtain a plurality of blocks to be processed, and the point cloud in each block to be processed is the point cloud to be processed.
- the encoding part 12 is configured to calculate the global motion transformation matrix of two adjacent point clouds based on the first reference point cloud and the first point cloud, and convert the The global motion transformation matrix is written into the code stream; the first reference point cloud is the initial point cloud corresponding to the reference point cloud; based on the global motion transformation matrix, global motion compensation is performed on the first reference point cloud to obtain The second reference point cloud; perform octree division on the reference node of the second reference point cloud and the current node of the point cloud to be encoded, and divide the octree division result of the reference node of the second reference point cloud As the predicted text of the octree division of the current node of the point cloud to be encoded, arithmetic encoding is performed on the octree division result of the current node of the point cloud to be encoded to obtain the first geometric encoding result, and the The result of the first geometric encoding is written into the code stream.
- the first determining part 10 is further configured to perform octree division on the obtained first reference point cloud and the point cloud to be coded respectively, and obtain the reference node at the current level
- the size information of the reference block, and the size information of the current block of the current node at the current level; the size information of the reference block and the size information of the current block indicate that the reference block and the current block belong to the largest prediction unit and the smallest prediction unit time, determine the reference node and the current node as the point cloud to be processed in the block to be processed.
- the encoding part 12 is further configured to determine motion information from a preset candidate motion information list according to the reference node sampled by the graph filter and the current node sampled by the graph filter; based on the motion information , performing local motion compensation on the reference nodes in the first reference point cloud to obtain the compensated reference nodes; performing arithmetic coding based on the compensated reference nodes and the current node to obtain the second geometric code of the current node result.
- the encoding part 12 is further configured to traverse each candidate motion information in the preset candidate motion information list, and perform Local motion estimation, obtaining an estimated and compensated reference node corresponding to each candidate motion information; determining each point in the current node after image filtering and sampling in the first point cloud and the estimated and compensated reference node The minimum distance between each point in the graph; the sum of the minimum distances of each point in the current node after the graph is filtered and sampled, as the distortion of each candidate motion information; the each candidate motion information The candidate motion information corresponding to the minimum distortion among the distortions is determined as the motion information.
- the reference node is a node determined from the first reference point cloud using the first search window; or a node determined from the second reference point cloud using the second search window.
- the encoder can perform image filtering on the point cloud to be processed in the process of global motion compensation and local motion compensation for the reference point cloud in the process of point cloud encoding, and reduce the number of participating points to be processed. In this way, the time complexity of calculation can be reduced, thereby improving the time efficiency of encoding.
- the point cloud decoding method provided by the embodiment of the present application is introduced below.
- an encoder including:
- the first memory 13 is used to store executable point cloud coding instructions
- the first processor 14 is configured to implement the point cloud encoding method when executing the executable point cloud encoding instruction stored in the first memory 13 .
- the first processor 14 can be implemented by software, hardware, firmware or a combination thereof, and can use circuits, single or multiple application specific integrated circuits (ASIC), single or multiple general integrated circuits, single or multiple a microprocessor, a single or multiple programmable logic devices, or a combination of the aforementioned circuits or devices, or other suitable circuits or devices, so that the first processor 14 can execute the point cloud encoding method in the aforementioned embodiments corresponding steps.
- ASIC application specific integrated circuits
- Each component in the embodiment of the present application may be integrated into one processing unit, or each unit may physically exist separately, or two or more units may be integrated into one unit.
- the above-mentioned integrated units can be implemented in the form of hardware or in the form of software function modules.
- the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium.
- the technical solution of this embodiment is essentially or It is said that the part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product, the computer software product is stored in a storage medium, and includes several instructions to make a computer device (which can It is a personal computer, a server, or a network device, etc.) or a processor (processor) that executes all or part of the steps of the method described in this embodiment.
- the aforementioned storage medium includes: magnetic random access memory (FRAM, ferromagnetic random access memory), read-only memory (ROM, Read Only Memory), programmable read-only memory (PROM, Programmable Read-Only Memory), erasable Programmable Read-Only Memory (EPROM, Erasable Programmable Read-Only Memory), Electrically Erasable Programmable Read-Only Memory (EEPROM, Electrically Erasable Programmable Read-Only Memory), Flash Memory (Flash Memory), Magnetic Surface Memory, Optical Disk , or CD-ROM (Compact Disc Read-Only Memory) and other media that can store program codes, the embodiments of the present application are not limited.
- FRAM magnetic random access memory
- ROM read-only memory
- PROM programmable read-only memory
- EPROM Erasable Programmable Read-Only Memory
- EPROM Erasable Programmable Read-Only Memory
- EEPROM Electrically Erasable Programmable Read-Only Memory
- Flash Memory Flash Memory
- Magnetic Surface Memory
- the embodiment of the present application also provides a computer-readable storage medium, which stores executable point cloud coding instructions, and is used to cause the first processor to execute the point cloud coding method provided in the embodiment of the present application.
- the embodiment of the present application provides a decoder 2, including:
- the decoding part 20 is configured to analyze the code stream, and obtain geometric encoding results and motion-related information;
- the motion-related information is the first point cloud after image filtering and sampling of the point cloud to be processed in the point cloud to be encoded, and the reference point obtained by cloud computing;
- the obtaining part 21 is configured to obtain the decoded reference point cloud
- the decoding part 20 is further configured to perform motion compensation on the reference point cloud based on the motion related information and the reference point cloud, and decode the geometric code stream to obtain decoded information.
- the geometric encoding result includes: a first geometric encoding result;
- the motion-related information includes: a global motion transformation matrix;
- the decoding part 20 is further configured to perform global motion compensation on the reference point cloud based on the global motion transformation matrix to obtain a compensated reference point cloud; based on the compensated reference point cloud and the first A geometrically encoded result to obtain the decoded information.
- the geometric encoding result includes: a second geometric encoding result;
- the motion-related information includes: motion information;
- the decoding part 20 is further configured to perform octree division on the reference point cloud to determine a reference node; based on the motion information, perform local motion compensation on the reference node to obtain a compensated reference node; The decoded information is obtained from the compensated reference node and the second geometric encoding result.
- the motion information or global motion transformation matrix used by the decoder is in the process of point cloud encoding, in the process of global motion compensation and local motion compensation of the reference point cloud, image filtering sampling is performed on the point cloud to be processed first, Reduce the number of participating pending points, so that the time complexity of calculation can be reduced.
- the embodiment of the present application also provides a decoder, including:
- the second memory 23 is used to store executable point cloud decoding instructions
- the second processor 24 is configured to implement the point cloud decoding method of the decoder when executing the executable point cloud decoding instruction stored in the second memory 23 .
- the embodiment of the present application also provides a computer-readable storage medium storing executable point cloud decoding instructions, which are used to cause the second processor to execute the point cloud decoding method provided in the embodiment of the present application.
- the embodiment of the present application provides a point cloud encoding and decoding method, an encoder, a decoder, and a computer-readable storage medium.
- the encoder can perform global motion compensation and local motion compensation on the reference point cloud during the point cloud encoding process.
- the point cloud to be processed is first filtered and sampled to reduce the number of points participating in the point cloud to be processed. In this way, the calculation time and complexity can be reduced in the process of calculating motion information or global motion transformation matrix using the filtered and sampled point cloud. degree, thereby improving the encoding time efficiency.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Disclosed in the embodiments of the present application are point cloud encoding and decoding methods, an encoder, a decoder, and a computer readable storage medium, the method comprising: on the basis of a point cloud to be encoded, determining a point cloud to be processed in a block to be processed; on the basis of the distance between two points in the point cloud to be processed, determining the edge weight between the two points to thereby determine a graph filter, the distance between the two points being related to the edge weight between the two points; on the basis of the graph filter, performing graph filter sampling on the point cloud to be processed in order to obtain a first point cloud having undergone graph filter sampling; and, on the basis of the first point cloud, performing compensation on a reference point cloud to thereby encode the point cloud to be encoded.
Description
本申请实施例涉及点云编解码技术领域,尤其涉及一种点云编解码方法、编码器、解码器及计算机可读存储介质。The embodiments of the present application relate to the technical field of point cloud encoding and decoding, and in particular, to a point cloud encoding and decoding method, an encoder, a decoder, and a computer-readable storage medium.
帧间几何编码的时候,存在全局运动补偿和/或局部运动补偿的处理。在全局运动估计过程中,等间隔采样之后的目标点云依然包含大量点,导致使用LMS方法求解全局运动变换矩阵(Mat_GM)的时间复杂度高,而且采样之后的目标点云存在一定的高频和低频噪声信息。而在进行局部运动估计时,使用八叉树的层级节点包含的所有点估计局部运动信息,层级节点中使用的点数较多,导致运动估计的时间复杂度高。During inter-frame geometric coding, there is a process of global motion compensation and/or local motion compensation. In the process of global motion estimation, the target point cloud after equal interval sampling still contains a large number of points, resulting in a high time complexity for using the LMS method to solve the global motion transformation matrix (Mat_GM), and the target point cloud after sampling has a certain high frequency and low frequency noise information. When performing local motion estimation, all points contained in the hierarchical nodes of the octree are used to estimate local motion information, and the number of points used in the hierarchical nodes is large, resulting in high time complexity of motion estimation.
发明内容Contents of the invention
本申请实施例提供了一种点云编解码方法、编码器、解码器及计算机可读存储介质,能够减少运动补偿过程中的时间复杂度。Embodiments of the present application provide a point cloud encoding and decoding method, an encoder, a decoder, and a computer-readable storage medium, which can reduce time complexity in a motion compensation process.
本申请实施例的技术方案可以如下实现:The technical solutions of the embodiments of the present application can be implemented as follows:
第一方面,本申请实施例提供了一种点云编码方法,包括:In the first aspect, the embodiment of the present application provides a point cloud encoding method, including:
基于待编码点云,确定待处理块中的待处理点云;Based on the point cloud to be encoded, determine the point cloud to be processed in the block to be processed;
基于所述待处理点云中两点之间的距离,确定所述两点之间的边权重,从而确定图滤波器;所述两点之间的距离与所述两点之间的边权重有关;Based on the distance between two points in the point cloud to be processed, determine the edge weight between the two points, so as to determine the graph filter; the distance between the two points and the edge weight between the two points related;
基于所述图滤波器,对所述待处理点云进行图滤波采样,得到经过图滤波采样后的第一点云;Based on the image filter, image filtering sampling is performed on the point cloud to be processed to obtain a first point cloud after image filtering sampling;
基于所述第一点云,对参考点云进行补偿,进而对所述待编码点云进行编码。Compensating the reference point cloud based on the first point cloud, and then encoding the point cloud to be encoded.
第二方面,本申请实施例提供了一种点云解码方法,包括:In a second aspect, the embodiment of the present application provides a point cloud decoding method, including:
解析码流,获取几何编码结果和运动相关信息;所述运动相关信息是对待编码点云中的待处理点云进行图滤波采样后的第一点云,与参考点云计算得到的;Analyzing the code stream to obtain geometric encoding results and motion-related information; the motion-related information is obtained by calculating the first point cloud after image filtering and sampling of the point cloud to be processed in the point cloud to be encoded, and the reference point cloud;
获取已解码的参考点云;Get the decoded reference point cloud;
基于所述运动相关信息和所述参考点云,对参考点云进行运动补偿,对几何码流进行解码,得到解码信息。Based on the motion-related information and the reference point cloud, motion compensation is performed on the reference point cloud, and the geometric code stream is decoded to obtain decoded information.
第三方面,本申请实施例提供了一种编码器,包括:In a third aspect, the embodiment of the present application provides an encoder, including:
第一确定部分,被配置为基于待编码点云,确定待处理块中的待处理点云;基于所述待处理点云中两点之间的距离,确定所述两点之间的边权重,从而确定图滤波器;The first determination part is configured to determine, based on the point cloud to be encoded, the point cloud to be processed in the block to be processed; based on the distance between two points in the point cloud to be processed, determine the edge weight between the two points , so as to determine the graph filter;
滤波部分,被配置为基于所述图滤波器,对所述待处理点云进行图滤波采样,得到经过图滤波采样后的第一点云;The filtering part is configured to perform image filtering and sampling on the point cloud to be processed based on the image filter, to obtain a first point cloud after image filtering and sampling;
编码部分,被配置为基于所述第一点云,对参考点云进行补偿,进而对所述待编码点云进行编码。The encoding part is configured to compensate the reference point cloud based on the first point cloud, and then encode the point cloud to be encoded.
第四方面,本申请实施例还提供了一种编码器,包括:In the fourth aspect, the embodiment of the present application also provides an encoder, including:
第一存储器,用于存储可执行点云编码指令;The first memory is used to store executable point cloud coding instructions;
第一处理器,用于执行所述第一存储器中存储的可执行点云编码指令时,实现编码器所述的点云编码方法。The first processor is configured to implement the point cloud encoding method described by the encoder when executing the executable point cloud encoding instruction stored in the first memory.
第五方面,本申请实施例提供了一种解码器,包括:In the fifth aspect, the embodiment of the present application provides a decoder, including:
解码部分,被配置为解析码流,获取几何编码结果和运动相关信息;所述运动相关信息是对待编码点云中的待处理点云进行图滤波采样后的第一点云,与参考点云计算得到的;The decoding part is configured to analyze the code stream, and obtain geometric encoding results and motion-related information; the motion-related information is the first point cloud after image filtering and sampling of the point cloud to be processed in the point cloud to be encoded, and the reference point cloud calculated;
获取部分,被配置为获取已解码的参考点云;an acquisition part configured to acquire the decoded reference point cloud;
所述解码部分,还被配置为基于所述运动相关信息和所述参考点云,对参考点云进行运动补偿,对几何码流进行解码,得到解码信息。The decoding part is further configured to perform motion compensation on the reference point cloud based on the motion-related information and the reference point cloud, and decode the geometric code stream to obtain decoded information.
第六方面,本申请实施例还提供了一种解码器,包括:In a sixth aspect, the embodiment of the present application also provides a decoder, including:
第二存储器,用于存储可执行点云解码指令;The second memory is used to store executable point cloud decoding instructions;
第二处理器,用于执行所述第二存储器中存储的可执行点云解码指令时,实现解码器所述的点云解码方法。The second processor is configured to implement the point cloud decoding method described in the decoder when executing the executable point cloud decoding instruction stored in the second memory.
第七方面,本申请实施例提供了一种计算机可读存储介质,存储有可执行点云编码指令,用于引起第一处理器执行时,实现编码器所述的点云编码方法;或者,存储有可执行点云解码指令,用于引起第二处理器执行时,实现解码器所述的点云解码方法。In the seventh aspect, the embodiment of the present application provides a computer-readable storage medium, which stores executable point cloud encoding instructions, and is used to cause the first processor to implement the point cloud encoding method described in the encoder; or, Executable point cloud decoding instructions are stored for causing the second processor to implement the point cloud decoding method described in the decoder.
本申请实施例提供了一种点云编解码方法、编码器、解码器及计算机可读存储介质,编码器可以在点云编码的过程中,对参考点云进行全局运动补偿和局部运动补偿的过程中,对待处理点云先进行图滤波采样,减少参与待处理点云中点的点数,这样使用滤波采样后的点云计算运动信息或全局运动变换矩阵的过程中,就可以减少计算的时间复杂度,进而提高编码时间效率。The embodiment of the present application provides a point cloud encoding and decoding method, an encoder, a decoder, and a computer-readable storage medium. The encoder can perform global motion compensation and local motion compensation on the reference point cloud during the point cloud encoding process. In the process, the point cloud to be processed is first filtered and sampled to reduce the number of points participating in the midpoint of the point cloud to be processed, so that the calculation time can be reduced in the process of calculating motion information or global motion transformation matrix using the filtered and sampled point cloud Complexity, thereby improving the encoding time efficiency.
图1为本申请实施例提供的示例性的编码系统框图;FIG. 1 is a block diagram of an exemplary encoding system provided by an embodiment of the present application;
图2为本申请实施例提供的示例性的解码系统框图;FIG. 2 is a block diagram of an exemplary decoding system provided by an embodiment of the present application;
图3为本申请实施例提供的一种点云编码方法的流程图;Fig. 3 is the flowchart of a kind of point cloud encoding method provided by the embodiment of the present application;
图4为本申请实施例提供的示例性的八叉树划分示意图一;FIG. 4 is a schematic diagram 1 of an exemplary octree division provided by an embodiment of the present application;
图5为本申请实施例提供的示例性的八叉树划分示意图二;FIG. 5 is a schematic diagram 2 of an exemplary octree division provided by the embodiment of the present application;
图6为本申请实施例提供的示例性的边权重连接图;FIG. 6 is an exemplary edge weight connection diagram provided by an embodiment of the present application;
图7为本申请实施例提供的示例性的八叉树划分示意图三;FIG. 7 is a schematic diagram 3 of an exemplary octree division provided by the embodiment of the present application;
图8为本申请实施例提供的示例性的局部运动补偿示意图;FIG. 8 is a schematic diagram of an exemplary local motion compensation provided by an embodiment of the present application;
图9为本申请实施例提供的示例性的一种编码流程图;FIG. 9 is an exemplary coding flowchart provided by the embodiment of the present application;
图10为本申请实施例提供的一种点云解码方法的流程图;FIG. 10 is a flowchart of a point cloud decoding method provided by an embodiment of the present application;
图11为本申请实施例提供的示例性的一种解码流程图;Fig. 11 is an exemplary decoding flowchart provided by the embodiment of the present application;
图12为本申请实施例提供的一种编码器的结构图一;FIG. 12 is a structural diagram 1 of an encoder provided in an embodiment of the present application;
图13为本申请实施例提供的一种编码器的结构图二。FIG. 13 is a second structural diagram of an encoder provided in the embodiment of the present application.
图14为本申请实施例提供的一种解码器的结构图一;FIG. 14 is a structural diagram 1 of a decoder provided by an embodiment of the present application;
图15为本申请实施例提供的一种解码器的结构图二。FIG. 15 is the second structural diagram of a decoder provided in the embodiment of the present application.
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。In order to understand the characteristics and technical contents of the embodiments of the present application in more detail, the implementation of the embodiments of the present application will be described in detail below in conjunction with the accompanying drawings. The attached drawings are only for reference and description, and are not intended to limit the embodiments of the present application.
为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:In order to facilitate the understanding of the embodiments of the present application, firstly, the relevant concepts involved in the embodiments of the present application are briefly introduced as follows:
点云(Point Cloud)是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。Point cloud refers to a set of discrete point sets randomly distributed in space, expressing the spatial structure and surface properties of 3D objects or 3D scenes.
点云数据(Point Cloud Data)是点云的具体记录形式,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息和/或反射率等等。例如,所述颜色信息可以是任意一种色彩空间上的信息。例如,所述颜色信息可以是(RGB)。再如,所述颜色信息可以是于亮度色度(YcbCr,YUV)信息。例如,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色,U和V表示为色度(Chroma)用于描述色差信息。例如,根据激光测量原理得到的点云,所述点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,所述点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,所述点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。Point cloud data (Point Cloud Data) is a specific record form of point cloud, and the points in the point cloud can include point location information and point attribute information. For example, the point position information may be three-dimensional coordinate information of the point. The location information of a point may also be referred to as geometric information of a point. For example, the attribute information of a point may include color information and/or reflectivity and the like. For example, the color information may be information on any color space. For example, the color information may be (RGB). For another example, the color information may be luminance and chrominance (YcbCr, YUV) information. For example, Y represents brightness (Luma), Cb (U) represents blue color difference, Cr (V) represents red color, and U and V are expressed as chromaticity (Chroma) for describing color difference information. For example, according to the point cloud obtained according to the principle of laser measurement, the points in the point cloud may include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point. For another example, in the point cloud obtained according to the principle of photogrammetry, the points in the point cloud may include three-dimensional coordinate information and color information of the point. For another example, combining the principles of laser measurement and photogrammetry to obtain a point cloud, the points in the point cloud 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.
点云数据的获取途径可以包括但不限于以下至少一种:(1)计算机设备生成。计算机设备可以根据虚拟三维物体及虚拟三维场景的生成点云数据。(2)3D(3-Dimension,三维)激光扫描获取。通过3D激光扫描可以获取静态现实世界三维物体或三维场景的点云数据,每秒可以获取百万级点云数据;(3)3D摄影测量获取。通过3D摄影设备(即一组摄像机或具有多个镜头和传感器的摄像机设备)对现实世界的视觉场景进行采集以获取现实世界的视觉场景的点云数据,通过3D摄影可以获得动态现实世界三维物体或三维场景的点云数据。(4)通过医学设备获取生物组织器官的点云数据。在医学领域可以通过磁共振成像(Magnetic Resonance Imaging,MRI)、电子计算机断层扫描(Computed Tomography,CT)、电磁定位信息等医学设备获取生物组织器官的点云数据。Ways to obtain point cloud data may include but not limited to at least one of the following: (1) Generated by computer equipment. The computer device can generate point cloud data according to virtual three-dimensional objects and virtual three-dimensional scenes. (2) 3D (3-Dimension, three-dimensional) laser scanning acquisition. Point cloud data of static real-world 3D objects or 3D scenes can be obtained through 3D laser scanning, and millions of point cloud data can be obtained per second; (3) 3D photogrammetry acquisition. Through 3D photography equipment (that is, a group of cameras or camera equipment with multiple lenses and sensors) to collect the visual scene of the real world to obtain the point cloud data of the visual scene of the real world, through 3D photography can obtain dynamic real world three-dimensional objects Or point cloud data of a 3D scene. (4) Obtain point cloud data of biological tissues and organs through medical equipment. In the medical field, point cloud data of biological tissues and organs can be obtained through magnetic resonance imaging (Magnetic Resonance Imaging, MRI), electronic computer tomography (Computed Tomography, CT), electromagnetic positioning information and other medical equipment.
点云可以按获取的途径分为:密集型点云和稀疏性点云。Point clouds can be divided into dense point clouds and sparse point clouds according to the way of acquisition.
点云按照数据的时序类型划分为:According to the time series type of data, point cloud is divided into:
第一类静态点云:即物体是静止的,获取点云的设备也是静止的;The first type of static point cloud: that is, 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 still;
第三类动态获取点云:获取点云的设备是运动的。The third type of dynamic acquisition of point clouds: the equipment for acquiring point clouds is in motion.
按点云的用途分为两大类:According to the purpose of point cloud, it can be divided into two categories:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and emergency rescue robots;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。Category 2: Human eyes perceive point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
点云数据可用于形成点云媒体,点云媒体可以是一个媒体文件。点云媒体可包括多个媒体帧,点云媒体中的每个媒体帧由点云数据组成。点云媒体可以灵活方便地表达三维物体或三维场景的空间结构及表面属性,因此被广泛应用。对点云媒体进行编码后,再对编码后的码流进行封装可形成封装文件,封装文件可用于传输给用户。相对应的,在点云媒体播放器端,需要先对封装文件进行解封装,然后再进行解码,最后对解码后的数据流进行呈现。封装文件也可称为点云文件。Point cloud data can be used to form point cloud media, which can be a media file. The point cloud media may include multiple media frames, and each media frame in the point cloud media is composed of point cloud data. Point cloud media can flexibly and conveniently express the spatial structure and surface properties of 3D objects or 3D scenes, so it is widely used. After encoding the point cloud media, the encoded code stream is encapsulated to form an encapsulated file, which can be used for transmission to the user. Correspondingly, on the point cloud media player side, it is necessary to decapsulate the encapsulated file first, then decode it, and finally present the decoded data stream. Package files may also be referred to as point cloud files.
截止目前,可通过点云编码框架对点云进行编码。As of now, point clouds can be encoded through the Point Cloud Encoding Framework.
点云编码框架可以是运动图象专家组(Moving Picture Experts Group,MPEG)提供的基于几何的点云压缩(Geometry Point Cloud Compression,G-PCC)编解码框架或基于视频的点云压缩(Video Point Cloud Compression,V-PCC)编解码框架,也可以是 音视频编码标准(Audio Video Standard,AVS)提供的AVS-PCC编解码框架。G-PCC编解码框架可用于针对第一静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。下面以G-PCC编解码框架对本申请实施例可适用的编解码框架进行说明。The point cloud coding framework can be a geometry-based point cloud compression (Geometry Point Cloud Compression, G-PCC) codec framework or a video-based point cloud compression (Video Point Cloud Compression) provided by the Moving Picture Experts Group (MPEG). Cloud Compression, V-PCC) codec framework, or the AVS-PCC codec framework provided by Audio Video Standard (AVS). 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. The codec framework applicable to the embodiment of the present application will be described below using the G-PCC codec framework.
图1是本申请实施例提供的编码框架100的示意性框图。Fig. 1 is a schematic block diagram of a coding framework 100 provided by an embodiment of the present application.
如图1所示,编码框架100可以从采集设备获取点云的位置信息(几何信息)和属性信息。点云的编码包括几何编码和属性编码。在一个实施例中,几何编码的过程包括:对原始点云进行坐标变换、量化去除重复点等预处理;基于参考点云,进行运动补偿以及构建八叉树后进行编码形成几何码流。属性编码过程包括:通过给定输入点云的位置信息的重建信息和属性信息的真实值,选择三种预测模式的一种进行点云预测,对预测后的结果进行量化,并进行算术编码形成属性码流。As shown in FIG. 1 , the encoding framework 100 can acquire position information (geometric information) and attribute information of point clouds from the acquisition device. The encoding of point cloud includes geometric encoding and attribute encoding. In one embodiment, the geometry encoding process includes: performing preprocessing on the original point cloud such as coordinate transformation, quantization and removing duplicate points, etc.; based on the reference point cloud, performing motion compensation and constructing an octree before encoding to form a geometric code stream. 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.
如图1所示,位置编码可通过以下单元实现:As shown in Figure 1, position coding can be realized by the following units:
坐标变换(Tanmsform coordinates)单元101、量化和移除重复点(Quantize and remove points)单元102、全局运动补偿单元1031和局部运动补偿单元1032、八叉树分析(Analyze octree)单元103、几何重建(Reconstruct geometry)单元104以及第一算术编码(Arithmetic enconde)单元105。Coordinate transformation (Tanmsform coordinates) unit 101, quantization and removal of repeated points (Quantize and remove points) unit 102, global motion compensation unit 1031 and local motion compensation unit 1032, octree analysis (Analyze octree) unit 103, geometric reconstruction ( Reconstruct geometry) unit 104 and a first arithmetic encoding (Arithmetic encode) unit 105.
坐标变换单元101可用于将点云中点的世界坐标变换为相对坐标。例如,点的几何坐标分别减去xyz坐标轴的最小值,相当于去直流操作,以实现将点云中的点的坐标从世界坐标变换为相对坐标。量化和移除重复点单元102可通过量化减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标,基于此,可通过去重操作将重复的点删除;例如,具有相同量化位置和不同属性信息的多个云可通过属性变换合并到一个云中。在本申请的一些实施例中,量化和移除重复点单元102为可选的单元模块。全局运动补偿单元1031用全局运动矩阵对第一参考点云进行运动补偿,确定对应的第二参考点云。构建八叉树,再基于第二参考点云或第一参考点云对当前点云进行预测编码。八叉树分析单元103可利用八叉树(octree)编码方式编码量化的点的位置信息。例如,将点云按照八叉树的形式进行划分,首先依据点云的最大和最小坐标值确定点云的包围盒,并构造八叉树的根节点(包含点云中的所有点);然后对点云的包围盒进行八等分,得到八个子节点;如果一个子节点是空的(不包含点),则将该节点标记为0,停止划分;如果一个子节点不是空的(包含点),则将该节点标记为1,则将该节点继续八等分,直到每个子节点中最多包含有1个点为止,这样的子节点称为叶节点;这样点云的几何信息就会被表示成二进制码流。在八叉树分析单元103进行八叉树划分的过程中,可以通过局部运动补偿单元1032对参考点云中的参考节点进行局部运动补偿,并依据经过局部运动补偿后的参考节点的八叉树划分方式(节点占用信息)对当前节点的八叉树划分方式进行预测,得到当前节点的上下文信息。第一算术编码单元105将八叉树分析单元103,或者,局部运动补偿单元1032输出的节点占用信息,结合上下文信息利用算术编码方式生成几何码流;几何码流也可称为几何比特流(geometry bitstream)。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. In some embodiments of the present application, the Quantize and Remove Duplicate Points unit 102 is an optional unit module. The global motion compensation unit 1031 uses the global motion matrix to perform motion compensation on the first reference point cloud to determine the corresponding second reference point cloud. An octree is constructed, and then the current point cloud is predicted and encoded based on the second reference point cloud or the first reference point cloud. The octree analysis unit 103 may use an octree encoding method to encode the position information of the quantized points. For example, divide the point cloud in the form of an octree, first determine the bounding box of the point cloud according to the maximum and minimum coordinate values of the point cloud, and construct the root node of the octree (including all points in the point cloud); then Carry out eight equal divisions to the bounding box of the point cloud to obtain eight child nodes; if a child node is empty (does not contain points), then mark the node as 0, stop division; if a child node is not empty (contains points ), then mark the node as 1, then continue to divide the node into eight equal parts until each child node contains at most 1 point, such a child node is called a leaf node; in this way, the geometric information of the point cloud will be Expressed as a binary code stream. In the process of octree division by the octree analysis unit 103, local motion compensation can be performed on the reference nodes in the reference point cloud through the local motion compensation unit 1032, and according to the octree of the reference nodes after local motion compensation The division mode (node occupancy information) predicts the octree division mode of the current node to obtain the context information of the current node. The first arithmetic coding unit 105 combines the node occupancy information output by the octree analysis unit 103 or the local motion compensation unit 1032 with the context information to generate a geometric code stream; the geometric code stream can also be called a geometric bit stream ( geometry bitstream).
属性编码可通过以下单元实现:Attribute coding can be achieved 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) 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.
颜色空间变换单元110可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。属性变换单元111可用于变换点云中点的属性信息,以最小化属性失真。例如, 属性变换单元111可用于得到点的属性信息的真实值。例如,所述属性信息可以是点的颜色信息。经过属性变换单元111变换得到点的属性信息的真实值后,可选择任一种预测单元,对点云中的点进行预测。用于对点云中的点进行预测的单元可包括:RAHT 112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114中的至少一项。换言之,RAHT 112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114中的任一项可用于对点云中点的属性信息进行预测,以得到点的属性信息的预测值,进而可基于点的属性信息的预测值得到点的属性信息的残差值。例如,点的属性信息的残差值可以是点的属性信息的真实值减去点的属性信息的预测值。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, the attribute transformation unit 111 can be used to obtain the real value of the attribute information of the point. For example, the attribute information may be color information of dots. After the real value of the attribute information of the point is obtained through the transformation 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. In other words, 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, so as to obtain the predicted values of the attribute information of the points, Furthermore, the residual value of the attribute information of the point can be obtained based on the predicted value of the attribute information of the point. For example, the residual value of the point's attribute information may be the actual value of the point's attribute information minus the predicted value of the point's attribute information.
预测变换单元113还可用于生成细节层(level of detail,LOD),对LOD中点的属性信息依次进行预测,计算得到预测残差以便后续进行量化编码。The prediction transformation unit 113 can also be used to generate a level of detail (LOD), sequentially predict the attribute information of points in the LOD, and calculate the prediction residual for subsequent quantization and coding.
图2是本申请实施例提供的解码框架200的示意性框图。Fig. 2 is a schematic block diagram of a decoding framework 200 provided by an embodiment of the present application.
如图2所示,解码框架200可以从编码设备获取点云的码流,通过解析码得到点云中的点的位置信息和属性信息。点云的解码包括位置解码和属性解码。As shown in FIG. 2 , 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.
在一个实施例中,位置解码的过程包括:对几何码流进行算术解码;并利用参考点云对点的位置信息进行重建,并进行坐标变换,得到点的几何坐标值。In one embodiment, the position decoding process includes: performing arithmetic decoding on the geometric code stream; and using the reference point cloud to reconstruct the position information of the point, and performing coordinate transformation to obtain the geometric coordinate value of the 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 point's position information obtained in the position decoding process, one of the three prediction modes is selected for point cloud prediction, and the reconstruction value of the point's attribute information is obtained; the color space is performed on the reconstruction value of the point's attribute information Inverse transform to get the decoded point cloud.
如图2所示,位置解码可通过以下单元实现:第一算数解码单元201、全局运动补偿单元2021、八叉树分析(synthesize octree)单元202、局部运动补偿单元2022、几何重建(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 2, position decoding can be realized by the following units: first arithmetic decoding unit 201, global motion compensation unit 2021, octree analysis (synthesize octree) unit 202, local motion compensation unit 2022, geometric reconstruction (Reconstruct geometry) A unit 203 and an 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.
需要说明的是,解压缩是压缩的逆过程,类似的,解码框架200中的各个单元的功能可参见编码框架100中相应的单元的功能。另外,解码框架200可包含比图3更多、更少或不同的功能组件。It should be noted that decompression is an inverse process of compression. Similarly, the functions of each unit in the decoding framework 200 may refer to the functions of corresponding units in the encoding framework 100 . Additionally, decoding framework 200 may include more, fewer or different functional components than in FIG. 3 .
需要说明的是,本申请实施例提出的点云编码方法作用于图1的全局运动补偿单元和局部运动补偿单元,点云解码方法作用于图2的全局运动补偿单元和局部运动补偿单元。It should be noted that the point cloud encoding method proposed in the embodiment of the present application acts on the global motion compensation unit and the local motion compensation unit in FIG. 1 , and the point cloud decoding method acts on the global motion compensation unit and the local motion compensation unit in FIG. 2 .
基于上述介绍的背景下,下面介绍本申请实施例提供的点云编码方法。Based on the background of the above introduction, the point cloud encoding method provided by the embodiment of the present application is introduced below.
如图3所示,本申请实施例提供了一种点云编码方法,应用于编码器中,该方法可以包括:As shown in Figure 3, the embodiment of the present application provides a point cloud encoding method, which is applied to an encoder, and the method may include:
S101、基于待编码点云,确定待处理块中的待处理点云。S101. Based on the point cloud to be encoded, determine the point cloud to be processed in the block to be processed.
在本申请实施例中,针对一个三维图像模型的编码处理过程中,待编码的三维图像模型在空间中点云,点云可以是三维图像模型的几何信息和属性信息。在对三维图像模型进行编码的过程中,待编码点云的几何信息和每点所对应的属性信息是分开进行编码的。在几何信息编码时的基于八叉树几何信息编码的帧间预测时,采用本申请实施例提供的点云编码方法实现。In the embodiment of the present application, during the encoding process of a 3D image model, the 3D image model to be encoded is a point cloud in space, and the point cloud may be geometric information and attribute information of the 3D image model. In the process of encoding the 3D image model, the geometric information of the point cloud to be encoded and the attribute information corresponding to each point are encoded separately. The inter-frame prediction based on octree geometric information coding during geometric information coding is realized by using the point cloud coding method provided by the embodiment of the present application.
需要说明的是,在本申请实施例中,针对一个待编码的视频序列中的第一帧可以通过帧内预测来进行预测,除第一帧之前的帧采用帧间预测方式。It should be noted that, in the embodiment of the present application, the first frame in a video sequence to be encoded can be predicted through intra-frame prediction, and the frames before the first frame use inter-frame prediction.
在本申请实施例中,针对当前的待编码点云进行点云编码时,对于待编码点云,编码器可以在进行全局运动补偿和/或局部运动补偿的过程中结合图滤波处理,并按照点的频率信息对点云进行采样,得到滤波采样后的点云,基于该滤波采样后的点云进行运动估计,得到运动信息,使用该运动信息对参考点云进行运动补偿,使用补偿后的参考点云对当前点云进行预测编码。In the embodiment of the present application, when performing point cloud encoding on the current point cloud to be encoded, for the point cloud to be encoded, the encoder can combine image filtering processing in the process of performing global motion compensation and/or local motion compensation, and follow The frequency information of the point is used to sample the point cloud to obtain the filtered and sampled point cloud. Based on the filtered and sampled point cloud, the motion estimation is performed to obtain the motion information. The motion compensation is performed on the reference point cloud using the motion information, and the compensated point cloud is used. The current point cloud is predicted and encoded with reference to the point cloud.
其中,编码器可以对计算得到全局运动变换矩阵的全局点云进行图滤波并采样,得到的待处理点云,再基于待处理点云进行编码。编码器还可以在八叉树划分的过程中,对待编码点云中的当前节点和参考点云中对应的参考节点进行图滤波采样后,确定运动信息,最后基于运动信息对参考节点进行局部运动补偿,进而对当前节点进行预测编码。编码器还可以在进行了上述全局运动补偿之后,在接下来进行八叉树划分的过程中,再实现上述描述的局部运动补偿,本申请实施例不作限制。Among them, the encoder can filter and sample the global point cloud obtained by calculating the global motion transformation matrix, and then encode the point cloud to be processed based on the obtained point cloud to be processed. In the process of octree division, the encoder can also perform image filtering and sampling on the current node in the point cloud to be encoded and the corresponding reference node in the reference point cloud, determine the motion information, and finally perform local motion on the reference node based on the motion information Compensation, and then perform predictive coding on the current node. The encoder may also implement the local motion compensation described above in the subsequent process of performing octree division after performing the above global motion compensation, which is not limited in this embodiment of the present application.
需要说明的是,在全局运动补偿的过程中,待处理块的确定过程如下:编码器基于待编码点云,确定满足Z方向的预设范围内的物体点云(object经过下采样后的目标点云);并对物体点云进行块划分,得到多个待处理块。其中,每个待处理块中的点云即为待处理点云。It should be noted that in the process of global motion compensation, the determination process of the block to be processed is as follows: the encoder determines the object point cloud within the preset range that satisfies the Z direction based on the point cloud to be encoded (object after downsampling) point cloud); and divide the object point cloud into blocks to obtain multiple blocks to be processed. Among them, the point cloud in each block to be processed is the point cloud to be processed.
在本申请实施例中,编码器根据待编码点云(即当前点云)的z坐标的阈值top_z_boundary和bottom_z_boundary,将当前点云分为object和road(z<bottom_z_boundary or z>top_z_boundary为object,其余为road,再对待编码点云的object进行下采样,得到目标点云,对该目标点云进行块划分,得到多个待处理块,从而得到每个待处理块中对应的待处理点云。In the embodiment of this application, the encoder divides the current point cloud into object and road according to the thresholds top_z_boundary and bottom_z_boundary of the z coordinates of the point cloud to be encoded (that is, the current point cloud) (z<bottom_z_boundary or z>top_z_boundary is object, and the rest For the road, down-sample the object to be coded point cloud to obtain the target point cloud, then divide the target point cloud into blocks to obtain multiple blocks to be processed, so as to obtain the corresponding point cloud to be processed in each block to be processed.
在本申请的一些实施例中,编码器可以分别对所有的待处理块进行图滤波,并进行基于频率信息的采样,得到经过图滤波采样后的第一点云,从而减少点云中点的数量后,再从第一参考点云中找出第一点云的对应点,通过LMS算法,求解全局运动变换矩阵(Mat_GM)。In some embodiments of the present application, the encoder can perform image filtering on all blocks to be processed, and perform sampling based on frequency information to obtain the first point cloud after image filtering and sampling, thereby reducing the number of points in the point cloud. After the number, the corresponding point of the first point cloud is found from the first reference point cloud, and the global motion transformation matrix (Mat_GM) is solved by the LMS algorithm.
需要说明的是,在局部运动补偿的过程中,待处理点云块的确定过程如下:编码器对第一参考点云和第二参考点云中的一个,以及待编码点云分别进行八叉树划分,获取参考节点在当前层级参考块(长方体)的尺寸信息,以及当前节点在当前层级的当前块(长方体)的尺寸信息;在当前参考块的尺寸信息和当前块的尺寸信息表征当前参考块和当前块属于最大预测单元(LPU)和最小预测单元(minPU)之间时,将当前参考节点和当前节点中的点确定为待处理点云。It should be noted that, in the process of local motion compensation, the determination process of the point cloud block to be processed is as follows: the encoder performs eight-point analysis on one of the first reference point cloud and the second reference point cloud, and the point cloud to be encoded. Tree division, obtain the size information of the reference node at the current level of the reference block (cuboid), and the size information of the current block (cuboid) of the current node at the current level; the size information of the current reference block and the size information of the current block represent the current reference When the block and the current block belong between the largest prediction unit (LPU) and the smallest prediction unit (minPU), the points in the current reference node and the current node are determined as point clouds to be processed.
在本申请实施例中,编码器对第一参考点云或第二参考点云,以及待编码点云都需要进行八叉树划分,在八叉树划分的过程中,可以获取到当前节点的坐标信息和以及当前参考节点的坐标信息,以及当前层级划分的块的大小,即在当前层级的当前参考块的尺寸信息(例如长方体的体积),以及当前节点在当前层级的当前块的尺寸信息。In this embodiment of the application, the encoder needs to perform octree division on the first reference point cloud or the second reference point cloud, and the point cloud to be encoded. In the process of octree division, the current node's Coordinate information and coordinate information of the current reference node, and the size of the block divided by the current level, that is, the size information of the current reference block at the current level (such as the volume of a cuboid), and the size information of the current block of the current node at the current level .
在本申请实施例中,当八叉树的节点大小在LPU最大预测单元和minPU最小预测单元之间(LPU和minPU之间都为PU)时,根据当前待编码点云的当前节点,以及第一参考点云或第二参考点云的参考节点,求解局部运动向量MV(即运动信息),并对参考节点应用MV进行局部运动估计,进而进行局部运动补偿,得到补偿后的参考节点。也就是说,在参考块的尺寸信息和当前块的尺寸信息表征当前块和参考块属于最大预测单元(LPU)和最小预测单元(minPU)之间时,将参考节点和当前节点确定为待处理点云。基于当前待编码点云的当前节点和参考节点,求解局部运动向量MV的过程中,对当前待编码点云的当前节点和参考节点进行图滤波后,再进行局部运动向量MV的估计,可以减少参与确定运动信息的点数,进而在计算运动信息时, 减少时间复杂度。In the embodiment of the present application, when the node size of the octree is between the LPU maximum prediction unit and the minPU minimum prediction unit (the LPU and the minPU are both PUs), according to the current node of the current point cloud to be encoded, and the first The first reference point cloud or the reference node of the second reference point cloud calculates the local motion vector MV (ie motion information), and applies the MV to the reference node for local motion estimation, and then performs local motion compensation to obtain the compensated reference node. That is to say, when the size information of the reference block and the size information of the current block indicate that the current block and the reference block belong between the largest prediction unit (LPU) and the smallest prediction unit (minPU), the reference node and the current node are determined to be processed point cloud. Based on the current node and reference node of the current point cloud to be encoded, in the process of solving the local motion vector MV, after performing graph filtering on the current node and reference node of the current point cloud to be encoded, and then estimating the local motion vector MV, it can reduce Participate in determining the number of motion information points, and then reduce the time complexity when calculating motion information.
下面以待编码点云为例进行八叉树划分的描述。参考点云的划分过程原理是一样的,不再赘述。The following describes the octree division by taking the point cloud to be encoded as an example. The principle of the division process of the reference point cloud is the same and will not be repeated here.
编码器对于待编码点云,分别在x,y和z三个维度上寻找每个坐标分量对应的坐标的最大值和最小值,即{x
max,x
min},{y
max,y
min}和{z
max,z
min}计算d=ceil(log
2(max{max(x
max,y
max),z
max})),其中ceil()函数表示向上取整。将W=2
d作为立方体包围盒(bounding box)的边长,以原点为起点(左下角)作立方体,将点云中的所有点都包含在包围盒中。然后,编码器将包围盒八等分为8个子立方体如图4所示,对非空的(包含点云中的点)的子立方体继续进行八等分,直到划分得到的叶子结点为1×1×1的单位立方体(或预设尺寸的立方体)时停止划分,八叉树的树状结构如图5所示。
For the point cloud to be encoded, the encoder finds the maximum and minimum values of the coordinates corresponding to each coordinate component in the three dimensions of x, y and z, namely {x max , x min }, {y max , y min } Calculate d=ceil(log 2 (max{max(x max ,y max ) , z max })) with { z max , z min }, where the ceil() function represents rounding up. W=2 d is used as the side length of the bounding box of the cube, and the cube is made with the origin as the starting point (lower left corner), and all points in the point cloud are included in the bounding box. Then, the encoder divides the bounding box into 8 sub-cubes, as shown in Figure 4, and continues to divide the sub-cubes that are not empty (including points in the point cloud) until the leaf node obtained by the division is 1 ×1×1 unit cube (or a cube with a preset size) to stop dividing, the tree structure of the octree is shown in FIG. 5 .
在上述八叉树划分的过程中,编码器可以获取到在对一个当前节点(一个立方体,即块)的占用信息(表征包含的点云中的点是空还是非空的),以及当前节点的邻域信息(相邻节点的数量和细节信息等)。In the process of the above-mentioned octree division, the encoder can obtain the occupancy information of a current node (a cube, that is, a block) (indicating whether the point in the contained point cloud is empty or not), and the current node Neighborhood information (the number and details of adjacent nodes, etc.).
在本申请实施例中,编码器还可以针对待编码的点云数据进行了slice划分,坐标转换和体素化之后,先进行全局运动补偿后进入到八叉树划分的过程,在进行八叉树划分时,八叉树的每个层级都有至少一个节点,针对一个节点,即当前节点,编码器可以基于几何信息获取到划分过程中的当前节点的坐标信息,以及获取到当前节点划分的当前层级。其中,层级可以理解为树的层数,并在每个当前层数,确定是否需要对当前节点进行局部运动信息补偿处理后,再继续进行下一层的八叉树划分。In the embodiment of the present application, the encoder can also slice the point cloud data to be encoded. After coordinate conversion and voxelization, first perform global motion compensation and then enter the process of octree division. When the tree is divided, each level of the octree has at least one node. For a node, that is, the current node, the encoder can obtain the coordinate information of the current node in the division process based on the geometric information, as well as the current node division. current level. Wherein, the level can be understood as the number of layers of the tree, and at each current level, after determining whether to perform local motion information compensation processing on the current node, continue to divide the octree at the next level.
在本申请实施例中,编码器在进行八叉树划分的过程中,可以实时的获取到当前节点的坐标信息,以及当前节点对应的当前层级。第一层级中只有一个节点,之后每个层级都是基于上一层级的每个节点都划分成8个节点来实现的。In the embodiment of the present application, the encoder can obtain the coordinate information of the current node and the current level corresponding to the current node in real time during the process of dividing the octree. There is only one node in the first level, and each subsequent level is realized by dividing each node of the previous level into 8 nodes.
S102、基于待处理点云中两点之间的距离,确定两点之间的边权重,从而确定图滤波器。S102. Based on the distance between two points in the point cloud to be processed, determine an edge weight between the two points, so as to determine a graph filter.
在本申请实施例中,待处理点云块中包含多个点,即待处理点云包含多个点,编码器可以确定两个点之间的距离,根据点的坐标信息确定两个点之间的距离。In the embodiment of this application, the point cloud block to be processed contains multiple points, that is, the point cloud to be processed contains multiple points, and the encoder can determine the distance between two points, and determine the distance between the two points according to the coordinate information of the point. distance between.
在本申请的一些实施例中,编码器可以基于两个点之间的距离和权重分段函数,确定两点之间的边权重,再基于两点之间的边权重构建出图滤波器。其中,两点之间的边权重距离与两点之间的距离有关。In some embodiments of the present application, the encoder may determine the edge weight between the two points based on the distance between the two points and the weight segmentation function, and then construct a graph filter based on the edge weight between the two points. Among them, the edge weight distance between two points is related to the distance between the two points.
在本申请的一些实施例中,编码器基于待处理点云中两点之间的距离,确定两点之间的边权重,从而得到待处理点云中的边权重构成的邻接矩阵;基于邻接矩阵,确定图滤波器。In some embodiments of the present application, the encoder determines the edge weights between the two points based on the distance between the two points in the point cloud to be processed, thereby obtaining the adjacency matrix formed by the edge weights in the point cloud to be processed; based on the adjacency matrix that determines the graph filter.
需要说明的是,编码器得到两点之间的边权重,点与点之间的边权重组成了邻接矩阵;按照邻接矩阵就可以构建出图滤波器了。It should be noted that the encoder obtains the edge weights between two points, and the edge weights between points form an adjacency matrix; according to the adjacency matrix, a graph filter can be constructed.
需要说明的是,在本申请实施例中,图滤波器的作用为将输入的图信号进行滤波处理,得到包含频率的输出图信号,再对输出图信号进行采样操作。It should be noted that, in the embodiment of the present application, the function of the image filter is to filter the input image signal to obtain an output image signal including frequency, and then perform a sampling operation on the output image signal.
在本申请的一些实施例中,若待处理点云中两点之间的距离小于或等于预设距离阈值,编码器则基于预设参数阈值和两点之间的距离进行处理,得到该两点之间的边权重;若待处理点云块中两点之间的距离大于预设距离阈值,则该两点之间的边权重为零。其中,两点之间的距离与两点之间的边权重有关。In some embodiments of the present application, if the distance between two points in the point cloud to be processed is less than or equal to the preset distance threshold, the encoder performs processing based on the preset parameter threshold and the distance between the two points to obtain the two points Edge weight between points; if the distance between two points in the point cloud block to be processed is greater than the preset distance threshold, the edge weight between the two points is zero. Among them, the distance between two points is related to the edge weight between the two points.
需要说明的是,邻接矩阵的算法并申请实施例可以采用多种方式试下,不仅限于以下的示例。It should be noted that the algorithm of the adjacency matrix and the embodiment of the application can be tried in many ways, not limited to the following examples.
示例性的,权重分段函数可以如公式(1)所示,如下:Exemplarily, the weight segmentation function may be as shown in formula (1), as follows:
以点i和点j为例进行说明。Take point i and point j as examples for illustration.
其中,w
i,j为点i与点j之间连线的边的权重,即边权重,x
i和x
j表示i点和j点的三维坐标,σ为预设参数阈值,ε为预设距离阈值。
Among them, w i, j is the weight of the edge of the line between point i and point j, that is, the weight of the edge, x i and x j represent the three-dimensional coordinates of point i and point j, σ is the preset parameter threshold, ε is the preset Set the distance threshold.
在本申请实施例中,预设距离阈值是基于预设KNN查找参数和待处理点云所在块的边长确定的;其中,预设KNN查找参数为0-1之间;预设参数阈值是预设距离阈值的倍数,其中,倍数的值并不作限制。In the embodiment of the present application, the preset distance threshold is determined based on the preset KNN search parameter and the side length of the block where the point cloud to be processed is located; wherein, the preset KNN search parameter is between 0-1; the preset parameter threshold is A multiple of the preset distance threshold, where the value of the multiple is not limited.
示例性的,σ=ε×2。Exemplarily, σ=ε×2.
在本申请实施例中,编码器采用KNN算法,计算块中的两点之间的距离,将ε设置为KNN查找的半径,仅计算KNN查找过后的点中两点间的距离,这样有效减少了时间复杂度。ε可设置为块边长的n≤1倍,在cfg文件中加入参数KNNthresh(预设KNN查找参数),该参数可设置为0-1间的数。则ε=motion.motion_block_size(块尺寸)×KNNthresh。In the embodiment of this application, the encoder uses the KNN algorithm to calculate the distance between two points in the block, and sets ε as the radius of the KNN search, and only calculates the distance between the two points in the points after the KNN search, which effectively reduces time complexity. ε can be set to n≤1 times the side length of the block, and the parameter KNNthresh (preset KNN search parameter) is added to the cfg file, which can be set to a number between 0-1. Then ε=motion.motion_block_size (block size)×KNNthresh.
示例性的,以全局运动补偿过程为例说明。点云序列的点数很多,通过上述计算得到的pc_world_target(object)通常也较大,令图的构建十分复杂。于是,编码器将pc_world_target划分为多个块(block),在每个块中构建图,块的大小与TMC13v12InterEMv2.0中的默认参数motion.motion_block_size保持一致例如64,本申请实施例不作限制。若待处理点云中有N个点,每个块中图的点数为N,N为块中点的数量,点间连线(edge)的权重w
i,j与点间的距离有关。如图6所示(N=5,节点为1、2、3、4和5),当pc_world_target中的一个块中两个点间的距离小于等于ε时,使用边连接这两个点,该边的边权重与两点间的距离有关,且两点之间的距离越小,边权重的值w
i,j越大。当pc_world_target中的一个块中两个点间的距离大于ε时,该两点不连接,即w
i,j=0。如图6所示,当1点和5点的距离大于ε时,则w
1,5=w
5,1=0。
Exemplarily, the global motion compensation process is taken as an example for illustration. There are many points in the point cloud sequence, and the pc_world_target(object) obtained through the above calculation is usually large, which makes the construction of the graph very complicated. Therefore, the encoder divides pc_world_target into multiple blocks, and constructs a graph in each block. The size of the block is consistent with the default parameter motion.motion_block_size in TMC13v12InterEMv2.0, for example, 64, which is not limited in the embodiment of the present application. If there are N points in the point cloud to be processed, the number of points in each block is N, N is the number of points in the block, and the weight w i, j of the edge between points is related to the distance between points. As shown in Figure 6 (N=5, nodes are 1, 2, 3, 4 and 5), when the distance between two points in a block in pc_world_target is less than or equal to ε, use an edge to connect these two points, the The edge weight of an edge is related to the distance between two points, and the smaller the distance between two points, the larger the value w i, j of the edge weight. When the distance between two points in a block in pc_world_target is greater than ε, the two points are not connected, that is, w i,j =0. As shown in FIG. 6 , when the distance between point 1 and point 5 is greater than ε, then w 1,5 =w 5,1 =0.
在本申请的一些实施例中,编码器根据邻接矩阵进行权重加权求和,得到加权度矩阵(D);将加权度矩阵求逆,并与邻接矩阵相乘,得到图变换操作符(A);基于图变换操作符、预设的图滤波参数(h
l)和图滤波器的长度(L)构建多项式,确定图滤波器。
In some embodiments of the present application, the encoder performs weighted summation according to the adjacency matrix to obtain a weighted degree matrix (D); inverts the weighted degree matrix and multiplies it with the adjacency matrix to obtain a graph transformation operator (A) ; Construct a polynomial based on the graph transformation operator, the preset graph filter parameters (h l ) and the length (L) of the graph filter to determine the graph filter.
示例性的,图滤波器的输入为图信号(即点的三维坐标),输出为另一个图信号(即点的三维坐标)。Exemplarily, the input of the graph filter is a graph signal (ie, the three-dimensional coordinates of the point), and the output is another graph signal (ie, the three-dimensional coordinates of the point).
编码器根据邻接矩阵进行权重加权求和,得到加权度矩阵(D),如公式(2)所示:The encoder performs weighted summation according to the adjacency matrix to obtain a weighted degree matrix (D), as shown in formula (2):
D
i,i=Σw
i,j (2)
D i,i = Σw i,j (2)
其中,D为图的加权度矩阵(weighted degree matrix),是对角阵。w
i,j为点i与点j之间连线的边的权重,即边权重。
Among them, D is the weighted degree matrix of the graph (weighted degree matrix), which is a diagonal matrix. w i, j is the weight of the edge of the line between point i and point j, that is, the edge weight.
示例性的,编码器将加权度矩阵求逆,并与邻接矩阵相乘,得到图变换操作符(A),如公式(3)所示:Exemplarily, the encoder inverts the weighted degree matrix and multiplies it with the adjacency matrix to obtain a graph transformation operator (A), as shown in formula (3):
A=D
-1W (3)
A=D - 1W (3)
其中,A指的是图变换操作符(graph shift operator),D为图的加权度矩阵,W为图的邻接矩阵(adjacency matrix)。Among them, A refers to the graph shift operator, D is the weighted degree matrix of the graph, and W is the adjacency matrix of the graph.
需要说明的是,公式(3)仅为一种示例,本申请实施例并不需要对得到A的方式进行限制。It should be noted that the formula (3) is only an example, and the embodiment of the present application does not need to limit the way of obtaining A.
基于图变换操作符、预设的图滤波参数(h
l)和图滤波器的长度(L)构建线性、平移不变shift-invariant的图滤波器为多项式(4):
Based on the graph transformation operator, the preset graph filtering parameters (h l ) and the length (L) of the graph filter to construct a linear, translation-invariant shift-invariant graph filter as a polynomial (4):
其中,h
l为图滤波器的参数(即预设的图滤波参数),L为图滤波器的长度。
Wherein, h l is a parameter of the graph filter (ie, a preset graph filter parameter), and L is a length of the graph filter.
示例性的,令h
0=1,h
1=-1。图滤波器的长度L为2,图滤波器为公式(5)所示:
Exemplarily, let h 0 =1, h 1 =-1. The length L of the graph filter is 2, and the graph filter is shown in formula (5):
h(A)=I-A=I-D
-1W (5)
h(A)=IA=ID -1 W (5)
编码器的图滤波器的输出图信号为y=h(A)×S,其中,y∈R
N×3,h(A)∈R
N×N,S∈R
N×3,A∈R
N×N。N为block中的点的数量,S为输入的图信号(一个块中点的三维坐标)。
The output graph signal of the graph filter of the encoder is y=h(A)×S, where, y∈R N×3 , h(A)∈R N×N , S∈R N×3 , A∈R N × N . N is the number of points in the block, and S is the input graph signal (3D coordinates of points in a block).
S103、基于图滤波器,对待处理点云进行图滤波采样,得到经过图滤波采样后的第一点云。S103. Based on the graph filter, perform graph filtering and sampling on the point cloud to be processed to obtain a first point cloud after graph filtering and sampling.
编码器在得到图滤波器之后,对所有待处理点云进行图滤波并采样,得到经过图滤波采样后的第一点云。After obtaining the image filter, the encoder performs image filtering and sampling on all point clouds to be processed, and obtains the first point cloud after image filtering and sampling.
需要说明的是,考虑到不同块中的点的数量不同,在一个块的点的数量不多的情况下没有必要进行图滤波处理,或者在一个块中仅有一个点时,也不会进行图滤波处理。因此,编码器还可以根据待处理块中点的数量确定是否需要进行图滤波,若点的数量为1,则直接滤除该点;若点的数量小于预设点数,则不进行图滤波;若点的数量大于或等于预设点数,则进行图滤波。It should be noted that, considering that the number of points in different blocks is different, it is not necessary to perform image filtering processing when the number of points in a block is not large, or when there is only one point in a block, it will not be performed Image filtering. Therefore, the encoder can also determine whether to perform image filtering according to the number of points in the block to be processed. If the number of points is 1, the point is directly filtered out; if the number of points is less than the preset number of points, no image filtering is performed; If the number of points is greater than or equal to the preset number of points, image filtering is performed.
示例性的,预设点数为6,本申请实施例不作限制。Exemplarily, the preset number of points is 6, which is not limited in this embodiment of the present application.
基于每个块中包含点的数量不同,对其处理方式不同,对待处理块中点的处理方式如下表1所示:Based on the number of points contained in each block, the processing methods are different. The processing methods of the points in the block to be processed are shown in Table 1 below:
表1Table 1
在本申请的一些实施例中,编码器基于图滤波器,对待处理点云进行图滤波,得到具有频率信息的第二点云;依据频率信息对第二点云的点进行频域采样,得到经过图滤波采样后的点云块,即第一点云。所有经过图滤波采样后的点云块组成的点云,称为第一点云。In some embodiments of the present application, the encoder performs graph filtering on the point cloud to be processed based on the graph filter to obtain the second point cloud with frequency information; performs frequency domain sampling on the points of the second point cloud according to the frequency information to obtain The point cloud block sampled by graph filtering is the first point cloud. The point cloud composed of all the point cloud blocks sampled by graph filtering is called the first point cloud.
在本申请的一些实施例中,编码器对含有频率信息的点云块(即第二点云)进行采样的过程为:编码器对含有频率信息的点云块中的点的三维坐标的二范数排序,得到排序后的每个点对应的频率值;按照预设滤除比例,对排序后的每个点对应的频率值进行最低频率和最高频率的去除,得到剩余频率值;剩余频率值在第二点云中对应的点构成采样后的第一点云。In some embodiments of the present application, the process of the encoder sampling the point cloud block containing frequency information (that is, the second point cloud) is: the encoder performs two-dimensional sampling of the three-dimensional coordinates of the points in the point cloud block containing frequency information. Norm sorting to obtain the frequency value corresponding to each point after sorting; according to the preset filtering ratio, remove the lowest frequency and highest frequency from the frequency value corresponding to each point after sorting to obtain the remaining frequency value; the remaining frequency Points corresponding to values in the second point cloud constitute the first point cloud after sampling.
需要说明的是,编码器对第二点云中的点中的频率提取的过程可以采用的提取方式很多,不仅限于本申请实施例中提到的二范数的提取方式。It should be noted that the encoder can use many extraction methods for the frequency extraction process of the points in the second point cloud, not limited to the two-norm extraction method mentioned in the embodiment of the present application.
在本申请实施例中,示例性的,在块中点数N≥6时,对块中所有点进行图滤波,并基于点的频率信息进行采样,去除高频点和低频点。图滤波器的输入为块中所有点的三维坐标,输出图信号为带有频率信息的三维坐标。编码器将求得的输出图信号的二范数排序,该范数作为点的频率值。编码器从中去除频率过高或频率过低的点,最终得到经过图滤波后的点。对pc_world_target中的所有块进行上述操作,最终得到经过图滤波后剩余的点云pc_reserve。In the embodiment of the present application, for example, when the number of points in the block is N≥6, image filtering is performed on all points in the block, and sampling is performed based on the frequency information of the points to remove high-frequency points and low-frequency points. The input of the graph filter is the three-dimensional coordinates of all points in the block, and the output graph signal is the three-dimensional coordinates with frequency information. The encoder sorts the obtained bi-norm of the output image signal as the frequency value of the point. The encoder removes points with too high or too low frequency from it, and finally gets the points after graph filtering. Perform the above operations on all blocks in pc_world_target, and finally get the remaining point cloud pc_reserve after image filtering.
需要说明的是,在cfg文件中加入一个参数ratioFilteredOut,表示排序过后滤除第二点云中点的比例,即预设滤除比例。It should be noted that a parameter ratioFilteredOut is added to the cfg file, which indicates the ratio of filtering out the second point cloud midpoint after sorting, that is, the preset filtering ratio.
示例性的,设置的默认值为ratioFilteredOut=0.4(则高频和低频各自需要去除40%的比例),即共滤除一个块中80%的点,只剩下20%的点。Exemplarily, the default value set is ratioFilteredOut=0.4 (therefore high frequency and low frequency each need to remove 40% of the ratio), that is, a total of 80% of points in a block are filtered out, leaving only 20% of points.
需要说明的是,预设滤除比例可以为高频和低频都需要滤除相同的比例,也可以设置高频和低频不同的比例,本申请实施例不作限制。It should be noted that the preset filtering ratio can be the same ratio that both high frequency and low frequency need to be filtered out, or different ratios can be set for high frequency and low frequency, which is not limited in this embodiment of the present application.
可以理解的是,编码器经过图滤波处理,可以减少待处理点云中的点数,为后续运动估计减少时间复杂度,从而可以提高编码效率。It can be understood that after the encoder is processed by graph filtering, the number of points in the point cloud to be processed can be reduced, and the time complexity for subsequent motion estimation can be reduced, thereby improving the encoding efficiency.
在申请的一些实施例中,由于编码器基于图滤波器,对待处理点云进行图滤波,得到具有频率信息的第二点云。因此,编码器就可以基于经过图滤波后的第二点云去除部分点后再进行后续处理,这样可以,滤掉高频和低频噪声,使得计算过程更加精准。In some embodiments of the application, since the encoder is based on a graph filter, it performs graph filtering on the point cloud to be processed to obtain a second point cloud with frequency information. Therefore, the encoder can remove some points based on the second point cloud after image filtering before performing subsequent processing. In this way, high-frequency and low-frequency noise can be filtered out, making the calculation process more accurate.
关于编码器基于图滤波器,对待处理点云进行图滤波,为什么可以得到具有频率信息的第二点云,将通过以下理论验证。Regarding the encoder based on the graph filter, the point cloud to be processed is subjected to graph filtering, and why the second point cloud with frequency information can be obtained will be verified by the following theory.
图变换操作符A特征分解为A=VΛV
-1,Λ的对角线元素为按照从大到小顺序排列的特征值λ
1,...,λ
N,V为特征向量的组合,每个特征值表示图信号的不同频率,特征值越大,对应的图信号的频率越低。如公式(6)所示为图变换操作符的特征分解。
Graph transformation operator A eigendecomposition is A=VΛV -1 , the diagonal elements of Λ are the eigenvalues λ 1 ,...,λ N arranged in descending order, and V is the combination of eigenvectors, each The eigenvalues represent different frequencies of the graph signal, and the larger the eigenvalue, the lower the frequency of the corresponding graph signal. Equation (6) shows the eigendecomposition of graph transformation operators.
假设使用h(A)=I-A作为图滤波器,则基于公式(6),图滤波器为公式(7)如下:Assuming that h(A)=I-A is used as the graph filter, then based on formula (6), the graph filter is formula (7) as follows:
若公式(6)中λ
i对应图信号的低频分量,则1-λ
i对应图信号的高频分量。若公式(6)中λ
i对应图信号的高频分量,则1-λ
i对应图信号的低频分量。再者,由于图信号S的图傅里叶变换为公式(8):
If λ i in formula (6) corresponds to the low frequency component of the image signal, then 1-λ i corresponds to the high frequency component of the image signal. If λ i in formula (6) corresponds to the high-frequency component of the image signal, then 1-λ i corresponds to the low-frequency component of the image signal. Furthermore, since the graph Fourier transform of the graph signal S is formula (8):
图信号S的傅里叶反变换为公式(9):The inverse Fourier transform of the graph signal S is formula (9):
经过图傅里叶变换,将图信号(点的坐标)转换到频域,经过滤波后,再通过图傅里叶反变换,可以将频域信息转换为另一种滤波后的图信号;该图信号带有频率信息。经过图滤波后输出的图信号,对其按照频率从高到低排序。根据公式(7)、公式(8)、公式(9),得到公式(10)。公式(10)为先图傅里叶变换后图傅里叶反变换的过程。After the graph Fourier transform, the graph signal (point coordinates) is converted to the frequency domain, and after filtering, the frequency domain information can be converted into another filtered graph signal through the graph Fourier inverse transform; The graph signal carries frequency information. The image signals output after image filtering are sorted according to frequency from high to low. According to formula (7), formula (8) and formula (9), formula (10) is obtained. Formula (10) is the process of graph Fourier transform first and then graph inverse Fourier transform.
采用图滤波器对S进行图滤波后,得到y的输出图信号,
在频域中,1-λ
i表征在频域中,因此,通过公式(10)中得到的y的输出图信号包含频率信息,即编码器基于图滤波器,对待处理点云进行图滤波,可以得到具有频率信息的点云块,即第二点云。
After the graph filter is used to filter S, the output graph signal of y is obtained, In the frequency domain, 1- λi is represented in the frequency domain, therefore, the output image signal of y obtained by formula (10) contains frequency information, that is, the encoder performs image filtering on the point cloud to be processed based on the image filter, A point cloud block with frequency information can be obtained, that is, a second point cloud.
S104、基于第一点云,对参考点云进行补偿,进而对待编码点云进行编码。S104. Compensate the reference point cloud based on the first point cloud, and then encode the point cloud to be encoded.
编码器在得到了经过滤波采样的第一点云之后,就可以基于第一点云对待编码点云进行编码处理和后续的实现了。After the encoder obtains the filtered and sampled first point cloud, it can perform encoding processing and subsequent implementation on the point cloud to be encoded based on the first point cloud.
由于本申请存在全部运动补偿和/或局部运动补偿两种实现,因此,编码过程也有不同的处理。Since there are two implementations of full motion compensation and/or partial motion compensation in this application, the encoding process also has different processing.
方式一:全局运动补偿的情况:Method 1: In the case of global motion compensation:
编码器基于第一参考点云,对待编码点云进行编码的实现为:The encoder is based on the first reference point cloud, and the implementation of encoding the point cloud to be encoded is:
编码器从获取的参考帧的第一参考点云中,确定与第一点云对应的第一子参考点云;其中,第一点云为对物体点云进行块划分和图滤波采样后得到的全局点云;基于第一参考点云和第一点云,计算相邻两点云的全局运动变换矩阵,并将全局运动变换矩阵写入码流;基于全局运动变换矩阵,对第一参考点云进行全局运动补偿,得到第二参考点云;对第二参考点云和待编码点云分别进行八叉树划分和算术编码,得到第一几何编码结果,并将第一几何编码结果写入码流。其中,第一参考点云为所述参考点云对应的初始点云。The encoder determines the first sub-reference point cloud corresponding to the first point cloud from the first reference point cloud of the acquired reference frame; wherein, the first point cloud is obtained after block division and image filtering sampling of the object point cloud the global point cloud; based on the first reference point cloud and the first point cloud, calculate the global motion transformation matrix of two adjacent point clouds, and write the global motion transformation matrix into the code stream; based on the global motion transformation matrix, the first reference Perform global motion compensation on the point cloud to obtain the second reference point cloud; respectively perform octree division and arithmetic coding on the second reference point cloud and the point cloud to be encoded to obtain the first geometric encoding result, and write the first geometric encoding result to input stream. Wherein, the first reference point cloud is an initial point cloud corresponding to the reference point cloud.
在本申请实施例中,编码器对第二参考点云和待编码点云分别进行八叉树划分,并将第二参考点云的参考节点的八叉树划分结果作为待编码点云的当前节点的八叉树划分的预测文本,进而对待编码点云当前节点的八叉树划分结果进行算术编码,得到第一几何编码结果。In the embodiment of the present application, the encoder performs octree division on the second reference point cloud and the point cloud to be encoded respectively, and uses the octree division result of the reference node of the second reference point cloud as the current point cloud to be encoded The predicted text of the octree division of the node is then arithmetically encoded on the octree division result of the current node of the point cloud to be encoded to obtain the first geometric encoding result.
示例性的,编码器在全局运动补偿的情况下,对pc_world_target中的所有块进行上述操作,最终得到经过图滤波后剩余的点云pc_reserve(第一点云)。基于点云pc_reserve,确定全局运动变换矩阵。Exemplarily, the encoder performs the above operations on all blocks in pc_world_target in the case of global motion compensation, and finally obtains the remaining point cloud pc_reserve (first point cloud) after image filtering. Based on the point cloud pc_reserve, determine the global motion transformation matrix.
方式二:局部运动补偿Method 2: Local Motion Compensation
局部运动补偿可以单独进行,也可以在全局运动补偿后进行。Local motion compensation can be performed alone or after global motion compensation.
编码器基于第一参考点云(单独进行)或第二参考点云(全局运动补偿后进行),对待编码点云进行编码。The encoder encodes the point cloud to be encoded based on the first reference point cloud (performed alone) or the second reference point cloud (performed after global motion compensation).
下面以第一参考点云的例子进行说明,第二参考点云的实现同理,不再赘述,实现为:The following is an example of the first reference point cloud for illustration. The realization of the second reference point cloud is the same, so it will not be repeated. The realization is as follows:
编码器根据图滤波采样后的参考节点和第一点云中的图滤波采样后的当前节点,从预设候选运动信息列表中,确定出运动信息;基于运动信息,对第一参考点云中的参考节点进行局部运动补偿,得到补偿后的参考节点;基于补偿后的参考节点和当前节点进行算术编码,得到第二几何编码结果。The encoder determines the motion information from the preset candidate motion information list according to the reference node sampled by graph filtering and the current node sampled by graph filter in the first point cloud; Local motion compensation is performed on the reference node to obtain a compensated reference node; arithmetic coding is performed based on the compensated reference node and the current node to obtain a second geometric coding result.
在本申请的一些实施例中,编码器遍历预设候选运动信息列表中的每个候选运动信息,对过滤后的参考节点中的点进行局部运动估计,得到每个候选运动信息对应的估计补偿后的参考节点;确定第一点云中的图滤波采样后的当前节点中每个点,与估计补偿后的参考节点中的各个点之间的最小距离;将图滤波采样后的当前节点中的每个点的最小距离之和,作为每个候选运动信息的失真;将每个候选运动信息的失真中的最小失真对应的候选运动信息,确定为运动信息。编码器根据此运动信息,对第一参考点云中的参考节点进行局部运动补偿。In some embodiments of the present application, the encoder traverses each candidate motion information in the preset candidate motion information list, performs local motion estimation on points in the filtered reference node, and obtains the estimated compensation corresponding to each candidate motion information After the reference node; determine the minimum distance between each point in the current node after the graph filter sampling in the first point cloud, and each point in the reference node after the estimated compensation; the current node after the graph filter sampling The sum of the minimum distances of each point of is used as the distortion of each candidate motion information; the candidate motion information corresponding to the minimum distortion among the distortions of each candidate motion information is determined as the motion information. The encoder performs local motion compensation on the reference nodes in the first reference point cloud according to the motion information.
在本申请实施例中,参考节点和当前节点的尺寸信息在LPU最大预测单元和minPU最小预测单元之间时,根据参考节点和当前节点求解局部运动向量MV,即运动信息,并对参考点云(第一参考点云或第二参考点云)中的参考节点应用MV,进行局部运动补偿,得到补偿后的参考节点。In the embodiment of this application, when the size information of the reference node and the current node is between the LPU maximum prediction unit and the minPU minimum prediction unit, the local motion vector MV, that is, the motion information, is calculated according to the reference node and the current node, and the reference point cloud The MV is applied to the reference nodes in (the first reference point cloud or the second reference point cloud), and local motion compensation is performed to obtain the compensated reference nodes.
在本申请的一些实施例中,以当前节点为例进行说明,参考节点的划分原理一致。在八叉树划分时,编码器可以判断当前节点是否符合直接编码模式,若符合直接编码模式,则直接编码当前节点中的点的坐标信息;若不符合直接编码模式,则继续进行八叉树划分,根据当前节点的占用信息和上下文信息(即邻域信息)对节点进行算术编码。当八叉树深度划分到达叶节点时,编码叶节点中包含点的数量。In some embodiments of the present application, the current node is taken as an example for illustration, and the principle of division of reference nodes is the same. When the octree is divided, the encoder can judge whether the current node conforms to the direct encoding mode. If it conforms to the direct encoding mode, it directly encodes the coordinate information of the points in the current node; if it does not conform to the direct encoding mode, it continues to perform the octree Partitioning, the nodes are arithmetically coded according to the occupancy information and context information (ie neighborhood information) of the current node. When an octree depth division reaches a leaf node, encodes the number of points contained in the leaf node.
示例性的,如图7所示,针对当前点云和参考点云从根节点开始,对一个节点进行八叉树划分,a中表示当块尺寸(2的幂次)在大于LPU的层级,每个节点被划分为8个子节点,依次层级划分,b中表示在LPU和minPU之间时,若节点不是最后的叶子节点,则且符合直接编码模式,则直接编码点的坐标信息。c中表示若节点是最后的叶子节点,则且对该叶子节点中包含的点数量进行编码。Exemplarily, as shown in FIG. 7, starting from the root node for the current point cloud and the reference point cloud, a node is divided into an octree, and a indicates that when the block size (power of 2) is at a level greater than the LPU, Each node is divided into 8 sub-nodes, which are hierarchically divided in turn. b indicates that when the node is between the LPU and the minPU, if the node is not the last leaf node and conforms to the direct encoding mode, the coordinate information of the point is directly encoded. c indicates that if the node is the last leaf node, the number of points contained in the leaf node is encoded.
在本申请的一些实施例中,全局运动补偿和局部运动补偿可以都进行,这样局部运动补偿采用的当考节点就是经过全局运动补偿后的第一参考点云的参考节点,这样编码器对待编码点云进行编码的实现就是方式一进行完成后,在对获取的第二参考点云和待编码点云进行八叉树划分,获取参考节点在当前层级的参考块的尺寸信息,以及当前节点在当前层级的当前块的尺寸信息。In some embodiments of the present application, both global motion compensation and local motion compensation can be performed, so that the reference node used by local motion compensation is the reference node of the first reference point cloud after global motion compensation, so that the encoder treats encoding The realization of the point cloud encoding is that after the completion of the first method, the obtained second reference point cloud and the point cloud to be encoded are divided into octrees, and the size information of the reference block of the reference node at the current level is obtained, and the current node is at Size information of the current block at the current level.
在本申请实施例中,由于参考点云对应的点云有两种,一种为第一参考点云,一种为第二参考点云,因此,在进行局部运动补偿的时候,编码器可以基于第一参考点云和第二参考点云来确定当前参考节点到底是哪个。第二参考点云是第一参考点云经过全局运动补偿后的点云。In the embodiment of this application, since there are two types of point clouds corresponding to the reference point cloud, one is the first reference point cloud and the other is the second reference point cloud, therefore, when performing local motion compensation, the encoder can Which one is the current reference node is determined based on the first reference point cloud and the second reference point cloud. The second reference point cloud is a point cloud after global motion compensation of the first reference point cloud.
也就是说,参考节点为从第一参考点云中采用第一搜索窗口确定的节点;或为从第二参考点云中采用第二搜索窗口确定的节点。That is to say, the reference node is a node determined from the first reference point cloud using the first search window; or a node determined from the second reference point cloud using the second search window.
在本申请实施例中,编码器从第一参考点云中采用第一搜索窗口确定与当前节点对应的第一节点,从第二参考点云中采用第二搜索窗口确定的与当前节点对应的第二节点。编码器将当前节点中的每个点,与第一节点中的每个点,确定出第一最小距离,当前节点中的每个点,与第二节点中的点,确定出第二最小距离。当前节点中每个点的第一最 小距离之和为第一失真,当前节点中每个点的第二最小距离之和为第二失真。若第一失真小于第二失真,则从第一参考点云中确定与当前节点对应的参考节点,即点集w;若第一失真大于第二失真,则从第二参考点云中确定与当前节点对应的参考节点。In this embodiment of the application, the encoder uses the first search window to determine the first node corresponding to the current node from the first reference point cloud, and uses the second search window to determine the node corresponding to the current node from the second reference point cloud. second node. The encoder determines the first minimum distance between each point in the current node and each point in the first node, and determines the second minimum distance between each point in the current node and the point in the second node . The sum of the first minimum distance of each point in the current node is the first distortion, and the sum of the second minimum distance of each point in the current node is the second distortion. If the first distortion is smaller than the second distortion, then determine the reference node corresponding to the current node from the first reference point cloud, that is, the point set w; The reference node corresponding to the current node.
示例性的,当节点大小在LPU和minPU之间时,进行局部运动向量MV的计算。首先,在第一参考点云和第二参考点云中找出当前节点的搜索窗口win_V(第一搜索窗口)和win_W(第二搜索窗口),求出当前节点中的点与第一搜索窗口和第二搜索窗口中点的失真,若当前节点中的点与win_V的失真小,则在win_V中计算MV经过补偿的参考节点,即在第一搜索窗口中找出与当前点云的节点中点的对应点集w(参考节点)。反之,则在win_W中计算MV。Exemplarily, when the node size is between LPU and minPU, the local motion vector MV is calculated. First, find the search window win_V (first search window) and win_W (second search window) of the current node in the first reference point cloud and the second reference point cloud, and find the point in the current node and the first search window and the distortion of the point in the second search window, if the distortion between the point in the current node and win_V is small, then calculate the MV compensated reference node in win_V, that is, find the node in the first search window that is consistent with the current point cloud The point's corresponding point set w (reference node). Otherwise, calculate MV in win_W.
如图8所示,确定MV的过程中,待编码点云的当前节点对应的参考节点是从第一参考点云的搜索窗口确定还是从第二参考点云的搜索窗口中确定的,都可以基于当前节点和参考节点,从预设候选运动信息列表中,确定出最佳的运动信息MV,基于运动信息MV进行局部运动补偿。As shown in Figure 8, in the process of determining the MV, whether the reference node corresponding to the current node of the point cloud to be encoded is determined from the search window of the first reference point cloud or from the search window of the second reference point cloud can be determined. Based on the current node and the reference node, the best motion information MV is determined from the preset candidate motion information list, and local motion compensation is performed based on the motion information MV.
在本申请的一些实施例中,编码器基于运动信息,可以对当前参考节点进行局部运动补偿,得到补偿后的参考节点的情况。当节点大小在LPU和minPU之间时,还需要基于参考节点是否可以分割来确定是否需要对参考节点进行局部运动补偿。参考节点是否可以分割可以通过比较第一代价和第二代价来确定。其中,第一代价为假设不分割时,采用最佳运动信息进行局部补偿后,参考节点与当前节点的最小的失真(cost_NoSplit)。第二代价为假设分割时,将参考节点与当前节点分别进行八叉树划分,使用对应的节点计算8个局部运动向量MV,采用最佳运动信息对当前参考节点划分的8个子节点进行局部补偿后,再与当前节点划分的8个子节点对应得到8个最小失真,将该8个失真相加后,得到分割时的代价cost_Split。若第一代价小于第二代价,则为不分割,在不分割的情况下,确定需要对参考节点进行局部运动补偿;若第二代价小于或等于第一代价,则为分割,在分割的情况下,不需要对当前参考节点进行局部运动补偿,而对其子节点进行局部运动补偿。In some embodiments of the present application, based on the motion information, the encoder may perform local motion compensation on the current reference node to obtain the situation of the compensated reference node. When the node size is between LPU and minPU, it is also necessary to determine whether local motion compensation is required for the reference node based on whether the reference node can be split. Whether the reference node can be split can be determined by comparing the first cost and the second cost. Wherein, the first cost is the minimum distortion (cost_NoSplit) between the reference node and the current node after local compensation is performed using the best motion information assuming no split. The second cost is to divide the reference node and the current node into octrees respectively, use the corresponding nodes to calculate 8 local motion vectors MV, and use the best motion information to locally compensate the 8 sub-nodes divided by the current reference node. After that, the 8 minimum distortions corresponding to the 8 sub-nodes divided by the current node are obtained. After adding the 8 distortions, the cost_Split when splitting is obtained. If the first cost is less than the second cost, it is not divided. In the case of no division, it is determined that local motion compensation needs to be performed on the reference node; if the second cost is less than or equal to the first cost, it is divided. In the case of division In this case, local motion compensation does not need to be performed on the current reference node, but local motion compensation is performed on its child nodes.
可以理解的是,编码器对参考点云(第一参考点云或第二参考点云)的部分节点进行局部运动补偿时,进行图滤波采样操作可以减少计算量,提高编码效率。It can be understood that when the encoder performs local motion compensation on some nodes of the reference point cloud (the first reference point cloud or the second reference point cloud), the image filtering and sampling operation can reduce the calculation amount and improve the coding efficiency.
示例性的,如图9所示,编码器根据当前点云和第一参考点云确定全局运动变换矩阵,采用全局运动变换矩阵对第一参考点云进行全局运动补偿,并将编码全局运动变换矩阵,写入码流,即Mat_GM比特流。编码器对补偿后的第二参考点云(对应参考点云)和当前点云进行八叉树划分,在划分的过程中,当划分的块尺寸在LPU和minPU之间时,编码器还可以采用最佳运动信息(即局部运动向量)对当前层级的当前参考节点进行局部运动补偿后,得到补偿后的参考节点,并编码最佳运动信息,写入码流,即MV比特流。编码器在进行当前点云的当前节点的编码时,采用当前节点的占用信息、邻域信息,以及补偿后参考节点的占用信息、邻域信息,进行减少上下文信息操作后,进行算术编码(在算数编码器中进行),得到编码比特流。编码器继续进行当前点云的当前节点的子节点的编码(即FIFO队列一样存储节点队列),直至当前点云编码完成时为止。Exemplarily, as shown in Figure 9, the encoder determines the global motion transformation matrix according to the current point cloud and the first reference point cloud, uses the global motion transformation matrix to perform global motion compensation on the first reference point cloud, and encodes the global motion transformation matrix Matrix, write code stream, that is, Mat_GM bit stream. The encoder performs octree division on the compensated second reference point cloud (corresponding to the reference point cloud) and the current point cloud. During the division process, when the divided block size is between LPU and minPU, the encoder can also After local motion compensation is performed on the current reference node at the current level by using the best motion information (that is, the local motion vector), the compensated reference node is obtained, and the best motion information is encoded and written into the code stream, that is, the MV bit stream. When encoding the current node of the current point cloud, the encoder uses the occupancy information and neighborhood information of the current node, as well as the occupancy information and neighborhood information of the reference node after compensation, and performs arithmetic coding (in Arithmetic encoder) to obtain the coded bit stream. The encoder continues to encode the child nodes of the current node of the current point cloud (that is, the FIFO queue stores the node queue) until the encoding of the current point cloud is completed.
可以理解的是,编码器在点云帧间编码的过程中,对第一参考点云全局运动补偿和局部运动补偿时,对待处理点云先进行图滤波并采样,减少待处理点云中的点数,这样在计算运动信息或全局运动变换矩阵的过程中,可以减少计算的时间复杂度,进而提高编码的时间效率。It can be understood that, in the process of point cloud inter-frame encoding, when compensating the global motion and local motion of the first reference point cloud, the encoder first performs image filtering and sampling on the point cloud to be processed to reduce the number of points in the point cloud to be processed. In this way, in the process of calculating the motion information or the global motion transformation matrix, the time complexity of calculation can be reduced, thereby improving the time efficiency of encoding.
下面介绍本申请实施例提供的点云解码方法。The point cloud decoding method provided by the embodiment of the present application is introduced below.
如图10所示,本申请实施例提供了一种点云解码方法,应用于解码器中,该方法可以包括:As shown in Figure 10, the embodiment of the present application provides a point cloud decoding method, which is applied to a decoder, and the method may include:
S201、解析码流,获取几何编码结果和运动相关信息;运动相关信息是对待编码点云中的待处理点云进行图滤波采样后的第一点云,与参考点云计算得到的。S201. Analyze the code stream to obtain geometric encoding results and motion-related information; the motion-related information is obtained by calculating the first point cloud after image filtering and sampling of the point cloud to be processed in the point cloud to be encoded, and the reference point cloud.
S202、获取已解码的参考点云。S202. Obtain a decoded reference point cloud.
S203、基于运动相关信息和参考点云,对待解码点云中的参考节点进行运动补偿,对几何码流进行解码,得到解码信息。S203. Based on the motion-related information and the reference point cloud, perform motion compensation on the reference node in the point cloud to be decoded, decode the geometric code stream, and obtain decoding information.
在本申请实施例中,解码器可以解析码流,从码流中解析出几何编码结果和运动相关信息,其中运动相关信息是编码器通过对待编码点云中的待处理点云进行图滤波采样后的第一点云与参考点云计算得到的。由于本申请实施例在编码时可能采用了全局运动补偿和局部运动补偿中的至少一种。因此,解码器在进行解析时获取的运动相关信息可能是全局运动变换矩阵和运动信息中的至少一种。相应的,几何编码结果也可以是第一几何编码结果(对应全局运动补偿)和第二几何编码结果(对应局部运动补偿)中的至少一种。In the embodiment of this application, the decoder can parse the code stream, and parse out the geometric encoding result and motion-related information from the code stream, wherein the motion-related information is obtained by the encoder through image filtering and sampling of the point cloud to be processed in the point cloud to be coded. After the first point cloud is calculated with the reference point cloud. Because the embodiment of the present application may use at least one of global motion compensation and local motion compensation during encoding. Therefore, the motion-related information acquired by the decoder during parsing may be at least one of the global motion transformation matrix and motion information. Correspondingly, the geometry encoding result may also be at least one of the first geometry encoding result (corresponding to global motion compensation) and the second geometry encoding result (corresponding to local motion compensation).
在本申请实施例中,解码器在对当前节点进行解码时,表征已经解码出了参考点云。这样,解码器就可以基于运动相关信息和参考点云,对待解码点云中的当前节点进行解码,从而得到当前节点的解码信息。In the embodiment of the present application, when the decoder decodes the current node, it indicates that the reference point cloud has been decoded. In this way, the decoder can decode the current node in the point cloud to be decoded based on the motion-related information and the reference point cloud, so as to obtain the decoding information of the current node.
在本申请的一些实施例中,针对全局运动补偿和局部运动补偿有以下两种方式进行解码。In some embodiments of the present application, the global motion compensation and the local motion compensation can be decoded in the following two manners.
方式一:method one:
全局运动补偿的情况:几何编码结果包括:第一几何编码结果;运动相关信息包括:全局运动变换矩阵。In the case of global motion compensation: the geometry encoding result includes: the first geometry encoding result; the motion-related information includes: the global motion transformation matrix.
解码器基于全局运动变换矩阵,对参考点云(第一参考点云)进行全局运动补偿,得到补偿后的参考点云(第二参考点云);基于补偿后的参考点云和第一几何编码结果,得到解码信息。The decoder performs global motion compensation on the reference point cloud (the first reference point cloud) based on the global motion transformation matrix to obtain the compensated reference point cloud (the second reference point cloud); based on the compensated reference point cloud and the first geometry Encoding result, get decoding information.
方式二:Method 2:
局部运动补偿的情况:几何编码结果包括:第二几何编码结果;运动相关信息包括:运动信息(即局部运动向量)。In the case of local motion compensation: the geometric encoding result includes: the second geometric encoding result; the motion related information includes: motion information (ie local motion vector).
解码器对参考点云(即第一参考点云或第二参考点云)进行八叉树划分,确定参考节点;基于运动信息,对参考节点进行局部运动补偿,得到补偿后的参考节点;基于补偿后的参考节点和第二几何编码结果,得到解码信息。The decoder divides the reference point cloud (that is, the first reference point cloud or the second reference point cloud) into an octree to determine the reference node; based on the motion information, it performs local motion compensation on the reference node to obtain the compensated reference node; based on The decoded information is obtained from the compensated reference node and the second geometric encoding result.
需要说明的是,有关八叉树划分的过程和原理与编码器一致,此处不再赘述。It should be noted that the process and principle of the octree division are consistent with those of the encoder, and will not be repeated here.
在本申请实施例中,解码信息可以为解码后的当前节点对应的点云,当解码器将所有节点解码完成时,得到解码后的点云。In the embodiment of the present application, the decoding information may be the decoded point cloud corresponding to the current node, and when the decoder completes decoding of all nodes, the decoded point cloud is obtained.
示例性的,如图11所示,解码器可以从编码比特流中解析出全局运动变换矩阵以及局部运动向量,这样解码器在解码当前节点的过程中,可以先采用全局运动变换矩阵的全局运动向量Mat_GM对参考点云进行全局运动补偿,得到第二参考点云,再对第二参考点云进行八叉树划分,当划分的块尺寸在LPU和minPU之间时,解码器可以对第二参考点云的当前层级的参考节点进行局部运动补偿后,得到参考节点的补偿后的参考节点的点云,再将补偿后的参考节点和当前节点对应的编码比特流进行点云解码,得到解码后的当前节点对应的点云,继续进行下一个节点的解码,直至所有节点解码完成时为止,得到解码后的点云。Exemplarily, as shown in Figure 11, the decoder can parse out the global motion transformation matrix and the local motion vector from the coded bit stream, so that the decoder can first use the global motion transformation matrix of the global motion transformation matrix in the process of decoding the current node The vector Mat_GM performs global motion compensation on the reference point cloud to obtain the second reference point cloud, and then divides the second reference point cloud into an octree. When the divided block size is between LPU and minPU, the decoder can use the second After local motion compensation is performed on the reference node of the current level of the reference point cloud, the compensated reference node point cloud of the reference node is obtained, and then the compensated reference node and the coded bit stream corresponding to the current node are decoded to obtain the decoded point cloud After the point cloud corresponding to the current node, continue to decode the next node until the decoding of all nodes is completed, and the decoded point cloud is obtained.
可以理解的是,解码器使用的运动信息或全局运动变换矩阵是在点云帧间编码时,对参考帧进行全局运动补偿和局部运动补偿的过程中,对待处理点云先进行图滤波,并减少待处理点的数量,这样可以减少计算的时间复杂度。It can be understood that the motion information or global motion transformation matrix used by the decoder is in the process of performing global motion compensation and local motion compensation on the reference frame during the point cloud inter-frame coding, and the point cloud to be processed is image-filtered first, and then Reduce the number of points to be processed, which can reduce the time complexity of the calculation.
基于前述实施例的实现基础,如图12所示,本申请实施例提供了一种编码器1, 包括:Based on the implementation basis of the foregoing embodiments, as shown in FIG. 12, the embodiment of the present application provides an encoder 1, including:
第一确定部分10,被配置为基于待编码点云,确定待处理块中的待处理点云;基于所述待处理点云中两点之间的距离,确定所述两点之间的边权重,从而确定图滤波器;The first determination part 10 is configured to determine the point cloud to be processed in the block to be processed based on the point cloud to be encoded; based on the distance between two points in the point cloud to be processed, determine the edge between the two points weights, thereby determining the graph filter;
滤波部分11,被配置为基于所述图滤波器采样,得到经过图滤波采样后的第一点云;The filtering part 11 is configured to obtain a first point cloud after image filtering and sampling based on the image filter sampling;
编码部分12,被配置为采样,得到经过图滤波采样后的第一点云。The encoding part 12 is configured for sampling, and obtains the first point cloud after image filtering and sampling.
在本申请的一些实施例中,所述第一确定部分10,还被配置为基于所述待处理点云中两点之间的距离,确定所述两点之间的边权重,从而得到所述待处理点云中的边权重构成的邻接矩阵;基于所述邻接矩阵,确定所述图滤波器;所述两点之间的距离与所述两点之间的边权重有关。In some embodiments of the present application, the first determining part 10 is further configured to determine the edge weight between the two points based on the distance between the two points in the point cloud to be processed, so as to obtain the An adjacency matrix composed of edge weights in the point cloud to be processed; based on the adjacency matrix, the graph filter is determined; the distance between the two points is related to the edge weights between the two points.
在本申请的一些实施例中,所述第一确定部分10,还被配置为根据所述邻接矩阵进行权重加权求和,得到加权度矩阵;将所述加权度矩阵求逆,并与所述邻接矩阵相乘,得到图变换操作符;基于所述图变换操作符、预设的图滤波参数和图滤波器的长度构建多项式,确定所述图滤波器。In some embodiments of the present application, the first determining part 10 is further configured to perform weighted summation according to the adjacency matrix to obtain a weighted degree matrix; inverse the weighted degree matrix, and combine it with the A graph transformation operator is obtained by multiplying adjacency matrices; a polynomial is constructed based on the graph transformation operator, preset graph filtering parameters, and length of the graph filter to determine the graph filter.
在本申请的一些实施例中,所述第一确定部分10,还被配置为若所述待处理点云中两点之间的距离小于或等于预设距离阈值,则基于预设参数阈值和所述两点之间的距离进行处理,得到该两点之间的边权重;若所述待处理点云中两点之间的距离大于预设距离阈值,则该两点之间的边权重为零。In some embodiments of the present application, the first determining part 10 is further configured to, if the distance between two points in the point cloud to be processed is less than or equal to a preset distance threshold, based on the preset parameter threshold and The distance between the two points is processed to obtain the edge weight between the two points; if the distance between the two points in the point cloud to be processed is greater than the preset distance threshold, the edge weight between the two points to zero.
在本申请的一些实施例中,所述预设距离阈值是基于预设KNN查找参数和所述待处理点云所在的待处理块的边长确定的;其中,所述预设KNN查找参数为0-1之间;In some embodiments of the present application, the preset distance threshold is determined based on the preset KNN search parameter and the side length of the block to be processed where the point cloud to be processed is located; wherein, the preset KNN search parameter is Between 0-1;
所述预设参数阈值是所述预设距离阈值的倍数。The preset parameter threshold is a multiple of the preset distance threshold.
在本申请的一些实施例中,所述滤波部分11,还被配置为基于所述图滤波器,对所述待处理点云进行图滤波,得到具有频率信息的第二点云;对所述第二点云进行频域采样,得到经过图滤波采样后的所述第一点云。In some embodiments of the present application, the filtering part 11 is further configured to perform image filtering on the point cloud to be processed based on the image filter to obtain a second point cloud with frequency information; Frequency-domain sampling is performed on the second point cloud to obtain the first point cloud after image filtering and sampling.
在本申请的一些实施例中,所述滤波部分11,还被配置为对所述具有频率信息的第二点云中点的三维坐标进行二范数排序,得到排序后的每个点对应的频率值;按照预设滤除比例,对所述排序后的每个点对应的频率值进行最低频率和最高频率的去除,得到剩余频率值;所述剩余频率值对应的待处理点云中的点构成所述第一点云。In some embodiments of the present application, the filtering part 11 is further configured to perform two-norm sorting on the three-dimensional coordinates of the points in the second point cloud with frequency information, and obtain the corresponding Frequency value; according to the preset filtering ratio, the frequency value corresponding to each point after the sorting is removed with the lowest frequency and the highest frequency to obtain the remaining frequency value; the remaining frequency value corresponds to the point cloud to be processed The points constitute the first point cloud.
在本申请的一些实施例中,所述第一确定部分10,被配置为基于所述待编码点云,确定满足Z方向的预设范围内的物体点云;对所述物体点云进行块划分,得到多个待处理块,每个待处理块中的点云为所述待处理点云。In some embodiments of the present application, the first determining part 10 is configured to determine, based on the point cloud to be encoded, an object point cloud within a preset range satisfying the Z direction; block the object point cloud Divide to obtain a plurality of blocks to be processed, and the point cloud in each block to be processed is the point cloud to be processed.
在本申请的一些实施例中,所述编码部分12,被配置为基于所述第一参考点云和所述第一点云,计算相邻两点云的全局运动变换矩阵,并将所述全局运动变换矩阵写入码流;所述第一参考点云为所述参考点云对应的初始点云;基于所述全局运动变换矩阵,对所述第一参考点云进行全局运动补偿,得到第二参考点云;对所述第二参考点云的参考节点和所述待编码点云的当前节点分别进行八叉树划分,并将第二参考点云的参考节点的八叉树划分结果作为所述待编码点云的当前节点的八叉树划分的预测文本,进而对所述待编码点云当前节点的八叉树划分结果进行算术编码,得到第一几何编码结果,并将所述第一几何编码结果写入码流。In some embodiments of the present application, the encoding part 12 is configured to calculate the global motion transformation matrix of two adjacent point clouds based on the first reference point cloud and the first point cloud, and convert the The global motion transformation matrix is written into the code stream; the first reference point cloud is the initial point cloud corresponding to the reference point cloud; based on the global motion transformation matrix, global motion compensation is performed on the first reference point cloud to obtain The second reference point cloud; perform octree division on the reference node of the second reference point cloud and the current node of the point cloud to be encoded, and divide the octree division result of the reference node of the second reference point cloud As the predicted text of the octree division of the current node of the point cloud to be encoded, arithmetic encoding is performed on the octree division result of the current node of the point cloud to be encoded to obtain the first geometric encoding result, and the The result of the first geometric encoding is written into the code stream.
在本申请的一些实施例中,所述第一确定部分10,还被配置为对获取的第一参考点云和所述待编码点云分别进行八叉树划分,获取参考节点在当前层级的参考块的尺寸信息,以及当前节点在当前层级的当前块的尺寸信息;在所述参考块的尺寸信息 和所述当前块的尺寸信息表征参考块和当前块属于最大预测单元和最小预测单元之间时,将所述参考节点和所述当前节点确定为所述待处理块中的所述待处理点云。In some embodiments of the present application, the first determining part 10 is further configured to perform octree division on the obtained first reference point cloud and the point cloud to be coded respectively, and obtain the reference node at the current level The size information of the reference block, and the size information of the current block of the current node at the current level; the size information of the reference block and the size information of the current block indicate that the reference block and the current block belong to the largest prediction unit and the smallest prediction unit time, determine the reference node and the current node as the point cloud to be processed in the block to be processed.
所述编码部分12,还被配置为根据所述图滤波采样后的参考节点和所述图滤波采样后的当前节点,从预设候选运动信息列表中,确定出运动信息;基于所述运动信息,对所述第一参考点云中的参考节点进行局部运动补偿,得到补偿后的参考节点;基于所述补偿后的参考节点和所述当前节点进行算术编码,得到当前节点的第二几何编码结果。The encoding part 12 is further configured to determine motion information from a preset candidate motion information list according to the reference node sampled by the graph filter and the current node sampled by the graph filter; based on the motion information , performing local motion compensation on the reference nodes in the first reference point cloud to obtain the compensated reference nodes; performing arithmetic coding based on the compensated reference nodes and the current node to obtain the second geometric code of the current node result.
在本申请的一些实施例中,所述编码部分12,还被配置为遍历所述预设候选运动信息列表中的每个候选运动信息,对所述图滤波采样后的参考节点中的点进行局部运动估计,得到所述每个候选运动信息对应的估计补偿后的参考节点;确定所述第一点云中的图滤波采样后的当前节点中每个点与所述估计补偿后的参考节点中的各个点之间的最小距离;将所述图滤波采样后的当前节点中的每个点的所述最小距离之和,作为每个候选运动信息的失真;将所述每个候选运动信息的失真中的最小失真对应的候选运动信息,确定为所述运动信息。In some embodiments of the present application, the encoding part 12 is further configured to traverse each candidate motion information in the preset candidate motion information list, and perform Local motion estimation, obtaining an estimated and compensated reference node corresponding to each candidate motion information; determining each point in the current node after image filtering and sampling in the first point cloud and the estimated and compensated reference node The minimum distance between each point in the graph; the sum of the minimum distances of each point in the current node after the graph is filtered and sampled, as the distortion of each candidate motion information; the each candidate motion information The candidate motion information corresponding to the minimum distortion among the distortions is determined as the motion information.
在本申请的一些实施例中,所述参考节点为从第一参考点云中采用第一搜索窗口确定的节点;或从第二参考点云中采用第二搜索窗口确定的节点。In some embodiments of the present application, the reference node is a node determined from the first reference point cloud using the first search window; or a node determined from the second reference point cloud using the second search window.
可以理解的是,编码器可以在点云编码的过程中,对参考点云进行全局运动补偿和局部运动补偿的过程中,对待处理点云先进行图滤波,并减少参与待处理点的数量,这样就可以减少计算的时间复杂度,进而提高编码的时间效率。It is understandable that the encoder can perform image filtering on the point cloud to be processed in the process of global motion compensation and local motion compensation for the reference point cloud in the process of point cloud encoding, and reduce the number of participating points to be processed. In this way, the time complexity of calculation can be reduced, thereby improving the time efficiency of encoding.
下面介绍本申请实施例提供的点云解码方法。The point cloud decoding method provided by the embodiment of the present application is introduced below.
在实际应用中,如图13所示,本申请实施例还提供了一种编码器,包括:In practical applications, as shown in Figure 13, the embodiment of the present application also provides an encoder, including:
第一存储器13,用于存储可执行点云编码指令;The first memory 13 is used to store executable point cloud coding instructions;
第一处理器14,用于执行所述第一存储器13中存储的可执行点云编码指令时,实现点云编码方法。The first processor 14 is configured to implement the point cloud encoding method when executing the executable point cloud encoding instruction stored in the first memory 13 .
其中,第一处理器14可以通过软件、硬件、固件或者其组合实现,可以使用电路、单个或多个专用集成电路(application specific integrated circuits,ASIC)、单个或多个通用集成电路、单个或多个微处理器、单个或多个可编程逻辑器件、或者前述电路或器件的组合、或者其他适合的电路或器件,从而使得该第一处理器14可以执行前述实施例中的点云编码方法的相应步骤。Wherein, the first processor 14 can be implemented by software, hardware, firmware or a combination thereof, and can use circuits, single or multiple application specific integrated circuits (ASIC), single or multiple general integrated circuits, single or multiple a microprocessor, a single or multiple programmable logic devices, or a combination of the aforementioned circuits or devices, or other suitable circuits or devices, so that the first processor 14 can execute the point cloud encoding method in the aforementioned embodiments corresponding steps.
在本申请实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。Each component in the embodiment of the present application may be integrated into one processing unit, or each unit may physically exist separately, or two or more units may be integrated into one unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software function modules.
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:磁性随机存取存储器(FRAM,ferromagnetic random access memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等各种可以存储程序代码的介质, 本申请实施例不作限制。If the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment is essentially or It is said that the part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product, the computer software product is stored in a storage medium, and includes several instructions to make a computer device (which can It is a personal computer, a server, or a network device, etc.) or a processor (processor) that executes all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes: magnetic random access memory (FRAM, ferromagnetic random access memory), read-only memory (ROM, Read Only Memory), programmable read-only memory (PROM, Programmable Read-Only Memory), erasable Programmable Read-Only Memory (EPROM, Erasable Programmable Read-Only Memory), Electrically Erasable Programmable Read-Only Memory (EEPROM, Electrically Erasable Programmable Read-Only Memory), Flash Memory (Flash Memory), Magnetic Surface Memory, Optical Disk , or CD-ROM (Compact Disc Read-Only Memory) and other media that can store program codes, the embodiments of the present application are not limited.
本申请实施例还提供了一种计算机可读存储介质,存储有可执行点云编码指令,用于引起第一处理器执行时,实现本申请实施例提供的点云编码方法。The embodiment of the present application also provides a computer-readable storage medium, which stores executable point cloud coding instructions, and is used to cause the first processor to execute the point cloud coding method provided in the embodiment of the present application.
基于前述实施例的实现基础,如图14所示,本申请实施例提供了一种解码器2,包括:Based on the implementation basis of the foregoing embodiments, as shown in FIG. 14 , the embodiment of the present application provides a decoder 2, including:
解码部分20,被配置为解析码流,获取几何编码结果和运动相关信息;所述运动相关信息是对待编码点云中的待处理点云进行图滤波采样后的第一点云,和参考点云计算得到的;The decoding part 20 is configured to analyze the code stream, and obtain geometric encoding results and motion-related information; the motion-related information is the first point cloud after image filtering and sampling of the point cloud to be processed in the point cloud to be encoded, and the reference point obtained by cloud computing;
获取部分21,被配置为获取已解码的参考点云;The obtaining part 21 is configured to obtain the decoded reference point cloud;
所述解码部分20,还被配置为基于所述运动相关信息和所述参考点云,对参考点云进行运动补偿,并对几何码流进行解码,得到解码信息。The decoding part 20 is further configured to perform motion compensation on the reference point cloud based on the motion related information and the reference point cloud, and decode the geometric code stream to obtain decoded information.
在本申请的一些实施例中,所述几何编码结果包括:第一几何编码结果;所述运动相关信息包括:全局运动变换矩阵;In some embodiments of the present application, the geometric encoding result includes: a first geometric encoding result; the motion-related information includes: a global motion transformation matrix;
所述解码部分20,还被配置为基于所述全局运动变换矩阵,对所述参考点云进行全局运动补偿,得到补偿后的参考点云;基于所述补偿后的参考点云和所述第一几何编码结果,得到所述解码信息。The decoding part 20 is further configured to perform global motion compensation on the reference point cloud based on the global motion transformation matrix to obtain a compensated reference point cloud; based on the compensated reference point cloud and the first A geometrically encoded result to obtain the decoded information.
在本申请的一些实施例中,所述几何编码结果包括:第二几何编码结果;所述运动相关信息包括:运动信息;In some embodiments of the present application, the geometric encoding result includes: a second geometric encoding result; the motion-related information includes: motion information;
所述解码部分20,还被配置为对所述参考点云进行八叉树划分,确定参考节点;基于所述运动信息,对所述参考节点进行局部运动补偿,得到补偿后的参考节点;基于所述补偿后的参考节点和所述第二几何编码结果,得到所述解码信息。The decoding part 20 is further configured to perform octree division on the reference point cloud to determine a reference node; based on the motion information, perform local motion compensation on the reference node to obtain a compensated reference node; The decoded information is obtained from the compensated reference node and the second geometric encoding result.
可以理解的是,解码器使用的运动信息或全局运动变换矩阵是在点云编码的过程中,对参考点云全局运动补偿和局部运动补偿的过程中,对待处理点云先进行图滤波采样,减少参与待处理点的数量,这样就可以减少计算的时间复杂度。It can be understood that the motion information or global motion transformation matrix used by the decoder is in the process of point cloud encoding, in the process of global motion compensation and local motion compensation of the reference point cloud, image filtering sampling is performed on the point cloud to be processed first, Reduce the number of participating pending points, so that the time complexity of calculation can be reduced.
在实际应用中,如图15所示,本申请实施例还提供了一种解码器,包括:In practical applications, as shown in Figure 15, the embodiment of the present application also provides a decoder, including:
第二存储器23,用于存储可执行点云解码指令;The second memory 23 is used to store executable point cloud decoding instructions;
第二处理器24,用于执行所述第二存储器23中存储的可执行点云解码指令时,实现解码器的点云解码方法。The second processor 24 is configured to implement the point cloud decoding method of the decoder when executing the executable point cloud decoding instruction stored in the second memory 23 .
本申请实施例还提供了一种计算机可读存储介质,存储有可执行点云解码指令,用于引起第二处理器执行时,实现本申请实施例提供的点云解码方法。The embodiment of the present application also provides a computer-readable storage medium storing executable point cloud decoding instructions, which are used to cause the second processor to execute the point cloud decoding method provided in the embodiment of the present application.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元以及流程步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。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. Those skilled in the art 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. Any person 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 determined by the protection scope of the claims.
本申请实施例提供了一种点云编解码方法、编码器、解码器及计算机可读存储介质,编码器可以在点云编码的过程中,对参考点云进行全局运动补偿和局部运动补偿的过程 中,对待处理点云先进行图滤波采样,减少参与待处理点云中的点数,这样使用滤波采样后的点云计算运动信息或全局运动变换矩阵的过程中,就可以减少计算的时间复杂度,进而提高编码时间效率。The embodiment of the present application provides a point cloud encoding and decoding method, an encoder, a decoder, and a computer-readable storage medium. The encoder can perform global motion compensation and local motion compensation on the reference point cloud during the point cloud encoding process. In the process, the point cloud to be processed is first filtered and sampled to reduce the number of points participating in the point cloud to be processed. In this way, the calculation time and complexity can be reduced in the process of calculating motion information or global motion transformation matrix using the filtered and sampled point cloud. degree, thereby improving the encoding time efficiency.
Claims (21)
- 一种点云编码方法,包括:A point cloud encoding method, comprising:基于待编码点云,确定待处理块中的待处理点云;Based on the point cloud to be encoded, determine the point cloud to be processed in the block to be processed;基于所述待处理点云中两点之间的距离,确定所述两点之间的边权重,从而确定图滤波器;Based on the distance between two points in the point cloud to be processed, determine an edge weight between the two points, thereby determining a graph filter;基于所述图滤波器,对所述待处理点云进行图滤波采样,得到经过图滤波采样后的第一点云;Based on the image filter, image filtering sampling is performed on the point cloud to be processed to obtain a first point cloud after image filtering sampling;基于所述第一点云,对参考点云进行补偿,进而对所述待编码点云进行编码。Compensating the reference point cloud based on the first point cloud, and then encoding the point cloud to be encoded.
- 根据权利要求1所述的方法,其中,所述基于所述待处理点云中两点之间的距离,确定所述两点之间的边权重,从而确定图滤波器,包括:The method according to claim 1, wherein said determination of edge weights between said two points based on the distance between two points in said point cloud to be processed, thereby determining a graph filter, comprises:基于所述待处理点云中两点之间的距离,确定所述两点之间的边权重,从而得到所述待处理点云中的边权重构成的邻接矩阵;所述两点之间的距离与所述两点之间的边权重有关;Based on the distance between two points in the point cloud to be processed, determine the edge weight between the two points, thereby obtaining the adjacency matrix formed by the edge weights in the point cloud to be processed; The distance is related to the edge weight between said two points;基于所述邻接矩阵,确定所述图滤波器。Based on the adjacency matrix, the graph filter is determined.
- 根据权利要求2所述的方法,其中,所述基于所述邻接矩阵,确定所述图滤波器,包括:The method according to claim 2, wherein said determining said graph filter based on said adjacency matrix comprises:根据所述邻接矩阵进行权重加权求和,得到加权度矩阵;performing weighted summation according to the adjacency matrix to obtain a weighted degree matrix;将所述加权度矩阵求逆,并与所述邻接矩阵相乘,得到图变换操作符;Inverting the weighted degree matrix and multiplying it with the adjacency matrix to obtain a graph transformation operator;基于所述图变换操作符、预设的图滤波参数和图滤波器的长度构建多项式,确定所述图滤波器。The graph filter is determined by constructing a polynomial based on the graph transform operator, preset graph filter parameters, and length of the graph filter.
- 根据权利要求1至3任一项所述的方法,其中,所述基于所述待处理点云中两点之间的距离,确定所述两点之间的边权重,包括:The method according to any one of claims 1 to 3, wherein the determining the edge weight between the two points based on the distance between the two points in the point cloud to be processed comprises:若所述待处理点云中两点之间的距离小于或等于预设距离阈值,则基于预设参数阈值和所述两点之间的距离进行处理,得到该两点之间的边权重;If the distance between two points in the point cloud to be processed is less than or equal to the preset distance threshold, then process based on the preset parameter threshold and the distance between the two points to obtain the edge weight between the two points;若所述待处理点云中两点之间的距离大于预设距离阈值,则该两点之间的边权重为零。If the distance between two points in the point cloud to be processed is greater than a preset distance threshold, the edge weight between the two points is zero.
- 根据权利要求4所述的方法,其中,The method according to claim 4, wherein,所述预设距离阈值是基于预设KNN查找参数和所述待处理块的边长确定的;其中,所述预设KNN查找参数为0-1之间;The preset distance threshold is determined based on a preset KNN search parameter and the side length of the block to be processed; wherein, the preset KNN search parameter is between 0-1;所述预设参数阈值是所述预设距离阈值的倍数。The preset parameter threshold is a multiple of the preset distance threshold.
- 根据权利要求1至5任一项所述的方法,其中,所述基于所述图滤波器,对所述待处理点云进行图滤波并采样,得到经过图滤波采样后的第一点云,包括:The method according to any one of claims 1 to 5, wherein, based on the graph filter, performing graph filtering and sampling on the point cloud to be processed to obtain the first point cloud after graph filtering and sampling, include:基于所述图滤波器,对所述待处理点云进行图滤波,得到具有频率信息的第二点云;performing graph filtering on the point cloud to be processed based on the graph filter to obtain a second point cloud with frequency information;对所述第二点云进行频域采样,得到经过图滤波采样后的所述第一点云。Perform frequency-domain sampling on the second point cloud to obtain the first point cloud after image filtering and sampling.
- 根据权利要求6所述的方法,其中,所述对所述第二点云进行频域采样,得到经过图滤波采样后的所述第一点云,包括:The method according to claim 6, wherein said performing frequency-domain sampling on said second point cloud to obtain said first point cloud after image filtering and sampling comprises:对所述具有频率信息的第二点云中点的三维坐标进行二范数排序,得到排序后的每个点对应的频率值;Performing two-norm sorting on the three-dimensional coordinates of the points in the second point cloud with frequency information to obtain a frequency value corresponding to each point after sorting;按照预设滤除比例,对所述排序后的每个点对应的频率值进行最低频率和最高频率的去除,得到剩余频率值;所述剩余频率值对应的点构成所述第一点云。According to the preset filtering ratio, the lowest frequency and the highest frequency are removed from the frequency values corresponding to each point after sorting to obtain the remaining frequency values; the points corresponding to the remaining frequency values constitute the first point cloud.
- 根据权利要求1至7任一项所述的方法,其中,所述基于待编码点云,确定 待处理块中的待处理点云,包括:The method according to any one of claims 1 to 7, wherein, said point cloud to be encoded based on the point cloud to be encoded, determining the point cloud to be processed in the block to be processed, comprising:基于所述待编码点云,确定满足Z方向的预设范围内的物体点云;Based on the point cloud to be encoded, determine an object point cloud within a preset range satisfying the Z direction;对所述物体点云进行块划分,得到多个待处理块,每个待处理块中的点云为所述待处理点云。The point cloud of the object is divided into blocks to obtain a plurality of blocks to be processed, and the point cloud in each block to be processed is the point cloud to be processed.
- 根据权利要求8所述的方法,其中,所述基于所述第一点云,对参考点云进行补偿,进而对所述待编码点云进行编码,包括:The method according to claim 8, wherein said compensating the reference point cloud based on the first point cloud, and then encoding the point cloud to be encoded comprises:基于第一参考点云和所述第一点云,计算相邻两点云的全局运动变换矩阵,并将所述全局运动变换矩阵写入码流;所述第一参考点云为所述参考点云对应的初始点云;Based on the first reference point cloud and the first point cloud, calculate the global motion transformation matrix of two adjacent point clouds, and write the global motion transformation matrix into the code stream; the first reference point cloud is the reference The initial point cloud corresponding to the point cloud;基于所述全局运动变换矩阵,对所述第一参考点云进行全局运动补偿,得到第二参考点云;Based on the global motion transformation matrix, perform global motion compensation on the first reference point cloud to obtain a second reference point cloud;对所述第二参考点云和所述待编码点云分别进行八叉树划分,并将第二参考点云的参考节点的八叉树划分结果作为所述待编码点云的当前节点的八叉树划分的预测文本,进而对所述待编码点云当前节点的八叉树划分结果进行算术编码,得到第一几何编码结果,并将所述第一几何编码结果写入码流。Perform octree division on the second reference point cloud and the point cloud to be encoded respectively, and use the octree division result of the reference node of the second reference point cloud as the octree division result of the current node of the point cloud to be encoded The predicted text of the fork tree division, and then perform arithmetic encoding on the octree division result of the current node of the point cloud to be encoded to obtain the first geometric encoding result, and write the first geometric encoding result into the code stream.
- 根据权利要求1至7任一项所述的方法,其中,所述基于的待编码点云,确定待处理块中的待处理点云,包括:The method according to any one of claims 1 to 7, wherein the point cloud to be encoded based on the point cloud to be encoded, determining the point cloud to be processed in the block to be processed comprises:对第一参考点云和所述待编码点云分别进行八叉树划分,获取参考节点在当前层级的参考块的尺寸信息,以及当前节点在当前层级的当前块的尺寸信息;所述第一参考点云为所述参考点云对应的初始点云;Carry out octree division on the first reference point cloud and the point cloud to be encoded respectively, obtain the size information of the reference block of the reference node at the current level, and the size information of the current block of the current node at the current level; the first The reference point cloud is an initial point cloud corresponding to the reference point cloud;在所述参考块的尺寸信息和所述当前块的尺寸信息表征参考块和当前块属于最大预测单元和最小预测单元之间时,将所述参考节点和所述当前节点确定为所述待处理块中所述待处理点云。When the size information of the reference block and the size information of the current block indicate that the reference block and the current block belong between the largest prediction unit and the smallest prediction unit, determine the reference node and the current node as the to-be-processed The point cloud to be processed is described in the block.
- 根据权利要求10所述的方法,其中,所述基于所述第一点云,对参考点云进行补偿,进而对所述待编码点云进行编码,包括:The method according to claim 10, wherein said compensating the reference point cloud based on the first point cloud, and then encoding the point cloud to be encoded comprises:根据图滤波采样后的参考节点和所述第一点云中的图滤波采样后的当前节点,从预设候选运动信息列表中,确定出运动信息;Determining motion information from a preset candidate motion information list according to the reference node sampled by graph filtering and the current node sampled by graph filtering in the first point cloud;基于所述运动信息,对所述第一参考点云中的参考节点进行局部运动补偿,得到补偿后的参考节点;Based on the motion information, perform local motion compensation on reference nodes in the first reference point cloud to obtain compensated reference nodes;基于所述补偿后的参考节点和所述当前节点进行算术编码,得到第二几何编码结果。performing arithmetic coding based on the compensated reference node and the current node to obtain a second geometric coding result.
- 根据权利要求11所述的方法,其中,所述根据图滤波采样后的参考节点和所述第一点云中的图滤波采样后的当前节点,从预设候选运动信息列表中,确定出运动信息,包括:The method according to claim 11, wherein the motion is determined from the preset candidate motion information list according to the reference node sampled by graph filtering and the current node sampled by graph filtering in the first point cloud. information, including:遍历所述预设候选运动信息列表中的每个候选运动信息,对所述图滤波采样后的参考节点中的点进行局部运动估计,得到所述每个候选运动信息对应的估计补偿后的参考节点;Traverse each candidate motion information in the preset candidate motion information list, perform local motion estimation on the points in the reference node after the graph filtering and sampling, and obtain the estimated and compensated reference node corresponding to each candidate motion information node;确定所述第一点云中的图滤波采样后的当前节点中每个点与所述估计补偿后的参考节点中的各个点之间的最小距离;determining the minimum distance between each point in the current node sampled by graph filtering in the first point cloud and each point in the estimated compensated reference node;将所述图滤波采样后的当前节点中的每个点的所述最小距离之和,作为每个候选运动信息的失真;taking the sum of the minimum distances of each point in the current node after the graph filtering and sampling as the distortion of each candidate motion information;将所述每个候选运动信息的失真中的最小失真对应的候选运动信息,确定为所述运动信息。The candidate motion information corresponding to the minimum distortion among the distortions of each candidate motion information is determined as the motion information.
- 根据权利要求9至12任一项所述的方法,其中,A method according to any one of claims 9 to 12, wherein,所述参考节点为第一参考点云中采用第一搜索窗口确定的节点;或从第二参考点 云中采用第二搜索窗口确定的节点。The reference node is a node determined by using the first search window in the first reference point cloud; or a node determined by the second search window from the second reference point cloud.
- 一种点云解码方法,包括:A point cloud decoding method, comprising:解析码流,获取几何编码结果和运动相关信息;所述运动相关信息是对待编码点云中的待处理点云进行图滤波采样后的第一点云,与参考点云计算得到的;Analyzing the code stream to obtain geometric encoding results and motion-related information; the motion-related information is obtained by calculating the first point cloud after image filtering and sampling of the point cloud to be processed in the point cloud to be encoded, and the reference point cloud;获取已解码的参考点云;Get the decoded reference point cloud;基于所述运动相关信息和所述参考点云,对参考点云进行运动补偿,对几何码流进行解码,得到解码信息。Based on the motion-related information and the reference point cloud, motion compensation is performed on the reference point cloud, and the geometric code stream is decoded to obtain decoded information.
- 根据权利要求14所述的方法,其中,所述几何编码结果包括:第一几何编码结果;所述运动相关信息包括:全局运动变换矩阵;The method according to claim 14, wherein the geometric encoding result comprises: a first geometric encoding result; the motion-related information comprises: a global motion transformation matrix;所述基于所述运动相关信息和所述参考点云,对参考点云进行运动补偿,对几何码流进行解码,得到解码信息,包括:The step of performing motion compensation on the reference point cloud based on the motion-related information and the reference point cloud, decoding the geometric code stream, and obtaining decoding information includes:基于所述全局运动变换矩阵,对所述参考点云进行全局运动补偿,得到补偿后的参考点云;Based on the global motion transformation matrix, perform global motion compensation on the reference point cloud to obtain a compensated reference point cloud;基于所述补偿后的参考点云和所述第一几何编码结果,得到所述解码信息。The decoding information is obtained based on the compensated reference point cloud and the first geometric encoding result.
- 根据权利要求14所述的方法,其中,所述几何编码结果包括:第二几何编码结果;所述运动相关信息包括:运动信息;The method according to claim 14, wherein the geometric encoding result comprises: a second geometric encoding result; the motion-related information comprises: motion information;所述基于所述运动相关信息和所述参考点云,对参考点云进行运动补偿,对几何码流进行解码,得到解码信息,包括:The step of performing motion compensation on the reference point cloud based on the motion-related information and the reference point cloud, decoding the geometric code stream, and obtaining decoding information includes:对所述参考点云进行八叉树划分,确定参考节点;Carry out octree division to described reference point cloud, determine reference node;基于所述运动信息,对所述参考节点进行局部运动补偿,得到补偿后的参考节点;performing local motion compensation on the reference node based on the motion information to obtain a compensated reference node;基于所述补偿后的参考节点和所述第二几何编码结果,得到所述解码信息。The decoding information is obtained based on the compensated reference node and the second geometric encoding result.
- 一种编码器,包括:An encoder comprising:第一确定部分,被配置为基于待编码点云,确定待处理块中的待处理点云;基于所述待处理点云中两点之间的距离,确定所述两点之间的边权重,从而确定图滤波器;The first determination part is configured to determine, based on the point cloud to be encoded, the point cloud to be processed in the block to be processed; based on the distance between two points in the point cloud to be processed, determine the edge weight between the two points , so as to determine the graph filter;滤波部分,被配置为基于所述图滤波器,对所述待处理点云进行图滤波采样,得到经过图滤波采样后的第一点云;The filtering part is configured to perform image filtering and sampling on the point cloud to be processed based on the image filter, to obtain a first point cloud after image filtering and sampling;编码部分,被配置为基于所述第一点云,对参考点云进行补偿,,进而对所述待编码点云进行编码。The encoding part is configured to compensate the reference point cloud based on the first point cloud, and then encode the point cloud to be encoded.
- 一种编码器,包括:An encoder comprising:第一存储器,用于存储可执行点云编码指令;The first memory is used to store executable point cloud coding instructions;第一处理器,用于执行所述第一存储器中存储的可执行点云编码指令时,实现权利要求1至13任一项所述的方法。The first processor is configured to implement the method according to any one of claims 1 to 13 when executing the executable point cloud encoding instructions stored in the first memory.
- 一种解码器,包括:A decoder comprising:解码部分,被配置为解析码流,获取几何编码结果和运动相关信息;所述运动相关信息是对待编码点云中的待处理点云进行图滤波采样后的第一点云,与参考点云计算得到的;The decoding part is configured to analyze the code stream, and obtain geometric encoding results and motion-related information; the motion-related information is the first point cloud after image filtering and sampling of the point cloud to be processed in the point cloud to be encoded, and the reference point cloud calculated;获取部分,被配置为获取已解码的参考点云;an acquisition part configured to acquire the decoded reference point cloud;所述解码部分,还被配置为基于所述运动相关信息和所述参考点云,对参考点云进行运动补偿,对几何码流进行解码,得到解码信息。The decoding part is further configured to perform motion compensation on the reference point cloud based on the motion-related information and the reference point cloud, and decode the geometric code stream to obtain decoded information.
- 一种解码器,包括:A decoder comprising:第二存储器,用于存储可执行点云解码指令;The second memory is used to store executable point cloud decoding instructions;第二处理器,用于执行所述第二存储器中存储的可执行点云解码指令时,实现权利要求14至16任一项所述的方法。The second processor is configured to implement the method according to any one of claims 14 to 16 when executing the executable point cloud decoding instruction stored in the second memory.
- 一种计算机可读存储介质,存储有可执行点云编码指令,用于引起第一处理 器执行时,实现权利要求1至13任一项所述的方法;或者,存储有可执行点云解码指令,用于引起第二处理器执行时,实现权利要求14至16任一项所述的方法。A computer-readable storage medium, storing executable point cloud coding instructions, used to cause the first processor to execute the method according to any one of claims 1 to 13; or storing executable point cloud decoding The instruction is used to cause the second processor to implement the method described in any one of claims 14 to 16 when executed.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/112338 WO2023015530A1 (en) | 2021-08-12 | 2021-08-12 | Point cloud encoding and decoding methods, encoder, decoder, and computer readable storage medium |
CN202180098645.1A CN117378204A (en) | 2021-08-12 | 2021-08-12 | Point cloud encoding and decoding method, encoder, decoder and computer readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/112338 WO2023015530A1 (en) | 2021-08-12 | 2021-08-12 | Point cloud encoding and decoding methods, encoder, decoder, and computer readable storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023015530A1 true WO2023015530A1 (en) | 2023-02-16 |
Family
ID=85199776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/112338 WO2023015530A1 (en) | 2021-08-12 | 2021-08-12 | Point cloud encoding and decoding methods, encoder, decoder, and computer readable storage medium |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117378204A (en) |
WO (1) | WO2023015530A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117392153A (en) * | 2023-12-06 | 2024-01-12 | 江西师范大学 | Pancreas segmentation method based on local compensation and multi-scale adaptive deformation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111242997A (en) * | 2020-01-13 | 2020-06-05 | 北京大学深圳研究生院 | Filter-based point cloud attribute prediction method and device |
US20200304829A1 (en) * | 2019-03-22 | 2020-09-24 | Tencent America LLC | Method and apparatus for interframe point cloud attribute coding |
CN111951196A (en) * | 2020-08-14 | 2020-11-17 | 北京大学深圳研究生院 | Progressive point cloud down-sampling method and device based on graph |
US20200394450A1 (en) * | 2018-02-11 | 2020-12-17 | Peking University Shenzhen Graduate School | An enhanced graph transformation-based point cloud attribute compression method |
CN113205465A (en) * | 2021-04-29 | 2021-08-03 | 上海应用技术大学 | Point cloud data set segmentation method and system |
-
2021
- 2021-08-12 WO PCT/CN2021/112338 patent/WO2023015530A1/en active Application Filing
- 2021-08-12 CN CN202180098645.1A patent/CN117378204A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200394450A1 (en) * | 2018-02-11 | 2020-12-17 | Peking University Shenzhen Graduate School | An enhanced graph transformation-based point cloud attribute compression method |
US20200304829A1 (en) * | 2019-03-22 | 2020-09-24 | Tencent America LLC | Method and apparatus for interframe point cloud attribute coding |
CN111242997A (en) * | 2020-01-13 | 2020-06-05 | 北京大学深圳研究生院 | Filter-based point cloud attribute prediction method and device |
CN111951196A (en) * | 2020-08-14 | 2020-11-17 | 北京大学深圳研究生院 | Progressive point cloud down-sampling method and device based on graph |
CN113205465A (en) * | 2021-04-29 | 2021-08-03 | 上海应用技术大学 | Point cloud data set segmentation method and system |
Non-Patent Citations (1)
Title |
---|
SIHENG CHEN; DONG TIAN; CHEN FENG; ANTHONY VETRO; JELENA KOVA\V{C}EVI\'C: "Fast Resampling of 3D Point Clouds via Graphs", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 11 February 2017 (2017-02-11), 201 Olin Library Cornell University Ithaca, NY 14853 , XP081274196, DOI: 10.1109/TSP.2017.2771730 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117392153A (en) * | 2023-12-06 | 2024-01-12 | 江西师范大学 | Pancreas segmentation method based on local compensation and multi-scale adaptive deformation |
CN117392153B (en) * | 2023-12-06 | 2024-02-23 | 江西师范大学 | Pancreas segmentation method based on local compensation and multi-scale adaptive deformation |
Also Published As
Publication number | Publication date |
---|---|
CN117378204A (en) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230075442A1 (en) | Point cloud compression method, encoder, decoder, and storage medium | |
CN115086660B (en) | Decoding and encoding method based on point cloud attribute prediction, decoder and encoder | |
WO2023130333A1 (en) | Encoding and decoding method, encoder, decoder, and storage medium | |
US20230237707A1 (en) | Point cloud encoding and decoding method, encoder, decoder and codec system | |
KR102059842B1 (en) | Method and apparatus for performing graph-based transformation using generalized graph parameters | |
WO2023015530A1 (en) | Point cloud encoding and decoding methods, encoder, decoder, and computer readable storage medium | |
US20230237704A1 (en) | Point cloud decoding and encoding method, and decoder, encoder and encoding and decoding system | |
WO2022131948A1 (en) | Devices and methods for sequential coding for point cloud compression | |
WO2022141461A1 (en) | Point cloud encoding and decoding method, encoder, decoder and computer storage medium | |
WO2022217472A1 (en) | Point cloud encoding and decoding methods, encoder, decoder, and computer readable storage medium | |
WO2023123284A1 (en) | Decoding method, encoding method, decoder, encoder, and storage medium | |
WO2023240455A1 (en) | Point cloud encoding method and apparatus, encoding device, and storage medium | |
WO2023159428A1 (en) | Encoding method, encoder, and storage medium | |
WO2023023918A1 (en) | Decoding method, encoding method, decoder and encoder | |
WO2024077548A1 (en) | Point cloud decoding method, point cloud encoding method, decoder, and encoder | |
WO2023197337A1 (en) | Index determining method and apparatus, decoder, and encoder | |
WO2024212228A1 (en) | Coding method, coder, electronic device, and storage medium | |
WO2024168613A1 (en) | Decoding method, encoding method, decoder, and encoder | |
RU2826546C1 (en) | Method of encoding and decoding point cloud, encoder, decoder and computer data medium | |
WO2023197338A1 (en) | Index determination method and apparatus, decoder, and encoder | |
WO2023097694A1 (en) | Decoding method, encoding method, decoder, and encoder | |
WO2023204040A1 (en) | Decoding method, encoding method, decoding device, and encoding device | |
WO2023240660A1 (en) | Decoding method, encoding method, decoder, and encoder | |
WO2022257155A1 (en) | Decoding method, encoding method, decoder, encoder, encoding device and decoding device | |
TW202435618A (en) | Decoding method, encoding method, decoder, encoder, storage medium, program product and bit stream |
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: 21953147 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202180098645.1 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: 21953147 Country of ref document: EP Kind code of ref document: A1 |