WO2022067775A1 - 点云的编码、解码方法、编码器、解码器以及编解码系统 - Google Patents

点云的编码、解码方法、编码器、解码器以及编解码系统 Download PDF

Info

Publication number
WO2022067775A1
WO2022067775A1 PCT/CN2020/119686 CN2020119686W WO2022067775A1 WO 2022067775 A1 WO2022067775 A1 WO 2022067775A1 CN 2020119686 W CN2020119686 W CN 2020119686W WO 2022067775 A1 WO2022067775 A1 WO 2022067775A1
Authority
WO
WIPO (PCT)
Prior art keywords
attribute information
target point
predicted value
point
value
Prior art date
Application number
PCT/CN2020/119686
Other languages
English (en)
French (fr)
Inventor
元辉
王璐
李明
王晓辉
刘祺
Original Assignee
Oppo广东移动通信有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Priority to PCT/CN2020/119686 priority Critical patent/WO2022067775A1/zh
Priority to EP20955798.2A priority patent/EP4224843A4/en
Priority to CN202080105463.8A priority patent/CN116250008A/zh
Publication of WO2022067775A1 publication Critical patent/WO2022067775A1/zh
Priority to US18/126,538 priority patent/US20230237707A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the embodiments of the present application relate to the field of point cloud encoding and decoding, and more particularly, to point cloud encoding, decoding methods, encoders, decoders, and encoding and decoding systems.
  • Point clouds have begun to spread to various fields, such as virtual/augmented reality, robotics, geographic information systems, medical fields, etc.
  • a large number of point clouds on the surface of objects can be accurately obtained, often corresponding to hundreds of thousands of points in one scene.
  • Such a large number of points also brings challenges to the storage and transmission of computers. Therefore, point-to-point compression has become a hot issue.
  • octree encoding is performed on the position information of the point cloud; at the same time, the color information is predicted according to the octree-encoded position information, and then the color is encoded by making a difference with the original color information. information to encode the point cloud.
  • a point cloud encoding and decoding method an encoder, a decoder, and an encoding and decoding system, which can improve the accuracy of the prediction value in the point cloud encoding process, and further improve the encoding effect.
  • a point cloud encoding method including:
  • the Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point to obtain the final predicted value of the attribute information of the target point;
  • the residual value of the attribute information of the target point is encoded to obtain a code stream.
  • a method for decoding a point cloud including:
  • the Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point to obtain the final predicted value of the attribute information of the target point;
  • a decoded point cloud is obtained according to the reconstructed value of the attribute information of the target point.
  • an encoder for performing the method in the above-mentioned first aspect or each of its implementations.
  • the encoder includes a functional module for executing the method in the above-mentioned first aspect or each implementation manner thereof.
  • a decoder for performing the method in the second aspect or each of its implementations.
  • the encoder includes functional modules for executing the methods in the second aspect or the respective implementations thereof.
  • an encoder including a processor and a memory.
  • the memory is used for storing a computer program
  • the processor is used for calling and running the computer program stored in the memory, so as to execute the method in the above-mentioned first aspect or each implementation manner thereof.
  • a decoder including a processor and a memory.
  • the memory is used for storing a computer program
  • the processor is used for calling and running the computer program stored in the memory, so as to execute the method in the above-mentioned second aspect or each of its implementations.
  • a seventh aspect provides an encoding and decoding system, comprising an encoder in any one of the second aspect and the fifth aspect or each of its implementations, and one of the third and sixth aspects or one of its implementations the decoder in the mode.
  • a chip for implementing the method in any one of the above-mentioned first aspect to the second aspect or each of the implementation manners thereof.
  • the chip includes: a processor for calling and running a computer program from a memory, so that a device installed with the chip executes any one of the above-mentioned first to second aspects or each of its implementations Methods.
  • a computer-readable storage medium for storing a computer program, and the computer program causes a computer to execute the method in any one of the above-mentioned first aspect to the second aspect or each implementation manner thereof.
  • a computer program product comprising computer program instructions, the computer program instructions causing a computer to perform the method in any one of the above-mentioned first to second aspects or implementations thereof.
  • a computer program which, when run on a computer, causes the computer to execute the method in any one of the above-mentioned first to second aspects or the respective implementations thereof.
  • the Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point to obtain the final predicted value of the attribute information of the target point, and then based on the final predicted value of the attribute information of the target point based on
  • the predicted value is encoded with the residual value of the attribute information of the target point obtained from the real value of the attribute information of the target point, which is equivalent to improving the prediction of the attribute information of the target point during the point cloud encoding process.
  • the quality of the point prediction process is enhanced, correspondingly, the accuracy of the residual value of the attribute information of the target point can be improved, and further, the encoding effect of the point cloud encoding can be improved.
  • FIG. 1 is a schematic block diagram of a coding framework provided by an embodiment of the present application.
  • FIG. 2 is a schematic block diagram of a decoding framework provided by an embodiment of the present application.
  • FIG. 3 is a schematic block diagram of a point cloud encoding method provided by an embodiment of the present application.
  • FIG. 4 is a schematic diagram of a principle of Kalman filtering provided by an embodiment of the present application.
  • FIG. 5 is another schematic flowchart of a point cloud encoding method provided by an embodiment of the present application.
  • FIG. 6 is a schematic flowchart of a point cloud decoding method provided by an embodiment of the present application.
  • FIG. 7 is a schematic block diagram of an encoder provided by an embodiment of the present application.
  • FIG. 8 is a schematic block diagram of a decoder provided by an embodiment of the present application.
  • FIG. 9 is a schematic block diagram of an electronic device provided by an embodiment of the present application.
  • This application applies to the technical field of point cloud compression.
  • a point cloud is a three-dimensional representation of the surface of an object. Through photoelectric radar, lidar, laser scanner, multi-view camera and other acquisition equipment, the point cloud (data) of the object surface can be collected.
  • a point cloud refers to a collection of massive three-dimensional points, and the points in the point cloud may include point location information and point attribute information.
  • the position information of the point may be three-dimensional coordinate information of the point.
  • the position information of the point may also be referred to as the geometric information of the point.
  • the attribute information of the points may include color information and/or reflectivity, among others.
  • the color information may be information in any color space.
  • the color information may be (RGB).
  • the color information may be luminance chrominance (YcbCr, YUV) information.
  • Y represents luminance (Luma)
  • Cb (U) represents blue chromatic aberration
  • Cr (V) represents red chromatic aberration.
  • a point cloud obtained according to the principle of laser measurement the points in the point cloud may include three-dimensional coordinate information of the point and laser reflection intensity (reflectance) of the point.
  • a point cloud obtained according to the principle of photogrammetry the points in the point cloud may include three-dimensional coordinate information of the point and color information of the point.
  • a point cloud is obtained by combining the principles of laser measurement and photogrammetry, and the points in the point cloud may include three-dimensional coordinate information of the point, laser reflection intensity (reflectance) of the point, and color information of the point.
  • point clouds can be divided into:
  • the first static point cloud that is, the object is static, and the device that obtains the point cloud is also static;
  • the second type of dynamic point cloud the object is moving, but the device that obtains the point cloud is stationary;
  • the third type of dynamic point cloud acquisition the device that acquires the point cloud is moving.
  • point clouds are divided into two categories according to their use:
  • 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 rescue and relief robots;
  • Category 2 Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
  • the point cloud is a collection of massive points, storing the point cloud not only consumes a lot of memory, but also is not conducive to transmission, and there is no such a large bandwidth to support the point cloud to be transmitted directly at the network layer without compression. Cloud compression is necessary.
  • point clouds can be compressed through the point cloud encoding framework.
  • the point cloud coding framework can be the Geometry Point Cloud Compression (G-PCC) codec framework provided by the Moving Picture Experts Group (MPEG) or the Video Point Cloud Compression (Video Point Cloud Compression, V-PCC) codec framework, it can also be the AVS-PCC codec framework provided by the 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, 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.
  • FIG. 1 is a schematic block diagram of an encoding framework 100 provided by an embodiment of the present application.
  • the encoding framework 100 can obtain the location information and attribute information of the point cloud from the acquisition device.
  • the encoding of point cloud includes position encoding and attribute encoding.
  • the process of position encoding includes: performing preprocessing on the original point cloud, such as coordinate transformation, quantization and removing duplicate points; and encoding to form a geometric code stream after constructing an octree.
  • the attribute coding process includes: by given the reconstruction information of the position information of the input point cloud and the true value of the attribute information, select one of the three prediction modes for point cloud prediction, quantify the predicted result, and perform arithmetic coding to form attribute code stream.
  • position encoding can be achieved by the following units:
  • Coordinate transformation transformation (Tanmsform coordinates) unit 101, quantize and remove duplicate points (Quantize and remove points) unit 102, octree analysis (Analyze octree) unit 103, geometric reconstruction (Reconstruct Geometry) unit 104 and first arithmetic coding (Arithmetic) enconde) unit 105.
  • the coordinate transformation unit 101 can be used to transform the world coordinates of the points in the point cloud into relative coordinates.
  • the geometric coordinates of the points are respectively subtracted from the minimum value of the xyz coordinate axes, which is equivalent to the DC operation to convert the coordinates of the points in the point cloud from world coordinates to relative coordinates.
  • the quantization and removal of duplicate points unit 102 can reduce the number of coordinates through quantization; points that were originally different after quantization may be assigned the same coordinates, and based on this, duplicate points can be deleted through a deduplication operation; for example, points with the same quantization position and Multiple clouds of different attribute information can be merged into one cloud through attribute transformation.
  • the quantization and removal of duplicate points unit 102 is an optional unit module.
  • the octree analysis unit 103 may encode the position information of the quantized points using an octree encoding method.
  • the point cloud is divided in the form of an octree, so that the position of the point can be in a one-to-one correspondence with the position of the octree.
  • the flag (flag) is recorded as 1, for geometry encoding.
  • the first arithmetic coding unit 105 can perform arithmetic coding on the position information output by the octree analysis unit 103 by using the entropy coding method, that is, the position information output by the octree analysis unit 103 uses the arithmetic coding method to generate a geometric code stream; the geometric code stream also It can be called a geometry bitstream.
  • Attribute encoding can be achieved through the following units:
  • Color space transform (Transform colors) unit 110 attribute transform (Transfer attributes) unit 111, Region Adaptive Hierarchical Transform (RAHT) unit 112, predicting transform (predicting transform) unit 113 and lifting transform (lifting transform) ) unit 114 , a quantize coefficients (Quantize coefficients) unit 115 and a second arithmetic coding unit 116 .
  • RAHT Region Adaptive Hierarchical Transform
  • the color space conversion unit 110 may be used to convert the RGB color space of the 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 conversion unit 111 may be used to obtain the true 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 prediction unit may include: RAHT 112 , a predicting transform unit 113 and a 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 points in the point cloud to obtain the predicted value of the attribute information of the points, Further, based on the predicted value of the attribute information of the point, the residual value of the attribute information of the point is obtained.
  • the residual value of the attribute information of the point may be the actual value of the attribute information of the point minus the predicted value of the attribute information of the point.
  • the predictive transform unit 113 may also be used to generate a level of detail (LOD).
  • LOD generation process includes: obtaining the Euclidean distance between points according to the position information of the points in the point cloud; dividing the points into different LOD layers according to the Euclidean distance. In one embodiment, after the Euclidean distances are sorted, different ranges of Euclidean distances may be divided into different LOD layers.
  • a point can be randomly picked as the first LOD layer. Then calculate the Euclidean distance between the remaining points and the point, and classify the points whose Euclidean distance meets the requirements of the first threshold as the second LOD layer. Obtain the centroid of the midpoint of the second LOD layer, calculate the Euclidean distance between the points other than the first and second LOD layers and the centroid, and classify the points whose Euclidean distance meets the second threshold as the third LOD layer. And so on, put all the points in the LOD layer. By adjusting the threshold of Euclidean distance, the number of points in each layer of LOD can be increased. It should be understood that the manner of dividing the LOD layer may also adopt other manners, which are not limited in this application.
  • the point cloud can be directly divided into one or more LOD layers, or the point cloud can be divided into multiple point cloud slices first, and then each point cloud slice can be divided into one or more slices. LOD layers.
  • the point cloud can be divided into multiple point cloud slices, and the number of points in each point cloud slice can be between 550,000 and 1.1 million.
  • Each point cloud tile can be seen as a separate point cloud.
  • Each point cloud slice can be divided into multiple LOD layers, and each LOD layer includes multiple points. In one embodiment, the division of the LOD layer may be performed according to the Euclidean distance between points.
  • the quantization unit 115 may be used to quantize residual values of attribute information of points. For example, if the quantization unit 115 and the predictive transformation unit 113 are connected, the quantization unit can be used to quantize the residual value of the attribute information of the point output by the predictive transformation unit 113 .
  • the residual value of the attribute information of the point output by the predictive transform unit 113 is quantized using a quantization step size, so as to improve the system performance.
  • the second arithmetic coding unit 116 may perform entropy coding on the residual value of the attribute information of the point by using zero run length coding, so as to obtain the attribute code stream.
  • the attribute code stream may be bit stream information.
  • the predicted value (predicted value) of attribute information of a point in the point cloud may also be referred to as the color predicted value (predicted Color) in the LOD mode.
  • a residual value of the point can be obtained by subtracting the predicted value of the attribute information of the point from the actual value of the attribute information of the point.
  • the residual value of the attribute information of the point may also be referred to as a color residual value (residualColor) in the LOD mode.
  • the predicted value of the attribute information of the point and the residual value of the attribute information of the point are added to generate a reconstructed value of the attribute information of the point.
  • the reconstructed value of the attribute information of the point may also be referred to as a color reconstructed value (reconstructedColor) in the LOD mode.
  • 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; merging after constructing the octree, and reconstructing the position information of the point to obtain the reconstruction information of the position information of the point; The reconstructed information of the information is subjected to coordinate transformation to obtain the position information of the point.
  • the position information of the point may also be referred to as the geometric information of the point.
  • the attribute decoding process includes: obtaining the residual value of the attribute information of the point in the point cloud by parsing the attribute code stream; obtaining the residual value of the attribute information of the point after inverse quantization by inverse quantizing the residual value of the attribute information of the point value; based on the reconstruction information of the position information of the point obtained in the position decoding process, select one of the three prediction modes to perform point cloud prediction, and obtain the reconstructed value of the attribute information of the point; the reconstructed value of the attribute information of the point is color space Inverse transformation to get the decoded point cloud.
  • position decoding can be implemented by the following units:
  • a first arithmetic decoding unit 201 an octree analysis (synthesize octree) unit 202 , a geometric reconstruction (Reconstruct geometry) unit 204 and a coordinate inverse transform (inverse transform coordinates) unit 205 .
  • Coordinate transformation transformation (Tanmsform coordinates) unit 101, quantize and remove duplicate points (Quantize and remove points) unit 102, octree analysis (Analyze octree) unit 103, geometric reconstruction (Reconstruct Geometry) unit 104 and first arithmetic coding (Arithmetic) enconde) unit 105.
  • Attribute encoding can be achieved through the following units:
  • the second arithmetic decoding unit 210 an inverse quantize unit 211 , a RAHT unit 212 , a predicting transform unit 213 , a lifting transform unit 214 , and an inverse trasform 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 the corresponding units in the encoding framework 100 .
  • the decoding framework 200 can divide the point cloud into a plurality of LODs according to the Euclidean distance between the points in the point cloud; then, decode the attribute information of the points in the LOD in sequence; number (zero_cnt), to decode the residual based on zero_cnt; then, the decoding framework 200 may perform inverse quantization based on the decoded residual value, and add the inverse quantized residual value to the predicted value of the current point to obtain the The reconstructed value of the point cloud until all point clouds have been decoded.
  • the current point will be used as the nearest neighbor of the subsequent LOD midpoint, and the reconstructed value of the current point will be used to predict the attribute information of the subsequent point.
  • FIG. 3 shows a schematic flowchart of a point cloud encoding method 300 according to an embodiment of the present application, and the method 300 may be executed by an encoder.
  • the encoding framework 100 shown in FIG. 1 is the point cloud codec TMC13.
  • the technical solution of the present application will be described below by taking the encoder as the execution body.
  • the method 300 may include:
  • S360 Encode the residual value of the attribute information of the target point to obtain a code stream.
  • the Kalman filtering algorithm may be implemented by a recursive filter, which may also be referred to as an autoregressive filter.
  • the quantized residual value of the attribute information of all points in the point cloud may be encoded to obtain the code stream.
  • the residual value of the attribute information of the target point may be a quantized residual value, or may be a residual value that does not require quantization.
  • the Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point to obtain the final predicted value of the attribute information of the target point, and then based on the final predicted value according to the attribute information of the target point and the
  • the residual value of the attribute information of the target point obtained from the real value of the attribute information of the target point is encoded, which is equivalent to that in the process of point cloud encoding, the prediction accuracy of the attribute information of the target point can be improved.
  • the quality of the prediction process is enhanced, and accordingly, the accuracy of the residual value of the attribute information of the target point can be improved, and further, the coding effect of the point cloud coding can be improved.
  • the point cloud involved in this application may be a complete point cloud, or may be a point cloud formed by dividing the complete point cloud into slices.
  • FIG. 4 is a schematic diagram of a Kalman filter principle provided by an embodiment of the present application.
  • the initial predicted value of the attribute information of the target point can be represented by a curve 371
  • the final predicted value of the attribute information of the target point can be represented by a curve 372
  • the final predicted value of the attribute information of the target point can be represented by a curve 373 .
  • the measured value of the attribute information in other words, the initial predicted value of the attribute information of the target point can be filtered by using the measured value of the attribute information of the target point to obtain the final predicted value of the attribute information of the target point.
  • the initial predicted value can also be called a priori estimated value; the final predicted value can also be called the optimal estimated value or the posterior estimated value.
  • the state of the dynamic system can be estimated based on a series of incomplete or noisy measurement values to obtain the initial predicted value; then, based on the measured value and the initial predicted value, the prediction error can be gradually updated through continuous iterative updates. decrease, so that the predicted value is gradually accurate to obtain the final predicted value.
  • Kalman filtering of target points in a point cloud can be divided into a prediction process and a correction process.
  • the target point is the kth point in the point cloud; in the prediction process, the state of the kth point can be estimated according to the final prediction value of the k-1th point to obtain the initial prediction value of the kth point;
  • the initial predicted value of the kth point is corrected using the measured value of the kth point, and the final predicted value of the kth point is obtained.
  • the k-th point can be predicted by Equation 1 to obtain the initial predicted value of the k-th point:
  • Equation 2 it can be corrected by Equation 2 to obtain the final predicted value for the kth point:
  • the covariance can be updated by Equation 3:
  • P k represents The covariance of
  • P′ k represents covariance of
  • the method 200 may further include:
  • each LOD layer includes one or more points; according to the attribute information (for example, R, G, B color components) of the points in the LOD layer where the target point is located
  • the standard deviation of determine whether to use the Kalman filtering algorithm to filter the initial predicted value of the attribute information (for example, R, G, B color components) of the point of the LOD layer where the target point is located;
  • the Kalman filter algorithm is used to filter the initial predicted value of the attribute information of the target point to obtain the final predicted value of the attribute information of the target point.
  • the encoder can directly perform filtering on the LOD layer where the target point is located.
  • the predicted value of each point is subjected to Kalman filtering to reduce the complexity of Kalman filtering.
  • the standard deviation of the attribute information for example, R, G, and B color components
  • the initial predicted values of the attribute information eg, R, G, B color components
  • the first threshold may be a predefined threshold.
  • the first threshold may be a threshold defined by a video coding standard.
  • the first threshold may also be a threshold determined by the encoding end, and in this case, the first threshold may be written into the code stream to indicate the first threshold to the decoding end.
  • the present application does not limit the specific value of the first threshold.
  • the first threshold may be 35 or 45.
  • the initial prediction value of the attribute information of the point in the LOD layer where the target point is located when it is determined that the initial prediction value of the attribute information of the point in the LOD layer where the target point is located does not need to be filtered, it is determined that the LOD layer where the target point is located and subsequent The initial predicted values of the attribute information of the points in the LOD layer are filtered.
  • the LOD layer where the target point is located is the first N LOD layers in the one or more LOD layers, and N is a positive integer greater than 0; or, the target point is located at The LOD layer is one LOD layer after the first N LOD layers in the one or more LOD layers.
  • the N can be 6 or 7.
  • the encoder can perform Kalman filtering on the initial predicted values of the points in the first 6 LOD layers, and then judge the seventh layer, that is, the R, G, The standard deviations of the three color components of B are all less than or equal to 45.
  • the encoder can perform Kalman filtering on the initial predicted values of the points in the first seven LOD layers. Since the standard deviation of the eighth LOD layer is greater than 45, the encoder can No Kalman filtering is performed for the initial predicted values of the points in the 8th LOD layer and the initial predicted values of the points in the LOD layers after the 8th LOD layer.
  • the S340 may include:
  • the Kalman filter algorithm is used to filter the initial predicted value of the attribute information of the target point, and the attribute information of the target point is obtained. the final predicted value.
  • the reconstructed value of the attribute information of one or more points before the target point may be the reconstructed value of the attribute information of a point before the target point.
  • the reconstructed value of the attribute information of one or more points before the target point may be an average value, a maximum value or a minimum value of the reconstructed values of the attribute information of a plurality of points before the target point.
  • one or more points before the target point can be understood as one or more points located before the target point in the LOD layer where the target point is located, and can also be understood as one or more points before the coding sequence or multiple points.
  • the S340 may include:
  • Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point, so as to obtain the final predicted value of the attribute information of the target point.
  • the preset value may be the real value of the attribute information of the target point, or may be a value determined based on the real value of the attribute information of the target point.
  • the preset value may be determined according to the bit depth of the target point.
  • the bit depth of the attribute information of the target point may be left-shifted to obtain the preset value.
  • the method 200 may further include:
  • the value range of the variable n may be from 0 to m, and m*T is less than or equal to the number of midpoints in the LOD layer.
  • the nxT points may equally divide the points in the LOD layer.
  • the T can be 8 or 10.
  • the final reconstructed value of the attribute information of all points in the LOD layer is replaced with the real value of the attribute information; when the number of points in the LOD layer is greater than or equal to 8, the other points in the LOD are equally divided into 8 equal parts by using the points that need to replace the final reconstructed value of the attribute information of the point with the real value.
  • the S340 may include:
  • the initial predicted value of the attribute information of the target point is the real value
  • the actual value of the attribute information of the target point is used as the measurement value
  • the Kalman filter algorithm is used to filter the initial predicted value of the attribute information of the target point. to obtain the final predicted value of the attribute information of the target point; replace the final predicted value of the attribute information of the target point with the real value of the attribute information of the target point.
  • the real value of the attribute information of the target point is used as the measurement value, and the Kalman filter algorithm is used to analyze the attribute information of the target point.
  • the initial predicted value of the information is filtered to obtain the final predicted value of the attribute information of the target point; the final predicted value of the attribute information of the target point is replaced with the real value of the attribute information of the target point.
  • the real value of the attribute information of the target point can also be written into the code stream.
  • the method 200 may further include:
  • the number of points whose final predicted value of the attribute information of the point in the point cloud is the real value and the real value of the attribute information of the point are written into the code stream.
  • the code stream may include the following encoded information: the number of points whose final predicted value of attribute information is the true value, the actual value of the attribute information of the point whose final predicted value of attribute information is the true value, and the Residual values of attribute information for all points in the point cloud.
  • the position of the point whose final predicted value of the attribute information of the point in the point cloud is the real value may also be written into the code stream.
  • the method 200 may further include:
  • the initial predicted value of the attribute information of the LOD layer where the target point is located does not need to be filtered, the initial predicted value of the attribute information of the target point is used as the final predicted value of the attribute information of the target point .
  • the initial predicted value of the attribute information of the target point is used as the final predicted value of the attribute information of the target point.
  • the method 200 may further include:
  • a flag is written into the code stream, and the flag is used to indicate that the LOD layer where the target point is located has been filtered.
  • the identifier is written into the code stream.
  • the code stream includes the encoded identifier.
  • FIG. 5 is a schematic block diagram of a point cloud encoding method 400 provided by an embodiment of the present application.
  • the method 400 may include some or all of the following:
  • S402 Process the attribute information of the target point in the point cloud to obtain the real value of the attribute information of the target point.
  • S403 Obtain an initial predicted value of the attribute information of the target point according to the reconstruction information of the position information of the target point.
  • S405 Write the number of points whose final predicted value of the attribute information of the point in the point cloud is a real value, the position of the point, and the real value of the attribute information of the point into the code stream.
  • S409 Replace the final predicted value of the attribute information of the target point with the real value of the attribute information of the target point.
  • the initial predicted value of the attribute information of the target point is not the real value, use the reconstructed value of the attribute information of one or more points before the target point as the measurement value, and use the Kalman filter algorithm to perform the analysis on the target point.
  • the initial predicted value of the attribute information of the point is filtered to obtain the final predicted value of the attribute information of the target point.
  • S411 write a flag into the code stream, where the flag is used to indicate that the LOD layer where the target point is located has been filtered.
  • the initial predicted value of the attribute information of the target point is used as the initial predicted value of the attribute information of the target point.
  • the final predicted value of the attribute information is used.
  • S413 Obtain a residual value of the attribute information of the target point according to the final predicted value of the attribute information of the target point and the real value of the attribute information of the target point.
  • S414 Encode the residual value of the attribute information of the target point to obtain a code stream.
  • the encoding method of the point cloud according to the embodiment of the present application is described in detail from the perspective of the encoder. The following will describe the encoding method of the point cloud according to the embodiment of the present application from the perspective of the decoder in conjunction with FIG. 6 . decoding method.
  • FIG. 6 shows a schematic flowchart of a method 500 for decoding a point cloud according to an embodiment of the present application.
  • the method 500 may be performed by a decoding end.
  • the decoding framework 200 or decoder shown in FIG. 2 may be used as a decoding end.
  • the method 500 may include:
  • S560 Obtain a decoded point cloud according to the reconstructed value of the attribute information of the target point.
  • the method 500 may further include:
  • each LOD layer includes one or more points; determine whether to use the Kalman filter algorithm to determine the initial predicted value of the attribute information of the point in the LOD layer where the target point is located Filtering; when it is determined that the initial predicted value of the attribute information of the point of the LOD layer where the target point is located needs to be filtered, the Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point to obtain the The final predicted value of the attribute information of the target point.
  • the LOD layer where the target point is located is the first N LOD layers in the one or more LOD layers, and N is a positive integer greater than 0; or, the target point is located at The LOD layer is one LOD layer after the first N LOD layers in the one or more LOD layers.
  • the S530 may include:
  • the Kalman filter algorithm is used to filter the initial predicted value of the attribute information of the target point, and the attribute information of the target point is obtained. the final predicted value.
  • the S530 may include:
  • Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point, so as to obtain the final predicted value of the attribute information of the target point.
  • the method 500 may further include:
  • the S530 may include:
  • the initial predicted value of the attribute information of the target point is the real value
  • the actual value of the attribute information of the target point is used as the measurement value
  • the Kalman filter algorithm is used to filter the initial predicted value of the attribute information of the target point. to obtain the final predicted value of the attribute information of the target point; replace the final predicted value of the attribute information of the target point with the real value of the attribute information of the target point.
  • the method 500 may further include:
  • the code stream is parsed to obtain the number of points whose final predicted value of the attribute information of the point in the point cloud is the real value, the position of the point and the real value of the attribute information of the point.
  • the method 500 may further include:
  • the initial predicted value of the attribute information of the LOD layer where the target point is located does not need to be filtered, the initial predicted value of the attribute information of the target point is used as the final predicted value of the attribute information of the target point .
  • the S530 may include:
  • the code stream is parsed to obtain an identifier, where the identifier is used to indicate that the LOD layer where the target point is located has been filtered.
  • the point cloud decoding method 500 is an inverse process of the point cloud encoding method.
  • steps in the point cloud decoding method 500 reference may be made to the corresponding steps in the point cloud encoding method 300 or 400, and in order to avoid repetition, details are not repeated here.
  • the size of the sequence numbers of the above-mentioned processes does not mean the sequence of execution, and the execution sequence of each process should be determined by its functions and internal logic, and should not be dealt with in the present application.
  • the implementation of the embodiments constitutes no limitation.
  • FIG. 7 is a schematic block diagram of an encoder 50 according to an embodiment of the present application.
  • the encoder 50 may include:
  • the first processing unit 51 is configured to process the position information of a target point in the point cloud to obtain reconstruction information of the position information of the target point;
  • a prediction unit 52 configured to obtain an initial predicted value of the attribute information of the target point according to the reconstruction information of the position information of the target point;
  • Filtering unit 53 configured to filter the initial predicted value of the attribute information of the target point by using the Kalman filter algorithm to obtain the final predicted value of the attribute information of the target point;
  • the second processing unit 54 is configured to process the attribute information of the target point in the point cloud to obtain the true value of the attribute information of the target point;
  • the residual unit 55 is configured to obtain the residual value of the attribute information of the target point according to the final predicted value of the attribute information of the target point and the real value of the attribute information of the target point;
  • the encoding unit 56 is configured to encode the residual value of the attribute information of the target point to obtain a code stream.
  • the prediction unit 52 is further configured to:
  • each LOD layer including one or more points
  • the standard deviation of the attribute information of the point of the LOD layer where the target point is located determine whether to use the Kalman filter algorithm to filter the initial predicted value of the attribute information of the point of the LOD layer where the target point is located;
  • the Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point, and the target point is obtained. The final predicted value of the attribute information.
  • the LOD layer where the target point is located is the first N LOD layers in the one or more LOD layers, and N is a positive integer greater than 0; or, the target point is located at The LOD layer is one LOD layer after the first N LOD layers in the one or more LOD layers.
  • the filtering unit 53 is specifically configured to:
  • the Kalman filter algorithm is used to filter the initial predicted value of the attribute information of the target point, and the attribute information of the target point is obtained. the final predicted value.
  • the filtering unit 53 is specifically configured to:
  • Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point, so as to obtain the final predicted value of the attribute information of the target point.
  • the prediction unit 52 is further configured to:
  • the filtering unit 53 is specifically configured to:
  • the initial predicted value of the attribute information of the target point is the real value
  • the actual value of the attribute information of the target point is used as the measurement value
  • the Kalman filter algorithm is used to filter the initial predicted value of the attribute information of the target point. , to obtain the final predicted value of the attribute information of the target point;
  • the final predicted value of the attribute information of the target point is replaced with the real value of the attribute information of the target point.
  • the encoding unit 56 is further configured to:
  • the number of points whose final predicted value of the attribute information of the point in the point cloud is the real value, the position of the point, and the real value of the attribute information of the point are written into the code stream.
  • the prediction unit 52 is further configured to:
  • the initial predicted value of the attribute information of the LOD layer where the target point is located does not need to be filtered, the initial predicted value of the attribute information of the target point is used as the final predicted value of the attribute information of the target point .
  • the encoding unit 56 is further configured to:
  • a flag is written into the code stream, and the flag is used to indicate that the LOD layer where the target point is located has been filtered.
  • the apparatus embodiments and the method embodiments may correspond to each other, and similar descriptions may refer to the method embodiments. To avoid repetition, details are not repeated here.
  • the encoder 50 shown in FIG. 7 may correspond to the corresponding subject in executing the method 300 of the embodiment of the present application, and the aforementioned and other operations and/or functions of the respective modules in the encoder 50 are for the purpose of realizing FIG. 3 or The corresponding processes in each method in FIG. 5 are not repeated here for brevity.
  • FIG. 8 is a schematic block diagram of a decoder 600 provided by an embodiment of the present application.
  • the decoder 600 may include:
  • a first decoding unit 610 configured to parse the code stream of the point cloud to obtain reconstruction information of the position information of a target point in the point cloud;
  • a prediction unit 620 configured to obtain an initial predicted value of the attribute information of the target point according to the reconstruction information of the position information of the target point;
  • a filtering unit 630 configured to filter the initial predicted value of the attribute information of the target point by using a Kalman filter algorithm to obtain the final predicted value of the attribute information of the target point;
  • a second decoding unit 640 configured to decode the code stream to obtain a residual value of the attribute information of the target point
  • a reconstruction unit 650 configured to obtain a reconstructed value of the attribute information of the target point according to the final predicted value of the attribute information of the target point and the residual value of the attribute information of the target point;
  • the third decoding unit 660 is configured to obtain a decoded point cloud according to the reconstructed value of the attribute information of the target point.
  • the prediction unit 620 is further configured to:
  • each LOD layer including one or more points
  • the Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point, and the target point is obtained. The final predicted value of the attribute information.
  • the LOD layer where the target point is located is the first N LOD layers in the one or more LOD layers, and N is a positive integer greater than 0; or, the target point is located at The LOD layer is one LOD layer after the first N LOD layers in the one or more LOD layers.
  • the filtering unit 630 is specifically configured to:
  • the Kalman filter algorithm is used to filter the initial predicted value of the attribute information of the target point, and the attribute information of the target point is obtained. the final predicted value.
  • the filtering unit 630 is specifically configured to:
  • Kalman filtering algorithm is used to filter the initial predicted value of the attribute information of the target point, so as to obtain the final predicted value of the attribute information of the target point.
  • the prediction unit 620 is further configured to:
  • the filtering unit 630 is specifically configured to:
  • the initial predicted value of the attribute information of the target point is the real value
  • the actual value of the attribute information of the target point is used as the measurement value
  • the Kalman filter algorithm is used to filter the initial predicted value of the attribute information of the target point. , to obtain the final predicted value of the attribute information of the target point;
  • the final predicted value of the attribute information of the target point is replaced with the real value of the attribute information of the target point.
  • the first decoding unit 610 is further configured to:
  • the code stream is parsed to obtain the number of points whose final predicted value of the attribute information of the point in the point cloud is the real value, the position of the point and the real value of the attribute information of the point.
  • the prediction unit 620 is further configured to:
  • the initial predicted value of the attribute information of the LOD layer where the target point is located does not need to be filtered, the initial predicted value of the attribute information of the target point is used as the final predicted value of the attribute information of the target point .
  • the first decoding unit 610 is further configured to:
  • the code stream is parsed to obtain an identifier, where the identifier is used to indicate that the LOD layer where the target point is located has been filtered.
  • the apparatus embodiments and the method embodiments may correspond to each other, and similar descriptions may refer to the method embodiments. To avoid repetition, details are not repeated here.
  • the decoder 600 shown in FIG. 8 may correspond to the corresponding subject in executing the method 500 of the embodiments of the present application, and the aforementioned and other operations and/or functions of the respective modules in the decoder 600 are respectively intended to achieve the functions shown in FIG. 6 .
  • the corresponding processes in each of the methods are not repeated here.
  • an encoding and decoding system including the foregoing encoder and a decoder corresponding to the encoder.
  • the functional modules can be implemented in the form of hardware, can also be implemented by instructions in the form of software, and can also be implemented by a combination of hardware and software modules.
  • the steps of the method embodiments in the embodiments of the present application may be completed by an integrated logic circuit of hardware in the processor and/or instructions in the form of software, and the steps of the methods disclosed in combination with the embodiments of the present application may be directly embodied as hardware
  • the execution of the decoding processor is completed, or the execution is completed by a combination of hardware and software modules in the decoding processor.
  • the software modules may be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, and other storage media mature in the art.
  • the storage medium is located in the memory, and the processor reads the information in the memory, and completes the steps in the above method embodiments in combination with its hardware.
  • FIG. 9 is a schematic block diagram of an electronic device 700 provided by an embodiment of the present application.
  • the electronic device 700 may include:
  • the processor 720 can call and run the computer program 711 from the memory 710 to implement the method in the embodiments of the present application.
  • the processor 720 may be configured to perform the steps in the method 200 described above according to the instructions in the computer program 711 .
  • the processor 720 may include, but is not limited to:
  • DSP Digital Signal Processor
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the memory 710 includes but is not limited to:
  • Non-volatile memory may be a read-only memory (Read-Only Memory, ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically programmable read-only memory (Erasable PROM, EPROM). Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory. Volatile memory may be Random Access Memory (RAM), which acts as an external cache.
  • RAM Random Access Memory
  • RAM Static RAM
  • DRAM Dynamic RAM
  • SDRAM Synchronous DRAM
  • SDRAM double data rate synchronous dynamic random access memory
  • Double Data Rate SDRAM DDR SDRAM
  • enhanced SDRAM ESDRAM
  • synchronous link dynamic random access memory SLDRAM
  • Direct Rambus RAM Direct Rambus RAM
  • the computer program 711 may be divided into one or more modules, and the one or more modules are stored in the memory 710 and executed by the processor 720 to complete the provision of the present application. method of recording pages.
  • the one or more modules may be a series of computer program instruction segments capable of accomplishing specific functions, and the instruction segments are used to describe the execution process of the computer program 711 in the electronic device 700 .
  • the electronic device 700 may further include:
  • a transceiver 730 which can be connected to the processor 720 or the memory 710 .
  • the processor 720 can control the transceiver 730 to communicate with other devices, and specifically, can send information or data to other devices, or receive information or data sent by other devices.
  • Transceiver 730 may include a transmitter and a receiver.
  • the transceiver 730 may further include antennas, and the number of the antennas may be one or more.
  • bus system includes a power bus, a control bus and a status signal bus in addition to a data bus.
  • a computer storage medium on which a computer program is stored, and when the computer program is executed by a computer, enables the computer to execute the method of the above method embodiment.
  • the embodiments of the present application further provide a computer program product including instructions, when the instructions are executed by a computer, the instructions cause the computer to execute the methods of the above method embodiments.
  • a computer program product or computer program comprising computer instructions stored in a computer readable storage medium.
  • the processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the method of the above method embodiment.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable device.
  • the computer instructions may be stored on or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions may be transmitted over a wire from a website site, computer, server or data center (eg coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (eg infrared, wireless, microwave, etc.) means to another website site, computer, server or data center.
  • the computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that includes one or more available media integrated.
  • the available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, digital video disc (DVD)), or semiconductor media (eg, solid state disk (SSD)), and the like.
  • the disclosed system, apparatus and method may be implemented in other manners.
  • the device embodiments described above are only illustrative.
  • the division of the modules is only a logical function division. In actual implementation, there may be other division methods.
  • multiple modules or components may be combined or Integration into another system, or some features can be ignored, or not implemented.
  • the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or modules, and may be in electrical, mechanical or other forms.
  • Modules described as separate components may or may not be physically separated, and components shown as modules may or may not be physical modules, that is, may be located in one place, or may be distributed to multiple network elements. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution in this embodiment. For example, each functional module in each embodiment of the present application may be integrated into one processing module, or each module may exist physically alone, or two or more modules may be integrated into one module.

Abstract

提供了一种点云的编码、解码方法、编码器、解码器以及编解码系统。该方法包括:对点云中的一目标点的位置信息进行处理,得到该目标点的位置信息的重建信息;根据该目标点的位置信息的重建信息,得到该目标点的属性信息的初始预测值;利用卡尔曼滤波算法对该目标点的属性信息的初始预测值进行滤波,得到该目标点的属性信息的最终预测值;对点云中的该目标点的属性信息进行处理,得到该目标点的属性信息的真实值;根据该目标点的属性信息的最终预测值和该目标点的属性信息的真实值,得到该目标点的属性信息的残差值;对量化后的该目标点的属性信息的残差值进行编码,得到码流。该方法能够提升点云编码过程中的预测准确度,进而,能够提升编码效果。

Description

点云的编码、解码方法、编码器、解码器以及编解码系统 技术领域
本申请实施例涉及点云编解码领域,并且更具体地,涉及点云的编码、解码方法、编码器、解码器以及编解码系统。
背景技术
点云已经开始普及到各个领域,例如,虚拟/增强现实、机器人、地理信息系统、医学领域等。随着扫描设备的基准度和速率的不断提升,可以准确地获取物体表面的大量点云,往往一个场景下就可以对应几十万个点。数量如此庞大的点也给计算机的存储和传输带来了挑战。因此,对点的压缩也就成为一个热点问题。
对于点云的压缩来说,主要需要压缩其位置信息和颜色信息。具体而言,先通过对点云的位置信息进行八叉树编码;同时,根据八叉树编码后的位置信息对其颜色信息进行预测,再通过与原始颜色信息进行做差的方式来编码颜色信息,以实现对点云的编码。
截止目前,在对颜色信息进行预测的过程中,如何提升预测效果是本领域急需解决的技术问题。
发明内容
提供了一种点云的编码、解码方法、编码器、解码器以及编解码系统,能够提升点云编码过程中的预测值的准确度,进而,能够提升编码效果。
第一方面,提供了一种点云的编码方法,包括:
对点云中的一目标点的位置信息进行处理,得到所述目标点的位置信息的重建信息;
根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值;
利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值;
对点云中的所述目标点的属性信息进行处理,得到所述目标点的属性信息的真实值;
根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的真实值,得到所述目标点的属性信息的残差值;
对所述目标点的属性信息的残差值进行编码,得到码流。
第二方面,提供了一种点云的解码方法,包括:
对点云的码流进行解析,得到所述点云中一目标点的位置信息的重建信息;
根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值;
利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值;
对所述码流进行解码,得到所述目标点的属性信息的残差值;
根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的残差值,得到所述目标点的属性信息的重建值;
根据所述目标点的属性信息的重建值,得到解码点云。
第三方面,提供了一种编码器,用于执行上述第一方面或其各实现方式中的方法。具体地,所述编码器包括用于执行上述第一方面或其各实现方式中的方法的功能模块。
第四方面,提供了一种解码器,用于执行上述第二方面或其各实现方式中的方法。具体地,所述编码器包括用于执行上述第二方面或其各实现方式中的方法的功能模块。
第五方面,提供了一种编码器,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第六方面,提供了一种解码器,包括处理器和存储器。所述存储器用于存储计算机 程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,提供了一种编解码系统,包括第二方面和第五方面中任一方面或其各实现方式中的编码器,以及第三方面和第六方面中人一方面或其各实现方式中的解码器。
第八方面,提供了一种芯片,用于实现上述第一方面至第二方面中任一方面或其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第九方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十一方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
基于以上技术方案,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值,进而基于根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的真实值得到的所述目标点的属性信息的残差值进行编码,相当于,在点云编码过程中,能够提升所述目标点的属性信息的预测准确度,对点的预测过程进行了质量增强,相应的,能够提升所述目标点的属性信息的残差值的准确度,进而,能够提升点云编码的编码效果。
附图说明
图1是本申请实施例提供的编码框架的示意性框图。
图2是本申请实施例提供的解码框架的示意性框图。
图3是本申请实施例提供的点云的编码方法的示意性框图。
图4是本申请实施例提供的卡尔曼滤波的原理的示意图。
图5是本申请实施例提供的点云的编码方法的另一示意性流程图。
图6是本申请实施例提供的点云的解码方法的示意性流程图。
图7是本申请实施例提供的编码器的示意性框图。
图8是本申请实施例提供的解码器的示意性框图。
图9是本申请实施例提供的电子设备的示意性框图。
具体实施方式
本申请适用于点云压缩技术领域。
下面对点云相关的概念进行说明。
点云是物体表面的三维表现形式,通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云(数据)。
点云(Point Cloud)是指海量三维点的集合,所述点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息和/或反射率等等。例如,所述颜色信息可以是任意一种色彩空间上的信息。例如,所述颜色信息可以是(RGB)。再如,所述颜色信息可以是于亮度色度(YcbCr,YUV)信息。例如,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色色差。
例如,根据激光测量原理得到的点云,所述点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,所述点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原 理得到点云,所述点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。
例如,点云可以按获取的途径分为:
第一静态点云:即物体是静止的,获取点云的设备也是静止的;
第二类动态点云:物体是运动的,但获取点云的设备是静止的;
第三类动态获取点云:获取点云的设备是运动的。
例如,按点云的用途分为两大类:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
由于点云是海量点的集合,存储所述点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此对点云进行压缩是很有必要的。
截止目前,可通过点云编码框架对点云进行压缩。
点云编码框架可以是运动图象专家组(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编解码框架对本申请实施例可适用的编解码框架进行说明。
图1是本申请实施例提供的编码框架100的示意性框图。
如图1所示,编码框架100可以从采集设备获取点云的位置信息和属性信息。点云的编码包括位置编码和属性编码。在一个实施例中,位置编码的过程包括:对原始点云进行坐标变换、量化去除重复点等预处理;构建八叉树后进行编码形成几何码流。
属性编码过程包括:通过给定输入点云的位置信息的重建信息和属性信息的真实值,选择三种预测模式的一种进行点云预测,对预测后的结果进行量化,并进行算术编码形成属性码流。
如图1所示,位置编码可通过以下单元实现:
坐标转换(Tanmsform coordinates)单元101、量化和移除重复点(Quantize and remove points)单元102、八叉树分析(Analyze octree)单元103、几何重建(Reconstruct geometry)单元104以及第一算术编码(Arithmetic enconde)单元105。
坐标转换单元101可用于将点云中点的世界坐标变换为相对坐标。
例如,点的几何坐标分别减去xyz坐标轴的最小值,相当于去直流操作,以实现将点云中的点的坐标从世界坐标转换为相对坐标。
量化和移除重复点单元102可通过量化减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标,基于此,可通过去重操作将重复的点删除;例如,具有相同量化位置和不同属性信息的多个云可通过属性转换合并到一个云中。在本申请的一些实施例中,量化和移除重复点单元102为可选的单元模块。
八叉树分析单元103可利用八叉树(octree)编码方式编码量化的点的位置信息。
例如,将点云按照八叉树的形式进行划分,由此,点的位置可以和八叉树的位置一一对应,通过统计八叉树中有点的位置,并将其标识(flag)记为1,以进行几何编码。
第一算术编码单元105可以采用熵编码方式对八叉树分析单元103输出的位置信息进行算术编码,即将八叉树分析单元103输出的位置信息利用算术编码方式生成几何码 流;几何码流也可称为几何比特流(geometry bitstream)。
属性编码可通过以下单元实现:
颜色空间转换(Transform colors)单元110、属性转化(Transfer attributes)单元111、区域自适应分层变换(Region Adaptive Hierarchical Transform,RAHT)单元112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114、量化系数(Quantize coefficients)单元115以及第二算术编码单元116。
颜色空间转换单元110可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。
属性转化单元111可用于转换点云中点的属性信息,以最小化属性失真。例如,属性转化单元111可用于得到点的属性信息的真实值。例如,所述属性信息可以是点的颜色信息。
经过属性转化单元111转换得到点的属性信息的真实值后,可选择任一种预测单元,对点云中的点进行预测。预测单元可包括:RAHT 112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114。
换言之,RAHT 112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114中的任一项可用于对点云中点的属性信息进行预测,以得到点的属性信息的预测值,进而基于点的属性信息的预测值得到点的属性信息的残差值。
例如,点的属性信息的残差值可以是点的属性信息的真实值减去点的属性信息的预测值。
在本申请的一实施例中,预测变换单元113还可用于生成细节层(level of detail,LOD)。LOD的生成过程包括:根据点云中点的位置信息,获取点与点之间的欧式距离;根据欧式距离,将点分为不同的LOD层。在一个实施例中,可以将欧式距离进行排序后,将不同范围的欧式距离划分为不同的LOD层。
例如,可以随机挑选一个点,作为第一LOD层。然后计算剩余点与该点的欧式距离,并将欧式距离符合第一阈值要求的点,归为第二LOD层。获取第二LOD层中点的质心,计算除第一、第二LOD层以外的点与该质心的欧式距离,并将欧式距离符合第二阈值的点,归为第三LOD层。以此类推,将所有的点都归到LOD层中。通过调整欧式距离的阈值,可以使得每层LOD的点的数量是递增的。应理解,LOD层划分的方式还可以采用其它方式,本申请对此不进行限制。
需要说明的是,可以直接将点云划分为一个或多个LOD层,也可以先将点云划分为多个点云切块(slice),再将每一个点云切块划分为一个或多个LOD层。
例如,可将点云划分为多个点云切块,每个点云切块的点的个数可以在55万-110万之间。每个点云切块可看成单独的点云。每个点云切块又可以划分为多个LOD层,每个LOD层包括多个点。在一个实施例中,可根据点与点之间的欧式距离,进行LOD层的划分。
量化单元115可用于量化点的属性信息的残差值。例如,若所述量化单元115和所述预测变换单元113相连,则所述量化单元可用于量化所述预测变换单元113输出的点的属性信息的残差值。
例如,对预测变换单元113输出的点的属性信息的残差值使用量化步长进行量化,以实现提升系统性能。
第二算术编码单元116可使用零行程编码(Zero run length coding)对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。
应当理解,本申请中,点云中点的属性信息的预测值(predictedvalue)也可称为LOD模式下的颜色预测值(predictedColor)。点的属性信息的真实值减去点的属性信息的预测值可得到点的残差值(residualvalue)。点的属性信息的残差值也可称为LOD模式下的颜色残差值(residualColor)。点的属性信息的预测值和点的属性信息的残差值相加可 生成点的属性信息的重建值(reconstructedvalue)。点的属性信息的重建值也可称为LOD模式下的颜色重建值(reconstructedColor)。
图2是本申请实施例提供的解码框架200的示意性框图。
如图2所示,解码框架200可以从编码设备获取点云的码流,通过解析码得到点云中的点的位置信息和属性信息。点云的解码包括位置解码和属性解码。在一个实施例中,位置解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的位置信息进行重建,以得到点的位置信息的重建信息;对点的位置信息的重建信息进行坐标变换,得到点的位置信息。点的位置信息也可称为点的几何信息。
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择三种预测模式的一种进行点云预测,得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间反转化,以得到解码点云。
如图2所示,位置解码可通过以下单元实现:
第一算数解码单元201、八叉树分析(synthesize octree)单元202、几何重建(Reconstruct geometry)单元204以及坐标反转换(inverse transform coordinates)单元205。
坐标转换(Tanmsform coordinates)单元101、量化和移除重复点(Quantize and remove points)单元102、八叉树分析(Analyze octree)单元103、几何重建(Reconstruct geometry)单元104以及第一算术编码(Arithmetic enconde)单元105。
属性编码可通过以下单元实现:
第二算数解码单元210、反量化(inverse quantize)单元211、RAHT单元212、预测变化(predicting transform)单元213、提升变化(lifting transform)单/214以及颜色空间反转换(inverse trasform colors)单元215。
需要说明的是,解压缩是压缩的逆过程,类似的,解码框架200中的各个单元的功能可参见编码框架100中相应的单元的功能。
例如,解码框架200可根据点云中点与点之间的欧式距离将点云划分为多个LOD;然后,依次对LOD中点的属性信息进行解码;例如,计算零行程编码技术中零的数量(zero_cnt),以基于zero_cnt对残差进行解码;接着,解码框架200可基于解码出的残差值进行反量化,并基于反量化后的残差值与当前点的预测值相加得到该点云的重建值,直到解码完所有的点云。当前点将会作为后续LOD中点的最近邻居,并利用当前点的重建值对后续点的属性信息进行预测。
图3示出了根据本申请实施例的点云的编码方法300的示意性流程图,所述方法300可以由编码器执行。例如,图1所示的编码框架100,即点云编解码器TMC13。为便于说明,下面以编码器为执行主体对本申请的技术方案进行说明。
如图3所示,所述方法300可包括:
S310,对点云中的一目标点的位置信息进行处理,得到所述目标点的位置信息的重建信息;
S320,根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值;
S330,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值;
S340,对点云中的所述目标点的属性信息进行处理,得到所述目标点的属性信息的真实值;
S350,根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的真实值,得到所述目标点的属性信息的残差值;
S360,对所述目标点的属性信息的残差值进行编码,得到码流。
例如,所述卡尔曼滤波算法可以通过递归滤波器实现,递归滤波器也可称为自回归滤波器。
例如,可以对量化后的所述点云中的所有点的属性信息的残差值进行编码,以得到所述码流。
例如,所述目标点的属性信息的残差值可以是量化后的残差值,也可以是不需要量化的残差值。
利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值,进而基于根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的真实值得到的所述目标点的属性信息的残差值进行编码,相当于,在点云编码过程中,能够提升所述目标点的属性信息的预测准确度,对点的预测过程进行了质量增强,相应的,能够提升所述目标点的属性信息的残差值的准确度,进而,能够提升点云编码的编码效果。
需要说明的是,本申请中涉及的点云可以是完整的点云,也可以是将完整的点云划分后形成的点云切块(slice)。
下面结合图4对卡尔曼滤波原理进行说明。
图4是本申请实施例提供的卡尔曼滤波原理的示意图。
如图4所示,可通过曲线371表示所述目标点的属性信息的初始预测值,可通过曲线372表示所述目标点的属性信息的最终预测值,可通过曲线373表示所述目标点的属性信息的测量值;换言之,可以利用所述目标点的属性信息的测量值对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值。初始预测值也可称为先验估计值;最终预测值也可称为最优估计值或后验估计值。
例如,可以先基于一系列的不完全或包含噪声的测量值估计动态系统的状态,以获取初始预测值;然后基于测量值和初始预测值,可通过不断地迭代更新的方式,使得预测误差逐渐减小,进而使得预测值逐渐准确,以得到最终预测值。
例如,可以将对点云中的目标点的卡尔曼滤波分为预测过程和校正过程。假设目标点为点云中的第k个点;在预测过程中,可根据第k-1个点的最终预测值来估计第k个点的状态,以得到第k个点的初始预测值;在校正过程中,使用第k个点的测量值更正第k个点的初始预测值,得到第k个点的最终预测值。
例如,可以通过公式1对第k个点进行预测,以获取第k个点的初始预测值:
Figure PCTCN2020119686-appb-000001
其中,
Figure PCTCN2020119686-appb-000002
表示第k个点的初始预测值;A表示状态转移矩阵;
Figure PCTCN2020119686-appb-000003
表示第k-1个点的最终预测值;B表示控制输入矩阵;u k表示输入的信息;P′ k表示
Figure PCTCN2020119686-appb-000004
的协方差;P k-1表示
Figure PCTCN2020119686-appb-000005
的协方差;Q表示过程激励噪声协方差,其也可称为系统过程的协方差。
例如,可以通过公式2进行校正,以获取第k个点的最终预测值:
Figure PCTCN2020119686-appb-000006
其中,
Figure PCTCN2020119686-appb-000007
表示第k个点的测量值相对第k个点的初始预测值的残差值;z k表示第k个点的测量值;
Figure PCTCN2020119686-appb-000008
表示第k个点的初始预测值;H表示状态观测矩阵。K k表示卡
尔曼增益;P′ k表示
Figure PCTCN2020119686-appb-000009
的协方差;R表示系统的不准确度的矩阵。
Figure PCTCN2020119686-appb-000010
表示第k个点的最终预测值。
例如,可以通过公式3更新协方差:
P k=(I-K kH)P′ k      公式3;
其中,P k表示
Figure PCTCN2020119686-appb-000011
的协方差,P′ k表示
Figure PCTCN2020119686-appb-000012
的协方差。
当然,在其他可替代实施例中,也可将上述公式1至公式3转换为编程语言结构,本申请对此不做具体限定。
在本申请的一些实施例中,所述方法200还可包括:
将所述点云划分为一个或多个LOD层,每个LOD层包括一个或多个点;根据所述目标点所在的LOD层的点的属性信息(例如,R、G、B颜色分量)的标准差,确定是否利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息(例如,R、G、B颜色分量)的初始预测值进行滤波;当确定需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
通过针对所述目标点所在的LOD层确定是否进行滤波,可在确定针对所述目标点所在的LOD层进行卡尔曼滤波的情况下,编码器可直接对所述目标点所在的LOD层中的每一个点的预测值进行卡尔曼滤波,以降低卡尔曼滤波的复杂度。
例如,可以根据所述目标点所在的LOD层的点的属性信息(例如,R、G、B颜色分量)的标准差,确定是否利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息(例如,R、G、B颜色分量)的初始预测值进行滤波。
例如,若所述目标点所在的LOD层的点的属性信息的标准差大于第一阈值,确定不利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波;再如,若所述目标点所在的LOD层的点的属性信息的标准差小于或等于第一阈值,确定利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波。可选的,所述第一阈值可以是预定义的阈值。例如,所述第一阈值可以是视频编解码标准定义的阈值。当然,所述第一阈值也可以是编码端确定的阈值,此时,可以将所述第一阈值写入码流,以将所述第一阈值指示给解码端。
应理解,本申请对所述第一阈值的具体数值不作限定。例如,所述第一阈值可以是35或45。
在本申请的一些实施例中,当确定不需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,确定不需要对所述目标点所在的LOD层以及之后的LOD层中的点的属性信息的初始预测值进行滤波。
在本申请的一些实施例中,所述目标点所在的LOD层为所述一个或多个LOD层中的前N个LOD层,N为大于0的正整数;或者,所述目标点所在的LOD层为所述一个或多个LOD层中所述前N个LOD层之后的一个LOD层。
应理解,本申请对所述N的具体数值不作限定。
例如,所述N可以6或7。
例如,下面结合表1对本申请的方案进行示例性说明。
表1
LOD层 标准差阈值
<=6 <=45
7 <=45
8 >45
如表1所示,由于前6个LOD层中点的属性信息(R、G、B颜色分量)的标准差都不小于或等于45(如有其中一个颜色分量的标准差不符合要求,则对此层LOD不做滤波),编码端可针对前6个LOD层中的点的初始预测值进行卡尔曼滤波,接着对第7层进行判断即第7个LOD层中点的R、G、B三个颜色分量的标准差都小于或等于45,编码端可针对前7个LOD层中的点的初始预测值进行卡尔曼滤波,由于第8个LOD层的标准差大于45,编码端可针对第8个LOD层中的点的初始预测值以及第8个LOD层之后的LOD层中的点的初始预测值不进行卡尔曼滤波。
在本申请的一些实施例中,所述S340可包括:
以所述目标点之前的一个或多个点的属性信息的重建值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
例如,所述目标点之前的一个或多个点的属性信息的重建值可以是所述目标点之前的一个点的属性信息的重建值。再如,所述目标点之前的一个或多个点的属性信息的重建值可以是所述目标点之前的多个点的属性信息的重建值的均值、最大值或最小值。
应理解,所述目标点之前的一个或多个点,可以理解为所述目标点所在的LOD层中的位于所述目标点之前的一个或多个点,也可以理解为编码顺序之前的一个或多个点。
在本申请的一些实施例中,所述S340可包括:
以预设值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值。
例如,所述预设值可以是所述目标点的属性信息的真实值,也可以是基于所述目标点的属性信息的真实值确定的数值。例如,可以根据所述目标点的比特深度(bitdepth)确定所述预设值。例如,可以将所述目标点的属性信息的比特深度进行左移处理,以得到所述预设值。
在本申请的一些实施例中,所述方法200还可包括:
针对所述点云中的每一个LOD层,当所述LOD层的点数小于阈值T时,将所述LOD层的所有点的属性信息的初始预测值替换为属性信息的真实值;当所述LOD层的点数大于或等于阈值T时,将第nxT个点的属性信息的初始预测值替换为真实值,T为大于1的正整数,n为大于或等于0的正整数。
例如,变量n的取值范围可以是0~m,m*T小于或等于所述LOD层中点的数量。例如,针对每一个LOD层,所述nxT个点可以均等分所述所述LOD层中的点。
应理解,本申请对所述T的具体数值不作限定。
例如,所述T可以是8或10。
在其他实施例中,当所述LOD层的点数小于8时,将所述LOD层的所有点的属性信息的最终重建值替换为属性信息的真实值;当所述LOD层的点数大于或等于8时,利用需要将点的属性信息的最终重建值替换为真实值的点,将所述LOD中的其他的点均分为8等份。
在本申请的一些实施例中,所述S340可包括:
若所述目标点的属性信息的初始预测值为真实值,以所述目标点的属性信息的真实值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值;将所述目标点的属性信息的最终预测值替 换为所述目标点的属性信息的真实值。
例如,若所述目标点的属性信息的初始预测值已替换为属性信息的真实值,以所述目标点的属性信息的真实值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值;将所述目标点的属性信息的最终预测值替换为所述目标点的属性信息的真实值。
进一步的,还可以将所述目标点的属性信息的真实值,写入所述码流。
在本申请的一些实施例中,所述方法200还可包括:
将所述点云中点的属性信息的最终预测值为真实值的点的数量以及点的属性信息的真实值写入所述码流。
例如,所述码流可包括编码后的以下信息;属性信息的最终预测值为真实值的点的数量、、属性信息的最终预测值为真实值的点的属性信息的真实值、以及所述点云中所有点的属性信息的残差值。
可选的,也可以将所述点云中点的属性信息的最终预测值为真实值的点的位置写入所述码流。
在本申请的一些实施例中,所述方法200还可包括:
若确定不需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,将所述目标点的属性信息的初始预测值作为所述目标点的属性信息的最终预测值。
例如,若确定所述目标点所在的LOD层的标准差大于第一阈值,将所述目标点的属性信息的初始预测值作为所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述方法200还可包括:
将一标识写入码流,所述标识用于指示所述目标点所在的LOD层进行了滤波。
例如,若所述目标点所在的LOD层进行了滤波,将所述标识写入所述码流。换言之,所述码流包括编码后的所述标识。
图5是本申请实施例提供的点云的编码方法400的示意性框图。
如图5所示,所述方法400可包括以下中的部分或全部:
S401,将所述点云划分为一个或多个LOD层,每个LOD层包括一个或多个点。
S402,对点云中的所述目标点的属性信息进行处理,得到所述目标点的属性信息的真实值。
S403,根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值。
S404,针对所述点云中的每一个LOD层,当所述LOD层的点数小于阈值T时,将所述LOD层的所有点的属性信息的初始预测值替换为属性信息的真实值;当所述LOD层的点数大于或等于阈值T时,将第nxT个点的属性信息的初始预测值替换为真实值,T为大于1的正整数,n为大于或等于0的正整数。
S405,将所述点云中点的属性信息的最终预测值为真实值的点的数量、点的位置以及点的属性信息的真实值写入码流。
S406,根据所述目标点所在的LOD层的点的属性信息的标准差,确定是否利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波。
S407,若确定需要利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波,确定所述目标点的属性信息的初始预测值是否为真实值。
S408,若确定所述目标点的属性信息的初始预测值为真实值,以所述目标点的属性信息的真实值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值。
S409,将所述目标点的属性信息的最终预测值替换为所述目标点的属性信息的真实值。
S410,若确定所述目标点的属性信息的初始预测值不是真实值,以所述目标点之前 的一个或多个点的属性信息的重建值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
S411,将一标识写入码流,所述标识用于指示所述目标点所在的LOD层进行了滤波。
S412,若确定不需要利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波,将所述目标点的属性信息的初始预测值作为所述目标点的属性信息的最终预测值。
S413,根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的真实值,得到所述目标点的属性信息的残差值。
S414,对所述目标点的属性信息的残差值进行编码,得到码流。
上文中结合图2至图5,从编码器的角度详细描述了根据本申请实施例的点云的编码方法,下面将结合图6,从解码器的角度描述根据本申请实施例的点云的解码方法。
图6示出了根据本申请实施例的点云的解码方法500的示意性流程图。所述方法500可以由解码端执行。例如图2所示的解码框架200或解码器。
如图6所示,所述方法500可包括:
S510,对点云的码流进行解析,得到所述点云中一目标点的位置信息的重建信息;
S520,根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值;
S530,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值;
S540,对所述码流进行解码,得到所述目标点的属性信息的残差值;
S550,根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的残差值,得到所述目标点的属性信息的重建值;
S560,根据所述目标点的属性信息的重建值,得到解码点云。
在本申请的一些实施例中,所述方法500还可包括:
将所述点云划分为一个或多个LOD层,每个LOD层包括一个或多个点;确定是否利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波;当确定需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述目标点所在的LOD层为所述一个或多个LOD层中的前N个LOD层,N为大于0的正整数;或者,所述目标点所在的LOD层为所述一个或多个LOD层中所述前N个LOD层之后的一个LOD层。
在本申请的一些实施例中,所述S530可包括:
以所述目标点之前的一个或多个点的属性信息的重建值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述S530可包括:
以预设值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述方法500还可包括:
针对所述点云中的每一个LOD层,当所述LOD层的点数小于阈值T时,将所述LOD层的所有点的属性信息的初始预测值替换为属性信息的真实值;当所述LOD层的点数大于或等于阈值T时,将第nxT个点的属性信息的初始预测值替换为真实值,T为大于1的正整数,n为大于或等于0的正整数。
在本申请的一些实施例中,所述S530可包括:
若所述目标点的属性信息的初始预测值为真实值,以所述目标点的属性信息的真实 值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值;将所述目标点的属性信息的最终预测值替换为所述目标点的属性信息的真实值。
在本申请的一些实施例中,所述方法500还可包括:
对所述码流进行解析,得到所述点云中点的属性信息的最终预测值为真实值的点的数量、点的位置以及点的属性信息的真实值。
在本申请的一些实施例中,所述方法500还可包括:
若确定不需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,将所述目标点的属性信息的初始预测值作为所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述S530可包括:
对所述码流进行解析,得到一标识,所述标识用于指示所述目标点所在的LOD层进行了滤波。
应理解,点云的解码方法500为点云的编码方法的逆过程。点云的解码方法500中的步骤可以参考点云的编码方法300或400中的相应步骤,为了避免重复,在此不再赘述。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图1至图6,详细描述了本申请的方法实施例,下文结合图7至图9,详细描述本申请的装置实施例。
图7是本申请实施例的编码器50的示意性框图。
如图7所示,所述编码器50可包括:
第一处理单元51,用于对点云中的一目标点的位置信息进行处理,得到所述目标点的位置信息的重建信息;
预测单元52,用于根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值;
滤波单元53,用于利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值;
第二处理单元54,用于对点云中的所述目标点的属性信息进行处理,得到所述目标点的属性信息的真实值;
残差单元55,用于根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的真实值,得到所述目标点的属性信息的残差值;
编码单元56,用于对所述目标点的属性信息的残差值进行编码,得到码流。
在本申请的一些实施例中,所述预测单元52还用于:
将所述点云划分为一个或多个LOD层,每个LOD层包括一个或多个点;
根据所述目标点所在的LOD层的点的属性信息的标准差,确定是否利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波;
当确定需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点 的属性信息的最终预测值。
在本申请的一些实施例中,所述目标点所在的LOD层为所述一个或多个LOD层中的前N个LOD层,N为大于0的正整数;或者,所述目标点所在的LOD层为所述一个或多个LOD层中所述前N个LOD层之后的一个LOD层。
在本申请的一些实施例中,所述滤波单元53具体用于:
以所述目标点之前的一个或多个点的属性信息的重建值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述滤波单元53具体用于:
以预设值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述预测单元52还用于:
针对所述点云中的每一个LOD层,当所述LOD层的点数小于阈值T时,将所述LOD层的所有点的属性信息的初始预测值替换为属性信息的真实值;
当所述LOD层的点数大于或等于阈值T时,将第nxT个点的属性信息的初始预测值替换为真实值,T为大于1的正整数,n为大于或等于0的正整数。
在本申请的一些实施例中,所述滤波单元53具体用于:
若所述目标点的属性信息的初始预测值为真实值,以所述目标点的属性信息的真实值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值;
将所述目标点的属性信息的最终预测值替换为所述目标点的属性信息的真实值。
在本申请的一些实施例中,所述编码单元56还用于:
将所述点云中点的属性信息的最终预测值为真实值的点的数量、点的位置以及点的属性信息的真实值写入所述码流。
在本申请的一些实施例中,所述预测单元52还用于:
若确定不需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,将所述目标点的属性信息的初始预测值作为所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述编码单元56还用于:
将一标识写入码流,所述标识用于指示所述目标点所在的LOD层进行了滤波。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图7所示的编码器50可以对应于执行本申请实施例的方法300中的相应主体,并且编码器50中的各个模块的前述和其它操作和/或功能分别为了实现图3或图5中的各个方法中的相应流程,为了简洁,在此不再赘述。
图8是本申请实施例提供的解码器600的示意性框图。
如图8所示,所述解码器600可包括:
第一解码单元610,用于对点云的码流进行解析,得到所述点云中一目标点的位置信息的重建信息;
预测单元620,用于根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值;
滤波单元630,用于利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值;
第二解码单元640,用于对所述码流进行解码,得到所述目标点的属性信息的残差值;
重建单元650,用于根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的残差值,得到所述目标点的属性信息的重建值;
第三解码单元660,用于根据所述目标点的属性信息的重建值,得到解码点云。
在本申请的一些实施例中,所述预测单元620还用于:
将所述点云划分为一个或多个LOD层,每个LOD层包括一个或多个点;
确定是否利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波;
当确定需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述目标点所在的LOD层为所述一个或多个LOD层中的前N个LOD层,N为大于0的正整数;或者,所述目标点所在的LOD层为所述一个或多个LOD层中所述前N个LOD层之后的一个LOD层。
在本申请的一些实施例中,所述滤波单元630具体用于:
以所述目标点之前的一个或多个点的属性信息的重建值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述滤波单元630具体用于:
以预设值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述预测单元620还用于:
针对所述点云中的每一个LOD层,当所述LOD层的点数小于阈值T时,将所述LOD层的所有点的属性信息的初始预测值替换为属性信息的真实值;
当所述LOD层的点数大于或等于阈值T时,将第nxT个点的属性信息的初始预测值替换为真实值,T为大于1的正整数,n为大于或等于0的正整数。
在本申请的一些实施例中,所述滤波单元630具体用于:
若所述目标点的属性信息的初始预测值为真实值,以所述目标点的属性信息的真实值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值;
将所述目标点的属性信息的最终预测值替换为所述目标点的属性信息的真实值。
在本申请的一些实施例中,所述第一解码单元610还用于:
对所述码流进行解析,得到所述点云中点的属性信息的最终预测值为真实值的点的数量、点的位置以及点的属性信息的真实值。
在本申请的一些实施例中,所述预测单元620还用于:
若确定不需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,将所述目标点的属性信息的初始预测值作为所述目标点的属性信息的最终预测值。
在本申请的一些实施例中,所述第一解码单元610还用于:
对所述码流进行解析,得到一标识,所述标识用于指示所述目标点所在的LOD层进行了滤波。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图8所示的解码器600可以对应于执行本申请实施例的方法500中的相应主体,并且解码器600中的各个模块的前述和其它操作和/或功能分别为了实现图6中的各个方法中的相应流程,为了简洁,在此不再赘述。
根据本申请的另一方面,还提供了一种编解码系统,包括上述编码器以及该编码器对应的解码器。
上文中结合附图从功能模块的角度描述了本申请实施例的装置和系统。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合 执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
如9是本申请实施例提供的电子设备700的示意性框图。
如如9所示,该电子设备700可包括:
存储器710和处理器720,该存储器710用于存储计算机程序711,并将该程序代码711传输给该处理器720。换言之,该处理器720可以从存储器710中调用并运行计算机程序711,以实现本申请实施例中的方法。
例如,该处理器720可用于根据该计算机程序711中的指令执行上述方法200中的步骤。
在本申请的一些实施例中,该处理器720可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器710包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序711可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器710中,并由该处理器720执行,以完成本申请提供的录制页面的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序711在该电子设备700中的执行过程。
如如9所示,该电子设备700还可包括:
收发器730,该收发器730可连接至该处理器720或存储器710。
其中,处理器720可以控制该收发器730与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器730可以包括发射机和接收机。收发器730还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备700中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
综上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

Claims (23)

  1. 一种点云的编码方法,其特征在于,包括:
    对点云中的一目标点的位置信息进行处理,得到所述目标点的位置信息的重建信息;
    根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值;
    利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值;
    对点云中的所述目标点的属性信息进行处理,得到所述目标点的属性信息的真实值;
    根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的真实值,得到所述目标点的属性信息的残差值;
    对所述目标点的属性信息的残差值进行编码,得到码流。
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    将所述点云划分为一个或多个LOD层,每个LOD层包括一个或多个点;
    根据所述目标点所在的LOD层的点的属性信息的标准差,确定是否利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波;
    当确定需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
  3. 根据权利要求2所述的方法,其特征在于,所述目标点所在的LOD层为所述一个或多个LOD层中的前N个LOD层,N为大于0的正整数;或者,所述目标点所在的LOD层为所述一个或多个LOD层中所述前N个LOD层之后的一个LOD层。
  4. 根据权利要求2所述的方法,其特征在于,所述利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值,包括:
    以所述目标点之前的一个或多个点的属性信息的重建值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
  5. 根据权利要求2所述的方法,其特征在于,所述利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值,包括:
    以预设值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值。
  6. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    针对所述点云中的每一个LOD层,当所述LOD层的点数小于阈值T时,将所述LOD层的所有点的属性信息的初始预测值替换为属性信息的真实值;
    当所述LOD层的点数大于或等于阈值T时,将第nxT个点的属性信息的初始预测值替换为真实值,T为大于1的正整数,n为大于或等于0的正整数。
  7. 根据权利要求6所述的方法,其特征在于,所述利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值,包括:
    若所述目标点的属性信息的初始预测值为真实值,以所述目标点的属性信息的真实值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值;
    将所述目标点的属性信息的最终预测值替换为所述目标点的属性信息的真实值。
  8. 根据权利要求6所述的方法,其特征在于,所述方法还包括:
    将所述点云中点的属性信息的最终预测值为真实值的点的数量、点的位置以及点的属性信息的真实值写入所述码流。
  9. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    若确定不需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波 时,将所述目标点的属性信息的初始预测值作为所述目标点的属性信息的最终预测值。
  10. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    将一标识写入码流,所述标识用于指示所述目标点所在的LOD层进行了滤波。
  11. 一种点云的解码方法,其特征在于,包括:
    对点云的码流进行解析,得到所述点云中一目标点的位置信息的重建信息;
    根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值;
    利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值;
    对所述码流进行解码,得到所述目标点的属性信息的残差值;
    根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的残差值,得到所述目标点的属性信息的重建值;
    根据所述目标点的属性信息的重建值,得到解码点云。
  12. 根据权利要求11所述的方法,其特征在于,所述方法还包括:
    将所述点云划分为一个或多个LOD层,每个LOD层包括一个或多个点;
    确定是否利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波;
    当确定需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
  13. 根据权利要求12所述的方法,其特征在于,所述目标点所在的LOD层为所述一个或多个LOD层中的前N个LOD层,N为大于0的正整数;或者,所述目标点所在的LOD层为所述一个或多个LOD层中所述前N个LOD层之后的一个LOD层。
  14. 根据权利要求12所述的方法,其特征在于,所述利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值,包括:
    以所述目标点之前的一个或多个点的属性信息的重建值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值。
  15. 根据权利要求12所述的方法,其特征在于,所述利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值,包括:
    以预设值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值。
  16. 根据权利要求12所述的方法,其特征在于,所述方法还包括:
    针对所述点云中的每一个LOD层,当所述LOD层的点数小于阈值T时,将所述LOD层的所有点的属性信息的初始预测值替换为属性信息的真实值;
    当所述LOD层的点数大于或等于阈值T时,将第nxT个点的属性信息的初始预测值替换为真实值,T为大于1的正整数,n为大于或等于0的正整数。
  17. 根据权利要求16所述的方法,其特征在于,所述利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值,包括:
    若所述目标点的属性信息的初始预测值为真实值,以所述目标点的属性信息的真实值作为测量值,利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,以得到所述目标点的属性信息的最终预测值;
    将所述目标点的属性信息的最终预测值替换为所述目标点的属性信息的真实值。
  18. 根据权利要求16所述的方法,其特征在于,所述方法还包括:
    对所述码流进行解析,得到所述点云中点的属性信息的最终预测值为真实值的点的数量、点的位置以及点的属性信息的真实值。
  19. 根据权利要求12所述的方法,其特征在于,所述方法还包括:
    若确定不需要对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波时,将所述目标点的属性信息的初始预测值作为所述目标点的属性信息的最终预测值。
  20. 根据权利要求12所述的方法,其特征在于,所述确定是否利用卡尔曼滤波算法对所述目标点所在的LOD层的点的属性信息的初始预测值进行滤波,包括:
    对所述码流进行解析,得到一标识,所述标识用于指示所述目标点所在的LOD层进行了滤波。
  21. 一种编码器,其特征在于,包括:
    第一处理单元,用于对点云中的一目标点的位置信息进行处理,得到所述目标点的位置信息的重建信息;
    预测单元,用于根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值;
    滤波单元,用于利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值;
    第二处理单元,用于对点云中的所述目标点的属性信息进行处理,得到所述目标点的属性信息的真实值;
    残差单元,用于根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的真实值,得到所述目标点的属性信息的残差值;
    编码单元,用于对所述目标点的属性信息的残差值进行编码,得到码流。
  22. 一种点云的解码方法,其特征在于,包括:
    第一解码单元,用于对点云的码流进行解析,得到所述点云中一目标点的位置信息的重建信息;
    预测单元,用于根据所述目标点的位置信息的重建信息,得到所述目标点的属性信息的初始预测值;
    滤波单元,用于利用卡尔曼滤波算法对所述目标点的属性信息的初始预测值进行滤波,得到所述目标点的属性信息的最终预测值;
    第二解码单元,用于对所述码流进行解码,得到所述目标点的属性信息的残差值;
    重建单元,用于根据所述目标点的属性信息的最终预测值和所述目标点的属性信息的残差值,得到所述目标点的属性信息的重建值;
    第三解码单元,用于根据所述目标点的属性信息的重建值,得到解码点云。
  23. 一种编解码系统,其特征在于,包括::
    根据权利要求21所述的编码器;以及
    根据权利要求22所述的解码器。
PCT/CN2020/119686 2020-09-30 2020-09-30 点云的编码、解码方法、编码器、解码器以及编解码系统 WO2022067775A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/CN2020/119686 WO2022067775A1 (zh) 2020-09-30 2020-09-30 点云的编码、解码方法、编码器、解码器以及编解码系统
EP20955798.2A EP4224843A4 (en) 2020-09-30 2020-09-30 METHOD FOR CODING AND DECODING A POINT CLOUD, CODER, DECODER AND CODEC SYSTEM
CN202080105463.8A CN116250008A (zh) 2020-09-30 2020-09-30 点云的编码、解码方法、编码器、解码器以及编解码系统
US18/126,538 US20230237707A1 (en) 2020-09-30 2023-03-27 Point cloud encoding and decoding method, encoder, decoder and codec system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/119686 WO2022067775A1 (zh) 2020-09-30 2020-09-30 点云的编码、解码方法、编码器、解码器以及编解码系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/126,538 Continuation US20230237707A1 (en) 2020-09-30 2023-03-27 Point cloud encoding and decoding method, encoder, decoder and codec system

Publications (1)

Publication Number Publication Date
WO2022067775A1 true WO2022067775A1 (zh) 2022-04-07

Family

ID=80949451

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/119686 WO2022067775A1 (zh) 2020-09-30 2020-09-30 点云的编码、解码方法、编码器、解码器以及编解码系统

Country Status (4)

Country Link
US (1) US20230237707A1 (zh)
EP (1) EP4224843A4 (zh)
CN (1) CN116250008A (zh)
WO (1) WO2022067775A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024037091A1 (zh) * 2022-08-19 2024-02-22 腾讯科技(深圳)有限公司 一种点云处理方法、装置及计算机设备、存储介质
WO2024077548A1 (zh) * 2022-10-13 2024-04-18 Oppo广东移动通信有限公司 点云解码方法、点云编码方法、解码器和编码器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020012967A1 (ja) * 2018-07-11 2020-01-16 ソニー株式会社 画像処理装置および方法
CN110971898A (zh) * 2018-09-30 2020-04-07 华为技术有限公司 点云编解码方法和编解码器
CN110996098A (zh) * 2018-10-02 2020-04-10 腾讯美国有限责任公司 处理点云数据的方法和装置
CN111242997A (zh) * 2020-01-13 2020-06-05 北京大学深圳研究生院 一种基于滤波器的点云属性预测方法及设备
WO2020180721A1 (en) * 2019-03-01 2020-09-10 Tencent America LLC Method and apparatus for point cloud compression
WO2020191258A1 (en) * 2019-03-20 2020-09-24 Tencent America LLC Techniques and apparatus for weighted-median prediction for point-cloud attribute coding

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223810B2 (en) * 2016-05-28 2019-03-05 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
CN113597771A (zh) * 2019-03-16 2021-11-02 Lg电子株式会社 用于处理点云数据的设备和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020012967A1 (ja) * 2018-07-11 2020-01-16 ソニー株式会社 画像処理装置および方法
CN110971898A (zh) * 2018-09-30 2020-04-07 华为技术有限公司 点云编解码方法和编解码器
CN110996098A (zh) * 2018-10-02 2020-04-10 腾讯美国有限责任公司 处理点云数据的方法和装置
WO2020180721A1 (en) * 2019-03-01 2020-09-10 Tencent America LLC Method and apparatus for point cloud compression
WO2020191258A1 (en) * 2019-03-20 2020-09-24 Tencent America LLC Techniques and apparatus for weighted-median prediction for point-cloud attribute coding
CN111242997A (zh) * 2020-01-13 2020-06-05 北京大学深圳研究生院 一种基于滤波器的点云属性预测方法及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4224843A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024037091A1 (zh) * 2022-08-19 2024-02-22 腾讯科技(深圳)有限公司 一种点云处理方法、装置及计算机设备、存储介质
WO2024077548A1 (zh) * 2022-10-13 2024-04-18 Oppo广东移动通信有限公司 点云解码方法、点云编码方法、解码器和编码器

Also Published As

Publication number Publication date
CN116250008A (zh) 2023-06-09
US20230237707A1 (en) 2023-07-27
EP4224843A4 (en) 2023-11-22
EP4224843A1 (en) 2023-08-09

Similar Documents

Publication Publication Date Title
US20230237707A1 (en) Point cloud encoding and decoding method, encoder, decoder and codec system
WO2023130333A1 (zh) 编解码方法、编码器、解码器以及存储介质
EP4258671A1 (en) Point cloud attribute predicting method, encoder, decoder, and storage medium
WO2022062369A1 (zh) 点云编解码方法与系统、及点云编码器与点云解码器
US20230237704A1 (en) Point cloud decoding and encoding method, and decoder, encoder and encoding and decoding system
WO2022133753A1 (zh) 点云编解码方法与系统、及点云编码器与点云解码器
WO2023015530A1 (zh) 点云编解码方法、编码器、解码器及计算机可读存储介质
CN115086660B (zh) 基于点云属性预测的解码、编码方法、解码器及编码器
WO2022226850A1 (zh) 点云质量增强方法、编码和解码方法及装置、存储介质
WO2022141461A1 (zh) 点云编解码方法、编码器、解码器以及计算机存储介质
WO2022133752A1 (zh) 点云的编码方法、解码方法、编码器以及解码器
WO2023240455A1 (zh) 点云编码方法、编码装置、编码设备以及存储介质
JP2017073755A (ja) 符号化装置及びその制御方法、プログラム並びに記憶媒体
WO2022140937A1 (zh) 点云编解码方法与系统、及点云编码器与点云解码器
WO2022188582A1 (zh) 点云中邻居点的选择方法、装置及编解码器
WO2022133755A1 (zh) 点云的解码方法、编码方法、解码器以及编码器
WO2023159428A1 (zh) 编码方法、编码器以及存储介质
WO2023024842A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2023023918A1 (zh) 解码方法、编码方法、解码器以及编码器
WO2023197338A1 (zh) 索引确定方法、装置、解码器以及编码器
WO2024026712A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2022257145A1 (zh) 点云属性的预测方法、装置及编解码器
WO2022257528A1 (zh) 点云属性的预测方法、装置及相关设备
WO2024065272A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2023123284A1 (zh) 一种解码方法、编码方法、解码器、编码器及存储介质

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: 20955798

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020955798

Country of ref document: EP

Effective date: 20230502